Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 2503 → Rev 2504

/branches/V2.08a_Rens_Testversion/FlightCtrl/Debug/FlightCtrl.eep
0,0 → 1,0
:00000001FF
/branches/V2.08a_Rens_Testversion/FlightCtrl/Debug/FlightCtrl.elf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/V2.08a_Rens_Testversion/FlightCtrl/Debug/FlightCtrl.hex
0,0 → 1,5742
:100000000C94F00C0C944A0D0C944A0D0C944A0D6F
:100010000C944A0D0C944A0D0C944A0D0C944A0D04
:100020000C944A0D0C946D9F0C944A0D0C944A0D3F
:100030000C94B3910C944A0D0C944A0D0C944A0DF7
:100040000C944A0D0C944A0D0C94649B0C944A0D2C
:100050000C94DAA50C944A0D0C949EA50C944A0DB0
:100060000C94051C0C944A0D0C9433A10C944A0D6D
:100070000C94A11A0C944A0D0C94F60F0C944A0D92
:100080000C944A0D0C944A0D0C944A0D321C3E1CE3
:10009000491C561C711C8B1C9D1CAF1C331DBC1FA6
:1000A0005B1E6D1E7E1E951EB61ED61E271F781F58
:1000B0006266A86AA0701374CF7571774C79726606
:1000C0003C670B688A68D9687169997BFA697E6AAE
:1000D0007E6A7E6A7E6A7E6A7E6A7E6A7E6A7E6AE0
:1000E000B86A766B1A6C576CCD6C4E6D436EED6FC3
:1000F00071707170717071707170717071707170F8
:100100007170B070CF70FE70A3710E72AD72EF722D
:100110008773997BE573E573E573E573E573E573C1
:10012000E573E5739F87D4887189F489368ADA8A02
:10013000648BCB8B5A8C988C158D438D718DCD8DA6
:10014000218E7F8ECD8E178F8A8FA69019977F98DC
:10015000FA98B5995399859958972798B599B99769
:1001600053A1B2A1F1A151A270A2B1A26AA37DA82C
:1001700073AB73AB73AB73AB73AB73AB73AB73AB8F
:1001800073AB73AB73AB73AB73AB73AB73AB73AB7F
:1001900073AB73AB73AB73AB73AB73AB73AB73AB6F
:1001A00073AB73ABEAA973AB73AB73ABE8AA73AB76
:1001B00073ABD6A8AFA873AB05A90CA973AB88A97C
:1001C00088A83EAA73AB93AA73AB22AABDABAAAC14
:1001D000AAACAAACAAACAAACAAACAAACAAACAAAC6F
:1001E000AAACAAACAAACAAACAAACAAACAAACAAAC5F
:1001F000AAACAAACAAACAAACC8ABD9ABECAB29AC44
:10020000AAACAAACA7AC4FACAAACAAACAAAC87ACBF
:10021000AAACAAACAAACAAACAAACAAACAAAC80AB59
:10022000AAAC95ACA318A618A618A618AF18B218B1
:10023000B518C718C4182E000A0D4D697865722DBF
:10024000436F6E6669673A20272573272028257536
:10025000204D6F746F727329000A0D47656E6572C9
:100260006174696E672064656661756C74204D69A0
:10027000786572205461626C65000A0D5573696E71
:100280006720506172616D657465722053657420DA
:100290002564000A0D47656E65726174696E67209A
:1002A00064656661756C7420506172616D6574651A
:1002B0007220536574202564000A0D2D2D3E2048C0
:1002C000617264776172652056657273696F6E2022
:1002D00042797465204368616E676564203C2D2D0A
:1002E000000A0D4779726F2063616C6962726174F4
:1002F000696F6E2064617461206E6F742076616C2A
:1003000069640D0A000A0D414343206E6F74206337
:10031000616C69627261746564210D0A001B5B3255
:100320004A46432D5374617274210A0D466C7567F9
:100330007A6569743A202564206D696E000A0D465D
:100340006C696768742D74696D65202575206D6909
:100350006E20546F74616C3A2575206D696E004F84
:100360004B0A0D000A0D43616C6962726174696E1B
:10037000672070726573737572652073656E736F35
:10038000722E2E003C2D2D207761726E696E6720D3
:100390006F6C642056657273696F6E21000A0D429E
:1003A0004C2D4669726D776172652025642E25306B
:1003B0003264000A0D0A0D2121204D495353494E44
:1003C0004720424C2D4354524C3A20256420212191
:1003D000002564000A0D466F756E6420424C2D4363
:1003E00074726C3A20000A0D4F6C6420464320481A
:1003F00061726477617265206E6F742073757070BE
:100400006F7274656420627920746869732046692C
:10041000726D77617265210020204175746F6C6187
:100420006E64696E673A2025642E2564560020208C
:100430004175746F2D43483A2025642E256456007B
:10044000204C6F77207761726E696E673A20256461
:100450002E256456002025642043656C6C732000B3
:100460000A0D426174743A000A0D3D3D3D3D3D3D2B
:100470003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DAC
:100480003D3D3D3D3D3D3D3D3D3D3D3D3D002573BB
:100490000028536574202D3E204C6F616429004E66
:1004A0006F2053442D43617264202020002D2D00C5
:1004B00025326400202020006C6F616420706F6919
:1004C0006E743A0043616D3A202533690044495205
:1004D0003A20253364256300414C543A2534696D34
:1004E0002020202000414C543A2534692F25696D85
:1004F000200057503A2532642F25642044697374D4
:100500003A2533646D2000202532693A253032695E
:100510002000202532692E2531695620004C6F615C
:10052000642073696E676C6520506F736974696FBE
:100530006E00214E6F204750532D466978212000D0
:1005400028536574202D3E2053746F726529004E28
:100550006F2053442D43617264202020002D2D0014
:1005600025326420002020200053746F72652070B3
:100570006F696E743A0043616D3A20253369004417
:1005800049523A20253364256300414C543A2534BE
:10059000696D00202532693A253032692000202516
:1005A00032692E25316956200053746F72652073AD
:1005B000696E676C6520506F736974696F6E002097
:1005C00020202020202020202020202000285365CB
:1005D00074202D3E204C6F616429004E6F205344DF
:1005E0002D4361726420202000202D2D00253264CF
:1005F00020284649582900202020004C6F616420A3
:100600006C6973743A002573002532692E253169AF
:100610005620004E6F2057507320616374697665D1
:1006200020202020004163746976652057503A25C8
:1006300032642F2564200028466978656420506F55
:10064000736974696F6E7329004C6F616420576120
:1006500079706F696E747300214E6F204750532D6F
:1006600046697821200020202020202020202020E2
:100670002020200028536574202D3E204C6F61649B
:1006800029004E6F2053442D4361726420202000C6
:100690004C6F6164206C6973743A202D2D20004CDE
:1006A0006F6164206C6973743A00253269202020E0
:1006B00000202020002573002532692E253169563F
:1006C00020004E6F20575073206163746976652057
:1006D00020202020004163746976652057503A2518
:1006E00032642F256420002852656C617469766538
:1006F00020506F736974696F6E7329004C6F616469
:1007000020576179706F696E747300434F4D50418B
:100710005353204F464621200048482120004C4F8B
:100720004F50494E47212000434F55504C494E47AA
:10073000204F464621200050343A25346920503558
:100740003A25346920363A2533690050313A253448
:10075000692050323A25346920333A2533690047FD
:10076000733A2534692059613A25346920004E696D
:100770003A25346920526F3A25346920433A2533AB
:100780006900484F4C44200025756D00484F4D4589
:1007900020414C543A002046533A257573656B202E
:1007A0000028484F4C44290028414944292000286A
:1007B000484F4D4529002846524545290044495394
:1007C00041424C4544004750533A00205445414370
:1007D000480020284F4646290020284F4E29200057
:1007E00044495341424C45440043463A004449532E
:1007F00041424C454400564152494F004C494D49F5
:100800005400284F4646292000284F4E292020001A
:10081000504F54493A2533752000414C543A004D0D
:10082000696E3A2532692E253169562025732000DC
:1008300053657474696E673A25752025732000200E
:100840007777772E4D696B726F4B6F707465722E70
:1008500064652020002121204C69506F20766F6C48
:1008600074616765202121004552523A20004552AB
:10087000523A20253264202100253369202533692E
:1008800020253369202533692563430025336920FA
:1008900025336925634320202020202020200025A7
:1008A00032692E2569202532692E25692025326975
:1008B0002E2569202532692E256941002532692EB1
:1008C0002569202532692E256941002533692025B7
:1008D0003369202533692025336925634300253298
:1008E000692E2569202532692E2569202532692E39
:1008F0002569202532692E256941002020204E6F70
:10090000204E6176694374726C20202020202020C4
:10091000004447505320004E4F4649580020203392
:100920004420004750533A2532756D2F73205341B0
:10093000543A256420002020004346005057523A84
:100940002532692E25316941202825695729200043
:10095000484D3A25336425632020444953543A25B1
:1009600033646D20256300256300414C543A2D2DDE
:100970002D2D2000414C543A2534696D00414C54D2
:100980003A2534696D004449523A253364256300A1
:10099000202532693A2530326920202532692E25FA
:1009A000316956202534696D416800202532693A45
:1009B0002530326920202532692E253169562025BF
:1009C00034696D416800207777772E4D696B726FBF
:1009D0004B6F707465722E64652020002121204CBD
:1009E00069506F20766F6C74616765202121004526
:1009F00052523A20004552523A20253264202100BA
:100A0000202020202532756D2F733A2020484D3A42
:100A1000253364256320256300696E636C3A2532B3
:100A2000642563282532692900484D3A2533642519
:100A300063202563004D41473A2533752525200065
:100A4000212100334400442000444953543A2533C3
:100A5000646D005341543A25326420003A002D2D34
:100A60002D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DB6
:100A70002D2D2D002D2D2D2D2D2D2D2D2D2B2D2DD5
:100A80002D2D2D2D2D2D2D2D2D003A003A003A0023
:100A9000493A2532692E253169412000202025352B
:100AA00069202000202025356920200020004300F7
:100AB0004449523A202533642563002020253269B9
:100AC0003A2530326920200020202532693A25302D
:100AD0003269202000414C543A2D2D2D2D2000410B
:100AE0004C543A2534696D202000414C543A253449
:100AF000696D2025630020202532692E2531695635
:100B000020200020202532692E2531695620200022
:100B100020202020202020202020202020202020D5
:100B2000202020202000000005000500040106010F
:100B30000800060102000400040007000700070087
:100B40000700070007000700030103010500170164
:100B50000F01060009010A0119010501050119012A
:100B60001A010F0101000900060006004E6F204522
:100B700072726F722020202020202020004E6F747F
:100B800020636F6D70617469626C652020004D4B4D
:100B9000334D6167206E6F7420636F6D7061004E1E
:100BA0006F20464320636F6D6D756E6963617400DD
:100BB000436F6D7061737320636F6D6D756E6963E4
:100BC0000047505320636F6D6D756E696361746982
:100BD0006F00636F6D706173732076616C75652053
:100BE0002020005243205369676E616C206C6F7344
:100BF000742020004643207370692072782065724B
:100C0000726F7220004E6F204E4320636F6D6D75C2
:100C10006E69636174004643204E69636B204779B7
:100C2000726F2020202000464320526F6C6C2047BA
:100C300079726F2020202000464320596177204799
:100C400079726F2020202020004643204E69636B7C
:100C500020414343202020202000464320526F6C37
:100C60006C204143432020202020004643205A2D61
:100C70004143432020202020202020005072657313
:100C8000737572652073656E736F7220004932430D
:100C90002046432D3E424C2D4374726C2000426C22
:100CA000204D697373696E67202020202020004D3D
:100CB00069786572204572726F72202020202000B2
:100CC0004361726566726565204572726F7220209D
:100CD0000047505320466978206C6F7374202020A1
:100CE00020004D61676E6574204572726F7220201E
:100CF0002020004D6F746F7220726573746172747E
:100D000020202000424C204C696D69746174696F29
:100D10006E202020004750532052616E67652020CE
:100D20002020202020004E6F2053442D4361726408
:100D30002020202020200053442D4C6F6767696ECF
:100D400067206572726F7200466C79696E672072F7
:100D5000616E676521202020004D617820416C7410
:100D6000697475646521202020004E6F2047505320
:100D70002066697820202020202000636F6D70613C
:100D80007373206E6F742063616C2E00424C2D5380
:100D9000656C66746573742020202020006E6F20BF
:100DA0006578742E20636F6D706173732000636FBC
:100DB0006D706173732073656E736F7220200053C2
:100DC000657420203A00204D696B726F4B6F707410
:100DD00065722028426F6174292020002020534929
:100DE0004D554C4154494F4E2061637469766520DE
:100DF00020002021212020204C414E44494E4720F4
:100E00002020202121202000202121204C69506F0A
:100E100020766F6C746167652021212020002020DE
:100E20002020204D696B726F4B6F707465722020AB
:100E3000202020004E6F204E6176694374726C2131
:100E400000486F6D653A2533646D20253364256352
:100E50002025630044475053004E6F467800202001
:100E60003344002532756D2F73205361743A256425
:100E700020002020002D3E002D2D2F2D2D0025326D
:100E8000642F2564200023253264205750733A00D4
:100E90006E6F204750532D466978006E6F20534483
:100EA0002D436172640052656C3A25730052656C83
:100EB00061746976652057507320002020002D3E14
:100EC000002D2D2F2D2D002532642F256420002389
:100ED0002532642057503A006E6F2053442D4361F1
:100EE0007264004649583A257300464958205761B4
:100EF00079706F696E7473002020002D3E002020F1
:100F000020202020202020202020202020200044DD
:100F10006973743A25336420416C743A2533642034
:100F200000253264006E6F2053442D4361726400CB
:100F30004C6F616420506F696E74002020002D3E5C
:100F4000004469723A25336420416C743A25336455
:100F50006D00253264006E6F204750532D4669782E
:100F6000006E6F2053442D436172640053617665B7
:100F700020506F696E743A00536176652073696E14
:100F8000676C2E506F696E74004C6F6164207369DA
:100F90006E676C2E506F696E74002852656C6174B8
:100FA00069766529202020004C6F616420576179A3
:100FB000706F696E74730028466978656429202013
:100FC00020202020004C6F616420576179706F6988
:100FD0006E747300496E636C692E3A25336925631C
:100FE000202825692920004D61676E65743A2533F4
:100FF0006925252025336925630025346957202577
:1010000036696D4168002532692E253169562025E3
:1010100033692E253169410025634320202020209B
:101020000054656D7065726174757265732020205F
:101030002000253369202533692025336920253395
:10104000690025336920253369202533692025333C
:10105000690052002534696D256300253469202517
:1010600032693A253032690028426F61742D4D6F24
:101070006465290053657425643A25730053494D0E
:10108000554C4154494F4E004552524F523A20253B
:101090003264200053746174757320202020002571
:1010A00033642563202533646D2563002532692E62
:1010B000253169560008010000EA8100020101B0F3
:1010C0007B010302022F7C02040303358103050424
:1010D00009EC7C0406050A177D0507060B427D0610
:1010E00008070C577D07000806A87C040909093188
:1010F0007F050A0A0A2680060B0B0B4C7E070C0C98
:101100000C6C7D004F505152535453565748005861
:1011100059005A5545464748410049424A4A00004D
:10112000000000000000000000444C4D00000000E2
:10113000004E0000004B00432531642E2530326400
:10114000202531642E25303264202531642E25304F
:101150003264202531642E2530326400424C205602
:10116000657273696F6E7300313200313100313056
:10117000002025632020202D2020202D2020202D20
:1011800020002025632020202563202020256320A7
:101190002020256320002025632020202563202097
:1011A00020256320202025632000424C2D437472AB
:1011B0006C20666F756E64200025336420253364CF
:1011C0002025336420253364200028696E20302ECA
:1011D00031412900424C2043757272656E740025BE
:1011E00033642025336420253364202533642000B4
:1011F000424C2054656D706572617475726500258E
:101200003364202533642025336420253364200093
:10121000424C2D4374726C204572726F72732000C1
:1012200052616E67653A2533692D25336900506F29
:10123000736974696F6E3A20253369005365747061
:101240006F696E74202025336900536572766F20B4
:101250002000547275653A20202020202535690031
:101260004779726F3A2020202020253569004D6192
:10127000676E65743A20202025356900436F6D70D4
:101280006173730028726573657429004163743A51
:1012900020202535756D696E00546F74616C3A2598
:1012A00035756D696E00466C696768742D54696D9B
:1012B00065202000506F746925693A202025336924
:1012C00000506F746925693A2020253369004C610C
:1012D0006E643A202532642E25645600486F6D6591
:1012E0003A202532642E256456005761726E3A20EA
:1012F0002532642E25645600556E646572766F6CD7
:10130000746167657320200052432D4368616E6EDF
:10131000656C733A2534690052432D5175616C69CF
:1013200074793A202534690052656365697665727F
:10133000004469736368617267653A202535696D99
:10134000416800506F7765723A20202020202534B4
:1013500069570043757272656E743A2020202533F8
:10136000692E2531694100566F6C746167653A20BA
:1013700020202533692E25316956005A202020204F
:1013800025346920282533692900526F6C6C20258B
:101390003469202825336929004E69636B20253480
:1013A0006920282533692900414343202D205365B6
:1013B0006E736F72005961772020253469202825CB
:1013C00034692900526F6C6C20253469202825343B
:1013D0006929004E69636B2025346920282534690A
:1013E00029004779726F202D2053656E736F72004C
:1013F00050333A253469202050343A25346920008E
:1014000050313A253469202050323A253469200081
:1014100047733A253469202047693A25346920000A
:101420004E693A2534692020526F3A2534692000EC
:101430004B25693A25346920204B25693A253469C2
:101440002000436F6D706173733A20202025356949
:1014500000526F6C6C3A2020202020202535690036
:101460004E69636B3A2020202020202535690061D9
:1014700063742E2062656172696E670025690028B9
:101480004129004F66667365743A2020253569004E
:1014900050726573737572653A25356900536574CA
:1014A000706F696E743A25356900486569676874BC
:1014B0003A202025356900424C2D53656C667465D1
:1014C0007374204572723A253264004932432045D4
:1014D00052524F52212121004D697373696E67206A
:1014E000424C2D4374726C3A2564202121004861DE
:1014F000726477617265204572726F7220313A258D
:1015000064202121004552522532643A004D697809
:101510006572204572726F722100424F4154005330
:1015200065743A25642025730048573A5625642E81
:1015300025642053573A25642E25303264256320D4
:10154000002B204D696B726F4B6F70746572202B8E
:10155000005B25695D005B25695D0000008F001E52
:1015600001AD013B02CA025803E603740402058F71
:10157000051B06A7063307BE074808D2085B09E328
:10158000096B0AF20A780BFD0B810C040D860D071E
:101590000E870E060F840F00107B10F5106E11E5FC
:1015A000115B12CF124213B31323149214FE146A68
:1015B00015D3153B16A11605176717C817271883EB
:1015C00018DE1837198E19E319361A871AD61A2316
:1015D0001B6E1BB61BFD1B411C831CC31C001D3C4A
:1015E0001D751DAB1DE01D121E421E6F1E9A1EC3EF
:1015F0001EE91E0D1F2E1F4D1F691F841F9B1FB04C
:101600001FC31FD31FE11FEC1FF51FFB1FFF1F0090
:101610002056657273696F6E20676573656E6465C9
:10162000740021212120494E434F4D5041544942DD
:101630004C45202121210057726974696E67204250
:101640004C2025640052656164696E6720424C201D
:101650002564004C6573652053657474696E67205A
:101660002564004D69786572206C6573656E004174
:101670006E676C654E69636B20202020202020411E
:101680006E676C65526F6C6C2020202020202041FA
:1016900063634E69636B202020202020202020419E
:1016A0006363526F6C6C2020202020202020205962
:1016B00061774779726F2020202020202020204150
:1016C0006C746974756465205B302E316D5D2041EA
:1016D00063635A2020202020202020202020204723
:1016E0006173202020202020202020202020204343
:1016F0006F6D706173732056616C75652020205684
:101700006F6C74616765205B302E31565D2020520E
:1017100065636569766572204C6576656C20204747
:1017200079726F20436F6D70617373202020204D9C
:101730006F746F7220312020202020202020204D27
:101740006F746F7220322020202020202020204D16
:101750006F746F7220332020202020202020204D05
:101760006F746F7220342020202020202020203110
:101770003620202020202020202020202020203142
:101780003720202020202020202020202020203131
:101790003820202020202020202020202020203120
:1017A00039202020202020202020202020202053ED
:1017B0006572766F202020202020202020202048C5
:1017C0006F766572676173202020202020202043DF
:1017D000757272656E74205B302E31415D2020433E
:1017E00061706163697479205B6D41685D20204898
:1017F000656967687420536574706F696E74203210
:1018000035202020202020202020202020202032B1
:1018100036202020202020202020202020202032A0
:101820003720202020202020202020202020204978
:1018300032432D4572726F722020202020202042DA
:101840004C204C696D6974202020202020202047E6
:1018500050535F4E69636B202020202020202047BA
:1018600050535F526F6C6C20202020202020200AD3
:101870000D7777772E4D696B726F4B6F7074657251
:101880002E64652028632920486953797374656D37
:101890007320476D6248000A0D7468652075736592
:1018A000206F66207468697320736F667477617245
:1018B00065206973206F6E6C79207065726D697434
:1018C000746564200A0D6F6E206F726967696E61BE
:1018D0006C204D696B726F4B6F707465722D48612F
:1018E000726477617265005573657200486F545475
:1018F000205634004143542044534C004A657469D7
:10190000005370656B7472756D0050504D000A0D78
:1019100052656365697665723A2000532E4275738D
:1019200000756E6B6E6F776E2E205573696E672033
:1019300050504D2E2E2E006E6F7420737570706F88
:10194000727465642062792068617264776172657F
:1019500021000A0D202D204C4942204E4F54204397
:101960004F4D50415449424C452021212121000A2C
:101970000D0A0D212120426F6F746C6F61646572D6
:10198000206E6F7420636F6D70617469626C652086
:10199000746F204861726477617265203E20322E38
:1019A000322021210A0D0A0D000A0D466C69676874
:1019B00074436F6E74726F6C0A0D48617264776164
:1019C00072653A25642E25640A0D536F667477613B
:1019D00072653A5625642E25303264256320000056
:1019E00011241FBECFEFD0E4DEBFCDBF12E0A0E0D8
:1019F000B1E0EEECF4E601E00BBF02C007900D92FF
:101A0000AA3EB107D9F72CE0AAEEB2E001C01D92C0
:101A1000A93DB207E1F77AEAE2E0F0E081E28093E3
:101A20005700149120EF37EF41E050E0C6E1D3E0DA
:101A30006FE0DA01C9012F5F3F4F4F4F5F4FABBFE0
:101A4000FC0187918993615067FFF3CF84EE8ABDD3
:101A500080911E038093EA02893138F086E08093FA
:101A60000B0187E080930A017BEAE6E1F3E06EE098
:101A7000819178277095615067FFFACF8091250397
:101A8000781721F0173911F40000FECF0E949E5AFA
:101A90000C9465B20C9400000024222733274427BD
:101AA00051E0BB27EE27FF27A0E1660F771F881FB5
:101AB000991F001C221F331F441F660F771F881FAA
:101AC000991F001C221F331F441F2AF4050E2B1FD1
:101AD0003E1F4F1F04C0051A2B0B3E0B4F0B550F1B
:101AE000BB1FEE1F587F556047FD5250AA95E9F67F
:101AF000E695B7955795E695B7955795852F9B2F02
:101B000008952227332741E0552768E0880F991F61
:101B1000221F331F880F991F221F331F1AF4240F0F
:101B2000351F02C0241B350B440F551F487F4560ED
:101B300037FD42506A9551F756954795569547950A
:101B4000842F0895AA2797FF04C0809590958A1F37
:101B50009A1F77FF04C0609570956A1F7A1F669F71
:101B60009001779FA001679F300D411D5A1F300DD6
:101B7000411D5A1F889FF001999F2E0F3F1F401D46
:101B8000511D899F300D411D5A1F300D411D5A1F97
:101B9000CA01B901112480CF4FB720E430E0F89496
:101BA0008091C9008F778093C9008091C9008F7B95
:101BB0008093C9008091C9008F7D8093C900832FD5
:101BC00099278093CD002093CC008091C80082603B
:101BD0008093C80088E18093C9008091CA008F7704
:101BE0008093CA008091CA008F7B8093CA00809145
:101BF000CA008F7D8093CA008091CA008F7E809337
:101C0000CA008091CA00877F8093CA008091C90072
:101C10008B7F8093C9008091CA0084608093CA0042
:101C20008091CA0082608093CA008091C80087FFBB
:101C300003C08091CE00F9CF8091C9008068809365
:101C4000C9004FBF08950F931F93CF93DF93482F81
:101C50004F5F893108F08BC080913008841720F4E1
:101C60004F5F409330084150CB0183539B4268E162
:101C700070E00E9456B1A42FBB27FD01EA0FFB1FA5
:101C8000EF5CF74F808191819B01281B390BC901C3
:101C900037FF03C0909581959F4F069794F48091EC
:101CA0000404883C30F480910404865F809304042B
:101CB00008C088EC8093040480916F008F7D80932E
:101CC0006F00FD01EA0FFB1FEF5CF74F80819181F0
:101CD0009C01220F331F280F391F260F371F37FF94
:101CE00002C02D5F3F4FE901D595C795D595C795A2
:101CF000CB0101968C179D0714F4219706C0615003
:101D00007040C617D7070CF4219680910404843BD9
:101D1000D8F08D010A0F1B1FF801EF5CF74F80818F
:101D20009181FE01E81BF90BCF0163E070E00E9496
:101D300056B1CB01880F991F860F971F0958174F6F
:101D4000F8019183808307C0AA0FBB1FA958B74F22
:101D500011961C921E92E42FFF27EE0FFF1FEF5CDF
:101D6000F74FD183C083443011F410929302DF9176
:101D7000CF911F910F910895CF93DF932091AA0CDB
:101D8000822F9927807F9070409709F064C02F318F
:101D900009F040C08091AB0C8093F4029091AD0C9F
:101DA0009093F6028091AE0C8093F502992309F08E
:101DB00052C080913F05282F3327220F331FF9018E
:101DC000E958F74F1182108280914005A82FBB2758
:101DD000AA0FBB1FFD01E958F74F118210828091B5
:101DE0004205E82FFF27EE0FFF1FCF018958974FBD
:101DF000EC01198218822F5C374FE9011982188291
:101E0000AF5CB74F11961C921E92EF5CF74F118298
:101E1000108221C0C22FCF70CA30E8F48091AB0C81
:101E20008093D60C8091AC0C8093D50C8091AD0C36
:101E30008093D80C8091AE0C8093D70C6091D50C18
:101E40007091D60C8C2FFFDE6091D70C7091D80C5E
:101E50008C2F8F5FF8DEDF91CF910895CF93C82F3D
:101E60008F3F49F48091F7028F3F29F41092F902D5
:101E70001092F80231C02091F902222339F4CF31B7
:101E800011F485E001C084E08093FA028091FA02A7
:101E90009091F802821798F4892F80958093F80228
:101EA0008F3F19F48EEF8093F8028091F802C817E3
:101EB00009F462DF1092F9021092F8020BC0E22FCF
:101EC000FF27E655F34FC0832F5F2093F9029C0F45
:101ED0009093F802C093F702CF9108959091F30286
:101EE000933240F4E92FFF27EE54F34F80839F5F36
:101EF0009093F3020895833218F48D5F8093F30278
:101F0000089590E2E5EBFCE08FE19193815087FF2B
:101F1000FCCF0895CF93CFB723E031E0F8948091C0
:101F2000C9008F778093C9008091C9008F7B80930F
:101F3000C9008091C9008F7D8093C900832F9927A4
:101F40008093CD002093CC008091C8008260809364
:101F5000C80088E18093C9008091CA008F77809380
:101F6000CA008091CA008F7B8093CA008091CA000A
:101F700080628093CA008091CA0080618093CA0009
:101F80008091CA0088608093CA008091C9008460F3
:101F90008093C9008091CA0084608093CA008091B8
:101FA000CA0082608093CA008091C80087FF03C086
:101FB0008091CE00F9CF8091C90080688093C900DC
:101FC0008091C90080648093C9009BDFCFBFCF910F
:101FD0000895282F99278F709070892B31F42095C0
:101FE0008091F202822B8093F20208951F920F9249
:101FF0000FB60F9211248F93EF93FF9380910601F8
:10200000882309F068C0E091FC02EE2389F48091F6
:10201000FB02882369F48091B20C882321F081E0CF
:102020008093FD0205C08091C90081608093C90042
:102030008091FD02882379F4EF5FE093FC028091A8
:10204000890C8E1720F481E08093FD021CC0FF27CD
:10205000E757F34F3CC08091FB02882361F48091E5
:10206000B20C882311F483E003C0813999F481E034
:102070008093FB020FC0833099F48091B20C8823C7
:1020800049F01092B20C8091C9008E7F8093C900F4
:102090008EEF1EC08091C90081608093C9000EC080
:1020A000833261F48091C9008E7F8093C9008FEFE5
:1020B0008093CE0081E08093060118C08091FB02DE
:1020C000E82FFF27EE54F34F8F5F8093FB02808150
:1020D0008093CE000BC01092FB021092FC02109273
:1020E000FD028091C90080618093C900FF91EF914A
:1020F0008F910F900FBE0F901F901895682727E0C3
:10210000322F67FF06C0862F9927880F991F8327D4
:1021100002C0862F880F682F215027FFF2CF992702
:1021200008950F931F93CF93DF93062F60E0162F30
:10213000601738F4EC018991E1DF682F1F5F1017F9
:10214000D0F3862F9927DF91CF911F910F9108959A
:10215000DC0190E0961758F48C91803241F09F5F3B
:10216000961728F4FD01E90FF11D8081F6CF892F24
:1021700099270895A0E0B0E0E0ECF0E10C94E1B123
:102180008FE980938A0C80E180938C0C84EA8093A1
:102190008D0C85E580938E0C8DE580938F0C1092CD
:1021A000900C8091FF02882309F067C08091FE02A5
:1021B00013E1819FC001112463E088599E4FC8DF5D
:1021C000082F8091FE02819FC00111246AE0825A8B
:1021D0009E4FBEDF982F800F865F8093890C2EEF75
:1021E000B22EB80EB0928B0C2091FE022093910C6F
:1021F000E92EFF24C70113E0880F991F1A95E1F714
:10220000802B8093920C822F9927C3E1CC2ED12C66
:102210008C9D90018D9D300D9C9D300D1124C90128
:10222000825A9E4FA701BC0183E99CE00E9425B21F
:1022300011278091FE0299278C9DE0018D9DD00D84
:102240009C9DD00D1124CE0188599E4FA801BC0140
:10225000C7018D56934F0E9425B20757134F0E0D9D
:102260001F1D6B2D8BE89CE05CDFF801828780915D
:10227000FF028F5F8093FF0292C0C090900C1C2DD4
:102280000E94B88430910701303108F058C0B3E1A2
:10229000EB2EF12C632F812F9927FC01EE0FFF1FEE
:1022A000E80FF91FEC0DF11DE757F34F832F992726
:1022B0008E9DD0018F9DB00D9E9DB00D1124A25A10
:1022C000BE4FED012D8574E0880F991F7A95E1F7D7
:1022D000282B20873E3088F42E853F853F798A89D8
:1022E0009927982F88279295990F907E282B392B24
:1022F0002187832F9927828716C0ED012E853F8580
:10230000488959892187BB27A52F942F832F82873E
:10231000CA01AA27BB278387852F9927AA27BB270E
:102320008487E2E0CE0E862F8F5F682F1F5F163006
:1023300020F4382F803108F4AECF8093070183E07A
:10234000189FC00111242C2D280F285F2093890C81
:10235000225C20938B0C812F99278C01000F111F79
:10236000080F191F0C0D111D0757134F2054622F12
:102370008BE89CE0D6DEE8018887809107018031F8
:1023800070F081E0809307011092FF028091FE02BD
:102390008F5F8093FE02803110F01092FE02E9E020
:1023A000CDB7DEB70C94FDB180910601882309F406
:1023B00046C08091CB0385FD04C080915C048823D6
:1023C00081F082E98093B20C83E28093B30C809118
:1023D0005C04882309F485E58093B40C10925C04B6
:1023E00002C08093B20C809108018F3071F480910B
:1023F000F2020E94AD83882341F081E98093B20C00
:102400008093B30C81E38093B40C10920601809109
:10241000C80085FFFCCF8091C9008F7E8093C900E2
:102420008091C9008E7F8093C900A4DE8EE78093DF
:10243000CE008091F202809308011092F20208957A
:10244000EF92FF920F931F93CF93DF937C018B0149
:10245000EA01452B39F0F80181918F01F7010995C7
:102460002197C9F7E6E0CDB7DEB70C9400B2EF9242
:10247000FF920F931F93CF93DF937C018B01EA01AF
:10248000452B41F0F8010F5F1F4F8491F70109952B
:102490002197C1F7E6E0CDB7DEB70C9400B20F93F9
:1024A0001F93CF938C01C62F161634F480E2F801E7
:1024B0000995C1501C16D4F3CF911F910F91089527
:1024C0000F931F93CF938C01C62F161634F480E31D
:1024D000F8010995C1501C16D4F3CF911F910F91AB
:1024E0000895A5E3B0E0E7E7F2E10C94D8B12E96A9
:1024F000EEADFFAD2E978824992454018091EC0213
:10250000882321F42C961FAE1EAE2C97AEE44A2EE3
:10251000512C4C0E5D1E6F01B60105C0153239F00D
:102520000894C11CD11CF60114911123B9F7A6011E
:10253000461B570B29F02C968EAD9FAD2C9797DF3D
:10254000112309F464C20894C11CD11CFF24FDA608
:10255000FCA6EFEFEE2EF9A6F6010894C11CD11CE3
:102560001491153721F0812F80628837B1F4F0FE85
:102570000AC0F20124E030E0420E531E80809180B8
:10258000A280B3800AC0F20142E050E0440E551E22
:10259000808191814C01AA24BB24103221F489A5A9
:1025A0008823D1F61DC0133219F458E0F52AD4CF90
:1025B0001A3211F01D3291F41A3259F4F20182E00C
:1025C00090E0480E591EE081ECA7EE232CF6E19531
:1025D000ECA790E1F92AAFEDFA22BECF1B3211F43D
:1025E00019A7BACF1E32C1F5F6010894C11CD11C3F
:1025F00014911A3279F4F20122E030E0420E531EB7
:10260000408151813FEF4F3F530714F44FEF5FEF8D
:10261000E42EA2CF40E050E0812F80538A30A0F416
:10262000CA0173E0880F991F7A95E1F7840F951F0F
:10263000480F591F410F511D40535040F601089457
:10264000C11CD11C1491E8CF8FEF4F3F580714F4F1
:102650004FEF5FEFE42E85CF103329F4F4FC7CCFED
:1026600090E2F92A79CF812F81538930D8F440E064
:1026700050E0CA0163E0880F991F6A95E1F7840F63
:10268000951F480F591F410F511D40535040F601EF
:102690000894C11CD11C1491812F80538A3048F3B7
:1026A0004CA75FCF183619F4A4E0FA2A55CF1C3690
:1026B00019F4B1E0FB2A50CF133661F43E010894BF
:1026C000611C711CF20122E030E0420E531E808139
:1026D00089833CC1143421F0143611F0193651F5B8
:1026E000143411F431E0F32AF0FE0AC0F20144E0A0
:1026F00050E0440E551E80809180A280B3800CC0B3
:10270000F20182E090E0480E591E808191814C01D7
:10271000AA2497FCA094BA2CB7FE0AC0B094A09447
:1027200090948094811C911CA11CB11C8DE289A7FE
:102730000AE06FC01F3411F01F3631F41F3411F45A
:1027400091E0F92A08E064C0103779F4F201A2E0C0
:10275000B0E04A0E5B1E808191814C01AA24BB240B
:1027600000E1B0E4FB2A18E753C01337C1F5F201CA
:1027700022E030E0420E531E6080718061147104CB
:1027800089F43E010894611C711C88E289838EE6FD
:10279000F301818385E78B838CE68C838D8389E2CB
:1027A0008E831F82E7FC13C08E2D992787FD90959D
:1027B000AC0160E070E0C3010E9418B2009729F0FC
:1027C000382E3618E3140CF0C3C03E2CC1C0F30100
:1027D00001900020E9F731973E2E3618B9C0153523
:1027E00011F0153731F4153511F4F1E0FF2A0AE044
:1027F0000FC0183519F0183709F0A0C000E1F3FE3A
:1028000007C081149104A104B10411F020E4F22A5C
:1028100019A6EDA6E7FC02C03FEDF32249E2642EC3
:10282000712C6C0E7D1E81149104A104B10421F45D
:102830004DA5442309F47BC0802F9927AA27BB27E5
:102840008EA79FA7A8ABB9AB202E332490E08916A2
:1028500090E0990691E0A90690E0B90648F0C5011C
:10286000B4012EA53FA548A959A90E9469B117C076
:10287000AFEF8A169104A104B10449F040F0C401FD
:10288000B1010E9442B19B014427552708C0882D01
:10289000602F0E9436B1282F3327442755272AABB3
:1028A0003BAB4CAB5DAB0A3059F48AA9880F880F5B
:1028B000880F9AA9990F890F382D381B832F10C0C4
:1028C000003139F48AA98295807F482D481B842FD6
:1028D00007C08AA9880F880F880F582D581B852F8D
:1028E00090E02EA53FA548A959A982169306A406F3
:1028F000B50608F091E08AA89BA8ACA8BDA88A30CC
:1029000010F4805D04C0895A183509F48F7DD30115
:102910008E933D01992309F099CF083041F4F3FEDD
:1029200006C0803321F080E3FD0182933F01CE0198
:102930000196382E3618F8E23F0E0BC0112309F429
:1029400066C03E010894611C711C198331E0332E6E
:1029500019A6032D2DA4231827FC222489A588233A
:1029600011F00F5F02C0F6FC0E5F020DEF2CFF248A
:10297000C70180739070892B41F48CA5801B682F50
:102980002C968EAD9FAD2C978ADD89A5882331F0DA
:1029900041E050E0BE01675D7F4F0AC0E6FE0DC01A
:1029A00080E38AA71BA742E050E0BE01665D7F4F2F
:1029B0002C968EAD9FAD2C9743DDC7018073907030
:1029C000809741F48CA5801B682F2C968EAD9FAD0F
:1029D0002C9776DD622D2C968EAD9FAD2C9770DDF9
:1029E000832D992787FD9095AC01B3012C968EAD70
:1029F0009FAD2C9725DDE4FE8FCD2CA5201B2CA7A9
:102A0000622F2C968EAD9FAD2C9749DD85CDE2E1EE
:102A1000CB5C0C94F4B1982F8091B10C883A50F4AF
:102A20008091B10CE82FFF27E85FF84F93838F5F09
:102A30008093B10C0895982F8091B10C883A58F486
:102A40008091B10CE82FFF27E85FF84F90689383DF
:102A50008F5F8093B10C0895982F8091ED028823A9
:102A600011F0892FE8CF892FD6CF883A10F48093C0
:102A7000B10C089580E090E2EBE0F7E091938F5F76
:102A8000883AE0F308954FB721E830E0F894809158
:102A9000C9008F778093C9008091C9008F7B809394
:102AA000C9008091C9008F7D8093C900832F992729
:102AB0008093CD002093CC008091C80082608093E9
:102AC000C80088E18093C9008091CA008F77809305
:102AD000CA008091CA008F7B8093CA008091CA008F
:102AE0008F7D8093CA008091CA008F7E8093CA0038
:102AF0008091CA00877F8093CA008091C90084605A
:102B00008093C9008091CA0084608093CA0080913C
:102B1000CA0082608093CA008091C900816080935E
:102B2000C9008091C80087FF03C08091CE00F9CF13
:102B30008091C90080688093C9004FBF3CE7309303
:102B40007A062DE72093A5068EE880937B061092E7
:102B50009706109296061092800680EE80937D066E
:102B60003093DC06209307071092E8061092E706E0
:102B70001092EA061092E9061092EC061092EB060B
:102B800084EF91E09093E6068093E5069093E40647
:102B90008093E3069093E2068093E1061092DE06AE
:102BA00089E88093DD06109205071092060780E9F8
:102BB0008093DF063093B4072093DF071092B607A7
:102BC0008AE88093B5071092BC071092BB07109259
:102BD000BA071092BE071092BF071092C00710925A
:102BE000C1071092C3071092C4071092C507109234
:102BF000C6071092CA071092C9071092C807109210
:102C0000C70780EA8093B7073093A6062093D106C2
:102C10001092A8068DE88093A7061092D00680ED4A
:102C20008093A9068BE78093080780E880930907C3
:102C300010920A078091800690E2EBE0F7E0919312
:102C40008F5F883AE0F38DE78093B3070895CF93C1
:102C5000C82F80910003803879F48C2F0E94F56191
:102C60008093EF028091EF02882331F1C093B00C82
:102C70008091EF028F5F16C08F37F1F48091A90C1D
:102C8000882329F48C2F80958F708093A90C0E9443
:102C9000CC6080930A0788E097E09093F1028093DC
:102CA000F0028DEA8093EF028091C9008F7E8093BD
:102CB000C90082E08093EE02C0930003CF91089593
:102CC0003091EE02332331F08091EE0281508093F7
:102CD000EE0208958091EF02882361F14091EF02A6
:102CE00090910103413069F4292F309301038091C1
:102CF000ED02882319F03093ED0210C04093ED02ED
:102D00000DC0E091F002F091F1028191F093F10297
:102D1000E093F002282F980F909301038091C80050
:102D200085FFFCCF2093CE008091EF0281508093ED
:102D3000EF0208958091C90080618093C9000895D1
:102D40006F927F928F929F92AF92BF92CF92DF92BB
:102D5000EF92FF920F931F93882361F1823041F429
:102D600010920A0310920B0310920C0310920D03A1
:102D70002091FE033091FF03409100045091010423
:102D8000DA01C90119E0880F991FAA1FBB1F1A9504
:102D9000D1F78093570390935803A0935903B093AE
:102DA0005A03209302033093030340930403509388
:102DB000050326C1A090FE03B090FF03C09000045D
:102DC000D09001048091020390910303A091040329
:102DD000B091050335014601681A790A8A0A9B0AEF
:102DE0006092060370920703809208039092090391
:102DF00080915B0390915C0384559F4F7C01002779
:102E0000F7FC0095102F80912D0690912E069C01C5
:102E1000442737FD4095542FC801B7010E9427B1C0
:102E200097FF04C06150704E8F4F9F4FAB01BC01A4
:102E3000FDE07595679557954795FA95D1F74C5AEA
:102E400050406040704040930E0350930F036093D6
:102E50001003709311032091EC083091ED0837FFB7
:102E600002C0215F3F4FE4E035952795EA95E1F7F1
:102E700080915F0390916003829FD001839FB00D8A
:102E8000929FB00D1124CD01B7FF02C081509F4F1A
:102E9000E92FFF27E7FDFA952091EA083091EB082A
:102EA00037FF02C0215F3F4F84E0359527958A9513
:102EB000E1F780915D0390915E03829FD001839F33
:102EC000B00D929FB00D1124CD01B7FF02C081500B
:102ED0009F4F892F990F990BE80FF91FCF01AA2750
:102EE00097FDA095BA2F840F951FA61FB71F80933B
:102EF0000E0390930F03A0931003B0931103BC0132
:102F0000CD012DE030E040E050E00E9427B17B0190
:102F10008C01C401B30124EF31E040E050E00E9495
:102F200027B1DC01CB01E80EF91E0A1F1B1F80919F
:102F30000A0390910B03A0910C03B0910D03209113
:102F40001203309113034091140350911503821B17
:102F5000930BA40BB50BE80EF91E0A1F1B1FE09282
:102F60000A03F0920B0300930C0310930D03D80196
:102F7000C70180509E4FAF4FBF4FB7FF06C0D8016B
:102F8000C70181509A4FAF4FBF4F1AE0B595A79533
:102F9000979587951A95D1F7809312039093130311
:102FA000A0931403B0931503A0920203B0920303FD
:102FB000C0920403D0920503209157033091580327
:102FC0004091590350915A03E0904A03F0904B030B
:102FD00000914C0310914D032E193F09400B510BEA
:102FE000280F391F4A1F5B1F2A0D3B1D4C1D5D1DFD
:102FF00020935703309358034093590350935A0337
:10300000809112039091130390935503809354037E
:103010008091570390915803A0915903B0915A039E
:10302000BC01CD011F910F91FF90EF90DF90CF90E9
:10303000BF90AF909F908F907F906F9008952FB723
:1030400040E0F894E0E0F0E081E280935700949152
:10305000E2E0F0E0809357003491E4E0F0E0809308
:10306000570084912FBF9E3199F4363941F489304D
:1030700011F441E00DC08A3059F442E009C03739FB
:1030800039F4863011F443E003C0853009F444E09C
:10309000842F992708959FB7F8948091C900877F5E
:1030A0008093C9008091C9008F7E8093C900809170
:1030B000C9008F778093C9008091C9008F7B80936E
:1030C000C9008091C9008F7D8093C9009FBF08957A
:1030D0001F93CF93DF93182F8091EC02882309F47C
:1030E000A4C080910501181709F49FC08091EB02DC
:1030F000882319F4A4DF8093EB0282ED91E0909392
:103100009202809391028EE099E19F938F93C7EB97
:10311000DCEADF93CF93E0917806F0917906099588
:103120000F900F900F900F90812F9927AA27BB2700
:10313000FC01099778F5EE5EFE4F209178063091FC
:1031400079060C94A7B18AE099E102C081E099E187
:103150009F938F93DF93CF93F901099527C08CEF4D
:1031600098E1F6CF84EF98E1F3CF8CEE98E19F934E
:103170008F93DF93CF93F901099588ED91E09093B8
:1031800092028093910212C087EE98E1E1CF8BE129
:1031900099E1DECF81E299E19F938F93DF93CF9303
:1031A000E0917806F0917906099510E00F900F9064
:1031B0000F900F908091EB02843011F0823001F576
:1031C0006ADF812F8150833018F40E941C942BC039
:1031D000143019F40E948A0F26C0183019F40E9486
:1031E00006B021C0153019F40E94CC0D1CC0163059
:1031F00011F449DC18C01730B1F40E94C59213C015
:10320000112389F087E399E19F938F9387EB9CEAE1
:103210009F938F93E0917806F091790609950F902E
:103220000F900F900F9010930501DF91CF911F9198
:1032300008950F931F93082F81E08093EC02409133
:103240000401E7E9F8E120E030E05FE484919927A8
:103250002F5F3F4F829FB001839F700D929F700D33
:10326000112446275150319657FFF0CF4093040167
:10327000EFE6F8E120E030E057E2849199272F5FF4
:103280003F4F829FB001839F700D929F700D11245C
:1032900046275150319657FFF0CF4093040180915B
:1032A000EB02882319F4CBDE8093EB0281E792E1F5
:1032B000909379068093780680910401833459F0C5
:1032C00088E190E029E20FB6F894A8958093600019
:1032D0000FBE20936000073091F082E599E19F9343
:1032E0008F9387EB9CEA9F938F93E0917806F09100
:1032F000790609950F900F900F900F90EECF809167
:103300005401893158F18091EA028823A9F48FE6AB
:1033100099E19F938F9387EB9CEA9F938F93E09122
:103320007806F0917906099587E1809354010F9012
:103330000F900F900F9012C015BC873119F4809335
:10334000540106C087E080930B0186E080930A0158
:10335000E0910201F09103018DEF09950E944B5914
:1033600081E690E09F938F9388E090E09F938F9306
:1033700082E090E09F938F93809154016AE00E94D5
:1033800036B1892F99279F938F93809154010E9482
:1033900036B199279F938F9389EA99E19F938F93F1
:1033A00007EB1CEA1F930F93E0917806F0917906E2
:1033B000099587E998E19F938F931F930F93E0916D
:1033C0007806F091790609958FE698E19F938F939F
:1033D0001F930F93E0917806F091790609950E946A
:1033E0004B5983EC8093810080916F0080628093C1
:1033F0006F008DB79EB746968DBF1F910F910895B0
:103400008091A6058D3338F08091D70887FD03C0E1
:103410008CE38093A60580915405882331F0805574
:10342000853618F08FE78093540508958091EC025B
:10343000882309F485C08091260381508093260358
:10344000882309F069C089E1809326038091A6054D
:103450008E3338F08091D70887FD03C08DE38093C9
:10346000A605809104048238A0F58091CC03909148
:10347000CD03805D974020F080911B05843620F4B9
:1034800010922803109227032091270330912803DC
:1034900021153105B1F1C90101979093280380935B
:1034A0002703419798F18091D70884FF2FC080911E
:1034B000CA0384608093CA038091E50887FF26C011
:1034C00080918D04882311F13093280320932703E2
:1034D0001DC080910404853BC8F09091A60584E14D
:1034E000989FC00111244096209127033091280312
:1034F0002817390730F42F5F3F4F3093280320936C
:1035000027038091CA038B7F8093CA0380910401B3
:10351000833411F01092EC0290910501963009F479
:10352000CFCB80910901882321F08150809309013C
:1035300008958BE480930901943011F40C94D41114
:1035400008951F920F920FB60F9211242F933F935D
:103550004F935F936F937F938F939F93AF93BF939B
:10356000EF93FF939091CE008091EC048823B9F003
:103570009093C6008091EC04823009F03EC09F3FDA
:10358000E1F58FEF94E3ACE0B0E0C297A109B10997
:10359000B7FFFBCF80918C0A8093CE002EC0209184
:1035A0000501822F8150833020F4892F0E94659479
:1035B00024C0243021F4892F0E94E90F1EC0283036
:1035C00021F4892F0E9407B018C0809154018931DD
:1035D00020F08091EA02882381F0253021F4892FA0
:1035E0000E942E0F0AC0263019F4892F30DB05C047
:1035F000273019F4892F0E941193FF91EF91BF9109
:10360000AF919F918F917F916F915F914F913F917A
:103610002F910F900FBE0F901F90189510927C0065
:103620008FEC80937A0008958091C2038823A1F0E3
:1036300020910D0130910E01A0915603BB27A7FDEB
:10364000B0950E94C2B160934E0370934F03809374
:10365000500390935103089520910D0130910E0174
:1036600022953295307F3227207F3227A091560352
:10367000BB27A7FDB0950E94C2B1DC01CB01049726
:10368000A109B10980934E0390934F03A093500377
:10369000B09351030895EF92FF920F931F93CF932E
:1036A000DF9310925603C0DF83E090E00E94422532
:1036B000C82FD0E0C03FD10508F42A96C7BD8C2F93
:1036C000809588BD86E990E00E946E9C80911001F3
:1036D000909111018132934058F0C0EFD0E00F2E4D
:1036E000F6E3EF2EF2E0FF2EF02D07EB1CEA04C00C
:1036F000C630D105A0F720C08C2FC7BD809588BDEE
:1037000084E690E00E946E9CFF92EF921F930F93CD
:10371000E0917806F09179060995809110019091D9
:1037200011010F900F900F900F908132934020F471
:103730002197C630D10500F7C09312056C2F83E0A6
:1037400090E00E94452580914B0580FF0AC0809142
:1037500012058A508C3D28F0E2E6FAE08081806410
:10376000808380E180930C018091C203882369F1FA
:10377000809154018731A8F4CC38D10530F520EA86
:1037800030E02C1B3D0BA5ECBEE40E94B3B1969536
:1037900087959695879596958795805F80930C0180
:1037A00014C0CA3AD10588F42CEB30E02C1B3D0B39
:1037B000A5E9B7ED0E94B3B1929582958F708927E4
:1037C0009F708927805F80930C01209110013091B8
:1037D000110140910C01429FC001439F900D1124A3
:1037E000A0E0B0E08093120190931301A093140124
:1037F000B09315018CE291E00E946E9CDF91CF9115
:103800001F910F91FF90EF9008951F920F920FB6A6
:103810000F9211240BB60F928F929F92AF92BF928C
:10382000CF92DF92EF92FF920F931F932F933F93CC
:103830004F935F936F937F938F939F93AF93BF93B8
:10384000EF93FF938091410391E0980F9093410390
:1038500090E08231910508F05DC5FC01EA5BFF4F05
:103860000C94A7B1809178009091790090934003D7
:1038700080933F0381E080933E0351C5809178009F
:103880009091790090933D0380933C0310923E0306
:1038900046C5809178009091790090933B03809386
:1038A0003A0380910B0180933E0339C52091780043
:1038B0003091790080914B0490914C04821B930BC2
:1038C000909305058093040580910405909105056A
:1038D000909339038093380380910A0180933E03CB
:1038E0001EC5809178009091790020914D0430910F
:1038F0004E04821B930B90931105809310058091C9
:10390000100590911105909337038093360382E060
:1039100080933E0304C580917800909179002091B6
:103920003F0330914003820F931F90934003809395
:103930003F0381E080933E03F2C480917800909130
:10394000790020913C0330913D03820F931F9093A7
:103950003D0380933C0384E080933E03E0C4809168
:10396000B80583FF29C040911A0150911B01809135
:103970007800909179006BE0689F9001699F300D0D
:103980001124A9E8B8E80E94B3B1929582958F708E
:1039900089279F7089279A01220F331F420F531FD7
:1039A000480F591FCA0196958795969587959093CC
:1039B0001B0180931A0153C0809134039091350309
:1039C000892B99F480917800909179009C01220FC5
:1039D000331F880F991F880F991F880F991F820F17
:1039E000931F909335038093340320917800309196
:1039F00079008091340390913503A901440F551F3C
:103A0000220F331F220F331F220F331F240F351FA6
:103A10002817390730F002969093350380933403CA
:103A200005C002979093350380933403409134038B
:103A3000509135039A01A3E4B8E00E94B3B1481B4A
:103A4000590B56954795840F951F929582958F70C7
:103A500089279F70892790931B0180931A0185E025
:103A600080933E035CC4809178009091790090939C
:103A70000705809306052091060530910705809182
:103A800047049091480440914604281B390B241B9D
:103A9000310947FD339530935C0320935B032091FC
:103AA000C203211172C020915B0330915C0322306C
:103AB00031058CF18E3E22E092070CF0ADC02091D2
:103AC000320330913303A9014B5F5F4F50933303AF
:103AD000409332034091CC035091CD03443F514079
:103AE00030F4215F3F4F3093330320933203209112
:103AF000320330913303253631050CF48DC0019625
:103B0000909348048093470424563109309333033B
:103B10002093320381C020915B0330915C032F3FDF
:103B20003F4F0CF079C0873222E092070CF474C04A
:103B30002091320330913303A9014550510950932C
:103B40003303409332034091CC035091CD03443F63
:103B5000514030F42F503109309333032093320316
:103B600020913203309133032C39EFEF3E070CF0F4
:103B700053C0019790934804809347042C593F4FBA
:103B8000309333032093320347C080912D069091E8
:103B90002E068F3C9F410CF43FC080915B039091B7
:103BA0005C030297CCF02091320330913303C901BA
:103BB000019690933303809332038938934164F1E3
:103BC00046301CF44F5F40934604275833413093EE
:103BD00033032093320320C080915B0390915C03F8
:103BE0008F3F9F4FCCF480913203909133039C011F
:103BF00021503109309333032093320328373C4E50
:103C00005CF44B3F1CF041504093460489579C4E56
:103C1000909333038093320380915B0390915C0314
:103C200040911E0450911F04609120047091210462
:103C3000AA2797FDA095BA2F840F951FA61FB71F1F
:103C400080931E0490931F04A0932004B09321043A
:103C5000C0901E04D0901F04E0902004F090210436
:103C600080911E0490911F04A0912004B091210422
:103C7000BB2324F481509C4FAF4FBF4FAC01BD011B
:103C8000032E3AE075956795579547953A95D1F784
:103C9000302DD701C601841B950BA60BB70B809363
:103CA0001E0490931F04A0932004B093210483E08A
:103CB00080933E0334C380917800909179002091E5
:103CC0003F0330914003820F931F909340038093F2
:103CD0003F0381E080933E0322C38091780090915E
:103CE000790020913C0330913D03820F931F909304
:103CF0003D0380933C0310923E0311C32091780052
:103D0000309179008FEF97E0821B930B20913A035B
:103D100030913B03821B930B90936203809361036A
:103D200080910B0180933E03FAC22091780030917C
:103D3000790080914B0490914C04821B930B9093DB
:103D400005058093040520910405309105058091B7
:103D5000380390913903820F931F909360038093EF
:103D60005F0380910A0180933E03D9C2809178005D
:103D70009091790020914D0430914E04821B930B59
:103D80009093110580931005209110053091110535
:103D90008091360390913703820F931F90935E03B7
:103DA00080935D0382E080933E03B9C22091780046
:103DB0003091790080913F0390914003820F931FCF
:103DC000880F991F880F991F9093400380933F039A
:103DD0009C01992314F4295F3F4F3595279535951C
:103DE0002795359527953093660320936503209199
:103DF000300330913103820F931F99230CF4019605
:103E000095958795909331038093300320915704C3
:103E100030915804821B930B9093190180931801E1
:103E20002091690330916A038091180190911901E2
:103E3000820F931F99230CF4019695958795909383
:103E40006A038093690381E080933E0368C22091F6
:103E500078003091790080913C0390913D03820F6E
:103E6000931F880F991F880F991F90933D0380938C
:103E70003C039C01992314F4295F3F4F3595279506
:103E800035952795359527953093640320936303E3
:103E900020912E0330912F03820F931F99230CF44E
:103EA00001969595879590932F0380932E032091EB
:103EB000550430915604821B930B90931701809305
:103EC000160120916703309168038091160190914B
:103ED0001701820F931F99230CF4019695958795EE
:103EE000909368038093670383E080933E0317C237
:103EF0008091C203882311F180E00E94A016AB01DB
:103F0000BC015F5F6F4F7F4FDB01CA01772324F451
:103F100081509E4FAF4FBF4F072E79E0B595A795C3
:103F2000979587957A95D1F7702D8093420390935A
:103F30004303A0934403B093450310C08091FE0354
:103F40009091FF03A0910004B0910104809342037B
:103F500090934303A0934403B0934503109241030D
:103F600081E080930F018091520390915303019659
:103F7000909353038093520380917800909179003D
:103F800090931101809310018091C203882309F45A
:103F90006EC0C0901001D0901101E12CF12C8091E5
:103FA0004E0390914F03A0915003B0915103C81A52
:103FB000D90AEA0AFB0AC0922A03D0922B03E092A4
:103FC0002C03F0922D038090120190901301A09089
:103FD0001401B0901501609112017091130180914C
:103FE00014019091150120910C0130E040E050E067
:103FF0000E948BB1821A930AA40AB50A8092120118
:1040000090921301A0921401B092150180911201B7
:1040100090911301A0911401B0911501C80ED91E01
:10402000EA1EFB1EC0921201D0921301E09214010D
:10403000F09215018091080590910905A0910A055B
:10404000B0910B0540911201509113016091140140
:1040500070911501841B950BA60BB70B809346033B
:1040600090934703A0934803B09349034FC1209115
:1040700010013091110180912A0390912B03A0919E
:104080002C03B0912D03820F931FA11DB11D8093AE
:104090002A0390932B03A0932C03B0932D0320911C
:1040A00029032F5F20932903203108F42FC1409169
:1040B00012015091130160911401709115016A0170
:1040C0007B01CC0CDD1CEE1CFF1CCC0CDD1CEE1CA3
:1040D000FF1CCC0CDD1CEE1CFF1CC41AD50AE60A22
:1040E000F70AC80ED91EEA1EFB1E40914E035091DE
:1040F0004F036091500370915103C41AD50AE60A28
:10410000F70AB701A60122F4495F5F4F6F4F7F4F57
:10411000689412F875956795579547951694D1F759
:104120004093120150931301609314017093150191
:10413000409108055091090560910A0570910B05A1
:104140000091120110911301209114013091150179
:10415000401B510B620B730B409346035093470374
:1041600060934803709349030091570310915803DB
:104170002091590330915A03C0905703D0905803AF
:10418000E0905903F0905A03FF202CF4EFE0CE0E9C
:10419000D11CE11CF11C46015701689413F8B59439
:1041A000A794979487941694D1F768017901C81859
:1041B000D908EA08FB08C0925703D0925803E0924E
:1041C0005903F0925A03C0905703D0905803E090DF
:1041D0005903F0905A03C40ED51EE61EF71EC09276
:1041E0005703D0925803E0925903F0925A03C090BB
:1041F0005703D0905803E0905903F0905A03FF20E2
:104200002CF42FE0C20ED11CE11CF11C689413F8B1
:10421000F594E794D794C7941694D1F74C195D0997
:1042200041156CEF560714F440E05CEF4130E4E0D8
:104230005E0714F040E054E02091540330915503A0
:1042400033231CF43195219531092D3B32401CF16B
:104250006091540370915503EFE0E69F9001E79F52
:10426000300D1124440F551F440F551F440F551F87
:10427000420F531F552314F4415F5F4F55954795E7
:1042800055954795559547955595479550935503A1
:104290004093540324C06091540370915503EFE19F
:1042A000E69F9001E79F300D1124440F551F440FE6
:1042B000551F440F551F420F531F552314F4415EE1
:1042C0005F4F559547955595479555954795559504
:1042D0004795559547955093550340935403AC012A
:1042E000BD01BB2324F44F5F5F4F6F4F7F4F759528
:1042F00067955795479540932A0350932B036093F6
:104300002C0370932D0388E08093290382E080932F
:104310003E0305C01092410382E080933E038091EA
:104320003E0380937C0080914103882319F08FEC39
:1043300080937A00FF91EF91BF91AF919F918F9100
:104340007F916F915F914F913F912F911F910F91AD
:10435000FF90EF90DF90CF90BF90AF909F908F90A5
:104360000F900BBE0F900FBE0F901F9018951092DC
:1043700016051092150510921A0510921905109243
:1043800018051092170510921B0582E390E00E9419
:104390005A9C90937403809373030895282F30E000
:1043A0009FE0899FF0011124E956F64F85818F3FE8
:1043B00009F1893C10F490E008959FE0929FF0018C
:1043C000939FF00D1124E956F64F908192FF10C093
:1043D000282F30E0C901880F991F220F331F220FA9
:1043E000331F220F331F820F931F88509740089569
:1043F00090E0089580E090E008959F92AF92BF9280
:10440000CF92DF92EF92FF920F931F93CF93DF93A0
:1044100080917303909174030E94639C882309F434
:10442000FBC08091730390917403C29690937403C0
:104430008093730380911B058E3F31F48091C903F3
:1044400081608093C903DDC08F3F09F0DAC080919D
:10445000C9038E7F8093C903D4C07801F8013397D4
:1044600080818823E4F4B39432968081893C28F0DB
:104470008A2D94DFC80FD91F02C0C80FD11DF701C4
:1044800035978081C80ED11CF7018081981630F4D1
:104490008091C9038E7F8093C90301C0982EA39495
:1044A000015F1F4FFCE0AF12D8CF90921B05CD28C3
:1044B00059F540916F0350917003609171037091B1
:1044C0007203052F162F272F332710936E030093A7
:1044D0006D0322273327401B510B620B730B4C0FCC
:1044E0005D1F611D711D40936F03509370036093B6
:1044F00071037093720385E090E0909316058093AA
:104500001505C5E0D0E01CC080916D0390916E034D
:104510008C179D0728F49E01281B390BC90102C086
:1045200080E090E0CB2DD0E0CC0FDD1F2596C80FAA
:10453000D91FD0931605C0931505CF3FD105D0F4F0
:1045400080911A0190911B01C89F9001C99F300D65
:10455000D89F300D11243695279536952795ABE7D2
:10456000B4E10E94B3B19695879590931805809316
:10457000170525C080911A0190911B019E01369567
:10458000279536952795289FA001299F500D389F84
:10459000500D11249A01AFEAB7E40E94B3B1481B51
:1045A000590B56954795840F951F929582958F705C
:1045B00089279F708927909318058093170580910C
:1045C0006B0390916C03C80FD91FD0936C03C093F9
:1045D0006B03C13D32E0D307F8F08091190590914B
:1045E0001A050196C05DD240C13DE2E0DE07C8F782
:1045F00090931A0580931905D0936C03C0936B03B5
:104600000BC00DE919E099249A94B12CA12CC12C6E
:10461000D12CC0E0D0E021CFDF91CF911F910F913D
:10462000FF90EF90DF90CF90BF90AF909F90089554
:104630009091760391110FC0E091750391E09E0F68
:1046400090937503F0E0E45EFA4F81839F3118F098
:104650008EE18093750308959091760391110DC0BA
:1046600080931C05E0917503F0E0E45EFA4F11823F
:104670001092750381E080937603089561157105AA
:1046800051F0FC01680F791F8AEA9191890FE617B2
:10469000F707D9F708958AEA0895FF920F931F93B9
:1046A000CF93DF936115710589F08B01080F191FF6
:1046B000EC010F2EFAEAFF2EF02DCE010E943EB241
:1046C000F80E2196C017D107C1F704C00F2EFAEAE1
:1046D000FF2EF02D8F2DDF91CF911F910F91FF9025
:1046E000089581E08093410582E08093400583E056
:1046F00080933F0584E08093420585E080934305E5
:1047000086E08093440587E08093450588E08093A8
:10471000460589E0809347058AE0809348058BE051
:10472000809349058CE080934A05089587E680933D
:104730003E058CE0EAEBF5E0DF011D928A95E9F792
:104740008AE080935E05109282058BE180935A0582
:104750008EE480937F058093800580E280938105BD
:104760001092B6058AE680934B0582E78093B805E0
:1047700080E58093B90586E0809365051092A305D6
:104780001092A00588E08093580586EE8093590525
:1047900080E480935B0585E080934E058EE18093F5
:1047A0004C058EE6809353058091C203882399F0CF
:1047B00084E180934F0588E280934D058EE18093DC
:1047C000510581E0809352058FE7809354058CE377
:1047D0008093A6050FC08FE080934F058EE18093F4
:1047E0004D051092510588E08093520510925405B2
:1047F0001092A6058FE0809350051092AF058CE0D3
:104800008093B005109267051092680510926905B3
:1048100010926A0510928405109285051092860503
:104820001092870520E820936B0582E380936C0546
:1048300052E05093B70598E190936D0596EE9093F2
:104840006E0593E0909373059DE7909376059093A2
:1048500077059093780520936F0575E57093700543
:1048600026E4209371053CED309372053CE33093D0
:104870007405109275053AEA309388054CEC409324
:104880008A0510928C0530938D0548E24093890586
:1048900040938B0510928E051092B4058093B50558
:1048A000809379053AE530937A0580937B0566E03D
:1048B00060938F05E4E6E0939005E09391053093D3
:1048C0009205E8E7E0939305409397054BE4409306
:1048D000940570939505409396056093980548E07C
:1048E0004093990580939A058AE280939B051092E4
:1048F0009C0510929F058CE880939D0550939E0522
:104900001092A1051092A20541E4409363053093F3
:1049100064051092A4051092A50536E93093A70509
:1049200090937C0594E390937D051092A8051092D6
:10493000A9051092AA058093AB052093AC0580933E
:10494000AD052093AE051092B10580E2809362051B
:104950008FE18093B3058EE18093B2050895E6DE82
:104960008AE08093550580E18093560586E0809328
:1049700057052AE520935C0598E790935D05209301
:104980005F05909360058093610580E280936605E2
:104990008CE380937E058BE48093830586E491E627
:1049A000A3E7B4E78093BA059093BB05A093BC0539
:1049B000B093BD0568E870E08EE395E05FDE80931C
:1049C000C6050895B3DE88E08093550580E18093A5
:1049D000560596E09093570534E630935C0528E73A
:1049E00020935D0530935F052093600590936105EA
:1049F0008093660586E480937E058093830585E039
:104A0000E5ECF2E0AAEBB5E001900D928A95E1F7B2
:104A100068E870E08EE395E031DE8093C605089586
:104A200085DE86E0809355059AE09093560594E0E4
:104A30009093570524E620935C0598E790935D05D5
:104A400020935F05909360058093610580E18093DA
:104A5000660586E480937E058093830585E491E670
:104A6000A3E7B9E78093BA059093BB05A093BC0573
:104A7000B093BD0568E870E08EE395E0FFDD8093BC
:104A8000C60508950C943EB208950C9454B208954E
:104A90000C9446B208950C9462B20895FF920F935D
:104AA0001F93CF93DF939FEF980F953008F083E02B
:104AB00090E0019729E8289FE001299FD00D11245B
:104AC0008E010C591F4F68E870E0C801E6DDF82E32
:104AD000CE0184519F4F0E943EB28F1112C0C80177
:104AE0000E943EB2873679F449E850E0B8018EE37F
:104AF00095E00E942EB20E9480850E943A1581E0C6
:104B000003C080E001C080E0DF91CF911F910F9141
:104B1000FF900895CF936DE470E088EE93E0BDDDE3
:104B2000C82F85E394E00E943EB28C1310C088EE3B
:104B300093E00E943EB2813061F44EE450E068EEB2
:104B400073E087EC95E00E942EB281E003C080E024
:104B500001C080E0CF9108958091C705813089F42C
:104B60006DE470E087EC95E089DD809314064EE4F7
:104B700050E068EE73E087EC95E00E944BB281E074
:104B8000089580E0089581E08093C705E7EDF5E0A2
:104B900087E196E0DF0113971C9211961C92119603
:104BA0001C9210823496E817F907A1F780E48093ED
:104BB000D4058093D5051092D6058093D7058093B0
:104BC000D80590EC9093D9051092DA058093DB0517
:104BD0008093DC051092DD059093DE059093DF0550
:104BE0008093E0051092E1058093E2059093E30540
:104BF0008CE0E8EBF2E0A8ECB5E001900D928A952C
:104C0000E1F76DE470E087EC95E038DD8093140601
:104C1000089582E090E00E943EB2863030F063E07A
:104C200082E090E00E9454B283E0809352010895A4
:104C3000863008F085E0811101C081E08093520147
:104C4000682F82E090E00C9454B20895CF93909135
:104C50003E05973609F047C0C82F863008F0C5E0FA
:104C6000CC2309F442C00E94001A8091B90582FF4A
:104C700007C080916305843618F080E58093630552
:104C800068E870E08EE395E0F9DC8093C6052C2F90
:104C900030E02150310989E8829FB001839F700D77
:104CA00011246C597F4F49E850E08EE395E00E9453
:104CB0004BB24CE050E060E570E08FE395E00E947D
:104CC0004BB26CE070E08FE395E0D8DC682F8CE5A8
:104CD00090E00E9454B28C2FABDF0E9480850E942E
:104CE0003A1581E003C080E001C080E0CF910895D3
:104CF000CF93DF93C82FD62F863080F4882339F0E6
:104D0000823041F0833041F0813049F401C0C1E08C
:104D100026DE06C057DE04C083DE02C0C5E080DEAA
:104D2000DD23B9F06CE070E080E590E0B6DCD82FD0
:104D30008CE590E00E943EB28D1309C04CE050E03B
:104D400060E570E08FE395E00E942EB203C0C9DCFD
:104D500001C0C7DC8C2F7ADFDF91CF9108958F924D
:104D60009F92AF92BF92CF92DF92EF92FF920F93FA
:104D70001F93CF93DF9381E190E00E943EB2909128
:104D80005401981771F1963149F4853139F44C99F1
:104D900005C060E081E090E00E9454B2609154014F
:104DA00081E190E00E9454B228E088E190E00FB6E3
:104DB000F894A895809360000FBE2093600089EB63
:104DC00092E09F938F9387EB9CEA9F938F93E09160
:104DD0007806F091790609950F900F900F900F903B
:104DE000FFCF81E090E00E943EB2FF24F39487362B
:104DF00009F4F12C6CE070E080E590E04EDCB82E18
:104E00008CE590E00E943EB2C82EC1E0D0E0D12CEB
:104E10000F2EF3E98F2EF2E09F2EF02D07EB1CEA08
:104E2000AA24A394EC2EF11004C08C2F37DE81113C
:104E30002CC0DF93CF939F928F921F930F93E0919B
:104E40007806F091790609950F900F900F900F90CA
:104E50000F900F9081E0E81621F092E0E91619F02A
:104E600004C07DDD03C0AEDD01C0DADDBC1009C0C9
:104E70004CE050E060E570E08FE395E00E942EB2D8
:104E800001C02FDC8E2DE2DEDA2C2196C630D10552
:104E900049F6DD2011F083E0CBDEBBDEC82FFEDD5E
:104EA0001F92CF938AE792E09F938F9387EB9CEAC0
:104EB0009F938F93E0917806F0917906099581E0B0
:104EC00090E00E943EB20F900F900F900F900F90C5
:104ED0000F908F3F19F01EDE811113C089E592E01B
:104EE0009F938F9387EB9CEA9F938F93E091780633
:104EF000F0917906099547DE2FDE0F900F900F9005
:104F00000F90FF2029F067E681E090E00E9454B204
:104F1000E4EDF5E084E196E020E0308113160CF436
:104F20002F5F3496E817F907C1F720933D051F92CC
:104F30002F9388EC95E09F938F9388E392E09F9363
:104F40008F9387EB9CEA9F938F93E0917806F09183
:104F5000790609950E944B598DB79EB708960FB6F2
:104F6000F8949EBF0FBE8DBFDF91CF911F910F911F
:104F7000FF90EF90DF90CF90BF90AF909F908F9079
:104F80000895CF92DF92EF92FF928091EA0890917C
:104F9000EB089093490C8093480C8091EC08909119
:104FA000ED0890934B0C80934A0C80916006909191
:104FB000610699230CF403969595879595958795A9
:104FC00090934D0C80934C0C8091720690917306D7
:104FD00099230CF4039695958795959587959093CD
:104FE0004F0C80934E0C20916103309162038091AD
:104FF000530490915404821B930B9093510C809313
:10500000500C6091FE037091FF0380910004909119
:1050100001040F2EFAE0CF2ED12CE12CF12CF02D33
:10502000A70196010E948BB13093530C2093520C30
:1050300080910605909107059093550C8093540C30
:1050400080914E0190914F019093590C8093580C90
:1050500080911A0190911B0190935B0C80935A0CE4
:105060008091040490E090935D0C80935C0C80919F
:1050700021069091220690935F0C80935E0C8091A4
:10508000980990E09093610C8093600C8091A7093F
:1050900090E09093630C8093620C8091B60990E04D
:1050A0009093650C8093640C8091C50990E0909377
:1050B000670C8093660C8091C6049091C70490930E
:1050C000710C8093700C8091E8039091E9039093A8
:1050D000730C8093720C8091150590911605909336
:1050E000750C8093740C8091190590911A0590931A
:1050F000770C8093760C6091FA037091FB0380919A
:10510000FC039091FD03A70196010E948BB130939F
:10511000790C2093780C80911B0590E09093830C80
:105120008093820C80916A0490916B049093850C1B
:105130008093840C80916804909169049093870C0B
:105140008093860C8091620A811104C08091630A69
:10515000882331F0E7E4FCE080818160808305C032
:10516000E7E4FCE080818E7F8083FF90EF90DF900A
:10517000CF900895FF920F931F93CF93DF938B01EE
:1051800090910304911131C090915401993111F41F
:10519000299821C0299A1FC01093CE040093CD04F2
:1051A000E8010FC09091D104992359F01092D104D5
:1051B0002091CD043091CE04232B09F421970E9435
:1051C000161A2091CD043091CE04232B59F7209745
:1051D00049F7FA9401C0F82EF110DECF8091540106
:1051E000893111F4299A01C02998DF91CF911F913B
:1051F0000F91FF900895EAE7F0E010828091650337
:10520000909166039093280680932706809163030C
:105210009091640390931D0680931C068091610316
:1052200090916203909368068093670680915D0376
:1052300090915E039C01220F331F820F931F880FF2
:10524000991F909361068093600680915F0390910F
:1052500060039C01220F331F820F931F880F991F39
:1052600090937306809372068FEC808320917F0564
:1052700030E0A4ECB9E00E94B3B1609346017093B2
:10528000470180934801909349012091800530E0C7
:105290000E94B3B160934201709343018093440133
:1052A0009093450108958F929F92AF92BF92CF92B3
:1052B000DF92EF92FF920F931F93CF93DF93C82F4C
:1052C0001092620A10924E0410924D0410924C04F7
:1052D00010924B0410924804109247041092460416
:1052E00010925804109257041092560410925504CC
:1052F000109254041092530410922A011092290122
:1053000010925603833029F48091C9038260809300
:10531000C90371DF84E690E00E946E9C6CDF80918F
:105320004B0580FF13C08091100190911101873BC4
:10533000934050F480911001909111018E3E924063
:1053400018F08091560381110E944B1B00911001AF
:105350001091110187B58B5F87BD87B5809588BD9A
:10536000D0E2E12CF12CA12CB12C812C912CC12C60
:10537000D12C8AE090E00E946E9C80916103909114
:105380006203C80ED91E8091650390916603880E52
:10539000991E8091630390916403A80EB91E8091B9
:1053A000060590910705E80EF91ED15011F780917E
:1053B000100190911101823F934080F4809110017F
:1053C00090911101459750F0809110019091110139
:1053D000081B190B10930E0100930D0187B5855022
:1053E00087BD87B5809588BD80E1880E911C969415
:1053F000879496948794909258048092570420E161
:10540000A20EB11CB694A794B694A794B092560479
:10541000A092550440E1C40ED11CD694C794D694F2
:10542000C794D694C794D694C794D694C794D09270
:105430005404C092530460E1E60EF11CF694E79424
:10544000F694E794F694E794F694E794F694E79448
:10545000F0924804E0924704B0925204A0925104A2
:105460009092500480924F04C23009F04CC0809159
:1054700060069091610699231CF49195819591099C
:105480006CE070E00E9456B19B0170934E046093F3
:105490004D04809172069091730699231CF49195A6
:1054A000819591096CE070E00E9456B170934C04B4
:1054B00060934B04B90184E090E0EDDA60914B0415
:1054C00070914C0486E090E0E6DA609147047091B8
:1054D000480488E090E0DFDA609157047091580446
:1054E00082E190E0D8DA609155047091560484E12D
:1054F00090E0D1DA609153047091540486E190E019
:10550000CADAD1E091C084E090E0C2DA90934E0410
:1055100080934D0486E090E0BBDA90934C04809336
:105520004B0420914D0430914E042130384018F442
:1055300081309840A8F185E093E09F938F9387EBAB
:105540009CEA9F938F93E0917806F09179060995F4
:10555000809160069091610699231CF49195819544
:1055600091096CE070E00E9456B170934E04609314
:105570004D04809172069091730699231CF49195C5
:10558000819591096CE070E00E9456B170934C04D3
:1055900060934B040F900F900F900F90D0E001C0DC
:1055A000D1E08091C90381FF3FC082E190E070DAD1
:1055B0008C0184E190E06CDA7C0186E190E068DAAD
:1055C0009801395121383C4058F49701395121381C
:1055D0003C4030F49C012052334021393140C0F02E
:1055E00081EE92E09F938F9387EB9CEA9F938F933A
:1055F000E0917806F091790609958091C9038D7F35
:105600008093C9030F900F900F900F90D0E00CC0C3
:105610001093580400935704F0925604E0925504F6
:10562000909354048093530412BC11BC109228062A
:105630001092270610921D0610921C061092680602
:105640001092670688EC90E00E946E9C80915D034A
:1056500090915E03DC01AA0FBB1F8A0F9B1FDC0128
:10566000AA0FBB1FB0936106A093600680915F03F1
:1056700090916003FC01EE0FFF1F8E0F9F1FFC0136
:10568000EE0FFF1FF0937306E093720680905A05A9
:10569000912CA12CB12CA50194010E94D2B16B01D7
:1056A0007C0160934204709343048093440490937C
:1056B0004504DF010E94D2B160933E0470933F0421
:1056C0008093400490934104C0923604D0923704F2
:1056D000E0923804F09239046093320470933304FA
:1056E000809334049093350410922E0410922F046A
:1056F0001092300410923104E0914E01F0914F016C
:10570000F0931D04E0931C0484E690E090934B0119
:1057100080934A0120917F0530E0A4ECB9E00E941B
:10572000B3B1DC01CB018856954CAF4FBF4F80938E
:10573000460190934701A0934801B09349012091FD
:10574000800530E0A4ECB9E00E94B3B1DC01CB01EC
:105750008856954CAF4FBF4F8093420190934301C1
:10576000A0934401B09345011092260110922501A7
:105770002091210130912201409123015091240177
:10578000DF010E94D2B160936E0670936F06809322
:1057900070069093710610921904109218040E94DA
:1057A0008085CC2329F08091CB0384608093CB0348
:1057B0008FEF80934C0910924D0980E280934E093F
:1057C00084E6809304048091CB04882311F0579AD7
:1057D00019C08091B7058570853039F480EE9EE25E
:1057E0009093A8028093A70206C080E091E1909375
:1057F000A8028093A70281E08093AF020E94149DCB
:105800000E94149DC0902101D0902201E0902301BC
:10581000F090240160913E0470913F048091400417
:1058200090914104A70196010E948BB149015A0150
:105830006091420470914304809144049091450426
:10584000A70196010E948BB1B401C9010E94A20D6B
:105850007C010E942D919C0190932E0680932D0631
:1058600060914704709148047250CB01AA2797FDBC
:10587000A095BA2F072E7DE0880F991FAA1FBB1F86
:105880007A95D1F7702DBC01CD01705F8F4F9F4F7E
:10589000442737FD4095542F0E948BB1C901B901AF
:1058A0007E5F709348046093470465E1E616F10457
:1058B0000CF0D0E0CC2379F06091C203662359F05C
:1058C0002C5831092234310530F0E2E6FAE020812B
:1058D00020622083D0E02091570430915804205654
:1058E0003940213C3B4228F0E2E6FAE02081216089
:1058F0002083209155043091560420563940213C94
:105900003B4228F0E2E6FAE02081226020832091E9
:105910005304309154042C5231402937354028F03B
:10592000E2E6FAE020812460208320914D0430914A
:105930004E042C523140233C314028F0E2E6FAE09C
:1059400020812860208320914B0430914C042C52FC
:105950003140233C314028F0E2E6FAE0208120612A
:1059600020838335914028F0E2E6FAE0808180626E
:1059700080838091620A8111D0E086E480933D01AA
:105980000E943A1582E00E94A01680911201909127
:105990001301A0911401B091150180930805909313
:1059A0000905A0930A05B0930B05109255031092B8
:1059B00054031092570310925803109259031092F7
:1059C0005A0310921E0410921F0410922004109289
:1059D00021041092810C1092800C0E94141B809163
:1059E000C90381FF07C080918205811103C084E053
:1059F000809382058D2FDF91CF911F910F91FF90A2
:105A0000EF90DF90CF90BF90AF909F908F900895D0
:105A10002F923F924F925F926F927F928F929F92BE
:105A2000AF92BF92CF92DF92EF92FF920F931F93AC
:105A3000CF93DF93CDB7DEB760970FB6F894DEBF94
:105A40000FBECDBF2091610330916203809153045A
:105A500090915404821B930B909368068093670681
:105A60008091690390916A0399230CF407969C0135
:105A700035952795359527953595279530932806A3
:105A800020932706809167039091680399230CF473
:105A90000796959587959595879595958795909374
:105AA0001D0680931C063093300620932F0690939A
:105AB0002B0680932A0620915D0330915E0380912E
:105AC000600690916106AC01440F551F840F951F2D
:105AD000A901440F551F240F351F220F331F820FBA
:105AE000931F99230CF40396959587959595879523
:105AF000909361068093600620915F03309160036C
:105B00008091720690917306AC01440F551F840F6B
:105B1000951FA901440F551F240F351F220F331F56
:105B2000820F931F99230CF403969595879595956D
:105B30008795909373068093720680915D03909190
:105B40005E032091390630913A06820F931F90939D
:105B50003A068093390680915F039091600320910B
:105B60006A0630916B06820F931F90936B068093A9
:105B70006A068091490490914A04019690934A04E0
:105B8000809349048091460390914703A091480374
:105B9000B09149038093FE039093FF03A093000408
:105BA000B09301048091420390914303A091440378
:105BB000B091450380934A0390934B03A0934C0309
:105BC000B0934D038FEC80937A0010920F010091F7
:105BD0003204109133047091340460913504509173
:105BE00036044091370430913804209139042090D4
:105BF0006706309068066101EE24D7FCE094FE2C25
:105C000080912E0490912F04A0913004B091310422
:105C100046015701880E991EAA1EBB1E80922E04B3
:105C200090922F04A0923004B092310480916E06BD
:105C300090916F06A0917006B09171062601370110
:105C4000480E591E6A1E7B1E40926E0650926F06C9
:105C500060927006709271068091E7038111C5C150
:105C60008091E6038111C1C180915C0686FFBDC1B0
:105C700009871A877B876C8789859A85AB85BC8560
:105C8000883B9449AE4FBF4F44F488EB94E9AEEFA4
:105C9000BFEF89879A87AB87BC8789859A85AB8553
:105CA000BC8589349B46A140B10544F088E49BE65D
:105CB000A1E0B0E089879A87AB87BC87852F942FB6
:105CC000A32FB22F883BE4E99E07EEEFAE07EFEF7C
:105CD000BE0724F488EB94E9AEEFBFEF8D839E837B
:105CE000AF83B88789349B46A140B10544F008E4EE
:105CF0001BE621E030E00D831E832F8338878091DF
:105D00002901082F10E020E030E00D871E872F8743
:105D1000388BA0911C06B0911D062D813E814F81CC
:105D200058850E94D2B18B019C01992324F4015023
:105D3000184F2F4F3F4FA9019801012E1BE0559599
:105D40004795379527951A95D1F7102D6D857E8546
:105D50008F8598890E9427B18B019C01992324F497
:105D60000150104F2F4F3F4FD901C801072E7CE043
:105D7000B595A795979587957A95D1F7702D8983D5
:105D80009A83AB83BC838093B8039093B903A093A9
:105D9000BA03B093BB03A0912706B09128062985CA
:105DA0003A854B855C850E94D2B18B019C01992379
:105DB00024F40150184F2F4F3F4FC901B801052E51
:105DC0005BE095958795779567955A95D1F7502D16
:105DD0002D853E854F8558890E9427B18B019C01F6
:105DE000992324F40150104F2F4F3F4FD901C80180
:105DF000072E7CE0B595A795979587957A95D1F76D
:105E0000702DE981FA81F0931606E09315069093C0
:105E100018068093170609811A812B813C81801B0B
:105E2000910BA20BB30B8093B4039093B503A09393
:105E3000B603B093B703B301A201480F591F6A1FFD
:105E40007B1F40936E0650936F06609370067093AD
:105E500071062091280121111AC0AC01BD01BB239C
:105E600024F44F5F5F4F6F4F7F4F75956795579540
:105E7000479595018401041B150B260B370B0093E6
:105E80002E0410932F0420933004309331044601E4
:105E90005701880E991EAA1EBB1EE0902A01CE2C27
:105EA000D12CE12CF12CA50194016D817E818F8193
:105EB00098850E9427B18B019C01992324F40150FD
:105EC000184F2F4F3F4FA9019801012E1BE0559508
:105ED0004795379527951A95D1F7102DC701B6012B
:105EE0000E9427B12B013C01992334F41FEF410E8E
:105EF0001FE0511E611C711C032E3CE075946794D9
:105F0000579447943A95D1F7302D4092B003509270
:105F1000B1036092B2037092B303A5019401698545
:105F20007A858B859C850E9427B18B019C019923E2
:105F300024F40150184F2F4F3F4FC901B801052ECF
:105F40005BE095958795779567955A95D1F7502D94
:105F5000A70196010E9427B18B019C01992324F48B
:105F60000150104F2F4F3F4FD901C801072E7CE041
:105F7000B595A795979587957A95D1F7702D8093CC
:105F8000AC039093AD03A093AE03B093AF03910124
:105F9000332024F4222733272219330921343105F1
:105FA000E4F1B301A20177203CF444275527BA015C
:105FB000441955096609770941385105610571058C
:105FC00084F4AC01BD01BB233CF444275527BA013E
:105FD000481B590B6A0B7B0B413851056105710554
:105FE000E4F081E080931A0418C010921806109211
:105FF000170610921606109215061092AC03109216
:10600000AD031092AE031092AF031092B003109242
:10601000B1031092B2031092B303C090B003D090BA
:10602000B103E090B203F090B3038090AC03909082
:10603000AD03A090AE03B090AF030F2EF4E64F2E49
:10604000512C612C712CF02DC501B401A3019201DA
:106050000E948BB11601221A330A30922606209232
:106060002506C701B601A30192010E948BB1F90177
:10607000E819F909F0931F06E0931E0640902101EC
:10608000509022016090230170902401A8E6B1E0B5
:10609000A30192010E94C8B16B017C0180906E0641
:1060A00090906F06A0907006B090710686169706C5
:1060B000A806B90684F0A8E9BEEF0E94D4B1860E06
:1060C000971EA81EB91E80926E0690926F06A0922F
:1060D0007006B092710680916E0690916F06A09145
:1060E0007006B0917106BB2364F48C0D9D1DAE1D2E
:1060F000BF1D80936E0690936F06A0937006B093B9
:10610000710680911C0690911D06820D931D2091B1
:10611000EC033091ED03821B930BAA2797FDA0950A
:10612000BA2F40913204509133046091340470913D
:106130003504480F591F6A1F7B1F40933204509348
:10614000330460933404709335048091420190913C
:106150004301A0914401B091450184179507A6071A
:10616000B70784F448EA51E660E070E0481B590B39
:106170006A0B7B0B409332045093330460933404D6
:1061800070933504882499245401881A990AAA0A1C
:10619000BB0A4091320450913304609134047091F1
:1061A0003504481559056A057B0564F4885A9146FB
:1061B000A109B1098093320490933304A09334046D
:1061C000B093350440912706509128064E0F5F1F6B
:1061D0002091EA033091EB03421B530B662757FDD6
:1061E0006095762F8091360490913704A091380401
:1061F000B0913904840F951FA61FB71F80933604F2
:1062000090933704A0933804B09339044091460129
:106210005091470160914801709149014817590711
:106220006A077B0784F488EA91E6A0E0B0E0841B6B
:10623000950BA60BB70B8093360490933704A0936D
:106240003804B0933904882499245401841A950A97
:10625000A60AB70A8091360490913704A0913804B9
:10626000B091390488159905AA05BB0574F4DB01C2
:10627000CA01885A9146A109B109809336049093C6
:106280003704A0933804B093390480912E04909180
:106290002F04A0913004B091310480933A0490937C
:1062A0003B04A0933C04B0933D048091360490914C
:1062B0003704A0913804B09139048093420490933C
:1062C0004304A0934404B093450480913204909118
:1062D0003304A0913404B091350480933E0490932C
:1062E0003F04A0934004B093410480911801909121
:1062F000190199230CF4079695958795959587959F
:10630000959587959093280680932706809116018E
:106310009091170199230CF407969595879595957B
:1063200087959595879590931D0680931C0680917F
:106330006503909166030F9734F488E19CEF909386
:10634000280680932706809165039091660307973E
:1063500034F480E398EF9093280680932706809189
:10636000650390916603813D974034F088EE93E099
:106370009093280680932706809165039091660389
:10638000803E974034F080ED97E09093280680930C
:10639000270680916303909164030F9734F488E19A
:1063A0009CEF90931D0680931C068091630390914F
:1063B0006403079734F480E398EF90931D0680936D
:1063C0001C068091630390916403813D974034F0F3
:1063D00088EE93E090931D0680931C0680916303E2
:1063E00090916403803E974034F080ED97E0909365
:1063F0001D0680931C0640913501442309F4BAC060
:1064000080911801909119012091AA033091AB035A
:10641000821B930B9093A9038093A80360911801AA
:1064200070911901260F371F332314F42F5F3F4F4C
:10643000359527953093AB032093AA0381389105B6
:106440003CF080E890E09093A9038093A80309C0F2
:1064500080389F4F34F480E89FEF9093A903809396
:10646000A80380911601909117012091A603309105
:10647000A703821B930B9093A5038093A4036091C1
:10648000160170911701260F371F332314F42F5F65
:106490003F4F359527953093A7032093A603813866
:1064A00091053CF080E890E09093A5038093A403CD
:1064B00009C080389F4F34F480E89FEF9093A50384
:1064C0008093A40350E08091A8039091A903489F72
:1064D0009001499F300D589F300D1124C90133237D
:1064E0000CF40F9695958795959587959595879535
:1064F000959587956091270670912806860F971FBE
:1065000090932806809327066091A4037091A503B9
:10651000469FC001479F900D569F900D1124AC01DE
:10652000992314F4415F5F4F5595479555954795CD
:10653000559547955595479560911C0670911D0698
:10654000460F571F50931D0640931C06409118019B
:1065500050911901240F351F309319012093180110
:106560002091160130911701820F931F909317010C
:106570008093160140912A0650912B061416150699
:106580003CF5A0911506B0911606BB231CF4B195FD
:10659000A195B1092091280130E00E94C2B18B0180
:1065A0009C01992324F4015C1F4F2F4F3F4FD901C9
:1065B000C801689415F8B595A79597958795169491
:1065C000D1F7820D931D909326068093250627C050
:1065D000A0911506B0911606BB231CF4B195A195A8
:1065E000B1092091280130E00E94C2B18B019C01C9
:1065F000992324F4015C1F4F2F4F3F4FD901C8014D
:10660000689415F8B595A795979587951694D1F741
:106610007101E81AF90AF0922606E0922506E09048
:106620002F06F09030061E141F043CF5A0911706AB
:10663000B0911806BB231CF4B195A195B109209126
:10664000280130E00E94C2B18B019C01992324F4FF
:10665000015C1F4F2F4F3F4FD901C801689415F8B7
:10666000B595A795979587951694D1F78E0F9F1F8F
:1066700090931F0680931E0626C0A0911706B09126
:106680001806BB231CF4B195A195B10920912801EE
:1066900030E00E94C2B18B019C01992324F4015C7B
:1066A0001F4F2F4F3F4FD901C801689415F8B5957A
:1066B000A795979587951694D1F7E81BF90BF0935A
:1066C0001F06E0931E0680915C0688230CF046C0EE
:1066D0008091E703811142C08091E60381113EC0A1
:1066E000B1E0EB16FB0664F0FA94809127069091D6
:1066F0002806E80EF91EF0922806E09227060FC041
:10670000E114FFEFFF065CF4F3948091270690916B
:106710002806E80EF91EF0922806E092270641307E
:1067200011E0510764F05A9580911C0690911D0666
:10673000480F591F50931D0640931C060FC041156A
:106740002FEF52075CF4539580911C0690911D0623
:10675000480F591F50931D0640931C0660960FB6B4
:10676000F894DEBF0FBECDBFDF91CF911F910F9187
:10677000FF90EF90DF90CF90BF90AF909F908F9061
:106780007F906F905F904F903F902F900895CF93A0
:10679000DF9380910304811128C08091CB038C7F0B
:1067A0008093CB038091CA038F7D8093CA03A7E6B1
:1067B000BAE0E9E9F9E083E79AE02091F5042111D4
:1067C00001C01C922D91EF012197288310823F96E2
:1067D000A817B90791F78091F504882359F08091A3
:1067E000F50481508093F50405C08091CB0381604E
:1067F0008093CB038091E004882319F01092E00489
:106800000AC01092E3048091DE048E7F8093DE0440
:1068100085EA8093BC00DF91CF9108958823A9F089
:10682000E82FF0E0EE0FFF1FEF5CF74F80819181C2
:1068300081589F4F992314F480E090E08F3F910599
:1068400029F024F08FEF90E0089580E00895DF9222
:10685000EF92FF920F931F93CF93DF93A3E4B5E0E2
:10686000E5E0F4E04BE455E0E12CF12C0FEF10E013
:106870002D91C22FD0E0CC0FDD1FCF5CD74F888188
:10688000998181589F4F992314F48E2D9F2D8F3F0E
:10689000910519F014F0802F912F293111F4808384
:1068A0001EC0EF01D0802D2D30E028173907B9F038
:1068B000BC01621B730B9B0112F42D5F3F4F35959A
:1068C0002795359527952D0D2883622F70E0861723
:1068D00097071CF42150288302C02F5F288331962C
:1068E000A417B50729F680914D05883F18F48093C9
:1068F0003A0109C0EFEFF0E0E81BF109EB5FFB4F55
:10690000808180933A0180913A01843618F084E6C0
:1069100080933A0180914F05883F18F480933901A4
:1069200009C0EFEFF0E0E81BF109EB5FFB4F80815E
:106930008093390180913901843618F084E6809380
:10694000390180915C05883F18F48093340109C0B7
:10695000EFEFF0E0E81BF109EB5FFB4F80818093E4
:106960003401809134018B3018F48AE08093340133
:1069700080918905883F18F480933B0609C0EFEFAA
:10698000F0E0E81BF109EB5FFB4F808180933B0651
:1069900080913B06863018F485E080933B06809119
:1069A0008B05883F18F48093630609C0EFEFF0E091
:1069B000E81BF109EB5FFB4F8081809363068091B8
:1069C0006306863018F485E080936306809176052F
:1069D000873F61F4429B05C08091AB0580933806E8
:1069E00028C08091AC058093380623C0863F61F4AF
:1069F000439B05C08091AB05809338061AC08091F7
:106A0000AC058093380615C0883F18F4809338068B
:106A100009C0EFEFF0E0E81BF109EB5FFB4F80816D
:106A20008093380680913806893118F488E1809384
:106A3000380680917705873F61F4429B05C08091BD
:106A4000AD058093190628C08091AE058093190684
:106A500023C0863F61F4439B05C08091AD058093C0
:106A600019061AC08091AE058093190615C0883F9B
:106A700018F48093190609C0EFEFF0E0E81BF10964
:106A8000EB5FFB4F80818093190680911906893155
:106A900018F488E18093190680917805883F18F4EE
:106AA0008093410609C0EFEFF0E0E81BF109EB5FCE
:106AB000FB4F80818093410680914106893118F413
:106AC00088E18093410680914E05A8DE8093E10322
:106AD00080915105883F18F48093380109C0EFEF89
:106AE000F0E0E81BF109EB5FFB4F808180933801F8
:106AF00080915305883F18F48093360109C0EFEF69
:106B0000F0E0E81BF109EB5FFB4F808180933601D9
:106B100080915B05883F18F48093370109C0EFEF3F
:106B2000F0E0E81BF109EB5FFB4F808180933701B8
:106B300080915D05883F18F48093330109C0EFEF21
:106B4000F0E0E81BF109EB5FFB4F8081809333019C
:106B500080915E05883F18F48093350109C0EFEFFE
:106B6000F0E0E81BF109EB5FFB4F8081809335017A
:106B700080915F05883F18F48093320109C0EFEFE0
:106B8000F0E0E81BF109EB5FFB4F8081809332015D
:106B900080916005883F18F48093310109C0EFEFC0
:106BA000F0E0E81BF109EB5FFB4F8081809331013E
:106BB00080916605883F18F48093300109C0EFEF9B
:106BC000F0E0E81BF109EB5FFB4F8081809330011F
:106BD00080916705883F18F48093E00309C0EFEFC8
:106BE000F0E0E81BF109EB5FFB4F80818093E0034D
:106BF00080916805883F18F48093DF0309C0EFEFA8
:106C0000F0E0E81BF109EB5FFB4F80818093DF032D
:106C100080916905883F18F48093DE0309C0EFEF87
:106C2000F0E0E81BF109EB5FFB4F80818093DE030E
:106C300080916A05883F18F48093DD0309C0EFEF67
:106C4000F0E0E81BF109EB5FFB4F80818093DD03EF
:106C500080918405883F18F48093DC0309C0EFEF2E
:106C6000F0E0E81BF109EB5FFB4F80818093DC03D0
:106C700080918505883F18F48093DB0309C0EFEF0E
:106C8000F0E0E81BF109EB5FFB4F80818093DB03B1
:106C900080918605883F18F48093DA0309C0EFEFEE
:106CA000F0E0E81BF109EB5FFB4F80818093DA0392
:106CB00080918705883F18F48093D90309C0EFEFCE
:106CC000F0E0E81BF109EB5FFB4F80818093D90373
:106CD00080916B05883F18F480932F0109C0EFEF76
:106CE000F0E0E81BF109EB5FFB4F808180932F01FF
:106CF00080916F05883F18F480932E0109C0EFEF53
:106D0000F0E0E81BF109EB5FFB4F808180932E01DF
:106D100080916C05883F18F480932D0109C0EFEF36
:106D2000F0E0E81BF109EB5FFB4F808180932D01C0
:106D300080917005883F18F480932C0109C0EFEF13
:106D4000F0E0E81BF109EB5FFB4F808180932C01A1
:106D500080917905883F18F480932B0109C0EFEFEB
:106D6000F0E0E81BF109EB5FFB4F808180932B0182
:106D700080917C05883F18F480932A0109C0EFEFC9
:106D8000F0E0E81BF109EB5FFB4F808180932A0163
:106D900080917D05883F18F48093290109C0EFEFA9
:106DA000F0E0E81BF109EB5FFB4F80818093290144
:106DB00080917E05883F18F48093280109C0EFEF89
:106DC000F0E0E81BF109EB5FFB4F80818093280125
:106DD0008091A705883F18F48093240609C0EFEF3F
:106DE000F0E0E81BF109EB5FFB4F80818093240604
:106DF00080914B0580935C068091B8058093400696
:106E000080918305883F18F48093270109C0EFEF34
:106E1000F0E0E81BF109EB5FFB4F808180932701D5
:106E20008091A005883F18F48093750609C0EFEFA4
:106E3000F0E0E81BF109EB5FFB4F80818093750662
:106E40006091300170E06F5F7F4F8CE398E20E94A9
:106E500056B170933C0160933B018091590580933A
:106E600064068091580580932C06E091A205EE23DC
:106E700009F44BC081E08093D803F0E0EE0FFF1FD0
:106E8000EF5CF74F80819181803C9F4F14F410920A
:106E9000D80380913D012091D803821741F18330BE
:106EA00018F5222371F08CED95E09093CE04809339
:106EB000CD0480915701811111C08EE2809357015A
:106EC0000DC088EC90E09093CE048093CD04809127
:106ED0005701811103C087E18093570185E08093BA
:106EE000EE0320933D0103C0815080933D018091CA
:106EF000130990911409992384F5222389F0E2E67D
:106F0000FAE080818068808305C01092D8038AE00F
:106F100080933D0180911309909114099923ECF419
:106F2000809103048823C9F08091D8038823F9F065
:106F30008091A9029091AA02019699F488E99AE3B6
:106F40009093CE048093CD0480E094EA9093AA02BB
:106F50008093A9021092D8030AC08091D803882395
:106F600031F08091CA0381608093CA0305C080918B
:106F7000CA038E7F8093CA03DF91CF911F910F9137
:106F8000FF90EF90DF90089580915405811121C00A
:106F900020911A0130911B018091E8039091E9033F
:106FA00099230CF40396AC01559547955595479553
:106FB000429FC001439F900D529F900D11246091FC
:106FC000530170E00E9442B170934101609340010F
:106FD00005C090E090934101809340018091400171
:106FE000909141018734910538F486E490E09093C4
:106FF00041018093400108958F3A910530F08FEA66
:1070000090E0909341018093400108952F923F9228
:107010004F925F926F927F928F929F92AF92BF92A8
:10702000CF92DF92EF92FF920F931F93CF93DF9354
:10703000CDB7DEB7A6970FB6F894DEBF0FBECDBFB3
:107040000E94082D8091CB038471A9F58091B90528
:1070500082FF2AC08091E8039091E9030097E9F04C
:10706000883502E09007CCF49C01992314F42D5F3D
:107070003F4F359527953595279540916305429F5C
:10708000C001439F900D112464E670E00E9456B148
:107090007093C8036093C7030EC08DE290E0909395
:1070A000C8038093C70307C08091630590E0909365
:1070B000C8038093C7032091C5033091C6032033D2
:1070C00015E7310759F410920F0410920E048091C5
:1070D0002C0690E09093C8038093C70380910E0420
:1070E00090910F0420902C06312C4AE0240E311C84
:1070F000281639060CF41C01809104048436A0F58E
:107100008091CA0382FD30C08091A2039091A303B5
:10711000009731F001979093A3038093A2030BC0D3
:10712000109203041092CD031092CC038091CB03F4
:107130008D7E8093CB03289A8091CC039091CD03D0
:10714000893E934070F080911B05853650F0209069
:10715000C7033090C8038091CB0380618093CB0339
:10716000F1C510920304EEC5809104048D3808F433
:10717000BFC58091AF05882309F44DC09091B0053B
:10718000992309F448C090E0FC01EE0FFF1FEF5C6B
:10719000F74F2081318123333105CCF080911F01DD
:1071A000823361F48091CA0385FF08C08091CA03CD
:1071B00080648093CA0380E3809357018091CA035F
:1071C0008F778093CA0386E980931F0124C0FC0156
:1071D000EE0FFF1FEF5CF74F808191818E3C9F4F38
:1071E000ACF480911F01863941F48091CA03806814
:1071F0008093CA038FE2809357018091CA038F7BEB
:107200008093CA0382E380931F0105C08091CA0363
:107210008F738093CA038091CB038F7E8093CB03BF
:107220008091640572E3879FC00111249093A303AA
:107230008093A20389E2281631048CF08091030424
:10724000882369F08091CC039091CD038F3FAFEFFD
:107250009A07B1F101969093CD038093CC0380916E
:10726000CC039091CD038F3F910509F048F5109222
:1072700026041092270410922804109229041092D8
:1072800022041092230410922404109225041092D8
:107290009E0310929F031092A0031092A1031092DC
:1072A0002E0410922F041092300410923104809119
:1072B000CA0380628093CA0384E680931F0138C1A9
:1072C0008091CB0382608093CB038091CA0385FFBA
:1072D0009AC08091B704282F247082FD04C0809149
:1072E000CA0386FF2AC0809120018D3331F5809139
:1072F000C203882311F180E58093F30384EF91E0CA
:10730000A0E0B0E08093F4039093F503A093F6031C
:10731000B093F7038093FA039093FB03A093FC03CD
:10732000B093FD0388EE93E090931E0180931D01BE
:10733000222319F08DE08093570180914A039091A8
:107340004B03A0914C03B0914D0387399105A105E2
:10735000B1058CF48091FE039091FF03A09100048D
:10736000B0910104823A9E4FAF4FBF4F24F08091FD
:107370005C0680FD21C088EE93E090931E0180930F
:107380001D018091CA0386FF0FC01092F3038CE2A7
:1073900091E0A0E0B0E08093FA039093FB03A09308
:1073A000FC03B093FD0303C080E3809357018091F9
:1073B000CA038F718093CA03109226041092270487
:1073C000109228041092290410922204109223048F
:1073D000109224041092250410922E0410922F046F
:1073E00010923004109231048091CC039091CD031F
:1073F000893E934008F49CC088EE93E09093CD03BF
:107400008093CC0395C08091CA038823D4F48091E3
:107410002001863711F08D33A1F48091C2038823B7
:1074200081F08091B0058093F30380EE91EBAFEF94
:10743000BFEF8093F4039093F503A093F603B0930A
:10744000F70380911D0190911E01883E03E0900793
:1074500008F049C09C012F5F3F4F30931E012093DD
:107460001D011092260410922704109228041092F5
:1074700029041092220410922304109224041092E2
:10748000250410922E0410922F04109230041092B2
:10749000310480914A0390914B03A0914C03B09129
:1074A0004D038C529140A109B1098093FA03909346
:1074B000FB03A093FC03B093FD03283E3340C1F5CA
:1074C0008091CA038823A4F5809120018B3281F139
:1074D0008091CA038F778093CA038091CA03806228
:1074E0008093CA0325C08091C203882309F180914B
:1074F0002001863711F08D32D9F48091FE039091EE
:10750000FF03A0910004B0910104883E9340A105BF
:10751000B10574F480910605909107058D3A93406A
:107520003CF010921E0110921D018EE080935701D5
:10753000E0914105F0E0EE0FFF1FEF5CF74F808117
:107540009181813591050CF487C1809103048111EB
:1075500083C18091B70484FD7FC1E0914205F0E0D2
:10756000EE0FFF1FEF5CF74F8081918199231CF490
:107570009195819591098C3491050CF46BC18091A2
:107580009D038F5F893C18F480939D0365C1109221
:107590009D031092CD031092CC0320913F0530E063
:1075A000F901EE0FFF1FEF5CF74F80819181873467
:1075B000910594F4E0914005F0E0EE0FFF1FEF5CC1
:1075C000F74F8081918199231CF4919581959109C0
:1075D000873491050CF48CC04091400550E0FA01CD
:1075E000EE0FFF1FEF5CF74F80819181873491058B
:1075F000BCF0F901EE0FFF1FEF5CF74F8081918126
:10760000863491057CF4F901EE0FFF1FEF5CF74F14
:107610008081918111E08B3B9F4F2CF410E003C0DF
:1076200010E001C010E0FA01EE0FFF1FEF5CF74F12
:1076300080819181873491055CF0F901EE0FFF1F85
:10764000EF5CF74F80819181873491050CF012E057
:10765000FA01EE0FFF1FEF5CF74F808191818634B6
:1076600091055CF4F901EE0FFF1FEF5CF74F80818D
:107670009181873491050CF013E0FA01EE0FFF1FA2
:10768000EF5CF74F808191818A3B9F4F5CF4F90159
:10769000EE0FFF1FEF5CF74F8081918187349105DA
:1076A0000CF014E0440F551FFA01EF5CF74F808196
:1076B00091818A3B9F4FA4F4F901EE0FFF1FEF5C0D
:1076C000F74F808191818634910554F4220F331F46
:1076D000F901EF5CF74F808191818B3B9F4F1CF448
:1076E000112339F001C015E0812F0E94182601C036
:1076F00010E0E0914005F0E0EE0FFF1FEF5CF74F68
:107700002081318133231CF43195219531092E31AB
:107710003105C4F4E0913F05F0E0EE0FFF1FEF5C90
:10772000F74F208131812A3B3F4F64F481E0809301
:107730007D0A1092EF0388EE93E09093CE0480933D
:10774000CD048AC0809152010E944E2580E00E94A3
:107750009059809165050E94681880915C0680FFB1
:1077600010C02091100130911101273B334038F4B3
:1077700020911001309111012E3E324010F40E94F0
:107780004B1B111141C0E0914005F0E0EE0FFF1FCF
:10779000EF5CF74F808191818A3B9F4F94F4E09199
:1077A0003F05F0E0EE0FFF1FEF5CF74F8081918106
:1077B0008634910534F483E00E9453298093EF03CB
:1077C00028C0E0914205F0E0EE0FFF1FEF5CF74F9D
:1077D00080819181853B9F4FBCF4E0913F05F0E0B3
:1077E000EE0FFF1FEF5CF74F8081918199231CF40E
:1077F0009195819591098634910534F482E00E9437
:1078000053298093EF0305C081E00E9453298093A0
:10781000EF0381E08093CB04579A8091620A88231A
:1078200021F087E0809357010BC08091EF03811115
:1078300004C081E08093570103C088E18093570121
:107840008AE08093800468E770E0809152010E9492
:10785000BA2802C010929D03E0914105F0E0EE0FBE
:10786000FF1FEF5CF74F808191818C399F4F0CF0A7
:1078700038C24091A305842F8F7790E0FC01EE0F72
:10788000FF1FE958F74F208131812630310524F060
:1078900084E680939C030DC0FC01EE0FFF1FE958A6
:1078A000F74F808191818B3F9F4F1CF48CE980932F
:1078B0009C0380910304811166C1E0914205F0E0D0
:1078C000EE0FFF1FEF5CF74F808191818C399F4F46
:1078D0008CF48091B90583FD0BC0E42FF0E0EE0F2E
:1078E000FF1FEF5CF74F80819181853B9F4FBCF07C
:1078F0004423A9F08091B90583FF42C1E42FF0E051
:10790000EE0FFF1FEF5CF74F80819181873F9F4F04
:107910000CF436C180919C03843609F031C180910A
:10792000B70484FD2DC18091EF03882329F0809155
:10793000CB0388608093CB03809112019091130157
:10794000A0911401B0911501809308059093090549
:10795000A0930A05B0930B051092FE031092FF034B
:1079600010920004109201041092460310924703F3
:10797000109248031092490388E592E09093C60361
:107980008093C50310924203109243031092440364
:107990001092450310925703109258031092590306
:1079A00010925A03E0913F05F0E0EE0FFF1FEF5CED
:1079B000F74F808191818D399F4F8CF4E091400584
:1079C000F0E0EE0FFF1FEF5CF74F8081918199236C
:1079D0001CF49195819591098436910534F44111F7
:1079E00004C081E080939B035EC180919B038F5F05
:1079F00080939B038E3F08F456C18091C90381FF99
:107A000025C0809167069091680699231CF4919592
:107A10008195910981349105B4F480912706909164
:107A2000280699231CF4919581959109CD975CF4D2
:107A300080911C0690911D0699231CF491958195C7
:107A40009109CD9734F11092EF0323C0809167061E
:107A50009091680699231CF49195819591098197DD
:107A6000B4F4809127069091280699231CF49195EF
:107A70008195910945975CF480911C0690911D06B3
:107A800099231CF4919581959109459714F01092D2
:107A9000EF0310929B038091620A811163C0809171
:107AA000EF03882309F45EC08091BB0481115AC0A2
:107AB00081E090E09093CD038093CC038093030406
:107AC00010929E0310929F031092A0031092A103A4
:107AD00010922E0410922F04109230041092310450
:107AE00010922A0410922B0410922C0410922D0450
:107AF000C0905A05D12CE12CF12CA0916006B091D8
:107B00006106A70196010E94D2B16093360470937A
:107B100037048093380490933904A0917206B09191
:107B200073060E94D2B16093320470933304809341
:107B30003404909335041092260410922704109276
:107B40002804109229041092220410922304109207
:107B500024041092250484E68093EE0384E380934A
:107B60005701A1C08CED95E09093CE048093CD0495
:107B70008091EF03811197C081E08093570193C0FA
:107B800010929B0390C0E0914205F0E0EE0FFF1FC2
:107B9000EF5CF74F80819181853691058CF0809163
:107BA000B90583FD0BC0E42FF0E0EE0FFF1FEF5C83
:107BB000F74F80819181853B9F4FBCF04423A9F012
:107BC0008091B90583FF6DC0E42FF0E0EE0FFF1F39
:107BD000EF5CF74F808191818E3C9F4F0CF061C02C
:107BE00080919C038C3909F05CC0E0913F05F0E086
:107BF000EE0FFF1FEF5CF74F808191818D399F4F12
:107C00008CF4E0914005F0E0EE0FFF1FEF5CF74FC2
:107C10008081918199231CF49195819591098436F5
:107C2000910534F4411104C081E080939A033BC074
:107C3000109226041092270410922804109229040E
:107C4000109222041092230410922404109225040E
:107C5000109215041092140410921304109212043E
:107C600080919A038F5F80939A038B3F88F01092E4
:107C7000030410929A031092CD031092CC038091CA
:107C8000CA038F718093CA0386E2809357010BC0A9
:107C9000843649F48CEA9DE09093CE048093CD0421
:107CA00002C010929A038091C5039091C603883E4A
:107CB00013E0910708F046C020915403309155031A
:107CC0002B363F4F34F001969093C6038093C50343
:107CD00039C00097B9F101979093C6038093C5030B
:107CE00031C010929C031092C6031092C5032AC0A3
:107CF0002E3E324038F18091DB089091DC088039CB
:107D0000914000F58091FE039091FF03A091000443
:107D1000B09101048C3D9540A105B1059CF480E330
:107D200095E79093C6038093C5038091CC0390910F
:107D3000CD038A3E934030F089EE93E09093CD03DB
:107D40008093CC03809193029FEF980F90939302BE
:107D5000882321F08091CB0384FFD2C30E94273473
:107D600080913F0590E0880F991FFC01EF5CF74F71
:107D7000A081B1816091550570E0FC01E958F74F91
:107D80000190F081E02D4091560550E080919803DC
:107D9000909199039C01220F331F820F931FA69F7E
:107DA0009001A79F300DB69F300D1124820F931FB5
:107DB00099230CF403969595879595958795E49F5F
:107DC0009001E59F300DF49F300D1124820F931F19
:107DD00090939903809398032091400530E0220FFF
:107DE000331FF901EF5CF74F00811181F901E95868
:107DF000F74F0190F081E02D209196033091970389
:107E0000D901AA0FBB1F2A0F3B1F609FD001619FA2
:107E1000B00D709FB00D11242A0F3B1F332314F4B3
:107E20002D5F3F4F35952795359527954E9FB0018E
:107E30004F9F700D5E9F700D1124260F371F3093DA
:107E40009703209396034091D803442309F459C023
:107E5000AC01992314F44D5F5F4F559547955595A7
:107E60004795C90199230CF40396FC01F595E79514
:107E7000F595E7956091A502772767FD70952091AC
:107E8000BE04332727FD3095649FD001659FB00D58
:107E9000749FB00D11242E9FC0012F9F900D3E9F07
:107EA000900D11248A0F9B1F99230CF4079695952A
:107EB00087959595879595958795909315048093CB
:107EC0001404E69FD001E79FB00DF69FB00D11247A
:107ED000429FC001439F900D529F900D11249D0120
:107EE000281B390BC90199230CF4079695958795A2
:107EF0009595879595958795909313048093120493
:107F000050C0A091A105B0E0A553BD4F1696EC91CD
:107F10001697E093A5026C916093BE04FF27E7FDDE
:107F2000F095772767FD70958E9FD0018F9FB00DDC
:107F30009E9FB00D1124269FA001279F500D369FB4
:107F4000500D11244A0F5B1F552314F4495F5F4FF6
:107F500055954795559547955595479550931504D3
:107F6000409314042E9FD0012F9FB00D3E9FB00D63
:107F70001124869FA001879F500D969F500D1124BC
:107F80009D01241B350BC90199230CF40796959587
:107F900087959595879595958795909313048093EC
:107FA0001204E0914205F0E0EE0FFF1FEF5CF74F87
:107FB0008081918122273327281B390B25303105F9
:107FC00054F02CEF3FEFF901E81BF90BF09311048B
:107FD000E093100411C02C3F3F4F54F424E030E0F4
:107FE0004901881A990A909211048092100404C0E1
:107FF00010921104109210048091C5039091C60351
:108000008130924098F18091140490911504992345
:108010000CF40796959587959595879595958795F1
:10802000909315048093140480911204909113048A
:1080300099230CF407969595879595958795959531
:108040008795909313048093120410922604109243
:1080500027041092280410922904109222041092EE
:10806000230410922404109225044EC0209167042A
:10807000222309F449C030E0809114049091150442
:1080800099230CF40796AC0155954795559547955E
:1080900055954795249FC001259F900D349F900DC5
:1080A000112499230CF40F969595879595958795AE
:1080B00095958795959587959093150480931404CD
:1080C000809112049091130499230CF40796AC014B
:1080D000559547955595479555954795249FC001CA
:1080E000259F900D349F900D112499230CF40F9629
:1080F0009595879595958795959587959595879568
:108100009093130480931204C0901404D09015042B
:1081100080916A0490916B04C81AD90AD092150410
:10812000C0921404E0901204F0901304809168044B
:1081300090916904E81AF90AF0921304E09212048B
:10814000E0914105F0E0EE0FFF1FEF5CF74F00817B
:10815000118101581F4F10930F0400930E0460917A
:10816000340170E080E090E00E949BB020E030E0BD
:1081700040E251E40E9409B00E946DB060936C0629
:1081800080913301809342066091320170E080E07B
:1081900090E00E949BB020E030E040E251E40E9479
:1081A00009B00E946DB060932306809131018093E5
:1081B00031068091890A80FF45C08091750681381B
:1081C00008F440C02091550530E04091820A4203F6
:1081D000C001439F900D1124C80ED91ED0921504E2
:1081E000C09214044091830A4203C001439F900D42
:1081F0001124E80EF91EF0921304E092120420916B
:10820000840A8091100490911104820F911D27FD22
:108210009A9590931104809310043091860A2091CE
:1082200050053203C001112490932601809325014B
:108230008091850A90E08017910724F490930F04B1
:1082400080930E0480910E0490910F04992324F4DE
:1082500010920F0410920E0480915C0682FD109221
:10826000420680911404909115044091D0035091DE
:10827000D1039C01992314F42D5F3F4F3595279529
:108280003595279533231CF43195219531094217F3
:108290005307F4F49C01992324F422273327281B45
:1082A000390BC90199230CF40396959587959595FB
:1082B0008795853691052CF49093D1038093D00354
:1082C0000DC084E690E09093D1038093D00306C064
:1082D000415051095093D1034093D003809112042F
:1082E000909113044091CE035091CF039C019923A8
:1082F00014F42D5F3F4F35952795359527953323FA
:108300001CF431952195310942175307F4F49C016F
:10831000992324F422273327281B390BC9019923D9
:108320000CF40396959587959595879585369105D7
:108330002CF49093CF038093CE030DC084E690E09D
:108340009093CF038093CE0306C0415051095093C0
:10835000CF034093CE038091CB0384FF08C01092DB
:10836000D1031092D0031092CF031092CE0320912C
:10837000400530E0F901EE0FFF1FEF5CF74F408141
:10838000518180917A0590E08417950744F44091DB
:10839000B60542FF04C041E04093E50311C0F90176
:1083A000EE0FFF1FEF5CF74F6081718140917B05FD
:1083B000DC01A41BB1096A177B0714F41092E503D2
:1083C000F901EE0FFF1FEF5CF74F608171814427C9
:1083D0005527481B590B6417750744F46091B6057F
:1083E00063FF04C021E02093E40315C06091E4031F
:1083F000662389F0F901EE0FFF1FEF5CF74F6081F4
:10840000718120917B0530E0281B390B2617370737
:1084100014F41092E40320913F0530E0F901EE0FCF
:10842000FF1FEF5CF74F608171818617970744F457
:108430006091B60560FF04C061E06093E20316C07E
:108440006091E203662391F0F901EE0FFF1FEF5CEC
:10845000F74F0190F081E02D60917B054C01861A69
:108460009108E815F90514F41092E203F901EE0FF2
:10847000FF1FEF5CF74F608171816417750744F44B
:108480004091B60541FF04C081E08093E30316C02C
:108490004091E303442391F0F901EE0FFF1FEF5CDD
:1084A000F74F2081318140917B0550E05A01A81A95
:1084B000B90AA216B30614F41092E3038091E503FF
:1084C000811104C08091E403882321F081E080932E
:1084D000E60302C01092E6038091E203811104C01A
:1084E0008091E303882351F081E08093E7031092A9
:1084F000E6031092E5031092E40302C01092E70332
:108500008091E603811104C08091E703882351F034
:108510008091790590E0821593050CF41C0181E0AF
:1085200080931A048091CA0382FF31C080916A044B
:1085300090916B0491958195910990931504809386
:108540001404809168049091690491958195910932
:108550009093130480931204809140019091410103
:1085600090930F0480930E04109211041092100443
:1085700080915C068B778B6680935C0680914006C9
:108580008C7B8093400688EC8093E1031EC0809131
:10859000CB0384FF1AC010921104109210041092A1
:1085A00015041092140410921304109212049AE508
:1085B00090936C0688E780934206909323068093FD
:1085C00031061092E6031092E703C0904204D09067
:1085D0004304E0904404F090450480913406909167
:1085E0003506A0913606B09137068C0D9D1DAE1D47
:1085F000BF1D8093340690933506A0933606B09342
:10860000370680903E0490903F04A0904004B090C4
:10861000410480913C0690913D06A0913E06B091A8
:108620003F06880D991DAA1DBB1D80933C069093A3
:108630003D06A0933E06B0933F068091E70381116B
:108640000C9414598091E60381110C94F158809197
:10865000060590910705813092402CF48091030427
:10866000882309F4E0C140904C0914140CF0C9C0EF
:1086700080915A05082F10E020E030E00D831E8322
:108680002F833887552447FC5094652C752CC701DF
:10869000B601A90198010E948BB18091600690916A
:1086A00061066091150970911609861B970BAA2720
:1086B00097FDA095BA2F79018A01E81AF90A0A0BE9
:1086C0001B0BC801B701A30192010E9427B16B01E6
:1086D0007C01992334F40FEFC00E01E0D01EE11CA1
:1086E000F11C0B2EB9E0F594E794D794C794BA9592
:1086F000D1F7B02DC501B4012D813E814F81588540
:108700000E948BB180917206909173066091170957
:1087100070911809861B970BAA2797FDA095BA2F71
:10872000281B390B4A0B5B0BC301B2010E9427B116
:108730008B019C01992324F401501E4F2F4F3F4F72
:108740000F2EF9E03595279517950795FA95D1F7EE
:10875000F02D8091D0039091D103813491053CF4A8
:108760008091CE039091CF0381349105D4F0D7014D
:10877000C601FF201CF40196A11DB11D6C017D01F5
:10878000F594E794D794C794D901C80133231CF416
:108790000196A11DB11D8C019D0135952795179559
:1087A000079580914E09482F552747FD5095652F15
:1087B000752F4C155D056E057F0514F46A017B016C
:1087C000992781950CF49095AA2797FDA095BA2F2B
:1087D000C816D906EA06FB0614F46C017D014017A1
:1087E00051076207730714F48A019B01B901A801BC
:1087F000081719072A073B070CF0D8C0AC01BD01C8
:10880000D5C040905A05512C612C712CC501B40182
:10881000A30192010E948BB1809172069091730620
:10882000AA2797FDA095BA2F49015A01881A990ADB
:10883000AA0ABB0A8D829E82AF82B886C701B601A2
:10884000A30192010E948BB1809160069091610614
:10885000AA2797FDA095BA2F79018A01E81AF90A8B
:108860000A0B1B0B67017801FF202CF40FE0C00EF0
:10887000D11CE11CF11C689413F8F594E794D7948B
:10888000C7941694D1F78D809E80AF80B884BB20AA
:108890002CF41FE0810E911CA11CB11C689413F8EC
:1088A000B594A794979487941694D1F78091D003A8
:1088B0009091D103813491053CF48091CE03909145
:1088C000CF0381349105BCF00F2EF3E04F2E512CD5
:1088D000612C712CF02DC701B601A30192010E94F9
:1088E0008BB169017A01C501B401A30192010E9413
:1088F0008BB149015A01E0914205F0E0EE0FFF1FF4
:10890000EF5CF74F8081918199231CF491958195BB
:1089100091094A97BCF00F2EF3E04F2E512C612C99
:10892000712CF02DC701B601A30192010E948BB1F9
:1089300069017A01C501B401A30192010E948BB1C2
:1089400049015A0189E180934C0121E2C216D10408
:10895000E104F1042CF0C12CD12C76016894C5F807
:1089600030EEC3163FEFD306E306F30644F40F2EB2
:10897000F0EECF2EDD24DA94ED2CFD2CF02DD50178
:10898000C40181329105A105B10524F080E290E097
:10899000A0E0B0E0AC01BD01403E8FEF5807680792
:1089A000780724F440EE5FEF6FEF7FEF809136049D
:1089B00090913704A0913804B09139048C199D0925
:1089C000AE09BF098093360490933704A09338040E
:1089D000B09339048091320490913304A09134040F
:1089E000B0913504841B950BA60BB70B8093320412
:1089F00090933304A0933404B09335048091BE0364
:108A00009091BF03C80ED91ED092BF03C092BE037F
:108A10008091BC039091BD039C01240F351F3093BE
:108A2000BD032093BC0380915203909153038F3F69
:108A3000910509F008F45AC100918205002309F458
:108A400007C18091600690916106815E9C4F8F33D3
:108A5000964008F0FDC08091720690917306815E89
:108A60009C4F8F33964008F0F3C080911A04811117
:108A7000EFC080916706909168064F96CF9708F0F7
:108A8000E7C010E01093690C0093680CE091BE03FE
:108A9000F091BF0300241695079507941695079546
:108AA0000794102F002DCF01B8010E9442B1E61BA0
:108AB000F70BF093BF03E093BE032091BC0330910A
:108AC000BD03C901B8010E9442B1261B370B309388
:108AD000BD032093BC03E0901804F0901904C70173
:108AE000B8010E9442B1E61AF70AF0921904E09226
:108AF00018048091D0039091D10381349105BCF486
:108B00008091CE039091CF038134910584F4A0919C
:108B10004205B0E0AA0FBB1FAF5CB74F8D919C918F
:108B200099231CF49195819591094A97C4F0CF013E
:108B3000FF230CF40196959587959093BF0380933E
:108B4000BE03C90199230CF40196959587959093DE
:108B5000BD038093BC0310921904109218048091F5
:108B6000BE039091BF03893B9B406CF01092BF0302
:108B70001092BE03809157049091580401969093EF
:108B80005804809357048091BE039091BF038834AA
:108B9000944F6CF41092BF031092BE03809157045F
:108BA00090915804019790935804809357048091B2
:108BB000BC039091BD03893B9B406CF01092BD03B8
:108BC0001092BC03809155049091560401969093A5
:108BD0005604809355048091BC039091BD03883462
:108BE000944F6CF41092BD031092BC038091550415
:108BF0009091560401979093560480935504809168
:108C00001804909119048D3A9D406CF0109219044B
:108C100010921804809153049091540401969093FB
:108C2000540480935304809118049091190484355E
:108C3000924FD4F4109219041092180480915304A6
:108C400090915404019790935404809353040CC062
:108C50001092BF031092BE031092BD031092BC038A
:108C6000109219041092180410921A04809142066E
:108C7000811108C01092ED031092EC031092EB03E7
:108C80001092EA038091340690913506A091360641
:108C9000B09137068093920390939303A09394032B
:108CA000B093950380913C0690913D06A0913E06BD
:108CB000B0913F0680938E0390938F03A09390030F
:108CC000B093910310923406109235061092360636
:108CD0001092370610923C0610923D0610923E0606
:108CE00010923F061092530310925203E091100429
:108CF000F0911104DF01FF2324F4AA27BB27AE1B48
:108D0000BF0BA430B1053CF080915C0684FD03C02C
:108D100082E38093EE03109157058091C5039091F3
:108D2000C6038130924068F59F010E94ADB19B015E
:108D3000AC01A12FB0E00E94C8B16B017C01992366
:108D400034F45FEFC50E51E0D51EE11CF11CB701F4
:108D5000A601032E39E075956795579547953A9585
:108D6000D1F7302D1E9FC0011F9F900D1124992314
:108D70000CF403969595879595958795480F591FFF
:108D800002C040E050E08091F0039091F103480F61
:108D9000591F662757FD6095762F40939E03509389
:108DA0009F036093A0037093A10380912E04909180
:108DB0002F04A0913004B0913104841B950BA60BB5
:108DC000B70B80932E0490932F04A0933004B0939C
:108DD0003104813563EC9607A105B1056CF080E59F
:108DE00093ECA0E0B0E080932E0490932F04A09326
:108DF0003004B093310411C0803B9C43AF4FBF4F50
:108E000064F480EB9CE3AFEFBFEF80932E0490936C
:108E10002F04A0933004B0933104E0904E01F09001
:108E20004F01FF200CF4FEC080915C0683FFFAC066
:108E300080914D01813021F0815080934D01F6C029
:108E40008DE080934D018091420490914304A09164
:108E50004404B0914504BB2324F481509E4FAF4F8E
:108E6000BF4F072E79E0B595A795979587957A9589
:108E7000D1F7702D9C01992324F422273327281B36
:108E8000390B80913E0490913F04A0914004B09131
:108E90004104BB2324F481509E4FAF4FBF4F072E98
:108EA00079E0B595A795979587957A95D1F7702D27
:108EB0006C01992324F4CC24DD24C81AD90AC216E3
:108EC000D3060CF4690180906E0690906F06A09016
:108ED0007006B090710620912101309122014091DD
:108EE000230150912401C501B4010E948BB1890175
:108EF0009A01109322060093210684EEE81A8DEF62
:108F0000F80AC701801B910B68E671E00E9456B118
:108F1000845B91096091EE03662321F010931D0498
:108F200000931C0440914A0150914B014115510599
:108F300039F04150510950934B0140934A0113C0FD
:108F4000A9E1CA16D104ACF4409118045091190457
:108F5000480F591F5093190440931804662319F0C1
:108F600061506093EE0340914A0150914B01452BB3
:108F700049F540914C01489FF001499FF00D1124A3
:108F8000A601DD2014F4495F5F4FBA01759567951E
:108F900075956795759567956E5F7F4FCF010E94B8
:108FA00056B1CB01AA2797FDA095BA2F880E991E1E
:108FB000AA1EBB1E80926E0690926F06A09270064B
:108FC000B09271068091EE03811127C04091370164
:108FD000469580911C0490911D04801B910B845E2A
:108FE0009D4F68E671E00E9456B1845B9109489FED
:108FF0009001499F300D1124332314F4215F3F4F1A
:109000003595279535952795359527953595279548
:109010003093F1032093F00309C01092F1031092F2
:10902000F00304C01092F1031092F00380911A042F
:10903000882381F0109222041092230410922404B9
:1090400010922504109226041092270410922804EE
:10905000109229048091E703811115C0A091420666
:1090600020914204309143044091440450914504BE
:10907000B0E00E94C8B128EF3AE240E050E00E9420
:109080008BB1790102C0E12CF12C8091E6038111B2
:1090900015C0A091420620913E0430913F044091BA
:1090A000400450914104B0E00E94C8B128EF3AE278
:1090B00040E050E00E948BB1590102C0A12CB12CBC
:1090C00080911E0690911F06893C91053CF088EC2A
:1090D00090E090931F0680931E0609C088339F4F2F
:1090E00034F488E39FEF90931F0680931E068091CF
:1090F000250690912606893C91053CF088EC90E08D
:10910000909326068093250609C088339F4F34F438
:1091100088E39FEF909326068093250640906C0687
:10912000512C612C712CA0912706B0912806A30127
:1091300092010E94D2B140911E0650911F068A01F1
:10914000222717FD2095322F000F111F221F331FDA
:10915000000F111F221F331F000F111F221F331F6B
:10916000000F111F221F331F000F111F221F331F5B
:10917000000F111F221F331F000F111F221F331F4B
:10918000AB01BC01400F511F621F731FDB01CA01FD
:1091900077231CF4CF96A11DB11D689415F8B595E1
:1091A000A795979587951694D1F76701C80ED91E94
:1091B000D0922806C0922706A0911C06B0911D06E9
:1091C000A30192010E94D2B120912506309126067A
:1091D0008901222717FD2095322F000F111F221F12
:1091E000331F000F111F221F331F000F111F221FDB
:1091F000331F000F111F221F331F000F111F221FCB
:10920000331F000F111F221F331F000F111F221FBA
:10921000331FDC01CB01800F911FA21FB31F8C01F4
:109220009D01BB2324F4015C1F4F2F4F3F4F6894D7
:1092300015F835952795179507951694D1F70A0DCA
:109240001B1D10931D0600931C06A0916706B0918C
:109250006806AA0FBB1F2091230630E00E94C2B10E
:109260002B013C0199232CF4FFE34F0E511C611C90
:10927000711C689415F875946794579447941694E4
:10928000D1F7A091310620913A0430913B044091EE
:109290003C0450913D04B0E00E94C8B120EF35E598
:1092A00040E050E00E948BB1240D351D30936806DC
:1092B0002093670641E0C41640E1D4063CF080E00C
:1092C00090E190932806809327060DC08091270691
:1092D000909128068115904F34F480E090EF9093A0
:1092E000280680932706013010413CF080E090E191
:1092F00090931D0680931C060DC080911C069091D2
:109300001D068115904F34F480E090EF90931D0678
:1093100080931C06213030413CF080E090E1909336
:109320006806809367060DC0809167069091680675
:109330008115904F34F480E090EF9093680680930D
:1093400067068091CB0385FD0EC060911A01709174
:109350001B0120915301229DC001239D900D1124DA
:109360000E9442B11B0180918D039FEF980F909353
:109370008D03811166C080918B0390918C03892BA2
:1093800041F480911A0190911B0190938C0380937A
:109390008B0320911A0130911B0180918B039091D6
:1093A0008C038217930730F4019690938C0380937B
:1093B0008B030CC020911A0130911B01281739072B
:1093C00028F4019790938C0380938B0384E6809319
:1093D0008D034091650480918B0390918C03242F21
:1093E00030E08217930720F42AE02093C1030FC0D6
:1093F0002091510130E0240F311D2817390738F42E
:109400002091C103222319F021502093C1034091E0
:109410006404242F30E08217930720F489E18093BD
:10942000C0030FC02091510130E0240F311D2817D7
:10943000390738F48091C003882319F08150809354
:10944000C0038091C1038823D1F08091F4039091EF
:10945000F503A091F603B091F703BB2384F080914C
:10946000B0058093F30380EE91EBAFEFBFEF8093F5
:10947000F4039093F503A093F603B093F703809160
:10948000CC04811102C00E94DE95220C331C220CF8
:10949000331C80915C0680FD02C00C94B75480910F
:1094A000E60381110C94B7548091E70381110C9469
:1094B000B7548091620A8F7711F00C94B754809161
:1094C000590490915A04892B09F05FC080911001D2
:1094D000909111018939934030F187B58A3FF8F4B2
:1094E00080915603815080935603982F990F990FBE
:1094F000890F90911205981B97BD87B5809588BDFF
:109500008CE291E09093CE048093CD048EE591E0BF
:1095100090935A04809359040E94141B6BC081E0FD
:1095200080938A0367C08091100190911101843665
:10953000910530F587B58630F8F0809156038F5F3E
:1095400080935603982F990F990F890F90911205C8
:10955000981B97BD87B5809588BD8CE291E090936C
:10956000CE048093CD048EE591E090935A048093CD
:1095700059040E94141B3EC081E0809389033AC0C5
:109580001092890310928A0335C0109255031092ED
:1095900054038091C203882321F081E00E94A01629
:1095A00020C08091FE039091FF03A0910004B09130
:1095B0000104880F991FAA1FBB1F880F991FAA1F9C
:1095C000BB1F880F991FAA1FBB1F880F991FAA1FB7
:1095D000BB1F8093570390935803A0935903B093F4
:1095E0005A038091590490915A04019790935A0418
:1095F0008093590480915C0681FF41C08091E10312
:10960000823348F580911C019FEF980F90931C01C5
:10961000811153C080915701811107C080911B04B3
:10962000882319F088E28093570110921B048091DF
:10963000FE039091FF03A0910004B0910104809378
:10964000FA039093FB03A093FC03B093FD0381E026
:1096500080931C0132C0873480F1809157018111C1
:1096600007C080911B04811103C087E280935701DA
:1096700088EC80931C0181E080931B041EC08091C4
:10968000E1032091250130912601280F311D4091E1
:109690005005429FC001439F900D1124AA2797FDBA
:1096A000A095BA2F8093FA039093FB03A093FC0339
:1096B000B093FD0381E080931B0440902101509002
:1096C0002201609023017090240160913E0470910A
:1096D0003F048091400490914104A30192010E94B3
:1096E0008BB12D833E834F835887609142047091E4
:1096F00043048091440490914504A30192010E9487
:109700008BB16D817E81C9010E94A20D209136012D
:10971000FC012E9FC0012F9F900D112464E670E084
:109720000E9456B1CB016C33710514F08CE390E0CC
:109730000E942D9190932E0680932D0680E28093B7
:1097400020011092F9031092F80380911B048823E2
:1097500009F4B5C78091CB0384FDB1C78091CA03DA
:1097600082608093CA03E0914006E0FD04C08091CE
:109770005C0681FD0BC010928803109287038091D4
:10978000CB03806C8093CB03F10120C38091CB038A
:1097900081FFEAC200910E0410910F04C0904001B5
:1097A000D0904101C6010F968017910708F093C031
:1097B0008091890381118FC08091CB038823ACF401
:1097C0008091CB038F778093CB0380914A03909154
:1097D0004B03A0914C03B0914D038093FA039093F7
:1097E000FB03A093FC03B093FD03409024064420A8
:1097F000A1F1512C612C712C6091FA037091FB0343
:109800008091FC039091FD0324E630E040E050E0BD
:109810000E948BB14216530664067506F4F48091DB
:109820005701811116C06091FE037091FF03809172
:109830000004909101042FE530E040E050E00E94E8
:109840008BB142165306640675061CF48AE18093B8
:1098500057018DE3809320013BC080918503909157
:109860008603459784F080914A0390914B03A09121
:109870004C03B0914D038093FA039093FB03A093A4
:10988000FC03B093FD038091CB0380648093CB03F2
:10989000C8018C199D090F979C01992324F4222754
:1098A0003327281B390B822F932F3093F9032093F2
:1098B000F8032091C103222341F063E070E00E948D
:1098C00056B17093F9036093F8038BE28093200103
:1098D0001092F20329C1C6010F970817190708F063
:1098E00042C080918A0381113EC08091CB0386FDE6
:1098F00007C08091850390918603843D9E4FACF410
:109900008091CB038F7B8093CB0380914A0390910E
:109910004B03A0914C03B0914D038093FA039093B5
:10992000FB03A093FC03B093FD038091CB038068FD
:109930008093CB0398012C193D09215F3F4FC9014A
:10994000992324F488279927821B930B919581955D
:1099500091099093F9038093F8038DE2809320019D
:109960001092F203E1C08DE3809320012091F30374
:10997000222309F474C04091F4035091F5036091DF
:10998000F6037091F7038091FA039091FB03A09185
:10999000FC03B091FD0384179507A607B70764F58C
:1099A0008091CB0380648093CB03822F90E09093CF
:1099B000F9038093F8038AE08093F2038EE58093A5
:1099C00020018091CB0388230CF0AEC08091CB03A3
:1099D0008F778093CB0380914A0390914B03A091A2
:1099E0004C03B0914D038093FA039093FB03A09333
:1099F000FC03B093FD0398C0481759076A077B071B
:109A000074F58091CB0380688093CB03822F90E024
:109A10009195819591099093F9038093F80386EFCE
:109A20008093F20386E7809320018091CB0386FF29
:109A30007BC08091CB038F7B8093CB0380914A03C3
:109A400090914B03A0914C03B0914D038093FA0386
:109A50009093FB03A093FC03B093FD0365C080913A
:109A6000CB03807C09F460C08091F203811136C081
:109A700080914A0390914B03A0914C03B0914D0308
:109A80008C019D01085C1109210931094091FA03FB
:109A90005091FB036091FC037091FD0304171507BF
:109AA000260737074CF00093FA031093FB0320932B
:109AB000FC033093FD0314C088539F4FAF4FBF4F3B
:109AC000481759076A077B075CF08093FA03909365
:109AD000FB03A093FC03B093FD0302C01092F203BA
:109AE0008091CB038F738093CB03109288031092E5
:109AF0008703E1FF06C084EF91E09093CE0480934A
:109B0000CD048091020481110FC08091FE039091D9
:109B1000FF03A0910004B0910104C397A105B10512
:109B20001CF081E080930204209187033091880328
:109B30008091F8039091F903280F391F309388031F
:109B400020938703C901332324F488279927821B94
:109B5000930B853F91400CF4EFC0E091F203EE23AC
:109B6000B1F14091F4035091F5036091F6037091C7
:109B7000F7038091FA039091FB03A091FC03B0914D
:109B8000FD039A01281B390B273F1FEF310764F0B3
:109B90002A3031054CF44093FA035093FB03609351
:109BA000FC037093FD034DC04E2F552747FD509584
:109BB000652F752F840F951FA61FB71F8093FA037B
:109BC0009093FB03A093FC03B093FD033AC01216DD
:109BD0001306E4F4209150058BEA289F212D1124CF
:109BE00026958091FA039091FB03A091FC03B0911C
:109BF000FD03820F911DA11DB11D8093FA03909367
:109C0000FB03A093FC03B093FD031BC02091500500
:109C10008BEA289F212D112426958091FA0390919B
:109C2000FB03A091FC03B091FD03821B9109A109E4
:109C3000B1098093FA039093FB03A093FC03B093C4
:109C4000FD0310928803109287038091FE03909188
:109C5000FF03A0910004B09101048C019D011450F8
:109C60002109310940914A0350914B0360914C0303
:109C700070914D0304171507260737074CF0009322
:109C80004A0310934B0320934C0330934D0310C0B1
:109C90009C5FAF4FBF4F481759076A077B0744F0D7
:109CA00080934A0390934B03A0934C03B0934D03CE
:109CB00080914A0390914B03A0914C03B0914D03C6
:109CC0008C019D011450210931094091FA035091F2
:109CD000FB036091FC037091FD0304171507260731
:109CE00037074CF00093FA031093FB032093FC0317
:109CF0003093FD0311C084529A4FAF4FBF4F4817A6
:109D000059076A077B0744F08093FA039093FB039B
:109D1000A093FC03B093FD038091400681FF06C031
:109D200084E690E09093CE048093CD048091F30379
:109D3000811102C00E94C4378091590490915A0445
:109D4000892B09F43FC080914A0390914B03A09165
:109D50004C03B0914D038093FA039093FB03A093BF
:109D6000FC03B093FD032EC081E00E94A0168091F9
:109D70004A0390914B03A0914C03B0914D03805D39
:109D80009740A109B1098093FA039093FB03A09334
:109D9000FC03B093FD0380915405882331F090E0DB
:109DA000909341018093400106C08FE790E090932B
:109DB0004101809340013092E9032092E8038EE252
:109DC00080932001E091E803F091E90380914A0338
:109DD00090914B03A0914C03B0914D034091FA0335
:109DE0005091FB036091FC037091FD0348175907E4
:109DF0006A077B0724F02091400620FD70C4209163
:109E0000C20321117EC22091590430915A04232BA0
:109E100059F0E091E803F091E90310928603109263
:109E20008503C12CD12CEAC0841B950BA60BB70B64
:109E3000823020E892072FEFA207B2076CF481E08E
:109E400090E8AFEFBFEF8093810390938203A093DC
:109E50008303B09384031BC08F3F3FE79307A105A3
:109E6000B1054CF48093810390938203A093830304
:109E7000B09384030CC08FEF9FE7A0E0B0E0809325
:109E8000810390938203A0938303B0938403209172
:109E90008103309182034091830350918403309376
:109EA000860320938503A0913901B0E00E94C8B1D8
:109EB0008B019C01992324F4015E1F4F2F4F3F4FCC
:109EC000D901C801689414F8B595A7959795879519
:109ED0001694D1F785304EEF94074FEFA407B407DF
:109EE0006CF484E09EEFAFEFBFEF8093810390931B
:109EF0008203A0938303B09384031BC0811554E0B5
:109F00009507A105B1054CF48093810390938203DA
:109F1000A0938303B09384030CC080E094E0A0E09E
:109F2000B0E08093810390938203A0938303B09366
:109F300084034091810350918203A0915403B09116
:109F40005503BB230CF41796B595A795B595A79522
:109F5000B595A795A2386FEFB60724F0A038B105E4
:109F600024F405C0A1E8BFEF02C0A0E8B0E0209152
:109F70003A0130E00E94C2B18B019C01992324F484
:109F80000D5F1F4F2F4F3F4FD901C801B595A795C2
:109F900097958795B595A7959795879581307FEF8C
:109FA00097072CF08F3F910509F024F405C080E05D
:109FB0009FEF02C080E091E02091CB03207C59F01C
:109FC0009C01992314F42D5F3F4FC9019595879506
:109FD0009595879510C02091400620FF0CC09C01EC
:109FE000992314F4295F3F4FC9019595879595955D
:109FF0008795959587956A01C80ED91EA09138015D
:10A00000AA2309F461C040911E0450911F0460917D
:10A01000200470912104772324F441585F4F6F4F3F
:10A020007F4F9A01AB01689416F85595479537957F
:10A0300027951694D1F7B0E00E94C8B18B019C011E
:10A04000992324F4015E1F4F2F4F3F4FD901C801C0
:10A05000689414F8B595A795979587951694D1F7B8
:10A0600081380FEF9007A007B0076CF480E89FEFEE
:10A07000AFEFBFEF8093810390938203A09383039C
:10A08000B09384031BC08F3F9105A105B10509F072
:10A090004CF48093810390938203A0938303B09345
:10A0A00084030CC080E091E0A0E0B0E080938103E5
:10A0B00090938203A0938303B093840380918103E0
:10A0C00090918203C80ED91E0091E8031091E90314
:10A0D0009601D8010E94ADB12B013C01992334F4C3
:10A0E0002FEF420E21E0521E611C711CD301C201F0
:10A0F000072E79E0B595A795979587957A95D1F72D
:10A10000702DBF01681B790B8091F8039091F903C2
:10A11000892B09F079C0101611060CF075C020913A
:10A12000850330918603C901332324F488279927B6
:10A13000821B930B8D33910590F4809116049091BE
:10A140001704861797070CF05CC080913E01909130
:10A150003F01861797070CF057C0BC0155C0CC973C
:10A1600096958795929582958F7089279F708927FC
:10A170008031910510F08FE090E0121613061CF567
:10A1800040E150E0481B590B209116043091170410
:10A19000429FC001439F900D529F900D11249295B4
:10A1A00082958F7089279F7089278617970710F0EF
:10A1B000BC012AC080913E0190913F01861797070C
:10A1C0001CF5BC0121C0409640913E0150913F01D9
:10A1D000849F9001859F300D949F300D11243295FE
:10A1E00022952F7023273F7023278091160490918A
:10A1F0001704861797073CF46217730728F0B90114
:10A2000003C0BC0101C0BC01CB01AA2797FDA095EA
:10A21000BA2FBC01CD01052E5DE0660F771F881FA8
:10A22000991F5A95D1F7502D20912D0630912E0669
:10A23000442737FD4095542F0E948BB120937D0316
:10A2400030937E0340937F035093800380917B0380
:10A2500090917C03BC01660F771F860F971F280F14
:10A26000391F332314F42D5F3F4F359527953595CE
:10A27000279530937C0320937B0380914C0590E0DD
:10A28000880F991F880F991F821793072CF09093BE
:10A290007C0380937B030FC08091640690E0449719
:10A2A000880F991F880F991F2817390724F090935A
:10A2B0007C0380937B038091400680FF10C08091D7
:10A2C0007B0390917C038215930524F030927C03EC
:10A2D00020927B0320907B0330907C0300C2201AE5
:10A2E000310AC10199230CF40396959587959595AC
:10A2F000879520917B0330917C031C01220E331E35
:10A30000EEC12091590430915A04232B59F0E09169
:10A31000E803F091E9031092860310928503412C23
:10A32000512C3CC1841B950BA60BB70B823030E837
:10A3300093073FEFA307B3076CF481E090E8AFEF1A
:10A34000BFEF8093810390938203A0938303B09324
:10A3500084031BC08F3F4FE79407A105B1054CF460
:10A360008093810390938203A0938303B09384032B
:10A370000CC08FEF9FE7A0E0B0E080938103909343
:10A380008203A0938303B0938403209181033091CF
:10A39000820340918303509184033093860320937A
:10A3A0008503A0913901B0E00E94C8B18B019C01E6
:10A3B000992324F4015E1F4F2F4F3F4FD901C8014D
:10A3C000689414F8B595A795979587951694D1F745
:10A3D000853058EF95075FEFA507B5076CF484E06B
:10A3E00098EFAFEFBFEF8093810390938203A09328
:10A3F0008303B09384031BC0811568E09607A10511
:10A40000B1054CF48093810390938203A09383035E
:10A41000B09384030CC080E098E0A0E0B0E08093AB
:10A42000810390938203A0938303B09384034090AD
:10A430008103509082036090830370908403409165
:10A440005B0350915C03209154033091550360915C
:10A450003801649FC001659F900D1124992314F465
:10A4600081509F4F892F990F990B8C01020F131F59
:10A47000222717FD2095322F8091F203882379F04F
:10A480008091F8039091F903880F991F880F991F05
:10A49000880F991F9093C4038093C30325C06091D4
:10A4A00050054091F8035091F903649FC001659FE6
:10A4B000900D1124AC01440F551F440F551F440F3C
:10A4C000551F840F951F99230CF44F9695958795EA
:10A4D0009595879595958795959587959595879564
:10A4E0009093C4038093C3038091C3039091C403EA
:10A4F000AA2797FDA095BA2FA9019801281B390B0F
:10A500004A0B5B0BA0913A01B0E00E94C8B18B01ED
:10A510009C01992324F4015E1F4F2F4F3F4FD90117
:10A52000C801689414F8B595A795979587951694E2
:10A53000D1F7853078EF97077FEFA707B7076CF45F
:10A5400084E098EFAFEFBFEF809381039093820395
:10A55000A0938303B09384031BC0811508E0900788
:10A56000A105B1054CF48093810390938203A093DD
:10A570008303B09384030CC080E098E0A0E0B0E0D7
:10A580008093810390938203A0938303B093840309
:10A590008091810390918203480E591EE419F509B8
:10A5A00060911604709117046E177F074CF4809128
:10A5B0003E0190913F01BF018E179F070CF4BC0133
:10A5C000CB01AA2797FDA095BA2FBC01CD01052E7E
:10A5D0005DE0660F771F881F991F5A95D1F7502DA0
:10A5E00020912D0630912E06442737FD4095542F9B
:10A5F0000E948BB120937D0330937E0340937F03B1
:10A600005093800380917B0390917C03BC01660F83
:10A61000771F860F971F280F391F332314F42D5FE0
:10A620003F4F359527953595279530937C0320939B
:10A630007B038091C5039091C6038139914020F43A
:10A640008091CA0385FF04C08091580590E003C043
:10A6500080914C0590E0880F991F880F991F8217F1
:10A6600093072CF090937C0380937B030FC0809121
:10A67000640690E04497880F991F880F991F281748
:10A68000390724F090937C0380937B0380914006EC
:10A6900080FF10C080917B0390917C03821593050D
:10A6A00024F030927C0320927B0320907B03309037
:10A6B0007C0315C020907B0330907C0310C00E9467
:10A6C000C43730927C0320927B038091CB03806C53
:10A6D0008093CB038091CA038D7F8093CA038091BE
:10A6E000CB0381FF35C18091770390917803A091CE
:10A6F0007903B0917A03892B8A2B8B2B21F08091DF
:10A700000204813001F58091E8039091E903AA27C2
:10A7100097FDA095BA2F072E7EE0880F991FAA1FDC
:10A72000BB1F7A95D1F7702D8093770390937803B0
:10A73000A0937903B0937A0380910204813019F4D5
:10A7400082E080930204A0912D06B0912E06910123
:10A750000E94ADB18B019C01992324F40150104E4D
:10A760002F4F3F4FD901C801072E7DE0B595A79522
:10A77000979587957A95D1F7702D80937D03909367
:10A780007E03A0937F03B09380032091CC0330918C
:10A79000CD03203A4FE03407A8F54091770350915C
:10A7A00078036091790370917A032A013B01032EAB
:10A7B0003AE076946794579447943A95D1F7302DC0
:10A7C00044195509660977092C013D01440C551CB3
:10A7D000661C771C440C551C661C771C440C551CCD
:10A7E000661C771C440C551C661C771C440D551DBB
:10A7F000661D771D40937703509378036093790328
:10A8000070937A0320343F4160F540917703509173
:10A8100078036091790370917A038A019B010F2E6E
:10A82000FCE03695279517950795FA95D1F7F02D09
:10A83000401B510B620B730B880F991FAA1FBB1F84
:10A84000880F991FAA1FBB1F840F951FA61FB71F34
:10A850008093770390937803A0937903B0937A035E
:10A8600041C0209154033091550333231CF431959A
:10A870002195310924363105ACF520914A033091F8
:10A880004B034091FA035091FB03241B350B2130FD
:10A890006FEF36073CF12F3F310509F01CF5409171
:10A8A0007703509178036091790370917A038A015C
:10A8B0009B010F2EFEE03695279517950795FA9583
:10A8C000D1F7F02D401B510B620B730B840F951FBA
:10A8D000A61FB71F8093770390937803A093790303
:10A8E000B0937A0300917703109178032091790354
:10A8F00030917A030F2EFEE0369527951795079530
:10A90000FA95D1F7F02DC8011093E9030093E803FD
:10A9100060915205662389F070E00E9456B1C8012B
:10A92000861B970B9093170480931604060F171F2E
:10A9300010933F0100933E011FC010921704109224
:10A9400016048FEF93E090933F0180933E0114C073
:10A9500010920204109277031092780310927903F8
:10A9600010927A031092E9031092E80305C08091D7
:10A97000CB03806C8093CB038091B70481FF37C0F9
:10A980008091C7039091C8039101332014F42D5F87
:10A990003F4F35952795359527958217930758F49E
:10A9A0002091E8033091E903232B29F01C01220CAC
:10A9B000331C220C331C80914A0390914B03A091CD
:10A9C0004C03B0914D038093FA039093FB03A09343
:10A9D000FC03B093FD0388E99AE39093CE0480933F
:10A9E000CD0480E09EE09093AA028093A90280911A
:10A9F0002C0690E00A96880F991F880F991F281639
:10AA000039060CF41C012091640630E02451310910
:10AA1000220F331F220F331F3E822D822215330552
:10AA200014F43E832D832091DF04211108C020916E
:10AA30001B052E3F20F02091BB04222301F1209121
:10AA4000CC033091CD032250310920333105B8F4C5
:10AA50008D809E801814190494F421E030E0309326
:10AA6000CD032093CC0320911B05283230F429E03C
:10AA7000209357019E838D8302C09E838D83809196
:10AA8000CC04811102C00E94DE950D811E811093BD
:10AA9000570C0093560C20919E0330919F03220F78
:10AAA000331F220F331F8091670690916806821B27
:10AAB000930B013A1105C4F09801112314F42F5F90
:10AAC0003F4F35952795522F432F8217930714F444
:10AAD000582F492F319521953109852F942F8217B1
:10AAE00093076CF4C9010BC08135910514F080E522
:10AAF00090E0803B1FEF910714F480EB9FEF2091D3
:10AB0000640630E0220F331F220F331FA9018D800E
:10AB10009E8048195909481759070CF4CA010D813C
:10AB20001E81021B130B9A8789878017910714F4E3
:10AB30001A870987809114049091150420912706A3
:10AB400030912806281B390B3093330620933206A8
:10AB5000009142060023E9F0A701481B590BCA01E6
:10AB6000AA2797FDA095BA2F40912604509127045B
:10AB70006091280470912904840F951FA61FB71FA8
:10AB80008093260490932704A0932804B09329046B
:10AB900019C04091260450912704609128047091B7
:10ABA0002904C901AA2797FDA095BA2F840F951FE4
:10ABB000A61FB71F8093260490932704A093280410
:10ABC000B09329048091260490912704A091280431
:10ABD000B091290481305AEF9507A105B1056CF0B9
:10ABE00080E09AEFA0E0B0E08093260490932704E1
:10ABF000A0932804B093290411C081159640AF4F4B
:10AC0000BF4F64F480E096E0AFEFBFEF809326047F
:10AC100090932704A0932804B09329041091610510
:10AC2000193088F4129F7001139FF00C1124FF203B
:10AC30001CF477E0E70EF11CF594E794F594E794A3
:10AC4000F594E79410C0812F8695829F7001839FB1
:10AC5000F00C1124FF201CF483E0E80EF11CF594A5
:10AC6000E794F594E79440903B0150903C016624B2
:10AC700057FC6094762C6091260470912704809193
:10AC8000280490912904A30192010E948BB117011D
:10AC9000220E331E2091270130E040E050E08985EC
:10ACA0009A8599231CF4919581959109DC0199234A
:10ACB0000CF41196B595A7958D809E80A80DB91DB1
:10ACC0000E94D2B16B017C0199232CF42FE3C20EB8
:10ACD000D11CE11CF11C689415F8F594E794D79405
:10ACE000C7941694D1F7DC86CB86F101C214D30445
:10ACF0000CF4F601222433242C183D08FE87ED873E
:10AD0000E215F30514F43E862D862091120430914D
:10AD1000130480911C0690911D06821B930B909347
:10AD20001B0680931A06002321F1A21AB30A95018B
:10AD3000442737FD4095542F298B3A8B4B8B5C8BE6
:10AD400040912204509123046091240470912504C1
:10AD500089889A88AB88BC88840E951EA61EB71E6B
:10AD60008092220490922304A0922404B09225049D
:10AD700021C0209122043091230440912404509159
:10AD8000250429833A834B835C83AC01662757FDF6
:10AD90006095762F89809A80AB80BC80480D591DC4
:10ADA0006A1D7B1D40932204509323046093240466
:10ADB000709325044091220450912304609124044F
:10ADC0007091250441300AEF5007610571056CF060
:10ADD00040E05AEF60E070E0409322045093230477
:10ADE000609324047093250411C0411556406F4FA1
:10ADF0007F4F64F440E056E06FEF7FEF4093220412
:10AE0000509323046093240470932504193088F42C
:10AE1000189F5001199FB00C1124BB201CF437E07F
:10AE2000A30EB11CB594A794B594A794B594A79418
:10AE30000FC01695189F5001199FB00C1124BB200C
:10AE40001CF443E0A40EB11CB594A794B594A79448
:10AE50006091220470912304809124049091250430
:10AE6000A30192010E948BB12A0D3B1D8B849C840F
:10AE7000821693060CF496013C872B872215330526
:10AE800014F43C862B868091CC0481113DC10E9434
:10AE9000DE953AC19EA28DA2F4013397A0811A16C5
:10AEA0000CF01DC1A034E1F0BB27A7FDB095A701B0
:10AEB00096010E94D2B19B01AC01992324F4215C3C
:10AEC0003F4F4F4F5F4FBA01A901689415F8759530
:10AED0006795579547951694D1F75E834D8304C0C7
:10AEE0000F8D0D83E8A1EE83ADA1BEA11297AC91A9
:10AEF000A03449F4ED81FE812D853E85E20FF31FDC
:10AF0000FE83ED832CC0A03C49F4ED81FE812D85AC
:10AF10003E85E21BF30BFE83ED8321C0BB27A7FD1B
:10AF2000B095298D3A8D4B8D5C8D0E94D2B19B01DD
:10AF3000AC01992324F4215C3F4F4F4F5F4FBA017E
:10AF4000A901689415F875956795579547951694D6
:10AF5000D1F7ED81FE81E40FF51FFE83ED83ADA1F6
:10AF6000BEA11197AC91A03449F4ED81FE812B85EF
:10AF70003C85E20FF31FFE83ED832CC0A03C49F417
:10AF8000ED81FE812B853C85E21BF30BFE83ED8377
:10AF900021C0BB27A7FDB0952D893E894F89588DCB
:10AFA0000E94D2B19B01AC01992324F4215C3F4F54
:10AFB0004F4F5F4FDA01C901689415F8B595A79511
:10AFC000979587951694D1F7ED81FE81E80FF91FCB
:10AFD000FE83ED83EDA1FEA1A081A03439F4ED81C3
:10AFE000FE8129853A85E20FF31F28C0A03C39F481
:10AFF000ED81FE8149855A85E41BF50B1FC0BB27F7
:10B00000A7FDB09529893A894B895C890E94D2B104
:10B010009B01AC01992324F4215C3F4F4F4F5F4FBC
:10B02000DA01C901689415F8B595A79597958795A4
:10B030001694D1F7ED81FE81E80FF91F9201D2013C
:10B0400012978C9181FD06C0D3018D919C918E1732
:10B050009F075CF4D3018D919C91E80FF91FFF23AA
:10B060000CF43196F595E79511C0111105C0EE0F5E
:10B07000FF1FE81BF90B0AC0123040F08E1B9F0B1C
:10B080006BA17CA10E9456B1E60FF71F49815A813E
:10B090004E175F0744F46F8578896E177F072CF48D
:10B0A000E9A1FAA102C0ED8DFE8DCF01FF230CF4C2
:10B0B00003969595879595958795D5018C93CF01A6
:10B0C00083709078992324F401978C6F9F6F019679
:10B0D000880FD9018C93D301ED93FC9304C0F50143
:10B0E0001082D2011C92BFE0AB0EB11CEFE04E0EFD
:10B0F000511CF2E06F0E711C04E0800E911C421492
:10B10000530409F0C7CEAEC05090A405E52DF0E081
:10B11000FCA3EBA380912C0690E04C01880C991CB9
:10B12000880C991C9A8289828091640690E05C0167
:10B13000AA0CBB1CAA0CBB1CB88AAF860F2EF8E960
:10B140006F2EF9E07F2EF02D09E919E00F2EF3E4C0
:10B150008F2EF6E09F2EF02D0F2EF7EDAF2EF5E09F
:10B16000BF2EF02D0F2EFDE42F2EFAE03F2EF02DF6
:10B17000E980ED8EFA80FE8EEF85E9A3F889FAA3C7
:10B1800029853A85442737FD4095542F298B3A8BE2
:10B190004B8B5C8B4B855C85662757FD6095762FC6
:10B1A0004D8B5E8B6F8B788F6D857E85882777FDC5
:10B1B0008095982F698F7A8F8B8F9C8FED81EF8F81
:10B1C000FE81F8A32D813E816901EE24D7FCE09435
:10B1D000FE2CC401450153019801152D29013C01A4
:10B1E00059CE1092340610923506109236061092FF
:10B1F000370610923C0610923D0610923E061092C1
:10B200003F0610925303109252031092EB031092D8
:10B21000EA031092ED031092EC038091E603811192
:10B220000C9413450C942743109234061092350663
:10B23000109236061092370610923C0610923D0688
:10B2400010923E0610923F06109253031092520342
:10B250001092EB031092EA031092ED031092EC03AC
:10B260000C941345A6960FB6F894DEBF0FBECDBF63
:10B27000DF91CF911F910F91FF90EF90DF90CF90D2
:10B28000BF90AF909F908F907F906F905F904F9006
:10B290003F902F90089588E694E09F938F9387EBDB
:10B2A0009CEA9F938F93E0917806F0917906099537
:10B2B0000F900F900F900F90089580913F0590E0B0
:10B2C000FC01EE0FFF1FEF5CF74F208131812D3E17
:10B2D0003F4F14F010925001FC01EE0FFF1FEF5C86
:10B2E000F74F808191818A3B9F4FCCF48091500130
:10B2F000811115C081E080935001EDE7FAE0808173
:10B300008F5F8083853038F088EE93E09093CE0491
:10B310008093CD04089566E970E00C94BA280895EE
:10B32000CF93C82F882311F120E634E03F932F9369
:10B3300027EB3CEA3F932F93E0917806F091790652
:10B34000099580911A0190911B016BE270E00E94B7
:10B3500056B16F5F0F900F900F900F90673018F4F9
:10B360006093510103C086E0809351019091620582
:10B37000923328F580915101899F902D112490934B
:10B380005301CC23F1F068EC70E00E94BA28809160
:10B3900051011F928F9325E534E03F932F9327EBC4
:10B3A0003CEA3F932F93E0917806F0917906099556
:10B3B0000F900F900F900F900F900F9002C09093EE
:10B3C00053018091B205823340F490915101989FCE
:10B3D000802D11248093650402C0809365048091C0
:10B3E000B305823340F490915101989F902D112420
:10B3F0009093640402C0809364049091530120915F
:10B400006504921720F42FEF290F209365042091F3
:10B410006404291720F02FEF290F20936404209152
:10B42000640430916504321728F0882319F0215004
:10B4300020936504CC2309F47FC08DEC989F812D67
:10B440001124869586958695282F220F322F330F4B
:10B45000330F230F921B1F929F931F928F9380E4B1
:10B4600094E09F938F9387EB9CEA9F938F93E09157
:10B470007806F09179060995809164042DB73EB75E
:10B48000285F3F4F0FB6F8943EBF0FBE2DBF8823F5
:10B4900039F19DEC899F912D11249695969596955D
:10B4A000292F220F322F330F330F230F821B1F92AE
:10B4B0008F931F929F938EE294E09F938F9387EBDD
:10B4C0009CEA9F938F93E0917806F0917906099515
:10B4D0008DB79EB708960FB6F8949EBF0FBE8DBF6E
:10B4E00080916504882341F19DEC899F912D112461
:10B4F000969596959695292F220F322F330F330F5D
:10B50000230F821B1F928F931F929F9388E194E0D9
:10B510009F938F9387EB9CEA9F938F93E09178069C
:10B52000F091790609952DB73EB7285F3F4F0FB6CA
:10B53000F8943EBF0FBE2DBFCF91089514B815B833
:10B540008AE08AB98FE58BB988EE93E0019700977E
:10B55000E9F7199B0DC04C9B04C085E18093540111
:10B560000DC086E18093540181E08093C20306C040
:10B5700089E18093540181E08093C20381E887B917
:10B580003E9A8FEF88B98BE184B981E085B9469AFC
:10B5900084B7877F84BFE0E6F0E0808188618083A4
:10B5A000108284EC99E09093CE048093CD041092A5
:10B5B000110410921004109236081092350810925F
:10B5C0001304109212041092150410921404809126
:10B5D0005401843168F084EC94E0A0E0B0E0809302
:10B5E000210190932201A0932301B09324010CC068
:10B5F0008BE095E0A0E0B0E08093210190932201E0
:10B60000A0932301B093240128988091540189319B
:10B6100011F4299A01C029980E94BA9C0E94939C17
:10B620000E94BFAC0E9476910E940E1B81E00E9496
:10B63000C9A00E94BD950E94B72187E00E941919F8
:10B6400080915401893111F4299A01C02998789484
:10B650000E94AF26809154018431E8F42CE088E107
:10B6600090E00FB6F894A895809360000FBE2093E9
:10B67000600006EE13E0C7EBDCEA1F930F93DF9345
:10B68000CF93E0917806F091790609950F900F908D
:10B690000F900F90F2CF8091DE0482608093DE04E1
:10B6A0001092E104C4EFD1E00E94C73385E090E03E
:10B6B0000E945A9C5C018091DE0480FD05C0C5019A
:10B6C0000E94639C8823B9F32197209769F784ED42
:10B6D00093E09F938F9387EB9CEA9F938F93E091E6
:10B6E0007806F091790609950F2EF4EAEF2EF9E02D
:10B6F000FF2EF02D0F900F900F900F90CAE9D9E018
:10B700000F2EF4EDCF2EF5E0DF2EF02D01E010E04E
:10B710000F2EF1ED2F2EF3E03F2EF02D0F2EF7EB35
:10B720004F2EFCEA5F2EF02D0F2EF4E69F2EF02D0B
:10B730000F2EF5E66F2EFAE07F2EF02DF6018081B8
:10B74000181664F014C00E94C7338091DE0480FD97
:10B7500005C0C5010E94639C8823B9F3C5010E94FE
:10B76000639C811104C0888188236CF704C08881A0
:10B7700088230CF03FC09801ADECBCEC0E94B3B143
:10B780009695879596958795969587959C01220F16
:10B79000331F880F991F880F991F880F991F820FD9
:10B7A000931F9801281B390BC9019F932F933F9238
:10B7B0002F925F924F92E0917806F0917906099569
:10B7C00080915D048F5F80935D04F70131979081D4
:10B7D000F7018081999D800D11240F900F900F909B
:10B7E0000F900F900F90882329F0F3019081891713
:10B7F00008F480830F5F1F4FF4E0CF0ED11C2F960B
:10B800002FE0E20EF11C0D30110509F097CF0F2E3D
:10B81000F4EDEF2EF5E0FF2EF02D0AE919E0C1E07E
:10B82000D0E00F2EF3EBAF2EF3E0BF2EF02D0F2E56
:10B83000F7EBCF2EFCEADF2EF02D6894772471F819
:10B840004801F80180818823BCF0F7018081181637
:10B850009CF4DF93CF93BF92AF92DF92CF92E091AF
:10B860007806F091790609957092CB040F900F90AD
:10B870000F900F900F900F90F4018081807880835B
:10B880002196015F1F4FF4E0EF0EF11CCD30D10582
:10B89000B9F68091650A8F3FD1F199E2899F912D88
:10B8A000112492959F7024E6929F801911241F9273
:10B8B0008F931F929F938DE993E09F938F9387EBD4
:10B8C0009CEA9F938F93E0917806F0917906099511
:10B8D0008091650A84564DB75EB7485F5F4F0FB6DB
:10B8E000F8945EBF0FBE4DBF833088F484E893E0C8
:10B8F0009F938F9387EB9CEA9F938F93E0917806B9
:10B90000F091790609950F900F900F900F90C3DC7E
:10B9100080913D0590915D04891728F4E3E6FAE0F3
:10B92000908190619083893020F088E08093B2020A
:10B9300002C08093B20284E693E09F938F9387EBDB
:10B940009CEA9F938F93E0917806F0917906099590
:10B9500088EE93E00E945A9CEC010E944B1B0F90D2
:10B960000F900F900F90CE010E94639C8823D9F313
:10B970008FE593E09F938F9387EB9CEA9F938F9340
:10B98000E0917806F0917906099580E00E945329AC
:10B99000289880ED97E09093CE048093CD0485E5C0
:10B9A00080937F0A8EE090E00E944225C82F8FE0AE
:10B9B00090E00E9442252C2F30E0322F2227280FC2
:10B9C000311D30936304209362048AE090E00E946A
:10B9D0004225C82F8BE090E00E9442252C2F30E0BA
:10B9E000322F2227F901E80FF11DCF01F0936104F6
:10B9F000E09360040F900F900F900F90019631F03C
:10BA00008091620490916304019641F41092630462
:10BA1000109262041092610410926004809161049B
:10BA20008F93809160048F93809163048F938091B2
:10BA300062048F938DE393E09F938F9387EB9CEA4F
:10BA40009F938F93E0917806F091790609950E9473
:10BA50001D8788E893E19093B1028093B00281E062
:10BA600080937E0A5DDC809165050E94681813DC76
:10BA700080ED97E00E945A9C4C018AEF90E00E9472
:10BA80005A9C809161048F93809160048F938DE123
:10BA900093E09F938F9388E193E29F938F93E0913C
:10BAA0007806F0917906099580E00E942C2383E0C6
:10BAB0008093460C10925C048091B8054DB75EB738
:10BAC000425F5F4F0FB6F8945EBF0FBE4DBF84FF5D
:10BAD00003C081E08093660483E08093B302612C0D
:10BAE00077247394C0E0D0E00F2EFDE7AF2EFAE08C
:10BAF000BF2EF02D0F2EF5E6CF2EF5E0DF2EF02D28
:10BB00000F2EF0E7EF2EF7E1FF2EF02D0F2EF7E1CD
:10BB10002F2EF9E03F2EF02D0F2EF3E14F2EF9E0FE
:10BB20005F2EF02D172D062D03C01CE001C010E084
:10BB300012BC11BC8091EC04882311F04798FECF11
:10BB40008091D104882309F4BFC280910F0188231A
:10BB500009F4BAC2F8948091D10481508093D10441
:10BB60007894F5018081882311F0A7DB02C00E9440
:10BB700006380E94C733289880910404882331F046
:10BB8000809104048150809304043EC0EFE6F0E00D
:10BB90008081806280831092320810923108E3E63F
:10BBA000FAE080818860808320913F0530E0220F99
:10BBB000331FF901E958F74F118210828091400537
:10BBC00090E0880F991FFC01E958F74F118210820D
:10BBD000F901EF5CF74F11821082FC01EF5CF74F27
:10BBE00011821082E0914205F0E0EE0FFF1FEF5C42
:10BBF000F74F11821082E0914105F0E0EE0FFF1F38
:10BC0000EF5CF74F118210828091B0029091B102E7
:10BC100001979093B1028093B002892B21F080911B
:10BC2000DF048823B1F18091B0029091B102892B99
:10BC3000C9F40E9409A185E090E09093B10280933D
:10BC4000B002E0E8FCE080819181019691838083DD
:10BC5000E3E6FAE0808181608083E7E4FCE08081B4
:10BC6000826080838091A9029091AA02019691F44A
:10BC700080910304882371F088EA91E69093CE04C2
:10BC80008093CD0480E890E09093AA028093A9026B
:10BC900001C028980E94161A8091D104811111C206
:10BCA0008091AB04882319F00E9433930AC28091DB
:10BCB000CC04811102C00E94DE958091AF028111F7
:10BCC0000E94149D0E9400AD0E945FA8C4010E94C2
:10BCD000639C882309F4F1C124E1820E911C0E9427
:10BCE000D39CF6018081863011F4A9D704C084303A
:10BCF00011F40E942C848091C203882329F1809141
:10BD00000605909107058C32914074F08091560C95
:10BD10009091570C81159240CCF48091060590913A
:10BD2000070583359340A4F00F5F033390F08091B3
:10BD30000304882331F0E2E6FAE0808180628083A8
:10BD400008C01092EF0305C000E003C000E001C08E
:10BD500000E08091DF04811105C080911B058E31C8
:10BD600030F00BC0E3E6FAE0808182608083E7E494
:10BD7000FCE080818260808311C08091CD0490912D
:10BD8000CE04892B59F48091B0029091B1020797AB
:10BD900028F0E7E4FCE080818D7F80838091660459
:10BDA000882361F080910404873940F01092660482
:10BDB00088E893E19093CE048093CD048091B502FE
:10BDC000882321F081508093B5022DC01092890AFA
:10BDD0001092D7031092D6031092D5031092D40379
:10BDE0001092D3031092D2038091040481111BC0DE
:10BDF0008091A9029091AA020196A9F4209166046B
:10BE0000223089F088E99AE39093CE048093CD04A0
:10BE100080E09CE09093AA028093A902222319F06B
:10BE200082E0809366048091A402893C70F0815086
:10BE30008093A402E3E6FAE080818B7F8083E6E6CC
:10BE4000FAE080818160808351C0E4EEF8E0808177
:10BE50008823F1F0E3E6FAE080818460808389E062
:10BE60008093BB048091A9029091AA02019681F46B
:10BE700080910304882361F088E99AE39093CE04CB
:10BE80008093CD0480E098EA9093AA028093A9025F
:10BE900010926B0410926A04109269041092680464
:10BEA00010926704E7EDF8E010828FEFECE4F9E020
:10BEB0008083E5E1F9E011821082F10111821082A4
:10BEC0008FEF9FEFF201918380831092F303109222
:10BED000F4031092F5031092F6031092F703E6E6CE
:10BEE000FAE080818E7F80831092A402209153011A
:10BEF00030E080911A0190911B0128173907DCF07E
:10BF00008091CB0380628093CB038091A9029091B2
:10BF1000AA02019681F480911A0190911B010B975E
:10BF200054F0F092CE04E092CD0440E053E0509300
:10BF3000AA024093A90280915B048F5F80935B0407
:10BF4000813309F082C010925B04809180048823C1
:10BF500019F08150809380048091CB0381FF0AC047
:10BF600080915E0490915F04019690935F048093AA
:10BF70005E0404C05AEAC52F85E0D82F8091CC0317
:10BF80009091CD038115944008F051C0409108056F
:10BF90005091090560910A0570910B05809112017D
:10BFA00090911301A0911401B09115014817590700
:10BFB0006A077B07A4F48091080590910905A09178
:10BFC0000A05B0910B050596A11DB11D80930805CA
:10BFD00090930905A0930A05B0930B0528C04091E2
:10BFE00008055091090560910A0570910B05809133
:10BFF000120190911301A0911401B09115018417C1
:10C000009507A607B7079CF480910805909109054C
:10C01000A0910A05B0910B050597A109B10980937C
:10C02000080590930905A0930A05B0930B0580912C
:10C030001A0190911B012F5F3F4F281739072CF4ED
:10C040008091CB038F7D8093CB032196C237FBE099
:10C05000DF0799F5809162049091630401969093B3
:10C0600063048093620420916004309161042F5F27
:10C070003F4F3093610420936004692F8EE090E07D
:10C080000E944525E2E6F4E060818FE090E00E94A6
:10C090004525609161048AE090E00E944525E0E634
:10C0A000F4E060818BE090E00E94452584E190E01F
:10C0B0000E945A9C4C01C0E0D0E00E948F850E94F3
:10C0C000FD21112319F0115011110CC00E943A9B4F
:10C0D00081112BCD8091CC04811129CD0E94DE9558
:10C0E00010E026CD8091CC04811122CD0E94DE95F6
:10C0F0001FCD80917D049FE0899FF0011124E956B6
:10C10000F64F978120917C04291728F490937C04A2
:10C1100080937B0408C0992331F020917A04921710
:10C1200010F490937A048F5F8C3018F480937D0420
:10C13000089510927D0480917A048F3F19F08093C6
:10C14000830402C01092830480917C048093840451
:10C1500080917B04809382048FEF80937A04109205
:10C160007C0410927B04089595E1899F802D112411
:10C170000E94351580E19BE09F938F938BE095E1C2
:10C180009F938F93E0917806F091790609950F902F
:10C190000F900F900F900895CF93C0915701C093C7
:10C1A00081048091CB0385FF14C08091C103882353
:10C1B00031F080916505863021F0E0E103C0E0E1D7
:10C1C00001C0EEE0CC2301F1809179048031E1F4EB
:10C1D00025C08091BB049FEF980F9232B8F49091E4
:10C1E000030491110AC0282F30E0F901EE0FFF1F60
:10C1F000E95DF44FE491E11109C0E82FF0E0EE0FA2
:10C20000FF1FEA5DF44FE491E11109C08091B90587
:10C2100086FD08C010925701C0E004C0EC2FE093E7
:10C220008104CE2F809179048C1311C08091770402
:10C23000909178040E94639C8823E9F080EA9FE053
:10C240000E945A9C909378048093770408C080EDF4
:10C2500097E00E945A9C9093780480937704CC23B3
:10C2600031F080915701C81302C010925701C0935A
:10C2700079048C2F01C080E0CF91089580912A0924
:10C28000893831F138F48230D9F08330E9F08130E7
:10C29000F1F512C08D3861F08E3831F08A38B9F579
:10C2A0005CE284EB97E017C05CE28AE796E013C09B
:10C2B0005CE286EA96E00FC054E086E792E00BC0AD
:10C2C00054E089E892E007C059E082ED96E003C0AF
:10C2D0005CE28CED96E020911F0930912009332318
:10C2E000B1F02517A0F430E0A0E2B9E002C02517B4
:10C2F00070F4E32FF0E0E45FF64F4589FC01E20FB4
:10C30000F11D40832F5F3F5F4C91341780F30895F8
:10C31000809120018B3211F08D32C9F4409150058B
:10C320002091F8033091F903429FC001439F900D83
:10C33000112463E070E00E9456B1CB01805D9A4801
:10C340006F5C7F4F6133710508F440C008958032FF
:10C35000F9F48091CB0381FF3CC080917E049091E1
:10C360007F04805D9A48813325E7920730F0843955
:10C3700035E7930788F184569109803325E79207C2
:10C3800098F58D3C34E7930750F58C599F4F0895ED
:10C390008E3589F42091F30330E0C901880F991F8D
:10C3A000220F331F220F331F220F331F820F931FC1
:10C3B000805D9A4808958637A9F42091F30336EFFB
:10C3C0003203C0011124805D9A4808958EEF94E7EE
:10C3D000089580E395E7089580E395E7089580E365
:10C3E00095E7089580E395E70895CF938A3809F497
:10C3F00036C218F4893841F017C48D3809F442C3A5
:10C400008E3809F485C210C4C7DEC82F8093B607E2
:10C410006091FE037091FF038091000490910104EC
:10C4200024E630E040E050E00E948BB12C503E4FBB
:10C430003093E2062093E106C11106C069DF9093B4
:10C44000E8068093E70606C080E395E79093E80648
:10C450008093E7068091E7069091E8069093EA06BC
:10C460008093E9069093EC068093EB068091E106B9
:10C470009091E2062091E5063091E6068217930737
:10C4800024F49093E6068093E5062091E30630912C
:10C49000E4062817390724F49093E4068093E30612
:10C4A0001092DE068CED96E09093F1028093F002FC
:10C4B00080912001809302078091CA0380FF04C00D
:10C4C00083E48093030703C080E280930307E09135
:10C4D000BB04EE2381F18DECE89F812D112486951C
:10C4E0008695869590E3980F9093ED06880F982F88
:10C4F000990F990F890F2E2F281B822F805D809313
:10C50000EE068AE38093EF0641E1E49FF0011124F7
:10C51000E459F44FA0EFB6E080E097E024912D932A
:10C520003196A817B907D1F780E28093000780936E
:10C5300001078CE282C38091C103882369F0E2EF96
:10C54000FDE0ADEEB6E087E09EE024912D933196BC
:10C55000E817F907D1F76AC38091CB0385FF0DC0B7
:10C56000E8E0FEE0ADEEB6E08DE19EE024912D9393
:10C570003196E817F907D1F75BC3809180048823CF
:10C58000B9F1EFEBFDE0ADEEB6E086EC9DE0249175
:10C590002D933196E817F907D1F780915201805D0C
:10C5A0008093F106EAEBF5E0A4EFB6E086EC95E0C7
:10C5B00021912D93E817F907D9F78091C90381FFDD
:10C5C0000EC082E48093FE068FE48093FF0681E430
:10C5D0008093000784E5809301078CE22EC380E2FC
:10C5E0008093FF0680930007809301078CE225C3A8
:10C5F00080918C04882309F4DAC097E59093ED06C6
:10C6000090E59093EE0690E29093EF0630918D04C2
:10C610002DEC329F412D112446954695469550E3C9
:10C62000540F5093F006440F542F550F550F450FDC
:10C63000341B305D3093F1063FE23093F206829F67
:10C64000212D112426952695269530E3320F30931F
:10C65000F306220F322F330F330F230F821B805D1F
:10C660008093F4069093F5064091850450918604DA
:10C67000493E83E0580708F19A013695279536958B
:10C68000279536952795A5ECB0E20E94B3B1929517
:10C6900082958F7089279F70892720E3280F209328
:10C6A000F60668EE73E0869F9001879F300D969F97
:10C6B000300D1124421B530B03C080E28093F60619
:10C6C00045365105C0F09A01369527953695279540
:10C6D000ABE7B4E10E94B3B19695879520E3280FAC
:10C6E0002093F70664E6689F9001699F300D11243E
:10C6F000421B530B03C080E28093F7069A01ADEC16
:10C70000BCEC0E94B3B196958795969587959695C2
:10C71000879520E3280F2093F8069C01220F331FF2
:10C72000880F991F880F991F880F991F820F931FD9
:10C73000481B590B405D4093F9068DE68093FA063D
:10C7400080E28093FB0680918B04853678F099E235
:10C75000899F912D112492959F7020E3290F20939A
:10C76000FC0624E6929F8019112403C090E2909366
:10C77000FC069DEC899F912D112496959695969592
:10C7800020E3290F2093FD06990F292F220F220F56
:10C79000920F891B805D8093FE0683E78093FF06DE
:10C7A00080E280930007809301078CE246C280916B
:10C7B000B70484FF0DC0ECEDFDE0ADEEB6E081EF17
:10C7C0009DE024912D933196E817F907D1F732C2F5
:10C7D0008091EF0381111DC0E0E2FEE0ADEEB6E016
:10C7E00081E39EE024912D933196E817F907D1F764
:10C7F00082E38093FD068EE28093FE0680E38093C1
:10C80000FF0688E38093000781E6809301078CE2AE
:10C8100014C28091C90381FF0DC0E6ECFDE0ADEECE
:10C82000B6E08BED9DE024912D933196E817F90742
:10C83000D1F70CC0EEE1FEE0ADEEB6E083E39EE0A2
:10C8400024912D933196E817F907D1F78091C90308
:10C8500080FFF2C182E58093ED068CE2EEC160912B
:10C86000FE037091FF03809100049091010424E67F
:10C8700030E040E050E00E948BB12C503E4F3093AE
:10C88000CA072093C9078091B607811106C040DD11
:10C890009093CC078093CB0706C080E395E79093F5
:10C8A000CC078093CB0788E78093CD078091D80889
:10C8B0008093CE078091D70881FF04C084E48093E1
:10C8C000CF070BC08091D908833021F480E2809398
:10C8D000CF0703C081E28093CF0784EB97E090936A
:10C8E000F1028093F002809196028093DB078091A1
:10C8F000CF078093DD078091DD089091DE089923B2
:10C900000CF40196959587958093D0078CE295C19C
:10C91000F0DB6091FE037091FF0380910004909121
:10C92000010424E630E040E050E00E948BB12C503E
:10C930003E4F309395062093940680911A01909172
:10C940001B0190938F0680938E0680911A0190911F
:10C950001B019093910680939006809165069091BB
:10C96000660699230CF40196959587958093800629
:10C97000809387068091DD089091DE0899230CF45E
:10C980000196AC0155954795409385062091DB08AB
:10C990003091DC08ADECBCEC0E94B3B1929582956D
:10C9A0008F7089279F7089278093860640938C0615
:10C9B00080938D068091B607811106C0A9DC909303
:10C9C0009D0680939C0606C080E395E790939D06A4
:10C9D00080939C0688E780939E0680911A0190912F
:10C9E0001B019093990680939806809183048C5E36
:10C9F00080939206809184048C5E809393062091AC
:10CA0000190530911A05ADECBCEC0E94B3B19695B6
:10CA10008795969587959695879590939B06809395
:10CA20009A068091B60780937C06809115059091B7
:10CA3000160590939706809396068AE796E0909362
:10CA4000F1028093F00240915E0450915F049A01DC
:10CA5000A9E8B8E80E94B3B196958795929582951A
:10CA60008F7089279F7089278093A1066CE3689F48
:10CA70009001699F300D1124421B530B4093A20675
:10CA80008CE2DBC036DB2091DB083091DC08369588
:10CA9000279536952795ABE7B4E10E94B3B19695FB
:10CAA00087959093BC068093BB0680916506909114
:10CAB000660699230CF40196959587958093AC06AC
:10CAC00080914E0190914F0199230CF40196959518
:10CAD00087958093AD068091800C8093B0068091FD
:10CAE000DD089091DE0899230CF4019695958795C1
:10CAF0008093B1068091530190E020911A0130910A
:10CB00001B01AC014E5F5F4F421753078CF420911D
:10CB10001A0130911B01A901481B590BCA01029748
:10CB2000982F990F890F8093B806853620F406C098
:10CB30001092B80603C084E68093B8068091BB04C7
:10CB400090E09093BA068093B9066091FE037091CD
:10CB5000FF03809100049091010424E630E040E05E
:10CB600050E00E948BB12C503E4F3093BE06209374
:10CB7000BD0680911A0190911B019093B30680939A
:10CB8000B20680911A0190911B019093B506809393
:10CB9000B4068091B607811106C0BADB9093C00637
:10CBA0008093BF0606C080E395E79093C00680930C
:10CBB000BF068091B60788588093C10680911A01FC
:10CBC00090911B019093C5068093C40680918304C5
:10CBD0008C5E8093B606809184048C5E8093B70649
:10CBE0002091190530911A05ADECBCEC0E94B3B14F
:10CBF0009695879596958795969587959093C70670
:10CC00008093C6061092A80680911505909116058E
:10CC10009093C3068093C20686EA96E09093F10251
:10CC20008093F0028CE209C080E007C08CE205C06E
:10CC30008CE203C08CE201C08CE2CF9108952F9268
:10CC40003F924F925F926F927F928F929F92AF929C
:10CC5000BF92CF92DF92EF92FF920F931F93CF93E9
:10CC6000DF9300D000D0CDB7DEB740915403509190
:10CC7000550320917E0430917F04C901880F991FCC
:10CC8000880F991F880F991F821B930B840F951F84
:10CC900099230CF407969595879595958795959585
:10CCA000879590937F0480937E048091760490E032
:10CCB0008730910510F00C94977BFC01E85AFF4FE8
:10CCC0000C94A7B18091750491E0980F909375042E
:10CCD00090E08131910508F037C4FC01E15AFF4F23
:10CCE0000C94A7B18091CB0385FF2BC080E00E94FC
:10CCF000351580911A0190911B01E0911A01F09174
:10CD00001B012AE030E0B9010E9456B19F938F9336
:10CD1000CF01B9010E9456B17F936F9383E09BE0EE
:10CD20009F938F938CE295E19F938F93E091780688
:10CD3000F091790609950FB6F894DEBF0FBECDBF0E
:10CD40002AC080E00E94351580911A0190911B0144
:10CD5000E0911A01F0911B012AE030E0B9010E9434
:10CD600056B19F938F93CF01B9010E9456B17F9323
:10CD70006F9386EF9AE09F938F938BE095E19F935B
:10CD80008F93E0917806F091790609950FB6F894A3
:10CD9000DEBF0FBECDBF80915C0680FF57C0809183
:10CDA0001B04882359F18AE00E94351580912001E7
:10CDB0001F928F936091FE037091FF038091000496
:10CDC0009091010424E630E040E050E00E948BB1F5
:10CDD0003F932F938AEE9AE09F938F938BE195E197
:10CDE0009F938F93E0917806F091790609950FB69D
:10CDF000F894DEBF0FBECDBF0C94997B8AE00E94F1
:10CE000035156091FE037091FF03809100049091AD
:10CE1000010424E630E040E050E00E948BB13F93F3
:10CE20002F938FED9AE09F938F938BE095E19F93E3
:10CE30008F93E0917806F091790609950F900F9005
:10CE40000F900F900F900F900C94997B8AE00E94A6
:10CE5000351585ED9AE09F938F938BE095E19F9335
:10CE60008F93E0917806F091790609950F900F90D5
:10CE70000F900F900C94997B8091CB0385FF3FC05E
:10CE800085E10E94351540915E0450915F049A013E
:10CE9000A9E8B8E80E94B3B19695879592958295D6
:10CEA0008F7089279F7089276CE3689F9001699F25
:10CEB000300D1124CA01821B930B9F938F939A010B
:10CEC0000E94B3B196958795929582958F70892728
:10CED0009F7089279F938F9388EC9AE09F938F93FD
:10CEE0008CE295E19F938F93E0917806F09179061B
:10CEF00009950FB6F894DEBF0FBECDBF3EC085E1E9
:10CF00000E94351540915E0450915F049A01A9E892
:10CF1000B8E80E94B3B196958795929582958F70E7
:10CF200089279F7089276CE3689F9001699F300D66
:10CF30001124CA01821B930B9F938F939A010E9425
:10CF4000B3B196958795929582958F7089279F703A
:10CF500089279F938F938BEB9AE09F938F938BE01E
:10CF600095E19F938F93E0917806F091790609956A
:10CF70000FB6F894DEBF0FBECDBF8FE10E9435150E
:10CF80001F9280E68F93809166068F93809165064D
:10CF90008F9380EB9AE09F938F938BE095E19F9323
:10CFA0008F93E0917806F091790609958091CA03F4
:10CFB0000FB6F894DEBF0FBECDBF80FF16C089E26A
:10CFC0000E9435158EEA9AE09F938F938BE195E14D
:10CFD0009F938F93E0917806F091790609950F90D1
:10CFE0000F900F900F900C94997B89E20E94351559
:10CFF0008CEA9AE09F938F938BE095E19F938F93B8
:10D00000E0917806F091790609950F900F900F90B6
:10D010000F900C94997B8091CB0385FF1DC08AE211
:10D020000E943515E9E1F5E081818F9380818F932E
:10D0300084EA9AE09F938F938CE295E19F938F937C
:10D04000E0917806F091790609950F900F900F9076
:10D050000F900F900F901CC08AE20E943515E9E1F5
:10D06000F5E081818F9380818F938CE99AE09F9383
:10D070008F938BE095E19F938F93E0917806F091E9
:10D08000790609950F900F900F900F900F900F90C9
:10D0900086E30E94351540911505509116059A01B9
:10D0A000ADECBCEC0E94B3B19695879596958795AB
:10D0B000969587959C01220F331F880F991F880F23
:10D0C000991F880F991F820F931F9A01281B390BF4
:10D0D000C9019F932F939A010E94B3B196958795AA
:10D0E00096958795969587959F938F9380E99AE07B
:10D0F0009F938F938BE095E19F938F93E0917806B8
:10D10000F091790609950FB6F894DEBF0FBECDBF3A
:10D110000C94997B89E00E9435158EE89AE09F93E4
:10D120008F930BE015E11F930F93E0917806F09138
:10D13000790609958EE10E9435158CE89AE09F9357
:10D140008F931F930F93E0917806F09179060995DC
:10D1500083E30E9435158AE89AE09F938F931F938B
:10D160000F93E0917806F091790609958FE30E947C
:10D17000351584E79AE09F938F931F930F93E09167
:10D180007806F091790609958EE70E9435158EE5AF
:10D190009AE09F938F931F930F93E0917806F091FD
:10D1A000790609950FB6F894DEBF0FBECDBF0C947B
:10D1B000997B8091A402882309F48EC08DE50E949A
:10D1C00035158CE59AE09F938F930BE015E11F9343
:10D1D0000F93E0917806F0917906099584E50E9415
:10D1E00035158091D8081F928F9383E59AE09F931D
:10D1F0008F931F930F93E0917806F091790609952C
:10D200008EE50E9435152091DB083091DC08ADECED
:10D21000BCEC0E94B3B196958795969587959695A7
:10D2200087959F938F9389E49AE09F938F931F93A1
:10D230000F93E0917806F091790609950FB6F8946E
:10D24000DEBF0FBECDBF8091D908833079F58091C4
:10D25000D70881FF15C08BE50E94351586E49AE05A
:10D260009F938F93C8019F930F93E0917806F0915D
:10D27000790609950F900F900F900F900C94997B61
:10D280008BE50E94351583E49AE09F938F938BE0A2
:10D2900095E19F938F93E0917806F0917906099537
:10D2A0000F900F900F900F900C94997B8BE50E943C
:10D2B000351580E49AE09F938F938CE295E19F93DC
:10D2C0008F93E0917806F091790609950F900F9071
:10D2D0000F900F900C94997B84E00E94B4600C94A2
:10D2E000997B8091A402882309F47FC08091740403
:10D2F000882309F452C089E60E9435158091BA044A
:10D300001F928F9385E39AE09F938F930F2EFBE0FC
:10D31000EF2EF5E1FF2EF02DFF92EF92E0917806CF
:10D32000F0917906099585E70E943515809196025E
:10D330001F928F931F9210E61F93EDEDF8E081810D
:10D340008F9380818F9389E29AE09F938F93FF92CE
:10D35000EF92E0917806F0917906099582E70E94B4
:10D3600035158091B8041F928F931F921F9380915F
:10D37000B9041F928F9389E19AE09F938F93FF9254
:10D38000EF92E0917806F091790609950FB6F8943E
:10D39000DEBF0FBECDBF0C94997B89E60E94351588
:10D3A000809196021F928F931F9280E68F93EDEDEE
:10D3B000F8E081818F9380818F938091DA081F92AA
:10D3C0008F9380E09AE09F938F938BE095E19F93FA
:10D3D0008F93E0917806F091790609950FB6F8944D
:10D3E000DEBF0FBECDBF0C94997B85E00E94B46078
:10D3F0000C94997B8091BB04882309F44FC09091D1
:10D40000ED02992309F18332F8F487E00E94B460B9
:10D4100083E90E9435158091BB041F928F9385EF9D
:10D4200099E09F938F938BE195E19F938F93E09188
:10D430007806F091790609950F900F900F900F9054
:10D440000F900F900C94997B83E90E9435158FEE15
:10D4500099E09F938F930BE015E11F930F93E09159
:10D460007806F091790609951F921F928091BB046E
:10D47000F1E18F9FC00111248459944F9F938F93A2
:10D480001F930F93E0917806F091790609950FB6F6
:10D49000F894DEBF0FBECDBF0C94997B8091CB0377
:10D4A00085FF16C084E90E9435158CED99E09F93A5
:10D4B0008F938BE095E19F938F93E0917806F091A5
:10D4C000790609950F900F900F900F900C94997B0F
:10D4D00083E90E94351586EC99E09F938F938BE04A
:10D4E00095E19F938F93E0917806F09179060995E5
:10D4F0000F900F900F900F900C94997B8091A90C36
:10D50000823041F40E943A1585E0809376041092AF
:10D51000750416C0863059F480917404882319F07C
:10D52000109274040DC081E08093740409C08830A7
:10D5300039F40E943A1581E08093760410927504C4
:10D540001092A90C0C94997B109275040C94997B01
:10D550008091750491E0980F9093750490E081316B
:10D56000910508F0E9C5FC01E059FF4F0C94A7B103
:10D570008091CB0385FF5DC080E00E9435158091CE
:10D580001A0190911B0100911A0110911B01E09169
:10D590005E04F0915F04A9E1B5E011962C9111971A
:10D5A0002F932C912F932AE030E0B9010E9456B1BD
:10D5B0009F938F93C801B9010E9456B17F936F93D7
:10D5C0009F01A9E8B8E80E94B3B196958795929516
:10D5D00082958F7089279F7089274CE3489F90011F
:10D5E000499F300D1124CF01821B930B9F938F9382
:10D5F0009F010E94B3B196958795929582958F7001
:10D6000089279F7089279F938F938BEA99E09F9337
:10D610008F938CE295E19F938F93E0917806F09140
:10D62000790609950FB6F894DEBF0FBECDBF0C94F6
:10D63000997B80E00E94351580911A0190911B0121
:10D6400000911A0110911B01E0915E04F0915F04BA
:10D65000A9E1B5E011962C9111972F932C912F935E
:10D660002AE030E0B9010E9456B19F938F93C80120
:10D67000B9010E9456B17F936F939F01A9E8B8E862
:10D680000E94B3B196958795929582958F70892760
:10D690009F7089274CE3489F9001499F300D1124CA
:10D6A000CF01821B930B9F938F939F010E94B3B175
:10D6B00096958795929582958F7089279F70892777
:10D6C0009F938F9380E999E09F938F938BE095E1EF
:10D6D0009F938F93E0917806F091790609950FB6A4
:10D6E000F894DEBF0FBECDBF0C94997B85E10E94FC
:10D6F00035151F9280E68F93809166068F938091F7
:10D7000065068F9386E899E09F938F938BE095E170
:10D710009F938F93E0917806F09179060995809117
:10D720005C060FB6F894DEBF0FBECDBF80FF52C0BF
:10D7300080911B04882339F18FE10E943515609197
:10D74000FE037091FF03809100049091010424E690
:10D7500030E040E050E00E948BB13F932F938DE783
:10D7600099E09F938F938BE195E19F938F93E09145
:10D770007806F091790609950F900F900F900F9011
:10D780000F900F903BC08FE10E9435156091FE0312
:10D790007091FF03809100049091010424E630E031
:10D7A00040E050E00E948BB13F932F9384E799E0D3
:10D7B0009F938F938BE095E19F938F93E0917806F1
:10D7C000F091790609950F900F900F900F900F90A0
:10D7D0000F9014C08FE10E9435158AE699E09F935F
:10D7E0008F938BE095E19F938F93E0917806F09172
:10D7F000790609950F900F900F900F9089E20E9483
:10D800003515809120011F928F9387E699E09F93B1
:10D810008F938BE095E19F938F93E0917806F09141
:10D82000790609950F900F900F900F900F900F9021
:10D830000C94997B8091A4028823A1F18BE20E9431
:10D840003515809196021F928F932091DB083091BD
:10D85000DC08ADECBCEC0E94B3B19695879596952B
:10D860008795969587959F938F931F9280E68F93C8
:10D87000EDEDF8E081818F9380818F9380E599E0D1
:10D880009F938F938BE095E19F938F93E091780620
:10D89000F091790609950FB6F894DEBF0FBECDBFA3
:10D8A0000C94997B82E00E94B4600C94997B8FE386
:10D8B0000E9435154091150550911605E7E1F5E0F8
:10D8C00081818F9380818F939A01ADECBCEC0E9493
:10D8D000B3B19695879596958795969587959C0172
:10D8E000220F331F880F991F880F991F880F991FC8
:10D8F000820F931FFA01E81BF90BCF019F93EF935F
:10D900009A010E94B3B196958795969587959695BD
:10D9100087959F938F938CE399E09F938F938BE0F0
:10D9200095E19F938F93E0917806F09179060995A0
:10D930008091CA030FB6F894DEBF0FBECDBF80FF43
:10D9400016C082E50E94351589E399E09F938F9375
:10D950008BE195E19F938F93E0917806F0917906A2
:10D9600009950F900F900F900F900C94997B82E582
:10D970000E94351586E399E09F938F938BE095E1A4
:10D980009F938F93E0917806F091790609950F9017
:10D990000F900F900F900C94997B8091A402882394
:10D9A00009F466C084E50E9435158091D8081F925D
:10D9B0008F938091DA081F928F9383E299E09F936F
:10D9C0008F938BE095E19F938F93E0917806F09190
:10D9D000790609950FB6F894DEBF0FBECDBF8091D2
:10D9E000D9088330A9F484E60E9435158DE199E0C9
:10D9F0009F938F938BE095E19F938F93E0917806AF
:10DA0000F091790609950F900F900F900F9014C028
:10DA100084E60E94351587E199E09F938F938CE20D
:10DA200095E19F938F93E0917806F091790609959F
:10DA30000F900F900F900F908091D70881FD02C03A
:10DA40000C94997B84E60E94351581E199E09F93BF
:10DA50008F938BE095E19F938F93E0917806F091FF
:10DA6000790609950F900F900F900F900C94997B69
:10DA700084E50E9435158BEF98E09F938F938BE0A0
:10DA800095E19F938F93E0917806F091790609953F
:10DA90000F900F900F900F900C94997B80917304CE
:10DAA000882309F4C6C089E60E943515409078069F
:10DAB0005090790683E00E94CE216C0183E00E94A1
:10DAC000CE214C0182E00E94CE217C0182E00E94A6
:10DAD000CE215C0181E00E94CE218C0181E00E9478
:10DAE000CE213C0180E00E94CE211C0180E00E94FA
:10DAF000CE21AC019601ADECBCEC0E94B3B1969581
:10DB0000879596958795969587959C01220F331F4B
:10DB1000880F991F880F991F880F991F820F931FD5
:10DB2000C81AD90ADF92CF9294010E94B3B1969598
:10DB3000879596958795969587959F938F9397014F
:10DB40000E94B3B1969587959695879596958795FA
:10DB50009C01220F331F880F991F880F991F880F70
:10DB6000991F820F931FE81AF90AFF92EF9295010D
:10DB70000E94B3B1969587959695879596958795CA
:10DB80009F938F9398010E94B3B196958795969530
:10DB90008795969587959C01220F331F880F991FB3
:10DBA000880F991F880F991F820F931F081B190B4D
:10DBB0001F930F9393010E94B3B196958795969505
:10DBC0008795969587959F938F9391010E94B3B106
:10DBD0009695879596958795969587959C01220FA2
:10DBE000331F880F991F880F991F880F991F820F65
:10DBF000931F281A390A3F922F929A010E94B3B1BB
:10DC00009695879596958795969587959F938F93EB
:10DC10008EED98E09F938F938BE095E19F938F9388
:10DC2000F20109950FB6F894DEBF0FBECDBF0C947C
:10DC3000997B89E60E9435151F9280E68F9380912B
:10DC4000CB091F928F938091BC091F928F93809173
:10DC5000AD091F928F9380919E091F928F938BEC39
:10DC600098E09F938F938BE095E19F938F93E09142
:10DC70007806F091790609950FB6F894DEBF0FBECD
:10DC8000CDBF0C94997B80917304882309F44AC119
:10DC900080913D05843029F486E00E94B4600C94A4
:10DCA000997B863009F042C08EE70E943515A0901E
:10DCB0007806B090790685E00E94CE216C0185E05F
:10DCC0000E94CE217C0184E00E94CE218C0184E060
:10DCD0000E94CE21FC012AE030E0C601B9010E9479
:10DCE00042B19F938F93C701B9010E9442B17F93C4
:10DCF0006F93C801B9010E9442B19F938F93CF01E6
:10DD0000B9010E9442B17F936F938CEB98E09F938F
:10DD10008F938BE095E19F938F93F50109950FB653
:10DD2000F894DEBF0FBECDBF0C94997B873010F402
:10DD30000C94997B8EE70E9435158091780690911E
:10DD400079069A83898388E00E94CE215C0188E06D
:10DD50000E94CE214C0187E00E94CE216C0187E019
:10DD60000E94CE213C0186E00E94CE217C0186E00B
:10DD70000E94CE212C0185E00E94CE218C0185E0FD
:10DD80000E94CE211C0184E00E94CE219C838B83C3
:10DD900084E00E94CE21AC019501ADECBCEC0E9468
:10DDA000B3B19695879596958795969587959C019D
:10DDB000220F331F880F991F880F991F880F991FF3
:10DDC000820F931FA81AB90ABF92AF9294010E94C2
:10DDD000B3B19695879596958795969587959F93D8
:10DDE0008F9396010E94B3B19695879596958795E6
:10DDF000969587959C01220F331F880F991F880FD6
:10DE0000991F880F991F820F931FC81AD90ADF9292
:10DE1000CF9293010E94B3B1969587959695879579
:10DE2000969587959F938F9397010E94B3B196958E
:10DE3000879596958795969587959C01220F331F18
:10DE4000880F991F880F991F880F991F820F931FA2
:10DE5000E81AF90AFF92EF9292010E94B3B19695E7
:10DE6000879596958795969587959F938F9398011B
:10DE70000E94B3B1969587959695879596958795C7
:10DE80009C01220F331F880F991F880F991F880F3D
:10DE9000991F820F931F081B190B1F930F9391015A
:10DEA0000E94B3B196958795969587959695879597
:10DEB0009F938F932B813C810E94B3B19695879558
:10DEC00096958795969587959C01220F331F880F0D
:10DED000991F880F991F880F991F820F931F2B81FD
:10DEE0003C81281B390B3F932F939A010E94B3B1B9
:10DEF0009695879596958795969587959F938F93F9
:10DF00008FE998E09F938F938BE095E19F938F9398
:10DF1000E981FA8109950FB6F894DEBF0FBECDBF37
:10DF20000C94997B80913D05843029F486E00E9411
:10DF3000B4600C94997B863011F58EE70E943515FC
:10DF40001F9280E68F938091E9091F928F938091B1
:10DF5000DA091F928F938CE898E09F938F938BE060
:10DF600095E19F938F93E0917806F091790609955A
:10DF70000FB6F894DEBF0FBECDBF0C94997B8730EF
:10DF800010F40C94997B8EE70E9435151F9280E661
:10DF90008F938091070A1F928F938091F8091F92A7
:10DFA0008F938091E9091F928F938091DA091F92D4
:10DFB0008F9389E798E09F938F938BE095E19F93F0
:10DFC0008F93E0917806F091790609950FB6F89451
:10DFD000DEBF0FBECDBF0C94997B8091BB0488231C
:10DFE00009F44FC09091ED02992309F18332F8F4BE
:10DFF00087E00E94B46083E90E9435158091BB04DC
:10E000001F928F938EE698E09F938F938BE195E11B
:10E010009F938F93E0917806F091790609950F9080
:10E020000F900F900F900F900F900C94997B83E9B5
:10E030000E94351588E698E09F938F930BE015E1D9
:10E040001F930F93E0917806F091790609951F923E
:10E050001F928091BB04F1E18F9FC001112484596C
:10E06000944F9F938F931F930F93E0917806F091B5
:10E07000790609950FB6F894DEBF0FBECDBF0C949C
:10E08000997B8091CB0385FF16C084E90E943515EA
:10E0900085E598E09F938F938BE095E19F938F9315
:10E0A000E0917806F091790609950F900F900F9006
:10E0B0000F900C94997B83E90E9435158FE398E0CB
:10E0C0009F938F938BE095E19F938F93E0917806D8
:10E0D000F091790609950F900F900F900F900C9486
:10E0E000997B8091A90C863089F4809173048823F0
:10E0F00019F01092730403C081E08093730485E0EB
:10E100000E94B46086E00E94B46012C0883041F47E
:10E110000E943A1582E0809376041092750408C03C
:10E12000813031F40E943A151092760410927504F1
:10E130001092A90C0C94997B109275040C94997B05
:10E140008091750491E0980F9093750490E081316F
:10E15000910508F065C3FC01EF57FF4F0C94A7B180
:10E1600080E00E9435158AEB95E09F938F93809114
:10E1700052011F928F9380E398E09F938F938BE1DE
:10E1800095E19F938F93E0917806F0917906099538
:10E190000FB6F894DEBF0FBECDBF0C94997B85E11E
:10E1A0000E9435152091530188EC95E09F938F9341
:10E1B0008DEC289F812D1124869586958695982F24
:10E1C000990F392F330F330F930F291B1F922F9362
:10E1D0001F928F938FE198E09F938F938BE095E14F
:10E1E0009F938F93E0917806F091790609950FB689
:10E1F000F894DEBF0FBECDBF0C94997B8AE20E94DB
:10E2000035158AE198E09F938F938BE095E19F937A
:10E210008F93E0917806F0917906099580915C06DC
:10E220000F900F900F900F9080FF7AC080914B0558
:10E2300081FD19C08091E1031F928F9380E198E0E6
:10E240009F938F938BE095E19F938F93E091780656
:10E25000F091790609950F900F900F900F900F9005
:10E260000F900C94997B8091E103833390F089E0C7
:10E2700098E09F938F938BE095E19F938F93E0912C
:10E280007806F091790609950F900F900F900F90F6
:10E2900011C082E098E09F938F938BE095E19F936C
:10E2A0008F93E0917806F091790609950F900F9081
:10E2B0000F900F908091400680FF19C08091E1037C
:10E2C0001F928F938CEF97E09F938F938BE095E154
:10E2D0009F938F93E0917806F091790609950F90BE
:10E2E0000F900F900F900F900F900C94997B80914E
:10E2F000E1031F928F9386EF97E09F938F938BE0BC
:10E3000095E19F938F93E0917806F09179060995B6
:10E310000F900F900F900F900F900F900C94997B8F
:10E320008DEE97E09F938F938BE095E19F938F9372
:10E33000E0917806F091790609950F900F900F9073
:10E340000F900C94997B8FE30E94351589EE97E02E
:10E350009F938F938BE095E19F938F93E091780645
:10E36000F091790609950F900F900F900F90809182
:10E37000A205811113C080EE97E09F938F938BE0ED
:10E3800095E19F938F93E0917806F0917906099536
:10E390000F900F900F900F900C94997B8091D80361
:10E3A000882391F089ED97E09F938F938BE095E11F
:10E3B0009F938F93E0917806F091790609950F90DD
:10E3C0000F900F900F9011C082ED97E09F938F9365
:10E3D0008BE095E19F938F93E0917806F091790619
:10E3E00009950F900F900F900F908091B80586FDC2
:10E3F00002C00C94997B8BEC97E09F938F938BE0FA
:10E4000095E19F938F93E0917806F09179060995B5
:10E410000F900F900F900F900C94997B84E50E94C1
:10E42000351586EC97E09F938F938BE095E19F9352
:10E430008F93E0917806F0917906099580915C06BA
:10E440000F900F900F900F9085FD12C08DEB97E00D
:10E450009F938F938BE095E19F938F93E091780644
:10E46000F091790609950F900F900F900F9053C07F
:10E4700080918F050E940E34823390F486EB97E0F2
:10E480009F938F938BE095E19F938F93E091780614
:10E49000F091790609950F900F900F900F903BC067
:10E4A000843B90F08FEA97E09F938F938BE095E108
:10E4B0009F938F93E0917806F091790609950F90DC
:10E4C0000F900F900F9027C08091B80585FF12C064
:10E4D00088EA97E09F938F938BE095E19F938F93CA
:10E4E000E0917806F091790609950F900F900F90C2
:10E4F0000F9011C081EA97E09F938F938BE095E195
:10E500009F938F93E0917806F091790609950F908B
:10E510000F900F900F908091A605882311F40C9412
:10E52000997B8EE50E9435158091A6051F928F93E9
:10E5300086E997E09F938F938BE095E19F938F936C
:10E54000E0917806F091790609950F900F900F9061
:10E550000F900F900F900C94997B89E60E943515CF
:10E560008CE897E09F938F938BE095E19F938F9337
:10E57000E0917806F091790609958091A5050F90B4
:10E580000F900F900F908823B9F01F928F9388E817
:10E5900097E09F938F938BE095E19F938F93E0910A
:10E5A0007806F091790609950F900F900F900F90D3
:10E5B0000F900F900C94997B82E897E09F938F9334
:10E5C0008BE095E19F938F93E0917806F091790627
:10E5D00009950F900F900F900F900C94997B80915C
:10E5E0007204811157C08EE70E943515E0914005F5
:10E5F000F0E0EE0FFF1FEF5CF74F20813181E091DB
:10E600003F05F0E0EE0FFF1FEF5CF74F8081918137
:10E6100040912F011F924F933F932F939F938F937E
:10E620008EE697E09F938F930BE015E11F930F9376
:10E63000E0917806F0917906099583E90E943515F5
:10E64000E0914205F0E0EE0FFF1FEF5CF74F2081F5
:10E650003181E0914105F0E0EE0FFF1FEF5CF74FD5
:10E66000808191813F932F9381589F4F9F938F93E8
:10E670008FE597E09F938F931F930F93E091780618
:10E68000F091790609950FB6F894DEBF0FBECDBFA5
:10E690000C94997B8EE70E943515809107041F9298
:10E6A0008F93809106041F928F93809105041F928F
:10E6B0008F938BE497E09F938F930BE015E11F936B
:10E6C0000F93E0917806F0917906099583E90E940D
:10E6D000351580910A041F928F93809109041F922F
:10E6E0008F93809108041F928F9387E397E09F9305
:10E6F0008F931F930F93E0917806F0917906099517
:10E700000FB6F894DEBF0FBECDBF0C94997B8091FD
:10E71000ED02882311F40C94997B8EE70E94351545
:10E7200080915C0686FD11C088E297E09F938F93ED
:10E730008CE295E19F938F93E0917806F0917906B2
:10E7400009950F900F900F900F908091B6058F70E4
:10E7500089F08EE197E09F938F938CE295E19F93F0
:10E760008F93E0917806F091790609950F900F90BC
:10E770000F900F9080915C0682FF11C089E197E0B5
:10E780009F938F938CE295E19F938F93E09178060E
:10E79000F091790609950F900F900F900F9080914E
:10E7A0005C0683FDC6C78BE097E09F938F938CE256
:10E7B00095E19F938F93E0917806F0917906099502
:10E7C0000F900F900F900F90B4C78091A90C8630D6
:10E7D00089F480917204882319F01092720403C0A6
:10E7E00081E08093720486E00E94B46087E00E941A
:10E7F000B46013C0883041F40E943A1583E08093DE
:10E8000076041092750409C0813039F40E943A15DB
:10E8100081E080937604109275041092A90C89C748
:10E820001092750486C78091750491E0980F9093BB
:10E830007504823009F465C028F4882339F08130EA
:10E8400049F1AAC1863008F498C0A6C180E00E94B0
:10E8500035158CEF96E09F938F930BE015E11F9396
:10E860000F93E0917806F0917906099585E10E9471
:10E87000351587EE96E09F938F931F930F93E0914A
:10E880007806F091790609950FB6F894DEBF0FBEB1
:10E89000CDBF4FC780918C048823F1F08EE70E9492
:10E8A000351580918C041F928F9380918D041F9257
:10E8B0008F9385ED96E09F938F938BE095E19F93E7
:10E8C0008F93E0917806F091790609950FB6F89448
:10E8D000DEBF0FBECDBF2DC78EE70E94351582EC7F
:10E8E00096E09F938F938BE095E19F938F93E091B8
:10E8F0007806F091790609950F900F900F900F9080
:10E9000018C783E90E94351580911A0190911B0167
:10E91000E0911A01F0911B012AE030E0B9010E9458
:10E9200056B19F938F93CF01B9010E9456B17F9347
:10E930006F9388EB96E09F938F930BE015E11F9305
:10E940000F93E0917806F091790609958EE90E947F
:10E95000351582ED96E09F938F9385EB96E09F931C
:10E960008F931F930F93E0917806F09179060995A4
:10E970000FB6F894DEBF0FBECDBF8091560188233D
:10E9800009F44CC0809171048823C9F08091ED0294
:10E990008823A9F089E40E94351581EB96E09F93C6
:10E9A0008F938BE095E19F938F93E0917806F091A0
:10E9B000790609950F900F900F900F901AC089E477
:10E9C0000E943515809156011F928F938AEA96E036
:10E9D0009F938F938BE095E19F938F93E0917806BF
:10E9E000F091790609950F900F900F900F900F906E
:10E9F0000F908FE30E9435158FE996E09F938F93D8
:10EA00008BE095E19F938F93E0917806F0917906E2
:10EA100009950F900F900F900F9014C08FE30E94F4
:10EA2000351580E996E09F938F938BE095E19F9356
:10EA30008F93E0917806F091790609950F900F90E9
:10EA40000F900F9080918904811115C084E50E9478
:10EA5000351582E896E09F938F938BE095E19F9325
:10EA60008F93E0917806F091790609950F900F90B9
:10EA70000F900F9058C08091D908833009F03FC0A3
:10EA8000809171048823C9F0809156018823A9F0F0
:10EA900084E50E94351584E796E09F938F938BE081
:10EAA00095E19F938F93E0917806F091790609950F
:10EAB0000F900F900F900F9014C084E50E943515B1
:10EAC00086E696E09F938F938BE095E19F938F93DB
:10EAD000E0917806F091790609950F900F900F90CC
:10EAE0000F908091A90C8630F1F480915601882313
:10EAF00019F0806880938A041092710414C084E530
:10EB00000E94351588E596E09F938F938BE095E101
:10EB10009F938F93E0917806F091790609950F9075
:10EB20000F900F900F908091A90C843079F4809110
:10EB3000560190918904891708F591E0909371042A
:10EB40008F5F809356011092ED0218C0823069F4F5
:10EB500080915601823090F091E090937104815041
:10EB6000809356011092ED0209C0883039F40E945A
:10EB70003A1584E080937604109275048091A90C74
:10EB8000813039F40E943A1582E080937604109225
:10EB900075041092A90CCDC510927504CAC5809158
:10EBA000750491E0980F90937504823009F465C064
:10EBB00028F4882339F0813049F190C1863008F477
:10EBC00098C08CC180E00E94351589E496E09F933F
:10EBD0008F930BE015E11F930F93E0917806F0916E
:10EBE0007906099585E10E94351587E396E09F93A4
:10EBF0008F931F930F93E0917806F0917906099512
:10EC00000FB6F894DEBF0FBECDBF93C580918C04C4
:10EC10008823F1F08EE70E94351580918C041F92B5
:10EC20008F9380918D041F928F9385E296E09F933E
:10EC30008F938BE095E19F938F93E0917806F0910D
:10EC4000790609950FB6F894DEBF0FBECDBF71C52A
:10EC50008EE70E94351583E196E09F938F938BE0BA
:10EC600095E19F938F93E0917806F091790609954D
:10EC70000F900F900F900F905CC583E90E9435159F
:10EC800080911A0190911B01E0911A01F0911B01F2
:10EC90002AE030E0B9010E9456B19F938F93CF01D3
:10ECA000B9010E9456B17F936F9389E096E09F93DC
:10ECB0008F930BE015E11F930F93E0917806F0918D
:10ECC000790609958EE90E94351582ED96E09F93AD
:10ECD0008F9386E096E09F938F931F930F93E0911D
:10ECE0007806F091790609950FB6F894DEBF0FBE4D
:10ECF000CDBF8FE30E9435158BEF95E09F938F93E7
:10ED00008BE095E19F938F93E0917806F0917906DF
:10ED100009950F900F900F900F90809155018823C7
:10ED2000C1F1809170048823C9F08091ED0288239D
:10ED3000A9F089E40E94351587EF95E09F938F93A2
:10ED40008BE095E19F938F93E0917806F09179069F
:10ED500009950F900F900F900F902FC089E40E949B
:10ED60003515809155011F928F938DEE95E09F93FD
:10ED70008F938BE095E19F938F93E0917806F091CC
:10ED8000790609950F900F900F900F900F900F90AC
:10ED900014C089E40E94351589EE95E09F938F9306
:10EDA0008BE095E19F938F93E0917806F09179063F
:10EDB00009950F900F900F900F9080918904811109
:10EDC00015C084E50E9435158BED95E09F938F93D8
:10EDD0008BE095E19F938F93E0917806F09179060F
:10EDE00009950F900F900F900F9031C08091700493
:10EDF0008823C9F0809155018823A9F084E50E94F9
:10EE000035158DEC95E09F938F938BE095E19F9363
:10EE10008F93E0917806F091790609950F900F9005
:10EE20000F900F9014C084E50E9435158FEB95E08C
:10EE30009F938F938BE095E19F938F93E09178065A
:10EE4000F091790609950F900F900F900F90809197
:10EE5000A90C843079F4909155012091890492177E
:10EE600010F521E0209370049F5F9093550110925C
:10EE7000ED0219C0823069F4809155018230F0F0C2
:10EE800091E0909370048150809355011092ED02AF
:10EE900015C0863041F480915501811180938A0418
:10EEA000109270040BC0883049F40E943A1580918A
:10EEB00076048F5F80937604109275048091A90C7C
:10EEC000813049F40E943A158091760481508093F4
:10EED0007604109275041092A90C2BC4109275043C
:10EEE00028C48091750491E0980F90937504823046
:10EEF00009F481C028F4882339F08130D1F0C9C1E8
:10EF0000863008F4C7C0C5C180E00E94351589EA83
:10EF100095E09F938F938BE095E19F938F93E09182
:10EF20007806F091790609950F900F900F900F9049
:10EF300000C48AE20E94351580911A0190911B014C
:10EF4000E0911A01F0911B012AE030E0B9010E9422
:10EF500056B19F938F93CF01B9010E9456B17F9311
:10EF60006F938EE995E09F938F930BE015E11F93CC
:10EF70000F93E0917806F091790609958FE30E944E
:10EF8000351540915E0450915F049A01A9E8B8E8F4
:10EF90000E94B3B196958795929582958F70892737
:10EFA0009F7089276CE3689F9001699F300D112441
:10EFB000CA01821B930B9F938F939A010E94B3B156
:10EFC00096958795929582958F7089279F7089274E
:10EFD0009F938F9383E995E09F938F931F930F9354
:10EFE000E0917806F091790609950FB6F894DEBFA6
:10EFF0000FBECDBF9EC385E30E9435156091FE0311
:10F000007091FF03809100049091010424E630E0A8
:10F0100040E050E00E948BB13F932F938AE895E047
:10F020009F938F930BE015E11F930F93E091780668
:10F03000F091790609958AE40E9435151F9280E6C1
:10F040008F93809166068F93809165068F938FE7EB
:10F0500095E09F938F931F930F93E0917806F09123
:10F06000790609958FE50E94351580912F011F9231
:10F070008F9386E795E09F938F931F930F93E09173
:10F080007806F091790609950FB6F894DEBF0FBEA9
:10F09000CDBF4FC38EE70E94351589E695E09F935B
:10F0A0008F938BE095E19F938F93E0917806F09199
:10F0B000790609950F900F900F900F9080916F0433
:10F0C0008823C1F180916E048823C9F08091ED02FC
:10F0D0008823A9F08BE80E94351585E695E09F937B
:10F0E0008F938BE095E19F938F93E0917806F09159
:10F0F000790609950F900F900F900F902FC08BE815
:10F100000E94351580916F041F928F9380E695E0E1
:10F110009F938F938BE095E19F938F93E091780677
:10F12000F091790609950F900F900F900F900F9026
:10F130000F9014C08BE80E9435158DE595E09F93E4
:10F140008F938BE095E19F938F93E0917806F091F8
:10F15000790609950F900F900F900F908091D90824
:10F16000833009F045C080918904811115C083E97D
:10F170000E9435158FE495E09F938F938BE095E186
:10F180009F938F93E0917806F091790609950F90FF
:10F190000F900F900F9020C080916E048823C9F0CB
:10F1A00080916F048823A9F083E90E94351580E4DB
:10F1B00095E09F938F938BE095E19F938F93E091E0
:10F1C0007806F091790609950F900F900F900F90A7
:10F1D00003C087E00E94B4608091A90C8630E1F4FE
:10F1E00080916F0481118093870410926E0414C083
:10F1F00083E90E94351582E395E09F938F938BE01E
:10F2000095E19F938F93E0917806F09179060995A7
:10F210000F900F900F900F908091A90C843079F48B
:10F2200080916F0490918904891718F591E090936B
:10F230006E048F5F80936F041092ED021AC08230CB
:10F2400069F480916F048230A0F091E090936E0495
:10F25000815080936F041092ED020BC0883049F406
:10F260000E943A15809176048F5F80937604109205
:10F2700075048091A90C813049F40E943A1580915F
:10F280007604815080937604109275041092A90C34
:10F2900050C2109275044DC28091750491E0980F90
:10F2A00090937504823009F4ABC028F4882339F0B8
:10F2B0008130D1F039C2863008F436C135C280E0E1
:10F2C0000E9435158DE195E09F938F938BE095E13A
:10F2D0009F938F93E0917806F091790609950F90AE
:10F2E0000F900F900F9025C28AE20E9435158091F1
:10F2F0001A0190911B01E0911A01F0911B012AE083
:10F3000030E0B9010E9456B19F938F93CF01B901AC
:10F310000E9456B17F936F9382E195E09F938F9304
:10F320000BE015E11F930F93E0917806F0917906B9
:10F3300009958FE30E94351540915E0450915F045A
:10F340009A01A9E8B8E80E94B3B19695879592957D
:10F3500082958F7089279F7089276CE3689F900141
:10F36000699F300D1124CA01821B930B9F938F93C9
:10F370009A010E94B3B196958795929582958F7068
:10F3800089279F7089279F938F9387E095E09F93AC
:10F390008F931F930F93E0917806F091790609956A
:10F3A0000FB6F894DEBF0FBECDBF80918C048823CA
:10F3B00019F189E60E943515809186048F9380911A
:10F3C00085048F9380918C041F928F9380918D047C
:10F3D0001F928F9382EF94E09F938F93C8019F9326
:10F3E0000F93E0917806F091790609950FB6F8949D
:10F3F000DEBF0FBECDBF9DC185E00E94B46099C144
:10F400008091F3038823C9F182E30E94351560914E
:10F41000F4037091F5038091F6039091F7030F2E9A
:10F42000F4E6CF2ED12CE12CF12CF02DA701960182
:10F430000E948BB13F932F936091FE037091FF0365
:10F440008091000490910104A70196010E948BB164
:10F450003F932F9385EE94E09F938F938BE095E1FC
:10F460009F938F93E0917806F091790609950FB6F6
:10F47000F894DEBF0FBECDBF26C082E30E943515D3
:10F480006091FE037091FF0380910004909101044C
:10F4900024E630E040E050E00E948BB13F932F9390
:10F4A00088ED94E09F938F938BE095E19F938F93EA
:10F4B000E0917806F091790609950F900F900F90E2
:10F4C0000F900F900F9087E40E9435151F9280E6F1
:10F4D0008F93809166068F93809165068F938DEC54
:10F4E00094E09F938F930BE015E11F930F93E091AE
:10F4F0007806F091790609958CE50E943515809182
:10F500002F011F928F9384EC94E09F938F931F930E
:10F510000F93E0917806F091790609950FB6F8946B
:10F52000DEBF0FBECDBF05C18091A90C882339F085
:10F53000EAE6FCE0808191810196918380838EE7E9
:10F540000E94351588EB94E09F938F938BE095E1B3
:10F550009F938F93E0917806F091790609950F902B
:10F560000F900F900F9080916D048823C1F18091CE
:10F570006C048823C9F08091ED028823A9F089E802
:10F580000E94351584EB94E09F938F938BE095E177
:10F590009F938F93E0917806F091790609950F90EB
:10F5A0000F900F900F902FC089E80E943515809121
:10F5B0006D041F928F9380EB94E09F938F938BE069
:10F5C00095E19F938F93E0917806F09179060995E4
:10F5D0000F900F900F900F900F900F9014C089E82C
:10F5E0000E9435158DEA94E09F938F938BE095E10F
:10F5F0009F938F93E0917806F091790609950F908B
:10F600000F900F900F9080918904811115C083E9AC
:10F610000E9435158FE994E09F938F938BE095E1DD
:10F620009F938F93E0917806F091790609950F905A
:10F630000F900F900F903EC080916C048823C9F00A
:10F6400080916D048823A9F083E90E94351581E932
:10F6500094E09F938F938BE095E19F938F93E0913C
:10F660007806F091790609950F900F900F900F9002
:10F6700021C087E00E94B46080918C048823D1F07F
:10F6800083E90E94351582ED96E09F938F938EE873
:10F6900094E09F938F938BE095E19F938F93E091FC
:10F6A0007806F091790609950F900F900F900F90C2
:10F6B0000F900F908091A90C843079F490916D0493
:10F6C00020918904921710F521E020936C049F5F2C
:10F6D00090936D041092ED0219C0823069F480910C
:10F6E0006D048230F0F091E090936C04815080932F
:10F6F0006D041092ED0215C0863041F480916D04C6
:10F7000081118093880410926C040BC0813049F4FD
:10F710000E943A158091760481508093760410926D
:10F7200075041092A90C05C01092750402C01092C5
:10F7300076040F900F900F900F90DF91CF911F9153
:10F740000F91FF90EF90DF90CF90BF90AF909F9080
:10F750008F907F906F905F904F903F902F90089583
:10F76000CF93DF9380E00E947B0F8091CB091F92A3
:10F770008F938091BC091F928F938091AD091F9246
:10F780008F9380919E091F928F9382E490E19F93C3
:10F790008F93CEE6DFE0DF93CF93E0917806F09190
:10F7A0007906099580E10E947B0F8091070A1F92DC
:10F7B0008F938091F8091F928F938091E9091F928E
:10F7C0008F938091DA091F928F9382E390E19F9348
:10F7D0008F93DF93CF93E0917806F09179060995A6
:10F7E00080913D052DB73EB7285E3F4F0FB6F89488
:10F7F0003EBF0FBE2DBF8530A0F480E10E947B0F7D
:10F8000081E290E19F938F93CE019F93CF93E091FC
:10F810007806F091790609950F900F900F900F9050
:10F820001BC08730C8F488E10E947B0F1F928FEDC8
:10F830008F9388E190E19F938F938EE69FE09F9353
:10F840008F93E0917806F091790609950F900F90CB
:10F850000F900F900F900F90DF91CF910895CF935D
:10F86000DF9380E00E947B0F4091150550911605B3
:10F87000C0911A01D0911B01E0911A01F0911B0176
:10F880009A01ADECBCEC0E94B3B19C013695279572
:10F890003695279536952795C901880F991F220F10
:10F8A000331F220F331F220F331F280F391FCA01A6
:10F8B000821B930B9C013F938F939A010E94B3B1DB
:10F8C0009695879596958795969587959F938F930F
:10F8D0002AE030E0CE01B9010E9456B19F938F9388
:10F8E000CF01B9010E9456B17F936F9386E090E1FA
:10F8F0009F938F93CEE6DFE0DF93CF93E09178067E
:10F90000F0917906099580E10E947B0FE9E1F5E02D
:10F9100081818F9380818F93E7E1F5E081818F93DF
:10F9200080818F938AEF9FE09F938F93DF93CF9394
:10F93000E0917806F091790609958DB79EB74496C7
:10F940000FB6F8949EBF0FBE8DBFDF91CF91089583
:10F950001F93CF93DF9380E00E947B0F1F921FEDD8
:10F960001F9380914F018F9380914E018F938091CF
:10F97000BA041F928F9387EE9FE09F938F93CEE6FA
:10F98000DFE0DF93CF93E0917806F0917906099557
:10F9900080E10E947B0F8091B8041F928F931F9289
:10F9A0001F938091B9041F928F9384ED9FE09F93E2
:10F9B0008F93DF93CF93E0917806F09179060995C4
:10F9C0008DB79EB744960FB6F8949EBF0FBE8DBFFD
:10F9D000DF91CF911F910895CF93DF9380E00E9434
:10F9E0007B0F85EC9FE09F938F93CEE6DFE0DF9364
:10F9F000CF93E0917806F0917906099580E10E9415
:10FA00007B0F87EB9FE09F938F93DF93CF93E091E2
:10FA10007806F091790609958DB79EB708960FB6CE
:10FA2000F8949EBF0FBE8DBFDF91CF910895CF9305
:10FA3000DF9380E00E947B0F88EA9FE09F938F9383
:10FA4000CEE6DFE0DF93CF93E0917806F091790680
:10FA5000099580E10E947B0F8AE99FE09F938F9335
:10FA6000DF93CF93E0917806F091790609958DB7F1
:10FA70009EB708960FB6F8949EBF0FBE8DBFDF915C
:10FA8000CF91089580E00E947B0F89E89FE09F93CB
:10FA90008F938EE69FE09F938F93E0917806F0918D
:10FAA000790609950F900F900F900F90089580E0C0
:10FAB0000E947B0F88E79FE09F938F938EE69FE0E5
:10FAC0009F938F93E0917806F091790609950F90B6
:10FAD0000F900F900F9008951F93CF93DF93182FDF
:10FAE00080E00E947B0F2CE63FE03F932F932EE6B1
:10FAF0003FE03F932F93E0917806F09179060995C6
:10FB00000F900F900F900F9080918904811115C074
:10FB100080E10E947B0F81E69FE09F938F938EE6AA
:10FB20009FE09F938F93E0917806F0917906099575
:10FB30000F900F900F900F90ABC08091D908833039
:10FB4000A9F080E10E947B0F86E59FE09F938F9351
:10FB50008EE69FE09F938F93E0917806F09179066F
:10FB600009950F900F900F900F9092C08BE00E941C
:10FB70007B0F80915C011F928F9322E53FE03F93C2
:10FB80002F93CEE6DFE0DF93CF93E0917806F091FC
:10FB90007906099580E10E947B0F6091FE037091C8
:10FBA000FF03809100049091010424E630E040E0DE
:10FBB00050E00E948BB13F932F93809166068F9304
:10FBC000809165068F9321E43FE03F932F93DF936D
:10FBD000CF93E0917806F091790609958DB79EB79D
:10FBE0000E960FB6F8949EBF0FBE8DBF8091940401
:10FBF0008823A1F08EE00E947B0F8EE39FE09F930D
:10FC00008F93CE019F93CF93E0917806F091790680
:10FC100009950F900F900F900F9014C08EE00E94E6
:10FC20007B0F8BE39FE09F938F938EE69FE09F93E4
:10FC30008F93E0917806F091790609950F900F90D7
:10FC40000F900F901F3269F480915C0190918904AC
:10FC50008917F0F48F5F80935C0181E080939404B6
:10FC600017C01F3459F480915C01823088F08150B4
:10FC700080935C0181E0809394040AC01F3141F4B9
:10FC800080915C01882321F0809387041092940472
:10FC9000DF91CF911F910895CF93C82F80E00E94EC
:10FCA0007B0F20E33FE03F932F932EE63FE03F930F
:10FCB0002F93E0917806F091790609950F900F90B7
:10FCC0000F900F9080918904811115C080E10E94EE
:10FCD0007B0F85E29FE09F938F938EE69FE09F933B
:10FCE0008F93E0917806F091790609950F900F9027
:10FCF0000F900F90B4C08BE00E947B0F80915B014E
:10FD00001F928F9321E23FE03F932F932EE63FE037
:10FD10003F932F93E0917806F091790609950F9023
:10FD20000F900F900F900F900F9080918C0488236C
:10FD300079F180E10E947B0F6091F4037091F503EB
:10FD40008091F6039091F70324E630E040E050E024
:10FD50000E948BB13F932F93809186048F93809163
:10FD600085048F938FE09FE09F938F938EE69FE0B3
:10FD70009F938F93E0917806F091790609958DB75E
:10FD80009EB708960FB6F8949EBF0FBE8DBF14C0E5
:10FD900088E10E947B0F8EEF9EE09F938F938EE60B
:10FDA0009FE09F938F93E0917806F09179060995F3
:10FDB0000F900F900F900F90809193048823A9F0DB
:10FDC0008EE00E947B0F8BEF9EE09F938F938EE6D9
:10FDD0009FE09F938F93E0917806F09179060995C3
:10FDE0000F900F900F900F9014C08EE00E947B0F29
:10FDF00088EF9EE09F938F938EE69FE09F938F9373
:10FE0000E0917806F091790609950F900F900F9088
:10FE10000F90CF3269F480915B019091890489172A
:10FE2000F0F48F5F80935B0181E08093930417C0AF
:10FE3000CF3459F480915B01823088F081508093F7
:10FE40005B0181E0809393040AC0CF3141F480913B
:10FE50005B01882321F08093880410929304CF9152
:10FE60000895CF93C82F8091D206811114C00E94AB
:10FE70007B0F2AEE3EE03F932F932EE63FE03F9329
:10FE80002F93E0917806F091790609950F900F90E5
:10FE90000F900F901AC080E00E947B0F22ED36E099
:10FEA0003F932F9323EE3EE03F932F932EE63FE0C8
:10FEB0003F932F93E0917806F091790609950F9082
:10FEC0000F900F900F900F900F90809189048111E7
:10FED00015C080E10E947B0F88ED9EE09F938F9379
:10FEE0008EE69FE09F938F93E0917806F0917906DC
:10FEF00009950F900F900F900F90A6C080E10E947F
:10FF00007B0F80915A011F928F932FEC3EE03F931D
:10FF10002F932EE63FE03F932F93E0917806F091E8
:10FF2000790609950F900F900F900F900F900F90FA
:10FF300080918C04882309F188E10E947B0F8091D5
:10FF40008C041F928F9380918D041F928F9387EC66
:10FF50009EE09F938F938EE69FE09F938F93E09117
:10FF60007806F091790609958DB79EB708960FB679
:10FF7000F8949EBF0FBE8DBF14C088E10E947B0F16
:10FF800081EC9EE09F938F938EE69FE09F938F93EB
:10FF9000E0917806F091790609950F900F900F90F7
:10FFA0000F90809192048823A9F08EE10E947B0F2C
:10FFB0008EEB9EE09F938F938EE69FE09F938F93AF
:10FFC000E0917806F091790609950F900F900F90C7
:10FFD0000F9014C08EE10E947B0F8BEB9EE09F93ED
:10FFE0008F938EE69FE09F938F93E0917806F09138
:10FFF000790609950F900F900F900F90CF3269F40A
:020000021000EC
:1000000080915A01909189048917F0F48F5F809351
:100010005A0181E08093920417C0CF3459F4809143
:100020005A01823088F0815080935A0181E0809398
:1000300092040AC0CF3141F480915A01882321F003
:1000400080938A0410929204CF910895CF93C82F81
:100050008091D206811114C00E947B0F2DEA3EE0F0
:100060003F932F932EE63FE03F932F93E091780646
:10007000F091790609950F900F900F900F901AC08C
:1000800080E00E947B0F22ED36E03F932F9326EA1B
:100090003EE03F932F932EE63FE03F932F93E09176
:1000A0007806F091790609950F900F900F900F90B8
:1000B0000F900F9080918904811115C080E10E94FA
:1000C0007B0F8BE99EE09F938F938EE69FE09F933B
:1000D0008F93E0917806F091790609950F900F9033
:1000E0000F900F90C0C08091D9088330A9F080E1B3
:1000F0000E947B0F80E99EE09F938F938EE69FE0A6
:100100009F938F93E0917806F091790609950F906F
:100110000F900F900F90A7C080E10E947B0F8091FD
:1001200059011F928F9386E89EE09F938F932EE64E
:100130003FE03F932F93E0917806F091790609957F
:100140000F900F900F900F900F900F9080918C0454
:10015000882309F188E10E947B0F80918C041F9213
:100160008F9380918D041F928F938EE79EE09F93D3
:100170008F938EE69FE09F938F93E0917806F091A6
:10018000790609958DB79EB708960FB6F8949EBF6D
:100190000FBE8DBF14C088E10E947B0F88E79EE0F0
:1001A0009F938F938EE69FE09F938F93E0917806C5
:1001B000F091790609950F900F900F900F90809114
:1001C00091048823A9F08EE10E947B0F85E79EE0D1
:1001D0009F938F938EE69FE09F938F93E091780695
:1001E000F091790609950F900F900F900F9014C021
:1001F0008EE10E947B0F82E79EE09F938F938EE6B5
:100200009FE09F938F93E0917806F091790609958E
:100210000F900F900F900F90CF3269F48091590199
:10022000909189048917F8F48F5F8093590181E0D8
:100230008093910418C0CF3459F4809159018230D1
:1002400090F081508093590181E0809391040BC01C
:10025000CF3149F480915901882329F08068809337
:100260008A0410929104CF9108958091A40288236A
:1002700009F49BC080E00E947B0F8091D8081F92F8
:100280008F938091DA081F928F9383E69EE09F936D
:100290008F938EE69FE09F938F93E0917806F09185
:1002A000790609958DB79EB708960FB6F8949EBF4C
:1002B0000FBE8DBF8091D9088330A9F48CE00E94D5
:1002C0007B0F8EE59EE09F938F938EE69FE09F933A
:1002D0008F93E0917806F091790609950F900F9031
:1002E0000F900F9014C08CE00E947B0F89E59EE078
:1002F0009F938F938EE69FE09F938F93E091780674
:10030000F091790609950F900F900F900F908091C2
:10031000D70881FF14C08CE00E947B0F84E59EE02B
:100320009F938F938EE69FE09F938F93E091780643
:10033000F091790609950F900F900F900F9080E142
:100340000E947B0F809196021F928F931F928FEDD8
:100350008F93EDEDF8E081818F9380818F932091D1
:10036000DB083091DC08ADECBCEC0E94B3B1969593
:10037000879596958795969587959F938F9381E41A
:100380009EE09F938F938EE69FE09F938F93E091E3
:100390007806F091790609958DB79EB70C960FB641
:1003A000F8949EBF0FBE8DBF089582E00E947B0F20
:1003B00084E39EE09F938F938EE69FE09F938F93BD
:1003C000E0917806F091790609950F900F900F90C3
:1003D0000F90089580E00E947B0F80911A01909108
:1003E0001B01E0911A01F0911B012AE030E0B901F4
:1003F0000E9456B19F938F93CF01B9010E9456B1CD
:100400007F936F938CEA90E19F938F938EE69FE0AA
:100410009F938F93E0917806F091790609952DB717
:100420003EB7285F3F4F0FB6F8943EBF0FBE2DBFBB
:100430008091A4028823B1F186E00E947B0F809115
:1004400096021F928F932091DB083091DC08ADEC6F
:10045000BCEC0E94B3B19695879596958795969535
:1004600087959F938F931F928FED8F938091660650
:100470008F93809165068F938FE990E19F938F937F
:100480008EE69FE09F938F93E0917806F091790636
:1004900009958DB79EB70C960FB6F8949EBF0FBE08
:1004A0008DBF14C086E00E947B0F84E990E19F938A
:1004B0008F938EE69FE09F938F93E0917806F09163
:1004C000790609950F900F900F900F908091BB04C3
:1004D000882309F458C080919504909196040E9455
:1004E000639C882391F080915D01882319F010921C
:1004F0005D0103C081E080935D018CED95E00E9479
:100500005A9C909396048093950480915D01882372
:10051000F9F080E00E947B0F1F921F928091BB0434
:1005200021E1829FC00111248459944F9F938F939E
:100530008EE69FE09F938F93E0917806F091790685
:1005400009950F900F900F900F900F900F9074C01F
:1005500086E00E947B0F8091BB041F928F9388E8F6
:1005600090E19F938F938EE69FE09F938F93E0910E
:100570007806F091790609950F900F900F900F90E3
:100580000F900F9059C08091B70484FF15C086E08A
:100590000E947B0F8DE790E19F938F938EE69FE003
:1005A0009F938F93E0917806F091790609950F90CB
:1005B0000F900F900F9040C0809180048823E1F14C
:1005C0000E94810F80E00E947B0F8AEB95E09F9351
:1005D0008F93809152011F928F9384E790E19F93B4
:1005E0008F938EE69FE09F938F93E0917806F09132
:1005F000790609958091C9032DB73EB7285F3F4F13
:100600000FB6F8943EBF0FBE2DBF81FFA5C080E19D
:100610000E947B0F88E690E19F938F938EE69FE088
:100620009F938F93E0917806F091790609950F904A
:100630000F900F900F90089580E10E947B0F4091E2
:100640005E0450915F049A01A9E8B8E80E94B3B132
:1006500096958795929582958F7089279F708927A7
:100660006CE3689F9001699F300D1124CA01821BC1
:10067000930B9F938F939A010E94B3B196958795A0
:10068000929582958F7089279F7089279F938F936A
:10069000E9E1F5E081818F9380818F938BE590E193
:1006A0009F938F938EE69FE09F938F93E0917806C0
:1006B000F0917906099580915C062DB73EB7265FCB
:1006C0003F4F0FB6F8943EBF0FBE2DBF80FF2CC02A
:1006D0008AE10E947B0F809120011F928F9360918D
:1006E000FE037091FF03809100049091010424E6C1
:1006F00030E040E050E00E948BB13F932F9384E5BF
:1007000090E19F938F938EE69FE09F938F93E0916C
:100710007806F091790609958DB79EB708960FB6C1
:10072000F8949EBF0FBE8DBF8091C90380FF14C097
:100730008AE10E947B0F82E590E19F938F938EE682
:100740009FE09F938F93E0917806F0917906099549
:100750000F900F900F900F900895CF93C82F409156
:10076000900440938F048F3249F118F48F31B1F027
:1007700044C08F3499F18F3809F03FC0842F90E046
:10078000FC01EE0FFF1F8E0F9F1FFC01EE0FFF1FDE
:10079000EB54FF4EE491E09390042FC0842F90E03F
:1007A000FC01EE0FFF1F8E0F9F1FFC01EE0FFF1FBE
:1007B000EA54FF4EE491E09390041FC0842F90E030
:1007C000FC01EE0FFF1F8E0F9F1FFC01EE0FFF1F9E
:1007D000E954FF4EE491E09390040FC0242F30E0E1
:1007E000F901EE0FFF1F2E0F3F1FF901EE0FFF1F44
:1007F000E854FF4EE491E0939004809190044813F4
:1008000021C08091580191E0980F9093580180FD8C
:1008100002C0CF30F1F0C0938E040E94810F20916E
:10082000900430E0F901EE0FFF1F2E0F3F1FF9017A
:10083000EE0FFF1FE754FF4E259134918C2FF901E5
:10084000099507C0809158018F5F80935801C0E0DF
:10085000E2CF80E0CF910895409154035091550329
:100860002091970430919804C901880F991F820F35
:10087000931F840F951F99230CF4039695958795E4
:1008800095958795909398048093970420912001E3
:100890002B32D1F4409150052091F8033091F903A7
:1008A000429FC001439F900D112499230CF44F9651
:1008B0009595879595958795959587959595879520
:1008C00095958795059647C02D32D1F440915005F6
:1008D0002091F8033091F903429FC001439F900D8E
:1008E000112499230CF44F969595879595958795A6
:1008F00095958795959587959595879505972BC09F
:100900002032A9F42091CB0321FF20C09C01992320
:1009100014F4215E3F4FC90195958795959587956C
:1009200095958795959587959595879514C02E35BE
:1009300021F48091F30390E00EC0263751F48091AA
:10094000F30390E091958195910905C080E090E0D6
:1009500002C080E090E0AA2797FDA095BA2F80936F
:10096000500290935102A0935202B0935302089503
:100970000E94796080911A0190911B01AA2797FD2E
:10098000A095BA2F80937F0190938001A09381015D
:10099000B09382018091150590911605A0E0B0E01A
:1009A0008093920190939301A0939401B093950149
:1009B0002091190530911A05ADECBCEC0E94B3B141
:1009C000969587959695879596958795A0E0B0E042
:1009D0008093A5019093A601A093A701B093A801CD
:1009E0006091FE037091FF038091000490910104D7
:1009F00024E630E040E050E00E948BB12093B80143
:100A00003093B9014093BA015093BB0180914E01DC
:100A100090914F01AA2797FDA095BA2F8093CB0103
:100A20009093CC01A093CD01B093CE018091D808D2
:100A300090E0A0E0B0E08093DE019093DF01A0930E
:100A4000E001B093E1018091DA0890E0A0E0B0E02D
:100A50008093F1019093F201A093F301B093F4011C
:100A60002091DB083091DC08ADECBCEC0E94B3B106
:100A7000969587959695879596958795A0E0B0E091
:100A80008093040290930502A0930602B09307029C
:100A90008091DD089091DE08AA2797FDA095BA2FD6
:100AA0008093170290931802A0931902B0931A0230
:100AB0008091840490E0A0E0B0E080932A029093BB
:100AC0002B02A0932C02B0932D028091BA0490E0E7
:100AD000A0E0B0E080933D0290933E02A0933F02DD
:100AE000B09340028091BB0490E0A0E0B0E080931E
:100AF000630290936402A0936502B0936602089526
:100B000087B18C6087B9429843981092A10480E81D
:100B100080938F021092A00480938E02089580919A
:100B2000BD04811180939E0480919D049FEF980FD6
:100B300090939D04811173C18091880580939C04DA
:100B400080918A0580939B0489E080939D04809125
:100B5000CB03807321F48091630A80FF1DC08091D4
:100B60008C05882351F080919A04811103C084E0A0
:100B70008093A10481E080939A0480918D0588235D
:100B800079F080919904811103C084E08093A004DE
:100B900081E08093990404C010929A041092990401
:100BA00080919A04811195C08091B60584FF0AC096
:100BB00090910304911106C085FF02C0429AA8C01B
:100BC0004298A6C080918905883F00F180913B063C
:100BD0008D3D68F080919C04882314F4429801C0F4
:100BE000429A81E080938F0210929F0491C08530D9
:100BF00069F480919C04882314F4429A01C04298BD
:100C000081E080938F0210929F0482C08091A104A2
:100C10009FEF980F9093A10481117AC08091B9053C
:100C200085FF39C080919E04982F96959093A104DA
:100C300081110CC010929F0480919C04882314F4AD
:100C4000429A01C0429810928F0262C081E0809364
:100C50009F0480918F02811111C08091BD04809307
:100C60009E041092BD0480E480938F0280919C04C6
:100C7000882314F4429A4CC042984AC090919C0434
:100C8000892311F0429A01C0429880918F02869583
:100C900080938F023DC080913B0686958093A1048E
:100CA00080918F02813031F410929E0480E4809311
:100CB0008F0203C0869580938F0290919C0480914F
:100CC0008F02892311F0429A01C0429810929F042A
:100CD0001FC08091A104882321F081508093A1043A
:100CE00017C089E08093A10480918F02813021F4A4
:100CF00080E880938F0203C0869580938F02909145
:100D00008F0280918C05892311F0429A01C042988C
:100D100080919904811150C08091B605882354F4C4
:100D200090910304911106C086FF02C0439A63C0EC
:100D3000439861C080918B05883FE0F08091630605
:100D40008D3D58F080919B04882314F4439801C092
:100D5000439A81E080938E024EC0853059F4809191
:100D60009B04882314F4439A01C0439881E0809344
:100D70008E0241C08091A0049FEF980F9093A00431
:100D8000811139C08091630686958093A00480917B
:100D90008E02813021F480E480938E0203C0869518
:100DA00080938E0290919B0480918E02892311F092
:100DB000439A21C043981FC08091A004882321F04A
:100DC00081508093A00417C089E08093A004809193
:100DD0008E02813021F480E880938E0203C08695D4
:100DE00080938E0290918E0280918D05892311F05F
:100DF000439A01C04398429B05C08091CA03886012
:100E00008093CA03439B06C08091CA03806180938C
:100E1000CA0308958091CA038F7E8093CA03089500
:100E2000E091A404E03540F491E09E0F9093A40477
:100E3000F0E0E052F84F80830895E0EEF7E080E3C1
:100E400098E020E22193E817F907E1F708952F923F
:100E50003F925F926F927F928F929F92AF92BF92DA
:100E6000CF92DF92EF92FF920F931F93CF93DF9376
:100E70008091A20480FF0CC09091A304992321F0DB
:100E800091509093A30404C0909190029093A30476
:100E900081FF0CC09091A30420919002921303C093
:100EA0001092A30403C09F5F9093A30483708330C8
:100EB00011F41092A304C1DF8091A3048A30C8F416
:100EC00091E19093A4041F928F9386E595E19F93FF
:100ED0008F9380E197E89F938F93E0917806F0914C
:100EE000790609950F900F900F900F900F900F902B
:100EF00018C090E19093A4041F928F9381E595E12F
:100F00009F938F9380E197E89F938F93E09178066A
:100F1000F091790609950F900F900F900F900F9018
:100F20000F902091A304822F90E08431910510F05E
:100F30000C941091FC01EE56FF4F0C94A7B1109247
:100F4000A40481E495E19F938F93C0E1D7E8DF93F8
:100F5000CF93E0917806F0917906099584E180932A
:100F6000A404909154011F9281E68F931F9288E010
:100F70008F931F9282E08F938DEC989F812D112487
:100F8000869586958695282F220F322F330F330FA3
:100F9000230F921B1F929F931F928F9389E295E1DB
:100FA0009F938F93DF93CF93E0917806F09179062A
:100FB000099588E28093A40488EC95E09F938F9331
:100FC000809152011F928F938FE195E19F938F93B0
:100FD000DF93CF93E0917806F0917906099580919F
:100FE000C9032DB73EB7265E3F4F0FB6F8943EBFFC
:100FF0000FBE2DBF81FF13C088E38093A4048AE154
:1010000095E19F938F93CE019F93CF93E0917806C4
:10101000F091790609950F900F900F900F908091A5
:10102000630A84FF16C08CE38093A4048DE095E1ED
:101030009F938F9380E197E89F938F93E091780639
:10104000F091790609950F900F900F900F900C94E6
:1010500019918091BB04882379F19CE39093A404B7
:101060001F928F9385E095E19F938F93C0E1D7E81E
:10107000DF93CF93E0917806F091790609951F925E
:101080001F928091BB04E1E18E9FC001112484591D
:10109000944F9F938F93DF93CF93E0917806F091D5
:1010A000790609958DB79EB70C960FB6F8949EBF3A
:1010B0000FBE8DBF0C9419918091620A8823D1F0E4
:1010C0009CE39093A4041F928F938EEE94E19F93E0
:1010D0008F9380E197E89F938F93E0917806F0914A
:1010E000790609950F900F900F900F900F900F9029
:1010F0000C9419918091DF048823D1F09CE39093A4
:10110000A4041F928F9388ED94E19F938F9380E1C5
:1011100097E89F938F93E0917806F091790609956F
:101120000F900F900F900F900F900F900C941991BB
:101130008091B0029091B1020697B0F48CE3809355
:10114000A4048BEC94E19F938F9380E197E89F93A5
:101150008F93E0917806F091790609950F900F90A2
:101160000F900F900C94199180911B058E3110F007
:101170000C9419919CE39093A4041F928F9387EB96
:1011800094E19F938F9380E197E89F938F93E091F1
:101190007806F091790609950F900F900F900F90B7
:1011A0000F900F900C9419911092A4046091FE037B
:1011B0007091FF0380910004909101040F2EF5E0DF
:1011C000CF2ED12CE12CF12CF02DA70196010E94FD
:1011D0008BB13F932F938AEA94E19F938F93C0E161
:1011E000D7E8DF93CF93E0917806F09179060995DF
:1011F00084E18093A4046091FA037091FB038091D1
:10120000FC039091FD03A70196010E948BB13F93CF
:101210002F938DE994E19F938F93DF93CF93E09188
:101220007806F0917906099588E28093A40480916C
:101230001001909111019F938F9380E994E19F9306
:101240008F93DF93CF93E0917806F091790609951B
:101250008CE38093A40487B51F928F9383E894E175
:101260009F938F93DF93CF93E0917806F091790667
:1012700009952DB73EB7285E3F4F0FB6F8943EBF95
:101280000FBE2DBF8091C203882309F4D2C789E322
:101290008093A4048FE794E19F938F93DF93CF9380
:1012A000E0917806F091790609958DE48093A40485
:1012B00080910C011F928F938CE794E19F938F9301
:1012C000DF93CF93E0917806F091790609952DB7D9
:1012D0003EB7265F3F4F0FB6F8943EBF0FBE2DBFFF
:1012E000A8C71092A4048FE694E19F938F9380E1A6
:1012F00097E89F938F93E0917806F091790609958E
:1013000084E18093A4048091420490914304A091CD
:101310004404B0914504BB2324F481509C4FAF4F4B
:10132000BF4F072E7AE0B595A795979587957A9543
:10133000D1F7702DBF93AF939F938F9380E694E185
:101340009F938F9380E197E89F938F93E091780626
:10135000F0917906099588E28093A40480913E0477
:1013600090913F04A0914004B0914104BB2324F428
:1013700081509C4FAF4FBF4F072E7AE0B595A79590
:10138000979587957A95D1F7702DBF93AF939F93DB
:101390008F9381E594E19F938F93C0E1D7E8DF932A
:1013A000CF93E0917806F091790609958CE38093CC
:1013B000A404809166068F93809165068F9382E4E2
:1013C00094E19F938F93DF93CF93E0917806F09110
:1013D000790609952DB73EB7265E3F4F0FB6F894B4
:1013E0003EBF0FBE2DBF25C7C1E0D0E00F2EF0E3FA
:1013F000EF2EF4E1FF2EF02D00E117E88C2F8695FB
:10140000880F880F982F990F990F890F8093A40444
:10141000CE010196FC01EE0FFF1FEF5CF74F4081FC
:101420005181FE01EE0FFF1FEF5CF74F20813181EC
:101430005F934F939F938F933F932F93DF93CF931C
:10144000FF92EF921F930F93E0917806F091790647
:1014500009952296EDB7FEB73C960FB6F894FEBFFD
:101460000FBEEDBFC930D10549F6E3C61092A40402
:10147000E0914005F0E0EE0FFF1FEF5CF74F208199
:101480003181E0913F05F0E0EE0FFF1FEF5CF74F79
:10149000808191813F932F939F938F9380E294E17A
:1014A0009F938F93C0E1D7E8DF93CF93E0917806C5
:1014B000F0917906099584E18093A404E0914205B6
:1014C000F0E0EE0FFF1FEF5CF74F20813181E091DC
:1014D0004105F0E0EE0FFF1FEF5CF74F8081918137
:1014E0003F932F9381589F4F9F938F9380E194E177
:1014F0009F938F93DF93CF93E0917806F0917906D5
:10150000099588E28093A404E0914405F0E0EE0F91
:10151000FF1FEF5CF74F20813181E0914305F0E040
:10152000EE0FFF1FEF5CF74F8081918121583F4FF5
:101530003F932F9381589F4F9F938F9380E094E127
:101540009F938F93DF93CF93E0917806F091790684
:1015500009958CE38093A404E0914605F0E0EE0F3A
:10156000FF1FEF5CF74F20813181E0914505F0E0EE
:10157000EE0FFF1FEF5CF74F8081918121583F4FA5
:101580003F932F9381589F4F9F938F9380EF93E1C9
:101590009F938F93DF93CF93E0917806F091790634
:1015A00009958DB79EB780960FB6F8949EBF0FBE73
:1015B0008DBF3FC61092A40482EE93E19F938F9358
:1015C00080E197E89F938F93E0917806F0917906F8
:1015D000099584E18093A4044091650350916603CA
:1015E00030915704209158042F933F93832F922FCB
:1015F00099230CF407969C013595279535952795E9
:1016000035952795CA01821B930B9F938F9383ED8A
:1016100093E19F938F9380E197E89F938F93E0915D
:101620007806F0917906099588E28093A4044091A8
:1016300063035091640330915504209156042F9315
:101640003F93832F922F99230CF407969C01359595
:1016500027953595279535952795CA01821B930BBC
:101660009F938F9384EC93E19F938F93C0E1D7E88E
:10167000DF93CF93E0917806F091790609958CE39A
:101680008093A404809153049091540420916103A9
:10169000309162039F938F93821B930B9F938F9341
:1016A00085EB93E19F938F93DF93CF93E09178063F
:1016B000F091790609958DB79EB74C960FB6F894C0
:1016C0009EBF0FBE8DBFB5C51092A40488EA93E1FA
:1016D0009F938F93C0E1D7E8DF93CF93E091780693
:1016E000F0917906099584E18093A40480915D03CB
:1016F00090915E0320914E042F9320914D042F93DF
:101700009F938F9389E993E19F938F93DF93CF9377
:10171000E0917806F0917906099588E28093A40417
:1017200080915F039091600320914C042F9320914E
:101730004B042F939F938F938AE893E19F938F930A
:10174000DF93CF93E0917806F091790609958CE3C9
:101750008093A40480915B0390915C0320914804E2
:101760002F93209147042F939F938F938BE793E1BF
:101770009F938F93DF93CF93E0917806F091790652
:1017800009952DB73EB7245E3F4F0FB6F8943EBF84
:101790000FBE2DBF4EC51092A40480911A019091E6
:1017A0001B01E0911A01F0911B012AE030E0B90120
:1017B0000E9456B19F938F93CF01B9010E9456B1F9
:1017C0007F936F9387E693E19F938F93C0E1D7E870
:1017D000DF93CF93E0917806F0917906099584E143
:1017E0008093A40440911505509116059A01ADEC23
:1017F000BCEC0E94B3B19695879596958795969582
:1018000087959C01220F331F880F991F880F991FFE
:10181000880F991F820F931FFA01E81BF90BCF0164
:101820009F93EF939A010E94B3B1969587959695F1
:101830008795969587959F938F9383E593E19F93E3
:101840008F93DF93CF93E0917806F0917906099515
:1018500088E28093A404E7E1F5E081818F938081A1
:101860008F9383E493E19F938F93DF93CF93E091E2
:101870007806F091790609958CE38093A404E9E158
:10188000F5E081818F9380818F9381E393E19F9332
:101890008F93DF93CF93E0917806F09179060995C5
:1018A0002DB73EB7245E3F4F0FB6F8943EBF0FBE34
:1018B0002DBFBFC41092A40488E293E19F938F933D
:1018C000C0E1D7E8DF93CF93E0917806F0917906F5
:1018D000099588E28093A404809104041F928F9359
:1018E00088E193E19F938F93DF93CF93E091780604
:1018F000F091790609958CE38093A40480913008D7
:1019000090E001979F938F9388E093E19F938F934B
:10191000DF93CF93E0917806F091790609958DB722
:101920009EB740960FB6F8949EBF0FBE8DBF81C480
:101930001092A40488EF92E19F938F93C0E1D7E8BF
:10194000DF93CF93E0917806F0917906099584E1D1
:101950008093A404909153011DEC919F812D11243B
:10196000869586958695282F220F322F330F330FB9
:10197000230F921B1F929F931F928F938AEE92E1E7
:101980009F938F93DF93CF93E0917806F091790640
:10199000099588E28093A40490916404919F812D1D
:1019A0001124869586958695282F220F322F330F86
:1019B000330F230F921B1F929F931F928F938CEDD7
:1019C00092E19F938F93DF93CF93E0917806F0910C
:1019D000790609958CE38093A40480916504819F26
:1019E000112D1124169516951695912F990F292FC3
:1019F000220F220F920F891B1F928F931F921F930A
:101A00008EEC92E19F938F93DF93CF93E0917806D2
:101A1000F091790609952DB73EB7245E3F4F0FB67A
:101A2000F8943EBF0FBE2DBF04C4C5E0D4E010E063
:101A30000F2EF1ECEF2EF2E1FF2EF02D0F2EF0E144
:101A4000CF2EF7E8DF2EF02D1093A40489911F927A
:101A50008F93CE01855094409F938F93FF92EF9286
:101A6000DF92CF92E0917806F091790609951C5E9D
:101A70008DB79EB708960FB6F8949EBF0FBE8DBF68
:101A8000103511F7D6C3C9E0D4E010E00F2EF4EB07
:101A9000EF2EF2E1FF2EF02D0F2EF0E1CF2EF7E822
:101AA000DF2EF02D1093A40489911F928F93CE0105
:101AB000855094409F938F93FF92EF92DF92CF9245
:101AC000E0917806F091790609951C5EEDB7FEB7B6
:101AD00038960FB6F894FEBF0FBEEDBF103511F764
:101AE000A8C31092A40486EA92E19F938F93C0E169
:101AF000D7E8DF93CF93E0917806F09179060995C6
:101B000084E18093A404809161048F9380916004A8
:101B10008F9389E992E19F938F93DF93CF93E09125
:101B20007806F0917906099588E28093A404809163
:101B300063048F93809162048F938CE892E19F936A
:101B40008F93DF93CF93E0917806F0917906099512
:101B500089E48093A40484E892E19F938F93DF93B8
:101B6000CF93E0917806F091790609958091A204CF
:101B7000EDB7FEB774960FB6F894FEBF0FBEEDBF7B
:101B800083FF57C3109263041092620460E070E018
:101B90008EE090E00E944B254CC31092A4048CE789
:101BA00092E19F938F93C0E1D7E8DF93CF93E091C9
:101BB0007806F0917906099584E18093A4048091D8
:101BC0004F018F9380914E018F938EE692E19F9308
:101BD0008F93DF93CF93E0917806F0917906099582
:101BE00088E28093A404809122068F93809121063D
:101BF0008F9380E692E19F938F93DF93CF93E09151
:101C00007806F091790609958CE38093A40480917D
:101C100066068F93809165068F9382E592E19F938C
:101C20008F93DF93CF93E0917806F0917906099531
:101C30008DB79EB746960FB6F8949EBF0FBE8DBF68
:101C4000F8C21092A4048AE492E19F938F93C0E1BA
:101C5000D7E8DF93CF93E0917806F0917906099564
:101C600084E18093A40480912F011F928F938CE3D1
:101C700092E19F938F93DF93CF93E0917806F09159
:101C80007906099588E28093A4048091C604909116
:101C9000C70499230CF40396959587959595879598
:101CA0009F938F938EE292E19F938F93C0E1D7E849
:101CB000DF93CF93E0917806F091790609958CE354
:101CC0008093A40480916E051F928F9380916D057F
:101CD0001F928F9380E292E19F938F93DF93CF9334
:101CE000E0917806F091790609952DB73EB7285E08
:101CF0003F4F0FB6F8943EBF0FBE2DBF9AC2109251
:101D0000A40480E192E19F938F9380E197E89F93F1
:101D10008F93E0917806F09179060995C7ECD9E0A8
:101D20000F900F900F900F9014E10F2EFFEFEF2EFA
:101D3000F1E1FF2EF02D0F2EF0E1CF2EF7E8DF2E90
:101D4000F02D1093A40488818F771F928F93FE014A
:101D50003F9780818F771F928F933F9780818F77F6
:101D60001F928F933F9780818F771F928F93FF925F
:101D7000EF92DF92CF92E0917806F0917906099583
:101D80001C5EEC968DB79EB70C960FB6F8949EBF6E
:101D90000FBE8DBF1035A9F64CC21092A40480EF7F
:101DA00091E19F938F9380E197E89F938F93E091C8
:101DB0007806F09179060995CBECD9E00F900F9059
:101DC0000F900F9014E10F2EFFEDEF2EF1E1FF2E9B
:101DD000F02D0F2EF0E1CF2EF7E8DF2EF02D10932F
:101DE000A40488811F928F93FE013F9780811F92E8
:101DF0008F933F9780811F928F933F9780811F928F
:101E00008F93FF92EF92DF92CF92E0917806F0915C
:101E1000790609951C5EEC96EDB7FEB73C960FB6B9
:101E2000F894FEBF0FBEEDBF1035C9F602C2109286
:101E3000A40484ED91E19F938F93C0E1D7E8DF93F1
:101E4000CF93E0917806F0917906099587E4809325
:101E5000A4048AEC91E19F938F93DF93CF93E09159
:101E60007806F09179060995EDB7FEB738960FB66A
:101E7000F894FEBF0FBEEDBFC4E0D0E014E10F2E1A
:101E8000F9EBEF2EF1E1FF2EF02D0F2EF0E12F2ECA
:101E9000F7E83F2EF02D1093A404C0907806D09060
:101EA00079068C2F81500E94CE21682E592E8C2FBE
:101EB00082500E94CE21882E792E8C2F83500E9432
:101EC000CE21A82E992E8C2F84500E94CE215F9275
:101ED0006F927F928F929F92AF929F938F93FF9278
:101EE000EF923F922F92F601099580913D0590E087
:101EF0002DB73EB7245F3F4F0FB6F8943EBF0FBEDD
:101F00002DBFC817D9070CF094C11C5E249610355C
:101F100011F68FC11092A4048AEA91E19F938F93E6
:101F2000C0E1D7E8DF93CF93E0917806F09179068E
:101F3000099584E18093A4042091C709221F2227D8
:101F4000221F30E0C901880F991F880F991F880F41
:101F5000991F821B930B8D969F938F938091B80945
:101F6000881F8827881F90E09C01220F331F820F53
:101F7000931F880F991F8D969F938F938091A90926
:101F8000881F8827881F90E09C01220F331F220F93
:101F9000331F820F931F8D969F938F9380919A0981
:101FA000881F8827881F90E0880F991F880F991F26
:101FB0008D969F938F9386E991E19F938F93DF9303
:101FC000CF93E0917806F0917906099588E28093A5
:101FD000A4048091030A881F8827881FFBE08F9F35
:101FE000C00111248D969F938F932091F409221F95
:101FF0002227221F30E0C901880F991F220F331FAB
:10200000220F331F220F331F820F931F8D969F9332
:102010008F938091E509881F8827881F90E09C0195
:10202000220F331F220F331F220F331F820F931FE4
:102030008D969F938F938091D609881F8827881F3C
:1020400090E0880F991F880F991F880F991F8D9610
:102050009F938F9382E891E19F938F93DF93CF9328
:10206000E0917806F091790609958CE38093A404B9
:102070008091120A881F8827881F90E09C01220FF8
:10208000331F820F931F880F991F880F991F8D96FA
:102090009F938F9381E791E19F938F93DF93CF93EA
:1020A000E0917806F09179060995EDB7FEB7B29602
:1020B0000FB6F894FEBF0FBEEDBF8091210A8823B2
:1020C0009CF480E48093A4048EE691E19F938F9327
:1020D000CE019F93CF93E0917806F0917906099510
:1020E0000F900F900F900F908091300A8823A4F4E6
:1020F00084E48093A4048BE691E19F938F9380E125
:1021000097E89F938F93E0917806F091790609956F
:102110000F900F900F900F9080913F0A88230CF042
:1021200088C088E48093A40488E691E19F938F930C
:1021300080E197E89F938F93E0917806F09179067C
:1021400009950F900F900F900F9073C01092A404F8
:102150008CE591E19F938F9380E197E89F938F9314
:10216000E0917806F09179060995C1EDD9E00F90DC
:102170000F900F900F9004E010E00F2EF4E1BF2EAF
:10218000F02D0F2EF8E3CF2EF1E1DF2EF02D0F2EE4
:10219000F0E1EF2EF7E8FF2EF02DB092A404888135
:1021A0001F928F93FE01319780811F928F933E97EC
:1021B00080811F928F93319780811F928F933E97DA
:1021C00080811F928F93319780811F928F933E97CA
:1021D00080811F928F93319780811F928F93DF921E
:1021E000CF92FF92EF92E0917806F09179060995EF
:1021F00080913D0590E02DB73EB72C5E3F4F0FB666
:10220000F8943EBF0FBE2DBF0817190794F434E1B0
:10221000B30EEC960C5F1F4F80E5B812BECF09C01D
:1022200080919002281303C02150209390021092B5
:10223000A3041092A204DF91CF911F910F91FF9000
:10224000EF90DF90CF90BF90AF909F908F907F9056
:102250006F905F903F902F9008951F932AE530E094
:10226000A901481B590BCA0199233CF499231CF47A
:102270009195819591091FEF01C011E068E671E029
:102280000E9456B1FC018B359105ECF09C012B5559
:1022900031092A35310530F4E4EBF0E0E81BF90BA5
:1022A00061E012C09C01255B31092A35310528F413
:1022B000FC01E45BF1096FEF07C0E8E6F1E0E81B21
:1022C000F90B6FEF01C061E0EE0FFF1FE55AFA4E08
:1022D000259134911203A001139F500D1124640322
:1022E000C001659F900D11241F91089580E090E03A
:1022F00021E83FEF853040F4FC01EE0FFF1FEF5C5B
:10230000F74F1182108207C0FC01EE0FFF1FEF5C38
:10231000F74F31832083FC01EE0FFF1FE958F74F81
:102320001182108201968332910521F78FE790E0A8
:102330009093700880936F0881E89FEF90936E08E8
:1023400080936D08109272081092710810925404D4
:10235000109253041092560410925504109258048F
:102360001092570408951F920F920FB60F921124E6
:102370000BB60F922F933F934F935F936F937F937F
:102380008F939F93AF93BF93CF93DF93EF93FF937D
:10239000E6E8F0E0808191812091A7043091A804C3
:1023A000821B930B208131813093A8042093A704D2
:1023B0009C012D543440233F3A4188F48091A50478
:1023C0009091A60480933008049714F01092930221
:1023D00081E090E09093A6048093A504C1C0209171
:1023E000A5043091A604213131050CF0B9C0AC012F
:1023F0004B5F5109443B514008F0ACC04091910201
:1024000050919202841B950BE091A805EE2351F0A8
:10241000F0E0EE0FFF1FEF5CF74F40815181443633
:10242000510504F5F901EE0FFF1FEF5CF74F4081F6
:102430005181BC01641B750BAB0122F44427552765
:10244000461B570B463051056CF440910404483C40
:1024500030F440910404465F4093040403C048EC08
:1024600040930404F901EE0FFF1FEF5CF74F40812A
:102470005181FA01EE0FFF1FE40FF51FE80FF91F5E
:10248000FF230CF43396F595E795F595E795AC01A8
:102490004F5F5F4F4E175F0714F4319705C00197E8
:1024A000E817F9070CF4319680910404833CD0F0CE
:1024B000E901CC0FDD1FDE01AF5CB74F8D919C9120
:1024C000AF01481B590BCA0163E070E00E9456B18E
:1024D000CB01880F991F680F791FC958D74F79838F
:1024E000688308C0D901AA0FBB1FA958B74F11961E
:1024F0001C921E92D901AA0FBB1FAF5CB74F119659
:10250000FC93EE9380910404823320F5E0913F0523
:10251000F0E0EE0FFF1FEF5CF74F11821082E091A9
:102520004005F0E0EE0FFF1FEF5CF74F11821082C5
:10253000E0914205F0E0EE0FFF1FEF5CF74F1182D4
:102540001082E0914105F0E0EE0FFF1FEF5CF74FC6
:10255000118210822F5F3F4F3093A6042093A50471
:10256000FF91EF91DF91CF91BF91AF919F918F91AB
:102570007F916F915F914F913F912F910F900BBE83
:102580000F900FBE0F901F901895CF93DF939FB7BA
:10259000F894A9ECB0E08C918F778C938C918F7B21
:1025A0008C938C918F7D8C931092CD0088E18093D9
:1025B000CC00C8ECD0E088818260888380E18C9375
:1025C000EAECF0E080818F77808380818F7B80834D
:1025D000808180818F7E80838081886080838C91E0
:1025E0008B7F8C93808184608083808182608083F4
:1025F0008881882344F4AEECB0E0E8ECF0E08C9104
:1026000080818823E4F3E9ECF0E0808180688083B6
:10261000E4EDF8E08081846080839FBFDF91CF91FB
:1026200008959091B004911108C08F3031F4109248
:10263000AA0480E58093B0040895E091AA04EF5FB6
:10264000E093AA04E83121F481E08093AB0408957B
:10265000E93120F089E18093AA040895F0E0E35481
:10266000F74F808308955F926F927F928F929F922F
:10267000AF92BF92CF92DF92EF92FF920F931F9390
:10268000CF93DF938091D40882FDA4C0EFE6F0E001
:1026900080818F7D8083E091A805EE2351F0F0E0EA
:1026A000EE0FFF1FEF5CF74F80819181843691051B
:1026B0006CF480910404883C30F4809104048C5EB6
:1026C0008093040403C088EC809304048091BE08C6
:1026D00090E02091A904211180C022E02093A90458
:1026E0000F2EF8EABF2EF02D7FC0EC2DF0E0E35462
:1026F000F74F5081542311F0822B932B440F11F488
:10270000C394492D220F331F211558E0350709F0D6
:102710005BC09450B8010E9456B1EA2DF0E0DF0191
:10272000AA0FBB1FAF5CB74F8D919C919C01220FEC
:10273000331F280F391F260F371F332314F42D5F43
:102740003F4F3595279535952795CB0101968217F3
:1027500093071CF42150310907C0615071092617F5
:10276000370714F42F5F3F4F80910404833CC8F077
:10277000EF01CC0FDD1FDE01AF5CB74F8D919C9157
:10278000B901681B790BCB01B7010E9456B1CB018F
:10279000880F991F680F791FC958D74F79836883AD
:1027A00008C0DF01AA0FBB1FA958B74F11961C9292
:1027B0001E92EE0FFF1FEF5CF74F31832083A3942F
:1027C000882D972D262D352DD394DB1408F48DCF2D
:1027D000109293021092AB041FC021502093A904C1
:1027E0000F2EF4E2BF2EF02D20E031E0AA24A394B6
:1027F000D12C6894CC24C1F841E09924939405E04D
:1028000010E0812C712C66246394512C0F2EF3E080
:10281000EF2EF12CF02D69CFDF91CF911F910F9109
:10282000FF90EF90DF90CF90BF90AF909F908F90F0
:102830007F906F905F900895CF93DF939FB7F89448
:10284000A9ECB0E08C918F778C938C918F7B8C93DB
:102850008C918F7D8C931092CD0084E18093CC007D
:10286000C8ECD0E088818260888380E18C93EAECB8
:10287000F0E080818F77808380818F7B808380816F
:102880008F7D808380818F7E80838081877F80831E
:102890008C918B7F8C938081846080838081826027
:1028A00080838881882344F4AEECB0E0E8ECF0E06B
:1028B0008C9180818823E4F3E9ECF0E080818068EA
:1028C00080839FBFDF91CF910895CF93DF93909145
:1028D0009402913061F41092940284E48093B004E5
:1028E0001092AF041092AE041092AD0443C141E0C7
:1028F00090E02091B004211140E0242F392F9091D5
:10290000AE04911118C0232B61F081E08093AE04D6
:102910008091AF048F5F8093AF0483E08093B00415
:1029200012C184E48093B0041092AF041092AE04FC
:102930001092AD0408C1913079F4232B09F0F9C04D
:1029400082E08093AE048091AF048F5F8093AF04E8
:1029500083E08093B004F7C09230D9F4232B09F0C0
:10296000E8C093E09093B0048093AD049091AF04DD
:10297000923041F488231CF01092AC0403C081E033
:102980008093AC0483E08093AE049F5F9093AF0488
:10299000DAC0933009F0CDC0232B09F0CAC0909360
:1029A000B00492E09093AE049091AF049F5F909337
:1029B000AF042091AD0490E0922B30916505313049
:1029C00059F49370925063E070E00E9456B12695DE
:1029D00026952F7030E01CC0323061F4977094500F
:1029E00066E070E00E9456B12695269526952F70D8
:1029F00030E00EC0937088569140BC01992314F4C6
:102A00006F5F7F4F75956795269526952F7030E0FF
:102A10002F5F3F4F2D30310508F084C0F901EE0FD4
:102A2000FF1FEF5CF74F80819181AB01481B590B71
:102A3000CA01992324F488279927841B950B0697AC
:102A400004F5E091A805EE2351F0F0E0EE0FFF1F32
:102A5000EF5CF74F808191818436910594F48091E9
:102A60000404883C30F480910404865F809304045D
:102A700008C088EC80930404EFE6F0E080818F7D4D
:102A80008083F901EE0FFF1FEF5CF74F808191818A
:102A9000FC01EE0FFF1FE80FF91FE60FF71FFF23E2
:102AA0000CF43396F595E795F595E795CB010196EE
:102AB0008E179F0714F4319706C061507109E6170D
:102AC000F7070CF4319680910404843BD0F0E901BF
:102AD000CC0FDD1FDE01AF5CB74F8D919C91AF0134
:102AE000481B590BCA0163E070E00E9456B1CB014C
:102AF000880F991F680F791FC958D74F798368834A
:102B000008C0D901AA0FBB1FA958B74F11961C9234
:102B10001E92D901AA0FBB1FAF5CB74F1196FC9351
:102B2000EE9311C02231310570F081E08093940260
:102B30000AC081E0809394021092AF041092AC041A
:102B400084E48093B0048091AF04803198F0809148
:102B5000AC04811106C080919402811102C01092D0
:102B600093021092AF041092AC041092AE0484E46D
:102B70008093B004DF91CF91089584B1806A84B9C5
:102B80003D9A82E58CBD1DBC459A81E08093D608B4
:102B90008AEA8093E70883E88093E8088AE08093D4
:102BA000E9081092EB081092EA081092ED081092D2
:102BB000EC0810924F0910920B0908958091D608E5
:102BC000811179C00DB407FE76C085E08093CC04F6
:102BD000459A9EB58091B404813071F018F082302E
:102BE000C9F03FC010920A099093B3049138C9F517
:102BF00081E08093B40435C0953549F48091B304E5
:102C00008B5A8093B30482E08093B4042AC010925C
:102C1000B40427C0E0910A0981E08E0F80930A096D
:102C2000F0E0E45DF64F90838032B0F08091B30421
:102C300098130DC080E2ECE2F9E0ACE0B9E001905D
:102C40000D928A95E1F781E080930B0902C0109202
:102C50000B091092B40405C08091B304980F9093AF
:102C6000B3048091E6088232F0F445980000000039
:102C7000000000008091E608E091DF08F091E00894
:102C8000E80FF11D80818EBDE8E0F9E08091E60853
:102C9000A091DF08B091E008A80FB11D9C91808140
:102CA000890F808303C081E08093D6088091E60875
:102CB0008F5F8093E6080895CF92DF92EF92FF92A4
:102CC0000F931F93C0905A05D12CCC0CDD1CCC0C5B
:102CD000DD1CEE24D7FCE094FE2C60914204709140
:102CE00043048091440490914504A70196010E94F9
:102CF0008BB13093EB082093EA0860913E04709109
:102D00003F048091400490914104A70196010E94E4
:102D10008BB13093ED082093EC0880916E06909172
:102D20006F06A0917006B0917106880F991FAA1FB7
:102D3000BB1FAC01BD01440F551F661F771F440F19
:102D4000551F661F771F8C019D01040F151F261F3D
:102D5000371FC901B8012091210130912201409112
:102D60002301509124010E948BB13093F3082093EA
:102D7000F208E0905304F090540480916103909124
:102D800062039701281B390B3093F9082093F80848
:102D90002091490430914A048091390690913A0675
:102DA000B9010E9456B1CB01880F991F680F791F96
:102DB000660F771FCB0199230CF4039695958795A1
:102DC000959587959093EF088093EE0880916A0619
:102DD00090916B06B9010E9456B1CB01880F991FE3
:102DE000680F791F660F771FCB0199230CF40396A8
:102DF00095958795959587959093F1088093F00820
:102E000010924A041092490410923A061092390620
:102E100010926B0610926A068091E90890E00A977A
:102E20008A30910508F0A1C28A559F4FFC010C948D
:102E3000A7B18091E0038093FC088091DF03809329
:102E4000FD088091DE038093FE088091DD0380936E
:102E5000FF088091DC03809300098091DB0380935D
:102E600001098091DA03809302098091D90380934C
:102E700003098091CB03809304098091CB03837F66
:102E80008093CB03809152018093050980911A01B0
:102E900090911B01809306098091CA0380930709D2
:102EA000429963C28091CA03877F8093CA035DC23F
:102EB00080911505909116059093FD088093FC086C
:102EC0008091B2048093FE0880911B058093FF08D7
:102ED00080918F050E940E3480930009809120011B
:102EE000809301092091B2040FE0209FF00111248A
:102EF000E956F64F86858093020980818093030905
:102F0000868180930409838180930509878180935A
:102F100006098581809307092F5F2093B204822FD1
:102F200090E0FC01EE0FFF1FEE0FFF1FE953FA4F79
:102F3000358513160CF419C2222309F416C22DE0AC
:102F400030E00196B9010E9456B1482F9927FC0143
:102F5000EE0FFF1FEE0FFF1FE953FA4F55851516B1
:102F60001CF44093B20401C24111EBCF4093B20470
:102F7000FCC18091B104811137C08DE08093E908D4
:102F800081E08093B104809153018093FC0880918B
:102F900090058093FD08809191058093FE088091B3
:102FA00092058093FF08809193058093000980919A
:102FB000970580930109809198058093020980917B
:102FC00099058093030980919C0580930409809161
:102FD0009A058093050980919B058093060980914D
:102FE0009D0580930709C1C182E18093E908109291
:102FF000B10480915704909158049093FD088093F8
:10300000FC0880915504909156049093FF0880939A
:10301000FE08F0920109E0920009809182058093F8
:1030200002098091E8039091E90399230CF4039637
:103030009595879595958795809303091092040936
:103040001092050910920609109207098EC180910D
:103050008E058093FC0880916505863081F0809113
:103060005C04823451F00E94CC60E82FF0E0ED5F08
:10307000FE4EE491E0935C0402C00E94CC6080911B
:1030800081048093FD088091B0058093FE088091B3
:10309000A5058093FF088091C0038093000980916B
:1030A0008A048093010980918804809302098091A9
:1030B00087048093030910928A0410928804109266
:1030C000870480913701882349F080911C049091F6
:1030D0001D04909305098093040908C0809121067E
:1030E0009091220690930509809304098091B4057C
:1030F000809306098091B5058093070936C1F8943D
:10310000E0914105F0E0EE0FFF1FEF5CF74F80818B
:10311000918181381FEF910714F481E89FEF803887
:10312000910514F08FE790E08093FC08E091420550
:10313000F0E0EE0FFF1FEF5CF74F80819181813847
:103140002FEF920714F481E89FEF8038910514F077
:103150008FE790E08093FD08E0914005F0E0EE0FEE
:10316000FF1FEF5CF74F8081918181383FEF93071C
:1031700014F481E89FEF8038910514F08FE790E018
:103180008093FE08E0913F05F0E0EE0FFF1FEF5C3B
:10319000F74F8081918181384FEF940714F481E8D3
:1031A0009FEF78948038910514F08FE790E080933A
:1031B000FF088091050480930009809106048093A4
:1031C000010980910704809302098091080480938B
:1031D0000309809109048093040980910A04809373
:1031E000050980910B048093060980910C0480935B
:1031F0000709BBC080917D0A853030F010927D0AAE
:1032000085E08093FC0802C08093FC0880919E05B5
:103210008093FD086091FE037091FF03809100048C
:10322000909101040F2EF5E0CF2ED12CE12CF12C42
:10323000F02DA70196010E948BB13093FF082093D7
:10324000FE086091FA037091FB038091FC0390915A
:10325000FD03A70196010E948BB1309301092093D1
:1032600000098091940580930209809195058093CF
:10327000030980919605809304098091040480934A
:10328000050980919F04809306098091560C9091C6
:10329000570C99230CF403969595879595958795EA
:1032A0008093070962C082E08093FC0888E08093E5
:1032B000FD081092FE0887E48093FF088091540176
:1032C00080930009A2E6BAE09C9190930109E3E69D
:1032D000FAE08081809302099F779C9380718083BC
:1032E0008091B1058093030980915C068093040965
:1032F00080914006809305098091A105809306097D
:103300008091B9058093070930C08091190590918B
:103310001A059093FD088093FC0880912F018093FB
:10332000FE0880912E018093FF088091800C80938D
:1033300000098091C9038093010980919F058093C2
:103340000209809124068093030980916004909182
:103350006104909305098093040980917505809319
:1033600006098091650A8093070980910B098823DB
:1033700009F471C160910C0980919502681719F0E8
:103380008AEF8093A4026093950281E080934D01BF
:1033900080910D0990910E099C0121503E4F2F3FC5
:1033A0003340B0F420910F0930911009A901415028
:1033B0005E4F4F3F534060F440914B0545FF08C0BE
:1033C00090936B0480936A0430936904209368049B
:1033D00080911309909114098936F1E09F0724F434
:1033E00090934F0180934E0180911D0990911E0989
:1033F0002091CD043091CE042817390740F4209154
:103400006604211104C09093CE048093CD046936E4
:1034100009F485C030F4673659F0683609F44AC0BB
:1034200022C16A3609F414C16B3609F4D7C01BC136
:1034300080911F0980934C098091200980934E0947
:103440008091210980934D098091220980934C013C
:103450008091230980935009809124098093A502CB
:10346000809125098093BE0480912609809367048A
:103470008091D803882351F08091270990912809E1
:10348000992324F090931D0480931C042091290912
:1034900030912A098091B5049091B604820F931F50
:1034A00099230CF40196959587959093B604809393
:1034B000B504D9C080911F098093E108809120094B
:1034C0008093E208809121098093E308809122098A
:1034D0008093E408809123098093E508E6E4FCE00A
:1034E000909124098081892B8083E7E4FCE090910E
:1034F00025099C7080818370892B808380912609A7
:103500008093BB04809127098093960280912809BB
:1035100080934F09809129098093B704A4C08091BA
:103520001F098093D708809120098093D808809143
:1035300021098093D908809122098093DA0880912B
:103540002309909124099093DC088093DB088091F3
:103550002509909126099093DE088093DD088091DB
:103560006B0890916C08813849F48091BD048111F9
:1035700005C08091270981588093BD048091270957
:10358000992787FD909590936C0880936B088091A4
:1035900028098093F3038091290990912A09AA2789
:1035A00097FDA095BA2F880F991FAA1FBB1FAC01CA
:1035B000BD01440F551F661F771F440F551F661F1F
:1035C000771F840F951FA61FB71F8093F403909356
:1035D000F503A093F603B093F70345C080911F094C
:1035E0008093BA04809120098093B90480912109C5
:1035F0008093B80480912209882349F09091570163
:10360000992319F09151933010F4809357018091D0
:1036100025099091260990938604809385048091D2
:10362000230980938D048091240980938C048091D8
:10363000270980938B0480912809809389048091C5
:10364000290990912A0990936606809365060BC01C
:103650000E943E6108C010926B0410926A0410929E
:103660006904109268041F910F91FF90EF90DF9012
:10367000CF9008958091D608882321F1459887EE50
:1036800098E09093E0088093DF08E091BC0481E02B
:103690008E0F8093BC04F0E0E956FD4F908190932B
:1036A000E9088D3010F01092BC041092D60804DBAB
:1036B00081E08093E6088091E708809308098EBD39
:1036C00081E0089580E008951F920F920FB60F9247
:1036D00011240BB60F922F933F934F935F936F93E9
:1036E0007F938F939F93AF93BF93EF93FF938091BB
:1036F000CC04882329F08091CC0481508093CC04A1
:103700008091B004882319F081508093B004809197
:10371000C304882321F081508093C30453C089E0FF
:103720008093C3048091D2049091D3040196909326
:10373000D3048093D2048091A6028F5F817080931E
:10374000A602811109C08091D104843028F48091AF
:10375000D1048F5F8093D104349903C081E08093BA
:10376000CA048091CD049091CE04892B09F18091F7
:10377000CD049091CE040B9750F08091CD049091A0
:10378000CE040A979093CE048093CD0404C0109287
:10379000CE041092CD042091CD043091CE048091BE
:1037A000A9029091AA0282239323892B41F409C094
:1037B0008FEF9FEF9093AA028093A90202C0479ACD
:1037C00001C047988091CA04882309F460C08091A1
:1037D000A40281115CC080915C0683FF58C0349BB9
:1037E00010C08091CF049091D00401969093D004A2
:1037F0008093CF04893E934008F449C01092CA04D4
:1038000046C08091CF049091D004892BE1F1809142
:10381000CF049091D0048A369140A8F54091CF040E
:103820005091D004E091CF04F091D0049A01ADE919
:10383000BFE80E94B3B1481B590B56954795840FBA
:10384000951F96958795929582958F7089279F7081
:103850008927E80FF91FF093D004E093CF048091FB
:10386000CF049091D0040B9750F08091CF049091A9
:10387000D0040A9790934F0180934E0104C0109298
:103880004F0110924E011092D0041092CF04FF917C
:10389000EF91BF91AF919F918F917F916F915F91C8
:1038A0004F913F912F910F900BBE0F900FBE0F9035
:1038B0001F9018952091D2043091D3042F5F3F4F71
:1038C000820F931F08952091D2043091D304821B5C
:1038D000930B88279078892F86950895FF920F93F0
:1038E0001F93CF93DF93C091D204D091D30421963C
:1038F000C80FD91F0AE710E00F2EFFECFF2EF02DA6
:1039000008C080910F01882321F010920F01F80167
:10391000F082CE01D8DF8823A1F3DF91CF911F91F0
:103920000F91FF9008958FB7F8945F983E9A469A4A
:10393000E0EBF0E090819F709083908193609083A2
:10394000A1EBB0E09C919B739C939C919B609C939A
:103950001092B2009FEF9093B30090819068908393
:10396000E0E7F0E090819A7F90839081926090836D
:103970008FBF08958091D2049091D3040B969093B9
:1039800052098093510982E085BD83EB84BD8FEF9E
:1039900088BD84EB87BD86E086BDEEE6F0E08081E1
:1039A0008160808308958091B70582FF32C0509175
:1039B0006E0520916D0540E5249F900111248091B2
:1039C0002F0180580AF48D5F482F459545958091C9
:1039D000A7029091A80266E046028019910911247D
:1039E000281739072CF03093A8022093A7020895D6
:1039F0004CE3549F90011124821793072CF4909369
:103A0000A8028093A70208953093A8022093A702EA
:103A1000089580912F0160E4869FC0011124909346
:103A2000A8028093A70208958F929F92AF92BF92AF
:103A3000CF92DF92EF92FF920F931F93E091750563
:103A4000F0E0E553FD4FA681E0818091AF02813027
:103A500009F031C18091B90588230CF447C0209149
:103A60004204309143044091440450914504BB27E3
:103A7000A7FDB0950E94D2B18B019C01992324F43B
:103A800001581F4F2F4F3F4F68017901689416F876
:103A9000F594E794D794C7941694D1F720913E04F7
:103AA00030913F044091400450914104AE2FBB2718
:103AB000A7FDB0950E94D2B14B015C0199232CF473
:103AC0002FE7820E911CA11CB11CD501C401689482
:103AD00016F8B595A795979587951694D1F7970100
:103AE0008601081B190B2A0B3B0B03C000E010E0FA
:103AF0009801E0912D016091B5047091B604CB015D
:103B0000880F991F880F991F880F991F861B970B85
:103B1000AA2797FDA095BA2FA9019801281B390B58
:103B20004A0B5B0BAE2FB0E00E94C8B16B017C0169
:103B3000992334F43FEFC30E31E0D31EE11CF11C96
:103B40000B2EB9E0F594E794D794C794BA95D1F7C2
:103B5000B02DE091B705E2FF09C08091A7029091D6
:103B6000A8029093AE028093AD0219C04091AD02BD
:103B70005091AE022091AD023091AE028091A70229
:103B80009091A802841B950B6091740570E00E94CF
:103B900056B1260F371F3093AE022093AD02E0FFDF
:103BA00018C08091AD029091AE0299230CF40F964B
:103BB00095958795959587959595879595958795ED
:103BC000AA2797FDA095BA2FC80ED91EEA1EFB1E84
:103BD0001BC08091AD029091AE0299230CF40F9618
:103BE00095958795959587959595879595958795BD
:103BF000AA2797FDA095BA2F9C01AD012C193D096C
:103C00004E095F0969017A012091A905222321F15A
:103C100030E08091C6049091C704289FB001299F8D
:103C2000700D389F700D1124CB01AA2797FDA09528
:103C3000BA2FBC01CD016C0D7D1D8E1D9F1D2F5F08
:103C40003F4F442737FD4095542F0E948BB130934E
:103C5000C7042093C60404C0D092C704C092C6040F
:103C600080916D0590E0880F991F880F991F209112
:103C7000C6043091C704281739072CF49093C70461
:103C80008093C60412C080916E0590E0880F991F42
:103C9000880F991F2091C6043091C704821793079B
:103CA00024F49093C7048093C6048091AF028F5F81
:103CB0008093AF0207C1C0902C01D12CE12CF12CD4
:103CC00020913E0430913F044091400450914104C2
:103CD000BB27A7FDB0950E94D2B18B019C0199230F
:103CE00024F401581F4F2F4F3F4F4801590168944A
:103CF00016F8B594A794979487941694D1F72091C9
:103D00004204309143044091440450914504AE2F45
:103D1000BB27A7FDB0950E94D2B18B019C019923CE
:103D200024F401581F4F2F4F3F4FD901C801689409
:103D300016F8B595A795979587951694D1F7BC0178
:103D4000CD01680D791D8A1D9B1DA70196010E945A
:103D500027B16B017C01992334F43FEFC30E31E0AE
:103D6000D31EE11CF11C0B2EB9E0F594E794D79417
:103D7000C794BA95D1F7B02D4091AB025091AC02E7
:103D80002091AB023091AC0280912E0160E4869FBD
:103D9000C0011124841B950B6091740570E00E9492
:103DA00056B1260F371F3093AC022093AB0280919F
:103DB000B70581FF18C08091AB029091AC029923A6
:103DC0000CF40F969595879595958795959587957C
:103DD00095958795AA2797FDA095BA2FC80ED91E4D
:103DE000EA1EFB1E1BC08091AB029091AC0299238E
:103DF0000CF40F969595879595958795959587954C
:103E000095958795AA2797FDA095BA2F9C01AD019E
:103E10002C193D094E095F0969017A014091AA05F3
:103E2000442329F150E08091C4049091C504489F37
:103E3000B001499F700D589F700D1124CB01AA2726
:103E400097FDA095BA2FBC01CD016C0D7D1D8E1D77
:103E50009F1D9A012F5F3F4F442737FD4095542FF8
:103E60000E948BB13093C5042093C40404C0D09247
:103E7000C504C092C4048091710590E0880F991F19
:103E8000880F991F2091C4043091C5042817390761
:103E90002CF49093C5048093C40412C080917205E1
:103EA00090E0880F991F880F991F2091C4043091CA
:103EB000C5048217930724F49093C5048093C40427
:103EC0001092AF021F910F91FF90EF90DF90CF9073
:103ED000BF90AF909F908F9008951F920F920FB652
:103EE0000F9211240BB60F922F933F934F938F9302
:103EF0009F93EF93FF938091C2048111F9C0809149
:103F0000B00086FFBCC0E0EBF0E080818F7B808357
:103F1000E091C104E11119C0409173052DED36E027
:103F2000429FC001439F900D11242091BF04309106
:103F3000C004821B930B9093C9048093C804109211
:103F4000C0041092BF04469AD0C0809173058E17AA
:103F500038F48AE090E09093C9048093C804C5C007
:103F600089EA93E09093C9048093C804E33009F18F
:103F700028F4E13041F0E23089F045C0E43039F115
:103F8000E53099F140C08091C6049091C7048755EF
:103F90009E4F9093C9048093C80444C08091C40488
:103FA0009091C50487559E4F9093C9048093C8048F
:103FB00039C08091380690E0880F991F880F991FAB
:103FC00087559E4F9093C9048093C8042BC080915D
:103FD000190690E0880F991F880F991F87559E4FEB
:103FE0009093C9048093C8041DC08091410690E05D
:103FF000880F991F880F991F87559E4F9093C9046A
:104000008093C8040FC0F0E0EE0FFF1FEF5CF74F86
:1040100080819181880F991F87559C4F9093C90487
:104020008093C8048091C8049091C9048D3D25E017
:10403000920738F08CED95E09093C9048093C80402
:1040400009C08737914030F487E791E09093C90425
:104050008093C8048091C8049091C9048C5B910935
:104060009093C9048093C8042091BF043091C00488
:10407000820F931F9093C0048093BF0436C0E0EB7F
:10408000F0E08081806480838CEB90E09093C904A1
:104090008093C8048091BF049091C00484549F4FC2
:1040A0009093C0048093BF048091CB04882321F0B7
:1040B00080910404811104C08091CB04823011F4FA
:1040C000469801C0469A2091C1042F5F2093C104F5
:1040D00030E08091730590E00196821793072CF4ED
:1040E00081E08093AF021092C10481E08093C2040A
:1040F0008091C8049091C9048F3721E0920770F035
:104100008FEF8093B3008091C8049091C9048F5FB2
:1041100091099093C9048093C8042DC08F3F9105E5
:1041200011F108F18F5F91098F37910570F480E8E4
:104130008093B3008091C8049091C904805891097C
:104140009093C9048093C80416C08FEF8093B30086
:104150008091C8049091C9048F5F91099093C9041C
:104160008093C80408C08093B3001092C9041092D1
:10417000C8041092C204FF91EF919F918F914F91CB
:104180003F912F910F900BBE0F900FBE0F901F907D
:1041900018952FB7F8943998389A98B1936098B9D0
:1041A000E9EBF0E090819C7F90839AE29093B800D5
:1041B0001092E3041092E2041092E104882331F19A
:1041C000E5EAF9E089E59AE0DF011E971C92119675
:1041D0001C9211961C9211961C9211961C9211968B
:1041E0001C9211961C9211961C92108211961C9290
:1041F00011961C9211961C9211961C9211961C926B
:1042000011961C923F96E817F907F1F678942FBFA4
:1042100008950F931F93CF93DF931092E304CCEB99
:10422000D0E084E9888380E888831092BD001092F2
:10423000BA000BEB10E0F80110821092B900109256
:10424000B8001092E00480E0A4DFF801108285E855
:1042500088838091DE0482608093DE04DF91CF91B9
:104260001F910F9108951F920F920FB60F92112474
:104270000BB60F922F933F934F938F939F93AF93D0
:10428000BF93EF93FF938091E30491E0980F909395
:10429000E30490E08730910508F0D8C2FC01E055B6
:1042A000FF4F0C94A7B181E08093E004E091E20419
:1042B000F0E0EE0FFF1FEE0FFF1FE953FA4F858569
:1042C0001816CCF08091E2048C30A8F48091E204BE
:1042D0008F5F8093E204E091E204F0E0EE0FFF1FB5
:1042E000EE0FFF1FE953FA4F8585181624F08091D1
:1042F000E2048C3058F39091E2048BEA989F812D70
:104300001124869586958695282F220F820F880F77
:10431000880F981B9093E2048091D9048F5F80935B
:10432000D9049091B202981798F41092D90410927F
:10433000DD041092DC0485E08093E3048091E104C5
:10434000880F8D5A8093BB0085E88093BC0094C28F
:104350008091E204880F8E5A8093BB0085E8809399
:10436000BC008AC2A091E2048FE08A9FD001112490
:10437000A956B64F11969C919093BB0095E89093E7
:10438000BC00E091E2048E9FF0011124E956F64F43
:10439000808180FD04C084E08093E3046DC2E091DD
:1043A000E2042FE0E29FF0011124E956F64F8281EA
:1043B000882329F080913D05873008F45DC2809103
:1043C000DC049091DD04892B09F056C28091DA0457
:1043D0009091DB04892B09F04FC284E08093E304C1
:1043E0004BC24091E2042091DA043091DB0481E079
:1043F00090E002C0880F991F4A95E2F78223932329
:10440000892B59F0E091E2048FE0E89FF00111243C
:10441000E956F64F80E1848309C0E091E2042FE081
:10442000E29FF0011124E956F64F1482A091E204B4
:10443000E091E2048FE08A9FD0011124A956B64F83
:1044400014969C91990F990F990F8E9FF00111244A
:10445000E956F64F82818770892B8093BB0085E8EF
:104460008093BC004091E2042091DC043091DD0493
:1044700081E090E002C0880F991F4A95E2F78223FD
:104480009323892B51F08FE899E09093D80480937F
:10449000D70488E08093D604EFC184E08093E304DE
:1044A000EBC1E091D704F091D80480818093BB00E8
:1044B00085E88093BC008091D7049091D804019640
:1044C0009093D8048093D7048091D6048150809330
:1044D000D604882309F4D0C183E08093E304CCC1DF
:1044E0008091B900803311F58091D504811105C008
:1044F0008091E2048F5F8093D504E091E2048FE025
:10450000E89FF0011124E956F64F83818F7790E000
:104510008F3791055CF4E091E2042FE0E29FF00117
:104520001124E956F64F83818F5F83831092E30451
:10453000ECEBF0E084E980838AE090E09093B102B4
:104540008093B0028091E2048F5F8093E204109226
:10455000E3048091DE048E7F8093DE0485EA80830D
:104560008BC18091B9008034A1F1E091E1048FE02A
:10457000E89FF0011124E956F64F83818F778383FA
:104580008091E1048F5F8093E1048C30A8F0109259
:10459000E1041092DB041092DA048091D4048F5F5E
:1045A0008C3018F48093D40407C01092D404809106
:1045B000DE048D7F8093DE048091DE048160809331
:1045C000DE041092E30484E98093BC001092E004BE
:1045D0007AC0E091E1048FE08E9FF0011124E9564A
:1045E000F64F938190689383E091E1048E9FF001F0
:1045F0001124E956F64F808180FF3CC0E091E10430
:104600002FE0E29FF0011124E956F64F84818823C0
:10461000B1F0803109F04CC08FE899E09093D80454
:104620008093D70488E08093D604E091E1048FE082
:10463000E89FF0011124E956F64F148239C08091A9
:10464000E1042FE0829FC00111248456964F90937D
:10465000D8048093D7049091E1048091D4049813F6
:1046600005C08091B3028093D60422C081E080937C
:10467000D60422C08091E1042FE0829FC001112462
:104680008456964F9093D8048093D7048091DE048B
:1046900081FD06C09091E1048091D404981304C078
:1046A00082E08093D6040CC081E08093D60404C0DD
:1046B0008091D604813021F485E88093BC0003C04A
:1046C00085EC8093BC008091D5048093DF04109228
:1046D000D504D2C08091BB00E091D704F091D804FA
:1046E0008193F093D804E093D7048091D60481504D
:1046F0008093D604823020F085EC8093BC00A2C069
:10470000813021F485E88093BC009CC08091DE0458
:1047100081FF52C08091CB0380FD4EC0E091E10447
:104720008FE0E89FF0011124E956F64F86818C7FD7
:10473000883F61F4E091E1042FE0E29FF001112451
:10474000E956F64F80818160808309C0E091E104E1
:104750008FE0E89FF0011124E956F64F1082E091B6
:10476000E1042FE0E29FF0011124E956F64F868123
:10477000883F61F4E091E1048FE0E89FF0011124AB
:10478000E956F64F80818660808316C0E091E1048F
:104790002FE0E29FF0011124E956F64F8681893F10
:1047A00059F4E091E1048FE0E89FF0011124E9560B
:1047B000F64F8081846080838091CB0381FF19C094
:1047C000E091E1042FE0E29FF0011124E956F64F59
:1047D00086818E3F70F4E091E1048FE0E89FF00164
:1047E0001124E956F64F86858F5F868789E080938E
:1047F00057018091E1048F5F8093E1048C30A8F031
:104800001092E1041092DB041092DA048091D40437
:104810008F5F8C3018F48093D40407C01092D404B6
:104820008091DE048D7F8093DE041092E30484E99E
:104830008093BC008091DE0481608093DE0410923E
:10484000E0041AC086E08093E30416C01092E304EB
:1048500084E98093BC008091DE0481608093DE0453
:104860008AE090E09093B1028093B0021092E2044B
:104870001092E1041092E004FF91EF91BF91AF918B
:104880009F918F914F913F912F910F900BBE0F9061
:104890000FBE0F901F901895EF92FF920F931F93EA
:1048A000CF93DF93182F90910304911198C08091BA
:1048B000F504811196C01D3008F095C01123D9F080
:1048C000212F30E0215031098FE0829FF001839F3A
:1048D000F00D1124E956F64F838188230CF085C032
:1048E0008FE0829FF001839FF00D1124E956F64F6F
:1048F000808180FF7CC080918F098B70823009F0AD
:1049000078C067E070E08FE899E00E943E239091C4
:104910009609981370C0F090B2028CE08093B202B6
:1049200024E630E03093B1022093B00284E690E0B8
:104930000E945A9CEC018091DE0480FD05C0CE01EE
:104940000E94639C8823B9F3111107C08FEF9FE089
:104950009093DD048093DC040CC0115081E090E062
:1049600002C0880F991F1A95E2F79093DD04809397
:10497000DC041092E2041092E10488EE93E00E94BD
:104980005A9CEC010CEB10E00F2EF5EAEF2EF02D07
:104990001092E3048091DE048E7F8093DE04F801A0
:1049A000E0828091DE0480FD05C0CE010E94639C00
:1049B0008823B9F38091DC049091DD04892B29F0E0
:1049C000CE010E94639C882319F3F092B202809179
:1049D000DC049091DD04892B81F082E00FC081E03E
:1049E0000DC081E00BC082E009C082E007C083E017
:1049F00005C084E003C085E001C080E0DF91CF9175
:104A00001F910F91FF90EF900895FF920F931F93C6
:104A1000CF93DF939091030491117BC09091F504A3
:104A2000911179C08D3008F078C0882309F477C0DF
:104A3000082F10E0015011098FE0809FF001819F45
:104A4000F00D1124E956F64F838188230CF069C0DC
:104A50008FE0809FF001819FF00D1124E956F64F01
:104A6000808180FF60C088EE93E00E945A9CEC0138
:104A70008091DE0480FD05C0CE010E94639C8823E6
:104A8000B9F381E090E09C0102C0220F331F0A9528
:104A9000E2F73093DB042093DA041092E2041092E0
:104AA000E10410928F09109296090CEB10E00F2E82
:104AB000F5EAFF2EF02D1092E3048091DE048E7F44
:104AC0008093DE04F801F0828091DE0480FD05C051
:104AD000CE010E94639C8823B9F38091DA049091FF
:104AE000DB04892B29F0CE010E94639C882319F3F3
:104AF00080918F098B708230C1F467E070E08FE89D
:104B000099E00E943E2390919609981781F085E0E4
:104B10000FC081E00DC081E00BC082E009C086E0DB
:104B200007C082E005C083E003C084E001C080E0EC
:104B3000DF91CF911F910F91FF9008951F920F92D7
:104B40000FB60F9211240BB60F922F938F939F9352
:104B5000EF93FF938091B70281111CC08091EA040A
:104B60009091EB0401969093EB048093EA04FC018E
:104B7000E659F44F20812D3019F08C3D910539F420
:104B80001092EB041092EA0481E08093B702209324
:104B9000C60004C01092EB041092EA04FF91EF915A
:104BA0009F918F912F910F900BBE0F900FBE0F9082
:104BB0001F9018951F920F920FB60F9211240BB6EB
:104BC0000F921F932F933F934F935F936F937F9316
:104BD0008F939F93AF93BF93CF93DF93EF93FF9305
:104BE0008091EC04813029F48091C6008093CE003E
:104BF000DEC08091EC04823029F48091C60080935D
:104C00008C0AD5C08091C6008093FC041091E90401
:104C10001C3D10F01092E8048091FC048D3009F0E6
:104C200065C08091E804823009F060C01092E80409
:104C3000212F30E0D901A657B54F7C91A9014150F1
:104C40005109EA01C457D54F68818091E6049091DB
:104C5000E704871B9109861B91099F709093E704D5
:104C60008093E604BC010024660F771F001C660FCA
:104C7000771F001C672F702D635C6093E5048F73B2
:104C8000835C8093E4049C91691304C09881891724
:104C900009F488C08091FA048F5F8093FA048091B0
:104CA000FB0485C081E08093FB041F5F1093F9042F
:104CB000F901E457F54F8DE0808380918E0A8235AB
:104CC00009F075C080910304811171C00E941D8795
:104CD0002CE088E190E00FB6F894A89580936000EE
:104CE0000FBE209360001092CB0461C08091E80455
:104CF0008130F1F018F08230B1F151C08091FC04A4
:104D0000833239F48091FB04811103C081E08093E8
:104D1000E80481E08093E9048091FC0480938C0A8C
:104D20008091FC0490E09093E7048093E6043FC0F8
:104D300082E08093E80481E0810F8093E904E12F11
:104D4000F0E08091FC04E457F54F80832091FC044F
:104D50008091E6049091E704820F911D9093E704FF
:104D60008093E60424C0E12FF0E08091FC04E45736
:104D7000F54F80831C3D20F41F5F1093E90402C0AF
:104D80001092E8042091FC048091E6049091E704DD
:104D9000820F911D9093E7048093E60408C010925F
:104DA000E80405C08091FB04882309F47BCFFF91C0
:104DB000EF91DF91CF91BF91AF919F918F917F91B3
:104DC0006F915F914F913F912F911F910F900BBE6B
:104DD0000F900FBE0F901F901895009781F020E064
:104DE00030E040E050E0F901E659F44F6081460FB1
:104DF000511D2F5F3F4F28173907A9F702C040E028
:104E000050E05F709A010024220F331F001C220F14
:104E1000331F001C232F302D235CFC01E659F44F77
:104E200020834F73435CFC01E559F44F4083FC0140
:104E3000E459F44F2DE020831092B70280916A0B61
:104E40008093C6000895DF92EF92FF920F931F9315
:104E5000CF93DF93CDB7DEB70C8583E280936A0BE7
:104E60008B858F5980936B0B8A8580936C0B002305
:104E700009F4A1C06D857E85ADE0B0E0AC0FBD1F2B
:104E800014962F85388901502115310509F496C0F3
:104E9000D12C83E090E010E02115310509F492C097
:104EA000FF24F394FD0CFB01ED0DF11D4081215019
:104EB00031092115310599F4002309F485C06D915C
:104EC0007C911197FD01349612962D913C91139788
:104ED00001502115310509F47AC0DF01F12E51E0AE
:104EE0005F0DFB01EF0DF11DE0802150310921150F
:104EF000310591F4002309F46EC06D917C911197F6
:104F0000FD01349612962D913C9113970150211575
:104F10003105D9F0DF01512FDD24D394D50EFB01EB
:104F2000E50FF11DF080215031092115310581F483
:104F3000002371F06D917C91119712962D913C9107
:104F4000139701501496D12E03C0DF01D12EF12EFC
:104F5000542F56955695535CFC01E659F44F5083F7
:104F60004370E0E14E9FA00111245E2D52955F70C9
:104F7000452B435CFC01E559F44F40834E2D4F70A7
:104F8000440F440F5F2D5295569556955370452BFF
:104F9000435CFC01E459F44F40834F2D4F73435C55
:104FA000FC013396E659F44F0496408321153105F0
:104FB00009F072CF05C083E090E002C083E090E08A
:104FC0000CDF0CC0412F01C0DF2CE12E05C0DF013A
:104FD000D12EE12E01C0D52EF12EBACFDF91CF9187
:104FE0001F910F91FF90EF90DF9008957091F90459
:104FF0006AEF670F09F454C0ABEFA70F745043E09A
:1050000053E0E52FF0E0E457F54F3081E1E0E50FA4
:10501000F0E0E457F54F20812D53E2E0E50FF0E09A
:10502000E457F54F80818D53E3E0E50FF0E05C5FDE
:10503000E457F54FE081922F92959F703D53330FC7
:10504000330FB32FB92B90E1299F90011124982F92
:1050500096959695292B30E4839FC001112493ECFB
:105060009E0F892B662309F131E0340FE42FF0E025
:10507000E457F54FB0834717A9F092E0940FE32F60
:10508000F0E0E457F54F208363504A1769F04D5F15
:10509000E92FF0E0E457F54F80836111B2CF05C0EE
:1050A00043E003C0432F01C0492F8FE89AE090935B
:1050B000F8048093F70443504093F6040895CF9387
:1050C000DF9300D0CDB7DEB78091FB04882309F4CD
:1050D00049C48CDF80918D0A823609F004C3809127
:1050E0008E0A90E0FC01EB54F109EF32F10508F073
:1050F000FAC2E954FF4F0C94A7B1E091F704F09184
:10510000F8048081918190934F0180934E01EBC20E
:105110008091F904853160F0E091F704F091F80492
:1051200080E1A7E6BAE001900D928A95E1F710C000
:10513000E091F704F091F80480819181A281B3811C
:105140008093670A9093680AA093690AB0936A0AE9
:1051500080EF8093F5048FEF8093B502C4C28091F5
:10516000B7028823E1F31F928DE48F9387EC95E0DB
:105170009F938F9381E08F938F938EE48F9363DE61
:1051800083E696E19F938F9388E193E29F938F93B9
:10519000E0917806F0917906099580E00E942C2331
:1051A0000FB6F894DEBF0FBECDBF9DC2E091F704ED
:1051B000F091F8048081813089F48DE4A7ECB5E0AA
:1051C00001900D928A95E1F70E94AC2581E08983D8
:1051D000E3E6FAE080818F7E808301C019828091AE
:1051E000B7028823E1F31F9221E02F93CE010196AD
:1051F0009F938F932F932F938DE48F9324DE0FB67D
:10520000F894DEBF0FBECDBF6EC281E08093FE0476
:105210008FEF8093B50267C280910304811144C06F
:10522000E091F704F091F804808196EF980F9A309E
:1052300080F4911103C081E0898306C0963010F498
:10524000998302C085E0898361E089810E94782684
:1052500027C09CEE980F9A3080F4911103C081E032
:10526000898306C0963010F4998302C085E0898353
:1052700060E089810E94782613C089838F3F19F4EA
:105280000E94092689838981811103C081E0898375
:1052900004C0863010F085E0898389810E944E2504
:1052A00080E00E94905903C00E9409268983809162
:1052B000B7028823E1F31F9288E88F938EE395E08D
:1052C0009F938F931F9221E02F93CE0101969F937E
:1052D0008F9382E08F932F9381E58F93B4DD898143
:1052E0001F928F9383E596E19F938F9388E193E2DA
:1052F0009F938F93E0917806F0917906099580E06D
:105300000E942C230FB6F894DEBF0FBECDBFEBC1B9
:105310008091F7049091F804FC0120812150253000
:1053200090F52181273679F52091030421112BC0B6
:10533000319628E8AEE3B5E001900D922A95E1F7A9
:10534000FC0180810E94262620917F0530E0A4EC9C
:10535000B9E00E94B3B16093460170934701809316
:105360004801909349012091800530E0FCD760937B
:1053700042017093430180934401909345010E9440
:105380000926898301C019828091B7028823E1F33D
:105390001F9221E02F93CE0101969F938F932F931D
:1053A0002F9383E58F934FDD0FB6F894DEBF0FBECA
:1053B000CDBF80910304811108C06EE670E0898141
:1053C0000E94BA2880E00E949059809165050E9451
:1053D000681889C180910304811185C1E091F704A7
:1053E000F091F80480819FEF980F953010F40E949F
:1053F0004E250E94092689838091B7028823E1F314
:105400001F9221E02F93CE0101969F938F932F93AC
:105410002F9386E48F9317DD0FB6F894DEBF0FBE8F
:10542000CDBF80910304811108C06EE670E08981D0
:105430000E94BA2880E00E949059809165050E94E0
:10544000681851C119824091F704E42FF091F804D3
:1054500081E190E02191332727FD3095DC01AA0FEF
:10546000BB1FAF5CB74F11963C932E932E2F241B7E
:10547000298301968D31910569F735C1E091F704D3
:10548000F091F80480811F928F9385E496E19F93B9
:105490008F9388E193E29F938F93E0917806F09148
:1054A0007906099580E00E942C23E091F704F091A1
:1054B000F8048081AADA8A830F900F900F900F90E2
:1054C0000F900F90811103C081E0898301C0198280
:1054D0008091B7028823E1F31F9288E08F938FE8D1
:1054E00099E09F938F931F9221E02F938091F8046E
:1054F0008F938091F7048F931F922F93CE01029682
:105500009F938F931F922F9301979F938F9384E084
:105510008F932F9385E58F9396DC0FB6F894DEBFBB
:105520000FBECDBFE0C0E091F704F091F804808198
:105530001F928F9387E396E19F938F9388E193E285
:105540009F938F93E0917806F0917906099580E01A
:105550000E942C230F900F900F900F900F900F90A0
:105560008091F604893008F4BEC08091F7049091D0
:10557000F80428E0FC013196AFE8B9E001900D9203
:105580002A95E1F7FC01808187D98A83811103C0C4
:1055900081E0898301C019828091B7028823E1F3F9
:1055A0001F9221E02F93CE0102969F938F931F921B
:1055B0002F9301979F938F9382E08F932F9387E58B
:1055C0008F9341DC0FB6F894DEBF0FBECDBF8BC00A
:1055D00080910304811187C00E941F188983823043
:1055E00019F0843009F07FC0F894A1ECB0E08C9100
:1055F0008F738C93E9ECF0E080818F7380838C91C2
:10560000877E8C938081877E80838091C8008823E9
:1056100044F4AEECB0E0E8ECF0E08C9180818823BB
:10562000E4F38091C000882344F4A6ECB0E0E0EC01
:10563000F0E08C9180818823E4F3E091F704F0910D
:10564000F8048081813021F482E08093EC0427C04B
:10565000843611F080E401C081E891E09093EC047D
:10566000ADECB0E01C92ECECF0E080838C91809388
:10567000C50080818093C400EAECF0E080818F7DDA
:10568000808380818F7E8083A9ECB0E08C918B7FBA
:105690008C93808184608083808182608083EAEC47
:1056A000F0E08081877F8083E2ECF0E08081877F7B
:1056B0008083E9ECF0E080818E7F8083A1ECB0E014
:1056C0008C9188618C938081886180838C918068C3
:1056D0008C9380818068808310926E0010926F009E
:1056E00010927000789480918E0A90E0FC01EB5447
:1056F000F109EC32F10508F02DC1EA51FF4F27C640
:105700008091F904803160F0E091F704F091F804A1
:1057100080E1A7E6BAE001900D928A95E1F710C00A
:10572000E091F704F091F80480819181A281B38126
:105730008093670A9093680AA093690AB0936A0AF3
:105740008091B7028823E1F31F928091B4028F9376
:1057500084E58F9378DB8AEF8093F5048FEF809355
:10576000B50280EA9FE00E945A9C9093EE048093D9
:10577000ED040F900F900F90EDC0E091F704F091C1
:10578000F8048081918190934F0180934E01E2C093
:10579000E091F704F091F8048081803218F480934E
:1057A000B60203C08FE18093B6028FEF8093B502FB
:1057B000D1C0E091F704F091F8048BE0AFE7BAE0D4
:1057C00001900D928A95E1F78091880A8093880C68
:1057D0008FEF8093B502BEC08091F1049091F204E6
:1057E000892BC9F4E091F704F091F8042081222379
:1057F00091F030E0C901880F991F220F331F220F4B
:10580000331F220F331F820F931F0E945A9C9093C5
:105810005A0A8093590AE091F704F091F8048081C4
:1058200090E09C01220F331F880F991F880F991F4A
:10583000880F991F820F931F9093F2048093F104B5
:1058400080EA9FE00E945A9C9093EE048093ED04BE
:1058500081C08FEF8093B502E091F704F091F804D6
:10586000208130E0C901880F991F220F331F220FBA
:10587000331F220F331F820F931F9093F4048093E2
:10588000F304892B19F081E08093000580EA9FE002
:105890000E945A9C9093EE048093ED045BC08FEFBE
:1058A0008093B502E091F704F091F8048081882399
:1058B00044F082E08093FD041092F0041092EF0413
:1058C00022C080959091A204892B8093A2048181AB
:1058D00090E09C01220F331F880F991F880F991F9A
:1058E000880F991F820F931F9093F0048093EF0409
:1058F00084E08093FD0480EA9FE00E945A9C90938C
:10590000EE048093ED0481E08093010523C08FEFC6
:105910008093B502E091F704F091F80480818093C0
:10592000A30481E08093020515C08091F6048823CA
:1059300051F0E091F704F091F8048081823019F47D
:105940008093FF0407C081E08093FF0403C081E0DF
:10595000809303051092FB041092F8041092F70450
:105960001092F6040F900F90DF91CF910895E0EC24
:10597000F0E0908195FFFDCF8093C6000895E1ECA3
:10598000F0E088E18083A0ECB0E08C9182608C93A1
:105990008081806880838081806480831092C500CC
:1059A0008AE28093C4008091F3049091F4040E94F1
:1059B0005A9C90935C0A80935B0A8CED90E00E9465
:1059C0005A9C90938B0A80938A0A82E080935D0AA6
:1059D00088E080935E0A1092610A8BE080935F0AF0
:1059E0001092600A8FEF8093650A80915401809332
:1059F000640A1092F8041092F7041092F6040895C5
:105A0000CF92DF92EF92FF920F931F93CF93DF938A
:105A1000CDB7DEB760970FB6F894DEBF0FBECDBF2F
:105A20008091B702882309F4E2C28091ED0490913D
:105A3000EE040E94639C882361F01092F00410929F
:105A4000EF041092F4041092F3041092F2041092F6
:105A5000F1048091EF049091F004892B41F0809142
:105A6000680B9091690B0E94639C811105C0809125
:105A70000105882309F45CC08091B702882309F4EA
:105A800057C08091FD048430A8F00E9427871F92A0
:105A900080E58F9380EE97E09F938F9381E08F93C3
:105AA0008F9388E48F93CFD90FB6F894DEBF0FBEE3
:105AB000CDBF32C01092A40482E296E19F938F93EF
:105AC00080E197E89F938F93E0917806F0917906B3
:105AD00009951F9284E18F9380EE97E09F938F93B7
:105AE0001F9221E02F938DEF94E09F938F9382E09C
:105AF0008F932F9388E48F93A6D98091FD040FB6DE
:105B0000F894DEBF0FBECDBF843020F48F5F80934A
:105B1000FD0402C01092FD048091EF049091F00406
:105B20000E945A9C9093690B8093680B1092010518
:105B300080910205882339F18091B702882319F1F9
:105B40000E9427871F9280E58F9380EE97E09F93B6
:105B50008F931F9221E02F9380E992E09F938F9380
:105B60001F922F9383EA94E09F938F9383E08F9308
:105B70002F938CE48F9367D9109202050FB6F89497
:105B8000DEBF0FBECDBF8091FF04882309F45BC048
:105B90009091B702992309F456C0823061F5809143
:105BA000E10889838091E2088A838091E3088D83EC
:105BB0008091E50888878FEF8E838F8380915F0ABD
:105BC0008B838091650A89878091660A8A871C8207
:105BD0001F928AE08F93CE0101969F938F9381E06D
:105BE0008F938F9386E58F932ED90FB6F894DEBFEF
:105BF0000FBECDBF12C01F928AE08F938DE59AE051
:105C00009F938F9381E08F938F9386E58F931BD91A
:105C10000FB6F894DEBF0FBECDBF1092FF0481E136
:105C200096E19F938F9388E193E29F938F93E09106
:105C30007806F0917906099588E00E942C230F9050
:105C40000F900F900F90809103058823D1F08091E1
:105C5000B7028823B1F01F928BE08F938FE79AE011
:105C60009F938F9381E08F938091B4028F9387E409
:105C70008F93E9D8109203050FB6F894DEBF0FBEDC
:105C8000CDBF8091F3049091F404892B41F0809171
:105C90005B0A90915C0A0E94639C811104C0809110
:105CA0000005882331F18091B702882311F10E9409
:105CB000C1271F9282E48F9386E49CE09F938F9389
:105CC00081E08F938F9384E48F93BDD81092000569
:105CD0008091F3049091F4040FB6F894DEBF0FBEE8
:105CE000CDBF009731F00E945A9C90935C0A80933C
:105CF0005B0A8091F1049091F204892B09F49DC014
:105D00008091590A90915A0A0E94639C882309F451
:105D100094C08091B702882309F48FC00BE41AE085
:105D20008091EA089091EB08F8019183808380913B
:105D3000EC089091ED0890934E0A80934D0A809163
:105D40006E0690916F06A0917006B0917106880F53
:105D5000991FAA1FBB1FAC01BD01440F551F661F31
:105D6000771F440F551F661F771F6C017D01C40EFE
:105D7000D51EE61EF71EC701B60120912101309104
:105D800022014091230150912401C5D23093500A41
:105D900020934F0A8091260490912704A091280413
:105DA000B0912904072E79E0B595A7959795879529
:105DB0007A95D1F7702D8093510A809122049091A9
:105DC0002304A0912404B0912504072E79E0B59511
:105DD000A795979587957A95D1F7702D8093520A5C
:105DE00080912E0490912F04A0913004B091310441
:105DF000072E79E0B595A795979587957A95D1F770
:105E0000702D8093530A1F928EE08F931F930F93F0
:105E100081E08F938F9383E48F9315D88091F10461
:105E20009091F2040E945A9C90935A0A8093590AC6
:105E30000FB6F894DEBF0FBECDBF6091B6026F3FC4
:105E400041F130E1639FB00111246159794E40E185
:105E500050E08E010F5F1F4FC801E1D21F9280E119
:105E60008F931F930F931F9221E02F9386EB92E065
:105E70009F938F9382E08F932F9381E48F930E945F
:105E800023A78FEF8093B6020FB6F894DEBF0FBE44
:105E9000CDBF8091880C8823C1F08091B702882300
:105EA000A1F01F9221E02F9388E89CE09F938F93AD
:105EB0002F932F9382E48F930E9423A71092880C34
:105EC0000FB6F894DEBF0FBECDBF8091FE048823CD
:105ED000C9F08091B7028823A9F01F9286E48F93BE
:105EE00081E398E09F938F9381E08F938F9380E578
:105EF0008F930E9423A71092FE040FB6F894DEBF82
:105F00000FBECDBF80918A0A90918B0A0E94639C3C
:105F1000882309F44FC08091B702882309F44AC04E
:105F20008091A40281112AC0E7E7FAE08091EA0893
:105F30009091EB08918380838091EC089091ED081B
:105F400090937A0A8093790A8091E00380937B0A88
:105F50008091DF0380937C0A1F9288E08F93FF93E8
:105F6000EF9381E08F9383E08F938BE68F930E9472
:105F700023A70FB6F894DEBF0FBECDBF80917D0A78
:105F8000853018F086E080937D0A8091CA048823CA
:105F900049F083E690E00E945A9C90938B0A80938C
:105FA0008A0A08C087EE93E00E945A9C90938B0A5D
:105FB00080938A0A809176038823C9F08091B70282
:105FC0008823A9F01F9281E28F938CE195E09F9343
:105FD0008F9381E08F938F9380E38F930E9423A709
:105FE000109276030FB6F894DEBF0FBECDBF609659
:105FF0000FB6F894DEBF0FBECDBFDF91CF911F91DA
:106000000F91FF90EF90DF90CF900895089508953D
:106010005058BB27AA270ED0E0C0D1D030F0D6D040
:1060200020F031F49F3F11F41EF4C6C00EF4E09549
:10603000E7FBBCC0E92FE2D080F3BA176207730711
:106040008407950718F071F49EF5FAC00EF4E095F8
:106050000B2EBA2FA02D0B01B90190010C01CA0122
:10606000A0011124FF27591B99F0593F50F4503ECD
:1060700068F11A16F040A22F232F342F4427585FBF
:10608000F3CF469537952795A795F0405395C9F7D7
:106090007EF41F16BA0B620B730B840BBAF091508F
:1060A000A1F0FF0FBB1F661F771F881FC2F70EC02E
:1060B000BA0F621F731F841F48F487957795679501
:1060C000B795F7959E3F08F0B3CF9395880F08F0EA
:1060D0009927EE0F97958795089598D088F09F5748
:1060E00090F0B92F9927B751A0F0D1F0660F771F24
:1060F000881F991F1AF0BA95C9F712C0B13081F004
:106100009FD0B1E008959CC0672F782F8827B85F93
:1061100039F0B93FCCF3869577956795B395D9F764
:106120003EF490958095709561957F4F8F4F9F4F6E
:106130000895E89409C097FB3EF49095809570957A
:1061400061957F4F8F4F9F4F9923A9F0F92F96E9C3
:10615000BB279395F695879577956795B795F11138
:10616000F8CFFAF4BB0F11F460FF1BC06F5F7F4FD5
:106170008F4F9F4F16C0882311F096E911C07723E7
:1061800021F09EE8872F762F05C0662371F096E8F0
:10619000862F70E060E02AF09A95660F771F881FBF
:1061A000DAF7880F9695879597F9089597F99F677D
:1061B00080E870E060E008959FEF80EC089500248F
:1061C0000A941616170618060906089500240A945C
:1061D00012161306140605060895092E0394000CE2
:1061E00011F4882352F0BB0F40F4BF2B11F460FF71
:1061F00004C06F5F7F4F8F4F9F4F089557FD90589A
:10620000440F551F59F05F3F71F04795880F97FB7A
:10621000991F61F09F3F79F0879508951216130634
:106220001406551FF2CF4695F1DF08C01616170663
:106230001806991FF1CF8695710561050894089598
:10624000E894BB2766277727CB0197F90895DB01F0
:106250008F939F939DD0BF91AF91A29F800D911D71
:10626000A39F900DB29F900D11240895991B79E082
:1062700004C0991F961708F0961B881F7A95C9F7D6
:1062800080950895AA1BBB1B51E107C0AA1FBB1F25
:10629000A617B70710F0A61BB70B881F991F5A95B2
:1062A000A9F780959095BC01CD01089597FB072E25
:1062B00016F4009406D077FD08D0E4DF07FC05D083
:1062C0003EF4909581959F4F0895709561957F4F0D
:1062D0000895A1E21A2EAA1BBB1BFD010DC0AA1F27
:1062E000BB1FEE1FFF1FA217B307E407F50720F03F
:1062F000A21BB30BE40BF50B661F771F881F991FBA
:106300001A9469F760957095809590959B01AC0102
:10631000BD01CF010895052E97FB16F400940FD010
:1063200057FD05D0D6DF07FC02D046F408C05095D3
:106330004095309521953F4F4F4F5F4F0895909571
:106340008095709561957F4F8F4F9F4F0895EE0F09
:10635000FF1F0590F491E02D099405D0332312F42A
:106360008A1B9B0B10C0A29FB001B39FC001A39FCB
:10637000700D811D1124911DB29F700D811D11247E
:10638000911D0895F0DFB7FF0895821B930B0895C8
:10639000EADFA59F900DB49F900DA49F800D911DE5
:1063A00011240895B7FFF4CFF3DF821B930B0895F8
:1063B0002F923F924F925F926F927F928F929F9215
:1063C000AF92BF92CF92DF92EF92FF920F931F9303
:1063D000CF93DF93CDB7DEB7CA1BDB0B0FB6F894B4
:1063E000DEBF0FBECDBF09942A88398848885F84F4
:1063F0006E847D848C849B84AA84B984C884DF8065
:10640000EE80FD800C811B81AA81B981CE0FD11D48
:106410000FB6F894DEBF0FBECDBFED010895FB01AE
:10642000DC0102C005900D9241505040D8F708950C
:10643000FC014150504030F001900616D1F73197E1
:10644000CF010895882799270895FB01DC0102C038
:1064500001900D9241505040D8F70895DC01CB01D6
:10646000FC01F999FECF06C0F2BDE1BDF89A319664
:1064700000B40D9241505040B8F70895F999FECFFD
:1064800092BD81BDF89A992780B50895A8E1B0E042
:1064900042E050E0E5CFDC01CB0102C02D9105D0F8
:1064A00041505040D8F70895262FF999FECF1FBAD2
:1064B00092BD81BD20BD0FB6F894FA9AF99A0FBE2D
:0E64C00001960895F1DF272FF0CFF894FFCF5B
:1064CE00F7FFFCFF70FF01010F64070610F40101D6
:1064DE00FF03007D0000C409C409960064E803644C
:1064EE00200B050000ECFF6440415A4655326464AF
:1064FE000A969696960864403A1030380132FF0399
:10650E007F0090D0030090D0030032002064FFFF84
:10651E000104035E0A0101150101010101014D4B48
:10652E0020202020202020202020200100000000FC
:10653E0000566F6C74616765202020562020010084
:10654E000000000143757272656E74202020412098
:10655E0020010000000001436170616369747920BD
:10656E0020416820010000000002416C74697475BE
:10657E00646520206D2020010000000000436F6D37
:10658E0070617373202020B02020010000000000F5
:10659E005361747320202020202020202001000031
:1065AE00000000537065656420202020206D2F733D
:1065BE0001000000000044697374616E6365202061
:1065CE006D2020010000000000486F6D652D4469AC
:1065DE00722020B020200100000000006D61782E96
:1065EE0054656D702E20B043200100000000004D58
:1065FE0061676E2E6669656C6425202001000000BF
:10660E000000566172696F2020202020202020017A
:10661E0000000000004572726F72436F64652020A7
:10662E0020200100000000004C61746974756465DF
:10663E0020202020200900000000004C6F6E6769AA
:10664E0074756465202020200900000000000101FF
:10665E0013D201010168200B0A130B0E100B0A0C4A
:10666E000F0B1110FA20010020FFFFC01FC01F01E9
:10667E0064000C090164FF0151756164726F0000C2
:10668E0000000000004167696C6500000204060707
:10669E000808080706040200FEFCFAF9F8F8F8F9F3
:0A66AE00FAFCFE00020406070808CB
:00000001FF
/branches/V2.08a_Rens_Testversion/FlightCtrl/Debug/FlightCtrl.lss
0,0 → 1,44454
 
FlightCtrl.elf: file format elf32-avr
 
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 000001ea 00800100 000164ce 00016562 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 000164ce 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 000009ef 008002ea 008002ea 0001674c 2**0
ALLOC
3 .comment 00000030 00000000 00000000 0001674c 2**0
CONTENTS, READONLY
4 .debug_aranges 00000580 00000000 00000000 00016780 2**3
CONTENTS, READONLY, DEBUGGING
5 .debug_info 00011ffe 00000000 00000000 00016d00 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 00002459 00000000 00000000 00028cfe 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 0000a084 00000000 00000000 0002b157 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_frame 00001cc8 00000000 00000000 000351dc 2**2
CONTENTS, READONLY, DEBUGGING
9 .debug_str 000030b7 00000000 00000000 00036ea4 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_loc 000082f5 00000000 00000000 00039f5b 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_ranges 00000468 00000000 00000000 00042250 2**0
CONTENTS, READONLY, DEBUGGING
 
Disassembly of section .text:
 
00000000 <__vectors>:
0: 0c 94 f0 0c jmp 0x19e0 ; 0x19e0 <__ctors_end>
4: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
8: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
c: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
10: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
14: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
18: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
1c: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
20: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
24: 0c 94 6d 9f jmp 0x13eda ; 0x13eda <__vector_9>
28: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
2c: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
30: 0c 94 b3 91 jmp 0x12366 ; 0x12366 <__vector_12>
34: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
38: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
3c: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
40: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
44: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
48: 0c 94 64 9b jmp 0x136c8 ; 0x136c8 <__vector_18>
4c: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
50: 0c 94 da a5 jmp 0x14bb4 ; 0x14bb4 <__vector_20>
54: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
58: 0c 94 9e a5 jmp 0x14b3c ; 0x14b3c <__vector_22>
5c: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
60: 0c 94 05 1c jmp 0x380a ; 0x380a <__vector_24>
64: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
68: 0c 94 33 a1 jmp 0x14266 ; 0x14266 <__vector_26>
6c: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
70: 0c 94 a1 1a jmp 0x3542 ; 0x3542 <__vector_28>
74: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
78: 0c 94 f6 0f jmp 0x1fec ; 0x1fec <__vector_30>
7c: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
80: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
84: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
88: 0c 94 4a 0d jmp 0x1a94 ; 0x1a94 <__bad_interrupt>
8c: 32 1c adc r3, r2
8e: 3e 1c adc r3, r14
90: 49 1c adc r4, r9
92: 56 1c adc r5, r6
94: 71 1c adc r7, r1
96: 8b 1c adc r8, r11
98: 9d 1c adc r9, r13
9a: af 1c adc r10, r15
9c: 33 1d adc r19, r3
9e: bc 1f adc r27, r28
a0: 5b 1e adc r5, r27
a2: 6d 1e adc r6, r29
a4: 7e 1e adc r7, r30
a6: 95 1e adc r9, r21
a8: b6 1e adc r11, r22
aa: d6 1e adc r13, r22
ac: 27 1f adc r18, r23
ae: 78 1f adc r23, r24
b0: 62 66 ori r22, 0x62 ; 98
b2: a8 6a ori r26, 0xA8 ; 168
b4: a0 70 andi r26, 0x00 ; 0
b6: 13 74 andi r17, 0x43 ; 67
b8: cf 75 andi r28, 0x5F ; 95
ba: 71 77 andi r23, 0x71 ; 113
bc: 4c 79 andi r20, 0x9C ; 156
be: 72 66 ori r23, 0x62 ; 98
c0: 3c 67 ori r19, 0x7C ; 124
c2: 0b 68 ori r16, 0x8B ; 139
c4: 8a 68 ori r24, 0x8A ; 138
c6: d9 68 ori r29, 0x89 ; 137
c8: 71 69 ori r23, 0x91 ; 145
ca: 99 7b andi r25, 0xB9 ; 185
cc: fa 69 ori r31, 0x9A ; 154
ce: 7e 6a ori r23, 0xAE ; 174
d0: 7e 6a ori r23, 0xAE ; 174
d2: 7e 6a ori r23, 0xAE ; 174
d4: 7e 6a ori r23, 0xAE ; 174
d6: 7e 6a ori r23, 0xAE ; 174
d8: 7e 6a ori r23, 0xAE ; 174
da: 7e 6a ori r23, 0xAE ; 174
dc: 7e 6a ori r23, 0xAE ; 174
de: 7e 6a ori r23, 0xAE ; 174
e0: b8 6a ori r27, 0xA8 ; 168
e2: 76 6b ori r23, 0xB6 ; 182
e4: 1a 6c ori r17, 0xCA ; 202
e6: 57 6c ori r21, 0xC7 ; 199
e8: cd 6c ori r28, 0xCD ; 205
ea: 4e 6d ori r20, 0xDE ; 222
ec: 43 6e ori r20, 0xE3 ; 227
ee: ed 6f ori r30, 0xFD ; 253
f0: 71 70 andi r23, 0x01 ; 1
f2: 71 70 andi r23, 0x01 ; 1
f4: 71 70 andi r23, 0x01 ; 1
f6: 71 70 andi r23, 0x01 ; 1
f8: 71 70 andi r23, 0x01 ; 1
fa: 71 70 andi r23, 0x01 ; 1
fc: 71 70 andi r23, 0x01 ; 1
fe: 71 70 andi r23, 0x01 ; 1
100: 71 70 andi r23, 0x01 ; 1
102: b0 70 andi r27, 0x00 ; 0
104: cf 70 andi r28, 0x0F ; 15
106: fe 70 andi r31, 0x0E ; 14
108: a3 71 andi r26, 0x13 ; 19
10a: 0e 72 andi r16, 0x2E ; 46
10c: ad 72 andi r26, 0x2D ; 45
10e: ef 72 andi r30, 0x2F ; 47
110: 87 73 andi r24, 0x37 ; 55
112: 99 7b andi r25, 0xB9 ; 185
114: e5 73 andi r30, 0x35 ; 53
116: e5 73 andi r30, 0x35 ; 53
118: e5 73 andi r30, 0x35 ; 53
11a: e5 73 andi r30, 0x35 ; 53
11c: e5 73 andi r30, 0x35 ; 53
11e: e5 73 andi r30, 0x35 ; 53
120: e5 73 andi r30, 0x35 ; 53
122: e5 73 andi r30, 0x35 ; 53
124: 9f 87 std Y+15, r25 ; 0x0f
126: d4 88 ldd r13, Z+20 ; 0x14
128: 71 89 ldd r23, Z+17 ; 0x11
12a: f4 89 ldd r31, Z+20 ; 0x14
12c: 36 8a std Z+22, r3 ; 0x16
12e: da 8a std Y+18, r13 ; 0x12
130: 64 8b std Z+20, r22 ; 0x14
132: cb 8b std Y+19, r28 ; 0x13
134: 5a 8c ldd r5, Y+26 ; 0x1a
136: 98 8c ldd r9, Y+24 ; 0x18
138: 15 8d ldd r17, Z+29 ; 0x1d
13a: 43 8d ldd r20, Z+27 ; 0x1b
13c: 71 8d ldd r23, Z+25 ; 0x19
13e: cd 8d ldd r28, Y+29 ; 0x1d
140: 21 8e std Z+25, r2 ; 0x19
142: 7f 8e std Y+31, r7 ; 0x1f
144: cd 8e std Y+29, r12 ; 0x1d
146: 17 8f std Z+31, r17 ; 0x1f
148: 8a 8f std Y+26, r24 ; 0x1a
14a: a6 90 elpm r10, Z
14c: 19 97 sbiw r26, 0x09 ; 9
14e: 7f 98 cbi 0x0f, 7 ; 15
150: fa 98 cbi 0x1f, 2 ; 31
152: b5 99 sbic 0x16, 5 ; 22
154: 53 99 sbic 0x0a, 3 ; 10
156: 85 99 sbic 0x10, 5 ; 16
158: 58 97 sbiw r26, 0x18 ; 24
15a: 27 98 cbi 0x04, 7 ; 4
15c: b5 99 sbic 0x16, 5 ; 22
15e: b9 97 sbiw r30, 0x29 ; 41
160: 53 a1 ldd r21, Z+35 ; 0x23
162: b2 a1 ldd r27, Z+34 ; 0x22
164: f1 a1 ldd r31, Z+33 ; 0x21
166: 51 a2 std Z+33, r5 ; 0x21
168: 70 a2 std Z+32, r7 ; 0x20
16a: b1 a2 std Z+33, r11 ; 0x21
16c: 6a a3 std Y+34, r22 ; 0x22
16e: 7d a8 ldd r7, Y+53 ; 0x35
170: 73 ab std Z+51, r23 ; 0x33
172: 73 ab std Z+51, r23 ; 0x33
174: 73 ab std Z+51, r23 ; 0x33
176: 73 ab std Z+51, r23 ; 0x33
178: 73 ab std Z+51, r23 ; 0x33
17a: 73 ab std Z+51, r23 ; 0x33
17c: 73 ab std Z+51, r23 ; 0x33
17e: 73 ab std Z+51, r23 ; 0x33
180: 73 ab std Z+51, r23 ; 0x33
182: 73 ab std Z+51, r23 ; 0x33
184: 73 ab std Z+51, r23 ; 0x33
186: 73 ab std Z+51, r23 ; 0x33
188: 73 ab std Z+51, r23 ; 0x33
18a: 73 ab std Z+51, r23 ; 0x33
18c: 73 ab std Z+51, r23 ; 0x33
18e: 73 ab std Z+51, r23 ; 0x33
190: 73 ab std Z+51, r23 ; 0x33
192: 73 ab std Z+51, r23 ; 0x33
194: 73 ab std Z+51, r23 ; 0x33
196: 73 ab std Z+51, r23 ; 0x33
198: 73 ab std Z+51, r23 ; 0x33
19a: 73 ab std Z+51, r23 ; 0x33
19c: 73 ab std Z+51, r23 ; 0x33
19e: 73 ab std Z+51, r23 ; 0x33
1a0: 73 ab std Z+51, r23 ; 0x33
1a2: 73 ab std Z+51, r23 ; 0x33
1a4: ea a9 ldd r30, Y+50 ; 0x32
1a6: 73 ab std Z+51, r23 ; 0x33
1a8: 73 ab std Z+51, r23 ; 0x33
1aa: 73 ab std Z+51, r23 ; 0x33
1ac: e8 aa std Y+48, r14 ; 0x30
1ae: 73 ab std Z+51, r23 ; 0x33
1b0: 73 ab std Z+51, r23 ; 0x33
1b2: d6 a8 ldd r13, Z+54 ; 0x36
1b4: af a8 ldd r10, Y+55 ; 0x37
1b6: 73 ab std Z+51, r23 ; 0x33
1b8: 05 a9 ldd r16, Z+53 ; 0x35
1ba: 0c a9 ldd r16, Y+52 ; 0x34
1bc: 73 ab std Z+51, r23 ; 0x33
1be: 88 a9 ldd r24, Y+48 ; 0x30
1c0: 88 a8 ldd r8, Y+48 ; 0x30
1c2: 3e aa std Y+54, r3 ; 0x36
1c4: 73 ab std Z+51, r23 ; 0x33
1c6: 93 aa std Z+51, r9 ; 0x33
1c8: 73 ab std Z+51, r23 ; 0x33
1ca: 22 aa std Z+50, r2 ; 0x32
1cc: bd ab std Y+53, r27 ; 0x35
1ce: aa ac ldd r10, Y+58 ; 0x3a
1d0: aa ac ldd r10, Y+58 ; 0x3a
1d2: aa ac ldd r10, Y+58 ; 0x3a
1d4: aa ac ldd r10, Y+58 ; 0x3a
1d6: aa ac ldd r10, Y+58 ; 0x3a
1d8: aa ac ldd r10, Y+58 ; 0x3a
1da: aa ac ldd r10, Y+58 ; 0x3a
1dc: aa ac ldd r10, Y+58 ; 0x3a
1de: aa ac ldd r10, Y+58 ; 0x3a
1e0: aa ac ldd r10, Y+58 ; 0x3a
1e2: aa ac ldd r10, Y+58 ; 0x3a
1e4: aa ac ldd r10, Y+58 ; 0x3a
1e6: aa ac ldd r10, Y+58 ; 0x3a
1e8: aa ac ldd r10, Y+58 ; 0x3a
1ea: aa ac ldd r10, Y+58 ; 0x3a
1ec: aa ac ldd r10, Y+58 ; 0x3a
1ee: aa ac ldd r10, Y+58 ; 0x3a
1f0: aa ac ldd r10, Y+58 ; 0x3a
1f2: aa ac ldd r10, Y+58 ; 0x3a
1f4: aa ac ldd r10, Y+58 ; 0x3a
1f6: aa ac ldd r10, Y+58 ; 0x3a
1f8: c8 ab std Y+48, r28 ; 0x30
1fa: d9 ab std Y+49, r29 ; 0x31
1fc: ec ab std Y+52, r30 ; 0x34
1fe: 29 ac ldd r2, Y+57 ; 0x39
200: aa ac ldd r10, Y+58 ; 0x3a
202: aa ac ldd r10, Y+58 ; 0x3a
204: a7 ac ldd r10, Z+63 ; 0x3f
206: 4f ac ldd r4, Y+63 ; 0x3f
208: aa ac ldd r10, Y+58 ; 0x3a
20a: aa ac ldd r10, Y+58 ; 0x3a
20c: aa ac ldd r10, Y+58 ; 0x3a
20e: 87 ac ldd r8, Z+63 ; 0x3f
210: aa ac ldd r10, Y+58 ; 0x3a
212: aa ac ldd r10, Y+58 ; 0x3a
214: aa ac ldd r10, Y+58 ; 0x3a
216: aa ac ldd r10, Y+58 ; 0x3a
218: aa ac ldd r10, Y+58 ; 0x3a
21a: aa ac ldd r10, Y+58 ; 0x3a
21c: aa ac ldd r10, Y+58 ; 0x3a
21e: 80 ab std Z+48, r24 ; 0x30
220: aa ac ldd r10, Y+58 ; 0x3a
222: 95 ac ldd r9, Z+61 ; 0x3d
224: a3 18 sub r10, r3
226: a6 18 sub r10, r6
228: a6 18 sub r10, r6
22a: a6 18 sub r10, r6
22c: af 18 sub r10, r15
22e: b2 18 sub r11, r2
230: b5 18 sub r11, r5
232: c7 18 sub r12, r7
234: c4 18 sub r12, r4
 
00000236 <__trampolines_end>:
236: 2e 00 .word 0x002e ; ????
 
00000238 <__c.3073>:
238: 0a 0d 4d 69 78 65 72 2d 43 6f 6e 66 69 67 3a 20 ..Mixer-Config:
248: 27 25 73 27 20 28 25 75 20 4d 6f 74 6f 72 73 29 '%s' (%u Motors)
...
 
00000259 <__c.3068>:
259: 0a 0d 47 65 6e 65 72 61 74 69 6e 67 20 64 65 66 ..Generating def
269: 61 75 6c 74 20 4d 69 78 65 72 20 54 61 62 6c 65 ault Mixer Table
...
 
0000027a <__c.3066>:
27a: 0a 0d 55 73 69 6e 67 20 50 61 72 61 6d 65 74 65 ..Using Paramete
28a: 72 20 53 65 74 20 25 64 00 r Set %d.
 
00000293 <__c.3057>:
293: 0a 0d 47 65 6e 65 72 61 74 69 6e 67 20 64 65 66 ..Generating def
2a3: 61 75 6c 74 20 50 61 72 61 6d 65 74 65 72 20 53 ault Parameter S
2b3: 65 74 20 25 64 00 et %d.
 
000002b9 <__c.3054>:
2b9: 0a 0d 2d 2d 3e 20 48 61 72 64 77 61 72 65 20 56 ..--> Hardware V
2c9: 65 72 73 69 6f 6e 20 42 79 74 65 20 43 68 61 6e ersion Byte Chan
2d9: 67 65 64 20 3c 2d 2d 00 ged <--.
 
000002e1 <__c.3166>:
2e1: 0a 0d 47 79 72 6f 20 63 61 6c 69 62 72 61 74 69 ..Gyro calibrati
2f1: 6f 6e 20 64 61 74 61 20 6e 6f 74 20 76 61 6c 69 on data not vali
301: 64 0d 0a 00 d...
 
00000305 <__c.3161>:
305: 0a 0d 41 43 43 20 6e 6f 74 20 63 61 6c 69 62 72 ..ACC not calibr
315: 61 74 65 64 21 0d 0a 00 ated!...
 
0000031d <__c.3040>:
31d: 1b 5b 32 4a 46 43 2d 53 74 61 72 74 21 0a 0d 46 .[2JFC-Start!..F
32d: 6c 75 67 7a 65 69 74 3a 20 25 64 20 6d 69 6e 00 lugzeit: %d min.
 
0000033d <__c.3038>:
33d: 0a 0d 46 6c 69 67 68 74 2d 74 69 6d 65 20 25 75 ..Flight-time %u
34d: 20 6d 69 6e 20 54 6f 74 61 6c 3a 25 75 20 6d 69 min Total:%u mi
35d: 6e 00 n.
 
0000035f <__c.3036>:
35f: 4f 4b 0a 0d 00 OK...
 
00000364 <__c.3031>:
364: 0a 0d 43 61 6c 69 62 72 61 74 69 6e 67 20 70 72 ..Calibrating pr
374: 65 73 73 75 72 65 20 73 65 6e 73 6f 72 2e 2e 00 essure sensor...
 
00000384 <__c.3029>:
384: 3c 2d 2d 20 77 61 72 6e 69 6e 67 20 6f 6c 64 20 <-- warning old
394: 56 65 72 73 69 6f 6e 21 00 Version!.
 
0000039d <__c.3027>:
39d: 0a 0d 42 4c 2d 46 69 72 6d 77 61 72 65 20 25 64 ..BL-Firmware %d
3ad: 2e 25 30 32 64 00 .%02d.
 
000003b3 <__c.3022>:
3b3: 0a 0d 0a 0d 21 21 20 4d 49 53 53 49 4e 47 20 42 ....!! MISSING B
3c3: 4c 2d 43 54 52 4c 3a 20 25 64 20 21 21 00 L-CTRL: %d !!.
 
000003d1 <__c.3017>:
3d1: 25 64 00 %d.
 
000003d4 <__c.3008>:
3d4: 0a 0d 46 6f 75 6e 64 20 42 4c 2d 43 74 72 6c 3a ..Found BL-Ctrl:
3e4: 20 00 .
 
000003e6 <__c.2999>:
3e6: 0a 0d 4f 6c 64 20 46 43 20 48 61 72 64 77 61 72 ..Old FC Hardwar
3f6: 65 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 e not supported
406: 62 79 20 74 68 69 73 20 46 69 72 6d 77 61 72 65 by this Firmware
416: 21 00 !.
 
00000418 <__c.2985>:
418: 20 20 41 75 74 6f 6c 61 6e 64 69 6e 67 3a 20 25 Autolanding: %
428: 64 2e 25 64 56 00 d.%dV.
 
0000042e <__c.2983>:
42e: 20 20 41 75 74 6f 2d 43 48 3a 20 25 64 2e 25 64 Auto-CH: %d.%d
43e: 56 00 V.
 
00000440 <__c.2981>:
440: 20 4c 6f 77 20 77 61 72 6e 69 6e 67 3a 20 25 64 Low warning: %d
450: 2e 25 64 56 00 .%dV.
 
00000455 <__c.2979>:
455: 20 25 64 20 43 65 6c 6c 73 20 00 %d Cells .
 
00000460 <__c.2977>:
460: 0a 0d 42 61 74 74 3a 00 ..Batt:.
 
00000468 <__c.2968>:
468: 0a 0d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ..==============
478: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
488: 3d 3d 3d 3d 3d 00 =====.
 
0000048e <__c.3496>:
48e: 25 73 00 %s.
 
00000491 <__c.3494>:
491: 28 53 65 74 20 2d 3e 20 4c 6f 61 64 29 00 (Set -> Load).
 
0000049f <__c.3492>:
49f: 4e 6f 20 53 44 2d 43 61 72 64 20 20 20 00 No SD-Card .
 
000004ad <__c.3490>:
4ad: 2d 2d 00 --.
 
000004b0 <__c.3488>:
4b0: 25 32 64 00 %2d.
 
000004b4 <__c.3486>:
4b4: 20 20 20 00 .
 
000004b8 <__c.3484>:
4b8: 6c 6f 61 64 20 70 6f 69 6e 74 3a 00 load point:.
 
000004c4 <__c.3479>:
4c4: 43 61 6d 3a 20 25 33 69 00 Cam: %3i.
 
000004cd <__c.3477>:
4cd: 44 49 52 3a 20 25 33 64 25 63 00 DIR: %3d%c.
 
000004d8 <__c.3475>:
4d8: 41 4c 54 3a 25 34 69 6d 20 20 20 20 00 ALT:%4im .
 
000004e5 <__c.3473>:
4e5: 41 4c 54 3a 25 34 69 2f 25 69 6d 20 00 ALT:%4i/%im .
 
000004f2 <__c.3470>:
4f2: 57 50 3a 25 32 64 2f 25 64 20 44 69 73 74 3a 25 WP:%2d/%d Dist:%
502: 33 64 6d 20 00 3dm .
 
00000507 <__c.3468>:
507: 20 25 32 69 3a 25 30 32 69 20 00 %2i:%02i .
 
00000512 <__c.3466>:
512: 20 25 32 69 2e 25 31 69 56 20 00 %2i.%1iV .
 
0000051d <__c.3462>:
51d: 4c 6f 61 64 20 73 69 6e 67 6c 65 20 50 6f 73 69 Load single Posi
52d: 74 69 6f 6e 00 tion.
 
00000532 <__c.3455>:
532: 21 4e 6f 20 47 50 53 2d 46 69 78 21 20 00 !No GPS-Fix! .
 
00000540 <__c.3453>:
540: 28 53 65 74 20 2d 3e 20 53 74 6f 72 65 29 00 (Set -> Store).
 
0000054f <__c.3451>:
54f: 4e 6f 20 53 44 2d 43 61 72 64 20 20 20 00 No SD-Card .
 
0000055d <__c.3449>:
55d: 2d 2d 00 --.
 
00000560 <__c.3447>:
560: 25 32 64 20 00 %2d .
 
00000565 <__c.3445>:
565: 20 20 20 00 .
 
00000569 <__c.3443>:
569: 53 74 6f 72 65 20 70 6f 69 6e 74 3a 00 Store point:.
 
00000576 <__c.3438>:
576: 43 61 6d 3a 20 25 33 69 00 Cam: %3i.
 
0000057f <__c.3436>:
57f: 44 49 52 3a 20 25 33 64 25 63 00 DIR: %3d%c.
 
0000058a <__c.3434>:
58a: 41 4c 54 3a 25 34 69 6d 00 ALT:%4im.
 
00000593 <__c.3431>:
593: 20 25 32 69 3a 25 30 32 69 20 00 %2i:%02i .
 
0000059e <__c.3429>:
59e: 20 25 32 69 2e 25 31 69 56 20 00 %2i.%1iV .
 
000005a9 <__c.3425>:
5a9: 53 74 6f 72 65 20 73 69 6e 67 6c 65 20 50 6f 73 Store single Pos
5b9: 69 74 69 6f 6e 00 ition.
 
000005bf <__c.3418>:
5bf: 20 20 20 20 20 20 20 20 20 20 20 20 20 00 .
 
000005cd <__c.3416>:
5cd: 28 53 65 74 20 2d 3e 20 4c 6f 61 64 29 00 (Set -> Load).
 
000005db <__c.3414>:
5db: 4e 6f 20 53 44 2d 43 61 72 64 20 20 20 00 No SD-Card .
 
000005e9 <__c.3412>:
5e9: 20 2d 2d 00 --.
 
000005ed <__c.3410>:
5ed: 25 32 64 20 28 46 49 58 29 00 %2d (FIX).
 
000005f7 <__c.3408>:
5f7: 20 20 20 00 .
 
000005fb <__c.3406>:
5fb: 4c 6f 61 64 20 6c 69 73 74 3a 00 Load list:.
 
00000606 <__c.3401>:
606: 25 73 00 %s.
 
00000609 <__c.3399>:
609: 25 32 69 2e 25 31 69 56 20 00 %2i.%1iV .
 
00000613 <__c.3396>:
613: 4e 6f 20 57 50 73 20 61 63 74 69 76 65 20 20 20 No WPs active
623: 20 00 .
 
00000625 <__c.3394>:
625: 41 63 74 69 76 65 20 57 50 3a 25 32 64 2f 25 64 Active WP:%2d/%d
635: 20 00 .
 
00000637 <__c.3390>:
637: 28 46 69 78 65 64 20 50 6f 73 69 74 69 6f 6e 73 (Fixed Positions
647: 29 00 ).
 
00000649 <__c.3388>:
649: 4c 6f 61 64 20 57 61 79 70 6f 69 6e 74 73 00 Load Waypoints.
 
00000658 <__c.3381>:
658: 21 4e 6f 20 47 50 53 2d 46 69 78 21 20 00 !No GPS-Fix! .
 
00000666 <__c.3379>:
666: 20 20 20 20 20 20 20 20 20 20 20 20 20 00 .
 
00000674 <__c.3377>:
674: 28 53 65 74 20 2d 3e 20 4c 6f 61 64 29 00 (Set -> Load).
 
00000682 <__c.3375>:
682: 4e 6f 20 53 44 2d 43 61 72 64 20 20 20 00 No SD-Card .
 
00000690 <__c.3373>:
690: 4c 6f 61 64 20 6c 69 73 74 3a 20 2d 2d 20 00 Load list: -- .
 
0000069f <__c.3371>:
69f: 4c 6f 61 64 20 6c 69 73 74 3a 00 Load list:.
 
000006aa <__c.3369>:
6aa: 25 32 69 20 20 20 00 %2i .
 
000006b1 <__c.3367>:
6b1: 20 20 20 00 .
 
000006b5 <__c.3362>:
6b5: 25 73 00 %s.
 
000006b8 <__c.3360>:
6b8: 25 32 69 2e 25 31 69 56 20 00 %2i.%1iV .
 
000006c2 <__c.3357>:
6c2: 4e 6f 20 57 50 73 20 61 63 74 69 76 65 20 20 20 No WPs active
6d2: 20 20 00 .
 
000006d5 <__c.3355>:
6d5: 41 63 74 69 76 65 20 57 50 3a 25 32 64 2f 25 64 Active WP:%2d/%d
6e5: 20 00 .
 
000006e7 <__c.3351>:
6e7: 28 52 65 6c 61 74 69 76 65 20 50 6f 73 69 74 69 (Relative Positi
6f7: 6f 6e 73 29 00 ons).
 
000006fc <__c.3349>:
6fc: 4c 6f 61 64 20 57 61 79 70 6f 69 6e 74 73 00 Load Waypoints.
 
0000070b <__c.3333>:
70b: 43 4f 4d 50 41 53 53 20 4f 46 46 21 20 00 COMPASS OFF! .
 
00000719 <__c.3331>:
719: 48 48 21 20 00 HH! .
 
0000071e <__c.3329>:
71e: 4c 4f 4f 50 49 4e 47 21 20 00 LOOPING! .
 
00000728 <__c.3327>:
728: 43 4f 55 50 4c 49 4e 47 20 4f 46 46 21 20 00 COUPLING OFF! .
 
00000737 <__c.3324>:
737: 50 34 3a 25 34 69 20 50 35 3a 25 34 69 20 36 3a P4:%4i P5:%4i 6:
747: 25 33 69 00 %3i.
 
0000074b <__c.3322>:
74b: 50 31 3a 25 34 69 20 50 32 3a 25 34 69 20 33 3a P1:%4i P2:%4i 3:
75b: 25 33 69 00 %3i.
 
0000075f <__c.3320>:
75f: 47 73 3a 25 34 69 20 59 61 3a 25 34 69 20 00 Gs:%4i Ya:%4i .
 
0000076e <__c.3318>:
76e: 4e 69 3a 25 34 69 20 52 6f 3a 25 34 69 20 43 3a Ni:%4i Ro:%4i C:
77e: 25 33 69 00 %3i.
 
00000782 <__c.3315>:
782: 48 4f 4c 44 20 00 HOLD .
 
00000788 <__c.3313>:
788: 25 75 6d 00 %um.
 
0000078c <__c.3311>:
78c: 48 4f 4d 45 20 41 4c 54 3a 00 HOME ALT:.
 
00000796 <__c.3308>:
796: 20 46 53 3a 25 75 73 65 6b 20 00 FS:%usek .
 
000007a1 <__c.3306>:
7a1: 28 48 4f 4c 44 29 00 (HOLD).
 
000007a8 <__c.3304>:
7a8: 28 41 49 44 29 20 00 (AID) .
 
000007af <__c.3302>:
7af: 28 48 4f 4d 45 29 00 (HOME).
 
000007b6 <__c.3300>:
7b6: 28 46 52 45 45 29 00 (FREE).
 
000007bd <__c.3298>:
7bd: 44 49 53 41 42 4c 45 44 00 DISABLED.
 
000007c6 <__c.3296>:
7c6: 47 50 53 3a 00 GPS:.
 
000007cb <__c.3293>:
7cb: 20 54 45 41 43 48 00 TEACH.
 
000007d2 <__c.3291>:
7d2: 20 28 4f 46 46 29 00 (OFF).
 
000007d9 <__c.3289>:
7d9: 20 28 4f 4e 29 20 00 (ON) .
 
000007e0 <__c.3287>:
7e0: 44 49 53 41 42 4c 45 44 00 DISABLED.
 
000007e9 <__c.3285>:
7e9: 43 46 3a 00 CF:.
 
000007ed <__c.3282>:
7ed: 44 49 53 41 42 4c 45 44 00 DISABLED.
 
000007f6 <__c.3280>:
7f6: 56 41 52 49 4f 00 VARIO.
 
000007fc <__c.3278>:
7fc: 4c 49 4d 49 54 00 LIMIT.
 
00000802 <__c.3276>:
802: 28 4f 46 46 29 20 00 (OFF) .
 
00000809 <__c.3274>:
809: 28 4f 4e 29 20 20 00 (ON) .
 
00000810 <__c.3272>:
810: 50 4f 54 49 3a 25 33 75 20 00 POTI:%3u .
 
0000081a <__c.3270>:
81a: 41 4c 54 3a 00 ALT:.
 
0000081f <__c.3267>:
81f: 4d 69 6e 3a 25 32 69 2e 25 31 69 56 20 25 73 20 Min:%2i.%1iV %s
...
 
00000830 <__c.3263>:
830: 53 65 74 74 69 6e 67 3a 25 75 20 25 73 20 00 Setting:%u %s .
 
0000083f <__c.3249>:
83f: 20 77 77 77 2e 4d 69 6b 72 6f 4b 6f 70 74 65 72 www.MikroKopter
84f: 2e 64 65 20 20 00 .de .
 
00000855 <__c.3247>:
855: 21 21 20 4c 69 50 6f 20 76 6f 6c 74 61 67 65 20 !! LiPo voltage
865: 21 21 00 !!.
 
00000868 <__c.3245>:
868: 45 52 52 3a 20 00 ERR: .
 
0000086e <__c.3243>:
86e: 45 52 52 3a 20 25 32 64 20 21 00 ERR: %2d !.
 
00000879 <__c.3240>:
879: 25 33 69 20 25 33 69 20 25 33 69 20 25 33 69 25 %3i %3i %3i %3i%
889: 63 43 00 cC.
 
0000088c <__c.3238>:
88c: 25 33 69 20 25 33 69 25 63 43 20 20 20 20 20 20 %3i %3i%cC
89c: 20 20 00 .
 
0000089f <__c.3236>:
89f: 25 32 69 2e 25 69 20 25 32 69 2e 25 69 20 25 32 %2i.%i %2i.%i %2
8af: 69 2e 25 69 20 25 32 69 2e 25 69 41 00 i.%i %2i.%iA.
 
000008bc <__c.3234>:
8bc: 25 32 69 2e 25 69 20 25 32 69 2e 25 69 41 00 %2i.%i %2i.%iA.
 
000008cb <__c.3231>:
8cb: 25 33 69 20 25 33 69 20 25 33 69 20 25 33 69 25 %3i %3i %3i %3i%
8db: 63 43 00 cC.
 
000008de <__c.3229>:
8de: 25 32 69 2e 25 69 20 25 32 69 2e 25 69 20 25 32 %2i.%i %2i.%i %2
8ee: 69 2e 25 69 20 25 32 69 2e 25 69 41 00 i.%i %2i.%iA.
 
000008fb <__c.3226>:
8fb: 20 20 20 4e 6f 20 4e 61 76 69 43 74 72 6c 20 20 No NaviCtrl
90b: 20 20 20 20 20 00 .
 
00000911 <__c.3224>:
911: 44 47 50 53 20 00 DGPS .
 
00000917 <__c.3222>:
917: 4e 4f 46 49 58 00 NOFIX.
 
0000091d <__c.3218>:
91d: 20 20 33 44 20 00 3D .
 
00000923 <__c.3215>:
923: 47 50 53 3a 25 32 75 6d 2f 73 20 53 41 54 3a 25 GPS:%2um/s SAT:%
933: 64 20 00 d .
 
00000936 <__c.3212>:
936: 20 20 00 .
 
00000939 <__c.3210>:
939: 43 46 00 CF.
 
0000093c <__c.3208>:
93c: 50 57 52 3a 25 32 69 2e 25 31 69 41 20 28 25 69 PWR:%2i.%1iA (%i
94c: 57 29 20 00 W) .
 
00000950 <__c.3205>:
950: 48 4d 3a 25 33 64 25 63 20 20 44 49 53 54 3a 25 HM:%3d%c DIST:%
960: 33 64 6d 20 25 63 00 3dm %c.
 
00000967 <__c.3202>:
967: 25 63 00 %c.
 
0000096a <__c.3200>:
96a: 41 4c 54 3a 2d 2d 2d 2d 20 00 ALT:---- .
 
00000974 <__c.3198>:
974: 41 4c 54 3a 25 34 69 6d 00 ALT:%4im.
 
0000097d <__c.3196>:
97d: 41 4c 54 3a 25 34 69 6d 00 ALT:%4im.
 
00000986 <__c.3194>:
986: 44 49 52 3a 25 33 64 25 63 00 DIR:%3d%c.
 
00000990 <__c.3190>:
990: 20 25 32 69 3a 25 30 32 69 20 20 25 32 69 2e 25 %2i:%02i %2i.%
9a0: 31 69 56 20 25 34 69 6d 41 68 00 1iV %4imAh.
 
000009ab <__c.3188>:
9ab: 20 25 32 69 3a 25 30 32 69 20 20 25 32 69 2e 25 %2i:%02i %2i.%
9bb: 31 69 56 20 25 34 69 6d 41 68 00 1iV %4imAh.
 
000009c6 <__c.3173>:
9c6: 20 77 77 77 2e 4d 69 6b 72 6f 4b 6f 70 74 65 72 www.MikroKopter
9d6: 2e 64 65 20 20 00 .de .
 
000009dc <__c.3171>:
9dc: 21 21 20 4c 69 50 6f 20 76 6f 6c 74 61 67 65 20 !! LiPo voltage
9ec: 21 21 00 !!.
 
000009ef <__c.3169>:
9ef: 45 52 52 3a 20 00 ERR: .
 
000009f5 <__c.3167>:
9f5: 45 52 52 3a 20 25 32 64 20 21 00 ERR: %2d !.
 
00000a00 <__c.3163>:
a00: 20 20 20 20 25 32 75 6d 2f 73 3a 20 20 48 4d 3a %2um/s: HM:
a10: 25 33 64 25 63 20 25 63 00 %3d%c %c.
 
00000a19 <__c.3161>:
a19: 69 6e 63 6c 3a 25 32 64 25 63 28 25 32 69 29 00 incl:%2d%c(%2i).
 
00000a29 <__c.3159>:
a29: 48 4d 3a 25 33 64 25 63 20 25 63 00 HM:%3d%c %c.
 
00000a35 <__c.3157>:
a35: 4d 41 47 3a 25 33 75 25 25 20 00 MAG:%3u%% .
 
00000a40 <__c.3154>:
a40: 21 21 00 !!.
 
00000a43 <__c.3150>:
a43: 33 44 00 3D.
 
00000a46 <__c.3148>:
a46: 44 20 00 D .
 
00000a49 <__c.3145>:
a49: 44 49 53 54 3a 25 33 64 6d 00 DIST:%3dm.
 
00000a53 <__c.3143>:
a53: 53 41 54 3a 25 32 64 20 00 SAT:%2d .
 
00000a5c <__c.3141>:
a5c: 3a 00 :.
 
00000a5e <__c.3138>:
a5e: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
a6e: 2d 2d 2d 2d 2d 00 -----.
 
00000a74 <__c.3136>:
a74: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d ---------+------
a84: 2d 2d 2d 2d 2d 00 -----.
 
00000a8a <__c.3134>:
a8a: 3a 00 :.
 
00000a8c <__c.3132>:
a8c: 3a 00 :.
 
00000a8e <__c.3130>:
a8e: 3a 00 :.
 
00000a90 <__c.3127>:
a90: 49 3a 25 32 69 2e 25 31 69 41 20 00 I:%2i.%1iA .
 
00000a9c <__c.3125>:
a9c: 20 20 25 35 69 20 20 00 %5i .
 
00000aa4 <__c.3123>:
aa4: 20 20 25 35 69 20 20 00 %5i .
 
00000aac <__c.3120>:
aac: 20 00 .
 
00000aae <__c.3118>:
aae: 43 00 C.
 
00000ab0 <__c.3116>:
ab0: 44 49 52 3a 20 25 33 64 25 63 00 DIR: %3d%c.
 
00000abb <__c.3114>:
abb: 20 20 25 32 69 3a 25 30 32 69 20 20 00 %2i:%02i .
 
00000ac8 <__c.3112>:
ac8: 20 20 25 32 69 3a 25 30 32 69 20 20 00 %2i:%02i .
 
00000ad5 <__c.3108>:
ad5: 41 4c 54 3a 2d 2d 2d 2d 20 00 ALT:---- .
 
00000adf <__c.3106>:
adf: 41 4c 54 3a 25 34 69 6d 20 20 00 ALT:%4im .
 
00000aea <__c.3104>:
aea: 41 4c 54 3a 25 34 69 6d 20 25 63 00 ALT:%4im %c.
 
00000af6 <__c.3102>:
af6: 20 20 25 32 69 2e 25 31 69 56 20 20 00 %2i.%1iV .
 
00000b03 <__c.3100>:
b03: 20 20 25 32 69 2e 25 31 69 56 20 20 00 %2i.%1iV .
 
00000b10 <__c.2991>:
b10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
b20: 20 20 20 20 20 00 .
 
00000b26 <HOTT_ERROR>:
b26: 00 00 05 00 05 00 04 01 06 01 08 00 06 01 02 00 ................
b36: 04 00 04 00 07 00 07 00 07 00 07 00 07 00 07 00 ................
b46: 07 00 03 01 03 01 05 00 17 01 0f 01 06 00 09 01 ................
b56: 0a 01 19 01 05 01 05 01 19 01 1a 01 0f 01 01 00 ................
b66: 09 00 06 00 06 00 ......
 
00000b6c <NC_ERROR_TEXT>:
b6c: 4e 6f 20 45 72 72 6f 72 20 20 20 20 20 20 20 20 No Error
b7c: 00 4e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 20 .Not compatible
b8c: 20 00 4d 4b 33 4d 61 67 20 6e 6f 74 20 63 6f 6d .MK3Mag not com
b9c: 70 61 00 4e 6f 20 46 43 20 63 6f 6d 6d 75 6e 69 pa.No FC communi
bac: 63 61 74 00 43 6f 6d 70 61 73 73 20 63 6f 6d 6d cat.Compass comm
bbc: 75 6e 69 63 00 47 50 53 20 63 6f 6d 6d 75 6e 69 unic.GPS communi
bcc: 63 61 74 69 6f 00 63 6f 6d 70 61 73 73 20 76 61 catio.compass va
bdc: 6c 75 65 20 20 20 00 52 43 20 53 69 67 6e 61 6c lue .RC Signal
bec: 20 6c 6f 73 74 20 20 00 46 43 20 73 70 69 20 72 lost .FC spi r
bfc: 78 20 65 72 72 6f 72 20 00 4e 6f 20 4e 43 20 63 x error .No NC c
c0c: 6f 6d 6d 75 6e 69 63 61 74 00 46 43 20 4e 69 63 ommunicat.FC Nic
c1c: 6b 20 47 79 72 6f 20 20 20 20 00 46 43 20 52 6f k Gyro .FC Ro
c2c: 6c 6c 20 47 79 72 6f 20 20 20 20 00 46 43 20 59 ll Gyro .FC Y
c3c: 61 77 20 47 79 72 6f 20 20 20 20 20 00 46 43 20 aw Gyro .FC
c4c: 4e 69 63 6b 20 41 43 43 20 20 20 20 20 00 46 43 Nick ACC .FC
c5c: 20 52 6f 6c 6c 20 41 43 43 20 20 20 20 20 00 46 Roll ACC .F
c6c: 43 20 5a 2d 41 43 43 20 20 20 20 20 20 20 20 00 C Z-ACC .
c7c: 50 72 65 73 73 75 72 65 20 73 65 6e 73 6f 72 20 Pressure sensor
c8c: 00 49 32 43 20 46 43 2d 3e 42 4c 2d 43 74 72 6c .I2C FC->BL-Ctrl
c9c: 20 00 42 6c 20 4d 69 73 73 69 6e 67 20 20 20 20 .Bl Missing
cac: 20 20 00 4d 69 78 65 72 20 45 72 72 6f 72 20 20 .Mixer Error
cbc: 20 20 20 00 43 61 72 65 66 72 65 65 20 45 72 72 .Carefree Err
ccc: 6f 72 20 20 00 47 50 53 20 46 69 78 20 6c 6f 73 or .GPS Fix los
cdc: 74 20 20 20 20 00 4d 61 67 6e 65 74 20 45 72 72 t .Magnet Err
cec: 6f 72 20 20 20 20 00 4d 6f 74 6f 72 20 72 65 73 or .Motor res
cfc: 74 61 72 74 20 20 20 00 42 4c 20 4c 69 6d 69 74 tart .BL Limit
d0c: 61 74 69 6f 6e 20 20 20 00 47 50 53 20 52 61 6e ation .GPS Ran
d1c: 67 65 20 20 20 20 20 20 20 00 4e 6f 20 53 44 2d ge .No SD-
d2c: 43 61 72 64 20 20 20 20 20 20 00 53 44 2d 4c 6f Card .SD-Lo
d3c: 67 67 69 6e 67 20 65 72 72 6f 72 00 46 6c 79 69 gging error.Flyi
d4c: 6e 67 20 72 61 6e 67 65 21 20 20 20 00 4d 61 78 ng range! .Max
d5c: 20 41 6c 74 69 74 75 64 65 21 20 20 20 00 4e 6f Altitude! .No
d6c: 20 47 50 53 20 66 69 78 20 20 20 20 20 20 00 63 GPS fix .c
d7c: 6f 6d 70 61 73 73 20 6e 6f 74 20 63 61 6c 2e 00 ompass not cal..
d8c: 42 4c 2d 53 65 6c 66 74 65 73 74 20 20 20 20 20 BL-Selftest
d9c: 00 6e 6f 20 65 78 74 2e 20 63 6f 6d 70 61 73 73 .no ext. compass
dac: 20 00 63 6f 6d 70 61 73 73 20 73 65 6e 73 6f 72 .compass sensor
dbc: 20 20 00 .
 
00000dbf <SETTING>:
dbf: 53 65 74 20 20 3a 00 Set :.
 
00000dc6 <BOAT_MODE>:
dc6: 20 4d 69 6b 72 6f 4b 6f 70 74 65 72 20 28 42 6f MikroKopter (Bo
dd6: 61 74 29 20 20 00 at) .
 
00000ddc <SIMULATION>:
ddc: 20 20 53 49 4d 55 4c 41 54 49 4f 4e 20 61 63 74 SIMULATION act
dec: 69 76 65 20 20 00 ive .
 
00000df2 <LANDING>:
df2: 20 21 21 20 20 20 4c 41 4e 44 49 4e 47 20 20 20 !! LANDING
e02: 20 21 21 20 20 00 !! .
 
00000e08 <UNDERVOLTAGE>:
e08: 20 21 21 20 4c 69 50 6f 20 76 6f 6c 74 61 67 65 !! LiPo voltage
e18: 20 21 21 20 20 00 !! .
 
00000e1e <MIKROKOPTER>:
e1e: 20 20 20 20 20 4d 69 6b 72 6f 4b 6f 70 74 65 72 MikroKopter
e2e: 20 20 20 20 20 00 .
 
00000e34 <__c.3126>:
e34: 4e 6f 20 4e 61 76 69 43 74 72 6c 21 00 No NaviCtrl!.
 
00000e41 <__c.3124>:
e41: 48 6f 6d 65 3a 25 33 64 6d 20 25 33 64 25 63 20 Home:%3dm %3d%c
e51: 25 63 00 %c.
 
00000e54 <__c.3122>:
e54: 44 47 50 53 00 DGPS.
 
00000e59 <__c.3120>:
e59: 4e 6f 46 78 00 NoFx.
 
00000e5e <__c.3116>:
e5e: 20 20 33 44 00 3D.
 
00000e63 <__c.3113>:
e63: 25 32 75 6d 2f 73 20 53 61 74 3a 25 64 20 00 %2um/s Sat:%d .
 
00000e72 <__c.3108>:
e72: 20 20 00 .
 
00000e75 <__c.3106>:
e75: 2d 3e 00 ->.
 
00000e78 <__c.3104>:
e78: 2d 2d 2f 2d 2d 00 --/--.
 
00000e7e <__c.3102>:
e7e: 25 32 64 2f 25 64 20 00 %2d/%d .
 
00000e86 <__c.3100>:
e86: 23 25 32 64 20 57 50 73 3a 00 #%2d WPs:.
 
00000e90 <__c.3098>:
e90: 6e 6f 20 47 50 53 2d 46 69 78 00 no GPS-Fix.
 
00000e9b <__c.3096>:
e9b: 6e 6f 20 53 44 2d 43 61 72 64 00 no SD-Card.
 
00000ea6 <__c.3094>:
ea6: 52 65 6c 3a 25 73 00 Rel:%s.
 
00000ead <__c.3092>:
ead: 52 65 6c 61 74 69 76 65 20 57 50 73 20 00 Relative WPs .
 
00000ebb <__c.3085>:
ebb: 20 20 00 .
 
00000ebe <__c.3083>:
ebe: 2d 3e 00 ->.
 
00000ec1 <__c.3081>:
ec1: 2d 2d 2f 2d 2d 00 --/--.
 
00000ec7 <__c.3079>:
ec7: 25 32 64 2f 25 64 20 00 %2d/%d .
 
00000ecf <__c.3077>:
ecf: 23 25 32 64 20 57 50 3a 00 #%2d WP:.
 
00000ed8 <__c.3075>:
ed8: 6e 6f 20 53 44 2d 43 61 72 64 00 no SD-Card.
 
00000ee3 <__c.3073>:
ee3: 46 49 58 3a 25 73 00 FIX:%s.
 
00000eea <__c.3071>:
eea: 46 49 58 20 57 61 79 70 6f 69 6e 74 73 00 FIX Waypoints.
 
00000ef8 <__c.3064>:
ef8: 20 20 00 .
 
00000efb <__c.3062>:
efb: 2d 3e 00 ->.
 
00000efe <__c.3060>:
efe: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
...
 
00000f0f <__c.3058>:
f0f: 44 69 73 74 3a 25 33 64 20 41 6c 74 3a 25 33 64 Dist:%3d Alt:%3d
f1f: 20 00 .
 
00000f21 <__c.3056>:
f21: 25 32 64 00 %2d.
 
00000f25 <__c.3054>:
f25: 6e 6f 20 53 44 2d 43 61 72 64 00 no SD-Card.
 
00000f30 <__c.3052>:
f30: 4c 6f 61 64 20 50 6f 69 6e 74 00 Load Point.
 
00000f3b <__c.3045>:
f3b: 20 20 00 .
 
00000f3e <__c.3043>:
f3e: 2d 3e 00 ->.
 
00000f41 <__c.3041>:
f41: 44 69 72 3a 25 33 64 20 41 6c 74 3a 25 33 64 6d Dir:%3d Alt:%3dm
...
 
00000f52 <__c.3039>:
f52: 25 32 64 00 %2d.
 
00000f56 <__c.3037>:
f56: 6e 6f 20 47 50 53 2d 46 69 78 00 no GPS-Fix.
 
00000f61 <__c.3035>:
f61: 6e 6f 20 53 44 2d 43 61 72 64 00 no SD-Card.
 
00000f6c <__c.3033>:
f6c: 53 61 76 65 20 50 6f 69 6e 74 3a 00 Save Point:.
 
00000f78 <__c.3026>:
f78: 53 61 76 65 20 73 69 6e 67 6c 2e 50 6f 69 6e 74 Save singl.Point
...
 
00000f89 <__c.3021>:
f89: 4c 6f 61 64 20 73 69 6e 67 6c 2e 50 6f 69 6e 74 Load singl.Point
...
 
00000f9a <__c.3016>:
f9a: 28 52 65 6c 61 74 69 76 65 29 20 20 20 00 (Relative) .
 
00000fa8 <__c.3014>:
fa8: 4c 6f 61 64 20 57 61 79 70 6f 69 6e 74 73 00 Load Waypoints.
 
00000fb7 <__c.3009>:
fb7: 28 46 69 78 65 64 29 20 20 20 20 20 20 00 (Fixed) .
 
00000fc5 <__c.3007>:
fc5: 4c 6f 61 64 20 57 61 79 70 6f 69 6e 74 73 00 Load Waypoints.
 
00000fd4 <__c.3002>:
fd4: 49 6e 63 6c 69 2e 3a 25 33 69 25 63 20 28 25 69 Incli.:%3i%c (%i
fe4: 29 20 00 ) .
 
00000fe7 <__c.3000>:
fe7: 4d 61 67 6e 65 74 3a 25 33 69 25 25 20 25 33 69 Magnet:%3i%% %3i
ff7: 25 63 00 %c.
 
00000ffa <__c.2995>:
ffa: 25 34 69 57 20 25 36 69 6d 41 68 00 %4iW %6imAh.
 
00001006 <__c.2993>:
1006: 25 32 69 2e 25 31 69 56 20 25 33 69 2e 25 31 69 %2i.%1iV %3i.%1i
1016: 41 00 A.
 
00001018 <__c.2988>:
1018: 25 63 43 20 20 20 20 20 00 %cC .
 
00001021 <__c.2986>:
1021: 54 65 6d 70 65 72 61 74 75 72 65 73 20 20 20 20 Temperatures
...
 
00001032 <__c.2984>:
1032: 25 33 69 20 25 33 69 20 25 33 69 20 25 33 69 00 %3i %3i %3i %3i.
 
00001042 <__c.2982>:
1042: 25 33 69 20 25 33 69 20 25 33 69 20 25 33 69 00 %3i %3i %3i %3i.
 
00001052 <__c.2977>:
1052: 52 00 R.
 
00001054 <__c.2975>:
1054: 25 34 69 6d 25 63 00 %4im%c.
 
0000105b <__c.2973>:
105b: 25 34 69 20 25 32 69 3a 25 30 32 69 00 %4i %2i:%02i.
 
00001068 <__c.2971>:
1068: 28 42 6f 61 74 2d 4d 6f 64 65 29 00 (Boat-Mode).
 
00001074 <__c.2969>:
1074: 53 65 74 25 64 3a 25 73 00 Set%d:%s.
 
0000107d <__c.2967>:
107d: 53 49 4d 55 4c 41 54 49 4f 4e 00 SIMULATION.
 
00001088 <__c.2965>:
1088: 45 52 52 4f 52 3a 20 25 32 64 20 00 ERROR: %2d .
 
00001094 <__c.2961>:
1094: 53 74 61 74 75 73 20 20 20 20 00 Status .
 
0000109f <__c.2959>:
109f: 25 33 64 25 63 20 25 33 64 6d 25 63 00 %3d%c %3dm%c.
 
000010ac <__c.2957>:
10ac: 25 32 69 2e 25 31 69 56 00 %2i.%1iV.
 
000010b5 <JetiBox_Menu>:
10b5: 08 01 00 00 ea 81 00 02 01 01 b0 7b 01 03 02 02 ...........{....
10c5: 2f 7c 02 04 03 03 35 81 03 05 04 09 ec 7c 04 06 /|....5......|..
10d5: 05 0a 17 7d 05 07 06 0b 42 7d 06 08 07 0c 57 7d ...}....B}....W}
10e5: 07 00 08 06 a8 7c 04 09 09 09 31 7f 05 0a 0a 0a .....|....1.....
10f5: 26 80 06 0b 0b 0b 4c 7e 07 0c 0c 0c 6c 7d &.....L~....l}
 
00001103 <JETI_CODE>:
1103: 00 4f 50 51 52 53 54 53 56 57 48 00 58 59 00 5a .OPQRSTSVWH.XY.Z
1113: 55 45 46 47 48 41 00 49 42 4a 4a 00 00 00 00 00 UEFGHA.IBJJ.....
1123: 00 00 00 00 00 00 44 4c 4d 00 00 00 00 00 4e 00 ......DLM.....N.
1133: 00 00 4b 00 43 ..K.C
 
00001138 <__c.3160>:
1138: 25 31 64 2e 25 30 32 64 20 25 31 64 2e 25 30 32 %1d.%02d %1d.%02
1148: 64 20 25 31 64 2e 25 30 32 64 20 25 31 64 2e 25 d %1d.%02d %1d.%
1158: 30 32 64 00 02d.
 
0000115c <__c.3158>:
115c: 42 4c 20 56 65 72 73 69 6f 6e 73 00 BL Versions.
 
00001168 <__c.3155>:
1168: 31 32 00 12.
 
0000116b <__c.3153>:
116b: 31 31 00 11.
 
0000116e <__c.3151>:
116e: 31 30 00 10.
 
00001171 <__c.3149>:
1171: 20 25 63 20 20 20 2d 20 20 20 2d 20 20 20 2d 20 %c - - -
...
 
00001182 <__c.3147>:
1182: 20 25 63 20 20 20 25 63 20 20 20 25 63 20 20 20 %c %c %c
1192: 25 63 20 00 %c .
 
00001196 <__c.3145>:
1196: 20 25 63 20 20 20 25 63 20 20 20 25 63 20 20 20 %c %c %c
11a6: 25 63 20 00 %c .
 
000011aa <__c.3143>:
11aa: 42 4c 2d 43 74 72 6c 20 66 6f 75 6e 64 20 00 BL-Ctrl found .
 
000011b9 <__c.3137>:
11b9: 25 33 64 20 25 33 64 20 25 33 64 20 25 33 64 20 %3d %3d %3d %3d
...
 
000011ca <__c.3135>:
11ca: 28 69 6e 20 30 2e 31 41 29 00 (in 0.1A).
 
000011d4 <__c.3133>:
11d4: 42 4c 20 43 75 72 72 65 6e 74 00 BL Current.
 
000011df <__c.3127>:
11df: 25 33 64 20 25 33 64 20 25 33 64 20 25 33 64 20 %3d %3d %3d %3d
...
 
000011f0 <__c.3125>:
11f0: 42 4c 20 54 65 6d 70 65 72 61 74 75 72 65 00 BL Temperature.
 
000011ff <__c.3119>:
11ff: 25 33 64 20 25 33 64 20 25 33 64 20 25 33 64 20 %3d %3d %3d %3d
...
 
00001210 <__c.3117>:
1210: 42 4c 2d 43 74 72 6c 20 45 72 72 6f 72 73 20 00 BL-Ctrl Errors .
 
00001220 <__c.3114>:
1220: 52 61 6e 67 65 3a 25 33 69 2d 25 33 69 00 Range:%3i-%3i.
 
0000122e <__c.3112>:
122e: 50 6f 73 69 74 69 6f 6e 3a 20 25 33 69 00 Position: %3i.
 
0000123c <__c.3110>:
123c: 53 65 74 70 6f 69 6e 74 20 20 25 33 69 00 Setpoint %3i.
 
0000124a <__c.3108>:
124a: 53 65 72 76 6f 20 20 00 Servo .
 
00001252 <__c.3105>:
1252: 54 72 75 65 3a 20 20 20 20 20 25 35 69 00 True: %5i.
 
00001260 <__c.3103>:
1260: 47 79 72 6f 3a 20 20 20 20 20 25 35 69 00 Gyro: %5i.
 
0000126e <__c.3101>:
126e: 4d 61 67 6e 65 74 3a 20 20 20 25 35 69 00 Magnet: %5i.
 
0000127c <__c.3099>:
127c: 43 6f 6d 70 61 73 73 00 Compass.
 
00001284 <__c.3096>:
1284: 28 72 65 73 65 74 29 00 (reset).
 
0000128c <__c.3094>:
128c: 41 63 74 3a 20 20 25 35 75 6d 69 6e 00 Act: %5umin.
 
00001299 <__c.3092>:
1299: 54 6f 74 61 6c 3a 25 35 75 6d 69 6e 00 Total:%5umin.
 
000012a6 <__c.3090>:
12a6: 46 6c 69 67 68 74 2d 54 69 6d 65 20 20 00 Flight-Time .
 
000012b4 <__c.3084>:
12b4: 50 6f 74 69 25 69 3a 20 20 25 33 69 00 Poti%i: %3i.
 
000012c1 <__c.3078>:
12c1: 50 6f 74 69 25 69 3a 20 20 25 33 69 00 Poti%i: %3i.
 
000012ce <__c.3075>:
12ce: 4c 61 6e 64 3a 20 25 32 64 2e 25 64 56 00 Land: %2d.%dV.
 
000012dc <__c.3073>:
12dc: 48 6f 6d 65 3a 20 25 32 64 2e 25 64 56 00 Home: %2d.%dV.
 
000012ea <__c.3071>:
12ea: 57 61 72 6e 3a 20 25 32 64 2e 25 64 56 00 Warn: %2d.%dV.
 
000012f8 <__c.3069>:
12f8: 55 6e 64 65 72 76 6f 6c 74 61 67 65 73 20 20 00 Undervoltages .
 
00001308 <__c.3066>:
1308: 52 43 2d 43 68 61 6e 6e 65 6c 73 3a 25 34 69 00 RC-Channels:%4i.
 
00001318 <__c.3064>:
1318: 52 43 2d 51 75 61 6c 69 74 79 3a 20 25 34 69 00 RC-Quality: %4i.
 
00001328 <__c.3062>:
1328: 52 65 63 65 69 76 65 72 00 Receiver.
 
00001331 <__c.3059>:
1331: 44 69 73 63 68 61 72 67 65 3a 20 25 35 69 6d 41 Discharge: %5imA
1341: 68 00 h.
 
00001343 <__c.3057>:
1343: 50 6f 77 65 72 3a 20 20 20 20 20 25 34 69 57 00 Power: %4iW.
 
00001353 <__c.3055>:
1353: 43 75 72 72 65 6e 74 3a 20 20 20 25 33 69 2e 25 Current: %3i.%
1363: 31 69 41 00 1iA.
 
00001367 <__c.3053>:
1367: 56 6f 6c 74 61 67 65 3a 20 20 20 25 33 69 2e 25 Voltage: %3i.%
1377: 31 69 56 00 1iV.
 
0000137b <__c.3050>:
137b: 5a 20 20 20 20 25 34 69 20 28 25 33 69 29 00 Z %4i (%3i).
 
0000138a <__c.3048>:
138a: 52 6f 6c 6c 20 25 34 69 20 28 25 33 69 29 00 Roll %4i (%3i).
 
00001399 <__c.3046>:
1399: 4e 69 63 6b 20 25 34 69 20 28 25 33 69 29 00 Nick %4i (%3i).
 
000013a8 <__c.3044>:
13a8: 41 43 43 20 2d 20 53 65 6e 73 6f 72 00 ACC - Sensor.
 
000013b5 <__c.3041>:
13b5: 59 61 77 20 20 25 34 69 20 28 25 34 69 29 00 Yaw %4i (%4i).
 
000013c4 <__c.3039>:
13c4: 52 6f 6c 6c 20 25 34 69 20 28 25 34 69 29 00 Roll %4i (%4i).
 
000013d3 <__c.3037>:
13d3: 4e 69 63 6b 20 25 34 69 20 28 25 34 69 29 00 Nick %4i (%4i).
 
000013e2 <__c.3035>:
13e2: 47 79 72 6f 20 2d 20 53 65 6e 73 6f 72 00 Gyro - Sensor.
 
000013f0 <__c.3032>:
13f0: 50 33 3a 25 34 69 20 20 50 34 3a 25 34 69 20 00 P3:%4i P4:%4i .
 
00001400 <__c.3030>:
1400: 50 31 3a 25 34 69 20 20 50 32 3a 25 34 69 20 00 P1:%4i P2:%4i .
 
00001410 <__c.3028>:
1410: 47 73 3a 25 34 69 20 20 47 69 3a 25 34 69 20 00 Gs:%4i Gi:%4i .
 
00001420 <__c.3026>:
1420: 4e 69 3a 25 34 69 20 20 52 6f 3a 25 34 69 20 00 Ni:%4i Ro:%4i .
 
00001430 <__c.3020>:
1430: 4b 25 69 3a 25 34 69 20 20 4b 25 69 3a 25 34 69 K%i:%4i K%i:%4i
1440: 20 00 .
 
00001442 <__c.3017>:
1442: 43 6f 6d 70 61 73 73 3a 20 20 20 25 35 69 00 Compass: %5i.
 
00001451 <__c.3015>:
1451: 52 6f 6c 6c 3a 20 20 20 20 20 20 25 35 69 00 Roll: %5i.
 
00001460 <__c.3013>:
1460: 4e 69 63 6b 3a 20 20 20 20 20 20 25 35 69 00 Nick: %5i.
 
0000146f <__c.3011>:
146f: 61 63 74 2e 20 62 65 61 72 69 6e 67 00 act. bearing.
 
0000147c <__c.3008>:
147c: 25 69 00 %i.
 
0000147f <__c.3006>:
147f: 28 41 29 00 (A).
 
00001483 <__c.3004>:
1483: 4f 66 66 73 65 74 3a 20 20 25 35 69 00 Offset: %5i.
 
00001490 <__c.3002>:
1490: 50 72 65 73 73 75 72 65 3a 25 35 69 00 Pressure:%5i.
 
0000149d <__c.3000>:
149d: 53 65 74 70 6f 69 6e 74 3a 25 35 69 00 Setpoint:%5i.
 
000014aa <__c.2998>:
14aa: 48 65 69 67 68 74 3a 20 20 25 35 69 00 Height: %5i.
 
000014b7 <__c.2994>:
14b7: 42 4c 2d 53 65 6c 66 74 65 73 74 20 45 72 72 3a BL-Selftest Err:
14c7: 25 32 64 00 %2d.
 
000014cb <__c.2992>:
14cb: 49 32 43 20 45 52 52 4f 52 21 21 21 00 I2C ERROR!!!.
 
000014d8 <__c.2990>:
14d8: 4d 69 73 73 69 6e 67 20 42 4c 2d 43 74 72 6c 3a Missing BL-Ctrl:
14e8: 25 64 20 21 21 00 %d !!.
 
000014ee <__c.2988>:
14ee: 48 61 72 64 77 61 72 65 20 45 72 72 6f 72 20 31 Hardware Error 1
14fe: 3a 25 64 20 21 21 00 :%d !!.
 
00001505 <__c.2986>:
1505: 45 52 52 25 32 64 3a 00 ERR%2d:.
 
0000150d <__c.2984>:
150d: 4d 69 78 65 72 20 45 72 72 6f 72 21 00 Mixer Error!.
 
0000151a <__c.2982>:
151a: 42 4f 41 54 00 BOAT.
 
0000151f <__c.2980>:
151f: 53 65 74 3a 25 64 20 25 73 00 Set:%d %s.
 
00001529 <__c.2978>:
1529: 48 57 3a 56 25 64 2e 25 64 20 53 57 3a 25 64 2e HW:V%d.%d SW:%d.
1539: 25 30 32 64 25 63 20 00 %02d%c .
 
00001541 <__c.2976>:
1541: 2b 20 4d 69 6b 72 6f 4b 6f 70 74 65 72 20 2b 00 + MikroKopter +.
 
00001551 <__c.2973>:
1551: 5b 25 69 5d 00 [%i].
 
00001556 <__c.2971>:
1556: 5b 25 69 5d 00 [%i].
 
0000155b <pgm_sinlookup>:
155b: 00 00 8f 00 1e 01 ad 01 3b 02 ca 02 58 03 e6 03 ........;...X...
156b: 74 04 02 05 8f 05 1b 06 a7 06 33 07 be 07 48 08 t.........3...H.
157b: d2 08 5b 09 e3 09 6b 0a f2 0a 78 0b fd 0b 81 0c ..[...k...x.....
158b: 04 0d 86 0d 07 0e 87 0e 06 0f 84 0f 00 10 7b 10 ..............{.
159b: f5 10 6e 11 e5 11 5b 12 cf 12 42 13 b3 13 23 14 ..n...[...B...#.
15ab: 92 14 fe 14 6a 15 d3 15 3b 16 a1 16 05 17 67 17 ....j...;.....g.
15bb: c8 17 27 18 83 18 de 18 37 19 8e 19 e3 19 36 1a ..'.....7.....6.
15cb: 87 1a d6 1a 23 1b 6e 1b b6 1b fd 1b 41 1c 83 1c ....#.n.....A...
15db: c3 1c 00 1d 3c 1d 75 1d ab 1d e0 1d 12 1e 42 1e ....<.u.......B.
15eb: 6f 1e 9a 1e c3 1e e9 1e 0d 1f 2e 1f 4d 1f 69 1f o...........M.i.
15fb: 84 1f 9b 1f b0 1f c3 1f d3 1f e1 1f ec 1f f5 1f ................
160b: fb 1f ff 1f 00 20 .....
 
00001611 <__c.3146>:
1611: 56 65 72 73 69 6f 6e 20 67 65 73 65 6e 64 65 74 Version gesendet
...
 
00001622 <__c.3143>:
1622: 21 21 21 20 49 4e 43 4f 4d 50 41 54 49 42 4c 45 !!! INCOMPATIBLE
1632: 20 21 21 21 00 !!!.
 
00001637 <__c.3101>:
1637: 57 72 69 74 69 6e 67 20 42 4c 20 25 64 00 Writing BL %d.
 
00001645 <__c.3095>:
1645: 52 65 61 64 69 6e 67 20 42 4c 20 25 64 00 Reading BL %d.
 
00001653 <__c.3080>:
1653: 4c 65 73 65 20 53 65 74 74 69 6e 67 20 25 64 00 Lese Setting %d.
 
00001663 <__c.3069>:
1663: 4d 69 78 65 72 20 6c 65 73 65 6e 00 Mixer lesen.
 
0000166f <ANALOG_TEXT>:
166f: 41 6e 67 6c 65 4e 69 63 6b 20 20 20 20 20 20 20 AngleNick
167f: 41 6e 67 6c 65 52 6f 6c 6c 20 20 20 20 20 20 20 AngleRoll
168f: 41 63 63 4e 69 63 6b 20 20 20 20 20 20 20 20 20 AccNick
169f: 41 63 63 52 6f 6c 6c 20 20 20 20 20 20 20 20 20 AccRoll
16af: 59 61 77 47 79 72 6f 20 20 20 20 20 20 20 20 20 YawGyro
16bf: 41 6c 74 69 74 75 64 65 20 5b 30 2e 31 6d 5d 20 Altitude [0.1m]
16cf: 41 63 63 5a 20 20 20 20 20 20 20 20 20 20 20 20 AccZ
16df: 47 61 73 20 20 20 20 20 20 20 20 20 20 20 20 20 Gas
16ef: 43 6f 6d 70 61 73 73 20 56 61 6c 75 65 20 20 20 Compass Value
16ff: 56 6f 6c 74 61 67 65 20 5b 30 2e 31 56 5d 20 20 Voltage [0.1V]
170f: 52 65 63 65 69 76 65 72 20 4c 65 76 65 6c 20 20 Receiver Level
171f: 47 79 72 6f 20 43 6f 6d 70 61 73 73 20 20 20 20 Gyro Compass
172f: 4d 6f 74 6f 72 20 31 20 20 20 20 20 20 20 20 20 Motor 1
173f: 4d 6f 74 6f 72 20 32 20 20 20 20 20 20 20 20 20 Motor 2
174f: 4d 6f 74 6f 72 20 33 20 20 20 20 20 20 20 20 20 Motor 3
175f: 4d 6f 74 6f 72 20 34 20 20 20 20 20 20 20 20 20 Motor 4
176f: 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 16
177f: 31 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 17
178f: 31 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 18
179f: 31 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 19
17af: 53 65 72 76 6f 20 20 20 20 20 20 20 20 20 20 20 Servo
17bf: 48 6f 76 65 72 67 61 73 20 20 20 20 20 20 20 20 Hovergas
17cf: 43 75 72 72 65 6e 74 20 5b 30 2e 31 41 5d 20 20 Current [0.1A]
17df: 43 61 70 61 63 69 74 79 20 5b 6d 41 68 5d 20 20 Capacity [mAh]
17ef: 48 65 69 67 68 74 20 53 65 74 70 6f 69 6e 74 20 Height Setpoint
17ff: 32 35 20 20 20 20 20 20 20 20 20 20 20 20 20 20 25
180f: 32 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26
181f: 32 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27
182f: 49 32 43 2d 45 72 72 6f 72 20 20 20 20 20 20 20 I2C-Error
183f: 42 4c 20 4c 69 6d 69 74 20 20 20 20 20 20 20 20 BL Limit
184f: 47 50 53 5f 4e 69 63 6b 20 20 20 20 20 20 20 20 GPS_Nick
185f: 47 50 53 5f 52 6f 6c 6c 20 20 20 20 20 20 20 20 GPS_Roll
 
0000186f <Msg2>:
186f: 0a 0d 77 77 77 2e 4d 69 6b 72 6f 4b 6f 70 74 65 ..www.MikroKopte
187f: 72 2e 64 65 20 28 63 29 20 48 69 53 79 73 74 65 r.de (c) HiSyste
188f: 6d 73 20 47 6d 62 48 00 ms GmbH.
 
00001897 <Msg1>:
1897: 0a 0d 74 68 65 20 75 73 65 20 6f 66 20 74 68 69 ..the use of thi
18a7: 73 20 73 6f 66 74 77 61 72 65 20 69 73 20 6f 6e s software is on
18b7: 6c 79 20 70 65 72 6d 69 74 74 65 64 20 0a 0d 6f ly permitted ..o
18c7: 6e 20 6f 72 69 67 69 6e 61 6c 20 4d 69 6b 72 6f n original Mikro
18d7: 4b 6f 70 74 65 72 2d 48 61 72 64 77 61 72 65 00 Kopter-Hardware.
 
000018e7 <Rec_USER>:
18e7: 55 73 65 72 00 User.
 
000018ec <Rec_HoTT>:
18ec: 48 6f 54 54 20 56 34 00 HoTT V4.
 
000018f4 <Rec_ACT_DSL>:
18f4: 41 43 54 20 44 53 4c 00 ACT DSL.
 
000018fc <Rec_Jeti>:
18fc: 4a 65 74 69 00 Jeti.
 
00001901 <Rec_Spektrum>:
1901: 53 70 65 6b 74 72 75 6d 00 Spektrum.
 
0000190a <Rec_PPM>:
190a: 50 50 4d 00 PPM.
 
0000190e <__c.6>:
190e: 0a 0d 52 65 63 65 69 76 65 72 3a 20 00 ..Receiver: .
 
0000191b <__c.7>:
191b: 53 2e 42 75 73 00 S.Bus.
 
00001921 <__c.8>:
1921: 75 6e 6b 6e 6f 77 6e 2e 20 55 73 69 6e 67 20 50 unknown. Using P
1931: 50 4d 2e 2e 2e 00 PM....
 
00001937 <__c.9>:
1937: 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 62 79 not supported by
1947: 20 68 61 72 64 77 61 72 65 21 00 hardware!.
 
00001952 <__c.3>:
1952: 0a 0d 20 2d 20 4c 49 42 20 4e 4f 54 20 43 4f 4d .. - LIB NOT COM
1962: 50 41 54 49 42 4c 45 20 21 21 21 21 00 PATIBLE !!!!.
 
0000196f <__c.4>:
196f: 0a 0d 0a 0d 21 21 20 42 6f 6f 74 6c 6f 61 64 65 ....!! Bootloade
197f: 72 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 r not compatible
198f: 20 74 6f 20 48 61 72 64 77 61 72 65 20 3e 20 32 to Hardware > 2
199f: 2e 32 20 21 21 0a 0d 0a 0d 00 .2 !!.....
 
000019a9 <__c.5>:
19a9: 0a 0d 46 6c 69 67 68 74 43 6f 6e 74 72 6f 6c 0a ..FlightControl.
19b9: 0d 48 61 72 64 77 61 72 65 3a 25 64 2e 25 64 0a .Hardware:%d.%d.
19c9: 0d 53 6f 66 74 77 61 72 65 3a 56 25 64 2e 25 30 .Software:V%d.%0
19d9: 32 64 25 63 20 00 00 2d%c ..
 
000019e0 <__ctors_end>:
19e0: 11 24 eor r1, r1
19e2: 1f be out 0x3f, r1 ; 63
19e4: cf ef ldi r28, 0xFF ; 255
19e6: d0 e4 ldi r29, 0x40 ; 64
19e8: de bf out 0x3e, r29 ; 62
19ea: cd bf out 0x3d, r28 ; 61
 
000019ec <__do_copy_data>:
19ec: 12 e0 ldi r17, 0x02 ; 2
19ee: a0 e0 ldi r26, 0x00 ; 0
19f0: b1 e0 ldi r27, 0x01 ; 1
19f2: ee ec ldi r30, 0xCE ; 206
19f4: f4 e6 ldi r31, 0x64 ; 100
19f6: 01 e0 ldi r16, 0x01 ; 1
19f8: 0b bf out 0x3b, r16 ; 59
19fa: 02 c0 rjmp .+4 ; 0x1a00 <__do_copy_data+0x14>
19fc: 07 90 elpm r0, Z+
19fe: 0d 92 st X+, r0
1a00: aa 3e cpi r26, 0xEA ; 234
1a02: b1 07 cpc r27, r17
1a04: d9 f7 brne .-10 ; 0x19fc <__do_copy_data+0x10>
 
00001a06 <__do_clear_bss>:
1a06: 2c e0 ldi r18, 0x0C ; 12
1a08: aa ee ldi r26, 0xEA ; 234
1a0a: b2 e0 ldi r27, 0x02 ; 2
1a0c: 01 c0 rjmp .+2 ; 0x1a10 <.do_clear_bss_start>
 
00001a0e <.do_clear_bss_loop>:
1a0e: 1d 92 st X+, r1
 
00001a10 <.do_clear_bss_start>:
1a10: a9 3d cpi r26, 0xD9 ; 217
1a12: b2 07 cpc r27, r18
1a14: e1 f7 brne .-8 ; 0x1a0e <.do_clear_bss_loop>
 
00001a16 <ndfcvbghs>:
1a16: 7a ea ldi r23, 0xAA ; 170
1a18: e2 e0 ldi r30, 0x02 ; 2
1a1a: f0 e0 ldi r31, 0x00 ; 0
1a1c: 81 e2 ldi r24, 0x21 ; 33
1a1e: 80 93 57 00 sts 0x0057, r24
1a22: 14 91 lpm r17, Z
1a24: 20 ef ldi r18, 0xF0 ; 240
1a26: 37 ef ldi r19, 0xF7 ; 247
1a28: 41 e0 ldi r20, 0x01 ; 1
1a2a: 50 e0 ldi r21, 0x00 ; 0
1a2c: c6 e1 ldi r28, 0x16 ; 22
1a2e: d3 e0 ldi r29, 0x03 ; 3
1a30: 6f e0 ldi r22, 0x0F ; 15
1a32: da 01 movw r26, r20
1a34: c9 01 movw r24, r18
1a36: 2f 5f subi r18, 0xFF ; 255
1a38: 3f 4f sbci r19, 0xFF ; 255
1a3a: 4f 4f sbci r20, 0xFF ; 255
1a3c: 5f 4f sbci r21, 0xFF ; 255
1a3e: ab bf out 0x3b, r26 ; 59
1a40: fc 01 movw r30, r24
1a42: 87 91 elpm r24, Z+
1a44: 89 93 st Y+, r24
1a46: 61 50 subi r22, 0x01 ; 1
1a48: 67 ff sbrs r22, 7
1a4a: f3 cf rjmp .-26 ; 0x1a32 <ndfcvbghs+0x1c>
1a4c: 84 ee ldi r24, 0xE4 ; 228
1a4e: 8a bd out 0x2a, r24 ; 42
1a50: 80 91 1e 03 lds r24, 0x031E
1a54: 80 93 ea 02 sts 0x02EA, r24
1a58: 89 31 cpi r24, 0x19 ; 25
1a5a: 38 f0 brcs .+14 ; 0x1a6a <ndfcvbghs+0x54>
1a5c: 86 e0 ldi r24, 0x06 ; 6
1a5e: 80 93 0b 01 sts 0x010B, r24
1a62: 87 e0 ldi r24, 0x07 ; 7
1a64: 80 93 0a 01 sts 0x010A, r24
1a68: 7b ea ldi r23, 0xAB ; 171
1a6a: e6 e1 ldi r30, 0x16 ; 22
1a6c: f3 e0 ldi r31, 0x03 ; 3
1a6e: 6e e0 ldi r22, 0x0E ; 14
1a70: 81 91 ld r24, Z+
1a72: 78 27 eor r23, r24
1a74: 70 95 com r23
1a76: 61 50 subi r22, 0x01 ; 1
1a78: 67 ff sbrs r22, 7
1a7a: fa cf rjmp .-12 ; 0x1a70 <ndfcvbghs+0x5a>
1a7c: 80 91 25 03 lds r24, 0x0325
1a80: 78 17 cp r23, r24
1a82: 21 f0 breq .+8 ; 0x1a8c <ndfcvbghs+0x76>
1a84: 17 39 cpi r17, 0x97 ; 151
1a86: 11 f4 brne .+4 ; 0x1a8c <ndfcvbghs+0x76>
1a88: 00 00 nop
1a8a: fe cf rjmp .-4 ; 0x1a88 <ndfcvbghs+0x72>
1a8c: 0e 94 9e 5a call 0xb53c ; 0xb53c <main>
1a90: 0c 94 65 b2 jmp 0x164ca ; 0x164ca <_exit>
 
00001a94 <__bad_interrupt>:
1a94: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
 
00001a98 <isqrt32>:
 
.global isqrt32
.func isqrt32
 
isqrt32:
clr r0
1a98: 00 24 eor r0, r0
clr r18
1a9a: 22 27 eor r18, r18
clr r19
1a9c: 33 27 eor r19, r19
clr r20
1a9e: 44 27 eor r20, r20
ldi r21, 1
1aa0: 51 e0 ldi r21, 0x01 ; 1
clr r27
1aa2: bb 27 eor r27, r27
clr r30
1aa4: ee 27 eor r30, r30
clr r31
1aa6: ff 27 eor r31, r31
ldi r26, 16
1aa8: a0 e1 ldi r26, 0x10 ; 16
1: lsl r22
1aaa: 66 0f add r22, r22
rol r23
1aac: 77 1f adc r23, r23
rol r24
1aae: 88 1f adc r24, r24
rol r25
1ab0: 99 1f adc r25, r25
rol r0
1ab2: 00 1c adc r0, r0
rol r18
1ab4: 22 1f adc r18, r18
rol r19
1ab6: 33 1f adc r19, r19
rol r20
1ab8: 44 1f adc r20, r20
lsl r22
1aba: 66 0f add r22, r22
rol r23
1abc: 77 1f adc r23, r23
rol r24
1abe: 88 1f adc r24, r24
rol r25
1ac0: 99 1f adc r25, r25
rol r0
1ac2: 00 1c adc r0, r0
rol r18
1ac4: 22 1f adc r18, r18
rol r19
1ac6: 33 1f adc r19, r19
rol r20
1ac8: 44 1f adc r20, r20
brpl 2f
1aca: 2a f4 brpl .+10 ; 0x1ad6 <isqrt32+0x3e>
add r0, r21
1acc: 05 0e add r0, r21
adc r18, r27
1ace: 2b 1f adc r18, r27
adc r19, r30
1ad0: 3e 1f adc r19, r30
adc r20, r31
1ad2: 4f 1f adc r20, r31
rjmp 3f
1ad4: 04 c0 rjmp .+8 ; 0x1ade <isqrt32+0x46>
2: sub r0, r21
1ad6: 05 1a sub r0, r21
sbc r18, r27
1ad8: 2b 0b sbc r18, r27
sbc r19, r30
1ada: 3e 0b sbc r19, r30
sbc r20, r31
1adc: 4f 0b sbc r20, r31
3: lsl r21
1ade: 55 0f add r21, r21
rol r27
1ae0: bb 1f adc r27, r27
rol r30
1ae2: ee 1f adc r30, r30
andi r21, 0b11111000
1ae4: 58 7f andi r21, 0xF8 ; 248
ori r21, 0b00000101
1ae6: 55 60 ori r21, 0x05 ; 5
sbrc r20, 7
1ae8: 47 fd sbrc r20, 7
subi r21, 2
1aea: 52 50 subi r21, 0x02 ; 2
dec r26
1aec: aa 95 dec r26
brne 1b
1aee: e9 f6 brne .-70 ; 0x1aaa <isqrt32+0x12>
lsr r30
1af0: e6 95 lsr r30
ror r27
1af2: b7 95 ror r27
ror r21
1af4: 57 95 ror r21
lsr r30
1af6: e6 95 lsr r30
ror r27
1af8: b7 95 ror r27
ror r21
1afa: 57 95 ror r21
mov r24, r21
1afc: 85 2f mov r24, r21
mov r25, r27
1afe: 9b 2f mov r25, r27
ret
1b00: 08 95 ret
 
00001b02 <isqrt16>:
 
.global isqrt16
.func isqrt16
 
isqrt16:
clr r18
1b02: 22 27 eor r18, r18
clr r19
1b04: 33 27 eor r19, r19
ldi r20, 1
1b06: 41 e0 ldi r20, 0x01 ; 1
clr r21
1b08: 55 27 eor r21, r21
ldi r22, 8
1b0a: 68 e0 ldi r22, 0x08 ; 8
1: lsl r24
1b0c: 88 0f add r24, r24
rol r25
1b0e: 99 1f adc r25, r25
rol r18
1b10: 22 1f adc r18, r18
rol r19
1b12: 33 1f adc r19, r19
lsl r24
1b14: 88 0f add r24, r24
rol r25
1b16: 99 1f adc r25, r25
rol r18
1b18: 22 1f adc r18, r18
rol r19
1b1a: 33 1f adc r19, r19
brpl 2f
1b1c: 1a f4 brpl .+6 ; 0x1b24 <isqrt16+0x22>
add r18, r20
1b1e: 24 0f add r18, r20
adc r19, r21
1b20: 35 1f adc r19, r21
rjmp 3f
1b22: 02 c0 rjmp .+4 ; 0x1b28 <isqrt16+0x26>
2: sub r18, r20
1b24: 24 1b sub r18, r20
sbc r19, r21
1b26: 35 0b sbc r19, r21
3: lsl r20
1b28: 44 0f add r20, r20
rol r21
1b2a: 55 1f adc r21, r21
andi r20, 0b11111000
1b2c: 48 7f andi r20, 0xF8 ; 248
ori r20, 0b00000101
1b2e: 45 60 ori r20, 0x05 ; 5
sbrc r19, 7
1b30: 37 fd sbrc r19, 7
subi r20, 2
1b32: 42 50 subi r20, 0x02 ; 2
dec r22
1b34: 6a 95 dec r22
brne 1b
1b36: 51 f7 brne .-44 ; 0x1b0c <isqrt16+0xa>
lsr r21
1b38: 56 95 lsr r21
ror r20
1b3a: 47 95 ror r20
lsr r21
1b3c: 56 95 lsr r21
ror r20
1b3e: 47 95 ror r20
mov r24, r20
1b40: 84 2f mov r24, r20
ret
1b42: 08 95 ret
 
00001b44 <ihypot>:
 
.global ihypot
.func ihypot
 
ihypot:
clr r26
1b44: aa 27 eor r26, r26
sbrs r25, 7
1b46: 97 ff sbrs r25, 7
rjmp 1f
1b48: 04 c0 rjmp .+8 ; 0x1b52 <ihypot+0xe>
com r24
1b4a: 80 95 com r24
com r25
1b4c: 90 95 com r25
adc r24, r26
1b4e: 8a 1f adc r24, r26
adc r25, r26
1b50: 9a 1f adc r25, r26
1: sbrs r23, 7
1b52: 77 ff sbrs r23, 7
rjmp 2f
1b54: 04 c0 rjmp .+8 ; 0x1b5e <ihypot+0x1a>
com r22
1b56: 60 95 com r22
com r23
1b58: 70 95 com r23
adc r22, r26
1b5a: 6a 1f adc r22, r26
adc r23, r26
1b5c: 7a 1f adc r23, r26
2: mul r22, r22
1b5e: 66 9f mul r22, r22
movw r18, r0
1b60: 90 01 movw r18, r0
mul r23, r23
1b62: 77 9f mul r23, r23
movw r20, r0
1b64: a0 01 movw r20, r0
mul r22, r23
1b66: 67 9f mul r22, r23
add r19, r0
1b68: 30 0d add r19, r0
adc r20, r1
1b6a: 41 1d adc r20, r1
adc r21, r26
1b6c: 5a 1f adc r21, r26
add r19, r0
1b6e: 30 0d add r19, r0
adc r20, r1
1b70: 41 1d adc r20, r1
adc r21, r26
1b72: 5a 1f adc r21, r26
mul r24, r24
1b74: 88 9f mul r24, r24
movw r30, r0
1b76: f0 01 movw r30, r0
mul r25, r25
1b78: 99 9f mul r25, r25
add r18, r30
1b7a: 2e 0f add r18, r30
adc r19, r31
1b7c: 3f 1f adc r19, r31
adc r20, r0
1b7e: 40 1d adc r20, r0
adc r21, r1
1b80: 51 1d adc r21, r1
mul r24, r25
1b82: 89 9f mul r24, r25
add r19, r0
1b84: 30 0d add r19, r0
adc r20, r1
1b86: 41 1d adc r20, r1
adc r21, r26
1b88: 5a 1f adc r21, r26
add r19, r0
1b8a: 30 0d add r19, r0
adc r20, r1
1b8c: 41 1d adc r20, r1
adc r21, r26
1b8e: 5a 1f adc r21, r26
movw r24, r20
1b90: ca 01 movw r24, r20
movw r22, r18
1b92: b9 01 movw r22, r18
clr r1
1b94: 11 24 eor r1, r1
rjmp isqrt32
1b96: 80 cf rjmp .-256 ; 0x1a98 <isqrt32>
 
00001b98 <fomklkdtn89SFGrsgt9rf>:
1b98: 4f b7 in r20, 0x3f ; 63
1b9a: 20 e4 ldi r18, 0x40 ; 64
1b9c: 30 e0 ldi r19, 0x00 ; 0
1b9e: f8 94 cli
1ba0: 80 91 c9 00 lds r24, 0x00C9
1ba4: 8f 77 andi r24, 0x7F ; 127
1ba6: 80 93 c9 00 sts 0x00C9, r24
1baa: 80 91 c9 00 lds r24, 0x00C9
1bae: 8f 7b andi r24, 0xBF ; 191
1bb0: 80 93 c9 00 sts 0x00C9, r24
1bb4: 80 91 c9 00 lds r24, 0x00C9
1bb8: 8f 7d andi r24, 0xDF ; 223
1bba: 80 93 c9 00 sts 0x00C9, r24
1bbe: 83 2f mov r24, r19
1bc0: 99 27 eor r25, r25
1bc2: 80 93 cd 00 sts 0x00CD, r24
1bc6: 20 93 cc 00 sts 0x00CC, r18
1bca: 80 91 c8 00 lds r24, 0x00C8
1bce: 82 60 ori r24, 0x02 ; 2
1bd0: 80 93 c8 00 sts 0x00C8, r24
1bd4: 88 e1 ldi r24, 0x18 ; 24
1bd6: 80 93 c9 00 sts 0x00C9, r24
1bda: 80 91 ca 00 lds r24, 0x00CA
1bde: 8f 77 andi r24, 0x7F ; 127
1be0: 80 93 ca 00 sts 0x00CA, r24
1be4: 80 91 ca 00 lds r24, 0x00CA
1be8: 8f 7b andi r24, 0xBF ; 191
1bea: 80 93 ca 00 sts 0x00CA, r24
1bee: 80 91 ca 00 lds r24, 0x00CA
1bf2: 8f 7d andi r24, 0xDF ; 223
1bf4: 80 93 ca 00 sts 0x00CA, r24
1bf8: 80 91 ca 00 lds r24, 0x00CA
1bfc: 8f 7e andi r24, 0xEF ; 239
1bfe: 80 93 ca 00 sts 0x00CA, r24
1c02: 80 91 ca 00 lds r24, 0x00CA
1c06: 87 7f andi r24, 0xF7 ; 247
1c08: 80 93 ca 00 sts 0x00CA, r24
1c0c: 80 91 c9 00 lds r24, 0x00C9
1c10: 8b 7f andi r24, 0xFB ; 251
1c12: 80 93 c9 00 sts 0x00C9, r24
1c16: 80 91 ca 00 lds r24, 0x00CA
1c1a: 84 60 ori r24, 0x04 ; 4
1c1c: 80 93 ca 00 sts 0x00CA, r24
1c20: 80 91 ca 00 lds r24, 0x00CA
1c24: 82 60 ori r24, 0x02 ; 2
1c26: 80 93 ca 00 sts 0x00CA, r24
1c2a: 80 91 c8 00 lds r24, 0x00C8
1c2e: 87 ff sbrs r24, 7
1c30: 03 c0 rjmp .+6 ; 0x1c38 <fomklkdtn89SFGrsgt9rf+0xa0>
1c32: 80 91 ce 00 lds r24, 0x00CE
1c36: f9 cf rjmp .-14 ; 0x1c2a <fomklkdtn89SFGrsgt9rf+0x92>
1c38: 80 91 c9 00 lds r24, 0x00C9
1c3c: 80 68 ori r24, 0x80 ; 128
1c3e: 80 93 c9 00 sts 0x00C9, r24
1c42: 4f bf out 0x3f, r20 ; 63
1c44: 08 95 ret
 
00001c46 <FGRT0589rge90gj459gg4>:
1c46: 0f 93 push r16
1c48: 1f 93 push r17
1c4a: cf 93 push r28
1c4c: df 93 push r29
1c4e: 48 2f mov r20, r24
1c50: 4f 5f subi r20, 0xFF ; 255
1c52: 89 31 cpi r24, 0x19 ; 25
1c54: 08 f0 brcs .+2 ; 0x1c58 <FGRT0589rge90gj459gg4+0x12>
1c56: 8b c0 rjmp .+278 ; 0x1d6e <FGRT0589rge90gj459gg4+0x128>
1c58: 80 91 30 08 lds r24, 0x0830
1c5c: 84 17 cp r24, r20
1c5e: 20 f4 brcc .+8 ; 0x1c68 <FGRT0589rge90gj459gg4+0x22>
1c60: 4f 5f subi r20, 0xFF ; 255
1c62: 40 93 30 08 sts 0x0830, r20
1c66: 41 50 subi r20, 0x01 ; 1
1c68: cb 01 movw r24, r22
1c6a: 83 53 subi r24, 0x33 ; 51
1c6c: 9b 42 sbci r25, 0x2B ; 43
1c6e: 68 e1 ldi r22, 0x18 ; 24
1c70: 70 e0 ldi r23, 0x00 ; 0
1c72: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
1c76: a4 2f mov r26, r20
1c78: bb 27 eor r27, r27
1c7a: fd 01 movw r30, r26
1c7c: ea 0f add r30, r26
1c7e: fb 1f adc r31, r27
1c80: ef 5c subi r30, 0xCF ; 207
1c82: f7 4f sbci r31, 0xF7 ; 247
1c84: 80 81 ld r24, Z
1c86: 91 81 ldd r25, Z+1 ; 0x01
1c88: 9b 01 movw r18, r22
1c8a: 28 1b sub r18, r24
1c8c: 39 0b sbc r19, r25
1c8e: c9 01 movw r24, r18
1c90: 37 ff sbrs r19, 7
1c92: 03 c0 rjmp .+6 ; 0x1c9a <FGRT0589rge90gj459gg4+0x54>
1c94: 90 95 com r25
1c96: 81 95 neg r24
1c98: 9f 4f sbci r25, 0xFF ; 255
1c9a: 06 97 sbiw r24, 0x06 ; 6
1c9c: 94 f4 brge .+36 ; 0x1cc2 <FGRT0589rge90gj459gg4+0x7c>
1c9e: 80 91 04 04 lds r24, 0x0404
1ca2: 88 3c cpi r24, 0xC8 ; 200
1ca4: 30 f4 brcc .+12 ; 0x1cb2 <FGRT0589rge90gj459gg4+0x6c>
1ca6: 80 91 04 04 lds r24, 0x0404
1caa: 86 5f subi r24, 0xF6 ; 246
1cac: 80 93 04 04 sts 0x0404, r24
1cb0: 08 c0 rjmp .+16 ; 0x1cc2 <FGRT0589rge90gj459gg4+0x7c>
1cb2: 88 ec ldi r24, 0xC8 ; 200
1cb4: 80 93 04 04 sts 0x0404, r24
1cb8: 80 91 6f 00 lds r24, 0x006F
1cbc: 8f 7d andi r24, 0xDF ; 223
1cbe: 80 93 6f 00 sts 0x006F, r24
1cc2: fd 01 movw r30, r26
1cc4: ea 0f add r30, r26
1cc6: fb 1f adc r31, r27
1cc8: ef 5c subi r30, 0xCF ; 207
1cca: f7 4f sbci r31, 0xF7 ; 247
1ccc: 80 81 ld r24, Z
1cce: 91 81 ldd r25, Z+1 ; 0x01
1cd0: 9c 01 movw r18, r24
1cd2: 22 0f add r18, r18
1cd4: 33 1f adc r19, r19
1cd6: 28 0f add r18, r24
1cd8: 39 1f adc r19, r25
1cda: 26 0f add r18, r22
1cdc: 37 1f adc r19, r23
1cde: 37 ff sbrs r19, 7
1ce0: 02 c0 rjmp .+4 ; 0x1ce6 <FGRT0589rge90gj459gg4+0xa0>
1ce2: 2d 5f subi r18, 0xFD ; 253
1ce4: 3f 4f sbci r19, 0xFF ; 255
1ce6: e9 01 movw r28, r18
1ce8: d5 95 asr r29
1cea: c7 95 ror r28
1cec: d5 95 asr r29
1cee: c7 95 ror r28
1cf0: cb 01 movw r24, r22
1cf2: 01 96 adiw r24, 0x01 ; 1
1cf4: 8c 17 cp r24, r28
1cf6: 9d 07 cpc r25, r29
1cf8: 14 f4 brge .+4 ; 0x1cfe <FGRT0589rge90gj459gg4+0xb8>
1cfa: 21 97 sbiw r28, 0x01 ; 1
1cfc: 06 c0 rjmp .+12 ; 0x1d0a <FGRT0589rge90gj459gg4+0xc4>
1cfe: 61 50 subi r22, 0x01 ; 1
1d00: 70 40 sbci r23, 0x00 ; 0
1d02: c6 17 cp r28, r22
1d04: d7 07 cpc r29, r23
1d06: 0c f4 brge .+2 ; 0x1d0a <FGRT0589rge90gj459gg4+0xc4>
1d08: 21 96 adiw r28, 0x01 ; 1
1d0a: 80 91 04 04 lds r24, 0x0404
1d0e: 84 3b cpi r24, 0xB4 ; 180
1d10: d8 f0 brcs .+54 ; 0x1d48 <FGRT0589rge90gj459gg4+0x102>
1d12: 8d 01 movw r16, r26
1d14: 0a 0f add r16, r26
1d16: 1b 1f adc r17, r27
1d18: f8 01 movw r30, r16
1d1a: ef 5c subi r30, 0xCF ; 207
1d1c: f7 4f sbci r31, 0xF7 ; 247
1d1e: 80 81 ld r24, Z
1d20: 91 81 ldd r25, Z+1 ; 0x01
1d22: fe 01 movw r30, r28
1d24: e8 1b sub r30, r24
1d26: f9 0b sbc r31, r25
1d28: cf 01 movw r24, r30
1d2a: 63 e0 ldi r22, 0x03 ; 3
1d2c: 70 e0 ldi r23, 0x00 ; 0
1d2e: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
1d32: cb 01 movw r24, r22
1d34: 88 0f add r24, r24
1d36: 99 1f adc r25, r25
1d38: 86 0f add r24, r22
1d3a: 97 1f adc r25, r23
1d3c: 09 58 subi r16, 0x89 ; 137
1d3e: 17 4f sbci r17, 0xF7 ; 247
1d40: f8 01 movw r30, r16
1d42: 91 83 std Z+1, r25 ; 0x01
1d44: 80 83 st Z, r24
1d46: 07 c0 rjmp .+14 ; 0x1d56 <FGRT0589rge90gj459gg4+0x110>
1d48: aa 0f add r26, r26
1d4a: bb 1f adc r27, r27
1d4c: a9 58 subi r26, 0x89 ; 137
1d4e: b7 4f sbci r27, 0xF7 ; 247
1d50: 11 96 adiw r26, 0x01 ; 1
1d52: 1c 92 st X, r1
1d54: 1e 92 st -X, r1
1d56: e4 2f mov r30, r20
1d58: ff 27 eor r31, r31
1d5a: ee 0f add r30, r30
1d5c: ff 1f adc r31, r31
1d5e: ef 5c subi r30, 0xCF ; 207
1d60: f7 4f sbci r31, 0xF7 ; 247
1d62: d1 83 std Z+1, r29 ; 0x01
1d64: c0 83 st Z, r28
1d66: 44 30 cpi r20, 0x04 ; 4
1d68: 11 f4 brne .+4 ; 0x1d6e <FGRT0589rge90gj459gg4+0x128>
1d6a: 10 92 93 02 sts 0x0293, r1
1d6e: df 91 pop r29
1d70: cf 91 pop r28
1d72: 1f 91 pop r17
1d74: 0f 91 pop r16
1d76: 08 95 ret
 
00001d78 <DFGeefWEF43tgt5uGreg5>:
1d78: cf 93 push r28
1d7a: df 93 push r29
1d7c: 20 91 aa 0c lds r18, 0x0CAA
1d80: 82 2f mov r24, r18
1d82: 99 27 eor r25, r25
1d84: 80 7f andi r24, 0xF0 ; 240
1d86: 90 70 andi r25, 0x00 ; 0
1d88: 40 97 sbiw r24, 0x10 ; 16
1d8a: 09 f0 breq .+2 ; 0x1d8e <DFGeefWEF43tgt5uGreg5+0x16>
1d8c: 64 c0 rjmp .+200 ; 0x1e56 <DFGeefWEF43tgt5uGreg5+0xde>
1d8e: 2f 31 cpi r18, 0x1F ; 31
1d90: 09 f0 breq .+2 ; 0x1d94 <DFGeefWEF43tgt5uGreg5+0x1c>
1d92: 40 c0 rjmp .+128 ; 0x1e14 <DFGeefWEF43tgt5uGreg5+0x9c>
1d94: 80 91 ab 0c lds r24, 0x0CAB
1d98: 80 93 f4 02 sts 0x02F4, r24
1d9c: 90 91 ad 0c lds r25, 0x0CAD
1da0: 90 93 f6 02 sts 0x02F6, r25
1da4: 80 91 ae 0c lds r24, 0x0CAE
1da8: 80 93 f5 02 sts 0x02F5, r24
1dac: 99 23 and r25, r25
1dae: 09 f0 breq .+2 ; 0x1db2 <DFGeefWEF43tgt5uGreg5+0x3a>
1db0: 52 c0 rjmp .+164 ; 0x1e56 <DFGeefWEF43tgt5uGreg5+0xde>
1db2: 80 91 3f 05 lds r24, 0x053F
1db6: 28 2f mov r18, r24
1db8: 33 27 eor r19, r19
1dba: 22 0f add r18, r18
1dbc: 33 1f adc r19, r19
1dbe: f9 01 movw r30, r18
1dc0: e9 58 subi r30, 0x89 ; 137
1dc2: f7 4f sbci r31, 0xF7 ; 247
1dc4: 11 82 std Z+1, r1 ; 0x01
1dc6: 10 82 st Z, r1
1dc8: 80 91 40 05 lds r24, 0x0540
1dcc: a8 2f mov r26, r24
1dce: bb 27 eor r27, r27
1dd0: aa 0f add r26, r26
1dd2: bb 1f adc r27, r27
1dd4: fd 01 movw r30, r26
1dd6: e9 58 subi r30, 0x89 ; 137
1dd8: f7 4f sbci r31, 0xF7 ; 247
1dda: 11 82 std Z+1, r1 ; 0x01
1ddc: 10 82 st Z, r1
1dde: 80 91 42 05 lds r24, 0x0542
1de2: e8 2f mov r30, r24
1de4: ff 27 eor r31, r31
1de6: ee 0f add r30, r30
1de8: ff 1f adc r31, r31
1dea: cf 01 movw r24, r30
1dec: 89 58 subi r24, 0x89 ; 137
1dee: 97 4f sbci r25, 0xF7 ; 247
1df0: ec 01 movw r28, r24
1df2: 19 82 std Y+1, r1 ; 0x01
1df4: 18 82 st Y, r1
1df6: 2f 5c subi r18, 0xCF ; 207
1df8: 37 4f sbci r19, 0xF7 ; 247
1dfa: e9 01 movw r28, r18
1dfc: 19 82 std Y+1, r1 ; 0x01
1dfe: 18 82 st Y, r1
1e00: af 5c subi r26, 0xCF ; 207
1e02: b7 4f sbci r27, 0xF7 ; 247
1e04: 11 96 adiw r26, 0x01 ; 1
1e06: 1c 92 st X, r1
1e08: 1e 92 st -X, r1
1e0a: ef 5c subi r30, 0xCF ; 207
1e0c: f7 4f sbci r31, 0xF7 ; 247
1e0e: 11 82 std Z+1, r1 ; 0x01
1e10: 10 82 st Z, r1
1e12: 21 c0 rjmp .+66 ; 0x1e56 <DFGeefWEF43tgt5uGreg5+0xde>
1e14: c2 2f mov r28, r18
1e16: cf 70 andi r28, 0x0F ; 15
1e18: ca 30 cpi r28, 0x0A ; 10
1e1a: e8 f4 brcc .+58 ; 0x1e56 <DFGeefWEF43tgt5uGreg5+0xde>
1e1c: 80 91 ab 0c lds r24, 0x0CAB
1e20: 80 93 d6 0c sts 0x0CD6, r24
1e24: 80 91 ac 0c lds r24, 0x0CAC
1e28: 80 93 d5 0c sts 0x0CD5, r24
1e2c: 80 91 ad 0c lds r24, 0x0CAD
1e30: 80 93 d8 0c sts 0x0CD8, r24
1e34: 80 91 ae 0c lds r24, 0x0CAE
1e38: 80 93 d7 0c sts 0x0CD7, r24
1e3c: 60 91 d5 0c lds r22, 0x0CD5
1e40: 70 91 d6 0c lds r23, 0x0CD6
1e44: 8c 2f mov r24, r28
1e46: ff de rcall .-514 ; 0x1c46 <FGRT0589rge90gj459gg4>
1e48: 60 91 d7 0c lds r22, 0x0CD7
1e4c: 70 91 d8 0c lds r23, 0x0CD8
1e50: 8c 2f mov r24, r28
1e52: 8f 5f subi r24, 0xFF ; 255
1e54: f8 de rcall .-528 ; 0x1c46 <FGRT0589rge90gj459gg4>
1e56: df 91 pop r29
1e58: cf 91 pop r28
1e5a: 08 95 ret
 
00001e5c <FGtj76uzh56z3grEg5t45>:
1e5c: cf 93 push r28
1e5e: c8 2f mov r28, r24
1e60: 8f 3f cpi r24, 0xFF ; 255
1e62: 49 f4 brne .+18 ; 0x1e76 <FGtj76uzh56z3grEg5t45+0x1a>
1e64: 80 91 f7 02 lds r24, 0x02F7
1e68: 8f 3f cpi r24, 0xFF ; 255
1e6a: 29 f4 brne .+10 ; 0x1e76 <FGtj76uzh56z3grEg5t45+0x1a>
1e6c: 10 92 f9 02 sts 0x02F9, r1
1e70: 10 92 f8 02 sts 0x02F8, r1
1e74: 31 c0 rjmp .+98 ; 0x1ed8 <FGtj76uzh56z3grEg5t45+0x7c>
1e76: 20 91 f9 02 lds r18, 0x02F9
1e7a: 22 23 and r18, r18
1e7c: 39 f4 brne .+14 ; 0x1e8c <FGtj76uzh56z3grEg5t45+0x30>
1e7e: cf 31 cpi r28, 0x1F ; 31
1e80: 11 f4 brne .+4 ; 0x1e86 <FGtj76uzh56z3grEg5t45+0x2a>
1e82: 85 e0 ldi r24, 0x05 ; 5
1e84: 01 c0 rjmp .+2 ; 0x1e88 <FGtj76uzh56z3grEg5t45+0x2c>
1e86: 84 e0 ldi r24, 0x04 ; 4
1e88: 80 93 fa 02 sts 0x02FA, r24
1e8c: 80 91 fa 02 lds r24, 0x02FA
1e90: 90 91 f8 02 lds r25, 0x02F8
1e94: 82 17 cp r24, r18
1e96: 98 f4 brcc .+38 ; 0x1ebe <FGtj76uzh56z3grEg5t45+0x62>
1e98: 89 2f mov r24, r25
1e9a: 80 95 com r24
1e9c: 80 93 f8 02 sts 0x02F8, r24
1ea0: 8f 3f cpi r24, 0xFF ; 255
1ea2: 19 f4 brne .+6 ; 0x1eaa <FGtj76uzh56z3grEg5t45+0x4e>
1ea4: 8e ef ldi r24, 0xFE ; 254
1ea6: 80 93 f8 02 sts 0x02F8, r24
1eaa: 80 91 f8 02 lds r24, 0x02F8
1eae: c8 17 cp r28, r24
1eb0: 09 f4 brne .+2 ; 0x1eb4 <FGtj76uzh56z3grEg5t45+0x58>
1eb2: 62 df rcall .-316 ; 0x1d78 <DFGeefWEF43tgt5uGreg5>
1eb4: 10 92 f9 02 sts 0x02F9, r1
1eb8: 10 92 f8 02 sts 0x02F8, r1
1ebc: 0b c0 rjmp .+22 ; 0x1ed4 <FGtj76uzh56z3grEg5t45+0x78>
1ebe: e2 2f mov r30, r18
1ec0: ff 27 eor r31, r31
1ec2: e6 55 subi r30, 0x56 ; 86
1ec4: f3 4f sbci r31, 0xF3 ; 243
1ec6: c0 83 st Z, r28
1ec8: 2f 5f subi r18, 0xFF ; 255
1eca: 20 93 f9 02 sts 0x02F9, r18
1ece: 9c 0f add r25, r28
1ed0: 90 93 f8 02 sts 0x02F8, r25
1ed4: c0 93 f7 02 sts 0x02F7, r28
1ed8: cf 91 pop r28
1eda: 08 95 ret
 
00001edc <LIBFC_JetiBox_Putchar>:
1edc: 90 91 f3 02 lds r25, 0x02F3
1ee0: 93 32 cpi r25, 0x23 ; 35
1ee2: 40 f4 brcc .+16 ; 0x1ef4 <LIBFC_JetiBox_Putchar+0x18>
1ee4: e9 2f mov r30, r25
1ee6: ff 27 eor r31, r31
1ee8: ee 54 subi r30, 0x4E ; 78
1eea: f3 4f sbci r31, 0xF3 ; 243
1eec: 80 83 st Z, r24
1eee: 9f 5f subi r25, 0xFF ; 255
1ef0: 90 93 f3 02 sts 0x02F3, r25
1ef4: 08 95 ret
 
00001ef6 <LIBFC_JetiBox_SetPos>:
1ef6: 83 32 cpi r24, 0x23 ; 35
1ef8: 18 f4 brcc .+6 ; 0x1f00 <LIBFC_JetiBox_SetPos+0xa>
1efa: 8d 5f subi r24, 0xFD ; 253
1efc: 80 93 f3 02 sts 0x02F3, r24
1f00: 08 95 ret
 
00001f02 <LIBFC_JetiBox_Clear>:
1f02: 90 e2 ldi r25, 0x20 ; 32
1f04: e5 eb ldi r30, 0xB5 ; 181
1f06: fc e0 ldi r31, 0x0C ; 12
1f08: 8f e1 ldi r24, 0x1F ; 31
1f0a: 91 93 st Z+, r25
1f0c: 81 50 subi r24, 0x01 ; 1
1f0e: 87 ff sbrs r24, 7
1f10: fc cf rjmp .-8 ; 0x1f0a <LIBFC_JetiBox_Clear+0x8>
1f12: 08 95 ret
 
00001f14 <INiuzBtergGIBuB76T0G5>:
1f14: cf 93 push r28
1f16: cf b7 in r28, 0x3f ; 63
1f18: 23 e0 ldi r18, 0x03 ; 3
1f1a: 31 e0 ldi r19, 0x01 ; 1
1f1c: f8 94 cli
1f1e: 80 91 c9 00 lds r24, 0x00C9
1f22: 8f 77 andi r24, 0x7F ; 127
1f24: 80 93 c9 00 sts 0x00C9, r24
1f28: 80 91 c9 00 lds r24, 0x00C9
1f2c: 8f 7b andi r24, 0xBF ; 191
1f2e: 80 93 c9 00 sts 0x00C9, r24
1f32: 80 91 c9 00 lds r24, 0x00C9
1f36: 8f 7d andi r24, 0xDF ; 223
1f38: 80 93 c9 00 sts 0x00C9, r24
1f3c: 83 2f mov r24, r19
1f3e: 99 27 eor r25, r25
1f40: 80 93 cd 00 sts 0x00CD, r24
1f44: 20 93 cc 00 sts 0x00CC, r18
1f48: 80 91 c8 00 lds r24, 0x00C8
1f4c: 82 60 ori r24, 0x02 ; 2
1f4e: 80 93 c8 00 sts 0x00C8, r24
1f52: 88 e1 ldi r24, 0x18 ; 24
1f54: 80 93 c9 00 sts 0x00C9, r24
1f58: 80 91 ca 00 lds r24, 0x00CA
1f5c: 8f 77 andi r24, 0x7F ; 127
1f5e: 80 93 ca 00 sts 0x00CA, r24
1f62: 80 91 ca 00 lds r24, 0x00CA
1f66: 8f 7b andi r24, 0xBF ; 191
1f68: 80 93 ca 00 sts 0x00CA, r24
1f6c: 80 91 ca 00 lds r24, 0x00CA
1f70: 80 62 ori r24, 0x20 ; 32
1f72: 80 93 ca 00 sts 0x00CA, r24
1f76: 80 91 ca 00 lds r24, 0x00CA
1f7a: 80 61 ori r24, 0x10 ; 16
1f7c: 80 93 ca 00 sts 0x00CA, r24
1f80: 80 91 ca 00 lds r24, 0x00CA
1f84: 88 60 ori r24, 0x08 ; 8
1f86: 80 93 ca 00 sts 0x00CA, r24
1f8a: 80 91 c9 00 lds r24, 0x00C9
1f8e: 84 60 ori r24, 0x04 ; 4
1f90: 80 93 c9 00 sts 0x00C9, r24
1f94: 80 91 ca 00 lds r24, 0x00CA
1f98: 84 60 ori r24, 0x04 ; 4
1f9a: 80 93 ca 00 sts 0x00CA, r24
1f9e: 80 91 ca 00 lds r24, 0x00CA
1fa2: 82 60 ori r24, 0x02 ; 2
1fa4: 80 93 ca 00 sts 0x00CA, r24
1fa8: 80 91 c8 00 lds r24, 0x00C8
1fac: 87 ff sbrs r24, 7
1fae: 03 c0 rjmp .+6 ; 0x1fb6 <INiuzBtergGIBuB76T0G5+0xa2>
1fb0: 80 91 ce 00 lds r24, 0x00CE
1fb4: f9 cf rjmp .-14 ; 0x1fa8 <INiuzBtergGIBuB76T0G5+0x94>
1fb6: 80 91 c9 00 lds r24, 0x00C9
1fba: 80 68 ori r24, 0x80 ; 128
1fbc: 80 93 c9 00 sts 0x00C9, r24
1fc0: 80 91 c9 00 lds r24, 0x00C9
1fc4: 80 64 ori r24, 0x40 ; 64
1fc6: 80 93 c9 00 sts 0x00C9, r24
1fca: 9b df rcall .-202 ; 0x1f02 <LIBFC_JetiBox_Clear>
1fcc: cf bf out 0x3f, r28 ; 63
1fce: cf 91 pop r28
1fd0: 08 95 ret
 
00001fd2 <KLNMIOHMUHG76GFGr43r3>:
1fd2: 28 2f mov r18, r24
1fd4: 99 27 eor r25, r25
1fd6: 8f 70 andi r24, 0x0F ; 15
1fd8: 90 70 andi r25, 0x00 ; 0
1fda: 89 2b or r24, r25
1fdc: 31 f4 brne .+12 ; 0x1fea <KLNMIOHMUHG76GFGr43r3+0x18>
1fde: 20 95 com r18
1fe0: 80 91 f2 02 lds r24, 0x02F2
1fe4: 82 2b or r24, r18
1fe6: 80 93 f2 02 sts 0x02F2, r24
1fea: 08 95 ret
 
00001fec <__vector_30>:
1fec: 1f 92 push r1
1fee: 0f 92 push r0
1ff0: 0f b6 in r0, 0x3f ; 63
1ff2: 0f 92 push r0
1ff4: 11 24 eor r1, r1
1ff6: 8f 93 push r24
1ff8: ef 93 push r30
1ffa: ff 93 push r31
1ffc: 80 91 06 01 lds r24, 0x0106
2000: 88 23 and r24, r24
2002: 09 f0 breq .+2 ; 0x2006 <__vector_30+0x1a>
2004: 68 c0 rjmp .+208 ; 0x20d6 <__vector_30+0xea>
2006: e0 91 fc 02 lds r30, 0x02FC
200a: ee 23 and r30, r30
200c: 89 f4 brne .+34 ; 0x2030 <__vector_30+0x44>
200e: 80 91 fb 02 lds r24, 0x02FB
2012: 88 23 and r24, r24
2014: 69 f4 brne .+26 ; 0x2030 <__vector_30+0x44>
2016: 80 91 b2 0c lds r24, 0x0CB2
201a: 88 23 and r24, r24
201c: 21 f0 breq .+8 ; 0x2026 <__vector_30+0x3a>
201e: 81 e0 ldi r24, 0x01 ; 1
2020: 80 93 fd 02 sts 0x02FD, r24
2024: 05 c0 rjmp .+10 ; 0x2030 <__vector_30+0x44>
2026: 80 91 c9 00 lds r24, 0x00C9
202a: 81 60 ori r24, 0x01 ; 1
202c: 80 93 c9 00 sts 0x00C9, r24
2030: 80 91 fd 02 lds r24, 0x02FD
2034: 88 23 and r24, r24
2036: 79 f4 brne .+30 ; 0x2056 <__vector_30+0x6a>
2038: ef 5f subi r30, 0xFF ; 255
203a: e0 93 fc 02 sts 0x02FC, r30
203e: 80 91 89 0c lds r24, 0x0C89
2042: 8e 17 cp r24, r30
2044: 20 f4 brcc .+8 ; 0x204e <__vector_30+0x62>
2046: 81 e0 ldi r24, 0x01 ; 1
2048: 80 93 fd 02 sts 0x02FD, r24
204c: 1c c0 rjmp .+56 ; 0x2086 <__vector_30+0x9a>
204e: ff 27 eor r31, r31
2050: e7 57 subi r30, 0x77 ; 119
2052: f3 4f sbci r31, 0xF3 ; 243
2054: 3c c0 rjmp .+120 ; 0x20ce <__vector_30+0xe2>
2056: 80 91 fb 02 lds r24, 0x02FB
205a: 88 23 and r24, r24
205c: 61 f4 brne .+24 ; 0x2076 <__vector_30+0x8a>
205e: 80 91 b2 0c lds r24, 0x0CB2
2062: 88 23 and r24, r24
2064: 11 f4 brne .+4 ; 0x206a <__vector_30+0x7e>
2066: 83 e0 ldi r24, 0x03 ; 3
2068: 03 c0 rjmp .+6 ; 0x2070 <__vector_30+0x84>
206a: 81 39 cpi r24, 0x91 ; 145
206c: 99 f4 brne .+38 ; 0x2094 <__vector_30+0xa8>
206e: 81 e0 ldi r24, 0x01 ; 1
2070: 80 93 fb 02 sts 0x02FB, r24
2074: 0f c0 rjmp .+30 ; 0x2094 <__vector_30+0xa8>
2076: 83 30 cpi r24, 0x03 ; 3
2078: 99 f4 brne .+38 ; 0x20a0 <__vector_30+0xb4>
207a: 80 91 b2 0c lds r24, 0x0CB2
207e: 88 23 and r24, r24
2080: 49 f0 breq .+18 ; 0x2094 <__vector_30+0xa8>
2082: 10 92 b2 0c sts 0x0CB2, r1
2086: 80 91 c9 00 lds r24, 0x00C9
208a: 8e 7f andi r24, 0xFE ; 254
208c: 80 93 c9 00 sts 0x00C9, r24
2090: 8e ef ldi r24, 0xFE ; 254
2092: 1e c0 rjmp .+60 ; 0x20d0 <__vector_30+0xe4>
2094: 80 91 c9 00 lds r24, 0x00C9
2098: 81 60 ori r24, 0x01 ; 1
209a: 80 93 c9 00 sts 0x00C9, r24
209e: 0e c0 rjmp .+28 ; 0x20bc <__vector_30+0xd0>
20a0: 83 32 cpi r24, 0x23 ; 35
20a2: 61 f4 brne .+24 ; 0x20bc <__vector_30+0xd0>
20a4: 80 91 c9 00 lds r24, 0x00C9
20a8: 8e 7f andi r24, 0xFE ; 254
20aa: 80 93 c9 00 sts 0x00C9, r24
20ae: 8f ef ldi r24, 0xFF ; 255
20b0: 80 93 ce 00 sts 0x00CE, r24
20b4: 81 e0 ldi r24, 0x01 ; 1
20b6: 80 93 06 01 sts 0x0106, r24
20ba: 18 c0 rjmp .+48 ; 0x20ec <__vector_30+0x100>
20bc: 80 91 fb 02 lds r24, 0x02FB
20c0: e8 2f mov r30, r24
20c2: ff 27 eor r31, r31
20c4: ee 54 subi r30, 0x4E ; 78
20c6: f3 4f sbci r31, 0xF3 ; 243
20c8: 8f 5f subi r24, 0xFF ; 255
20ca: 80 93 fb 02 sts 0x02FB, r24
20ce: 80 81 ld r24, Z
20d0: 80 93 ce 00 sts 0x00CE, r24
20d4: 0b c0 rjmp .+22 ; 0x20ec <__vector_30+0x100>
20d6: 10 92 fb 02 sts 0x02FB, r1
20da: 10 92 fc 02 sts 0x02FC, r1
20de: 10 92 fd 02 sts 0x02FD, r1
20e2: 80 91 c9 00 lds r24, 0x00C9
20e6: 80 61 ori r24, 0x10 ; 16
20e8: 80 93 c9 00 sts 0x00C9, r24
20ec: ff 91 pop r31
20ee: ef 91 pop r30
20f0: 8f 91 pop r24
20f2: 0f 90 pop r0
20f4: 0f be out 0x3f, r0 ; 63
20f6: 0f 90 pop r0
20f8: 1f 90 pop r1
20fa: 18 95 reti
 
000020fc <update_crc>:
20fc: 68 27 eor r22, r24
20fe: 27 e0 ldi r18, 0x07 ; 7
2100: 32 2f mov r19, r18
2102: 67 ff sbrs r22, 7
2104: 06 c0 rjmp .+12 ; 0x2112 <update_crc+0x16>
2106: 86 2f mov r24, r22
2108: 99 27 eor r25, r25
210a: 88 0f add r24, r24
210c: 99 1f adc r25, r25
210e: 83 27 eor r24, r19
2110: 02 c0 rjmp .+4 ; 0x2116 <update_crc+0x1a>
2112: 86 2f mov r24, r22
2114: 88 0f add r24, r24
2116: 68 2f mov r22, r24
2118: 21 50 subi r18, 0x01 ; 1
211a: 27 ff sbrs r18, 7
211c: f2 cf rjmp .-28 ; 0x2102 <update_crc+0x6>
211e: 99 27 eor r25, r25
2120: 08 95 ret
 
00002122 <crc8>:
2122: 0f 93 push r16
2124: 1f 93 push r17
2126: cf 93 push r28
2128: df 93 push r29
212a: 06 2f mov r16, r22
212c: 60 e0 ldi r22, 0x00 ; 0
212e: 16 2f mov r17, r22
2130: 60 17 cp r22, r16
2132: 38 f4 brcc .+14 ; 0x2142 <crc8+0x20>
2134: ec 01 movw r28, r24
2136: 89 91 ld r24, Y+
2138: e1 df rcall .-62 ; 0x20fc <update_crc>
213a: 68 2f mov r22, r24
213c: 1f 5f subi r17, 0xFF ; 255
213e: 10 17 cp r17, r16
2140: d0 f3 brcs .-12 ; 0x2136 <crc8+0x14>
2142: 86 2f mov r24, r22
2144: 99 27 eor r25, r25
2146: df 91 pop r29
2148: cf 91 pop r28
214a: 1f 91 pop r17
214c: 0f 91 pop r16
214e: 08 95 ret
 
00002150 <JetiEX_GetLength>:
2150: dc 01 movw r26, r24
2152: 90 e0 ldi r25, 0x00 ; 0
2154: 96 17 cp r25, r22
2156: 58 f4 brcc .+22 ; 0x216e <JetiEX_GetLength+0x1e>
2158: 8c 91 ld r24, X
215a: 80 32 cpi r24, 0x20 ; 32
215c: 41 f0 breq .+16 ; 0x216e <JetiEX_GetLength+0x1e>
215e: 9f 5f subi r25, 0xFF ; 255
2160: 96 17 cp r25, r22
2162: 28 f4 brcc .+10 ; 0x216e <JetiEX_GetLength+0x1e>
2164: fd 01 movw r30, r26
2166: e9 0f add r30, r25
2168: f1 1d adc r31, r1
216a: 80 81 ld r24, Z
216c: f6 cf rjmp .-20 ; 0x215a <JetiEX_GetLength+0xa>
216e: 89 2f mov r24, r25
2170: 99 27 eor r25, r25
2172: 08 95 ret
 
00002174 <JetiEX_CreatePacket>:
2174: a0 e0 ldi r26, 0x00 ; 0
2176: b0 e0 ldi r27, 0x00 ; 0
2178: e0 ec ldi r30, 0xC0 ; 192
217a: f0 e1 ldi r31, 0x10 ; 16
217c: 0c 94 e1 b1 jmp 0x163c2 ; 0x163c2 <__prologue_saves__+0x12>
2180: 8f e9 ldi r24, 0x9F ; 159
2182: 80 93 8a 0c sts 0x0C8A, r24
2186: 80 e1 ldi r24, 0x10 ; 16
2188: 80 93 8c 0c sts 0x0C8C, r24
218c: 84 ea ldi r24, 0xA4 ; 164
218e: 80 93 8d 0c sts 0x0C8D, r24
2192: 85 e5 ldi r24, 0x55 ; 85
2194: 80 93 8e 0c sts 0x0C8E, r24
2198: 8d e5 ldi r24, 0x5D ; 93
219a: 80 93 8f 0c sts 0x0C8F, r24
219e: 10 92 90 0c sts 0x0C90, r1
21a2: 80 91 ff 02 lds r24, 0x02FF
21a6: 88 23 and r24, r24
21a8: 09 f0 breq .+2 ; 0x21ac <JetiEX_CreatePacket+0x38>
21aa: 67 c0 rjmp .+206 ; 0x227a <JetiEX_CreatePacket+0x106>
21ac: 80 91 fe 02 lds r24, 0x02FE
21b0: 13 e1 ldi r17, 0x13 ; 19
21b2: 81 9f mul r24, r17
21b4: c0 01 movw r24, r0
21b6: 11 24 eor r1, r1
21b8: 63 e0 ldi r22, 0x03 ; 3
21ba: 88 59 subi r24, 0x98 ; 152
21bc: 9e 4f sbci r25, 0xFE ; 254
21be: c8 df rcall .-112 ; 0x2150 <JetiEX_GetLength>
21c0: 08 2f mov r16, r24
21c2: 80 91 fe 02 lds r24, 0x02FE
21c6: 81 9f mul r24, r17
21c8: c0 01 movw r24, r0
21ca: 11 24 eor r1, r1
21cc: 6a e0 ldi r22, 0x0A ; 10
21ce: 82 5a subi r24, 0xA2 ; 162
21d0: 9e 4f sbci r25, 0xFE ; 254
21d2: be df rcall .-132 ; 0x2150 <JetiEX_GetLength>
21d4: 98 2f mov r25, r24
21d6: 80 0f add r24, r16
21d8: 86 5f subi r24, 0xF6 ; 246
21da: 80 93 89 0c sts 0x0C89, r24
21de: 2e ef ldi r18, 0xFE ; 254
21e0: b2 2e mov r11, r18
21e2: b8 0e add r11, r24
21e4: b0 92 8b 0c sts 0x0C8B, r11
21e8: 20 91 fe 02 lds r18, 0x02FE
21ec: 20 93 91 0c sts 0x0C91, r18
21f0: e9 2e mov r14, r25
21f2: ff 24 eor r15, r15
21f4: c7 01 movw r24, r14
21f6: 13 e0 ldi r17, 0x03 ; 3
21f8: 88 0f add r24, r24
21fa: 99 1f adc r25, r25
21fc: 1a 95 dec r17
21fe: e1 f7 brne .-8 ; 0x21f8 <JetiEX_CreatePacket+0x84>
2200: 80 2b or r24, r16
2202: 80 93 92 0c sts 0x0C92, r24
2206: 82 2f mov r24, r18
2208: 99 27 eor r25, r25
220a: c3 e1 ldi r28, 0x13 ; 19
220c: cc 2e mov r12, r28
220e: d1 2c mov r13, r1
2210: 8c 9d mul r24, r12
2212: 90 01 movw r18, r0
2214: 8d 9d mul r24, r13
2216: 30 0d add r19, r0
2218: 9c 9d mul r25, r12
221a: 30 0d add r19, r0
221c: 11 24 eor r1, r1
221e: c9 01 movw r24, r18
2220: 82 5a subi r24, 0xA2 ; 162
2222: 9e 4f sbci r25, 0xFE ; 254
2224: a7 01 movw r20, r14
2226: bc 01 movw r22, r24
2228: 83 e9 ldi r24, 0x93 ; 147
222a: 9c e0 ldi r25, 0x0C ; 12
222c: 0e 94 25 b2 call 0x1644a ; 0x1644a <memcpy>
2230: 11 27 eor r17, r17
2232: 80 91 fe 02 lds r24, 0x02FE
2236: 99 27 eor r25, r25
2238: 8c 9d mul r24, r12
223a: e0 01 movw r28, r0
223c: 8d 9d mul r24, r13
223e: d0 0d add r29, r0
2240: 9c 9d mul r25, r12
2242: d0 0d add r29, r0
2244: 11 24 eor r1, r1
2246: ce 01 movw r24, r28
2248: 88 59 subi r24, 0x98 ; 152
224a: 9e 4f sbci r25, 0xFE ; 254
224c: a8 01 movw r20, r16
224e: bc 01 movw r22, r24
2250: c7 01 movw r24, r14
2252: 8d 56 subi r24, 0x6D ; 109
2254: 93 4f sbci r25, 0xF3 ; 243
2256: 0e 94 25 b2 call 0x1644a ; 0x1644a <memcpy>
225a: 07 57 subi r16, 0x77 ; 119
225c: 13 4f sbci r17, 0xF3 ; 243
225e: 0e 0d add r16, r14
2260: 1f 1d adc r17, r15
2262: 6b 2d mov r22, r11
2264: 8b e8 ldi r24, 0x8B ; 139
2266: 9c e0 ldi r25, 0x0C ; 12
2268: 5c df rcall .-328 ; 0x2122 <crc8>
226a: f8 01 movw r30, r16
226c: 82 87 std Z+10, r24 ; 0x0a
226e: 80 91 ff 02 lds r24, 0x02FF
2272: 8f 5f subi r24, 0xFF ; 255
2274: 80 93 ff 02 sts 0x02FF, r24
2278: 92 c0 rjmp .+292 ; 0x239e <JetiEX_CreatePacket+0x22a>
227a: c0 90 90 0c lds r12, 0x0C90
227e: 1c 2d mov r17, r12
2280: 0e 94 b8 84 call 0x10970 ; 0x10970 <JetiEX_Update>
2284: 30 91 07 01 lds r19, 0x0107
2288: 30 31 cpi r19, 0x10 ; 16
228a: 08 f0 brcs .+2 ; 0x228e <JetiEX_CreatePacket+0x11a>
228c: 58 c0 rjmp .+176 ; 0x233e <JetiEX_CreatePacket+0x1ca>
228e: b3 e1 ldi r27, 0x13 ; 19
2290: eb 2e mov r14, r27
2292: f1 2c mov r15, r1
2294: 63 2f mov r22, r19
2296: 81 2f mov r24, r17
2298: 99 27 eor r25, r25
229a: fc 01 movw r30, r24
229c: ee 0f add r30, r30
229e: ff 1f adc r31, r31
22a0: e8 0f add r30, r24
22a2: f9 1f adc r31, r25
22a4: ec 0d add r30, r12
22a6: f1 1d adc r31, r1
22a8: e7 57 subi r30, 0x77 ; 119
22aa: f3 4f sbci r31, 0xF3 ; 243
22ac: 83 2f mov r24, r19
22ae: 99 27 eor r25, r25
22b0: 8e 9d mul r24, r14
22b2: d0 01 movw r26, r0
22b4: 8f 9d mul r24, r15
22b6: b0 0d add r27, r0
22b8: 9e 9d mul r25, r14
22ba: b0 0d add r27, r0
22bc: 11 24 eor r1, r1
22be: a2 5a subi r26, 0xA2 ; 162
22c0: be 4f sbci r27, 0xFE ; 254
22c2: ed 01 movw r28, r26
22c4: 2d 85 ldd r18, Y+13 ; 0x0d
22c6: 74 e0 ldi r23, 0x04 ; 4
22c8: 88 0f add r24, r24
22ca: 99 1f adc r25, r25
22cc: 7a 95 dec r23
22ce: e1 f7 brne .-8 ; 0x22c8 <JetiEX_CreatePacket+0x154>
22d0: 28 2b or r18, r24
22d2: 20 87 std Z+8, r18 ; 0x08
22d4: 3e 30 cpi r19, 0x0E ; 14
22d6: 88 f4 brcc .+34 ; 0x22fa <JetiEX_CreatePacket+0x186>
22d8: 2e 85 ldd r18, Y+14 ; 0x0e
22da: 3f 85 ldd r19, Y+15 ; 0x0f
22dc: 3f 79 andi r19, 0x9F ; 159
22de: 8a 89 ldd r24, Y+18 ; 0x12
22e0: 99 27 eor r25, r25
22e2: 98 2f mov r25, r24
22e4: 88 27 eor r24, r24
22e6: 92 95 swap r25
22e8: 99 0f add r25, r25
22ea: 90 7e andi r25, 0xE0 ; 224
22ec: 28 2b or r18, r24
22ee: 39 2b or r19, r25
22f0: 21 87 std Z+9, r18 ; 0x09
22f2: 83 2f mov r24, r19
22f4: 99 27 eor r25, r25
22f6: 82 87 std Z+10, r24 ; 0x0a
22f8: 16 c0 rjmp .+44 ; 0x2326 <JetiEX_CreatePacket+0x1b2>
22fa: ed 01 movw r28, r26
22fc: 2e 85 ldd r18, Y+14 ; 0x0e
22fe: 3f 85 ldd r19, Y+15 ; 0x0f
2300: 48 89 ldd r20, Y+16 ; 0x10
2302: 59 89 ldd r21, Y+17 ; 0x11
2304: 21 87 std Z+9, r18 ; 0x09
2306: bb 27 eor r27, r27
2308: a5 2f mov r26, r21
230a: 94 2f mov r25, r20
230c: 83 2f mov r24, r19
230e: 82 87 std Z+10, r24 ; 0x0a
2310: ca 01 movw r24, r20
2312: aa 27 eor r26, r26
2314: bb 27 eor r27, r27
2316: 83 87 std Z+11, r24 ; 0x0b
2318: 85 2f mov r24, r21
231a: 99 27 eor r25, r25
231c: aa 27 eor r26, r26
231e: bb 27 eor r27, r27
2320: 84 87 std Z+12, r24 ; 0x0c
2322: e2 e0 ldi r30, 0x02 ; 2
2324: ce 0e add r12, r30
2326: 86 2f mov r24, r22
2328: 8f 5f subi r24, 0xFF ; 255
232a: 68 2f mov r22, r24
232c: 1f 5f subi r17, 0xFF ; 255
232e: 16 30 cpi r17, 0x06 ; 6
2330: 20 f4 brcc .+8 ; 0x233a <JetiEX_CreatePacket+0x1c6>
2332: 38 2f mov r19, r24
2334: 80 31 cpi r24, 0x10 ; 16
2336: 08 f4 brcc .+2 ; 0x233a <JetiEX_CreatePacket+0x1c6>
2338: ae cf rjmp .-164 ; 0x2296 <JetiEX_CreatePacket+0x122>
233a: 80 93 07 01 sts 0x0107, r24
233e: 83 e0 ldi r24, 0x03 ; 3
2340: 18 9f mul r17, r24
2342: c0 01 movw r24, r0
2344: 11 24 eor r1, r1
2346: 2c 2d mov r18, r12
2348: 28 0f add r18, r24
234a: 28 5f subi r18, 0xF8 ; 248
234c: 20 93 89 0c sts 0x0C89, r18
2350: 22 5c subi r18, 0xC2 ; 194
2352: 20 93 8b 0c sts 0x0C8B, r18
2356: 81 2f mov r24, r17
2358: 99 27 eor r25, r25
235a: 8c 01 movw r16, r24
235c: 00 0f add r16, r16
235e: 11 1f adc r17, r17
2360: 08 0f add r16, r24
2362: 19 1f adc r17, r25
2364: 0c 0d add r16, r12
2366: 11 1d adc r17, r1
2368: 07 57 subi r16, 0x77 ; 119
236a: 13 4f sbci r17, 0xF3 ; 243
236c: 20 54 subi r18, 0x40 ; 64
236e: 62 2f mov r22, r18
2370: 8b e8 ldi r24, 0x8B ; 139
2372: 9c e0 ldi r25, 0x0C ; 12
2374: d6 de rcall .-596 ; 0x2122 <crc8>
2376: e8 01 movw r28, r16
2378: 88 87 std Y+8, r24 ; 0x08
237a: 80 91 07 01 lds r24, 0x0107
237e: 80 31 cpi r24, 0x10 ; 16
2380: 70 f0 brcs .+28 ; 0x239e <JetiEX_CreatePacket+0x22a>
2382: 81 e0 ldi r24, 0x01 ; 1
2384: 80 93 07 01 sts 0x0107, r24
2388: 10 92 ff 02 sts 0x02FF, r1
238c: 80 91 fe 02 lds r24, 0x02FE
2390: 8f 5f subi r24, 0xFF ; 255
2392: 80 93 fe 02 sts 0x02FE, r24
2396: 80 31 cpi r24, 0x10 ; 16
2398: 10 f0 brcs .+4 ; 0x239e <JetiEX_CreatePacket+0x22a>
239a: 10 92 fe 02 sts 0x02FE, r1
239e: e9 e0 ldi r30, 0x09 ; 9
23a0: cd b7 in r28, 0x3d ; 61
23a2: de b7 in r29, 0x3e ; 62
23a4: 0c 94 fd b1 jmp 0x163fa ; 0x163fa <__epilogue_restores__+0x12>
 
000023a8 <a48784362857632195659>:
23a8: 80 91 06 01 lds r24, 0x0106
23ac: 88 23 and r24, r24
23ae: 09 f4 brne .+2 ; 0x23b2 <a48784362857632195659+0xa>
23b0: 46 c0 rjmp .+140 ; 0x243e <a48784362857632195659+0x96>
23b2: 80 91 cb 03 lds r24, 0x03CB
23b6: 85 fd sbrc r24, 5
23b8: 04 c0 rjmp .+8 ; 0x23c2 <a48784362857632195659+0x1a>
23ba: 80 91 5c 04 lds r24, 0x045C
23be: 88 23 and r24, r24
23c0: 81 f0 breq .+32 ; 0x23e2 <a48784362857632195659+0x3a>
23c2: 82 e9 ldi r24, 0x92 ; 146
23c4: 80 93 b2 0c sts 0x0CB2, r24
23c8: 83 e2 ldi r24, 0x23 ; 35
23ca: 80 93 b3 0c sts 0x0CB3, r24
23ce: 80 91 5c 04 lds r24, 0x045C
23d2: 88 23 and r24, r24
23d4: 09 f4 brne .+2 ; 0x23d8 <a48784362857632195659+0x30>
23d6: 85 e5 ldi r24, 0x55 ; 85
23d8: 80 93 b4 0c sts 0x0CB4, r24
23dc: 10 92 5c 04 sts 0x045C, r1
23e0: 02 c0 rjmp .+4 ; 0x23e6 <a48784362857632195659+0x3e>
23e2: 80 93 b2 0c sts 0x0CB2, r24
23e6: 80 91 08 01 lds r24, 0x0108
23ea: 8f 30 cpi r24, 0x0F ; 15
23ec: 71 f4 brne .+28 ; 0x240a <a48784362857632195659+0x62>
23ee: 80 91 f2 02 lds r24, 0x02F2
23f2: 0e 94 ad 83 call 0x1075a ; 0x1075a <JetiBox_Update>
23f6: 88 23 and r24, r24
23f8: 41 f0 breq .+16 ; 0x240a <a48784362857632195659+0x62>
23fa: 81 e9 ldi r24, 0x91 ; 145
23fc: 80 93 b2 0c sts 0x0CB2, r24
2400: 80 93 b3 0c sts 0x0CB3, r24
2404: 81 e3 ldi r24, 0x31 ; 49
2406: 80 93 b4 0c sts 0x0CB4, r24
240a: 10 92 06 01 sts 0x0106, r1
240e: 80 91 c8 00 lds r24, 0x00C8
2412: 85 ff sbrs r24, 5
2414: fc cf rjmp .-8 ; 0x240e <a48784362857632195659+0x66>
2416: 80 91 c9 00 lds r24, 0x00C9
241a: 8f 7e andi r24, 0xEF ; 239
241c: 80 93 c9 00 sts 0x00C9, r24
2420: 80 91 c9 00 lds r24, 0x00C9
2424: 8e 7f andi r24, 0xFE ; 254
2426: 80 93 c9 00 sts 0x00C9, r24
242a: a4 de rcall .-696 ; 0x2174 <JetiEX_CreatePacket>
242c: 8e e7 ldi r24, 0x7E ; 126
242e: 80 93 ce 00 sts 0x00CE, r24
2432: 80 91 f2 02 lds r24, 0x02F2
2436: 80 93 08 01 sts 0x0108, r24
243a: 10 92 f2 02 sts 0x02F2, r1
243e: 08 95 ret
 
00002440 <njkvnfuhgbuzrgezgf483>:
2440: ef 92 push r14
2442: ff 92 push r15
2444: 0f 93 push r16
2446: 1f 93 push r17
2448: cf 93 push r28
244a: df 93 push r29
244c: 7c 01 movw r14, r24
244e: 8b 01 movw r16, r22
2450: ea 01 movw r28, r20
2452: 45 2b or r20, r21
2454: 39 f0 breq .+14 ; 0x2464 <njkvnfuhgbuzrgezgf483+0x24>
2456: f8 01 movw r30, r16
2458: 81 91 ld r24, Z+
245a: 8f 01 movw r16, r30
245c: f7 01 movw r30, r14
245e: 09 95 icall
2460: 21 97 sbiw r28, 0x01 ; 1
2462: c9 f7 brne .-14 ; 0x2456 <njkvnfuhgbuzrgezgf483+0x16>
2464: e6 e0 ldi r30, 0x06 ; 6
2466: cd b7 in r28, 0x3d ; 61
2468: de b7 in r29, 0x3e ; 62
246a: 0c 94 00 b2 jmp 0x16400 ; 0x16400 <__epilogue_restores__+0x18>
 
0000246e <lkvgnfdgun57th38rgh84>:
246e: ef 92 push r14
2470: ff 92 push r15
2472: 0f 93 push r16
2474: 1f 93 push r17
2476: cf 93 push r28
2478: df 93 push r29
247a: 7c 01 movw r14, r24
247c: 8b 01 movw r16, r22
247e: ea 01 movw r28, r20
2480: 45 2b or r20, r21
2482: 41 f0 breq .+16 ; 0x2494 <lkvgnfdgun57th38rgh84+0x26>
2484: f8 01 movw r30, r16
2486: 0f 5f subi r16, 0xFF ; 255
2488: 1f 4f sbci r17, 0xFF ; 255
248a: 84 91 lpm r24, Z
248c: f7 01 movw r30, r14
248e: 09 95 icall
2490: 21 97 sbiw r28, 0x01 ; 1
2492: c1 f7 brne .-16 ; 0x2484 <lkvgnfdgun57th38rgh84+0x16>
2494: e6 e0 ldi r30, 0x06 ; 6
2496: cd b7 in r28, 0x3d ; 61
2498: de b7 in r29, 0x3e ; 62
249a: 0c 94 00 b2 jmp 0x16400 ; 0x16400 <__epilogue_restores__+0x18>
 
0000249e <fgmjgnrtuth587th9rTrw>:
249e: 0f 93 push r16
24a0: 1f 93 push r17
24a2: cf 93 push r28
24a4: 8c 01 movw r16, r24
24a6: c6 2f mov r28, r22
24a8: 16 16 cp r1, r22
24aa: 34 f4 brge .+12 ; 0x24b8 <fgmjgnrtuth587th9rTrw+0x1a>
24ac: 80 e2 ldi r24, 0x20 ; 32
24ae: f8 01 movw r30, r16
24b0: 09 95 icall
24b2: c1 50 subi r28, 0x01 ; 1
24b4: 1c 16 cp r1, r28
24b6: d4 f3 brlt .-12 ; 0x24ac <fgmjgnrtuth587th9rTrw+0xe>
24b8: cf 91 pop r28
24ba: 1f 91 pop r17
24bc: 0f 91 pop r16
24be: 08 95 ret
 
000024c0 <wqqeRT45jth8g758735h4>:
24c0: 0f 93 push r16
24c2: 1f 93 push r17
24c4: cf 93 push r28
24c6: 8c 01 movw r16, r24
24c8: c6 2f mov r28, r22
24ca: 16 16 cp r1, r22
24cc: 34 f4 brge .+12 ; 0x24da <wqqeRT45jth8g758735h4+0x1a>
24ce: 80 e3 ldi r24, 0x30 ; 48
24d0: f8 01 movw r30, r16
24d2: 09 95 icall
24d4: c1 50 subi r28, 0x01 ; 1
24d6: 1c 16 cp r1, r28
24d8: d4 f3 brlt .-12 ; 0x24ce <wqqeRT45jth8g758735h4+0xe>
24da: cf 91 pop r28
24dc: 1f 91 pop r17
24de: 0f 91 pop r16
24e0: 08 95 ret
 
000024e2 <IIllllIllIlllIIlllII>:
24e2: a5 e3 ldi r26, 0x35 ; 53
24e4: b0 e0 ldi r27, 0x00 ; 0
24e6: e7 e7 ldi r30, 0x77 ; 119
24e8: f2 e1 ldi r31, 0x12 ; 18
24ea: 0c 94 d8 b1 jmp 0x163b0 ; 0x163b0 <__prologue_saves__>
24ee: 2e 96 adiw r28, 0x0e ; 14
24f0: ee ad ldd r30, Y+62 ; 0x3e
24f2: ff ad ldd r31, Y+63 ; 0x3f
24f4: 2e 97 sbiw r28, 0x0e ; 14
24f6: 88 24 eor r8, r8
24f8: 99 24 eor r9, r9
24fa: 54 01 movw r10, r8
24fc: 80 91 ec 02 lds r24, 0x02EC
2500: 88 23 and r24, r24
2502: 21 f4 brne .+8 ; 0x250c <IIllllIllIlllIIlllII+0x2a>
2504: 2c 96 adiw r28, 0x0c ; 12
2506: 1f ae std Y+63, r1 ; 0x3f
2508: 1e ae std Y+62, r1 ; 0x3e
250a: 2c 97 sbiw r28, 0x0c ; 12
250c: ae e4 ldi r26, 0x4E ; 78
250e: 4a 2e mov r4, r26
2510: 51 2c mov r5, r1
2512: 4c 0e add r4, r28
2514: 5d 1e adc r5, r29
2516: 6f 01 movw r12, r30
2518: b6 01 movw r22, r12
251a: 05 c0 rjmp .+10 ; 0x2526 <IIllllIllIlllIIlllII+0x44>
251c: 15 32 cpi r17, 0x25 ; 37
251e: 39 f0 breq .+14 ; 0x252e <IIllllIllIlllIIlllII+0x4c>
2520: 08 94 sec
2522: c1 1c adc r12, r1
2524: d1 1c adc r13, r1
2526: f6 01 movw r30, r12
2528: 14 91 lpm r17, Z
252a: 11 23 and r17, r17
252c: b9 f7 brne .-18 ; 0x251c <IIllllIllIlllIIlllII+0x3a>
252e: a6 01 movw r20, r12
2530: 46 1b sub r20, r22
2532: 57 0b sbc r21, r23
2534: 29 f0 breq .+10 ; 0x2540 <IIllllIllIlllIIlllII+0x5e>
2536: 2c 96 adiw r28, 0x0c ; 12
2538: 8e ad ldd r24, Y+62 ; 0x3e
253a: 9f ad ldd r25, Y+63 ; 0x3f
253c: 2c 97 sbiw r28, 0x0c ; 12
253e: 97 df rcall .-210 ; 0x246e <lkvgnfdgun57th38rgh84>
2540: 11 23 and r17, r17
2542: 09 f4 brne .+2 ; 0x2546 <IIllllIllIlllIIlllII+0x64>
2544: 64 c2 rjmp .+1224 ; 0x2a0e <IIllllIllIlllIIlllII+0x52c>
2546: 08 94 sec
2548: c1 1c adc r12, r1
254a: d1 1c adc r13, r1
254c: ff 24 eor r15, r15
254e: fd a6 std Y+45, r15 ; 0x2d
2550: fc a6 std Y+44, r15 ; 0x2c
2552: ef ef ldi r30, 0xFF ; 255
2554: ee 2e mov r14, r30
2556: f9 a6 std Y+41, r15 ; 0x29
2558: f6 01 movw r30, r12
255a: 08 94 sec
255c: c1 1c adc r12, r1
255e: d1 1c adc r13, r1
2560: 14 91 lpm r17, Z
2562: 15 37 cpi r17, 0x75 ; 117
2564: 21 f0 breq .+8 ; 0x256e <IIllllIllIlllIIlllII+0x8c>
2566: 81 2f mov r24, r17
2568: 80 62 ori r24, 0x20 ; 32
256a: 88 37 cpi r24, 0x78 ; 120
256c: b1 f4 brne .+44 ; 0x259a <IIllllIllIlllIIlllII+0xb8>
256e: f0 fe sbrs r15, 0
2570: 0a c0 rjmp .+20 ; 0x2586 <IIllllIllIlllIIlllII+0xa4>
2572: f2 01 movw r30, r4
2574: 24 e0 ldi r18, 0x04 ; 4
2576: 30 e0 ldi r19, 0x00 ; 0
2578: 42 0e add r4, r18
257a: 53 1e adc r5, r19
257c: 80 80 ld r8, Z
257e: 91 80 ldd r9, Z+1 ; 0x01
2580: a2 80 ldd r10, Z+2 ; 0x02
2582: b3 80 ldd r11, Z+3 ; 0x03
2584: 0a c0 rjmp .+20 ; 0x259a <IIllllIllIlllIIlllII+0xb8>
2586: f2 01 movw r30, r4
2588: 42 e0 ldi r20, 0x02 ; 2
258a: 50 e0 ldi r21, 0x00 ; 0
258c: 44 0e add r4, r20
258e: 55 1e adc r5, r21
2590: 80 81 ld r24, Z
2592: 91 81 ldd r25, Z+1 ; 0x01
2594: 4c 01 movw r8, r24
2596: aa 24 eor r10, r10
2598: bb 24 eor r11, r11
259a: 10 32 cpi r17, 0x20 ; 32
259c: 21 f4 brne .+8 ; 0x25a6 <IIllllIllIlllIIlllII+0xc4>
259e: 89 a5 ldd r24, Y+41 ; 0x29
25a0: 88 23 and r24, r24
25a2: d1 f6 brne .-76 ; 0x2558 <IIllllIllIlllIIlllII+0x76>
25a4: 1d c0 rjmp .+58 ; 0x25e0 <IIllllIllIlllIIlllII+0xfe>
25a6: 13 32 cpi r17, 0x23 ; 35
25a8: 19 f4 brne .+6 ; 0x25b0 <IIllllIllIlllIIlllII+0xce>
25aa: 58 e0 ldi r21, 0x08 ; 8
25ac: f5 2a or r15, r21
25ae: d4 cf rjmp .-88 ; 0x2558 <IIllllIllIlllIIlllII+0x76>
25b0: 1a 32 cpi r17, 0x2A ; 42
25b2: 11 f0 breq .+4 ; 0x25b8 <IIllllIllIlllIIlllII+0xd6>
25b4: 1d 32 cpi r17, 0x2D ; 45
25b6: 91 f4 brne .+36 ; 0x25dc <IIllllIllIlllIIlllII+0xfa>
25b8: 1a 32 cpi r17, 0x2A ; 42
25ba: 59 f4 brne .+22 ; 0x25d2 <IIllllIllIlllIIlllII+0xf0>
25bc: f2 01 movw r30, r4
25be: 82 e0 ldi r24, 0x02 ; 2
25c0: 90 e0 ldi r25, 0x00 ; 0
25c2: 48 0e add r4, r24
25c4: 59 1e adc r5, r25
25c6: e0 81 ld r30, Z
25c8: ec a7 std Y+44, r30 ; 0x2c
25ca: ee 23 and r30, r30
25cc: 2c f6 brge .-118 ; 0x2558 <IIllllIllIlllIIlllII+0x76>
25ce: e1 95 neg r30
25d0: ec a7 std Y+44, r30 ; 0x2c
25d2: 90 e1 ldi r25, 0x10 ; 16
25d4: f9 2a or r15, r25
25d6: af ed ldi r26, 0xDF ; 223
25d8: fa 22 and r15, r26
25da: be cf rjmp .-132 ; 0x2558 <IIllllIllIlllIIlllII+0x76>
25dc: 1b 32 cpi r17, 0x2B ; 43
25de: 11 f4 brne .+4 ; 0x25e4 <IIllllIllIlllIIlllII+0x102>
25e0: 19 a7 std Y+41, r17 ; 0x29
25e2: ba cf rjmp .-140 ; 0x2558 <IIllllIllIlllIIlllII+0x76>
25e4: 1e 32 cpi r17, 0x2E ; 46
25e6: c1 f5 brne .+112 ; 0x2658 <IIllllIllIlllIIlllII+0x176>
25e8: f6 01 movw r30, r12
25ea: 08 94 sec
25ec: c1 1c adc r12, r1
25ee: d1 1c adc r13, r1
25f0: 14 91 lpm r17, Z
25f2: 1a 32 cpi r17, 0x2A ; 42
25f4: 79 f4 brne .+30 ; 0x2614 <IIllllIllIlllIIlllII+0x132>
25f6: f2 01 movw r30, r4
25f8: 22 e0 ldi r18, 0x02 ; 2
25fa: 30 e0 ldi r19, 0x00 ; 0
25fc: 42 0e add r4, r18
25fe: 53 1e adc r5, r19
2600: 40 81 ld r20, Z
2602: 51 81 ldd r21, Z+1 ; 0x01
2604: 3f ef ldi r19, 0xFF ; 255
2606: 4f 3f cpi r20, 0xFF ; 255
2608: 53 07 cpc r21, r19
260a: 14 f4 brge .+4 ; 0x2610 <IIllllIllIlllIIlllII+0x12e>
260c: 4f ef ldi r20, 0xFF ; 255
260e: 5f ef ldi r21, 0xFF ; 255
2610: e4 2e mov r14, r20
2612: a2 cf rjmp .-188 ; 0x2558 <IIllllIllIlllIIlllII+0x76>
2614: 40 e0 ldi r20, 0x00 ; 0
2616: 50 e0 ldi r21, 0x00 ; 0
2618: 81 2f mov r24, r17
261a: 80 53 subi r24, 0x30 ; 48
261c: 8a 30 cpi r24, 0x0A ; 10
261e: a0 f4 brcc .+40 ; 0x2648 <IIllllIllIlllIIlllII+0x166>
2620: ca 01 movw r24, r20
2622: 73 e0 ldi r23, 0x03 ; 3
2624: 88 0f add r24, r24
2626: 99 1f adc r25, r25
2628: 7a 95 dec r23
262a: e1 f7 brne .-8 ; 0x2624 <IIllllIllIlllIIlllII+0x142>
262c: 84 0f add r24, r20
262e: 95 1f adc r25, r21
2630: 48 0f add r20, r24
2632: 59 1f adc r21, r25
2634: 41 0f add r20, r17
2636: 51 1d adc r21, r1
2638: 40 53 subi r20, 0x30 ; 48
263a: 50 40 sbci r21, 0x00 ; 0
263c: f6 01 movw r30, r12
263e: 08 94 sec
2640: c1 1c adc r12, r1
2642: d1 1c adc r13, r1
2644: 14 91 lpm r17, Z
2646: e8 cf rjmp .-48 ; 0x2618 <IIllllIllIlllIIlllII+0x136>
2648: 8f ef ldi r24, 0xFF ; 255
264a: 4f 3f cpi r20, 0xFF ; 255
264c: 58 07 cpc r21, r24
264e: 14 f4 brge .+4 ; 0x2654 <IIllllIllIlllIIlllII+0x172>
2650: 4f ef ldi r20, 0xFF ; 255
2652: 5f ef ldi r21, 0xFF ; 255
2654: e4 2e mov r14, r20
2656: 85 cf rjmp .-246 ; 0x2562 <IIllllIllIlllIIlllII+0x80>
2658: 10 33 cpi r17, 0x30 ; 48
265a: 29 f4 brne .+10 ; 0x2666 <IIllllIllIlllIIlllII+0x184>
265c: f4 fc sbrc r15, 4
265e: 7c cf rjmp .-264 ; 0x2558 <IIllllIllIlllIIlllII+0x76>
2660: 90 e2 ldi r25, 0x20 ; 32
2662: f9 2a or r15, r25
2664: 79 cf rjmp .-270 ; 0x2558 <IIllllIllIlllIIlllII+0x76>
2666: 81 2f mov r24, r17
2668: 81 53 subi r24, 0x31 ; 49
266a: 89 30 cpi r24, 0x09 ; 9
266c: d8 f4 brcc .+54 ; 0x26a4 <IIllllIllIlllIIlllII+0x1c2>
266e: 40 e0 ldi r20, 0x00 ; 0
2670: 50 e0 ldi r21, 0x00 ; 0
2672: ca 01 movw r24, r20
2674: 63 e0 ldi r22, 0x03 ; 3
2676: 88 0f add r24, r24
2678: 99 1f adc r25, r25
267a: 6a 95 dec r22
267c: e1 f7 brne .-8 ; 0x2676 <IIllllIllIlllIIlllII+0x194>
267e: 84 0f add r24, r20
2680: 95 1f adc r25, r21
2682: 48 0f add r20, r24
2684: 59 1f adc r21, r25
2686: 41 0f add r20, r17
2688: 51 1d adc r21, r1
268a: 40 53 subi r20, 0x30 ; 48
268c: 50 40 sbci r21, 0x00 ; 0
268e: f6 01 movw r30, r12
2690: 08 94 sec
2692: c1 1c adc r12, r1
2694: d1 1c adc r13, r1
2696: 14 91 lpm r17, Z
2698: 81 2f mov r24, r17
269a: 80 53 subi r24, 0x30 ; 48
269c: 8a 30 cpi r24, 0x0A ; 10
269e: 48 f3 brcs .-46 ; 0x2672 <IIllllIllIlllIIlllII+0x190>
26a0: 4c a7 std Y+44, r20 ; 0x2c
26a2: 5f cf rjmp .-322 ; 0x2562 <IIllllIllIlllIIlllII+0x80>
26a4: 18 36 cpi r17, 0x68 ; 104
26a6: 19 f4 brne .+6 ; 0x26ae <IIllllIllIlllIIlllII+0x1cc>
26a8: a4 e0 ldi r26, 0x04 ; 4
26aa: fa 2a or r15, r26
26ac: 55 cf rjmp .-342 ; 0x2558 <IIllllIllIlllIIlllII+0x76>
26ae: 1c 36 cpi r17, 0x6C ; 108
26b0: 19 f4 brne .+6 ; 0x26b8 <IIllllIllIlllIIlllII+0x1d6>
26b2: b1 e0 ldi r27, 0x01 ; 1
26b4: fb 2a or r15, r27
26b6: 50 cf rjmp .-352 ; 0x2558 <IIllllIllIlllIIlllII+0x76>
26b8: 13 36 cpi r17, 0x63 ; 99
26ba: 61 f4 brne .+24 ; 0x26d4 <IIllllIllIlllIIlllII+0x1f2>
26bc: 3e 01 movw r6, r28
26be: 08 94 sec
26c0: 61 1c adc r6, r1
26c2: 71 1c adc r7, r1
26c4: f2 01 movw r30, r4
26c6: 22 e0 ldi r18, 0x02 ; 2
26c8: 30 e0 ldi r19, 0x00 ; 0
26ca: 42 0e add r4, r18
26cc: 53 1e adc r5, r19
26ce: 80 81 ld r24, Z
26d0: 89 83 std Y+1, r24 ; 0x01
26d2: 3c c1 rjmp .+632 ; 0x294c <IIllllIllIlllIIlllII+0x46a>
26d4: 14 34 cpi r17, 0x44 ; 68
26d6: 21 f0 breq .+8 ; 0x26e0 <IIllllIllIlllIIlllII+0x1fe>
26d8: 14 36 cpi r17, 0x64 ; 100
26da: 11 f0 breq .+4 ; 0x26e0 <IIllllIllIlllIIlllII+0x1fe>
26dc: 19 36 cpi r17, 0x69 ; 105
26de: 51 f5 brne .+84 ; 0x2734 <IIllllIllIlllIIlllII+0x252>
26e0: 14 34 cpi r17, 0x44 ; 68
26e2: 11 f4 brne .+4 ; 0x26e8 <IIllllIllIlllIIlllII+0x206>
26e4: 31 e0 ldi r19, 0x01 ; 1
26e6: f3 2a or r15, r19
26e8: f0 fe sbrs r15, 0
26ea: 0a c0 rjmp .+20 ; 0x2700 <IIllllIllIlllIIlllII+0x21e>
26ec: f2 01 movw r30, r4
26ee: 44 e0 ldi r20, 0x04 ; 4
26f0: 50 e0 ldi r21, 0x00 ; 0
26f2: 44 0e add r4, r20
26f4: 55 1e adc r5, r21
26f6: 80 80 ld r8, Z
26f8: 91 80 ldd r9, Z+1 ; 0x01
26fa: a2 80 ldd r10, Z+2 ; 0x02
26fc: b3 80 ldd r11, Z+3 ; 0x03
26fe: 0c c0 rjmp .+24 ; 0x2718 <IIllllIllIlllIIlllII+0x236>
2700: f2 01 movw r30, r4
2702: 82 e0 ldi r24, 0x02 ; 2
2704: 90 e0 ldi r25, 0x00 ; 0
2706: 48 0e add r4, r24
2708: 59 1e adc r5, r25
270a: 80 81 ld r24, Z
270c: 91 81 ldd r25, Z+1 ; 0x01
270e: 4c 01 movw r8, r24
2710: aa 24 eor r10, r10
2712: 97 fc sbrc r9, 7
2714: a0 94 com r10
2716: ba 2c mov r11, r10
2718: b7 fe sbrs r11, 7
271a: 0a c0 rjmp .+20 ; 0x2730 <IIllllIllIlllIIlllII+0x24e>
271c: b0 94 com r11
271e: a0 94 com r10
2720: 90 94 com r9
2722: 80 94 com r8
2724: 81 1c adc r8, r1
2726: 91 1c adc r9, r1
2728: a1 1c adc r10, r1
272a: b1 1c adc r11, r1
272c: 8d e2 ldi r24, 0x2D ; 45
272e: 89 a7 std Y+41, r24 ; 0x29
2730: 0a e0 ldi r16, 0x0A ; 10
2732: 6f c0 rjmp .+222 ; 0x2812 <IIllllIllIlllIIlllII+0x330>
2734: 1f 34 cpi r17, 0x4F ; 79
2736: 11 f0 breq .+4 ; 0x273c <IIllllIllIlllIIlllII+0x25a>
2738: 1f 36 cpi r17, 0x6F ; 111
273a: 31 f4 brne .+12 ; 0x2748 <IIllllIllIlllIIlllII+0x266>
273c: 1f 34 cpi r17, 0x4F ; 79
273e: 11 f4 brne .+4 ; 0x2744 <IIllllIllIlllIIlllII+0x262>
2740: 91 e0 ldi r25, 0x01 ; 1
2742: f9 2a or r15, r25
2744: 08 e0 ldi r16, 0x08 ; 8
2746: 64 c0 rjmp .+200 ; 0x2810 <IIllllIllIlllIIlllII+0x32e>
2748: 10 37 cpi r17, 0x70 ; 112
274a: 79 f4 brne .+30 ; 0x276a <IIllllIllIlllIIlllII+0x288>
274c: f2 01 movw r30, r4
274e: a2 e0 ldi r26, 0x02 ; 2
2750: b0 e0 ldi r27, 0x00 ; 0
2752: 4a 0e add r4, r26
2754: 5b 1e adc r5, r27
2756: 80 81 ld r24, Z
2758: 91 81 ldd r25, Z+1 ; 0x01
275a: 4c 01 movw r8, r24
275c: aa 24 eor r10, r10
275e: bb 24 eor r11, r11
2760: 00 e1 ldi r16, 0x10 ; 16
2762: b0 e4 ldi r27, 0x40 ; 64
2764: fb 2a or r15, r27
2766: 18 e7 ldi r17, 0x78 ; 120
2768: 53 c0 rjmp .+166 ; 0x2810 <IIllllIllIlllIIlllII+0x32e>
276a: 13 37 cpi r17, 0x73 ; 115
276c: c1 f5 brne .+112 ; 0x27de <IIllllIllIlllIIlllII+0x2fc>
276e: f2 01 movw r30, r4
2770: 22 e0 ldi r18, 0x02 ; 2
2772: 30 e0 ldi r19, 0x00 ; 0
2774: 42 0e add r4, r18
2776: 53 1e adc r5, r19
2778: 60 80 ld r6, Z
277a: 71 80 ldd r7, Z+1 ; 0x01
277c: 61 14 cp r6, r1
277e: 71 04 cpc r7, r1
2780: 89 f4 brne .+34 ; 0x27a4 <IIllllIllIlllIIlllII+0x2c2>
2782: 3e 01 movw r6, r28
2784: 08 94 sec
2786: 61 1c adc r6, r1
2788: 71 1c adc r7, r1
278a: 88 e2 ldi r24, 0x28 ; 40
278c: 89 83 std Y+1, r24 ; 0x01
278e: 8e e6 ldi r24, 0x6E ; 110
2790: f3 01 movw r30, r6
2792: 81 83 std Z+1, r24 ; 0x01
2794: 85 e7 ldi r24, 0x75 ; 117
2796: 8b 83 std Y+3, r24 ; 0x03
2798: 8c e6 ldi r24, 0x6C ; 108
279a: 8c 83 std Y+4, r24 ; 0x04
279c: 8d 83 std Y+5, r24 ; 0x05
279e: 89 e2 ldi r24, 0x29 ; 41
27a0: 8e 83 std Y+6, r24 ; 0x06
27a2: 1f 82 std Y+7, r1 ; 0x07
27a4: e7 fc sbrc r14, 7
27a6: 13 c0 rjmp .+38 ; 0x27ce <IIllllIllIlllIIlllII+0x2ec>
27a8: 8e 2d mov r24, r14
27aa: 99 27 eor r25, r25
27ac: 87 fd sbrc r24, 7
27ae: 90 95 com r25
27b0: ac 01 movw r20, r24
27b2: 60 e0 ldi r22, 0x00 ; 0
27b4: 70 e0 ldi r23, 0x00 ; 0
27b6: c3 01 movw r24, r6
27b8: 0e 94 18 b2 call 0x16430 ; 0x16430 <memchr>
27bc: 00 97 sbiw r24, 0x00 ; 0
27be: 29 f0 breq .+10 ; 0x27ca <IIllllIllIlllIIlllII+0x2e8>
27c0: 38 2e mov r3, r24
27c2: 36 18 sub r3, r6
27c4: e3 14 cp r14, r3
27c6: 0c f0 brlt .+2 ; 0x27ca <IIllllIllIlllIIlllII+0x2e8>
27c8: c3 c0 rjmp .+390 ; 0x2950 <IIllllIllIlllIIlllII+0x46e>
27ca: 3e 2c mov r3, r14
27cc: c1 c0 rjmp .+386 ; 0x2950 <IIllllIllIlllIIlllII+0x46e>
27ce: f3 01 movw r30, r6
27d0: 01 90 ld r0, Z+
27d2: 00 20 and r0, r0
27d4: e9 f7 brne .-6 ; 0x27d0 <IIllllIllIlllIIlllII+0x2ee>
27d6: 31 97 sbiw r30, 0x01 ; 1
27d8: 3e 2e mov r3, r30
27da: 36 18 sub r3, r6
27dc: b9 c0 rjmp .+370 ; 0x2950 <IIllllIllIlllIIlllII+0x46e>
27de: 15 35 cpi r17, 0x55 ; 85
27e0: 11 f0 breq .+4 ; 0x27e6 <IIllllIllIlllIIlllII+0x304>
27e2: 15 37 cpi r17, 0x75 ; 117
27e4: 31 f4 brne .+12 ; 0x27f2 <IIllllIllIlllIIlllII+0x310>
27e6: 15 35 cpi r17, 0x55 ; 85
27e8: 11 f4 brne .+4 ; 0x27ee <IIllllIllIlllIIlllII+0x30c>
27ea: f1 e0 ldi r31, 0x01 ; 1
27ec: ff 2a or r15, r31
27ee: 0a e0 ldi r16, 0x0A ; 10
27f0: 0f c0 rjmp .+30 ; 0x2810 <IIllllIllIlllIIlllII+0x32e>
27f2: 18 35 cpi r17, 0x58 ; 88
27f4: 19 f0 breq .+6 ; 0x27fc <IIllllIllIlllIIlllII+0x31a>
27f6: 18 37 cpi r17, 0x78 ; 120
27f8: 09 f0 breq .+2 ; 0x27fc <IIllllIllIlllIIlllII+0x31a>
27fa: a0 c0 rjmp .+320 ; 0x293c <IIllllIllIlllIIlllII+0x45a>
27fc: 00 e1 ldi r16, 0x10 ; 16
27fe: f3 fe sbrs r15, 3
2800: 07 c0 rjmp .+14 ; 0x2810 <IIllllIllIlllIIlllII+0x32e>
2802: 81 14 cp r8, r1
2804: 91 04 cpc r9, r1
2806: a1 04 cpc r10, r1
2808: b1 04 cpc r11, r1
280a: 11 f0 breq .+4 ; 0x2810 <IIllllIllIlllIIlllII+0x32e>
280c: 20 e4 ldi r18, 0x40 ; 64
280e: f2 2a or r15, r18
2810: 19 a6 std Y+41, r1 ; 0x29
2812: ed a6 std Y+45, r14 ; 0x2d
2814: e7 fc sbrc r14, 7
2816: 02 c0 rjmp .+4 ; 0x281c <IIllllIllIlllIIlllII+0x33a>
2818: 3f ed ldi r19, 0xDF ; 223
281a: f3 22 and r15, r19
281c: 49 e2 ldi r20, 0x29 ; 41
281e: 64 2e mov r6, r20
2820: 71 2c mov r7, r1
2822: 6c 0e add r6, r28
2824: 7d 1e adc r7, r29
2826: 81 14 cp r8, r1
2828: 91 04 cpc r9, r1
282a: a1 04 cpc r10, r1
282c: b1 04 cpc r11, r1
282e: 21 f4 brne .+8 ; 0x2838 <IIllllIllIlllIIlllII+0x356>
2830: 4d a5 ldd r20, Y+45 ; 0x2d
2832: 44 23 and r20, r20
2834: 09 f4 brne .+2 ; 0x2838 <IIllllIllIlllIIlllII+0x356>
2836: 7b c0 rjmp .+246 ; 0x292e <IIllllIllIlllIIlllII+0x44c>
2838: 80 2f mov r24, r16
283a: 99 27 eor r25, r25
283c: aa 27 eor r26, r26
283e: bb 27 eor r27, r27
2840: 8e a7 std Y+46, r24 ; 0x2e
2842: 9f a7 std Y+47, r25 ; 0x2f
2844: a8 ab std Y+48, r26 ; 0x30
2846: b9 ab std Y+49, r27 ; 0x31
2848: 20 2e mov r2, r16
284a: 33 24 eor r3, r3
284c: 90 e0 ldi r25, 0x00 ; 0
284e: 89 16 cp r8, r25
2850: 90 e0 ldi r25, 0x00 ; 0
2852: 99 06 cpc r9, r25
2854: 91 e0 ldi r25, 0x01 ; 1
2856: a9 06 cpc r10, r25
2858: 90 e0 ldi r25, 0x00 ; 0
285a: b9 06 cpc r11, r25
285c: 48 f0 brcs .+18 ; 0x2870 <IIllllIllIlllIIlllII+0x38e>
285e: c5 01 movw r24, r10
2860: b4 01 movw r22, r8
2862: 2e a5 ldd r18, Y+46 ; 0x2e
2864: 3f a5 ldd r19, Y+47 ; 0x2f
2866: 48 a9 ldd r20, Y+48 ; 0x30
2868: 59 a9 ldd r21, Y+49 ; 0x31
286a: 0e 94 69 b1 call 0x162d2 ; 0x162d2 <__udivmodsi4>
286e: 17 c0 rjmp .+46 ; 0x289e <IIllllIllIlllIIlllII+0x3bc>
2870: af ef ldi r26, 0xFF ; 255
2872: 8a 16 cp r8, r26
2874: 91 04 cpc r9, r1
2876: a1 04 cpc r10, r1
2878: b1 04 cpc r11, r1
287a: 49 f0 breq .+18 ; 0x288e <IIllllIllIlllIIlllII+0x3ac>
287c: 40 f0 brcs .+16 ; 0x288e <IIllllIllIlllIIlllII+0x3ac>
287e: c4 01 movw r24, r8
2880: b1 01 movw r22, r2
2882: 0e 94 42 b1 call 0x16284 ; 0x16284 <__udivmodhi4>
2886: 9b 01 movw r18, r22
2888: 44 27 eor r20, r20
288a: 55 27 eor r21, r21
288c: 08 c0 rjmp .+16 ; 0x289e <IIllllIllIlllIIlllII+0x3bc>
288e: 88 2d mov r24, r8
2890: 60 2f mov r22, r16
2892: 0e 94 36 b1 call 0x1626c ; 0x1626c <__udivmodqi4>
2896: 28 2f mov r18, r24
2898: 33 27 eor r19, r19
289a: 44 27 eor r20, r20
289c: 55 27 eor r21, r21
289e: 2a ab std Y+50, r18 ; 0x32
28a0: 3b ab std Y+51, r19 ; 0x33
28a2: 4c ab std Y+52, r20 ; 0x34
28a4: 5d ab std Y+53, r21 ; 0x35
28a6: 0a 30 cpi r16, 0x0A ; 10
28a8: 59 f4 brne .+22 ; 0x28c0 <IIllllIllIlllIIlllII+0x3de>
28aa: 8a a9 ldd r24, Y+50 ; 0x32
28ac: 88 0f add r24, r24
28ae: 88 0f add r24, r24
28b0: 88 0f add r24, r24
28b2: 9a a9 ldd r25, Y+50 ; 0x32
28b4: 99 0f add r25, r25
28b6: 89 0f add r24, r25
28b8: 38 2d mov r19, r8
28ba: 38 1b sub r19, r24
28bc: 83 2f mov r24, r19
28be: 10 c0 rjmp .+32 ; 0x28e0 <IIllllIllIlllIIlllII+0x3fe>
28c0: 00 31 cpi r16, 0x10 ; 16
28c2: 39 f4 brne .+14 ; 0x28d2 <IIllllIllIlllIIlllII+0x3f0>
28c4: 8a a9 ldd r24, Y+50 ; 0x32
28c6: 82 95 swap r24
28c8: 80 7f andi r24, 0xF0 ; 240
28ca: 48 2d mov r20, r8
28cc: 48 1b sub r20, r24
28ce: 84 2f mov r24, r20
28d0: 07 c0 rjmp .+14 ; 0x28e0 <IIllllIllIlllIIlllII+0x3fe>
28d2: 8a a9 ldd r24, Y+50 ; 0x32
28d4: 88 0f add r24, r24
28d6: 88 0f add r24, r24
28d8: 88 0f add r24, r24
28da: 58 2d mov r21, r8
28dc: 58 1b sub r21, r24
28de: 85 2f mov r24, r21
28e0: 90 e0 ldi r25, 0x00 ; 0
28e2: 2e a5 ldd r18, Y+46 ; 0x2e
28e4: 3f a5 ldd r19, Y+47 ; 0x2f
28e6: 48 a9 ldd r20, Y+48 ; 0x30
28e8: 59 a9 ldd r21, Y+49 ; 0x31
28ea: 82 16 cp r8, r18
28ec: 93 06 cpc r9, r19
28ee: a4 06 cpc r10, r20
28f0: b5 06 cpc r11, r21
28f2: 08 f0 brcs .+2 ; 0x28f6 <IIllllIllIlllIIlllII+0x414>
28f4: 91 e0 ldi r25, 0x01 ; 1
28f6: 8a a8 ldd r8, Y+50 ; 0x32
28f8: 9b a8 ldd r9, Y+51 ; 0x33
28fa: ac a8 ldd r10, Y+52 ; 0x34
28fc: bd a8 ldd r11, Y+53 ; 0x35
28fe: 8a 30 cpi r24, 0x0A ; 10
2900: 10 f4 brcc .+4 ; 0x2906 <IIllllIllIlllIIlllII+0x424>
2902: 80 5d subi r24, 0xD0 ; 208
2904: 04 c0 rjmp .+8 ; 0x290e <IIllllIllIlllIIlllII+0x42c>
2906: 89 5a subi r24, 0xA9 ; 169
2908: 18 35 cpi r17, 0x58 ; 88
290a: 09 f4 brne .+2 ; 0x290e <IIllllIllIlllIIlllII+0x42c>
290c: 8f 7d andi r24, 0xDF ; 223
290e: d3 01 movw r26, r6
2910: 8e 93 st -X, r24
2912: 3d 01 movw r6, r26
2914: 99 23 and r25, r25
2916: 09 f0 breq .+2 ; 0x291a <IIllllIllIlllIIlllII+0x438>
2918: 99 cf rjmp .-206 ; 0x284c <IIllllIllIlllIIlllII+0x36a>
291a: 08 30 cpi r16, 0x08 ; 8
291c: 41 f4 brne .+16 ; 0x292e <IIllllIllIlllIIlllII+0x44c>
291e: f3 fe sbrs r15, 3
2920: 06 c0 rjmp .+12 ; 0x292e <IIllllIllIlllIIlllII+0x44c>
2922: 80 33 cpi r24, 0x30 ; 48
2924: 21 f0 breq .+8 ; 0x292e <IIllllIllIlllIIlllII+0x44c>
2926: 80 e3 ldi r24, 0x30 ; 48
2928: fd 01 movw r30, r26
292a: 82 93 st -Z, r24
292c: 3f 01 movw r6, r30
292e: ce 01 movw r24, r28
2930: 01 96 adiw r24, 0x01 ; 1
2932: 38 2e mov r3, r24
2934: 36 18 sub r3, r6
2936: f8 e2 ldi r31, 0x28 ; 40
2938: 3f 0e add r3, r31
293a: 0b c0 rjmp .+22 ; 0x2952 <IIllllIllIlllIIlllII+0x470>
293c: 11 23 and r17, r17
293e: 09 f4 brne .+2 ; 0x2942 <IIllllIllIlllIIlllII+0x460>
2940: 66 c0 rjmp .+204 ; 0x2a0e <IIllllIllIlllIIlllII+0x52c>
2942: 3e 01 movw r6, r28
2944: 08 94 sec
2946: 61 1c adc r6, r1
2948: 71 1c adc r7, r1
294a: 19 83 std Y+1, r17 ; 0x01
294c: 31 e0 ldi r19, 0x01 ; 1
294e: 33 2e mov r3, r19
2950: 19 a6 std Y+41, r1 ; 0x29
2952: 03 2d mov r16, r3
2954: 2d a4 ldd r2, Y+45 ; 0x2d
2956: 23 18 sub r2, r3
2958: 27 fc sbrc r2, 7
295a: 22 24 eor r2, r2
295c: 89 a5 ldd r24, Y+41 ; 0x29
295e: 88 23 and r24, r24
2960: 11 f0 breq .+4 ; 0x2966 <IIllllIllIlllIIlllII+0x484>
2962: 0f 5f subi r16, 0xFF ; 255
2964: 02 c0 rjmp .+4 ; 0x296a <IIllllIllIlllIIlllII+0x488>
2966: f6 fc sbrc r15, 6
2968: 0e 5f subi r16, 0xFE ; 254
296a: 02 0d add r16, r2
296c: ef 2c mov r14, r15
296e: ff 24 eor r15, r15
2970: c7 01 movw r24, r14
2972: 80 73 andi r24, 0x30 ; 48
2974: 90 70 andi r25, 0x00 ; 0
2976: 89 2b or r24, r25
2978: 41 f4 brne .+16 ; 0x298a <IIllllIllIlllIIlllII+0x4a8>
297a: 8c a5 ldd r24, Y+44 ; 0x2c
297c: 80 1b sub r24, r16
297e: 68 2f mov r22, r24
2980: 2c 96 adiw r28, 0x0c ; 12
2982: 8e ad ldd r24, Y+62 ; 0x3e
2984: 9f ad ldd r25, Y+63 ; 0x3f
2986: 2c 97 sbiw r28, 0x0c ; 12
2988: 8a dd rcall .-1260 ; 0x249e <fgmjgnrtuth587th9rTrw>
298a: 89 a5 ldd r24, Y+41 ; 0x29
298c: 88 23 and r24, r24
298e: 31 f0 breq .+12 ; 0x299c <IIllllIllIlllIIlllII+0x4ba>
2990: 41 e0 ldi r20, 0x01 ; 1
2992: 50 e0 ldi r21, 0x00 ; 0
2994: be 01 movw r22, r28
2996: 67 5d subi r22, 0xD7 ; 215
2998: 7f 4f sbci r23, 0xFF ; 255
299a: 0a c0 rjmp .+20 ; 0x29b0 <IIllllIllIlllIIlllII+0x4ce>
299c: e6 fe sbrs r14, 6
299e: 0d c0 rjmp .+26 ; 0x29ba <IIllllIllIlllIIlllII+0x4d8>
29a0: 80 e3 ldi r24, 0x30 ; 48
29a2: 8a a7 std Y+42, r24 ; 0x2a
29a4: 1b a7 std Y+43, r17 ; 0x2b
29a6: 42 e0 ldi r20, 0x02 ; 2
29a8: 50 e0 ldi r21, 0x00 ; 0
29aa: be 01 movw r22, r28
29ac: 66 5d subi r22, 0xD6 ; 214
29ae: 7f 4f sbci r23, 0xFF ; 255
29b0: 2c 96 adiw r28, 0x0c ; 12
29b2: 8e ad ldd r24, Y+62 ; 0x3e
29b4: 9f ad ldd r25, Y+63 ; 0x3f
29b6: 2c 97 sbiw r28, 0x0c ; 12
29b8: 43 dd rcall .-1402 ; 0x2440 <njkvnfuhgbuzrgezgf483>
29ba: c7 01 movw r24, r14
29bc: 80 73 andi r24, 0x30 ; 48
29be: 90 70 andi r25, 0x00 ; 0
29c0: 80 97 sbiw r24, 0x20 ; 32
29c2: 41 f4 brne .+16 ; 0x29d4 <IIllllIllIlllIIlllII+0x4f2>
29c4: 8c a5 ldd r24, Y+44 ; 0x2c
29c6: 80 1b sub r24, r16
29c8: 68 2f mov r22, r24
29ca: 2c 96 adiw r28, 0x0c ; 12
29cc: 8e ad ldd r24, Y+62 ; 0x3e
29ce: 9f ad ldd r25, Y+63 ; 0x3f
29d0: 2c 97 sbiw r28, 0x0c ; 12
29d2: 76 dd rcall .-1300 ; 0x24c0 <wqqeRT45jth8g758735h4>
29d4: 62 2d mov r22, r2
29d6: 2c 96 adiw r28, 0x0c ; 12
29d8: 8e ad ldd r24, Y+62 ; 0x3e
29da: 9f ad ldd r25, Y+63 ; 0x3f
29dc: 2c 97 sbiw r28, 0x0c ; 12
29de: 70 dd rcall .-1312 ; 0x24c0 <wqqeRT45jth8g758735h4>
29e0: 83 2d mov r24, r3
29e2: 99 27 eor r25, r25
29e4: 87 fd sbrc r24, 7
29e6: 90 95 com r25
29e8: ac 01 movw r20, r24
29ea: b3 01 movw r22, r6
29ec: 2c 96 adiw r28, 0x0c ; 12
29ee: 8e ad ldd r24, Y+62 ; 0x3e
29f0: 9f ad ldd r25, Y+63 ; 0x3f
29f2: 2c 97 sbiw r28, 0x0c ; 12
29f4: 25 dd rcall .-1462 ; 0x2440 <njkvnfuhgbuzrgezgf483>
29f6: e4 fe sbrs r14, 4
29f8: 8f cd rjmp .-1250 ; 0x2518 <IIllllIllIlllIIlllII+0x36>
29fa: 2c a5 ldd r18, Y+44 ; 0x2c
29fc: 20 1b sub r18, r16
29fe: 2c a7 std Y+44, r18 ; 0x2c
2a00: 62 2f mov r22, r18
2a02: 2c 96 adiw r28, 0x0c ; 12
2a04: 8e ad ldd r24, Y+62 ; 0x3e
2a06: 9f ad ldd r25, Y+63 ; 0x3f
2a08: 2c 97 sbiw r28, 0x0c ; 12
2a0a: 49 dd rcall .-1390 ; 0x249e <fgmjgnrtuth587th9rTrw>
2a0c: 85 cd rjmp .-1270 ; 0x2518 <IIllllIllIlllIIlllII+0x36>
2a0e: e2 e1 ldi r30, 0x12 ; 18
2a10: cb 5c subi r28, 0xCB ; 203
2a12: 0c 94 f4 b1 jmp 0x163e8 ; 0x163e8 <__epilogue_restores__>
 
00002a16 <LIBFC_HoTT_Putchar>:
2a16: 98 2f mov r25, r24
2a18: 80 91 b1 0c lds r24, 0x0CB1
2a1c: 88 3a cpi r24, 0xA8 ; 168
2a1e: 50 f4 brcc .+20 ; 0x2a34 <LIBFC_HoTT_Putchar+0x1e>
2a20: 80 91 b1 0c lds r24, 0x0CB1
2a24: e8 2f mov r30, r24
2a26: ff 27 eor r31, r31
2a28: e8 5f subi r30, 0xF8 ; 248
2a2a: f8 4f sbci r31, 0xF8 ; 248
2a2c: 93 83 std Z+3, r25 ; 0x03
2a2e: 8f 5f subi r24, 0xFF ; 255
2a30: 80 93 b1 0c sts 0x0CB1, r24
2a34: 08 95 ret
 
00002a36 <LIBFC_HoTT_Putchar_INV>:
2a36: 98 2f mov r25, r24
2a38: 80 91 b1 0c lds r24, 0x0CB1
2a3c: 88 3a cpi r24, 0xA8 ; 168
2a3e: 58 f4 brcc .+22 ; 0x2a56 <LIBFC_HoTT_Putchar_INV+0x20>
2a40: 80 91 b1 0c lds r24, 0x0CB1
2a44: e8 2f mov r30, r24
2a46: ff 27 eor r31, r31
2a48: e8 5f subi r30, 0xF8 ; 248
2a4a: f8 4f sbci r31, 0xF8 ; 248
2a4c: 90 68 ori r25, 0x80 ; 128
2a4e: 93 83 std Z+3, r25 ; 0x03
2a50: 8f 5f subi r24, 0xFF ; 255
2a52: 80 93 b1 0c sts 0x0CB1, r24
2a56: 08 95 ret
 
00002a58 <LIBFC_HoTT_Putchar_BLINK>:
2a58: 98 2f mov r25, r24
2a5a: 80 91 ed 02 lds r24, 0x02ED
2a5e: 88 23 and r24, r24
2a60: 11 f0 breq .+4 ; 0x2a66 <LIBFC_HoTT_Putchar_BLINK+0xe>
2a62: 89 2f mov r24, r25
2a64: e8 cf rjmp .-48 ; 0x2a36 <LIBFC_HoTT_Putchar_INV>
2a66: 89 2f mov r24, r25
2a68: d6 cf rjmp .-84 ; 0x2a16 <LIBFC_HoTT_Putchar>
 
00002a6a <LIBFC_HoTT_SetPos>:
2a6a: 88 3a cpi r24, 0xA8 ; 168
2a6c: 10 f4 brcc .+4 ; 0x2a72 <LIBFC_HoTT_SetPos+0x8>
2a6e: 80 93 b1 0c sts 0x0CB1, r24
2a72: 08 95 ret
 
00002a74 <LIBFC_HoTT_Clear>:
2a74: 80 e0 ldi r24, 0x00 ; 0
2a76: 90 e2 ldi r25, 0x20 ; 32
2a78: eb e0 ldi r30, 0x0B ; 11
2a7a: f7 e0 ldi r31, 0x07 ; 7
2a7c: 91 93 st Z+, r25
2a7e: 8f 5f subi r24, 0xFF ; 255
2a80: 88 3a cpi r24, 0xA8 ; 168
2a82: e0 f3 brcs .-8 ; 0x2a7c <LIBFC_HoTT_Clear+0x8>
2a84: 08 95 ret
 
00002a86 <HoTT_Init>:
2a86: 4f b7 in r20, 0x3f ; 63
2a88: 21 e8 ldi r18, 0x81 ; 129
2a8a: 30 e0 ldi r19, 0x00 ; 0
2a8c: f8 94 cli
2a8e: 80 91 c9 00 lds r24, 0x00C9
2a92: 8f 77 andi r24, 0x7F ; 127
2a94: 80 93 c9 00 sts 0x00C9, r24
2a98: 80 91 c9 00 lds r24, 0x00C9
2a9c: 8f 7b andi r24, 0xBF ; 191
2a9e: 80 93 c9 00 sts 0x00C9, r24
2aa2: 80 91 c9 00 lds r24, 0x00C9
2aa6: 8f 7d andi r24, 0xDF ; 223
2aa8: 80 93 c9 00 sts 0x00C9, r24
2aac: 83 2f mov r24, r19
2aae: 99 27 eor r25, r25
2ab0: 80 93 cd 00 sts 0x00CD, r24
2ab4: 20 93 cc 00 sts 0x00CC, r18
2ab8: 80 91 c8 00 lds r24, 0x00C8
2abc: 82 60 ori r24, 0x02 ; 2
2abe: 80 93 c8 00 sts 0x00C8, r24
2ac2: 88 e1 ldi r24, 0x18 ; 24
2ac4: 80 93 c9 00 sts 0x00C9, r24
2ac8: 80 91 ca 00 lds r24, 0x00CA
2acc: 8f 77 andi r24, 0x7F ; 127
2ace: 80 93 ca 00 sts 0x00CA, r24
2ad2: 80 91 ca 00 lds r24, 0x00CA
2ad6: 8f 7b andi r24, 0xBF ; 191
2ad8: 80 93 ca 00 sts 0x00CA, r24
2adc: 80 91 ca 00 lds r24, 0x00CA
2ae0: 8f 7d andi r24, 0xDF ; 223
2ae2: 80 93 ca 00 sts 0x00CA, r24
2ae6: 80 91 ca 00 lds r24, 0x00CA
2aea: 8f 7e andi r24, 0xEF ; 239
2aec: 80 93 ca 00 sts 0x00CA, r24
2af0: 80 91 ca 00 lds r24, 0x00CA
2af4: 87 7f andi r24, 0xF7 ; 247
2af6: 80 93 ca 00 sts 0x00CA, r24
2afa: 80 91 c9 00 lds r24, 0x00C9
2afe: 84 60 ori r24, 0x04 ; 4
2b00: 80 93 c9 00 sts 0x00C9, r24
2b04: 80 91 ca 00 lds r24, 0x00CA
2b08: 84 60 ori r24, 0x04 ; 4
2b0a: 80 93 ca 00 sts 0x00CA, r24
2b0e: 80 91 ca 00 lds r24, 0x00CA
2b12: 82 60 ori r24, 0x02 ; 2
2b14: 80 93 ca 00 sts 0x00CA, r24
2b18: 80 91 c9 00 lds r24, 0x00C9
2b1c: 81 60 ori r24, 0x01 ; 1
2b1e: 80 93 c9 00 sts 0x00C9, r24
2b22: 80 91 c8 00 lds r24, 0x00C8
2b26: 87 ff sbrs r24, 7
2b28: 03 c0 rjmp .+6 ; 0x2b30 <HoTT_Init+0xaa>
2b2a: 80 91 ce 00 lds r24, 0x00CE
2b2e: f9 cf rjmp .-14 ; 0x2b22 <HoTT_Init+0x9c>
2b30: 80 91 c9 00 lds r24, 0x00C9
2b34: 80 68 ori r24, 0x80 ; 128
2b36: 80 93 c9 00 sts 0x00C9, r24
2b3a: 4f bf out 0x3f, r20 ; 63
2b3c: 3c e7 ldi r19, 0x7C ; 124
2b3e: 30 93 7a 06 sts 0x067A, r19
2b42: 2d e7 ldi r18, 0x7D ; 125
2b44: 20 93 a5 06 sts 0x06A5, r18
2b48: 8e e8 ldi r24, 0x8E ; 142
2b4a: 80 93 7b 06 sts 0x067B, r24
2b4e: 10 92 97 06 sts 0x0697, r1
2b52: 10 92 96 06 sts 0x0696, r1
2b56: 10 92 80 06 sts 0x0680, r1
2b5a: 80 ee ldi r24, 0xE0 ; 224
2b5c: 80 93 7d 06 sts 0x067D, r24
2b60: 30 93 dc 06 sts 0x06DC, r19
2b64: 20 93 07 07 sts 0x0707, r18
2b68: 10 92 e8 06 sts 0x06E8, r1
2b6c: 10 92 e7 06 sts 0x06E7, r1
2b70: 10 92 ea 06 sts 0x06EA, r1
2b74: 10 92 e9 06 sts 0x06E9, r1
2b78: 10 92 ec 06 sts 0x06EC, r1
2b7c: 10 92 eb 06 sts 0x06EB, r1
2b80: 84 ef ldi r24, 0xF4 ; 244
2b82: 91 e0 ldi r25, 0x01 ; 1
2b84: 90 93 e6 06 sts 0x06E6, r25
2b88: 80 93 e5 06 sts 0x06E5, r24
2b8c: 90 93 e4 06 sts 0x06E4, r25
2b90: 80 93 e3 06 sts 0x06E3, r24
2b94: 90 93 e2 06 sts 0x06E2, r25
2b98: 80 93 e1 06 sts 0x06E1, r24
2b9c: 10 92 de 06 sts 0x06DE, r1
2ba0: 89 e8 ldi r24, 0x89 ; 137
2ba2: 80 93 dd 06 sts 0x06DD, r24
2ba6: 10 92 05 07 sts 0x0705, r1
2baa: 10 92 06 07 sts 0x0706, r1
2bae: 80 e9 ldi r24, 0x90 ; 144
2bb0: 80 93 df 06 sts 0x06DF, r24
2bb4: 30 93 b4 07 sts 0x07B4, r19
2bb8: 20 93 df 07 sts 0x07DF, r18
2bbc: 10 92 b6 07 sts 0x07B6, r1
2bc0: 8a e8 ldi r24, 0x8A ; 138
2bc2: 80 93 b5 07 sts 0x07B5, r24
2bc6: 10 92 bc 07 sts 0x07BC, r1
2bca: 10 92 bb 07 sts 0x07BB, r1
2bce: 10 92 ba 07 sts 0x07BA, r1
2bd2: 10 92 be 07 sts 0x07BE, r1
2bd6: 10 92 bf 07 sts 0x07BF, r1
2bda: 10 92 c0 07 sts 0x07C0, r1
2bde: 10 92 c1 07 sts 0x07C1, r1
2be2: 10 92 c3 07 sts 0x07C3, r1
2be6: 10 92 c4 07 sts 0x07C4, r1
2bea: 10 92 c5 07 sts 0x07C5, r1
2bee: 10 92 c6 07 sts 0x07C6, r1
2bf2: 10 92 ca 07 sts 0x07CA, r1
2bf6: 10 92 c9 07 sts 0x07C9, r1
2bfa: 10 92 c8 07 sts 0x07C8, r1
2bfe: 10 92 c7 07 sts 0x07C7, r1
2c02: 80 ea ldi r24, 0xA0 ; 160
2c04: 80 93 b7 07 sts 0x07B7, r24
2c08: 30 93 a6 06 sts 0x06A6, r19
2c0c: 20 93 d1 06 sts 0x06D1, r18
2c10: 10 92 a8 06 sts 0x06A8, r1
2c14: 8d e8 ldi r24, 0x8D ; 141
2c16: 80 93 a7 06 sts 0x06A7, r24
2c1a: 10 92 d0 06 sts 0x06D0, r1
2c1e: 80 ed ldi r24, 0xD0 ; 208
2c20: 80 93 a9 06 sts 0x06A9, r24
2c24: 8b e7 ldi r24, 0x7B ; 123
2c26: 80 93 08 07 sts 0x0708, r24
2c2a: 80 e8 ldi r24, 0x80 ; 128
2c2c: 80 93 09 07 sts 0x0709, r24
2c30: 10 92 0a 07 sts 0x070A, r1
2c34: 80 91 80 06 lds r24, 0x0680
2c38: 90 e2 ldi r25, 0x20 ; 32
2c3a: eb e0 ldi r30, 0x0B ; 11
2c3c: f7 e0 ldi r31, 0x07 ; 7
2c3e: 91 93 st Z+, r25
2c40: 8f 5f subi r24, 0xFF ; 255
2c42: 88 3a cpi r24, 0xA8 ; 168
2c44: e0 f3 brcs .-8 ; 0x2c3e <HoTT_Init+0x1b8>
2c46: 8d e7 ldi r24, 0x7D ; 125
2c48: 80 93 b3 07 sts 0x07B3, r24
2c4c: 08 95 ret
 
00002c4e <HoTT_Parser>:
2c4e: cf 93 push r28
2c50: c8 2f mov r28, r24
2c52: 80 91 00 03 lds r24, 0x0300
2c56: 80 38 cpi r24, 0x80 ; 128
2c58: 79 f4 brne .+30 ; 0x2c78 <HoTT_Parser+0x2a>
2c5a: 8c 2f mov r24, r28
2c5c: 0e 94 f5 61 call 0xc3ea ; 0xc3ea <HoTT_Telemety>
2c60: 80 93 ef 02 sts 0x02EF, r24
2c64: 80 91 ef 02 lds r24, 0x02EF
2c68: 88 23 and r24, r24
2c6a: 31 f1 breq .+76 ; 0x2cb8 <HoTT_Parser+0x6a>
2c6c: c0 93 b0 0c sts 0x0CB0, r28
2c70: 80 91 ef 02 lds r24, 0x02EF
2c74: 8f 5f subi r24, 0xFF ; 255
2c76: 16 c0 rjmp .+44 ; 0x2ca4 <HoTT_Parser+0x56>
2c78: 8f 37 cpi r24, 0x7F ; 127
2c7a: f1 f4 brne .+60 ; 0x2cb8 <HoTT_Parser+0x6a>
2c7c: 80 91 a9 0c lds r24, 0x0CA9
2c80: 88 23 and r24, r24
2c82: 29 f4 brne .+10 ; 0x2c8e <HoTT_Parser+0x40>
2c84: 8c 2f mov r24, r28
2c86: 80 95 com r24
2c88: 8f 70 andi r24, 0x0F ; 15
2c8a: 80 93 a9 0c sts 0x0CA9, r24
2c8e: 0e 94 cc 60 call 0xc198 ; 0xc198 <HoTT_Waring>
2c92: 80 93 0a 07 sts 0x070A, r24
2c96: 88 e0 ldi r24, 0x08 ; 8
2c98: 97 e0 ldi r25, 0x07 ; 7
2c9a: 90 93 f1 02 sts 0x02F1, r25
2c9e: 80 93 f0 02 sts 0x02F0, r24
2ca2: 8d ea ldi r24, 0xAD ; 173
2ca4: 80 93 ef 02 sts 0x02EF, r24
2ca8: 80 91 c9 00 lds r24, 0x00C9
2cac: 8f 7e andi r24, 0xEF ; 239
2cae: 80 93 c9 00 sts 0x00C9, r24
2cb2: 82 e0 ldi r24, 0x02 ; 2
2cb4: 80 93 ee 02 sts 0x02EE, r24
2cb8: c0 93 00 03 sts 0x0300, r28
2cbc: cf 91 pop r28
2cbe: 08 95 ret
 
00002cc0 <HoTT_Polling>:
2cc0: 30 91 ee 02 lds r19, 0x02EE
2cc4: 33 23 and r19, r19
2cc6: 31 f0 breq .+12 ; 0x2cd4 <HoTT_Polling+0x14>
2cc8: 80 91 ee 02 lds r24, 0x02EE
2ccc: 81 50 subi r24, 0x01 ; 1
2cce: 80 93 ee 02 sts 0x02EE, r24
2cd2: 08 95 ret
2cd4: 80 91 ef 02 lds r24, 0x02EF
2cd8: 88 23 and r24, r24
2cda: 61 f1 breq .+88 ; 0x2d34 <HoTT_Polling+0x74>
2cdc: 40 91 ef 02 lds r20, 0x02EF
2ce0: 90 91 01 03 lds r25, 0x0301
2ce4: 41 30 cpi r20, 0x01 ; 1
2ce6: 69 f4 brne .+26 ; 0x2d02 <HoTT_Polling+0x42>
2ce8: 29 2f mov r18, r25
2cea: 30 93 01 03 sts 0x0301, r19
2cee: 80 91 ed 02 lds r24, 0x02ED
2cf2: 88 23 and r24, r24
2cf4: 19 f0 breq .+6 ; 0x2cfc <HoTT_Polling+0x3c>
2cf6: 30 93 ed 02 sts 0x02ED, r19
2cfa: 10 c0 rjmp .+32 ; 0x2d1c <HoTT_Polling+0x5c>
2cfc: 40 93 ed 02 sts 0x02ED, r20
2d00: 0d c0 rjmp .+26 ; 0x2d1c <HoTT_Polling+0x5c>
2d02: e0 91 f0 02 lds r30, 0x02F0
2d06: f0 91 f1 02 lds r31, 0x02F1
2d0a: 81 91 ld r24, Z+
2d0c: f0 93 f1 02 sts 0x02F1, r31
2d10: e0 93 f0 02 sts 0x02F0, r30
2d14: 28 2f mov r18, r24
2d16: 98 0f add r25, r24
2d18: 90 93 01 03 sts 0x0301, r25
2d1c: 80 91 c8 00 lds r24, 0x00C8
2d20: 85 ff sbrs r24, 5
2d22: fc cf rjmp .-8 ; 0x2d1c <HoTT_Polling+0x5c>
2d24: 20 93 ce 00 sts 0x00CE, r18
2d28: 80 91 ef 02 lds r24, 0x02EF
2d2c: 81 50 subi r24, 0x01 ; 1
2d2e: 80 93 ef 02 sts 0x02EF, r24
2d32: 08 95 ret
2d34: 80 91 c9 00 lds r24, 0x00C9
2d38: 80 61 ori r24, 0x10 ; 16
2d3a: 80 93 c9 00 sts 0x00C9, r24
2d3e: 08 95 ret
 
00002d40 <ACC_AltitudeFusion>:
2d40: 6f 92 push r6
2d42: 7f 92 push r7
2d44: 8f 92 push r8
2d46: 9f 92 push r9
2d48: af 92 push r10
2d4a: bf 92 push r11
2d4c: cf 92 push r12
2d4e: df 92 push r13
2d50: ef 92 push r14
2d52: ff 92 push r15
2d54: 0f 93 push r16
2d56: 1f 93 push r17
2d58: 88 23 and r24, r24
2d5a: 61 f1 breq .+88 ; 0x2db4 <ACC_AltitudeFusion+0x74>
2d5c: 82 30 cpi r24, 0x02 ; 2
2d5e: 41 f4 brne .+16 ; 0x2d70 <ACC_AltitudeFusion+0x30>
2d60: 10 92 0a 03 sts 0x030A, r1
2d64: 10 92 0b 03 sts 0x030B, r1
2d68: 10 92 0c 03 sts 0x030C, r1
2d6c: 10 92 0d 03 sts 0x030D, r1
2d70: 20 91 fe 03 lds r18, 0x03FE
2d74: 30 91 ff 03 lds r19, 0x03FF
2d78: 40 91 00 04 lds r20, 0x0400
2d7c: 50 91 01 04 lds r21, 0x0401
2d80: da 01 movw r26, r20
2d82: c9 01 movw r24, r18
2d84: 19 e0 ldi r17, 0x09 ; 9
2d86: 88 0f add r24, r24
2d88: 99 1f adc r25, r25
2d8a: aa 1f adc r26, r26
2d8c: bb 1f adc r27, r27
2d8e: 1a 95 dec r17
2d90: d1 f7 brne .-12 ; 0x2d86 <ACC_AltitudeFusion+0x46>
2d92: 80 93 57 03 sts 0x0357, r24
2d96: 90 93 58 03 sts 0x0358, r25
2d9a: a0 93 59 03 sts 0x0359, r26
2d9e: b0 93 5a 03 sts 0x035A, r27
2da2: 20 93 02 03 sts 0x0302, r18
2da6: 30 93 03 03 sts 0x0303, r19
2daa: 40 93 04 03 sts 0x0304, r20
2dae: 50 93 05 03 sts 0x0305, r21
2db2: 26 c1 rjmp .+588 ; 0x3000 <ACC_AltitudeFusion+0x2c0>
2db4: a0 90 fe 03 lds r10, 0x03FE
2db8: b0 90 ff 03 lds r11, 0x03FF
2dbc: c0 90 00 04 lds r12, 0x0400
2dc0: d0 90 01 04 lds r13, 0x0401
2dc4: 80 91 02 03 lds r24, 0x0302
2dc8: 90 91 03 03 lds r25, 0x0303
2dcc: a0 91 04 03 lds r26, 0x0304
2dd0: b0 91 05 03 lds r27, 0x0305
2dd4: 35 01 movw r6, r10
2dd6: 46 01 movw r8, r12
2dd8: 68 1a sub r6, r24
2dda: 79 0a sbc r7, r25
2ddc: 8a 0a sbc r8, r26
2dde: 9b 0a sbc r9, r27
2de0: 60 92 06 03 sts 0x0306, r6
2de4: 70 92 07 03 sts 0x0307, r7
2de8: 80 92 08 03 sts 0x0308, r8
2dec: 90 92 09 03 sts 0x0309, r9
2df0: 80 91 5b 03 lds r24, 0x035B
2df4: 90 91 5c 03 lds r25, 0x035C
2df8: 84 55 subi r24, 0x54 ; 84
2dfa: 9f 4f sbci r25, 0xFF ; 255
2dfc: 7c 01 movw r14, r24
2dfe: 00 27 eor r16, r16
2e00: f7 fc sbrc r15, 7
2e02: 00 95 com r16
2e04: 10 2f mov r17, r16
2e06: 80 91 2d 06 lds r24, 0x062D
2e0a: 90 91 2e 06 lds r25, 0x062E
2e0e: 9c 01 movw r18, r24
2e10: 44 27 eor r20, r20
2e12: 37 fd sbrc r19, 7
2e14: 40 95 com r20
2e16: 54 2f mov r21, r20
2e18: c8 01 movw r24, r16
2e1a: b7 01 movw r22, r14
2e1c: 0e 94 27 b1 call 0x1624e ; 0x1624e <__mulsi3>
2e20: 97 ff sbrs r25, 7
2e22: 04 c0 rjmp .+8 ; 0x2e2c <ACC_AltitudeFusion+0xec>
2e24: 61 50 subi r22, 0x01 ; 1
2e26: 70 4e sbci r23, 0xE0 ; 224
2e28: 8f 4f sbci r24, 0xFF ; 255
2e2a: 9f 4f sbci r25, 0xFF ; 255
2e2c: ab 01 movw r20, r22
2e2e: bc 01 movw r22, r24
2e30: fd e0 ldi r31, 0x0D ; 13
2e32: 75 95 asr r23
2e34: 67 95 ror r22
2e36: 57 95 ror r21
2e38: 47 95 ror r20
2e3a: fa 95 dec r31
2e3c: d1 f7 brne .-12 ; 0x2e32 <ACC_AltitudeFusion+0xf2>
2e3e: 4c 5a subi r20, 0xAC ; 172
2e40: 50 40 sbci r21, 0x00 ; 0
2e42: 60 40 sbci r22, 0x00 ; 0
2e44: 70 40 sbci r23, 0x00 ; 0
2e46: 40 93 0e 03 sts 0x030E, r20
2e4a: 50 93 0f 03 sts 0x030F, r21
2e4e: 60 93 10 03 sts 0x0310, r22
2e52: 70 93 11 03 sts 0x0311, r23
2e56: 20 91 ec 08 lds r18, 0x08EC
2e5a: 30 91 ed 08 lds r19, 0x08ED
2e5e: 37 ff sbrs r19, 7
2e60: 02 c0 rjmp .+4 ; 0x2e66 <ACC_AltitudeFusion+0x126>
2e62: 21 5f subi r18, 0xF1 ; 241
2e64: 3f 4f sbci r19, 0xFF ; 255
2e66: e4 e0 ldi r30, 0x04 ; 4
2e68: 35 95 asr r19
2e6a: 27 95 ror r18
2e6c: ea 95 dec r30
2e6e: e1 f7 brne .-8 ; 0x2e68 <ACC_AltitudeFusion+0x128>
2e70: 80 91 5f 03 lds r24, 0x035F
2e74: 90 91 60 03 lds r25, 0x0360
2e78: 82 9f mul r24, r18
2e7a: d0 01 movw r26, r0
2e7c: 83 9f mul r24, r19
2e7e: b0 0d add r27, r0
2e80: 92 9f mul r25, r18
2e82: b0 0d add r27, r0
2e84: 11 24 eor r1, r1
2e86: cd 01 movw r24, r26
2e88: b7 ff sbrs r27, 7
2e8a: 02 c0 rjmp .+4 ; 0x2e90 <ACC_AltitudeFusion+0x150>
2e8c: 81 50 subi r24, 0x01 ; 1
2e8e: 9f 4f sbci r25, 0xFF ; 255
2e90: e9 2f mov r30, r25
2e92: ff 27 eor r31, r31
2e94: e7 fd sbrc r30, 7
2e96: fa 95 dec r31
2e98: 20 91 ea 08 lds r18, 0x08EA
2e9c: 30 91 eb 08 lds r19, 0x08EB
2ea0: 37 ff sbrs r19, 7
2ea2: 02 c0 rjmp .+4 ; 0x2ea8 <ACC_AltitudeFusion+0x168>
2ea4: 21 5f subi r18, 0xF1 ; 241
2ea6: 3f 4f sbci r19, 0xFF ; 255
2ea8: 84 e0 ldi r24, 0x04 ; 4
2eaa: 35 95 asr r19
2eac: 27 95 ror r18
2eae: 8a 95 dec r24
2eb0: e1 f7 brne .-8 ; 0x2eaa <ACC_AltitudeFusion+0x16a>
2eb2: 80 91 5d 03 lds r24, 0x035D
2eb6: 90 91 5e 03 lds r25, 0x035E
2eba: 82 9f mul r24, r18
2ebc: d0 01 movw r26, r0
2ebe: 83 9f mul r24, r19
2ec0: b0 0d add r27, r0
2ec2: 92 9f mul r25, r18
2ec4: b0 0d add r27, r0
2ec6: 11 24 eor r1, r1
2ec8: cd 01 movw r24, r26
2eca: b7 ff sbrs r27, 7
2ecc: 02 c0 rjmp .+4 ; 0x2ed2 <ACC_AltitudeFusion+0x192>
2ece: 81 50 subi r24, 0x01 ; 1
2ed0: 9f 4f sbci r25, 0xFF ; 255
2ed2: 89 2f mov r24, r25
2ed4: 99 0f add r25, r25
2ed6: 99 0b sbc r25, r25
2ed8: e8 0f add r30, r24
2eda: f9 1f adc r31, r25
2edc: cf 01 movw r24, r30
2ede: aa 27 eor r26, r26
2ee0: 97 fd sbrc r25, 7
2ee2: a0 95 com r26
2ee4: ba 2f mov r27, r26
2ee6: 84 0f add r24, r20
2ee8: 95 1f adc r25, r21
2eea: a6 1f adc r26, r22
2eec: b7 1f adc r27, r23
2eee: 80 93 0e 03 sts 0x030E, r24
2ef2: 90 93 0f 03 sts 0x030F, r25
2ef6: a0 93 10 03 sts 0x0310, r26
2efa: b0 93 11 03 sts 0x0311, r27
2efe: bc 01 movw r22, r24
2f00: cd 01 movw r24, r26
2f02: 2d e0 ldi r18, 0x0D ; 13
2f04: 30 e0 ldi r19, 0x00 ; 0
2f06: 40 e0 ldi r20, 0x00 ; 0
2f08: 50 e0 ldi r21, 0x00 ; 0
2f0a: 0e 94 27 b1 call 0x1624e ; 0x1624e <__mulsi3>
2f0e: 7b 01 movw r14, r22
2f10: 8c 01 movw r16, r24
2f12: c4 01 movw r24, r8
2f14: b3 01 movw r22, r6
2f16: 24 ef ldi r18, 0xF4 ; 244
2f18: 31 e0 ldi r19, 0x01 ; 1
2f1a: 40 e0 ldi r20, 0x00 ; 0
2f1c: 50 e0 ldi r21, 0x00 ; 0
2f1e: 0e 94 27 b1 call 0x1624e ; 0x1624e <__mulsi3>
2f22: dc 01 movw r26, r24
2f24: cb 01 movw r24, r22
2f26: e8 0e add r14, r24
2f28: f9 1e adc r15, r25
2f2a: 0a 1f adc r16, r26
2f2c: 1b 1f adc r17, r27
2f2e: 80 91 0a 03 lds r24, 0x030A
2f32: 90 91 0b 03 lds r25, 0x030B
2f36: a0 91 0c 03 lds r26, 0x030C
2f3a: b0 91 0d 03 lds r27, 0x030D
2f3e: 20 91 12 03 lds r18, 0x0312
2f42: 30 91 13 03 lds r19, 0x0313
2f46: 40 91 14 03 lds r20, 0x0314
2f4a: 50 91 15 03 lds r21, 0x0315
2f4e: 82 1b sub r24, r18
2f50: 93 0b sbc r25, r19
2f52: a4 0b sbc r26, r20
2f54: b5 0b sbc r27, r21
2f56: e8 0e add r14, r24
2f58: f9 1e adc r15, r25
2f5a: 0a 1f adc r16, r26
2f5c: 1b 1f adc r17, r27
2f5e: e0 92 0a 03 sts 0x030A, r14
2f62: f0 92 0b 03 sts 0x030B, r15
2f66: 00 93 0c 03 sts 0x030C, r16
2f6a: 10 93 0d 03 sts 0x030D, r17
2f6e: d8 01 movw r26, r16
2f70: c7 01 movw r24, r14
2f72: 80 50 subi r24, 0x00 ; 0
2f74: 9e 4f sbci r25, 0xFE ; 254
2f76: af 4f sbci r26, 0xFF ; 255
2f78: bf 4f sbci r27, 0xFF ; 255
2f7a: b7 ff sbrs r27, 7
2f7c: 06 c0 rjmp .+12 ; 0x2f8a <ACC_AltitudeFusion+0x24a>
2f7e: d8 01 movw r26, r16
2f80: c7 01 movw r24, r14
2f82: 81 50 subi r24, 0x01 ; 1
2f84: 9a 4f sbci r25, 0xFA ; 250
2f86: af 4f sbci r26, 0xFF ; 255
2f88: bf 4f sbci r27, 0xFF ; 255
2f8a: 1a e0 ldi r17, 0x0A ; 10
2f8c: b5 95 asr r27
2f8e: a7 95 ror r26
2f90: 97 95 ror r25
2f92: 87 95 ror r24
2f94: 1a 95 dec r17
2f96: d1 f7 brne .-12 ; 0x2f8c <ACC_AltitudeFusion+0x24c>
2f98: 80 93 12 03 sts 0x0312, r24
2f9c: 90 93 13 03 sts 0x0313, r25
2fa0: a0 93 14 03 sts 0x0314, r26
2fa4: b0 93 15 03 sts 0x0315, r27
2fa8: a0 92 02 03 sts 0x0302, r10
2fac: b0 92 03 03 sts 0x0303, r11
2fb0: c0 92 04 03 sts 0x0304, r12
2fb4: d0 92 05 03 sts 0x0305, r13
2fb8: 20 91 57 03 lds r18, 0x0357
2fbc: 30 91 58 03 lds r19, 0x0358
2fc0: 40 91 59 03 lds r20, 0x0359
2fc4: 50 91 5a 03 lds r21, 0x035A
2fc8: e0 90 4a 03 lds r14, 0x034A
2fcc: f0 90 4b 03 lds r15, 0x034B
2fd0: 00 91 4c 03 lds r16, 0x034C
2fd4: 10 91 4d 03 lds r17, 0x034D
2fd8: 2e 19 sub r18, r14
2fda: 3f 09 sbc r19, r15
2fdc: 40 0b sbc r20, r16
2fde: 51 0b sbc r21, r17
2fe0: 28 0f add r18, r24
2fe2: 39 1f adc r19, r25
2fe4: 4a 1f adc r20, r26
2fe6: 5b 1f adc r21, r27
2fe8: 2a 0d add r18, r10
2fea: 3b 1d adc r19, r11
2fec: 4c 1d adc r20, r12
2fee: 5d 1d adc r21, r13
2ff0: 20 93 57 03 sts 0x0357, r18
2ff4: 30 93 58 03 sts 0x0358, r19
2ff8: 40 93 59 03 sts 0x0359, r20
2ffc: 50 93 5a 03 sts 0x035A, r21
3000: 80 91 12 03 lds r24, 0x0312
3004: 90 91 13 03 lds r25, 0x0313
3008: 90 93 55 03 sts 0x0355, r25
300c: 80 93 54 03 sts 0x0354, r24
3010: 80 91 57 03 lds r24, 0x0357
3014: 90 91 58 03 lds r25, 0x0358
3018: a0 91 59 03 lds r26, 0x0359
301c: b0 91 5a 03 lds r27, 0x035A
3020: bc 01 movw r22, r24
3022: cd 01 movw r24, r26
3024: 1f 91 pop r17
3026: 0f 91 pop r16
3028: ff 90 pop r15
302a: ef 90 pop r14
302c: df 90 pop r13
302e: cf 90 pop r12
3030: bf 90 pop r11
3032: af 90 pop r10
3034: 9f 90 pop r9
3036: 8f 90 pop r8
3038: 7f 90 pop r7
303a: 6f 90 pop r6
303c: 08 95 ret
 
0000303e <LIBFC_GetCPUType>:
303e: 2f b7 in r18, 0x3f ; 63
3040: 40 e0 ldi r20, 0x00 ; 0
3042: f8 94 cli
3044: e0 e0 ldi r30, 0x00 ; 0
3046: f0 e0 ldi r31, 0x00 ; 0
3048: 81 e2 ldi r24, 0x21 ; 33
304a: 80 93 57 00 sts 0x0057, r24
304e: 94 91 lpm r25, Z
3050: e2 e0 ldi r30, 0x02 ; 2
3052: f0 e0 ldi r31, 0x00 ; 0
3054: 80 93 57 00 sts 0x0057, r24
3058: 34 91 lpm r19, Z
305a: e4 e0 ldi r30, 0x04 ; 4
305c: f0 e0 ldi r31, 0x00 ; 0
305e: 80 93 57 00 sts 0x0057, r24
3062: 84 91 lpm r24, Z
3064: 2f bf out 0x3f, r18 ; 63
3066: 9e 31 cpi r25, 0x1E ; 30
3068: 99 f4 brne .+38 ; 0x3090 <LIBFC_GetCPUType+0x52>
306a: 36 39 cpi r19, 0x96 ; 150
306c: 41 f4 brne .+16 ; 0x307e <LIBFC_GetCPUType+0x40>
306e: 89 30 cpi r24, 0x09 ; 9
3070: 11 f4 brne .+4 ; 0x3076 <LIBFC_GetCPUType+0x38>
3072: 41 e0 ldi r20, 0x01 ; 1
3074: 0d c0 rjmp .+26 ; 0x3090 <LIBFC_GetCPUType+0x52>
3076: 8a 30 cpi r24, 0x0A ; 10
3078: 59 f4 brne .+22 ; 0x3090 <LIBFC_GetCPUType+0x52>
307a: 42 e0 ldi r20, 0x02 ; 2
307c: 09 c0 rjmp .+18 ; 0x3090 <LIBFC_GetCPUType+0x52>
307e: 37 39 cpi r19, 0x97 ; 151
3080: 39 f4 brne .+14 ; 0x3090 <LIBFC_GetCPUType+0x52>
3082: 86 30 cpi r24, 0x06 ; 6
3084: 11 f4 brne .+4 ; 0x308a <LIBFC_GetCPUType+0x4c>
3086: 43 e0 ldi r20, 0x03 ; 3
3088: 03 c0 rjmp .+6 ; 0x3090 <LIBFC_GetCPUType+0x52>
308a: 85 30 cpi r24, 0x05 ; 5
308c: 09 f4 brne .+2 ; 0x3090 <LIBFC_GetCPUType+0x52>
308e: 44 e0 ldi r20, 0x04 ; 4
3090: 84 2f mov r24, r20
3092: 99 27 eor r25, r25
3094: 08 95 ret
 
00003096 <awokdjwqdjcjuhcuweih>:
3096: 9f b7 in r25, 0x3f ; 63
3098: f8 94 cli
309a: 80 91 c9 00 lds r24, 0x00C9
309e: 87 7f andi r24, 0xF7 ; 247
30a0: 80 93 c9 00 sts 0x00C9, r24
30a4: 80 91 c9 00 lds r24, 0x00C9
30a8: 8f 7e andi r24, 0xEF ; 239
30aa: 80 93 c9 00 sts 0x00C9, r24
30ae: 80 91 c9 00 lds r24, 0x00C9
30b2: 8f 77 andi r24, 0x7F ; 127
30b4: 80 93 c9 00 sts 0x00C9, r24
30b8: 80 91 c9 00 lds r24, 0x00C9
30bc: 8f 7b andi r24, 0xBF ; 191
30be: 80 93 c9 00 sts 0x00C9, r24
30c2: 80 91 c9 00 lds r24, 0x00C9
30c6: 8f 7d andi r24, 0xDF ; 223
30c8: 80 93 c9 00 sts 0x00C9, r24
30cc: 9f bf out 0x3f, r25 ; 63
30ce: 08 95 ret
 
000030d0 <LIBFC_ReceiverInit>:
30d0: 1f 93 push r17
30d2: cf 93 push r28
30d4: df 93 push r29
30d6: 18 2f mov r17, r24
30d8: 80 91 ec 02 lds r24, 0x02EC
30dc: 88 23 and r24, r24
30de: 09 f4 brne .+2 ; 0x30e2 <LIBFC_ReceiverInit+0x12>
30e0: a4 c0 rjmp .+328 ; 0x322a <LIBFC_ReceiverInit+0x15a>
30e2: 80 91 05 01 lds r24, 0x0105
30e6: 18 17 cp r17, r24
30e8: 09 f4 brne .+2 ; 0x30ec <LIBFC_ReceiverInit+0x1c>
30ea: 9f c0 rjmp .+318 ; 0x322a <LIBFC_ReceiverInit+0x15a>
30ec: 80 91 eb 02 lds r24, 0x02EB
30f0: 88 23 and r24, r24
30f2: 19 f4 brne .+6 ; 0x30fa <LIBFC_ReceiverInit+0x2a>
30f4: a4 df rcall .-184 ; 0x303e <LIBFC_GetCPUType>
30f6: 80 93 eb 02 sts 0x02EB, r24
30fa: 82 ed ldi r24, 0xD2 ; 210
30fc: 91 e0 ldi r25, 0x01 ; 1
30fe: 90 93 92 02 sts 0x0292, r25
3102: 80 93 91 02 sts 0x0291, r24
3106: 8e e0 ldi r24, 0x0E ; 14
3108: 99 e1 ldi r25, 0x19 ; 25
310a: 9f 93 push r25
310c: 8f 93 push r24
310e: c7 eb ldi r28, 0xB7 ; 183
3110: dc ea ldi r29, 0xAC ; 172
3112: df 93 push r29
3114: cf 93 push r28
3116: e0 91 78 06 lds r30, 0x0678
311a: f0 91 79 06 lds r31, 0x0679
311e: 09 95 icall
3120: 0f 90 pop r0
3122: 0f 90 pop r0
3124: 0f 90 pop r0
3126: 0f 90 pop r0
3128: 81 2f mov r24, r17
312a: 99 27 eor r25, r25
312c: aa 27 eor r26, r26
312e: bb 27 eor r27, r27
3130: fc 01 movw r30, r24
3132: 09 97 sbiw r24, 0x09 ; 9
3134: 78 f5 brcc .+94 ; 0x3194 <LIBFC_ReceiverInit+0xc4>
3136: ee 5e subi r30, 0xEE ; 238
3138: fe 4f sbci r31, 0xFE ; 254
313a: 20 91 78 06 lds r18, 0x0678
313e: 30 91 79 06 lds r19, 0x0679
3142: 0c 94 a7 b1 jmp 0x1634e ; 0x1634e <__tablejump2__>
3146: 8a e0 ldi r24, 0x0A ; 10
3148: 99 e1 ldi r25, 0x19 ; 25
314a: 02 c0 rjmp .+4 ; 0x3150 <LIBFC_ReceiverInit+0x80>
314c: 81 e0 ldi r24, 0x01 ; 1
314e: 99 e1 ldi r25, 0x19 ; 25
3150: 9f 93 push r25
3152: 8f 93 push r24
3154: df 93 push r29
3156: cf 93 push r28
3158: f9 01 movw r30, r18
315a: 09 95 icall
315c: 27 c0 rjmp .+78 ; 0x31ac <LIBFC_ReceiverInit+0xdc>
315e: 8c ef ldi r24, 0xFC ; 252
3160: 98 e1 ldi r25, 0x18 ; 24
3162: f6 cf rjmp .-20 ; 0x3150 <LIBFC_ReceiverInit+0x80>
3164: 84 ef ldi r24, 0xF4 ; 244
3166: 98 e1 ldi r25, 0x18 ; 24
3168: f3 cf rjmp .-26 ; 0x3150 <LIBFC_ReceiverInit+0x80>
316a: 8c ee ldi r24, 0xEC ; 236
316c: 98 e1 ldi r25, 0x18 ; 24
316e: 9f 93 push r25
3170: 8f 93 push r24
3172: df 93 push r29
3174: cf 93 push r28
3176: f9 01 movw r30, r18
3178: 09 95 icall
317a: 88 ed ldi r24, 0xD8 ; 216
317c: 91 e0 ldi r25, 0x01 ; 1
317e: 90 93 92 02 sts 0x0292, r25
3182: 80 93 91 02 sts 0x0291, r24
3186: 12 c0 rjmp .+36 ; 0x31ac <LIBFC_ReceiverInit+0xdc>
3188: 87 ee ldi r24, 0xE7 ; 231
318a: 98 e1 ldi r25, 0x18 ; 24
318c: e1 cf rjmp .-62 ; 0x3150 <LIBFC_ReceiverInit+0x80>
318e: 8b e1 ldi r24, 0x1B ; 27
3190: 99 e1 ldi r25, 0x19 ; 25
3192: de cf rjmp .-68 ; 0x3150 <LIBFC_ReceiverInit+0x80>
3194: 81 e2 ldi r24, 0x21 ; 33
3196: 99 e1 ldi r25, 0x19 ; 25
3198: 9f 93 push r25
319a: 8f 93 push r24
319c: df 93 push r29
319e: cf 93 push r28
31a0: e0 91 78 06 lds r30, 0x0678
31a4: f0 91 79 06 lds r31, 0x0679
31a8: 09 95 icall
31aa: 10 e0 ldi r17, 0x00 ; 0
31ac: 0f 90 pop r0
31ae: 0f 90 pop r0
31b0: 0f 90 pop r0
31b2: 0f 90 pop r0
31b4: 80 91 eb 02 lds r24, 0x02EB
31b8: 84 30 cpi r24, 0x04 ; 4
31ba: 11 f0 breq .+4 ; 0x31c0 <LIBFC_ReceiverInit+0xf0>
31bc: 82 30 cpi r24, 0x02 ; 2
31be: 01 f5 brne .+64 ; 0x3200 <LIBFC_ReceiverInit+0x130>
31c0: 6a df rcall .-300 ; 0x3096 <awokdjwqdjcjuhcuweih>
31c2: 81 2f mov r24, r17
31c4: 81 50 subi r24, 0x01 ; 1
31c6: 83 30 cpi r24, 0x03 ; 3
31c8: 18 f4 brcc .+6 ; 0x31d0 <LIBFC_ReceiverInit+0x100>
31ca: 0e 94 1c 94 call 0x12838 ; 0x12838 <SpektrumUartInit>
31ce: 2b c0 rjmp .+86 ; 0x3226 <LIBFC_ReceiverInit+0x156>
31d0: 14 30 cpi r17, 0x04 ; 4
31d2: 19 f4 brne .+6 ; 0x31da <LIBFC_ReceiverInit+0x10a>
31d4: 0e 94 8a 0f call 0x1f14 ; 0x1f14 <INiuzBtergGIBuB76T0G5>
31d8: 26 c0 rjmp .+76 ; 0x3226 <LIBFC_ReceiverInit+0x156>
31da: 18 30 cpi r17, 0x08 ; 8
31dc: 19 f4 brne .+6 ; 0x31e4 <LIBFC_ReceiverInit+0x114>
31de: 0e 94 06 b0 call 0x1600c ; 0x1600c <User_Receiver_Init>
31e2: 21 c0 rjmp .+66 ; 0x3226 <LIBFC_ReceiverInit+0x156>
31e4: 15 30 cpi r17, 0x05 ; 5
31e6: 19 f4 brne .+6 ; 0x31ee <LIBFC_ReceiverInit+0x11e>
31e8: 0e 94 cc 0d call 0x1b98 ; 0x1b98 <fomklkdtn89SFGrsgt9rf>
31ec: 1c c0 rjmp .+56 ; 0x3226 <LIBFC_ReceiverInit+0x156>
31ee: 16 30 cpi r17, 0x06 ; 6
31f0: 11 f4 brne .+4 ; 0x31f6 <LIBFC_ReceiverInit+0x126>
31f2: 49 dc rcall .-1902 ; 0x2a86 <HoTT_Init>
31f4: 18 c0 rjmp .+48 ; 0x3226 <LIBFC_ReceiverInit+0x156>
31f6: 17 30 cpi r17, 0x07 ; 7
31f8: b1 f4 brne .+44 ; 0x3226 <LIBFC_ReceiverInit+0x156>
31fa: 0e 94 c5 92 call 0x1258a ; 0x1258a <SbusUartInit>
31fe: 13 c0 rjmp .+38 ; 0x3226 <LIBFC_ReceiverInit+0x156>
3200: 11 23 and r17, r17
3202: 89 f0 breq .+34 ; 0x3226 <LIBFC_ReceiverInit+0x156>
3204: 87 e3 ldi r24, 0x37 ; 55
3206: 99 e1 ldi r25, 0x19 ; 25
3208: 9f 93 push r25
320a: 8f 93 push r24
320c: 87 eb ldi r24, 0xB7 ; 183
320e: 9c ea ldi r25, 0xAC ; 172
3210: 9f 93 push r25
3212: 8f 93 push r24
3214: e0 91 78 06 lds r30, 0x0678
3218: f0 91 79 06 lds r31, 0x0679
321c: 09 95 icall
321e: 0f 90 pop r0
3220: 0f 90 pop r0
3222: 0f 90 pop r0
3224: 0f 90 pop r0
3226: 10 93 05 01 sts 0x0105, r17
322a: df 91 pop r29
322c: cf 91 pop r28
322e: 1f 91 pop r17
3230: 08 95 ret
 
00003232 <LIBFC_Init>:
3232: 0f 93 push r16
3234: 1f 93 push r17
3236: 08 2f mov r16, r24
3238: 81 e0 ldi r24, 0x01 ; 1
323a: 80 93 ec 02 sts 0x02EC, r24
323e: 40 91 04 01 lds r20, 0x0104
3242: e7 e9 ldi r30, 0x97 ; 151
3244: f8 e1 ldi r31, 0x18 ; 24
3246: 20 e0 ldi r18, 0x00 ; 0
3248: 30 e0 ldi r19, 0x00 ; 0
324a: 5f e4 ldi r21, 0x4F ; 79
324c: 84 91 lpm r24, Z
324e: 99 27 eor r25, r25
3250: 2f 5f subi r18, 0xFF ; 255
3252: 3f 4f sbci r19, 0xFF ; 255
3254: 82 9f mul r24, r18
3256: b0 01 movw r22, r0
3258: 83 9f mul r24, r19
325a: 70 0d add r23, r0
325c: 92 9f mul r25, r18
325e: 70 0d add r23, r0
3260: 11 24 eor r1, r1
3262: 46 27 eor r20, r22
3264: 51 50 subi r21, 0x01 ; 1
3266: 31 96 adiw r30, 0x01 ; 1
3268: 57 ff sbrs r21, 7
326a: f0 cf rjmp .-32 ; 0x324c <LIBFC_Init+0x1a>
326c: 40 93 04 01 sts 0x0104, r20
3270: ef e6 ldi r30, 0x6F ; 111
3272: f8 e1 ldi r31, 0x18 ; 24
3274: 20 e0 ldi r18, 0x00 ; 0
3276: 30 e0 ldi r19, 0x00 ; 0
3278: 57 e2 ldi r21, 0x27 ; 39
327a: 84 91 lpm r24, Z
327c: 99 27 eor r25, r25
327e: 2f 5f subi r18, 0xFF ; 255
3280: 3f 4f sbci r19, 0xFF ; 255
3282: 82 9f mul r24, r18
3284: b0 01 movw r22, r0
3286: 83 9f mul r24, r19
3288: 70 0d add r23, r0
328a: 92 9f mul r25, r18
328c: 70 0d add r23, r0
328e: 11 24 eor r1, r1
3290: 46 27 eor r20, r22
3292: 51 50 subi r21, 0x01 ; 1
3294: 31 96 adiw r30, 0x01 ; 1
3296: 57 ff sbrs r21, 7
3298: f0 cf rjmp .-32 ; 0x327a <LIBFC_Init+0x48>
329a: 40 93 04 01 sts 0x0104, r20
329e: 80 91 eb 02 lds r24, 0x02EB
32a2: 88 23 and r24, r24
32a4: 19 f4 brne .+6 ; 0x32ac <LIBFC_Init+0x7a>
32a6: cb de rcall .-618 ; 0x303e <LIBFC_GetCPUType>
32a8: 80 93 eb 02 sts 0x02EB, r24
32ac: 81 e7 ldi r24, 0x71 ; 113
32ae: 92 e1 ldi r25, 0x12 ; 18
32b0: 90 93 79 06 sts 0x0679, r25
32b4: 80 93 78 06 sts 0x0678, r24
32b8: 80 91 04 01 lds r24, 0x0104
32bc: 83 34 cpi r24, 0x43 ; 67
32be: 59 f0 breq .+22 ; 0x32d6 <LIBFC_Init+0xa4>
32c0: 88 e1 ldi r24, 0x18 ; 24
32c2: 90 e0 ldi r25, 0x00 ; 0
32c4: 29 e2 ldi r18, 0x29 ; 41
32c6: 0f b6 in r0, 0x3f ; 63
32c8: f8 94 cli
32ca: a8 95 wdr
32cc: 80 93 60 00 sts 0x0060, r24
32d0: 0f be out 0x3f, r0 ; 63
32d2: 20 93 60 00 sts 0x0060, r18
32d6: 07 30 cpi r16, 0x07 ; 7
32d8: 91 f0 breq .+36 ; 0x32fe <LIBFC_Init+0xcc>
32da: 82 e5 ldi r24, 0x52 ; 82
32dc: 99 e1 ldi r25, 0x19 ; 25
32de: 9f 93 push r25
32e0: 8f 93 push r24
32e2: 87 eb ldi r24, 0xB7 ; 183
32e4: 9c ea ldi r25, 0xAC ; 172
32e6: 9f 93 push r25
32e8: 8f 93 push r24
32ea: e0 91 78 06 lds r30, 0x0678
32ee: f0 91 79 06 lds r31, 0x0679
32f2: 09 95 icall
32f4: 0f 90 pop r0
32f6: 0f 90 pop r0
32f8: 0f 90 pop r0
32fa: 0f 90 pop r0
32fc: ee cf rjmp .-36 ; 0x32da <LIBFC_Init+0xa8>
32fe: 80 91 54 01 lds r24, 0x0154
3302: 89 31 cpi r24, 0x19 ; 25
3304: 58 f1 brcs .+86 ; 0x335c <LIBFC_Init+0x12a>
3306: 80 91 ea 02 lds r24, 0x02EA
330a: 88 23 and r24, r24
330c: a9 f4 brne .+42 ; 0x3338 <LIBFC_Init+0x106>
330e: 8f e6 ldi r24, 0x6F ; 111
3310: 99 e1 ldi r25, 0x19 ; 25
3312: 9f 93 push r25
3314: 8f 93 push r24
3316: 87 eb ldi r24, 0xB7 ; 183
3318: 9c ea ldi r25, 0xAC ; 172
331a: 9f 93 push r25
331c: 8f 93 push r24
331e: e0 91 78 06 lds r30, 0x0678
3322: f0 91 79 06 lds r31, 0x0679
3326: 09 95 icall
3328: 87 e1 ldi r24, 0x17 ; 23
332a: 80 93 54 01 sts 0x0154, r24
332e: 0f 90 pop r0
3330: 0f 90 pop r0
3332: 0f 90 pop r0
3334: 0f 90 pop r0
3336: 12 c0 rjmp .+36 ; 0x335c <LIBFC_Init+0x12a>
3338: 15 bc out 0x25, r1 ; 37
333a: 87 31 cpi r24, 0x17 ; 23
333c: 19 f4 brne .+6 ; 0x3344 <LIBFC_Init+0x112>
333e: 80 93 54 01 sts 0x0154, r24
3342: 06 c0 rjmp .+12 ; 0x3350 <LIBFC_Init+0x11e>
3344: 87 e0 ldi r24, 0x07 ; 7
3346: 80 93 0b 01 sts 0x010B, r24
334a: 86 e0 ldi r24, 0x06 ; 6
334c: 80 93 0a 01 sts 0x010A, r24
3350: e0 91 02 01 lds r30, 0x0102
3354: f0 91 03 01 lds r31, 0x0103
3358: 8d ef ldi r24, 0xFD ; 253
335a: 09 95 icall
335c: 0e 94 4b 59 call 0xb296 ; 0xb296 <PrintLine>
3360: 81 e6 ldi r24, 0x61 ; 97
3362: 90 e0 ldi r25, 0x00 ; 0
3364: 9f 93 push r25
3366: 8f 93 push r24
3368: 88 e0 ldi r24, 0x08 ; 8
336a: 90 e0 ldi r25, 0x00 ; 0
336c: 9f 93 push r25
336e: 8f 93 push r24
3370: 82 e0 ldi r24, 0x02 ; 2
3372: 90 e0 ldi r25, 0x00 ; 0
3374: 9f 93 push r25
3376: 8f 93 push r24
3378: 80 91 54 01 lds r24, 0x0154
337c: 6a e0 ldi r22, 0x0A ; 10
337e: 0e 94 36 b1 call 0x1626c ; 0x1626c <__udivmodqi4>
3382: 89 2f mov r24, r25
3384: 99 27 eor r25, r25
3386: 9f 93 push r25
3388: 8f 93 push r24
338a: 80 91 54 01 lds r24, 0x0154
338e: 0e 94 36 b1 call 0x1626c ; 0x1626c <__udivmodqi4>
3392: 99 27 eor r25, r25
3394: 9f 93 push r25
3396: 8f 93 push r24
3398: 89 ea ldi r24, 0xA9 ; 169
339a: 99 e1 ldi r25, 0x19 ; 25
339c: 9f 93 push r25
339e: 8f 93 push r24
33a0: 07 eb ldi r16, 0xB7 ; 183
33a2: 1c ea ldi r17, 0xAC ; 172
33a4: 1f 93 push r17
33a6: 0f 93 push r16
33a8: e0 91 78 06 lds r30, 0x0678
33ac: f0 91 79 06 lds r31, 0x0679
33b0: 09 95 icall
33b2: 87 e9 ldi r24, 0x97 ; 151
33b4: 98 e1 ldi r25, 0x18 ; 24
33b6: 9f 93 push r25
33b8: 8f 93 push r24
33ba: 1f 93 push r17
33bc: 0f 93 push r16
33be: e0 91 78 06 lds r30, 0x0678
33c2: f0 91 79 06 lds r31, 0x0679
33c6: 09 95 icall
33c8: 8f e6 ldi r24, 0x6F ; 111
33ca: 98 e1 ldi r25, 0x18 ; 24
33cc: 9f 93 push r25
33ce: 8f 93 push r24
33d0: 1f 93 push r17
33d2: 0f 93 push r16
33d4: e0 91 78 06 lds r30, 0x0678
33d8: f0 91 79 06 lds r31, 0x0679
33dc: 09 95 icall
33de: 0e 94 4b 59 call 0xb296 ; 0xb296 <PrintLine>
33e2: 83 ec ldi r24, 0xC3 ; 195
33e4: 80 93 81 00 sts 0x0081, r24
33e8: 80 91 6f 00 lds r24, 0x006F
33ec: 80 62 ori r24, 0x20 ; 32
33ee: 80 93 6f 00 sts 0x006F, r24
33f2: 8d b7 in r24, 0x3d ; 61
33f4: 9e b7 in r25, 0x3e ; 62
33f6: 46 96 adiw r24, 0x16 ; 22
33f8: 8d bf out 0x3d, r24 ; 61
33fa: 1f 91 pop r17
33fc: 0f 91 pop r16
33fe: 08 95 ret
 
00003400 <LIBFC_CheckSettings>:
3400: 80 91 a6 05 lds r24, 0x05A6
3404: 8d 33 cpi r24, 0x3D ; 61
3406: 38 f0 brcs .+14 ; 0x3416 <LIBFC_CheckSettings+0x16>
3408: 80 91 d7 08 lds r24, 0x08D7
340c: 87 fd sbrc r24, 7
340e: 03 c0 rjmp .+6 ; 0x3416 <LIBFC_CheckSettings+0x16>
3410: 8c e3 ldi r24, 0x3C ; 60
3412: 80 93 a6 05 sts 0x05A6, r24
3416: 80 91 54 05 lds r24, 0x0554
341a: 88 23 and r24, r24
341c: 31 f0 breq .+12 ; 0x342a <LIBFC_CheckSettings+0x2a>
341e: 80 55 subi r24, 0x50 ; 80
3420: 85 36 cpi r24, 0x65 ; 101
3422: 18 f0 brcs .+6 ; 0x342a <LIBFC_CheckSettings+0x2a>
3424: 8f e7 ldi r24, 0x7F ; 127
3426: 80 93 54 05 sts 0x0554, r24
342a: 08 95 ret
 
0000342c <LIBFC_Polling>:
342c: 80 91 ec 02 lds r24, 0x02EC
3430: 88 23 and r24, r24
3432: 09 f4 brne .+2 ; 0x3436 <LIBFC_Polling+0xa>
3434: 85 c0 rjmp .+266 ; 0x3540 <LIBFC_Polling+0x114>
3436: 80 91 26 03 lds r24, 0x0326
343a: 81 50 subi r24, 0x01 ; 1
343c: 80 93 26 03 sts 0x0326, r24
3440: 88 23 and r24, r24
3442: 09 f0 breq .+2 ; 0x3446 <LIBFC_Polling+0x1a>
3444: 69 c0 rjmp .+210 ; 0x3518 <LIBFC_Polling+0xec>
3446: 89 e1 ldi r24, 0x19 ; 25
3448: 80 93 26 03 sts 0x0326, r24
344c: 80 91 a6 05 lds r24, 0x05A6
3450: 8e 33 cpi r24, 0x3E ; 62
3452: 38 f0 brcs .+14 ; 0x3462 <LIBFC_Polling+0x36>
3454: 80 91 d7 08 lds r24, 0x08D7
3458: 87 fd sbrc r24, 7
345a: 03 c0 rjmp .+6 ; 0x3462 <LIBFC_Polling+0x36>
345c: 8d e3 ldi r24, 0x3D ; 61
345e: 80 93 a6 05 sts 0x05A6, r24
3462: 80 91 04 04 lds r24, 0x0404
3466: 82 38 cpi r24, 0x82 ; 130
3468: a0 f5 brcc .+104 ; 0x34d2 <LIBFC_Polling+0xa6>
346a: 80 91 cc 03 lds r24, 0x03CC
346e: 90 91 cd 03 lds r25, 0x03CD
3472: 80 5d subi r24, 0xD0 ; 208
3474: 97 40 sbci r25, 0x07 ; 7
3476: 20 f0 brcs .+8 ; 0x3480 <LIBFC_Polling+0x54>
3478: 80 91 1b 05 lds r24, 0x051B
347c: 84 36 cpi r24, 0x64 ; 100
347e: 20 f4 brcc .+8 ; 0x3488 <LIBFC_Polling+0x5c>
3480: 10 92 28 03 sts 0x0328, r1
3484: 10 92 27 03 sts 0x0327, r1
3488: 20 91 27 03 lds r18, 0x0327
348c: 30 91 28 03 lds r19, 0x0328
3490: 21 15 cp r18, r1
3492: 31 05 cpc r19, r1
3494: b1 f1 breq .+108 ; 0x3502 <LIBFC_Polling+0xd6>
3496: c9 01 movw r24, r18
3498: 01 97 sbiw r24, 0x01 ; 1
349a: 90 93 28 03 sts 0x0328, r25
349e: 80 93 27 03 sts 0x0327, r24
34a2: 41 97 sbiw r24, 0x11 ; 17
34a4: 98 f1 brcs .+102 ; 0x350c <LIBFC_Polling+0xe0>
34a6: 80 91 d7 08 lds r24, 0x08D7
34aa: 84 ff sbrs r24, 4
34ac: 2f c0 rjmp .+94 ; 0x350c <LIBFC_Polling+0xe0>
34ae: 80 91 ca 03 lds r24, 0x03CA
34b2: 84 60 ori r24, 0x04 ; 4
34b4: 80 93 ca 03 sts 0x03CA, r24
34b8: 80 91 e5 08 lds r24, 0x08E5
34bc: 87 ff sbrs r24, 7
34be: 26 c0 rjmp .+76 ; 0x350c <LIBFC_Polling+0xe0>
34c0: 80 91 8d 04 lds r24, 0x048D
34c4: 88 23 and r24, r24
34c6: 11 f1 breq .+68 ; 0x350c <LIBFC_Polling+0xe0>
34c8: 30 93 28 03 sts 0x0328, r19
34cc: 20 93 27 03 sts 0x0327, r18
34d0: 1d c0 rjmp .+58 ; 0x350c <LIBFC_Polling+0xe0>
34d2: 80 91 04 04 lds r24, 0x0404
34d6: 85 3b cpi r24, 0xB5 ; 181
34d8: c8 f0 brcs .+50 ; 0x350c <LIBFC_Polling+0xe0>
34da: 90 91 a6 05 lds r25, 0x05A6
34de: 84 e1 ldi r24, 0x14 ; 20
34e0: 98 9f mul r25, r24
34e2: c0 01 movw r24, r0
34e4: 11 24 eor r1, r1
34e6: 40 96 adiw r24, 0x10 ; 16
34e8: 20 91 27 03 lds r18, 0x0327
34ec: 30 91 28 03 lds r19, 0x0328
34f0: 28 17 cp r18, r24
34f2: 39 07 cpc r19, r25
34f4: 30 f4 brcc .+12 ; 0x3502 <LIBFC_Polling+0xd6>
34f6: 2f 5f subi r18, 0xFF ; 255
34f8: 3f 4f sbci r19, 0xFF ; 255
34fa: 30 93 28 03 sts 0x0328, r19
34fe: 20 93 27 03 sts 0x0327, r18
3502: 80 91 ca 03 lds r24, 0x03CA
3506: 8b 7f andi r24, 0xFB ; 251
3508: 80 93 ca 03 sts 0x03CA, r24
350c: 80 91 04 01 lds r24, 0x0104
3510: 83 34 cpi r24, 0x43 ; 67
3512: 11 f0 breq .+4 ; 0x3518 <LIBFC_Polling+0xec>
3514: 10 92 ec 02 sts 0x02EC, r1
3518: 90 91 05 01 lds r25, 0x0105
351c: 96 30 cpi r25, 0x06 ; 6
351e: 09 f4 brne .+2 ; 0x3522 <LIBFC_Polling+0xf6>
3520: cf cb rjmp .-2146 ; 0x2cc0 <HoTT_Polling>
3522: 80 91 09 01 lds r24, 0x0109
3526: 88 23 and r24, r24
3528: 21 f0 breq .+8 ; 0x3532 <LIBFC_Polling+0x106>
352a: 81 50 subi r24, 0x01 ; 1
352c: 80 93 09 01 sts 0x0109, r24
3530: 08 95 ret
3532: 8b e4 ldi r24, 0x4B ; 75
3534: 80 93 09 01 sts 0x0109, r24
3538: 94 30 cpi r25, 0x04 ; 4
353a: 11 f4 brne .+4 ; 0x3540 <LIBFC_Polling+0x114>
353c: 0c 94 d4 11 jmp 0x23a8 ; 0x23a8 <a48784362857632195659>
3540: 08 95 ret
 
00003542 <__vector_28>:
3542: 1f 92 push r1
3544: 0f 92 push r0
3546: 0f b6 in r0, 0x3f ; 63
3548: 0f 92 push r0
354a: 11 24 eor r1, r1
354c: 2f 93 push r18
354e: 3f 93 push r19
3550: 4f 93 push r20
3552: 5f 93 push r21
3554: 6f 93 push r22
3556: 7f 93 push r23
3558: 8f 93 push r24
355a: 9f 93 push r25
355c: af 93 push r26
355e: bf 93 push r27
3560: ef 93 push r30
3562: ff 93 push r31
3564: 90 91 ce 00 lds r25, 0x00CE
3568: 80 91 ec 04 lds r24, 0x04EC
356c: 88 23 and r24, r24
356e: b9 f0 breq .+46 ; 0x359e <__vector_28+0x5c>
3570: 90 93 c6 00 sts 0x00C6, r25
3574: 80 91 ec 04 lds r24, 0x04EC
3578: 82 30 cpi r24, 0x02 ; 2
357a: 09 f0 breq .+2 ; 0x357e <__vector_28+0x3c>
357c: 3e c0 rjmp .+124 ; 0x35fa <__vector_28+0xb8>
357e: 9f 3f cpi r25, 0xFF ; 255
3580: e1 f5 brne .+120 ; 0x35fa <__vector_28+0xb8>
3582: 8f ef ldi r24, 0xFF ; 255
3584: 94 e3 ldi r25, 0x34 ; 52
3586: ac e0 ldi r26, 0x0C ; 12
3588: b0 e0 ldi r27, 0x00 ; 0
358a: c2 97 sbiw r24, 0x32 ; 50
358c: a1 09 sbc r26, r1
358e: b1 09 sbc r27, r1
3590: b7 ff sbrs r27, 7
3592: fb cf rjmp .-10 ; 0x358a <__vector_28+0x48>
3594: 80 91 8c 0a lds r24, 0x0A8C
3598: 80 93 ce 00 sts 0x00CE, r24
359c: 2e c0 rjmp .+92 ; 0x35fa <__vector_28+0xb8>
359e: 20 91 05 01 lds r18, 0x0105
35a2: 82 2f mov r24, r18
35a4: 81 50 subi r24, 0x01 ; 1
35a6: 83 30 cpi r24, 0x03 ; 3
35a8: 20 f4 brcc .+8 ; 0x35b2 <__vector_28+0x70>
35aa: 89 2f mov r24, r25
35ac: 0e 94 65 94 call 0x128ca ; 0x128ca <SpektrumParser>
35b0: 24 c0 rjmp .+72 ; 0x35fa <__vector_28+0xb8>
35b2: 24 30 cpi r18, 0x04 ; 4
35b4: 21 f4 brne .+8 ; 0x35be <__vector_28+0x7c>
35b6: 89 2f mov r24, r25
35b8: 0e 94 e9 0f call 0x1fd2 ; 0x1fd2 <KLNMIOHMUHG76GFGr43r3>
35bc: 1e c0 rjmp .+60 ; 0x35fa <__vector_28+0xb8>
35be: 28 30 cpi r18, 0x08 ; 8
35c0: 21 f4 brne .+8 ; 0x35ca <__vector_28+0x88>
35c2: 89 2f mov r24, r25
35c4: 0e 94 07 b0 call 0x1600e ; 0x1600e <User_RX_Parser>
35c8: 18 c0 rjmp .+48 ; 0x35fa <__vector_28+0xb8>
35ca: 80 91 54 01 lds r24, 0x0154
35ce: 89 31 cpi r24, 0x19 ; 25
35d0: 20 f0 brcs .+8 ; 0x35da <__vector_28+0x98>
35d2: 80 91 ea 02 lds r24, 0x02EA
35d6: 88 23 and r24, r24
35d8: 81 f0 breq .+32 ; 0x35fa <__vector_28+0xb8>
35da: 25 30 cpi r18, 0x05 ; 5
35dc: 21 f4 brne .+8 ; 0x35e6 <__vector_28+0xa4>
35de: 89 2f mov r24, r25
35e0: 0e 94 2e 0f call 0x1e5c ; 0x1e5c <FGtj76uzh56z3grEg5t45>
35e4: 0a c0 rjmp .+20 ; 0x35fa <__vector_28+0xb8>
35e6: 26 30 cpi r18, 0x06 ; 6
35e8: 19 f4 brne .+6 ; 0x35f0 <__vector_28+0xae>
35ea: 89 2f mov r24, r25
35ec: 30 db rcall .-2464 ; 0x2c4e <HoTT_Parser>
35ee: 05 c0 rjmp .+10 ; 0x35fa <__vector_28+0xb8>
35f0: 27 30 cpi r18, 0x07 ; 7
35f2: 19 f4 brne .+6 ; 0x35fa <__vector_28+0xb8>
35f4: 89 2f mov r24, r25
35f6: 0e 94 11 93 call 0x12622 ; 0x12622 <SbusParser>
35fa: ff 91 pop r31
35fc: ef 91 pop r30
35fe: bf 91 pop r27
3600: af 91 pop r26
3602: 9f 91 pop r25
3604: 8f 91 pop r24
3606: 7f 91 pop r23
3608: 6f 91 pop r22
360a: 5f 91 pop r21
360c: 4f 91 pop r20
360e: 3f 91 pop r19
3610: 2f 91 pop r18
3612: 0f 90 pop r0
3614: 0f be out 0x3f, r0 ; 63
3616: 0f 90 pop r0
3618: 1f 90 pop r1
361a: 18 95 reti
 
0000361c <ADC_Init>:
 
//#######################################################################################
void ADC_Init(void)
//#######################################################################################
{
ADMUX = 0;//Referenz ist extern
361c: 10 92 7c 00 sts 0x007C, r1
ANALOG_ON;
3620: 8f ec ldi r24, 0xCF ; 207
3622: 80 93 7a 00 sts 0x007A, r24
3626: 08 95 ret
 
00003628 <CalcExpandBaroStep>:
 
#define DESIRED_H_ADC 800
 
void CalcExpandBaroStep(void)
{
if(ACC_AltitudeControl) ExpandBaroStep = BaroStep * (long)ExpandBaro;
3628: 80 91 c2 03 lds r24, 0x03C2
362c: 88 23 and r24, r24
362e: a1 f0 breq .+40 ; 0x3658 <CalcExpandBaroStep+0x30>
3630: 20 91 0d 01 lds r18, 0x010D
3634: 30 91 0e 01 lds r19, 0x010E
3638: a0 91 56 03 lds r26, 0x0356
363c: bb 27 eor r27, r27
363e: a7 fd sbrc r26, 7
3640: b0 95 com r27
3642: 0e 94 c2 b1 call 0x16384 ; 0x16384 <__usmulhisi3>
3646: 60 93 4e 03 sts 0x034E, r22
364a: 70 93 4f 03 sts 0x034F, r23
364e: 80 93 50 03 sts 0x0350, r24
3652: 90 93 51 03 sts 0x0351, r25
3656: 08 95 ret
else ExpandBaroStep = (16 * BaroStep) * (long)ExpandBaro - 4;
3658: 20 91 0d 01 lds r18, 0x010D
365c: 30 91 0e 01 lds r19, 0x010E
3660: 22 95 swap r18
3662: 32 95 swap r19
3664: 30 7f andi r19, 0xF0 ; 240
3666: 32 27 eor r19, r18
3668: 20 7f andi r18, 0xF0 ; 240
366a: 32 27 eor r19, r18
366c: a0 91 56 03 lds r26, 0x0356
3670: bb 27 eor r27, r27
3672: a7 fd sbrc r26, 7
3674: b0 95 com r27
3676: 0e 94 c2 b1 call 0x16384 ; 0x16384 <__usmulhisi3>
367a: dc 01 movw r26, r24
367c: cb 01 movw r24, r22
367e: 04 97 sbiw r24, 0x04 ; 4
3680: a1 09 sbc r26, r1
3682: b1 09 sbc r27, r1
3684: 80 93 4e 03 sts 0x034E, r24
3688: 90 93 4f 03 sts 0x034F, r25
368c: a0 93 50 03 sts 0x0350, r26
3690: b0 93 51 03 sts 0x0351, r27
3694: 08 95 ret
 
00003696 <SucheLuftruckOffset>:
}
 
void SucheLuftruckOffset(void)
{
3696: ef 92 push r14
3698: ff 92 push r15
369a: 0f 93 push r16
369c: 1f 93 push r17
369e: cf 93 push r28
36a0: df 93 push r29
unsigned int off;
ExpandBaro = 0;
36a2: 10 92 56 03 sts 0x0356, r1
CalcExpandBaroStep();
36a6: c0 df rcall .-128 ; 0x3628 <CalcExpandBaroStep>
off = GetParamByte(PID_PRESSURE_OFFSET);
36a8: 83 e0 ldi r24, 0x03 ; 3
36aa: 90 e0 ldi r25, 0x00 ; 0
36ac: 0e 94 42 25 call 0x4a84 ; 0x4a84 <GetParamByte>
36b0: c8 2f mov r28, r24
36b2: d0 e0 ldi r29, 0x00 ; 0
if(off < 240) off += 10;
36b4: c0 3f cpi r28, 0xF0 ; 240
36b6: d1 05 cpc r29, r1
36b8: 08 f4 brcc .+2 ; 0x36bc <SucheLuftruckOffset+0x26>
36ba: 2a 96 adiw r28, 0x0a ; 10
OCR0A = off;
36bc: c7 bd out 0x27, r28 ; 39
OCR0B = 255-off;
36be: 8c 2f mov r24, r28
36c0: 80 95 com r24
36c2: 88 bd out 0x28, r24 ; 40
Delay_ms_Mess(150);
36c4: 86 e9 ldi r24, 0x96 ; 150
36c6: 90 e0 ldi r25, 0x00 ; 0
36c8: 0e 94 6e 9c call 0x138dc ; 0x138dc <Delay_ms_Mess>
if(MessLuftdruck > DESIRED_H_ADC) off = 240;
36cc: 80 91 10 01 lds r24, 0x0110
36d0: 90 91 11 01 lds r25, 0x0111
36d4: 81 32 cpi r24, 0x21 ; 33
36d6: 93 40 sbci r25, 0x03 ; 3
36d8: 58 f0 brcs .+22 ; 0x36f0 <SucheLuftruckOffset+0x5a>
36da: c0 ef ldi r28, 0xF0 ; 240
36dc: d0 e0 ldi r29, 0x00 ; 0
for(; off > 5; off--)
{
OCR0A = off;
OCR0B = 255-off;
Delay_ms_Mess(100);
printf(".");
36de: 0f 2e mov r0, r31
36e0: f6 e3 ldi r31, 0x36 ; 54
36e2: ef 2e mov r14, r31
36e4: f2 e0 ldi r31, 0x02 ; 2
36e6: ff 2e mov r15, r31
36e8: f0 2d mov r31, r0
36ea: 07 eb ldi r16, 0xB7 ; 183
36ec: 1c ea ldi r17, 0xAC ; 172
36ee: 04 c0 rjmp .+8 ; 0x36f8 <SucheLuftruckOffset+0x62>
if(off < 240) off += 10;
OCR0A = off;
OCR0B = 255-off;
Delay_ms_Mess(150);
if(MessLuftdruck > DESIRED_H_ADC) off = 240;
for(; off > 5; off--)
36f0: c6 30 cpi r28, 0x06 ; 6
36f2: d1 05 cpc r29, r1
36f4: a0 f7 brcc .-24 ; 0x36de <SucheLuftruckOffset+0x48>
36f6: 20 c0 rjmp .+64 ; 0x3738 <SucheLuftruckOffset+0xa2>
{
OCR0A = off;
36f8: 8c 2f mov r24, r28
36fa: c7 bd out 0x27, r28 ; 39
36fc: 80 95 com r24
OCR0B = 255-off;
36fe: 88 bd out 0x28, r24 ; 40
Delay_ms_Mess(100);
3700: 84 e6 ldi r24, 0x64 ; 100
3702: 90 e0 ldi r25, 0x00 ; 0
3704: 0e 94 6e 9c call 0x138dc ; 0x138dc <Delay_ms_Mess>
printf(".");
3708: ff 92 push r15
370a: ef 92 push r14
370c: 1f 93 push r17
370e: 0f 93 push r16
3710: e0 91 78 06 lds r30, 0x0678
3714: f0 91 79 06 lds r31, 0x0679
3718: 09 95 icall
if(MessLuftdruck > DESIRED_H_ADC) break;
371a: 80 91 10 01 lds r24, 0x0110
371e: 90 91 11 01 lds r25, 0x0111
3722: 0f 90 pop r0
3724: 0f 90 pop r0
3726: 0f 90 pop r0
3728: 0f 90 pop r0
372a: 81 32 cpi r24, 0x21 ; 33
372c: 93 40 sbci r25, 0x03 ; 3
372e: 20 f4 brcc .+8 ; 0x3738 <SucheLuftruckOffset+0xa2>
if(off < 240) off += 10;
OCR0A = off;
OCR0B = 255-off;
Delay_ms_Mess(150);
if(MessLuftdruck > DESIRED_H_ADC) off = 240;
for(; off > 5; off--)
3730: 21 97 sbiw r28, 0x01 ; 1
3732: c6 30 cpi r28, 0x06 ; 6
3734: d1 05 cpc r29, r1
3736: 00 f7 brcc .-64 ; 0x36f8 <SucheLuftruckOffset+0x62>
OCR0B = 255-off;
Delay_ms_Mess(100);
printf(".");
if(MessLuftdruck > DESIRED_H_ADC) break;
}
DruckOffsetSetting = off;
3738: c0 93 12 05 sts 0x0512, r28
SetParamByte(PID_PRESSURE_OFFSET, off);
373c: 6c 2f mov r22, r28
373e: 83 e0 ldi r24, 0x03 ; 3
3740: 90 e0 ldi r25, 0x00 ; 0
3742: 0e 94 45 25 call 0x4a8a ; 0x4a8a <SetParamByte>
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG) && (DruckOffsetSetting < 10 || DruckOffsetSetting >= 230)) VersionInfo.HardwareError[0] |= FC_ERROR0_PRESSURE;
3746: 80 91 4b 05 lds r24, 0x054B
374a: 80 ff sbrs r24, 0
374c: 0a c0 rjmp .+20 ; 0x3762 <SucheLuftruckOffset+0xcc>
374e: 80 91 12 05 lds r24, 0x0512
3752: 8a 50 subi r24, 0x0A ; 10
3754: 8c 3d cpi r24, 0xDC ; 220
3756: 28 f0 brcs .+10 ; 0x3762 <SucheLuftruckOffset+0xcc>
3758: e2 e6 ldi r30, 0x62 ; 98
375a: fa e0 ldi r31, 0x0A ; 10
375c: 80 81 ld r24, Z
375e: 80 64 ori r24, 0x40 ; 64
3760: 80 83 st Z, r24
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + correction of the altitude error in higher altitudes
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CalAthmospheare = 16;
3762: 80 e1 ldi r24, 0x10 ; 16
3764: 80 93 0c 01 sts 0x010C, r24
if(ACC_AltitudeControl)
3768: 80 91 c2 03 lds r24, 0x03C2
376c: 88 23 and r24, r24
376e: 69 f1 breq .+90 ; 0x37ca <SucheLuftruckOffset+0x134>
{
if(PlatinenVersion < 23) { if(off < 140) CalAthmospheare += (160 - off) / 26; }
3770: 80 91 54 01 lds r24, 0x0154
3774: 87 31 cpi r24, 0x17 ; 23
3776: a8 f4 brcc .+42 ; 0x37a2 <SucheLuftruckOffset+0x10c>
3778: cc 38 cpi r28, 0x8C ; 140
377a: d1 05 cpc r29, r1
377c: 30 f5 brcc .+76 ; 0x37ca <SucheLuftruckOffset+0x134>
377e: 20 ea ldi r18, 0xA0 ; 160
3780: 30 e0 ldi r19, 0x00 ; 0
3782: 2c 1b sub r18, r28
3784: 3d 0b sbc r19, r29
3786: a5 ec ldi r26, 0xC5 ; 197
3788: be e4 ldi r27, 0x4E ; 78
378a: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
378e: 96 95 lsr r25
3790: 87 95 ror r24
3792: 96 95 lsr r25
3794: 87 95 ror r24
3796: 96 95 lsr r25
3798: 87 95 ror r24
379a: 80 5f subi r24, 0xF0 ; 240
379c: 80 93 0c 01 sts 0x010C, r24
37a0: 14 c0 rjmp .+40 ; 0x37ca <SucheLuftruckOffset+0x134>
else { if(off < 170) CalAthmospheare += (188 - off) / 19; }
37a2: ca 3a cpi r28, 0xAA ; 170
37a4: d1 05 cpc r29, r1
37a6: 88 f4 brcc .+34 ; 0x37ca <SucheLuftruckOffset+0x134>
37a8: 2c eb ldi r18, 0xBC ; 188
37aa: 30 e0 ldi r19, 0x00 ; 0
37ac: 2c 1b sub r18, r28
37ae: 3d 0b sbc r19, r29
37b0: a5 e9 ldi r26, 0x95 ; 149
37b2: b7 ed ldi r27, 0xD7 ; 215
37b4: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
37b8: 92 95 swap r25
37ba: 82 95 swap r24
37bc: 8f 70 andi r24, 0x0F ; 15
37be: 89 27 eor r24, r25
37c0: 9f 70 andi r25, 0x0F ; 15
37c2: 89 27 eor r24, r25
37c4: 80 5f subi r24, 0xF0 ; 240
37c6: 80 93 0c 01 sts 0x010C, r24
}
Luftdruck = MessLuftdruck * CalAthmospheare;
37ca: 20 91 10 01 lds r18, 0x0110
37ce: 30 91 11 01 lds r19, 0x0111
37d2: 40 91 0c 01 lds r20, 0x010C
37d6: 42 9f mul r20, r18
37d8: c0 01 movw r24, r0
37da: 43 9f mul r20, r19
37dc: 90 0d add r25, r0
37de: 11 24 eor r1, r1
37e0: a0 e0 ldi r26, 0x00 ; 0
37e2: b0 e0 ldi r27, 0x00 ; 0
37e4: 80 93 12 01 sts 0x0112, r24
37e8: 90 93 13 01 sts 0x0113, r25
37ec: a0 93 14 01 sts 0x0114, r26
37f0: b0 93 15 01 sts 0x0115, r27
#endif
Delay_ms_Mess(300);
37f4: 8c e2 ldi r24, 0x2C ; 44
37f6: 91 e0 ldi r25, 0x01 ; 1
37f8: 0e 94 6e 9c call 0x138dc ; 0x138dc <Delay_ms_Mess>
}
37fc: df 91 pop r29
37fe: cf 91 pop r28
3800: 1f 91 pop r17
3802: 0f 91 pop r16
3804: ff 90 pop r15
3806: ef 90 pop r14
3808: 08 95 ret
 
0000380a <__vector_24>:
 
//#######################################################################################
//
ISR(ADC_vect)
//#######################################################################################
{
380a: 1f 92 push r1
380c: 0f 92 push r0
380e: 0f b6 in r0, 0x3f ; 63
3810: 0f 92 push r0
3812: 11 24 eor r1, r1
3814: 0b b6 in r0, 0x3b ; 59
3816: 0f 92 push r0
3818: 8f 92 push r8
381a: 9f 92 push r9
381c: af 92 push r10
381e: bf 92 push r11
3820: cf 92 push r12
3822: df 92 push r13
3824: ef 92 push r14
3826: ff 92 push r15
3828: 0f 93 push r16
382a: 1f 93 push r17
382c: 2f 93 push r18
382e: 3f 93 push r19
3830: 4f 93 push r20
3832: 5f 93 push r21
3834: 6f 93 push r22
3836: 7f 93 push r23
3838: 8f 93 push r24
383a: 9f 93 push r25
383c: af 93 push r26
383e: bf 93 push r27
3840: ef 93 push r30
3842: ff 93 push r31
static signed int subcount = 0;
static signed int gier1, roll1, nick1, nick_filter, roll_filter;
static signed int accy, accx;
static long tmpLuftdruck = 0;
static char messanzahl_Druck = 0;
switch(state++)
3844: 80 91 41 03 lds r24, 0x0341
3848: 91 e0 ldi r25, 0x01 ; 1
384a: 98 0f add r25, r24
384c: 90 93 41 03 sts 0x0341, r25
3850: 90 e0 ldi r25, 0x00 ; 0
3852: 82 31 cpi r24, 0x12 ; 18
3854: 91 05 cpc r25, r1
3856: 08 f0 brcs .+2 ; 0x385a <__vector_24+0x50>
3858: 5d c5 rjmp .+2746 ; 0x4314 <__stack+0x215>
385a: fc 01 movw r30, r24
385c: ea 5b subi r30, 0xBA ; 186
385e: ff 4f sbci r31, 0xFF ; 255
3860: 0c 94 a7 b1 jmp 0x1634e ; 0x1634e <__tablejump2__>
{
case 0:
nick1 = ADC;
3864: 80 91 78 00 lds r24, 0x0078
3868: 90 91 79 00 lds r25, 0x0079
386c: 90 93 40 03 sts 0x0340, r25
3870: 80 93 3f 03 sts 0x033F, r24
kanal = AD_ROLL;
3874: 81 e0 ldi r24, 0x01 ; 1
3876: 80 93 3e 03 sts 0x033E, r24
break;
387a: 51 c5 rjmp .+2722 ; 0x431e <__stack+0x21f>
case 1:
roll1 = ADC;
387c: 80 91 78 00 lds r24, 0x0078
3880: 90 91 79 00 lds r25, 0x0079
3884: 90 93 3d 03 sts 0x033D, r25
3888: 80 93 3c 03 sts 0x033C, r24
kanal = AD_GIER;
388c: 10 92 3e 03 sts 0x033E, r1
break;
3890: 46 c5 rjmp .+2700 ; 0x431e <__stack+0x21f>
case 2:
gier1 = ADC;
3892: 80 91 78 00 lds r24, 0x0078
3896: 90 91 79 00 lds r25, 0x0079
389a: 90 93 3b 03 sts 0x033B, r25
389e: 80 93 3a 03 sts 0x033A, r24
kanal = AD_ACC_Y;
38a2: 80 91 0b 01 lds r24, 0x010B
38a6: 80 93 3e 03 sts 0x033E, r24
break;
38aa: 39 c5 rjmp .+2674 ; 0x431e <__stack+0x21f>
case 3:
Aktuell_ay = NeutralAccY - ADC;
38ac: 20 91 78 00 lds r18, 0x0078
38b0: 30 91 79 00 lds r19, 0x0079
38b4: 80 91 4b 04 lds r24, 0x044B
38b8: 90 91 4c 04 lds r25, 0x044C
38bc: 82 1b sub r24, r18
38be: 93 0b sbc r25, r19
38c0: 90 93 05 05 sts 0x0505, r25
38c4: 80 93 04 05 sts 0x0504, r24
accy = Aktuell_ay;
38c8: 80 91 04 05 lds r24, 0x0504
38cc: 90 91 05 05 lds r25, 0x0505
38d0: 90 93 39 03 sts 0x0339, r25
38d4: 80 93 38 03 sts 0x0338, r24
kanal = AD_ACC_X;
38d8: 80 91 0a 01 lds r24, 0x010A
38dc: 80 93 3e 03 sts 0x033E, r24
break;
38e0: 1e c5 rjmp .+2620 ; 0x431e <__stack+0x21f>
case 4:
Aktuell_ax = ADC - NeutralAccX;
38e2: 80 91 78 00 lds r24, 0x0078
38e6: 90 91 79 00 lds r25, 0x0079
38ea: 20 91 4d 04 lds r18, 0x044D
38ee: 30 91 4e 04 lds r19, 0x044E
38f2: 82 1b sub r24, r18
38f4: 93 0b sbc r25, r19
38f6: 90 93 11 05 sts 0x0511, r25
38fa: 80 93 10 05 sts 0x0510, r24
accx = Aktuell_ax;
38fe: 80 91 10 05 lds r24, 0x0510
3902: 90 91 11 05 lds r25, 0x0511
3906: 90 93 37 03 sts 0x0337, r25
390a: 80 93 36 03 sts 0x0336, r24
kanal = AD_NICK;
390e: 82 e0 ldi r24, 0x02 ; 2
3910: 80 93 3e 03 sts 0x033E, r24
break;
3914: 04 c5 rjmp .+2568 ; 0x431e <__stack+0x21f>
case 5:
nick1 += ADC;
3916: 80 91 78 00 lds r24, 0x0078
391a: 90 91 79 00 lds r25, 0x0079
391e: 20 91 3f 03 lds r18, 0x033F
3922: 30 91 40 03 lds r19, 0x0340
3926: 82 0f add r24, r18
3928: 93 1f adc r25, r19
392a: 90 93 40 03 sts 0x0340, r25
392e: 80 93 3f 03 sts 0x033F, r24
kanal = AD_ROLL;
3932: 81 e0 ldi r24, 0x01 ; 1
3934: 80 93 3e 03 sts 0x033E, r24
break;
3938: f2 c4 rjmp .+2532 ; 0x431e <__stack+0x21f>
case 6:
roll1 += ADC;
393a: 80 91 78 00 lds r24, 0x0078
393e: 90 91 79 00 lds r25, 0x0079
3942: 20 91 3c 03 lds r18, 0x033C
3946: 30 91 3d 03 lds r19, 0x033D
394a: 82 0f add r24, r18
394c: 93 1f adc r25, r19
394e: 90 93 3d 03 sts 0x033D, r25
3952: 80 93 3c 03 sts 0x033C, r24
kanal = AD_UBAT;
3956: 84 e0 ldi r24, 0x04 ; 4
3958: 80 93 3e 03 sts 0x033E, r24
break;
395c: e0 c4 rjmp .+2496 ; 0x431e <__stack+0x21f>
case 7:
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(EE_Parameter.ExtraConfig & CFG_3_3V_REFERENCE) UBat = (3 * UBat + (11 * ADC) / 30) / 4; // there were some single FC2.1 with 3.3V reference
395e: 80 91 b8 05 lds r24, 0x05B8
3962: 83 ff sbrs r24, 3
3964: 29 c0 rjmp .+82 ; 0x39b8 <__vector_24+0x1ae>
3966: 40 91 1a 01 lds r20, 0x011A
396a: 50 91 1b 01 lds r21, 0x011B
396e: 80 91 78 00 lds r24, 0x0078
3972: 90 91 79 00 lds r25, 0x0079
3976: 6b e0 ldi r22, 0x0B ; 11
3978: 68 9f mul r22, r24
397a: 90 01 movw r18, r0
397c: 69 9f mul r22, r25
397e: 30 0d add r19, r0
3980: 11 24 eor r1, r1
3982: a9 e8 ldi r26, 0x89 ; 137
3984: b8 e8 ldi r27, 0x88 ; 136
3986: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
398a: 92 95 swap r25
398c: 82 95 swap r24
398e: 8f 70 andi r24, 0x0F ; 15
3990: 89 27 eor r24, r25
3992: 9f 70 andi r25, 0x0F ; 15
3994: 89 27 eor r24, r25
3996: 9a 01 movw r18, r20
3998: 22 0f add r18, r18
399a: 33 1f adc r19, r19
399c: 42 0f add r20, r18
399e: 53 1f adc r21, r19
39a0: 48 0f add r20, r24
39a2: 59 1f adc r21, r25
39a4: ca 01 movw r24, r20
39a6: 96 95 lsr r25
39a8: 87 95 ror r24
39aa: 96 95 lsr r25
39ac: 87 95 ror r24
39ae: 90 93 1b 01 sts 0x011B, r25
39b2: 80 93 1a 01 sts 0x011A, r24
39b6: 53 c0 rjmp .+166 ; 0x3a5e <__vector_24+0x254>
else
#endif
{
static unsigned int tmpVoltage = 0;
if(!tmpVoltage) tmpVoltage = (10 * ADC);
39b8: 80 91 34 03 lds r24, 0x0334
39bc: 90 91 35 03 lds r25, 0x0335
39c0: 89 2b or r24, r25
39c2: 99 f4 brne .+38 ; 0x39ea <__vector_24+0x1e0>
39c4: 80 91 78 00 lds r24, 0x0078
39c8: 90 91 79 00 lds r25, 0x0079
39cc: 9c 01 movw r18, r24
39ce: 22 0f add r18, r18
39d0: 33 1f adc r19, r19
39d2: 88 0f add r24, r24
39d4: 99 1f adc r25, r25
39d6: 88 0f add r24, r24
39d8: 99 1f adc r25, r25
39da: 88 0f add r24, r24
39dc: 99 1f adc r25, r25
39de: 82 0f add r24, r18
39e0: 93 1f adc r25, r19
39e2: 90 93 35 03 sts 0x0335, r25
39e6: 80 93 34 03 sts 0x0334, r24
if(tmpVoltage <= (10 * ADC)) tmpVoltage += 2; else tmpVoltage -= 2;
39ea: 20 91 78 00 lds r18, 0x0078
39ee: 30 91 79 00 lds r19, 0x0079
39f2: 80 91 34 03 lds r24, 0x0334
39f6: 90 91 35 03 lds r25, 0x0335
39fa: a9 01 movw r20, r18
39fc: 44 0f add r20, r20
39fe: 55 1f adc r21, r21
3a00: 22 0f add r18, r18
3a02: 33 1f adc r19, r19
3a04: 22 0f add r18, r18
3a06: 33 1f adc r19, r19
3a08: 22 0f add r18, r18
3a0a: 33 1f adc r19, r19
3a0c: 24 0f add r18, r20
3a0e: 35 1f adc r19, r21
3a10: 28 17 cp r18, r24
3a12: 39 07 cpc r19, r25
3a14: 30 f0 brcs .+12 ; 0x3a22 <__vector_24+0x218>
3a16: 02 96 adiw r24, 0x02 ; 2
3a18: 90 93 35 03 sts 0x0335, r25
3a1c: 80 93 34 03 sts 0x0334, r24
3a20: 05 c0 rjmp .+10 ; 0x3a2c <__vector_24+0x222>
3a22: 02 97 sbiw r24, 0x02 ; 2
3a24: 90 93 35 03 sts 0x0335, r25
3a28: 80 93 34 03 sts 0x0334, r24
UBat = tmpVoltage / 31;
3a2c: 40 91 34 03 lds r20, 0x0334
3a30: 50 91 35 03 lds r21, 0x0335
3a34: 9a 01 movw r18, r20
3a36: a3 e4 ldi r26, 0x43 ; 67
3a38: b8 e0 ldi r27, 0x08 ; 8
3a3a: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
3a3e: 48 1b sub r20, r24
3a40: 59 0b sbc r21, r25
3a42: 56 95 lsr r21
3a44: 47 95 ror r20
3a46: 84 0f add r24, r20
3a48: 95 1f adc r25, r21
3a4a: 92 95 swap r25
3a4c: 82 95 swap r24
3a4e: 8f 70 andi r24, 0x0F ; 15
3a50: 89 27 eor r24, r25
3a52: 9f 70 andi r25, 0x0F ; 15
3a54: 89 27 eor r24, r25
3a56: 90 93 1b 01 sts 0x011B, r25
3a5a: 80 93 1a 01 sts 0x011A, r24
}
kanal = AD_ACC_Z;
3a5e: 85 e0 ldi r24, 0x05 ; 5
3a60: 80 93 3e 03 sts 0x033E, r24
break;
3a64: 5c c4 rjmp .+2232 ; 0x431e <__stack+0x21f>
case 8:
Aktuell_az = ADC;
3a66: 80 91 78 00 lds r24, 0x0078
3a6a: 90 91 79 00 lds r25, 0x0079
3a6e: 90 93 07 05 sts 0x0507, r25
3a72: 80 93 06 05 sts 0x0506, r24
AdWertAccHoch = Aktuell_az - NeutralAccZ - (int) NeutralAccZfine;
3a76: 20 91 06 05 lds r18, 0x0506
3a7a: 30 91 07 05 lds r19, 0x0507
3a7e: 80 91 47 04 lds r24, 0x0447
3a82: 90 91 48 04 lds r25, 0x0448
3a86: 40 91 46 04 lds r20, 0x0446
3a8a: 28 1b sub r18, r24
3a8c: 39 0b sbc r19, r25
3a8e: 24 1b sub r18, r20
3a90: 31 09 sbc r19, r1
3a92: 47 fd sbrc r20, 7
3a94: 33 95 inc r19
3a96: 30 93 5c 03 sts 0x035C, r19
3a9a: 20 93 5b 03 sts 0x035B, r18
if(!ACC_AltitudeControl) // The Offset must be corrected, because of the ACC-Drift from vibrations
3a9e: 20 91 c2 03 lds r18, 0x03C2
3aa2: 21 11 cpse r18, r1
3aa4: 72 c0 rjmp .+228 ; 0x3b8a <__vector_24+0x380>
{
if(AdWertAccHoch > 1)
3aa6: 20 91 5b 03 lds r18, 0x035B
3aaa: 30 91 5c 03 lds r19, 0x035C
3aae: 22 30 cpi r18, 0x02 ; 2
3ab0: 31 05 cpc r19, r1
3ab2: 8c f1 brlt .+98 ; 0x3b16 <__vector_24+0x30c>
{
if(NeutralAccZ < 750)
3ab4: 8e 3e cpi r24, 0xEE ; 238
3ab6: 22 e0 ldi r18, 0x02 ; 2
3ab8: 92 07 cpc r25, r18
3aba: 0c f0 brlt .+2 ; 0x3abe <__vector_24+0x2b4>
3abc: ad c0 rjmp .+346 ; 0x3c18 <__vector_24+0x40e>
{
subcount += 5;
3abe: 20 91 32 03 lds r18, 0x0332
3ac2: 30 91 33 03 lds r19, 0x0333
3ac6: a9 01 movw r20, r18
3ac8: 4b 5f subi r20, 0xFB ; 251
3aca: 5f 4f sbci r21, 0xFF ; 255
3acc: 50 93 33 03 sts 0x0333, r21
3ad0: 40 93 32 03 sts 0x0332, r20
if(modell_fliegt < 500) subcount += 10;
3ad4: 40 91 cc 03 lds r20, 0x03CC
3ad8: 50 91 cd 03 lds r21, 0x03CD
3adc: 44 3f cpi r20, 0xF4 ; 244
3ade: 51 40 sbci r21, 0x01 ; 1
3ae0: 30 f4 brcc .+12 ; 0x3aee <__vector_24+0x2e4>
3ae2: 21 5f subi r18, 0xF1 ; 241
3ae4: 3f 4f sbci r19, 0xFF ; 255
3ae6: 30 93 33 03 sts 0x0333, r19
3aea: 20 93 32 03 sts 0x0332, r18
if(subcount > 100) { NeutralAccZ++; subcount -= 100;}
3aee: 20 91 32 03 lds r18, 0x0332
3af2: 30 91 33 03 lds r19, 0x0333
3af6: 25 36 cpi r18, 0x65 ; 101
3af8: 31 05 cpc r19, r1
3afa: 0c f4 brge .+2 ; 0x3afe <__vector_24+0x2f4>
3afc: 8d c0 rjmp .+282 ; 0x3c18 <__vector_24+0x40e>
3afe: 01 96 adiw r24, 0x01 ; 1
3b00: 90 93 48 04 sts 0x0448, r25
3b04: 80 93 47 04 sts 0x0447, r24
3b08: 24 56 subi r18, 0x64 ; 100
3b0a: 31 09 sbc r19, r1
3b0c: 30 93 33 03 sts 0x0333, r19
3b10: 20 93 32 03 sts 0x0332, r18
3b14: 81 c0 rjmp .+258 ; 0x3c18 <__vector_24+0x40e>
}
}
else if(AdWertAccHoch < -1)
3b16: 20 91 5b 03 lds r18, 0x035B
3b1a: 30 91 5c 03 lds r19, 0x035C
3b1e: 2f 3f cpi r18, 0xFF ; 255
3b20: 3f 4f sbci r19, 0xFF ; 255
3b22: 0c f0 brlt .+2 ; 0x3b26 <__vector_24+0x31c>
3b24: 79 c0 rjmp .+242 ; 0x3c18 <__vector_24+0x40e>
{
if(NeutralAccZ > 550)
3b26: 87 32 cpi r24, 0x27 ; 39
3b28: 22 e0 ldi r18, 0x02 ; 2
3b2a: 92 07 cpc r25, r18
3b2c: 0c f4 brge .+2 ; 0x3b30 <__vector_24+0x326>
3b2e: 74 c0 rjmp .+232 ; 0x3c18 <__vector_24+0x40e>
{
subcount -= 5;
3b30: 20 91 32 03 lds r18, 0x0332
3b34: 30 91 33 03 lds r19, 0x0333
3b38: a9 01 movw r20, r18
3b3a: 45 50 subi r20, 0x05 ; 5
3b3c: 51 09 sbc r21, r1
3b3e: 50 93 33 03 sts 0x0333, r21
3b42: 40 93 32 03 sts 0x0332, r20
if(modell_fliegt < 500) subcount -= 10;
3b46: 40 91 cc 03 lds r20, 0x03CC
3b4a: 50 91 cd 03 lds r21, 0x03CD
3b4e: 44 3f cpi r20, 0xF4 ; 244
3b50: 51 40 sbci r21, 0x01 ; 1
3b52: 30 f4 brcc .+12 ; 0x3b60 <__vector_24+0x356>
3b54: 2f 50 subi r18, 0x0F ; 15
3b56: 31 09 sbc r19, r1
3b58: 30 93 33 03 sts 0x0333, r19
3b5c: 20 93 32 03 sts 0x0332, r18
if(subcount < -100) { NeutralAccZ--; subcount += 100;}
3b60: 20 91 32 03 lds r18, 0x0332
3b64: 30 91 33 03 lds r19, 0x0333
3b68: 2c 39 cpi r18, 0x9C ; 156
3b6a: ef ef ldi r30, 0xFF ; 255
3b6c: 3e 07 cpc r19, r30
3b6e: 0c f0 brlt .+2 ; 0x3b72 <__vector_24+0x368>
3b70: 53 c0 rjmp .+166 ; 0x3c18 <__vector_24+0x40e>
3b72: 01 97 sbiw r24, 0x01 ; 1
3b74: 90 93 48 04 sts 0x0448, r25
3b78: 80 93 47 04 sts 0x0447, r24
3b7c: 2c 59 subi r18, 0x9C ; 156
3b7e: 3f 4f sbci r19, 0xFF ; 255
3b80: 30 93 33 03 sts 0x0333, r19
3b84: 20 93 32 03 sts 0x0332, r18
3b88: 47 c0 rjmp .+142 ; 0x3c18 <__vector_24+0x40e>
}
}
}
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
else
if(CosAttitude > 8192 - 50) // horizontal leveled within 6°
3b8a: 80 91 2d 06 lds r24, 0x062D
3b8e: 90 91 2e 06 lds r25, 0x062E
3b92: 8f 3c cpi r24, 0xCF ; 207
3b94: 9f 41 sbci r25, 0x1F ; 31
3b96: 0c f4 brge .+2 ; 0x3b9a <__vector_24+0x390>
3b98: 3f c0 rjmp .+126 ; 0x3c18 <__vector_24+0x40e>
{
if(AdWertAccHoch > 1)
3b9a: 80 91 5b 03 lds r24, 0x035B
3b9e: 90 91 5c 03 lds r25, 0x035C
3ba2: 02 97 sbiw r24, 0x02 ; 2
3ba4: cc f0 brlt .+50 ; 0x3bd8 <__vector_24+0x3ce>
{
if(++subcount > 5000)
3ba6: 20 91 32 03 lds r18, 0x0332
3baa: 30 91 33 03 lds r19, 0x0333
3bae: c9 01 movw r24, r18
3bb0: 01 96 adiw r24, 0x01 ; 1
3bb2: 90 93 33 03 sts 0x0333, r25
3bb6: 80 93 32 03 sts 0x0332, r24
3bba: 89 38 cpi r24, 0x89 ; 137
3bbc: 93 41 sbci r25, 0x13 ; 19
3bbe: 64 f1 brlt .+88 ; 0x3c18 <__vector_24+0x40e>
{
if(NeutralAccZfine < 6) NeutralAccZfine++;
3bc0: 46 30 cpi r20, 0x06 ; 6
3bc2: 1c f4 brge .+6 ; 0x3bca <__vector_24+0x3c0>
3bc4: 4f 5f subi r20, 0xFF ; 255
3bc6: 40 93 46 04 sts 0x0446, r20
subcount -= 5000;
3bca: 27 58 subi r18, 0x87 ; 135
3bcc: 33 41 sbci r19, 0x13 ; 19
3bce: 30 93 33 03 sts 0x0333, r19
3bd2: 20 93 32 03 sts 0x0332, r18
3bd6: 20 c0 rjmp .+64 ; 0x3c18 <__vector_24+0x40e>
}
}
else
if(AdWertAccHoch < -1)
3bd8: 80 91 5b 03 lds r24, 0x035B
3bdc: 90 91 5c 03 lds r25, 0x035C
3be0: 8f 3f cpi r24, 0xFF ; 255
3be2: 9f 4f sbci r25, 0xFF ; 255
3be4: cc f4 brge .+50 ; 0x3c18 <__vector_24+0x40e>
{
if(--subcount < -5000)
3be6: 80 91 32 03 lds r24, 0x0332
3bea: 90 91 33 03 lds r25, 0x0333
3bee: 9c 01 movw r18, r24
3bf0: 21 50 subi r18, 0x01 ; 1
3bf2: 31 09 sbc r19, r1
3bf4: 30 93 33 03 sts 0x0333, r19
3bf8: 20 93 32 03 sts 0x0332, r18
3bfc: 28 37 cpi r18, 0x78 ; 120
3bfe: 3c 4e sbci r19, 0xEC ; 236
3c00: 5c f4 brge .+22 ; 0x3c18 <__vector_24+0x40e>
{
if(NeutralAccZfine > -6) NeutralAccZfine--;
3c02: 4b 3f cpi r20, 0xFB ; 251
3c04: 1c f0 brlt .+6 ; 0x3c0c <__vector_24+0x402>
3c06: 41 50 subi r20, 0x01 ; 1
3c08: 40 93 46 04 sts 0x0446, r20
subcount += 5000;
3c0c: 89 57 subi r24, 0x79 ; 121
3c0e: 9c 4e sbci r25, 0xEC ; 236
3c10: 90 93 33 03 sts 0x0333, r25
3c14: 80 93 32 03 sts 0x0332, r24
}
}
}
#endif
Mess_Integral_Hoch += AdWertAccHoch; // Integrieren
3c18: 80 91 5b 03 lds r24, 0x035B
3c1c: 90 91 5c 03 lds r25, 0x035C
3c20: 40 91 1e 04 lds r20, 0x041E
3c24: 50 91 1f 04 lds r21, 0x041F
3c28: 60 91 20 04 lds r22, 0x0420
3c2c: 70 91 21 04 lds r23, 0x0421
3c30: aa 27 eor r26, r26
3c32: 97 fd sbrc r25, 7
3c34: a0 95 com r26
3c36: ba 2f mov r27, r26
3c38: 84 0f add r24, r20
3c3a: 95 1f adc r25, r21
3c3c: a6 1f adc r26, r22
3c3e: b7 1f adc r27, r23
3c40: 80 93 1e 04 sts 0x041E, r24
3c44: 90 93 1f 04 sts 0x041F, r25
3c48: a0 93 20 04 sts 0x0420, r26
3c4c: b0 93 21 04 sts 0x0421, r27
Mess_Integral_Hoch -= Mess_Integral_Hoch / 1024; // dämfen
3c50: c0 90 1e 04 lds r12, 0x041E
3c54: d0 90 1f 04 lds r13, 0x041F
3c58: e0 90 20 04 lds r14, 0x0420
3c5c: f0 90 21 04 lds r15, 0x0421
3c60: 80 91 1e 04 lds r24, 0x041E
3c64: 90 91 1f 04 lds r25, 0x041F
3c68: a0 91 20 04 lds r26, 0x0420
3c6c: b0 91 21 04 lds r27, 0x0421
3c70: bb 23 and r27, r27
3c72: 24 f4 brge .+8 ; 0x3c7c <__vector_24+0x472>
3c74: 81 50 subi r24, 0x01 ; 1
3c76: 9c 4f sbci r25, 0xFC ; 252
3c78: af 4f sbci r26, 0xFF ; 255
3c7a: bf 4f sbci r27, 0xFF ; 255
3c7c: ac 01 movw r20, r24
3c7e: bd 01 movw r22, r26
3c80: 03 2e mov r0, r19
3c82: 3a e0 ldi r19, 0x0A ; 10
3c84: 75 95 asr r23
3c86: 67 95 ror r22
3c88: 57 95 ror r21
3c8a: 47 95 ror r20
3c8c: 3a 95 dec r19
3c8e: d1 f7 brne .-12 ; 0x3c84 <__vector_24+0x47a>
3c90: 30 2d mov r19, r0
3c92: d7 01 movw r26, r14
3c94: c6 01 movw r24, r12
3c96: 84 1b sub r24, r20
3c98: 95 0b sbc r25, r21
3c9a: a6 0b sbc r26, r22
3c9c: b7 0b sbc r27, r23
3c9e: 80 93 1e 04 sts 0x041E, r24
3ca2: 90 93 1f 04 sts 0x041F, r25
3ca6: a0 93 20 04 sts 0x0420, r26
3caa: b0 93 21 04 sts 0x0421, r27
kanal = AD_DRUCK;
3cae: 83 e0 ldi r24, 0x03 ; 3
3cb0: 80 93 3e 03 sts 0x033E, r24
break;
3cb4: 34 c3 rjmp .+1640 ; 0x431e <__stack+0x21f>
// "case 9:" fehlt hier absichtlich
case 10:
nick1 += ADC;
3cb6: 80 91 78 00 lds r24, 0x0078
3cba: 90 91 79 00 lds r25, 0x0079
3cbe: 20 91 3f 03 lds r18, 0x033F
3cc2: 30 91 40 03 lds r19, 0x0340
3cc6: 82 0f add r24, r18
3cc8: 93 1f adc r25, r19
3cca: 90 93 40 03 sts 0x0340, r25
3cce: 80 93 3f 03 sts 0x033F, r24
kanal = AD_ROLL;
3cd2: 81 e0 ldi r24, 0x01 ; 1
3cd4: 80 93 3e 03 sts 0x033E, r24
break;
3cd8: 22 c3 rjmp .+1604 ; 0x431e <__stack+0x21f>
case 11:
roll1 += ADC;
3cda: 80 91 78 00 lds r24, 0x0078
3cde: 90 91 79 00 lds r25, 0x0079
3ce2: 20 91 3c 03 lds r18, 0x033C
3ce6: 30 91 3d 03 lds r19, 0x033D
3cea: 82 0f add r24, r18
3cec: 93 1f adc r25, r19
3cee: 90 93 3d 03 sts 0x033D, r25
3cf2: 80 93 3c 03 sts 0x033C, r24
kanal = AD_GIER;
3cf6: 10 92 3e 03 sts 0x033E, r1
break;
3cfa: 11 c3 rjmp .+1570 ; 0x431e <__stack+0x21f>
/* if(PlatinenVersion == 10) AdWertGier = (ADC + gier1 + 1) / 2;
else
if(PlatinenVersion >= 20) AdWertGier = 2047 - (ADC + gier1);
else AdWertGier = (ADC + gier1);
*/
AdWertGier = 2047 - (ADC + gier1);
3cfc: 20 91 78 00 lds r18, 0x0078
3d00: 30 91 79 00 lds r19, 0x0079
3d04: 8f ef ldi r24, 0xFF ; 255
3d06: 97 e0 ldi r25, 0x07 ; 7
3d08: 82 1b sub r24, r18
3d0a: 93 0b sbc r25, r19
3d0c: 20 91 3a 03 lds r18, 0x033A
3d10: 30 91 3b 03 lds r19, 0x033B
3d14: 82 1b sub r24, r18
3d16: 93 0b sbc r25, r19
3d18: 90 93 62 03 sts 0x0362, r25
3d1c: 80 93 61 03 sts 0x0361, r24
kanal = AD_ACC_Y;
3d20: 80 91 0b 01 lds r24, 0x010B
3d24: 80 93 3e 03 sts 0x033E, r24
break;
3d28: fa c2 rjmp .+1524 ; 0x431e <__stack+0x21f>
case 13:
Aktuell_ay = NeutralAccY - ADC;
3d2a: 20 91 78 00 lds r18, 0x0078
3d2e: 30 91 79 00 lds r19, 0x0079
3d32: 80 91 4b 04 lds r24, 0x044B
3d36: 90 91 4c 04 lds r25, 0x044C
3d3a: 82 1b sub r24, r18
3d3c: 93 0b sbc r25, r19
3d3e: 90 93 05 05 sts 0x0505, r25
3d42: 80 93 04 05 sts 0x0504, r24
AdWertAccRoll = (Aktuell_ay + accy);
3d46: 20 91 04 05 lds r18, 0x0504
3d4a: 30 91 05 05 lds r19, 0x0505
3d4e: 80 91 38 03 lds r24, 0x0338
3d52: 90 91 39 03 lds r25, 0x0339
3d56: 82 0f add r24, r18
3d58: 93 1f adc r25, r19
3d5a: 90 93 60 03 sts 0x0360, r25
3d5e: 80 93 5f 03 sts 0x035F, r24
kanal = AD_ACC_X;
3d62: 80 91 0a 01 lds r24, 0x010A
3d66: 80 93 3e 03 sts 0x033E, r24
break;
3d6a: d9 c2 rjmp .+1458 ; 0x431e <__stack+0x21f>
case 14:
Aktuell_ax = ADC - NeutralAccX;
3d6c: 80 91 78 00 lds r24, 0x0078
3d70: 90 91 79 00 lds r25, 0x0079
3d74: 20 91 4d 04 lds r18, 0x044D
3d78: 30 91 4e 04 lds r19, 0x044E
3d7c: 82 1b sub r24, r18
3d7e: 93 0b sbc r25, r19
3d80: 90 93 11 05 sts 0x0511, r25
3d84: 80 93 10 05 sts 0x0510, r24
AdWertAccNick = (Aktuell_ax + accx);
3d88: 20 91 10 05 lds r18, 0x0510
3d8c: 30 91 11 05 lds r19, 0x0511
3d90: 80 91 36 03 lds r24, 0x0336
3d94: 90 91 37 03 lds r25, 0x0337
3d98: 82 0f add r24, r18
3d9a: 93 1f adc r25, r19
3d9c: 90 93 5e 03 sts 0x035E, r25
3da0: 80 93 5d 03 sts 0x035D, r24
kanal = AD_NICK;
3da4: 82 e0 ldi r24, 0x02 ; 2
3da6: 80 93 3e 03 sts 0x033E, r24
break;
3daa: b9 c2 rjmp .+1394 ; 0x431e <__stack+0x21f>
case 15:
nick1 += ADC;
3dac: 20 91 78 00 lds r18, 0x0078
3db0: 30 91 79 00 lds r19, 0x0079
3db4: 80 91 3f 03 lds r24, 0x033F
3db8: 90 91 40 03 lds r25, 0x0340
3dbc: 82 0f add r24, r18
3dbe: 93 1f adc r25, r19
//if(PlatinenVersion == 10) nick1 *= 2; else
nick1 *= 4;
3dc0: 88 0f add r24, r24
3dc2: 99 1f adc r25, r25
3dc4: 88 0f add r24, r24
3dc6: 99 1f adc r25, r25
3dc8: 90 93 40 03 sts 0x0340, r25
3dcc: 80 93 3f 03 sts 0x033F, r24
AdWertNick = nick1 / 8;
3dd0: 9c 01 movw r18, r24
3dd2: 99 23 and r25, r25
3dd4: 14 f4 brge .+4 ; 0x3dda <__vector_24+0x5d0>
3dd6: 29 5f subi r18, 0xF9 ; 249
3dd8: 3f 4f sbci r19, 0xFF ; 255
3dda: 35 95 asr r19
3ddc: 27 95 ror r18
3dde: 35 95 asr r19
3de0: 27 95 ror r18
3de2: 35 95 asr r19
3de4: 27 95 ror r18
3de6: 30 93 66 03 sts 0x0366, r19
3dea: 20 93 65 03 sts 0x0365, r18
nick_filter = (nick_filter + nick1) / 2;
3dee: 20 91 30 03 lds r18, 0x0330
3df2: 30 91 31 03 lds r19, 0x0331
3df6: 82 0f add r24, r18
3df8: 93 1f adc r25, r19
3dfa: 99 23 and r25, r25
3dfc: 0c f4 brge .+2 ; 0x3e00 <__vector_24+0x5f6>
3dfe: 01 96 adiw r24, 0x01 ; 1
3e00: 95 95 asr r25
3e02: 87 95 ror r24
3e04: 90 93 31 03 sts 0x0331, r25
3e08: 80 93 30 03 sts 0x0330, r24
HiResNick = nick_filter - AdNeutralNick;
3e0c: 20 91 57 04 lds r18, 0x0457
3e10: 30 91 58 04 lds r19, 0x0458
3e14: 82 1b sub r24, r18
3e16: 93 0b sbc r25, r19
3e18: 90 93 19 01 sts 0x0119, r25
3e1c: 80 93 18 01 sts 0x0118, r24
AdWertNickFilter = (AdWertNickFilter + HiResNick) / 2;
3e20: 20 91 69 03 lds r18, 0x0369
3e24: 30 91 6a 03 lds r19, 0x036A
3e28: 80 91 18 01 lds r24, 0x0118
3e2c: 90 91 19 01 lds r25, 0x0119
3e30: 82 0f add r24, r18
3e32: 93 1f adc r25, r19
3e34: 99 23 and r25, r25
3e36: 0c f4 brge .+2 ; 0x3e3a <__vector_24+0x630>
3e38: 01 96 adiw r24, 0x01 ; 1
3e3a: 95 95 asr r25
3e3c: 87 95 ror r24
3e3e: 90 93 6a 03 sts 0x036A, r25
3e42: 80 93 69 03 sts 0x0369, r24
kanal = AD_ROLL;
3e46: 81 e0 ldi r24, 0x01 ; 1
3e48: 80 93 3e 03 sts 0x033E, r24
break;
3e4c: 68 c2 rjmp .+1232 ; 0x431e <__stack+0x21f>
case 16:
roll1 += ADC;
3e4e: 20 91 78 00 lds r18, 0x0078
3e52: 30 91 79 00 lds r19, 0x0079
3e56: 80 91 3c 03 lds r24, 0x033C
3e5a: 90 91 3d 03 lds r25, 0x033D
3e5e: 82 0f add r24, r18
3e60: 93 1f adc r25, r19
//if(PlatinenVersion == 10) roll1 *= 2; else
roll1 *= 4;
3e62: 88 0f add r24, r24
3e64: 99 1f adc r25, r25
3e66: 88 0f add r24, r24
3e68: 99 1f adc r25, r25
3e6a: 90 93 3d 03 sts 0x033D, r25
3e6e: 80 93 3c 03 sts 0x033C, r24
AdWertRoll = roll1 / 8;
3e72: 9c 01 movw r18, r24
3e74: 99 23 and r25, r25
3e76: 14 f4 brge .+4 ; 0x3e7c <__vector_24+0x672>
3e78: 29 5f subi r18, 0xF9 ; 249
3e7a: 3f 4f sbci r19, 0xFF ; 255
3e7c: 35 95 asr r19
3e7e: 27 95 ror r18
3e80: 35 95 asr r19
3e82: 27 95 ror r18
3e84: 35 95 asr r19
3e86: 27 95 ror r18
3e88: 30 93 64 03 sts 0x0364, r19
3e8c: 20 93 63 03 sts 0x0363, r18
roll_filter = (roll_filter + roll1) / 2;
3e90: 20 91 2e 03 lds r18, 0x032E
3e94: 30 91 2f 03 lds r19, 0x032F
3e98: 82 0f add r24, r18
3e9a: 93 1f adc r25, r19
3e9c: 99 23 and r25, r25
3e9e: 0c f4 brge .+2 ; 0x3ea2 <__vector_24+0x698>
3ea0: 01 96 adiw r24, 0x01 ; 1
3ea2: 95 95 asr r25
3ea4: 87 95 ror r24
3ea6: 90 93 2f 03 sts 0x032F, r25
3eaa: 80 93 2e 03 sts 0x032E, r24
HiResRoll = roll_filter - AdNeutralRoll;
3eae: 20 91 55 04 lds r18, 0x0455
3eb2: 30 91 56 04 lds r19, 0x0456
3eb6: 82 1b sub r24, r18
3eb8: 93 0b sbc r25, r19
3eba: 90 93 17 01 sts 0x0117, r25
3ebe: 80 93 16 01 sts 0x0116, r24
AdWertRollFilter = (AdWertRollFilter + HiResRoll) / 2;
3ec2: 20 91 67 03 lds r18, 0x0367
3ec6: 30 91 68 03 lds r19, 0x0368
3eca: 80 91 16 01 lds r24, 0x0116
3ece: 90 91 17 01 lds r25, 0x0117
3ed2: 82 0f add r24, r18
3ed4: 93 1f adc r25, r19
3ed6: 99 23 and r25, r25
3ed8: 0c f4 brge .+2 ; 0x3edc <__vector_24+0x6d2>
3eda: 01 96 adiw r24, 0x01 ; 1
3edc: 95 95 asr r25
3ede: 87 95 ror r24
3ee0: 90 93 68 03 sts 0x0368, r25
3ee4: 80 93 67 03 sts 0x0367, r24
kanal = AD_DRUCK;
3ee8: 83 e0 ldi r24, 0x03 ; 3
3eea: 80 93 3e 03 sts 0x033E, r24
break;
3eee: 17 c2 rjmp .+1070 ; 0x431e <__stack+0x21f>
case 17:
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(ACC_AltitudeControl)
3ef0: 80 91 c2 03 lds r24, 0x03C2
3ef4: 88 23 and r24, r24
3ef6: 11 f1 breq .+68 ; 0x3f3c <__vector_24+0x732>
{
HoehenWertF_Mess = (ACC_AltitudeFusion(0) + SA_FILTER/2)/SA_FILTER; // cm
3ef8: 80 e0 ldi r24, 0x00 ; 0
3efa: 0e 94 a0 16 call 0x2d40 ; 0x2d40 <ACC_AltitudeFusion>
3efe: ab 01 movw r20, r22
3f00: bc 01 movw r22, r24
3f02: 5f 5f subi r21, 0xFF ; 255
3f04: 6f 4f sbci r22, 0xFF ; 255
3f06: 7f 4f sbci r23, 0xFF ; 255
3f08: db 01 movw r26, r22
3f0a: ca 01 movw r24, r20
3f0c: 77 23 and r23, r23
3f0e: 24 f4 brge .+8 ; 0x3f18 <__vector_24+0x70e>
3f10: 81 50 subi r24, 0x01 ; 1
3f12: 9e 4f sbci r25, 0xFE ; 254
3f14: af 4f sbci r26, 0xFF ; 255
3f16: bf 4f sbci r27, 0xFF ; 255
3f18: 07 2e mov r0, r23
3f1a: 79 e0 ldi r23, 0x09 ; 9
3f1c: b5 95 asr r27
3f1e: a7 95 ror r26
3f20: 97 95 ror r25
3f22: 87 95 ror r24
3f24: 7a 95 dec r23
3f26: d1 f7 brne .-12 ; 0x3f1c <__vector_24+0x712>
3f28: 70 2d mov r23, r0
3f2a: 80 93 42 03 sts 0x0342, r24
3f2e: 90 93 43 03 sts 0x0343, r25
3f32: a0 93 44 03 sts 0x0344, r26
3f36: b0 93 45 03 sts 0x0345, r27
3f3a: 10 c0 rjmp .+32 ; 0x3f5c <__vector_24+0x752>
}
else HoehenWertF_Mess = HoehenWert;
3f3c: 80 91 fe 03 lds r24, 0x03FE
3f40: 90 91 ff 03 lds r25, 0x03FF
3f44: a0 91 00 04 lds r26, 0x0400
3f48: b0 91 01 04 lds r27, 0x0401
3f4c: 80 93 42 03 sts 0x0342, r24
3f50: 90 93 43 03 sts 0x0343, r25
3f54: a0 93 44 03 sts 0x0344, r26
3f58: b0 93 45 03 sts 0x0345, r27
#endif
state = 0;
3f5c: 10 92 41 03 sts 0x0341, r1
AdReady = 1;
3f60: 81 e0 ldi r24, 0x01 ; 1
3f62: 80 93 0f 01 sts 0x010F, r24
ZaehlMessungen++;
3f66: 80 91 52 03 lds r24, 0x0352
3f6a: 90 91 53 03 lds r25, 0x0353
3f6e: 01 96 adiw r24, 0x01 ; 1
3f70: 90 93 53 03 sts 0x0353, r25
3f74: 80 93 52 03 sts 0x0352, r24
// "break" fehlt hier absichtlich
case 9:
MessLuftdruck = ADC;
3f78: 80 91 78 00 lds r24, 0x0078
3f7c: 90 91 79 00 lds r25, 0x0079
3f80: 90 93 11 01 sts 0x0111, r25
3f84: 80 93 10 01 sts 0x0110, r24
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(ACC_AltitudeControl)
3f88: 80 91 c2 03 lds r24, 0x03C2
3f8c: 88 23 and r24, r24
3f8e: 09 f4 brne .+2 ; 0x3f92 <__vector_24+0x788>
3f90: 6e c0 rjmp .+220 ; 0x406e <__vector_24+0x864>
{
// ExpandBaroStep = BaroStep * (long)ExpandBaro; // wird in fc.c aufgerufen
// tmpLuftdruck = MessLuftdruck - BaroStep * (long)ExpandBaro; // -523 counts per offset step
tmpLuftdruck = MessLuftdruck - ExpandBaroStep; // -523 counts per offset step
3f92: c0 90 10 01 lds r12, 0x0110
3f96: d0 90 11 01 lds r13, 0x0111
3f9a: e1 2c mov r14, r1
3f9c: f1 2c mov r15, r1
3f9e: 80 91 4e 03 lds r24, 0x034E
3fa2: 90 91 4f 03 lds r25, 0x034F
3fa6: a0 91 50 03 lds r26, 0x0350
3faa: b0 91 51 03 lds r27, 0x0351
3fae: c8 1a sub r12, r24
3fb0: d9 0a sbc r13, r25
3fb2: ea 0a sbc r14, r26
3fb4: fb 0a sbc r15, r27
3fb6: c0 92 2a 03 sts 0x032A, r12
3fba: d0 92 2b 03 sts 0x032B, r13
3fbe: e0 92 2c 03 sts 0x032C, r14
3fc2: f0 92 2d 03 sts 0x032D, r15
Luftdruck -= Luftdruck / CalAthmospheare; // 16
3fc6: 80 90 12 01 lds r8, 0x0112
3fca: 90 90 13 01 lds r9, 0x0113
3fce: a0 90 14 01 lds r10, 0x0114
3fd2: b0 90 15 01 lds r11, 0x0115
3fd6: 60 91 12 01 lds r22, 0x0112
3fda: 70 91 13 01 lds r23, 0x0113
3fde: 80 91 14 01 lds r24, 0x0114
3fe2: 90 91 15 01 lds r25, 0x0115
3fe6: 20 91 0c 01 lds r18, 0x010C
3fea: 30 e0 ldi r19, 0x00 ; 0
3fec: 40 e0 ldi r20, 0x00 ; 0
3fee: 50 e0 ldi r21, 0x00 ; 0
3ff0: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
3ff4: 82 1a sub r8, r18
3ff6: 93 0a sbc r9, r19
3ff8: a4 0a sbc r10, r20
3ffa: b5 0a sbc r11, r21
3ffc: 80 92 12 01 sts 0x0112, r8
4000: 90 92 13 01 sts 0x0113, r9
4004: a0 92 14 01 sts 0x0114, r10
4008: b0 92 15 01 sts 0x0115, r11
Luftdruck += tmpLuftdruck;
400c: 80 91 12 01 lds r24, 0x0112
4010: 90 91 13 01 lds r25, 0x0113
4014: a0 91 14 01 lds r26, 0x0114
4018: b0 91 15 01 lds r27, 0x0115
401c: c8 0e add r12, r24
401e: d9 1e adc r13, r25
4020: ea 1e adc r14, r26
4022: fb 1e adc r15, r27
4024: c0 92 12 01 sts 0x0112, r12
4028: d0 92 13 01 sts 0x0113, r13
402c: e0 92 14 01 sts 0x0114, r14
4030: f0 92 15 01 sts 0x0115, r15
HoehenWert_Mess = StartLuftdruck - Luftdruck; // cm
4034: 80 91 08 05 lds r24, 0x0508
4038: 90 91 09 05 lds r25, 0x0509
403c: a0 91 0a 05 lds r26, 0x050A
4040: b0 91 0b 05 lds r27, 0x050B
4044: 40 91 12 01 lds r20, 0x0112
4048: 50 91 13 01 lds r21, 0x0113
404c: 60 91 14 01 lds r22, 0x0114
4050: 70 91 15 01 lds r23, 0x0115
4054: 84 1b sub r24, r20
4056: 95 0b sbc r25, r21
4058: a6 0b sbc r26, r22
405a: b7 0b sbc r27, r23
405c: 80 93 46 03 sts 0x0346, r24
4060: 90 93 47 03 sts 0x0347, r25
4064: a0 93 48 03 sts 0x0348, r26
4068: b0 93 49 03 sts 0x0349, r27
406c: 4f c1 rjmp .+670 ; 0x430c <__stack+0x20d>
}
else
#endif
{ // old version (until FC V2.1)
tmpLuftdruck += MessLuftdruck;
406e: 20 91 10 01 lds r18, 0x0110
4072: 30 91 11 01 lds r19, 0x0111
4076: 80 91 2a 03 lds r24, 0x032A
407a: 90 91 2b 03 lds r25, 0x032B
407e: a0 91 2c 03 lds r26, 0x032C
4082: b0 91 2d 03 lds r27, 0x032D
4086: 82 0f add r24, r18
4088: 93 1f adc r25, r19
408a: a1 1d adc r26, r1
408c: b1 1d adc r27, r1
408e: 80 93 2a 03 sts 0x032A, r24
4092: 90 93 2b 03 sts 0x032B, r25
4096: a0 93 2c 03 sts 0x032C, r26
409a: b0 93 2d 03 sts 0x032D, r27
if(++messanzahl_Druck >= 16) // war bis 0.86 "18"
409e: 20 91 29 03 lds r18, 0x0329
40a2: 2f 5f subi r18, 0xFF ; 255
40a4: 20 93 29 03 sts 0x0329, r18
40a8: 20 31 cpi r18, 0x10 ; 16
40aa: 08 f4 brcc .+2 ; 0x40ae <__vector_24+0x8a4>
40ac: 2f c1 rjmp .+606 ; 0x430c <__stack+0x20d>
{
signed int tmp;
// Luftdruck = (7 * Luftdruck + tmpLuftdruck - (16 * BaroStep) * (long)ExpandBaro + 4) / 8; // -523.19 counts per 10 counts offset step
// ExpandBaroStep = (16 * BaroStep) * (long)ExpandBaro - 4; // wird in fc.c aufgerufen
Luftdruck = (7 * Luftdruck + tmpLuftdruck - ExpandBaroStep) / 8; // -523.19 counts per 10 counts offset step
40ae: 40 91 12 01 lds r20, 0x0112
40b2: 50 91 13 01 lds r21, 0x0113
40b6: 60 91 14 01 lds r22, 0x0114
40ba: 70 91 15 01 lds r23, 0x0115
40be: 6a 01 movw r12, r20
40c0: 7b 01 movw r14, r22
40c2: cc 0c add r12, r12
40c4: dd 1c adc r13, r13
40c6: ee 1c adc r14, r14
40c8: ff 1c adc r15, r15
40ca: cc 0c add r12, r12
40cc: dd 1c adc r13, r13
40ce: ee 1c adc r14, r14
40d0: ff 1c adc r15, r15
40d2: cc 0c add r12, r12
40d4: dd 1c adc r13, r13
40d6: ee 1c adc r14, r14
40d8: ff 1c adc r15, r15
40da: c4 1a sub r12, r20
40dc: d5 0a sbc r13, r21
40de: e6 0a sbc r14, r22
40e0: f7 0a sbc r15, r23
40e2: c8 0e add r12, r24
40e4: d9 1e adc r13, r25
40e6: ea 1e adc r14, r26
40e8: fb 1e adc r15, r27
40ea: 40 91 4e 03 lds r20, 0x034E
40ee: 50 91 4f 03 lds r21, 0x034F
40f2: 60 91 50 03 lds r22, 0x0350
40f6: 70 91 51 03 lds r23, 0x0351
40fa: c4 1a sub r12, r20
40fc: d5 0a sbc r13, r21
40fe: e6 0a sbc r14, r22
4100: f7 0a sbc r15, r23
4102: b7 01 movw r22, r14
4104: a6 01 movw r20, r12
4106: 22 f4 brpl .+8 ; 0x4110 <__stack+0x11>
4108: 49 5f subi r20, 0xF9 ; 249
410a: 5f 4f sbci r21, 0xFF ; 255
410c: 6f 4f sbci r22, 0xFF ; 255
410e: 7f 4f sbci r23, 0xFF ; 255
4110: 68 94 set
4112: 12 f8 bld r1, 2
4114: 75 95 asr r23
4116: 67 95 ror r22
4118: 57 95 ror r21
411a: 47 95 ror r20
411c: 16 94 lsr r1
411e: d1 f7 brne .-12 ; 0x4114 <__stack+0x15>
4120: 40 93 12 01 sts 0x0112, r20
4124: 50 93 13 01 sts 0x0113, r21
4128: 60 93 14 01 sts 0x0114, r22
412c: 70 93 15 01 sts 0x0115, r23
HoehenWert_Mess = StartLuftdruck - Luftdruck;
4130: 40 91 08 05 lds r20, 0x0508
4134: 50 91 09 05 lds r21, 0x0509
4138: 60 91 0a 05 lds r22, 0x050A
413c: 70 91 0b 05 lds r23, 0x050B
4140: 00 91 12 01 lds r16, 0x0112
4144: 10 91 13 01 lds r17, 0x0113
4148: 20 91 14 01 lds r18, 0x0114
414c: 30 91 15 01 lds r19, 0x0115
4150: 40 1b sub r20, r16
4152: 51 0b sbc r21, r17
4154: 62 0b sbc r22, r18
4156: 73 0b sbc r23, r19
4158: 40 93 46 03 sts 0x0346, r20
415c: 50 93 47 03 sts 0x0347, r21
4160: 60 93 48 03 sts 0x0348, r22
4164: 70 93 49 03 sts 0x0349, r23
SummenHoehe -= SummenHoehe/SM_FILTER;
4168: 00 91 57 03 lds r16, 0x0357
416c: 10 91 58 03 lds r17, 0x0358
4170: 20 91 59 03 lds r18, 0x0359
4174: 30 91 5a 03 lds r19, 0x035A
4178: c0 90 57 03 lds r12, 0x0357
417c: d0 90 58 03 lds r13, 0x0358
4180: e0 90 59 03 lds r14, 0x0359
4184: f0 90 5a 03 lds r15, 0x035A
4188: ff 20 and r15, r15
418a: 2c f4 brge .+10 ; 0x4196 <__stack+0x97>
418c: ef e0 ldi r30, 0x0F ; 15
418e: ce 0e add r12, r30
4190: d1 1c adc r13, r1
4192: e1 1c adc r14, r1
4194: f1 1c adc r15, r1
4196: 46 01 movw r8, r12
4198: 57 01 movw r10, r14
419a: 68 94 set
419c: 13 f8 bld r1, 3
419e: b5 94 asr r11
41a0: a7 94 ror r10
41a2: 97 94 ror r9
41a4: 87 94 ror r8
41a6: 16 94 lsr r1
41a8: d1 f7 brne .-12 ; 0x419e <__stack+0x9f>
41aa: 68 01 movw r12, r16
41ac: 79 01 movw r14, r18
41ae: c8 18 sub r12, r8
41b0: d9 08 sbc r13, r9
41b2: ea 08 sbc r14, r10
41b4: fb 08 sbc r15, r11
41b6: c0 92 57 03 sts 0x0357, r12
41ba: d0 92 58 03 sts 0x0358, r13
41be: e0 92 59 03 sts 0x0359, r14
41c2: f0 92 5a 03 sts 0x035A, r15
SummenHoehe += HoehenWert_Mess;
41c6: c0 90 57 03 lds r12, 0x0357
41ca: d0 90 58 03 lds r13, 0x0358
41ce: e0 90 59 03 lds r14, 0x0359
41d2: f0 90 5a 03 lds r15, 0x035A
41d6: c4 0e add r12, r20
41d8: d5 1e adc r13, r21
41da: e6 1e adc r14, r22
41dc: f7 1e adc r15, r23
41de: c0 92 57 03 sts 0x0357, r12
41e2: d0 92 58 03 sts 0x0358, r13
41e6: e0 92 59 03 sts 0x0359, r14
41ea: f0 92 5a 03 sts 0x035A, r15
tmp = (HoehenWert_Mess - SummenHoehe/SM_FILTER);
41ee: c0 90 57 03 lds r12, 0x0357
41f2: d0 90 58 03 lds r13, 0x0358
41f6: e0 90 59 03 lds r14, 0x0359
41fa: f0 90 5a 03 lds r15, 0x035A
41fe: ff 20 and r15, r15
4200: 2c f4 brge .+10 ; 0x420c <__stack+0x10d>
4202: 2f e0 ldi r18, 0x0F ; 15
4204: c2 0e add r12, r18
4206: d1 1c adc r13, r1
4208: e1 1c adc r14, r1
420a: f1 1c adc r15, r1
420c: 68 94 set
420e: 13 f8 bld r1, 3
4210: f5 94 asr r15
4212: e7 94 ror r14
4214: d7 94 ror r13
4216: c7 94 ror r12
4218: 16 94 lsr r1
421a: d1 f7 brne .-12 ; 0x4210 <__stack+0x111>
421c: 4c 19 sub r20, r12
421e: 5d 09 sbc r21, r13
4220: 41 15 cp r20, r1
4222: 6c ef ldi r22, 0xFC ; 252
4224: 56 07 cpc r21, r22
4226: 14 f4 brge .+4 ; 0x422c <__stack+0x12d>
4228: 40 e0 ldi r20, 0x00 ; 0
422a: 5c ef ldi r21, 0xFC ; 252
422c: 41 30 cpi r20, 0x01 ; 1
422e: e4 e0 ldi r30, 0x04 ; 4
4230: 5e 07 cpc r21, r30
4232: 14 f0 brlt .+4 ; 0x4238 <__stack+0x139>
4234: 40 e0 ldi r20, 0x00 ; 0
4236: 54 e0 ldi r21, 0x04 ; 4
if(tmp > 1024) tmp = 1024; else if(tmp < -1024) tmp = -1024;
if(abs(VarioMeter) > 700) VarioMeter = (15 * VarioMeter + 8 * tmp)/16;
4238: 20 91 54 03 lds r18, 0x0354
423c: 30 91 55 03 lds r19, 0x0355
4240: 33 23 and r19, r19
4242: 1c f4 brge .+6 ; 0x424a <__stack+0x14b>
4244: 31 95 neg r19
4246: 21 95 neg r18
4248: 31 09 sbc r19, r1
424a: 2d 3b cpi r18, 0xBD ; 189
424c: 32 40 sbci r19, 0x02 ; 2
424e: 1c f1 brlt .+70 ; 0x4296 <__stack+0x197>
4250: 60 91 54 03 lds r22, 0x0354
4254: 70 91 55 03 lds r23, 0x0355
4258: ef e0 ldi r30, 0x0F ; 15
425a: e6 9f mul r30, r22
425c: 90 01 movw r18, r0
425e: e7 9f mul r30, r23
4260: 30 0d add r19, r0
4262: 11 24 eor r1, r1
4264: 44 0f add r20, r20
4266: 55 1f adc r21, r21
4268: 44 0f add r20, r20
426a: 55 1f adc r21, r21
426c: 44 0f add r20, r20
426e: 55 1f adc r21, r21
4270: 42 0f add r20, r18
4272: 53 1f adc r21, r19
4274: 55 23 and r21, r21
4276: 14 f4 brge .+4 ; 0x427c <__stack+0x17d>
4278: 41 5f subi r20, 0xF1 ; 241
427a: 5f 4f sbci r21, 0xFF ; 255
427c: 55 95 asr r21
427e: 47 95 ror r20
4280: 55 95 asr r21
4282: 47 95 ror r20
4284: 55 95 asr r21
4286: 47 95 ror r20
4288: 55 95 asr r21
428a: 47 95 ror r20
428c: 50 93 55 03 sts 0x0355, r21
4290: 40 93 54 03 sts 0x0354, r20
4294: 24 c0 rjmp .+72 ; 0x42de <__stack+0x1df>
else VarioMeter = (31 * VarioMeter + 8 * tmp)/32;
4296: 60 91 54 03 lds r22, 0x0354
429a: 70 91 55 03 lds r23, 0x0355
429e: ef e1 ldi r30, 0x1F ; 31
42a0: e6 9f mul r30, r22
42a2: 90 01 movw r18, r0
42a4: e7 9f mul r30, r23
42a6: 30 0d add r19, r0
42a8: 11 24 eor r1, r1
42aa: 44 0f add r20, r20
42ac: 55 1f adc r21, r21
42ae: 44 0f add r20, r20
42b0: 55 1f adc r21, r21
42b2: 44 0f add r20, r20
42b4: 55 1f adc r21, r21
42b6: 42 0f add r20, r18
42b8: 53 1f adc r21, r19
42ba: 55 23 and r21, r21
42bc: 14 f4 brge .+4 ; 0x42c2 <__stack+0x1c3>
42be: 41 5e subi r20, 0xE1 ; 225
42c0: 5f 4f sbci r21, 0xFF ; 255
42c2: 55 95 asr r21
42c4: 47 95 ror r20
42c6: 55 95 asr r21
42c8: 47 95 ror r20
42ca: 55 95 asr r21
42cc: 47 95 ror r20
42ce: 55 95 asr r21
42d0: 47 95 ror r20
42d2: 55 95 asr r21
42d4: 47 95 ror r20
42d6: 50 93 55 03 sts 0x0355, r21
42da: 40 93 54 03 sts 0x0354, r20
tmpLuftdruck /= 2;
42de: ac 01 movw r20, r24
42e0: bd 01 movw r22, r26
42e2: bb 23 and r27, r27
42e4: 24 f4 brge .+8 ; 0x42ee <__stack+0x1ef>
42e6: 4f 5f subi r20, 0xFF ; 255
42e8: 5f 4f sbci r21, 0xFF ; 255
42ea: 6f 4f sbci r22, 0xFF ; 255
42ec: 7f 4f sbci r23, 0xFF ; 255
42ee: 75 95 asr r23
42f0: 67 95 ror r22
42f2: 57 95 ror r21
42f4: 47 95 ror r20
42f6: 40 93 2a 03 sts 0x032A, r20
42fa: 50 93 2b 03 sts 0x032B, r21
42fe: 60 93 2c 03 sts 0x032C, r22
4302: 70 93 2d 03 sts 0x032D, r23
messanzahl_Druck = 16/2;
4306: 88 e0 ldi r24, 0x08 ; 8
4308: 80 93 29 03 sts 0x0329, r24
}
}
kanal = AD_NICK;
430c: 82 e0 ldi r24, 0x02 ; 2
430e: 80 93 3e 03 sts 0x033E, r24
break;
4312: 05 c0 rjmp .+10 ; 0x431e <__stack+0x21f>
default:
kanal = 0; state = 0; kanal = AD_NICK;
4314: 10 92 41 03 sts 0x0341, r1
4318: 82 e0 ldi r24, 0x02 ; 2
431a: 80 93 3e 03 sts 0x033E, r24
break;
}
ADMUX = kanal;
431e: 80 91 3e 03 lds r24, 0x033E
4322: 80 93 7c 00 sts 0x007C, r24
if(state != 0) ANALOG_ON;
4326: 80 91 41 03 lds r24, 0x0341
432a: 88 23 and r24, r24
432c: 19 f0 breq .+6 ; 0x4334 <__stack+0x235>
432e: 8f ec ldi r24, 0xCF ; 207
4330: 80 93 7a 00 sts 0x007A, r24
}
4334: ff 91 pop r31
4336: ef 91 pop r30
4338: bf 91 pop r27
433a: af 91 pop r26
433c: 9f 91 pop r25
433e: 8f 91 pop r24
4340: 7f 91 pop r23
4342: 6f 91 pop r22
4344: 5f 91 pop r21
4346: 4f 91 pop r20
4348: 3f 91 pop r19
434a: 2f 91 pop r18
434c: 1f 91 pop r17
434e: 0f 91 pop r16
4350: ff 90 pop r15
4352: ef 90 pop r14
4354: df 90 pop r13
4356: cf 90 pop r12
4358: bf 90 pop r11
435a: af 90 pop r10
435c: 9f 90 pop r9
435e: 8f 90 pop r8
4360: 0f 90 pop r0
4362: 0b be out 0x3b, r0 ; 59
4364: 0f 90 pop r0
4366: 0f be out 0x3f, r0 ; 63
4368: 0f 90 pop r0
436a: 1f 90 pop r1
436c: 18 95 reti
 
0000436e <Capacity_Init>:
Capacity_t Capacity;
 
// initialize capacity calculation
void Capacity_Init(void)
{
Capacity.ActualCurrent = 0;
436e: 10 92 16 05 sts 0x0516, r1
4372: 10 92 15 05 sts 0x0515, r1
Capacity.UsedCapacity = 0;
4376: 10 92 1a 05 sts 0x051A, r1
437a: 10 92 19 05 sts 0x0519, r1
Capacity.ActualPower = 0;
437e: 10 92 18 05 sts 0x0518, r1
4382: 10 92 17 05 sts 0x0517, r1
Capacity.MinOfMaxPWM = 0;
4386: 10 92 1b 05 sts 0x051B, r1
update_timer = SetDelay(CAPACITY_UPDATE_INTERVAL);
438a: 82 e3 ldi r24, 0x32 ; 50
438c: 90 e0 ldi r25, 0x00 ; 0
438e: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
4392: 90 93 74 03 sts 0x0374, r25
4396: 80 93 73 03 sts 0x0373, r24
439a: 08 95 ret
 
0000439c <BL3_Current>:
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + extended Current measurement -> 200 = 20A 201 = 21A 255 = 75A (20+55)
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
unsigned int BL3_Current(unsigned char who) // in 0,1A
{
if(Motor[who].Current == 255) return(0); // invalid
439c: 28 2f mov r18, r24
439e: 30 e0 ldi r19, 0x00 ; 0
43a0: 9f e0 ldi r25, 0x0F ; 15
43a2: 89 9f mul r24, r25
43a4: f0 01 movw r30, r0
43a6: 11 24 eor r1, r1
43a8: e9 56 subi r30, 0x69 ; 105
43aa: f6 4f sbci r31, 0xF6 ; 246
43ac: 85 81 ldd r24, Z+5 ; 0x05
43ae: 8f 3f cpi r24, 0xFF ; 255
43b0: 09 f1 breq .+66 ; 0x43f4 <BL3_Current+0x58>
if(Motor[who].Current <= 200) return(Motor[who].Current);
43b2: 89 3c cpi r24, 0xC9 ; 201
43b4: 10 f4 brcc .+4 ; 0x43ba <BL3_Current+0x1e>
43b6: 90 e0 ldi r25, 0x00 ; 0
43b8: 08 95 ret
else
{
if(Motor[who].Version & MOTOR_STATE_BL30) return(200 + 10 * ((unsigned int)Motor[who].Current-200));
43ba: 9f e0 ldi r25, 0x0F ; 15
43bc: 92 9f mul r25, r18
43be: f0 01 movw r30, r0
43c0: 93 9f mul r25, r19
43c2: f0 0d add r31, r0
43c4: 11 24 eor r1, r1
43c6: e9 56 subi r30, 0x69 ; 105
43c8: f6 4f sbci r31, 0xF6 ; 246
43ca: 90 81 ld r25, Z
43cc: 92 ff sbrs r25, 2
43ce: 10 c0 rjmp .+32 ; 0x43f0 <BL3_Current+0x54>
43d0: 28 2f mov r18, r24
43d2: 30 e0 ldi r19, 0x00 ; 0
43d4: c9 01 movw r24, r18
43d6: 88 0f add r24, r24
43d8: 99 1f adc r25, r25
43da: 22 0f add r18, r18
43dc: 33 1f adc r19, r19
43de: 22 0f add r18, r18
43e0: 33 1f adc r19, r19
43e2: 22 0f add r18, r18
43e4: 33 1f adc r19, r19
43e6: 82 0f add r24, r18
43e8: 93 1f adc r25, r19
43ea: 88 50 subi r24, 0x08 ; 8
43ec: 97 40 sbci r25, 0x07 ; 7
43ee: 08 95 ret
else return(Motor[who].Current);
43f0: 90 e0 ldi r25, 0x00 ; 0
43f2: 08 95 ret
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + extended Current measurement -> 200 = 20A 201 = 21A 255 = 75A (20+55)
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
unsigned int BL3_Current(unsigned char who) // in 0,1A
{
if(Motor[who].Current == 255) return(0); // invalid
43f4: 80 e0 ldi r24, 0x00 ; 0
43f6: 90 e0 ldi r25, 0x00 ; 0
else
{
if(Motor[who].Version & MOTOR_STATE_BL30) return(200 + 10 * ((unsigned int)Motor[who].Current-200));
else return(Motor[who].Current);
}
}
43f8: 08 95 ret
 
000043fa <Capacity_Update>:
 
// called in main loop at a regular interval
void Capacity_Update(void)
{
43fa: 9f 92 push r9
43fc: af 92 push r10
43fe: bf 92 push r11
4400: cf 92 push r12
4402: df 92 push r13
4404: ef 92 push r14
4406: ff 92 push r15
4408: 0f 93 push r16
440a: 1f 93 push r17
440c: cf 93 push r28
440e: df 93 push r29
static unsigned short SubCounter = 0;
static unsigned short CurrentOffset = 0;
static unsigned long SumCurrentOffset = 0;
unsigned char i, NumOfMotors, MinOfMaxPWM;
 
if(CheckDelay(update_timer))
4410: 80 91 73 03 lds r24, 0x0373
4414: 90 91 74 03 lds r25, 0x0374
4418: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
441c: 88 23 and r24, r24
441e: 09 f4 brne .+2 ; 0x4422 <Capacity_Update+0x28>
4420: fb c0 rjmp .+502 ; 0x4618 <Capacity_Update+0x21e>
{
update_timer += CAPACITY_UPDATE_INTERVAL; // do not use SetDelay to avoid timing leaks
4422: 80 91 73 03 lds r24, 0x0373
4426: 90 91 74 03 lds r25, 0x0374
442a: c2 96 adiw r24, 0x32 ; 50
442c: 90 93 74 03 sts 0x0374, r25
4430: 80 93 73 03 sts 0x0373, r24
// determine sum of all present BL currents and setpoints
Current = 0;
SetSum = 0;
NumOfMotors = 0;
MinOfMaxPWM = 255;
if(Capacity.MinOfMaxPWM == 254) FC_StatusFlags3 |= FC_STATUS3_REDUNDANCE;
4434: 80 91 1b 05 lds r24, 0x051B
4438: 8e 3f cpi r24, 0xFE ; 254
443a: 31 f4 brne .+12 ; 0x4448 <Capacity_Update+0x4e>
443c: 80 91 c9 03 lds r24, 0x03C9
4440: 81 60 ori r24, 0x01 ; 1
4442: 80 93 c9 03 sts 0x03C9, r24
4446: dd c0 rjmp .+442 ; 0x4602 <Capacity_Update+0x208>
else if(Capacity.MinOfMaxPWM == 255) FC_StatusFlags3 &= ~FC_STATUS3_REDUNDANCE;
4448: 8f 3f cpi r24, 0xFF ; 255
444a: 09 f0 breq .+2 ; 0x444e <Capacity_Update+0x54>
444c: da c0 rjmp .+436 ; 0x4602 <Capacity_Update+0x208>
444e: 80 91 c9 03 lds r24, 0x03C9
4452: 8e 7f andi r24, 0xFE ; 254
4454: 80 93 c9 03 sts 0x03C9, r24
4458: d4 c0 rjmp .+424 ; 0x4602 <Capacity_Update+0x208>
445a: 78 01 movw r14, r16
445c: f8 01 movw r30, r16
445e: 33 97 sbiw r30, 0x03 ; 3
for(i = 0; i < MAX_MOTORS; i++)
{
if(Motor[i].State & MOTOR_STATE_PRESENT_MASK/* && Mixer.Motor[i][MIX_GAS]*/)
4460: 80 81 ld r24, Z
4462: 88 23 and r24, r24
4464: e4 f4 brge .+56 ; 0x449e <Capacity_Update+0xa4>
{
NumOfMotors++;
4466: b3 94 inc r11
4468: 32 96 adiw r30, 0x02 ; 2
if(Motor[i].Current > 200)
446a: 80 81 ld r24, Z
446c: 89 3c cpi r24, 0xC9 ; 201
446e: 28 f0 brcs .+10 ; 0x447a <Capacity_Update+0x80>
{
Current += BL3_Current(i); // extended Current measurement -> 200 = 20A 201 = 21A 255 = 75A (20+55)
4470: 8a 2d mov r24, r10
4472: 94 df rcall .-216 ; 0x439c <BL3_Current>
4474: c8 0f add r28, r24
4476: d9 1f adc r29, r25
4478: 02 c0 rjmp .+4 ; 0x447e <Capacity_Update+0x84>
}
else Current += (unsigned int)(Motor[i].Current);
447a: c8 0f add r28, r24
447c: d1 1d adc r29, r1
447e: f7 01 movw r30, r14
4480: 35 97 sbiw r30, 0x05 ; 5
SetSum += (unsigned int)(Motor[i].SetPoint);
4482: 80 81 ld r24, Z
4484: c8 0e add r12, r24
4486: d1 1c adc r13, r1
if(Motor[i].MaxPWM <= MinOfMaxPWM) MinOfMaxPWM = Motor[i].MaxPWM; else FC_StatusFlags3 &= ~FC_STATUS3_REDUNDANCE;
4488: f7 01 movw r30, r14
448a: 80 81 ld r24, Z
448c: 98 16 cp r9, r24
448e: 30 f4 brcc .+12 ; 0x449c <Capacity_Update+0xa2>
4490: 80 91 c9 03 lds r24, 0x03C9
4494: 8e 7f andi r24, 0xFE ; 254
4496: 80 93 c9 03 sts 0x03C9, r24
449a: 01 c0 rjmp .+2 ; 0x449e <Capacity_Update+0xa4>
449c: 98 2e mov r9, r24
NumOfMotors = 0;
MinOfMaxPWM = 255;
if(Capacity.MinOfMaxPWM == 254) FC_StatusFlags3 |= FC_STATUS3_REDUNDANCE;
else if(Capacity.MinOfMaxPWM == 255) FC_StatusFlags3 &= ~FC_STATUS3_REDUNDANCE;
for(i = 0; i < MAX_MOTORS; i++)
449e: a3 94 inc r10
44a0: 01 5f subi r16, 0xF1 ; 241
44a2: 1f 4f sbci r17, 0xFF ; 255
44a4: fc e0 ldi r31, 0x0C ; 12
44a6: af 12 cpse r10, r31
44a8: d8 cf rjmp .-80 ; 0x445a <Capacity_Update+0x60>
else Current += (unsigned int)(Motor[i].Current);
SetSum += (unsigned int)(Motor[i].SetPoint);
if(Motor[i].MaxPWM <= MinOfMaxPWM) MinOfMaxPWM = Motor[i].MaxPWM; else FC_StatusFlags3 &= ~FC_STATUS3_REDUNDANCE;
}
}
Capacity.MinOfMaxPWM = MinOfMaxPWM;
44aa: 90 92 1b 05 sts 0x051B, r9
if(SetSum == 0) // if all setpoints are 0
44ae: cd 28 or r12, r13
44b0: 59 f5 brne .+86 ; 0x4508 <Capacity_Update+0x10e>
{ // determine offsets of motor currents
#define CURRENT_AVERAGE 8 // 8bit = 256 * 10 ms = 2.56s average time
CurrentOffset = (unsigned int)(SumCurrentOffset>>CURRENT_AVERAGE);
44b2: 40 91 6f 03 lds r20, 0x036F
44b6: 50 91 70 03 lds r21, 0x0370
44ba: 60 91 71 03 lds r22, 0x0371
44be: 70 91 72 03 lds r23, 0x0372
44c2: 05 2f mov r16, r21
44c4: 16 2f mov r17, r22
44c6: 27 2f mov r18, r23
44c8: 33 27 eor r19, r19
44ca: 10 93 6e 03 sts 0x036E, r17
44ce: 00 93 6d 03 sts 0x036D, r16
SumCurrentOffset -= CurrentOffset;
44d2: 22 27 eor r18, r18
44d4: 33 27 eor r19, r19
44d6: 40 1b sub r20, r16
44d8: 51 0b sbc r21, r17
44da: 62 0b sbc r22, r18
44dc: 73 0b sbc r23, r19
SumCurrentOffset += Current;
44de: 4c 0f add r20, r28
44e0: 5d 1f adc r21, r29
44e2: 61 1d adc r22, r1
44e4: 71 1d adc r23, r1
44e6: 40 93 6f 03 sts 0x036F, r20
44ea: 50 93 70 03 sts 0x0370, r21
44ee: 60 93 71 03 sts 0x0371, r22
44f2: 70 93 72 03 sts 0x0372, r23
// add the FC and BL Offsets
Current += FC_OFFSET_CURRENT + NumOfMotors * BL_OFFSET_CURRENT;
}
 
// update actual Current
Capacity.ActualCurrent = Current;
44f6: 85 e0 ldi r24, 0x05 ; 5
44f8: 90 e0 ldi r25, 0x00 ; 0
44fa: 90 93 16 05 sts 0x0516, r25
44fe: 80 93 15 05 sts 0x0515, r24
#define CURRENT_AVERAGE 8 // 8bit = 256 * 10 ms = 2.56s average time
CurrentOffset = (unsigned int)(SumCurrentOffset>>CURRENT_AVERAGE);
SumCurrentOffset -= CurrentOffset;
SumCurrentOffset += Current;
// after averaging set current to static offset
Current = FC_OFFSET_CURRENT;
4502: c5 e0 ldi r28, 0x05 ; 5
4504: d0 e0 ldi r29, 0x00 ; 0
4506: 1c c0 rjmp .+56 ; 0x4540 <Capacity_Update+0x146>
}
else // some motors are running, includes also motor test condition, where "MotorRunning" is false
{ // subtract offset
if(Current > CurrentOffset) Current -= CurrentOffset;
4508: 80 91 6d 03 lds r24, 0x036D
450c: 90 91 6e 03 lds r25, 0x036E
4510: 8c 17 cp r24, r28
4512: 9d 07 cpc r25, r29
4514: 28 f4 brcc .+10 ; 0x4520 <Capacity_Update+0x126>
4516: 9e 01 movw r18, r28
4518: 28 1b sub r18, r24
451a: 39 0b sbc r19, r25
451c: c9 01 movw r24, r18
451e: 02 c0 rjmp .+4 ; 0x4524 <Capacity_Update+0x12a>
else Current = 0;
4520: 80 e0 ldi r24, 0x00 ; 0
4522: 90 e0 ldi r25, 0x00 ; 0
// add the FC and BL Offsets
Current += FC_OFFSET_CURRENT + NumOfMotors * BL_OFFSET_CURRENT;
4524: cb 2d mov r28, r11
4526: d0 e0 ldi r29, 0x00 ; 0
4528: cc 0f add r28, r28
452a: dd 1f adc r29, r29
452c: 25 96 adiw r28, 0x05 ; 5
452e: c8 0f add r28, r24
4530: d9 1f adc r29, r25
}
 
// update actual Current
Capacity.ActualCurrent = Current;
4532: d0 93 16 05 sts 0x0516, r29
4536: c0 93 15 05 sts 0x0515, r28
// update actual Power
if(Current < 255) Capacity.ActualPower = (UBat * Current) / 100; // in W higher resolution
453a: cf 3f cpi r28, 0xFF ; 255
453c: d1 05 cpc r29, r1
453e: d0 f4 brcc .+52 ; 0x4574 <Capacity_Update+0x17a>
4540: 80 91 1a 01 lds r24, 0x011A
4544: 90 91 1b 01 lds r25, 0x011B
4548: c8 9f mul r28, r24
454a: 90 01 movw r18, r0
454c: c9 9f mul r28, r25
454e: 30 0d add r19, r0
4550: d8 9f mul r29, r24
4552: 30 0d add r19, r0
4554: 11 24 eor r1, r1
4556: 36 95 lsr r19
4558: 27 95 ror r18
455a: 36 95 lsr r19
455c: 27 95 ror r18
455e: ab e7 ldi r26, 0x7B ; 123
4560: b4 e1 ldi r27, 0x14 ; 20
4562: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
4566: 96 95 lsr r25
4568: 87 95 ror r24
456a: 90 93 18 05 sts 0x0518, r25
456e: 80 93 17 05 sts 0x0517, r24
4572: 25 c0 rjmp .+74 ; 0x45be <Capacity_Update+0x1c4>
else Capacity.ActualPower = (UBat * (Current/4)) / 25; // in W
4574: 80 91 1a 01 lds r24, 0x011A
4578: 90 91 1b 01 lds r25, 0x011B
457c: 9e 01 movw r18, r28
457e: 36 95 lsr r19
4580: 27 95 ror r18
4582: 36 95 lsr r19
4584: 27 95 ror r18
4586: 28 9f mul r18, r24
4588: a0 01 movw r20, r0
458a: 29 9f mul r18, r25
458c: 50 0d add r21, r0
458e: 38 9f mul r19, r24
4590: 50 0d add r21, r0
4592: 11 24 eor r1, r1
4594: 9a 01 movw r18, r20
4596: af ea ldi r26, 0xAF ; 175
4598: b7 e4 ldi r27, 0x47 ; 71
459a: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
459e: 48 1b sub r20, r24
45a0: 59 0b sbc r21, r25
45a2: 56 95 lsr r21
45a4: 47 95 ror r20
45a6: 84 0f add r24, r20
45a8: 95 1f adc r25, r21
45aa: 92 95 swap r25
45ac: 82 95 swap r24
45ae: 8f 70 andi r24, 0x0F ; 15
45b0: 89 27 eor r24, r25
45b2: 9f 70 andi r25, 0x0F ; 15
45b4: 89 27 eor r24, r25
45b6: 90 93 18 05 sts 0x0518, r25
45ba: 80 93 17 05 sts 0x0517, r24
 
// update used capacity
SubCounter += Current;
45be: 80 91 6b 03 lds r24, 0x036B
45c2: 90 91 6c 03 lds r25, 0x036C
45c6: c8 0f add r28, r24
45c8: d9 1f adc r29, r25
45ca: d0 93 6c 03 sts 0x036C, r29
45ce: c0 93 6b 03 sts 0x036B, r28
 
// 100mA * 1ms * CAPACITY_UPDATE_INTERVAL = 1 mA * 100 ms * CAPACITY_UPDATE_INTERVAL
// = 1mA * 0.1s * CAPACITY_UPDATE_INTERVAL = 1mA * 1min / (600 / CAPACITY_UPDATE_INTERVAL)
// = 1mAh / (36000 / CAPACITY_UPDATE_INTERVAL)
#define SUB_COUNTER_LIMIT (36000 / CAPACITY_UPDATE_INTERVAL)
while(SubCounter > SUB_COUNTER_LIMIT)
45d2: c1 3d cpi r28, 0xD1 ; 209
45d4: 32 e0 ldi r19, 0x02 ; 2
45d6: d3 07 cpc r29, r19
45d8: f8 f0 brcs .+62 ; 0x4618 <Capacity_Update+0x21e>
45da: 80 91 19 05 lds r24, 0x0519
45de: 90 91 1a 05 lds r25, 0x051A
{
Capacity.UsedCapacity++; // we have one mAh more
45e2: 01 96 adiw r24, 0x01 ; 1
SubCounter -= SUB_COUNTER_LIMIT; // keep the remaining sub part
45e4: c0 5d subi r28, 0xD0 ; 208
45e6: d2 40 sbci r29, 0x02 ; 2
 
// 100mA * 1ms * CAPACITY_UPDATE_INTERVAL = 1 mA * 100 ms * CAPACITY_UPDATE_INTERVAL
// = 1mA * 0.1s * CAPACITY_UPDATE_INTERVAL = 1mA * 1min / (600 / CAPACITY_UPDATE_INTERVAL)
// = 1mAh / (36000 / CAPACITY_UPDATE_INTERVAL)
#define SUB_COUNTER_LIMIT (36000 / CAPACITY_UPDATE_INTERVAL)
while(SubCounter > SUB_COUNTER_LIMIT)
45e8: c1 3d cpi r28, 0xD1 ; 209
45ea: e2 e0 ldi r30, 0x02 ; 2
45ec: de 07 cpc r29, r30
45ee: c8 f7 brcc .-14 ; 0x45e2 <Capacity_Update+0x1e8>
45f0: 90 93 1a 05 sts 0x051A, r25
45f4: 80 93 19 05 sts 0x0519, r24
45f8: d0 93 6c 03 sts 0x036C, r29
45fc: c0 93 6b 03 sts 0x036B, r28
4600: 0b c0 rjmp .+22 ; 0x4618 <Capacity_Update+0x21e>
4602: 0d e9 ldi r16, 0x9D ; 157
4604: 19 e0 ldi r17, 0x09 ; 9
}
}
 
// called in main loop at a regular interval
void Capacity_Update(void)
{
4606: 99 24 eor r9, r9
4608: 9a 94 dec r9
460a: b1 2c mov r11, r1
460c: a1 2c mov r10, r1
460e: c1 2c mov r12, r1
4610: d1 2c mov r13, r1
4612: c0 e0 ldi r28, 0x00 ; 0
4614: d0 e0 ldi r29, 0x00 ; 0
4616: 21 cf rjmp .-446 ; 0x445a <Capacity_Update+0x60>
{
Capacity.UsedCapacity++; // we have one mAh more
SubCounter -= SUB_COUNTER_LIMIT; // keep the remaining sub part
}
} // EOF check delay update timer
}
4618: df 91 pop r29
461a: cf 91 pop r28
461c: 1f 91 pop r17
461e: 0f 91 pop r16
4620: ff 90 pop r15
4622: ef 90 pop r14
4624: df 90 pop r13
4626: cf 90 pop r12
4628: bf 90 pop r11
462a: af 90 pop r10
462c: 9f 90 pop r9
462e: 08 95 ret
 
00004630 <Debug_Putchar>:
unsigned char SendDebugOutput = 0;
 
// function called from _printf_P to output character
void Debug_Putchar(char c)
{
if (!SendDebugOutput)
4630: 90 91 76 03 lds r25, 0x0376
4634: 91 11 cpse r25, r1
4636: 0f c0 rjmp .+30 ; 0x4656 <Debug_Putchar+0x26>
{
tDebug.Text[Debug_BufPtr++] = c; // copy character to buffer
4638: e0 91 75 03 lds r30, 0x0375
463c: 91 e0 ldi r25, 0x01 ; 1
463e: 9e 0f add r25, r30
4640: 90 93 75 03 sts 0x0375, r25
4644: f0 e0 ldi r31, 0x00 ; 0
4646: e4 5e subi r30, 0xE4 ; 228
4648: fa 4f sbci r31, 0xFA ; 250
464a: 81 83 std Z+1, r24 ; 0x01
if (Debug_BufPtr > 30) Debug_BufPtr = 30; // avoid buffer overflow
464c: 9f 31 cpi r25, 0x1F ; 31
464e: 18 f0 brcs .+6 ; 0x4656 <Debug_Putchar+0x26>
4650: 8e e1 ldi r24, 0x1E ; 30
4652: 80 93 75 03 sts 0x0375, r24
4656: 08 95 ret
 
00004658 <DebugSend>:
}
}
 
void DebugSend(unsigned char cmd)
{
if (!SendDebugOutput)
4658: 90 91 76 03 lds r25, 0x0376
465c: 91 11 cpse r25, r1
465e: 0d c0 rjmp .+26 ; 0x467a <DebugSend+0x22>
{
tDebug.Cmd = cmd;
4660: 80 93 1c 05 sts 0x051C, r24
tDebug.Text[Debug_BufPtr] = '\0'; // end of text marker
4664: e0 91 75 03 lds r30, 0x0375
4668: f0 e0 ldi r31, 0x00 ; 0
466a: e4 5e subi r30, 0xE4 ; 228
466c: fa 4f sbci r31, 0xFA ; 250
466e: 11 82 std Z+1, r1 ; 0x01
Debug_BufPtr = 0; // set bufferindex to 0
4670: 10 92 75 03 sts 0x0375, r1
SendDebugOutput = 1; // set flag to trasmit data the next time in serial transmit function
4674: 81 e0 ldi r24, 0x01 ; 1
4676: 80 93 76 03 sts 0x0376, r24
467a: 08 95 ret
 
0000467c <RAM_Checksum>:
uint8_t RAM_Checksum(uint8_t* pBuffer, uint16_t len)
{
uint8_t crc = 0xAA;
uint16_t i;
 
for(i=0; i<len; i++)
467c: 61 15 cp r22, r1
467e: 71 05 cpc r23, r1
4680: 51 f0 breq .+20 ; 0x4696 <RAM_Checksum+0x1a>
4682: fc 01 movw r30, r24
4684: 68 0f add r22, r24
4686: 79 1f adc r23, r25
uint8_t RequiredMotors;
 
 
uint8_t RAM_Checksum(uint8_t* pBuffer, uint16_t len)
{
uint8_t crc = 0xAA;
4688: 8a ea ldi r24, 0xAA ; 170
uint16_t i;
 
for(i=0; i<len; i++)
{
crc += pBuffer[i];
468a: 91 91 ld r25, Z+
468c: 89 0f add r24, r25
uint8_t RAM_Checksum(uint8_t* pBuffer, uint16_t len)
{
uint8_t crc = 0xAA;
uint16_t i;
 
for(i=0; i<len; i++)
468e: e6 17 cp r30, r22
4690: f7 07 cpc r31, r23
4692: d9 f7 brne .-10 ; 0x468a <RAM_Checksum+0xe>
4694: 08 95 ret
uint8_t RequiredMotors;
 
 
uint8_t RAM_Checksum(uint8_t* pBuffer, uint16_t len)
{
uint8_t crc = 0xAA;
4696: 8a ea ldi r24, 0xAA ; 170
for(i=0; i<len; i++)
{
crc += pBuffer[i];
}
return crc;
}
4698: 08 95 ret
 
0000469a <EEProm_Checksum>:
 
uint8_t EEProm_Checksum(uint16_t EEAddr, uint16_t len)
{
469a: ff 92 push r15
469c: 0f 93 push r16
469e: 1f 93 push r17
46a0: cf 93 push r28
46a2: df 93 push r29
uint8_t crc = 0xAA;
uint16_t off;
 
for(off=0; off<len; off++)
46a4: 61 15 cp r22, r1
46a6: 71 05 cpc r23, r1
46a8: 89 f0 breq .+34 ; 0x46cc <EEProm_Checksum+0x32>
46aa: 8b 01 movw r16, r22
46ac: 08 0f add r16, r24
46ae: 19 1f adc r17, r25
46b0: ec 01 movw r28, r24
return crc;
}
 
uint8_t EEProm_Checksum(uint16_t EEAddr, uint16_t len)
{
uint8_t crc = 0xAA;
46b2: 0f 2e mov r0, r31
46b4: fa ea ldi r31, 0xAA ; 170
46b6: ff 2e mov r15, r31
46b8: f0 2d mov r31, r0
uint16_t off;
 
for(off=0; off<len; off++)
{
crc += eeprom_read_byte((uint8_t*)(EEAddr + off));;
46ba: ce 01 movw r24, r28
46bc: 0e 94 3e b2 call 0x1647c ; 0x1647c <__eerd_byte_m1284>
46c0: f8 0e add r15, r24
46c2: 21 96 adiw r28, 0x01 ; 1
uint8_t EEProm_Checksum(uint16_t EEAddr, uint16_t len)
{
uint8_t crc = 0xAA;
uint16_t off;
 
for(off=0; off<len; off++)
46c4: c0 17 cp r28, r16
46c6: d1 07 cpc r29, r17
46c8: c1 f7 brne .-16 ; 0x46ba <EEProm_Checksum+0x20>
46ca: 04 c0 rjmp .+8 ; 0x46d4 <EEProm_Checksum+0x3a>
return crc;
}
 
uint8_t EEProm_Checksum(uint16_t EEAddr, uint16_t len)
{
uint8_t crc = 0xAA;
46cc: 0f 2e mov r0, r31
46ce: fa ea ldi r31, 0xAA ; 170
46d0: ff 2e mov r15, r31
46d2: f0 2d mov r31, r0
for(off=0; off<len; off++)
{
crc += eeprom_read_byte((uint8_t*)(EEAddr + off));;
}
return crc;
}
46d4: 8f 2d mov r24, r15
46d6: df 91 pop r29
46d8: cf 91 pop r28
46da: 1f 91 pop r17
46dc: 0f 91 pop r16
46de: ff 90 pop r15
46e0: 08 95 ret
 
000046e2 <ParamSet_DefaultStickMapping>:
 
void ParamSet_DefaultStickMapping(void)
{
EE_Parameter.Kanalbelegung[K_GAS] = 1;
46e2: 81 e0 ldi r24, 0x01 ; 1
46e4: 80 93 41 05 sts 0x0541, r24
EE_Parameter.Kanalbelegung[K_ROLL] = 2;
46e8: 82 e0 ldi r24, 0x02 ; 2
46ea: 80 93 40 05 sts 0x0540, r24
EE_Parameter.Kanalbelegung[K_NICK] = 3;
46ee: 83 e0 ldi r24, 0x03 ; 3
46f0: 80 93 3f 05 sts 0x053F, r24
EE_Parameter.Kanalbelegung[K_GIER] = 4;
46f4: 84 e0 ldi r24, 0x04 ; 4
46f6: 80 93 42 05 sts 0x0542, r24
EE_Parameter.Kanalbelegung[K_POTI1] = 5;
46fa: 85 e0 ldi r24, 0x05 ; 5
46fc: 80 93 43 05 sts 0x0543, r24
EE_Parameter.Kanalbelegung[K_POTI2] = 6;
4700: 86 e0 ldi r24, 0x06 ; 6
4702: 80 93 44 05 sts 0x0544, r24
EE_Parameter.Kanalbelegung[K_POTI3] = 7;
4706: 87 e0 ldi r24, 0x07 ; 7
4708: 80 93 45 05 sts 0x0545, r24
EE_Parameter.Kanalbelegung[K_POTI4] = 8;
470c: 88 e0 ldi r24, 0x08 ; 8
470e: 80 93 46 05 sts 0x0546, r24
EE_Parameter.Kanalbelegung[K_POTI5] = 9;
4712: 89 e0 ldi r24, 0x09 ; 9
4714: 80 93 47 05 sts 0x0547, r24
EE_Parameter.Kanalbelegung[K_POTI6] = 10;
4718: 8a e0 ldi r24, 0x0A ; 10
471a: 80 93 48 05 sts 0x0548, r24
EE_Parameter.Kanalbelegung[K_POTI7] = 11;
471e: 8b e0 ldi r24, 0x0B ; 11
4720: 80 93 49 05 sts 0x0549, r24
EE_Parameter.Kanalbelegung[K_POTI8] = 12;
4724: 8c e0 ldi r24, 0x0C ; 12
4726: 80 93 4a 05 sts 0x054A, r24
472a: 08 95 ret
 
0000472c <CommonDefaults>:
/***************************************************/
/* Default Values for parameter set 1 */
/***************************************************/
void CommonDefaults(void)
{
EE_Parameter.Revision = EEPARAM_REVISION;
472c: 87 e6 ldi r24, 0x67 ; 103
472e: 80 93 3e 05 sts 0x053E, r24
memset(EE_Parameter.Name,0,12); // delete name
4732: 8c e0 ldi r24, 0x0C ; 12
4734: ea eb ldi r30, 0xBA ; 186
4736: f5 e0 ldi r31, 0x05 ; 5
4738: df 01 movw r26, r30
473a: 1d 92 st X+, r1
473c: 8a 95 dec r24
473e: e9 f7 brne .-6 ; 0x473a <CommonDefaults+0xe>
// if(PlatinenVersion >= 20)
{
EE_Parameter.Gyro_D = 10;
4740: 8a e0 ldi r24, 0x0A ; 10
4742: 80 93 5e 05 sts 0x055E, r24
EE_Parameter.Driftkomp = 0;
4746: 10 92 82 05 sts 0x0582, r1
EE_Parameter.GyroAccFaktor = 27;
474a: 8b e1 ldi r24, 0x1B ; 27
474c: 80 93 5a 05 sts 0x055A, r24
EE_Parameter.WinkelUmschlagNick = 78;
4750: 8e e4 ldi r24, 0x4E ; 78
4752: 80 93 7f 05 sts 0x057F, r24
EE_Parameter.WinkelUmschlagRoll = 78;
4756: 80 93 80 05 sts 0x0580, r24
EE_Parameter.GyroAccFaktor = 30;
EE_Parameter.WinkelUmschlagNick = 85;
EE_Parameter.WinkelUmschlagRoll = 85;
}
*/
EE_Parameter.GyroAccAbgleich = 32; // 1/k
475a: 80 e2 ldi r24, 0x20 ; 32
475c: 80 93 81 05 sts 0x0581, r24
EE_Parameter.BitConfig = 0; // Looping usw.
4760: 10 92 b6 05 sts 0x05B6, r1
EE_Parameter.GlobalConfig = CFG_ACHSENKOPPLUNG_AKTIV | CFG_KOMPASS_AKTIV | CFG_GPS_AKTIV | CFG_HOEHEN_SCHALTER;
4764: 8a e6 ldi r24, 0x6A ; 106
4766: 80 93 4b 05 sts 0x054B, r24
EE_Parameter.ExtraConfig = CFG_GPS_AID | CFG2_VARIO_BEEP | CFG_LEARNABLE_CAREFREE | CFG_NO_RCOFF_BEEPING;
476a: 82 e7 ldi r24, 0x72 ; 114
476c: 80 93 b8 05 sts 0x05B8, r24
EE_Parameter.GlobalConfig3 = CFG3_SPEAK_ALL | CFG3_NO_GPSFIX_NO_START;//
4770: 80 e5 ldi r24, 0x50 ; 80
4772: 80 93 b9 05 sts 0x05B9, r24
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
EE_Parameter.Receiver = RECEIVER_HOTT;
4776: 86 e0 ldi r24, 0x06 ; 6
4778: 80 93 65 05 sts 0x0565, r24
#else
EE_Parameter.Receiver = RECEIVER_JETI;
#endif
 
EE_Parameter.MotorSafetySwitch = 0;
477c: 10 92 a3 05 sts 0x05A3, r1
EE_Parameter.ExternalControl = 0;
4780: 10 92 a0 05 sts 0x05A0, r1
 
EE_Parameter.Gas_Min = 8; // Wert : 0-32
4784: 88 e0 ldi r24, 0x08 ; 8
4786: 80 93 58 05 sts 0x0558, r24
EE_Parameter.Gas_Max = 230; // Wert : 33-247
478a: 86 ee ldi r24, 0xE6 ; 230
478c: 80 93 59 05 sts 0x0559, r24
EE_Parameter.KompassWirkung = 64; // Wert : 0-247
4790: 80 e4 ldi r24, 0x40 ; 64
4792: 80 93 5b 05 sts 0x055B, r24
 
EE_Parameter.HoeheChannel = 5; // Wert : 0-32
4796: 85 e0 ldi r24, 0x05 ; 5
4798: 80 93 4e 05 sts 0x054E, r24
EE_Parameter.Hoehe_MinGas = 30;
479c: 8e e1 ldi r24, 0x1E ; 30
479e: 80 93 4c 05 sts 0x054C, r24
EE_Parameter.Hoehe_TiltCompensation = 110; // in %
47a2: 8e e6 ldi r24, 0x6E ; 110
47a4: 80 93 53 05 sts 0x0553, r24
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(ACC_AltitudeControl)
47a8: 80 91 c2 03 lds r24, 0x03C2
47ac: 88 23 and r24, r24
47ae: 99 f0 breq .+38 ; 0x47d6 <CommonDefaults+0xaa>
{
EE_Parameter.Hoehe_P = 20; // Wert : 0-32
47b0: 84 e1 ldi r24, 0x14 ; 20
47b2: 80 93 4f 05 sts 0x054F, r24
EE_Parameter.Luftdruck_D = 40; // Wert : 0-247
47b6: 88 e2 ldi r24, 0x28 ; 40
47b8: 80 93 4d 05 sts 0x054D, r24
EE_Parameter.Hoehe_ACC_Wirkung = 30; // Wert : 0-247
47bc: 8e e1 ldi r24, 0x1E ; 30
47be: 80 93 51 05 sts 0x0551, r24
EE_Parameter.Hoehe_HoverBand = 1; // Wert : 0-247
47c2: 81 e0 ldi r24, 0x01 ; 1
47c4: 80 93 52 05 sts 0x0552, r24
EE_Parameter.Hoehe_StickNeutralPoint = 127;// Wert : 0-247 (0 = Hover-Estimation)
47c8: 8f e7 ldi r24, 0x7F ; 127
47ca: 80 93 54 05 sts 0x0554, r24
EE_Parameter.FailSafeTime = 60; // 0 = off
47ce: 8c e3 ldi r24, 0x3C ; 60
47d0: 80 93 a6 05 sts 0x05A6, r24
47d4: 0f c0 rjmp .+30 ; 0x47f4 <CommonDefaults+0xc8>
}
else
#endif
{
EE_Parameter.Hoehe_P = 15; // Wert : 0-32
47d6: 8f e0 ldi r24, 0x0F ; 15
47d8: 80 93 4f 05 sts 0x054F, r24
EE_Parameter.Luftdruck_D = 30; // Wert : 0-247
47dc: 8e e1 ldi r24, 0x1E ; 30
47de: 80 93 4d 05 sts 0x054D, r24
EE_Parameter.Hoehe_ACC_Wirkung = 0; // Wert : 0-247
47e2: 10 92 51 05 sts 0x0551, r1
EE_Parameter.Hoehe_HoverBand = 8; // Wert : 0-247
47e6: 88 e0 ldi r24, 0x08 ; 8
47e8: 80 93 52 05 sts 0x0552, r24
EE_Parameter.Hoehe_StickNeutralPoint = 0;// Wert : 0-247 (0 = Hover-Estimation)
47ec: 10 92 54 05 sts 0x0554, r1
EE_Parameter.FailSafeTime = 0; // 0 = off
47f0: 10 92 a6 05 sts 0x05A6, r1
}
EE_Parameter.Hoehe_Verstaerkung = 15; // Wert : 0-50 (15 -> ca. +/- 5m/sek bei Stick-Voll-Ausschlag)
47f4: 8f e0 ldi r24, 0x0F ; 15
47f6: 80 93 50 05 sts 0x0550, r24
EE_Parameter.StartLandChannel = 0;
47fa: 10 92 af 05 sts 0x05AF, r1
EE_Parameter.LandingSpeed = 12;
47fe: 8c e0 ldi r24, 0x0C ; 12
4800: 80 93 b0 05 sts 0x05B0, r24
 
EE_Parameter.UserParam1 = 0; // zur freien Verwendung
4804: 10 92 67 05 sts 0x0567, r1
EE_Parameter.UserParam2 = 0; // zur freien Verwendung
4808: 10 92 68 05 sts 0x0568, r1
EE_Parameter.UserParam3 = 0; // zur freien Verwendung
480c: 10 92 69 05 sts 0x0569, r1
EE_Parameter.UserParam4 = 0; // zur freien Verwendung
4810: 10 92 6a 05 sts 0x056A, r1
EE_Parameter.UserParam5 = 0; // zur freien Verwendung
4814: 10 92 84 05 sts 0x0584, r1
EE_Parameter.UserParam6 = 0; // zur freien Verwendung
4818: 10 92 85 05 sts 0x0585, r1
EE_Parameter.UserParam7 = 0; // zur freien Verwendung
481c: 10 92 86 05 sts 0x0586, r1
EE_Parameter.UserParam8 = 0; // zur freien Verwendung
4820: 10 92 87 05 sts 0x0587, r1
 
EE_Parameter.ServoNickControl = 128; // Wert : 0-247 // Stellung des Servos
4824: 20 e8 ldi r18, 0x80 ; 128
4826: 20 93 6b 05 sts 0x056B, r18
EE_Parameter.ServoNickComp = 50; // Wert : 0-247 // Einfluss Gyro/Servo
482a: 82 e3 ldi r24, 0x32 ; 50
482c: 80 93 6c 05 sts 0x056C, r24
EE_Parameter.ServoCompInvert = 2; // Wert : 0-247 // Richtung Einfluss Gyro/Servo
4830: 52 e0 ldi r21, 0x02 ; 2
4832: 50 93 b7 05 sts 0x05B7, r21
EE_Parameter.ServoNickMin = 24; // Wert : 0-247 // Anschlag
4836: 98 e1 ldi r25, 0x18 ; 24
4838: 90 93 6d 05 sts 0x056D, r25
EE_Parameter.ServoNickMax = 230; // Wert : 0-247 // Anschlag
483c: 96 ee ldi r25, 0xE6 ; 230
483e: 90 93 6e 05 sts 0x056E, r25
EE_Parameter.ServoNickRefresh = 3;
4842: 93 e0 ldi r25, 0x03 ; 3
4844: 90 93 73 05 sts 0x0573, r25
EE_Parameter.Servo3 = 125;
4848: 9d e7 ldi r25, 0x7D ; 125
484a: 90 93 76 05 sts 0x0576, r25
EE_Parameter.Servo4 = 125;
484e: 90 93 77 05 sts 0x0577, r25
EE_Parameter.Servo5 = 125;
4852: 90 93 78 05 sts 0x0578, r25
EE_Parameter.ServoRollControl = 128; // Wert : 0-247 // Stellung des Servos
4856: 20 93 6f 05 sts 0x056F, r18
EE_Parameter.ServoRollComp = 85; // Wert : 0-247 // Einfluss Gyro/Servo
485a: 75 e5 ldi r23, 0x55 ; 85
485c: 70 93 70 05 sts 0x0570, r23
EE_Parameter.ServoRollMin = 70; // Wert : 0-247 // Anschlag
4860: 26 e4 ldi r18, 0x46 ; 70
4862: 20 93 71 05 sts 0x0571, r18
EE_Parameter.ServoRollMax = 220; // Wert : 0-247 // Anschlag
4866: 3c ed ldi r19, 0xDC ; 220
4868: 30 93 72 05 sts 0x0572, r19
EE_Parameter.ServoManualControlSpeed = 60;
486c: 3c e3 ldi r19, 0x3C ; 60
486e: 30 93 74 05 sts 0x0574, r19
EE_Parameter.CamOrientation = 0; // Wert : 0-24 -> 0-360 -> 15° steps
4872: 10 92 75 05 sts 0x0575, r1
 
EE_Parameter.J16Bitmask = 0xAA;
4876: 3a ea ldi r19, 0xAA ; 170
4878: 30 93 88 05 sts 0x0588, r19
EE_Parameter.J17Bitmask = 0xCC;
487c: 4c ec ldi r20, 0xCC ; 204
487e: 40 93 8a 05 sts 0x058A, r20
EE_Parameter.WARN_J16_Bitmask = 0x00;
4882: 10 92 8c 05 sts 0x058C, r1
EE_Parameter.WARN_J17_Bitmask = 0xAA;
4886: 30 93 8d 05 sts 0x058D, r19
EE_Parameter.J16Timing = 40;
488a: 48 e2 ldi r20, 0x28 ; 40
488c: 40 93 89 05 sts 0x0589, r20
EE_Parameter.J17Timing = 40;
4890: 40 93 8b 05 sts 0x058B, r20
EE_Parameter.AutoPhotoDistance = 0; // Photo release in meter
4894: 10 92 8e 05 sts 0x058E, r1
EE_Parameter.AutoPhotoAtitudes = 0; // Photo release in meter
4898: 10 92 b4 05 sts 0x05B4, r1
EE_Parameter.SingleWpSpeed = 50; // Speed when flying the single points
489c: 80 93 b5 05 sts 0x05B5, r24
 
EE_Parameter.LoopGasLimit = 50;
48a0: 80 93 79 05 sts 0x0579, r24
EE_Parameter.LoopThreshold = 90; // Wert: 0-247 Schwelle für Stickausschlag
48a4: 3a e5 ldi r19, 0x5A ; 90
48a6: 30 93 7a 05 sts 0x057A, r19
EE_Parameter.LoopHysterese = 50;
48aa: 80 93 7b 05 sts 0x057B, r24
 
EE_Parameter.NaviGpsModeChannel = 6; // Kanal 6
48ae: 66 e0 ldi r22, 0x06 ; 6
48b0: 60 93 8f 05 sts 0x058F, r22
EE_Parameter.NaviGpsGain = 100;
48b4: e4 e6 ldi r30, 0x64 ; 100
48b6: e0 93 90 05 sts 0x0590, r30
EE_Parameter.NaviGpsP = 100;
48ba: e0 93 91 05 sts 0x0591, r30
EE_Parameter.NaviGpsI = 90;
48be: 30 93 92 05 sts 0x0592, r19
EE_Parameter.NaviGpsD = 120;
48c2: e8 e7 ldi r30, 0x78 ; 120
48c4: e0 93 93 05 sts 0x0593, r30
EE_Parameter.NaviGpsA = 40;
48c8: 40 93 97 05 sts 0x0597, r20
EE_Parameter.NaviGpsPLimit = 75;
48cc: 4b e4 ldi r20, 0x4B ; 75
48ce: 40 93 94 05 sts 0x0594, r20
EE_Parameter.NaviGpsILimit = 85;
48d2: 70 93 95 05 sts 0x0595, r23
EE_Parameter.NaviGpsDLimit = 75;
48d6: 40 93 96 05 sts 0x0596, r20
EE_Parameter.NaviGpsMinSat = 6;
48da: 60 93 98 05 sts 0x0598, r22
EE_Parameter.NaviStickThreshold = 8;
48de: 48 e0 ldi r20, 0x08 ; 8
48e0: 40 93 99 05 sts 0x0599, r20
EE_Parameter.NaviWindCorrection = 50;
48e4: 80 93 9a 05 sts 0x059A, r24
EE_Parameter.NaviAccCompensation = 42;
48e8: 8a e2 ldi r24, 0x2A ; 42
48ea: 80 93 9b 05 sts 0x059B, r24
EE_Parameter.NaviMaxFlyingRange = 0;
48ee: 10 92 9c 05 sts 0x059C, r1
EE_Parameter.NaviDescendRange = 0;
48f2: 10 92 9f 05 sts 0x059F, r1
EE_Parameter.NaviAngleLimitation = 140;
48f6: 8c e8 ldi r24, 0x8C ; 140
48f8: 80 93 9d 05 sts 0x059D, r24
EE_Parameter.NaviPH_LoginTime = 2;
48fc: 50 93 9e 05 sts 0x059E, r21
EE_Parameter.OrientationAngle = 0;
4900: 10 92 a1 05 sts 0x05A1, r1
EE_Parameter.CareFreeChannel = 0;
4904: 10 92 a2 05 sts 0x05A2, r1
EE_Parameter.NotGas = 65; // Wert : 0-247 // Gaswert bei Empangsverlust (ggf. in Prozent)
4908: 41 e4 ldi r20, 0x41 ; 65
490a: 40 93 63 05 sts 0x0563, r20
EE_Parameter.NotGasZeit = 90; // Wert : 0-247 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen
490e: 30 93 64 05 sts 0x0564, r19
EE_Parameter.MotorSmooth = 0;
4912: 10 92 a4 05 sts 0x05A4, r1
EE_Parameter.ComingHomeAltitude = 0; // 0 = don't change
4916: 10 92 a5 05 sts 0x05A5, r1
EE_Parameter.MaxAltitude = 150; // 0 = off
491a: 36 e9 ldi r19, 0x96 ; 150
491c: 30 93 a7 05 sts 0x05A7, r19
EE_Parameter.AchsKopplung1 = 125;
4920: 90 93 7c 05 sts 0x057C, r25
EE_Parameter.AchsKopplung2 = 52;
4924: 94 e3 ldi r25, 0x34 ; 52
4926: 90 93 7d 05 sts 0x057D, r25
EE_Parameter.FailsafeChannel = 0;
492a: 10 92 a8 05 sts 0x05A8, r1
EE_Parameter.ServoFilterNick = 0;
492e: 10 92 a9 05 sts 0x05A9, r1
EE_Parameter.ServoFilterRoll = 0;
4932: 10 92 aa 05 sts 0x05AA, r1
EE_Parameter.Servo3OnValue = 140;
4936: 80 93 ab 05 sts 0x05AB, r24
EE_Parameter.Servo3OffValue = 70;
493a: 20 93 ac 05 sts 0x05AC, r18
EE_Parameter.Servo4OnValue = 140;
493e: 80 93 ad 05 sts 0x05AD, r24
EE_Parameter.Servo4OffValue = 70;
4942: 20 93 ae 05 sts 0x05AE, r18
EE_Parameter.CompassOffset = 0;
4946: 10 92 b1 05 sts 0x05B1, r1
EE_Parameter.UnterspannungsWarnung = 32; // Wert : 0-247 ( Automatische Zellenerkennung bei < 50)
494a: 80 e2 ldi r24, 0x20 ; 32
494c: 80 93 62 05 sts 0x0562, r24
EE_Parameter.ComingHomeVoltage = 31;
4950: 8f e1 ldi r24, 0x1F ; 31
4952: 80 93 b3 05 sts 0x05B3, r24
EE_Parameter.AutoLandingVoltage = 30;
4956: 8e e1 ldi r24, 0x1E ; 30
4958: 80 93 b2 05 sts 0x05B2, r24
495c: 08 95 ret
 
0000495e <ParamSet_DefaultSet1>:
/***************************************************/
/* Default Values for parameter set 1 */
/***************************************************/
void ParamSet_DefaultSet1(void) // normal
{
CommonDefaults();
495e: e6 de rcall .-564 ; 0x472c <CommonDefaults>
EE_Parameter.Stick_P = 10; // Wert : 1-20
4960: 8a e0 ldi r24, 0x0A ; 10
4962: 80 93 55 05 sts 0x0555, r24
EE_Parameter.Stick_D = 16; // Wert : 0-20
4966: 80 e1 ldi r24, 0x10 ; 16
4968: 80 93 56 05 sts 0x0556, r24
EE_Parameter.StickGier_P = 6; // Wert : 1-20
496c: 86 e0 ldi r24, 0x06 ; 6
496e: 80 93 57 05 sts 0x0557, r24
EE_Parameter.Gyro_P = 90; // Wert : 0-247
4972: 2a e5 ldi r18, 0x5A ; 90
4974: 20 93 5c 05 sts 0x055C, r18
EE_Parameter.Gyro_I = 120; // Wert : 0-247
4978: 98 e7 ldi r25, 0x78 ; 120
497a: 90 93 5d 05 sts 0x055D, r25
EE_Parameter.Gyro_Gier_P = 90; // Wert : 0-247
497e: 20 93 5f 05 sts 0x055F, r18
EE_Parameter.Gyro_Gier_I = 120; // Wert : 0-247
4982: 90 93 60 05 sts 0x0560, r25
EE_Parameter.Gyro_Stability = 6; // Wert : 1-8
4986: 80 93 61 05 sts 0x0561, r24
EE_Parameter.I_Faktor = 32;
498a: 80 e2 ldi r24, 0x20 ; 32
498c: 80 93 66 05 sts 0x0566, r24
EE_Parameter.CouplingYawCorrection = 60;
4990: 8c e3 ldi r24, 0x3C ; 60
4992: 80 93 7e 05 sts 0x057E, r24
EE_Parameter.DynamicStability = 75;
4996: 8b e4 ldi r24, 0x4B ; 75
4998: 80 93 83 05 sts 0x0583, r24
memcpy(EE_Parameter.Name, "Fast",4);
499c: 86 e4 ldi r24, 0x46 ; 70
499e: 91 e6 ldi r25, 0x61 ; 97
49a0: a3 e7 ldi r26, 0x73 ; 115
49a2: b4 e7 ldi r27, 0x74 ; 116
49a4: 80 93 ba 05 sts 0x05BA, r24
49a8: 90 93 bb 05 sts 0x05BB, r25
49ac: a0 93 bc 05 sts 0x05BC, r26
49b0: b0 93 bd 05 sts 0x05BD, r27
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1);
49b4: 68 e8 ldi r22, 0x88 ; 136
49b6: 70 e0 ldi r23, 0x00 ; 0
49b8: 8e e3 ldi r24, 0x3E ; 62
49ba: 95 e0 ldi r25, 0x05 ; 5
49bc: 5f de rcall .-834 ; 0x467c <RAM_Checksum>
49be: 80 93 c6 05 sts 0x05C6, r24
49c2: 08 95 ret
 
000049c4 <ParamSet_DefaultSet2>:
/***************************************************/
/* Default Values for parameter set 2 */
/***************************************************/
void ParamSet_DefaultSet2(void) // Agil
{
CommonDefaults();
49c4: b3 de rcall .-666 ; 0x472c <CommonDefaults>
EE_Parameter.Stick_P = 8; // Wert : 1-20
49c6: 88 e0 ldi r24, 0x08 ; 8
49c8: 80 93 55 05 sts 0x0555, r24
EE_Parameter.Stick_D = 16; // Wert : 0-20
49cc: 80 e1 ldi r24, 0x10 ; 16
49ce: 80 93 56 05 sts 0x0556, r24
EE_Parameter.StickGier_P = 6; // Wert : 1-20
49d2: 96 e0 ldi r25, 0x06 ; 6
49d4: 90 93 57 05 sts 0x0557, r25
EE_Parameter.Gyro_P = 100; // Wert : 0-247
49d8: 34 e6 ldi r19, 0x64 ; 100
49da: 30 93 5c 05 sts 0x055C, r19
EE_Parameter.Gyro_I = 120; // Wert : 0-247
49de: 28 e7 ldi r18, 0x78 ; 120
49e0: 20 93 5d 05 sts 0x055D, r18
EE_Parameter.Gyro_Gier_P = 100; // Wert : 0-247
49e4: 30 93 5f 05 sts 0x055F, r19
EE_Parameter.Gyro_Gier_I = 120; // Wert : 0-247
49e8: 20 93 60 05 sts 0x0560, r18
EE_Parameter.Gyro_Stability = 6; // Wert : 1-8
49ec: 90 93 61 05 sts 0x0561, r25
EE_Parameter.I_Faktor = 16;
49f0: 80 93 66 05 sts 0x0566, r24
EE_Parameter.CouplingYawCorrection = 70;
49f4: 86 e4 ldi r24, 0x46 ; 70
49f6: 80 93 7e 05 sts 0x057E, r24
EE_Parameter.DynamicStability = 70;
49fa: 80 93 83 05 sts 0x0583, r24
memcpy(EE_Parameter.Name, "Agile",5);
49fe: 85 e0 ldi r24, 0x05 ; 5
4a00: e5 ec ldi r30, 0xC5 ; 197
4a02: f2 e0 ldi r31, 0x02 ; 2
4a04: aa eb ldi r26, 0xBA ; 186
4a06: b5 e0 ldi r27, 0x05 ; 5
4a08: 01 90 ld r0, Z+
4a0a: 0d 92 st X+, r0
4a0c: 8a 95 dec r24
4a0e: e1 f7 brne .-8 ; 0x4a08 <ParamSet_DefaultSet2+0x44>
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1);
4a10: 68 e8 ldi r22, 0x88 ; 136
4a12: 70 e0 ldi r23, 0x00 ; 0
4a14: 8e e3 ldi r24, 0x3E ; 62
4a16: 95 e0 ldi r25, 0x05 ; 5
4a18: 31 de rcall .-926 ; 0x467c <RAM_Checksum>
4a1a: 80 93 c6 05 sts 0x05C6, r24
4a1e: 08 95 ret
 
00004a20 <ParamSet_DefaultSet3>:
/***************************************************/
/* Default Values for parameter set 3 */
/***************************************************/
void ParamSet_DefaultSet3(void) // Easy
{
CommonDefaults();
4a20: 85 de rcall .-758 ; 0x472c <CommonDefaults>
EE_Parameter.Stick_P = 6; // Wert : 1-20
4a22: 86 e0 ldi r24, 0x06 ; 6
4a24: 80 93 55 05 sts 0x0555, r24
EE_Parameter.Stick_D = 10; // Wert : 0-20
4a28: 9a e0 ldi r25, 0x0A ; 10
4a2a: 90 93 56 05 sts 0x0556, r25
EE_Parameter.StickGier_P = 4; // Wert : 1-20
4a2e: 94 e0 ldi r25, 0x04 ; 4
4a30: 90 93 57 05 sts 0x0557, r25
EE_Parameter.Gyro_P = 100; // Wert : 0-247
4a34: 24 e6 ldi r18, 0x64 ; 100
4a36: 20 93 5c 05 sts 0x055C, r18
EE_Parameter.Gyro_I = 120; // Wert : 0-247
4a3a: 98 e7 ldi r25, 0x78 ; 120
4a3c: 90 93 5d 05 sts 0x055D, r25
EE_Parameter.Gyro_Gier_P = 100; // Wert : 0-247
4a40: 20 93 5f 05 sts 0x055F, r18
EE_Parameter.Gyro_Gier_I = 120; // Wert : 0-247
4a44: 90 93 60 05 sts 0x0560, r25
EE_Parameter.Gyro_Stability = 6; // Wert : 1-8
4a48: 80 93 61 05 sts 0x0561, r24
EE_Parameter.I_Faktor = 16;
4a4c: 80 e1 ldi r24, 0x10 ; 16
4a4e: 80 93 66 05 sts 0x0566, r24
EE_Parameter.CouplingYawCorrection = 70;
4a52: 86 e4 ldi r24, 0x46 ; 70
4a54: 80 93 7e 05 sts 0x057E, r24
EE_Parameter.DynamicStability = 70;
4a58: 80 93 83 05 sts 0x0583, r24
memcpy(EE_Parameter.Name, "Easy", 4);
4a5c: 85 e4 ldi r24, 0x45 ; 69
4a5e: 91 e6 ldi r25, 0x61 ; 97
4a60: a3 e7 ldi r26, 0x73 ; 115
4a62: b9 e7 ldi r27, 0x79 ; 121
4a64: 80 93 ba 05 sts 0x05BA, r24
4a68: 90 93 bb 05 sts 0x05BB, r25
4a6c: a0 93 bc 05 sts 0x05BC, r26
4a70: b0 93 bd 05 sts 0x05BD, r27
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1);
4a74: 68 e8 ldi r22, 0x88 ; 136
4a76: 70 e0 ldi r23, 0x00 ; 0
4a78: 8e e3 ldi r24, 0x3E ; 62
4a7a: 95 e0 ldi r25, 0x05 ; 5
4a7c: ff dd rcall .-1026 ; 0x467c <RAM_Checksum>
4a7e: 80 93 c6 05 sts 0x05C6, r24
4a82: 08 95 ret
 
00004a84 <GetParamByte>:
/***************************************************/
/* Read Parameter from EEPROM as byte */
/***************************************************/
uint8_t GetParamByte(uint16_t param_id)
{
return eeprom_read_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + param_id));
4a84: 0c 94 3e b2 jmp 0x1647c ; 0x1647c <__eerd_byte_m1284>
}
4a88: 08 95 ret
 
00004a8a <SetParamByte>:
/***************************************************/
/* Write Parameter to EEPROM as byte */
/***************************************************/
void SetParamByte(uint16_t param_id, uint8_t value)
{
eeprom_write_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + param_id), value);
4a8a: 0c 94 54 b2 jmp 0x164a8 ; 0x164a8 <__eewr_byte_m1284>
4a8e: 08 95 ret
 
00004a90 <GetParamWord>:
/***************************************************/
/* Read Parameter from EEPROM as word */
/***************************************************/
uint16_t GetParamWord(uint16_t param_id)
{
return eeprom_read_word((uint16_t *)(EEPROM_ADR_PARAM_BEGIN + param_id));
4a90: 0c 94 46 b2 jmp 0x1648c ; 0x1648c <__eerd_word_m1284>
}
4a94: 08 95 ret
 
00004a96 <SetParamWord>:
/***************************************************/
/* Write Parameter to EEPROM as word */
/***************************************************/
void SetParamWord(uint16_t param_id, uint16_t value)
{
eeprom_write_word((uint16_t*)(EEPROM_ADR_PARAM_BEGIN + param_id), value);
4a96: 0c 94 62 b2 jmp 0x164c4 ; 0x164c4 <__eewr_word_m1284>
4a9a: 08 95 ret
 
00004a9c <ParamSet_ReadFromEEProm>:
/***************************************************/
/* Read Parameter Set from EEPROM */
/***************************************************/
// number [1..5]
uint8_t ParamSet_ReadFromEEProm(uint8_t setnumber)
{
4a9c: ff 92 push r15
4a9e: 0f 93 push r16
4aa0: 1f 93 push r17
4aa2: cf 93 push r28
4aa4: df 93 push r29
uint8_t crc;
uint16_t eeaddr;
 
// range the setnumber
if((1 > setnumber) || (setnumber > 5)) setnumber = 3;
4aa6: 9f ef ldi r25, 0xFF ; 255
4aa8: 98 0f add r25, r24
4aaa: 95 30 cpi r25, 0x05 ; 5
4aac: 08 f0 brcs .+2 ; 0x4ab0 <ParamSet_ReadFromEEProm+0x14>
4aae: 83 e0 ldi r24, 0x03 ; 3
 
// calculate eeprom addr
eeaddr = EEPROM_ADR_PARAMSET + PARAMSET_STRUCT_LEN * (setnumber - 1);
4ab0: 90 e0 ldi r25, 0x00 ; 0
4ab2: 01 97 sbiw r24, 0x01 ; 1
4ab4: 29 e8 ldi r18, 0x89 ; 137
4ab6: 28 9f mul r18, r24
4ab8: e0 01 movw r28, r0
4aba: 29 9f mul r18, r25
4abc: d0 0d add r29, r0
4abe: 11 24 eor r1, r1
4ac0: 8e 01 movw r16, r28
4ac2: 0c 59 subi r16, 0x9C ; 156
4ac4: 1f 4f sbci r17, 0xFF ; 255
 
// calculate checksum from eeprom
crc = EEProm_Checksum(eeaddr, PARAMSET_STRUCT_LEN - 1);
4ac6: 68 e8 ldi r22, 0x88 ; 136
4ac8: 70 e0 ldi r23, 0x00 ; 0
4aca: c8 01 movw r24, r16
4acc: e6 dd rcall .-1076 ; 0x469a <EEProm_Checksum>
4ace: f8 2e mov r15, r24
 
// check crc
if(crc != eeprom_read_byte((uint8_t*)(eeaddr + PARAMSET_STRUCT_LEN - 1))) return 0;
4ad0: ce 01 movw r24, r28
4ad2: 84 51 subi r24, 0x14 ; 20
4ad4: 9f 4f sbci r25, 0xFF ; 255
4ad6: 0e 94 3e b2 call 0x1647c ; 0x1647c <__eerd_byte_m1284>
4ada: 8f 11 cpse r24, r15
4adc: 12 c0 rjmp .+36 ; 0x4b02 <ParamSet_ReadFromEEProm+0x66>
 
// check revision
if(eeprom_read_byte((uint8_t*)(eeaddr)) != EEPARAM_REVISION) return 0;
4ade: c8 01 movw r24, r16
4ae0: 0e 94 3e b2 call 0x1647c ; 0x1647c <__eerd_byte_m1284>
4ae4: 87 36 cpi r24, 0x67 ; 103
4ae6: 79 f4 brne .+30 ; 0x4b06 <ParamSet_ReadFromEEProm+0x6a>
 
// read paramset from eeprom
eeprom_read_block((void *) &EE_Parameter, (void*)(EEPROM_ADR_PARAMSET + PARAMSET_STRUCT_LEN * (setnumber - 1)), PARAMSET_STRUCT_LEN);
4ae8: 49 e8 ldi r20, 0x89 ; 137
4aea: 50 e0 ldi r21, 0x00 ; 0
4aec: b8 01 movw r22, r16
4aee: 8e e3 ldi r24, 0x3E ; 62
4af0: 95 e0 ldi r25, 0x05 ; 5
4af2: 0e 94 2e b2 call 0x1645c ; 0x1645c <__eerd_block_m1284>
LED_Init();
4af6: 0e 94 80 85 call 0x10b00 ; 0x10b00 <LED_Init>
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
LIBFC_HoTT_Clear();
4afa: 0e 94 3a 15 call 0x2a74 ; 0x2a74 <LIBFC_HoTT_Clear>
#endif
return 1;
4afe: 81 e0 ldi r24, 0x01 ; 1
4b00: 03 c0 rjmp .+6 ; 0x4b08 <ParamSet_ReadFromEEProm+0x6c>
 
// calculate checksum from eeprom
crc = EEProm_Checksum(eeaddr, PARAMSET_STRUCT_LEN - 1);
 
// check crc
if(crc != eeprom_read_byte((uint8_t*)(eeaddr + PARAMSET_STRUCT_LEN - 1))) return 0;
4b02: 80 e0 ldi r24, 0x00 ; 0
4b04: 01 c0 rjmp .+2 ; 0x4b08 <ParamSet_ReadFromEEProm+0x6c>
 
// check revision
if(eeprom_read_byte((uint8_t*)(eeaddr)) != EEPARAM_REVISION) return 0;
4b06: 80 e0 ldi r24, 0x00 ; 0
LED_Init();
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
LIBFC_HoTT_Clear();
#endif
return 1;
}
4b08: df 91 pop r29
4b0a: cf 91 pop r28
4b0c: 1f 91 pop r17
4b0e: 0f 91 pop r16
4b10: ff 90 pop r15
4b12: 08 95 ret
 
00004b14 <MixerTable_ReadFromEEProm>:
 
/***************************************************/
/* Read MixerTable from EEPROM */
/***************************************************/
uint8_t MixerTable_ReadFromEEProm(void)
{
4b14: cf 93 push r28
uint8_t crc;
 
// calculate checksum in eeprom
crc = EEProm_Checksum(EEPROM_ADR_MIXERTABLE, sizeof(Mixer) - 1);
4b16: 6d e4 ldi r22, 0x4D ; 77
4b18: 70 e0 ldi r23, 0x00 ; 0
4b1a: 88 ee ldi r24, 0xE8 ; 232
4b1c: 93 e0 ldi r25, 0x03 ; 3
4b1e: bd dd rcall .-1158 ; 0x469a <EEProm_Checksum>
4b20: c8 2f mov r28, r24
 
// check crc
if( crc != eeprom_read_byte((uint8_t*)(EEPROM_ADR_MIXERTABLE + sizeof(Mixer) - 1)) ) return 0;
4b22: 85 e3 ldi r24, 0x35 ; 53
4b24: 94 e0 ldi r25, 0x04 ; 4
4b26: 0e 94 3e b2 call 0x1647c ; 0x1647c <__eerd_byte_m1284>
4b2a: 8c 13 cpse r24, r28
4b2c: 10 c0 rjmp .+32 ; 0x4b4e <MixerTable_ReadFromEEProm+0x3a>
 
// check revision
if(eeprom_read_byte((uint8_t*)(EEPROM_ADR_MIXERTABLE)) != EEMIXER_REVISION) return 0;
4b2e: 88 ee ldi r24, 0xE8 ; 232
4b30: 93 e0 ldi r25, 0x03 ; 3
4b32: 0e 94 3e b2 call 0x1647c ; 0x1647c <__eerd_byte_m1284>
4b36: 81 30 cpi r24, 0x01 ; 1
4b38: 61 f4 brne .+24 ; 0x4b52 <MixerTable_ReadFromEEProm+0x3e>
 
// read mixer table
eeprom_read_block((void *) &Mixer, (void*)(EEPROM_ADR_MIXERTABLE), sizeof(Mixer));
4b3a: 4e e4 ldi r20, 0x4E ; 78
4b3c: 50 e0 ldi r21, 0x00 ; 0
4b3e: 68 ee ldi r22, 0xE8 ; 232
4b40: 73 e0 ldi r23, 0x03 ; 3
4b42: 87 ec ldi r24, 0xC7 ; 199
4b44: 95 e0 ldi r25, 0x05 ; 5
4b46: 0e 94 2e b2 call 0x1645c ; 0x1645c <__eerd_block_m1284>
return 1;
4b4a: 81 e0 ldi r24, 0x01 ; 1
4b4c: 03 c0 rjmp .+6 ; 0x4b54 <MixerTable_ReadFromEEProm+0x40>
 
// calculate checksum in eeprom
crc = EEProm_Checksum(EEPROM_ADR_MIXERTABLE, sizeof(Mixer) - 1);
 
// check crc
if( crc != eeprom_read_byte((uint8_t*)(EEPROM_ADR_MIXERTABLE + sizeof(Mixer) - 1)) ) return 0;
4b4e: 80 e0 ldi r24, 0x00 ; 0
4b50: 01 c0 rjmp .+2 ; 0x4b54 <MixerTable_ReadFromEEProm+0x40>
 
// check revision
if(eeprom_read_byte((uint8_t*)(EEPROM_ADR_MIXERTABLE)) != EEMIXER_REVISION) return 0;
4b52: 80 e0 ldi r24, 0x00 ; 0
 
// read mixer table
eeprom_read_block((void *) &Mixer, (void*)(EEPROM_ADR_MIXERTABLE), sizeof(Mixer));
return 1;
}
4b54: cf 91 pop r28
4b56: 08 95 ret
 
00004b58 <MixerTable_WriteToEEProm>:
/***************************************************/
/* Write Mixer Table to EEPROM */
/***************************************************/
uint8_t MixerTable_WriteToEEProm(void)
{
if(Mixer.Revision == EEMIXER_REVISION)
4b58: 80 91 c7 05 lds r24, 0x05C7
4b5c: 81 30 cpi r24, 0x01 ; 1
4b5e: 89 f4 brne .+34 ; 0x4b82 <MixerTable_WriteToEEProm+0x2a>
{
// update crc
Mixer.crc = RAM_Checksum((uint8_t*)(&Mixer), sizeof(Mixer) - 1);
4b60: 6d e4 ldi r22, 0x4D ; 77
4b62: 70 e0 ldi r23, 0x00 ; 0
4b64: 87 ec ldi r24, 0xC7 ; 199
4b66: 95 e0 ldi r25, 0x05 ; 5
4b68: 89 dd rcall .-1262 ; 0x467c <RAM_Checksum>
4b6a: 80 93 14 06 sts 0x0614, r24
 
// write to eeprom
eeprom_write_block((void *) &Mixer, (void*)(EEPROM_ADR_MIXERTABLE), sizeof(Mixer));
4b6e: 4e e4 ldi r20, 0x4E ; 78
4b70: 50 e0 ldi r21, 0x00 ; 0
4b72: 68 ee ldi r22, 0xE8 ; 232
4b74: 73 e0 ldi r23, 0x03 ; 3
4b76: 87 ec ldi r24, 0xC7 ; 199
4b78: 95 e0 ldi r25, 0x05 ; 5
4b7a: 0e 94 4b b2 call 0x16496 ; 0x16496 <__eewr_block_m1284>
return 1;
4b7e: 81 e0 ldi r24, 0x01 ; 1
4b80: 08 95 ret
}
else return 0;
4b82: 80 e0 ldi r24, 0x00 ; 0
}
4b84: 08 95 ret
 
00004b86 <MixerTable_Default>:
/***************************************************/
void MixerTable_Default(void) // Quadro
{
uint8_t i;
 
Mixer.Revision = EEMIXER_REVISION;
4b86: 81 e0 ldi r24, 0x01 ; 1
4b88: 80 93 c7 05 sts 0x05C7, r24
4b8c: e7 ed ldi r30, 0xD7 ; 215
4b8e: f5 e0 ldi r31, 0x05 ; 5
4b90: 87 e1 ldi r24, 0x17 ; 23
4b92: 96 e0 ldi r25, 0x06 ; 6
4b94: df 01 movw r26, r30
4b96: 13 97 sbiw r26, 0x03 ; 3
// clear mixer table
for(i = 0; i < 16; i++)
{
Mixer.Motor[i][MIX_GAS] = 0;
4b98: 1c 92 st X, r1
4b9a: 11 96 adiw r26, 0x01 ; 1
Mixer.Motor[i][MIX_NICK] = 0;
4b9c: 1c 92 st X, r1
4b9e: 11 96 adiw r26, 0x01 ; 1
Mixer.Motor[i][MIX_ROLL] = 0;
4ba0: 1c 92 st X, r1
Mixer.Motor[i][MIX_YAW] = 0;
4ba2: 10 82 st Z, r1
4ba4: 34 96 adiw r30, 0x04 ; 4
{
uint8_t i;
 
Mixer.Revision = EEMIXER_REVISION;
// clear mixer table
for(i = 0; i < 16; i++)
4ba6: e8 17 cp r30, r24
4ba8: f9 07 cpc r31, r25
4baa: a1 f7 brne .-24 ; 0x4b94 <MixerTable_Default+0xe>
Mixer.Motor[i][MIX_NICK] = 0;
Mixer.Motor[i][MIX_ROLL] = 0;
Mixer.Motor[i][MIX_YAW] = 0;
}
// default = Quadro
Mixer.Motor[0][MIX_GAS] = 64; Mixer.Motor[0][MIX_NICK] = +64; Mixer.Motor[0][MIX_ROLL] = 0; Mixer.Motor[0][MIX_YAW] = +64;
4bac: 80 e4 ldi r24, 0x40 ; 64
4bae: 80 93 d4 05 sts 0x05D4, r24
4bb2: 80 93 d5 05 sts 0x05D5, r24
4bb6: 10 92 d6 05 sts 0x05D6, r1
4bba: 80 93 d7 05 sts 0x05D7, r24
Mixer.Motor[1][MIX_GAS] = 64; Mixer.Motor[1][MIX_NICK] = -64; Mixer.Motor[1][MIX_ROLL] = 0; Mixer.Motor[1][MIX_YAW] = +64;
4bbe: 80 93 d8 05 sts 0x05D8, r24
4bc2: 90 ec ldi r25, 0xC0 ; 192
4bc4: 90 93 d9 05 sts 0x05D9, r25
4bc8: 10 92 da 05 sts 0x05DA, r1
4bcc: 80 93 db 05 sts 0x05DB, r24
Mixer.Motor[2][MIX_GAS] = 64; Mixer.Motor[2][MIX_NICK] = 0; Mixer.Motor[2][MIX_ROLL] = -64; Mixer.Motor[2][MIX_YAW] = -64;
4bd0: 80 93 dc 05 sts 0x05DC, r24
4bd4: 10 92 dd 05 sts 0x05DD, r1
4bd8: 90 93 de 05 sts 0x05DE, r25
4bdc: 90 93 df 05 sts 0x05DF, r25
Mixer.Motor[3][MIX_GAS] = 64; Mixer.Motor[3][MIX_NICK] = 0; Mixer.Motor[3][MIX_ROLL] = +64; Mixer.Motor[3][MIX_YAW] = -64;
4be0: 80 93 e0 05 sts 0x05E0, r24
4be4: 10 92 e1 05 sts 0x05E1, r1
4be8: 80 93 e2 05 sts 0x05E2, r24
4bec: 90 93 e3 05 sts 0x05E3, r25
memcpy(Mixer.Name, "Quadro\0\0\0\0\0\0", 12);
4bf0: 8c e0 ldi r24, 0x0C ; 12
4bf2: e8 eb ldi r30, 0xB8 ; 184
4bf4: f2 e0 ldi r31, 0x02 ; 2
4bf6: a8 ec ldi r26, 0xC8 ; 200
4bf8: b5 e0 ldi r27, 0x05 ; 5
4bfa: 01 90 ld r0, Z+
4bfc: 0d 92 st X+, r0
4bfe: 8a 95 dec r24
4c00: e1 f7 brne .-8 ; 0x4bfa <MixerTable_Default+0x74>
Mixer.crc = RAM_Checksum((uint8_t*)(&Mixer), sizeof(Mixer) - 1);
4c02: 6d e4 ldi r22, 0x4D ; 77
4c04: 70 e0 ldi r23, 0x00 ; 0
4c06: 87 ec ldi r24, 0xC7 ; 199
4c08: 95 e0 ldi r25, 0x05 ; 5
4c0a: 38 dd rcall .-1424 ; 0x467c <RAM_Checksum>
4c0c: 80 93 14 06 sts 0x0614, r24
4c10: 08 95 ret
 
00004c12 <GetActiveParamSet>:
/* Get active parameter set */
/***************************************************/
uint8_t GetActiveParamSet(void)
{
uint8_t setnumber;
setnumber = eeprom_read_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + PID_ACTIVE_SET));
4c12: 82 e0 ldi r24, 0x02 ; 2
4c14: 90 e0 ldi r25, 0x00 ; 0
4c16: 0e 94 3e b2 call 0x1647c ; 0x1647c <__eerd_byte_m1284>
if(setnumber > 5)
4c1a: 86 30 cpi r24, 0x06 ; 6
4c1c: 30 f0 brcs .+12 ; 0x4c2a <GetActiveParamSet+0x18>
{
setnumber = 3;
eeprom_write_byte((void*)(EEPROM_ADR_PARAM_BEGIN+PID_ACTIVE_SET), setnumber);
4c1e: 63 e0 ldi r22, 0x03 ; 3
4c20: 82 e0 ldi r24, 0x02 ; 2
4c22: 90 e0 ldi r25, 0x00 ; 0
4c24: 0e 94 54 b2 call 0x164a8 ; 0x164a8 <__eewr_byte_m1284>
{
uint8_t setnumber;
setnumber = eeprom_read_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + PID_ACTIVE_SET));
if(setnumber > 5)
{
setnumber = 3;
4c28: 83 e0 ldi r24, 0x03 ; 3
eeprom_write_byte((void*)(EEPROM_ADR_PARAM_BEGIN+PID_ACTIVE_SET), setnumber);
}
ActiveParamSet = setnumber;
4c2a: 80 93 52 01 sts 0x0152, r24
return(setnumber);
}
4c2e: 08 95 ret
 
00004c30 <SetActiveParamSet>:
 
/***************************************************/
/* Set active parameter set */
/***************************************************/
void SetActiveParamSet(uint8_t setnumber)
{
4c30: 86 30 cpi r24, 0x06 ; 6
4c32: 08 f0 brcs .+2 ; 0x4c36 <SetActiveParamSet+0x6>
4c34: 85 e0 ldi r24, 0x05 ; 5
if(setnumber > 5) setnumber = 5;
if(setnumber < 1) setnumber = 1;
4c36: 81 11 cpse r24, r1
4c38: 01 c0 rjmp .+2 ; 0x4c3c <SetActiveParamSet+0xc>
4c3a: 81 e0 ldi r24, 0x01 ; 1
ActiveParamSet = setnumber;
4c3c: 80 93 52 01 sts 0x0152, r24
eeprom_write_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + PID_ACTIVE_SET), setnumber);
4c40: 68 2f mov r22, r24
4c42: 82 e0 ldi r24, 0x02 ; 2
4c44: 90 e0 ldi r25, 0x00 ; 0
4c46: 0c 94 54 b2 jmp 0x164a8 ; 0x164a8 <__eewr_byte_m1284>
4c4a: 08 95 ret
 
00004c4c <ParamSet_WriteToEEProm>:
/***************************************************/
/* Write Parameter Set to EEPROM */
/***************************************************/
// number [1..5]
uint8_t ParamSet_WriteToEEProm(uint8_t setnumber)
{
4c4c: cf 93 push r28
uint8_t crc;
 
if(EE_Parameter.Revision == EEPARAM_REVISION) // write only the right revision to eeprom
4c4e: 90 91 3e 05 lds r25, 0x053E
4c52: 97 36 cpi r25, 0x67 ; 103
4c54: 09 f0 breq .+2 ; 0x4c58 <ParamSet_WriteToEEProm+0xc>
4c56: 47 c0 rjmp .+142 ; 0x4ce6 <ParamSet_WriteToEEProm+0x9a>
4c58: c8 2f mov r28, r24
4c5a: 86 30 cpi r24, 0x06 ; 6
4c5c: 08 f0 brcs .+2 ; 0x4c60 <ParamSet_WriteToEEProm+0x14>
4c5e: c5 e0 ldi r28, 0x05 ; 5
{
if(setnumber > 5) setnumber = 5;
if(setnumber < 1) return 0;
4c60: cc 23 and r28, r28
4c62: 09 f4 brne .+2 ; 0x4c66 <ParamSet_WriteToEEProm+0x1a>
4c64: 42 c0 rjmp .+132 ; 0x4cea <ParamSet_WriteToEEProm+0x9e>
LIBFC_CheckSettings();
4c66: 0e 94 00 1a call 0x3400 ; 0x3400 <LIBFC_CheckSettings>
if(EE_Parameter.GlobalConfig3 & CFG3_VARIO_FAILSAFE) // check the Setting: Not more than 100% emergency gas
4c6a: 80 91 b9 05 lds r24, 0x05B9
4c6e: 82 ff sbrs r24, 2
4c70: 07 c0 rjmp .+14 ; 0x4c80 <ParamSet_WriteToEEProm+0x34>
{
if(EE_Parameter.NotGas > 99) EE_Parameter.NotGas = 80; // i.e. 80% of Hovergas
4c72: 80 91 63 05 lds r24, 0x0563
4c76: 84 36 cpi r24, 0x64 ; 100
4c78: 18 f0 brcs .+6 ; 0x4c80 <ParamSet_WriteToEEProm+0x34>
4c7a: 80 e5 ldi r24, 0x50 ; 80
4c7c: 80 93 63 05 sts 0x0563, r24
}
// update checksum
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1);
4c80: 68 e8 ldi r22, 0x88 ; 136
4c82: 70 e0 ldi r23, 0x00 ; 0
4c84: 8e e3 ldi r24, 0x3E ; 62
4c86: 95 e0 ldi r25, 0x05 ; 5
4c88: f9 dc rcall .-1550 ; 0x467c <RAM_Checksum>
4c8a: 80 93 c6 05 sts 0x05C6, r24
 
// write paramset to eeprom
eeprom_write_block((void *) &EE_Parameter, (void*)(EEPROM_ADR_PARAMSET + PARAMSET_STRUCT_LEN * (setnumber - 1)), PARAMSET_STRUCT_LEN);
4c8e: 2c 2f mov r18, r28
4c90: 30 e0 ldi r19, 0x00 ; 0
4c92: 21 50 subi r18, 0x01 ; 1
4c94: 31 09 sbc r19, r1
4c96: 89 e8 ldi r24, 0x89 ; 137
4c98: 82 9f mul r24, r18
4c9a: b0 01 movw r22, r0
4c9c: 83 9f mul r24, r19
4c9e: 70 0d add r23, r0
4ca0: 11 24 eor r1, r1
4ca2: 6c 59 subi r22, 0x9C ; 156
4ca4: 7f 4f sbci r23, 0xFF ; 255
4ca6: 49 e8 ldi r20, 0x89 ; 137
4ca8: 50 e0 ldi r21, 0x00 ; 0
4caa: 8e e3 ldi r24, 0x3E ; 62
4cac: 95 e0 ldi r25, 0x05 ; 5
4cae: 0e 94 4b b2 call 0x16496 ; 0x16496 <__eewr_block_m1284>
 
// backup channel settings to separate block in eeprom
eeprom_write_block( (void*)(EE_Parameter.Kanalbelegung), (void*)(EEPROM_ADR_CHANNELS), sizeof(EE_Parameter.Kanalbelegung));
4cb2: 4c e0 ldi r20, 0x0C ; 12
4cb4: 50 e0 ldi r21, 0x00 ; 0
4cb6: 60 e5 ldi r22, 0x50 ; 80
4cb8: 70 e0 ldi r23, 0x00 ; 0
4cba: 8f e3 ldi r24, 0x3F ; 63
4cbc: 95 e0 ldi r25, 0x05 ; 5
4cbe: 0e 94 4b b2 call 0x16496 ; 0x16496 <__eewr_block_m1284>
 
// write crc of channel block to eeprom
crc = RAM_Checksum((uint8_t*)(EE_Parameter.Kanalbelegung), sizeof(EE_Parameter.Kanalbelegung));
4cc2: 6c e0 ldi r22, 0x0C ; 12
4cc4: 70 e0 ldi r23, 0x00 ; 0
4cc6: 8f e3 ldi r24, 0x3F ; 63
4cc8: 95 e0 ldi r25, 0x05 ; 5
4cca: d8 dc rcall .-1616 ; 0x467c <RAM_Checksum>
eeprom_write_byte((uint8_t*)(EEPROM_ADR_CHANNELS + sizeof(EE_Parameter.Kanalbelegung)), crc);
4ccc: 68 2f mov r22, r24
4cce: 8c e5 ldi r24, 0x5C ; 92
4cd0: 90 e0 ldi r25, 0x00 ; 0
4cd2: 0e 94 54 b2 call 0x164a8 ; 0x164a8 <__eewr_byte_m1284>
 
// update active settings number
SetActiveParamSet(setnumber);
4cd6: 8c 2f mov r24, r28
4cd8: ab df rcall .-170 ; 0x4c30 <SetActiveParamSet>
LED_Init();
4cda: 0e 94 80 85 call 0x10b00 ; 0x10b00 <LED_Init>
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
LIBFC_HoTT_Clear();
4cde: 0e 94 3a 15 call 0x2a74 ; 0x2a74 <LIBFC_HoTT_Clear>
#endif
return 1;
4ce2: 81 e0 ldi r24, 0x01 ; 1
4ce4: 03 c0 rjmp .+6 ; 0x4cec <ParamSet_WriteToEEProm+0xa0>
}
// wrong revision
return 0;
4ce6: 80 e0 ldi r24, 0x00 ; 0
4ce8: 01 c0 rjmp .+2 ; 0x4cec <ParamSet_WriteToEEProm+0xa0>
uint8_t crc;
 
if(EE_Parameter.Revision == EEPARAM_REVISION) // write only the right revision to eeprom
{
if(setnumber > 5) setnumber = 5;
if(setnumber < 1) return 0;
4cea: 80 e0 ldi r24, 0x00 ; 0
#endif
return 1;
}
// wrong revision
return 0;
}
4cec: cf 91 pop r28
4cee: 08 95 ret
 
00004cf0 <SetDefaultParameter>:
 
/***************************************************/
/* Set default parameter set */
/***************************************************/
void SetDefaultParameter(uint8_t set, uint8_t restore_channels)
{
4cf0: cf 93 push r28
4cf2: df 93 push r29
4cf4: c8 2f mov r28, r24
4cf6: d6 2f mov r29, r22
 
if(set > 5) set = 5;
4cf8: 86 30 cpi r24, 0x06 ; 6
4cfa: 80 f4 brcc .+32 ; 0x4d1c <SetDefaultParameter+0x2c>
else if(set < 1) set = 1;
4cfc: 88 23 and r24, r24
4cfe: 39 f0 breq .+14 ; 0x4d0e <SetDefaultParameter+0x1e>
 
switch(set)
4d00: 82 30 cpi r24, 0x02 ; 2
4d02: 41 f0 breq .+16 ; 0x4d14 <SetDefaultParameter+0x24>
4d04: 83 30 cpi r24, 0x03 ; 3
4d06: 41 f0 breq .+16 ; 0x4d18 <SetDefaultParameter+0x28>
4d08: 81 30 cpi r24, 0x01 ; 1
4d0a: 49 f4 brne .+18 ; 0x4d1e <SetDefaultParameter+0x2e>
4d0c: 01 c0 rjmp .+2 ; 0x4d10 <SetDefaultParameter+0x20>
/***************************************************/
void SetDefaultParameter(uint8_t set, uint8_t restore_channels)
{
 
if(set > 5) set = 5;
else if(set < 1) set = 1;
4d0e: c1 e0 ldi r28, 0x01 ; 1
 
switch(set)
{
case 1:
ParamSet_DefaultSet1(); // Fill ParamSet Structure to default parameter set 1 (Sport)
4d10: 26 de rcall .-948 ; 0x495e <ParamSet_DefaultSet1>
break;
4d12: 06 c0 rjmp .+12 ; 0x4d20 <SetDefaultParameter+0x30>
case 2:
ParamSet_DefaultSet2(); // Kamera
4d14: 57 de rcall .-850 ; 0x49c4 <ParamSet_DefaultSet2>
break;
4d16: 04 c0 rjmp .+8 ; 0x4d20 <SetDefaultParameter+0x30>
case 3:
ParamSet_DefaultSet3(); // Beginner
4d18: 83 de rcall .-762 ; 0x4a20 <ParamSet_DefaultSet3>
break;
4d1a: 02 c0 rjmp .+4 ; 0x4d20 <SetDefaultParameter+0x30>
/* Set default parameter set */
/***************************************************/
void SetDefaultParameter(uint8_t set, uint8_t restore_channels)
{
 
if(set > 5) set = 5;
4d1c: c5 e0 ldi r28, 0x05 ; 5
break;
case 3:
ParamSet_DefaultSet3(); // Beginner
break;
default:
ParamSet_DefaultSet3(); // Beginner
4d1e: 80 de rcall .-768 ; 0x4a20 <ParamSet_DefaultSet3>
break;
}
if(restore_channels)
4d20: dd 23 and r29, r29
4d22: b9 f0 breq .+46 ; 0x4d52 <SetDefaultParameter+0x62>
{
uint8_t crc;
// 1st check for a valid channel backup in eeprom
crc = EEProm_Checksum(EEPROM_ADR_CHANNELS, sizeof(EE_Parameter.Kanalbelegung));
4d24: 6c e0 ldi r22, 0x0C ; 12
4d26: 70 e0 ldi r23, 0x00 ; 0
4d28: 80 e5 ldi r24, 0x50 ; 80
4d2a: 90 e0 ldi r25, 0x00 ; 0
4d2c: b6 dc rcall .-1684 ; 0x469a <EEProm_Checksum>
4d2e: d8 2f mov r29, r24
if(crc == eeprom_read_byte((uint8_t*)(EEPROM_ADR_CHANNELS + sizeof(EE_Parameter.Kanalbelegung))) )
4d30: 8c e5 ldi r24, 0x5C ; 92
4d32: 90 e0 ldi r25, 0x00 ; 0
4d34: 0e 94 3e b2 call 0x1647c ; 0x1647c <__eerd_byte_m1284>
4d38: 8d 13 cpse r24, r29
4d3a: 09 c0 rjmp .+18 ; 0x4d4e <SetDefaultParameter+0x5e>
{
eeprom_read_block((void *)EE_Parameter.Kanalbelegung, (void*)(EEPROM_ADR_CHANNELS), sizeof(EE_Parameter.Kanalbelegung));
4d3c: 4c e0 ldi r20, 0x0C ; 12
4d3e: 50 e0 ldi r21, 0x00 ; 0
4d40: 60 e5 ldi r22, 0x50 ; 80
4d42: 70 e0 ldi r23, 0x00 ; 0
4d44: 8f e3 ldi r24, 0x3F ; 63
4d46: 95 e0 ldi r25, 0x05 ; 5
4d48: 0e 94 2e b2 call 0x1645c ; 0x1645c <__eerd_block_m1284>
4d4c: 03 c0 rjmp .+6 ; 0x4d54 <SetDefaultParameter+0x64>
}
else ParamSet_DefaultStickMapping();
4d4e: c9 dc rcall .-1646 ; 0x46e2 <ParamSet_DefaultStickMapping>
4d50: 01 c0 rjmp .+2 ; 0x4d54 <SetDefaultParameter+0x64>
}
else ParamSet_DefaultStickMapping();
4d52: c7 dc rcall .-1650 ; 0x46e2 <ParamSet_DefaultStickMapping>
ParamSet_WriteToEEProm(set);
4d54: 8c 2f mov r24, r28
4d56: 7a df rcall .-268 ; 0x4c4c <ParamSet_WriteToEEProm>
}
4d58: df 91 pop r29
4d5a: cf 91 pop r28
4d5c: 08 95 ret
 
00004d5e <ParamSet_Init>:
 
/***************************************************/
/* Initialize EEPROM Parameter Sets */
/***************************************************/
void ParamSet_Init(void)
{
4d5e: 8f 92 push r8
4d60: 9f 92 push r9
4d62: af 92 push r10
4d64: bf 92 push r11
4d66: cf 92 push r12
4d68: df 92 push r13
4d6a: ef 92 push r14
4d6c: ff 92 push r15
4d6e: 0f 93 push r16
4d70: 1f 93 push r17
4d72: cf 93 push r28
4d74: df 93 push r29
/***************************************************/
/* Read Parameter from EEPROM as byte */
/***************************************************/
uint8_t GetParamByte(uint16_t param_id)
{
return eeprom_read_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + param_id));
4d76: 81 e1 ldi r24, 0x11 ; 17
4d78: 90 e0 ldi r25, 0x00 ; 0
4d7a: 0e 94 3e b2 call 0x1647c ; 0x1647c <__eerd_byte_m1284>
/***************************************************/
void ParamSet_Init(void)
{
uint8_t channel_backup = 0, bad_params = 0, ee_default = 0,i;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(PlatinenVersion != GetParamByte(PID_HARDWARE_VERSION))
4d7e: 90 91 54 01 lds r25, 0x0154
4d82: 98 17 cp r25, r24
4d84: 71 f1 breq .+92 ; 0x4de2 <ParamSet_Init+0x84>
{
if(PlatinenVersion == 22 && GetParamByte(PID_HARDWARE_VERSION) == 21 && !(PIND & 0x10)) SetParamByte(PID_EE_REVISION,0); // reset the Settings if the Version changed to V2.2
4d86: 96 31 cpi r25, 0x16 ; 22
4d88: 49 f4 brne .+18 ; 0x4d9c <ParamSet_Init+0x3e>
4d8a: 85 31 cpi r24, 0x15 ; 21
4d8c: 39 f4 brne .+14 ; 0x4d9c <ParamSet_Init+0x3e>
4d8e: 4c 99 sbic 0x09, 4 ; 9
4d90: 05 c0 rjmp .+10 ; 0x4d9c <ParamSet_Init+0x3e>
/***************************************************/
/* Write Parameter to EEPROM as byte */
/***************************************************/
void SetParamByte(uint16_t param_id, uint8_t value)
{
eeprom_write_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + param_id), value);
4d92: 60 e0 ldi r22, 0x00 ; 0
4d94: 81 e0 ldi r24, 0x01 ; 1
4d96: 90 e0 ldi r25, 0x00 ; 0
4d98: 0e 94 54 b2 call 0x164a8 ; 0x164a8 <__eewr_byte_m1284>
4d9c: 60 91 54 01 lds r22, 0x0154
4da0: 81 e1 ldi r24, 0x11 ; 17
4da2: 90 e0 ldi r25, 0x00 ; 0
4da4: 0e 94 54 b2 call 0x164a8 ; 0x164a8 <__eewr_byte_m1284>
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(PlatinenVersion != GetParamByte(PID_HARDWARE_VERSION))
{
if(PlatinenVersion == 22 && GetParamByte(PID_HARDWARE_VERSION) == 21 && !(PIND & 0x10)) SetParamByte(PID_EE_REVISION,0); // reset the Settings if the Version changed to V2.2
SetParamByte(PID_HARDWARE_VERSION,PlatinenVersion); // Remember the Version number
wdt_enable(WDTO_15MS); // Reset-Commando
4da8: 28 e0 ldi r18, 0x08 ; 8
4daa: 88 e1 ldi r24, 0x18 ; 24
4dac: 90 e0 ldi r25, 0x00 ; 0
4dae: 0f b6 in r0, 0x3f ; 63
4db0: f8 94 cli
4db2: a8 95 wdr
4db4: 80 93 60 00 sts 0x0060, r24
4db8: 0f be out 0x3f, r0 ; 63
4dba: 20 93 60 00 sts 0x0060, r18
printf("\n\r--> Hardware Version Byte Changed <--");
4dbe: 89 eb ldi r24, 0xB9 ; 185
4dc0: 92 e0 ldi r25, 0x02 ; 2
4dc2: 9f 93 push r25
4dc4: 8f 93 push r24
4dc6: 87 eb ldi r24, 0xB7 ; 183
4dc8: 9c ea ldi r25, 0xAC ; 172
4dca: 9f 93 push r25
4dcc: 8f 93 push r24
4dce: e0 91 78 06 lds r30, 0x0678
4dd2: f0 91 79 06 lds r31, 0x0679
4dd6: 09 95 icall
4dd8: 0f 90 pop r0
4dda: 0f 90 pop r0
4ddc: 0f 90 pop r0
4dde: 0f 90 pop r0
4de0: ff cf rjmp .-2 ; 0x4de0 <ParamSet_Init+0x82>
/***************************************************/
/* Read Parameter from EEPROM as byte */
/***************************************************/
uint8_t GetParamByte(uint16_t param_id)
{
return eeprom_read_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + param_id));
4de2: 81 e0 ldi r24, 0x01 ; 1
4de4: 90 e0 ldi r25, 0x00 ; 0
4de6: 0e 94 3e b2 call 0x1647c ; 0x1647c <__eerd_byte_m1284>
wdt_enable(WDTO_15MS); // Reset-Commando
printf("\n\r--> Hardware Version Byte Changed <--");
while(1);
}
#endif
if((EEPARAM_REVISION) != GetParamByte(PID_EE_REVISION))
4dea: ff 24 eor r15, r15
4dec: f3 94 inc r15
4dee: 87 36 cpi r24, 0x67 ; 103
4df0: 09 f4 brne .+2 ; 0x4df4 <ParamSet_Init+0x96>
4df2: f1 2c mov r15, r1
{
ee_default = 1; // software update or forced by mktool
}
// 1st check for a valid channel backup in eeprom
i = EEProm_Checksum(EEPROM_ADR_CHANNELS, sizeof(EE_Parameter.Kanalbelegung));
4df4: 6c e0 ldi r22, 0x0C ; 12
4df6: 70 e0 ldi r23, 0x00 ; 0
4df8: 80 e5 ldi r24, 0x50 ; 80
4dfa: 90 e0 ldi r25, 0x00 ; 0
4dfc: 4e dc rcall .-1892 ; 0x469a <EEProm_Checksum>
4dfe: b8 2e mov r11, r24
if(i == eeprom_read_byte((uint8_t*)(EEPROM_ADR_CHANNELS + sizeof(EE_Parameter.Kanalbelegung)))) channel_backup = 1;
4e00: 8c e5 ldi r24, 0x5C ; 92
4e02: 90 e0 ldi r25, 0x00 ; 0
4e04: 0e 94 3e b2 call 0x1647c ; 0x1647c <__eerd_byte_m1284>
4e08: c8 2e mov r12, r24
4e0a: c1 e0 ldi r28, 0x01 ; 1
4e0c: d0 e0 ldi r29, 0x00 ; 0
/***************************************************/
/* Initialize EEPROM Parameter Sets */
/***************************************************/
void ParamSet_Init(void)
{
uint8_t channel_backup = 0, bad_params = 0, ee_default = 0,i;
4e0e: d1 2c mov r13, r1
for (i = 1;i < 6; i++)
{
if(ee_default || !ParamSet_ReadFromEEProm(i)) // could not read paramset from eeprom
{
bad_params = 1;
printf("\n\rGenerating default Parameter Set %d",i);
4e10: 0f 2e mov r0, r31
4e12: f3 e9 ldi r31, 0x93 ; 147
4e14: 8f 2e mov r8, r31
4e16: f2 e0 ldi r31, 0x02 ; 2
4e18: 9f 2e mov r9, r31
4e1a: f0 2d mov r31, r0
4e1c: 07 eb ldi r16, 0xB7 ; 183
4e1e: 1c ea ldi r17, 0xAC ; 172
// check all 5 parameter settings
for (i = 1;i < 6; i++)
{
if(ee_default || !ParamSet_ReadFromEEProm(i)) // could not read paramset from eeprom
{
bad_params = 1;
4e20: aa 24 eor r10, r10
4e22: a3 94 inc r10
4e24: ec 2e mov r14, r28
// parameter check
 
// check all 5 parameter settings
for (i = 1;i < 6; i++)
{
if(ee_default || !ParamSet_ReadFromEEProm(i)) // could not read paramset from eeprom
4e26: f1 10 cpse r15, r1
4e28: 04 c0 rjmp .+8 ; 0x4e32 <ParamSet_Init+0xd4>
4e2a: 8c 2f mov r24, r28
4e2c: 37 de rcall .-914 ; 0x4a9c <ParamSet_ReadFromEEProm>
4e2e: 81 11 cpse r24, r1
4e30: 2c c0 rjmp .+88 ; 0x4e8a <ParamSet_Init+0x12c>
{
bad_params = 1;
printf("\n\rGenerating default Parameter Set %d",i);
4e32: df 93 push r29
4e34: cf 93 push r28
4e36: 9f 92 push r9
4e38: 8f 92 push r8
4e3a: 1f 93 push r17
4e3c: 0f 93 push r16
4e3e: e0 91 78 06 lds r30, 0x0678
4e42: f0 91 79 06 lds r31, 0x0679
4e46: 09 95 icall
switch(i)
4e48: 0f 90 pop r0
4e4a: 0f 90 pop r0
4e4c: 0f 90 pop r0
4e4e: 0f 90 pop r0
4e50: 0f 90 pop r0
4e52: 0f 90 pop r0
4e54: 81 e0 ldi r24, 0x01 ; 1
4e56: e8 16 cp r14, r24
4e58: 21 f0 breq .+8 ; 0x4e62 <ParamSet_Init+0x104>
4e5a: 92 e0 ldi r25, 0x02 ; 2
4e5c: e9 16 cp r14, r25
4e5e: 19 f0 breq .+6 ; 0x4e66 <ParamSet_Init+0x108>
4e60: 04 c0 rjmp .+8 ; 0x4e6a <ParamSet_Init+0x10c>
{
case 1:
ParamSet_DefaultSet1(); // Fill ParamSet Structure to default parameter set 1 (Sport)
4e62: 7d dd rcall .-1286 ; 0x495e <ParamSet_DefaultSet1>
break;
4e64: 03 c0 rjmp .+6 ; 0x4e6c <ParamSet_Init+0x10e>
case 2:
ParamSet_DefaultSet2(); // Normal
4e66: ae dd rcall .-1188 ; 0x49c4 <ParamSet_DefaultSet2>
break;
4e68: 01 c0 rjmp .+2 ; 0x4e6c <ParamSet_Init+0x10e>
default:
ParamSet_DefaultSet3(); // Easy
4e6a: da dd rcall .-1100 ; 0x4a20 <ParamSet_DefaultSet3>
break;
}
if(channel_backup) // if we have an channel mapping backup in eeprom
4e6c: bc 10 cpse r11, r12
4e6e: 09 c0 rjmp .+18 ; 0x4e82 <ParamSet_Init+0x124>
{ // restore it from eeprom
eeprom_read_block((void *)EE_Parameter.Kanalbelegung, (void*)(EEPROM_ADR_CHANNELS), sizeof(EE_Parameter.Kanalbelegung));
4e70: 4c e0 ldi r20, 0x0C ; 12
4e72: 50 e0 ldi r21, 0x00 ; 0
4e74: 60 e5 ldi r22, 0x50 ; 80
4e76: 70 e0 ldi r23, 0x00 ; 0
4e78: 8f e3 ldi r24, 0x3F ; 63
4e7a: 95 e0 ldi r25, 0x05 ; 5
4e7c: 0e 94 2e b2 call 0x1645c ; 0x1645c <__eerd_block_m1284>
4e80: 01 c0 rjmp .+2 ; 0x4e84 <ParamSet_Init+0x126>
}
else
{ // use default mapping
ParamSet_DefaultStickMapping();
4e82: 2f dc rcall .-1954 ; 0x46e2 <ParamSet_DefaultStickMapping>
}
ParamSet_WriteToEEProm(i);
4e84: 8e 2d mov r24, r14
4e86: e2 de rcall .-572 ; 0x4c4c <ParamSet_WriteToEEProm>
// check all 5 parameter settings
for (i = 1;i < 6; i++)
{
if(ee_default || !ParamSet_ReadFromEEProm(i)) // could not read paramset from eeprom
{
bad_params = 1;
4e88: da 2c mov r13, r10
4e8a: 21 96 adiw r28, 0x01 ; 1
if(i == eeprom_read_byte((uint8_t*)(EEPROM_ADR_CHANNELS + sizeof(EE_Parameter.Kanalbelegung)))) channel_backup = 1;
 
// parameter check
 
// check all 5 parameter settings
for (i = 1;i < 6; i++)
4e8c: c6 30 cpi r28, 0x06 ; 6
4e8e: d1 05 cpc r29, r1
4e90: 49 f6 brne .-110 ; 0x4e24 <ParamSet_Init+0xc6>
ParamSet_DefaultStickMapping();
}
ParamSet_WriteToEEProm(i);
}
}
if(bad_params) // at least one of the parameter settings were invalid
4e92: dd 20 and r13, r13
4e94: 11 f0 breq .+4 ; 0x4e9a <ParamSet_Init+0x13c>
{
// default-Setting is parameter set 3
SetActiveParamSet(3);
4e96: 83 e0 ldi r24, 0x03 ; 3
4e98: cb de rcall .-618 ; 0x4c30 <SetActiveParamSet>
}
// read active parameter set to ParamSet stucture
i = GetActiveParamSet();
4e9a: bb de rcall .-650 ; 0x4c12 <GetActiveParamSet>
4e9c: c8 2f mov r28, r24
ParamSet_ReadFromEEProm(i);
4e9e: fe dd rcall .-1028 ; 0x4a9c <ParamSet_ReadFromEEProm>
printf("\n\rUsing Parameter Set %d", i);
4ea0: 1f 92 push r1
4ea2: cf 93 push r28
4ea4: 8a e7 ldi r24, 0x7A ; 122
4ea6: 92 e0 ldi r25, 0x02 ; 2
4ea8: 9f 93 push r25
4eaa: 8f 93 push r24
4eac: 87 eb ldi r24, 0xB7 ; 183
4eae: 9c ea ldi r25, 0xAC ; 172
4eb0: 9f 93 push r25
4eb2: 8f 93 push r24
4eb4: e0 91 78 06 lds r30, 0x0678
4eb8: f0 91 79 06 lds r31, 0x0679
4ebc: 09 95 icall
/***************************************************/
/* Read Parameter from EEPROM as byte */
/***************************************************/
uint8_t GetParamByte(uint16_t param_id)
{
return eeprom_read_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + param_id));
4ebe: 81 e0 ldi r24, 0x01 ; 1
4ec0: 90 e0 ldi r25, 0x00 ; 0
4ec2: 0e 94 3e b2 call 0x1647c ; 0x1647c <__eerd_byte_m1284>
i = GetActiveParamSet();
ParamSet_ReadFromEEProm(i);
printf("\n\rUsing Parameter Set %d", i);
 
// load mixer table
if(GetParamByte(PID_EE_REVISION) == 0xff || !MixerTable_ReadFromEEProm() )
4ec6: 0f 90 pop r0
4ec8: 0f 90 pop r0
4eca: 0f 90 pop r0
4ecc: 0f 90 pop r0
4ece: 0f 90 pop r0
4ed0: 0f 90 pop r0
4ed2: 8f 3f cpi r24, 0xFF ; 255
4ed4: 19 f0 breq .+6 ; 0x4edc <ParamSet_Init+0x17e>
4ed6: 1e de rcall .-964 ; 0x4b14 <MixerTable_ReadFromEEProm>
4ed8: 81 11 cpse r24, r1
4eda: 13 c0 rjmp .+38 ; 0x4f02 <ParamSet_Init+0x1a4>
{
printf("\n\rGenerating default Mixer Table");
4edc: 89 e5 ldi r24, 0x59 ; 89
4ede: 92 e0 ldi r25, 0x02 ; 2
4ee0: 9f 93 push r25
4ee2: 8f 93 push r24
4ee4: 87 eb ldi r24, 0xB7 ; 183
4ee6: 9c ea ldi r25, 0xAC ; 172
4ee8: 9f 93 push r25
4eea: 8f 93 push r24
4eec: e0 91 78 06 lds r30, 0x0678
4ef0: f0 91 79 06 lds r31, 0x0679
4ef4: 09 95 icall
MixerTable_Default(); // Quadro
4ef6: 47 de rcall .-882 ; 0x4b86 <MixerTable_Default>
MixerTable_WriteToEEProm();
4ef8: 2f de rcall .-930 ; 0x4b58 <MixerTable_WriteToEEProm>
4efa: 0f 90 pop r0
4efc: 0f 90 pop r0
4efe: 0f 90 pop r0
4f00: 0f 90 pop r0
}
if(ee_default) SetParamByte(PID_EE_REVISION, (EEPARAM_REVISION));
4f02: ff 20 and r15, r15
4f04: 29 f0 breq .+10 ; 0x4f10 <ParamSet_Init+0x1b2>
/***************************************************/
/* Write Parameter to EEPROM as byte */
/***************************************************/
void SetParamByte(uint16_t param_id, uint8_t value)
{
eeprom_write_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + param_id), value);
4f06: 67 e6 ldi r22, 0x67 ; 103
4f08: 81 e0 ldi r24, 0x01 ; 1
4f0a: 90 e0 ldi r25, 0x00 ; 0
4f0c: 0e 94 54 b2 call 0x164a8 ; 0x164a8 <__eewr_byte_m1284>
4f10: e4 ed ldi r30, 0xD4 ; 212
4f12: f5 e0 ldi r31, 0x05 ; 5
4f14: 84 e1 ldi r24, 0x14 ; 20
4f16: 96 e0 ldi r25, 0x06 ; 6
// check all 5 parameter settings
for (i = 1;i < 6; i++)
{
if(ee_default || !ParamSet_ReadFromEEProm(i)) // could not read paramset from eeprom
{
bad_params = 1;
4f18: 20 e0 ldi r18, 0x00 ; 0
if(ee_default) SetParamByte(PID_EE_REVISION, (EEPARAM_REVISION));
// determine motornumber
RequiredMotors = 0;
for(i = 0; i < 16; i++)
{
if(Mixer.Motor[i][MIX_GAS] > 0) RequiredMotors++;
4f1a: 30 81 ld r19, Z
4f1c: 13 16 cp r1, r19
4f1e: 0c f4 brge .+2 ; 0x4f22 <ParamSet_Init+0x1c4>
4f20: 2f 5f subi r18, 0xFF ; 255
4f22: 34 96 adiw r30, 0x04 ; 4
MixerTable_WriteToEEProm();
}
if(ee_default) SetParamByte(PID_EE_REVISION, (EEPARAM_REVISION));
// determine motornumber
RequiredMotors = 0;
for(i = 0; i < 16; i++)
4f24: e8 17 cp r30, r24
4f26: f9 07 cpc r31, r25
4f28: c1 f7 brne .-16 ; 0x4f1a <ParamSet_Init+0x1bc>
4f2a: 20 93 3d 05 sts 0x053D, r18
{
if(Mixer.Motor[i][MIX_GAS] > 0) RequiredMotors++;
}
 
printf("\n\rMixer-Config: '%s' (%u Motors)",Mixer.Name, RequiredMotors);
4f2e: 1f 92 push r1
4f30: 2f 93 push r18
4f32: 88 ec ldi r24, 0xC8 ; 200
4f34: 95 e0 ldi r25, 0x05 ; 5
4f36: 9f 93 push r25
4f38: 8f 93 push r24
4f3a: 88 e3 ldi r24, 0x38 ; 56
4f3c: 92 e0 ldi r25, 0x02 ; 2
4f3e: 9f 93 push r25
4f40: 8f 93 push r24
4f42: 87 eb ldi r24, 0xB7 ; 183
4f44: 9c ea ldi r25, 0xAC ; 172
4f46: 9f 93 push r25
4f48: 8f 93 push r24
4f4a: e0 91 78 06 lds r30, 0x0678
4f4e: f0 91 79 06 lds r31, 0x0679
4f52: 09 95 icall
PrintLine();// ("\n\r===================================");
4f54: 0e 94 4b 59 call 0xb296 ; 0xb296 <PrintLine>
4f58: 8d b7 in r24, 0x3d ; 61
4f5a: 9e b7 in r25, 0x3e ; 62
4f5c: 08 96 adiw r24, 0x08 ; 8
4f5e: 0f b6 in r0, 0x3f ; 63
4f60: f8 94 cli
4f62: 9e bf out 0x3e, r25 ; 62
4f64: 0f be out 0x3f, r0 ; 63
4f66: 8d bf out 0x3d, r24 ; 61
 
}
4f68: df 91 pop r29
4f6a: cf 91 pop r28
4f6c: 1f 91 pop r17
4f6e: 0f 91 pop r16
4f70: ff 90 pop r15
4f72: ef 90 pop r14
4f74: df 90 pop r13
4f76: cf 90 pop r12
4f78: bf 90 pop r11
4f7a: af 90 pop r10
4f7c: 9f 90 pop r9
4f7e: 8f 90 pop r8
4f80: 08 95 ret
 
00004f82 <CopyDebugValues>:
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Debugwerte zuordnen
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void CopyDebugValues(void)
{
4f82: cf 92 push r12
4f84: df 92 push r13
4f86: ef 92 push r14
4f88: ff 92 push r15
DebugOut.Analog[0] = ToNaviCtrl.IntegralNick;//IntegralNick / (EE_Parameter.GyroAccFaktor * 4);
4f8a: 80 91 ea 08 lds r24, 0x08EA
4f8e: 90 91 eb 08 lds r25, 0x08EB
4f92: 90 93 49 0c sts 0x0C49, r25
4f96: 80 93 48 0c sts 0x0C48, r24
DebugOut.Analog[1] = ToNaviCtrl.IntegralRoll;//IntegralRoll / (EE_Parameter.GyroAccFaktor * 4);
4f9a: 80 91 ec 08 lds r24, 0x08EC
4f9e: 90 91 ed 08 lds r25, 0x08ED
4fa2: 90 93 4b 0c sts 0x0C4B, r25
4fa6: 80 93 4a 0c sts 0x0C4A, r24
DebugOut.Analog[2] = Mittelwert_AccNick / 4;
4faa: 80 91 60 06 lds r24, 0x0660
4fae: 90 91 61 06 lds r25, 0x0661
4fb2: 99 23 and r25, r25
4fb4: 0c f4 brge .+2 ; 0x4fb8 <CopyDebugValues+0x36>
4fb6: 03 96 adiw r24, 0x03 ; 3
4fb8: 95 95 asr r25
4fba: 87 95 ror r24
4fbc: 95 95 asr r25
4fbe: 87 95 ror r24
4fc0: 90 93 4d 0c sts 0x0C4D, r25
4fc4: 80 93 4c 0c sts 0x0C4C, r24
DebugOut.Analog[3] = Mittelwert_AccRoll / 4;
4fc8: 80 91 72 06 lds r24, 0x0672
4fcc: 90 91 73 06 lds r25, 0x0673
4fd0: 99 23 and r25, r25
4fd2: 0c f4 brge .+2 ; 0x4fd6 <CopyDebugValues+0x54>
4fd4: 03 96 adiw r24, 0x03 ; 3
4fd6: 95 95 asr r25
4fd8: 87 95 ror r24
4fda: 95 95 asr r25
4fdc: 87 95 ror r24
4fde: 90 93 4f 0c sts 0x0C4F, r25
4fe2: 80 93 4e 0c sts 0x0C4E, r24
DebugOut.Analog[4] = (signed int) AdNeutralGier - AdWertGier;
4fe6: 20 91 61 03 lds r18, 0x0361
4fea: 30 91 62 03 lds r19, 0x0362
4fee: 80 91 53 04 lds r24, 0x0453
4ff2: 90 91 54 04 lds r25, 0x0454
4ff6: 82 1b sub r24, r18
4ff8: 93 0b sbc r25, r19
4ffa: 90 93 51 0c sts 0x0C51, r25
4ffe: 80 93 50 0c sts 0x0C50, r24
DebugOut.Analog[5] = HoehenWert/10;
5002: 60 91 fe 03 lds r22, 0x03FE
5006: 70 91 ff 03 lds r23, 0x03FF
500a: 80 91 00 04 lds r24, 0x0400
500e: 90 91 01 04 lds r25, 0x0401
5012: 0f 2e mov r0, r31
5014: fa e0 ldi r31, 0x0A ; 10
5016: cf 2e mov r12, r31
5018: d1 2c mov r13, r1
501a: e1 2c mov r14, r1
501c: f1 2c mov r15, r1
501e: f0 2d mov r31, r0
5020: a7 01 movw r20, r14
5022: 96 01 movw r18, r12
5024: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
5028: 30 93 53 0c sts 0x0C53, r19
502c: 20 93 52 0c sts 0x0C52, r18
DebugOut.Analog[6] = Aktuell_az;//AdWertAccHoch;//(Mess_Integral_Hoch / 512);
5030: 80 91 06 05 lds r24, 0x0506
5034: 90 91 07 05 lds r25, 0x0507
5038: 90 93 55 0c sts 0x0C55, r25
503c: 80 93 54 0c sts 0x0C54, r24
DebugOut.Analog[8] = KompassValue;
5040: 80 91 4e 01 lds r24, 0x014E
5044: 90 91 4f 01 lds r25, 0x014F
5048: 90 93 59 0c sts 0x0C59, r25
504c: 80 93 58 0c sts 0x0C58, r24
DebugOut.Analog[9] = UBat;
5050: 80 91 1a 01 lds r24, 0x011A
5054: 90 91 1b 01 lds r25, 0x011B
5058: 90 93 5b 0c sts 0x0C5B, r25
505c: 80 93 5a 0c sts 0x0C5A, r24
DebugOut.Analog[10] = SenderOkay;
5060: 80 91 04 04 lds r24, 0x0404
5064: 90 e0 ldi r25, 0x00 ; 0
5066: 90 93 5d 0c sts 0x0C5D, r25
506a: 80 93 5c 0c sts 0x0C5C, r24
DebugOut.Analog[11] = ErsatzKompassInGrad;
506e: 80 91 21 06 lds r24, 0x0621
5072: 90 91 22 06 lds r25, 0x0622
5076: 90 93 5f 0c sts 0x0C5F, r25
507a: 80 93 5e 0c sts 0x0C5E, r24
DebugOut.Analog[12] = Motor[0].SetPoint;
507e: 80 91 98 09 lds r24, 0x0998
5082: 90 e0 ldi r25, 0x00 ; 0
5084: 90 93 61 0c sts 0x0C61, r25
5088: 80 93 60 0c sts 0x0C60, r24
DebugOut.Analog[13] = Motor[1].SetPoint;
508c: 80 91 a7 09 lds r24, 0x09A7
5090: 90 e0 ldi r25, 0x00 ; 0
5092: 90 93 63 0c sts 0x0C63, r25
5096: 80 93 62 0c sts 0x0C62, r24
DebugOut.Analog[14] = Motor[2].SetPoint;
509a: 80 91 b6 09 lds r24, 0x09B6
509e: 90 e0 ldi r25, 0x00 ; 0
50a0: 90 93 65 0c sts 0x0C65, r25
50a4: 80 93 64 0c sts 0x0C64, r24
DebugOut.Analog[15] = Motor[3].SetPoint;
50a8: 80 91 c5 09 lds r24, 0x09C5
50ac: 90 e0 ldi r25, 0x00 ; 0
50ae: 90 93 67 0c sts 0x0C67, r25
50b2: 80 93 66 0c sts 0x0C66, r24
DebugOut.Analog[20] = ServoNickValue;
50b6: 80 91 c6 04 lds r24, 0x04C6
50ba: 90 91 c7 04 lds r25, 0x04C7
50be: 90 93 71 0c sts 0x0C71, r25
50c2: 80 93 70 0c sts 0x0C70, r24
DebugOut.Analog[21] = HoverGas;
50c6: 80 91 e8 03 lds r24, 0x03E8
50ca: 90 91 e9 03 lds r25, 0x03E9
50ce: 90 93 73 0c sts 0x0C73, r25
50d2: 80 93 72 0c sts 0x0C72, r24
DebugOut.Analog[22] = Capacity.ActualCurrent;
50d6: 80 91 15 05 lds r24, 0x0515
50da: 90 91 16 05 lds r25, 0x0516
50de: 90 93 75 0c sts 0x0C75, r25
50e2: 80 93 74 0c sts 0x0C74, r24
DebugOut.Analog[23] = Capacity.UsedCapacity;
50e6: 80 91 19 05 lds r24, 0x0519
50ea: 90 91 1a 05 lds r25, 0x051A
50ee: 90 93 77 0c sts 0x0C77, r25
50f2: 80 93 76 0c sts 0x0C76, r24
DebugOut.Analog[24] = SollHoehe/10;
50f6: 60 91 fa 03 lds r22, 0x03FA
50fa: 70 91 fb 03 lds r23, 0x03FB
50fe: 80 91 fc 03 lds r24, 0x03FC
5102: 90 91 fd 03 lds r25, 0x03FD
5106: a7 01 movw r20, r14
5108: 96 01 movw r18, r12
510a: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
510e: 30 93 79 0c sts 0x0C79, r19
5112: 20 93 78 0c sts 0x0C78, r18
// DebugOut.Analog[27] = KompassSollWert;
DebugOut.Analog[29] = Capacity.MinOfMaxPWM;
5116: 80 91 1b 05 lds r24, 0x051B
511a: 90 e0 ldi r25, 0x00 ; 0
511c: 90 93 83 0c sts 0x0C83, r25
5120: 80 93 82 0c sts 0x0C82, r24
DebugOut.Analog[30] = GPS_Nick;
5124: 80 91 6a 04 lds r24, 0x046A
5128: 90 91 6b 04 lds r25, 0x046B
512c: 90 93 85 0c sts 0x0C85, r25
5130: 80 93 84 0c sts 0x0C84, r24
DebugOut.Analog[31] = GPS_Roll;
5134: 80 91 68 04 lds r24, 0x0468
5138: 90 91 69 04 lds r25, 0x0469
513c: 90 93 87 0c sts 0x0C87, r25
5140: 80 93 86 0c sts 0x0C86, r24
if(VersionInfo.HardwareError[0] || VersionInfo.HardwareError[1]) DebugOut.Status[1] |= 1; else DebugOut.Status[1] &= 0xfe;
5144: 80 91 62 0a lds r24, 0x0A62
5148: 81 11 cpse r24, r1
514a: 04 c0 rjmp .+8 ; 0x5154 <CopyDebugValues+0x1d2>
514c: 80 91 63 0a lds r24, 0x0A63
5150: 88 23 and r24, r24
5152: 31 f0 breq .+12 ; 0x5160 <CopyDebugValues+0x1de>
5154: e7 e4 ldi r30, 0x47 ; 71
5156: fc e0 ldi r31, 0x0C ; 12
5158: 80 81 ld r24, Z
515a: 81 60 ori r24, 0x01 ; 1
515c: 80 83 st Z, r24
515e: 05 c0 rjmp .+10 ; 0x516a <CopyDebugValues+0x1e8>
5160: e7 e4 ldi r30, 0x47 ; 71
5162: fc e0 ldi r31, 0x0C ; 12
5164: 80 81 ld r24, Z
5166: 8e 7f andi r24, 0xFE ; 254
5168: 80 83 st Z, r24
//DebugOut.Analog[17] = VarioMeter;
//DebugOut.Analog[16] = GasIsZeroCnt;
//DebugOut.Analog[18] = HoehenWertF;
//DebugOut.Analog[25] = Parameter_Hoehe_P;
//DebugOut.Analog[26] = Parameter_Luftdruck_D;
}
516a: ff 90 pop r15
516c: ef 90 pop r14
516e: df 90 pop r13
5170: cf 90 pop r12
5172: 08 95 ret
 
00005174 <Piep>:
 
 
void Piep(unsigned char Anzahl, unsigned int dauer)
{
5174: ff 92 push r15
5176: 0f 93 push r16
5178: 1f 93 push r17
517a: cf 93 push r28
517c: df 93 push r29
517e: 8b 01 movw r16, r22
unsigned int wait = 0;
if(MotorenEin) return; //auf keinen Fall im Flug!
5180: 90 91 03 04 lds r25, 0x0403
5184: 91 11 cpse r25, r1
5186: 31 c0 rjmp .+98 ; 0x51ea <Piep+0x76>
GRN_OFF;
5188: 90 91 54 01 lds r25, 0x0154
518c: 99 31 cpi r25, 0x19 ; 25
518e: 11 f4 brne .+4 ; 0x5194 <Piep+0x20>
5190: 29 98 cbi 0x05, 1 ; 5
5192: 21 c0 rjmp .+66 ; 0x51d6 <Piep+0x62>
5194: 29 9a sbi 0x05, 1 ; 5
5196: 1f c0 rjmp .+62 ; 0x51d6 <Piep+0x62>
while(Anzahl--)
{
beeptime = dauer;
5198: 10 93 ce 04 sts 0x04CE, r17
519c: 00 93 cd 04 sts 0x04CD, r16
wait = dauer;
51a0: e8 01 movw r28, r16
while(beeptime || wait)
51a2: 0f c0 rjmp .+30 ; 0x51c2 <Piep+0x4e>
{
if(UpdateMotor)
51a4: 90 91 d1 04 lds r25, 0x04D1
51a8: 99 23 and r25, r25
51aa: 59 f0 breq .+22 ; 0x51c2 <Piep+0x4e>
{
UpdateMotor = 0;
51ac: 10 92 d1 04 sts 0x04D1, r1
if(!beeptime) wait--;
51b0: 20 91 cd 04 lds r18, 0x04CD
51b4: 30 91 ce 04 lds r19, 0x04CE
51b8: 23 2b or r18, r19
51ba: 09 f4 brne .+2 ; 0x51be <Piep+0x4a>
51bc: 21 97 sbiw r28, 0x01 ; 1
LIBFC_Polling();
51be: 0e 94 16 1a call 0x342c ; 0x342c <LIBFC_Polling>
GRN_OFF;
while(Anzahl--)
{
beeptime = dauer;
wait = dauer;
while(beeptime || wait)
51c2: 20 91 cd 04 lds r18, 0x04CD
51c6: 30 91 ce 04 lds r19, 0x04CE
51ca: 23 2b or r18, r19
51cc: 59 f7 brne .-42 ; 0x51a4 <Piep+0x30>
51ce: 20 97 sbiw r28, 0x00 ; 0
51d0: 49 f7 brne .-46 ; 0x51a4 <Piep+0x30>
51d2: fa 94 dec r15
51d4: 01 c0 rjmp .+2 ; 0x51d8 <Piep+0x64>
if(MotorenEin) return; //auf keinen Fall im Flug!
GRN_OFF;
while(Anzahl--)
{
beeptime = dauer;
wait = dauer;
51d6: f8 2e mov r15, r24
void Piep(unsigned char Anzahl, unsigned int dauer)
{
unsigned int wait = 0;
if(MotorenEin) return; //auf keinen Fall im Flug!
GRN_OFF;
while(Anzahl--)
51d8: f1 10 cpse r15, r1
51da: de cf rjmp .-68 ; 0x5198 <Piep+0x24>
if(!beeptime) wait--;
LIBFC_Polling();
};
}
}
GRN_ON;
51dc: 80 91 54 01 lds r24, 0x0154
51e0: 89 31 cpi r24, 0x19 ; 25
51e2: 11 f4 brne .+4 ; 0x51e8 <Piep+0x74>
51e4: 29 9a sbi 0x05, 1 ; 5
51e6: 01 c0 rjmp .+2 ; 0x51ea <Piep+0x76>
51e8: 29 98 cbi 0x05, 1 ; 5
}
51ea: df 91 pop r29
51ec: cf 91 pop r28
51ee: 1f 91 pop r17
51f0: 0f 91 pop r16
51f2: ff 90 pop r15
51f4: 08 95 ret
 
000051f6 <CalibrierMittelwert>:
void CalibrierMittelwert(void)
//############################################################################
{
// if(PlatinenVersion == 13) SucheGyroOffset();
// ADC auschalten, damit die Werte sich nicht während der Berechnung ändern
ANALOG_OFF;
51f6: ea e7 ldi r30, 0x7A ; 122
51f8: f0 e0 ldi r31, 0x00 ; 0
51fa: 10 82 st Z, r1
MesswertNick = AdWertNick;
51fc: 80 91 65 03 lds r24, 0x0365
5200: 90 91 66 03 lds r25, 0x0366
5204: 90 93 28 06 sts 0x0628, r25
5208: 80 93 27 06 sts 0x0627, r24
MesswertRoll = AdWertRoll;
520c: 80 91 63 03 lds r24, 0x0363
5210: 90 91 64 03 lds r25, 0x0364
5214: 90 93 1d 06 sts 0x061D, r25
5218: 80 93 1c 06 sts 0x061C, r24
MesswertGier = AdWertGier;
521c: 80 91 61 03 lds r24, 0x0361
5220: 90 91 62 03 lds r25, 0x0362
5224: 90 93 68 06 sts 0x0668, r25
5228: 80 93 67 06 sts 0x0667, r24
Mittelwert_AccNick = ACC_AMPLIFY * AdWertAccNick;
522c: 80 91 5d 03 lds r24, 0x035D
5230: 90 91 5e 03 lds r25, 0x035E
5234: 9c 01 movw r18, r24
5236: 22 0f add r18, r18
5238: 33 1f adc r19, r19
523a: 82 0f add r24, r18
523c: 93 1f adc r25, r19
523e: 88 0f add r24, r24
5240: 99 1f adc r25, r25
5242: 90 93 61 06 sts 0x0661, r25
5246: 80 93 60 06 sts 0x0660, r24
Mittelwert_AccRoll = ACC_AMPLIFY * AdWertAccRoll;
524a: 80 91 5f 03 lds r24, 0x035F
524e: 90 91 60 03 lds r25, 0x0360
5252: 9c 01 movw r18, r24
5254: 22 0f add r18, r18
5256: 33 1f adc r19, r19
5258: 82 0f add r24, r18
525a: 93 1f adc r25, r19
525c: 88 0f add r24, r24
525e: 99 1f adc r25, r25
5260: 90 93 73 06 sts 0x0673, r25
5264: 80 93 72 06 sts 0x0672, r24
// ADC einschalten
ANALOG_ON;
5268: 8f ec ldi r24, 0xCF ; 207
526a: 80 83 st Z, r24
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
526c: 20 91 7f 05 lds r18, 0x057F
5270: 30 e0 ldi r19, 0x00 ; 0
5272: a4 ec ldi r26, 0xC4 ; 196
5274: b9 e0 ldi r27, 0x09 ; 9
5276: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
527a: 60 93 46 01 sts 0x0146, r22
527e: 70 93 47 01 sts 0x0147, r23
5282: 80 93 48 01 sts 0x0148, r24
5286: 90 93 49 01 sts 0x0149, r25
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L;
528a: 20 91 80 05 lds r18, 0x0580
528e: 30 e0 ldi r19, 0x00 ; 0
5290: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
5294: 60 93 42 01 sts 0x0142, r22
5298: 70 93 43 01 sts 0x0143, r23
529c: 80 93 44 01 sts 0x0144, r24
52a0: 90 93 45 01 sts 0x0145, r25
52a4: 08 95 ret
 
000052a6 <SetNeutral>:
// Parameter: 1 -> before Start
// Parameter: 2 -> calibrate and store ACC
// Parameter: 3 -> use stored Gyro calibration Data from EEPROM
unsigned char SetNeutral(unsigned char AdjustmentMode) // retuns: "sucess"
//############################################################################
{
52a6: 8f 92 push r8
52a8: 9f 92 push r9
52aa: af 92 push r10
52ac: bf 92 push r11
52ae: cf 92 push r12
52b0: df 92 push r13
52b2: ef 92 push r14
52b4: ff 92 push r15
52b6: 0f 93 push r16
52b8: 1f 93 push r17
52ba: cf 93 push r28
52bc: df 93 push r29
52be: c8 2f mov r28, r24
unsigned char i, sucess = 1;
unsigned int gier_neutral = 0, nick_neutral = 0, roll_neutral = 0, acc_z_neutral = 0, barotest;
VersionInfo.HardwareError[0] = 0;
52c0: 10 92 62 0a sts 0x0A62, r1
// HEF4017Reset_ON;
NeutralAccX = 0;
52c4: 10 92 4e 04 sts 0x044E, r1
52c8: 10 92 4d 04 sts 0x044D, r1
NeutralAccY = 0;
52cc: 10 92 4c 04 sts 0x044C, r1
52d0: 10 92 4b 04 sts 0x044B, r1
NeutralAccZ = 0;
52d4: 10 92 48 04 sts 0x0448, r1
52d8: 10 92 47 04 sts 0x0447, r1
NeutralAccZfine = 0;
52dc: 10 92 46 04 sts 0x0446, r1
 
AdNeutralNick = 0;
52e0: 10 92 58 04 sts 0x0458, r1
52e4: 10 92 57 04 sts 0x0457, r1
AdNeutralRoll = 0;
52e8: 10 92 56 04 sts 0x0456, r1
52ec: 10 92 55 04 sts 0x0455, r1
AdNeutralGier = 0;
52f0: 10 92 54 04 sts 0x0454, r1
52f4: 10 92 53 04 sts 0x0453, r1
 
Parameter_AchsKopplung1 = 0;
52f8: 10 92 2a 01 sts 0x012A, r1
Parameter_AchsKopplung2 = 0;
52fc: 10 92 29 01 sts 0x0129, r1
 
ExpandBaro = 0;
5300: 10 92 56 03 sts 0x0356, r1
if(AdjustmentMode == 3) FC_StatusFlags3 |= FC_STATUS3_BOAT;
5304: 83 30 cpi r24, 0x03 ; 3
5306: 29 f4 brne .+10 ; 0x5312 <SetNeutral+0x6c>
5308: 80 91 c9 03 lds r24, 0x03C9
530c: 82 60 ori r24, 0x02 ; 2
530e: 80 93 c9 03 sts 0x03C9, r24
// else FC_StatusFlags3 &= ~FC_STATUS3_BOAT; -> do not clear that
 
CalibrierMittelwert();
5312: 71 df rcall .-286 ; 0x51f6 <CalibrierMittelwert>
Delay_ms_Mess(100);
5314: 84 e6 ldi r24, 0x64 ; 100
5316: 90 e0 ldi r25, 0x00 ; 0
5318: 0e 94 6e 9c call 0x138dc ; 0x138dc <Delay_ms_Mess>
CalibrierMittelwert();
531c: 6c df rcall .-296 ; 0x51f6 <CalibrierMittelwert>
 
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert?
531e: 80 91 4b 05 lds r24, 0x054B
5322: 80 ff sbrs r24, 0
5324: 13 c0 rjmp .+38 ; 0x534c <SetNeutral+0xa6>
{
if((MessLuftdruck > 950) || (MessLuftdruck < 750) || ExpandBaro) SucheLuftruckOffset();
5326: 80 91 10 01 lds r24, 0x0110
532a: 90 91 11 01 lds r25, 0x0111
532e: 87 3b cpi r24, 0xB7 ; 183
5330: 93 40 sbci r25, 0x03 ; 3
5332: 50 f4 brcc .+20 ; 0x5348 <SetNeutral+0xa2>
5334: 80 91 10 01 lds r24, 0x0110
5338: 90 91 11 01 lds r25, 0x0111
533c: 8e 3e cpi r24, 0xEE ; 238
533e: 92 40 sbci r25, 0x02 ; 2
5340: 18 f0 brcs .+6 ; 0x5348 <SetNeutral+0xa2>
5342: 80 91 56 03 lds r24, 0x0356
5346: 81 11 cpse r24, r1
5348: 0e 94 4b 1b call 0x3696 ; 0x3696 <SucheLuftruckOffset>
}
barotest = MessLuftdruck;
534c: 00 91 10 01 lds r16, 0x0110
5350: 10 91 11 01 lds r17, 0x0111
#define NEUTRAL_FILTER 32
OCR0A += OPA_OFFSET_STEP;
5354: 87 b5 in r24, 0x27 ; 39
5356: 8b 5f subi r24, 0xFB ; 251
5358: 87 bd out 0x27, r24 ; 39
OCR0B = 255 - OCR0A;
535a: 87 b5 in r24, 0x27 ; 39
535c: 80 95 com r24
535e: 88 bd out 0x28, r24 ; 40
5360: d0 e2 ldi r29, 0x20 ; 32
// Parameter: 3 -> use stored Gyro calibration Data from EEPROM
unsigned char SetNeutral(unsigned char AdjustmentMode) // retuns: "sucess"
//############################################################################
{
unsigned char i, sucess = 1;
unsigned int gier_neutral = 0, nick_neutral = 0, roll_neutral = 0, acc_z_neutral = 0, barotest;
5362: e1 2c mov r14, r1
5364: f1 2c mov r15, r1
5366: a1 2c mov r10, r1
5368: b1 2c mov r11, r1
536a: 81 2c mov r8, r1
536c: 91 2c mov r9, r1
536e: c1 2c mov r12, r1
5370: d1 2c mov r13, r1
#define NEUTRAL_FILTER 32
OCR0A += OPA_OFFSET_STEP;
OCR0B = 255 - OCR0A;
for(i=0; i<NEUTRAL_FILTER; i++)
{
Delay_ms_Mess(10);
5372: 8a e0 ldi r24, 0x0A ; 10
5374: 90 e0 ldi r25, 0x00 ; 0
5376: 0e 94 6e 9c call 0x138dc ; 0x138dc <Delay_ms_Mess>
gier_neutral += AdWertGier;
537a: 80 91 61 03 lds r24, 0x0361
537e: 90 91 62 03 lds r25, 0x0362
5382: c8 0e add r12, r24
5384: d9 1e adc r13, r25
nick_neutral += AdWertNick;
5386: 80 91 65 03 lds r24, 0x0365
538a: 90 91 66 03 lds r25, 0x0366
538e: 88 0e add r8, r24
5390: 99 1e adc r9, r25
roll_neutral += AdWertRoll;
5392: 80 91 63 03 lds r24, 0x0363
5396: 90 91 64 03 lds r25, 0x0364
539a: a8 0e add r10, r24
539c: b9 1e adc r11, r25
acc_z_neutral += Aktuell_az;
539e: 80 91 06 05 lds r24, 0x0506
53a2: 90 91 07 05 lds r25, 0x0507
53a6: e8 0e add r14, r24
53a8: f9 1e adc r15, r25
53aa: d1 50 subi r29, 0x01 ; 1
barotest = MessLuftdruck;
#define NEUTRAL_FILTER 32
OCR0A += OPA_OFFSET_STEP;
OCR0B = 255 - OCR0A;
for(i=0; i<NEUTRAL_FILTER; i++)
53ac: 11 f7 brne .-60 ; 0x5372 <SetNeutral+0xcc>
gier_neutral += AdWertGier;
nick_neutral += AdWertNick;
roll_neutral += AdWertRoll;
acc_z_neutral += Aktuell_az;
}
if(MessLuftdruck < 1010 && MessLuftdruck > 20) BaroStep = barotest - MessLuftdruck;
53ae: 80 91 10 01 lds r24, 0x0110
53b2: 90 91 11 01 lds r25, 0x0111
53b6: 82 3f cpi r24, 0xF2 ; 242
53b8: 93 40 sbci r25, 0x03 ; 3
53ba: 80 f4 brcc .+32 ; 0x53dc <SetNeutral+0x136>
53bc: 80 91 10 01 lds r24, 0x0110
53c0: 90 91 11 01 lds r25, 0x0111
53c4: 45 97 sbiw r24, 0x15 ; 21
53c6: 50 f0 brcs .+20 ; 0x53dc <SetNeutral+0x136>
53c8: 80 91 10 01 lds r24, 0x0110
53cc: 90 91 11 01 lds r25, 0x0111
53d0: 08 1b sub r16, r24
53d2: 19 0b sbc r17, r25
53d4: 10 93 0e 01 sts 0x010E, r17
53d8: 00 93 0d 01 sts 0x010D, r16
OCR0A -= OPA_OFFSET_STEP;
53dc: 87 b5 in r24, 0x27 ; 39
53de: 85 50 subi r24, 0x05 ; 5
53e0: 87 bd out 0x27, r24 ; 39
OCR0B = 255 - OCR0A;
53e2: 87 b5 in r24, 0x27 ; 39
53e4: 80 95 com r24
53e6: 88 bd out 0x28, r24 ; 40
AdNeutralNick = (nick_neutral+NEUTRAL_FILTER/2) / (NEUTRAL_FILTER / 8);
53e8: 80 e1 ldi r24, 0x10 ; 16
53ea: 88 0e add r8, r24
53ec: 91 1c adc r9, r1
53ee: 96 94 lsr r9
53f0: 87 94 ror r8
53f2: 96 94 lsr r9
53f4: 87 94 ror r8
53f6: 90 92 58 04 sts 0x0458, r9
53fa: 80 92 57 04 sts 0x0457, r8
AdNeutralRoll = (roll_neutral+NEUTRAL_FILTER/2) / (NEUTRAL_FILTER / 8);
53fe: 20 e1 ldi r18, 0x10 ; 16
5400: a2 0e add r10, r18
5402: b1 1c adc r11, r1
5404: b6 94 lsr r11
5406: a7 94 ror r10
5408: b6 94 lsr r11
540a: a7 94 ror r10
540c: b0 92 56 04 sts 0x0456, r11
5410: a0 92 55 04 sts 0x0455, r10
AdNeutralGier = (gier_neutral+NEUTRAL_FILTER/2) / (NEUTRAL_FILTER);
5414: 40 e1 ldi r20, 0x10 ; 16
5416: c4 0e add r12, r20
5418: d1 1c adc r13, r1
541a: d6 94 lsr r13
541c: c7 94 ror r12
541e: d6 94 lsr r13
5420: c7 94 ror r12
5422: d6 94 lsr r13
5424: c7 94 ror r12
5426: d6 94 lsr r13
5428: c7 94 ror r12
542a: d6 94 lsr r13
542c: c7 94 ror r12
542e: d0 92 54 04 sts 0x0454, r13
5432: c0 92 53 04 sts 0x0453, r12
NeutralAccZ = (acc_z_neutral+NEUTRAL_FILTER/2) / (NEUTRAL_FILTER);
5436: 60 e1 ldi r22, 0x10 ; 16
5438: e6 0e add r14, r22
543a: f1 1c adc r15, r1
543c: f6 94 lsr r15
543e: e7 94 ror r14
5440: f6 94 lsr r15
5442: e7 94 ror r14
5444: f6 94 lsr r15
5446: e7 94 ror r14
5448: f6 94 lsr r15
544a: e7 94 ror r14
544c: f6 94 lsr r15
544e: e7 94 ror r14
5450: f0 92 48 04 sts 0x0448, r15
5454: e0 92 47 04 sts 0x0447, r14
 
StartNeutralRoll = AdNeutralRoll;
5458: b0 92 52 04 sts 0x0452, r11
545c: a0 92 51 04 sts 0x0451, r10
StartNeutralNick = AdNeutralNick;
5460: 90 92 50 04 sts 0x0450, r9
5464: 80 92 4f 04 sts 0x044F, r8
 
if(AdjustmentMode == 2)
5468: c2 30 cpi r28, 0x02 ; 2
546a: 09 f0 breq .+2 ; 0x546e <SetNeutral+0x1c8>
546c: 4c c0 rjmp .+152 ; 0x5506 <SetNeutral+0x260>
{
NeutralAccX = abs(Mittelwert_AccNick) / (2*ACC_AMPLIFY);
546e: 80 91 60 06 lds r24, 0x0660
5472: 90 91 61 06 lds r25, 0x0661
5476: 99 23 and r25, r25
5478: 1c f4 brge .+6 ; 0x5480 <SetNeutral+0x1da>
547a: 91 95 neg r25
547c: 81 95 neg r24
547e: 91 09 sbc r25, r1
5480: 6c e0 ldi r22, 0x0C ; 12
5482: 70 e0 ldi r23, 0x00 ; 0
5484: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
5488: 9b 01 movw r18, r22
548a: 70 93 4e 04 sts 0x044E, r23
548e: 60 93 4d 04 sts 0x044D, r22
NeutralAccY = abs(Mittelwert_AccRoll) / (2*ACC_AMPLIFY);
5492: 80 91 72 06 lds r24, 0x0672
5496: 90 91 73 06 lds r25, 0x0673
549a: 99 23 and r25, r25
549c: 1c f4 brge .+6 ; 0x54a4 <SetNeutral+0x1fe>
549e: 91 95 neg r25
54a0: 81 95 neg r24
54a2: 91 09 sbc r25, r1
54a4: 6c e0 ldi r22, 0x0C ; 12
54a6: 70 e0 ldi r23, 0x00 ; 0
54a8: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
54ac: 70 93 4c 04 sts 0x044C, r23
54b0: 60 93 4b 04 sts 0x044B, r22
// Save ACC neutral settings to eeprom
SetParamWord(PID_ACC_NICK, (uint16_t)NeutralAccX);
54b4: b9 01 movw r22, r18
54b6: 84 e0 ldi r24, 0x04 ; 4
54b8: 90 e0 ldi r25, 0x00 ; 0
54ba: ed da rcall .-2598 ; 0x4a96 <SetParamWord>
SetParamWord(PID_ACC_ROLL, (uint16_t)NeutralAccY);
54bc: 60 91 4b 04 lds r22, 0x044B
54c0: 70 91 4c 04 lds r23, 0x044C
54c4: 86 e0 ldi r24, 0x06 ; 6
54c6: 90 e0 ldi r25, 0x00 ; 0
54c8: e6 da rcall .-2612 ; 0x4a96 <SetParamWord>
SetParamWord(PID_ACC_TOP, (uint16_t)NeutralAccZ);
54ca: 60 91 47 04 lds r22, 0x0447
54ce: 70 91 48 04 lds r23, 0x0448
54d2: 88 e0 ldi r24, 0x08 ; 8
54d4: 90 e0 ldi r25, 0x00 ; 0
54d6: df da rcall .-2626 ; 0x4a96 <SetParamWord>
SetParamWord(PID_GYRO_NICK,(uint16_t)AdNeutralNick);
54d8: 60 91 57 04 lds r22, 0x0457
54dc: 70 91 58 04 lds r23, 0x0458
54e0: 82 e1 ldi r24, 0x12 ; 18
54e2: 90 e0 ldi r25, 0x00 ; 0
54e4: d8 da rcall .-2640 ; 0x4a96 <SetParamWord>
SetParamWord(PID_GYRO_ROLL,(uint16_t)AdNeutralRoll);
54e6: 60 91 55 04 lds r22, 0x0455
54ea: 70 91 56 04 lds r23, 0x0456
54ee: 84 e1 ldi r24, 0x14 ; 20
54f0: 90 e0 ldi r25, 0x00 ; 0
54f2: d1 da rcall .-2654 ; 0x4a96 <SetParamWord>
SetParamWord(PID_GYRO_YAW,(uint16_t)AdNeutralGier);
54f4: 60 91 53 04 lds r22, 0x0453
54f8: 70 91 54 04 lds r23, 0x0454
54fc: 86 e1 ldi r24, 0x16 ; 22
54fe: 90 e0 ldi r25, 0x00 ; 0
5500: ca da rcall .-2668 ; 0x4a96 <SetParamWord>
// Parameter: 2 -> calibrate and store ACC
// Parameter: 3 -> use stored Gyro calibration Data from EEPROM
unsigned char SetNeutral(unsigned char AdjustmentMode) // retuns: "sucess"
//############################################################################
{
unsigned char i, sucess = 1;
5502: d1 e0 ldi r29, 0x01 ; 1
5504: 91 c0 rjmp .+290 ; 0x5628 <SetNeutral+0x382>
SetParamWord(PID_GYRO_YAW,(uint16_t)AdNeutralGier);
}
else
{
// restore from eeprom
NeutralAccX = (int16_t)GetParamWord(PID_ACC_NICK);
5506: 84 e0 ldi r24, 0x04 ; 4
5508: 90 e0 ldi r25, 0x00 ; 0
550a: c2 da rcall .-2684 ; 0x4a90 <GetParamWord>
550c: 90 93 4e 04 sts 0x044E, r25
5510: 80 93 4d 04 sts 0x044D, r24
NeutralAccY = (int16_t)GetParamWord(PID_ACC_ROLL);
5514: 86 e0 ldi r24, 0x06 ; 6
5516: 90 e0 ldi r25, 0x00 ; 0
5518: bb da rcall .-2698 ; 0x4a90 <GetParamWord>
551a: 90 93 4c 04 sts 0x044C, r25
551e: 80 93 4b 04 sts 0x044B, r24
// strange settings?
if(((unsigned int) NeutralAccX > 2048) || ((unsigned int) NeutralAccY > 2048)/* || ((unsigned int) NeutralAccZ > 1024)*/)
5522: 20 91 4d 04 lds r18, 0x044D
5526: 30 91 4e 04 lds r19, 0x044E
552a: 21 30 cpi r18, 0x01 ; 1
552c: 38 40 sbci r19, 0x08 ; 8
552e: 18 f4 brcc .+6 ; 0x5536 <SetNeutral+0x290>
5530: 81 30 cpi r24, 0x01 ; 1
5532: 98 40 sbci r25, 0x08 ; 8
5534: a8 f1 brcs .+106 ; 0x55a0 <SetNeutral+0x2fa>
{
printf("\n\rACC not calibrated!\r\n");
5536: 85 e0 ldi r24, 0x05 ; 5
5538: 93 e0 ldi r25, 0x03 ; 3
553a: 9f 93 push r25
553c: 8f 93 push r24
553e: 87 eb ldi r24, 0xB7 ; 183
5540: 9c ea ldi r25, 0xAC ; 172
5542: 9f 93 push r25
5544: 8f 93 push r24
5546: e0 91 78 06 lds r30, 0x0678
554a: f0 91 79 06 lds r31, 0x0679
554e: 09 95 icall
NeutralAccX = abs(Mittelwert_AccNick) / (2*ACC_AMPLIFY);
5550: 80 91 60 06 lds r24, 0x0660
5554: 90 91 61 06 lds r25, 0x0661
5558: 99 23 and r25, r25
555a: 1c f4 brge .+6 ; 0x5562 <SetNeutral+0x2bc>
555c: 91 95 neg r25
555e: 81 95 neg r24
5560: 91 09 sbc r25, r1
5562: 6c e0 ldi r22, 0x0C ; 12
5564: 70 e0 ldi r23, 0x00 ; 0
5566: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
556a: 70 93 4e 04 sts 0x044E, r23
556e: 60 93 4d 04 sts 0x044D, r22
NeutralAccY = abs(Mittelwert_AccRoll) / (2*ACC_AMPLIFY);
5572: 80 91 72 06 lds r24, 0x0672
5576: 90 91 73 06 lds r25, 0x0673
557a: 99 23 and r25, r25
557c: 1c f4 brge .+6 ; 0x5584 <SetNeutral+0x2de>
557e: 91 95 neg r25
5580: 81 95 neg r24
5582: 91 09 sbc r25, r1
5584: 6c e0 ldi r22, 0x0C ; 12
5586: 70 e0 ldi r23, 0x00 ; 0
5588: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
558c: 70 93 4c 04 sts 0x044C, r23
5590: 60 93 4b 04 sts 0x044B, r22
5594: 0f 90 pop r0
5596: 0f 90 pop r0
5598: 0f 90 pop r0
559a: 0f 90 pop r0
sucess = 0;
559c: d0 e0 ldi r29, 0x00 ; 0
559e: 01 c0 rjmp .+2 ; 0x55a2 <SetNeutral+0x2fc>
// Parameter: 2 -> calibrate and store ACC
// Parameter: 3 -> use stored Gyro calibration Data from EEPROM
unsigned char SetNeutral(unsigned char AdjustmentMode) // retuns: "sucess"
//############################################################################
{
unsigned char i, sucess = 1;
55a0: d1 e0 ldi r29, 0x01 ; 1
printf("\n\rACC not calibrated!\r\n");
NeutralAccX = abs(Mittelwert_AccNick) / (2*ACC_AMPLIFY);
NeutralAccY = abs(Mittelwert_AccRoll) / (2*ACC_AMPLIFY);
sucess = 0;
}
if(FC_StatusFlags3 & FC_STATUS3_BOAT) // Read Gyro Data from eeprom
55a2: 80 91 c9 03 lds r24, 0x03C9
55a6: 81 ff sbrs r24, 1
55a8: 3f c0 rjmp .+126 ; 0x5628 <SetNeutral+0x382>
{
unsigned int nick, roll, gier;
// restore from eeprom
nick = (int16_t)GetParamWord(PID_GYRO_NICK);
55aa: 82 e1 ldi r24, 0x12 ; 18
55ac: 90 e0 ldi r25, 0x00 ; 0
55ae: 70 da rcall .-2848 ; 0x4a90 <GetParamWord>
55b0: 8c 01 movw r16, r24
roll = (int16_t)GetParamWord(PID_GYRO_ROLL);
55b2: 84 e1 ldi r24, 0x14 ; 20
55b4: 90 e0 ldi r25, 0x00 ; 0
55b6: 6c da rcall .-2856 ; 0x4a90 <GetParamWord>
55b8: 7c 01 movw r14, r24
gier = (int16_t)GetParamWord(PID_GYRO_YAW);
55ba: 86 e1 ldi r24, 0x16 ; 22
55bc: 90 e0 ldi r25, 0x00 ; 0
55be: 68 da rcall .-2864 ; 0x4a90 <GetParamWord>
// strange settings?
if(((unsigned int) nick > (600 * 16)) || ((unsigned int) nick < (400 * 16))
55c0: 98 01 movw r18, r16
55c2: 39 51 subi r19, 0x19 ; 25
55c4: 21 38 cpi r18, 0x81 ; 129
55c6: 3c 40 sbci r19, 0x0C ; 12
55c8: 58 f4 brcc .+22 ; 0x55e0 <SetNeutral+0x33a>
|| ((unsigned int) roll > (600 * 16)) || ((unsigned int) roll < (400 * 16))
55ca: 97 01 movw r18, r14
55cc: 39 51 subi r19, 0x19 ; 25
55ce: 21 38 cpi r18, 0x81 ; 129
55d0: 3c 40 sbci r19, 0x0C ; 12
55d2: 30 f4 brcc .+12 ; 0x55e0 <SetNeutral+0x33a>
|| ((unsigned int) gier > (600 * 2)) || ((unsigned int) gier < (400 * 2)))
55d4: 9c 01 movw r18, r24
55d6: 20 52 subi r18, 0x20 ; 32
55d8: 33 40 sbci r19, 0x03 ; 3
55da: 21 39 cpi r18, 0x91 ; 145
55dc: 31 40 sbci r19, 0x01 ; 1
55de: c0 f0 brcs .+48 ; 0x5610 <SetNeutral+0x36a>
{
printf("\n\rGyro calibration data not valid\r\n");
55e0: 81 ee ldi r24, 0xE1 ; 225
55e2: 92 e0 ldi r25, 0x02 ; 2
55e4: 9f 93 push r25
55e6: 8f 93 push r24
55e8: 87 eb ldi r24, 0xB7 ; 183
55ea: 9c ea ldi r25, 0xAC ; 172
55ec: 9f 93 push r25
55ee: 8f 93 push r24
55f0: e0 91 78 06 lds r30, 0x0678
55f4: f0 91 79 06 lds r31, 0x0679
55f8: 09 95 icall
sucess = 0;
FC_StatusFlags3 &= ~FC_STATUS3_BOAT;
55fa: 80 91 c9 03 lds r24, 0x03C9
55fe: 8d 7f andi r24, 0xFD ; 253
5600: 80 93 c9 03 sts 0x03C9, r24
5604: 0f 90 pop r0
5606: 0f 90 pop r0
5608: 0f 90 pop r0
560a: 0f 90 pop r0
if(((unsigned int) nick > (600 * 16)) || ((unsigned int) nick < (400 * 16))
|| ((unsigned int) roll > (600 * 16)) || ((unsigned int) roll < (400 * 16))
|| ((unsigned int) gier > (600 * 2)) || ((unsigned int) gier < (400 * 2)))
{
printf("\n\rGyro calibration data not valid\r\n");
sucess = 0;
560c: d0 e0 ldi r29, 0x00 ; 0
FC_StatusFlags3 &= ~FC_STATUS3_BOAT;
560e: 0c c0 rjmp .+24 ; 0x5628 <SetNeutral+0x382>
}
else
{
AdNeutralNick = nick;
5610: 10 93 58 04 sts 0x0458, r17
5614: 00 93 57 04 sts 0x0457, r16
AdNeutralRoll = roll;
5618: f0 92 56 04 sts 0x0456, r15
561c: e0 92 55 04 sts 0x0455, r14
AdNeutralGier = gier;
5620: 90 93 54 04 sts 0x0454, r25
5624: 80 93 53 04 sts 0x0453, r24
}
}
}
EEAR = EE_DUMMY; // Set the EEPROM Address pointer to an unused space
5628: 12 bc out 0x22, r1 ; 34
562a: 11 bc out 0x21, r1 ; 33
MesswertNick = 0;
562c: 10 92 28 06 sts 0x0628, r1
5630: 10 92 27 06 sts 0x0627, r1
MesswertRoll = 0;
5634: 10 92 1d 06 sts 0x061D, r1
5638: 10 92 1c 06 sts 0x061C, r1
MesswertGier = 0;
563c: 10 92 68 06 sts 0x0668, r1
5640: 10 92 67 06 sts 0x0667, r1
Delay_ms_Mess(200);
5644: 88 ec ldi r24, 0xC8 ; 200
5646: 90 e0 ldi r25, 0x00 ; 0
5648: 0e 94 6e 9c call 0x138dc ; 0x138dc <Delay_ms_Mess>
Mittelwert_AccNick = ACC_AMPLIFY * AdWertAccNick;
564c: 80 91 5d 03 lds r24, 0x035D
5650: 90 91 5e 03 lds r25, 0x035E
5654: dc 01 movw r26, r24
5656: aa 0f add r26, r26
5658: bb 1f adc r27, r27
565a: 8a 0f add r24, r26
565c: 9b 1f adc r25, r27
565e: dc 01 movw r26, r24
5660: aa 0f add r26, r26
5662: bb 1f adc r27, r27
5664: b0 93 61 06 sts 0x0661, r27
5668: a0 93 60 06 sts 0x0660, r26
Mittelwert_AccRoll = ACC_AMPLIFY * AdWertAccRoll;
566c: 80 91 5f 03 lds r24, 0x035F
5670: 90 91 60 03 lds r25, 0x0360
5674: fc 01 movw r30, r24
5676: ee 0f add r30, r30
5678: ff 1f adc r31, r31
567a: 8e 0f add r24, r30
567c: 9f 1f adc r25, r31
567e: fc 01 movw r30, r24
5680: ee 0f add r30, r30
5682: ff 1f adc r31, r31
5684: f0 93 73 06 sts 0x0673, r31
5688: e0 93 72 06 sts 0x0672, r30
IntegralNick = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccNick;
568c: 80 90 5a 05 lds r8, 0x055A
5690: 91 2c mov r9, r1
5692: a1 2c mov r10, r1
5694: b1 2c mov r11, r1
5696: a5 01 movw r20, r10
5698: 94 01 movw r18, r8
569a: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
569e: 6b 01 movw r12, r22
56a0: 7c 01 movw r14, r24
56a2: 60 93 42 04 sts 0x0442, r22
56a6: 70 93 43 04 sts 0x0443, r23
56aa: 80 93 44 04 sts 0x0444, r24
56ae: 90 93 45 04 sts 0x0445, r25
IntegralRoll = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccRoll;
56b2: df 01 movw r26, r30
56b4: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
56b8: 60 93 3e 04 sts 0x043E, r22
56bc: 70 93 3f 04 sts 0x043F, r23
56c0: 80 93 40 04 sts 0x0440, r24
56c4: 90 93 41 04 sts 0x0441, r25
Mess_IntegralNick = IntegralNick;
56c8: c0 92 36 04 sts 0x0436, r12
56cc: d0 92 37 04 sts 0x0437, r13
56d0: e0 92 38 04 sts 0x0438, r14
56d4: f0 92 39 04 sts 0x0439, r15
Mess_IntegralRoll = IntegralRoll;
56d8: 60 93 32 04 sts 0x0432, r22
56dc: 70 93 33 04 sts 0x0433, r23
56e0: 80 93 34 04 sts 0x0434, r24
56e4: 90 93 35 04 sts 0x0435, r25
Mess_Integral_Gier = 0;
56e8: 10 92 2e 04 sts 0x042E, r1
56ec: 10 92 2f 04 sts 0x042F, r1
56f0: 10 92 30 04 sts 0x0430, r1
56f4: 10 92 31 04 sts 0x0431, r1
KompassSollWert = KompassValue;
56f8: e0 91 4e 01 lds r30, 0x014E
56fc: f0 91 4f 01 lds r31, 0x014F
5700: f0 93 1d 04 sts 0x041D, r31
5704: e0 93 1c 04 sts 0x041C, r30
KompassSignalSchlecht = 100;
5708: 84 e6 ldi r24, 0x64 ; 100
570a: 90 e0 ldi r25, 0x00 ; 0
570c: 90 93 4b 01 sts 0x014B, r25
5710: 80 93 4a 01 sts 0x014A, r24
Umschlag180Nick = ((long) EE_Parameter.WinkelUmschlagNick * 2500L) + 15000L;
5714: 20 91 7f 05 lds r18, 0x057F
5718: 30 e0 ldi r19, 0x00 ; 0
571a: a4 ec ldi r26, 0xC4 ; 196
571c: b9 e0 ldi r27, 0x09 ; 9
571e: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
5722: dc 01 movw r26, r24
5724: cb 01 movw r24, r22
5726: 88 56 subi r24, 0x68 ; 104
5728: 95 4c sbci r25, 0xC5 ; 197
572a: af 4f sbci r26, 0xFF ; 255
572c: bf 4f sbci r27, 0xFF ; 255
572e: 80 93 46 01 sts 0x0146, r24
5732: 90 93 47 01 sts 0x0147, r25
5736: a0 93 48 01 sts 0x0148, r26
573a: b0 93 49 01 sts 0x0149, r27
Umschlag180Roll = ((long) EE_Parameter.WinkelUmschlagRoll * 2500L) + 15000L;
573e: 20 91 80 05 lds r18, 0x0580
5742: 30 e0 ldi r19, 0x00 ; 0
5744: a4 ec ldi r26, 0xC4 ; 196
5746: b9 e0 ldi r27, 0x09 ; 9
5748: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
574c: dc 01 movw r26, r24
574e: cb 01 movw r24, r22
5750: 88 56 subi r24, 0x68 ; 104
5752: 95 4c sbci r25, 0xC5 ; 197
5754: af 4f sbci r26, 0xFF ; 255
5756: bf 4f sbci r27, 0xFF ; 255
5758: 80 93 42 01 sts 0x0142, r24
575c: 90 93 43 01 sts 0x0143, r25
5760: a0 93 44 01 sts 0x0144, r26
5764: b0 93 45 01 sts 0x0145, r27
ExternHoehenValue = 0;
5768: 10 92 26 01 sts 0x0126, r1
576c: 10 92 25 01 sts 0x0125, r1
ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR;
5770: 20 91 21 01 lds r18, 0x0121
5774: 30 91 22 01 lds r19, 0x0122
5778: 40 91 23 01 lds r20, 0x0123
577c: 50 91 24 01 lds r21, 0x0124
5780: df 01 movw r26, r30
5782: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
5786: 60 93 6e 06 sts 0x066E, r22
578a: 70 93 6f 06 sts 0x066F, r23
578e: 80 93 70 06 sts 0x0670, r24
5792: 90 93 71 06 sts 0x0671, r25
GierGyroFehler = 0;
5796: 10 92 19 04 sts 0x0419, r1
579a: 10 92 18 04 sts 0x0418, r1
LED_Init();
579e: 0e 94 80 85 call 0x10b00 ; 0x10b00 <LED_Init>
if(AdjustmentMode != 0) FC_StatusFlags |= FC_STATUS_CALIBRATE;
57a2: cc 23 and r28, r28
57a4: 29 f0 breq .+10 ; 0x57b0 <SetNeutral+0x50a>
57a6: 80 91 cb 03 lds r24, 0x03CB
57aa: 84 60 ori r24, 0x04 ; 4
57ac: 80 93 cb 03 sts 0x03CB, r24
FromNaviCtrl_Value.Kalman_K = -1;
57b0: 8f ef ldi r24, 0xFF ; 255
57b2: 80 93 4c 09 sts 0x094C, r24
FromNaviCtrl_Value.Kalman_MaxDrift = 0;
57b6: 10 92 4d 09 sts 0x094D, r1
FromNaviCtrl_Value.Kalman_MaxFusion = 32;
57ba: 80 e2 ldi r24, 0x20 ; 32
57bc: 80 93 4e 09 sts 0x094E, r24
SenderOkay = 100;
57c0: 84 e6 ldi r24, 0x64 ; 100
57c2: 80 93 04 04 sts 0x0404, r24
 
if(ServoActive) DDRD |=0x80; // enable J7 -> Servo signal
57c6: 80 91 cb 04 lds r24, 0x04CB
57ca: 88 23 and r24, r24
57cc: 11 f0 breq .+4 ; 0x57d2 <SetNeutral+0x52c>
57ce: 57 9a sbi 0x0a, 7 ; 10
57d0: 19 c0 rjmp .+50 ; 0x5804 <SetNeutral+0x55e>
57d2: 80 91 b7 05 lds r24, 0x05B7
57d6: 85 70 andi r24, 0x05 ; 5
else
{
if((EE_Parameter.ServoCompInvert & SERVO_NICK_INV) && (EE_Parameter.ServoCompInvert & SERVO_RELATIVE)) NickServoValue = 12000;//((128 + 60) * 4 * 16); // neutral position = upper 1/4// else
57d8: 85 30 cpi r24, 0x05 ; 5
57da: 39 f4 brne .+14 ; 0x57ea <SetNeutral+0x544>
57dc: 80 ee ldi r24, 0xE0 ; 224
57de: 9e e2 ldi r25, 0x2E ; 46
57e0: 90 93 a8 02 sts 0x02A8, r25
57e4: 80 93 a7 02 sts 0x02A7, r24
57e8: 06 c0 rjmp .+12 ; 0x57f6 <SetNeutral+0x550>
else NickServoValue = ((128 - 60) * 4 * 16); // neutral position = lower 1/4
57ea: 80 e0 ldi r24, 0x00 ; 0
57ec: 91 e1 ldi r25, 0x11 ; 17
57ee: 90 93 a8 02 sts 0x02A8, r25
57f2: 80 93 a7 02 sts 0x02A7, r24
CalculateServoSignals = 1;
57f6: 81 e0 ldi r24, 0x01 ; 1
57f8: 80 93 af 02 sts 0x02AF, r24
CalculateServo(); // nick
57fc: 0e 94 14 9d call 0x13a28 ; 0x13a28 <CalculateServo>
CalculateServo(); // roll
5800: 0e 94 14 9d call 0x13a28 ; 0x13a28 <CalculateServo>
}
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
signed int tilt1, tilt2;
tilt1 = (int)(IntegralNick/GIER_GRAD_FAKTOR); // nick angle in deg
5804: c0 90 21 01 lds r12, 0x0121
5808: d0 90 22 01 lds r13, 0x0122
580c: e0 90 23 01 lds r14, 0x0123
5810: f0 90 24 01 lds r15, 0x0124
tilt2 = (int)(IntegralRoll/GIER_GRAD_FAKTOR); // roll angle in deg
5814: 60 91 3e 04 lds r22, 0x043E
5818: 70 91 3f 04 lds r23, 0x043F
581c: 80 91 40 04 lds r24, 0x0440
5820: 90 91 41 04 lds r25, 0x0441
5824: a7 01 movw r20, r14
5826: 96 01 movw r18, r12
5828: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
582c: 49 01 movw r8, r18
582e: 5a 01 movw r10, r20
CalculateServo(); // roll
}
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
signed int tilt1, tilt2;
tilt1 = (int)(IntegralNick/GIER_GRAD_FAKTOR); // nick angle in deg
5830: 60 91 42 04 lds r22, 0x0442
5834: 70 91 43 04 lds r23, 0x0443
5838: 80 91 44 04 lds r24, 0x0444
583c: 90 91 45 04 lds r25, 0x0445
5840: a7 01 movw r20, r14
5842: 96 01 movw r18, r12
5844: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
tilt2 = (int)(IntegralRoll/GIER_GRAD_FAKTOR); // roll angle in deg
tilt1 = (int16_t)ihypot(tilt1,tilt2); // tilt angle over all
5848: b4 01 movw r22, r8
584a: c9 01 movw r24, r18
584c: 0e 94 a2 0d call 0x1b44 ; 0x1b44 <ihypot>
5850: 7c 01 movw r14, r24
CosAttitude = c_cos_8192(tilt1);
5852: 0e 94 2d 91 call 0x1225a ; 0x1225a <c_cos_8192>
5856: 9c 01 movw r18, r24
5858: 90 93 2e 06 sts 0x062E, r25
585c: 80 93 2d 06 sts 0x062D, r24
NeutralAccZ = (long)((long) (NeutralAccZ - 512) * 8192 + 4096) / CosAttitude + 512;
5860: 60 91 47 04 lds r22, 0x0447
5864: 70 91 48 04 lds r23, 0x0448
5868: 72 50 subi r23, 0x02 ; 2
586a: cb 01 movw r24, r22
586c: aa 27 eor r26, r26
586e: 97 fd sbrc r25, 7
5870: a0 95 com r26
5872: ba 2f mov r27, r26
5874: 07 2e mov r0, r23
5876: 7d e0 ldi r23, 0x0D ; 13
5878: 88 0f add r24, r24
587a: 99 1f adc r25, r25
587c: aa 1f adc r26, r26
587e: bb 1f adc r27, r27
5880: 7a 95 dec r23
5882: d1 f7 brne .-12 ; 0x5878 <SetNeutral+0x5d2>
5884: 70 2d mov r23, r0
5886: bc 01 movw r22, r24
5888: cd 01 movw r24, r26
588a: 70 5f subi r23, 0xF0 ; 240
588c: 8f 4f sbci r24, 0xFF ; 255
588e: 9f 4f sbci r25, 0xFF ; 255
5890: 44 27 eor r20, r20
5892: 37 fd sbrc r19, 7
5894: 40 95 com r20
5896: 54 2f mov r21, r20
5898: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
589c: c9 01 movw r24, r18
589e: b9 01 movw r22, r18
58a0: 7e 5f subi r23, 0xFE ; 254
58a2: 70 93 48 04 sts 0x0448, r23
58a6: 60 93 47 04 sts 0x0447, r22
if(tilt1 > 20) sucess = 0; // calibration must be within 20° Tilt angle
58aa: 65 e1 ldi r22, 0x15 ; 21
58ac: e6 16 cp r14, r22
58ae: f1 04 cpc r15, r1
58b0: 0c f0 brlt .+2 ; 0x58b4 <SetNeutral+0x60e>
58b2: d0 e0 ldi r29, 0x00 ; 0
if(AdjustmentMode != 0 && ACC_AltitudeControl) if((NeutralAccZ < 682 - 30) || (NeutralAccZ > 682 + 35)) { VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_TOP; sucess = 0;};
58b4: cc 23 and r28, r28
58b6: 79 f0 breq .+30 ; 0x58d6 <SetNeutral+0x630>
58b8: 60 91 c2 03 lds r22, 0x03C2
58bc: 66 23 and r22, r22
58be: 59 f0 breq .+22 ; 0x58d6 <SetNeutral+0x630>
58c0: 2c 58 subi r18, 0x8C ; 140
58c2: 31 09 sbc r19, r1
58c4: 22 34 cpi r18, 0x42 ; 66
58c6: 31 05 cpc r19, r1
58c8: 30 f0 brcs .+12 ; 0x58d6 <SetNeutral+0x630>
58ca: e2 e6 ldi r30, 0x62 ; 98
58cc: fa e0 ldi r31, 0x0A ; 10
58ce: 20 81 ld r18, Z
58d0: 20 62 ori r18, 0x20 ; 32
58d2: 20 83 st Z, r18
58d4: d0 e0 ldi r29, 0x00 ; 0
#else
NeutralAccZ = (int16_t)GetParamWord(PID_ACC_TOP);
EEAR = EE_DUMMY; // Set the EEPROM Address pointer to an unused space
#endif
if((AdNeutralNick < 150 * 16) || (AdNeutralNick > 850 * 16)) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_NICK; };
58d6: 20 91 57 04 lds r18, 0x0457
58da: 30 91 58 04 lds r19, 0x0458
58de: 20 56 subi r18, 0x60 ; 96
58e0: 39 40 sbci r19, 0x09 ; 9
58e2: 21 3c cpi r18, 0xC1 ; 193
58e4: 3b 42 sbci r19, 0x2B ; 43
58e6: 28 f0 brcs .+10 ; 0x58f2 <SetNeutral+0x64c>
58e8: e2 e6 ldi r30, 0x62 ; 98
58ea: fa e0 ldi r31, 0x0A ; 10
58ec: 20 81 ld r18, Z
58ee: 21 60 ori r18, 0x01 ; 1
58f0: 20 83 st Z, r18
if((AdNeutralRoll < 150 * 16) || (AdNeutralRoll > 850 * 16)) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_ROLL; };
58f2: 20 91 55 04 lds r18, 0x0455
58f6: 30 91 56 04 lds r19, 0x0456
58fa: 20 56 subi r18, 0x60 ; 96
58fc: 39 40 sbci r19, 0x09 ; 9
58fe: 21 3c cpi r18, 0xC1 ; 193
5900: 3b 42 sbci r19, 0x2B ; 43
5902: 28 f0 brcs .+10 ; 0x590e <SetNeutral+0x668>
5904: e2 e6 ldi r30, 0x62 ; 98
5906: fa e0 ldi r31, 0x0A ; 10
5908: 20 81 ld r18, Z
590a: 22 60 ori r18, 0x02 ; 2
590c: 20 83 st Z, r18
if((AdNeutralGier < 150 * 2) || (AdNeutralGier > 850 * 2)) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_YAW; };
590e: 20 91 53 04 lds r18, 0x0453
5912: 30 91 54 04 lds r19, 0x0454
5916: 2c 52 subi r18, 0x2C ; 44
5918: 31 40 sbci r19, 0x01 ; 1
591a: 29 37 cpi r18, 0x79 ; 121
591c: 35 40 sbci r19, 0x05 ; 5
591e: 28 f0 brcs .+10 ; 0x592a <SetNeutral+0x684>
5920: e2 e6 ldi r30, 0x62 ; 98
5922: fa e0 ldi r31, 0x0A ; 10
5924: 20 81 ld r18, Z
5926: 24 60 ori r18, 0x04 ; 4
5928: 20 83 st Z, r18
if((NeutralAccX < 300) || (NeutralAccX > 750)) { VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_NICK; };
592a: 20 91 4d 04 lds r18, 0x044D
592e: 30 91 4e 04 lds r19, 0x044E
5932: 2c 52 subi r18, 0x2C ; 44
5934: 31 40 sbci r19, 0x01 ; 1
5936: 23 3c cpi r18, 0xC3 ; 195
5938: 31 40 sbci r19, 0x01 ; 1
593a: 28 f0 brcs .+10 ; 0x5946 <SetNeutral+0x6a0>
593c: e2 e6 ldi r30, 0x62 ; 98
593e: fa e0 ldi r31, 0x0A ; 10
5940: 20 81 ld r18, Z
5942: 28 60 ori r18, 0x08 ; 8
5944: 20 83 st Z, r18
if((NeutralAccY < 300) || (NeutralAccY > 750)) { VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_ROLL; };
5946: 20 91 4b 04 lds r18, 0x044B
594a: 30 91 4c 04 lds r19, 0x044C
594e: 2c 52 subi r18, 0x2C ; 44
5950: 31 40 sbci r19, 0x01 ; 1
5952: 23 3c cpi r18, 0xC3 ; 195
5954: 31 40 sbci r19, 0x01 ; 1
5956: 28 f0 brcs .+10 ; 0x5962 <SetNeutral+0x6bc>
5958: e2 e6 ldi r30, 0x62 ; 98
595a: fa e0 ldi r31, 0x0A ; 10
595c: 20 81 ld r18, Z
595e: 20 61 ori r18, 0x10 ; 16
5960: 20 83 st Z, r18
if((NeutralAccZ < 512) || (NeutralAccZ > 850)) { VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_TOP; };
5962: 83 35 cpi r24, 0x53 ; 83
5964: 91 40 sbci r25, 0x01 ; 1
5966: 28 f0 brcs .+10 ; 0x5972 <SetNeutral+0x6cc>
5968: e2 e6 ldi r30, 0x62 ; 98
596a: fa e0 ldi r31, 0x0A ; 10
596c: 80 81 ld r24, Z
596e: 80 62 ori r24, 0x20 ; 32
5970: 80 83 st Z, r24
if(VersionInfo.HardwareError[0]) sucess = 0;
5972: 80 91 62 0a lds r24, 0x0A62
5976: 81 11 cpse r24, r1
5978: d0 e0 ldi r29, 0x00 ; 0
carefree_old = 70;
597a: 86 e4 ldi r24, 0x46 ; 70
597c: 80 93 3d 01 sts 0x013D, r24
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
LIBFC_HoTT_Clear();
5980: 0e 94 3a 15 call 0x2a74 ; 0x2a74 <LIBFC_HoTT_Clear>
ACC_AltitudeFusion(2); // initalisation
5984: 82 e0 ldi r24, 0x02 ; 2
5986: 0e 94 a0 16 call 0x2d40 ; 0x2d40 <ACC_AltitudeFusion>
#endif
StartLuftdruck = Luftdruck;
598a: 80 91 12 01 lds r24, 0x0112
598e: 90 91 13 01 lds r25, 0x0113
5992: a0 91 14 01 lds r26, 0x0114
5996: b0 91 15 01 lds r27, 0x0115
599a: 80 93 08 05 sts 0x0508, r24
599e: 90 93 09 05 sts 0x0509, r25
59a2: a0 93 0a 05 sts 0x050A, r26
59a6: b0 93 0b 05 sts 0x050B, r27
VarioMeter = 0;
59aa: 10 92 55 03 sts 0x0355, r1
59ae: 10 92 54 03 sts 0x0354, r1
SummenHoehe = 0; Mess_Integral_Hoch = 0;
59b2: 10 92 57 03 sts 0x0357, r1
59b6: 10 92 58 03 sts 0x0358, r1
59ba: 10 92 59 03 sts 0x0359, r1
59be: 10 92 5a 03 sts 0x035A, r1
59c2: 10 92 1e 04 sts 0x041E, r1
59c6: 10 92 1f 04 sts 0x041F, r1
59ca: 10 92 20 04 sts 0x0420, r1
59ce: 10 92 21 04 sts 0x0421, r1
DebugOut.Analog[28] = 0; // I2C-Counter
59d2: 10 92 81 0c sts 0x0C81, r1
59d6: 10 92 80 0c sts 0x0C80, r1
CalcExpandBaroStep();
59da: 0e 94 14 1b call 0x3628 ; 0x3628 <CalcExpandBaroStep>
if(FC_StatusFlags3 & FC_STATUS3_BOAT && !EE_Parameter.Driftkomp) EE_Parameter.Driftkomp = 4;
59de: 80 91 c9 03 lds r24, 0x03C9
59e2: 81 ff sbrs r24, 1
59e4: 07 c0 rjmp .+14 ; 0x59f4 <SetNeutral+0x74e>
59e6: 80 91 82 05 lds r24, 0x0582
59ea: 81 11 cpse r24, r1
59ec: 03 c0 rjmp .+6 ; 0x59f4 <SetNeutral+0x74e>
59ee: 84 e0 ldi r24, 0x04 ; 4
59f0: 80 93 82 05 sts 0x0582, r24
return(sucess);
}
59f4: 8d 2f mov r24, r29
59f6: df 91 pop r29
59f8: cf 91 pop r28
59fa: 1f 91 pop r17
59fc: 0f 91 pop r16
59fe: ff 90 pop r15
5a00: ef 90 pop r14
5a02: df 90 pop r13
5a04: cf 90 pop r12
5a06: bf 90 pop r11
5a08: af 90 pop r10
5a0a: 9f 90 pop r9
5a0c: 8f 90 pop r8
5a0e: 08 95 ret
 
00005a10 <Mittelwert>:
 
//############################################################################
// Bearbeitet die Messwerte
void Mittelwert(void)
//############################################################################
{
5a10: 2f 92 push r2
5a12: 3f 92 push r3
5a14: 4f 92 push r4
5a16: 5f 92 push r5
5a18: 6f 92 push r6
5a1a: 7f 92 push r7
5a1c: 8f 92 push r8
5a1e: 9f 92 push r9
5a20: af 92 push r10
5a22: bf 92 push r11
5a24: cf 92 push r12
5a26: df 92 push r13
5a28: ef 92 push r14
5a2a: ff 92 push r15
5a2c: 0f 93 push r16
5a2e: 1f 93 push r17
5a30: cf 93 push r28
5a32: df 93 push r29
5a34: cd b7 in r28, 0x3d ; 61
5a36: de b7 in r29, 0x3e ; 62
5a38: 60 97 sbiw r28, 0x10 ; 16
5a3a: 0f b6 in r0, 0x3f ; 63
5a3c: f8 94 cli
5a3e: de bf out 0x3e, r29 ; 62
5a40: 0f be out 0x3f, r0 ; 63
5a42: cd bf out 0x3d, r28 ; 61
static signed long tmpl,tmpl2,tmpl3,tmpl4;
static signed int oldNick, oldRoll, d2Roll, d2Nick;
signed long winkel_nick, winkel_roll;
MesswertGier = (signed int) AdNeutralGier - AdWertGier;
5a44: 20 91 61 03 lds r18, 0x0361
5a48: 30 91 62 03 lds r19, 0x0362
5a4c: 80 91 53 04 lds r24, 0x0453
5a50: 90 91 54 04 lds r25, 0x0454
5a54: 82 1b sub r24, r18
5a56: 93 0b sbc r25, r19
5a58: 90 93 68 06 sts 0x0668, r25
5a5c: 80 93 67 06 sts 0x0667, r24
MesswertNick = (signed int) AdWertNickFilter / 8;
5a60: 80 91 69 03 lds r24, 0x0369
5a64: 90 91 6a 03 lds r25, 0x036A
5a68: 99 23 and r25, r25
5a6a: 0c f4 brge .+2 ; 0x5a6e <Mittelwert+0x5e>
5a6c: 07 96 adiw r24, 0x07 ; 7
5a6e: 9c 01 movw r18, r24
5a70: 35 95 asr r19
5a72: 27 95 ror r18
5a74: 35 95 asr r19
5a76: 27 95 ror r18
5a78: 35 95 asr r19
5a7a: 27 95 ror r18
5a7c: 30 93 28 06 sts 0x0628, r19
5a80: 20 93 27 06 sts 0x0627, r18
MesswertRoll = (signed int) AdWertRollFilter / 8;
5a84: 80 91 67 03 lds r24, 0x0367
5a88: 90 91 68 03 lds r25, 0x0368
5a8c: 99 23 and r25, r25
5a8e: 0c f4 brge .+2 ; 0x5a92 <Mittelwert+0x82>
5a90: 07 96 adiw r24, 0x07 ; 7
5a92: 95 95 asr r25
5a94: 87 95 ror r24
5a96: 95 95 asr r25
5a98: 87 95 ror r24
5a9a: 95 95 asr r25
5a9c: 87 95 ror r24
5a9e: 90 93 1d 06 sts 0x061D, r25
5aa2: 80 93 1c 06 sts 0x061C, r24
RohMesswertNick = MesswertNick;
5aa6: 30 93 30 06 sts 0x0630, r19
5aaa: 20 93 2f 06 sts 0x062F, r18
RohMesswertRoll = MesswertRoll;
5aae: 90 93 2b 06 sts 0x062B, r25
5ab2: 80 93 2a 06 sts 0x062A, r24
 
// Beschleunigungssensor ++++++++++++++++++++++++++++++++++++++++++++++++
Mittelwert_AccNick = (Mittelwert_AccNick * 3 + ((ACC_AMPLIFY * AdWertAccNick))) / 4L;
5ab6: 20 91 5d 03 lds r18, 0x035D
5aba: 30 91 5e 03 lds r19, 0x035E
5abe: 80 91 60 06 lds r24, 0x0660
5ac2: 90 91 61 06 lds r25, 0x0661
5ac6: ac 01 movw r20, r24
5ac8: 44 0f add r20, r20
5aca: 55 1f adc r21, r21
5acc: 84 0f add r24, r20
5ace: 95 1f adc r25, r21
5ad0: a9 01 movw r20, r18
5ad2: 44 0f add r20, r20
5ad4: 55 1f adc r21, r21
5ad6: 24 0f add r18, r20
5ad8: 35 1f adc r19, r21
5ada: 22 0f add r18, r18
5adc: 33 1f adc r19, r19
5ade: 82 0f add r24, r18
5ae0: 93 1f adc r25, r19
5ae2: 99 23 and r25, r25
5ae4: 0c f4 brge .+2 ; 0x5ae8 <Mittelwert+0xd8>
5ae6: 03 96 adiw r24, 0x03 ; 3
5ae8: 95 95 asr r25
5aea: 87 95 ror r24
5aec: 95 95 asr r25
5aee: 87 95 ror r24
5af0: 90 93 61 06 sts 0x0661, r25
5af4: 80 93 60 06 sts 0x0660, r24
Mittelwert_AccRoll = (Mittelwert_AccRoll * 3 + ((ACC_AMPLIFY * AdWertAccRoll))) / 4L;
5af8: 20 91 5f 03 lds r18, 0x035F
5afc: 30 91 60 03 lds r19, 0x0360
5b00: 80 91 72 06 lds r24, 0x0672
5b04: 90 91 73 06 lds r25, 0x0673
5b08: ac 01 movw r20, r24
5b0a: 44 0f add r20, r20
5b0c: 55 1f adc r21, r21
5b0e: 84 0f add r24, r20
5b10: 95 1f adc r25, r21
5b12: a9 01 movw r20, r18
5b14: 44 0f add r20, r20
5b16: 55 1f adc r21, r21
5b18: 24 0f add r18, r20
5b1a: 35 1f adc r19, r21
5b1c: 22 0f add r18, r18
5b1e: 33 1f adc r19, r19
5b20: 82 0f add r24, r18
5b22: 93 1f adc r25, r19
5b24: 99 23 and r25, r25
5b26: 0c f4 brge .+2 ; 0x5b2a <Mittelwert+0x11a>
5b28: 03 96 adiw r24, 0x03 ; 3
5b2a: 95 95 asr r25
5b2c: 87 95 ror r24
5b2e: 95 95 asr r25
5b30: 87 95 ror r24
5b32: 90 93 73 06 sts 0x0673, r25
5b36: 80 93 72 06 sts 0x0672, r24
NaviAccNick += AdWertAccNick;
5b3a: 80 91 5d 03 lds r24, 0x035D
5b3e: 90 91 5e 03 lds r25, 0x035E
5b42: 20 91 39 06 lds r18, 0x0639
5b46: 30 91 3a 06 lds r19, 0x063A
5b4a: 82 0f add r24, r18
5b4c: 93 1f adc r25, r19
5b4e: 90 93 3a 06 sts 0x063A, r25
5b52: 80 93 39 06 sts 0x0639, r24
NaviAccRoll += AdWertAccRoll;
5b56: 80 91 5f 03 lds r24, 0x035F
5b5a: 90 91 60 03 lds r25, 0x0360
5b5e: 20 91 6a 06 lds r18, 0x066A
5b62: 30 91 6b 06 lds r19, 0x066B
5b66: 82 0f add r24, r18
5b68: 93 1f adc r25, r19
5b6a: 90 93 6b 06 sts 0x066B, r25
5b6e: 80 93 6a 06 sts 0x066A, r24
NaviCntAcc++;
5b72: 80 91 49 04 lds r24, 0x0449
5b76: 90 91 4a 04 lds r25, 0x044A
5b7a: 01 96 adiw r24, 0x01 ; 1
5b7c: 90 93 4a 04 sts 0x044A, r25
5b80: 80 93 49 04 sts 0x0449, r24
 
//++++++++++++++++++++++++++++++++++++++++++++++++
HoehenWert = HoehenWert_Mess;
5b84: 80 91 46 03 lds r24, 0x0346
5b88: 90 91 47 03 lds r25, 0x0347
5b8c: a0 91 48 03 lds r26, 0x0348
5b90: b0 91 49 03 lds r27, 0x0349
5b94: 80 93 fe 03 sts 0x03FE, r24
5b98: 90 93 ff 03 sts 0x03FF, r25
5b9c: a0 93 00 04 sts 0x0400, r26
5ba0: b0 93 01 04 sts 0x0401, r27
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
HoehenWertF = HoehenWertF_Mess;
5ba4: 80 91 42 03 lds r24, 0x0342
5ba8: 90 91 43 03 lds r25, 0x0343
5bac: a0 91 44 03 lds r26, 0x0344
5bb0: b0 91 45 03 lds r27, 0x0345
5bb4: 80 93 4a 03 sts 0x034A, r24
5bb8: 90 93 4b 03 sts 0x034B, r25
5bbc: a0 93 4c 03 sts 0x034C, r26
5bc0: b0 93 4d 03 sts 0x034D, r27
#else
HoehenWertF = HoehenWert;
#endif
//++++++++++++++++++++++++++++++++++++++++++++++++
// ADC einschalten
ANALOG_ON;
5bc4: 8f ec ldi r24, 0xCF ; 207
5bc6: 80 93 7a 00 sts 0x007A, r24
AdReady = 0;
5bca: 10 92 0f 01 sts 0x010F, r1
//++++++++++++++++++++++++++++++++++++++++++++++++
 
if(Mess_IntegralRoll > 93000L) winkel_roll = 93000L;
5bce: 00 91 32 04 lds r16, 0x0432
5bd2: 10 91 33 04 lds r17, 0x0433
5bd6: 70 91 34 04 lds r23, 0x0434
5bda: 60 91 35 04 lds r22, 0x0435
else if(Mess_IntegralRoll <-93000L) winkel_roll = -93000L;
else winkel_roll = Mess_IntegralRoll;
 
if(Mess_IntegralNick > 93000L) winkel_nick = 93000L;
5bde: 50 91 36 04 lds r21, 0x0436
5be2: 40 91 37 04 lds r20, 0x0437
5be6: 30 91 38 04 lds r19, 0x0438
5bea: 20 91 39 04 lds r18, 0x0439
else if(Mess_IntegralNick <-93000L) winkel_nick = -93000L;
else winkel_nick = Mess_IntegralNick;
 
// Gier ++++++++++++++++++++++++++++++++++++++++++++++++
Mess_Integral_Gier += MesswertGier;
5bee: 20 90 67 06 lds r2, 0x0667
5bf2: 30 90 68 06 lds r3, 0x0668
5bf6: 61 01 movw r12, r2
5bf8: ee 24 eor r14, r14
5bfa: d7 fc sbrc r13, 7
5bfc: e0 94 com r14
5bfe: fe 2c mov r15, r14
5c00: 80 91 2e 04 lds r24, 0x042E
5c04: 90 91 2f 04 lds r25, 0x042F
5c08: a0 91 30 04 lds r26, 0x0430
5c0c: b0 91 31 04 lds r27, 0x0431
5c10: 46 01 movw r8, r12
5c12: 57 01 movw r10, r14
5c14: 88 0e add r8, r24
5c16: 99 1e adc r9, r25
5c18: aa 1e adc r10, r26
5c1a: bb 1e adc r11, r27
5c1c: 80 92 2e 04 sts 0x042E, r8
5c20: 90 92 2f 04 sts 0x042F, r9
5c24: a0 92 30 04 sts 0x0430, r10
5c28: b0 92 31 04 sts 0x0431, r11
ErsatzKompass += MesswertGier;
5c2c: 80 91 6e 06 lds r24, 0x066E
5c30: 90 91 6f 06 lds r25, 0x066F
5c34: a0 91 70 06 lds r26, 0x0670
5c38: b0 91 71 06 lds r27, 0x0671
5c3c: 26 01 movw r4, r12
5c3e: 37 01 movw r6, r14
5c40: 48 0e add r4, r24
5c42: 59 1e adc r5, r25
5c44: 6a 1e adc r6, r26
5c46: 7b 1e adc r7, r27
5c48: 40 92 6e 06 sts 0x066E, r4
5c4c: 50 92 6f 06 sts 0x066F, r5
5c50: 60 92 70 06 sts 0x0670, r6
5c54: 70 92 71 06 sts 0x0671, r7
// Kopplungsanteil +++++++++++++++++++++++++++++++++++++
if(!Looping_Nick && !Looping_Roll && (Parameter_GlobalConfig & CFG_ACHSENKOPPLUNG_AKTIV))
5c58: 80 91 e7 03 lds r24, 0x03E7
5c5c: 81 11 cpse r24, r1
5c5e: c5 c1 rjmp .+906 ; 0x5fea <Mittelwert+0x5da>
5c60: 80 91 e6 03 lds r24, 0x03E6
5c64: 81 11 cpse r24, r1
5c66: c1 c1 rjmp .+898 ; 0x5fea <Mittelwert+0x5da>
5c68: 80 91 5c 06 lds r24, 0x065C
5c6c: 86 ff sbrs r24, 6
5c6e: bd c1 rjmp .+890 ; 0x5fea <Mittelwert+0x5da>
5c70: 09 87 std Y+9, r16 ; 0x09
5c72: 1a 87 std Y+10, r17 ; 0x0a
5c74: 7b 87 std Y+11, r23 ; 0x0b
5c76: 6c 87 std Y+12, r22 ; 0x0c
5c78: 89 85 ldd r24, Y+9 ; 0x09
5c7a: 9a 85 ldd r25, Y+10 ; 0x0a
5c7c: ab 85 ldd r26, Y+11 ; 0x0b
5c7e: bc 85 ldd r27, Y+12 ; 0x0c
5c80: 88 3b cpi r24, 0xB8 ; 184
5c82: 94 49 sbci r25, 0x94 ; 148
5c84: ae 4f sbci r26, 0xFE ; 254
5c86: bf 4f sbci r27, 0xFF ; 255
5c88: 44 f4 brge .+16 ; 0x5c9a <Mittelwert+0x28a>
5c8a: 88 eb ldi r24, 0xB8 ; 184
5c8c: 94 e9 ldi r25, 0x94 ; 148
5c8e: ae ef ldi r26, 0xFE ; 254
5c90: bf ef ldi r27, 0xFF ; 255
5c92: 89 87 std Y+9, r24 ; 0x09
5c94: 9a 87 std Y+10, r25 ; 0x0a
5c96: ab 87 std Y+11, r26 ; 0x0b
5c98: bc 87 std Y+12, r27 ; 0x0c
5c9a: 89 85 ldd r24, Y+9 ; 0x09
5c9c: 9a 85 ldd r25, Y+10 ; 0x0a
5c9e: ab 85 ldd r26, Y+11 ; 0x0b
5ca0: bc 85 ldd r27, Y+12 ; 0x0c
5ca2: 89 34 cpi r24, 0x49 ; 73
5ca4: 9b 46 sbci r25, 0x6B ; 107
5ca6: a1 40 sbci r26, 0x01 ; 1
5ca8: b1 05 cpc r27, r1
5caa: 44 f0 brlt .+16 ; 0x5cbc <Mittelwert+0x2ac>
5cac: 88 e4 ldi r24, 0x48 ; 72
5cae: 9b e6 ldi r25, 0x6B ; 107
5cb0: a1 e0 ldi r26, 0x01 ; 1
5cb2: b0 e0 ldi r27, 0x00 ; 0
5cb4: 89 87 std Y+9, r24 ; 0x09
5cb6: 9a 87 std Y+10, r25 ; 0x0a
5cb8: ab 87 std Y+11, r26 ; 0x0b
5cba: bc 87 std Y+12, r27 ; 0x0c
5cbc: 85 2f mov r24, r21
5cbe: 94 2f mov r25, r20
5cc0: a3 2f mov r26, r19
5cc2: b2 2f mov r27, r18
5cc4: 88 3b cpi r24, 0xB8 ; 184
5cc6: e4 e9 ldi r30, 0x94 ; 148
5cc8: 9e 07 cpc r25, r30
5cca: ee ef ldi r30, 0xFE ; 254
5ccc: ae 07 cpc r26, r30
5cce: ef ef ldi r30, 0xFF ; 255
5cd0: be 07 cpc r27, r30
5cd2: 24 f4 brge .+8 ; 0x5cdc <Mittelwert+0x2cc>
5cd4: 88 eb ldi r24, 0xB8 ; 184
5cd6: 94 e9 ldi r25, 0x94 ; 148
5cd8: ae ef ldi r26, 0xFE ; 254
5cda: bf ef ldi r27, 0xFF ; 255
5cdc: 8d 83 std Y+5, r24 ; 0x05
5cde: 9e 83 std Y+6, r25 ; 0x06
5ce0: af 83 std Y+7, r26 ; 0x07
5ce2: b8 87 std Y+8, r27 ; 0x08
5ce4: 89 34 cpi r24, 0x49 ; 73
5ce6: 9b 46 sbci r25, 0x6B ; 107
5ce8: a1 40 sbci r26, 0x01 ; 1
5cea: b1 05 cpc r27, r1
5cec: 44 f0 brlt .+16 ; 0x5cfe <Mittelwert+0x2ee>
5cee: 08 e4 ldi r16, 0x48 ; 72
5cf0: 1b e6 ldi r17, 0x6B ; 107
5cf2: 21 e0 ldi r18, 0x01 ; 1
5cf4: 30 e0 ldi r19, 0x00 ; 0
5cf6: 0d 83 std Y+5, r16 ; 0x05
5cf8: 1e 83 std Y+6, r17 ; 0x06
5cfa: 2f 83 std Y+7, r18 ; 0x07
5cfc: 38 87 std Y+8, r19 ; 0x08
{
tmpl3 = (MesswertRoll * winkel_nick) / 2048L;
tmpl3 *= Parameter_AchsKopplung2; //65
5cfe: 80 91 29 01 lds r24, 0x0129
5d02: 08 2f mov r16, r24
5d04: 10 e0 ldi r17, 0x00 ; 0
5d06: 20 e0 ldi r18, 0x00 ; 0
5d08: 30 e0 ldi r19, 0x00 ; 0
5d0a: 0d 87 std Y+13, r16 ; 0x0d
5d0c: 1e 87 std Y+14, r17 ; 0x0e
5d0e: 2f 87 std Y+15, r18 ; 0x0f
5d10: 38 8b std Y+16, r19 ; 0x10
Mess_Integral_Gier += MesswertGier;
ErsatzKompass += MesswertGier;
// Kopplungsanteil +++++++++++++++++++++++++++++++++++++
if(!Looping_Nick && !Looping_Roll && (Parameter_GlobalConfig & CFG_ACHSENKOPPLUNG_AKTIV))
{
tmpl3 = (MesswertRoll * winkel_nick) / 2048L;
5d12: a0 91 1c 06 lds r26, 0x061C
5d16: b0 91 1d 06 lds r27, 0x061D
5d1a: 2d 81 ldd r18, Y+5 ; 0x05
5d1c: 3e 81 ldd r19, Y+6 ; 0x06
5d1e: 4f 81 ldd r20, Y+7 ; 0x07
5d20: 58 85 ldd r21, Y+8 ; 0x08
5d22: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
5d26: 8b 01 movw r16, r22
5d28: 9c 01 movw r18, r24
5d2a: 99 23 and r25, r25
5d2c: 24 f4 brge .+8 ; 0x5d36 <Mittelwert+0x326>
5d2e: 01 50 subi r16, 0x01 ; 1
5d30: 18 4f sbci r17, 0xF8 ; 248
5d32: 2f 4f sbci r18, 0xFF ; 255
5d34: 3f 4f sbci r19, 0xFF ; 255
5d36: a9 01 movw r20, r18
5d38: 98 01 movw r18, r16
5d3a: 01 2e mov r0, r17
5d3c: 1b e0 ldi r17, 0x0B ; 11
5d3e: 55 95 asr r21
5d40: 47 95 ror r20
5d42: 37 95 ror r19
5d44: 27 95 ror r18
5d46: 1a 95 dec r17
5d48: d1 f7 brne .-12 ; 0x5d3e <Mittelwert+0x32e>
5d4a: 10 2d mov r17, r0
tmpl3 *= Parameter_AchsKopplung2; //65
5d4c: 6d 85 ldd r22, Y+13 ; 0x0d
5d4e: 7e 85 ldd r23, Y+14 ; 0x0e
5d50: 8f 85 ldd r24, Y+15 ; 0x0f
5d52: 98 89 ldd r25, Y+16 ; 0x10
5d54: 0e 94 27 b1 call 0x1624e ; 0x1624e <__mulsi3>
tmpl3 /= 4096L;
5d58: 8b 01 movw r16, r22
5d5a: 9c 01 movw r18, r24
5d5c: 99 23 and r25, r25
5d5e: 24 f4 brge .+8 ; 0x5d68 <Mittelwert+0x358>
5d60: 01 50 subi r16, 0x01 ; 1
5d62: 10 4f sbci r17, 0xF0 ; 240
5d64: 2f 4f sbci r18, 0xFF ; 255
5d66: 3f 4f sbci r19, 0xFF ; 255
5d68: d9 01 movw r26, r18
5d6a: c8 01 movw r24, r16
5d6c: 07 2e mov r0, r23
5d6e: 7c e0 ldi r23, 0x0C ; 12
5d70: b5 95 asr r27
5d72: a7 95 ror r26
5d74: 97 95 ror r25
5d76: 87 95 ror r24
5d78: 7a 95 dec r23
5d7a: d1 f7 brne .-12 ; 0x5d70 <Mittelwert+0x360>
5d7c: 70 2d mov r23, r0
5d7e: 89 83 std Y+1, r24 ; 0x01
5d80: 9a 83 std Y+2, r25 ; 0x02
5d82: ab 83 std Y+3, r26 ; 0x03
5d84: bc 83 std Y+4, r27 ; 0x04
5d86: 80 93 b8 03 sts 0x03B8, r24
5d8a: 90 93 b9 03 sts 0x03B9, r25
5d8e: a0 93 ba 03 sts 0x03BA, r26
5d92: b0 93 bb 03 sts 0x03BB, r27
tmpl4 = (MesswertNick * winkel_roll) / 2048L;
5d96: a0 91 27 06 lds r26, 0x0627
5d9a: b0 91 28 06 lds r27, 0x0628
5d9e: 29 85 ldd r18, Y+9 ; 0x09
5da0: 3a 85 ldd r19, Y+10 ; 0x0a
5da2: 4b 85 ldd r20, Y+11 ; 0x0b
5da4: 5c 85 ldd r21, Y+12 ; 0x0c
5da6: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
5daa: 8b 01 movw r16, r22
5dac: 9c 01 movw r18, r24
5dae: 99 23 and r25, r25
5db0: 24 f4 brge .+8 ; 0x5dba <Mittelwert+0x3aa>
5db2: 01 50 subi r16, 0x01 ; 1
5db4: 18 4f sbci r17, 0xF8 ; 248
5db6: 2f 4f sbci r18, 0xFF ; 255
5db8: 3f 4f sbci r19, 0xFF ; 255
5dba: c9 01 movw r24, r18
5dbc: b8 01 movw r22, r16
5dbe: 05 2e mov r0, r21
5dc0: 5b e0 ldi r21, 0x0B ; 11
5dc2: 95 95 asr r25
5dc4: 87 95 ror r24
5dc6: 77 95 ror r23
5dc8: 67 95 ror r22
5dca: 5a 95 dec r21
5dcc: d1 f7 brne .-12 ; 0x5dc2 <Mittelwert+0x3b2>
5dce: 50 2d mov r21, r0
tmpl4 *= Parameter_AchsKopplung2; //65
5dd0: 2d 85 ldd r18, Y+13 ; 0x0d
5dd2: 3e 85 ldd r19, Y+14 ; 0x0e
5dd4: 4f 85 ldd r20, Y+15 ; 0x0f
5dd6: 58 89 ldd r21, Y+16 ; 0x10
5dd8: 0e 94 27 b1 call 0x1624e ; 0x1624e <__mulsi3>
tmpl4 /= 4096L;
5ddc: 8b 01 movw r16, r22
5dde: 9c 01 movw r18, r24
5de0: 99 23 and r25, r25
5de2: 24 f4 brge .+8 ; 0x5dec <Mittelwert+0x3dc>
5de4: 01 50 subi r16, 0x01 ; 1
5de6: 10 4f sbci r17, 0xF0 ; 240
5de8: 2f 4f sbci r18, 0xFF ; 255
5dea: 3f 4f sbci r19, 0xFF ; 255
5dec: d9 01 movw r26, r18
5dee: c8 01 movw r24, r16
5df0: 07 2e mov r0, r23
5df2: 7c e0 ldi r23, 0x0C ; 12
5df4: b5 95 asr r27
5df6: a7 95 ror r26
5df8: 97 95 ror r25
5dfa: 87 95 ror r24
5dfc: 7a 95 dec r23
5dfe: d1 f7 brne .-12 ; 0x5df4 <Mittelwert+0x3e4>
5e00: 70 2d mov r23, r0
KopplungsteilNickRoll = tmpl3;
5e02: e9 81 ldd r30, Y+1 ; 0x01
5e04: fa 81 ldd r31, Y+2 ; 0x02
5e06: f0 93 16 06 sts 0x0616, r31
5e0a: e0 93 15 06 sts 0x0615, r30
KopplungsteilRollNick = tmpl4;
5e0e: 90 93 18 06 sts 0x0618, r25
5e12: 80 93 17 06 sts 0x0617, r24
tmpl4 -= tmpl3;
5e16: 09 81 ldd r16, Y+1 ; 0x01
5e18: 1a 81 ldd r17, Y+2 ; 0x02
5e1a: 2b 81 ldd r18, Y+3 ; 0x03
5e1c: 3c 81 ldd r19, Y+4 ; 0x04
5e1e: 80 1b sub r24, r16
5e20: 91 0b sbc r25, r17
5e22: a2 0b sbc r26, r18
5e24: b3 0b sbc r27, r19
5e26: 80 93 b4 03 sts 0x03B4, r24
5e2a: 90 93 b5 03 sts 0x03B5, r25
5e2e: a0 93 b6 03 sts 0x03B6, r26
5e32: b0 93 b7 03 sts 0x03B7, r27
ErsatzKompass += tmpl4;
5e36: b3 01 movw r22, r6
5e38: a2 01 movw r20, r4
5e3a: 48 0f add r20, r24
5e3c: 59 1f adc r21, r25
5e3e: 6a 1f adc r22, r26
5e40: 7b 1f adc r23, r27
5e42: 40 93 6e 06 sts 0x066E, r20
5e46: 50 93 6f 06 sts 0x066F, r21
5e4a: 60 93 70 06 sts 0x0670, r22
5e4e: 70 93 71 06 sts 0x0671, r23
if(!Parameter_CouplingYawCorrection) Mess_Integral_Gier -= tmpl4/2; // Gier nachhelfen
5e52: 20 91 28 01 lds r18, 0x0128
5e56: 21 11 cpse r18, r1
5e58: 1a c0 rjmp .+52 ; 0x5e8e <Mittelwert+0x47e>
5e5a: ac 01 movw r20, r24
5e5c: bd 01 movw r22, r26
5e5e: bb 23 and r27, r27
5e60: 24 f4 brge .+8 ; 0x5e6a <Mittelwert+0x45a>
5e62: 4f 5f subi r20, 0xFF ; 255
5e64: 5f 4f sbci r21, 0xFF ; 255
5e66: 6f 4f sbci r22, 0xFF ; 255
5e68: 7f 4f sbci r23, 0xFF ; 255
5e6a: 75 95 asr r23
5e6c: 67 95 ror r22
5e6e: 57 95 ror r21
5e70: 47 95 ror r20
5e72: 95 01 movw r18, r10
5e74: 84 01 movw r16, r8
5e76: 04 1b sub r16, r20
5e78: 15 0b sbc r17, r21
5e7a: 26 0b sbc r18, r22
5e7c: 37 0b sbc r19, r23
5e7e: 00 93 2e 04 sts 0x042E, r16
5e82: 10 93 2f 04 sts 0x042F, r17
5e86: 20 93 30 04 sts 0x0430, r18
5e8a: 30 93 31 04 sts 0x0431, r19
 
tmpl = ((MesswertGier + tmpl4) * winkel_nick) / 2048L;
5e8e: 46 01 movw r8, r12
5e90: 57 01 movw r10, r14
5e92: 88 0e add r8, r24
5e94: 99 1e adc r9, r25
5e96: aa 1e adc r10, r26
5e98: bb 1e adc r11, r27
tmpl *= Parameter_AchsKopplung1; // 90
5e9a: e0 90 2a 01 lds r14, 0x012A
5e9e: ce 2c mov r12, r14
5ea0: d1 2c mov r13, r1
5ea2: e1 2c mov r14, r1
5ea4: f1 2c mov r15, r1
KopplungsteilRollNick = tmpl4;
tmpl4 -= tmpl3;
ErsatzKompass += tmpl4;
if(!Parameter_CouplingYawCorrection) Mess_Integral_Gier -= tmpl4/2; // Gier nachhelfen
 
tmpl = ((MesswertGier + tmpl4) * winkel_nick) / 2048L;
5ea6: a5 01 movw r20, r10
5ea8: 94 01 movw r18, r8
5eaa: 6d 81 ldd r22, Y+5 ; 0x05
5eac: 7e 81 ldd r23, Y+6 ; 0x06
5eae: 8f 81 ldd r24, Y+7 ; 0x07
5eb0: 98 85 ldd r25, Y+8 ; 0x08
5eb2: 0e 94 27 b1 call 0x1624e ; 0x1624e <__mulsi3>
5eb6: 8b 01 movw r16, r22
5eb8: 9c 01 movw r18, r24
5eba: 99 23 and r25, r25
5ebc: 24 f4 brge .+8 ; 0x5ec6 <Mittelwert+0x4b6>
5ebe: 01 50 subi r16, 0x01 ; 1
5ec0: 18 4f sbci r17, 0xF8 ; 248
5ec2: 2f 4f sbci r18, 0xFF ; 255
5ec4: 3f 4f sbci r19, 0xFF ; 255
5ec6: a9 01 movw r20, r18
5ec8: 98 01 movw r18, r16
5eca: 01 2e mov r0, r17
5ecc: 1b e0 ldi r17, 0x0B ; 11
5ece: 55 95 asr r21
5ed0: 47 95 ror r20
5ed2: 37 95 ror r19
5ed4: 27 95 ror r18
5ed6: 1a 95 dec r17
5ed8: d1 f7 brne .-12 ; 0x5ece <Mittelwert+0x4be>
5eda: 10 2d mov r17, r0
tmpl *= Parameter_AchsKopplung1; // 90
5edc: c7 01 movw r24, r14
5ede: b6 01 movw r22, r12
5ee0: 0e 94 27 b1 call 0x1624e ; 0x1624e <__mulsi3>
tmpl /= 4096L;
5ee4: 2b 01 movw r4, r22
5ee6: 3c 01 movw r6, r24
5ee8: 99 23 and r25, r25
5eea: 34 f4 brge .+12 ; 0x5ef8 <Mittelwert+0x4e8>
5eec: 1f ef ldi r17, 0xFF ; 255
5eee: 41 0e add r4, r17
5ef0: 1f e0 ldi r17, 0x0F ; 15
5ef2: 51 1e adc r5, r17
5ef4: 61 1c adc r6, r1
5ef6: 71 1c adc r7, r1
5ef8: 03 2e mov r0, r19
5efa: 3c e0 ldi r19, 0x0C ; 12
5efc: 75 94 asr r7
5efe: 67 94 ror r6
5f00: 57 94 ror r5
5f02: 47 94 ror r4
5f04: 3a 95 dec r19
5f06: d1 f7 brne .-12 ; 0x5efc <Mittelwert+0x4ec>
5f08: 30 2d mov r19, r0
5f0a: 40 92 b0 03 sts 0x03B0, r4
5f0e: 50 92 b1 03 sts 0x03B1, r5
5f12: 60 92 b2 03 sts 0x03B2, r6
5f16: 70 92 b3 03 sts 0x03B3, r7
tmpl2 = ((MesswertGier + tmpl4) * winkel_roll) / 2048L;
5f1a: a5 01 movw r20, r10
5f1c: 94 01 movw r18, r8
5f1e: 69 85 ldd r22, Y+9 ; 0x09
5f20: 7a 85 ldd r23, Y+10 ; 0x0a
5f22: 8b 85 ldd r24, Y+11 ; 0x0b
5f24: 9c 85 ldd r25, Y+12 ; 0x0c
5f26: 0e 94 27 b1 call 0x1624e ; 0x1624e <__mulsi3>
5f2a: 8b 01 movw r16, r22
5f2c: 9c 01 movw r18, r24
5f2e: 99 23 and r25, r25
5f30: 24 f4 brge .+8 ; 0x5f3a <Mittelwert+0x52a>
5f32: 01 50 subi r16, 0x01 ; 1
5f34: 18 4f sbci r17, 0xF8 ; 248
5f36: 2f 4f sbci r18, 0xFF ; 255
5f38: 3f 4f sbci r19, 0xFF ; 255
5f3a: c9 01 movw r24, r18
5f3c: b8 01 movw r22, r16
5f3e: 05 2e mov r0, r21
5f40: 5b e0 ldi r21, 0x0B ; 11
5f42: 95 95 asr r25
5f44: 87 95 ror r24
5f46: 77 95 ror r23
5f48: 67 95 ror r22
5f4a: 5a 95 dec r21
5f4c: d1 f7 brne .-12 ; 0x5f42 <Mittelwert+0x532>
5f4e: 50 2d mov r21, r0
tmpl2 *= Parameter_AchsKopplung1;
5f50: a7 01 movw r20, r14
5f52: 96 01 movw r18, r12
5f54: 0e 94 27 b1 call 0x1624e ; 0x1624e <__mulsi3>
tmpl2 /= 4096L;
5f58: 8b 01 movw r16, r22
5f5a: 9c 01 movw r18, r24
5f5c: 99 23 and r25, r25
5f5e: 24 f4 brge .+8 ; 0x5f68 <Mittelwert+0x558>
5f60: 01 50 subi r16, 0x01 ; 1
5f62: 10 4f sbci r17, 0xF0 ; 240
5f64: 2f 4f sbci r18, 0xFF ; 255
5f66: 3f 4f sbci r19, 0xFF ; 255
5f68: d9 01 movw r26, r18
5f6a: c8 01 movw r24, r16
5f6c: 07 2e mov r0, r23
5f6e: 7c e0 ldi r23, 0x0C ; 12
5f70: b5 95 asr r27
5f72: a7 95 ror r26
5f74: 97 95 ror r25
5f76: 87 95 ror r24
5f78: 7a 95 dec r23
5f7a: d1 f7 brne .-12 ; 0x5f70 <Mittelwert+0x560>
5f7c: 70 2d mov r23, r0
5f7e: 80 93 ac 03 sts 0x03AC, r24
5f82: 90 93 ad 03 sts 0x03AD, r25
5f86: a0 93 ae 03 sts 0x03AE, r26
5f8a: b0 93 af 03 sts 0x03AF, r27
if(abs(MesswertGier) > 64) if(labs(tmpl) > 128 || labs(tmpl2) > 128) TrichterFlug = 1;
5f8e: 91 01 movw r18, r2
5f90: 33 20 and r3, r3
5f92: 24 f4 brge .+8 ; 0x5f9c <Mittelwert+0x58c>
5f94: 22 27 eor r18, r18
5f96: 33 27 eor r19, r19
5f98: 22 19 sub r18, r2
5f9a: 33 09 sbc r19, r3
5f9c: 21 34 cpi r18, 0x41 ; 65
5f9e: 31 05 cpc r19, r1
5fa0: e4 f1 brlt .+120 ; 0x601a <Mittelwert+0x60a>
5fa2: b3 01 movw r22, r6
5fa4: a2 01 movw r20, r4
5fa6: 77 20 and r7, r7
5fa8: 3c f4 brge .+14 ; 0x5fb8 <Mittelwert+0x5a8>
5faa: 44 27 eor r20, r20
5fac: 55 27 eor r21, r21
5fae: ba 01 movw r22, r20
5fb0: 44 19 sub r20, r4
5fb2: 55 09 sbc r21, r5
5fb4: 66 09 sbc r22, r6
5fb6: 77 09 sbc r23, r7
5fb8: 41 38 cpi r20, 0x81 ; 129
5fba: 51 05 cpc r21, r1
5fbc: 61 05 cpc r22, r1
5fbe: 71 05 cpc r23, r1
5fc0: 84 f4 brge .+32 ; 0x5fe2 <Mittelwert+0x5d2>
5fc2: ac 01 movw r20, r24
5fc4: bd 01 movw r22, r26
5fc6: bb 23 and r27, r27
5fc8: 3c f4 brge .+14 ; 0x5fd8 <Mittelwert+0x5c8>
5fca: 44 27 eor r20, r20
5fcc: 55 27 eor r21, r21
5fce: ba 01 movw r22, r20
5fd0: 48 1b sub r20, r24
5fd2: 59 0b sbc r21, r25
5fd4: 6a 0b sbc r22, r26
5fd6: 7b 0b sbc r23, r27
5fd8: 41 38 cpi r20, 0x81 ; 129
5fda: 51 05 cpc r21, r1
5fdc: 61 05 cpc r22, r1
5fde: 71 05 cpc r23, r1
5fe0: e4 f0 brlt .+56 ; 0x601a <Mittelwert+0x60a>
5fe2: 81 e0 ldi r24, 0x01 ; 1
5fe4: 80 93 1a 04 sts 0x041A, r24
5fe8: 18 c0 rjmp .+48 ; 0x601a <Mittelwert+0x60a>
//MesswertGier += (Parameter_CouplingYawCorrection * tmpl4) / 256;
}
else tmpl = tmpl2 = KopplungsteilNickRoll = KopplungsteilRollNick = 0;
5fea: 10 92 18 06 sts 0x0618, r1
5fee: 10 92 17 06 sts 0x0617, r1
5ff2: 10 92 16 06 sts 0x0616, r1
5ff6: 10 92 15 06 sts 0x0615, r1
5ffa: 10 92 ac 03 sts 0x03AC, r1
5ffe: 10 92 ad 03 sts 0x03AD, r1
6002: 10 92 ae 03 sts 0x03AE, r1
6006: 10 92 af 03 sts 0x03AF, r1
600a: 10 92 b0 03 sts 0x03B0, r1
600e: 10 92 b1 03 sts 0x03B1, r1
6012: 10 92 b2 03 sts 0x03B2, r1
6016: 10 92 b3 03 sts 0x03B3, r1
TrimRoll = tmpl - tmpl2 / 100L;
601a: c0 90 b0 03 lds r12, 0x03B0
601e: d0 90 b1 03 lds r13, 0x03B1
6022: e0 90 b2 03 lds r14, 0x03B2
6026: f0 90 b3 03 lds r15, 0x03B3
602a: 80 90 ac 03 lds r8, 0x03AC
602e: 90 90 ad 03 lds r9, 0x03AD
6032: a0 90 ae 03 lds r10, 0x03AE
6036: b0 90 af 03 lds r11, 0x03AF
603a: 0f 2e mov r0, r31
603c: f4 e6 ldi r31, 0x64 ; 100
603e: 4f 2e mov r4, r31
6040: 51 2c mov r5, r1
6042: 61 2c mov r6, r1
6044: 71 2c mov r7, r1
6046: f0 2d mov r31, r0
6048: c5 01 movw r24, r10
604a: b4 01 movw r22, r8
604c: a3 01 movw r20, r6
604e: 92 01 movw r18, r4
6050: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
6054: 16 01 movw r2, r12
6056: 22 1a sub r2, r18
6058: 33 0a sbc r3, r19
605a: 30 92 26 06 sts 0x0626, r3
605e: 20 92 25 06 sts 0x0625, r2
TrimNick = -tmpl2 + tmpl / 100L;
6062: c7 01 movw r24, r14
6064: b6 01 movw r22, r12
6066: a3 01 movw r20, r6
6068: 92 01 movw r18, r4
606a: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
606e: f9 01 movw r30, r18
6070: e8 19 sub r30, r8
6072: f9 09 sbc r31, r9
6074: f0 93 1f 06 sts 0x061F, r31
6078: e0 93 1e 06 sts 0x061E, r30
// Kompasswert begrenzen ++++++++++++++++++++++++++++++++++++++++++++++++
if(ErsatzKompass >= (360L * GIER_GRAD_FAKTOR)) ErsatzKompass -= 360L * GIER_GRAD_FAKTOR; // 360° Umschlag
607c: 40 90 21 01 lds r4, 0x0121
6080: 50 90 22 01 lds r5, 0x0122
6084: 60 90 23 01 lds r6, 0x0123
6088: 70 90 24 01 lds r7, 0x0124
608c: a8 e6 ldi r26, 0x68 ; 104
608e: b1 e0 ldi r27, 0x01 ; 1
6090: a3 01 movw r20, r6
6092: 92 01 movw r18, r4
6094: 0e 94 c8 b1 call 0x16390 ; 0x16390 <__muluhisi3>
6098: 6b 01 movw r12, r22
609a: 7c 01 movw r14, r24
609c: 80 90 6e 06 lds r8, 0x066E
60a0: 90 90 6f 06 lds r9, 0x066F
60a4: a0 90 70 06 lds r10, 0x0670
60a8: b0 90 71 06 lds r11, 0x0671
60ac: 86 16 cp r8, r22
60ae: 97 06 cpc r9, r23
60b0: a8 06 cpc r10, r24
60b2: b9 06 cpc r11, r25
60b4: 84 f0 brlt .+32 ; 0x60d6 <Mittelwert+0x6c6>
60b6: a8 e9 ldi r26, 0x98 ; 152
60b8: be ef ldi r27, 0xFE ; 254
60ba: 0e 94 d4 b1 call 0x163a8 ; 0x163a8 <__mulohisi3>
60be: 86 0e add r8, r22
60c0: 97 1e adc r9, r23
60c2: a8 1e adc r10, r24
60c4: b9 1e adc r11, r25
60c6: 80 92 6e 06 sts 0x066E, r8
60ca: 90 92 6f 06 sts 0x066F, r9
60ce: a0 92 70 06 sts 0x0670, r10
60d2: b0 92 71 06 sts 0x0671, r11
if(ErsatzKompass < 0) ErsatzKompass += 360L * GIER_GRAD_FAKTOR;
60d6: 80 91 6e 06 lds r24, 0x066E
60da: 90 91 6f 06 lds r25, 0x066F
60de: a0 91 70 06 lds r26, 0x0670
60e2: b0 91 71 06 lds r27, 0x0671
60e6: bb 23 and r27, r27
60e8: 64 f4 brge .+24 ; 0x6102 <Mittelwert+0x6f2>
60ea: 8c 0d add r24, r12
60ec: 9d 1d adc r25, r13
60ee: ae 1d adc r26, r14
60f0: bf 1d adc r27, r15
60f2: 80 93 6e 06 sts 0x066E, r24
60f6: 90 93 6f 06 sts 0x066F, r25
60fa: a0 93 70 06 sts 0x0670, r26
60fe: b0 93 71 06 sts 0x0671, r27
// Roll ++++++++++++++++++++++++++++++++++++++++++++++++
Mess_IntegralRoll += MesswertRoll + TrimRoll - LageKorrekturRoll;
6102: 80 91 1c 06 lds r24, 0x061C
6106: 90 91 1d 06 lds r25, 0x061D
610a: 82 0d add r24, r2
610c: 93 1d adc r25, r3
610e: 20 91 ec 03 lds r18, 0x03EC
6112: 30 91 ed 03 lds r19, 0x03ED
6116: 82 1b sub r24, r18
6118: 93 0b sbc r25, r19
611a: aa 27 eor r26, r26
611c: 97 fd sbrc r25, 7
611e: a0 95 com r26
6120: ba 2f mov r27, r26
6122: 40 91 32 04 lds r20, 0x0432
6126: 50 91 33 04 lds r21, 0x0433
612a: 60 91 34 04 lds r22, 0x0434
612e: 70 91 35 04 lds r23, 0x0435
6132: 48 0f add r20, r24
6134: 59 1f adc r21, r25
6136: 6a 1f adc r22, r26
6138: 7b 1f adc r23, r27
613a: 40 93 32 04 sts 0x0432, r20
613e: 50 93 33 04 sts 0x0433, r21
6142: 60 93 34 04 sts 0x0434, r22
6146: 70 93 35 04 sts 0x0435, r23
if(Mess_IntegralRoll > Umschlag180Roll)
614a: 80 91 42 01 lds r24, 0x0142
614e: 90 91 43 01 lds r25, 0x0143
6152: a0 91 44 01 lds r26, 0x0144
6156: b0 91 45 01 lds r27, 0x0145
615a: 84 17 cp r24, r20
615c: 95 07 cpc r25, r21
615e: a6 07 cpc r26, r22
6160: b7 07 cpc r27, r23
6162: 84 f4 brge .+32 ; 0x6184 <Mittelwert+0x774>
{
Mess_IntegralRoll = -(Umschlag180Roll - 25000L);
6164: 48 ea ldi r20, 0xA8 ; 168
6166: 51 e6 ldi r21, 0x61 ; 97
6168: 60 e0 ldi r22, 0x00 ; 0
616a: 70 e0 ldi r23, 0x00 ; 0
616c: 48 1b sub r20, r24
616e: 59 0b sbc r21, r25
6170: 6a 0b sbc r22, r26
6172: 7b 0b sbc r23, r27
6174: 40 93 32 04 sts 0x0432, r20
6178: 50 93 33 04 sts 0x0433, r21
617c: 60 93 34 04 sts 0x0434, r22
6180: 70 93 35 04 sts 0x0435, r23
}
if(Mess_IntegralRoll <-Umschlag180Roll)
6184: 88 24 eor r8, r8
6186: 99 24 eor r9, r9
6188: 54 01 movw r10, r8
618a: 88 1a sub r8, r24
618c: 99 0a sbc r9, r25
618e: aa 0a sbc r10, r26
6190: bb 0a sbc r11, r27
6192: 40 91 32 04 lds r20, 0x0432
6196: 50 91 33 04 lds r21, 0x0433
619a: 60 91 34 04 lds r22, 0x0434
619e: 70 91 35 04 lds r23, 0x0435
61a2: 48 15 cp r20, r8
61a4: 59 05 cpc r21, r9
61a6: 6a 05 cpc r22, r10
61a8: 7b 05 cpc r23, r11
61aa: 64 f4 brge .+24 ; 0x61c4 <Mittelwert+0x7b4>
{
Mess_IntegralRoll = (Umschlag180Roll - 25000L);
61ac: 88 5a subi r24, 0xA8 ; 168
61ae: 91 46 sbci r25, 0x61 ; 97
61b0: a1 09 sbc r26, r1
61b2: b1 09 sbc r27, r1
61b4: 80 93 32 04 sts 0x0432, r24
61b8: 90 93 33 04 sts 0x0433, r25
61bc: a0 93 34 04 sts 0x0434, r26
61c0: b0 93 35 04 sts 0x0435, r27
}
// Nick ++++++++++++++++++++++++++++++++++++++++++++++++
Mess_IntegralNick += MesswertNick + TrimNick - LageKorrekturNick;
61c4: 40 91 27 06 lds r20, 0x0627
61c8: 50 91 28 06 lds r21, 0x0628
61cc: 4e 0f add r20, r30
61ce: 5f 1f adc r21, r31
61d0: 20 91 ea 03 lds r18, 0x03EA
61d4: 30 91 eb 03 lds r19, 0x03EB
61d8: 42 1b sub r20, r18
61da: 53 0b sbc r21, r19
61dc: 66 27 eor r22, r22
61de: 57 fd sbrc r21, 7
61e0: 60 95 com r22
61e2: 76 2f mov r23, r22
61e4: 80 91 36 04 lds r24, 0x0436
61e8: 90 91 37 04 lds r25, 0x0437
61ec: a0 91 38 04 lds r26, 0x0438
61f0: b0 91 39 04 lds r27, 0x0439
61f4: 84 0f add r24, r20
61f6: 95 1f adc r25, r21
61f8: a6 1f adc r26, r22
61fa: b7 1f adc r27, r23
61fc: 80 93 36 04 sts 0x0436, r24
6200: 90 93 37 04 sts 0x0437, r25
6204: a0 93 38 04 sts 0x0438, r26
6208: b0 93 39 04 sts 0x0439, r27
if(Mess_IntegralNick > Umschlag180Nick)
620c: 40 91 46 01 lds r20, 0x0146
6210: 50 91 47 01 lds r21, 0x0147
6214: 60 91 48 01 lds r22, 0x0148
6218: 70 91 49 01 lds r23, 0x0149
621c: 48 17 cp r20, r24
621e: 59 07 cpc r21, r25
6220: 6a 07 cpc r22, r26
6222: 7b 07 cpc r23, r27
6224: 84 f4 brge .+32 ; 0x6246 <Mittelwert+0x836>
{
Mess_IntegralNick = -(Umschlag180Nick - 25000L);
6226: 88 ea ldi r24, 0xA8 ; 168
6228: 91 e6 ldi r25, 0x61 ; 97
622a: a0 e0 ldi r26, 0x00 ; 0
622c: b0 e0 ldi r27, 0x00 ; 0
622e: 84 1b sub r24, r20
6230: 95 0b sbc r25, r21
6232: a6 0b sbc r26, r22
6234: b7 0b sbc r27, r23
6236: 80 93 36 04 sts 0x0436, r24
623a: 90 93 37 04 sts 0x0437, r25
623e: a0 93 38 04 sts 0x0438, r26
6242: b0 93 39 04 sts 0x0439, r27
}
if(Mess_IntegralNick <-Umschlag180Nick)
6246: 88 24 eor r8, r8
6248: 99 24 eor r9, r9
624a: 54 01 movw r10, r8
624c: 84 1a sub r8, r20
624e: 95 0a sbc r9, r21
6250: a6 0a sbc r10, r22
6252: b7 0a sbc r11, r23
6254: 80 91 36 04 lds r24, 0x0436
6258: 90 91 37 04 lds r25, 0x0437
625c: a0 91 38 04 lds r26, 0x0438
6260: b0 91 39 04 lds r27, 0x0439
6264: 88 15 cp r24, r8
6266: 99 05 cpc r25, r9
6268: aa 05 cpc r26, r10
626a: bb 05 cpc r27, r11
626c: 74 f4 brge .+28 ; 0x628a <Mittelwert+0x87a>
{
Mess_IntegralNick = (Umschlag180Nick - 25000L);
626e: db 01 movw r26, r22
6270: ca 01 movw r24, r20
6272: 88 5a subi r24, 0xA8 ; 168
6274: 91 46 sbci r25, 0x61 ; 97
6276: a1 09 sbc r26, r1
6278: b1 09 sbc r27, r1
627a: 80 93 36 04 sts 0x0436, r24
627e: 90 93 37 04 sts 0x0437, r25
6282: a0 93 38 04 sts 0x0438, r26
6286: b0 93 39 04 sts 0x0439, r27
}
 
Integral_Gier = Mess_Integral_Gier;
628a: 80 91 2e 04 lds r24, 0x042E
628e: 90 91 2f 04 lds r25, 0x042F
6292: a0 91 30 04 lds r26, 0x0430
6296: b0 91 31 04 lds r27, 0x0431
629a: 80 93 3a 04 sts 0x043A, r24
629e: 90 93 3b 04 sts 0x043B, r25
62a2: a0 93 3c 04 sts 0x043C, r26
62a6: b0 93 3d 04 sts 0x043D, r27
IntegralNick = Mess_IntegralNick;
62aa: 80 91 36 04 lds r24, 0x0436
62ae: 90 91 37 04 lds r25, 0x0437
62b2: a0 91 38 04 lds r26, 0x0438
62b6: b0 91 39 04 lds r27, 0x0439
62ba: 80 93 42 04 sts 0x0442, r24
62be: 90 93 43 04 sts 0x0443, r25
62c2: a0 93 44 04 sts 0x0444, r26
62c6: b0 93 45 04 sts 0x0445, r27
IntegralRoll = Mess_IntegralRoll;
62ca: 80 91 32 04 lds r24, 0x0432
62ce: 90 91 33 04 lds r25, 0x0433
62d2: a0 91 34 04 lds r26, 0x0434
62d6: b0 91 35 04 lds r27, 0x0435
62da: 80 93 3e 04 sts 0x043E, r24
62de: 90 93 3f 04 sts 0x043F, r25
62e2: a0 93 40 04 sts 0x0440, r26
62e6: b0 93 41 04 sts 0x0441, r27
 
 
#define D_LIMIT 128
 
MesswertNick = HiResNick / 8;
62ea: 80 91 18 01 lds r24, 0x0118
62ee: 90 91 19 01 lds r25, 0x0119
62f2: 99 23 and r25, r25
62f4: 0c f4 brge .+2 ; 0x62f8 <Mittelwert+0x8e8>
62f6: 07 96 adiw r24, 0x07 ; 7
62f8: 95 95 asr r25
62fa: 87 95 ror r24
62fc: 95 95 asr r25
62fe: 87 95 ror r24
6300: 95 95 asr r25
6302: 87 95 ror r24
6304: 90 93 28 06 sts 0x0628, r25
6308: 80 93 27 06 sts 0x0627, r24
MesswertRoll = HiResRoll / 8;
630c: 80 91 16 01 lds r24, 0x0116
6310: 90 91 17 01 lds r25, 0x0117
6314: 99 23 and r25, r25
6316: 0c f4 brge .+2 ; 0x631a <Mittelwert+0x90a>
6318: 07 96 adiw r24, 0x07 ; 7
631a: 95 95 asr r25
631c: 87 95 ror r24
631e: 95 95 asr r25
6320: 87 95 ror r24
6322: 95 95 asr r25
6324: 87 95 ror r24
6326: 90 93 1d 06 sts 0x061D, r25
632a: 80 93 1c 06 sts 0x061C, r24
 
if(AdWertNick < 15) MesswertNick = -1000; if(AdWertNick < 7) MesswertNick = -2000;
632e: 80 91 65 03 lds r24, 0x0365
6332: 90 91 66 03 lds r25, 0x0366
6336: 0f 97 sbiw r24, 0x0f ; 15
6338: 34 f4 brge .+12 ; 0x6346 <Mittelwert+0x936>
633a: 88 e1 ldi r24, 0x18 ; 24
633c: 9c ef ldi r25, 0xFC ; 252
633e: 90 93 28 06 sts 0x0628, r25
6342: 80 93 27 06 sts 0x0627, r24
6346: 80 91 65 03 lds r24, 0x0365
634a: 90 91 66 03 lds r25, 0x0366
634e: 07 97 sbiw r24, 0x07 ; 7
6350: 34 f4 brge .+12 ; 0x635e <Mittelwert+0x94e>
6352: 80 e3 ldi r24, 0x30 ; 48
6354: 98 ef ldi r25, 0xF8 ; 248
6356: 90 93 28 06 sts 0x0628, r25
635a: 80 93 27 06 sts 0x0627, r24
// if(PlatinenVersion == 10) { if(AdWertNick > 1010) MesswertNick = +1000; if(AdWertNick > 1017) MesswertNick = +2000; }
// else
{ if(AdWertNick > 2000) MesswertNick = +1000; if(AdWertNick > 2015) MesswertNick = +2000; }
635e: 80 91 65 03 lds r24, 0x0365
6362: 90 91 66 03 lds r25, 0x0366
6366: 81 3d cpi r24, 0xD1 ; 209
6368: 97 40 sbci r25, 0x07 ; 7
636a: 34 f0 brlt .+12 ; 0x6378 <Mittelwert+0x968>
636c: 88 ee ldi r24, 0xE8 ; 232
636e: 93 e0 ldi r25, 0x03 ; 3
6370: 90 93 28 06 sts 0x0628, r25
6374: 80 93 27 06 sts 0x0627, r24
6378: 80 91 65 03 lds r24, 0x0365
637c: 90 91 66 03 lds r25, 0x0366
6380: 80 3e cpi r24, 0xE0 ; 224
6382: 97 40 sbci r25, 0x07 ; 7
6384: 34 f0 brlt .+12 ; 0x6392 <Mittelwert+0x982>
6386: 80 ed ldi r24, 0xD0 ; 208
6388: 97 e0 ldi r25, 0x07 ; 7
638a: 90 93 28 06 sts 0x0628, r25
638e: 80 93 27 06 sts 0x0627, r24
if(AdWertRoll < 15) MesswertRoll = -1000; if(AdWertRoll < 7) MesswertRoll = -2000;
6392: 80 91 63 03 lds r24, 0x0363
6396: 90 91 64 03 lds r25, 0x0364
639a: 0f 97 sbiw r24, 0x0f ; 15
639c: 34 f4 brge .+12 ; 0x63aa <Mittelwert+0x99a>
639e: 88 e1 ldi r24, 0x18 ; 24
63a0: 9c ef ldi r25, 0xFC ; 252
63a2: 90 93 1d 06 sts 0x061D, r25
63a6: 80 93 1c 06 sts 0x061C, r24
63aa: 80 91 63 03 lds r24, 0x0363
63ae: 90 91 64 03 lds r25, 0x0364
63b2: 07 97 sbiw r24, 0x07 ; 7
63b4: 34 f4 brge .+12 ; 0x63c2 <Mittelwert+0x9b2>
63b6: 80 e3 ldi r24, 0x30 ; 48
63b8: 98 ef ldi r25, 0xF8 ; 248
63ba: 90 93 1d 06 sts 0x061D, r25
63be: 80 93 1c 06 sts 0x061C, r24
// if(PlatinenVersion == 10) { if(AdWertRoll > 1010) MesswertRoll = +1000; if(AdWertRoll > 1017) MesswertRoll = +2000; }
// else
{ if(AdWertRoll > 2000) MesswertRoll = +1000; if(AdWertRoll > 2015) MesswertRoll = +2000; }
63c2: 80 91 63 03 lds r24, 0x0363
63c6: 90 91 64 03 lds r25, 0x0364
63ca: 81 3d cpi r24, 0xD1 ; 209
63cc: 97 40 sbci r25, 0x07 ; 7
63ce: 34 f0 brlt .+12 ; 0x63dc <Mittelwert+0x9cc>
63d0: 88 ee ldi r24, 0xE8 ; 232
63d2: 93 e0 ldi r25, 0x03 ; 3
63d4: 90 93 1d 06 sts 0x061D, r25
63d8: 80 93 1c 06 sts 0x061C, r24
63dc: 80 91 63 03 lds r24, 0x0363
63e0: 90 91 64 03 lds r25, 0x0364
63e4: 80 3e cpi r24, 0xE0 ; 224
63e6: 97 40 sbci r25, 0x07 ; 7
63e8: 34 f0 brlt .+12 ; 0x63f6 <Mittelwert+0x9e6>
63ea: 80 ed ldi r24, 0xD0 ; 208
63ec: 97 e0 ldi r25, 0x07 ; 7
63ee: 90 93 1d 06 sts 0x061D, r25
63f2: 80 93 1c 06 sts 0x061C, r24
 
if(Parameter_Gyro_D)
63f6: 40 91 35 01 lds r20, 0x0135
63fa: 44 23 and r20, r20
63fc: 09 f4 brne .+2 ; 0x6400 <Mittelwert+0x9f0>
63fe: ba c0 rjmp .+372 ; 0x6574 <Mittelwert+0xb64>
{
d2Nick = HiResNick - oldNick;
6400: 80 91 18 01 lds r24, 0x0118
6404: 90 91 19 01 lds r25, 0x0119
6408: 20 91 aa 03 lds r18, 0x03AA
640c: 30 91 ab 03 lds r19, 0x03AB
6410: 82 1b sub r24, r18
6412: 93 0b sbc r25, r19
6414: 90 93 a9 03 sts 0x03A9, r25
6418: 80 93 a8 03 sts 0x03A8, r24
oldNick = (oldNick + HiResNick)/2;
641c: 60 91 18 01 lds r22, 0x0118
6420: 70 91 19 01 lds r23, 0x0119
6424: 26 0f add r18, r22
6426: 37 1f adc r19, r23
6428: 33 23 and r19, r19
642a: 14 f4 brge .+4 ; 0x6430 <Mittelwert+0xa20>
642c: 2f 5f subi r18, 0xFF ; 255
642e: 3f 4f sbci r19, 0xFF ; 255
6430: 35 95 asr r19
6432: 27 95 ror r18
6434: 30 93 ab 03 sts 0x03AB, r19
6438: 20 93 aa 03 sts 0x03AA, r18
if(d2Nick > D_LIMIT) d2Nick = D_LIMIT;
643c: 81 38 cpi r24, 0x81 ; 129
643e: 91 05 cpc r25, r1
6440: 3c f0 brlt .+14 ; 0x6450 <Mittelwert+0xa40>
6442: 80 e8 ldi r24, 0x80 ; 128
6444: 90 e0 ldi r25, 0x00 ; 0
6446: 90 93 a9 03 sts 0x03A9, r25
644a: 80 93 a8 03 sts 0x03A8, r24
644e: 09 c0 rjmp .+18 ; 0x6462 <Mittelwert+0xa52>
else if(d2Nick < -D_LIMIT) d2Nick = -D_LIMIT;
6450: 80 38 cpi r24, 0x80 ; 128
6452: 9f 4f sbci r25, 0xFF ; 255
6454: 34 f4 brge .+12 ; 0x6462 <Mittelwert+0xa52>
6456: 80 e8 ldi r24, 0x80 ; 128
6458: 9f ef ldi r25, 0xFF ; 255
645a: 90 93 a9 03 sts 0x03A9, r25
645e: 80 93 a8 03 sts 0x03A8, r24
 
d2Roll = HiResRoll - oldRoll;
6462: 80 91 16 01 lds r24, 0x0116
6466: 90 91 17 01 lds r25, 0x0117
646a: 20 91 a6 03 lds r18, 0x03A6
646e: 30 91 a7 03 lds r19, 0x03A7
6472: 82 1b sub r24, r18
6474: 93 0b sbc r25, r19
6476: 90 93 a5 03 sts 0x03A5, r25
647a: 80 93 a4 03 sts 0x03A4, r24
oldRoll = (oldRoll + HiResRoll)/2;
647e: 60 91 16 01 lds r22, 0x0116
6482: 70 91 17 01 lds r23, 0x0117
6486: 26 0f add r18, r22
6488: 37 1f adc r19, r23
648a: 33 23 and r19, r19
648c: 14 f4 brge .+4 ; 0x6492 <Mittelwert+0xa82>
648e: 2f 5f subi r18, 0xFF ; 255
6490: 3f 4f sbci r19, 0xFF ; 255
6492: 35 95 asr r19
6494: 27 95 ror r18
6496: 30 93 a7 03 sts 0x03A7, r19
649a: 20 93 a6 03 sts 0x03A6, r18
if(d2Roll > D_LIMIT) d2Roll = D_LIMIT;
649e: 81 38 cpi r24, 0x81 ; 129
64a0: 91 05 cpc r25, r1
64a2: 3c f0 brlt .+14 ; 0x64b2 <Mittelwert+0xaa2>
64a4: 80 e8 ldi r24, 0x80 ; 128
64a6: 90 e0 ldi r25, 0x00 ; 0
64a8: 90 93 a5 03 sts 0x03A5, r25
64ac: 80 93 a4 03 sts 0x03A4, r24
64b0: 09 c0 rjmp .+18 ; 0x64c4 <Mittelwert+0xab4>
else if(d2Roll < -D_LIMIT) d2Roll = -D_LIMIT;
64b2: 80 38 cpi r24, 0x80 ; 128
64b4: 9f 4f sbci r25, 0xFF ; 255
64b6: 34 f4 brge .+12 ; 0x64c4 <Mittelwert+0xab4>
64b8: 80 e8 ldi r24, 0x80 ; 128
64ba: 9f ef ldi r25, 0xFF ; 255
64bc: 90 93 a5 03 sts 0x03A5, r25
64c0: 80 93 a4 03 sts 0x03A4, r24
 
MesswertNick += (d2Nick * (signed int) Parameter_Gyro_D) / 16;
64c4: 50 e0 ldi r21, 0x00 ; 0
64c6: 80 91 a8 03 lds r24, 0x03A8
64ca: 90 91 a9 03 lds r25, 0x03A9
64ce: 48 9f mul r20, r24
64d0: 90 01 movw r18, r0
64d2: 49 9f mul r20, r25
64d4: 30 0d add r19, r0
64d6: 58 9f mul r21, r24
64d8: 30 0d add r19, r0
64da: 11 24 eor r1, r1
64dc: c9 01 movw r24, r18
64de: 33 23 and r19, r19
64e0: 0c f4 brge .+2 ; 0x64e4 <Mittelwert+0xad4>
64e2: 0f 96 adiw r24, 0x0f ; 15
64e4: 95 95 asr r25
64e6: 87 95 ror r24
64e8: 95 95 asr r25
64ea: 87 95 ror r24
64ec: 95 95 asr r25
64ee: 87 95 ror r24
64f0: 95 95 asr r25
64f2: 87 95 ror r24
64f4: 60 91 27 06 lds r22, 0x0627
64f8: 70 91 28 06 lds r23, 0x0628
64fc: 86 0f add r24, r22
64fe: 97 1f adc r25, r23
6500: 90 93 28 06 sts 0x0628, r25
6504: 80 93 27 06 sts 0x0627, r24
MesswertRoll += (d2Roll * (signed int) Parameter_Gyro_D) / 16;
6508: 60 91 a4 03 lds r22, 0x03A4
650c: 70 91 a5 03 lds r23, 0x03A5
6510: 46 9f mul r20, r22
6512: c0 01 movw r24, r0
6514: 47 9f mul r20, r23
6516: 90 0d add r25, r0
6518: 56 9f mul r21, r22
651a: 90 0d add r25, r0
651c: 11 24 eor r1, r1
651e: ac 01 movw r20, r24
6520: 99 23 and r25, r25
6522: 14 f4 brge .+4 ; 0x6528 <Mittelwert+0xb18>
6524: 41 5f subi r20, 0xF1 ; 241
6526: 5f 4f sbci r21, 0xFF ; 255
6528: 55 95 asr r21
652a: 47 95 ror r20
652c: 55 95 asr r21
652e: 47 95 ror r20
6530: 55 95 asr r21
6532: 47 95 ror r20
6534: 55 95 asr r21
6536: 47 95 ror r20
6538: 60 91 1c 06 lds r22, 0x061C
653c: 70 91 1d 06 lds r23, 0x061D
6540: 46 0f add r20, r22
6542: 57 1f adc r21, r23
6544: 50 93 1d 06 sts 0x061D, r21
6548: 40 93 1c 06 sts 0x061C, r20
HiResNick += (d2Nick * (signed int) Parameter_Gyro_D);
654c: 40 91 18 01 lds r20, 0x0118
6550: 50 91 19 01 lds r21, 0x0119
6554: 24 0f add r18, r20
6556: 35 1f adc r19, r21
6558: 30 93 19 01 sts 0x0119, r19
655c: 20 93 18 01 sts 0x0118, r18
HiResRoll += (d2Roll * (signed int) Parameter_Gyro_D);
6560: 20 91 16 01 lds r18, 0x0116
6564: 30 91 17 01 lds r19, 0x0117
6568: 82 0f add r24, r18
656a: 93 1f adc r25, r19
656c: 90 93 17 01 sts 0x0117, r25
6570: 80 93 16 01 sts 0x0116, r24
}
 
if(RohMesswertRoll > 0) TrimRoll += ((long) abs(KopplungsteilNickRoll) * Parameter_CouplingYawCorrection) / 64L;
6574: 40 91 2a 06 lds r20, 0x062A
6578: 50 91 2b 06 lds r21, 0x062B
657c: 14 16 cp r1, r20
657e: 15 06 cpc r1, r21
6580: 3c f5 brge .+78 ; 0x65d0 <Mittelwert+0xbc0>
6582: a0 91 15 06 lds r26, 0x0615
6586: b0 91 16 06 lds r27, 0x0616
658a: bb 23 and r27, r27
658c: 1c f4 brge .+6 ; 0x6594 <Mittelwert+0xb84>
658e: b1 95 neg r27
6590: a1 95 neg r26
6592: b1 09 sbc r27, r1
6594: 20 91 28 01 lds r18, 0x0128
6598: 30 e0 ldi r19, 0x00 ; 0
659a: 0e 94 c2 b1 call 0x16384 ; 0x16384 <__usmulhisi3>
659e: 8b 01 movw r16, r22
65a0: 9c 01 movw r18, r24
65a2: 99 23 and r25, r25
65a4: 24 f4 brge .+8 ; 0x65ae <Mittelwert+0xb9e>
65a6: 01 5c subi r16, 0xC1 ; 193
65a8: 1f 4f sbci r17, 0xFF ; 255
65aa: 2f 4f sbci r18, 0xFF ; 255
65ac: 3f 4f sbci r19, 0xFF ; 255
65ae: d9 01 movw r26, r18
65b0: c8 01 movw r24, r16
65b2: 68 94 set
65b4: 15 f8 bld r1, 5
65b6: b5 95 asr r27
65b8: a7 95 ror r26
65ba: 97 95 ror r25
65bc: 87 95 ror r24
65be: 16 94 lsr r1
65c0: d1 f7 brne .-12 ; 0x65b6 <Mittelwert+0xba6>
65c2: 82 0d add r24, r2
65c4: 93 1d adc r25, r3
65c6: 90 93 26 06 sts 0x0626, r25
65ca: 80 93 25 06 sts 0x0625, r24
65ce: 27 c0 rjmp .+78 ; 0x661e <Mittelwert+0xc0e>
else TrimRoll -= ((long) abs(KopplungsteilNickRoll) * Parameter_CouplingYawCorrection) / 64L;
65d0: a0 91 15 06 lds r26, 0x0615
65d4: b0 91 16 06 lds r27, 0x0616
65d8: bb 23 and r27, r27
65da: 1c f4 brge .+6 ; 0x65e2 <Mittelwert+0xbd2>
65dc: b1 95 neg r27
65de: a1 95 neg r26
65e0: b1 09 sbc r27, r1
65e2: 20 91 28 01 lds r18, 0x0128
65e6: 30 e0 ldi r19, 0x00 ; 0
65e8: 0e 94 c2 b1 call 0x16384 ; 0x16384 <__usmulhisi3>
65ec: 8b 01 movw r16, r22
65ee: 9c 01 movw r18, r24
65f0: 99 23 and r25, r25
65f2: 24 f4 brge .+8 ; 0x65fc <Mittelwert+0xbec>
65f4: 01 5c subi r16, 0xC1 ; 193
65f6: 1f 4f sbci r17, 0xFF ; 255
65f8: 2f 4f sbci r18, 0xFF ; 255
65fa: 3f 4f sbci r19, 0xFF ; 255
65fc: d9 01 movw r26, r18
65fe: c8 01 movw r24, r16
6600: 68 94 set
6602: 15 f8 bld r1, 5
6604: b5 95 asr r27
6606: a7 95 ror r26
6608: 97 95 ror r25
660a: 87 95 ror r24
660c: 16 94 lsr r1
660e: d1 f7 brne .-12 ; 0x6604 <Mittelwert+0xbf4>
6610: 71 01 movw r14, r2
6612: e8 1a sub r14, r24
6614: f9 0a sbc r15, r25
6616: f0 92 26 06 sts 0x0626, r15
661a: e0 92 25 06 sts 0x0625, r14
if(RohMesswertNick > 0) TrimNick += ((long) abs(KopplungsteilRollNick) * Parameter_CouplingYawCorrection) / 64L;
661e: e0 90 2f 06 lds r14, 0x062F
6622: f0 90 30 06 lds r15, 0x0630
6626: 1e 14 cp r1, r14
6628: 1f 04 cpc r1, r15
662a: 3c f5 brge .+78 ; 0x667a <Mittelwert+0xc6a>
662c: a0 91 17 06 lds r26, 0x0617
6630: b0 91 18 06 lds r27, 0x0618
6634: bb 23 and r27, r27
6636: 1c f4 brge .+6 ; 0x663e <Mittelwert+0xc2e>
6638: b1 95 neg r27
663a: a1 95 neg r26
663c: b1 09 sbc r27, r1
663e: 20 91 28 01 lds r18, 0x0128
6642: 30 e0 ldi r19, 0x00 ; 0
6644: 0e 94 c2 b1 call 0x16384 ; 0x16384 <__usmulhisi3>
6648: 8b 01 movw r16, r22
664a: 9c 01 movw r18, r24
664c: 99 23 and r25, r25
664e: 24 f4 brge .+8 ; 0x6658 <Mittelwert+0xc48>
6650: 01 5c subi r16, 0xC1 ; 193
6652: 1f 4f sbci r17, 0xFF ; 255
6654: 2f 4f sbci r18, 0xFF ; 255
6656: 3f 4f sbci r19, 0xFF ; 255
6658: d9 01 movw r26, r18
665a: c8 01 movw r24, r16
665c: 68 94 set
665e: 15 f8 bld r1, 5
6660: b5 95 asr r27
6662: a7 95 ror r26
6664: 97 95 ror r25
6666: 87 95 ror r24
6668: 16 94 lsr r1
666a: d1 f7 brne .-12 ; 0x6660 <Mittelwert+0xc50>
666c: 8e 0f add r24, r30
666e: 9f 1f adc r25, r31
6670: 90 93 1f 06 sts 0x061F, r25
6674: 80 93 1e 06 sts 0x061E, r24
6678: 26 c0 rjmp .+76 ; 0x66c6 <Mittelwert+0xcb6>
else TrimNick -= ((long) abs(KopplungsteilRollNick) * Parameter_CouplingYawCorrection) / 64L;
667a: a0 91 17 06 lds r26, 0x0617
667e: b0 91 18 06 lds r27, 0x0618
6682: bb 23 and r27, r27
6684: 1c f4 brge .+6 ; 0x668c <Mittelwert+0xc7c>
6686: b1 95 neg r27
6688: a1 95 neg r26
668a: b1 09 sbc r27, r1
668c: 20 91 28 01 lds r18, 0x0128
6690: 30 e0 ldi r19, 0x00 ; 0
6692: 0e 94 c2 b1 call 0x16384 ; 0x16384 <__usmulhisi3>
6696: 8b 01 movw r16, r22
6698: 9c 01 movw r18, r24
669a: 99 23 and r25, r25
669c: 24 f4 brge .+8 ; 0x66a6 <Mittelwert+0xc96>
669e: 01 5c subi r16, 0xC1 ; 193
66a0: 1f 4f sbci r17, 0xFF ; 255
66a2: 2f 4f sbci r18, 0xFF ; 255
66a4: 3f 4f sbci r19, 0xFF ; 255
66a6: d9 01 movw r26, r18
66a8: c8 01 movw r24, r16
66aa: 68 94 set
66ac: 15 f8 bld r1, 5
66ae: b5 95 asr r27
66b0: a7 95 ror r26
66b2: 97 95 ror r25
66b4: 87 95 ror r24
66b6: 16 94 lsr r1
66b8: d1 f7 brne .-12 ; 0x66ae <Mittelwert+0xc9e>
66ba: e8 1b sub r30, r24
66bc: f9 0b sbc r31, r25
66be: f0 93 1f 06 sts 0x061F, r31
66c2: e0 93 1e 06 sts 0x061E, r30
 
if(Parameter_GlobalConfig & CFG_DREHRATEN_BEGRENZER && !Looping_Nick && !Looping_Roll)
66c6: 80 91 5c 06 lds r24, 0x065C
66ca: 88 23 and r24, r24
66cc: 0c f0 brlt .+2 ; 0x66d0 <Mittelwert+0xcc0>
66ce: 46 c0 rjmp .+140 ; 0x675c <Mittelwert+0xd4c>
66d0: 80 91 e7 03 lds r24, 0x03E7
66d4: 81 11 cpse r24, r1
66d6: 42 c0 rjmp .+132 ; 0x675c <Mittelwert+0xd4c>
66d8: 80 91 e6 03 lds r24, 0x03E6
66dc: 81 11 cpse r24, r1
66de: 3e c0 rjmp .+124 ; 0x675c <Mittelwert+0xd4c>
{
if(RohMesswertNick > 256) MesswertNick += 1 * (RohMesswertNick - 256);
66e0: b1 e0 ldi r27, 0x01 ; 1
66e2: eb 16 cp r14, r27
66e4: fb 06 cpc r15, r27
66e6: 64 f0 brlt .+24 ; 0x6700 <Mittelwert+0xcf0>
66e8: fa 94 dec r15
66ea: 80 91 27 06 lds r24, 0x0627
66ee: 90 91 28 06 lds r25, 0x0628
66f2: e8 0e add r14, r24
66f4: f9 1e adc r15, r25
66f6: f0 92 28 06 sts 0x0628, r15
66fa: e0 92 27 06 sts 0x0627, r14
66fe: 0f c0 rjmp .+30 ; 0x671e <Mittelwert+0xd0e>
else if(RohMesswertNick < -256) MesswertNick += 1 * (RohMesswertNick + 256);
6700: e1 14 cp r14, r1
6702: ff ef ldi r31, 0xFF ; 255
6704: ff 06 cpc r15, r31
6706: 5c f4 brge .+22 ; 0x671e <Mittelwert+0xd0e>
6708: f3 94 inc r15
670a: 80 91 27 06 lds r24, 0x0627
670e: 90 91 28 06 lds r25, 0x0628
6712: e8 0e add r14, r24
6714: f9 1e adc r15, r25
6716: f0 92 28 06 sts 0x0628, r15
671a: e0 92 27 06 sts 0x0627, r14
if(RohMesswertRoll > 256) MesswertRoll += 1 * (RohMesswertRoll - 256);
671e: 41 30 cpi r20, 0x01 ; 1
6720: 11 e0 ldi r17, 0x01 ; 1
6722: 51 07 cpc r21, r17
6724: 64 f0 brlt .+24 ; 0x673e <Mittelwert+0xd2e>
6726: 5a 95 dec r21
6728: 80 91 1c 06 lds r24, 0x061C
672c: 90 91 1d 06 lds r25, 0x061D
6730: 48 0f add r20, r24
6732: 59 1f adc r21, r25
6734: 50 93 1d 06 sts 0x061D, r21
6738: 40 93 1c 06 sts 0x061C, r20
673c: 0f c0 rjmp .+30 ; 0x675c <Mittelwert+0xd4c>
else if(RohMesswertRoll < -256) MesswertRoll += 1 * (RohMesswertRoll + 256);
673e: 41 15 cp r20, r1
6740: 2f ef ldi r18, 0xFF ; 255
6742: 52 07 cpc r21, r18
6744: 5c f4 brge .+22 ; 0x675c <Mittelwert+0xd4c>
6746: 53 95 inc r21
6748: 80 91 1c 06 lds r24, 0x061C
674c: 90 91 1d 06 lds r25, 0x061D
6750: 48 0f add r20, r24
6752: 59 1f adc r21, r25
6754: 50 93 1d 06 sts 0x061D, r21
6758: 40 93 1c 06 sts 0x061C, r20
}
}
675c: 60 96 adiw r28, 0x10 ; 16
675e: 0f b6 in r0, 0x3f ; 63
6760: f8 94 cli
6762: de bf out 0x3e, r29 ; 62
6764: 0f be out 0x3f, r0 ; 63
6766: cd bf out 0x3d, r28 ; 61
6768: df 91 pop r29
676a: cf 91 pop r28
676c: 1f 91 pop r17
676e: 0f 91 pop r16
6770: ff 90 pop r15
6772: ef 90 pop r14
6774: df 90 pop r13
6776: cf 90 pop r12
6778: bf 90 pop r11
677a: af 90 pop r10
677c: 9f 90 pop r9
677e: 8f 90 pop r8
6780: 7f 90 pop r7
6782: 6f 90 pop r6
6784: 5f 90 pop r5
6786: 4f 90 pop r4
6788: 3f 90 pop r3
678a: 2f 90 pop r2
678c: 08 95 ret
 
0000678e <SendMotorData>:
 
//############################################################################
// Senden der Motorwerte per I2C-Bus
void SendMotorData(void)
//############################################################################
{
678e: cf 93 push r28
6790: df 93 push r29
unsigned char i;
if(!MotorenEin)
6792: 80 91 03 04 lds r24, 0x0403
6796: 81 11 cpse r24, r1
6798: 28 c0 rjmp .+80 ; 0x67ea <SendMotorData+0x5c>
{
FC_StatusFlags &= ~(FC_STATUS_MOTOR_RUN | FC_STATUS_FLY);
679a: 80 91 cb 03 lds r24, 0x03CB
679e: 8c 7f andi r24, 0xFC ; 252
67a0: 80 93 cb 03 sts 0x03CB, r24
FC_StatusFlags2 &= ~FC_STATUS2_WAIT_FOR_TAKEOFF;
67a4: 80 91 ca 03 lds r24, 0x03CA
67a8: 8f 7d andi r24, 0xDF ; 223
67aa: 80 93 ca 03 sts 0x03CA, r24
67ae: a7 e6 ldi r26, 0x67 ; 103
67b0: ba e0 ldi r27, 0x0A ; 10
67b2: e9 e9 ldi r30, 0x99 ; 153
67b4: f9 e0 ldi r31, 0x09 ; 9
67b6: 83 e7 ldi r24, 0x73 ; 115
67b8: 9a e0 ldi r25, 0x0A ; 10
for(i=0;i<MAX_MOTORS;i++)
{
if(!PC_MotortestActive) MotorTest[i] = 0;
67ba: 20 91 f5 04 lds r18, 0x04F5
67be: 21 11 cpse r18, r1
67c0: 01 c0 rjmp .+2 ; 0x67c4 <SendMotorData+0x36>
67c2: 1c 92 st X, r1
Motor[i].SetPoint = MotorTest[i];
67c4: 2d 91 ld r18, X+
67c6: ef 01 movw r28, r30
67c8: 21 97 sbiw r28, 0x01 ; 1
67ca: 28 83 st Y, r18
Motor[i].SetPointLowerBits = 0;
67cc: 10 82 st Z, r1
67ce: 3f 96 adiw r30, 0x0f ; 15
unsigned char i;
if(!MotorenEin)
{
FC_StatusFlags &= ~(FC_STATUS_MOTOR_RUN | FC_STATUS_FLY);
FC_StatusFlags2 &= ~FC_STATUS2_WAIT_FOR_TAKEOFF;
for(i=0;i<MAX_MOTORS;i++)
67d0: a8 17 cp r26, r24
67d2: b9 07 cpc r27, r25
67d4: 91 f7 brne .-28 ; 0x67ba <SendMotorData+0x2c>
/*
Motor[i].SetPoint = MotorTest[i] / 4; // testing the high resolution
Motor[i].SetPointLowerBits = MotorTest[i] % 4;
*/
}
if(PC_MotortestActive) PC_MotortestActive--;
67d6: 80 91 f5 04 lds r24, 0x04F5
67da: 88 23 and r24, r24
67dc: 59 f0 breq .+22 ; 0x67f4 <SendMotorData+0x66>
67de: 80 91 f5 04 lds r24, 0x04F5
67e2: 81 50 subi r24, 0x01 ; 1
67e4: 80 93 f5 04 sts 0x04F5, r24
67e8: 05 c0 rjmp .+10 ; 0x67f4 <SendMotorData+0x66>
}
else FC_StatusFlags |= FC_STATUS_MOTOR_RUN;
67ea: 80 91 cb 03 lds r24, 0x03CB
67ee: 81 60 ori r24, 0x01 ; 1
67f0: 80 93 cb 03 sts 0x03CB, r24
return;
}
}
#endif
 
if(I2C_TransferActive)
67f4: 80 91 e0 04 lds r24, 0x04E0
67f8: 88 23 and r24, r24
67fa: 19 f0 breq .+6 ; 0x6802 <SendMotorData+0x74>
{
I2C_TransferActive = 0; // enable for the next time
67fc: 10 92 e0 04 sts 0x04E0, r1
6800: 0a c0 rjmp .+20 ; 0x6816 <SendMotorData+0x88>
}
else
{
// motor_write = 0;
I2C_Start(TWI_STATE_MOTOR_TX); //Start I2C Interrupt Mode
6802: 10 92 e3 04 sts 0x04E3, r1
6806: 80 91 de 04 lds r24, 0x04DE
680a: 8e 7f andi r24, 0xFE ; 254
680c: 80 93 de 04 sts 0x04DE, r24
6810: 85 ea ldi r24, 0xA5 ; 165
6812: 80 93 bc 00 sts 0x00BC, r24
}
}
6816: df 91 pop r29
6818: cf 91 pop r28
681a: 08 95 ret
 
0000681c <GetChannelValue>:
 
unsigned char GetChannelValue(unsigned char ch) // gives the unsigned value of the channel
{
int tmp2;
if(ch == 0) return(0);
681c: 88 23 and r24, r24
681e: a9 f0 breq .+42 ; 0x684a <GetChannelValue+0x2e>
tmp2 = PPM_in[ch] + 127;
6820: e8 2f mov r30, r24
6822: f0 e0 ldi r31, 0x00 ; 0
6824: ee 0f add r30, r30
6826: ff 1f adc r31, r31
6828: ef 5c subi r30, 0xCF ; 207
682a: f7 4f sbci r31, 0xF7 ; 247
682c: 80 81 ld r24, Z
682e: 91 81 ldd r25, Z+1 ; 0x01
6830: 81 58 subi r24, 0x81 ; 129
6832: 9f 4f sbci r25, 0xFF ; 255
6834: 99 23 and r25, r25
6836: 14 f4 brge .+4 ; 0x683c <GetChannelValue+0x20>
6838: 80 e0 ldi r24, 0x00 ; 0
683a: 90 e0 ldi r25, 0x00 ; 0
683c: 8f 3f cpi r24, 0xFF ; 255
683e: 91 05 cpc r25, r1
6840: 29 f0 breq .+10 ; 0x684c <GetChannelValue+0x30>
6842: 24 f0 brlt .+8 ; 0x684c <GetChannelValue+0x30>
6844: 8f ef ldi r24, 0xFF ; 255
6846: 90 e0 ldi r25, 0x00 ; 0
if(tmp2 > 255) tmp2 = 255; else if(tmp2 < 0) tmp2 = 0;
return(tmp2);
6848: 08 95 ret
}
 
unsigned char GetChannelValue(unsigned char ch) // gives the unsigned value of the channel
{
int tmp2;
if(ch == 0) return(0);
684a: 80 e0 ldi r24, 0x00 ; 0
tmp2 = PPM_in[ch] + 127;
if(tmp2 > 255) tmp2 = 255; else if(tmp2 < 0) tmp2 = 0;
return(tmp2);
}
684c: 08 95 ret
 
0000684e <ParameterZuordnung>:
 
//############################################################################
// Trägt ggf. das Poti als Parameter ein
void ParameterZuordnung(void)
//############################################################################
{
684e: df 92 push r13
6850: ef 92 push r14
6852: ff 92 push r15
6854: 0f 93 push r16
6856: 1f 93 push r17
6858: cf 93 push r28
685a: df 93 push r29
685c: a3 e4 ldi r26, 0x43 ; 67
685e: b5 e0 ldi r27, 0x05 ; 5
6860: e5 e0 ldi r30, 0x05 ; 5
6862: f4 e0 ldi r31, 0x04 ; 4
6864: 4b e4 ldi r20, 0x4B ; 75
6866: 55 e0 ldi r21, 0x05 ; 5
6868: e1 2c mov r14, r1
686a: f1 2c mov r15, r1
686c: 0f ef ldi r16, 0xFF ; 255
686e: 10 e0 ldi r17, 0x00 ; 0
unsigned char tmp,i;
for(i=0;i<8;i++)
{
int tmp2;
tmp = EE_Parameter.Kanalbelegung[K_POTI1 + i];
6870: 2d 91 ld r18, X+
tmp2 = PPM_in[tmp] + 127;
6872: c2 2f mov r28, r18
6874: d0 e0 ldi r29, 0x00 ; 0
6876: cc 0f add r28, r28
6878: dd 1f adc r29, r29
687a: cf 5c subi r28, 0xCF ; 207
687c: d7 4f sbci r29, 0xF7 ; 247
687e: 88 81 ld r24, Y
6880: 99 81 ldd r25, Y+1 ; 0x01
6882: 81 58 subi r24, 0x81 ; 129
6884: 9f 4f sbci r25, 0xFF ; 255
6886: 99 23 and r25, r25
6888: 14 f4 brge .+4 ; 0x688e <ParameterZuordnung+0x40>
688a: 8e 2d mov r24, r14
688c: 9f 2d mov r25, r15
688e: 8f 3f cpi r24, 0xFF ; 255
6890: 91 05 cpc r25, r1
6892: 19 f0 breq .+6 ; 0x689a <ParameterZuordnung+0x4c>
6894: 14 f0 brlt .+4 ; 0x689a <ParameterZuordnung+0x4c>
6896: 80 2f mov r24, r16
6898: 91 2f mov r25, r17
if(tmp2 > 255) tmp2 = 255; else if(tmp2 < 0) tmp2 = 0;
 
if(tmp == 25) Poti[i] = tmp2; // 25 = WaypointEvent channel -> no filter
689a: 29 31 cpi r18, 0x19 ; 25
689c: 11 f4 brne .+4 ; 0x68a2 <ParameterZuordnung+0x54>
689e: 80 83 st Z, r24
68a0: 1e c0 rjmp .+60 ; 0x68de <ParameterZuordnung+0x90>
68a2: ef 01 movw r28, r30
else
if(tmp2 != Poti[i])
68a4: d0 80 ld r13, Z
68a6: 2d 2d mov r18, r13
68a8: 30 e0 ldi r19, 0x00 ; 0
68aa: 28 17 cp r18, r24
68ac: 39 07 cpc r19, r25
68ae: b9 f0 breq .+46 ; 0x68de <ParameterZuordnung+0x90>
{
Poti[i] += (tmp2 - Poti[i]) / 4;
68b0: bc 01 movw r22, r24
68b2: 62 1b sub r22, r18
68b4: 73 0b sbc r23, r19
68b6: 9b 01 movw r18, r22
68b8: 12 f4 brpl .+4 ; 0x68be <ParameterZuordnung+0x70>
68ba: 2d 5f subi r18, 0xFD ; 253
68bc: 3f 4f sbci r19, 0xFF ; 255
68be: 35 95 asr r19
68c0: 27 95 ror r18
68c2: 35 95 asr r19
68c4: 27 95 ror r18
68c6: 2d 0d add r18, r13
68c8: 28 83 st Y, r18
if(Poti[i] > tmp2) Poti[i]--;
68ca: 62 2f mov r22, r18
68cc: 70 e0 ldi r23, 0x00 ; 0
68ce: 86 17 cp r24, r22
68d0: 97 07 cpc r25, r23
68d2: 1c f4 brge .+6 ; 0x68da <ParameterZuordnung+0x8c>
68d4: 21 50 subi r18, 0x01 ; 1
68d6: 28 83 st Y, r18
68d8: 02 c0 rjmp .+4 ; 0x68de <ParameterZuordnung+0x90>
else Poti[i]++;
68da: 2f 5f subi r18, 0xFF ; 255
68dc: 28 83 st Y, r18
68de: 31 96 adiw r30, 0x01 ; 1
// Trägt ggf. das Poti als Parameter ein
void ParameterZuordnung(void)
//############################################################################
{
unsigned char tmp,i;
for(i=0;i<8;i++)
68e0: a4 17 cp r26, r20
68e2: b5 07 cpc r27, r21
68e4: 29 f6 brne .-118 ; 0x6870 <ParameterZuordnung+0x22>
Poti[i] += (tmp2 - Poti[i]) / 4;
if(Poti[i] > tmp2) Poti[i]--;
else Poti[i]++;
}
}
CHK_POTI_MM(Parameter_Luftdruck_D,EE_Parameter.Luftdruck_D,0,100);
68e6: 80 91 4d 05 lds r24, 0x054D
68ea: 88 3f cpi r24, 0xF8 ; 248
68ec: 18 f4 brcc .+6 ; 0x68f4 <ParameterZuordnung+0xa6>
68ee: 80 93 3a 01 sts 0x013A, r24
68f2: 09 c0 rjmp .+18 ; 0x6906 <ParameterZuordnung+0xb8>
68f4: ef ef ldi r30, 0xFF ; 255
68f6: f0 e0 ldi r31, 0x00 ; 0
68f8: e8 1b sub r30, r24
68fa: f1 09 sbc r31, r1
68fc: eb 5f subi r30, 0xFB ; 251
68fe: fb 4f sbci r31, 0xFB ; 251
6900: 80 81 ld r24, Z
6902: 80 93 3a 01 sts 0x013A, r24
6906: 80 91 3a 01 lds r24, 0x013A
690a: 84 36 cpi r24, 0x64 ; 100
690c: 18 f0 brcs .+6 ; 0x6914 <ParameterZuordnung+0xc6>
690e: 84 e6 ldi r24, 0x64 ; 100
6910: 80 93 3a 01 sts 0x013A, r24
CHK_POTI_MM(Parameter_Hoehe_P,EE_Parameter.Hoehe_P,0,100);
6914: 80 91 4f 05 lds r24, 0x054F
6918: 88 3f cpi r24, 0xF8 ; 248
691a: 18 f4 brcc .+6 ; 0x6922 <ParameterZuordnung+0xd4>
691c: 80 93 39 01 sts 0x0139, r24
6920: 09 c0 rjmp .+18 ; 0x6934 <ParameterZuordnung+0xe6>
6922: ef ef ldi r30, 0xFF ; 255
6924: f0 e0 ldi r31, 0x00 ; 0
6926: e8 1b sub r30, r24
6928: f1 09 sbc r31, r1
692a: eb 5f subi r30, 0xFB ; 251
692c: fb 4f sbci r31, 0xFB ; 251
692e: 80 81 ld r24, Z
6930: 80 93 39 01 sts 0x0139, r24
6934: 80 91 39 01 lds r24, 0x0139
6938: 84 36 cpi r24, 0x64 ; 100
693a: 18 f0 brcs .+6 ; 0x6942 <ParameterZuordnung+0xf4>
693c: 84 e6 ldi r24, 0x64 ; 100
693e: 80 93 39 01 sts 0x0139, r24
CHK_POTI_MM(Parameter_Gyro_P,EE_Parameter.Gyro_P,10,255);
6942: 80 91 5c 05 lds r24, 0x055C
6946: 88 3f cpi r24, 0xF8 ; 248
6948: 18 f4 brcc .+6 ; 0x6950 <ParameterZuordnung+0x102>
694a: 80 93 34 01 sts 0x0134, r24
694e: 09 c0 rjmp .+18 ; 0x6962 <ParameterZuordnung+0x114>
6950: ef ef ldi r30, 0xFF ; 255
6952: f0 e0 ldi r31, 0x00 ; 0
6954: e8 1b sub r30, r24
6956: f1 09 sbc r31, r1
6958: eb 5f subi r30, 0xFB ; 251
695a: fb 4f sbci r31, 0xFB ; 251
695c: 80 81 ld r24, Z
695e: 80 93 34 01 sts 0x0134, r24
6962: 80 91 34 01 lds r24, 0x0134
6966: 8b 30 cpi r24, 0x0B ; 11
6968: 18 f4 brcc .+6 ; 0x6970 <ParameterZuordnung+0x122>
696a: 8a e0 ldi r24, 0x0A ; 10
696c: 80 93 34 01 sts 0x0134, r24
CHK_POTI_MM(Parameter_J16Timing,EE_Parameter.J16Timing,5,255);
6970: 80 91 89 05 lds r24, 0x0589
6974: 88 3f cpi r24, 0xF8 ; 248
6976: 18 f4 brcc .+6 ; 0x697e <ParameterZuordnung+0x130>
6978: 80 93 3b 06 sts 0x063B, r24
697c: 09 c0 rjmp .+18 ; 0x6990 <ParameterZuordnung+0x142>
697e: ef ef ldi r30, 0xFF ; 255
6980: f0 e0 ldi r31, 0x00 ; 0
6982: e8 1b sub r30, r24
6984: f1 09 sbc r31, r1
6986: eb 5f subi r30, 0xFB ; 251
6988: fb 4f sbci r31, 0xFB ; 251
698a: 80 81 ld r24, Z
698c: 80 93 3b 06 sts 0x063B, r24
6990: 80 91 3b 06 lds r24, 0x063B
6994: 86 30 cpi r24, 0x06 ; 6
6996: 18 f4 brcc .+6 ; 0x699e <ParameterZuordnung+0x150>
6998: 85 e0 ldi r24, 0x05 ; 5
699a: 80 93 3b 06 sts 0x063B, r24
CHK_POTI_MM(Parameter_J17Timing,EE_Parameter.J17Timing,5,255);
699e: 80 91 8b 05 lds r24, 0x058B
69a2: 88 3f cpi r24, 0xF8 ; 248
69a4: 18 f4 brcc .+6 ; 0x69ac <ParameterZuordnung+0x15e>
69a6: 80 93 63 06 sts 0x0663, r24
69aa: 09 c0 rjmp .+18 ; 0x69be <ParameterZuordnung+0x170>
69ac: ef ef ldi r30, 0xFF ; 255
69ae: f0 e0 ldi r31, 0x00 ; 0
69b0: e8 1b sub r30, r24
69b2: f1 09 sbc r31, r1
69b4: eb 5f subi r30, 0xFB ; 251
69b6: fb 4f sbci r31, 0xFB ; 251
69b8: 80 81 ld r24, Z
69ba: 80 93 63 06 sts 0x0663, r24
69be: 80 91 63 06 lds r24, 0x0663
69c2: 86 30 cpi r24, 0x06 ; 6
69c4: 18 f4 brcc .+6 ; 0x69cc <ParameterZuordnung+0x17e>
69c6: 85 e0 ldi r24, 0x05 ; 5
69c8: 80 93 63 06 sts 0x0663, r24
if(EE_Parameter.Servo3 == 247) { if(PORTC & (1<<PORTC2)) Parameter_Servo3 = EE_Parameter.Servo3OnValue; else Parameter_Servo3 = EE_Parameter.Servo3OffValue;} // Out1 (J16)
69cc: 80 91 76 05 lds r24, 0x0576
69d0: 87 3f cpi r24, 0xF7 ; 247
69d2: 61 f4 brne .+24 ; 0x69ec <ParameterZuordnung+0x19e>
69d4: 42 9b sbis 0x08, 2 ; 8
69d6: 05 c0 rjmp .+10 ; 0x69e2 <ParameterZuordnung+0x194>
69d8: 80 91 ab 05 lds r24, 0x05AB
69dc: 80 93 38 06 sts 0x0638, r24
69e0: 28 c0 rjmp .+80 ; 0x6a32 <ParameterZuordnung+0x1e4>
69e2: 80 91 ac 05 lds r24, 0x05AC
69e6: 80 93 38 06 sts 0x0638, r24
69ea: 23 c0 rjmp .+70 ; 0x6a32 <ParameterZuordnung+0x1e4>
else if(EE_Parameter.Servo3 == 246) { if(PORTC & (1<<PORTC3)) Parameter_Servo3 = EE_Parameter.Servo3OnValue; else Parameter_Servo3 = EE_Parameter.Servo3OffValue;}
69ec: 86 3f cpi r24, 0xF6 ; 246
69ee: 61 f4 brne .+24 ; 0x6a08 <ParameterZuordnung+0x1ba>
69f0: 43 9b sbis 0x08, 3 ; 8
69f2: 05 c0 rjmp .+10 ; 0x69fe <ParameterZuordnung+0x1b0>
69f4: 80 91 ab 05 lds r24, 0x05AB
69f8: 80 93 38 06 sts 0x0638, r24
69fc: 1a c0 rjmp .+52 ; 0x6a32 <ParameterZuordnung+0x1e4>
69fe: 80 91 ac 05 lds r24, 0x05AC
6a02: 80 93 38 06 sts 0x0638, r24
6a06: 15 c0 rjmp .+42 ; 0x6a32 <ParameterZuordnung+0x1e4>
else CHK_POTI_MM(Parameter_Servo3,EE_Parameter.Servo3, 24, 255);
6a08: 88 3f cpi r24, 0xF8 ; 248
6a0a: 18 f4 brcc .+6 ; 0x6a12 <ParameterZuordnung+0x1c4>
6a0c: 80 93 38 06 sts 0x0638, r24
6a10: 09 c0 rjmp .+18 ; 0x6a24 <ParameterZuordnung+0x1d6>
6a12: ef ef ldi r30, 0xFF ; 255
6a14: f0 e0 ldi r31, 0x00 ; 0
6a16: e8 1b sub r30, r24
6a18: f1 09 sbc r31, r1
6a1a: eb 5f subi r30, 0xFB ; 251
6a1c: fb 4f sbci r31, 0xFB ; 251
6a1e: 80 81 ld r24, Z
6a20: 80 93 38 06 sts 0x0638, r24
6a24: 80 91 38 06 lds r24, 0x0638
6a28: 89 31 cpi r24, 0x19 ; 25
6a2a: 18 f4 brcc .+6 ; 0x6a32 <ParameterZuordnung+0x1e4>
6a2c: 88 e1 ldi r24, 0x18 ; 24
6a2e: 80 93 38 06 sts 0x0638, r24
 
if(EE_Parameter.Servo4 == 247) { if(PORTC & (1<<PORTC2)) Parameter_Servo4 = EE_Parameter.Servo4OnValue; else Parameter_Servo4 = EE_Parameter.Servo4OffValue;}
6a32: 80 91 77 05 lds r24, 0x0577
6a36: 87 3f cpi r24, 0xF7 ; 247
6a38: 61 f4 brne .+24 ; 0x6a52 <ParameterZuordnung+0x204>
6a3a: 42 9b sbis 0x08, 2 ; 8
6a3c: 05 c0 rjmp .+10 ; 0x6a48 <ParameterZuordnung+0x1fa>
6a3e: 80 91 ad 05 lds r24, 0x05AD
6a42: 80 93 19 06 sts 0x0619, r24
6a46: 28 c0 rjmp .+80 ; 0x6a98 <ParameterZuordnung+0x24a>
6a48: 80 91 ae 05 lds r24, 0x05AE
6a4c: 80 93 19 06 sts 0x0619, r24
6a50: 23 c0 rjmp .+70 ; 0x6a98 <ParameterZuordnung+0x24a>
else if(EE_Parameter.Servo4 == 246) { if(PORTC & (1<<PORTC3)) Parameter_Servo4 = EE_Parameter.Servo4OnValue; else Parameter_Servo4 = EE_Parameter.Servo4OffValue;} // Out2 (J17)
6a52: 86 3f cpi r24, 0xF6 ; 246
6a54: 61 f4 brne .+24 ; 0x6a6e <ParameterZuordnung+0x220>
6a56: 43 9b sbis 0x08, 3 ; 8
6a58: 05 c0 rjmp .+10 ; 0x6a64 <ParameterZuordnung+0x216>
6a5a: 80 91 ad 05 lds r24, 0x05AD
6a5e: 80 93 19 06 sts 0x0619, r24
6a62: 1a c0 rjmp .+52 ; 0x6a98 <ParameterZuordnung+0x24a>
6a64: 80 91 ae 05 lds r24, 0x05AE
6a68: 80 93 19 06 sts 0x0619, r24
6a6c: 15 c0 rjmp .+42 ; 0x6a98 <ParameterZuordnung+0x24a>
else CHK_POTI_MM(Parameter_Servo4,EE_Parameter.Servo4, 24, 255);
6a6e: 88 3f cpi r24, 0xF8 ; 248
6a70: 18 f4 brcc .+6 ; 0x6a78 <ParameterZuordnung+0x22a>
6a72: 80 93 19 06 sts 0x0619, r24
6a76: 09 c0 rjmp .+18 ; 0x6a8a <ParameterZuordnung+0x23c>
6a78: ef ef ldi r30, 0xFF ; 255
6a7a: f0 e0 ldi r31, 0x00 ; 0
6a7c: e8 1b sub r30, r24
6a7e: f1 09 sbc r31, r1
6a80: eb 5f subi r30, 0xFB ; 251
6a82: fb 4f sbci r31, 0xFB ; 251
6a84: 80 81 ld r24, Z
6a86: 80 93 19 06 sts 0x0619, r24
6a8a: 80 91 19 06 lds r24, 0x0619
6a8e: 89 31 cpi r24, 0x19 ; 25
6a90: 18 f4 brcc .+6 ; 0x6a98 <ParameterZuordnung+0x24a>
6a92: 88 e1 ldi r24, 0x18 ; 24
6a94: 80 93 19 06 sts 0x0619, r24
 
CHK_POTI_MM(Parameter_Servo5,EE_Parameter.Servo5, 24, 255);
6a98: 80 91 78 05 lds r24, 0x0578
6a9c: 88 3f cpi r24, 0xF8 ; 248
6a9e: 18 f4 brcc .+6 ; 0x6aa6 <ParameterZuordnung+0x258>
6aa0: 80 93 41 06 sts 0x0641, r24
6aa4: 09 c0 rjmp .+18 ; 0x6ab8 <ParameterZuordnung+0x26a>
6aa6: ef ef ldi r30, 0xFF ; 255
6aa8: f0 e0 ldi r31, 0x00 ; 0
6aaa: e8 1b sub r30, r24
6aac: f1 09 sbc r31, r1
6aae: eb 5f subi r30, 0xFB ; 251
6ab0: fb 4f sbci r31, 0xFB ; 251
6ab2: 80 81 ld r24, Z
6ab4: 80 93 41 06 sts 0x0641, r24
6ab8: 80 91 41 06 lds r24, 0x0641
6abc: 89 31 cpi r24, 0x19 ; 25
6abe: 18 f4 brcc .+6 ; 0x6ac6 <ParameterZuordnung+0x278>
6ac0: 88 e1 ldi r24, 0x18 ; 24
6ac2: 80 93 41 06 sts 0x0641, r24
Parameter_HoehenSchalter = GetChannelValue(EE_Parameter.HoeheChannel);
6ac6: 80 91 4e 05 lds r24, 0x054E
6aca: a8 de rcall .-688 ; 0x681c <GetChannelValue>
6acc: 80 93 e1 03 sts 0x03E1, r24
CHK_POTI(Parameter_Hoehe_ACC_Wirkung,EE_Parameter.Hoehe_ACC_Wirkung);
6ad0: 80 91 51 05 lds r24, 0x0551
6ad4: 88 3f cpi r24, 0xF8 ; 248
6ad6: 18 f4 brcc .+6 ; 0x6ade <ParameterZuordnung+0x290>
6ad8: 80 93 38 01 sts 0x0138, r24
6adc: 09 c0 rjmp .+18 ; 0x6af0 <ParameterZuordnung+0x2a2>
6ade: ef ef ldi r30, 0xFF ; 255
6ae0: f0 e0 ldi r31, 0x00 ; 0
6ae2: e8 1b sub r30, r24
6ae4: f1 09 sbc r31, r1
6ae6: eb 5f subi r30, 0xFB ; 251
6ae8: fb 4f sbci r31, 0xFB ; 251
6aea: 80 81 ld r24, Z
6aec: 80 93 38 01 sts 0x0138, r24
CHK_POTI(Parameter_Hoehe_TiltCompensation,EE_Parameter.Hoehe_TiltCompensation);
6af0: 80 91 53 05 lds r24, 0x0553
6af4: 88 3f cpi r24, 0xF8 ; 248
6af6: 18 f4 brcc .+6 ; 0x6afe <ParameterZuordnung+0x2b0>
6af8: 80 93 36 01 sts 0x0136, r24
6afc: 09 c0 rjmp .+18 ; 0x6b10 <ParameterZuordnung+0x2c2>
6afe: ef ef ldi r30, 0xFF ; 255
6b00: f0 e0 ldi r31, 0x00 ; 0
6b02: e8 1b sub r30, r24
6b04: f1 09 sbc r31, r1
6b06: eb 5f subi r30, 0xFB ; 251
6b08: fb 4f sbci r31, 0xFB ; 251
6b0a: 80 81 ld r24, Z
6b0c: 80 93 36 01 sts 0x0136, r24
CHK_POTI(Parameter_KompassWirkung,EE_Parameter.KompassWirkung);
6b10: 80 91 5b 05 lds r24, 0x055B
6b14: 88 3f cpi r24, 0xF8 ; 248
6b16: 18 f4 brcc .+6 ; 0x6b1e <ParameterZuordnung+0x2d0>
6b18: 80 93 37 01 sts 0x0137, r24
6b1c: 09 c0 rjmp .+18 ; 0x6b30 <ParameterZuordnung+0x2e2>
6b1e: ef ef ldi r30, 0xFF ; 255
6b20: f0 e0 ldi r31, 0x00 ; 0
6b22: e8 1b sub r30, r24
6b24: f1 09 sbc r31, r1
6b26: eb 5f subi r30, 0xFB ; 251
6b28: fb 4f sbci r31, 0xFB ; 251
6b2a: 80 81 ld r24, Z
6b2c: 80 93 37 01 sts 0x0137, r24
CHK_POTI(Parameter_Gyro_I,EE_Parameter.Gyro_I);
6b30: 80 91 5d 05 lds r24, 0x055D
6b34: 88 3f cpi r24, 0xF8 ; 248
6b36: 18 f4 brcc .+6 ; 0x6b3e <ParameterZuordnung+0x2f0>
6b38: 80 93 33 01 sts 0x0133, r24
6b3c: 09 c0 rjmp .+18 ; 0x6b50 <ParameterZuordnung+0x302>
6b3e: ef ef ldi r30, 0xFF ; 255
6b40: f0 e0 ldi r31, 0x00 ; 0
6b42: e8 1b sub r30, r24
6b44: f1 09 sbc r31, r1
6b46: eb 5f subi r30, 0xFB ; 251
6b48: fb 4f sbci r31, 0xFB ; 251
6b4a: 80 81 ld r24, Z
6b4c: 80 93 33 01 sts 0x0133, r24
CHK_POTI(Parameter_Gyro_D,EE_Parameter.Gyro_D);
6b50: 80 91 5e 05 lds r24, 0x055E
6b54: 88 3f cpi r24, 0xF8 ; 248
6b56: 18 f4 brcc .+6 ; 0x6b5e <ParameterZuordnung+0x310>
6b58: 80 93 35 01 sts 0x0135, r24
6b5c: 09 c0 rjmp .+18 ; 0x6b70 <ParameterZuordnung+0x322>
6b5e: ef ef ldi r30, 0xFF ; 255
6b60: f0 e0 ldi r31, 0x00 ; 0
6b62: e8 1b sub r30, r24
6b64: f1 09 sbc r31, r1
6b66: eb 5f subi r30, 0xFB ; 251
6b68: fb 4f sbci r31, 0xFB ; 251
6b6a: 80 81 ld r24, Z
6b6c: 80 93 35 01 sts 0x0135, r24
CHK_POTI(Parameter_Gyro_Gier_P,EE_Parameter.Gyro_Gier_P);
6b70: 80 91 5f 05 lds r24, 0x055F
6b74: 88 3f cpi r24, 0xF8 ; 248
6b76: 18 f4 brcc .+6 ; 0x6b7e <ParameterZuordnung+0x330>
6b78: 80 93 32 01 sts 0x0132, r24
6b7c: 09 c0 rjmp .+18 ; 0x6b90 <ParameterZuordnung+0x342>
6b7e: ef ef ldi r30, 0xFF ; 255
6b80: f0 e0 ldi r31, 0x00 ; 0
6b82: e8 1b sub r30, r24
6b84: f1 09 sbc r31, r1
6b86: eb 5f subi r30, 0xFB ; 251
6b88: fb 4f sbci r31, 0xFB ; 251
6b8a: 80 81 ld r24, Z
6b8c: 80 93 32 01 sts 0x0132, r24
CHK_POTI(Parameter_Gyro_Gier_I,EE_Parameter.Gyro_Gier_I);
6b90: 80 91 60 05 lds r24, 0x0560
6b94: 88 3f cpi r24, 0xF8 ; 248
6b96: 18 f4 brcc .+6 ; 0x6b9e <ParameterZuordnung+0x350>
6b98: 80 93 31 01 sts 0x0131, r24
6b9c: 09 c0 rjmp .+18 ; 0x6bb0 <ParameterZuordnung+0x362>
6b9e: ef ef ldi r30, 0xFF ; 255
6ba0: f0 e0 ldi r31, 0x00 ; 0
6ba2: e8 1b sub r30, r24
6ba4: f1 09 sbc r31, r1
6ba6: eb 5f subi r30, 0xFB ; 251
6ba8: fb 4f sbci r31, 0xFB ; 251
6baa: 80 81 ld r24, Z
6bac: 80 93 31 01 sts 0x0131, r24
CHK_POTI(Parameter_I_Faktor,EE_Parameter.I_Faktor);
6bb0: 80 91 66 05 lds r24, 0x0566
6bb4: 88 3f cpi r24, 0xF8 ; 248
6bb6: 18 f4 brcc .+6 ; 0x6bbe <ParameterZuordnung+0x370>
6bb8: 80 93 30 01 sts 0x0130, r24
6bbc: 09 c0 rjmp .+18 ; 0x6bd0 <ParameterZuordnung+0x382>
6bbe: ef ef ldi r30, 0xFF ; 255
6bc0: f0 e0 ldi r31, 0x00 ; 0
6bc2: e8 1b sub r30, r24
6bc4: f1 09 sbc r31, r1
6bc6: eb 5f subi r30, 0xFB ; 251
6bc8: fb 4f sbci r31, 0xFB ; 251
6bca: 80 81 ld r24, Z
6bcc: 80 93 30 01 sts 0x0130, r24
CHK_POTI(Parameter_UserParam1,EE_Parameter.UserParam1);
6bd0: 80 91 67 05 lds r24, 0x0567
6bd4: 88 3f cpi r24, 0xF8 ; 248
6bd6: 18 f4 brcc .+6 ; 0x6bde <ParameterZuordnung+0x390>
6bd8: 80 93 e0 03 sts 0x03E0, r24
6bdc: 09 c0 rjmp .+18 ; 0x6bf0 <ParameterZuordnung+0x3a2>
6bde: ef ef ldi r30, 0xFF ; 255
6be0: f0 e0 ldi r31, 0x00 ; 0
6be2: e8 1b sub r30, r24
6be4: f1 09 sbc r31, r1
6be6: eb 5f subi r30, 0xFB ; 251
6be8: fb 4f sbci r31, 0xFB ; 251
6bea: 80 81 ld r24, Z
6bec: 80 93 e0 03 sts 0x03E0, r24
CHK_POTI(Parameter_UserParam2,EE_Parameter.UserParam2);
6bf0: 80 91 68 05 lds r24, 0x0568
6bf4: 88 3f cpi r24, 0xF8 ; 248
6bf6: 18 f4 brcc .+6 ; 0x6bfe <ParameterZuordnung+0x3b0>
6bf8: 80 93 df 03 sts 0x03DF, r24
6bfc: 09 c0 rjmp .+18 ; 0x6c10 <ParameterZuordnung+0x3c2>
6bfe: ef ef ldi r30, 0xFF ; 255
6c00: f0 e0 ldi r31, 0x00 ; 0
6c02: e8 1b sub r30, r24
6c04: f1 09 sbc r31, r1
6c06: eb 5f subi r30, 0xFB ; 251
6c08: fb 4f sbci r31, 0xFB ; 251
6c0a: 80 81 ld r24, Z
6c0c: 80 93 df 03 sts 0x03DF, r24
CHK_POTI(Parameter_UserParam3,EE_Parameter.UserParam3);
6c10: 80 91 69 05 lds r24, 0x0569
6c14: 88 3f cpi r24, 0xF8 ; 248
6c16: 18 f4 brcc .+6 ; 0x6c1e <ParameterZuordnung+0x3d0>
6c18: 80 93 de 03 sts 0x03DE, r24
6c1c: 09 c0 rjmp .+18 ; 0x6c30 <ParameterZuordnung+0x3e2>
6c1e: ef ef ldi r30, 0xFF ; 255
6c20: f0 e0 ldi r31, 0x00 ; 0
6c22: e8 1b sub r30, r24
6c24: f1 09 sbc r31, r1
6c26: eb 5f subi r30, 0xFB ; 251
6c28: fb 4f sbci r31, 0xFB ; 251
6c2a: 80 81 ld r24, Z
6c2c: 80 93 de 03 sts 0x03DE, r24
CHK_POTI(Parameter_UserParam4,EE_Parameter.UserParam4);
6c30: 80 91 6a 05 lds r24, 0x056A
6c34: 88 3f cpi r24, 0xF8 ; 248
6c36: 18 f4 brcc .+6 ; 0x6c3e <ParameterZuordnung+0x3f0>
6c38: 80 93 dd 03 sts 0x03DD, r24
6c3c: 09 c0 rjmp .+18 ; 0x6c50 <ParameterZuordnung+0x402>
6c3e: ef ef ldi r30, 0xFF ; 255
6c40: f0 e0 ldi r31, 0x00 ; 0
6c42: e8 1b sub r30, r24
6c44: f1 09 sbc r31, r1
6c46: eb 5f subi r30, 0xFB ; 251
6c48: fb 4f sbci r31, 0xFB ; 251
6c4a: 80 81 ld r24, Z
6c4c: 80 93 dd 03 sts 0x03DD, r24
CHK_POTI(Parameter_UserParam5,EE_Parameter.UserParam5);
6c50: 80 91 84 05 lds r24, 0x0584
6c54: 88 3f cpi r24, 0xF8 ; 248
6c56: 18 f4 brcc .+6 ; 0x6c5e <ParameterZuordnung+0x410>
6c58: 80 93 dc 03 sts 0x03DC, r24
6c5c: 09 c0 rjmp .+18 ; 0x6c70 <ParameterZuordnung+0x422>
6c5e: ef ef ldi r30, 0xFF ; 255
6c60: f0 e0 ldi r31, 0x00 ; 0
6c62: e8 1b sub r30, r24
6c64: f1 09 sbc r31, r1
6c66: eb 5f subi r30, 0xFB ; 251
6c68: fb 4f sbci r31, 0xFB ; 251
6c6a: 80 81 ld r24, Z
6c6c: 80 93 dc 03 sts 0x03DC, r24
CHK_POTI(Parameter_UserParam6,EE_Parameter.UserParam6);
6c70: 80 91 85 05 lds r24, 0x0585
6c74: 88 3f cpi r24, 0xF8 ; 248
6c76: 18 f4 brcc .+6 ; 0x6c7e <ParameterZuordnung+0x430>
6c78: 80 93 db 03 sts 0x03DB, r24
6c7c: 09 c0 rjmp .+18 ; 0x6c90 <ParameterZuordnung+0x442>
6c7e: ef ef ldi r30, 0xFF ; 255
6c80: f0 e0 ldi r31, 0x00 ; 0
6c82: e8 1b sub r30, r24
6c84: f1 09 sbc r31, r1
6c86: eb 5f subi r30, 0xFB ; 251
6c88: fb 4f sbci r31, 0xFB ; 251
6c8a: 80 81 ld r24, Z
6c8c: 80 93 db 03 sts 0x03DB, r24
CHK_POTI(Parameter_UserParam7,EE_Parameter.UserParam7);
6c90: 80 91 86 05 lds r24, 0x0586
6c94: 88 3f cpi r24, 0xF8 ; 248
6c96: 18 f4 brcc .+6 ; 0x6c9e <ParameterZuordnung+0x450>
6c98: 80 93 da 03 sts 0x03DA, r24
6c9c: 09 c0 rjmp .+18 ; 0x6cb0 <ParameterZuordnung+0x462>
6c9e: ef ef ldi r30, 0xFF ; 255
6ca0: f0 e0 ldi r31, 0x00 ; 0
6ca2: e8 1b sub r30, r24
6ca4: f1 09 sbc r31, r1
6ca6: eb 5f subi r30, 0xFB ; 251
6ca8: fb 4f sbci r31, 0xFB ; 251
6caa: 80 81 ld r24, Z
6cac: 80 93 da 03 sts 0x03DA, r24
CHK_POTI(Parameter_UserParam8,EE_Parameter.UserParam8);
6cb0: 80 91 87 05 lds r24, 0x0587
6cb4: 88 3f cpi r24, 0xF8 ; 248
6cb6: 18 f4 brcc .+6 ; 0x6cbe <ParameterZuordnung+0x470>
6cb8: 80 93 d9 03 sts 0x03D9, r24
6cbc: 09 c0 rjmp .+18 ; 0x6cd0 <ParameterZuordnung+0x482>
6cbe: ef ef ldi r30, 0xFF ; 255
6cc0: f0 e0 ldi r31, 0x00 ; 0
6cc2: e8 1b sub r30, r24
6cc4: f1 09 sbc r31, r1
6cc6: eb 5f subi r30, 0xFB ; 251
6cc8: fb 4f sbci r31, 0xFB ; 251
6cca: 80 81 ld r24, Z
6ccc: 80 93 d9 03 sts 0x03D9, r24
CHK_POTI(Parameter_ServoNickControl,EE_Parameter.ServoNickControl);
6cd0: 80 91 6b 05 lds r24, 0x056B
6cd4: 88 3f cpi r24, 0xF8 ; 248
6cd6: 18 f4 brcc .+6 ; 0x6cde <ParameterZuordnung+0x490>
6cd8: 80 93 2f 01 sts 0x012F, r24
6cdc: 09 c0 rjmp .+18 ; 0x6cf0 <ParameterZuordnung+0x4a2>
6cde: ef ef ldi r30, 0xFF ; 255
6ce0: f0 e0 ldi r31, 0x00 ; 0
6ce2: e8 1b sub r30, r24
6ce4: f1 09 sbc r31, r1
6ce6: eb 5f subi r30, 0xFB ; 251
6ce8: fb 4f sbci r31, 0xFB ; 251
6cea: 80 81 ld r24, Z
6cec: 80 93 2f 01 sts 0x012F, r24
CHK_POTI(Parameter_ServoRollControl,EE_Parameter.ServoRollControl);
6cf0: 80 91 6f 05 lds r24, 0x056F
6cf4: 88 3f cpi r24, 0xF8 ; 248
6cf6: 18 f4 brcc .+6 ; 0x6cfe <ParameterZuordnung+0x4b0>
6cf8: 80 93 2e 01 sts 0x012E, r24
6cfc: 09 c0 rjmp .+18 ; 0x6d10 <ParameterZuordnung+0x4c2>
6cfe: ef ef ldi r30, 0xFF ; 255
6d00: f0 e0 ldi r31, 0x00 ; 0
6d02: e8 1b sub r30, r24
6d04: f1 09 sbc r31, r1
6d06: eb 5f subi r30, 0xFB ; 251
6d08: fb 4f sbci r31, 0xFB ; 251
6d0a: 80 81 ld r24, Z
6d0c: 80 93 2e 01 sts 0x012E, r24
CHK_POTI(Parameter_ServoNickComp,EE_Parameter.ServoNickComp);
6d10: 80 91 6c 05 lds r24, 0x056C
6d14: 88 3f cpi r24, 0xF8 ; 248
6d16: 18 f4 brcc .+6 ; 0x6d1e <ParameterZuordnung+0x4d0>
6d18: 80 93 2d 01 sts 0x012D, r24
6d1c: 09 c0 rjmp .+18 ; 0x6d30 <ParameterZuordnung+0x4e2>
6d1e: ef ef ldi r30, 0xFF ; 255
6d20: f0 e0 ldi r31, 0x00 ; 0
6d22: e8 1b sub r30, r24
6d24: f1 09 sbc r31, r1
6d26: eb 5f subi r30, 0xFB ; 251
6d28: fb 4f sbci r31, 0xFB ; 251
6d2a: 80 81 ld r24, Z
6d2c: 80 93 2d 01 sts 0x012D, r24
CHK_POTI(Parameter_ServoRollComp,EE_Parameter.ServoRollComp);
6d30: 80 91 70 05 lds r24, 0x0570
6d34: 88 3f cpi r24, 0xF8 ; 248
6d36: 18 f4 brcc .+6 ; 0x6d3e <ParameterZuordnung+0x4f0>
6d38: 80 93 2c 01 sts 0x012C, r24
6d3c: 09 c0 rjmp .+18 ; 0x6d50 <ParameterZuordnung+0x502>
6d3e: ef ef ldi r30, 0xFF ; 255
6d40: f0 e0 ldi r31, 0x00 ; 0
6d42: e8 1b sub r30, r24
6d44: f1 09 sbc r31, r1
6d46: eb 5f subi r30, 0xFB ; 251
6d48: fb 4f sbci r31, 0xFB ; 251
6d4a: 80 81 ld r24, Z
6d4c: 80 93 2c 01 sts 0x012C, r24
CHK_POTI(Parameter_LoopGasLimit,EE_Parameter.LoopGasLimit);
6d50: 80 91 79 05 lds r24, 0x0579
6d54: 88 3f cpi r24, 0xF8 ; 248
6d56: 18 f4 brcc .+6 ; 0x6d5e <ParameterZuordnung+0x510>
6d58: 80 93 2b 01 sts 0x012B, r24
6d5c: 09 c0 rjmp .+18 ; 0x6d70 <ParameterZuordnung+0x522>
6d5e: ef ef ldi r30, 0xFF ; 255
6d60: f0 e0 ldi r31, 0x00 ; 0
6d62: e8 1b sub r30, r24
6d64: f1 09 sbc r31, r1
6d66: eb 5f subi r30, 0xFB ; 251
6d68: fb 4f sbci r31, 0xFB ; 251
6d6a: 80 81 ld r24, Z
6d6c: 80 93 2b 01 sts 0x012B, r24
CHK_POTI(Parameter_AchsKopplung1,EE_Parameter.AchsKopplung1);
6d70: 80 91 7c 05 lds r24, 0x057C
6d74: 88 3f cpi r24, 0xF8 ; 248
6d76: 18 f4 brcc .+6 ; 0x6d7e <ParameterZuordnung+0x530>
6d78: 80 93 2a 01 sts 0x012A, r24
6d7c: 09 c0 rjmp .+18 ; 0x6d90 <ParameterZuordnung+0x542>
6d7e: ef ef ldi r30, 0xFF ; 255
6d80: f0 e0 ldi r31, 0x00 ; 0
6d82: e8 1b sub r30, r24
6d84: f1 09 sbc r31, r1
6d86: eb 5f subi r30, 0xFB ; 251
6d88: fb 4f sbci r31, 0xFB ; 251
6d8a: 80 81 ld r24, Z
6d8c: 80 93 2a 01 sts 0x012A, r24
CHK_POTI(Parameter_AchsKopplung2,EE_Parameter.AchsKopplung2);
6d90: 80 91 7d 05 lds r24, 0x057D
6d94: 88 3f cpi r24, 0xF8 ; 248
6d96: 18 f4 brcc .+6 ; 0x6d9e <ParameterZuordnung+0x550>
6d98: 80 93 29 01 sts 0x0129, r24
6d9c: 09 c0 rjmp .+18 ; 0x6db0 <ParameterZuordnung+0x562>
6d9e: ef ef ldi r30, 0xFF ; 255
6da0: f0 e0 ldi r31, 0x00 ; 0
6da2: e8 1b sub r30, r24
6da4: f1 09 sbc r31, r1
6da6: eb 5f subi r30, 0xFB ; 251
6da8: fb 4f sbci r31, 0xFB ; 251
6daa: 80 81 ld r24, Z
6dac: 80 93 29 01 sts 0x0129, r24
CHK_POTI(Parameter_CouplingYawCorrection,EE_Parameter.CouplingYawCorrection);
6db0: 80 91 7e 05 lds r24, 0x057E
6db4: 88 3f cpi r24, 0xF8 ; 248
6db6: 18 f4 brcc .+6 ; 0x6dbe <ParameterZuordnung+0x570>
6db8: 80 93 28 01 sts 0x0128, r24
6dbc: 09 c0 rjmp .+18 ; 0x6dd0 <ParameterZuordnung+0x582>
6dbe: ef ef ldi r30, 0xFF ; 255
6dc0: f0 e0 ldi r31, 0x00 ; 0
6dc2: e8 1b sub r30, r24
6dc4: f1 09 sbc r31, r1
6dc6: eb 5f subi r30, 0xFB ; 251
6dc8: fb 4f sbci r31, 0xFB ; 251
6dca: 80 81 ld r24, Z
6dcc: 80 93 28 01 sts 0x0128, r24
CHK_POTI(Parameter_MaximumAltitude,EE_Parameter.MaxAltitude);
6dd0: 80 91 a7 05 lds r24, 0x05A7
6dd4: 88 3f cpi r24, 0xF8 ; 248
6dd6: 18 f4 brcc .+6 ; 0x6dde <ParameterZuordnung+0x590>
6dd8: 80 93 24 06 sts 0x0624, r24
6ddc: 09 c0 rjmp .+18 ; 0x6df0 <ParameterZuordnung+0x5a2>
6dde: ef ef ldi r30, 0xFF ; 255
6de0: f0 e0 ldi r31, 0x00 ; 0
6de2: e8 1b sub r30, r24
6de4: f1 09 sbc r31, r1
6de6: eb 5f subi r30, 0xFB ; 251
6de8: fb 4f sbci r31, 0xFB ; 251
6dea: 80 81 ld r24, Z
6dec: 80 93 24 06 sts 0x0624, r24
// if((NC_To_FC_MaxAltitude && NC_To_FC_MaxAltitude < Parameter_MaximumAltitude) || Parameter_MaximumAltitude == 0) Parameter_MaximumAltitude = NC_To_FC_MaxAltitude;
Parameter_GlobalConfig = EE_Parameter.GlobalConfig;
6df0: 80 91 4b 05 lds r24, 0x054B
6df4: 80 93 5c 06 sts 0x065C, r24
Parameter_ExtraConfig = EE_Parameter.ExtraConfig;
6df8: 80 91 b8 05 lds r24, 0x05B8
6dfc: 80 93 40 06 sts 0x0640, r24
// CHK_POTI(Parameter_AchsGegenKopplung1,EE_Parameter.AchsGegenKopplung1,0,255);
CHK_POTI(Parameter_DynamicStability,EE_Parameter.DynamicStability);
6e00: 80 91 83 05 lds r24, 0x0583
6e04: 88 3f cpi r24, 0xF8 ; 248
6e06: 18 f4 brcc .+6 ; 0x6e0e <ParameterZuordnung+0x5c0>
6e08: 80 93 27 01 sts 0x0127, r24
6e0c: 09 c0 rjmp .+18 ; 0x6e20 <ParameterZuordnung+0x5d2>
6e0e: ef ef ldi r30, 0xFF ; 255
6e10: f0 e0 ldi r31, 0x00 ; 0
6e12: e8 1b sub r30, r24
6e14: f1 09 sbc r31, r1
6e16: eb 5f subi r30, 0xFB ; 251
6e18: fb 4f sbci r31, 0xFB ; 251
6e1a: 80 81 ld r24, Z
6e1c: 80 93 27 01 sts 0x0127, r24
CHK_POTI(Parameter_ExternalControl,EE_Parameter.ExternalControl);
6e20: 80 91 a0 05 lds r24, 0x05A0
6e24: 88 3f cpi r24, 0xF8 ; 248
6e26: 18 f4 brcc .+6 ; 0x6e2e <ParameterZuordnung+0x5e0>
6e28: 80 93 75 06 sts 0x0675, r24
6e2c: 09 c0 rjmp .+18 ; 0x6e40 <ParameterZuordnung+0x5f2>
6e2e: ef ef ldi r30, 0xFF ; 255
6e30: f0 e0 ldi r31, 0x00 ; 0
6e32: e8 1b sub r30, r24
6e34: f1 09 sbc r31, r1
6e36: eb 5f subi r30, 0xFB ; 251
6e38: fb 4f sbci r31, 0xFB ; 251
6e3a: 80 81 ld r24, Z
6e3c: 80 93 75 06 sts 0x0675, r24
Ki = 10300 / (Parameter_I_Faktor + 1);
6e40: 60 91 30 01 lds r22, 0x0130
6e44: 70 e0 ldi r23, 0x00 ; 0
6e46: 6f 5f subi r22, 0xFF ; 255
6e48: 7f 4f sbci r23, 0xFF ; 255
6e4a: 8c e3 ldi r24, 0x3C ; 60
6e4c: 98 e2 ldi r25, 0x28 ; 40
6e4e: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
6e52: 70 93 3c 01 sts 0x013C, r23
6e56: 60 93 3b 01 sts 0x013B, r22
MAX_GAS = EE_Parameter.Gas_Max;
6e5a: 80 91 59 05 lds r24, 0x0559
6e5e: 80 93 64 06 sts 0x0664, r24
MIN_GAS = EE_Parameter.Gas_Min;
6e62: 80 91 58 05 lds r24, 0x0558
6e66: 80 93 2c 06 sts 0x062C, r24
 
if(EE_Parameter.CareFreeChannel)
6e6a: e0 91 a2 05 lds r30, 0x05A2
6e6e: ee 23 and r30, r30
6e70: 09 f4 brne .+2 ; 0x6e74 <ParameterZuordnung+0x626>
6e72: 4b c0 rjmp .+150 ; 0x6f0a <ParameterZuordnung+0x6bc>
{
CareFree = 1;
6e74: 81 e0 ldi r24, 0x01 ; 1
6e76: 80 93 d8 03 sts 0x03D8, r24
if(PPM_in[EE_Parameter.CareFreeChannel] < -64) CareFree = 0;
6e7a: f0 e0 ldi r31, 0x00 ; 0
6e7c: ee 0f add r30, r30
6e7e: ff 1f adc r31, r31
6e80: ef 5c subi r30, 0xCF ; 207
6e82: f7 4f sbci r31, 0xF7 ; 247
6e84: 80 81 ld r24, Z
6e86: 91 81 ldd r25, Z+1 ; 0x01
6e88: 80 3c cpi r24, 0xC0 ; 192
6e8a: 9f 4f sbci r25, 0xFF ; 255
6e8c: 14 f4 brge .+4 ; 0x6e92 <ParameterZuordnung+0x644>
6e8e: 10 92 d8 03 sts 0x03D8, r1
// if(tmp >= 248 && Poti[255 - tmp] < 50) CareFree = 0;
if(carefree_old != CareFree)
6e92: 80 91 3d 01 lds r24, 0x013D
6e96: 20 91 d8 03 lds r18, 0x03D8
6e9a: 82 17 cp r24, r18
6e9c: 41 f1 breq .+80 ; 0x6eee <ParameterZuordnung+0x6a0>
{
if(carefree_old < 3)
6e9e: 83 30 cpi r24, 0x03 ; 3
6ea0: 18 f5 brcc .+70 ; 0x6ee8 <ParameterZuordnung+0x69a>
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(CareFree) { beeptime = 1500; if(!SpeakHoTT) SpeakHoTT = SPEAK_CF_ON; }
6ea2: 22 23 and r18, r18
6ea4: 71 f0 breq .+28 ; 0x6ec2 <ParameterZuordnung+0x674>
6ea6: 8c ed ldi r24, 0xDC ; 220
6ea8: 95 e0 ldi r25, 0x05 ; 5
6eaa: 90 93 ce 04 sts 0x04CE, r25
6eae: 80 93 cd 04 sts 0x04CD, r24
6eb2: 80 91 57 01 lds r24, 0x0157
6eb6: 81 11 cpse r24, r1
6eb8: 11 c0 rjmp .+34 ; 0x6edc <ParameterZuordnung+0x68e>
6eba: 8e e2 ldi r24, 0x2E ; 46
6ebc: 80 93 57 01 sts 0x0157, r24
6ec0: 0d c0 rjmp .+26 ; 0x6edc <ParameterZuordnung+0x68e>
else { beeptime = 200; if(!SpeakHoTT) SpeakHoTT = SPEAK_CF_OFF; }
6ec2: 88 ec ldi r24, 0xC8 ; 200
6ec4: 90 e0 ldi r25, 0x00 ; 0
6ec6: 90 93 ce 04 sts 0x04CE, r25
6eca: 80 93 cd 04 sts 0x04CD, r24
6ece: 80 91 57 01 lds r24, 0x0157
6ed2: 81 11 cpse r24, r1
6ed4: 03 c0 rjmp .+6 ; 0x6edc <ParameterZuordnung+0x68e>
6ed6: 87 e1 ldi r24, 0x17 ; 23
6ed8: 80 93 57 01 sts 0x0157, r24
#else
if(CareFree) beeptime = 1500;
else beeptime = 200;
#endif
NeueKompassRichtungMerken = 5;
6edc: 85 e0 ldi r24, 0x05 ; 5
6ede: 80 93 ee 03 sts 0x03EE, r24
carefree_old = CareFree;
6ee2: 20 93 3d 01 sts 0x013D, r18
6ee6: 03 c0 rjmp .+6 ; 0x6eee <ParameterZuordnung+0x6a0>
} else carefree_old--;
6ee8: 81 50 subi r24, 0x01 ; 1
6eea: 80 93 3d 01 sts 0x013D, r24
}
if(FromNaviCtrl.CompassValue < 0 && CareFree) VersionInfo.HardwareError[0] |= FC_ERROR0_CAREFREE; //else VersionInfo.HardwareError[0] &= ~FC_ERROR0_CAREFREE;
6eee: 80 91 13 09 lds r24, 0x0913
6ef2: 90 91 14 09 lds r25, 0x0914
6ef6: 99 23 and r25, r25
6ef8: 84 f5 brge .+96 ; 0x6f5a <ParameterZuordnung+0x70c>
6efa: 22 23 and r18, r18
6efc: 89 f0 breq .+34 ; 0x6f20 <ParameterZuordnung+0x6d2>
6efe: e2 e6 ldi r30, 0x62 ; 98
6f00: fa e0 ldi r31, 0x0A ; 10
6f02: 80 81 ld r24, Z
6f04: 80 68 ori r24, 0x80 ; 128
6f06: 80 83 st Z, r24
6f08: 05 c0 rjmp .+10 ; 0x6f14 <ParameterZuordnung+0x6c6>
}
else
{
CareFree = 0;
6f0a: 10 92 d8 03 sts 0x03D8, r1
carefree_old = 10;
6f0e: 8a e0 ldi r24, 0x0A ; 10
6f10: 80 93 3d 01 sts 0x013D, r24
}
 
if(FromNaviCtrl.CompassValue < 0 && MotorenEin && CareFree && BeepMuster == 0xffff) // ungültiger Kompasswert
6f14: 80 91 13 09 lds r24, 0x0913
6f18: 90 91 14 09 lds r25, 0x0914
6f1c: 99 23 and r25, r25
6f1e: ec f4 brge .+58 ; 0x6f5a <ParameterZuordnung+0x70c>
6f20: 80 91 03 04 lds r24, 0x0403
6f24: 88 23 and r24, r24
6f26: c9 f0 breq .+50 ; 0x6f5a <ParameterZuordnung+0x70c>
6f28: 80 91 d8 03 lds r24, 0x03D8
6f2c: 88 23 and r24, r24
6f2e: f9 f0 breq .+62 ; 0x6f6e <ParameterZuordnung+0x720>
6f30: 80 91 a9 02 lds r24, 0x02A9
6f34: 90 91 aa 02 lds r25, 0x02AA
6f38: 01 96 adiw r24, 0x01 ; 1
6f3a: 99 f4 brne .+38 ; 0x6f62 <ParameterZuordnung+0x714>
{
beeptime = 15000;
6f3c: 88 e9 ldi r24, 0x98 ; 152
6f3e: 9a e3 ldi r25, 0x3A ; 58
6f40: 90 93 ce 04 sts 0x04CE, r25
6f44: 80 93 cd 04 sts 0x04CD, r24
BeepMuster = 0xA400;
6f48: 80 e0 ldi r24, 0x00 ; 0
6f4a: 94 ea ldi r25, 0xA4 ; 164
6f4c: 90 93 aa 02 sts 0x02AA, r25
6f50: 80 93 a9 02 sts 0x02A9, r24
CareFree = 0;
6f54: 10 92 d8 03 sts 0x03D8, r1
6f58: 0a c0 rjmp .+20 ; 0x6f6e <ParameterZuordnung+0x720>
}
if(CareFree) { FC_StatusFlags2 |= FC_STATUS2_CAREFREE; /*if(Parameter_AchsKopplung1 < 210) Parameter_AchsKopplung1 += 30;*/} else FC_StatusFlags2 &= ~FC_STATUS2_CAREFREE;
6f5a: 80 91 d8 03 lds r24, 0x03D8
6f5e: 88 23 and r24, r24
6f60: 31 f0 breq .+12 ; 0x6f6e <ParameterZuordnung+0x720>
6f62: 80 91 ca 03 lds r24, 0x03CA
6f66: 81 60 ori r24, 0x01 ; 1
6f68: 80 93 ca 03 sts 0x03CA, r24
6f6c: 05 c0 rjmp .+10 ; 0x6f78 <ParameterZuordnung+0x72a>
6f6e: 80 91 ca 03 lds r24, 0x03CA
6f72: 8e 7f andi r24, 0xFE ; 254
6f74: 80 93 ca 03 sts 0x03CA, r24
}
6f78: df 91 pop r29
6f7a: cf 91 pop r28
6f7c: 1f 91 pop r17
6f7e: 0f 91 pop r16
6f80: ff 90 pop r15
6f82: ef 90 pop r14
6f84: df 90 pop r13
6f86: 08 95 ret
 
00006f88 <CalcStickGasHover>:
 
void CalcStickGasHover(void)
{
if(!EE_Parameter.Hoehe_StickNeutralPoint)
6f88: 80 91 54 05 lds r24, 0x0554
6f8c: 81 11 cpse r24, r1
6f8e: 21 c0 rjmp .+66 ; 0x6fd2 <CalcStickGasHover+0x4a>
{
StickGasHover = HoverGas/STICK_GAIN; // rescale back to stick value
StickGasHover = (unsigned int)((unsigned int) StickGasHover * UBat) / BattLowVoltageWarning;
6f90: 20 91 1a 01 lds r18, 0x011A
6f94: 30 91 1b 01 lds r19, 0x011B
 
void CalcStickGasHover(void)
{
if(!EE_Parameter.Hoehe_StickNeutralPoint)
{
StickGasHover = HoverGas/STICK_GAIN; // rescale back to stick value
6f98: 80 91 e8 03 lds r24, 0x03E8
6f9c: 90 91 e9 03 lds r25, 0x03E9
6fa0: 99 23 and r25, r25
6fa2: 0c f4 brge .+2 ; 0x6fa6 <CalcStickGasHover+0x1e>
6fa4: 03 96 adiw r24, 0x03 ; 3
6fa6: ac 01 movw r20, r24
6fa8: 55 95 asr r21
6faa: 47 95 ror r20
6fac: 55 95 asr r21
6fae: 47 95 ror r20
StickGasHover = (unsigned int)((unsigned int) StickGasHover * UBat) / BattLowVoltageWarning;
6fb0: 42 9f mul r20, r18
6fb2: c0 01 movw r24, r0
6fb4: 43 9f mul r20, r19
6fb6: 90 0d add r25, r0
6fb8: 52 9f mul r21, r18
6fba: 90 0d add r25, r0
6fbc: 11 24 eor r1, r1
6fbe: 60 91 53 01 lds r22, 0x0153
6fc2: 70 e0 ldi r23, 0x00 ; 0
6fc4: 0e 94 42 b1 call 0x16284 ; 0x16284 <__udivmodhi4>
6fc8: 70 93 41 01 sts 0x0141, r23
6fcc: 60 93 40 01 sts 0x0140, r22
6fd0: 05 c0 rjmp .+10 ; 0x6fdc <CalcStickGasHover+0x54>
}
else StickGasHover = EE_Parameter.Hoehe_StickNeutralPoint;
6fd2: 90 e0 ldi r25, 0x00 ; 0
6fd4: 90 93 41 01 sts 0x0141, r25
6fd8: 80 93 40 01 sts 0x0140, r24
LIMIT_MIN_MAX(StickGasHover, 70, 175); // reserve some range for trim up and down
6fdc: 80 91 40 01 lds r24, 0x0140
6fe0: 90 91 41 01 lds r25, 0x0141
6fe4: 87 34 cpi r24, 0x47 ; 71
6fe6: 91 05 cpc r25, r1
6fe8: 38 f4 brcc .+14 ; 0x6ff8 <CalcStickGasHover+0x70>
6fea: 86 e4 ldi r24, 0x46 ; 70
6fec: 90 e0 ldi r25, 0x00 ; 0
6fee: 90 93 41 01 sts 0x0141, r25
6ff2: 80 93 40 01 sts 0x0140, r24
6ff6: 08 95 ret
6ff8: 8f 3a cpi r24, 0xAF ; 175
6ffa: 91 05 cpc r25, r1
6ffc: 30 f0 brcs .+12 ; 0x700a <CalcStickGasHover+0x82>
6ffe: 8f ea ldi r24, 0xAF ; 175
7000: 90 e0 ldi r25, 0x00 ; 0
7002: 90 93 41 01 sts 0x0141, r25
7006: 80 93 40 01 sts 0x0140, r24
700a: 08 95 ret
 
0000700c <MotorRegler>:
 
//############################################################################
//
void MotorRegler(void)
//############################################################################
{
700c: 2f 92 push r2
700e: 3f 92 push r3
7010: 4f 92 push r4
7012: 5f 92 push r5
7014: 6f 92 push r6
7016: 7f 92 push r7
7018: 8f 92 push r8
701a: 9f 92 push r9
701c: af 92 push r10
701e: bf 92 push r11
7020: cf 92 push r12
7022: df 92 push r13
7024: ef 92 push r14
7026: ff 92 push r15
7028: 0f 93 push r16
702a: 1f 93 push r17
702c: cf 93 push r28
702e: df 93 push r29
7030: cd b7 in r28, 0x3d ; 61
7032: de b7 in r29, 0x3e ; 62
7034: a6 97 sbiw r28, 0x26 ; 38
7036: 0f b6 in r0, 0x3f ; 63
7038: f8 94 cli
703a: de bf out 0x3e, r29 ; 62
703c: 0f be out 0x3f, r0 ; 63
703e: cd bf out 0x3d, r28 ; 61
static unsigned char delay_neutral = 0;
static unsigned char delay_einschalten = 0,delay_ausschalten = 0;
static signed char move_safety_switch = 0;
int IntegralNickMalFaktor,IntegralRollMalFaktor;
unsigned char i;
Mittelwert();
7040: 0e 94 08 2d call 0x5a10 ; 0x5a10 <Mittelwert>
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gaswert ermitteln
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!(FC_StatusFlags & (FC_STATUS_EMERGENCY_LANDING | FC_STATUS2_RC_FAILSAVE_ACTIVE)))
7044: 80 91 cb 03 lds r24, 0x03CB
7048: 84 71 andi r24, 0x14 ; 20
704a: a9 f5 brne .+106 ; 0x70b6 <MotorRegler+0xaa>
{
if(EE_Parameter.GlobalConfig3 & CFG3_VARIO_FAILSAFE)
704c: 80 91 b9 05 lds r24, 0x05B9
7050: 82 ff sbrs r24, 2
7052: 2a c0 rjmp .+84 ; 0x70a8 <MotorRegler+0x9c>
{
if(HoverGas && HoverGas < 150 * STICK_GAIN)
7054: 80 91 e8 03 lds r24, 0x03E8
7058: 90 91 e9 03 lds r25, 0x03E9
705c: 00 97 sbiw r24, 0x00 ; 0
705e: e9 f0 breq .+58 ; 0x709a <MotorRegler+0x8e>
7060: 88 35 cpi r24, 0x58 ; 88
7062: 02 e0 ldi r16, 0x02 ; 2
7064: 90 07 cpc r25, r16
7066: cc f4 brge .+50 ; 0x709a <MotorRegler+0x8e>
{
HooverGasEmergencyPercent = (HoverGas/(STICK_GAIN) * EE_Parameter.NotGas) / 100; // i.e. 80% of Hovergas
7068: 9c 01 movw r18, r24
706a: 99 23 and r25, r25
706c: 14 f4 brge .+4 ; 0x7072 <MotorRegler+0x66>
706e: 2d 5f subi r18, 0xFD ; 253
7070: 3f 4f sbci r19, 0xFF ; 255
7072: 35 95 asr r19
7074: 27 95 ror r18
7076: 35 95 asr r19
7078: 27 95 ror r18
707a: 40 91 63 05 lds r20, 0x0563
707e: 42 9f mul r20, r18
7080: c0 01 movw r24, r0
7082: 43 9f mul r20, r19
7084: 90 0d add r25, r0
7086: 11 24 eor r1, r1
7088: 64 e6 ldi r22, 0x64 ; 100
708a: 70 e0 ldi r23, 0x00 ; 0
708c: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
7090: 70 93 c8 03 sts 0x03C8, r23
7094: 60 93 c7 03 sts 0x03C7, r22
7098: 0e c0 rjmp .+28 ; 0x70b6 <MotorRegler+0xaa>
}
else HooverGasEmergencyPercent = 45; // default if the Hoovergas was could not calculated yet
709a: 8d e2 ldi r24, 0x2D ; 45
709c: 90 e0 ldi r25, 0x00 ; 0
709e: 90 93 c8 03 sts 0x03C8, r25
70a2: 80 93 c7 03 sts 0x03C7, r24
70a6: 07 c0 rjmp .+14 ; 0x70b6 <MotorRegler+0xaa>
} else HooverGasEmergencyPercent = EE_Parameter.NotGas;
70a8: 80 91 63 05 lds r24, 0x0563
70ac: 90 e0 ldi r25, 0x00 ; 0
70ae: 90 93 c8 03 sts 0x03C8, r25
70b2: 80 93 c7 03 sts 0x03C7, r24
}
if(GasIsZeroCnt == 30000) // in that case we have RC-Lost, but the MK is probably landed
70b6: 20 91 c5 03 lds r18, 0x03C5
70ba: 30 91 c6 03 lds r19, 0x03C6
70be: 20 33 cpi r18, 0x30 ; 48
70c0: 15 e7 ldi r17, 0x75 ; 117
70c2: 31 07 cpc r19, r17
70c4: 59 f4 brne .+22 ; 0x70dc <MotorRegler+0xd0>
{
StickGas = 0; // Hold Gas down in that case
70c6: 10 92 0f 04 sts 0x040F, r1
70ca: 10 92 0e 04 sts 0x040E, r1
HooverGasEmergencyPercent = MIN_GAS;
70ce: 80 91 2c 06 lds r24, 0x062C
70d2: 90 e0 ldi r25, 0x00 ; 0
70d4: 90 93 c8 03 sts 0x03C8, r25
70d8: 80 93 c7 03 sts 0x03C7, r24
}
GasMischanteil = StickGas;
70dc: 80 91 0e 04 lds r24, 0x040E
70e0: 90 91 0f 04 lds r25, 0x040F
if(GasMischanteil < MIN_GAS + 10) GasMischanteil = MIN_GAS + 10;
70e4: 20 90 2c 06 lds r2, 0x062C
70e8: 31 2c mov r3, r1
70ea: 4a e0 ldi r20, 0x0A ; 10
70ec: 24 0e add r2, r20
70ee: 31 1c adc r3, r1
70f0: 28 16 cp r2, r24
70f2: 39 06 cpc r3, r25
70f4: 0c f4 brge .+2 ; 0x70f8 <MotorRegler+0xec>
70f6: 1c 01 movw r2, r24
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Empfang schlecht
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(SenderOkay < 100 && !(FC_StatusFlags2 & FC_STATUS2_RC_FAILSAVE_ACTIVE))
70f8: 80 91 04 04 lds r24, 0x0404
70fc: 84 36 cpi r24, 0x64 ; 100
70fe: a0 f5 brcc .+104 ; 0x7168 <MotorRegler+0x15c>
7100: 80 91 ca 03 lds r24, 0x03CA
7104: 82 fd sbrc r24, 2
7106: 30 c0 rjmp .+96 ; 0x7168 <MotorRegler+0x15c>
{
if(RcLostTimer) RcLostTimer--;
7108: 80 91 a2 03 lds r24, 0x03A2
710c: 90 91 a3 03 lds r25, 0x03A3
7110: 00 97 sbiw r24, 0x00 ; 0
7112: 31 f0 breq .+12 ; 0x7120 <MotorRegler+0x114>
7114: 01 97 sbiw r24, 0x01 ; 1
7116: 90 93 a3 03 sts 0x03A3, r25
711a: 80 93 a2 03 sts 0x03A2, r24
711e: 0b c0 rjmp .+22 ; 0x7136 <MotorRegler+0x12a>
else
{
MotorenEin = 0;
7120: 10 92 03 04 sts 0x0403, r1
modell_fliegt = 0;
7124: 10 92 cd 03 sts 0x03CD, r1
7128: 10 92 cc 03 sts 0x03CC, r1
FC_StatusFlags &= ~(FC_STATUS_EMERGENCY_LANDING | FC_STATUS_FLY);
712c: 80 91 cb 03 lds r24, 0x03CB
7130: 8d 7e andi r24, 0xED ; 237
7132: 80 93 cb 03 sts 0x03CB, r24
}
ROT_ON;
7136: 28 9a sbi 0x05, 0 ; 5
if(modell_fliegt > 1000 && Capacity.MinOfMaxPWM > 100) // wahrscheinlich in der Luft --> langsam absenken
7138: 80 91 cc 03 lds r24, 0x03CC
713c: 90 91 cd 03 lds r25, 0x03CD
7140: 89 3e cpi r24, 0xE9 ; 233
7142: 93 40 sbci r25, 0x03 ; 3
7144: 70 f0 brcs .+28 ; 0x7162 <MotorRegler+0x156>
7146: 80 91 1b 05 lds r24, 0x051B
714a: 85 36 cpi r24, 0x65 ; 101
714c: 50 f0 brcs .+20 ; 0x7162 <MotorRegler+0x156>
{
GasMischanteil = HooverGasEmergencyPercent;
714e: 20 90 c7 03 lds r2, 0x03C7
7152: 30 90 c8 03 lds r3, 0x03C8
FC_StatusFlags |= FC_STATUS_EMERGENCY_LANDING;
7156: 80 91 cb 03 lds r24, 0x03CB
715a: 80 61 ori r24, 0x10 ; 16
715c: 80 93 cb 03 sts 0x03CB, r24
7160: f1 c5 rjmp .+3042 ; 0x7d44 <MotorRegler+0xd38>
}
else
{
MotorenEin = 0;
7162: 10 92 03 04 sts 0x0403, r1
7166: ee c5 rjmp .+3036 ; 0x7d44 <MotorRegler+0xd38>
}
else
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Emfang gut
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(SenderOkay > 140)
7168: 80 91 04 04 lds r24, 0x0404
716c: 8d 38 cpi r24, 0x8D ; 141
716e: 08 f4 brcc .+2 ; 0x7172 <MotorRegler+0x166>
7170: bf c5 rjmp .+2942 ; 0x7cf0 <MotorRegler+0xce4>
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
static unsigned int trigger = 1000;
static unsigned char old_switch = 100;
if(EE_Parameter.StartLandChannel && EE_Parameter.LandingSpeed)
7172: 80 91 af 05 lds r24, 0x05AF
7176: 88 23 and r24, r24
7178: 09 f4 brne .+2 ; 0x717c <MotorRegler+0x170>
717a: 4d c0 rjmp .+154 ; 0x7216 <MotorRegler+0x20a>
717c: 90 91 b0 05 lds r25, 0x05B0
7180: 99 23 and r25, r25
7182: 09 f4 brne .+2 ; 0x7186 <MotorRegler+0x17a>
7184: 48 c0 rjmp .+144 ; 0x7216 <MotorRegler+0x20a>
{
if(PPM_in[EE_Parameter.StartLandChannel] > 50)
7186: 90 e0 ldi r25, 0x00 ; 0
7188: fc 01 movw r30, r24
718a: ee 0f add r30, r30
718c: ff 1f adc r31, r31
718e: ef 5c subi r30, 0xCF ; 207
7190: f7 4f sbci r31, 0xF7 ; 247
7192: 20 81 ld r18, Z
7194: 31 81 ldd r19, Z+1 ; 0x01
7196: 23 33 cpi r18, 0x33 ; 51
7198: 31 05 cpc r19, r1
719a: cc f0 brlt .+50 ; 0x71ce <MotorRegler+0x1c2>
{
if(old_switch == 50) if(FC_StatusFlags2 & FC_STATUS2_WAIT_FOR_TAKEOFF) { FC_StatusFlags2 |= FC_STATUS2_AUTO_STARTING; SpeakHoTT = SPEAK_RISING;}
719c: 80 91 1f 01 lds r24, 0x011F
71a0: 82 33 cpi r24, 0x32 ; 50
71a2: 61 f4 brne .+24 ; 0x71bc <MotorRegler+0x1b0>
71a4: 80 91 ca 03 lds r24, 0x03CA
71a8: 85 ff sbrs r24, 5
71aa: 08 c0 rjmp .+16 ; 0x71bc <MotorRegler+0x1b0>
71ac: 80 91 ca 03 lds r24, 0x03CA
71b0: 80 64 ori r24, 0x40 ; 64
71b2: 80 93 ca 03 sts 0x03CA, r24
71b6: 80 e3 ldi r24, 0x30 ; 48
71b8: 80 93 57 01 sts 0x0157, r24
FC_StatusFlags2 &= ~FC_STATUS2_AUTO_LANDING;
71bc: 80 91 ca 03 lds r24, 0x03CA
71c0: 8f 77 andi r24, 0x7F ; 127
71c2: 80 93 ca 03 sts 0x03CA, r24
old_switch = 150;
71c6: 86 e9 ldi r24, 0x96 ; 150
71c8: 80 93 1f 01 sts 0x011F, r24
71cc: 24 c0 rjmp .+72 ; 0x7216 <MotorRegler+0x20a>
}
else
if(PPM_in[EE_Parameter.StartLandChannel] < -50)
71ce: fc 01 movw r30, r24
71d0: ee 0f add r30, r30
71d2: ff 1f adc r31, r31
71d4: ef 5c subi r30, 0xCF ; 207
71d6: f7 4f sbci r31, 0xF7 ; 247
71d8: 80 81 ld r24, Z
71da: 91 81 ldd r25, Z+1 ; 0x01
71dc: 8e 3c cpi r24, 0xCE ; 206
71de: 9f 4f sbci r25, 0xFF ; 255
71e0: ac f4 brge .+42 ; 0x720c <MotorRegler+0x200>
{
if(old_switch == 150) { FC_StatusFlags2 |= FC_STATUS2_AUTO_LANDING; SpeakHoTT = SPEAK_SINKING;}
71e2: 80 91 1f 01 lds r24, 0x011F
71e6: 86 39 cpi r24, 0x96 ; 150
71e8: 41 f4 brne .+16 ; 0x71fa <MotorRegler+0x1ee>
71ea: 80 91 ca 03 lds r24, 0x03CA
71ee: 80 68 ori r24, 0x80 ; 128
71f0: 80 93 ca 03 sts 0x03CA, r24
71f4: 8f e2 ldi r24, 0x2F ; 47
71f6: 80 93 57 01 sts 0x0157, r24
FC_StatusFlags2 &= ~FC_STATUS2_AUTO_STARTING;
71fa: 80 91 ca 03 lds r24, 0x03CA
71fe: 8f 7b andi r24, 0xBF ; 191
7200: 80 93 ca 03 sts 0x03CA, r24
old_switch = 50;
7204: 82 e3 ldi r24, 0x32 ; 50
7206: 80 93 1f 01 sts 0x011F, r24
720a: 05 c0 rjmp .+10 ; 0x7216 <MotorRegler+0x20a>
}
else
{
FC_StatusFlags2 &= ~(FC_STATUS2_AUTO_STARTING | FC_STATUS2_AUTO_LANDING);
720c: 80 91 ca 03 lds r24, 0x03CA
7210: 8f 73 andi r24, 0x3F ; 63
7212: 80 93 ca 03 sts 0x03CA, r24
}
}
#endif
FC_StatusFlags &= ~FC_STATUS_EMERGENCY_LANDING;
7216: 80 91 cb 03 lds r24, 0x03CB
721a: 8f 7e andi r24, 0xEF ; 239
721c: 80 93 cb 03 sts 0x03CB, r24
RcLostTimer = EE_Parameter.NotGasZeit * 50;
7220: 80 91 64 05 lds r24, 0x0564
7224: 72 e3 ldi r23, 0x32 ; 50
7226: 87 9f mul r24, r23
7228: c0 01 movw r24, r0
722a: 11 24 eor r1, r1
722c: 90 93 a3 03 sts 0x03A3, r25
7230: 80 93 a2 03 sts 0x03A2, r24
if(GasMischanteil > 40 && MotorenEin)
7234: 89 e2 ldi r24, 0x29 ; 41
7236: 28 16 cp r2, r24
7238: 31 04 cpc r3, r1
723a: 8c f0 brlt .+34 ; 0x725e <MotorRegler+0x252>
723c: 80 91 03 04 lds r24, 0x0403
7240: 88 23 and r24, r24
7242: 69 f0 breq .+26 ; 0x725e <MotorRegler+0x252>
{
if(modell_fliegt < 0xffff) modell_fliegt++;
7244: 80 91 cc 03 lds r24, 0x03CC
7248: 90 91 cd 03 lds r25, 0x03CD
724c: 8f 3f cpi r24, 0xFF ; 255
724e: af ef ldi r26, 0xFF ; 255
7250: 9a 07 cpc r25, r26
7252: b1 f1 breq .+108 ; 0x72c0 <MotorRegler+0x2b4>
7254: 01 96 adiw r24, 0x01 ; 1
7256: 90 93 cd 03 sts 0x03CD, r25
725a: 80 93 cc 03 sts 0x03CC, r24
}
if((modell_fliegt < 256))
725e: 80 91 cc 03 lds r24, 0x03CC
7262: 90 91 cd 03 lds r25, 0x03CD
7266: 8f 3f cpi r24, 0xFF ; 255
7268: 91 05 cpc r25, r1
726a: 09 f0 breq .+2 ; 0x726e <MotorRegler+0x262>
726c: 48 f5 brcc .+82 ; 0x72c0 <MotorRegler+0x2b4>
{
SummeNick = 0;
726e: 10 92 26 04 sts 0x0426, r1
7272: 10 92 27 04 sts 0x0427, r1
7276: 10 92 28 04 sts 0x0428, r1
727a: 10 92 29 04 sts 0x0429, r1
SummeRoll = 0;
727e: 10 92 22 04 sts 0x0422, r1
7282: 10 92 23 04 sts 0x0423, r1
7286: 10 92 24 04 sts 0x0424, r1
728a: 10 92 25 04 sts 0x0425, r1
sollGier = 0;
728e: 10 92 9e 03 sts 0x039E, r1
7292: 10 92 9f 03 sts 0x039F, r1
7296: 10 92 a0 03 sts 0x03A0, r1
729a: 10 92 a1 03 sts 0x03A1, r1
Mess_Integral_Gier = 0;
729e: 10 92 2e 04 sts 0x042E, r1
72a2: 10 92 2f 04 sts 0x042F, r1
72a6: 10 92 30 04 sts 0x0430, r1
72aa: 10 92 31 04 sts 0x0431, r1
FC_StatusFlags2 |= FC_STATUS2_WAIT_FOR_TAKEOFF;
72ae: 80 91 ca 03 lds r24, 0x03CA
72b2: 80 62 ori r24, 0x20 ; 32
72b4: 80 93 ca 03 sts 0x03CA, r24
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
old_switch = 100;
72b8: 84 e6 ldi r24, 0x64 ; 100
72ba: 80 93 1f 01 sts 0x011F, r24
72be: 38 c1 rjmp .+624 ; 0x7530 <MotorRegler+0x524>
#endif
}
else
{
FC_StatusFlags |= FC_STATUS_FLY;
72c0: 80 91 cb 03 lds r24, 0x03CB
72c4: 82 60 ori r24, 0x02 ; 2
72c6: 80 93 cb 03 sts 0x03CB, r24
if(FC_StatusFlags2 & FC_STATUS2_WAIT_FOR_TAKEOFF)
72ca: 80 91 ca 03 lds r24, 0x03CA
72ce: 85 ff sbrs r24, 5
72d0: 9a c0 rjmp .+308 ; 0x7406 <MotorRegler+0x3fa>
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if((NC_To_FC_Flags & NC_TO_FC_AUTOSTART || FC_StatusFlags2 & FC_STATUS2_AUTO_STARTING) && (VarioCharacter == '=') && ACC_AltitudeControl)
72d2: 80 91 b7 04 lds r24, 0x04B7
72d6: 28 2f mov r18, r24
72d8: 24 70 andi r18, 0x04 ; 4
72da: 82 fd sbrc r24, 2
72dc: 04 c0 rjmp .+8 ; 0x72e6 <MotorRegler+0x2da>
72de: 80 91 ca 03 lds r24, 0x03CA
72e2: 86 ff sbrs r24, 6
72e4: 2a c0 rjmp .+84 ; 0x733a <MotorRegler+0x32e>
72e6: 80 91 20 01 lds r24, 0x0120
72ea: 8d 33 cpi r24, 0x3D ; 61
72ec: 31 f5 brne .+76 ; 0x733a <MotorRegler+0x32e>
72ee: 80 91 c2 03 lds r24, 0x03C2
72f2: 88 23 and r24, r24
72f4: 11 f1 breq .+68 ; 0x733a <MotorRegler+0x32e>
{
FromNC_AltitudeSpeed = 80;
72f6: 80 e5 ldi r24, 0x50 ; 80
72f8: 80 93 f3 03 sts 0x03F3, r24
FromNC_AltitudeSetpoint = 500;
72fc: 84 ef ldi r24, 0xF4 ; 244
72fe: 91 e0 ldi r25, 0x01 ; 1
7300: a0 e0 ldi r26, 0x00 ; 0
7302: b0 e0 ldi r27, 0x00 ; 0
7304: 80 93 f4 03 sts 0x03F4, r24
7308: 90 93 f5 03 sts 0x03F5, r25
730c: a0 93 f6 03 sts 0x03F6, r26
7310: b0 93 f7 03 sts 0x03F7, r27
SollHoehe = 500;
7314: 80 93 fa 03 sts 0x03FA, r24
7318: 90 93 fb 03 sts 0x03FB, r25
731c: a0 93 fc 03 sts 0x03FC, r26
7320: b0 93 fd 03 sts 0x03FD, r27
trigger = 1000;
7324: 88 ee ldi r24, 0xE8 ; 232
7326: 93 e0 ldi r25, 0x03 ; 3
7328: 90 93 1e 01 sts 0x011E, r25
732c: 80 93 1d 01 sts 0x011D, r24
if(NC_To_FC_Flags & NC_TO_FC_AUTOSTART) SpeakHoTT = SPEAK_NEXT_WP;
7330: 22 23 and r18, r18
7332: 19 f0 breq .+6 ; 0x733a <MotorRegler+0x32e>
7334: 8d e0 ldi r24, 0x0D ; 13
7336: 80 93 57 01 sts 0x0157, r24
}
*/
}
// else FC_StatusFlags2 &= ~(FC_STATUS2_AUTO_STARTING);
#endif
if(HoehenWertF > 150 || HoehenWert < -350 || !(Parameter_GlobalConfig & CFG_HOEHENREGELUNG))
733a: 80 91 4a 03 lds r24, 0x034A
733e: 90 91 4b 03 lds r25, 0x034B
7342: a0 91 4c 03 lds r26, 0x034C
7346: b0 91 4d 03 lds r27, 0x034D
734a: 87 39 cpi r24, 0x97 ; 151
734c: 91 05 cpc r25, r1
734e: a1 05 cpc r26, r1
7350: b1 05 cpc r27, r1
7352: 8c f4 brge .+34 ; 0x7376 <MotorRegler+0x36a>
7354: 80 91 fe 03 lds r24, 0x03FE
7358: 90 91 ff 03 lds r25, 0x03FF
735c: a0 91 00 04 lds r26, 0x0400
7360: b0 91 01 04 lds r27, 0x0401
7364: 82 3a cpi r24, 0xA2 ; 162
7366: 9e 4f sbci r25, 0xFE ; 254
7368: af 4f sbci r26, 0xFF ; 255
736a: bf 4f sbci r27, 0xFF ; 255
736c: 24 f0 brlt .+8 ; 0x7376 <MotorRegler+0x36a>
736e: 80 91 5c 06 lds r24, 0x065C
7372: 80 fd sbrc r24, 0
7374: 21 c0 rjmp .+66 ; 0x73b8 <MotorRegler+0x3ac>
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
trigger = 1000;
7376: 88 ee ldi r24, 0xE8 ; 232
7378: 93 e0 ldi r25, 0x03 ; 3
737a: 90 93 1e 01 sts 0x011E, r25
737e: 80 93 1d 01 sts 0x011D, r24
if(FC_StatusFlags2 & FC_STATUS2_AUTO_STARTING) { FromNC_AltitudeSpeed = 0; SollHoehe = 300;/*HoehenWertF + 100;*/}
7382: 80 91 ca 03 lds r24, 0x03CA
7386: 86 ff sbrs r24, 6
7388: 0f c0 rjmp .+30 ; 0x73a8 <MotorRegler+0x39c>
738a: 10 92 f3 03 sts 0x03F3, r1
738e: 8c e2 ldi r24, 0x2C ; 44
7390: 91 e0 ldi r25, 0x01 ; 1
7392: a0 e0 ldi r26, 0x00 ; 0
7394: b0 e0 ldi r27, 0x00 ; 0
7396: 80 93 fa 03 sts 0x03FA, r24
739a: 90 93 fb 03 sts 0x03FB, r25
739e: a0 93 fc 03 sts 0x03FC, r26
73a2: b0 93 fd 03 sts 0x03FD, r27
73a6: 03 c0 rjmp .+6 ; 0x73ae <MotorRegler+0x3a2>
else SpeakHoTT = SPEAK_RISING;
73a8: 80 e3 ldi r24, 0x30 ; 48
73aa: 80 93 57 01 sts 0x0157, r24
#endif
FC_StatusFlags2 &= ~(FC_STATUS2_WAIT_FOR_TAKEOFF | FC_STATUS2_AUTO_STARTING | FC_STATUS2_AUTO_LANDING);
73ae: 80 91 ca 03 lds r24, 0x03CA
73b2: 8f 71 andi r24, 0x1F ; 31
73b4: 80 93 ca 03 sts 0x03CA, r24
}
SummeNick = 0;
73b8: 10 92 26 04 sts 0x0426, r1
73bc: 10 92 27 04 sts 0x0427, r1
73c0: 10 92 28 04 sts 0x0428, r1
73c4: 10 92 29 04 sts 0x0429, r1
SummeRoll = 0;
73c8: 10 92 22 04 sts 0x0422, r1
73cc: 10 92 23 04 sts 0x0423, r1
73d0: 10 92 24 04 sts 0x0424, r1
73d4: 10 92 25 04 sts 0x0425, r1
Mess_Integral_Gier = 0;
73d8: 10 92 2e 04 sts 0x042E, r1
73dc: 10 92 2f 04 sts 0x042F, r1
73e0: 10 92 30 04 sts 0x0430, r1
73e4: 10 92 31 04 sts 0x0431, r1
// sollGier = 0;
if(modell_fliegt > 1000) modell_fliegt = 1000; // for the Hooverpoint-Estimation
73e8: 80 91 cc 03 lds r24, 0x03CC
73ec: 90 91 cd 03 lds r25, 0x03CD
73f0: 89 3e cpi r24, 0xE9 ; 233
73f2: 93 40 sbci r25, 0x03 ; 3
73f4: 08 f4 brcc .+2 ; 0x73f8 <MotorRegler+0x3ec>
73f6: 9c c0 rjmp .+312 ; 0x7530 <MotorRegler+0x524>
73f8: 88 ee ldi r24, 0xE8 ; 232
73fa: 93 e0 ldi r25, 0x03 ; 3
73fc: 90 93 cd 03 sts 0x03CD, r25
7400: 80 93 cc 03 sts 0x03CC, r24
7404: 95 c0 rjmp .+298 ; 0x7530 <MotorRegler+0x524>
}
else // Flying mode
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if((FC_StatusFlags2 & FC_STATUS2_AUTO_LANDING) && (VarioCharacter == 'v' || VarioCharacter == '=') && ACC_AltitudeControl)
7406: 80 91 ca 03 lds r24, 0x03CA
740a: 88 23 and r24, r24
740c: d4 f4 brge .+52 ; 0x7442 <MotorRegler+0x436>
740e: 80 91 20 01 lds r24, 0x0120
7412: 86 37 cpi r24, 0x76 ; 118
7414: 11 f0 breq .+4 ; 0x741a <MotorRegler+0x40e>
7416: 8d 33 cpi r24, 0x3D ; 61
7418: a1 f4 brne .+40 ; 0x7442 <MotorRegler+0x436>
741a: 80 91 c2 03 lds r24, 0x03C2
741e: 88 23 and r24, r24
7420: 81 f0 breq .+32 ; 0x7442 <MotorRegler+0x436>
{
FromNC_AltitudeSpeed = EE_Parameter.LandingSpeed;
7422: 80 91 b0 05 lds r24, 0x05B0
7426: 80 93 f3 03 sts 0x03F3, r24
FromNC_AltitudeSetpoint = -20000;
742a: 80 ee ldi r24, 0xE0 ; 224
742c: 91 eb ldi r25, 0xB1 ; 177
742e: af ef ldi r26, 0xFF ; 255
7430: bf ef ldi r27, 0xFF ; 255
7432: 80 93 f4 03 sts 0x03F4, r24
7436: 90 93 f5 03 sts 0x03F5, r25
743a: a0 93 f6 03 sts 0x03F6, r26
743e: b0 93 f7 03 sts 0x03F7, r27
}
if(trigger < 1000)
7442: 80 91 1d 01 lds r24, 0x011D
7446: 90 91 1e 01 lds r25, 0x011E
744a: 88 3e cpi r24, 0xE8 ; 232
744c: 03 e0 ldi r16, 0x03 ; 3
744e: 90 07 cpc r25, r16
7450: 08 f0 brcs .+2 ; 0x7454 <MotorRegler+0x448>
7452: 49 c0 rjmp .+146 ; 0x74e6 <MotorRegler+0x4da>
{
trigger++;
7454: 9c 01 movw r18, r24
7456: 2f 5f subi r18, 0xFF ; 255
7458: 3f 4f sbci r19, 0xFF ; 255
745a: 30 93 1e 01 sts 0x011E, r19
745e: 20 93 1d 01 sts 0x011D, r18
SummeNick = 0;
7462: 10 92 26 04 sts 0x0426, r1
7466: 10 92 27 04 sts 0x0427, r1
746a: 10 92 28 04 sts 0x0428, r1
746e: 10 92 29 04 sts 0x0429, r1
SummeRoll = 0;
7472: 10 92 22 04 sts 0x0422, r1
7476: 10 92 23 04 sts 0x0423, r1
747a: 10 92 24 04 sts 0x0424, r1
747e: 10 92 25 04 sts 0x0425, r1
Mess_Integral_Gier = 0;
7482: 10 92 2e 04 sts 0x042E, r1
7486: 10 92 2f 04 sts 0x042F, r1
748a: 10 92 30 04 sts 0x0430, r1
748e: 10 92 31 04 sts 0x0431, r1
SollHoehe = HoehenWertF - 300;
7492: 80 91 4a 03 lds r24, 0x034A
7496: 90 91 4b 03 lds r25, 0x034B
749a: a0 91 4c 03 lds r26, 0x034C
749e: b0 91 4d 03 lds r27, 0x034D
74a2: 8c 52 subi r24, 0x2C ; 44
74a4: 91 40 sbci r25, 0x01 ; 1
74a6: a1 09 sbc r26, r1
74a8: b1 09 sbc r27, r1
74aa: 80 93 fa 03 sts 0x03FA, r24
74ae: 90 93 fb 03 sts 0x03FB, r25
74b2: a0 93 fc 03 sts 0x03FC, r26
74b6: b0 93 fd 03 sts 0x03FD, r27
if(trigger == 1000 && FC_StatusFlags2 & FC_STATUS2_AUTO_LANDING && VarioCharacter != '+')
74ba: 28 3e cpi r18, 0xE8 ; 232
74bc: 33 40 sbci r19, 0x03 ; 3
74be: c1 f5 brne .+112 ; 0x7530 <MotorRegler+0x524>
74c0: 80 91 ca 03 lds r24, 0x03CA
74c4: 88 23 and r24, r24
74c6: a4 f5 brge .+104 ; 0x7530 <MotorRegler+0x524>
74c8: 80 91 20 01 lds r24, 0x0120
74cc: 8b 32 cpi r24, 0x2B ; 43
74ce: 81 f1 breq .+96 ; 0x7530 <MotorRegler+0x524>
{
FC_StatusFlags2 &= ~FC_STATUS2_AUTO_LANDING;
74d0: 80 91 ca 03 lds r24, 0x03CA
74d4: 8f 77 andi r24, 0x7F ; 127
74d6: 80 93 ca 03 sts 0x03CA, r24
FC_StatusFlags2 |= FC_STATUS2_WAIT_FOR_TAKEOFF; // go back into starting state
74da: 80 91 ca 03 lds r24, 0x03CA
74de: 80 62 ori r24, 0x20 ; 32
74e0: 80 93 ca 03 sts 0x03CA, r24
74e4: 25 c0 rjmp .+74 ; 0x7530 <MotorRegler+0x524>
}
}
else
if(ACC_AltitudeControl && (VarioCharacter == 'v' || VarioCharacter == '-') && HoehenWert < 1000 /*&& FromNC_AltitudeSetpoint < 0*/)
74e6: 80 91 c2 03 lds r24, 0x03C2
74ea: 88 23 and r24, r24
74ec: 09 f1 breq .+66 ; 0x7530 <MotorRegler+0x524>
74ee: 80 91 20 01 lds r24, 0x0120
74f2: 86 37 cpi r24, 0x76 ; 118
74f4: 11 f0 breq .+4 ; 0x74fa <MotorRegler+0x4ee>
74f6: 8d 32 cpi r24, 0x2D ; 45
74f8: d9 f4 brne .+54 ; 0x7530 <MotorRegler+0x524>
74fa: 80 91 fe 03 lds r24, 0x03FE
74fe: 90 91 ff 03 lds r25, 0x03FF
7502: a0 91 00 04 lds r26, 0x0400
7506: b0 91 01 04 lds r27, 0x0401
750a: 88 3e cpi r24, 0xE8 ; 232
750c: 93 40 sbci r25, 0x03 ; 3
750e: a1 05 cpc r26, r1
7510: b1 05 cpc r27, r1
7512: 74 f4 brge .+28 ; 0x7530 <MotorRegler+0x524>
{
if(Aktuell_az > 940)
7514: 80 91 06 05 lds r24, 0x0506
7518: 90 91 07 05 lds r25, 0x0507
751c: 8d 3a cpi r24, 0xAD ; 173
751e: 93 40 sbci r25, 0x03 ; 3
7520: 3c f0 brlt .+14 ; 0x7530 <MotorRegler+0x524>
{
trigger = 0;
7522: 10 92 1e 01 sts 0x011E, r1
7526: 10 92 1d 01 sts 0x011D, r1
SpeakHoTT = SPEAK_LANDING;
752a: 8e e0 ldi r24, 0x0E ; 14
752c: 80 93 57 01 sts 0x0157, r24
};
}
#endif
}
} // end of: modell_fliegt > 256
if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0 && !(NC_To_FC_Flags & NC_TO_FC_SIMULATION_ACTIVE))
7530: e0 91 41 05 lds r30, 0x0541
7534: f0 e0 ldi r31, 0x00 ; 0
7536: ee 0f add r30, r30
7538: ff 1f adc r31, r31
753a: ef 5c subi r30, 0xCF ; 207
753c: f7 4f sbci r31, 0xF7 ; 247
753e: 80 81 ld r24, Z
7540: 91 81 ldd r25, Z+1 ; 0x01
7542: 81 35 cpi r24, 0x51 ; 81
7544: 91 05 cpc r25, r1
7546: 0c f4 brge .+2 ; 0x754a <MotorRegler+0x53e>
7548: 87 c1 rjmp .+782 ; 0x7858 <MotorRegler+0x84c>
754a: 80 91 03 04 lds r24, 0x0403
754e: 81 11 cpse r24, r1
7550: 83 c1 rjmp .+774 ; 0x7858 <MotorRegler+0x84c>
7552: 80 91 b7 04 lds r24, 0x04B7
7556: 84 fd sbrc r24, 4
7558: 7f c1 rjmp .+766 ; 0x7858 <MotorRegler+0x84c>
{
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// auf Nullwerte kalibrieren
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 75) // Neutralwerte
755a: e0 91 42 05 lds r30, 0x0542
755e: f0 e0 ldi r31, 0x00 ; 0
7560: ee 0f add r30, r30
7562: ff 1f adc r31, r31
7564: ef 5c subi r30, 0xCF ; 207
7566: f7 4f sbci r31, 0xF7 ; 247
7568: 80 81 ld r24, Z
756a: 91 81 ldd r25, Z+1 ; 0x01
756c: 99 23 and r25, r25
756e: 1c f4 brge .+6 ; 0x7576 <MotorRegler+0x56a>
7570: 91 95 neg r25
7572: 81 95 neg r24
7574: 91 09 sbc r25, r1
7576: 8c 34 cpi r24, 0x4C ; 76
7578: 91 05 cpc r25, r1
757a: 0c f4 brge .+2 ; 0x757e <MotorRegler+0x572>
757c: 6b c1 rjmp .+726 ; 0x7854 <MotorRegler+0x848>
{
if(++delay_neutral > 200) // nicht sofort
757e: 80 91 9d 03 lds r24, 0x039D
7582: 8f 5f subi r24, 0xFF ; 255
7584: 89 3c cpi r24, 0xC9 ; 201
7586: 18 f4 brcc .+6 ; 0x758e <MotorRegler+0x582>
7588: 80 93 9d 03 sts 0x039D, r24
758c: 65 c1 rjmp .+714 ; 0x7858 <MotorRegler+0x84c>
{
unsigned char setting = 0;
delay_neutral = 0;
758e: 10 92 9d 03 sts 0x039D, r1
modell_fliegt = 0;
7592: 10 92 cd 03 sts 0x03CD, r1
7596: 10 92 cc 03 sts 0x03CC, r1
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70 || abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) > 70)
759a: 20 91 3f 05 lds r18, 0x053F
759e: 30 e0 ldi r19, 0x00 ; 0
75a0: f9 01 movw r30, r18
75a2: ee 0f add r30, r30
75a4: ff 1f adc r31, r31
75a6: ef 5c subi r30, 0xCF ; 207
75a8: f7 4f sbci r31, 0xF7 ; 247
75aa: 80 81 ld r24, Z
75ac: 91 81 ldd r25, Z+1 ; 0x01
75ae: 87 34 cpi r24, 0x47 ; 71
75b0: 91 05 cpc r25, r1
75b2: 94 f4 brge .+36 ; 0x75d8 <MotorRegler+0x5cc>
75b4: e0 91 40 05 lds r30, 0x0540
75b8: f0 e0 ldi r31, 0x00 ; 0
75ba: ee 0f add r30, r30
75bc: ff 1f adc r31, r31
75be: ef 5c subi r30, 0xCF ; 207
75c0: f7 4f sbci r31, 0xF7 ; 247
75c2: 80 81 ld r24, Z
75c4: 91 81 ldd r25, Z+1 ; 0x01
75c6: 99 23 and r25, r25
75c8: 1c f4 brge .+6 ; 0x75d0 <MotorRegler+0x5c4>
75ca: 91 95 neg r25
75cc: 81 95 neg r24
75ce: 91 09 sbc r25, r1
75d0: 87 34 cpi r24, 0x47 ; 71
75d2: 91 05 cpc r25, r1
75d4: 0c f4 brge .+2 ; 0x75d8 <MotorRegler+0x5cc>
75d6: 8c c0 rjmp .+280 ; 0x76f0 <MotorRegler+0x6e4>
{
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -70) setting = 1;
75d8: 40 91 40 05 lds r20, 0x0540
75dc: 50 e0 ldi r21, 0x00 ; 0
75de: fa 01 movw r30, r20
75e0: ee 0f add r30, r30
75e2: ff 1f adc r31, r31
75e4: ef 5c subi r30, 0xCF ; 207
75e6: f7 4f sbci r31, 0xF7 ; 247
75e8: 80 81 ld r24, Z
75ea: 91 81 ldd r25, Z+1 ; 0x01
75ec: 87 34 cpi r24, 0x47 ; 71
75ee: 91 05 cpc r25, r1
75f0: bc f0 brlt .+46 ; 0x7620 <MotorRegler+0x614>
75f2: f9 01 movw r30, r18
75f4: ee 0f add r30, r30
75f6: ff 1f adc r31, r31
75f8: ef 5c subi r30, 0xCF ; 207
75fa: f7 4f sbci r31, 0xF7 ; 247
75fc: 80 81 ld r24, Z
75fe: 91 81 ldd r25, Z+1 ; 0x01
7600: 86 34 cpi r24, 0x46 ; 70
7602: 91 05 cpc r25, r1
7604: 7c f4 brge .+30 ; 0x7624 <MotorRegler+0x618>
7606: f9 01 movw r30, r18
7608: ee 0f add r30, r30
760a: ff 1f adc r31, r31
760c: ef 5c subi r30, 0xCF ; 207
760e: f7 4f sbci r31, 0xF7 ; 247
7610: 80 81 ld r24, Z
7612: 91 81 ldd r25, Z+1 ; 0x01
7614: 11 e0 ldi r17, 0x01 ; 1
7616: 8b 3b cpi r24, 0xBB ; 187
7618: 9f 4f sbci r25, 0xFF ; 255
761a: 2c f4 brge .+10 ; 0x7626 <MotorRegler+0x61a>
761c: 10 e0 ldi r17, 0x00 ; 0
761e: 03 c0 rjmp .+6 ; 0x7626 <MotorRegler+0x61a>
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 75) // Neutralwerte
{
if(++delay_neutral > 200) // nicht sofort
{
unsigned char setting = 0;
7620: 10 e0 ldi r17, 0x00 ; 0
7622: 01 c0 rjmp .+2 ; 0x7626 <MotorRegler+0x61a>
7624: 10 e0 ldi r17, 0x00 ; 0
delay_neutral = 0;
modell_fliegt = 0;
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70 || abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) > 70)
{
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -70) setting = 1;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 2;
7626: fa 01 movw r30, r20
7628: ee 0f add r30, r30
762a: ff 1f adc r31, r31
762c: ef 5c subi r30, 0xCF ; 207
762e: f7 4f sbci r31, 0xF7 ; 247
7630: 80 81 ld r24, Z
7632: 91 81 ldd r25, Z+1 ; 0x01
7634: 87 34 cpi r24, 0x47 ; 71
7636: 91 05 cpc r25, r1
7638: 5c f0 brlt .+22 ; 0x7650 <MotorRegler+0x644>
763a: f9 01 movw r30, r18
763c: ee 0f add r30, r30
763e: ff 1f adc r31, r31
7640: ef 5c subi r30, 0xCF ; 207
7642: f7 4f sbci r31, 0xF7 ; 247
7644: 80 81 ld r24, Z
7646: 91 81 ldd r25, Z+1 ; 0x01
7648: 87 34 cpi r24, 0x47 ; 71
764a: 91 05 cpc r25, r1
764c: 0c f0 brlt .+2 ; 0x7650 <MotorRegler+0x644>
764e: 12 e0 ldi r17, 0x02 ; 2
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 3;
7650: fa 01 movw r30, r20
7652: ee 0f add r30, r30
7654: ff 1f adc r31, r31
7656: ef 5c subi r30, 0xCF ; 207
7658: f7 4f sbci r31, 0xF7 ; 247
765a: 80 81 ld r24, Z
765c: 91 81 ldd r25, Z+1 ; 0x01
765e: 86 34 cpi r24, 0x46 ; 70
7660: 91 05 cpc r25, r1
7662: 5c f4 brge .+22 ; 0x767a <MotorRegler+0x66e>
7664: f9 01 movw r30, r18
7666: ee 0f add r30, r30
7668: ff 1f adc r31, r31
766a: ef 5c subi r30, 0xCF ; 207
766c: f7 4f sbci r31, 0xF7 ; 247
766e: 80 81 ld r24, Z
7670: 91 81 ldd r25, Z+1 ; 0x01
7672: 87 34 cpi r24, 0x47 ; 71
7674: 91 05 cpc r25, r1
7676: 0c f0 brlt .+2 ; 0x767a <MotorRegler+0x66e>
7678: 13 e0 ldi r17, 0x03 ; 3
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4;
767a: fa 01 movw r30, r20
767c: ee 0f add r30, r30
767e: ff 1f adc r31, r31
7680: ef 5c subi r30, 0xCF ; 207
7682: f7 4f sbci r31, 0xF7 ; 247
7684: 80 81 ld r24, Z
7686: 91 81 ldd r25, Z+1 ; 0x01
7688: 8a 3b cpi r24, 0xBA ; 186
768a: 9f 4f sbci r25, 0xFF ; 255
768c: 5c f4 brge .+22 ; 0x76a4 <MotorRegler+0x698>
768e: f9 01 movw r30, r18
7690: ee 0f add r30, r30
7692: ff 1f adc r31, r31
7694: ef 5c subi r30, 0xCF ; 207
7696: f7 4f sbci r31, 0xF7 ; 247
7698: 80 81 ld r24, Z
769a: 91 81 ldd r25, Z+1 ; 0x01
769c: 87 34 cpi r24, 0x47 ; 71
769e: 91 05 cpc r25, r1
76a0: 0c f0 brlt .+2 ; 0x76a4 <MotorRegler+0x698>
76a2: 14 e0 ldi r17, 0x04 ; 4
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -70) setting = 5;
76a4: 44 0f add r20, r20
76a6: 55 1f adc r21, r21
76a8: fa 01 movw r30, r20
76aa: ef 5c subi r30, 0xCF ; 207
76ac: f7 4f sbci r31, 0xF7 ; 247
76ae: 80 81 ld r24, Z
76b0: 91 81 ldd r25, Z+1 ; 0x01
76b2: 8a 3b cpi r24, 0xBA ; 186
76b4: 9f 4f sbci r25, 0xFF ; 255
76b6: a4 f4 brge .+40 ; 0x76e0 <MotorRegler+0x6d4>
76b8: f9 01 movw r30, r18
76ba: ee 0f add r30, r30
76bc: ff 1f adc r31, r31
76be: ef 5c subi r30, 0xCF ; 207
76c0: f7 4f sbci r31, 0xF7 ; 247
76c2: 80 81 ld r24, Z
76c4: 91 81 ldd r25, Z+1 ; 0x01
76c6: 86 34 cpi r24, 0x46 ; 70
76c8: 91 05 cpc r25, r1
76ca: 54 f4 brge .+20 ; 0x76e0 <MotorRegler+0x6d4>
76cc: 22 0f add r18, r18
76ce: 33 1f adc r19, r19
76d0: f9 01 movw r30, r18
76d2: ef 5c subi r30, 0xCF ; 207
76d4: f7 4f sbci r31, 0xF7 ; 247
76d6: 80 81 ld r24, Z
76d8: 91 81 ldd r25, Z+1 ; 0x01
76da: 8b 3b cpi r24, 0xBB ; 187
76dc: 9f 4f sbci r25, 0xFF ; 255
76de: 1c f4 brge .+6 ; 0x76e6 <MotorRegler+0x6da>
if(setting) SetActiveParamSet(setting); // aktiven Datensatz merken
76e0: 11 23 and r17, r17
76e2: 39 f0 breq .+14 ; 0x76f2 <MotorRegler+0x6e6>
76e4: 01 c0 rjmp .+2 ; 0x76e8 <MotorRegler+0x6dc>
{
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -70) setting = 1;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 2;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 3;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -70) setting = 5;
76e6: 15 e0 ldi r17, 0x05 ; 5
if(setting) SetActiveParamSet(setting); // aktiven Datensatz merken
76e8: 81 2f mov r24, r17
76ea: 0e 94 18 26 call 0x4c30 ; 0x4c30 <SetActiveParamSet>
76ee: 01 c0 rjmp .+2 ; 0x76f2 <MotorRegler+0x6e6>
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 75) // Neutralwerte
{
if(++delay_neutral > 200) // nicht sofort
{
unsigned char setting = 0;
76f0: 10 e0 ldi r17, 0x00 ; 0
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 3;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -70) setting = 5;
if(setting) SetActiveParamSet(setting); // aktiven Datensatz merken
}
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 30 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70)
76f2: e0 91 40 05 lds r30, 0x0540
76f6: f0 e0 ldi r31, 0x00 ; 0
76f8: ee 0f add r30, r30
76fa: ff 1f adc r31, r31
76fc: ef 5c subi r30, 0xCF ; 207
76fe: f7 4f sbci r31, 0xF7 ; 247
7700: 20 81 ld r18, Z
7702: 31 81 ldd r19, Z+1 ; 0x01
7704: 33 23 and r19, r19
7706: 1c f4 brge .+6 ; 0x770e <MotorRegler+0x702>
7708: 31 95 neg r19
770a: 21 95 neg r18
770c: 31 09 sbc r19, r1
770e: 2e 31 cpi r18, 0x1E ; 30
7710: 31 05 cpc r19, r1
7712: c4 f4 brge .+48 ; 0x7744 <MotorRegler+0x738>
7714: e0 91 3f 05 lds r30, 0x053F
7718: f0 e0 ldi r31, 0x00 ; 0
771a: ee 0f add r30, r30
771c: ff 1f adc r31, r31
771e: ef 5c subi r30, 0xCF ; 207
7720: f7 4f sbci r31, 0xF7 ; 247
7722: 20 81 ld r18, Z
7724: 31 81 ldd r19, Z+1 ; 0x01
7726: 2a 3b cpi r18, 0xBA ; 186
7728: 3f 4f sbci r19, 0xFF ; 255
772a: 64 f4 brge .+24 ; 0x7744 <MotorRegler+0x738>
{
WinkelOut.CalcState = 1;
772c: 81 e0 ldi r24, 0x01 ; 1
772e: 80 93 7d 0a sts 0x0A7D, r24
CalibrationDone = 0;
7732: 10 92 ef 03 sts 0x03EF, r1
beeptime = 1000;
7736: 88 ee ldi r24, 0xE8 ; 232
7738: 93 e0 ldi r25, 0x03 ; 3
773a: 90 93 ce 04 sts 0x04CE, r25
773e: 80 93 cd 04 sts 0x04CD, r24
7742: 8a c0 rjmp .+276 ; 0x7858 <MotorRegler+0x84c>
}
else
{
ParamSet_ReadFromEEProm(ActiveParamSet);
7744: 80 91 52 01 lds r24, 0x0152
7748: 0e 94 4e 25 call 0x4a9c ; 0x4a9c <ParamSet_ReadFromEEProm>
LipoDetection(0);
774c: 80 e0 ldi r24, 0x00 ; 0
774e: 0e 94 90 59 call 0xb320 ; 0xb320 <LipoDetection>
LIBFC_ReceiverInit(EE_Parameter.Receiver);
7752: 80 91 65 05 lds r24, 0x0565
7756: 0e 94 68 18 call 0x30d0 ; 0x30d0 <LIBFC_ReceiverInit>
if((Parameter_GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert?
775a: 80 91 5c 06 lds r24, 0x065C
775e: 80 ff sbrs r24, 0
7760: 10 c0 rjmp .+32 ; 0x7782 <MotorRegler+0x776>
{
if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();
7762: 20 91 10 01 lds r18, 0x0110
7766: 30 91 11 01 lds r19, 0x0111
776a: 27 3b cpi r18, 0xB7 ; 183
776c: 33 40 sbci r19, 0x03 ; 3
776e: 38 f4 brcc .+14 ; 0x777e <MotorRegler+0x772>
7770: 20 91 10 01 lds r18, 0x0110
7774: 30 91 11 01 lds r19, 0x0111
7778: 2e 3e cpi r18, 0xEE ; 238
777a: 32 40 sbci r19, 0x02 ; 2
777c: 10 f4 brcc .+4 ; 0x7782 <MotorRegler+0x776>
777e: 0e 94 4b 1b call 0x3696 ; 0x3696 <SucheLuftruckOffset>
}
if(!setting && PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < -70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) CalibrationDone = SetNeutral(3);
7782: 11 11 cpse r17, r1
7784: 41 c0 rjmp .+130 ; 0x7808 <MotorRegler+0x7fc>
7786: e0 91 40 05 lds r30, 0x0540
778a: f0 e0 ldi r31, 0x00 ; 0
778c: ee 0f add r30, r30
778e: ff 1f adc r31, r31
7790: ef 5c subi r30, 0xCF ; 207
7792: f7 4f sbci r31, 0xF7 ; 247
7794: 80 81 ld r24, Z
7796: 91 81 ldd r25, Z+1 ; 0x01
7798: 8a 3b cpi r24, 0xBA ; 186
779a: 9f 4f sbci r25, 0xFF ; 255
779c: 94 f4 brge .+36 ; 0x77c2 <MotorRegler+0x7b6>
779e: e0 91 3f 05 lds r30, 0x053F
77a2: f0 e0 ldi r31, 0x00 ; 0
77a4: ee 0f add r30, r30
77a6: ff 1f adc r31, r31
77a8: ef 5c subi r30, 0xCF ; 207
77aa: f7 4f sbci r31, 0xF7 ; 247
77ac: 80 81 ld r24, Z
77ae: 91 81 ldd r25, Z+1 ; 0x01
77b0: 86 34 cpi r24, 0x46 ; 70
77b2: 91 05 cpc r25, r1
77b4: 34 f4 brge .+12 ; 0x77c2 <MotorRegler+0x7b6>
77b6: 83 e0 ldi r24, 0x03 ; 3
77b8: 0e 94 53 29 call 0x52a6 ; 0x52a6 <SetNeutral>
77bc: 80 93 ef 03 sts 0x03EF, r24
77c0: 28 c0 rjmp .+80 ; 0x7812 <MotorRegler+0x806>
else
if(!setting && PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75 && abs(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]) < 70) CalibrationDone = SetNeutral(2); // store ACC values into EEPROM
77c2: e0 91 42 05 lds r30, 0x0542
77c6: f0 e0 ldi r31, 0x00 ; 0
77c8: ee 0f add r30, r30
77ca: ff 1f adc r31, r31
77cc: ef 5c subi r30, 0xCF ; 207
77ce: f7 4f sbci r31, 0xF7 ; 247
77d0: 80 81 ld r24, Z
77d2: 91 81 ldd r25, Z+1 ; 0x01
77d4: 85 3b cpi r24, 0xB5 ; 181
77d6: 9f 4f sbci r25, 0xFF ; 255
77d8: bc f4 brge .+46 ; 0x7808 <MotorRegler+0x7fc>
77da: e0 91 3f 05 lds r30, 0x053F
77de: f0 e0 ldi r31, 0x00 ; 0
77e0: ee 0f add r30, r30
77e2: ff 1f adc r31, r31
77e4: ef 5c subi r30, 0xCF ; 207
77e6: f7 4f sbci r31, 0xF7 ; 247
77e8: 80 81 ld r24, Z
77ea: 91 81 ldd r25, Z+1 ; 0x01
77ec: 99 23 and r25, r25
77ee: 1c f4 brge .+6 ; 0x77f6 <MotorRegler+0x7ea>
77f0: 91 95 neg r25
77f2: 81 95 neg r24
77f4: 91 09 sbc r25, r1
77f6: 86 34 cpi r24, 0x46 ; 70
77f8: 91 05 cpc r25, r1
77fa: 34 f4 brge .+12 ; 0x7808 <MotorRegler+0x7fc>
77fc: 82 e0 ldi r24, 0x02 ; 2
77fe: 0e 94 53 29 call 0x52a6 ; 0x52a6 <SetNeutral>
7802: 80 93 ef 03 sts 0x03EF, r24
7806: 05 c0 rjmp .+10 ; 0x7812 <MotorRegler+0x806>
else CalibrationDone = SetNeutral(1);
7808: 81 e0 ldi r24, 0x01 ; 1
780a: 0e 94 53 29 call 0x52a6 ; 0x52a6 <SetNeutral>
780e: 80 93 ef 03 sts 0x03EF, r24
ServoActive = 1;
7812: 81 e0 ldi r24, 0x01 ; 1
7814: 80 93 cb 04 sts 0x04CB, r24
DDRD |=0x80; // enable J7 -> Servo signal
7818: 57 9a sbi 0x0a, 7 ; 10
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(VersionInfo.HardwareError[0]) SpeakHoTT = SPEAK_ERR_SENSOR;
781a: 80 91 62 0a lds r24, 0x0A62
781e: 88 23 and r24, r24
7820: 21 f0 breq .+8 ; 0x782a <MotorRegler+0x81e>
7822: 87 e0 ldi r24, 0x07 ; 7
7824: 80 93 57 01 sts 0x0157, r24
7828: 0b c0 rjmp .+22 ; 0x7840 <MotorRegler+0x834>
else
if(!CalibrationDone) SpeakHoTT = SPEAK_ERR_CALIBARTION;
782a: 80 91 ef 03 lds r24, 0x03EF
782e: 81 11 cpse r24, r1
7830: 04 c0 rjmp .+8 ; 0x783a <MotorRegler+0x82e>
7832: 81 e0 ldi r24, 0x01 ; 1
7834: 80 93 57 01 sts 0x0157, r24
7838: 03 c0 rjmp .+6 ; 0x7840 <MotorRegler+0x834>
else SpeakHoTT = SPEAK_CALIBRATE;
783a: 88 e1 ldi r24, 0x18 ; 24
783c: 80 93 57 01 sts 0x0157, r24
ShowSettingNameTime = 10; // for HoTT & Jeti
7840: 8a e0 ldi r24, 0x0A ; 10
7842: 80 93 80 04 sts 0x0480, r24
#endif
Piep(ActiveParamSet,120);
7846: 68 e7 ldi r22, 0x78 ; 120
7848: 70 e0 ldi r23, 0x00 ; 0
784a: 80 91 52 01 lds r24, 0x0152
784e: 0e 94 ba 28 call 0x5174 ; 0x5174 <Piep>
7852: 02 c0 rjmp .+4 ; 0x7858 <MotorRegler+0x84c>
#endif
Piep(ActiveParamSet,120);
}
}
*/
else delay_neutral = 0;
7854: 10 92 9d 03 sts 0x039D, r1
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gas ist unten
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < -100)
7858: e0 91 41 05 lds r30, 0x0541
785c: f0 e0 ldi r31, 0x00 ; 0
785e: ee 0f add r30, r30
7860: ff 1f adc r31, r31
7862: ef 5c subi r30, 0xCF ; 207
7864: f7 4f sbci r31, 0xF7 ; 247
7866: 80 81 ld r24, Z
7868: 91 81 ldd r25, Z+1 ; 0x01
786a: 8c 39 cpi r24, 0x9C ; 156
786c: 9f 4f sbci r25, 0xFF ; 255
786e: 0c f0 brlt .+2 ; 0x7872 <MotorRegler+0x866>
7870: 38 c2 rjmp .+1136 ; 0x7ce2 <MotorRegler+0xcd6>
{
if(PPM_diff[EE_Parameter.MotorSafetySwitch & 127] > 5) move_safety_switch = 100;
7872: 40 91 a3 05 lds r20, 0x05A3
7876: 84 2f mov r24, r20
7878: 8f 77 andi r24, 0x7F ; 127
787a: 90 e0 ldi r25, 0x00 ; 0
787c: fc 01 movw r30, r24
787e: ee 0f add r30, r30
7880: ff 1f adc r31, r31
7882: e9 58 subi r30, 0x89 ; 137
7884: f7 4f sbci r31, 0xF7 ; 247
7886: 20 81 ld r18, Z
7888: 31 81 ldd r19, Z+1 ; 0x01
788a: 26 30 cpi r18, 0x06 ; 6
788c: 31 05 cpc r19, r1
788e: 24 f0 brlt .+8 ; 0x7898 <MotorRegler+0x88c>
7890: 84 e6 ldi r24, 0x64 ; 100
7892: 80 93 9c 03 sts 0x039C, r24
7896: 0d c0 rjmp .+26 ; 0x78b2 <MotorRegler+0x8a6>
else
if(PPM_diff[EE_Parameter.MotorSafetySwitch & 127] < -5) move_safety_switch = -100;
7898: fc 01 movw r30, r24
789a: ee 0f add r30, r30
789c: ff 1f adc r31, r31
789e: e9 58 subi r30, 0x89 ; 137
78a0: f7 4f sbci r31, 0xF7 ; 247
78a2: 80 81 ld r24, Z
78a4: 91 81 ldd r25, Z+1 ; 0x01
78a6: 8b 3f cpi r24, 0xFB ; 251
78a8: 9f 4f sbci r25, 0xFF ; 255
78aa: 1c f4 brge .+6 ; 0x78b2 <MotorRegler+0x8a6>
78ac: 8c e9 ldi r24, 0x9C ; 156
78ae: 80 93 9c 03 sts 0x039C, r24
// Motoren Starten
if(!MotorenEin)
78b2: 80 91 03 04 lds r24, 0x0403
78b6: 81 11 cpse r24, r1
78b8: 66 c1 rjmp .+716 ; 0x7b86 <MotorRegler+0xb7a>
{
if(((((PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -100) && ((!(EE_Parameter.GlobalConfig3 & CFG3_MOTOR_SWITCH_MODE) && PPM_in[EE_Parameter.MotorSafetySwitch] < -75) || EE_Parameter.MotorSafetySwitch == 0)))
78ba: e0 91 42 05 lds r30, 0x0542
78be: f0 e0 ldi r31, 0x00 ; 0
78c0: ee 0f add r30, r30
78c2: ff 1f adc r31, r31
78c4: ef 5c subi r30, 0xCF ; 207
78c6: f7 4f sbci r31, 0xF7 ; 247
78c8: 80 81 ld r24, Z
78ca: 91 81 ldd r25, Z+1 ; 0x01
78cc: 8c 39 cpi r24, 0x9C ; 156
78ce: 9f 4f sbci r25, 0xFF ; 255
78d0: 8c f4 brge .+34 ; 0x78f4 <MotorRegler+0x8e8>
78d2: 80 91 b9 05 lds r24, 0x05B9
78d6: 83 fd sbrc r24, 3
78d8: 0b c0 rjmp .+22 ; 0x78f0 <MotorRegler+0x8e4>
78da: e4 2f mov r30, r20
78dc: f0 e0 ldi r31, 0x00 ; 0
78de: ee 0f add r30, r30
78e0: ff 1f adc r31, r31
78e2: ef 5c subi r30, 0xCF ; 207
78e4: f7 4f sbci r31, 0xF7 ; 247
78e6: 80 81 ld r24, Z
78e8: 91 81 ldd r25, Z+1 ; 0x01
78ea: 85 3b cpi r24, 0xB5 ; 181
78ec: 9f 4f sbci r25, 0xFF ; 255
78ee: bc f0 brlt .+46 ; 0x791e <MotorRegler+0x912>
78f0: 44 23 and r20, r20
78f2: a9 f0 breq .+42 ; 0x791e <MotorRegler+0x912>
|| (((EE_Parameter.GlobalConfig3 & CFG3_MOTOR_SWITCH_MODE) && PPM_in[EE_Parameter.MotorSafetySwitch] > -10 && move_safety_switch == 100)))
78f4: 80 91 b9 05 lds r24, 0x05B9
78f8: 83 ff sbrs r24, 3
78fa: 42 c1 rjmp .+644 ; 0x7b80 <MotorRegler+0xb74>
78fc: e4 2f mov r30, r20
78fe: f0 e0 ldi r31, 0x00 ; 0
7900: ee 0f add r30, r30
7902: ff 1f adc r31, r31
7904: ef 5c subi r30, 0xCF ; 207
7906: f7 4f sbci r31, 0xF7 ; 247
7908: 80 81 ld r24, Z
790a: 91 81 ldd r25, Z+1 ; 0x01
790c: 87 3f cpi r24, 0xF7 ; 247
790e: 9f 4f sbci r25, 0xFF ; 255
7910: 0c f4 brge .+2 ; 0x7914 <MotorRegler+0x908>
7912: 36 c1 rjmp .+620 ; 0x7b80 <MotorRegler+0xb74>
7914: 80 91 9c 03 lds r24, 0x039C
7918: 84 36 cpi r24, 0x64 ; 100
791a: 09 f0 breq .+2 ; 0x791e <MotorRegler+0x912>
791c: 31 c1 rjmp .+610 ; 0x7b80 <MotorRegler+0xb74>
&& !(NC_To_FC_Flags & NC_TO_FC_SIMULATION_ACTIVE))
791e: 80 91 b7 04 lds r24, 0x04B7
7922: 84 fd sbrc r24, 4
7924: 2d c1 rjmp .+602 ; 0x7b80 <MotorRegler+0xb74>
{
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Einschalten
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(CalibrationDone) FC_StatusFlags |= FC_STATUS_START;
7926: 80 91 ef 03 lds r24, 0x03EF
792a: 88 23 and r24, r24
792c: 29 f0 breq .+10 ; 0x7938 <MotorRegler+0x92c>
792e: 80 91 cb 03 lds r24, 0x03CB
7932: 88 60 ori r24, 0x08 ; 8
7934: 80 93 cb 03 sts 0x03CB, r24
 
StartLuftdruck = Luftdruck;
7938: 80 91 12 01 lds r24, 0x0112
793c: 90 91 13 01 lds r25, 0x0113
7940: a0 91 14 01 lds r26, 0x0114
7944: b0 91 15 01 lds r27, 0x0115
7948: 80 93 08 05 sts 0x0508, r24
794c: 90 93 09 05 sts 0x0509, r25
7950: a0 93 0a 05 sts 0x050A, r26
7954: b0 93 0b 05 sts 0x050B, r27
HoehenWert = 0;
7958: 10 92 fe 03 sts 0x03FE, r1
795c: 10 92 ff 03 sts 0x03FF, r1
7960: 10 92 00 04 sts 0x0400, r1
7964: 10 92 01 04 sts 0x0401, r1
HoehenWert_Mess = 0;
7968: 10 92 46 03 sts 0x0346, r1
796c: 10 92 47 03 sts 0x0347, r1
7970: 10 92 48 03 sts 0x0348, r1
7974: 10 92 49 03 sts 0x0349, r1
GasIsZeroCnt = 600;
7978: 88 e5 ldi r24, 0x58 ; 88
797a: 92 e0 ldi r25, 0x02 ; 2
797c: 90 93 c6 03 sts 0x03C6, r25
7980: 80 93 c5 03 sts 0x03C5, r24
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
HoehenWertF_Mess = 0;
7984: 10 92 42 03 sts 0x0342, r1
7988: 10 92 43 03 sts 0x0343, r1
798c: 10 92 44 03 sts 0x0344, r1
7990: 10 92 45 03 sts 0x0345, r1
#endif
SummenHoehe = 0;
7994: 10 92 57 03 sts 0x0357, r1
7998: 10 92 58 03 sts 0x0358, r1
799c: 10 92 59 03 sts 0x0359, r1
79a0: 10 92 5a 03 sts 0x035A, r1
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -100 || abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 100) && EE_Parameter.MotorSafetySwitch == 0) delay_einschalten = 0;
79a4: e0 91 3f 05 lds r30, 0x053F
79a8: f0 e0 ldi r31, 0x00 ; 0
79aa: ee 0f add r30, r30
79ac: ff 1f adc r31, r31
79ae: ef 5c subi r30, 0xCF ; 207
79b0: f7 4f sbci r31, 0xF7 ; 247
79b2: 80 81 ld r24, Z
79b4: 91 81 ldd r25, Z+1 ; 0x01
79b6: 8d 39 cpi r24, 0x9D ; 157
79b8: 9f 4f sbci r25, 0xFF ; 255
79ba: 8c f4 brge .+34 ; 0x79de <MotorRegler+0x9d2>
79bc: e0 91 40 05 lds r30, 0x0540
79c0: f0 e0 ldi r31, 0x00 ; 0
79c2: ee 0f add r30, r30
79c4: ff 1f adc r31, r31
79c6: ef 5c subi r30, 0xCF ; 207
79c8: f7 4f sbci r31, 0xF7 ; 247
79ca: 80 81 ld r24, Z
79cc: 91 81 ldd r25, Z+1 ; 0x01
79ce: 99 23 and r25, r25
79d0: 1c f4 brge .+6 ; 0x79d8 <MotorRegler+0x9cc>
79d2: 91 95 neg r25
79d4: 81 95 neg r24
79d6: 91 09 sbc r25, r1
79d8: 84 36 cpi r24, 0x64 ; 100
79da: 91 05 cpc r25, r1
79dc: 34 f4 brge .+12 ; 0x79ea <MotorRegler+0x9de>
79de: 41 11 cpse r20, r1
79e0: 04 c0 rjmp .+8 ; 0x79ea <MotorRegler+0x9de>
if(++delay_einschalten > 253)
79e2: 81 e0 ldi r24, 0x01 ; 1
79e4: 80 93 9b 03 sts 0x039B, r24
79e8: 5e c1 rjmp .+700 ; 0x7ca6 <MotorRegler+0xc9a>
79ea: 80 91 9b 03 lds r24, 0x039B
79ee: 8f 5f subi r24, 0xFF ; 255
79f0: 80 93 9b 03 sts 0x039B, r24
79f4: 8e 3f cpi r24, 0xFE ; 254
79f6: 08 f4 brcc .+2 ; 0x79fa <MotorRegler+0x9ee>
79f8: 56 c1 rjmp .+684 ; 0x7ca6 <MotorRegler+0xc9a>
{
if(FC_StatusFlags3 & FC_STATUS3_BOAT) { if((abs(MesswertGier) > 32*2 || abs(MesswertNick) > 20*3) || abs(MesswertRoll) > 20*3) CalibrationDone = 0; } // dann ist der Gyro defekt, schlecht kalibriert oder der MK dreht sich
79fa: 80 91 c9 03 lds r24, 0x03C9
79fe: 81 ff sbrs r24, 1
7a00: 25 c0 rjmp .+74 ; 0x7a4c <MotorRegler+0xa40>
7a02: 80 91 67 06 lds r24, 0x0667
7a06: 90 91 68 06 lds r25, 0x0668
7a0a: 99 23 and r25, r25
7a0c: 1c f4 brge .+6 ; 0x7a14 <MotorRegler+0xa08>
7a0e: 91 95 neg r25
7a10: 81 95 neg r24
7a12: 91 09 sbc r25, r1
7a14: 81 34 cpi r24, 0x41 ; 65
7a16: 91 05 cpc r25, r1
7a18: b4 f4 brge .+44 ; 0x7a46 <MotorRegler+0xa3a>
7a1a: 80 91 27 06 lds r24, 0x0627
7a1e: 90 91 28 06 lds r25, 0x0628
7a22: 99 23 and r25, r25
7a24: 1c f4 brge .+6 ; 0x7a2c <MotorRegler+0xa20>
7a26: 91 95 neg r25
7a28: 81 95 neg r24
7a2a: 91 09 sbc r25, r1
7a2c: cd 97 sbiw r24, 0x3d ; 61
7a2e: 5c f4 brge .+22 ; 0x7a46 <MotorRegler+0xa3a>
7a30: 80 91 1c 06 lds r24, 0x061C
7a34: 90 91 1d 06 lds r25, 0x061D
7a38: 99 23 and r25, r25
7a3a: 1c f4 brge .+6 ; 0x7a42 <MotorRegler+0xa36>
7a3c: 91 95 neg r25
7a3e: 81 95 neg r24
7a40: 91 09 sbc r25, r1
7a42: cd 97 sbiw r24, 0x3d ; 61
7a44: 34 f1 brlt .+76 ; 0x7a92 <MotorRegler+0xa86>
7a46: 10 92 ef 03 sts 0x03EF, r1
7a4a: 23 c0 rjmp .+70 ; 0x7a92 <MotorRegler+0xa86>
else
if((abs(MesswertGier) > 32 || abs(MesswertNick) > 20) || abs(MesswertRoll) > 20) CalibrationDone = 0; // dann ist der Gyro defekt, schlecht kalibriert oder der MK dreht sich
7a4c: 80 91 67 06 lds r24, 0x0667
7a50: 90 91 68 06 lds r25, 0x0668
7a54: 99 23 and r25, r25
7a56: 1c f4 brge .+6 ; 0x7a5e <MotorRegler+0xa52>
7a58: 91 95 neg r25
7a5a: 81 95 neg r24
7a5c: 91 09 sbc r25, r1
7a5e: 81 97 sbiw r24, 0x21 ; 33
7a60: b4 f4 brge .+44 ; 0x7a8e <MotorRegler+0xa82>
7a62: 80 91 27 06 lds r24, 0x0627
7a66: 90 91 28 06 lds r25, 0x0628
7a6a: 99 23 and r25, r25
7a6c: 1c f4 brge .+6 ; 0x7a74 <MotorRegler+0xa68>
7a6e: 91 95 neg r25
7a70: 81 95 neg r24
7a72: 91 09 sbc r25, r1
7a74: 45 97 sbiw r24, 0x15 ; 21
7a76: 5c f4 brge .+22 ; 0x7a8e <MotorRegler+0xa82>
7a78: 80 91 1c 06 lds r24, 0x061C
7a7c: 90 91 1d 06 lds r25, 0x061D
7a80: 99 23 and r25, r25
7a82: 1c f4 brge .+6 ; 0x7a8a <MotorRegler+0xa7e>
7a84: 91 95 neg r25
7a86: 81 95 neg r24
7a88: 91 09 sbc r25, r1
7a8a: 45 97 sbiw r24, 0x15 ; 21
7a8c: 14 f0 brlt .+4 ; 0x7a92 <MotorRegler+0xa86>
7a8e: 10 92 ef 03 sts 0x03EF, r1
delay_einschalten = 0;
7a92: 10 92 9b 03 sts 0x039B, r1
if(!VersionInfo.HardwareError[0] && CalibrationDone && !NC_ErrorCode)
7a96: 80 91 62 0a lds r24, 0x0A62
7a9a: 81 11 cpse r24, r1
7a9c: 63 c0 rjmp .+198 ; 0x7b64 <MotorRegler+0xb58>
7a9e: 80 91 ef 03 lds r24, 0x03EF
7aa2: 88 23 and r24, r24
7aa4: 09 f4 brne .+2 ; 0x7aa8 <MotorRegler+0xa9c>
7aa6: 5e c0 rjmp .+188 ; 0x7b64 <MotorRegler+0xb58>
7aa8: 80 91 bb 04 lds r24, 0x04BB
7aac: 81 11 cpse r24, r1
7aae: 5a c0 rjmp .+180 ; 0x7b64 <MotorRegler+0xb58>
{
modell_fliegt = 1;
7ab0: 81 e0 ldi r24, 0x01 ; 1
7ab2: 90 e0 ldi r25, 0x00 ; 0
7ab4: 90 93 cd 03 sts 0x03CD, r25
7ab8: 80 93 cc 03 sts 0x03CC, r24
MotorenEin = 1;
7abc: 80 93 03 04 sts 0x0403, r24
sollGier = 0;
7ac0: 10 92 9e 03 sts 0x039E, r1
7ac4: 10 92 9f 03 sts 0x039F, r1
7ac8: 10 92 a0 03 sts 0x03A0, r1
7acc: 10 92 a1 03 sts 0x03A1, r1
Mess_Integral_Gier = 0;
7ad0: 10 92 2e 04 sts 0x042E, r1
7ad4: 10 92 2f 04 sts 0x042F, r1
7ad8: 10 92 30 04 sts 0x0430, r1
7adc: 10 92 31 04 sts 0x0431, r1
Mess_Integral_Gier2 = 0;
7ae0: 10 92 2a 04 sts 0x042A, r1
7ae4: 10 92 2b 04 sts 0x042B, r1
7ae8: 10 92 2c 04 sts 0x042C, r1
7aec: 10 92 2d 04 sts 0x042D, r1
Mess_IntegralNick = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccNick;
7af0: c0 90 5a 05 lds r12, 0x055A
7af4: d1 2c mov r13, r1
7af6: e1 2c mov r14, r1
7af8: f1 2c mov r15, r1
7afa: a0 91 60 06 lds r26, 0x0660
7afe: b0 91 61 06 lds r27, 0x0661
7b02: a7 01 movw r20, r14
7b04: 96 01 movw r18, r12
7b06: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
7b0a: 60 93 36 04 sts 0x0436, r22
7b0e: 70 93 37 04 sts 0x0437, r23
7b12: 80 93 38 04 sts 0x0438, r24
7b16: 90 93 39 04 sts 0x0439, r25
Mess_IntegralRoll = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccRoll;
7b1a: a0 91 72 06 lds r26, 0x0672
7b1e: b0 91 73 06 lds r27, 0x0673
7b22: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
7b26: 60 93 32 04 sts 0x0432, r22
7b2a: 70 93 33 04 sts 0x0433, r23
7b2e: 80 93 34 04 sts 0x0434, r24
7b32: 90 93 35 04 sts 0x0435, r25
SummeNick = 0;
7b36: 10 92 26 04 sts 0x0426, r1
7b3a: 10 92 27 04 sts 0x0427, r1
7b3e: 10 92 28 04 sts 0x0428, r1
7b42: 10 92 29 04 sts 0x0429, r1
SummeRoll = 0;
7b46: 10 92 22 04 sts 0x0422, r1
7b4a: 10 92 23 04 sts 0x0423, r1
7b4e: 10 92 24 04 sts 0x0424, r1
7b52: 10 92 25 04 sts 0x0425, r1
// ControlHeading = (((int) EE_Parameter.OrientationAngle * 15 + KompassValue) % 360) / 2;
NeueKompassRichtungMerken = 100; // 2 sekunden
7b56: 84 e6 ldi r24, 0x64 ; 100
7b58: 80 93 ee 03 sts 0x03EE, r24
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
SpeakHoTT = SPEAK_STARTING;
7b5c: 84 e3 ldi r24, 0x34 ; 52
7b5e: 80 93 57 01 sts 0x0157, r24
7b62: a1 c0 rjmp .+322 ; 0x7ca6 <MotorRegler+0xc9a>
#endif
}
else
{
beeptime = 1500; // indicate missing calibration
7b64: 8c ed ldi r24, 0xDC ; 220
7b66: 95 e0 ldi r25, 0x05 ; 5
7b68: 90 93 ce 04 sts 0x04CE, r25
7b6c: 80 93 cd 04 sts 0x04CD, r24
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(!CalibrationDone) SpeakHoTT = SPEAK_ERR_CALIBARTION;
7b70: 80 91 ef 03 lds r24, 0x03EF
7b74: 81 11 cpse r24, r1
7b76: 97 c0 rjmp .+302 ; 0x7ca6 <MotorRegler+0xc9a>
7b78: 81 e0 ldi r24, 0x01 ; 1
7b7a: 80 93 57 01 sts 0x0157, r24
7b7e: 93 c0 rjmp .+294 ; 0x7ca6 <MotorRegler+0xc9a>
#endif
}
}
}
else delay_einschalten = 0;
7b80: 10 92 9b 03 sts 0x039B, r1
7b84: 90 c0 rjmp .+288 ; 0x7ca6 <MotorRegler+0xc9a>
// Auschalten
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
else // only if motors are running
{
// if((PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) && (PPM_in[EE_Parameter.MotorSafetySwitch] < -75 || EE_Parameter.MotorSafetySwitch == 0))
if((((PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 100) && ((!(EE_Parameter.GlobalConfig3 & CFG3_MOTOR_SWITCH_MODE) && PPM_in[EE_Parameter.MotorSafetySwitch] < -75) || EE_Parameter.MotorSafetySwitch == 0)))
7b86: e0 91 42 05 lds r30, 0x0542
7b8a: f0 e0 ldi r31, 0x00 ; 0
7b8c: ee 0f add r30, r30
7b8e: ff 1f adc r31, r31
7b90: ef 5c subi r30, 0xCF ; 207
7b92: f7 4f sbci r31, 0xF7 ; 247
7b94: 80 81 ld r24, Z
7b96: 91 81 ldd r25, Z+1 ; 0x01
7b98: 85 36 cpi r24, 0x65 ; 101
7b9a: 91 05 cpc r25, r1
7b9c: 8c f0 brlt .+34 ; 0x7bc0 <MotorRegler+0xbb4>
7b9e: 80 91 b9 05 lds r24, 0x05B9
7ba2: 83 fd sbrc r24, 3
7ba4: 0b c0 rjmp .+22 ; 0x7bbc <MotorRegler+0xbb0>
7ba6: e4 2f mov r30, r20
7ba8: f0 e0 ldi r31, 0x00 ; 0
7baa: ee 0f add r30, r30
7bac: ff 1f adc r31, r31
7bae: ef 5c subi r30, 0xCF ; 207
7bb0: f7 4f sbci r31, 0xF7 ; 247
7bb2: 80 81 ld r24, Z
7bb4: 91 81 ldd r25, Z+1 ; 0x01
7bb6: 85 3b cpi r24, 0xB5 ; 181
7bb8: 9f 4f sbci r25, 0xFF ; 255
7bba: bc f0 brlt .+46 ; 0x7bea <MotorRegler+0xbde>
7bbc: 44 23 and r20, r20
7bbe: a9 f0 breq .+42 ; 0x7bea <MotorRegler+0xbde>
|| (((EE_Parameter.GlobalConfig3 & CFG3_MOTOR_SWITCH_MODE) && PPM_in[EE_Parameter.MotorSafetySwitch] < -50 && move_safety_switch == -100)))
7bc0: 80 91 b9 05 lds r24, 0x05B9
7bc4: 83 ff sbrs r24, 3
7bc6: 6d c0 rjmp .+218 ; 0x7ca2 <MotorRegler+0xc96>
7bc8: e4 2f mov r30, r20
7bca: f0 e0 ldi r31, 0x00 ; 0
7bcc: ee 0f add r30, r30
7bce: ff 1f adc r31, r31
7bd0: ef 5c subi r30, 0xCF ; 207
7bd2: f7 4f sbci r31, 0xF7 ; 247
7bd4: 80 81 ld r24, Z
7bd6: 91 81 ldd r25, Z+1 ; 0x01
7bd8: 8e 3c cpi r24, 0xCE ; 206
7bda: 9f 4f sbci r25, 0xFF ; 255
7bdc: 0c f0 brlt .+2 ; 0x7be0 <MotorRegler+0xbd4>
7bde: 61 c0 rjmp .+194 ; 0x7ca2 <MotorRegler+0xc96>
7be0: 80 91 9c 03 lds r24, 0x039C
7be4: 8c 39 cpi r24, 0x9C ; 156
7be6: 09 f0 breq .+2 ; 0x7bea <MotorRegler+0xbde>
7be8: 5c c0 rjmp .+184 ; 0x7ca2 <MotorRegler+0xc96>
{
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -100 || abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 100) && EE_Parameter.MotorSafetySwitch == 0)
7bea: e0 91 3f 05 lds r30, 0x053F
7bee: f0 e0 ldi r31, 0x00 ; 0
7bf0: ee 0f add r30, r30
7bf2: ff 1f adc r31, r31
7bf4: ef 5c subi r30, 0xCF ; 207
7bf6: f7 4f sbci r31, 0xF7 ; 247
7bf8: 80 81 ld r24, Z
7bfa: 91 81 ldd r25, Z+1 ; 0x01
7bfc: 8d 39 cpi r24, 0x9D ; 157
7bfe: 9f 4f sbci r25, 0xFF ; 255
7c00: 8c f4 brge .+34 ; 0x7c24 <MotorRegler+0xc18>
7c02: e0 91 40 05 lds r30, 0x0540
7c06: f0 e0 ldi r31, 0x00 ; 0
7c08: ee 0f add r30, r30
7c0a: ff 1f adc r31, r31
7c0c: ef 5c subi r30, 0xCF ; 207
7c0e: f7 4f sbci r31, 0xF7 ; 247
7c10: 80 81 ld r24, Z
7c12: 91 81 ldd r25, Z+1 ; 0x01
7c14: 99 23 and r25, r25
7c16: 1c f4 brge .+6 ; 0x7c1e <MotorRegler+0xc12>
7c18: 91 95 neg r25
7c1a: 81 95 neg r24
7c1c: 91 09 sbc r25, r1
7c1e: 84 36 cpi r24, 0x64 ; 100
7c20: 91 05 cpc r25, r1
7c22: 34 f4 brge .+12 ; 0x7c30 <MotorRegler+0xc24>
7c24: 41 11 cpse r20, r1
7c26: 04 c0 rjmp .+8 ; 0x7c30 <MotorRegler+0xc24>
SummeNick = 0;
SummeRoll = 0;
StickNick = 0;
StickRoll = 0;
}
if(++delay_ausschalten > 250) // nicht sofort
7c28: 81 e0 ldi r24, 0x01 ; 1
7c2a: 80 93 9a 03 sts 0x039A, r24
7c2e: 3b c0 rjmp .+118 ; 0x7ca6 <MotorRegler+0xc9a>
{
delay_ausschalten = 0;
}
else
{
SummeNick = 0;
7c30: 10 92 26 04 sts 0x0426, r1
7c34: 10 92 27 04 sts 0x0427, r1
7c38: 10 92 28 04 sts 0x0428, r1
7c3c: 10 92 29 04 sts 0x0429, r1
SummeRoll = 0;
7c40: 10 92 22 04 sts 0x0422, r1
7c44: 10 92 23 04 sts 0x0423, r1
7c48: 10 92 24 04 sts 0x0424, r1
7c4c: 10 92 25 04 sts 0x0425, r1
StickNick = 0;
7c50: 10 92 15 04 sts 0x0415, r1
7c54: 10 92 14 04 sts 0x0414, r1
StickRoll = 0;
7c58: 10 92 13 04 sts 0x0413, r1
7c5c: 10 92 12 04 sts 0x0412, r1
}
if(++delay_ausschalten > 250) // nicht sofort
7c60: 80 91 9a 03 lds r24, 0x039A
7c64: 8f 5f subi r24, 0xFF ; 255
7c66: 80 93 9a 03 sts 0x039A, r24
7c6a: 8b 3f cpi r24, 0xFB ; 251
7c6c: 88 f0 brcs .+34 ; 0x7c90 <MotorRegler+0xc84>
{
MotorenEin = 0;
7c6e: 10 92 03 04 sts 0x0403, r1
delay_ausschalten = 0;
7c72: 10 92 9a 03 sts 0x039A, r1
modell_fliegt = 0;
7c76: 10 92 cd 03 sts 0x03CD, r1
7c7a: 10 92 cc 03 sts 0x03CC, r1
FC_StatusFlags2 &= ~(FC_STATUS2_WAIT_FOR_TAKEOFF | FC_STATUS2_AUTO_STARTING | FC_STATUS2_AUTO_LANDING);
7c7e: 80 91 ca 03 lds r24, 0x03CA
7c82: 8f 71 andi r24, 0x1F ; 31
7c84: 80 93 ca 03 sts 0x03CA, r24
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
SpeakHoTT = SPEAK_MK_OFF;
7c88: 86 e2 ldi r24, 0x26 ; 38
7c8a: 80 93 57 01 sts 0x0157, r24
7c8e: 0b c0 rjmp .+22 ; 0x7ca6 <MotorRegler+0xc9a>
#endif
}
else
if(delay_ausschalten == 100) beeptime = 3500;
7c90: 84 36 cpi r24, 0x64 ; 100
7c92: 49 f4 brne .+18 ; 0x7ca6 <MotorRegler+0xc9a>
7c94: 8c ea ldi r24, 0xAC ; 172
7c96: 9d e0 ldi r25, 0x0D ; 13
7c98: 90 93 ce 04 sts 0x04CE, r25
7c9c: 80 93 cd 04 sts 0x04CD, r24
7ca0: 02 c0 rjmp .+4 ; 0x7ca6 <MotorRegler+0xc9a>
}
else delay_ausschalten = 0;
7ca2: 10 92 9a 03 sts 0x039A, r1
}
if(GasIsZeroCnt < 1000)
7ca6: 80 91 c5 03 lds r24, 0x03C5
7caa: 90 91 c6 03 lds r25, 0x03C6
7cae: 88 3e cpi r24, 0xE8 ; 232
7cb0: 13 e0 ldi r17, 0x03 ; 3
7cb2: 91 07 cpc r25, r17
7cb4: 08 f0 brcs .+2 ; 0x7cb8 <MotorRegler+0xcac>
7cb6: 46 c0 rjmp .+140 ; 0x7d44 <MotorRegler+0xd38>
{
if(VarioMeter > -150) GasIsZeroCnt++;
7cb8: 20 91 54 03 lds r18, 0x0354
7cbc: 30 91 55 03 lds r19, 0x0355
7cc0: 2b 36 cpi r18, 0x6B ; 107
7cc2: 3f 4f sbci r19, 0xFF ; 255
7cc4: 34 f0 brlt .+12 ; 0x7cd2 <MotorRegler+0xcc6>
7cc6: 01 96 adiw r24, 0x01 ; 1
7cc8: 90 93 c6 03 sts 0x03C6, r25
7ccc: 80 93 c5 03 sts 0x03C5, r24
7cd0: 39 c0 rjmp .+114 ; 0x7d44 <MotorRegler+0xd38>
else if(GasIsZeroCnt) GasIsZeroCnt--;
7cd2: 00 97 sbiw r24, 0x00 ; 0
7cd4: b9 f1 breq .+110 ; 0x7d44 <MotorRegler+0xd38>
7cd6: 01 97 sbiw r24, 0x01 ; 1
7cd8: 90 93 c6 03 sts 0x03C6, r25
7cdc: 80 93 c5 03 sts 0x03C5, r24
7ce0: 31 c0 rjmp .+98 ; 0x7d44 <MotorRegler+0xd38>
}
}
else // gas not at minimum
{
move_safety_switch = 0;
7ce2: 10 92 9c 03 sts 0x039C, r1
GasIsZeroCnt = 0;
7ce6: 10 92 c6 03 sts 0x03C6, r1
7cea: 10 92 c5 03 sts 0x03C5, r1
7cee: 2a c0 rjmp .+84 ; 0x7d44 <MotorRegler+0xd38>
}
}
else // Empfang zwischen 100 und 140 -> schlecht
{
if(GasIsZeroCnt >= 750) // gas-stick was down for 1.5 seconds before RC-Lost
7cf0: 2e 3e cpi r18, 0xEE ; 238
7cf2: 32 40 sbci r19, 0x02 ; 2
7cf4: 38 f1 brcs .+78 ; 0x7d44 <MotorRegler+0xd38>
{
if((GPSInfo.HomeDistance < 40 * 10) && (HoehenWert < 15 * 100)) // and we are at the starting point -> maybe landed?
7cf6: 80 91 db 08 lds r24, 0x08DB
7cfa: 90 91 dc 08 lds r25, 0x08DC
7cfe: 80 39 cpi r24, 0x90 ; 144
7d00: 91 40 sbci r25, 0x01 ; 1
7d02: 00 f5 brcc .+64 ; 0x7d44 <MotorRegler+0xd38>
7d04: 80 91 fe 03 lds r24, 0x03FE
7d08: 90 91 ff 03 lds r25, 0x03FF
7d0c: a0 91 00 04 lds r26, 0x0400
7d10: b0 91 01 04 lds r27, 0x0401
7d14: 8c 3d cpi r24, 0xDC ; 220
7d16: 95 40 sbci r25, 0x05 ; 5
7d18: a1 05 cpc r26, r1
7d1a: b1 05 cpc r27, r1
7d1c: 9c f4 brge .+38 ; 0x7d44 <MotorRegler+0xd38>
{
GasIsZeroCnt = 30000;
7d1e: 80 e3 ldi r24, 0x30 ; 48
7d20: 95 e7 ldi r25, 0x75 ; 117
7d22: 90 93 c6 03 sts 0x03C6, r25
7d26: 80 93 c5 03 sts 0x03C5, r24
if(modell_fliegt > 1001) modell_fliegt = 1001;
7d2a: 80 91 cc 03 lds r24, 0x03CC
7d2e: 90 91 cd 03 lds r25, 0x03CD
7d32: 8a 3e cpi r24, 0xEA ; 234
7d34: 93 40 sbci r25, 0x03 ; 3
7d36: 30 f0 brcs .+12 ; 0x7d44 <MotorRegler+0xd38>
7d38: 89 ee ldi r24, 0xE9 ; 233
7d3a: 93 e0 ldi r25, 0x03 ; 3
7d3c: 90 93 cd 03 sts 0x03CD, r25
7d40: 80 93 cc 03 sts 0x03CC, r24
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// neue Werte von der Funke
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
if(!NewPpmData-- || (FC_StatusFlags & FC_STATUS_EMERGENCY_LANDING))
7d44: 80 91 93 02 lds r24, 0x0293
7d48: 9f ef ldi r25, 0xFF ; 255
7d4a: 98 0f add r25, r24
7d4c: 90 93 93 02 sts 0x0293, r25
7d50: 88 23 and r24, r24
7d52: 21 f0 breq .+8 ; 0x7d5c <MotorRegler+0xd50>
7d54: 80 91 cb 03 lds r24, 0x03CB
7d58: 84 ff sbrs r24, 4
7d5a: d2 c3 rjmp .+1956 ; 0x8500 <MotorRegler+0x14f4>
{
static int stick_nick,stick_roll;
unsigned char stick_p;
ParameterZuordnung();
7d5c: 0e 94 27 34 call 0x684e ; 0x684e <ParameterZuordnung>
stick_p = EE_Parameter.Stick_P;
stick_nick = (stick_nick * 3 + PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] * stick_p) / 4;
7d60: 80 91 3f 05 lds r24, 0x053F
7d64: 90 e0 ldi r25, 0x00 ; 0
7d66: 88 0f add r24, r24
7d68: 99 1f adc r25, r25
7d6a: fc 01 movw r30, r24
7d6c: ef 5c subi r30, 0xCF ; 207
7d6e: f7 4f sbci r31, 0xF7 ; 247
7d70: a0 81 ld r26, Z
7d72: b1 81 ldd r27, Z+1 ; 0x01
7d74: 60 91 55 05 lds r22, 0x0555
7d78: 70 e0 ldi r23, 0x00 ; 0
stick_nick += PPM_diff[EE_Parameter.Kanalbelegung[K_NICK]] * EE_Parameter.Stick_D;
7d7a: fc 01 movw r30, r24
7d7c: e9 58 subi r30, 0x89 ; 137
7d7e: f7 4f sbci r31, 0xF7 ; 247
7d80: 01 90 ld r0, Z+
7d82: f0 81 ld r31, Z
7d84: e0 2d mov r30, r0
7d86: 40 91 56 05 lds r20, 0x0556
7d8a: 50 e0 ldi r21, 0x00 ; 0
{
static int stick_nick,stick_roll;
unsigned char stick_p;
ParameterZuordnung();
stick_p = EE_Parameter.Stick_P;
stick_nick = (stick_nick * 3 + PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] * stick_p) / 4;
7d8c: 80 91 98 03 lds r24, 0x0398
7d90: 90 91 99 03 lds r25, 0x0399
7d94: 9c 01 movw r18, r24
7d96: 22 0f add r18, r18
7d98: 33 1f adc r19, r19
7d9a: 82 0f add r24, r18
7d9c: 93 1f adc r25, r19
7d9e: a6 9f mul r26, r22
7da0: 90 01 movw r18, r0
7da2: a7 9f mul r26, r23
7da4: 30 0d add r19, r0
7da6: b6 9f mul r27, r22
7da8: 30 0d add r19, r0
7daa: 11 24 eor r1, r1
7dac: 82 0f add r24, r18
7dae: 93 1f adc r25, r19
7db0: 99 23 and r25, r25
7db2: 0c f4 brge .+2 ; 0x7db6 <MotorRegler+0xdaa>
7db4: 03 96 adiw r24, 0x03 ; 3
7db6: 95 95 asr r25
7db8: 87 95 ror r24
7dba: 95 95 asr r25
7dbc: 87 95 ror r24
stick_nick += PPM_diff[EE_Parameter.Kanalbelegung[K_NICK]] * EE_Parameter.Stick_D;
7dbe: e4 9f mul r30, r20
7dc0: 90 01 movw r18, r0
7dc2: e5 9f mul r30, r21
7dc4: 30 0d add r19, r0
7dc6: f4 9f mul r31, r20
7dc8: 30 0d add r19, r0
7dca: 11 24 eor r1, r1
7dcc: 82 0f add r24, r18
7dce: 93 1f adc r25, r19
7dd0: 90 93 99 03 sts 0x0399, r25
7dd4: 80 93 98 03 sts 0x0398, r24
stick_roll = (stick_roll * 3 + PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] * stick_p) / 4;
7dd8: 20 91 40 05 lds r18, 0x0540
7ddc: 30 e0 ldi r19, 0x00 ; 0
7dde: 22 0f add r18, r18
7de0: 33 1f adc r19, r19
7de2: f9 01 movw r30, r18
7de4: ef 5c subi r30, 0xCF ; 207
7de6: f7 4f sbci r31, 0xF7 ; 247
7de8: 00 81 ld r16, Z
7dea: 11 81 ldd r17, Z+1 ; 0x01
stick_roll += PPM_diff[EE_Parameter.Kanalbelegung[K_ROLL]] * EE_Parameter.Stick_D;
7dec: f9 01 movw r30, r18
7dee: e9 58 subi r30, 0x89 ; 137
7df0: f7 4f sbci r31, 0xF7 ; 247
7df2: 01 90 ld r0, Z+
7df4: f0 81 ld r31, Z
7df6: e0 2d mov r30, r0
unsigned char stick_p;
ParameterZuordnung();
stick_p = EE_Parameter.Stick_P;
stick_nick = (stick_nick * 3 + PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] * stick_p) / 4;
stick_nick += PPM_diff[EE_Parameter.Kanalbelegung[K_NICK]] * EE_Parameter.Stick_D;
stick_roll = (stick_roll * 3 + PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] * stick_p) / 4;
7df8: 20 91 96 03 lds r18, 0x0396
7dfc: 30 91 97 03 lds r19, 0x0397
7e00: d9 01 movw r26, r18
7e02: aa 0f add r26, r26
7e04: bb 1f adc r27, r27
7e06: 2a 0f add r18, r26
7e08: 3b 1f adc r19, r27
7e0a: 60 9f mul r22, r16
7e0c: d0 01 movw r26, r0
7e0e: 61 9f mul r22, r17
7e10: b0 0d add r27, r0
7e12: 70 9f mul r23, r16
7e14: b0 0d add r27, r0
7e16: 11 24 eor r1, r1
7e18: 2a 0f add r18, r26
7e1a: 3b 1f adc r19, r27
7e1c: 33 23 and r19, r19
7e1e: 14 f4 brge .+4 ; 0x7e24 <MotorRegler+0xe18>
7e20: 2d 5f subi r18, 0xFD ; 253
7e22: 3f 4f sbci r19, 0xFF ; 255
7e24: 35 95 asr r19
7e26: 27 95 ror r18
7e28: 35 95 asr r19
7e2a: 27 95 ror r18
stick_roll += PPM_diff[EE_Parameter.Kanalbelegung[K_ROLL]] * EE_Parameter.Stick_D;
7e2c: 4e 9f mul r20, r30
7e2e: b0 01 movw r22, r0
7e30: 4f 9f mul r20, r31
7e32: 70 0d add r23, r0
7e34: 5e 9f mul r21, r30
7e36: 70 0d add r23, r0
7e38: 11 24 eor r1, r1
7e3a: 26 0f add r18, r22
7e3c: 37 1f adc r19, r23
7e3e: 30 93 97 03 sts 0x0397, r19
7e42: 20 93 96 03 sts 0x0396, r18
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// CareFree und freie Wahl der vorderen Richtung
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(CareFree)
7e46: 40 91 d8 03 lds r20, 0x03D8
7e4a: 44 23 and r20, r20
7e4c: 09 f4 brne .+2 ; 0x7e50 <MotorRegler+0xe44>
7e4e: 59 c0 rjmp .+178 ; 0x7f02 <MotorRegler+0xef6>
{
signed int nick, roll;
nick = stick_nick / 4;
7e50: ac 01 movw r20, r24
7e52: 99 23 and r25, r25
7e54: 14 f4 brge .+4 ; 0x7e5a <MotorRegler+0xe4e>
7e56: 4d 5f subi r20, 0xFD ; 253
7e58: 5f 4f sbci r21, 0xFF ; 255
7e5a: 55 95 asr r21
7e5c: 47 95 ror r20
7e5e: 55 95 asr r21
7e60: 47 95 ror r20
roll = stick_roll / 4;
7e62: c9 01 movw r24, r18
7e64: 99 23 and r25, r25
7e66: 0c f4 brge .+2 ; 0x7e6a <MotorRegler+0xe5e>
7e68: 03 96 adiw r24, 0x03 ; 3
7e6a: fc 01 movw r30, r24
7e6c: f5 95 asr r31
7e6e: e7 95 ror r30
7e70: f5 95 asr r31
7e72: e7 95 ror r30
StickNick = ((FromNC_Rotate_C * nick) + (FromNC_Rotate_S * roll)) / (32 / 4);
7e74: 60 91 a5 02 lds r22, 0x02A5
7e78: 77 27 eor r23, r23
7e7a: 67 fd sbrc r22, 7
7e7c: 70 95 com r23
7e7e: 20 91 be 04 lds r18, 0x04BE
7e82: 33 27 eor r19, r19
7e84: 27 fd sbrc r18, 7
7e86: 30 95 com r19
7e88: 64 9f mul r22, r20
7e8a: d0 01 movw r26, r0
7e8c: 65 9f mul r22, r21
7e8e: b0 0d add r27, r0
7e90: 74 9f mul r23, r20
7e92: b0 0d add r27, r0
7e94: 11 24 eor r1, r1
7e96: 2e 9f mul r18, r30
7e98: c0 01 movw r24, r0
7e9a: 2f 9f mul r18, r31
7e9c: 90 0d add r25, r0
7e9e: 3e 9f mul r19, r30
7ea0: 90 0d add r25, r0
7ea2: 11 24 eor r1, r1
7ea4: 8a 0f add r24, r26
7ea6: 9b 1f adc r25, r27
7ea8: 99 23 and r25, r25
7eaa: 0c f4 brge .+2 ; 0x7eae <MotorRegler+0xea2>
7eac: 07 96 adiw r24, 0x07 ; 7
7eae: 95 95 asr r25
7eb0: 87 95 ror r24
7eb2: 95 95 asr r25
7eb4: 87 95 ror r24
7eb6: 95 95 asr r25
7eb8: 87 95 ror r24
7eba: 90 93 15 04 sts 0x0415, r25
7ebe: 80 93 14 04 sts 0x0414, r24
StickRoll = ((FromNC_Rotate_C * roll) - (FromNC_Rotate_S * nick)) / (32 / 4);
7ec2: e6 9f mul r30, r22
7ec4: d0 01 movw r26, r0
7ec6: e7 9f mul r30, r23
7ec8: b0 0d add r27, r0
7eca: f6 9f mul r31, r22
7ecc: b0 0d add r27, r0
7ece: 11 24 eor r1, r1
7ed0: 42 9f mul r20, r18
7ed2: c0 01 movw r24, r0
7ed4: 43 9f mul r20, r19
7ed6: 90 0d add r25, r0
7ed8: 52 9f mul r21, r18
7eda: 90 0d add r25, r0
7edc: 11 24 eor r1, r1
7ede: 9d 01 movw r18, r26
7ee0: 28 1b sub r18, r24
7ee2: 39 0b sbc r19, r25
7ee4: c9 01 movw r24, r18
7ee6: 99 23 and r25, r25
7ee8: 0c f4 brge .+2 ; 0x7eec <MotorRegler+0xee0>
7eea: 07 96 adiw r24, 0x07 ; 7
7eec: 95 95 asr r25
7eee: 87 95 ror r24
7ef0: 95 95 asr r25
7ef2: 87 95 ror r24
7ef4: 95 95 asr r25
7ef6: 87 95 ror r24
7ef8: 90 93 13 04 sts 0x0413, r25
7efc: 80 93 12 04 sts 0x0412, r24
7f00: 50 c0 rjmp .+160 ; 0x7fa2 <MotorRegler+0xf96>
}
else
{
FromNC_Rotate_C = sintab[EE_Parameter.OrientationAngle + 6];
7f02: a0 91 a1 05 lds r26, 0x05A1
7f06: b0 e0 ldi r27, 0x00 ; 0
7f08: a5 53 subi r26, 0x35 ; 53
7f0a: bd 4f sbci r27, 0xFD ; 253
7f0c: 16 96 adiw r26, 0x06 ; 6
7f0e: ec 91 ld r30, X
7f10: 16 97 sbiw r26, 0x06 ; 6
7f12: e0 93 a5 02 sts 0x02A5, r30
FromNC_Rotate_S = sintab[EE_Parameter.OrientationAngle];
7f16: 6c 91 ld r22, X
7f18: 60 93 be 04 sts 0x04BE, r22
StickNick = ((FromNC_Rotate_C * stick_nick) + (FromNC_Rotate_S * stick_roll)) / 8;
7f1c: ff 27 eor r31, r31
7f1e: e7 fd sbrc r30, 7
7f20: f0 95 com r31
7f22: 77 27 eor r23, r23
7f24: 67 fd sbrc r22, 7
7f26: 70 95 com r23
7f28: 8e 9f mul r24, r30
7f2a: d0 01 movw r26, r0
7f2c: 8f 9f mul r24, r31
7f2e: b0 0d add r27, r0
7f30: 9e 9f mul r25, r30
7f32: b0 0d add r27, r0
7f34: 11 24 eor r1, r1
7f36: 26 9f mul r18, r22
7f38: a0 01 movw r20, r0
7f3a: 27 9f mul r18, r23
7f3c: 50 0d add r21, r0
7f3e: 36 9f mul r19, r22
7f40: 50 0d add r21, r0
7f42: 11 24 eor r1, r1
7f44: 4a 0f add r20, r26
7f46: 5b 1f adc r21, r27
7f48: 55 23 and r21, r21
7f4a: 14 f4 brge .+4 ; 0x7f50 <MotorRegler+0xf44>
7f4c: 49 5f subi r20, 0xF9 ; 249
7f4e: 5f 4f sbci r21, 0xFF ; 255
7f50: 55 95 asr r21
7f52: 47 95 ror r20
7f54: 55 95 asr r21
7f56: 47 95 ror r20
7f58: 55 95 asr r21
7f5a: 47 95 ror r20
7f5c: 50 93 15 04 sts 0x0415, r21
7f60: 40 93 14 04 sts 0x0414, r20
StickRoll = ((FromNC_Rotate_C * stick_roll) - (FromNC_Rotate_S * stick_nick)) / 8;
7f64: 2e 9f mul r18, r30
7f66: d0 01 movw r26, r0
7f68: 2f 9f mul r18, r31
7f6a: b0 0d add r27, r0
7f6c: 3e 9f mul r19, r30
7f6e: b0 0d add r27, r0
7f70: 11 24 eor r1, r1
7f72: 86 9f mul r24, r22
7f74: a0 01 movw r20, r0
7f76: 87 9f mul r24, r23
7f78: 50 0d add r21, r0
7f7a: 96 9f mul r25, r22
7f7c: 50 0d add r21, r0
7f7e: 11 24 eor r1, r1
7f80: 9d 01 movw r18, r26
7f82: 24 1b sub r18, r20
7f84: 35 0b sbc r19, r21
7f86: c9 01 movw r24, r18
7f88: 99 23 and r25, r25
7f8a: 0c f4 brge .+2 ; 0x7f8e <MotorRegler+0xf82>
7f8c: 07 96 adiw r24, 0x07 ; 7
7f8e: 95 95 asr r25
7f90: 87 95 ror r24
7f92: 95 95 asr r25
7f94: 87 95 ror r24
7f96: 95 95 asr r25
7f98: 87 95 ror r24
7f9a: 90 93 13 04 sts 0x0413, r25
7f9e: 80 93 12 04 sts 0x0412, r24
}
 
StickGier = -PPM_in[EE_Parameter.Kanalbelegung[K_GIER]];
7fa2: e0 91 42 05 lds r30, 0x0542
7fa6: f0 e0 ldi r31, 0x00 ; 0
7fa8: ee 0f add r30, r30
7faa: ff 1f adc r31, r31
7fac: ef 5c subi r30, 0xCF ; 207
7fae: f7 4f sbci r31, 0xF7 ; 247
7fb0: 80 81 ld r24, Z
7fb2: 91 81 ldd r25, Z+1 ; 0x01
7fb4: 22 27 eor r18, r18
7fb6: 33 27 eor r19, r19
7fb8: 28 1b sub r18, r24
7fba: 39 0b sbc r19, r25
if(StickGier > 4) StickGier -= 4; else
7fbc: 25 30 cpi r18, 0x05 ; 5
7fbe: 31 05 cpc r19, r1
7fc0: 54 f0 brlt .+20 ; 0x7fd6 <MotorRegler+0xfca>
7fc2: 2c ef ldi r18, 0xFC ; 252
7fc4: 3f ef ldi r19, 0xFF ; 255
7fc6: f9 01 movw r30, r18
7fc8: e8 1b sub r30, r24
7fca: f9 0b sbc r31, r25
7fcc: f0 93 11 04 sts 0x0411, r31
7fd0: e0 93 10 04 sts 0x0410, r30
7fd4: 11 c0 rjmp .+34 ; 0x7ff8 <MotorRegler+0xfec>
if(StickGier < -4) StickGier += 4; else StickGier = 0;
7fd6: 2c 3f cpi r18, 0xFC ; 252
7fd8: 3f 4f sbci r19, 0xFF ; 255
7fda: 54 f4 brge .+20 ; 0x7ff0 <MotorRegler+0xfe4>
7fdc: 24 e0 ldi r18, 0x04 ; 4
7fde: 30 e0 ldi r19, 0x00 ; 0
7fe0: 49 01 movw r8, r18
7fe2: 88 1a sub r8, r24
7fe4: 99 0a sbc r9, r25
7fe6: 90 92 11 04 sts 0x0411, r9
7fea: 80 92 10 04 sts 0x0410, r8
7fee: 04 c0 rjmp .+8 ; 0x7ff8 <MotorRegler+0xfec>
7ff0: 10 92 11 04 sts 0x0411, r1
7ff4: 10 92 10 04 sts 0x0410, r1
 
if(GasIsZeroCnt > 512) // About to switch - off
7ff8: 80 91 c5 03 lds r24, 0x03C5
7ffc: 90 91 c6 03 lds r25, 0x03C6
8000: 81 30 cpi r24, 0x01 ; 1
8002: 92 40 sbci r25, 0x02 ; 2
8004: 98 f1 brcs .+102 ; 0x806c <MotorRegler+0x1060>
{
StickNick = StickNick/8;
8006: 80 91 14 04 lds r24, 0x0414
800a: 90 91 15 04 lds r25, 0x0415
800e: 99 23 and r25, r25
8010: 0c f4 brge .+2 ; 0x8014 <MotorRegler+0x1008>
8012: 07 96 adiw r24, 0x07 ; 7
8014: 95 95 asr r25
8016: 87 95 ror r24
8018: 95 95 asr r25
801a: 87 95 ror r24
801c: 95 95 asr r25
801e: 87 95 ror r24
8020: 90 93 15 04 sts 0x0415, r25
8024: 80 93 14 04 sts 0x0414, r24
StickRoll = StickRoll/8;
8028: 80 91 12 04 lds r24, 0x0412
802c: 90 91 13 04 lds r25, 0x0413
8030: 99 23 and r25, r25
8032: 0c f4 brge .+2 ; 0x8036 <MotorRegler+0x102a>
8034: 07 96 adiw r24, 0x07 ; 7
8036: 95 95 asr r25
8038: 87 95 ror r24
803a: 95 95 asr r25
803c: 87 95 ror r24
803e: 95 95 asr r25
8040: 87 95 ror r24
8042: 90 93 13 04 sts 0x0413, r25
8046: 80 93 12 04 sts 0x0412, r24
SummeNick = 0;
804a: 10 92 26 04 sts 0x0426, r1
804e: 10 92 27 04 sts 0x0427, r1
8052: 10 92 28 04 sts 0x0428, r1
8056: 10 92 29 04 sts 0x0429, r1
SummeRoll = 0;
805a: 10 92 22 04 sts 0x0422, r1
805e: 10 92 23 04 sts 0x0423, r1
8062: 10 92 24 04 sts 0x0424, r1
8066: 10 92 25 04 sts 0x0425, r1
806a: 4e c0 rjmp .+156 ; 0x8108 <MotorRegler+0x10fc>
}
else
if(GPS_Aid_StickMultiplikator) // in that case the GPS controls stronger
806c: 20 91 67 04 lds r18, 0x0467
8070: 22 23 and r18, r18
8072: 09 f4 brne .+2 ; 0x8076 <MotorRegler+0x106a>
8074: 49 c0 rjmp .+146 ; 0x8108 <MotorRegler+0x10fc>
{
StickNick = (GPS_Aid_StickMultiplikator * (StickNick / 8)) / 16;
8076: 30 e0 ldi r19, 0x00 ; 0
8078: 80 91 14 04 lds r24, 0x0414
807c: 90 91 15 04 lds r25, 0x0415
8080: 99 23 and r25, r25
8082: 0c f4 brge .+2 ; 0x8086 <MotorRegler+0x107a>
8084: 07 96 adiw r24, 0x07 ; 7
8086: ac 01 movw r20, r24
8088: 55 95 asr r21
808a: 47 95 ror r20
808c: 55 95 asr r21
808e: 47 95 ror r20
8090: 55 95 asr r21
8092: 47 95 ror r20
8094: 24 9f mul r18, r20
8096: c0 01 movw r24, r0
8098: 25 9f mul r18, r21
809a: 90 0d add r25, r0
809c: 34 9f mul r19, r20
809e: 90 0d add r25, r0
80a0: 11 24 eor r1, r1
80a2: 99 23 and r25, r25
80a4: 0c f4 brge .+2 ; 0x80a8 <MotorRegler+0x109c>
80a6: 0f 96 adiw r24, 0x0f ; 15
80a8: 95 95 asr r25
80aa: 87 95 ror r24
80ac: 95 95 asr r25
80ae: 87 95 ror r24
80b0: 95 95 asr r25
80b2: 87 95 ror r24
80b4: 95 95 asr r25
80b6: 87 95 ror r24
80b8: 90 93 15 04 sts 0x0415, r25
80bc: 80 93 14 04 sts 0x0414, r24
StickRoll = (GPS_Aid_StickMultiplikator * (StickRoll / 8)) / 16;
80c0: 80 91 12 04 lds r24, 0x0412
80c4: 90 91 13 04 lds r25, 0x0413
80c8: 99 23 and r25, r25
80ca: 0c f4 brge .+2 ; 0x80ce <MotorRegler+0x10c2>
80cc: 07 96 adiw r24, 0x07 ; 7
80ce: ac 01 movw r20, r24
80d0: 55 95 asr r21
80d2: 47 95 ror r20
80d4: 55 95 asr r21
80d6: 47 95 ror r20
80d8: 55 95 asr r21
80da: 47 95 ror r20
80dc: 24 9f mul r18, r20
80de: c0 01 movw r24, r0
80e0: 25 9f mul r18, r21
80e2: 90 0d add r25, r0
80e4: 34 9f mul r19, r20
80e6: 90 0d add r25, r0
80e8: 11 24 eor r1, r1
80ea: 99 23 and r25, r25
80ec: 0c f4 brge .+2 ; 0x80f0 <MotorRegler+0x10e4>
80ee: 0f 96 adiw r24, 0x0f ; 15
80f0: 95 95 asr r25
80f2: 87 95 ror r24
80f4: 95 95 asr r25
80f6: 87 95 ror r24
80f8: 95 95 asr r25
80fa: 87 95 ror r24
80fc: 95 95 asr r25
80fe: 87 95 ror r24
8100: 90 93 13 04 sts 0x0413, r25
8104: 80 93 12 04 sts 0x0412, r24
}
StickNick -= GPS_Nick;
8108: c0 90 14 04 lds r12, 0x0414
810c: d0 90 15 04 lds r13, 0x0415
8110: 80 91 6a 04 lds r24, 0x046A
8114: 90 91 6b 04 lds r25, 0x046B
8118: c8 1a sub r12, r24
811a: d9 0a sbc r13, r25
811c: d0 92 15 04 sts 0x0415, r13
8120: c0 92 14 04 sts 0x0414, r12
StickRoll -= GPS_Roll;
8124: e0 90 12 04 lds r14, 0x0412
8128: f0 90 13 04 lds r15, 0x0413
812c: 80 91 68 04 lds r24, 0x0468
8130: 90 91 69 04 lds r25, 0x0469
8134: e8 1a sub r14, r24
8136: f9 0a sbc r15, r25
8138: f0 92 13 04 sts 0x0413, r15
813c: e0 92 12 04 sts 0x0412, r14
StickGas = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] + 127;
8140: e0 91 41 05 lds r30, 0x0541
8144: f0 e0 ldi r31, 0x00 ; 0
8146: ee 0f add r30, r30
8148: ff 1f adc r31, r31
814a: ef 5c subi r30, 0xCF ; 207
814c: f7 4f sbci r31, 0xF7 ; 247
814e: 00 81 ld r16, Z
8150: 11 81 ldd r17, Z+1 ; 0x01
8152: 01 58 subi r16, 0x81 ; 129
8154: 1f 4f sbci r17, 0xFF ; 255
8156: 10 93 0f 04 sts 0x040F, r17
815a: 00 93 0e 04 sts 0x040E, r16
 
GyroFaktor = (Parameter_Gyro_P + 10.0);
815e: 60 91 34 01 lds r22, 0x0134
8162: 70 e0 ldi r23, 0x00 ; 0
8164: 80 e0 ldi r24, 0x00 ; 0
8166: 90 e0 ldi r25, 0x00 ; 0
8168: 0e 94 9b b0 call 0x16136 ; 0x16136 <__floatsisf>
816c: 20 e0 ldi r18, 0x00 ; 0
816e: 30 e0 ldi r19, 0x00 ; 0
8170: 40 e2 ldi r20, 0x20 ; 32
8172: 51 e4 ldi r21, 0x41 ; 65
8174: 0e 94 09 b0 call 0x16012 ; 0x16012 <__addsf3>
8178: 0e 94 6d b0 call 0x160da ; 0x160da <__fixunssfsi>
817c: 60 93 6c 06 sts 0x066C, r22
IntegralFaktor = Parameter_Gyro_I;
8180: 80 91 33 01 lds r24, 0x0133
8184: 80 93 42 06 sts 0x0642, r24
GyroFaktorGier = (Parameter_Gyro_Gier_P + 10.0);
8188: 60 91 32 01 lds r22, 0x0132
818c: 70 e0 ldi r23, 0x00 ; 0
818e: 80 e0 ldi r24, 0x00 ; 0
8190: 90 e0 ldi r25, 0x00 ; 0
8192: 0e 94 9b b0 call 0x16136 ; 0x16136 <__floatsisf>
8196: 20 e0 ldi r18, 0x00 ; 0
8198: 30 e0 ldi r19, 0x00 ; 0
819a: 40 e2 ldi r20, 0x20 ; 32
819c: 51 e4 ldi r21, 0x41 ; 65
819e: 0e 94 09 b0 call 0x16012 ; 0x16012 <__addsf3>
81a2: 0e 94 6d b0 call 0x160da ; 0x160da <__fixunssfsi>
81a6: 60 93 23 06 sts 0x0623, r22
IntegralFaktorGier = Parameter_Gyro_Gier_I;
81aa: 80 91 31 01 lds r24, 0x0131
81ae: 80 93 31 06 sts 0x0631, r24
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+ Analoge Steuerung per Seriell
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(ExternControl.Config & 0x01 && Parameter_ExternalControl > 128)
81b2: 80 91 89 0a lds r24, 0x0A89
81b6: 80 ff sbrs r24, 0
81b8: 45 c0 rjmp .+138 ; 0x8244 <MotorRegler+0x1238>
81ba: 80 91 75 06 lds r24, 0x0675
81be: 81 38 cpi r24, 0x81 ; 129
81c0: 08 f4 brcc .+2 ; 0x81c4 <MotorRegler+0x11b8>
81c2: 40 c0 rjmp .+128 ; 0x8244 <MotorRegler+0x1238>
{
StickNick += (int) ExternControl.Nick * (int) EE_Parameter.Stick_P;
81c4: 20 91 55 05 lds r18, 0x0555
81c8: 30 e0 ldi r19, 0x00 ; 0
81ca: 40 91 82 0a lds r20, 0x0A82
81ce: 42 03 mulsu r20, r18
81d0: c0 01 movw r24, r0
81d2: 43 9f mul r20, r19
81d4: 90 0d add r25, r0
81d6: 11 24 eor r1, r1
81d8: c8 0e add r12, r24
81da: d9 1e adc r13, r25
81dc: d0 92 15 04 sts 0x0415, r13
81e0: c0 92 14 04 sts 0x0414, r12
StickRoll += (int) ExternControl.Roll * (int) EE_Parameter.Stick_P;
81e4: 40 91 83 0a lds r20, 0x0A83
81e8: 42 03 mulsu r20, r18
81ea: c0 01 movw r24, r0
81ec: 43 9f mul r20, r19
81ee: 90 0d add r25, r0
81f0: 11 24 eor r1, r1
81f2: e8 0e add r14, r24
81f4: f9 1e adc r15, r25
81f6: f0 92 13 04 sts 0x0413, r15
81fa: e0 92 12 04 sts 0x0412, r14
StickGier += ExternControl.Gier;
81fe: 20 91 84 0a lds r18, 0x0A84
8202: 80 91 10 04 lds r24, 0x0410
8206: 90 91 11 04 lds r25, 0x0411
820a: 82 0f add r24, r18
820c: 91 1d adc r25, r1
820e: 27 fd sbrc r18, 7
8210: 9a 95 dec r25
8212: 90 93 11 04 sts 0x0411, r25
8216: 80 93 10 04 sts 0x0410, r24
ExternHoehenValue = (int) ExternControl.Hight * (int)EE_Parameter.Hoehe_Verstaerkung;
821a: 30 91 86 0a lds r19, 0x0A86
821e: 20 91 50 05 lds r18, 0x0550
8222: 32 03 mulsu r19, r18
8224: c0 01 movw r24, r0
8226: 11 24 eor r1, r1
8228: 90 93 26 01 sts 0x0126, r25
822c: 80 93 25 01 sts 0x0125, r24
if(ExternControl.Gas < StickGas) StickGas = ExternControl.Gas;
8230: 80 91 85 0a lds r24, 0x0A85
8234: 90 e0 ldi r25, 0x00 ; 0
8236: 80 17 cp r24, r16
8238: 91 07 cpc r25, r17
823a: 24 f4 brge .+8 ; 0x8244 <MotorRegler+0x1238>
823c: 90 93 0f 04 sts 0x040F, r25
8240: 80 93 0e 04 sts 0x040E, r24
}
if(StickGas < 0) StickGas = 0;
8244: 80 91 0e 04 lds r24, 0x040E
8248: 90 91 0f 04 lds r25, 0x040F
824c: 99 23 and r25, r25
824e: 24 f4 brge .+8 ; 0x8258 <MotorRegler+0x124c>
8250: 10 92 0f 04 sts 0x040F, r1
8254: 10 92 0e 04 sts 0x040E, r1
 
if(Parameter_GlobalConfig & CFG_HEADING_HOLD) IntegralFaktor = 0;
8258: 80 91 5c 06 lds r24, 0x065C
825c: 82 fd sbrc r24, 2
825e: 10 92 42 06 sts 0x0642, r1
 
if(abs(StickNick/STICK_GAIN) > MaxStickNick)
8262: 80 91 14 04 lds r24, 0x0414
8266: 90 91 15 04 lds r25, 0x0415
826a: 40 91 d0 03 lds r20, 0x03D0
826e: 50 91 d1 03 lds r21, 0x03D1
8272: 9c 01 movw r18, r24
8274: 99 23 and r25, r25
8276: 14 f4 brge .+4 ; 0x827c <MotorRegler+0x1270>
8278: 2d 5f subi r18, 0xFD ; 253
827a: 3f 4f sbci r19, 0xFF ; 255
827c: 35 95 asr r19
827e: 27 95 ror r18
8280: 35 95 asr r19
8282: 27 95 ror r18
8284: 33 23 and r19, r19
8286: 1c f4 brge .+6 ; 0x828e <MotorRegler+0x1282>
8288: 31 95 neg r19
828a: 21 95 neg r18
828c: 31 09 sbc r19, r1
828e: 42 17 cp r20, r18
8290: 53 07 cpc r21, r19
8292: f4 f4 brge .+60 ; 0x82d0 <MotorRegler+0x12c4>
{
MaxStickNick = abs(StickNick)/STICK_GAIN;
8294: 9c 01 movw r18, r24
8296: 99 23 and r25, r25
8298: 24 f4 brge .+8 ; 0x82a2 <MotorRegler+0x1296>
829a: 22 27 eor r18, r18
829c: 33 27 eor r19, r19
829e: 28 1b sub r18, r24
82a0: 39 0b sbc r19, r25
82a2: c9 01 movw r24, r18
82a4: 99 23 and r25, r25
82a6: 0c f4 brge .+2 ; 0x82aa <MotorRegler+0x129e>
82a8: 03 96 adiw r24, 0x03 ; 3
82aa: 95 95 asr r25
82ac: 87 95 ror r24
82ae: 95 95 asr r25
82b0: 87 95 ror r24
if(MaxStickNick > 100) MaxStickNick = 100;
82b2: 85 36 cpi r24, 0x65 ; 101
82b4: 91 05 cpc r25, r1
82b6: 2c f4 brge .+10 ; 0x82c2 <MotorRegler+0x12b6>
 
if(Parameter_GlobalConfig & CFG_HEADING_HOLD) IntegralFaktor = 0;
 
if(abs(StickNick/STICK_GAIN) > MaxStickNick)
{
MaxStickNick = abs(StickNick)/STICK_GAIN;
82b8: 90 93 d1 03 sts 0x03D1, r25
82bc: 80 93 d0 03 sts 0x03D0, r24
82c0: 0d c0 rjmp .+26 ; 0x82dc <MotorRegler+0x12d0>
if(MaxStickNick > 100) MaxStickNick = 100;
82c2: 84 e6 ldi r24, 0x64 ; 100
82c4: 90 e0 ldi r25, 0x00 ; 0
82c6: 90 93 d1 03 sts 0x03D1, r25
82ca: 80 93 d0 03 sts 0x03D0, r24
82ce: 06 c0 rjmp .+12 ; 0x82dc <MotorRegler+0x12d0>
}
else MaxStickNick--;
82d0: 41 50 subi r20, 0x01 ; 1
82d2: 51 09 sbc r21, r1
82d4: 50 93 d1 03 sts 0x03D1, r21
82d8: 40 93 d0 03 sts 0x03D0, r20
if(abs(StickRoll/STICK_GAIN) > MaxStickRoll)
82dc: 80 91 12 04 lds r24, 0x0412
82e0: 90 91 13 04 lds r25, 0x0413
82e4: 40 91 ce 03 lds r20, 0x03CE
82e8: 50 91 cf 03 lds r21, 0x03CF
82ec: 9c 01 movw r18, r24
82ee: 99 23 and r25, r25
82f0: 14 f4 brge .+4 ; 0x82f6 <MotorRegler+0x12ea>
82f2: 2d 5f subi r18, 0xFD ; 253
82f4: 3f 4f sbci r19, 0xFF ; 255
82f6: 35 95 asr r19
82f8: 27 95 ror r18
82fa: 35 95 asr r19
82fc: 27 95 ror r18
82fe: 33 23 and r19, r19
8300: 1c f4 brge .+6 ; 0x8308 <MotorRegler+0x12fc>
8302: 31 95 neg r19
8304: 21 95 neg r18
8306: 31 09 sbc r19, r1
8308: 42 17 cp r20, r18
830a: 53 07 cpc r21, r19
830c: f4 f4 brge .+60 ; 0x834a <MotorRegler+0x133e>
{
MaxStickRoll = abs(StickRoll)/STICK_GAIN;
830e: 9c 01 movw r18, r24
8310: 99 23 and r25, r25
8312: 24 f4 brge .+8 ; 0x831c <MotorRegler+0x1310>
8314: 22 27 eor r18, r18
8316: 33 27 eor r19, r19
8318: 28 1b sub r18, r24
831a: 39 0b sbc r19, r25
831c: c9 01 movw r24, r18
831e: 99 23 and r25, r25
8320: 0c f4 brge .+2 ; 0x8324 <MotorRegler+0x1318>
8322: 03 96 adiw r24, 0x03 ; 3
8324: 95 95 asr r25
8326: 87 95 ror r24
8328: 95 95 asr r25
832a: 87 95 ror r24
if(MaxStickRoll > 100) MaxStickRoll = 100;
832c: 85 36 cpi r24, 0x65 ; 101
832e: 91 05 cpc r25, r1
8330: 2c f4 brge .+10 ; 0x833c <MotorRegler+0x1330>
if(MaxStickNick > 100) MaxStickNick = 100;
}
else MaxStickNick--;
if(abs(StickRoll/STICK_GAIN) > MaxStickRoll)
{
MaxStickRoll = abs(StickRoll)/STICK_GAIN;
8332: 90 93 cf 03 sts 0x03CF, r25
8336: 80 93 ce 03 sts 0x03CE, r24
833a: 0d c0 rjmp .+26 ; 0x8356 <MotorRegler+0x134a>
if(MaxStickRoll > 100) MaxStickRoll = 100;
833c: 84 e6 ldi r24, 0x64 ; 100
833e: 90 e0 ldi r25, 0x00 ; 0
8340: 90 93 cf 03 sts 0x03CF, r25
8344: 80 93 ce 03 sts 0x03CE, r24
8348: 06 c0 rjmp .+12 ; 0x8356 <MotorRegler+0x134a>
}
else MaxStickRoll--;
834a: 41 50 subi r20, 0x01 ; 1
834c: 51 09 sbc r21, r1
834e: 50 93 cf 03 sts 0x03CF, r21
8352: 40 93 ce 03 sts 0x03CE, r20
if(FC_StatusFlags & FC_STATUS_EMERGENCY_LANDING) {MaxStickNick = 0; MaxStickRoll = 0;}
8356: 80 91 cb 03 lds r24, 0x03CB
835a: 84 ff sbrs r24, 4
835c: 08 c0 rjmp .+16 ; 0x836e <MotorRegler+0x1362>
835e: 10 92 d1 03 sts 0x03D1, r1
8362: 10 92 d0 03 sts 0x03D0, r1
8366: 10 92 cf 03 sts 0x03CF, r1
836a: 10 92 ce 03 sts 0x03CE, r1
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Looping?
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_LINKS) Looping_Links = 1;
836e: 20 91 40 05 lds r18, 0x0540
8372: 30 e0 ldi r19, 0x00 ; 0
8374: f9 01 movw r30, r18
8376: ee 0f add r30, r30
8378: ff 1f adc r31, r31
837a: ef 5c subi r30, 0xCF ; 207
837c: f7 4f sbci r31, 0xF7 ; 247
837e: 40 81 ld r20, Z
8380: 51 81 ldd r21, Z+1 ; 0x01
8382: 80 91 7a 05 lds r24, 0x057A
8386: 90 e0 ldi r25, 0x00 ; 0
8388: 84 17 cp r24, r20
838a: 95 07 cpc r25, r21
838c: 44 f4 brge .+16 ; 0x839e <MotorRegler+0x1392>
838e: 40 91 b6 05 lds r20, 0x05B6
8392: 42 ff sbrs r20, 2
8394: 04 c0 rjmp .+8 ; 0x839e <MotorRegler+0x1392>
8396: 41 e0 ldi r20, 0x01 ; 1
8398: 40 93 e5 03 sts 0x03E5, r20
839c: 11 c0 rjmp .+34 ; 0x83c0 <MotorRegler+0x13b4>
else
{
{
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < (EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese))) Looping_Links = 0;
839e: f9 01 movw r30, r18
83a0: ee 0f add r30, r30
83a2: ff 1f adc r31, r31
83a4: ef 5c subi r30, 0xCF ; 207
83a6: f7 4f sbci r31, 0xF7 ; 247
83a8: 60 81 ld r22, Z
83aa: 71 81 ldd r23, Z+1 ; 0x01
83ac: 40 91 7b 05 lds r20, 0x057B
83b0: dc 01 movw r26, r24
83b2: a4 1b sub r26, r20
83b4: b1 09 sbc r27, r1
83b6: 6a 17 cp r22, r26
83b8: 7b 07 cpc r23, r27
83ba: 14 f4 brge .+4 ; 0x83c0 <MotorRegler+0x13b4>
83bc: 10 92 e5 03 sts 0x03E5, r1
}
}
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < -EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_RECHTS) Looping_Rechts = 1;
83c0: f9 01 movw r30, r18
83c2: ee 0f add r30, r30
83c4: ff 1f adc r31, r31
83c6: ef 5c subi r30, 0xCF ; 207
83c8: f7 4f sbci r31, 0xF7 ; 247
83ca: 60 81 ld r22, Z
83cc: 71 81 ldd r23, Z+1 ; 0x01
83ce: 44 27 eor r20, r20
83d0: 55 27 eor r21, r21
83d2: 48 1b sub r20, r24
83d4: 59 0b sbc r21, r25
83d6: 64 17 cp r22, r20
83d8: 75 07 cpc r23, r21
83da: 44 f4 brge .+16 ; 0x83ec <MotorRegler+0x13e0>
83dc: 60 91 b6 05 lds r22, 0x05B6
83e0: 63 ff sbrs r22, 3
83e2: 04 c0 rjmp .+8 ; 0x83ec <MotorRegler+0x13e0>
83e4: 21 e0 ldi r18, 0x01 ; 1
83e6: 20 93 e4 03 sts 0x03E4, r18
83ea: 15 c0 rjmp .+42 ; 0x8416 <MotorRegler+0x140a>
else
{
if(Looping_Rechts) // Hysterese
83ec: 60 91 e4 03 lds r22, 0x03E4
83f0: 66 23 and r22, r22
83f2: 89 f0 breq .+34 ; 0x8416 <MotorRegler+0x140a>
{
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > -(EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese)) Looping_Rechts = 0;
83f4: f9 01 movw r30, r18
83f6: ee 0f add r30, r30
83f8: ff 1f adc r31, r31
83fa: ef 5c subi r30, 0xCF ; 207
83fc: f7 4f sbci r31, 0xF7 ; 247
83fe: 60 81 ld r22, Z
8400: 71 81 ldd r23, Z+1 ; 0x01
8402: 20 91 7b 05 lds r18, 0x057B
8406: 30 e0 ldi r19, 0x00 ; 0
8408: 28 1b sub r18, r24
840a: 39 0b sbc r19, r25
840c: 26 17 cp r18, r22
840e: 37 07 cpc r19, r23
8410: 14 f4 brge .+4 ; 0x8416 <MotorRegler+0x140a>
8412: 10 92 e4 03 sts 0x03E4, r1
}
}
 
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_OBEN) Looping_Oben = 1;
8416: 20 91 3f 05 lds r18, 0x053F
841a: 30 e0 ldi r19, 0x00 ; 0
841c: f9 01 movw r30, r18
841e: ee 0f add r30, r30
8420: ff 1f adc r31, r31
8422: ef 5c subi r30, 0xCF ; 207
8424: f7 4f sbci r31, 0xF7 ; 247
8426: 60 81 ld r22, Z
8428: 71 81 ldd r23, Z+1 ; 0x01
842a: 86 17 cp r24, r22
842c: 97 07 cpc r25, r23
842e: 44 f4 brge .+16 ; 0x8440 <MotorRegler+0x1434>
8430: 60 91 b6 05 lds r22, 0x05B6
8434: 60 ff sbrs r22, 0
8436: 04 c0 rjmp .+8 ; 0x8440 <MotorRegler+0x1434>
8438: 61 e0 ldi r22, 0x01 ; 1
843a: 60 93 e2 03 sts 0x03E2, r22
843e: 16 c0 rjmp .+44 ; 0x846c <MotorRegler+0x1460>
else
{
if(Looping_Oben) // Hysterese
8440: 60 91 e2 03 lds r22, 0x03E2
8444: 66 23 and r22, r22
8446: 91 f0 breq .+36 ; 0x846c <MotorRegler+0x1460>
{
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < (EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese))) Looping_Oben = 0;
8448: f9 01 movw r30, r18
844a: ee 0f add r30, r30
844c: ff 1f adc r31, r31
844e: ef 5c subi r30, 0xCF ; 207
8450: f7 4f sbci r31, 0xF7 ; 247
8452: 01 90 ld r0, Z+
8454: f0 81 ld r31, Z
8456: e0 2d mov r30, r0
8458: 60 91 7b 05 lds r22, 0x057B
845c: 4c 01 movw r8, r24
845e: 86 1a sub r8, r22
8460: 91 08 sbc r9, r1
8462: e8 15 cp r30, r8
8464: f9 05 cpc r31, r9
8466: 14 f4 brge .+4 ; 0x846c <MotorRegler+0x1460>
8468: 10 92 e2 03 sts 0x03E2, r1
}
}
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_UNTEN) Looping_Unten = 1;
846c: f9 01 movw r30, r18
846e: ee 0f add r30, r30
8470: ff 1f adc r31, r31
8472: ef 5c subi r30, 0xCF ; 207
8474: f7 4f sbci r31, 0xF7 ; 247
8476: 60 81 ld r22, Z
8478: 71 81 ldd r23, Z+1 ; 0x01
847a: 64 17 cp r22, r20
847c: 75 07 cpc r23, r21
847e: 44 f4 brge .+16 ; 0x8490 <MotorRegler+0x1484>
8480: 40 91 b6 05 lds r20, 0x05B6
8484: 41 ff sbrs r20, 1
8486: 04 c0 rjmp .+8 ; 0x8490 <MotorRegler+0x1484>
8488: 81 e0 ldi r24, 0x01 ; 1
848a: 80 93 e3 03 sts 0x03E3, r24
848e: 16 c0 rjmp .+44 ; 0x84bc <MotorRegler+0x14b0>
else
{
if(Looping_Unten) // Hysterese
8490: 40 91 e3 03 lds r20, 0x03E3
8494: 44 23 and r20, r20
8496: 91 f0 breq .+36 ; 0x84bc <MotorRegler+0x14b0>
{
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -(EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese)) Looping_Unten = 0;
8498: f9 01 movw r30, r18
849a: ee 0f add r30, r30
849c: ff 1f adc r31, r31
849e: ef 5c subi r30, 0xCF ; 207
84a0: f7 4f sbci r31, 0xF7 ; 247
84a2: 20 81 ld r18, Z
84a4: 31 81 ldd r19, Z+1 ; 0x01
84a6: 40 91 7b 05 lds r20, 0x057B
84aa: 50 e0 ldi r21, 0x00 ; 0
84ac: 5a 01 movw r10, r20
84ae: a8 1a sub r10, r24
84b0: b9 0a sbc r11, r25
84b2: a2 16 cp r10, r18
84b4: b3 06 cpc r11, r19
84b6: 14 f4 brge .+4 ; 0x84bc <MotorRegler+0x14b0>
84b8: 10 92 e3 03 sts 0x03E3, r1
}
}
 
if(Looping_Links || Looping_Rechts) Looping_Roll = 1; else Looping_Roll = 0;
84bc: 80 91 e5 03 lds r24, 0x03E5
84c0: 81 11 cpse r24, r1
84c2: 04 c0 rjmp .+8 ; 0x84cc <MotorRegler+0x14c0>
84c4: 80 91 e4 03 lds r24, 0x03E4
84c8: 88 23 and r24, r24
84ca: 21 f0 breq .+8 ; 0x84d4 <MotorRegler+0x14c8>
84cc: 81 e0 ldi r24, 0x01 ; 1
84ce: 80 93 e6 03 sts 0x03E6, r24
84d2: 02 c0 rjmp .+4 ; 0x84d8 <MotorRegler+0x14cc>
84d4: 10 92 e6 03 sts 0x03E6, r1
if(Looping_Oben || Looping_Unten) { Looping_Nick = 1; Looping_Roll = 0; Looping_Links = 0; Looping_Rechts = 0;} else Looping_Nick = 0;
84d8: 80 91 e2 03 lds r24, 0x03E2
84dc: 81 11 cpse r24, r1
84de: 04 c0 rjmp .+8 ; 0x84e8 <MotorRegler+0x14dc>
84e0: 80 91 e3 03 lds r24, 0x03E3
84e4: 88 23 and r24, r24
84e6: 51 f0 breq .+20 ; 0x84fc <MotorRegler+0x14f0>
84e8: 81 e0 ldi r24, 0x01 ; 1
84ea: 80 93 e7 03 sts 0x03E7, r24
84ee: 10 92 e6 03 sts 0x03E6, r1
84f2: 10 92 e5 03 sts 0x03E5, r1
84f6: 10 92 e4 03 sts 0x03E4, r1
84fa: 02 c0 rjmp .+4 ; 0x8500 <MotorRegler+0x14f4>
84fc: 10 92 e7 03 sts 0x03E7, r1
} // Ende neue Funken-Werte
 
if(Looping_Roll || Looping_Nick)
8500: 80 91 e6 03 lds r24, 0x03E6
8504: 81 11 cpse r24, r1
8506: 04 c0 rjmp .+8 ; 0x8510 <MotorRegler+0x1504>
8508: 80 91 e7 03 lds r24, 0x03E7
850c: 88 23 and r24, r24
850e: 51 f0 breq .+20 ; 0x8524 <MotorRegler+0x1518>
{
if(GasMischanteil > EE_Parameter.LoopGasLimit) GasMischanteil = EE_Parameter.LoopGasLimit;
8510: 80 91 79 05 lds r24, 0x0579
8514: 90 e0 ldi r25, 0x00 ; 0
8516: 82 15 cp r24, r2
8518: 93 05 cpc r25, r3
851a: 0c f4 brge .+2 ; 0x851e <MotorRegler+0x1512>
851c: 1c 01 movw r2, r24
TrichterFlug = 1;
851e: 81 e0 ldi r24, 0x01 ; 1
8520: 80 93 1a 04 sts 0x041A, r24
 
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Bei Empfangsausfall im Flug
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(FC_StatusFlags2 & FC_STATUS2_RC_FAILSAVE_ACTIVE)
8524: 80 91 ca 03 lds r24, 0x03CA
8528: 82 ff sbrs r24, 2
852a: 31 c0 rjmp .+98 ; 0x858e <MotorRegler+0x1582>
{
StickNick = -GPS_Nick;
852c: 80 91 6a 04 lds r24, 0x046A
8530: 90 91 6b 04 lds r25, 0x046B
8534: 91 95 neg r25
8536: 81 95 neg r24
8538: 91 09 sbc r25, r1
853a: 90 93 15 04 sts 0x0415, r25
853e: 80 93 14 04 sts 0x0414, r24
StickRoll = -GPS_Roll;
8542: 80 91 68 04 lds r24, 0x0468
8546: 90 91 69 04 lds r25, 0x0469
854a: 91 95 neg r25
854c: 81 95 neg r24
854e: 91 09 sbc r25, r1
8550: 90 93 13 04 sts 0x0413, r25
8554: 80 93 12 04 sts 0x0412, r24
StickGas = StickGasHover;
8558: 80 91 40 01 lds r24, 0x0140
855c: 90 91 41 01 lds r25, 0x0141
8560: 90 93 0f 04 sts 0x040F, r25
8564: 80 93 0e 04 sts 0x040E, r24
StickGier = 0;
8568: 10 92 11 04 sts 0x0411, r1
856c: 10 92 10 04 sts 0x0410, r1
Parameter_GlobalConfig &= ~(CFG_HEADING_HOLD | CFG_DREHRATEN_BEGRENZER);
8570: 80 91 5c 06 lds r24, 0x065C
8574: 8b 77 andi r24, 0x7B ; 123
Parameter_GlobalConfig |= CFG_HOEHENREGELUNG | CFG_ACHSENKOPPLUNG_AKTIV | CFG_KOMPASS_AKTIV | CFG_GPS_AKTIV | CFG_HOEHEN_SCHALTER | CFG_GPS_AKTIV;
8576: 8b 66 ori r24, 0x6B ; 107
8578: 80 93 5c 06 sts 0x065C, r24
Parameter_ExtraConfig &= ~(CFG2_HEIGHT_LIMIT | CFG_LEARNABLE_CAREFREE | CFG2_VARIO_BEEP);
857c: 80 91 40 06 lds r24, 0x0640
8580: 8c 7b andi r24, 0xBC ; 188
8582: 80 93 40 06 sts 0x0640, r24
Parameter_HoehenSchalter = 200; // switch on
8586: 88 ec ldi r24, 0xC8 ; 200
8588: 80 93 e1 03 sts 0x03E1, r24
858c: 1e c0 rjmp .+60 ; 0x85ca <MotorRegler+0x15be>
}
else
if(FC_StatusFlags & FC_STATUS_EMERGENCY_LANDING)
858e: 80 91 cb 03 lds r24, 0x03CB
8592: 84 ff sbrs r24, 4
8594: 1a c0 rjmp .+52 ; 0x85ca <MotorRegler+0x15be>
{
StickGier = 0;
8596: 10 92 11 04 sts 0x0411, r1
859a: 10 92 10 04 sts 0x0410, r1
StickNick = 0;
859e: 10 92 15 04 sts 0x0415, r1
85a2: 10 92 14 04 sts 0x0414, r1
StickRoll = 0;
85a6: 10 92 13 04 sts 0x0413, r1
85aa: 10 92 12 04 sts 0x0412, r1
GyroFaktor = 90;
85ae: 9a e5 ldi r25, 0x5A ; 90
85b0: 90 93 6c 06 sts 0x066C, r25
IntegralFaktor = 120;
85b4: 88 e7 ldi r24, 0x78 ; 120
85b6: 80 93 42 06 sts 0x0642, r24
GyroFaktorGier = 90;
85ba: 90 93 23 06 sts 0x0623, r25
IntegralFaktorGier = 120;
85be: 80 93 31 06 sts 0x0631, r24
Looping_Roll = 0;
85c2: 10 92 e6 03 sts 0x03E6, r1
Looping_Nick = 0;
85c6: 10 92 e7 03 sts 0x03E7, r1
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Integrale auf ACC-Signal abgleichen
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#define ABGLEICH_ANZAHL 256L
 
MittelIntegralNick += IntegralNick; // Für die Mittelwertbildung aufsummieren
85ca: c0 90 42 04 lds r12, 0x0442
85ce: d0 90 43 04 lds r13, 0x0443
85d2: e0 90 44 04 lds r14, 0x0444
85d6: f0 90 45 04 lds r15, 0x0445
85da: 80 91 34 06 lds r24, 0x0634
85de: 90 91 35 06 lds r25, 0x0635
85e2: a0 91 36 06 lds r26, 0x0636
85e6: b0 91 37 06 lds r27, 0x0637
85ea: 8c 0d add r24, r12
85ec: 9d 1d adc r25, r13
85ee: ae 1d adc r26, r14
85f0: bf 1d adc r27, r15
85f2: 80 93 34 06 sts 0x0634, r24
85f6: 90 93 35 06 sts 0x0635, r25
85fa: a0 93 36 06 sts 0x0636, r26
85fe: b0 93 37 06 sts 0x0637, r27
MittelIntegralRoll += IntegralRoll;
8602: 80 90 3e 04 lds r8, 0x043E
8606: 90 90 3f 04 lds r9, 0x043F
860a: a0 90 40 04 lds r10, 0x0440
860e: b0 90 41 04 lds r11, 0x0441
8612: 80 91 3c 06 lds r24, 0x063C
8616: 90 91 3d 06 lds r25, 0x063D
861a: a0 91 3e 06 lds r26, 0x063E
861e: b0 91 3f 06 lds r27, 0x063F
8622: 88 0d add r24, r8
8624: 99 1d adc r25, r9
8626: aa 1d adc r26, r10
8628: bb 1d adc r27, r11
862a: 80 93 3c 06 sts 0x063C, r24
862e: 90 93 3d 06 sts 0x063D, r25
8632: a0 93 3e 06 sts 0x063E, r26
8636: b0 93 3f 06 sts 0x063F, r27
if(Looping_Nick || Looping_Roll)
863a: 80 91 e7 03 lds r24, 0x03E7
863e: 81 11 cpse r24, r1
8640: 0c 94 14 59 jmp 0xb228 ; 0xb228 <MotorRegler+0x421c>
8644: 80 91 e6 03 lds r24, 0x03E6
8648: 81 11 cpse r24, r1
864a: 0c 94 f1 58 jmp 0xb1e2 ; 0xb1e2 <MotorRegler+0x41d6>
LageKorrekturNick = 0;
LageKorrekturRoll = 0;
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!Looping_Nick && !Looping_Roll && (Aktuell_az > 512 || MotorenEin))
864e: 80 91 06 05 lds r24, 0x0506
8652: 90 91 07 05 lds r25, 0x0507
8656: 81 30 cpi r24, 0x01 ; 1
8658: 92 40 sbci r25, 0x02 ; 2
865a: 2c f4 brge .+10 ; 0x8666 <MotorRegler+0x165a>
865c: 80 91 03 04 lds r24, 0x0403
8660: 88 23 and r24, r24
8662: 09 f4 brne .+2 ; 0x8666 <MotorRegler+0x165a>
8664: e0 c1 rjmp .+960 ; 0x8a26 <MotorRegler+0x1a1a>
{
long tmp_long, tmp_long2;
if(FromNaviCtrl_Value.Kalman_K > 0 /*&& !TrichterFlug*/)
8666: 40 90 4c 09 lds r4, 0x094C
866a: 14 14 cp r1, r4
866c: 0c f0 brlt .+2 ; 0x8670 <MotorRegler+0x1664>
866e: c9 c0 rjmp .+402 ; 0x8802 <MotorRegler+0x17f6>
{
tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)(Mittelwert_AccNick - FromNaviCtrl.AccErrorN));
8670: 80 91 5a 05 lds r24, 0x055A
8674: 08 2f mov r16, r24
8676: 10 e0 ldi r17, 0x00 ; 0
8678: 20 e0 ldi r18, 0x00 ; 0
867a: 30 e0 ldi r19, 0x00 ; 0
867c: 0d 83 std Y+5, r16 ; 0x05
867e: 1e 83 std Y+6, r17 ; 0x06
8680: 2f 83 std Y+7, r18 ; 0x07
8682: 38 87 std Y+8, r19 ; 0x08
tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)(Mittelwert_AccRoll - FromNaviCtrl.AccErrorR));
tmp_long = (tmp_long * FromNaviCtrl_Value.Kalman_K) / (32 * 16);
8684: 55 24 eor r5, r5
8686: 47 fc sbrc r4, 7
8688: 50 94 com r5
868a: 65 2c mov r6, r5
868c: 75 2c mov r7, r5
if(!Looping_Nick && !Looping_Roll && (Aktuell_az > 512 || MotorenEin))
{
long tmp_long, tmp_long2;
if(FromNaviCtrl_Value.Kalman_K > 0 /*&& !TrichterFlug*/)
{
tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)(Mittelwert_AccNick - FromNaviCtrl.AccErrorN));
868e: c7 01 movw r24, r14
8690: b6 01 movw r22, r12
8692: a9 01 movw r20, r18
8694: 98 01 movw r18, r16
8696: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
869a: 80 91 60 06 lds r24, 0x0660
869e: 90 91 61 06 lds r25, 0x0661
86a2: 60 91 15 09 lds r22, 0x0915
86a6: 70 91 16 09 lds r23, 0x0916
86aa: 86 1b sub r24, r22
86ac: 97 0b sbc r25, r23
86ae: aa 27 eor r26, r26
86b0: 97 fd sbrc r25, 7
86b2: a0 95 com r26
86b4: ba 2f mov r27, r26
86b6: 79 01 movw r14, r18
86b8: 8a 01 movw r16, r20
86ba: e8 1a sub r14, r24
86bc: f9 0a sbc r15, r25
86be: 0a 0b sbc r16, r26
86c0: 1b 0b sbc r17, r27
86c2: c8 01 movw r24, r16
86c4: b7 01 movw r22, r14
tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)(Mittelwert_AccRoll - FromNaviCtrl.AccErrorR));
tmp_long = (tmp_long * FromNaviCtrl_Value.Kalman_K) / (32 * 16);
86c6: a3 01 movw r20, r6
86c8: 92 01 movw r18, r4
86ca: 0e 94 27 b1 call 0x1624e ; 0x1624e <__mulsi3>
86ce: 6b 01 movw r12, r22
86d0: 7c 01 movw r14, r24
86d2: 99 23 and r25, r25
86d4: 34 f4 brge .+12 ; 0x86e2 <MotorRegler+0x16d6>
86d6: 0f ef ldi r16, 0xFF ; 255
86d8: c0 0e add r12, r16
86da: 01 e0 ldi r16, 0x01 ; 1
86dc: d0 1e adc r13, r16
86de: e1 1c adc r14, r1
86e0: f1 1c adc r15, r1
86e2: 0b 2e mov r0, r27
86e4: b9 e0 ldi r27, 0x09 ; 9
86e6: f5 94 asr r15
86e8: e7 94 ror r14
86ea: d7 94 ror r13
86ec: c7 94 ror r12
86ee: ba 95 dec r27
86f0: d1 f7 brne .-12 ; 0x86e6 <MotorRegler+0x16da>
86f2: b0 2d mov r27, r0
{
long tmp_long, tmp_long2;
if(FromNaviCtrl_Value.Kalman_K > 0 /*&& !TrichterFlug*/)
{
tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)(Mittelwert_AccNick - FromNaviCtrl.AccErrorN));
tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)(Mittelwert_AccRoll - FromNaviCtrl.AccErrorR));
86f4: c5 01 movw r24, r10
86f6: b4 01 movw r22, r8
86f8: 2d 81 ldd r18, Y+5 ; 0x05
86fa: 3e 81 ldd r19, Y+6 ; 0x06
86fc: 4f 81 ldd r20, Y+7 ; 0x07
86fe: 58 85 ldd r21, Y+8 ; 0x08
8700: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
8704: 80 91 72 06 lds r24, 0x0672
8708: 90 91 73 06 lds r25, 0x0673
870c: 60 91 17 09 lds r22, 0x0917
8710: 70 91 18 09 lds r23, 0x0918
8714: 86 1b sub r24, r22
8716: 97 0b sbc r25, r23
8718: aa 27 eor r26, r26
871a: 97 fd sbrc r25, 7
871c: a0 95 com r26
871e: ba 2f mov r27, r26
8720: 28 1b sub r18, r24
8722: 39 0b sbc r19, r25
8724: 4a 0b sbc r20, r26
8726: 5b 0b sbc r21, r27
tmp_long = (tmp_long * FromNaviCtrl_Value.Kalman_K) / (32 * 16);
tmp_long2 = (tmp_long2 * FromNaviCtrl_Value.Kalman_K) / (32 * 16);
8728: c3 01 movw r24, r6
872a: b2 01 movw r22, r4
872c: 0e 94 27 b1 call 0x1624e ; 0x1624e <__mulsi3>
8730: 8b 01 movw r16, r22
8732: 9c 01 movw r18, r24
8734: 99 23 and r25, r25
8736: 24 f4 brge .+8 ; 0x8740 <MotorRegler+0x1734>
8738: 01 50 subi r16, 0x01 ; 1
873a: 1e 4f sbci r17, 0xFE ; 254
873c: 2f 4f sbci r18, 0xFF ; 255
873e: 3f 4f sbci r19, 0xFF ; 255
8740: 0f 2e mov r0, r31
8742: f9 e0 ldi r31, 0x09 ; 9
8744: 35 95 asr r19
8746: 27 95 ror r18
8748: 17 95 ror r17
874a: 07 95 ror r16
874c: fa 95 dec r31
874e: d1 f7 brne .-12 ; 0x8744 <MotorRegler+0x1738>
8750: f0 2d mov r31, r0
if((MaxStickNick > 64) || (MaxStickRoll > 64))
8752: 80 91 d0 03 lds r24, 0x03D0
8756: 90 91 d1 03 lds r25, 0x03D1
875a: 81 34 cpi r24, 0x41 ; 65
875c: 91 05 cpc r25, r1
875e: 3c f4 brge .+14 ; 0x876e <MotorRegler+0x1762>
8760: 80 91 ce 03 lds r24, 0x03CE
8764: 90 91 cf 03 lds r25, 0x03CF
8768: 81 34 cpi r24, 0x41 ; 65
876a: 91 05 cpc r25, r1
876c: d4 f0 brlt .+52 ; 0x87a2 <MotorRegler+0x1796>
{
tmp_long /= 2;
876e: d7 01 movw r26, r14
8770: c6 01 movw r24, r12
8772: ff 20 and r15, r15
8774: 1c f4 brge .+6 ; 0x877c <MotorRegler+0x1770>
8776: 01 96 adiw r24, 0x01 ; 1
8778: a1 1d adc r26, r1
877a: b1 1d adc r27, r1
877c: 6c 01 movw r12, r24
877e: 7d 01 movw r14, r26
8780: f5 94 asr r15
8782: e7 94 ror r14
8784: d7 94 ror r13
8786: c7 94 ror r12
tmp_long2 /= 2;
8788: d9 01 movw r26, r18
878a: c8 01 movw r24, r16
878c: 33 23 and r19, r19
878e: 1c f4 brge .+6 ; 0x8796 <MotorRegler+0x178a>
8790: 01 96 adiw r24, 0x01 ; 1
8792: a1 1d adc r26, r1
8794: b1 1d adc r27, r1
8796: 8c 01 movw r16, r24
8798: 9d 01 movw r18, r26
879a: 35 95 asr r19
879c: 27 95 ror r18
879e: 17 95 ror r17
87a0: 07 95 ror r16
}
if(tmp_long > (long) FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long = (long) FromNaviCtrl_Value.Kalman_MaxFusion;
87a2: 80 91 4e 09 lds r24, 0x094E
87a6: 48 2f mov r20, r24
87a8: 55 27 eor r21, r21
87aa: 47 fd sbrc r20, 7
87ac: 50 95 com r21
87ae: 65 2f mov r22, r21
87b0: 75 2f mov r23, r21
87b2: 4c 15 cp r20, r12
87b4: 5d 05 cpc r21, r13
87b6: 6e 05 cpc r22, r14
87b8: 7f 05 cpc r23, r15
87ba: 14 f4 brge .+4 ; 0x87c0 <MotorRegler+0x17b4>
87bc: 6a 01 movw r12, r20
87be: 7b 01 movw r14, r22
if(tmp_long < (long)-FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long = (long)-FromNaviCtrl_Value.Kalman_MaxFusion;
87c0: 99 27 eor r25, r25
87c2: 81 95 neg r24
87c4: 0c f4 brge .+2 ; 0x87c8 <MotorRegler+0x17bc>
87c6: 90 95 com r25
87c8: aa 27 eor r26, r26
87ca: 97 fd sbrc r25, 7
87cc: a0 95 com r26
87ce: ba 2f mov r27, r26
87d0: c8 16 cp r12, r24
87d2: d9 06 cpc r13, r25
87d4: ea 06 cpc r14, r26
87d6: fb 06 cpc r15, r27
87d8: 14 f4 brge .+4 ; 0x87de <MotorRegler+0x17d2>
87da: 6c 01 movw r12, r24
87dc: 7d 01 movw r14, r26
87de: 40 17 cp r20, r16
87e0: 51 07 cpc r21, r17
87e2: 62 07 cpc r22, r18
87e4: 73 07 cpc r23, r19
87e6: 14 f4 brge .+4 ; 0x87ec <MotorRegler+0x17e0>
87e8: 8a 01 movw r16, r20
87ea: 9b 01 movw r18, r22
87ec: b9 01 movw r22, r18
87ee: a8 01 movw r20, r16
87f0: 08 17 cp r16, r24
87f2: 19 07 cpc r17, r25
87f4: 2a 07 cpc r18, r26
87f6: 3b 07 cpc r19, r27
87f8: 0c f0 brlt .+2 ; 0x87fc <MotorRegler+0x17f0>
87fa: d8 c0 rjmp .+432 ; 0x89ac <MotorRegler+0x19a0>
87fc: ac 01 movw r20, r24
87fe: bd 01 movw r22, r26
8800: d5 c0 rjmp .+426 ; 0x89ac <MotorRegler+0x19a0>
if(tmp_long2 > (long) FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long2 = (long) FromNaviCtrl_Value.Kalman_MaxFusion;
if(tmp_long2 < (long)-FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long2 = (long)-FromNaviCtrl_Value.Kalman_MaxFusion;
}
else
{
tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccNick);
8802: 40 90 5a 05 lds r4, 0x055A
8806: 51 2c mov r5, r1
8808: 61 2c mov r6, r1
880a: 71 2c mov r7, r1
tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccRoll);
880c: c5 01 movw r24, r10
880e: b4 01 movw r22, r8
8810: a3 01 movw r20, r6
8812: 92 01 movw r18, r4
8814: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
8818: 80 91 72 06 lds r24, 0x0672
881c: 90 91 73 06 lds r25, 0x0673
8820: aa 27 eor r26, r26
8822: 97 fd sbrc r25, 7
8824: a0 95 com r26
8826: ba 2f mov r27, r26
8828: 49 01 movw r8, r18
882a: 5a 01 movw r10, r20
882c: 88 1a sub r8, r24
882e: 99 0a sbc r9, r25
8830: aa 0a sbc r10, r26
8832: bb 0a sbc r11, r27
8834: 8d 82 std Y+5, r8 ; 0x05
8836: 9e 82 std Y+6, r9 ; 0x06
8838: af 82 std Y+7, r10 ; 0x07
883a: b8 86 std Y+8, r11 ; 0x08
if(tmp_long2 > (long) FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long2 = (long) FromNaviCtrl_Value.Kalman_MaxFusion;
if(tmp_long2 < (long)-FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long2 = (long)-FromNaviCtrl_Value.Kalman_MaxFusion;
}
else
{
tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccNick);
883c: c7 01 movw r24, r14
883e: b6 01 movw r22, r12
8840: a3 01 movw r20, r6
8842: 92 01 movw r18, r4
8844: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
8848: 80 91 60 06 lds r24, 0x0660
884c: 90 91 61 06 lds r25, 0x0661
8850: aa 27 eor r26, r26
8852: 97 fd sbrc r25, 7
8854: a0 95 com r26
8856: ba 2f mov r27, r26
8858: 79 01 movw r14, r18
885a: 8a 01 movw r16, r20
885c: e8 1a sub r14, r24
885e: f9 0a sbc r15, r25
8860: 0a 0b sbc r16, r26
8862: 1b 0b sbc r17, r27
tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccRoll);
tmp_long /= 16;
8864: 67 01 movw r12, r14
8866: 78 01 movw r14, r16
8868: ff 20 and r15, r15
886a: 2c f4 brge .+10 ; 0x8876 <MotorRegler+0x186a>
886c: 0f e0 ldi r16, 0x0F ; 15
886e: c0 0e add r12, r16
8870: d1 1c adc r13, r1
8872: e1 1c adc r14, r1
8874: f1 1c adc r15, r1
8876: 68 94 set
8878: 13 f8 bld r1, 3
887a: f5 94 asr r15
887c: e7 94 ror r14
887e: d7 94 ror r13
8880: c7 94 ror r12
8882: 16 94 lsr r1
8884: d1 f7 brne .-12 ; 0x887a <MotorRegler+0x186e>
tmp_long2 /= 16;
8886: 8d 80 ldd r8, Y+5 ; 0x05
8888: 9e 80 ldd r9, Y+6 ; 0x06
888a: af 80 ldd r10, Y+7 ; 0x07
888c: b8 84 ldd r11, Y+8 ; 0x08
888e: bb 20 and r11, r11
8890: 2c f4 brge .+10 ; 0x889c <MotorRegler+0x1890>
8892: 1f e0 ldi r17, 0x0F ; 15
8894: 81 0e add r8, r17
8896: 91 1c adc r9, r1
8898: a1 1c adc r10, r1
889a: b1 1c adc r11, r1
889c: 68 94 set
889e: 13 f8 bld r1, 3
88a0: b5 94 asr r11
88a2: a7 94 ror r10
88a4: 97 94 ror r9
88a6: 87 94 ror r8
88a8: 16 94 lsr r1
88aa: d1 f7 brne .-12 ; 0x88a0 <MotorRegler+0x1894>
if((MaxStickNick > 64) || (MaxStickRoll > 64))
88ac: 80 91 d0 03 lds r24, 0x03D0
88b0: 90 91 d1 03 lds r25, 0x03D1
88b4: 81 34 cpi r24, 0x41 ; 65
88b6: 91 05 cpc r25, r1
88b8: 3c f4 brge .+14 ; 0x88c8 <MotorRegler+0x18bc>
88ba: 80 91 ce 03 lds r24, 0x03CE
88be: 90 91 cf 03 lds r25, 0x03CF
88c2: 81 34 cpi r24, 0x41 ; 65
88c4: 91 05 cpc r25, r1
88c6: bc f0 brlt .+46 ; 0x88f6 <MotorRegler+0x18ea>
{
tmp_long /= 3;
88c8: 0f 2e mov r0, r31
88ca: f3 e0 ldi r31, 0x03 ; 3
88cc: 4f 2e mov r4, r31
88ce: 51 2c mov r5, r1
88d0: 61 2c mov r6, r1
88d2: 71 2c mov r7, r1
88d4: f0 2d mov r31, r0
88d6: c7 01 movw r24, r14
88d8: b6 01 movw r22, r12
88da: a3 01 movw r20, r6
88dc: 92 01 movw r18, r4
88de: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
88e2: 69 01 movw r12, r18
88e4: 7a 01 movw r14, r20
tmp_long2 /= 3;
88e6: c5 01 movw r24, r10
88e8: b4 01 movw r22, r8
88ea: a3 01 movw r20, r6
88ec: 92 01 movw r18, r4
88ee: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
88f2: 49 01 movw r8, r18
88f4: 5a 01 movw r10, r20
}
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25)
88f6: e0 91 42 05 lds r30, 0x0542
88fa: f0 e0 ldi r31, 0x00 ; 0
88fc: ee 0f add r30, r30
88fe: ff 1f adc r31, r31
8900: ef 5c subi r30, 0xCF ; 207
8902: f7 4f sbci r31, 0xF7 ; 247
8904: 80 81 ld r24, Z
8906: 91 81 ldd r25, Z+1 ; 0x01
8908: 99 23 and r25, r25
890a: 1c f4 brge .+6 ; 0x8912 <MotorRegler+0x1906>
890c: 91 95 neg r25
890e: 81 95 neg r24
8910: 91 09 sbc r25, r1
8912: 4a 97 sbiw r24, 0x1a ; 26
8914: bc f0 brlt .+46 ; 0x8944 <MotorRegler+0x1938>
{
tmp_long /= 3;
8916: 0f 2e mov r0, r31
8918: f3 e0 ldi r31, 0x03 ; 3
891a: 4f 2e mov r4, r31
891c: 51 2c mov r5, r1
891e: 61 2c mov r6, r1
8920: 71 2c mov r7, r1
8922: f0 2d mov r31, r0
8924: c7 01 movw r24, r14
8926: b6 01 movw r22, r12
8928: a3 01 movw r20, r6
892a: 92 01 movw r18, r4
892c: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
8930: 69 01 movw r12, r18
8932: 7a 01 movw r14, r20
tmp_long2 /= 3;
8934: c5 01 movw r24, r10
8936: b4 01 movw r22, r8
8938: a3 01 movw r20, r6
893a: 92 01 movw r18, r4
893c: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
8940: 49 01 movw r8, r18
8942: 5a 01 movw r10, r20
}
KompassFusion = 25;
8944: 89 e1 ldi r24, 0x19 ; 25
8946: 80 93 4c 01 sts 0x014C, r24
894a: 21 e2 ldi r18, 0x21 ; 33
894c: c2 16 cp r12, r18
894e: d1 04 cpc r13, r1
8950: e1 04 cpc r14, r1
8952: f1 04 cpc r15, r1
8954: 2c f0 brlt .+10 ; 0x8960 <MotorRegler+0x1954>
8956: c1 2c mov r12, r1
8958: d1 2c mov r13, r1
895a: 76 01 movw r14, r12
895c: 68 94 set
895e: c5 f8 bld r12, 5
8960: 30 ee ldi r19, 0xE0 ; 224
8962: c3 16 cp r12, r19
8964: 3f ef ldi r19, 0xFF ; 255
8966: d3 06 cpc r13, r19
8968: e3 06 cpc r14, r19
896a: f3 06 cpc r15, r19
896c: 44 f4 brge .+16 ; 0x897e <MotorRegler+0x1972>
896e: 0f 2e mov r0, r31
8970: f0 ee ldi r31, 0xE0 ; 224
8972: cf 2e mov r12, r31
8974: dd 24 eor r13, r13
8976: da 94 dec r13
8978: ed 2c mov r14, r13
897a: fd 2c mov r15, r13
897c: f0 2d mov r31, r0
897e: d5 01 movw r26, r10
8980: c4 01 movw r24, r8
8982: 81 32 cpi r24, 0x21 ; 33
8984: 91 05 cpc r25, r1
8986: a1 05 cpc r26, r1
8988: b1 05 cpc r27, r1
898a: 24 f0 brlt .+8 ; 0x8994 <MotorRegler+0x1988>
898c: 80 e2 ldi r24, 0x20 ; 32
898e: 90 e0 ldi r25, 0x00 ; 0
8990: a0 e0 ldi r26, 0x00 ; 0
8992: b0 e0 ldi r27, 0x00 ; 0
8994: ac 01 movw r20, r24
8996: bd 01 movw r22, r26
8998: 40 3e cpi r20, 0xE0 ; 224
899a: 8f ef ldi r24, 0xFF ; 255
899c: 58 07 cpc r21, r24
899e: 68 07 cpc r22, r24
89a0: 78 07 cpc r23, r24
89a2: 24 f4 brge .+8 ; 0x89ac <MotorRegler+0x19a0>
89a4: 40 ee ldi r20, 0xE0 ; 224
89a6: 5f ef ldi r21, 0xFF ; 255
89a8: 6f ef ldi r22, 0xFF ; 255
89aa: 7f ef ldi r23, 0xFF ; 255
if(tmp_long < -AUSGLEICH) tmp_long =-AUSGLEICH;
if(tmp_long2 > AUSGLEICH) tmp_long2 = AUSGLEICH;
if(tmp_long2 <-AUSGLEICH) tmp_long2 =-AUSGLEICH;
}
 
Mess_IntegralNick -= tmp_long;
89ac: 80 91 36 04 lds r24, 0x0436
89b0: 90 91 37 04 lds r25, 0x0437
89b4: a0 91 38 04 lds r26, 0x0438
89b8: b0 91 39 04 lds r27, 0x0439
89bc: 8c 19 sub r24, r12
89be: 9d 09 sbc r25, r13
89c0: ae 09 sbc r26, r14
89c2: bf 09 sbc r27, r15
89c4: 80 93 36 04 sts 0x0436, r24
89c8: 90 93 37 04 sts 0x0437, r25
89cc: a0 93 38 04 sts 0x0438, r26
89d0: b0 93 39 04 sts 0x0439, r27
Mess_IntegralRoll -= tmp_long2;
89d4: 80 91 32 04 lds r24, 0x0432
89d8: 90 91 33 04 lds r25, 0x0433
89dc: a0 91 34 04 lds r26, 0x0434
89e0: b0 91 35 04 lds r27, 0x0435
89e4: 84 1b sub r24, r20
89e6: 95 0b sbc r25, r21
89e8: a6 0b sbc r26, r22
89ea: b7 0b sbc r27, r23
89ec: 80 93 32 04 sts 0x0432, r24
89f0: 90 93 33 04 sts 0x0433, r25
89f4: a0 93 34 04 sts 0x0434, r26
89f8: b0 93 35 04 sts 0x0435, r27
DriftNick += tmp_long;
89fc: 80 91 be 03 lds r24, 0x03BE
8a00: 90 91 bf 03 lds r25, 0x03BF
8a04: c8 0e add r12, r24
8a06: d9 1e adc r13, r25
8a08: d0 92 bf 03 sts 0x03BF, r13
8a0c: c0 92 be 03 sts 0x03BE, r12
DriftRoll += tmp_long2;
8a10: 80 91 bc 03 lds r24, 0x03BC
8a14: 90 91 bd 03 lds r25, 0x03BD
8a18: 9c 01 movw r18, r24
8a1a: 24 0f add r18, r20
8a1c: 35 1f adc r19, r21
8a1e: 30 93 bd 03 sts 0x03BD, r19
8a22: 20 93 bc 03 sts 0x03BC, r18
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(ZaehlMessungen >= ABGLEICH_ANZAHL)
8a26: 80 91 52 03 lds r24, 0x0352
8a2a: 90 91 53 03 lds r25, 0x0353
8a2e: 8f 3f cpi r24, 0xFF ; 255
8a30: 91 05 cpc r25, r1
8a32: 09 f0 breq .+2 ; 0x8a36 <MotorRegler+0x1a2a>
8a34: 08 f4 brcc .+2 ; 0x8a38 <MotorRegler+0x1a2c>
8a36: 5a c1 rjmp .+692 ; 0x8cec <MotorRegler+0x1ce0>
// static char last_n_p,last_n_n,last_r_p,last_r_n;
static long MittelIntegralNick_Alt,MittelIntegralRoll_Alt;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gyro-Drift ermitteln
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(EE_Parameter.Driftkomp && abs(Mittelwert_AccNick) < 200*4 && abs(Mittelwert_AccRoll) < 200*4 && !TrichterFlug && abs(MesswertGier) < 32/* && (FC_StatusFlags & FC_STATUS_FLY)*/)
8a38: 00 91 82 05 lds r16, 0x0582
8a3c: 00 23 and r16, r16
8a3e: 09 f4 brne .+2 ; 0x8a42 <MotorRegler+0x1a36>
8a40: 07 c1 rjmp .+526 ; 0x8c50 <MotorRegler+0x1c44>
8a42: 80 91 60 06 lds r24, 0x0660
8a46: 90 91 61 06 lds r25, 0x0661
8a4a: 81 5e subi r24, 0xE1 ; 225
8a4c: 9c 4f sbci r25, 0xFC ; 252
8a4e: 8f 33 cpi r24, 0x3F ; 63
8a50: 96 40 sbci r25, 0x06 ; 6
8a52: 08 f0 brcs .+2 ; 0x8a56 <MotorRegler+0x1a4a>
8a54: fd c0 rjmp .+506 ; 0x8c50 <MotorRegler+0x1c44>
8a56: 80 91 72 06 lds r24, 0x0672
8a5a: 90 91 73 06 lds r25, 0x0673
8a5e: 81 5e subi r24, 0xE1 ; 225
8a60: 9c 4f sbci r25, 0xFC ; 252
8a62: 8f 33 cpi r24, 0x3F ; 63
8a64: 96 40 sbci r25, 0x06 ; 6
8a66: 08 f0 brcs .+2 ; 0x8a6a <MotorRegler+0x1a5e>
8a68: f3 c0 rjmp .+486 ; 0x8c50 <MotorRegler+0x1c44>
8a6a: 80 91 1a 04 lds r24, 0x041A
8a6e: 81 11 cpse r24, r1
8a70: ef c0 rjmp .+478 ; 0x8c50 <MotorRegler+0x1c44>
8a72: 80 91 67 06 lds r24, 0x0667
8a76: 90 91 68 06 lds r25, 0x0668
8a7a: 4f 96 adiw r24, 0x1f ; 31
8a7c: cf 97 sbiw r24, 0x3f ; 63
8a7e: 08 f0 brcs .+2 ; 0x8a82 <MotorRegler+0x1a76>
8a80: e7 c0 rjmp .+462 ; 0x8c50 <MotorRegler+0x1c44>
{
DebugOut.Analog[16] = EE_Parameter.Driftkomp;
8a82: 10 e0 ldi r17, 0x00 ; 0
8a84: 10 93 69 0c sts 0x0C69, r17
8a88: 00 93 68 0c sts 0x0C68, r16
DriftNick -= DriftNick / (64 * (unsigned int) EE_Parameter.Driftkomp);
8a8c: e0 91 be 03 lds r30, 0x03BE
8a90: f0 91 bf 03 lds r31, 0x03BF
8a94: 00 24 eor r0, r0
8a96: 16 95 lsr r17
8a98: 07 95 ror r16
8a9a: 07 94 ror r0
8a9c: 16 95 lsr r17
8a9e: 07 95 ror r16
8aa0: 07 94 ror r0
8aa2: 10 2f mov r17, r16
8aa4: 00 2d mov r16, r0
8aa6: cf 01 movw r24, r30
8aa8: b8 01 movw r22, r16
8aaa: 0e 94 42 b1 call 0x16284 ; 0x16284 <__udivmodhi4>
8aae: e6 1b sub r30, r22
8ab0: f7 0b sbc r31, r23
8ab2: f0 93 bf 03 sts 0x03BF, r31
8ab6: e0 93 be 03 sts 0x03BE, r30
DriftRoll -= DriftRoll / (64 * (unsigned int) EE_Parameter.Driftkomp);
8aba: 20 91 bc 03 lds r18, 0x03BC
8abe: 30 91 bd 03 lds r19, 0x03BD
8ac2: c9 01 movw r24, r18
8ac4: b8 01 movw r22, r16
8ac6: 0e 94 42 b1 call 0x16284 ; 0x16284 <__udivmodhi4>
8aca: 26 1b sub r18, r22
8acc: 37 0b sbc r19, r23
8ace: 30 93 bd 03 sts 0x03BD, r19
8ad2: 20 93 bc 03 sts 0x03BC, r18
GierGyroFehler -= GierGyroFehler / (64 * (unsigned int) EE_Parameter.Driftkomp);
8ad6: e0 90 18 04 lds r14, 0x0418
8ada: f0 90 19 04 lds r15, 0x0419
8ade: c7 01 movw r24, r14
8ae0: b8 01 movw r22, r16
8ae2: 0e 94 42 b1 call 0x16284 ; 0x16284 <__udivmodhi4>
8ae6: e6 1a sub r14, r22
8ae8: f7 0a sbc r15, r23
8aea: f0 92 19 04 sts 0x0419, r15
8aee: e0 92 18 04 sts 0x0418, r14
if((MaxStickNick > 64) || (MaxStickRoll > 64) || (abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25))
8af2: 80 91 d0 03 lds r24, 0x03D0
8af6: 90 91 d1 03 lds r25, 0x03D1
8afa: 81 34 cpi r24, 0x41 ; 65
8afc: 91 05 cpc r25, r1
8afe: bc f4 brge .+46 ; 0x8b2e <MotorRegler+0x1b22>
8b00: 80 91 ce 03 lds r24, 0x03CE
8b04: 90 91 cf 03 lds r25, 0x03CF
8b08: 81 34 cpi r24, 0x41 ; 65
8b0a: 91 05 cpc r25, r1
8b0c: 84 f4 brge .+32 ; 0x8b2e <MotorRegler+0x1b22>
8b0e: a0 91 42 05 lds r26, 0x0542
8b12: b0 e0 ldi r27, 0x00 ; 0
8b14: aa 0f add r26, r26
8b16: bb 1f adc r27, r27
8b18: af 5c subi r26, 0xCF ; 207
8b1a: b7 4f sbci r27, 0xF7 ; 247
8b1c: 8d 91 ld r24, X+
8b1e: 9c 91 ld r25, X
8b20: 99 23 and r25, r25
8b22: 1c f4 brge .+6 ; 0x8b2a <MotorRegler+0x1b1e>
8b24: 91 95 neg r25
8b26: 81 95 neg r24
8b28: 91 09 sbc r25, r1
8b2a: 4a 97 sbiw r24, 0x1a ; 26
8b2c: c4 f0 brlt .+48 ; 0x8b5e <MotorRegler+0x1b52>
{
DriftNick /= 2;
8b2e: cf 01 movw r24, r30
8b30: ff 23 and r31, r31
8b32: 0c f4 brge .+2 ; 0x8b36 <MotorRegler+0x1b2a>
8b34: 01 96 adiw r24, 0x01 ; 1
8b36: 95 95 asr r25
8b38: 87 95 ror r24
8b3a: 90 93 bf 03 sts 0x03BF, r25
8b3e: 80 93 be 03 sts 0x03BE, r24
DriftRoll /= 2;
8b42: c9 01 movw r24, r18
8b44: 99 23 and r25, r25
8b46: 0c f4 brge .+2 ; 0x8b4a <MotorRegler+0x1b3e>
8b48: 01 96 adiw r24, 0x01 ; 1
8b4a: 95 95 asr r25
8b4c: 87 95 ror r24
8b4e: 90 93 bd 03 sts 0x03BD, r25
8b52: 80 93 bc 03 sts 0x03BC, r24
GierGyroFehler = 0;
8b56: 10 92 19 04 sts 0x0419, r1
8b5a: 10 92 18 04 sts 0x0418, r1
}
if(DriftNick > 3000) { DriftNick = 0; AdNeutralNick++;}
8b5e: 80 91 be 03 lds r24, 0x03BE
8b62: 90 91 bf 03 lds r25, 0x03BF
8b66: 89 3b cpi r24, 0xB9 ; 185
8b68: 9b 40 sbci r25, 0x0B ; 11
8b6a: 6c f0 brlt .+26 ; 0x8b86 <MotorRegler+0x1b7a>
8b6c: 10 92 bf 03 sts 0x03BF, r1
8b70: 10 92 be 03 sts 0x03BE, r1
8b74: 80 91 57 04 lds r24, 0x0457
8b78: 90 91 58 04 lds r25, 0x0458
8b7c: 01 96 adiw r24, 0x01 ; 1
8b7e: 90 93 58 04 sts 0x0458, r25
8b82: 80 93 57 04 sts 0x0457, r24
if(DriftNick <-3000) { DriftNick = 0; AdNeutralNick--;}
8b86: 80 91 be 03 lds r24, 0x03BE
8b8a: 90 91 bf 03 lds r25, 0x03BF
8b8e: 88 34 cpi r24, 0x48 ; 72
8b90: 94 4f sbci r25, 0xF4 ; 244
8b92: 6c f4 brge .+26 ; 0x8bae <MotorRegler+0x1ba2>
8b94: 10 92 bf 03 sts 0x03BF, r1
8b98: 10 92 be 03 sts 0x03BE, r1
8b9c: 80 91 57 04 lds r24, 0x0457
8ba0: 90 91 58 04 lds r25, 0x0458
8ba4: 01 97 sbiw r24, 0x01 ; 1
8ba6: 90 93 58 04 sts 0x0458, r25
8baa: 80 93 57 04 sts 0x0457, r24
if(DriftRoll > 3000) { DriftRoll = 0; AdNeutralRoll++;}
8bae: 80 91 bc 03 lds r24, 0x03BC
8bb2: 90 91 bd 03 lds r25, 0x03BD
8bb6: 89 3b cpi r24, 0xB9 ; 185
8bb8: 9b 40 sbci r25, 0x0B ; 11
8bba: 6c f0 brlt .+26 ; 0x8bd6 <MotorRegler+0x1bca>
8bbc: 10 92 bd 03 sts 0x03BD, r1
8bc0: 10 92 bc 03 sts 0x03BC, r1
8bc4: 80 91 55 04 lds r24, 0x0455
8bc8: 90 91 56 04 lds r25, 0x0456
8bcc: 01 96 adiw r24, 0x01 ; 1
8bce: 90 93 56 04 sts 0x0456, r25
8bd2: 80 93 55 04 sts 0x0455, r24
if(DriftRoll <-3000) { DriftRoll = 0; AdNeutralRoll--;}
8bd6: 80 91 bc 03 lds r24, 0x03BC
8bda: 90 91 bd 03 lds r25, 0x03BD
8bde: 88 34 cpi r24, 0x48 ; 72
8be0: 94 4f sbci r25, 0xF4 ; 244
8be2: 6c f4 brge .+26 ; 0x8bfe <MotorRegler+0x1bf2>
8be4: 10 92 bd 03 sts 0x03BD, r1
8be8: 10 92 bc 03 sts 0x03BC, r1
8bec: 80 91 55 04 lds r24, 0x0455
8bf0: 90 91 56 04 lds r25, 0x0456
8bf4: 01 97 sbiw r24, 0x01 ; 1
8bf6: 90 93 56 04 sts 0x0456, r25
8bfa: 80 93 55 04 sts 0x0455, r24
if(GierGyroFehler > 3500) { GierGyroFehler = 0; AdNeutralGier++; }
8bfe: 80 91 18 04 lds r24, 0x0418
8c02: 90 91 19 04 lds r25, 0x0419
8c06: 8d 3a cpi r24, 0xAD ; 173
8c08: 9d 40 sbci r25, 0x0D ; 13
8c0a: 6c f0 brlt .+26 ; 0x8c26 <MotorRegler+0x1c1a>
8c0c: 10 92 19 04 sts 0x0419, r1
8c10: 10 92 18 04 sts 0x0418, r1
8c14: 80 91 53 04 lds r24, 0x0453
8c18: 90 91 54 04 lds r25, 0x0454
8c1c: 01 96 adiw r24, 0x01 ; 1
8c1e: 90 93 54 04 sts 0x0454, r25
8c22: 80 93 53 04 sts 0x0453, r24
if(GierGyroFehler <-3500) { GierGyroFehler = 0; AdNeutralGier--; }
8c26: 80 91 18 04 lds r24, 0x0418
8c2a: 90 91 19 04 lds r25, 0x0419
8c2e: 84 35 cpi r24, 0x54 ; 84
8c30: 92 4f sbci r25, 0xF2 ; 242
8c32: d4 f4 brge .+52 ; 0x8c68 <MotorRegler+0x1c5c>
8c34: 10 92 19 04 sts 0x0419, r1
8c38: 10 92 18 04 sts 0x0418, r1
8c3c: 80 91 53 04 lds r24, 0x0453
8c40: 90 91 54 04 lds r25, 0x0454
8c44: 01 97 sbiw r24, 0x01 ; 1
8c46: 90 93 54 04 sts 0x0454, r25
8c4a: 80 93 53 04 sts 0x0453, r24
8c4e: 0c c0 rjmp .+24 ; 0x8c68 <MotorRegler+0x1c5c>
}
else
{
DriftNick = 0;
8c50: 10 92 bf 03 sts 0x03BF, r1
8c54: 10 92 be 03 sts 0x03BE, r1
DriftRoll = 0;
8c58: 10 92 bd 03 sts 0x03BD, r1
8c5c: 10 92 bc 03 sts 0x03BC, r1
GierGyroFehler = 0;
8c60: 10 92 19 04 sts 0x0419, r1
8c64: 10 92 18 04 sts 0x0418, r1
}
TrichterFlug = 0;
8c68: 10 92 1a 04 sts 0x041A, r1
LageKorrekturRoll = 0;
LageKorrekturNick = 0;
TrichterFlug = 0;
}
*/
if(!IntegralFaktor) { LageKorrekturRoll = 0; LageKorrekturNick = 0;} // z.B. bei HH
8c6c: 80 91 42 06 lds r24, 0x0642
8c70: 81 11 cpse r24, r1
8c72: 08 c0 rjmp .+16 ; 0x8c84 <MotorRegler+0x1c78>
8c74: 10 92 ed 03 sts 0x03ED, r1
8c78: 10 92 ec 03 sts 0x03EC, r1
8c7c: 10 92 eb 03 sts 0x03EB, r1
8c80: 10 92 ea 03 sts 0x03EA, r1
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
MittelIntegralNick_Alt = MittelIntegralNick;
8c84: 80 91 34 06 lds r24, 0x0634
8c88: 90 91 35 06 lds r25, 0x0635
8c8c: a0 91 36 06 lds r26, 0x0636
8c90: b0 91 37 06 lds r27, 0x0637
8c94: 80 93 92 03 sts 0x0392, r24
8c98: 90 93 93 03 sts 0x0393, r25
8c9c: a0 93 94 03 sts 0x0394, r26
8ca0: b0 93 95 03 sts 0x0395, r27
MittelIntegralRoll_Alt = MittelIntegralRoll;
8ca4: 80 91 3c 06 lds r24, 0x063C
8ca8: 90 91 3d 06 lds r25, 0x063D
8cac: a0 91 3e 06 lds r26, 0x063E
8cb0: b0 91 3f 06 lds r27, 0x063F
8cb4: 80 93 8e 03 sts 0x038E, r24
8cb8: 90 93 8f 03 sts 0x038F, r25
8cbc: a0 93 90 03 sts 0x0390, r26
8cc0: b0 93 91 03 sts 0x0391, r27
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
MittelIntegralNick = 0;
8cc4: 10 92 34 06 sts 0x0634, r1
8cc8: 10 92 35 06 sts 0x0635, r1
8ccc: 10 92 36 06 sts 0x0636, r1
8cd0: 10 92 37 06 sts 0x0637, r1
MittelIntegralRoll = 0;
8cd4: 10 92 3c 06 sts 0x063C, r1
8cd8: 10 92 3d 06 sts 0x063D, r1
8cdc: 10 92 3e 06 sts 0x063E, r1
8ce0: 10 92 3f 06 sts 0x063F, r1
ZaehlMessungen = 0;
8ce4: 10 92 53 03 sts 0x0353, r1
8ce8: 10 92 52 03 sts 0x0352, r1
} // ZaehlMessungen >= ABGLEICH_ANZAHL
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gieren
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(abs(StickGier) > 3) // war 15
8cec: e0 91 10 04 lds r30, 0x0410
8cf0: f0 91 11 04 lds r31, 0x0411
8cf4: df 01 movw r26, r30
8cf6: ff 23 and r31, r31
8cf8: 24 f4 brge .+8 ; 0x8d02 <MotorRegler+0x1cf6>
8cfa: aa 27 eor r26, r26
8cfc: bb 27 eor r27, r27
8cfe: ae 1b sub r26, r30
8d00: bf 0b sbc r27, r31
8d02: a4 30 cpi r26, 0x04 ; 4
8d04: b1 05 cpc r27, r1
8d06: 3c f0 brlt .+14 ; 0x8d16 <MotorRegler+0x1d0a>
{
// KompassSignalSchlecht = 1000;
if(!(Parameter_GlobalConfig & CFG_KOMPASS_FIX))
8d08: 80 91 5c 06 lds r24, 0x065C
8d0c: 84 fd sbrc r24, 4
8d0e: 03 c0 rjmp .+6 ; 0x8d16 <MotorRegler+0x1d0a>
{
NeueKompassRichtungMerken = 50; // eine Sekunde zum Einloggen
8d10: 82 e3 ldi r24, 0x32 ; 50
8d12: 80 93 ee 03 sts 0x03EE, r24
};
}
tmp_int = (long) EE_Parameter.StickGier_P * ((long)StickGier * abs(StickGier)) / 512L; // expo y = ax + bx²
8d16: 10 91 57 05 lds r17, 0x0557
tmp_int += (EE_Parameter.StickGier_P * StickGier) / 4;
if(GasIsZeroCnt > 512) tmp_int = 0; // disable Yawing when Gas-Stick is to Zero
8d1a: 80 91 c5 03 lds r24, 0x03C5
8d1e: 90 91 c6 03 lds r25, 0x03C6
8d22: 81 30 cpi r24, 0x01 ; 1
8d24: 92 40 sbci r25, 0x02 ; 2
8d26: 68 f5 brcc .+90 ; 0x8d82 <MotorRegler+0x1d76>
if(!(Parameter_GlobalConfig & CFG_KOMPASS_FIX))
{
NeueKompassRichtungMerken = 50; // eine Sekunde zum Einloggen
};
}
tmp_int = (long) EE_Parameter.StickGier_P * ((long)StickGier * abs(StickGier)) / 512L; // expo y = ax + bx²
8d28: 9f 01 movw r18, r30
8d2a: 0e 94 ad b1 call 0x1635a ; 0x1635a <__mulhisi3>
8d2e: 9b 01 movw r18, r22
8d30: ac 01 movw r20, r24
8d32: a1 2f mov r26, r17
8d34: b0 e0 ldi r27, 0x00 ; 0
8d36: 0e 94 c8 b1 call 0x16390 ; 0x16390 <__muluhisi3>
8d3a: 6b 01 movw r12, r22
8d3c: 7c 01 movw r14, r24
8d3e: 99 23 and r25, r25
8d40: 34 f4 brge .+12 ; 0x8d4e <MotorRegler+0x1d42>
8d42: 5f ef ldi r21, 0xFF ; 255
8d44: c5 0e add r12, r21
8d46: 51 e0 ldi r21, 0x01 ; 1
8d48: d5 1e adc r13, r21
8d4a: e1 1c adc r14, r1
8d4c: f1 1c adc r15, r1
8d4e: b7 01 movw r22, r14
8d50: a6 01 movw r20, r12
8d52: 03 2e mov r0, r19
8d54: 39 e0 ldi r19, 0x09 ; 9
8d56: 75 95 asr r23
8d58: 67 95 ror r22
8d5a: 57 95 ror r21
8d5c: 47 95 ror r20
8d5e: 3a 95 dec r19
8d60: d1 f7 brne .-12 ; 0x8d56 <MotorRegler+0x1d4a>
8d62: 30 2d mov r19, r0
tmp_int += (EE_Parameter.StickGier_P * StickGier) / 4;
8d64: 1e 9f mul r17, r30
8d66: c0 01 movw r24, r0
8d68: 1f 9f mul r17, r31
8d6a: 90 0d add r25, r0
8d6c: 11 24 eor r1, r1
8d6e: 99 23 and r25, r25
8d70: 0c f4 brge .+2 ; 0x8d74 <MotorRegler+0x1d68>
8d72: 03 96 adiw r24, 0x03 ; 3
8d74: 95 95 asr r25
8d76: 87 95 ror r24
8d78: 95 95 asr r25
8d7a: 87 95 ror r24
8d7c: 48 0f add r20, r24
8d7e: 59 1f adc r21, r25
8d80: 02 c0 rjmp .+4 ; 0x8d86 <MotorRegler+0x1d7a>
if(GasIsZeroCnt > 512) tmp_int = 0; // disable Yawing when Gas-Stick is to Zero
8d82: 40 e0 ldi r20, 0x00 ; 0
8d84: 50 e0 ldi r21, 0x00 ; 0
tmp_int += CompassGierSetpoint;
8d86: 80 91 f0 03 lds r24, 0x03F0
8d8a: 90 91 f1 03 lds r25, 0x03F1
8d8e: 48 0f add r20, r24
8d90: 59 1f adc r21, r25
sollGier = tmp_int;
8d92: 66 27 eor r22, r22
8d94: 57 fd sbrc r21, 7
8d96: 60 95 com r22
8d98: 76 2f mov r23, r22
8d9a: 40 93 9e 03 sts 0x039E, r20
8d9e: 50 93 9f 03 sts 0x039F, r21
8da2: 60 93 a0 03 sts 0x03A0, r22
8da6: 70 93 a1 03 sts 0x03A1, r23
Mess_Integral_Gier -= tmp_int;
8daa: 80 91 2e 04 lds r24, 0x042E
8dae: 90 91 2f 04 lds r25, 0x042F
8db2: a0 91 30 04 lds r26, 0x0430
8db6: b0 91 31 04 lds r27, 0x0431
8dba: 84 1b sub r24, r20
8dbc: 95 0b sbc r25, r21
8dbe: a6 0b sbc r26, r22
8dc0: b7 0b sbc r27, r23
8dc2: 80 93 2e 04 sts 0x042E, r24
8dc6: 90 93 2f 04 sts 0x042F, r25
8dca: a0 93 30 04 sts 0x0430, r26
8dce: b0 93 31 04 sts 0x0431, r27
if(Mess_Integral_Gier > 50000) Mess_Integral_Gier = 50000; // begrenzen
8dd2: 81 35 cpi r24, 0x51 ; 81
8dd4: 63 ec ldi r22, 0xC3 ; 195
8dd6: 96 07 cpc r25, r22
8dd8: a1 05 cpc r26, r1
8dda: b1 05 cpc r27, r1
8ddc: 6c f0 brlt .+26 ; 0x8df8 <MotorRegler+0x1dec>
8dde: 80 e5 ldi r24, 0x50 ; 80
8de0: 93 ec ldi r25, 0xC3 ; 195
8de2: a0 e0 ldi r26, 0x00 ; 0
8de4: b0 e0 ldi r27, 0x00 ; 0
8de6: 80 93 2e 04 sts 0x042E, r24
8dea: 90 93 2f 04 sts 0x042F, r25
8dee: a0 93 30 04 sts 0x0430, r26
8df2: b0 93 31 04 sts 0x0431, r27
8df6: 11 c0 rjmp .+34 ; 0x8e1a <MotorRegler+0x1e0e>
if(Mess_Integral_Gier <-50000) Mess_Integral_Gier =-50000;
8df8: 80 3b cpi r24, 0xB0 ; 176
8dfa: 9c 43 sbci r25, 0x3C ; 60
8dfc: af 4f sbci r26, 0xFF ; 255
8dfe: bf 4f sbci r27, 0xFF ; 255
8e00: 64 f4 brge .+24 ; 0x8e1a <MotorRegler+0x1e0e>
8e02: 80 eb ldi r24, 0xB0 ; 176
8e04: 9c e3 ldi r25, 0x3C ; 60
8e06: af ef ldi r26, 0xFF ; 255
8e08: bf ef ldi r27, 0xFF ; 255
8e0a: 80 93 2e 04 sts 0x042E, r24
8e0e: 90 93 2f 04 sts 0x042F, r25
8e12: a0 93 30 04 sts 0x0430, r26
8e16: b0 93 31 04 sts 0x0431, r27
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Kompass
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(KompassValue >= 0 && (Parameter_GlobalConfig & CFG_KOMPASS_AKTIV))
8e1a: e0 90 4e 01 lds r14, 0x014E
8e1e: f0 90 4f 01 lds r15, 0x014F
8e22: ff 20 and r15, r15
8e24: 0c f4 brge .+2 ; 0x8e28 <MotorRegler+0x1e1c>
8e26: fe c0 rjmp .+508 ; 0x9024 <MotorRegler+0x2018>
8e28: 80 91 5c 06 lds r24, 0x065C
8e2c: 83 ff sbrs r24, 3
8e2e: fa c0 rjmp .+500 ; 0x9024 <MotorRegler+0x2018>
{
if(CalculateCompassTimer-- == 1)
8e30: 80 91 4d 01 lds r24, 0x014D
8e34: 81 30 cpi r24, 0x01 ; 1
8e36: 21 f0 breq .+8 ; 0x8e40 <MotorRegler+0x1e34>
8e38: 81 50 subi r24, 0x01 ; 1
8e3a: 80 93 4d 01 sts 0x014D, r24
8e3e: f6 c0 rjmp .+492 ; 0x902c <MotorRegler+0x2020>
{
int w,v,r,fehler,korrektur; // wird von der SPI-Routine auf 1 gesetzt
CalculateCompassTimer = 13; // falls keine Navi-Daten
8e40: 8d e0 ldi r24, 0x0D ; 13
8e42: 80 93 4d 01 sts 0x014D, r24
// max. Korrekturwert schätzen
w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln
8e46: 80 91 42 04 lds r24, 0x0442
8e4a: 90 91 43 04 lds r25, 0x0443
8e4e: a0 91 44 04 lds r26, 0x0444
8e52: b0 91 45 04 lds r27, 0x0445
8e56: bb 23 and r27, r27
8e58: 24 f4 brge .+8 ; 0x8e62 <MotorRegler+0x1e56>
8e5a: 81 50 subi r24, 0x01 ; 1
8e5c: 9e 4f sbci r25, 0xFE ; 254
8e5e: af 4f sbci r26, 0xFF ; 255
8e60: bf 4f sbci r27, 0xFF ; 255
8e62: 07 2e mov r0, r23
8e64: 79 e0 ldi r23, 0x09 ; 9
8e66: b5 95 asr r27
8e68: a7 95 ror r26
8e6a: 97 95 ror r25
8e6c: 87 95 ror r24
8e6e: 7a 95 dec r23
8e70: d1 f7 brne .-12 ; 0x8e66 <MotorRegler+0x1e5a>
8e72: 70 2d mov r23, r0
8e74: 9c 01 movw r18, r24
8e76: 99 23 and r25, r25
8e78: 24 f4 brge .+8 ; 0x8e82 <MotorRegler+0x1e76>
8e7a: 22 27 eor r18, r18
8e7c: 33 27 eor r19, r19
8e7e: 28 1b sub r18, r24
8e80: 39 0b sbc r19, r25
v = abs(IntegralRoll /512);
8e82: 80 91 3e 04 lds r24, 0x043E
8e86: 90 91 3f 04 lds r25, 0x043F
8e8a: a0 91 40 04 lds r26, 0x0440
8e8e: b0 91 41 04 lds r27, 0x0441
8e92: bb 23 and r27, r27
8e94: 24 f4 brge .+8 ; 0x8e9e <MotorRegler+0x1e92>
8e96: 81 50 subi r24, 0x01 ; 1
8e98: 9e 4f sbci r25, 0xFE ; 254
8e9a: af 4f sbci r26, 0xFF ; 255
8e9c: bf 4f sbci r27, 0xFF ; 255
8e9e: 07 2e mov r0, r23
8ea0: 79 e0 ldi r23, 0x09 ; 9
8ea2: b5 95 asr r27
8ea4: a7 95 ror r26
8ea6: 97 95 ror r25
8ea8: 87 95 ror r24
8eaa: 7a 95 dec r23
8eac: d1 f7 brne .-12 ; 0x8ea2 <MotorRegler+0x1e96>
8eae: 70 2d mov r23, r0
8eb0: 6c 01 movw r12, r24
8eb2: 99 23 and r25, r25
8eb4: 24 f4 brge .+8 ; 0x8ebe <MotorRegler+0x1eb2>
8eb6: cc 24 eor r12, r12
8eb8: dd 24 eor r13, r13
8eba: c8 1a sub r12, r24
8ebc: d9 0a sbc r13, r25
8ebe: c2 16 cp r12, r18
8ec0: d3 06 cpc r13, r19
8ec2: 0c f4 brge .+2 ; 0x8ec6 <MotorRegler+0x1eba>
8ec4: 69 01 movw r12, r18
if(v > w) w = v; // grösste Neigung ermitteln
// korrektur = w / 4 + 1;
korrektur = w / 8 + 2;
ErsatzKompassInGrad = ErsatzKompass/GIER_GRAD_FAKTOR;
8ec6: 80 90 6e 06 lds r8, 0x066E
8eca: 90 90 6f 06 lds r9, 0x066F
8ece: a0 90 70 06 lds r10, 0x0670
8ed2: b0 90 71 06 lds r11, 0x0671
8ed6: 20 91 21 01 lds r18, 0x0121
8eda: 30 91 22 01 lds r19, 0x0122
8ede: 40 91 23 01 lds r20, 0x0123
8ee2: 50 91 24 01 lds r21, 0x0124
8ee6: c5 01 movw r24, r10
8ee8: b4 01 movw r22, r8
8eea: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
8eee: 89 01 movw r16, r18
8ef0: 9a 01 movw r18, r20
8ef2: 10 93 22 06 sts 0x0622, r17
8ef6: 00 93 21 06 sts 0x0621, r16
// Kompassfehlerwert bestimmen
fehler = ((540 + KompassValue - ErsatzKompassInGrad) % 360) - 180;
8efa: 84 ee ldi r24, 0xE4 ; 228
8efc: e8 1a sub r14, r24
8efe: 8d ef ldi r24, 0xFD ; 253
8f00: f8 0a sbc r15, r24
8f02: c7 01 movw r24, r14
8f04: 80 1b sub r24, r16
8f06: 91 0b sbc r25, r17
8f08: 68 e6 ldi r22, 0x68 ; 104
8f0a: 71 e0 ldi r23, 0x01 ; 1
8f0c: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
8f10: 84 5b subi r24, 0xB4 ; 180
8f12: 91 09 sbc r25, r1
// GIER_GRAD_FAKTOR ist ca. 1200
// Kompasswert einloggen
if(NeueKompassRichtungMerken) KompassSollWert = ErsatzKompassInGrad;
8f14: 60 91 ee 03 lds r22, 0x03EE
8f18: 66 23 and r22, r22
8f1a: 21 f0 breq .+8 ; 0x8f24 <MotorRegler+0x1f18>
8f1c: 10 93 1d 04 sts 0x041D, r17
8f20: 00 93 1c 04 sts 0x041C, r16
 
if(KompassSignalSchlecht) KompassSignalSchlecht--;
8f24: 40 91 4a 01 lds r20, 0x014A
8f28: 50 91 4b 01 lds r21, 0x014B
8f2c: 41 15 cp r20, r1
8f2e: 51 05 cpc r21, r1
8f30: 39 f0 breq .+14 ; 0x8f40 <MotorRegler+0x1f34>
8f32: 41 50 subi r20, 0x01 ; 1
8f34: 51 09 sbc r21, r1
8f36: 50 93 4b 01 sts 0x014B, r21
8f3a: 40 93 4a 01 sts 0x014A, r20
8f3e: 13 c0 rjmp .+38 ; 0x8f66 <MotorRegler+0x1f5a>
else
if(w < 25)
8f40: a9 e1 ldi r26, 0x19 ; 25
8f42: ca 16 cp r12, r26
8f44: d1 04 cpc r13, r1
8f46: ac f4 brge .+42 ; 0x8f72 <MotorRegler+0x1f66>
{
GierGyroFehler += fehler;
8f48: 40 91 18 04 lds r20, 0x0418
8f4c: 50 91 19 04 lds r21, 0x0419
8f50: 48 0f add r20, r24
8f52: 59 1f adc r21, r25
8f54: 50 93 19 04 sts 0x0419, r21
8f58: 40 93 18 04 sts 0x0418, r20
if(NeueKompassRichtungMerken) NeueKompassRichtungMerken--;
8f5c: 66 23 and r22, r22
8f5e: 19 f0 breq .+6 ; 0x8f66 <MotorRegler+0x1f5a>
8f60: 61 50 subi r22, 0x01 ; 1
8f62: 60 93 ee 03 sts 0x03EE, r22
}
}
*/
}
// Kompass fusionieren
if(!KompassSignalSchlecht) ErsatzKompass += (fehler * KompassFusion) / korrektur;
8f66: 40 91 4a 01 lds r20, 0x014A
8f6a: 50 91 4b 01 lds r21, 0x014B
8f6e: 45 2b or r20, r21
8f70: 49 f5 brne .+82 ; 0x8fc4 <MotorRegler+0x1fb8>
8f72: 40 91 4c 01 lds r20, 0x014C
8f76: 48 9f mul r20, r24
8f78: f0 01 movw r30, r0
8f7a: 49 9f mul r20, r25
8f7c: f0 0d add r31, r0
8f7e: 11 24 eor r1, r1
// max. Korrekturwert schätzen
w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln
v = abs(IntegralRoll /512);
if(v > w) w = v; // grösste Neigung ermitteln
// korrektur = w / 4 + 1;
korrektur = w / 8 + 2;
8f80: a6 01 movw r20, r12
8f82: dd 20 and r13, r13
8f84: 14 f4 brge .+4 ; 0x8f8a <MotorRegler+0x1f7e>
8f86: 49 5f subi r20, 0xF9 ; 249
8f88: 5f 4f sbci r21, 0xFF ; 255
8f8a: ba 01 movw r22, r20
8f8c: 75 95 asr r23
8f8e: 67 95 ror r22
8f90: 75 95 asr r23
8f92: 67 95 ror r22
8f94: 75 95 asr r23
8f96: 67 95 ror r22
8f98: 6e 5f subi r22, 0xFE ; 254
8f9a: 7f 4f sbci r23, 0xFF ; 255
}
}
*/
}
// Kompass fusionieren
if(!KompassSignalSchlecht) ErsatzKompass += (fehler * KompassFusion) / korrektur;
8f9c: cf 01 movw r24, r30
8f9e: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
8fa2: cb 01 movw r24, r22
8fa4: aa 27 eor r26, r26
8fa6: 97 fd sbrc r25, 7
8fa8: a0 95 com r26
8faa: ba 2f mov r27, r26
8fac: 88 0e add r8, r24
8fae: 99 1e adc r9, r25
8fb0: aa 1e adc r10, r26
8fb2: bb 1e adc r11, r27
8fb4: 80 92 6e 06 sts 0x066E, r8
8fb8: 90 92 6f 06 sts 0x066F, r9
8fbc: a0 92 70 06 sts 0x0670, r10
8fc0: b0 92 71 06 sts 0x0671, r11
// MK Gieren
if(!NeueKompassRichtungMerken)
8fc4: 80 91 ee 03 lds r24, 0x03EE
8fc8: 81 11 cpse r24, r1
8fca: 27 c0 rjmp .+78 ; 0x901a <MotorRegler+0x200e>
{
r = ((540 + (KompassSollWert - ErsatzKompassInGrad)) % 360) - 180;
v = r * (Parameter_KompassWirkung/2); // nach Kompass ausrichten
8fcc: 40 91 37 01 lds r20, 0x0137
8fd0: 46 95 lsr r20
// Kompass fusionieren
if(!KompassSignalSchlecht) ErsatzKompass += (fehler * KompassFusion) / korrektur;
// MK Gieren
if(!NeueKompassRichtungMerken)
{
r = ((540 + (KompassSollWert - ErsatzKompassInGrad)) % 360) - 180;
8fd2: 80 91 1c 04 lds r24, 0x041C
8fd6: 90 91 1d 04 lds r25, 0x041D
8fda: 80 1b sub r24, r16
8fdc: 91 0b sbc r25, r17
8fde: 84 5e subi r24, 0xE4 ; 228
8fe0: 9d 4f sbci r25, 0xFD ; 253
8fe2: 68 e6 ldi r22, 0x68 ; 104
8fe4: 71 e0 ldi r23, 0x01 ; 1
8fe6: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
8fea: 84 5b subi r24, 0xB4 ; 180
8fec: 91 09 sbc r25, r1
v = r * (Parameter_KompassWirkung/2); // nach Kompass ausrichten
8fee: 48 9f mul r20, r24
8ff0: 90 01 movw r18, r0
8ff2: 49 9f mul r20, r25
8ff4: 30 0d add r19, r0
8ff6: 11 24 eor r1, r1
CompassGierSetpoint = v / 16;
8ff8: 33 23 and r19, r19
8ffa: 14 f4 brge .+4 ; 0x9000 <MotorRegler+0x1ff4>
8ffc: 21 5f subi r18, 0xF1 ; 241
8ffe: 3f 4f sbci r19, 0xFF ; 255
9000: 35 95 asr r19
9002: 27 95 ror r18
9004: 35 95 asr r19
9006: 27 95 ror r18
9008: 35 95 asr r19
900a: 27 95 ror r18
900c: 35 95 asr r19
900e: 27 95 ror r18
9010: 30 93 f1 03 sts 0x03F1, r19
9014: 20 93 f0 03 sts 0x03F0, r18
9018: 09 c0 rjmp .+18 ; 0x902c <MotorRegler+0x2020>
}
else CompassGierSetpoint = 0;
901a: 10 92 f1 03 sts 0x03F1, r1
901e: 10 92 f0 03 sts 0x03F0, r1
9022: 04 c0 rjmp .+8 ; 0x902c <MotorRegler+0x2020>
} // CalculateCompassTimer
}
else CompassGierSetpoint = 0;
9024: 10 92 f1 03 sts 0x03F1, r1
9028: 10 92 f0 03 sts 0x03F0, r1
 
//DebugOut.Analog[16] = KompassFusion;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Drehgeschwindigkeit und -winkel zu einem Istwert zusammenfassen
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(TrichterFlug) { SummeRoll = 0; SummeNick = 0;};
902c: 80 91 1a 04 lds r24, 0x041A
9030: 88 23 and r24, r24
9032: 81 f0 breq .+32 ; 0x9054 <MotorRegler+0x2048>
9034: 10 92 22 04 sts 0x0422, r1
9038: 10 92 23 04 sts 0x0423, r1
903c: 10 92 24 04 sts 0x0424, r1
9040: 10 92 25 04 sts 0x0425, r1
9044: 10 92 26 04 sts 0x0426, r1
9048: 10 92 27 04 sts 0x0427, r1
904c: 10 92 28 04 sts 0x0428, r1
9050: 10 92 29 04 sts 0x0429, r1
 
if(!Looping_Nick) IntegralNickMalFaktor = (IntegralNick * IntegralFaktor) / (44000 / STICK_GAIN); else IntegralNickMalFaktor = 0;
9054: 80 91 e7 03 lds r24, 0x03E7
9058: 81 11 cpse r24, r1
905a: 15 c0 rjmp .+42 ; 0x9086 <MotorRegler+0x207a>
905c: a0 91 42 06 lds r26, 0x0642
9060: 20 91 42 04 lds r18, 0x0442
9064: 30 91 43 04 lds r19, 0x0443
9068: 40 91 44 04 lds r20, 0x0444
906c: 50 91 45 04 lds r21, 0x0445
9070: b0 e0 ldi r27, 0x00 ; 0
9072: 0e 94 c8 b1 call 0x16390 ; 0x16390 <__muluhisi3>
9076: 28 ef ldi r18, 0xF8 ; 248
9078: 3a e2 ldi r19, 0x2A ; 42
907a: 40 e0 ldi r20, 0x00 ; 0
907c: 50 e0 ldi r21, 0x00 ; 0
907e: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
9082: 79 01 movw r14, r18
9084: 02 c0 rjmp .+4 ; 0x908a <MotorRegler+0x207e>
9086: e1 2c mov r14, r1
9088: f1 2c mov r15, r1
if(!Looping_Roll) IntegralRollMalFaktor = (IntegralRoll * IntegralFaktor) / (44000 / STICK_GAIN); else IntegralRollMalFaktor = 0;
908a: 80 91 e6 03 lds r24, 0x03E6
908e: 81 11 cpse r24, r1
9090: 15 c0 rjmp .+42 ; 0x90bc <MotorRegler+0x20b0>
9092: a0 91 42 06 lds r26, 0x0642
9096: 20 91 3e 04 lds r18, 0x043E
909a: 30 91 3f 04 lds r19, 0x043F
909e: 40 91 40 04 lds r20, 0x0440
90a2: 50 91 41 04 lds r21, 0x0441
90a6: b0 e0 ldi r27, 0x00 ; 0
90a8: 0e 94 c8 b1 call 0x16390 ; 0x16390 <__muluhisi3>
90ac: 28 ef ldi r18, 0xF8 ; 248
90ae: 3a e2 ldi r19, 0x2A ; 42
90b0: 40 e0 ldi r20, 0x00 ; 0
90b2: 50 e0 ldi r21, 0x00 ; 0
90b4: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
90b8: 59 01 movw r10, r18
90ba: 02 c0 rjmp .+4 ; 0x90c0 <MotorRegler+0x20b4>
90bc: a1 2c mov r10, r1
90be: b1 2c mov r11, r1
 
#define TRIM_MAX 200
if(TrimNick > TRIM_MAX) TrimNick = TRIM_MAX; else if(TrimNick <-TRIM_MAX) TrimNick =-TRIM_MAX;
90c0: 80 91 1e 06 lds r24, 0x061E
90c4: 90 91 1f 06 lds r25, 0x061F
90c8: 89 3c cpi r24, 0xC9 ; 201
90ca: 91 05 cpc r25, r1
90cc: 3c f0 brlt .+14 ; 0x90dc <MotorRegler+0x20d0>
90ce: 88 ec ldi r24, 0xC8 ; 200
90d0: 90 e0 ldi r25, 0x00 ; 0
90d2: 90 93 1f 06 sts 0x061F, r25
90d6: 80 93 1e 06 sts 0x061E, r24
90da: 09 c0 rjmp .+18 ; 0x90ee <MotorRegler+0x20e2>
90dc: 88 33 cpi r24, 0x38 ; 56
90de: 9f 4f sbci r25, 0xFF ; 255
90e0: 34 f4 brge .+12 ; 0x90ee <MotorRegler+0x20e2>
90e2: 88 e3 ldi r24, 0x38 ; 56
90e4: 9f ef ldi r25, 0xFF ; 255
90e6: 90 93 1f 06 sts 0x061F, r25
90ea: 80 93 1e 06 sts 0x061E, r24
if(TrimRoll > TRIM_MAX) TrimRoll = TRIM_MAX; else if(TrimRoll <-TRIM_MAX) TrimRoll =-TRIM_MAX;
90ee: 80 91 25 06 lds r24, 0x0625
90f2: 90 91 26 06 lds r25, 0x0626
90f6: 89 3c cpi r24, 0xC9 ; 201
90f8: 91 05 cpc r25, r1
90fa: 3c f0 brlt .+14 ; 0x910a <MotorRegler+0x20fe>
90fc: 88 ec ldi r24, 0xC8 ; 200
90fe: 90 e0 ldi r25, 0x00 ; 0
9100: 90 93 26 06 sts 0x0626, r25
9104: 80 93 25 06 sts 0x0625, r24
9108: 09 c0 rjmp .+18 ; 0x911c <MotorRegler+0x2110>
910a: 88 33 cpi r24, 0x38 ; 56
910c: 9f 4f sbci r25, 0xFF ; 255
910e: 34 f4 brge .+12 ; 0x911c <MotorRegler+0x2110>
9110: 88 e3 ldi r24, 0x38 ; 56
9112: 9f ef ldi r25, 0xFF ; 255
9114: 90 93 26 06 sts 0x0626, r25
9118: 80 93 25 06 sts 0x0625, r24
 
MesswertNick = IntegralNickMalFaktor + (long)((long)MesswertNick * GyroFaktor + (long)TrimNick * 128L) / (256L / STICK_GAIN);
911c: 40 90 6c 06 lds r4, 0x066C
9120: 51 2c mov r5, r1
9122: 61 2c mov r6, r1
9124: 71 2c mov r7, r1
9126: a0 91 27 06 lds r26, 0x0627
912a: b0 91 28 06 lds r27, 0x0628
912e: a3 01 movw r20, r6
9130: 92 01 movw r18, r4
9132: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
9136: 40 91 1e 06 lds r20, 0x061E
913a: 50 91 1f 06 lds r21, 0x061F
913e: 8a 01 movw r16, r20
9140: 22 27 eor r18, r18
9142: 17 fd sbrc r17, 7
9144: 20 95 com r18
9146: 32 2f mov r19, r18
9148: 00 0f add r16, r16
914a: 11 1f adc r17, r17
914c: 22 1f adc r18, r18
914e: 33 1f adc r19, r19
9150: 00 0f add r16, r16
9152: 11 1f adc r17, r17
9154: 22 1f adc r18, r18
9156: 33 1f adc r19, r19
9158: 00 0f add r16, r16
915a: 11 1f adc r17, r17
915c: 22 1f adc r18, r18
915e: 33 1f adc r19, r19
9160: 00 0f add r16, r16
9162: 11 1f adc r17, r17
9164: 22 1f adc r18, r18
9166: 33 1f adc r19, r19
9168: 00 0f add r16, r16
916a: 11 1f adc r17, r17
916c: 22 1f adc r18, r18
916e: 33 1f adc r19, r19
9170: 00 0f add r16, r16
9172: 11 1f adc r17, r17
9174: 22 1f adc r18, r18
9176: 33 1f adc r19, r19
9178: 00 0f add r16, r16
917a: 11 1f adc r17, r17
917c: 22 1f adc r18, r18
917e: 33 1f adc r19, r19
9180: ab 01 movw r20, r22
9182: bc 01 movw r22, r24
9184: 40 0f add r20, r16
9186: 51 1f adc r21, r17
9188: 62 1f adc r22, r18
918a: 73 1f adc r23, r19
918c: db 01 movw r26, r22
918e: ca 01 movw r24, r20
9190: 77 23 and r23, r23
9192: 1c f4 brge .+6 ; 0x919a <MotorRegler+0x218e>
9194: cf 96 adiw r24, 0x3f ; 63
9196: a1 1d adc r26, r1
9198: b1 1d adc r27, r1
919a: 68 94 set
919c: 15 f8 bld r1, 5
919e: b5 95 asr r27
91a0: a7 95 ror r26
91a2: 97 95 ror r25
91a4: 87 95 ror r24
91a6: 16 94 lsr r1
91a8: d1 f7 brne .-12 ; 0x919e <MotorRegler+0x2192>
91aa: 67 01 movw r12, r14
91ac: c8 0e add r12, r24
91ae: d9 1e adc r13, r25
91b0: d0 92 28 06 sts 0x0628, r13
91b4: c0 92 27 06 sts 0x0627, r12
MesswertRoll = IntegralRollMalFaktor + (long)((long)MesswertRoll * GyroFaktor + (long)TrimRoll * 128L) / (256L / STICK_GAIN);
91b8: a0 91 1c 06 lds r26, 0x061C
91bc: b0 91 1d 06 lds r27, 0x061D
91c0: a3 01 movw r20, r6
91c2: 92 01 movw r18, r4
91c4: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
91c8: 20 91 25 06 lds r18, 0x0625
91cc: 30 91 26 06 lds r19, 0x0626
91d0: 89 01 movw r16, r18
91d2: 22 27 eor r18, r18
91d4: 17 fd sbrc r17, 7
91d6: 20 95 com r18
91d8: 32 2f mov r19, r18
91da: 00 0f add r16, r16
91dc: 11 1f adc r17, r17
91de: 22 1f adc r18, r18
91e0: 33 1f adc r19, r19
91e2: 00 0f add r16, r16
91e4: 11 1f adc r17, r17
91e6: 22 1f adc r18, r18
91e8: 33 1f adc r19, r19
91ea: 00 0f add r16, r16
91ec: 11 1f adc r17, r17
91ee: 22 1f adc r18, r18
91f0: 33 1f adc r19, r19
91f2: 00 0f add r16, r16
91f4: 11 1f adc r17, r17
91f6: 22 1f adc r18, r18
91f8: 33 1f adc r19, r19
91fa: 00 0f add r16, r16
91fc: 11 1f adc r17, r17
91fe: 22 1f adc r18, r18
9200: 33 1f adc r19, r19
9202: 00 0f add r16, r16
9204: 11 1f adc r17, r17
9206: 22 1f adc r18, r18
9208: 33 1f adc r19, r19
920a: 00 0f add r16, r16
920c: 11 1f adc r17, r17
920e: 22 1f adc r18, r18
9210: 33 1f adc r19, r19
9212: dc 01 movw r26, r24
9214: cb 01 movw r24, r22
9216: 80 0f add r24, r16
9218: 91 1f adc r25, r17
921a: a2 1f adc r26, r18
921c: b3 1f adc r27, r19
921e: 8c 01 movw r16, r24
9220: 9d 01 movw r18, r26
9222: bb 23 and r27, r27
9224: 24 f4 brge .+8 ; 0x922e <MotorRegler+0x2222>
9226: 01 5c subi r16, 0xC1 ; 193
9228: 1f 4f sbci r17, 0xFF ; 255
922a: 2f 4f sbci r18, 0xFF ; 255
922c: 3f 4f sbci r19, 0xFF ; 255
922e: 68 94 set
9230: 15 f8 bld r1, 5
9232: 35 95 asr r19
9234: 27 95 ror r18
9236: 17 95 ror r17
9238: 07 95 ror r16
923a: 16 94 lsr r1
923c: d1 f7 brne .-12 ; 0x9232 <MotorRegler+0x2226>
923e: 0a 0d add r16, r10
9240: 1b 1d adc r17, r11
9242: 10 93 1d 06 sts 0x061D, r17
9246: 00 93 1c 06 sts 0x061C, r16
MesswertGier = (long)(MesswertGier * 2 * (long)GyroFaktorGier) / (256L / STICK_GAIN) + (long)(Integral_Gier * IntegralFaktorGier) / (2 * (44000 / STICK_GAIN));
924a: a0 91 67 06 lds r26, 0x0667
924e: b0 91 68 06 lds r27, 0x0668
9252: aa 0f add r26, r26
9254: bb 1f adc r27, r27
9256: 20 91 23 06 lds r18, 0x0623
925a: 30 e0 ldi r19, 0x00 ; 0
925c: 0e 94 c2 b1 call 0x16384 ; 0x16384 <__usmulhisi3>
9260: 2b 01 movw r4, r22
9262: 3c 01 movw r6, r24
9264: 99 23 and r25, r25
9266: 2c f4 brge .+10 ; 0x9272 <MotorRegler+0x2266>
9268: ff e3 ldi r31, 0x3F ; 63
926a: 4f 0e add r4, r31
926c: 51 1c adc r5, r1
926e: 61 1c adc r6, r1
9270: 71 1c adc r7, r1
9272: 68 94 set
9274: 15 f8 bld r1, 5
9276: 75 94 asr r7
9278: 67 94 ror r6
927a: 57 94 ror r5
927c: 47 94 ror r4
927e: 16 94 lsr r1
9280: d1 f7 brne .-12 ; 0x9276 <MotorRegler+0x226a>
9282: a0 91 31 06 lds r26, 0x0631
9286: 20 91 3a 04 lds r18, 0x043A
928a: 30 91 3b 04 lds r19, 0x043B
928e: 40 91 3c 04 lds r20, 0x043C
9292: 50 91 3d 04 lds r21, 0x043D
9296: b0 e0 ldi r27, 0x00 ; 0
9298: 0e 94 c8 b1 call 0x16390 ; 0x16390 <__muluhisi3>
929c: 20 ef ldi r18, 0xF0 ; 240
929e: 35 e5 ldi r19, 0x55 ; 85
92a0: 40 e0 ldi r20, 0x00 ; 0
92a2: 50 e0 ldi r21, 0x00 ; 0
92a4: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
92a8: 24 0d add r18, r4
92aa: 35 1d adc r19, r5
92ac: 30 93 68 06 sts 0x0668, r19
92b0: 20 93 67 06 sts 0x0667, r18
 
// Maximalwerte abfangen
#define MAX_SENSOR (4096)
if(MesswertNick > MAX_SENSOR) MesswertNick = MAX_SENSOR;
92b4: 41 e0 ldi r20, 0x01 ; 1
92b6: c4 16 cp r12, r20
92b8: 40 e1 ldi r20, 0x10 ; 16
92ba: d4 06 cpc r13, r20
92bc: 3c f0 brlt .+14 ; 0x92cc <MotorRegler+0x22c0>
92be: 80 e0 ldi r24, 0x00 ; 0
92c0: 90 e1 ldi r25, 0x10 ; 16
92c2: 90 93 28 06 sts 0x0628, r25
92c6: 80 93 27 06 sts 0x0627, r24
92ca: 0d c0 rjmp .+26 ; 0x92e6 <MotorRegler+0x22da>
if(MesswertNick < -MAX_SENSOR) MesswertNick = -MAX_SENSOR;
92cc: 80 91 27 06 lds r24, 0x0627
92d0: 90 91 28 06 lds r25, 0x0628
92d4: 81 15 cp r24, r1
92d6: 90 4f sbci r25, 0xF0 ; 240
92d8: 34 f4 brge .+12 ; 0x92e6 <MotorRegler+0x22da>
92da: 80 e0 ldi r24, 0x00 ; 0
92dc: 90 ef ldi r25, 0xF0 ; 240
92de: 90 93 28 06 sts 0x0628, r25
92e2: 80 93 27 06 sts 0x0627, r24
if(MesswertRoll > MAX_SENSOR) MesswertRoll = MAX_SENSOR;
92e6: 01 30 cpi r16, 0x01 ; 1
92e8: 10 41 sbci r17, 0x10 ; 16
92ea: 3c f0 brlt .+14 ; 0x92fa <MotorRegler+0x22ee>
92ec: 80 e0 ldi r24, 0x00 ; 0
92ee: 90 e1 ldi r25, 0x10 ; 16
92f0: 90 93 1d 06 sts 0x061D, r25
92f4: 80 93 1c 06 sts 0x061C, r24
92f8: 0d c0 rjmp .+26 ; 0x9314 <MotorRegler+0x2308>
if(MesswertRoll < -MAX_SENSOR) MesswertRoll = -MAX_SENSOR;
92fa: 80 91 1c 06 lds r24, 0x061C
92fe: 90 91 1d 06 lds r25, 0x061D
9302: 81 15 cp r24, r1
9304: 90 4f sbci r25, 0xF0 ; 240
9306: 34 f4 brge .+12 ; 0x9314 <MotorRegler+0x2308>
9308: 80 e0 ldi r24, 0x00 ; 0
930a: 90 ef ldi r25, 0xF0 ; 240
930c: 90 93 1d 06 sts 0x061D, r25
9310: 80 93 1c 06 sts 0x061C, r24
if(MesswertGier > MAX_SENSOR) MesswertGier = MAX_SENSOR;
9314: 21 30 cpi r18, 0x01 ; 1
9316: 30 41 sbci r19, 0x10 ; 16
9318: 3c f0 brlt .+14 ; 0x9328 <MotorRegler+0x231c>
931a: 80 e0 ldi r24, 0x00 ; 0
931c: 90 e1 ldi r25, 0x10 ; 16
931e: 90 93 68 06 sts 0x0668, r25
9322: 80 93 67 06 sts 0x0667, r24
9326: 0d c0 rjmp .+26 ; 0x9342 <MotorRegler+0x2336>
if(MesswertGier < -MAX_SENSOR) MesswertGier = -MAX_SENSOR;
9328: 80 91 67 06 lds r24, 0x0667
932c: 90 91 68 06 lds r25, 0x0668
9330: 81 15 cp r24, r1
9332: 90 4f sbci r25, 0xF0 ; 240
9334: 34 f4 brge .+12 ; 0x9342 <MotorRegler+0x2336>
9336: 80 e0 ldi r24, 0x00 ; 0
9338: 90 ef ldi r25, 0xF0 ; 240
933a: 90 93 68 06 sts 0x0668, r25
933e: 80 93 67 06 sts 0x0667, r24
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Undervoltage
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!(FC_StatusFlags & FC_STATUS_LOWBAT))
9342: 80 91 cb 03 lds r24, 0x03CB
9346: 85 fd sbrc r24, 5
9348: 0e c0 rjmp .+28 ; 0x9366 <MotorRegler+0x235a>
{
GasMischanteil = ((unsigned int)GasMischanteil * BattLowVoltageWarning) / UBat; // Gas auf das aktuelle Spannungvieveau beziehen
934a: 60 91 1a 01 lds r22, 0x011A
934e: 70 91 1b 01 lds r23, 0x011B
9352: 20 91 53 01 lds r18, 0x0153
9356: 22 9d mul r18, r2
9358: c0 01 movw r24, r0
935a: 23 9d mul r18, r3
935c: 90 0d add r25, r0
935e: 11 24 eor r1, r1
9360: 0e 94 42 b1 call 0x16284 ; 0x16284 <__udivmodhi4>
9364: 1b 01 movw r2, r22
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Auto-Landing
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
static unsigned char slower;
if(!slower--)
9366: 80 91 8d 03 lds r24, 0x038D
936a: 9f ef ldi r25, 0xFF ; 255
936c: 98 0f add r25, r24
936e: 90 93 8d 03 sts 0x038D, r25
9372: 81 11 cpse r24, r1
9374: 66 c0 rjmp .+204 ; 0x9442 <MotorRegler+0x2436>
{
static unsigned int u_filter = 0;
if(!u_filter) u_filter = UBat;
9376: 80 91 8b 03 lds r24, 0x038B
937a: 90 91 8c 03 lds r25, 0x038C
937e: 89 2b or r24, r25
9380: 41 f4 brne .+16 ; 0x9392 <MotorRegler+0x2386>
9382: 80 91 1a 01 lds r24, 0x011A
9386: 90 91 1b 01 lds r25, 0x011B
938a: 90 93 8c 03 sts 0x038C, r25
938e: 80 93 8b 03 sts 0x038B, r24
if(UBat > u_filter) u_filter++; else
9392: 20 91 1a 01 lds r18, 0x011A
9396: 30 91 1b 01 lds r19, 0x011B
939a: 80 91 8b 03 lds r24, 0x038B
939e: 90 91 8c 03 lds r25, 0x038C
93a2: 82 17 cp r24, r18
93a4: 93 07 cpc r25, r19
93a6: 30 f4 brcc .+12 ; 0x93b4 <MotorRegler+0x23a8>
93a8: 01 96 adiw r24, 0x01 ; 1
93aa: 90 93 8c 03 sts 0x038C, r25
93ae: 80 93 8b 03 sts 0x038B, r24
93b2: 0c c0 rjmp .+24 ; 0x93cc <MotorRegler+0x23c0>
if(UBat < u_filter) u_filter--;
93b4: 20 91 1a 01 lds r18, 0x011A
93b8: 30 91 1b 01 lds r19, 0x011B
93bc: 28 17 cp r18, r24
93be: 39 07 cpc r19, r25
93c0: 28 f4 brcc .+10 ; 0x93cc <MotorRegler+0x23c0>
93c2: 01 97 sbiw r24, 0x01 ; 1
93c4: 90 93 8c 03 sts 0x038C, r25
93c8: 80 93 8b 03 sts 0x038B, r24
slower = 100; // 5Hz
93cc: 84 e6 ldi r24, 0x64 ; 100
93ce: 80 93 8d 03 sts 0x038D, r24
if(u_filter < BattAutoLandingVoltage)
93d2: 40 91 65 04 lds r20, 0x0465
93d6: 80 91 8b 03 lds r24, 0x038B
93da: 90 91 8c 03 lds r25, 0x038C
93de: 24 2f mov r18, r20
93e0: 30 e0 ldi r19, 0x00 ; 0
93e2: 82 17 cp r24, r18
93e4: 93 07 cpc r25, r19
93e6: 20 f4 brcc .+8 ; 0x93f0 <MotorRegler+0x23e4>
{
LowVoltageLandingActive = 10; // 2 sek
93e8: 2a e0 ldi r18, 0x0A ; 10
93ea: 20 93 c1 03 sts 0x03C1, r18
93ee: 0f c0 rjmp .+30 ; 0x940e <MotorRegler+0x2402>
}
else if(u_filter > BattAutoLandingVoltage + LipoCells && LowVoltageLandingActive) LowVoltageLandingActive--;
93f0: 20 91 51 01 lds r18, 0x0151
93f4: 30 e0 ldi r19, 0x00 ; 0
93f6: 24 0f add r18, r20
93f8: 31 1d adc r19, r1
93fa: 28 17 cp r18, r24
93fc: 39 07 cpc r19, r25
93fe: 38 f4 brcc .+14 ; 0x940e <MotorRegler+0x2402>
9400: 20 91 c1 03 lds r18, 0x03C1
9404: 22 23 and r18, r18
9406: 19 f0 breq .+6 ; 0x940e <MotorRegler+0x2402>
9408: 21 50 subi r18, 0x01 ; 1
940a: 20 93 c1 03 sts 0x03C1, r18
 
if(u_filter < BattComingHomeVoltage)
940e: 40 91 64 04 lds r20, 0x0464
9412: 24 2f mov r18, r20
9414: 30 e0 ldi r19, 0x00 ; 0
9416: 82 17 cp r24, r18
9418: 93 07 cpc r25, r19
941a: 20 f4 brcc .+8 ; 0x9424 <MotorRegler+0x2418>
{
LowVoltageHomeActive = 25; // min. 5 sek
941c: 89 e1 ldi r24, 0x19 ; 25
941e: 80 93 c0 03 sts 0x03C0, r24
9422: 0f c0 rjmp .+30 ; 0x9442 <MotorRegler+0x2436>
}
else if(u_filter > BattComingHomeVoltage + LipoCells && LowVoltageHomeActive) LowVoltageHomeActive--;
9424: 20 91 51 01 lds r18, 0x0151
9428: 30 e0 ldi r19, 0x00 ; 0
942a: 24 0f add r18, r20
942c: 31 1d adc r19, r1
942e: 28 17 cp r18, r24
9430: 39 07 cpc r19, r25
9432: 38 f4 brcc .+14 ; 0x9442 <MotorRegler+0x2436>
9434: 80 91 c0 03 lds r24, 0x03C0
9438: 88 23 and r24, r24
943a: 19 f0 breq .+6 ; 0x9442 <MotorRegler+0x2436>
943c: 81 50 subi r24, 0x01 ; 1
943e: 80 93 c0 03 sts 0x03C0, r24
}
if(LowVoltageLandingActive && FromNC_AltitudeSetpoint >= 0)
9442: 80 91 c1 03 lds r24, 0x03C1
9446: 88 23 and r24, r24
9448: d1 f0 breq .+52 ; 0x947e <MotorRegler+0x2472>
944a: 80 91 f4 03 lds r24, 0x03F4
944e: 90 91 f5 03 lds r25, 0x03F5
9452: a0 91 f6 03 lds r26, 0x03F6
9456: b0 91 f7 03 lds r27, 0x03F7
945a: bb 23 and r27, r27
945c: 84 f0 brlt .+32 ; 0x947e <MotorRegler+0x2472>
{
FromNC_AltitudeSpeed = EE_Parameter.LandingSpeed;
945e: 80 91 b0 05 lds r24, 0x05B0
9462: 80 93 f3 03 sts 0x03F3, r24
FromNC_AltitudeSetpoint = -20000;
9466: 80 ee ldi r24, 0xE0 ; 224
9468: 91 eb ldi r25, 0xB1 ; 177
946a: af ef ldi r26, 0xFF ; 255
946c: bf ef ldi r27, 0xFF ; 255
946e: 80 93 f4 03 sts 0x03F4, r24
9472: 90 93 f5 03 sts 0x03F5, r25
9476: a0 93 f6 03 sts 0x03F6, r26
947a: b0 93 f7 03 sts 0x03F7, r27
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// send SPI pending bytes
if(BytegapSPI == 0) SPI_TransmitByte();
947e: 80 91 cc 04 lds r24, 0x04CC
9482: 81 11 cpse r24, r1
9484: 02 c0 rjmp .+4 ; 0x948a <MotorRegler+0x247e>
9486: 0e 94 de 95 call 0x12bbc ; 0x12bbc <SPI_TransmitByte>
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Höhenregelung
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GasMischanteil *= STICK_GAIN;
948a: 22 0c add r2, r2
948c: 33 1c adc r3, r3
948e: 22 0c add r2, r2
9490: 33 1c adc r3, r3
// if height control is activated
if((Parameter_GlobalConfig & CFG_HOEHENREGELUNG) && !(Looping_Roll || Looping_Nick) && !(VersionInfo.HardwareError[0] & 0x7F)) // Höhenregelung
9492: 80 91 5c 06 lds r24, 0x065C
9496: 80 fd sbrc r24, 0
9498: 02 c0 rjmp .+4 ; 0x949e <MotorRegler+0x2492>
949a: 0c 94 b7 54 jmp 0xa96e ; 0xa96e <MotorRegler+0x3962>
949e: 80 91 e6 03 lds r24, 0x03E6
94a2: 81 11 cpse r24, r1
94a4: 0c 94 b7 54 jmp 0xa96e ; 0xa96e <MotorRegler+0x3962>
94a8: 80 91 e7 03 lds r24, 0x03E7
94ac: 81 11 cpse r24, r1
94ae: 0c 94 b7 54 jmp 0xa96e ; 0xa96e <MotorRegler+0x3962>
94b2: 80 91 62 0a lds r24, 0x0A62
94b6: 8f 77 andi r24, 0x7F ; 127
94b8: 11 f0 breq .+4 ; 0x94be <MotorRegler+0x24b2>
94ba: 0c 94 b7 54 jmp 0xa96e ; 0xa96e <MotorRegler+0x3962>
static int HeightDeviation = 0, FilterHCGas = 0;
static unsigned long HoverGasFilter = 0;
static unsigned char delay = 100, BaroAtUpperLimit = 0, BaroAtLowerLimit = 0;
// Expand the measurement
// measurement of air pressure close to upper limit and no overflow in correction of the new OCR0A value occurs
if(!BaroExpandActive)
94be: 80 91 59 04 lds r24, 0x0459
94c2: 90 91 5a 04 lds r25, 0x045A
94c6: 89 2b or r24, r25
94c8: 09 f0 breq .+2 ; 0x94cc <MotorRegler+0x24c0>
94ca: 5f c0 rjmp .+190 ; 0x958a <MotorRegler+0x257e>
{
if(MessLuftdruck > 920)
94cc: 80 91 10 01 lds r24, 0x0110
94d0: 90 91 11 01 lds r25, 0x0111
94d4: 89 39 cpi r24, 0x99 ; 153
94d6: 93 40 sbci r25, 0x03 ; 3
94d8: 30 f1 brcs .+76 ; 0x9526 <MotorRegler+0x251a>
{ // increase offset
if(OCR0A < (255 - OPA_OFFSET_STEP))
94da: 87 b5 in r24, 0x27 ; 39
94dc: 8a 3f cpi r24, 0xFA ; 250
94de: f8 f4 brcc .+62 ; 0x951e <MotorRegler+0x2512>
{
ExpandBaro -= 1;
94e0: 80 91 56 03 lds r24, 0x0356
94e4: 81 50 subi r24, 0x01 ; 1
94e6: 80 93 56 03 sts 0x0356, r24
OCR0A = DruckOffsetSetting - OPA_OFFSET_STEP * ExpandBaro; // increase offset to shift ADC down
94ea: 98 2f mov r25, r24
94ec: 99 0f add r25, r25
94ee: 99 0f add r25, r25
94f0: 89 0f add r24, r25
94f2: 90 91 12 05 lds r25, 0x0512
94f6: 98 1b sub r25, r24
94f8: 97 bd out 0x27, r25 ; 39
OCR0B = 255 - OCR0A;
94fa: 87 b5 in r24, 0x27 ; 39
94fc: 80 95 com r24
94fe: 88 bd out 0x28, r24 ; 40
beeptime = 300;
9500: 8c e2 ldi r24, 0x2C ; 44
9502: 91 e0 ldi r25, 0x01 ; 1
9504: 90 93 ce 04 sts 0x04CE, r25
9508: 80 93 cd 04 sts 0x04CD, r24
BaroExpandActive = 350;
950c: 8e e5 ldi r24, 0x5E ; 94
950e: 91 e0 ldi r25, 0x01 ; 1
9510: 90 93 5a 04 sts 0x045A, r25
9514: 80 93 59 04 sts 0x0459, r24
CalcExpandBaroStep();
9518: 0e 94 14 1b call 0x3628 ; 0x3628 <CalcExpandBaroStep>
951c: 6b c0 rjmp .+214 ; 0x95f4 <MotorRegler+0x25e8>
}
else
{
BaroAtLowerLimit = 1;
951e: 81 e0 ldi r24, 0x01 ; 1
9520: 80 93 8a 03 sts 0x038A, r24
9524: 67 c0 rjmp .+206 ; 0x95f4 <MotorRegler+0x25e8>
}
}
// measurement of air pressure close to lower limit and
else
if(MessLuftdruck < 100)
9526: 80 91 10 01 lds r24, 0x0110
952a: 90 91 11 01 lds r25, 0x0111
952e: 84 36 cpi r24, 0x64 ; 100
9530: 91 05 cpc r25, r1
9532: 30 f5 brcc .+76 ; 0x9580 <MotorRegler+0x2574>
{ // decrease offset
if(OCR0A > OPA_OFFSET_STEP)
9534: 87 b5 in r24, 0x27 ; 39
9536: 86 30 cpi r24, 0x06 ; 6
9538: f8 f0 brcs .+62 ; 0x9578 <MotorRegler+0x256c>
{
ExpandBaro += 1;
953a: 80 91 56 03 lds r24, 0x0356
953e: 8f 5f subi r24, 0xFF ; 255
9540: 80 93 56 03 sts 0x0356, r24
OCR0A = DruckOffsetSetting - OPA_OFFSET_STEP * ExpandBaro; // decrease offset to shift ADC up
9544: 98 2f mov r25, r24
9546: 99 0f add r25, r25
9548: 99 0f add r25, r25
954a: 89 0f add r24, r25
954c: 90 91 12 05 lds r25, 0x0512
9550: 98 1b sub r25, r24
9552: 97 bd out 0x27, r25 ; 39
OCR0B = 255 - OCR0A;
9554: 87 b5 in r24, 0x27 ; 39
9556: 80 95 com r24
9558: 88 bd out 0x28, r24 ; 40
beeptime = 300;
955a: 8c e2 ldi r24, 0x2C ; 44
955c: 91 e0 ldi r25, 0x01 ; 1
955e: 90 93 ce 04 sts 0x04CE, r25
9562: 80 93 cd 04 sts 0x04CD, r24
BaroExpandActive = 350;
9566: 8e e5 ldi r24, 0x5E ; 94
9568: 91 e0 ldi r25, 0x01 ; 1
956a: 90 93 5a 04 sts 0x045A, r25
956e: 80 93 59 04 sts 0x0459, r24
CalcExpandBaroStep();
9572: 0e 94 14 1b call 0x3628 ; 0x3628 <CalcExpandBaroStep>
9576: 3e c0 rjmp .+124 ; 0x95f4 <MotorRegler+0x25e8>
}
else
{
BaroAtUpperLimit = 1;
9578: 81 e0 ldi r24, 0x01 ; 1
957a: 80 93 89 03 sts 0x0389, r24
957e: 3a c0 rjmp .+116 ; 0x95f4 <MotorRegler+0x25e8>
}
}
else
{
BaroAtUpperLimit = 0;
9580: 10 92 89 03 sts 0x0389, r1
BaroAtLowerLimit = 0;
9584: 10 92 8a 03 sts 0x038A, r1
9588: 35 c0 rjmp .+106 ; 0x95f4 <MotorRegler+0x25e8>
}
}
else // delay, because of expanding the Baro-Range
{
// now clear the D-values
VarioMeter = 0;
958a: 10 92 55 03 sts 0x0355, r1
958e: 10 92 54 03 sts 0x0354, r1
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(ACC_AltitudeControl) ACC_AltitudeFusion(1); // init
9592: 80 91 c2 03 lds r24, 0x03C2
9596: 88 23 and r24, r24
9598: 21 f0 breq .+8 ; 0x95a2 <MotorRegler+0x2596>
959a: 81 e0 ldi r24, 0x01 ; 1
959c: 0e 94 a0 16 call 0x2d40 ; 0x2d40 <ACC_AltitudeFusion>
95a0: 20 c0 rjmp .+64 ; 0x95e2 <MotorRegler+0x25d6>
else SummenHoehe = HoehenWert * SM_FILTER;
95a2: 80 91 fe 03 lds r24, 0x03FE
95a6: 90 91 ff 03 lds r25, 0x03FF
95aa: a0 91 00 04 lds r26, 0x0400
95ae: b0 91 01 04 lds r27, 0x0401
95b2: 88 0f add r24, r24
95b4: 99 1f adc r25, r25
95b6: aa 1f adc r26, r26
95b8: bb 1f adc r27, r27
95ba: 88 0f add r24, r24
95bc: 99 1f adc r25, r25
95be: aa 1f adc r26, r26
95c0: bb 1f adc r27, r27
95c2: 88 0f add r24, r24
95c4: 99 1f adc r25, r25
95c6: aa 1f adc r26, r26
95c8: bb 1f adc r27, r27
95ca: 88 0f add r24, r24
95cc: 99 1f adc r25, r25
95ce: aa 1f adc r26, r26
95d0: bb 1f adc r27, r27
95d2: 80 93 57 03 sts 0x0357, r24
95d6: 90 93 58 03 sts 0x0358, r25
95da: a0 93 59 03 sts 0x0359, r26
95de: b0 93 5a 03 sts 0x035A, r27
#else
SummenHoehe = HoehenWert * SM_FILTER;
#endif
BaroExpandActive--;
95e2: 80 91 59 04 lds r24, 0x0459
95e6: 90 91 5a 04 lds r25, 0x045A
95ea: 01 97 sbiw r24, 0x01 ; 1
95ec: 90 93 5a 04 sts 0x045A, r25
95f0: 80 93 59 04 sts 0x0459, r24
}
// if height control is activated by an rc channel
if(Parameter_GlobalConfig & CFG_HOEHEN_SCHALTER) // Regler wird über Schalter gesteuert
95f4: 80 91 5c 06 lds r24, 0x065C
95f8: 81 ff sbrs r24, 1
95fa: 41 c0 rjmp .+130 ; 0x967e <MotorRegler+0x2672>
{ // check if parameter is less than activation threshold
if(Parameter_HoehenSchalter < 50) // for 3 or 2-state switch height control is disabled in lowest position
95fc: 80 91 e1 03 lds r24, 0x03E1
9600: 82 33 cpi r24, 0x32 ; 50
9602: 48 f5 brcc .+82 ; 0x9656 <MotorRegler+0x264a>
{ //height control not active
if(!delay--)
9604: 80 91 1c 01 lds r24, 0x011C
9608: 9f ef ldi r25, 0xFF ; 255
960a: 98 0f add r25, r24
960c: 90 93 1c 01 sts 0x011C, r25
9610: 81 11 cpse r24, r1
9612: 53 c0 rjmp .+166 ; 0x96ba <MotorRegler+0x26ae>
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(!SpeakHoTT && HoehenReglerAktiv) SpeakHoTT = SPEAK_ALTITUDE_OFF;
9614: 80 91 57 01 lds r24, 0x0157
9618: 81 11 cpse r24, r1
961a: 07 c0 rjmp .+14 ; 0x962a <MotorRegler+0x261e>
961c: 80 91 1b 04 lds r24, 0x041B
9620: 88 23 and r24, r24
9622: 19 f0 breq .+6 ; 0x962a <MotorRegler+0x261e>
9624: 88 e2 ldi r24, 0x28 ; 40
9626: 80 93 57 01 sts 0x0157, r24
#endif
HoehenReglerAktiv = 0; // disable height control
962a: 10 92 1b 04 sts 0x041B, r1
SollHoehe = HoehenWert; // update SetPoint with current reading
962e: 80 91 fe 03 lds r24, 0x03FE
9632: 90 91 ff 03 lds r25, 0x03FF
9636: a0 91 00 04 lds r26, 0x0400
963a: b0 91 01 04 lds r27, 0x0401
963e: 80 93 fa 03 sts 0x03FA, r24
9642: 90 93 fb 03 sts 0x03FB, r25
9646: a0 93 fc 03 sts 0x03FC, r26
964a: b0 93 fd 03 sts 0x03FD, r27
delay = 1;
964e: 81 e0 ldi r24, 0x01 ; 1
9650: 80 93 1c 01 sts 0x011C, r24
9654: 32 c0 rjmp .+100 ; 0x96ba <MotorRegler+0x26ae>
}
}
else
if(Parameter_HoehenSchalter > 70)
9656: 87 34 cpi r24, 0x47 ; 71
9658: 80 f1 brcs .+96 ; 0x96ba <MotorRegler+0x26ae>
{ //height control is activated
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(!SpeakHoTT && !HoehenReglerAktiv) SpeakHoTT = SPEAK_ALTITUDE_ON;
965a: 80 91 57 01 lds r24, 0x0157
965e: 81 11 cpse r24, r1
9660: 07 c0 rjmp .+14 ; 0x9670 <MotorRegler+0x2664>
9662: 80 91 1b 04 lds r24, 0x041B
9666: 81 11 cpse r24, r1
9668: 03 c0 rjmp .+6 ; 0x9670 <MotorRegler+0x2664>
966a: 87 e2 ldi r24, 0x27 ; 39
966c: 80 93 57 01 sts 0x0157, r24
#endif
delay = 200;
9670: 88 ec ldi r24, 0xC8 ; 200
9672: 80 93 1c 01 sts 0x011C, r24
HoehenReglerAktiv = 1; // enable height control
9676: 81 e0 ldi r24, 0x01 ; 1
9678: 80 93 1b 04 sts 0x041B, r24
967c: 1e c0 rjmp .+60 ; 0x96ba <MotorRegler+0x26ae>
}
}
else // no switchable height control
{
SollHoehe = ((int16_t) ExternHoehenValue + (int16_t) Parameter_HoehenSchalter) * (int)EE_Parameter.Hoehe_Verstaerkung;
967e: 80 91 e1 03 lds r24, 0x03E1
9682: 20 91 25 01 lds r18, 0x0125
9686: 30 91 26 01 lds r19, 0x0126
968a: 28 0f add r18, r24
968c: 31 1d adc r19, r1
968e: 40 91 50 05 lds r20, 0x0550
9692: 42 9f mul r20, r18
9694: c0 01 movw r24, r0
9696: 43 9f mul r20, r19
9698: 90 0d add r25, r0
969a: 11 24 eor r1, r1
969c: aa 27 eor r26, r26
969e: 97 fd sbrc r25, 7
96a0: a0 95 com r26
96a2: ba 2f mov r27, r26
96a4: 80 93 fa 03 sts 0x03FA, r24
96a8: 90 93 fb 03 sts 0x03FB, r25
96ac: a0 93 fc 03 sts 0x03FC, r26
96b0: b0 93 fd 03 sts 0x03FD, r27
HoehenReglerAktiv = 1;
96b4: 81 e0 ldi r24, 0x01 ; 1
96b6: 80 93 1b 04 sts 0x041B, r24
}
// calculate cos of nick and roll angle used for projection of the vertical hoover gas
tmp_int = (int)(IntegralNick/GIER_GRAD_FAKTOR); // nick angle in deg
96ba: 40 90 21 01 lds r4, 0x0121
96be: 50 90 22 01 lds r5, 0x0122
96c2: 60 90 23 01 lds r6, 0x0123
96c6: 70 90 24 01 lds r7, 0x0124
tmp_int2 = (int)(IntegralRoll/GIER_GRAD_FAKTOR); // roll angle in deg
96ca: 60 91 3e 04 lds r22, 0x043E
96ce: 70 91 3f 04 lds r23, 0x043F
96d2: 80 91 40 04 lds r24, 0x0440
96d6: 90 91 41 04 lds r25, 0x0441
96da: a3 01 movw r20, r6
96dc: 92 01 movw r18, r4
96de: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
96e2: 2d 83 std Y+5, r18 ; 0x05
96e4: 3e 83 std Y+6, r19 ; 0x06
96e6: 4f 83 std Y+7, r20 ; 0x07
96e8: 58 87 std Y+8, r21 ; 0x08
{
SollHoehe = ((int16_t) ExternHoehenValue + (int16_t) Parameter_HoehenSchalter) * (int)EE_Parameter.Hoehe_Verstaerkung;
HoehenReglerAktiv = 1;
}
// calculate cos of nick and roll angle used for projection of the vertical hoover gas
tmp_int = (int)(IntegralNick/GIER_GRAD_FAKTOR); // nick angle in deg
96ea: 60 91 42 04 lds r22, 0x0442
96ee: 70 91 43 04 lds r23, 0x0443
96f2: 80 91 44 04 lds r24, 0x0444
96f6: 90 91 45 04 lds r25, 0x0445
96fa: a3 01 movw r20, r6
96fc: 92 01 movw r18, r4
96fe: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
tmp_int2 = (int)(IntegralRoll/GIER_GRAD_FAKTOR); // roll angle in deg
tmp_int = (int16_t)ihypot(tmp_int, tmp_int2); // phytagoras gives effective attitude angle in deg
9702: 6d 81 ldd r22, Y+5 ; 0x05
9704: 7e 81 ldd r23, Y+6 ; 0x06
9706: c9 01 movw r24, r18
9708: 0e 94 a2 0d call 0x1b44 ; 0x1b44 <ihypot>
tmp_int = (tmp_int * Parameter_Hoehe_TiltCompensation) / 100;
970c: 20 91 36 01 lds r18, 0x0136
9710: fc 01 movw r30, r24
9712: 2e 9f mul r18, r30
9714: c0 01 movw r24, r0
9716: 2f 9f mul r18, r31
9718: 90 0d add r25, r0
971a: 11 24 eor r1, r1
971c: 64 e6 ldi r22, 0x64 ; 100
971e: 70 e0 ldi r23, 0x00 ; 0
9720: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
9724: cb 01 movw r24, r22
LIMIT_MAX(tmp_int, 60); // limit effective attitude angle
9726: 6c 33 cpi r22, 0x3C ; 60
9728: 71 05 cpc r23, r1
972a: 14 f0 brlt .+4 ; 0x9730 <MotorRegler+0x2724>
972c: 8c e3 ldi r24, 0x3C ; 60
972e: 90 e0 ldi r25, 0x00 ; 0
CosAttitude = c_cos_8192(tmp_int); // cos of actual attitude
9730: 0e 94 2d 91 call 0x1225a ; 0x1225a <c_cos_8192>
9734: 90 93 2e 06 sts 0x062E, r25
9738: 80 93 2d 06 sts 0x062D, r24
VarioCharacter = ' ';
973c: 80 e2 ldi r24, 0x20 ; 32
973e: 80 93 20 01 sts 0x0120, r24
AltitudeSetpointTrimming = 0;
9742: 10 92 f9 03 sts 0x03F9, r1
9746: 10 92 f8 03 sts 0x03F8, r1
if(HoehenReglerAktiv && !(FC_StatusFlags & FC_STATUS_EMERGENCY_LANDING))
974a: 80 91 1b 04 lds r24, 0x041B
974e: 88 23 and r24, r24
9750: 09 f4 brne .+2 ; 0x9754 <MotorRegler+0x2748>
9752: b5 c7 rjmp .+3946 ; 0xa6be <MotorRegler+0x36b2>
9754: 80 91 cb 03 lds r24, 0x03CB
9758: 84 fd sbrc r24, 4
975a: b1 c7 rjmp .+3938 ; 0xa6be <MotorRegler+0x36b2>
// Holger original version
// start of height control algorithm
// the height control is only an attenuation of the actual gas stick.
// I.e. it will work only if the gas stick is higher than the hover gas
// and the hover height will be allways larger than height setpoint.
FC_StatusFlags2 |= FC_STATUS2_ALTITUDE_CONTROL;
975c: 80 91 ca 03 lds r24, 0x03CA
9760: 82 60 ori r24, 0x02 ; 2
9762: 80 93 ca 03 sts 0x03CA, r24
if((Parameter_ExtraConfig & CFG2_HEIGHT_LIMIT) || !(Parameter_GlobalConfig & CFG_HOEHEN_SCHALTER)) // Regler wird über Schalter gesteuert)
9766: e0 91 40 06 lds r30, 0x0640
976a: e0 fd sbrc r30, 0
976c: 04 c0 rjmp .+8 ; 0x9776 <MotorRegler+0x276a>
976e: 80 91 5c 06 lds r24, 0x065C
9772: 81 fd sbrc r24, 1
9774: 0b c0 rjmp .+22 ; 0x978c <MotorRegler+0x2780>
{ // old version
HCGas = GasMischanteil; // take current stick gas as neutral point for the height control
HeightTrimming = 0;
9776: 10 92 88 03 sts 0x0388, r1
977a: 10 92 87 03 sts 0x0387, r1
AltitudeSetpointTrimming = 0;
// set both flags to indicate no vario mode
FC_StatusFlags |= (FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN);
977e: 80 91 cb 03 lds r24, 0x03CB
9782: 80 6c ori r24, 0xC0 ; 192
9784: 80 93 cb 03 sts 0x03CB, r24
// I.e. it will work only if the gas stick is higher than the hover gas
// and the hover height will be allways larger than height setpoint.
FC_StatusFlags2 |= FC_STATUS2_ALTITUDE_CONTROL;
if((Parameter_ExtraConfig & CFG2_HEIGHT_LIMIT) || !(Parameter_GlobalConfig & CFG_HOEHEN_SCHALTER)) // Regler wird über Schalter gesteuert)
{ // old version
HCGas = GasMischanteil; // take current stick gas as neutral point for the height control
9788: f1 01 movw r30, r2
HeightTrimming = 0;
AltitudeSetpointTrimming = 0;
// set both flags to indicate no vario mode
FC_StatusFlags |= (FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN);
978a: 20 c3 rjmp .+1600 ; 0x9dcc <MotorRegler+0x2dc0>
{
// alternative height control
// PD-Control with respect to hoover point
// the thrust loss out of horizontal attitude is compensated
// the setpoint will be fine adjusted with the gas stick position
if(/*1 || */FC_StatusFlags & FC_STATUS_FLY) // trim setpoint only when flying
978c: 80 91 cb 03 lds r24, 0x03CB
9790: 81 ff sbrs r24, 1
9792: ea c2 rjmp .+1492 ; 0x9d68 <MotorRegler+0x2d5c>
{ // gas stick is above hoover point
if(StickGas > (StickGasHover + HEIGHT_CONTROL_STICKTHRESHOLD) && !BaroAtUpperLimit)
9794: 00 91 0e 04 lds r16, 0x040E
9798: 10 91 0f 04 lds r17, 0x040F
979c: c0 90 40 01 lds r12, 0x0140
97a0: d0 90 41 01 lds r13, 0x0141
97a4: c6 01 movw r24, r12
97a6: 0f 96 adiw r24, 0x0f ; 15
97a8: 80 17 cp r24, r16
97aa: 91 07 cpc r25, r17
97ac: 08 f0 brcs .+2 ; 0x97b0 <MotorRegler+0x27a4>
97ae: 93 c0 rjmp .+294 ; 0x98d6 <MotorRegler+0x28ca>
97b0: 80 91 89 03 lds r24, 0x0389
97b4: 81 11 cpse r24, r1
97b6: 8f c0 rjmp .+286 ; 0x98d6 <MotorRegler+0x28ca>
{
if(FC_StatusFlags & FC_STATUS_VARIO_TRIM_DOWN)
97b8: 80 91 cb 03 lds r24, 0x03CB
97bc: 88 23 and r24, r24
97be: ac f4 brge .+42 ; 0x97ea <MotorRegler+0x27de>
{
FC_StatusFlags &= ~FC_STATUS_VARIO_TRIM_DOWN;
97c0: 80 91 cb 03 lds r24, 0x03CB
97c4: 8f 77 andi r24, 0x7F ; 127
97c6: 80 93 cb 03 sts 0x03CB, r24
SollHoehe = HoehenWertF; // update setpoint to current heigth
97ca: 80 91 4a 03 lds r24, 0x034A
97ce: 90 91 4b 03 lds r25, 0x034B
97d2: a0 91 4c 03 lds r26, 0x034C
97d6: b0 91 4d 03 lds r27, 0x034D
97da: 80 93 fa 03 sts 0x03FA, r24
97de: 90 93 fb 03 sts 0x03FB, r25
97e2: a0 93 fc 03 sts 0x03FC, r26
97e6: b0 93 fd 03 sts 0x03FD, r27
}
// Limit the maximum Altitude
if(Parameter_MaximumAltitude && (SollHoehe/100 > Parameter_MaximumAltitude))
97ea: 40 90 24 06 lds r4, 0x0624
97ee: 44 20 and r4, r4
97f0: a1 f1 breq .+104 ; 0x985a <MotorRegler+0x284e>
97f2: 51 2c mov r5, r1
97f4: 61 2c mov r6, r1
97f6: 71 2c mov r7, r1
97f8: 60 91 fa 03 lds r22, 0x03FA
97fc: 70 91 fb 03 lds r23, 0x03FB
9800: 80 91 fc 03 lds r24, 0x03FC
9804: 90 91 fd 03 lds r25, 0x03FD
9808: 24 e6 ldi r18, 0x64 ; 100
980a: 30 e0 ldi r19, 0x00 ; 0
980c: 40 e0 ldi r20, 0x00 ; 0
980e: 50 e0 ldi r21, 0x00 ; 0
9810: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
9814: 42 16 cp r4, r18
9816: 53 06 cpc r5, r19
9818: 64 06 cpc r6, r20
981a: 75 06 cpc r7, r21
981c: f4 f4 brge .+60 ; 0x985a <MotorRegler+0x284e>
{
AltitudeSetpointTrimming = 0;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(!SpeakHoTT && HoehenWert/95 > Parameter_MaximumAltitude) SpeakHoTT = SPEAK_MAX_ALTITUD;
981e: 80 91 57 01 lds r24, 0x0157
9822: 81 11 cpse r24, r1
9824: 16 c0 rjmp .+44 ; 0x9852 <MotorRegler+0x2846>
9826: 60 91 fe 03 lds r22, 0x03FE
982a: 70 91 ff 03 lds r23, 0x03FF
982e: 80 91 00 04 lds r24, 0x0400
9832: 90 91 01 04 lds r25, 0x0401
9836: 2f e5 ldi r18, 0x5F ; 95
9838: 30 e0 ldi r19, 0x00 ; 0
983a: 40 e0 ldi r20, 0x00 ; 0
983c: 50 e0 ldi r21, 0x00 ; 0
983e: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
9842: 42 16 cp r4, r18
9844: 53 06 cpc r5, r19
9846: 64 06 cpc r6, r20
9848: 75 06 cpc r7, r21
984a: 1c f4 brge .+6 ; 0x9852 <MotorRegler+0x2846>
984c: 8a e1 ldi r24, 0x1A ; 26
984e: 80 93 57 01 sts 0x0157, r24
#endif
VarioCharacter = '=';
9852: 8d e3 ldi r24, 0x3D ; 61
9854: 80 93 20 01 sts 0x0120, r24
9858: 3b c0 rjmp .+118 ; 0x98d0 <MotorRegler+0x28c4>
}
else
{
if(HeightDeviation > 20) SollHoehe = HoehenWertF; // update setpoint to current heigth
985a: 80 91 85 03 lds r24, 0x0385
985e: 90 91 86 03 lds r25, 0x0386
9862: 45 97 sbiw r24, 0x15 ; 21
9864: 84 f0 brlt .+32 ; 0x9886 <MotorRegler+0x287a>
9866: 80 91 4a 03 lds r24, 0x034A
986a: 90 91 4b 03 lds r25, 0x034B
986e: a0 91 4c 03 lds r26, 0x034C
9872: b0 91 4d 03 lds r27, 0x034D
9876: 80 93 fa 03 sts 0x03FA, r24
987a: 90 93 fb 03 sts 0x03FB, r25
987e: a0 93 fc 03 sts 0x03FC, r26
9882: b0 93 fd 03 sts 0x03FD, r27
FC_StatusFlags |= FC_STATUS_VARIO_TRIM_UP;
9886: 80 91 cb 03 lds r24, 0x03CB
988a: 80 64 ori r24, 0x40 ; 64
988c: 80 93 cb 03 sts 0x03CB, r24
AltitudeSetpointTrimming = abs(StickGas - (StickGasHover + HEIGHT_CONTROL_STICKTHRESHOLD));
9890: c8 01 movw r24, r16
9892: 8c 19 sub r24, r12
9894: 9d 09 sbc r25, r13
9896: 0f 97 sbiw r24, 0x0f ; 15
9898: 9c 01 movw r18, r24
989a: 99 23 and r25, r25
989c: 24 f4 brge .+8 ; 0x98a6 <MotorRegler+0x289a>
989e: 22 27 eor r18, r18
98a0: 33 27 eor r19, r19
98a2: 28 1b sub r18, r24
98a4: 39 0b sbc r19, r25
98a6: 82 2f mov r24, r18
98a8: 93 2f mov r25, r19
98aa: 30 93 f9 03 sts 0x03F9, r19
98ae: 20 93 f8 03 sts 0x03F8, r18
if(LowVoltageLandingActive) AltitudeSetpointTrimming /= 3; // only 33% rising
98b2: 20 91 c1 03 lds r18, 0x03C1
98b6: 22 23 and r18, r18
98b8: 41 f0 breq .+16 ; 0x98ca <MotorRegler+0x28be>
98ba: 63 e0 ldi r22, 0x03 ; 3
98bc: 70 e0 ldi r23, 0x00 ; 0
98be: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
98c2: 70 93 f9 03 sts 0x03F9, r23
98c6: 60 93 f8 03 sts 0x03F8, r22
VarioCharacter = '+';
98ca: 8b e2 ldi r24, 0x2B ; 43
98cc: 80 93 20 01 sts 0x0120, r24
}
WaypointTrimming = 0;
98d0: 10 92 f2 03 sts 0x03F2, r1
98d4: 29 c1 rjmp .+594 ; 0x9b28 <MotorRegler+0x2b1c>
} // gas stick is below hoover point
else if(StickGas < (StickGasHover - HEIGHT_CONTROL_STICKTHRESHOLD) && !BaroAtLowerLimit ) // Minus
98d6: c6 01 movw r24, r12
98d8: 0f 97 sbiw r24, 0x0f ; 15
98da: 08 17 cp r16, r24
98dc: 19 07 cpc r17, r25
98de: 08 f0 brcs .+2 ; 0x98e2 <MotorRegler+0x28d6>
98e0: 42 c0 rjmp .+132 ; 0x9966 <MotorRegler+0x295a>
98e2: 80 91 8a 03 lds r24, 0x038A
98e6: 81 11 cpse r24, r1
98e8: 3e c0 rjmp .+124 ; 0x9966 <MotorRegler+0x295a>
{
if(FC_StatusFlags & FC_STATUS_VARIO_TRIM_UP || (HeightDeviation < -300))
98ea: 80 91 cb 03 lds r24, 0x03CB
98ee: 86 fd sbrc r24, 6
98f0: 07 c0 rjmp .+14 ; 0x9900 <MotorRegler+0x28f4>
98f2: 80 91 85 03 lds r24, 0x0385
98f6: 90 91 86 03 lds r25, 0x0386
98fa: 84 3d cpi r24, 0xD4 ; 212
98fc: 9e 4f sbci r25, 0xFE ; 254
98fe: ac f4 brge .+42 ; 0x992a <MotorRegler+0x291e>
{
FC_StatusFlags &= ~FC_STATUS_VARIO_TRIM_UP;
9900: 80 91 cb 03 lds r24, 0x03CB
9904: 8f 7b andi r24, 0xBF ; 191
9906: 80 93 cb 03 sts 0x03CB, r24
SollHoehe = HoehenWertF; // update setpoint to current heigth
990a: 80 91 4a 03 lds r24, 0x034A
990e: 90 91 4b 03 lds r25, 0x034B
9912: a0 91 4c 03 lds r26, 0x034C
9916: b0 91 4d 03 lds r27, 0x034D
991a: 80 93 fa 03 sts 0x03FA, r24
991e: 90 93 fb 03 sts 0x03FB, r25
9922: a0 93 fc 03 sts 0x03FC, r26
9926: b0 93 fd 03 sts 0x03FD, r27
}
FC_StatusFlags |= FC_STATUS_VARIO_TRIM_DOWN;
992a: 80 91 cb 03 lds r24, 0x03CB
992e: 80 68 ori r24, 0x80 ; 128
9930: 80 93 cb 03 sts 0x03CB, r24
AltitudeSetpointTrimming = -abs(StickGas - (StickGasHover - HEIGHT_CONTROL_STICKTHRESHOLD));
9934: 98 01 movw r18, r16
9936: 2c 19 sub r18, r12
9938: 3d 09 sbc r19, r13
993a: 21 5f subi r18, 0xF1 ; 241
993c: 3f 4f sbci r19, 0xFF ; 255
993e: c9 01 movw r24, r18
9940: 99 23 and r25, r25
9942: 24 f4 brge .+8 ; 0x994c <MotorRegler+0x2940>
9944: 88 27 eor r24, r24
9946: 99 27 eor r25, r25
9948: 82 1b sub r24, r18
994a: 93 0b sbc r25, r19
994c: 91 95 neg r25
994e: 81 95 neg r24
9950: 91 09 sbc r25, r1
9952: 90 93 f9 03 sts 0x03F9, r25
9956: 80 93 f8 03 sts 0x03F8, r24
VarioCharacter = '-';
995a: 8d e2 ldi r24, 0x2D ; 45
995c: 80 93 20 01 sts 0x0120, r24
WaypointTrimming = 0;
9960: 10 92 f2 03 sts 0x03F2, r1
9964: e1 c0 rjmp .+450 ; 0x9b28 <MotorRegler+0x2b1c>
}
else // Gas Stick in Hover Range
{
VarioCharacter = '=';
9966: 8d e3 ldi r24, 0x3D ; 61
9968: 80 93 20 01 sts 0x0120, r24
if(FromNC_AltitudeSpeed && FromNC_AltitudeSetpoint > SollHoehe) // von NC gesteuert -> Steigen
996c: 20 91 f3 03 lds r18, 0x03F3
9970: 22 23 and r18, r18
9972: 09 f4 brne .+2 ; 0x9976 <MotorRegler+0x296a>
9974: 74 c0 rjmp .+232 ; 0x9a5e <MotorRegler+0x2a52>
9976: 40 91 f4 03 lds r20, 0x03F4
997a: 50 91 f5 03 lds r21, 0x03F5
997e: 60 91 f6 03 lds r22, 0x03F6
9982: 70 91 f7 03 lds r23, 0x03F7
9986: 80 91 fa 03 lds r24, 0x03FA
998a: 90 91 fb 03 lds r25, 0x03FB
998e: a0 91 fc 03 lds r26, 0x03FC
9992: b0 91 fd 03 lds r27, 0x03FD
9996: 84 17 cp r24, r20
9998: 95 07 cpc r25, r21
999a: a6 07 cpc r26, r22
999c: b7 07 cpc r27, r23
999e: 64 f5 brge .+88 ; 0x99f8 <MotorRegler+0x29ec>
{
FC_StatusFlags |= FC_STATUS_VARIO_TRIM_UP;
99a0: 80 91 cb 03 lds r24, 0x03CB
99a4: 80 64 ori r24, 0x40 ; 64
99a6: 80 93 cb 03 sts 0x03CB, r24
AltitudeSetpointTrimming = FromNC_AltitudeSpeed;
99aa: 82 2f mov r24, r18
99ac: 90 e0 ldi r25, 0x00 ; 0
99ae: 90 93 f9 03 sts 0x03F9, r25
99b2: 80 93 f8 03 sts 0x03F8, r24
//HeightTrimming += FromNC_AltitudeSpeed;
WaypointTrimming = 10;
99b6: 8a e0 ldi r24, 0x0A ; 10
99b8: 80 93 f2 03 sts 0x03F2, r24
VarioCharacter = '^';
99bc: 8e e5 ldi r24, 0x5E ; 94
99be: 80 93 20 01 sts 0x0120, r24
if(FC_StatusFlags & FC_STATUS_VARIO_TRIM_DOWN) // changed from sinking to rising
99c2: 80 91 cb 03 lds r24, 0x03CB
99c6: 88 23 and r24, r24
99c8: 0c f0 brlt .+2 ; 0x99cc <MotorRegler+0x29c0>
99ca: ae c0 rjmp .+348 ; 0x9b28 <MotorRegler+0x2b1c>
{
FC_StatusFlags &= ~FC_STATUS_VARIO_TRIM_DOWN;
99cc: 80 91 cb 03 lds r24, 0x03CB
99d0: 8f 77 andi r24, 0x7F ; 127
99d2: 80 93 cb 03 sts 0x03CB, r24
SollHoehe = HoehenWertF; // update setpoint to current heigth
99d6: 80 91 4a 03 lds r24, 0x034A
99da: 90 91 4b 03 lds r25, 0x034B
99de: a0 91 4c 03 lds r26, 0x034C
99e2: b0 91 4d 03 lds r27, 0x034D
99e6: 80 93 fa 03 sts 0x03FA, r24
99ea: 90 93 fb 03 sts 0x03FB, r25
99ee: a0 93 fc 03 sts 0x03FC, r26
99f2: b0 93 fd 03 sts 0x03FD, r27
99f6: 98 c0 rjmp .+304 ; 0x9b28 <MotorRegler+0x2b1c>
}
}
else
if(FromNC_AltitudeSpeed && FromNC_AltitudeSetpoint < SollHoehe) // von NC gesteuert -> sinken
99f8: 48 17 cp r20, r24
99fa: 59 07 cpc r21, r25
99fc: 6a 07 cpc r22, r26
99fe: 7b 07 cpc r23, r27
9a00: 74 f5 brge .+92 ; 0x9a5e <MotorRegler+0x2a52>
{
FC_StatusFlags |= FC_STATUS_VARIO_TRIM_DOWN;
9a02: 80 91 cb 03 lds r24, 0x03CB
9a06: 80 68 ori r24, 0x80 ; 128
9a08: 80 93 cb 03 sts 0x03CB, r24
AltitudeSetpointTrimming = -FromNC_AltitudeSpeed;
9a0c: 82 2f mov r24, r18
9a0e: 90 e0 ldi r25, 0x00 ; 0
9a10: 91 95 neg r25
9a12: 81 95 neg r24
9a14: 91 09 sbc r25, r1
9a16: 90 93 f9 03 sts 0x03F9, r25
9a1a: 80 93 f8 03 sts 0x03F8, r24
//HeightTrimming -= FromNC_AltitudeSpeed;
WaypointTrimming = -10;
9a1e: 86 ef ldi r24, 0xF6 ; 246
9a20: 80 93 f2 03 sts 0x03F2, r24
VarioCharacter = 'v';
9a24: 86 e7 ldi r24, 0x76 ; 118
9a26: 80 93 20 01 sts 0x0120, r24
if(FC_StatusFlags & FC_STATUS_VARIO_TRIM_UP) // changed from rising to sinking
9a2a: 80 91 cb 03 lds r24, 0x03CB
9a2e: 86 ff sbrs r24, 6
9a30: 7b c0 rjmp .+246 ; 0x9b28 <MotorRegler+0x2b1c>
{
FC_StatusFlags &= ~FC_STATUS_VARIO_TRIM_UP;
9a32: 80 91 cb 03 lds r24, 0x03CB
9a36: 8f 7b andi r24, 0xBF ; 191
9a38: 80 93 cb 03 sts 0x03CB, r24
SollHoehe = HoehenWertF; // update setpoint to current heigth
9a3c: 80 91 4a 03 lds r24, 0x034A
9a40: 90 91 4b 03 lds r25, 0x034B
9a44: a0 91 4c 03 lds r26, 0x034C
9a48: b0 91 4d 03 lds r27, 0x034D
9a4c: 80 93 fa 03 sts 0x03FA, r24
9a50: 90 93 fb 03 sts 0x03FB, r25
9a54: a0 93 fc 03 sts 0x03FC, r26
9a58: b0 93 fd 03 sts 0x03FD, r27
9a5c: 65 c0 rjmp .+202 ; 0x9b28 <MotorRegler+0x2b1c>
}
}
else
if(FC_StatusFlags & (FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN))
9a5e: 80 91 cb 03 lds r24, 0x03CB
9a62: 80 7c andi r24, 0xC0 ; 192
9a64: 09 f4 brne .+2 ; 0x9a68 <MotorRegler+0x2a5c>
9a66: 60 c0 rjmp .+192 ; 0x9b28 <MotorRegler+0x2b1c>
{
if(!WaypointTrimming) LIMIT_MIN_MAX(SollHoehe, (HoehenWertF-200), (HoehenWertF+200)) // max. 2m Unterschied
9a68: 80 91 f2 03 lds r24, 0x03F2
9a6c: 81 11 cpse r24, r1
9a6e: 36 c0 rjmp .+108 ; 0x9adc <MotorRegler+0x2ad0>
9a70: 80 91 4a 03 lds r24, 0x034A
9a74: 90 91 4b 03 lds r25, 0x034B
9a78: a0 91 4c 03 lds r26, 0x034C
9a7c: b0 91 4d 03 lds r27, 0x034D
9a80: 8c 01 movw r16, r24
9a82: 9d 01 movw r18, r26
9a84: 08 5c subi r16, 0xC8 ; 200
9a86: 11 09 sbc r17, r1
9a88: 21 09 sbc r18, r1
9a8a: 31 09 sbc r19, r1
9a8c: 40 91 fa 03 lds r20, 0x03FA
9a90: 50 91 fb 03 lds r21, 0x03FB
9a94: 60 91 fc 03 lds r22, 0x03FC
9a98: 70 91 fd 03 lds r23, 0x03FD
9a9c: 04 17 cp r16, r20
9a9e: 15 07 cpc r17, r21
9aa0: 26 07 cpc r18, r22
9aa2: 37 07 cpc r19, r23
9aa4: 4c f0 brlt .+18 ; 0x9ab8 <MotorRegler+0x2aac>
9aa6: 00 93 fa 03 sts 0x03FA, r16
9aaa: 10 93 fb 03 sts 0x03FB, r17
9aae: 20 93 fc 03 sts 0x03FC, r18
9ab2: 30 93 fd 03 sts 0x03FD, r19
9ab6: 14 c0 rjmp .+40 ; 0x9ae0 <MotorRegler+0x2ad4>
9ab8: 88 53 subi r24, 0x38 ; 56
9aba: 9f 4f sbci r25, 0xFF ; 255
9abc: af 4f sbci r26, 0xFF ; 255
9abe: bf 4f sbci r27, 0xFF ; 255
9ac0: 48 17 cp r20, r24
9ac2: 59 07 cpc r21, r25
9ac4: 6a 07 cpc r22, r26
9ac6: 7b 07 cpc r23, r27
9ac8: 5c f0 brlt .+22 ; 0x9ae0 <MotorRegler+0x2ad4>
9aca: 80 93 fa 03 sts 0x03FA, r24
9ace: 90 93 fb 03 sts 0x03FB, r25
9ad2: a0 93 fc 03 sts 0x03FC, r26
9ad6: b0 93 fd 03 sts 0x03FD, r27
9ada: 02 c0 rjmp .+4 ; 0x9ae0 <MotorRegler+0x2ad4>
else WaypointTrimming = 0;
9adc: 10 92 f2 03 sts 0x03F2, r1
FC_StatusFlags &= ~(FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN);
9ae0: 80 91 cb 03 lds r24, 0x03CB
9ae4: 8f 73 andi r24, 0x3F ; 63
9ae6: 80 93 cb 03 sts 0x03CB, r24
HeightTrimming = 0;
9aea: 10 92 88 03 sts 0x0388, r1
9aee: 10 92 87 03 sts 0x0387, r1
if(Parameter_ExtraConfig & CFG2_VARIO_BEEP) beeptime = 500;
9af2: e1 ff sbrs r30, 1
9af4: 06 c0 rjmp .+12 ; 0x9b02 <MotorRegler+0x2af6>
9af6: 84 ef ldi r24, 0xF4 ; 244
9af8: 91 e0 ldi r25, 0x01 ; 1
9afa: 90 93 ce 04 sts 0x04CE, r25
9afe: 80 93 cd 04 sts 0x04CD, r24
if(!StartTrigger && HoehenWert > 50)
9b02: 80 91 02 04 lds r24, 0x0402
9b06: 81 11 cpse r24, r1
9b08: 0f c0 rjmp .+30 ; 0x9b28 <MotorRegler+0x2b1c>
9b0a: 80 91 fe 03 lds r24, 0x03FE
9b0e: 90 91 ff 03 lds r25, 0x03FF
9b12: a0 91 00 04 lds r26, 0x0400
9b16: b0 91 01 04 lds r27, 0x0401
9b1a: c3 97 sbiw r24, 0x33 ; 51
9b1c: a1 05 cpc r26, r1
9b1e: b1 05 cpc r27, r1
9b20: 1c f0 brlt .+6 ; 0x9b28 <MotorRegler+0x2b1c>
{
StartTrigger = 1;
9b22: 81 e0 ldi r24, 0x01 ; 1
9b24: 80 93 02 04 sts 0x0402, r24
}
}
}
// Trim height set point
HeightTrimming += AltitudeSetpointTrimming;
9b28: 20 91 87 03 lds r18, 0x0387
9b2c: 30 91 88 03 lds r19, 0x0388
9b30: 80 91 f8 03 lds r24, 0x03F8
9b34: 90 91 f9 03 lds r25, 0x03F9
9b38: 28 0f add r18, r24
9b3a: 39 1f adc r19, r25
9b3c: 30 93 88 03 sts 0x0388, r19
9b40: 20 93 87 03 sts 0x0387, r18
if(abs(HeightTrimming) > 500) // bei Waypoint-Flug ist das ca. die 500Hz
9b44: c9 01 movw r24, r18
9b46: 33 23 and r19, r19
9b48: 24 f4 brge .+8 ; 0x9b52 <MotorRegler+0x2b46>
9b4a: 88 27 eor r24, r24
9b4c: 99 27 eor r25, r25
9b4e: 82 1b sub r24, r18
9b50: 93 0b sbc r25, r19
9b52: 85 3f cpi r24, 0xF5 ; 245
9b54: 91 40 sbci r25, 0x01 ; 1
9b56: 0c f4 brge .+2 ; 0x9b5a <MotorRegler+0x2b4e>
9b58: ef c0 rjmp .+478 ; 0x9d38 <MotorRegler+0x2d2c>
{
if(WaypointTrimming)
9b5a: e0 91 f2 03 lds r30, 0x03F2
9b5e: ee 23 and r30, r30
9b60: b1 f1 breq .+108 ; 0x9bce <MotorRegler+0x2bc2>
{
if(abs(FromNC_AltitudeSetpoint - SollHoehe) < 10) SollHoehe = FromNC_AltitudeSetpoint;
9b62: 40 91 f4 03 lds r20, 0x03F4
9b66: 50 91 f5 03 lds r21, 0x03F5
9b6a: 60 91 f6 03 lds r22, 0x03F6
9b6e: 70 91 f7 03 lds r23, 0x03F7
9b72: 80 91 fa 03 lds r24, 0x03FA
9b76: 90 91 fb 03 lds r25, 0x03FB
9b7a: a0 91 fc 03 lds r26, 0x03FC
9b7e: b0 91 fd 03 lds r27, 0x03FD
9b82: 9a 01 movw r18, r20
9b84: 28 1b sub r18, r24
9b86: 39 0b sbc r19, r25
9b88: 27 3f cpi r18, 0xF7 ; 247
9b8a: 1f ef ldi r17, 0xFF ; 255
9b8c: 31 07 cpc r19, r17
9b8e: 64 f0 brlt .+24 ; 0x9ba8 <MotorRegler+0x2b9c>
9b90: 2a 30 cpi r18, 0x0A ; 10
9b92: 31 05 cpc r19, r1
9b94: 4c f4 brge .+18 ; 0x9ba8 <MotorRegler+0x2b9c>
9b96: 40 93 fa 03 sts 0x03FA, r20
9b9a: 50 93 fb 03 sts 0x03FB, r21
9b9e: 60 93 fc 03 sts 0x03FC, r22
9ba2: 70 93 fd 03 sts 0x03FD, r23
9ba6: 4d c0 rjmp .+154 ; 0x9c42 <MotorRegler+0x2c36>
else SollHoehe += WaypointTrimming;
9ba8: 4e 2f mov r20, r30
9baa: 55 27 eor r21, r21
9bac: 47 fd sbrc r20, 7
9bae: 50 95 com r21
9bb0: 65 2f mov r22, r21
9bb2: 75 2f mov r23, r21
9bb4: 84 0f add r24, r20
9bb6: 95 1f adc r25, r21
9bb8: a6 1f adc r26, r22
9bba: b7 1f adc r27, r23
9bbc: 80 93 fa 03 sts 0x03FA, r24
9bc0: 90 93 fb 03 sts 0x03FB, r25
9bc4: a0 93 fc 03 sts 0x03FC, r26
9bc8: b0 93 fd 03 sts 0x03FD, r27
9bcc: 3a c0 rjmp .+116 ; 0x9c42 <MotorRegler+0x2c36>
}
else
{
if(HeightTrimming > 0) SollHoehe += EE_Parameter.Hoehe_Verstaerkung / 3;
9bce: 12 16 cp r1, r18
9bd0: 13 06 cpc r1, r19
9bd2: e4 f4 brge .+56 ; 0x9c0c <MotorRegler+0x2c00>
9bd4: 20 91 50 05 lds r18, 0x0550
9bd8: 8b ea ldi r24, 0xAB ; 171
9bda: 28 9f mul r18, r24
9bdc: 21 2d mov r18, r1
9bde: 11 24 eor r1, r1
9be0: 26 95 lsr r18
9be2: 80 91 fa 03 lds r24, 0x03FA
9be6: 90 91 fb 03 lds r25, 0x03FB
9bea: a0 91 fc 03 lds r26, 0x03FC
9bee: b0 91 fd 03 lds r27, 0x03FD
9bf2: 82 0f add r24, r18
9bf4: 91 1d adc r25, r1
9bf6: a1 1d adc r26, r1
9bf8: b1 1d adc r27, r1
9bfa: 80 93 fa 03 sts 0x03FA, r24
9bfe: 90 93 fb 03 sts 0x03FB, r25
9c02: a0 93 fc 03 sts 0x03FC, r26
9c06: b0 93 fd 03 sts 0x03FD, r27
9c0a: 1b c0 rjmp .+54 ; 0x9c42 <MotorRegler+0x2c36>
else SollHoehe -= EE_Parameter.Hoehe_Verstaerkung / 3;
9c0c: 20 91 50 05 lds r18, 0x0550
9c10: 8b ea ldi r24, 0xAB ; 171
9c12: 28 9f mul r18, r24
9c14: 21 2d mov r18, r1
9c16: 11 24 eor r1, r1
9c18: 26 95 lsr r18
9c1a: 80 91 fa 03 lds r24, 0x03FA
9c1e: 90 91 fb 03 lds r25, 0x03FB
9c22: a0 91 fc 03 lds r26, 0x03FC
9c26: b0 91 fd 03 lds r27, 0x03FD
9c2a: 82 1b sub r24, r18
9c2c: 91 09 sbc r25, r1
9c2e: a1 09 sbc r26, r1
9c30: b1 09 sbc r27, r1
9c32: 80 93 fa 03 sts 0x03FA, r24
9c36: 90 93 fb 03 sts 0x03FB, r25
9c3a: a0 93 fc 03 sts 0x03FC, r26
9c3e: b0 93 fd 03 sts 0x03FD, r27
}
HeightTrimming = 0;
9c42: 10 92 88 03 sts 0x0388, r1
9c46: 10 92 87 03 sts 0x0387, r1
LIMIT_MIN_MAX(HoehenWertF, (HoehenWert-1024), (HoehenWert+1024)); // max. 10m Unterschied
9c4a: 80 91 fe 03 lds r24, 0x03FE
9c4e: 90 91 ff 03 lds r25, 0x03FF
9c52: a0 91 00 04 lds r26, 0x0400
9c56: b0 91 01 04 lds r27, 0x0401
9c5a: 8c 01 movw r16, r24
9c5c: 9d 01 movw r18, r26
9c5e: 14 50 subi r17, 0x04 ; 4
9c60: 21 09 sbc r18, r1
9c62: 31 09 sbc r19, r1
9c64: 40 91 4a 03 lds r20, 0x034A
9c68: 50 91 4b 03 lds r21, 0x034B
9c6c: 60 91 4c 03 lds r22, 0x034C
9c70: 70 91 4d 03 lds r23, 0x034D
9c74: 04 17 cp r16, r20
9c76: 15 07 cpc r17, r21
9c78: 26 07 cpc r18, r22
9c7a: 37 07 cpc r19, r23
9c7c: 4c f0 brlt .+18 ; 0x9c90 <MotorRegler+0x2c84>
9c7e: 00 93 4a 03 sts 0x034A, r16
9c82: 10 93 4b 03 sts 0x034B, r17
9c86: 20 93 4c 03 sts 0x034C, r18
9c8a: 30 93 4d 03 sts 0x034D, r19
9c8e: 10 c0 rjmp .+32 ; 0x9cb0 <MotorRegler+0x2ca4>
9c90: 9c 5f subi r25, 0xFC ; 252
9c92: af 4f sbci r26, 0xFF ; 255
9c94: bf 4f sbci r27, 0xFF ; 255
9c96: 48 17 cp r20, r24
9c98: 59 07 cpc r21, r25
9c9a: 6a 07 cpc r22, r26
9c9c: 7b 07 cpc r23, r27
9c9e: 44 f0 brlt .+16 ; 0x9cb0 <MotorRegler+0x2ca4>
9ca0: 80 93 4a 03 sts 0x034A, r24
9ca4: 90 93 4b 03 sts 0x034B, r25
9ca8: a0 93 4c 03 sts 0x034C, r26
9cac: b0 93 4d 03 sts 0x034D, r27
LIMIT_MIN_MAX(SollHoehe, (HoehenWertF-1024), (HoehenWertF+1500)); // max. 15m Unterschied
9cb0: 80 91 4a 03 lds r24, 0x034A
9cb4: 90 91 4b 03 lds r25, 0x034B
9cb8: a0 91 4c 03 lds r26, 0x034C
9cbc: b0 91 4d 03 lds r27, 0x034D
9cc0: 8c 01 movw r16, r24
9cc2: 9d 01 movw r18, r26
9cc4: 14 50 subi r17, 0x04 ; 4
9cc6: 21 09 sbc r18, r1
9cc8: 31 09 sbc r19, r1
9cca: 40 91 fa 03 lds r20, 0x03FA
9cce: 50 91 fb 03 lds r21, 0x03FB
9cd2: 60 91 fc 03 lds r22, 0x03FC
9cd6: 70 91 fd 03 lds r23, 0x03FD
9cda: 04 17 cp r16, r20
9cdc: 15 07 cpc r17, r21
9cde: 26 07 cpc r18, r22
9ce0: 37 07 cpc r19, r23
9ce2: 4c f0 brlt .+18 ; 0x9cf6 <MotorRegler+0x2cea>
9ce4: 00 93 fa 03 sts 0x03FA, r16
9ce8: 10 93 fb 03 sts 0x03FB, r17
9cec: 20 93 fc 03 sts 0x03FC, r18
9cf0: 30 93 fd 03 sts 0x03FD, r19
9cf4: 11 c0 rjmp .+34 ; 0x9d18 <MotorRegler+0x2d0c>
9cf6: 84 52 subi r24, 0x24 ; 36
9cf8: 9a 4f sbci r25, 0xFA ; 250
9cfa: af 4f sbci r26, 0xFF ; 255
9cfc: bf 4f sbci r27, 0xFF ; 255
9cfe: 48 17 cp r20, r24
9d00: 59 07 cpc r21, r25
9d02: 6a 07 cpc r22, r26
9d04: 7b 07 cpc r23, r27
9d06: 44 f0 brlt .+16 ; 0x9d18 <MotorRegler+0x2d0c>
9d08: 80 93 fa 03 sts 0x03FA, r24
9d0c: 90 93 fb 03 sts 0x03FB, r25
9d10: a0 93 fc 03 sts 0x03FC, r26
9d14: b0 93 fd 03 sts 0x03FD, r27
if(Parameter_ExtraConfig & CFG2_VARIO_BEEP) beeptime = 100;
9d18: 80 91 40 06 lds r24, 0x0640
9d1c: 81 ff sbrs r24, 1
9d1e: 06 c0 rjmp .+12 ; 0x9d2c <MotorRegler+0x2d20>
9d20: 84 e6 ldi r24, 0x64 ; 100
9d22: 90 e0 ldi r25, 0x00 ; 0
9d24: 90 93 ce 04 sts 0x04CE, r25
9d28: 80 93 cd 04 sts 0x04CD, r24
//update hoover gas stick value when setpoint is shifted
if(FromNC_AltitudeSpeed == 0) CalcStickGasHover();
9d2c: 80 91 f3 03 lds r24, 0x03F3
9d30: 81 11 cpse r24, r1
9d32: 02 c0 rjmp .+4 ; 0x9d38 <MotorRegler+0x2d2c>
9d34: 0e 94 c4 37 call 0x6f88 ; 0x6f88 <CalcStickGasHover>
if(StickGasHover < 70) StickGasHover = 70;
else if(StickGasHover > 175) StickGasHover = 175;
}
*/
}
if(BaroExpandActive) SollHoehe = HoehenWertF; // update setpoint to current altitude if Expanding is active
9d38: 80 91 59 04 lds r24, 0x0459
9d3c: 90 91 5a 04 lds r25, 0x045A
9d40: 89 2b or r24, r25
9d42: 09 f4 brne .+2 ; 0x9d46 <MotorRegler+0x2d3a>
9d44: 3f c0 rjmp .+126 ; 0x9dc4 <MotorRegler+0x2db8>
9d46: 80 91 4a 03 lds r24, 0x034A
9d4a: 90 91 4b 03 lds r25, 0x034B
9d4e: a0 91 4c 03 lds r26, 0x034C
9d52: b0 91 4d 03 lds r27, 0x034D
9d56: 80 93 fa 03 sts 0x03FA, r24
9d5a: 90 93 fb 03 sts 0x03FB, r25
9d5e: a0 93 fc 03 sts 0x03FC, r26
9d62: b0 93 fd 03 sts 0x03FD, r27
9d66: 2e c0 rjmp .+92 ; 0x9dc4 <MotorRegler+0x2db8>
} //if FCFlags & MKFCFLAG_FLY
else
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
ACC_AltitudeFusion(1); // init the ACC and Altitude fusion
9d68: 81 e0 ldi r24, 0x01 ; 1
9d6a: 0e 94 a0 16 call 0x2d40 ; 0x2d40 <ACC_AltitudeFusion>
#endif
SollHoehe = HoehenWertF - 2000;
9d6e: 80 91 4a 03 lds r24, 0x034A
9d72: 90 91 4b 03 lds r25, 0x034B
9d76: a0 91 4c 03 lds r26, 0x034C
9d7a: b0 91 4d 03 lds r27, 0x034D
9d7e: 80 5d subi r24, 0xD0 ; 208
9d80: 97 40 sbci r25, 0x07 ; 7
9d82: a1 09 sbc r26, r1
9d84: b1 09 sbc r27, r1
9d86: 80 93 fa 03 sts 0x03FA, r24
9d8a: 90 93 fb 03 sts 0x03FB, r25
9d8e: a0 93 fc 03 sts 0x03FC, r26
9d92: b0 93 fd 03 sts 0x03FD, r27
 
if(EE_Parameter.Hoehe_StickNeutralPoint) StickGasHover = EE_Parameter.Hoehe_StickNeutralPoint;
9d96: 80 91 54 05 lds r24, 0x0554
9d9a: 88 23 and r24, r24
9d9c: 31 f0 breq .+12 ; 0x9daa <MotorRegler+0x2d9e>
9d9e: 90 e0 ldi r25, 0x00 ; 0
9da0: 90 93 41 01 sts 0x0141, r25
9da4: 80 93 40 01 sts 0x0140, r24
9da8: 06 c0 rjmp .+12 ; 0x9db6 <MotorRegler+0x2daa>
else StickGasHover = 127;
9daa: 8f e7 ldi r24, 0x7F ; 127
9dac: 90 e0 ldi r25, 0x00 ; 0
9dae: 90 93 41 01 sts 0x0141, r25
9db2: 80 93 40 01 sts 0x0140, r24
HoverGas = GasMischanteil;
9db6: 30 92 e9 03 sts 0x03E9, r3
9dba: 20 92 e8 03 sts 0x03E8, r2
VarioCharacter = '.';
9dbe: 8e e2 ldi r24, 0x2E ; 46
9dc0: 80 93 20 01 sts 0x0120, r24
}
HCGas = HoverGas; // take hover gas (neutral point)
9dc4: e0 91 e8 03 lds r30, 0x03E8
9dc8: f0 91 e9 03 lds r31, 0x03E9
}
if(HoehenWertF > SollHoehe || !(Parameter_ExtraConfig & CFG2_HEIGHT_LIMIT))
9dcc: 80 91 4a 03 lds r24, 0x034A
9dd0: 90 91 4b 03 lds r25, 0x034B
9dd4: a0 91 4c 03 lds r26, 0x034C
9dd8: b0 91 4d 03 lds r27, 0x034D
9ddc: 40 91 fa 03 lds r20, 0x03FA
9de0: 50 91 fb 03 lds r21, 0x03FB
9de4: 60 91 fc 03 lds r22, 0x03FC
9de8: 70 91 fd 03 lds r23, 0x03FD
9dec: 48 17 cp r20, r24
9dee: 59 07 cpc r21, r25
9df0: 6a 07 cpc r22, r26
9df2: 7b 07 cpc r23, r27
9df4: 24 f0 brlt .+8 ; 0x9dfe <MotorRegler+0x2df2>
9df6: 20 91 40 06 lds r18, 0x0640
9dfa: 20 fd sbrc r18, 0
9dfc: 70 c4 rjmp .+2272 ; 0xa6de <MotorRegler+0x36d2>
{
if(!ACC_AltitudeControl)
9dfe: 20 91 c2 03 lds r18, 0x03C2
9e02: 21 11 cpse r18, r1
9e04: 7e c2 rjmp .+1276 ; 0xa302 <MotorRegler+0x32f6>
{
// from this point the Heigth Control Algorithm is identical for both versions
if(BaroExpandActive) // baro range expanding active
9e06: 20 91 59 04 lds r18, 0x0459
9e0a: 30 91 5a 04 lds r19, 0x045A
9e0e: 23 2b or r18, r19
9e10: 59 f0 breq .+22 ; 0x9e28 <MotorRegler+0x2e1c>
{
HCGas = HoverGas; // hover while expanding baro adc range
9e12: e0 91 e8 03 lds r30, 0x03E8
9e16: f0 91 e9 03 lds r31, 0x03E9
HeightDeviation = 0;
9e1a: 10 92 86 03 sts 0x0386, r1
9e1e: 10 92 85 03 sts 0x0385, r1
if((Parameter_GlobalConfig & CFG_HOEHENREGELUNG) && !(Looping_Roll || Looping_Nick) && !(VersionInfo.HardwareError[0] & 0x7F)) // Höhenregelung
{
#define HOVER_GAS_AVERAGE 16384L // 16384 * 2ms = 32s averaging
#define HC_GAS_AVERAGE 4 // 4 * 2ms= 8ms averaging
 
int HCGas, GasReduction = 0;
9e22: c1 2c mov r12, r1
9e24: d1 2c mov r13, r1
9e26: ea c0 rjmp .+468 ; 0x9ffc <MotorRegler+0x2ff0>
HeightDeviation = 0;
} // EOF // baro range expanding active
else // valid data from air pressure sensor
{
// ------------------------- P-Part ----------------------------
tmp_long = (HoehenWertF - SollHoehe); // positive when too high
9e28: 84 1b sub r24, r20
9e2a: 95 0b sbc r25, r21
9e2c: a6 0b sbc r26, r22
9e2e: b7 0b sbc r27, r23
LIMIT_MIN_MAX(tmp_long, -32767L, 32767L); // avoid overflov when casting to int16_t
9e30: 82 30 cpi r24, 0x02 ; 2
9e32: 20 e8 ldi r18, 0x80 ; 128
9e34: 92 07 cpc r25, r18
9e36: 2f ef ldi r18, 0xFF ; 255
9e38: a2 07 cpc r26, r18
9e3a: b2 07 cpc r27, r18
9e3c: 6c f4 brge .+26 ; 0x9e58 <MotorRegler+0x2e4c>
9e3e: 81 e0 ldi r24, 0x01 ; 1
9e40: 90 e8 ldi r25, 0x80 ; 128
9e42: af ef ldi r26, 0xFF ; 255
9e44: bf ef ldi r27, 0xFF ; 255
9e46: 80 93 81 03 sts 0x0381, r24
9e4a: 90 93 82 03 sts 0x0382, r25
9e4e: a0 93 83 03 sts 0x0383, r26
9e52: b0 93 84 03 sts 0x0384, r27
9e56: 1b c0 rjmp .+54 ; 0x9e8e <MotorRegler+0x2e82>
9e58: 8f 3f cpi r24, 0xFF ; 255
9e5a: 3f e7 ldi r19, 0x7F ; 127
9e5c: 93 07 cpc r25, r19
9e5e: a1 05 cpc r26, r1
9e60: b1 05 cpc r27, r1
9e62: 4c f4 brge .+18 ; 0x9e76 <MotorRegler+0x2e6a>
HeightDeviation = 0;
} // EOF // baro range expanding active
else // valid data from air pressure sensor
{
// ------------------------- P-Part ----------------------------
tmp_long = (HoehenWertF - SollHoehe); // positive when too high
9e64: 80 93 81 03 sts 0x0381, r24
9e68: 90 93 82 03 sts 0x0382, r25
9e6c: a0 93 83 03 sts 0x0383, r26
9e70: b0 93 84 03 sts 0x0384, r27
9e74: 0c c0 rjmp .+24 ; 0x9e8e <MotorRegler+0x2e82>
LIMIT_MIN_MAX(tmp_long, -32767L, 32767L); // avoid overflov when casting to int16_t
9e76: 8f ef ldi r24, 0xFF ; 255
9e78: 9f e7 ldi r25, 0x7F ; 127
9e7a: a0 e0 ldi r26, 0x00 ; 0
9e7c: b0 e0 ldi r27, 0x00 ; 0
9e7e: 80 93 81 03 sts 0x0381, r24
9e82: 90 93 82 03 sts 0x0382, r25
9e86: a0 93 83 03 sts 0x0383, r26
9e8a: b0 93 84 03 sts 0x0384, r27
HeightDeviation = (int)(tmp_long); // positive when too high
9e8e: 20 91 81 03 lds r18, 0x0381
9e92: 30 91 82 03 lds r19, 0x0382
9e96: 40 91 83 03 lds r20, 0x0383
9e9a: 50 91 84 03 lds r21, 0x0384
9e9e: 30 93 86 03 sts 0x0386, r19
9ea2: 20 93 85 03 sts 0x0385, r18
tmp_long = (tmp_long * (long)Parameter_Hoehe_P) / 32L; // p-part
9ea6: a0 91 39 01 lds r26, 0x0139
9eaa: b0 e0 ldi r27, 0x00 ; 0
9eac: 0e 94 c8 b1 call 0x16390 ; 0x16390 <__muluhisi3>
9eb0: 8b 01 movw r16, r22
9eb2: 9c 01 movw r18, r24
9eb4: 99 23 and r25, r25
9eb6: 24 f4 brge .+8 ; 0x9ec0 <MotorRegler+0x2eb4>
9eb8: 01 5e subi r16, 0xE1 ; 225
9eba: 1f 4f sbci r17, 0xFF ; 255
9ebc: 2f 4f sbci r18, 0xFF ; 255
9ebe: 3f 4f sbci r19, 0xFF ; 255
9ec0: d9 01 movw r26, r18
9ec2: c8 01 movw r24, r16
9ec4: 68 94 set
9ec6: 14 f8 bld r1, 4
9ec8: b5 95 asr r27
9eca: a7 95 ror r26
9ecc: 97 95 ror r25
9ece: 87 95 ror r24
9ed0: 16 94 lsr r1
9ed2: d1 f7 brne .-12 ; 0x9ec8 <MotorRegler+0x2ebc>
LIMIT_MIN_MAX(tmp_long, -127 * STICK_GAIN, 256 * STICK_GAIN); // more than the full range makes no sense
9ed4: 85 30 cpi r24, 0x05 ; 5
9ed6: 4e ef ldi r20, 0xFE ; 254
9ed8: 94 07 cpc r25, r20
9eda: 4f ef ldi r20, 0xFF ; 255
9edc: a4 07 cpc r26, r20
9ede: b4 07 cpc r27, r20
9ee0: 6c f4 brge .+26 ; 0x9efc <MotorRegler+0x2ef0>
9ee2: 84 e0 ldi r24, 0x04 ; 4
9ee4: 9e ef ldi r25, 0xFE ; 254
9ee6: af ef ldi r26, 0xFF ; 255
9ee8: bf ef ldi r27, 0xFF ; 255
9eea: 80 93 81 03 sts 0x0381, r24
9eee: 90 93 82 03 sts 0x0382, r25
9ef2: a0 93 83 03 sts 0x0383, r26
9ef6: b0 93 84 03 sts 0x0384, r27
9efa: 1b c0 rjmp .+54 ; 0x9f32 <MotorRegler+0x2f26>
9efc: 81 15 cp r24, r1
9efe: 54 e0 ldi r21, 0x04 ; 4
9f00: 95 07 cpc r25, r21
9f02: a1 05 cpc r26, r1
9f04: b1 05 cpc r27, r1
9f06: 4c f4 brge .+18 ; 0x9f1a <MotorRegler+0x2f0e>
{
// ------------------------- P-Part ----------------------------
tmp_long = (HoehenWertF - SollHoehe); // positive when too high
LIMIT_MIN_MAX(tmp_long, -32767L, 32767L); // avoid overflov when casting to int16_t
HeightDeviation = (int)(tmp_long); // positive when too high
tmp_long = (tmp_long * (long)Parameter_Hoehe_P) / 32L; // p-part
9f08: 80 93 81 03 sts 0x0381, r24
9f0c: 90 93 82 03 sts 0x0382, r25
9f10: a0 93 83 03 sts 0x0383, r26
9f14: b0 93 84 03 sts 0x0384, r27
9f18: 0c c0 rjmp .+24 ; 0x9f32 <MotorRegler+0x2f26>
LIMIT_MIN_MAX(tmp_long, -127 * STICK_GAIN, 256 * STICK_GAIN); // more than the full range makes no sense
9f1a: 80 e0 ldi r24, 0x00 ; 0
9f1c: 94 e0 ldi r25, 0x04 ; 4
9f1e: a0 e0 ldi r26, 0x00 ; 0
9f20: b0 e0 ldi r27, 0x00 ; 0
9f22: 80 93 81 03 sts 0x0381, r24
9f26: 90 93 82 03 sts 0x0382, r25
9f2a: a0 93 83 03 sts 0x0383, r26
9f2e: b0 93 84 03 sts 0x0384, r27
GasReduction = tmp_long;
9f32: 40 91 81 03 lds r20, 0x0381
9f36: 50 91 82 03 lds r21, 0x0382
// ------------------------- D-Part 1: Vario Meter ----------------------------
tmp_int = VarioMeter / 8;
9f3a: a0 91 54 03 lds r26, 0x0354
9f3e: b0 91 55 03 lds r27, 0x0355
9f42: bb 23 and r27, r27
9f44: 0c f4 brge .+2 ; 0x9f48 <MotorRegler+0x2f3c>
9f46: 17 96 adiw r26, 0x07 ; 7
9f48: b5 95 asr r27
9f4a: a7 95 ror r26
9f4c: b5 95 asr r27
9f4e: a7 95 ror r26
9f50: b5 95 asr r27
9f52: a7 95 ror r26
LIMIT_MIN_MAX(tmp_int, -127, 128);
9f54: a2 38 cpi r26, 0x82 ; 130
9f56: 6f ef ldi r22, 0xFF ; 255
9f58: b6 07 cpc r27, r22
9f5a: 24 f0 brlt .+8 ; 0x9f64 <MotorRegler+0x2f58>
9f5c: a0 38 cpi r26, 0x80 ; 128
9f5e: b1 05 cpc r27, r1
9f60: 24 f4 brge .+8 ; 0x9f6a <MotorRegler+0x2f5e>
9f62: 05 c0 rjmp .+10 ; 0x9f6e <MotorRegler+0x2f62>
9f64: a1 e8 ldi r26, 0x81 ; 129
9f66: bf ef ldi r27, 0xFF ; 255
9f68: 02 c0 rjmp .+4 ; 0x9f6e <MotorRegler+0x2f62>
9f6a: a0 e8 ldi r26, 0x80 ; 128
9f6c: b0 e0 ldi r27, 0x00 ; 0
tmp_int = (tmp_int * (long)Parameter_Luftdruck_D) / 4L; // scale to d-gain parameter
9f6e: 20 91 3a 01 lds r18, 0x013A
9f72: 30 e0 ldi r19, 0x00 ; 0
9f74: 0e 94 c2 b1 call 0x16384 ; 0x16384 <__usmulhisi3>
9f78: 8b 01 movw r16, r22
9f7a: 9c 01 movw r18, r24
9f7c: 99 23 and r25, r25
9f7e: 24 f4 brge .+8 ; 0x9f88 <MotorRegler+0x2f7c>
9f80: 0d 5f subi r16, 0xFD ; 253
9f82: 1f 4f sbci r17, 0xFF ; 255
9f84: 2f 4f sbci r18, 0xFF ; 255
9f86: 3f 4f sbci r19, 0xFF ; 255
9f88: d9 01 movw r26, r18
9f8a: c8 01 movw r24, r16
9f8c: b5 95 asr r27
9f8e: a7 95 ror r26
9f90: 97 95 ror r25
9f92: 87 95 ror r24
9f94: b5 95 asr r27
9f96: a7 95 ror r26
9f98: 97 95 ror r25
9f9a: 87 95 ror r24
LIMIT_MIN_MAX(tmp_int,-64 * STICK_GAIN, 64 * STICK_GAIN);
9f9c: 81 30 cpi r24, 0x01 ; 1
9f9e: 7f ef ldi r23, 0xFF ; 255
9fa0: 97 07 cpc r25, r23
9fa2: 2c f0 brlt .+10 ; 0x9fae <MotorRegler+0x2fa2>
9fa4: 8f 3f cpi r24, 0xFF ; 255
9fa6: 91 05 cpc r25, r1
9fa8: 09 f0 breq .+2 ; 0x9fac <MotorRegler+0x2fa0>
9faa: 24 f4 brge .+8 ; 0x9fb4 <MotorRegler+0x2fa8>
9fac: 05 c0 rjmp .+10 ; 0x9fb8 <MotorRegler+0x2fac>
9fae: 80 e0 ldi r24, 0x00 ; 0
9fb0: 9f ef ldi r25, 0xFF ; 255
9fb2: 02 c0 rjmp .+4 ; 0x9fb8 <MotorRegler+0x2fac>
9fb4: 80 e0 ldi r24, 0x00 ; 0
9fb6: 91 e0 ldi r25, 0x01 ; 1
if(FC_StatusFlags & (FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN)) tmp_int /= 4; // reduce d-part while trimming setpoint
9fb8: 20 91 cb 03 lds r18, 0x03CB
9fbc: 20 7c andi r18, 0xC0 ; 192
9fbe: 59 f0 breq .+22 ; 0x9fd6 <MotorRegler+0x2fca>
9fc0: 9c 01 movw r18, r24
9fc2: 99 23 and r25, r25
9fc4: 14 f4 brge .+4 ; 0x9fca <MotorRegler+0x2fbe>
9fc6: 2d 5f subi r18, 0xFD ; 253
9fc8: 3f 4f sbci r19, 0xFF ; 255
9fca: c9 01 movw r24, r18
9fcc: 95 95 asr r25
9fce: 87 95 ror r24
9fd0: 95 95 asr r25
9fd2: 87 95 ror r24
9fd4: 10 c0 rjmp .+32 ; 0x9ff6 <MotorRegler+0x2fea>
else
if(Parameter_ExtraConfig & CFG2_HEIGHT_LIMIT) tmp_int /= 8; // reduce d-part in "Deckel" mode
9fd6: 20 91 40 06 lds r18, 0x0640
9fda: 20 ff sbrs r18, 0
9fdc: 0c c0 rjmp .+24 ; 0x9ff6 <MotorRegler+0x2fea>
9fde: 9c 01 movw r18, r24
9fe0: 99 23 and r25, r25
9fe2: 14 f4 brge .+4 ; 0x9fe8 <MotorRegler+0x2fdc>
9fe4: 29 5f subi r18, 0xF9 ; 249
9fe6: 3f 4f sbci r19, 0xFF ; 255
9fe8: c9 01 movw r24, r18
9fea: 95 95 asr r25
9fec: 87 95 ror r24
9fee: 95 95 asr r25
9ff0: 87 95 ror r24
9ff2: 95 95 asr r25
9ff4: 87 95 ror r24
GasReduction += tmp_int;
9ff6: 6a 01 movw r12, r20
9ff8: c8 0e add r12, r24
9ffa: d9 1e adc r13, r25
} // EOF no baro range expanding
// ------------------------ D-Part 2: ACC-Z Integral ------------------------
if(Parameter_Hoehe_ACC_Wirkung)
9ffc: a0 91 38 01 lds r26, 0x0138
a000: aa 23 and r26, r26
a002: 09 f4 brne .+2 ; 0xa006 <MotorRegler+0x2ffa>
a004: 61 c0 rjmp .+194 ; 0xa0c8 <MotorRegler+0x30bc>
{
tmp_long = ((Mess_Integral_Hoch / 128L) * (int32_t) Parameter_Hoehe_ACC_Wirkung) / (128L / STICK_GAIN);
a006: 40 91 1e 04 lds r20, 0x041E
a00a: 50 91 1f 04 lds r21, 0x041F
a00e: 60 91 20 04 lds r22, 0x0420
a012: 70 91 21 04 lds r23, 0x0421
a016: 77 23 and r23, r23
a018: 24 f4 brge .+8 ; 0xa022 <MotorRegler+0x3016>
a01a: 41 58 subi r20, 0x81 ; 129
a01c: 5f 4f sbci r21, 0xFF ; 255
a01e: 6f 4f sbci r22, 0xFF ; 255
a020: 7f 4f sbci r23, 0xFF ; 255
a022: 9a 01 movw r18, r20
a024: ab 01 movw r20, r22
a026: 68 94 set
a028: 16 f8 bld r1, 6
a02a: 55 95 asr r21
a02c: 47 95 ror r20
a02e: 37 95 ror r19
a030: 27 95 ror r18
a032: 16 94 lsr r1
a034: d1 f7 brne .-12 ; 0xa02a <MotorRegler+0x301e>
a036: b0 e0 ldi r27, 0x00 ; 0
a038: 0e 94 c8 b1 call 0x16390 ; 0x16390 <__muluhisi3>
a03c: 8b 01 movw r16, r22
a03e: 9c 01 movw r18, r24
a040: 99 23 and r25, r25
a042: 24 f4 brge .+8 ; 0xa04c <MotorRegler+0x3040>
a044: 01 5e subi r16, 0xE1 ; 225
a046: 1f 4f sbci r17, 0xFF ; 255
a048: 2f 4f sbci r18, 0xFF ; 255
a04a: 3f 4f sbci r19, 0xFF ; 255
a04c: d9 01 movw r26, r18
a04e: c8 01 movw r24, r16
a050: 68 94 set
a052: 14 f8 bld r1, 4
a054: b5 95 asr r27
a056: a7 95 ror r26
a058: 97 95 ror r25
a05a: 87 95 ror r24
a05c: 16 94 lsr r1
a05e: d1 f7 brne .-12 ; 0xa054 <MotorRegler+0x3048>
LIMIT_MIN_MAX(tmp_long, -32 * STICK_GAIN, 64 * STICK_GAIN);
a060: 81 38 cpi r24, 0x81 ; 129
a062: 0f ef ldi r16, 0xFF ; 255
a064: 90 07 cpc r25, r16
a066: a0 07 cpc r26, r16
a068: b0 07 cpc r27, r16
a06a: 6c f4 brge .+26 ; 0xa086 <MotorRegler+0x307a>
a06c: 80 e8 ldi r24, 0x80 ; 128
a06e: 9f ef ldi r25, 0xFF ; 255
a070: af ef ldi r26, 0xFF ; 255
a072: bf ef ldi r27, 0xFF ; 255
a074: 80 93 81 03 sts 0x0381, r24
a078: 90 93 82 03 sts 0x0382, r25
a07c: a0 93 83 03 sts 0x0383, r26
a080: b0 93 84 03 sts 0x0384, r27
a084: 1b c0 rjmp .+54 ; 0xa0bc <MotorRegler+0x30b0>
a086: 8f 3f cpi r24, 0xFF ; 255
a088: 91 05 cpc r25, r1
a08a: a1 05 cpc r26, r1
a08c: b1 05 cpc r27, r1
a08e: 09 f0 breq .+2 ; 0xa092 <MotorRegler+0x3086>
a090: 4c f4 brge .+18 ; 0xa0a4 <MotorRegler+0x3098>
GasReduction += tmp_int;
} // EOF no baro range expanding
// ------------------------ D-Part 2: ACC-Z Integral ------------------------
if(Parameter_Hoehe_ACC_Wirkung)
{
tmp_long = ((Mess_Integral_Hoch / 128L) * (int32_t) Parameter_Hoehe_ACC_Wirkung) / (128L / STICK_GAIN);
a092: 80 93 81 03 sts 0x0381, r24
a096: 90 93 82 03 sts 0x0382, r25
a09a: a0 93 83 03 sts 0x0383, r26
a09e: b0 93 84 03 sts 0x0384, r27
a0a2: 0c c0 rjmp .+24 ; 0xa0bc <MotorRegler+0x30b0>
LIMIT_MIN_MAX(tmp_long, -32 * STICK_GAIN, 64 * STICK_GAIN);
a0a4: 80 e0 ldi r24, 0x00 ; 0
a0a6: 91 e0 ldi r25, 0x01 ; 1
a0a8: a0 e0 ldi r26, 0x00 ; 0
a0aa: b0 e0 ldi r27, 0x00 ; 0
a0ac: 80 93 81 03 sts 0x0381, r24
a0b0: 90 93 82 03 sts 0x0382, r25
a0b4: a0 93 83 03 sts 0x0383, r26
a0b8: b0 93 84 03 sts 0x0384, r27
GasReduction += tmp_long;
a0bc: 80 91 81 03 lds r24, 0x0381
a0c0: 90 91 82 03 lds r25, 0x0382
a0c4: c8 0e add r12, r24
a0c6: d9 1e adc r13, r25
/* // ------------------------ D-Part 3: GpsZ ----------------------------------
tmp_int = (Parameter_Hoehe_GPS_Z * (int)FromNaviCtrl_Value.GpsZ)/128L;
LIMIT_MIN_MAX(tmp_int, -32 * STICK_GAIN, 64 * STICK_GAIN);
GasReduction += tmp_int;
*/
GasReduction = (long)((long)GasReduction * HoverGas) / 512; // scale to the gas value
a0c8: 00 91 e8 03 lds r16, 0x03E8
a0cc: 10 91 e9 03 lds r17, 0x03E9
a0d0: 96 01 movw r18, r12
a0d2: d8 01 movw r26, r16
a0d4: 0e 94 ad b1 call 0x1635a ; 0x1635a <__mulhisi3>
a0d8: 2b 01 movw r4, r22
a0da: 3c 01 movw r6, r24
a0dc: 99 23 and r25, r25
a0de: 34 f4 brge .+12 ; 0xa0ec <MotorRegler+0x30e0>
a0e0: 2f ef ldi r18, 0xFF ; 255
a0e2: 42 0e add r4, r18
a0e4: 21 e0 ldi r18, 0x01 ; 1
a0e6: 52 1e adc r5, r18
a0e8: 61 1c adc r6, r1
a0ea: 71 1c adc r7, r1
a0ec: d3 01 movw r26, r6
a0ee: c2 01 movw r24, r4
a0f0: 07 2e mov r0, r23
a0f2: 79 e0 ldi r23, 0x09 ; 9
a0f4: b5 95 asr r27
a0f6: a7 95 ror r26
a0f8: 97 95 ror r25
a0fa: 87 95 ror r24
a0fc: 7a 95 dec r23
a0fe: d1 f7 brne .-12 ; 0xa0f4 <MotorRegler+0x30e8>
a100: 70 2d mov r23, r0
 
// ------------------------ ----------------------------------
HCGas -= GasReduction;
a102: bf 01 movw r22, r30
a104: 68 1b sub r22, r24
a106: 79 0b sbc r23, r25
// limit deviation from hoover point within the target region
if(!AltitudeSetpointTrimming && HoverGas > 0) // height setpoint is not changed and hoover gas not zero
a108: 80 91 f8 03 lds r24, 0x03F8
a10c: 90 91 f9 03 lds r25, 0x03F9
a110: 89 2b or r24, r25
a112: 09 f0 breq .+2 ; 0xa116 <MotorRegler+0x310a>
a114: 79 c0 rjmp .+242 ; 0xa208 <MotorRegler+0x31fc>
a116: 10 16 cp r1, r16
a118: 11 06 cpc r1, r17
a11a: 0c f0 brlt .+2 ; 0xa11e <MotorRegler+0x3112>
a11c: 75 c0 rjmp .+234 ; 0xa208 <MotorRegler+0x31fc>
{
unsigned int tmp;
tmp = abs(HeightDeviation);
a11e: 20 91 85 03 lds r18, 0x0385
a122: 30 91 86 03 lds r19, 0x0386
a126: c9 01 movw r24, r18
a128: 33 23 and r19, r19
a12a: 24 f4 brge .+8 ; 0xa134 <MotorRegler+0x3128>
a12c: 88 27 eor r24, r24
a12e: 99 27 eor r25, r25
a130: 82 1b sub r24, r18
a132: 93 0b sbc r25, r19
if(tmp <= 60)
a134: 8d 33 cpi r24, 0x3D ; 61
a136: 91 05 cpc r25, r1
a138: 90 f4 brcc .+36 ; 0xa15e <MotorRegler+0x3152>
{
LIMIT_MIN_MAX(HCGas, HoverGasMin, HoverGasMax); // limit gas around the hoover point
a13a: 80 91 16 04 lds r24, 0x0416
a13e: 90 91 17 04 lds r25, 0x0417
a142: 86 17 cp r24, r22
a144: 97 07 cpc r25, r23
a146: 0c f0 brlt .+2 ; 0xa14a <MotorRegler+0x313e>
a148: 5c c0 rjmp .+184 ; 0xa202 <MotorRegler+0x31f6>
a14a: 80 91 3e 01 lds r24, 0x013E
a14e: 90 91 3f 01 lds r25, 0x013F
a152: 86 17 cp r24, r22
a154: 97 07 cpc r25, r23
a156: 0c f0 brlt .+2 ; 0xa15a <MotorRegler+0x314e>
a158: 57 c0 rjmp .+174 ; 0xa208 <MotorRegler+0x31fc>
a15a: bc 01 movw r22, r24
a15c: 55 c0 rjmp .+170 ; 0xa208 <MotorRegler+0x31fc>
}
else
{
tmp = (tmp - 60) / 32;
a15e: cc 97 sbiw r24, 0x3c ; 60
a160: 96 95 lsr r25
a162: 87 95 ror r24
a164: 92 95 swap r25
a166: 82 95 swap r24
a168: 8f 70 andi r24, 0x0F ; 15
a16a: 89 27 eor r24, r25
a16c: 9f 70 andi r25, 0x0F ; 15
a16e: 89 27 eor r24, r25
a170: 80 31 cpi r24, 0x10 ; 16
a172: 91 05 cpc r25, r1
a174: 10 f0 brcs .+4 ; 0xa17a <MotorRegler+0x316e>
a176: 8f e0 ldi r24, 0x0F ; 15
a178: 90 e0 ldi r25, 0x00 ; 0
if(tmp > 15) tmp = 15;
if(HeightDeviation > 0)
a17a: 12 16 cp r1, r18
a17c: 13 06 cpc r1, r19
a17e: 1c f5 brge .+70 ; 0xa1c6 <MotorRegler+0x31ba>
{
tmp = (HoverGasMin * (16 - tmp)) / 16;
a180: 40 e1 ldi r20, 0x10 ; 16
a182: 50 e0 ldi r21, 0x00 ; 0
a184: 48 1b sub r20, r24
a186: 59 0b sbc r21, r25
a188: 20 91 16 04 lds r18, 0x0416
a18c: 30 91 17 04 lds r19, 0x0417
a190: 42 9f mul r20, r18
a192: c0 01 movw r24, r0
a194: 43 9f mul r20, r19
a196: 90 0d add r25, r0
a198: 52 9f mul r21, r18
a19a: 90 0d add r25, r0
a19c: 11 24 eor r1, r1
a19e: 92 95 swap r25
a1a0: 82 95 swap r24
a1a2: 8f 70 andi r24, 0x0F ; 15
a1a4: 89 27 eor r24, r25
a1a6: 9f 70 andi r25, 0x0F ; 15
a1a8: 89 27 eor r24, r25
LIMIT_MIN_MAX(HCGas, tmp, HoverGasMax); // limit gas around the hoover point
a1aa: 86 17 cp r24, r22
a1ac: 97 07 cpc r25, r23
a1ae: 10 f0 brcs .+4 ; 0xa1b4 <MotorRegler+0x31a8>
a1b0: bc 01 movw r22, r24
a1b2: 2a c0 rjmp .+84 ; 0xa208 <MotorRegler+0x31fc>
a1b4: 80 91 3e 01 lds r24, 0x013E
a1b8: 90 91 3f 01 lds r25, 0x013F
a1bc: 86 17 cp r24, r22
a1be: 97 07 cpc r25, r23
a1c0: 1c f5 brge .+70 ; 0xa208 <MotorRegler+0x31fc>
a1c2: bc 01 movw r22, r24
a1c4: 21 c0 rjmp .+66 ; 0xa208 <MotorRegler+0x31fc>
}
else
{
tmp = (HoverGasMax * (tmp + 16)) / 16;
a1c6: 40 96 adiw r24, 0x10 ; 16
a1c8: 40 91 3e 01 lds r20, 0x013E
a1cc: 50 91 3f 01 lds r21, 0x013F
a1d0: 84 9f mul r24, r20
a1d2: 90 01 movw r18, r0
a1d4: 85 9f mul r24, r21
a1d6: 30 0d add r19, r0
a1d8: 94 9f mul r25, r20
a1da: 30 0d add r19, r0
a1dc: 11 24 eor r1, r1
a1de: 32 95 swap r19
a1e0: 22 95 swap r18
a1e2: 2f 70 andi r18, 0x0F ; 15
a1e4: 23 27 eor r18, r19
a1e6: 3f 70 andi r19, 0x0F ; 15
a1e8: 23 27 eor r18, r19
LIMIT_MIN_MAX(HCGas, HoverGasMin, tmp); // limit gas around the hoover point
a1ea: 80 91 16 04 lds r24, 0x0416
a1ee: 90 91 17 04 lds r25, 0x0417
a1f2: 86 17 cp r24, r22
a1f4: 97 07 cpc r25, r23
a1f6: 3c f4 brge .+14 ; 0xa206 <MotorRegler+0x31fa>
a1f8: 62 17 cp r22, r18
a1fa: 73 07 cpc r23, r19
a1fc: 28 f0 brcs .+10 ; 0xa208 <MotorRegler+0x31fc>
a1fe: b9 01 movw r22, r18
a200: 03 c0 rjmp .+6 ; 0xa208 <MotorRegler+0x31fc>
{
unsigned int tmp;
tmp = abs(HeightDeviation);
if(tmp <= 60)
{
LIMIT_MIN_MAX(HCGas, HoverGasMin, HoverGasMax); // limit gas around the hoover point
a202: bc 01 movw r22, r24
a204: 01 c0 rjmp .+2 ; 0xa208 <MotorRegler+0x31fc>
LIMIT_MIN_MAX(HCGas, tmp, HoverGasMax); // limit gas around the hoover point
}
else
{
tmp = (HoverGasMax * (tmp + 16)) / 16;
LIMIT_MIN_MAX(HCGas, HoverGasMin, tmp); // limit gas around the hoover point
a206: bc 01 movw r22, r24
}
}
}
// strech control output by inverse attitude projection 1/cos
// + 1/cos(angle) ++++++++++++++++++++++++++
tmp_long2 = (int32_t)HCGas;
a208: cb 01 movw r24, r22
a20a: aa 27 eor r26, r26
a20c: 97 fd sbrc r25, 7
a20e: a0 95 com r26
a210: ba 2f mov r27, r26
tmp_long2 *= 8192L;
a212: bc 01 movw r22, r24
a214: cd 01 movw r24, r26
a216: 05 2e mov r0, r21
a218: 5d e0 ldi r21, 0x0D ; 13
a21a: 66 0f add r22, r22
a21c: 77 1f adc r23, r23
a21e: 88 1f adc r24, r24
a220: 99 1f adc r25, r25
a222: 5a 95 dec r21
a224: d1 f7 brne .-12 ; 0xa21a <MotorRegler+0x320e>
a226: 50 2d mov r21, r0
tmp_long2 /= CosAttitude;
a228: 20 91 2d 06 lds r18, 0x062D
a22c: 30 91 2e 06 lds r19, 0x062E
a230: 44 27 eor r20, r20
a232: 37 fd sbrc r19, 7
a234: 40 95 com r20
a236: 54 2f mov r21, r20
a238: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
a23c: 20 93 7d 03 sts 0x037D, r18
a240: 30 93 7e 03 sts 0x037E, r19
a244: 40 93 7f 03 sts 0x037F, r20
a248: 50 93 80 03 sts 0x0380, r21
HCGas = (int16_t)tmp_long2;
// update height control gas averaging
FilterHCGas = (FilterHCGas * (HC_GAS_AVERAGE - 1) + HCGas) / HC_GAS_AVERAGE;
a24c: 80 91 7b 03 lds r24, 0x037B
a250: 90 91 7c 03 lds r25, 0x037C
a254: bc 01 movw r22, r24
a256: 66 0f add r22, r22
a258: 77 1f adc r23, r23
a25a: 86 0f add r24, r22
a25c: 97 1f adc r25, r23
a25e: 28 0f add r18, r24
a260: 39 1f adc r19, r25
a262: 33 23 and r19, r19
a264: 14 f4 brge .+4 ; 0xa26a <MotorRegler+0x325e>
a266: 2d 5f subi r18, 0xFD ; 253
a268: 3f 4f sbci r19, 0xFF ; 255
a26a: 35 95 asr r19
a26c: 27 95 ror r18
a26e: 35 95 asr r19
a270: 27 95 ror r18
a272: 30 93 7c 03 sts 0x037C, r19
a276: 20 93 7b 03 sts 0x037B, r18
// limit height control gas pd-control output
LIMIT_MIN_MAX(FilterHCGas, EE_Parameter.Hoehe_MinGas * STICK_GAIN, (MAX_GAS - 20) * STICK_GAIN);
a27a: 80 91 4c 05 lds r24, 0x054C
a27e: 90 e0 ldi r25, 0x00 ; 0
a280: 88 0f add r24, r24
a282: 99 1f adc r25, r25
a284: 88 0f add r24, r24
a286: 99 1f adc r25, r25
a288: 82 17 cp r24, r18
a28a: 93 07 cpc r25, r19
a28c: 2c f0 brlt .+10 ; 0xa298 <MotorRegler+0x328c>
a28e: 90 93 7c 03 sts 0x037C, r25
a292: 80 93 7b 03 sts 0x037B, r24
a296: 0f c0 rjmp .+30 ; 0xa2b6 <MotorRegler+0x32aa>
a298: 80 91 64 06 lds r24, 0x0664
a29c: 90 e0 ldi r25, 0x00 ; 0
a29e: 44 97 sbiw r24, 0x14 ; 20
a2a0: 88 0f add r24, r24
a2a2: 99 1f adc r25, r25
a2a4: 88 0f add r24, r24
a2a6: 99 1f adc r25, r25
a2a8: 28 17 cp r18, r24
a2aa: 39 07 cpc r19, r25
a2ac: 24 f0 brlt .+8 ; 0xa2b6 <MotorRegler+0x32aa>
a2ae: 90 93 7c 03 sts 0x037C, r25
a2b2: 80 93 7b 03 sts 0x037B, r24
// set GasMischanteil to HeightControlGasFilter
if(Parameter_ExtraConfig & CFG2_HEIGHT_LIMIT)
a2b6: 80 91 40 06 lds r24, 0x0640
a2ba: 80 ff sbrs r24, 0
a2bc: 10 c0 rjmp .+32 ; 0xa2de <MotorRegler+0x32d2>
{ // old version
LIMIT_MAX(FilterHCGas, GasMischanteil); // nicht mehr als Gas
a2be: 80 91 7b 03 lds r24, 0x037B
a2c2: 90 91 7c 03 lds r25, 0x037C
a2c6: 82 15 cp r24, r2
a2c8: 93 05 cpc r25, r3
a2ca: 24 f0 brlt .+8 ; 0xa2d4 <MotorRegler+0x32c8>
a2cc: 30 92 7c 03 sts 0x037C, r3
a2d0: 20 92 7b 03 sts 0x037B, r2
GasMischanteil = FilterHCGas;
a2d4: 20 90 7b 03 lds r2, 0x037B
a2d8: 30 90 7c 03 lds r3, 0x037C
a2dc: 00 c2 rjmp .+1024 ; 0xa6de <MotorRegler+0x36d2>
}
else GasMischanteil = FilterHCGas + (GasMischanteil - HoverGas) / 4; // only in Vario-Mode
a2de: 20 1a sub r2, r16
a2e0: 31 0a sbc r3, r17
a2e2: c1 01 movw r24, r2
a2e4: 99 23 and r25, r25
a2e6: 0c f4 brge .+2 ; 0xa2ea <MotorRegler+0x32de>
a2e8: 03 96 adiw r24, 0x03 ; 3
a2ea: 95 95 asr r25
a2ec: 87 95 ror r24
a2ee: 95 95 asr r25
a2f0: 87 95 ror r24
a2f2: 20 91 7b 03 lds r18, 0x037B
a2f6: 30 91 7c 03 lds r19, 0x037C
a2fa: 1c 01 movw r2, r24
a2fc: 22 0e add r2, r18
a2fe: 33 1e adc r3, r19
a300: ee c1 rjmp .+988 ; 0xa6de <MotorRegler+0x36d2>
}
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
else // ACC-Altitude control
{
// from this point the Heigth Control Algorithm is identical for both versions
if(BaroExpandActive) // baro range expanding active
a302: 20 91 59 04 lds r18, 0x0459
a306: 30 91 5a 04 lds r19, 0x045A
a30a: 23 2b or r18, r19
a30c: 59 f0 breq .+22 ; 0xa324 <MotorRegler+0x3318>
{
HCGas = HoverGas; // hover while expanding baro adc range
a30e: e0 91 e8 03 lds r30, 0x03E8
a312: f0 91 e9 03 lds r31, 0x03E9
HeightDeviation = 0;
a316: 10 92 86 03 sts 0x0386, r1
a31a: 10 92 85 03 sts 0x0385, r1
if((Parameter_GlobalConfig & CFG_HOEHENREGELUNG) && !(Looping_Roll || Looping_Nick) && !(VersionInfo.HardwareError[0] & 0x7F)) // Höhenregelung
{
#define HOVER_GAS_AVERAGE 16384L // 16384 * 2ms = 32s averaging
#define HC_GAS_AVERAGE 4 // 4 * 2ms= 8ms averaging
 
int HCGas, GasReduction = 0;
a31e: 41 2c mov r4, r1
a320: 51 2c mov r5, r1
a322: 3c c1 rjmp .+632 ; 0xa59c <MotorRegler+0x3590>
HeightDeviation = 0;
} // EOF // baro range expanding active
else // valid data from air pressure sensor
{
// ------------------------- P-Part ----------------------------
tmp_long = (HoehenWertF - SollHoehe); // positive when too high
a324: 84 1b sub r24, r20
a326: 95 0b sbc r25, r21
a328: a6 0b sbc r26, r22
a32a: b7 0b sbc r27, r23
LIMIT_MIN_MAX(tmp_long, -32767L, 32767L); // avoid overflov when casting to int16_t
a32c: 82 30 cpi r24, 0x02 ; 2
a32e: 30 e8 ldi r19, 0x80 ; 128
a330: 93 07 cpc r25, r19
a332: 3f ef ldi r19, 0xFF ; 255
a334: a3 07 cpc r26, r19
a336: b3 07 cpc r27, r19
a338: 6c f4 brge .+26 ; 0xa354 <MotorRegler+0x3348>
a33a: 81 e0 ldi r24, 0x01 ; 1
a33c: 90 e8 ldi r25, 0x80 ; 128
a33e: af ef ldi r26, 0xFF ; 255
a340: bf ef ldi r27, 0xFF ; 255
a342: 80 93 81 03 sts 0x0381, r24
a346: 90 93 82 03 sts 0x0382, r25
a34a: a0 93 83 03 sts 0x0383, r26
a34e: b0 93 84 03 sts 0x0384, r27
a352: 1b c0 rjmp .+54 ; 0xa38a <MotorRegler+0x337e>
a354: 8f 3f cpi r24, 0xFF ; 255
a356: 4f e7 ldi r20, 0x7F ; 127
a358: 94 07 cpc r25, r20
a35a: a1 05 cpc r26, r1
a35c: b1 05 cpc r27, r1
a35e: 4c f4 brge .+18 ; 0xa372 <MotorRegler+0x3366>
HeightDeviation = 0;
} // EOF // baro range expanding active
else // valid data from air pressure sensor
{
// ------------------------- P-Part ----------------------------
tmp_long = (HoehenWertF - SollHoehe); // positive when too high
a360: 80 93 81 03 sts 0x0381, r24
a364: 90 93 82 03 sts 0x0382, r25
a368: a0 93 83 03 sts 0x0383, r26
a36c: b0 93 84 03 sts 0x0384, r27
a370: 0c c0 rjmp .+24 ; 0xa38a <MotorRegler+0x337e>
LIMIT_MIN_MAX(tmp_long, -32767L, 32767L); // avoid overflov when casting to int16_t
a372: 8f ef ldi r24, 0xFF ; 255
a374: 9f e7 ldi r25, 0x7F ; 127
a376: a0 e0 ldi r26, 0x00 ; 0
a378: b0 e0 ldi r27, 0x00 ; 0
a37a: 80 93 81 03 sts 0x0381, r24
a37e: 90 93 82 03 sts 0x0382, r25
a382: a0 93 83 03 sts 0x0383, r26
a386: b0 93 84 03 sts 0x0384, r27
HeightDeviation = (int)(tmp_long); // positive when too high
a38a: 20 91 81 03 lds r18, 0x0381
a38e: 30 91 82 03 lds r19, 0x0382
a392: 40 91 83 03 lds r20, 0x0383
a396: 50 91 84 03 lds r21, 0x0384
a39a: 30 93 86 03 sts 0x0386, r19
a39e: 20 93 85 03 sts 0x0385, r18
tmp_long = (tmp_long * (long)Parameter_Hoehe_P) / 32L; // p-part
a3a2: a0 91 39 01 lds r26, 0x0139
a3a6: b0 e0 ldi r27, 0x00 ; 0
a3a8: 0e 94 c8 b1 call 0x16390 ; 0x16390 <__muluhisi3>
a3ac: 8b 01 movw r16, r22
a3ae: 9c 01 movw r18, r24
a3b0: 99 23 and r25, r25
a3b2: 24 f4 brge .+8 ; 0xa3bc <MotorRegler+0x33b0>
a3b4: 01 5e subi r16, 0xE1 ; 225
a3b6: 1f 4f sbci r17, 0xFF ; 255
a3b8: 2f 4f sbci r18, 0xFF ; 255
a3ba: 3f 4f sbci r19, 0xFF ; 255
a3bc: d9 01 movw r26, r18
a3be: c8 01 movw r24, r16
a3c0: 68 94 set
a3c2: 14 f8 bld r1, 4
a3c4: b5 95 asr r27
a3c6: a7 95 ror r26
a3c8: 97 95 ror r25
a3ca: 87 95 ror r24
a3cc: 16 94 lsr r1
a3ce: d1 f7 brne .-12 ; 0xa3c4 <MotorRegler+0x33b8>
LIMIT_MIN_MAX(tmp_long, -511 * STICK_GAIN, 512 * STICK_GAIN); // more than full range makes sense
a3d0: 85 30 cpi r24, 0x05 ; 5
a3d2: 58 ef ldi r21, 0xF8 ; 248
a3d4: 95 07 cpc r25, r21
a3d6: 5f ef ldi r21, 0xFF ; 255
a3d8: a5 07 cpc r26, r21
a3da: b5 07 cpc r27, r21
a3dc: 6c f4 brge .+26 ; 0xa3f8 <MotorRegler+0x33ec>
a3de: 84 e0 ldi r24, 0x04 ; 4
a3e0: 98 ef ldi r25, 0xF8 ; 248
a3e2: af ef ldi r26, 0xFF ; 255
a3e4: bf ef ldi r27, 0xFF ; 255
a3e6: 80 93 81 03 sts 0x0381, r24
a3ea: 90 93 82 03 sts 0x0382, r25
a3ee: a0 93 83 03 sts 0x0383, r26
a3f2: b0 93 84 03 sts 0x0384, r27
a3f6: 1b c0 rjmp .+54 ; 0xa42e <MotorRegler+0x3422>
a3f8: 81 15 cp r24, r1
a3fa: 68 e0 ldi r22, 0x08 ; 8
a3fc: 96 07 cpc r25, r22
a3fe: a1 05 cpc r26, r1
a400: b1 05 cpc r27, r1
a402: 4c f4 brge .+18 ; 0xa416 <MotorRegler+0x340a>
{
// ------------------------- P-Part ----------------------------
tmp_long = (HoehenWertF - SollHoehe); // positive when too high
LIMIT_MIN_MAX(tmp_long, -32767L, 32767L); // avoid overflov when casting to int16_t
HeightDeviation = (int)(tmp_long); // positive when too high
tmp_long = (tmp_long * (long)Parameter_Hoehe_P) / 32L; // p-part
a404: 80 93 81 03 sts 0x0381, r24
a408: 90 93 82 03 sts 0x0382, r25
a40c: a0 93 83 03 sts 0x0383, r26
a410: b0 93 84 03 sts 0x0384, r27
a414: 0c c0 rjmp .+24 ; 0xa42e <MotorRegler+0x3422>
LIMIT_MIN_MAX(tmp_long, -511 * STICK_GAIN, 512 * STICK_GAIN); // more than full range makes sense
a416: 80 e0 ldi r24, 0x00 ; 0
a418: 98 e0 ldi r25, 0x08 ; 8
a41a: a0 e0 ldi r26, 0x00 ; 0
a41c: b0 e0 ldi r27, 0x00 ; 0
a41e: 80 93 81 03 sts 0x0381, r24
a422: 90 93 82 03 sts 0x0382, r25
a426: a0 93 83 03 sts 0x0383, r26
a42a: b0 93 84 03 sts 0x0384, r27
GasReduction = tmp_long;
a42e: 40 90 81 03 lds r4, 0x0381
a432: 50 90 82 03 lds r5, 0x0382
a436: 60 90 83 03 lds r6, 0x0383
a43a: 70 90 84 03 lds r7, 0x0384
// ------------------------ D-Part: ACC-Z Integral ------------------------
tmp_long = VarioMeter + (AdWertAccHoch * Parameter_Hoehe_ACC_Wirkung)/256;
a43e: 40 91 5b 03 lds r20, 0x035B
a442: 50 91 5c 03 lds r21, 0x035C
a446: 20 91 54 03 lds r18, 0x0354
a44a: 30 91 55 03 lds r19, 0x0355
a44e: 60 91 38 01 lds r22, 0x0138
a452: 64 9f mul r22, r20
a454: c0 01 movw r24, r0
a456: 65 9f mul r22, r21
a458: 90 0d add r25, r0
a45a: 11 24 eor r1, r1
a45c: 99 23 and r25, r25
a45e: 14 f4 brge .+4 ; 0xa464 <MotorRegler+0x3458>
a460: 81 50 subi r24, 0x01 ; 1
a462: 9f 4f sbci r25, 0xFF ; 255
a464: 89 2f mov r24, r25
a466: 99 0f add r25, r25
a468: 99 0b sbc r25, r25
a46a: 8c 01 movw r16, r24
a46c: 02 0f add r16, r18
a46e: 13 1f adc r17, r19
a470: 22 27 eor r18, r18
a472: 17 fd sbrc r17, 7
a474: 20 95 com r18
a476: 32 2f mov r19, r18
// ------------------------- D-Part: Vario Meter ----------------------------
if(WaypointTrimming) {
a478: 80 91 f2 03 lds r24, 0x03F2
a47c: 88 23 and r24, r24
a47e: 79 f0 breq .+30 ; 0xa49e <MotorRegler+0x3492>
Variance = AltitudeSetpointTrimming * 8;
a480: 80 91 f8 03 lds r24, 0x03F8
a484: 90 91 f9 03 lds r25, 0x03F9
a488: 88 0f add r24, r24
a48a: 99 1f adc r25, r25
a48c: 88 0f add r24, r24
a48e: 99 1f adc r25, r25
a490: 88 0f add r24, r24
a492: 99 1f adc r25, r25
a494: 90 93 c4 03 sts 0x03C4, r25
a498: 80 93 c3 03 sts 0x03C3, r24
a49c: 25 c0 rjmp .+74 ; 0xa4e8 <MotorRegler+0x34dc>
} else {
Variance = AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung*9/32;
a49e: 60 91 50 05 lds r22, 0x0550
a4a2: 40 91 f8 03 lds r20, 0x03F8
a4a6: 50 91 f9 03 lds r21, 0x03F9
a4aa: 64 9f mul r22, r20
a4ac: c0 01 movw r24, r0
a4ae: 65 9f mul r22, r21
a4b0: 90 0d add r25, r0
a4b2: 11 24 eor r1, r1
a4b4: ac 01 movw r20, r24
a4b6: 44 0f add r20, r20
a4b8: 55 1f adc r21, r21
a4ba: 44 0f add r20, r20
a4bc: 55 1f adc r21, r21
a4be: 44 0f add r20, r20
a4c0: 55 1f adc r21, r21
a4c2: 84 0f add r24, r20
a4c4: 95 1f adc r25, r21
a4c6: 99 23 and r25, r25
a4c8: 0c f4 brge .+2 ; 0xa4cc <MotorRegler+0x34c0>
a4ca: 4f 96 adiw r24, 0x1f ; 31
a4cc: 95 95 asr r25
a4ce: 87 95 ror r24
a4d0: 95 95 asr r25
a4d2: 87 95 ror r24
a4d4: 95 95 asr r25
a4d6: 87 95 ror r24
a4d8: 95 95 asr r25
a4da: 87 95 ror r24
a4dc: 95 95 asr r25
a4de: 87 95 ror r24
a4e0: 90 93 c4 03 sts 0x03C4, r25
a4e4: 80 93 c3 03 sts 0x03C3, r24
}
tmp_long -= (long)Variance;
a4e8: 80 91 c3 03 lds r24, 0x03C3
a4ec: 90 91 c4 03 lds r25, 0x03C4
a4f0: aa 27 eor r26, r26
a4f2: 97 fd sbrc r25, 7
a4f4: a0 95 com r26
a4f6: ba 2f mov r27, r26
a4f8: a9 01 movw r20, r18
a4fa: 98 01 movw r18, r16
a4fc: 28 1b sub r18, r24
a4fe: 39 0b sbc r19, r25
a500: 4a 0b sbc r20, r26
a502: 5b 0b sbc r21, r27
tmp_long = (tmp_long * (long)Parameter_Luftdruck_D) / 32; // scale to d-gain parameter
a504: a0 91 3a 01 lds r26, 0x013A
a508: b0 e0 ldi r27, 0x00 ; 0
a50a: 0e 94 c8 b1 call 0x16390 ; 0x16390 <__muluhisi3>
a50e: 8b 01 movw r16, r22
a510: 9c 01 movw r18, r24
a512: 99 23 and r25, r25
a514: 24 f4 brge .+8 ; 0xa51e <MotorRegler+0x3512>
a516: 01 5e subi r16, 0xE1 ; 225
a518: 1f 4f sbci r17, 0xFF ; 255
a51a: 2f 4f sbci r18, 0xFF ; 255
a51c: 3f 4f sbci r19, 0xFF ; 255
a51e: d9 01 movw r26, r18
a520: c8 01 movw r24, r16
a522: 68 94 set
a524: 14 f8 bld r1, 4
a526: b5 95 asr r27
a528: a7 95 ror r26
a52a: 97 95 ror r25
a52c: 87 95 ror r24
a52e: 16 94 lsr r1
a530: d1 f7 brne .-12 ; 0xa526 <MotorRegler+0x351a>
LIMIT_MIN_MAX(tmp_long,-511 * STICK_GAIN, 512 * STICK_GAIN);
a532: 85 30 cpi r24, 0x05 ; 5
a534: 78 ef ldi r23, 0xF8 ; 248
a536: 97 07 cpc r25, r23
a538: 7f ef ldi r23, 0xFF ; 255
a53a: a7 07 cpc r26, r23
a53c: b7 07 cpc r27, r23
a53e: 6c f4 brge .+26 ; 0xa55a <MotorRegler+0x354e>
a540: 84 e0 ldi r24, 0x04 ; 4
a542: 98 ef ldi r25, 0xF8 ; 248
a544: af ef ldi r26, 0xFF ; 255
a546: bf ef ldi r27, 0xFF ; 255
a548: 80 93 81 03 sts 0x0381, r24
a54c: 90 93 82 03 sts 0x0382, r25
a550: a0 93 83 03 sts 0x0383, r26
a554: b0 93 84 03 sts 0x0384, r27
a558: 1b c0 rjmp .+54 ; 0xa590 <MotorRegler+0x3584>
a55a: 81 15 cp r24, r1
a55c: 08 e0 ldi r16, 0x08 ; 8
a55e: 90 07 cpc r25, r16
a560: a1 05 cpc r26, r1
a562: b1 05 cpc r27, r1
a564: 4c f4 brge .+18 ; 0xa578 <MotorRegler+0x356c>
Variance = AltitudeSetpointTrimming * 8;
} else {
Variance = AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung*9/32;
}
tmp_long -= (long)Variance;
tmp_long = (tmp_long * (long)Parameter_Luftdruck_D) / 32; // scale to d-gain parameter
a566: 80 93 81 03 sts 0x0381, r24
a56a: 90 93 82 03 sts 0x0382, r25
a56e: a0 93 83 03 sts 0x0383, r26
a572: b0 93 84 03 sts 0x0384, r27
a576: 0c c0 rjmp .+24 ; 0xa590 <MotorRegler+0x3584>
LIMIT_MIN_MAX(tmp_long,-511 * STICK_GAIN, 512 * STICK_GAIN);
a578: 80 e0 ldi r24, 0x00 ; 0
a57a: 98 e0 ldi r25, 0x08 ; 8
a57c: a0 e0 ldi r26, 0x00 ; 0
a57e: b0 e0 ldi r27, 0x00 ; 0
a580: 80 93 81 03 sts 0x0381, r24
a584: 90 93 82 03 sts 0x0382, r25
a588: a0 93 83 03 sts 0x0383, r26
a58c: b0 93 84 03 sts 0x0384, r27
GasReduction += tmp_long;
a590: 80 91 81 03 lds r24, 0x0381
a594: 90 91 82 03 lds r25, 0x0382
a598: 48 0e add r4, r24
a59a: 59 1e adc r5, r25
} // EOF no baro range expanding
HCGas -= GasReduction;
a59c: e4 19 sub r30, r4
a59e: f5 09 sbc r31, r5
LIMIT_MIN_MAX(HCGas, HoverGasMin, HoverGasMax); // limits gas around hover point
a5a0: 60 91 16 04 lds r22, 0x0416
a5a4: 70 91 17 04 lds r23, 0x0417
a5a8: 6e 17 cp r22, r30
a5aa: 7f 07 cpc r23, r31
a5ac: 4c f4 brge .+18 ; 0xa5c0 <MotorRegler+0x35b4>
a5ae: 80 91 3e 01 lds r24, 0x013E
a5b2: 90 91 3f 01 lds r25, 0x013F
a5b6: bf 01 movw r22, r30
a5b8: 8e 17 cp r24, r30
a5ba: 9f 07 cpc r25, r31
a5bc: 0c f4 brge .+2 ; 0xa5c0 <MotorRegler+0x35b4>
a5be: bc 01 movw r22, r24
// strech control output by inverse attitude projection 1/cos
// + 1/cos(angle) ++++++++++++++++++++++++++
tmp_long2 = (int32_t)HCGas;
a5c0: cb 01 movw r24, r22
a5c2: aa 27 eor r26, r26
a5c4: 97 fd sbrc r25, 7
a5c6: a0 95 com r26
a5c8: ba 2f mov r27, r26
tmp_long2 *= 8192L;
a5ca: bc 01 movw r22, r24
a5cc: cd 01 movw r24, r26
a5ce: 05 2e mov r0, r21
a5d0: 5d e0 ldi r21, 0x0D ; 13
a5d2: 66 0f add r22, r22
a5d4: 77 1f adc r23, r23
a5d6: 88 1f adc r24, r24
a5d8: 99 1f adc r25, r25
a5da: 5a 95 dec r21
a5dc: d1 f7 brne .-12 ; 0xa5d2 <MotorRegler+0x35c6>
a5de: 50 2d mov r21, r0
tmp_long2 /= CosAttitude;
a5e0: 20 91 2d 06 lds r18, 0x062D
a5e4: 30 91 2e 06 lds r19, 0x062E
a5e8: 44 27 eor r20, r20
a5ea: 37 fd sbrc r19, 7
a5ec: 40 95 com r20
a5ee: 54 2f mov r21, r20
a5f0: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
a5f4: 20 93 7d 03 sts 0x037D, r18
a5f8: 30 93 7e 03 sts 0x037E, r19
a5fc: 40 93 7f 03 sts 0x037F, r20
a600: 50 93 80 03 sts 0x0380, r21
HCGas = (int16_t)tmp_long2;
// update height control gas averaging
FilterHCGas = (FilterHCGas * (HC_GAS_AVERAGE - 1) + HCGas) / HC_GAS_AVERAGE;
a604: 80 91 7b 03 lds r24, 0x037B
a608: 90 91 7c 03 lds r25, 0x037C
a60c: bc 01 movw r22, r24
a60e: 66 0f add r22, r22
a610: 77 1f adc r23, r23
a612: 86 0f add r24, r22
a614: 97 1f adc r25, r23
a616: 28 0f add r18, r24
a618: 39 1f adc r19, r25
a61a: 33 23 and r19, r19
a61c: 14 f4 brge .+4 ; 0xa622 <MotorRegler+0x3616>
a61e: 2d 5f subi r18, 0xFD ; 253
a620: 3f 4f sbci r19, 0xFF ; 255
a622: 35 95 asr r19
a624: 27 95 ror r18
a626: 35 95 asr r19
a628: 27 95 ror r18
a62a: 30 93 7c 03 sts 0x037C, r19
a62e: 20 93 7b 03 sts 0x037B, r18
// limit height control gas pd-control output
int min;
if(GasIsZeroCnt > 400 || (FC_StatusFlags2 & FC_STATUS2_WAIT_FOR_TAKEOFF)) min = EE_Parameter.Gas_Min; else min = EE_Parameter.Hoehe_MinGas;
a632: 80 91 c5 03 lds r24, 0x03C5
a636: 90 91 c6 03 lds r25, 0x03C6
a63a: 81 39 cpi r24, 0x91 ; 145
a63c: 91 40 sbci r25, 0x01 ; 1
a63e: 20 f4 brcc .+8 ; 0xa648 <MotorRegler+0x363c>
a640: 80 91 ca 03 lds r24, 0x03CA
a644: 85 ff sbrs r24, 5
a646: 04 c0 rjmp .+8 ; 0xa650 <MotorRegler+0x3644>
a648: 80 91 58 05 lds r24, 0x0558
a64c: 90 e0 ldi r25, 0x00 ; 0
a64e: 03 c0 rjmp .+6 ; 0xa656 <MotorRegler+0x364a>
a650: 80 91 4c 05 lds r24, 0x054C
a654: 90 e0 ldi r25, 0x00 ; 0
LIMIT_MIN_MAX(FilterHCGas, min * STICK_GAIN, (MAX_GAS - 20) * STICK_GAIN)
a656: 88 0f add r24, r24
a658: 99 1f adc r25, r25
a65a: 88 0f add r24, r24
a65c: 99 1f adc r25, r25
a65e: 82 17 cp r24, r18
a660: 93 07 cpc r25, r19
a662: 2c f0 brlt .+10 ; 0xa66e <MotorRegler+0x3662>
a664: 90 93 7c 03 sts 0x037C, r25
a668: 80 93 7b 03 sts 0x037B, r24
a66c: 0f c0 rjmp .+30 ; 0xa68c <MotorRegler+0x3680>
a66e: 80 91 64 06 lds r24, 0x0664
a672: 90 e0 ldi r25, 0x00 ; 0
a674: 44 97 sbiw r24, 0x14 ; 20
a676: 88 0f add r24, r24
a678: 99 1f adc r25, r25
a67a: 88 0f add r24, r24
a67c: 99 1f adc r25, r25
a67e: 28 17 cp r18, r24
a680: 39 07 cpc r19, r25
a682: 24 f0 brlt .+8 ; 0xa68c <MotorRegler+0x3680>
a684: 90 93 7c 03 sts 0x037C, r25
a688: 80 93 7b 03 sts 0x037B, r24
// set GasMischanteil to HeightControlGasFilter
if(Parameter_ExtraConfig & CFG2_HEIGHT_LIMIT)
a68c: 80 91 40 06 lds r24, 0x0640
a690: 80 ff sbrs r24, 0
a692: 10 c0 rjmp .+32 ; 0xa6b4 <MotorRegler+0x36a8>
{ // old version
LIMIT_MAX(FilterHCGas, GasMischanteil); // nicht mehr als Gas
a694: 80 91 7b 03 lds r24, 0x037B
a698: 90 91 7c 03 lds r25, 0x037C
a69c: 82 15 cp r24, r2
a69e: 93 05 cpc r25, r3
a6a0: 24 f0 brlt .+8 ; 0xa6aa <MotorRegler+0x369e>
a6a2: 30 92 7c 03 sts 0x037C, r3
a6a6: 20 92 7b 03 sts 0x037B, r2
GasMischanteil = FilterHCGas;
a6aa: 20 90 7b 03 lds r2, 0x037B
a6ae: 30 90 7c 03 lds r3, 0x037C
a6b2: 15 c0 rjmp .+42 ; 0xa6de <MotorRegler+0x36d2>
}
else GasMischanteil = FilterHCGas;
a6b4: 20 90 7b 03 lds r2, 0x037B
a6b8: 30 90 7c 03 lds r3, 0x037C
a6bc: 10 c0 rjmp .+32 ; 0xa6de <MotorRegler+0x36d2>
}
}// EOF height control active
else // HC not active
{
//update hoover gas stick value when HC is not active
CalcStickGasHover();
a6be: 0e 94 c4 37 call 0x6f88 ; 0x6f88 <CalcStickGasHover>
StickGasHover = (unsigned int)((unsigned int) StickGasHover * UBat) / BattLowVoltageWarning;
}
else StickGasHover = EE_Parameter.Hoehe_StickNeutralPoint;
LIMIT_MIN_MAX(StickGasHover, 70, 175); // reserve some range for trim up and down
*/
FilterHCGas = GasMischanteil;
a6c2: 30 92 7c 03 sts 0x037C, r3
a6c6: 20 92 7b 03 sts 0x037B, r2
// set both flags to indicate no vario mode
FC_StatusFlags |= (FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN);
a6ca: 80 91 cb 03 lds r24, 0x03CB
a6ce: 80 6c ori r24, 0xC0 ; 192
a6d0: 80 93 cb 03 sts 0x03CB, r24
FC_StatusFlags2 &= ~FC_STATUS2_ALTITUDE_CONTROL;
a6d4: 80 91 ca 03 lds r24, 0x03CA
a6d8: 8d 7f andi r24, 0xFD ; 253
a6da: 80 93 ca 03 sts 0x03CA, r24
}
// Hover gas estimation by averaging gas control output on small z-velocities
// this is done only if height contol option is selected in global config and aircraft is flying
if((FC_StatusFlags & FC_STATUS_FLY))// && !(FC_SatusFlags & FC_STATUS_EMERGENCY_LANDING))
a6de: 80 91 cb 03 lds r24, 0x03CB
a6e2: 81 ff sbrs r24, 1
a6e4: 35 c1 rjmp .+618 ; 0xa950 <MotorRegler+0x3944>
{
//if(HoverGasFilter == 0 || StartTrigger == 1) HoverGasFilter = HOVER_GAS_AVERAGE * (unsigned long)(GasMischanteil); // init estimation
if(HoverGasFilter == 0 || StartTrigger == 1) HoverGasFilter = HOVER_GAS_AVERAGE * (unsigned long)(HoverGas); // 0.90f: geändert
a6e6: 80 91 77 03 lds r24, 0x0377
a6ea: 90 91 78 03 lds r25, 0x0378
a6ee: a0 91 79 03 lds r26, 0x0379
a6f2: b0 91 7a 03 lds r27, 0x037A
a6f6: 89 2b or r24, r25
a6f8: 8a 2b or r24, r26
a6fa: 8b 2b or r24, r27
a6fc: 21 f0 breq .+8 ; 0xa706 <MotorRegler+0x36fa>
a6fe: 80 91 02 04 lds r24, 0x0402
a702: 81 30 cpi r24, 0x01 ; 1
a704: 01 f5 brne .+64 ; 0xa746 <MotorRegler+0x373a>
a706: 80 91 e8 03 lds r24, 0x03E8
a70a: 90 91 e9 03 lds r25, 0x03E9
a70e: aa 27 eor r26, r26
a710: 97 fd sbrc r25, 7
a712: a0 95 com r26
a714: ba 2f mov r27, r26
a716: 07 2e mov r0, r23
a718: 7e e0 ldi r23, 0x0E ; 14
a71a: 88 0f add r24, r24
a71c: 99 1f adc r25, r25
a71e: aa 1f adc r26, r26
a720: bb 1f adc r27, r27
a722: 7a 95 dec r23
a724: d1 f7 brne .-12 ; 0xa71a <MotorRegler+0x370e>
a726: 70 2d mov r23, r0
a728: 80 93 77 03 sts 0x0377, r24
a72c: 90 93 78 03 sts 0x0378, r25
a730: a0 93 79 03 sts 0x0379, r26
a734: b0 93 7a 03 sts 0x037A, r27
if(StartTrigger == 1) StartTrigger = 2;
a738: 80 91 02 04 lds r24, 0x0402
a73c: 81 30 cpi r24, 0x01 ; 1
a73e: 19 f4 brne .+6 ; 0xa746 <MotorRegler+0x373a>
a740: 82 e0 ldi r24, 0x02 ; 2
a742: 80 93 02 04 sts 0x0402, r24
tmp_long2 = (int32_t)GasMischanteil; // take current thrust
tmp_long2 *= CosAttitude; // apply attitude projection
a746: a0 91 2d 06 lds r26, 0x062D
a74a: b0 91 2e 06 lds r27, 0x062E
a74e: 91 01 movw r18, r2
a750: 0e 94 ad b1 call 0x1635a ; 0x1635a <__mulhisi3>
tmp_long2 /= 8192;
a754: 8b 01 movw r16, r22
a756: 9c 01 movw r18, r24
a758: 99 23 and r25, r25
a75a: 24 f4 brge .+8 ; 0xa764 <MotorRegler+0x3758>
a75c: 01 50 subi r16, 0x01 ; 1
a75e: 10 4e sbci r17, 0xE0 ; 224
a760: 2f 4f sbci r18, 0xFF ; 255
a762: 3f 4f sbci r19, 0xFF ; 255
a764: d9 01 movw r26, r18
a766: c8 01 movw r24, r16
a768: 07 2e mov r0, r23
a76a: 7d e0 ldi r23, 0x0D ; 13
a76c: b5 95 asr r27
a76e: a7 95 ror r26
a770: 97 95 ror r25
a772: 87 95 ror r24
a774: 7a 95 dec r23
a776: d1 f7 brne .-12 ; 0xa76c <MotorRegler+0x3760>
a778: 70 2d mov r23, r0
a77a: 80 93 7d 03 sts 0x037D, r24
a77e: 90 93 7e 03 sts 0x037E, r25
a782: a0 93 7f 03 sts 0x037F, r26
a786: b0 93 80 03 sts 0x0380, r27
// average vertical projected thrust
if(modell_fliegt < 4000) // the first 8 seconds
a78a: 20 91 cc 03 lds r18, 0x03CC
a78e: 30 91 cd 03 lds r19, 0x03CD
a792: 20 3a cpi r18, 0xA0 ; 160
a794: 4f e0 ldi r20, 0x0F ; 15
a796: 34 07 cpc r19, r20
a798: a8 f5 brcc .+106 ; 0xa804 <MotorRegler+0x37f8>
{ // reduce the time constant of averaging by factor of 4 to get much faster a stable value
HoverGasFilter -= HoverGasFilter/(HOVER_GAS_AVERAGE/16L);
a79a: 40 91 77 03 lds r20, 0x0377
a79e: 50 91 78 03 lds r21, 0x0378
a7a2: 60 91 79 03 lds r22, 0x0379
a7a6: 70 91 7a 03 lds r23, 0x037A
a7aa: 2a 01 movw r4, r20
a7ac: 3b 01 movw r6, r22
a7ae: 03 2e mov r0, r19
a7b0: 3a e0 ldi r19, 0x0A ; 10
a7b2: 76 94 lsr r7
a7b4: 67 94 ror r6
a7b6: 57 94 ror r5
a7b8: 47 94 ror r4
a7ba: 3a 95 dec r19
a7bc: d1 f7 brne .-12 ; 0xa7b2 <MotorRegler+0x37a6>
a7be: 30 2d mov r19, r0
a7c0: 44 19 sub r20, r4
a7c2: 55 09 sbc r21, r5
a7c4: 66 09 sbc r22, r6
a7c6: 77 09 sbc r23, r7
HoverGasFilter += 16L * tmp_long2;
a7c8: 2c 01 movw r4, r24
a7ca: 3d 01 movw r6, r26
a7cc: 44 0c add r4, r4
a7ce: 55 1c adc r5, r5
a7d0: 66 1c adc r6, r6
a7d2: 77 1c adc r7, r7
a7d4: 44 0c add r4, r4
a7d6: 55 1c adc r5, r5
a7d8: 66 1c adc r6, r6
a7da: 77 1c adc r7, r7
a7dc: 44 0c add r4, r4
a7de: 55 1c adc r5, r5
a7e0: 66 1c adc r6, r6
a7e2: 77 1c adc r7, r7
a7e4: 44 0c add r4, r4
a7e6: 55 1c adc r5, r5
a7e8: 66 1c adc r6, r6
a7ea: 77 1c adc r7, r7
a7ec: 44 0d add r20, r4
a7ee: 55 1d adc r21, r5
a7f0: 66 1d adc r22, r6
a7f2: 77 1d adc r23, r7
a7f4: 40 93 77 03 sts 0x0377, r20
a7f8: 50 93 78 03 sts 0x0378, r21
a7fc: 60 93 79 03 sts 0x0379, r22
a800: 70 93 7a 03 sts 0x037A, r23
}
if(modell_fliegt < 8000) // the first 16 seconds
a804: 20 34 cpi r18, 0x40 ; 64
a806: 3f 41 sbci r19, 0x1F ; 31
a808: 60 f5 brcc .+88 ; 0xa862 <MotorRegler+0x3856>
{ // reduce the time constant of averaging by factor of 2 to get much faster a stable value
HoverGasFilter -= HoverGasFilter/(HOVER_GAS_AVERAGE/4L);
a80a: 40 91 77 03 lds r20, 0x0377
a80e: 50 91 78 03 lds r21, 0x0378
a812: 60 91 79 03 lds r22, 0x0379
a816: 70 91 7a 03 lds r23, 0x037A
a81a: 8a 01 movw r16, r20
a81c: 9b 01 movw r18, r22
a81e: 0f 2e mov r0, r31
a820: fc e0 ldi r31, 0x0C ; 12
a822: 36 95 lsr r19
a824: 27 95 ror r18
a826: 17 95 ror r17
a828: 07 95 ror r16
a82a: fa 95 dec r31
a82c: d1 f7 brne .-12 ; 0xa822 <MotorRegler+0x3816>
a82e: f0 2d mov r31, r0
a830: 40 1b sub r20, r16
a832: 51 0b sbc r21, r17
a834: 62 0b sbc r22, r18
a836: 73 0b sbc r23, r19
HoverGasFilter += 4L * tmp_long2;
a838: 88 0f add r24, r24
a83a: 99 1f adc r25, r25
a83c: aa 1f adc r26, r26
a83e: bb 1f adc r27, r27
a840: 88 0f add r24, r24
a842: 99 1f adc r25, r25
a844: aa 1f adc r26, r26
a846: bb 1f adc r27, r27
a848: 84 0f add r24, r20
a84a: 95 1f adc r25, r21
a84c: a6 1f adc r26, r22
a84e: b7 1f adc r27, r23
a850: 80 93 77 03 sts 0x0377, r24
a854: 90 93 78 03 sts 0x0378, r25
a858: a0 93 79 03 sts 0x0379, r26
a85c: b0 93 7a 03 sts 0x037A, r27
a860: 41 c0 rjmp .+130 ; 0xa8e4 <MotorRegler+0x38d8>
}
else //later
if(abs(VarioMeter) < 100 && abs(HoehenWertF - SollHoehe) < 256) // only on small vertical speed & difference is small (only descending)
a862: 20 91 54 03 lds r18, 0x0354
a866: 30 91 55 03 lds r19, 0x0355
a86a: 33 23 and r19, r19
a86c: 1c f4 brge .+6 ; 0xa874 <MotorRegler+0x3868>
a86e: 31 95 neg r19
a870: 21 95 neg r18
a872: 31 09 sbc r19, r1
a874: 24 36 cpi r18, 0x64 ; 100
a876: 31 05 cpc r19, r1
a878: ac f5 brge .+106 ; 0xa8e4 <MotorRegler+0x38d8>
a87a: 20 91 4a 03 lds r18, 0x034A
a87e: 30 91 4b 03 lds r19, 0x034B
a882: 40 91 fa 03 lds r20, 0x03FA
a886: 50 91 fb 03 lds r21, 0x03FB
a88a: 24 1b sub r18, r20
a88c: 35 0b sbc r19, r21
a88e: 21 30 cpi r18, 0x01 ; 1
a890: 6f ef ldi r22, 0xFF ; 255
a892: 36 07 cpc r19, r22
a894: 3c f1 brlt .+78 ; 0xa8e4 <MotorRegler+0x38d8>
a896: 2f 3f cpi r18, 0xFF ; 255
a898: 31 05 cpc r19, r1
a89a: 09 f0 breq .+2 ; 0xa89e <MotorRegler+0x3892>
a89c: 1c f5 brge .+70 ; 0xa8e4 <MotorRegler+0x38d8>
{
HoverGasFilter -= HoverGasFilter/HOVER_GAS_AVERAGE;
a89e: 40 91 77 03 lds r20, 0x0377
a8a2: 50 91 78 03 lds r21, 0x0378
a8a6: 60 91 79 03 lds r22, 0x0379
a8aa: 70 91 7a 03 lds r23, 0x037A
a8ae: 8a 01 movw r16, r20
a8b0: 9b 01 movw r18, r22
a8b2: 0f 2e mov r0, r31
a8b4: fe e0 ldi r31, 0x0E ; 14
a8b6: 36 95 lsr r19
a8b8: 27 95 ror r18
a8ba: 17 95 ror r17
a8bc: 07 95 ror r16
a8be: fa 95 dec r31
a8c0: d1 f7 brne .-12 ; 0xa8b6 <MotorRegler+0x38aa>
a8c2: f0 2d mov r31, r0
a8c4: 40 1b sub r20, r16
a8c6: 51 0b sbc r21, r17
a8c8: 62 0b sbc r22, r18
a8ca: 73 0b sbc r23, r19
HoverGasFilter += tmp_long2;
a8cc: 84 0f add r24, r20
a8ce: 95 1f adc r25, r21
a8d0: a6 1f adc r26, r22
a8d2: b7 1f adc r27, r23
a8d4: 80 93 77 03 sts 0x0377, r24
a8d8: 90 93 78 03 sts 0x0378, r25
a8dc: a0 93 79 03 sts 0x0379, r26
a8e0: b0 93 7a 03 sts 0x037A, r27
}
HoverGas = (int16_t)(HoverGasFilter/HOVER_GAS_AVERAGE);
a8e4: 00 91 77 03 lds r16, 0x0377
a8e8: 10 91 78 03 lds r17, 0x0378
a8ec: 20 91 79 03 lds r18, 0x0379
a8f0: 30 91 7a 03 lds r19, 0x037A
a8f4: 0f 2e mov r0, r31
a8f6: fe e0 ldi r31, 0x0E ; 14
a8f8: 36 95 lsr r19
a8fa: 27 95 ror r18
a8fc: 17 95 ror r17
a8fe: 07 95 ror r16
a900: fa 95 dec r31
a902: d1 f7 brne .-12 ; 0xa8f8 <MotorRegler+0x38ec>
a904: f0 2d mov r31, r0
a906: c8 01 movw r24, r16
a908: 10 93 e9 03 sts 0x03E9, r17
a90c: 00 93 e8 03 sts 0x03E8, r16
if(EE_Parameter.Hoehe_HoverBand)
a910: 60 91 52 05 lds r22, 0x0552
a914: 66 23 and r22, r22
a916: 89 f0 breq .+34 ; 0xa93a <MotorRegler+0x392e>
{
int16_t band;
band = HoverGas / EE_Parameter.Hoehe_HoverBand; // the higher the parameter the smaller the range
a918: 70 e0 ldi r23, 0x00 ; 0
a91a: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
HoverGasMin = HoverGas - band;
a91e: c8 01 movw r24, r16
a920: 86 1b sub r24, r22
a922: 97 0b sbc r25, r23
a924: 90 93 17 04 sts 0x0417, r25
a928: 80 93 16 04 sts 0x0416, r24
HoverGasMax = HoverGas + band;
a92c: 06 0f add r16, r22
a92e: 17 1f adc r17, r23
a930: 10 93 3f 01 sts 0x013F, r17
a934: 00 93 3e 01 sts 0x013E, r16
a938: 1f c0 rjmp .+62 ; 0xa978 <MotorRegler+0x396c>
}
else
{ // no limit
HoverGasMin = 0;
a93a: 10 92 17 04 sts 0x0417, r1
a93e: 10 92 16 04 sts 0x0416, r1
HoverGasMax = 1023;
a942: 8f ef ldi r24, 0xFF ; 255
a944: 93 e0 ldi r25, 0x03 ; 3
a946: 90 93 3f 01 sts 0x013F, r25
a94a: 80 93 3e 01 sts 0x013E, r24
a94e: 14 c0 rjmp .+40 ; 0xa978 <MotorRegler+0x396c>
}
}
else
{
StartTrigger = 0;
a950: 10 92 02 04 sts 0x0402, r1
HoverGasFilter = 0;
a954: 10 92 77 03 sts 0x0377, r1
a958: 10 92 78 03 sts 0x0378, r1
a95c: 10 92 79 03 sts 0x0379, r1
a960: 10 92 7a 03 sts 0x037A, r1
HoverGas = 0;
a964: 10 92 e9 03 sts 0x03E9, r1
a968: 10 92 e8 03 sts 0x03E8, r1
a96c: 05 c0 rjmp .+10 ; 0xa978 <MotorRegler+0x396c>
}
}// EOF Parameter_GlobalConfig & CFG_HEIGHT_CONTROL
else
{
// set undefined state to indicate vario off
FC_StatusFlags |= (FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN);
a96e: 80 91 cb 03 lds r24, 0x03CB
a972: 80 6c ori r24, 0xC0 ; 192
a974: 80 93 cb 03 sts 0x03CB, r24
} // EOF no height control
 
// Limits the maximum gas in case of "Out of Range emergency landing"
if(NC_To_FC_Flags & NC_TO_FC_EMERGENCY_LANDING)
a978: 80 91 b7 04 lds r24, 0x04B7
a97c: 81 ff sbrs r24, 1
a97e: 37 c0 rjmp .+110 ; 0xa9ee <MotorRegler+0x39e2>
{
if(GasMischanteil/STICK_GAIN > HooverGasEmergencyPercent && HoverGas) GasMischanteil = HooverGasEmergencyPercent * STICK_GAIN;
a980: 80 91 c7 03 lds r24, 0x03C7
a984: 90 91 c8 03 lds r25, 0x03C8
a988: 91 01 movw r18, r2
a98a: 33 20 and r3, r3
a98c: 14 f4 brge .+4 ; 0xa992 <MotorRegler+0x3986>
a98e: 2d 5f subi r18, 0xFD ; 253
a990: 3f 4f sbci r19, 0xFF ; 255
a992: 35 95 asr r19
a994: 27 95 ror r18
a996: 35 95 asr r19
a998: 27 95 ror r18
a99a: 82 17 cp r24, r18
a99c: 93 07 cpc r25, r19
a99e: 58 f4 brcc .+22 ; 0xa9b6 <MotorRegler+0x39aa>
a9a0: 20 91 e8 03 lds r18, 0x03E8
a9a4: 30 91 e9 03 lds r19, 0x03E9
a9a8: 23 2b or r18, r19
a9aa: 29 f0 breq .+10 ; 0xa9b6 <MotorRegler+0x39aa>
a9ac: 1c 01 movw r2, r24
a9ae: 22 0c add r2, r2
a9b0: 33 1c adc r3, r3
a9b2: 22 0c add r2, r2
a9b4: 33 1c adc r3, r3
SollHoehe = HoehenWertF; // update setpoint to current heigth
a9b6: 80 91 4a 03 lds r24, 0x034A
a9ba: 90 91 4b 03 lds r25, 0x034B
a9be: a0 91 4c 03 lds r26, 0x034C
a9c2: b0 91 4d 03 lds r27, 0x034D
a9c6: 80 93 fa 03 sts 0x03FA, r24
a9ca: 90 93 fb 03 sts 0x03FB, r25
a9ce: a0 93 fc 03 sts 0x03FC, r26
a9d2: b0 93 fd 03 sts 0x03FD, r27
beeptime = 15000;
a9d6: 88 e9 ldi r24, 0x98 ; 152
a9d8: 9a e3 ldi r25, 0x3A ; 58
a9da: 90 93 ce 04 sts 0x04CE, r25
a9de: 80 93 cd 04 sts 0x04CD, r24
BeepMuster = 0x0E00;
a9e2: 80 e0 ldi r24, 0x00 ; 0
a9e4: 9e e0 ldi r25, 0x0E ; 14
a9e6: 90 93 aa 02 sts 0x02AA, r25
a9ea: 80 93 a9 02 sts 0x02A9, r24
}
// limit gas to parameter setting
LIMIT_MIN(GasMischanteil, (MIN_GAS + 10) * STICK_GAIN);
a9ee: 80 91 2c 06 lds r24, 0x062C
a9f2: 90 e0 ldi r25, 0x00 ; 0
a9f4: 0a 96 adiw r24, 0x0a ; 10
a9f6: 88 0f add r24, r24
a9f8: 99 1f adc r25, r25
a9fa: 88 0f add r24, r24
a9fc: 99 1f adc r25, r25
a9fe: 28 16 cp r2, r24
aa00: 39 06 cpc r3, r25
aa02: 0c f4 brge .+2 ; 0xaa06 <MotorRegler+0x39fa>
aa04: 1c 01 movw r2, r24
if(GasMischanteil > (MAX_GAS - 20) * STICK_GAIN) GasMischanteil = (MAX_GAS - 20) * STICK_GAIN;
aa06: 20 91 64 06 lds r18, 0x0664
aa0a: 30 e0 ldi r19, 0x00 ; 0
aa0c: 24 51 subi r18, 0x14 ; 20
aa0e: 31 09 sbc r19, r1
aa10: 22 0f add r18, r18
aa12: 33 1f adc r19, r19
aa14: 22 0f add r18, r18
aa16: 33 1f adc r19, r19
aa18: 3e 82 std Y+6, r3 ; 0x06
aa1a: 2d 82 std Y+5, r2 ; 0x05
aa1c: 22 15 cp r18, r2
aa1e: 33 05 cpc r19, r3
aa20: 14 f4 brge .+4 ; 0xaa26 <MotorRegler+0x3a1a>
aa22: 3e 83 std Y+6, r19 ; 0x06
aa24: 2d 83 std Y+5, r18 ; 0x05
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// all BL-Ctrl connected?
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(MissingMotor || Capacity.MinOfMaxPWM < 254 || NC_ErrorCode) // wait until all BL-Ctrls started and no Errors
aa26: 20 91 df 04 lds r18, 0x04DF
aa2a: 21 11 cpse r18, r1
aa2c: 08 c0 rjmp .+16 ; 0xaa3e <MotorRegler+0x3a32>
aa2e: 20 91 1b 05 lds r18, 0x051B
aa32: 2e 3f cpi r18, 0xFE ; 254
aa34: 20 f0 brcs .+8 ; 0xaa3e <MotorRegler+0x3a32>
aa36: 20 91 bb 04 lds r18, 0x04BB
aa3a: 22 23 and r18, r18
aa3c: 01 f1 breq .+64 ; 0xaa7e <MotorRegler+0x3a72>
if(modell_fliegt > 1 && modell_fliegt < 50 && GasMischanteil > 0) // only during start-phase
aa3e: 20 91 cc 03 lds r18, 0x03CC
aa42: 30 91 cd 03 lds r19, 0x03CD
aa46: 22 50 subi r18, 0x02 ; 2
aa48: 31 09 sbc r19, r1
aa4a: 20 33 cpi r18, 0x30 ; 48
aa4c: 31 05 cpc r19, r1
aa4e: b8 f4 brcc .+46 ; 0xaa7e <MotorRegler+0x3a72>
aa50: 8d 80 ldd r8, Y+5 ; 0x05
aa52: 9e 80 ldd r9, Y+6 ; 0x06
aa54: 18 14 cp r1, r8
aa56: 19 04 cpc r1, r9
aa58: 94 f4 brge .+36 ; 0xaa7e <MotorRegler+0x3a72>
{
modell_fliegt = 1;
aa5a: 21 e0 ldi r18, 0x01 ; 1
aa5c: 30 e0 ldi r19, 0x00 ; 0
aa5e: 30 93 cd 03 sts 0x03CD, r19
aa62: 20 93 cc 03 sts 0x03CC, r18
GasMischanteil = (MIN_GAS + 10) * STICK_GAIN;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(Capacity.MinOfMaxPWM < 40) SpeakHoTT = SPEAK_ERR_MOTOR;
aa66: 20 91 1b 05 lds r18, 0x051B
aa6a: 28 32 cpi r18, 0x28 ; 40
aa6c: 30 f4 brcc .+12 ; 0xaa7a <MotorRegler+0x3a6e>
aa6e: 29 e0 ldi r18, 0x09 ; 9
aa70: 20 93 57 01 sts 0x0157, r18
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(MissingMotor || Capacity.MinOfMaxPWM < 254 || NC_ErrorCode) // wait until all BL-Ctrls started and no Errors
if(modell_fliegt > 1 && modell_fliegt < 50 && GasMischanteil > 0) // only during start-phase
{
modell_fliegt = 1;
GasMischanteil = (MIN_GAS + 10) * STICK_GAIN;
aa74: 9e 83 std Y+6, r25 ; 0x06
aa76: 8d 83 std Y+5, r24 ; 0x05
aa78: 02 c0 rjmp .+4 ; 0xaa7e <MotorRegler+0x3a72>
aa7a: 9e 83 std Y+6, r25 ; 0x06
aa7c: 8d 83 std Y+5, r24 ; 0x05
#endif
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// send SPI pending bytes
if(BytegapSPI == 0) SPI_TransmitByte();
aa7e: 80 91 cc 04 lds r24, 0x04CC
aa82: 81 11 cpse r24, r1
aa84: 02 c0 rjmp .+4 ; 0xaa8a <MotorRegler+0x3a7e>
aa86: 0e 94 de 95 call 0x12bbc ; 0x12bbc <SPI_TransmitByte>
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Mischer und PI-Regler
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DebugOut.Analog[7] = GasMischanteil; // achtung: Muss auf [7] bleiben wegen SPI.C
aa8a: 0d 81 ldd r16, Y+5 ; 0x05
aa8c: 1e 81 ldd r17, Y+6 ; 0x06
aa8e: 10 93 57 0c sts 0x0C57, r17
aa92: 00 93 56 0c sts 0x0C56, r16
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gier-Anteil
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GierMischanteil = MesswertGier - sollGier * STICK_GAIN; // Regler für Gier
aa96: 20 91 9e 03 lds r18, 0x039E
aa9a: 30 91 9f 03 lds r19, 0x039F
aa9e: 22 0f add r18, r18
aaa0: 33 1f adc r19, r19
aaa2: 22 0f add r18, r18
aaa4: 33 1f adc r19, r19
aaa6: 80 91 67 06 lds r24, 0x0667
aaaa: 90 91 68 06 lds r25, 0x0668
aaae: 82 1b sub r24, r18
aab0: 93 0b sbc r25, r19
#define MIN_GIERGAS (40*STICK_GAIN) // unter diesem Gaswert trotzdem Gieren
if(GasMischanteil > MIN_GIERGAS)
aab2: 01 3a cpi r16, 0xA1 ; 161
aab4: 11 05 cpc r17, r1
aab6: c4 f0 brlt .+48 ; 0xaae8 <MotorRegler+0x3adc>
{
if(GierMischanteil > (GasMischanteil / 2)) GierMischanteil = GasMischanteil / 2;
aab8: 98 01 movw r18, r16
aaba: 11 23 and r17, r17
aabc: 14 f4 brge .+4 ; 0xaac2 <MotorRegler+0x3ab6>
aabe: 2f 5f subi r18, 0xFF ; 255
aac0: 3f 4f sbci r19, 0xFF ; 255
aac2: 35 95 asr r19
aac4: 27 95 ror r18
aac6: 52 2f mov r21, r18
aac8: 43 2f mov r20, r19
aaca: 82 17 cp r24, r18
aacc: 93 07 cpc r25, r19
aace: 14 f4 brge .+4 ; 0xaad4 <MotorRegler+0x3ac8>
aad0: 58 2f mov r21, r24
aad2: 49 2f mov r20, r25
if(GierMischanteil < -(GasMischanteil / 2)) GierMischanteil = -(GasMischanteil / 2);
aad4: 31 95 neg r19
aad6: 21 95 neg r18
aad8: 31 09 sbc r19, r1
aada: 85 2f mov r24, r21
aadc: 94 2f mov r25, r20
aade: 82 17 cp r24, r18
aae0: 93 07 cpc r25, r19
aae2: 6c f4 brge .+26 ; 0xaafe <MotorRegler+0x3af2>
aae4: c9 01 movw r24, r18
aae6: 0b c0 rjmp .+22 ; 0xaafe <MotorRegler+0x3af2>
aae8: 81 35 cpi r24, 0x51 ; 81
aaea: 91 05 cpc r25, r1
aaec: 14 f0 brlt .+4 ; 0xaaf2 <MotorRegler+0x3ae6>
aaee: 80 e5 ldi r24, 0x50 ; 80
aaf0: 90 e0 ldi r25, 0x00 ; 0
aaf2: 80 3b cpi r24, 0xB0 ; 176
aaf4: 1f ef ldi r17, 0xFF ; 255
aaf6: 91 07 cpc r25, r17
aaf8: 14 f4 brge .+4 ; 0xaafe <MotorRegler+0x3af2>
aafa: 80 eb ldi r24, 0xB0 ; 176
aafc: 9f ef ldi r25, 0xFF ; 255
else
{
if(GierMischanteil > (MIN_GIERGAS / 2)) GierMischanteil = MIN_GIERGAS / 2;
if(GierMischanteil < -(MIN_GIERGAS / 2)) GierMischanteil = -(MIN_GIERGAS / 2);
}
tmp_int = MAX_GAS*STICK_GAIN;
aafe: 20 91 64 06 lds r18, 0x0664
ab02: 30 e0 ldi r19, 0x00 ; 0
ab04: 22 0f add r18, r18
ab06: 33 1f adc r19, r19
ab08: 22 0f add r18, r18
ab0a: 33 1f adc r19, r19
if(GierMischanteil > ((tmp_int - GasMischanteil))) GierMischanteil = ((tmp_int - GasMischanteil));
ab0c: a9 01 movw r20, r18
ab0e: 8d 80 ldd r8, Y+5 ; 0x05
ab10: 9e 80 ldd r9, Y+6 ; 0x06
ab12: 48 19 sub r20, r8
ab14: 59 09 sbc r21, r9
ab16: 48 17 cp r20, r24
ab18: 59 07 cpc r21, r25
ab1a: 0c f4 brge .+2 ; 0xab1e <MotorRegler+0x3b12>
ab1c: ca 01 movw r24, r20
if(GierMischanteil < -((tmp_int - GasMischanteil))) GierMischanteil = -((tmp_int - GasMischanteil));
ab1e: 0d 81 ldd r16, Y+5 ; 0x05
ab20: 1e 81 ldd r17, Y+6 ; 0x06
ab22: 02 1b sub r16, r18
ab24: 13 0b sbc r17, r19
ab26: 9a 87 std Y+10, r25 ; 0x0a
ab28: 89 87 std Y+9, r24 ; 0x09
ab2a: 80 17 cp r24, r16
ab2c: 91 07 cpc r25, r17
ab2e: 14 f4 brge .+4 ; 0xab34 <MotorRegler+0x3b28>
ab30: 1a 87 std Y+10, r17 ; 0x0a
ab32: 09 87 std Y+9, r16 ; 0x09
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Nick-Achse
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DiffNick = MesswertNick - StickNick; // Differenz bestimmen
ab34: 80 91 14 04 lds r24, 0x0414
ab38: 90 91 15 04 lds r25, 0x0415
ab3c: 20 91 27 06 lds r18, 0x0627
ab40: 30 91 28 06 lds r19, 0x0628
ab44: 28 1b sub r18, r24
ab46: 39 0b sbc r19, r25
ab48: 30 93 33 06 sts 0x0633, r19
ab4c: 20 93 32 06 sts 0x0632, r18
if(IntegralFaktor) SummeNick += IntegralNickMalFaktor - StickNick; // I-Anteil bei Winkelregelung
ab50: 00 91 42 06 lds r16, 0x0642
ab54: 00 23 and r16, r16
ab56: e9 f0 breq .+58 ; 0xab92 <MotorRegler+0x3b86>
ab58: a7 01 movw r20, r14
ab5a: 48 1b sub r20, r24
ab5c: 59 0b sbc r21, r25
ab5e: ca 01 movw r24, r20
ab60: aa 27 eor r26, r26
ab62: 97 fd sbrc r25, 7
ab64: a0 95 com r26
ab66: ba 2f mov r27, r26
ab68: 40 91 26 04 lds r20, 0x0426
ab6c: 50 91 27 04 lds r21, 0x0427
ab70: 60 91 28 04 lds r22, 0x0428
ab74: 70 91 29 04 lds r23, 0x0429
ab78: 84 0f add r24, r20
ab7a: 95 1f adc r25, r21
ab7c: a6 1f adc r26, r22
ab7e: b7 1f adc r27, r23
ab80: 80 93 26 04 sts 0x0426, r24
ab84: 90 93 27 04 sts 0x0427, r25
ab88: a0 93 28 04 sts 0x0428, r26
ab8c: b0 93 29 04 sts 0x0429, r27
ab90: 19 c0 rjmp .+50 ; 0xabc4 <MotorRegler+0x3bb8>
else SummeNick += DiffNick; // I-Anteil bei HH
ab92: 40 91 26 04 lds r20, 0x0426
ab96: 50 91 27 04 lds r21, 0x0427
ab9a: 60 91 28 04 lds r22, 0x0428
ab9e: 70 91 29 04 lds r23, 0x0429
aba2: c9 01 movw r24, r18
aba4: aa 27 eor r26, r26
aba6: 97 fd sbrc r25, 7
aba8: a0 95 com r26
abaa: ba 2f mov r27, r26
abac: 84 0f add r24, r20
abae: 95 1f adc r25, r21
abb0: a6 1f adc r26, r22
abb2: b7 1f adc r27, r23
abb4: 80 93 26 04 sts 0x0426, r24
abb8: 90 93 27 04 sts 0x0427, r25
abbc: a0 93 28 04 sts 0x0428, r26
abc0: b0 93 29 04 sts 0x0429, r27
if(SummeNick > (STICK_GAIN * 16000L)) SummeNick = (STICK_GAIN * 16000L);
abc4: 80 91 26 04 lds r24, 0x0426
abc8: 90 91 27 04 lds r25, 0x0427
abcc: a0 91 28 04 lds r26, 0x0428
abd0: b0 91 29 04 lds r27, 0x0429
abd4: 81 30 cpi r24, 0x01 ; 1
abd6: 5a ef ldi r21, 0xFA ; 250
abd8: 95 07 cpc r25, r21
abda: a1 05 cpc r26, r1
abdc: b1 05 cpc r27, r1
abde: 6c f0 brlt .+26 ; 0xabfa <MotorRegler+0x3bee>
abe0: 80 e0 ldi r24, 0x00 ; 0
abe2: 9a ef ldi r25, 0xFA ; 250
abe4: a0 e0 ldi r26, 0x00 ; 0
abe6: b0 e0 ldi r27, 0x00 ; 0
abe8: 80 93 26 04 sts 0x0426, r24
abec: 90 93 27 04 sts 0x0427, r25
abf0: a0 93 28 04 sts 0x0428, r26
abf4: b0 93 29 04 sts 0x0429, r27
abf8: 11 c0 rjmp .+34 ; 0xac1c <MotorRegler+0x3c10>
if(SummeNick < -(16000L * STICK_GAIN)) SummeNick = -(16000L * STICK_GAIN);
abfa: 81 15 cp r24, r1
abfc: 96 40 sbci r25, 0x06 ; 6
abfe: af 4f sbci r26, 0xFF ; 255
ac00: bf 4f sbci r27, 0xFF ; 255
ac02: 64 f4 brge .+24 ; 0xac1c <MotorRegler+0x3c10>
ac04: 80 e0 ldi r24, 0x00 ; 0
ac06: 96 e0 ldi r25, 0x06 ; 6
ac08: af ef ldi r26, 0xFF ; 255
ac0a: bf ef ldi r27, 0xFF ; 255
ac0c: 80 93 26 04 sts 0x0426, r24
ac10: 90 93 27 04 sts 0x0427, r25
ac14: a0 93 28 04 sts 0x0428, r26
ac18: b0 93 29 04 sts 0x0429, r27
 
if(EE_Parameter.Gyro_Stability <= 8) pd_ergebnis_nick = (EE_Parameter.Gyro_Stability * DiffNick) / 8; // PI-Regler für Nick
ac1c: 10 91 61 05 lds r17, 0x0561
ac20: 19 30 cpi r17, 0x09 ; 9
ac22: 88 f4 brcc .+34 ; 0xac46 <MotorRegler+0x3c3a>
ac24: 12 9f mul r17, r18
ac26: 70 01 movw r14, r0
ac28: 13 9f mul r17, r19
ac2a: f0 0c add r15, r0
ac2c: 11 24 eor r1, r1
ac2e: ff 20 and r15, r15
ac30: 1c f4 brge .+6 ; 0xac38 <MotorRegler+0x3c2c>
ac32: 77 e0 ldi r23, 0x07 ; 7
ac34: e7 0e add r14, r23
ac36: f1 1c adc r15, r1
ac38: f5 94 asr r15
ac3a: e7 94 ror r14
ac3c: f5 94 asr r15
ac3e: e7 94 ror r14
ac40: f5 94 asr r15
ac42: e7 94 ror r14
ac44: 10 c0 rjmp .+32 ; 0xac66 <MotorRegler+0x3c5a>
else pd_ergebnis_nick = ((EE_Parameter.Gyro_Stability / 2) * DiffNick) / 4; // Überlauf verhindern
ac46: 81 2f mov r24, r17
ac48: 86 95 lsr r24
ac4a: 82 9f mul r24, r18
ac4c: 70 01 movw r14, r0
ac4e: 83 9f mul r24, r19
ac50: f0 0c add r15, r0
ac52: 11 24 eor r1, r1
ac54: ff 20 and r15, r15
ac56: 1c f4 brge .+6 ; 0xac5e <MotorRegler+0x3c52>
ac58: 83 e0 ldi r24, 0x03 ; 3
ac5a: e8 0e add r14, r24
ac5c: f1 1c adc r15, r1
ac5e: f5 94 asr r15
ac60: e7 94 ror r14
ac62: f5 94 asr r15
ac64: e7 94 ror r14
pd_ergebnis_nick += SummeNick / Ki;
ac66: 40 90 3b 01 lds r4, 0x013B
ac6a: 50 90 3c 01 lds r5, 0x013C
ac6e: 66 24 eor r6, r6
ac70: 57 fc sbrc r5, 7
ac72: 60 94 com r6
ac74: 76 2c mov r7, r6
ac76: 60 91 26 04 lds r22, 0x0426
ac7a: 70 91 27 04 lds r23, 0x0427
ac7e: 80 91 28 04 lds r24, 0x0428
ac82: 90 91 29 04 lds r25, 0x0429
ac86: a3 01 movw r20, r6
ac88: 92 01 movw r18, r4
ac8a: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
ac8e: 17 01 movw r2, r14
ac90: 22 0e add r2, r18
ac92: 33 1e adc r3, r19
 
tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
ac94: 20 91 27 01 lds r18, 0x0127
ac98: 30 e0 ldi r19, 0x00 ; 0
ac9a: 40 e0 ldi r20, 0x00 ; 0
ac9c: 50 e0 ldi r21, 0x00 ; 0
ac9e: 89 85 ldd r24, Y+9 ; 0x09
aca0: 9a 85 ldd r25, Y+10 ; 0x0a
aca2: 99 23 and r25, r25
aca4: 1c f4 brge .+6 ; 0xacac <MotorRegler+0x3ca0>
aca6: 91 95 neg r25
aca8: 81 95 neg r24
acaa: 91 09 sbc r25, r1
acac: dc 01 movw r26, r24
acae: 99 23 and r25, r25
acb0: 0c f4 brge .+2 ; 0xacb4 <MotorRegler+0x3ca8>
acb2: 11 96 adiw r26, 0x01 ; 1
acb4: b5 95 asr r27
acb6: a7 95 ror r26
acb8: 8d 80 ldd r8, Y+5 ; 0x05
acba: 9e 80 ldd r9, Y+6 ; 0x06
acbc: a8 0d add r26, r8
acbe: b9 1d adc r27, r9
acc0: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
acc4: 6b 01 movw r12, r22
acc6: 7c 01 movw r14, r24
acc8: 99 23 and r25, r25
acca: 2c f4 brge .+10 ; 0xacd6 <MotorRegler+0x3cca>
accc: 2f e3 ldi r18, 0x3F ; 63
acce: c2 0e add r12, r18
acd0: d1 1c adc r13, r1
acd2: e1 1c adc r14, r1
acd4: f1 1c adc r15, r1
acd6: 68 94 set
acd8: 15 f8 bld r1, 5
acda: f5 94 asr r15
acdc: e7 94 ror r14
acde: d7 94 ror r13
ace0: c7 94 ror r12
ace2: 16 94 lsr r1
ace4: d1 f7 brne .-12 ; 0xacda <MotorRegler+0x3cce>
ace6: dc 86 std Y+12, r13 ; 0x0c
ace8: cb 86 std Y+11, r12 ; 0x0b
acea: f1 01 movw r30, r2
acec: c2 14 cp r12, r2
acee: d3 04 cpc r13, r3
acf0: 0c f4 brge .+2 ; 0xacf4 <MotorRegler+0x3ce8>
acf2: f6 01 movw r30, r12
if(pd_ergebnis_nick > tmp_int) pd_ergebnis_nick = tmp_int;
if(pd_ergebnis_nick < -tmp_int) pd_ergebnis_nick = -tmp_int;
acf4: 22 24 eor r2, r2
acf6: 33 24 eor r3, r3
acf8: 2c 18 sub r2, r12
acfa: 3d 08 sbc r3, r13
acfc: fe 87 std Y+14, r31 ; 0x0e
acfe: ed 87 std Y+13, r30 ; 0x0d
ad00: e2 15 cp r30, r2
ad02: f3 05 cpc r31, r3
ad04: 14 f4 brge .+4 ; 0xad0a <MotorRegler+0x3cfe>
ad06: 3e 86 std Y+14, r3 ; 0x0e
ad08: 2d 86 std Y+13, r2 ; 0x0d
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Roll-Achse
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DiffRoll = MesswertRoll - StickRoll; // Differenz bestimmen
ad0a: 20 91 12 04 lds r18, 0x0412
ad0e: 30 91 13 04 lds r19, 0x0413
ad12: 80 91 1c 06 lds r24, 0x061C
ad16: 90 91 1d 06 lds r25, 0x061D
ad1a: 82 1b sub r24, r18
ad1c: 93 0b sbc r25, r19
ad1e: 90 93 1b 06 sts 0x061B, r25
ad22: 80 93 1a 06 sts 0x061A, r24
if(IntegralFaktor) SummeRoll += IntegralRollMalFaktor - StickRoll;// I-Anteil bei Winkelregelung
ad26: 00 23 and r16, r16
ad28: 21 f1 breq .+72 ; 0xad72 <MotorRegler+0x3d66>
ad2a: a2 1a sub r10, r18
ad2c: b3 0a sbc r11, r19
ad2e: 95 01 movw r18, r10
ad30: 44 27 eor r20, r20
ad32: 37 fd sbrc r19, 7
ad34: 40 95 com r20
ad36: 54 2f mov r21, r20
ad38: 29 8b std Y+17, r18 ; 0x11
ad3a: 3a 8b std Y+18, r19 ; 0x12
ad3c: 4b 8b std Y+19, r20 ; 0x13
ad3e: 5c 8b std Y+20, r21 ; 0x14
ad40: 40 91 22 04 lds r20, 0x0422
ad44: 50 91 23 04 lds r21, 0x0423
ad48: 60 91 24 04 lds r22, 0x0424
ad4c: 70 91 25 04 lds r23, 0x0425
ad50: 89 88 ldd r8, Y+17 ; 0x11
ad52: 9a 88 ldd r9, Y+18 ; 0x12
ad54: ab 88 ldd r10, Y+19 ; 0x13
ad56: bc 88 ldd r11, Y+20 ; 0x14
ad58: 84 0e add r8, r20
ad5a: 95 1e adc r9, r21
ad5c: a6 1e adc r10, r22
ad5e: b7 1e adc r11, r23
ad60: 80 92 22 04 sts 0x0422, r8
ad64: 90 92 23 04 sts 0x0423, r9
ad68: a0 92 24 04 sts 0x0424, r10
ad6c: b0 92 25 04 sts 0x0425, r11
ad70: 21 c0 rjmp .+66 ; 0xadb4 <MotorRegler+0x3da8>
else SummeRoll += DiffRoll; // I-Anteil bei HH
ad72: 20 91 22 04 lds r18, 0x0422
ad76: 30 91 23 04 lds r19, 0x0423
ad7a: 40 91 24 04 lds r20, 0x0424
ad7e: 50 91 25 04 lds r21, 0x0425
ad82: 29 83 std Y+1, r18 ; 0x01
ad84: 3a 83 std Y+2, r19 ; 0x02
ad86: 4b 83 std Y+3, r20 ; 0x03
ad88: 5c 83 std Y+4, r21 ; 0x04
ad8a: ac 01 movw r20, r24
ad8c: 66 27 eor r22, r22
ad8e: 57 fd sbrc r21, 7
ad90: 60 95 com r22
ad92: 76 2f mov r23, r22
ad94: 89 80 ldd r8, Y+1 ; 0x01
ad96: 9a 80 ldd r9, Y+2 ; 0x02
ad98: ab 80 ldd r10, Y+3 ; 0x03
ad9a: bc 80 ldd r11, Y+4 ; 0x04
ad9c: 48 0d add r20, r8
ad9e: 59 1d adc r21, r9
ada0: 6a 1d adc r22, r10
ada2: 7b 1d adc r23, r11
ada4: 40 93 22 04 sts 0x0422, r20
ada8: 50 93 23 04 sts 0x0423, r21
adac: 60 93 24 04 sts 0x0424, r22
adb0: 70 93 25 04 sts 0x0425, r23
if(SummeRoll > (STICK_GAIN * 16000L)) SummeRoll = (STICK_GAIN * 16000L);
adb4: 40 91 22 04 lds r20, 0x0422
adb8: 50 91 23 04 lds r21, 0x0423
adbc: 60 91 24 04 lds r22, 0x0424
adc0: 70 91 25 04 lds r23, 0x0425
adc4: 41 30 cpi r20, 0x01 ; 1
adc6: 0a ef ldi r16, 0xFA ; 250
adc8: 50 07 cpc r21, r16
adca: 61 05 cpc r22, r1
adcc: 71 05 cpc r23, r1
adce: 6c f0 brlt .+26 ; 0xadea <MotorRegler+0x3dde>
add0: 40 e0 ldi r20, 0x00 ; 0
add2: 5a ef ldi r21, 0xFA ; 250
add4: 60 e0 ldi r22, 0x00 ; 0
add6: 70 e0 ldi r23, 0x00 ; 0
add8: 40 93 22 04 sts 0x0422, r20
addc: 50 93 23 04 sts 0x0423, r21
ade0: 60 93 24 04 sts 0x0424, r22
ade4: 70 93 25 04 sts 0x0425, r23
ade8: 11 c0 rjmp .+34 ; 0xae0c <MotorRegler+0x3e00>
if(SummeRoll < -(16000L * STICK_GAIN)) SummeRoll = -(16000L * STICK_GAIN);
adea: 41 15 cp r20, r1
adec: 56 40 sbci r21, 0x06 ; 6
adee: 6f 4f sbci r22, 0xFF ; 255
adf0: 7f 4f sbci r23, 0xFF ; 255
adf2: 64 f4 brge .+24 ; 0xae0c <MotorRegler+0x3e00>
adf4: 40 e0 ldi r20, 0x00 ; 0
adf6: 56 e0 ldi r21, 0x06 ; 6
adf8: 6f ef ldi r22, 0xFF ; 255
adfa: 7f ef ldi r23, 0xFF ; 255
adfc: 40 93 22 04 sts 0x0422, r20
ae00: 50 93 23 04 sts 0x0423, r21
ae04: 60 93 24 04 sts 0x0424, r22
ae08: 70 93 25 04 sts 0x0425, r23
 
if(EE_Parameter.Gyro_Stability <= 8) pd_ergebnis_roll = (EE_Parameter.Gyro_Stability * DiffRoll) / 8; // PI-Regler für Roll
ae0c: 19 30 cpi r17, 0x09 ; 9
ae0e: 88 f4 brcc .+34 ; 0xae32 <MotorRegler+0x3e26>
ae10: 18 9f mul r17, r24
ae12: 50 01 movw r10, r0
ae14: 19 9f mul r17, r25
ae16: b0 0c add r11, r0
ae18: 11 24 eor r1, r1
ae1a: bb 20 and r11, r11
ae1c: 1c f4 brge .+6 ; 0xae24 <MotorRegler+0x3e18>
ae1e: 37 e0 ldi r19, 0x07 ; 7
ae20: a3 0e add r10, r19
ae22: b1 1c adc r11, r1
ae24: b5 94 asr r11
ae26: a7 94 ror r10
ae28: b5 94 asr r11
ae2a: a7 94 ror r10
ae2c: b5 94 asr r11
ae2e: a7 94 ror r10
ae30: 0f c0 rjmp .+30 ; 0xae50 <MotorRegler+0x3e44>
else pd_ergebnis_roll = ((EE_Parameter.Gyro_Stability / 2) * DiffRoll) / 4; // Überlauf verhindern
ae32: 16 95 lsr r17
ae34: 18 9f mul r17, r24
ae36: 50 01 movw r10, r0
ae38: 19 9f mul r17, r25
ae3a: b0 0c add r11, r0
ae3c: 11 24 eor r1, r1
ae3e: bb 20 and r11, r11
ae40: 1c f4 brge .+6 ; 0xae48 <MotorRegler+0x3e3c>
ae42: 43 e0 ldi r20, 0x03 ; 3
ae44: a4 0e add r10, r20
ae46: b1 1c adc r11, r1
ae48: b5 94 asr r11
ae4a: a7 94 ror r10
ae4c: b5 94 asr r11
ae4e: a7 94 ror r10
pd_ergebnis_roll += SummeRoll / Ki;
ae50: 60 91 22 04 lds r22, 0x0422
ae54: 70 91 23 04 lds r23, 0x0423
ae58: 80 91 24 04 lds r24, 0x0424
ae5c: 90 91 25 04 lds r25, 0x0425
ae60: a3 01 movw r20, r6
ae62: 92 01 movw r18, r4
ae64: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
ae68: 2a 0d add r18, r10
ae6a: 3b 1d adc r19, r11
ae6c: 8b 84 ldd r8, Y+11 ; 0x0b
ae6e: 9c 84 ldd r9, Y+12 ; 0x0c
ae70: 82 16 cp r8, r18
ae72: 93 06 cpc r9, r19
ae74: 0c f4 brge .+2 ; 0xae78 <MotorRegler+0x3e6c>
ae76: 96 01 movw r18, r12
ae78: 3c 87 std Y+12, r19 ; 0x0c
ae7a: 2b 87 std Y+11, r18 ; 0x0b
ae7c: 22 15 cp r18, r2
ae7e: 33 05 cpc r19, r3
ae80: 14 f4 brge .+4 ; 0xae86 <MotorRegler+0x3e7a>
ae82: 3c 86 std Y+12, r3 ; 0x0c
ae84: 2b 86 std Y+11, r2 ; 0x0b
if(pd_ergebnis_roll > tmp_int) pd_ergebnis_roll = tmp_int;
if(pd_ergebnis_roll < -tmp_int) pd_ergebnis_roll = -tmp_int;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// send SPI pending bytes
if(BytegapSPI == 0) SPI_TransmitByte();
ae86: 80 91 cc 04 lds r24, 0x04CC
ae8a: 81 11 cpse r24, r1
ae8c: 3d c1 rjmp .+634 ; 0xb108 <MotorRegler+0x40fc>
ae8e: 0e 94 de 95 call 0x12bbc ; 0x12bbc <SPI_TransmitByte>
ae92: 3a c1 rjmp .+628 ; 0xb108 <MotorRegler+0x40fc>
ae94: 9e a2 std Y+38, r9 ; 0x26
ae96: 8d a2 std Y+37, r8 ; 0x25
ae98: f4 01 movw r30, r8
ae9a: 33 97 sbiw r30, 0x03 ; 3
// Universal Mixer
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
for(i=0; i<MAX_MOTORS; i++)
{
signed int tmp_int;
if(Mixer.Motor[i][0] > 0)
ae9c: a0 81 ld r26, Z
ae9e: 1a 16 cp r1, r26
aea0: 0c f0 brlt .+2 ; 0xaea4 <MotorRegler+0x3e98>
aea2: 1d c1 rjmp .+570 ; 0xb0de <MotorRegler+0x40d2>
{
// Gas
if(Mixer.Motor[i][0] == 64) tmp_int = GasMischanteil; else tmp_int = ((long)GasMischanteil * Mixer.Motor[i][0]) / 64L;
aea4: a0 34 cpi r26, 0x40 ; 64
aea6: e1 f0 breq .+56 ; 0xaee0 <MotorRegler+0x3ed4>
aea8: bb 27 eor r27, r27
aeaa: a7 fd sbrc r26, 7
aeac: b0 95 com r27
aeae: a7 01 movw r20, r14
aeb0: 96 01 movw r18, r12
aeb2: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
aeb6: 9b 01 movw r18, r22
aeb8: ac 01 movw r20, r24
aeba: 99 23 and r25, r25
aebc: 24 f4 brge .+8 ; 0xaec6 <MotorRegler+0x3eba>
aebe: 21 5c subi r18, 0xC1 ; 193
aec0: 3f 4f sbci r19, 0xFF ; 255
aec2: 4f 4f sbci r20, 0xFF ; 255
aec4: 5f 4f sbci r21, 0xFF ; 255
aec6: ba 01 movw r22, r20
aec8: a9 01 movw r20, r18
aeca: 68 94 set
aecc: 15 f8 bld r1, 5
aece: 75 95 asr r23
aed0: 67 95 ror r22
aed2: 57 95 ror r21
aed4: 47 95 ror r20
aed6: 16 94 lsr r1
aed8: d1 f7 brne .-12 ; 0xaece <MotorRegler+0x3ec2>
aeda: 5e 83 std Y+6, r21 ; 0x06
aedc: 4d 83 std Y+5, r20 ; 0x05
aede: 04 c0 rjmp .+8 ; 0xaee8 <MotorRegler+0x3edc>
aee0: 0f 8d ldd r16, Y+31 ; 0x1f
aee2: 0d 83 std Y+5, r16 ; 0x05
aee4: e8 a1 ldd r30, Y+32 ; 0x20
aee6: ee 83 std Y+6, r30 ; 0x06
aee8: ad a1 ldd r26, Y+37 ; 0x25
aeea: be a1 ldd r27, Y+38 ; 0x26
aeec: 12 97 sbiw r26, 0x02 ; 2
// Nick
if(Mixer.Motor[i][1] == 64) tmp_int += pd_ergebnis_nick;
aeee: ac 91 ld r26, X
aef0: a0 34 cpi r26, 0x40 ; 64
aef2: 49 f4 brne .+18 ; 0xaf06 <MotorRegler+0x3efa>
aef4: ed 81 ldd r30, Y+5 ; 0x05
aef6: fe 81 ldd r31, Y+6 ; 0x06
aef8: 2d 85 ldd r18, Y+13 ; 0x0d
aefa: 3e 85 ldd r19, Y+14 ; 0x0e
aefc: e2 0f add r30, r18
aefe: f3 1f adc r31, r19
af00: fe 83 std Y+6, r31 ; 0x06
af02: ed 83 std Y+5, r30 ; 0x05
af04: 2c c0 rjmp .+88 ; 0xaf5e <MotorRegler+0x3f52>
else if(Mixer.Motor[i][1] == -64) tmp_int -= pd_ergebnis_nick;
af06: a0 3c cpi r26, 0xC0 ; 192
af08: 49 f4 brne .+18 ; 0xaf1c <MotorRegler+0x3f10>
af0a: ed 81 ldd r30, Y+5 ; 0x05
af0c: fe 81 ldd r31, Y+6 ; 0x06
af0e: 2d 85 ldd r18, Y+13 ; 0x0d
af10: 3e 85 ldd r19, Y+14 ; 0x0e
af12: e2 1b sub r30, r18
af14: f3 0b sbc r31, r19
af16: fe 83 std Y+6, r31 ; 0x06
af18: ed 83 std Y+5, r30 ; 0x05
af1a: 21 c0 rjmp .+66 ; 0xaf5e <MotorRegler+0x3f52>
else tmp_int += ((long)pd_ergebnis_nick * Mixer.Motor[i][1]) / 64L;
af1c: bb 27 eor r27, r27
af1e: a7 fd sbrc r26, 7
af20: b0 95 com r27
af22: 29 8d ldd r18, Y+25 ; 0x19
af24: 3a 8d ldd r19, Y+26 ; 0x1a
af26: 4b 8d ldd r20, Y+27 ; 0x1b
af28: 5c 8d ldd r21, Y+28 ; 0x1c
af2a: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
af2e: 9b 01 movw r18, r22
af30: ac 01 movw r20, r24
af32: 99 23 and r25, r25
af34: 24 f4 brge .+8 ; 0xaf3e <MotorRegler+0x3f32>
af36: 21 5c subi r18, 0xC1 ; 193
af38: 3f 4f sbci r19, 0xFF ; 255
af3a: 4f 4f sbci r20, 0xFF ; 255
af3c: 5f 4f sbci r21, 0xFF ; 255
af3e: ba 01 movw r22, r20
af40: a9 01 movw r20, r18
af42: 68 94 set
af44: 15 f8 bld r1, 5
af46: 75 95 asr r23
af48: 67 95 ror r22
af4a: 57 95 ror r21
af4c: 47 95 ror r20
af4e: 16 94 lsr r1
af50: d1 f7 brne .-12 ; 0xaf46 <MotorRegler+0x3f3a>
af52: ed 81 ldd r30, Y+5 ; 0x05
af54: fe 81 ldd r31, Y+6 ; 0x06
af56: e4 0f add r30, r20
af58: f5 1f adc r31, r21
af5a: fe 83 std Y+6, r31 ; 0x06
af5c: ed 83 std Y+5, r30 ; 0x05
af5e: ad a1 ldd r26, Y+37 ; 0x25
af60: be a1 ldd r27, Y+38 ; 0x26
af62: 11 97 sbiw r26, 0x01 ; 1
// Roll
if(Mixer.Motor[i][2] == 64) tmp_int += pd_ergebnis_roll;
af64: ac 91 ld r26, X
af66: a0 34 cpi r26, 0x40 ; 64
af68: 49 f4 brne .+18 ; 0xaf7c <MotorRegler+0x3f70>
af6a: ed 81 ldd r30, Y+5 ; 0x05
af6c: fe 81 ldd r31, Y+6 ; 0x06
af6e: 2b 85 ldd r18, Y+11 ; 0x0b
af70: 3c 85 ldd r19, Y+12 ; 0x0c
af72: e2 0f add r30, r18
af74: f3 1f adc r31, r19
af76: fe 83 std Y+6, r31 ; 0x06
af78: ed 83 std Y+5, r30 ; 0x05
af7a: 2c c0 rjmp .+88 ; 0xafd4 <MotorRegler+0x3fc8>
else if(Mixer.Motor[i][2] == -64) tmp_int -= pd_ergebnis_roll;
af7c: a0 3c cpi r26, 0xC0 ; 192
af7e: 49 f4 brne .+18 ; 0xaf92 <MotorRegler+0x3f86>
af80: ed 81 ldd r30, Y+5 ; 0x05
af82: fe 81 ldd r31, Y+6 ; 0x06
af84: 2b 85 ldd r18, Y+11 ; 0x0b
af86: 3c 85 ldd r19, Y+12 ; 0x0c
af88: e2 1b sub r30, r18
af8a: f3 0b sbc r31, r19
af8c: fe 83 std Y+6, r31 ; 0x06
af8e: ed 83 std Y+5, r30 ; 0x05
af90: 21 c0 rjmp .+66 ; 0xafd4 <MotorRegler+0x3fc8>
else tmp_int += ((long)pd_ergebnis_roll * Mixer.Motor[i][2]) / 64L;
af92: bb 27 eor r27, r27
af94: a7 fd sbrc r26, 7
af96: b0 95 com r27
af98: 2d 89 ldd r18, Y+21 ; 0x15
af9a: 3e 89 ldd r19, Y+22 ; 0x16
af9c: 4f 89 ldd r20, Y+23 ; 0x17
af9e: 58 8d ldd r21, Y+24 ; 0x18
afa0: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
afa4: 9b 01 movw r18, r22
afa6: ac 01 movw r20, r24
afa8: 99 23 and r25, r25
afaa: 24 f4 brge .+8 ; 0xafb4 <MotorRegler+0x3fa8>
afac: 21 5c subi r18, 0xC1 ; 193
afae: 3f 4f sbci r19, 0xFF ; 255
afb0: 4f 4f sbci r20, 0xFF ; 255
afb2: 5f 4f sbci r21, 0xFF ; 255
afb4: da 01 movw r26, r20
afb6: c9 01 movw r24, r18
afb8: 68 94 set
afba: 15 f8 bld r1, 5
afbc: b5 95 asr r27
afbe: a7 95 ror r26
afc0: 97 95 ror r25
afc2: 87 95 ror r24
afc4: 16 94 lsr r1
afc6: d1 f7 brne .-12 ; 0xafbc <MotorRegler+0x3fb0>
afc8: ed 81 ldd r30, Y+5 ; 0x05
afca: fe 81 ldd r31, Y+6 ; 0x06
afcc: e8 0f add r30, r24
afce: f9 1f adc r31, r25
afd0: fe 83 std Y+6, r31 ; 0x06
afd2: ed 83 std Y+5, r30 ; 0x05
// Gier
if(Mixer.Motor[i][3] == 64) tmp_int += GierMischanteil;
afd4: ed a1 ldd r30, Y+37 ; 0x25
afd6: fe a1 ldd r31, Y+38 ; 0x26
afd8: a0 81 ld r26, Z
afda: a0 34 cpi r26, 0x40 ; 64
afdc: 39 f4 brne .+14 ; 0xafec <MotorRegler+0x3fe0>
afde: ed 81 ldd r30, Y+5 ; 0x05
afe0: fe 81 ldd r31, Y+6 ; 0x06
afe2: 29 85 ldd r18, Y+9 ; 0x09
afe4: 3a 85 ldd r19, Y+10 ; 0x0a
afe6: e2 0f add r30, r18
afe8: f3 1f adc r31, r19
afea: 28 c0 rjmp .+80 ; 0xb03c <MotorRegler+0x4030>
else if(Mixer.Motor[i][3] == -64) tmp_int -= GierMischanteil;
afec: a0 3c cpi r26, 0xC0 ; 192
afee: 39 f4 brne .+14 ; 0xaffe <MotorRegler+0x3ff2>
aff0: ed 81 ldd r30, Y+5 ; 0x05
aff2: fe 81 ldd r31, Y+6 ; 0x06
aff4: 49 85 ldd r20, Y+9 ; 0x09
aff6: 5a 85 ldd r21, Y+10 ; 0x0a
aff8: e4 1b sub r30, r20
affa: f5 0b sbc r31, r21
affc: 1f c0 rjmp .+62 ; 0xb03c <MotorRegler+0x4030>
else tmp_int += ((long)GierMischanteil * Mixer.Motor[i][3]) / 64L;
affe: bb 27 eor r27, r27
b000: a7 fd sbrc r26, 7
b002: b0 95 com r27
b004: 29 89 ldd r18, Y+17 ; 0x11
b006: 3a 89 ldd r19, Y+18 ; 0x12
b008: 4b 89 ldd r20, Y+19 ; 0x13
b00a: 5c 89 ldd r21, Y+20 ; 0x14
b00c: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
b010: 9b 01 movw r18, r22
b012: ac 01 movw r20, r24
b014: 99 23 and r25, r25
b016: 24 f4 brge .+8 ; 0xb020 <MotorRegler+0x4014>
b018: 21 5c subi r18, 0xC1 ; 193
b01a: 3f 4f sbci r19, 0xFF ; 255
b01c: 4f 4f sbci r20, 0xFF ; 255
b01e: 5f 4f sbci r21, 0xFF ; 255
b020: da 01 movw r26, r20
b022: c9 01 movw r24, r18
b024: 68 94 set
b026: 15 f8 bld r1, 5
b028: b5 95 asr r27
b02a: a7 95 ror r26
b02c: 97 95 ror r25
b02e: 87 95 ror r24
b030: 16 94 lsr r1
b032: d1 f7 brne .-12 ; 0xb028 <MotorRegler+0x401c>
b034: ed 81 ldd r30, Y+5 ; 0x05
b036: fe 81 ldd r31, Y+6 ; 0x06
b038: e8 0f add r30, r24
b03a: f9 1f adc r31, r25
b03c: 92 01 movw r18, r4
b03e: d2 01 movw r26, r4
b040: 12 97 sbiw r26, 0x02 ; 2
#ifdef REDUNDANT_FC_SLAVE
tmp_int = (tmp_motorwert[i] + tmp_int) / 2;
#else
if(Motor[i].Version & MOTOR_STATE_FAST_MODE || tmp_int > tmp_motorwert[i]) tmp_int = (tmp_motorwert[i] + tmp_int) / 2; // Beschleunigen
b042: 8c 91 ld r24, X
b044: 81 fd sbrc r24, 1
b046: 06 c0 rjmp .+12 ; 0xb054 <MotorRegler+0x4048>
b048: d3 01 movw r26, r6
b04a: 8d 91 ld r24, X+
b04c: 9c 91 ld r25, X
b04e: 8e 17 cp r24, r30
b050: 9f 07 cpc r25, r31
b052: 5c f4 brge .+22 ; 0xb06a <MotorRegler+0x405e>
b054: d3 01 movw r26, r6
b056: 8d 91 ld r24, X+
b058: 9c 91 ld r25, X
b05a: e8 0f add r30, r24
b05c: f9 1f adc r31, r25
b05e: ff 23 and r31, r31
b060: 0c f4 brge .+2 ; 0xb064 <MotorRegler+0x4058>
b062: 31 96 adiw r30, 0x01 ; 1
b064: f5 95 asr r31
b066: e7 95 ror r30
b068: 11 c0 rjmp .+34 ; 0xb08c <MotorRegler+0x4080>
else
{ // BL-Ctrl 1.0 or 2.0
if(EE_Parameter.MotorSmooth == 0)
b06a: 11 11 cpse r17, r1
b06c: 05 c0 rjmp .+10 ; 0xb078 <MotorRegler+0x406c>
{
tmp_int = 2 * tmp_int - tmp_motorwert[i]; // original MotorSmoothing
b06e: ee 0f add r30, r30
b070: ff 1f adc r31, r31
b072: e8 1b sub r30, r24
b074: f9 0b sbc r31, r25
b076: 0a c0 rjmp .+20 ; 0xb08c <MotorRegler+0x4080>
}
else // 1 means tmp_int = tmp_int;
if(EE_Parameter.MotorSmooth > 1)
b078: 12 30 cpi r17, 0x02 ; 2
b07a: 40 f0 brcs .+16 ; 0xb08c <MotorRegler+0x4080>
{
// If >= 2 then allow >= 50% of the intended step down to rapidly reach the intended value.
tmp_int = tmp_int + ((tmp_motorwert[i] - tmp_int) / EE_Parameter.MotorSmooth);
b07c: 8e 1b sub r24, r30
b07e: 9f 0b sbc r25, r31
b080: 6b a1 ldd r22, Y+35 ; 0x23
b082: 7c a1 ldd r23, Y+36 ; 0x24
b084: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
b088: e6 0f add r30, r22
b08a: f7 1f adc r31, r23
}
}
#endif
LIMIT_MIN_MAX(tmp_int,(int) MIN_GAS * 4,(int) MAX_GAS * 4);
b08c: 49 81 ldd r20, Y+1 ; 0x01
b08e: 5a 81 ldd r21, Y+2 ; 0x02
b090: 4e 17 cp r20, r30
b092: 5f 07 cpc r21, r31
b094: 44 f4 brge .+16 ; 0xb0a6 <MotorRegler+0x409a>
b096: 6f 85 ldd r22, Y+15 ; 0x0f
b098: 78 89 ldd r23, Y+16 ; 0x10
b09a: 6e 17 cp r22, r30
b09c: 7f 07 cpc r23, r31
b09e: 2c f4 brge .+10 ; 0xb0aa <MotorRegler+0x409e>
b0a0: e9 a1 ldd r30, Y+33 ; 0x21
b0a2: fa a1 ldd r31, Y+34 ; 0x22
b0a4: 02 c0 rjmp .+4 ; 0xb0aa <MotorRegler+0x409e>
b0a6: ed 8d ldd r30, Y+29 ; 0x1d
b0a8: fe 8d ldd r31, Y+30 ; 0x1e
Motor[i].SetPoint = tmp_int / 4;
b0aa: cf 01 movw r24, r30
b0ac: ff 23 and r31, r31
b0ae: 0c f4 brge .+2 ; 0xb0b2 <MotorRegler+0x40a6>
b0b0: 03 96 adiw r24, 0x03 ; 3
b0b2: 95 95 asr r25
b0b4: 87 95 ror r24
b0b6: 95 95 asr r25
b0b8: 87 95 ror r24
b0ba: d5 01 movw r26, r10
b0bc: 8c 93 st X, r24
Motor[i].SetPointLowerBits = (tmp_int % 4)<<1; // (3 bits total)
b0be: cf 01 movw r24, r30
b0c0: 83 70 andi r24, 0x03 ; 3
b0c2: 90 78 andi r25, 0x80 ; 128
b0c4: 99 23 and r25, r25
b0c6: 24 f4 brge .+8 ; 0xb0d0 <MotorRegler+0x40c4>
b0c8: 01 97 sbiw r24, 0x01 ; 1
b0ca: 8c 6f ori r24, 0xFC ; 252
b0cc: 9f 6f ori r25, 0xFF ; 255
b0ce: 01 96 adiw r24, 0x01 ; 1
b0d0: 88 0f add r24, r24
b0d2: d9 01 movw r26, r18
b0d4: 8c 93 st X, r24
tmp_motorwert[i] = tmp_int;
b0d6: d3 01 movw r26, r6
b0d8: ed 93 st X+, r30
b0da: fc 93 st X, r31
b0dc: 04 c0 rjmp .+8 ; 0xb0e6 <MotorRegler+0x40da>
}
else
{
Motor[i].SetPoint = 0;
b0de: f5 01 movw r30, r10
b0e0: 10 82 st Z, r1
Motor[i].SetPointLowerBits = 0;
b0e2: d2 01 movw r26, r4
b0e4: 1c 92 st X, r1
b0e6: bf e0 ldi r27, 0x0F ; 15
b0e8: ab 0e add r10, r27
b0ea: b1 1c adc r11, r1
b0ec: ef e0 ldi r30, 0x0F ; 15
b0ee: 4e 0e add r4, r30
b0f0: 51 1c adc r5, r1
b0f2: f2 e0 ldi r31, 0x02 ; 2
b0f4: 6f 0e add r6, r31
b0f6: 71 1c adc r7, r1
b0f8: 04 e0 ldi r16, 0x04 ; 4
b0fa: 80 0e add r8, r16
b0fc: 91 1c adc r9, r1
// send SPI pending bytes
if(BytegapSPI == 0) SPI_TransmitByte();
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Universal Mixer
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
for(i=0; i<MAX_MOTORS; i++)
b0fe: 42 14 cp r4, r2
b100: 53 04 cpc r5, r3
b102: 09 f0 breq .+2 ; 0xb106 <MotorRegler+0x40fa>
b104: c7 ce rjmp .-626 ; 0xae94 <MotorRegler+0x3e88>
b106: ae c0 rjmp .+348 ; 0xb264 <MotorRegler+0x4258>
tmp_int = (tmp_motorwert[i] + tmp_int) / 2;
#else
if(Motor[i].Version & MOTOR_STATE_FAST_MODE || tmp_int > tmp_motorwert[i]) tmp_int = (tmp_motorwert[i] + tmp_int) / 2; // Beschleunigen
else
{ // BL-Ctrl 1.0 or 2.0
if(EE_Parameter.MotorSmooth == 0)
b108: 50 90 a4 05 lds r5, 0x05A4
}
else // 1 means tmp_int = tmp_int;
if(EE_Parameter.MotorSmooth > 1)
{
// If >= 2 then allow >= 50% of the intended step down to rapidly reach the intended value.
tmp_int = tmp_int + ((tmp_motorwert[i] - tmp_int) / EE_Parameter.MotorSmooth);
b10c: e5 2d mov r30, r5
b10e: f0 e0 ldi r31, 0x00 ; 0
b110: fc a3 std Y+36, r31 ; 0x24
b112: eb a3 std Y+35, r30 ; 0x23
}
}
#endif
LIMIT_MIN_MAX(tmp_int,(int) MIN_GAS * 4,(int) MAX_GAS * 4);
b114: 80 91 2c 06 lds r24, 0x062C
b118: 90 e0 ldi r25, 0x00 ; 0
b11a: 4c 01 movw r8, r24
b11c: 88 0c add r8, r8
b11e: 99 1c adc r9, r9
b120: 88 0c add r8, r8
b122: 99 1c adc r9, r9
b124: 9a 82 std Y+2, r9 ; 0x02
b126: 89 82 std Y+1, r8 ; 0x01
b128: 80 91 64 06 lds r24, 0x0664
b12c: 90 e0 ldi r25, 0x00 ; 0
b12e: 5c 01 movw r10, r24
b130: aa 0c add r10, r10
b132: bb 1c adc r11, r11
b134: aa 0c add r10, r10
b136: bb 1c adc r11, r11
b138: b8 8a std Y+16, r11 ; 0x10
b13a: af 86 std Y+15, r10 ; 0x0f
b13c: 0f 2e mov r0, r31
b13e: f8 e9 ldi r31, 0x98 ; 152
b140: 6f 2e mov r6, r31
b142: f9 e0 ldi r31, 0x09 ; 9
b144: 7f 2e mov r7, r31
b146: f0 2d mov r31, r0
b148: 09 e9 ldi r16, 0x99 ; 153
b14a: 19 e0 ldi r17, 0x09 ; 9
b14c: 0f 2e mov r0, r31
b14e: f3 e4 ldi r31, 0x43 ; 67
b150: 8f 2e mov r8, r31
b152: f6 e0 ldi r31, 0x06 ; 6
b154: 9f 2e mov r9, r31
b156: f0 2d mov r31, r0
b158: 0f 2e mov r0, r31
b15a: f7 ed ldi r31, 0xD7 ; 215
b15c: af 2e mov r10, r31
b15e: f5 e0 ldi r31, 0x05 ; 5
b160: bf 2e mov r11, r31
b162: f0 2d mov r31, r0
b164: 0f 2e mov r0, r31
b166: fd e4 ldi r31, 0x4D ; 77
b168: 2f 2e mov r2, r31
b16a: fa e0 ldi r31, 0x0A ; 10
b16c: 3f 2e mov r3, r31
b16e: f0 2d mov r31, r0
b170: e9 80 ldd r14, Y+1 ; 0x01
b172: ed 8e std Y+29, r14 ; 0x1d
b174: fa 80 ldd r15, Y+2 ; 0x02
b176: fe 8e std Y+30, r15 ; 0x1e
b178: ef 85 ldd r30, Y+15 ; 0x0f
b17a: e9 a3 std Y+33, r30 ; 0x21
b17c: f8 89 ldd r31, Y+16 ; 0x10
b17e: fa a3 std Y+34, r31 ; 0x22
else if(Mixer.Motor[i][2] == -64) tmp_int -= pd_ergebnis_roll;
else tmp_int += ((long)pd_ergebnis_roll * Mixer.Motor[i][2]) / 64L;
// Gier
if(Mixer.Motor[i][3] == 64) tmp_int += GierMischanteil;
else if(Mixer.Motor[i][3] == -64) tmp_int -= GierMischanteil;
else tmp_int += ((long)GierMischanteil * Mixer.Motor[i][3]) / 64L;
b180: 29 85 ldd r18, Y+9 ; 0x09
b182: 3a 85 ldd r19, Y+10 ; 0x0a
b184: 44 27 eor r20, r20
b186: 37 fd sbrc r19, 7
b188: 40 95 com r20
b18a: 54 2f mov r21, r20
b18c: 29 8b std Y+17, r18 ; 0x11
b18e: 3a 8b std Y+18, r19 ; 0x12
b190: 4b 8b std Y+19, r20 ; 0x13
b192: 5c 8b std Y+20, r21 ; 0x14
else if(Mixer.Motor[i][1] == -64) tmp_int -= pd_ergebnis_nick;
else tmp_int += ((long)pd_ergebnis_nick * Mixer.Motor[i][1]) / 64L;
// Roll
if(Mixer.Motor[i][2] == 64) tmp_int += pd_ergebnis_roll;
else if(Mixer.Motor[i][2] == -64) tmp_int -= pd_ergebnis_roll;
else tmp_int += ((long)pd_ergebnis_roll * Mixer.Motor[i][2]) / 64L;
b194: 4b 85 ldd r20, Y+11 ; 0x0b
b196: 5c 85 ldd r21, Y+12 ; 0x0c
b198: 66 27 eor r22, r22
b19a: 57 fd sbrc r21, 7
b19c: 60 95 com r22
b19e: 76 2f mov r23, r22
b1a0: 4d 8b std Y+21, r20 ; 0x15
b1a2: 5e 8b std Y+22, r21 ; 0x16
b1a4: 6f 8b std Y+23, r22 ; 0x17
b1a6: 78 8f std Y+24, r23 ; 0x18
// Gas
if(Mixer.Motor[i][0] == 64) tmp_int = GasMischanteil; else tmp_int = ((long)GasMischanteil * Mixer.Motor[i][0]) / 64L;
// Nick
if(Mixer.Motor[i][1] == 64) tmp_int += pd_ergebnis_nick;
else if(Mixer.Motor[i][1] == -64) tmp_int -= pd_ergebnis_nick;
else tmp_int += ((long)pd_ergebnis_nick * Mixer.Motor[i][1]) / 64L;
b1a8: 6d 85 ldd r22, Y+13 ; 0x0d
b1aa: 7e 85 ldd r23, Y+14 ; 0x0e
b1ac: 88 27 eor r24, r24
b1ae: 77 fd sbrc r23, 7
b1b0: 80 95 com r24
b1b2: 98 2f mov r25, r24
b1b4: 69 8f std Y+25, r22 ; 0x19
b1b6: 7a 8f std Y+26, r23 ; 0x1a
b1b8: 8b 8f std Y+27, r24 ; 0x1b
b1ba: 9c 8f std Y+28, r25 ; 0x1c
{
signed int tmp_int;
if(Mixer.Motor[i][0] > 0)
{
// Gas
if(Mixer.Motor[i][0] == 64) tmp_int = GasMischanteil; else tmp_int = ((long)GasMischanteil * Mixer.Motor[i][0]) / 64L;
b1bc: ed 81 ldd r30, Y+5 ; 0x05
b1be: ef 8f std Y+31, r30 ; 0x1f
b1c0: fe 81 ldd r31, Y+6 ; 0x06
b1c2: f8 a3 std Y+32, r31 ; 0x20
b1c4: 2d 81 ldd r18, Y+5 ; 0x05
b1c6: 3e 81 ldd r19, Y+6 ; 0x06
b1c8: 69 01 movw r12, r18
b1ca: ee 24 eor r14, r14
b1cc: d7 fc sbrc r13, 7
b1ce: e0 94 com r14
b1d0: fe 2c mov r15, r14
b1d2: c4 01 movw r24, r8
b1d4: 45 01 movw r8, r10
b1d6: 53 01 movw r10, r6
b1d8: 98 01 movw r18, r16
b1da: 15 2d mov r17, r5
b1dc: 29 01 movw r4, r18
b1de: 3c 01 movw r6, r24
b1e0: 59 ce rjmp .-846 ; 0xae94 <MotorRegler+0x3e88>
 
MittelIntegralNick += IntegralNick; // Für die Mittelwertbildung aufsummieren
MittelIntegralRoll += IntegralRoll;
if(Looping_Nick || Looping_Roll)
{
MittelIntegralNick = 0;
b1e2: 10 92 34 06 sts 0x0634, r1
b1e6: 10 92 35 06 sts 0x0635, r1
b1ea: 10 92 36 06 sts 0x0636, r1
b1ee: 10 92 37 06 sts 0x0637, r1
MittelIntegralRoll = 0;
b1f2: 10 92 3c 06 sts 0x063C, r1
b1f6: 10 92 3d 06 sts 0x063D, r1
b1fa: 10 92 3e 06 sts 0x063E, r1
b1fe: 10 92 3f 06 sts 0x063F, r1
ZaehlMessungen = 0;
b202: 10 92 53 03 sts 0x0353, r1
b206: 10 92 52 03 sts 0x0352, r1
LageKorrekturNick = 0;
b20a: 10 92 eb 03 sts 0x03EB, r1
b20e: 10 92 ea 03 sts 0x03EA, r1
LageKorrekturRoll = 0;
b212: 10 92 ed 03 sts 0x03ED, r1
b216: 10 92 ec 03 sts 0x03EC, r1
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!Looping_Nick && !Looping_Roll && (Aktuell_az > 512 || MotorenEin))
b21a: 80 91 e6 03 lds r24, 0x03E6
b21e: 81 11 cpse r24, r1
b220: 0c 94 13 45 jmp 0x8a26 ; 0x8a26 <MotorRegler+0x1a1a>
b224: 0c 94 27 43 jmp 0x864e ; 0x864e <MotorRegler+0x1642>
 
MittelIntegralNick += IntegralNick; // Für die Mittelwertbildung aufsummieren
MittelIntegralRoll += IntegralRoll;
if(Looping_Nick || Looping_Roll)
{
MittelIntegralNick = 0;
b228: 10 92 34 06 sts 0x0634, r1
b22c: 10 92 35 06 sts 0x0635, r1
b230: 10 92 36 06 sts 0x0636, r1
b234: 10 92 37 06 sts 0x0637, r1
MittelIntegralRoll = 0;
b238: 10 92 3c 06 sts 0x063C, r1
b23c: 10 92 3d 06 sts 0x063D, r1
b240: 10 92 3e 06 sts 0x063E, r1
b244: 10 92 3f 06 sts 0x063F, r1
ZaehlMessungen = 0;
b248: 10 92 53 03 sts 0x0353, r1
b24c: 10 92 52 03 sts 0x0352, r1
LageKorrekturNick = 0;
b250: 10 92 eb 03 sts 0x03EB, r1
b254: 10 92 ea 03 sts 0x03EA, r1
LageKorrekturRoll = 0;
b258: 10 92 ed 03 sts 0x03ED, r1
b25c: 10 92 ec 03 sts 0x03EC, r1
b260: 0c 94 13 45 jmp 0x8a26 ; 0x8a26 <MotorRegler+0x1a1a>
}
}
#ifdef REDUNDANT_FC_MASTER
if(Parameter_UserParam6 > 230) Motor[0].SetPoint = 0;
#endif
}
b264: a6 96 adiw r28, 0x26 ; 38
b266: 0f b6 in r0, 0x3f ; 63
b268: f8 94 cli
b26a: de bf out 0x3e, r29 ; 62
b26c: 0f be out 0x3f, r0 ; 63
b26e: cd bf out 0x3d, r28 ; 61
b270: df 91 pop r29
b272: cf 91 pop r28
b274: 1f 91 pop r17
b276: 0f 91 pop r16
b278: ff 90 pop r15
b27a: ef 90 pop r14
b27c: df 90 pop r13
b27e: cf 90 pop r12
b280: bf 90 pop r11
b282: af 90 pop r10
b284: 9f 90 pop r9
b286: 8f 90 pop r8
b288: 7f 90 pop r7
b28a: 6f 90 pop r6
b28c: 5f 90 pop r5
b28e: 4f 90 pop r4
b290: 3f 90 pop r3
b292: 2f 90 pop r2
b294: 08 95 ret
 
0000b296 <PrintLine>:
unsigned char ActiveParamSet = 3;
unsigned char LipoCells = 4;
 
void PrintLine(void)
{
printf("\n\r===================================");
b296: 88 e6 ldi r24, 0x68 ; 104
b298: 94 e0 ldi r25, 0x04 ; 4
b29a: 9f 93 push r25
b29c: 8f 93 push r24
b29e: 87 eb ldi r24, 0xB7 ; 183
b2a0: 9c ea ldi r25, 0xAC ; 172
b2a2: 9f 93 push r25
b2a4: 8f 93 push r24
b2a6: e0 91 78 06 lds r30, 0x0678
b2aa: f0 91 79 06 lds r31, 0x0679
b2ae: 09 95 icall
b2b0: 0f 90 pop r0
b2b2: 0f 90 pop r0
b2b4: 0f 90 pop r0
b2b6: 0f 90 pop r0
b2b8: 08 95 ret
 
0000b2ba <CalMk3Mag>:
 
 
void CalMk3Mag(void)
{
static unsigned char stick = 1;
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -20) stick = 0;
b2ba: 80 91 3f 05 lds r24, 0x053F
b2be: 90 e0 ldi r25, 0x00 ; 0
b2c0: fc 01 movw r30, r24
b2c2: ee 0f add r30, r30
b2c4: ff 1f adc r31, r31
b2c6: ef 5c subi r30, 0xCF ; 207
b2c8: f7 4f sbci r31, 0xF7 ; 247
b2ca: 20 81 ld r18, Z
b2cc: 31 81 ldd r19, Z+1 ; 0x01
b2ce: 2d 3e cpi r18, 0xED ; 237
b2d0: 3f 4f sbci r19, 0xFF ; 255
b2d2: 14 f0 brlt .+4 ; 0xb2d8 <CalMk3Mag+0x1e>
b2d4: 10 92 50 01 sts 0x0150, r1
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) && !stick)
b2d8: fc 01 movw r30, r24
b2da: ee 0f add r30, r30
b2dc: ff 1f adc r31, r31
b2de: ef 5c subi r30, 0xCF ; 207
b2e0: f7 4f sbci r31, 0xF7 ; 247
b2e2: 80 81 ld r24, Z
b2e4: 91 81 ldd r25, Z+1 ; 0x01
b2e6: 8a 3b cpi r24, 0xBA ; 186
b2e8: 9f 4f sbci r25, 0xFF ; 255
b2ea: cc f4 brge .+50 ; 0xb31e <CalMk3Mag+0x64>
b2ec: 80 91 50 01 lds r24, 0x0150
b2f0: 81 11 cpse r24, r1
b2f2: 15 c0 rjmp .+42 ; 0xb31e <CalMk3Mag+0x64>
{
stick = 1;
b2f4: 81 e0 ldi r24, 0x01 ; 1
b2f6: 80 93 50 01 sts 0x0150, r24
WinkelOut.CalcState++;
b2fa: ed e7 ldi r30, 0x7D ; 125
b2fc: fa e0 ldi r31, 0x0A ; 10
b2fe: 80 81 ld r24, Z
b300: 8f 5f subi r24, 0xFF ; 255
b302: 80 83 st Z, r24
if(WinkelOut.CalcState > 4)
b304: 85 30 cpi r24, 0x05 ; 5
b306: 38 f0 brcs .+14 ; 0xb316 <CalMk3Mag+0x5c>
{
// WinkelOut.CalcState = 0; // in Uart.c
beeptime = 1000;
b308: 88 ee ldi r24, 0xE8 ; 232
b30a: 93 e0 ldi r25, 0x03 ; 3
b30c: 90 93 ce 04 sts 0x04CE, r25
b310: 80 93 cd 04 sts 0x04CD, r24
b314: 08 95 ret
}
else Piep(WinkelOut.CalcState,150);
b316: 66 e9 ldi r22, 0x96 ; 150
b318: 70 e0 ldi r23, 0x00 ; 0
b31a: 0c 94 ba 28 jmp 0x5174 ; 0x5174 <Piep>
b31e: 08 95 ret
 
0000b320 <LipoDetection>:
}
}
 
 
void LipoDetection(unsigned char print)
{
b320: cf 93 push r28
b322: c8 2f mov r28, r24
#define MAX_CELL_VOLTAGE 43 // max cell voltage for LiPO
if(print)
b324: 88 23 and r24, r24
b326: 11 f1 breq .+68 ; 0xb36c <LipoDetection+0x4c>
{
printf("\n\rBatt:");
b328: 20 e6 ldi r18, 0x60 ; 96
b32a: 34 e0 ldi r19, 0x04 ; 4
b32c: 3f 93 push r19
b32e: 2f 93 push r18
b330: 27 eb ldi r18, 0xB7 ; 183
b332: 3c ea ldi r19, 0xAC ; 172
b334: 3f 93 push r19
b336: 2f 93 push r18
b338: e0 91 78 06 lds r30, 0x0678
b33c: f0 91 79 06 lds r31, 0x0679
b340: 09 95 icall
LipoCells = 1 + UBat / MAX_CELL_VOLTAGE;
b342: 80 91 1a 01 lds r24, 0x011A
b346: 90 91 1b 01 lds r25, 0x011B
b34a: 6b e2 ldi r22, 0x2B ; 43
b34c: 70 e0 ldi r23, 0x00 ; 0
b34e: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
b352: 6f 5f subi r22, 0xFF ; 255
if(LipoCells > 6) LipoCells = 6;
b354: 0f 90 pop r0
b356: 0f 90 pop r0
b358: 0f 90 pop r0
b35a: 0f 90 pop r0
b35c: 67 30 cpi r22, 0x07 ; 7
b35e: 18 f4 brcc .+6 ; 0xb366 <LipoDetection+0x46>
{
#define MAX_CELL_VOLTAGE 43 // max cell voltage for LiPO
if(print)
{
printf("\n\rBatt:");
LipoCells = 1 + UBat / MAX_CELL_VOLTAGE;
b360: 60 93 51 01 sts 0x0151, r22
b364: 03 c0 rjmp .+6 ; 0xb36c <LipoDetection+0x4c>
if(LipoCells > 6) LipoCells = 6;
b366: 86 e0 ldi r24, 0x06 ; 6
b368: 80 93 51 01 sts 0x0151, r24
}
 
if(EE_Parameter.UnterspannungsWarnung < 50)
b36c: 90 91 62 05 lds r25, 0x0562
b370: 92 33 cpi r25, 0x32 ; 50
b372: 28 f5 brcc .+74 ; 0xb3be <LipoDetection+0x9e>
{
BattLowVoltageWarning = LipoCells * EE_Parameter.UnterspannungsWarnung;
b374: 80 91 51 01 lds r24, 0x0151
b378: 89 9f mul r24, r25
b37a: 90 2d mov r25, r0
b37c: 11 24 eor r1, r1
b37e: 90 93 53 01 sts 0x0153, r25
if(print)
b382: cc 23 and r28, r28
b384: f1 f0 breq .+60 ; 0xb3c2 <LipoDetection+0xa2>
{
Piep(LipoCells, 200);
b386: 68 ec ldi r22, 0xC8 ; 200
b388: 70 e0 ldi r23, 0x00 ; 0
b38a: 0e 94 ba 28 call 0x5174 ; 0x5174 <Piep>
printf(" %d Cells ", LipoCells);
b38e: 80 91 51 01 lds r24, 0x0151
b392: 1f 92 push r1
b394: 8f 93 push r24
b396: 25 e5 ldi r18, 0x55 ; 85
b398: 34 e0 ldi r19, 0x04 ; 4
b39a: 3f 93 push r19
b39c: 2f 93 push r18
b39e: 27 eb ldi r18, 0xB7 ; 183
b3a0: 3c ea ldi r19, 0xAC ; 172
b3a2: 3f 93 push r19
b3a4: 2f 93 push r18
b3a6: e0 91 78 06 lds r30, 0x0678
b3aa: f0 91 79 06 lds r31, 0x0679
b3ae: 09 95 icall
b3b0: 0f 90 pop r0
b3b2: 0f 90 pop r0
b3b4: 0f 90 pop r0
b3b6: 0f 90 pop r0
b3b8: 0f 90 pop r0
b3ba: 0f 90 pop r0
b3bc: 02 c0 rjmp .+4 ; 0xb3c2 <LipoDetection+0xa2>
}
}
else BattLowVoltageWarning = EE_Parameter.UnterspannungsWarnung;
b3be: 90 93 53 01 sts 0x0153, r25
 
// automatische Zellenerkennung
if(EE_Parameter.AutoLandingVoltage < 50) BattAutoLandingVoltage = LipoCells * EE_Parameter.AutoLandingVoltage; else BattAutoLandingVoltage = EE_Parameter.AutoLandingVoltage;
b3c2: 80 91 b2 05 lds r24, 0x05B2
b3c6: 82 33 cpi r24, 0x32 ; 50
b3c8: 40 f4 brcc .+16 ; 0xb3da <LipoDetection+0xba>
b3ca: 90 91 51 01 lds r25, 0x0151
b3ce: 98 9f mul r25, r24
b3d0: 80 2d mov r24, r0
b3d2: 11 24 eor r1, r1
b3d4: 80 93 65 04 sts 0x0465, r24
b3d8: 02 c0 rjmp .+4 ; 0xb3de <LipoDetection+0xbe>
b3da: 80 93 65 04 sts 0x0465, r24
if(EE_Parameter.ComingHomeVoltage < 50) BattComingHomeVoltage = LipoCells * EE_Parameter.ComingHomeVoltage; else BattComingHomeVoltage = EE_Parameter.ComingHomeVoltage;
b3de: 80 91 b3 05 lds r24, 0x05B3
b3e2: 82 33 cpi r24, 0x32 ; 50
b3e4: 40 f4 brcc .+16 ; 0xb3f6 <LipoDetection+0xd6>
b3e6: 90 91 51 01 lds r25, 0x0151
b3ea: 98 9f mul r25, r24
b3ec: 90 2d mov r25, r0
b3ee: 11 24 eor r1, r1
b3f0: 90 93 64 04 sts 0x0464, r25
b3f4: 02 c0 rjmp .+4 ; 0xb3fa <LipoDetection+0xda>
b3f6: 80 93 64 04 sts 0x0464, r24
 
if(BattAutoLandingVoltage > BattLowVoltageWarning) BattAutoLandingVoltage = BattLowVoltageWarning - 1;
b3fa: 90 91 53 01 lds r25, 0x0153
b3fe: 20 91 65 04 lds r18, 0x0465
b402: 92 17 cp r25, r18
b404: 20 f4 brcc .+8 ; 0xb40e <LipoDetection+0xee>
b406: 2f ef ldi r18, 0xFF ; 255
b408: 29 0f add r18, r25
b40a: 20 93 65 04 sts 0x0465, r18
if(BattComingHomeVoltage >= BattLowVoltageWarning) BattComingHomeVoltage = BattLowVoltageWarning - 1;
b40e: 20 91 64 04 lds r18, 0x0464
b412: 29 17 cp r18, r25
b414: 20 f0 brcs .+8 ; 0xb41e <LipoDetection+0xfe>
b416: 2f ef ldi r18, 0xFF ; 255
b418: 29 0f add r18, r25
b41a: 20 93 64 04 sts 0x0464, r18
if(BattAutoLandingVoltage >= BattComingHomeVoltage && EE_Parameter.ComingHomeVoltage) BattAutoLandingVoltage = BattComingHomeVoltage - 1;
b41e: 20 91 64 04 lds r18, 0x0464
b422: 30 91 65 04 lds r19, 0x0465
b426: 32 17 cp r19, r18
b428: 28 f0 brcs .+10 ; 0xb434 <LipoDetection+0x114>
b42a: 88 23 and r24, r24
b42c: 19 f0 breq .+6 ; 0xb434 <LipoDetection+0x114>
b42e: 21 50 subi r18, 0x01 ; 1
b430: 20 93 65 04 sts 0x0465, r18
if(print)
b434: cc 23 and r28, r28
b436: 09 f4 brne .+2 ; 0xb43a <LipoDetection+0x11a>
b438: 7f c0 rjmp .+254 ; 0xb538 <LipoDetection+0x218>
{
printf(" Low warning: %d.%dV",BattLowVoltageWarning/10,BattLowVoltageWarning%10);
b43a: 8d ec ldi r24, 0xCD ; 205
b43c: 98 9f mul r25, r24
b43e: 81 2d mov r24, r1
b440: 11 24 eor r1, r1
b442: 86 95 lsr r24
b444: 86 95 lsr r24
b446: 86 95 lsr r24
b448: 28 2f mov r18, r24
b44a: 22 0f add r18, r18
b44c: 32 2f mov r19, r18
b44e: 33 0f add r19, r19
b450: 33 0f add r19, r19
b452: 23 0f add r18, r19
b454: 92 1b sub r25, r18
b456: 1f 92 push r1
b458: 9f 93 push r25
b45a: 1f 92 push r1
b45c: 8f 93 push r24
b45e: 80 e4 ldi r24, 0x40 ; 64
b460: 94 e0 ldi r25, 0x04 ; 4
b462: 9f 93 push r25
b464: 8f 93 push r24
b466: 87 eb ldi r24, 0xB7 ; 183
b468: 9c ea ldi r25, 0xAC ; 172
b46a: 9f 93 push r25
b46c: 8f 93 push r24
b46e: e0 91 78 06 lds r30, 0x0678
b472: f0 91 79 06 lds r31, 0x0679
b476: 09 95 icall
if(BattComingHomeVoltage) printf(" Auto-CH: %d.%dV",BattComingHomeVoltage/10,BattComingHomeVoltage%10);
b478: 80 91 64 04 lds r24, 0x0464
b47c: 2d b7 in r18, 0x3d ; 61
b47e: 3e b7 in r19, 0x3e ; 62
b480: 28 5f subi r18, 0xF8 ; 248
b482: 3f 4f sbci r19, 0xFF ; 255
b484: 0f b6 in r0, 0x3f ; 63
b486: f8 94 cli
b488: 3e bf out 0x3e, r19 ; 62
b48a: 0f be out 0x3f, r0 ; 63
b48c: 2d bf out 0x3d, r18 ; 61
b48e: 88 23 and r24, r24
b490: 39 f1 breq .+78 ; 0xb4e0 <LipoDetection+0x1c0>
b492: 9d ec ldi r25, 0xCD ; 205
b494: 89 9f mul r24, r25
b496: 91 2d mov r25, r1
b498: 11 24 eor r1, r1
b49a: 96 95 lsr r25
b49c: 96 95 lsr r25
b49e: 96 95 lsr r25
b4a0: 29 2f mov r18, r25
b4a2: 22 0f add r18, r18
b4a4: 32 2f mov r19, r18
b4a6: 33 0f add r19, r19
b4a8: 33 0f add r19, r19
b4aa: 23 0f add r18, r19
b4ac: 82 1b sub r24, r18
b4ae: 1f 92 push r1
b4b0: 8f 93 push r24
b4b2: 1f 92 push r1
b4b4: 9f 93 push r25
b4b6: 8e e2 ldi r24, 0x2E ; 46
b4b8: 94 e0 ldi r25, 0x04 ; 4
b4ba: 9f 93 push r25
b4bc: 8f 93 push r24
b4be: 87 eb ldi r24, 0xB7 ; 183
b4c0: 9c ea ldi r25, 0xAC ; 172
b4c2: 9f 93 push r25
b4c4: 8f 93 push r24
b4c6: e0 91 78 06 lds r30, 0x0678
b4ca: f0 91 79 06 lds r31, 0x0679
b4ce: 09 95 icall
b4d0: 8d b7 in r24, 0x3d ; 61
b4d2: 9e b7 in r25, 0x3e ; 62
b4d4: 08 96 adiw r24, 0x08 ; 8
b4d6: 0f b6 in r0, 0x3f ; 63
b4d8: f8 94 cli
b4da: 9e bf out 0x3e, r25 ; 62
b4dc: 0f be out 0x3f, r0 ; 63
b4de: 8d bf out 0x3d, r24 ; 61
if(BattAutoLandingVoltage) printf(" Autolanding: %d.%dV",BattAutoLandingVoltage/10,BattAutoLandingVoltage%10);
b4e0: 80 91 65 04 lds r24, 0x0465
b4e4: 88 23 and r24, r24
b4e6: 41 f1 breq .+80 ; 0xb538 <LipoDetection+0x218>
b4e8: 9d ec ldi r25, 0xCD ; 205
b4ea: 89 9f mul r24, r25
b4ec: 91 2d mov r25, r1
b4ee: 11 24 eor r1, r1
b4f0: 96 95 lsr r25
b4f2: 96 95 lsr r25
b4f4: 96 95 lsr r25
b4f6: 29 2f mov r18, r25
b4f8: 22 0f add r18, r18
b4fa: 32 2f mov r19, r18
b4fc: 33 0f add r19, r19
b4fe: 33 0f add r19, r19
b500: 23 0f add r18, r19
b502: 82 1b sub r24, r18
b504: 1f 92 push r1
b506: 8f 93 push r24
b508: 1f 92 push r1
b50a: 9f 93 push r25
b50c: 88 e1 ldi r24, 0x18 ; 24
b50e: 94 e0 ldi r25, 0x04 ; 4
b510: 9f 93 push r25
b512: 8f 93 push r24
b514: 87 eb ldi r24, 0xB7 ; 183
b516: 9c ea ldi r25, 0xAC ; 172
b518: 9f 93 push r25
b51a: 8f 93 push r24
b51c: e0 91 78 06 lds r30, 0x0678
b520: f0 91 79 06 lds r31, 0x0679
b524: 09 95 icall
b526: 2d b7 in r18, 0x3d ; 61
b528: 3e b7 in r19, 0x3e ; 62
b52a: 28 5f subi r18, 0xF8 ; 248
b52c: 3f 4f sbci r19, 0xFF ; 255
b52e: 0f b6 in r0, 0x3f ; 63
b530: f8 94 cli
b532: 3e bf out 0x3e, r19 ; 62
b534: 0f be out 0x3f, r0 ; 63
b536: 2d bf out 0x3d, r18 ; 61
}
 
}
b538: cf 91 pop r28
b53a: 08 95 ret
 
0000b53c <main>:
int main (void)
//############################################################################
{
unsigned int timer,i,timer2 = 0, timerPolling;
unsigned char update_spi = 1;
DDRB = 0x00;
b53c: 14 b8 out 0x04, r1 ; 4
PORTB = 0x00;
b53e: 15 b8 out 0x05, r1 ; 5
DDRD = 0x0A; // UART & J3 J4 J5
b540: 8a e0 ldi r24, 0x0A ; 10
b542: 8a b9 out 0x0a, r24 ; 10
PORTD = 0x5F; // PPM-Input & UART
b544: 8f e5 ldi r24, 0x5F ; 95
b546: 8b b9 out 0x0b, r24 ; 11
b548: 88 ee ldi r24, 0xE8 ; 232
b54a: 93 e0 ldi r25, 0x03 ; 3
b54c: 01 97 sbiw r24, 0x01 ; 1
for(timer = 0; timer < 1000; timer++); // verzögern
b54e: 00 97 sbiw r24, 0x00 ; 0
b550: e9 f7 brne .-6 ; 0xb54c <main+0x10>
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
unsigned char AccZ_ErrorCnt = 0;
if(PINB & 0x02)
b552: 19 9b sbis 0x03, 1 ; 3
b554: 0d c0 rjmp .+26 ; 0xb570 <main+0x34>
{
if(PIND & 0x10) PlatinenVersion = 21; // No Bridge from J4 to GND
b556: 4c 9b sbis 0x09, 4 ; 9
b558: 04 c0 rjmp .+8 ; 0xb562 <main+0x26>
b55a: 85 e1 ldi r24, 0x15 ; 21
b55c: 80 93 54 01 sts 0x0154, r24
b560: 0d c0 rjmp .+26 ; 0xb57c <main+0x40>
else { PlatinenVersion = 22; ACC_AltitudeControl = 1;};
b562: 86 e1 ldi r24, 0x16 ; 22
b564: 80 93 54 01 sts 0x0154, r24
b568: 81 e0 ldi r24, 0x01 ; 1
b56a: 80 93 c2 03 sts 0x03C2, r24
b56e: 06 c0 rjmp .+12 ; 0xb57c <main+0x40>
}
else
{
PlatinenVersion = 25; ACC_AltitudeControl = 1;
b570: 89 e1 ldi r24, 0x19 ; 25
b572: 80 93 54 01 sts 0x0154, r24
b576: 81 e0 ldi r24, 0x01 ; 1
b578: 80 93 c2 03 sts 0x03C2, r24
PORTD = 0x47; //
}
}
#endif
 
DDRC = 0x81; // I2C, Spaker
b57c: 81 e8 ldi r24, 0x81 ; 129
b57e: 87 b9 out 0x07, r24 ; 7
DDRC |=0x40; // HEF4017 Reset
b580: 3e 9a sbi 0x07, 6 ; 7
PORTC = 0xff; // Pullup SDA
b582: 8f ef ldi r24, 0xFF ; 255
b584: 88 b9 out 0x08, r24 ; 8
DDRB = 0x1B; // LEDs und Druckoffset
b586: 8b e1 ldi r24, 0x1B ; 27
b588: 84 b9 out 0x04, r24 ; 4
PORTB = 0x01; // LED_Rot
b58a: 81 e0 ldi r24, 0x01 ; 1
b58c: 85 b9 out 0x05, r24 ; 5
 
HEF4017Reset_ON;
b58e: 46 9a sbi 0x08, 6 ; 8
MCUSR &=~(1<<WDRF);
b590: 84 b7 in r24, 0x34 ; 52
b592: 87 7f andi r24, 0xF7 ; 247
b594: 84 bf out 0x34, r24 ; 52
WDTCSR |= (1<<WDCE)|(1<<WDE);
b596: e0 e6 ldi r30, 0x60 ; 96
b598: f0 e0 ldi r31, 0x00 ; 0
b59a: 80 81 ld r24, Z
b59c: 88 61 ori r24, 0x18 ; 24
b59e: 80 83 st Z, r24
WDTCSR = 0;
b5a0: 10 82 st Z, r1
 
beeptime = 2500;
b5a2: 84 ec ldi r24, 0xC4 ; 196
b5a4: 99 e0 ldi r25, 0x09 ; 9
b5a6: 90 93 ce 04 sts 0x04CE, r25
b5aa: 80 93 cd 04 sts 0x04CD, r24
StickGier = 0; PPM_in[K_GAS] = 0; StickRoll = 0; StickNick = 0;
b5ae: 10 92 11 04 sts 0x0411, r1
b5b2: 10 92 10 04 sts 0x0410, r1
b5b6: 10 92 36 08 sts 0x0836, r1
b5ba: 10 92 35 08 sts 0x0835, r1
b5be: 10 92 13 04 sts 0x0413, r1
b5c2: 10 92 12 04 sts 0x0412, r1
b5c6: 10 92 15 04 sts 0x0415, r1
b5ca: 10 92 14 04 sts 0x0414, r1
if(PlatinenVersion >= 20) GIER_GRAD_FAKTOR = 1220; else GIER_GRAD_FAKTOR = 1291; // unterschiedlich für ME und ENC
b5ce: 80 91 54 01 lds r24, 0x0154
b5d2: 84 31 cpi r24, 0x14 ; 20
b5d4: 68 f0 brcs .+26 ; 0xb5f0 <main+0xb4>
b5d6: 84 ec ldi r24, 0xC4 ; 196
b5d8: 94 e0 ldi r25, 0x04 ; 4
b5da: a0 e0 ldi r26, 0x00 ; 0
b5dc: b0 e0 ldi r27, 0x00 ; 0
b5de: 80 93 21 01 sts 0x0121, r24
b5e2: 90 93 22 01 sts 0x0122, r25
b5e6: a0 93 23 01 sts 0x0123, r26
b5ea: b0 93 24 01 sts 0x0124, r27
b5ee: 0c c0 rjmp .+24 ; 0xb608 <main+0xcc>
b5f0: 8b e0 ldi r24, 0x0B ; 11
b5f2: 95 e0 ldi r25, 0x05 ; 5
b5f4: a0 e0 ldi r26, 0x00 ; 0
b5f6: b0 e0 ldi r27, 0x00 ; 0
b5f8: 80 93 21 01 sts 0x0121, r24
b5fc: 90 93 22 01 sts 0x0122, r25
b600: a0 93 23 01 sts 0x0123, r26
b604: b0 93 24 01 sts 0x0124, r27
ROT_OFF;
b608: 28 98 cbi 0x05, 0 ; 5
GRN_ON;
b60a: 80 91 54 01 lds r24, 0x0154
b60e: 89 31 cpi r24, 0x19 ; 25
b610: 11 f4 brne .+4 ; 0xb616 <main+0xda>
b612: 29 9a sbi 0x05, 1 ; 5
b614: 01 c0 rjmp .+2 ; 0xb618 <main+0xdc>
b616: 29 98 cbi 0x05, 1 ; 5
 
Timer_Init();
b618: 0e 94 ba 9c call 0x13974 ; 0x13974 <Timer_Init>
TIMER2_Init();
b61c: 0e 94 93 9c call 0x13926 ; 0x13926 <TIMER2_Init>
UART_Init();
b620: 0e 94 bf ac call 0x1597e ; 0x1597e <UART_Init>
rc_sum_init();
b624: 0e 94 76 91 call 0x122ec ; 0x122ec <rc_sum_init>
ADC_Init();
b628: 0e 94 0e 1b call 0x361c ; 0x361c <ADC_Init>
I2C_Init(1);
b62c: 81 e0 ldi r24, 0x01 ; 1
b62e: 0e 94 c9 a0 call 0x14192 ; 0x14192 <I2C_Init>
SPI_MasterInit();
b632: 0e 94 bd 95 call 0x12b7a ; 0x12b7a <SPI_MasterInit>
Capacity_Init();
b636: 0e 94 b7 21 call 0x436e ; 0x436e <Capacity_Init>
LIBFC_Init(LIB_FC_COMPATIBLE);
b63a: 87 e0 ldi r24, 0x07 ; 7
b63c: 0e 94 19 19 call 0x3232 ; 0x3232 <LIBFC_Init>
GRN_ON;
b640: 80 91 54 01 lds r24, 0x0154
b644: 89 31 cpi r24, 0x19 ; 25
b646: 11 f4 brne .+4 ; 0xb64c <main+0x110>
b648: 29 9a sbi 0x05, 1 ; 5
b64a: 01 c0 rjmp .+2 ; 0xb64e <main+0x112>
b64c: 29 98 cbi 0x05, 1 ; 5
sei();
b64e: 78 94 sei
ParamSet_Init();
b650: 0e 94 af 26 call 0x4d5e ; 0x4d5e <ParamSet_Init>
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(PlatinenVersion < 20)
b654: 80 91 54 01 lds r24, 0x0154
b658: 84 31 cpi r24, 0x14 ; 20
b65a: e8 f4 brcc .+58 ; 0xb696 <main+0x15a>
{
wdt_enable(WDTO_250MS); // Reset-Commando
b65c: 2c e0 ldi r18, 0x0C ; 12
b65e: 88 e1 ldi r24, 0x18 ; 24
b660: 90 e0 ldi r25, 0x00 ; 0
b662: 0f b6 in r0, 0x3f ; 63
b664: f8 94 cli
b666: a8 95 wdr
b668: 80 93 60 00 sts 0x0060, r24
b66c: 0f be out 0x3f, r0 ; 63
b66e: 20 93 60 00 sts 0x0060, r18
while(1) printf("\n\rOld FC Hardware not supported by this Firmware!");
b672: 06 ee ldi r16, 0xE6 ; 230
b674: 13 e0 ldi r17, 0x03 ; 3
b676: c7 eb ldi r28, 0xB7 ; 183
b678: dc ea ldi r29, 0xAC ; 172
b67a: 1f 93 push r17
b67c: 0f 93 push r16
b67e: df 93 push r29
b680: cf 93 push r28
b682: e0 91 78 06 lds r30, 0x0678
b686: f0 91 79 06 lds r31, 0x0679
b68a: 09 95 icall
b68c: 0f 90 pop r0
b68e: 0f 90 pop r0
b690: 0f 90 pop r0
b692: 0f 90 pop r0
b694: f2 cf rjmp .-28 ; 0xb67a <main+0x13e>
#ifndef REDUNDANT_FC_SLAVE
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Check connected BL-Ctrls
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Check connected BL-Ctrls
BLFlags |= BLFLAG_READ_VERSION;
b696: 80 91 de 04 lds r24, 0x04DE
b69a: 82 60 ori r24, 0x02 ; 2
b69c: 80 93 de 04 sts 0x04DE, r24
motor_read = 0; // read the first I2C-Data
b6a0: 10 92 e1 04 sts 0x04E1, r1
b6a4: c4 ef ldi r28, 0xF4 ; 244
b6a6: d1 e0 ldi r29, 0x01 ; 1
for(i=0; i < 500; i++)
{
SendMotorData();
b6a8: 0e 94 c7 33 call 0x678e ; 0x678e <SendMotorData>
timer = SetDelay(5);
b6ac: 85 e0 ldi r24, 0x05 ; 5
b6ae: 90 e0 ldi r25, 0x00 ; 0
b6b0: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
b6b4: 5c 01 movw r10, r24
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
b6b6: 80 91 de 04 lds r24, 0x04DE
b6ba: 80 fd sbrc r24, 0
b6bc: 05 c0 rjmp .+10 ; 0xb6c8 <main+0x18c>
b6be: c5 01 movw r24, r10
b6c0: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
b6c4: 88 23 and r24, r24
b6c6: b9 f3 breq .-18 ; 0xb6b6 <main+0x17a>
b6c8: 21 97 sbiw r28, 0x01 ; 1
// + Check connected BL-Ctrls
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Check connected BL-Ctrls
BLFlags |= BLFLAG_READ_VERSION;
motor_read = 0; // read the first I2C-Data
for(i=0; i < 500; i++)
b6ca: 20 97 sbiw r28, 0x00 ; 0
b6cc: 69 f7 brne .-38 ; 0xb6a8 <main+0x16c>
{
SendMotorData();
timer = SetDelay(5);
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
}
printf("\n\rFound BL-Ctrl: ");
b6ce: 84 ed ldi r24, 0xD4 ; 212
b6d0: 93 e0 ldi r25, 0x03 ; 3
b6d2: 9f 93 push r25
b6d4: 8f 93 push r24
b6d6: 87 eb ldi r24, 0xB7 ; 183
b6d8: 9c ea ldi r25, 0xAC ; 172
b6da: 9f 93 push r25
b6dc: 8f 93 push r24
b6de: e0 91 78 06 lds r30, 0x0678
b6e2: f0 91 79 06 lds r31, 0x0679
b6e6: 09 95 icall
b6e8: 0f 2e mov r0, r31
b6ea: f4 ea ldi r31, 0xA4 ; 164
b6ec: ef 2e mov r14, r31
b6ee: f9 e0 ldi r31, 0x09 ; 9
b6f0: ff 2e mov r15, r31
b6f2: f0 2d mov r31, r0
b6f4: 0f 90 pop r0
b6f6: 0f 90 pop r0
b6f8: 0f 90 pop r0
b6fa: 0f 90 pop r0
b6fc: ca e9 ldi r28, 0x9A ; 154
b6fe: d9 e0 ldi r29, 0x09 ; 9
b700: 0f 2e mov r0, r31
b702: f4 ed ldi r31, 0xD4 ; 212
b704: cf 2e mov r12, r31
b706: f5 e0 ldi r31, 0x05 ; 5
b708: df 2e mov r13, r31
b70a: f0 2d mov r31, r0
b70c: 01 e0 ldi r16, 0x01 ; 1
b70e: 10 e0 ldi r17, 0x00 ; 0
}
}
if(Motor[i].State & MOTOR_STATE_PRESENT_MASK)
{
unsigned char vers;
printf("%d",(i+1)%10);
b710: 0f 2e mov r0, r31
b712: f1 ed ldi r31, 0xD1 ; 209
b714: 2f 2e mov r2, r31
b716: f3 e0 ldi r31, 0x03 ; 3
b718: 3f 2e mov r3, r31
b71a: f0 2d mov r31, r0
b71c: 0f 2e mov r0, r31
b71e: f7 eb ldi r31, 0xB7 ; 183
b720: 4f 2e mov r4, r31
b722: fc ea ldi r31, 0xAC ; 172
b724: 5f 2e mov r5, r31
b726: f0 2d mov r31, r0
FoundMotors++;
vers = Motor[i].VersionMajor * 100 + Motor[i].VersionMinor; // creates 104 from 1.04
b728: 0f 2e mov r0, r31
b72a: f4 e6 ldi r31, 0x64 ; 100
b72c: 9f 2e mov r9, r31
b72e: f0 2d mov r31, r0
if(vers && VersionInfo.BL_Firmware > vers) VersionInfo.BL_Firmware = vers;
b730: 0f 2e mov r0, r31
b732: f5 e6 ldi r31, 0x65 ; 101
b734: 6f 2e mov r6, r31
b736: fa e0 ldi r31, 0x0A ; 10
b738: 7f 2e mov r7, r31
b73a: f0 2d mov r31, r0
// timer = SetDelay(1000);
for(i=0; i < MAX_MOTORS; i++)
{
// SendMotorData();
// while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
if(Mixer.Motor[i][0] > 0) // wait max 4 sec for the BL-Ctrls to wake up
b73c: f6 01 movw r30, r12
b73e: 80 81 ld r24, Z
b740: 18 16 cp r1, r24
b742: 64 f0 brlt .+24 ; 0xb75c <main+0x220>
b744: 14 c0 rjmp .+40 ; 0xb76e <main+0x232>
{
while(!CheckDelay(timer) && !(Motor[i].State & MOTOR_STATE_PRESENT_MASK) )
{
SendMotorData();
b746: 0e 94 c7 33 call 0x678e ; 0x678e <SendMotorData>
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
b74a: 80 91 de 04 lds r24, 0x04DE
b74e: 80 fd sbrc r24, 0
b750: 05 c0 rjmp .+10 ; 0xb75c <main+0x220>
b752: c5 01 movw r24, r10
b754: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
b758: 88 23 and r24, r24
b75a: b9 f3 breq .-18 ; 0xb74a <main+0x20e>
{
// SendMotorData();
// while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
if(Mixer.Motor[i][0] > 0) // wait max 4 sec for the BL-Ctrls to wake up
{
while(!CheckDelay(timer) && !(Motor[i].State & MOTOR_STATE_PRESENT_MASK) )
b75c: c5 01 movw r24, r10
b75e: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
b762: 81 11 cpse r24, r1
b764: 04 c0 rjmp .+8 ; 0xb76e <main+0x232>
b766: 88 81 ld r24, Y
b768: 88 23 and r24, r24
b76a: 6c f7 brge .-38 ; 0xb746 <main+0x20a>
b76c: 04 c0 rjmp .+8 ; 0xb776 <main+0x23a>
{
SendMotorData();
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
}
}
if(Motor[i].State & MOTOR_STATE_PRESENT_MASK)
b76e: 88 81 ld r24, Y
b770: 88 23 and r24, r24
b772: 0c f0 brlt .+2 ; 0xb776 <main+0x23a>
b774: 3f c0 rjmp .+126 ; 0xb7f4 <main+0x2b8>
{
unsigned char vers;
printf("%d",(i+1)%10);
b776: 98 01 movw r18, r16
b778: ad ec ldi r26, 0xCD ; 205
b77a: bc ec ldi r27, 0xCC ; 204
b77c: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
b780: 96 95 lsr r25
b782: 87 95 ror r24
b784: 96 95 lsr r25
b786: 87 95 ror r24
b788: 96 95 lsr r25
b78a: 87 95 ror r24
b78c: 9c 01 movw r18, r24
b78e: 22 0f add r18, r18
b790: 33 1f adc r19, r19
b792: 88 0f add r24, r24
b794: 99 1f adc r25, r25
b796: 88 0f add r24, r24
b798: 99 1f adc r25, r25
b79a: 88 0f add r24, r24
b79c: 99 1f adc r25, r25
b79e: 82 0f add r24, r18
b7a0: 93 1f adc r25, r19
b7a2: 98 01 movw r18, r16
b7a4: 28 1b sub r18, r24
b7a6: 39 0b sbc r19, r25
b7a8: c9 01 movw r24, r18
b7aa: 9f 93 push r25
b7ac: 2f 93 push r18
b7ae: 3f 92 push r3
b7b0: 2f 92 push r2
b7b2: 5f 92 push r5
b7b4: 4f 92 push r4
b7b6: e0 91 78 06 lds r30, 0x0678
b7ba: f0 91 79 06 lds r31, 0x0679
b7be: 09 95 icall
FoundMotors++;
b7c0: 80 91 5d 04 lds r24, 0x045D
b7c4: 8f 5f subi r24, 0xFF ; 255
b7c6: 80 93 5d 04 sts 0x045D, r24
b7ca: f7 01 movw r30, r14
b7cc: 31 97 sbiw r30, 0x01 ; 1
vers = Motor[i].VersionMajor * 100 + Motor[i].VersionMinor; // creates 104 from 1.04
b7ce: 90 81 ld r25, Z
b7d0: f7 01 movw r30, r14
b7d2: 80 81 ld r24, Z
b7d4: 99 9d mul r25, r9
b7d6: 80 0d add r24, r0
b7d8: 11 24 eor r1, r1
if(vers && VersionInfo.BL_Firmware > vers) VersionInfo.BL_Firmware = vers;
b7da: 0f 90 pop r0
b7dc: 0f 90 pop r0
b7de: 0f 90 pop r0
b7e0: 0f 90 pop r0
b7e2: 0f 90 pop r0
b7e4: 0f 90 pop r0
b7e6: 88 23 and r24, r24
b7e8: 29 f0 breq .+10 ; 0xb7f4 <main+0x2b8>
b7ea: f3 01 movw r30, r6
b7ec: 90 81 ld r25, Z
b7ee: 89 17 cp r24, r25
b7f0: 08 f4 brcc .+2 ; 0xb7f4 <main+0x2b8>
b7f2: 80 83 st Z, r24
b7f4: 0f 5f subi r16, 0xFF ; 255
b7f6: 1f 4f sbci r17, 0xFF ; 255
b7f8: f4 e0 ldi r31, 0x04 ; 4
b7fa: cf 0e add r12, r31
b7fc: d1 1c adc r13, r1
b7fe: 2f 96 adiw r28, 0x0f ; 15
b800: 2f e0 ldi r18, 0x0F ; 15
b802: e2 0e add r14, r18
b804: f1 1c adc r15, r1
timer = SetDelay(5);
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
}
printf("\n\rFound BL-Ctrl: ");
// timer = SetDelay(1000);
for(i=0; i < MAX_MOTORS; i++)
b806: 0d 30 cpi r16, 0x0D ; 13
b808: 11 05 cpc r17, r1
b80a: 09 f0 breq .+2 ; 0xb80e <main+0x2d2>
b80c: 97 cf rjmp .-210 ; 0xb73c <main+0x200>
b80e: 0f 2e mov r0, r31
b810: f4 ed ldi r31, 0xD4 ; 212
b812: ef 2e mov r14, r31
b814: f5 e0 ldi r31, 0x05 ; 5
b816: ff 2e mov r15, r31
b818: f0 2d mov r31, r0
b81a: 0a e9 ldi r16, 0x9A ; 154
b81c: 19 e0 ldi r17, 0x09 ; 9
b81e: c1 e0 ldi r28, 0x01 ; 1
b820: d0 e0 ldi r29, 0x00 ; 0
}
for(i=0; i < MAX_MOTORS; i++)
{
if(!(Motor[i].State & MOTOR_STATE_PRESENT_MASK) && Mixer.Motor[i][0] > 0)
{
printf("\n\r\n\r!! MISSING BL-CTRL: %d !!",i+1);
b822: 0f 2e mov r0, r31
b824: f3 eb ldi r31, 0xB3 ; 179
b826: af 2e mov r10, r31
b828: f3 e0 ldi r31, 0x03 ; 3
b82a: bf 2e mov r11, r31
b82c: f0 2d mov r31, r0
b82e: 0f 2e mov r0, r31
b830: f7 eb ldi r31, 0xB7 ; 183
b832: cf 2e mov r12, r31
b834: fc ea ldi r31, 0xAC ; 172
b836: df 2e mov r13, r31
b838: f0 2d mov r31, r0
ServoActive = 2; // just in case the FC would be used as camera-stabilizer
b83a: 68 94 set
b83c: 77 24 eor r7, r7
b83e: 71 f8 bld r7, 1
b840: 48 01 movw r8, r16
// printf(":V%03d\n\r",vers);
}
}
for(i=0; i < MAX_MOTORS; i++)
{
if(!(Motor[i].State & MOTOR_STATE_PRESENT_MASK) && Mixer.Motor[i][0] > 0)
b842: f8 01 movw r30, r16
b844: 80 81 ld r24, Z
b846: 88 23 and r24, r24
b848: bc f0 brlt .+46 ; 0xb878 <main+0x33c>
b84a: f7 01 movw r30, r14
b84c: 80 81 ld r24, Z
b84e: 18 16 cp r1, r24
b850: 9c f4 brge .+38 ; 0xb878 <main+0x33c>
{
printf("\n\r\n\r!! MISSING BL-CTRL: %d !!",i+1);
b852: df 93 push r29
b854: cf 93 push r28
b856: bf 92 push r11
b858: af 92 push r10
b85a: df 92 push r13
b85c: cf 92 push r12
b85e: e0 91 78 06 lds r30, 0x0678
b862: f0 91 79 06 lds r31, 0x0679
b866: 09 95 icall
ServoActive = 2; // just in case the FC would be used as camera-stabilizer
b868: 70 92 cb 04 sts 0x04CB, r7
b86c: 0f 90 pop r0
b86e: 0f 90 pop r0
b870: 0f 90 pop r0
b872: 0f 90 pop r0
b874: 0f 90 pop r0
b876: 0f 90 pop r0
}
Motor[i].State &= ~MOTOR_STATE_ERROR_MASK; // clear error counter
b878: f4 01 movw r30, r8
b87a: 80 81 ld r24, Z
b87c: 80 78 andi r24, 0x80 ; 128
b87e: 80 83 st Z, r24
b880: 21 96 adiw r28, 0x01 ; 1
b882: 01 5f subi r16, 0xF1 ; 241
b884: 1f 4f sbci r17, 0xFF ; 255
b886: f4 e0 ldi r31, 0x04 ; 4
b888: ef 0e add r14, r31
b88a: f1 1c adc r15, r1
// if(Motor[i].Version & MOTOR_STATE_FAST_MODE) printf("(fast)\n\r");
// else if(Motor[i].Version & MOTOR_STATE_NEW_PROTOCOL_MASK) printf("(new)\n\r");
// printf(":V%03d\n\r",vers);
}
}
for(i=0; i < MAX_MOTORS; i++)
b88c: cd 30 cpi r28, 0x0D ; 13
b88e: d1 05 cpc r29, r1
b890: b9 f6 brne .-82 ; 0xb840 <main+0x304>
ServoActive = 2; // just in case the FC would be used as camera-stabilizer
}
Motor[i].State &= ~MOTOR_STATE_ERROR_MASK; // clear error counter
}
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(VersionInfo.BL_Firmware != 255)
b892: 80 91 65 0a lds r24, 0x0A65
b896: 8f 3f cpi r24, 0xFF ; 255
b898: d1 f1 breq .+116 ; 0xb90e <main+0x3d2>
{
printf("\n\rBL-Firmware %d.%02d",VersionInfo.BL_Firmware/100,VersionInfo.BL_Firmware%100);
b89a: 99 e2 ldi r25, 0x29 ; 41
b89c: 89 9f mul r24, r25
b89e: 91 2d mov r25, r1
b8a0: 11 24 eor r1, r1
b8a2: 92 95 swap r25
b8a4: 9f 70 andi r25, 0x0F ; 15
b8a6: 24 e6 ldi r18, 0x64 ; 100
b8a8: 92 9f mul r25, r18
b8aa: 80 19 sub r24, r0
b8ac: 11 24 eor r1, r1
b8ae: 1f 92 push r1
b8b0: 8f 93 push r24
b8b2: 1f 92 push r1
b8b4: 9f 93 push r25
b8b6: 8d e9 ldi r24, 0x9D ; 157
b8b8: 93 e0 ldi r25, 0x03 ; 3
b8ba: 9f 93 push r25
b8bc: 8f 93 push r24
b8be: 87 eb ldi r24, 0xB7 ; 183
b8c0: 9c ea ldi r25, 0xAC ; 172
b8c2: 9f 93 push r25
b8c4: 8f 93 push r24
b8c6: e0 91 78 06 lds r30, 0x0678
b8ca: f0 91 79 06 lds r31, 0x0679
b8ce: 09 95 icall
if(VersionInfo.BL_Firmware >= 100 && VersionInfo.BL_Firmware <= 102) printf("<-- warning old Version!");
b8d0: 80 91 65 0a lds r24, 0x0A65
b8d4: 84 56 subi r24, 0x64 ; 100
b8d6: 4d b7 in r20, 0x3d ; 61
b8d8: 5e b7 in r21, 0x3e ; 62
b8da: 48 5f subi r20, 0xF8 ; 248
b8dc: 5f 4f sbci r21, 0xFF ; 255
b8de: 0f b6 in r0, 0x3f ; 63
b8e0: f8 94 cli
b8e2: 5e bf out 0x3e, r21 ; 62
b8e4: 0f be out 0x3f, r0 ; 63
b8e6: 4d bf out 0x3d, r20 ; 61
b8e8: 83 30 cpi r24, 0x03 ; 3
b8ea: 88 f4 brcc .+34 ; 0xb90e <main+0x3d2>
b8ec: 84 e8 ldi r24, 0x84 ; 132
b8ee: 93 e0 ldi r25, 0x03 ; 3
b8f0: 9f 93 push r25
b8f2: 8f 93 push r24
b8f4: 87 eb ldi r24, 0xB7 ; 183
b8f6: 9c ea ldi r25, 0xAC ; 172
b8f8: 9f 93 push r25
b8fa: 8f 93 push r24
b8fc: e0 91 78 06 lds r30, 0x0678
b900: f0 91 79 06 lds r31, 0x0679
b904: 09 95 icall
b906: 0f 90 pop r0
b908: 0f 90 pop r0
b90a: 0f 90 pop r0
b90c: 0f 90 pop r0
}
#endif
 
PrintLine();// ("\n\r===================================");
b90e: c3 dc rcall .-1658 ; 0xb296 <PrintLine>
if(RequiredMotors < FoundMotors) VersionInfo.HardwareError[1] |= FC_ERROR1_MIXER;
b910: 80 91 3d 05 lds r24, 0x053D
b914: 90 91 5d 04 lds r25, 0x045D
b918: 89 17 cp r24, r25
b91a: 28 f4 brcc .+10 ; 0xb926 <main+0x3ea>
b91c: e3 e6 ldi r30, 0x63 ; 99
b91e: fa e0 ldi r31, 0x0A ; 10
b920: 90 81 ld r25, Z
b922: 90 61 ori r25, 0x10 ; 16
b924: 90 83 st Z, r25
if(RequiredMotors > 8) Max_I2C_Packets = 8; else Max_I2C_Packets = RequiredMotors;
b926: 89 30 cpi r24, 0x09 ; 9
b928: 20 f0 brcs .+8 ; 0xb932 <main+0x3f6>
b92a: 88 e0 ldi r24, 0x08 ; 8
b92c: 80 93 b2 02 sts 0x02B2, r24
b930: 02 c0 rjmp .+4 ; 0xb936 <main+0x3fa>
b932: 80 93 b2 02 sts 0x02B2, r24
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Calibrating altitude sensor
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)
{
printf("\n\rCalibrating pressure sensor..");
b936: 84 e6 ldi r24, 0x64 ; 100
b938: 93 e0 ldi r25, 0x03 ; 3
b93a: 9f 93 push r25
b93c: 8f 93 push r24
b93e: 87 eb ldi r24, 0xB7 ; 183
b940: 9c ea ldi r25, 0xAC ; 172
b942: 9f 93 push r25
b944: 8f 93 push r24
b946: e0 91 78 06 lds r30, 0x0678
b94a: f0 91 79 06 lds r31, 0x0679
b94e: 09 95 icall
timer = SetDelay(1000);
b950: 88 ee ldi r24, 0xE8 ; 232
b952: 93 e0 ldi r25, 0x03 ; 3
b954: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
b958: ec 01 movw r28, r24
SucheLuftruckOffset();
b95a: 0e 94 4b 1b call 0x3696 ; 0x3696 <SucheLuftruckOffset>
while (!CheckDelay(timer));
b95e: 0f 90 pop r0
b960: 0f 90 pop r0
b962: 0f 90 pop r0
b964: 0f 90 pop r0
b966: ce 01 movw r24, r28
b968: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
b96c: 88 23 and r24, r24
b96e: d9 f3 breq .-10 ; 0xb966 <main+0x42a>
printf("OK\n\r");
b970: 8f e5 ldi r24, 0x5F ; 95
b972: 93 e0 ldi r25, 0x03 ; 3
b974: 9f 93 push r25
b976: 8f 93 push r24
b978: 87 eb ldi r24, 0xB7 ; 183
b97a: 9c ea ldi r25, 0xAC ; 172
b97c: 9f 93 push r25
b97e: 8f 93 push r24
b980: e0 91 78 06 lds r30, 0x0678
b984: f0 91 79 06 lds r31, 0x0679
b988: 09 95 icall
#ifdef REDUNDANT_FC_SLAVE
VersionInfo.HardwareError[0] = 0;
VersionInfo.HardwareError[1] = 0;
#endif
 
SetNeutral(0);
b98a: 80 e0 ldi r24, 0x00 ; 0
b98c: 0e 94 53 29 call 0x52a6 ; 0x52a6 <SetNeutral>
 
ROT_OFF;
b990: 28 98 cbi 0x05, 0 ; 5
 
beeptime = 2000;
b992: 80 ed ldi r24, 0xD0 ; 208
b994: 97 e0 ldi r25, 0x07 ; 7
b996: 90 93 ce 04 sts 0x04CE, r25
b99a: 80 93 cd 04 sts 0x04CD, r24
ExternControl.Digital[0] = 0x55;
b99e: 85 e5 ldi r24, 0x55 ; 85
b9a0: 80 93 7f 0a sts 0x0A7F, r24
 
 
FlugMinuten = (unsigned int)GetParamByte(PID_FLIGHT_MINUTES) * 256 + (unsigned int)GetParamByte(PID_FLIGHT_MINUTES + 1);
b9a4: 8e e0 ldi r24, 0x0E ; 14
b9a6: 90 e0 ldi r25, 0x00 ; 0
b9a8: 0e 94 42 25 call 0x4a84 ; 0x4a84 <GetParamByte>
b9ac: c8 2f mov r28, r24
b9ae: 8f e0 ldi r24, 0x0F ; 15
b9b0: 90 e0 ldi r25, 0x00 ; 0
b9b2: 0e 94 42 25 call 0x4a84 ; 0x4a84 <GetParamByte>
b9b6: 2c 2f mov r18, r28
b9b8: 30 e0 ldi r19, 0x00 ; 0
b9ba: 32 2f mov r19, r18
b9bc: 22 27 eor r18, r18
b9be: 28 0f add r18, r24
b9c0: 31 1d adc r19, r1
b9c2: 30 93 63 04 sts 0x0463, r19
b9c6: 20 93 62 04 sts 0x0462, r18
FlugMinutenGesamt = (unsigned int)GetParamByte(PID_FLIGHT_MINUTES_TOTAL) * 256 + (unsigned int)GetParamByte(PID_FLIGHT_MINUTES_TOTAL + 1);
b9ca: 8a e0 ldi r24, 0x0A ; 10
b9cc: 90 e0 ldi r25, 0x00 ; 0
b9ce: 0e 94 42 25 call 0x4a84 ; 0x4a84 <GetParamByte>
b9d2: c8 2f mov r28, r24
b9d4: 8b e0 ldi r24, 0x0B ; 11
b9d6: 90 e0 ldi r25, 0x00 ; 0
b9d8: 0e 94 42 25 call 0x4a84 ; 0x4a84 <GetParamByte>
b9dc: 2c 2f mov r18, r28
b9de: 30 e0 ldi r19, 0x00 ; 0
b9e0: 32 2f mov r19, r18
b9e2: 22 27 eor r18, r18
b9e4: f9 01 movw r30, r18
b9e6: e8 0f add r30, r24
b9e8: f1 1d adc r31, r1
b9ea: cf 01 movw r24, r30
b9ec: f0 93 61 04 sts 0x0461, r31
b9f0: e0 93 60 04 sts 0x0460, r30
 
if((FlugMinutenGesamt == 0xFFFF) || (FlugMinuten == 0xFFFF))
b9f4: 0f 90 pop r0
b9f6: 0f 90 pop r0
b9f8: 0f 90 pop r0
b9fa: 0f 90 pop r0
b9fc: 01 96 adiw r24, 0x01 ; 1
b9fe: 31 f0 breq .+12 ; 0xba0c <main+0x4d0>
ba00: 80 91 62 04 lds r24, 0x0462
ba04: 90 91 63 04 lds r25, 0x0463
ba08: 01 96 adiw r24, 0x01 ; 1
ba0a: 41 f4 brne .+16 ; 0xba1c <main+0x4e0>
{
FlugMinuten = 0;
ba0c: 10 92 63 04 sts 0x0463, r1
ba10: 10 92 62 04 sts 0x0462, r1
FlugMinutenGesamt = 0;
ba14: 10 92 61 04 sts 0x0461, r1
ba18: 10 92 60 04 sts 0x0460, r1
}
printf("\n\rFlight-time %u min Total:%u min", FlugMinuten, FlugMinutenGesamt);
ba1c: 80 91 61 04 lds r24, 0x0461
ba20: 8f 93 push r24
ba22: 80 91 60 04 lds r24, 0x0460
ba26: 8f 93 push r24
ba28: 80 91 63 04 lds r24, 0x0463
ba2c: 8f 93 push r24
ba2e: 80 91 62 04 lds r24, 0x0462
ba32: 8f 93 push r24
ba34: 8d e3 ldi r24, 0x3D ; 61
ba36: 93 e0 ldi r25, 0x03 ; 3
ba38: 9f 93 push r25
ba3a: 8f 93 push r24
ba3c: 87 eb ldi r24, 0xB7 ; 183
ba3e: 9c ea ldi r25, 0xAC ; 172
ba40: 9f 93 push r25
ba42: 8f 93 push r24
ba44: e0 91 78 06 lds r30, 0x0678
ba48: f0 91 79 06 lds r31, 0x0679
ba4c: 09 95 icall
LcdClear();
ba4e: 0e 94 1d 87 call 0x10e3a ; 0x10e3a <LcdClear>
I2CTimeout = 5000;
ba52: 88 e8 ldi r24, 0x88 ; 136
ba54: 93 e1 ldi r25, 0x13 ; 19
ba56: 90 93 b1 02 sts 0x02B1, r25
ba5a: 80 93 b0 02 sts 0x02B0, r24
WinkelOut.Orientation = 1;
ba5e: 81 e0 ldi r24, 0x01 ; 1
ba60: 80 93 7e 0a sts 0x0A7E, r24
LipoDetection(1);
ba64: 5d dc rcall .-1862 ; 0xb320 <LipoDetection>
LIBFC_ReceiverInit(EE_Parameter.Receiver);
ba66: 80 91 65 05 lds r24, 0x0565
ba6a: 0e 94 68 18 call 0x30d0 ; 0x30d0 <LIBFC_ReceiverInit>
PrintLine();// ("\n\r===================================");
ba6e: 13 dc rcall .-2010 ; 0xb296 <PrintLine>
//SpektrumBinding();
timer = SetDelay(2000);
ba70: 80 ed ldi r24, 0xD0 ; 208
ba72: 97 e0 ldi r25, 0x07 ; 7
ba74: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
ba78: 4c 01 movw r8, r24
timerPolling = SetDelay(250);
ba7a: 8a ef ldi r24, 0xFA ; 250
ba7c: 90 e0 ldi r25, 0x00 ; 0
ba7e: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
 
Debug(ANSI_CLEAR "FC-Start!\n\rFlugzeit: %d min", FlugMinutenGesamt); // Note: this won't waste flash memory, if #DEBUG is not active
ba82: 80 91 61 04 lds r24, 0x0461
ba86: 8f 93 push r24
ba88: 80 91 60 04 lds r24, 0x0460
ba8c: 8f 93 push r24
ba8e: 8d e1 ldi r24, 0x1D ; 29
ba90: 93 e0 ldi r25, 0x03 ; 3
ba92: 9f 93 push r25
ba94: 8f 93 push r24
ba96: 88 e1 ldi r24, 0x18 ; 24
ba98: 93 e2 ldi r25, 0x23 ; 35
ba9a: 9f 93 push r25
ba9c: 8f 93 push r24
ba9e: e0 91 78 06 lds r30, 0x0678
baa2: f0 91 79 06 lds r31, 0x0679
baa6: 09 95 icall
baa8: 80 e0 ldi r24, 0x00 ; 0
baaa: 0e 94 2c 23 call 0x4658 ; 0x4658 <DebugSend>
//printf("\n\rEE_Parameter size:%i\n\r", PARAMSET_STRUCT_LEN);
 
DebugOut.Status[0] = 0x01 | 0x02;
baae: 83 e0 ldi r24, 0x03 ; 3
bab0: 80 93 46 0c sts 0x0C46, r24
JetiBeep = 0;
bab4: 10 92 5c 04 sts 0x045C, r1
if(EE_Parameter.ExtraConfig & CFG_NO_RCOFF_BEEPING) DisableRcOffBeeping = 1;
bab8: 80 91 b8 05 lds r24, 0x05B8
babc: 4d b7 in r20, 0x3d ; 61
babe: 5e b7 in r21, 0x3e ; 62
bac0: 42 5f subi r20, 0xF2 ; 242
bac2: 5f 4f sbci r21, 0xFF ; 255
bac4: 0f b6 in r0, 0x3f ; 63
bac6: f8 94 cli
bac8: 5e bf out 0x3e, r21 ; 62
baca: 0f be out 0x3f, r0 ; 63
bacc: 4d bf out 0x3d, r20 ; 61
bace: 84 ff sbrs r24, 4
bad0: 03 c0 rjmp .+6 ; 0xbad8 <main+0x59c>
bad2: 81 e0 ldi r24, 0x01 ; 1
bad4: 80 93 66 04 sts 0x0466, r24
ReadBlSize = 3; // don't read the version any more
bad8: 83 e0 ldi r24, 0x03 ; 3
bada: 80 93 b3 02 sts 0x02B3, r24
PORTB = 0x00;
DDRD = 0x0A; // UART & J3 J4 J5
PORTD = 0x5F; // PPM-Input & UART
for(timer = 0; timer < 1000; timer++); // verzögern
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
unsigned char AccZ_ErrorCnt = 0;
bade: 61 2c mov r6, r1
//Hauptprogramm
int main (void)
//############################################################################
{
unsigned int timer,i,timer2 = 0, timerPolling;
unsigned char update_spi = 1;
bae0: 77 24 eor r7, r7
bae2: 73 94 inc r7
//############################################################################
//Hauptprogramm
int main (void)
//############################################################################
{
unsigned int timer,i,timer2 = 0, timerPolling;
bae4: c0 e0 ldi r28, 0x00 ; 0
bae6: d0 e0 ldi r29, 0x00 ; 0
if(UpdateMotor && AdReady) // ReglerIntervall
{
cli();
UpdateMotor--;
sei();
if(WinkelOut.CalcState) CalMk3Mag();
bae8: 0f 2e mov r0, r31
baea: fd e7 ldi r31, 0x7D ; 125
baec: af 2e mov r10, r31
baee: fa e0 ldi r31, 0x0A ; 10
baf0: bf 2e mov r11, r31
baf2: f0 2d mov r31, r0
{
static unsigned char second;
timer += 20; // 20 ms interval
CalcNickServoValue();
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(EE_Parameter.Receiver == RECEIVER_HOTT) HoTT_Menu();
baf4: 0f 2e mov r0, r31
baf6: f5 e6 ldi r31, 0x65 ; 101
baf8: cf 2e mov r12, r31
bafa: f5 e0 ldi r31, 0x05 ; 5
bafc: df 2e mov r13, r31
bafe: f0 2d mov r31, r0
if(UBat <= BattLowVoltageWarning)
{
FC_StatusFlags |= FC_STATUS_LOWBAT;
if(BeepMuster == 0xffff && UBat > 10) // Do not beep, if the voltage reading is below 1V (Supplied via MKUSB)
{
beeptime = 6000;
bb00: 0f 2e mov r0, r31
bb02: f0 e7 ldi r31, 0x70 ; 112
bb04: ef 2e mov r14, r31
bb06: f7 e1 ldi r31, 0x17 ; 23
bb08: ff 2e mov r15, r31
bb0a: f0 2d mov r31, r0
GPS_Roll = 0;
GPS_Aid_StickMultiplikator = 0;
GPSInfo.Flags = 0;
FromNaviCtrl_Value.Kalman_K = -1;
FromNaviCtrl.AccErrorN = 0;
FromNaviCtrl.AccErrorR = 0;
bb0c: 0f 2e mov r0, r31
bb0e: f7 e1 ldi r31, 0x17 ; 23
bb10: 2f 2e mov r2, r31
bb12: f9 e0 ldi r31, 0x09 ; 9
bb14: 3f 2e mov r3, r31
bb16: f0 2d mov r31, r0
FromNaviCtrl.CompassValue = -1;
bb18: 0f 2e mov r0, r31
bb1a: f3 e1 ldi r31, 0x13 ; 19
bb1c: 4f 2e mov r4, r31
bb1e: f9 e0 ldi r31, 0x09 ; 9
bb20: 5f 2e mov r5, r31
bb22: f0 2d mov r31, r0
bb24: 17 2d mov r17, r7
bb26: 06 2d mov r16, r6
bb28: 03 c0 rjmp .+6 ; 0xbb30 <main+0x5f4>
} //else DebugOut.Analog[18]++;
if(update_spi) update_spi--;
} // 500Hz
if(update_spi == 0) // 41Hz
{
if(SPI_StartTransmitPacket()) update_spi = 12;
bb2a: 1c e0 ldi r17, 0x0C ; 12
bb2c: 01 c0 rjmp .+2 ; 0xbb30 <main+0x5f4>
bb2e: 10 e0 ldi r17, 0x00 ; 0
while(!CheckDelay(timer));
printf("\n\rStart\n\r");
#endif
while(1)
{
EEAR = EE_DUMMY; // Set the EEPROM Address pointer to an unused space
bb30: 12 bc out 0x22, r1 ; 34
bb32: 11 bc out 0x21, r1 ; 33
if(ReceiverUpdateModeActive) while (1) PORTC &= ~(1<<7); // Beeper off
bb34: 80 91 ec 04 lds r24, 0x04EC
bb38: 88 23 and r24, r24
bb3a: 11 f0 breq .+4 ; 0xbb40 <main+0x604>
bb3c: 47 98 cbi 0x08, 7 ; 8
bb3e: fe cf rjmp .-4 ; 0xbb3c <main+0x600>
if(UpdateMotor && AdReady) // ReglerIntervall
bb40: 80 91 d1 04 lds r24, 0x04D1
bb44: 88 23 and r24, r24
bb46: 09 f4 brne .+2 ; 0xbb4a <main+0x60e>
bb48: bf c2 rjmp .+1406 ; 0xc0c8 <main+0xb8c>
bb4a: 80 91 0f 01 lds r24, 0x010F
bb4e: 88 23 and r24, r24
bb50: 09 f4 brne .+2 ; 0xbb54 <main+0x618>
bb52: ba c2 rjmp .+1396 ; 0xc0c8 <main+0xb8c>
{
cli();
bb54: f8 94 cli
UpdateMotor--;
bb56: 80 91 d1 04 lds r24, 0x04D1
bb5a: 81 50 subi r24, 0x01 ; 1
bb5c: 80 93 d1 04 sts 0x04D1, r24
sei();
bb60: 78 94 sei
if(WinkelOut.CalcState) CalMk3Mag();
bb62: f5 01 movw r30, r10
bb64: 80 81 ld r24, Z
bb66: 88 23 and r24, r24
bb68: 11 f0 breq .+4 ; 0xbb6e <main+0x632>
bb6a: a7 db rcall .-2226 ; 0xb2ba <CalMk3Mag>
bb6c: 02 c0 rjmp .+4 ; 0xbb72 <main+0x636>
else MotorRegler();
bb6e: 0e 94 06 38 call 0x700c ; 0x700c <MotorRegler>
SendMotorData();
bb72: 0e 94 c7 33 call 0x678e ; 0x678e <SendMotorData>
ROT_OFF;
bb76: 28 98 cbi 0x05, 0 ; 5
if(SenderOkay) { SenderOkay--; /*VersionInfo.HardwareError[1] &= ~FC_ERROR1_PPM;*/ }
bb78: 80 91 04 04 lds r24, 0x0404
bb7c: 88 23 and r24, r24
bb7e: 31 f0 breq .+12 ; 0xbb8c <main+0x650>
bb80: 80 91 04 04 lds r24, 0x0404
bb84: 81 50 subi r24, 0x01 ; 1
bb86: 80 93 04 04 sts 0x0404, r24
bb8a: 3e c0 rjmp .+124 ; 0xbc08 <main+0x6cc>
else
{
TIMSK1 |= _BV(ICIE1); // enable PPM-Input
bb8c: ef e6 ldi r30, 0x6F ; 111
bb8e: f0 e0 ldi r31, 0x00 ; 0
bb90: 80 81 ld r24, Z
bb92: 80 62 ori r24, 0x20 ; 32
bb94: 80 83 st Z, r24
PPM_in[0] = 0; // set RSSI to zero on data timeout
bb96: 10 92 32 08 sts 0x0832, r1
bb9a: 10 92 31 08 sts 0x0831, r1
VersionInfo.HardwareError[1] |= FC_ERROR1_PPM;
bb9e: e3 e6 ldi r30, 0x63 ; 99
bba0: fa e0 ldi r31, 0x0A ; 10
bba2: 80 81 ld r24, Z
bba4: 88 60 ori r24, 0x08 ; 8
bba6: 80 83 st Z, r24
// Now clear the channel values - they would be wrong
PPM_diff[EE_Parameter.Kanalbelegung[K_NICK]] = 0;
bba8: 20 91 3f 05 lds r18, 0x053F
bbac: 30 e0 ldi r19, 0x00 ; 0
bbae: 22 0f add r18, r18
bbb0: 33 1f adc r19, r19
bbb2: f9 01 movw r30, r18
bbb4: e9 58 subi r30, 0x89 ; 137
bbb6: f7 4f sbci r31, 0xF7 ; 247
bbb8: 11 82 std Z+1, r1 ; 0x01
bbba: 10 82 st Z, r1
PPM_diff[EE_Parameter.Kanalbelegung[K_ROLL]] = 0;
bbbc: 80 91 40 05 lds r24, 0x0540
bbc0: 90 e0 ldi r25, 0x00 ; 0
bbc2: 88 0f add r24, r24
bbc4: 99 1f adc r25, r25
bbc6: fc 01 movw r30, r24
bbc8: e9 58 subi r30, 0x89 ; 137
bbca: f7 4f sbci r31, 0xF7 ; 247
bbcc: 11 82 std Z+1, r1 ; 0x01
bbce: 10 82 st Z, r1
PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] = 0;
bbd0: f9 01 movw r30, r18
bbd2: ef 5c subi r30, 0xCF ; 207
bbd4: f7 4f sbci r31, 0xF7 ; 247
bbd6: 11 82 std Z+1, r1 ; 0x01
bbd8: 10 82 st Z, r1
PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] = 0;
bbda: fc 01 movw r30, r24
bbdc: ef 5c subi r30, 0xCF ; 207
bbde: f7 4f sbci r31, 0xF7 ; 247
bbe0: 11 82 std Z+1, r1 ; 0x01
bbe2: 10 82 st Z, r1
PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] = 0;
bbe4: e0 91 42 05 lds r30, 0x0542
bbe8: f0 e0 ldi r31, 0x00 ; 0
bbea: ee 0f add r30, r30
bbec: ff 1f adc r31, r31
bbee: ef 5c subi r30, 0xCF ; 207
bbf0: f7 4f sbci r31, 0xF7 ; 247
bbf2: 11 82 std Z+1, r1 ; 0x01
bbf4: 10 82 st Z, r1
PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] = 0;
bbf6: e0 91 41 05 lds r30, 0x0541
bbfa: f0 e0 ldi r31, 0x00 ; 0
bbfc: ee 0f add r30, r30
bbfe: ff 1f adc r31, r31
bc00: ef 5c subi r30, 0xCF ; 207
bc02: f7 4f sbci r31, 0xF7 ; 247
bc04: 11 82 std Z+1, r1 ; 0x01
bc06: 10 82 st Z, r1
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 160 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 220) SenderOkay = 160;
//if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 101 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 1) SenderOkay = 101;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!--I2CTimeout || MissingMotor)
bc08: 80 91 b0 02 lds r24, 0x02B0
bc0c: 90 91 b1 02 lds r25, 0x02B1
bc10: 01 97 sbiw r24, 0x01 ; 1
bc12: 90 93 b1 02 sts 0x02B1, r25
bc16: 80 93 b0 02 sts 0x02B0, r24
bc1a: 89 2b or r24, r25
bc1c: 21 f0 breq .+8 ; 0xbc26 <main+0x6ea>
bc1e: 80 91 df 04 lds r24, 0x04DF
bc22: 88 23 and r24, r24
bc24: b1 f1 breq .+108 ; 0xbc92 <main+0x756>
{
if(!I2CTimeout)
bc26: 80 91 b0 02 lds r24, 0x02B0
bc2a: 90 91 b1 02 lds r25, 0x02B1
bc2e: 89 2b or r24, r25
bc30: c9 f4 brne .+50 ; 0xbc64 <main+0x728>
{
I2C_Reset();
bc32: 0e 94 09 a1 call 0x14212 ; 0x14212 <I2C_Reset>
I2CTimeout = 5;
bc36: 85 e0 ldi r24, 0x05 ; 5
bc38: 90 e0 ldi r25, 0x00 ; 0
bc3a: 90 93 b1 02 sts 0x02B1, r25
bc3e: 80 93 b0 02 sts 0x02B0, r24
DebugOut.Analog[28]++; // I2C-Error
bc42: e0 e8 ldi r30, 0x80 ; 128
bc44: fc e0 ldi r31, 0x0C ; 12
bc46: 80 81 ld r24, Z
bc48: 91 81 ldd r25, Z+1 ; 0x01
bc4a: 01 96 adiw r24, 0x01 ; 1
bc4c: 91 83 std Z+1, r25 ; 0x01
bc4e: 80 83 st Z, r24
VersionInfo.HardwareError[1] |= FC_ERROR1_I2C;
bc50: e3 e6 ldi r30, 0x63 ; 99
bc52: fa e0 ldi r31, 0x0A ; 10
bc54: 80 81 ld r24, Z
bc56: 81 60 ori r24, 0x01 ; 1
bc58: 80 83 st Z, r24
DebugOut.Status[1] |= 0x02; // BL-Error-Status
bc5a: e7 e4 ldi r30, 0x47 ; 71
bc5c: fc e0 ldi r31, 0x0C ; 12
bc5e: 80 81 ld r24, Z
bc60: 82 60 ori r24, 0x02 ; 2
bc62: 80 83 st Z, r24
}
if((BeepMuster == 0xffff) && MotorenEin)
bc64: 80 91 a9 02 lds r24, 0x02A9
bc68: 90 91 aa 02 lds r25, 0x02AA
bc6c: 01 96 adiw r24, 0x01 ; 1
bc6e: 91 f4 brne .+36 ; 0xbc94 <main+0x758>
bc70: 80 91 03 04 lds r24, 0x0403
bc74: 88 23 and r24, r24
bc76: 71 f0 breq .+28 ; 0xbc94 <main+0x758>
{
beeptime = 25000;
bc78: 88 ea ldi r24, 0xA8 ; 168
bc7a: 91 e6 ldi r25, 0x61 ; 97
bc7c: 90 93 ce 04 sts 0x04CE, r25
bc80: 80 93 cd 04 sts 0x04CD, r24
BeepMuster = 0x0080;
bc84: 80 e8 ldi r24, 0x80 ; 128
bc86: 90 e0 ldi r25, 0x00 ; 0
bc88: 90 93 aa 02 sts 0x02AA, r25
bc8c: 80 93 a9 02 sts 0x02A9, r24
bc90: 01 c0 rjmp .+2 ; 0xbc94 <main+0x758>
}
}
else
{
ROT_OFF;
bc92: 28 98 cbi 0x05, 0 ; 5
}
LIBFC_Polling();
bc94: 0e 94 16 1a call 0x342c ; 0x342c <LIBFC_Polling>
 
if(!UpdateMotor)
bc98: 80 91 d1 04 lds r24, 0x04D1
bc9c: 81 11 cpse r24, r1
bc9e: 11 c2 rjmp .+1058 ; 0xc0c2 <main+0xb86>
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(NewSBusData) ProcessSBus();
bca0: 80 91 ab 04 lds r24, 0x04AB
bca4: 88 23 and r24, r24
bca6: 19 f0 breq .+6 ; 0xbcae <main+0x772>
bca8: 0e 94 33 93 call 0x12666 ; 0x12666 <ProcessSBus>
bcac: 0a c2 rjmp .+1044 ; 0xc0c2 <main+0xb86>
else
#endif
{
if(BytegapSPI == 0) SPI_TransmitByte();
bcae: 80 91 cc 04 lds r24, 0x04CC
bcb2: 81 11 cpse r24, r1
bcb4: 02 c0 rjmp .+4 ; 0xbcba <main+0x77e>
bcb6: 0e 94 de 95 call 0x12bbc ; 0x12bbc <SPI_TransmitByte>
if(CalculateServoSignals) CalculateServo();
bcba: 80 91 af 02 lds r24, 0x02AF
bcbe: 81 11 cpse r24, r1
bcc0: 0e 94 14 9d call 0x13a28 ; 0x13a28 <CalculateServo>
DatenUebertragung();
bcc4: 0e 94 00 ad call 0x15a00 ; 0x15a00 <DatenUebertragung>
BearbeiteRxDaten();
bcc8: 0e 94 5f a8 call 0x150be ; 0x150be <BearbeiteRxDaten>
if(CheckDelay(timer))
bccc: c4 01 movw r24, r8
bcce: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
bcd2: 88 23 and r24, r24
bcd4: 09 f4 brne .+2 ; 0xbcd8 <main+0x79c>
bcd6: f1 c1 rjmp .+994 ; 0xc0ba <main+0xb7e>
{
static unsigned char second;
timer += 20; // 20 ms interval
bcd8: 24 e1 ldi r18, 0x14 ; 20
bcda: 82 0e add r8, r18
bcdc: 91 1c adc r9, r1
CalcNickServoValue();
bcde: 0e 94 d3 9c call 0x139a6 ; 0x139a6 <CalcNickServoValue>
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(EE_Parameter.Receiver == RECEIVER_HOTT) HoTT_Menu();
bce2: f6 01 movw r30, r12
bce4: 80 81 ld r24, Z
bce6: 86 30 cpi r24, 0x06 ; 6
bce8: 11 f4 brne .+4 ; 0xbcee <main+0x7b2>
bcea: a9 d7 rcall .+3922 ; 0xcc3e <HoTT_Menu>
bcec: 04 c0 rjmp .+8 ; 0xbcf6 <main+0x7ba>
else
if(EE_Parameter.Receiver == RECEIVER_JETI) BuildJeti_Vario();
bcee: 84 30 cpi r24, 0x04 ; 4
bcf0: 11 f4 brne .+4 ; 0xbcf6 <main+0x7ba>
bcf2: 0e 94 2c 84 call 0x10858 ; 0x10858 <BuildJeti_Vario>
// ++++++++++++++++++++++++++++
// + check the ACC-Z range
if(ACC_AltitudeControl && ((Aktuell_az < 300) || (DebugOut.Analog[7] < (128 * 4) && Aktuell_az > 850))) // DebugOut.Analog[7] = GasMischanteil
bcf6: 80 91 c2 03 lds r24, 0x03C2
bcfa: 88 23 and r24, r24
bcfc: 29 f1 breq .+74 ; 0xbd48 <main+0x80c>
bcfe: 80 91 06 05 lds r24, 0x0506
bd02: 90 91 07 05 lds r25, 0x0507
bd06: 8c 32 cpi r24, 0x2C ; 44
bd08: 91 40 sbci r25, 0x01 ; 1
bd0a: 74 f0 brlt .+28 ; 0xbd28 <main+0x7ec>
bd0c: 80 91 56 0c lds r24, 0x0C56
bd10: 90 91 57 0c lds r25, 0x0C57
bd14: 81 15 cp r24, r1
bd16: 92 40 sbci r25, 0x02 ; 2
bd18: cc f4 brge .+50 ; 0xbd4c <main+0x810>
bd1a: 80 91 06 05 lds r24, 0x0506
bd1e: 90 91 07 05 lds r25, 0x0507
bd22: 83 35 cpi r24, 0x53 ; 83
bd24: 93 40 sbci r25, 0x03 ; 3
bd26: a4 f0 brlt .+40 ; 0xbd50 <main+0x814>
{
if(++AccZ_ErrorCnt > 50)
bd28: 0f 5f subi r16, 0xFF ; 255
bd2a: 03 33 cpi r16, 0x33 ; 51
bd2c: 90 f0 brcs .+36 ; 0xbd52 <main+0x816>
{
if(MotorenEin) VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_TOP;
bd2e: 80 91 03 04 lds r24, 0x0403
bd32: 88 23 and r24, r24
bd34: 31 f0 breq .+12 ; 0xbd42 <main+0x806>
bd36: e2 e6 ldi r30, 0x62 ; 98
bd38: fa e0 ldi r31, 0x0A ; 10
bd3a: 80 81 ld r24, Z
bd3c: 80 62 ori r24, 0x20 ; 32
bd3e: 80 83 st Z, r24
bd40: 08 c0 rjmp .+16 ; 0xbd52 <main+0x816>
else CalibrationDone = 0;
bd42: 10 92 ef 03 sts 0x03EF, r1
bd46: 05 c0 rjmp .+10 ; 0xbd52 <main+0x816>
}
}
else AccZ_ErrorCnt = 0;
bd48: 00 e0 ldi r16, 0x00 ; 0
bd4a: 03 c0 rjmp .+6 ; 0xbd52 <main+0x816>
bd4c: 00 e0 ldi r16, 0x00 ; 0
bd4e: 01 c0 rjmp .+2 ; 0xbd52 <main+0x816>
bd50: 00 e0 ldi r16, 0x00 ; 0
// ++++++++++++++++++++++++++++
#endif
if(MissingMotor || Capacity.MinOfMaxPWM < 30)
bd52: 80 91 df 04 lds r24, 0x04DF
bd56: 81 11 cpse r24, r1
bd58: 05 c0 rjmp .+10 ; 0xbd64 <main+0x828>
bd5a: 80 91 1b 05 lds r24, 0x051B
bd5e: 8e 31 cpi r24, 0x1E ; 30
bd60: 30 f0 brcs .+12 ; 0xbd6e <main+0x832>
bd62: 0b c0 rjmp .+22 ; 0xbd7a <main+0x83e>
{
if(MissingMotor) VersionInfo.HardwareError[1] |= FC_ERROR1_BL_MISSING;
bd64: e3 e6 ldi r30, 0x63 ; 99
bd66: fa e0 ldi r31, 0x0A ; 10
bd68: 80 81 ld r24, Z
bd6a: 82 60 ori r24, 0x02 ; 2
bd6c: 80 83 st Z, r24
DebugOut.Status[1] |= 0x02; // BL-Error-Status
bd6e: e7 e4 ldi r30, 0x47 ; 71
bd70: fc e0 ldi r31, 0x0C ; 12
bd72: 80 81 ld r24, Z
bd74: 82 60 ori r24, 0x02 ; 2
bd76: 80 83 st Z, r24
bd78: 11 c0 rjmp .+34 ; 0xbd9c <main+0x860>
}
else
{
if(!beeptime)
bd7a: 80 91 cd 04 lds r24, 0x04CD
bd7e: 90 91 ce 04 lds r25, 0x04CE
bd82: 89 2b or r24, r25
bd84: 59 f4 brne .+22 ; 0xbd9c <main+0x860>
{
if(I2CTimeout > 6) DebugOut.Status[1] &= ~0x02; // BL-Error-Status
bd86: 80 91 b0 02 lds r24, 0x02B0
bd8a: 90 91 b1 02 lds r25, 0x02B1
bd8e: 07 97 sbiw r24, 0x07 ; 7
bd90: 28 f0 brcs .+10 ; 0xbd9c <main+0x860>
bd92: e7 e4 ldi r30, 0x47 ; 71
bd94: fc e0 ldi r31, 0x0C ; 12
bd96: 80 81 ld r24, Z
bd98: 8d 7f andi r24, 0xFD ; 253
bd9a: 80 83 st Z, r24
}
}
if(DisableRcOffBeeping) if(SenderOkay > 150) { DisableRcOffBeeping = 0; beeptime = 5000;};
bd9c: 80 91 66 04 lds r24, 0x0466
bda0: 88 23 and r24, r24
bda2: 61 f0 breq .+24 ; 0xbdbc <main+0x880>
bda4: 80 91 04 04 lds r24, 0x0404
bda8: 87 39 cpi r24, 0x97 ; 151
bdaa: 40 f0 brcs .+16 ; 0xbdbc <main+0x880>
bdac: 10 92 66 04 sts 0x0466, r1
bdb0: 88 e8 ldi r24, 0x88 ; 136
bdb2: 93 e1 ldi r25, 0x13 ; 19
bdb4: 90 93 ce 04 sts 0x04CE, r25
bdb8: 80 93 cd 04 sts 0x04CD, r24
if(PcZugriff) PcZugriff--;
bdbc: 80 91 b5 02 lds r24, 0x02B5
bdc0: 88 23 and r24, r24
bdc2: 21 f0 breq .+8 ; 0xbdcc <main+0x890>
bdc4: 81 50 subi r24, 0x01 ; 1
bdc6: 80 93 b5 02 sts 0x02B5, r24
bdca: 2d c0 rjmp .+90 ; 0xbe26 <main+0x8ea>
else
{
ExternControl.Config = 0;
bdcc: 10 92 89 0a sts 0x0A89, r1
ExternStickNick = 0;
bdd0: 10 92 d7 03 sts 0x03D7, r1
bdd4: 10 92 d6 03 sts 0x03D6, r1
ExternStickRoll = 0;
bdd8: 10 92 d5 03 sts 0x03D5, r1
bddc: 10 92 d4 03 sts 0x03D4, r1
ExternStickGier = 0;
bde0: 10 92 d3 03 sts 0x03D3, r1
bde4: 10 92 d2 03 sts 0x03D2, r1
if(!SenderOkay)
bde8: 80 91 04 04 lds r24, 0x0404
bdec: 81 11 cpse r24, r1
bdee: 1b c0 rjmp .+54 ; 0xbe26 <main+0x8ea>
{
if(BeepMuster == 0xffff && DisableRcOffBeeping != 2)
bdf0: 80 91 a9 02 lds r24, 0x02A9
bdf4: 90 91 aa 02 lds r25, 0x02AA
bdf8: 01 96 adiw r24, 0x01 ; 1
bdfa: a9 f4 brne .+42 ; 0xbe26 <main+0x8ea>
bdfc: 20 91 66 04 lds r18, 0x0466
be00: 22 30 cpi r18, 0x02 ; 2
be02: 89 f0 breq .+34 ; 0xbe26 <main+0x8ea>
{
beeptime = 15000;
be04: 88 e9 ldi r24, 0x98 ; 152
be06: 9a e3 ldi r25, 0x3A ; 58
be08: 90 93 ce 04 sts 0x04CE, r25
be0c: 80 93 cd 04 sts 0x04CD, r24
BeepMuster = 0x0c00;
be10: 80 e0 ldi r24, 0x00 ; 0
be12: 9c e0 ldi r25, 0x0C ; 12
be14: 90 93 aa 02 sts 0x02AA, r25
be18: 80 93 a9 02 sts 0x02A9, r24
if(DisableRcOffBeeping) DisableRcOffBeeping = 2;
be1c: 22 23 and r18, r18
be1e: 19 f0 breq .+6 ; 0xbe26 <main+0x8ea>
be20: 82 e0 ldi r24, 0x02 ; 2
be22: 80 93 66 04 sts 0x0466, r24
}
}
}
if(NaviDataOkay > 200)
be26: 80 91 a4 02 lds r24, 0x02A4
be2a: 89 3c cpi r24, 0xC9 ; 201
be2c: 70 f0 brcs .+28 ; 0xbe4a <main+0x90e>
{
NaviDataOkay--;
be2e: 81 50 subi r24, 0x01 ; 1
be30: 80 93 a4 02 sts 0x02A4, r24
VersionInfo.HardwareError[1] &= ~FC_ERROR1_SPI_RX;
be34: e3 e6 ldi r30, 0x63 ; 99
be36: fa e0 ldi r31, 0x0A ; 10
be38: 80 81 ld r24, Z
be3a: 8b 7f andi r24, 0xFB ; 251
be3c: 80 83 st Z, r24
VersionInfo.Flags |= FC_VERSION_FLAG_NC_PRESENT;
be3e: e6 e6 ldi r30, 0x66 ; 102
be40: fa e0 ldi r31, 0x0A ; 10
be42: 80 81 ld r24, Z
be44: 81 60 ori r24, 0x01 ; 1
be46: 80 83 st Z, r24
be48: 51 c0 rjmp .+162 ; 0xbeec <main+0x9b0>
}
else
{
if(NC_Version.Compatible)
be4a: e4 ee ldi r30, 0xE4 ; 228
be4c: f8 e0 ldi r31, 0x08 ; 8
be4e: 80 81 ld r24, Z
be50: 88 23 and r24, r24
be52: f1 f0 breq .+60 ; 0xbe90 <main+0x954>
{
VersionInfo.HardwareError[1] |= FC_ERROR1_SPI_RX;
be54: e3 e6 ldi r30, 0x63 ; 99
be56: fa e0 ldi r31, 0x0A ; 10
be58: 80 81 ld r24, Z
be5a: 84 60 ori r24, 0x04 ; 4
be5c: 80 83 st Z, r24
NC_ErrorCode = 9; // "ERR: no NC communication"
be5e: 89 e0 ldi r24, 0x09 ; 9
be60: 80 93 bb 04 sts 0x04BB, r24
if(BeepMuster == 0xffff && MotorenEin)
be64: 80 91 a9 02 lds r24, 0x02A9
be68: 90 91 aa 02 lds r25, 0x02AA
be6c: 01 96 adiw r24, 0x01 ; 1
be6e: 81 f4 brne .+32 ; 0xbe90 <main+0x954>
be70: 80 91 03 04 lds r24, 0x0403
be74: 88 23 and r24, r24
be76: 61 f0 breq .+24 ; 0xbe90 <main+0x954>
{
beeptime = 15000;
be78: 88 e9 ldi r24, 0x98 ; 152
be7a: 9a e3 ldi r25, 0x3A ; 58
be7c: 90 93 ce 04 sts 0x04CE, r25
be80: 80 93 cd 04 sts 0x04CD, r24
BeepMuster = 0xA800;
be84: 80 e0 ldi r24, 0x00 ; 0
be86: 98 ea ldi r25, 0xA8 ; 168
be88: 90 93 aa 02 sts 0x02AA, r25
be8c: 80 93 a9 02 sts 0x02A9, r24
}
}
GPS_Nick = 0;
be90: 10 92 6b 04 sts 0x046B, r1
be94: 10 92 6a 04 sts 0x046A, r1
GPS_Roll = 0;
be98: 10 92 69 04 sts 0x0469, r1
be9c: 10 92 68 04 sts 0x0468, r1
GPS_Aid_StickMultiplikator = 0;
bea0: 10 92 67 04 sts 0x0467, r1
GPSInfo.Flags = 0;
bea4: e7 ed ldi r30, 0xD7 ; 215
bea6: f8 e0 ldi r31, 0x08 ; 8
bea8: 10 82 st Z, r1
FromNaviCtrl_Value.Kalman_K = -1;
beaa: 8f ef ldi r24, 0xFF ; 255
beac: ec e4 ldi r30, 0x4C ; 76
beae: f9 e0 ldi r31, 0x09 ; 9
beb0: 80 83 st Z, r24
FromNaviCtrl.AccErrorN = 0;
beb2: e5 e1 ldi r30, 0x15 ; 21
beb4: f9 e0 ldi r31, 0x09 ; 9
beb6: 11 82 std Z+1, r1 ; 0x01
beb8: 10 82 st Z, r1
FromNaviCtrl.AccErrorR = 0;
beba: f1 01 movw r30, r2
bebc: 11 82 std Z+1, r1 ; 0x01
bebe: 10 82 st Z, r1
FromNaviCtrl.CompassValue = -1;
bec0: 8f ef ldi r24, 0xFF ; 255
bec2: 9f ef ldi r25, 0xFF ; 255
bec4: f2 01 movw r30, r4
bec6: 91 83 std Z+1, r25 ; 0x01
bec8: 80 83 st Z, r24
FromNC_AltitudeSpeed = 0;
beca: 10 92 f3 03 sts 0x03F3, r1
FromNC_AltitudeSetpoint = 0;
bece: 10 92 f4 03 sts 0x03F4, r1
bed2: 10 92 f5 03 sts 0x03F5, r1
bed6: 10 92 f6 03 sts 0x03F6, r1
beda: 10 92 f7 03 sts 0x03F7, r1
VersionInfo.Flags &= ~FC_VERSION_FLAG_NC_PRESENT;
bede: e6 e6 ldi r30, 0x66 ; 102
bee0: fa e0 ldi r31, 0x0A ; 10
bee2: 80 81 ld r24, Z
bee4: 8e 7f andi r24, 0xFE ; 254
bee6: 80 83 st Z, r24
NaviDataOkay = 0;
bee8: 10 92 a4 02 sts 0x02A4, r1
}
if(UBat <= BattLowVoltageWarning)
beec: 20 91 53 01 lds r18, 0x0153
bef0: 30 e0 ldi r19, 0x00 ; 0
bef2: 80 91 1a 01 lds r24, 0x011A
bef6: 90 91 1b 01 lds r25, 0x011B
befa: 28 17 cp r18, r24
befc: 39 07 cpc r19, r25
befe: dc f0 brlt .+54 ; 0xbf36 <main+0x9fa>
{
FC_StatusFlags |= FC_STATUS_LOWBAT;
bf00: 80 91 cb 03 lds r24, 0x03CB
bf04: 80 62 ori r24, 0x20 ; 32
bf06: 80 93 cb 03 sts 0x03CB, r24
if(BeepMuster == 0xffff && UBat > 10) // Do not beep, if the voltage reading is below 1V (Supplied via MKUSB)
bf0a: 80 91 a9 02 lds r24, 0x02A9
bf0e: 90 91 aa 02 lds r25, 0x02AA
bf12: 01 96 adiw r24, 0x01 ; 1
bf14: 81 f4 brne .+32 ; 0xbf36 <main+0x9fa>
bf16: 80 91 1a 01 lds r24, 0x011A
bf1a: 90 91 1b 01 lds r25, 0x011B
bf1e: 0b 97 sbiw r24, 0x0b ; 11
bf20: 54 f0 brlt .+20 ; 0xbf36 <main+0x9fa>
{
beeptime = 6000;
bf22: f0 92 ce 04 sts 0x04CE, r15
bf26: e0 92 cd 04 sts 0x04CD, r14
BeepMuster = 0x0300;
bf2a: 40 e0 ldi r20, 0x00 ; 0
bf2c: 53 e0 ldi r21, 0x03 ; 3
bf2e: 50 93 aa 02 sts 0x02AA, r21
bf32: 40 93 a9 02 sts 0x02A9, r20
}
}
// +++++++++++++++++++++++++++++++++
// Sekundentakt
if(++second == 49)
bf36: 80 91 5b 04 lds r24, 0x045B
bf3a: 8f 5f subi r24, 0xFF ; 255
bf3c: 80 93 5b 04 sts 0x045B, r24
bf40: 81 33 cpi r24, 0x31 ; 49
bf42: 09 f0 breq .+2 ; 0xbf46 <main+0xa0a>
bf44: 82 c0 rjmp .+260 ; 0xc04a <main+0xb0e>
{
second = 0;
bf46: 10 92 5b 04 sts 0x045B, r1
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(ShowSettingNameTime) ShowSettingNameTime--;
bf4a: 80 91 80 04 lds r24, 0x0480
bf4e: 88 23 and r24, r24
bf50: 19 f0 breq .+6 ; 0xbf58 <main+0xa1c>
bf52: 81 50 subi r24, 0x01 ; 1
bf54: 80 93 80 04 sts 0x0480, r24
#endif
if(FC_StatusFlags & FC_STATUS_FLY) FlugSekunden++;
bf58: 80 91 cb 03 lds r24, 0x03CB
bf5c: 81 ff sbrs r24, 1
bf5e: 0a c0 rjmp .+20 ; 0xbf74 <main+0xa38>
bf60: 80 91 5e 04 lds r24, 0x045E
bf64: 90 91 5f 04 lds r25, 0x045F
bf68: 01 96 adiw r24, 0x01 ; 1
bf6a: 90 93 5f 04 sts 0x045F, r25
bf6e: 80 93 5e 04 sts 0x045E, r24
bf72: 04 c0 rjmp .+8 ; 0xbf7c <main+0xa40>
else timer2 = 1450; // 0,5 Minuten aufrunden
bf74: 5a ea ldi r21, 0xAA ; 170
bf76: c5 2f mov r28, r21
bf78: 85 e0 ldi r24, 0x05 ; 5
bf7a: d8 2f mov r29, r24
if(modell_fliegt < 1024)
bf7c: 80 91 cc 03 lds r24, 0x03CC
bf80: 90 91 cd 03 lds r25, 0x03CD
bf84: 81 15 cp r24, r1
bf86: 94 40 sbci r25, 0x04 ; 4
bf88: 08 f0 brcs .+2 ; 0xbf8c <main+0xa50>
bf8a: 51 c0 rjmp .+162 ; 0xc02e <main+0xaf2>
{
if(StartLuftdruck < Luftdruck) StartLuftdruck += 5;
bf8c: 40 91 08 05 lds r20, 0x0508
bf90: 50 91 09 05 lds r21, 0x0509
bf94: 60 91 0a 05 lds r22, 0x050A
bf98: 70 91 0b 05 lds r23, 0x050B
bf9c: 80 91 12 01 lds r24, 0x0112
bfa0: 90 91 13 01 lds r25, 0x0113
bfa4: a0 91 14 01 lds r26, 0x0114
bfa8: b0 91 15 01 lds r27, 0x0115
bfac: 48 17 cp r20, r24
bfae: 59 07 cpc r21, r25
bfb0: 6a 07 cpc r22, r26
bfb2: 7b 07 cpc r23, r27
bfb4: a4 f4 brge .+40 ; 0xbfde <main+0xaa2>
bfb6: 80 91 08 05 lds r24, 0x0508
bfba: 90 91 09 05 lds r25, 0x0509
bfbe: a0 91 0a 05 lds r26, 0x050A
bfc2: b0 91 0b 05 lds r27, 0x050B
bfc6: 05 96 adiw r24, 0x05 ; 5
bfc8: a1 1d adc r26, r1
bfca: b1 1d adc r27, r1
bfcc: 80 93 08 05 sts 0x0508, r24
bfd0: 90 93 09 05 sts 0x0509, r25
bfd4: a0 93 0a 05 sts 0x050A, r26
bfd8: b0 93 0b 05 sts 0x050B, r27
bfdc: 28 c0 rjmp .+80 ; 0xc02e <main+0xaf2>
else
if(StartLuftdruck > Luftdruck) StartLuftdruck -= 5;
bfde: 40 91 08 05 lds r20, 0x0508
bfe2: 50 91 09 05 lds r21, 0x0509
bfe6: 60 91 0a 05 lds r22, 0x050A
bfea: 70 91 0b 05 lds r23, 0x050B
bfee: 80 91 12 01 lds r24, 0x0112
bff2: 90 91 13 01 lds r25, 0x0113
bff6: a0 91 14 01 lds r26, 0x0114
bffa: b0 91 15 01 lds r27, 0x0115
bffe: 84 17 cp r24, r20
c000: 95 07 cpc r25, r21
c002: a6 07 cpc r26, r22
c004: b7 07 cpc r27, r23
c006: 9c f4 brge .+38 ; 0xc02e <main+0xaf2>
c008: 80 91 08 05 lds r24, 0x0508
c00c: 90 91 09 05 lds r25, 0x0509
c010: a0 91 0a 05 lds r26, 0x050A
c014: b0 91 0b 05 lds r27, 0x050B
c018: 05 97 sbiw r24, 0x05 ; 5
c01a: a1 09 sbc r26, r1
c01c: b1 09 sbc r27, r1
c01e: 80 93 08 05 sts 0x0508, r24
c022: 90 93 09 05 sts 0x0509, r25
c026: a0 93 0a 05 sts 0x050A, r26
c02a: b0 93 0b 05 sts 0x050B, r27
}
if(UBat > BattLowVoltageWarning + 1) FC_StatusFlags &= ~FC_STATUS_LOWBAT;
c02e: 80 91 1a 01 lds r24, 0x011A
c032: 90 91 1b 01 lds r25, 0x011B
c036: 2f 5f subi r18, 0xFF ; 255
c038: 3f 4f sbci r19, 0xFF ; 255
c03a: 28 17 cp r18, r24
c03c: 39 07 cpc r19, r25
c03e: 2c f4 brge .+10 ; 0xc04a <main+0xb0e>
c040: 80 91 cb 03 lds r24, 0x03CB
c044: 8f 7d andi r24, 0xDF ; 223
c046: 80 93 cb 03 sts 0x03CB, r24
}
// +++++++++++++++++++++++++++++++++
if(++timer2 == 2930) // eine Minute
c04a: 21 96 adiw r28, 0x01 ; 1
c04c: c2 37 cpi r28, 0x72 ; 114
c04e: fb e0 ldi r31, 0x0B ; 11
c050: df 07 cpc r29, r31
c052: 99 f5 brne .+102 ; 0xc0ba <main+0xb7e>
{
timer2 = 0;
FlugMinuten++;
c054: 80 91 62 04 lds r24, 0x0462
c058: 90 91 63 04 lds r25, 0x0463
c05c: 01 96 adiw r24, 0x01 ; 1
c05e: 90 93 63 04 sts 0x0463, r25
c062: 80 93 62 04 sts 0x0462, r24
FlugMinutenGesamt++;
c066: 20 91 60 04 lds r18, 0x0460
c06a: 30 91 61 04 lds r19, 0x0461
c06e: 2f 5f subi r18, 0xFF ; 255
c070: 3f 4f sbci r19, 0xFF ; 255
c072: 30 93 61 04 sts 0x0461, r19
c076: 20 93 60 04 sts 0x0460, r18
SetParamByte(PID_FLIGHT_MINUTES,FlugMinuten / 256);
c07a: 69 2f mov r22, r25
c07c: 8e e0 ldi r24, 0x0E ; 14
c07e: 90 e0 ldi r25, 0x00 ; 0
c080: 0e 94 45 25 call 0x4a8a ; 0x4a8a <SetParamByte>
SetParamByte(PID_FLIGHT_MINUTES+1,FlugMinuten % 256);
c084: e2 e6 ldi r30, 0x62 ; 98
c086: f4 e0 ldi r31, 0x04 ; 4
c088: 60 81 ld r22, Z
c08a: 8f e0 ldi r24, 0x0F ; 15
c08c: 90 e0 ldi r25, 0x00 ; 0
c08e: 0e 94 45 25 call 0x4a8a ; 0x4a8a <SetParamByte>
SetParamByte(PID_FLIGHT_MINUTES_TOTAL,FlugMinutenGesamt / 256);
c092: 60 91 61 04 lds r22, 0x0461
c096: 8a e0 ldi r24, 0x0A ; 10
c098: 90 e0 ldi r25, 0x00 ; 0
c09a: 0e 94 45 25 call 0x4a8a ; 0x4a8a <SetParamByte>
SetParamByte(PID_FLIGHT_MINUTES_TOTAL+1,FlugMinutenGesamt % 256);
c09e: e0 e6 ldi r30, 0x60 ; 96
c0a0: f4 e0 ldi r31, 0x04 ; 4
c0a2: 60 81 ld r22, Z
c0a4: 8b e0 ldi r24, 0x0B ; 11
c0a6: 90 e0 ldi r25, 0x00 ; 0
c0a8: 0e 94 45 25 call 0x4a8a ; 0x4a8a <SetParamByte>
timer = SetDelay(20); // falls "timer += 20;" mal nicht geht
c0ac: 84 e1 ldi r24, 0x14 ; 20
c0ae: 90 e0 ldi r25, 0x00 ; 0
c0b0: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
c0b4: 4c 01 movw r8, r24
if(UBat > BattLowVoltageWarning + 1) FC_StatusFlags &= ~FC_STATUS_LOWBAT;
}
// +++++++++++++++++++++++++++++++++
if(++timer2 == 2930) // eine Minute
{
timer2 = 0;
c0b6: c0 e0 ldi r28, 0x00 ; 0
c0b8: d0 e0 ldi r29, 0x00 ; 0
SetParamByte(PID_FLIGHT_MINUTES_TOTAL,FlugMinutenGesamt / 256);
SetParamByte(PID_FLIGHT_MINUTES_TOTAL+1,FlugMinutenGesamt % 256);
timer = SetDelay(20); // falls "timer += 20;" mal nicht geht
}
}
LED_Update();
c0ba: 0e 94 8f 85 call 0x10b1e ; 0x10b1e <LED_Update>
Capacity_Update();
c0be: 0e 94 fd 21 call 0x43fa ; 0x43fa <Capacity_Update>
}
} //else DebugOut.Analog[18]++;
if(update_spi) update_spi--;
c0c2: 11 23 and r17, r17
c0c4: 19 f0 breq .+6 ; 0xc0cc <main+0xb90>
c0c6: 11 50 subi r17, 0x01 ; 1
} // 500Hz
if(update_spi == 0) // 41Hz
c0c8: 11 11 cpse r17, r1
c0ca: 0c c0 rjmp .+24 ; 0xc0e4 <main+0xba8>
{
if(SPI_StartTransmitPacket()) update_spi = 12;
c0cc: 0e 94 3a 9b call 0x13674 ; 0x13674 <SPI_StartTransmitPacket>
c0d0: 81 11 cpse r24, r1
c0d2: 2b cd rjmp .-1450 ; 0xbb2a <main+0x5ee>
else
if(BytegapSPI == 0) SPI_TransmitByte();
c0d4: 80 91 cc 04 lds r24, 0x04CC
c0d8: 81 11 cpse r24, r1
c0da: 29 cd rjmp .-1454 ; 0xbb2e <main+0x5f2>
c0dc: 0e 94 de 95 call 0x12bbc ; 0x12bbc <SPI_TransmitByte>
c0e0: 10 e0 ldi r17, 0x00 ; 0
c0e2: 26 cd rjmp .-1460 ; 0xbb30 <main+0x5f4>
}
else if(BytegapSPI == 0) SPI_TransmitByte();
c0e4: 80 91 cc 04 lds r24, 0x04CC
c0e8: 81 11 cpse r24, r1
c0ea: 22 cd rjmp .-1468 ; 0xbb30 <main+0x5f4>
c0ec: 0e 94 de 95 call 0x12bbc ; 0x12bbc <SPI_TransmitByte>
c0f0: 1f cd rjmp .-1474 ; 0xbb30 <main+0x5f4>
 
0000c0f2 <GetHottestBl>:
 
 
void GetHottestBl(void)
{
static unsigned char search = 0,tmp_max,tmp_min,who;
if(Motor[search].Temperature > tmp_max) { tmp_max = Motor[search].Temperature; who = search;}
c0f2: 80 91 7d 04 lds r24, 0x047D
c0f6: 9f e0 ldi r25, 0x0F ; 15
c0f8: 89 9f mul r24, r25
c0fa: f0 01 movw r30, r0
c0fc: 11 24 eor r1, r1
c0fe: e9 56 subi r30, 0x69 ; 105
c100: f6 4f sbci r31, 0xF6 ; 246
c102: 97 81 ldd r25, Z+7 ; 0x07
c104: 20 91 7c 04 lds r18, 0x047C
c108: 29 17 cp r18, r25
c10a: 28 f4 brcc .+10 ; 0xc116 <GetHottestBl+0x24>
c10c: 90 93 7c 04 sts 0x047C, r25
c110: 80 93 7b 04 sts 0x047B, r24
c114: 08 c0 rjmp .+16 ; 0xc126 <GetHottestBl+0x34>
else
if(Motor[search].Temperature) if(Motor[search].Temperature < tmp_min) tmp_min = Motor[search].Temperature;
c116: 99 23 and r25, r25
c118: 31 f0 breq .+12 ; 0xc126 <GetHottestBl+0x34>
c11a: 20 91 7a 04 lds r18, 0x047A
c11e: 92 17 cp r25, r18
c120: 10 f4 brcc .+4 ; 0xc126 <GetHottestBl+0x34>
c122: 90 93 7a 04 sts 0x047A, r25
if(++search >= MAX_MOTORS)
c126: 8f 5f subi r24, 0xFF ; 255
c128: 8c 30 cpi r24, 0x0C ; 12
c12a: 18 f4 brcc .+6 ; 0xc132 <GetHottestBl+0x40>
c12c: 80 93 7d 04 sts 0x047D, r24
c130: 08 95 ret
{
search = 0;
c132: 10 92 7d 04 sts 0x047D, r1
if(tmp_min != 255) MinBlTemperture = tmp_min; else MinBlTemperture = 0;
c136: 80 91 7a 04 lds r24, 0x047A
c13a: 8f 3f cpi r24, 0xFF ; 255
c13c: 19 f0 breq .+6 ; 0xc144 <GetHottestBl+0x52>
c13e: 80 93 83 04 sts 0x0483, r24
c142: 02 c0 rjmp .+4 ; 0xc148 <GetHottestBl+0x56>
c144: 10 92 83 04 sts 0x0483, r1
MaxBlTemperture = tmp_max;
c148: 80 91 7c 04 lds r24, 0x047C
c14c: 80 93 84 04 sts 0x0484, r24
HottestBl = who;
c150: 80 91 7b 04 lds r24, 0x047B
c154: 80 93 82 04 sts 0x0482, r24
tmp_min = 255;
c158: 8f ef ldi r24, 0xFF ; 255
c15a: 80 93 7a 04 sts 0x047A, r24
tmp_max = 0;
c15e: 10 92 7c 04 sts 0x047C, r1
who = 0;
c162: 10 92 7b 04 sts 0x047B, r1
c166: 08 95 ret
 
0000c168 <Hott_ClearLine>:
}
 
//---------------------------------------------------------------
void Hott_ClearLine(unsigned char line)
{
HoTT_printfxy(0,line," ");
c168: 95 e1 ldi r25, 0x15 ; 21
c16a: 89 9f mul r24, r25
c16c: 80 2d mov r24, r0
c16e: 11 24 eor r1, r1
c170: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
c174: 80 e1 ldi r24, 0x10 ; 16
c176: 9b e0 ldi r25, 0x0B ; 11
c178: 9f 93 push r25
c17a: 8f 93 push r24
c17c: 8b e0 ldi r24, 0x0B ; 11
c17e: 95 e1 ldi r25, 0x15 ; 21
c180: 9f 93 push r25
c182: 8f 93 push r24
c184: e0 91 78 06 lds r30, 0x0678
c188: f0 91 79 06 lds r31, 0x0679
c18c: 09 95 icall
c18e: 0f 90 pop r0
c190: 0f 90 pop r0
c192: 0f 90 pop r0
c194: 0f 90 pop r0
c196: 08 95 ret
 
0000c198 <HoTT_Waring>:
}
//---------------------------------------------------------------
 
 
unsigned char HoTT_Waring(void)
{
c198: cf 93 push r28
unsigned char status = 0;
static char old_status = 0;
static int repeat;
//if(Parameter_UserParam1) return(Parameter_UserParam1);
ToNC_SpeakHoTT = SpeakHoTT;
c19a: c0 91 57 01 lds r28, 0x0157
c19e: c0 93 81 04 sts 0x0481, r28
if(FC_StatusFlags & FC_STATUS_LOWBAT)
c1a2: 80 91 cb 03 lds r24, 0x03CB
c1a6: 85 ff sbrs r24, 5
c1a8: 14 c0 rjmp .+40 ; 0xc1d2 <HoTT_Waring+0x3a>
{
if(LowVoltageLandingActive && (EE_Parameter.Receiver == RECEIVER_HOTT)) status = SPEAK_LANDING;
c1aa: 80 91 c1 03 lds r24, 0x03C1
c1ae: 88 23 and r24, r24
c1b0: 31 f0 breq .+12 ; 0xc1be <HoTT_Waring+0x26>
c1b2: 80 91 65 05 lds r24, 0x0565
c1b6: 86 30 cpi r24, 0x06 ; 6
c1b8: 21 f0 breq .+8 ; 0xc1c2 <HoTT_Waring+0x2a>
else status = VOICE_MINIMALE_EINGANSSPANNUNG; // Jeti hat kein wort: "LANDEN"
c1ba: e0 e1 ldi r30, 0x10 ; 16
c1bc: 03 c0 rjmp .+6 ; 0xc1c4 <HoTT_Waring+0x2c>
c1be: e0 e1 ldi r30, 0x10 ; 16
c1c0: 01 c0 rjmp .+2 ; 0xc1c4 <HoTT_Waring+0x2c>
static int repeat;
//if(Parameter_UserParam1) return(Parameter_UserParam1);
ToNC_SpeakHoTT = SpeakHoTT;
if(FC_StatusFlags & FC_STATUS_LOWBAT)
{
if(LowVoltageLandingActive && (EE_Parameter.Receiver == RECEIVER_HOTT)) status = SPEAK_LANDING;
c1c2: ee e0 ldi r30, 0x0E ; 14
else status = VOICE_MINIMALE_EINGANSSPANNUNG; // Jeti hat kein wort: "LANDEN"
if(SpeakHoTT && old_status == VOICE_MINIMALE_EINGANSSPANNUNG) status = SpeakHoTT; // das soll auch noch durch kommen
c1c4: cc 23 and r28, r28
c1c6: 01 f1 breq .+64 ; 0xc208 <HoTT_Waring+0x70>
c1c8: 80 91 79 04 lds r24, 0x0479
c1cc: 80 31 cpi r24, 0x10 ; 16
c1ce: e1 f4 brne .+56 ; 0xc208 <HoTT_Waring+0x70>
c1d0: 25 c0 rjmp .+74 ; 0xc21c <HoTT_Waring+0x84>
}
else
if(NC_ErrorCode && NC_ErrorCode < MAX_ERR_NUMBER) // Fehlercodes
c1d2: 80 91 bb 04 lds r24, 0x04BB
c1d6: 9f ef ldi r25, 0xFF ; 255
c1d8: 98 0f add r25, r24
c1da: 92 32 cpi r25, 0x22 ; 34
c1dc: b8 f4 brcc .+46 ; 0xc20c <HoTT_Waring+0x74>
{
if(MotorenEin || !pgm_read_byte(&HOTT_ERROR[NC_ErrorCode][1])) status = pgm_read_byte(&HOTT_ERROR[NC_ErrorCode][0]);
c1de: 90 91 03 04 lds r25, 0x0403
c1e2: 91 11 cpse r25, r1
c1e4: 0a c0 rjmp .+20 ; 0xc1fa <HoTT_Waring+0x62>
c1e6: 28 2f mov r18, r24
c1e8: 30 e0 ldi r19, 0x00 ; 0
c1ea: f9 01 movw r30, r18
c1ec: ee 0f add r30, r30
c1ee: ff 1f adc r31, r31
c1f0: e9 5d subi r30, 0xD9 ; 217
c1f2: f4 4f sbci r31, 0xF4 ; 244
c1f4: e4 91 lpm r30, Z
c1f6: e1 11 cpse r30, r1
c1f8: 09 c0 rjmp .+18 ; 0xc20c <HoTT_Waring+0x74>
c1fa: e8 2f mov r30, r24
c1fc: f0 e0 ldi r31, 0x00 ; 0
c1fe: ee 0f add r30, r30
c200: ff 1f adc r31, r31
c202: ea 5d subi r30, 0xDA ; 218
c204: f4 4f sbci r31, 0xF4 ; 244
c206: e4 91 lpm r30, Z
}
if(!status) // Sprachansagen
c208: e1 11 cpse r30, r1
c20a: 09 c0 rjmp .+18 ; 0xc21e <HoTT_Waring+0x86>
{
// if(!(GetParamByte(PID_SPEAK_HOTT_CFG) & 0x01)) SpeakHoTT = 0; // is the voice wanted?
if(!(EE_Parameter.GlobalConfig3 & CFG3_SPEAK_ALL)) SpeakHoTT = 0; // is the voice wanted?
c20c: 80 91 b9 05 lds r24, 0x05B9
c210: 86 fd sbrc r24, 6
c212: 08 c0 rjmp .+16 ; 0xc224 <HoTT_Waring+0x8c>
c214: 10 92 57 01 sts 0x0157, r1
c218: c0 e0 ldi r28, 0x00 ; 0
c21a: 04 c0 rjmp .+8 ; 0xc224 <HoTT_Waring+0x8c>
ToNC_SpeakHoTT = SpeakHoTT;
if(FC_StatusFlags & FC_STATUS_LOWBAT)
{
if(LowVoltageLandingActive && (EE_Parameter.Receiver == RECEIVER_HOTT)) status = SPEAK_LANDING;
else status = VOICE_MINIMALE_EINGANSSPANNUNG; // Jeti hat kein wort: "LANDEN"
if(SpeakHoTT && old_status == VOICE_MINIMALE_EINGANSSPANNUNG) status = SpeakHoTT; // das soll auch noch durch kommen
c21c: ec 2f mov r30, r28
{
// if(!(GetParamByte(PID_SPEAK_HOTT_CFG) & 0x01)) SpeakHoTT = 0; // is the voice wanted?
if(!(EE_Parameter.GlobalConfig3 & CFG3_SPEAK_ALL)) SpeakHoTT = 0; // is the voice wanted?
else status = SpeakHoTT;
}
else ToNC_SpeakHoTT = status;
c21e: e0 93 81 04 sts 0x0481, r30
c222: ce 2f mov r28, r30
 
if(old_status == status) // Gleichen Fehler nur alle 4 sek bringen
c224: 80 91 79 04 lds r24, 0x0479
c228: 8c 13 cpse r24, r28
c22a: 11 c0 rjmp .+34 ; 0xc24e <HoTT_Waring+0xb6>
{
if(!CheckDelay(repeat)) return(0);
c22c: 80 91 77 04 lds r24, 0x0477
c230: 90 91 78 04 lds r25, 0x0478
c234: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
c238: 88 23 and r24, r24
c23a: e9 f0 breq .+58 ; 0xc276 <HoTT_Waring+0xde>
repeat = SetDelay(4000);
c23c: 80 ea ldi r24, 0xA0 ; 160
c23e: 9f e0 ldi r25, 0x0F ; 15
c240: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
c244: 90 93 78 04 sts 0x0478, r25
c248: 80 93 77 04 sts 0x0477, r24
c24c: 08 c0 rjmp .+16 ; 0xc25e <HoTT_Waring+0xc6>
}
else repeat = SetDelay(2000);
c24e: 80 ed ldi r24, 0xD0 ; 208
c250: 97 e0 ldi r25, 0x07 ; 7
c252: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
c256: 90 93 78 04 sts 0x0478, r25
c25a: 80 93 77 04 sts 0x0477, r24
 
if(status)
c25e: cc 23 and r28, r28
c260: 31 f0 breq .+12 ; 0xc26e <HoTT_Waring+0xd6>
{
if(status == SpeakHoTT) SpeakHoTT = 0;
c262: 80 91 57 01 lds r24, 0x0157
c266: c8 13 cpse r28, r24
c268: 02 c0 rjmp .+4 ; 0xc26e <HoTT_Waring+0xd6>
c26a: 10 92 57 01 sts 0x0157, r1
}
old_status = status;
c26e: c0 93 79 04 sts 0x0479, r28
// DebugOut.Analog[16] = status;
return(status);
c272: 8c 2f mov r24, r28
c274: 01 c0 rjmp .+2 ; 0xc278 <HoTT_Waring+0xe0>
}
else ToNC_SpeakHoTT = status;
 
if(old_status == status) // Gleichen Fehler nur alle 4 sek bringen
{
if(!CheckDelay(repeat)) return(0);
c276: 80 e0 ldi r24, 0x00 ; 0
if(status == SpeakHoTT) SpeakHoTT = 0;
}
old_status = status;
// DebugOut.Analog[16] = status;
return(status);
}
c278: cf 91 pop r28
c27a: 08 95 ret
 
0000c27c <NC_Fills_HoTT_Telemety>:
//---------------------------------------------------------------
void NC_Fills_HoTT_Telemety(void)
{
unsigned char *ptr = NULL;
unsigned char max = 0,i,z;
switch(FromNaviCtrl.Param.Byte[11])
c27c: 80 91 2a 09 lds r24, 0x092A
c280: 89 38 cpi r24, 0x89 ; 137
c282: 31 f1 breq .+76 ; 0xc2d0 <NC_Fills_HoTT_Telemety+0x54>
c284: 38 f4 brcc .+14 ; 0xc294 <NC_Fills_HoTT_Telemety+0x18>
c286: 82 30 cpi r24, 0x02 ; 2
c288: d9 f0 breq .+54 ; 0xc2c0 <NC_Fills_HoTT_Telemety+0x44>
c28a: 83 30 cpi r24, 0x03 ; 3
c28c: e9 f0 breq .+58 ; 0xc2c8 <NC_Fills_HoTT_Telemety+0x4c>
c28e: 81 30 cpi r24, 0x01 ; 1
c290: f1 f5 brne .+124 ; 0xc30e <NC_Fills_HoTT_Telemety+0x92>
c292: 12 c0 rjmp .+36 ; 0xc2b8 <NC_Fills_HoTT_Telemety+0x3c>
c294: 8d 38 cpi r24, 0x8D ; 141
c296: 61 f0 breq .+24 ; 0xc2b0 <NC_Fills_HoTT_Telemety+0x34>
c298: 8e 38 cpi r24, 0x8E ; 142
c29a: 31 f0 breq .+12 ; 0xc2a8 <NC_Fills_HoTT_Telemety+0x2c>
c29c: 8a 38 cpi r24, 0x8A ; 138
c29e: b9 f5 brne .+110 ; 0xc30e <NC_Fills_HoTT_Telemety+0x92>
ptr = (unsigned char *) &VarioPacket;
max = sizeof(VarioPacket);
break;
case HOTT_GPS_PACKET_ID:
ptr = (unsigned char *) &GPSPacket;
max = sizeof(GPSPacket);
c2a0: 5c e2 ldi r21, 0x2C ; 44
case HOTT_VARIO_PACKET_ID:
ptr = (unsigned char *) &VarioPacket;
max = sizeof(VarioPacket);
break;
case HOTT_GPS_PACKET_ID:
ptr = (unsigned char *) &GPSPacket;
c2a2: 84 eb ldi r24, 0xB4 ; 180
c2a4: 97 e0 ldi r25, 0x07 ; 7
max = sizeof(GPSPacket);
break;
c2a6: 17 c0 rjmp .+46 ; 0xc2d6 <NC_Fills_HoTT_Telemety+0x5a>
case HOTT_ELECTRIC_AIR_PACKET_ID:
ptr = (unsigned char *) &ElectricAirPacket;
max = sizeof(ElectricAirPacket);
c2a8: 5c e2 ldi r21, 0x2C ; 44
case HOTT_GPS_PACKET_ID:
ptr = (unsigned char *) &GPSPacket;
max = sizeof(GPSPacket);
break;
case HOTT_ELECTRIC_AIR_PACKET_ID:
ptr = (unsigned char *) &ElectricAirPacket;
c2aa: 8a e7 ldi r24, 0x7A ; 122
c2ac: 96 e0 ldi r25, 0x06 ; 6
max = sizeof(ElectricAirPacket);
break;
c2ae: 13 c0 rjmp .+38 ; 0xc2d6 <NC_Fills_HoTT_Telemety+0x5a>
case HOTT_GENERAL_PACKET_ID:
ptr = (unsigned char *) &HoTTGeneral;
max = sizeof(HoTTGeneral);
c2b0: 5c e2 ldi r21, 0x2C ; 44
case HOTT_ELECTRIC_AIR_PACKET_ID:
ptr = (unsigned char *) &ElectricAirPacket;
max = sizeof(ElectricAirPacket);
break;
case HOTT_GENERAL_PACKET_ID:
ptr = (unsigned char *) &HoTTGeneral;
c2b2: 86 ea ldi r24, 0xA6 ; 166
c2b4: 96 e0 ldi r25, 0x06 ; 6
max = sizeof(HoTTGeneral);
break;
c2b6: 0f c0 rjmp .+30 ; 0xc2d6 <NC_Fills_HoTT_Telemety+0x5a>
case JETI_GPS_PACKET_ID1:
ptr = (unsigned char *) &JetiExData[14].Value;
max = sizeof(JetiExData[14].Value);
c2b8: 54 e0 ldi r21, 0x04 ; 4
case HOTT_GENERAL_PACKET_ID:
ptr = (unsigned char *) &HoTTGeneral;
max = sizeof(HoTTGeneral);
break;
case JETI_GPS_PACKET_ID1:
ptr = (unsigned char *) &JetiExData[14].Value;
c2ba: 86 e7 ldi r24, 0x76 ; 118
c2bc: 92 e0 ldi r25, 0x02 ; 2
max = sizeof(JetiExData[14].Value);
break;
c2be: 0b c0 rjmp .+22 ; 0xc2d6 <NC_Fills_HoTT_Telemety+0x5a>
case JETI_GPS_PACKET_ID2:
ptr = (unsigned char *) &JetiExData[15].Value;
max = sizeof(JetiExData[15].Value);
c2c0: 54 e0 ldi r21, 0x04 ; 4
case JETI_GPS_PACKET_ID1:
ptr = (unsigned char *) &JetiExData[14].Value;
max = sizeof(JetiExData[14].Value);
break;
case JETI_GPS_PACKET_ID2:
ptr = (unsigned char *) &JetiExData[15].Value;
c2c2: 89 e8 ldi r24, 0x89 ; 137
c2c4: 92 e0 ldi r25, 0x02 ; 2
max = sizeof(JetiExData[15].Value);
break;
c2c6: 07 c0 rjmp .+14 ; 0xc2d6 <NC_Fills_HoTT_Telemety+0x5a>
case HOTT_WPL_NAME:
ptr = (unsigned char *) WPL_Name;
max = sizeof(WPL_Name)-1;
c2c8: 59 e0 ldi r21, 0x09 ; 9
case JETI_GPS_PACKET_ID2:
ptr = (unsigned char *) &JetiExData[15].Value;
max = sizeof(JetiExData[15].Value);
break;
case HOTT_WPL_NAME:
ptr = (unsigned char *) WPL_Name;
c2ca: 82 ed ldi r24, 0xD2 ; 210
c2cc: 96 e0 ldi r25, 0x06 ; 6
max = sizeof(WPL_Name)-1;
break;
c2ce: 03 c0 rjmp .+6 ; 0xc2d6 <NC_Fills_HoTT_Telemety+0x5a>
unsigned char max = 0,i,z;
switch(FromNaviCtrl.Param.Byte[11])
{
case HOTT_VARIO_PACKET_ID:
ptr = (unsigned char *) &VarioPacket;
max = sizeof(VarioPacket);
c2d0: 5c e2 ldi r21, 0x2C ; 44
unsigned char *ptr = NULL;
unsigned char max = 0,i,z;
switch(FromNaviCtrl.Param.Byte[11])
{
case HOTT_VARIO_PACKET_ID:
ptr = (unsigned char *) &VarioPacket;
c2d2: 8c ed ldi r24, 0xDC ; 220
c2d4: 96 e0 ldi r25, 0x06 ; 6
ptr = (unsigned char *) WPL_Name;
max = sizeof(WPL_Name)-1;
break;
 
}
z = FromNaviCtrl.Param.Byte[0]; // Data allocation
c2d6: 20 91 1f 09 lds r18, 0x091F
 
for(i=0; i < FromNaviCtrl.Param.Byte[1]; i++)
c2da: 30 91 20 09 lds r19, 0x0920
c2de: 33 23 and r19, r19
c2e0: b1 f0 breq .+44 ; 0xc30e <NC_Fills_HoTT_Telemety+0x92>
{
if(z >= max) break;
c2e2: 25 17 cp r18, r21
c2e4: a0 f4 brcc .+40 ; 0xc30e <NC_Fills_HoTT_Telemety+0x92>
break;
 
}
z = FromNaviCtrl.Param.Byte[0]; // Data allocation
 
for(i=0; i < FromNaviCtrl.Param.Byte[1]; i++)
c2e6: 30 e0 ldi r19, 0x00 ; 0
c2e8: a0 e2 ldi r26, 0x20 ; 32
c2ea: b9 e0 ldi r27, 0x09 ; 9
c2ec: 02 c0 rjmp .+4 ; 0xc2f2 <NC_Fills_HoTT_Telemety+0x76>
{
if(z >= max) break;
c2ee: 25 17 cp r18, r21
c2f0: 70 f4 brcc .+28 ; 0xc30e <NC_Fills_HoTT_Telemety+0x92>
ptr[z] = FromNaviCtrl.Param.Byte[2+i];
c2f2: e3 2f mov r30, r19
c2f4: f0 e0 ldi r31, 0x00 ; 0
c2f6: e4 5f subi r30, 0xF4 ; 244
c2f8: f6 4f sbci r31, 0xF6 ; 246
c2fa: 45 89 ldd r20, Z+21 ; 0x15
c2fc: fc 01 movw r30, r24
c2fe: e2 0f add r30, r18
c300: f1 1d adc r31, r1
c302: 40 83 st Z, r20
z++;
c304: 2f 5f subi r18, 0xFF ; 255
break;
 
}
z = FromNaviCtrl.Param.Byte[0]; // Data allocation
 
for(i=0; i < FromNaviCtrl.Param.Byte[1]; i++)
c306: 3f 5f subi r19, 0xFF ; 255
c308: 4c 91 ld r20, X
c30a: 34 17 cp r19, r20
c30c: 80 f3 brcs .-32 ; 0xc2ee <NC_Fills_HoTT_Telemety+0x72>
c30e: 08 95 ret
 
0000c310 <BuildHoTT_Vario>:
}
 
unsigned int BuildHoTT_Vario(void)
{
unsigned int tmp = VARIO_ZERO;
if(VarioCharacter == '+' || VarioCharacter == '-')
c310: 80 91 20 01 lds r24, 0x0120
c314: 8b 32 cpi r24, 0x2B ; 43
c316: 11 f0 breq .+4 ; 0xc31c <BuildHoTT_Vario+0xc>
c318: 8d 32 cpi r24, 0x2D ; 45
c31a: c9 f4 brne .+50 ; 0xc34e <BuildHoTT_Vario+0x3e>
{
tmp = VARIO_ZERO + (AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung) / 3;
c31c: 40 91 50 05 lds r20, 0x0550
c320: 20 91 f8 03 lds r18, 0x03F8
c324: 30 91 f9 03 lds r19, 0x03F9
c328: 42 9f mul r20, r18
c32a: c0 01 movw r24, r0
c32c: 43 9f mul r20, r19
c32e: 90 0d add r25, r0
c330: 11 24 eor r1, r1
c332: 63 e0 ldi r22, 0x03 ; 3
c334: 70 e0 ldi r23, 0x00 ; 0
c336: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
c33a: cb 01 movw r24, r22
c33c: 80 5d subi r24, 0xD0 ; 208
c33e: 9a 48 sbci r25, 0x8A ; 138
if(tmp < VARIO_ZERO && tmp > VARIO_ZERO - 50) tmp = VARIO_ZERO - 50; // weil es sonst erst bei < 0,5m/sek piept
c340: 6f 5c subi r22, 0xCF ; 207
c342: 7f 4f sbci r23, 0xFF ; 255
c344: 61 33 cpi r22, 0x31 ; 49
c346: 71 05 cpc r23, r1
c348: 08 f4 brcc .+2 ; 0xc34c <BuildHoTT_Vario+0x3c>
c34a: 40 c0 rjmp .+128 ; 0xc3cc <BuildHoTT_Vario+0xbc>
c34c: 08 95 ret
}
else
if((VarioCharacter == ' ') && (FC_StatusFlags & FC_STATUS_FLY))
c34e: 80 32 cpi r24, 0x20 ; 32
c350: f9 f4 brne .+62 ; 0xc390 <BuildHoTT_Vario+0x80>
c352: 80 91 cb 03 lds r24, 0x03CB
c356: 81 ff sbrs r24, 1
c358: 3c c0 rjmp .+120 ; 0xc3d2 <BuildHoTT_Vario+0xc2>
{
tmp = VARIO_ZERO + HoTTVarioMeter;
c35a: 80 91 7e 04 lds r24, 0x047E
c35e: 90 91 7f 04 lds r25, 0x047F
c362: 80 5d subi r24, 0xD0 ; 208
c364: 9a 48 sbci r25, 0x8A ; 138
if(tmp > VARIO_ZERO)
c366: 81 33 cpi r24, 0x31 ; 49
c368: 25 e7 ldi r18, 0x75 ; 117
c36a: 92 07 cpc r25, r18
c36c: 30 f0 brcs .+12 ; 0xc37a <BuildHoTT_Vario+0x6a>
{
if(tmp < VARIO_ZERO + 100) tmp = VARIO_ZERO;
c36e: 84 39 cpi r24, 0x94 ; 148
c370: 35 e7 ldi r19, 0x75 ; 117
c372: 93 07 cpc r25, r19
c374: 88 f1 brcs .+98 ; 0xc3d8 <BuildHoTT_Vario+0xc8>
else tmp -= 100;
c376: 84 56 subi r24, 0x64 ; 100
c378: 91 09 sbc r25, r1
}
if(tmp < VARIO_ZERO)
c37a: 80 33 cpi r24, 0x30 ; 48
c37c: 25 e7 ldi r18, 0x75 ; 117
c37e: 92 07 cpc r25, r18
c380: 98 f5 brcc .+102 ; 0xc3e8 <BuildHoTT_Vario+0xd8>
{
if(tmp > VARIO_ZERO - 100) tmp = VARIO_ZERO;
c382: 8d 3c cpi r24, 0xCD ; 205
c384: 34 e7 ldi r19, 0x74 ; 116
c386: 93 07 cpc r25, r19
c388: 50 f5 brcc .+84 ; 0xc3de <BuildHoTT_Vario+0xce>
else tmp += 100;
c38a: 8c 59 subi r24, 0x9C ; 156
c38c: 9f 4f sbci r25, 0xFF ; 255
c38e: 08 95 ret
}
}
else
if(VarioCharacter == '^') tmp = VARIO_ZERO + FromNC_AltitudeSpeed * 10;
c390: 8e 35 cpi r24, 0x5E ; 94
c392: 89 f4 brne .+34 ; 0xc3b6 <BuildHoTT_Vario+0xa6>
c394: 20 91 f3 03 lds r18, 0x03F3
c398: 30 e0 ldi r19, 0x00 ; 0
c39a: c9 01 movw r24, r18
c39c: 88 0f add r24, r24
c39e: 99 1f adc r25, r25
c3a0: 22 0f add r18, r18
c3a2: 33 1f adc r19, r19
c3a4: 22 0f add r18, r18
c3a6: 33 1f adc r19, r19
c3a8: 22 0f add r18, r18
c3aa: 33 1f adc r19, r19
c3ac: 82 0f add r24, r18
c3ae: 93 1f adc r25, r19
c3b0: 80 5d subi r24, 0xD0 ; 208
c3b2: 9a 48 sbci r25, 0x8A ; 138
c3b4: 08 95 ret
else
if(VarioCharacter == 'v') tmp = VARIO_ZERO - FromNC_AltitudeSpeed * 10;
c3b6: 86 37 cpi r24, 0x76 ; 118
c3b8: a9 f4 brne .+42 ; 0xc3e4 <BuildHoTT_Vario+0xd4>
c3ba: 20 91 f3 03 lds r18, 0x03F3
c3be: 36 ef ldi r19, 0xF6 ; 246
c3c0: 32 03 mulsu r19, r18
c3c2: c0 01 movw r24, r0
c3c4: 11 24 eor r1, r1
c3c6: 80 5d subi r24, 0xD0 ; 208
c3c8: 9a 48 sbci r25, 0x8A ; 138
c3ca: 08 95 ret
{
unsigned int tmp = VARIO_ZERO;
if(VarioCharacter == '+' || VarioCharacter == '-')
{
tmp = VARIO_ZERO + (AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung) / 3;
if(tmp < VARIO_ZERO && tmp > VARIO_ZERO - 50) tmp = VARIO_ZERO - 50; // weil es sonst erst bei < 0,5m/sek piept
c3cc: 8e ef ldi r24, 0xFE ; 254
c3ce: 94 e7 ldi r25, 0x74 ; 116
c3d0: 08 95 ret
}
}
 
unsigned int BuildHoTT_Vario(void)
{
unsigned int tmp = VARIO_ZERO;
c3d2: 80 e3 ldi r24, 0x30 ; 48
c3d4: 95 e7 ldi r25, 0x75 ; 117
c3d6: 08 95 ret
if((VarioCharacter == ' ') && (FC_StatusFlags & FC_STATUS_FLY))
{
tmp = VARIO_ZERO + HoTTVarioMeter;
if(tmp > VARIO_ZERO)
{
if(tmp < VARIO_ZERO + 100) tmp = VARIO_ZERO;
c3d8: 80 e3 ldi r24, 0x30 ; 48
c3da: 95 e7 ldi r25, 0x75 ; 117
c3dc: 08 95 ret
else tmp -= 100;
}
if(tmp < VARIO_ZERO)
{
if(tmp > VARIO_ZERO - 100) tmp = VARIO_ZERO;
c3de: 80 e3 ldi r24, 0x30 ; 48
c3e0: 95 e7 ldi r25, 0x75 ; 117
c3e2: 08 95 ret
}
}
 
unsigned int BuildHoTT_Vario(void)
{
unsigned int tmp = VARIO_ZERO;
c3e4: 80 e3 ldi r24, 0x30 ; 48
c3e6: 95 e7 ldi r25, 0x75 ; 117
else
if(VarioCharacter == '^') tmp = VARIO_ZERO + FromNC_AltitudeSpeed * 10;
else
if(VarioCharacter == 'v') tmp = VARIO_ZERO - FromNC_AltitudeSpeed * 10;
return(tmp);
}
c3e8: 08 95 ret
 
0000c3ea <HoTT_Telemety>:
 
//---------------------------------------------------------------
unsigned char HoTT_Telemety(unsigned char packet_request)
{
c3ea: cf 93 push r28
unsigned char i = 0;
//Debug("rqst: %02X",packet_request);
 
switch(packet_request)
c3ec: 8a 38 cpi r24, 0x8A ; 138
c3ee: 09 f4 brne .+2 ; 0xc3f2 <HoTT_Telemety+0x8>
c3f0: 36 c2 rjmp .+1132 ; 0xc85e <HoTT_Telemety+0x474>
c3f2: 18 f4 brcc .+6 ; 0xc3fa <HoTT_Telemety+0x10>
c3f4: 89 38 cpi r24, 0x89 ; 137
c3f6: 41 f0 breq .+16 ; 0xc408 <HoTT_Telemety+0x1e>
c3f8: 17 c4 rjmp .+2094 ; 0xcc28 <HoTT_Telemety+0x83e>
c3fa: 8d 38 cpi r24, 0x8D ; 141
c3fc: 09 f4 brne .+2 ; 0xc400 <HoTT_Telemety+0x16>
c3fe: 42 c3 rjmp .+1668 ; 0xca84 <HoTT_Telemety+0x69a>
c400: 8e 38 cpi r24, 0x8E ; 142
c402: 09 f4 brne .+2 ; 0xc406 <HoTT_Telemety+0x1c>
c404: 85 c2 rjmp .+1290 ; 0xc910 <HoTT_Telemety+0x526>
c406: 10 c4 rjmp .+2080 ; 0xcc28 <HoTT_Telemety+0x83e>
{
case HOTT_VARIO_PACKET_ID:
GPSPacket.WarnBeep = HoTT_Waring(); // Achtung: das ist richtig hier, damit der Varioton schon vorher abgestellt wird
c408: c7 de rcall .-626 ; 0xc198 <HoTT_Waring>
c40a: c8 2f mov r28, r24
c40c: 80 93 b6 07 sts 0x07B6, r24
VarioPacket.Altitude = HoehenWert/100 + 500;
c410: 60 91 fe 03 lds r22, 0x03FE
c414: 70 91 ff 03 lds r23, 0x03FF
c418: 80 91 00 04 lds r24, 0x0400
c41c: 90 91 01 04 lds r25, 0x0401
c420: 24 e6 ldi r18, 0x64 ; 100
c422: 30 e0 ldi r19, 0x00 ; 0
c424: 40 e0 ldi r20, 0x00 ; 0
c426: 50 e0 ldi r21, 0x00 ; 0
c428: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
c42c: 2c 50 subi r18, 0x0C ; 12
c42e: 3e 4f sbci r19, 0xFE ; 254
c430: 30 93 e2 06 sts 0x06E2, r19
c434: 20 93 e1 06 sts 0x06E1, r18
if(!GPSPacket.WarnBeep) VarioPacket.m_sec = BuildHoTT_Vario(); else VarioPacket.m_sec = VARIO_ZERO;
c438: c1 11 cpse r28, r1
c43a: 06 c0 rjmp .+12 ; 0xc448 <HoTT_Telemety+0x5e>
c43c: 69 df rcall .-302 ; 0xc310 <BuildHoTT_Vario>
c43e: 90 93 e8 06 sts 0x06E8, r25
c442: 80 93 e7 06 sts 0x06E7, r24
c446: 06 c0 rjmp .+12 ; 0xc454 <HoTT_Telemety+0x6a>
c448: 80 e3 ldi r24, 0x30 ; 48
c44a: 95 e7 ldi r25, 0x75 ; 117
c44c: 90 93 e8 06 sts 0x06E8, r25
c450: 80 93 e7 06 sts 0x06E7, r24
VarioPacket.m_3sec = VarioPacket.m_sec;
c454: 80 91 e7 06 lds r24, 0x06E7
c458: 90 91 e8 06 lds r25, 0x06E8
c45c: 90 93 ea 06 sts 0x06EA, r25
c460: 80 93 e9 06 sts 0x06E9, r24
VarioPacket.m_10sec = VarioPacket.m_sec;
c464: 90 93 ec 06 sts 0x06EC, r25
c468: 80 93 eb 06 sts 0x06EB, r24
if (VarioPacket.Altitude < VarioPacket.MinAltitude) VarioPacket.MinAltitude = VarioPacket.Altitude;
c46c: 80 91 e1 06 lds r24, 0x06E1
c470: 90 91 e2 06 lds r25, 0x06E2
c474: 20 91 e5 06 lds r18, 0x06E5
c478: 30 91 e6 06 lds r19, 0x06E6
c47c: 82 17 cp r24, r18
c47e: 93 07 cpc r25, r19
c480: 24 f4 brge .+8 ; 0xc48a <HoTT_Telemety+0xa0>
c482: 90 93 e6 06 sts 0x06E6, r25
c486: 80 93 e5 06 sts 0x06E5, r24
if (VarioPacket.Altitude > VarioPacket.MaxAltitude) VarioPacket.MaxAltitude = VarioPacket.Altitude;
c48a: 20 91 e3 06 lds r18, 0x06E3
c48e: 30 91 e4 06 lds r19, 0x06E4
c492: 28 17 cp r18, r24
c494: 39 07 cpc r19, r25
c496: 24 f4 brge .+8 ; 0xc4a0 <HoTT_Telemety+0xb6>
c498: 90 93 e4 06 sts 0x06E4, r25
c49c: 80 93 e3 06 sts 0x06E3, r24
VarioPacket.WarnBeep = 0;//HoTT_Waring();
c4a0: 10 92 de 06 sts 0x06DE, r1
HoTT_DataPointer = (unsigned char *) &VarioPacket;
c4a4: 8c ed ldi r24, 0xDC ; 220
c4a6: 96 e0 ldi r25, 0x06 ; 6
c4a8: 90 93 f1 02 sts 0x02F1, r25
c4ac: 80 93 f0 02 sts 0x02F0, r24
VarioPacket.FreeCharacters[0] = VarioCharacter;
c4b0: 80 91 20 01 lds r24, 0x0120
c4b4: 80 93 02 07 sts 0x0702, r24
if(FC_StatusFlags2 & FC_STATUS2_CAREFREE) VarioPacket.FreeCharacters[1] = 'C'; else VarioPacket.FreeCharacters[1] = ' ';
c4b8: 80 91 ca 03 lds r24, 0x03CA
c4bc: 80 ff sbrs r24, 0
c4be: 04 c0 rjmp .+8 ; 0xc4c8 <HoTT_Telemety+0xde>
c4c0: 83 e4 ldi r24, 0x43 ; 67
c4c2: 80 93 03 07 sts 0x0703, r24
c4c6: 03 c0 rjmp .+6 ; 0xc4ce <HoTT_Telemety+0xe4>
c4c8: 80 e2 ldi r24, 0x20 ; 32
c4ca: 80 93 03 07 sts 0x0703, r24
// VarioPacket.FreeCharacters[2] = ' ';
if(NC_ErrorCode)
c4ce: e0 91 bb 04 lds r30, 0x04BB
c4d2: ee 23 and r30, r30
c4d4: 81 f1 breq .+96 ; 0xc536 <HoTT_Telemety+0x14c>
{
VarioPacket.Text[0] = NC_ErrorCode/10 + '0';
c4d6: 8d ec ldi r24, 0xCD ; 205
c4d8: e8 9f mul r30, r24
c4da: 81 2d mov r24, r1
c4dc: 11 24 eor r1, r1
c4de: 86 95 lsr r24
c4e0: 86 95 lsr r24
c4e2: 86 95 lsr r24
c4e4: 90 e3 ldi r25, 0x30 ; 48
c4e6: 98 0f add r25, r24
c4e8: 90 93 ed 06 sts 0x06ED, r25
VarioPacket.Text[1] = NC_ErrorCode%10 + '0';
c4ec: 88 0f add r24, r24
c4ee: 98 2f mov r25, r24
c4f0: 99 0f add r25, r25
c4f2: 99 0f add r25, r25
c4f4: 89 0f add r24, r25
c4f6: 2e 2f mov r18, r30
c4f8: 28 1b sub r18, r24
c4fa: 82 2f mov r24, r18
c4fc: 80 5d subi r24, 0xD0 ; 208
c4fe: 80 93 ee 06 sts 0x06EE, r24
VarioPacket.Text[2] = ':';
c502: 8a e3 ldi r24, 0x3A ; 58
c504: 80 93 ef 06 sts 0x06EF, r24
c508: 41 e1 ldi r20, 0x11 ; 17
c50a: e4 9f mul r30, r20
c50c: f0 01 movw r30, r0
c50e: 11 24 eor r1, r1
c510: e4 59 subi r30, 0x94 ; 148
c512: f4 4f sbci r31, 0xF4 ; 244
c514: a0 ef ldi r26, 0xF0 ; 240
c516: b6 e0 ldi r27, 0x06 ; 6
c518: 80 e0 ldi r24, 0x00 ; 0
c51a: 97 e0 ldi r25, 0x07 ; 7
for(i=0; i<16;i++) VarioPacket.Text[i+3] = pgm_read_byte(&NC_ERROR_TEXT[NC_ErrorCode][i]);
c51c: 24 91 lpm r18, Z
c51e: 2d 93 st X+, r18
c520: 31 96 adiw r30, 0x01 ; 1
c522: a8 17 cp r26, r24
c524: b9 07 cpc r27, r25
c526: d1 f7 brne .-12 ; 0xc51c <HoTT_Telemety+0x132>
VarioPacket.Text[19] = ' ';
c528: 80 e2 ldi r24, 0x20 ; 32
c52a: 80 93 00 07 sts 0x0700, r24
VarioPacket.Text[20] = ' ';
c52e: 80 93 01 07 sts 0x0701, r24
{
if(FC_StatusFlags3 & FC_STATUS3_BOAT) for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&BOAT_MODE[i]); // no Error
else for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&MIKROKOPTER[i]); // no Error
if(FC_StatusFlags3 & FC_STATUS3_REDUNDANCE) VarioPacket.Text[0] = 'R';
}
return(sizeof(VarioPacket));
c532: 8c e2 ldi r24, 0x2C ; 44
c534: 82 c3 rjmp .+1796 ; 0xcc3a <HoTT_Telemety+0x850>
for(i=0; i<16;i++) VarioPacket.Text[i+3] = pgm_read_byte(&NC_ERROR_TEXT[NC_ErrorCode][i]);
VarioPacket.Text[19] = ' ';
VarioPacket.Text[20] = ' ';
}
else
if(LowVoltageLandingActive) for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&LANDING[i]); // no Error
c536: 80 91 c1 03 lds r24, 0x03C1
c53a: 88 23 and r24, r24
c53c: 69 f0 breq .+26 ; 0xc558 <HoTT_Telemety+0x16e>
c53e: e2 ef ldi r30, 0xF2 ; 242
c540: fd e0 ldi r31, 0x0D ; 13
c542: ad ee ldi r26, 0xED ; 237
c544: b6 e0 ldi r27, 0x06 ; 6
c546: 87 e0 ldi r24, 0x07 ; 7
c548: 9e e0 ldi r25, 0x0E ; 14
c54a: 24 91 lpm r18, Z
c54c: 2d 93 st X+, r18
c54e: 31 96 adiw r30, 0x01 ; 1
c550: e8 17 cp r30, r24
c552: f9 07 cpc r31, r25
c554: d1 f7 brne .-12 ; 0xc54a <HoTT_Telemety+0x160>
c556: 6a c3 rjmp .+1748 ; 0xcc2c <HoTT_Telemety+0x842>
else
if(FC_StatusFlags & FC_STATUS_LOWBAT) for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&UNDERVOLTAGE[i]); // no Error
c558: 80 91 cb 03 lds r24, 0x03CB
c55c: 85 ff sbrs r24, 5
c55e: 0d c0 rjmp .+26 ; 0xc57a <HoTT_Telemety+0x190>
c560: e8 e0 ldi r30, 0x08 ; 8
c562: fe e0 ldi r31, 0x0E ; 14
c564: ad ee ldi r26, 0xED ; 237
c566: b6 e0 ldi r27, 0x06 ; 6
c568: 8d e1 ldi r24, 0x1D ; 29
c56a: 9e e0 ldi r25, 0x0E ; 14
c56c: 24 91 lpm r18, Z
c56e: 2d 93 st X+, r18
c570: 31 96 adiw r30, 0x01 ; 1
c572: e8 17 cp r30, r24
c574: f9 07 cpc r31, r25
c576: d1 f7 brne .-12 ; 0xc56c <HoTT_Telemety+0x182>
c578: 5b c3 rjmp .+1718 ; 0xcc30 <HoTT_Telemety+0x846>
else
if(ShowSettingNameTime) // no Error
c57a: 80 91 80 04 lds r24, 0x0480
c57e: 88 23 and r24, r24
c580: b9 f1 breq .+110 ; 0xc5f0 <HoTT_Telemety+0x206>
c582: ef eb ldi r30, 0xBF ; 191
c584: fd e0 ldi r31, 0x0D ; 13
c586: ad ee ldi r26, 0xED ; 237
c588: b6 e0 ldi r27, 0x06 ; 6
c58a: 86 ec ldi r24, 0xC6 ; 198
c58c: 9d e0 ldi r25, 0x0D ; 13
{
for(i=0; i<sizeof(SETTING);i++) VarioPacket.Text[i] = pgm_read_byte(&SETTING[i]);
c58e: 24 91 lpm r18, Z
c590: 2d 93 st X+, r18
c592: 31 96 adiw r30, 0x01 ; 1
c594: e8 17 cp r30, r24
c596: f9 07 cpc r31, r25
c598: d1 f7 brne .-12 ; 0xc58e <HoTT_Telemety+0x1a4>
VarioPacket.Text[4] = '0' + ActiveParamSet;
c59a: 80 91 52 01 lds r24, 0x0152
c59e: 80 5d subi r24, 0xD0 ; 208
c5a0: 80 93 f1 06 sts 0x06F1, r24
c5a4: ea eb ldi r30, 0xBA ; 186
c5a6: f5 e0 ldi r31, 0x05 ; 5
c5a8: a4 ef ldi r26, 0xF4 ; 244
c5aa: b6 e0 ldi r27, 0x06 ; 6
c5ac: 86 ec ldi r24, 0xC6 ; 198
c5ae: 95 e0 ldi r25, 0x05 ; 5
for(i=0; i<sizeof(EE_Parameter.Name);i++) VarioPacket.Text[i+7] = EE_Parameter.Name[i]; // no Error
c5b0: 21 91 ld r18, Z+
c5b2: 2d 93 st X+, r18
c5b4: e8 17 cp r30, r24
c5b6: f9 07 cpc r31, r25
c5b8: d9 f7 brne .-10 ; 0xc5b0 <HoTT_Telemety+0x1c6>
if(FC_StatusFlags3 & FC_STATUS3_BOAT)
c5ba: 80 91 c9 03 lds r24, 0x03C9
c5be: 81 ff sbrs r24, 1
c5c0: 0e c0 rjmp .+28 ; 0xc5de <HoTT_Telemety+0x1f4>
{
VarioPacket.Text[17] = 'B';
c5c2: 82 e4 ldi r24, 0x42 ; 66
c5c4: 80 93 fe 06 sts 0x06FE, r24
VarioPacket.Text[18] = 'O';
c5c8: 8f e4 ldi r24, 0x4F ; 79
c5ca: 80 93 ff 06 sts 0x06FF, r24
VarioPacket.Text[19] = 'A';
c5ce: 81 e4 ldi r24, 0x41 ; 65
c5d0: 80 93 00 07 sts 0x0700, r24
VarioPacket.Text[20] = 'T';
c5d4: 84 e5 ldi r24, 0x54 ; 84
c5d6: 80 93 01 07 sts 0x0701, r24
{
if(FC_StatusFlags3 & FC_STATUS3_BOAT) for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&BOAT_MODE[i]); // no Error
else for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&MIKROKOPTER[i]); // no Error
if(FC_StatusFlags3 & FC_STATUS3_REDUNDANCE) VarioPacket.Text[0] = 'R';
}
return(sizeof(VarioPacket));
c5da: 8c e2 ldi r24, 0x2C ; 44
c5dc: 2e c3 rjmp .+1628 ; 0xcc3a <HoTT_Telemety+0x850>
VarioPacket.Text[19] = 'A';
VarioPacket.Text[20] = 'T';
}
else
{
VarioPacket.Text[18] = ' ';
c5de: 80 e2 ldi r24, 0x20 ; 32
c5e0: 80 93 ff 06 sts 0x06FF, r24
VarioPacket.Text[19] = ' ';
c5e4: 80 93 00 07 sts 0x0700, r24
VarioPacket.Text[20] = ' ';
c5e8: 80 93 01 07 sts 0x0701, r24
{
if(FC_StatusFlags3 & FC_STATUS3_BOAT) for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&BOAT_MODE[i]); // no Error
else for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&MIKROKOPTER[i]); // no Error
if(FC_StatusFlags3 & FC_STATUS3_REDUNDANCE) VarioPacket.Text[0] = 'R';
}
return(sizeof(VarioPacket));
c5ec: 8c e2 ldi r24, 0x2C ; 44
c5ee: 25 c3 rjmp .+1610 ; 0xcc3a <HoTT_Telemety+0x850>
VarioPacket.Text[19] = ' ';
VarioPacket.Text[20] = ' ';
}
}
else
if(NaviData_WaypointNumber)
c5f0: 80 91 8c 04 lds r24, 0x048C
c5f4: 88 23 and r24, r24
c5f6: 09 f4 brne .+2 ; 0xc5fa <HoTT_Telemety+0x210>
c5f8: da c0 rjmp .+436 ; 0xc7ae <HoTT_Telemety+0x3c4>
{
unsigned int tmp_int;
unsigned char tmp;
VarioPacket.Text[0] = 'W'; VarioPacket.Text[1] = 'P';
c5fa: 97 e5 ldi r25, 0x57 ; 87
c5fc: 90 93 ed 06 sts 0x06ED, r25
c600: 90 e5 ldi r25, 0x50 ; 80
c602: 90 93 ee 06 sts 0x06EE, r25
VarioPacket.Text[2] = ' ';
c606: 90 e2 ldi r25, 0x20 ; 32
c608: 90 93 ef 06 sts 0x06EF, r25
VarioPacket.Text[3] = '0'+(NaviData_WaypointIndex) / 10;
c60c: 30 91 8d 04 lds r19, 0x048D
c610: 2d ec ldi r18, 0xCD ; 205
c612: 32 9f mul r19, r18
c614: 41 2d mov r20, r1
c616: 11 24 eor r1, r1
c618: 46 95 lsr r20
c61a: 46 95 lsr r20
c61c: 46 95 lsr r20
c61e: 50 e3 ldi r21, 0x30 ; 48
c620: 54 0f add r21, r20
c622: 50 93 f0 06 sts 0x06F0, r21
VarioPacket.Text[4] = '0'+(NaviData_WaypointIndex) % 10;
c626: 44 0f add r20, r20
c628: 54 2f mov r21, r20
c62a: 55 0f add r21, r21
c62c: 55 0f add r21, r21
c62e: 45 0f add r20, r21
c630: 34 1b sub r19, r20
c632: 30 5d subi r19, 0xD0 ; 208
c634: 30 93 f1 06 sts 0x06F1, r19
VarioPacket.Text[5] = '/';
c638: 3f e2 ldi r19, 0x2F ; 47
c63a: 30 93 f2 06 sts 0x06F2, r19
VarioPacket.Text[6] = '0'+(NaviData_WaypointNumber) / 10;
c63e: 82 9f mul r24, r18
c640: 21 2d mov r18, r1
c642: 11 24 eor r1, r1
c644: 26 95 lsr r18
c646: 26 95 lsr r18
c648: 26 95 lsr r18
c64a: 30 e3 ldi r19, 0x30 ; 48
c64c: 32 0f add r19, r18
c64e: 30 93 f3 06 sts 0x06F3, r19
VarioPacket.Text[7] = '0'+(NaviData_WaypointNumber) % 10;
c652: 22 0f add r18, r18
c654: 32 2f mov r19, r18
c656: 33 0f add r19, r19
c658: 33 0f add r19, r19
c65a: 23 0f add r18, r19
c65c: 82 1b sub r24, r18
c65e: 80 5d subi r24, 0xD0 ; 208
c660: 80 93 f4 06 sts 0x06F4, r24
VarioPacket.Text[8] = ' ';
c664: 90 93 f5 06 sts 0x06F5, r25
tmp_int = NaviData_TargetDistance;
c668: 40 91 85 04 lds r20, 0x0485
c66c: 50 91 86 04 lds r21, 0x0486
if(tmp_int > 1000) { VarioPacket.Text[9] = '0'+(tmp_int) / 1000; tmp_int %= 1000;}
c670: 49 3e cpi r20, 0xE9 ; 233
c672: 83 e0 ldi r24, 0x03 ; 3
c674: 58 07 cpc r21, r24
c676: 08 f1 brcs .+66 ; 0xc6ba <HoTT_Telemety+0x2d0>
c678: 9a 01 movw r18, r20
c67a: 36 95 lsr r19
c67c: 27 95 ror r18
c67e: 36 95 lsr r19
c680: 27 95 ror r18
c682: 36 95 lsr r19
c684: 27 95 ror r18
c686: a5 ec ldi r26, 0xC5 ; 197
c688: b0 e2 ldi r27, 0x20 ; 32
c68a: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
c68e: 92 95 swap r25
c690: 82 95 swap r24
c692: 8f 70 andi r24, 0x0F ; 15
c694: 89 27 eor r24, r25
c696: 9f 70 andi r25, 0x0F ; 15
c698: 89 27 eor r24, r25
c69a: 20 e3 ldi r18, 0x30 ; 48
c69c: 28 0f add r18, r24
c69e: 20 93 f6 06 sts 0x06F6, r18
c6a2: 68 ee ldi r22, 0xE8 ; 232
c6a4: 73 e0 ldi r23, 0x03 ; 3
c6a6: 86 9f mul r24, r22
c6a8: 90 01 movw r18, r0
c6aa: 87 9f mul r24, r23
c6ac: 30 0d add r19, r0
c6ae: 96 9f mul r25, r22
c6b0: 30 0d add r19, r0
c6b2: 11 24 eor r1, r1
c6b4: 42 1b sub r20, r18
c6b6: 53 0b sbc r21, r19
c6b8: 03 c0 rjmp .+6 ; 0xc6c0 <HoTT_Telemety+0x2d6>
else VarioPacket.Text[9] = ' ';
c6ba: 80 e2 ldi r24, 0x20 ; 32
c6bc: 80 93 f6 06 sts 0x06F6, r24
if(tmp_int > 100) { VarioPacket.Text[10] = '0'+(tmp_int) / 100; tmp_int %= 100;}
c6c0: 45 36 cpi r20, 0x65 ; 101
c6c2: 51 05 cpc r21, r1
c6c4: c0 f0 brcs .+48 ; 0xc6f6 <HoTT_Telemety+0x30c>
c6c6: 9a 01 movw r18, r20
c6c8: 36 95 lsr r19
c6ca: 27 95 ror r18
c6cc: 36 95 lsr r19
c6ce: 27 95 ror r18
c6d0: ab e7 ldi r26, 0x7B ; 123
c6d2: b4 e1 ldi r27, 0x14 ; 20
c6d4: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
c6d8: 96 95 lsr r25
c6da: 87 95 ror r24
c6dc: 20 e3 ldi r18, 0x30 ; 48
c6de: 28 0f add r18, r24
c6e0: 20 93 f7 06 sts 0x06F7, r18
c6e4: 64 e6 ldi r22, 0x64 ; 100
c6e6: 68 9f mul r22, r24
c6e8: 90 01 movw r18, r0
c6ea: 69 9f mul r22, r25
c6ec: 30 0d add r19, r0
c6ee: 11 24 eor r1, r1
c6f0: 42 1b sub r20, r18
c6f2: 53 0b sbc r21, r19
c6f4: 03 c0 rjmp .+6 ; 0xc6fc <HoTT_Telemety+0x312>
else VarioPacket.Text[10] = ' ';
c6f6: 80 e2 ldi r24, 0x20 ; 32
c6f8: 80 93 f7 06 sts 0x06F7, r24
VarioPacket.Text[11] = '0'+(tmp_int) / 10;
c6fc: 9a 01 movw r18, r20
c6fe: ad ec ldi r26, 0xCD ; 205
c700: bc ec ldi r27, 0xCC ; 204
c702: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
c706: 96 95 lsr r25
c708: 87 95 ror r24
c70a: 96 95 lsr r25
c70c: 87 95 ror r24
c70e: 96 95 lsr r25
c710: 87 95 ror r24
c712: 20 e3 ldi r18, 0x30 ; 48
c714: 28 0f add r18, r24
c716: 20 93 f8 06 sts 0x06F8, r18
VarioPacket.Text[12] = '0'+(tmp_int) % 10;
c71a: 9c 01 movw r18, r24
c71c: 22 0f add r18, r18
c71e: 33 1f adc r19, r19
c720: 88 0f add r24, r24
c722: 99 1f adc r25, r25
c724: 88 0f add r24, r24
c726: 99 1f adc r25, r25
c728: 88 0f add r24, r24
c72a: 99 1f adc r25, r25
c72c: 82 0f add r24, r18
c72e: 93 1f adc r25, r19
c730: 48 1b sub r20, r24
c732: 59 0b sbc r21, r25
c734: 40 5d subi r20, 0xD0 ; 208
c736: 40 93 f9 06 sts 0x06F9, r20
VarioPacket.Text[13] = 'm';
c73a: 8d e6 ldi r24, 0x6D ; 109
c73c: 80 93 fa 06 sts 0x06FA, r24
VarioPacket.Text[14] = ' ';
c740: 80 e2 ldi r24, 0x20 ; 32
c742: 80 93 fb 06 sts 0x06FB, r24
tmp = NaviData_TargetHoldTime;
c746: 80 91 8b 04 lds r24, 0x048B
if(tmp > 100) { VarioPacket.Text[15] = '0'+(tmp) / 100; tmp %= 100;} else VarioPacket.Text[15] = ' ';
c74a: 85 36 cpi r24, 0x65 ; 101
c74c: 78 f0 brcs .+30 ; 0xc76c <HoTT_Telemety+0x382>
c74e: 99 e2 ldi r25, 0x29 ; 41
c750: 89 9f mul r24, r25
c752: 91 2d mov r25, r1
c754: 11 24 eor r1, r1
c756: 92 95 swap r25
c758: 9f 70 andi r25, 0x0F ; 15
c75a: 20 e3 ldi r18, 0x30 ; 48
c75c: 29 0f add r18, r25
c75e: 20 93 fc 06 sts 0x06FC, r18
c762: 24 e6 ldi r18, 0x64 ; 100
c764: 92 9f mul r25, r18
c766: 80 19 sub r24, r0
c768: 11 24 eor r1, r1
c76a: 03 c0 rjmp .+6 ; 0xc772 <HoTT_Telemety+0x388>
c76c: 90 e2 ldi r25, 0x20 ; 32
c76e: 90 93 fc 06 sts 0x06FC, r25
VarioPacket.Text[16] = '0'+(tmp) / 10;
c772: 9d ec ldi r25, 0xCD ; 205
c774: 89 9f mul r24, r25
c776: 91 2d mov r25, r1
c778: 11 24 eor r1, r1
c77a: 96 95 lsr r25
c77c: 96 95 lsr r25
c77e: 96 95 lsr r25
c780: 20 e3 ldi r18, 0x30 ; 48
c782: 29 0f add r18, r25
c784: 20 93 fd 06 sts 0x06FD, r18
VarioPacket.Text[17] = '0'+(tmp) % 10;
c788: 99 0f add r25, r25
c78a: 29 2f mov r18, r25
c78c: 22 0f add r18, r18
c78e: 22 0f add r18, r18
c790: 92 0f add r25, r18
c792: 89 1b sub r24, r25
c794: 80 5d subi r24, 0xD0 ; 208
c796: 80 93 fe 06 sts 0x06FE, r24
VarioPacket.Text[18] = 's';
c79a: 83 e7 ldi r24, 0x73 ; 115
c79c: 80 93 ff 06 sts 0x06FF, r24
VarioPacket.Text[19] = ' ';
c7a0: 80 e2 ldi r24, 0x20 ; 32
c7a2: 80 93 00 07 sts 0x0700, r24
VarioPacket.Text[20] = ' ';
c7a6: 80 93 01 07 sts 0x0701, r24
{
if(FC_StatusFlags3 & FC_STATUS3_BOAT) for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&BOAT_MODE[i]); // no Error
else for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&MIKROKOPTER[i]); // no Error
if(FC_StatusFlags3 & FC_STATUS3_REDUNDANCE) VarioPacket.Text[0] = 'R';
}
return(sizeof(VarioPacket));
c7aa: 8c e2 ldi r24, 0x2C ; 44
c7ac: 46 c2 rjmp .+1164 ; 0xcc3a <HoTT_Telemety+0x850>
VarioPacket.Text[18] = 's';
VarioPacket.Text[19] = ' ';
VarioPacket.Text[20] = ' ';
}
else
if(NC_To_FC_Flags & NC_TO_FC_SIMULATION_ACTIVE)
c7ae: 80 91 b7 04 lds r24, 0x04B7
c7b2: 84 ff sbrs r24, 4
c7b4: 0d c0 rjmp .+26 ; 0xc7d0 <HoTT_Telemety+0x3e6>
c7b6: ec ed ldi r30, 0xDC ; 220
c7b8: fd e0 ldi r31, 0x0D ; 13
c7ba: ad ee ldi r26, 0xED ; 237
c7bc: b6 e0 ldi r27, 0x06 ; 6
c7be: 81 ef ldi r24, 0xF1 ; 241
c7c0: 9d e0 ldi r25, 0x0D ; 13
{
for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&SIMULATION[i]);
c7c2: 24 91 lpm r18, Z
c7c4: 2d 93 st X+, r18
c7c6: 31 96 adiw r30, 0x01 ; 1
c7c8: e8 17 cp r30, r24
c7ca: f9 07 cpc r31, r25
c7cc: d1 f7 brne .-12 ; 0xc7c2 <HoTT_Telemety+0x3d8>
c7ce: 32 c2 rjmp .+1124 ; 0xcc34 <HoTT_Telemety+0x84a>
}
else
if(!CalibrationDone)
c7d0: 80 91 ef 03 lds r24, 0x03EF
c7d4: 81 11 cpse r24, r1
c7d6: 1d c0 rjmp .+58 ; 0xc812 <HoTT_Telemety+0x428>
c7d8: e0 e2 ldi r30, 0x20 ; 32
c7da: fe e0 ldi r31, 0x0E ; 14
c7dc: ad ee ldi r26, 0xED ; 237
c7de: b6 e0 ldi r27, 0x06 ; 6
c7e0: 81 e3 ldi r24, 0x31 ; 49
c7e2: 9e e0 ldi r25, 0x0E ; 14
{
for(i=0; i<17;i++) VarioPacket.Text[i] = pgm_read_byte(&MIKROKOPTER[i+2]); // no Error and not calibrated
c7e4: 24 91 lpm r18, Z
c7e6: 2d 93 st X+, r18
c7e8: 31 96 adiw r30, 0x01 ; 1
c7ea: e8 17 cp r30, r24
c7ec: f9 07 cpc r31, r25
c7ee: d1 f7 brne .-12 ; 0xc7e4 <HoTT_Telemety+0x3fa>
VarioPacket.Text[16] = '0'+VERSION_MAJOR;
c7f0: 82 e3 ldi r24, 0x32 ; 50
c7f2: 80 93 fd 06 sts 0x06FD, r24
VarioPacket.Text[17] = '.';
c7f6: 8e e2 ldi r24, 0x2E ; 46
c7f8: 80 93 fe 06 sts 0x06FE, r24
VarioPacket.Text[18] = '0'+VERSION_MINOR/10;
c7fc: 80 e3 ldi r24, 0x30 ; 48
c7fe: 80 93 ff 06 sts 0x06FF, r24
VarioPacket.Text[19] = '0'+VERSION_MINOR%10;
c802: 88 e3 ldi r24, 0x38 ; 56
c804: 80 93 00 07 sts 0x0700, r24
VarioPacket.Text[20] = 'a'+VERSION_PATCH;
c808: 81 e6 ldi r24, 0x61 ; 97
c80a: 80 93 01 07 sts 0x0701, r24
{
if(FC_StatusFlags3 & FC_STATUS3_BOAT) for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&BOAT_MODE[i]); // no Error
else for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&MIKROKOPTER[i]); // no Error
if(FC_StatusFlags3 & FC_STATUS3_REDUNDANCE) VarioPacket.Text[0] = 'R';
}
return(sizeof(VarioPacket));
c80e: 8c e2 ldi r24, 0x2C ; 44
c810: 14 c2 rjmp .+1064 ; 0xcc3a <HoTT_Telemety+0x850>
VarioPacket.Text[19] = '0'+VERSION_MINOR%10;
VarioPacket.Text[20] = 'a'+VERSION_PATCH;
}
else
{
if(FC_StatusFlags3 & FC_STATUS3_BOAT) for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&BOAT_MODE[i]); // no Error
c812: 80 91 c9 03 lds r24, 0x03C9
c816: 81 ff sbrs r24, 1
c818: 0d c0 rjmp .+26 ; 0xc834 <HoTT_Telemety+0x44a>
c81a: e6 ec ldi r30, 0xC6 ; 198
c81c: fd e0 ldi r31, 0x0D ; 13
c81e: ad ee ldi r26, 0xED ; 237
c820: b6 e0 ldi r27, 0x06 ; 6
c822: 8b ed ldi r24, 0xDB ; 219
c824: 9d e0 ldi r25, 0x0D ; 13
c826: 24 91 lpm r18, Z
c828: 2d 93 st X+, r18
c82a: 31 96 adiw r30, 0x01 ; 1
c82c: e8 17 cp r30, r24
c82e: f9 07 cpc r31, r25
c830: d1 f7 brne .-12 ; 0xc826 <HoTT_Telemety+0x43c>
c832: 0c c0 rjmp .+24 ; 0xc84c <HoTT_Telemety+0x462>
c834: ee e1 ldi r30, 0x1E ; 30
c836: fe e0 ldi r31, 0x0E ; 14
c838: ad ee ldi r26, 0xED ; 237
c83a: b6 e0 ldi r27, 0x06 ; 6
c83c: 83 e3 ldi r24, 0x33 ; 51
c83e: 9e e0 ldi r25, 0x0E ; 14
else for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&MIKROKOPTER[i]); // no Error
c840: 24 91 lpm r18, Z
c842: 2d 93 st X+, r18
c844: 31 96 adiw r30, 0x01 ; 1
c846: e8 17 cp r30, r24
c848: f9 07 cpc r31, r25
c84a: d1 f7 brne .-12 ; 0xc840 <HoTT_Telemety+0x456>
if(FC_StatusFlags3 & FC_STATUS3_REDUNDANCE) VarioPacket.Text[0] = 'R';
c84c: 80 91 c9 03 lds r24, 0x03C9
c850: 80 ff sbrs r24, 0
c852: f2 c1 rjmp .+996 ; 0xcc38 <HoTT_Telemety+0x84e>
c854: 82 e5 ldi r24, 0x52 ; 82
c856: 80 93 ed 06 sts 0x06ED, r24
}
return(sizeof(VarioPacket));
c85a: 8c e2 ldi r24, 0x2C ; 44
c85c: ee c1 rjmp .+988 ; 0xcc3a <HoTT_Telemety+0x850>
break;
 
case HOTT_GPS_PACKET_ID:
GPSPacket.Altitude = HoehenWert/100 + 500;
c85e: 60 91 fe 03 lds r22, 0x03FE
c862: 70 91 ff 03 lds r23, 0x03FF
c866: 80 91 00 04 lds r24, 0x0400
c86a: 90 91 01 04 lds r25, 0x0401
c86e: 24 e6 ldi r18, 0x64 ; 100
c870: 30 e0 ldi r19, 0x00 ; 0
c872: 40 e0 ldi r20, 0x00 ; 0
c874: 50 e0 ldi r21, 0x00 ; 0
c876: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
c87a: 2c 50 subi r18, 0x0C ; 12
c87c: 3e 4f sbci r19, 0xFE ; 254
c87e: 30 93 ca 07 sts 0x07CA, r19
c882: 20 93 c9 07 sts 0x07C9, r18
// GPSPacket.Distance = GPSInfo.HomeDistance/10; // macht die NC
// GPSPacket.Heading = GPSInfo.HomeBearing/2; // macht die NC
// GPSPacket.Speed = (GPSInfo.Speed * 36) / 10; // macht die NC
// GPSPacket.WarnBeep = HoTT_Waring(); //(wird jetzt weiter oben gemacht)
if(!GPSPacket.WarnBeep) GPSPacket.m_sec = BuildHoTT_Vario(); else GPSPacket.m_sec = VARIO_ZERO;
c886: 80 91 b6 07 lds r24, 0x07B6
c88a: 81 11 cpse r24, r1
c88c: 06 c0 rjmp .+12 ; 0xc89a <HoTT_Telemety+0x4b0>
c88e: 40 dd rcall .-1408 ; 0xc310 <BuildHoTT_Vario>
c890: 90 93 cc 07 sts 0x07CC, r25
c894: 80 93 cb 07 sts 0x07CB, r24
c898: 06 c0 rjmp .+12 ; 0xc8a6 <HoTT_Telemety+0x4bc>
c89a: 80 e3 ldi r24, 0x30 ; 48
c89c: 95 e7 ldi r25, 0x75 ; 117
c89e: 90 93 cc 07 sts 0x07CC, r25
c8a2: 80 93 cb 07 sts 0x07CB, r24
GPSPacket.m_3sec = 120;
c8a6: 88 e7 ldi r24, 0x78 ; 120
c8a8: 80 93 cd 07 sts 0x07CD, r24
GPSPacket.NumOfSats = GPSInfo.NumOfSats;
c8ac: 80 91 d8 08 lds r24, 0x08D8
c8b0: 80 93 ce 07 sts 0x07CE, r24
if(GPSInfo.Flags & FLAG_DIFFSOLN) GPSPacket.SatFix = 'D';
c8b4: 80 91 d7 08 lds r24, 0x08D7
c8b8: 81 ff sbrs r24, 1
c8ba: 04 c0 rjmp .+8 ; 0xc8c4 <HoTT_Telemety+0x4da>
c8bc: 84 e4 ldi r24, 0x44 ; 68
c8be: 80 93 cf 07 sts 0x07CF, r24
c8c2: 0b c0 rjmp .+22 ; 0xc8da <HoTT_Telemety+0x4f0>
else
if(GPSInfo.SatFix == SATFIX_3D) GPSPacket.SatFix = ' ';
c8c4: 80 91 d9 08 lds r24, 0x08D9
c8c8: 83 30 cpi r24, 0x03 ; 3
c8ca: 21 f4 brne .+8 ; 0xc8d4 <HoTT_Telemety+0x4ea>
c8cc: 80 e2 ldi r24, 0x20 ; 32
c8ce: 80 93 cf 07 sts 0x07CF, r24
c8d2: 03 c0 rjmp .+6 ; 0xc8da <HoTT_Telemety+0x4f0>
else GPSPacket.SatFix = '!';
c8d4: 81 e2 ldi r24, 0x21 ; 33
c8d6: 80 93 cf 07 sts 0x07CF, r24
HoTT_DataPointer = (unsigned char *) &GPSPacket;
c8da: 84 eb ldi r24, 0xB4 ; 180
c8dc: 97 e0 ldi r25, 0x07 ; 7
c8de: 90 93 f1 02 sts 0x02F1, r25
c8e2: 80 93 f0 02 sts 0x02F0, r24
GPSPacket.FreeCharacters[0] = NC_GPS_ModeCharacter;
c8e6: 80 91 96 02 lds r24, 0x0296
c8ea: 80 93 db 07 sts 0x07DB, r24
GPSPacket.FreeCharacters[2] = GPSPacket.SatFix;
c8ee: 80 91 cf 07 lds r24, 0x07CF
c8f2: 80 93 dd 07 sts 0x07DD, r24
GPSPacket.HomeDirection = GPSInfo.HomeBearing / 2;//230;
c8f6: 80 91 dd 08 lds r24, 0x08DD
c8fa: 90 91 de 08 lds r25, 0x08DE
c8fe: 99 23 and r25, r25
c900: 0c f4 brge .+2 ; 0xc904 <HoTT_Telemety+0x51a>
c902: 01 96 adiw r24, 0x01 ; 1
c904: 95 95 asr r25
c906: 87 95 ror r24
c908: 80 93 d0 07 sts 0x07D0, r24
return(sizeof(GPSPacket));
c90c: 8c e2 ldi r24, 0x2C ; 44
c90e: 95 c1 rjmp .+810 ; 0xcc3a <HoTT_Telemety+0x850>
break;
case HOTT_ELECTRIC_AIR_PACKET_ID:
GetHottestBl();
c910: f0 db rcall .-2080 ; 0xc0f2 <GetHottestBl>
ElectricAirPacket.Altitude = HoehenWert/100 + 500;
c912: 60 91 fe 03 lds r22, 0x03FE
c916: 70 91 ff 03 lds r23, 0x03FF
c91a: 80 91 00 04 lds r24, 0x0400
c91e: 90 91 01 04 lds r25, 0x0401
c922: 24 e6 ldi r18, 0x64 ; 100
c924: 30 e0 ldi r19, 0x00 ; 0
c926: 40 e0 ldi r20, 0x00 ; 0
c928: 50 e0 ldi r21, 0x00 ; 0
c92a: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
c92e: 2c 50 subi r18, 0x0C ; 12
c930: 3e 4f sbci r19, 0xFE ; 254
c932: 30 93 95 06 sts 0x0695, r19
c936: 20 93 94 06 sts 0x0694, r18
ElectricAirPacket.Battery1 = UBat;
c93a: 80 91 1a 01 lds r24, 0x011A
c93e: 90 91 1b 01 lds r25, 0x011B
c942: 90 93 8f 06 sts 0x068F, r25
c946: 80 93 8e 06 sts 0x068E, r24
ElectricAirPacket.Battery2 = UBat;
c94a: 80 91 1a 01 lds r24, 0x011A
c94e: 90 91 1b 01 lds r25, 0x011B
c952: 90 93 91 06 sts 0x0691, r25
c956: 80 93 90 06 sts 0x0690, r24
ElectricAirPacket.VoltageCell1 = CompassCorrected / 2;
c95a: 80 91 65 06 lds r24, 0x0665
c95e: 90 91 66 06 lds r25, 0x0666
c962: 99 23 and r25, r25
c964: 0c f4 brge .+2 ; 0xc968 <HoTT_Telemety+0x57e>
c966: 01 96 adiw r24, 0x01 ; 1
c968: 95 95 asr r25
c96a: 87 95 ror r24
c96c: 80 93 80 06 sts 0x0680, r24
ElectricAirPacket.VoltageCell8 = ElectricAirPacket.VoltageCell1;
c970: 80 93 87 06 sts 0x0687, r24
ElectricAirPacket.VoltageCell6 = GPSInfo.HomeBearing / 2;
c974: 80 91 dd 08 lds r24, 0x08DD
c978: 90 91 de 08 lds r25, 0x08DE
c97c: 99 23 and r25, r25
c97e: 0c f4 brge .+2 ; 0xc982 <HoTT_Telemety+0x598>
c980: 01 96 adiw r24, 0x01 ; 1
c982: ac 01 movw r20, r24
c984: 55 95 asr r21
c986: 47 95 ror r20
c988: 40 93 85 06 sts 0x0685, r20
ElectricAirPacket.VoltageCell7 = GPSInfo.HomeDistance/20;
c98c: 20 91 db 08 lds r18, 0x08DB
c990: 30 91 dc 08 lds r19, 0x08DC
c994: ad ec ldi r26, 0xCD ; 205
c996: bc ec ldi r27, 0xCC ; 204
c998: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
c99c: 92 95 swap r25
c99e: 82 95 swap r24
c9a0: 8f 70 andi r24, 0x0F ; 15
c9a2: 89 27 eor r24, r25
c9a4: 9f 70 andi r25, 0x0F ; 15
c9a6: 89 27 eor r24, r25
c9a8: 80 93 86 06 sts 0x0686, r24
ElectricAirPacket.VoltageCell13 = ElectricAirPacket.VoltageCell6;
c9ac: 40 93 8c 06 sts 0x068C, r20
ElectricAirPacket.VoltageCell14 = ElectricAirPacket.VoltageCell7;
c9b0: 80 93 8d 06 sts 0x068D, r24
if(!GPSPacket.WarnBeep) ElectricAirPacket.m_sec = BuildHoTT_Vario(); else ElectricAirPacket.m_sec = VARIO_ZERO;
c9b4: 80 91 b6 07 lds r24, 0x07B6
c9b8: 81 11 cpse r24, r1
c9ba: 06 c0 rjmp .+12 ; 0xc9c8 <HoTT_Telemety+0x5de>
c9bc: a9 dc rcall .-1710 ; 0xc310 <BuildHoTT_Vario>
c9be: 90 93 9d 06 sts 0x069D, r25
c9c2: 80 93 9c 06 sts 0x069C, r24
c9c6: 06 c0 rjmp .+12 ; 0xc9d4 <HoTT_Telemety+0x5ea>
c9c8: 80 e3 ldi r24, 0x30 ; 48
c9ca: 95 e7 ldi r25, 0x75 ; 117
c9cc: 90 93 9d 06 sts 0x069D, r25
c9d0: 80 93 9c 06 sts 0x069C, r24
ElectricAirPacket.m_3sec = 120;
c9d4: 88 e7 ldi r24, 0x78 ; 120
c9d6: 80 93 9e 06 sts 0x069E, r24
ElectricAirPacket.InputVoltage = UBat;
c9da: 80 91 1a 01 lds r24, 0x011A
c9de: 90 91 1b 01 lds r25, 0x011B
c9e2: 90 93 99 06 sts 0x0699, r25
c9e6: 80 93 98 06 sts 0x0698, r24
ElectricAirPacket.Temperature1 = MinBlTemperture + 20;
c9ea: 80 91 83 04 lds r24, 0x0483
c9ee: 8c 5e subi r24, 0xEC ; 236
c9f0: 80 93 92 06 sts 0x0692, r24
ElectricAirPacket.Temperature2 = MaxBlTemperture + 20;
c9f4: 80 91 84 04 lds r24, 0x0484
c9f8: 8c 5e subi r24, 0xEC ; 236
c9fa: 80 93 93 06 sts 0x0693, r24
ElectricAirPacket.Capacity = Capacity.UsedCapacity/10;
c9fe: 20 91 19 05 lds r18, 0x0519
ca02: 30 91 1a 05 lds r19, 0x051A
ca06: ad ec ldi r26, 0xCD ; 205
ca08: bc ec ldi r27, 0xCC ; 204
ca0a: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
ca0e: 96 95 lsr r25
ca10: 87 95 ror r24
ca12: 96 95 lsr r25
ca14: 87 95 ror r24
ca16: 96 95 lsr r25
ca18: 87 95 ror r24
ca1a: 90 93 9b 06 sts 0x069B, r25
ca1e: 80 93 9a 06 sts 0x069A, r24
// ElectricAirPacket.WarnBeep = 0;//HoTT_Waring();
ElectricAirPacket.WarnBeep = GPSPacket.WarnBeep;
ca22: 80 91 b6 07 lds r24, 0x07B6
ca26: 80 93 7c 06 sts 0x067C, r24
ElectricAirPacket.Current = Capacity.ActualCurrent;
ca2a: 80 91 15 05 lds r24, 0x0515
ca2e: 90 91 16 05 lds r25, 0x0516
ca32: 90 93 97 06 sts 0x0697, r25
ca36: 80 93 96 06 sts 0x0696, r24
HoTT_DataPointer = (unsigned char *) &ElectricAirPacket;
ca3a: 8a e7 ldi r24, 0x7A ; 122
ca3c: 96 e0 ldi r25, 0x06 ; 6
ca3e: 90 93 f1 02 sts 0x02F1, r25
ca42: 80 93 f0 02 sts 0x02F0, r24
ElectricAirPacket.FlightTimeMinutes = FlugSekunden / 60;
ca46: 40 91 5e 04 lds r20, 0x045E
ca4a: 50 91 5f 04 lds r21, 0x045F
ca4e: 9a 01 movw r18, r20
ca50: a9 e8 ldi r26, 0x89 ; 137
ca52: b8 e8 ldi r27, 0x88 ; 136
ca54: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
ca58: 96 95 lsr r25
ca5a: 87 95 ror r24
ca5c: 92 95 swap r25
ca5e: 82 95 swap r24
ca60: 8f 70 andi r24, 0x0F ; 15
ca62: 89 27 eor r24, r25
ca64: 9f 70 andi r25, 0x0F ; 15
ca66: 89 27 eor r24, r25
ca68: 80 93 a1 06 sts 0x06A1, r24
ElectricAirPacket.FlightTimeSeconds = FlugSekunden % 60;
ca6c: 6c e3 ldi r22, 0x3C ; 60
ca6e: 68 9f mul r22, r24
ca70: 90 01 movw r18, r0
ca72: 69 9f mul r22, r25
ca74: 30 0d add r19, r0
ca76: 11 24 eor r1, r1
ca78: 42 1b sub r20, r18
ca7a: 53 0b sbc r21, r19
ca7c: 40 93 a2 06 sts 0x06A2, r20
return(sizeof(ElectricAirPacket));
ca80: 8c e2 ldi r24, 0x2C ; 44
ca82: db c0 rjmp .+438 ; 0xcc3a <HoTT_Telemety+0x850>
break;
case HOTT_GENERAL_PACKET_ID:
GetHottestBl();
ca84: 36 db rcall .-2452 ; 0xc0f2 <GetHottestBl>
HoTTGeneral.Rpm = GPSInfo.HomeDistance/100;
ca86: 20 91 db 08 lds r18, 0x08DB
ca8a: 30 91 dc 08 lds r19, 0x08DC
ca8e: 36 95 lsr r19
ca90: 27 95 ror r18
ca92: 36 95 lsr r19
ca94: 27 95 ror r18
ca96: ab e7 ldi r26, 0x7B ; 123
ca98: b4 e1 ldi r27, 0x14 ; 20
ca9a: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
ca9e: 96 95 lsr r25
caa0: 87 95 ror r24
caa2: 90 93 bc 06 sts 0x06BC, r25
caa6: 80 93 bb 06 sts 0x06BB, r24
HoTTGeneral.VoltageCell1 = CompassCorrected / 2;
caaa: 80 91 65 06 lds r24, 0x0665
caae: 90 91 66 06 lds r25, 0x0666
cab2: 99 23 and r25, r25
cab4: 0c f4 brge .+2 ; 0xcab8 <HoTT_Telemety+0x6ce>
cab6: 01 96 adiw r24, 0x01 ; 1
cab8: 95 95 asr r25
caba: 87 95 ror r24
cabc: 80 93 ac 06 sts 0x06AC, r24
HoTTGeneral.VoltageCell2 = KompassValue / 2;
cac0: 80 91 4e 01 lds r24, 0x014E
cac4: 90 91 4f 01 lds r25, 0x014F
cac8: 99 23 and r25, r25
caca: 0c f4 brge .+2 ; 0xcace <HoTT_Telemety+0x6e4>
cacc: 01 96 adiw r24, 0x01 ; 1
cace: 95 95 asr r25
cad0: 87 95 ror r24
cad2: 80 93 ad 06 sts 0x06AD, r24
//HoTTGeneral.VoltageCell3 = Magnetstaerke -> macht NC
//HoTTGeneral.VoltageCell4 = Inclinition -> macht NC
HoTTGeneral.VoltageCell5 = DebugOut.Analog[28]; // I2C ErrorCounter
cad6: 80 91 80 0c lds r24, 0x0C80
cada: 80 93 b0 06 sts 0x06B0, r24
HoTTGeneral.VoltageCell6 = GPSInfo.HomeBearing / 2;
cade: 80 91 dd 08 lds r24, 0x08DD
cae2: 90 91 de 08 lds r25, 0x08DE
cae6: 99 23 and r25, r25
cae8: 0c f4 brge .+2 ; 0xcaec <HoTT_Telemety+0x702>
caea: 01 96 adiw r24, 0x01 ; 1
caec: 95 95 asr r25
caee: 87 95 ror r24
caf0: 80 93 b1 06 sts 0x06B1, r24
if(UBat > BattLowVoltageWarning + 2) HoTTGeneral.FuelPercent = (UBat - (BattLowVoltageWarning + 2)) * 3;
caf4: 80 91 53 01 lds r24, 0x0153
caf8: 90 e0 ldi r25, 0x00 ; 0
cafa: 20 91 1a 01 lds r18, 0x011A
cafe: 30 91 1b 01 lds r19, 0x011B
cb02: ac 01 movw r20, r24
cb04: 4e 5f subi r20, 0xFE ; 254
cb06: 5f 4f sbci r21, 0xFF ; 255
cb08: 42 17 cp r20, r18
cb0a: 53 07 cpc r21, r19
cb0c: 8c f4 brge .+34 ; 0xcb30 <HoTT_Telemety+0x746>
cb0e: 20 91 1a 01 lds r18, 0x011A
cb12: 30 91 1b 01 lds r19, 0x011B
cb16: a9 01 movw r20, r18
cb18: 48 1b sub r20, r24
cb1a: 59 0b sbc r21, r25
cb1c: ca 01 movw r24, r20
cb1e: 02 97 sbiw r24, 0x02 ; 2
cb20: 98 2f mov r25, r24
cb22: 99 0f add r25, r25
cb24: 89 0f add r24, r25
cb26: 80 93 b8 06 sts 0x06B8, r24
else HoTTGeneral.FuelPercent = 0;
if(HoTTGeneral.FuelPercent > 100) HoTTGeneral.FuelPercent = 100;
cb2a: 85 36 cpi r24, 0x65 ; 101
cb2c: 20 f4 brcc .+8 ; 0xcb36 <HoTT_Telemety+0x74c>
cb2e: 06 c0 rjmp .+12 ; 0xcb3c <HoTT_Telemety+0x752>
//HoTTGeneral.VoltageCell3 = Magnetstaerke -> macht NC
//HoTTGeneral.VoltageCell4 = Inclinition -> macht NC
HoTTGeneral.VoltageCell5 = DebugOut.Analog[28]; // I2C ErrorCounter
HoTTGeneral.VoltageCell6 = GPSInfo.HomeBearing / 2;
if(UBat > BattLowVoltageWarning + 2) HoTTGeneral.FuelPercent = (UBat - (BattLowVoltageWarning + 2)) * 3;
else HoTTGeneral.FuelPercent = 0;
cb30: 10 92 b8 06 sts 0x06B8, r1
cb34: 03 c0 rjmp .+6 ; 0xcb3c <HoTT_Telemety+0x752>
if(HoTTGeneral.FuelPercent > 100) HoTTGeneral.FuelPercent = 100;
cb36: 84 e6 ldi r24, 0x64 ; 100
cb38: 80 93 b8 06 sts 0x06B8, r24
HoTTGeneral.FuelCapacity = NC_ErrorCode;//HoehenWert/100; // Oelpegel
cb3c: 80 91 bb 04 lds r24, 0x04BB
cb40: 90 e0 ldi r25, 0x00 ; 0
cb42: 90 93 ba 06 sts 0x06BA, r25
cb46: 80 93 b9 06 sts 0x06B9, r24
// if(HoTTGeneral.FuelCapacity < 0) HoTTGeneral.FuelCapacity = 0;
HoTTGeneral.Altitude = HoehenWert/100 + 500;
cb4a: 60 91 fe 03 lds r22, 0x03FE
cb4e: 70 91 ff 03 lds r23, 0x03FF
cb52: 80 91 00 04 lds r24, 0x0400
cb56: 90 91 01 04 lds r25, 0x0401
cb5a: 24 e6 ldi r18, 0x64 ; 100
cb5c: 30 e0 ldi r19, 0x00 ; 0
cb5e: 40 e0 ldi r20, 0x00 ; 0
cb60: 50 e0 ldi r21, 0x00 ; 0
cb62: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
cb66: 2c 50 subi r18, 0x0C ; 12
cb68: 3e 4f sbci r19, 0xFE ; 254
cb6a: 30 93 be 06 sts 0x06BE, r19
cb6e: 20 93 bd 06 sts 0x06BD, r18
HoTTGeneral.Battery1 = UBat;
cb72: 80 91 1a 01 lds r24, 0x011A
cb76: 90 91 1b 01 lds r25, 0x011B
cb7a: 90 93 b3 06 sts 0x06B3, r25
cb7e: 80 93 b2 06 sts 0x06B2, r24
HoTTGeneral.Battery2 = UBat;
cb82: 80 91 1a 01 lds r24, 0x011A
cb86: 90 91 1b 01 lds r25, 0x011B
cb8a: 90 93 b5 06 sts 0x06B5, r25
cb8e: 80 93 b4 06 sts 0x06B4, r24
if(!GPSPacket.WarnBeep) HoTTGeneral.m_sec = BuildHoTT_Vario(); else HoTTGeneral.m_sec = VARIO_ZERO;
cb92: 80 91 b6 07 lds r24, 0x07B6
cb96: 81 11 cpse r24, r1
cb98: 06 c0 rjmp .+12 ; 0xcba6 <HoTT_Telemety+0x7bc>
cb9a: ba db rcall .-2188 ; 0xc310 <BuildHoTT_Vario>
cb9c: 90 93 c0 06 sts 0x06C0, r25
cba0: 80 93 bf 06 sts 0x06BF, r24
cba4: 06 c0 rjmp .+12 ; 0xcbb2 <HoTT_Telemety+0x7c8>
cba6: 80 e3 ldi r24, 0x30 ; 48
cba8: 95 e7 ldi r25, 0x75 ; 117
cbaa: 90 93 c0 06 sts 0x06C0, r25
cbae: 80 93 bf 06 sts 0x06BF, r24
HoTTGeneral.m_3sec = 120 + GPSPacket.WarnBeep;
cbb2: 80 91 b6 07 lds r24, 0x07B6
cbb6: 88 58 subi r24, 0x88 ; 136
cbb8: 80 93 c1 06 sts 0x06C1, r24
HoTTGeneral.InputVoltage = UBat;
cbbc: 80 91 1a 01 lds r24, 0x011A
cbc0: 90 91 1b 01 lds r25, 0x011B
cbc4: 90 93 c5 06 sts 0x06C5, r25
cbc8: 80 93 c4 06 sts 0x06C4, r24
HoTTGeneral.Temperature1 = MinBlTemperture + 20;
cbcc: 80 91 83 04 lds r24, 0x0483
cbd0: 8c 5e subi r24, 0xEC ; 236
cbd2: 80 93 b6 06 sts 0x06B6, r24
HoTTGeneral.Temperature2 = MaxBlTemperture + 20;
cbd6: 80 91 84 04 lds r24, 0x0484
cbda: 8c 5e subi r24, 0xEC ; 236
cbdc: 80 93 b7 06 sts 0x06B7, r24
HoTTGeneral.Capacity = Capacity.UsedCapacity/10;
cbe0: 20 91 19 05 lds r18, 0x0519
cbe4: 30 91 1a 05 lds r19, 0x051A
cbe8: ad ec ldi r26, 0xCD ; 205
cbea: bc ec ldi r27, 0xCC ; 204
cbec: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
cbf0: 96 95 lsr r25
cbf2: 87 95 ror r24
cbf4: 96 95 lsr r25
cbf6: 87 95 ror r24
cbf8: 96 95 lsr r25
cbfa: 87 95 ror r24
cbfc: 90 93 c7 06 sts 0x06C7, r25
cc00: 80 93 c6 06 sts 0x06C6, r24
HoTTGeneral.WarnBeep = 0;//HoTT_Waring();
cc04: 10 92 a8 06 sts 0x06A8, r1
HoTTGeneral.Current = Capacity.ActualCurrent;
cc08: 80 91 15 05 lds r24, 0x0515
cc0c: 90 91 16 05 lds r25, 0x0516
cc10: 90 93 c3 06 sts 0x06C3, r25
cc14: 80 93 c2 06 sts 0x06C2, r24
//HoTTGeneral.ErrorNumber = HoTTErrorCode();
HoTT_DataPointer = (unsigned char *) &HoTTGeneral;
cc18: 86 ea ldi r24, 0xA6 ; 166
cc1a: 96 e0 ldi r25, 0x06 ; 6
cc1c: 90 93 f1 02 sts 0x02F1, r25
cc20: 80 93 f0 02 sts 0x02F0, r24
return(sizeof(HoTTGeneral));
cc24: 8c e2 ldi r24, 0x2C ; 44
cc26: 09 c0 rjmp .+18 ; 0xcc3a <HoTT_Telemety+0x850>
break;
default: return(0);
cc28: 80 e0 ldi r24, 0x00 ; 0
cc2a: 07 c0 rjmp .+14 ; 0xcc3a <HoTT_Telemety+0x850>
{
if(FC_StatusFlags3 & FC_STATUS3_BOAT) for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&BOAT_MODE[i]); // no Error
else for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&MIKROKOPTER[i]); // no Error
if(FC_StatusFlags3 & FC_STATUS3_REDUNDANCE) VarioPacket.Text[0] = 'R';
}
return(sizeof(VarioPacket));
cc2c: 8c e2 ldi r24, 0x2C ; 44
cc2e: 05 c0 rjmp .+10 ; 0xcc3a <HoTT_Telemety+0x850>
cc30: 8c e2 ldi r24, 0x2C ; 44
cc32: 03 c0 rjmp .+6 ; 0xcc3a <HoTT_Telemety+0x850>
cc34: 8c e2 ldi r24, 0x2C ; 44
cc36: 01 c0 rjmp .+2 ; 0xcc3a <HoTT_Telemety+0x850>
cc38: 8c e2 ldi r24, 0x2C ; 44
HoTT_DataPointer = (unsigned char *) &HoTTGeneral;
return(sizeof(HoTTGeneral));
break;
default: return(0);
}
}
cc3a: cf 91 pop r28
cc3c: 08 95 ret
 
0000cc3e <HoTT_Menu>:
 
//---------------------------------------------------------------
void HoTT_Menu(void)
{
cc3e: 2f 92 push r2
cc40: 3f 92 push r3
cc42: 4f 92 push r4
cc44: 5f 92 push r5
cc46: 6f 92 push r6
cc48: 7f 92 push r7
cc4a: 8f 92 push r8
cc4c: 9f 92 push r9
cc4e: af 92 push r10
cc50: bf 92 push r11
cc52: cf 92 push r12
cc54: df 92 push r13
cc56: ef 92 push r14
cc58: ff 92 push r15
cc5a: 0f 93 push r16
cc5c: 1f 93 push r17
cc5e: cf 93 push r28
cc60: df 93 push r29
cc62: 00 d0 rcall .+0 ; 0xcc64 <HoTT_Menu+0x26>
cc64: 00 d0 rcall .+0 ; 0xcc66 <HoTT_Menu+0x28>
cc66: cd b7 in r28, 0x3d ; 61
cc68: de b7 in r29, 0x3e ; 62
static unsigned char line, page = 0,show_current = 0,show_mag = 0, show_poti = 0;
unsigned char tmp;
HoTTVarioMeter = (HoTTVarioMeter * 7 + VarioMeter) / 8;
cc6a: 40 91 54 03 lds r20, 0x0354
cc6e: 50 91 55 03 lds r21, 0x0355
cc72: 20 91 7e 04 lds r18, 0x047E
cc76: 30 91 7f 04 lds r19, 0x047F
cc7a: c9 01 movw r24, r18
cc7c: 88 0f add r24, r24
cc7e: 99 1f adc r25, r25
cc80: 88 0f add r24, r24
cc82: 99 1f adc r25, r25
cc84: 88 0f add r24, r24
cc86: 99 1f adc r25, r25
cc88: 82 1b sub r24, r18
cc8a: 93 0b sbc r25, r19
cc8c: 84 0f add r24, r20
cc8e: 95 1f adc r25, r21
cc90: 99 23 and r25, r25
cc92: 0c f4 brge .+2 ; 0xcc96 <HoTT_Menu+0x58>
cc94: 07 96 adiw r24, 0x07 ; 7
cc96: 95 95 asr r25
cc98: 87 95 ror r24
cc9a: 95 95 asr r25
cc9c: 87 95 ror r24
cc9e: 95 95 asr r25
cca0: 87 95 ror r24
cca2: 90 93 7f 04 sts 0x047F, r25
cca6: 80 93 7e 04 sts 0x047E, r24
 
// if(HottKeyboard) {beeptime = 1000;};
switch(page)
ccaa: 80 91 76 04 lds r24, 0x0476
ccae: 90 e0 ldi r25, 0x00 ; 0
ccb0: 87 30 cpi r24, 0x07 ; 7
ccb2: 91 05 cpc r25, r1
ccb4: 10 f0 brcs .+4 ; 0xccba <HoTT_Menu+0x7c>
ccb6: 0c 94 97 7b jmp 0xf72e ; 0xf72e <HoTT_Menu+0x2af0>
ccba: fc 01 movw r30, r24
ccbc: e8 5a subi r30, 0xA8 ; 168
ccbe: ff 4f sbci r31, 0xFF ; 255
ccc0: 0c 94 a7 b1 jmp 0x1634e ; 0x1634e <__tablejump2__>
{
case 0:
switch(line++)
ccc4: 80 91 75 04 lds r24, 0x0475
ccc8: 91 e0 ldi r25, 0x01 ; 1
ccca: 98 0f add r25, r24
cccc: 90 93 75 04 sts 0x0475, r25
ccd0: 90 e0 ldi r25, 0x00 ; 0
ccd2: 81 31 cpi r24, 0x11 ; 17
ccd4: 91 05 cpc r25, r1
ccd6: 08 f0 brcs .+2 ; 0xccda <HoTT_Menu+0x9c>
ccd8: 37 c4 rjmp .+2158 ; 0xd548 <HoTT_Menu+0x90a>
ccda: fc 01 movw r30, r24
ccdc: e1 5a subi r30, 0xA1 ; 161
ccde: ff 4f sbci r31, 0xFF ; 255
cce0: 0c 94 a7 b1 jmp 0x1634e ; 0x1634e <__tablejump2__>
{
case 0:
if(FC_StatusFlags & FC_STATUS_LOWBAT)
cce4: 80 91 cb 03 lds r24, 0x03CB
cce8: 85 ff sbrs r24, 5
ccea: 2b c0 rjmp .+86 ; 0xcd42 <HoTT_Menu+0x104>
HoTT_printfxy_BLINK(0,0," %2i.%1iV ",UBat/10, UBat%10)
ccec: 80 e0 ldi r24, 0x00 ; 0
ccee: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ccf2: 80 91 1a 01 lds r24, 0x011A
ccf6: 90 91 1b 01 lds r25, 0x011B
ccfa: e0 91 1a 01 lds r30, 0x011A
ccfe: f0 91 1b 01 lds r31, 0x011B
cd02: 2a e0 ldi r18, 0x0A ; 10
cd04: 30 e0 ldi r19, 0x00 ; 0
cd06: b9 01 movw r22, r18
cd08: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
cd0c: 9f 93 push r25
cd0e: 8f 93 push r24
cd10: cf 01 movw r24, r30
cd12: b9 01 movw r22, r18
cd14: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
cd18: 7f 93 push r23
cd1a: 6f 93 push r22
cd1c: 83 e0 ldi r24, 0x03 ; 3
cd1e: 9b e0 ldi r25, 0x0B ; 11
cd20: 9f 93 push r25
cd22: 8f 93 push r24
cd24: 8c e2 ldi r24, 0x2C ; 44
cd26: 95 e1 ldi r25, 0x15 ; 21
cd28: 9f 93 push r25
cd2a: 8f 93 push r24
cd2c: e0 91 78 06 lds r30, 0x0678
cd30: f0 91 79 06 lds r31, 0x0679
cd34: 09 95 icall
cd36: 0f b6 in r0, 0x3f ; 63
cd38: f8 94 cli
cd3a: de bf out 0x3e, r29 ; 62
cd3c: 0f be out 0x3f, r0 ; 63
cd3e: cd bf out 0x3d, r28 ; 61
cd40: 2a c0 rjmp .+84 ; 0xcd96 <HoTT_Menu+0x158>
else
HoTT_printfxy(0,0," %2i.%1iV ",UBat/10, UBat%10)
cd42: 80 e0 ldi r24, 0x00 ; 0
cd44: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
cd48: 80 91 1a 01 lds r24, 0x011A
cd4c: 90 91 1b 01 lds r25, 0x011B
cd50: e0 91 1a 01 lds r30, 0x011A
cd54: f0 91 1b 01 lds r31, 0x011B
cd58: 2a e0 ldi r18, 0x0A ; 10
cd5a: 30 e0 ldi r19, 0x00 ; 0
cd5c: b9 01 movw r22, r18
cd5e: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
cd62: 9f 93 push r25
cd64: 8f 93 push r24
cd66: cf 01 movw r24, r30
cd68: b9 01 movw r22, r18
cd6a: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
cd6e: 7f 93 push r23
cd70: 6f 93 push r22
cd72: 86 ef ldi r24, 0xF6 ; 246
cd74: 9a e0 ldi r25, 0x0A ; 10
cd76: 9f 93 push r25
cd78: 8f 93 push r24
cd7a: 8b e0 ldi r24, 0x0B ; 11
cd7c: 95 e1 ldi r25, 0x15 ; 21
cd7e: 9f 93 push r25
cd80: 8f 93 push r24
cd82: e0 91 78 06 lds r30, 0x0678
cd86: f0 91 79 06 lds r31, 0x0679
cd8a: 09 95 icall
cd8c: 0f b6 in r0, 0x3f ; 63
cd8e: f8 94 cli
cd90: de bf out 0x3e, r29 ; 62
cd92: 0f be out 0x3f, r0 ; 63
cd94: cd bf out 0x3d, r28 ; 61
 
if(Parameter_GlobalConfig & CFG_HOEHENREGELUNG)
cd96: 80 91 5c 06 lds r24, 0x065C
cd9a: 80 ff sbrs r24, 0
cd9c: 57 c0 rjmp .+174 ; 0xce4c <HoTT_Menu+0x20e>
{
if(HoehenReglerAktiv) HoTT_printfxy_INV(10,0,"ALT:%4im %c", (int16_t)(HoehenWert/100),VarioCharacter)
cd9e: 80 91 1b 04 lds r24, 0x041B
cda2: 88 23 and r24, r24
cda4: 59 f1 breq .+86 ; 0xcdfc <HoTT_Menu+0x1be>
cda6: 8a e0 ldi r24, 0x0A ; 10
cda8: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
cdac: 80 91 20 01 lds r24, 0x0120
cdb0: 1f 92 push r1
cdb2: 8f 93 push r24
cdb4: 60 91 fe 03 lds r22, 0x03FE
cdb8: 70 91 ff 03 lds r23, 0x03FF
cdbc: 80 91 00 04 lds r24, 0x0400
cdc0: 90 91 01 04 lds r25, 0x0401
cdc4: 24 e6 ldi r18, 0x64 ; 100
cdc6: 30 e0 ldi r19, 0x00 ; 0
cdc8: 40 e0 ldi r20, 0x00 ; 0
cdca: 50 e0 ldi r21, 0x00 ; 0
cdcc: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
cdd0: 3f 93 push r19
cdd2: 2f 93 push r18
cdd4: 8a ee ldi r24, 0xEA ; 234
cdd6: 9a e0 ldi r25, 0x0A ; 10
cdd8: 9f 93 push r25
cdda: 8f 93 push r24
cddc: 8b e1 ldi r24, 0x1B ; 27
cdde: 95 e1 ldi r25, 0x15 ; 21
cde0: 9f 93 push r25
cde2: 8f 93 push r24
cde4: e0 91 78 06 lds r30, 0x0678
cde8: f0 91 79 06 lds r31, 0x0679
cdec: 09 95 icall
cdee: 0f b6 in r0, 0x3f ; 63
cdf0: f8 94 cli
cdf2: de bf out 0x3e, r29 ; 62
cdf4: 0f be out 0x3f, r0 ; 63
cdf6: cd bf out 0x3d, r28 ; 61
cdf8: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
else HoTT_printfxy(10,0,"ALT:%4im ", (int16_t)(HoehenWert/100))
cdfc: 8a e0 ldi r24, 0x0A ; 10
cdfe: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ce02: 60 91 fe 03 lds r22, 0x03FE
ce06: 70 91 ff 03 lds r23, 0x03FF
ce0a: 80 91 00 04 lds r24, 0x0400
ce0e: 90 91 01 04 lds r25, 0x0401
ce12: 24 e6 ldi r18, 0x64 ; 100
ce14: 30 e0 ldi r19, 0x00 ; 0
ce16: 40 e0 ldi r20, 0x00 ; 0
ce18: 50 e0 ldi r21, 0x00 ; 0
ce1a: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
ce1e: 3f 93 push r19
ce20: 2f 93 push r18
ce22: 8f ed ldi r24, 0xDF ; 223
ce24: 9a e0 ldi r25, 0x0A ; 10
ce26: 9f 93 push r25
ce28: 8f 93 push r24
ce2a: 8b e0 ldi r24, 0x0B ; 11
ce2c: 95 e1 ldi r25, 0x15 ; 21
ce2e: 9f 93 push r25
ce30: 8f 93 push r24
ce32: e0 91 78 06 lds r30, 0x0678
ce36: f0 91 79 06 lds r31, 0x0679
ce3a: 09 95 icall
ce3c: 0f 90 pop r0
ce3e: 0f 90 pop r0
ce40: 0f 90 pop r0
ce42: 0f 90 pop r0
ce44: 0f 90 pop r0
ce46: 0f 90 pop r0
ce48: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
else HoTT_printfxy(10,0,"ALT:---- ");
ce4c: 8a e0 ldi r24, 0x0A ; 10
ce4e: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ce52: 85 ed ldi r24, 0xD5 ; 213
ce54: 9a e0 ldi r25, 0x0A ; 10
ce56: 9f 93 push r25
ce58: 8f 93 push r24
ce5a: 8b e0 ldi r24, 0x0B ; 11
ce5c: 95 e1 ldi r25, 0x15 ; 21
ce5e: 9f 93 push r25
ce60: 8f 93 push r24
ce62: e0 91 78 06 lds r30, 0x0678
ce66: f0 91 79 06 lds r31, 0x0679
ce6a: 09 95 icall
ce6c: 0f 90 pop r0
ce6e: 0f 90 pop r0
ce70: 0f 90 pop r0
ce72: 0f 90 pop r0
ce74: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
break;
case 1:
if(FC_StatusFlags & FC_STATUS_LOWBAT)
ce78: 80 91 cb 03 lds r24, 0x03CB
ce7c: 85 ff sbrs r24, 5
ce7e: 3f c0 rjmp .+126 ; 0xcefe <HoTT_Menu+0x2c0>
HoTT_printfxy_BLINK(0,1," %2i:%02i ",FlugSekunden/60,FlugSekunden%60)
ce80: 85 e1 ldi r24, 0x15 ; 21
ce82: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ce86: 40 91 5e 04 lds r20, 0x045E
ce8a: 50 91 5f 04 lds r21, 0x045F
ce8e: 9a 01 movw r18, r20
ce90: a9 e8 ldi r26, 0x89 ; 137
ce92: b8 e8 ldi r27, 0x88 ; 136
ce94: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
ce98: 96 95 lsr r25
ce9a: 87 95 ror r24
ce9c: 92 95 swap r25
ce9e: 82 95 swap r24
cea0: 8f 70 andi r24, 0x0F ; 15
cea2: 89 27 eor r24, r25
cea4: 9f 70 andi r25, 0x0F ; 15
cea6: 89 27 eor r24, r25
cea8: 6c e3 ldi r22, 0x3C ; 60
ceaa: 68 9f mul r22, r24
ceac: 90 01 movw r18, r0
ceae: 69 9f mul r22, r25
ceb0: 30 0d add r19, r0
ceb2: 11 24 eor r1, r1
ceb4: ca 01 movw r24, r20
ceb6: 82 1b sub r24, r18
ceb8: 93 0b sbc r25, r19
ceba: 9f 93 push r25
cebc: 8f 93 push r24
cebe: 9a 01 movw r18, r20
cec0: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
cec4: 96 95 lsr r25
cec6: 87 95 ror r24
cec8: 92 95 swap r25
ceca: 82 95 swap r24
cecc: 8f 70 andi r24, 0x0F ; 15
cece: 89 27 eor r24, r25
ced0: 9f 70 andi r25, 0x0F ; 15
ced2: 89 27 eor r24, r25
ced4: 9f 93 push r25
ced6: 8f 93 push r24
ced8: 88 ec ldi r24, 0xC8 ; 200
ceda: 9a e0 ldi r25, 0x0A ; 10
cedc: 9f 93 push r25
cede: 8f 93 push r24
cee0: 8c e2 ldi r24, 0x2C ; 44
cee2: 95 e1 ldi r25, 0x15 ; 21
cee4: 9f 93 push r25
cee6: 8f 93 push r24
cee8: e0 91 78 06 lds r30, 0x0678
ceec: f0 91 79 06 lds r31, 0x0679
cef0: 09 95 icall
cef2: 0f b6 in r0, 0x3f ; 63
cef4: f8 94 cli
cef6: de bf out 0x3e, r29 ; 62
cef8: 0f be out 0x3f, r0 ; 63
cefa: cd bf out 0x3d, r28 ; 61
cefc: 3e c0 rjmp .+124 ; 0xcf7a <HoTT_Menu+0x33c>
else HoTT_printfxy(0,1," %2i:%02i ",FlugSekunden/60,FlugSekunden%60);
cefe: 85 e1 ldi r24, 0x15 ; 21
cf00: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
cf04: 40 91 5e 04 lds r20, 0x045E
cf08: 50 91 5f 04 lds r21, 0x045F
cf0c: 9a 01 movw r18, r20
cf0e: a9 e8 ldi r26, 0x89 ; 137
cf10: b8 e8 ldi r27, 0x88 ; 136
cf12: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
cf16: 96 95 lsr r25
cf18: 87 95 ror r24
cf1a: 92 95 swap r25
cf1c: 82 95 swap r24
cf1e: 8f 70 andi r24, 0x0F ; 15
cf20: 89 27 eor r24, r25
cf22: 9f 70 andi r25, 0x0F ; 15
cf24: 89 27 eor r24, r25
cf26: 6c e3 ldi r22, 0x3C ; 60
cf28: 68 9f mul r22, r24
cf2a: 90 01 movw r18, r0
cf2c: 69 9f mul r22, r25
cf2e: 30 0d add r19, r0
cf30: 11 24 eor r1, r1
cf32: ca 01 movw r24, r20
cf34: 82 1b sub r24, r18
cf36: 93 0b sbc r25, r19
cf38: 9f 93 push r25
cf3a: 8f 93 push r24
cf3c: 9a 01 movw r18, r20
cf3e: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
cf42: 96 95 lsr r25
cf44: 87 95 ror r24
cf46: 92 95 swap r25
cf48: 82 95 swap r24
cf4a: 8f 70 andi r24, 0x0F ; 15
cf4c: 89 27 eor r24, r25
cf4e: 9f 70 andi r25, 0x0F ; 15
cf50: 89 27 eor r24, r25
cf52: 9f 93 push r25
cf54: 8f 93 push r24
cf56: 8b eb ldi r24, 0xBB ; 187
cf58: 9a e0 ldi r25, 0x0A ; 10
cf5a: 9f 93 push r25
cf5c: 8f 93 push r24
cf5e: 8b e0 ldi r24, 0x0B ; 11
cf60: 95 e1 ldi r25, 0x15 ; 21
cf62: 9f 93 push r25
cf64: 8f 93 push r24
cf66: e0 91 78 06 lds r30, 0x0678
cf6a: f0 91 79 06 lds r31, 0x0679
cf6e: 09 95 icall
cf70: 0f b6 in r0, 0x3f ; 63
cf72: f8 94 cli
cf74: de bf out 0x3e, r29 ; 62
cf76: 0f be out 0x3f, r0 ; 63
cf78: cd bf out 0x3d, r28 ; 61
HoTT_printfxy(10,1,"DIR: %3d%c",CompassCorrected, HoTT_GRAD);
cf7a: 8f e1 ldi r24, 0x1F ; 31
cf7c: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
cf80: 1f 92 push r1
cf82: 80 e6 ldi r24, 0x60 ; 96
cf84: 8f 93 push r24
cf86: 80 91 66 06 lds r24, 0x0666
cf8a: 8f 93 push r24
cf8c: 80 91 65 06 lds r24, 0x0665
cf90: 8f 93 push r24
cf92: 80 eb ldi r24, 0xB0 ; 176
cf94: 9a e0 ldi r25, 0x0A ; 10
cf96: 9f 93 push r25
cf98: 8f 93 push r24
cf9a: 8b e0 ldi r24, 0x0B ; 11
cf9c: 95 e1 ldi r25, 0x15 ; 21
cf9e: 9f 93 push r25
cfa0: 8f 93 push r24
cfa2: e0 91 78 06 lds r30, 0x0678
cfa6: f0 91 79 06 lds r31, 0x0679
cfaa: 09 95 icall
if(FC_StatusFlags2 & FC_STATUS2_CAREFREE) HoTT_printfxy_INV(20,1,"C") else HoTT_printfxy(20,1," ");
cfac: 80 91 ca 03 lds r24, 0x03CA
cfb0: 0f b6 in r0, 0x3f ; 63
cfb2: f8 94 cli
cfb4: de bf out 0x3e, r29 ; 62
cfb6: 0f be out 0x3f, r0 ; 63
cfb8: cd bf out 0x3d, r28 ; 61
cfba: 80 ff sbrs r24, 0
cfbc: 16 c0 rjmp .+44 ; 0xcfea <HoTT_Menu+0x3ac>
cfbe: 89 e2 ldi r24, 0x29 ; 41
cfc0: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
cfc4: 8e ea ldi r24, 0xAE ; 174
cfc6: 9a e0 ldi r25, 0x0A ; 10
cfc8: 9f 93 push r25
cfca: 8f 93 push r24
cfcc: 8b e1 ldi r24, 0x1B ; 27
cfce: 95 e1 ldi r25, 0x15 ; 21
cfd0: 9f 93 push r25
cfd2: 8f 93 push r24
cfd4: e0 91 78 06 lds r30, 0x0678
cfd8: f0 91 79 06 lds r31, 0x0679
cfdc: 09 95 icall
cfde: 0f 90 pop r0
cfe0: 0f 90 pop r0
cfe2: 0f 90 pop r0
cfe4: 0f 90 pop r0
cfe6: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
cfea: 89 e2 ldi r24, 0x29 ; 41
cfec: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
cff0: 8c ea ldi r24, 0xAC ; 172
cff2: 9a e0 ldi r25, 0x0A ; 10
cff4: 9f 93 push r25
cff6: 8f 93 push r24
cff8: 8b e0 ldi r24, 0x0B ; 11
cffa: 95 e1 ldi r25, 0x15 ; 21
cffc: 9f 93 push r25
cffe: 8f 93 push r24
d000: e0 91 78 06 lds r30, 0x0678
d004: f0 91 79 06 lds r31, 0x0679
d008: 09 95 icall
d00a: 0f 90 pop r0
d00c: 0f 90 pop r0
d00e: 0f 90 pop r0
d010: 0f 90 pop r0
d012: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
break;
case 2:
if(FC_StatusFlags & FC_STATUS_LOWBAT)
d016: 80 91 cb 03 lds r24, 0x03CB
d01a: 85 ff sbrs r24, 5
d01c: 1d c0 rjmp .+58 ; 0xd058 <HoTT_Menu+0x41a>
HoTT_printfxy_BLINK(0,2," %5i ",Capacity.UsedCapacity)
d01e: 8a e2 ldi r24, 0x2A ; 42
d020: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d024: e9 e1 ldi r30, 0x19 ; 25
d026: f5 e0 ldi r31, 0x05 ; 5
d028: 81 81 ldd r24, Z+1 ; 0x01
d02a: 8f 93 push r24
d02c: 80 81 ld r24, Z
d02e: 8f 93 push r24
d030: 84 ea ldi r24, 0xA4 ; 164
d032: 9a e0 ldi r25, 0x0A ; 10
d034: 9f 93 push r25
d036: 8f 93 push r24
d038: 8c e2 ldi r24, 0x2C ; 44
d03a: 95 e1 ldi r25, 0x15 ; 21
d03c: 9f 93 push r25
d03e: 8f 93 push r24
d040: e0 91 78 06 lds r30, 0x0678
d044: f0 91 79 06 lds r31, 0x0679
d048: 09 95 icall
d04a: 0f 90 pop r0
d04c: 0f 90 pop r0
d04e: 0f 90 pop r0
d050: 0f 90 pop r0
d052: 0f 90 pop r0
d054: 0f 90 pop r0
d056: 1c c0 rjmp .+56 ; 0xd090 <HoTT_Menu+0x452>
else HoTT_printfxy(0,2," %5i ",Capacity.UsedCapacity);
d058: 8a e2 ldi r24, 0x2A ; 42
d05a: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d05e: e9 e1 ldi r30, 0x19 ; 25
d060: f5 e0 ldi r31, 0x05 ; 5
d062: 81 81 ldd r24, Z+1 ; 0x01
d064: 8f 93 push r24
d066: 80 81 ld r24, Z
d068: 8f 93 push r24
d06a: 8c e9 ldi r24, 0x9C ; 156
d06c: 9a e0 ldi r25, 0x0A ; 10
d06e: 9f 93 push r25
d070: 8f 93 push r24
d072: 8b e0 ldi r24, 0x0B ; 11
d074: 95 e1 ldi r25, 0x15 ; 21
d076: 9f 93 push r25
d078: 8f 93 push r24
d07a: e0 91 78 06 lds r30, 0x0678
d07e: f0 91 79 06 lds r31, 0x0679
d082: 09 95 icall
d084: 0f 90 pop r0
d086: 0f 90 pop r0
d088: 0f 90 pop r0
d08a: 0f 90 pop r0
d08c: 0f 90 pop r0
d08e: 0f 90 pop r0
HoTT_printfxy(12,2,"I:%2i.%1iA ",Capacity.ActualCurrent/10, Capacity.ActualCurrent%10);
d090: 86 e3 ldi r24, 0x36 ; 54
d092: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d096: 40 91 15 05 lds r20, 0x0515
d09a: 50 91 16 05 lds r21, 0x0516
d09e: 9a 01 movw r18, r20
d0a0: ad ec ldi r26, 0xCD ; 205
d0a2: bc ec ldi r27, 0xCC ; 204
d0a4: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
d0a8: 96 95 lsr r25
d0aa: 87 95 ror r24
d0ac: 96 95 lsr r25
d0ae: 87 95 ror r24
d0b0: 96 95 lsr r25
d0b2: 87 95 ror r24
d0b4: 9c 01 movw r18, r24
d0b6: 22 0f add r18, r18
d0b8: 33 1f adc r19, r19
d0ba: 88 0f add r24, r24
d0bc: 99 1f adc r25, r25
d0be: 88 0f add r24, r24
d0c0: 99 1f adc r25, r25
d0c2: 88 0f add r24, r24
d0c4: 99 1f adc r25, r25
d0c6: 82 0f add r24, r18
d0c8: 93 1f adc r25, r19
d0ca: 9a 01 movw r18, r20
d0cc: 28 1b sub r18, r24
d0ce: 39 0b sbc r19, r25
d0d0: c9 01 movw r24, r18
d0d2: 9f 93 push r25
d0d4: 2f 93 push r18
d0d6: 9a 01 movw r18, r20
d0d8: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
d0dc: 96 95 lsr r25
d0de: 87 95 ror r24
d0e0: 96 95 lsr r25
d0e2: 87 95 ror r24
d0e4: 96 95 lsr r25
d0e6: 87 95 ror r24
d0e8: 9f 93 push r25
d0ea: 8f 93 push r24
d0ec: 80 e9 ldi r24, 0x90 ; 144
d0ee: 9a e0 ldi r25, 0x0A ; 10
d0f0: 9f 93 push r25
d0f2: 8f 93 push r24
d0f4: 8b e0 ldi r24, 0x0B ; 11
d0f6: 95 e1 ldi r25, 0x15 ; 21
d0f8: 9f 93 push r25
d0fa: 8f 93 push r24
d0fc: e0 91 78 06 lds r30, 0x0678
d100: f0 91 79 06 lds r31, 0x0679
d104: 09 95 icall
break;
d106: 0f b6 in r0, 0x3f ; 63
d108: f8 94 cli
d10a: de bf out 0x3e, r29 ; 62
d10c: 0f be out 0x3f, r0 ; 63
d10e: cd bf out 0x3d, r28 ; 61
d110: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
case 3:
HoTT_printfxy(9,0,":");
d114: 89 e0 ldi r24, 0x09 ; 9
d116: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d11a: 8e e8 ldi r24, 0x8E ; 142
d11c: 9a e0 ldi r25, 0x0A ; 10
d11e: 9f 93 push r25
d120: 8f 93 push r24
d122: 0b e0 ldi r16, 0x0B ; 11
d124: 15 e1 ldi r17, 0x15 ; 21
d126: 1f 93 push r17
d128: 0f 93 push r16
d12a: e0 91 78 06 lds r30, 0x0678
d12e: f0 91 79 06 lds r31, 0x0679
d132: 09 95 icall
HoTT_printfxy(9,1,":");
d134: 8e e1 ldi r24, 0x1E ; 30
d136: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d13a: 8c e8 ldi r24, 0x8C ; 140
d13c: 9a e0 ldi r25, 0x0A ; 10
d13e: 9f 93 push r25
d140: 8f 93 push r24
d142: 1f 93 push r17
d144: 0f 93 push r16
d146: e0 91 78 06 lds r30, 0x0678
d14a: f0 91 79 06 lds r31, 0x0679
d14e: 09 95 icall
HoTT_printfxy(9,2,":");
d150: 83 e3 ldi r24, 0x33 ; 51
d152: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d156: 8a e8 ldi r24, 0x8A ; 138
d158: 9a e0 ldi r25, 0x0A ; 10
d15a: 9f 93 push r25
d15c: 8f 93 push r24
d15e: 1f 93 push r17
d160: 0f 93 push r16
d162: e0 91 78 06 lds r30, 0x0678
d166: f0 91 79 06 lds r31, 0x0679
d16a: 09 95 icall
HoTT_printfxy(0,3,"---------+-----------");
d16c: 8f e3 ldi r24, 0x3F ; 63
d16e: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d172: 84 e7 ldi r24, 0x74 ; 116
d174: 9a e0 ldi r25, 0x0A ; 10
d176: 9f 93 push r25
d178: 8f 93 push r24
d17a: 1f 93 push r17
d17c: 0f 93 push r16
d17e: e0 91 78 06 lds r30, 0x0678
d182: f0 91 79 06 lds r31, 0x0679
d186: 09 95 icall
 
// HoTT_printfxy(0,3,"---------------------");
HoTT_printfxy(0,6,"---------------------");
d188: 8e e7 ldi r24, 0x7E ; 126
d18a: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d18e: 8e e5 ldi r24, 0x5E ; 94
d190: 9a e0 ldi r25, 0x0A ; 10
d192: 9f 93 push r25
d194: 8f 93 push r24
d196: 1f 93 push r17
d198: 0f 93 push r16
d19a: e0 91 78 06 lds r30, 0x0678
d19e: f0 91 79 06 lds r31, 0x0679
d1a2: 09 95 icall
break;
d1a4: 0f b6 in r0, 0x3f ; 63
d1a6: f8 94 cli
d1a8: de bf out 0x3e, r29 ; 62
d1aa: 0f be out 0x3f, r0 ; 63
d1ac: cd bf out 0x3d, r28 ; 61
d1ae: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
case 4:
if(NaviDataOkay)
d1b2: 80 91 a4 02 lds r24, 0x02A4
d1b6: 88 23 and r24, r24
d1b8: 09 f4 brne .+2 ; 0xd1bc <HoTT_Menu+0x57e>
d1ba: 8e c0 rjmp .+284 ; 0xd2d8 <HoTT_Menu+0x69a>
{
HoTT_printfxy(9,4,":");
d1bc: 8d e5 ldi r24, 0x5D ; 93
d1be: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d1c2: 8c e5 ldi r24, 0x5C ; 92
d1c4: 9a e0 ldi r25, 0x0A ; 10
d1c6: 9f 93 push r25
d1c8: 8f 93 push r24
d1ca: 0b e0 ldi r16, 0x0B ; 11
d1cc: 15 e1 ldi r17, 0x15 ; 21
d1ce: 1f 93 push r17
d1d0: 0f 93 push r16
d1d2: e0 91 78 06 lds r30, 0x0678
d1d6: f0 91 79 06 lds r31, 0x0679
d1da: 09 95 icall
HoTT_printfxy(0,4,"SAT:%2d ",GPSInfo.NumOfSats);
d1dc: 84 e5 ldi r24, 0x54 ; 84
d1de: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d1e2: 80 91 d8 08 lds r24, 0x08D8
d1e6: 1f 92 push r1
d1e8: 8f 93 push r24
d1ea: 83 e5 ldi r24, 0x53 ; 83
d1ec: 9a e0 ldi r25, 0x0A ; 10
d1ee: 9f 93 push r25
d1f0: 8f 93 push r24
d1f2: 1f 93 push r17
d1f4: 0f 93 push r16
d1f6: e0 91 78 06 lds r30, 0x0678
d1fa: f0 91 79 06 lds r31, 0x0679
d1fe: 09 95 icall
HoTT_printfxy(10,4,"DIST:%3dm",GPSInfo.HomeDistance/10);
d200: 8e e5 ldi r24, 0x5E ; 94
d202: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d206: 20 91 db 08 lds r18, 0x08DB
d20a: 30 91 dc 08 lds r19, 0x08DC
d20e: ad ec ldi r26, 0xCD ; 205
d210: bc ec ldi r27, 0xCC ; 204
d212: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
d216: 96 95 lsr r25
d218: 87 95 ror r24
d21a: 96 95 lsr r25
d21c: 87 95 ror r24
d21e: 96 95 lsr r25
d220: 87 95 ror r24
d222: 9f 93 push r25
d224: 8f 93 push r24
d226: 89 e4 ldi r24, 0x49 ; 73
d228: 9a e0 ldi r25, 0x0A ; 10
d22a: 9f 93 push r25
d22c: 8f 93 push r24
d22e: 1f 93 push r17
d230: 0f 93 push r16
d232: e0 91 78 06 lds r30, 0x0678
d236: f0 91 79 06 lds r31, 0x0679
d23a: 09 95 icall
switch (GPSInfo.SatFix)
d23c: 0f b6 in r0, 0x3f ; 63
d23e: f8 94 cli
d240: de bf out 0x3e, r29 ; 62
d242: 0f be out 0x3f, r0 ; 63
d244: cd bf out 0x3d, r28 ; 61
d246: 80 91 d9 08 lds r24, 0x08D9
d24a: 83 30 cpi r24, 0x03 ; 3
d24c: 79 f5 brne .+94 ; 0xd2ac <HoTT_Menu+0x66e>
{
case SATFIX_3D:
if(GPSInfo.Flags & FLAG_DIFFSOLN) HoTT_printfxy(7,4,"D ")
d24e: 80 91 d7 08 lds r24, 0x08D7
d252: 81 ff sbrs r24, 1
d254: 15 c0 rjmp .+42 ; 0xd280 <HoTT_Menu+0x642>
d256: 8b e5 ldi r24, 0x5B ; 91
d258: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d25c: 86 e4 ldi r24, 0x46 ; 70
d25e: 9a e0 ldi r25, 0x0A ; 10
d260: 9f 93 push r25
d262: 8f 93 push r24
d264: c8 01 movw r24, r16
d266: 9f 93 push r25
d268: 0f 93 push r16
d26a: e0 91 78 06 lds r30, 0x0678
d26e: f0 91 79 06 lds r31, 0x0679
d272: 09 95 icall
d274: 0f 90 pop r0
d276: 0f 90 pop r0
d278: 0f 90 pop r0
d27a: 0f 90 pop r0
d27c: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
else HoTT_printfxy(7,4,"3D");
d280: 8b e5 ldi r24, 0x5B ; 91
d282: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d286: 83 e4 ldi r24, 0x43 ; 67
d288: 9a e0 ldi r25, 0x0A ; 10
d28a: 9f 93 push r25
d28c: 8f 93 push r24
d28e: 8b e0 ldi r24, 0x0B ; 11
d290: 95 e1 ldi r25, 0x15 ; 21
d292: 9f 93 push r25
d294: 8f 93 push r24
d296: e0 91 78 06 lds r30, 0x0678
d29a: f0 91 79 06 lds r31, 0x0679
d29e: 09 95 icall
d2a0: 0f 90 pop r0
d2a2: 0f 90 pop r0
d2a4: 0f 90 pop r0
d2a6: 0f 90 pop r0
d2a8: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
break;
default:
HoTT_printfxy_BLINK(7,4,"!!");
d2ac: 8b e5 ldi r24, 0x5B ; 91
d2ae: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d2b2: 80 e4 ldi r24, 0x40 ; 64
d2b4: 9a e0 ldi r25, 0x0A ; 10
d2b6: 9f 93 push r25
d2b8: 8f 93 push r24
d2ba: 8c e2 ldi r24, 0x2C ; 44
d2bc: 95 e1 ldi r25, 0x15 ; 21
d2be: 9f 93 push r25
d2c0: 8f 93 push r24
d2c2: e0 91 78 06 lds r30, 0x0678
d2c6: f0 91 79 06 lds r31, 0x0679
d2ca: 09 95 icall
break;
d2cc: 0f 90 pop r0
d2ce: 0f 90 pop r0
d2d0: 0f 90 pop r0
d2d2: 0f 90 pop r0
d2d4: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
}
else
{
Hott_ClearLine(4);
d2d8: 84 e0 ldi r24, 0x04 ; 4
d2da: 0e 94 b4 60 call 0xc168 ; 0xc168 <Hott_ClearLine>
d2de: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
break;
case 5:
if(NaviDataOkay)
d2e2: 80 91 a4 02 lds r24, 0x02A4
d2e6: 88 23 and r24, r24
d2e8: 09 f4 brne .+2 ; 0xd2ec <HoTT_Menu+0x6ae>
d2ea: 7f c0 rjmp .+254 ; 0xd3ea <HoTT_Menu+0x7ac>
{
if(show_mag)
d2ec: 80 91 74 04 lds r24, 0x0474
d2f0: 88 23 and r24, r24
d2f2: 09 f4 brne .+2 ; 0xd2f6 <HoTT_Menu+0x6b8>
d2f4: 52 c0 rjmp .+164 ; 0xd39a <HoTT_Menu+0x75c>
{
HoTT_printfxy(0,5,"MAG:%3u%% ",EarthMagneticField);
d2f6: 89 e6 ldi r24, 0x69 ; 105
d2f8: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d2fc: 80 91 ba 04 lds r24, 0x04BA
d300: 1f 92 push r1
d302: 8f 93 push r24
d304: 85 e3 ldi r24, 0x35 ; 53
d306: 9a e0 ldi r25, 0x0A ; 10
d308: 9f 93 push r25
d30a: 8f 93 push r24
d30c: 0f 2e mov r0, r31
d30e: fb e0 ldi r31, 0x0B ; 11
d310: ef 2e mov r14, r31
d312: f5 e1 ldi r31, 0x15 ; 21
d314: ff 2e mov r15, r31
d316: f0 2d mov r31, r0
d318: ff 92 push r15
d31a: ef 92 push r14
d31c: e0 91 78 06 lds r30, 0x0678
d320: f0 91 79 06 lds r31, 0x0679
d324: 09 95 icall
HoTT_printfxy(12,5,"HM:%3d%c %c", GPSInfo.HomeBearing, HoTT_GRAD, NC_GPS_ModeCharacter);
d326: 85 e7 ldi r24, 0x75 ; 117
d328: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d32c: 80 91 96 02 lds r24, 0x0296
d330: 1f 92 push r1
d332: 8f 93 push r24
d334: 1f 92 push r1
d336: 10 e6 ldi r17, 0x60 ; 96
d338: 1f 93 push r17
d33a: ed ed ldi r30, 0xDD ; 221
d33c: f8 e0 ldi r31, 0x08 ; 8
d33e: 81 81 ldd r24, Z+1 ; 0x01
d340: 8f 93 push r24
d342: 80 81 ld r24, Z
d344: 8f 93 push r24
d346: 89 e2 ldi r24, 0x29 ; 41
d348: 9a e0 ldi r25, 0x0A ; 10
d34a: 9f 93 push r25
d34c: 8f 93 push r24
d34e: ff 92 push r15
d350: ef 92 push r14
d352: e0 91 78 06 lds r30, 0x0678
d356: f0 91 79 06 lds r31, 0x0679
d35a: 09 95 icall
HoTT_printfxy(9,5,"incl:%2d%c(%2i)",EarthMagneticInclination, HoTT_GRAD,EarthMagneticInclinationTheoretic);
d35c: 82 e7 ldi r24, 0x72 ; 114
d35e: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d362: 80 91 b8 04 lds r24, 0x04B8
d366: 1f 92 push r1
d368: 8f 93 push r24
d36a: 1f 92 push r1
d36c: 1f 93 push r17
d36e: 80 91 b9 04 lds r24, 0x04B9
d372: 1f 92 push r1
d374: 8f 93 push r24
d376: 89 e1 ldi r24, 0x19 ; 25
d378: 9a e0 ldi r25, 0x0A ; 10
d37a: 9f 93 push r25
d37c: 8f 93 push r24
d37e: ff 92 push r15
d380: ef 92 push r14
d382: e0 91 78 06 lds r30, 0x0678
d386: f0 91 79 06 lds r31, 0x0679
d38a: 09 95 icall
d38c: 0f b6 in r0, 0x3f ; 63
d38e: f8 94 cli
d390: de bf out 0x3e, r29 ; 62
d392: 0f be out 0x3f, r0 ; 63
d394: cd bf out 0x3d, r28 ; 61
d396: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
else
{
HoTT_printfxy(0,5," %2um/s: HM:%3d%c %c",GPSInfo.Speed, GPSInfo.HomeBearing, HoTT_GRAD, NC_GPS_ModeCharacter);
d39a: 89 e6 ldi r24, 0x69 ; 105
d39c: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d3a0: 80 91 96 02 lds r24, 0x0296
d3a4: 1f 92 push r1
d3a6: 8f 93 push r24
d3a8: 1f 92 push r1
d3aa: 80 e6 ldi r24, 0x60 ; 96
d3ac: 8f 93 push r24
d3ae: ed ed ldi r30, 0xDD ; 221
d3b0: f8 e0 ldi r31, 0x08 ; 8
d3b2: 81 81 ldd r24, Z+1 ; 0x01
d3b4: 8f 93 push r24
d3b6: 80 81 ld r24, Z
d3b8: 8f 93 push r24
d3ba: 80 91 da 08 lds r24, 0x08DA
d3be: 1f 92 push r1
d3c0: 8f 93 push r24
d3c2: 80 e0 ldi r24, 0x00 ; 0
d3c4: 9a e0 ldi r25, 0x0A ; 10
d3c6: 9f 93 push r25
d3c8: 8f 93 push r24
d3ca: 8b e0 ldi r24, 0x0B ; 11
d3cc: 95 e1 ldi r25, 0x15 ; 21
d3ce: 9f 93 push r25
d3d0: 8f 93 push r24
d3d2: e0 91 78 06 lds r30, 0x0678
d3d6: f0 91 79 06 lds r31, 0x0679
d3da: 09 95 icall
d3dc: 0f b6 in r0, 0x3f ; 63
d3de: f8 94 cli
d3e0: de bf out 0x3e, r29 ; 62
d3e2: 0f be out 0x3f, r0 ; 63
d3e4: cd bf out 0x3d, r28 ; 61
d3e6: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
}
else Hott_ClearLine(5);
d3ea: 85 e0 ldi r24, 0x05 ; 5
d3ec: 0e 94 b4 60 call 0xc168 ; 0xc168 <Hott_ClearLine>
d3f0: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
break;
case 6:
break;
case 7: if(NC_ErrorCode)
d3f4: 80 91 bb 04 lds r24, 0x04BB
d3f8: 88 23 and r24, r24
d3fa: 09 f4 brne .+2 ; 0xd3fe <HoTT_Menu+0x7c0>
d3fc: 4f c0 rjmp .+158 ; 0xd49c <HoTT_Menu+0x85e>
{
if(HoTTBlink && NC_ErrorCode < MAX_ERR_NUMBER)
d3fe: 90 91 ed 02 lds r25, 0x02ED
d402: 99 23 and r25, r25
d404: 09 f1 breq .+66 ; 0xd448 <HoTT_Menu+0x80a>
d406: 83 32 cpi r24, 0x23 ; 35
d408: f8 f4 brcc .+62 ; 0xd448 <HoTT_Menu+0x80a>
{
Hott_ClearLine(7);
d40a: 87 e0 ldi r24, 0x07 ; 7
d40c: 0e 94 b4 60 call 0xc168 ; 0xc168 <Hott_ClearLine>
HoTT_printfxy_INV(0,7,"ERR: %2d !",NC_ErrorCode);
d410: 83 e9 ldi r24, 0x93 ; 147
d412: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d416: 80 91 bb 04 lds r24, 0x04BB
d41a: 1f 92 push r1
d41c: 8f 93 push r24
d41e: 85 ef ldi r24, 0xF5 ; 245
d420: 99 e0 ldi r25, 0x09 ; 9
d422: 9f 93 push r25
d424: 8f 93 push r24
d426: 8b e1 ldi r24, 0x1B ; 27
d428: 95 e1 ldi r25, 0x15 ; 21
d42a: 9f 93 push r25
d42c: 8f 93 push r24
d42e: e0 91 78 06 lds r30, 0x0678
d432: f0 91 79 06 lds r31, 0x0679
d436: 09 95 icall
d438: 0f 90 pop r0
d43a: 0f 90 pop r0
d43c: 0f 90 pop r0
d43e: 0f 90 pop r0
d440: 0f 90 pop r0
d442: 0f 90 pop r0
d444: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
else
{
HoTT_printfxy(0,7,"ERR: "); _printf_P(&LIBFC_HoTT_Putchar, NC_ERROR_TEXT[NC_ErrorCode] , 0);};
d448: 83 e9 ldi r24, 0x93 ; 147
d44a: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d44e: 8f ee ldi r24, 0xEF ; 239
d450: 99 e0 ldi r25, 0x09 ; 9
d452: 9f 93 push r25
d454: 8f 93 push r24
d456: 0b e0 ldi r16, 0x0B ; 11
d458: 15 e1 ldi r17, 0x15 ; 21
d45a: 1f 93 push r17
d45c: 0f 93 push r16
d45e: e0 91 78 06 lds r30, 0x0678
d462: f0 91 79 06 lds r31, 0x0679
d466: 09 95 icall
d468: 1f 92 push r1
d46a: 1f 92 push r1
d46c: 80 91 bb 04 lds r24, 0x04BB
d470: f1 e1 ldi r31, 0x11 ; 17
d472: 8f 9f mul r24, r31
d474: c0 01 movw r24, r0
d476: 11 24 eor r1, r1
d478: 84 59 subi r24, 0x94 ; 148
d47a: 94 4f sbci r25, 0xF4 ; 244
d47c: 9f 93 push r25
d47e: 8f 93 push r24
d480: 1f 93 push r17
d482: 0f 93 push r16
d484: e0 91 78 06 lds r30, 0x0678
d488: f0 91 79 06 lds r31, 0x0679
d48c: 09 95 icall
d48e: 0f b6 in r0, 0x3f ; 63
d490: f8 94 cli
d492: de bf out 0x3e, r29 ; 62
d494: 0f be out 0x3f, r0 ; 63
d496: cd bf out 0x3d, r28 ; 61
d498: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
else
if(FC_StatusFlags & FC_STATUS_LOWBAT) HoTT_printfxy(1,7,"!! LiPo voltage !!")
d49c: 80 91 cb 03 lds r24, 0x03CB
d4a0: 85 ff sbrs r24, 5
d4a2: 16 c0 rjmp .+44 ; 0xd4d0 <HoTT_Menu+0x892>
d4a4: 84 e9 ldi r24, 0x94 ; 148
d4a6: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d4aa: 8c ed ldi r24, 0xDC ; 220
d4ac: 99 e0 ldi r25, 0x09 ; 9
d4ae: 9f 93 push r25
d4b0: 8f 93 push r24
d4b2: 8b e0 ldi r24, 0x0B ; 11
d4b4: 95 e1 ldi r25, 0x15 ; 21
d4b6: 9f 93 push r25
d4b8: 8f 93 push r24
d4ba: e0 91 78 06 lds r30, 0x0678
d4be: f0 91 79 06 lds r31, 0x0679
d4c2: 09 95 icall
d4c4: 0f 90 pop r0
d4c6: 0f 90 pop r0
d4c8: 0f 90 pop r0
d4ca: 0f 90 pop r0
d4cc: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
else HoTT_printfxy(0,7," www.MikroKopter.de ");
d4d0: 83 e9 ldi r24, 0x93 ; 147
d4d2: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d4d6: 86 ec ldi r24, 0xC6 ; 198
d4d8: 99 e0 ldi r25, 0x09 ; 9
d4da: 9f 93 push r25
d4dc: 8f 93 push r24
d4de: 8b e0 ldi r24, 0x0B ; 11
d4e0: 95 e1 ldi r25, 0x15 ; 21
d4e2: 9f 93 push r25
d4e4: 8f 93 push r24
d4e6: e0 91 78 06 lds r30, 0x0678
d4ea: f0 91 79 06 lds r31, 0x0679
d4ee: 09 95 icall
d4f0: 0f 90 pop r0
d4f2: 0f 90 pop r0
d4f4: 0f 90 pop r0
d4f6: 0f 90 pop r0
d4f8: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
case 12:
case 13:
case 14:
case 15:
case 16:
if(HottKeyboard == HOTT_KEY_DOWN) { LIBFC_HoTT_Clear(); page = 5; line = 0;}
d4fc: 80 91 a9 0c lds r24, 0x0CA9
d500: 82 30 cpi r24, 0x02 ; 2
d502: 41 f4 brne .+16 ; 0xd514 <HoTT_Menu+0x8d6>
d504: 0e 94 3a 15 call 0x2a74 ; 0x2a74 <LIBFC_HoTT_Clear>
d508: 85 e0 ldi r24, 0x05 ; 5
d50a: 80 93 76 04 sts 0x0476, r24
d50e: 10 92 75 04 sts 0x0475, r1
d512: 16 c0 rjmp .+44 ; 0xd540 <HoTT_Menu+0x902>
else
if(HottKeyboard == HOTT_KEY_SET) { if(show_mag) show_mag = 0; else show_mag = 1;}
d514: 86 30 cpi r24, 0x06 ; 6
d516: 59 f4 brne .+22 ; 0xd52e <HoTT_Menu+0x8f0>
d518: 80 91 74 04 lds r24, 0x0474
d51c: 88 23 and r24, r24
d51e: 19 f0 breq .+6 ; 0xd526 <HoTT_Menu+0x8e8>
d520: 10 92 74 04 sts 0x0474, r1
d524: 0d c0 rjmp .+26 ; 0xd540 <HoTT_Menu+0x902>
d526: 81 e0 ldi r24, 0x01 ; 1
d528: 80 93 74 04 sts 0x0474, r24
d52c: 09 c0 rjmp .+18 ; 0xd540 <HoTT_Menu+0x902>
else
if(HottKeyboard == HOTT_KEY_LEFT) { LIBFC_HoTT_Clear(); page = 1; line = 0;};
d52e: 88 30 cpi r24, 0x08 ; 8
d530: 39 f4 brne .+14 ; 0xd540 <HoTT_Menu+0x902>
d532: 0e 94 3a 15 call 0x2a74 ; 0x2a74 <LIBFC_HoTT_Clear>
d536: 81 e0 ldi r24, 0x01 ; 1
d538: 80 93 76 04 sts 0x0476, r24
d53c: 10 92 75 04 sts 0x0475, r1
HottKeyboard = 0;
d540: 10 92 a9 0c sts 0x0CA9, r1
break;
d544: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
default: line = 0;
d548: 10 92 75 04 sts 0x0475, r1
break;
d54c: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
break;
case 1:
switch(line++)
d550: 80 91 75 04 lds r24, 0x0475
d554: 91 e0 ldi r25, 0x01 ; 1
d556: 98 0f add r25, r24
d558: 90 93 75 04 sts 0x0475, r25
d55c: 90 e0 ldi r25, 0x00 ; 0
d55e: 81 31 cpi r24, 0x11 ; 17
d560: 91 05 cpc r25, r1
d562: 08 f0 brcs .+2 ; 0xd566 <HoTT_Menu+0x928>
d564: e9 c5 rjmp .+3026 ; 0xe138 <HoTT_Menu+0x14fa>
d566: fc 01 movw r30, r24
d568: e0 59 subi r30, 0x90 ; 144
d56a: ff 4f sbci r31, 0xFF ; 255
d56c: 0c 94 a7 b1 jmp 0x1634e ; 0x1634e <__tablejump2__>
{
case 0:
if(FC_StatusFlags & FC_STATUS_LOWBAT)
d570: 80 91 cb 03 lds r24, 0x03CB
d574: 85 ff sbrs r24, 5
d576: 5d c0 rjmp .+186 ; 0xd632 <HoTT_Menu+0x9f4>
HoTT_printfxy_BLINK(0,0," %2i:%02i %2i.%1iV %4imAh",FlugSekunden/60,FlugSekunden%60,UBat/10, UBat%10,Capacity.UsedCapacity)
d578: 80 e0 ldi r24, 0x00 ; 0
d57a: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d57e: 80 91 1a 01 lds r24, 0x011A
d582: 90 91 1b 01 lds r25, 0x011B
d586: 00 91 1a 01 lds r16, 0x011A
d58a: 10 91 1b 01 lds r17, 0x011B
d58e: e0 91 5e 04 lds r30, 0x045E
d592: f0 91 5f 04 lds r31, 0x045F
d596: a9 e1 ldi r26, 0x19 ; 25
d598: b5 e0 ldi r27, 0x05 ; 5
d59a: 11 96 adiw r26, 0x01 ; 1
d59c: 2c 91 ld r18, X
d59e: 11 97 sbiw r26, 0x01 ; 1
d5a0: 2f 93 push r18
d5a2: 2c 91 ld r18, X
d5a4: 2f 93 push r18
d5a6: 2a e0 ldi r18, 0x0A ; 10
d5a8: 30 e0 ldi r19, 0x00 ; 0
d5aa: b9 01 movw r22, r18
d5ac: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
d5b0: 9f 93 push r25
d5b2: 8f 93 push r24
d5b4: c8 01 movw r24, r16
d5b6: b9 01 movw r22, r18
d5b8: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
d5bc: 7f 93 push r23
d5be: 6f 93 push r22
d5c0: 9f 01 movw r18, r30
d5c2: a9 e8 ldi r26, 0x89 ; 137
d5c4: b8 e8 ldi r27, 0x88 ; 136
d5c6: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
d5ca: 96 95 lsr r25
d5cc: 87 95 ror r24
d5ce: 92 95 swap r25
d5d0: 82 95 swap r24
d5d2: 8f 70 andi r24, 0x0F ; 15
d5d4: 89 27 eor r24, r25
d5d6: 9f 70 andi r25, 0x0F ; 15
d5d8: 89 27 eor r24, r25
d5da: 4c e3 ldi r20, 0x3C ; 60
d5dc: 48 9f mul r20, r24
d5de: 90 01 movw r18, r0
d5e0: 49 9f mul r20, r25
d5e2: 30 0d add r19, r0
d5e4: 11 24 eor r1, r1
d5e6: cf 01 movw r24, r30
d5e8: 82 1b sub r24, r18
d5ea: 93 0b sbc r25, r19
d5ec: 9f 93 push r25
d5ee: 8f 93 push r24
d5f0: 9f 01 movw r18, r30
d5f2: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
d5f6: 96 95 lsr r25
d5f8: 87 95 ror r24
d5fa: 92 95 swap r25
d5fc: 82 95 swap r24
d5fe: 8f 70 andi r24, 0x0F ; 15
d600: 89 27 eor r24, r25
d602: 9f 70 andi r25, 0x0F ; 15
d604: 89 27 eor r24, r25
d606: 9f 93 push r25
d608: 8f 93 push r24
d60a: 8b ea ldi r24, 0xAB ; 171
d60c: 99 e0 ldi r25, 0x09 ; 9
d60e: 9f 93 push r25
d610: 8f 93 push r24
d612: 8c e2 ldi r24, 0x2C ; 44
d614: 95 e1 ldi r25, 0x15 ; 21
d616: 9f 93 push r25
d618: 8f 93 push r24
d61a: e0 91 78 06 lds r30, 0x0678
d61e: f0 91 79 06 lds r31, 0x0679
d622: 09 95 icall
d624: 0f b6 in r0, 0x3f ; 63
d626: f8 94 cli
d628: de bf out 0x3e, r29 ; 62
d62a: 0f be out 0x3f, r0 ; 63
d62c: cd bf out 0x3d, r28 ; 61
d62e: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
else HoTT_printfxy(0,0," %2i:%02i %2i.%1iV %4imAh",FlugSekunden/60,FlugSekunden%60,UBat/10, UBat%10,Capacity.UsedCapacity);
d632: 80 e0 ldi r24, 0x00 ; 0
d634: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d638: 80 91 1a 01 lds r24, 0x011A
d63c: 90 91 1b 01 lds r25, 0x011B
d640: 00 91 1a 01 lds r16, 0x011A
d644: 10 91 1b 01 lds r17, 0x011B
d648: e0 91 5e 04 lds r30, 0x045E
d64c: f0 91 5f 04 lds r31, 0x045F
d650: a9 e1 ldi r26, 0x19 ; 25
d652: b5 e0 ldi r27, 0x05 ; 5
d654: 11 96 adiw r26, 0x01 ; 1
d656: 2c 91 ld r18, X
d658: 11 97 sbiw r26, 0x01 ; 1
d65a: 2f 93 push r18
d65c: 2c 91 ld r18, X
d65e: 2f 93 push r18
d660: 2a e0 ldi r18, 0x0A ; 10
d662: 30 e0 ldi r19, 0x00 ; 0
d664: b9 01 movw r22, r18
d666: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
d66a: 9f 93 push r25
d66c: 8f 93 push r24
d66e: c8 01 movw r24, r16
d670: b9 01 movw r22, r18
d672: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
d676: 7f 93 push r23
d678: 6f 93 push r22
d67a: 9f 01 movw r18, r30
d67c: a9 e8 ldi r26, 0x89 ; 137
d67e: b8 e8 ldi r27, 0x88 ; 136
d680: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
d684: 96 95 lsr r25
d686: 87 95 ror r24
d688: 92 95 swap r25
d68a: 82 95 swap r24
d68c: 8f 70 andi r24, 0x0F ; 15
d68e: 89 27 eor r24, r25
d690: 9f 70 andi r25, 0x0F ; 15
d692: 89 27 eor r24, r25
d694: 4c e3 ldi r20, 0x3C ; 60
d696: 48 9f mul r20, r24
d698: 90 01 movw r18, r0
d69a: 49 9f mul r20, r25
d69c: 30 0d add r19, r0
d69e: 11 24 eor r1, r1
d6a0: cf 01 movw r24, r30
d6a2: 82 1b sub r24, r18
d6a4: 93 0b sbc r25, r19
d6a6: 9f 93 push r25
d6a8: 8f 93 push r24
d6aa: 9f 01 movw r18, r30
d6ac: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
d6b0: 96 95 lsr r25
d6b2: 87 95 ror r24
d6b4: 92 95 swap r25
d6b6: 82 95 swap r24
d6b8: 8f 70 andi r24, 0x0F ; 15
d6ba: 89 27 eor r24, r25
d6bc: 9f 70 andi r25, 0x0F ; 15
d6be: 89 27 eor r24, r25
d6c0: 9f 93 push r25
d6c2: 8f 93 push r24
d6c4: 80 e9 ldi r24, 0x90 ; 144
d6c6: 99 e0 ldi r25, 0x09 ; 9
d6c8: 9f 93 push r25
d6ca: 8f 93 push r24
d6cc: 8b e0 ldi r24, 0x0B ; 11
d6ce: 95 e1 ldi r25, 0x15 ; 21
d6d0: 9f 93 push r25
d6d2: 8f 93 push r24
d6d4: e0 91 78 06 lds r30, 0x0678
d6d8: f0 91 79 06 lds r31, 0x0679
d6dc: 09 95 icall
d6de: 0f b6 in r0, 0x3f ; 63
d6e0: f8 94 cli
d6e2: de bf out 0x3e, r29 ; 62
d6e4: 0f be out 0x3f, r0 ; 63
d6e6: cd bf out 0x3d, r28 ; 61
d6e8: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
break;
case 1:
HoTT_printfxy(0,1,"DIR:%3d%c",CompassCorrected, HoTT_GRAD);
d6ec: 85 e1 ldi r24, 0x15 ; 21
d6ee: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d6f2: 1f 92 push r1
d6f4: 80 e6 ldi r24, 0x60 ; 96
d6f6: 8f 93 push r24
d6f8: 80 91 66 06 lds r24, 0x0666
d6fc: 8f 93 push r24
d6fe: 80 91 65 06 lds r24, 0x0665
d702: 8f 93 push r24
d704: 86 e8 ldi r24, 0x86 ; 134
d706: 99 e0 ldi r25, 0x09 ; 9
d708: 9f 93 push r25
d70a: 8f 93 push r24
d70c: 8b e0 ldi r24, 0x0B ; 11
d70e: 95 e1 ldi r25, 0x15 ; 21
d710: 9f 93 push r25
d712: 8f 93 push r24
d714: e0 91 78 06 lds r30, 0x0678
d718: f0 91 79 06 lds r31, 0x0679
d71c: 09 95 icall
if(Parameter_GlobalConfig & CFG_HOEHENREGELUNG)
d71e: 80 91 5c 06 lds r24, 0x065C
d722: 0f b6 in r0, 0x3f ; 63
d724: f8 94 cli
d726: de bf out 0x3e, r29 ; 62
d728: 0f be out 0x3f, r0 ; 63
d72a: cd bf out 0x3d, r28 ; 61
d72c: 80 ff sbrs r24, 0
d72e: 52 c0 rjmp .+164 ; 0xd7d4 <HoTT_Menu+0xb96>
{
if(HoehenReglerAktiv) HoTT_printfxy_INV(10,1,"ALT:%4im", (int16_t)(HoehenWert/100))
d730: 80 91 1b 04 lds r24, 0x041B
d734: 88 23 and r24, r24
d736: 39 f1 breq .+78 ; 0xd786 <HoTT_Menu+0xb48>
d738: 8f e1 ldi r24, 0x1F ; 31
d73a: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d73e: 60 91 fe 03 lds r22, 0x03FE
d742: 70 91 ff 03 lds r23, 0x03FF
d746: 80 91 00 04 lds r24, 0x0400
d74a: 90 91 01 04 lds r25, 0x0401
d74e: 24 e6 ldi r18, 0x64 ; 100
d750: 30 e0 ldi r19, 0x00 ; 0
d752: 40 e0 ldi r20, 0x00 ; 0
d754: 50 e0 ldi r21, 0x00 ; 0
d756: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
d75a: 3f 93 push r19
d75c: 2f 93 push r18
d75e: 8d e7 ldi r24, 0x7D ; 125
d760: 99 e0 ldi r25, 0x09 ; 9
d762: 9f 93 push r25
d764: 8f 93 push r24
d766: 8b e1 ldi r24, 0x1B ; 27
d768: 95 e1 ldi r25, 0x15 ; 21
d76a: 9f 93 push r25
d76c: 8f 93 push r24
d76e: e0 91 78 06 lds r30, 0x0678
d772: f0 91 79 06 lds r31, 0x0679
d776: 09 95 icall
d778: 0f 90 pop r0
d77a: 0f 90 pop r0
d77c: 0f 90 pop r0
d77e: 0f 90 pop r0
d780: 0f 90 pop r0
d782: 0f 90 pop r0
d784: 3b c0 rjmp .+118 ; 0xd7fc <HoTT_Menu+0xbbe>
else HoTT_printfxy(10,1,"ALT:%4im", (int16_t)(HoehenWert/100))
d786: 8f e1 ldi r24, 0x1F ; 31
d788: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d78c: 60 91 fe 03 lds r22, 0x03FE
d790: 70 91 ff 03 lds r23, 0x03FF
d794: 80 91 00 04 lds r24, 0x0400
d798: 90 91 01 04 lds r25, 0x0401
d79c: 24 e6 ldi r18, 0x64 ; 100
d79e: 30 e0 ldi r19, 0x00 ; 0
d7a0: 40 e0 ldi r20, 0x00 ; 0
d7a2: 50 e0 ldi r21, 0x00 ; 0
d7a4: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
d7a8: 3f 93 push r19
d7aa: 2f 93 push r18
d7ac: 84 e7 ldi r24, 0x74 ; 116
d7ae: 99 e0 ldi r25, 0x09 ; 9
d7b0: 9f 93 push r25
d7b2: 8f 93 push r24
d7b4: 8b e0 ldi r24, 0x0B ; 11
d7b6: 95 e1 ldi r25, 0x15 ; 21
d7b8: 9f 93 push r25
d7ba: 8f 93 push r24
d7bc: e0 91 78 06 lds r30, 0x0678
d7c0: f0 91 79 06 lds r31, 0x0679
d7c4: 09 95 icall
d7c6: 0f 90 pop r0
d7c8: 0f 90 pop r0
d7ca: 0f 90 pop r0
d7cc: 0f 90 pop r0
d7ce: 0f 90 pop r0
d7d0: 0f 90 pop r0
d7d2: 14 c0 rjmp .+40 ; 0xd7fc <HoTT_Menu+0xbbe>
}
else HoTT_printfxy(10,1,"ALT:---- ");
d7d4: 8f e1 ldi r24, 0x1F ; 31
d7d6: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d7da: 8a e6 ldi r24, 0x6A ; 106
d7dc: 99 e0 ldi r25, 0x09 ; 9
d7de: 9f 93 push r25
d7e0: 8f 93 push r24
d7e2: 8b e0 ldi r24, 0x0B ; 11
d7e4: 95 e1 ldi r25, 0x15 ; 21
d7e6: 9f 93 push r25
d7e8: 8f 93 push r24
d7ea: e0 91 78 06 lds r30, 0x0678
d7ee: f0 91 79 06 lds r31, 0x0679
d7f2: 09 95 icall
d7f4: 0f 90 pop r0
d7f6: 0f 90 pop r0
d7f8: 0f 90 pop r0
d7fa: 0f 90 pop r0
HoTT_printfxy(20,1,"%c",VarioCharacter);
d7fc: 89 e2 ldi r24, 0x29 ; 41
d7fe: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d802: 80 91 20 01 lds r24, 0x0120
d806: 1f 92 push r1
d808: 8f 93 push r24
d80a: 87 e6 ldi r24, 0x67 ; 103
d80c: 99 e0 ldi r25, 0x09 ; 9
d80e: 9f 93 push r25
d810: 8f 93 push r24
d812: 8b e0 ldi r24, 0x0B ; 11
d814: 95 e1 ldi r25, 0x15 ; 21
d816: 9f 93 push r25
d818: 8f 93 push r24
d81a: e0 91 78 06 lds r30, 0x0678
d81e: f0 91 79 06 lds r31, 0x0679
d822: 09 95 icall
break;
d824: 0f 90 pop r0
d826: 0f 90 pop r0
d828: 0f 90 pop r0
d82a: 0f 90 pop r0
d82c: 0f 90 pop r0
d82e: 0f 90 pop r0
d830: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
case 2:
if(NaviDataOkay)
d834: 80 91 a4 02 lds r24, 0x02A4
d838: 88 23 and r24, r24
d83a: a1 f1 breq .+104 ; 0xd8a4 <HoTT_Menu+0xc66>
{
HoTT_printfxy(1,2,"HM:%3d%c DIST:%3dm %c", GPSInfo.HomeBearing, HoTT_GRAD, GPSInfo.HomeDistance/10, NC_GPS_ModeCharacter);
d83c: 8b e2 ldi r24, 0x2B ; 43
d83e: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d842: 80 91 96 02 lds r24, 0x0296
d846: 1f 92 push r1
d848: 8f 93 push r24
d84a: 20 91 db 08 lds r18, 0x08DB
d84e: 30 91 dc 08 lds r19, 0x08DC
d852: ad ec ldi r26, 0xCD ; 205
d854: bc ec ldi r27, 0xCC ; 204
d856: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
d85a: 96 95 lsr r25
d85c: 87 95 ror r24
d85e: 96 95 lsr r25
d860: 87 95 ror r24
d862: 96 95 lsr r25
d864: 87 95 ror r24
d866: 9f 93 push r25
d868: 8f 93 push r24
d86a: 1f 92 push r1
d86c: 80 e6 ldi r24, 0x60 ; 96
d86e: 8f 93 push r24
d870: ed ed ldi r30, 0xDD ; 221
d872: f8 e0 ldi r31, 0x08 ; 8
d874: 81 81 ldd r24, Z+1 ; 0x01
d876: 8f 93 push r24
d878: 80 81 ld r24, Z
d87a: 8f 93 push r24
d87c: 80 e5 ldi r24, 0x50 ; 80
d87e: 99 e0 ldi r25, 0x09 ; 9
d880: 9f 93 push r25
d882: 8f 93 push r24
d884: 8b e0 ldi r24, 0x0B ; 11
d886: 95 e1 ldi r25, 0x15 ; 21
d888: 9f 93 push r25
d88a: 8f 93 push r24
d88c: e0 91 78 06 lds r30, 0x0678
d890: f0 91 79 06 lds r31, 0x0679
d894: 09 95 icall
d896: 0f b6 in r0, 0x3f ; 63
d898: f8 94 cli
d89a: de bf out 0x3e, r29 ; 62
d89c: 0f be out 0x3f, r0 ; 63
d89e: cd bf out 0x3d, r28 ; 61
d8a0: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
else
{
Hott_ClearLine(2);
d8a4: 82 e0 ldi r24, 0x02 ; 2
d8a6: 0e 94 b4 60 call 0xc168 ; 0xc168 <Hott_ClearLine>
d8aa: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
break;
case 3:
HoTT_printfxy(0,3,"PWR:%2i.%1iA (%iW) ",Capacity.ActualCurrent/10, Capacity.ActualCurrent%10,Capacity.ActualPower);
d8ae: 8f e3 ldi r24, 0x3F ; 63
d8b0: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d8b4: 40 91 15 05 lds r20, 0x0515
d8b8: 50 91 16 05 lds r21, 0x0516
d8bc: e7 e1 ldi r30, 0x17 ; 23
d8be: f5 e0 ldi r31, 0x05 ; 5
d8c0: 81 81 ldd r24, Z+1 ; 0x01
d8c2: 8f 93 push r24
d8c4: 80 81 ld r24, Z
d8c6: 8f 93 push r24
d8c8: 9a 01 movw r18, r20
d8ca: ad ec ldi r26, 0xCD ; 205
d8cc: bc ec ldi r27, 0xCC ; 204
d8ce: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
d8d2: 96 95 lsr r25
d8d4: 87 95 ror r24
d8d6: 96 95 lsr r25
d8d8: 87 95 ror r24
d8da: 96 95 lsr r25
d8dc: 87 95 ror r24
d8de: 9c 01 movw r18, r24
d8e0: 22 0f add r18, r18
d8e2: 33 1f adc r19, r19
d8e4: 88 0f add r24, r24
d8e6: 99 1f adc r25, r25
d8e8: 88 0f add r24, r24
d8ea: 99 1f adc r25, r25
d8ec: 88 0f add r24, r24
d8ee: 99 1f adc r25, r25
d8f0: 82 0f add r24, r18
d8f2: 93 1f adc r25, r19
d8f4: fa 01 movw r30, r20
d8f6: e8 1b sub r30, r24
d8f8: f9 0b sbc r31, r25
d8fa: cf 01 movw r24, r30
d8fc: 9f 93 push r25
d8fe: ef 93 push r30
d900: 9a 01 movw r18, r20
d902: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
d906: 96 95 lsr r25
d908: 87 95 ror r24
d90a: 96 95 lsr r25
d90c: 87 95 ror r24
d90e: 96 95 lsr r25
d910: 87 95 ror r24
d912: 9f 93 push r25
d914: 8f 93 push r24
d916: 8c e3 ldi r24, 0x3C ; 60
d918: 99 e0 ldi r25, 0x09 ; 9
d91a: 9f 93 push r25
d91c: 8f 93 push r24
d91e: 8b e0 ldi r24, 0x0B ; 11
d920: 95 e1 ldi r25, 0x15 ; 21
d922: 9f 93 push r25
d924: 8f 93 push r24
d926: e0 91 78 06 lds r30, 0x0678
d92a: f0 91 79 06 lds r31, 0x0679
d92e: 09 95 icall
if(FC_StatusFlags2 & FC_STATUS2_CAREFREE) HoTT_printfxy_INV(19,3,"CF") else HoTT_printfxy(19,3," ");
d930: 80 91 ca 03 lds r24, 0x03CA
d934: 0f b6 in r0, 0x3f ; 63
d936: f8 94 cli
d938: de bf out 0x3e, r29 ; 62
d93a: 0f be out 0x3f, r0 ; 63
d93c: cd bf out 0x3d, r28 ; 61
d93e: 80 ff sbrs r24, 0
d940: 16 c0 rjmp .+44 ; 0xd96e <HoTT_Menu+0xd30>
d942: 82 e5 ldi r24, 0x52 ; 82
d944: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d948: 89 e3 ldi r24, 0x39 ; 57
d94a: 99 e0 ldi r25, 0x09 ; 9
d94c: 9f 93 push r25
d94e: 8f 93 push r24
d950: 8b e1 ldi r24, 0x1B ; 27
d952: 95 e1 ldi r25, 0x15 ; 21
d954: 9f 93 push r25
d956: 8f 93 push r24
d958: e0 91 78 06 lds r30, 0x0678
d95c: f0 91 79 06 lds r31, 0x0679
d960: 09 95 icall
d962: 0f 90 pop r0
d964: 0f 90 pop r0
d966: 0f 90 pop r0
d968: 0f 90 pop r0
d96a: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
d96e: 82 e5 ldi r24, 0x52 ; 82
d970: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d974: 86 e3 ldi r24, 0x36 ; 54
d976: 99 e0 ldi r25, 0x09 ; 9
d978: 9f 93 push r25
d97a: 8f 93 push r24
d97c: 8b e0 ldi r24, 0x0B ; 11
d97e: 95 e1 ldi r25, 0x15 ; 21
d980: 9f 93 push r25
d982: 8f 93 push r24
d984: e0 91 78 06 lds r30, 0x0678
d988: f0 91 79 06 lds r31, 0x0679
d98c: 09 95 icall
d98e: 0f 90 pop r0
d990: 0f 90 pop r0
d992: 0f 90 pop r0
d994: 0f 90 pop r0
d996: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
break;
case 4:
if(NaviDataOkay)
d99a: 80 91 a4 02 lds r24, 0x02A4
d99e: 88 23 and r24, r24
d9a0: 09 f4 brne .+2 ; 0xd9a4 <HoTT_Menu+0xd66>
d9a2: 66 c0 rjmp .+204 ; 0xda70 <HoTT_Menu+0xe32>
{
HoTT_printfxy(0,4,"GPS:%2um/s SAT:%d ",GPSInfo.Speed,GPSInfo.NumOfSats);
d9a4: 84 e5 ldi r24, 0x54 ; 84
d9a6: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d9aa: 80 91 d8 08 lds r24, 0x08D8
d9ae: 1f 92 push r1
d9b0: 8f 93 push r24
d9b2: 80 91 da 08 lds r24, 0x08DA
d9b6: 1f 92 push r1
d9b8: 8f 93 push r24
d9ba: 83 e2 ldi r24, 0x23 ; 35
d9bc: 99 e0 ldi r25, 0x09 ; 9
d9be: 9f 93 push r25
d9c0: 8f 93 push r24
d9c2: 8b e0 ldi r24, 0x0B ; 11
d9c4: 95 e1 ldi r25, 0x15 ; 21
d9c6: 9f 93 push r25
d9c8: 8f 93 push r24
d9ca: e0 91 78 06 lds r30, 0x0678
d9ce: f0 91 79 06 lds r31, 0x0679
d9d2: 09 95 icall
switch (GPSInfo.SatFix)
d9d4: 0f b6 in r0, 0x3f ; 63
d9d6: f8 94 cli
d9d8: de bf out 0x3e, r29 ; 62
d9da: 0f be out 0x3f, r0 ; 63
d9dc: cd bf out 0x3d, r28 ; 61
d9de: 80 91 d9 08 lds r24, 0x08D9
d9e2: 83 30 cpi r24, 0x03 ; 3
d9e4: a9 f4 brne .+42 ; 0xda10 <HoTT_Menu+0xdd2>
{
case SATFIX_3D:
HoTT_printfxy(16,4," 3D ");
d9e6: 84 e6 ldi r24, 0x64 ; 100
d9e8: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
d9ec: 8d e1 ldi r24, 0x1D ; 29
d9ee: 99 e0 ldi r25, 0x09 ; 9
d9f0: 9f 93 push r25
d9f2: 8f 93 push r24
d9f4: 8b e0 ldi r24, 0x0B ; 11
d9f6: 95 e1 ldi r25, 0x15 ; 21
d9f8: 9f 93 push r25
d9fa: 8f 93 push r24
d9fc: e0 91 78 06 lds r30, 0x0678
da00: f0 91 79 06 lds r31, 0x0679
da04: 09 95 icall
break;
da06: 0f 90 pop r0
da08: 0f 90 pop r0
da0a: 0f 90 pop r0
da0c: 0f 90 pop r0
da0e: 14 c0 rjmp .+40 ; 0xda38 <HoTT_Menu+0xdfa>
//case SATFIX_2D:
//case SATFIX_NONE:
default:
HoTT_printfxy_BLINK(16,4,"NOFIX");
da10: 84 e6 ldi r24, 0x64 ; 100
da12: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
da16: 87 e1 ldi r24, 0x17 ; 23
da18: 99 e0 ldi r25, 0x09 ; 9
da1a: 9f 93 push r25
da1c: 8f 93 push r24
da1e: 8c e2 ldi r24, 0x2C ; 44
da20: 95 e1 ldi r25, 0x15 ; 21
da22: 9f 93 push r25
da24: 8f 93 push r24
da26: e0 91 78 06 lds r30, 0x0678
da2a: f0 91 79 06 lds r31, 0x0679
da2e: 09 95 icall
break;
da30: 0f 90 pop r0
da32: 0f 90 pop r0
da34: 0f 90 pop r0
da36: 0f 90 pop r0
}
if(GPSInfo.Flags & FLAG_DIFFSOLN)
da38: 80 91 d7 08 lds r24, 0x08D7
da3c: 81 fd sbrc r24, 1
da3e: 02 c0 rjmp .+4 ; 0xda44 <HoTT_Menu+0xe06>
da40: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
{
HoTT_printfxy(16,4,"DGPS ");
da44: 84 e6 ldi r24, 0x64 ; 100
da46: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
da4a: 81 e1 ldi r24, 0x11 ; 17
da4c: 99 e0 ldi r25, 0x09 ; 9
da4e: 9f 93 push r25
da50: 8f 93 push r24
da52: 8b e0 ldi r24, 0x0B ; 11
da54: 95 e1 ldi r25, 0x15 ; 21
da56: 9f 93 push r25
da58: 8f 93 push r24
da5a: e0 91 78 06 lds r30, 0x0678
da5e: f0 91 79 06 lds r31, 0x0679
da62: 09 95 icall
da64: 0f 90 pop r0
da66: 0f 90 pop r0
da68: 0f 90 pop r0
da6a: 0f 90 pop r0
da6c: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
}
else
{ //012345678901234567890
HoTT_printfxy(0,4," No NaviCtrl ");
da70: 84 e5 ldi r24, 0x54 ; 84
da72: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
da76: 8b ef ldi r24, 0xFB ; 251
da78: 98 e0 ldi r25, 0x08 ; 8
da7a: 9f 93 push r25
da7c: 8f 93 push r24
da7e: 8b e0 ldi r24, 0x0B ; 11
da80: 95 e1 ldi r25, 0x15 ; 21
da82: 9f 93 push r25
da84: 8f 93 push r24
da86: e0 91 78 06 lds r30, 0x0678
da8a: f0 91 79 06 lds r31, 0x0679
da8e: 09 95 icall
da90: 0f 90 pop r0
da92: 0f 90 pop r0
da94: 0f 90 pop r0
da96: 0f 90 pop r0
da98: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
break;
case 5:
if(show_current)
da9c: 80 91 73 04 lds r24, 0x0473
daa0: 88 23 and r24, r24
daa2: 09 f4 brne .+2 ; 0xdaa6 <HoTT_Menu+0xe68>
daa4: c6 c0 rjmp .+396 ; 0xdc32 <HoTT_Menu+0xff4>
{
// HoTT_printfxy(0,5,"%2i.%i %2i.%i %2i.%i %2i.%iA", Motor[0].Current/10,Motor[0].Current%10,Motor[1].Current/10,Motor[1].Current%10,Motor[2].Current/10,Motor[2].Current%10,Motor[3].Current/10,Motor[3].Current%10);
HoTT_printfxy(0,5,"%2i.%i %2i.%i %2i.%i %2i.%iA", BL3_Current(0)/10,BL3_Current(0)%10,BL3_Current(1)/10,BL3_Current(1)%10,BL3_Current(2)/10,BL3_Current(2)%10,BL3_Current(3)/10,BL3_Current(3)%10);
daa6: 89 e6 ldi r24, 0x69 ; 105
daa8: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
daac: 40 90 78 06 lds r4, 0x0678
dab0: 50 90 79 06 lds r5, 0x0679
dab4: 83 e0 ldi r24, 0x03 ; 3
dab6: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
daba: 6c 01 movw r12, r24
dabc: 83 e0 ldi r24, 0x03 ; 3
dabe: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dac2: 4c 01 movw r8, r24
dac4: 82 e0 ldi r24, 0x02 ; 2
dac6: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
daca: 7c 01 movw r14, r24
dacc: 82 e0 ldi r24, 0x02 ; 2
dace: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dad2: 5c 01 movw r10, r24
dad4: 81 e0 ldi r24, 0x01 ; 1
dad6: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dada: 8c 01 movw r16, r24
dadc: 81 e0 ldi r24, 0x01 ; 1
dade: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dae2: 3c 01 movw r6, r24
dae4: 80 e0 ldi r24, 0x00 ; 0
dae6: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
daea: 1c 01 movw r2, r24
daec: 80 e0 ldi r24, 0x00 ; 0
daee: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
daf2: ac 01 movw r20, r24
daf4: 96 01 movw r18, r12
daf6: ad ec ldi r26, 0xCD ; 205
daf8: bc ec ldi r27, 0xCC ; 204
dafa: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
dafe: 96 95 lsr r25
db00: 87 95 ror r24
db02: 96 95 lsr r25
db04: 87 95 ror r24
db06: 96 95 lsr r25
db08: 87 95 ror r24
db0a: 9c 01 movw r18, r24
db0c: 22 0f add r18, r18
db0e: 33 1f adc r19, r19
db10: 88 0f add r24, r24
db12: 99 1f adc r25, r25
db14: 88 0f add r24, r24
db16: 99 1f adc r25, r25
db18: 88 0f add r24, r24
db1a: 99 1f adc r25, r25
db1c: 82 0f add r24, r18
db1e: 93 1f adc r25, r19
db20: c8 1a sub r12, r24
db22: d9 0a sbc r13, r25
db24: df 92 push r13
db26: cf 92 push r12
db28: 94 01 movw r18, r8
db2a: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
db2e: 96 95 lsr r25
db30: 87 95 ror r24
db32: 96 95 lsr r25
db34: 87 95 ror r24
db36: 96 95 lsr r25
db38: 87 95 ror r24
db3a: 9f 93 push r25
db3c: 8f 93 push r24
db3e: 97 01 movw r18, r14
db40: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
db44: 96 95 lsr r25
db46: 87 95 ror r24
db48: 96 95 lsr r25
db4a: 87 95 ror r24
db4c: 96 95 lsr r25
db4e: 87 95 ror r24
db50: 9c 01 movw r18, r24
db52: 22 0f add r18, r18
db54: 33 1f adc r19, r19
db56: 88 0f add r24, r24
db58: 99 1f adc r25, r25
db5a: 88 0f add r24, r24
db5c: 99 1f adc r25, r25
db5e: 88 0f add r24, r24
db60: 99 1f adc r25, r25
db62: 82 0f add r24, r18
db64: 93 1f adc r25, r19
db66: e8 1a sub r14, r24
db68: f9 0a sbc r15, r25
db6a: ff 92 push r15
db6c: ef 92 push r14
db6e: 95 01 movw r18, r10
db70: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
db74: 96 95 lsr r25
db76: 87 95 ror r24
db78: 96 95 lsr r25
db7a: 87 95 ror r24
db7c: 96 95 lsr r25
db7e: 87 95 ror r24
db80: 9f 93 push r25
db82: 8f 93 push r24
db84: 98 01 movw r18, r16
db86: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
db8a: 96 95 lsr r25
db8c: 87 95 ror r24
db8e: 96 95 lsr r25
db90: 87 95 ror r24
db92: 96 95 lsr r25
db94: 87 95 ror r24
db96: 9c 01 movw r18, r24
db98: 22 0f add r18, r18
db9a: 33 1f adc r19, r19
db9c: 88 0f add r24, r24
db9e: 99 1f adc r25, r25
dba0: 88 0f add r24, r24
dba2: 99 1f adc r25, r25
dba4: 88 0f add r24, r24
dba6: 99 1f adc r25, r25
dba8: 82 0f add r24, r18
dbaa: 93 1f adc r25, r19
dbac: 08 1b sub r16, r24
dbae: 19 0b sbc r17, r25
dbb0: 1f 93 push r17
dbb2: 0f 93 push r16
dbb4: 93 01 movw r18, r6
dbb6: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
dbba: 96 95 lsr r25
dbbc: 87 95 ror r24
dbbe: 96 95 lsr r25
dbc0: 87 95 ror r24
dbc2: 96 95 lsr r25
dbc4: 87 95 ror r24
dbc6: 9f 93 push r25
dbc8: 8f 93 push r24
dbca: 91 01 movw r18, r2
dbcc: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
dbd0: 96 95 lsr r25
dbd2: 87 95 ror r24
dbd4: 96 95 lsr r25
dbd6: 87 95 ror r24
dbd8: 96 95 lsr r25
dbda: 87 95 ror r24
dbdc: 9c 01 movw r18, r24
dbde: 22 0f add r18, r18
dbe0: 33 1f adc r19, r19
dbe2: 88 0f add r24, r24
dbe4: 99 1f adc r25, r25
dbe6: 88 0f add r24, r24
dbe8: 99 1f adc r25, r25
dbea: 88 0f add r24, r24
dbec: 99 1f adc r25, r25
dbee: 82 0f add r24, r18
dbf0: 93 1f adc r25, r19
dbf2: 28 1a sub r2, r24
dbf4: 39 0a sbc r3, r25
dbf6: 3f 92 push r3
dbf8: 2f 92 push r2
dbfa: 9a 01 movw r18, r20
dbfc: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
dc00: 96 95 lsr r25
dc02: 87 95 ror r24
dc04: 96 95 lsr r25
dc06: 87 95 ror r24
dc08: 96 95 lsr r25
dc0a: 87 95 ror r24
dc0c: 9f 93 push r25
dc0e: 8f 93 push r24
dc10: 8e ed ldi r24, 0xDE ; 222
dc12: 98 e0 ldi r25, 0x08 ; 8
dc14: 9f 93 push r25
dc16: 8f 93 push r24
dc18: 8b e0 ldi r24, 0x0B ; 11
dc1a: 95 e1 ldi r25, 0x15 ; 21
dc1c: 9f 93 push r25
dc1e: 8f 93 push r24
dc20: f2 01 movw r30, r4
dc22: 09 95 icall
dc24: 0f b6 in r0, 0x3f ; 63
dc26: f8 94 cli
dc28: de bf out 0x3e, r29 ; 62
dc2a: 0f be out 0x3f, r0 ; 63
dc2c: cd bf out 0x3d, r28 ; 61
dc2e: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
else
{
HoTT_printfxy(0,5,"%3i %3i %3i %3i%cC", Motor[0].Temperature, Motor[1].Temperature, Motor[2].Temperature, Motor[3].Temperature,HoTT_GRAD);
dc32: 89 e6 ldi r24, 0x69 ; 105
dc34: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
dc38: 1f 92 push r1
dc3a: 80 e6 ldi r24, 0x60 ; 96
dc3c: 8f 93 push r24
dc3e: 80 91 cb 09 lds r24, 0x09CB
dc42: 1f 92 push r1
dc44: 8f 93 push r24
dc46: 80 91 bc 09 lds r24, 0x09BC
dc4a: 1f 92 push r1
dc4c: 8f 93 push r24
dc4e: 80 91 ad 09 lds r24, 0x09AD
dc52: 1f 92 push r1
dc54: 8f 93 push r24
dc56: 80 91 9e 09 lds r24, 0x099E
dc5a: 1f 92 push r1
dc5c: 8f 93 push r24
dc5e: 8b ec ldi r24, 0xCB ; 203
dc60: 98 e0 ldi r25, 0x08 ; 8
dc62: 9f 93 push r25
dc64: 8f 93 push r24
dc66: 8b e0 ldi r24, 0x0B ; 11
dc68: 95 e1 ldi r25, 0x15 ; 21
dc6a: 9f 93 push r25
dc6c: 8f 93 push r24
dc6e: e0 91 78 06 lds r30, 0x0678
dc72: f0 91 79 06 lds r31, 0x0679
dc76: 09 95 icall
dc78: 0f b6 in r0, 0x3f ; 63
dc7a: f8 94 cli
dc7c: de bf out 0x3e, r29 ; 62
dc7e: 0f be out 0x3f, r0 ; 63
dc80: cd bf out 0x3d, r28 ; 61
dc82: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
break;
case 6:
if(show_current)
dc86: 80 91 73 04 lds r24, 0x0473
dc8a: 88 23 and r24, r24
dc8c: 09 f4 brne .+2 ; 0xdc90 <HoTT_Menu+0x1052>
dc8e: 4a c1 rjmp .+660 ; 0xdf24 <HoTT_Menu+0x12e6>
{
if(RequiredMotors == 4) Hott_ClearLine(6);
dc90: 80 91 3d 05 lds r24, 0x053D
dc94: 84 30 cpi r24, 0x04 ; 4
dc96: 29 f4 brne .+10 ; 0xdca2 <HoTT_Menu+0x1064>
dc98: 86 e0 ldi r24, 0x06 ; 6
dc9a: 0e 94 b4 60 call 0xc168 ; 0xc168 <Hott_ClearLine>
dc9e: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
else
// if(RequiredMotors == 6) HoTT_printfxy(0,6,"%2i.%i %2i.%iA", Motor[4].Current/10,Motor[4].Current%10,Motor[5].Current/10,Motor[5].Current%10)
if(RequiredMotors == 6) HoTT_printfxy(0,6,"%2i.%i %2i.%iA", BL3_Current(4)/10,BL3_Current(4)%10, BL3_Current(5)/10,BL3_Current(5)%10)
dca2: 86 30 cpi r24, 0x06 ; 6
dca4: 09 f0 breq .+2 ; 0xdca8 <HoTT_Menu+0x106a>
dca6: 42 c0 rjmp .+132 ; 0xdd2c <HoTT_Menu+0x10ee>
dca8: 8e e7 ldi r24, 0x7E ; 126
dcaa: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
dcae: a0 90 78 06 lds r10, 0x0678
dcb2: b0 90 79 06 lds r11, 0x0679
dcb6: 85 e0 ldi r24, 0x05 ; 5
dcb8: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dcbc: 6c 01 movw r12, r24
dcbe: 85 e0 ldi r24, 0x05 ; 5
dcc0: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dcc4: 7c 01 movw r14, r24
dcc6: 84 e0 ldi r24, 0x04 ; 4
dcc8: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dccc: 8c 01 movw r16, r24
dcce: 84 e0 ldi r24, 0x04 ; 4
dcd0: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dcd4: fc 01 movw r30, r24
dcd6: 2a e0 ldi r18, 0x0A ; 10
dcd8: 30 e0 ldi r19, 0x00 ; 0
dcda: c6 01 movw r24, r12
dcdc: b9 01 movw r22, r18
dcde: 0e 94 42 b1 call 0x16284 ; 0x16284 <__udivmodhi4>
dce2: 9f 93 push r25
dce4: 8f 93 push r24
dce6: c7 01 movw r24, r14
dce8: b9 01 movw r22, r18
dcea: 0e 94 42 b1 call 0x16284 ; 0x16284 <__udivmodhi4>
dcee: 7f 93 push r23
dcf0: 6f 93 push r22
dcf2: c8 01 movw r24, r16
dcf4: b9 01 movw r22, r18
dcf6: 0e 94 42 b1 call 0x16284 ; 0x16284 <__udivmodhi4>
dcfa: 9f 93 push r25
dcfc: 8f 93 push r24
dcfe: cf 01 movw r24, r30
dd00: b9 01 movw r22, r18
dd02: 0e 94 42 b1 call 0x16284 ; 0x16284 <__udivmodhi4>
dd06: 7f 93 push r23
dd08: 6f 93 push r22
dd0a: 8c eb ldi r24, 0xBC ; 188
dd0c: 98 e0 ldi r25, 0x08 ; 8
dd0e: 9f 93 push r25
dd10: 8f 93 push r24
dd12: 8b e0 ldi r24, 0x0B ; 11
dd14: 95 e1 ldi r25, 0x15 ; 21
dd16: 9f 93 push r25
dd18: 8f 93 push r24
dd1a: f5 01 movw r30, r10
dd1c: 09 95 icall
dd1e: 0f b6 in r0, 0x3f ; 63
dd20: f8 94 cli
dd22: de bf out 0x3e, r29 ; 62
dd24: 0f be out 0x3f, r0 ; 63
dd26: cd bf out 0x3d, r28 ; 61
dd28: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
else
// if(RequiredMotors > 6) HoTT_printfxy(0,6,"%2i.%i %2i.%i %2i.%i %2i.%iA", Motor[4].Current/10,Motor[4].Current%10,Motor[5].Current/10,Motor[5].Current%10,Motor[6].Current/10,Motor[6].Current%10,Motor[7].Current/10,Motor[7].Current%10);
if(RequiredMotors > 6) HoTT_printfxy(0,6,"%2i.%i %2i.%i %2i.%i %2i.%iA", BL3_Current(4)/10,BL3_Current(4)%10,BL3_Current(5)/10,BL3_Current(5)%10,BL3_Current(6)/10,BL3_Current(6)%10,BL3_Current(7)/10,BL3_Current(7)%10,BL3_Current(8)/10,BL3_Current(8)%10);
dd2c: 87 30 cpi r24, 0x07 ; 7
dd2e: 10 f4 brcc .+4 ; 0xdd34 <HoTT_Menu+0x10f6>
dd30: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
dd34: 8e e7 ldi r24, 0x7E ; 126
dd36: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
dd3a: 80 91 78 06 lds r24, 0x0678
dd3e: 90 91 79 06 lds r25, 0x0679
dd42: 9a 83 std Y+2, r25 ; 0x02
dd44: 89 83 std Y+1, r24 ; 0x01
dd46: 88 e0 ldi r24, 0x08 ; 8
dd48: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dd4c: 5c 01 movw r10, r24
dd4e: 88 e0 ldi r24, 0x08 ; 8
dd50: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dd54: 4c 01 movw r8, r24
dd56: 87 e0 ldi r24, 0x07 ; 7
dd58: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dd5c: 6c 01 movw r12, r24
dd5e: 87 e0 ldi r24, 0x07 ; 7
dd60: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dd64: 3c 01 movw r6, r24
dd66: 86 e0 ldi r24, 0x06 ; 6
dd68: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dd6c: 7c 01 movw r14, r24
dd6e: 86 e0 ldi r24, 0x06 ; 6
dd70: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dd74: 2c 01 movw r4, r24
dd76: 85 e0 ldi r24, 0x05 ; 5
dd78: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dd7c: 8c 01 movw r16, r24
dd7e: 85 e0 ldi r24, 0x05 ; 5
dd80: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dd84: 1c 01 movw r2, r24
dd86: 84 e0 ldi r24, 0x04 ; 4
dd88: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dd8c: 9c 83 std Y+4, r25 ; 0x04
dd8e: 8b 83 std Y+3, r24 ; 0x03
dd90: 84 e0 ldi r24, 0x04 ; 4
dd92: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
dd96: ac 01 movw r20, r24
dd98: 95 01 movw r18, r10
dd9a: ad ec ldi r26, 0xCD ; 205
dd9c: bc ec ldi r27, 0xCC ; 204
dd9e: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
dda2: 96 95 lsr r25
dda4: 87 95 ror r24
dda6: 96 95 lsr r25
dda8: 87 95 ror r24
ddaa: 96 95 lsr r25
ddac: 87 95 ror r24
ddae: 9c 01 movw r18, r24
ddb0: 22 0f add r18, r18
ddb2: 33 1f adc r19, r19
ddb4: 88 0f add r24, r24
ddb6: 99 1f adc r25, r25
ddb8: 88 0f add r24, r24
ddba: 99 1f adc r25, r25
ddbc: 88 0f add r24, r24
ddbe: 99 1f adc r25, r25
ddc0: 82 0f add r24, r18
ddc2: 93 1f adc r25, r19
ddc4: a8 1a sub r10, r24
ddc6: b9 0a sbc r11, r25
ddc8: bf 92 push r11
ddca: af 92 push r10
ddcc: 94 01 movw r18, r8
ddce: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
ddd2: 96 95 lsr r25
ddd4: 87 95 ror r24
ddd6: 96 95 lsr r25
ddd8: 87 95 ror r24
ddda: 96 95 lsr r25
dddc: 87 95 ror r24
ddde: 9f 93 push r25
dde0: 8f 93 push r24
dde2: 96 01 movw r18, r12
dde4: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
dde8: 96 95 lsr r25
ddea: 87 95 ror r24
ddec: 96 95 lsr r25
ddee: 87 95 ror r24
ddf0: 96 95 lsr r25
ddf2: 87 95 ror r24
ddf4: 9c 01 movw r18, r24
ddf6: 22 0f add r18, r18
ddf8: 33 1f adc r19, r19
ddfa: 88 0f add r24, r24
ddfc: 99 1f adc r25, r25
ddfe: 88 0f add r24, r24
de00: 99 1f adc r25, r25
de02: 88 0f add r24, r24
de04: 99 1f adc r25, r25
de06: 82 0f add r24, r18
de08: 93 1f adc r25, r19
de0a: c8 1a sub r12, r24
de0c: d9 0a sbc r13, r25
de0e: df 92 push r13
de10: cf 92 push r12
de12: 93 01 movw r18, r6
de14: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
de18: 96 95 lsr r25
de1a: 87 95 ror r24
de1c: 96 95 lsr r25
de1e: 87 95 ror r24
de20: 96 95 lsr r25
de22: 87 95 ror r24
de24: 9f 93 push r25
de26: 8f 93 push r24
de28: 97 01 movw r18, r14
de2a: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
de2e: 96 95 lsr r25
de30: 87 95 ror r24
de32: 96 95 lsr r25
de34: 87 95 ror r24
de36: 96 95 lsr r25
de38: 87 95 ror r24
de3a: 9c 01 movw r18, r24
de3c: 22 0f add r18, r18
de3e: 33 1f adc r19, r19
de40: 88 0f add r24, r24
de42: 99 1f adc r25, r25
de44: 88 0f add r24, r24
de46: 99 1f adc r25, r25
de48: 88 0f add r24, r24
de4a: 99 1f adc r25, r25
de4c: 82 0f add r24, r18
de4e: 93 1f adc r25, r19
de50: e8 1a sub r14, r24
de52: f9 0a sbc r15, r25
de54: ff 92 push r15
de56: ef 92 push r14
de58: 92 01 movw r18, r4
de5a: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
de5e: 96 95 lsr r25
de60: 87 95 ror r24
de62: 96 95 lsr r25
de64: 87 95 ror r24
de66: 96 95 lsr r25
de68: 87 95 ror r24
de6a: 9f 93 push r25
de6c: 8f 93 push r24
de6e: 98 01 movw r18, r16
de70: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
de74: 96 95 lsr r25
de76: 87 95 ror r24
de78: 96 95 lsr r25
de7a: 87 95 ror r24
de7c: 96 95 lsr r25
de7e: 87 95 ror r24
de80: 9c 01 movw r18, r24
de82: 22 0f add r18, r18
de84: 33 1f adc r19, r19
de86: 88 0f add r24, r24
de88: 99 1f adc r25, r25
de8a: 88 0f add r24, r24
de8c: 99 1f adc r25, r25
de8e: 88 0f add r24, r24
de90: 99 1f adc r25, r25
de92: 82 0f add r24, r18
de94: 93 1f adc r25, r19
de96: 08 1b sub r16, r24
de98: 19 0b sbc r17, r25
de9a: 1f 93 push r17
de9c: 0f 93 push r16
de9e: 91 01 movw r18, r2
dea0: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
dea4: 96 95 lsr r25
dea6: 87 95 ror r24
dea8: 96 95 lsr r25
deaa: 87 95 ror r24
deac: 96 95 lsr r25
deae: 87 95 ror r24
deb0: 9f 93 push r25
deb2: 8f 93 push r24
deb4: 2b 81 ldd r18, Y+3 ; 0x03
deb6: 3c 81 ldd r19, Y+4 ; 0x04
deb8: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
debc: 96 95 lsr r25
debe: 87 95 ror r24
dec0: 96 95 lsr r25
dec2: 87 95 ror r24
dec4: 96 95 lsr r25
dec6: 87 95 ror r24
dec8: 9c 01 movw r18, r24
deca: 22 0f add r18, r18
decc: 33 1f adc r19, r19
dece: 88 0f add r24, r24
ded0: 99 1f adc r25, r25
ded2: 88 0f add r24, r24
ded4: 99 1f adc r25, r25
ded6: 88 0f add r24, r24
ded8: 99 1f adc r25, r25
deda: 82 0f add r24, r18
dedc: 93 1f adc r25, r19
dede: 2b 81 ldd r18, Y+3 ; 0x03
dee0: 3c 81 ldd r19, Y+4 ; 0x04
dee2: 28 1b sub r18, r24
dee4: 39 0b sbc r19, r25
dee6: 3f 93 push r19
dee8: 2f 93 push r18
deea: 9a 01 movw r18, r20
deec: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
def0: 96 95 lsr r25
def2: 87 95 ror r24
def4: 96 95 lsr r25
def6: 87 95 ror r24
def8: 96 95 lsr r25
defa: 87 95 ror r24
defc: 9f 93 push r25
defe: 8f 93 push r24
df00: 8f e9 ldi r24, 0x9F ; 159
df02: 98 e0 ldi r25, 0x08 ; 8
df04: 9f 93 push r25
df06: 8f 93 push r24
df08: 8b e0 ldi r24, 0x0B ; 11
df0a: 95 e1 ldi r25, 0x15 ; 21
df0c: 9f 93 push r25
df0e: 8f 93 push r24
df10: e9 81 ldd r30, Y+1 ; 0x01
df12: fa 81 ldd r31, Y+2 ; 0x02
df14: 09 95 icall
df16: 0f b6 in r0, 0x3f ; 63
df18: f8 94 cli
df1a: de bf out 0x3e, r29 ; 62
df1c: 0f be out 0x3f, r0 ; 63
df1e: cd bf out 0x3d, r28 ; 61
df20: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
else
{
if(RequiredMotors == 4) Hott_ClearLine(6);
df24: 80 91 3d 05 lds r24, 0x053D
df28: 84 30 cpi r24, 0x04 ; 4
df2a: 29 f4 brne .+10 ; 0xdf36 <HoTT_Menu+0x12f8>
df2c: 86 e0 ldi r24, 0x06 ; 6
df2e: 0e 94 b4 60 call 0xc168 ; 0xc168 <Hott_ClearLine>
df32: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
else
if(RequiredMotors == 6) HoTT_printfxy(0,6,"%3i %3i%cC ", Motor[4].Temperature, Motor[5].Temperature,HoTT_GRAD)
df36: 86 30 cpi r24, 0x06 ; 6
df38: 11 f5 brne .+68 ; 0xdf7e <HoTT_Menu+0x1340>
df3a: 8e e7 ldi r24, 0x7E ; 126
df3c: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
df40: 1f 92 push r1
df42: 80 e6 ldi r24, 0x60 ; 96
df44: 8f 93 push r24
df46: 80 91 e9 09 lds r24, 0x09E9
df4a: 1f 92 push r1
df4c: 8f 93 push r24
df4e: 80 91 da 09 lds r24, 0x09DA
df52: 1f 92 push r1
df54: 8f 93 push r24
df56: 8c e8 ldi r24, 0x8C ; 140
df58: 98 e0 ldi r25, 0x08 ; 8
df5a: 9f 93 push r25
df5c: 8f 93 push r24
df5e: 8b e0 ldi r24, 0x0B ; 11
df60: 95 e1 ldi r25, 0x15 ; 21
df62: 9f 93 push r25
df64: 8f 93 push r24
df66: e0 91 78 06 lds r30, 0x0678
df6a: f0 91 79 06 lds r31, 0x0679
df6e: 09 95 icall
df70: 0f b6 in r0, 0x3f ; 63
df72: f8 94 cli
df74: de bf out 0x3e, r29 ; 62
df76: 0f be out 0x3f, r0 ; 63
df78: cd bf out 0x3d, r28 ; 61
df7a: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
else
if(RequiredMotors > 6) HoTT_printfxy(0,6,"%3i %3i %3i %3i%cC", Motor[4].Temperature, Motor[5].Temperature, Motor[6].Temperature, Motor[7].Temperature,HoTT_GRAD);
df7e: 87 30 cpi r24, 0x07 ; 7
df80: 10 f4 brcc .+4 ; 0xdf86 <HoTT_Menu+0x1348>
df82: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
df86: 8e e7 ldi r24, 0x7E ; 126
df88: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
df8c: 1f 92 push r1
df8e: 80 e6 ldi r24, 0x60 ; 96
df90: 8f 93 push r24
df92: 80 91 07 0a lds r24, 0x0A07
df96: 1f 92 push r1
df98: 8f 93 push r24
df9a: 80 91 f8 09 lds r24, 0x09F8
df9e: 1f 92 push r1
dfa0: 8f 93 push r24
dfa2: 80 91 e9 09 lds r24, 0x09E9
dfa6: 1f 92 push r1
dfa8: 8f 93 push r24
dfaa: 80 91 da 09 lds r24, 0x09DA
dfae: 1f 92 push r1
dfb0: 8f 93 push r24
dfb2: 89 e7 ldi r24, 0x79 ; 121
dfb4: 98 e0 ldi r25, 0x08 ; 8
dfb6: 9f 93 push r25
dfb8: 8f 93 push r24
dfba: 8b e0 ldi r24, 0x0B ; 11
dfbc: 95 e1 ldi r25, 0x15 ; 21
dfbe: 9f 93 push r25
dfc0: 8f 93 push r24
dfc2: e0 91 78 06 lds r30, 0x0678
dfc6: f0 91 79 06 lds r31, 0x0679
dfca: 09 95 icall
dfcc: 0f b6 in r0, 0x3f ; 63
dfce: f8 94 cli
dfd0: de bf out 0x3e, r29 ; 62
dfd2: 0f be out 0x3f, r0 ; 63
dfd4: cd bf out 0x3d, r28 ; 61
dfd6: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
break;
case 7: if(NC_ErrorCode)
dfda: 80 91 bb 04 lds r24, 0x04BB
dfde: 88 23 and r24, r24
dfe0: 09 f4 brne .+2 ; 0xdfe4 <HoTT_Menu+0x13a6>
dfe2: 4f c0 rjmp .+158 ; 0xe082 <HoTT_Menu+0x1444>
{
if(HoTTBlink && NC_ErrorCode < MAX_ERR_NUMBER)
dfe4: 90 91 ed 02 lds r25, 0x02ED
dfe8: 99 23 and r25, r25
dfea: 09 f1 breq .+66 ; 0xe02e <HoTT_Menu+0x13f0>
dfec: 83 32 cpi r24, 0x23 ; 35
dfee: f8 f4 brcc .+62 ; 0xe02e <HoTT_Menu+0x13f0>
{
Hott_ClearLine(7);
dff0: 87 e0 ldi r24, 0x07 ; 7
dff2: 0e 94 b4 60 call 0xc168 ; 0xc168 <Hott_ClearLine>
HoTT_printfxy_INV(0,7,"ERR: %2d !",NC_ErrorCode);
dff6: 83 e9 ldi r24, 0x93 ; 147
dff8: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
dffc: 80 91 bb 04 lds r24, 0x04BB
e000: 1f 92 push r1
e002: 8f 93 push r24
e004: 8e e6 ldi r24, 0x6E ; 110
e006: 98 e0 ldi r25, 0x08 ; 8
e008: 9f 93 push r25
e00a: 8f 93 push r24
e00c: 8b e1 ldi r24, 0x1B ; 27
e00e: 95 e1 ldi r25, 0x15 ; 21
e010: 9f 93 push r25
e012: 8f 93 push r24
e014: e0 91 78 06 lds r30, 0x0678
e018: f0 91 79 06 lds r31, 0x0679
e01c: 09 95 icall
e01e: 0f 90 pop r0
e020: 0f 90 pop r0
e022: 0f 90 pop r0
e024: 0f 90 pop r0
e026: 0f 90 pop r0
e028: 0f 90 pop r0
e02a: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
else
{
HoTT_printfxy(0,7,"ERR: "); _printf_P(&LIBFC_HoTT_Putchar, NC_ERROR_TEXT[NC_ErrorCode] , 0);};
e02e: 83 e9 ldi r24, 0x93 ; 147
e030: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e034: 88 e6 ldi r24, 0x68 ; 104
e036: 98 e0 ldi r25, 0x08 ; 8
e038: 9f 93 push r25
e03a: 8f 93 push r24
e03c: 0b e0 ldi r16, 0x0B ; 11
e03e: 15 e1 ldi r17, 0x15 ; 21
e040: 1f 93 push r17
e042: 0f 93 push r16
e044: e0 91 78 06 lds r30, 0x0678
e048: f0 91 79 06 lds r31, 0x0679
e04c: 09 95 icall
e04e: 1f 92 push r1
e050: 1f 92 push r1
e052: 80 91 bb 04 lds r24, 0x04BB
e056: f1 e1 ldi r31, 0x11 ; 17
e058: 8f 9f mul r24, r31
e05a: c0 01 movw r24, r0
e05c: 11 24 eor r1, r1
e05e: 84 59 subi r24, 0x94 ; 148
e060: 94 4f sbci r25, 0xF4 ; 244
e062: 9f 93 push r25
e064: 8f 93 push r24
e066: 1f 93 push r17
e068: 0f 93 push r16
e06a: e0 91 78 06 lds r30, 0x0678
e06e: f0 91 79 06 lds r31, 0x0679
e072: 09 95 icall
e074: 0f b6 in r0, 0x3f ; 63
e076: f8 94 cli
e078: de bf out 0x3e, r29 ; 62
e07a: 0f be out 0x3f, r0 ; 63
e07c: cd bf out 0x3d, r28 ; 61
e07e: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
else
if(FC_StatusFlags & FC_STATUS_LOWBAT) HoTT_printfxy(1,7,"!! LiPo voltage !!")
e082: 80 91 cb 03 lds r24, 0x03CB
e086: 85 ff sbrs r24, 5
e088: 16 c0 rjmp .+44 ; 0xe0b6 <HoTT_Menu+0x1478>
e08a: 84 e9 ldi r24, 0x94 ; 148
e08c: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e090: 85 e5 ldi r24, 0x55 ; 85
e092: 98 e0 ldi r25, 0x08 ; 8
e094: 9f 93 push r25
e096: 8f 93 push r24
e098: 8b e0 ldi r24, 0x0B ; 11
e09a: 95 e1 ldi r25, 0x15 ; 21
e09c: 9f 93 push r25
e09e: 8f 93 push r24
e0a0: e0 91 78 06 lds r30, 0x0678
e0a4: f0 91 79 06 lds r31, 0x0679
e0a8: 09 95 icall
e0aa: 0f 90 pop r0
e0ac: 0f 90 pop r0
e0ae: 0f 90 pop r0
e0b0: 0f 90 pop r0
e0b2: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
else HoTT_printfxy(0,7," www.MikroKopter.de ");
e0b6: 83 e9 ldi r24, 0x93 ; 147
e0b8: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e0bc: 8f e3 ldi r24, 0x3F ; 63
e0be: 98 e0 ldi r25, 0x08 ; 8
e0c0: 9f 93 push r25
e0c2: 8f 93 push r24
e0c4: 8b e0 ldi r24, 0x0B ; 11
e0c6: 95 e1 ldi r25, 0x15 ; 21
e0c8: 9f 93 push r25
e0ca: 8f 93 push r24
e0cc: e0 91 78 06 lds r30, 0x0678
e0d0: f0 91 79 06 lds r31, 0x0679
e0d4: 09 95 icall
e0d6: 0f 90 pop r0
e0d8: 0f 90 pop r0
e0da: 0f 90 pop r0
e0dc: 0f 90 pop r0
e0de: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
case 12:
case 13:
case 14:
case 15:
case 16:
if(HottKeyboard == HOTT_KEY_SET) { if(show_current) show_current = 0; else show_current = 1; Hott_ClearLine(5); Hott_ClearLine(6);}
e0e2: 80 91 a9 0c lds r24, 0x0CA9
e0e6: 86 30 cpi r24, 0x06 ; 6
e0e8: 89 f4 brne .+34 ; 0xe10c <HoTT_Menu+0x14ce>
e0ea: 80 91 73 04 lds r24, 0x0473
e0ee: 88 23 and r24, r24
e0f0: 19 f0 breq .+6 ; 0xe0f8 <HoTT_Menu+0x14ba>
e0f2: 10 92 73 04 sts 0x0473, r1
e0f6: 03 c0 rjmp .+6 ; 0xe0fe <HoTT_Menu+0x14c0>
e0f8: 81 e0 ldi r24, 0x01 ; 1
e0fa: 80 93 73 04 sts 0x0473, r24
e0fe: 85 e0 ldi r24, 0x05 ; 5
e100: 0e 94 b4 60 call 0xc168 ; 0xc168 <Hott_ClearLine>
e104: 86 e0 ldi r24, 0x06 ; 6
e106: 0e 94 b4 60 call 0xc168 ; 0xc168 <Hott_ClearLine>
e10a: 12 c0 rjmp .+36 ; 0xe130 <HoTT_Menu+0x14f2>
else
if(HottKeyboard == HOTT_KEY_LEFT) { LIBFC_HoTT_Clear(); page = 2; line = 0;}
e10c: 88 30 cpi r24, 0x08 ; 8
e10e: 41 f4 brne .+16 ; 0xe120 <HoTT_Menu+0x14e2>
e110: 0e 94 3a 15 call 0x2a74 ; 0x2a74 <LIBFC_HoTT_Clear>
e114: 82 e0 ldi r24, 0x02 ; 2
e116: 80 93 76 04 sts 0x0476, r24
e11a: 10 92 75 04 sts 0x0475, r1
e11e: 08 c0 rjmp .+16 ; 0xe130 <HoTT_Menu+0x14f2>
else
if(HottKeyboard == HOTT_KEY_RIGHT) { LIBFC_HoTT_Clear(); page = 0; line = 0;}
e120: 81 30 cpi r24, 0x01 ; 1
e122: 31 f4 brne .+12 ; 0xe130 <HoTT_Menu+0x14f2>
e124: 0e 94 3a 15 call 0x2a74 ; 0x2a74 <LIBFC_HoTT_Clear>
e128: 10 92 76 04 sts 0x0476, r1
e12c: 10 92 75 04 sts 0x0475, r1
//if(HottKeyboard) HoTT_printfxy(15,6,"%KEY:%02x ",HottKeyboard);
HottKeyboard = 0;
e130: 10 92 a9 0c sts 0x0CA9, r1
break;
e134: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
default: line = 0;
e138: 10 92 75 04 sts 0x0475, r1
break;
e13c: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
break;
case 2:
switch(line++)
e140: 80 91 75 04 lds r24, 0x0475
e144: 91 e0 ldi r25, 0x01 ; 1
e146: 98 0f add r25, r24
e148: 90 93 75 04 sts 0x0475, r25
e14c: 90 e0 ldi r25, 0x00 ; 0
e14e: 81 31 cpi r24, 0x11 ; 17
e150: 91 05 cpc r25, r1
e152: 08 f0 brcs .+2 ; 0xe156 <HoTT_Menu+0x1518>
e154: 65 c3 rjmp .+1738 ; 0xe820 <HoTT_Menu+0x1be2>
e156: fc 01 movw r30, r24
e158: ef 57 subi r30, 0x7F ; 127
e15a: ff 4f sbci r31, 0xFF ; 255
e15c: 0c 94 a7 b1 jmp 0x1634e ; 0x1634e <__tablejump2__>
{
case 0:
HoTT_printfxy_INV(0,0,"Setting:%u %s ",ActiveParamSet,EE_Parameter.Name);
e160: 80 e0 ldi r24, 0x00 ; 0
e162: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e166: 8a eb ldi r24, 0xBA ; 186
e168: 95 e0 ldi r25, 0x05 ; 5
e16a: 9f 93 push r25
e16c: 8f 93 push r24
e16e: 80 91 52 01 lds r24, 0x0152
e172: 1f 92 push r1
e174: 8f 93 push r24
e176: 80 e3 ldi r24, 0x30 ; 48
e178: 98 e0 ldi r25, 0x08 ; 8
e17a: 9f 93 push r25
e17c: 8f 93 push r24
e17e: 8b e1 ldi r24, 0x1B ; 27
e180: 95 e1 ldi r25, 0x15 ; 21
e182: 9f 93 push r25
e184: 8f 93 push r24
e186: e0 91 78 06 lds r30, 0x0678
e18a: f0 91 79 06 lds r31, 0x0679
e18e: 09 95 icall
break;
e190: 0f b6 in r0, 0x3f ; 63
e192: f8 94 cli
e194: de bf out 0x3e, r29 ; 62
e196: 0f be out 0x3f, r0 ; 63
e198: cd bf out 0x3d, r28 ; 61
e19a: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
case 1: HoTT_printfxy(0,1,"Min:%2i.%1iV %s ",BattLowVoltageWarning/10, BattLowVoltageWarning%10, Mixer.Name);
e19e: 85 e1 ldi r24, 0x15 ; 21
e1a0: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e1a4: 20 91 53 01 lds r18, 0x0153
e1a8: 88 ec ldi r24, 0xC8 ; 200
e1aa: 95 e0 ldi r25, 0x05 ; 5
e1ac: 9f 93 push r25
e1ae: 8f 93 push r24
e1b0: 8d ec ldi r24, 0xCD ; 205
e1b2: 28 9f mul r18, r24
e1b4: 81 2d mov r24, r1
e1b6: 11 24 eor r1, r1
e1b8: 86 95 lsr r24
e1ba: 86 95 lsr r24
e1bc: 86 95 lsr r24
e1be: 98 2f mov r25, r24
e1c0: 99 0f add r25, r25
e1c2: 39 2f mov r19, r25
e1c4: 33 0f add r19, r19
e1c6: 33 0f add r19, r19
e1c8: 93 0f add r25, r19
e1ca: 29 1b sub r18, r25
e1cc: 1f 92 push r1
e1ce: 2f 93 push r18
e1d0: 1f 92 push r1
e1d2: 8f 93 push r24
e1d4: 8f e1 ldi r24, 0x1F ; 31
e1d6: 98 e0 ldi r25, 0x08 ; 8
e1d8: 9f 93 push r25
e1da: 8f 93 push r24
e1dc: 8b e0 ldi r24, 0x0B ; 11
e1de: 95 e1 ldi r25, 0x15 ; 21
e1e0: 9f 93 push r25
e1e2: 8f 93 push r24
e1e4: e0 91 78 06 lds r30, 0x0678
e1e8: f0 91 79 06 lds r31, 0x0679
e1ec: 09 95 icall
break;
e1ee: 0f b6 in r0, 0x3f ; 63
e1f0: f8 94 cli
e1f2: de bf out 0x3e, r29 ; 62
e1f4: 0f be out 0x3f, r0 ; 63
e1f6: cd bf out 0x3d, r28 ; 61
e1f8: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
case 2: HoTT_printfxy(0,2,"ALT:");
e1fc: 8a e2 ldi r24, 0x2A ; 42
e1fe: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e202: 8a e1 ldi r24, 0x1A ; 26
e204: 98 e0 ldi r25, 0x08 ; 8
e206: 9f 93 push r25
e208: 8f 93 push r24
e20a: 8b e0 ldi r24, 0x0B ; 11
e20c: 95 e1 ldi r25, 0x15 ; 21
e20e: 9f 93 push r25
e210: 8f 93 push r24
e212: e0 91 78 06 lds r30, 0x0678
e216: f0 91 79 06 lds r31, 0x0679
e21a: 09 95 icall
if(Parameter_GlobalConfig & CFG_HOEHENREGELUNG)
e21c: 80 91 5c 06 lds r24, 0x065C
e220: 0f 90 pop r0
e222: 0f 90 pop r0
e224: 0f 90 pop r0
e226: 0f 90 pop r0
e228: 80 ff sbrs r24, 0
e22a: 7a c0 rjmp .+244 ; 0xe320 <HoTT_Menu+0x16e2>
{
if(!(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER)) HoTT_printf("POTI:%3u ", Parameter_HoehenSchalter)
e22c: 80 91 4b 05 lds r24, 0x054B
e230: 81 fd sbrc r24, 1
e232: 19 c0 rjmp .+50 ; 0xe266 <HoTT_Menu+0x1628>
e234: 80 91 e1 03 lds r24, 0x03E1
e238: 1f 92 push r1
e23a: 8f 93 push r24
e23c: 80 e1 ldi r24, 0x10 ; 16
e23e: 98 e0 ldi r25, 0x08 ; 8
e240: 9f 93 push r25
e242: 8f 93 push r24
e244: 8b e0 ldi r24, 0x0B ; 11
e246: 95 e1 ldi r25, 0x15 ; 21
e248: 9f 93 push r25
e24a: 8f 93 push r24
e24c: e0 91 78 06 lds r30, 0x0678
e250: f0 91 79 06 lds r31, 0x0679
e254: 09 95 icall
e256: 0f 90 pop r0
e258: 0f 90 pop r0
e25a: 0f 90 pop r0
e25c: 0f 90 pop r0
e25e: 0f 90 pop r0
e260: 0f 90 pop r0
e262: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
else
{
if(Parameter_HoehenSchalter > 50) HoTT_printf("(ON) ") else HoTT_printf("(OFF) ");
e266: 80 91 e1 03 lds r24, 0x03E1
e26a: 83 33 cpi r24, 0x33 ; 51
e26c: 90 f0 brcs .+36 ; 0xe292 <HoTT_Menu+0x1654>
e26e: 89 e0 ldi r24, 0x09 ; 9
e270: 98 e0 ldi r25, 0x08 ; 8
e272: 9f 93 push r25
e274: 8f 93 push r24
e276: 8b e0 ldi r24, 0x0B ; 11
e278: 95 e1 ldi r25, 0x15 ; 21
e27a: 9f 93 push r25
e27c: 8f 93 push r24
e27e: e0 91 78 06 lds r30, 0x0678
e282: f0 91 79 06 lds r31, 0x0679
e286: 09 95 icall
e288: 0f 90 pop r0
e28a: 0f 90 pop r0
e28c: 0f 90 pop r0
e28e: 0f 90 pop r0
e290: 11 c0 rjmp .+34 ; 0xe2b4 <HoTT_Menu+0x1676>
e292: 82 e0 ldi r24, 0x02 ; 2
e294: 98 e0 ldi r25, 0x08 ; 8
e296: 9f 93 push r25
e298: 8f 93 push r24
e29a: 8b e0 ldi r24, 0x0B ; 11
e29c: 95 e1 ldi r25, 0x15 ; 21
e29e: 9f 93 push r25
e2a0: 8f 93 push r24
e2a2: e0 91 78 06 lds r30, 0x0678
e2a6: f0 91 79 06 lds r31, 0x0679
e2aa: 09 95 icall
e2ac: 0f 90 pop r0
e2ae: 0f 90 pop r0
e2b0: 0f 90 pop r0
e2b2: 0f 90 pop r0
if((Parameter_ExtraConfig & CFG2_HEIGHT_LIMIT)) HoTT_printf("LIMIT", Parameter_HoehenSchalter)
e2b4: 80 91 40 06 lds r24, 0x0640
e2b8: 80 ff sbrs r24, 0
e2ba: 19 c0 rjmp .+50 ; 0xe2ee <HoTT_Menu+0x16b0>
e2bc: 80 91 e1 03 lds r24, 0x03E1
e2c0: 1f 92 push r1
e2c2: 8f 93 push r24
e2c4: 8c ef ldi r24, 0xFC ; 252
e2c6: 97 e0 ldi r25, 0x07 ; 7
e2c8: 9f 93 push r25
e2ca: 8f 93 push r24
e2cc: 8b e0 ldi r24, 0x0B ; 11
e2ce: 95 e1 ldi r25, 0x15 ; 21
e2d0: 9f 93 push r25
e2d2: 8f 93 push r24
e2d4: e0 91 78 06 lds r30, 0x0678
e2d8: f0 91 79 06 lds r31, 0x0679
e2dc: 09 95 icall
e2de: 0f 90 pop r0
e2e0: 0f 90 pop r0
e2e2: 0f 90 pop r0
e2e4: 0f 90 pop r0
e2e6: 0f 90 pop r0
e2e8: 0f 90 pop r0
e2ea: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
else HoTT_printf("VARIO", Parameter_HoehenSchalter);
e2ee: 80 91 e1 03 lds r24, 0x03E1
e2f2: 1f 92 push r1
e2f4: 8f 93 push r24
e2f6: 86 ef ldi r24, 0xF6 ; 246
e2f8: 97 e0 ldi r25, 0x07 ; 7
e2fa: 9f 93 push r25
e2fc: 8f 93 push r24
e2fe: 8b e0 ldi r24, 0x0B ; 11
e300: 95 e1 ldi r25, 0x15 ; 21
e302: 9f 93 push r25
e304: 8f 93 push r24
e306: e0 91 78 06 lds r30, 0x0678
e30a: f0 91 79 06 lds r31, 0x0679
e30e: 09 95 icall
e310: 0f 90 pop r0
e312: 0f 90 pop r0
e314: 0f 90 pop r0
e316: 0f 90 pop r0
e318: 0f 90 pop r0
e31a: 0f 90 pop r0
e31c: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
}
else
HoTT_printf("DISABLED");
e320: 8d ee ldi r24, 0xED ; 237
e322: 97 e0 ldi r25, 0x07 ; 7
e324: 9f 93 push r25
e326: 8f 93 push r24
e328: 8b e0 ldi r24, 0x0B ; 11
e32a: 95 e1 ldi r25, 0x15 ; 21
e32c: 9f 93 push r25
e32e: 8f 93 push r24
e330: e0 91 78 06 lds r30, 0x0678
e334: f0 91 79 06 lds r31, 0x0679
e338: 09 95 icall
e33a: 0f 90 pop r0
e33c: 0f 90 pop r0
e33e: 0f 90 pop r0
e340: 0f 90 pop r0
e342: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
break;
case 3: HoTT_printfxy(0,3,"CF:");
e346: 8f e3 ldi r24, 0x3F ; 63
e348: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e34c: 89 ee ldi r24, 0xE9 ; 233
e34e: 97 e0 ldi r25, 0x07 ; 7
e350: 9f 93 push r25
e352: 8f 93 push r24
e354: 8b e0 ldi r24, 0x0B ; 11
e356: 95 e1 ldi r25, 0x15 ; 21
e358: 9f 93 push r25
e35a: 8f 93 push r24
e35c: e0 91 78 06 lds r30, 0x0678
e360: f0 91 79 06 lds r31, 0x0679
e364: 09 95 icall
if(!EE_Parameter.CareFreeChannel) HoTT_printf("DISABLED")
e366: 0f 90 pop r0
e368: 0f 90 pop r0
e36a: 0f 90 pop r0
e36c: 0f 90 pop r0
e36e: 80 91 a2 05 lds r24, 0x05A2
e372: 81 11 cpse r24, r1
e374: 13 c0 rjmp .+38 ; 0xe39c <HoTT_Menu+0x175e>
e376: 80 ee ldi r24, 0xE0 ; 224
e378: 97 e0 ldi r25, 0x07 ; 7
e37a: 9f 93 push r25
e37c: 8f 93 push r24
e37e: 8b e0 ldi r24, 0x0B ; 11
e380: 95 e1 ldi r25, 0x15 ; 21
e382: 9f 93 push r25
e384: 8f 93 push r24
e386: e0 91 78 06 lds r30, 0x0678
e38a: f0 91 79 06 lds r31, 0x0679
e38e: 09 95 icall
e390: 0f 90 pop r0
e392: 0f 90 pop r0
e394: 0f 90 pop r0
e396: 0f 90 pop r0
e398: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
else
{
if(CareFree) HoTT_printf(" (ON) ") else HoTT_printf(" (OFF)");
e39c: 80 91 d8 03 lds r24, 0x03D8
e3a0: 88 23 and r24, r24
e3a2: 91 f0 breq .+36 ; 0xe3c8 <HoTT_Menu+0x178a>
e3a4: 89 ed ldi r24, 0xD9 ; 217
e3a6: 97 e0 ldi r25, 0x07 ; 7
e3a8: 9f 93 push r25
e3aa: 8f 93 push r24
e3ac: 8b e0 ldi r24, 0x0B ; 11
e3ae: 95 e1 ldi r25, 0x15 ; 21
e3b0: 9f 93 push r25
e3b2: 8f 93 push r24
e3b4: e0 91 78 06 lds r30, 0x0678
e3b8: f0 91 79 06 lds r31, 0x0679
e3bc: 09 95 icall
e3be: 0f 90 pop r0
e3c0: 0f 90 pop r0
e3c2: 0f 90 pop r0
e3c4: 0f 90 pop r0
e3c6: 11 c0 rjmp .+34 ; 0xe3ea <HoTT_Menu+0x17ac>
e3c8: 82 ed ldi r24, 0xD2 ; 210
e3ca: 97 e0 ldi r25, 0x07 ; 7
e3cc: 9f 93 push r25
e3ce: 8f 93 push r24
e3d0: 8b e0 ldi r24, 0x0B ; 11
e3d2: 95 e1 ldi r25, 0x15 ; 21
e3d4: 9f 93 push r25
e3d6: 8f 93 push r24
e3d8: e0 91 78 06 lds r30, 0x0678
e3dc: f0 91 79 06 lds r31, 0x0679
e3e0: 09 95 icall
e3e2: 0f 90 pop r0
e3e4: 0f 90 pop r0
e3e6: 0f 90 pop r0
e3e8: 0f 90 pop r0
if(EE_Parameter.ExtraConfig & CFG_LEARNABLE_CAREFREE) HoTT_printf(" TEACH");
e3ea: 80 91 b8 05 lds r24, 0x05B8
e3ee: 86 fd sbrc r24, 6
e3f0: 02 c0 rjmp .+4 ; 0xe3f6 <HoTT_Menu+0x17b8>
e3f2: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
e3f6: 8b ec ldi r24, 0xCB ; 203
e3f8: 97 e0 ldi r25, 0x07 ; 7
e3fa: 9f 93 push r25
e3fc: 8f 93 push r24
e3fe: 8b e0 ldi r24, 0x0B ; 11
e400: 95 e1 ldi r25, 0x15 ; 21
e402: 9f 93 push r25
e404: 8f 93 push r24
e406: e0 91 78 06 lds r30, 0x0678
e40a: f0 91 79 06 lds r31, 0x0679
e40e: 09 95 icall
e410: 0f 90 pop r0
e412: 0f 90 pop r0
e414: 0f 90 pop r0
e416: 0f 90 pop r0
e418: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
break;
case 4: HoTT_printfxy(0,4,"GPS:");
e41c: 84 e5 ldi r24, 0x54 ; 84
e41e: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e422: 86 ec ldi r24, 0xC6 ; 198
e424: 97 e0 ldi r25, 0x07 ; 7
e426: 9f 93 push r25
e428: 8f 93 push r24
e42a: 8b e0 ldi r24, 0x0B ; 11
e42c: 95 e1 ldi r25, 0x15 ; 21
e42e: 9f 93 push r25
e430: 8f 93 push r24
e432: e0 91 78 06 lds r30, 0x0678
e436: f0 91 79 06 lds r31, 0x0679
e43a: 09 95 icall
if(!(Parameter_GlobalConfig & CFG_GPS_AKTIV)) HoTT_printf("DISABLED")
e43c: 80 91 5c 06 lds r24, 0x065C
e440: 0f 90 pop r0
e442: 0f 90 pop r0
e444: 0f 90 pop r0
e446: 0f 90 pop r0
e448: 85 fd sbrc r24, 5
e44a: 12 c0 rjmp .+36 ; 0xe470 <HoTT_Menu+0x1832>
e44c: 8d eb ldi r24, 0xBD ; 189
e44e: 97 e0 ldi r25, 0x07 ; 7
e450: 9f 93 push r25
e452: 8f 93 push r24
e454: 8b e0 ldi r24, 0x0B ; 11
e456: 95 e1 ldi r25, 0x15 ; 21
e458: 9f 93 push r25
e45a: 8f 93 push r24
e45c: e0 91 78 06 lds r30, 0x0678
e460: f0 91 79 06 lds r31, 0x0679
e464: 09 95 icall
e466: 0f 90 pop r0
e468: 0f 90 pop r0
e46a: 0f 90 pop r0
e46c: 0f 90 pop r0
e46e: 53 c0 rjmp .+166 ; 0xe516 <HoTT_Menu+0x18d8>
else
{
tmp = GetChannelValue(EE_Parameter.NaviGpsModeChannel);
e470: 80 91 8f 05 lds r24, 0x058F
e474: 0e 94 0e 34 call 0x681c ; 0x681c <GetChannelValue>
if(tmp < 50) HoTT_printf("(FREE)")
e478: 82 33 cpi r24, 0x32 ; 50
e47a: 90 f4 brcc .+36 ; 0xe4a0 <HoTT_Menu+0x1862>
e47c: 86 eb ldi r24, 0xB6 ; 182
e47e: 97 e0 ldi r25, 0x07 ; 7
e480: 9f 93 push r25
e482: 8f 93 push r24
e484: 8b e0 ldi r24, 0x0B ; 11
e486: 95 e1 ldi r25, 0x15 ; 21
e488: 9f 93 push r25
e48a: 8f 93 push r24
e48c: e0 91 78 06 lds r30, 0x0678
e490: f0 91 79 06 lds r31, 0x0679
e494: 09 95 icall
e496: 0f 90 pop r0
e498: 0f 90 pop r0
e49a: 0f 90 pop r0
e49c: 0f 90 pop r0
e49e: 3b c0 rjmp .+118 ; 0xe516 <HoTT_Menu+0x18d8>
else
if(tmp >= 180) HoTT_printf("(HOME)")
e4a0: 84 3b cpi r24, 0xB4 ; 180
e4a2: 90 f0 brcs .+36 ; 0xe4c8 <HoTT_Menu+0x188a>
e4a4: 8f ea ldi r24, 0xAF ; 175
e4a6: 97 e0 ldi r25, 0x07 ; 7
e4a8: 9f 93 push r25
e4aa: 8f 93 push r24
e4ac: 8b e0 ldi r24, 0x0B ; 11
e4ae: 95 e1 ldi r25, 0x15 ; 21
e4b0: 9f 93 push r25
e4b2: 8f 93 push r24
e4b4: e0 91 78 06 lds r30, 0x0678
e4b8: f0 91 79 06 lds r31, 0x0679
e4bc: 09 95 icall
e4be: 0f 90 pop r0
e4c0: 0f 90 pop r0
e4c2: 0f 90 pop r0
e4c4: 0f 90 pop r0
e4c6: 27 c0 rjmp .+78 ; 0xe516 <HoTT_Menu+0x18d8>
else
if(EE_Parameter.ExtraConfig & CFG_GPS_AID) HoTT_printf("(AID) ")
e4c8: 80 91 b8 05 lds r24, 0x05B8
e4cc: 85 ff sbrs r24, 5
e4ce: 12 c0 rjmp .+36 ; 0xe4f4 <HoTT_Menu+0x18b6>
e4d0: 88 ea ldi r24, 0xA8 ; 168
e4d2: 97 e0 ldi r25, 0x07 ; 7
e4d4: 9f 93 push r25
e4d6: 8f 93 push r24
e4d8: 8b e0 ldi r24, 0x0B ; 11
e4da: 95 e1 ldi r25, 0x15 ; 21
e4dc: 9f 93 push r25
e4de: 8f 93 push r24
e4e0: e0 91 78 06 lds r30, 0x0678
e4e4: f0 91 79 06 lds r31, 0x0679
e4e8: 09 95 icall
e4ea: 0f 90 pop r0
e4ec: 0f 90 pop r0
e4ee: 0f 90 pop r0
e4f0: 0f 90 pop r0
e4f2: 11 c0 rjmp .+34 ; 0xe516 <HoTT_Menu+0x18d8>
else HoTT_printf("(HOLD)")
e4f4: 81 ea ldi r24, 0xA1 ; 161
e4f6: 97 e0 ldi r25, 0x07 ; 7
e4f8: 9f 93 push r25
e4fa: 8f 93 push r24
e4fc: 8b e0 ldi r24, 0x0B ; 11
e4fe: 95 e1 ldi r25, 0x15 ; 21
e500: 9f 93 push r25
e502: 8f 93 push r24
e504: e0 91 78 06 lds r30, 0x0678
e508: f0 91 79 06 lds r31, 0x0679
e50c: 09 95 icall
e50e: 0f 90 pop r0
e510: 0f 90 pop r0
e512: 0f 90 pop r0
e514: 0f 90 pop r0
}
if(EE_Parameter.FailSafeTime) HoTT_printfxy(10,4," FS:%usek ",EE_Parameter.FailSafeTime)
e516: 80 91 a6 05 lds r24, 0x05A6
e51a: 88 23 and r24, r24
e51c: 11 f4 brne .+4 ; 0xe522 <HoTT_Menu+0x18e4>
e51e: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
e522: 8e e5 ldi r24, 0x5E ; 94
e524: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e528: 80 91 a6 05 lds r24, 0x05A6
e52c: 1f 92 push r1
e52e: 8f 93 push r24
e530: 86 e9 ldi r24, 0x96 ; 150
e532: 97 e0 ldi r25, 0x07 ; 7
e534: 9f 93 push r25
e536: 8f 93 push r24
e538: 8b e0 ldi r24, 0x0B ; 11
e53a: 95 e1 ldi r25, 0x15 ; 21
e53c: 9f 93 push r25
e53e: 8f 93 push r24
e540: e0 91 78 06 lds r30, 0x0678
e544: f0 91 79 06 lds r31, 0x0679
e548: 09 95 icall
e54a: 0f 90 pop r0
e54c: 0f 90 pop r0
e54e: 0f 90 pop r0
e550: 0f 90 pop r0
e552: 0f 90 pop r0
e554: 0f 90 pop r0
e556: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
 
break;
case 5: HoTT_printfxy(0,5,"HOME ALT:");
e55a: 89 e6 ldi r24, 0x69 ; 105
e55c: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e560: 8c e8 ldi r24, 0x8C ; 140
e562: 97 e0 ldi r25, 0x07 ; 7
e564: 9f 93 push r25
e566: 8f 93 push r24
e568: 8b e0 ldi r24, 0x0B ; 11
e56a: 95 e1 ldi r25, 0x15 ; 21
e56c: 9f 93 push r25
e56e: 8f 93 push r24
e570: e0 91 78 06 lds r30, 0x0678
e574: f0 91 79 06 lds r31, 0x0679
e578: 09 95 icall
if(EE_Parameter.ComingHomeAltitude) HoTT_printf("%um",EE_Parameter.ComingHomeAltitude) else HoTT_printf("HOLD ");
e57a: 80 91 a5 05 lds r24, 0x05A5
e57e: 0f 90 pop r0
e580: 0f 90 pop r0
e582: 0f 90 pop r0
e584: 0f 90 pop r0
e586: 88 23 and r24, r24
e588: b9 f0 breq .+46 ; 0xe5b8 <HoTT_Menu+0x197a>
e58a: 1f 92 push r1
e58c: 8f 93 push r24
e58e: 88 e8 ldi r24, 0x88 ; 136
e590: 97 e0 ldi r25, 0x07 ; 7
e592: 9f 93 push r25
e594: 8f 93 push r24
e596: 8b e0 ldi r24, 0x0B ; 11
e598: 95 e1 ldi r25, 0x15 ; 21
e59a: 9f 93 push r25
e59c: 8f 93 push r24
e59e: e0 91 78 06 lds r30, 0x0678
e5a2: f0 91 79 06 lds r31, 0x0679
e5a6: 09 95 icall
e5a8: 0f 90 pop r0
e5aa: 0f 90 pop r0
e5ac: 0f 90 pop r0
e5ae: 0f 90 pop r0
e5b0: 0f 90 pop r0
e5b2: 0f 90 pop r0
e5b4: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
e5b8: 82 e8 ldi r24, 0x82 ; 130
e5ba: 97 e0 ldi r25, 0x07 ; 7
e5bc: 9f 93 push r25
e5be: 8f 93 push r24
e5c0: 8b e0 ldi r24, 0x0B ; 11
e5c2: 95 e1 ldi r25, 0x15 ; 21
e5c4: 9f 93 push r25
e5c6: 8f 93 push r24
e5c8: e0 91 78 06 lds r30, 0x0678
e5cc: f0 91 79 06 lds r31, 0x0679
e5d0: 09 95 icall
e5d2: 0f 90 pop r0
e5d4: 0f 90 pop r0
e5d6: 0f 90 pop r0
e5d8: 0f 90 pop r0
e5da: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
break;
case 6:
if(!show_poti)
e5de: 80 91 72 04 lds r24, 0x0472
e5e2: 81 11 cpse r24, r1
e5e4: 57 c0 rjmp .+174 ; 0xe694 <HoTT_Menu+0x1a56>
{
HoTT_printfxy(0,6,"Ni:%4i Ro:%4i C:%3i",PPM_in[EE_Parameter.Kanalbelegung[K_NICK]],PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]], Parameter_ServoNickControl);
e5e6: 8e e7 ldi r24, 0x7E ; 126
e5e8: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e5ec: e0 91 40 05 lds r30, 0x0540
e5f0: f0 e0 ldi r31, 0x00 ; 0
e5f2: ee 0f add r30, r30
e5f4: ff 1f adc r31, r31
e5f6: ef 5c subi r30, 0xCF ; 207
e5f8: f7 4f sbci r31, 0xF7 ; 247
e5fa: 20 81 ld r18, Z
e5fc: 31 81 ldd r19, Z+1 ; 0x01
e5fe: e0 91 3f 05 lds r30, 0x053F
e602: f0 e0 ldi r31, 0x00 ; 0
e604: ee 0f add r30, r30
e606: ff 1f adc r31, r31
e608: ef 5c subi r30, 0xCF ; 207
e60a: f7 4f sbci r31, 0xF7 ; 247
e60c: 80 81 ld r24, Z
e60e: 91 81 ldd r25, Z+1 ; 0x01
e610: 40 91 2f 01 lds r20, 0x012F
e614: 1f 92 push r1
e616: 4f 93 push r20
e618: 3f 93 push r19
e61a: 2f 93 push r18
e61c: 9f 93 push r25
e61e: 8f 93 push r24
e620: 8e e6 ldi r24, 0x6E ; 110
e622: 97 e0 ldi r25, 0x07 ; 7
e624: 9f 93 push r25
e626: 8f 93 push r24
e628: 0b e0 ldi r16, 0x0B ; 11
e62a: 15 e1 ldi r17, 0x15 ; 21
e62c: 1f 93 push r17
e62e: 0f 93 push r16
e630: e0 91 78 06 lds r30, 0x0678
e634: f0 91 79 06 lds r31, 0x0679
e638: 09 95 icall
HoTT_printfxy(0,7,"Gs:%4i Ya:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_GAS]]+127,PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]);
e63a: 83 e9 ldi r24, 0x93 ; 147
e63c: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e640: e0 91 42 05 lds r30, 0x0542
e644: f0 e0 ldi r31, 0x00 ; 0
e646: ee 0f add r30, r30
e648: ff 1f adc r31, r31
e64a: ef 5c subi r30, 0xCF ; 207
e64c: f7 4f sbci r31, 0xF7 ; 247
e64e: 20 81 ld r18, Z
e650: 31 81 ldd r19, Z+1 ; 0x01
e652: e0 91 41 05 lds r30, 0x0541
e656: f0 e0 ldi r31, 0x00 ; 0
e658: ee 0f add r30, r30
e65a: ff 1f adc r31, r31
e65c: ef 5c subi r30, 0xCF ; 207
e65e: f7 4f sbci r31, 0xF7 ; 247
e660: 80 81 ld r24, Z
e662: 91 81 ldd r25, Z+1 ; 0x01
e664: 3f 93 push r19
e666: 2f 93 push r18
e668: 81 58 subi r24, 0x81 ; 129
e66a: 9f 4f sbci r25, 0xFF ; 255
e66c: 9f 93 push r25
e66e: 8f 93 push r24
e670: 8f e5 ldi r24, 0x5F ; 95
e672: 97 e0 ldi r25, 0x07 ; 7
e674: 9f 93 push r25
e676: 8f 93 push r24
e678: 1f 93 push r17
e67a: 0f 93 push r16
e67c: e0 91 78 06 lds r30, 0x0678
e680: f0 91 79 06 lds r31, 0x0679
e684: 09 95 icall
e686: 0f b6 in r0, 0x3f ; 63
e688: f8 94 cli
e68a: de bf out 0x3e, r29 ; 62
e68c: 0f be out 0x3f, r0 ; 63
e68e: cd bf out 0x3d, r28 ; 61
e690: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
else
{
HoTT_printfxy(0,6,"P1:%4i P2:%4i 3:%3i",Poti1,Poti2, Poti3);
e694: 8e e7 ldi r24, 0x7E ; 126
e696: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e69a: 80 91 07 04 lds r24, 0x0407
e69e: 1f 92 push r1
e6a0: 8f 93 push r24
e6a2: 80 91 06 04 lds r24, 0x0406
e6a6: 1f 92 push r1
e6a8: 8f 93 push r24
e6aa: 80 91 05 04 lds r24, 0x0405
e6ae: 1f 92 push r1
e6b0: 8f 93 push r24
e6b2: 8b e4 ldi r24, 0x4B ; 75
e6b4: 97 e0 ldi r25, 0x07 ; 7
e6b6: 9f 93 push r25
e6b8: 8f 93 push r24
e6ba: 0b e0 ldi r16, 0x0B ; 11
e6bc: 15 e1 ldi r17, 0x15 ; 21
e6be: 1f 93 push r17
e6c0: 0f 93 push r16
e6c2: e0 91 78 06 lds r30, 0x0678
e6c6: f0 91 79 06 lds r31, 0x0679
e6ca: 09 95 icall
HoTT_printfxy(0,7,"P4:%4i P5:%4i 6:%3i",Poti4,Poti5, Poti6);
e6cc: 83 e9 ldi r24, 0x93 ; 147
e6ce: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e6d2: 80 91 0a 04 lds r24, 0x040A
e6d6: 1f 92 push r1
e6d8: 8f 93 push r24
e6da: 80 91 09 04 lds r24, 0x0409
e6de: 1f 92 push r1
e6e0: 8f 93 push r24
e6e2: 80 91 08 04 lds r24, 0x0408
e6e6: 1f 92 push r1
e6e8: 8f 93 push r24
e6ea: 87 e3 ldi r24, 0x37 ; 55
e6ec: 97 e0 ldi r25, 0x07 ; 7
e6ee: 9f 93 push r25
e6f0: 8f 93 push r24
e6f2: 1f 93 push r17
e6f4: 0f 93 push r16
e6f6: e0 91 78 06 lds r30, 0x0678
e6fa: f0 91 79 06 lds r31, 0x0679
e6fe: 09 95 icall
e700: 0f b6 in r0, 0x3f ; 63
e702: f8 94 cli
e704: de bf out 0x3e, r29 ; 62
e706: 0f be out 0x3f, r0 ; 63
e708: cd bf out 0x3d, r28 ; 61
e70a: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
}
break;
case 7: //HoTT_printfxy(0,6,"WARNINGS:");
if(HoTTBlink)
e70e: 80 91 ed 02 lds r24, 0x02ED
e712: 88 23 and r24, r24
e714: 11 f4 brne .+4 ; 0xe71a <HoTT_Menu+0x1adc>
e716: 0c 94 99 7b jmp 0xf732 ; 0xf732 <HoTT_Menu+0x2af4>
{
LIBFC_HoTT_SetPos(6 * 21);
e71a: 8e e7 ldi r24, 0x7E ; 126
e71c: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
if(!(Parameter_GlobalConfig & CFG_ACHSENKOPPLUNG_AKTIV)) HoTT_printf_BLINK("COUPLING OFF! ");
e720: 80 91 5c 06 lds r24, 0x065C
e724: 86 fd sbrc r24, 6
e726: 11 c0 rjmp .+34 ; 0xe74a <HoTT_Menu+0x1b0c>
e728: 88 e2 ldi r24, 0x28 ; 40
e72a: 97 e0 ldi r25, 0x07 ; 7
e72c: 9f 93 push r25
e72e: 8f 93 push r24
e730: 8c e2 ldi r24, 0x2C ; 44
e732: 95 e1 ldi r25, 0x15 ; 21
e734: 9f 93 push r25
e736: 8f 93 push r24
e738: e0 91 78 06 lds r30, 0x0678
e73c: f0 91 79 06 lds r31, 0x0679
e740: 09 95 icall
e742: 0f 90 pop r0
e744: 0f 90 pop r0
e746: 0f 90 pop r0
e748: 0f 90 pop r0
if(EE_Parameter.BitConfig & (CFG_LOOP_LINKS | CFG_LOOP_RECHTS | CFG_LOOP_UNTEN | CFG_LOOP_OBEN)) HoTT_printf_BLINK("LOOPING! ");
e74a: 80 91 b6 05 lds r24, 0x05B6
e74e: 8f 70 andi r24, 0x0F ; 15
e750: 89 f0 breq .+34 ; 0xe774 <HoTT_Menu+0x1b36>
e752: 8e e1 ldi r24, 0x1E ; 30
e754: 97 e0 ldi r25, 0x07 ; 7
e756: 9f 93 push r25
e758: 8f 93 push r24
e75a: 8c e2 ldi r24, 0x2C ; 44
e75c: 95 e1 ldi r25, 0x15 ; 21
e75e: 9f 93 push r25
e760: 8f 93 push r24
e762: e0 91 78 06 lds r30, 0x0678
e766: f0 91 79 06 lds r31, 0x0679
e76a: 09 95 icall
e76c: 0f 90 pop r0
e76e: 0f 90 pop r0
e770: 0f 90 pop r0
e772: 0f 90 pop r0
if(Parameter_GlobalConfig & CFG_HEADING_HOLD) HoTT_printf_BLINK("HH! ");
e774: 80 91 5c 06 lds r24, 0x065C
e778: 82 ff sbrs r24, 2
e77a: 11 c0 rjmp .+34 ; 0xe79e <HoTT_Menu+0x1b60>
e77c: 89 e1 ldi r24, 0x19 ; 25
e77e: 97 e0 ldi r25, 0x07 ; 7
e780: 9f 93 push r25
e782: 8f 93 push r24
e784: 8c e2 ldi r24, 0x2C ; 44
e786: 95 e1 ldi r25, 0x15 ; 21
e788: 9f 93 push r25
e78a: 8f 93 push r24
e78c: e0 91 78 06 lds r30, 0x0678
e790: f0 91 79 06 lds r31, 0x0679
e794: 09 95 icall
e796: 0f 90 pop r0
e798: 0f 90 pop r0
e79a: 0f 90 pop r0
e79c: 0f 90 pop r0
if(!(Parameter_GlobalConfig & CFG_KOMPASS_AKTIV)) HoTT_printf_BLINK("COMPASS OFF! ");
e79e: 80 91 5c 06 lds r24, 0x065C
e7a2: 83 fd sbrc r24, 3
e7a4: c6 c7 rjmp .+3980 ; 0xf732 <HoTT_Menu+0x2af4>
e7a6: 8b e0 ldi r24, 0x0B ; 11
e7a8: 97 e0 ldi r25, 0x07 ; 7
e7aa: 9f 93 push r25
e7ac: 8f 93 push r24
e7ae: 8c e2 ldi r24, 0x2C ; 44
e7b0: 95 e1 ldi r25, 0x15 ; 21
e7b2: 9f 93 push r25
e7b4: 8f 93 push r24
e7b6: e0 91 78 06 lds r30, 0x0678
e7ba: f0 91 79 06 lds r31, 0x0679
e7be: 09 95 icall
e7c0: 0f 90 pop r0
e7c2: 0f 90 pop r0
e7c4: 0f 90 pop r0
e7c6: 0f 90 pop r0
e7c8: b4 c7 rjmp .+3944 ; 0xf732 <HoTT_Menu+0x2af4>
case 12:
case 13:
case 14:
case 15:
case 16:
if(HottKeyboard == HOTT_KEY_SET) { if(show_poti) show_poti = 0; else show_poti = 1; Hott_ClearLine(6); Hott_ClearLine(7);}
e7ca: 80 91 a9 0c lds r24, 0x0CA9
e7ce: 86 30 cpi r24, 0x06 ; 6
e7d0: 89 f4 brne .+34 ; 0xe7f4 <HoTT_Menu+0x1bb6>
e7d2: 80 91 72 04 lds r24, 0x0472
e7d6: 88 23 and r24, r24
e7d8: 19 f0 breq .+6 ; 0xe7e0 <HoTT_Menu+0x1ba2>
e7da: 10 92 72 04 sts 0x0472, r1
e7de: 03 c0 rjmp .+6 ; 0xe7e6 <HoTT_Menu+0x1ba8>
e7e0: 81 e0 ldi r24, 0x01 ; 1
e7e2: 80 93 72 04 sts 0x0472, r24
e7e6: 86 e0 ldi r24, 0x06 ; 6
e7e8: 0e 94 b4 60 call 0xc168 ; 0xc168 <Hott_ClearLine>
e7ec: 87 e0 ldi r24, 0x07 ; 7
e7ee: 0e 94 b4 60 call 0xc168 ; 0xc168 <Hott_ClearLine>
e7f2: 13 c0 rjmp .+38 ; 0xe81a <HoTT_Menu+0x1bdc>
else
if(HottKeyboard == HOTT_KEY_LEFT) { LIBFC_HoTT_Clear(); page = 3; line = 0;}
e7f4: 88 30 cpi r24, 0x08 ; 8
e7f6: 41 f4 brne .+16 ; 0xe808 <HoTT_Menu+0x1bca>
e7f8: 0e 94 3a 15 call 0x2a74 ; 0x2a74 <LIBFC_HoTT_Clear>
e7fc: 83 e0 ldi r24, 0x03 ; 3
e7fe: 80 93 76 04 sts 0x0476, r24
e802: 10 92 75 04 sts 0x0475, r1
e806: 09 c0 rjmp .+18 ; 0xe81a <HoTT_Menu+0x1bdc>
else
if(HottKeyboard == HOTT_KEY_RIGHT) { LIBFC_HoTT_Clear(); page = 1; line = 0;};
e808: 81 30 cpi r24, 0x01 ; 1
e80a: 39 f4 brne .+14 ; 0xe81a <HoTT_Menu+0x1bdc>
e80c: 0e 94 3a 15 call 0x2a74 ; 0x2a74 <LIBFC_HoTT_Clear>
e810: 81 e0 ldi r24, 0x01 ; 1
e812: 80 93 76 04 sts 0x0476, r24
e816: 10 92 75 04 sts 0x0475, r1
HottKeyboard = 0;
e81a: 10 92 a9 0c sts 0x0CA9, r1
break;
e81e: 89 c7 rjmp .+3858 ; 0xf732 <HoTT_Menu+0x2af4>
default: line = 0;
e820: 10 92 75 04 sts 0x0475, r1
break;
e824: 86 c7 rjmp .+3852 ; 0xf732 <HoTT_Menu+0x2af4>
}
break;
case 3:
switch(line++)
e826: 80 91 75 04 lds r24, 0x0475
e82a: 91 e0 ldi r25, 0x01 ; 1
e82c: 98 0f add r25, r24
e82e: 90 93 75 04 sts 0x0475, r25
e832: 82 30 cpi r24, 0x02 ; 2
e834: 09 f4 brne .+2 ; 0xe838 <HoTT_Menu+0x1bfa>
e836: 65 c0 rjmp .+202 ; 0xe902 <HoTT_Menu+0x1cc4>
e838: 28 f4 brcc .+10 ; 0xe844 <HoTT_Menu+0x1c06>
e83a: 88 23 and r24, r24
e83c: 39 f0 breq .+14 ; 0xe84c <HoTT_Menu+0x1c0e>
e83e: 81 30 cpi r24, 0x01 ; 1
e840: 49 f1 breq .+82 ; 0xe894 <HoTT_Menu+0x1c56>
e842: aa c1 rjmp .+852 ; 0xeb98 <HoTT_Menu+0x1f5a>
e844: 86 30 cpi r24, 0x06 ; 6
e846: 08 f4 brcc .+2 ; 0xe84a <HoTT_Menu+0x1c0c>
e848: 98 c0 rjmp .+304 ; 0xe97a <HoTT_Menu+0x1d3c>
e84a: a6 c1 rjmp .+844 ; 0xeb98 <HoTT_Menu+0x1f5a>
{
static unsigned char load_waypoint_tmp2 = 1, changed2;
case 0:
HoTT_printfxy(0,0,"Load Waypoints");
e84c: 80 e0 ldi r24, 0x00 ; 0
e84e: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e852: 8c ef ldi r24, 0xFC ; 252
e854: 96 e0 ldi r25, 0x06 ; 6
e856: 9f 93 push r25
e858: 8f 93 push r24
e85a: 0b e0 ldi r16, 0x0B ; 11
e85c: 15 e1 ldi r17, 0x15 ; 21
e85e: 1f 93 push r17
e860: 0f 93 push r16
e862: e0 91 78 06 lds r30, 0x0678
e866: f0 91 79 06 lds r31, 0x0679
e86a: 09 95 icall
HoTT_printfxy(0,1,"(Relative Positions)");
e86c: 85 e1 ldi r24, 0x15 ; 21
e86e: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e872: 87 ee ldi r24, 0xE7 ; 231
e874: 96 e0 ldi r25, 0x06 ; 6
e876: 9f 93 push r25
e878: 8f 93 push r24
e87a: 1f 93 push r17
e87c: 0f 93 push r16
e87e: e0 91 78 06 lds r30, 0x0678
e882: f0 91 79 06 lds r31, 0x0679
e886: 09 95 icall
// HoTT_printfxy(0,1,"(Absolute)");
break;
e888: 0f b6 in r0, 0x3f ; 63
e88a: f8 94 cli
e88c: de bf out 0x3e, r29 ; 62
e88e: 0f be out 0x3f, r0 ; 63
e890: cd bf out 0x3d, r28 ; 61
e892: 4f c7 rjmp .+3742 ; 0xf732 <HoTT_Menu+0x2af4>
case 1:
if(NaviData_WaypointNumber) HoTT_printfxy(0,6,"Active WP:%2d/%d ",NaviData_WaypointIndex,NaviData_WaypointNumber)
e894: 80 91 8c 04 lds r24, 0x048C
e898: 88 23 and r24, r24
e89a: f1 f0 breq .+60 ; 0xe8d8 <HoTT_Menu+0x1c9a>
e89c: 8e e7 ldi r24, 0x7E ; 126
e89e: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e8a2: 80 91 8c 04 lds r24, 0x048C
e8a6: 1f 92 push r1
e8a8: 8f 93 push r24
e8aa: 80 91 8d 04 lds r24, 0x048D
e8ae: 1f 92 push r1
e8b0: 8f 93 push r24
e8b2: 85 ed ldi r24, 0xD5 ; 213
e8b4: 96 e0 ldi r25, 0x06 ; 6
e8b6: 9f 93 push r25
e8b8: 8f 93 push r24
e8ba: 8b e0 ldi r24, 0x0B ; 11
e8bc: 95 e1 ldi r25, 0x15 ; 21
e8be: 9f 93 push r25
e8c0: 8f 93 push r24
e8c2: e0 91 78 06 lds r30, 0x0678
e8c6: f0 91 79 06 lds r31, 0x0679
e8ca: 09 95 icall
e8cc: 0f b6 in r0, 0x3f ; 63
e8ce: f8 94 cli
e8d0: de bf out 0x3e, r29 ; 62
e8d2: 0f be out 0x3f, r0 ; 63
e8d4: cd bf out 0x3d, r28 ; 61
e8d6: 2d c7 rjmp .+3674 ; 0xf732 <HoTT_Menu+0x2af4>
else HoTT_printfxy(0,6,"No WPs active ")
e8d8: 8e e7 ldi r24, 0x7E ; 126
e8da: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e8de: 82 ec ldi r24, 0xC2 ; 194
e8e0: 96 e0 ldi r25, 0x06 ; 6
e8e2: 9f 93 push r25
e8e4: 8f 93 push r24
e8e6: 8b e0 ldi r24, 0x0B ; 11
e8e8: 95 e1 ldi r25, 0x15 ; 21
e8ea: 9f 93 push r25
e8ec: 8f 93 push r24
e8ee: e0 91 78 06 lds r30, 0x0678
e8f2: f0 91 79 06 lds r31, 0x0679
e8f6: 09 95 icall
e8f8: 0f 90 pop r0
e8fa: 0f 90 pop r0
e8fc: 0f 90 pop r0
e8fe: 0f 90 pop r0
e900: 18 c7 rjmp .+3632 ; 0xf732 <HoTT_Menu+0x2af4>
break;
case 2:
HoTT_printfxy(0,7,"%2i.%1iV ",UBat/10, UBat%10)
e902: 83 e9 ldi r24, 0x93 ; 147
e904: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e908: 80 91 1a 01 lds r24, 0x011A
e90c: 90 91 1b 01 lds r25, 0x011B
e910: e0 91 1a 01 lds r30, 0x011A
e914: f0 91 1b 01 lds r31, 0x011B
e918: 2a e0 ldi r18, 0x0A ; 10
e91a: 30 e0 ldi r19, 0x00 ; 0
e91c: b9 01 movw r22, r18
e91e: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
e922: 9f 93 push r25
e924: 8f 93 push r24
e926: cf 01 movw r24, r30
e928: b9 01 movw r22, r18
e92a: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
e92e: 7f 93 push r23
e930: 6f 93 push r22
e932: 88 eb ldi r24, 0xB8 ; 184
e934: 96 e0 ldi r25, 0x06 ; 6
e936: 9f 93 push r25
e938: 8f 93 push r24
e93a: 0b e0 ldi r16, 0x0B ; 11
e93c: 15 e1 ldi r17, 0x15 ; 21
e93e: 1f 93 push r17
e940: 0f 93 push r16
e942: e0 91 78 06 lds r30, 0x0678
e946: f0 91 79 06 lds r31, 0x0679
e94a: 09 95 icall
HoTT_printfxy(11,7,"%s",WPL_Name)
e94c: 8e e9 ldi r24, 0x9E ; 158
e94e: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e952: 82 ed ldi r24, 0xD2 ; 210
e954: 96 e0 ldi r25, 0x06 ; 6
e956: 9f 93 push r25
e958: 8f 93 push r24
e95a: 85 eb ldi r24, 0xB5 ; 181
e95c: 96 e0 ldi r25, 0x06 ; 6
e95e: 9f 93 push r25
e960: 8f 93 push r24
e962: 1f 93 push r17
e964: 0f 93 push r16
e966: e0 91 78 06 lds r30, 0x0678
e96a: f0 91 79 06 lds r31, 0x0679
e96e: 09 95 icall
e970: 0f b6 in r0, 0x3f ; 63
e972: f8 94 cli
e974: de bf out 0x3e, r29 ; 62
e976: 0f be out 0x3f, r0 ; 63
e978: cd bf out 0x3d, r28 ; 61
case 3:
case 4:
case 5:
if(load_waypoint_tmp2)
e97a: 80 91 56 01 lds r24, 0x0156
e97e: 88 23 and r24, r24
e980: 09 f4 brne .+2 ; 0xe984 <HoTT_Menu+0x1d46>
e982: 4c c0 rjmp .+152 ; 0xea1c <HoTT_Menu+0x1dde>
{
if(changed2 && HoTTBlink) HoTT_printfxy(10,3," ")
e984: 80 91 71 04 lds r24, 0x0471
e988: 88 23 and r24, r24
e98a: c9 f0 breq .+50 ; 0xe9be <HoTT_Menu+0x1d80>
e98c: 80 91 ed 02 lds r24, 0x02ED
e990: 88 23 and r24, r24
e992: a9 f0 breq .+42 ; 0xe9be <HoTT_Menu+0x1d80>
e994: 89 e4 ldi r24, 0x49 ; 73
e996: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e99a: 81 eb ldi r24, 0xB1 ; 177
e99c: 96 e0 ldi r25, 0x06 ; 6
e99e: 9f 93 push r25
e9a0: 8f 93 push r24
e9a2: 8b e0 ldi r24, 0x0B ; 11
e9a4: 95 e1 ldi r25, 0x15 ; 21
e9a6: 9f 93 push r25
e9a8: 8f 93 push r24
e9aa: e0 91 78 06 lds r30, 0x0678
e9ae: f0 91 79 06 lds r31, 0x0679
e9b2: 09 95 icall
e9b4: 0f 90 pop r0
e9b6: 0f 90 pop r0
e9b8: 0f 90 pop r0
e9ba: 0f 90 pop r0
e9bc: 1a c0 rjmp .+52 ; 0xe9f2 <HoTT_Menu+0x1db4>
else HoTT_printfxy(10,3,"%2i ",load_waypoint_tmp2);
e9be: 89 e4 ldi r24, 0x49 ; 73
e9c0: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e9c4: 80 91 56 01 lds r24, 0x0156
e9c8: 1f 92 push r1
e9ca: 8f 93 push r24
e9cc: 8a ea ldi r24, 0xAA ; 170
e9ce: 96 e0 ldi r25, 0x06 ; 6
e9d0: 9f 93 push r25
e9d2: 8f 93 push r24
e9d4: 8b e0 ldi r24, 0x0B ; 11
e9d6: 95 e1 ldi r25, 0x15 ; 21
e9d8: 9f 93 push r25
e9da: 8f 93 push r24
e9dc: e0 91 78 06 lds r30, 0x0678
e9e0: f0 91 79 06 lds r31, 0x0679
e9e4: 09 95 icall
e9e6: 0f 90 pop r0
e9e8: 0f 90 pop r0
e9ea: 0f 90 pop r0
e9ec: 0f 90 pop r0
e9ee: 0f 90 pop r0
e9f0: 0f 90 pop r0
HoTT_printfxy(0,3,"Load list:")
e9f2: 8f e3 ldi r24, 0x3F ; 63
e9f4: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
e9f8: 8f e9 ldi r24, 0x9F ; 159
e9fa: 96 e0 ldi r25, 0x06 ; 6
e9fc: 9f 93 push r25
e9fe: 8f 93 push r24
ea00: 8b e0 ldi r24, 0x0B ; 11
ea02: 95 e1 ldi r25, 0x15 ; 21
ea04: 9f 93 push r25
ea06: 8f 93 push r24
ea08: e0 91 78 06 lds r30, 0x0678
ea0c: f0 91 79 06 lds r31, 0x0679
ea10: 09 95 icall
ea12: 0f 90 pop r0
ea14: 0f 90 pop r0
ea16: 0f 90 pop r0
ea18: 0f 90 pop r0
ea1a: 14 c0 rjmp .+40 ; 0xea44 <HoTT_Menu+0x1e06>
}
else
{
HoTT_printfxy(0,3,"Load list: -- ");
ea1c: 8f e3 ldi r24, 0x3F ; 63
ea1e: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ea22: 80 e9 ldi r24, 0x90 ; 144
ea24: 96 e0 ldi r25, 0x06 ; 6
ea26: 9f 93 push r25
ea28: 8f 93 push r24
ea2a: 8b e0 ldi r24, 0x0B ; 11
ea2c: 95 e1 ldi r25, 0x15 ; 21
ea2e: 9f 93 push r25
ea30: 8f 93 push r24
ea32: e0 91 78 06 lds r30, 0x0678
ea36: f0 91 79 06 lds r31, 0x0679
ea3a: 09 95 icall
ea3c: 0f 90 pop r0
ea3e: 0f 90 pop r0
ea40: 0f 90 pop r0
ea42: 0f 90 pop r0
}
if(NaviData_MaxWpListIndex == 0) HoTT_printfxy(0,4,"No SD-Card ")
ea44: 80 91 89 04 lds r24, 0x0489
ea48: 81 11 cpse r24, r1
ea4a: 15 c0 rjmp .+42 ; 0xea76 <HoTT_Menu+0x1e38>
ea4c: 84 e5 ldi r24, 0x54 ; 84
ea4e: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ea52: 82 e8 ldi r24, 0x82 ; 130
ea54: 96 e0 ldi r25, 0x06 ; 6
ea56: 9f 93 push r25
ea58: 8f 93 push r24
ea5a: 8b e0 ldi r24, 0x0B ; 11
ea5c: 95 e1 ldi r25, 0x15 ; 21
ea5e: 9f 93 push r25
ea60: 8f 93 push r24
ea62: e0 91 78 06 lds r30, 0x0678
ea66: f0 91 79 06 lds r31, 0x0679
ea6a: 09 95 icall
ea6c: 0f 90 pop r0
ea6e: 0f 90 pop r0
ea70: 0f 90 pop r0
ea72: 0f 90 pop r0
ea74: 58 c0 rjmp .+176 ; 0xeb26 <HoTT_Menu+0x1ee8>
else
{
if(GPSInfo.SatFix == SATFIX_3D)
ea76: 80 91 d9 08 lds r24, 0x08D9
ea7a: 83 30 cpi r24, 0x03 ; 3
ea7c: 09 f0 breq .+2 ; 0xea80 <HoTT_Menu+0x1e42>
ea7e: 3f c0 rjmp .+126 ; 0xeafe <HoTT_Menu+0x1ec0>
{
if(changed2 && load_waypoint_tmp2) HoTT_printfxy(0,4,"(Set -> Load)")
ea80: 80 91 71 04 lds r24, 0x0471
ea84: 88 23 and r24, r24
ea86: c9 f0 breq .+50 ; 0xeaba <HoTT_Menu+0x1e7c>
ea88: 80 91 56 01 lds r24, 0x0156
ea8c: 88 23 and r24, r24
ea8e: a9 f0 breq .+42 ; 0xeaba <HoTT_Menu+0x1e7c>
ea90: 84 e5 ldi r24, 0x54 ; 84
ea92: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ea96: 84 e7 ldi r24, 0x74 ; 116
ea98: 96 e0 ldi r25, 0x06 ; 6
ea9a: 9f 93 push r25
ea9c: 8f 93 push r24
ea9e: 8b e0 ldi r24, 0x0B ; 11
eaa0: 95 e1 ldi r25, 0x15 ; 21
eaa2: 9f 93 push r25
eaa4: 8f 93 push r24
eaa6: e0 91 78 06 lds r30, 0x0678
eaaa: f0 91 79 06 lds r31, 0x0679
eaae: 09 95 icall
eab0: 0f 90 pop r0
eab2: 0f 90 pop r0
eab4: 0f 90 pop r0
eab6: 0f 90 pop r0
eab8: 14 c0 rjmp .+40 ; 0xeae2 <HoTT_Menu+0x1ea4>
else HoTT_printfxy(0,4," ");
eaba: 84 e5 ldi r24, 0x54 ; 84
eabc: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
eac0: 86 e6 ldi r24, 0x66 ; 102
eac2: 96 e0 ldi r25, 0x06 ; 6
eac4: 9f 93 push r25
eac6: 8f 93 push r24
eac8: 8b e0 ldi r24, 0x0B ; 11
eaca: 95 e1 ldi r25, 0x15 ; 21
eacc: 9f 93 push r25
eace: 8f 93 push r24
ead0: e0 91 78 06 lds r30, 0x0678
ead4: f0 91 79 06 lds r31, 0x0679
ead8: 09 95 icall
eada: 0f 90 pop r0
eadc: 0f 90 pop r0
eade: 0f 90 pop r0
eae0: 0f 90 pop r0
if(HottKeyboard == HOTT_KEY_SET) { if(load_waypoint_tmp2) ToNC_Load_WP_List = load_waypoint_tmp2 | 128; changed2 = 0;}
eae2: 80 91 a9 0c lds r24, 0x0CA9
eae6: 86 30 cpi r24, 0x06 ; 6
eae8: f1 f4 brne .+60 ; 0xeb26 <HoTT_Menu+0x1ee8>
eaea: 80 91 56 01 lds r24, 0x0156
eaee: 88 23 and r24, r24
eaf0: 19 f0 breq .+6 ; 0xeaf8 <HoTT_Menu+0x1eba>
eaf2: 80 68 ori r24, 0x80 ; 128
eaf4: 80 93 8a 04 sts 0x048A, r24
eaf8: 10 92 71 04 sts 0x0471, r1
eafc: 14 c0 rjmp .+40 ; 0xeb26 <HoTT_Menu+0x1ee8>
} else HoTT_printfxy(0,4,"!No GPS-Fix! ");
eafe: 84 e5 ldi r24, 0x54 ; 84
eb00: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
eb04: 88 e5 ldi r24, 0x58 ; 88
eb06: 96 e0 ldi r25, 0x06 ; 6
eb08: 9f 93 push r25
eb0a: 8f 93 push r24
eb0c: 8b e0 ldi r24, 0x0B ; 11
eb0e: 95 e1 ldi r25, 0x15 ; 21
eb10: 9f 93 push r25
eb12: 8f 93 push r24
eb14: e0 91 78 06 lds r30, 0x0678
eb18: f0 91 79 06 lds r31, 0x0679
eb1c: 09 95 icall
eb1e: 0f 90 pop r0
eb20: 0f 90 pop r0
eb22: 0f 90 pop r0
eb24: 0f 90 pop r0
}
if(HottKeyboard == HOTT_KEY_UP && load_waypoint_tmp2 < NaviData_MaxWpListIndex) { changed2 = 1; load_waypoint_tmp2++;HoTTBlink = 0;}
eb26: 80 91 a9 0c lds r24, 0x0CA9
eb2a: 84 30 cpi r24, 0x04 ; 4
eb2c: 79 f4 brne .+30 ; 0xeb4c <HoTT_Menu+0x1f0e>
eb2e: 80 91 56 01 lds r24, 0x0156
eb32: 90 91 89 04 lds r25, 0x0489
eb36: 89 17 cp r24, r25
eb38: 08 f5 brcc .+66 ; 0xeb7c <HoTT_Menu+0x1f3e>
eb3a: 91 e0 ldi r25, 0x01 ; 1
eb3c: 90 93 71 04 sts 0x0471, r25
eb40: 8f 5f subi r24, 0xFF ; 255
eb42: 80 93 56 01 sts 0x0156, r24
eb46: 10 92 ed 02 sts 0x02ED, r1
eb4a: 18 c0 rjmp .+48 ; 0xeb7c <HoTT_Menu+0x1f3e>
if(HottKeyboard == HOTT_KEY_DOWN && load_waypoint_tmp2 > 1) { changed2 = 1; load_waypoint_tmp2--;HoTTBlink = 0;};
eb4c: 82 30 cpi r24, 0x02 ; 2
eb4e: 69 f4 brne .+26 ; 0xeb6a <HoTT_Menu+0x1f2c>
eb50: 80 91 56 01 lds r24, 0x0156
eb54: 82 30 cpi r24, 0x02 ; 2
eb56: 90 f0 brcs .+36 ; 0xeb7c <HoTT_Menu+0x1f3e>
eb58: 91 e0 ldi r25, 0x01 ; 1
eb5a: 90 93 71 04 sts 0x0471, r25
eb5e: 81 50 subi r24, 0x01 ; 1
eb60: 80 93 56 01 sts 0x0156, r24
eb64: 10 92 ed 02 sts 0x02ED, r1
eb68: 09 c0 rjmp .+18 ; 0xeb7c <HoTT_Menu+0x1f3e>
if(HottKeyboard == HOTT_KEY_LEFT) { LIBFC_HoTT_Clear(); page = 4; line = 0;}
eb6a: 88 30 cpi r24, 0x08 ; 8
eb6c: 39 f4 brne .+14 ; 0xeb7c <HoTT_Menu+0x1f3e>
eb6e: 0e 94 3a 15 call 0x2a74 ; 0x2a74 <LIBFC_HoTT_Clear>
eb72: 84 e0 ldi r24, 0x04 ; 4
eb74: 80 93 76 04 sts 0x0476, r24
eb78: 10 92 75 04 sts 0x0475, r1
if(HottKeyboard == HOTT_KEY_RIGHT) { LIBFC_HoTT_Clear(); page = 2; line = 0;};
eb7c: 80 91 a9 0c lds r24, 0x0CA9
eb80: 81 30 cpi r24, 0x01 ; 1
eb82: 39 f4 brne .+14 ; 0xeb92 <HoTT_Menu+0x1f54>
eb84: 0e 94 3a 15 call 0x2a74 ; 0x2a74 <LIBFC_HoTT_Clear>
eb88: 82 e0 ldi r24, 0x02 ; 2
eb8a: 80 93 76 04 sts 0x0476, r24
eb8e: 10 92 75 04 sts 0x0475, r1
HottKeyboard = 0;
eb92: 10 92 a9 0c sts 0x0CA9, r1
break;
eb96: cd c5 rjmp .+2970 ; 0xf732 <HoTT_Menu+0x2af4>
default: line = 0;
eb98: 10 92 75 04 sts 0x0475, r1
break;
eb9c: ca c5 rjmp .+2964 ; 0xf732 <HoTT_Menu+0x2af4>
}
break;
case 4:
switch(line++)
eb9e: 80 91 75 04 lds r24, 0x0475
eba2: 91 e0 ldi r25, 0x01 ; 1
eba4: 98 0f add r25, r24
eba6: 90 93 75 04 sts 0x0475, r25
ebaa: 82 30 cpi r24, 0x02 ; 2
ebac: 09 f4 brne .+2 ; 0xebb0 <HoTT_Menu+0x1f72>
ebae: 65 c0 rjmp .+202 ; 0xec7a <HoTT_Menu+0x203c>
ebb0: 28 f4 brcc .+10 ; 0xebbc <HoTT_Menu+0x1f7e>
ebb2: 88 23 and r24, r24
ebb4: 39 f0 breq .+14 ; 0xebc4 <HoTT_Menu+0x1f86>
ebb6: 81 30 cpi r24, 0x01 ; 1
ebb8: 49 f1 breq .+82 ; 0xec0c <HoTT_Menu+0x1fce>
ebba: 90 c1 rjmp .+800 ; 0xeedc <HoTT_Menu+0x229e>
ebbc: 86 30 cpi r24, 0x06 ; 6
ebbe: 08 f4 brcc .+2 ; 0xebc2 <HoTT_Menu+0x1f84>
ebc0: 98 c0 rjmp .+304 ; 0xecf2 <HoTT_Menu+0x20b4>
ebc2: 8c c1 rjmp .+792 ; 0xeedc <HoTT_Menu+0x229e>
{
static unsigned char load_waypoint_tmp = 1, changed;
case 0:
HoTT_printfxy(0,0,"Load Waypoints");
ebc4: 80 e0 ldi r24, 0x00 ; 0
ebc6: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ebca: 89 e4 ldi r24, 0x49 ; 73
ebcc: 96 e0 ldi r25, 0x06 ; 6
ebce: 9f 93 push r25
ebd0: 8f 93 push r24
ebd2: 0b e0 ldi r16, 0x0B ; 11
ebd4: 15 e1 ldi r17, 0x15 ; 21
ebd6: 1f 93 push r17
ebd8: 0f 93 push r16
ebda: e0 91 78 06 lds r30, 0x0678
ebde: f0 91 79 06 lds r31, 0x0679
ebe2: 09 95 icall
HoTT_printfxy(0,1,"(Fixed Positions)");
ebe4: 85 e1 ldi r24, 0x15 ; 21
ebe6: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ebea: 87 e3 ldi r24, 0x37 ; 55
ebec: 96 e0 ldi r25, 0x06 ; 6
ebee: 9f 93 push r25
ebf0: 8f 93 push r24
ebf2: 1f 93 push r17
ebf4: 0f 93 push r16
ebf6: e0 91 78 06 lds r30, 0x0678
ebfa: f0 91 79 06 lds r31, 0x0679
ebfe: 09 95 icall
break;
ec00: 0f b6 in r0, 0x3f ; 63
ec02: f8 94 cli
ec04: de bf out 0x3e, r29 ; 62
ec06: 0f be out 0x3f, r0 ; 63
ec08: cd bf out 0x3d, r28 ; 61
ec0a: 93 c5 rjmp .+2854 ; 0xf732 <HoTT_Menu+0x2af4>
case 1:
if(NaviData_WaypointNumber) HoTT_printfxy(0,6,"Active WP:%2d/%d ",NaviData_WaypointIndex,NaviData_WaypointNumber)
ec0c: 80 91 8c 04 lds r24, 0x048C
ec10: 88 23 and r24, r24
ec12: f1 f0 breq .+60 ; 0xec50 <HoTT_Menu+0x2012>
ec14: 8e e7 ldi r24, 0x7E ; 126
ec16: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ec1a: 80 91 8c 04 lds r24, 0x048C
ec1e: 1f 92 push r1
ec20: 8f 93 push r24
ec22: 80 91 8d 04 lds r24, 0x048D
ec26: 1f 92 push r1
ec28: 8f 93 push r24
ec2a: 85 e2 ldi r24, 0x25 ; 37
ec2c: 96 e0 ldi r25, 0x06 ; 6
ec2e: 9f 93 push r25
ec30: 8f 93 push r24
ec32: 8b e0 ldi r24, 0x0B ; 11
ec34: 95 e1 ldi r25, 0x15 ; 21
ec36: 9f 93 push r25
ec38: 8f 93 push r24
ec3a: e0 91 78 06 lds r30, 0x0678
ec3e: f0 91 79 06 lds r31, 0x0679
ec42: 09 95 icall
ec44: 0f b6 in r0, 0x3f ; 63
ec46: f8 94 cli
ec48: de bf out 0x3e, r29 ; 62
ec4a: 0f be out 0x3f, r0 ; 63
ec4c: cd bf out 0x3d, r28 ; 61
ec4e: 71 c5 rjmp .+2786 ; 0xf732 <HoTT_Menu+0x2af4>
else HoTT_printfxy(0,6,"No WPs active ")
ec50: 8e e7 ldi r24, 0x7E ; 126
ec52: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ec56: 83 e1 ldi r24, 0x13 ; 19
ec58: 96 e0 ldi r25, 0x06 ; 6
ec5a: 9f 93 push r25
ec5c: 8f 93 push r24
ec5e: 8b e0 ldi r24, 0x0B ; 11
ec60: 95 e1 ldi r25, 0x15 ; 21
ec62: 9f 93 push r25
ec64: 8f 93 push r24
ec66: e0 91 78 06 lds r30, 0x0678
ec6a: f0 91 79 06 lds r31, 0x0679
ec6e: 09 95 icall
ec70: 0f 90 pop r0
ec72: 0f 90 pop r0
ec74: 0f 90 pop r0
ec76: 0f 90 pop r0
ec78: 5c c5 rjmp .+2744 ; 0xf732 <HoTT_Menu+0x2af4>
break;
case 2:
HoTT_printfxy(0,7,"%2i.%1iV ",UBat/10, UBat%10)
ec7a: 83 e9 ldi r24, 0x93 ; 147
ec7c: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ec80: 80 91 1a 01 lds r24, 0x011A
ec84: 90 91 1b 01 lds r25, 0x011B
ec88: e0 91 1a 01 lds r30, 0x011A
ec8c: f0 91 1b 01 lds r31, 0x011B
ec90: 2a e0 ldi r18, 0x0A ; 10
ec92: 30 e0 ldi r19, 0x00 ; 0
ec94: b9 01 movw r22, r18
ec96: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
ec9a: 9f 93 push r25
ec9c: 8f 93 push r24
ec9e: cf 01 movw r24, r30
eca0: b9 01 movw r22, r18
eca2: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
eca6: 7f 93 push r23
eca8: 6f 93 push r22
ecaa: 89 e0 ldi r24, 0x09 ; 9
ecac: 96 e0 ldi r25, 0x06 ; 6
ecae: 9f 93 push r25
ecb0: 8f 93 push r24
ecb2: 0b e0 ldi r16, 0x0B ; 11
ecb4: 15 e1 ldi r17, 0x15 ; 21
ecb6: 1f 93 push r17
ecb8: 0f 93 push r16
ecba: e0 91 78 06 lds r30, 0x0678
ecbe: f0 91 79 06 lds r31, 0x0679
ecc2: 09 95 icall
HoTT_printfxy(11,7,"%s",WPL_Name)
ecc4: 8e e9 ldi r24, 0x9E ; 158
ecc6: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ecca: 82 ed ldi r24, 0xD2 ; 210
eccc: 96 e0 ldi r25, 0x06 ; 6
ecce: 9f 93 push r25
ecd0: 8f 93 push r24
ecd2: 86 e0 ldi r24, 0x06 ; 6
ecd4: 96 e0 ldi r25, 0x06 ; 6
ecd6: 9f 93 push r25
ecd8: 8f 93 push r24
ecda: 1f 93 push r17
ecdc: 0f 93 push r16
ecde: e0 91 78 06 lds r30, 0x0678
ece2: f0 91 79 06 lds r31, 0x0679
ece6: 09 95 icall
ece8: 0f b6 in r0, 0x3f ; 63
ecea: f8 94 cli
ecec: de bf out 0x3e, r29 ; 62
ecee: 0f be out 0x3f, r0 ; 63
ecf0: cd bf out 0x3d, r28 ; 61
case 3:
case 4:
case 5:
HoTT_printfxy(0,3,"Load list:")
ecf2: 8f e3 ldi r24, 0x3F ; 63
ecf4: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ecf8: 8b ef ldi r24, 0xFB ; 251
ecfa: 95 e0 ldi r25, 0x05 ; 5
ecfc: 9f 93 push r25
ecfe: 8f 93 push r24
ed00: 8b e0 ldi r24, 0x0B ; 11
ed02: 95 e1 ldi r25, 0x15 ; 21
ed04: 9f 93 push r25
ed06: 8f 93 push r24
ed08: e0 91 78 06 lds r30, 0x0678
ed0c: f0 91 79 06 lds r31, 0x0679
ed10: 09 95 icall
if(load_waypoint_tmp)
ed12: 0f 90 pop r0
ed14: 0f 90 pop r0
ed16: 0f 90 pop r0
ed18: 0f 90 pop r0
ed1a: 80 91 55 01 lds r24, 0x0155
ed1e: 88 23 and r24, r24
ed20: c1 f1 breq .+112 ; 0xed92 <HoTT_Menu+0x2154>
{
if(changed && HoTTBlink) HoTT_printfxy(10,3," ")
ed22: 80 91 70 04 lds r24, 0x0470
ed26: 88 23 and r24, r24
ed28: c9 f0 breq .+50 ; 0xed5c <HoTT_Menu+0x211e>
ed2a: 80 91 ed 02 lds r24, 0x02ED
ed2e: 88 23 and r24, r24
ed30: a9 f0 breq .+42 ; 0xed5c <HoTT_Menu+0x211e>
ed32: 89 e4 ldi r24, 0x49 ; 73
ed34: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ed38: 87 ef ldi r24, 0xF7 ; 247
ed3a: 95 e0 ldi r25, 0x05 ; 5
ed3c: 9f 93 push r25
ed3e: 8f 93 push r24
ed40: 8b e0 ldi r24, 0x0B ; 11
ed42: 95 e1 ldi r25, 0x15 ; 21
ed44: 9f 93 push r25
ed46: 8f 93 push r24
ed48: e0 91 78 06 lds r30, 0x0678
ed4c: f0 91 79 06 lds r31, 0x0679
ed50: 09 95 icall
ed52: 0f 90 pop r0
ed54: 0f 90 pop r0
ed56: 0f 90 pop r0
ed58: 0f 90 pop r0
ed5a: 2f c0 rjmp .+94 ; 0xedba <HoTT_Menu+0x217c>
else HoTT_printfxy(10,3,"%2d (FIX)",load_waypoint_tmp);
ed5c: 89 e4 ldi r24, 0x49 ; 73
ed5e: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ed62: 80 91 55 01 lds r24, 0x0155
ed66: 1f 92 push r1
ed68: 8f 93 push r24
ed6a: 8d ee ldi r24, 0xED ; 237
ed6c: 95 e0 ldi r25, 0x05 ; 5
ed6e: 9f 93 push r25
ed70: 8f 93 push r24
ed72: 8b e0 ldi r24, 0x0B ; 11
ed74: 95 e1 ldi r25, 0x15 ; 21
ed76: 9f 93 push r25
ed78: 8f 93 push r24
ed7a: e0 91 78 06 lds r30, 0x0678
ed7e: f0 91 79 06 lds r31, 0x0679
ed82: 09 95 icall
ed84: 0f 90 pop r0
ed86: 0f 90 pop r0
ed88: 0f 90 pop r0
ed8a: 0f 90 pop r0
ed8c: 0f 90 pop r0
ed8e: 0f 90 pop r0
ed90: 14 c0 rjmp .+40 ; 0xedba <HoTT_Menu+0x217c>
}
else
{
HoTT_printfxy(10,3," --")
ed92: 89 e4 ldi r24, 0x49 ; 73
ed94: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ed98: 89 ee ldi r24, 0xE9 ; 233
ed9a: 95 e0 ldi r25, 0x05 ; 5
ed9c: 9f 93 push r25
ed9e: 8f 93 push r24
eda0: 8b e0 ldi r24, 0x0B ; 11
eda2: 95 e1 ldi r25, 0x15 ; 21
eda4: 9f 93 push r25
eda6: 8f 93 push r24
eda8: e0 91 78 06 lds r30, 0x0678
edac: f0 91 79 06 lds r31, 0x0679
edb0: 09 95 icall
edb2: 0f 90 pop r0
edb4: 0f 90 pop r0
edb6: 0f 90 pop r0
edb8: 0f 90 pop r0
}
if(NaviData_MaxWpListIndex == 0) HoTT_printfxy(0,4,"No SD-Card ")
edba: 80 91 89 04 lds r24, 0x0489
edbe: 81 11 cpse r24, r1
edc0: 15 c0 rjmp .+42 ; 0xedec <HoTT_Menu+0x21ae>
edc2: 84 e5 ldi r24, 0x54 ; 84
edc4: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
edc8: 8b ed ldi r24, 0xDB ; 219
edca: 95 e0 ldi r25, 0x05 ; 5
edcc: 9f 93 push r25
edce: 8f 93 push r24
edd0: 8b e0 ldi r24, 0x0B ; 11
edd2: 95 e1 ldi r25, 0x15 ; 21
edd4: 9f 93 push r25
edd6: 8f 93 push r24
edd8: e0 91 78 06 lds r30, 0x0678
eddc: f0 91 79 06 lds r31, 0x0679
ede0: 09 95 icall
ede2: 0f 90 pop r0
ede4: 0f 90 pop r0
ede6: 0f 90 pop r0
ede8: 0f 90 pop r0
edea: 31 c0 rjmp .+98 ; 0xee4e <HoTT_Menu+0x2210>
else
{
if(changed && load_waypoint_tmp) HoTT_printfxy(0,4,"(Set -> Load)")
edec: 80 91 70 04 lds r24, 0x0470
edf0: 88 23 and r24, r24
edf2: c9 f0 breq .+50 ; 0xee26 <HoTT_Menu+0x21e8>
edf4: 80 91 55 01 lds r24, 0x0155
edf8: 88 23 and r24, r24
edfa: a9 f0 breq .+42 ; 0xee26 <HoTT_Menu+0x21e8>
edfc: 84 e5 ldi r24, 0x54 ; 84
edfe: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ee02: 8d ec ldi r24, 0xCD ; 205
ee04: 95 e0 ldi r25, 0x05 ; 5
ee06: 9f 93 push r25
ee08: 8f 93 push r24
ee0a: 8b e0 ldi r24, 0x0B ; 11
ee0c: 95 e1 ldi r25, 0x15 ; 21
ee0e: 9f 93 push r25
ee10: 8f 93 push r24
ee12: e0 91 78 06 lds r30, 0x0678
ee16: f0 91 79 06 lds r31, 0x0679
ee1a: 09 95 icall
ee1c: 0f 90 pop r0
ee1e: 0f 90 pop r0
ee20: 0f 90 pop r0
ee22: 0f 90 pop r0
ee24: 14 c0 rjmp .+40 ; 0xee4e <HoTT_Menu+0x2210>
else HoTT_printfxy(0,4," ");
ee26: 84 e5 ldi r24, 0x54 ; 84
ee28: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ee2c: 8f eb ldi r24, 0xBF ; 191
ee2e: 95 e0 ldi r25, 0x05 ; 5
ee30: 9f 93 push r25
ee32: 8f 93 push r24
ee34: 8b e0 ldi r24, 0x0B ; 11
ee36: 95 e1 ldi r25, 0x15 ; 21
ee38: 9f 93 push r25
ee3a: 8f 93 push r24
ee3c: e0 91 78 06 lds r30, 0x0678
ee40: f0 91 79 06 lds r31, 0x0679
ee44: 09 95 icall
ee46: 0f 90 pop r0
ee48: 0f 90 pop r0
ee4a: 0f 90 pop r0
ee4c: 0f 90 pop r0
}
if(HottKeyboard == HOTT_KEY_UP && load_waypoint_tmp < NaviData_MaxWpListIndex) { changed = 1; load_waypoint_tmp++; HoTTBlink = 0;}
ee4e: 80 91 a9 0c lds r24, 0x0CA9
ee52: 84 30 cpi r24, 0x04 ; 4
ee54: 79 f4 brne .+30 ; 0xee74 <HoTT_Menu+0x2236>
ee56: 90 91 55 01 lds r25, 0x0155
ee5a: 20 91 89 04 lds r18, 0x0489
ee5e: 92 17 cp r25, r18
ee60: 10 f5 brcc .+68 ; 0xeea6 <HoTT_Menu+0x2268>
ee62: 21 e0 ldi r18, 0x01 ; 1
ee64: 20 93 70 04 sts 0x0470, r18
ee68: 9f 5f subi r25, 0xFF ; 255
ee6a: 90 93 55 01 sts 0x0155, r25
ee6e: 10 92 ed 02 sts 0x02ED, r1
ee72: 19 c0 rjmp .+50 ; 0xeea6 <HoTT_Menu+0x2268>
if(HottKeyboard == HOTT_KEY_DOWN && load_waypoint_tmp > 1) { changed = 1; load_waypoint_tmp--; HoTTBlink = 0;};
ee74: 82 30 cpi r24, 0x02 ; 2
ee76: 69 f4 brne .+26 ; 0xee92 <HoTT_Menu+0x2254>
ee78: 80 91 55 01 lds r24, 0x0155
ee7c: 82 30 cpi r24, 0x02 ; 2
ee7e: f0 f0 brcs .+60 ; 0xeebc <HoTT_Menu+0x227e>
ee80: 91 e0 ldi r25, 0x01 ; 1
ee82: 90 93 70 04 sts 0x0470, r25
ee86: 81 50 subi r24, 0x01 ; 1
ee88: 80 93 55 01 sts 0x0155, r24
ee8c: 10 92 ed 02 sts 0x02ED, r1
ee90: 15 c0 rjmp .+42 ; 0xeebc <HoTT_Menu+0x227e>
if(HottKeyboard == HOTT_KEY_SET) { if(load_waypoint_tmp) ToNC_Load_WP_List = load_waypoint_tmp; changed = 0;}
ee92: 86 30 cpi r24, 0x06 ; 6
ee94: 41 f4 brne .+16 ; 0xeea6 <HoTT_Menu+0x2268>
ee96: 80 91 55 01 lds r24, 0x0155
ee9a: 81 11 cpse r24, r1
ee9c: 80 93 8a 04 sts 0x048A, r24
eea0: 10 92 70 04 sts 0x0470, r1
eea4: 0b c0 rjmp .+22 ; 0xeebc <HoTT_Menu+0x227e>
if(HottKeyboard == HOTT_KEY_LEFT) { LIBFC_HoTT_Clear(); page++; line = 0;}
eea6: 88 30 cpi r24, 0x08 ; 8
eea8: 49 f4 brne .+18 ; 0xeebc <HoTT_Menu+0x227e>
eeaa: 0e 94 3a 15 call 0x2a74 ; 0x2a74 <LIBFC_HoTT_Clear>
eeae: 80 91 76 04 lds r24, 0x0476
eeb2: 8f 5f subi r24, 0xFF ; 255
eeb4: 80 93 76 04 sts 0x0476, r24
eeb8: 10 92 75 04 sts 0x0475, r1
if(HottKeyboard == HOTT_KEY_RIGHT) { LIBFC_HoTT_Clear(); page--; line = 0;};
eebc: 80 91 a9 0c lds r24, 0x0CA9
eec0: 81 30 cpi r24, 0x01 ; 1
eec2: 49 f4 brne .+18 ; 0xeed6 <HoTT_Menu+0x2298>
eec4: 0e 94 3a 15 call 0x2a74 ; 0x2a74 <LIBFC_HoTT_Clear>
eec8: 80 91 76 04 lds r24, 0x0476
eecc: 81 50 subi r24, 0x01 ; 1
eece: 80 93 76 04 sts 0x0476, r24
eed2: 10 92 75 04 sts 0x0475, r1
HottKeyboard = 0;
eed6: 10 92 a9 0c sts 0x0CA9, r1
break;
eeda: 2b c4 rjmp .+2134 ; 0xf732 <HoTT_Menu+0x2af4>
default: line = 0;
eedc: 10 92 75 04 sts 0x0475, r1
break;
eee0: 28 c4 rjmp .+2128 ; 0xf732 <HoTT_Menu+0x2af4>
}
break;
case 5:
switch(line++)
eee2: 80 91 75 04 lds r24, 0x0475
eee6: 91 e0 ldi r25, 0x01 ; 1
eee8: 98 0f add r25, r24
eeea: 90 93 75 04 sts 0x0475, r25
eeee: 82 30 cpi r24, 0x02 ; 2
eef0: 09 f4 brne .+2 ; 0xeef4 <HoTT_Menu+0x22b6>
eef2: 81 c0 rjmp .+258 ; 0xeff6 <HoTT_Menu+0x23b8>
eef4: 28 f4 brcc .+10 ; 0xef00 <HoTT_Menu+0x22c2>
eef6: 88 23 and r24, r24
eef8: 39 f0 breq .+14 ; 0xef08 <HoTT_Menu+0x22ca>
eefa: 81 30 cpi r24, 0x01 ; 1
eefc: d1 f0 breq .+52 ; 0xef32 <HoTT_Menu+0x22f4>
eefe: c9 c1 rjmp .+914 ; 0xf292 <HoTT_Menu+0x2654>
ef00: 86 30 cpi r24, 0x06 ; 6
ef02: 08 f4 brcc .+2 ; 0xef06 <HoTT_Menu+0x22c8>
ef04: c7 c0 rjmp .+398 ; 0xf094 <HoTT_Menu+0x2456>
ef06: c5 c1 rjmp .+906 ; 0xf292 <HoTT_Menu+0x2654>
{
static unsigned char wp_tmp, changed;
case 0:
HoTT_printfxy(0,0,"Store single Position");
ef08: 80 e0 ldi r24, 0x00 ; 0
ef0a: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ef0e: 89 ea ldi r24, 0xA9 ; 169
ef10: 95 e0 ldi r25, 0x05 ; 5
ef12: 9f 93 push r25
ef14: 8f 93 push r24
ef16: 8b e0 ldi r24, 0x0B ; 11
ef18: 95 e1 ldi r25, 0x15 ; 21
ef1a: 9f 93 push r25
ef1c: 8f 93 push r24
ef1e: e0 91 78 06 lds r30, 0x0678
ef22: f0 91 79 06 lds r31, 0x0679
ef26: 09 95 icall
// HoTT_printfxy(0,1,"(Fixed Positions)");
break;
ef28: 0f 90 pop r0
ef2a: 0f 90 pop r0
ef2c: 0f 90 pop r0
ef2e: 0f 90 pop r0
ef30: 00 c4 rjmp .+2048 ; 0xf732 <HoTT_Menu+0x2af4>
case 1:
HoTT_printfxy(0,2," %2i.%1iV ",UBat/10, UBat%10)
ef32: 8a e2 ldi r24, 0x2A ; 42
ef34: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ef38: 80 91 1a 01 lds r24, 0x011A
ef3c: 90 91 1b 01 lds r25, 0x011B
ef40: e0 91 1a 01 lds r30, 0x011A
ef44: f0 91 1b 01 lds r31, 0x011B
ef48: 2a e0 ldi r18, 0x0A ; 10
ef4a: 30 e0 ldi r19, 0x00 ; 0
ef4c: b9 01 movw r22, r18
ef4e: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
ef52: 9f 93 push r25
ef54: 8f 93 push r24
ef56: cf 01 movw r24, r30
ef58: b9 01 movw r22, r18
ef5a: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
ef5e: 7f 93 push r23
ef60: 6f 93 push r22
ef62: 8e e9 ldi r24, 0x9E ; 158
ef64: 95 e0 ldi r25, 0x05 ; 5
ef66: 9f 93 push r25
ef68: 8f 93 push r24
ef6a: 0b e0 ldi r16, 0x0B ; 11
ef6c: 15 e1 ldi r17, 0x15 ; 21
ef6e: 1f 93 push r17
ef70: 0f 93 push r16
ef72: e0 91 78 06 lds r30, 0x0678
ef76: f0 91 79 06 lds r31, 0x0679
ef7a: 09 95 icall
HoTT_printfxy(0,3," %2i:%02i ",FlugSekunden/60,FlugSekunden%60);
ef7c: 8f e3 ldi r24, 0x3F ; 63
ef7e: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
ef82: 40 91 5e 04 lds r20, 0x045E
ef86: 50 91 5f 04 lds r21, 0x045F
ef8a: 9a 01 movw r18, r20
ef8c: a9 e8 ldi r26, 0x89 ; 137
ef8e: b8 e8 ldi r27, 0x88 ; 136
ef90: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
ef94: 96 95 lsr r25
ef96: 87 95 ror r24
ef98: 92 95 swap r25
ef9a: 82 95 swap r24
ef9c: 8f 70 andi r24, 0x0F ; 15
ef9e: 89 27 eor r24, r25
efa0: 9f 70 andi r25, 0x0F ; 15
efa2: 89 27 eor r24, r25
efa4: 6c e3 ldi r22, 0x3C ; 60
efa6: 68 9f mul r22, r24
efa8: 90 01 movw r18, r0
efaa: 69 9f mul r22, r25
efac: 30 0d add r19, r0
efae: 11 24 eor r1, r1
efb0: ca 01 movw r24, r20
efb2: 82 1b sub r24, r18
efb4: 93 0b sbc r25, r19
efb6: 9f 93 push r25
efb8: 8f 93 push r24
efba: 9a 01 movw r18, r20
efbc: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
efc0: 96 95 lsr r25
efc2: 87 95 ror r24
efc4: 92 95 swap r25
efc6: 82 95 swap r24
efc8: 8f 70 andi r24, 0x0F ; 15
efca: 89 27 eor r24, r25
efcc: 9f 70 andi r25, 0x0F ; 15
efce: 89 27 eor r24, r25
efd0: 9f 93 push r25
efd2: 8f 93 push r24
efd4: 83 e9 ldi r24, 0x93 ; 147
efd6: 95 e0 ldi r25, 0x05 ; 5
efd8: 9f 93 push r25
efda: 8f 93 push r24
efdc: 1f 93 push r17
efde: 0f 93 push r16
efe0: e0 91 78 06 lds r30, 0x0678
efe4: f0 91 79 06 lds r31, 0x0679
efe8: 09 95 icall
// HoTT_printfxy(0,4,"Dist:%3dm",NaviData_TargetDistance)
break;
efea: 0f b6 in r0, 0x3f ; 63
efec: f8 94 cli
efee: de bf out 0x3e, r29 ; 62
eff0: 0f be out 0x3f, r0 ; 63
eff2: cd bf out 0x3d, r28 ; 61
eff4: 9e c3 rjmp .+1852 ; 0xf732 <HoTT_Menu+0x2af4>
case 2:
HoTT_printfxy(11,2,"ALT:%4im", (int16_t)(HoehenWert/100))
eff6: 85 e3 ldi r24, 0x35 ; 53
eff8: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
effc: 60 91 fe 03 lds r22, 0x03FE
f000: 70 91 ff 03 lds r23, 0x03FF
f004: 80 91 00 04 lds r24, 0x0400
f008: 90 91 01 04 lds r25, 0x0401
f00c: 24 e6 ldi r18, 0x64 ; 100
f00e: 30 e0 ldi r19, 0x00 ; 0
f010: 40 e0 ldi r20, 0x00 ; 0
f012: 50 e0 ldi r21, 0x00 ; 0
f014: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
f018: 3f 93 push r19
f01a: 2f 93 push r18
f01c: 8a e8 ldi r24, 0x8A ; 138
f01e: 95 e0 ldi r25, 0x05 ; 5
f020: 9f 93 push r25
f022: 8f 93 push r24
f024: 0b e0 ldi r16, 0x0B ; 11
f026: 15 e1 ldi r17, 0x15 ; 21
f028: 1f 93 push r17
f02a: 0f 93 push r16
f02c: e0 91 78 06 lds r30, 0x0678
f030: f0 91 79 06 lds r31, 0x0679
f034: 09 95 icall
HoTT_printfxy(11,3,"DIR: %3d%c",CompassCorrected, HoTT_GRAD);
f036: 8a e4 ldi r24, 0x4A ; 74
f038: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f03c: 1f 92 push r1
f03e: 80 e6 ldi r24, 0x60 ; 96
f040: 8f 93 push r24
f042: 80 91 66 06 lds r24, 0x0666
f046: 8f 93 push r24
f048: 80 91 65 06 lds r24, 0x0665
f04c: 8f 93 push r24
f04e: 8f e7 ldi r24, 0x7F ; 127
f050: 95 e0 ldi r25, 0x05 ; 5
f052: 9f 93 push r25
f054: 8f 93 push r24
f056: 1f 93 push r17
f058: 0f 93 push r16
f05a: e0 91 78 06 lds r30, 0x0678
f05e: f0 91 79 06 lds r31, 0x0679
f062: 09 95 icall
HoTT_printfxy(11,4,"Cam: %3i",Parameter_ServoNickControl);
f064: 8f e5 ldi r24, 0x5F ; 95
f066: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f06a: 80 91 2f 01 lds r24, 0x012F
f06e: 1f 92 push r1
f070: 8f 93 push r24
f072: 86 e7 ldi r24, 0x76 ; 118
f074: 95 e0 ldi r25, 0x05 ; 5
f076: 9f 93 push r25
f078: 8f 93 push r24
f07a: 1f 93 push r17
f07c: 0f 93 push r16
f07e: e0 91 78 06 lds r30, 0x0678
f082: f0 91 79 06 lds r31, 0x0679
f086: 09 95 icall
break;
f088: 0f b6 in r0, 0x3f ; 63
f08a: f8 94 cli
f08c: de bf out 0x3e, r29 ; 62
f08e: 0f be out 0x3f, r0 ; 63
f090: cd bf out 0x3d, r28 ; 61
f092: 4f c3 rjmp .+1694 ; 0xf732 <HoTT_Menu+0x2af4>
case 3:
case 4:
case 5:
HoTT_printfxy(0,6,"Store point:")
f094: 8e e7 ldi r24, 0x7E ; 126
f096: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f09a: 89 e6 ldi r24, 0x69 ; 105
f09c: 95 e0 ldi r25, 0x05 ; 5
f09e: 9f 93 push r25
f0a0: 8f 93 push r24
f0a2: 8b e0 ldi r24, 0x0B ; 11
f0a4: 95 e1 ldi r25, 0x15 ; 21
f0a6: 9f 93 push r25
f0a8: 8f 93 push r24
f0aa: e0 91 78 06 lds r30, 0x0678
f0ae: f0 91 79 06 lds r31, 0x0679
f0b2: 09 95 icall
if(wp_tmp)
f0b4: 0f 90 pop r0
f0b6: 0f 90 pop r0
f0b8: 0f 90 pop r0
f0ba: 0f 90 pop r0
f0bc: 80 91 6f 04 lds r24, 0x046F
f0c0: 88 23 and r24, r24
f0c2: c1 f1 breq .+112 ; 0xf134 <HoTT_Menu+0x24f6>
{
if(changed && HoTTBlink) HoTT_printfxy(13,6," ")
f0c4: 80 91 6e 04 lds r24, 0x046E
f0c8: 88 23 and r24, r24
f0ca: c9 f0 breq .+50 ; 0xf0fe <HoTT_Menu+0x24c0>
f0cc: 80 91 ed 02 lds r24, 0x02ED
f0d0: 88 23 and r24, r24
f0d2: a9 f0 breq .+42 ; 0xf0fe <HoTT_Menu+0x24c0>
f0d4: 8b e8 ldi r24, 0x8B ; 139
f0d6: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f0da: 85 e6 ldi r24, 0x65 ; 101
f0dc: 95 e0 ldi r25, 0x05 ; 5
f0de: 9f 93 push r25
f0e0: 8f 93 push r24
f0e2: 8b e0 ldi r24, 0x0B ; 11
f0e4: 95 e1 ldi r25, 0x15 ; 21
f0e6: 9f 93 push r25
f0e8: 8f 93 push r24
f0ea: e0 91 78 06 lds r30, 0x0678
f0ee: f0 91 79 06 lds r31, 0x0679
f0f2: 09 95 icall
f0f4: 0f 90 pop r0
f0f6: 0f 90 pop r0
f0f8: 0f 90 pop r0
f0fa: 0f 90 pop r0
f0fc: 2f c0 rjmp .+94 ; 0xf15c <HoTT_Menu+0x251e>
else HoTT_printfxy(13,6,"%2d ",wp_tmp);
f0fe: 8b e8 ldi r24, 0x8B ; 139
f100: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f104: 80 91 6f 04 lds r24, 0x046F
f108: 1f 92 push r1
f10a: 8f 93 push r24
f10c: 80 e6 ldi r24, 0x60 ; 96
f10e: 95 e0 ldi r25, 0x05 ; 5
f110: 9f 93 push r25
f112: 8f 93 push r24
f114: 8b e0 ldi r24, 0x0B ; 11
f116: 95 e1 ldi r25, 0x15 ; 21
f118: 9f 93 push r25
f11a: 8f 93 push r24
f11c: e0 91 78 06 lds r30, 0x0678
f120: f0 91 79 06 lds r31, 0x0679
f124: 09 95 icall
f126: 0f 90 pop r0
f128: 0f 90 pop r0
f12a: 0f 90 pop r0
f12c: 0f 90 pop r0
f12e: 0f 90 pop r0
f130: 0f 90 pop r0
f132: 14 c0 rjmp .+40 ; 0xf15c <HoTT_Menu+0x251e>
}
else
{
HoTT_printfxy(13,6,"--")
f134: 8b e8 ldi r24, 0x8B ; 139
f136: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f13a: 8d e5 ldi r24, 0x5D ; 93
f13c: 95 e0 ldi r25, 0x05 ; 5
f13e: 9f 93 push r25
f140: 8f 93 push r24
f142: 8b e0 ldi r24, 0x0B ; 11
f144: 95 e1 ldi r25, 0x15 ; 21
f146: 9f 93 push r25
f148: 8f 93 push r24
f14a: e0 91 78 06 lds r30, 0x0678
f14e: f0 91 79 06 lds r31, 0x0679
f152: 09 95 icall
f154: 0f 90 pop r0
f156: 0f 90 pop r0
f158: 0f 90 pop r0
f15a: 0f 90 pop r0
}
if(GPSInfo.SatFix == SATFIX_3D)
f15c: 80 91 d9 08 lds r24, 0x08D9
f160: 83 30 cpi r24, 0x03 ; 3
f162: 09 f0 breq .+2 ; 0xf166 <HoTT_Menu+0x2528>
f164: 45 c0 rjmp .+138 ; 0xf1f0 <HoTT_Menu+0x25b2>
{
if(NaviData_MaxWpListIndex == 0) HoTT_printfxy(0,7,"No SD-Card ")
f166: 80 91 89 04 lds r24, 0x0489
f16a: 81 11 cpse r24, r1
f16c: 15 c0 rjmp .+42 ; 0xf198 <HoTT_Menu+0x255a>
f16e: 83 e9 ldi r24, 0x93 ; 147
f170: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f174: 8f e4 ldi r24, 0x4F ; 79
f176: 95 e0 ldi r25, 0x05 ; 5
f178: 9f 93 push r25
f17a: 8f 93 push r24
f17c: 8b e0 ldi r24, 0x0B ; 11
f17e: 95 e1 ldi r25, 0x15 ; 21
f180: 9f 93 push r25
f182: 8f 93 push r24
f184: e0 91 78 06 lds r30, 0x0678
f188: f0 91 79 06 lds r31, 0x0679
f18c: 09 95 icall
f18e: 0f 90 pop r0
f190: 0f 90 pop r0
f192: 0f 90 pop r0
f194: 0f 90 pop r0
f196: 20 c0 rjmp .+64 ; 0xf1d8 <HoTT_Menu+0x259a>
else
{
if(changed && wp_tmp) HoTT_printfxy(0,7,"(Set -> Store)")
f198: 80 91 6e 04 lds r24, 0x046E
f19c: 88 23 and r24, r24
f19e: c9 f0 breq .+50 ; 0xf1d2 <HoTT_Menu+0x2594>
f1a0: 80 91 6f 04 lds r24, 0x046F
f1a4: 88 23 and r24, r24
f1a6: a9 f0 breq .+42 ; 0xf1d2 <HoTT_Menu+0x2594>
f1a8: 83 e9 ldi r24, 0x93 ; 147
f1aa: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f1ae: 80 e4 ldi r24, 0x40 ; 64
f1b0: 95 e0 ldi r25, 0x05 ; 5
f1b2: 9f 93 push r25
f1b4: 8f 93 push r24
f1b6: 8b e0 ldi r24, 0x0B ; 11
f1b8: 95 e1 ldi r25, 0x15 ; 21
f1ba: 9f 93 push r25
f1bc: 8f 93 push r24
f1be: e0 91 78 06 lds r30, 0x0678
f1c2: f0 91 79 06 lds r31, 0x0679
f1c6: 09 95 icall
f1c8: 0f 90 pop r0
f1ca: 0f 90 pop r0
f1cc: 0f 90 pop r0
f1ce: 0f 90 pop r0
f1d0: 03 c0 rjmp .+6 ; 0xf1d8 <HoTT_Menu+0x259a>
else Hott_ClearLine(7);
f1d2: 87 e0 ldi r24, 0x07 ; 7
f1d4: 0e 94 b4 60 call 0xc168 ; 0xc168 <Hott_ClearLine>
}
if(HottKeyboard == HOTT_KEY_SET) { if(wp_tmp) ToNC_Store_SingePoint = wp_tmp; changed = 0;}
f1d8: 80 91 a9 0c lds r24, 0x0CA9
f1dc: 86 30 cpi r24, 0x06 ; 6
f1de: e1 f4 brne .+56 ; 0xf218 <HoTT_Menu+0x25da>
f1e0: 80 91 6f 04 lds r24, 0x046F
f1e4: 81 11 cpse r24, r1
f1e6: 80 93 87 04 sts 0x0487, r24
f1ea: 10 92 6e 04 sts 0x046E, r1
f1ee: 14 c0 rjmp .+40 ; 0xf218 <HoTT_Menu+0x25da>
}
else HoTT_printfxy(0,7,"!No GPS-Fix! ");
f1f0: 83 e9 ldi r24, 0x93 ; 147
f1f2: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f1f6: 82 e3 ldi r24, 0x32 ; 50
f1f8: 95 e0 ldi r25, 0x05 ; 5
f1fa: 9f 93 push r25
f1fc: 8f 93 push r24
f1fe: 8b e0 ldi r24, 0x0B ; 11
f200: 95 e1 ldi r25, 0x15 ; 21
f202: 9f 93 push r25
f204: 8f 93 push r24
f206: e0 91 78 06 lds r30, 0x0678
f20a: f0 91 79 06 lds r31, 0x0679
f20e: 09 95 icall
f210: 0f 90 pop r0
f212: 0f 90 pop r0
f214: 0f 90 pop r0
f216: 0f 90 pop r0
if(HottKeyboard == HOTT_KEY_UP && wp_tmp < NaviData_MaxWpListIndex) { changed = 1; wp_tmp++; HoTTBlink = 0;}
f218: 80 91 a9 0c lds r24, 0x0CA9
f21c: 84 30 cpi r24, 0x04 ; 4
f21e: 79 f4 brne .+30 ; 0xf23e <HoTT_Menu+0x2600>
f220: 80 91 6f 04 lds r24, 0x046F
f224: 90 91 89 04 lds r25, 0x0489
f228: 89 17 cp r24, r25
f22a: 18 f5 brcc .+70 ; 0xf272 <HoTT_Menu+0x2634>
f22c: 91 e0 ldi r25, 0x01 ; 1
f22e: 90 93 6e 04 sts 0x046E, r25
f232: 8f 5f subi r24, 0xFF ; 255
f234: 80 93 6f 04 sts 0x046F, r24
f238: 10 92 ed 02 sts 0x02ED, r1
f23c: 1a c0 rjmp .+52 ; 0xf272 <HoTT_Menu+0x2634>
if(HottKeyboard == HOTT_KEY_DOWN && wp_tmp > 1) { changed = 1; wp_tmp--; HoTTBlink = 0;};
f23e: 82 30 cpi r24, 0x02 ; 2
f240: 69 f4 brne .+26 ; 0xf25c <HoTT_Menu+0x261e>
f242: 80 91 6f 04 lds r24, 0x046F
f246: 82 30 cpi r24, 0x02 ; 2
f248: a0 f0 brcs .+40 ; 0xf272 <HoTT_Menu+0x2634>
f24a: 91 e0 ldi r25, 0x01 ; 1
f24c: 90 93 6e 04 sts 0x046E, r25
f250: 81 50 subi r24, 0x01 ; 1
f252: 80 93 6f 04 sts 0x046F, r24
f256: 10 92 ed 02 sts 0x02ED, r1
f25a: 0b c0 rjmp .+22 ; 0xf272 <HoTT_Menu+0x2634>
if(HottKeyboard == HOTT_KEY_LEFT) { LIBFC_HoTT_Clear(); page++; line = 0;}
f25c: 88 30 cpi r24, 0x08 ; 8
f25e: 49 f4 brne .+18 ; 0xf272 <HoTT_Menu+0x2634>
f260: 0e 94 3a 15 call 0x2a74 ; 0x2a74 <LIBFC_HoTT_Clear>
f264: 80 91 76 04 lds r24, 0x0476
f268: 8f 5f subi r24, 0xFF ; 255
f26a: 80 93 76 04 sts 0x0476, r24
f26e: 10 92 75 04 sts 0x0475, r1
if(HottKeyboard == HOTT_KEY_RIGHT) { LIBFC_HoTT_Clear(); page--; line = 0;};
f272: 80 91 a9 0c lds r24, 0x0CA9
f276: 81 30 cpi r24, 0x01 ; 1
f278: 49 f4 brne .+18 ; 0xf28c <HoTT_Menu+0x264e>
f27a: 0e 94 3a 15 call 0x2a74 ; 0x2a74 <LIBFC_HoTT_Clear>
f27e: 80 91 76 04 lds r24, 0x0476
f282: 81 50 subi r24, 0x01 ; 1
f284: 80 93 76 04 sts 0x0476, r24
f288: 10 92 75 04 sts 0x0475, r1
HottKeyboard = 0;
f28c: 10 92 a9 0c sts 0x0CA9, r1
break;
f290: 50 c2 rjmp .+1184 ; 0xf732 <HoTT_Menu+0x2af4>
default: line = 0;
f292: 10 92 75 04 sts 0x0475, r1
break;
f296: 4d c2 rjmp .+1178 ; 0xf732 <HoTT_Menu+0x2af4>
}
break;
case 6:
switch(line++)
f298: 80 91 75 04 lds r24, 0x0475
f29c: 91 e0 ldi r25, 0x01 ; 1
f29e: 98 0f add r25, r24
f2a0: 90 93 75 04 sts 0x0475, r25
f2a4: 82 30 cpi r24, 0x02 ; 2
f2a6: 09 f4 brne .+2 ; 0xf2aa <HoTT_Menu+0x266c>
f2a8: ab c0 rjmp .+342 ; 0xf400 <HoTT_Menu+0x27c2>
f2aa: 28 f4 brcc .+10 ; 0xf2b6 <HoTT_Menu+0x2678>
f2ac: 88 23 and r24, r24
f2ae: 39 f0 breq .+14 ; 0xf2be <HoTT_Menu+0x2680>
f2b0: 81 30 cpi r24, 0x01 ; 1
f2b2: d1 f0 breq .+52 ; 0xf2e8 <HoTT_Menu+0x26aa>
f2b4: 39 c2 rjmp .+1138 ; 0xf728 <HoTT_Menu+0x2aea>
f2b6: 86 30 cpi r24, 0x06 ; 6
f2b8: 08 f4 brcc .+2 ; 0xf2bc <HoTT_Menu+0x267e>
f2ba: 36 c1 rjmp .+620 ; 0xf528 <HoTT_Menu+0x28ea>
f2bc: 35 c2 rjmp .+1130 ; 0xf728 <HoTT_Menu+0x2aea>
{
static unsigned char wp_tmp, changed;
case 0:
HoTT_printfxy(0,0,"Load single Position");
f2be: 80 e0 ldi r24, 0x00 ; 0
f2c0: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f2c4: 8d e1 ldi r24, 0x1D ; 29
f2c6: 95 e0 ldi r25, 0x05 ; 5
f2c8: 9f 93 push r25
f2ca: 8f 93 push r24
f2cc: 8b e0 ldi r24, 0x0B ; 11
f2ce: 95 e1 ldi r25, 0x15 ; 21
f2d0: 9f 93 push r25
f2d2: 8f 93 push r24
f2d4: e0 91 78 06 lds r30, 0x0678
f2d8: f0 91 79 06 lds r31, 0x0679
f2dc: 09 95 icall
// HoTT_printfxy(0,1,"(Fixed Positions)");
break;
f2de: 0f 90 pop r0
f2e0: 0f 90 pop r0
f2e2: 0f 90 pop r0
f2e4: 0f 90 pop r0
f2e6: 25 c2 rjmp .+1098 ; 0xf732 <HoTT_Menu+0x2af4>
case 1:
HoTT_printfxy(0,2," %2i.%1iV ",UBat/10, UBat%10)
f2e8: 8a e2 ldi r24, 0x2A ; 42
f2ea: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f2ee: 80 91 1a 01 lds r24, 0x011A
f2f2: 90 91 1b 01 lds r25, 0x011B
f2f6: e0 91 1a 01 lds r30, 0x011A
f2fa: f0 91 1b 01 lds r31, 0x011B
f2fe: 2a e0 ldi r18, 0x0A ; 10
f300: 30 e0 ldi r19, 0x00 ; 0
f302: b9 01 movw r22, r18
f304: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
f308: 9f 93 push r25
f30a: 8f 93 push r24
f30c: cf 01 movw r24, r30
f30e: b9 01 movw r22, r18
f310: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
f314: 7f 93 push r23
f316: 6f 93 push r22
f318: 82 e1 ldi r24, 0x12 ; 18
f31a: 95 e0 ldi r25, 0x05 ; 5
f31c: 9f 93 push r25
f31e: 8f 93 push r24
f320: 0b e0 ldi r16, 0x0B ; 11
f322: 15 e1 ldi r17, 0x15 ; 21
f324: 1f 93 push r17
f326: 0f 93 push r16
f328: e0 91 78 06 lds r30, 0x0678
f32c: f0 91 79 06 lds r31, 0x0679
f330: 09 95 icall
HoTT_printfxy(0,3," %2i:%02i ",FlugSekunden/60,FlugSekunden%60);
f332: 8f e3 ldi r24, 0x3F ; 63
f334: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f338: 40 91 5e 04 lds r20, 0x045E
f33c: 50 91 5f 04 lds r21, 0x045F
f340: 9a 01 movw r18, r20
f342: a9 e8 ldi r26, 0x89 ; 137
f344: b8 e8 ldi r27, 0x88 ; 136
f346: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
f34a: 96 95 lsr r25
f34c: 87 95 ror r24
f34e: 92 95 swap r25
f350: 82 95 swap r24
f352: 8f 70 andi r24, 0x0F ; 15
f354: 89 27 eor r24, r25
f356: 9f 70 andi r25, 0x0F ; 15
f358: 89 27 eor r24, r25
f35a: 6c e3 ldi r22, 0x3C ; 60
f35c: 68 9f mul r22, r24
f35e: 90 01 movw r18, r0
f360: 69 9f mul r22, r25
f362: 30 0d add r19, r0
f364: 11 24 eor r1, r1
f366: ca 01 movw r24, r20
f368: 82 1b sub r24, r18
f36a: 93 0b sbc r25, r19
f36c: 9f 93 push r25
f36e: 8f 93 push r24
f370: 9a 01 movw r18, r20
f372: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
f376: 96 95 lsr r25
f378: 87 95 ror r24
f37a: 92 95 swap r25
f37c: 82 95 swap r24
f37e: 8f 70 andi r24, 0x0F ; 15
f380: 89 27 eor r24, r25
f382: 9f 70 andi r25, 0x0F ; 15
f384: 89 27 eor r24, r25
f386: 9f 93 push r25
f388: 8f 93 push r24
f38a: 87 e0 ldi r24, 0x07 ; 7
f38c: 95 e0 ldi r25, 0x05 ; 5
f38e: 9f 93 push r25
f390: 8f 93 push r24
f392: 1f 93 push r17
f394: 0f 93 push r16
f396: e0 91 78 06 lds r30, 0x0678
f39a: f0 91 79 06 lds r31, 0x0679
f39e: 09 95 icall
// HoTT_printfxy(0,4,"Dist:%3dm",NaviData_TargetDistance)
if(NaviData_WaypointNumber) HoTT_printfxy(0,5,"WP:%2d/%d Dist:%3dm ",NaviData_WaypointIndex,NaviData_WaypointNumber,NaviData_TargetDistance)
f3a0: 0f b6 in r0, 0x3f ; 63
f3a2: f8 94 cli
f3a4: de bf out 0x3e, r29 ; 62
f3a6: 0f be out 0x3f, r0 ; 63
f3a8: cd bf out 0x3d, r28 ; 61
f3aa: 80 91 8c 04 lds r24, 0x048C
f3ae: 88 23 and r24, r24
f3b0: 19 f1 breq .+70 ; 0xf3f8 <HoTT_Menu+0x27ba>
f3b2: 89 e6 ldi r24, 0x69 ; 105
f3b4: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f3b8: 80 91 86 04 lds r24, 0x0486
f3bc: 8f 93 push r24
f3be: 80 91 85 04 lds r24, 0x0485
f3c2: 8f 93 push r24
f3c4: 80 91 8c 04 lds r24, 0x048C
f3c8: 1f 92 push r1
f3ca: 8f 93 push r24
f3cc: 80 91 8d 04 lds r24, 0x048D
f3d0: 1f 92 push r1
f3d2: 8f 93 push r24
f3d4: 82 ef ldi r24, 0xF2 ; 242
f3d6: 94 e0 ldi r25, 0x04 ; 4
f3d8: 9f 93 push r25
f3da: 8f 93 push r24
f3dc: c8 01 movw r24, r16
f3de: 9f 93 push r25
f3e0: 0f 93 push r16
f3e2: e0 91 78 06 lds r30, 0x0678
f3e6: f0 91 79 06 lds r31, 0x0679
f3ea: 09 95 icall
f3ec: 0f b6 in r0, 0x3f ; 63
f3ee: f8 94 cli
f3f0: de bf out 0x3e, r29 ; 62
f3f2: 0f be out 0x3f, r0 ; 63
f3f4: cd bf out 0x3d, r28 ; 61
f3f6: 9d c1 rjmp .+826 ; 0xf732 <HoTT_Menu+0x2af4>
else Hott_ClearLine(5);
f3f8: 85 e0 ldi r24, 0x05 ; 5
f3fa: 0e 94 b4 60 call 0xc168 ; 0xc168 <Hott_ClearLine>
f3fe: 99 c1 rjmp .+818 ; 0xf732 <HoTT_Menu+0x2af4>
break;
case 2:
if(FromNC_AltitudeSpeed)
f400: 80 91 f3 03 lds r24, 0x03F3
f404: 88 23 and r24, r24
f406: c9 f1 breq .+114 ; 0xf47a <HoTT_Menu+0x283c>
HoTT_printfxy(8,2,"ALT:%4i/%im ", (int16_t)(HoehenWert/100),(int16_t)(FromNC_AltitudeSetpoint/100))
f408: 82 e3 ldi r24, 0x32 ; 50
f40a: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f40e: 60 91 f4 03 lds r22, 0x03F4
f412: 70 91 f5 03 lds r23, 0x03F5
f416: 80 91 f6 03 lds r24, 0x03F6
f41a: 90 91 f7 03 lds r25, 0x03F7
f41e: 0f 2e mov r0, r31
f420: f4 e6 ldi r31, 0x64 ; 100
f422: cf 2e mov r12, r31
f424: d1 2c mov r13, r1
f426: e1 2c mov r14, r1
f428: f1 2c mov r15, r1
f42a: f0 2d mov r31, r0
f42c: a7 01 movw r20, r14
f42e: 96 01 movw r18, r12
f430: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
f434: 3f 93 push r19
f436: 2f 93 push r18
f438: 60 91 fe 03 lds r22, 0x03FE
f43c: 70 91 ff 03 lds r23, 0x03FF
f440: 80 91 00 04 lds r24, 0x0400
f444: 90 91 01 04 lds r25, 0x0401
f448: a7 01 movw r20, r14
f44a: 96 01 movw r18, r12
f44c: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
f450: 3f 93 push r19
f452: 2f 93 push r18
f454: 85 ee ldi r24, 0xE5 ; 229
f456: 94 e0 ldi r25, 0x04 ; 4
f458: 9f 93 push r25
f45a: 8f 93 push r24
f45c: 8b e0 ldi r24, 0x0B ; 11
f45e: 95 e1 ldi r25, 0x15 ; 21
f460: 9f 93 push r25
f462: 8f 93 push r24
f464: e0 91 78 06 lds r30, 0x0678
f468: f0 91 79 06 lds r31, 0x0679
f46c: 09 95 icall
f46e: 0f b6 in r0, 0x3f ; 63
f470: f8 94 cli
f472: de bf out 0x3e, r29 ; 62
f474: 0f be out 0x3f, r0 ; 63
f476: cd bf out 0x3d, r28 ; 61
f478: 26 c0 rjmp .+76 ; 0xf4c6 <HoTT_Menu+0x2888>
else
HoTT_printfxy(8,2,"ALT:%4im ",(int16_t)(HoehenWert/100))
f47a: 82 e3 ldi r24, 0x32 ; 50
f47c: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f480: 60 91 fe 03 lds r22, 0x03FE
f484: 70 91 ff 03 lds r23, 0x03FF
f488: 80 91 00 04 lds r24, 0x0400
f48c: 90 91 01 04 lds r25, 0x0401
f490: 24 e6 ldi r18, 0x64 ; 100
f492: 30 e0 ldi r19, 0x00 ; 0
f494: 40 e0 ldi r20, 0x00 ; 0
f496: 50 e0 ldi r21, 0x00 ; 0
f498: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
f49c: 3f 93 push r19
f49e: 2f 93 push r18
f4a0: 88 ed ldi r24, 0xD8 ; 216
f4a2: 94 e0 ldi r25, 0x04 ; 4
f4a4: 9f 93 push r25
f4a6: 8f 93 push r24
f4a8: 8b e0 ldi r24, 0x0B ; 11
f4aa: 95 e1 ldi r25, 0x15 ; 21
f4ac: 9f 93 push r25
f4ae: 8f 93 push r24
f4b0: e0 91 78 06 lds r30, 0x0678
f4b4: f0 91 79 06 lds r31, 0x0679
f4b8: 09 95 icall
f4ba: 0f 90 pop r0
f4bc: 0f 90 pop r0
f4be: 0f 90 pop r0
f4c0: 0f 90 pop r0
f4c2: 0f 90 pop r0
f4c4: 0f 90 pop r0
HoTT_printfxy(8,3,"DIR: %3d%c",CompassCorrected, HoTT_GRAD);
f4c6: 87 e4 ldi r24, 0x47 ; 71
f4c8: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f4cc: 1f 92 push r1
f4ce: 80 e6 ldi r24, 0x60 ; 96
f4d0: 8f 93 push r24
f4d2: 80 91 66 06 lds r24, 0x0666
f4d6: 8f 93 push r24
f4d8: 80 91 65 06 lds r24, 0x0665
f4dc: 8f 93 push r24
f4de: 8d ec ldi r24, 0xCD ; 205
f4e0: 94 e0 ldi r25, 0x04 ; 4
f4e2: 9f 93 push r25
f4e4: 8f 93 push r24
f4e6: 0b e0 ldi r16, 0x0B ; 11
f4e8: 15 e1 ldi r17, 0x15 ; 21
f4ea: 1f 93 push r17
f4ec: 0f 93 push r16
f4ee: e0 91 78 06 lds r30, 0x0678
f4f2: f0 91 79 06 lds r31, 0x0679
f4f6: 09 95 icall
HoTT_printfxy(8,4,"Cam: %3i",Parameter_ServoNickControl);
f4f8: 8c e5 ldi r24, 0x5C ; 92
f4fa: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f4fe: 80 91 2f 01 lds r24, 0x012F
f502: 1f 92 push r1
f504: 8f 93 push r24
f506: 84 ec ldi r24, 0xC4 ; 196
f508: 94 e0 ldi r25, 0x04 ; 4
f50a: 9f 93 push r25
f50c: 8f 93 push r24
f50e: 1f 93 push r17
f510: 0f 93 push r16
f512: e0 91 78 06 lds r30, 0x0678
f516: f0 91 79 06 lds r31, 0x0679
f51a: 09 95 icall
break;
f51c: 0f b6 in r0, 0x3f ; 63
f51e: f8 94 cli
f520: de bf out 0x3e, r29 ; 62
f522: 0f be out 0x3f, r0 ; 63
f524: cd bf out 0x3d, r28 ; 61
f526: 05 c1 rjmp .+522 ; 0xf732 <HoTT_Menu+0x2af4>
// HoTT_printfxy(11,7,"%s",WPL_Name)
case 3:
case 4:
case 5:
if(HottKeyboard) DebugOut.Analog[17]++;
f528: 80 91 a9 0c lds r24, 0x0CA9
f52c: 88 23 and r24, r24
f52e: 39 f0 breq .+14 ; 0xf53e <HoTT_Menu+0x2900>
f530: ea e6 ldi r30, 0x6A ; 106
f532: fc e0 ldi r31, 0x0C ; 12
f534: 80 81 ld r24, Z
f536: 91 81 ldd r25, Z+1 ; 0x01
f538: 01 96 adiw r24, 0x01 ; 1
f53a: 91 83 std Z+1, r25 ; 0x01
f53c: 80 83 st Z, r24
HoTT_printfxy(0,6,"load point:")
f53e: 8e e7 ldi r24, 0x7E ; 126
f540: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f544: 88 eb ldi r24, 0xB8 ; 184
f546: 94 e0 ldi r25, 0x04 ; 4
f548: 9f 93 push r25
f54a: 8f 93 push r24
f54c: 8b e0 ldi r24, 0x0B ; 11
f54e: 95 e1 ldi r25, 0x15 ; 21
f550: 9f 93 push r25
f552: 8f 93 push r24
f554: e0 91 78 06 lds r30, 0x0678
f558: f0 91 79 06 lds r31, 0x0679
f55c: 09 95 icall
if(wp_tmp)
f55e: 0f 90 pop r0
f560: 0f 90 pop r0
f562: 0f 90 pop r0
f564: 0f 90 pop r0
f566: 80 91 6d 04 lds r24, 0x046D
f56a: 88 23 and r24, r24
f56c: c1 f1 breq .+112 ; 0xf5de <HoTT_Menu+0x29a0>
{
if(changed && HoTTBlink) HoTT_printfxy(11,6," ")
f56e: 80 91 6c 04 lds r24, 0x046C
f572: 88 23 and r24, r24
f574: c9 f0 breq .+50 ; 0xf5a8 <HoTT_Menu+0x296a>
f576: 80 91 ed 02 lds r24, 0x02ED
f57a: 88 23 and r24, r24
f57c: a9 f0 breq .+42 ; 0xf5a8 <HoTT_Menu+0x296a>
f57e: 89 e8 ldi r24, 0x89 ; 137
f580: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f584: 84 eb ldi r24, 0xB4 ; 180
f586: 94 e0 ldi r25, 0x04 ; 4
f588: 9f 93 push r25
f58a: 8f 93 push r24
f58c: 8b e0 ldi r24, 0x0B ; 11
f58e: 95 e1 ldi r25, 0x15 ; 21
f590: 9f 93 push r25
f592: 8f 93 push r24
f594: e0 91 78 06 lds r30, 0x0678
f598: f0 91 79 06 lds r31, 0x0679
f59c: 09 95 icall
f59e: 0f 90 pop r0
f5a0: 0f 90 pop r0
f5a2: 0f 90 pop r0
f5a4: 0f 90 pop r0
f5a6: 2f c0 rjmp .+94 ; 0xf606 <HoTT_Menu+0x29c8>
else HoTT_printfxy(11,6,"%2d",wp_tmp);
f5a8: 89 e8 ldi r24, 0x89 ; 137
f5aa: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f5ae: 80 91 6d 04 lds r24, 0x046D
f5b2: 1f 92 push r1
f5b4: 8f 93 push r24
f5b6: 80 eb ldi r24, 0xB0 ; 176
f5b8: 94 e0 ldi r25, 0x04 ; 4
f5ba: 9f 93 push r25
f5bc: 8f 93 push r24
f5be: 8b e0 ldi r24, 0x0B ; 11
f5c0: 95 e1 ldi r25, 0x15 ; 21
f5c2: 9f 93 push r25
f5c4: 8f 93 push r24
f5c6: e0 91 78 06 lds r30, 0x0678
f5ca: f0 91 79 06 lds r31, 0x0679
f5ce: 09 95 icall
f5d0: 0f 90 pop r0
f5d2: 0f 90 pop r0
f5d4: 0f 90 pop r0
f5d6: 0f 90 pop r0
f5d8: 0f 90 pop r0
f5da: 0f 90 pop r0
f5dc: 14 c0 rjmp .+40 ; 0xf606 <HoTT_Menu+0x29c8>
}
else
{
HoTT_printfxy(11,6,"--")
f5de: 89 e8 ldi r24, 0x89 ; 137
f5e0: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f5e4: 8d ea ldi r24, 0xAD ; 173
f5e6: 94 e0 ldi r25, 0x04 ; 4
f5e8: 9f 93 push r25
f5ea: 8f 93 push r24
f5ec: 8b e0 ldi r24, 0x0B ; 11
f5ee: 95 e1 ldi r25, 0x15 ; 21
f5f0: 9f 93 push r25
f5f2: 8f 93 push r24
f5f4: e0 91 78 06 lds r30, 0x0678
f5f8: f0 91 79 06 lds r31, 0x0679
f5fc: 09 95 icall
f5fe: 0f 90 pop r0
f600: 0f 90 pop r0
f602: 0f 90 pop r0
f604: 0f 90 pop r0
}
if(NaviData_MaxWpListIndex == 0) HoTT_printfxy(0,7,"No SD-Card ")
f606: 80 91 89 04 lds r24, 0x0489
f60a: 81 11 cpse r24, r1
f60c: 15 c0 rjmp .+42 ; 0xf638 <HoTT_Menu+0x29fa>
f60e: 83 e9 ldi r24, 0x93 ; 147
f610: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f614: 8f e9 ldi r24, 0x9F ; 159
f616: 94 e0 ldi r25, 0x04 ; 4
f618: 9f 93 push r25
f61a: 8f 93 push r24
f61c: 8b e0 ldi r24, 0x0B ; 11
f61e: 95 e1 ldi r25, 0x15 ; 21
f620: 9f 93 push r25
f622: 8f 93 push r24
f624: e0 91 78 06 lds r30, 0x0678
f628: f0 91 79 06 lds r31, 0x0679
f62c: 09 95 icall
f62e: 0f 90 pop r0
f630: 0f 90 pop r0
f632: 0f 90 pop r0
f634: 0f 90 pop r0
f636: 3e c0 rjmp .+124 ; 0xf6b4 <HoTT_Menu+0x2a76>
else
{
if(changed && wp_tmp) HoTT_printfxy(0,7,"(Set -> Load)")
f638: 80 91 6c 04 lds r24, 0x046C
f63c: 88 23 and r24, r24
f63e: c9 f0 breq .+50 ; 0xf672 <HoTT_Menu+0x2a34>
f640: 80 91 6d 04 lds r24, 0x046D
f644: 88 23 and r24, r24
f646: a9 f0 breq .+42 ; 0xf672 <HoTT_Menu+0x2a34>
f648: 83 e9 ldi r24, 0x93 ; 147
f64a: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f64e: 81 e9 ldi r24, 0x91 ; 145
f650: 94 e0 ldi r25, 0x04 ; 4
f652: 9f 93 push r25
f654: 8f 93 push r24
f656: 8b e0 ldi r24, 0x0B ; 11
f658: 95 e1 ldi r25, 0x15 ; 21
f65a: 9f 93 push r25
f65c: 8f 93 push r24
f65e: e0 91 78 06 lds r30, 0x0678
f662: f0 91 79 06 lds r31, 0x0679
f666: 09 95 icall
f668: 0f 90 pop r0
f66a: 0f 90 pop r0
f66c: 0f 90 pop r0
f66e: 0f 90 pop r0
f670: 21 c0 rjmp .+66 ; 0xf6b4 <HoTT_Menu+0x2a76>
else
{
Hott_ClearLine(7);
f672: 87 e0 ldi r24, 0x07 ; 7
f674: 0e 94 b4 60 call 0xc168 ; 0xc168 <Hott_ClearLine>
if(NaviData_WaypointNumber) HoTT_printfxy(0,7,"%s",WPL_Name);
f678: 80 91 8c 04 lds r24, 0x048C
f67c: 88 23 and r24, r24
f67e: d1 f0 breq .+52 ; 0xf6b4 <HoTT_Menu+0x2a76>
f680: 83 e9 ldi r24, 0x93 ; 147
f682: 0e 94 35 15 call 0x2a6a ; 0x2a6a <LIBFC_HoTT_SetPos>
f686: 82 ed ldi r24, 0xD2 ; 210
f688: 96 e0 ldi r25, 0x06 ; 6
f68a: 9f 93 push r25
f68c: 8f 93 push r24
f68e: 8e e8 ldi r24, 0x8E ; 142
f690: 94 e0 ldi r25, 0x04 ; 4
f692: 9f 93 push r25
f694: 8f 93 push r24
f696: 8b e0 ldi r24, 0x0B ; 11
f698: 95 e1 ldi r25, 0x15 ; 21
f69a: 9f 93 push r25
f69c: 8f 93 push r24
f69e: e0 91 78 06 lds r30, 0x0678
f6a2: f0 91 79 06 lds r31, 0x0679
f6a6: 09 95 icall
f6a8: 0f 90 pop r0
f6aa: 0f 90 pop r0
f6ac: 0f 90 pop r0
f6ae: 0f 90 pop r0
f6b0: 0f 90 pop r0
f6b2: 0f 90 pop r0
}
}
if(HottKeyboard == HOTT_KEY_UP && wp_tmp < NaviData_MaxWpListIndex) { changed = 1; wp_tmp++; HoTTBlink = 0;}
f6b4: 80 91 a9 0c lds r24, 0x0CA9
f6b8: 84 30 cpi r24, 0x04 ; 4
f6ba: 79 f4 brne .+30 ; 0xf6da <HoTT_Menu+0x2a9c>
f6bc: 90 91 6d 04 lds r25, 0x046D
f6c0: 20 91 89 04 lds r18, 0x0489
f6c4: 92 17 cp r25, r18
f6c6: 10 f5 brcc .+68 ; 0xf70c <HoTT_Menu+0x2ace>
f6c8: 21 e0 ldi r18, 0x01 ; 1
f6ca: 20 93 6c 04 sts 0x046C, r18
f6ce: 9f 5f subi r25, 0xFF ; 255
f6d0: 90 93 6d 04 sts 0x046D, r25
f6d4: 10 92 ed 02 sts 0x02ED, r1
f6d8: 19 c0 rjmp .+50 ; 0xf70c <HoTT_Menu+0x2ace>
if(HottKeyboard == HOTT_KEY_DOWN && wp_tmp > 1) { changed = 1; wp_tmp--; HoTTBlink = 0;};
f6da: 82 30 cpi r24, 0x02 ; 2
f6dc: 69 f4 brne .+26 ; 0xf6f8 <HoTT_Menu+0x2aba>
f6de: 80 91 6d 04 lds r24, 0x046D
f6e2: 82 30 cpi r24, 0x02 ; 2
f6e4: f0 f0 brcs .+60 ; 0xf722 <HoTT_Menu+0x2ae4>
f6e6: 91 e0 ldi r25, 0x01 ; 1
f6e8: 90 93 6c 04 sts 0x046C, r25
f6ec: 81 50 subi r24, 0x01 ; 1
f6ee: 80 93 6d 04 sts 0x046D, r24
f6f2: 10 92 ed 02 sts 0x02ED, r1
f6f6: 15 c0 rjmp .+42 ; 0xf722 <HoTT_Menu+0x2ae4>
if(HottKeyboard == HOTT_KEY_SET) { if(wp_tmp) ToNC_Load_SingePoint = wp_tmp; changed = 0;}
f6f8: 86 30 cpi r24, 0x06 ; 6
f6fa: 41 f4 brne .+16 ; 0xf70c <HoTT_Menu+0x2ace>
f6fc: 80 91 6d 04 lds r24, 0x046D
f700: 81 11 cpse r24, r1
f702: 80 93 88 04 sts 0x0488, r24
f706: 10 92 6c 04 sts 0x046C, r1
f70a: 0b c0 rjmp .+22 ; 0xf722 <HoTT_Menu+0x2ae4>
// if(HottKeyboard == HOTT_KEY_LEFT) { LIBFC_HoTT_Clear(); page++; line = 0;}
if(HottKeyboard == HOTT_KEY_RIGHT) { LIBFC_HoTT_Clear(); page--; line = 0;};
f70c: 81 30 cpi r24, 0x01 ; 1
f70e: 49 f4 brne .+18 ; 0xf722 <HoTT_Menu+0x2ae4>
f710: 0e 94 3a 15 call 0x2a74 ; 0x2a74 <LIBFC_HoTT_Clear>
f714: 80 91 76 04 lds r24, 0x0476
f718: 81 50 subi r24, 0x01 ; 1
f71a: 80 93 76 04 sts 0x0476, r24
f71e: 10 92 75 04 sts 0x0475, r1
HottKeyboard = 0;
f722: 10 92 a9 0c sts 0x0CA9, r1
break;
f726: 05 c0 rjmp .+10 ; 0xf732 <HoTT_Menu+0x2af4>
default: line = 0;
f728: 10 92 75 04 sts 0x0475, r1
break;
f72c: 02 c0 rjmp .+4 ; 0xf732 <HoTT_Menu+0x2af4>
}
break;
default: page = 0;
f72e: 10 92 76 04 sts 0x0476, r1
break;
}
}
f732: 0f 90 pop r0
f734: 0f 90 pop r0
f736: 0f 90 pop r0
f738: 0f 90 pop r0
f73a: df 91 pop r29
f73c: cf 91 pop r28
f73e: 1f 91 pop r17
f740: 0f 91 pop r16
f742: ff 90 pop r15
f744: ef 90 pop r14
f746: df 90 pop r13
f748: cf 90 pop r12
f74a: bf 90 pop r11
f74c: af 90 pop r10
f74e: 9f 90 pop r9
f750: 8f 90 pop r8
f752: 7f 90 pop r7
f754: 6f 90 pop r6
f756: 5f 90 pop r5
f758: 4f 90 pop r4
f75a: 3f 90 pop r3
f75c: 2f 90 pop r2
f75e: 08 95 ret
 
0000f760 <Menu_Temperature>:
#endif
}
 
 
void Menu_Temperature(uint8_t key)
{ //0123456789ABCDEF
f760: cf 93 push r28
f762: df 93 push r29
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
JetiBox_printfxy(0,0,"%3i %3i %3i %3i", Motor[0].Temperature, Motor[1].Temperature, Motor[2].Temperature, Motor[3].Temperature);
f764: 80 e0 ldi r24, 0x00 ; 0
f766: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
f76a: 80 91 cb 09 lds r24, 0x09CB
f76e: 1f 92 push r1
f770: 8f 93 push r24
f772: 80 91 bc 09 lds r24, 0x09BC
f776: 1f 92 push r1
f778: 8f 93 push r24
f77a: 80 91 ad 09 lds r24, 0x09AD
f77e: 1f 92 push r1
f780: 8f 93 push r24
f782: 80 91 9e 09 lds r24, 0x099E
f786: 1f 92 push r1
f788: 8f 93 push r24
f78a: 82 e4 ldi r24, 0x42 ; 66
f78c: 90 e1 ldi r25, 0x10 ; 16
f78e: 9f 93 push r25
f790: 8f 93 push r24
f792: ce e6 ldi r28, 0x6E ; 110
f794: df e0 ldi r29, 0x0F ; 15
f796: df 93 push r29
f798: cf 93 push r28
f79a: e0 91 78 06 lds r30, 0x0678
f79e: f0 91 79 06 lds r31, 0x0679
f7a2: 09 95 icall
JetiBox_printfxy(0,1,"%3i %3i %3i %3i", Motor[4].Temperature, Motor[5].Temperature, Motor[6].Temperature, Motor[7].Temperature);
f7a4: 80 e1 ldi r24, 0x10 ; 16
f7a6: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
f7aa: 80 91 07 0a lds r24, 0x0A07
f7ae: 1f 92 push r1
f7b0: 8f 93 push r24
f7b2: 80 91 f8 09 lds r24, 0x09F8
f7b6: 1f 92 push r1
f7b8: 8f 93 push r24
f7ba: 80 91 e9 09 lds r24, 0x09E9
f7be: 1f 92 push r1
f7c0: 8f 93 push r24
f7c2: 80 91 da 09 lds r24, 0x09DA
f7c6: 1f 92 push r1
f7c8: 8f 93 push r24
f7ca: 82 e3 ldi r24, 0x32 ; 50
f7cc: 90 e1 ldi r25, 0x10 ; 16
f7ce: 9f 93 push r25
f7d0: 8f 93 push r24
f7d2: df 93 push r29
f7d4: cf 93 push r28
f7d6: e0 91 78 06 lds r30, 0x0678
f7da: f0 91 79 06 lds r31, 0x0679
f7de: 09 95 icall
if(RequiredMotors <= 4)
f7e0: 80 91 3d 05 lds r24, 0x053D
f7e4: 2d b7 in r18, 0x3d ; 61
f7e6: 3e b7 in r19, 0x3e ; 62
f7e8: 28 5e subi r18, 0xE8 ; 232
f7ea: 3f 4f sbci r19, 0xFF ; 255
f7ec: 0f b6 in r0, 0x3f ; 63
f7ee: f8 94 cli
f7f0: 3e bf out 0x3e, r19 ; 62
f7f2: 0f be out 0x3f, r0 ; 63
f7f4: 2d bf out 0x3d, r18 ; 61
f7f6: 85 30 cpi r24, 0x05 ; 5
f7f8: a0 f4 brcc .+40 ; 0xf822 <Menu_Temperature+0xc2>
{
JetiBox_printfxy(0,1,"Temperatures ");
f7fa: 80 e1 ldi r24, 0x10 ; 16
f7fc: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
f800: 81 e2 ldi r24, 0x21 ; 33
f802: 90 e1 ldi r25, 0x10 ; 16
f804: 9f 93 push r25
f806: 8f 93 push r24
f808: ce 01 movw r24, r28
f80a: 9f 93 push r25
f80c: cf 93 push r28
f80e: e0 91 78 06 lds r30, 0x0678
f812: f0 91 79 06 lds r31, 0x0679
f816: 09 95 icall
f818: 0f 90 pop r0
f81a: 0f 90 pop r0
f81c: 0f 90 pop r0
f81e: 0f 90 pop r0
f820: 1b c0 rjmp .+54 ; 0xf858 <Menu_Temperature+0xf8>
}
else
if(RequiredMotors <= 6)
f822: 87 30 cpi r24, 0x07 ; 7
f824: c8 f4 brcc .+50 ; 0xf858 <Menu_Temperature+0xf8>
{
JetiBox_printfxy(8,1,"\%cC ",0xdf);
f826: 88 e1 ldi r24, 0x18 ; 24
f828: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
f82c: 1f 92 push r1
f82e: 8f ed ldi r24, 0xDF ; 223
f830: 8f 93 push r24
f832: 88 e1 ldi r24, 0x18 ; 24
f834: 90 e1 ldi r25, 0x10 ; 16
f836: 9f 93 push r25
f838: 8f 93 push r24
f83a: 8e e6 ldi r24, 0x6E ; 110
f83c: 9f e0 ldi r25, 0x0F ; 15
f83e: 9f 93 push r25
f840: 8f 93 push r24
f842: e0 91 78 06 lds r30, 0x0678
f846: f0 91 79 06 lds r31, 0x0679
f84a: 09 95 icall
f84c: 0f 90 pop r0
f84e: 0f 90 pop r0
f850: 0f 90 pop r0
f852: 0f 90 pop r0
f854: 0f 90 pop r0
f856: 0f 90 pop r0
}
 
#endif
}
f858: df 91 pop r29
f85a: cf 91 pop r28
f85c: 08 95 ret
 
0000f85e <Menu_Battery>:
 
void Menu_Battery(uint8_t key)
{ //0123456789ABCDEF
f85e: cf 93 push r28
f860: df 93 push r29
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
JetiBox_printfxy(0,0,"%2i.%1iV %3i.%1iA", UBat/10, UBat%10, Capacity.ActualCurrent/10, Capacity.ActualCurrent%10);
f862: 80 e0 ldi r24, 0x00 ; 0
f864: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
f868: 40 91 15 05 lds r20, 0x0515
f86c: 50 91 16 05 lds r21, 0x0516
f870: c0 91 1a 01 lds r28, 0x011A
f874: d0 91 1b 01 lds r29, 0x011B
f878: e0 91 1a 01 lds r30, 0x011A
f87c: f0 91 1b 01 lds r31, 0x011B
f880: 9a 01 movw r18, r20
f882: ad ec ldi r26, 0xCD ; 205
f884: bc ec ldi r27, 0xCC ; 204
f886: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
f88a: 9c 01 movw r18, r24
f88c: 36 95 lsr r19
f88e: 27 95 ror r18
f890: 36 95 lsr r19
f892: 27 95 ror r18
f894: 36 95 lsr r19
f896: 27 95 ror r18
f898: c9 01 movw r24, r18
f89a: 88 0f add r24, r24
f89c: 99 1f adc r25, r25
f89e: 22 0f add r18, r18
f8a0: 33 1f adc r19, r19
f8a2: 22 0f add r18, r18
f8a4: 33 1f adc r19, r19
f8a6: 22 0f add r18, r18
f8a8: 33 1f adc r19, r19
f8aa: 28 0f add r18, r24
f8ac: 39 1f adc r19, r25
f8ae: ca 01 movw r24, r20
f8b0: 82 1b sub r24, r18
f8b2: 93 0b sbc r25, r19
f8b4: 9c 01 movw r18, r24
f8b6: 3f 93 push r19
f8b8: 8f 93 push r24
f8ba: 9a 01 movw r18, r20
f8bc: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
f8c0: 96 95 lsr r25
f8c2: 87 95 ror r24
f8c4: 96 95 lsr r25
f8c6: 87 95 ror r24
f8c8: 96 95 lsr r25
f8ca: 87 95 ror r24
f8cc: 9f 93 push r25
f8ce: 8f 93 push r24
f8d0: 2a e0 ldi r18, 0x0A ; 10
f8d2: 30 e0 ldi r19, 0x00 ; 0
f8d4: ce 01 movw r24, r28
f8d6: b9 01 movw r22, r18
f8d8: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
f8dc: 9f 93 push r25
f8de: 8f 93 push r24
f8e0: cf 01 movw r24, r30
f8e2: b9 01 movw r22, r18
f8e4: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
f8e8: 7f 93 push r23
f8ea: 6f 93 push r22
f8ec: 86 e0 ldi r24, 0x06 ; 6
f8ee: 90 e1 ldi r25, 0x10 ; 16
f8f0: 9f 93 push r25
f8f2: 8f 93 push r24
f8f4: ce e6 ldi r28, 0x6E ; 110
f8f6: df e0 ldi r29, 0x0F ; 15
f8f8: df 93 push r29
f8fa: cf 93 push r28
f8fc: e0 91 78 06 lds r30, 0x0678
f900: f0 91 79 06 lds r31, 0x0679
f904: 09 95 icall
JetiBox_printfxy(0,1,"%4iW %6imAh",Capacity.ActualPower, Capacity.UsedCapacity);
f906: 80 e1 ldi r24, 0x10 ; 16
f908: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
f90c: e9 e1 ldi r30, 0x19 ; 25
f90e: f5 e0 ldi r31, 0x05 ; 5
f910: 81 81 ldd r24, Z+1 ; 0x01
f912: 8f 93 push r24
f914: 80 81 ld r24, Z
f916: 8f 93 push r24
f918: e7 e1 ldi r30, 0x17 ; 23
f91a: f5 e0 ldi r31, 0x05 ; 5
f91c: 81 81 ldd r24, Z+1 ; 0x01
f91e: 8f 93 push r24
f920: 80 81 ld r24, Z
f922: 8f 93 push r24
f924: 8a ef ldi r24, 0xFA ; 250
f926: 9f e0 ldi r25, 0x0F ; 15
f928: 9f 93 push r25
f92a: 8f 93 push r24
f92c: df 93 push r29
f92e: cf 93 push r28
f930: e0 91 78 06 lds r30, 0x0678
f934: f0 91 79 06 lds r31, 0x0679
f938: 09 95 icall
f93a: 8d b7 in r24, 0x3d ; 61
f93c: 9e b7 in r25, 0x3e ; 62
f93e: 44 96 adiw r24, 0x14 ; 20
f940: 0f b6 in r0, 0x3f ; 63
f942: f8 94 cli
f944: 9e bf out 0x3e, r25 ; 62
f946: 0f be out 0x3f, r0 ; 63
f948: 8d bf out 0x3d, r24 ; 61
#endif
}
f94a: df 91 pop r29
f94c: cf 91 pop r28
f94e: 08 95 ret
 
0000f950 <Magnet_Values>:
 
void Magnet_Values(uint8_t key)
{ //0123456789ABCDEF
f950: 1f 93 push r17
f952: cf 93 push r28
f954: df 93 push r29
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
JetiBox_printfxy(0,0,"Magnet:%3i%% %3i%c",EarthMagneticField, KompassValue,0xDF);
f956: 80 e0 ldi r24, 0x00 ; 0
f958: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
f95c: 1f 92 push r1
f95e: 1f ed ldi r17, 0xDF ; 223
f960: 1f 93 push r17
f962: 80 91 4f 01 lds r24, 0x014F
f966: 8f 93 push r24
f968: 80 91 4e 01 lds r24, 0x014E
f96c: 8f 93 push r24
f96e: 80 91 ba 04 lds r24, 0x04BA
f972: 1f 92 push r1
f974: 8f 93 push r24
f976: 87 ee ldi r24, 0xE7 ; 231
f978: 9f e0 ldi r25, 0x0F ; 15
f97a: 9f 93 push r25
f97c: 8f 93 push r24
f97e: ce e6 ldi r28, 0x6E ; 110
f980: df e0 ldi r29, 0x0F ; 15
f982: df 93 push r29
f984: cf 93 push r28
f986: e0 91 78 06 lds r30, 0x0678
f98a: f0 91 79 06 lds r31, 0x0679
f98e: 09 95 icall
JetiBox_printfxy(0,1,"Incli.:%3i%c (%i) ",EarthMagneticInclination, 0xDF,EarthMagneticInclinationTheoretic);
f990: 80 e1 ldi r24, 0x10 ; 16
f992: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
f996: 80 91 b8 04 lds r24, 0x04B8
f99a: 1f 92 push r1
f99c: 8f 93 push r24
f99e: 1f 92 push r1
f9a0: 1f 93 push r17
f9a2: 80 91 b9 04 lds r24, 0x04B9
f9a6: 1f 92 push r1
f9a8: 8f 93 push r24
f9aa: 84 ed ldi r24, 0xD4 ; 212
f9ac: 9f e0 ldi r25, 0x0F ; 15
f9ae: 9f 93 push r25
f9b0: 8f 93 push r24
f9b2: df 93 push r29
f9b4: cf 93 push r28
f9b6: e0 91 78 06 lds r30, 0x0678
f9ba: f0 91 79 06 lds r31, 0x0679
f9be: 09 95 icall
f9c0: 8d b7 in r24, 0x3d ; 61
f9c2: 9e b7 in r25, 0x3e ; 62
f9c4: 44 96 adiw r24, 0x14 ; 20
f9c6: 0f b6 in r0, 0x3f ; 63
f9c8: f8 94 cli
f9ca: 9e bf out 0x3e, r25 ; 62
f9cc: 0f be out 0x3f, r0 ; 63
f9ce: 8d bf out 0x3d, r24 ; 61
#endif
}
f9d0: df 91 pop r29
f9d2: cf 91 pop r28
f9d4: 1f 91 pop r17
f9d6: 08 95 ret
 
0000f9d8 <Menu_WPL_A1>:
 
 
void Menu_WPL_A1(uint8_t key)
{ //0123456789ABCDEF
f9d8: cf 93 push r28
f9da: df 93 push r29
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
JetiBox_printfxy(0,0,"Load Waypoints");
f9dc: 80 e0 ldi r24, 0x00 ; 0
f9de: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
f9e2: 85 ec ldi r24, 0xC5 ; 197
f9e4: 9f e0 ldi r25, 0x0F ; 15
f9e6: 9f 93 push r25
f9e8: 8f 93 push r24
f9ea: ce e6 ldi r28, 0x6E ; 110
f9ec: df e0 ldi r29, 0x0F ; 15
f9ee: df 93 push r29
f9f0: cf 93 push r28
f9f2: e0 91 78 06 lds r30, 0x0678
f9f6: f0 91 79 06 lds r31, 0x0679
f9fa: 09 95 icall
JetiBox_printfxy(0,1,"(Fixed) ");
f9fc: 80 e1 ldi r24, 0x10 ; 16
f9fe: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fa02: 87 eb ldi r24, 0xB7 ; 183
fa04: 9f e0 ldi r25, 0x0F ; 15
fa06: 9f 93 push r25
fa08: 8f 93 push r24
fa0a: df 93 push r29
fa0c: cf 93 push r28
fa0e: e0 91 78 06 lds r30, 0x0678
fa12: f0 91 79 06 lds r31, 0x0679
fa16: 09 95 icall
fa18: 8d b7 in r24, 0x3d ; 61
fa1a: 9e b7 in r25, 0x3e ; 62
fa1c: 08 96 adiw r24, 0x08 ; 8
fa1e: 0f b6 in r0, 0x3f ; 63
fa20: f8 94 cli
fa22: 9e bf out 0x3e, r25 ; 62
fa24: 0f be out 0x3f, r0 ; 63
fa26: 8d bf out 0x3d, r24 ; 61
#endif
}
fa28: df 91 pop r29
fa2a: cf 91 pop r28
fa2c: 08 95 ret
 
0000fa2e <Menu_WPL_R1>:
 
void Menu_WPL_R1(uint8_t key)
{ //0123456789ABCDEF
fa2e: cf 93 push r28
fa30: df 93 push r29
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
JetiBox_printfxy(0,0,"Load Waypoints");
fa32: 80 e0 ldi r24, 0x00 ; 0
fa34: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fa38: 88 ea ldi r24, 0xA8 ; 168
fa3a: 9f e0 ldi r25, 0x0F ; 15
fa3c: 9f 93 push r25
fa3e: 8f 93 push r24
fa40: ce e6 ldi r28, 0x6E ; 110
fa42: df e0 ldi r29, 0x0F ; 15
fa44: df 93 push r29
fa46: cf 93 push r28
fa48: e0 91 78 06 lds r30, 0x0678
fa4c: f0 91 79 06 lds r31, 0x0679
fa50: 09 95 icall
JetiBox_printfxy(0,1,"(Relative) ");
fa52: 80 e1 ldi r24, 0x10 ; 16
fa54: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fa58: 8a e9 ldi r24, 0x9A ; 154
fa5a: 9f e0 ldi r25, 0x0F ; 15
fa5c: 9f 93 push r25
fa5e: 8f 93 push r24
fa60: df 93 push r29
fa62: cf 93 push r28
fa64: e0 91 78 06 lds r30, 0x0678
fa68: f0 91 79 06 lds r31, 0x0679
fa6c: 09 95 icall
fa6e: 8d b7 in r24, 0x3d ; 61
fa70: 9e b7 in r25, 0x3e ; 62
fa72: 08 96 adiw r24, 0x08 ; 8
fa74: 0f b6 in r0, 0x3f ; 63
fa76: f8 94 cli
fa78: 9e bf out 0x3e, r25 ; 62
fa7a: 0f be out 0x3f, r0 ; 63
fa7c: 8d bf out 0x3d, r24 ; 61
#endif
}
fa7e: df 91 pop r29
fa80: cf 91 pop r28
fa82: 08 95 ret
 
0000fa84 <Menu_POINT_LD>:
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
void Menu_POINT_LD(uint8_t key)
{ //0123456789ABCDEF
JetiBox_printfxy(0,0,"Load singl.Point");
fa84: 80 e0 ldi r24, 0x00 ; 0
fa86: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fa8a: 89 e8 ldi r24, 0x89 ; 137
fa8c: 9f e0 ldi r25, 0x0F ; 15
fa8e: 9f 93 push r25
fa90: 8f 93 push r24
fa92: 8e e6 ldi r24, 0x6E ; 110
fa94: 9f e0 ldi r25, 0x0F ; 15
fa96: 9f 93 push r25
fa98: 8f 93 push r24
fa9a: e0 91 78 06 lds r30, 0x0678
fa9e: f0 91 79 06 lds r31, 0x0679
faa2: 09 95 icall
faa4: 0f 90 pop r0
faa6: 0f 90 pop r0
faa8: 0f 90 pop r0
faaa: 0f 90 pop r0
faac: 08 95 ret
 
0000faae <Menu_POINT_SV>:
#endif
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
void Menu_POINT_SV(uint8_t key)
{ //0123456789ABCDEF
JetiBox_printfxy(0,0,"Save singl.Point");
faae: 80 e0 ldi r24, 0x00 ; 0
fab0: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fab4: 88 e7 ldi r24, 0x78 ; 120
fab6: 9f e0 ldi r25, 0x0F ; 15
fab8: 9f 93 push r25
faba: 8f 93 push r24
fabc: 8e e6 ldi r24, 0x6E ; 110
fabe: 9f e0 ldi r25, 0x0F ; 15
fac0: 9f 93 push r25
fac2: 8f 93 push r24
fac4: e0 91 78 06 lds r30, 0x0678
fac8: f0 91 79 06 lds r31, 0x0679
facc: 09 95 icall
face: 0f 90 pop r0
fad0: 0f 90 pop r0
fad2: 0f 90 pop r0
fad4: 0f 90 pop r0
fad6: 08 95 ret
 
0000fad8 <Menu_POINT_SV2>:
}
#endif
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
void Menu_POINT_SV2(uint8_t key)
{ //0123456789ABCDEF
fad8: 1f 93 push r17
fada: cf 93 push r28
fadc: df 93 push r29
fade: 18 2f mov r17, r24
static unsigned char load_waypoint_tmp = 1, changed;
 
// if(WPL_Name[0] == 0) JetiBox_printfxy(0,0,"Relative WPs ")
// else JetiBox_printfxy(0,0,"Rel:%s",WPL_Name);
JetiBox_printfxy(0,0,"Save Point:");
fae0: 80 e0 ldi r24, 0x00 ; 0
fae2: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fae6: 2c e6 ldi r18, 0x6C ; 108
fae8: 3f e0 ldi r19, 0x0F ; 15
faea: 3f 93 push r19
faec: 2f 93 push r18
faee: 2e e6 ldi r18, 0x6E ; 110
faf0: 3f e0 ldi r19, 0x0F ; 15
faf2: 3f 93 push r19
faf4: 2f 93 push r18
faf6: e0 91 78 06 lds r30, 0x0678
fafa: f0 91 79 06 lds r31, 0x0679
fafe: 09 95 icall
if(NaviData_MaxWpListIndex == 0) JetiBox_printfxy(0,1,"no SD-Card")
fb00: 0f 90 pop r0
fb02: 0f 90 pop r0
fb04: 0f 90 pop r0
fb06: 0f 90 pop r0
fb08: 80 91 89 04 lds r24, 0x0489
fb0c: 81 11 cpse r24, r1
fb0e: 15 c0 rjmp .+42 ; 0xfb3a <Menu_POINT_SV2+0x62>
fb10: 80 e1 ldi r24, 0x10 ; 16
fb12: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fb16: 81 e6 ldi r24, 0x61 ; 97
fb18: 9f e0 ldi r25, 0x0F ; 15
fb1a: 9f 93 push r25
fb1c: 8f 93 push r24
fb1e: 8e e6 ldi r24, 0x6E ; 110
fb20: 9f e0 ldi r25, 0x0F ; 15
fb22: 9f 93 push r25
fb24: 8f 93 push r24
fb26: e0 91 78 06 lds r30, 0x0678
fb2a: f0 91 79 06 lds r31, 0x0679
fb2e: 09 95 icall
fb30: 0f 90 pop r0
fb32: 0f 90 pop r0
fb34: 0f 90 pop r0
fb36: 0f 90 pop r0
fb38: ab c0 rjmp .+342 ; 0xfc90 <Menu_POINT_SV2+0x1b8>
else
if(GPSInfo.SatFix != SATFIX_3D) JetiBox_printfxy(0,1,"no GPS-Fix")
fb3a: 80 91 d9 08 lds r24, 0x08D9
fb3e: 83 30 cpi r24, 0x03 ; 3
fb40: a9 f0 breq .+42 ; 0xfb6c <Menu_POINT_SV2+0x94>
fb42: 80 e1 ldi r24, 0x10 ; 16
fb44: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fb48: 86 e5 ldi r24, 0x56 ; 86
fb4a: 9f e0 ldi r25, 0x0F ; 15
fb4c: 9f 93 push r25
fb4e: 8f 93 push r24
fb50: 8e e6 ldi r24, 0x6E ; 110
fb52: 9f e0 ldi r25, 0x0F ; 15
fb54: 9f 93 push r25
fb56: 8f 93 push r24
fb58: e0 91 78 06 lds r30, 0x0678
fb5c: f0 91 79 06 lds r31, 0x0679
fb60: 09 95 icall
fb62: 0f 90 pop r0
fb64: 0f 90 pop r0
fb66: 0f 90 pop r0
fb68: 0f 90 pop r0
fb6a: 92 c0 rjmp .+292 ; 0xfc90 <Menu_POINT_SV2+0x1b8>
else
{
JetiBox_printfxy(11,0,"%2d",load_waypoint_tmp);
fb6c: 8b e0 ldi r24, 0x0B ; 11
fb6e: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fb72: 80 91 5c 01 lds r24, 0x015C
fb76: 1f 92 push r1
fb78: 8f 93 push r24
fb7a: 22 e5 ldi r18, 0x52 ; 82
fb7c: 3f e0 ldi r19, 0x0F ; 15
fb7e: 3f 93 push r19
fb80: 2f 93 push r18
fb82: ce e6 ldi r28, 0x6E ; 110
fb84: df e0 ldi r29, 0x0F ; 15
fb86: df 93 push r29
fb88: cf 93 push r28
fb8a: e0 91 78 06 lds r30, 0x0678
fb8e: f0 91 79 06 lds r31, 0x0679
fb92: 09 95 icall
 
// if(NaviData_WaypointNumber) JetiBox_printfxy(8,1,"%2d/%d ",NaviData_WaypointIndex,NaviData_WaypointNumber)
// else JetiBox_printfxy(8,1,"--/--")
JetiBox_printfxy(0,1,"Dir:%3d Alt:%3dm",CompassCorrected,(int16_t)(HoehenWert/100))
fb94: 80 e1 ldi r24, 0x10 ; 16
fb96: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fb9a: 60 91 fe 03 lds r22, 0x03FE
fb9e: 70 91 ff 03 lds r23, 0x03FF
fba2: 80 91 00 04 lds r24, 0x0400
fba6: 90 91 01 04 lds r25, 0x0401
fbaa: 24 e6 ldi r18, 0x64 ; 100
fbac: 30 e0 ldi r19, 0x00 ; 0
fbae: 40 e0 ldi r20, 0x00 ; 0
fbb0: 50 e0 ldi r21, 0x00 ; 0
fbb2: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
fbb6: 3f 93 push r19
fbb8: 2f 93 push r18
fbba: 80 91 66 06 lds r24, 0x0666
fbbe: 8f 93 push r24
fbc0: 80 91 65 06 lds r24, 0x0665
fbc4: 8f 93 push r24
fbc6: 21 e4 ldi r18, 0x41 ; 65
fbc8: 3f e0 ldi r19, 0x0F ; 15
fbca: 3f 93 push r19
fbcc: 2f 93 push r18
fbce: df 93 push r29
fbd0: cf 93 push r28
fbd2: e0 91 78 06 lds r30, 0x0678
fbd6: f0 91 79 06 lds r31, 0x0679
fbda: 09 95 icall
 
if(changed) JetiBox_printfxy(14,0,"->")
fbdc: 8d b7 in r24, 0x3d ; 61
fbde: 9e b7 in r25, 0x3e ; 62
fbe0: 0e 96 adiw r24, 0x0e ; 14
fbe2: 0f b6 in r0, 0x3f ; 63
fbe4: f8 94 cli
fbe6: 9e bf out 0x3e, r25 ; 62
fbe8: 0f be out 0x3f, r0 ; 63
fbea: 8d bf out 0x3d, r24 ; 61
fbec: 80 91 94 04 lds r24, 0x0494
fbf0: 88 23 and r24, r24
fbf2: a1 f0 breq .+40 ; 0xfc1c <Menu_POINT_SV2+0x144>
fbf4: 8e e0 ldi r24, 0x0E ; 14
fbf6: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fbfa: 8e e3 ldi r24, 0x3E ; 62
fbfc: 9f e0 ldi r25, 0x0F ; 15
fbfe: 9f 93 push r25
fc00: 8f 93 push r24
fc02: ce 01 movw r24, r28
fc04: 9f 93 push r25
fc06: cf 93 push r28
fc08: e0 91 78 06 lds r30, 0x0678
fc0c: f0 91 79 06 lds r31, 0x0679
fc10: 09 95 icall
fc12: 0f 90 pop r0
fc14: 0f 90 pop r0
fc16: 0f 90 pop r0
fc18: 0f 90 pop r0
fc1a: 14 c0 rjmp .+40 ; 0xfc44 <Menu_POINT_SV2+0x16c>
else JetiBox_printfxy(14,0," ");
fc1c: 8e e0 ldi r24, 0x0E ; 14
fc1e: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fc22: 8b e3 ldi r24, 0x3B ; 59
fc24: 9f e0 ldi r25, 0x0F ; 15
fc26: 9f 93 push r25
fc28: 8f 93 push r24
fc2a: 8e e6 ldi r24, 0x6E ; 110
fc2c: 9f e0 ldi r25, 0x0F ; 15
fc2e: 9f 93 push r25
fc30: 8f 93 push r24
fc32: e0 91 78 06 lds r30, 0x0678
fc36: f0 91 79 06 lds r31, 0x0679
fc3a: 09 95 icall
fc3c: 0f 90 pop r0
fc3e: 0f 90 pop r0
fc40: 0f 90 pop r0
fc42: 0f 90 pop r0
 
if(key == JETIBOX_KEY_UP && load_waypoint_tmp < NaviData_MaxWpListIndex) { load_waypoint_tmp++; changed = 1;}
fc44: 1f 32 cpi r17, 0x2F ; 47
fc46: 69 f4 brne .+26 ; 0xfc62 <Menu_POINT_SV2+0x18a>
fc48: 80 91 5c 01 lds r24, 0x015C
fc4c: 90 91 89 04 lds r25, 0x0489
fc50: 89 17 cp r24, r25
fc52: f0 f4 brcc .+60 ; 0xfc90 <Menu_POINT_SV2+0x1b8>
fc54: 8f 5f subi r24, 0xFF ; 255
fc56: 80 93 5c 01 sts 0x015C, r24
fc5a: 81 e0 ldi r24, 0x01 ; 1
fc5c: 80 93 94 04 sts 0x0494, r24
fc60: 17 c0 rjmp .+46 ; 0xfc90 <Menu_POINT_SV2+0x1b8>
if(key == JETIBOX_KEY_DOWN && load_waypoint_tmp > 1) { load_waypoint_tmp--; changed = 1; }
fc62: 1f 34 cpi r17, 0x4F ; 79
fc64: 59 f4 brne .+22 ; 0xfc7c <Menu_POINT_SV2+0x1a4>
fc66: 80 91 5c 01 lds r24, 0x015C
fc6a: 82 30 cpi r24, 0x02 ; 2
fc6c: 88 f0 brcs .+34 ; 0xfc90 <Menu_POINT_SV2+0x1b8>
fc6e: 81 50 subi r24, 0x01 ; 1
fc70: 80 93 5c 01 sts 0x015C, r24
fc74: 81 e0 ldi r24, 0x01 ; 1
fc76: 80 93 94 04 sts 0x0494, r24
fc7a: 0a c0 rjmp .+20 ; 0xfc90 <Menu_POINT_SV2+0x1b8>
 
if(key == JETIBOX_KEY_RIGHT && load_waypoint_tmp)
fc7c: 1f 31 cpi r17, 0x1F ; 31
fc7e: 41 f4 brne .+16 ; 0xfc90 <Menu_POINT_SV2+0x1b8>
fc80: 80 91 5c 01 lds r24, 0x015C
fc84: 88 23 and r24, r24
fc86: 21 f0 breq .+8 ; 0xfc90 <Menu_POINT_SV2+0x1b8>
{
ToNC_Store_SingePoint = load_waypoint_tmp;
fc88: 80 93 87 04 sts 0x0487, r24
changed = 0;
fc8c: 10 92 94 04 sts 0x0494, r1
}
}
}
fc90: df 91 pop r29
fc92: cf 91 pop r28
fc94: 1f 91 pop r17
fc96: 08 95 ret
 
0000fc98 <Menu_POINT_LD2>:
#endif
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
void Menu_POINT_LD2(uint8_t key)
{ //0123456789ABCDEF
fc98: cf 93 push r28
fc9a: c8 2f mov r28, r24
static unsigned char load_waypoint_tmp = 1, changed;
// if(WPL_Name[0] == 0) JetiBox_printfxy(0,0,"FIX Waypoints")
// else JetiBox_printfxy(0,0,"FIX:%s",WPL_Name);
JetiBox_printfxy(0,0,"Load Point")
fc9c: 80 e0 ldi r24, 0x00 ; 0
fc9e: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fca2: 20 e3 ldi r18, 0x30 ; 48
fca4: 3f e0 ldi r19, 0x0F ; 15
fca6: 3f 93 push r19
fca8: 2f 93 push r18
fcaa: 2e e6 ldi r18, 0x6E ; 110
fcac: 3f e0 ldi r19, 0x0F ; 15
fcae: 3f 93 push r19
fcb0: 2f 93 push r18
fcb2: e0 91 78 06 lds r30, 0x0678
fcb6: f0 91 79 06 lds r31, 0x0679
fcba: 09 95 icall
 
if(NaviData_MaxWpListIndex == 0) JetiBox_printfxy(0,1,"no SD-Card")
fcbc: 0f 90 pop r0
fcbe: 0f 90 pop r0
fcc0: 0f 90 pop r0
fcc2: 0f 90 pop r0
fcc4: 80 91 89 04 lds r24, 0x0489
fcc8: 81 11 cpse r24, r1
fcca: 15 c0 rjmp .+42 ; 0xfcf6 <Menu_POINT_LD2+0x5e>
fccc: 80 e1 ldi r24, 0x10 ; 16
fcce: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fcd2: 85 e2 ldi r24, 0x25 ; 37
fcd4: 9f e0 ldi r25, 0x0F ; 15
fcd6: 9f 93 push r25
fcd8: 8f 93 push r24
fcda: 8e e6 ldi r24, 0x6E ; 110
fcdc: 9f e0 ldi r25, 0x0F ; 15
fcde: 9f 93 push r25
fce0: 8f 93 push r24
fce2: e0 91 78 06 lds r30, 0x0678
fce6: f0 91 79 06 lds r31, 0x0679
fcea: 09 95 icall
fcec: 0f 90 pop r0
fcee: 0f 90 pop r0
fcf0: 0f 90 pop r0
fcf2: 0f 90 pop r0
fcf4: b4 c0 rjmp .+360 ; 0xfe5e <Menu_POINT_LD2+0x1c6>
else
{
JetiBox_printfxy(11,0,"%2d",load_waypoint_tmp);
fcf6: 8b e0 ldi r24, 0x0B ; 11
fcf8: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fcfc: 80 91 5b 01 lds r24, 0x015B
fd00: 1f 92 push r1
fd02: 8f 93 push r24
fd04: 21 e2 ldi r18, 0x21 ; 33
fd06: 3f e0 ldi r19, 0x0F ; 15
fd08: 3f 93 push r19
fd0a: 2f 93 push r18
fd0c: 2e e6 ldi r18, 0x6E ; 110
fd0e: 3f e0 ldi r19, 0x0F ; 15
fd10: 3f 93 push r19
fd12: 2f 93 push r18
fd14: e0 91 78 06 lds r30, 0x0678
fd18: f0 91 79 06 lds r31, 0x0679
fd1c: 09 95 icall
 
if(NaviData_WaypointNumber) JetiBox_printfxy(0,1,"Dist:%3d Alt:%3d ",NaviData_TargetDistance,(int16_t)(FromNC_AltitudeSetpoint/100))
fd1e: 0f 90 pop r0
fd20: 0f 90 pop r0
fd22: 0f 90 pop r0
fd24: 0f 90 pop r0
fd26: 0f 90 pop r0
fd28: 0f 90 pop r0
fd2a: 80 91 8c 04 lds r24, 0x048C
fd2e: 88 23 and r24, r24
fd30: 79 f1 breq .+94 ; 0xfd90 <Menu_POINT_LD2+0xf8>
fd32: 80 e1 ldi r24, 0x10 ; 16
fd34: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fd38: 60 91 f4 03 lds r22, 0x03F4
fd3c: 70 91 f5 03 lds r23, 0x03F5
fd40: 80 91 f6 03 lds r24, 0x03F6
fd44: 90 91 f7 03 lds r25, 0x03F7
fd48: 24 e6 ldi r18, 0x64 ; 100
fd4a: 30 e0 ldi r19, 0x00 ; 0
fd4c: 40 e0 ldi r20, 0x00 ; 0
fd4e: 50 e0 ldi r21, 0x00 ; 0
fd50: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
fd54: 3f 93 push r19
fd56: 2f 93 push r18
fd58: 80 91 86 04 lds r24, 0x0486
fd5c: 8f 93 push r24
fd5e: 80 91 85 04 lds r24, 0x0485
fd62: 8f 93 push r24
fd64: 8f e0 ldi r24, 0x0F ; 15
fd66: 9f e0 ldi r25, 0x0F ; 15
fd68: 9f 93 push r25
fd6a: 8f 93 push r24
fd6c: 8e e6 ldi r24, 0x6E ; 110
fd6e: 9f e0 ldi r25, 0x0F ; 15
fd70: 9f 93 push r25
fd72: 8f 93 push r24
fd74: e0 91 78 06 lds r30, 0x0678
fd78: f0 91 79 06 lds r31, 0x0679
fd7c: 09 95 icall
fd7e: 8d b7 in r24, 0x3d ; 61
fd80: 9e b7 in r25, 0x3e ; 62
fd82: 08 96 adiw r24, 0x08 ; 8
fd84: 0f b6 in r0, 0x3f ; 63
fd86: f8 94 cli
fd88: 9e bf out 0x3e, r25 ; 62
fd8a: 0f be out 0x3f, r0 ; 63
fd8c: 8d bf out 0x3d, r24 ; 61
fd8e: 14 c0 rjmp .+40 ; 0xfdb8 <Menu_POINT_LD2+0x120>
else JetiBox_printfxy(8,1," ");
fd90: 88 e1 ldi r24, 0x18 ; 24
fd92: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fd96: 8e ef ldi r24, 0xFE ; 254
fd98: 9e e0 ldi r25, 0x0E ; 14
fd9a: 9f 93 push r25
fd9c: 8f 93 push r24
fd9e: 8e e6 ldi r24, 0x6E ; 110
fda0: 9f e0 ldi r25, 0x0F ; 15
fda2: 9f 93 push r25
fda4: 8f 93 push r24
fda6: e0 91 78 06 lds r30, 0x0678
fdaa: f0 91 79 06 lds r31, 0x0679
fdae: 09 95 icall
fdb0: 0f 90 pop r0
fdb2: 0f 90 pop r0
fdb4: 0f 90 pop r0
fdb6: 0f 90 pop r0
if(changed) JetiBox_printfxy(14,0,"->")
fdb8: 80 91 93 04 lds r24, 0x0493
fdbc: 88 23 and r24, r24
fdbe: a9 f0 breq .+42 ; 0xfdea <Menu_POINT_LD2+0x152>
fdc0: 8e e0 ldi r24, 0x0E ; 14
fdc2: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fdc6: 8b ef ldi r24, 0xFB ; 251
fdc8: 9e e0 ldi r25, 0x0E ; 14
fdca: 9f 93 push r25
fdcc: 8f 93 push r24
fdce: 8e e6 ldi r24, 0x6E ; 110
fdd0: 9f e0 ldi r25, 0x0F ; 15
fdd2: 9f 93 push r25
fdd4: 8f 93 push r24
fdd6: e0 91 78 06 lds r30, 0x0678
fdda: f0 91 79 06 lds r31, 0x0679
fdde: 09 95 icall
fde0: 0f 90 pop r0
fde2: 0f 90 pop r0
fde4: 0f 90 pop r0
fde6: 0f 90 pop r0
fde8: 14 c0 rjmp .+40 ; 0xfe12 <Menu_POINT_LD2+0x17a>
else JetiBox_printfxy(14,0," ");
fdea: 8e e0 ldi r24, 0x0E ; 14
fdec: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fdf0: 88 ef ldi r24, 0xF8 ; 248
fdf2: 9e e0 ldi r25, 0x0E ; 14
fdf4: 9f 93 push r25
fdf6: 8f 93 push r24
fdf8: 8e e6 ldi r24, 0x6E ; 110
fdfa: 9f e0 ldi r25, 0x0F ; 15
fdfc: 9f 93 push r25
fdfe: 8f 93 push r24
fe00: e0 91 78 06 lds r30, 0x0678
fe04: f0 91 79 06 lds r31, 0x0679
fe08: 09 95 icall
fe0a: 0f 90 pop r0
fe0c: 0f 90 pop r0
fe0e: 0f 90 pop r0
fe10: 0f 90 pop r0
 
if(key == JETIBOX_KEY_UP && load_waypoint_tmp < NaviData_MaxWpListIndex) { load_waypoint_tmp++; changed = 1;}
fe12: cf 32 cpi r28, 0x2F ; 47
fe14: 69 f4 brne .+26 ; 0xfe30 <Menu_POINT_LD2+0x198>
fe16: 80 91 5b 01 lds r24, 0x015B
fe1a: 90 91 89 04 lds r25, 0x0489
fe1e: 89 17 cp r24, r25
fe20: f0 f4 brcc .+60 ; 0xfe5e <Menu_POINT_LD2+0x1c6>
fe22: 8f 5f subi r24, 0xFF ; 255
fe24: 80 93 5b 01 sts 0x015B, r24
fe28: 81 e0 ldi r24, 0x01 ; 1
fe2a: 80 93 93 04 sts 0x0493, r24
fe2e: 17 c0 rjmp .+46 ; 0xfe5e <Menu_POINT_LD2+0x1c6>
if(key == JETIBOX_KEY_DOWN && load_waypoint_tmp > 1) { load_waypoint_tmp--; changed = 1; }
fe30: cf 34 cpi r28, 0x4F ; 79
fe32: 59 f4 brne .+22 ; 0xfe4a <Menu_POINT_LD2+0x1b2>
fe34: 80 91 5b 01 lds r24, 0x015B
fe38: 82 30 cpi r24, 0x02 ; 2
fe3a: 88 f0 brcs .+34 ; 0xfe5e <Menu_POINT_LD2+0x1c6>
fe3c: 81 50 subi r24, 0x01 ; 1
fe3e: 80 93 5b 01 sts 0x015B, r24
fe42: 81 e0 ldi r24, 0x01 ; 1
fe44: 80 93 93 04 sts 0x0493, r24
fe48: 0a c0 rjmp .+20 ; 0xfe5e <Menu_POINT_LD2+0x1c6>
 
if(key == JETIBOX_KEY_RIGHT && load_waypoint_tmp)
fe4a: cf 31 cpi r28, 0x1F ; 31
fe4c: 41 f4 brne .+16 ; 0xfe5e <Menu_POINT_LD2+0x1c6>
fe4e: 80 91 5b 01 lds r24, 0x015B
fe52: 88 23 and r24, r24
fe54: 21 f0 breq .+8 ; 0xfe5e <Menu_POINT_LD2+0x1c6>
{
ToNC_Load_SingePoint = load_waypoint_tmp;
fe56: 80 93 88 04 sts 0x0488, r24
changed = 0;
fe5a: 10 92 93 04 sts 0x0493, r1
}
}
}
fe5e: cf 91 pop r28
fe60: 08 95 ret
 
0000fe62 <Menu_WPL_A2>:
#endif
 
 
void Menu_WPL_A2(uint8_t key)
{ //0123456789ABCDEF
fe62: cf 93 push r28
fe64: c8 2f mov r28, r24
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
static unsigned char load_waypoint_tmp = 1, changed;
if(WPL_Name[0] == 0) JetiBox_printfxy(0,0,"FIX Waypoints")
fe66: 80 91 d2 06 lds r24, 0x06D2
fe6a: 81 11 cpse r24, r1
fe6c: 14 c0 rjmp .+40 ; 0xfe96 <Menu_WPL_A2+0x34>
fe6e: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fe72: 2a ee ldi r18, 0xEA ; 234
fe74: 3e e0 ldi r19, 0x0E ; 14
fe76: 3f 93 push r19
fe78: 2f 93 push r18
fe7a: 2e e6 ldi r18, 0x6E ; 110
fe7c: 3f e0 ldi r19, 0x0F ; 15
fe7e: 3f 93 push r19
fe80: 2f 93 push r18
fe82: e0 91 78 06 lds r30, 0x0678
fe86: f0 91 79 06 lds r31, 0x0679
fe8a: 09 95 icall
fe8c: 0f 90 pop r0
fe8e: 0f 90 pop r0
fe90: 0f 90 pop r0
fe92: 0f 90 pop r0
fe94: 1a c0 rjmp .+52 ; 0xfeca <Menu_WPL_A2+0x68>
else JetiBox_printfxy(0,0,"FIX:%s",WPL_Name);
fe96: 80 e0 ldi r24, 0x00 ; 0
fe98: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fe9c: 22 ed ldi r18, 0xD2 ; 210
fe9e: 36 e0 ldi r19, 0x06 ; 6
fea0: 3f 93 push r19
fea2: 2f 93 push r18
fea4: 23 ee ldi r18, 0xE3 ; 227
fea6: 3e e0 ldi r19, 0x0E ; 14
fea8: 3f 93 push r19
feaa: 2f 93 push r18
feac: 2e e6 ldi r18, 0x6E ; 110
feae: 3f e0 ldi r19, 0x0F ; 15
feb0: 3f 93 push r19
feb2: 2f 93 push r18
feb4: e0 91 78 06 lds r30, 0x0678
feb8: f0 91 79 06 lds r31, 0x0679
febc: 09 95 icall
febe: 0f 90 pop r0
fec0: 0f 90 pop r0
fec2: 0f 90 pop r0
fec4: 0f 90 pop r0
fec6: 0f 90 pop r0
fec8: 0f 90 pop r0
 
if(NaviData_MaxWpListIndex == 0) JetiBox_printfxy(0,1,"no SD-Card")
feca: 80 91 89 04 lds r24, 0x0489
fece: 81 11 cpse r24, r1
fed0: 15 c0 rjmp .+42 ; 0xfefc <Menu_WPL_A2+0x9a>
fed2: 80 e1 ldi r24, 0x10 ; 16
fed4: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
fed8: 88 ed ldi r24, 0xD8 ; 216
feda: 9e e0 ldi r25, 0x0E ; 14
fedc: 9f 93 push r25
fede: 8f 93 push r24
fee0: 8e e6 ldi r24, 0x6E ; 110
fee2: 9f e0 ldi r25, 0x0F ; 15
fee4: 9f 93 push r25
fee6: 8f 93 push r24
fee8: e0 91 78 06 lds r30, 0x0678
feec: f0 91 79 06 lds r31, 0x0679
fef0: 09 95 icall
fef2: 0f 90 pop r0
fef4: 0f 90 pop r0
fef6: 0f 90 pop r0
fef8: 0f 90 pop r0
fefa: a6 c0 rjmp .+332 ; 0x10048 <Menu_WPL_A2+0x1e6>
else
{
JetiBox_printfxy(0,1,"#%2d WP:",load_waypoint_tmp);
fefc: 80 e1 ldi r24, 0x10 ; 16
fefe: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
ff02: 80 91 5a 01 lds r24, 0x015A
ff06: 1f 92 push r1
ff08: 8f 93 push r24
ff0a: 2f ec ldi r18, 0xCF ; 207
ff0c: 3e e0 ldi r19, 0x0E ; 14
ff0e: 3f 93 push r19
ff10: 2f 93 push r18
ff12: 2e e6 ldi r18, 0x6E ; 110
ff14: 3f e0 ldi r19, 0x0F ; 15
ff16: 3f 93 push r19
ff18: 2f 93 push r18
ff1a: e0 91 78 06 lds r30, 0x0678
ff1e: f0 91 79 06 lds r31, 0x0679
ff22: 09 95 icall
if(NaviData_WaypointNumber) JetiBox_printfxy(8,1,"%2d/%d ",NaviData_WaypointIndex,NaviData_WaypointNumber)
ff24: 0f 90 pop r0
ff26: 0f 90 pop r0
ff28: 0f 90 pop r0
ff2a: 0f 90 pop r0
ff2c: 0f 90 pop r0
ff2e: 0f 90 pop r0
ff30: 80 91 8c 04 lds r24, 0x048C
ff34: 88 23 and r24, r24
ff36: 09 f1 breq .+66 ; 0xff7a <Menu_WPL_A2+0x118>
ff38: 88 e1 ldi r24, 0x18 ; 24
ff3a: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
ff3e: 80 91 8c 04 lds r24, 0x048C
ff42: 1f 92 push r1
ff44: 8f 93 push r24
ff46: 80 91 8d 04 lds r24, 0x048D
ff4a: 1f 92 push r1
ff4c: 8f 93 push r24
ff4e: 87 ec ldi r24, 0xC7 ; 199
ff50: 9e e0 ldi r25, 0x0E ; 14
ff52: 9f 93 push r25
ff54: 8f 93 push r24
ff56: 8e e6 ldi r24, 0x6E ; 110
ff58: 9f e0 ldi r25, 0x0F ; 15
ff5a: 9f 93 push r25
ff5c: 8f 93 push r24
ff5e: e0 91 78 06 lds r30, 0x0678
ff62: f0 91 79 06 lds r31, 0x0679
ff66: 09 95 icall
ff68: 8d b7 in r24, 0x3d ; 61
ff6a: 9e b7 in r25, 0x3e ; 62
ff6c: 08 96 adiw r24, 0x08 ; 8
ff6e: 0f b6 in r0, 0x3f ; 63
ff70: f8 94 cli
ff72: 9e bf out 0x3e, r25 ; 62
ff74: 0f be out 0x3f, r0 ; 63
ff76: 8d bf out 0x3d, r24 ; 61
ff78: 14 c0 rjmp .+40 ; 0xffa2 <Menu_WPL_A2+0x140>
else JetiBox_printfxy(8,1,"--/--")
ff7a: 88 e1 ldi r24, 0x18 ; 24
ff7c: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
ff80: 81 ec ldi r24, 0xC1 ; 193
ff82: 9e e0 ldi r25, 0x0E ; 14
ff84: 9f 93 push r25
ff86: 8f 93 push r24
ff88: 8e e6 ldi r24, 0x6E ; 110
ff8a: 9f e0 ldi r25, 0x0F ; 15
ff8c: 9f 93 push r25
ff8e: 8f 93 push r24
ff90: e0 91 78 06 lds r30, 0x0678
ff94: f0 91 79 06 lds r31, 0x0679
ff98: 09 95 icall
ff9a: 0f 90 pop r0
ff9c: 0f 90 pop r0
ff9e: 0f 90 pop r0
ffa0: 0f 90 pop r0
if(changed) JetiBox_printfxy(14,1,"->")
ffa2: 80 91 92 04 lds r24, 0x0492
ffa6: 88 23 and r24, r24
ffa8: a9 f0 breq .+42 ; 0xffd4 <Menu_WPL_A2+0x172>
ffaa: 8e e1 ldi r24, 0x1E ; 30
ffac: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
ffb0: 8e eb ldi r24, 0xBE ; 190
ffb2: 9e e0 ldi r25, 0x0E ; 14
ffb4: 9f 93 push r25
ffb6: 8f 93 push r24
ffb8: 8e e6 ldi r24, 0x6E ; 110
ffba: 9f e0 ldi r25, 0x0F ; 15
ffbc: 9f 93 push r25
ffbe: 8f 93 push r24
ffc0: e0 91 78 06 lds r30, 0x0678
ffc4: f0 91 79 06 lds r31, 0x0679
ffc8: 09 95 icall
ffca: 0f 90 pop r0
ffcc: 0f 90 pop r0
ffce: 0f 90 pop r0
ffd0: 0f 90 pop r0
ffd2: 14 c0 rjmp .+40 ; 0xfffc <Menu_WPL_A2+0x19a>
else JetiBox_printfxy(14,1," ");
ffd4: 8e e1 ldi r24, 0x1E ; 30
ffd6: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
ffda: 8b eb ldi r24, 0xBB ; 187
ffdc: 9e e0 ldi r25, 0x0E ; 14
ffde: 9f 93 push r25
ffe0: 8f 93 push r24
ffe2: 8e e6 ldi r24, 0x6E ; 110
ffe4: 9f e0 ldi r25, 0x0F ; 15
ffe6: 9f 93 push r25
ffe8: 8f 93 push r24
ffea: e0 91 78 06 lds r30, 0x0678
ffee: f0 91 79 06 lds r31, 0x0679
fff2: 09 95 icall
fff4: 0f 90 pop r0
fff6: 0f 90 pop r0
fff8: 0f 90 pop r0
fffa: 0f 90 pop r0
 
if(key == JETIBOX_KEY_UP && load_waypoint_tmp < NaviData_MaxWpListIndex) { load_waypoint_tmp++; changed = 1;}
fffc: cf 32 cpi r28, 0x2F ; 47
fffe: 69 f4 brne .+26 ; 0x1001a <Menu_WPL_A2+0x1b8>
10000: 80 91 5a 01 lds r24, 0x015A
10004: 90 91 89 04 lds r25, 0x0489
10008: 89 17 cp r24, r25
1000a: f0 f4 brcc .+60 ; 0x10048 <Menu_WPL_A2+0x1e6>
1000c: 8f 5f subi r24, 0xFF ; 255
1000e: 80 93 5a 01 sts 0x015A, r24
10012: 81 e0 ldi r24, 0x01 ; 1
10014: 80 93 92 04 sts 0x0492, r24
10018: 17 c0 rjmp .+46 ; 0x10048 <Menu_WPL_A2+0x1e6>
if(key == JETIBOX_KEY_DOWN && load_waypoint_tmp > 1) { load_waypoint_tmp--; changed = 1; }
1001a: cf 34 cpi r28, 0x4F ; 79
1001c: 59 f4 brne .+22 ; 0x10034 <Menu_WPL_A2+0x1d2>
1001e: 80 91 5a 01 lds r24, 0x015A
10022: 82 30 cpi r24, 0x02 ; 2
10024: 88 f0 brcs .+34 ; 0x10048 <Menu_WPL_A2+0x1e6>
10026: 81 50 subi r24, 0x01 ; 1
10028: 80 93 5a 01 sts 0x015A, r24
1002c: 81 e0 ldi r24, 0x01 ; 1
1002e: 80 93 92 04 sts 0x0492, r24
10032: 0a c0 rjmp .+20 ; 0x10048 <Menu_WPL_A2+0x1e6>
 
if(key == JETIBOX_KEY_RIGHT && load_waypoint_tmp)
10034: cf 31 cpi r28, 0x1F ; 31
10036: 41 f4 brne .+16 ; 0x10048 <Menu_WPL_A2+0x1e6>
10038: 80 91 5a 01 lds r24, 0x015A
1003c: 88 23 and r24, r24
1003e: 21 f0 breq .+8 ; 0x10048 <Menu_WPL_A2+0x1e6>
{
ToNC_Load_WP_List = load_waypoint_tmp;
10040: 80 93 8a 04 sts 0x048A, r24
changed = 0;
10044: 10 92 92 04 sts 0x0492, r1
}
}
#endif
}
10048: cf 91 pop r28
1004a: 08 95 ret
 
0001004c <Menu_WPL_R2>:
 
void Menu_WPL_R2(uint8_t key)
{ //0123456789ABCDEF
1004c: cf 93 push r28
1004e: c8 2f mov r28, r24
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
static unsigned char load_waypoint_tmp = 1, changed;
 
if(WPL_Name[0] == 0) JetiBox_printfxy(0,0,"Relative WPs ")
10050: 80 91 d2 06 lds r24, 0x06D2
10054: 81 11 cpse r24, r1
10056: 14 c0 rjmp .+40 ; 0x10080 <Menu_WPL_R2+0x34>
10058: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
1005c: 2d ea ldi r18, 0xAD ; 173
1005e: 3e e0 ldi r19, 0x0E ; 14
10060: 3f 93 push r19
10062: 2f 93 push r18
10064: 2e e6 ldi r18, 0x6E ; 110
10066: 3f e0 ldi r19, 0x0F ; 15
10068: 3f 93 push r19
1006a: 2f 93 push r18
1006c: e0 91 78 06 lds r30, 0x0678
10070: f0 91 79 06 lds r31, 0x0679
10074: 09 95 icall
10076: 0f 90 pop r0
10078: 0f 90 pop r0
1007a: 0f 90 pop r0
1007c: 0f 90 pop r0
1007e: 1a c0 rjmp .+52 ; 0x100b4 <Menu_WPL_R2+0x68>
else JetiBox_printfxy(0,0,"Rel:%s",WPL_Name);
10080: 80 e0 ldi r24, 0x00 ; 0
10082: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
10086: 22 ed ldi r18, 0xD2 ; 210
10088: 36 e0 ldi r19, 0x06 ; 6
1008a: 3f 93 push r19
1008c: 2f 93 push r18
1008e: 26 ea ldi r18, 0xA6 ; 166
10090: 3e e0 ldi r19, 0x0E ; 14
10092: 3f 93 push r19
10094: 2f 93 push r18
10096: 2e e6 ldi r18, 0x6E ; 110
10098: 3f e0 ldi r19, 0x0F ; 15
1009a: 3f 93 push r19
1009c: 2f 93 push r18
1009e: e0 91 78 06 lds r30, 0x0678
100a2: f0 91 79 06 lds r31, 0x0679
100a6: 09 95 icall
100a8: 0f 90 pop r0
100aa: 0f 90 pop r0
100ac: 0f 90 pop r0
100ae: 0f 90 pop r0
100b0: 0f 90 pop r0
100b2: 0f 90 pop r0
 
if(NaviData_MaxWpListIndex == 0) JetiBox_printfxy(0,1,"no SD-Card")
100b4: 80 91 89 04 lds r24, 0x0489
100b8: 81 11 cpse r24, r1
100ba: 15 c0 rjmp .+42 ; 0x100e6 <Menu_WPL_R2+0x9a>
100bc: 80 e1 ldi r24, 0x10 ; 16
100be: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
100c2: 8b e9 ldi r24, 0x9B ; 155
100c4: 9e e0 ldi r25, 0x0E ; 14
100c6: 9f 93 push r25
100c8: 8f 93 push r24
100ca: 8e e6 ldi r24, 0x6E ; 110
100cc: 9f e0 ldi r25, 0x0F ; 15
100ce: 9f 93 push r25
100d0: 8f 93 push r24
100d2: e0 91 78 06 lds r30, 0x0678
100d6: f0 91 79 06 lds r31, 0x0679
100da: 09 95 icall
100dc: 0f 90 pop r0
100de: 0f 90 pop r0
100e0: 0f 90 pop r0
100e2: 0f 90 pop r0
100e4: c0 c0 rjmp .+384 ; 0x10266 <Menu_WPL_R2+0x21a>
else
if(GPSInfo.SatFix != SATFIX_3D) JetiBox_printfxy(0,1,"no GPS-Fix")
100e6: 80 91 d9 08 lds r24, 0x08D9
100ea: 83 30 cpi r24, 0x03 ; 3
100ec: a9 f0 breq .+42 ; 0x10118 <Menu_WPL_R2+0xcc>
100ee: 80 e1 ldi r24, 0x10 ; 16
100f0: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
100f4: 80 e9 ldi r24, 0x90 ; 144
100f6: 9e e0 ldi r25, 0x0E ; 14
100f8: 9f 93 push r25
100fa: 8f 93 push r24
100fc: 8e e6 ldi r24, 0x6E ; 110
100fe: 9f e0 ldi r25, 0x0F ; 15
10100: 9f 93 push r25
10102: 8f 93 push r24
10104: e0 91 78 06 lds r30, 0x0678
10108: f0 91 79 06 lds r31, 0x0679
1010c: 09 95 icall
1010e: 0f 90 pop r0
10110: 0f 90 pop r0
10112: 0f 90 pop r0
10114: 0f 90 pop r0
10116: a7 c0 rjmp .+334 ; 0x10266 <Menu_WPL_R2+0x21a>
else
{
JetiBox_printfxy(0,1,"#%2d WPs:",load_waypoint_tmp);
10118: 80 e1 ldi r24, 0x10 ; 16
1011a: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
1011e: 80 91 59 01 lds r24, 0x0159
10122: 1f 92 push r1
10124: 8f 93 push r24
10126: 86 e8 ldi r24, 0x86 ; 134
10128: 9e e0 ldi r25, 0x0E ; 14
1012a: 9f 93 push r25
1012c: 8f 93 push r24
1012e: 2e e6 ldi r18, 0x6E ; 110
10130: 3f e0 ldi r19, 0x0F ; 15
10132: 3f 93 push r19
10134: 2f 93 push r18
10136: e0 91 78 06 lds r30, 0x0678
1013a: f0 91 79 06 lds r31, 0x0679
1013e: 09 95 icall
if(NaviData_WaypointNumber) JetiBox_printfxy(8,1,"%2d/%d ",NaviData_WaypointIndex,NaviData_WaypointNumber)
10140: 0f 90 pop r0
10142: 0f 90 pop r0
10144: 0f 90 pop r0
10146: 0f 90 pop r0
10148: 0f 90 pop r0
1014a: 0f 90 pop r0
1014c: 80 91 8c 04 lds r24, 0x048C
10150: 88 23 and r24, r24
10152: 09 f1 breq .+66 ; 0x10196 <Menu_WPL_R2+0x14a>
10154: 88 e1 ldi r24, 0x18 ; 24
10156: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
1015a: 80 91 8c 04 lds r24, 0x048C
1015e: 1f 92 push r1
10160: 8f 93 push r24
10162: 80 91 8d 04 lds r24, 0x048D
10166: 1f 92 push r1
10168: 8f 93 push r24
1016a: 8e e7 ldi r24, 0x7E ; 126
1016c: 9e e0 ldi r25, 0x0E ; 14
1016e: 9f 93 push r25
10170: 8f 93 push r24
10172: 8e e6 ldi r24, 0x6E ; 110
10174: 9f e0 ldi r25, 0x0F ; 15
10176: 9f 93 push r25
10178: 8f 93 push r24
1017a: e0 91 78 06 lds r30, 0x0678
1017e: f0 91 79 06 lds r31, 0x0679
10182: 09 95 icall
10184: 8d b7 in r24, 0x3d ; 61
10186: 9e b7 in r25, 0x3e ; 62
10188: 08 96 adiw r24, 0x08 ; 8
1018a: 0f b6 in r0, 0x3f ; 63
1018c: f8 94 cli
1018e: 9e bf out 0x3e, r25 ; 62
10190: 0f be out 0x3f, r0 ; 63
10192: 8d bf out 0x3d, r24 ; 61
10194: 14 c0 rjmp .+40 ; 0x101be <Menu_WPL_R2+0x172>
else JetiBox_printfxy(8,1,"--/--")
10196: 88 e1 ldi r24, 0x18 ; 24
10198: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
1019c: 88 e7 ldi r24, 0x78 ; 120
1019e: 9e e0 ldi r25, 0x0E ; 14
101a0: 9f 93 push r25
101a2: 8f 93 push r24
101a4: 8e e6 ldi r24, 0x6E ; 110
101a6: 9f e0 ldi r25, 0x0F ; 15
101a8: 9f 93 push r25
101aa: 8f 93 push r24
101ac: e0 91 78 06 lds r30, 0x0678
101b0: f0 91 79 06 lds r31, 0x0679
101b4: 09 95 icall
101b6: 0f 90 pop r0
101b8: 0f 90 pop r0
101ba: 0f 90 pop r0
101bc: 0f 90 pop r0
 
if(changed) JetiBox_printfxy(14,1,"->")
101be: 80 91 91 04 lds r24, 0x0491
101c2: 88 23 and r24, r24
101c4: a9 f0 breq .+42 ; 0x101f0 <Menu_WPL_R2+0x1a4>
101c6: 8e e1 ldi r24, 0x1E ; 30
101c8: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
101cc: 85 e7 ldi r24, 0x75 ; 117
101ce: 9e e0 ldi r25, 0x0E ; 14
101d0: 9f 93 push r25
101d2: 8f 93 push r24
101d4: 8e e6 ldi r24, 0x6E ; 110
101d6: 9f e0 ldi r25, 0x0F ; 15
101d8: 9f 93 push r25
101da: 8f 93 push r24
101dc: e0 91 78 06 lds r30, 0x0678
101e0: f0 91 79 06 lds r31, 0x0679
101e4: 09 95 icall
101e6: 0f 90 pop r0
101e8: 0f 90 pop r0
101ea: 0f 90 pop r0
101ec: 0f 90 pop r0
101ee: 14 c0 rjmp .+40 ; 0x10218 <Menu_WPL_R2+0x1cc>
else JetiBox_printfxy(14,1," ");
101f0: 8e e1 ldi r24, 0x1E ; 30
101f2: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
101f6: 82 e7 ldi r24, 0x72 ; 114
101f8: 9e e0 ldi r25, 0x0E ; 14
101fa: 9f 93 push r25
101fc: 8f 93 push r24
101fe: 8e e6 ldi r24, 0x6E ; 110
10200: 9f e0 ldi r25, 0x0F ; 15
10202: 9f 93 push r25
10204: 8f 93 push r24
10206: e0 91 78 06 lds r30, 0x0678
1020a: f0 91 79 06 lds r31, 0x0679
1020e: 09 95 icall
10210: 0f 90 pop r0
10212: 0f 90 pop r0
10214: 0f 90 pop r0
10216: 0f 90 pop r0
 
if(key == JETIBOX_KEY_UP && load_waypoint_tmp < NaviData_MaxWpListIndex) { load_waypoint_tmp++; changed = 1;}
10218: cf 32 cpi r28, 0x2F ; 47
1021a: 69 f4 brne .+26 ; 0x10236 <Menu_WPL_R2+0x1ea>
1021c: 80 91 59 01 lds r24, 0x0159
10220: 90 91 89 04 lds r25, 0x0489
10224: 89 17 cp r24, r25
10226: f8 f4 brcc .+62 ; 0x10266 <Menu_WPL_R2+0x21a>
10228: 8f 5f subi r24, 0xFF ; 255
1022a: 80 93 59 01 sts 0x0159, r24
1022e: 81 e0 ldi r24, 0x01 ; 1
10230: 80 93 91 04 sts 0x0491, r24
10234: 18 c0 rjmp .+48 ; 0x10266 <Menu_WPL_R2+0x21a>
if(key == JETIBOX_KEY_DOWN && load_waypoint_tmp > 1) { load_waypoint_tmp--; changed = 1; }
10236: cf 34 cpi r28, 0x4F ; 79
10238: 59 f4 brne .+22 ; 0x10250 <Menu_WPL_R2+0x204>
1023a: 80 91 59 01 lds r24, 0x0159
1023e: 82 30 cpi r24, 0x02 ; 2
10240: 90 f0 brcs .+36 ; 0x10266 <Menu_WPL_R2+0x21a>
10242: 81 50 subi r24, 0x01 ; 1
10244: 80 93 59 01 sts 0x0159, r24
10248: 81 e0 ldi r24, 0x01 ; 1
1024a: 80 93 91 04 sts 0x0491, r24
1024e: 0b c0 rjmp .+22 ; 0x10266 <Menu_WPL_R2+0x21a>
 
if(key == JETIBOX_KEY_RIGHT && load_waypoint_tmp)
10250: cf 31 cpi r28, 0x1F ; 31
10252: 49 f4 brne .+18 ; 0x10266 <Menu_WPL_R2+0x21a>
10254: 80 91 59 01 lds r24, 0x0159
10258: 88 23 and r24, r24
1025a: 29 f0 breq .+10 ; 0x10266 <Menu_WPL_R2+0x21a>
{
ToNC_Load_WP_List = load_waypoint_tmp | 0x80;
1025c: 80 68 ori r24, 0x80 ; 128
1025e: 80 93 8a 04 sts 0x048A, r24
changed = 0;
10262: 10 92 91 04 sts 0x0491, r1
}
}
#endif
}
10266: cf 91 pop r28
10268: 08 95 ret
 
0001026a <Menu_PosInfo>:
 
 
void Menu_PosInfo(uint8_t key)
{
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
if(NaviDataOkay)
1026a: 80 91 a4 02 lds r24, 0x02A4
1026e: 88 23 and r24, r24
10270: 09 f4 brne .+2 ; 0x10274 <Menu_PosInfo+0xa>
10272: 9b c0 rjmp .+310 ; 0x103aa <Menu_PosInfo+0x140>
{
JetiBox_printfxy(0,0,"%2um/s Sat:%d ",GPSInfo.Speed,GPSInfo.NumOfSats);
10274: 80 e0 ldi r24, 0x00 ; 0
10276: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
1027a: 80 91 d8 08 lds r24, 0x08D8
1027e: 1f 92 push r1
10280: 8f 93 push r24
10282: 80 91 da 08 lds r24, 0x08DA
10286: 1f 92 push r1
10288: 8f 93 push r24
1028a: 83 e6 ldi r24, 0x63 ; 99
1028c: 9e e0 ldi r25, 0x0E ; 14
1028e: 9f 93 push r25
10290: 8f 93 push r24
10292: 8e e6 ldi r24, 0x6E ; 110
10294: 9f e0 ldi r25, 0x0F ; 15
10296: 9f 93 push r25
10298: 8f 93 push r24
1029a: e0 91 78 06 lds r30, 0x0678
1029e: f0 91 79 06 lds r31, 0x0679
102a2: 09 95 icall
switch (GPSInfo.SatFix)
102a4: 8d b7 in r24, 0x3d ; 61
102a6: 9e b7 in r25, 0x3e ; 62
102a8: 08 96 adiw r24, 0x08 ; 8
102aa: 0f b6 in r0, 0x3f ; 63
102ac: f8 94 cli
102ae: 9e bf out 0x3e, r25 ; 62
102b0: 0f be out 0x3f, r0 ; 63
102b2: 8d bf out 0x3d, r24 ; 61
102b4: 80 91 d9 08 lds r24, 0x08D9
102b8: 83 30 cpi r24, 0x03 ; 3
102ba: a9 f4 brne .+42 ; 0x102e6 <Menu_PosInfo+0x7c>
{
case SATFIX_3D:
JetiBox_printfxy(12,0," 3D");
102bc: 8c e0 ldi r24, 0x0C ; 12
102be: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
102c2: 8e e5 ldi r24, 0x5E ; 94
102c4: 9e e0 ldi r25, 0x0E ; 14
102c6: 9f 93 push r25
102c8: 8f 93 push r24
102ca: 8e e6 ldi r24, 0x6E ; 110
102cc: 9f e0 ldi r25, 0x0F ; 15
102ce: 9f 93 push r25
102d0: 8f 93 push r24
102d2: e0 91 78 06 lds r30, 0x0678
102d6: f0 91 79 06 lds r31, 0x0679
102da: 09 95 icall
break;
102dc: 0f 90 pop r0
102de: 0f 90 pop r0
102e0: 0f 90 pop r0
102e2: 0f 90 pop r0
102e4: 14 c0 rjmp .+40 ; 0x1030e <Menu_PosInfo+0xa4>
// case SATFIX_2D:
// case SATFIX_NONE:
default:
JetiBox_printfxy(12,0,"NoFx");
102e6: 8c e0 ldi r24, 0x0C ; 12
102e8: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
102ec: 89 e5 ldi r24, 0x59 ; 89
102ee: 9e e0 ldi r25, 0x0E ; 14
102f0: 9f 93 push r25
102f2: 8f 93 push r24
102f4: 8e e6 ldi r24, 0x6E ; 110
102f6: 9f e0 ldi r25, 0x0F ; 15
102f8: 9f 93 push r25
102fa: 8f 93 push r24
102fc: e0 91 78 06 lds r30, 0x0678
10300: f0 91 79 06 lds r31, 0x0679
10304: 09 95 icall
break;
10306: 0f 90 pop r0
10308: 0f 90 pop r0
1030a: 0f 90 pop r0
1030c: 0f 90 pop r0
}
if(GPSInfo.Flags & FLAG_DIFFSOLN)
1030e: 80 91 d7 08 lds r24, 0x08D7
10312: 81 ff sbrs r24, 1
10314: 14 c0 rjmp .+40 ; 0x1033e <Menu_PosInfo+0xd4>
{
JetiBox_printfxy(12,0,"DGPS");
10316: 8c e0 ldi r24, 0x0C ; 12
10318: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
1031c: 84 e5 ldi r24, 0x54 ; 84
1031e: 9e e0 ldi r25, 0x0E ; 14
10320: 9f 93 push r25
10322: 8f 93 push r24
10324: 8e e6 ldi r24, 0x6E ; 110
10326: 9f e0 ldi r25, 0x0F ; 15
10328: 9f 93 push r25
1032a: 8f 93 push r24
1032c: e0 91 78 06 lds r30, 0x0678
10330: f0 91 79 06 lds r31, 0x0679
10334: 09 95 icall
10336: 0f 90 pop r0
10338: 0f 90 pop r0
1033a: 0f 90 pop r0
1033c: 0f 90 pop r0
}
JetiBox_printfxy(0,1,"Home:%3dm %3d%c %c", GPSInfo.HomeDistance/10, GPSInfo.HomeBearing, 0xDF,NC_GPS_ModeCharacter);
1033e: 80 e1 ldi r24, 0x10 ; 16
10340: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
10344: 80 91 96 02 lds r24, 0x0296
10348: 1f 92 push r1
1034a: 8f 93 push r24
1034c: 1f 92 push r1
1034e: 8f ed ldi r24, 0xDF ; 223
10350: 8f 93 push r24
10352: ed ed ldi r30, 0xDD ; 221
10354: f8 e0 ldi r31, 0x08 ; 8
10356: 81 81 ldd r24, Z+1 ; 0x01
10358: 8f 93 push r24
1035a: 80 81 ld r24, Z
1035c: 8f 93 push r24
1035e: 20 91 db 08 lds r18, 0x08DB
10362: 30 91 dc 08 lds r19, 0x08DC
10366: ad ec ldi r26, 0xCD ; 205
10368: bc ec ldi r27, 0xCC ; 204
1036a: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
1036e: 96 95 lsr r25
10370: 87 95 ror r24
10372: 96 95 lsr r25
10374: 87 95 ror r24
10376: 96 95 lsr r25
10378: 87 95 ror r24
1037a: 9f 93 push r25
1037c: 8f 93 push r24
1037e: 81 e4 ldi r24, 0x41 ; 65
10380: 9e e0 ldi r25, 0x0E ; 14
10382: 9f 93 push r25
10384: 8f 93 push r24
10386: 8e e6 ldi r24, 0x6E ; 110
10388: 9f e0 ldi r25, 0x0F ; 15
1038a: 9f 93 push r25
1038c: 8f 93 push r24
1038e: e0 91 78 06 lds r30, 0x0678
10392: f0 91 79 06 lds r31, 0x0679
10396: 09 95 icall
10398: 8d b7 in r24, 0x3d ; 61
1039a: 9e b7 in r25, 0x3e ; 62
1039c: 0c 96 adiw r24, 0x0c ; 12
1039e: 0f b6 in r0, 0x3f ; 63
103a0: f8 94 cli
103a2: 9e bf out 0x3e, r25 ; 62
103a4: 0f be out 0x3f, r0 ; 63
103a6: 8d bf out 0x3d, r24 ; 61
103a8: 08 95 ret
}
else
{ //0123456789ABCDEF
JetiBox_printfxy(2,0,"No NaviCtrl!");
103aa: 82 e0 ldi r24, 0x02 ; 2
103ac: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
103b0: 84 e3 ldi r24, 0x34 ; 52
103b2: 9e e0 ldi r25, 0x0E ; 14
103b4: 9f 93 push r25
103b6: 8f 93 push r24
103b8: 8e e6 ldi r24, 0x6E ; 110
103ba: 9f e0 ldi r25, 0x0F ; 15
103bc: 9f 93 push r25
103be: 8f 93 push r24
103c0: e0 91 78 06 lds r30, 0x0678
103c4: f0 91 79 06 lds r31, 0x0679
103c8: 09 95 icall
103ca: 0f 90 pop r0
103cc: 0f 90 pop r0
103ce: 0f 90 pop r0
103d0: 0f 90 pop r0
103d2: 08 95 ret
 
000103d4 <Menu_Status>:
// the menu functions
// -----------------------------------------------------------
void Menu_Status(uint8_t key)
{ //0123456789ABCDEF
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
JetiBox_printfxy(0,0,"%2i.%1iV",UBat/10, UBat%10);
103d4: 80 e0 ldi r24, 0x00 ; 0
103d6: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
103da: 80 91 1a 01 lds r24, 0x011A
103de: 90 91 1b 01 lds r25, 0x011B
103e2: e0 91 1a 01 lds r30, 0x011A
103e6: f0 91 1b 01 lds r31, 0x011B
103ea: 2a e0 ldi r18, 0x0A ; 10
103ec: 30 e0 ldi r19, 0x00 ; 0
103ee: b9 01 movw r22, r18
103f0: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
103f4: 9f 93 push r25
103f6: 8f 93 push r24
103f8: cf 01 movw r24, r30
103fa: b9 01 movw r22, r18
103fc: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
10400: 7f 93 push r23
10402: 6f 93 push r22
10404: 8c ea ldi r24, 0xAC ; 172
10406: 90 e1 ldi r25, 0x10 ; 16
10408: 9f 93 push r25
1040a: 8f 93 push r24
1040c: 8e e6 ldi r24, 0x6E ; 110
1040e: 9f e0 ldi r25, 0x0F ; 15
10410: 9f 93 push r25
10412: 8f 93 push r24
10414: e0 91 78 06 lds r30, 0x0678
10418: f0 91 79 06 lds r31, 0x0679
1041c: 09 95 icall
if(NaviDataOkay)
1041e: 2d b7 in r18, 0x3d ; 61
10420: 3e b7 in r19, 0x3e ; 62
10422: 28 5f subi r18, 0xF8 ; 248
10424: 3f 4f sbci r19, 0xFF ; 255
10426: 0f b6 in r0, 0x3f ; 63
10428: f8 94 cli
1042a: 3e bf out 0x3e, r19 ; 62
1042c: 0f be out 0x3f, r0 ; 63
1042e: 2d bf out 0x3d, r18 ; 61
10430: 80 91 a4 02 lds r24, 0x02A4
10434: 88 23 and r24, r24
10436: b1 f1 breq .+108 ; 0x104a4 <Menu_Status+0xd0>
{
JetiBox_printfxy(6,0,"%3d%c %3dm%c",CompassCorrected, 0xDF, GPSInfo.HomeDistance/10,NC_GPS_ModeCharacter);
10438: 86 e0 ldi r24, 0x06 ; 6
1043a: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
1043e: 80 91 96 02 lds r24, 0x0296
10442: 1f 92 push r1
10444: 8f 93 push r24
10446: 20 91 db 08 lds r18, 0x08DB
1044a: 30 91 dc 08 lds r19, 0x08DC
1044e: ad ec ldi r26, 0xCD ; 205
10450: bc ec ldi r27, 0xCC ; 204
10452: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
10456: 96 95 lsr r25
10458: 87 95 ror r24
1045a: 96 95 lsr r25
1045c: 87 95 ror r24
1045e: 96 95 lsr r25
10460: 87 95 ror r24
10462: 9f 93 push r25
10464: 8f 93 push r24
10466: 1f 92 push r1
10468: 8f ed ldi r24, 0xDF ; 223
1046a: 8f 93 push r24
1046c: 80 91 66 06 lds r24, 0x0666
10470: 8f 93 push r24
10472: 80 91 65 06 lds r24, 0x0665
10476: 8f 93 push r24
10478: 8f e9 ldi r24, 0x9F ; 159
1047a: 90 e1 ldi r25, 0x10 ; 16
1047c: 9f 93 push r25
1047e: 8f 93 push r24
10480: 8e e6 ldi r24, 0x6E ; 110
10482: 9f e0 ldi r25, 0x0F ; 15
10484: 9f 93 push r25
10486: 8f 93 push r24
10488: e0 91 78 06 lds r30, 0x0678
1048c: f0 91 79 06 lds r31, 0x0679
10490: 09 95 icall
10492: 8d b7 in r24, 0x3d ; 61
10494: 9e b7 in r25, 0x3e ; 62
10496: 0c 96 adiw r24, 0x0c ; 12
10498: 0f b6 in r0, 0x3f ; 63
1049a: f8 94 cli
1049c: 9e bf out 0x3e, r25 ; 62
1049e: 0f be out 0x3f, r0 ; 63
104a0: 8d bf out 0x3d, r24 ; 61
104a2: 14 c0 rjmp .+40 ; 0x104cc <Menu_Status+0xf8>
}
else
{
JetiBox_printfxy(6,0,"Status ");
104a4: 86 e0 ldi r24, 0x06 ; 6
104a6: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
104aa: 84 e9 ldi r24, 0x94 ; 148
104ac: 90 e1 ldi r25, 0x10 ; 16
104ae: 9f 93 push r25
104b0: 8f 93 push r24
104b2: 8e e6 ldi r24, 0x6E ; 110
104b4: 9f e0 ldi r25, 0x0F ; 15
104b6: 9f 93 push r25
104b8: 8f 93 push r24
104ba: e0 91 78 06 lds r30, 0x0678
104be: f0 91 79 06 lds r31, 0x0679
104c2: 09 95 icall
104c4: 0f 90 pop r0
104c6: 0f 90 pop r0
104c8: 0f 90 pop r0
104ca: 0f 90 pop r0
}
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(NC_ErrorCode)
104cc: 80 91 bb 04 lds r24, 0x04BB
104d0: 88 23 and r24, r24
104d2: 09 f4 brne .+2 ; 0x104d6 <Menu_Status+0x102>
104d4: 58 c0 rjmp .+176 ; 0x10586 <Menu_Status+0x1b2>
{
static unsigned int timer;
static char toggle = 1;
if(CheckDelay(timer)) { if(toggle) toggle = 0; else toggle = 1; timer = SetDelay(1500);};
104d6: 80 91 95 04 lds r24, 0x0495
104da: 90 91 96 04 lds r25, 0x0496
104de: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
104e2: 88 23 and r24, r24
104e4: 91 f0 breq .+36 ; 0x1050a <Menu_Status+0x136>
104e6: 80 91 5d 01 lds r24, 0x015D
104ea: 88 23 and r24, r24
104ec: 19 f0 breq .+6 ; 0x104f4 <Menu_Status+0x120>
104ee: 10 92 5d 01 sts 0x015D, r1
104f2: 03 c0 rjmp .+6 ; 0x104fa <Menu_Status+0x126>
104f4: 81 e0 ldi r24, 0x01 ; 1
104f6: 80 93 5d 01 sts 0x015D, r24
104fa: 8c ed ldi r24, 0xDC ; 220
104fc: 95 e0 ldi r25, 0x05 ; 5
104fe: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
10502: 90 93 96 04 sts 0x0496, r25
10506: 80 93 95 04 sts 0x0495, r24
if(toggle)
1050a: 80 91 5d 01 lds r24, 0x015D
1050e: 88 23 and r24, r24
10510: f9 f0 breq .+62 ; 0x10550 <Menu_Status+0x17c>
{
LIBFC_JetiBox_SetPos(0);
10512: 80 e0 ldi r24, 0x00 ; 0
10514: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
_printf_P(&LIBFC_JetiBox_Putchar, NC_ERROR_TEXT[NC_ErrorCode] , 0);
10518: 1f 92 push r1
1051a: 1f 92 push r1
1051c: 80 91 bb 04 lds r24, 0x04BB
10520: 21 e1 ldi r18, 0x11 ; 17
10522: 82 9f mul r24, r18
10524: c0 01 movw r24, r0
10526: 11 24 eor r1, r1
10528: 84 59 subi r24, 0x94 ; 148
1052a: 94 4f sbci r25, 0xF4 ; 244
1052c: 9f 93 push r25
1052e: 8f 93 push r24
10530: 8e e6 ldi r24, 0x6E ; 110
10532: 9f e0 ldi r25, 0x0F ; 15
10534: 9f 93 push r25
10536: 8f 93 push r24
10538: e0 91 78 06 lds r30, 0x0678
1053c: f0 91 79 06 lds r31, 0x0679
10540: 09 95 icall
10542: 0f 90 pop r0
10544: 0f 90 pop r0
10546: 0f 90 pop r0
10548: 0f 90 pop r0
1054a: 0f 90 pop r0
1054c: 0f 90 pop r0
1054e: 74 c0 rjmp .+232 ; 0x10638 <Menu_Status+0x264>
}
else
{
JetiBox_printfxy(6,0,"ERROR: %2d ",NC_ErrorCode);
10550: 86 e0 ldi r24, 0x06 ; 6
10552: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
10556: 80 91 bb 04 lds r24, 0x04BB
1055a: 1f 92 push r1
1055c: 8f 93 push r24
1055e: 88 e8 ldi r24, 0x88 ; 136
10560: 90 e1 ldi r25, 0x10 ; 16
10562: 9f 93 push r25
10564: 8f 93 push r24
10566: 8e e6 ldi r24, 0x6E ; 110
10568: 9f e0 ldi r25, 0x0F ; 15
1056a: 9f 93 push r25
1056c: 8f 93 push r24
1056e: e0 91 78 06 lds r30, 0x0678
10572: f0 91 79 06 lds r31, 0x0679
10576: 09 95 icall
10578: 0f 90 pop r0
1057a: 0f 90 pop r0
1057c: 0f 90 pop r0
1057e: 0f 90 pop r0
10580: 0f 90 pop r0
10582: 0f 90 pop r0
10584: 59 c0 rjmp .+178 ; 0x10638 <Menu_Status+0x264>
// if(MotorenEin) JetiBeep = 'O';
}
}
else
if(NC_To_FC_Flags & NC_TO_FC_SIMULATION_ACTIVE)
10586: 80 91 b7 04 lds r24, 0x04B7
1058a: 84 ff sbrs r24, 4
1058c: 15 c0 rjmp .+42 ; 0x105b8 <Menu_Status+0x1e4>
{
JetiBox_printfxy(6,0,"SIMULATION");
1058e: 86 e0 ldi r24, 0x06 ; 6
10590: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
10594: 8d e7 ldi r24, 0x7D ; 125
10596: 90 e1 ldi r25, 0x10 ; 16
10598: 9f 93 push r25
1059a: 8f 93 push r24
1059c: 8e e6 ldi r24, 0x6E ; 110
1059e: 9f e0 ldi r25, 0x0F ; 15
105a0: 9f 93 push r25
105a2: 8f 93 push r24
105a4: e0 91 78 06 lds r30, 0x0678
105a8: f0 91 79 06 lds r31, 0x0679
105ac: 09 95 icall
105ae: 0f 90 pop r0
105b0: 0f 90 pop r0
105b2: 0f 90 pop r0
105b4: 0f 90 pop r0
105b6: 40 c0 rjmp .+128 ; 0x10638 <Menu_Status+0x264>
}
else
if(ShowSettingNameTime)
105b8: 80 91 80 04 lds r24, 0x0480
105bc: 88 23 and r24, r24
105be: e1 f1 breq .+120 ; 0x10638 <Menu_Status+0x264>
{
LIBFC_JetiBox_Clear();
105c0: 0e 94 81 0f call 0x1f02 ; 0x1f02 <LIBFC_JetiBox_Clear>
JetiBox_printfxy(0,0,"Set%d:%s",ActiveParamSet,EE_Parameter.Name);
105c4: 80 e0 ldi r24, 0x00 ; 0
105c6: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
105ca: 8a eb ldi r24, 0xBA ; 186
105cc: 95 e0 ldi r25, 0x05 ; 5
105ce: 9f 93 push r25
105d0: 8f 93 push r24
105d2: 80 91 52 01 lds r24, 0x0152
105d6: 1f 92 push r1
105d8: 8f 93 push r24
105da: 84 e7 ldi r24, 0x74 ; 116
105dc: 90 e1 ldi r25, 0x10 ; 16
105de: 9f 93 push r25
105e0: 8f 93 push r24
105e2: 8e e6 ldi r24, 0x6E ; 110
105e4: 9f e0 ldi r25, 0x0F ; 15
105e6: 9f 93 push r25
105e8: 8f 93 push r24
105ea: e0 91 78 06 lds r30, 0x0678
105ee: f0 91 79 06 lds r31, 0x0679
105f2: 09 95 icall
if(FC_StatusFlags3 & FC_STATUS3_BOAT) JetiBox_printfxy(0,1,"(Boat-Mode)");
105f4: 80 91 c9 03 lds r24, 0x03C9
105f8: 2d b7 in r18, 0x3d ; 61
105fa: 3e b7 in r19, 0x3e ; 62
105fc: 28 5f subi r18, 0xF8 ; 248
105fe: 3f 4f sbci r19, 0xFF ; 255
10600: 0f b6 in r0, 0x3f ; 63
10602: f8 94 cli
10604: 3e bf out 0x3e, r19 ; 62
10606: 0f be out 0x3f, r0 ; 63
10608: 2d bf out 0x3d, r18 ; 61
1060a: 81 ff sbrs r24, 1
1060c: a5 c0 rjmp .+330 ; 0x10758 <Menu_Status+0x384>
1060e: 80 e1 ldi r24, 0x10 ; 16
10610: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
10614: 88 e6 ldi r24, 0x68 ; 104
10616: 90 e1 ldi r25, 0x10 ; 16
10618: 9f 93 push r25
1061a: 8f 93 push r24
1061c: 8e e6 ldi r24, 0x6E ; 110
1061e: 9f e0 ldi r25, 0x0F ; 15
10620: 9f 93 push r25
10622: 8f 93 push r24
10624: e0 91 78 06 lds r30, 0x0678
10628: f0 91 79 06 lds r31, 0x0679
1062c: 09 95 icall
1062e: 0f 90 pop r0
10630: 0f 90 pop r0
10632: 0f 90 pop r0
10634: 0f 90 pop r0
10636: 08 95 ret
}
 
#else
if(NC_ErrorCode) { JetiBox_printfxy(6,0,"ERROR: %2d ",NC_ErrorCode); if(MotorenEin) JetiBeep = 'S';};
#endif
JetiBox_printfxy(0,1,"%4i %2i:%02i",Capacity.UsedCapacity,FlugSekunden/60,FlugSekunden%60);
10638: 80 e1 ldi r24, 0x10 ; 16
1063a: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
1063e: 40 91 5e 04 lds r20, 0x045E
10642: 50 91 5f 04 lds r21, 0x045F
10646: 9a 01 movw r18, r20
10648: a9 e8 ldi r26, 0x89 ; 137
1064a: b8 e8 ldi r27, 0x88 ; 136
1064c: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
10650: 96 95 lsr r25
10652: 87 95 ror r24
10654: 92 95 swap r25
10656: 82 95 swap r24
10658: 8f 70 andi r24, 0x0F ; 15
1065a: 89 27 eor r24, r25
1065c: 9f 70 andi r25, 0x0F ; 15
1065e: 89 27 eor r24, r25
10660: 6c e3 ldi r22, 0x3C ; 60
10662: 68 9f mul r22, r24
10664: 90 01 movw r18, r0
10666: 69 9f mul r22, r25
10668: 30 0d add r19, r0
1066a: 11 24 eor r1, r1
1066c: ca 01 movw r24, r20
1066e: 82 1b sub r24, r18
10670: 93 0b sbc r25, r19
10672: 9f 93 push r25
10674: 8f 93 push r24
10676: 9a 01 movw r18, r20
10678: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
1067c: 96 95 lsr r25
1067e: 87 95 ror r24
10680: 92 95 swap r25
10682: 82 95 swap r24
10684: 8f 70 andi r24, 0x0F ; 15
10686: 89 27 eor r24, r25
10688: 9f 70 andi r25, 0x0F ; 15
1068a: 89 27 eor r24, r25
1068c: 9f 93 push r25
1068e: 8f 93 push r24
10690: e9 e1 ldi r30, 0x19 ; 25
10692: f5 e0 ldi r31, 0x05 ; 5
10694: 81 81 ldd r24, Z+1 ; 0x01
10696: 8f 93 push r24
10698: 80 81 ld r24, Z
1069a: 8f 93 push r24
1069c: 8b e5 ldi r24, 0x5B ; 91
1069e: 90 e1 ldi r25, 0x10 ; 16
106a0: 9f 93 push r25
106a2: 8f 93 push r24
106a4: 8e e6 ldi r24, 0x6E ; 110
106a6: 9f e0 ldi r25, 0x0F ; 15
106a8: 9f 93 push r25
106aa: 8f 93 push r24
106ac: e0 91 78 06 lds r30, 0x0678
106b0: f0 91 79 06 lds r31, 0x0679
106b4: 09 95 icall
if(Parameter_GlobalConfig & CFG_HOEHENREGELUNG)
106b6: 80 91 5c 06 lds r24, 0x065C
106ba: 2d b7 in r18, 0x3d ; 61
106bc: 3e b7 in r19, 0x3e ; 62
106be: 26 5f subi r18, 0xF6 ; 246
106c0: 3f 4f sbci r19, 0xFF ; 255
106c2: 0f b6 in r0, 0x3f ; 63
106c4: f8 94 cli
106c6: 3e bf out 0x3e, r19 ; 62
106c8: 0f be out 0x3f, r0 ; 63
106ca: 2d bf out 0x3d, r18 ; 61
106cc: 80 ff sbrs r24, 0
106ce: 2c c0 rjmp .+88 ; 0x10728 <Menu_Status+0x354>
{
JetiBox_printfxy(10,1,"%4im%c", (int16_t)(HoehenWert/100),VarioCharacter);
106d0: 8a e1 ldi r24, 0x1A ; 26
106d2: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
106d6: 80 91 20 01 lds r24, 0x0120
106da: 1f 92 push r1
106dc: 8f 93 push r24
106de: 60 91 fe 03 lds r22, 0x03FE
106e2: 70 91 ff 03 lds r23, 0x03FF
106e6: 80 91 00 04 lds r24, 0x0400
106ea: 90 91 01 04 lds r25, 0x0401
106ee: 24 e6 ldi r18, 0x64 ; 100
106f0: 30 e0 ldi r19, 0x00 ; 0
106f2: 40 e0 ldi r20, 0x00 ; 0
106f4: 50 e0 ldi r21, 0x00 ; 0
106f6: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
106fa: 3f 93 push r19
106fc: 2f 93 push r18
106fe: 84 e5 ldi r24, 0x54 ; 84
10700: 90 e1 ldi r25, 0x10 ; 16
10702: 9f 93 push r25
10704: 8f 93 push r24
10706: 8e e6 ldi r24, 0x6E ; 110
10708: 9f e0 ldi r25, 0x0F ; 15
1070a: 9f 93 push r25
1070c: 8f 93 push r24
1070e: e0 91 78 06 lds r30, 0x0678
10712: f0 91 79 06 lds r31, 0x0679
10716: 09 95 icall
10718: 8d b7 in r24, 0x3d ; 61
1071a: 9e b7 in r25, 0x3e ; 62
1071c: 08 96 adiw r24, 0x08 ; 8
1071e: 0f b6 in r0, 0x3f ; 63
10720: f8 94 cli
10722: 9e bf out 0x3e, r25 ; 62
10724: 0f be out 0x3f, r0 ; 63
10726: 8d bf out 0x3d, r24 ; 61
}
if(FC_StatusFlags3 & FC_STATUS3_REDUNDANCE) JetiBox_printfxy(10,1,"R");
10728: 80 91 c9 03 lds r24, 0x03C9
1072c: 80 ff sbrs r24, 0
1072e: 14 c0 rjmp .+40 ; 0x10758 <Menu_Status+0x384>
10730: 8a e1 ldi r24, 0x1A ; 26
10732: 0e 94 7b 0f call 0x1ef6 ; 0x1ef6 <LIBFC_JetiBox_SetPos>
10736: 82 e5 ldi r24, 0x52 ; 82
10738: 90 e1 ldi r25, 0x10 ; 16
1073a: 9f 93 push r25
1073c: 8f 93 push r24
1073e: 8e e6 ldi r24, 0x6E ; 110
10740: 9f e0 ldi r25, 0x0F ; 15
10742: 9f 93 push r25
10744: 8f 93 push r24
10746: e0 91 78 06 lds r30, 0x0678
1074a: f0 91 79 06 lds r31, 0x0679
1074e: 09 95 icall
10750: 0f 90 pop r0
10752: 0f 90 pop r0
10754: 0f 90 pop r0
10756: 0f 90 pop r0
10758: 08 95 ret
 
0001075a <JetiBox_Update>:
 
// -----------------------------------------------------------
// Update display buffer
// -----------------------------------------------------------
unsigned char JetiBox_Update(unsigned char key)
{
1075a: cf 93 push r28
1075c: c8 2f mov r28, r24
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
static uint8_t item = 0, last_item = 0; // the menu item
static uint8_t updateDelay = 1 , last_key;
 
// navigate within the menu by key action
last_item = item;
1075e: 40 91 90 04 lds r20, 0x0490
10762: 40 93 8f 04 sts 0x048F, r20
switch(key)
10766: 8f 32 cpi r24, 0x2F ; 47
10768: 49 f1 breq .+82 ; 0x107bc <JetiBox_Update+0x62>
1076a: 18 f4 brcc .+6 ; 0x10772 <JetiBox_Update+0x18>
1076c: 8f 31 cpi r24, 0x1F ; 31
1076e: b1 f0 breq .+44 ; 0x1079c <JetiBox_Update+0x42>
10770: 44 c0 rjmp .+136 ; 0x107fa <JetiBox_Update+0xa0>
10772: 8f 34 cpi r24, 0x4F ; 79
10774: 99 f1 breq .+102 ; 0x107dc <JetiBox_Update+0x82>
10776: 8f 38 cpi r24, 0x8F ; 143
10778: 09 f0 breq .+2 ; 0x1077c <JetiBox_Update+0x22>
1077a: 3f c0 rjmp .+126 ; 0x107fa <JetiBox_Update+0xa0>
{
case JETIBOX_KEY_LEFT:
//if (item == 0) return (1); // switch back to jeti expander menu
// else
item = pgm_read_byte(&JetiBox_Menu[item].left); //trigger to left menu item
1077c: 84 2f mov r24, r20
1077e: 90 e0 ldi r25, 0x00 ; 0
10780: fc 01 movw r30, r24
10782: ee 0f add r30, r30
10784: ff 1f adc r31, r31
10786: 8e 0f add r24, r30
10788: 9f 1f adc r25, r31
1078a: fc 01 movw r30, r24
1078c: ee 0f add r30, r30
1078e: ff 1f adc r31, r31
10790: eb 54 subi r30, 0x4B ; 75
10792: ff 4e sbci r31, 0xEF ; 239
10794: e4 91 lpm r30, Z
10796: e0 93 90 04 sts 0x0490, r30
break;
1079a: 2f c0 rjmp .+94 ; 0x107fa <JetiBox_Update+0xa0>
case JETIBOX_KEY_RIGHT:
item = pgm_read_byte(&JetiBox_Menu[item].right); //trigger to right menu item
1079c: 84 2f mov r24, r20
1079e: 90 e0 ldi r25, 0x00 ; 0
107a0: fc 01 movw r30, r24
107a2: ee 0f add r30, r30
107a4: ff 1f adc r31, r31
107a6: 8e 0f add r24, r30
107a8: 9f 1f adc r25, r31
107aa: fc 01 movw r30, r24
107ac: ee 0f add r30, r30
107ae: ff 1f adc r31, r31
107b0: ea 54 subi r30, 0x4A ; 74
107b2: ff 4e sbci r31, 0xEF ; 239
107b4: e4 91 lpm r30, Z
107b6: e0 93 90 04 sts 0x0490, r30
break;
107ba: 1f c0 rjmp .+62 ; 0x107fa <JetiBox_Update+0xa0>
case JETIBOX_KEY_UP:
item = pgm_read_byte(&JetiBox_Menu[item].up); //trigger to up menu item
107bc: 84 2f mov r24, r20
107be: 90 e0 ldi r25, 0x00 ; 0
107c0: fc 01 movw r30, r24
107c2: ee 0f add r30, r30
107c4: ff 1f adc r31, r31
107c6: 8e 0f add r24, r30
107c8: 9f 1f adc r25, r31
107ca: fc 01 movw r30, r24
107cc: ee 0f add r30, r30
107ce: ff 1f adc r31, r31
107d0: e9 54 subi r30, 0x49 ; 73
107d2: ff 4e sbci r31, 0xEF ; 239
107d4: e4 91 lpm r30, Z
107d6: e0 93 90 04 sts 0x0490, r30
break;
107da: 0f c0 rjmp .+30 ; 0x107fa <JetiBox_Update+0xa0>
case JETIBOX_KEY_DOWN:
item = pgm_read_byte(&JetiBox_Menu[item].down); //trigger to down menu item
107dc: 24 2f mov r18, r20
107de: 30 e0 ldi r19, 0x00 ; 0
107e0: f9 01 movw r30, r18
107e2: ee 0f add r30, r30
107e4: ff 1f adc r31, r31
107e6: 2e 0f add r18, r30
107e8: 3f 1f adc r19, r31
107ea: f9 01 movw r30, r18
107ec: ee 0f add r30, r30
107ee: ff 1f adc r31, r31
107f0: e8 54 subi r30, 0x48 ; 72
107f2: ff 4e sbci r31, 0xEF ; 239
107f4: e4 91 lpm r30, Z
107f6: e0 93 90 04 sts 0x0490, r30
default:
break;
}
// if the menu item has been changed, do not pass the key to the item handler
// to avoid jumping over to items
if(item != last_item) key = JETIBOX_KEY_UNDEF;
107fa: 80 91 90 04 lds r24, 0x0490
107fe: 48 13 cpse r20, r24
10800: 21 c0 rjmp .+66 ; 0x10844 <JetiBox_Update+0xea>
 
// if((updateDelay++ & 0x01) || (key != last_key))
if((updateDelay++ & 0x01) || (key != JETIBOX_KEY_NONE))
10802: 80 91 58 01 lds r24, 0x0158
10806: 91 e0 ldi r25, 0x01 ; 1
10808: 98 0f add r25, r24
1080a: 90 93 58 01 sts 0x0158, r25
1080e: 80 fd sbrc r24, 0
10810: 02 c0 rjmp .+4 ; 0x10816 <JetiBox_Update+0xbc>
10812: cf 30 cpi r28, 0x0F ; 15
10814: f1 f0 breq .+60 ; 0x10852 <JetiBox_Update+0xf8>
{
last_key = key;
10816: c0 93 8e 04 sts 0x048E, r28
LIBFC_JetiBox_Clear();
1081a: 0e 94 81 0f call 0x1f02 ; 0x1f02 <LIBFC_JetiBox_Clear>
//execute menu item handler
((pFctMenu)(pgm_read_word(&(JetiBox_Menu[item].pHandler))))(key);
1081e: 20 91 90 04 lds r18, 0x0490
10822: 30 e0 ldi r19, 0x00 ; 0
10824: f9 01 movw r30, r18
10826: ee 0f add r30, r30
10828: ff 1f adc r31, r31
1082a: 2e 0f add r18, r30
1082c: 3f 1f adc r19, r31
1082e: f9 01 movw r30, r18
10830: ee 0f add r30, r30
10832: ff 1f adc r31, r31
10834: e7 54 subi r30, 0x47 ; 71
10836: ff 4e sbci r31, 0xEF ; 239
10838: 25 91 lpm r18, Z+
1083a: 34 91 lpm r19, Z
1083c: 8c 2f mov r24, r28
1083e: f9 01 movw r30, r18
10840: 09 95 icall
10842: 07 c0 rjmp .+14 ; 0x10852 <JetiBox_Update+0xf8>
// if the menu item has been changed, do not pass the key to the item handler
// to avoid jumping over to items
if(item != last_item) key = JETIBOX_KEY_UNDEF;
 
// if((updateDelay++ & 0x01) || (key != last_key))
if((updateDelay++ & 0x01) || (key != JETIBOX_KEY_NONE))
10844: 80 91 58 01 lds r24, 0x0158
10848: 8f 5f subi r24, 0xFF ; 255
1084a: 80 93 58 01 sts 0x0158, r24
default:
break;
}
// if the menu item has been changed, do not pass the key to the item handler
// to avoid jumping over to items
if(item != last_item) key = JETIBOX_KEY_UNDEF;
1084e: c0 e0 ldi r28, 0x00 ; 0
10850: e2 cf rjmp .-60 ; 0x10816 <JetiBox_Update+0xbc>
//execute menu item handler
((pFctMenu)(pgm_read_word(&(JetiBox_Menu[item].pHandler))))(key);
}
#endif
return (0);
}
10852: 80 e0 ldi r24, 0x00 ; 0
10854: cf 91 pop r28
10856: 08 95 ret
 
00010858 <BuildJeti_Vario>:
 
void BuildJeti_Vario(void)
{
signed int tmp = 0;
static signed int JetiVarioMeter = 0;
JetiVarioMeter = (JetiVarioMeter * 3 + VarioMeter) / 4;
10858: 40 91 54 03 lds r20, 0x0354
1085c: 50 91 55 03 lds r21, 0x0355
10860: 20 91 97 04 lds r18, 0x0497
10864: 30 91 98 04 lds r19, 0x0498
10868: c9 01 movw r24, r18
1086a: 88 0f add r24, r24
1086c: 99 1f adc r25, r25
1086e: 82 0f add r24, r18
10870: 93 1f adc r25, r19
10872: 84 0f add r24, r20
10874: 95 1f adc r25, r21
10876: 99 23 and r25, r25
10878: 0c f4 brge .+2 ; 0x1087c <BuildJeti_Vario+0x24>
1087a: 03 96 adiw r24, 0x03 ; 3
1087c: 95 95 asr r25
1087e: 87 95 ror r24
10880: 95 95 asr r25
10882: 87 95 ror r24
10884: 90 93 98 04 sts 0x0498, r25
10888: 80 93 97 04 sts 0x0497, r24
 
if(VarioCharacter == '+')
1088c: 20 91 20 01 lds r18, 0x0120
10890: 2b 32 cpi r18, 0x2B ; 43
10892: d1 f4 brne .+52 ; 0x108c8 <BuildJeti_Vario+0x70>
{
tmp = (AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung) / 32 + 5;
10894: 40 91 50 05 lds r20, 0x0550
10898: 20 91 f8 03 lds r18, 0x03F8
1089c: 30 91 f9 03 lds r19, 0x03F9
108a0: 42 9f mul r20, r18
108a2: c0 01 movw r24, r0
108a4: 43 9f mul r20, r19
108a6: 90 0d add r25, r0
108a8: 11 24 eor r1, r1
108aa: 99 23 and r25, r25
108ac: 0c f4 brge .+2 ; 0x108b0 <BuildJeti_Vario+0x58>
108ae: 4f 96 adiw r24, 0x1f ; 31
108b0: 95 95 asr r25
108b2: 87 95 ror r24
108b4: 95 95 asr r25
108b6: 87 95 ror r24
108b8: 95 95 asr r25
108ba: 87 95 ror r24
108bc: 95 95 asr r25
108be: 87 95 ror r24
108c0: 95 95 asr r25
108c2: 87 95 ror r24
108c4: 05 96 adiw r24, 0x05 ; 5
108c6: 47 c0 rjmp .+142 ; 0x10956 <BuildJeti_Vario+0xfe>
}
else
if(VarioCharacter == '-')
108c8: 2d 32 cpi r18, 0x2D ; 45
108ca: d1 f4 brne .+52 ; 0x10900 <BuildJeti_Vario+0xa8>
{
tmp = (AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung) / 32 - 5;
108cc: 40 91 50 05 lds r20, 0x0550
108d0: 20 91 f8 03 lds r18, 0x03F8
108d4: 30 91 f9 03 lds r19, 0x03F9
108d8: 42 9f mul r20, r18
108da: c0 01 movw r24, r0
108dc: 43 9f mul r20, r19
108de: 90 0d add r25, r0
108e0: 11 24 eor r1, r1
108e2: 99 23 and r25, r25
108e4: 0c f4 brge .+2 ; 0x108e8 <BuildJeti_Vario+0x90>
108e6: 4f 96 adiw r24, 0x1f ; 31
108e8: 95 95 asr r25
108ea: 87 95 ror r24
108ec: 95 95 asr r25
108ee: 87 95 ror r24
108f0: 95 95 asr r25
108f2: 87 95 ror r24
108f4: 95 95 asr r25
108f6: 87 95 ror r24
108f8: 95 95 asr r25
108fa: 87 95 ror r24
108fc: 05 97 sbiw r24, 0x05 ; 5
108fe: 2b c0 rjmp .+86 ; 0x10956 <BuildJeti_Vario+0xfe>
}
else
if((VarioCharacter == ' ') && (FC_StatusFlags & FC_STATUS_FLY))
10900: 20 32 cpi r18, 0x20 ; 32
10902: a9 f4 brne .+42 ; 0x1092e <BuildJeti_Vario+0xd6>
10904: 20 91 cb 03 lds r18, 0x03CB
10908: 21 ff sbrs r18, 1
1090a: 20 c0 rjmp .+64 ; 0x1094c <BuildJeti_Vario+0xf4>
{
tmp = (JetiVarioMeter/32);
1090c: 9c 01 movw r18, r24
1090e: 99 23 and r25, r25
10910: 14 f4 brge .+4 ; 0x10916 <BuildJeti_Vario+0xbe>
10912: 21 5e subi r18, 0xE1 ; 225
10914: 3f 4f sbci r19, 0xFF ; 255
10916: c9 01 movw r24, r18
10918: 95 95 asr r25
1091a: 87 95 ror r24
1091c: 95 95 asr r25
1091e: 87 95 ror r24
10920: 95 95 asr r25
10922: 87 95 ror r24
10924: 95 95 asr r25
10926: 87 95 ror r24
10928: 95 95 asr r25
1092a: 87 95 ror r24
1092c: 14 c0 rjmp .+40 ; 0x10956 <BuildJeti_Vario+0xfe>
}
else
if(VarioCharacter == '^') tmp = FromNC_AltitudeSpeed;
1092e: 2e 35 cpi r18, 0x5E ; 94
10930: 21 f4 brne .+8 ; 0x1093a <BuildJeti_Vario+0xe2>
10932: 80 91 f3 03 lds r24, 0x03F3
10936: 90 e0 ldi r25, 0x00 ; 0
10938: 0e c0 rjmp .+28 ; 0x10956 <BuildJeti_Vario+0xfe>
else
if(VarioCharacter == 'v') tmp = tmp - FromNC_AltitudeSpeed;
1093a: 26 37 cpi r18, 0x76 ; 118
1093c: 51 f4 brne .+20 ; 0x10952 <BuildJeti_Vario+0xfa>
1093e: 80 91 f3 03 lds r24, 0x03F3
10942: 90 e0 ldi r25, 0x00 ; 0
10944: 91 95 neg r25
10946: 81 95 neg r24
10948: 91 09 sbc r25, r1
1094a: 05 c0 rjmp .+10 ; 0x10956 <BuildJeti_Vario+0xfe>
};
 
 
void BuildJeti_Vario(void)
{
signed int tmp = 0;
1094c: 80 e0 ldi r24, 0x00 ; 0
1094e: 90 e0 ldi r25, 0x00 ; 0
10950: 02 c0 rjmp .+4 ; 0x10956 <BuildJeti_Vario+0xfe>
10952: 80 e0 ldi r24, 0x00 ; 0
10954: 90 e0 ldi r25, 0x00 ; 0
else
if(VarioCharacter == '^') tmp = FromNC_AltitudeSpeed;
else
if(VarioCharacter == 'v') tmp = tmp - FromNC_AltitudeSpeed;
 
JetiExData[12].Value = tmp;
10956: aa 27 eor r26, r26
10958: 97 fd sbrc r25, 7
1095a: a0 95 com r26
1095c: ba 2f mov r27, r26
1095e: 80 93 50 02 sts 0x0250, r24
10962: 90 93 51 02 sts 0x0251, r25
10966: a0 93 52 02 sts 0x0252, r26
1096a: b0 93 53 02 sts 0x0253, r27
1096e: 08 95 ret
 
00010970 <JetiEX_Update>:
 
// --------------------------------------------------------------------------------------------------
void JetiEX_Update(void)
{
 
GetHottestBl();
10970: 0e 94 79 60 call 0xc0f2 ; 0xc0f2 <GetHottestBl>
JetiExData[1].Value = UBat;
10974: 80 91 1a 01 lds r24, 0x011A
10978: 90 91 1b 01 lds r25, 0x011B
1097c: aa 27 eor r26, r26
1097e: 97 fd sbrc r25, 7
10980: a0 95 com r26
10982: ba 2f mov r27, r26
10984: 80 93 7f 01 sts 0x017F, r24
10988: 90 93 80 01 sts 0x0180, r25
1098c: a0 93 81 01 sts 0x0181, r26
10990: b0 93 82 01 sts 0x0182, r27
JetiExData[2].Value = Capacity.ActualCurrent;
10994: 80 91 15 05 lds r24, 0x0515
10998: 90 91 16 05 lds r25, 0x0516
1099c: a0 e0 ldi r26, 0x00 ; 0
1099e: b0 e0 ldi r27, 0x00 ; 0
109a0: 80 93 92 01 sts 0x0192, r24
109a4: 90 93 93 01 sts 0x0193, r25
109a8: a0 93 94 01 sts 0x0194, r26
109ac: b0 93 95 01 sts 0x0195, r27
JetiExData[3].Value = Capacity.UsedCapacity / 10;
109b0: 20 91 19 05 lds r18, 0x0519
109b4: 30 91 1a 05 lds r19, 0x051A
109b8: ad ec ldi r26, 0xCD ; 205
109ba: bc ec ldi r27, 0xCC ; 204
109bc: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
109c0: 96 95 lsr r25
109c2: 87 95 ror r24
109c4: 96 95 lsr r25
109c6: 87 95 ror r24
109c8: 96 95 lsr r25
109ca: 87 95 ror r24
109cc: a0 e0 ldi r26, 0x00 ; 0
109ce: b0 e0 ldi r27, 0x00 ; 0
109d0: 80 93 a5 01 sts 0x01A5, r24
109d4: 90 93 a6 01 sts 0x01A6, r25
109d8: a0 93 a7 01 sts 0x01A7, r26
109dc: b0 93 a8 01 sts 0x01A8, r27
JetiExData[4].Value = HoehenWert / 100;
109e0: 60 91 fe 03 lds r22, 0x03FE
109e4: 70 91 ff 03 lds r23, 0x03FF
109e8: 80 91 00 04 lds r24, 0x0400
109ec: 90 91 01 04 lds r25, 0x0401
109f0: 24 e6 ldi r18, 0x64 ; 100
109f2: 30 e0 ldi r19, 0x00 ; 0
109f4: 40 e0 ldi r20, 0x00 ; 0
109f6: 50 e0 ldi r21, 0x00 ; 0
109f8: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
109fc: 20 93 b8 01 sts 0x01B8, r18
10a00: 30 93 b9 01 sts 0x01B9, r19
10a04: 40 93 ba 01 sts 0x01BA, r20
10a08: 50 93 bb 01 sts 0x01BB, r21
JetiExData[5].Value = KompassValue;
10a0c: 80 91 4e 01 lds r24, 0x014E
10a10: 90 91 4f 01 lds r25, 0x014F
10a14: aa 27 eor r26, r26
10a16: 97 fd sbrc r25, 7
10a18: a0 95 com r26
10a1a: ba 2f mov r27, r26
10a1c: 80 93 cb 01 sts 0x01CB, r24
10a20: 90 93 cc 01 sts 0x01CC, r25
10a24: a0 93 cd 01 sts 0x01CD, r26
10a28: b0 93 ce 01 sts 0x01CE, r27
JetiExData[6].Value = GPSInfo.NumOfSats;
10a2c: 80 91 d8 08 lds r24, 0x08D8
10a30: 90 e0 ldi r25, 0x00 ; 0
10a32: a0 e0 ldi r26, 0x00 ; 0
10a34: b0 e0 ldi r27, 0x00 ; 0
10a36: 80 93 de 01 sts 0x01DE, r24
10a3a: 90 93 df 01 sts 0x01DF, r25
10a3e: a0 93 e0 01 sts 0x01E0, r26
10a42: b0 93 e1 01 sts 0x01E1, r27
JetiExData[7].Value = GPSInfo.Speed;
10a46: 80 91 da 08 lds r24, 0x08DA
10a4a: 90 e0 ldi r25, 0x00 ; 0
10a4c: a0 e0 ldi r26, 0x00 ; 0
10a4e: b0 e0 ldi r27, 0x00 ; 0
10a50: 80 93 f1 01 sts 0x01F1, r24
10a54: 90 93 f2 01 sts 0x01F2, r25
10a58: a0 93 f3 01 sts 0x01F3, r26
10a5c: b0 93 f4 01 sts 0x01F4, r27
JetiExData[8].Value = GPSInfo.HomeDistance / 10;
10a60: 20 91 db 08 lds r18, 0x08DB
10a64: 30 91 dc 08 lds r19, 0x08DC
10a68: ad ec ldi r26, 0xCD ; 205
10a6a: bc ec ldi r27, 0xCC ; 204
10a6c: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
10a70: 96 95 lsr r25
10a72: 87 95 ror r24
10a74: 96 95 lsr r25
10a76: 87 95 ror r24
10a78: 96 95 lsr r25
10a7a: 87 95 ror r24
10a7c: a0 e0 ldi r26, 0x00 ; 0
10a7e: b0 e0 ldi r27, 0x00 ; 0
10a80: 80 93 04 02 sts 0x0204, r24
10a84: 90 93 05 02 sts 0x0205, r25
10a88: a0 93 06 02 sts 0x0206, r26
10a8c: b0 93 07 02 sts 0x0207, r27
JetiExData[9].Value = GPSInfo.HomeBearing;
10a90: 80 91 dd 08 lds r24, 0x08DD
10a94: 90 91 de 08 lds r25, 0x08DE
10a98: aa 27 eor r26, r26
10a9a: 97 fd sbrc r25, 7
10a9c: a0 95 com r26
10a9e: ba 2f mov r27, r26
10aa0: 80 93 17 02 sts 0x0217, r24
10aa4: 90 93 18 02 sts 0x0218, r25
10aa8: a0 93 19 02 sts 0x0219, r26
10aac: b0 93 1a 02 sts 0x021A, r27
JetiExData[10].Value = MaxBlTemperture;
10ab0: 80 91 84 04 lds r24, 0x0484
10ab4: 90 e0 ldi r25, 0x00 ; 0
10ab6: a0 e0 ldi r26, 0x00 ; 0
10ab8: b0 e0 ldi r27, 0x00 ; 0
10aba: 80 93 2a 02 sts 0x022A, r24
10abe: 90 93 2b 02 sts 0x022B, r25
10ac2: a0 93 2c 02 sts 0x022C, r26
10ac6: b0 93 2d 02 sts 0x022D, r27
JetiExData[11].Value = EarthMagneticField;
10aca: 80 91 ba 04 lds r24, 0x04BA
10ace: 90 e0 ldi r25, 0x00 ; 0
10ad0: a0 e0 ldi r26, 0x00 ; 0
10ad2: b0 e0 ldi r27, 0x00 ; 0
10ad4: 80 93 3d 02 sts 0x023D, r24
10ad8: 90 93 3e 02 sts 0x023E, r25
10adc: a0 93 3f 02 sts 0x023F, r26
10ae0: b0 93 40 02 sts 0x0240, r27
// JetiExData[12].Value = Vario; // wird in BuildJeti_Vario() gemacht
JetiExData[13].Value = NC_ErrorCode;
10ae4: 80 91 bb 04 lds r24, 0x04BB
10ae8: 90 e0 ldi r25, 0x00 ; 0
10aea: a0 e0 ldi r26, 0x00 ; 0
10aec: b0 e0 ldi r27, 0x00 ; 0
10aee: 80 93 63 02 sts 0x0263, r24
10af2: 90 93 64 02 sts 0x0264, r25
10af6: a0 93 65 02 sts 0x0265, r26
10afa: b0 93 66 02 sts 0x0266, r27
10afe: 08 95 ret
 
00010b00 <LED_Init>:
 
// initializes the LED control outputs J16, J17
void LED_Init(void)
{
// set PC2 & PC3 as output (control of J16 & J17)
DDRC |= (1<<DDRC2)|(1<<DDRC3);
10b00: 87 b1 in r24, 0x07 ; 7
10b02: 8c 60 ori r24, 0x0C ; 12
10b04: 87 b9 out 0x07, r24 ; 7
J16_OFF;
10b06: 42 98 cbi 0x08, 2 ; 8
J17_OFF;
10b08: 43 98 cbi 0x08, 3 ; 8
J16Blinkcount = 0; J16Mask = 128;
10b0a: 10 92 a1 04 sts 0x04A1, r1
10b0e: 80 e8 ldi r24, 0x80 ; 128
10b10: 80 93 8f 02 sts 0x028F, r24
J17Blinkcount = 0; J17Mask = 128;
10b14: 10 92 a0 04 sts 0x04A0, r1
10b18: 80 93 8e 02 sts 0x028E, r24
10b1c: 08 95 ret
 
00010b1e <LED_Update>:
static unsigned char J16Bitmask = 0;
static unsigned char J17Bitmask = 0;
static unsigned char J16Warn = 0, J17Warn = 0;
static unsigned char from_nc = 0; // Copy for the timing
 
if(FromNC_WP_EventChannel_New) from_nc = FromNC_WP_EventChannel_New;
10b1e: 80 91 bd 04 lds r24, 0x04BD
10b22: 81 11 cpse r24, r1
10b24: 80 93 9e 04 sts 0x049E, r24
if(!delay--) // 20ms Intervall
10b28: 80 91 9d 04 lds r24, 0x049D
10b2c: 9f ef ldi r25, 0xFF ; 255
10b2e: 98 0f add r25, r24
10b30: 90 93 9d 04 sts 0x049D, r25
10b34: 81 11 cpse r24, r1
10b36: 73 c1 rjmp .+742 ; 0x10e1e <LED_Update+0x300>
{
J16Bitmask = EE_Parameter.J16Bitmask;
10b38: 80 91 88 05 lds r24, 0x0588
10b3c: 80 93 9c 04 sts 0x049C, r24
J17Bitmask = EE_Parameter.J17Bitmask;
10b40: 80 91 8a 05 lds r24, 0x058A
10b44: 80 93 9b 04 sts 0x049B, r24
delay = 9;
10b48: 89 e0 ldi r24, 0x09 ; 9
10b4a: 80 93 9d 04 sts 0x049D, r24
if(FC_StatusFlags & (FC_STATUS_LOWBAT | FC_STATUS_EMERGENCY_LANDING) || (VersionInfo.HardwareError[1] & FC_ERROR1_I2C))
10b4e: 80 91 cb 03 lds r24, 0x03CB
10b52: 80 73 andi r24, 0x30 ; 48
10b54: 21 f4 brne .+8 ; 0x10b5e <LED_Update+0x40>
10b56: 80 91 63 0a lds r24, 0x0A63
10b5a: 80 ff sbrs r24, 0
10b5c: 1d c0 rjmp .+58 ; 0x10b98 <LED_Update+0x7a>
{
if(EE_Parameter.WARN_J16_Bitmask)
10b5e: 80 91 8c 05 lds r24, 0x058C
10b62: 88 23 and r24, r24
10b64: 51 f0 breq .+20 ; 0x10b7a <LED_Update+0x5c>
{
if(!J16Warn) J16Blinkcount = 4;
10b66: 80 91 9a 04 lds r24, 0x049A
10b6a: 81 11 cpse r24, r1
10b6c: 03 c0 rjmp .+6 ; 0x10b74 <LED_Update+0x56>
10b6e: 84 e0 ldi r24, 0x04 ; 4
10b70: 80 93 a1 04 sts 0x04A1, r24
J16Warn = 1;
10b74: 81 e0 ldi r24, 0x01 ; 1
10b76: 80 93 9a 04 sts 0x049A, r24
}
if(EE_Parameter.WARN_J17_Bitmask)
10b7a: 80 91 8d 05 lds r24, 0x058D
10b7e: 88 23 and r24, r24
10b80: 79 f0 breq .+30 ; 0x10ba0 <LED_Update+0x82>
{
if(!J17Warn) J17Blinkcount = 4;
10b82: 80 91 99 04 lds r24, 0x0499
10b86: 81 11 cpse r24, r1
10b88: 03 c0 rjmp .+6 ; 0x10b90 <LED_Update+0x72>
10b8a: 84 e0 ldi r24, 0x04 ; 4
10b8c: 80 93 a0 04 sts 0x04A0, r24
J17Warn = 1;
10b90: 81 e0 ldi r24, 0x01 ; 1
10b92: 80 93 99 04 sts 0x0499, r24
10b96: 04 c0 rjmp .+8 ; 0x10ba0 <LED_Update+0x82>
}
}
else
{
J16Warn = 0;
10b98: 10 92 9a 04 sts 0x049A, r1
J17Warn = 0;
10b9c: 10 92 99 04 sts 0x0499, r1
}
//DebugOut.Analog[29] = EE_Parameter.GlobalConfig3;
// Output 1
if(!J16Warn)
10ba0: 80 91 9a 04 lds r24, 0x049A
10ba4: 81 11 cpse r24, r1
10ba6: 95 c0 rjmp .+298 ; 0x10cd2 <LED_Update+0x1b4>
{
if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK1) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED1) J16_ON; else J16_OFF;}
10ba8: 80 91 b6 05 lds r24, 0x05B6
10bac: 84 ff sbrs r24, 4
10bae: 0a c0 rjmp .+20 ; 0x10bc4 <LED_Update+0xa6>
10bb0: 90 91 03 04 lds r25, 0x0403
10bb4: 91 11 cpse r25, r1
10bb6: 06 c0 rjmp .+12 ; 0x10bc4 <LED_Update+0xa6>
10bb8: 85 ff sbrs r24, 5
10bba: 02 c0 rjmp .+4 ; 0x10bc0 <LED_Update+0xa2>
10bbc: 42 9a sbi 0x08, 2 ; 8
10bbe: a8 c0 rjmp .+336 ; 0x10d10 <LED_Update+0x1f2>
10bc0: 42 98 cbi 0x08, 2 ; 8
10bc2: a6 c0 rjmp .+332 ; 0x10d10 <LED_Update+0x1f2>
else
if((EE_Parameter.J16Timing > 247) && (Parameter_J16Timing > 220)) {if(J16Bitmask & 128) J16_OFF; else J16_ON; J16Mask = 1; NC_Wait_for_LED = 0;} // Manual overwrite
10bc4: 80 91 89 05 lds r24, 0x0589
10bc8: 88 3f cpi r24, 0xF8 ; 248
10bca: 00 f1 brcs .+64 ; 0x10c0c <LED_Update+0xee>
10bcc: 80 91 3b 06 lds r24, 0x063B
10bd0: 8d 3d cpi r24, 0xDD ; 221
10bd2: 68 f0 brcs .+26 ; 0x10bee <LED_Update+0xd0>
10bd4: 80 91 9c 04 lds r24, 0x049C
10bd8: 88 23 and r24, r24
10bda: 14 f4 brge .+4 ; 0x10be0 <LED_Update+0xc2>
10bdc: 42 98 cbi 0x08, 2 ; 8
10bde: 01 c0 rjmp .+2 ; 0x10be2 <LED_Update+0xc4>
10be0: 42 9a sbi 0x08, 2 ; 8
10be2: 81 e0 ldi r24, 0x01 ; 1
10be4: 80 93 8f 02 sts 0x028F, r24
10be8: 10 92 9f 04 sts 0x049F, r1
10bec: 91 c0 rjmp .+290 ; 0x10d10 <LED_Update+0x1f2>
else
if((EE_Parameter.J16Timing > 247) && (Parameter_J16Timing == 5)) {if(J16Bitmask & 128) J16_ON; else J16_OFF; J16Mask = 1; NC_Wait_for_LED = 0;} // Manual overwrite
10bee: 85 30 cpi r24, 0x05 ; 5
10bf0: 69 f4 brne .+26 ; 0x10c0c <LED_Update+0xee>
10bf2: 80 91 9c 04 lds r24, 0x049C
10bf6: 88 23 and r24, r24
10bf8: 14 f4 brge .+4 ; 0x10bfe <LED_Update+0xe0>
10bfa: 42 9a sbi 0x08, 2 ; 8
10bfc: 01 c0 rjmp .+2 ; 0x10c00 <LED_Update+0xe2>
10bfe: 42 98 cbi 0x08, 2 ; 8
10c00: 81 e0 ldi r24, 0x01 ; 1
10c02: 80 93 8f 02 sts 0x028F, r24
10c06: 10 92 9f 04 sts 0x049F, r1
10c0a: 82 c0 rjmp .+260 ; 0x10d10 <LED_Update+0x1f2>
else
if(!J16Blinkcount--)
10c0c: 80 91 a1 04 lds r24, 0x04A1
10c10: 9f ef ldi r25, 0xFF ; 255
10c12: 98 0f add r25, r24
10c14: 90 93 a1 04 sts 0x04A1, r25
10c18: 81 11 cpse r24, r1
10c1a: 7a c0 rjmp .+244 ; 0x10d10 <LED_Update+0x1f2>
{
if(EE_Parameter.GlobalConfig3 & CFG3_USE_NC_FOR_OUT1)
10c1c: 80 91 b9 05 lds r24, 0x05B9
10c20: 85 ff sbrs r24, 5
10c22: 39 c0 rjmp .+114 ; 0x10c96 <LED_Update+0x178>
{
J16Blinkcount = from_nc / 2;
10c24: 80 91 9e 04 lds r24, 0x049E
10c28: 98 2f mov r25, r24
10c2a: 96 95 lsr r25
10c2c: 90 93 a1 04 sts 0x04A1, r25
if(!from_nc) { NC_Wait_for_LED = 0; if(J16Bitmask & 128) J16_ON; else J16_OFF; J16Mask = 0; } // Ausschalten
10c30: 81 11 cpse r24, r1
10c32: 0c c0 rjmp .+24 ; 0x10c4c <LED_Update+0x12e>
10c34: 10 92 9f 04 sts 0x049F, r1
10c38: 80 91 9c 04 lds r24, 0x049C
10c3c: 88 23 and r24, r24
10c3e: 14 f4 brge .+4 ; 0x10c44 <LED_Update+0x126>
10c40: 42 9a sbi 0x08, 2 ; 8
10c42: 01 c0 rjmp .+2 ; 0x10c46 <LED_Update+0x128>
10c44: 42 98 cbi 0x08, 2 ; 8
10c46: 10 92 8f 02 sts 0x028F, r1
10c4a: 62 c0 rjmp .+196 ; 0x10d10 <LED_Update+0x1f2>
else
{
NC_Wait_for_LED = 1;
10c4c: 81 e0 ldi r24, 0x01 ; 1
10c4e: 80 93 9f 04 sts 0x049F, r24
if(J16Mask == 0)
10c52: 80 91 8f 02 lds r24, 0x028F
10c56: 81 11 cpse r24, r1
10c58: 11 c0 rjmp .+34 ; 0x10c7c <LED_Update+0x15e>
{
from_nc = FromNC_WP_EventChannel_New;
10c5a: 80 91 bd 04 lds r24, 0x04BD
10c5e: 80 93 9e 04 sts 0x049E, r24
FromNC_WP_EventChannel_New = 0;
10c62: 10 92 bd 04 sts 0x04BD, r1
J16Mask = 64;
10c66: 80 e4 ldi r24, 0x40 ; 64
10c68: 80 93 8f 02 sts 0x028F, r24
if(J16Bitmask & 128) J16_ON; else J16_OFF; // Ausschalten
10c6c: 80 91 9c 04 lds r24, 0x049C
10c70: 88 23 and r24, r24
10c72: 14 f4 brge .+4 ; 0x10c78 <LED_Update+0x15a>
10c74: 42 9a sbi 0x08, 2 ; 8
10c76: 4c c0 rjmp .+152 ; 0x10d10 <LED_Update+0x1f2>
10c78: 42 98 cbi 0x08, 2 ; 8
10c7a: 4a c0 rjmp .+148 ; 0x10d10 <LED_Update+0x1f2>
}
else
{
if(J16Mask & J16Bitmask) J16_ON; else J16_OFF;
10c7c: 90 91 9c 04 lds r25, 0x049C
10c80: 89 23 and r24, r25
10c82: 11 f0 breq .+4 ; 0x10c88 <LED_Update+0x16a>
10c84: 42 9a sbi 0x08, 2 ; 8
10c86: 01 c0 rjmp .+2 ; 0x10c8a <LED_Update+0x16c>
10c88: 42 98 cbi 0x08, 2 ; 8
J16Mask /= 2;
10c8a: 80 91 8f 02 lds r24, 0x028F
10c8e: 86 95 lsr r24
10c90: 80 93 8f 02 sts 0x028F, r24
10c94: 3d c0 rjmp .+122 ; 0x10d10 <LED_Update+0x1f2>
}
}
}
else
{
J16Blinkcount = Parameter_J16Timing / 2;
10c96: 80 91 3b 06 lds r24, 0x063B
10c9a: 86 95 lsr r24
10c9c: 80 93 a1 04 sts 0x04A1, r24
if(J16Mask == 1) { from_nc = 0; J16Mask = 64; } else J16Mask /= 2;
10ca0: 80 91 8f 02 lds r24, 0x028F
10ca4: 81 30 cpi r24, 0x01 ; 1
10ca6: 31 f4 brne .+12 ; 0x10cb4 <LED_Update+0x196>
10ca8: 10 92 9e 04 sts 0x049E, r1
10cac: 80 e4 ldi r24, 0x40 ; 64
10cae: 80 93 8f 02 sts 0x028F, r24
10cb2: 03 c0 rjmp .+6 ; 0x10cba <LED_Update+0x19c>
10cb4: 86 95 lsr r24
10cb6: 80 93 8f 02 sts 0x028F, r24
if(J16Mask & J16Bitmask) J16_ON; else J16_OFF;
10cba: 90 91 9c 04 lds r25, 0x049C
10cbe: 80 91 8f 02 lds r24, 0x028F
10cc2: 89 23 and r24, r25
10cc4: 11 f0 breq .+4 ; 0x10cca <LED_Update+0x1ac>
10cc6: 42 9a sbi 0x08, 2 ; 8
10cc8: 01 c0 rjmp .+2 ; 0x10ccc <LED_Update+0x1ae>
10cca: 42 98 cbi 0x08, 2 ; 8
NC_Wait_for_LED = 0;
10ccc: 10 92 9f 04 sts 0x049F, r1
10cd0: 1f c0 rjmp .+62 ; 0x10d10 <LED_Update+0x1f2>
}
}
}
else // warning case
if(!J16Blinkcount--)
10cd2: 80 91 a1 04 lds r24, 0x04A1
10cd6: 88 23 and r24, r24
10cd8: 21 f0 breq .+8 ; 0x10ce2 <LED_Update+0x1c4>
10cda: 81 50 subi r24, 0x01 ; 1
10cdc: 80 93 a1 04 sts 0x04A1, r24
10ce0: 17 c0 rjmp .+46 ; 0x10d10 <LED_Update+0x1f2>
{
J16Blinkcount = 10-1;
10ce2: 89 e0 ldi r24, 0x09 ; 9
10ce4: 80 93 a1 04 sts 0x04A1, r24
if(J16Mask == 1) J16Mask = 128; else J16Mask /= 2;
10ce8: 80 91 8f 02 lds r24, 0x028F
10cec: 81 30 cpi r24, 0x01 ; 1
10cee: 21 f4 brne .+8 ; 0x10cf8 <LED_Update+0x1da>
10cf0: 80 e8 ldi r24, 0x80 ; 128
10cf2: 80 93 8f 02 sts 0x028F, r24
10cf6: 03 c0 rjmp .+6 ; 0x10cfe <LED_Update+0x1e0>
10cf8: 86 95 lsr r24
10cfa: 80 93 8f 02 sts 0x028F, r24
if(J16Mask & EE_Parameter.WARN_J16_Bitmask) J16_ON; else J16_OFF;
10cfe: 90 91 8f 02 lds r25, 0x028F
10d02: 80 91 8c 05 lds r24, 0x058C
10d06: 89 23 and r24, r25
10d08: 11 f0 breq .+4 ; 0x10d0e <LED_Update+0x1f0>
10d0a: 42 9a sbi 0x08, 2 ; 8
10d0c: 01 c0 rjmp .+2 ; 0x10d10 <LED_Update+0x1f2>
10d0e: 42 98 cbi 0x08, 2 ; 8
}
// Output 2
 
if(!J17Warn)
10d10: 80 91 99 04 lds r24, 0x0499
10d14: 81 11 cpse r24, r1
10d16: 50 c0 rjmp .+160 ; 0x10db8 <LED_Update+0x29a>
{
if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK2) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED2) J17_ON; else J17_OFF;}
10d18: 80 91 b6 05 lds r24, 0x05B6
10d1c: 88 23 and r24, r24
10d1e: 54 f4 brge .+20 ; 0x10d34 <LED_Update+0x216>
10d20: 90 91 03 04 lds r25, 0x0403
10d24: 91 11 cpse r25, r1
10d26: 06 c0 rjmp .+12 ; 0x10d34 <LED_Update+0x216>
10d28: 86 ff sbrs r24, 6
10d2a: 02 c0 rjmp .+4 ; 0x10d30 <LED_Update+0x212>
10d2c: 43 9a sbi 0x08, 3 ; 8
10d2e: 63 c0 rjmp .+198 ; 0x10df6 <LED_Update+0x2d8>
10d30: 43 98 cbi 0x08, 3 ; 8
10d32: 61 c0 rjmp .+194 ; 0x10df6 <LED_Update+0x2d8>
else
if((EE_Parameter.J17Timing > 247) && (Parameter_J17Timing > 220)) {if(J17Bitmask & 128) J17_OFF; else J17_ON; J17Mask = 1;}
10d34: 80 91 8b 05 lds r24, 0x058B
10d38: 88 3f cpi r24, 0xF8 ; 248
10d3a: e0 f0 brcs .+56 ; 0x10d74 <LED_Update+0x256>
10d3c: 80 91 63 06 lds r24, 0x0663
10d40: 8d 3d cpi r24, 0xDD ; 221
10d42: 58 f0 brcs .+22 ; 0x10d5a <LED_Update+0x23c>
10d44: 80 91 9b 04 lds r24, 0x049B
10d48: 88 23 and r24, r24
10d4a: 14 f4 brge .+4 ; 0x10d50 <LED_Update+0x232>
10d4c: 43 98 cbi 0x08, 3 ; 8
10d4e: 01 c0 rjmp .+2 ; 0x10d52 <LED_Update+0x234>
10d50: 43 9a sbi 0x08, 3 ; 8
10d52: 81 e0 ldi r24, 0x01 ; 1
10d54: 80 93 8e 02 sts 0x028E, r24
10d58: 4e c0 rjmp .+156 ; 0x10df6 <LED_Update+0x2d8>
else
if((EE_Parameter.J17Timing > 247) && (Parameter_J17Timing == 5)) {if(J17Bitmask & 128) J17_ON; else J17_OFF; J17Mask = 1;}
10d5a: 85 30 cpi r24, 0x05 ; 5
10d5c: 59 f4 brne .+22 ; 0x10d74 <LED_Update+0x256>
10d5e: 80 91 9b 04 lds r24, 0x049B
10d62: 88 23 and r24, r24
10d64: 14 f4 brge .+4 ; 0x10d6a <LED_Update+0x24c>
10d66: 43 9a sbi 0x08, 3 ; 8
10d68: 01 c0 rjmp .+2 ; 0x10d6c <LED_Update+0x24e>
10d6a: 43 98 cbi 0x08, 3 ; 8
10d6c: 81 e0 ldi r24, 0x01 ; 1
10d6e: 80 93 8e 02 sts 0x028E, r24
10d72: 41 c0 rjmp .+130 ; 0x10df6 <LED_Update+0x2d8>
else
if(!J17Blinkcount--)
10d74: 80 91 a0 04 lds r24, 0x04A0
10d78: 9f ef ldi r25, 0xFF ; 255
10d7a: 98 0f add r25, r24
10d7c: 90 93 a0 04 sts 0x04A0, r25
10d80: 81 11 cpse r24, r1
10d82: 39 c0 rjmp .+114 ; 0x10df6 <LED_Update+0x2d8>
{
J17Blinkcount = Parameter_J17Timing / 2;
10d84: 80 91 63 06 lds r24, 0x0663
10d88: 86 95 lsr r24
10d8a: 80 93 a0 04 sts 0x04A0, r24
if(J17Mask == 1) J17Mask = 64; else J17Mask /= 2;
10d8e: 80 91 8e 02 lds r24, 0x028E
10d92: 81 30 cpi r24, 0x01 ; 1
10d94: 21 f4 brne .+8 ; 0x10d9e <LED_Update+0x280>
10d96: 80 e4 ldi r24, 0x40 ; 64
10d98: 80 93 8e 02 sts 0x028E, r24
10d9c: 03 c0 rjmp .+6 ; 0x10da4 <LED_Update+0x286>
10d9e: 86 95 lsr r24
10da0: 80 93 8e 02 sts 0x028E, r24
if(J17Mask & J17Bitmask) J17_ON; else J17_OFF;
10da4: 90 91 9b 04 lds r25, 0x049B
10da8: 80 91 8e 02 lds r24, 0x028E
10dac: 89 23 and r24, r25
10dae: 11 f0 breq .+4 ; 0x10db4 <LED_Update+0x296>
10db0: 43 9a sbi 0x08, 3 ; 8
10db2: 21 c0 rjmp .+66 ; 0x10df6 <LED_Update+0x2d8>
10db4: 43 98 cbi 0x08, 3 ; 8
10db6: 1f c0 rjmp .+62 ; 0x10df6 <LED_Update+0x2d8>
}
}
else // warning case
if(!J17Blinkcount--)
10db8: 80 91 a0 04 lds r24, 0x04A0
10dbc: 88 23 and r24, r24
10dbe: 21 f0 breq .+8 ; 0x10dc8 <LED_Update+0x2aa>
10dc0: 81 50 subi r24, 0x01 ; 1
10dc2: 80 93 a0 04 sts 0x04A0, r24
10dc6: 17 c0 rjmp .+46 ; 0x10df6 <LED_Update+0x2d8>
{
J17Blinkcount = 10-1;
10dc8: 89 e0 ldi r24, 0x09 ; 9
10dca: 80 93 a0 04 sts 0x04A0, r24
if(J17Mask == 1) J17Mask = 128; else J17Mask /= 2;
10dce: 80 91 8e 02 lds r24, 0x028E
10dd2: 81 30 cpi r24, 0x01 ; 1
10dd4: 21 f4 brne .+8 ; 0x10dde <LED_Update+0x2c0>
10dd6: 80 e8 ldi r24, 0x80 ; 128
10dd8: 80 93 8e 02 sts 0x028E, r24
10ddc: 03 c0 rjmp .+6 ; 0x10de4 <LED_Update+0x2c6>
10dde: 86 95 lsr r24
10de0: 80 93 8e 02 sts 0x028E, r24
if(J17Mask & EE_Parameter.WARN_J17_Bitmask) J17_ON; else J17_OFF;
10de4: 90 91 8e 02 lds r25, 0x028E
10de8: 80 91 8d 05 lds r24, 0x058D
10dec: 89 23 and r24, r25
10dee: 11 f0 breq .+4 ; 0x10df4 <LED_Update+0x2d6>
10df0: 43 9a sbi 0x08, 3 ; 8
10df2: 01 c0 rjmp .+2 ; 0x10df6 <LED_Update+0x2d8>
10df4: 43 98 cbi 0x08, 3 ; 8
}
 
if(PORTC & (1<<PORTC2)) FC_StatusFlags2 |= FC_STATUS2_OUT1_ACTIVE; //else FC_StatusFlags2 &= ~FC_STATUS2_OUT1_ACTIVE; // Out1 (J16) -> wird in der SPI zurück gesetzt
10df6: 42 9b sbis 0x08, 2 ; 8
10df8: 05 c0 rjmp .+10 ; 0x10e04 <LED_Update+0x2e6>
10dfa: 80 91 ca 03 lds r24, 0x03CA
10dfe: 88 60 ori r24, 0x08 ; 8
10e00: 80 93 ca 03 sts 0x03CA, r24
if(PORTC & (1<<PORTC3)) FC_StatusFlags2 |= FC_STATUS2_OUT2_ACTIVE; else FC_StatusFlags2 &= ~FC_STATUS2_OUT2_ACTIVE; // Out2 (J17)
10e04: 43 9b sbis 0x08, 3 ; 8
10e06: 06 c0 rjmp .+12 ; 0x10e14 <LED_Update+0x2f6>
10e08: 80 91 ca 03 lds r24, 0x03CA
10e0c: 80 61 ori r24, 0x10 ; 16
10e0e: 80 93 ca 03 sts 0x03CA, r24
10e12: 08 95 ret
10e14: 80 91 ca 03 lds r24, 0x03CA
10e18: 8f 7e andi r24, 0xEF ; 239
10e1a: 80 93 ca 03 sts 0x03CA, r24
10e1e: 08 95 ret
 
00010e20 <Menu_Putchar>:
for(i=0;i<80;i++) DisplayBuff[i] = ' ';
}
 
void Menu_Putchar(char c)
{
if(DispPtr < 80) DisplayBuff[DispPtr++] = c;
10e20: e0 91 a4 04 lds r30, 0x04A4
10e24: e0 35 cpi r30, 0x50 ; 80
10e26: 40 f4 brcc .+16 ; 0x10e38 <Menu_Putchar+0x18>
10e28: 91 e0 ldi r25, 0x01 ; 1
10e2a: 9e 0f add r25, r30
10e2c: 90 93 a4 04 sts 0x04A4, r25
10e30: f0 e0 ldi r31, 0x00 ; 0
10e32: e0 52 subi r30, 0x20 ; 32
10e34: f8 4f sbci r31, 0xF8 ; 248
10e36: 80 83 st Z, r24
10e38: 08 95 ret
 
00010e3a <LcdClear>:
#define KEY3 0x04
#define KEY4 0x08
#define KEY5 0x10
 
void LcdClear(void)
{
10e3a: e0 ee ldi r30, 0xE0 ; 224
10e3c: f7 e0 ldi r31, 0x07 ; 7
10e3e: 80 e3 ldi r24, 0x30 ; 48
10e40: 98 e0 ldi r25, 0x08 ; 8
unsigned char i;
for(i=0;i<80;i++) DisplayBuff[i] = ' ';
10e42: 20 e2 ldi r18, 0x20 ; 32
10e44: 21 93 st Z+, r18
10e46: e8 17 cp r30, r24
10e48: f9 07 cpc r31, r25
10e4a: e1 f7 brne .-8 ; 0x10e44 <LcdClear+0xa>
}
10e4c: 08 95 ret
 
00010e4e <Menu>:
{
if(DispPtr < 80) DisplayBuff[DispPtr++] = c;
}
 
void Menu(void)
{
10e4e: 2f 92 push r2
10e50: 3f 92 push r3
10e52: 5f 92 push r5
10e54: 6f 92 push r6
10e56: 7f 92 push r7
10e58: 8f 92 push r8
10e5a: 9f 92 push r9
10e5c: af 92 push r10
10e5e: bf 92 push r11
10e60: cf 92 push r12
10e62: df 92 push r13
10e64: ef 92 push r14
10e66: ff 92 push r15
10e68: 0f 93 push r16
10e6a: 1f 93 push r17
10e6c: cf 93 push r28
10e6e: df 93 push r29
unsigned char i;
if(RemoteKeys & KEY1) { if(MenuePunkt) MenuePunkt--; else MenuePunkt = MaxMenue;}
10e70: 80 91 a2 04 lds r24, 0x04A2
10e74: 80 ff sbrs r24, 0
10e76: 0c c0 rjmp .+24 ; 0x10e90 <Menu+0x42>
10e78: 90 91 a3 04 lds r25, 0x04A3
10e7c: 99 23 and r25, r25
10e7e: 21 f0 breq .+8 ; 0x10e88 <Menu+0x3a>
10e80: 91 50 subi r25, 0x01 ; 1
10e82: 90 93 a3 04 sts 0x04A3, r25
10e86: 04 c0 rjmp .+8 ; 0x10e90 <Menu+0x42>
10e88: 90 91 90 02 lds r25, 0x0290
10e8c: 90 93 a3 04 sts 0x04A3, r25
if(RemoteKeys & KEY2) { if(MenuePunkt == MaxMenue) MenuePunkt = 0; else MenuePunkt++;}
10e90: 81 ff sbrs r24, 1
10e92: 0c c0 rjmp .+24 ; 0x10eac <Menu+0x5e>
10e94: 90 91 a3 04 lds r25, 0x04A3
10e98: 20 91 90 02 lds r18, 0x0290
10e9c: 92 13 cpse r25, r18
10e9e: 03 c0 rjmp .+6 ; 0x10ea6 <Menu+0x58>
10ea0: 10 92 a3 04 sts 0x04A3, r1
10ea4: 03 c0 rjmp .+6 ; 0x10eac <Menu+0x5e>
10ea6: 9f 5f subi r25, 0xFF ; 255
10ea8: 90 93 a3 04 sts 0x04A3, r25
10eac: 83 70 andi r24, 0x03 ; 3
if((RemoteKeys & KEY1) && (RemoteKeys & KEY2)) MenuePunkt = 0;
10eae: 83 30 cpi r24, 0x03 ; 3
10eb0: 11 f4 brne .+4 ; 0x10eb6 <Menu+0x68>
10eb2: 10 92 a3 04 sts 0x04A3, r1
LcdClear();
10eb6: c1 df rcall .-126 ; 0x10e3a <LcdClear>
if(MenuePunkt < 10) {LCD_printfxy(17,0,"[%i]",MenuePunkt);}
10eb8: 80 91 a3 04 lds r24, 0x04A3
10ebc: 8a 30 cpi r24, 0x0A ; 10
10ebe: c8 f4 brcc .+50 ; 0x10ef2 <Menu+0xa4>
10ec0: 91 e1 ldi r25, 0x11 ; 17
10ec2: 90 93 a4 04 sts 0x04A4, r25
10ec6: 1f 92 push r1
10ec8: 8f 93 push r24
10eca: 86 e5 ldi r24, 0x56 ; 86
10ecc: 95 e1 ldi r25, 0x15 ; 21
10ece: 9f 93 push r25
10ed0: 8f 93 push r24
10ed2: 80 e1 ldi r24, 0x10 ; 16
10ed4: 97 e8 ldi r25, 0x87 ; 135
10ed6: 9f 93 push r25
10ed8: 8f 93 push r24
10eda: e0 91 78 06 lds r30, 0x0678
10ede: f0 91 79 06 lds r31, 0x0679
10ee2: 09 95 icall
10ee4: 0f 90 pop r0
10ee6: 0f 90 pop r0
10ee8: 0f 90 pop r0
10eea: 0f 90 pop r0
10eec: 0f 90 pop r0
10eee: 0f 90 pop r0
10ef0: 18 c0 rjmp .+48 ; 0x10f22 <Menu+0xd4>
else {LCD_printfxy(16,0,"[%i]",MenuePunkt);};
10ef2: 90 e1 ldi r25, 0x10 ; 16
10ef4: 90 93 a4 04 sts 0x04A4, r25
10ef8: 1f 92 push r1
10efa: 8f 93 push r24
10efc: 81 e5 ldi r24, 0x51 ; 81
10efe: 95 e1 ldi r25, 0x15 ; 21
10f00: 9f 93 push r25
10f02: 8f 93 push r24
10f04: 80 e1 ldi r24, 0x10 ; 16
10f06: 97 e8 ldi r25, 0x87 ; 135
10f08: 9f 93 push r25
10f0a: 8f 93 push r24
10f0c: e0 91 78 06 lds r30, 0x0678
10f10: f0 91 79 06 lds r31, 0x0679
10f14: 09 95 icall
10f16: 0f 90 pop r0
10f18: 0f 90 pop r0
10f1a: 0f 90 pop r0
10f1c: 0f 90 pop r0
10f1e: 0f 90 pop r0
10f20: 0f 90 pop r0
 
switch(MenuePunkt)
10f22: 20 91 a3 04 lds r18, 0x04A3
10f26: 82 2f mov r24, r18
10f28: 90 e0 ldi r25, 0x00 ; 0
10f2a: 84 31 cpi r24, 0x14 ; 20
10f2c: 91 05 cpc r25, r1
10f2e: 10 f0 brcs .+4 ; 0x10f34 <Menu+0xe6>
10f30: 0c 94 10 91 jmp 0x12220 ; 0x12220 <Menu+0x13d2>
10f34: fc 01 movw r30, r24
10f36: ee 56 subi r30, 0x6E ; 110
10f38: ff 4f sbci r31, 0xFF ; 255
10f3a: 0c 94 a7 b1 jmp 0x1634e ; 0x1634e <__tablejump2__>
{
case 0:
LCD_printfxy(0,0,"+ MikroKopter +");
10f3e: 10 92 a4 04 sts 0x04A4, r1
10f42: 81 e4 ldi r24, 0x41 ; 65
10f44: 95 e1 ldi r25, 0x15 ; 21
10f46: 9f 93 push r25
10f48: 8f 93 push r24
10f4a: c0 e1 ldi r28, 0x10 ; 16
10f4c: d7 e8 ldi r29, 0x87 ; 135
10f4e: df 93 push r29
10f50: cf 93 push r28
10f52: e0 91 78 06 lds r30, 0x0678
10f56: f0 91 79 06 lds r31, 0x0679
10f5a: 09 95 icall
LCD_printfxy(0,1,"HW:V%d.%d SW:%d.%02d%c ",PlatinenVersion/10,PlatinenVersion%10, VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH +'a');
10f5c: 84 e1 ldi r24, 0x14 ; 20
10f5e: 80 93 a4 04 sts 0x04A4, r24
10f62: 90 91 54 01 lds r25, 0x0154
10f66: 1f 92 push r1
10f68: 81 e6 ldi r24, 0x61 ; 97
10f6a: 8f 93 push r24
10f6c: 1f 92 push r1
10f6e: 88 e0 ldi r24, 0x08 ; 8
10f70: 8f 93 push r24
10f72: 1f 92 push r1
10f74: 82 e0 ldi r24, 0x02 ; 2
10f76: 8f 93 push r24
10f78: 8d ec ldi r24, 0xCD ; 205
10f7a: 98 9f mul r25, r24
10f7c: 81 2d mov r24, r1
10f7e: 11 24 eor r1, r1
10f80: 86 95 lsr r24
10f82: 86 95 lsr r24
10f84: 86 95 lsr r24
10f86: 28 2f mov r18, r24
10f88: 22 0f add r18, r18
10f8a: 32 2f mov r19, r18
10f8c: 33 0f add r19, r19
10f8e: 33 0f add r19, r19
10f90: 23 0f add r18, r19
10f92: 92 1b sub r25, r18
10f94: 1f 92 push r1
10f96: 9f 93 push r25
10f98: 1f 92 push r1
10f9a: 8f 93 push r24
10f9c: 89 e2 ldi r24, 0x29 ; 41
10f9e: 95 e1 ldi r25, 0x15 ; 21
10fa0: 9f 93 push r25
10fa2: 8f 93 push r24
10fa4: df 93 push r29
10fa6: cf 93 push r28
10fa8: e0 91 78 06 lds r30, 0x0678
10fac: f0 91 79 06 lds r31, 0x0679
10fb0: 09 95 icall
LCD_printfxy(0,2,"Set:%d %s", ActiveParamSet,Mixer.Name);
10fb2: 88 e2 ldi r24, 0x28 ; 40
10fb4: 80 93 a4 04 sts 0x04A4, r24
10fb8: 88 ec ldi r24, 0xC8 ; 200
10fba: 95 e0 ldi r25, 0x05 ; 5
10fbc: 9f 93 push r25
10fbe: 8f 93 push r24
10fc0: 80 91 52 01 lds r24, 0x0152
10fc4: 1f 92 push r1
10fc6: 8f 93 push r24
10fc8: 8f e1 ldi r24, 0x1F ; 31
10fca: 95 e1 ldi r25, 0x15 ; 21
10fcc: 9f 93 push r25
10fce: 8f 93 push r24
10fd0: df 93 push r29
10fd2: cf 93 push r28
10fd4: e0 91 78 06 lds r30, 0x0678
10fd8: f0 91 79 06 lds r31, 0x0679
10fdc: 09 95 icall
if(FC_StatusFlags3 & FC_STATUS3_BOAT) LCD_printfxy(16,2,"BOAT");
10fde: 80 91 c9 03 lds r24, 0x03C9
10fe2: 2d b7 in r18, 0x3d ; 61
10fe4: 3e b7 in r19, 0x3e ; 62
10fe6: 26 5e subi r18, 0xE6 ; 230
10fe8: 3f 4f sbci r19, 0xFF ; 255
10fea: 0f b6 in r0, 0x3f ; 63
10fec: f8 94 cli
10fee: 3e bf out 0x3e, r19 ; 62
10ff0: 0f be out 0x3f, r0 ; 63
10ff2: 2d bf out 0x3d, r18 ; 61
10ff4: 81 ff sbrs r24, 1
10ff6: 13 c0 rjmp .+38 ; 0x1101e <Menu+0x1d0>
10ff8: 88 e3 ldi r24, 0x38 ; 56
10ffa: 80 93 a4 04 sts 0x04A4, r24
10ffe: 8a e1 ldi r24, 0x1A ; 26
11000: 95 e1 ldi r25, 0x15 ; 21
11002: 9f 93 push r25
11004: 8f 93 push r24
11006: ce 01 movw r24, r28
11008: 9f 93 push r25
1100a: cf 93 push r28
1100c: e0 91 78 06 lds r30, 0x0678
11010: f0 91 79 06 lds r31, 0x0679
11014: 09 95 icall
11016: 0f 90 pop r0
11018: 0f 90 pop r0
1101a: 0f 90 pop r0
1101c: 0f 90 pop r0
 
if(VersionInfo.HardwareError[1] & FC_ERROR1_MIXER) LCD_printfxy(0,3,"Mixer Error!")
1101e: 80 91 63 0a lds r24, 0x0A63
11022: 84 ff sbrs r24, 4
11024: 16 c0 rjmp .+44 ; 0x11052 <Menu+0x204>
11026: 8c e3 ldi r24, 0x3C ; 60
11028: 80 93 a4 04 sts 0x04A4, r24
1102c: 8d e0 ldi r24, 0x0D ; 13
1102e: 95 e1 ldi r25, 0x15 ; 21
11030: 9f 93 push r25
11032: 8f 93 push r24
11034: 80 e1 ldi r24, 0x10 ; 16
11036: 97 e8 ldi r25, 0x87 ; 135
11038: 9f 93 push r25
1103a: 8f 93 push r24
1103c: e0 91 78 06 lds r30, 0x0678
11040: f0 91 79 06 lds r31, 0x0679
11044: 09 95 icall
11046: 0f 90 pop r0
11048: 0f 90 pop r0
1104a: 0f 90 pop r0
1104c: 0f 90 pop r0
1104e: 0c 94 19 91 jmp 0x12232 ; 0x12232 <Menu+0x13e4>
else
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(NC_ErrorCode)
11052: 80 91 bb 04 lds r24, 0x04BB
11056: 88 23 and r24, r24
11058: 79 f1 breq .+94 ; 0x110b8 <Menu+0x26a>
{
LCD_printfxy(0,3,"ERR%2d:",NC_ErrorCode);
1105a: 9c e3 ldi r25, 0x3C ; 60
1105c: 90 93 a4 04 sts 0x04A4, r25
11060: 1f 92 push r1
11062: 8f 93 push r24
11064: 85 e0 ldi r24, 0x05 ; 5
11066: 95 e1 ldi r25, 0x15 ; 21
11068: 9f 93 push r25
1106a: 8f 93 push r24
1106c: c0 e1 ldi r28, 0x10 ; 16
1106e: d7 e8 ldi r29, 0x87 ; 135
11070: df 93 push r29
11072: cf 93 push r28
11074: e0 91 78 06 lds r30, 0x0678
11078: f0 91 79 06 lds r31, 0x0679
1107c: 09 95 icall
_printf_P(&Menu_Putchar, NC_ERROR_TEXT[NC_ErrorCode] , 0);
1107e: 1f 92 push r1
11080: 1f 92 push r1
11082: 80 91 bb 04 lds r24, 0x04BB
11086: e1 e1 ldi r30, 0x11 ; 17
11088: 8e 9f mul r24, r30
1108a: c0 01 movw r24, r0
1108c: 11 24 eor r1, r1
1108e: 84 59 subi r24, 0x94 ; 148
11090: 94 4f sbci r25, 0xF4 ; 244
11092: 9f 93 push r25
11094: 8f 93 push r24
11096: df 93 push r29
11098: cf 93 push r28
1109a: e0 91 78 06 lds r30, 0x0678
1109e: f0 91 79 06 lds r31, 0x0679
110a2: 09 95 icall
110a4: 8d b7 in r24, 0x3d ; 61
110a6: 9e b7 in r25, 0x3e ; 62
110a8: 0c 96 adiw r24, 0x0c ; 12
110aa: 0f b6 in r0, 0x3f ; 63
110ac: f8 94 cli
110ae: 9e bf out 0x3e, r25 ; 62
110b0: 0f be out 0x3f, r0 ; 63
110b2: 8d bf out 0x3d, r24 ; 61
110b4: 0c 94 19 91 jmp 0x12232 ; 0x12232 <Menu+0x13e4>
}
else
#endif
if(VersionInfo.HardwareError[0]) LCD_printfxy(0,3,"Hardware Error 1:%d !!",VersionInfo.HardwareError[0])
110b8: 80 91 62 0a lds r24, 0x0A62
110bc: 88 23 and r24, r24
110be: d1 f0 breq .+52 ; 0x110f4 <Menu+0x2a6>
110c0: 9c e3 ldi r25, 0x3C ; 60
110c2: 90 93 a4 04 sts 0x04A4, r25
110c6: 1f 92 push r1
110c8: 8f 93 push r24
110ca: 8e ee ldi r24, 0xEE ; 238
110cc: 94 e1 ldi r25, 0x14 ; 20
110ce: 9f 93 push r25
110d0: 8f 93 push r24
110d2: 80 e1 ldi r24, 0x10 ; 16
110d4: 97 e8 ldi r25, 0x87 ; 135
110d6: 9f 93 push r25
110d8: 8f 93 push r24
110da: e0 91 78 06 lds r30, 0x0678
110de: f0 91 79 06 lds r31, 0x0679
110e2: 09 95 icall
110e4: 0f 90 pop r0
110e6: 0f 90 pop r0
110e8: 0f 90 pop r0
110ea: 0f 90 pop r0
110ec: 0f 90 pop r0
110ee: 0f 90 pop r0
110f0: 0c 94 19 91 jmp 0x12232 ; 0x12232 <Menu+0x13e4>
else
if(MissingMotor) LCD_printfxy(0,3,"Missing BL-Ctrl:%d !!",MissingMotor)
110f4: 80 91 df 04 lds r24, 0x04DF
110f8: 88 23 and r24, r24
110fa: d1 f0 breq .+52 ; 0x11130 <Menu+0x2e2>
110fc: 9c e3 ldi r25, 0x3C ; 60
110fe: 90 93 a4 04 sts 0x04A4, r25
11102: 1f 92 push r1
11104: 8f 93 push r24
11106: 88 ed ldi r24, 0xD8 ; 216
11108: 94 e1 ldi r25, 0x14 ; 20
1110a: 9f 93 push r25
1110c: 8f 93 push r24
1110e: 80 e1 ldi r24, 0x10 ; 16
11110: 97 e8 ldi r25, 0x87 ; 135
11112: 9f 93 push r25
11114: 8f 93 push r24
11116: e0 91 78 06 lds r30, 0x0678
1111a: f0 91 79 06 lds r31, 0x0679
1111e: 09 95 icall
11120: 0f 90 pop r0
11122: 0f 90 pop r0
11124: 0f 90 pop r0
11126: 0f 90 pop r0
11128: 0f 90 pop r0
1112a: 0f 90 pop r0
1112c: 0c 94 19 91 jmp 0x12232 ; 0x12232 <Menu+0x13e4>
LCD_printfxy(0,3,"! NC-ERR: %2d ! ",NC_ErrorCode);
}
#endif
// if(VersionInfo.HardwareError[1]) LCD_printfxy(0,3,"Error 2:%d !!",VersionInfo.HardwareError[1])
else
if(I2CTimeout < 6) LCD_printfxy(0,3,"I2C ERROR!!!")
11130: 80 91 b0 02 lds r24, 0x02B0
11134: 90 91 b1 02 lds r25, 0x02B1
11138: 06 97 sbiw r24, 0x06 ; 6
1113a: b0 f4 brcc .+44 ; 0x11168 <Menu+0x31a>
1113c: 8c e3 ldi r24, 0x3C ; 60
1113e: 80 93 a4 04 sts 0x04A4, r24
11142: 8b ec ldi r24, 0xCB ; 203
11144: 94 e1 ldi r25, 0x14 ; 20
11146: 9f 93 push r25
11148: 8f 93 push r24
1114a: 80 e1 ldi r24, 0x10 ; 16
1114c: 97 e8 ldi r25, 0x87 ; 135
1114e: 9f 93 push r25
11150: 8f 93 push r24
11152: e0 91 78 06 lds r30, 0x0678
11156: f0 91 79 06 lds r31, 0x0679
1115a: 09 95 icall
1115c: 0f 90 pop r0
1115e: 0f 90 pop r0
11160: 0f 90 pop r0
11162: 0f 90 pop r0
11164: 0c 94 19 91 jmp 0x12232 ; 0x12232 <Menu+0x13e4>
else
if(Capacity.MinOfMaxPWM < 30) LCD_printfxy(0,3,"BL-Selftest Err:%2d",Capacity.MinOfMaxPWM)
11168: 80 91 1b 05 lds r24, 0x051B
1116c: 8e 31 cpi r24, 0x1E ; 30
1116e: 10 f0 brcs .+4 ; 0x11174 <Menu+0x326>
11170: 0c 94 19 91 jmp 0x12232 ; 0x12232 <Menu+0x13e4>
11174: 9c e3 ldi r25, 0x3C ; 60
11176: 90 93 a4 04 sts 0x04A4, r25
1117a: 1f 92 push r1
1117c: 8f 93 push r24
1117e: 87 eb ldi r24, 0xB7 ; 183
11180: 94 e1 ldi r25, 0x14 ; 20
11182: 9f 93 push r25
11184: 8f 93 push r24
11186: 80 e1 ldi r24, 0x10 ; 16
11188: 97 e8 ldi r25, 0x87 ; 135
1118a: 9f 93 push r25
1118c: 8f 93 push r24
1118e: e0 91 78 06 lds r30, 0x0678
11192: f0 91 79 06 lds r31, 0x0679
11196: 09 95 icall
11198: 0f 90 pop r0
1119a: 0f 90 pop r0
1119c: 0f 90 pop r0
1119e: 0f 90 pop r0
111a0: 0f 90 pop r0
111a2: 0f 90 pop r0
111a4: 0c 94 19 91 jmp 0x12232 ; 0x12232 <Menu+0x13e4>
 
break;
case 1:
LCD_printfxy(0,0,"Height: %5i",(int)(HoehenWert/5));
111a8: 10 92 a4 04 sts 0x04A4, r1
111ac: 60 91 fe 03 lds r22, 0x03FE
111b0: 70 91 ff 03 lds r23, 0x03FF
111b4: 80 91 00 04 lds r24, 0x0400
111b8: 90 91 01 04 lds r25, 0x0401
111bc: 0f 2e mov r0, r31
111be: f5 e0 ldi r31, 0x05 ; 5
111c0: cf 2e mov r12, r31
111c2: d1 2c mov r13, r1
111c4: e1 2c mov r14, r1
111c6: f1 2c mov r15, r1
111c8: f0 2d mov r31, r0
111ca: a7 01 movw r20, r14
111cc: 96 01 movw r18, r12
111ce: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
111d2: 3f 93 push r19
111d4: 2f 93 push r18
111d6: 8a ea ldi r24, 0xAA ; 170
111d8: 94 e1 ldi r25, 0x14 ; 20
111da: 9f 93 push r25
111dc: 8f 93 push r24
111de: c0 e1 ldi r28, 0x10 ; 16
111e0: d7 e8 ldi r29, 0x87 ; 135
111e2: df 93 push r29
111e4: cf 93 push r28
111e6: e0 91 78 06 lds r30, 0x0678
111ea: f0 91 79 06 lds r31, 0x0679
111ee: 09 95 icall
LCD_printfxy(0,1,"Setpoint:%5i",(int)(SollHoehe/5));
111f0: 84 e1 ldi r24, 0x14 ; 20
111f2: 80 93 a4 04 sts 0x04A4, r24
111f6: 60 91 fa 03 lds r22, 0x03FA
111fa: 70 91 fb 03 lds r23, 0x03FB
111fe: 80 91 fc 03 lds r24, 0x03FC
11202: 90 91 fd 03 lds r25, 0x03FD
11206: a7 01 movw r20, r14
11208: 96 01 movw r18, r12
1120a: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
1120e: 3f 93 push r19
11210: 2f 93 push r18
11212: 8d e9 ldi r24, 0x9D ; 157
11214: 94 e1 ldi r25, 0x14 ; 20
11216: 9f 93 push r25
11218: 8f 93 push r24
1121a: df 93 push r29
1121c: cf 93 push r28
1121e: e0 91 78 06 lds r30, 0x0678
11222: f0 91 79 06 lds r31, 0x0679
11226: 09 95 icall
LCD_printfxy(0,2,"Pressure:%5i",MessLuftdruck);
11228: 88 e2 ldi r24, 0x28 ; 40
1122a: 80 93 a4 04 sts 0x04A4, r24
1122e: 80 91 10 01 lds r24, 0x0110
11232: 90 91 11 01 lds r25, 0x0111
11236: 9f 93 push r25
11238: 8f 93 push r24
1123a: 80 e9 ldi r24, 0x90 ; 144
1123c: 94 e1 ldi r25, 0x14 ; 20
1123e: 9f 93 push r25
11240: 8f 93 push r24
11242: df 93 push r29
11244: cf 93 push r28
11246: e0 91 78 06 lds r30, 0x0678
1124a: f0 91 79 06 lds r31, 0x0679
1124e: 09 95 icall
LCD_printfxy(0,3,"Offset: %5i",OCR0A);
11250: 8c e3 ldi r24, 0x3C ; 60
11252: 80 93 a4 04 sts 0x04A4, r24
11256: 87 b5 in r24, 0x27 ; 39
11258: 1f 92 push r1
1125a: 8f 93 push r24
1125c: 83 e8 ldi r24, 0x83 ; 131
1125e: 94 e1 ldi r25, 0x14 ; 20
11260: 9f 93 push r25
11262: 8f 93 push r24
11264: df 93 push r29
11266: cf 93 push r28
11268: e0 91 78 06 lds r30, 0x0678
1126c: f0 91 79 06 lds r31, 0x0679
11270: 09 95 icall
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(ACC_AltitudeControl)
11272: 2d b7 in r18, 0x3d ; 61
11274: 3e b7 in r19, 0x3e ; 62
11276: 28 5e subi r18, 0xE8 ; 232
11278: 3f 4f sbci r19, 0xFF ; 255
1127a: 0f b6 in r0, 0x3f ; 63
1127c: f8 94 cli
1127e: 3e bf out 0x3e, r19 ; 62
11280: 0f be out 0x3f, r0 ; 63
11282: 2d bf out 0x3d, r18 ; 61
11284: 80 91 c2 03 lds r24, 0x03C2
11288: 88 23 and r24, r24
1128a: 09 f4 brne .+2 ; 0x1128e <Menu+0x440>
1128c: d2 c7 rjmp .+4004 ; 0x12232 <Menu+0x13e4>
{
LCD_printfxy(17,2,"(A)");
1128e: 89 e3 ldi r24, 0x39 ; 57
11290: 80 93 a4 04 sts 0x04A4, r24
11294: 8f e7 ldi r24, 0x7F ; 127
11296: 94 e1 ldi r25, 0x14 ; 20
11298: 9f 93 push r25
1129a: 8f 93 push r24
1129c: df 93 push r29
1129e: cf 93 push r28
112a0: e0 91 78 06 lds r30, 0x0678
112a4: f0 91 79 06 lds r31, 0x0679
112a8: 09 95 icall
LCD_printfxy(17,3,"%i",CalAthmospheare);
112aa: 8d e4 ldi r24, 0x4D ; 77
112ac: 80 93 a4 04 sts 0x04A4, r24
112b0: 80 91 0c 01 lds r24, 0x010C
112b4: 1f 92 push r1
112b6: 8f 93 push r24
112b8: 8c e7 ldi r24, 0x7C ; 124
112ba: 94 e1 ldi r25, 0x14 ; 20
112bc: 9f 93 push r25
112be: 8f 93 push r24
112c0: df 93 push r29
112c2: cf 93 push r28
112c4: e0 91 78 06 lds r30, 0x0678
112c8: f0 91 79 06 lds r31, 0x0679
112cc: 09 95 icall
112ce: 2d b7 in r18, 0x3d ; 61
112d0: 3e b7 in r19, 0x3e ; 62
112d2: 26 5f subi r18, 0xF6 ; 246
112d4: 3f 4f sbci r19, 0xFF ; 255
112d6: 0f b6 in r0, 0x3f ; 63
112d8: f8 94 cli
112da: 3e bf out 0x3e, r19 ; 62
112dc: 0f be out 0x3f, r0 ; 63
112de: 2d bf out 0x3d, r18 ; 61
112e0: a8 c7 rjmp .+3920 ; 0x12232 <Menu+0x13e4>
}
#endif
break;
case 2:
LCD_printfxy(0,0,"act. bearing");
112e2: 10 92 a4 04 sts 0x04A4, r1
112e6: 8f e6 ldi r24, 0x6F ; 111
112e8: 94 e1 ldi r25, 0x14 ; 20
112ea: 9f 93 push r25
112ec: 8f 93 push r24
112ee: 80 e1 ldi r24, 0x10 ; 16
112f0: 97 e8 ldi r25, 0x87 ; 135
112f2: 9f 93 push r25
112f4: 8f 93 push r24
112f6: e0 91 78 06 lds r30, 0x0678
112fa: f0 91 79 06 lds r31, 0x0679
112fe: 09 95 icall
LCD_printfxy(0,1,"Nick: %5i",IntegralNick/1024);
11300: 84 e1 ldi r24, 0x14 ; 20
11302: 80 93 a4 04 sts 0x04A4, r24
11306: 80 91 42 04 lds r24, 0x0442
1130a: 90 91 43 04 lds r25, 0x0443
1130e: a0 91 44 04 lds r26, 0x0444
11312: b0 91 45 04 lds r27, 0x0445
11316: bb 23 and r27, r27
11318: 24 f4 brge .+8 ; 0x11322 <Menu+0x4d4>
1131a: 81 50 subi r24, 0x01 ; 1
1131c: 9c 4f sbci r25, 0xFC ; 252
1131e: af 4f sbci r26, 0xFF ; 255
11320: bf 4f sbci r27, 0xFF ; 255
11322: 07 2e mov r0, r23
11324: 7a e0 ldi r23, 0x0A ; 10
11326: b5 95 asr r27
11328: a7 95 ror r26
1132a: 97 95 ror r25
1132c: 87 95 ror r24
1132e: 7a 95 dec r23
11330: d1 f7 brne .-12 ; 0x11326 <Menu+0x4d8>
11332: 70 2d mov r23, r0
11334: bf 93 push r27
11336: af 93 push r26
11338: 9f 93 push r25
1133a: 8f 93 push r24
1133c: 80 e6 ldi r24, 0x60 ; 96
1133e: 94 e1 ldi r25, 0x14 ; 20
11340: 9f 93 push r25
11342: 8f 93 push r24
11344: 80 e1 ldi r24, 0x10 ; 16
11346: 97 e8 ldi r25, 0x87 ; 135
11348: 9f 93 push r25
1134a: 8f 93 push r24
1134c: e0 91 78 06 lds r30, 0x0678
11350: f0 91 79 06 lds r31, 0x0679
11354: 09 95 icall
LCD_printfxy(0,2,"Roll: %5i",IntegralRoll/1024);
11356: 88 e2 ldi r24, 0x28 ; 40
11358: 80 93 a4 04 sts 0x04A4, r24
1135c: 80 91 3e 04 lds r24, 0x043E
11360: 90 91 3f 04 lds r25, 0x043F
11364: a0 91 40 04 lds r26, 0x0440
11368: b0 91 41 04 lds r27, 0x0441
1136c: bb 23 and r27, r27
1136e: 24 f4 brge .+8 ; 0x11378 <Menu+0x52a>
11370: 81 50 subi r24, 0x01 ; 1
11372: 9c 4f sbci r25, 0xFC ; 252
11374: af 4f sbci r26, 0xFF ; 255
11376: bf 4f sbci r27, 0xFF ; 255
11378: 07 2e mov r0, r23
1137a: 7a e0 ldi r23, 0x0A ; 10
1137c: b5 95 asr r27
1137e: a7 95 ror r26
11380: 97 95 ror r25
11382: 87 95 ror r24
11384: 7a 95 dec r23
11386: d1 f7 brne .-12 ; 0x1137c <Menu+0x52e>
11388: 70 2d mov r23, r0
1138a: bf 93 push r27
1138c: af 93 push r26
1138e: 9f 93 push r25
11390: 8f 93 push r24
11392: 81 e5 ldi r24, 0x51 ; 81
11394: 94 e1 ldi r25, 0x14 ; 20
11396: 9f 93 push r25
11398: 8f 93 push r24
1139a: c0 e1 ldi r28, 0x10 ; 16
1139c: d7 e8 ldi r29, 0x87 ; 135
1139e: df 93 push r29
113a0: cf 93 push r28
113a2: e0 91 78 06 lds r30, 0x0678
113a6: f0 91 79 06 lds r31, 0x0679
113aa: 09 95 icall
LCD_printfxy(0,3,"Compass: %5i",CompassCorrected);
113ac: 8c e3 ldi r24, 0x3C ; 60
113ae: 80 93 a4 04 sts 0x04A4, r24
113b2: 80 91 66 06 lds r24, 0x0666
113b6: 8f 93 push r24
113b8: 80 91 65 06 lds r24, 0x0665
113bc: 8f 93 push r24
113be: 82 e4 ldi r24, 0x42 ; 66
113c0: 94 e1 ldi r25, 0x14 ; 20
113c2: 9f 93 push r25
113c4: 8f 93 push r24
113c6: df 93 push r29
113c8: cf 93 push r28
113ca: e0 91 78 06 lds r30, 0x0678
113ce: f0 91 79 06 lds r31, 0x0679
113d2: 09 95 icall
break;
113d4: 2d b7 in r18, 0x3d ; 61
113d6: 3e b7 in r19, 0x3e ; 62
113d8: 26 5e subi r18, 0xE6 ; 230
113da: 3f 4f sbci r19, 0xFF ; 255
113dc: 0f b6 in r0, 0x3f ; 63
113de: f8 94 cli
113e0: 3e bf out 0x3e, r19 ; 62
113e2: 0f be out 0x3f, r0 ; 63
113e4: 2d bf out 0x3d, r18 ; 61
113e6: 25 c7 rjmp .+3658 ; 0x12232 <Menu+0x13e4>
if((RemoteKeys & KEY1) && (RemoteKeys & KEY2)) MenuePunkt = 0;
LcdClear();
if(MenuePunkt < 10) {LCD_printfxy(17,0,"[%i]",MenuePunkt);}
else {LCD_printfxy(16,0,"[%i]",MenuePunkt);};
 
switch(MenuePunkt)
113e8: c1 e0 ldi r28, 0x01 ; 1
113ea: d0 e0 ldi r29, 0x00 ; 0
LCD_printfxy(0,1,"Nick: %5i",IntegralNick/1024);
LCD_printfxy(0,2,"Roll: %5i",IntegralRoll/1024);
LCD_printfxy(0,3,"Compass: %5i",CompassCorrected);
break;
case 3:
for(i=1;i<9;i+=2) LCD_printfxy(0,i/2,"K%i:%4i K%i:%4i ",i,PPM_in[i],i+1,PPM_in[i+1]);
113ec: 0f 2e mov r0, r31
113ee: f0 e3 ldi r31, 0x30 ; 48
113f0: ef 2e mov r14, r31
113f2: f4 e1 ldi r31, 0x14 ; 20
113f4: ff 2e mov r15, r31
113f6: f0 2d mov r31, r0
113f8: 00 e1 ldi r16, 0x10 ; 16
113fa: 17 e8 ldi r17, 0x87 ; 135
113fc: 8c 2f mov r24, r28
113fe: 86 95 lsr r24
11400: 88 0f add r24, r24
11402: 88 0f add r24, r24
11404: 98 2f mov r25, r24
11406: 99 0f add r25, r25
11408: 99 0f add r25, r25
1140a: 89 0f add r24, r25
1140c: 80 93 a4 04 sts 0x04A4, r24
11410: ce 01 movw r24, r28
11412: 01 96 adiw r24, 0x01 ; 1
11414: fc 01 movw r30, r24
11416: ee 0f add r30, r30
11418: ff 1f adc r31, r31
1141a: ef 5c subi r30, 0xCF ; 207
1141c: f7 4f sbci r31, 0xF7 ; 247
1141e: 40 81 ld r20, Z
11420: 51 81 ldd r21, Z+1 ; 0x01
11422: fe 01 movw r30, r28
11424: ee 0f add r30, r30
11426: ff 1f adc r31, r31
11428: ef 5c subi r30, 0xCF ; 207
1142a: f7 4f sbci r31, 0xF7 ; 247
1142c: 20 81 ld r18, Z
1142e: 31 81 ldd r19, Z+1 ; 0x01
11430: 5f 93 push r21
11432: 4f 93 push r20
11434: 9f 93 push r25
11436: 8f 93 push r24
11438: 3f 93 push r19
1143a: 2f 93 push r18
1143c: df 93 push r29
1143e: cf 93 push r28
11440: ff 92 push r15
11442: ef 92 push r14
11444: 1f 93 push r17
11446: 0f 93 push r16
11448: e0 91 78 06 lds r30, 0x0678
1144c: f0 91 79 06 lds r31, 0x0679
11450: 09 95 icall
11452: 22 96 adiw r28, 0x02 ; 2
11454: ed b7 in r30, 0x3d ; 61
11456: fe b7 in r31, 0x3e ; 62
11458: 3c 96 adiw r30, 0x0c ; 12
1145a: 0f b6 in r0, 0x3f ; 63
1145c: f8 94 cli
1145e: fe bf out 0x3e, r31 ; 62
11460: 0f be out 0x3f, r0 ; 63
11462: ed bf out 0x3d, r30 ; 61
11464: c9 30 cpi r28, 0x09 ; 9
11466: d1 05 cpc r29, r1
11468: 49 f6 brne .-110 ; 0x113fc <Menu+0x5ae>
1146a: e3 c6 rjmp .+3526 ; 0x12232 <Menu+0x13e4>
break;
case 4:
LCD_printfxy(0,0,"Ni:%4i Ro:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_NICK]],PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]);
1146c: 10 92 a4 04 sts 0x04A4, r1
11470: e0 91 40 05 lds r30, 0x0540
11474: f0 e0 ldi r31, 0x00 ; 0
11476: ee 0f add r30, r30
11478: ff 1f adc r31, r31
1147a: ef 5c subi r30, 0xCF ; 207
1147c: f7 4f sbci r31, 0xF7 ; 247
1147e: 20 81 ld r18, Z
11480: 31 81 ldd r19, Z+1 ; 0x01
11482: e0 91 3f 05 lds r30, 0x053F
11486: f0 e0 ldi r31, 0x00 ; 0
11488: ee 0f add r30, r30
1148a: ff 1f adc r31, r31
1148c: ef 5c subi r30, 0xCF ; 207
1148e: f7 4f sbci r31, 0xF7 ; 247
11490: 80 81 ld r24, Z
11492: 91 81 ldd r25, Z+1 ; 0x01
11494: 3f 93 push r19
11496: 2f 93 push r18
11498: 9f 93 push r25
1149a: 8f 93 push r24
1149c: 80 e2 ldi r24, 0x20 ; 32
1149e: 94 e1 ldi r25, 0x14 ; 20
114a0: 9f 93 push r25
114a2: 8f 93 push r24
114a4: c0 e1 ldi r28, 0x10 ; 16
114a6: d7 e8 ldi r29, 0x87 ; 135
114a8: df 93 push r29
114aa: cf 93 push r28
114ac: e0 91 78 06 lds r30, 0x0678
114b0: f0 91 79 06 lds r31, 0x0679
114b4: 09 95 icall
LCD_printfxy(0,1,"Gs:%4i Gi:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_GAS]]+127,PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]);
114b6: 84 e1 ldi r24, 0x14 ; 20
114b8: 80 93 a4 04 sts 0x04A4, r24
114bc: e0 91 42 05 lds r30, 0x0542
114c0: f0 e0 ldi r31, 0x00 ; 0
114c2: ee 0f add r30, r30
114c4: ff 1f adc r31, r31
114c6: ef 5c subi r30, 0xCF ; 207
114c8: f7 4f sbci r31, 0xF7 ; 247
114ca: 20 81 ld r18, Z
114cc: 31 81 ldd r19, Z+1 ; 0x01
114ce: e0 91 41 05 lds r30, 0x0541
114d2: f0 e0 ldi r31, 0x00 ; 0
114d4: ee 0f add r30, r30
114d6: ff 1f adc r31, r31
114d8: ef 5c subi r30, 0xCF ; 207
114da: f7 4f sbci r31, 0xF7 ; 247
114dc: 80 81 ld r24, Z
114de: 91 81 ldd r25, Z+1 ; 0x01
114e0: 3f 93 push r19
114e2: 2f 93 push r18
114e4: 81 58 subi r24, 0x81 ; 129
114e6: 9f 4f sbci r25, 0xFF ; 255
114e8: 9f 93 push r25
114ea: 8f 93 push r24
114ec: 80 e1 ldi r24, 0x10 ; 16
114ee: 94 e1 ldi r25, 0x14 ; 20
114f0: 9f 93 push r25
114f2: 8f 93 push r24
114f4: df 93 push r29
114f6: cf 93 push r28
114f8: e0 91 78 06 lds r30, 0x0678
114fc: f0 91 79 06 lds r31, 0x0679
11500: 09 95 icall
LCD_printfxy(0,2,"P1:%4i P2:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]]+127,PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]]+127);
11502: 88 e2 ldi r24, 0x28 ; 40
11504: 80 93 a4 04 sts 0x04A4, r24
11508: e0 91 44 05 lds r30, 0x0544
1150c: f0 e0 ldi r31, 0x00 ; 0
1150e: ee 0f add r30, r30
11510: ff 1f adc r31, r31
11512: ef 5c subi r30, 0xCF ; 207
11514: f7 4f sbci r31, 0xF7 ; 247
11516: 20 81 ld r18, Z
11518: 31 81 ldd r19, Z+1 ; 0x01
1151a: e0 91 43 05 lds r30, 0x0543
1151e: f0 e0 ldi r31, 0x00 ; 0
11520: ee 0f add r30, r30
11522: ff 1f adc r31, r31
11524: ef 5c subi r30, 0xCF ; 207
11526: f7 4f sbci r31, 0xF7 ; 247
11528: 80 81 ld r24, Z
1152a: 91 81 ldd r25, Z+1 ; 0x01
1152c: 21 58 subi r18, 0x81 ; 129
1152e: 3f 4f sbci r19, 0xFF ; 255
11530: 3f 93 push r19
11532: 2f 93 push r18
11534: 81 58 subi r24, 0x81 ; 129
11536: 9f 4f sbci r25, 0xFF ; 255
11538: 9f 93 push r25
1153a: 8f 93 push r24
1153c: 80 e0 ldi r24, 0x00 ; 0
1153e: 94 e1 ldi r25, 0x14 ; 20
11540: 9f 93 push r25
11542: 8f 93 push r24
11544: df 93 push r29
11546: cf 93 push r28
11548: e0 91 78 06 lds r30, 0x0678
1154c: f0 91 79 06 lds r31, 0x0679
11550: 09 95 icall
LCD_printfxy(0,3,"P3:%4i P4:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]]+127,PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]]+127);
11552: 8c e3 ldi r24, 0x3C ; 60
11554: 80 93 a4 04 sts 0x04A4, r24
11558: e0 91 46 05 lds r30, 0x0546
1155c: f0 e0 ldi r31, 0x00 ; 0
1155e: ee 0f add r30, r30
11560: ff 1f adc r31, r31
11562: ef 5c subi r30, 0xCF ; 207
11564: f7 4f sbci r31, 0xF7 ; 247
11566: 20 81 ld r18, Z
11568: 31 81 ldd r19, Z+1 ; 0x01
1156a: e0 91 45 05 lds r30, 0x0545
1156e: f0 e0 ldi r31, 0x00 ; 0
11570: ee 0f add r30, r30
11572: ff 1f adc r31, r31
11574: ef 5c subi r30, 0xCF ; 207
11576: f7 4f sbci r31, 0xF7 ; 247
11578: 80 81 ld r24, Z
1157a: 91 81 ldd r25, Z+1 ; 0x01
1157c: 21 58 subi r18, 0x81 ; 129
1157e: 3f 4f sbci r19, 0xFF ; 255
11580: 3f 93 push r19
11582: 2f 93 push r18
11584: 81 58 subi r24, 0x81 ; 129
11586: 9f 4f sbci r25, 0xFF ; 255
11588: 9f 93 push r25
1158a: 8f 93 push r24
1158c: 80 ef ldi r24, 0xF0 ; 240
1158e: 93 e1 ldi r25, 0x13 ; 19
11590: 9f 93 push r25
11592: 8f 93 push r24
11594: df 93 push r29
11596: cf 93 push r28
11598: e0 91 78 06 lds r30, 0x0678
1159c: f0 91 79 06 lds r31, 0x0679
115a0: 09 95 icall
break;
115a2: 8d b7 in r24, 0x3d ; 61
115a4: 9e b7 in r25, 0x3e ; 62
115a6: 80 96 adiw r24, 0x20 ; 32
115a8: 0f b6 in r0, 0x3f ; 63
115aa: f8 94 cli
115ac: 9e bf out 0x3e, r25 ; 62
115ae: 0f be out 0x3f, r0 ; 63
115b0: 8d bf out 0x3d, r24 ; 61
115b2: 3f c6 rjmp .+3198 ; 0x12232 <Menu+0x13e4>
case 5:
LCD_printfxy(0,0,"Gyro - Sensor");
115b4: 10 92 a4 04 sts 0x04A4, r1
115b8: 82 ee ldi r24, 0xE2 ; 226
115ba: 93 e1 ldi r25, 0x13 ; 19
115bc: 9f 93 push r25
115be: 8f 93 push r24
115c0: 80 e1 ldi r24, 0x10 ; 16
115c2: 97 e8 ldi r25, 0x87 ; 135
115c4: 9f 93 push r25
115c6: 8f 93 push r24
115c8: e0 91 78 06 lds r30, 0x0678
115cc: f0 91 79 06 lds r31, 0x0679
115d0: 09 95 icall
LCD_printfxy(0,1,"Nick %4i (%4i)",AdWertNick - AdNeutralNick/8, AdNeutralNick);
115d2: 84 e1 ldi r24, 0x14 ; 20
115d4: 80 93 a4 04 sts 0x04A4, r24
115d8: 40 91 65 03 lds r20, 0x0365
115dc: 50 91 66 03 lds r21, 0x0366
115e0: 30 91 57 04 lds r19, 0x0457
115e4: 20 91 58 04 lds r18, 0x0458
115e8: 2f 93 push r18
115ea: 3f 93 push r19
115ec: 83 2f mov r24, r19
115ee: 92 2f mov r25, r18
115f0: 99 23 and r25, r25
115f2: 0c f4 brge .+2 ; 0x115f6 <Menu+0x7a8>
115f4: 07 96 adiw r24, 0x07 ; 7
115f6: 9c 01 movw r18, r24
115f8: 35 95 asr r19
115fa: 27 95 ror r18
115fc: 35 95 asr r19
115fe: 27 95 ror r18
11600: 35 95 asr r19
11602: 27 95 ror r18
11604: ca 01 movw r24, r20
11606: 82 1b sub r24, r18
11608: 93 0b sbc r25, r19
1160a: 9f 93 push r25
1160c: 8f 93 push r24
1160e: 83 ed ldi r24, 0xD3 ; 211
11610: 93 e1 ldi r25, 0x13 ; 19
11612: 9f 93 push r25
11614: 8f 93 push r24
11616: 80 e1 ldi r24, 0x10 ; 16
11618: 97 e8 ldi r25, 0x87 ; 135
1161a: 9f 93 push r25
1161c: 8f 93 push r24
1161e: e0 91 78 06 lds r30, 0x0678
11622: f0 91 79 06 lds r31, 0x0679
11626: 09 95 icall
LCD_printfxy(0,2,"Roll %4i (%4i)",AdWertRoll - AdNeutralRoll/8, AdNeutralRoll);
11628: 88 e2 ldi r24, 0x28 ; 40
1162a: 80 93 a4 04 sts 0x04A4, r24
1162e: 40 91 63 03 lds r20, 0x0363
11632: 50 91 64 03 lds r21, 0x0364
11636: 30 91 55 04 lds r19, 0x0455
1163a: 20 91 56 04 lds r18, 0x0456
1163e: 2f 93 push r18
11640: 3f 93 push r19
11642: 83 2f mov r24, r19
11644: 92 2f mov r25, r18
11646: 99 23 and r25, r25
11648: 0c f4 brge .+2 ; 0x1164c <Menu+0x7fe>
1164a: 07 96 adiw r24, 0x07 ; 7
1164c: 9c 01 movw r18, r24
1164e: 35 95 asr r19
11650: 27 95 ror r18
11652: 35 95 asr r19
11654: 27 95 ror r18
11656: 35 95 asr r19
11658: 27 95 ror r18
1165a: ca 01 movw r24, r20
1165c: 82 1b sub r24, r18
1165e: 93 0b sbc r25, r19
11660: 9f 93 push r25
11662: 8f 93 push r24
11664: 84 ec ldi r24, 0xC4 ; 196
11666: 93 e1 ldi r25, 0x13 ; 19
11668: 9f 93 push r25
1166a: 8f 93 push r24
1166c: c0 e1 ldi r28, 0x10 ; 16
1166e: d7 e8 ldi r29, 0x87 ; 135
11670: df 93 push r29
11672: cf 93 push r28
11674: e0 91 78 06 lds r30, 0x0678
11678: f0 91 79 06 lds r31, 0x0679
1167c: 09 95 icall
LCD_printfxy(0,3,"Yaw %4i (%4i)",AdNeutralGier - AdWertGier, AdNeutralGier);
1167e: 8c e3 ldi r24, 0x3C ; 60
11680: 80 93 a4 04 sts 0x04A4, r24
11684: 80 91 53 04 lds r24, 0x0453
11688: 90 91 54 04 lds r25, 0x0454
1168c: 20 91 61 03 lds r18, 0x0361
11690: 30 91 62 03 lds r19, 0x0362
11694: 9f 93 push r25
11696: 8f 93 push r24
11698: 82 1b sub r24, r18
1169a: 93 0b sbc r25, r19
1169c: 9f 93 push r25
1169e: 8f 93 push r24
116a0: 85 eb ldi r24, 0xB5 ; 181
116a2: 93 e1 ldi r25, 0x13 ; 19
116a4: 9f 93 push r25
116a6: 8f 93 push r24
116a8: df 93 push r29
116aa: cf 93 push r28
116ac: e0 91 78 06 lds r30, 0x0678
116b0: f0 91 79 06 lds r31, 0x0679
116b4: 09 95 icall
LCD_printfxy(0,1,"Nick %4i (%3i)(%3i)",AdWertNick - AdNeutralNick/8, AdNeutralNick/16,AnalogOffsetNick);
LCD_printfxy(0,2,"Roll %4i (%3i)(%3i)",AdWertRoll - AdNeutralRoll/8, AdNeutralRoll/16,AnalogOffsetRoll);
LCD_printfxy(0,3,"Yaw %4i (%3i)(%3i)",AdNeutralGier - AdWertGier, AdNeutralGier/2,AnalogOffsetGier);
}
*/
break;
116b6: 8d b7 in r24, 0x3d ; 61
116b8: 9e b7 in r25, 0x3e ; 62
116ba: 4c 96 adiw r24, 0x1c ; 28
116bc: 0f b6 in r0, 0x3f ; 63
116be: f8 94 cli
116c0: 9e bf out 0x3e, r25 ; 62
116c2: 0f be out 0x3f, r0 ; 63
116c4: 8d bf out 0x3d, r24 ; 61
116c6: b5 c5 rjmp .+2922 ; 0x12232 <Menu+0x13e4>
case 6:
LCD_printfxy(0,0,"ACC - Sensor");
116c8: 10 92 a4 04 sts 0x04A4, r1
116cc: 88 ea ldi r24, 0xA8 ; 168
116ce: 93 e1 ldi r25, 0x13 ; 19
116d0: 9f 93 push r25
116d2: 8f 93 push r24
116d4: c0 e1 ldi r28, 0x10 ; 16
116d6: d7 e8 ldi r29, 0x87 ; 135
116d8: df 93 push r29
116da: cf 93 push r28
116dc: e0 91 78 06 lds r30, 0x0678
116e0: f0 91 79 06 lds r31, 0x0679
116e4: 09 95 icall
LCD_printfxy(0,1,"Nick %4i (%3i)",AdWertAccNick,NeutralAccX);
116e6: 84 e1 ldi r24, 0x14 ; 20
116e8: 80 93 a4 04 sts 0x04A4, r24
116ec: 80 91 5d 03 lds r24, 0x035D
116f0: 90 91 5e 03 lds r25, 0x035E
116f4: 20 91 4e 04 lds r18, 0x044E
116f8: 2f 93 push r18
116fa: 20 91 4d 04 lds r18, 0x044D
116fe: 2f 93 push r18
11700: 9f 93 push r25
11702: 8f 93 push r24
11704: 89 e9 ldi r24, 0x99 ; 153
11706: 93 e1 ldi r25, 0x13 ; 19
11708: 9f 93 push r25
1170a: 8f 93 push r24
1170c: df 93 push r29
1170e: cf 93 push r28
11710: e0 91 78 06 lds r30, 0x0678
11714: f0 91 79 06 lds r31, 0x0679
11718: 09 95 icall
LCD_printfxy(0,2,"Roll %4i (%3i)",AdWertAccRoll,NeutralAccY);
1171a: 88 e2 ldi r24, 0x28 ; 40
1171c: 80 93 a4 04 sts 0x04A4, r24
11720: 80 91 5f 03 lds r24, 0x035F
11724: 90 91 60 03 lds r25, 0x0360
11728: 20 91 4c 04 lds r18, 0x044C
1172c: 2f 93 push r18
1172e: 20 91 4b 04 lds r18, 0x044B
11732: 2f 93 push r18
11734: 9f 93 push r25
11736: 8f 93 push r24
11738: 8a e8 ldi r24, 0x8A ; 138
1173a: 93 e1 ldi r25, 0x13 ; 19
1173c: 9f 93 push r25
1173e: 8f 93 push r24
11740: df 93 push r29
11742: cf 93 push r28
11744: e0 91 78 06 lds r30, 0x0678
11748: f0 91 79 06 lds r31, 0x0679
1174c: 09 95 icall
LCD_printfxy(0,3,"Z %4i (%3i)",AdWertAccHoch,(int)NeutralAccZ);
1174e: 8c e3 ldi r24, 0x3C ; 60
11750: 80 93 a4 04 sts 0x04A4, r24
11754: 80 91 5b 03 lds r24, 0x035B
11758: 90 91 5c 03 lds r25, 0x035C
1175c: 20 91 48 04 lds r18, 0x0448
11760: 2f 93 push r18
11762: 20 91 47 04 lds r18, 0x0447
11766: 2f 93 push r18
11768: 9f 93 push r25
1176a: 8f 93 push r24
1176c: 8b e7 ldi r24, 0x7B ; 123
1176e: 93 e1 ldi r25, 0x13 ; 19
11770: 9f 93 push r25
11772: 8f 93 push r24
11774: df 93 push r29
11776: cf 93 push r28
11778: e0 91 78 06 lds r30, 0x0678
1177c: f0 91 79 06 lds r31, 0x0679
11780: 09 95 icall
break;
11782: 2d b7 in r18, 0x3d ; 61
11784: 3e b7 in r19, 0x3e ; 62
11786: 24 5e subi r18, 0xE4 ; 228
11788: 3f 4f sbci r19, 0xFF ; 255
1178a: 0f b6 in r0, 0x3f ; 63
1178c: f8 94 cli
1178e: 3e bf out 0x3e, r19 ; 62
11790: 0f be out 0x3f, r0 ; 63
11792: 2d bf out 0x3d, r18 ; 61
11794: 4e c5 rjmp .+2716 ; 0x12232 <Menu+0x13e4>
case 7:
LCD_printfxy(0,0,"Voltage: %3i.%1iV",UBat/10, UBat%10);
11796: 10 92 a4 04 sts 0x04A4, r1
1179a: 80 91 1a 01 lds r24, 0x011A
1179e: 90 91 1b 01 lds r25, 0x011B
117a2: e0 91 1a 01 lds r30, 0x011A
117a6: f0 91 1b 01 lds r31, 0x011B
117aa: 2a e0 ldi r18, 0x0A ; 10
117ac: 30 e0 ldi r19, 0x00 ; 0
117ae: b9 01 movw r22, r18
117b0: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
117b4: 9f 93 push r25
117b6: 8f 93 push r24
117b8: cf 01 movw r24, r30
117ba: b9 01 movw r22, r18
117bc: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
117c0: 7f 93 push r23
117c2: 6f 93 push r22
117c4: 87 e6 ldi r24, 0x67 ; 103
117c6: 93 e1 ldi r25, 0x13 ; 19
117c8: 9f 93 push r25
117ca: 8f 93 push r24
117cc: c0 e1 ldi r28, 0x10 ; 16
117ce: d7 e8 ldi r29, 0x87 ; 135
117d0: df 93 push r29
117d2: cf 93 push r28
117d4: e0 91 78 06 lds r30, 0x0678
117d8: f0 91 79 06 lds r31, 0x0679
117dc: 09 95 icall
LCD_printfxy(0,1,"Current: %3i.%1iA",Capacity.ActualCurrent/10, Capacity.ActualCurrent%10);
117de: 84 e1 ldi r24, 0x14 ; 20
117e0: 80 93 a4 04 sts 0x04A4, r24
117e4: 40 91 15 05 lds r20, 0x0515
117e8: 50 91 16 05 lds r21, 0x0516
117ec: 9a 01 movw r18, r20
117ee: ad ec ldi r26, 0xCD ; 205
117f0: bc ec ldi r27, 0xCC ; 204
117f2: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
117f6: 96 95 lsr r25
117f8: 87 95 ror r24
117fa: 96 95 lsr r25
117fc: 87 95 ror r24
117fe: 96 95 lsr r25
11800: 87 95 ror r24
11802: 9c 01 movw r18, r24
11804: 22 0f add r18, r18
11806: 33 1f adc r19, r19
11808: 88 0f add r24, r24
1180a: 99 1f adc r25, r25
1180c: 88 0f add r24, r24
1180e: 99 1f adc r25, r25
11810: 88 0f add r24, r24
11812: 99 1f adc r25, r25
11814: 82 0f add r24, r18
11816: 93 1f adc r25, r19
11818: fa 01 movw r30, r20
1181a: e8 1b sub r30, r24
1181c: f9 0b sbc r31, r25
1181e: cf 01 movw r24, r30
11820: 9f 93 push r25
11822: ef 93 push r30
11824: 9a 01 movw r18, r20
11826: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
1182a: 96 95 lsr r25
1182c: 87 95 ror r24
1182e: 96 95 lsr r25
11830: 87 95 ror r24
11832: 96 95 lsr r25
11834: 87 95 ror r24
11836: 9f 93 push r25
11838: 8f 93 push r24
1183a: 83 e5 ldi r24, 0x53 ; 83
1183c: 93 e1 ldi r25, 0x13 ; 19
1183e: 9f 93 push r25
11840: 8f 93 push r24
11842: df 93 push r29
11844: cf 93 push r28
11846: e0 91 78 06 lds r30, 0x0678
1184a: f0 91 79 06 lds r31, 0x0679
1184e: 09 95 icall
LCD_printfxy(0,2,"Power: %4iW",Capacity.ActualPower);
11850: 88 e2 ldi r24, 0x28 ; 40
11852: 80 93 a4 04 sts 0x04A4, r24
11856: e7 e1 ldi r30, 0x17 ; 23
11858: f5 e0 ldi r31, 0x05 ; 5
1185a: 81 81 ldd r24, Z+1 ; 0x01
1185c: 8f 93 push r24
1185e: 80 81 ld r24, Z
11860: 8f 93 push r24
11862: 83 e4 ldi r24, 0x43 ; 67
11864: 93 e1 ldi r25, 0x13 ; 19
11866: 9f 93 push r25
11868: 8f 93 push r24
1186a: df 93 push r29
1186c: cf 93 push r28
1186e: e0 91 78 06 lds r30, 0x0678
11872: f0 91 79 06 lds r31, 0x0679
11876: 09 95 icall
LCD_printfxy(0,3,"Discharge: %5imAh", Capacity.UsedCapacity);
11878: 8c e3 ldi r24, 0x3C ; 60
1187a: 80 93 a4 04 sts 0x04A4, r24
1187e: e9 e1 ldi r30, 0x19 ; 25
11880: f5 e0 ldi r31, 0x05 ; 5
11882: 81 81 ldd r24, Z+1 ; 0x01
11884: 8f 93 push r24
11886: 80 81 ld r24, Z
11888: 8f 93 push r24
1188a: 81 e3 ldi r24, 0x31 ; 49
1188c: 93 e1 ldi r25, 0x13 ; 19
1188e: 9f 93 push r25
11890: 8f 93 push r24
11892: df 93 push r29
11894: cf 93 push r28
11896: e0 91 78 06 lds r30, 0x0678
1189a: f0 91 79 06 lds r31, 0x0679
1189e: 09 95 icall
break;
118a0: 2d b7 in r18, 0x3d ; 61
118a2: 3e b7 in r19, 0x3e ; 62
118a4: 24 5e subi r18, 0xE4 ; 228
118a6: 3f 4f sbci r19, 0xFF ; 255
118a8: 0f b6 in r0, 0x3f ; 63
118aa: f8 94 cli
118ac: 3e bf out 0x3e, r19 ; 62
118ae: 0f be out 0x3f, r0 ; 63
118b0: 2d bf out 0x3d, r18 ; 61
118b2: bf c4 rjmp .+2430 ; 0x12232 <Menu+0x13e4>
case 8:
LCD_printfxy(0,0,"Receiver");
118b4: 10 92 a4 04 sts 0x04A4, r1
118b8: 88 e2 ldi r24, 0x28 ; 40
118ba: 93 e1 ldi r25, 0x13 ; 19
118bc: 9f 93 push r25
118be: 8f 93 push r24
118c0: c0 e1 ldi r28, 0x10 ; 16
118c2: d7 e8 ldi r29, 0x87 ; 135
118c4: df 93 push r29
118c6: cf 93 push r28
118c8: e0 91 78 06 lds r30, 0x0678
118cc: f0 91 79 06 lds r31, 0x0679
118d0: 09 95 icall
LCD_printfxy(0,2,"RC-Quality: %4i", SenderOkay);
118d2: 88 e2 ldi r24, 0x28 ; 40
118d4: 80 93 a4 04 sts 0x04A4, r24
118d8: 80 91 04 04 lds r24, 0x0404
118dc: 1f 92 push r1
118de: 8f 93 push r24
118e0: 88 e1 ldi r24, 0x18 ; 24
118e2: 93 e1 ldi r25, 0x13 ; 19
118e4: 9f 93 push r25
118e6: 8f 93 push r24
118e8: df 93 push r29
118ea: cf 93 push r28
118ec: e0 91 78 06 lds r30, 0x0678
118f0: f0 91 79 06 lds r31, 0x0679
118f4: 09 95 icall
LCD_printfxy(0,3,"RC-Channels:%4i", Channels-1);
118f6: 8c e3 ldi r24, 0x3C ; 60
118f8: 80 93 a4 04 sts 0x04A4, r24
118fc: 80 91 30 08 lds r24, 0x0830
11900: 90 e0 ldi r25, 0x00 ; 0
11902: 01 97 sbiw r24, 0x01 ; 1
11904: 9f 93 push r25
11906: 8f 93 push r24
11908: 88 e0 ldi r24, 0x08 ; 8
1190a: 93 e1 ldi r25, 0x13 ; 19
1190c: 9f 93 push r25
1190e: 8f 93 push r24
11910: df 93 push r29
11912: cf 93 push r28
11914: e0 91 78 06 lds r30, 0x0678
11918: f0 91 79 06 lds r31, 0x0679
1191c: 09 95 icall
break;
1191e: 8d b7 in r24, 0x3d ; 61
11920: 9e b7 in r25, 0x3e ; 62
11922: 40 96 adiw r24, 0x10 ; 16
11924: 0f b6 in r0, 0x3f ; 63
11926: f8 94 cli
11928: 9e bf out 0x3e, r25 ; 62
1192a: 0f be out 0x3f, r0 ; 63
1192c: 8d bf out 0x3d, r24 ; 61
1192e: 81 c4 rjmp .+2306 ; 0x12232 <Menu+0x13e4>
case 9:
LCD_printfxy(0,0,"Undervoltages " );
11930: 10 92 a4 04 sts 0x04A4, r1
11934: 88 ef ldi r24, 0xF8 ; 248
11936: 92 e1 ldi r25, 0x12 ; 18
11938: 9f 93 push r25
1193a: 8f 93 push r24
1193c: c0 e1 ldi r28, 0x10 ; 16
1193e: d7 e8 ldi r29, 0x87 ; 135
11940: df 93 push r29
11942: cf 93 push r28
11944: e0 91 78 06 lds r30, 0x0678
11948: f0 91 79 06 lds r31, 0x0679
1194c: 09 95 icall
LCD_printfxy(0,1,"Warn: %2d.%dV",BattLowVoltageWarning/10,BattLowVoltageWarning%10);
1194e: 84 e1 ldi r24, 0x14 ; 20
11950: 80 93 a4 04 sts 0x04A4, r24
11954: 90 91 53 01 lds r25, 0x0153
11958: 1d ec ldi r17, 0xCD ; 205
1195a: 91 9f mul r25, r17
1195c: 81 2d mov r24, r1
1195e: 11 24 eor r1, r1
11960: 86 95 lsr r24
11962: 86 95 lsr r24
11964: 86 95 lsr r24
11966: 28 2f mov r18, r24
11968: 22 0f add r18, r18
1196a: 32 2f mov r19, r18
1196c: 33 0f add r19, r19
1196e: 33 0f add r19, r19
11970: 23 0f add r18, r19
11972: 92 1b sub r25, r18
11974: 1f 92 push r1
11976: 9f 93 push r25
11978: 1f 92 push r1
1197a: 8f 93 push r24
1197c: 8a ee ldi r24, 0xEA ; 234
1197e: 92 e1 ldi r25, 0x12 ; 18
11980: 9f 93 push r25
11982: 8f 93 push r24
11984: df 93 push r29
11986: cf 93 push r28
11988: e0 91 78 06 lds r30, 0x0678
1198c: f0 91 79 06 lds r31, 0x0679
11990: 09 95 icall
LCD_printfxy(0,2,"Home: %2d.%dV",BattComingHomeVoltage/10,BattComingHomeVoltage%10);
11992: 88 e2 ldi r24, 0x28 ; 40
11994: 80 93 a4 04 sts 0x04A4, r24
11998: 90 91 64 04 lds r25, 0x0464
1199c: 91 9f mul r25, r17
1199e: 81 2d mov r24, r1
119a0: 11 24 eor r1, r1
119a2: 86 95 lsr r24
119a4: 86 95 lsr r24
119a6: 86 95 lsr r24
119a8: 28 2f mov r18, r24
119aa: 22 0f add r18, r18
119ac: 32 2f mov r19, r18
119ae: 33 0f add r19, r19
119b0: 33 0f add r19, r19
119b2: 23 0f add r18, r19
119b4: 92 1b sub r25, r18
119b6: 1f 92 push r1
119b8: 9f 93 push r25
119ba: 1f 92 push r1
119bc: 8f 93 push r24
119be: 8c ed ldi r24, 0xDC ; 220
119c0: 92 e1 ldi r25, 0x12 ; 18
119c2: 9f 93 push r25
119c4: 8f 93 push r24
119c6: df 93 push r29
119c8: cf 93 push r28
119ca: e0 91 78 06 lds r30, 0x0678
119ce: f0 91 79 06 lds r31, 0x0679
119d2: 09 95 icall
LCD_printfxy(0,3,"Land: %2d.%dV",BattAutoLandingVoltage/10,BattAutoLandingVoltage%10);
119d4: 8c e3 ldi r24, 0x3C ; 60
119d6: 80 93 a4 04 sts 0x04A4, r24
119da: 80 91 65 04 lds r24, 0x0465
119de: 81 9f mul r24, r17
119e0: 11 2d mov r17, r1
119e2: 11 24 eor r1, r1
119e4: 16 95 lsr r17
119e6: 16 95 lsr r17
119e8: 16 95 lsr r17
119ea: 91 2f mov r25, r17
119ec: 99 0f add r25, r25
119ee: 29 2f mov r18, r25
119f0: 22 0f add r18, r18
119f2: 22 0f add r18, r18
119f4: 92 0f add r25, r18
119f6: 89 1b sub r24, r25
119f8: 1f 92 push r1
119fa: 8f 93 push r24
119fc: 1f 92 push r1
119fe: 1f 93 push r17
11a00: 8e ec ldi r24, 0xCE ; 206
11a02: 92 e1 ldi r25, 0x12 ; 18
11a04: 9f 93 push r25
11a06: 8f 93 push r24
11a08: df 93 push r29
11a0a: cf 93 push r28
11a0c: e0 91 78 06 lds r30, 0x0678
11a10: f0 91 79 06 lds r31, 0x0679
11a14: 09 95 icall
break;
11a16: 2d b7 in r18, 0x3d ; 61
11a18: 3e b7 in r19, 0x3e ; 62
11a1a: 24 5e subi r18, 0xE4 ; 228
11a1c: 3f 4f sbci r19, 0xFF ; 255
11a1e: 0f b6 in r0, 0x3f ; 63
11a20: f8 94 cli
11a22: 3e bf out 0x3e, r19 ; 62
11a24: 0f be out 0x3f, r0 ; 63
11a26: 2d bf out 0x3d, r18 ; 61
11a28: 04 c4 rjmp .+2056 ; 0x12232 <Menu+0x13e4>
11a2a: c5 e0 ldi r28, 0x05 ; 5
11a2c: d4 e0 ldi r29, 0x04 ; 4
if((RemoteKeys & KEY1) && (RemoteKeys & KEY2)) MenuePunkt = 0;
LcdClear();
if(MenuePunkt < 10) {LCD_printfxy(17,0,"[%i]",MenuePunkt);}
else {LCD_printfxy(16,0,"[%i]",MenuePunkt);};
 
switch(MenuePunkt)
11a2e: 10 e0 ldi r17, 0x00 ; 0
LCD_printfxy(0,1,"Warn: %2d.%dV",BattLowVoltageWarning/10,BattLowVoltageWarning%10);
LCD_printfxy(0,2,"Home: %2d.%dV",BattComingHomeVoltage/10,BattComingHomeVoltage%10);
LCD_printfxy(0,3,"Land: %2d.%dV",BattAutoLandingVoltage/10,BattAutoLandingVoltage%10);
break;
case 10:
for(i=0;i<4;i++) LCD_printfxy(0,i,"Poti%i: %3i",i+1,Poti[i]);
11a30: 0f 2e mov r0, r31
11a32: f1 ec ldi r31, 0xC1 ; 193
11a34: ef 2e mov r14, r31
11a36: f2 e1 ldi r31, 0x12 ; 18
11a38: ff 2e mov r15, r31
11a3a: f0 2d mov r31, r0
11a3c: 0f 2e mov r0, r31
11a3e: f0 e1 ldi r31, 0x10 ; 16
11a40: cf 2e mov r12, r31
11a42: f7 e8 ldi r31, 0x87 ; 135
11a44: df 2e mov r13, r31
11a46: f0 2d mov r31, r0
11a48: 10 93 a4 04 sts 0x04A4, r17
11a4c: 89 91 ld r24, Y+
11a4e: 1f 92 push r1
11a50: 8f 93 push r24
11a52: ce 01 movw r24, r28
11a54: 85 50 subi r24, 0x05 ; 5
11a56: 94 40 sbci r25, 0x04 ; 4
11a58: 9f 93 push r25
11a5a: 8f 93 push r24
11a5c: ff 92 push r15
11a5e: ef 92 push r14
11a60: df 92 push r13
11a62: cf 92 push r12
11a64: e0 91 78 06 lds r30, 0x0678
11a68: f0 91 79 06 lds r31, 0x0679
11a6c: 09 95 icall
11a6e: 1c 5e subi r17, 0xEC ; 236
11a70: 8d b7 in r24, 0x3d ; 61
11a72: 9e b7 in r25, 0x3e ; 62
11a74: 08 96 adiw r24, 0x08 ; 8
11a76: 0f b6 in r0, 0x3f ; 63
11a78: f8 94 cli
11a7a: 9e bf out 0x3e, r25 ; 62
11a7c: 0f be out 0x3f, r0 ; 63
11a7e: 8d bf out 0x3d, r24 ; 61
11a80: 10 35 cpi r17, 0x50 ; 80
11a82: 11 f7 brne .-60 ; 0x11a48 <Menu+0xbfa>
11a84: d6 c3 rjmp .+1964 ; 0x12232 <Menu+0x13e4>
11a86: c9 e0 ldi r28, 0x09 ; 9
11a88: d4 e0 ldi r29, 0x04 ; 4
if((RemoteKeys & KEY1) && (RemoteKeys & KEY2)) MenuePunkt = 0;
LcdClear();
if(MenuePunkt < 10) {LCD_printfxy(17,0,"[%i]",MenuePunkt);}
else {LCD_printfxy(16,0,"[%i]",MenuePunkt);};
 
switch(MenuePunkt)
11a8a: 10 e0 ldi r17, 0x00 ; 0
break;
case 10:
for(i=0;i<4;i++) LCD_printfxy(0,i,"Poti%i: %3i",i+1,Poti[i]);
break;
case 11:
for(i=0;i<4;i++) LCD_printfxy(0,i,"Poti%i: %3i",i+5,Poti[i+4]);
11a8c: 0f 2e mov r0, r31
11a8e: f4 eb ldi r31, 0xB4 ; 180
11a90: ef 2e mov r14, r31
11a92: f2 e1 ldi r31, 0x12 ; 18
11a94: ff 2e mov r15, r31
11a96: f0 2d mov r31, r0
11a98: 0f 2e mov r0, r31
11a9a: f0 e1 ldi r31, 0x10 ; 16
11a9c: cf 2e mov r12, r31
11a9e: f7 e8 ldi r31, 0x87 ; 135
11aa0: df 2e mov r13, r31
11aa2: f0 2d mov r31, r0
11aa4: 10 93 a4 04 sts 0x04A4, r17
11aa8: 89 91 ld r24, Y+
11aaa: 1f 92 push r1
11aac: 8f 93 push r24
11aae: ce 01 movw r24, r28
11ab0: 85 50 subi r24, 0x05 ; 5
11ab2: 94 40 sbci r25, 0x04 ; 4
11ab4: 9f 93 push r25
11ab6: 8f 93 push r24
11ab8: ff 92 push r15
11aba: ef 92 push r14
11abc: df 92 push r13
11abe: cf 92 push r12
11ac0: e0 91 78 06 lds r30, 0x0678
11ac4: f0 91 79 06 lds r31, 0x0679
11ac8: 09 95 icall
11aca: 1c 5e subi r17, 0xEC ; 236
11acc: ed b7 in r30, 0x3d ; 61
11ace: fe b7 in r31, 0x3e ; 62
11ad0: 38 96 adiw r30, 0x08 ; 8
11ad2: 0f b6 in r0, 0x3f ; 63
11ad4: f8 94 cli
11ad6: fe bf out 0x3e, r31 ; 62
11ad8: 0f be out 0x3f, r0 ; 63
11ada: ed bf out 0x3d, r30 ; 61
11adc: 10 35 cpi r17, 0x50 ; 80
11ade: 11 f7 brne .-60 ; 0x11aa4 <Menu+0xc56>
11ae0: a8 c3 rjmp .+1872 ; 0x12232 <Menu+0x13e4>
break;
case 12:
LCD_printfxy(0,0,"Flight-Time " );
11ae2: 10 92 a4 04 sts 0x04A4, r1
11ae6: 86 ea ldi r24, 0xA6 ; 166
11ae8: 92 e1 ldi r25, 0x12 ; 18
11aea: 9f 93 push r25
11aec: 8f 93 push r24
11aee: c0 e1 ldi r28, 0x10 ; 16
11af0: d7 e8 ldi r29, 0x87 ; 135
11af2: df 93 push r29
11af4: cf 93 push r28
11af6: e0 91 78 06 lds r30, 0x0678
11afa: f0 91 79 06 lds r31, 0x0679
11afe: 09 95 icall
LCD_printfxy(0,1,"Total:%5umin",FlugMinutenGesamt);
11b00: 84 e1 ldi r24, 0x14 ; 20
11b02: 80 93 a4 04 sts 0x04A4, r24
11b06: 80 91 61 04 lds r24, 0x0461
11b0a: 8f 93 push r24
11b0c: 80 91 60 04 lds r24, 0x0460
11b10: 8f 93 push r24
11b12: 89 e9 ldi r24, 0x99 ; 153
11b14: 92 e1 ldi r25, 0x12 ; 18
11b16: 9f 93 push r25
11b18: 8f 93 push r24
11b1a: df 93 push r29
11b1c: cf 93 push r28
11b1e: e0 91 78 06 lds r30, 0x0678
11b22: f0 91 79 06 lds r31, 0x0679
11b26: 09 95 icall
LCD_printfxy(0,2,"Act: %5umin",FlugMinuten);
11b28: 88 e2 ldi r24, 0x28 ; 40
11b2a: 80 93 a4 04 sts 0x04A4, r24
11b2e: 80 91 63 04 lds r24, 0x0463
11b32: 8f 93 push r24
11b34: 80 91 62 04 lds r24, 0x0462
11b38: 8f 93 push r24
11b3a: 8c e8 ldi r24, 0x8C ; 140
11b3c: 92 e1 ldi r25, 0x12 ; 18
11b3e: 9f 93 push r25
11b40: 8f 93 push r24
11b42: df 93 push r29
11b44: cf 93 push r28
11b46: e0 91 78 06 lds r30, 0x0678
11b4a: f0 91 79 06 lds r31, 0x0679
11b4e: 09 95 icall
LCD_printfxy(13,3,"(reset)");
11b50: 89 e4 ldi r24, 0x49 ; 73
11b52: 80 93 a4 04 sts 0x04A4, r24
11b56: 84 e8 ldi r24, 0x84 ; 132
11b58: 92 e1 ldi r25, 0x12 ; 18
11b5a: 9f 93 push r25
11b5c: 8f 93 push r24
11b5e: df 93 push r29
11b60: cf 93 push r28
11b62: e0 91 78 06 lds r30, 0x0678
11b66: f0 91 79 06 lds r31, 0x0679
11b6a: 09 95 icall
if(RemoteKeys & KEY4)
11b6c: 80 91 a2 04 lds r24, 0x04A2
11b70: ed b7 in r30, 0x3d ; 61
11b72: fe b7 in r31, 0x3e ; 62
11b74: 74 96 adiw r30, 0x14 ; 20
11b76: 0f b6 in r0, 0x3f ; 63
11b78: f8 94 cli
11b7a: fe bf out 0x3e, r31 ; 62
11b7c: 0f be out 0x3f, r0 ; 63
11b7e: ed bf out 0x3d, r30 ; 61
11b80: 83 ff sbrs r24, 3
11b82: 57 c3 rjmp .+1710 ; 0x12232 <Menu+0x13e4>
{
FlugMinuten = 0;
11b84: 10 92 63 04 sts 0x0463, r1
11b88: 10 92 62 04 sts 0x0462, r1
SetParamWord(PID_FLIGHT_MINUTES, FlugMinuten);
11b8c: 60 e0 ldi r22, 0x00 ; 0
11b8e: 70 e0 ldi r23, 0x00 ; 0
11b90: 8e e0 ldi r24, 0x0E ; 14
11b92: 90 e0 ldi r25, 0x00 ; 0
11b94: 0e 94 4b 25 call 0x4a96 ; 0x4a96 <SetParamWord>
11b98: 4c c3 rjmp .+1688 ; 0x12232 <Menu+0x13e4>
}
break;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
case 13:
LCD_printfxy(0,0,"Compass");
11b9a: 10 92 a4 04 sts 0x04A4, r1
11b9e: 8c e7 ldi r24, 0x7C ; 124
11ba0: 92 e1 ldi r25, 0x12 ; 18
11ba2: 9f 93 push r25
11ba4: 8f 93 push r24
11ba6: c0 e1 ldi r28, 0x10 ; 16
11ba8: d7 e8 ldi r29, 0x87 ; 135
11baa: df 93 push r29
11bac: cf 93 push r28
11bae: e0 91 78 06 lds r30, 0x0678
11bb2: f0 91 79 06 lds r31, 0x0679
11bb6: 09 95 icall
LCD_printfxy(0,1,"Magnet: %5i",KompassValue);
11bb8: 84 e1 ldi r24, 0x14 ; 20
11bba: 80 93 a4 04 sts 0x04A4, r24
11bbe: 80 91 4f 01 lds r24, 0x014F
11bc2: 8f 93 push r24
11bc4: 80 91 4e 01 lds r24, 0x014E
11bc8: 8f 93 push r24
11bca: 8e e6 ldi r24, 0x6E ; 110
11bcc: 92 e1 ldi r25, 0x12 ; 18
11bce: 9f 93 push r25
11bd0: 8f 93 push r24
11bd2: df 93 push r29
11bd4: cf 93 push r28
11bd6: e0 91 78 06 lds r30, 0x0678
11bda: f0 91 79 06 lds r31, 0x0679
11bde: 09 95 icall
LCD_printfxy(0,2,"Gyro: %5i",ErsatzKompassInGrad);
11be0: 88 e2 ldi r24, 0x28 ; 40
11be2: 80 93 a4 04 sts 0x04A4, r24
11be6: 80 91 22 06 lds r24, 0x0622
11bea: 8f 93 push r24
11bec: 80 91 21 06 lds r24, 0x0621
11bf0: 8f 93 push r24
11bf2: 80 e6 ldi r24, 0x60 ; 96
11bf4: 92 e1 ldi r25, 0x12 ; 18
11bf6: 9f 93 push r25
11bf8: 8f 93 push r24
11bfa: df 93 push r29
11bfc: cf 93 push r28
11bfe: e0 91 78 06 lds r30, 0x0678
11c02: f0 91 79 06 lds r31, 0x0679
11c06: 09 95 icall
LCD_printfxy(0,3,"True: %5i",CompassCorrected);
11c08: 8c e3 ldi r24, 0x3C ; 60
11c0a: 80 93 a4 04 sts 0x04A4, r24
11c0e: 80 91 66 06 lds r24, 0x0666
11c12: 8f 93 push r24
11c14: 80 91 65 06 lds r24, 0x0665
11c18: 8f 93 push r24
11c1a: 82 e5 ldi r24, 0x52 ; 82
11c1c: 92 e1 ldi r25, 0x12 ; 18
11c1e: 9f 93 push r25
11c20: 8f 93 push r24
11c22: df 93 push r29
11c24: cf 93 push r28
11c26: e0 91 78 06 lds r30, 0x0678
11c2a: f0 91 79 06 lds r31, 0x0679
11c2e: 09 95 icall
break;
11c30: 8d b7 in r24, 0x3d ; 61
11c32: 9e b7 in r25, 0x3e ; 62
11c34: 46 96 adiw r24, 0x16 ; 22
11c36: 0f b6 in r0, 0x3f ; 63
11c38: f8 94 cli
11c3a: 9e bf out 0x3e, r25 ; 62
11c3c: 0f be out 0x3f, r0 ; 63
11c3e: 8d bf out 0x3d, r24 ; 61
11c40: f8 c2 rjmp .+1520 ; 0x12232 <Menu+0x13e4>
case 14:
LCD_printfxy(0,0,"Servo " );
11c42: 10 92 a4 04 sts 0x04A4, r1
11c46: 8a e4 ldi r24, 0x4A ; 74
11c48: 92 e1 ldi r25, 0x12 ; 18
11c4a: 9f 93 push r25
11c4c: 8f 93 push r24
11c4e: c0 e1 ldi r28, 0x10 ; 16
11c50: d7 e8 ldi r29, 0x87 ; 135
11c52: df 93 push r29
11c54: cf 93 push r28
11c56: e0 91 78 06 lds r30, 0x0678
11c5a: f0 91 79 06 lds r31, 0x0679
11c5e: 09 95 icall
LCD_printfxy(0,1,"Setpoint %3i",Parameter_ServoNickControl);
11c60: 84 e1 ldi r24, 0x14 ; 20
11c62: 80 93 a4 04 sts 0x04A4, r24
11c66: 80 91 2f 01 lds r24, 0x012F
11c6a: 1f 92 push r1
11c6c: 8f 93 push r24
11c6e: 8c e3 ldi r24, 0x3C ; 60
11c70: 92 e1 ldi r25, 0x12 ; 18
11c72: 9f 93 push r25
11c74: 8f 93 push r24
11c76: df 93 push r29
11c78: cf 93 push r28
11c7a: e0 91 78 06 lds r30, 0x0678
11c7e: f0 91 79 06 lds r31, 0x0679
11c82: 09 95 icall
LCD_printfxy(0,2,"Position: %3i",ServoNickValue/4);
11c84: 88 e2 ldi r24, 0x28 ; 40
11c86: 80 93 a4 04 sts 0x04A4, r24
11c8a: 80 91 c6 04 lds r24, 0x04C6
11c8e: 90 91 c7 04 lds r25, 0x04C7
11c92: 99 23 and r25, r25
11c94: 0c f4 brge .+2 ; 0x11c98 <Menu+0xe4a>
11c96: 03 96 adiw r24, 0x03 ; 3
11c98: 95 95 asr r25
11c9a: 87 95 ror r24
11c9c: 95 95 asr r25
11c9e: 87 95 ror r24
11ca0: 9f 93 push r25
11ca2: 8f 93 push r24
11ca4: 8e e2 ldi r24, 0x2E ; 46
11ca6: 92 e1 ldi r25, 0x12 ; 18
11ca8: 9f 93 push r25
11caa: 8f 93 push r24
11cac: c0 e1 ldi r28, 0x10 ; 16
11cae: d7 e8 ldi r29, 0x87 ; 135
11cb0: df 93 push r29
11cb2: cf 93 push r28
11cb4: e0 91 78 06 lds r30, 0x0678
11cb8: f0 91 79 06 lds r31, 0x0679
11cbc: 09 95 icall
LCD_printfxy(0,3,"Range:%3i-%3i",EE_Parameter.ServoNickMin,EE_Parameter.ServoNickMax);
11cbe: 8c e3 ldi r24, 0x3C ; 60
11cc0: 80 93 a4 04 sts 0x04A4, r24
11cc4: 80 91 6e 05 lds r24, 0x056E
11cc8: 1f 92 push r1
11cca: 8f 93 push r24
11ccc: 80 91 6d 05 lds r24, 0x056D
11cd0: 1f 92 push r1
11cd2: 8f 93 push r24
11cd4: 80 e2 ldi r24, 0x20 ; 32
11cd6: 92 e1 ldi r25, 0x12 ; 18
11cd8: 9f 93 push r25
11cda: 8f 93 push r24
11cdc: df 93 push r29
11cde: cf 93 push r28
11ce0: e0 91 78 06 lds r30, 0x0678
11ce4: f0 91 79 06 lds r31, 0x0679
11ce8: 09 95 icall
break;
11cea: 2d b7 in r18, 0x3d ; 61
11cec: 3e b7 in r19, 0x3e ; 62
11cee: 28 5e subi r18, 0xE8 ; 232
11cf0: 3f 4f sbci r19, 0xFF ; 255
11cf2: 0f b6 in r0, 0x3f ; 63
11cf4: f8 94 cli
11cf6: 3e bf out 0x3e, r19 ; 62
11cf8: 0f be out 0x3f, r0 ; 63
11cfa: 2d bf out 0x3d, r18 ; 61
11cfc: 9a c2 rjmp .+1332 ; 0x12232 <Menu+0x13e4>
case 15:
LCD_printfxy(0,0,"BL-Ctrl Errors " );
11cfe: 10 92 a4 04 sts 0x04A4, r1
11d02: 80 e1 ldi r24, 0x10 ; 16
11d04: 92 e1 ldi r25, 0x12 ; 18
11d06: 9f 93 push r25
11d08: 8f 93 push r24
11d0a: 80 e1 ldi r24, 0x10 ; 16
11d0c: 97 e8 ldi r25, 0x87 ; 135
11d0e: 9f 93 push r25
11d10: 8f 93 push r24
11d12: e0 91 78 06 lds r30, 0x0678
11d16: f0 91 79 06 lds r31, 0x0679
11d1a: 09 95 icall
11d1c: c7 ec ldi r28, 0xC7 ; 199
11d1e: d9 e0 ldi r29, 0x09 ; 9
11d20: 0f 90 pop r0
11d22: 0f 90 pop r0
11d24: 0f 90 pop r0
11d26: 0f 90 pop r0
11d28: 14 e1 ldi r17, 0x14 ; 20
for(i=0;i<3;i++)
{
LCD_printfxy(0,i+1,"%3d %3d %3d %3d ",Motor[i*4].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+1].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+2].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+3].State & MOTOR_STATE_ERROR_MASK);
11d2a: 0f 2e mov r0, r31
11d2c: ff ef ldi r31, 0xFF ; 255
11d2e: ef 2e mov r14, r31
11d30: f1 e1 ldi r31, 0x11 ; 17
11d32: ff 2e mov r15, r31
11d34: f0 2d mov r31, r0
11d36: 0f 2e mov r0, r31
11d38: f0 e1 ldi r31, 0x10 ; 16
11d3a: cf 2e mov r12, r31
11d3c: f7 e8 ldi r31, 0x87 ; 135
11d3e: df 2e mov r13, r31
11d40: f0 2d mov r31, r0
11d42: 10 93 a4 04 sts 0x04A4, r17
11d46: 88 81 ld r24, Y
11d48: 8f 77 andi r24, 0x7F ; 127
11d4a: 1f 92 push r1
11d4c: 8f 93 push r24
11d4e: fe 01 movw r30, r28
11d50: 3f 97 sbiw r30, 0x0f ; 15
11d52: 80 81 ld r24, Z
11d54: 8f 77 andi r24, 0x7F ; 127
11d56: 1f 92 push r1
11d58: 8f 93 push r24
11d5a: 3f 97 sbiw r30, 0x0f ; 15
11d5c: 80 81 ld r24, Z
11d5e: 8f 77 andi r24, 0x7F ; 127
11d60: 1f 92 push r1
11d62: 8f 93 push r24
11d64: 3f 97 sbiw r30, 0x0f ; 15
11d66: 80 81 ld r24, Z
11d68: 8f 77 andi r24, 0x7F ; 127
11d6a: 1f 92 push r1
11d6c: 8f 93 push r24
11d6e: ff 92 push r15
11d70: ef 92 push r14
11d72: df 92 push r13
11d74: cf 92 push r12
11d76: e0 91 78 06 lds r30, 0x0678
11d7a: f0 91 79 06 lds r31, 0x0679
11d7e: 09 95 icall
11d80: 1c 5e subi r17, 0xEC ; 236
11d82: ec 96 adiw r28, 0x3c ; 60
LCD_printfxy(0,2,"Position: %3i",ServoNickValue/4);
LCD_printfxy(0,3,"Range:%3i-%3i",EE_Parameter.ServoNickMin,EE_Parameter.ServoNickMax);
break;
case 15:
LCD_printfxy(0,0,"BL-Ctrl Errors " );
for(i=0;i<3;i++)
11d84: 8d b7 in r24, 0x3d ; 61
11d86: 9e b7 in r25, 0x3e ; 62
11d88: 0c 96 adiw r24, 0x0c ; 12
11d8a: 0f b6 in r0, 0x3f ; 63
11d8c: f8 94 cli
11d8e: 9e bf out 0x3e, r25 ; 62
11d90: 0f be out 0x3f, r0 ; 63
11d92: 8d bf out 0x3d, r24 ; 61
11d94: 10 35 cpi r17, 0x50 ; 80
11d96: a9 f6 brne .-86 ; 0x11d42 <Menu+0xef4>
11d98: 4c c2 rjmp .+1176 ; 0x12232 <Menu+0x13e4>
{
LCD_printfxy(0,i+1,"%3d %3d %3d %3d ",Motor[i*4].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+1].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+2].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+3].State & MOTOR_STATE_ERROR_MASK);
}
break;
case 16:
LCD_printfxy(0,0,"BL Temperature" );
11d9a: 10 92 a4 04 sts 0x04A4, r1
11d9e: 80 ef ldi r24, 0xF0 ; 240
11da0: 91 e1 ldi r25, 0x11 ; 17
11da2: 9f 93 push r25
11da4: 8f 93 push r24
11da6: 80 e1 ldi r24, 0x10 ; 16
11da8: 97 e8 ldi r25, 0x87 ; 135
11daa: 9f 93 push r25
11dac: 8f 93 push r24
11dae: e0 91 78 06 lds r30, 0x0678
11db2: f0 91 79 06 lds r31, 0x0679
11db6: 09 95 icall
11db8: cb ec ldi r28, 0xCB ; 203
11dba: d9 e0 ldi r29, 0x09 ; 9
11dbc: 0f 90 pop r0
11dbe: 0f 90 pop r0
11dc0: 0f 90 pop r0
11dc2: 0f 90 pop r0
11dc4: 14 e1 ldi r17, 0x14 ; 20
for(i=0;i<3;i++)
{
LCD_printfxy(0,i+1,"%3d %3d %3d %3d ",Motor[i*4].Temperature,Motor[i*4+1].Temperature,Motor[i*4+2].Temperature,Motor[i*4+3].Temperature);
11dc6: 0f 2e mov r0, r31
11dc8: ff ed ldi r31, 0xDF ; 223
11dca: ef 2e mov r14, r31
11dcc: f1 e1 ldi r31, 0x11 ; 17
11dce: ff 2e mov r15, r31
11dd0: f0 2d mov r31, r0
11dd2: 0f 2e mov r0, r31
11dd4: f0 e1 ldi r31, 0x10 ; 16
11dd6: cf 2e mov r12, r31
11dd8: f7 e8 ldi r31, 0x87 ; 135
11dda: df 2e mov r13, r31
11ddc: f0 2d mov r31, r0
11dde: 10 93 a4 04 sts 0x04A4, r17
11de2: 88 81 ld r24, Y
11de4: 1f 92 push r1
11de6: 8f 93 push r24
11de8: fe 01 movw r30, r28
11dea: 3f 97 sbiw r30, 0x0f ; 15
11dec: 80 81 ld r24, Z
11dee: 1f 92 push r1
11df0: 8f 93 push r24
11df2: 3f 97 sbiw r30, 0x0f ; 15
11df4: 80 81 ld r24, Z
11df6: 1f 92 push r1
11df8: 8f 93 push r24
11dfa: 3f 97 sbiw r30, 0x0f ; 15
11dfc: 80 81 ld r24, Z
11dfe: 1f 92 push r1
11e00: 8f 93 push r24
11e02: ff 92 push r15
11e04: ef 92 push r14
11e06: df 92 push r13
11e08: cf 92 push r12
11e0a: e0 91 78 06 lds r30, 0x0678
11e0e: f0 91 79 06 lds r31, 0x0679
11e12: 09 95 icall
11e14: 1c 5e subi r17, 0xEC ; 236
11e16: ec 96 adiw r28, 0x3c ; 60
LCD_printfxy(0,i+1,"%3d %3d %3d %3d ",Motor[i*4].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+1].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+2].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+3].State & MOTOR_STATE_ERROR_MASK);
}
break;
case 16:
LCD_printfxy(0,0,"BL Temperature" );
for(i=0;i<3;i++)
11e18: ed b7 in r30, 0x3d ; 61
11e1a: fe b7 in r31, 0x3e ; 62
11e1c: 3c 96 adiw r30, 0x0c ; 12
11e1e: 0f b6 in r0, 0x3f ; 63
11e20: f8 94 cli
11e22: fe bf out 0x3e, r31 ; 62
11e24: 0f be out 0x3f, r0 ; 63
11e26: ed bf out 0x3d, r30 ; 61
11e28: 10 35 cpi r17, 0x50 ; 80
11e2a: c9 f6 brne .-78 ; 0x11dde <Menu+0xf90>
11e2c: 02 c2 rjmp .+1028 ; 0x12232 <Menu+0x13e4>
{
LCD_printfxy(0,i+1,"%3d %3d %3d %3d ",Motor[i*4].Temperature,Motor[i*4+1].Temperature,Motor[i*4+2].Temperature,Motor[i*4+3].Temperature);
}
break;
case 17:
LCD_printfxy(0,0,"BL Current" );
11e2e: 10 92 a4 04 sts 0x04A4, r1
11e32: 84 ed ldi r24, 0xD4 ; 212
11e34: 91 e1 ldi r25, 0x11 ; 17
11e36: 9f 93 push r25
11e38: 8f 93 push r24
11e3a: c0 e1 ldi r28, 0x10 ; 16
11e3c: d7 e8 ldi r29, 0x87 ; 135
11e3e: df 93 push r29
11e40: cf 93 push r28
11e42: e0 91 78 06 lds r30, 0x0678
11e46: f0 91 79 06 lds r31, 0x0679
11e4a: 09 95 icall
LCD_printfxy(11,3,"(in 0.1A)" );
11e4c: 87 e4 ldi r24, 0x47 ; 71
11e4e: 80 93 a4 04 sts 0x04A4, r24
11e52: 8a ec ldi r24, 0xCA ; 202
11e54: 91 e1 ldi r25, 0x11 ; 17
11e56: 9f 93 push r25
11e58: 8f 93 push r24
11e5a: df 93 push r29
11e5c: cf 93 push r28
11e5e: e0 91 78 06 lds r30, 0x0678
11e62: f0 91 79 06 lds r31, 0x0679
11e66: 09 95 icall
11e68: ed b7 in r30, 0x3d ; 61
11e6a: fe b7 in r31, 0x3e ; 62
11e6c: 38 96 adiw r30, 0x08 ; 8
11e6e: 0f b6 in r0, 0x3f ; 63
11e70: f8 94 cli
11e72: fe bf out 0x3e, r31 ; 62
11e74: 0f be out 0x3f, r0 ; 63
11e76: ed bf out 0x3d, r30 ; 61
11e78: c4 e0 ldi r28, 0x04 ; 4
11e7a: d0 e0 ldi r29, 0x00 ; 0
11e7c: 14 e1 ldi r17, 0x14 ; 20
for(i=0;i<3;i++)
{
LCD_printfxy(0,i+1,"%3d %3d %3d %3d ",BL3_Current(i*4),BL3_Current(i*4+1),BL3_Current(i*4+2),BL3_Current(i*4+3));
11e7e: 0f 2e mov r0, r31
11e80: f9 eb ldi r31, 0xB9 ; 185
11e82: ef 2e mov r14, r31
11e84: f1 e1 ldi r31, 0x11 ; 17
11e86: ff 2e mov r15, r31
11e88: f0 2d mov r31, r0
11e8a: 0f 2e mov r0, r31
11e8c: f0 e1 ldi r31, 0x10 ; 16
11e8e: 2f 2e mov r2, r31
11e90: f7 e8 ldi r31, 0x87 ; 135
11e92: 3f 2e mov r3, r31
11e94: f0 2d mov r31, r0
11e96: 10 93 a4 04 sts 0x04A4, r17
11e9a: c0 90 78 06 lds r12, 0x0678
11e9e: d0 90 79 06 lds r13, 0x0679
11ea2: 8c 2f mov r24, r28
11ea4: 81 50 subi r24, 0x01 ; 1
11ea6: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
11eaa: 68 2e mov r6, r24
11eac: 59 2e mov r5, r25
11eae: 8c 2f mov r24, r28
11eb0: 82 50 subi r24, 0x02 ; 2
11eb2: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
11eb6: 88 2e mov r8, r24
11eb8: 79 2e mov r7, r25
11eba: 8c 2f mov r24, r28
11ebc: 83 50 subi r24, 0x03 ; 3
11ebe: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
11ec2: a8 2e mov r10, r24
11ec4: 99 2e mov r9, r25
11ec6: 8c 2f mov r24, r28
11ec8: 84 50 subi r24, 0x04 ; 4
11eca: 0e 94 ce 21 call 0x439c ; 0x439c <BL3_Current>
11ece: 5f 92 push r5
11ed0: 6f 92 push r6
11ed2: 7f 92 push r7
11ed4: 8f 92 push r8
11ed6: 9f 92 push r9
11ed8: af 92 push r10
11eda: 9f 93 push r25
11edc: 8f 93 push r24
11ede: ff 92 push r15
11ee0: ef 92 push r14
11ee2: 3f 92 push r3
11ee4: 2f 92 push r2
11ee6: f6 01 movw r30, r12
11ee8: 09 95 icall
if(4 + i * 4 >= RequiredMotors) break;
11eea: 80 91 3d 05 lds r24, 0x053D
11eee: 90 e0 ldi r25, 0x00 ; 0
11ef0: 2d b7 in r18, 0x3d ; 61
11ef2: 3e b7 in r19, 0x3e ; 62
11ef4: 24 5f subi r18, 0xF4 ; 244
11ef6: 3f 4f sbci r19, 0xFF ; 255
11ef8: 0f b6 in r0, 0x3f ; 63
11efa: f8 94 cli
11efc: 3e bf out 0x3e, r19 ; 62
11efe: 0f be out 0x3f, r0 ; 63
11f00: 2d bf out 0x3d, r18 ; 61
11f02: c8 17 cp r28, r24
11f04: d9 07 cpc r29, r25
11f06: 0c f0 brlt .+2 ; 0x11f0a <Menu+0x10bc>
11f08: 94 c1 rjmp .+808 ; 0x12232 <Menu+0x13e4>
11f0a: 1c 5e subi r17, 0xEC ; 236
11f0c: 24 96 adiw r28, 0x04 ; 4
}
break;
case 17:
LCD_printfxy(0,0,"BL Current" );
LCD_printfxy(11,3,"(in 0.1A)" );
for(i=0;i<3;i++)
11f0e: 10 35 cpi r17, 0x50 ; 80
11f10: 11 f6 brne .-124 ; 0x11e96 <Menu+0x1048>
11f12: 8f c1 rjmp .+798 ; 0x12232 <Menu+0x13e4>
LCD_printfxy(0,i+1,"%3d %3d %3d %3d ",BL3_Current(i*4),BL3_Current(i*4+1),BL3_Current(i*4+2),BL3_Current(i*4+3));
if(4 + i * 4 >= RequiredMotors) break;
}
break;
case 18:
LCD_printfxy(0,0,"BL-Ctrl found " );
11f14: 10 92 a4 04 sts 0x04A4, r1
11f18: 8a ea ldi r24, 0xAA ; 170
11f1a: 91 e1 ldi r25, 0x11 ; 17
11f1c: 9f 93 push r25
11f1e: 8f 93 push r24
11f20: c0 e1 ldi r28, 0x10 ; 16
11f22: d7 e8 ldi r29, 0x87 ; 135
11f24: df 93 push r29
11f26: cf 93 push r28
11f28: e0 91 78 06 lds r30, 0x0678
11f2c: f0 91 79 06 lds r31, 0x0679
11f30: 09 95 icall
LCD_printfxy(0,1," %c %c %c %c ",'-' + 4 * (Motor[0].State>>7),'-' + 5 * (Motor[1].State>>7),'-' + 6 * (Motor[2].State>>7),'-' + 7 * (Motor[3].State>>7));
11f32: 84 e1 ldi r24, 0x14 ; 20
11f34: 80 93 a4 04 sts 0x04A4, r24
11f38: 20 91 c7 09 lds r18, 0x09C7
11f3c: 22 1f adc r18, r18
11f3e: 22 27 eor r18, r18
11f40: 22 1f adc r18, r18
11f42: 30 e0 ldi r19, 0x00 ; 0
11f44: c9 01 movw r24, r18
11f46: 88 0f add r24, r24
11f48: 99 1f adc r25, r25
11f4a: 88 0f add r24, r24
11f4c: 99 1f adc r25, r25
11f4e: 88 0f add r24, r24
11f50: 99 1f adc r25, r25
11f52: 82 1b sub r24, r18
11f54: 93 0b sbc r25, r19
11f56: 8d 96 adiw r24, 0x2d ; 45
11f58: 9f 93 push r25
11f5a: 8f 93 push r24
11f5c: 80 91 b8 09 lds r24, 0x09B8
11f60: 88 1f adc r24, r24
11f62: 88 27 eor r24, r24
11f64: 88 1f adc r24, r24
11f66: 90 e0 ldi r25, 0x00 ; 0
11f68: 9c 01 movw r18, r24
11f6a: 22 0f add r18, r18
11f6c: 33 1f adc r19, r19
11f6e: 82 0f add r24, r18
11f70: 93 1f adc r25, r19
11f72: 88 0f add r24, r24
11f74: 99 1f adc r25, r25
11f76: 8d 96 adiw r24, 0x2d ; 45
11f78: 9f 93 push r25
11f7a: 8f 93 push r24
11f7c: 80 91 a9 09 lds r24, 0x09A9
11f80: 88 1f adc r24, r24
11f82: 88 27 eor r24, r24
11f84: 88 1f adc r24, r24
11f86: 90 e0 ldi r25, 0x00 ; 0
11f88: 9c 01 movw r18, r24
11f8a: 22 0f add r18, r18
11f8c: 33 1f adc r19, r19
11f8e: 22 0f add r18, r18
11f90: 33 1f adc r19, r19
11f92: 82 0f add r24, r18
11f94: 93 1f adc r25, r19
11f96: 8d 96 adiw r24, 0x2d ; 45
11f98: 9f 93 push r25
11f9a: 8f 93 push r24
11f9c: 80 91 9a 09 lds r24, 0x099A
11fa0: 88 1f adc r24, r24
11fa2: 88 27 eor r24, r24
11fa4: 88 1f adc r24, r24
11fa6: 90 e0 ldi r25, 0x00 ; 0
11fa8: 88 0f add r24, r24
11faa: 99 1f adc r25, r25
11fac: 88 0f add r24, r24
11fae: 99 1f adc r25, r25
11fb0: 8d 96 adiw r24, 0x2d ; 45
11fb2: 9f 93 push r25
11fb4: 8f 93 push r24
11fb6: 86 e9 ldi r24, 0x96 ; 150
11fb8: 91 e1 ldi r25, 0x11 ; 17
11fba: 9f 93 push r25
11fbc: 8f 93 push r24
11fbe: df 93 push r29
11fc0: cf 93 push r28
11fc2: e0 91 78 06 lds r30, 0x0678
11fc6: f0 91 79 06 lds r31, 0x0679
11fca: 09 95 icall
LCD_printfxy(0,2," %c %c %c %c ",'-' + 8 * (Motor[4].State>>7),'-' + 9 * (Motor[5].State>>7),'-' + 10 * (Motor[6].State>>7),'-' + 11 * (Motor[7].State>>7));
11fcc: 88 e2 ldi r24, 0x28 ; 40
11fce: 80 93 a4 04 sts 0x04A4, r24
11fd2: 80 91 03 0a lds r24, 0x0A03
11fd6: 88 1f adc r24, r24
11fd8: 88 27 eor r24, r24
11fda: 88 1f adc r24, r24
11fdc: fb e0 ldi r31, 0x0B ; 11
11fde: 8f 9f mul r24, r31
11fe0: c0 01 movw r24, r0
11fe2: 11 24 eor r1, r1
11fe4: 8d 96 adiw r24, 0x2d ; 45
11fe6: 9f 93 push r25
11fe8: 8f 93 push r24
11fea: 20 91 f4 09 lds r18, 0x09F4
11fee: 22 1f adc r18, r18
11ff0: 22 27 eor r18, r18
11ff2: 22 1f adc r18, r18
11ff4: 30 e0 ldi r19, 0x00 ; 0
11ff6: c9 01 movw r24, r18
11ff8: 88 0f add r24, r24
11ffa: 99 1f adc r25, r25
11ffc: 22 0f add r18, r18
11ffe: 33 1f adc r19, r19
12000: 22 0f add r18, r18
12002: 33 1f adc r19, r19
12004: 22 0f add r18, r18
12006: 33 1f adc r19, r19
12008: 82 0f add r24, r18
1200a: 93 1f adc r25, r19
1200c: 8d 96 adiw r24, 0x2d ; 45
1200e: 9f 93 push r25
12010: 8f 93 push r24
12012: 80 91 e5 09 lds r24, 0x09E5
12016: 88 1f adc r24, r24
12018: 88 27 eor r24, r24
1201a: 88 1f adc r24, r24
1201c: 90 e0 ldi r25, 0x00 ; 0
1201e: 9c 01 movw r18, r24
12020: 22 0f add r18, r18
12022: 33 1f adc r19, r19
12024: 22 0f add r18, r18
12026: 33 1f adc r19, r19
12028: 22 0f add r18, r18
1202a: 33 1f adc r19, r19
1202c: 82 0f add r24, r18
1202e: 93 1f adc r25, r19
12030: 8d 96 adiw r24, 0x2d ; 45
12032: 9f 93 push r25
12034: 8f 93 push r24
12036: 80 91 d6 09 lds r24, 0x09D6
1203a: 88 1f adc r24, r24
1203c: 88 27 eor r24, r24
1203e: 88 1f adc r24, r24
12040: 90 e0 ldi r25, 0x00 ; 0
12042: 88 0f add r24, r24
12044: 99 1f adc r25, r25
12046: 88 0f add r24, r24
12048: 99 1f adc r25, r25
1204a: 88 0f add r24, r24
1204c: 99 1f adc r25, r25
1204e: 8d 96 adiw r24, 0x2d ; 45
12050: 9f 93 push r25
12052: 8f 93 push r24
12054: 82 e8 ldi r24, 0x82 ; 130
12056: 91 e1 ldi r25, 0x11 ; 17
12058: 9f 93 push r25
1205a: 8f 93 push r24
1205c: df 93 push r29
1205e: cf 93 push r28
12060: e0 91 78 06 lds r30, 0x0678
12064: f0 91 79 06 lds r31, 0x0679
12068: 09 95 icall
LCD_printfxy(0,3," %c - - - ",'-' + 12 * (Motor[8].State>>7));
1206a: 8c e3 ldi r24, 0x3C ; 60
1206c: 80 93 a4 04 sts 0x04A4, r24
12070: 80 91 12 0a lds r24, 0x0A12
12074: 88 1f adc r24, r24
12076: 88 27 eor r24, r24
12078: 88 1f adc r24, r24
1207a: 90 e0 ldi r25, 0x00 ; 0
1207c: 9c 01 movw r18, r24
1207e: 22 0f add r18, r18
12080: 33 1f adc r19, r19
12082: 82 0f add r24, r18
12084: 93 1f adc r25, r19
12086: 88 0f add r24, r24
12088: 99 1f adc r25, r25
1208a: 88 0f add r24, r24
1208c: 99 1f adc r25, r25
1208e: 8d 96 adiw r24, 0x2d ; 45
12090: 9f 93 push r25
12092: 8f 93 push r24
12094: 81 e7 ldi r24, 0x71 ; 113
12096: 91 e1 ldi r25, 0x11 ; 17
12098: 9f 93 push r25
1209a: 8f 93 push r24
1209c: df 93 push r29
1209e: cf 93 push r28
120a0: e0 91 78 06 lds r30, 0x0678
120a4: f0 91 79 06 lds r31, 0x0679
120a8: 09 95 icall
if(Motor[9].State>>7) LCD_printfxy(4,3,"10");
120aa: ed b7 in r30, 0x3d ; 61
120ac: fe b7 in r31, 0x3e ; 62
120ae: b2 96 adiw r30, 0x22 ; 34
120b0: 0f b6 in r0, 0x3f ; 63
120b2: f8 94 cli
120b4: fe bf out 0x3e, r31 ; 62
120b6: 0f be out 0x3f, r0 ; 63
120b8: ed bf out 0x3d, r30 ; 61
120ba: 80 91 21 0a lds r24, 0x0A21
120be: 88 23 and r24, r24
120c0: 9c f4 brge .+38 ; 0x120e8 <Menu+0x129a>
120c2: 80 e4 ldi r24, 0x40 ; 64
120c4: 80 93 a4 04 sts 0x04A4, r24
120c8: 8e e6 ldi r24, 0x6E ; 110
120ca: 91 e1 ldi r25, 0x11 ; 17
120cc: 9f 93 push r25
120ce: 8f 93 push r24
120d0: ce 01 movw r24, r28
120d2: 9f 93 push r25
120d4: cf 93 push r28
120d6: e0 91 78 06 lds r30, 0x0678
120da: f0 91 79 06 lds r31, 0x0679
120de: 09 95 icall
120e0: 0f 90 pop r0
120e2: 0f 90 pop r0
120e4: 0f 90 pop r0
120e6: 0f 90 pop r0
if(Motor[10].State>>7) LCD_printfxy(8,3,"11");
120e8: 80 91 30 0a lds r24, 0x0A30
120ec: 88 23 and r24, r24
120ee: a4 f4 brge .+40 ; 0x12118 <Menu+0x12ca>
120f0: 84 e4 ldi r24, 0x44 ; 68
120f2: 80 93 a4 04 sts 0x04A4, r24
120f6: 8b e6 ldi r24, 0x6B ; 107
120f8: 91 e1 ldi r25, 0x11 ; 17
120fa: 9f 93 push r25
120fc: 8f 93 push r24
120fe: 80 e1 ldi r24, 0x10 ; 16
12100: 97 e8 ldi r25, 0x87 ; 135
12102: 9f 93 push r25
12104: 8f 93 push r24
12106: e0 91 78 06 lds r30, 0x0678
1210a: f0 91 79 06 lds r31, 0x0679
1210e: 09 95 icall
12110: 0f 90 pop r0
12112: 0f 90 pop r0
12114: 0f 90 pop r0
12116: 0f 90 pop r0
if(Motor[11].State>>7) LCD_printfxy(12,3,"12");
12118: 80 91 3f 0a lds r24, 0x0A3F
1211c: 88 23 and r24, r24
1211e: 0c f0 brlt .+2 ; 0x12122 <Menu+0x12d4>
12120: 88 c0 rjmp .+272 ; 0x12232 <Menu+0x13e4>
12122: 88 e4 ldi r24, 0x48 ; 72
12124: 80 93 a4 04 sts 0x04A4, r24
12128: 88 e6 ldi r24, 0x68 ; 104
1212a: 91 e1 ldi r25, 0x11 ; 17
1212c: 9f 93 push r25
1212e: 8f 93 push r24
12130: 80 e1 ldi r24, 0x10 ; 16
12132: 97 e8 ldi r25, 0x87 ; 135
12134: 9f 93 push r25
12136: 8f 93 push r24
12138: e0 91 78 06 lds r30, 0x0678
1213c: f0 91 79 06 lds r31, 0x0679
12140: 09 95 icall
12142: 0f 90 pop r0
12144: 0f 90 pop r0
12146: 0f 90 pop r0
12148: 0f 90 pop r0
1214a: 73 c0 rjmp .+230 ; 0x12232 <Menu+0x13e4>
break;
case 19:
LCD_printfxy(0,0,"BL Versions" );
1214c: 10 92 a4 04 sts 0x04A4, r1
12150: 8c e5 ldi r24, 0x5C ; 92
12152: 91 e1 ldi r25, 0x11 ; 17
12154: 9f 93 push r25
12156: 8f 93 push r24
12158: 80 e1 ldi r24, 0x10 ; 16
1215a: 97 e8 ldi r25, 0x87 ; 135
1215c: 9f 93 push r25
1215e: 8f 93 push r24
12160: e0 91 78 06 lds r30, 0x0678
12164: f0 91 79 06 lds r31, 0x0679
12168: 09 95 icall
1216a: c1 ed ldi r28, 0xD1 ; 209
1216c: d9 e0 ldi r29, 0x09 ; 9
1216e: 0f 90 pop r0
12170: 0f 90 pop r0
12172: 0f 90 pop r0
12174: 0f 90 pop r0
12176: 04 e0 ldi r16, 0x04 ; 4
12178: 10 e0 ldi r17, 0x00 ; 0
1217a: 0f 2e mov r0, r31
1217c: f4 e1 ldi r31, 0x14 ; 20
1217e: bf 2e mov r11, r31
12180: f0 2d mov r31, r0
for(i=0;i<3;i++)
{
LCD_printfxy(0,i+1,"%1d.%02d %1d.%02d %1d.%02d %1d.%02d",Motor[i*4].VersionMajor,Motor[i*4].VersionMinor,Motor[i*4+1].VersionMajor,Motor[i*4+1].VersionMinor,Motor[i*4+2].VersionMajor,Motor[i*4+2].VersionMinor,Motor[i*4+3].VersionMajor,Motor[i*4+3].VersionMinor);
12182: 0f 2e mov r0, r31
12184: f8 e3 ldi r31, 0x38 ; 56
12186: cf 2e mov r12, r31
12188: f1 e1 ldi r31, 0x11 ; 17
1218a: df 2e mov r13, r31
1218c: f0 2d mov r31, r0
1218e: 0f 2e mov r0, r31
12190: f0 e1 ldi r31, 0x10 ; 16
12192: ef 2e mov r14, r31
12194: f7 e8 ldi r31, 0x87 ; 135
12196: ff 2e mov r15, r31
12198: f0 2d mov r31, r0
1219a: b0 92 a4 04 sts 0x04A4, r11
1219e: 88 81 ld r24, Y
121a0: 1f 92 push r1
121a2: 8f 93 push r24
121a4: fe 01 movw r30, r28
121a6: 31 97 sbiw r30, 0x01 ; 1
121a8: 80 81 ld r24, Z
121aa: 1f 92 push r1
121ac: 8f 93 push r24
121ae: 3e 97 sbiw r30, 0x0e ; 14
121b0: 80 81 ld r24, Z
121b2: 1f 92 push r1
121b4: 8f 93 push r24
121b6: 31 97 sbiw r30, 0x01 ; 1
121b8: 80 81 ld r24, Z
121ba: 1f 92 push r1
121bc: 8f 93 push r24
121be: 3e 97 sbiw r30, 0x0e ; 14
121c0: 80 81 ld r24, Z
121c2: 1f 92 push r1
121c4: 8f 93 push r24
121c6: 31 97 sbiw r30, 0x01 ; 1
121c8: 80 81 ld r24, Z
121ca: 1f 92 push r1
121cc: 8f 93 push r24
121ce: 3e 97 sbiw r30, 0x0e ; 14
121d0: 80 81 ld r24, Z
121d2: 1f 92 push r1
121d4: 8f 93 push r24
121d6: 31 97 sbiw r30, 0x01 ; 1
121d8: 80 81 ld r24, Z
121da: 1f 92 push r1
121dc: 8f 93 push r24
121de: df 92 push r13
121e0: cf 92 push r12
121e2: ff 92 push r15
121e4: ef 92 push r14
121e6: e0 91 78 06 lds r30, 0x0678
121ea: f0 91 79 06 lds r31, 0x0679
121ee: 09 95 icall
if(4 + i * 4 >= RequiredMotors) break;
121f0: 80 91 3d 05 lds r24, 0x053D
121f4: 90 e0 ldi r25, 0x00 ; 0
121f6: 2d b7 in r18, 0x3d ; 61
121f8: 3e b7 in r19, 0x3e ; 62
121fa: 2c 5e subi r18, 0xEC ; 236
121fc: 3f 4f sbci r19, 0xFF ; 255
121fe: 0f b6 in r0, 0x3f ; 63
12200: f8 94 cli
12202: 3e bf out 0x3e, r19 ; 62
12204: 0f be out 0x3f, r0 ; 63
12206: 2d bf out 0x3d, r18 ; 61
12208: 08 17 cp r16, r24
1220a: 19 07 cpc r17, r25
1220c: 94 f4 brge .+36 ; 0x12232 <Menu+0x13e4>
1220e: 34 e1 ldi r19, 0x14 ; 20
12210: b3 0e add r11, r19
12212: ec 96 adiw r28, 0x3c ; 60
12214: 0c 5f subi r16, 0xFC ; 252
12216: 1f 4f sbci r17, 0xFF ; 255
if(Motor[10].State>>7) LCD_printfxy(8,3,"11");
if(Motor[11].State>>7) LCD_printfxy(12,3,"12");
break;
case 19:
LCD_printfxy(0,0,"BL Versions" );
for(i=0;i<3;i++)
12218: 80 e5 ldi r24, 0x50 ; 80
1221a: b8 12 cpse r11, r24
1221c: be cf rjmp .-132 ; 0x1219a <Menu+0x134c>
1221e: 09 c0 rjmp .+18 ; 0x12232 <Menu+0x13e4>
}
break;
*/
#endif
default:
if(MenuePunkt == MaxMenue) MaxMenue--;
12220: 80 91 90 02 lds r24, 0x0290
12224: 28 13 cpse r18, r24
12226: 03 c0 rjmp .+6 ; 0x1222e <Menu+0x13e0>
12228: 21 50 subi r18, 0x01 ; 1
1222a: 20 93 90 02 sts 0x0290, r18
MenuePunkt = 0;
1222e: 10 92 a3 04 sts 0x04A3, r1
break;
}
RemoteKeys = 0;
12232: 10 92 a2 04 sts 0x04A2, r1
}
12236: df 91 pop r29
12238: cf 91 pop r28
1223a: 1f 91 pop r17
1223c: 0f 91 pop r16
1223e: ff 90 pop r15
12240: ef 90 pop r14
12242: df 90 pop r13
12244: cf 90 pop r12
12246: bf 90 pop r11
12248: af 90 pop r10
1224a: 9f 90 pop r9
1224c: 8f 90 pop r8
1224e: 7f 90 pop r7
12250: 6f 90 pop r6
12252: 5f 90 pop r5
12254: 3f 90 pop r3
12256: 2f 90 pop r2
12258: 08 95 ret
 
0001225a <c_cos_8192>:
 
// Sinus with argument in degree at an angular resolution of 1 degree and a discretisation of 13 bit.
const uint16_t pgm_sinlookup[91] PROGMEM = {0, 143, 286, 429, 571, 714, 856, 998, 1140, 1282, 1423, 1563, 1703, 1843, 1982, 2120, 2258, 2395, 2531, 2667, 2802, 2936, 3069, 3201, 3332, 3462, 3591, 3719, 3846, 3972, 4096, 4219, 4341, 4462, 4581, 4699, 4815, 4930, 5043, 5155, 5266, 5374, 5482, 5587, 5691, 5793, 5893, 5991, 6088, 6183, 6275, 6366, 6455, 6542, 6627, 6710, 6791, 6870, 6947, 7022, 7094, 7165, 7233, 7299, 7363, 7424, 7484, 7541, 7595, 7648, 7698, 7746, 7791, 7834, 7875, 7913, 7949, 7982, 8013, 8041, 8068, 8091, 8112, 8131, 8147, 8161, 8172, 8181, 8187, 8191, 8192};
 
int16_t c_cos_8192(int16_t angle)
{
1225a: 1f 93 push r17
int8_t m,n;
int16_t sinus;
angle = 90 - angle; // we need the cosinus and not the sinus
1225c: 2a e5 ldi r18, 0x5A ; 90
1225e: 30 e0 ldi r19, 0x00 ; 0
12260: a9 01 movw r20, r18
12262: 48 1b sub r20, r24
12264: 59 0b sbc r21, r25
12266: ca 01 movw r24, r20
// avoid negative angles
if (angle < 0)
12268: 99 23 and r25, r25
1226a: 3c f4 brge .+14 ; 0x1227a <c_cos_8192+0x20>
{
m = -1;
angle = abs(angle);
1226c: 99 23 and r25, r25
1226e: 1c f4 brge .+6 ; 0x12276 <c_cos_8192+0x1c>
12270: 91 95 neg r25
12272: 81 95 neg r24
12274: 91 09 sbc r25, r1
int16_t sinus;
angle = 90 - angle; // we need the cosinus and not the sinus
// avoid negative angles
if (angle < 0)
{
m = -1;
12276: 1f ef ldi r17, 0xFF ; 255
12278: 01 c0 rjmp .+2 ; 0x1227c <c_cos_8192+0x22>
angle = abs(angle);
}
else m = +1;
1227a: 11 e0 ldi r17, 0x01 ; 1
 
// fold angle to intervall 0 to 359
angle %= 360;
1227c: 68 e6 ldi r22, 0x68 ; 104
1227e: 71 e0 ldi r23, 0x01 ; 1
12280: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
12284: fc 01 movw r30, r24
 
// check quadrant
if (angle <= 90) n=1; // first quadrant
12286: 8b 35 cpi r24, 0x5B ; 91
12288: 91 05 cpc r25, r1
1228a: ec f0 brlt .+58 ; 0x122c6 <c_cos_8192+0x6c>
else if ((angle > 90) && (angle <= 180)) {angle = 180 - angle; n = 1;} // second quadrant
1228c: 9c 01 movw r18, r24
1228e: 2b 55 subi r18, 0x5B ; 91
12290: 31 09 sbc r19, r1
12292: 2a 35 cpi r18, 0x5A ; 90
12294: 31 05 cpc r19, r1
12296: 30 f4 brcc .+12 ; 0x122a4 <c_cos_8192+0x4a>
12298: e4 eb ldi r30, 0xB4 ; 180
1229a: f0 e0 ldi r31, 0x00 ; 0
1229c: e8 1b sub r30, r24
1229e: f9 0b sbc r31, r25
122a0: 61 e0 ldi r22, 0x01 ; 1
122a2: 12 c0 rjmp .+36 ; 0x122c8 <c_cos_8192+0x6e>
else if ((angle > 180) && (angle <= 270)) {angle = angle - 180; n = -1;} // third quadrant
122a4: 9c 01 movw r18, r24
122a6: 25 5b subi r18, 0xB5 ; 181
122a8: 31 09 sbc r19, r1
122aa: 2a 35 cpi r18, 0x5A ; 90
122ac: 31 05 cpc r19, r1
122ae: 28 f4 brcc .+10 ; 0x122ba <c_cos_8192+0x60>
122b0: fc 01 movw r30, r24
122b2: e4 5b subi r30, 0xB4 ; 180
122b4: f1 09 sbc r31, r1
122b6: 6f ef ldi r22, 0xFF ; 255
122b8: 07 c0 rjmp .+14 ; 0x122c8 <c_cos_8192+0x6e>
else {angle = 360 - angle; n = -1;} //fourth quadrant
122ba: e8 e6 ldi r30, 0x68 ; 104
122bc: f1 e0 ldi r31, 0x01 ; 1
122be: e8 1b sub r30, r24
122c0: f9 0b sbc r31, r25
122c2: 6f ef ldi r22, 0xFF ; 255
122c4: 01 c0 rjmp .+2 ; 0x122c8 <c_cos_8192+0x6e>
 
// fold angle to intervall 0 to 359
angle %= 360;
 
// check quadrant
if (angle <= 90) n=1; // first quadrant
122c6: 61 e0 ldi r22, 0x01 ; 1
else if ((angle > 90) && (angle <= 180)) {angle = 180 - angle; n = 1;} // second quadrant
else if ((angle > 180) && (angle <= 270)) {angle = angle - 180; n = -1;} // third quadrant
else {angle = 360 - angle; n = -1;} //fourth quadrant
// get lookup value
sinus = pgm_read_word(&pgm_sinlookup[angle]);
122c8: ee 0f add r30, r30
122ca: ff 1f adc r31, r31
122cc: e5 5a subi r30, 0xA5 ; 165
122ce: fa 4e sbci r31, 0xEA ; 234
122d0: 25 91 lpm r18, Z+
122d2: 34 91 lpm r19, Z
// calculate sinus value
return (sinus * m * n);
122d4: 12 03 mulsu r17, r18
122d6: a0 01 movw r20, r0
122d8: 13 9f mul r17, r19
122da: 50 0d add r21, r0
122dc: 11 24 eor r1, r1
}
122de: 64 03 mulsu r22, r20
122e0: c0 01 movw r24, r0
122e2: 65 9f mul r22, r21
122e4: 90 0d add r25, r0
122e6: 11 24 eor r1, r1
122e8: 1f 91 pop r17
122ea: 08 95 ret
 
000122ec <rc_sum_init>:
 
//############################################################################
// Clear the values
void rc_sum_init(void)
//############################################################################
{
122ec: 80 e0 ldi r24, 0x00 ; 0
122ee: 90 e0 ldi r25, 0x00 ; 0
unsigned char i;
for(i=0;i<MAX_RC_IN;i++)
{
if(i < 5) PPM_in[i] = 0; else PPM_in[i] = -127;
122f0: 21 e8 ldi r18, 0x81 ; 129
122f2: 3f ef ldi r19, 0xFF ; 255
122f4: 85 30 cpi r24, 0x05 ; 5
122f6: 40 f4 brcc .+16 ; 0x12308 <rc_sum_init+0x1c>
122f8: fc 01 movw r30, r24
122fa: ee 0f add r30, r30
122fc: ff 1f adc r31, r31
122fe: ef 5c subi r30, 0xCF ; 207
12300: f7 4f sbci r31, 0xF7 ; 247
12302: 11 82 std Z+1, r1 ; 0x01
12304: 10 82 st Z, r1
12306: 07 c0 rjmp .+14 ; 0x12316 <rc_sum_init+0x2a>
12308: fc 01 movw r30, r24
1230a: ee 0f add r30, r30
1230c: ff 1f adc r31, r31
1230e: ef 5c subi r30, 0xCF ; 207
12310: f7 4f sbci r31, 0xF7 ; 247
12312: 31 83 std Z+1, r19 ; 0x01
12314: 20 83 st Z, r18
PPM_diff[i] = 0;
12316: fc 01 movw r30, r24
12318: ee 0f add r30, r30
1231a: ff 1f adc r31, r31
1231c: e9 58 subi r30, 0x89 ; 137
1231e: f7 4f sbci r31, 0xF7 ; 247
12320: 11 82 std Z+1, r1 ; 0x01
12322: 10 82 st Z, r1
12324: 01 96 adiw r24, 0x01 ; 1
// Clear the values
void rc_sum_init(void)
//############################################################################
{
unsigned char i;
for(i=0;i<MAX_RC_IN;i++)
12326: 83 32 cpi r24, 0x23 ; 35
12328: 91 05 cpc r25, r1
1232a: 21 f7 brne .-56 ; 0x122f4 <rc_sum_init+0x8>
{
if(i < 5) PPM_in[i] = 0; else PPM_in[i] = -127;
PPM_diff[i] = 0;
}
PPM_in[PPM_IN_MAX] = +127;
1232c: 8f e7 ldi r24, 0x7F ; 127
1232e: 90 e0 ldi r25, 0x00 ; 0
12330: 90 93 70 08 sts 0x0870, r25
12334: 80 93 6f 08 sts 0x086F, r24
PPM_in[PPM_IN_OFF] = -127;
12338: 81 e8 ldi r24, 0x81 ; 129
1233a: 9f ef ldi r25, 0xFF ; 255
1233c: 90 93 6e 08 sts 0x086E, r25
12340: 80 93 6d 08 sts 0x086D, r24
PPM_in[PPM_IN_MID] = 0;
12344: 10 92 72 08 sts 0x0872, r1
12348: 10 92 71 08 sts 0x0871, r1
AdNeutralGier = 0;
1234c: 10 92 54 04 sts 0x0454, r1
12350: 10 92 53 04 sts 0x0453, r1
AdNeutralRoll = 0;
12354: 10 92 56 04 sts 0x0456, r1
12358: 10 92 55 04 sts 0x0455, r1
AdNeutralNick = 0;
1235c: 10 92 58 04 sts 0x0458, r1
12360: 10 92 57 04 sts 0x0457, r1
12364: 08 95 ret
 
00012366 <__vector_12>:
#ifndef ACT_S3D_SUMMENSIGNAL
//############################################################################
// Interrupt function for the PPM-Input
ISR(TIMER1_CAPT_vect)
//############################################################################
{
12366: 1f 92 push r1
12368: 0f 92 push r0
1236a: 0f b6 in r0, 0x3f ; 63
1236c: 0f 92 push r0
1236e: 11 24 eor r1, r1
12370: 0b b6 in r0, 0x3b ; 59
12372: 0f 92 push r0
12374: 2f 93 push r18
12376: 3f 93 push r19
12378: 4f 93 push r20
1237a: 5f 93 push r21
1237c: 6f 93 push r22
1237e: 7f 93 push r23
12380: 8f 93 push r24
12382: 9f 93 push r25
12384: af 93 push r26
12386: bf 93 push r27
12388: cf 93 push r28
1238a: df 93 push r29
1238c: ef 93 push r30
1238e: ff 93 push r31
static unsigned int AltICR=0;
signed int signal = 0,tmp;
static int index;
 
signal = (unsigned int) ICR1 - AltICR;
12390: e6 e8 ldi r30, 0x86 ; 134
12392: f0 e0 ldi r31, 0x00 ; 0
12394: 80 81 ld r24, Z
12396: 91 81 ldd r25, Z+1 ; 0x01
12398: 20 91 a7 04 lds r18, 0x04A7
1239c: 30 91 a8 04 lds r19, 0x04A8
123a0: 82 1b sub r24, r18
123a2: 93 0b sbc r25, r19
AltICR = ICR1;
123a4: 20 81 ld r18, Z
123a6: 31 81 ldd r19, Z+1 ; 0x01
123a8: 30 93 a8 04 sts 0x04A8, r19
123ac: 20 93 a7 04 sts 0x04A7, r18
//Syncronisationspause? (3.52 ms < signal < 25.6 ms)
if((signal > 1100) && (signal < 8000))
123b0: 9c 01 movw r18, r24
123b2: 2d 54 subi r18, 0x4D ; 77
123b4: 34 40 sbci r19, 0x04 ; 4
123b6: 23 3f cpi r18, 0xF3 ; 243
123b8: 3a 41 sbci r19, 0x1A ; 26
123ba: 88 f4 brcc .+34 ; 0x123de <__vector_12+0x78>
{
Channels = index;
123bc: 80 91 a5 04 lds r24, 0x04A5
123c0: 90 91 a6 04 lds r25, 0x04A6
123c4: 80 93 30 08 sts 0x0830, r24
if(index >= 4) NewPpmData = 0; // Null bedeutet: Neue Daten
123c8: 04 97 sbiw r24, 0x04 ; 4
123ca: 14 f0 brlt .+4 ; 0x123d0 <__vector_12+0x6a>
123cc: 10 92 93 02 sts 0x0293, r1
index = 1;
123d0: 81 e0 ldi r24, 0x01 ; 1
123d2: 90 e0 ldi r25, 0x00 ; 0
123d4: 90 93 a6 04 sts 0x04A6, r25
123d8: 80 93 a5 04 sts 0x04A5, r24
123dc: c1 c0 rjmp .+386 ; 0x12560 <__vector_12+0x1fa>
}
else
{
if(index < 13+4)
123de: 20 91 a5 04 lds r18, 0x04A5
123e2: 30 91 a6 04 lds r19, 0x04A6
123e6: 21 31 cpi r18, 0x11 ; 17
123e8: 31 05 cpc r19, r1
123ea: 0c f0 brlt .+2 ; 0x123ee <__vector_12+0x88>
123ec: b9 c0 rjmp .+370 ; 0x12560 <__vector_12+0x1fa>
{
if((signal > 250) && (signal < 687))
123ee: ac 01 movw r20, r24
123f0: 4b 5f subi r20, 0xFB ; 251
123f2: 51 09 sbc r21, r1
123f4: 44 3b cpi r20, 0xB4 ; 180
123f6: 51 40 sbci r21, 0x01 ; 1
123f8: 08 f0 brcs .+2 ; 0x123fc <__vector_12+0x96>
123fa: ac c0 rjmp .+344 ; 0x12554 <__vector_12+0x1ee>
{
signal -= PPM_Neutral;
123fc: 40 91 91 02 lds r20, 0x0291
12400: 50 91 92 02 lds r21, 0x0292
12404: 84 1b sub r24, r20
12406: 95 0b sbc r25, r21
// Stabiles Signal
if(EE_Parameter.FailsafeChannel == 0 || PPM_in[EE_Parameter.FailsafeChannel] < 100) // forces Failsafe if the receiver doesn't have 'signal loss' on Failsafe
12408: e0 91 a8 05 lds r30, 0x05A8
1240c: ee 23 and r30, r30
1240e: 51 f0 breq .+20 ; 0x12424 <__vector_12+0xbe>
12410: f0 e0 ldi r31, 0x00 ; 0
12412: ee 0f add r30, r30
12414: ff 1f adc r31, r31
12416: ef 5c subi r30, 0xCF ; 207
12418: f7 4f sbci r31, 0xF7 ; 247
1241a: 40 81 ld r20, Z
1241c: 51 81 ldd r21, Z+1 ; 0x01
1241e: 44 36 cpi r20, 0x64 ; 100
12420: 51 05 cpc r21, r1
12422: 04 f5 brge .+64 ; 0x12464 <__vector_12+0xfe>
{
if(abs(signal - PPM_in[index]) < 6) { if(SenderOkay < 200) SenderOkay += 10; else SenderOkay = 200;}
12424: f9 01 movw r30, r18
12426: ee 0f add r30, r30
12428: ff 1f adc r31, r31
1242a: ef 5c subi r30, 0xCF ; 207
1242c: f7 4f sbci r31, 0xF7 ; 247
1242e: 40 81 ld r20, Z
12430: 51 81 ldd r21, Z+1 ; 0x01
12432: bc 01 movw r22, r24
12434: 64 1b sub r22, r20
12436: 75 0b sbc r23, r21
12438: ab 01 movw r20, r22
1243a: 22 f4 brpl .+8 ; 0x12444 <__vector_12+0xde>
1243c: 44 27 eor r20, r20
1243e: 55 27 eor r21, r21
12440: 46 1b sub r20, r22
12442: 57 0b sbc r21, r23
12444: 46 30 cpi r20, 0x06 ; 6
12446: 51 05 cpc r21, r1
12448: 6c f4 brge .+26 ; 0x12464 <__vector_12+0xfe>
1244a: 40 91 04 04 lds r20, 0x0404
1244e: 48 3c cpi r20, 0xC8 ; 200
12450: 30 f4 brcc .+12 ; 0x1245e <__vector_12+0xf8>
12452: 40 91 04 04 lds r20, 0x0404
12456: 46 5f subi r20, 0xF6 ; 246
12458: 40 93 04 04 sts 0x0404, r20
1245c: 03 c0 rjmp .+6 ; 0x12464 <__vector_12+0xfe>
1245e: 48 ec ldi r20, 0xC8 ; 200
12460: 40 93 04 04 sts 0x0404, r20
}
tmp = (3 * (PPM_in[index]) + signal) / 4;
12464: f9 01 movw r30, r18
12466: ee 0f add r30, r30
12468: ff 1f adc r31, r31
1246a: ef 5c subi r30, 0xCF ; 207
1246c: f7 4f sbci r31, 0xF7 ; 247
1246e: 40 81 ld r20, Z
12470: 51 81 ldd r21, Z+1 ; 0x01
12472: fa 01 movw r30, r20
12474: ee 0f add r30, r30
12476: ff 1f adc r31, r31
12478: e4 0f add r30, r20
1247a: f5 1f adc r31, r21
1247c: e8 0f add r30, r24
1247e: f9 1f adc r31, r25
12480: ff 23 and r31, r31
12482: 0c f4 brge .+2 ; 0x12486 <__vector_12+0x120>
12484: 33 96 adiw r30, 0x03 ; 3
12486: f5 95 asr r31
12488: e7 95 ror r30
1248a: f5 95 asr r31
1248c: e7 95 ror r30
if(tmp > signal+1) tmp--; else
1248e: ac 01 movw r20, r24
12490: 4f 5f subi r20, 0xFF ; 255
12492: 5f 4f sbci r21, 0xFF ; 255
12494: 4e 17 cp r20, r30
12496: 5f 07 cpc r21, r31
12498: 14 f4 brge .+4 ; 0x1249e <__vector_12+0x138>
1249a: 31 97 sbiw r30, 0x01 ; 1
1249c: 05 c0 rjmp .+10 ; 0x124a8 <__vector_12+0x142>
if(tmp < signal-1) tmp++;
1249e: 01 97 sbiw r24, 0x01 ; 1
124a0: e8 17 cp r30, r24
124a2: f9 07 cpc r31, r25
124a4: 0c f4 brge .+2 ; 0x124a8 <__vector_12+0x142>
124a6: 31 96 adiw r30, 0x01 ; 1
if(SenderOkay >= 195) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
124a8: 80 91 04 04 lds r24, 0x0404
124ac: 83 3c cpi r24, 0xC3 ; 195
124ae: d0 f0 brcs .+52 ; 0x124e4 <__vector_12+0x17e>
124b0: e9 01 movw r28, r18
124b2: cc 0f add r28, r28
124b4: dd 1f adc r29, r29
124b6: de 01 movw r26, r28
124b8: af 5c subi r26, 0xCF ; 207
124ba: b7 4f sbci r27, 0xF7 ; 247
124bc: 8d 91 ld r24, X+
124be: 9c 91 ld r25, X
124c0: af 01 movw r20, r30
124c2: 48 1b sub r20, r24
124c4: 59 0b sbc r21, r25
124c6: ca 01 movw r24, r20
124c8: 63 e0 ldi r22, 0x03 ; 3
124ca: 70 e0 ldi r23, 0x00 ; 0
124cc: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
124d0: cb 01 movw r24, r22
124d2: 88 0f add r24, r24
124d4: 99 1f adc r25, r25
124d6: 68 0f add r22, r24
124d8: 79 1f adc r23, r25
124da: c9 58 subi r28, 0x89 ; 137
124dc: d7 4f sbci r29, 0xF7 ; 247
124de: 79 83 std Y+1, r23 ; 0x01
124e0: 68 83 st Y, r22
124e2: 08 c0 rjmp .+16 ; 0x124f4 <__vector_12+0x18e>
else PPM_diff[index] = 0;
124e4: d9 01 movw r26, r18
124e6: aa 0f add r26, r26
124e8: bb 1f adc r27, r27
124ea: a9 58 subi r26, 0x89 ; 137
124ec: b7 4f sbci r27, 0xF7 ; 247
124ee: 11 96 adiw r26, 0x01 ; 1
124f0: 1c 92 st X, r1
124f2: 1e 92 st -X, r1
PPM_in[index] = tmp;
124f4: d9 01 movw r26, r18
124f6: aa 0f add r26, r26
124f8: bb 1f adc r27, r27
124fa: af 5c subi r26, 0xCF ; 207
124fc: b7 4f sbci r27, 0xF7 ; 247
124fe: 11 96 adiw r26, 0x01 ; 1
12500: fc 93 st X, r31
12502: ee 93 st -X, r30
if(SenderOkay < 50)
12504: 80 91 04 04 lds r24, 0x0404
12508: 82 33 cpi r24, 0x32 ; 50
1250a: 20 f5 brcc .+72 ; 0x12554 <__vector_12+0x1ee>
{
PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] = 0;
1250c: e0 91 3f 05 lds r30, 0x053F
12510: f0 e0 ldi r31, 0x00 ; 0
12512: ee 0f add r30, r30
12514: ff 1f adc r31, r31
12516: ef 5c subi r30, 0xCF ; 207
12518: f7 4f sbci r31, 0xF7 ; 247
1251a: 11 82 std Z+1, r1 ; 0x01
1251c: 10 82 st Z, r1
PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] = 0;
1251e: e0 91 40 05 lds r30, 0x0540
12522: f0 e0 ldi r31, 0x00 ; 0
12524: ee 0f add r30, r30
12526: ff 1f adc r31, r31
12528: ef 5c subi r30, 0xCF ; 207
1252a: f7 4f sbci r31, 0xF7 ; 247
1252c: 11 82 std Z+1, r1 ; 0x01
1252e: 10 82 st Z, r1
PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] = 0;
12530: e0 91 42 05 lds r30, 0x0542
12534: f0 e0 ldi r31, 0x00 ; 0
12536: ee 0f add r30, r30
12538: ff 1f adc r31, r31
1253a: ef 5c subi r30, 0xCF ; 207
1253c: f7 4f sbci r31, 0xF7 ; 247
1253e: 11 82 std Z+1, r1 ; 0x01
12540: 10 82 st Z, r1
PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] = 0;
12542: e0 91 41 05 lds r30, 0x0541
12546: f0 e0 ldi r31, 0x00 ; 0
12548: ee 0f add r30, r30
1254a: ff 1f adc r31, r31
1254c: ef 5c subi r30, 0xCF ; 207
1254e: f7 4f sbci r31, 0xF7 ; 247
12550: 11 82 std Z+1, r1 ; 0x01
12552: 10 82 st Z, r1
}
}
index++;
12554: 2f 5f subi r18, 0xFF ; 255
12556: 3f 4f sbci r19, 0xFF ; 255
12558: 30 93 a6 04 sts 0x04A6, r19
1255c: 20 93 a5 04 sts 0x04A5, r18
if(index == 7) J5High; else J5Low; // Servosignal an J5 anlegen
}
*/
}
}
}
12560: ff 91 pop r31
12562: ef 91 pop r30
12564: df 91 pop r29
12566: cf 91 pop r28
12568: bf 91 pop r27
1256a: af 91 pop r26
1256c: 9f 91 pop r25
1256e: 8f 91 pop r24
12570: 7f 91 pop r23
12572: 6f 91 pop r22
12574: 5f 91 pop r21
12576: 4f 91 pop r20
12578: 3f 91 pop r19
1257a: 2f 91 pop r18
1257c: 0f 90 pop r0
1257e: 0b be out 0x3b, r0 ; 59
12580: 0f 90 pop r0
12582: 0f be out 0x3f, r0 ; 63
12584: 0f 90 pop r0
12586: 1f 90 pop r1
12588: 18 95 reti
 
0001258a <SbusUartInit>:
 
//############################################################################
// USART1 initialisation from killagreg
void SbusUartInit(void)
//############################################################################
{
1258a: cf 93 push r28
1258c: df 93 push r29
// -- Start of USART1 initialisation for Spekturm seriell-mode
// USART1 Control and Status Register A, B, C and baud rate register
uint8_t sreg = SREG;
1258e: 9f b7 in r25, 0x3f ; 63
uint16_t ubrr = (uint16_t) ((uint32_t) SYSCLK/(8 * 100000) - 1);
// disable all interrupts before reconfiguration
cli();
12590: f8 94 cli
// disable RX-Interrupt
UCSR1B &= ~(1 << RXCIE1);
12592: a9 ec ldi r26, 0xC9 ; 201
12594: b0 e0 ldi r27, 0x00 ; 0
12596: 8c 91 ld r24, X
12598: 8f 77 andi r24, 0x7F ; 127
1259a: 8c 93 st X, r24
// disable TX-Interrupt
UCSR1B &= ~(1 << TXCIE1);
1259c: 8c 91 ld r24, X
1259e: 8f 7b andi r24, 0xBF ; 191
125a0: 8c 93 st X, r24
// disable DRE-Interrupt
UCSR1B &= ~(1 << UDRIE1);
125a2: 8c 91 ld r24, X
125a4: 8f 7d andi r24, 0xDF ; 223
125a6: 8c 93 st X, r24
PORTD |= (1 << PORTD3);
DDRD |= (1 << DDD3);
*/
// USART0 Baud Rate Register
// set clock divider
UBRR1H = (uint8_t)(ubrr>>8);
125a8: 10 92 cd 00 sts 0x00CD, r1
UBRR1L = (uint8_t)ubrr;
125ac: 88 e1 ldi r24, 0x18 ; 24
125ae: 80 93 cc 00 sts 0x00CC, r24
// enable double speed operation
UCSR1A |= (1 << U2X1);
125b2: c8 ec ldi r28, 0xC8 ; 200
125b4: d0 e0 ldi r29, 0x00 ; 0
125b6: 88 81 ld r24, Y
125b8: 82 60 ori r24, 0x02 ; 2
125ba: 88 83 st Y, r24
// enable receiver and transmitter
//UCSR1B = (1<<RXEN1)|(1<<TXEN1);
 
UCSR1B = (1<<RXEN1);
125bc: 80 e1 ldi r24, 0x10 ; 16
125be: 8c 93 st X, r24
// set asynchronous mode
UCSR1C &= ~(1 << UMSEL11);
125c0: ea ec ldi r30, 0xCA ; 202
125c2: f0 e0 ldi r31, 0x00 ; 0
125c4: 80 81 ld r24, Z
125c6: 8f 77 andi r24, 0x7F ; 127
125c8: 80 83 st Z, r24
UCSR1C &= ~(1 << UMSEL10);
125ca: 80 81 ld r24, Z
125cc: 8f 7b andi r24, 0xBF ; 191
125ce: 80 83 st Z, r24
// parity
UCSR1C <= (1 << UPM11); // even
125d0: 80 81 ld r24, Z
UCSR1C &= ~(1 << UPM10);
125d2: 80 81 ld r24, Z
125d4: 8f 7e andi r24, 0xEF ; 239
125d6: 80 83 st Z, r24
// stop bit
UCSR1C |= (1 << USBS1); // two
125d8: 80 81 ld r24, Z
125da: 88 60 ori r24, 0x08 ; 8
125dc: 80 83 st Z, r24
// 8-bit
UCSR1B &= ~(1 << UCSZ12);
125de: 8c 91 ld r24, X
125e0: 8b 7f andi r24, 0xFB ; 251
125e2: 8c 93 st X, r24
UCSR1C |= (1 << UCSZ11);
125e4: 80 81 ld r24, Z
125e6: 84 60 ori r24, 0x04 ; 4
125e8: 80 83 st Z, r24
UCSR1C |= (1 << UCSZ10);
125ea: 80 81 ld r24, Z
125ec: 82 60 ori r24, 0x02 ; 2
125ee: 80 83 st Z, r24
// flush receive buffer explicit
while(UCSR1A & (1<<RXC1)) UDR1;
125f0: 88 81 ld r24, Y
125f2: 88 23 and r24, r24
125f4: 44 f4 brge .+16 ; 0x12606 <SbusUartInit+0x7c>
125f6: ae ec ldi r26, 0xCE ; 206
125f8: b0 e0 ldi r27, 0x00 ; 0
125fa: e8 ec ldi r30, 0xC8 ; 200
125fc: f0 e0 ldi r31, 0x00 ; 0
125fe: 8c 91 ld r24, X
12600: 80 81 ld r24, Z
12602: 88 23 and r24, r24
12604: e4 f3 brlt .-8 ; 0x125fe <SbusUartInit+0x74>
// enable RX-interrupts at the end
UCSR1B |= (1 << RXCIE1);
12606: e9 ec ldi r30, 0xC9 ; 201
12608: f0 e0 ldi r31, 0x00 ; 0
1260a: 80 81 ld r24, Z
1260c: 80 68 ori r24, 0x80 ; 128
1260e: 80 83 st Z, r24
// -- End of USART1 initialisation
// restore global interrupt flags
sBusBuffer[23] |= 4; // This Bit contains the 'Signal loss'
12610: e4 ed ldi r30, 0xD4 ; 212
12612: f8 e0 ldi r31, 0x08 ; 8
12614: 80 81 ld r24, Z
12616: 84 60 ori r24, 0x04 ; 4
12618: 80 83 st Z, r24
SREG = sreg;
1261a: 9f bf out 0x3f, r25 ; 63
return;
}
1261c: df 91 pop r29
1261e: cf 91 pop r28
12620: 08 95 ret
 
00012622 <SbusParser>:
// Is called by the uart RX interrupt
//############################################################################
void SbusParser(unsigned char udr)
{
static unsigned char ptr = 0;
if(!SpektrumTimer && udr == 0x0f) // wait for the start
12622: 90 91 b0 04 lds r25, 0x04B0
12626: 91 11 cpse r25, r1
12628: 08 c0 rjmp .+16 ; 0x1263a <SbusParser+0x18>
1262a: 8f 30 cpi r24, 0x0F ; 15
1262c: 31 f4 brne .+12 ; 0x1263a <SbusParser+0x18>
{
ptr = 0;
1262e: 10 92 aa 04 sts 0x04AA, r1
SpektrumTimer = 80; // 8ms gap
12632: 80 e5 ldi r24, 0x50 ; 80
12634: 80 93 b0 04 sts 0x04B0, r24
12638: 08 95 ret
}
else
{
if(++ptr == 24) // last byte
1263a: e0 91 aa 04 lds r30, 0x04AA
1263e: ef 5f subi r30, 0xFF ; 255
12640: e0 93 aa 04 sts 0x04AA, r30
12644: e8 31 cpi r30, 0x18 ; 24
12646: 21 f4 brne .+8 ; 0x12650 <SbusParser+0x2e>
{
NewSBusData = 1;
12648: 81 e0 ldi r24, 0x01 ; 1
1264a: 80 93 ab 04 sts 0x04AB, r24
1264e: 08 95 ret
}
else
if(ptr > 24) ptr = 25;
12650: e9 31 cpi r30, 0x19 ; 25
12652: 20 f0 brcs .+8 ; 0x1265c <SbusParser+0x3a>
12654: 89 e1 ldi r24, 0x19 ; 25
12656: 80 93 aa 04 sts 0x04AA, r24
1265a: 08 95 ret
else
{
sBusBuffer[ptr] = udr; // collect all bytes
1265c: f0 e0 ldi r31, 0x00 ; 0
1265e: e3 54 subi r30, 0x43 ; 67
12660: f7 4f sbci r31, 0xF7 ; 247
12662: 80 83 st Z, r24
12664: 08 95 ret
 
00012666 <ProcessSBus>:
}
}
}
 
void ProcessSBus(void)
{
12666: 5f 92 push r5
12668: 6f 92 push r6
1266a: 7f 92 push r7
1266c: 8f 92 push r8
1266e: 9f 92 push r9
12670: af 92 push r10
12672: bf 92 push r11
12674: cf 92 push r12
12676: df 92 push r13
12678: ef 92 push r14
1267a: ff 92 push r15
1267c: 0f 93 push r16
1267e: 1f 93 push r17
12680: cf 93 push r28
12682: df 93 push r29
static unsigned char load = 0;
unsigned char bitmask8 = 1, sbyte = 2, i, index = 1, process;
unsigned int bitmask11 = 256;
signed int signal = 0,tmp;
if(!(sBusBuffer[23] & 4)) // This Bit contains the 'Signal loss'
12684: 80 91 d4 08 lds r24, 0x08D4
12688: 82 fd sbrc r24, 2
1268a: a4 c0 rjmp .+328 ; 0x127d4 <ProcessSBus+0x16e>
{
TIMSK1 &= ~_BV(ICIE1); // disable PPM-Input
1268c: ef e6 ldi r30, 0x6F ; 111
1268e: f0 e0 ldi r31, 0x00 ; 0
12690: 80 81 ld r24, Z
12692: 8f 7d andi r24, 0xDF ; 223
12694: 80 83 st Z, r24
if(EE_Parameter.FailsafeChannel == 0 || PPM_in[EE_Parameter.FailsafeChannel] < 100) // forces Failsafe if the receiver doesn't have 'signal loss' on Failsafe
12696: e0 91 a8 05 lds r30, 0x05A8
1269a: ee 23 and r30, r30
1269c: 51 f0 breq .+20 ; 0x126b2 <ProcessSBus+0x4c>
1269e: f0 e0 ldi r31, 0x00 ; 0
126a0: ee 0f add r30, r30
126a2: ff 1f adc r31, r31
126a4: ef 5c subi r30, 0xCF ; 207
126a6: f7 4f sbci r31, 0xF7 ; 247
126a8: 80 81 ld r24, Z
126aa: 91 81 ldd r25, Z+1 ; 0x01
126ac: 84 36 cpi r24, 0x64 ; 100
126ae: 91 05 cpc r25, r1
126b0: 6c f4 brge .+26 ; 0x126cc <ProcessSBus+0x66>
{
if(SenderOkay < 200) SenderOkay += 20; else SenderOkay = 200;
126b2: 80 91 04 04 lds r24, 0x0404
126b6: 88 3c cpi r24, 0xC8 ; 200
126b8: 30 f4 brcc .+12 ; 0x126c6 <ProcessSBus+0x60>
126ba: 80 91 04 04 lds r24, 0x0404
126be: 8c 5e subi r24, 0xEC ; 236
126c0: 80 93 04 04 sts 0x0404, r24
126c4: 03 c0 rjmp .+6 ; 0x126cc <ProcessSBus+0x66>
126c6: 88 ec ldi r24, 0xC8 ; 200
126c8: 80 93 04 04 sts 0x0404, r24
}
signal = sBusBuffer[1];
126cc: 80 91 be 08 lds r24, 0x08BE
126d0: 90 e0 ldi r25, 0x00 ; 0
if(!load--) { process = (16*11 - 8); load = 2;} else process = (4*11 - 8); // lowers the processor load
126d2: 20 91 a9 04 lds r18, 0x04A9
126d6: 21 11 cpse r18, r1
126d8: 80 c0 rjmp .+256 ; 0x127da <ProcessSBus+0x174>
126da: 22 e0 ldi r18, 0x02 ; 2
126dc: 20 93 a9 04 sts 0x04A9, r18
126e0: 0f 2e mov r0, r31
126e2: f8 ea ldi r31, 0xA8 ; 168
126e4: bf 2e mov r11, r31
126e6: f0 2d mov r31, r0
126e8: 7f c0 rjmp .+254 ; 0x127e8 <ProcessSBus+0x182>
for(i = 0; i < process; i++) // collect the single bits
{
if(sBusBuffer[sbyte] & bitmask8) signal |= bitmask11;
126ea: ec 2d mov r30, r12
126ec: f0 e0 ldi r31, 0x00 ; 0
126ee: e3 54 subi r30, 0x43 ; 67
126f0: f7 4f sbci r31, 0xF7 ; 247
126f2: 50 81 ld r21, Z
126f4: 54 23 and r21, r20
126f6: 11 f0 breq .+4 ; 0x126fc <ProcessSBus+0x96>
126f8: 82 2b or r24, r18
126fa: 93 2b or r25, r19
bitmask8 *= 2;
126fc: 44 0f add r20, r20
if(!bitmask8)
126fe: 11 f4 brne .+4 ; 0x12704 <ProcessSBus+0x9e>
{
bitmask8 = 1;
sbyte++;
12700: c3 94 inc r12
{
if(sBusBuffer[sbyte] & bitmask8) signal |= bitmask11;
bitmask8 *= 2;
if(!bitmask8)
{
bitmask8 = 1;
12702: 49 2d mov r20, r9
sbyte++;
}
bitmask11 *= 2;
12704: 22 0f add r18, r18
12706: 33 1f adc r19, r19
if(bitmask11 == 2048)
12708: 21 15 cp r18, r1
1270a: 58 e0 ldi r21, 0x08 ; 8
1270c: 35 07 cpc r19, r21
1270e: 09 f0 breq .+2 ; 0x12712 <ProcessSBus+0xac>
12710: 5b c0 rjmp .+182 ; 0x127c8 <ProcessSBus+0x162>
{
bitmask11 = 1;
signal = (signal-1024) / 5; // the resolution is higher than required
12712: 94 50 subi r25, 0x04 ; 4
12714: b8 01 movw r22, r16
12716: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
tmp = (3 * (PPM_in[index]) + signal) / 4;
1271a: ea 2d mov r30, r10
1271c: f0 e0 ldi r31, 0x00 ; 0
1271e: df 01 movw r26, r30
12720: aa 0f add r26, r26
12722: bb 1f adc r27, r27
12724: af 5c subi r26, 0xCF ; 207
12726: b7 4f sbci r27, 0xF7 ; 247
12728: 8d 91 ld r24, X+
1272a: 9c 91 ld r25, X
1272c: 9c 01 movw r18, r24
1272e: 22 0f add r18, r18
12730: 33 1f adc r19, r19
12732: 28 0f add r18, r24
12734: 39 1f adc r19, r25
12736: 26 0f add r18, r22
12738: 37 1f adc r19, r23
1273a: 33 23 and r19, r19
1273c: 14 f4 brge .+4 ; 0x12742 <ProcessSBus+0xdc>
1273e: 2d 5f subi r18, 0xFD ; 253
12740: 3f 4f sbci r19, 0xFF ; 255
12742: 35 95 asr r19
12744: 27 95 ror r18
12746: 35 95 asr r19
12748: 27 95 ror r18
if(tmp > signal+1) tmp--; else
1274a: cb 01 movw r24, r22
1274c: 01 96 adiw r24, 0x01 ; 1
1274e: 82 17 cp r24, r18
12750: 93 07 cpc r25, r19
12752: 1c f4 brge .+6 ; 0x1275a <ProcessSBus+0xf4>
12754: 21 50 subi r18, 0x01 ; 1
12756: 31 09 sbc r19, r1
12758: 07 c0 rjmp .+14 ; 0x12768 <ProcessSBus+0x102>
if(tmp < signal-1) tmp++;
1275a: 61 50 subi r22, 0x01 ; 1
1275c: 71 09 sbc r23, r1
1275e: 26 17 cp r18, r22
12760: 37 07 cpc r19, r23
12762: 14 f4 brge .+4 ; 0x12768 <ProcessSBus+0x102>
12764: 2f 5f subi r18, 0xFF ; 255
12766: 3f 4f sbci r19, 0xFF ; 255
if(SenderOkay >= 195) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
12768: 80 91 04 04 lds r24, 0x0404
1276c: 83 3c cpi r24, 0xC3 ; 195
1276e: c8 f0 brcs .+50 ; 0x127a2 <ProcessSBus+0x13c>
12770: ef 01 movw r28, r30
12772: cc 0f add r28, r28
12774: dd 1f adc r29, r29
12776: de 01 movw r26, r28
12778: af 5c subi r26, 0xCF ; 207
1277a: b7 4f sbci r27, 0xF7 ; 247
1277c: 8d 91 ld r24, X+
1277e: 9c 91 ld r25, X
12780: b9 01 movw r22, r18
12782: 68 1b sub r22, r24
12784: 79 0b sbc r23, r25
12786: cb 01 movw r24, r22
12788: b7 01 movw r22, r14
1278a: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
1278e: cb 01 movw r24, r22
12790: 88 0f add r24, r24
12792: 99 1f adc r25, r25
12794: 68 0f add r22, r24
12796: 79 1f adc r23, r25
12798: c9 58 subi r28, 0x89 ; 137
1279a: d7 4f sbci r29, 0xF7 ; 247
1279c: 79 83 std Y+1, r23 ; 0x01
1279e: 68 83 st Y, r22
127a0: 08 c0 rjmp .+16 ; 0x127b2 <ProcessSBus+0x14c>
else PPM_diff[index] = 0;
127a2: df 01 movw r26, r30
127a4: aa 0f add r26, r26
127a6: bb 1f adc r27, r27
127a8: a9 58 subi r26, 0x89 ; 137
127aa: b7 4f sbci r27, 0xF7 ; 247
127ac: 11 96 adiw r26, 0x01 ; 1
127ae: 1c 92 st X, r1
127b0: 1e 92 st -X, r1
PPM_in[index] = tmp;
127b2: ee 0f add r30, r30
127b4: ff 1f adc r31, r31
127b6: ef 5c subi r30, 0xCF ; 207
127b8: f7 4f sbci r31, 0xF7 ; 247
127ba: 31 83 std Z+1, r19 ; 0x01
127bc: 20 83 st Z, r18
signal = 0;
index++; // next channel
127be: a3 94 inc r10
if(tmp > signal+1) tmp--; else
if(tmp < signal-1) tmp++;
if(SenderOkay >= 195) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
else PPM_diff[index] = 0;
PPM_in[index] = tmp;
signal = 0;
127c0: 88 2d mov r24, r8
127c2: 97 2d mov r25, r7
sbyte++;
}
bitmask11 *= 2;
if(bitmask11 == 2048)
{
bitmask11 = 1;
127c4: 26 2d mov r18, r6
127c6: 35 2d mov r19, r5
{
if(SenderOkay < 200) SenderOkay += 20; else SenderOkay = 200;
}
signal = sBusBuffer[1];
if(!load--) { process = (16*11 - 8); load = 2;} else process = (4*11 - 8); // lowers the processor load
for(i = 0; i < process; i++) // collect the single bits
127c8: d3 94 inc r13
127ca: db 14 cp r13, r11
127cc: 08 f4 brcc .+2 ; 0x127d0 <ProcessSBus+0x16a>
127ce: 8d cf rjmp .-230 ; 0x126ea <ProcessSBus+0x84>
PPM_in[index] = tmp;
signal = 0;
index++; // next channel
}
}
NewPpmData = 0; // Null bedeutet: Neue Daten
127d0: 10 92 93 02 sts 0x0293, r1
}
NewSBusData = 0;
127d4: 10 92 ab 04 sts 0x04AB, r1
127d8: 1f c0 rjmp .+62 ; 0x12818 <ProcessSBus+0x1b2>
if(EE_Parameter.FailsafeChannel == 0 || PPM_in[EE_Parameter.FailsafeChannel] < 100) // forces Failsafe if the receiver doesn't have 'signal loss' on Failsafe
{
if(SenderOkay < 200) SenderOkay += 20; else SenderOkay = 200;
}
signal = sBusBuffer[1];
if(!load--) { process = (16*11 - 8); load = 2;} else process = (4*11 - 8); // lowers the processor load
127da: 21 50 subi r18, 0x01 ; 1
127dc: 20 93 a9 04 sts 0x04A9, r18
127e0: 0f 2e mov r0, r31
127e2: f4 e2 ldi r31, 0x24 ; 36
127e4: bf 2e mov r11, r31
127e6: f0 2d mov r31, r0
 
void ProcessSBus(void)
{
static unsigned char load = 0;
unsigned char bitmask8 = 1, sbyte = 2, i, index = 1, process;
unsigned int bitmask11 = 256;
127e8: 20 e0 ldi r18, 0x00 ; 0
127ea: 31 e0 ldi r19, 0x01 ; 1
}
 
void ProcessSBus(void)
{
static unsigned char load = 0;
unsigned char bitmask8 = 1, sbyte = 2, i, index = 1, process;
127ec: aa 24 eor r10, r10
127ee: a3 94 inc r10
{
if(SenderOkay < 200) SenderOkay += 20; else SenderOkay = 200;
}
signal = sBusBuffer[1];
if(!load--) { process = (16*11 - 8); load = 2;} else process = (4*11 - 8); // lowers the processor load
for(i = 0; i < process; i++) // collect the single bits
127f0: d1 2c mov r13, r1
}
 
void ProcessSBus(void)
{
static unsigned char load = 0;
unsigned char bitmask8 = 1, sbyte = 2, i, index = 1, process;
127f2: 68 94 set
127f4: cc 24 eor r12, r12
127f6: c1 f8 bld r12, 1
127f8: 41 e0 ldi r20, 0x01 ; 1
{
if(sBusBuffer[sbyte] & bitmask8) signal |= bitmask11;
bitmask8 *= 2;
if(!bitmask8)
{
bitmask8 = 1;
127fa: 99 24 eor r9, r9
127fc: 93 94 inc r9
}
bitmask11 *= 2;
if(bitmask11 == 2048)
{
bitmask11 = 1;
signal = (signal-1024) / 5; // the resolution is higher than required
127fe: 05 e0 ldi r16, 0x05 ; 5
12800: 10 e0 ldi r17, 0x00 ; 0
if(tmp > signal+1) tmp--; else
if(tmp < signal-1) tmp++;
if(SenderOkay >= 195) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
else PPM_diff[index] = 0;
PPM_in[index] = tmp;
signal = 0;
12802: 81 2c mov r8, r1
12804: 71 2c mov r7, r1
sbyte++;
}
bitmask11 *= 2;
if(bitmask11 == 2048)
{
bitmask11 = 1;
12806: 66 24 eor r6, r6
12808: 63 94 inc r6
1280a: 51 2c mov r5, r1
signal = (signal-1024) / 5; // the resolution is higher than required
tmp = (3 * (PPM_in[index]) + signal) / 4;
if(tmp > signal+1) tmp--; else
if(tmp < signal-1) tmp++;
if(SenderOkay >= 195) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
1280c: 0f 2e mov r0, r31
1280e: f3 e0 ldi r31, 0x03 ; 3
12810: ef 2e mov r14, r31
12812: f1 2c mov r15, r1
12814: f0 2d mov r31, r0
12816: 69 cf rjmp .-302 ; 0x126ea <ProcessSBus+0x84>
}
}
NewPpmData = 0; // Null bedeutet: Neue Daten
}
NewSBusData = 0;
}
12818: df 91 pop r29
1281a: cf 91 pop r28
1281c: 1f 91 pop r17
1281e: 0f 91 pop r16
12820: ff 90 pop r15
12822: ef 90 pop r14
12824: df 90 pop r13
12826: cf 90 pop r12
12828: bf 90 pop r11
1282a: af 90 pop r10
1282c: 9f 90 pop r9
1282e: 8f 90 pop r8
12830: 7f 90 pop r7
12832: 6f 90 pop r6
12834: 5f 90 pop r5
12836: 08 95 ret
 
00012838 <SpektrumUartInit>:
 
//############################################################################
// USART1 initialisation from killagreg
void SpektrumUartInit(void)
//############################################################################
{
12838: cf 93 push r28
1283a: df 93 push r29
// -- Start of USART1 initialisation for Spekturm seriell-mode
// USART1 Control and Status Register A, B, C and baud rate register
uint8_t sreg = SREG;
1283c: 9f b7 in r25, 0x3f ; 63
uint16_t ubrr = (uint16_t) ((uint32_t) SYSCLK/(8 * 115200) - 1);
// disable all interrupts before reconfiguration
cli();
1283e: f8 94 cli
// disable RX-Interrupt
UCSR1B &= ~(1 << RXCIE1);
12840: a9 ec ldi r26, 0xC9 ; 201
12842: b0 e0 ldi r27, 0x00 ; 0
12844: 8c 91 ld r24, X
12846: 8f 77 andi r24, 0x7F ; 127
12848: 8c 93 st X, r24
// disable TX-Interrupt
UCSR1B &= ~(1 << TXCIE1);
1284a: 8c 91 ld r24, X
1284c: 8f 7b andi r24, 0xBF ; 191
1284e: 8c 93 st X, r24
// disable DRE-Interrupt
UCSR1B &= ~(1 << UDRIE1);
12850: 8c 91 ld r24, X
12852: 8f 7d andi r24, 0xDF ; 223
12854: 8c 93 st X, r24
PORTD |= (1 << PORTD3);
DDRD |= (1 << DDD3);
*/
// USART0 Baud Rate Register
// set clock divider
UBRR1H = (uint8_t)(ubrr>>8);
12856: 10 92 cd 00 sts 0x00CD, r1
UBRR1L = (uint8_t)ubrr;
1285a: 84 e1 ldi r24, 0x14 ; 20
1285c: 80 93 cc 00 sts 0x00CC, r24
// enable double speed operation
UCSR1A |= (1 << U2X1);
12860: c8 ec ldi r28, 0xC8 ; 200
12862: d0 e0 ldi r29, 0x00 ; 0
12864: 88 81 ld r24, Y
12866: 82 60 ori r24, 0x02 ; 2
12868: 88 83 st Y, r24
// enable receiver and transmitter
//UCSR1B = (1<<RXEN1)|(1<<TXEN1);
 
UCSR1B = (1<<RXEN1);
1286a: 80 e1 ldi r24, 0x10 ; 16
1286c: 8c 93 st X, r24
// set asynchronous mode
UCSR1C &= ~(1 << UMSEL11);
1286e: ea ec ldi r30, 0xCA ; 202
12870: f0 e0 ldi r31, 0x00 ; 0
12872: 80 81 ld r24, Z
12874: 8f 77 andi r24, 0x7F ; 127
12876: 80 83 st Z, r24
UCSR1C &= ~(1 << UMSEL10);
12878: 80 81 ld r24, Z
1287a: 8f 7b andi r24, 0xBF ; 191
1287c: 80 83 st Z, r24
// no parity
UCSR1C &= ~(1 << UPM11);
1287e: 80 81 ld r24, Z
12880: 8f 7d andi r24, 0xDF ; 223
12882: 80 83 st Z, r24
UCSR1C &= ~(1 << UPM10);
12884: 80 81 ld r24, Z
12886: 8f 7e andi r24, 0xEF ; 239
12888: 80 83 st Z, r24
// 1 stop bit
UCSR1C &= ~(1 << USBS1);
1288a: 80 81 ld r24, Z
1288c: 87 7f andi r24, 0xF7 ; 247
1288e: 80 83 st Z, r24
// 8-bit
UCSR1B &= ~(1 << UCSZ12);
12890: 8c 91 ld r24, X
12892: 8b 7f andi r24, 0xFB ; 251
12894: 8c 93 st X, r24
UCSR1C |= (1 << UCSZ11);
12896: 80 81 ld r24, Z
12898: 84 60 ori r24, 0x04 ; 4
1289a: 80 83 st Z, r24
UCSR1C |= (1 << UCSZ10);
1289c: 80 81 ld r24, Z
1289e: 82 60 ori r24, 0x02 ; 2
128a0: 80 83 st Z, r24
// flush receive buffer explicit
while(UCSR1A & (1<<RXC1)) UDR1;
128a2: 88 81 ld r24, Y
128a4: 88 23 and r24, r24
128a6: 44 f4 brge .+16 ; 0x128b8 <SpektrumUartInit+0x80>
128a8: ae ec ldi r26, 0xCE ; 206
128aa: b0 e0 ldi r27, 0x00 ; 0
128ac: e8 ec ldi r30, 0xC8 ; 200
128ae: f0 e0 ldi r31, 0x00 ; 0
128b0: 8c 91 ld r24, X
128b2: 80 81 ld r24, Z
128b4: 88 23 and r24, r24
128b6: e4 f3 brlt .-8 ; 0x128b0 <SpektrumUartInit+0x78>
// enable RX-interrupts at the end
UCSR1B |= (1 << RXCIE1);
128b8: e9 ec ldi r30, 0xC9 ; 201
128ba: f0 e0 ldi r31, 0x00 ; 0
128bc: 80 81 ld r24, Z
128be: 80 68 ori r24, 0x80 ; 128
128c0: 80 83 st Z, r24
// -- End of USART1 initialisation
// restore global interrupt flags
SREG = sreg;
128c2: 9f bf out 0x3f, r25 ; 63
return;
}
128c4: df 91 pop r29
128c6: cf 91 pop r28
128c8: 08 95 ret
 
000128ca <SpektrumParser>:
 
//############################################################################
// Wird im UART-Interrupt aufgerufen
//############################################################################
void SpektrumParser(unsigned char c)
{
128ca: cf 93 push r28
128cc: df 93 push r29
static unsigned char Sync=0, FrameCnt=0, ByteHigh=0, ReSync=1, Frame2=0;
unsigned int Channel, index = 0;
signed int signal = 0, tmp;
int bCheckDelay;
// c = UDR1; // get data byte
if(ReSync == 1)
128ce: 90 91 94 02 lds r25, 0x0294
128d2: 91 30 cpi r25, 0x01 ; 1
128d4: 61 f4 brne .+24 ; 0x128ee <SpektrumParser+0x24>
{
// wait for beginning of new frame
ReSync = 0;
128d6: 10 92 94 02 sts 0x0294, r1
SpektrumTimer = MIN_FRAMEGAP;
128da: 84 e4 ldi r24, 0x44 ; 68
128dc: 80 93 b0 04 sts 0x04B0, r24
FrameCnt = 0;
128e0: 10 92 af 04 sts 0x04AF, r1
Sync = 0;
128e4: 10 92 ae 04 sts 0x04AE, r1
ByteHigh = 0;
128e8: 10 92 ad 04 sts 0x04AD, r1
128ec: 43 c1 rjmp .+646 ; 0x12b74 <SpektrumParser+0x2aa>
}
else
{
if(!SpektrumTimer) bCheckDelay = 1; else bCheckDelay = 0;//CheckDelay(FrameTimer);
128ee: 41 e0 ldi r20, 0x01 ; 1
128f0: 90 e0 ldi r25, 0x00 ; 0
128f2: 20 91 b0 04 lds r18, 0x04B0
128f6: 21 11 cpse r18, r1
128f8: 40 e0 ldi r20, 0x00 ; 0
128fa: 24 2f mov r18, r20
128fc: 39 2f mov r19, r25
if ( Sync == 0 )
128fe: 90 91 ae 04 lds r25, 0x04AE
12902: 91 11 cpse r25, r1
12904: 18 c0 rjmp .+48 ; 0x12936 <SpektrumParser+0x6c>
{
if(bCheckDelay)
12906: 23 2b or r18, r19
12908: 61 f0 breq .+24 ; 0x12922 <SpektrumParser+0x58>
{
// nach einer Pause von mind. 7ms erstes Sync-Character gefunden
// Zeichen ignorieren, da Bedeutung unbekannt
Sync = 1;
1290a: 81 e0 ldi r24, 0x01 ; 1
1290c: 80 93 ae 04 sts 0x04AE, r24
FrameCnt ++;
12910: 80 91 af 04 lds r24, 0x04AF
12914: 8f 5f subi r24, 0xFF ; 255
12916: 80 93 af 04 sts 0x04AF, r24
SpektrumTimer = MAX_BYTEGAP;
1291a: 83 e0 ldi r24, 0x03 ; 3
1291c: 80 93 b0 04 sts 0x04B0, r24
12920: 12 c1 rjmp .+548 ; 0x12b46 <SpektrumParser+0x27c>
}
else
{
// Zeichen kam vor Ablauf der 7ms Sync-Pause
// warten auf erstes Sync-Zeichen
SpektrumTimer = MIN_FRAMEGAP;
12922: 84 e4 ldi r24, 0x44 ; 68
12924: 80 93 b0 04 sts 0x04B0, r24
FrameCnt = 0;
12928: 10 92 af 04 sts 0x04AF, r1
Sync = 0;
1292c: 10 92 ae 04 sts 0x04AE, r1
ByteHigh = 0;
12930: 10 92 ad 04 sts 0x04AD, r1
12934: 08 c1 rjmp .+528 ; 0x12b46 <SpektrumParser+0x27c>
}
}
else if((Sync == 1) && !bCheckDelay)
12936: 91 30 cpi r25, 0x01 ; 1
12938: 79 f4 brne .+30 ; 0x12958 <SpektrumParser+0x8e>
1293a: 23 2b or r18, r19
1293c: 09 f0 breq .+2 ; 0x12940 <SpektrumParser+0x76>
1293e: f9 c0 rjmp .+498 ; 0x12b32 <SpektrumParser+0x268>
{
// zweites Sync-Character ignorieren, Bedeutung unbekannt
Sync = 2;
12940: 82 e0 ldi r24, 0x02 ; 2
12942: 80 93 ae 04 sts 0x04AE, r24
FrameCnt ++;
12946: 80 91 af 04 lds r24, 0x04AF
1294a: 8f 5f subi r24, 0xFF ; 255
1294c: 80 93 af 04 sts 0x04AF, r24
SpektrumTimer = MAX_BYTEGAP;
12950: 83 e0 ldi r24, 0x03 ; 3
12952: 80 93 b0 04 sts 0x04B0, r24
12956: f7 c0 rjmp .+494 ; 0x12b46 <SpektrumParser+0x27c>
}
else if((Sync == 2) && !bCheckDelay)
12958: 92 30 cpi r25, 0x02 ; 2
1295a: d9 f4 brne .+54 ; 0x12992 <SpektrumParser+0xc8>
1295c: 23 2b or r18, r19
1295e: 09 f0 breq .+2 ; 0x12962 <SpektrumParser+0x98>
12960: e8 c0 rjmp .+464 ; 0x12b32 <SpektrumParser+0x268>
{
SpektrumTimer = MAX_BYTEGAP;
12962: 93 e0 ldi r25, 0x03 ; 3
12964: 90 93 b0 04 sts 0x04B0, r25
// Datenbyte high
ByteHigh = c;
12968: 80 93 ad 04 sts 0x04AD, r24
if (FrameCnt == 2)
1296c: 90 91 af 04 lds r25, 0x04AF
12970: 92 30 cpi r25, 0x02 ; 2
12972: 41 f4 brne .+16 ; 0x12984 <SpektrumParser+0xba>
{
// is 1st Byte of Channel-data
// Frame 1 with Channel 1-7 comming next
Frame2 = 0;
if(ByteHigh & 0x80)
12974: 88 23 and r24, r24
12976: 1c f0 brlt .+6 ; 0x1297e <SpektrumParser+0xb4>
ByteHigh = c;
if (FrameCnt == 2)
{
// is 1st Byte of Channel-data
// Frame 1 with Channel 1-7 comming next
Frame2 = 0;
12978: 10 92 ac 04 sts 0x04AC, r1
1297c: 03 c0 rjmp .+6 ; 0x12984 <SpektrumParser+0xba>
if(ByteHigh & 0x80)
{
// DS9: Frame 2 with Channel 8-9 comming next
Frame2 = 1;
1297e: 81 e0 ldi r24, 0x01 ; 1
12980: 80 93 ac 04 sts 0x04AC, r24
}
}
Sync = 3;
12984: 83 e0 ldi r24, 0x03 ; 3
12986: 80 93 ae 04 sts 0x04AE, r24
FrameCnt ++;
1298a: 9f 5f subi r25, 0xFF ; 255
1298c: 90 93 af 04 sts 0x04AF, r25
12990: da c0 rjmp .+436 ; 0x12b46 <SpektrumParser+0x27c>
}
else if((Sync == 3) && !bCheckDelay)
12992: 93 30 cpi r25, 0x03 ; 3
12994: 09 f0 breq .+2 ; 0x12998 <SpektrumParser+0xce>
12996: cd c0 rjmp .+410 ; 0x12b32 <SpektrumParser+0x268>
12998: 23 2b or r18, r19
1299a: 09 f0 breq .+2 ; 0x1299e <SpektrumParser+0xd4>
1299c: ca c0 rjmp .+404 ; 0x12b32 <SpektrumParser+0x268>
{
// Datenbyte low
// High-Byte for next channel comes next
SpektrumTimer = MAX_BYTEGAP;
1299e: 90 93 b0 04 sts 0x04B0, r25
Sync = 2;
129a2: 92 e0 ldi r25, 0x02 ; 2
129a4: 90 93 ae 04 sts 0x04AE, r25
FrameCnt ++;
129a8: 90 91 af 04 lds r25, 0x04AF
129ac: 9f 5f subi r25, 0xFF ; 255
129ae: 90 93 af 04 sts 0x04AF, r25
Channel = ((unsigned int)ByteHigh << 8) | c;
129b2: 20 91 ad 04 lds r18, 0x04AD
129b6: 90 e0 ldi r25, 0x00 ; 0
129b8: 92 2b or r25, r18
if(EE_Parameter.Receiver == RECEIVER_SPEKTRUM)
129ba: 30 91 65 05 lds r19, 0x0565
129be: 31 30 cpi r19, 0x01 ; 1
129c0: 59 f4 brne .+22 ; 0x129d8 <SpektrumParser+0x10e>
{
signal = Channel & 0x3ff;
129c2: 93 70 andi r25, 0x03 ; 3
signal -= 0x200; // Offset, range 0x000..0x3ff?
129c4: 92 50 subi r25, 0x02 ; 2
signal = signal/3; // scaling to fit PPM resolution
129c6: 63 e0 ldi r22, 0x03 ; 3
129c8: 70 e0 ldi r23, 0x00 ; 0
129ca: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
index = (ByteHigh >> 2) & 0x0f;
129ce: 26 95 lsr r18
129d0: 26 95 lsr r18
129d2: 2f 70 andi r18, 0x0F ; 15
129d4: 30 e0 ldi r19, 0x00 ; 0
129d6: 1c c0 rjmp .+56 ; 0x12a10 <SpektrumParser+0x146>
}
else
if(EE_Parameter.Receiver == RECEIVER_SPEKTRUM_HI_RES)
129d8: 32 30 cpi r19, 0x02 ; 2
129da: 61 f4 brne .+24 ; 0x129f4 <SpektrumParser+0x12a>
{
signal = Channel & 0x7ff;
129dc: 97 70 andi r25, 0x07 ; 7
signal -= 0x400; // Offset, range 0x000..0x7ff?
129de: 94 50 subi r25, 0x04 ; 4
signal = signal/6; // scaling to fit PPM resolution
129e0: 66 e0 ldi r22, 0x06 ; 6
129e2: 70 e0 ldi r23, 0x00 ; 0
129e4: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
index = (ByteHigh >> 3) & 0x0f;
129e8: 26 95 lsr r18
129ea: 26 95 lsr r18
129ec: 26 95 lsr r18
129ee: 2f 70 andi r18, 0x0F ; 15
129f0: 30 e0 ldi r19, 0x00 ; 0
129f2: 0e c0 rjmp .+28 ; 0x12a10 <SpektrumParser+0x146>
}
else
//if(EE_Parameter.Receiver == RECEIVER_SPEKTRUM_LOW_RES)
{
signal = Channel & 0x3ff;
129f4: 93 70 andi r25, 0x03 ; 3
signal -= 360; // Offset, range 0x000..0x3ff?
129f6: 88 56 subi r24, 0x68 ; 104
129f8: 91 40 sbci r25, 0x01 ; 1
signal = signal/2; // scaling to fit PPM resolution
129fa: bc 01 movw r22, r24
129fc: 99 23 and r25, r25
129fe: 14 f4 brge .+4 ; 0x12a04 <SpektrumParser+0x13a>
12a00: 6f 5f subi r22, 0xFF ; 255
12a02: 7f 4f sbci r23, 0xFF ; 255
12a04: 75 95 asr r23
12a06: 67 95 ror r22
index = (ByteHigh >> 2) & 0x0f;
12a08: 26 95 lsr r18
12a0a: 26 95 lsr r18
12a0c: 2f 70 andi r18, 0x0F ; 15
12a0e: 30 e0 ldi r19, 0x00 ; 0
}
 
index++;
12a10: 2f 5f subi r18, 0xFF ; 255
12a12: 3f 4f sbci r19, 0xFF ; 255
if(index < 13)
12a14: 2d 30 cpi r18, 0x0D ; 13
12a16: 31 05 cpc r19, r1
12a18: 08 f0 brcs .+2 ; 0x12a1c <SpektrumParser+0x152>
12a1a: 84 c0 rjmp .+264 ; 0x12b24 <SpektrumParser+0x25a>
// Stabiles Signal
#if defined (RECEIVER_SPEKTRUM_DX7EXP) || defined (RECEIVER_SPEKTRUM_DX8EXP)
if (index == 2) index = 4; // Analog channel reassigment (2 <-> 4) for logical numbering (1,2,3,4)
else if (index == 4) index = 2;
#endif
if(abs(signal - PPM_in[index]) < 6)
12a1c: f9 01 movw r30, r18
12a1e: ee 0f add r30, r30
12a20: ff 1f adc r31, r31
12a22: ef 5c subi r30, 0xCF ; 207
12a24: f7 4f sbci r31, 0xF7 ; 247
12a26: 80 81 ld r24, Z
12a28: 91 81 ldd r25, Z+1 ; 0x01
12a2a: ab 01 movw r20, r22
12a2c: 48 1b sub r20, r24
12a2e: 59 0b sbc r21, r25
12a30: ca 01 movw r24, r20
12a32: 99 23 and r25, r25
12a34: 24 f4 brge .+8 ; 0x12a3e <SpektrumParser+0x174>
12a36: 88 27 eor r24, r24
12a38: 99 27 eor r25, r25
12a3a: 84 1b sub r24, r20
12a3c: 95 0b sbc r25, r21
12a3e: 06 97 sbiw r24, 0x06 ; 6
12a40: 04 f5 brge .+64 ; 0x12a82 <SpektrumParser+0x1b8>
{
if(EE_Parameter.FailsafeChannel == 0 || PPM_in[EE_Parameter.FailsafeChannel] < 100) // forces Failsafe if the receiver doesn't have 'signal loss' on Failsafe
12a42: e0 91 a8 05 lds r30, 0x05A8
12a46: ee 23 and r30, r30
12a48: 51 f0 breq .+20 ; 0x12a5e <SpektrumParser+0x194>
12a4a: f0 e0 ldi r31, 0x00 ; 0
12a4c: ee 0f add r30, r30
12a4e: ff 1f adc r31, r31
12a50: ef 5c subi r30, 0xCF ; 207
12a52: f7 4f sbci r31, 0xF7 ; 247
12a54: 80 81 ld r24, Z
12a56: 91 81 ldd r25, Z+1 ; 0x01
12a58: 84 36 cpi r24, 0x64 ; 100
12a5a: 91 05 cpc r25, r1
12a5c: 94 f4 brge .+36 ; 0x12a82 <SpektrumParser+0x1b8>
{
if(SenderOkay < 200) SenderOkay += 10;
12a5e: 80 91 04 04 lds r24, 0x0404
12a62: 88 3c cpi r24, 0xC8 ; 200
12a64: 30 f4 brcc .+12 ; 0x12a72 <SpektrumParser+0x1a8>
12a66: 80 91 04 04 lds r24, 0x0404
12a6a: 86 5f subi r24, 0xF6 ; 246
12a6c: 80 93 04 04 sts 0x0404, r24
12a70: 08 c0 rjmp .+16 ; 0x12a82 <SpektrumParser+0x1b8>
else
{
SenderOkay = 200;
12a72: 88 ec ldi r24, 0xC8 ; 200
12a74: 80 93 04 04 sts 0x0404, r24
TIMSK1 &= ~_BV(ICIE1); // disable PPM-Input
12a78: ef e6 ldi r30, 0x6F ; 111
12a7a: f0 e0 ldi r31, 0x00 ; 0
12a7c: 80 81 ld r24, Z
12a7e: 8f 7d andi r24, 0xDF ; 223
12a80: 80 83 st Z, r24
}
}
}
tmp = (3 * (PPM_in[index]) + signal) / 4;
12a82: f9 01 movw r30, r18
12a84: ee 0f add r30, r30
12a86: ff 1f adc r31, r31
12a88: ef 5c subi r30, 0xCF ; 207
12a8a: f7 4f sbci r31, 0xF7 ; 247
12a8c: 80 81 ld r24, Z
12a8e: 91 81 ldd r25, Z+1 ; 0x01
12a90: fc 01 movw r30, r24
12a92: ee 0f add r30, r30
12a94: ff 1f adc r31, r31
12a96: e8 0f add r30, r24
12a98: f9 1f adc r31, r25
12a9a: e6 0f add r30, r22
12a9c: f7 1f adc r31, r23
12a9e: ff 23 and r31, r31
12aa0: 0c f4 brge .+2 ; 0x12aa4 <SpektrumParser+0x1da>
12aa2: 33 96 adiw r30, 0x03 ; 3
12aa4: f5 95 asr r31
12aa6: e7 95 ror r30
12aa8: f5 95 asr r31
12aaa: e7 95 ror r30
if(tmp > signal+1) tmp--; else
12aac: cb 01 movw r24, r22
12aae: 01 96 adiw r24, 0x01 ; 1
12ab0: 8e 17 cp r24, r30
12ab2: 9f 07 cpc r25, r31
12ab4: 14 f4 brge .+4 ; 0x12aba <SpektrumParser+0x1f0>
12ab6: 31 97 sbiw r30, 0x01 ; 1
12ab8: 06 c0 rjmp .+12 ; 0x12ac6 <SpektrumParser+0x1fc>
if(tmp < signal-1) tmp++;
12aba: 61 50 subi r22, 0x01 ; 1
12abc: 71 09 sbc r23, r1
12abe: e6 17 cp r30, r22
12ac0: f7 07 cpc r31, r23
12ac2: 0c f4 brge .+2 ; 0x12ac6 <SpektrumParser+0x1fc>
12ac4: 31 96 adiw r30, 0x01 ; 1
else if (index == 7) s_update(7,signal); // R Trim (CH7)
else if (index == 5) s_update(8,signal); // AUX2 (CH8)
else if (index == 8) s_update(11,signal); // AUX3 (CH11)
 
#else
if(SenderOkay >= 180) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
12ac6: 80 91 04 04 lds r24, 0x0404
12aca: 84 3b cpi r24, 0xB4 ; 180
12acc: d0 f0 brcs .+52 ; 0x12b02 <SpektrumParser+0x238>
12ace: e9 01 movw r28, r18
12ad0: cc 0f add r28, r28
12ad2: dd 1f adc r29, r29
12ad4: de 01 movw r26, r28
12ad6: af 5c subi r26, 0xCF ; 207
12ad8: b7 4f sbci r27, 0xF7 ; 247
12ada: 8d 91 ld r24, X+
12adc: 9c 91 ld r25, X
12ade: af 01 movw r20, r30
12ae0: 48 1b sub r20, r24
12ae2: 59 0b sbc r21, r25
12ae4: ca 01 movw r24, r20
12ae6: 63 e0 ldi r22, 0x03 ; 3
12ae8: 70 e0 ldi r23, 0x00 ; 0
12aea: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
12aee: cb 01 movw r24, r22
12af0: 88 0f add r24, r24
12af2: 99 1f adc r25, r25
12af4: 68 0f add r22, r24
12af6: 79 1f adc r23, r25
12af8: c9 58 subi r28, 0x89 ; 137
12afa: d7 4f sbci r29, 0xF7 ; 247
12afc: 79 83 std Y+1, r23 ; 0x01
12afe: 68 83 st Y, r22
12b00: 08 c0 rjmp .+16 ; 0x12b12 <SpektrumParser+0x248>
else PPM_diff[index] = 0;
12b02: d9 01 movw r26, r18
12b04: aa 0f add r26, r26
12b06: bb 1f adc r27, r27
12b08: a9 58 subi r26, 0x89 ; 137
12b0a: b7 4f sbci r27, 0xF7 ; 247
12b0c: 11 96 adiw r26, 0x01 ; 1
12b0e: 1c 92 st X, r1
12b10: 1e 92 st -X, r1
PPM_in[index] = tmp;
12b12: d9 01 movw r26, r18
12b14: aa 0f add r26, r26
12b16: bb 1f adc r27, r27
12b18: af 5c subi r26, 0xCF ; 207
12b1a: b7 4f sbci r27, 0xF7 ; 247
12b1c: 11 96 adiw r26, 0x01 ; 1
12b1e: fc 93 st X, r31
12b20: ee 93 st -X, r30
12b22: 11 c0 rjmp .+34 ; 0x12b46 <SpektrumParser+0x27c>
#endif
}
else if(index > 17) ReSync = 1; // hier stimmt was nicht: neu synchronisieren
12b24: 22 31 cpi r18, 0x12 ; 18
12b26: 31 05 cpc r19, r1
12b28: 70 f0 brcs .+28 ; 0x12b46 <SpektrumParser+0x27c>
12b2a: 81 e0 ldi r24, 0x01 ; 1
12b2c: 80 93 94 02 sts 0x0294, r24
12b30: 0a c0 rjmp .+20 ; 0x12b46 <SpektrumParser+0x27c>
}
else
{
// hier stimmt was nicht: neu synchronisieren
ReSync = 1;
12b32: 81 e0 ldi r24, 0x01 ; 1
12b34: 80 93 94 02 sts 0x0294, r24
FrameCnt = 0;
12b38: 10 92 af 04 sts 0x04AF, r1
Frame2 = 0;
12b3c: 10 92 ac 04 sts 0x04AC, r1
// new frame next, nach fruehestens 7ms erwartet
SpektrumTimer = MIN_FRAMEGAP;
12b40: 84 e4 ldi r24, 0x44 ; 68
12b42: 80 93 b0 04 sts 0x04B0, r24
}
 
// 16 Bytes eingetroffen -> Komplett
if(FrameCnt >= 16)
12b46: 80 91 af 04 lds r24, 0x04AF
12b4a: 80 31 cpi r24, 0x10 ; 16
12b4c: 98 f0 brcs .+38 ; 0x12b74 <SpektrumParser+0x2aa>
{
// Frame complete
if(Frame2 == 0)
12b4e: 80 91 ac 04 lds r24, 0x04AC
12b52: 81 11 cpse r24, r1
12b54: 06 c0 rjmp .+12 ; 0x12b62 <SpektrumParser+0x298>
{
// Null bedeutet: Neue Daten
// nur beim ersten Frame (CH 0-7) setzen
if(!ReSync) NewPpmData = 0;
12b56: 80 91 94 02 lds r24, 0x0294
12b5a: 81 11 cpse r24, r1
12b5c: 02 c0 rjmp .+4 ; 0x12b62 <SpektrumParser+0x298>
12b5e: 10 92 93 02 sts 0x0293, r1
}
FrameCnt = 0;
12b62: 10 92 af 04 sts 0x04AF, r1
Frame2 = 0;
12b66: 10 92 ac 04 sts 0x04AC, r1
Sync = 0;
12b6a: 10 92 ae 04 sts 0x04AE, r1
SpektrumTimer = MIN_FRAMEGAP;
12b6e: 84 e4 ldi r24, 0x44 ; 68
12b70: 80 93 b0 04 sts 0x04B0, r24
}
}
}
12b74: df 91 pop r29
12b76: cf 91 pop r28
12b78: 08 95 ret
 
00012b7a <SPI_MasterInit>:
#ifdef USE_SPI_COMMUNICATION
 
//------------------------------------------------------
void SPI_MasterInit(void)
{
DDR_SPI |= (1<<DD_MOSI)|(1<<DD_SCK); // Set MOSI and SCK output, all others input
12b7a: 84 b1 in r24, 0x04 ; 4
12b7c: 80 6a ori r24, 0xA0 ; 160
12b7e: 84 b9 out 0x04, r24 ; 4
SLAVE_SELECT_DDR_PORT |= (1 << SPI_SLAVE_SELECT);
12b80: 3d 9a sbi 0x07, 5 ; 7
 
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR1)|(0<<SPR0)|(0<<SPIE); // Enable SPI, Master, set clock rate fck/64
12b82: 82 e5 ldi r24, 0x52 ; 82
12b84: 8c bd out 0x2c, r24 ; 44
SPSR = 0;//(1<<SPI2X);
12b86: 1d bc out 0x2d, r1 ; 45
 
SLAVE_SELECT_PORT |= (1 << SPI_SLAVE_SELECT);
12b88: 45 9a sbi 0x08, 5 ; 8
SPITransferCompleted = 1;
12b8a: 81 e0 ldi r24, 0x01 ; 1
12b8c: 80 93 d6 08 sts 0x08D6, r24
 
//SPDR = 0x00; // dummy write
 
ToNaviCtrl.Sync1 = 0xAA;
12b90: 8a ea ldi r24, 0xAA ; 170
12b92: 80 93 e7 08 sts 0x08E7, r24
ToNaviCtrl.Sync2 = 0x83;
12b96: 83 e8 ldi r24, 0x83 ; 131
12b98: 80 93 e8 08 sts 0x08E8, r24
 
ToNaviCtrl.Command = SPI_FCCMD_USER;
12b9c: 8a e0 ldi r24, 0x0A ; 10
12b9e: 80 93 e9 08 sts 0x08E9, r24
ToNaviCtrl.IntegralNick = 0;
12ba2: 10 92 eb 08 sts 0x08EB, r1
12ba6: 10 92 ea 08 sts 0x08EA, r1
ToNaviCtrl.IntegralRoll = 0;
12baa: 10 92 ed 08 sts 0x08ED, r1
12bae: 10 92 ec 08 sts 0x08EC, r1
FromNaviCtrl_Value.SerialDataOkay = 0;
12bb2: 10 92 4f 09 sts 0x094F, r1
SPI_RxDataValid = 0;
12bb6: 10 92 0b 09 sts 0x090B, r1
12bba: 08 95 ret
 
00012bbc <SPI_TransmitByte>:
{
static unsigned char SPI_RXState = 0;
unsigned char rxdata;
static unsigned char rxchksum;
 
if (SPITransferCompleted) return;
12bbc: 80 91 d6 08 lds r24, 0x08D6
12bc0: 81 11 cpse r24, r1
12bc2: 79 c0 rjmp .+242 ; 0x12cb6 <SPI_TransmitByte+0xfa>
if (!(SPSR & (1 << SPIF))) return;
12bc4: 0d b4 in r0, 0x2d ; 45
12bc6: 07 fe sbrs r0, 7
12bc8: 76 c0 rjmp .+236 ; 0x12cb6 <SPI_TransmitByte+0xfa>
BytegapSPI = SPI_BYTEGAP;
12bca: 85 e0 ldi r24, 0x05 ; 5
12bcc: 80 93 cc 04 sts 0x04CC, r24
// _delay_us(30);
SLAVE_SELECT_PORT |= (1 << SPI_SLAVE_SELECT); // DeselectSlave
12bd0: 45 9a sbi 0x08, 5 ; 8
 
rxdata = SPDR;
12bd2: 9e b5 in r25, 0x2e ; 46
switch ( SPI_RXState)
12bd4: 80 91 b4 04 lds r24, 0x04B4
12bd8: 81 30 cpi r24, 0x01 ; 1
12bda: 71 f0 breq .+28 ; 0x12bf8 <SPI_TransmitByte+0x3c>
12bdc: 18 f0 brcs .+6 ; 0x12be4 <SPI_TransmitByte+0x28>
12bde: 82 30 cpi r24, 0x02 ; 2
12be0: c9 f0 breq .+50 ; 0x12c14 <SPI_TransmitByte+0x58>
12be2: 3f c0 rjmp .+126 ; 0x12c62 <SPI_TransmitByte+0xa6>
{
case 0:
SPI_RxBufferIndex = 0;
12be4: 10 92 0a 09 sts 0x090A, r1
rxchksum = rxdata;
12be8: 90 93 b3 04 sts 0x04B3, r25
if (rxdata == 0x81 ) { SPI_RXState = 1; } // 1. Syncbyte ok
12bec: 91 38 cpi r25, 0x81 ; 129
12bee: c9 f5 brne .+114 ; 0x12c62 <SPI_TransmitByte+0xa6>
12bf0: 81 e0 ldi r24, 0x01 ; 1
12bf2: 80 93 b4 04 sts 0x04B4, r24
12bf6: 35 c0 rjmp .+106 ; 0x12c62 <SPI_TransmitByte+0xa6>
 
break;
 
case 1:
if (rxdata == 0x55) { rxchksum += rxdata; SPI_RXState = 2; } // 2. Syncbyte ok
12bf8: 95 35 cpi r25, 0x55 ; 85
12bfa: 49 f4 brne .+18 ; 0x12c0e <SPI_TransmitByte+0x52>
12bfc: 80 91 b3 04 lds r24, 0x04B3
12c00: 8b 5a subi r24, 0xAB ; 171
12c02: 80 93 b3 04 sts 0x04B3, r24
12c06: 82 e0 ldi r24, 0x02 ; 2
12c08: 80 93 b4 04 sts 0x04B4, r24
12c0c: 2a c0 rjmp .+84 ; 0x12c62 <SPI_TransmitByte+0xa6>
else SPI_RXState = 0;
12c0e: 10 92 b4 04 sts 0x04B4, r1
12c12: 27 c0 rjmp .+78 ; 0x12c62 <SPI_TransmitByte+0xa6>
break;
 
case 2:
SPI_Buffer[SPI_RxBufferIndex++]= rxdata; // get data
12c14: e0 91 0a 09 lds r30, 0x090A
12c18: 81 e0 ldi r24, 0x01 ; 1
12c1a: 8e 0f add r24, r30
12c1c: 80 93 0a 09 sts 0x090A, r24
12c20: f0 e0 ldi r31, 0x00 ; 0
12c22: e4 5d subi r30, 0xD4 ; 212
12c24: f6 4f sbci r31, 0xF6 ; 246
12c26: 90 83 st Z, r25
//DebugOut.Analog[19]++;
if (SPI_RxBufferIndex >= sizeof(FromNaviCtrl))
12c28: 80 32 cpi r24, 0x20 ; 32
12c2a: b0 f0 brcs .+44 ; 0x12c58 <SPI_TransmitByte+0x9c>
{
if (rxdata == rxchksum)
12c2c: 80 91 b3 04 lds r24, 0x04B3
12c30: 98 13 cpse r25, r24
12c32: 0d c0 rjmp .+26 ; 0x12c4e <SPI_TransmitByte+0x92>
{
unsigned char *ptr = (unsigned char *)&FromNaviCtrl;
memcpy(ptr, (unsigned char *) SPI_Buffer, sizeof(SPI_Buffer));
12c34: 80 e2 ldi r24, 0x20 ; 32
12c36: ec e2 ldi r30, 0x2C ; 44
12c38: f9 e0 ldi r31, 0x09 ; 9
12c3a: ac e0 ldi r26, 0x0C ; 12
12c3c: b9 e0 ldi r27, 0x09 ; 9
12c3e: 01 90 ld r0, Z+
12c40: 0d 92 st X+, r0
12c42: 8a 95 dec r24
12c44: e1 f7 brne .-8 ; 0x12c3e <SPI_TransmitByte+0x82>
SPI_RxDataValid = 1;
12c46: 81 e0 ldi r24, 0x01 ; 1
12c48: 80 93 0b 09 sts 0x090B, r24
12c4c: 02 c0 rjmp .+4 ; 0x12c52 <SPI_TransmitByte+0x96>
}
else
{
SPI_RxDataValid = 0;
12c4e: 10 92 0b 09 sts 0x090B, r1
}
SPI_RXState = 0;
12c52: 10 92 b4 04 sts 0x04B4, r1
12c56: 05 c0 rjmp .+10 ; 0x12c62 <SPI_TransmitByte+0xa6>
}
else rxchksum += rxdata;
12c58: 80 91 b3 04 lds r24, 0x04B3
12c5c: 98 0f add r25, r24
12c5e: 90 93 b3 04 sts 0x04B3, r25
break;
 
}
 
if (SPI_BufferIndex < sizeof(ToNaviCtrl))
12c62: 80 91 e6 08 lds r24, 0x08E6
12c66: 82 32 cpi r24, 0x22 ; 34
12c68: f0 f4 brcc .+60 ; 0x12ca6 <SPI_TransmitByte+0xea>
{
SLAVE_SELECT_PORT &= ~(1 << SPI_SLAVE_SELECT); // SelectSlave
12c6a: 45 98 cbi 0x08, 5 ; 8
...
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
SPDR = SPI_TX_Buffer[SPI_BufferIndex];
12c74: 80 91 e6 08 lds r24, 0x08E6
12c78: e0 91 df 08 lds r30, 0x08DF
12c7c: f0 91 e0 08 lds r31, 0x08E0
12c80: e8 0f add r30, r24
12c82: f1 1d adc r31, r1
12c84: 80 81 ld r24, Z
12c86: 8e bd out 0x2e, r24 ; 46
ToNaviCtrl.Chksum += SPI_TX_Buffer[SPI_BufferIndex];
12c88: e8 e0 ldi r30, 0x08 ; 8
12c8a: f9 e0 ldi r31, 0x09 ; 9
12c8c: 80 91 e6 08 lds r24, 0x08E6
12c90: a0 91 df 08 lds r26, 0x08DF
12c94: b0 91 e0 08 lds r27, 0x08E0
12c98: a8 0f add r26, r24
12c9a: b1 1d adc r27, r1
12c9c: 9c 91 ld r25, X
12c9e: 80 81 ld r24, Z
12ca0: 89 0f add r24, r25
12ca2: 80 83 st Z, r24
12ca4: 03 c0 rjmp .+6 ; 0x12cac <SPI_TransmitByte+0xf0>
}
else SPITransferCompleted = 1;
12ca6: 81 e0 ldi r24, 0x01 ; 1
12ca8: 80 93 d6 08 sts 0x08D6, r24
 
SPI_BufferIndex++;
12cac: 80 91 e6 08 lds r24, 0x08E6
12cb0: 8f 5f subi r24, 0xFF ; 255
12cb2: 80 93 e6 08 sts 0x08E6, r24
12cb6: 08 95 ret
 
00012cb8 <UpdateSPI_Buffer>:
}
 
 
//------------------------------------------------------
void UpdateSPI_Buffer(void)
{
12cb8: cf 92 push r12
12cba: df 92 push r13
12cbc: ef 92 push r14
12cbe: ff 92 push r15
12cc0: 0f 93 push r16
12cc2: 1f 93 push r17
signed int tmp;
static unsigned char motorindex, oldcommand = SPI_NCCMD_VERSION, slow_command;
ToNaviCtrl.IntegralNick = (int) (IntegralNick / (long)(EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
12cc4: c0 90 5a 05 lds r12, 0x055A
12cc8: d1 2c mov r13, r1
12cca: cc 0c add r12, r12
12ccc: dd 1c adc r13, r13
12cce: cc 0c add r12, r12
12cd0: dd 1c adc r13, r13
12cd2: ee 24 eor r14, r14
12cd4: d7 fc sbrc r13, 7
12cd6: e0 94 com r14
12cd8: fe 2c mov r15, r14
12cda: 60 91 42 04 lds r22, 0x0442
12cde: 70 91 43 04 lds r23, 0x0443
12ce2: 80 91 44 04 lds r24, 0x0444
12ce6: 90 91 45 04 lds r25, 0x0445
12cea: a7 01 movw r20, r14
12cec: 96 01 movw r18, r12
12cee: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
12cf2: 30 93 eb 08 sts 0x08EB, r19
12cf6: 20 93 ea 08 sts 0x08EA, r18
ToNaviCtrl.IntegralRoll = (int) (IntegralRoll / (long)(EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
12cfa: 60 91 3e 04 lds r22, 0x043E
12cfe: 70 91 3f 04 lds r23, 0x043F
12d02: 80 91 40 04 lds r24, 0x0440
12d06: 90 91 41 04 lds r25, 0x0441
12d0a: a7 01 movw r20, r14
12d0c: 96 01 movw r18, r12
12d0e: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
12d12: 30 93 ed 08 sts 0x08ED, r19
12d16: 20 93 ec 08 sts 0x08EC, r18
ToNaviCtrl.GyroCompass = (10 * ErsatzKompass) / GIER_GRAD_FAKTOR;
12d1a: 80 91 6e 06 lds r24, 0x066E
12d1e: 90 91 6f 06 lds r25, 0x066F
12d22: a0 91 70 06 lds r26, 0x0670
12d26: b0 91 71 06 lds r27, 0x0671
12d2a: 88 0f add r24, r24
12d2c: 99 1f adc r25, r25
12d2e: aa 1f adc r26, r26
12d30: bb 1f adc r27, r27
12d32: ac 01 movw r20, r24
12d34: bd 01 movw r22, r26
12d36: 44 0f add r20, r20
12d38: 55 1f adc r21, r21
12d3a: 66 1f adc r22, r22
12d3c: 77 1f adc r23, r23
12d3e: 44 0f add r20, r20
12d40: 55 1f adc r21, r21
12d42: 66 1f adc r22, r22
12d44: 77 1f adc r23, r23
12d46: 8c 01 movw r16, r24
12d48: 9d 01 movw r18, r26
12d4a: 04 0f add r16, r20
12d4c: 15 1f adc r17, r21
12d4e: 26 1f adc r18, r22
12d50: 37 1f adc r19, r23
12d52: c9 01 movw r24, r18
12d54: b8 01 movw r22, r16
12d56: 20 91 21 01 lds r18, 0x0121
12d5a: 30 91 22 01 lds r19, 0x0122
12d5e: 40 91 23 01 lds r20, 0x0123
12d62: 50 91 24 01 lds r21, 0x0124
12d66: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
12d6a: 30 93 f3 08 sts 0x08F3, r19
12d6e: 20 93 f2 08 sts 0x08F2, r18
ToNaviCtrl.GyroGier = (signed int) AdNeutralGier - AdWertGier;
12d72: e0 90 53 04 lds r14, 0x0453
12d76: f0 90 54 04 lds r15, 0x0454
12d7a: 80 91 61 03 lds r24, 0x0361
12d7e: 90 91 62 03 lds r25, 0x0362
12d82: 97 01 movw r18, r14
12d84: 28 1b sub r18, r24
12d86: 39 0b sbc r19, r25
12d88: 30 93 f9 08 sts 0x08F9, r19
12d8c: 20 93 f8 08 sts 0x08F8, r18
ToNaviCtrl.AccNick = ((int) ACC_AMPLIFY * (NaviAccNick / NaviCntAcc))/4;
12d90: 20 91 49 04 lds r18, 0x0449
12d94: 30 91 4a 04 lds r19, 0x044A
12d98: 80 91 39 06 lds r24, 0x0639
12d9c: 90 91 3a 06 lds r25, 0x063A
12da0: b9 01 movw r22, r18
12da2: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
12da6: cb 01 movw r24, r22
12da8: 88 0f add r24, r24
12daa: 99 1f adc r25, r25
12dac: 68 0f add r22, r24
12dae: 79 1f adc r23, r25
12db0: 66 0f add r22, r22
12db2: 77 1f adc r23, r23
12db4: cb 01 movw r24, r22
12db6: 99 23 and r25, r25
12db8: 0c f4 brge .+2 ; 0x12dbc <UpdateSPI_Buffer+0x104>
12dba: 03 96 adiw r24, 0x03 ; 3
12dbc: 95 95 asr r25
12dbe: 87 95 ror r24
12dc0: 95 95 asr r25
12dc2: 87 95 ror r24
12dc4: 90 93 ef 08 sts 0x08EF, r25
12dc8: 80 93 ee 08 sts 0x08EE, r24
ToNaviCtrl.AccRoll = ((int) ACC_AMPLIFY * (NaviAccRoll / NaviCntAcc))/4;
12dcc: 80 91 6a 06 lds r24, 0x066A
12dd0: 90 91 6b 06 lds r25, 0x066B
12dd4: b9 01 movw r22, r18
12dd6: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
12dda: cb 01 movw r24, r22
12ddc: 88 0f add r24, r24
12dde: 99 1f adc r25, r25
12de0: 68 0f add r22, r24
12de2: 79 1f adc r23, r25
12de4: 66 0f add r22, r22
12de6: 77 1f adc r23, r23
12de8: cb 01 movw r24, r22
12dea: 99 23 and r25, r25
12dec: 0c f4 brge .+2 ; 0x12df0 <UpdateSPI_Buffer+0x138>
12dee: 03 96 adiw r24, 0x03 ; 3
12df0: 95 95 asr r25
12df2: 87 95 ror r24
12df4: 95 95 asr r25
12df6: 87 95 ror r24
12df8: 90 93 f1 08 sts 0x08F1, r25
12dfc: 80 93 f0 08 sts 0x08F0, r24
NaviCntAcc = 0; NaviAccNick = 0; NaviAccRoll = 0;
12e00: 10 92 4a 04 sts 0x044A, r1
12e04: 10 92 49 04 sts 0x0449, r1
12e08: 10 92 3a 06 sts 0x063A, r1
12e0c: 10 92 39 06 sts 0x0639, r1
12e10: 10 92 6b 06 sts 0x066B, r1
12e14: 10 92 6a 06 sts 0x066A, r1
// ToNaviCtrl.User8 = Parameter_UserParam8;
// ToNaviCtrl.CalState = WinkelOut.CalcState;
switch(ToNaviCtrl.Command) //
12e18: 80 91 e9 08 lds r24, 0x08E9
12e1c: 90 e0 ldi r25, 0x00 ; 0
12e1e: 0a 97 sbiw r24, 0x0a ; 10
12e20: 8a 30 cpi r24, 0x0A ; 10
12e22: 91 05 cpc r25, r1
12e24: 08 f0 brcs .+2 ; 0x12e28 <UpdateSPI_Buffer+0x170>
12e26: a1 c2 rjmp .+1346 ; 0x1336a <UpdateSPI_Buffer+0x6b2>
12e28: 8a 55 subi r24, 0x5A ; 90
12e2a: 9f 4f sbci r25, 0xFF ; 255
12e2c: fc 01 movw r30, r24
12e2e: 0c 94 a7 b1 jmp 0x1634e ; 0x1634e <__tablejump2__>
{
case SPI_FCCMD_USER:
ToNaviCtrl.Param.Byte[0] = Parameter_UserParam1;
12e32: 80 91 e0 03 lds r24, 0x03E0
12e36: 80 93 fc 08 sts 0x08FC, r24
ToNaviCtrl.Param.Byte[1] = Parameter_UserParam2;
12e3a: 80 91 df 03 lds r24, 0x03DF
12e3e: 80 93 fd 08 sts 0x08FD, r24
ToNaviCtrl.Param.Byte[2] = Parameter_UserParam3;
12e42: 80 91 de 03 lds r24, 0x03DE
12e46: 80 93 fe 08 sts 0x08FE, r24
ToNaviCtrl.Param.Byte[3] = Parameter_UserParam4;
12e4a: 80 91 dd 03 lds r24, 0x03DD
12e4e: 80 93 ff 08 sts 0x08FF, r24
ToNaviCtrl.Param.Byte[4] = Parameter_UserParam5;
12e52: 80 91 dc 03 lds r24, 0x03DC
12e56: 80 93 00 09 sts 0x0900, r24
ToNaviCtrl.Param.Byte[5] = Parameter_UserParam6;
12e5a: 80 91 db 03 lds r24, 0x03DB
12e5e: 80 93 01 09 sts 0x0901, r24
ToNaviCtrl.Param.Byte[6] = Parameter_UserParam7;
12e62: 80 91 da 03 lds r24, 0x03DA
12e66: 80 93 02 09 sts 0x0902, r24
ToNaviCtrl.Param.Byte[7] = Parameter_UserParam8;
12e6a: 80 91 d9 03 lds r24, 0x03D9
12e6e: 80 93 03 09 sts 0x0903, r24
ToNaviCtrl.Param.Byte[8] = FC_StatusFlags;
12e72: 80 91 cb 03 lds r24, 0x03CB
12e76: 80 93 04 09 sts 0x0904, r24
//if(FC_StatusFlags2 & FC_STATUS2_WAIT_FOR_TAKEOFF) ToNaviCtrl.Param.Byte[8] &= ~FC_STATUS_FLY;
FC_StatusFlags &= ~(FC_STATUS_CALIBRATE | FC_STATUS_START);
12e7a: 80 91 cb 03 lds r24, 0x03CB
12e7e: 83 7f andi r24, 0xF3 ; 243
12e80: 80 93 cb 03 sts 0x03CB, r24
ToNaviCtrl.Param.Byte[9] = ActiveParamSet;
12e84: 80 91 52 01 lds r24, 0x0152
12e88: 80 93 05 09 sts 0x0905, r24
ToNaviCtrl.Param.Byte[10] = (unsigned char) UBat; // 0.1V
12e8c: 80 91 1a 01 lds r24, 0x011A
12e90: 90 91 1b 01 lds r25, 0x011B
12e94: 80 93 06 09 sts 0x0906, r24
ToNaviCtrl.Param.Byte[11] = FC_StatusFlags2;
12e98: 80 91 ca 03 lds r24, 0x03CA
12e9c: 80 93 07 09 sts 0x0907, r24
if(!(PORTC & (1<<PORTC2))) FC_StatusFlags2 &= ~FC_STATUS2_OUT1_ACTIVE; // Out1 (J16)
12ea0: 42 99 sbic 0x08, 2 ; 8
12ea2: 63 c2 rjmp .+1222 ; 0x1336a <UpdateSPI_Buffer+0x6b2>
12ea4: 80 91 ca 03 lds r24, 0x03CA
12ea8: 87 7f andi r24, 0xF7 ; 247
12eaa: 80 93 ca 03 sts 0x03CA, r24
12eae: 5d c2 rjmp .+1210 ; 0x1336a <UpdateSPI_Buffer+0x6b2>
break;
case SPI_FCCMD_BL_ACCU:
ToNaviCtrl.Param.Int[0] = Capacity.ActualCurrent; // 0.1A
12eb0: 80 91 15 05 lds r24, 0x0515
12eb4: 90 91 16 05 lds r25, 0x0516
12eb8: 90 93 fd 08 sts 0x08FD, r25
12ebc: 80 93 fc 08 sts 0x08FC, r24
ToNaviCtrl.Param.Byte[2] = motorindex;
12ec0: 80 91 b2 04 lds r24, 0x04B2
12ec4: 80 93 fe 08 sts 0x08FE, r24
ToNaviCtrl.Param.Byte[3] = Capacity.MinOfMaxPWM;
12ec8: 80 91 1b 05 lds r24, 0x051B
12ecc: 80 93 ff 08 sts 0x08FF, r24
ToNaviCtrl.Param.Byte[4] = GetChannelValue(EE_Parameter.NaviGpsModeChannel); // GPS-Mode control
12ed0: 80 91 8f 05 lds r24, 0x058F
12ed4: 0e 94 0e 34 call 0x681c ; 0x681c <GetChannelValue>
12ed8: 80 93 00 09 sts 0x0900, r24
ToNaviCtrl.Param.Byte[5] = VarioCharacter;
12edc: 80 91 20 01 lds r24, 0x0120
12ee0: 80 93 01 09 sts 0x0901, r24
ToNaviCtrl.Param.Byte[6] = Motor[motorindex].NotReadyCnt;
12ee4: 20 91 b2 04 lds r18, 0x04B2
12ee8: 0f e0 ldi r16, 0x0F ; 15
12eea: 20 9f mul r18, r16
12eec: f0 01 movw r30, r0
12eee: 11 24 eor r1, r1
12ef0: e9 56 subi r30, 0x69 ; 105
12ef2: f6 4f sbci r31, 0xF6 ; 246
12ef4: 86 85 ldd r24, Z+14 ; 0x0e
12ef6: 80 93 02 09 sts 0x0902, r24
ToNaviCtrl.Param.Byte[7] = Motor[motorindex].Version;
12efa: 80 81 ld r24, Z
12efc: 80 93 03 09 sts 0x0903, r24
ToNaviCtrl.Param.Byte[8] = Motor[motorindex].MaxPWM;
12f00: 86 81 ldd r24, Z+6 ; 0x06
12f02: 80 93 04 09 sts 0x0904, r24
ToNaviCtrl.Param.Byte[9] = Motor[motorindex].State;
12f06: 83 81 ldd r24, Z+3 ; 0x03
12f08: 80 93 05 09 sts 0x0905, r24
ToNaviCtrl.Param.Byte[10] = Motor[motorindex].Temperature;
12f0c: 87 81 ldd r24, Z+7 ; 0x07
12f0e: 80 93 06 09 sts 0x0906, r24
ToNaviCtrl.Param.Byte[11] = Motor[motorindex].Current;
12f12: 85 81 ldd r24, Z+5 ; 0x05
12f14: 80 93 07 09 sts 0x0907, r24
 
if(Mixer.Motor[++motorindex][0] <= 0) // next motor is not used ?
12f18: 2f 5f subi r18, 0xFF ; 255
12f1a: 20 93 b2 04 sts 0x04B2, r18
12f1e: 82 2f mov r24, r18
12f20: 90 e0 ldi r25, 0x00 ; 0
12f22: fc 01 movw r30, r24
12f24: ee 0f add r30, r30
12f26: ff 1f adc r31, r31
12f28: ee 0f add r30, r30
12f2a: ff 1f adc r31, r31
12f2c: e9 53 subi r30, 0x39 ; 57
12f2e: fa 4f sbci r31, 0xFA ; 250
12f30: 35 85 ldd r19, Z+13 ; 0x0d
12f32: 13 16 cp r1, r19
12f34: 0c f4 brge .+2 ; 0x12f38 <UpdateSPI_Buffer+0x280>
12f36: 19 c2 rjmp .+1074 ; 0x1336a <UpdateSPI_Buffer+0x6b2>
while(Mixer.Motor[motorindex][0] <= 0 && motorindex) motorindex = (motorindex + 1) % 13;
12f38: 22 23 and r18, r18
12f3a: 09 f4 brne .+2 ; 0x12f3e <UpdateSPI_Buffer+0x286>
12f3c: 16 c2 rjmp .+1068 ; 0x1336a <UpdateSPI_Buffer+0x6b2>
12f3e: 2d e0 ldi r18, 0x0D ; 13
12f40: 30 e0 ldi r19, 0x00 ; 0
12f42: 01 96 adiw r24, 0x01 ; 1
12f44: b9 01 movw r22, r18
12f46: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
12f4a: 48 2f mov r20, r24
12f4c: 99 27 eor r25, r25
12f4e: fc 01 movw r30, r24
12f50: ee 0f add r30, r30
12f52: ff 1f adc r31, r31
12f54: ee 0f add r30, r30
12f56: ff 1f adc r31, r31
12f58: e9 53 subi r30, 0x39 ; 57
12f5a: fa 4f sbci r31, 0xFA ; 250
12f5c: 55 85 ldd r21, Z+13 ; 0x0d
12f5e: 15 16 cp r1, r21
12f60: 1c f4 brge .+6 ; 0x12f68 <UpdateSPI_Buffer+0x2b0>
12f62: 40 93 b2 04 sts 0x04B2, r20
12f66: 01 c2 rjmp .+1026 ; 0x1336a <UpdateSPI_Buffer+0x6b2>
12f68: 41 11 cpse r20, r1
12f6a: eb cf rjmp .-42 ; 0x12f42 <UpdateSPI_Buffer+0x28a>
12f6c: 40 93 b2 04 sts 0x04B2, r20
12f70: fc c1 rjmp .+1016 ; 0x1336a <UpdateSPI_Buffer+0x6b2>
break;
case SPI_FCCMD_SLOW:
switch(slow_command)
12f72: 80 91 b1 04 lds r24, 0x04B1
12f76: 81 11 cpse r24, r1
12f78: 37 c0 rjmp .+110 ; 0x12fe8 <UpdateSPI_Buffer+0x330>
{
case 0:
ToNaviCtrl.Command = SPI_FCCMD_PARAMETER1; slow_command = 1;
12f7a: 8d e0 ldi r24, 0x0D ; 13
12f7c: 80 93 e9 08 sts 0x08E9, r24
12f80: 81 e0 ldi r24, 0x01 ; 1
12f82: 80 93 b1 04 sts 0x04B1, r24
ToNaviCtrl.Param.Byte[0] = (unsigned char) BattLowVoltageWarning; //0.1V
12f86: 80 91 53 01 lds r24, 0x0153
12f8a: 80 93 fc 08 sts 0x08FC, r24
ToNaviCtrl.Param.Byte[1] = EE_Parameter.NaviGpsGain; // Parameters for the Naviboard
12f8e: 80 91 90 05 lds r24, 0x0590
12f92: 80 93 fd 08 sts 0x08FD, r24
ToNaviCtrl.Param.Byte[2] = EE_Parameter.NaviGpsP;
12f96: 80 91 91 05 lds r24, 0x0591
12f9a: 80 93 fe 08 sts 0x08FE, r24
ToNaviCtrl.Param.Byte[3] = EE_Parameter.NaviGpsI;
12f9e: 80 91 92 05 lds r24, 0x0592
12fa2: 80 93 ff 08 sts 0x08FF, r24
ToNaviCtrl.Param.Byte[4] = EE_Parameter.NaviGpsD;
12fa6: 80 91 93 05 lds r24, 0x0593
12faa: 80 93 00 09 sts 0x0900, r24
ToNaviCtrl.Param.Byte[5] = EE_Parameter.NaviGpsA;
12fae: 80 91 97 05 lds r24, 0x0597
12fb2: 80 93 01 09 sts 0x0901, r24
ToNaviCtrl.Param.Byte[6] = EE_Parameter.NaviGpsMinSat;
12fb6: 80 91 98 05 lds r24, 0x0598
12fba: 80 93 02 09 sts 0x0902, r24
ToNaviCtrl.Param.Byte[7] = EE_Parameter.NaviStickThreshold;
12fbe: 80 91 99 05 lds r24, 0x0599
12fc2: 80 93 03 09 sts 0x0903, r24
ToNaviCtrl.Param.Byte[8] = EE_Parameter.NaviMaxFlyingRange;
12fc6: 80 91 9c 05 lds r24, 0x059C
12fca: 80 93 04 09 sts 0x0904, r24
ToNaviCtrl.Param.Byte[9] = EE_Parameter.NaviWindCorrection;
12fce: 80 91 9a 05 lds r24, 0x059A
12fd2: 80 93 05 09 sts 0x0905, r24
ToNaviCtrl.Param.Byte[10] = EE_Parameter.NaviAccCompensation;
12fd6: 80 91 9b 05 lds r24, 0x059B
12fda: 80 93 06 09 sts 0x0906, r24
ToNaviCtrl.Param.Byte[11] = EE_Parameter.NaviAngleLimitation;
12fde: 80 91 9d 05 lds r24, 0x059D
12fe2: 80 93 07 09 sts 0x0907, r24
break;
12fe6: c1 c1 rjmp .+898 ; 0x1336a <UpdateSPI_Buffer+0x6b2>
default:
ToNaviCtrl.Command = SPI_FCCMD_NEUTRAL; slow_command = 0;
12fe8: 82 e1 ldi r24, 0x12 ; 18
12fea: 80 93 e9 08 sts 0x08E9, r24
12fee: 10 92 b1 04 sts 0x04B1, r1
ToNaviCtrl.Param.Int[0] = AdNeutralNick; // 0 & 1
12ff2: 80 91 57 04 lds r24, 0x0457
12ff6: 90 91 58 04 lds r25, 0x0458
12ffa: 90 93 fd 08 sts 0x08FD, r25
12ffe: 80 93 fc 08 sts 0x08FC, r24
ToNaviCtrl.Param.Int[1] = AdNeutralRoll; // 2 & 3
13002: 80 91 55 04 lds r24, 0x0455
13006: 90 91 56 04 lds r25, 0x0456
1300a: 90 93 ff 08 sts 0x08FF, r25
1300e: 80 93 fe 08 sts 0x08FE, r24
ToNaviCtrl.Param.Int[2] = AdNeutralGier; // 4 & 5
13012: f0 92 01 09 sts 0x0901, r15
13016: e0 92 00 09 sts 0x0900, r14
ToNaviCtrl.Param.Byte[6] = EE_Parameter.Driftkomp;
1301a: 80 91 82 05 lds r24, 0x0582
1301e: 80 93 02 09 sts 0x0902, r24
ToNaviCtrl.Param.Byte[7] = HoverGas / 4;
13022: 80 91 e8 03 lds r24, 0x03E8
13026: 90 91 e9 03 lds r25, 0x03E9
1302a: 99 23 and r25, r25
1302c: 0c f4 brge .+2 ; 0x13030 <UpdateSPI_Buffer+0x378>
1302e: 03 96 adiw r24, 0x03 ; 3
13030: 95 95 asr r25
13032: 87 95 ror r24
13034: 95 95 asr r25
13036: 87 95 ror r24
13038: 80 93 03 09 sts 0x0903, r24
ToNaviCtrl.Param.Byte[8] = 0;
1303c: 10 92 04 09 sts 0x0904, r1
ToNaviCtrl.Param.Byte[9] = 0;
13040: 10 92 05 09 sts 0x0905, r1
ToNaviCtrl.Param.Byte[10] = 0;
13044: 10 92 06 09 sts 0x0906, r1
ToNaviCtrl.Param.Byte[11] = 0;
13048: 10 92 07 09 sts 0x0907, r1
break;
1304c: 8e c1 rjmp .+796 ; 0x1336a <UpdateSPI_Buffer+0x6b2>
}
break;
case SPI_FCCMD_PARAMETER2:
ToNaviCtrl.Param.Byte[0] = EE_Parameter.AutoPhotoDistance; // Distance between Photo releases
1304e: 80 91 8e 05 lds r24, 0x058E
13052: 80 93 fc 08 sts 0x08FC, r24
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
// create the ToNC_SpeakHoTT
if(EE_Parameter.Receiver != RECEIVER_HOTT)
13056: 80 91 65 05 lds r24, 0x0565
1305a: 86 30 cpi r24, 0x06 ; 6
1305c: 81 f0 breq .+32 ; 0x1307e <UpdateSPI_Buffer+0x3c6>
{
if(JetiBeep != 'B') JetiBeep = pgm_read_byte(&JETI_CODE[HoTT_Waring()]);
1305e: 80 91 5c 04 lds r24, 0x045C
13062: 82 34 cpi r24, 0x42 ; 66
13064: 51 f0 breq .+20 ; 0x1307a <UpdateSPI_Buffer+0x3c2>
13066: 0e 94 cc 60 call 0xc198 ; 0xc198 <HoTT_Waring>
1306a: e8 2f mov r30, r24
1306c: f0 e0 ldi r31, 0x00 ; 0
1306e: ed 5f subi r30, 0xFD ; 253
13070: fe 4e sbci r31, 0xEE ; 238
13072: e4 91 lpm r30, Z
13074: e0 93 5c 04 sts 0x045C, r30
13078: 02 c0 rjmp .+4 ; 0x1307e <UpdateSPI_Buffer+0x3c6>
else HoTT_Waring();
1307a: 0e 94 cc 60 call 0xc198 ; 0xc198 <HoTT_Waring>
}
ToNaviCtrl.Param.Byte[1] = ToNC_SpeakHoTT;
1307e: 80 91 81 04 lds r24, 0x0481
13082: 80 93 fd 08 sts 0x08FD, r24
#else
ToNaviCtrl.Param.Byte[1] = 0;
#endif
ToNaviCtrl.Param.Byte[2] = EE_Parameter.LandingSpeed;
13086: 80 91 b0 05 lds r24, 0x05B0
1308a: 80 93 fe 08 sts 0x08FE, r24
ToNaviCtrl.Param.Byte[3] = EE_Parameter.ComingHomeAltitude;
1308e: 80 91 a5 05 lds r24, 0x05A5
13092: 80 93 ff 08 sts 0x08FF, r24
ToNaviCtrl.Param.Byte[4] = LowVoltageHomeActive;
13096: 80 91 c0 03 lds r24, 0x03C0
1309a: 80 93 00 09 sts 0x0900, r24
ToNaviCtrl.Param.Byte[5] = ToNC_Load_WP_List;
1309e: 80 91 8a 04 lds r24, 0x048A
130a2: 80 93 01 09 sts 0x0901, r24
ToNaviCtrl.Param.Byte[6] = ToNC_Load_SingePoint;
130a6: 80 91 88 04 lds r24, 0x0488
130aa: 80 93 02 09 sts 0x0902, r24
ToNaviCtrl.Param.Byte[7] = ToNC_Store_SingePoint;
130ae: 80 91 87 04 lds r24, 0x0487
130b2: 80 93 03 09 sts 0x0903, r24
ToNC_Load_WP_List = 0;
130b6: 10 92 8a 04 sts 0x048A, r1
ToNC_Load_SingePoint = 0;
130ba: 10 92 88 04 sts 0x0488, r1
ToNC_Store_SingePoint = 0;
130be: 10 92 87 04 sts 0x0487, r1
if(Parameter_KompassWirkung) ToNaviCtrl.Param.sInt[4] = KompassSollWert; // Pos. 8 & 9
130c2: 80 91 37 01 lds r24, 0x0137
130c6: 88 23 and r24, r24
130c8: 49 f0 breq .+18 ; 0x130dc <UpdateSPI_Buffer+0x424>
130ca: 80 91 1c 04 lds r24, 0x041C
130ce: 90 91 1d 04 lds r25, 0x041D
130d2: 90 93 05 09 sts 0x0905, r25
130d6: 80 93 04 09 sts 0x0904, r24
130da: 08 c0 rjmp .+16 ; 0x130ec <UpdateSPI_Buffer+0x434>
else ToNaviCtrl.Param.sInt[4] = ErsatzKompassInGrad; // answer with the compass value if the Compass effect is zero
130dc: 80 91 21 06 lds r24, 0x0621
130e0: 90 91 22 06 lds r25, 0x0622
130e4: 90 93 05 09 sts 0x0905, r25
130e8: 80 93 04 09 sts 0x0904, r24
ToNaviCtrl.Param.Byte[10] = EE_Parameter.AutoPhotoAtitudes;
130ec: 80 91 b4 05 lds r24, 0x05B4
130f0: 80 93 06 09 sts 0x0906, r24
ToNaviCtrl.Param.Byte[11] = EE_Parameter.SingleWpSpeed;
130f4: 80 91 b5 05 lds r24, 0x05B5
130f8: 80 93 07 09 sts 0x0907, r24
break;
130fc: 36 c1 rjmp .+620 ; 0x1336a <UpdateSPI_Buffer+0x6b2>
case SPI_FCCMD_STICK:
cli();
130fe: f8 94 cli
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
13100: e0 91 41 05 lds r30, 0x0541
13104: f0 e0 ldi r31, 0x00 ; 0
13106: ee 0f add r30, r30
13108: ff 1f adc r31, r31
1310a: ef 5c subi r30, 0xCF ; 207
1310c: f7 4f sbci r31, 0xF7 ; 247
1310e: 80 81 ld r24, Z
13110: 91 81 ldd r25, Z+1 ; 0x01
13112: 81 38 cpi r24, 0x81 ; 129
13114: 1f ef ldi r17, 0xFF ; 255
13116: 91 07 cpc r25, r17
13118: 14 f4 brge .+4 ; 0x1311e <UpdateSPI_Buffer+0x466>
1311a: 81 e8 ldi r24, 0x81 ; 129
1311c: 9f ef ldi r25, 0xFF ; 255
1311e: 80 38 cpi r24, 0x80 ; 128
13120: 91 05 cpc r25, r1
13122: 14 f0 brlt .+4 ; 0x13128 <UpdateSPI_Buffer+0x470>
13124: 8f e7 ldi r24, 0x7F ; 127
13126: 90 e0 ldi r25, 0x00 ; 0
ToNaviCtrl.Param.Byte[0] = (char) tmp;
13128: 80 93 fc 08 sts 0x08FC, r24
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
1312c: e0 91 42 05 lds r30, 0x0542
13130: f0 e0 ldi r31, 0x00 ; 0
13132: ee 0f add r30, r30
13134: ff 1f adc r31, r31
13136: ef 5c subi r30, 0xCF ; 207
13138: f7 4f sbci r31, 0xF7 ; 247
1313a: 80 81 ld r24, Z
1313c: 91 81 ldd r25, Z+1 ; 0x01
1313e: 81 38 cpi r24, 0x81 ; 129
13140: 2f ef ldi r18, 0xFF ; 255
13142: 92 07 cpc r25, r18
13144: 14 f4 brge .+4 ; 0x1314a <UpdateSPI_Buffer+0x492>
13146: 81 e8 ldi r24, 0x81 ; 129
13148: 9f ef ldi r25, 0xFF ; 255
1314a: 80 38 cpi r24, 0x80 ; 128
1314c: 91 05 cpc r25, r1
1314e: 14 f0 brlt .+4 ; 0x13154 <UpdateSPI_Buffer+0x49c>
13150: 8f e7 ldi r24, 0x7F ; 127
13152: 90 e0 ldi r25, 0x00 ; 0
ToNaviCtrl.Param.Byte[1] = (char) tmp;
13154: 80 93 fd 08 sts 0x08FD, r24
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
13158: e0 91 40 05 lds r30, 0x0540
1315c: f0 e0 ldi r31, 0x00 ; 0
1315e: ee 0f add r30, r30
13160: ff 1f adc r31, r31
13162: ef 5c subi r30, 0xCF ; 207
13164: f7 4f sbci r31, 0xF7 ; 247
13166: 80 81 ld r24, Z
13168: 91 81 ldd r25, Z+1 ; 0x01
1316a: 81 38 cpi r24, 0x81 ; 129
1316c: 3f ef ldi r19, 0xFF ; 255
1316e: 93 07 cpc r25, r19
13170: 14 f4 brge .+4 ; 0x13176 <UpdateSPI_Buffer+0x4be>
13172: 81 e8 ldi r24, 0x81 ; 129
13174: 9f ef ldi r25, 0xFF ; 255
13176: 80 38 cpi r24, 0x80 ; 128
13178: 91 05 cpc r25, r1
1317a: 14 f0 brlt .+4 ; 0x13180 <UpdateSPI_Buffer+0x4c8>
1317c: 8f e7 ldi r24, 0x7F ; 127
1317e: 90 e0 ldi r25, 0x00 ; 0
ToNaviCtrl.Param.Byte[2] = (char) tmp;
13180: 80 93 fe 08 sts 0x08FE, r24
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
13184: e0 91 3f 05 lds r30, 0x053F
13188: f0 e0 ldi r31, 0x00 ; 0
1318a: ee 0f add r30, r30
1318c: ff 1f adc r31, r31
1318e: ef 5c subi r30, 0xCF ; 207
13190: f7 4f sbci r31, 0xF7 ; 247
13192: 80 81 ld r24, Z
13194: 91 81 ldd r25, Z+1 ; 0x01
13196: 81 38 cpi r24, 0x81 ; 129
13198: 4f ef ldi r20, 0xFF ; 255
1319a: 94 07 cpc r25, r20
1319c: 14 f4 brge .+4 ; 0x131a2 <UpdateSPI_Buffer+0x4ea>
1319e: 81 e8 ldi r24, 0x81 ; 129
131a0: 9f ef ldi r25, 0xFF ; 255
sei();
131a2: 78 94 sei
131a4: 80 38 cpi r24, 0x80 ; 128
131a6: 91 05 cpc r25, r1
131a8: 14 f0 brlt .+4 ; 0x131ae <UpdateSPI_Buffer+0x4f6>
131aa: 8f e7 ldi r24, 0x7F ; 127
131ac: 90 e0 ldi r25, 0x00 ; 0
ToNaviCtrl.Param.Byte[3] = (char) tmp;
131ae: 80 93 ff 08 sts 0x08FF, r24
ToNaviCtrl.Param.Byte[4] = (unsigned char) Poti[0];
131b2: 80 91 05 04 lds r24, 0x0405
131b6: 80 93 00 09 sts 0x0900, r24
ToNaviCtrl.Param.Byte[5] = (unsigned char) Poti[1];
131ba: 80 91 06 04 lds r24, 0x0406
131be: 80 93 01 09 sts 0x0901, r24
ToNaviCtrl.Param.Byte[6] = (unsigned char) Poti[2];
131c2: 80 91 07 04 lds r24, 0x0407
131c6: 80 93 02 09 sts 0x0902, r24
ToNaviCtrl.Param.Byte[7] = (unsigned char) Poti[3];
131ca: 80 91 08 04 lds r24, 0x0408
131ce: 80 93 03 09 sts 0x0903, r24
ToNaviCtrl.Param.Byte[8] = (unsigned char) Poti[4];
131d2: 80 91 09 04 lds r24, 0x0409
131d6: 80 93 04 09 sts 0x0904, r24
ToNaviCtrl.Param.Byte[9] = (unsigned char) Poti[5];
131da: 80 91 0a 04 lds r24, 0x040A
131de: 80 93 05 09 sts 0x0905, r24
ToNaviCtrl.Param.Byte[10] = (unsigned char) Poti[6];
131e2: 80 91 0b 04 lds r24, 0x040B
131e6: 80 93 06 09 sts 0x0906, r24
ToNaviCtrl.Param.Byte[11] = (unsigned char) Poti[7];
131ea: 80 91 0c 04 lds r24, 0x040C
131ee: 80 93 07 09 sts 0x0907, r24
break;
131f2: bb c0 rjmp .+374 ; 0x1336a <UpdateSPI_Buffer+0x6b2>
case SPI_FCCMD_MISC:
if(WinkelOut.CalcState >= 5)
131f4: 80 91 7d 0a lds r24, 0x0A7D
131f8: 85 30 cpi r24, 0x05 ; 5
131fa: 30 f0 brcs .+12 ; 0x13208 <UpdateSPI_Buffer+0x550>
{
WinkelOut.CalcState = 0;
131fc: 10 92 7d 0a sts 0x0A7D, r1
ToNaviCtrl.Param.Byte[0] = 5;
13200: 85 e0 ldi r24, 0x05 ; 5
13202: 80 93 fc 08 sts 0x08FC, r24
13206: 02 c0 rjmp .+4 ; 0x1320c <UpdateSPI_Buffer+0x554>
}
else ToNaviCtrl.Param.Byte[0] = WinkelOut.CalcState;
13208: 80 93 fc 08 sts 0x08FC, r24
ToNaviCtrl.Param.Byte[1] = EE_Parameter.NaviPH_LoginTime;
1320c: 80 91 9e 05 lds r24, 0x059E
13210: 80 93 fd 08 sts 0x08FD, r24
ToNaviCtrl.Param.Int[1] = (int)(HoehenWert/5);
13214: 60 91 fe 03 lds r22, 0x03FE
13218: 70 91 ff 03 lds r23, 0x03FF
1321c: 80 91 00 04 lds r24, 0x0400
13220: 90 91 01 04 lds r25, 0x0401
13224: 0f 2e mov r0, r31
13226: f5 e0 ldi r31, 0x05 ; 5
13228: cf 2e mov r12, r31
1322a: d1 2c mov r13, r1
1322c: e1 2c mov r14, r1
1322e: f1 2c mov r15, r1
13230: f0 2d mov r31, r0
13232: a7 01 movw r20, r14
13234: 96 01 movw r18, r12
13236: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
1323a: 30 93 ff 08 sts 0x08FF, r19
1323e: 20 93 fe 08 sts 0x08FE, r18
ToNaviCtrl.Param.Int[2] = (int)(SollHoehe/5);
13242: 60 91 fa 03 lds r22, 0x03FA
13246: 70 91 fb 03 lds r23, 0x03FB
1324a: 80 91 fc 03 lds r24, 0x03FC
1324e: 90 91 fd 03 lds r25, 0x03FD
13252: a7 01 movw r20, r14
13254: 96 01 movw r18, r12
13256: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
1325a: 30 93 01 09 sts 0x0901, r19
1325e: 20 93 00 09 sts 0x0900, r18
ToNaviCtrl.Param.Byte[6] = EE_Parameter.NaviGpsPLimit;
13262: 80 91 94 05 lds r24, 0x0594
13266: 80 93 02 09 sts 0x0902, r24
ToNaviCtrl.Param.Byte[7] = EE_Parameter.NaviGpsILimit;
1326a: 80 91 95 05 lds r24, 0x0595
1326e: 80 93 03 09 sts 0x0903, r24
ToNaviCtrl.Param.Byte[8] = EE_Parameter.NaviGpsDLimit;
13272: 80 91 96 05 lds r24, 0x0596
13276: 80 93 04 09 sts 0x0904, r24
ToNaviCtrl.Param.Byte[9] = (unsigned char) SenderOkay;
1327a: 80 91 04 04 lds r24, 0x0404
1327e: 80 93 05 09 sts 0x0905, r24
ToNaviCtrl.Param.Byte[10] = NC_Wait_for_LED;
13282: 80 91 9f 04 lds r24, 0x049F
13286: 80 93 06 09 sts 0x0906, r24
ToNaviCtrl.Param.Byte[11] = DebugOut.Analog[7] / 4; //GasMischanteil
1328a: 80 91 56 0c lds r24, 0x0C56
1328e: 90 91 57 0c lds r25, 0x0C57
13292: 99 23 and r25, r25
13294: 0c f4 brge .+2 ; 0x13298 <UpdateSPI_Buffer+0x5e0>
13296: 03 96 adiw r24, 0x03 ; 3
13298: 95 95 asr r25
1329a: 87 95 ror r24
1329c: 95 95 asr r25
1329e: 87 95 ror r24
132a0: 80 93 07 09 sts 0x0907, r24
break;
132a4: 62 c0 rjmp .+196 ; 0x1336a <UpdateSPI_Buffer+0x6b2>
case SPI_FCCMD_VERSION:
ToNaviCtrl.Param.Byte[0] = VERSION_MAJOR;
132a6: 82 e0 ldi r24, 0x02 ; 2
132a8: 80 93 fc 08 sts 0x08FC, r24
ToNaviCtrl.Param.Byte[1] = VERSION_MINOR;
132ac: 88 e0 ldi r24, 0x08 ; 8
132ae: 80 93 fd 08 sts 0x08FD, r24
ToNaviCtrl.Param.Byte[2] = VERSION_PATCH;
132b2: 10 92 fe 08 sts 0x08FE, r1
ToNaviCtrl.Param.Byte[3] = NC_SPI_COMPATIBLE;
132b6: 87 e4 ldi r24, 0x47 ; 71
132b8: 80 93 ff 08 sts 0x08FF, r24
ToNaviCtrl.Param.Byte[4] = PlatinenVersion;
132bc: 80 91 54 01 lds r24, 0x0154
132c0: 80 93 00 09 sts 0x0900, r24
ToNaviCtrl.Param.Byte[5] = VersionInfo.HardwareError[0];
132c4: a2 e6 ldi r26, 0x62 ; 98
132c6: ba e0 ldi r27, 0x0A ; 10
132c8: 9c 91 ld r25, X
132ca: 90 93 01 09 sts 0x0901, r25
ToNaviCtrl.Param.Byte[6] = VersionInfo.HardwareError[1];
132ce: e3 e6 ldi r30, 0x63 ; 99
132d0: fa e0 ldi r31, 0x0A ; 10
132d2: 80 81 ld r24, Z
132d4: 80 93 02 09 sts 0x0902, r24
VersionInfo.HardwareError[0] &= ~FC_ERROR0_CAREFREE; // VersionInfo.HardwareError[0] = 0;
132d8: 9f 77 andi r25, 0x7F ; 127
132da: 9c 93 st X, r25
VersionInfo.HardwareError[1] &= FC_ERROR1_MIXER;
132dc: 80 71 andi r24, 0x10 ; 16
132de: 80 83 st Z, r24
ToNaviCtrl.Param.Byte[7] = EE_Parameter.CompassOffset;
132e0: 80 91 b1 05 lds r24, 0x05B1
132e4: 80 93 03 09 sts 0x0903, r24
ToNaviCtrl.Param.Byte[8] = Parameter_GlobalConfig;
132e8: 80 91 5c 06 lds r24, 0x065C
132ec: 80 93 04 09 sts 0x0904, r24
ToNaviCtrl.Param.Byte[9] = Parameter_ExtraConfig;
132f0: 80 91 40 06 lds r24, 0x0640
132f4: 80 93 05 09 sts 0x0905, r24
ToNaviCtrl.Param.Byte[10] = EE_Parameter.OrientationAngle;
132f8: 80 91 a1 05 lds r24, 0x05A1
132fc: 80 93 06 09 sts 0x0906, r24
ToNaviCtrl.Param.Byte[11] = EE_Parameter.GlobalConfig3;
13300: 80 91 b9 05 lds r24, 0x05B9
13304: 80 93 07 09 sts 0x0907, r24
break;
13308: 30 c0 rjmp .+96 ; 0x1336a <UpdateSPI_Buffer+0x6b2>
case SPI_FCCMD_SERVOS:
ToNaviCtrl.Param.Int[0] = Capacity.UsedCapacity; // mAh
1330a: 80 91 19 05 lds r24, 0x0519
1330e: 90 91 1a 05 lds r25, 0x051A
13312: 90 93 fd 08 sts 0x08FD, r25
13316: 80 93 fc 08 sts 0x08FC, r24
ToNaviCtrl.Param.Byte[2] = Parameter_ServoNickControl;
1331a: 80 91 2f 01 lds r24, 0x012F
1331e: 80 93 fe 08 sts 0x08FE, r24
ToNaviCtrl.Param.Byte[3] = Parameter_ServoRollControl;
13322: 80 91 2e 01 lds r24, 0x012E
13326: 80 93 ff 08 sts 0x08FF, r24
ToNaviCtrl.Param.Byte[4] = DebugOut.Analog[28]; // I2C-Error counter
1332a: 80 91 80 0c lds r24, 0x0C80
1332e: 80 93 00 09 sts 0x0900, r24
ToNaviCtrl.Param.Byte[5] = FC_StatusFlags3;
13332: 80 91 c9 03 lds r24, 0x03C9
13336: 80 93 01 09 sts 0x0901, r24
ToNaviCtrl.Param.Byte[6] = EE_Parameter.NaviDescendRange; // in 10m
1333a: 80 91 9f 05 lds r24, 0x059F
1333e: 80 93 02 09 sts 0x0902, r24
ToNaviCtrl.Param.Byte[7] = Parameter_MaximumAltitude;
13342: 80 91 24 06 lds r24, 0x0624
13346: 80 93 03 09 sts 0x0903, r24
ToNaviCtrl.Param.Int[4] = FlugMinutenGesamt; // 8 & 9
1334a: 80 91 60 04 lds r24, 0x0460
1334e: 90 91 61 04 lds r25, 0x0461
13352: 90 93 05 09 sts 0x0905, r25
13356: 80 93 04 09 sts 0x0904, r24
ToNaviCtrl.Param.Byte[10] = EE_Parameter.CamOrientation;
1335a: 80 91 75 05 lds r24, 0x0575
1335e: 80 93 06 09 sts 0x0906, r24
ToNaviCtrl.Param.Byte[11] = VersionInfo.BL_Firmware;
13362: 80 91 65 0a lds r24, 0x0A65
13366: 80 93 07 09 sts 0x0907, r24
break;
}
if(SPI_RxDataValid)
1336a: 80 91 0b 09 lds r24, 0x090B
1336e: 88 23 and r24, r24
13370: 09 f4 brne .+2 ; 0x13374 <UpdateSPI_Buffer+0x6bc>
13372: 71 c1 rjmp .+738 ; 0x13656 <UpdateSPI_Buffer+0x99e>
{
if(FromNaviCtrl.Command != oldcommand) NaviDataOkay = 250;
13374: 60 91 0c 09 lds r22, 0x090C
13378: 80 91 95 02 lds r24, 0x0295
1337c: 68 17 cp r22, r24
1337e: 19 f0 breq .+6 ; 0x13386 <UpdateSPI_Buffer+0x6ce>
13380: 8a ef ldi r24, 0xFA ; 250
13382: 80 93 a4 02 sts 0x02A4, r24
oldcommand = FromNaviCtrl.Command;
13386: 60 93 95 02 sts 0x0295, r22
CalculateCompassTimer = 1;
1338a: 81 e0 ldi r24, 0x01 ; 1
1338c: 80 93 4d 01 sts 0x014D, r24
if(abs(FromNaviCtrl.GPS_Nick) < 512 && abs(FromNaviCtrl.GPS_Roll) < 512 && (EE_Parameter.GlobalConfig & CFG_GPS_AKTIV))
13390: 80 91 0d 09 lds r24, 0x090D
13394: 90 91 0e 09 lds r25, 0x090E
13398: 9c 01 movw r18, r24
1339a: 21 50 subi r18, 0x01 ; 1
1339c: 3e 4f sbci r19, 0xFE ; 254
1339e: 2f 3f cpi r18, 0xFF ; 255
133a0: 33 40 sbci r19, 0x03 ; 3
133a2: b0 f4 brcc .+44 ; 0x133d0 <UpdateSPI_Buffer+0x718>
133a4: 20 91 0f 09 lds r18, 0x090F
133a8: 30 91 10 09 lds r19, 0x0910
133ac: a9 01 movw r20, r18
133ae: 41 50 subi r20, 0x01 ; 1
133b0: 5e 4f sbci r21, 0xFE ; 254
133b2: 4f 3f cpi r20, 0xFF ; 255
133b4: 53 40 sbci r21, 0x03 ; 3
133b6: 60 f4 brcc .+24 ; 0x133d0 <UpdateSPI_Buffer+0x718>
133b8: 40 91 4b 05 lds r20, 0x054B
133bc: 45 ff sbrs r20, 5
133be: 08 c0 rjmp .+16 ; 0x133d0 <UpdateSPI_Buffer+0x718>
{
GPS_Nick = FromNaviCtrl.GPS_Nick;
133c0: 90 93 6b 04 sts 0x046B, r25
133c4: 80 93 6a 04 sts 0x046A, r24
GPS_Roll = FromNaviCtrl.GPS_Roll;
133c8: 30 93 69 04 sts 0x0469, r19
133cc: 20 93 68 04 sts 0x0468, r18
// update compass readings
// MagVec.x = FromNaviCtrl.MagVecX;
// MagVec.y = FromNaviCtrl.MagVecY;
// MagVec.z = FromNaviCtrl.MagVecZ;
 
if(FromNaviCtrl.CompassValue <= 360) KompassValue = FromNaviCtrl.CompassValue;
133d0: 80 91 13 09 lds r24, 0x0913
133d4: 90 91 14 09 lds r25, 0x0914
133d8: 89 36 cpi r24, 0x69 ; 105
133da: f1 e0 ldi r31, 0x01 ; 1
133dc: 9f 07 cpc r25, r31
133de: 24 f4 brge .+8 ; 0x133e8 <UpdateSPI_Buffer+0x730>
133e0: 90 93 4f 01 sts 0x014F, r25
133e4: 80 93 4e 01 sts 0x014E, r24
// KompassRichtung = ((540 + KompassValue - KompassSollWert) % 360) - 180;
 
if(FromNaviCtrl.BeepTime > beeptime && !DisableRcOffBeeping) beeptime = FromNaviCtrl.BeepTime;
133e8: 80 91 1d 09 lds r24, 0x091D
133ec: 90 91 1e 09 lds r25, 0x091E
133f0: 20 91 cd 04 lds r18, 0x04CD
133f4: 30 91 ce 04 lds r19, 0x04CE
133f8: 28 17 cp r18, r24
133fa: 39 07 cpc r19, r25
133fc: 40 f4 brcc .+16 ; 0x1340e <UpdateSPI_Buffer+0x756>
133fe: 20 91 66 04 lds r18, 0x0466
13402: 21 11 cpse r18, r1
13404: 04 c0 rjmp .+8 ; 0x1340e <UpdateSPI_Buffer+0x756>
13406: 90 93 ce 04 sts 0x04CE, r25
1340a: 80 93 cd 04 sts 0x04CD, r24
switch (FromNaviCtrl.Command)
1340e: 69 36 cpi r22, 0x69 ; 105
13410: 09 f4 brne .+2 ; 0x13414 <UpdateSPI_Buffer+0x75c>
13412: 85 c0 rjmp .+266 ; 0x1351e <UpdateSPI_Buffer+0x866>
13414: 30 f4 brcc .+12 ; 0x13422 <UpdateSPI_Buffer+0x76a>
13416: 67 36 cpi r22, 0x67 ; 103
13418: 59 f0 breq .+22 ; 0x13430 <UpdateSPI_Buffer+0x778>
1341a: 68 36 cpi r22, 0x68 ; 104
1341c: 09 f4 brne .+2 ; 0x13420 <UpdateSPI_Buffer+0x768>
1341e: 4a c0 rjmp .+148 ; 0x134b4 <UpdateSPI_Buffer+0x7fc>
13420: 22 c1 rjmp .+580 ; 0x13666 <UpdateSPI_Buffer+0x9ae>
13422: 6a 36 cpi r22, 0x6A ; 106
13424: 09 f4 brne .+2 ; 0x13428 <UpdateSPI_Buffer+0x770>
13426: 14 c1 rjmp .+552 ; 0x13650 <UpdateSPI_Buffer+0x998>
13428: 6b 36 cpi r22, 0x6B ; 107
1342a: 09 f4 brne .+2 ; 0x1342e <UpdateSPI_Buffer+0x776>
1342c: d7 c0 rjmp .+430 ; 0x135dc <UpdateSPI_Buffer+0x924>
1342e: 1b c1 rjmp .+566 ; 0x13666 <UpdateSPI_Buffer+0x9ae>
{
case SPI_NCCMD_KALMAN:
FromNaviCtrl_Value.Kalman_K = FromNaviCtrl.Param.sByte[0];
13430: 80 91 1f 09 lds r24, 0x091F
13434: 80 93 4c 09 sts 0x094C, r24
FromNaviCtrl_Value.Kalman_MaxFusion = FromNaviCtrl.Param.sByte[1];
13438: 80 91 20 09 lds r24, 0x0920
1343c: 80 93 4e 09 sts 0x094E, r24
FromNaviCtrl_Value.Kalman_MaxDrift = FromNaviCtrl.Param.sByte[2];
13440: 80 91 21 09 lds r24, 0x0921
13444: 80 93 4d 09 sts 0x094D, r24
KompassFusion = FromNaviCtrl.Param.sByte[3];
13448: 80 91 22 09 lds r24, 0x0922
1344c: 80 93 4c 01 sts 0x014C, r24
FromNaviCtrl_Value.GpsZ = FromNaviCtrl.Param.Byte[4];
13450: 80 91 23 09 lds r24, 0x0923
13454: 80 93 50 09 sts 0x0950, r24
FromNC_Rotate_C = FromNaviCtrl.Param.Byte[5];
13458: 80 91 24 09 lds r24, 0x0924
1345c: 80 93 a5 02 sts 0x02A5, r24
FromNC_Rotate_S = FromNaviCtrl.Param.Byte[6];
13460: 80 91 25 09 lds r24, 0x0925
13464: 80 93 be 04 sts 0x04BE, r24
GPS_Aid_StickMultiplikator = FromNaviCtrl.Param.Byte[7];
13468: 80 91 26 09 lds r24, 0x0926
1346c: 80 93 67 04 sts 0x0467, r24
if(CareFree && FromNaviCtrl.Param.sInt[4] >= 0)
13470: 80 91 d8 03 lds r24, 0x03D8
13474: 88 23 and r24, r24
13476: 51 f0 breq .+20 ; 0x1348c <UpdateSPI_Buffer+0x7d4>
13478: 80 91 27 09 lds r24, 0x0927
1347c: 90 91 28 09 lds r25, 0x0928
13480: 99 23 and r25, r25
13482: 24 f0 brlt .+8 ; 0x1348c <UpdateSPI_Buffer+0x7d4>
{
KompassSollWert = FromNaviCtrl.Param.sInt[4]; // bei Carefree kann NC den Kompass-Sollwinkel vorgeben
13484: 90 93 1d 04 sts 0x041D, r25
13488: 80 93 1c 04 sts 0x041C, r24
KompassSollWert += 360 - ((unsigned int) EE_Parameter.CamOrientation * 15);
KompassSollWert %= 360;
}
*/
}
POI_KameraNick = (POI_KameraNick + FromNaviCtrl.Param.sInt[5]) / 2; // FromNaviCtrl.Param.sInt[5]; // Nickwinkel
1348c: 20 91 29 09 lds r18, 0x0929
13490: 30 91 2a 09 lds r19, 0x092A
13494: 80 91 b5 04 lds r24, 0x04B5
13498: 90 91 b6 04 lds r25, 0x04B6
1349c: 82 0f add r24, r18
1349e: 93 1f adc r25, r19
134a0: 99 23 and r25, r25
134a2: 0c f4 brge .+2 ; 0x134a6 <UpdateSPI_Buffer+0x7ee>
134a4: 01 96 adiw r24, 0x01 ; 1
134a6: 95 95 asr r25
134a8: 87 95 ror r24
134aa: 90 93 b6 04 sts 0x04B6, r25
134ae: 80 93 b5 04 sts 0x04B5, r24
break;
134b2: d9 c0 rjmp .+434 ; 0x13666 <UpdateSPI_Buffer+0x9ae>
case SPI_NCCMD_VERSION:
NC_Version.Major = FromNaviCtrl.Param.Byte[0];
134b4: 80 91 1f 09 lds r24, 0x091F
134b8: 80 93 e1 08 sts 0x08E1, r24
NC_Version.Minor = FromNaviCtrl.Param.Byte[1];
134bc: 80 91 20 09 lds r24, 0x0920
134c0: 80 93 e2 08 sts 0x08E2, r24
NC_Version.Patch = FromNaviCtrl.Param.Byte[2];
134c4: 80 91 21 09 lds r24, 0x0921
134c8: 80 93 e3 08 sts 0x08E3, r24
NC_Version.Compatible = FromNaviCtrl.Param.Byte[3];
134cc: 80 91 22 09 lds r24, 0x0922
134d0: 80 93 e4 08 sts 0x08E4, r24
NC_Version.Hardware = FromNaviCtrl.Param.Byte[4];
134d4: 80 91 23 09 lds r24, 0x0923
134d8: 80 93 e5 08 sts 0x08E5, r24
DebugOut.Status[0] |= FromNaviCtrl.Param.Byte[5];
134dc: e6 e4 ldi r30, 0x46 ; 70
134de: fc e0 ldi r31, 0x0C ; 12
134e0: 90 91 24 09 lds r25, 0x0924
134e4: 80 81 ld r24, Z
134e6: 89 2b or r24, r25
134e8: 80 83 st Z, r24
DebugOut.Status[1] = (DebugOut.Status[1] & (0x01|0x02)) | (FromNaviCtrl.Param.Byte[6] & (0x04 | 0x08));
134ea: e7 e4 ldi r30, 0x47 ; 71
134ec: fc e0 ldi r31, 0x0C ; 12
134ee: 90 91 25 09 lds r25, 0x0925
134f2: 9c 70 andi r25, 0x0C ; 12
134f4: 80 81 ld r24, Z
134f6: 83 70 andi r24, 0x03 ; 3
134f8: 89 2b or r24, r25
134fa: 80 83 st Z, r24
NC_ErrorCode = FromNaviCtrl.Param.Byte[7];
134fc: 80 91 26 09 lds r24, 0x0926
13500: 80 93 bb 04 sts 0x04BB, r24
NC_GPS_ModeCharacter = FromNaviCtrl.Param.Byte[8];
13504: 80 91 27 09 lds r24, 0x0927
13508: 80 93 96 02 sts 0x0296, r24
FromNaviCtrl_Value.SerialDataOkay = FromNaviCtrl.Param.Byte[9];
1350c: 80 91 28 09 lds r24, 0x0928
13510: 80 93 4f 09 sts 0x094F, r24
NC_To_FC_Flags = FromNaviCtrl.Param.Byte[10];
13514: 80 91 29 09 lds r24, 0x0929
13518: 80 93 b7 04 sts 0x04B7, r24
//NC_To_FC_MaxAltitude = FromNaviCtrl.Param.Byte[11];
break;
1351c: a4 c0 rjmp .+328 ; 0x13666 <UpdateSPI_Buffer+0x9ae>
case SPI_NCCMD_GPSINFO:
GPSInfo.Flags = FromNaviCtrl.Param.Byte[0];
1351e: 80 91 1f 09 lds r24, 0x091F
13522: 80 93 d7 08 sts 0x08D7, r24
GPSInfo.NumOfSats = FromNaviCtrl.Param.Byte[1];
13526: 80 91 20 09 lds r24, 0x0920
1352a: 80 93 d8 08 sts 0x08D8, r24
GPSInfo.SatFix = FromNaviCtrl.Param.Byte[2];
1352e: 80 91 21 09 lds r24, 0x0921
13532: 80 93 d9 08 sts 0x08D9, r24
GPSInfo.Speed = FromNaviCtrl.Param.Byte[3];
13536: 80 91 22 09 lds r24, 0x0922
1353a: 80 93 da 08 sts 0x08DA, r24
GPSInfo.HomeDistance = FromNaviCtrl.Param.Int[2];
1353e: 80 91 23 09 lds r24, 0x0923
13542: 90 91 24 09 lds r25, 0x0924
13546: 90 93 dc 08 sts 0x08DC, r25
1354a: 80 93 db 08 sts 0x08DB, r24
GPSInfo.HomeBearing = FromNaviCtrl.Param.sInt[3];
1354e: 80 91 25 09 lds r24, 0x0925
13552: 90 91 26 09 lds r25, 0x0926
13556: 90 93 de 08 sts 0x08DE, r25
1355a: 80 93 dd 08 sts 0x08DD, r24
if((signed char) PPM_in[WP_EVENT_PPM_IN] == -127) // zuletzt war der WP-Event auf Null
1355e: 80 91 6b 08 lds r24, 0x086B
13562: 90 91 6c 08 lds r25, 0x086C
13566: 81 38 cpi r24, 0x81 ; 129
13568: 49 f4 brne .+18 ; 0x1357c <UpdateSPI_Buffer+0x8c4>
{
if(!FromNC_WP_EventChannel_New) FromNC_WP_EventChannel_New = (unsigned char) FromNaviCtrl.Param.Byte[8] + 127; // zwischenspeichern, damit keiner verpasst wird
1356a: 80 91 bd 04 lds r24, 0x04BD
1356e: 81 11 cpse r24, r1
13570: 05 c0 rjmp .+10 ; 0x1357c <UpdateSPI_Buffer+0x8c4>
13572: 80 91 27 09 lds r24, 0x0927
13576: 81 58 subi r24, 0x81 ; 129
13578: 80 93 bd 04 sts 0x04BD, r24
}
PPM_in[WP_EVENT_PPM_IN] = (signed char) FromNaviCtrl.Param.Byte[8]; // WP_EVENT-Channel-Value (FromNC_WP_EventChannel)
1357c: 80 91 27 09 lds r24, 0x0927
13580: 99 27 eor r25, r25
13582: 87 fd sbrc r24, 7
13584: 90 95 com r25
13586: 90 93 6c 08 sts 0x086C, r25
1358a: 80 93 6b 08 sts 0x086B, r24
FromNC_AltitudeSpeed = FromNaviCtrl.Param.Byte[9];
1358e: 80 91 28 09 lds r24, 0x0928
13592: 80 93 f3 03 sts 0x03F3, r24
FromNC_AltitudeSetpoint = (long) FromNaviCtrl.Param.sInt[5] * 10; // in cm
13596: 80 91 29 09 lds r24, 0x0929
1359a: 90 91 2a 09 lds r25, 0x092A
1359e: aa 27 eor r26, r26
135a0: 97 fd sbrc r25, 7
135a2: a0 95 com r26
135a4: ba 2f mov r27, r26
135a6: 88 0f add r24, r24
135a8: 99 1f adc r25, r25
135aa: aa 1f adc r26, r26
135ac: bb 1f adc r27, r27
135ae: ac 01 movw r20, r24
135b0: bd 01 movw r22, r26
135b2: 44 0f add r20, r20
135b4: 55 1f adc r21, r21
135b6: 66 1f adc r22, r22
135b8: 77 1f adc r23, r23
135ba: 44 0f add r20, r20
135bc: 55 1f adc r21, r21
135be: 66 1f adc r22, r22
135c0: 77 1f adc r23, r23
135c2: 84 0f add r24, r20
135c4: 95 1f adc r25, r21
135c6: a6 1f adc r26, r22
135c8: b7 1f adc r27, r23
135ca: 80 93 f4 03 sts 0x03F4, r24
135ce: 90 93 f5 03 sts 0x03F5, r25
135d2: a0 93 f6 03 sts 0x03F6, r26
135d6: b0 93 f7 03 sts 0x03F7, r27
break;
135da: 45 c0 rjmp .+138 ; 0x13666 <UpdateSPI_Buffer+0x9ae>
case SPI_MISC:
EarthMagneticField = FromNaviCtrl.Param.Byte[0];
135dc: 80 91 1f 09 lds r24, 0x091F
135e0: 80 93 ba 04 sts 0x04BA, r24
EarthMagneticInclination = FromNaviCtrl.Param.Byte[1];
135e4: 80 91 20 09 lds r24, 0x0920
135e8: 80 93 b9 04 sts 0x04B9, r24
EarthMagneticInclinationTheoretic = FromNaviCtrl.Param.Byte[2];
135ec: 80 91 21 09 lds r24, 0x0921
135f0: 80 93 b8 04 sts 0x04B8, r24
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(FromNaviCtrl.Param.Byte[3])
135f4: 80 91 22 09 lds r24, 0x0922
135f8: 88 23 and r24, r24
135fa: 49 f0 breq .+18 ; 0x1360e <UpdateSPI_Buffer+0x956>
if(!SpeakHoTT || (SpeakHoTT >= SPEAK_GPS_HOLD && SpeakHoTT <= SPEAK_GPS_OFF)) SpeakHoTT = FromNaviCtrl.Param.Byte[3];
135fc: 90 91 57 01 lds r25, 0x0157
13600: 99 23 and r25, r25
13602: 19 f0 breq .+6 ; 0x1360a <UpdateSPI_Buffer+0x952>
13604: 91 51 subi r25, 0x11 ; 17
13606: 93 30 cpi r25, 0x03 ; 3
13608: 10 f4 brcc .+4 ; 0x1360e <UpdateSPI_Buffer+0x956>
1360a: 80 93 57 01 sts 0x0157, r24
NaviData_TargetDistance = FromNaviCtrl.Param.Int[3];
1360e: 80 91 25 09 lds r24, 0x0925
13612: 90 91 26 09 lds r25, 0x0926
13616: 90 93 86 04 sts 0x0486, r25
1361a: 80 93 85 04 sts 0x0485, r24
#endif
NaviData_WaypointIndex = FromNaviCtrl.Param.Byte[4];
1361e: 80 91 23 09 lds r24, 0x0923
13622: 80 93 8d 04 sts 0x048D, r24
NaviData_WaypointNumber = FromNaviCtrl.Param.Byte[5];
13626: 80 91 24 09 lds r24, 0x0924
1362a: 80 93 8c 04 sts 0x048C, r24
NaviData_TargetHoldTime = FromNaviCtrl.Param.Byte[8];
1362e: 80 91 27 09 lds r24, 0x0927
13632: 80 93 8b 04 sts 0x048B, r24
NaviData_MaxWpListIndex = FromNaviCtrl.Param.Byte[9];
13636: 80 91 28 09 lds r24, 0x0928
1363a: 80 93 89 04 sts 0x0489, r24
CompassCorrected = FromNaviCtrl.Param.sInt[5]; // Bytes 10 & 11
1363e: 80 91 29 09 lds r24, 0x0929
13642: 90 91 2a 09 lds r25, 0x092A
13646: 90 93 66 06 sts 0x0666, r25
1364a: 80 93 65 06 sts 0x0665, r24
break;
1364e: 0b c0 rjmp .+22 ; 0x13666 <UpdateSPI_Buffer+0x9ae>
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
case SPI_NCCMD_HOTT_DATA:
//if(EE_Parameter.Receiver == RECEIVER_HOTT)
NC_Fills_HoTT_Telemety();
13650: 0e 94 3e 61 call 0xc27c ; 0xc27c <NC_Fills_HoTT_Telemety>
break;
13654: 08 c0 rjmp .+16 ; 0x13666 <UpdateSPI_Buffer+0x9ae>
}
else
{
// KompassValue = 0;
// KompassRichtung = 0;
GPS_Nick = 0;
13656: 10 92 6b 04 sts 0x046B, r1
1365a: 10 92 6a 04 sts 0x046A, r1
GPS_Roll = 0;
1365e: 10 92 69 04 sts 0x0469, r1
13662: 10 92 68 04 sts 0x0468, r1
}
}
13666: 1f 91 pop r17
13668: 0f 91 pop r16
1366a: ff 90 pop r15
1366c: ef 90 pop r14
1366e: df 90 pop r13
13670: cf 90 pop r12
13672: 08 95 ret
 
00013674 <SPI_StartTransmitPacket>:
}
 
//------------------------------------------------------
unsigned char SPI_StartTransmitPacket(void)
{
if(!SPITransferCompleted) return(0);
13674: 80 91 d6 08 lds r24, 0x08D6
13678: 88 23 and r24, r24
1367a: 21 f1 breq .+72 ; 0x136c4 <SPI_StartTransmitPacket+0x50>
SLAVE_SELECT_PORT &= ~(1 << SPI_SLAVE_SELECT); // SelectSlave
1367c: 45 98 cbi 0x08, 5 ; 8
SPI_TX_Buffer = (unsigned char *) &ToNaviCtrl;
1367e: 87 ee ldi r24, 0xE7 ; 231
13680: 98 e0 ldi r25, 0x08 ; 8
13682: 90 93 e0 08 sts 0x08E0, r25
13686: 80 93 df 08 sts 0x08DF, r24
 
ToNaviCtrl.Command = SPI_CommandSequence[SPI_CommandCounter++];
1368a: e0 91 bc 04 lds r30, 0x04BC
1368e: 81 e0 ldi r24, 0x01 ; 1
13690: 8e 0f add r24, r30
13692: 80 93 bc 04 sts 0x04BC, r24
13696: f0 e0 ldi r31, 0x00 ; 0
13698: e9 56 subi r30, 0x69 ; 105
1369a: fd 4f sbci r31, 0xFD ; 253
1369c: 90 81 ld r25, Z
1369e: 90 93 e9 08 sts 0x08E9, r25
if (SPI_CommandCounter >= sizeof(SPI_CommandSequence)) SPI_CommandCounter = 0;
136a2: 8d 30 cpi r24, 0x0D ; 13
136a4: 10 f0 brcs .+4 ; 0x136aa <SPI_StartTransmitPacket+0x36>
136a6: 10 92 bc 04 sts 0x04BC, r1
 
SPITransferCompleted = 0;
136aa: 10 92 d6 08 sts 0x08D6, r1
UpdateSPI_Buffer(); // update buffer
136ae: 04 db rcall .-2552 ; 0x12cb8 <UpdateSPI_Buffer>
SPI_BufferIndex = 1;
136b0: 81 e0 ldi r24, 0x01 ; 1
136b2: 80 93 e6 08 sts 0x08E6, r24
ToNaviCtrl.Chksum = ToNaviCtrl.Sync1;
136b6: 80 91 e7 08 lds r24, 0x08E7
136ba: 80 93 08 09 sts 0x0908, r24
SPDR = ToNaviCtrl.Sync1; // Start transmission
136be: 8e bd out 0x2e, r24 ; 46
return(1);
136c0: 81 e0 ldi r24, 0x01 ; 1
136c2: 08 95 ret
}
 
//------------------------------------------------------
unsigned char SPI_StartTransmitPacket(void)
{
if(!SPITransferCompleted) return(0);
136c4: 80 e0 ldi r24, 0x00 ; 0
UpdateSPI_Buffer(); // update buffer
SPI_BufferIndex = 1;
ToNaviCtrl.Chksum = ToNaviCtrl.Sync1;
SPDR = ToNaviCtrl.Sync1; // Start transmission
return(1);
}
136c6: 08 95 ret
 
000136c8 <__vector_18>:
void Delay_ms(unsigned int w)
{
unsigned int akt;
akt = SetDelay(w);
while (!CheckDelay(akt));
}
136c8: 1f 92 push r1
136ca: 0f 92 push r0
136cc: 0f b6 in r0, 0x3f ; 63
136ce: 0f 92 push r0
136d0: 11 24 eor r1, r1
136d2: 0b b6 in r0, 0x3b ; 59
136d4: 0f 92 push r0
136d6: 2f 93 push r18
136d8: 3f 93 push r19
136da: 4f 93 push r20
136dc: 5f 93 push r21
136de: 6f 93 push r22
136e0: 7f 93 push r23
136e2: 8f 93 push r24
136e4: 9f 93 push r25
136e6: af 93 push r26
136e8: bf 93 push r27
136ea: ef 93 push r30
136ec: ff 93 push r31
136ee: 80 91 cc 04 lds r24, 0x04CC
136f2: 88 23 and r24, r24
136f4: 29 f0 breq .+10 ; 0x13700 <__vector_18+0x38>
136f6: 80 91 cc 04 lds r24, 0x04CC
136fa: 81 50 subi r24, 0x01 ; 1
136fc: 80 93 cc 04 sts 0x04CC, r24
13700: 80 91 b0 04 lds r24, 0x04B0
13704: 88 23 and r24, r24
13706: 19 f0 breq .+6 ; 0x1370e <__vector_18+0x46>
13708: 81 50 subi r24, 0x01 ; 1
1370a: 80 93 b0 04 sts 0x04B0, r24
1370e: 80 91 c3 04 lds r24, 0x04C3
13712: 88 23 and r24, r24
13714: 21 f0 breq .+8 ; 0x1371e <__vector_18+0x56>
13716: 81 50 subi r24, 0x01 ; 1
13718: 80 93 c3 04 sts 0x04C3, r24
1371c: 53 c0 rjmp .+166 ; 0x137c4 <__vector_18+0xfc>
1371e: 89 e0 ldi r24, 0x09 ; 9
13720: 80 93 c3 04 sts 0x04C3, r24
13724: 80 91 d2 04 lds r24, 0x04D2
13728: 90 91 d3 04 lds r25, 0x04D3
1372c: 01 96 adiw r24, 0x01 ; 1
1372e: 90 93 d3 04 sts 0x04D3, r25
13732: 80 93 d2 04 sts 0x04D2, r24
13736: 80 91 a6 02 lds r24, 0x02A6
1373a: 8f 5f subi r24, 0xFF ; 255
1373c: 81 70 andi r24, 0x01 ; 1
1373e: 80 93 a6 02 sts 0x02A6, r24
13742: 81 11 cpse r24, r1
13744: 09 c0 rjmp .+18 ; 0x13758 <__vector_18+0x90>
13746: 80 91 d1 04 lds r24, 0x04D1
1374a: 84 30 cpi r24, 0x04 ; 4
1374c: 28 f4 brcc .+10 ; 0x13758 <__vector_18+0x90>
1374e: 80 91 d1 04 lds r24, 0x04D1
13752: 8f 5f subi r24, 0xFF ; 255
13754: 80 93 d1 04 sts 0x04D1, r24
13758: 34 99 sbic 0x06, 4 ; 6
1375a: 03 c0 rjmp .+6 ; 0x13762 <__vector_18+0x9a>
1375c: 81 e0 ldi r24, 0x01 ; 1
1375e: 80 93 ca 04 sts 0x04CA, r24
13762: 80 91 cd 04 lds r24, 0x04CD
13766: 90 91 ce 04 lds r25, 0x04CE
1376a: 89 2b or r24, r25
1376c: 09 f1 breq .+66 ; 0x137b0 <__vector_18+0xe8>
1376e: 80 91 cd 04 lds r24, 0x04CD
13772: 90 91 ce 04 lds r25, 0x04CE
13776: 0b 97 sbiw r24, 0x0b ; 11
13778: 50 f0 brcs .+20 ; 0x1378e <__vector_18+0xc6>
1377a: 80 91 cd 04 lds r24, 0x04CD
1377e: 90 91 ce 04 lds r25, 0x04CE
13782: 0a 97 sbiw r24, 0x0a ; 10
13784: 90 93 ce 04 sts 0x04CE, r25
13788: 80 93 cd 04 sts 0x04CD, r24
1378c: 04 c0 rjmp .+8 ; 0x13796 <__vector_18+0xce>
1378e: 10 92 ce 04 sts 0x04CE, r1
13792: 10 92 cd 04 sts 0x04CD, r1
13796: 20 91 cd 04 lds r18, 0x04CD
1379a: 30 91 ce 04 lds r19, 0x04CE
1379e: 80 91 a9 02 lds r24, 0x02A9
137a2: 90 91 aa 02 lds r25, 0x02AA
137a6: 82 23 and r24, r18
137a8: 93 23 and r25, r19
137aa: 89 2b or r24, r25
137ac: 41 f4 brne .+16 ; 0x137be <__vector_18+0xf6>
137ae: 09 c0 rjmp .+18 ; 0x137c2 <__vector_18+0xfa>
137b0: 8f ef ldi r24, 0xFF ; 255
137b2: 9f ef ldi r25, 0xFF ; 255
137b4: 90 93 aa 02 sts 0x02AA, r25
137b8: 80 93 a9 02 sts 0x02A9, r24
137bc: 02 c0 rjmp .+4 ; 0x137c2 <__vector_18+0xfa>
137be: 47 9a sbi 0x08, 7 ; 8
137c0: 01 c0 rjmp .+2 ; 0x137c4 <__vector_18+0xfc>
137c2: 47 98 cbi 0x08, 7 ; 8
137c4: 80 91 ca 04 lds r24, 0x04CA
137c8: 88 23 and r24, r24
137ca: 09 f4 brne .+2 ; 0x137ce <__vector_18+0x106>
137cc: 60 c0 rjmp .+192 ; 0x1388e <__vector_18+0x1c6>
137ce: 80 91 a4 02 lds r24, 0x02A4
137d2: 81 11 cpse r24, r1
137d4: 5c c0 rjmp .+184 ; 0x1388e <__vector_18+0x1c6>
137d6: 80 91 5c 06 lds r24, 0x065C
137da: 83 ff sbrs r24, 3
137dc: 58 c0 rjmp .+176 ; 0x1388e <__vector_18+0x1c6>
137de: 34 9b sbis 0x06, 4 ; 6
137e0: 10 c0 rjmp .+32 ; 0x13802 <__vector_18+0x13a>
137e2: 80 91 cf 04 lds r24, 0x04CF
137e6: 90 91 d0 04 lds r25, 0x04D0
137ea: 01 96 adiw r24, 0x01 ; 1
137ec: 90 93 d0 04 sts 0x04D0, r25
137f0: 80 93 cf 04 sts 0x04CF, r24
137f4: 89 3e cpi r24, 0xE9 ; 233
137f6: 93 40 sbci r25, 0x03 ; 3
137f8: 08 f4 brcc .+2 ; 0x137fc <__vector_18+0x134>
137fa: 49 c0 rjmp .+146 ; 0x1388e <__vector_18+0x1c6>
137fc: 10 92 ca 04 sts 0x04CA, r1
13800: 46 c0 rjmp .+140 ; 0x1388e <__vector_18+0x1c6>
13802: 80 91 cf 04 lds r24, 0x04CF
13806: 90 91 d0 04 lds r25, 0x04D0
1380a: 89 2b or r24, r25
1380c: e1 f1 breq .+120 ; 0x13886 <__vector_18+0x1be>
1380e: 80 91 cf 04 lds r24, 0x04CF
13812: 90 91 d0 04 lds r25, 0x04D0
13816: 8a 36 cpi r24, 0x6A ; 106
13818: 91 40 sbci r25, 0x01 ; 1
1381a: a8 f5 brcc .+106 ; 0x13886 <__vector_18+0x1be>
1381c: 40 91 cf 04 lds r20, 0x04CF
13820: 50 91 d0 04 lds r21, 0x04D0
13824: e0 91 cf 04 lds r30, 0x04CF
13828: f0 91 d0 04 lds r31, 0x04D0
1382c: 9a 01 movw r18, r20
1382e: ad e9 ldi r26, 0x9D ; 157
13830: bf e8 ldi r27, 0x8F ; 143
13832: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
13836: 48 1b sub r20, r24
13838: 59 0b sbc r21, r25
1383a: 56 95 lsr r21
1383c: 47 95 ror r20
1383e: 84 0f add r24, r20
13840: 95 1f adc r25, r21
13842: 96 95 lsr r25
13844: 87 95 ror r24
13846: 92 95 swap r25
13848: 82 95 swap r24
1384a: 8f 70 andi r24, 0x0F ; 15
1384c: 89 27 eor r24, r25
1384e: 9f 70 andi r25, 0x0F ; 15
13850: 89 27 eor r24, r25
13852: e8 0f add r30, r24
13854: f9 1f adc r31, r25
13856: f0 93 d0 04 sts 0x04D0, r31
1385a: e0 93 cf 04 sts 0x04CF, r30
1385e: 80 91 cf 04 lds r24, 0x04CF
13862: 90 91 d0 04 lds r25, 0x04D0
13866: 0b 97 sbiw r24, 0x0b ; 11
13868: 50 f0 brcs .+20 ; 0x1387e <__vector_18+0x1b6>
1386a: 80 91 cf 04 lds r24, 0x04CF
1386e: 90 91 d0 04 lds r25, 0x04D0
13872: 0a 97 sbiw r24, 0x0a ; 10
13874: 90 93 4f 01 sts 0x014F, r25
13878: 80 93 4e 01 sts 0x014E, r24
1387c: 04 c0 rjmp .+8 ; 0x13886 <__vector_18+0x1be>
1387e: 10 92 4f 01 sts 0x014F, r1
13882: 10 92 4e 01 sts 0x014E, r1
13886: 10 92 d0 04 sts 0x04D0, r1
1388a: 10 92 cf 04 sts 0x04CF, r1
1388e: ff 91 pop r31
13890: ef 91 pop r30
13892: bf 91 pop r27
13894: af 91 pop r26
13896: 9f 91 pop r25
13898: 8f 91 pop r24
1389a: 7f 91 pop r23
1389c: 6f 91 pop r22
1389e: 5f 91 pop r21
138a0: 4f 91 pop r20
138a2: 3f 91 pop r19
138a4: 2f 91 pop r18
138a6: 0f 90 pop r0
138a8: 0b be out 0x3b, r0 ; 59
138aa: 0f 90 pop r0
138ac: 0f be out 0x3f, r0 ; 63
138ae: 0f 90 pop r0
138b0: 1f 90 pop r1
138b2: 18 95 reti
 
000138b4 <SetDelay>:
138b4: 20 91 d2 04 lds r18, 0x04D2
138b8: 30 91 d3 04 lds r19, 0x04D3
138bc: 2f 5f subi r18, 0xFF ; 255
138be: 3f 4f sbci r19, 0xFF ; 255
138c0: 82 0f add r24, r18
138c2: 93 1f adc r25, r19
138c4: 08 95 ret
 
000138c6 <CheckDelay>:
138c6: 20 91 d2 04 lds r18, 0x04D2
138ca: 30 91 d3 04 lds r19, 0x04D3
138ce: 82 1b sub r24, r18
138d0: 93 0b sbc r25, r19
138d2: 88 27 eor r24, r24
138d4: 90 78 andi r25, 0x80 ; 128
138d6: 89 2f mov r24, r25
138d8: 86 95 lsr r24
138da: 08 95 ret
 
000138dc <Delay_ms_Mess>:
 
void Delay_ms_Mess(unsigned int w)
{
138dc: ff 92 push r15
138de: 0f 93 push r16
138e0: 1f 93 push r17
138e2: cf 93 push r28
138e4: df 93 push r29
 
// -----------------------------------------------------------------------
unsigned int SetDelay(unsigned int t)
{
// TIMSK0 &= ~_BV(TOIE0);
return(CountMilliseconds + t + 1);
138e6: c0 91 d2 04 lds r28, 0x04D2
138ea: d0 91 d3 04 lds r29, 0x04D3
138ee: 21 96 adiw r28, 0x01 ; 1
138f0: c8 0f add r28, r24
138f2: d9 1f adc r29, r25
 
void Delay_ms_Mess(unsigned int w)
{
unsigned int akt;
akt = SetDelay(w);
while (!CheckDelay(akt)) if(AdReady) {AdReady = 0; ANALOG_ON;}
138f4: 0a e7 ldi r16, 0x7A ; 122
138f6: 10 e0 ldi r17, 0x00 ; 0
138f8: 0f 2e mov r0, r31
138fa: ff ec ldi r31, 0xCF ; 207
138fc: ff 2e mov r15, r31
138fe: f0 2d mov r31, r0
13900: 08 c0 rjmp .+16 ; 0x13912 <Delay_ms_Mess+0x36>
13902: 80 91 0f 01 lds r24, 0x010F
13906: 88 23 and r24, r24
13908: 21 f0 breq .+8 ; 0x13912 <Delay_ms_Mess+0x36>
1390a: 10 92 0f 01 sts 0x010F, r1
1390e: f8 01 movw r30, r16
13910: f0 82 st Z, r15
13912: ce 01 movw r24, r28
13914: d8 df rcall .-80 ; 0x138c6 <CheckDelay>
13916: 88 23 and r24, r24
13918: a1 f3 breq .-24 ; 0x13902 <Delay_ms_Mess+0x26>
}
1391a: df 91 pop r29
1391c: cf 91 pop r28
1391e: 1f 91 pop r17
13920: 0f 91 pop r16
13922: ff 90 pop r15
13924: 08 95 ret
 
00013926 <TIMER2_Init>:
/*****************************************************/
// The timer 2 is used to generate the PWM at PD7 (J7)
// to control a camera servo for nick compensation.
void TIMER2_Init(void)
{
uint8_t sreg = SREG;
13926: 8f b7 in r24, 0x3f ; 63
 
// disable all interrupts before reconfiguration
cli();
13928: f8 94 cli
 
PORTD &= ~(1<<PORTD7); // set PD7 to low
1392a: 5f 98 cbi 0x0b, 7 ; 11
 
DDRC |= (1<<DDRC6); // set PC6 as output (Reset for HEF4017)
1392c: 3e 9a sbi 0x07, 6 ; 7
HEF4017Reset_ON;
1392e: 46 9a sbi 0x08, 6 ; 8
// Timer/Counter 2 Control Register A
 
// Timer Mode is FastPWM with timer reload at OCR2A (Bits: WGM22 = 1, WGM21 = 1, WGM20 = 1)
// PD7: Normal port operation, OC2A disconnected, (Bits: COM2A1 = 0, COM2A0 = 0)
// PD6: Normal port operation, OC2B disconnected, (Bits: COM2B1 = 0, COM2B0 = 0)
TCCR2A &= ~((1<<COM2A1)|(1<<COM2A0)|(1<<COM2B1)|(1<<COM2B0));
13930: e0 eb ldi r30, 0xB0 ; 176
13932: f0 e0 ldi r31, 0x00 ; 0
13934: 90 81 ld r25, Z
13936: 9f 70 andi r25, 0x0F ; 15
13938: 90 83 st Z, r25
TCCR2A |= (1<<WGM21)|(1<<WGM20);
1393a: 90 81 ld r25, Z
1393c: 93 60 ori r25, 0x03 ; 3
1393e: 90 83 st Z, r25
// Set clock divider for timer 2 to SYSKLOCK/32 = 20MHz / 32 = 625 kHz
// The timer increments from 0x00 to 0xFF with an update rate of 625 kHz or 1.6 us
// hence the timer overflow interrupt frequency is 625 kHz / 256 = 2.44 kHz or 0.4096 ms
 
// divider 32 (Bits: CS022 = 0, CS21 = 1, CS20 = 1)
TCCR2B &= ~((1<<FOC2A)|(1<<FOC2B)|(1<<CS22));
13940: a1 eb ldi r26, 0xB1 ; 177
13942: b0 e0 ldi r27, 0x00 ; 0
13944: 9c 91 ld r25, X
13946: 9b 73 andi r25, 0x3B ; 59
13948: 9c 93 st X, r25
TCCR2B |= (1<<CS21)|(1<<CS20)|(1<<WGM22);
1394a: 9c 91 ld r25, X
1394c: 9b 60 ori r25, 0x0B ; 11
1394e: 9c 93 st X, r25
 
// Initialize the Timer/Counter 2 Register
TCNT2 = 0;
13950: 10 92 b2 00 sts 0x00B2, r1
 
// Initialize the Output Compare Register A used for PWM generation on port PD7.
OCR2A = 255;
13954: 9f ef ldi r25, 0xFF ; 255
13956: 90 93 b3 00 sts 0x00B3, r25
TCCR2A |= (1<<COM2A1); // set or clear at compare match depends on value of COM2A0
1395a: 90 81 ld r25, Z
1395c: 90 68 ori r25, 0x80 ; 128
1395e: 90 83 st Z, r25
 
// Timer/Counter 2 Interrupt Mask Register
// Enable timer output compare match A Interrupt only
TIMSK2 &= ~((1<<OCIE2B)|(1<<TOIE2));
13960: e0 e7 ldi r30, 0x70 ; 112
13962: f0 e0 ldi r31, 0x00 ; 0
13964: 90 81 ld r25, Z
13966: 9a 7f andi r25, 0xFA ; 250
13968: 90 83 st Z, r25
TIMSK2 |= (1<<OCIE2A);
1396a: 90 81 ld r25, Z
1396c: 92 60 ori r25, 0x02 ; 2
1396e: 90 83 st Z, r25
 
SREG = sreg;
13970: 8f bf out 0x3f, r24 ; 63
13972: 08 95 ret
 
00013974 <Timer_Init>:
 
// -----------------------------------------------------------------------
unsigned int SetDelay(unsigned int t)
{
// TIMSK0 &= ~_BV(TOIE0);
return(CountMilliseconds + t + 1);
13974: 80 91 d2 04 lds r24, 0x04D2
13978: 90 91 d3 04 lds r25, 0x04D3
1397c: 0b 96 adiw r24, 0x0b ; 11
}
 
//----------------------------
void Timer_Init(void)
{
tim_main = SetDelay(10);
1397e: 90 93 52 09 sts 0x0952, r25
13982: 80 93 51 09 sts 0x0951, r24
TCCR0B = CK8;
13986: 82 e0 ldi r24, 0x02 ; 2
13988: 85 bd out 0x25, r24 ; 37
// TCCR0A = (1<<COM0A1)|(1<<COM0B1)|3;//fast PWM
TCCR0A = (1<<COM0A1)|(1<<COM0B1)|(1<<COM0B0)|3;//fast PWM
1398a: 83 eb ldi r24, 0xB3 ; 179
1398c: 84 bd out 0x24, r24 ; 36
OCR0B = 255;
1398e: 8f ef ldi r24, 0xFF ; 255
13990: 88 bd out 0x28, r24 ; 40
OCR0A = 180;
13992: 84 eb ldi r24, 0xB4 ; 180
13994: 87 bd out 0x27, r24 ; 39
TCNT0 = (unsigned char)-TIMER_RELOAD_VALUE; // reload
13996: 86 e0 ldi r24, 0x06 ; 6
13998: 86 bd out 0x26, r24 ; 38
//OCR1 = 0x00;
TIMSK0 |= _BV(TOIE0);
1399a: ee e6 ldi r30, 0x6E ; 110
1399c: f0 e0 ldi r31, 0x00 ; 0
1399e: 80 81 ld r24, Z
139a0: 81 60 ori r24, 0x01 ; 1
139a2: 80 83 st Z, r24
139a4: 08 95 ret
 
000139a6 <CalcNickServoValue>:
/*****************************************************/
void CalcNickServoValue(void)
{
signed int max, min;
 
if(EE_Parameter.ServoCompInvert & SERVO_RELATIVE) // relative moving of the servo value
139a6: 80 91 b7 05 lds r24, 0x05B7
139aa: 82 ff sbrs r24, 2
139ac: 32 c0 rjmp .+100 ; 0x13a12 <CalcNickServoValue+0x6c>
{
max = ((unsigned int) EE_Parameter.ServoNickMax * MULTIPLYER * 15);
139ae: 50 91 6e 05 lds r21, 0x056E
min = ((unsigned int) EE_Parameter.ServoNickMin * MULTIPLYER * 20);
139b2: 20 91 6d 05 lds r18, 0x056D
139b6: 40 e5 ldi r20, 0x50 ; 80
139b8: 24 9f mul r18, r20
139ba: 90 01 movw r18, r0
139bc: 11 24 eor r1, r1
NickServoValue -= ((signed char) (Parameter_ServoNickControl - 128) / 4) * 6;
139be: 80 91 2f 01 lds r24, 0x012F
139c2: 80 58 subi r24, 0x80 ; 128
139c4: 0a f4 brpl .+2 ; 0x139c8 <CalcNickServoValue+0x22>
139c6: 8d 5f subi r24, 0xFD ; 253
139c8: 48 2f mov r20, r24
139ca: 45 95 asr r20
139cc: 45 95 asr r20
139ce: 80 91 a7 02 lds r24, 0x02A7
139d2: 90 91 a8 02 lds r25, 0x02A8
139d6: 66 e0 ldi r22, 0x06 ; 6
139d8: 46 02 muls r20, r22
139da: 80 19 sub r24, r0
139dc: 91 09 sbc r25, r1
139de: 11 24 eor r1, r1
LIMIT_MIN_MAX(NickServoValue,min, max);
139e0: 28 17 cp r18, r24
139e2: 39 07 cpc r19, r25
139e4: 2c f0 brlt .+10 ; 0x139f0 <CalcNickServoValue+0x4a>
139e6: 30 93 a8 02 sts 0x02A8, r19
139ea: 20 93 a7 02 sts 0x02A7, r18
139ee: 08 95 ret
{
signed int max, min;
 
if(EE_Parameter.ServoCompInvert & SERVO_RELATIVE) // relative moving of the servo value
{
max = ((unsigned int) EE_Parameter.ServoNickMax * MULTIPLYER * 15);
139f0: 4c e3 ldi r20, 0x3C ; 60
139f2: 54 9f mul r21, r20
139f4: 90 01 movw r18, r0
139f6: 11 24 eor r1, r1
min = ((unsigned int) EE_Parameter.ServoNickMin * MULTIPLYER * 20);
NickServoValue -= ((signed char) (Parameter_ServoNickControl - 128) / 4) * 6;
LIMIT_MIN_MAX(NickServoValue,min, max);
139f8: 82 17 cp r24, r18
139fa: 93 07 cpc r25, r19
139fc: 2c f4 brge .+10 ; 0x13a08 <CalcNickServoValue+0x62>
 
if(EE_Parameter.ServoCompInvert & SERVO_RELATIVE) // relative moving of the servo value
{
max = ((unsigned int) EE_Parameter.ServoNickMax * MULTIPLYER * 15);
min = ((unsigned int) EE_Parameter.ServoNickMin * MULTIPLYER * 20);
NickServoValue -= ((signed char) (Parameter_ServoNickControl - 128) / 4) * 6;
139fe: 90 93 a8 02 sts 0x02A8, r25
13a02: 80 93 a7 02 sts 0x02A7, r24
13a06: 08 95 ret
LIMIT_MIN_MAX(NickServoValue,min, max);
13a08: 30 93 a8 02 sts 0x02A8, r19
13a0c: 20 93 a7 02 sts 0x02A7, r18
13a10: 08 95 ret
}
else NickServoValue = (int16_t)Parameter_ServoNickControl * (MULTIPLYER*16); // direct poti control
13a12: 80 91 2f 01 lds r24, 0x012F
13a16: 60 e4 ldi r22, 0x40 ; 64
13a18: 86 9f mul r24, r22
13a1a: c0 01 movw r24, r0
13a1c: 11 24 eor r1, r1
13a1e: 90 93 a8 02 sts 0x02A8, r25
13a22: 80 93 a7 02 sts 0x02A7, r24
13a26: 08 95 ret
 
00013a28 <CalculateServo>:
}
 
void CalculateServo(void)
{
13a28: 8f 92 push r8
13a2a: 9f 92 push r9
13a2c: af 92 push r10
13a2e: bf 92 push r11
13a30: cf 92 push r12
13a32: df 92 push r13
13a34: ef 92 push r14
13a36: ff 92 push r15
13a38: 0f 93 push r16
13a3a: 1f 93 push r17
signed char cosinus, sinus;
signed long nick, roll;
 
cosinus = sintab[EE_Parameter.CamOrientation + 6];
13a3c: e0 91 75 05 lds r30, 0x0575
13a40: f0 e0 ldi r31, 0x00 ; 0
13a42: e5 53 subi r30, 0x35 ; 53
13a44: fd 4f sbci r31, 0xFD ; 253
13a46: a6 81 ldd r26, Z+6 ; 0x06
sinus = sintab[EE_Parameter.CamOrientation];
13a48: e0 81 ld r30, Z
 
if(CalculateServoSignals == 1)
13a4a: 80 91 af 02 lds r24, 0x02AF
13a4e: 81 30 cpi r24, 0x01 ; 1
13a50: 09 f0 breq .+2 ; 0x13a54 <CalculateServo+0x2c>
13a52: 31 c1 rjmp .+610 ; 0x13cb6 <CalculateServo+0x28e>
{
if(EE_Parameter.GlobalConfig3 & CFG3_SERVO_NICK_COMP_OFF) nick = 0;
13a54: 80 91 b9 05 lds r24, 0x05B9
13a58: 88 23 and r24, r24
13a5a: 0c f4 brge .+2 ; 0x13a5e <CalculateServo+0x36>
13a5c: 47 c0 rjmp .+142 ; 0x13aec <CalculateServo+0xc4>
else nick = (cosinus * IntegralNick) / 128L - (sinus * IntegralRoll) / 128L;
13a5e: 20 91 42 04 lds r18, 0x0442
13a62: 30 91 43 04 lds r19, 0x0443
13a66: 40 91 44 04 lds r20, 0x0444
13a6a: 50 91 45 04 lds r21, 0x0445
13a6e: bb 27 eor r27, r27
13a70: a7 fd sbrc r26, 7
13a72: b0 95 com r27
13a74: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
13a78: 8b 01 movw r16, r22
13a7a: 9c 01 movw r18, r24
13a7c: 99 23 and r25, r25
13a7e: 24 f4 brge .+8 ; 0x13a88 <CalculateServo+0x60>
13a80: 01 58 subi r16, 0x81 ; 129
13a82: 1f 4f sbci r17, 0xFF ; 255
13a84: 2f 4f sbci r18, 0xFF ; 255
13a86: 3f 4f sbci r19, 0xFF ; 255
13a88: 68 01 movw r12, r16
13a8a: 79 01 movw r14, r18
13a8c: 68 94 set
13a8e: 16 f8 bld r1, 6
13a90: f5 94 asr r15
13a92: e7 94 ror r14
13a94: d7 94 ror r13
13a96: c7 94 ror r12
13a98: 16 94 lsr r1
13a9a: d1 f7 brne .-12 ; 0x13a90 <CalculateServo+0x68>
13a9c: 20 91 3e 04 lds r18, 0x043E
13aa0: 30 91 3f 04 lds r19, 0x043F
13aa4: 40 91 40 04 lds r20, 0x0440
13aa8: 50 91 41 04 lds r21, 0x0441
13aac: ae 2f mov r26, r30
13aae: bb 27 eor r27, r27
13ab0: a7 fd sbrc r26, 7
13ab2: b0 95 com r27
13ab4: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
13ab8: 4b 01 movw r8, r22
13aba: 5c 01 movw r10, r24
13abc: 99 23 and r25, r25
13abe: 2c f4 brge .+10 ; 0x13aca <CalculateServo+0xa2>
13ac0: 2f e7 ldi r18, 0x7F ; 127
13ac2: 82 0e add r8, r18
13ac4: 91 1c adc r9, r1
13ac6: a1 1c adc r10, r1
13ac8: b1 1c adc r11, r1
13aca: d5 01 movw r26, r10
13acc: c4 01 movw r24, r8
13ace: 68 94 set
13ad0: 16 f8 bld r1, 6
13ad2: b5 95 asr r27
13ad4: a7 95 ror r26
13ad6: 97 95 ror r25
13ad8: 87 95 ror r24
13ada: 16 94 lsr r1
13adc: d1 f7 brne .-12 ; 0x13ad2 <CalculateServo+0xaa>
13ade: 97 01 movw r18, r14
13ae0: 86 01 movw r16, r12
13ae2: 08 1b sub r16, r24
13ae4: 19 0b sbc r17, r25
13ae6: 2a 0b sbc r18, r26
13ae8: 3b 0b sbc r19, r27
13aea: 03 c0 rjmp .+6 ; 0x13af2 <CalculateServo+0xca>
cosinus = sintab[EE_Parameter.CamOrientation + 6];
sinus = sintab[EE_Parameter.CamOrientation];
 
if(CalculateServoSignals == 1)
{
if(EE_Parameter.GlobalConfig3 & CFG3_SERVO_NICK_COMP_OFF) nick = 0;
13aec: 00 e0 ldi r16, 0x00 ; 0
13aee: 10 e0 ldi r17, 0x00 ; 0
13af0: 98 01 movw r18, r16
else nick = (cosinus * IntegralNick) / 128L - (sinus * IntegralRoll) / 128L;
nick -= POI_KameraNick * 7;
nick = ((long)Parameter_ServoNickComp * nick) / 512L;
13af2: e0 91 2d 01 lds r30, 0x012D
 
if(CalculateServoSignals == 1)
{
if(EE_Parameter.GlobalConfig3 & CFG3_SERVO_NICK_COMP_OFF) nick = 0;
else nick = (cosinus * IntegralNick) / 128L - (sinus * IntegralRoll) / 128L;
nick -= POI_KameraNick * 7;
13af6: 60 91 b5 04 lds r22, 0x04B5
13afa: 70 91 b6 04 lds r23, 0x04B6
13afe: cb 01 movw r24, r22
13b00: 88 0f add r24, r24
13b02: 99 1f adc r25, r25
13b04: 88 0f add r24, r24
13b06: 99 1f adc r25, r25
13b08: 88 0f add r24, r24
13b0a: 99 1f adc r25, r25
13b0c: 86 1b sub r24, r22
13b0e: 97 0b sbc r25, r23
13b10: aa 27 eor r26, r26
13b12: 97 fd sbrc r25, 7
13b14: a0 95 com r26
13b16: ba 2f mov r27, r26
13b18: a9 01 movw r20, r18
13b1a: 98 01 movw r18, r16
13b1c: 28 1b sub r18, r24
13b1e: 39 0b sbc r19, r25
13b20: 4a 0b sbc r20, r26
13b22: 5b 0b sbc r21, r27
nick = ((long)Parameter_ServoNickComp * nick) / 512L;
13b24: ae 2f mov r26, r30
13b26: b0 e0 ldi r27, 0x00 ; 0
13b28: 0e 94 c8 b1 call 0x16390 ; 0x16390 <__muluhisi3>
13b2c: 6b 01 movw r12, r22
13b2e: 7c 01 movw r14, r24
13b30: 99 23 and r25, r25
13b32: 34 f4 brge .+12 ; 0x13b40 <CalculateServo+0x118>
13b34: 3f ef ldi r19, 0xFF ; 255
13b36: c3 0e add r12, r19
13b38: 31 e0 ldi r19, 0x01 ; 1
13b3a: d3 1e adc r13, r19
13b3c: e1 1c adc r14, r1
13b3e: f1 1c adc r15, r1
13b40: 0b 2e mov r0, r27
13b42: b9 e0 ldi r27, 0x09 ; 9
13b44: f5 94 asr r15
13b46: e7 94 ror r14
13b48: d7 94 ror r13
13b4a: c7 94 ror r12
13b4c: ba 95 dec r27
13b4e: d1 f7 brne .-12 ; 0x13b44 <CalculateServo+0x11c>
13b50: b0 2d mov r27, r0
// offset (Range from 0 to 255 * 3 = 765)
if(EE_Parameter.ServoCompInvert & SERVO_RELATIVE) ServoNickOffset = NickServoValue;
13b52: e0 91 b7 05 lds r30, 0x05B7
13b56: e2 ff sbrs r30, 2
13b58: 09 c0 rjmp .+18 ; 0x13b6c <CalculateServo+0x144>
13b5a: 80 91 a7 02 lds r24, 0x02A7
13b5e: 90 91 a8 02 lds r25, 0x02A8
13b62: 90 93 ae 02 sts 0x02AE, r25
13b66: 80 93 ad 02 sts 0x02AD, r24
13b6a: 19 c0 rjmp .+50 ; 0x13b9e <CalculateServo+0x176>
else ServoNickOffset += (NickServoValue - ServoNickOffset) / EE_Parameter.ServoManualControlSpeed;
13b6c: 40 91 ad 02 lds r20, 0x02AD
13b70: 50 91 ae 02 lds r21, 0x02AE
13b74: 20 91 ad 02 lds r18, 0x02AD
13b78: 30 91 ae 02 lds r19, 0x02AE
13b7c: 80 91 a7 02 lds r24, 0x02A7
13b80: 90 91 a8 02 lds r25, 0x02A8
13b84: 84 1b sub r24, r20
13b86: 95 0b sbc r25, r21
13b88: 60 91 74 05 lds r22, 0x0574
13b8c: 70 e0 ldi r23, 0x00 ; 0
13b8e: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
13b92: 26 0f add r18, r22
13b94: 37 1f adc r19, r23
13b96: 30 93 ae 02 sts 0x02AE, r19
13b9a: 20 93 ad 02 sts 0x02AD, r18
 
if(EE_Parameter.ServoCompInvert & SERVO_NICK_INV) // inverting movement of servo
13b9e: e0 ff sbrs r30, 0
13ba0: 18 c0 rjmp .+48 ; 0x13bd2 <CalculateServo+0x1aa>
{
nick = ServoNickOffset / 16 + nick;
13ba2: 80 91 ad 02 lds r24, 0x02AD
13ba6: 90 91 ae 02 lds r25, 0x02AE
13baa: 99 23 and r25, r25
13bac: 0c f4 brge .+2 ; 0x13bb0 <CalculateServo+0x188>
13bae: 0f 96 adiw r24, 0x0f ; 15
13bb0: 95 95 asr r25
13bb2: 87 95 ror r24
13bb4: 95 95 asr r25
13bb6: 87 95 ror r24
13bb8: 95 95 asr r25
13bba: 87 95 ror r24
13bbc: 95 95 asr r25
13bbe: 87 95 ror r24
13bc0: aa 27 eor r26, r26
13bc2: 97 fd sbrc r25, 7
13bc4: a0 95 com r26
13bc6: ba 2f mov r27, r26
13bc8: c8 0e add r12, r24
13bca: d9 1e adc r13, r25
13bcc: ea 1e adc r14, r26
13bce: fb 1e adc r15, r27
13bd0: 1b c0 rjmp .+54 ; 0x13c08 <CalculateServo+0x1e0>
}
else
{ // inverting movement of servo
nick = ServoNickOffset / 16 - nick;
13bd2: 80 91 ad 02 lds r24, 0x02AD
13bd6: 90 91 ae 02 lds r25, 0x02AE
13bda: 99 23 and r25, r25
13bdc: 0c f4 brge .+2 ; 0x13be0 <CalculateServo+0x1b8>
13bde: 0f 96 adiw r24, 0x0f ; 15
13be0: 95 95 asr r25
13be2: 87 95 ror r24
13be4: 95 95 asr r25
13be6: 87 95 ror r24
13be8: 95 95 asr r25
13bea: 87 95 ror r24
13bec: 95 95 asr r25
13bee: 87 95 ror r24
13bf0: aa 27 eor r26, r26
13bf2: 97 fd sbrc r25, 7
13bf4: a0 95 com r26
13bf6: ba 2f mov r27, r26
13bf8: 9c 01 movw r18, r24
13bfa: ad 01 movw r20, r26
13bfc: 2c 19 sub r18, r12
13bfe: 3d 09 sbc r19, r13
13c00: 4e 09 sbc r20, r14
13c02: 5f 09 sbc r21, r15
13c04: 69 01 movw r12, r18
13c06: 7a 01 movw r14, r20
}
if(EE_Parameter.ServoFilterNick) ServoNickValue = ((ServoNickValue * EE_Parameter.ServoFilterNick) + nick) / (EE_Parameter.ServoFilterNick + 1);
13c08: 20 91 a9 05 lds r18, 0x05A9
13c0c: 22 23 and r18, r18
13c0e: 21 f1 breq .+72 ; 0x13c58 <CalculateServo+0x230>
13c10: 30 e0 ldi r19, 0x00 ; 0
13c12: 80 91 c6 04 lds r24, 0x04C6
13c16: 90 91 c7 04 lds r25, 0x04C7
13c1a: 28 9f mul r18, r24
13c1c: b0 01 movw r22, r0
13c1e: 29 9f mul r18, r25
13c20: 70 0d add r23, r0
13c22: 38 9f mul r19, r24
13c24: 70 0d add r23, r0
13c26: 11 24 eor r1, r1
13c28: cb 01 movw r24, r22
13c2a: aa 27 eor r26, r26
13c2c: 97 fd sbrc r25, 7
13c2e: a0 95 com r26
13c30: ba 2f mov r27, r26
13c32: bc 01 movw r22, r24
13c34: cd 01 movw r24, r26
13c36: 6c 0d add r22, r12
13c38: 7d 1d adc r23, r13
13c3a: 8e 1d adc r24, r14
13c3c: 9f 1d adc r25, r15
13c3e: 2f 5f subi r18, 0xFF ; 255
13c40: 3f 4f sbci r19, 0xFF ; 255
13c42: 44 27 eor r20, r20
13c44: 37 fd sbrc r19, 7
13c46: 40 95 com r20
13c48: 54 2f mov r21, r20
13c4a: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
13c4e: 30 93 c7 04 sts 0x04C7, r19
13c52: 20 93 c6 04 sts 0x04C6, r18
13c56: 04 c0 rjmp .+8 ; 0x13c60 <CalculateServo+0x238>
else ServoNickValue = nick;
13c58: d0 92 c7 04 sts 0x04C7, r13
13c5c: c0 92 c6 04 sts 0x04C6, r12
// limit servo value to its parameter range definition
if(ServoNickValue < ((int16_t)EE_Parameter.ServoNickMin * MULTIPLYER))
13c60: 80 91 6d 05 lds r24, 0x056D
13c64: 90 e0 ldi r25, 0x00 ; 0
13c66: 88 0f add r24, r24
13c68: 99 1f adc r25, r25
13c6a: 88 0f add r24, r24
13c6c: 99 1f adc r25, r25
13c6e: 20 91 c6 04 lds r18, 0x04C6
13c72: 30 91 c7 04 lds r19, 0x04C7
13c76: 28 17 cp r18, r24
13c78: 39 07 cpc r19, r25
13c7a: 2c f4 brge .+10 ; 0x13c86 <CalculateServo+0x25e>
{
ServoNickValue = (int16_t)EE_Parameter.ServoNickMin * MULTIPLYER;
13c7c: 90 93 c7 04 sts 0x04C7, r25
13c80: 80 93 c6 04 sts 0x04C6, r24
13c84: 12 c0 rjmp .+36 ; 0x13caa <CalculateServo+0x282>
}
else
if(ServoNickValue > ((int16_t)EE_Parameter.ServoNickMax * MULTIPLYER))
13c86: 80 91 6e 05 lds r24, 0x056E
13c8a: 90 e0 ldi r25, 0x00 ; 0
13c8c: 88 0f add r24, r24
13c8e: 99 1f adc r25, r25
13c90: 88 0f add r24, r24
13c92: 99 1f adc r25, r25
13c94: 20 91 c6 04 lds r18, 0x04C6
13c98: 30 91 c7 04 lds r19, 0x04C7
13c9c: 82 17 cp r24, r18
13c9e: 93 07 cpc r25, r19
13ca0: 24 f4 brge .+8 ; 0x13caa <CalculateServo+0x282>
{
ServoNickValue = (int16_t)EE_Parameter.ServoNickMax * MULTIPLYER;
13ca2: 90 93 c7 04 sts 0x04C7, r25
13ca6: 80 93 c6 04 sts 0x04C6, r24
}
// if(PlatinenVersion < 20) CalculateServoSignals = 0; else
CalculateServoSignals++;
13caa: 80 91 af 02 lds r24, 0x02AF
13cae: 8f 5f subi r24, 0xFF ; 255
13cb0: 80 93 af 02 sts 0x02AF, r24
13cb4: 07 c1 rjmp .+526 ; 0x13ec4 <CalculateServo+0x49c>
}
else
{
roll = (cosinus * IntegralRoll) / 128L + (sinus * IntegralNick) / 128L;
roll = ((long)Parameter_ServoRollComp * roll) / 512L;
13cb6: c0 90 2c 01 lds r12, 0x012C
13cba: d1 2c mov r13, r1
13cbc: e1 2c mov r14, r1
13cbe: f1 2c mov r15, r1
// if(PlatinenVersion < 20) CalculateServoSignals = 0; else
CalculateServoSignals++;
}
else
{
roll = (cosinus * IntegralRoll) / 128L + (sinus * IntegralNick) / 128L;
13cc0: 20 91 3e 04 lds r18, 0x043E
13cc4: 30 91 3f 04 lds r19, 0x043F
13cc8: 40 91 40 04 lds r20, 0x0440
13ccc: 50 91 41 04 lds r21, 0x0441
13cd0: bb 27 eor r27, r27
13cd2: a7 fd sbrc r26, 7
13cd4: b0 95 com r27
13cd6: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
13cda: 8b 01 movw r16, r22
13cdc: 9c 01 movw r18, r24
13cde: 99 23 and r25, r25
13ce0: 24 f4 brge .+8 ; 0x13cea <CalculateServo+0x2c2>
13ce2: 01 58 subi r16, 0x81 ; 129
13ce4: 1f 4f sbci r17, 0xFF ; 255
13ce6: 2f 4f sbci r18, 0xFF ; 255
13ce8: 3f 4f sbci r19, 0xFF ; 255
13cea: 48 01 movw r8, r16
13cec: 59 01 movw r10, r18
13cee: 68 94 set
13cf0: 16 f8 bld r1, 6
13cf2: b5 94 asr r11
13cf4: a7 94 ror r10
13cf6: 97 94 ror r9
13cf8: 87 94 ror r8
13cfa: 16 94 lsr r1
13cfc: d1 f7 brne .-12 ; 0x13cf2 <CalculateServo+0x2ca>
13cfe: 20 91 42 04 lds r18, 0x0442
13d02: 30 91 43 04 lds r19, 0x0443
13d06: 40 91 44 04 lds r20, 0x0444
13d0a: 50 91 45 04 lds r21, 0x0445
13d0e: ae 2f mov r26, r30
13d10: bb 27 eor r27, r27
13d12: a7 fd sbrc r26, 7
13d14: b0 95 com r27
13d16: 0e 94 d2 b1 call 0x163a4 ; 0x163a4 <__mulshisi3>
13d1a: 8b 01 movw r16, r22
13d1c: 9c 01 movw r18, r24
13d1e: 99 23 and r25, r25
13d20: 24 f4 brge .+8 ; 0x13d2a <CalculateServo+0x302>
13d22: 01 58 subi r16, 0x81 ; 129
13d24: 1f 4f sbci r17, 0xFF ; 255
13d26: 2f 4f sbci r18, 0xFF ; 255
13d28: 3f 4f sbci r19, 0xFF ; 255
13d2a: d9 01 movw r26, r18
13d2c: c8 01 movw r24, r16
13d2e: 68 94 set
13d30: 16 f8 bld r1, 6
13d32: b5 95 asr r27
13d34: a7 95 ror r26
13d36: 97 95 ror r25
13d38: 87 95 ror r24
13d3a: 16 94 lsr r1
13d3c: d1 f7 brne .-12 ; 0x13d32 <CalculateServo+0x30a>
13d3e: bc 01 movw r22, r24
13d40: cd 01 movw r24, r26
13d42: 68 0d add r22, r8
13d44: 79 1d adc r23, r9
13d46: 8a 1d adc r24, r10
13d48: 9b 1d adc r25, r11
roll = ((long)Parameter_ServoRollComp * roll) / 512L;
13d4a: a7 01 movw r20, r14
13d4c: 96 01 movw r18, r12
13d4e: 0e 94 27 b1 call 0x1624e ; 0x1624e <__mulsi3>
13d52: 6b 01 movw r12, r22
13d54: 7c 01 movw r14, r24
13d56: 99 23 and r25, r25
13d58: 34 f4 brge .+12 ; 0x13d66 <CalculateServo+0x33e>
13d5a: 3f ef ldi r19, 0xFF ; 255
13d5c: c3 0e add r12, r19
13d5e: 31 e0 ldi r19, 0x01 ; 1
13d60: d3 1e adc r13, r19
13d62: e1 1c adc r14, r1
13d64: f1 1c adc r15, r1
13d66: 0b 2e mov r0, r27
13d68: b9 e0 ldi r27, 0x09 ; 9
13d6a: f5 94 asr r15
13d6c: e7 94 ror r14
13d6e: d7 94 ror r13
13d70: c7 94 ror r12
13d72: ba 95 dec r27
13d74: d1 f7 brne .-12 ; 0x13d6a <CalculateServo+0x342>
13d76: b0 2d mov r27, r0
ServoRollOffset += ((int16_t)Parameter_ServoRollControl * (MULTIPLYER*16) - ServoRollOffset) / EE_Parameter.ServoManualControlSpeed;
13d78: 40 91 ab 02 lds r20, 0x02AB
13d7c: 50 91 ac 02 lds r21, 0x02AC
13d80: 20 91 ab 02 lds r18, 0x02AB
13d84: 30 91 ac 02 lds r19, 0x02AC
13d88: 80 91 2e 01 lds r24, 0x012E
13d8c: 60 e4 ldi r22, 0x40 ; 64
13d8e: 86 9f mul r24, r22
13d90: c0 01 movw r24, r0
13d92: 11 24 eor r1, r1
13d94: 84 1b sub r24, r20
13d96: 95 0b sbc r25, r21
13d98: 60 91 74 05 lds r22, 0x0574
13d9c: 70 e0 ldi r23, 0x00 ; 0
13d9e: 0e 94 56 b1 call 0x162ac ; 0x162ac <__divmodhi4>
13da2: 26 0f add r18, r22
13da4: 37 1f adc r19, r23
13da6: 30 93 ac 02 sts 0x02AC, r19
13daa: 20 93 ab 02 sts 0x02AB, r18
if(EE_Parameter.ServoCompInvert & SERVO_ROLL_INV)
13dae: 80 91 b7 05 lds r24, 0x05B7
13db2: 81 ff sbrs r24, 1
13db4: 18 c0 rjmp .+48 ; 0x13de6 <CalculateServo+0x3be>
{ // inverting movement of servo
roll = ServoRollOffset / 16 + roll;
13db6: 80 91 ab 02 lds r24, 0x02AB
13dba: 90 91 ac 02 lds r25, 0x02AC
13dbe: 99 23 and r25, r25
13dc0: 0c f4 brge .+2 ; 0x13dc4 <CalculateServo+0x39c>
13dc2: 0f 96 adiw r24, 0x0f ; 15
13dc4: 95 95 asr r25
13dc6: 87 95 ror r24
13dc8: 95 95 asr r25
13dca: 87 95 ror r24
13dcc: 95 95 asr r25
13dce: 87 95 ror r24
13dd0: 95 95 asr r25
13dd2: 87 95 ror r24
13dd4: aa 27 eor r26, r26
13dd6: 97 fd sbrc r25, 7
13dd8: a0 95 com r26
13dda: ba 2f mov r27, r26
13ddc: c8 0e add r12, r24
13dde: d9 1e adc r13, r25
13de0: ea 1e adc r14, r26
13de2: fb 1e adc r15, r27
13de4: 1b c0 rjmp .+54 ; 0x13e1c <CalculateServo+0x3f4>
}
else
{ // inverting movement of servo
roll = ServoRollOffset / 16 - roll;
13de6: 80 91 ab 02 lds r24, 0x02AB
13dea: 90 91 ac 02 lds r25, 0x02AC
13dee: 99 23 and r25, r25
13df0: 0c f4 brge .+2 ; 0x13df4 <CalculateServo+0x3cc>
13df2: 0f 96 adiw r24, 0x0f ; 15
13df4: 95 95 asr r25
13df6: 87 95 ror r24
13df8: 95 95 asr r25
13dfa: 87 95 ror r24
13dfc: 95 95 asr r25
13dfe: 87 95 ror r24
13e00: 95 95 asr r25
13e02: 87 95 ror r24
13e04: aa 27 eor r26, r26
13e06: 97 fd sbrc r25, 7
13e08: a0 95 com r26
13e0a: ba 2f mov r27, r26
13e0c: 9c 01 movw r18, r24
13e0e: ad 01 movw r20, r26
13e10: 2c 19 sub r18, r12
13e12: 3d 09 sbc r19, r13
13e14: 4e 09 sbc r20, r14
13e16: 5f 09 sbc r21, r15
13e18: 69 01 movw r12, r18
13e1a: 7a 01 movw r14, r20
}
if(EE_Parameter.ServoFilterRoll) ServoRollValue = ((ServoRollValue * EE_Parameter.ServoFilterRoll) + roll) / (EE_Parameter.ServoFilterRoll + 1);
13e1c: 40 91 aa 05 lds r20, 0x05AA
13e20: 44 23 and r20, r20
13e22: 29 f1 breq .+74 ; 0x13e6e <CalculateServo+0x446>
13e24: 50 e0 ldi r21, 0x00 ; 0
13e26: 80 91 c4 04 lds r24, 0x04C4
13e2a: 90 91 c5 04 lds r25, 0x04C5
13e2e: 48 9f mul r20, r24
13e30: b0 01 movw r22, r0
13e32: 49 9f mul r20, r25
13e34: 70 0d add r23, r0
13e36: 58 9f mul r21, r24
13e38: 70 0d add r23, r0
13e3a: 11 24 eor r1, r1
13e3c: cb 01 movw r24, r22
13e3e: aa 27 eor r26, r26
13e40: 97 fd sbrc r25, 7
13e42: a0 95 com r26
13e44: ba 2f mov r27, r26
13e46: bc 01 movw r22, r24
13e48: cd 01 movw r24, r26
13e4a: 6c 0d add r22, r12
13e4c: 7d 1d adc r23, r13
13e4e: 8e 1d adc r24, r14
13e50: 9f 1d adc r25, r15
13e52: 9a 01 movw r18, r20
13e54: 2f 5f subi r18, 0xFF ; 255
13e56: 3f 4f sbci r19, 0xFF ; 255
13e58: 44 27 eor r20, r20
13e5a: 37 fd sbrc r19, 7
13e5c: 40 95 com r20
13e5e: 54 2f mov r21, r20
13e60: 0e 94 8b b1 call 0x16316 ; 0x16316 <__divmodsi4>
13e64: 30 93 c5 04 sts 0x04C5, r19
13e68: 20 93 c4 04 sts 0x04C4, r18
13e6c: 04 c0 rjmp .+8 ; 0x13e76 <CalculateServo+0x44e>
else ServoRollValue = roll;
13e6e: d0 92 c5 04 sts 0x04C5, r13
13e72: c0 92 c4 04 sts 0x04C4, r12
// limit servo value to its parameter range definition
if(ServoRollValue < ((int16_t)EE_Parameter.ServoRollMin * MULTIPLYER))
13e76: 80 91 71 05 lds r24, 0x0571
13e7a: 90 e0 ldi r25, 0x00 ; 0
13e7c: 88 0f add r24, r24
13e7e: 99 1f adc r25, r25
13e80: 88 0f add r24, r24
13e82: 99 1f adc r25, r25
13e84: 20 91 c4 04 lds r18, 0x04C4
13e88: 30 91 c5 04 lds r19, 0x04C5
13e8c: 28 17 cp r18, r24
13e8e: 39 07 cpc r19, r25
13e90: 2c f4 brge .+10 ; 0x13e9c <CalculateServo+0x474>
{
ServoRollValue = (int16_t)EE_Parameter.ServoRollMin * MULTIPLYER;
13e92: 90 93 c5 04 sts 0x04C5, r25
13e96: 80 93 c4 04 sts 0x04C4, r24
13e9a: 12 c0 rjmp .+36 ; 0x13ec0 <CalculateServo+0x498>
}
else
if(ServoRollValue > ((int16_t)EE_Parameter.ServoRollMax * MULTIPLYER))
13e9c: 80 91 72 05 lds r24, 0x0572
13ea0: 90 e0 ldi r25, 0x00 ; 0
13ea2: 88 0f add r24, r24
13ea4: 99 1f adc r25, r25
13ea6: 88 0f add r24, r24
13ea8: 99 1f adc r25, r25
13eaa: 20 91 c4 04 lds r18, 0x04C4
13eae: 30 91 c5 04 lds r19, 0x04C5
13eb2: 82 17 cp r24, r18
13eb4: 93 07 cpc r25, r19
13eb6: 24 f4 brge .+8 ; 0x13ec0 <CalculateServo+0x498>
{
ServoRollValue = (int16_t)EE_Parameter.ServoRollMax * MULTIPLYER;
13eb8: 90 93 c5 04 sts 0x04C5, r25
13ebc: 80 93 c4 04 sts 0x04C4, r24
}
CalculateServoSignals = 0;
13ec0: 10 92 af 02 sts 0x02AF, r1
}
}
13ec4: 1f 91 pop r17
13ec6: 0f 91 pop r16
13ec8: ff 90 pop r15
13eca: ef 90 pop r14
13ecc: df 90 pop r13
13ece: cf 90 pop r12
13ed0: bf 90 pop r11
13ed2: af 90 pop r10
13ed4: 9f 90 pop r9
13ed6: 8f 90 pop r8
13ed8: 08 95 ret
 
00013eda <__vector_9>:
 
ISR(TIMER2_COMPA_vect)
{
13eda: 1f 92 push r1
13edc: 0f 92 push r0
13ede: 0f b6 in r0, 0x3f ; 63
13ee0: 0f 92 push r0
13ee2: 11 24 eor r1, r1
13ee4: 0b b6 in r0, 0x3b ; 59
13ee6: 0f 92 push r0
13ee8: 2f 93 push r18
13eea: 3f 93 push r19
13eec: 4f 93 push r20
13eee: 8f 93 push r24
13ef0: 9f 93 push r25
13ef2: ef 93 push r30
13ef4: ff 93 push r31
*/
{
//-----------------------------------------------------
// PPM state machine, onboard demultiplexed by HEF4017
//-----------------------------------------------------
if(!PulseOutput) // pulse output complete
13ef6: 80 91 c2 04 lds r24, 0x04C2
13efa: 81 11 cpse r24, r1
13efc: f9 c0 rjmp .+498 ; 0x140f0 <__vector_9+0x216>
{
if(TCCR2A & (1<<COM2A0)) // we had a low pulse
13efe: 80 91 b0 00 lds r24, 0x00B0
13f02: 86 ff sbrs r24, 6
13f04: bc c0 rjmp .+376 ; 0x1407e <__vector_9+0x1a4>
{
TCCR2A &= ~(1<<COM2A0);// make a high pulse
13f06: e0 eb ldi r30, 0xB0 ; 176
13f08: f0 e0 ldi r31, 0x00 ; 0
13f0a: 80 81 ld r24, Z
13f0c: 8f 7b andi r24, 0xBF ; 191
13f0e: 80 83 st Z, r24
if(ServoIndex == 0) // if we are at the sync gap
13f10: e0 91 c1 04 lds r30, 0x04C1
13f14: e1 11 cpse r30, r1
13f16: 19 c0 rjmp .+50 ; 0x13f4a <__vector_9+0x70>
{
RemainingPulse = PPM_FRAMELEN - ServoFrameTime; // generate sync gap by filling time to full frame time
13f18: 40 91 73 05 lds r20, 0x0573
13f1c: 2d ed ldi r18, 0xDD ; 221
13f1e: 36 e0 ldi r19, 0x06 ; 6
13f20: 42 9f mul r20, r18
13f22: c0 01 movw r24, r0
13f24: 43 9f mul r20, r19
13f26: 90 0d add r25, r0
13f28: 11 24 eor r1, r1
13f2a: 20 91 bf 04 lds r18, 0x04BF
13f2e: 30 91 c0 04 lds r19, 0x04C0
13f32: 82 1b sub r24, r18
13f34: 93 0b sbc r25, r19
13f36: 90 93 c9 04 sts 0x04C9, r25
13f3a: 80 93 c8 04 sts 0x04C8, r24
ServoFrameTime = 0; // reset servo frame time
13f3e: 10 92 c0 04 sts 0x04C0, r1
13f42: 10 92 bf 04 sts 0x04BF, r1
HEF4017Reset_ON; // enable HEF4017 reset
13f46: 46 9a sbi 0x08, 6 ; 8
13f48: d0 c0 rjmp .+416 ; 0x140ea <__vector_9+0x210>
}
else // servo channels
if(ServoIndex > EE_Parameter.ServoNickRefresh)
13f4a: 80 91 73 05 lds r24, 0x0573
13f4e: 8e 17 cp r24, r30
13f50: 38 f4 brcc .+14 ; 0x13f60 <__vector_9+0x86>
{
RemainingPulse = 10; // end it here
13f52: 8a e0 ldi r24, 0x0A ; 10
13f54: 90 e0 ldi r25, 0x00 ; 0
13f56: 90 93 c9 04 sts 0x04C9, r25
13f5a: 80 93 c8 04 sts 0x04C8, r24
13f5e: c5 c0 rjmp .+394 ; 0x140ea <__vector_9+0x210>
}
else
{
RemainingPulse = MINSERVOPULSE + SERVORANGE/2; // center position ~ 1.5ms
13f60: 89 ea ldi r24, 0xA9 ; 169
13f62: 93 e0 ldi r25, 0x03 ; 3
13f64: 90 93 c9 04 sts 0x04C9, r25
13f68: 80 93 c8 04 sts 0x04C8, r24
switch(ServoIndex) // map servo channels
13f6c: e3 30 cpi r30, 0x03 ; 3
13f6e: 09 f1 breq .+66 ; 0x13fb2 <__vector_9+0xd8>
13f70: 28 f4 brcc .+10 ; 0x13f7c <__vector_9+0xa2>
13f72: e1 30 cpi r30, 0x01 ; 1
13f74: 41 f0 breq .+16 ; 0x13f86 <__vector_9+0xac>
13f76: e2 30 cpi r30, 0x02 ; 2
13f78: 89 f0 breq .+34 ; 0x13f9c <__vector_9+0xc2>
13f7a: 45 c0 rjmp .+138 ; 0x14006 <__vector_9+0x12c>
13f7c: e4 30 cpi r30, 0x04 ; 4
13f7e: 39 f1 breq .+78 ; 0x13fce <__vector_9+0xf4>
13f80: e5 30 cpi r30, 0x05 ; 5
13f82: 99 f1 breq .+102 ; 0x13fea <__vector_9+0x110>
13f84: 40 c0 rjmp .+128 ; 0x14006 <__vector_9+0x12c>
{
case 1: // Nick Compensation Servo
RemainingPulse += ServoNickValue - (256 / 2) * MULTIPLYER; // shift ServoNickValue to center position
13f86: 80 91 c6 04 lds r24, 0x04C6
13f8a: 90 91 c7 04 lds r25, 0x04C7
13f8e: 87 55 subi r24, 0x57 ; 87
13f90: 9e 4f sbci r25, 0xFE ; 254
13f92: 90 93 c9 04 sts 0x04C9, r25
13f96: 80 93 c8 04 sts 0x04C8, r24
break;
13f9a: 44 c0 rjmp .+136 ; 0x14024 <__vector_9+0x14a>
case 2: // Roll Compensation Servo
RemainingPulse += ServoRollValue - (256 / 2) * MULTIPLYER; // shift ServoNickValue to center position
13f9c: 80 91 c4 04 lds r24, 0x04C4
13fa0: 90 91 c5 04 lds r25, 0x04C5
13fa4: 87 55 subi r24, 0x57 ; 87
13fa6: 9e 4f sbci r25, 0xFE ; 254
13fa8: 90 93 c9 04 sts 0x04C9, r25
13fac: 80 93 c8 04 sts 0x04C8, r24
break;
13fb0: 39 c0 rjmp .+114 ; 0x14024 <__vector_9+0x14a>
case 3:
RemainingPulse += ((int16_t)Parameter_Servo3 * MULTIPLYER) - (256 / 2) * MULTIPLYER;
13fb2: 80 91 38 06 lds r24, 0x0638
13fb6: 90 e0 ldi r25, 0x00 ; 0
13fb8: 88 0f add r24, r24
13fba: 99 1f adc r25, r25
13fbc: 88 0f add r24, r24
13fbe: 99 1f adc r25, r25
13fc0: 87 55 subi r24, 0x57 ; 87
13fc2: 9e 4f sbci r25, 0xFE ; 254
13fc4: 90 93 c9 04 sts 0x04C9, r25
13fc8: 80 93 c8 04 sts 0x04C8, r24
break;
13fcc: 2b c0 rjmp .+86 ; 0x14024 <__vector_9+0x14a>
case 4:
RemainingPulse += ((int16_t)Parameter_Servo4 * MULTIPLYER) - (256 / 2) * MULTIPLYER;
13fce: 80 91 19 06 lds r24, 0x0619
13fd2: 90 e0 ldi r25, 0x00 ; 0
13fd4: 88 0f add r24, r24
13fd6: 99 1f adc r25, r25
13fd8: 88 0f add r24, r24
13fda: 99 1f adc r25, r25
13fdc: 87 55 subi r24, 0x57 ; 87
13fde: 9e 4f sbci r25, 0xFE ; 254
13fe0: 90 93 c9 04 sts 0x04C9, r25
13fe4: 80 93 c8 04 sts 0x04C8, r24
break;
13fe8: 1d c0 rjmp .+58 ; 0x14024 <__vector_9+0x14a>
case 5:
RemainingPulse += ((int16_t)Parameter_Servo5 * MULTIPLYER) - (256 / 2) * MULTIPLYER;
13fea: 80 91 41 06 lds r24, 0x0641
13fee: 90 e0 ldi r25, 0x00 ; 0
13ff0: 88 0f add r24, r24
13ff2: 99 1f adc r25, r25
13ff4: 88 0f add r24, r24
13ff6: 99 1f adc r25, r25
13ff8: 87 55 subi r24, 0x57 ; 87
13ffa: 9e 4f sbci r25, 0xFE ; 254
13ffc: 90 93 c9 04 sts 0x04C9, r25
14000: 80 93 c8 04 sts 0x04C8, r24
break;
14004: 0f c0 rjmp .+30 ; 0x14024 <__vector_9+0x14a>
default: // other servo channels
RemainingPulse += 2 * PPM_in[ServoIndex]; // add channel value, factor of 2 because timer 1 increments 3.2µs
14006: f0 e0 ldi r31, 0x00 ; 0
14008: ee 0f add r30, r30
1400a: ff 1f adc r31, r31
1400c: ef 5c subi r30, 0xCF ; 207
1400e: f7 4f sbci r31, 0xF7 ; 247
14010: 80 81 ld r24, Z
14012: 91 81 ldd r25, Z+1 ; 0x01
14014: 88 0f add r24, r24
14016: 99 1f adc r25, r25
14018: 87 55 subi r24, 0x57 ; 87
1401a: 9c 4f sbci r25, 0xFC ; 252
1401c: 90 93 c9 04 sts 0x04C9, r25
14020: 80 93 c8 04 sts 0x04C8, r24
break;
}
// range servo pulse width
if(RemainingPulse > MAXSERVOPULSE) RemainingPulse = MAXSERVOPULSE; // upper servo pulse limit
14024: 80 91 c8 04 lds r24, 0x04C8
14028: 90 91 c9 04 lds r25, 0x04C9
1402c: 8d 3d cpi r24, 0xDD ; 221
1402e: 25 e0 ldi r18, 0x05 ; 5
14030: 92 07 cpc r25, r18
14032: 38 f0 brcs .+14 ; 0x14042 <__vector_9+0x168>
14034: 8c ed ldi r24, 0xDC ; 220
14036: 95 e0 ldi r25, 0x05 ; 5
14038: 90 93 c9 04 sts 0x04C9, r25
1403c: 80 93 c8 04 sts 0x04C8, r24
14040: 09 c0 rjmp .+18 ; 0x14054 <__vector_9+0x17a>
else if(RemainingPulse < MINSERVOPULSE) RemainingPulse = MINSERVOPULSE; // lower servo pulse limit
14042: 87 37 cpi r24, 0x77 ; 119
14044: 91 40 sbci r25, 0x01 ; 1
14046: 30 f4 brcc .+12 ; 0x14054 <__vector_9+0x17a>
14048: 87 e7 ldi r24, 0x77 ; 119
1404a: 91 e0 ldi r25, 0x01 ; 1
1404c: 90 93 c9 04 sts 0x04C9, r25
14050: 80 93 c8 04 sts 0x04C8, r24
// substract stop pulse width
RemainingPulse -= PPM_STOPPULSE;
14054: 80 91 c8 04 lds r24, 0x04C8
14058: 90 91 c9 04 lds r25, 0x04C9
1405c: 8c 5b subi r24, 0xBC ; 188
1405e: 91 09 sbc r25, r1
14060: 90 93 c9 04 sts 0x04C9, r25
14064: 80 93 c8 04 sts 0x04C8, r24
// accumulate time for correct sync gap
ServoFrameTime += RemainingPulse;
14068: 20 91 bf 04 lds r18, 0x04BF
1406c: 30 91 c0 04 lds r19, 0x04C0
14070: 82 0f add r24, r18
14072: 93 1f adc r25, r19
14074: 90 93 c0 04 sts 0x04C0, r25
14078: 80 93 bf 04 sts 0x04BF, r24
1407c: 36 c0 rjmp .+108 ; 0x140ea <__vector_9+0x210>
}
}
else // we had a high pulse
{
TCCR2A |= (1<<COM2A0); // make a low pulse
1407e: e0 eb ldi r30, 0xB0 ; 176
14080: f0 e0 ldi r31, 0x00 ; 0
14082: 80 81 ld r24, Z
14084: 80 64 ori r24, 0x40 ; 64
14086: 80 83 st Z, r24
// set pulsewidth to stop pulse width
RemainingPulse = PPM_STOPPULSE;
14088: 8c eb ldi r24, 0xBC ; 188
1408a: 90 e0 ldi r25, 0x00 ; 0
1408c: 90 93 c9 04 sts 0x04C9, r25
14090: 80 93 c8 04 sts 0x04C8, r24
// accumulate time for correct sync gap
ServoFrameTime += RemainingPulse;
14094: 80 91 bf 04 lds r24, 0x04BF
14098: 90 91 c0 04 lds r25, 0x04C0
1409c: 84 54 subi r24, 0x44 ; 68
1409e: 9f 4f sbci r25, 0xFF ; 255
140a0: 90 93 c0 04 sts 0x04C0, r25
140a4: 80 93 bf 04 sts 0x04BF, r24
if((ServoActive && SenderOkay) || ServoActive == 2) HEF4017Reset_OFF; // disable HEF4017 reset
140a8: 80 91 cb 04 lds r24, 0x04CB
140ac: 88 23 and r24, r24
140ae: 21 f0 breq .+8 ; 0x140b8 <__vector_9+0x1de>
140b0: 80 91 04 04 lds r24, 0x0404
140b4: 81 11 cpse r24, r1
140b6: 04 c0 rjmp .+8 ; 0x140c0 <__vector_9+0x1e6>
140b8: 80 91 cb 04 lds r24, 0x04CB
140bc: 82 30 cpi r24, 0x02 ; 2
140be: 11 f4 brne .+4 ; 0x140c4 <__vector_9+0x1ea>
140c0: 46 98 cbi 0x08, 6 ; 8
140c2: 01 c0 rjmp .+2 ; 0x140c6 <__vector_9+0x1ec>
else HEF4017Reset_ON;
140c4: 46 9a sbi 0x08, 6 ; 8
ServoIndex++;
140c6: 20 91 c1 04 lds r18, 0x04C1
140ca: 2f 5f subi r18, 0xFF ; 255
140cc: 20 93 c1 04 sts 0x04C1, r18
if(ServoIndex > EE_Parameter.ServoNickRefresh+1)
140d0: 30 e0 ldi r19, 0x00 ; 0
140d2: 80 91 73 05 lds r24, 0x0573
140d6: 90 e0 ldi r25, 0x00 ; 0
140d8: 01 96 adiw r24, 0x01 ; 1
140da: 82 17 cp r24, r18
140dc: 93 07 cpc r25, r19
140de: 2c f4 brge .+10 ; 0x140ea <__vector_9+0x210>
{
CalculateServoSignals = 1;
140e0: 81 e0 ldi r24, 0x01 ; 1
140e2: 80 93 af 02 sts 0x02AF, r24
ServoIndex = 0; // reset to the sync gap
140e6: 10 92 c1 04 sts 0x04C1, r1
}
}
// set pulse output active
PulseOutput = 1;
140ea: 81 e0 ldi r24, 0x01 ; 1
140ec: 80 93 c2 04 sts 0x04C2, r24
}
} // EOF PPM state machine
 
// General pulse output generator
if(RemainingPulse > (255 + IRS_RUNTIME))
140f0: 80 91 c8 04 lds r24, 0x04C8
140f4: 90 91 c9 04 lds r25, 0x04C9
140f8: 8f 37 cpi r24, 0x7F ; 127
140fa: 21 e0 ldi r18, 0x01 ; 1
140fc: 92 07 cpc r25, r18
140fe: 70 f0 brcs .+28 ; 0x1411c <__vector_9+0x242>
{
OCR2A = 255;
14100: 8f ef ldi r24, 0xFF ; 255
14102: 80 93 b3 00 sts 0x00B3, r24
RemainingPulse -= 255;
14106: 80 91 c8 04 lds r24, 0x04C8
1410a: 90 91 c9 04 lds r25, 0x04C9
1410e: 8f 5f subi r24, 0xFF ; 255
14110: 91 09 sbc r25, r1
14112: 90 93 c9 04 sts 0x04C9, r25
14116: 80 93 c8 04 sts 0x04C8, r24
1411a: 2d c0 rjmp .+90 ; 0x14176 <__vector_9+0x29c>
}
else
{
if(RemainingPulse > 255) // this is the 2nd last part
1411c: 8f 3f cpi r24, 0xFF ; 255
1411e: 91 05 cpc r25, r1
14120: 11 f1 breq .+68 ; 0x14166 <__vector_9+0x28c>
14122: 08 f1 brcs .+66 ; 0x14166 <__vector_9+0x28c>
{
if((RemainingPulse - 255) < IRS_RUNTIME)
14124: 8f 5f subi r24, 0xFF ; 255
14126: 91 09 sbc r25, r1
14128: 8f 37 cpi r24, 0x7F ; 127
1412a: 91 05 cpc r25, r1
1412c: 70 f4 brcc .+28 ; 0x1414a <__vector_9+0x270>
{
OCR2A = 255 - IRS_RUNTIME;
1412e: 80 e8 ldi r24, 0x80 ; 128
14130: 80 93 b3 00 sts 0x00B3, r24
RemainingPulse -= 255 - IRS_RUNTIME;
14134: 80 91 c8 04 lds r24, 0x04C8
14138: 90 91 c9 04 lds r25, 0x04C9
1413c: 80 58 subi r24, 0x80 ; 128
1413e: 91 09 sbc r25, r1
14140: 90 93 c9 04 sts 0x04C9, r25
14144: 80 93 c8 04 sts 0x04C8, r24
14148: 16 c0 rjmp .+44 ; 0x14176 <__vector_9+0x29c>
 
}
else // last part > ISR_RUNTIME
{
OCR2A = 255;
1414a: 8f ef ldi r24, 0xFF ; 255
1414c: 80 93 b3 00 sts 0x00B3, r24
RemainingPulse -= 255;
14150: 80 91 c8 04 lds r24, 0x04C8
14154: 90 91 c9 04 lds r25, 0x04C9
14158: 8f 5f subi r24, 0xFF ; 255
1415a: 91 09 sbc r25, r1
1415c: 90 93 c9 04 sts 0x04C9, r25
14160: 80 93 c8 04 sts 0x04C8, r24
14164: 08 c0 rjmp .+16 ; 0x14176 <__vector_9+0x29c>
}
}
else // this is the last part
{
OCR2A = RemainingPulse;
14166: 80 93 b3 00 sts 0x00B3, r24
RemainingPulse = 0;
1416a: 10 92 c9 04 sts 0x04C9, r1
1416e: 10 92 c8 04 sts 0x04C8, r1
PulseOutput = 0; // trigger to stop pulse
14172: 10 92 c2 04 sts 0x04C2, r1
}
} // EOF general pulse output generator
}
14176: ff 91 pop r31
14178: ef 91 pop r30
1417a: 9f 91 pop r25
1417c: 8f 91 pop r24
1417e: 4f 91 pop r20
14180: 3f 91 pop r19
14182: 2f 91 pop r18
14184: 0f 90 pop r0
14186: 0b be out 0x3b, r0 ; 59
14188: 0f 90 pop r0
1418a: 0f be out 0x3f, r0 ; 63
1418c: 0f 90 pop r0
1418e: 1f 90 pop r1
14190: 18 95 reti
 
00014192 <I2C_Init>:
/**************************************************/
 
void I2C_Init(char clear)
{
uint8_t i;
uint8_t sreg = SREG;
14192: 2f b7 in r18, 0x3f ; 63
cli();
14194: f8 94 cli
 
// SDA is INPUT
DDRC &= ~(1<<DDRC1);
14196: 39 98 cbi 0x07, 1 ; 7
// SCL is output
DDRC |= (1<<DDRC0);
14198: 38 9a sbi 0x07, 0 ; 7
// pull up SDA
PORTC |= (1<<PORTC0)|(1<<PORTC1);
1419a: 98 b1 in r25, 0x08 ; 8
1419c: 93 60 ori r25, 0x03 ; 3
1419e: 98 b9 out 0x08, r25 ; 8
 
// TWI Status Register
// prescaler 1 (TWPS1 = 0, TWPS0 = 0)
TWSR &= ~((1<<TWPS1)|(1<<TWPS0));
141a0: e9 eb ldi r30, 0xB9 ; 185
141a2: f0 e0 ldi r31, 0x00 ; 0
141a4: 90 81 ld r25, Z
141a6: 9c 7f andi r25, 0xFC ; 252
141a8: 90 83 st Z, r25
 
// set TWI Bit Rate Register
TWBR = ((F_CPU/SCL_CLOCK)-16)/2;
141aa: 9a e2 ldi r25, 0x2A ; 42
141ac: 90 93 b8 00 sts 0x00B8, r25
 
twi_state = TWI_STATE_MOTOR_TX;
141b0: 10 92 e3 04 sts 0x04E3, r1
motor_write = 0;
141b4: 10 92 e2 04 sts 0x04E2, r1
motor_read = 0;
141b8: 10 92 e1 04 sts 0x04E1, r1
 
if(clear) for(i=0; i < MAX_MOTORS; i++)
141bc: 88 23 and r24, r24
141be: 31 f1 breq .+76 ; 0x1420c <I2C_Init+0x7a>
141c0: e5 ea ldi r30, 0xA5 ; 165
141c2: f9 e0 ldi r31, 0x09 ; 9
141c4: 89 e5 ldi r24, 0x59 ; 89
141c6: 9a e0 ldi r25, 0x0A ; 10
141c8: df 01 movw r26, r30
141ca: 1e 97 sbiw r26, 0x0e ; 14
{
Motor[i].Version = 0;
141cc: 1c 92 st X, r1
141ce: 11 96 adiw r26, 0x01 ; 1
Motor[i].SetPoint = 0;
141d0: 1c 92 st X, r1
141d2: 11 96 adiw r26, 0x01 ; 1
Motor[i].SetPointLowerBits = 0;
141d4: 1c 92 st X, r1
141d6: 11 96 adiw r26, 0x01 ; 1
Motor[i].State = 0;
141d8: 1c 92 st X, r1
141da: 11 96 adiw r26, 0x01 ; 1
Motor[i].ReadMode = BL_READMODE_STATUS;
141dc: 1c 92 st X, r1
141de: 11 96 adiw r26, 0x01 ; 1
Motor[i].Current = 0;
141e0: 1c 92 st X, r1
141e2: 11 96 adiw r26, 0x01 ; 1
Motor[i].MaxPWM = 0;
141e4: 1c 92 st X, r1
141e6: 11 96 adiw r26, 0x01 ; 1
Motor[i].Temperature = 0;
141e8: 1c 92 st X, r1
Motor[i].NotReadyCnt = 0;
141ea: 10 82 st Z, r1
141ec: 11 96 adiw r26, 0x01 ; 1
Motor[i].RPM = 0;
141ee: 1c 92 st X, r1
141f0: 11 96 adiw r26, 0x01 ; 1
Motor[i].reserved1 = 0;
141f2: 1c 92 st X, r1
141f4: 11 96 adiw r26, 0x01 ; 1
Motor[i].Voltage = 0;
141f6: 1c 92 st X, r1
141f8: 11 96 adiw r26, 0x01 ; 1
Motor[i].SlaveI2cError = 0;
141fa: 1c 92 st X, r1
141fc: 11 96 adiw r26, 0x01 ; 1
Motor[i].VersionMajor = 0;
141fe: 1c 92 st X, r1
14200: 11 96 adiw r26, 0x01 ; 1
Motor[i].VersionMinor = 0;
14202: 1c 92 st X, r1
14204: 3f 96 adiw r30, 0x0f ; 15
 
twi_state = TWI_STATE_MOTOR_TX;
motor_write = 0;
motor_read = 0;
 
if(clear) for(i=0; i < MAX_MOTORS; i++)
14206: e8 17 cp r30, r24
14208: f9 07 cpc r31, r25
1420a: f1 f6 brne .-68 ; 0x141c8 <I2C_Init+0x36>
Motor[i].Voltage = 0;
Motor[i].SlaveI2cError = 0;
Motor[i].VersionMajor = 0;
Motor[i].VersionMinor = 0;
}
sei();
1420c: 78 94 sei
SREG = sreg;
1420e: 2f bf out 0x3f, r18 ; 63
14210: 08 95 ret
 
00014212 <I2C_Reset>:
}
 
void I2C_Reset(void)
{
14212: 0f 93 push r16
14214: 1f 93 push r17
14216: cf 93 push r28
14218: df 93 push r29
// stop i2c bus
I2C_Stop(TWI_STATE_MOTOR_TX);
1421a: 10 92 e3 04 sts 0x04E3, r1
1421e: cc eb ldi r28, 0xBC ; 188
14220: d0 e0 ldi r29, 0x00 ; 0
14222: 84 e9 ldi r24, 0x94 ; 148
14224: 88 83 st Y, r24
TWCR = (1<<TWINT); // reset to original state incl. interrupt flag reset
14226: 80 e8 ldi r24, 0x80 ; 128
14228: 88 83 st Y, r24
TWAMR = 0;
1422a: 10 92 bd 00 sts 0x00BD, r1
TWAR = 0;
1422e: 10 92 ba 00 sts 0x00BA, r1
TWDR = 0;
14232: 0b eb ldi r16, 0xBB ; 187
14234: 10 e0 ldi r17, 0x00 ; 0
14236: f8 01 movw r30, r16
14238: 10 82 st Z, r1
TWSR = 0;
1423a: 10 92 b9 00 sts 0x00B9, r1
TWBR = 0;
1423e: 10 92 b8 00 sts 0x00B8, r1
I2C_TransferActive = 0;
14242: 10 92 e0 04 sts 0x04E0, r1
I2C_Init(0);
14246: 80 e0 ldi r24, 0x00 ; 0
14248: a4 df rcall .-184 ; 0x14192 <I2C_Init>
I2C_WriteByte(0);
1424a: f8 01 movw r30, r16
1424c: 10 82 st Z, r1
1424e: 85 e8 ldi r24, 0x85 ; 133
14250: 88 83 st Y, r24
BLFlags |= BLFLAG_READ_VERSION;
14252: 80 91 de 04 lds r24, 0x04DE
14256: 82 60 ori r24, 0x02 ; 2
14258: 80 93 de 04 sts 0x04DE, r24
}
1425c: df 91 pop r29
1425e: cf 91 pop r28
14260: 1f 91 pop r17
14262: 0f 91 pop r16
14264: 08 95 ret
 
00014266 <__vector_26>:
 
/****************************************/
/* I2C ISR */
/****************************************/
ISR (TWI_vect)
{
14266: 1f 92 push r1
14268: 0f 92 push r0
1426a: 0f b6 in r0, 0x3f ; 63
1426c: 0f 92 push r0
1426e: 11 24 eor r1, r1
14270: 0b b6 in r0, 0x3b ; 59
14272: 0f 92 push r0
14274: 2f 93 push r18
14276: 3f 93 push r19
14278: 4f 93 push r20
1427a: 8f 93 push r24
1427c: 9f 93 push r25
1427e: af 93 push r26
14280: bf 93 push r27
14282: ef 93 push r30
14284: ff 93 push r31
static uint8_t missing_motor = 0, motor_read_temperature = 0;
static uint8_t *pBuff = 0;
static uint8_t BuffLen = 0;
static uint8_t max_packets = 0;
switch (twi_state++)
14286: 80 91 e3 04 lds r24, 0x04E3
1428a: 91 e0 ldi r25, 0x01 ; 1
1428c: 98 0f add r25, r24
1428e: 90 93 e3 04 sts 0x04E3, r25
14292: 90 e0 ldi r25, 0x00 ; 0
14294: 87 30 cpi r24, 0x07 ; 7
14296: 91 05 cpc r25, r1
14298: 08 f0 brcs .+2 ; 0x1429c <__vector_26+0x36>
1429a: d8 c2 rjmp .+1456 ; 0x1484c <__vector_26+0x5e6>
1429c: fc 01 movw r30, r24
1429e: e0 55 subi r30, 0x50 ; 80
142a0: ff 4f sbci r31, 0xFF ; 255
142a2: 0c 94 a7 b1 jmp 0x1634e ; 0x1634e <__tablejump2__>
{
// Master Transmit
case 0: // TWI_STATE_MOTOR_TX
I2C_TransferActive = 1;
142a6: 81 e0 ldi r24, 0x01 ; 1
142a8: 80 93 e0 04 sts 0x04E0, r24
// skip motor if not used in mixer
while((Mixer.Motor[motor_write][MIX_GAS] <= 0) && (motor_write < MAX_MOTORS)) motor_write++;
142ac: e0 91 e2 04 lds r30, 0x04E2
142b0: f0 e0 ldi r31, 0x00 ; 0
142b2: ee 0f add r30, r30
142b4: ff 1f adc r31, r31
142b6: ee 0f add r30, r30
142b8: ff 1f adc r31, r31
142ba: e9 53 subi r30, 0x39 ; 57
142bc: fa 4f sbci r31, 0xFA ; 250
142be: 85 85 ldd r24, Z+13 ; 0x0d
142c0: 18 16 cp r1, r24
142c2: cc f0 brlt .+50 ; 0x142f6 <__vector_26+0x90>
142c4: 80 91 e2 04 lds r24, 0x04E2
142c8: 8c 30 cpi r24, 0x0C ; 12
142ca: a8 f4 brcc .+42 ; 0x142f6 <__vector_26+0x90>
142cc: 80 91 e2 04 lds r24, 0x04E2
142d0: 8f 5f subi r24, 0xFF ; 255
142d2: 80 93 e2 04 sts 0x04E2, r24
142d6: e0 91 e2 04 lds r30, 0x04E2
142da: f0 e0 ldi r31, 0x00 ; 0
142dc: ee 0f add r30, r30
142de: ff 1f adc r31, r31
142e0: ee 0f add r30, r30
142e2: ff 1f adc r31, r31
142e4: e9 53 subi r30, 0x39 ; 57
142e6: fa 4f sbci r31, 0xFA ; 250
142e8: 85 85 ldd r24, Z+13 ; 0x0d
142ea: 18 16 cp r1, r24
142ec: 24 f0 brlt .+8 ; 0x142f6 <__vector_26+0x90>
142ee: 80 91 e2 04 lds r24, 0x04E2
142f2: 8c 30 cpi r24, 0x0C ; 12
142f4: 58 f3 brcs .-42 ; 0x142cc <__vector_26+0x66>
motor_write %= MAX_MOTORS;
142f6: 90 91 e2 04 lds r25, 0x04E2
142fa: 8b ea ldi r24, 0xAB ; 171
142fc: 98 9f mul r25, r24
142fe: 81 2d mov r24, r1
14300: 11 24 eor r1, r1
14302: 86 95 lsr r24
14304: 86 95 lsr r24
14306: 86 95 lsr r24
14308: 28 2f mov r18, r24
1430a: 22 0f add r18, r18
1430c: 82 0f add r24, r18
1430e: 88 0f add r24, r24
14310: 88 0f add r24, r24
14312: 98 1b sub r25, r24
14314: 90 93 e2 04 sts 0x04E2, r25
if(++max_packets > Max_I2C_Packets) // writing finished, read now
14318: 80 91 d9 04 lds r24, 0x04D9
1431c: 8f 5f subi r24, 0xFF ; 255
1431e: 80 93 d9 04 sts 0x04D9, r24
14322: 90 91 b2 02 lds r25, 0x02B2
14326: 98 17 cp r25, r24
14328: 98 f4 brcc .+38 ; 0x14350 <__vector_26+0xea>
{
max_packets = 0;
1432a: 10 92 d9 04 sts 0x04D9, r1
BLConfig_WriteMask = 0; // reset configuration bitmask
1432e: 10 92 dd 04 sts 0x04DD, r1
14332: 10 92 dc 04 sts 0x04DC, r1
//motor_write = 0; // reset motor write counter for next cycle
twi_state = TWI_STATE_MOTOR_RX;
14336: 85 e0 ldi r24, 0x05 ; 5
14338: 80 93 e3 04 sts 0x04E3, r24
I2C_WriteByte(TWI_BASE_ADDRESS + TW_READ + (motor_read<<1) ); // select slave address in rx mode
1433c: 80 91 e1 04 lds r24, 0x04E1
14340: 88 0f add r24, r24
14342: 8d 5a subi r24, 0xAD ; 173
14344: 80 93 bb 00 sts 0x00BB, r24
14348: 85 e8 ldi r24, 0x85 ; 133
1434a: 80 93 bc 00 sts 0x00BC, r24
1434e: 94 c2 rjmp .+1320 ; 0x14878 <__vector_26+0x612>
}
else I2C_WriteByte(TWI_BASE_ADDRESS + TW_WRITE + (motor_write<<1) ); // select slave address in tx mode
14350: 80 91 e2 04 lds r24, 0x04E2
14354: 88 0f add r24, r24
14356: 8e 5a subi r24, 0xAE ; 174
14358: 80 93 bb 00 sts 0x00BB, r24
1435c: 85 e8 ldi r24, 0x85 ; 133
1435e: 80 93 bc 00 sts 0x00BC, r24
14362: 8a c2 rjmp .+1300 ; 0x14878 <__vector_26+0x612>
break;
case 1: // Send Data to Slave
I2C_WriteByte(Motor[motor_write].SetPoint); // transmit setpoint
14364: a0 91 e2 04 lds r26, 0x04E2
14368: 8f e0 ldi r24, 0x0F ; 15
1436a: 8a 9f mul r24, r26
1436c: d0 01 movw r26, r0
1436e: 11 24 eor r1, r1
14370: a9 56 subi r26, 0x69 ; 105
14372: b6 4f sbci r27, 0xF6 ; 246
14374: 11 96 adiw r26, 0x01 ; 1
14376: 9c 91 ld r25, X
14378: 90 93 bb 00 sts 0x00BB, r25
1437c: 95 e8 ldi r25, 0x85 ; 133
1437e: 90 93 bc 00 sts 0x00BC, r25
// if old version has been detected
if(!(Motor[motor_write].Version & MOTOR_STATE_NEW_PROTOCOL_MASK))
14382: e0 91 e2 04 lds r30, 0x04E2
14386: 8e 9f mul r24, r30
14388: f0 01 movw r30, r0
1438a: 11 24 eor r1, r1
1438c: e9 56 subi r30, 0x69 ; 105
1438e: f6 4f sbci r31, 0xF6 ; 246
14390: 80 81 ld r24, Z
14392: 80 fd sbrc r24, 0
14394: 04 c0 rjmp .+8 ; 0x1439e <__vector_26+0x138>
{
twi_state = 4; //jump over sending more data
14396: 84 e0 ldi r24, 0x04 ; 4
14398: 80 93 e3 04 sts 0x04E3, r24
1439c: 6d c2 rjmp .+1242 ; 0x14878 <__vector_26+0x612>
}
// the new version has been detected
else if(!( (Motor[motor_write].SetPointLowerBits && (RequiredMotors < 7)) || BLConfig_WriteMask || BLConfig_ReadMask ) )
1439e: e0 91 e2 04 lds r30, 0x04E2
143a2: 2f e0 ldi r18, 0x0F ; 15
143a4: e2 9f mul r30, r18
143a6: f0 01 movw r30, r0
143a8: 11 24 eor r1, r1
143aa: e9 56 subi r30, 0x69 ; 105
143ac: f6 4f sbci r31, 0xF6 ; 246
143ae: 82 81 ldd r24, Z+2 ; 0x02
143b0: 88 23 and r24, r24
143b2: 29 f0 breq .+10 ; 0x143be <__vector_26+0x158>
143b4: 80 91 3d 05 lds r24, 0x053D
143b8: 87 30 cpi r24, 0x07 ; 7
143ba: 08 f4 brcc .+2 ; 0x143be <__vector_26+0x158>
143bc: 5d c2 rjmp .+1210 ; 0x14878 <__vector_26+0x612>
143be: 80 91 dc 04 lds r24, 0x04DC
143c2: 90 91 dd 04 lds r25, 0x04DD
143c6: 89 2b or r24, r25
143c8: 09 f0 breq .+2 ; 0x143cc <__vector_26+0x166>
143ca: 56 c2 rjmp .+1196 ; 0x14878 <__vector_26+0x612>
143cc: 80 91 da 04 lds r24, 0x04DA
143d0: 90 91 db 04 lds r25, 0x04DB
143d4: 89 2b or r24, r25
143d6: 09 f0 breq .+2 ; 0x143da <__vector_26+0x174>
143d8: 4f c2 rjmp .+1182 ; 0x14878 <__vector_26+0x612>
{ // or LowerBits are zero and no BlConfig should be sent (saves round trip time)
twi_state = 4; //jump over sending more data
143da: 84 e0 ldi r24, 0x04 ; 4
143dc: 80 93 e3 04 sts 0x04E3, r24
143e0: 4b c2 rjmp .+1174 ; 0x14878 <__vector_26+0x612>
}
break;
case 2: // lower bits of setpoint (higher resolution)
if ((0x0001<<motor_write) & BLConfig_ReadMask)
143e2: 40 91 e2 04 lds r20, 0x04E2
143e6: 20 91 da 04 lds r18, 0x04DA
143ea: 30 91 db 04 lds r19, 0x04DB
143ee: 81 e0 ldi r24, 0x01 ; 1
143f0: 90 e0 ldi r25, 0x00 ; 0
143f2: 02 c0 rjmp .+4 ; 0x143f8 <__vector_26+0x192>
143f4: 88 0f add r24, r24
143f6: 99 1f adc r25, r25
143f8: 4a 95 dec r20
143fa: e2 f7 brpl .-8 ; 0x143f4 <__vector_26+0x18e>
143fc: 82 23 and r24, r18
143fe: 93 23 and r25, r19
14400: 89 2b or r24, r25
14402: 59 f0 breq .+22 ; 0x1441a <__vector_26+0x1b4>
{
Motor[motor_write].ReadMode = BL_READMODE_CONFIG; // configuration request
14404: e0 91 e2 04 lds r30, 0x04E2
14408: 8f e0 ldi r24, 0x0F ; 15
1440a: e8 9f mul r30, r24
1440c: f0 01 movw r30, r0
1440e: 11 24 eor r1, r1
14410: e9 56 subi r30, 0x69 ; 105
14412: f6 4f sbci r31, 0xF6 ; 246
14414: 80 e1 ldi r24, 0x10 ; 16
14416: 84 83 std Z+4, r24 ; 0x04
14418: 09 c0 rjmp .+18 ; 0x1442c <__vector_26+0x1c6>
}
else
{
Motor[motor_write].ReadMode = BL_READMODE_STATUS; // normal status request
1441a: e0 91 e2 04 lds r30, 0x04E2
1441e: 2f e0 ldi r18, 0x0F ; 15
14420: e2 9f mul r30, r18
14422: f0 01 movw r30, r0
14424: 11 24 eor r1, r1
14426: e9 56 subi r30, 0x69 ; 105
14428: f6 4f sbci r31, 0xF6 ; 246
1442a: 14 82 std Z+4, r1 ; 0x04
}
// send read mode and the lower bits of setpoint
I2C_WriteByte((Motor[motor_write].ReadMode<<3)|(Motor[motor_write].SetPointLowerBits & 0x07));
1442c: a0 91 e2 04 lds r26, 0x04E2
14430: e0 91 e2 04 lds r30, 0x04E2
14434: 8f e0 ldi r24, 0x0F ; 15
14436: 8a 9f mul r24, r26
14438: d0 01 movw r26, r0
1443a: 11 24 eor r1, r1
1443c: a9 56 subi r26, 0x69 ; 105
1443e: b6 4f sbci r27, 0xF6 ; 246
14440: 14 96 adiw r26, 0x04 ; 4
14442: 9c 91 ld r25, X
14444: 99 0f add r25, r25
14446: 99 0f add r25, r25
14448: 99 0f add r25, r25
1444a: 8e 9f mul r24, r30
1444c: f0 01 movw r30, r0
1444e: 11 24 eor r1, r1
14450: e9 56 subi r30, 0x69 ; 105
14452: f6 4f sbci r31, 0xF6 ; 246
14454: 82 81 ldd r24, Z+2 ; 0x02
14456: 87 70 andi r24, 0x07 ; 7
14458: 89 2b or r24, r25
1445a: 80 93 bb 00 sts 0x00BB, r24
1445e: 85 e8 ldi r24, 0x85 ; 133
14460: 80 93 bc 00 sts 0x00BC, r24
// configuration tranmission request?
if((0x0001<<motor_write) & BLConfig_WriteMask)
14464: 40 91 e2 04 lds r20, 0x04E2
14468: 20 91 dc 04 lds r18, 0x04DC
1446c: 30 91 dd 04 lds r19, 0x04DD
14470: 81 e0 ldi r24, 0x01 ; 1
14472: 90 e0 ldi r25, 0x00 ; 0
14474: 02 c0 rjmp .+4 ; 0x1447a <__vector_26+0x214>
14476: 88 0f add r24, r24
14478: 99 1f adc r25, r25
1447a: 4a 95 dec r20
1447c: e2 f7 brpl .-8 ; 0x14476 <__vector_26+0x210>
1447e: 82 23 and r24, r18
14480: 93 23 and r25, r19
14482: 89 2b or r24, r25
14484: 51 f0 breq .+20 ; 0x1449a <__vector_26+0x234>
{ // redirect tx pointer to configuration data
pBuff = (uint8_t*)&BLConfig; // select config for motor
14486: 8f e8 ldi r24, 0x8F ; 143
14488: 99 e0 ldi r25, 0x09 ; 9
1448a: 90 93 d8 04 sts 0x04D8, r25
1448e: 80 93 d7 04 sts 0x04D7, r24
BuffLen = sizeof(BLConfig_t);
14492: 88 e0 ldi r24, 0x08 ; 8
14494: 80 93 d6 04 sts 0x04D6, r24
14498: ef c1 rjmp .+990 ; 0x14878 <__vector_26+0x612>
}
else
{ // jump to end of transmission for that motor
twi_state = 4;
1449a: 84 e0 ldi r24, 0x04 ; 4
1449c: 80 93 e3 04 sts 0x04E3, r24
144a0: eb c1 rjmp .+982 ; 0x14878 <__vector_26+0x612>
}
break;
case 3: // send configuration
I2C_WriteByte(*pBuff);
144a2: e0 91 d7 04 lds r30, 0x04D7
144a6: f0 91 d8 04 lds r31, 0x04D8
144aa: 80 81 ld r24, Z
144ac: 80 93 bb 00 sts 0x00BB, r24
144b0: 85 e8 ldi r24, 0x85 ; 133
144b2: 80 93 bc 00 sts 0x00BC, r24
pBuff++;
144b6: 80 91 d7 04 lds r24, 0x04D7
144ba: 90 91 d8 04 lds r25, 0x04D8
144be: 01 96 adiw r24, 0x01 ; 1
144c0: 90 93 d8 04 sts 0x04D8, r25
144c4: 80 93 d7 04 sts 0x04D7, r24
if(--BuffLen > 0) twi_state = 3; // if there are some bytes left
144c8: 80 91 d6 04 lds r24, 0x04D6
144cc: 81 50 subi r24, 0x01 ; 1
144ce: 80 93 d6 04 sts 0x04D6, r24
144d2: 88 23 and r24, r24
144d4: 09 f4 brne .+2 ; 0x144d8 <__vector_26+0x272>
144d6: d0 c1 rjmp .+928 ; 0x14878 <__vector_26+0x612>
144d8: 83 e0 ldi r24, 0x03 ; 3
144da: 80 93 e3 04 sts 0x04E3, r24
144de: cc c1 rjmp .+920 ; 0x14878 <__vector_26+0x612>
break;
case 4: // repeat case 0-4 for all motors
if(TWSR == TW_MT_DATA_NACK) // Data transmitted, NACK received
144e0: 80 91 b9 00 lds r24, 0x00B9
144e4: 80 33 cpi r24, 0x30 ; 48
144e6: 11 f5 brne .+68 ; 0x1452c <__vector_26+0x2c6>
{
if(!missing_motor) missing_motor = motor_write + 1;
144e8: 80 91 d5 04 lds r24, 0x04D5
144ec: 81 11 cpse r24, r1
144ee: 05 c0 rjmp .+10 ; 0x144fa <__vector_26+0x294>
144f0: 80 91 e2 04 lds r24, 0x04E2
144f4: 8f 5f subi r24, 0xFF ; 255
144f6: 80 93 d5 04 sts 0x04D5, r24
if((Motor[motor_write].State & MOTOR_STATE_ERROR_MASK) < MOTOR_STATE_ERROR_MASK) Motor[motor_write].State++; // increment error counter and handle overflow
144fa: e0 91 e2 04 lds r30, 0x04E2
144fe: 8f e0 ldi r24, 0x0F ; 15
14500: e8 9f mul r30, r24
14502: f0 01 movw r30, r0
14504: 11 24 eor r1, r1
14506: e9 56 subi r30, 0x69 ; 105
14508: f6 4f sbci r31, 0xF6 ; 246
1450a: 83 81 ldd r24, Z+3 ; 0x03
1450c: 8f 77 andi r24, 0x7F ; 127
1450e: 90 e0 ldi r25, 0x00 ; 0
14510: 8f 37 cpi r24, 0x7F ; 127
14512: 91 05 cpc r25, r1
14514: 5c f4 brge .+22 ; 0x1452c <__vector_26+0x2c6>
14516: e0 91 e2 04 lds r30, 0x04E2
1451a: 2f e0 ldi r18, 0x0F ; 15
1451c: e2 9f mul r30, r18
1451e: f0 01 movw r30, r0
14520: 11 24 eor r1, r1
14522: e9 56 subi r30, 0x69 ; 105
14524: f6 4f sbci r31, 0xF6 ; 246
14526: 83 81 ldd r24, Z+3 ; 0x03
14528: 8f 5f subi r24, 0xFF ; 255
1452a: 83 83 std Z+3, r24 ; 0x03
}
I2C_Stop(TWI_STATE_MOTOR_TX);
1452c: 10 92 e3 04 sts 0x04E3, r1
14530: ec eb ldi r30, 0xBC ; 188
14532: f0 e0 ldi r31, 0x00 ; 0
14534: 84 e9 ldi r24, 0x94 ; 148
14536: 80 83 st Z, r24
I2CTimeout = 10;
14538: 8a e0 ldi r24, 0x0A ; 10
1453a: 90 e0 ldi r25, 0x00 ; 0
1453c: 90 93 b1 02 sts 0x02B1, r25
14540: 80 93 b0 02 sts 0x02B0, r24
motor_write++; // next motor
14544: 80 91 e2 04 lds r24, 0x04E2
14548: 8f 5f subi r24, 0xFF ; 255
1454a: 80 93 e2 04 sts 0x04E2, r24
I2C_Start(TWI_STATE_MOTOR_TX); // Repeated start -> switch slave or switch Master Transmit -> Master Receive
1454e: 10 92 e3 04 sts 0x04E3, r1
14552: 80 91 de 04 lds r24, 0x04DE
14556: 8e 7f andi r24, 0xFE ; 254
14558: 80 93 de 04 sts 0x04DE, r24
1455c: 85 ea ldi r24, 0xA5 ; 165
1455e: 80 83 st Z, r24
break;
14560: 8b c1 rjmp .+790 ; 0x14878 <__vector_26+0x612>
// Master Receive Data
case 5: // TWI_STATE_MOTOR_RX
if(TWSR != TW_MR_SLA_ACK) // SLA+R transmitted but no ACK received
14562: 80 91 b9 00 lds r24, 0x00B9
14566: 80 34 cpi r24, 0x40 ; 64
14568: a1 f1 breq .+104 ; 0x145d2 <__vector_26+0x36c>
{ // no response from the addressed slave received
Motor[motor_read].State &= ~MOTOR_STATE_PRESENT_MASK; // clear present bit
1456a: e0 91 e1 04 lds r30, 0x04E1
1456e: 8f e0 ldi r24, 0x0F ; 15
14570: e8 9f mul r30, r24
14572: f0 01 movw r30, r0
14574: 11 24 eor r1, r1
14576: e9 56 subi r30, 0x69 ; 105
14578: f6 4f sbci r31, 0xF6 ; 246
1457a: 83 81 ldd r24, Z+3 ; 0x03
1457c: 8f 77 andi r24, 0x7F ; 127
1457e: 83 83 std Z+3, r24 ; 0x03
if(++motor_read >= MAX_MOTORS)
14580: 80 91 e1 04 lds r24, 0x04E1
14584: 8f 5f subi r24, 0xFF ; 255
14586: 80 93 e1 04 sts 0x04E1, r24
1458a: 8c 30 cpi r24, 0x0C ; 12
1458c: a8 f0 brcs .+42 ; 0x145b8 <__vector_26+0x352>
{ // all motors read
motor_read = 0; // restart from beginning
1458e: 10 92 e1 04 sts 0x04E1, r1
BLConfig_ReadMask = 0; // reset read configuration bitmask
14592: 10 92 db 04 sts 0x04DB, r1
14596: 10 92 da 04 sts 0x04DA, r1
if(++motor_read_temperature >= MAX_MOTORS)
1459a: 80 91 d4 04 lds r24, 0x04D4
1459e: 8f 5f subi r24, 0xFF ; 255
145a0: 8c 30 cpi r24, 0x0C ; 12
145a2: 18 f4 brcc .+6 ; 0x145aa <__vector_26+0x344>
145a4: 80 93 d4 04 sts 0x04D4, r24
145a8: 07 c0 rjmp .+14 ; 0x145b8 <__vector_26+0x352>
{
motor_read_temperature = 0;
145aa: 10 92 d4 04 sts 0x04D4, r1
BLFlags &= ~BLFLAG_READ_VERSION;
145ae: 80 91 de 04 lds r24, 0x04DE
145b2: 8d 7f andi r24, 0xFD ; 253
145b4: 80 93 de 04 sts 0x04DE, r24
}
}
BLFlags |= BLFLAG_TX_COMPLETE;
145b8: 80 91 de 04 lds r24, 0x04DE
145bc: 81 60 ori r24, 0x01 ; 1
145be: 80 93 de 04 sts 0x04DE, r24
I2C_Stop(TWI_STATE_MOTOR_TX);
145c2: 10 92 e3 04 sts 0x04E3, r1
145c6: 84 e9 ldi r24, 0x94 ; 148
145c8: 80 93 bc 00 sts 0x00BC, r24
I2C_TransferActive = 0;
145cc: 10 92 e0 04 sts 0x04E0, r1
145d0: 7a c0 rjmp .+244 ; 0x146c6 <__vector_26+0x460>
}
else
{ // motor successfully addressed
Motor[motor_read].State |= MOTOR_STATE_PRESENT_MASK; // set present bit
145d2: e0 91 e1 04 lds r30, 0x04E1
145d6: 8f e0 ldi r24, 0x0F ; 15
145d8: 8e 9f mul r24, r30
145da: f0 01 movw r30, r0
145dc: 11 24 eor r1, r1
145de: e9 56 subi r30, 0x69 ; 105
145e0: f6 4f sbci r31, 0xF6 ; 246
145e2: 93 81 ldd r25, Z+3 ; 0x03
145e4: 90 68 ori r25, 0x80 ; 128
145e6: 93 83 std Z+3, r25 ; 0x03
if(Motor[motor_read].Version & MOTOR_STATE_NEW_PROTOCOL_MASK)
145e8: e0 91 e1 04 lds r30, 0x04E1
145ec: 8e 9f mul r24, r30
145ee: f0 01 movw r30, r0
145f0: 11 24 eor r1, r1
145f2: e9 56 subi r30, 0x69 ; 105
145f4: f6 4f sbci r31, 0xF6 ; 246
145f6: 80 81 ld r24, Z
145f8: 80 ff sbrs r24, 0
145fa: 3c c0 rjmp .+120 ; 0x14674 <__vector_26+0x40e>
{
// new BL found
switch(Motor[motor_read].ReadMode)
145fc: e0 91 e1 04 lds r30, 0x04E1
14600: 2f e0 ldi r18, 0x0F ; 15
14602: e2 9f mul r30, r18
14604: f0 01 movw r30, r0
14606: 11 24 eor r1, r1
14608: e9 56 subi r30, 0x69 ; 105
1460a: f6 4f sbci r31, 0xF6 ; 246
1460c: 84 81 ldd r24, Z+4 ; 0x04
1460e: 88 23 and r24, r24
14610: b1 f0 breq .+44 ; 0x1463e <__vector_26+0x3d8>
14612: 80 31 cpi r24, 0x10 ; 16
14614: 09 f0 breq .+2 ; 0x14618 <__vector_26+0x3b2>
14616: 4c c0 rjmp .+152 ; 0x146b0 <__vector_26+0x44a>
{
case BL_READMODE_CONFIG:
pBuff = (uint8_t*)&BLConfig;
14618: 8f e8 ldi r24, 0x8F ; 143
1461a: 99 e0 ldi r25, 0x09 ; 9
1461c: 90 93 d8 04 sts 0x04D8, r25
14620: 80 93 d7 04 sts 0x04D7, r24
BuffLen = sizeof(BLConfig_t);
14624: 88 e0 ldi r24, 0x08 ; 8
14626: 80 93 d6 04 sts 0x04D6, r24
Motor[motor_read].ReadMode = BL_READMODE_STATUS; // only once
1462a: e0 91 e1 04 lds r30, 0x04E1
1462e: 8f e0 ldi r24, 0x0F ; 15
14630: e8 9f mul r30, r24
14632: f0 01 movw r30, r0
14634: 11 24 eor r1, r1
14636: e9 56 subi r30, 0x69 ; 105
14638: f6 4f sbci r31, 0xF6 ; 246
1463a: 14 82 std Z+4, r1 ; 0x04
break;
1463c: 39 c0 rjmp .+114 ; 0x146b0 <__vector_26+0x44a>
case BL_READMODE_STATUS:
pBuff = (uint8_t*)&(Motor[motor_read].Current);
1463e: 80 91 e1 04 lds r24, 0x04E1
14642: 2f e0 ldi r18, 0x0F ; 15
14644: 82 9f mul r24, r18
14646: c0 01 movw r24, r0
14648: 11 24 eor r1, r1
1464a: 84 56 subi r24, 0x64 ; 100
1464c: 96 4f sbci r25, 0xF6 ; 246
1464e: 90 93 d8 04 sts 0x04D8, r25
14652: 80 93 d7 04 sts 0x04D7, r24
if(motor_read == motor_read_temperature) BuffLen = ReadBlSize; // read Current, MaxPwm & Temp (is 3 or 9)
14656: 90 91 e1 04 lds r25, 0x04E1
1465a: 80 91 d4 04 lds r24, 0x04D4
1465e: 98 13 cpse r25, r24
14660: 05 c0 rjmp .+10 ; 0x1466c <__vector_26+0x406>
14662: 80 91 b3 02 lds r24, 0x02B3
14666: 80 93 d6 04 sts 0x04D6, r24
1466a: 22 c0 rjmp .+68 ; 0x146b0 <__vector_26+0x44a>
else BuffLen = 1;// read Current only
1466c: 81 e0 ldi r24, 0x01 ; 1
1466e: 80 93 d6 04 sts 0x04D6, r24
14672: 22 c0 rjmp .+68 ; 0x146b8 <__vector_26+0x452>
break;
}
}
else // old BL version
{
pBuff = (uint8_t*)&(Motor[motor_read].Current);
14674: 80 91 e1 04 lds r24, 0x04E1
14678: 2f e0 ldi r18, 0x0F ; 15
1467a: 82 9f mul r24, r18
1467c: c0 01 movw r24, r0
1467e: 11 24 eor r1, r1
14680: 84 56 subi r24, 0x64 ; 100
14682: 96 4f sbci r25, 0xF6 ; 246
14684: 90 93 d8 04 sts 0x04D8, r25
14688: 80 93 d7 04 sts 0x04D7, r24
if((BLFlags & BLFLAG_READ_VERSION) || (motor_read == motor_read_temperature)) BuffLen = 2; // Current & MaxPwm
1468c: 80 91 de 04 lds r24, 0x04DE
14690: 81 fd sbrc r24, 1
14692: 06 c0 rjmp .+12 ; 0x146a0 <__vector_26+0x43a>
14694: 90 91 e1 04 lds r25, 0x04E1
14698: 80 91 d4 04 lds r24, 0x04D4
1469c: 98 13 cpse r25, r24
1469e: 04 c0 rjmp .+8 ; 0x146a8 <__vector_26+0x442>
146a0: 82 e0 ldi r24, 0x02 ; 2
146a2: 80 93 d6 04 sts 0x04D6, r24
146a6: 0c c0 rjmp .+24 ; 0x146c0 <__vector_26+0x45a>
else BuffLen = 1; // read Current only
146a8: 81 e0 ldi r24, 0x01 ; 1
146aa: 80 93 d6 04 sts 0x04D6, r24
146ae: 04 c0 rjmp .+8 ; 0x146b8 <__vector_26+0x452>
}
if(BuffLen == 1)
146b0: 80 91 d6 04 lds r24, 0x04D6
146b4: 81 30 cpi r24, 0x01 ; 1
146b6: 21 f4 brne .+8 ; 0x146c0 <__vector_26+0x45a>
{
I2C_ReceiveLastByte(); // read last byte
146b8: 85 e8 ldi r24, 0x85 ; 133
146ba: 80 93 bc 00 sts 0x00BC, r24
146be: 03 c0 rjmp .+6 ; 0x146c6 <__vector_26+0x460>
}
else
{
I2C_ReceiveByte(); // read next byte
146c0: 85 ec ldi r24, 0xC5 ; 197
146c2: 80 93 bc 00 sts 0x00BC, r24
}
}
MissingMotor = missing_motor;
146c6: 80 91 d5 04 lds r24, 0x04D5
146ca: 80 93 df 04 sts 0x04DF, r24
missing_motor = 0;
146ce: 10 92 d5 04 sts 0x04D5, r1
break;
146d2: d2 c0 rjmp .+420 ; 0x14878 <__vector_26+0x612>
case 6: // receive bytes
*pBuff = TWDR;
146d4: 80 91 bb 00 lds r24, 0x00BB
146d8: e0 91 d7 04 lds r30, 0x04D7
146dc: f0 91 d8 04 lds r31, 0x04D8
146e0: 81 93 st Z+, r24
pBuff++; // set Pointer to next element : Motor[].Current,Motor[].Temperature
146e2: f0 93 d8 04 sts 0x04D8, r31
146e6: e0 93 d7 04 sts 0x04D7, r30
BuffLen--;
146ea: 80 91 d6 04 lds r24, 0x04D6
146ee: 81 50 subi r24, 0x01 ; 1
146f0: 80 93 d6 04 sts 0x04D6, r24
if(BuffLen>1)
146f4: 82 30 cpi r24, 0x02 ; 2
146f6: 20 f0 brcs .+8 ; 0x14700 <__vector_26+0x49a>
{
I2C_ReceiveByte(); // read next byte
146f8: 85 ec ldi r24, 0xC5 ; 197
146fa: 80 93 bc 00 sts 0x00BC, r24
146fe: a2 c0 rjmp .+324 ; 0x14844 <__vector_26+0x5de>
}
else if (BuffLen == 1)
14700: 81 30 cpi r24, 0x01 ; 1
14702: 21 f4 brne .+8 ; 0x1470c <__vector_26+0x4a6>
{
I2C_ReceiveLastByte(); // read last byte
14704: 85 e8 ldi r24, 0x85 ; 133
14706: 80 93 bc 00 sts 0x00BC, r24
1470a: 9c c0 rjmp .+312 ; 0x14844 <__vector_26+0x5de>
}
else // nothing left -> ready
{
if(BLFlags & BLFLAG_READ_VERSION)
1470c: 80 91 de 04 lds r24, 0x04DE
14710: 81 ff sbrs r24, 1
14712: 52 c0 rjmp .+164 ; 0x147b8 <__vector_26+0x552>
{
if(!(FC_StatusFlags & FC_STATUS_MOTOR_RUN))
14714: 80 91 cb 03 lds r24, 0x03CB
14718: 80 fd sbrc r24, 0
1471a: 4e c0 rjmp .+156 ; 0x147b8 <__vector_26+0x552>
{
if((Motor[motor_read].MaxPWM & 252) == 248) Motor[motor_read].Version |= MOTOR_STATE_NEW_PROTOCOL_MASK;
1471c: e0 91 e1 04 lds r30, 0x04E1
14720: 8f e0 ldi r24, 0x0F ; 15
14722: e8 9f mul r30, r24
14724: f0 01 movw r30, r0
14726: 11 24 eor r1, r1
14728: e9 56 subi r30, 0x69 ; 105
1472a: f6 4f sbci r31, 0xF6 ; 246
1472c: 86 81 ldd r24, Z+6 ; 0x06
1472e: 8c 7f andi r24, 0xFC ; 252
14730: 88 3f cpi r24, 0xF8 ; 248
14732: 61 f4 brne .+24 ; 0x1474c <__vector_26+0x4e6>
14734: e0 91 e1 04 lds r30, 0x04E1
14738: 2f e0 ldi r18, 0x0F ; 15
1473a: e2 9f mul r30, r18
1473c: f0 01 movw r30, r0
1473e: 11 24 eor r1, r1
14740: e9 56 subi r30, 0x69 ; 105
14742: f6 4f sbci r31, 0xF6 ; 246
14744: 80 81 ld r24, Z
14746: 81 60 ori r24, 0x01 ; 1
14748: 80 83 st Z, r24
1474a: 09 c0 rjmp .+18 ; 0x1475e <__vector_26+0x4f8>
else Motor[motor_read].Version = 0;
1474c: e0 91 e1 04 lds r30, 0x04E1
14750: 8f e0 ldi r24, 0x0F ; 15
14752: e8 9f mul r30, r24
14754: f0 01 movw r30, r0
14756: 11 24 eor r1, r1
14758: e9 56 subi r30, 0x69 ; 105
1475a: f6 4f sbci r31, 0xF6 ; 246
1475c: 10 82 st Z, r1
if(Motor[motor_read].MaxPWM == 248) Motor[motor_read].Version |= (MOTOR_STATE_FAST_MODE | MOTOR_STATE_BL30);
1475e: e0 91 e1 04 lds r30, 0x04E1
14762: 2f e0 ldi r18, 0x0F ; 15
14764: e2 9f mul r30, r18
14766: f0 01 movw r30, r0
14768: 11 24 eor r1, r1
1476a: e9 56 subi r30, 0x69 ; 105
1476c: f6 4f sbci r31, 0xF6 ; 246
1476e: 86 81 ldd r24, Z+6 ; 0x06
14770: 88 3f cpi r24, 0xF8 ; 248
14772: 61 f4 brne .+24 ; 0x1478c <__vector_26+0x526>
14774: e0 91 e1 04 lds r30, 0x04E1
14778: 8f e0 ldi r24, 0x0F ; 15
1477a: e8 9f mul r30, r24
1477c: f0 01 movw r30, r0
1477e: 11 24 eor r1, r1
14780: e9 56 subi r30, 0x69 ; 105
14782: f6 4f sbci r31, 0xF6 ; 246
14784: 80 81 ld r24, Z
14786: 86 60 ori r24, 0x06 ; 6
14788: 80 83 st Z, r24
1478a: 16 c0 rjmp .+44 ; 0x147b8 <__vector_26+0x552>
else
if(Motor[motor_read].MaxPWM == 249) Motor[motor_read].Version |= MOTOR_STATE_BL30;
1478c: e0 91 e1 04 lds r30, 0x04E1
14790: 2f e0 ldi r18, 0x0F ; 15
14792: e2 9f mul r30, r18
14794: f0 01 movw r30, r0
14796: 11 24 eor r1, r1
14798: e9 56 subi r30, 0x69 ; 105
1479a: f6 4f sbci r31, 0xF6 ; 246
1479c: 86 81 ldd r24, Z+6 ; 0x06
1479e: 89 3f cpi r24, 0xF9 ; 249
147a0: 59 f4 brne .+22 ; 0x147b8 <__vector_26+0x552>
147a2: e0 91 e1 04 lds r30, 0x04E1
147a6: 8f e0 ldi r24, 0x0F ; 15
147a8: e8 9f mul r30, r24
147aa: f0 01 movw r30, r0
147ac: 11 24 eor r1, r1
147ae: e9 56 subi r30, 0x69 ; 105
147b0: f6 4f sbci r31, 0xF6 ; 246
147b2: 80 81 ld r24, Z
147b4: 84 60 ori r24, 0x04 ; 4
147b6: 80 83 st Z, r24
}
}
 
if(FC_StatusFlags & FC_STATUS_FLY)
147b8: 80 91 cb 03 lds r24, 0x03CB
147bc: 81 ff sbrs r24, 1
147be: 19 c0 rjmp .+50 ; 0x147f2 <__vector_26+0x58c>
{
// Starting -> 40
// I2C-Setpoint is zero -> 250
// 255 -> Running and no Redundancy
// 254 -> Running and active Redundancy
if(Motor[motor_read].MaxPWM < 254)
147c0: e0 91 e1 04 lds r30, 0x04E1
147c4: 2f e0 ldi r18, 0x0F ; 15
147c6: e2 9f mul r30, r18
147c8: f0 01 movw r30, r0
147ca: 11 24 eor r1, r1
147cc: e9 56 subi r30, 0x69 ; 105
147ce: f6 4f sbci r31, 0xF6 ; 246
147d0: 86 81 ldd r24, Z+6 ; 0x06
147d2: 8e 3f cpi r24, 0xFE ; 254
147d4: 70 f4 brcc .+28 ; 0x147f2 <__vector_26+0x58c>
{
Motor[motor_read].NotReadyCnt++;
147d6: e0 91 e1 04 lds r30, 0x04E1
147da: 8f e0 ldi r24, 0x0F ; 15
147dc: e8 9f mul r30, r24
147de: f0 01 movw r30, r0
147e0: 11 24 eor r1, r1
147e2: e9 56 subi r30, 0x69 ; 105
147e4: f6 4f sbci r31, 0xF6 ; 246
147e6: 86 85 ldd r24, Z+14 ; 0x0e
147e8: 8f 5f subi r24, 0xFF ; 255
147ea: 86 87 std Z+14, r24 ; 0x0e
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
SpeakHoTT = SPEAK_ERR_MOTOR;
147ec: 89 e0 ldi r24, 0x09 ; 9
147ee: 80 93 57 01 sts 0x0157, r24
#endif
}
}
if(++motor_read >= MAX_MOTORS)
147f2: 80 91 e1 04 lds r24, 0x04E1
147f6: 8f 5f subi r24, 0xFF ; 255
147f8: 80 93 e1 04 sts 0x04E1, r24
147fc: 8c 30 cpi r24, 0x0C ; 12
147fe: a8 f0 brcs .+42 ; 0x1482a <__vector_26+0x5c4>
{
motor_read = 0; // restart from beginning
14800: 10 92 e1 04 sts 0x04E1, r1
BLConfig_ReadMask = 0; // reset read configuration bitmask
14804: 10 92 db 04 sts 0x04DB, r1
14808: 10 92 da 04 sts 0x04DA, r1
if(++motor_read_temperature >= MAX_MOTORS)
1480c: 80 91 d4 04 lds r24, 0x04D4
14810: 8f 5f subi r24, 0xFF ; 255
14812: 8c 30 cpi r24, 0x0C ; 12
14814: 18 f4 brcc .+6 ; 0x1481c <__vector_26+0x5b6>
14816: 80 93 d4 04 sts 0x04D4, r24
1481a: 07 c0 rjmp .+14 ; 0x1482a <__vector_26+0x5c4>
{
motor_read_temperature = 0;
1481c: 10 92 d4 04 sts 0x04D4, r1
BLFlags &= ~BLFLAG_READ_VERSION;
14820: 80 91 de 04 lds r24, 0x04DE
14824: 8d 7f andi r24, 0xFD ; 253
14826: 80 93 de 04 sts 0x04DE, r24
}
}
I2C_Stop(TWI_STATE_MOTOR_TX);
1482a: 10 92 e3 04 sts 0x04E3, r1
1482e: 84 e9 ldi r24, 0x94 ; 148
14830: 80 93 bc 00 sts 0x00BC, r24
BLFlags |= BLFLAG_TX_COMPLETE;
14834: 80 91 de 04 lds r24, 0x04DE
14838: 81 60 ori r24, 0x01 ; 1
1483a: 80 93 de 04 sts 0x04DE, r24
I2C_TransferActive = 0;
1483e: 10 92 e0 04 sts 0x04E0, r1
return;
14842: 1a c0 rjmp .+52 ; 0x14878 <__vector_26+0x612>
}
twi_state = 6; // if there are some bytes left
14844: 86 e0 ldi r24, 0x06 ; 6
14846: 80 93 e3 04 sts 0x04E3, r24
break;
1484a: 16 c0 rjmp .+44 ; 0x14878 <__vector_26+0x612>
BLFlags |= BLFLAG_TX_COMPLETE;
}
break;
*/
default:
I2C_Stop(TWI_STATE_MOTOR_TX);
1484c: 10 92 e3 04 sts 0x04E3, r1
14850: 84 e9 ldi r24, 0x94 ; 148
14852: 80 93 bc 00 sts 0x00BC, r24
BLFlags |= BLFLAG_TX_COMPLETE;
14856: 80 91 de 04 lds r24, 0x04DE
1485a: 81 60 ori r24, 0x01 ; 1
1485c: 80 93 de 04 sts 0x04DE, r24
I2CTimeout = 10;
14860: 8a e0 ldi r24, 0x0A ; 10
14862: 90 e0 ldi r25, 0x00 ; 0
14864: 90 93 b1 02 sts 0x02B1, r25
14868: 80 93 b0 02 sts 0x02B0, r24
motor_write = 0;
1486c: 10 92 e2 04 sts 0x04E2, r1
motor_read = 0;
14870: 10 92 e1 04 sts 0x04E1, r1
I2C_TransferActive = 0;
14874: 10 92 e0 04 sts 0x04E0, r1
break;
}
 
}
14878: ff 91 pop r31
1487a: ef 91 pop r30
1487c: bf 91 pop r27
1487e: af 91 pop r26
14880: 9f 91 pop r25
14882: 8f 91 pop r24
14884: 4f 91 pop r20
14886: 3f 91 pop r19
14888: 2f 91 pop r18
1488a: 0f 90 pop r0
1488c: 0b be out 0x3b, r0 ; 59
1488e: 0f 90 pop r0
14890: 0f be out 0x3f, r0 ; 63
14892: 0f 90 pop r0
14894: 1f 90 pop r1
14896: 18 95 reti
 
00014898 <I2C_WriteBLConfig>:
 
 
uint8_t I2C_WriteBLConfig(uint8_t motor)
{
14898: ef 92 push r14
1489a: ff 92 push r15
1489c: 0f 93 push r16
1489e: 1f 93 push r17
148a0: cf 93 push r28
148a2: df 93 push r29
148a4: 18 2f mov r17, r24
uint8_t i, packets;
uint16_t timer;
if(MotorenEin || PC_MotortestActive) return(BLCONFIG_ERR_MOTOR_RUNNING); // not when motors are running!
148a6: 90 91 03 04 lds r25, 0x0403
148aa: 91 11 cpse r25, r1
148ac: 98 c0 rjmp .+304 ; 0x149de <I2C_WriteBLConfig+0x146>
148ae: 80 91 f5 04 lds r24, 0x04F5
148b2: 81 11 cpse r24, r1
148b4: 96 c0 rjmp .+300 ; 0x149e2 <I2C_WriteBLConfig+0x14a>
if(motor > MAX_MOTORS) return (BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
148b6: 1d 30 cpi r17, 0x0D ; 13
148b8: 08 f0 brcs .+2 ; 0x148bc <I2C_WriteBLConfig+0x24>
148ba: 95 c0 rjmp .+298 ; 0x149e6 <I2C_WriteBLConfig+0x14e>
if(motor)
148bc: 11 23 and r17, r17
148be: d9 f0 breq .+54 ; 0x148f6 <I2C_WriteBLConfig+0x5e>
{
if(!(Motor[motor-1].State & MOTOR_STATE_PRESENT_MASK)) return(BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
148c0: 21 2f mov r18, r17
148c2: 30 e0 ldi r19, 0x00 ; 0
148c4: 21 50 subi r18, 0x01 ; 1
148c6: 31 09 sbc r19, r1
148c8: 8f e0 ldi r24, 0x0F ; 15
148ca: 82 9f mul r24, r18
148cc: f0 01 movw r30, r0
148ce: 83 9f mul r24, r19
148d0: f0 0d add r31, r0
148d2: 11 24 eor r1, r1
148d4: e9 56 subi r30, 0x69 ; 105
148d6: f6 4f sbci r31, 0xF6 ; 246
148d8: 83 81 ldd r24, Z+3 ; 0x03
148da: 88 23 and r24, r24
148dc: 0c f0 brlt .+2 ; 0x148e0 <I2C_WriteBLConfig+0x48>
148de: 85 c0 rjmp .+266 ; 0x149ea <I2C_WriteBLConfig+0x152>
if(!(Motor[motor-1].Version & MOTOR_STATE_NEW_PROTOCOL_MASK)) return(BLCONFIG_ERR_HW_NOT_COMPATIBLE); // not a new BL!
148e0: 8f e0 ldi r24, 0x0F ; 15
148e2: 82 9f mul r24, r18
148e4: f0 01 movw r30, r0
148e6: 83 9f mul r24, r19
148e8: f0 0d add r31, r0
148ea: 11 24 eor r1, r1
148ec: e9 56 subi r30, 0x69 ; 105
148ee: f6 4f sbci r31, 0xF6 ; 246
148f0: 80 81 ld r24, Z
148f2: 80 ff sbrs r24, 0
148f4: 7c c0 rjmp .+248 ; 0x149ee <I2C_WriteBLConfig+0x156>
}
// check BL configuration to send
if((BLConfig.Revision & 0x0B) != BLCONFIG_REVISION) return (BLCONFIG_ERR_SW_NOT_COMPATIBLE); // bad revison
148f6: 80 91 8f 09 lds r24, 0x098F
148fa: 8b 70 andi r24, 0x0B ; 11
148fc: 82 30 cpi r24, 0x02 ; 2
148fe: 09 f0 breq .+2 ; 0x14902 <I2C_WriteBLConfig+0x6a>
14900: 78 c0 rjmp .+240 ; 0x149f2 <I2C_WriteBLConfig+0x15a>
i = RAM_Checksum((uint8_t*)&BLConfig, sizeof(BLConfig_t) - 1);
14902: 67 e0 ldi r22, 0x07 ; 7
14904: 70 e0 ldi r23, 0x00 ; 0
14906: 8f e8 ldi r24, 0x8F ; 143
14908: 99 e0 ldi r25, 0x09 ; 9
1490a: 0e 94 3e 23 call 0x467c ; 0x467c <RAM_Checksum>
if(i != BLConfig.crc) return(BLCONFIG_ERR_CHECKSUM); // bad checksum
1490e: 90 91 96 09 lds r25, 0x0996
14912: 98 13 cpse r25, r24
14914: 70 c0 rjmp .+224 ; 0x149f6 <I2C_WriteBLConfig+0x15e>
 
packets = Max_I2C_Packets;
14916: f0 90 b2 02 lds r15, 0x02B2
Max_I2C_Packets = 12;
1491a: 8c e0 ldi r24, 0x0C ; 12
1491c: 80 93 b2 02 sts 0x02B2, r24
I2CTimeout = 100;
14920: 24 e6 ldi r18, 0x64 ; 100
14922: 30 e0 ldi r19, 0x00 ; 0
14924: 30 93 b1 02 sts 0x02B1, r19
14928: 20 93 b0 02 sts 0x02B0, r18
 
timer = SetDelay(100);
1492c: 84 e6 ldi r24, 0x64 ; 100
1492e: 90 e0 ldi r25, 0x00 ; 0
14930: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
14934: ec 01 movw r28, r24
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
14936: 80 91 de 04 lds r24, 0x04DE
1493a: 80 fd sbrc r24, 0
1493c: 05 c0 rjmp .+10 ; 0x14948 <I2C_WriteBLConfig+0xb0>
1493e: ce 01 movw r24, r28
14940: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
14944: 88 23 and r24, r24
14946: b9 f3 breq .-18 ; 0x14936 <I2C_WriteBLConfig+0x9e>
 
// prepare the bitmask
if(!motor) BLConfig_WriteMask = 0x0FFF; // 0 means all -> all motors at once with the same configuration
14948: 11 11 cpse r17, r1
1494a: 07 c0 rjmp .+14 ; 0x1495a <I2C_WriteBLConfig+0xc2>
1494c: 8f ef ldi r24, 0xFF ; 255
1494e: 9f e0 ldi r25, 0x0F ; 15
14950: 90 93 dd 04 sts 0x04DD, r25
14954: 80 93 dc 04 sts 0x04DC, r24
14958: 0c c0 rjmp .+24 ; 0x14972 <I2C_WriteBLConfig+0xda>
else BLConfig_WriteMask = 0x0001<<(motor-1); //only one specific motor
1495a: 11 50 subi r17, 0x01 ; 1
1495c: 81 e0 ldi r24, 0x01 ; 1
1495e: 90 e0 ldi r25, 0x00 ; 0
14960: 02 c0 rjmp .+4 ; 0x14966 <I2C_WriteBLConfig+0xce>
14962: 88 0f add r24, r24
14964: 99 1f adc r25, r25
14966: 1a 95 dec r17
14968: e2 f7 brpl .-8 ; 0x14962 <I2C_WriteBLConfig+0xca>
1496a: 90 93 dd 04 sts 0x04DD, r25
1496e: 80 93 dc 04 sts 0x04DC, r24
 
motor_write = 0;
14972: 10 92 e2 04 sts 0x04E2, r1
motor_read = 0;
14976: 10 92 e1 04 sts 0x04E1, r1
// needs at least MAX_MOTORS loops of 2 ms (12*2ms = 24ms)
timer = SetDelay(1000);
1497a: 88 ee ldi r24, 0xE8 ; 232
1497c: 93 e0 ldi r25, 0x03 ; 3
1497e: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
14982: ec 01 movw r28, r24
do
{
I2C_Start(TWI_STATE_MOTOR_TX); // start an i2c transmission
14984: 0c eb ldi r16, 0xBC ; 188
14986: 10 e0 ldi r17, 0x00 ; 0
14988: 0f 2e mov r0, r31
1498a: f5 ea ldi r31, 0xA5 ; 165
1498c: ef 2e mov r14, r31
1498e: f0 2d mov r31, r0
14990: 10 92 e3 04 sts 0x04E3, r1
14994: 80 91 de 04 lds r24, 0x04DE
14998: 8e 7f andi r24, 0xFE ; 254
1499a: 80 93 de 04 sts 0x04DE, r24
1499e: f8 01 movw r30, r16
149a0: e0 82 st Z, r14
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
149a2: 80 91 de 04 lds r24, 0x04DE
149a6: 80 fd sbrc r24, 0
149a8: 05 c0 rjmp .+10 ; 0x149b4 <I2C_WriteBLConfig+0x11c>
149aa: ce 01 movw r24, r28
149ac: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
149b0: 88 23 and r24, r24
149b2: b9 f3 breq .-18 ; 0x149a2 <I2C_WriteBLConfig+0x10a>
} while(BLConfig_WriteMask && !CheckDelay(timer)); // repeat until the BL config has been sent
149b4: 80 91 dc 04 lds r24, 0x04DC
149b8: 90 91 dd 04 lds r25, 0x04DD
149bc: 89 2b or r24, r25
149be: 29 f0 breq .+10 ; 0x149ca <I2C_WriteBLConfig+0x132>
149c0: ce 01 movw r24, r28
149c2: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
149c6: 88 23 and r24, r24
149c8: 19 f3 breq .-58 ; 0x14990 <I2C_WriteBLConfig+0xf8>
Max_I2C_Packets = packets;
149ca: f0 92 b2 02 sts 0x02B2, r15
if(BLConfig_WriteMask) return(BLCONFIG_ERR_MOTOR_NOT_EXIST);
149ce: 80 91 dc 04 lds r24, 0x04DC
149d2: 90 91 dd 04 lds r25, 0x04DD
149d6: 89 2b or r24, r25
149d8: 81 f0 breq .+32 ; 0x149fa <I2C_WriteBLConfig+0x162>
149da: 82 e0 ldi r24, 0x02 ; 2
149dc: 0f c0 rjmp .+30 ; 0x149fc <I2C_WriteBLConfig+0x164>
 
uint8_t I2C_WriteBLConfig(uint8_t motor)
{
uint8_t i, packets;
uint16_t timer;
if(MotorenEin || PC_MotortestActive) return(BLCONFIG_ERR_MOTOR_RUNNING); // not when motors are running!
149de: 81 e0 ldi r24, 0x01 ; 1
149e0: 0d c0 rjmp .+26 ; 0x149fc <I2C_WriteBLConfig+0x164>
149e2: 81 e0 ldi r24, 0x01 ; 1
149e4: 0b c0 rjmp .+22 ; 0x149fc <I2C_WriteBLConfig+0x164>
if(motor > MAX_MOTORS) return (BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
149e6: 82 e0 ldi r24, 0x02 ; 2
149e8: 09 c0 rjmp .+18 ; 0x149fc <I2C_WriteBLConfig+0x164>
if(motor)
{
if(!(Motor[motor-1].State & MOTOR_STATE_PRESENT_MASK)) return(BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
149ea: 82 e0 ldi r24, 0x02 ; 2
149ec: 07 c0 rjmp .+14 ; 0x149fc <I2C_WriteBLConfig+0x164>
if(!(Motor[motor-1].Version & MOTOR_STATE_NEW_PROTOCOL_MASK)) return(BLCONFIG_ERR_HW_NOT_COMPATIBLE); // not a new BL!
149ee: 83 e0 ldi r24, 0x03 ; 3
149f0: 05 c0 rjmp .+10 ; 0x149fc <I2C_WriteBLConfig+0x164>
}
// check BL configuration to send
if((BLConfig.Revision & 0x0B) != BLCONFIG_REVISION) return (BLCONFIG_ERR_SW_NOT_COMPATIBLE); // bad revison
149f2: 84 e0 ldi r24, 0x04 ; 4
149f4: 03 c0 rjmp .+6 ; 0x149fc <I2C_WriteBLConfig+0x164>
i = RAM_Checksum((uint8_t*)&BLConfig, sizeof(BLConfig_t) - 1);
if(i != BLConfig.crc) return(BLCONFIG_ERR_CHECKSUM); // bad checksum
149f6: 85 e0 ldi r24, 0x05 ; 5
149f8: 01 c0 rjmp .+2 ; 0x149fc <I2C_WriteBLConfig+0x164>
I2C_Start(TWI_STATE_MOTOR_TX); // start an i2c transmission
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
} while(BLConfig_WriteMask && !CheckDelay(timer)); // repeat until the BL config has been sent
Max_I2C_Packets = packets;
if(BLConfig_WriteMask) return(BLCONFIG_ERR_MOTOR_NOT_EXIST);
return(BLCONFIG_SUCCESS);
149fa: 80 e0 ldi r24, 0x00 ; 0
}
149fc: df 91 pop r29
149fe: cf 91 pop r28
14a00: 1f 91 pop r17
14a02: 0f 91 pop r16
14a04: ff 90 pop r15
14a06: ef 90 pop r14
14a08: 08 95 ret
 
00014a0a <I2C_ReadBLConfig>:
 
uint8_t I2C_ReadBLConfig(uint8_t motor)
{
14a0a: ff 92 push r15
14a0c: 0f 93 push r16
14a0e: 1f 93 push r17
14a10: cf 93 push r28
14a12: df 93 push r29
uint8_t i;
uint16_t timer;
 
if(MotorenEin || PC_MotortestActive) return(BLCONFIG_ERR_MOTOR_RUNNING); // not when motors are running!
14a14: 90 91 03 04 lds r25, 0x0403
14a18: 91 11 cpse r25, r1
14a1a: 7b c0 rjmp .+246 ; 0x14b12 <I2C_ReadBLConfig+0x108>
14a1c: 90 91 f5 04 lds r25, 0x04F5
14a20: 91 11 cpse r25, r1
14a22: 79 c0 rjmp .+242 ; 0x14b16 <I2C_ReadBLConfig+0x10c>
if(motor > MAX_MOTORS) return (BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
14a24: 8d 30 cpi r24, 0x0D ; 13
14a26: 08 f0 brcs .+2 ; 0x14a2a <I2C_ReadBLConfig+0x20>
14a28: 78 c0 rjmp .+240 ; 0x14b1a <I2C_ReadBLConfig+0x110>
if(motor == 0) return (BLCONFIG_ERR_READ_NOT_POSSIBLE);
14a2a: 88 23 and r24, r24
14a2c: 09 f4 brne .+2 ; 0x14a30 <I2C_ReadBLConfig+0x26>
14a2e: 77 c0 rjmp .+238 ; 0x14b1e <I2C_ReadBLConfig+0x114>
if(!(Motor[motor-1].State & MOTOR_STATE_PRESENT_MASK)) return(BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
14a30: 08 2f mov r16, r24
14a32: 10 e0 ldi r17, 0x00 ; 0
14a34: 01 50 subi r16, 0x01 ; 1
14a36: 11 09 sbc r17, r1
14a38: 8f e0 ldi r24, 0x0F ; 15
14a3a: 80 9f mul r24, r16
14a3c: f0 01 movw r30, r0
14a3e: 81 9f mul r24, r17
14a40: f0 0d add r31, r0
14a42: 11 24 eor r1, r1
14a44: e9 56 subi r30, 0x69 ; 105
14a46: f6 4f sbci r31, 0xF6 ; 246
14a48: 83 81 ldd r24, Z+3 ; 0x03
14a4a: 88 23 and r24, r24
14a4c: 0c f0 brlt .+2 ; 0x14a50 <I2C_ReadBLConfig+0x46>
14a4e: 69 c0 rjmp .+210 ; 0x14b22 <I2C_ReadBLConfig+0x118>
if(!(Motor[motor-1].Version & MOTOR_STATE_NEW_PROTOCOL_MASK)) return(BLCONFIG_ERR_HW_NOT_COMPATIBLE); // not a new BL!
14a50: 8f e0 ldi r24, 0x0F ; 15
14a52: 80 9f mul r24, r16
14a54: f0 01 movw r30, r0
14a56: 81 9f mul r24, r17
14a58: f0 0d add r31, r0
14a5a: 11 24 eor r1, r1
14a5c: e9 56 subi r30, 0x69 ; 105
14a5e: f6 4f sbci r31, 0xF6 ; 246
14a60: 80 81 ld r24, Z
14a62: 80 ff sbrs r24, 0
14a64: 60 c0 rjmp .+192 ; 0x14b26 <I2C_ReadBLConfig+0x11c>
 
timer = SetDelay(1000);
14a66: 88 ee ldi r24, 0xE8 ; 232
14a68: 93 e0 ldi r25, 0x03 ; 3
14a6a: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
14a6e: ec 01 movw r28, r24
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
14a70: 80 91 de 04 lds r24, 0x04DE
14a74: 80 fd sbrc r24, 0
14a76: 05 c0 rjmp .+10 ; 0x14a82 <I2C_ReadBLConfig+0x78>
14a78: ce 01 movw r24, r28
14a7a: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
14a7e: 88 23 and r24, r24
14a80: b9 f3 breq .-18 ; 0x14a70 <I2C_ReadBLConfig+0x66>
 
// prepare the bitmask
BLConfig_ReadMask = 0x0001<<(motor-1);
14a82: 81 e0 ldi r24, 0x01 ; 1
14a84: 90 e0 ldi r25, 0x00 ; 0
14a86: 9c 01 movw r18, r24
14a88: 02 c0 rjmp .+4 ; 0x14a8e <I2C_ReadBLConfig+0x84>
14a8a: 22 0f add r18, r18
14a8c: 33 1f adc r19, r19
14a8e: 0a 95 dec r16
14a90: e2 f7 brpl .-8 ; 0x14a8a <I2C_ReadBLConfig+0x80>
14a92: 30 93 db 04 sts 0x04DB, r19
14a96: 20 93 da 04 sts 0x04DA, r18
 
motor_write = 0;
14a9a: 10 92 e2 04 sts 0x04E2, r1
motor_read = 0;
14a9e: 10 92 e1 04 sts 0x04E1, r1
BLConfig.Revision = 0; // bad revision
14aa2: 10 92 8f 09 sts 0x098F, r1
BLConfig.crc = 0; // bad checksum
14aa6: 10 92 96 09 sts 0x0996, r1
// needs at least MAX_MOTORS loops of 2 ms (12*2ms = 24ms)
do
{
I2C_Start(TWI_STATE_MOTOR_TX); // start an i2c transmission
14aaa: 0c eb ldi r16, 0xBC ; 188
14aac: 10 e0 ldi r17, 0x00 ; 0
14aae: 0f 2e mov r0, r31
14ab0: f5 ea ldi r31, 0xA5 ; 165
14ab2: ff 2e mov r15, r31
14ab4: f0 2d mov r31, r0
14ab6: 10 92 e3 04 sts 0x04E3, r1
14aba: 80 91 de 04 lds r24, 0x04DE
14abe: 8e 7f andi r24, 0xFE ; 254
14ac0: 80 93 de 04 sts 0x04DE, r24
14ac4: f8 01 movw r30, r16
14ac6: f0 82 st Z, r15
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
14ac8: 80 91 de 04 lds r24, 0x04DE
14acc: 80 fd sbrc r24, 0
14ace: 05 c0 rjmp .+10 ; 0x14ada <I2C_ReadBLConfig+0xd0>
14ad0: ce 01 movw r24, r28
14ad2: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
14ad6: 88 23 and r24, r24
14ad8: b9 f3 breq .-18 ; 0x14ac8 <I2C_ReadBLConfig+0xbe>
} while(BLConfig_ReadMask && !CheckDelay(timer)); // repeat until the BL config has been received from all motors
14ada: 80 91 da 04 lds r24, 0x04DA
14ade: 90 91 db 04 lds r25, 0x04DB
14ae2: 89 2b or r24, r25
14ae4: 29 f0 breq .+10 ; 0x14af0 <I2C_ReadBLConfig+0xe6>
14ae6: ce 01 movw r24, r28
14ae8: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
14aec: 88 23 and r24, r24
14aee: 19 f3 breq .-58 ; 0x14ab6 <I2C_ReadBLConfig+0xac>
// validate result
if((BLConfig.Revision & 0x0B) != BLCONFIG_REVISION) return (BLCONFIG_ERR_SW_NOT_COMPATIBLE); // bad revison
14af0: 80 91 8f 09 lds r24, 0x098F
14af4: 8b 70 andi r24, 0x0B ; 11
14af6: 82 30 cpi r24, 0x02 ; 2
14af8: c1 f4 brne .+48 ; 0x14b2a <I2C_ReadBLConfig+0x120>
i = RAM_Checksum((uint8_t*)&BLConfig, sizeof(BLConfig_t) - 1);
14afa: 67 e0 ldi r22, 0x07 ; 7
14afc: 70 e0 ldi r23, 0x00 ; 0
14afe: 8f e8 ldi r24, 0x8F ; 143
14b00: 99 e0 ldi r25, 0x09 ; 9
14b02: 0e 94 3e 23 call 0x467c ; 0x467c <RAM_Checksum>
if(i != BLConfig.crc) return(BLCONFIG_ERR_CHECKSUM); // bad checksum
14b06: 90 91 96 09 lds r25, 0x0996
14b0a: 98 17 cp r25, r24
14b0c: 81 f0 breq .+32 ; 0x14b2e <I2C_ReadBLConfig+0x124>
14b0e: 85 e0 ldi r24, 0x05 ; 5
14b10: 0f c0 rjmp .+30 ; 0x14b30 <I2C_ReadBLConfig+0x126>
uint8_t I2C_ReadBLConfig(uint8_t motor)
{
uint8_t i;
uint16_t timer;
 
if(MotorenEin || PC_MotortestActive) return(BLCONFIG_ERR_MOTOR_RUNNING); // not when motors are running!
14b12: 81 e0 ldi r24, 0x01 ; 1
14b14: 0d c0 rjmp .+26 ; 0x14b30 <I2C_ReadBLConfig+0x126>
14b16: 81 e0 ldi r24, 0x01 ; 1
14b18: 0b c0 rjmp .+22 ; 0x14b30 <I2C_ReadBLConfig+0x126>
if(motor > MAX_MOTORS) return (BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
14b1a: 82 e0 ldi r24, 0x02 ; 2
14b1c: 09 c0 rjmp .+18 ; 0x14b30 <I2C_ReadBLConfig+0x126>
if(motor == 0) return (BLCONFIG_ERR_READ_NOT_POSSIBLE);
14b1e: 86 e0 ldi r24, 0x06 ; 6
14b20: 07 c0 rjmp .+14 ; 0x14b30 <I2C_ReadBLConfig+0x126>
if(!(Motor[motor-1].State & MOTOR_STATE_PRESENT_MASK)) return(BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
14b22: 82 e0 ldi r24, 0x02 ; 2
14b24: 05 c0 rjmp .+10 ; 0x14b30 <I2C_ReadBLConfig+0x126>
if(!(Motor[motor-1].Version & MOTOR_STATE_NEW_PROTOCOL_MASK)) return(BLCONFIG_ERR_HW_NOT_COMPATIBLE); // not a new BL!
14b26: 83 e0 ldi r24, 0x03 ; 3
14b28: 03 c0 rjmp .+6 ; 0x14b30 <I2C_ReadBLConfig+0x126>
{
I2C_Start(TWI_STATE_MOTOR_TX); // start an i2c transmission
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
} while(BLConfig_ReadMask && !CheckDelay(timer)); // repeat until the BL config has been received from all motors
// validate result
if((BLConfig.Revision & 0x0B) != BLCONFIG_REVISION) return (BLCONFIG_ERR_SW_NOT_COMPATIBLE); // bad revison
14b2a: 84 e0 ldi r24, 0x04 ; 4
14b2c: 01 c0 rjmp .+2 ; 0x14b30 <I2C_ReadBLConfig+0x126>
i = RAM_Checksum((uint8_t*)&BLConfig, sizeof(BLConfig_t) - 1);
if(i != BLConfig.crc) return(BLCONFIG_ERR_CHECKSUM); // bad checksum
return(BLCONFIG_SUCCESS);
14b2e: 80 e0 ldi r24, 0x00 ; 0
}
14b30: df 91 pop r29
14b32: cf 91 pop r28
14b34: 1f 91 pop r17
14b36: 0f 91 pop r16
14b38: ff 90 pop r15
14b3a: 08 95 ret
 
00014b3c <__vector_22>:
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++ Sende-Part der Datenübertragung
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ISR(USART0_TX_vect)
{
14b3c: 1f 92 push r1
14b3e: 0f 92 push r0
14b40: 0f b6 in r0, 0x3f ; 63
14b42: 0f 92 push r0
14b44: 11 24 eor r1, r1
14b46: 0b b6 in r0, 0x3b ; 59
14b48: 0f 92 push r0
14b4a: 2f 93 push r18
14b4c: 8f 93 push r24
14b4e: 9f 93 push r25
14b50: ef 93 push r30
14b52: ff 93 push r31
static unsigned int ptr = 0;
unsigned char tmp_tx;
 
if(!UebertragungAbgeschlossen)
14b54: 80 91 b7 02 lds r24, 0x02B7
14b58: 81 11 cpse r24, r1
14b5a: 1c c0 rjmp .+56 ; 0x14b94 <__vector_22+0x58>
{
ptr++; // die [0] wurde schon gesendet
14b5c: 80 91 ea 04 lds r24, 0x04EA
14b60: 90 91 eb 04 lds r25, 0x04EB
14b64: 01 96 adiw r24, 0x01 ; 1
14b66: 90 93 eb 04 sts 0x04EB, r25
14b6a: 80 93 ea 04 sts 0x04EA, r24
tmp_tx = TxdBuffer[ptr];
14b6e: fc 01 movw r30, r24
14b70: e6 59 subi r30, 0x96 ; 150
14b72: f4 4f sbci r31, 0xF4 ; 244
14b74: 20 81 ld r18, Z
if((tmp_tx == '\r') || (ptr == MAX_SENDE_BUFF))
14b76: 2d 30 cpi r18, 0x0D ; 13
14b78: 19 f0 breq .+6 ; 0x14b80 <__vector_22+0x44>
14b7a: 8c 3d cpi r24, 0xDC ; 220
14b7c: 91 05 cpc r25, r1
14b7e: 39 f4 brne .+14 ; 0x14b8e <__vector_22+0x52>
{
ptr = 0;
14b80: 10 92 eb 04 sts 0x04EB, r1
14b84: 10 92 ea 04 sts 0x04EA, r1
UebertragungAbgeschlossen = 1;
14b88: 81 e0 ldi r24, 0x01 ; 1
14b8a: 80 93 b7 02 sts 0x02B7, r24
}
UDR0 = tmp_tx;
14b8e: 20 93 c6 00 sts 0x00C6, r18
14b92: 04 c0 rjmp .+8 ; 0x14b9c <__vector_22+0x60>
}
else ptr = 0;
14b94: 10 92 eb 04 sts 0x04EB, r1
14b98: 10 92 ea 04 sts 0x04EA, r1
}
14b9c: ff 91 pop r31
14b9e: ef 91 pop r30
14ba0: 9f 91 pop r25
14ba2: 8f 91 pop r24
14ba4: 2f 91 pop r18
14ba6: 0f 90 pop r0
14ba8: 0b be out 0x3b, r0 ; 59
14baa: 0f 90 pop r0
14bac: 0f be out 0x3f, r0 ; 63
14bae: 0f 90 pop r0
14bb0: 1f 90 pop r1
14bb2: 18 95 reti
 
00014bb4 <__vector_20>:
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++ Empfangs-Part der Datenübertragung, incl. CRC-Auswertung
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ISR(USART0_RX_vect)
{
14bb4: 1f 92 push r1
14bb6: 0f 92 push r0
14bb8: 0f b6 in r0, 0x3f ; 63
14bba: 0f 92 push r0
14bbc: 11 24 eor r1, r1
14bbe: 0b b6 in r0, 0x3b ; 59
14bc0: 0f 92 push r0
14bc2: 1f 93 push r17
14bc4: 2f 93 push r18
14bc6: 3f 93 push r19
14bc8: 4f 93 push r20
14bca: 5f 93 push r21
14bcc: 6f 93 push r22
14bce: 7f 93 push r23
14bd0: 8f 93 push r24
14bd2: 9f 93 push r25
14bd4: af 93 push r26
14bd6: bf 93 push r27
14bd8: cf 93 push r28
14bda: df 93 push r29
14bdc: ef 93 push r30
14bde: ff 93 push r31
static unsigned int crc;
static unsigned char crc1,crc2,buf_ptr;
static unsigned char UartState = 0;
unsigned char CrcOkay = 0;
 
if (ReceiverUpdateModeActive == 1) { UDR1 = UDR0; return; } // 1 = Update
14be0: 80 91 ec 04 lds r24, 0x04EC
14be4: 81 30 cpi r24, 0x01 ; 1
14be6: 29 f4 brne .+10 ; 0x14bf2 <__vector_20+0x3e>
14be8: 80 91 c6 00 lds r24, 0x00C6
14bec: 80 93 ce 00 sts 0x00CE, r24
14bf0: de c0 rjmp .+444 ; 0x14dae <__vector_20+0x1fa>
if (ReceiverUpdateModeActive == 2) { RxdBuffer[0] = UDR0; return; } // 2 = JetiBox-Simulation
14bf2: 80 91 ec 04 lds r24, 0x04EC
14bf6: 82 30 cpi r24, 0x02 ; 2
14bf8: 29 f4 brne .+10 ; 0x14c04 <__vector_20+0x50>
14bfa: 80 91 c6 00 lds r24, 0x00C6
14bfe: 80 93 8c 0a sts 0x0A8C, r24
14c02: d5 c0 rjmp .+426 ; 0x14dae <__vector_20+0x1fa>
 
SioTmp = UDR0;
14c04: 80 91 c6 00 lds r24, 0x00C6
14c08: 80 93 fc 04 sts 0x04FC, r24
 
if(buf_ptr >= MAX_SENDE_BUFF) UartState = 0;
14c0c: 10 91 e9 04 lds r17, 0x04E9
14c10: 1c 3d cpi r17, 0xDC ; 220
14c12: 10 f0 brcs .+4 ; 0x14c18 <__vector_20+0x64>
14c14: 10 92 e8 04 sts 0x04E8, r1
if(SioTmp == '\r' && UartState == 2)
14c18: 80 91 fc 04 lds r24, 0x04FC
14c1c: 8d 30 cpi r24, 0x0D ; 13
14c1e: 09 f0 breq .+2 ; 0x14c22 <__vector_20+0x6e>
14c20: 65 c0 rjmp .+202 ; 0x14cec <__vector_20+0x138>
14c22: 80 91 e8 04 lds r24, 0x04E8
14c26: 82 30 cpi r24, 0x02 ; 2
14c28: 09 f0 breq .+2 ; 0x14c2c <__vector_20+0x78>
14c2a: 60 c0 rjmp .+192 ; 0x14cec <__vector_20+0x138>
{
UartState = 0;
14c2c: 10 92 e8 04 sts 0x04E8, r1
crc -= RxdBuffer[buf_ptr-2];
14c30: 21 2f mov r18, r17
14c32: 30 e0 ldi r19, 0x00 ; 0
14c34: d9 01 movw r26, r18
14c36: a6 57 subi r26, 0x76 ; 118
14c38: b5 4f sbci r27, 0xF5 ; 245
14c3a: 7c 91 ld r23, X
crc -= RxdBuffer[buf_ptr-1];
14c3c: a9 01 movw r20, r18
14c3e: 41 50 subi r20, 0x01 ; 1
14c40: 51 09 sbc r21, r1
14c42: ea 01 movw r28, r20
14c44: c4 57 subi r28, 0x74 ; 116
14c46: d5 4f sbci r29, 0xF5 ; 245
14c48: 68 81 ld r22, Y
 
if(buf_ptr >= MAX_SENDE_BUFF) UartState = 0;
if(SioTmp == '\r' && UartState == 2)
{
UartState = 0;
crc -= RxdBuffer[buf_ptr-2];
14c4a: 80 91 e6 04 lds r24, 0x04E6
14c4e: 90 91 e7 04 lds r25, 0x04E7
14c52: 87 1b sub r24, r23
14c54: 91 09 sbc r25, r1
crc -= RxdBuffer[buf_ptr-1];
14c56: 86 1b sub r24, r22
14c58: 91 09 sbc r25, r1
crc %= 4096;
14c5a: 9f 70 andi r25, 0x0F ; 15
14c5c: 90 93 e7 04 sts 0x04E7, r25
14c60: 80 93 e6 04 sts 0x04E6, r24
crc1 = '=' + crc / 64;
14c64: bc 01 movw r22, r24
14c66: 00 24 eor r0, r0
14c68: 66 0f add r22, r22
14c6a: 77 1f adc r23, r23
14c6c: 00 1c adc r0, r0
14c6e: 66 0f add r22, r22
14c70: 77 1f adc r23, r23
14c72: 00 1c adc r0, r0
14c74: 67 2f mov r22, r23
14c76: 70 2d mov r23, r0
14c78: 63 5c subi r22, 0xC3 ; 195
14c7a: 60 93 e5 04 sts 0x04E5, r22
crc2 = '=' + crc % 64;
14c7e: 8f 73 andi r24, 0x3F ; 63
14c80: 83 5c subi r24, 0xC3 ; 195
14c82: 80 93 e4 04 sts 0x04E4, r24
CrcOkay = 0;
if((crc1 == RxdBuffer[buf_ptr-2]) && (crc2 == RxdBuffer[buf_ptr-1])) CrcOkay = 1; else { CrcOkay = 0; CntCrcError++;};
14c86: 9c 91 ld r25, X
14c88: 69 13 cpse r22, r25
14c8a: 04 c0 rjmp .+8 ; 0x14c94 <__vector_20+0xe0>
14c8c: 98 81 ld r25, Y
14c8e: 89 17 cp r24, r25
14c90: 09 f4 brne .+2 ; 0x14c94 <__vector_20+0xe0>
14c92: 88 c0 rjmp .+272 ; 0x14da4 <__vector_20+0x1f0>
14c94: 80 91 fa 04 lds r24, 0x04FA
14c98: 8f 5f subi r24, 0xFF ; 255
14c9a: 80 93 fa 04 sts 0x04FA, r24
if(!NeuerDatensatzEmpfangen && CrcOkay) // Datensatz schon verarbeitet
14c9e: 80 91 fb 04 lds r24, 0x04FB
14ca2: 85 c0 rjmp .+266 ; 0x14dae <__vector_20+0x1fa>
{
NeuerDatensatzEmpfangen = 1;
14ca4: 81 e0 ldi r24, 0x01 ; 1
14ca6: 80 93 fb 04 sts 0x04FB, r24
AnzahlEmpfangsBytes = buf_ptr + 1;
14caa: 1f 5f subi r17, 0xFF ; 255
14cac: 10 93 f9 04 sts 0x04F9, r17
RxdBuffer[buf_ptr] = '\r';
14cb0: f9 01 movw r30, r18
14cb2: e4 57 subi r30, 0x74 ; 116
14cb4: f5 4f sbci r31, 0xF5 ; 245
14cb6: 8d e0 ldi r24, 0x0D ; 13
14cb8: 80 83 st Z, r24
if(RxdBuffer[2] == 'R' && !MotorenEin)
14cba: 80 91 8e 0a lds r24, 0x0A8E
14cbe: 82 35 cpi r24, 0x52 ; 82
14cc0: 09 f0 breq .+2 ; 0x14cc4 <__vector_20+0x110>
14cc2: 75 c0 rjmp .+234 ; 0x14dae <__vector_20+0x1fa>
14cc4: 80 91 03 04 lds r24, 0x0403
14cc8: 81 11 cpse r24, r1
14cca: 71 c0 rjmp .+226 ; 0x14dae <__vector_20+0x1fa>
{
LcdClear();
14ccc: 0e 94 1d 87 call 0x10e3a ; 0x10e3a <LcdClear>
wdt_enable(WDTO_250MS); // Reset-Commando
14cd0: 2c e0 ldi r18, 0x0C ; 12
14cd2: 88 e1 ldi r24, 0x18 ; 24
14cd4: 90 e0 ldi r25, 0x00 ; 0
14cd6: 0f b6 in r0, 0x3f ; 63
14cd8: f8 94 cli
14cda: a8 95 wdr
14cdc: 80 93 60 00 sts 0x0060, r24
14ce0: 0f be out 0x3f, r0 ; 63
14ce2: 20 93 60 00 sts 0x0060, r18
ServoActive = 0;
14ce6: 10 92 cb 04 sts 0x04CB, r1
14cea: 61 c0 rjmp .+194 ; 0x14dae <__vector_20+0x1fa>
}
}
}
else
switch(UartState)
14cec: 80 91 e8 04 lds r24, 0x04E8
14cf0: 81 30 cpi r24, 0x01 ; 1
14cf2: f1 f0 breq .+60 ; 0x14d30 <__vector_20+0x17c>
14cf4: 18 f0 brcs .+6 ; 0x14cfc <__vector_20+0x148>
14cf6: 82 30 cpi r24, 0x02 ; 2
14cf8: b1 f1 breq .+108 ; 0x14d66 <__vector_20+0x1b2>
14cfa: 51 c0 rjmp .+162 ; 0x14d9e <__vector_20+0x1ea>
{
case 0:
if(SioTmp == '#' && !NeuerDatensatzEmpfangen) UartState = 1; // Startzeichen und Daten schon verarbeitet
14cfc: 80 91 fc 04 lds r24, 0x04FC
14d00: 83 32 cpi r24, 0x23 ; 35
14d02: 39 f4 brne .+14 ; 0x14d12 <__vector_20+0x15e>
14d04: 80 91 fb 04 lds r24, 0x04FB
14d08: 81 11 cpse r24, r1
14d0a: 03 c0 rjmp .+6 ; 0x14d12 <__vector_20+0x15e>
14d0c: 81 e0 ldi r24, 0x01 ; 1
14d0e: 80 93 e8 04 sts 0x04E8, r24
buf_ptr = 0;
RxdBuffer[buf_ptr++] = SioTmp;
14d12: 81 e0 ldi r24, 0x01 ; 1
14d14: 80 93 e9 04 sts 0x04E9, r24
14d18: 80 91 fc 04 lds r24, 0x04FC
14d1c: 80 93 8c 0a sts 0x0A8C, r24
crc = SioTmp;
14d20: 80 91 fc 04 lds r24, 0x04FC
14d24: 90 e0 ldi r25, 0x00 ; 0
14d26: 90 93 e7 04 sts 0x04E7, r25
14d2a: 80 93 e6 04 sts 0x04E6, r24
break;
14d2e: 3f c0 rjmp .+126 ; 0x14dae <__vector_20+0x1fa>
case 1: // Adresse auswerten
UartState++;
14d30: 82 e0 ldi r24, 0x02 ; 2
14d32: 80 93 e8 04 sts 0x04E8, r24
RxdBuffer[buf_ptr++] = SioTmp;
14d36: 81 e0 ldi r24, 0x01 ; 1
14d38: 81 0f add r24, r17
14d3a: 80 93 e9 04 sts 0x04E9, r24
14d3e: e1 2f mov r30, r17
14d40: f0 e0 ldi r31, 0x00 ; 0
14d42: 80 91 fc 04 lds r24, 0x04FC
14d46: e4 57 subi r30, 0x74 ; 116
14d48: f5 4f sbci r31, 0xF5 ; 245
14d4a: 80 83 st Z, r24
crc += SioTmp;
14d4c: 20 91 fc 04 lds r18, 0x04FC
14d50: 80 91 e6 04 lds r24, 0x04E6
14d54: 90 91 e7 04 lds r25, 0x04E7
14d58: 82 0f add r24, r18
14d5a: 91 1d adc r25, r1
14d5c: 90 93 e7 04 sts 0x04E7, r25
14d60: 80 93 e6 04 sts 0x04E6, r24
break;
14d64: 24 c0 rjmp .+72 ; 0x14dae <__vector_20+0x1fa>
case 2: // Eingangsdaten sammeln
RxdBuffer[buf_ptr] = SioTmp;
14d66: e1 2f mov r30, r17
14d68: f0 e0 ldi r31, 0x00 ; 0
14d6a: 80 91 fc 04 lds r24, 0x04FC
14d6e: e4 57 subi r30, 0x74 ; 116
14d70: f5 4f sbci r31, 0xF5 ; 245
14d72: 80 83 st Z, r24
if(buf_ptr < MAX_EMPFANGS_BUFF) buf_ptr++;
14d74: 1c 3d cpi r17, 0xDC ; 220
14d76: 20 f4 brcc .+8 ; 0x14d80 <__vector_20+0x1cc>
14d78: 1f 5f subi r17, 0xFF ; 255
14d7a: 10 93 e9 04 sts 0x04E9, r17
14d7e: 02 c0 rjmp .+4 ; 0x14d84 <__vector_20+0x1d0>
else UartState = 0;
14d80: 10 92 e8 04 sts 0x04E8, r1
//if(DebugOut.Analog[] < buf_ptr) DebugOut.Analog[] = buf_ptr;
crc += SioTmp;
14d84: 20 91 fc 04 lds r18, 0x04FC
14d88: 80 91 e6 04 lds r24, 0x04E6
14d8c: 90 91 e7 04 lds r25, 0x04E7
14d90: 82 0f add r24, r18
14d92: 91 1d adc r25, r1
14d94: 90 93 e7 04 sts 0x04E7, r25
14d98: 80 93 e6 04 sts 0x04E6, r24
break;
14d9c: 08 c0 rjmp .+16 ; 0x14dae <__vector_20+0x1fa>
default:
UartState = 0;
14d9e: 10 92 e8 04 sts 0x04E8, r1
break;
14da2: 05 c0 rjmp .+10 ; 0x14dae <__vector_20+0x1fa>
crc %= 4096;
crc1 = '=' + crc / 64;
crc2 = '=' + crc % 64;
CrcOkay = 0;
if((crc1 == RxdBuffer[buf_ptr-2]) && (crc2 == RxdBuffer[buf_ptr-1])) CrcOkay = 1; else { CrcOkay = 0; CntCrcError++;};
if(!NeuerDatensatzEmpfangen && CrcOkay) // Datensatz schon verarbeitet
14da4: 80 91 fb 04 lds r24, 0x04FB
14da8: 88 23 and r24, r24
14daa: 09 f4 brne .+2 ; 0x14dae <__vector_20+0x1fa>
14dac: 7b cf rjmp .-266 ; 0x14ca4 <__vector_20+0xf0>
break;
default:
UartState = 0;
break;
}
}
14dae: ff 91 pop r31
14db0: ef 91 pop r30
14db2: df 91 pop r29
14db4: cf 91 pop r28
14db6: bf 91 pop r27
14db8: af 91 pop r26
14dba: 9f 91 pop r25
14dbc: 8f 91 pop r24
14dbe: 7f 91 pop r23
14dc0: 6f 91 pop r22
14dc2: 5f 91 pop r21
14dc4: 4f 91 pop r20
14dc6: 3f 91 pop r19
14dc8: 2f 91 pop r18
14dca: 1f 91 pop r17
14dcc: 0f 90 pop r0
14dce: 0b be out 0x3b, r0 ; 59
14dd0: 0f 90 pop r0
14dd2: 0f be out 0x3f, r0 ; 63
14dd4: 0f 90 pop r0
14dd6: 1f 90 pop r1
14dd8: 18 95 reti
 
00014dda <AddCRC>:
 
// --------------------------------------------------------------------------
void AddCRC(unsigned int wieviele)
{
unsigned int tmpCRC = 0,i;
for(i = 0; i < wieviele;i++)
14dda: 00 97 sbiw r24, 0x00 ; 0
14ddc: 81 f0 breq .+32 ; 0x14dfe <AddCRC+0x24>
14dde: 20 e0 ldi r18, 0x00 ; 0
14de0: 30 e0 ldi r19, 0x00 ; 0
 
 
// --------------------------------------------------------------------------
void AddCRC(unsigned int wieviele)
{
unsigned int tmpCRC = 0,i;
14de2: 40 e0 ldi r20, 0x00 ; 0
14de4: 50 e0 ldi r21, 0x00 ; 0
for(i = 0; i < wieviele;i++)
{
tmpCRC += TxdBuffer[i];
14de6: f9 01 movw r30, r18
14de8: e6 59 subi r30, 0x96 ; 150
14dea: f4 4f sbci r31, 0xF4 ; 244
14dec: 60 81 ld r22, Z
14dee: 46 0f add r20, r22
14df0: 51 1d adc r21, r1
 
// --------------------------------------------------------------------------
void AddCRC(unsigned int wieviele)
{
unsigned int tmpCRC = 0,i;
for(i = 0; i < wieviele;i++)
14df2: 2f 5f subi r18, 0xFF ; 255
14df4: 3f 4f sbci r19, 0xFF ; 255
14df6: 28 17 cp r18, r24
14df8: 39 07 cpc r19, r25
14dfa: a9 f7 brne .-22 ; 0x14de6 <AddCRC+0xc>
14dfc: 02 c0 rjmp .+4 ; 0x14e02 <AddCRC+0x28>
 
 
// --------------------------------------------------------------------------
void AddCRC(unsigned int wieviele)
{
unsigned int tmpCRC = 0,i;
14dfe: 40 e0 ldi r20, 0x00 ; 0
14e00: 50 e0 ldi r21, 0x00 ; 0
for(i = 0; i < wieviele;i++)
{
tmpCRC += TxdBuffer[i];
}
// if(i > MAX_SENDE_BUFF - 3) tmpCRC += 11;
tmpCRC %= 4096;
14e02: 5f 70 andi r21, 0x0F ; 15
TxdBuffer[i++] = '=' + tmpCRC / 64;
14e04: 9a 01 movw r18, r20
14e06: 00 24 eor r0, r0
14e08: 22 0f add r18, r18
14e0a: 33 1f adc r19, r19
14e0c: 00 1c adc r0, r0
14e0e: 22 0f add r18, r18
14e10: 33 1f adc r19, r19
14e12: 00 1c adc r0, r0
14e14: 23 2f mov r18, r19
14e16: 30 2d mov r19, r0
14e18: 23 5c subi r18, 0xC3 ; 195
14e1a: fc 01 movw r30, r24
14e1c: e6 59 subi r30, 0x96 ; 150
14e1e: f4 4f sbci r31, 0xF4 ; 244
14e20: 20 83 st Z, r18
TxdBuffer[i++] = '=' + tmpCRC % 64;
14e22: 4f 73 andi r20, 0x3F ; 63
14e24: 43 5c subi r20, 0xC3 ; 195
14e26: fc 01 movw r30, r24
14e28: e5 59 subi r30, 0x95 ; 149
14e2a: f4 4f sbci r31, 0xF4 ; 244
14e2c: 40 83 st Z, r20
TxdBuffer[i++] = '\r';
14e2e: fc 01 movw r30, r24
14e30: e4 59 subi r30, 0x94 ; 148
14e32: f4 4f sbci r31, 0xF4 ; 244
14e34: 2d e0 ldi r18, 0x0D ; 13
14e36: 20 83 st Z, r18
UebertragungAbgeschlossen = 0;
14e38: 10 92 b7 02 sts 0x02B7, r1
UDR0 = TxdBuffer[0];
14e3c: 80 91 6a 0b lds r24, 0x0B6A
14e40: 80 93 c6 00 sts 0x00C6, r24
14e44: 08 95 ret
 
00014e46 <SendOutData>:
}
 
 
// --------------------------------------------------------------------------
void SendOutData(unsigned char cmd,unsigned char address, unsigned char BufferAnzahl, ...) //unsigned char *snd, unsigned char len)
{
14e46: df 92 push r13
14e48: ef 92 push r14
14e4a: ff 92 push r15
14e4c: 0f 93 push r16
14e4e: 1f 93 push r17
14e50: cf 93 push r28
14e52: df 93 push r29
14e54: cd b7 in r28, 0x3d ; 61
14e56: de b7 in r29, 0x3e ; 62
14e58: 0c 85 ldd r16, Y+12 ; 0x0c
unsigned char ptr = 0;
 
unsigned char *snd = 0;
int len = 0;
 
TxdBuffer[pt++] = '#'; // Startzeichen
14e5a: 83 e2 ldi r24, 0x23 ; 35
14e5c: 80 93 6a 0b sts 0x0B6A, r24
TxdBuffer[pt++] = 'a' + address; // Adresse (a=0; b=1,...)
14e60: 8b 85 ldd r24, Y+11 ; 0x0b
14e62: 8f 59 subi r24, 0x9F ; 159
14e64: 80 93 6b 0b sts 0x0B6B, r24
TxdBuffer[pt++] = cmd; // Commando
14e68: 8a 85 ldd r24, Y+10 ; 0x0a
14e6a: 80 93 6c 0b sts 0x0B6C, r24
 
va_start(ap, BufferAnzahl);
if(BufferAnzahl)
14e6e: 00 23 and r16, r16
14e70: 09 f4 brne .+2 ; 0x14e74 <SendOutData+0x2e>
14e72: a1 c0 rjmp .+322 ; 0x14fb6 <SendOutData+0x170>
{
snd = va_arg(ap, unsigned char*);
14e74: 6d 85 ldd r22, Y+13 ; 0x0d
14e76: 7e 85 ldd r23, Y+14 ; 0x0e
len = va_arg(ap, int);
14e78: ad e0 ldi r26, 0x0D ; 13
14e7a: b0 e0 ldi r27, 0x00 ; 0
14e7c: ac 0f add r26, r28
14e7e: bd 1f adc r27, r29
14e80: 14 96 adiw r26, 0x04 ; 4
14e82: 2f 85 ldd r18, Y+15 ; 0x0f
14e84: 38 89 ldd r19, Y+16 ; 0x10
ptr = 0;
BufferAnzahl--;
14e86: 01 50 subi r16, 0x01 ; 1
}
while(len)
14e88: 21 15 cp r18, r1
14e8a: 31 05 cpc r19, r1
14e8c: 09 f4 brne .+2 ; 0x14e90 <SendOutData+0x4a>
14e8e: 96 c0 rjmp .+300 ; 0x14fbc <SendOutData+0x176>
14e90: d1 2c mov r13, r1
14e92: 83 e0 ldi r24, 0x03 ; 3
14e94: 90 e0 ldi r25, 0x00 ; 0
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
}
else c = 0;
14e96: 10 e0 ldi r17, 0x00 ; 0
ptr = 0;
BufferAnzahl--;
}
while(len)
{
if(len)
14e98: 21 15 cp r18, r1
14e9a: 31 05 cpc r19, r1
14e9c: 09 f4 brne .+2 ; 0x14ea0 <SendOutData+0x5a>
14e9e: 92 c0 rjmp .+292 ; 0x14fc4 <SendOutData+0x17e>
{
a = snd[ptr++];
14ea0: ff 24 eor r15, r15
14ea2: f3 94 inc r15
14ea4: fd 0c add r15, r13
14ea6: fb 01 movw r30, r22
14ea8: ed 0d add r30, r13
14eaa: f1 1d adc r31, r1
14eac: 40 81 ld r20, Z
len--;
14eae: 21 50 subi r18, 0x01 ; 1
14eb0: 31 09 sbc r19, r1
if((!len) && BufferAnzahl)
14eb2: 21 15 cp r18, r1
14eb4: 31 05 cpc r19, r1
14eb6: 99 f4 brne .+38 ; 0x14ede <SendOutData+0x98>
14eb8: 00 23 and r16, r16
14eba: 09 f4 brne .+2 ; 0x14ebe <SendOutData+0x78>
14ebc: 85 c0 rjmp .+266 ; 0x14fc8 <SendOutData+0x182>
{
snd = va_arg(ap, unsigned char*);
14ebe: 6d 91 ld r22, X+
14ec0: 7c 91 ld r23, X
14ec2: 11 97 sbiw r26, 0x01 ; 1
len = va_arg(ap, int);
14ec4: fd 01 movw r30, r26
14ec6: 34 96 adiw r30, 0x04 ; 4
14ec8: 12 96 adiw r26, 0x02 ; 2
14eca: 2d 91 ld r18, X+
14ecc: 3c 91 ld r19, X
14ece: 13 97 sbiw r26, 0x03 ; 3
ptr = 0;
BufferAnzahl--;
14ed0: 01 50 subi r16, 0x01 ; 1
}
}
else a = 0;
if(len)
14ed2: 21 15 cp r18, r1
14ed4: 31 05 cpc r19, r1
14ed6: 09 f4 brne .+2 ; 0x14eda <SendOutData+0x94>
14ed8: 7a c0 rjmp .+244 ; 0x14fce <SendOutData+0x188>
a = snd[ptr++];
len--;
if((!len) && BufferAnzahl)
{
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
14eda: df 01 movw r26, r30
ptr = 0;
14edc: f1 2e mov r15, r17
}
}
else a = 0;
if(len)
{
b = snd[ptr++];
14ede: 51 e0 ldi r21, 0x01 ; 1
14ee0: 5f 0d add r21, r15
14ee2: fb 01 movw r30, r22
14ee4: ef 0d add r30, r15
14ee6: f1 1d adc r31, r1
14ee8: e0 80 ld r14, Z
len--;
14eea: 21 50 subi r18, 0x01 ; 1
14eec: 31 09 sbc r19, r1
if((!len) && BufferAnzahl)
14eee: 21 15 cp r18, r1
14ef0: 31 05 cpc r19, r1
14ef2: 91 f4 brne .+36 ; 0x14f18 <SendOutData+0xd2>
14ef4: 00 23 and r16, r16
14ef6: 09 f4 brne .+2 ; 0x14efa <SendOutData+0xb4>
14ef8: 6e c0 rjmp .+220 ; 0x14fd6 <SendOutData+0x190>
{
snd = va_arg(ap, unsigned char*);
14efa: 6d 91 ld r22, X+
14efc: 7c 91 ld r23, X
14efe: 11 97 sbiw r26, 0x01 ; 1
len = va_arg(ap, int);
14f00: fd 01 movw r30, r26
14f02: 34 96 adiw r30, 0x04 ; 4
14f04: 12 96 adiw r26, 0x02 ; 2
14f06: 2d 91 ld r18, X+
14f08: 3c 91 ld r19, X
14f0a: 13 97 sbiw r26, 0x03 ; 3
ptr = 0;
BufferAnzahl--;
14f0c: 01 50 subi r16, 0x01 ; 1
}
}
else b = 0;
if(len)
14f0e: 21 15 cp r18, r1
14f10: 31 05 cpc r19, r1
14f12: d9 f0 breq .+54 ; 0x14f4a <SendOutData+0x104>
b = snd[ptr++];
len--;
if((!len) && BufferAnzahl)
{
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
14f14: df 01 movw r26, r30
ptr = 0;
14f16: 51 2f mov r21, r17
}
}
else b = 0;
if(len)
{
c = snd[ptr++];
14f18: dd 24 eor r13, r13
14f1a: d3 94 inc r13
14f1c: d5 0e add r13, r21
14f1e: fb 01 movw r30, r22
14f20: e5 0f add r30, r21
14f22: f1 1d adc r31, r1
14f24: f0 80 ld r15, Z
len--;
14f26: 21 50 subi r18, 0x01 ; 1
14f28: 31 09 sbc r19, r1
if((!len) && BufferAnzahl)
14f2a: 21 15 cp r18, r1
14f2c: 31 05 cpc r19, r1
14f2e: 81 f4 brne .+32 ; 0x14f50 <SendOutData+0x10a>
14f30: 00 23 and r16, r16
14f32: 71 f0 breq .+28 ; 0x14f50 <SendOutData+0x10a>
{
snd = va_arg(ap, unsigned char*);
14f34: 6d 91 ld r22, X+
14f36: 7c 91 ld r23, X
14f38: 11 97 sbiw r26, 0x01 ; 1
len = va_arg(ap, int);
14f3a: 12 96 adiw r26, 0x02 ; 2
14f3c: 2d 91 ld r18, X+
14f3e: 3c 91 ld r19, X
14f40: 13 97 sbiw r26, 0x03 ; 3
ptr = 0;
BufferAnzahl--;
14f42: 01 50 subi r16, 0x01 ; 1
c = snd[ptr++];
len--;
if((!len) && BufferAnzahl)
{
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
14f44: 14 96 adiw r26, 0x04 ; 4
ptr = 0;
14f46: d1 2e mov r13, r17
14f48: 03 c0 rjmp .+6 ; 0x14f50 <SendOutData+0x10a>
b = snd[ptr++];
len--;
if((!len) && BufferAnzahl)
{
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
14f4a: df 01 movw r26, r30
ptr = 0;
14f4c: d1 2e mov r13, r17
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
}
else c = 0;
14f4e: f1 2e mov r15, r17
TxdBuffer[pt++] = '=' + (a >> 2);
14f50: 54 2f mov r21, r20
14f52: 56 95 lsr r21
14f54: 56 95 lsr r21
14f56: 53 5c subi r21, 0xC3 ; 195
14f58: fc 01 movw r30, r24
14f5a: e6 59 subi r30, 0x96 ; 150
14f5c: f4 4f sbci r31, 0xF4 ; 244
14f5e: 50 83 st Z, r21
TxdBuffer[pt++] = '=' + (((a & 0x03) << 4) | ((b & 0xf0) >> 4));
14f60: 43 70 andi r20, 0x03 ; 3
14f62: e0 e1 ldi r30, 0x10 ; 16
14f64: 4e 9f mul r20, r30
14f66: a0 01 movw r20, r0
14f68: 11 24 eor r1, r1
14f6a: 5e 2d mov r21, r14
14f6c: 52 95 swap r21
14f6e: 5f 70 andi r21, 0x0F ; 15
14f70: 45 2b or r20, r21
14f72: 43 5c subi r20, 0xC3 ; 195
14f74: fc 01 movw r30, r24
14f76: e5 59 subi r30, 0x95 ; 149
14f78: f4 4f sbci r31, 0xF4 ; 244
14f7a: 40 83 st Z, r20
TxdBuffer[pt++] = '=' + (((b & 0x0f) << 2) | ((c & 0xc0) >> 6));
14f7c: 4e 2d mov r20, r14
14f7e: 4f 70 andi r20, 0x0F ; 15
14f80: 44 0f add r20, r20
14f82: 44 0f add r20, r20
14f84: 5f 2d mov r21, r15
14f86: 52 95 swap r21
14f88: 56 95 lsr r21
14f8a: 56 95 lsr r21
14f8c: 53 70 andi r21, 0x03 ; 3
14f8e: 45 2b or r20, r21
14f90: 43 5c subi r20, 0xC3 ; 195
14f92: fc 01 movw r30, r24
14f94: e4 59 subi r30, 0x94 ; 148
14f96: f4 4f sbci r31, 0xF4 ; 244
14f98: 40 83 st Z, r20
TxdBuffer[pt++] = '=' + ( c & 0x3f);
14f9a: 4f 2d mov r20, r15
14f9c: 4f 73 andi r20, 0x3F ; 63
14f9e: 43 5c subi r20, 0xC3 ; 195
14fa0: fc 01 movw r30, r24
14fa2: 33 96 adiw r30, 0x03 ; 3
14fa4: e6 59 subi r30, 0x96 ; 150
14fa6: f4 4f sbci r31, 0xF4 ; 244
14fa8: 04 96 adiw r24, 0x04 ; 4
14faa: 40 83 st Z, r20
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
while(len)
14fac: 21 15 cp r18, r1
14fae: 31 05 cpc r19, r1
14fb0: 09 f0 breq .+2 ; 0x14fb4 <SendOutData+0x16e>
14fb2: 72 cf rjmp .-284 ; 0x14e98 <SendOutData+0x52>
14fb4: 05 c0 rjmp .+10 ; 0x14fc0 <SendOutData+0x17a>
14fb6: 83 e0 ldi r24, 0x03 ; 3
14fb8: 90 e0 ldi r25, 0x00 ; 0
14fba: 02 c0 rjmp .+4 ; 0x14fc0 <SendOutData+0x17a>
14fbc: 83 e0 ldi r24, 0x03 ; 3
14fbe: 90 e0 ldi r25, 0x00 ; 0
TxdBuffer[pt++] = '=' + (((a & 0x03) << 4) | ((b & 0xf0) >> 4));
TxdBuffer[pt++] = '=' + (((b & 0x0f) << 2) | ((c & 0xc0) >> 6));
TxdBuffer[pt++] = '=' + ( c & 0x3f);
}
va_end(ap);
AddCRC(pt);
14fc0: 0c df rcall .-488 ; 0x14dda <AddCRC>
14fc2: 0c c0 rjmp .+24 ; 0x14fdc <SendOutData+0x196>
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
}
else a = 0;
14fc4: 41 2f mov r20, r17
14fc6: 01 c0 rjmp .+2 ; 0x14fca <SendOutData+0x184>
}
while(len)
{
if(len)
{
a = snd[ptr++];
14fc8: df 2c mov r13, r15
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
}
else b = 0;
14fca: e1 2e mov r14, r17
14fcc: 05 c0 rjmp .+10 ; 0x14fd8 <SendOutData+0x192>
a = snd[ptr++];
len--;
if((!len) && BufferAnzahl)
{
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
14fce: df 01 movw r26, r30
ptr = 0;
14fd0: d1 2e mov r13, r17
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
}
else b = 0;
14fd2: e1 2e mov r14, r17
14fd4: 01 c0 rjmp .+2 ; 0x14fd8 <SendOutData+0x192>
}
}
else a = 0;
if(len)
{
b = snd[ptr++];
14fd6: d5 2e mov r13, r21
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
}
else c = 0;
14fd8: f1 2e mov r15, r17
14fda: ba cf rjmp .-140 ; 0x14f50 <SendOutData+0x10a>
TxdBuffer[pt++] = '=' + (((b & 0x0f) << 2) | ((c & 0xc0) >> 6));
TxdBuffer[pt++] = '=' + ( c & 0x3f);
}
va_end(ap);
AddCRC(pt);
}
14fdc: df 91 pop r29
14fde: cf 91 pop r28
14fe0: 1f 91 pop r17
14fe2: 0f 91 pop r16
14fe4: ff 90 pop r15
14fe6: ef 90 pop r14
14fe8: df 90 pop r13
14fea: 08 95 ret
 
00014fec <Decode64>:
{
unsigned char a,b,c,d;
unsigned char x,y,z;
unsigned char ptrIn = 3; // start at begin of data block
unsigned char ptrOut = 3;
unsigned char len = AnzahlEmpfangsBytes - 6; // von der Gesamtbytezahl eines Frames gehen 3 Bytes des Headers ('#',Addr, Cmd) und 3 Bytes des Footers (CRC1, CRC2, '\r') ab.
14fec: 70 91 f9 04 lds r23, 0x04F9
14ff0: 6a ef ldi r22, 0xFA ; 250
14ff2: 67 0f add r22, r23
 
while(len)
14ff4: 09 f4 brne .+2 ; 0x14ff8 <Decode64+0xc>
14ff6: 54 c0 rjmp .+168 ; 0x150a0 <Decode64+0xb4>
14ff8: ab ef ldi r26, 0xFB ; 251
14ffa: a7 0f add r26, r23
14ffc: 74 50 subi r23, 0x04 ; 4
void Decode64(void) // die daten werden im rx buffer dekodiert, das geht nur, weil aus 4 byte immer 3 gemacht werden.
{
unsigned char a,b,c,d;
unsigned char x,y,z;
unsigned char ptrIn = 3; // start at begin of data block
unsigned char ptrOut = 3;
14ffe: 43 e0 ldi r20, 0x03 ; 3
// --------------------------------------------------------------------------
void Decode64(void) // die daten werden im rx buffer dekodiert, das geht nur, weil aus 4 byte immer 3 gemacht werden.
{
unsigned char a,b,c,d;
unsigned char x,y,z;
unsigned char ptrIn = 3; // start at begin of data block
15000: 53 e0 ldi r21, 0x03 ; 3
unsigned char ptrOut = 3;
unsigned char len = AnzahlEmpfangsBytes - 6; // von der Gesamtbytezahl eines Frames gehen 3 Bytes des Headers ('#',Addr, Cmd) und 3 Bytes des Footers (CRC1, CRC2, '\r') ab.
 
while(len)
{
a = RxdBuffer[ptrIn++] - '=';
15002: e5 2f mov r30, r21
15004: f0 e0 ldi r31, 0x00 ; 0
15006: e4 57 subi r30, 0x74 ; 116
15008: f5 4f sbci r31, 0xF5 ; 245
1500a: 30 81 ld r19, Z
1500c: e1 e0 ldi r30, 0x01 ; 1
1500e: e5 0f add r30, r21
b = RxdBuffer[ptrIn++] - '=';
15010: f0 e0 ldi r31, 0x00 ; 0
15012: e4 57 subi r30, 0x74 ; 116
15014: f5 4f sbci r31, 0xF5 ; 245
15016: 20 81 ld r18, Z
15018: 2d 53 subi r18, 0x3D ; 61
1501a: e2 e0 ldi r30, 0x02 ; 2
1501c: e5 0f add r30, r21
c = RxdBuffer[ptrIn++] - '=';
1501e: f0 e0 ldi r31, 0x00 ; 0
15020: e4 57 subi r30, 0x74 ; 116
15022: f5 4f sbci r31, 0xF5 ; 245
15024: 80 81 ld r24, Z
15026: 8d 53 subi r24, 0x3D ; 61
d = RxdBuffer[ptrIn++] - '=';
15028: e3 e0 ldi r30, 0x03 ; 3
1502a: e5 0f add r30, r21
1502c: f0 e0 ldi r31, 0x00 ; 0
1502e: 5c 5f subi r21, 0xFC ; 252
15030: e4 57 subi r30, 0x74 ; 116
15032: f5 4f sbci r31, 0xF5 ; 245
15034: e0 81 ld r30, Z
 
x = (a << 2) | (b >> 4);
15036: 92 2f mov r25, r18
15038: 92 95 swap r25
1503a: 9f 70 andi r25, 0x0F ; 15
unsigned char ptrOut = 3;
unsigned char len = AnzahlEmpfangsBytes - 6; // von der Gesamtbytezahl eines Frames gehen 3 Bytes des Headers ('#',Addr, Cmd) und 3 Bytes des Footers (CRC1, CRC2, '\r') ab.
 
while(len)
{
a = RxdBuffer[ptrIn++] - '=';
1503c: 3d 53 subi r19, 0x3D ; 61
b = RxdBuffer[ptrIn++] - '=';
c = RxdBuffer[ptrIn++] - '=';
d = RxdBuffer[ptrIn++] - '=';
 
x = (a << 2) | (b >> 4);
1503e: 33 0f add r19, r19
15040: 33 0f add r19, r19
15042: b3 2f mov r27, r19
15044: b9 2b or r27, r25
y = ((b & 0x0f) << 4) | (c >> 2);
15046: 90 e1 ldi r25, 0x10 ; 16
15048: 29 9f mul r18, r25
1504a: 90 01 movw r18, r0
1504c: 11 24 eor r1, r1
1504e: 98 2f mov r25, r24
15050: 96 95 lsr r25
15052: 96 95 lsr r25
15054: 29 2b or r18, r25
z = ((c & 0x03) << 6) | d;
15056: 30 e4 ldi r19, 0x40 ; 64
15058: 83 9f mul r24, r19
1505a: c0 01 movw r24, r0
1505c: 11 24 eor r1, r1
while(len)
{
a = RxdBuffer[ptrIn++] - '=';
b = RxdBuffer[ptrIn++] - '=';
c = RxdBuffer[ptrIn++] - '=';
d = RxdBuffer[ptrIn++] - '=';
1505e: 93 ec ldi r25, 0xC3 ; 195
15060: 9e 0f add r25, r30
 
x = (a << 2) | (b >> 4);
y = ((b & 0x0f) << 4) | (c >> 2);
z = ((c & 0x03) << 6) | d;
15062: 89 2b or r24, r25
 
if(len--) RxdBuffer[ptrOut++] = x; else break;
15064: 66 23 and r22, r22
15066: 09 f1 breq .+66 ; 0x150aa <Decode64+0xbe>
15068: 31 e0 ldi r19, 0x01 ; 1
1506a: 34 0f add r19, r20
1506c: e4 2f mov r30, r20
1506e: f0 e0 ldi r31, 0x00 ; 0
15070: e4 57 subi r30, 0x74 ; 116
15072: f5 4f sbci r31, 0xF5 ; 245
15074: b0 83 st Z, r27
if(len--) RxdBuffer[ptrOut++] = y; else break;
15076: 47 17 cp r20, r23
15078: a9 f0 breq .+42 ; 0x150a4 <Decode64+0xb8>
1507a: 92 e0 ldi r25, 0x02 ; 2
1507c: 94 0f add r25, r20
1507e: e3 2f mov r30, r19
15080: f0 e0 ldi r31, 0x00 ; 0
15082: e4 57 subi r30, 0x74 ; 116
15084: f5 4f sbci r31, 0xF5 ; 245
15086: 20 83 st Z, r18
if(len--) RxdBuffer[ptrOut++] = z; else break;
15088: 63 50 subi r22, 0x03 ; 3
1508a: 4a 17 cp r20, r26
1508c: 69 f0 breq .+26 ; 0x150a8 <Decode64+0xbc>
1508e: 4d 5f subi r20, 0xFD ; 253
15090: e9 2f mov r30, r25
15092: f0 e0 ldi r31, 0x00 ; 0
15094: e4 57 subi r30, 0x74 ; 116
15096: f5 4f sbci r31, 0xF5 ; 245
15098: 80 83 st Z, r24
unsigned char x,y,z;
unsigned char ptrIn = 3; // start at begin of data block
unsigned char ptrOut = 3;
unsigned char len = AnzahlEmpfangsBytes - 6; // von der Gesamtbytezahl eines Frames gehen 3 Bytes des Headers ('#',Addr, Cmd) und 3 Bytes des Footers (CRC1, CRC2, '\r') ab.
 
while(len)
1509a: 61 11 cpse r22, r1
1509c: b2 cf rjmp .-156 ; 0x15002 <Decode64+0x16>
1509e: 05 c0 rjmp .+10 ; 0x150aa <Decode64+0xbe>
void Decode64(void) // die daten werden im rx buffer dekodiert, das geht nur, weil aus 4 byte immer 3 gemacht werden.
{
unsigned char a,b,c,d;
unsigned char x,y,z;
unsigned char ptrIn = 3; // start at begin of data block
unsigned char ptrOut = 3;
150a0: 43 e0 ldi r20, 0x03 ; 3
150a2: 03 c0 rjmp .+6 ; 0x150aa <Decode64+0xbe>
 
x = (a << 2) | (b >> 4);
y = ((b & 0x0f) << 4) | (c >> 2);
z = ((c & 0x03) << 6) | d;
 
if(len--) RxdBuffer[ptrOut++] = x; else break;
150a4: 43 2f mov r20, r19
150a6: 01 c0 rjmp .+2 ; 0x150aa <Decode64+0xbe>
if(len--) RxdBuffer[ptrOut++] = y; else break;
150a8: 49 2f mov r20, r25
if(len--) RxdBuffer[ptrOut++] = z; else break;
}
pRxData = (unsigned char*)&RxdBuffer[3]; // decodierte Daten beginnen beim 4. Byte
150aa: 8f e8 ldi r24, 0x8F ; 143
150ac: 9a e0 ldi r25, 0x0A ; 10
150ae: 90 93 f8 04 sts 0x04F8, r25
150b2: 80 93 f7 04 sts 0x04F7, r24
RxDataLen = ptrOut - 3; // wie viele Bytes wurden dekodiert?
150b6: 43 50 subi r20, 0x03 ; 3
150b8: 40 93 f6 04 sts 0x04F6, r20
150bc: 08 95 ret
 
000150be <BearbeiteRxDaten>:
 
}
 
// --------------------------------------------------------------------------
void BearbeiteRxDaten(void)
{
150be: cf 93 push r28
150c0: df 93 push r29
150c2: 00 d0 rcall .+0 ; 0x150c4 <BearbeiteRxDaten+0x6>
150c4: cd b7 in r28, 0x3d ; 61
150c6: de b7 in r29, 0x3e ; 62
if(!NeuerDatensatzEmpfangen) return;
150c8: 80 91 fb 04 lds r24, 0x04FB
150cc: 88 23 and r24, r24
150ce: 09 f4 brne .+2 ; 0x150d2 <BearbeiteRxDaten+0x14>
150d0: 49 c4 rjmp .+2194 ; 0x15964 <BearbeiteRxDaten+0x8a6>
 
unsigned char tempchar1, tempchar2;
Decode64(); // dekodiere datenblock im Empfangsbuffer
150d2: 8c df rcall .-232 ; 0x14fec <Decode64>
switch(RxdBuffer[1]-'a') // check for Slave Address
150d4: 80 91 8d 0a lds r24, 0x0A8D
150d8: 82 36 cpi r24, 0x62 ; 98
150da: 09 f0 breq .+2 ; 0x150de <BearbeiteRxDaten+0x20>
150dc: 04 c3 rjmp .+1544 ; 0x156e6 <BearbeiteRxDaten+0x628>
{
case FC_ADDRESS: // FC special commands
switch(RxdBuffer[2])
150de: 80 91 8e 0a lds r24, 0x0A8E
150e2: 90 e0 ldi r25, 0x00 ; 0
150e4: fc 01 movw r30, r24
150e6: eb 54 subi r30, 0x4B ; 75
150e8: f1 09 sbc r31, r1
150ea: ef 32 cpi r30, 0x2F ; 47
150ec: f1 05 cpc r31, r1
150ee: 08 f0 brcs .+2 ; 0x150f2 <BearbeiteRxDaten+0x34>
150f0: fa c2 rjmp .+1524 ; 0x156e6 <BearbeiteRxDaten+0x628>
150f2: e9 54 subi r30, 0x49 ; 73
150f4: ff 4f sbci r31, 0xFF ; 255
150f6: 0c 94 a7 b1 jmp 0x1634e ; 0x1634e <__tablejump2__>
{
case 'K':// Kompasswert
memcpy((unsigned char *)&KompassValue , (unsigned char *)pRxData, sizeof(KompassValue));
150fa: e0 91 f7 04 lds r30, 0x04F7
150fe: f0 91 f8 04 lds r31, 0x04F8
15102: 80 81 ld r24, Z
15104: 91 81 ldd r25, Z+1 ; 0x01
15106: 90 93 4f 01 sts 0x014F, r25
1510a: 80 93 4e 01 sts 0x014E, r24
// KompassRichtung = ((540 + KompassValue - KompassSollWert) % 360) - 180;
break;
1510e: eb c2 rjmp .+1494 ; 0x156e6 <BearbeiteRxDaten+0x628>
case 't':// Motortest
if(AnzahlEmpfangsBytes > 20) memcpy(&MotorTest[0], (unsigned char *)pRxData, sizeof(MotorTest));
15110: 80 91 f9 04 lds r24, 0x04F9
15114: 85 31 cpi r24, 0x15 ; 21
15116: 60 f0 brcs .+24 ; 0x15130 <BearbeiteRxDaten+0x72>
15118: e0 91 f7 04 lds r30, 0x04F7
1511c: f0 91 f8 04 lds r31, 0x04F8
15120: 80 e1 ldi r24, 0x10 ; 16
15122: a7 e6 ldi r26, 0x67 ; 103
15124: ba e0 ldi r27, 0x0A ; 10
15126: 01 90 ld r0, Z+
15128: 0d 92 st X+, r0
1512a: 8a 95 dec r24
1512c: e1 f7 brne .-8 ; 0x15126 <BearbeiteRxDaten+0x68>
1512e: 10 c0 rjmp .+32 ; 0x15150 <BearbeiteRxDaten+0x92>
else memcpy(&MotorTest[0], (unsigned char *)pRxData, 4);
15130: e0 91 f7 04 lds r30, 0x04F7
15134: f0 91 f8 04 lds r31, 0x04F8
15138: 80 81 ld r24, Z
1513a: 91 81 ldd r25, Z+1 ; 0x01
1513c: a2 81 ldd r26, Z+2 ; 0x02
1513e: b3 81 ldd r27, Z+3 ; 0x03
15140: 80 93 67 0a sts 0x0A67, r24
15144: 90 93 68 0a sts 0x0A68, r25
15148: a0 93 69 0a sts 0x0A69, r26
1514c: b0 93 6a 0a sts 0x0A6A, r27
PC_MotortestActive = 240;
15150: 80 ef ldi r24, 0xF0 ; 240
15152: 80 93 f5 04 sts 0x04F5, r24
//while(!UebertragungAbgeschlossen);
//SendOutData('T', MeineSlaveAdresse, 0);
PcZugriff = 255;
15156: 8f ef ldi r24, 0xFF ; 255
15158: 80 93 b5 02 sts 0x02B5, r24
break;
1515c: c4 c2 rjmp .+1416 ; 0x156e6 <BearbeiteRxDaten+0x628>
 
case 'n':// "Get Mixer
while(!UebertragungAbgeschlossen);
1515e: 80 91 b7 02 lds r24, 0x02B7
15162: 88 23 and r24, r24
15164: e1 f3 breq .-8 ; 0x1515e <BearbeiteRxDaten+0xa0>
SendOutData('N', FC_ADDRESS, 1, (unsigned char *) &Mixer, sizeof(Mixer) - 1);
15166: 1f 92 push r1
15168: 8d e4 ldi r24, 0x4D ; 77
1516a: 8f 93 push r24
1516c: 87 ec ldi r24, 0xC7 ; 199
1516e: 95 e0 ldi r25, 0x05 ; 5
15170: 9f 93 push r25
15172: 8f 93 push r24
15174: 81 e0 ldi r24, 0x01 ; 1
15176: 8f 93 push r24
15178: 8f 93 push r24
1517a: 8e e4 ldi r24, 0x4E ; 78
1517c: 8f 93 push r24
1517e: 63 de rcall .-826 ; 0x14e46 <SendOutData>
Debug("Mixer lesen");
15180: 83 e6 ldi r24, 0x63 ; 99
15182: 96 e1 ldi r25, 0x16 ; 22
15184: 9f 93 push r25
15186: 8f 93 push r24
15188: 88 e1 ldi r24, 0x18 ; 24
1518a: 93 e2 ldi r25, 0x23 ; 35
1518c: 9f 93 push r25
1518e: 8f 93 push r24
15190: e0 91 78 06 lds r30, 0x0678
15194: f0 91 79 06 lds r31, 0x0679
15198: 09 95 icall
1519a: 80 e0 ldi r24, 0x00 ; 0
1519c: 0e 94 2c 23 call 0x4658 ; 0x4658 <DebugSend>
break;
151a0: 0f b6 in r0, 0x3f ; 63
151a2: f8 94 cli
151a4: de bf out 0x3e, r29 ; 62
151a6: 0f be out 0x3f, r0 ; 63
151a8: cd bf out 0x3d, r28 ; 61
151aa: 9d c2 rjmp .+1338 ; 0x156e6 <BearbeiteRxDaten+0x628>
 
case 'm':// "Write Mixer
if(pRxData[0] == EEMIXER_REVISION)
151ac: e0 91 f7 04 lds r30, 0x04F7
151b0: f0 91 f8 04 lds r31, 0x04F8
151b4: 80 81 ld r24, Z
151b6: 81 30 cpi r24, 0x01 ; 1
151b8: 89 f4 brne .+34 ; 0x151dc <BearbeiteRxDaten+0x11e>
{
memcpy(&Mixer, (unsigned char *)pRxData, sizeof(Mixer) - 1);
151ba: 8d e4 ldi r24, 0x4D ; 77
151bc: a7 ec ldi r26, 0xC7 ; 199
151be: b5 e0 ldi r27, 0x05 ; 5
151c0: 01 90 ld r0, Z+
151c2: 0d 92 st X+, r0
151c4: 8a 95 dec r24
151c6: e1 f7 brne .-8 ; 0x151c0 <BearbeiteRxDaten+0x102>
MixerTable_WriteToEEProm();
151c8: 0e 94 ac 25 call 0x4b58 ; 0x4b58 <MixerTable_WriteToEEProm>
tempchar1 = 1;
151cc: 81 e0 ldi r24, 0x01 ; 1
151ce: 89 83 std Y+1, r24 ; 0x01
VersionInfo.HardwareError[1] &= ~FC_ERROR1_MIXER;
151d0: e3 e6 ldi r30, 0x63 ; 99
151d2: fa e0 ldi r31, 0x0A ; 10
151d4: 80 81 ld r24, Z
151d6: 8f 7e andi r24, 0xEF ; 239
151d8: 80 83 st Z, r24
151da: 01 c0 rjmp .+2 ; 0x151de <BearbeiteRxDaten+0x120>
}
else
{
tempchar1 = 0;
151dc: 19 82 std Y+1, r1 ; 0x01
}
while(!UebertragungAbgeschlossen);
151de: 80 91 b7 02 lds r24, 0x02B7
151e2: 88 23 and r24, r24
151e4: e1 f3 breq .-8 ; 0x151de <BearbeiteRxDaten+0x120>
SendOutData('M', FC_ADDRESS, 1, &tempchar1, sizeof(tempchar1));
151e6: 1f 92 push r1
151e8: 21 e0 ldi r18, 0x01 ; 1
151ea: 2f 93 push r18
151ec: ce 01 movw r24, r28
151ee: 01 96 adiw r24, 0x01 ; 1
151f0: 9f 93 push r25
151f2: 8f 93 push r24
151f4: 2f 93 push r18
151f6: 2f 93 push r18
151f8: 8d e4 ldi r24, 0x4D ; 77
151fa: 8f 93 push r24
151fc: 24 de rcall .-952 ; 0x14e46 <SendOutData>
break;
151fe: 0f b6 in r0, 0x3f ; 63
15200: f8 94 cli
15202: de bf out 0x3e, r29 ; 62
15204: 0f be out 0x3f, r0 ; 63
15206: cd bf out 0x3d, r28 ; 61
15208: 6e c2 rjmp .+1244 ; 0x156e6 <BearbeiteRxDaten+0x628>
 
case 'p': // get PPM Channels
GetPPMChannelAnforderung = 1;
1520a: 81 e0 ldi r24, 0x01 ; 1
1520c: 80 93 fe 04 sts 0x04FE, r24
PcZugriff = 255;
15210: 8f ef ldi r24, 0xFF ; 255
15212: 80 93 b5 02 sts 0x02B5, r24
break;
15216: 67 c2 rjmp .+1230 ; 0x156e6 <BearbeiteRxDaten+0x628>
 
case 'q':// "Get"-Anforderung für Settings
// Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen
if(!MotorenEin)
15218: 80 91 03 04 lds r24, 0x0403
1521c: 81 11 cpse r24, r1
1521e: 44 c0 rjmp .+136 ; 0x152a8 <BearbeiteRxDaten+0x1ea>
{
if((10 <= pRxData[0]) && (pRxData[0] < 20))
15220: e0 91 f7 04 lds r30, 0x04F7
15224: f0 91 f8 04 lds r31, 0x04F8
15228: 80 81 ld r24, Z
1522a: 96 ef ldi r25, 0xF6 ; 246
1522c: 98 0f add r25, r24
1522e: 9a 30 cpi r25, 0x0A ; 10
15230: 80 f4 brcc .+32 ; 0x15252 <BearbeiteRxDaten+0x194>
{
tempchar1 = pRxData[0] - 10;
if(tempchar1< 1) tempchar1 = 1; // limit to 1
15232: 91 11 cpse r25, r1
15234: 03 c0 rjmp .+6 ; 0x1523c <BearbeiteRxDaten+0x17e>
15236: 81 e0 ldi r24, 0x01 ; 1
15238: 89 83 std Y+1, r24 ; 0x01
1523a: 06 c0 rjmp .+12 ; 0x15248 <BearbeiteRxDaten+0x18a>
else if(tempchar1 > 5) tempchar1 = 5; // limit to 5
1523c: 96 30 cpi r25, 0x06 ; 6
1523e: 10 f4 brcc .+4 ; 0x15244 <BearbeiteRxDaten+0x186>
// Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen
if(!MotorenEin)
{
if((10 <= pRxData[0]) && (pRxData[0] < 20))
{
tempchar1 = pRxData[0] - 10;
15240: 99 83 std Y+1, r25 ; 0x01
15242: 02 c0 rjmp .+4 ; 0x15248 <BearbeiteRxDaten+0x18a>
if(tempchar1< 1) tempchar1 = 1; // limit to 1
else if(tempchar1 > 5) tempchar1 = 5; // limit to 5
15244: 85 e0 ldi r24, 0x05 ; 5
15246: 89 83 std Y+1, r24 ; 0x01
SetDefaultParameter(tempchar1, 1);
15248: 61 e0 ldi r22, 0x01 ; 1
1524a: 89 81 ldd r24, Y+1 ; 0x01
1524c: 0e 94 78 26 call 0x4cf0 ; 0x4cf0 <SetDefaultParameter>
15250: 27 c0 rjmp .+78 ; 0x152a0 <BearbeiteRxDaten+0x1e2>
}
else if((20 <= pRxData[0]) && (pRxData[0] < 30))
15252: 9c ee ldi r25, 0xEC ; 236
15254: 98 0f add r25, r24
15256: 9a 30 cpi r25, 0x0A ; 10
15258: 80 f4 brcc .+32 ; 0x1527a <BearbeiteRxDaten+0x1bc>
{
tempchar1 = pRxData[0] - 20;
if(tempchar1< 1) tempchar1 = 1; // limit to 1
1525a: 91 11 cpse r25, r1
1525c: 03 c0 rjmp .+6 ; 0x15264 <BearbeiteRxDaten+0x1a6>
1525e: 81 e0 ldi r24, 0x01 ; 1
15260: 89 83 std Y+1, r24 ; 0x01
15262: 06 c0 rjmp .+12 ; 0x15270 <BearbeiteRxDaten+0x1b2>
else if(tempchar1 > 5) tempchar1 = 5; // limit to 5
15264: 96 30 cpi r25, 0x06 ; 6
15266: 10 f4 brcc .+4 ; 0x1526c <BearbeiteRxDaten+0x1ae>
else if(tempchar1 > 5) tempchar1 = 5; // limit to 5
SetDefaultParameter(tempchar1, 1);
}
else if((20 <= pRxData[0]) && (pRxData[0] < 30))
{
tempchar1 = pRxData[0] - 20;
15268: 99 83 std Y+1, r25 ; 0x01
1526a: 02 c0 rjmp .+4 ; 0x15270 <BearbeiteRxDaten+0x1b2>
if(tempchar1< 1) tempchar1 = 1; // limit to 1
else if(tempchar1 > 5) tempchar1 = 5; // limit to 5
1526c: 85 e0 ldi r24, 0x05 ; 5
1526e: 89 83 std Y+1, r24 ; 0x01
SetDefaultParameter(tempchar1, 0);
15270: 60 e0 ldi r22, 0x00 ; 0
15272: 89 81 ldd r24, Y+1 ; 0x01
15274: 0e 94 78 26 call 0x4cf0 ; 0x4cf0 <SetDefaultParameter>
15278: 13 c0 rjmp .+38 ; 0x152a0 <BearbeiteRxDaten+0x1e2>
}
else
{
tempchar1 = pRxData[0];
1527a: 89 83 std Y+1, r24 ; 0x01
if(tempchar1 == 0xFF)
1527c: 8f 3f cpi r24, 0xFF ; 255
1527e: 19 f4 brne .+6 ; 0x15286 <BearbeiteRxDaten+0x1c8>
{
tempchar1 = GetActiveParamSet();
15280: 0e 94 09 26 call 0x4c12 ; 0x4c12 <GetActiveParamSet>
15284: 89 83 std Y+1, r24 ; 0x01
}
if(tempchar1< 1) tempchar1 = 1; // limit to 1
15286: 89 81 ldd r24, Y+1 ; 0x01
15288: 81 11 cpse r24, r1
1528a: 03 c0 rjmp .+6 ; 0x15292 <BearbeiteRxDaten+0x1d4>
1528c: 81 e0 ldi r24, 0x01 ; 1
1528e: 89 83 std Y+1, r24 ; 0x01
15290: 04 c0 rjmp .+8 ; 0x1529a <BearbeiteRxDaten+0x1dc>
else if(tempchar1 > 5) tempchar1 = 5; // limit to 5
15292: 86 30 cpi r24, 0x06 ; 6
15294: 10 f0 brcs .+4 ; 0x1529a <BearbeiteRxDaten+0x1dc>
15296: 85 e0 ldi r24, 0x05 ; 5
15298: 89 83 std Y+1, r24 ; 0x01
// load requested parameter set
ParamSet_ReadFromEEProm(tempchar1);
1529a: 89 81 ldd r24, Y+1 ; 0x01
1529c: 0e 94 4e 25 call 0x4a9c ; 0x4a9c <ParamSet_ReadFromEEProm>
}
LipoDetection(0);
152a0: 80 e0 ldi r24, 0x00 ; 0
152a2: 0e 94 90 59 call 0xb320 ; 0xb320 <LipoDetection>
152a6: 03 c0 rjmp .+6 ; 0x152ae <BearbeiteRxDaten+0x1f0>
} else tempchar1 = GetActiveParamSet();
152a8: 0e 94 09 26 call 0x4c12 ; 0x4c12 <GetActiveParamSet>
152ac: 89 83 std Y+1, r24 ; 0x01
while(!UebertragungAbgeschlossen);
152ae: 80 91 b7 02 lds r24, 0x02B7
152b2: 88 23 and r24, r24
152b4: e1 f3 breq .-8 ; 0x152ae <BearbeiteRxDaten+0x1f0>
SendOutData('Q', FC_ADDRESS, 2, &tempchar1, sizeof(tempchar1), (unsigned char *) &EE_Parameter, sizeof(EE_Parameter) - 1);
152b6: 1f 92 push r1
152b8: 88 e8 ldi r24, 0x88 ; 136
152ba: 8f 93 push r24
152bc: 8e e3 ldi r24, 0x3E ; 62
152be: 95 e0 ldi r25, 0x05 ; 5
152c0: 9f 93 push r25
152c2: 8f 93 push r24
152c4: 1f 92 push r1
152c6: 21 e0 ldi r18, 0x01 ; 1
152c8: 2f 93 push r18
152ca: ce 01 movw r24, r28
152cc: 01 96 adiw r24, 0x01 ; 1
152ce: 9f 93 push r25
152d0: 8f 93 push r24
152d2: 82 e0 ldi r24, 0x02 ; 2
152d4: 8f 93 push r24
152d6: 2f 93 push r18
152d8: 81 e5 ldi r24, 0x51 ; 81
152da: 8f 93 push r24
152dc: b4 dd rcall .-1176 ; 0x14e46 <SendOutData>
Debug("Lese Setting %d", tempchar1);
152de: 89 81 ldd r24, Y+1 ; 0x01
152e0: 1f 92 push r1
152e2: 8f 93 push r24
152e4: 83 e5 ldi r24, 0x53 ; 83
152e6: 96 e1 ldi r25, 0x16 ; 22
152e8: 9f 93 push r25
152ea: 8f 93 push r24
152ec: 88 e1 ldi r24, 0x18 ; 24
152ee: 93 e2 ldi r25, 0x23 ; 35
152f0: 9f 93 push r25
152f2: 8f 93 push r24
152f4: e0 91 78 06 lds r30, 0x0678
152f8: f0 91 79 06 lds r31, 0x0679
152fc: 09 95 icall
152fe: 80 e0 ldi r24, 0x00 ; 0
15300: 0e 94 2c 23 call 0x4658 ; 0x4658 <DebugSend>
break;
15304: 0f b6 in r0, 0x3f ; 63
15306: f8 94 cli
15308: de bf out 0x3e, r29 ; 62
1530a: 0f be out 0x3f, r0 ; 63
1530c: cd bf out 0x3d, r28 ; 61
1530e: eb c1 rjmp .+982 ; 0x156e6 <BearbeiteRxDaten+0x628>
 
case 's': // Parametersatz speichern
if((1 <= pRxData[0]) && (pRxData[0] <= 5) && (pRxData[1] == EEPARAM_REVISION) && MotorenEin == 0) // check for setting to be in range
15310: 80 91 f7 04 lds r24, 0x04F7
15314: 90 91 f8 04 lds r25, 0x04F8
15318: fc 01 movw r30, r24
1531a: 20 81 ld r18, Z
1531c: 21 50 subi r18, 0x01 ; 1
1531e: 25 30 cpi r18, 0x05 ; 5
15320: 90 f5 brcc .+100 ; 0x15386 <BearbeiteRxDaten+0x2c8>
15322: 21 81 ldd r18, Z+1 ; 0x01
15324: 27 36 cpi r18, 0x67 ; 103
15326: 79 f5 brne .+94 ; 0x15386 <BearbeiteRxDaten+0x2c8>
15328: 20 91 03 04 lds r18, 0x0403
1532c: 21 11 cpse r18, r1
1532e: 2b c0 rjmp .+86 ; 0x15386 <BearbeiteRxDaten+0x2c8>
{
memcpy(&EE_Parameter, (uint8_t*)&pRxData[1], sizeof(EE_Parameter) - 1);
15330: 31 96 adiw r30, 0x01 ; 1
15332: 28 e8 ldi r18, 0x88 ; 136
15334: ae e3 ldi r26, 0x3E ; 62
15336: b5 e0 ldi r27, 0x05 ; 5
15338: 01 90 ld r0, Z+
1533a: 0d 92 st X+, r0
1533c: 2a 95 dec r18
1533e: e1 f7 brne .-8 ; 0x15338 <BearbeiteRxDaten+0x27a>
ParamSet_WriteToEEProm(pRxData[0]);
15340: fc 01 movw r30, r24
15342: 80 81 ld r24, Z
15344: 0e 94 26 26 call 0x4c4c ; 0x4c4c <ParamSet_WriteToEEProm>
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
15348: 20 91 7f 05 lds r18, 0x057F
1534c: 30 e0 ldi r19, 0x00 ; 0
1534e: a4 ec ldi r26, 0xC4 ; 196
15350: b9 e0 ldi r27, 0x09 ; 9
15352: 0e 94 b3 b1 call 0x16366 ; 0x16366 <__umulhisi3>
15356: 60 93 46 01 sts 0x0146, r22
1535a: 70 93 47 01 sts 0x0147, r23
1535e: 80 93 48 01 sts 0x0148, r24
15362: 90 93 49 01 sts 0x0149, r25
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L;
15366: 20 91 80 05 lds r18, 0x0580
1536a: 30 e0 ldi r19, 0x00 ; 0
1536c: fc d7 rcall .+4088 ; 0x16366 <__umulhisi3>
1536e: 60 93 42 01 sts 0x0142, r22
15372: 70 93 43 01 sts 0x0143, r23
15376: 80 93 44 01 sts 0x0144, r24
1537a: 90 93 45 01 sts 0x0145, r25
tempchar1 = GetActiveParamSet();
1537e: 0e 94 09 26 call 0x4c12 ; 0x4c12 <GetActiveParamSet>
15382: 89 83 std Y+1, r24 ; 0x01
15384: 01 c0 rjmp .+2 ; 0x15388 <BearbeiteRxDaten+0x2ca>
}
else
{
tempchar1 = 0; // mark in response an invlid setting
15386: 19 82 std Y+1, r1 ; 0x01
}
while(!UebertragungAbgeschlossen);
15388: 80 91 b7 02 lds r24, 0x02B7
1538c: 88 23 and r24, r24
1538e: e1 f3 breq .-8 ; 0x15388 <BearbeiteRxDaten+0x2ca>
SendOutData('S', FC_ADDRESS, 1, &tempchar1, sizeof(tempchar1));
15390: 1f 92 push r1
15392: 21 e0 ldi r18, 0x01 ; 1
15394: 2f 93 push r18
15396: ce 01 movw r24, r28
15398: 01 96 adiw r24, 0x01 ; 1
1539a: 9f 93 push r25
1539c: 8f 93 push r24
1539e: 2f 93 push r18
153a0: 2f 93 push r18
153a2: 83 e5 ldi r24, 0x53 ; 83
153a4: 8f 93 push r24
153a6: 4f dd rcall .-1378 ; 0x14e46 <SendOutData>
if(!MotorenEin)
153a8: 0f b6 in r0, 0x3f ; 63
153aa: f8 94 cli
153ac: de bf out 0x3e, r29 ; 62
153ae: 0f be out 0x3f, r0 ; 63
153b0: cd bf out 0x3d, r28 ; 61
153b2: 80 91 03 04 lds r24, 0x0403
153b6: 81 11 cpse r24, r1
153b8: 08 c0 rjmp .+16 ; 0x153ca <BearbeiteRxDaten+0x30c>
{
Piep(tempchar1,110);
153ba: 6e e6 ldi r22, 0x6E ; 110
153bc: 70 e0 ldi r23, 0x00 ; 0
153be: 89 81 ldd r24, Y+1 ; 0x01
153c0: 0e 94 ba 28 call 0x5174 ; 0x5174 <Piep>
LipoDetection(0);
153c4: 80 e0 ldi r24, 0x00 ; 0
153c6: 0e 94 90 59 call 0xb320 ; 0xb320 <LipoDetection>
}
LIBFC_ReceiverInit(EE_Parameter.Receiver);
153ca: 80 91 65 05 lds r24, 0x0565
153ce: 0e 94 68 18 call 0x30d0 ; 0x30d0 <LIBFC_ReceiverInit>
break;
153d2: 89 c1 rjmp .+786 ; 0x156e6 <BearbeiteRxDaten+0x628>
case 'f': // auf anderen Parametersatz umschalten
if(MotorenEin) break;
153d4: 80 91 03 04 lds r24, 0x0403
153d8: 81 11 cpse r24, r1
153da: 85 c1 rjmp .+778 ; 0x156e6 <BearbeiteRxDaten+0x628>
if((1 <= pRxData[0]) && (pRxData[0] <= 5)) ParamSet_ReadFromEEProm(pRxData[0]);
153dc: e0 91 f7 04 lds r30, 0x04F7
153e0: f0 91 f8 04 lds r31, 0x04F8
153e4: 80 81 ld r24, Z
153e6: 9f ef ldi r25, 0xFF ; 255
153e8: 98 0f add r25, r24
153ea: 95 30 cpi r25, 0x05 ; 5
153ec: 10 f4 brcc .+4 ; 0x153f2 <BearbeiteRxDaten+0x334>
153ee: 0e 94 4e 25 call 0x4a9c ; 0x4a9c <ParamSet_ReadFromEEProm>
tempchar1 = GetActiveParamSet();
153f2: 0e 94 09 26 call 0x4c12 ; 0x4c12 <GetActiveParamSet>
153f6: 89 83 std Y+1, r24 ; 0x01
while(!UebertragungAbgeschlossen);
153f8: 80 91 b7 02 lds r24, 0x02B7
153fc: 88 23 and r24, r24
153fe: e1 f3 breq .-8 ; 0x153f8 <BearbeiteRxDaten+0x33a>
SendOutData('F', FC_ADDRESS, 1, &tempchar1, sizeof(tempchar1));
15400: 1f 92 push r1
15402: 21 e0 ldi r18, 0x01 ; 1
15404: 2f 93 push r18
15406: ce 01 movw r24, r28
15408: 01 96 adiw r24, 0x01 ; 1
1540a: 9f 93 push r25
1540c: 8f 93 push r24
1540e: 2f 93 push r18
15410: 2f 93 push r18
15412: 86 e4 ldi r24, 0x46 ; 70
15414: 8f 93 push r24
15416: 17 dd rcall .-1490 ; 0x14e46 <SendOutData>
if(!MotorenEin)
15418: 0f b6 in r0, 0x3f ; 63
1541a: f8 94 cli
1541c: de bf out 0x3e, r29 ; 62
1541e: 0f be out 0x3f, r0 ; 63
15420: cd bf out 0x3d, r28 ; 61
15422: 80 91 03 04 lds r24, 0x0403
15426: 81 11 cpse r24, r1
15428: 08 c0 rjmp .+16 ; 0x1543a <BearbeiteRxDaten+0x37c>
{
Piep(tempchar1,110);
1542a: 6e e6 ldi r22, 0x6E ; 110
1542c: 70 e0 ldi r23, 0x00 ; 0
1542e: 89 81 ldd r24, Y+1 ; 0x01
15430: 0e 94 ba 28 call 0x5174 ; 0x5174 <Piep>
LipoDetection(0);
15434: 80 e0 ldi r24, 0x00 ; 0
15436: 0e 94 90 59 call 0xb320 ; 0xb320 <LipoDetection>
}
LIBFC_ReceiverInit(EE_Parameter.Receiver);
1543a: 80 91 65 05 lds r24, 0x0565
1543e: 0e 94 68 18 call 0x30d0 ; 0x30d0 <LIBFC_ReceiverInit>
break;
15442: 51 c1 rjmp .+674 ; 0x156e6 <BearbeiteRxDaten+0x628>
case 'y':// serial Potis
for(tempchar1 = 0; tempchar1 < 12; tempchar1++) PPM_in[SERIAL_POTI_START + tempchar1] = (signed char) pRxData[tempchar1];
15444: 19 82 std Y+1, r1 ; 0x01
15446: 40 91 f7 04 lds r20, 0x04F7
1544a: e4 2f mov r30, r20
1544c: f0 91 f8 04 lds r31, 0x04F8
15450: 81 e1 ldi r24, 0x11 ; 17
15452: 90 e0 ldi r25, 0x00 ; 0
15454: 21 91 ld r18, Z+
15456: 33 27 eor r19, r19
15458: 27 fd sbrc r18, 7
1545a: 30 95 com r19
1545c: dc 01 movw r26, r24
1545e: aa 0f add r26, r26
15460: bb 1f adc r27, r27
15462: af 5c subi r26, 0xCF ; 207
15464: b7 4f sbci r27, 0xF7 ; 247
15466: 11 96 adiw r26, 0x01 ; 1
15468: 3c 93 st X, r19
1546a: 2e 93 st -X, r18
1546c: 2e 2f mov r18, r30
1546e: 24 1b sub r18, r20
15470: 29 83 std Y+1, r18 ; 0x01
15472: 01 96 adiw r24, 0x01 ; 1
15474: 8d 31 cpi r24, 0x1D ; 29
15476: 91 05 cpc r25, r1
15478: 69 f7 brne .-38 ; 0x15454 <BearbeiteRxDaten+0x396>
1547a: 35 c1 rjmp .+618 ; 0x156e6 <BearbeiteRxDaten+0x628>
break;
case 'u': // request BL parameter
Debug("Reading BL %d", pRxData[0]);
1547c: e0 91 f7 04 lds r30, 0x04F7
15480: f0 91 f8 04 lds r31, 0x04F8
15484: 80 81 ld r24, Z
15486: 1f 92 push r1
15488: 8f 93 push r24
1548a: 85 e4 ldi r24, 0x45 ; 69
1548c: 96 e1 ldi r25, 0x16 ; 22
1548e: 9f 93 push r25
15490: 8f 93 push r24
15492: 88 e1 ldi r24, 0x18 ; 24
15494: 93 e2 ldi r25, 0x23 ; 35
15496: 9f 93 push r25
15498: 8f 93 push r24
1549a: e0 91 78 06 lds r30, 0x0678
1549e: f0 91 79 06 lds r31, 0x0679
154a2: 09 95 icall
154a4: 80 e0 ldi r24, 0x00 ; 0
154a6: 0e 94 2c 23 call 0x4658 ; 0x4658 <DebugSend>
// try to read BL configuration
tempchar2 = I2C_ReadBLConfig(pRxData[0]);
154aa: e0 91 f7 04 lds r30, 0x04F7
154ae: f0 91 f8 04 lds r31, 0x04F8
154b2: 80 81 ld r24, Z
154b4: aa da rcall .-2732 ; 0x14a0a <I2C_ReadBLConfig>
154b6: 8a 83 std Y+2, r24 ; 0x02
if(tempchar2 == BLCONFIG_SUCCESS) tempchar1 = 1;
154b8: 0f 90 pop r0
154ba: 0f 90 pop r0
154bc: 0f 90 pop r0
154be: 0f 90 pop r0
154c0: 0f 90 pop r0
154c2: 0f 90 pop r0
154c4: 81 11 cpse r24, r1
154c6: 03 c0 rjmp .+6 ; 0x154ce <BearbeiteRxDaten+0x410>
154c8: 81 e0 ldi r24, 0x01 ; 1
154ca: 89 83 std Y+1, r24 ; 0x01
154cc: 01 c0 rjmp .+2 ; 0x154d0 <BearbeiteRxDaten+0x412>
else tempchar1 = 0;
154ce: 19 82 std Y+1, r1 ; 0x01
while(!UebertragungAbgeschlossen); // wait for previous frame to be sent
154d0: 80 91 b7 02 lds r24, 0x02B7
154d4: 88 23 and r24, r24
154d6: e1 f3 breq .-8 ; 0x154d0 <BearbeiteRxDaten+0x412>
SendOutData('U', FC_ADDRESS, 4, &tempchar1, sizeof(tempchar1), &tempchar2, sizeof(tempchar2), &pRxData[0], 1, &BLConfig, sizeof(BLConfig_t));
154d8: 1f 92 push r1
154da: 88 e0 ldi r24, 0x08 ; 8
154dc: 8f 93 push r24
154de: 8f e8 ldi r24, 0x8F ; 143
154e0: 99 e0 ldi r25, 0x09 ; 9
154e2: 9f 93 push r25
154e4: 8f 93 push r24
154e6: 1f 92 push r1
154e8: 21 e0 ldi r18, 0x01 ; 1
154ea: 2f 93 push r18
154ec: 80 91 f8 04 lds r24, 0x04F8
154f0: 8f 93 push r24
154f2: 80 91 f7 04 lds r24, 0x04F7
154f6: 8f 93 push r24
154f8: 1f 92 push r1
154fa: 2f 93 push r18
154fc: ce 01 movw r24, r28
154fe: 02 96 adiw r24, 0x02 ; 2
15500: 9f 93 push r25
15502: 8f 93 push r24
15504: 1f 92 push r1
15506: 2f 93 push r18
15508: 01 97 sbiw r24, 0x01 ; 1
1550a: 9f 93 push r25
1550c: 8f 93 push r24
1550e: 84 e0 ldi r24, 0x04 ; 4
15510: 8f 93 push r24
15512: 2f 93 push r18
15514: 85 e5 ldi r24, 0x55 ; 85
15516: 8f 93 push r24
15518: 96 dc rcall .-1748 ; 0x14e46 <SendOutData>
break;
1551a: 0f b6 in r0, 0x3f ; 63
1551c: f8 94 cli
1551e: de bf out 0x3e, r29 ; 62
15520: 0f be out 0x3f, r0 ; 63
15522: cd bf out 0x3d, r28 ; 61
15524: e0 c0 rjmp .+448 ; 0x156e6 <BearbeiteRxDaten+0x628>
case 'w': // write BL parameter
Debug("Writing BL %d", pRxData[0]);
15526: e0 91 f7 04 lds r30, 0x04F7
1552a: f0 91 f8 04 lds r31, 0x04F8
1552e: 80 81 ld r24, Z
15530: 1f 92 push r1
15532: 8f 93 push r24
15534: 87 e3 ldi r24, 0x37 ; 55
15536: 96 e1 ldi r25, 0x16 ; 22
15538: 9f 93 push r25
1553a: 8f 93 push r24
1553c: 88 e1 ldi r24, 0x18 ; 24
1553e: 93 e2 ldi r25, 0x23 ; 35
15540: 9f 93 push r25
15542: 8f 93 push r24
15544: e0 91 78 06 lds r30, 0x0678
15548: f0 91 79 06 lds r31, 0x0679
1554c: 09 95 icall
1554e: 80 e0 ldi r24, 0x00 ; 0
15550: 0e 94 2c 23 call 0x4658 ; 0x4658 <DebugSend>
if(RxDataLen >= 1+sizeof(BLConfig_t))
15554: 0f 90 pop r0
15556: 0f 90 pop r0
15558: 0f 90 pop r0
1555a: 0f 90 pop r0
1555c: 0f 90 pop r0
1555e: 0f 90 pop r0
15560: 80 91 f6 04 lds r24, 0x04F6
15564: 89 30 cpi r24, 0x09 ; 9
15566: 08 f4 brcc .+2 ; 0x1556a <BearbeiteRxDaten+0x4ac>
15568: be c0 rjmp .+380 ; 0x156e6 <BearbeiteRxDaten+0x628>
{
memcpy(&BLConfig, (uint8_t*)(&pRxData[1]), sizeof(BLConfig_t));
1556a: 80 91 f7 04 lds r24, 0x04F7
1556e: 90 91 f8 04 lds r25, 0x04F8
15572: 28 e0 ldi r18, 0x08 ; 8
15574: fc 01 movw r30, r24
15576: 31 96 adiw r30, 0x01 ; 1
15578: af e8 ldi r26, 0x8F ; 143
1557a: b9 e0 ldi r27, 0x09 ; 9
1557c: 01 90 ld r0, Z+
1557e: 0d 92 st X+, r0
15580: 2a 95 dec r18
15582: e1 f7 brne .-8 ; 0x1557c <BearbeiteRxDaten+0x4be>
tempchar2 = I2C_WriteBLConfig(pRxData[0]);
15584: fc 01 movw r30, r24
15586: 80 81 ld r24, Z
15588: 87 d9 rcall .-3314 ; 0x14898 <I2C_WriteBLConfig>
1558a: 8a 83 std Y+2, r24 ; 0x02
if(tempchar2 == BLCONFIG_SUCCESS) tempchar1 = 1;
1558c: 81 11 cpse r24, r1
1558e: 03 c0 rjmp .+6 ; 0x15596 <BearbeiteRxDaten+0x4d8>
15590: 81 e0 ldi r24, 0x01 ; 1
15592: 89 83 std Y+1, r24 ; 0x01
15594: 01 c0 rjmp .+2 ; 0x15598 <BearbeiteRxDaten+0x4da>
else tempchar1 = 0; // indicate error
15596: 19 82 std Y+1, r1 ; 0x01
while(!UebertragungAbgeschlossen); // wait for previous frame to be sent
15598: 80 91 b7 02 lds r24, 0x02B7
1559c: 88 23 and r24, r24
1559e: e1 f3 breq .-8 ; 0x15598 <BearbeiteRxDaten+0x4da>
SendOutData('W', FC_ADDRESS,2, &tempchar1, sizeof(tempchar1), &tempchar2, sizeof(tempchar2));
155a0: 1f 92 push r1
155a2: 21 e0 ldi r18, 0x01 ; 1
155a4: 2f 93 push r18
155a6: ce 01 movw r24, r28
155a8: 02 96 adiw r24, 0x02 ; 2
155aa: 9f 93 push r25
155ac: 8f 93 push r24
155ae: 1f 92 push r1
155b0: 2f 93 push r18
155b2: 01 97 sbiw r24, 0x01 ; 1
155b4: 9f 93 push r25
155b6: 8f 93 push r24
155b8: 82 e0 ldi r24, 0x02 ; 2
155ba: 8f 93 push r24
155bc: 2f 93 push r18
155be: 87 e5 ldi r24, 0x57 ; 87
155c0: 8f 93 push r24
155c2: 41 dc rcall .-1918 ; 0x14e46 <SendOutData>
155c4: 0f b6 in r0, 0x3f ; 63
155c6: f8 94 cli
155c8: de bf out 0x3e, r29 ; 62
155ca: 0f be out 0x3f, r0 ; 63
155cc: cd bf out 0x3d, r28 ; 61
155ce: 8b c0 rjmp .+278 ; 0x156e6 <BearbeiteRxDaten+0x628>
}
break;
case 'j':
if(MotorenEin) break;
155d0: 80 91 03 04 lds r24, 0x0403
155d4: 81 11 cpse r24, r1
155d6: 87 c0 rjmp .+270 ; 0x156e6 <BearbeiteRxDaten+0x628>
tempchar1 = LIBFC_GetCPUType();
155d8: 0e 94 1f 18 call 0x303e ; 0x303e <LIBFC_GetCPUType>
155dc: 89 83 std Y+1, r24 ; 0x01
if((tempchar1 == CPU_ATMEGA644P) || (tempchar1 == CPU_ATMEGA1284P))
155de: 82 30 cpi r24, 0x02 ; 2
155e0: 19 f0 breq .+6 ; 0x155e8 <BearbeiteRxDaten+0x52a>
155e2: 84 30 cpi r24, 0x04 ; 4
155e4: 09 f0 breq .+2 ; 0x155e8 <BearbeiteRxDaten+0x52a>
155e6: 7f c0 rjmp .+254 ; 0x156e6 <BearbeiteRxDaten+0x628>
{
uint16_t ubrr = (uint16_t) ((uint32_t) F_CPU/ (8 * 38400L) - 1);
 
cli();
155e8: f8 94 cli
 
// UART0 & UART1 disable RX and TX-Interrupt
UCSR0B &= ~((1 << RXCIE0)|(1 << TXCIE0));
155ea: a1 ec ldi r26, 0xC1 ; 193
155ec: b0 e0 ldi r27, 0x00 ; 0
155ee: 8c 91 ld r24, X
155f0: 8f 73 andi r24, 0x3F ; 63
155f2: 8c 93 st X, r24
UCSR1B &= ~((1 << RXCIE1)|(1 << TXCIE1));
155f4: e9 ec ldi r30, 0xC9 ; 201
155f6: f0 e0 ldi r31, 0x00 ; 0
155f8: 80 81 ld r24, Z
155fa: 8f 73 andi r24, 0x3F ; 63
155fc: 80 83 st Z, r24
 
// UART0 & UART1 disable receiver and transmitter
UCSR0B &= ~((1 << TXEN0) | (1 << RXEN0));
155fe: 8c 91 ld r24, X
15600: 87 7e andi r24, 0xE7 ; 231
15602: 8c 93 st X, r24
UCSR1B &= ~((1 << TXEN1) | (1 << RXEN1));
15604: 80 81 ld r24, Z
15606: 87 7e andi r24, 0xE7 ; 231
15608: 80 83 st Z, r24
 
// UART0 & UART1 flush receive buffer explicit
while ( UCSR1A & (1<<RXC1) ) UDR1;
1560a: 80 91 c8 00 lds r24, 0x00C8
1560e: 88 23 and r24, r24
15610: 44 f4 brge .+16 ; 0x15622 <BearbeiteRxDaten+0x564>
15612: ae ec ldi r26, 0xCE ; 206
15614: b0 e0 ldi r27, 0x00 ; 0
15616: e8 ec ldi r30, 0xC8 ; 200
15618: f0 e0 ldi r31, 0x00 ; 0
1561a: 8c 91 ld r24, X
1561c: 80 81 ld r24, Z
1561e: 88 23 and r24, r24
15620: e4 f3 brlt .-8 ; 0x1561a <BearbeiteRxDaten+0x55c>
while ( UCSR0A & (1<<RXC0) ) UDR0;
15622: 80 91 c0 00 lds r24, 0x00C0
15626: 88 23 and r24, r24
15628: 44 f4 brge .+16 ; 0x1563a <BearbeiteRxDaten+0x57c>
1562a: a6 ec ldi r26, 0xC6 ; 198
1562c: b0 e0 ldi r27, 0x00 ; 0
1562e: e0 ec ldi r30, 0xC0 ; 192
15630: f0 e0 ldi r31, 0x00 ; 0
15632: 8c 91 ld r24, X
15634: 80 81 ld r24, Z
15636: 88 23 and r24, r24
15638: e4 f3 brlt .-8 ; 0x15632 <BearbeiteRxDaten+0x574>
 
 
if(pRxData[0] == 1) ReceiverUpdateModeActive = 2;
1563a: e0 91 f7 04 lds r30, 0x04F7
1563e: f0 91 f8 04 lds r31, 0x04F8
15642: 80 81 ld r24, Z
15644: 81 30 cpi r24, 0x01 ; 1
15646: 21 f4 brne .+8 ; 0x15650 <BearbeiteRxDaten+0x592>
15648: 82 e0 ldi r24, 0x02 ; 2
1564a: 80 93 ec 04 sts 0x04EC, r24
1564e: 27 c0 rjmp .+78 ; 0x1569e <BearbeiteRxDaten+0x5e0>
else
{ // Jeti or HoTT update
//#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(pRxData[0] == 100) ubrr = (uint16_t) ((uint32_t) F_CPU/ (8 * 19200L) - 1); // HoTT
15650: 84 36 cpi r24, 0x64 ; 100
15652: 11 f0 breq .+4 ; 0x15658 <BearbeiteRxDaten+0x59a>
case 'j':
if(MotorenEin) break;
tempchar1 = LIBFC_GetCPUType();
if((tempchar1 == CPU_ATMEGA644P) || (tempchar1 == CPU_ATMEGA1284P))
{
uint16_t ubrr = (uint16_t) ((uint32_t) F_CPU/ (8 * 38400L) - 1);
15654: 80 e4 ldi r24, 0x40 ; 64
15656: 01 c0 rjmp .+2 ; 0x1565a <BearbeiteRxDaten+0x59c>
 
if(pRxData[0] == 1) ReceiverUpdateModeActive = 2;
else
{ // Jeti or HoTT update
//#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(pRxData[0] == 100) ubrr = (uint16_t) ((uint32_t) F_CPU/ (8 * 19200L) - 1); // HoTT
15658: 81 e8 ldi r24, 0x81 ; 129
//#endif
ReceiverUpdateModeActive = 1;
1565a: 91 e0 ldi r25, 0x01 ; 1
1565c: 90 93 ec 04 sts 0x04EC, r25
// UART0 & UART1 set baudrate
UBRR1H = (uint8_t)(ubrr>>8);
15660: ad ec ldi r26, 0xCD ; 205
15662: b0 e0 ldi r27, 0x00 ; 0
15664: 1c 92 st X, r1
UBRR1L = (uint8_t)ubrr;
15666: ec ec ldi r30, 0xCC ; 204
15668: f0 e0 ldi r31, 0x00 ; 0
1566a: 80 83 st Z, r24
UBRR0H = UBRR1H;
1566c: 8c 91 ld r24, X
1566e: 80 93 c5 00 sts 0x00C5, r24
UBRR0L = UBRR1L;
15672: 80 81 ld r24, Z
15674: 80 93 c4 00 sts 0x00C4, r24
// UART1 no parity
UCSR1C &= ~(1 << UPM11);
15678: ea ec ldi r30, 0xCA ; 202
1567a: f0 e0 ldi r31, 0x00 ; 0
1567c: 80 81 ld r24, Z
1567e: 8f 7d andi r24, 0xDF ; 223
15680: 80 83 st Z, r24
UCSR1C &= ~(1 << UPM10);
15682: 80 81 ld r24, Z
15684: 8f 7e andi r24, 0xEF ; 239
15686: 80 83 st Z, r24
// UART1 8-bit
UCSR1B &= ~(1 << UCSZ12);
15688: a9 ec ldi r26, 0xC9 ; 201
1568a: b0 e0 ldi r27, 0x00 ; 0
1568c: 8c 91 ld r24, X
1568e: 8b 7f andi r24, 0xFB ; 251
15690: 8c 93 st X, r24
UCSR1C |= (1 << UCSZ11);
15692: 80 81 ld r24, Z
15694: 84 60 ori r24, 0x04 ; 4
15696: 80 83 st Z, r24
UCSR1C |= (1 << UCSZ10);
15698: 80 81 ld r24, Z
1569a: 82 60 ori r24, 0x02 ; 2
1569c: 80 83 st Z, r24
}
// UART0 & UART1 1 stop bit
UCSR1C &= ~(1 << USBS1);
1569e: ea ec ldi r30, 0xCA ; 202
156a0: f0 e0 ldi r31, 0x00 ; 0
156a2: 80 81 ld r24, Z
156a4: 87 7f andi r24, 0xF7 ; 247
156a6: 80 83 st Z, r24
UCSR0C &= ~(1 << USBS0);
156a8: e2 ec ldi r30, 0xC2 ; 194
156aa: f0 e0 ldi r31, 0x00 ; 0
156ac: 80 81 ld r24, Z
156ae: 87 7f andi r24, 0xF7 ; 247
156b0: 80 83 st Z, r24
// UART1 clear 9th bit
UCSR1B &= ~(1<<TXB81);
156b2: e9 ec ldi r30, 0xC9 ; 201
156b4: f0 e0 ldi r31, 0x00 ; 0
156b6: 80 81 ld r24, Z
156b8: 8e 7f andi r24, 0xFE ; 254
156ba: 80 83 st Z, r24
// enable receiver and transmitter for UART0 and UART1
UCSR0B |= (1 << TXEN0) | (1 << RXEN0);
156bc: a1 ec ldi r26, 0xC1 ; 193
156be: b0 e0 ldi r27, 0x00 ; 0
156c0: 8c 91 ld r24, X
156c2: 88 61 ori r24, 0x18 ; 24
156c4: 8c 93 st X, r24
UCSR1B |= (1 << TXEN1) | (1 << RXEN1);
156c6: 80 81 ld r24, Z
156c8: 88 61 ori r24, 0x18 ; 24
156ca: 80 83 st Z, r24
// enable RX-Interrupt for UART0 and UART1
UCSR0B |= (1 << RXCIE0);
156cc: 8c 91 ld r24, X
156ce: 80 68 ori r24, 0x80 ; 128
156d0: 8c 93 st X, r24
UCSR1B |= (1 << RXCIE1);
156d2: 80 81 ld r24, Z
156d4: 80 68 ori r24, 0x80 ; 128
156d6: 80 83 st Z, r24
// disable other Interrupts
TIMSK0 = 0;
156d8: 10 92 6e 00 sts 0x006E, r1
TIMSK1 = 0;
156dc: 10 92 6f 00 sts 0x006F, r1
TIMSK2 = 0;
156e0: 10 92 70 00 sts 0x0070, r1
 
sei();
156e4: 78 94 sei
 
} // case FC_ADDRESS:
 
default: // any Slave Address
 
switch(RxdBuffer[2])
156e6: 80 91 8e 0a lds r24, 0x0A8E
156ea: 90 e0 ldi r25, 0x00 ; 0
156ec: fc 01 movw r30, r24
156ee: eb 54 subi r30, 0x4B ; 75
156f0: f1 09 sbc r31, r1
156f2: ec 32 cpi r30, 0x2C ; 44
156f4: f1 05 cpc r31, r1
156f6: 08 f0 brcs .+2 ; 0x156fa <BearbeiteRxDaten+0x63c>
156f8: 2d c1 rjmp .+602 ; 0x15954 <BearbeiteRxDaten+0x896>
156fa: ea 51 subi r30, 0x1A ; 26
156fc: ff 4f sbci r31, 0xFF ; 255
156fe: 27 c6 rjmp .+3150 ; 0x1634e <__tablejump2__>
//DebugOut.Analog[18] = tempchar1;
break;
#endif
// 't' comand placed here only for compatibility to BL
case 't':// Motortest
if(AnzahlEmpfangsBytes >= sizeof(MotorTest)) memcpy(&MotorTest[0], (unsigned char *)pRxData, sizeof(MotorTest));
15700: 80 91 f9 04 lds r24, 0x04F9
15704: 80 31 cpi r24, 0x10 ; 16
15706: 60 f0 brcs .+24 ; 0x15720 <BearbeiteRxDaten+0x662>
15708: e0 91 f7 04 lds r30, 0x04F7
1570c: f0 91 f8 04 lds r31, 0x04F8
15710: 80 e1 ldi r24, 0x10 ; 16
15712: a7 e6 ldi r26, 0x67 ; 103
15714: ba e0 ldi r27, 0x0A ; 10
15716: 01 90 ld r0, Z+
15718: 0d 92 st X+, r0
1571a: 8a 95 dec r24
1571c: e1 f7 brne .-8 ; 0x15716 <BearbeiteRxDaten+0x658>
1571e: 10 c0 rjmp .+32 ; 0x15740 <BearbeiteRxDaten+0x682>
else memcpy(&MotorTest[0], (unsigned char *)pRxData, 4);
15720: e0 91 f7 04 lds r30, 0x04F7
15724: f0 91 f8 04 lds r31, 0x04F8
15728: 80 81 ld r24, Z
1572a: 91 81 ldd r25, Z+1 ; 0x01
1572c: a2 81 ldd r26, Z+2 ; 0x02
1572e: b3 81 ldd r27, Z+3 ; 0x03
15730: 80 93 67 0a sts 0x0A67, r24
15734: 90 93 68 0a sts 0x0A68, r25
15738: a0 93 69 0a sts 0x0A69, r26
1573c: b0 93 6a 0a sts 0x0A6A, r27
while(!UebertragungAbgeschlossen);
15740: 80 91 b7 02 lds r24, 0x02B7
15744: 88 23 and r24, r24
15746: e1 f3 breq .-8 ; 0x15740 <BearbeiteRxDaten+0x682>
SendOutData('T', MeineSlaveAdresse, 0);
15748: 1f 92 push r1
1574a: 80 91 b4 02 lds r24, 0x02B4
1574e: 8f 93 push r24
15750: 84 e5 ldi r24, 0x54 ; 84
15752: 8f 93 push r24
15754: 78 db rcall .-2320 ; 0x14e46 <SendOutData>
PC_MotortestActive = 250;
15756: 8a ef ldi r24, 0xFA ; 250
15758: 80 93 f5 04 sts 0x04F5, r24
PcZugriff = 255;
1575c: 8f ef ldi r24, 0xFF ; 255
1575e: 80 93 b5 02 sts 0x02B5, r24
AboTimeOut = SetDelay(ABO_TIMEOUT);
15762: 80 ea ldi r24, 0xA0 ; 160
15764: 9f e0 ldi r25, 0x0F ; 15
15766: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
1576a: 90 93 ee 04 sts 0x04EE, r25
1576e: 80 93 ed 04 sts 0x04ED, r24
break;
15772: 0f 90 pop r0
15774: 0f 90 pop r0
15776: 0f 90 pop r0
15778: ed c0 rjmp .+474 ; 0x15954 <BearbeiteRxDaten+0x896>
// 'K' comand placed here only for compatibility to old MK3MAG software, that does not send the right Slave Address
case 'K':// Kompasswert
memcpy((unsigned char *)&KompassValue , (unsigned char *)pRxData, sizeof(KompassValue));
1577a: e0 91 f7 04 lds r30, 0x04F7
1577e: f0 91 f8 04 lds r31, 0x04F8
15782: 80 81 ld r24, Z
15784: 91 81 ldd r25, Z+1 ; 0x01
15786: 90 93 4f 01 sts 0x014F, r25
1578a: 80 93 4e 01 sts 0x014E, r24
// KompassRichtung = ((540 + KompassValue - KompassSollWert) % 360) - 180;
break;
1578e: e2 c0 rjmp .+452 ; 0x15954 <BearbeiteRxDaten+0x896>
case 'a':// Texte der Analogwerte
DebugTextAnforderung = pRxData[0];
15790: e0 91 f7 04 lds r30, 0x04F7
15794: f0 91 f8 04 lds r31, 0x04F8
15798: 80 81 ld r24, Z
if (DebugTextAnforderung > 31) DebugTextAnforderung = 31;
1579a: 80 32 cpi r24, 0x20 ; 32
1579c: 18 f4 brcc .+6 ; 0x157a4 <BearbeiteRxDaten+0x6e6>
case 'K':// Kompasswert
memcpy((unsigned char *)&KompassValue , (unsigned char *)pRxData, sizeof(KompassValue));
// KompassRichtung = ((540 + KompassValue - KompassSollWert) % 360) - 180;
break;
case 'a':// Texte der Analogwerte
DebugTextAnforderung = pRxData[0];
1579e: 80 93 b6 02 sts 0x02B6, r24
157a2: 03 c0 rjmp .+6 ; 0x157aa <BearbeiteRxDaten+0x6ec>
if (DebugTextAnforderung > 31) DebugTextAnforderung = 31;
157a4: 8f e1 ldi r24, 0x1F ; 31
157a6: 80 93 b6 02 sts 0x02B6, r24
PcZugriff = 255;
157aa: 8f ef ldi r24, 0xFF ; 255
157ac: 80 93 b5 02 sts 0x02B5, r24
break;
157b0: d1 c0 rjmp .+418 ; 0x15954 <BearbeiteRxDaten+0x896>
case 'b':
memcpy((unsigned char *)&ExternControl, (unsigned char *)pRxData, sizeof(ExternControl));
157b2: e0 91 f7 04 lds r30, 0x04F7
157b6: f0 91 f8 04 lds r31, 0x04F8
157ba: 8b e0 ldi r24, 0x0B ; 11
157bc: af e7 ldi r26, 0x7F ; 127
157be: ba e0 ldi r27, 0x0A ; 10
157c0: 01 90 ld r0, Z+
157c2: 0d 92 st X+, r0
157c4: 8a 95 dec r24
157c6: e1 f7 brne .-8 ; 0x157c0 <BearbeiteRxDaten+0x702>
ConfirmFrame = ExternControl.Frame;
157c8: 80 91 88 0a lds r24, 0x0A88
157cc: 80 93 88 0c sts 0x0C88, r24
PcZugriff = 255;
157d0: 8f ef ldi r24, 0xFF ; 255
157d2: 80 93 b5 02 sts 0x02B5, r24
break;
157d6: be c0 rjmp .+380 ; 0x15954 <BearbeiteRxDaten+0x896>
case 'c': // Poll the 3D-Data
if(!Intervall3D) { if(pRxData[0]) Timer3D = SetDelay(pRxData[0] * 10);}
157d8: 80 91 f1 04 lds r24, 0x04F1
157dc: 90 91 f2 04 lds r25, 0x04F2
157e0: 89 2b or r24, r25
157e2: c9 f4 brne .+50 ; 0x15816 <BearbeiteRxDaten+0x758>
157e4: e0 91 f7 04 lds r30, 0x04F7
157e8: f0 91 f8 04 lds r31, 0x04F8
157ec: 20 81 ld r18, Z
157ee: 22 23 and r18, r18
157f0: 91 f0 breq .+36 ; 0x15816 <BearbeiteRxDaten+0x758>
157f2: 30 e0 ldi r19, 0x00 ; 0
157f4: c9 01 movw r24, r18
157f6: 88 0f add r24, r24
157f8: 99 1f adc r25, r25
157fa: 22 0f add r18, r18
157fc: 33 1f adc r19, r19
157fe: 22 0f add r18, r18
15800: 33 1f adc r19, r19
15802: 22 0f add r18, r18
15804: 33 1f adc r19, r19
15806: 82 0f add r24, r18
15808: 93 1f adc r25, r19
1580a: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
1580e: 90 93 5a 0a sts 0x0A5A, r25
15812: 80 93 59 0a sts 0x0A59, r24
Intervall3D = pRxData[0] * 10;
15816: e0 91 f7 04 lds r30, 0x04F7
1581a: f0 91 f8 04 lds r31, 0x04F8
1581e: 80 81 ld r24, Z
15820: 90 e0 ldi r25, 0x00 ; 0
15822: 9c 01 movw r18, r24
15824: 22 0f add r18, r18
15826: 33 1f adc r19, r19
15828: 88 0f add r24, r24
1582a: 99 1f adc r25, r25
1582c: 88 0f add r24, r24
1582e: 99 1f adc r25, r25
15830: 88 0f add r24, r24
15832: 99 1f adc r25, r25
15834: 82 0f add r24, r18
15836: 93 1f adc r25, r19
15838: 90 93 f2 04 sts 0x04F2, r25
1583c: 80 93 f1 04 sts 0x04F1, r24
AboTimeOut = SetDelay(ABO_TIMEOUT);
15840: 80 ea ldi r24, 0xA0 ; 160
15842: 9f e0 ldi r25, 0x0F ; 15
15844: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
15848: 90 93 ee 04 sts 0x04EE, r25
1584c: 80 93 ed 04 sts 0x04ED, r24
break;
15850: 81 c0 rjmp .+258 ; 0x15954 <BearbeiteRxDaten+0x896>
case 'd': // Poll the debug data
PcZugriff = 255;
15852: 8f ef ldi r24, 0xFF ; 255
15854: 80 93 b5 02 sts 0x02B5, r24
DebugDataIntervall = (unsigned int)pRxData[0] * 10;
15858: e0 91 f7 04 lds r30, 0x04F7
1585c: f0 91 f8 04 lds r31, 0x04F8
15860: 20 81 ld r18, Z
15862: 30 e0 ldi r19, 0x00 ; 0
15864: c9 01 movw r24, r18
15866: 88 0f add r24, r24
15868: 99 1f adc r25, r25
1586a: 22 0f add r18, r18
1586c: 33 1f adc r19, r19
1586e: 22 0f add r18, r18
15870: 33 1f adc r19, r19
15872: 22 0f add r18, r18
15874: 33 1f adc r19, r19
15876: 82 0f add r24, r18
15878: 93 1f adc r25, r19
1587a: 90 93 f4 04 sts 0x04F4, r25
1587e: 80 93 f3 04 sts 0x04F3, r24
if(DebugDataIntervall > 0) DebugDataAnforderung = 1;
15882: 89 2b or r24, r25
15884: 19 f0 breq .+6 ; 0x1588c <BearbeiteRxDaten+0x7ce>
15886: 81 e0 ldi r24, 0x01 ; 1
15888: 80 93 00 05 sts 0x0500, r24
AboTimeOut = SetDelay(ABO_TIMEOUT);
1588c: 80 ea ldi r24, 0xA0 ; 160
1588e: 9f e0 ldi r25, 0x0F ; 15
15890: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
15894: 90 93 ee 04 sts 0x04EE, r25
15898: 80 93 ed 04 sts 0x04ED, r24
break;
1589c: 5b c0 rjmp .+182 ; 0x15954 <BearbeiteRxDaten+0x896>
 
case 'h':// x-1 Displayzeilen
PcZugriff = 255;
1589e: 8f ef ldi r24, 0xFF ; 255
158a0: 80 93 b5 02 sts 0x02B5, r24
if((pRxData[0] & 0x80) == 0x00) // old format
158a4: e0 91 f7 04 lds r30, 0x04F7
158a8: f0 91 f8 04 lds r31, 0x04F8
158ac: 80 81 ld r24, Z
158ae: 88 23 and r24, r24
158b0: 44 f0 brlt .+16 ; 0x158c2 <BearbeiteRxDaten+0x804>
{
DisplayLine = 2;
158b2: 82 e0 ldi r24, 0x02 ; 2
158b4: 80 93 fd 04 sts 0x04FD, r24
Display_Interval = 0;
158b8: 10 92 f0 04 sts 0x04F0, r1
158bc: 10 92 ef 04 sts 0x04EF, r1
158c0: 22 c0 rjmp .+68 ; 0x15906 <BearbeiteRxDaten+0x848>
}
else // new format
{
RemoteKeys |= ~pRxData[0];
158c2: 80 95 com r24
158c4: 90 91 a2 04 lds r25, 0x04A2
158c8: 89 2b or r24, r25
158ca: 80 93 a2 04 sts 0x04A2, r24
Display_Interval = (unsigned int)pRxData[1] * 10;
158ce: 81 81 ldd r24, Z+1 ; 0x01
158d0: 90 e0 ldi r25, 0x00 ; 0
158d2: 9c 01 movw r18, r24
158d4: 22 0f add r18, r18
158d6: 33 1f adc r19, r19
158d8: 88 0f add r24, r24
158da: 99 1f adc r25, r25
158dc: 88 0f add r24, r24
158de: 99 1f adc r25, r25
158e0: 88 0f add r24, r24
158e2: 99 1f adc r25, r25
158e4: 82 0f add r24, r18
158e6: 93 1f adc r25, r19
158e8: 90 93 f0 04 sts 0x04F0, r25
158ec: 80 93 ef 04 sts 0x04EF, r24
DisplayLine = 4;
158f0: 84 e0 ldi r24, 0x04 ; 4
158f2: 80 93 fd 04 sts 0x04FD, r24
AboTimeOut = SetDelay(ABO_TIMEOUT);
158f6: 80 ea ldi r24, 0xA0 ; 160
158f8: 9f e0 ldi r25, 0x0F ; 15
158fa: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
158fe: 90 93 ee 04 sts 0x04EE, r25
15902: 80 93 ed 04 sts 0x04ED, r24
}
DebugDisplayAnforderung = 1;
15906: 81 e0 ldi r24, 0x01 ; 1
15908: 80 93 01 05 sts 0x0501, r24
break;
1590c: 23 c0 rjmp .+70 ; 0x15954 <BearbeiteRxDaten+0x896>
 
case 'l':// x-1 Displayzeilen
PcZugriff = 255;
1590e: 8f ef ldi r24, 0xFF ; 255
15910: 80 93 b5 02 sts 0x02B5, r24
MenuePunkt = pRxData[0];
15914: e0 91 f7 04 lds r30, 0x04F7
15918: f0 91 f8 04 lds r31, 0x04F8
1591c: 80 81 ld r24, Z
1591e: 80 93 a3 04 sts 0x04A3, r24
DebugDisplayAnforderung1 = 1;
15922: 81 e0 ldi r24, 0x01 ; 1
15924: 80 93 02 05 sts 0x0502, r24
break;
15928: 15 c0 rjmp .+42 ; 0x15954 <BearbeiteRxDaten+0x896>
case 'v': // Version-Anforderung und Ausbaustufe
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(RxDataLen > 0 && pRxData[0] == 2) GetVersionAnforderung = 2;
1592a: 80 91 f6 04 lds r24, 0x04F6
1592e: 88 23 and r24, r24
15930: 51 f0 breq .+20 ; 0x15946 <BearbeiteRxDaten+0x888>
15932: e0 91 f7 04 lds r30, 0x04F7
15936: f0 91 f8 04 lds r31, 0x04F8
1593a: 80 81 ld r24, Z
1593c: 82 30 cpi r24, 0x02 ; 2
1593e: 19 f4 brne .+6 ; 0x15946 <BearbeiteRxDaten+0x888>
15940: 80 93 ff 04 sts 0x04FF, r24
15944: 07 c0 rjmp .+14 ; 0x15954 <BearbeiteRxDaten+0x896>
else
#endif
GetVersionAnforderung = 1;
15946: 81 e0 ldi r24, 0x01 ; 1
15948: 80 93 ff 04 sts 0x04FF, r24
1594c: 03 c0 rjmp .+6 ; 0x15954 <BearbeiteRxDaten+0x896>
break;
case 'g'://
GetExternalControl = 1;
1594e: 81 e0 ldi r24, 0x01 ; 1
15950: 80 93 03 05 sts 0x0503, r24
//unsupported command received
break;
}
break; // default:
}
NeuerDatensatzEmpfangen = 0;
15954: 10 92 fb 04 sts 0x04FB, r1
pRxData = 0;
15958: 10 92 f8 04 sts 0x04F8, r1
1595c: 10 92 f7 04 sts 0x04F7, r1
RxDataLen = 0;
15960: 10 92 f6 04 sts 0x04F6, r1
}
15964: 0f 90 pop r0
15966: 0f 90 pop r0
15968: df 91 pop r29
1596a: cf 91 pop r28
1596c: 08 95 ret
 
0001596e <uart_putchar>:
//Routine für die Serielle Ausgabe
void uart_putchar (char c)
//############################################################################
{
//Warten solange bis Zeichen gesendet wurde
loop_until_bit_is_set(UCSR0A, UDRE0);
1596e: e0 ec ldi r30, 0xC0 ; 192
15970: f0 e0 ldi r31, 0x00 ; 0
15972: 90 81 ld r25, Z
15974: 95 ff sbrs r25, 5
15976: fd cf rjmp .-6 ; 0x15972 <uart_putchar+0x4>
//Ausgabe des Zeichens
UDR0 = c;
15978: 80 93 c6 00 sts 0x00C6, r24
1597c: 08 95 ret
 
0001597e <UART_Init>:
//############################################################################
{
unsigned int ubrr = (unsigned int) ((unsigned long) F_CPU/(8 * USART0_BAUD) - 1);
 
//Enable TXEN im Register UCR TX-Data Enable & RX Enable
UCSR0B = (1 << TXEN0) | (1 << RXEN0);
1597e: e1 ec ldi r30, 0xC1 ; 193
15980: f0 e0 ldi r31, 0x00 ; 0
15982: 88 e1 ldi r24, 0x18 ; 24
15984: 80 83 st Z, r24
// UART Double Speed (U2X)
UCSR0A |= (1 << U2X0);
15986: a0 ec ldi r26, 0xC0 ; 192
15988: b0 e0 ldi r27, 0x00 ; 0
1598a: 8c 91 ld r24, X
1598c: 82 60 ori r24, 0x02 ; 2
1598e: 8c 93 st X, r24
// RX-Interrupt Freigabe
UCSR0B |= (1 << RXCIE0);
15990: 80 81 ld r24, Z
15992: 80 68 ori r24, 0x80 ; 128
15994: 80 83 st Z, r24
// TX-Interrupt Freigabe
UCSR0B |= (1 << TXCIE0);
15996: 80 81 ld r24, Z
15998: 80 64 ori r24, 0x40 ; 64
1599a: 80 83 st Z, r24
// USART0 Baud Rate Register
// set clock divider
UBRR0H = (uint8_t)(ubrr >> 8);
1599c: 10 92 c5 00 sts 0x00C5, r1
UBRR0L = (uint8_t)ubrr;
159a0: 8a e2 ldi r24, 0x2A ; 42
159a2: 80 93 c4 00 sts 0x00C4, r24
 
Debug_Timer = SetDelay(DebugDataIntervall);
159a6: 80 91 f3 04 lds r24, 0x04F3
159aa: 90 91 f4 04 lds r25, 0x04F4
159ae: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
159b2: 90 93 5c 0a sts 0x0A5C, r25
159b6: 80 93 5b 0a sts 0x0A5B, r24
Kompass_Timer = SetDelay(220);
159ba: 8c ed ldi r24, 0xDC ; 220
159bc: 90 e0 ldi r25, 0x00 ; 0
159be: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
159c2: 90 93 8b 0a sts 0x0A8B, r25
159c6: 80 93 8a 0a sts 0x0A8A, r24
 
VersionInfo.SWMajor = VERSION_MAJOR;
159ca: 82 e0 ldi r24, 0x02 ; 2
159cc: 80 93 5d 0a sts 0x0A5D, r24
VersionInfo.SWMinor = VERSION_MINOR;
159d0: 88 e0 ldi r24, 0x08 ; 8
159d2: 80 93 5e 0a sts 0x0A5E, r24
VersionInfo.SWPatch = VERSION_PATCH;
159d6: 10 92 61 0a sts 0x0A61, r1
VersionInfo.ProtoMajor = VERSION_SERIAL_MAJOR;
159da: 8b e0 ldi r24, 0x0B ; 11
159dc: 80 93 5f 0a sts 0x0A5F, r24
VersionInfo.reserved1 = 0;
159e0: 10 92 60 0a sts 0x0A60, r1
VersionInfo.BL_Firmware = 255;
159e4: 8f ef ldi r24, 0xFF ; 255
159e6: 80 93 65 0a sts 0x0A65, r24
VersionInfo.HWMajor = PlatinenVersion;
159ea: 80 91 54 01 lds r24, 0x0154
159ee: 80 93 64 0a sts 0x0A64, r24
pRxData = 0;
159f2: 10 92 f8 04 sts 0x04F8, r1
159f6: 10 92 f7 04 sts 0x04F7, r1
RxDataLen = 0;
159fa: 10 92 f6 04 sts 0x04F6, r1
159fe: 08 95 ret
 
00015a00 <DatenUebertragung>:
}
 
//---------------------------------------------------------------------------------------------
void DatenUebertragung(void)
{
15a00: cf 92 push r12
15a02: df 92 push r13
15a04: ef 92 push r14
15a06: ff 92 push r15
15a08: 0f 93 push r16
15a0a: 1f 93 push r17
15a0c: cf 93 push r28
15a0e: df 93 push r29
15a10: cd b7 in r28, 0x3d ; 61
15a12: de b7 in r29, 0x3e ; 62
15a14: 60 97 sbiw r28, 0x10 ; 16
15a16: 0f b6 in r0, 0x3f ; 63
15a18: f8 94 cli
15a1a: de bf out 0x3e, r29 ; 62
15a1c: 0f be out 0x3f, r0 ; 63
15a1e: cd bf out 0x3d, r28 ; 61
if(!UebertragungAbgeschlossen) return;
15a20: 80 91 b7 02 lds r24, 0x02B7
15a24: 88 23 and r24, r24
15a26: 09 f4 brne .+2 ; 0x15a2a <DatenUebertragung+0x2a>
15a28: e2 c2 rjmp .+1476 ; 0x15fee <DatenUebertragung+0x5ee>
 
if(CheckDelay(AboTimeOut))
15a2a: 80 91 ed 04 lds r24, 0x04ED
15a2e: 90 91 ee 04 lds r25, 0x04EE
15a32: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
15a36: 88 23 and r24, r24
15a38: 61 f0 breq .+24 ; 0x15a52 <DatenUebertragung+0x52>
{
Display_Interval = 0;
15a3a: 10 92 f0 04 sts 0x04F0, r1
15a3e: 10 92 ef 04 sts 0x04EF, r1
DebugDataIntervall = 0;
15a42: 10 92 f4 04 sts 0x04F4, r1
15a46: 10 92 f3 04 sts 0x04F3, r1
Intervall3D = 0;
15a4a: 10 92 f2 04 sts 0x04F2, r1
15a4e: 10 92 f1 04 sts 0x04F1, r1
}
 
if(((Display_Interval>0 && CheckDelay(Display_Timer)) || DebugDisplayAnforderung) && UebertragungAbgeschlossen)
15a52: 80 91 ef 04 lds r24, 0x04EF
15a56: 90 91 f0 04 lds r25, 0x04F0
15a5a: 89 2b or r24, r25
15a5c: 41 f0 breq .+16 ; 0x15a6e <DatenUebertragung+0x6e>
15a5e: 80 91 68 0b lds r24, 0x0B68
15a62: 90 91 69 0b lds r25, 0x0B69
15a66: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
15a6a: 81 11 cpse r24, r1
15a6c: 05 c0 rjmp .+10 ; 0x15a78 <DatenUebertragung+0x78>
15a6e: 80 91 01 05 lds r24, 0x0501
15a72: 88 23 and r24, r24
15a74: 09 f4 brne .+2 ; 0x15a78 <DatenUebertragung+0x78>
15a76: 5c c0 rjmp .+184 ; 0x15b30 <DatenUebertragung+0x130>
15a78: 80 91 b7 02 lds r24, 0x02B7
15a7c: 88 23 and r24, r24
15a7e: 09 f4 brne .+2 ; 0x15a82 <DatenUebertragung+0x82>
15a80: 57 c0 rjmp .+174 ; 0x15b30 <DatenUebertragung+0x130>
{
if(DisplayLine > 3)// new format
15a82: 80 91 fd 04 lds r24, 0x04FD
15a86: 84 30 cpi r24, 0x04 ; 4
15a88: a8 f0 brcs .+42 ; 0x15ab4 <DatenUebertragung+0xb4>
{
Menu();
15a8a: 0e 94 27 87 call 0x10e4e ; 0x10e4e <Menu>
SendOutData('H', FC_ADDRESS, 1, (uint8_t *)DisplayBuff, 80);
15a8e: 1f 92 push r1
15a90: 80 e5 ldi r24, 0x50 ; 80
15a92: 8f 93 push r24
15a94: 80 ee ldi r24, 0xE0 ; 224
15a96: 97 e0 ldi r25, 0x07 ; 7
15a98: 9f 93 push r25
15a9a: 8f 93 push r24
15a9c: 81 e0 ldi r24, 0x01 ; 1
15a9e: 8f 93 push r24
15aa0: 8f 93 push r24
15aa2: 88 e4 ldi r24, 0x48 ; 72
15aa4: 8f 93 push r24
15aa6: cf d9 rcall .-3170 ; 0x14e46 <SendOutData>
15aa8: 0f b6 in r0, 0x3f ; 63
15aaa: f8 94 cli
15aac: de bf out 0x3e, r29 ; 62
15aae: 0f be out 0x3f, r0 ; 63
15ab0: cd bf out 0x3d, r28 ; 61
15ab2: 32 c0 rjmp .+100 ; 0x15b18 <DatenUebertragung+0x118>
}
else // old format
{
LCD_printfxy(0,0,"!!! INCOMPATIBLE !!!");
15ab4: 10 92 a4 04 sts 0x04A4, r1
15ab8: 82 e2 ldi r24, 0x22 ; 34
15aba: 96 e1 ldi r25, 0x16 ; 22
15abc: 9f 93 push r25
15abe: 8f 93 push r24
15ac0: 80 e1 ldi r24, 0x10 ; 16
15ac2: 97 e8 ldi r25, 0x87 ; 135
15ac4: 9f 93 push r25
15ac6: 8f 93 push r24
15ac8: e0 91 78 06 lds r30, 0x0678
15acc: f0 91 79 06 lds r31, 0x0679
15ad0: 09 95 icall
SendOutData('H', FC_ADDRESS, 2, &DisplayLine, sizeof(DisplayLine), (uint8_t *)DisplayBuff, 20);
15ad2: 1f 92 push r1
15ad4: 84 e1 ldi r24, 0x14 ; 20
15ad6: 8f 93 push r24
15ad8: 80 ee ldi r24, 0xE0 ; 224
15ada: 97 e0 ldi r25, 0x07 ; 7
15adc: 9f 93 push r25
15ade: 8f 93 push r24
15ae0: 1f 92 push r1
15ae2: 21 e0 ldi r18, 0x01 ; 1
15ae4: 2f 93 push r18
15ae6: 8d ef ldi r24, 0xFD ; 253
15ae8: 94 e0 ldi r25, 0x04 ; 4
15aea: 9f 93 push r25
15aec: 8f 93 push r24
15aee: 82 e0 ldi r24, 0x02 ; 2
15af0: 8f 93 push r24
15af2: 2f 93 push r18
15af4: 88 e4 ldi r24, 0x48 ; 72
15af6: 8f 93 push r24
15af8: a6 d9 rcall .-3252 ; 0x14e46 <SendOutData>
if(DisplayLine++ > 3) DisplayLine = 0;
15afa: 80 91 fd 04 lds r24, 0x04FD
15afe: 0f b6 in r0, 0x3f ; 63
15b00: f8 94 cli
15b02: de bf out 0x3e, r29 ; 62
15b04: 0f be out 0x3f, r0 ; 63
15b06: cd bf out 0x3d, r28 ; 61
15b08: 84 30 cpi r24, 0x04 ; 4
15b0a: 20 f4 brcc .+8 ; 0x15b14 <DatenUebertragung+0x114>
15b0c: 8f 5f subi r24, 0xFF ; 255
15b0e: 80 93 fd 04 sts 0x04FD, r24
15b12: 02 c0 rjmp .+4 ; 0x15b18 <DatenUebertragung+0x118>
15b14: 10 92 fd 04 sts 0x04FD, r1
}
Display_Timer = SetDelay(Display_Interval);
15b18: 80 91 ef 04 lds r24, 0x04EF
15b1c: 90 91 f0 04 lds r25, 0x04F0
15b20: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
15b24: 90 93 69 0b sts 0x0B69, r25
15b28: 80 93 68 0b sts 0x0B68, r24
DebugDisplayAnforderung = 0;
15b2c: 10 92 01 05 sts 0x0501, r1
}
if(DebugDisplayAnforderung1 && UebertragungAbgeschlossen)
15b30: 80 91 02 05 lds r24, 0x0502
15b34: 88 23 and r24, r24
15b36: 39 f1 breq .+78 ; 0x15b86 <DatenUebertragung+0x186>
15b38: 80 91 b7 02 lds r24, 0x02B7
15b3c: 88 23 and r24, r24
15b3e: 19 f1 breq .+70 ; 0x15b86 <DatenUebertragung+0x186>
{
Menu();
15b40: 0e 94 27 87 call 0x10e4e ; 0x10e4e <Menu>
SendOutData('L', FC_ADDRESS, 3, &MenuePunkt, sizeof(MenuePunkt), &MaxMenue, sizeof(MaxMenue), DisplayBuff, sizeof(DisplayBuff));
15b44: 1f 92 push r1
15b46: 80 e5 ldi r24, 0x50 ; 80
15b48: 8f 93 push r24
15b4a: 80 ee ldi r24, 0xE0 ; 224
15b4c: 97 e0 ldi r25, 0x07 ; 7
15b4e: 9f 93 push r25
15b50: 8f 93 push r24
15b52: 1f 92 push r1
15b54: 21 e0 ldi r18, 0x01 ; 1
15b56: 2f 93 push r18
15b58: 80 e9 ldi r24, 0x90 ; 144
15b5a: 92 e0 ldi r25, 0x02 ; 2
15b5c: 9f 93 push r25
15b5e: 8f 93 push r24
15b60: 1f 92 push r1
15b62: 2f 93 push r18
15b64: 83 ea ldi r24, 0xA3 ; 163
15b66: 94 e0 ldi r25, 0x04 ; 4
15b68: 9f 93 push r25
15b6a: 8f 93 push r24
15b6c: 83 e0 ldi r24, 0x03 ; 3
15b6e: 8f 93 push r24
15b70: 2f 93 push r18
15b72: 8c e4 ldi r24, 0x4C ; 76
15b74: 8f 93 push r24
15b76: 67 d9 rcall .-3378 ; 0x14e46 <SendOutData>
DebugDisplayAnforderung1 = 0;
15b78: 10 92 02 05 sts 0x0502, r1
15b7c: 0f b6 in r0, 0x3f ; 63
15b7e: f8 94 cli
15b80: de bf out 0x3e, r29 ; 62
15b82: 0f be out 0x3f, r0 ; 63
15b84: cd bf out 0x3d, r28 ; 61
}
if(GetVersionAnforderung && UebertragungAbgeschlossen)
15b86: 80 91 ff 04 lds r24, 0x04FF
15b8a: 88 23 and r24, r24
15b8c: 09 f4 brne .+2 ; 0x15b90 <DatenUebertragung+0x190>
15b8e: 5b c0 rjmp .+182 ; 0x15c46 <DatenUebertragung+0x246>
15b90: 90 91 b7 02 lds r25, 0x02B7
15b94: 99 23 and r25, r25
15b96: 09 f4 brne .+2 ; 0x15b9a <DatenUebertragung+0x19a>
15b98: 56 c0 rjmp .+172 ; 0x15c46 <DatenUebertragung+0x246>
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(GetVersionAnforderung == 2) // poll version of NC
15b9a: 82 30 cpi r24, 0x02 ; 2
15b9c: 61 f5 brne .+88 ; 0x15bf6 <DatenUebertragung+0x1f6>
{
struct str_VersionInfo nc;
nc.SWMajor = NC_Version.Major;
15b9e: 80 91 e1 08 lds r24, 0x08E1
15ba2: 89 83 std Y+1, r24 ; 0x01
nc.SWMinor = NC_Version.Minor;
15ba4: 80 91 e2 08 lds r24, 0x08E2
15ba8: 8a 83 std Y+2, r24 ; 0x02
nc.SWPatch = NC_Version.Patch;
15baa: 80 91 e3 08 lds r24, 0x08E3
15bae: 8d 83 std Y+5, r24 ; 0x05
nc.HWMajor = NC_Version.Hardware;
15bb0: 80 91 e5 08 lds r24, 0x08E5
15bb4: 88 87 std Y+8, r24 ; 0x08
nc.HardwareError[0] = 0xff;
15bb6: 8f ef ldi r24, 0xFF ; 255
15bb8: 8e 83 std Y+6, r24 ; 0x06
nc.HardwareError[1] = 0xff;
15bba: 8f 83 std Y+7, r24 ; 0x07
nc.ProtoMajor = VersionInfo.ProtoMajor;
15bbc: 80 91 5f 0a lds r24, 0x0A5F
15bc0: 8b 83 std Y+3, r24 ; 0x03
nc.BL_Firmware = VersionInfo.BL_Firmware;
15bc2: 80 91 65 0a lds r24, 0x0A65
15bc6: 89 87 std Y+9, r24 ; 0x09
nc.Flags = VersionInfo.Flags;
15bc8: 80 91 66 0a lds r24, 0x0A66
15bcc: 8a 87 std Y+10, r24 ; 0x0a
nc.reserved1 = 0;
15bce: 1c 82 std Y+4, r1 ; 0x04
SendOutData('V', FC_ADDRESS, 1, (unsigned char *) &nc, sizeof(nc));
15bd0: 1f 92 push r1
15bd2: 8a e0 ldi r24, 0x0A ; 10
15bd4: 8f 93 push r24
15bd6: ce 01 movw r24, r28
15bd8: 01 96 adiw r24, 0x01 ; 1
15bda: 9f 93 push r25
15bdc: 8f 93 push r24
15bde: 81 e0 ldi r24, 0x01 ; 1
15be0: 8f 93 push r24
15be2: 8f 93 push r24
15be4: 86 e5 ldi r24, 0x56 ; 86
15be6: 8f 93 push r24
15be8: 2e d9 rcall .-3492 ; 0x14e46 <SendOutData>
15bea: 0f b6 in r0, 0x3f ; 63
15bec: f8 94 cli
15bee: de bf out 0x3e, r29 ; 62
15bf0: 0f be out 0x3f, r0 ; 63
15bf2: cd bf out 0x3d, r28 ; 61
15bf4: 12 c0 rjmp .+36 ; 0x15c1a <DatenUebertragung+0x21a>
}
else
#endif
{
SendOutData('V', FC_ADDRESS, 1, (unsigned char *) &VersionInfo, sizeof(VersionInfo));
15bf6: 1f 92 push r1
15bf8: 8a e0 ldi r24, 0x0A ; 10
15bfa: 8f 93 push r24
15bfc: 8d e5 ldi r24, 0x5D ; 93
15bfe: 9a e0 ldi r25, 0x0A ; 10
15c00: 9f 93 push r25
15c02: 8f 93 push r24
15c04: 81 e0 ldi r24, 0x01 ; 1
15c06: 8f 93 push r24
15c08: 8f 93 push r24
15c0a: 86 e5 ldi r24, 0x56 ; 86
15c0c: 8f 93 push r24
15c0e: 1b d9 rcall .-3530 ; 0x14e46 <SendOutData>
15c10: 0f b6 in r0, 0x3f ; 63
15c12: f8 94 cli
15c14: de bf out 0x3e, r29 ; 62
15c16: 0f be out 0x3f, r0 ; 63
15c18: cd bf out 0x3d, r28 ; 61
}
GetVersionAnforderung = 0;
15c1a: 10 92 ff 04 sts 0x04FF, r1
Debug_OK("Version gesendet");
15c1e: 81 e1 ldi r24, 0x11 ; 17
15c20: 96 e1 ldi r25, 0x16 ; 22
15c22: 9f 93 push r25
15c24: 8f 93 push r24
15c26: 88 e1 ldi r24, 0x18 ; 24
15c28: 93 e2 ldi r25, 0x23 ; 35
15c2a: 9f 93 push r25
15c2c: 8f 93 push r24
15c2e: e0 91 78 06 lds r30, 0x0678
15c32: f0 91 79 06 lds r31, 0x0679
15c36: 09 95 icall
15c38: 88 e0 ldi r24, 0x08 ; 8
15c3a: 0e 94 2c 23 call 0x4658 ; 0x4658 <DebugSend>
15c3e: 0f 90 pop r0
15c40: 0f 90 pop r0
15c42: 0f 90 pop r0
15c44: 0f 90 pop r0
}
 
if(GetExternalControl && UebertragungAbgeschlossen) // Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen
15c46: 80 91 03 05 lds r24, 0x0503
15c4a: 88 23 and r24, r24
15c4c: d1 f0 breq .+52 ; 0x15c82 <DatenUebertragung+0x282>
15c4e: 80 91 b7 02 lds r24, 0x02B7
15c52: 88 23 and r24, r24
15c54: b1 f0 breq .+44 ; 0x15c82 <DatenUebertragung+0x282>
{
SendOutData('G',MeineSlaveAdresse, 1, (unsigned char *) &ExternControl, sizeof(ExternControl));
15c56: 1f 92 push r1
15c58: 8b e0 ldi r24, 0x0B ; 11
15c5a: 8f 93 push r24
15c5c: 8f e7 ldi r24, 0x7F ; 127
15c5e: 9a e0 ldi r25, 0x0A ; 10
15c60: 9f 93 push r25
15c62: 8f 93 push r24
15c64: 81 e0 ldi r24, 0x01 ; 1
15c66: 8f 93 push r24
15c68: 80 91 b4 02 lds r24, 0x02B4
15c6c: 8f 93 push r24
15c6e: 87 e4 ldi r24, 0x47 ; 71
15c70: 8f 93 push r24
15c72: e9 d8 rcall .-3630 ; 0x14e46 <SendOutData>
GetExternalControl = 0;
15c74: 10 92 03 05 sts 0x0503, r1
15c78: 0f b6 in r0, 0x3f ; 63
15c7a: f8 94 cli
15c7c: de bf out 0x3e, r29 ; 62
15c7e: 0f be out 0x3f, r0 ; 63
15c80: cd bf out 0x3d, r28 ; 61
}
if(((DebugDataIntervall>0 && CheckDelay(Debug_Timer)) || DebugDataAnforderung) && UebertragungAbgeschlossen)
15c82: 80 91 f3 04 lds r24, 0x04F3
15c86: 90 91 f4 04 lds r25, 0x04F4
15c8a: 89 2b or r24, r25
15c8c: 41 f0 breq .+16 ; 0x15c9e <DatenUebertragung+0x29e>
15c8e: 80 91 5b 0a lds r24, 0x0A5B
15c92: 90 91 5c 0a lds r25, 0x0A5C
15c96: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
15c9a: 81 11 cpse r24, r1
15c9c: 04 c0 rjmp .+8 ; 0x15ca6 <DatenUebertragung+0x2a6>
15c9e: 80 91 00 05 lds r24, 0x0500
15ca2: 88 23 and r24, r24
15ca4: 31 f1 breq .+76 ; 0x15cf2 <DatenUebertragung+0x2f2>
15ca6: 80 91 b7 02 lds r24, 0x02B7
15caa: 88 23 and r24, r24
15cac: 11 f1 breq .+68 ; 0x15cf2 <DatenUebertragung+0x2f2>
{
CopyDebugValues();
15cae: 0e 94 c1 27 call 0x4f82 ; 0x4f82 <CopyDebugValues>
SendOutData('D', FC_ADDRESS, 1, (unsigned char *) &DebugOut,sizeof(DebugOut));
15cb2: 1f 92 push r1
15cb4: 82 e4 ldi r24, 0x42 ; 66
15cb6: 8f 93 push r24
15cb8: 86 e4 ldi r24, 0x46 ; 70
15cba: 9c e0 ldi r25, 0x0C ; 12
15cbc: 9f 93 push r25
15cbe: 8f 93 push r24
15cc0: 81 e0 ldi r24, 0x01 ; 1
15cc2: 8f 93 push r24
15cc4: 8f 93 push r24
15cc6: 84 e4 ldi r24, 0x44 ; 68
15cc8: 8f 93 push r24
15cca: bd d8 rcall .-3718 ; 0x14e46 <SendOutData>
DebugDataAnforderung = 0;
15ccc: 10 92 00 05 sts 0x0500, r1
if(DebugDataIntervall>0) Debug_Timer = SetDelay(DebugDataIntervall);
15cd0: 80 91 f3 04 lds r24, 0x04F3
15cd4: 90 91 f4 04 lds r25, 0x04F4
15cd8: 0f b6 in r0, 0x3f ; 63
15cda: f8 94 cli
15cdc: de bf out 0x3e, r29 ; 62
15cde: 0f be out 0x3f, r0 ; 63
15ce0: cd bf out 0x3d, r28 ; 61
15ce2: 00 97 sbiw r24, 0x00 ; 0
15ce4: 31 f0 breq .+12 ; 0x15cf2 <DatenUebertragung+0x2f2>
15ce6: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
15cea: 90 93 5c 0a sts 0x0A5C, r25
15cee: 80 93 5b 0a sts 0x0A5B, r24
}
if(Intervall3D > 0 && CheckDelay(Timer3D) && UebertragungAbgeschlossen)
15cf2: 80 91 f1 04 lds r24, 0x04F1
15cf6: 90 91 f2 04 lds r25, 0x04F2
15cfa: 89 2b or r24, r25
15cfc: 09 f4 brne .+2 ; 0x15d00 <DatenUebertragung+0x300>
15cfe: 9d c0 rjmp .+314 ; 0x15e3a <DatenUebertragung+0x43a>
15d00: 80 91 59 0a lds r24, 0x0A59
15d04: 90 91 5a 0a lds r25, 0x0A5A
15d08: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
15d0c: 88 23 and r24, r24
15d0e: 09 f4 brne .+2 ; 0x15d12 <DatenUebertragung+0x312>
15d10: 94 c0 rjmp .+296 ; 0x15e3a <DatenUebertragung+0x43a>
15d12: 80 91 b7 02 lds r24, 0x02B7
15d16: 88 23 and r24, r24
15d18: 09 f4 brne .+2 ; 0x15d1c <DatenUebertragung+0x31c>
15d1a: 8f c0 rjmp .+286 ; 0x15e3a <DatenUebertragung+0x43a>
{
Data3D.Winkel[0] = ToNaviCtrl.IntegralNick;//(int) (IntegralNick / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
15d1c: 0b e4 ldi r16, 0x4B ; 75
15d1e: 1a e0 ldi r17, 0x0A ; 10
15d20: 80 91 ea 08 lds r24, 0x08EA
15d24: 90 91 eb 08 lds r25, 0x08EB
15d28: f8 01 movw r30, r16
15d2a: 91 83 std Z+1, r25 ; 0x01
15d2c: 80 83 st Z, r24
Data3D.Winkel[1] = ToNaviCtrl.IntegralRoll;//(int) (IntegralRoll / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
15d2e: 80 91 ec 08 lds r24, 0x08EC
15d32: 90 91 ed 08 lds r25, 0x08ED
15d36: 90 93 4e 0a sts 0x0A4E, r25
15d3a: 80 93 4d 0a sts 0x0A4D, r24
Data3D.Winkel[2] = (int) ((10 * ErsatzKompass) / GIER_GRAD_FAKTOR);
15d3e: 80 91 6e 06 lds r24, 0x066E
15d42: 90 91 6f 06 lds r25, 0x066F
15d46: a0 91 70 06 lds r26, 0x0670
15d4a: b0 91 71 06 lds r27, 0x0671
15d4e: 88 0f add r24, r24
15d50: 99 1f adc r25, r25
15d52: aa 1f adc r26, r26
15d54: bb 1f adc r27, r27
15d56: ac 01 movw r20, r24
15d58: bd 01 movw r22, r26
15d5a: 44 0f add r20, r20
15d5c: 55 1f adc r21, r21
15d5e: 66 1f adc r22, r22
15d60: 77 1f adc r23, r23
15d62: 44 0f add r20, r20
15d64: 55 1f adc r21, r21
15d66: 66 1f adc r22, r22
15d68: 77 1f adc r23, r23
15d6a: 6c 01 movw r12, r24
15d6c: 7d 01 movw r14, r26
15d6e: c4 0e add r12, r20
15d70: d5 1e adc r13, r21
15d72: e6 1e adc r14, r22
15d74: f7 1e adc r15, r23
15d76: c7 01 movw r24, r14
15d78: b6 01 movw r22, r12
15d7a: 20 91 21 01 lds r18, 0x0121
15d7e: 30 91 22 01 lds r19, 0x0122
15d82: 40 91 23 01 lds r20, 0x0123
15d86: 50 91 24 01 lds r21, 0x0124
15d8a: c5 d2 rcall .+1418 ; 0x16316 <__divmodsi4>
15d8c: 30 93 50 0a sts 0x0A50, r19
15d90: 20 93 4f 0a sts 0x0A4F, r18
Data3D.Centroid[0] = SummeNick >> 9;
15d94: 80 91 26 04 lds r24, 0x0426
15d98: 90 91 27 04 lds r25, 0x0427
15d9c: a0 91 28 04 lds r26, 0x0428
15da0: b0 91 29 04 lds r27, 0x0429
15da4: 07 2e mov r0, r23
15da6: 79 e0 ldi r23, 0x09 ; 9
15da8: b5 95 asr r27
15daa: a7 95 ror r26
15dac: 97 95 ror r25
15dae: 87 95 ror r24
15db0: 7a 95 dec r23
15db2: d1 f7 brne .-12 ; 0x15da8 <DatenUebertragung+0x3a8>
15db4: 70 2d mov r23, r0
15db6: 80 93 51 0a sts 0x0A51, r24
Data3D.Centroid[1] = SummeRoll >> 9;
15dba: 80 91 22 04 lds r24, 0x0422
15dbe: 90 91 23 04 lds r25, 0x0423
15dc2: a0 91 24 04 lds r26, 0x0424
15dc6: b0 91 25 04 lds r27, 0x0425
15dca: 07 2e mov r0, r23
15dcc: 79 e0 ldi r23, 0x09 ; 9
15dce: b5 95 asr r27
15dd0: a7 95 ror r26
15dd2: 97 95 ror r25
15dd4: 87 95 ror r24
15dd6: 7a 95 dec r23
15dd8: d1 f7 brne .-12 ; 0x15dce <DatenUebertragung+0x3ce>
15dda: 70 2d mov r23, r0
15ddc: 80 93 52 0a sts 0x0A52, r24
Data3D.Centroid[2] = Mess_Integral_Gier >> 9;
15de0: 80 91 2e 04 lds r24, 0x042E
15de4: 90 91 2f 04 lds r25, 0x042F
15de8: a0 91 30 04 lds r26, 0x0430
15dec: b0 91 31 04 lds r27, 0x0431
15df0: 07 2e mov r0, r23
15df2: 79 e0 ldi r23, 0x09 ; 9
15df4: b5 95 asr r27
15df6: a7 95 ror r26
15df8: 97 95 ror r25
15dfa: 87 95 ror r24
15dfc: 7a 95 dec r23
15dfe: d1 f7 brne .-12 ; 0x15df4 <DatenUebertragung+0x3f4>
15e00: 70 2d mov r23, r0
15e02: 80 93 53 0a sts 0x0A53, r24
SendOutData('C', FC_ADDRESS, 1, (unsigned char *) &Data3D,sizeof(Data3D));
15e06: 1f 92 push r1
15e08: 8e e0 ldi r24, 0x0E ; 14
15e0a: 8f 93 push r24
15e0c: 1f 93 push r17
15e0e: 0f 93 push r16
15e10: 81 e0 ldi r24, 0x01 ; 1
15e12: 8f 93 push r24
15e14: 8f 93 push r24
15e16: 83 e4 ldi r24, 0x43 ; 67
15e18: 8f 93 push r24
15e1a: 15 d8 rcall .-4054 ; 0x14e46 <SendOutData>
Timer3D = SetDelay(Intervall3D);
15e1c: 80 91 f1 04 lds r24, 0x04F1
15e20: 90 91 f2 04 lds r25, 0x04F2
15e24: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
15e28: 90 93 5a 0a sts 0x0A5A, r25
15e2c: 80 93 59 0a sts 0x0A59, r24
15e30: 0f b6 in r0, 0x3f ; 63
15e32: f8 94 cli
15e34: de bf out 0x3e, r29 ; 62
15e36: 0f be out 0x3f, r0 ; 63
15e38: cd bf out 0x3d, r28 ; 61
}
if(DebugTextAnforderung != 255) // Texte für die Analogdaten
15e3a: 60 91 b6 02 lds r22, 0x02B6
15e3e: 6f 3f cpi r22, 0xFF ; 255
15e40: 41 f1 breq .+80 ; 0x15e92 <DatenUebertragung+0x492>
{
unsigned char label[16]; // local sram buffer
memcpy_P(label, ANALOG_TEXT[DebugTextAnforderung], 16); // read lable from flash to sra
15e42: 30 e1 ldi r19, 0x10 ; 16
15e44: 63 9f mul r22, r19
15e46: b0 01 movw r22, r0
15e48: 11 24 eor r1, r1
15e4a: 61 59 subi r22, 0x91 ; 145
15e4c: 79 4e sbci r23, 0xE9 ; 233
15e4e: 40 e1 ldi r20, 0x10 ; 16
15e50: 50 e0 ldi r21, 0x00 ; 0
15e52: 8e 01 movw r16, r28
15e54: 0f 5f subi r16, 0xFF ; 255
15e56: 1f 4f sbci r17, 0xFF ; 255
15e58: c8 01 movw r24, r16
15e5a: e1 d2 rcall .+1474 ; 0x1641e <memcpy_P>
SendOutData('A', FC_ADDRESS, 2, (unsigned char *)&DebugTextAnforderung, sizeof(DebugTextAnforderung),label, 16);
15e5c: 1f 92 push r1
15e5e: 80 e1 ldi r24, 0x10 ; 16
15e60: 8f 93 push r24
15e62: 1f 93 push r17
15e64: 0f 93 push r16
15e66: 1f 92 push r1
15e68: 21 e0 ldi r18, 0x01 ; 1
15e6a: 2f 93 push r18
15e6c: 86 eb ldi r24, 0xB6 ; 182
15e6e: 92 e0 ldi r25, 0x02 ; 2
15e70: 9f 93 push r25
15e72: 8f 93 push r24
15e74: 82 e0 ldi r24, 0x02 ; 2
15e76: 8f 93 push r24
15e78: 2f 93 push r18
15e7a: 81 e4 ldi r24, 0x41 ; 65
15e7c: 8f 93 push r24
15e7e: 0e 94 23 a7 call 0x14e46 ; 0x14e46 <SendOutData>
DebugTextAnforderung = 255;
15e82: 8f ef ldi r24, 0xFF ; 255
15e84: 80 93 b6 02 sts 0x02B6, r24
15e88: 0f b6 in r0, 0x3f ; 63
15e8a: f8 94 cli
15e8c: de bf out 0x3e, r29 ; 62
15e8e: 0f be out 0x3f, r0 ; 63
15e90: cd bf out 0x3d, r28 ; 61
}
if(ConfirmFrame && UebertragungAbgeschlossen) // Datensatz bestätigen
15e92: 80 91 88 0c lds r24, 0x0C88
15e96: 88 23 and r24, r24
15e98: c1 f0 breq .+48 ; 0x15eca <DatenUebertragung+0x4ca>
15e9a: 80 91 b7 02 lds r24, 0x02B7
15e9e: 88 23 and r24, r24
15ea0: a1 f0 breq .+40 ; 0x15eca <DatenUebertragung+0x4ca>
{
SendOutData('B', FC_ADDRESS, 1, (uint8_t*)&ConfirmFrame, sizeof(ConfirmFrame));
15ea2: 1f 92 push r1
15ea4: 21 e0 ldi r18, 0x01 ; 1
15ea6: 2f 93 push r18
15ea8: 88 e8 ldi r24, 0x88 ; 136
15eaa: 9c e0 ldi r25, 0x0C ; 12
15eac: 9f 93 push r25
15eae: 8f 93 push r24
15eb0: 2f 93 push r18
15eb2: 2f 93 push r18
15eb4: 82 e4 ldi r24, 0x42 ; 66
15eb6: 8f 93 push r24
15eb8: 0e 94 23 a7 call 0x14e46 ; 0x14e46 <SendOutData>
ConfirmFrame = 0;
15ebc: 10 92 88 0c sts 0x0C88, r1
15ec0: 0f b6 in r0, 0x3f ; 63
15ec2: f8 94 cli
15ec4: de bf out 0x3e, r29 ; 62
15ec6: 0f be out 0x3f, r0 ; 63
15ec8: cd bf out 0x3d, r28 ; 61
}
if(GetPPMChannelAnforderung && UebertragungAbgeschlossen)
15eca: 80 91 fe 04 lds r24, 0x04FE
15ece: 88 23 and r24, r24
15ed0: c9 f0 breq .+50 ; 0x15f04 <DatenUebertragung+0x504>
15ed2: 80 91 b7 02 lds r24, 0x02B7
15ed6: 88 23 and r24, r24
15ed8: a9 f0 breq .+42 ; 0x15f04 <DatenUebertragung+0x504>
{
SendOutData('P', FC_ADDRESS, 1, (unsigned char *) &PPM_in, sizeof(PPM_in));
15eda: 1f 92 push r1
15edc: 86 e4 ldi r24, 0x46 ; 70
15ede: 8f 93 push r24
15ee0: 81 e3 ldi r24, 0x31 ; 49
15ee2: 98 e0 ldi r25, 0x08 ; 8
15ee4: 9f 93 push r25
15ee6: 8f 93 push r24
15ee8: 81 e0 ldi r24, 0x01 ; 1
15eea: 8f 93 push r24
15eec: 8f 93 push r24
15eee: 80 e5 ldi r24, 0x50 ; 80
15ef0: 8f 93 push r24
15ef2: 0e 94 23 a7 call 0x14e46 ; 0x14e46 <SendOutData>
GetPPMChannelAnforderung = 0;
15ef6: 10 92 fe 04 sts 0x04FE, r1
15efa: 0f b6 in r0, 0x3f ; 63
15efc: f8 94 cli
15efe: de bf out 0x3e, r29 ; 62
15f00: 0f be out 0x3f, r0 ; 63
15f02: cd bf out 0x3d, r28 ; 61
}
#ifndef REDUNDANT_FC_SLAVE
if((CheckDelay(Kompass_Timer)) && UebertragungAbgeschlossen)
15f04: 80 91 8a 0a lds r24, 0x0A8A
15f08: 90 91 8b 0a lds r25, 0x0A8B
15f0c: 0e 94 63 9c call 0x138c6 ; 0x138c6 <CheckDelay>
15f10: 88 23 and r24, r24
15f12: 09 f4 brne .+2 ; 0x15f16 <DatenUebertragung+0x516>
15f14: 4f c0 rjmp .+158 ; 0x15fb4 <DatenUebertragung+0x5b4>
15f16: 80 91 b7 02 lds r24, 0x02B7
15f1a: 88 23 and r24, r24
15f1c: 09 f4 brne .+2 ; 0x15f20 <DatenUebertragung+0x520>
15f1e: 4a c0 rjmp .+148 ; 0x15fb4 <DatenUebertragung+0x5b4>
{
if(!NaviDataOkay) // no external compass needed
15f20: 80 91 a4 02 lds r24, 0x02A4
15f24: 81 11 cpse r24, r1
15f26: 2a c0 rjmp .+84 ; 0x15f7c <DatenUebertragung+0x57c>
{
WinkelOut.Winkel[0] = ToNaviCtrl.IntegralNick;//(int) (IntegralNick / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
15f28: e7 e7 ldi r30, 0x77 ; 119
15f2a: fa e0 ldi r31, 0x0A ; 10
15f2c: 80 91 ea 08 lds r24, 0x08EA
15f30: 90 91 eb 08 lds r25, 0x08EB
15f34: 91 83 std Z+1, r25 ; 0x01
15f36: 80 83 st Z, r24
WinkelOut.Winkel[1] = ToNaviCtrl.IntegralRoll;//(int) (IntegralRoll / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
15f38: 80 91 ec 08 lds r24, 0x08EC
15f3c: 90 91 ed 08 lds r25, 0x08ED
15f40: 90 93 7a 0a sts 0x0A7A, r25
15f44: 80 93 79 0a sts 0x0A79, r24
WinkelOut.UserParameter[0] = Parameter_UserParam1;
15f48: 80 91 e0 03 lds r24, 0x03E0
15f4c: 80 93 7b 0a sts 0x0A7B, r24
WinkelOut.UserParameter[1] = Parameter_UserParam2;
15f50: 80 91 df 03 lds r24, 0x03DF
15f54: 80 93 7c 0a sts 0x0A7C, r24
SendOutData('k', MK3MAG_ADDRESS, 1, (unsigned char *) &WinkelOut,sizeof(WinkelOut));
15f58: 1f 92 push r1
15f5a: 88 e0 ldi r24, 0x08 ; 8
15f5c: 8f 93 push r24
15f5e: ff 93 push r31
15f60: ef 93 push r30
15f62: 81 e0 ldi r24, 0x01 ; 1
15f64: 8f 93 push r24
15f66: 83 e0 ldi r24, 0x03 ; 3
15f68: 8f 93 push r24
15f6a: 8b e6 ldi r24, 0x6B ; 107
15f6c: 8f 93 push r24
15f6e: 0e 94 23 a7 call 0x14e46 ; 0x14e46 <SendOutData>
15f72: 0f b6 in r0, 0x3f ; 63
15f74: f8 94 cli
15f76: de bf out 0x3e, r29 ; 62
15f78: 0f be out 0x3f, r0 ; 63
15f7a: cd bf out 0x3d, r28 ; 61
}
if(WinkelOut.CalcState > 4) WinkelOut.CalcState = 6; // wird dann in SPI auf Null gesetzt
15f7c: 80 91 7d 0a lds r24, 0x0A7D
15f80: 85 30 cpi r24, 0x05 ; 5
15f82: 18 f0 brcs .+6 ; 0x15f8a <DatenUebertragung+0x58a>
15f84: 86 e0 ldi r24, 0x06 ; 6
15f86: 80 93 7d 0a sts 0x0A7D, r24
if(JustMK3MagConnected) Kompass_Timer = SetDelay(99);
15f8a: 80 91 ca 04 lds r24, 0x04CA
15f8e: 88 23 and r24, r24
15f90: 49 f0 breq .+18 ; 0x15fa4 <DatenUebertragung+0x5a4>
15f92: 83 e6 ldi r24, 0x63 ; 99
15f94: 90 e0 ldi r25, 0x00 ; 0
15f96: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
15f9a: 90 93 8b 0a sts 0x0A8B, r25
15f9e: 80 93 8a 0a sts 0x0A8A, r24
15fa2: 08 c0 rjmp .+16 ; 0x15fb4 <DatenUebertragung+0x5b4>
else Kompass_Timer = SetDelay(999);
15fa4: 87 ee ldi r24, 0xE7 ; 231
15fa6: 93 e0 ldi r25, 0x03 ; 3
15fa8: 0e 94 5a 9c call 0x138b4 ; 0x138b4 <SetDelay>
15fac: 90 93 8b 0a sts 0x0A8B, r25
15fb0: 80 93 8a 0a sts 0x0A8A, r24
SendOutData('!', FC_ADDRESS, 1, (unsigned char *) &SendRedundantMotor, RequiredMotors+1);
}
#endif
 
#ifdef DEBUG // only include functions if DEBUG is defined
if(SendDebugOutput && UebertragungAbgeschlossen)
15fb4: 80 91 76 03 lds r24, 0x0376
15fb8: 88 23 and r24, r24
15fba: c9 f0 breq .+50 ; 0x15fee <DatenUebertragung+0x5ee>
15fbc: 80 91 b7 02 lds r24, 0x02B7
15fc0: 88 23 and r24, r24
15fc2: a9 f0 breq .+42 ; 0x15fee <DatenUebertragung+0x5ee>
{
SendOutData('0', FC_ADDRESS, 1, (unsigned char *) &tDebug, sizeof(tDebug));
15fc4: 1f 92 push r1
15fc6: 81 e2 ldi r24, 0x21 ; 33
15fc8: 8f 93 push r24
15fca: 8c e1 ldi r24, 0x1C ; 28
15fcc: 95 e0 ldi r25, 0x05 ; 5
15fce: 9f 93 push r25
15fd0: 8f 93 push r24
15fd2: 81 e0 ldi r24, 0x01 ; 1
15fd4: 8f 93 push r24
15fd6: 8f 93 push r24
15fd8: 80 e3 ldi r24, 0x30 ; 48
15fda: 8f 93 push r24
15fdc: 0e 94 23 a7 call 0x14e46 ; 0x14e46 <SendOutData>
SendDebugOutput = 0;
15fe0: 10 92 76 03 sts 0x0376, r1
15fe4: 0f b6 in r0, 0x3f ; 63
15fe6: f8 94 cli
15fe8: de bf out 0x3e, r29 ; 62
15fea: 0f be out 0x3f, r0 ; 63
15fec: cd bf out 0x3d, r28 ; 61
}
#endif
}
15fee: 60 96 adiw r28, 0x10 ; 16
15ff0: 0f b6 in r0, 0x3f ; 63
15ff2: f8 94 cli
15ff4: de bf out 0x3e, r29 ; 62
15ff6: 0f be out 0x3f, r0 ; 63
15ff8: cd bf out 0x3d, r28 ; 61
15ffa: df 91 pop r29
15ffc: cf 91 pop r28
15ffe: 1f 91 pop r17
16000: 0f 91 pop r16
16002: ff 90 pop r15
16004: ef 90 pop r14
16006: df 90 pop r13
16008: cf 90 pop r12
1600a: 08 95 ret
 
0001600c <User_Receiver_Init>:
 
//############################################################################
// Initialize the UART here
//############################################################################
void User_Receiver_Init(void)
{
1600c: 08 95 ret
 
0001600e <User_RX_Parser>:
//############################################################################
// Is called by the uart RX interrupt
// UDR contains the received byte
//############################################################################
void User_RX_Parser(unsigned char udr)
{
1600e: 08 95 ret
 
00016010 <__subsf3>:
16010: 50 58 subi r21, 0x80 ; 128
 
00016012 <__addsf3>:
16012: bb 27 eor r27, r27
16014: aa 27 eor r26, r26
16016: 0e d0 rcall .+28 ; 0x16034 <__addsf3x>
16018: e0 c0 rjmp .+448 ; 0x161da <__fp_round>
1601a: d1 d0 rcall .+418 ; 0x161be <__fp_pscA>
1601c: 30 f0 brcs .+12 ; 0x1602a <__addsf3+0x18>
1601e: d6 d0 rcall .+428 ; 0x161cc <__fp_pscB>
16020: 20 f0 brcs .+8 ; 0x1602a <__addsf3+0x18>
16022: 31 f4 brne .+12 ; 0x16030 <__addsf3+0x1e>
16024: 9f 3f cpi r25, 0xFF ; 255
16026: 11 f4 brne .+4 ; 0x1602c <__addsf3+0x1a>
16028: 1e f4 brtc .+6 ; 0x16030 <__addsf3+0x1e>
1602a: c6 c0 rjmp .+396 ; 0x161b8 <__fp_nan>
1602c: 0e f4 brtc .+2 ; 0x16030 <__addsf3+0x1e>
1602e: e0 95 com r30
16030: e7 fb bst r30, 7
16032: bc c0 rjmp .+376 ; 0x161ac <__fp_inf>
 
00016034 <__addsf3x>:
16034: e9 2f mov r30, r25
16036: e2 d0 rcall .+452 ; 0x161fc <__fp_split3>
16038: 80 f3 brcs .-32 ; 0x1601a <__addsf3+0x8>
1603a: ba 17 cp r27, r26
1603c: 62 07 cpc r22, r18
1603e: 73 07 cpc r23, r19
16040: 84 07 cpc r24, r20
16042: 95 07 cpc r25, r21
16044: 18 f0 brcs .+6 ; 0x1604c <__addsf3x+0x18>
16046: 71 f4 brne .+28 ; 0x16064 <__addsf3x+0x30>
16048: 9e f5 brtc .+102 ; 0x160b0 <__addsf3x+0x7c>
1604a: fa c0 rjmp .+500 ; 0x16240 <__fp_zero>
1604c: 0e f4 brtc .+2 ; 0x16050 <__addsf3x+0x1c>
1604e: e0 95 com r30
16050: 0b 2e mov r0, r27
16052: ba 2f mov r27, r26
16054: a0 2d mov r26, r0
16056: 0b 01 movw r0, r22
16058: b9 01 movw r22, r18
1605a: 90 01 movw r18, r0
1605c: 0c 01 movw r0, r24
1605e: ca 01 movw r24, r20
16060: a0 01 movw r20, r0
16062: 11 24 eor r1, r1
16064: ff 27 eor r31, r31
16066: 59 1b sub r21, r25
16068: 99 f0 breq .+38 ; 0x16090 <__addsf3x+0x5c>
1606a: 59 3f cpi r21, 0xF9 ; 249
1606c: 50 f4 brcc .+20 ; 0x16082 <__addsf3x+0x4e>
1606e: 50 3e cpi r21, 0xE0 ; 224
16070: 68 f1 brcs .+90 ; 0x160cc <__addsf3x+0x98>
16072: 1a 16 cp r1, r26
16074: f0 40 sbci r31, 0x00 ; 0
16076: a2 2f mov r26, r18
16078: 23 2f mov r18, r19
1607a: 34 2f mov r19, r20
1607c: 44 27 eor r20, r20
1607e: 58 5f subi r21, 0xF8 ; 248
16080: f3 cf rjmp .-26 ; 0x16068 <__addsf3x+0x34>
16082: 46 95 lsr r20
16084: 37 95 ror r19
16086: 27 95 ror r18
16088: a7 95 ror r26
1608a: f0 40 sbci r31, 0x00 ; 0
1608c: 53 95 inc r21
1608e: c9 f7 brne .-14 ; 0x16082 <__addsf3x+0x4e>
16090: 7e f4 brtc .+30 ; 0x160b0 <__addsf3x+0x7c>
16092: 1f 16 cp r1, r31
16094: ba 0b sbc r27, r26
16096: 62 0b sbc r22, r18
16098: 73 0b sbc r23, r19
1609a: 84 0b sbc r24, r20
1609c: ba f0 brmi .+46 ; 0x160cc <__addsf3x+0x98>
1609e: 91 50 subi r25, 0x01 ; 1
160a0: a1 f0 breq .+40 ; 0x160ca <__addsf3x+0x96>
160a2: ff 0f add r31, r31
160a4: bb 1f adc r27, r27
160a6: 66 1f adc r22, r22
160a8: 77 1f adc r23, r23
160aa: 88 1f adc r24, r24
160ac: c2 f7 brpl .-16 ; 0x1609e <__addsf3x+0x6a>
160ae: 0e c0 rjmp .+28 ; 0x160cc <__addsf3x+0x98>
160b0: ba 0f add r27, r26
160b2: 62 1f adc r22, r18
160b4: 73 1f adc r23, r19
160b6: 84 1f adc r24, r20
160b8: 48 f4 brcc .+18 ; 0x160cc <__addsf3x+0x98>
160ba: 87 95 ror r24
160bc: 77 95 ror r23
160be: 67 95 ror r22
160c0: b7 95 ror r27
160c2: f7 95 ror r31
160c4: 9e 3f cpi r25, 0xFE ; 254
160c6: 08 f0 brcs .+2 ; 0x160ca <__addsf3x+0x96>
160c8: b3 cf rjmp .-154 ; 0x16030 <__addsf3+0x1e>
160ca: 93 95 inc r25
160cc: 88 0f add r24, r24
160ce: 08 f0 brcs .+2 ; 0x160d2 <__addsf3x+0x9e>
160d0: 99 27 eor r25, r25
160d2: ee 0f add r30, r30
160d4: 97 95 ror r25
160d6: 87 95 ror r24
160d8: 08 95 ret
 
000160da <__fixunssfsi>:
160da: 98 d0 rcall .+304 ; 0x1620c <__fp_splitA>
160dc: 88 f0 brcs .+34 ; 0x16100 <__fixunssfsi+0x26>
160de: 9f 57 subi r25, 0x7F ; 127
160e0: 90 f0 brcs .+36 ; 0x16106 <__fixunssfsi+0x2c>
160e2: b9 2f mov r27, r25
160e4: 99 27 eor r25, r25
160e6: b7 51 subi r27, 0x17 ; 23
160e8: a0 f0 brcs .+40 ; 0x16112 <__fixunssfsi+0x38>
160ea: d1 f0 breq .+52 ; 0x16120 <__fixunssfsi+0x46>
160ec: 66 0f add r22, r22
160ee: 77 1f adc r23, r23
160f0: 88 1f adc r24, r24
160f2: 99 1f adc r25, r25
160f4: 1a f0 brmi .+6 ; 0x160fc <__fixunssfsi+0x22>
160f6: ba 95 dec r27
160f8: c9 f7 brne .-14 ; 0x160ec <__fixunssfsi+0x12>
160fa: 12 c0 rjmp .+36 ; 0x16120 <__fixunssfsi+0x46>
160fc: b1 30 cpi r27, 0x01 ; 1
160fe: 81 f0 breq .+32 ; 0x16120 <__fixunssfsi+0x46>
16100: 9f d0 rcall .+318 ; 0x16240 <__fp_zero>
16102: b1 e0 ldi r27, 0x01 ; 1
16104: 08 95 ret
16106: 9c c0 rjmp .+312 ; 0x16240 <__fp_zero>
16108: 67 2f mov r22, r23
1610a: 78 2f mov r23, r24
1610c: 88 27 eor r24, r24
1610e: b8 5f subi r27, 0xF8 ; 248
16110: 39 f0 breq .+14 ; 0x16120 <__fixunssfsi+0x46>
16112: b9 3f cpi r27, 0xF9 ; 249
16114: cc f3 brlt .-14 ; 0x16108 <__fixunssfsi+0x2e>
16116: 86 95 lsr r24
16118: 77 95 ror r23
1611a: 67 95 ror r22
1611c: b3 95 inc r27
1611e: d9 f7 brne .-10 ; 0x16116 <__fixunssfsi+0x3c>
16120: 3e f4 brtc .+14 ; 0x16130 <__fixunssfsi+0x56>
16122: 90 95 com r25
16124: 80 95 com r24
16126: 70 95 com r23
16128: 61 95 neg r22
1612a: 7f 4f sbci r23, 0xFF ; 255
1612c: 8f 4f sbci r24, 0xFF ; 255
1612e: 9f 4f sbci r25, 0xFF ; 255
16130: 08 95 ret
 
00016132 <__floatunsisf>:
16132: e8 94 clt
16134: 09 c0 rjmp .+18 ; 0x16148 <__floatsisf+0x12>
 
00016136 <__floatsisf>:
16136: 97 fb bst r25, 7
16138: 3e f4 brtc .+14 ; 0x16148 <__floatsisf+0x12>
1613a: 90 95 com r25
1613c: 80 95 com r24
1613e: 70 95 com r23
16140: 61 95 neg r22
16142: 7f 4f sbci r23, 0xFF ; 255
16144: 8f 4f sbci r24, 0xFF ; 255
16146: 9f 4f sbci r25, 0xFF ; 255
16148: 99 23 and r25, r25
1614a: a9 f0 breq .+42 ; 0x16176 <__floatsisf+0x40>
1614c: f9 2f mov r31, r25
1614e: 96 e9 ldi r25, 0x96 ; 150
16150: bb 27 eor r27, r27
16152: 93 95 inc r25
16154: f6 95 lsr r31
16156: 87 95 ror r24
16158: 77 95 ror r23
1615a: 67 95 ror r22
1615c: b7 95 ror r27
1615e: f1 11 cpse r31, r1
16160: f8 cf rjmp .-16 ; 0x16152 <__floatsisf+0x1c>
16162: fa f4 brpl .+62 ; 0x161a2 <__floatsisf+0x6c>
16164: bb 0f add r27, r27
16166: 11 f4 brne .+4 ; 0x1616c <__floatsisf+0x36>
16168: 60 ff sbrs r22, 0
1616a: 1b c0 rjmp .+54 ; 0x161a2 <__floatsisf+0x6c>
1616c: 6f 5f subi r22, 0xFF ; 255
1616e: 7f 4f sbci r23, 0xFF ; 255
16170: 8f 4f sbci r24, 0xFF ; 255
16172: 9f 4f sbci r25, 0xFF ; 255
16174: 16 c0 rjmp .+44 ; 0x161a2 <__floatsisf+0x6c>
16176: 88 23 and r24, r24
16178: 11 f0 breq .+4 ; 0x1617e <__floatsisf+0x48>
1617a: 96 e9 ldi r25, 0x96 ; 150
1617c: 11 c0 rjmp .+34 ; 0x161a0 <__floatsisf+0x6a>
1617e: 77 23 and r23, r23
16180: 21 f0 breq .+8 ; 0x1618a <__floatsisf+0x54>
16182: 9e e8 ldi r25, 0x8E ; 142
16184: 87 2f mov r24, r23
16186: 76 2f mov r23, r22
16188: 05 c0 rjmp .+10 ; 0x16194 <__floatsisf+0x5e>
1618a: 66 23 and r22, r22
1618c: 71 f0 breq .+28 ; 0x161aa <__floatsisf+0x74>
1618e: 96 e8 ldi r25, 0x86 ; 134
16190: 86 2f mov r24, r22
16192: 70 e0 ldi r23, 0x00 ; 0
16194: 60 e0 ldi r22, 0x00 ; 0
16196: 2a f0 brmi .+10 ; 0x161a2 <__floatsisf+0x6c>
16198: 9a 95 dec r25
1619a: 66 0f add r22, r22
1619c: 77 1f adc r23, r23
1619e: 88 1f adc r24, r24
161a0: da f7 brpl .-10 ; 0x16198 <__floatsisf+0x62>
161a2: 88 0f add r24, r24
161a4: 96 95 lsr r25
161a6: 87 95 ror r24
161a8: 97 f9 bld r25, 7
161aa: 08 95 ret
 
000161ac <__fp_inf>:
161ac: 97 f9 bld r25, 7
161ae: 9f 67 ori r25, 0x7F ; 127
161b0: 80 e8 ldi r24, 0x80 ; 128
161b2: 70 e0 ldi r23, 0x00 ; 0
161b4: 60 e0 ldi r22, 0x00 ; 0
161b6: 08 95 ret
 
000161b8 <__fp_nan>:
161b8: 9f ef ldi r25, 0xFF ; 255
161ba: 80 ec ldi r24, 0xC0 ; 192
161bc: 08 95 ret
 
000161be <__fp_pscA>:
161be: 00 24 eor r0, r0
161c0: 0a 94 dec r0
161c2: 16 16 cp r1, r22
161c4: 17 06 cpc r1, r23
161c6: 18 06 cpc r1, r24
161c8: 09 06 cpc r0, r25
161ca: 08 95 ret
 
000161cc <__fp_pscB>:
161cc: 00 24 eor r0, r0
161ce: 0a 94 dec r0
161d0: 12 16 cp r1, r18
161d2: 13 06 cpc r1, r19
161d4: 14 06 cpc r1, r20
161d6: 05 06 cpc r0, r21
161d8: 08 95 ret
 
000161da <__fp_round>:
161da: 09 2e mov r0, r25
161dc: 03 94 inc r0
161de: 00 0c add r0, r0
161e0: 11 f4 brne .+4 ; 0x161e6 <__fp_round+0xc>
161e2: 88 23 and r24, r24
161e4: 52 f0 brmi .+20 ; 0x161fa <__fp_round+0x20>
161e6: bb 0f add r27, r27
161e8: 40 f4 brcc .+16 ; 0x161fa <__fp_round+0x20>
161ea: bf 2b or r27, r31
161ec: 11 f4 brne .+4 ; 0x161f2 <__fp_round+0x18>
161ee: 60 ff sbrs r22, 0
161f0: 04 c0 rjmp .+8 ; 0x161fa <__fp_round+0x20>
161f2: 6f 5f subi r22, 0xFF ; 255
161f4: 7f 4f sbci r23, 0xFF ; 255
161f6: 8f 4f sbci r24, 0xFF ; 255
161f8: 9f 4f sbci r25, 0xFF ; 255
161fa: 08 95 ret
 
000161fc <__fp_split3>:
161fc: 57 fd sbrc r21, 7
161fe: 90 58 subi r25, 0x80 ; 128
16200: 44 0f add r20, r20
16202: 55 1f adc r21, r21
16204: 59 f0 breq .+22 ; 0x1621c <__fp_splitA+0x10>
16206: 5f 3f cpi r21, 0xFF ; 255
16208: 71 f0 breq .+28 ; 0x16226 <__fp_splitA+0x1a>
1620a: 47 95 ror r20
 
0001620c <__fp_splitA>:
1620c: 88 0f add r24, r24
1620e: 97 fb bst r25, 7
16210: 99 1f adc r25, r25
16212: 61 f0 breq .+24 ; 0x1622c <__fp_splitA+0x20>
16214: 9f 3f cpi r25, 0xFF ; 255
16216: 79 f0 breq .+30 ; 0x16236 <__fp_splitA+0x2a>
16218: 87 95 ror r24
1621a: 08 95 ret
1621c: 12 16 cp r1, r18
1621e: 13 06 cpc r1, r19
16220: 14 06 cpc r1, r20
16222: 55 1f adc r21, r21
16224: f2 cf rjmp .-28 ; 0x1620a <__fp_split3+0xe>
16226: 46 95 lsr r20
16228: f1 df rcall .-30 ; 0x1620c <__fp_splitA>
1622a: 08 c0 rjmp .+16 ; 0x1623c <__fp_splitA+0x30>
1622c: 16 16 cp r1, r22
1622e: 17 06 cpc r1, r23
16230: 18 06 cpc r1, r24
16232: 99 1f adc r25, r25
16234: f1 cf rjmp .-30 ; 0x16218 <__fp_splitA+0xc>
16236: 86 95 lsr r24
16238: 71 05 cpc r23, r1
1623a: 61 05 cpc r22, r1
1623c: 08 94 sec
1623e: 08 95 ret
 
00016240 <__fp_zero>:
16240: e8 94 clt
 
00016242 <__fp_szero>:
16242: bb 27 eor r27, r27
16244: 66 27 eor r22, r22
16246: 77 27 eor r23, r23
16248: cb 01 movw r24, r22
1624a: 97 f9 bld r25, 7
1624c: 08 95 ret
 
0001624e <__mulsi3>:
1624e: db 01 movw r26, r22
16250: 8f 93 push r24
16252: 9f 93 push r25
16254: 9d d0 rcall .+314 ; 0x16390 <__muluhisi3>
16256: bf 91 pop r27
16258: af 91 pop r26
1625a: a2 9f mul r26, r18
1625c: 80 0d add r24, r0
1625e: 91 1d adc r25, r1
16260: a3 9f mul r26, r19
16262: 90 0d add r25, r0
16264: b2 9f mul r27, r18
16266: 90 0d add r25, r0
16268: 11 24 eor r1, r1
1626a: 08 95 ret
 
0001626c <__udivmodqi4>:
1626c: 99 1b sub r25, r25
1626e: 79 e0 ldi r23, 0x09 ; 9
16270: 04 c0 rjmp .+8 ; 0x1627a <__udivmodqi4_ep>
 
00016272 <__udivmodqi4_loop>:
16272: 99 1f adc r25, r25
16274: 96 17 cp r25, r22
16276: 08 f0 brcs .+2 ; 0x1627a <__udivmodqi4_ep>
16278: 96 1b sub r25, r22
 
0001627a <__udivmodqi4_ep>:
1627a: 88 1f adc r24, r24
1627c: 7a 95 dec r23
1627e: c9 f7 brne .-14 ; 0x16272 <__udivmodqi4_loop>
16280: 80 95 com r24
16282: 08 95 ret
 
00016284 <__udivmodhi4>:
16284: aa 1b sub r26, r26
16286: bb 1b sub r27, r27
16288: 51 e1 ldi r21, 0x11 ; 17
1628a: 07 c0 rjmp .+14 ; 0x1629a <__udivmodhi4_ep>
 
0001628c <__udivmodhi4_loop>:
1628c: aa 1f adc r26, r26
1628e: bb 1f adc r27, r27
16290: a6 17 cp r26, r22
16292: b7 07 cpc r27, r23
16294: 10 f0 brcs .+4 ; 0x1629a <__udivmodhi4_ep>
16296: a6 1b sub r26, r22
16298: b7 0b sbc r27, r23
 
0001629a <__udivmodhi4_ep>:
1629a: 88 1f adc r24, r24
1629c: 99 1f adc r25, r25
1629e: 5a 95 dec r21
162a0: a9 f7 brne .-22 ; 0x1628c <__udivmodhi4_loop>
162a2: 80 95 com r24
162a4: 90 95 com r25
162a6: bc 01 movw r22, r24
162a8: cd 01 movw r24, r26
162aa: 08 95 ret
 
000162ac <__divmodhi4>:
162ac: 97 fb bst r25, 7
162ae: 07 2e mov r0, r23
162b0: 16 f4 brtc .+4 ; 0x162b6 <__divmodhi4+0xa>
162b2: 00 94 com r0
162b4: 06 d0 rcall .+12 ; 0x162c2 <__divmodhi4_neg1>
162b6: 77 fd sbrc r23, 7
162b8: 08 d0 rcall .+16 ; 0x162ca <__divmodhi4_neg2>
162ba: e4 df rcall .-56 ; 0x16284 <__udivmodhi4>
162bc: 07 fc sbrc r0, 7
162be: 05 d0 rcall .+10 ; 0x162ca <__divmodhi4_neg2>
162c0: 3e f4 brtc .+14 ; 0x162d0 <__divmodhi4_exit>
 
000162c2 <__divmodhi4_neg1>:
162c2: 90 95 com r25
162c4: 81 95 neg r24
162c6: 9f 4f sbci r25, 0xFF ; 255
162c8: 08 95 ret
 
000162ca <__divmodhi4_neg2>:
162ca: 70 95 com r23
162cc: 61 95 neg r22
162ce: 7f 4f sbci r23, 0xFF ; 255
 
000162d0 <__divmodhi4_exit>:
162d0: 08 95 ret
 
000162d2 <__udivmodsi4>:
162d2: a1 e2 ldi r26, 0x21 ; 33
162d4: 1a 2e mov r1, r26
162d6: aa 1b sub r26, r26
162d8: bb 1b sub r27, r27
162da: fd 01 movw r30, r26
162dc: 0d c0 rjmp .+26 ; 0x162f8 <__udivmodsi4_ep>
 
000162de <__udivmodsi4_loop>:
162de: aa 1f adc r26, r26
162e0: bb 1f adc r27, r27
162e2: ee 1f adc r30, r30
162e4: ff 1f adc r31, r31
162e6: a2 17 cp r26, r18
162e8: b3 07 cpc r27, r19
162ea: e4 07 cpc r30, r20
162ec: f5 07 cpc r31, r21
162ee: 20 f0 brcs .+8 ; 0x162f8 <__udivmodsi4_ep>
162f0: a2 1b sub r26, r18
162f2: b3 0b sbc r27, r19
162f4: e4 0b sbc r30, r20
162f6: f5 0b sbc r31, r21
 
000162f8 <__udivmodsi4_ep>:
162f8: 66 1f adc r22, r22
162fa: 77 1f adc r23, r23
162fc: 88 1f adc r24, r24
162fe: 99 1f adc r25, r25
16300: 1a 94 dec r1
16302: 69 f7 brne .-38 ; 0x162de <__udivmodsi4_loop>
16304: 60 95 com r22
16306: 70 95 com r23
16308: 80 95 com r24
1630a: 90 95 com r25
1630c: 9b 01 movw r18, r22
1630e: ac 01 movw r20, r24
16310: bd 01 movw r22, r26
16312: cf 01 movw r24, r30
16314: 08 95 ret
 
00016316 <__divmodsi4>:
16316: 05 2e mov r0, r21
16318: 97 fb bst r25, 7
1631a: 16 f4 brtc .+4 ; 0x16320 <__divmodsi4+0xa>
1631c: 00 94 com r0
1631e: 0f d0 rcall .+30 ; 0x1633e <__negsi2>
16320: 57 fd sbrc r21, 7
16322: 05 d0 rcall .+10 ; 0x1632e <__divmodsi4_neg2>
16324: d6 df rcall .-84 ; 0x162d2 <__udivmodsi4>
16326: 07 fc sbrc r0, 7
16328: 02 d0 rcall .+4 ; 0x1632e <__divmodsi4_neg2>
1632a: 46 f4 brtc .+16 ; 0x1633c <__divmodsi4_exit>
1632c: 08 c0 rjmp .+16 ; 0x1633e <__negsi2>
 
0001632e <__divmodsi4_neg2>:
1632e: 50 95 com r21
16330: 40 95 com r20
16332: 30 95 com r19
16334: 21 95 neg r18
16336: 3f 4f sbci r19, 0xFF ; 255
16338: 4f 4f sbci r20, 0xFF ; 255
1633a: 5f 4f sbci r21, 0xFF ; 255
 
0001633c <__divmodsi4_exit>:
1633c: 08 95 ret
 
0001633e <__negsi2>:
1633e: 90 95 com r25
16340: 80 95 com r24
16342: 70 95 com r23
16344: 61 95 neg r22
16346: 7f 4f sbci r23, 0xFF ; 255
16348: 8f 4f sbci r24, 0xFF ; 255
1634a: 9f 4f sbci r25, 0xFF ; 255
1634c: 08 95 ret
 
0001634e <__tablejump2__>:
1634e: ee 0f add r30, r30
16350: ff 1f adc r31, r31
 
00016352 <__tablejump__>:
16352: 05 90 lpm r0, Z+
16354: f4 91 lpm r31, Z
16356: e0 2d mov r30, r0
16358: 09 94 ijmp
 
0001635a <__mulhisi3>:
1635a: 05 d0 rcall .+10 ; 0x16366 <__umulhisi3>
1635c: 33 23 and r19, r19
1635e: 12 f4 brpl .+4 ; 0x16364 <__mulhisi3+0xa>
16360: 8a 1b sub r24, r26
16362: 9b 0b sbc r25, r27
16364: 10 c0 rjmp .+32 ; 0x16386 <__usmulhisi3_tail>
 
00016366 <__umulhisi3>:
16366: a2 9f mul r26, r18
16368: b0 01 movw r22, r0
1636a: b3 9f mul r27, r19
1636c: c0 01 movw r24, r0
1636e: a3 9f mul r26, r19
16370: 70 0d add r23, r0
16372: 81 1d adc r24, r1
16374: 11 24 eor r1, r1
16376: 91 1d adc r25, r1
16378: b2 9f mul r27, r18
1637a: 70 0d add r23, r0
1637c: 81 1d adc r24, r1
1637e: 11 24 eor r1, r1
16380: 91 1d adc r25, r1
16382: 08 95 ret
 
00016384 <__usmulhisi3>:
16384: f0 df rcall .-32 ; 0x16366 <__umulhisi3>
 
00016386 <__usmulhisi3_tail>:
16386: b7 ff sbrs r27, 7
16388: 08 95 ret
1638a: 82 1b sub r24, r18
1638c: 93 0b sbc r25, r19
1638e: 08 95 ret
 
00016390 <__muluhisi3>:
16390: ea df rcall .-44 ; 0x16366 <__umulhisi3>
16392: a5 9f mul r26, r21
16394: 90 0d add r25, r0
16396: b4 9f mul r27, r20
16398: 90 0d add r25, r0
1639a: a4 9f mul r26, r20
1639c: 80 0d add r24, r0
1639e: 91 1d adc r25, r1
163a0: 11 24 eor r1, r1
163a2: 08 95 ret
 
000163a4 <__mulshisi3>:
163a4: b7 ff sbrs r27, 7
163a6: f4 cf rjmp .-24 ; 0x16390 <__muluhisi3>
 
000163a8 <__mulohisi3>:
163a8: f3 df rcall .-26 ; 0x16390 <__muluhisi3>
163aa: 82 1b sub r24, r18
163ac: 93 0b sbc r25, r19
163ae: 08 95 ret
 
000163b0 <__prologue_saves__>:
163b0: 2f 92 push r2
163b2: 3f 92 push r3
163b4: 4f 92 push r4
163b6: 5f 92 push r5
163b8: 6f 92 push r6
163ba: 7f 92 push r7
163bc: 8f 92 push r8
163be: 9f 92 push r9
163c0: af 92 push r10
163c2: bf 92 push r11
163c4: cf 92 push r12
163c6: df 92 push r13
163c8: ef 92 push r14
163ca: ff 92 push r15
163cc: 0f 93 push r16
163ce: 1f 93 push r17
163d0: cf 93 push r28
163d2: df 93 push r29
163d4: cd b7 in r28, 0x3d ; 61
163d6: de b7 in r29, 0x3e ; 62
163d8: ca 1b sub r28, r26
163da: db 0b sbc r29, r27
163dc: 0f b6 in r0, 0x3f ; 63
163de: f8 94 cli
163e0: de bf out 0x3e, r29 ; 62
163e2: 0f be out 0x3f, r0 ; 63
163e4: cd bf out 0x3d, r28 ; 61
163e6: 09 94 ijmp
 
000163e8 <__epilogue_restores__>:
163e8: 2a 88 ldd r2, Y+18 ; 0x12
163ea: 39 88 ldd r3, Y+17 ; 0x11
163ec: 48 88 ldd r4, Y+16 ; 0x10
163ee: 5f 84 ldd r5, Y+15 ; 0x0f
163f0: 6e 84 ldd r6, Y+14 ; 0x0e
163f2: 7d 84 ldd r7, Y+13 ; 0x0d
163f4: 8c 84 ldd r8, Y+12 ; 0x0c
163f6: 9b 84 ldd r9, Y+11 ; 0x0b
163f8: aa 84 ldd r10, Y+10 ; 0x0a
163fa: b9 84 ldd r11, Y+9 ; 0x09
163fc: c8 84 ldd r12, Y+8 ; 0x08
163fe: df 80 ldd r13, Y+7 ; 0x07
16400: ee 80 ldd r14, Y+6 ; 0x06
16402: fd 80 ldd r15, Y+5 ; 0x05
16404: 0c 81 ldd r16, Y+4 ; 0x04
16406: 1b 81 ldd r17, Y+3 ; 0x03
16408: aa 81 ldd r26, Y+2 ; 0x02
1640a: b9 81 ldd r27, Y+1 ; 0x01
1640c: ce 0f add r28, r30
1640e: d1 1d adc r29, r1
16410: 0f b6 in r0, 0x3f ; 63
16412: f8 94 cli
16414: de bf out 0x3e, r29 ; 62
16416: 0f be out 0x3f, r0 ; 63
16418: cd bf out 0x3d, r28 ; 61
1641a: ed 01 movw r28, r26
1641c: 08 95 ret
 
0001641e <memcpy_P>:
1641e: fb 01 movw r30, r22
16420: dc 01 movw r26, r24
16422: 02 c0 rjmp .+4 ; 0x16428 <memcpy_P+0xa>
16424: 05 90 lpm r0, Z+
16426: 0d 92 st X+, r0
16428: 41 50 subi r20, 0x01 ; 1
1642a: 50 40 sbci r21, 0x00 ; 0
1642c: d8 f7 brcc .-10 ; 0x16424 <memcpy_P+0x6>
1642e: 08 95 ret
 
00016430 <memchr>:
16430: fc 01 movw r30, r24
16432: 41 50 subi r20, 0x01 ; 1
16434: 50 40 sbci r21, 0x00 ; 0
16436: 30 f0 brcs .+12 ; 0x16444 <memchr+0x14>
16438: 01 90 ld r0, Z+
1643a: 06 16 cp r0, r22
1643c: d1 f7 brne .-12 ; 0x16432 <memchr+0x2>
1643e: 31 97 sbiw r30, 0x01 ; 1
16440: cf 01 movw r24, r30
16442: 08 95 ret
16444: 88 27 eor r24, r24
16446: 99 27 eor r25, r25
16448: 08 95 ret
 
0001644a <memcpy>:
1644a: fb 01 movw r30, r22
1644c: dc 01 movw r26, r24
1644e: 02 c0 rjmp .+4 ; 0x16454 <memcpy+0xa>
16450: 01 90 ld r0, Z+
16452: 0d 92 st X+, r0
16454: 41 50 subi r20, 0x01 ; 1
16456: 50 40 sbci r21, 0x00 ; 0
16458: d8 f7 brcc .-10 ; 0x16450 <memcpy+0x6>
1645a: 08 95 ret
 
0001645c <__eerd_block_m1284>:
1645c: dc 01 movw r26, r24
1645e: cb 01 movw r24, r22
 
00016460 <__eerd_blraw_m1284>:
16460: fc 01 movw r30, r24
16462: f9 99 sbic 0x1f, 1 ; 31
16464: fe cf rjmp .-4 ; 0x16462 <__eerd_blraw_m1284+0x2>
16466: 06 c0 rjmp .+12 ; 0x16474 <__eerd_blraw_m1284+0x14>
16468: f2 bd out 0x22, r31 ; 34
1646a: e1 bd out 0x21, r30 ; 33
1646c: f8 9a sbi 0x1f, 0 ; 31
1646e: 31 96 adiw r30, 0x01 ; 1
16470: 00 b4 in r0, 0x20 ; 32
16472: 0d 92 st X+, r0
16474: 41 50 subi r20, 0x01 ; 1
16476: 50 40 sbci r21, 0x00 ; 0
16478: b8 f7 brcc .-18 ; 0x16468 <__eerd_blraw_m1284+0x8>
1647a: 08 95 ret
 
0001647c <__eerd_byte_m1284>:
1647c: f9 99 sbic 0x1f, 1 ; 31
1647e: fe cf rjmp .-4 ; 0x1647c <__eerd_byte_m1284>
16480: 92 bd out 0x22, r25 ; 34
16482: 81 bd out 0x21, r24 ; 33
16484: f8 9a sbi 0x1f, 0 ; 31
16486: 99 27 eor r25, r25
16488: 80 b5 in r24, 0x20 ; 32
1648a: 08 95 ret
 
0001648c <__eerd_word_m1284>:
1648c: a8 e1 ldi r26, 0x18 ; 24
1648e: b0 e0 ldi r27, 0x00 ; 0
16490: 42 e0 ldi r20, 0x02 ; 2
16492: 50 e0 ldi r21, 0x00 ; 0
16494: e5 cf rjmp .-54 ; 0x16460 <__eerd_blraw_m1284>
 
00016496 <__eewr_block_m1284>:
16496: dc 01 movw r26, r24
16498: cb 01 movw r24, r22
1649a: 02 c0 rjmp .+4 ; 0x164a0 <__eewr_block_m1284+0xa>
1649c: 2d 91 ld r18, X+
1649e: 05 d0 rcall .+10 ; 0x164aa <__eewr_r18_m1284>
164a0: 41 50 subi r20, 0x01 ; 1
164a2: 50 40 sbci r21, 0x00 ; 0
164a4: d8 f7 brcc .-10 ; 0x1649c <__eewr_block_m1284+0x6>
164a6: 08 95 ret
 
000164a8 <__eewr_byte_m1284>:
164a8: 26 2f mov r18, r22
 
000164aa <__eewr_r18_m1284>:
164aa: f9 99 sbic 0x1f, 1 ; 31
164ac: fe cf rjmp .-4 ; 0x164aa <__eewr_r18_m1284>
164ae: 1f ba out 0x1f, r1 ; 31
164b0: 92 bd out 0x22, r25 ; 34
164b2: 81 bd out 0x21, r24 ; 33
164b4: 20 bd out 0x20, r18 ; 32
164b6: 0f b6 in r0, 0x3f ; 63
164b8: f8 94 cli
164ba: fa 9a sbi 0x1f, 2 ; 31
164bc: f9 9a sbi 0x1f, 1 ; 31
164be: 0f be out 0x3f, r0 ; 63
164c0: 01 96 adiw r24, 0x01 ; 1
164c2: 08 95 ret
 
000164c4 <__eewr_word_m1284>:
164c4: f1 df rcall .-30 ; 0x164a8 <__eewr_byte_m1284>
164c6: 27 2f mov r18, r23
164c8: f0 cf rjmp .-32 ; 0x164aa <__eewr_r18_m1284>
 
000164ca <_exit>:
164ca: f8 94 cli
 
000164cc <__stop_program>:
164cc: ff cf rjmp .-2 ; 0x164cc <__stop_program>
/branches/V2.08a_Rens_Testversion/FlightCtrl/Debug/FlightCtrl.map
0,0 → 1,3514
Archive member included because of file (symbol)
 
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3.o)
fc.o (__addsf3)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3.o) (__addsf3x)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fixunssfsi.o)
fc.o (__fixunssfsi)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(floatsisf.o)
fc.o (__floatsisf)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_inf.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o) (__fp_inf)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_nan.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o) (__fp_nan)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscA.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o) (__fp_pscA)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscB.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o) (__fp_pscB)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_round.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3.o) (__fp_round)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_split3.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o) (__fp_split3)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_zero.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o) (__fp_zero)
C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
hottmenu.o (HoTTBlink)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
fc.o (__mulsi3)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o) (__udivmodqi4)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
fc.o (__udivmodhi4)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
fc.o (__divmodhi4)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o) (__udivmodsi4)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
analog.o (__divmodsi4)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o) (__negsi2)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o (exit)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
analog.o (__tablejump2__)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
analog.o (__do_copy_data)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
analog.o (__do_clear_bss)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
fc.o (__mulhisi3)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
analog.o (__umulhisi3)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
analog.o (__usmulhisi3)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
fc.o (__muluhisi3)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
fc.o (__mulshisi3)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o) (__prologue_saves__)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o) (__epilogue_restores__)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy_P.o)
uart.o (memcpy_P)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memchr.o)
C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o) (memchr)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy.o)
C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o) (memcpy)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_block_atmega1284.o)
eeprom.o (__eerd_block_m1284)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_byte_atmega1284.o)
eeprom.o (__eerd_byte_m1284)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_word_atmega1284.o)
eeprom.o (__eerd_word_m1284)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_block_atmega1284.o)
eeprom.o (__eewr_block_m1284)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_byte_atmega1284.o)
eeprom.o (__eewr_byte_m1284)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_word_atmega1284.o)
eeprom.o (__eewr_word_m1284)
 
Allocating common symbols
Common symbol size file
 
USART1_EX_TxBuffer 0x20 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
KopplungsteilNickRoll
0x2 fc.o
SPITransferCompleted
0x1 spi.o
KopplungsteilRollNick
0x2 fc.o
RequiredMotors 0x1 eeprom.o
Parameter_Servo4 0x1 fc.o
GPSInfo 0x8 spi.o
EE_Parameter 0x89 eeprom.o
DiffRoll 0x2 fc.o
MesswertRoll 0x2 fc.o
ElectricAirPacket 0x2c hottmenu.o
TrimNick 0x2 fc.o
Parameter_NaviGpsP 0x1 fc.o
ErsatzKompassInGrad
0x2 fc.o
GyroFaktorGier 0x1 fc.o
HoTTGeneral 0x2c hottmenu.o
Parameter_MaximumAltitude
0x1 fc.o
TrimRoll 0x2 fc.o
SPI_TX_Buffer 0x2 spi.o
MesswertNick 0x2 fc.o
NC_Version 0x5 spi.o
SPI_BufferIndex 0x1 spi.o
Aktuell_ay 0x2 analog.o
ToNaviCtrl 0x22 spi.o
Data3D 0xe uart.o
Parameter_NaviGpsI 0x1 fc.o
Capacity 0x7 capacity.o
Timer3D 0x2 uart.o
SPI_ChkSum 0x1 spi.o
RohMesswertRoll 0x2 fc.o
MIN_GAS 0x1 fc.o
HottKeyboard 0x1 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
CosAttitude 0x2 fc.o
Channels 0x1 rc.o
Debug_Timer 0x2 uart.o
RohMesswertNick 0x2 fc.o
IntegralFaktorGier 0x1 fc.o
fdknerTjg5i83th589v44
0x6 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
DiffNick 0x2 fc.o
MittelIntegralNick 0x4 fc.o
Parameter_Servo3 0x1 fc.o
VersionInfo 0xa uart.o
WPL_Name 0xa hottmenu.o
MotorTest 0x10 uart.o
SPI_RxBufferIndex 0x1 spi.o
NaviAccNick 0x2 fc.o
HoTT_RequestedSensor
0x1 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
Parameter_J16Timing
0x1 fc.o
MittelIntegralRoll 0x4 fc.o
Parameter_ExtraConfig
0x1 fc.o
VarioPacket 0x2c hottmenu.o
Parameter_Servo5 0x1 fc.o
SPI_RxDataValid 0x1 spi.o
PPM_in 0x46 rc.o
WinkelOut 0x8 uart.o
ExternControl 0xb uart.o
IntegralFaktor 0x1 fc.o
Aktuell_az 0x2 analog.o
RedundantMotor 0x3c twimaster.o
FromNaviCtrl 0x20 spi.o
StartLuftdruck 0x4 analog.o
_printf_P 0x2 FlightCtrl.o
tmp_motorwert 0x18 fc.o
Kompass_Timer 0x2 uart.o
RxdBuffer 0xdc uart.o
Mixer 0x4e eeprom.o
HoTT_TextPointer 0x1 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
Display_Timer 0x2 uart.o
Parameter_NaviGpsA 0x1 fc.o
ASCIIPacket 0xac hottmenu.o
TxdBuffer 0xdc uart.o
SPI_Buffer 0x20 spi.o
Parameter_GlobalConfig
0x1 fc.o
Aktuell_Nick 0x2 analog.o
Aktuell_Roll 0x2 analog.o
tDebug 0x21 debug.o
IlIlIlIIIIIIIlIllllll
0x23 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
Aktuell_ax 0x2 analog.o
Parameter_NaviWindCorrection
0x1 fc.o
s 0x1 fc.o
h 0x1 fc.o
Mittelwert_AccNick 0x2 fc.o
Parameter_NaviSpeedCompensation
0x1 fc.o
DebugOut 0x42 uart.o
DruckOffsetSetting 0x1 analog.o
FromNaviCtrl_Value 0x5 spi.o
BLConfig 0x8 twimaster.o
Motor 0xb4 twimaster.o
Aktuell_Gier 0x2 analog.o
Parameter_J17Timing
0x1 fc.o
GPSPacket 0x2c hottmenu.o
tim_main 0x2 timer0.o
MAX_GAS 0x1 fc.o
CompassCorrected 0x2 fc.o
MesswertGier 0x2 fc.o
Parameter_J16Bitmask
0x1 fc.o
ConfirmFrame 0x1 uart.o
NaviAccRoll 0x2 fc.o
GyroFaktor 0x1 fc.o
m 0x1 fc.o
ErsatzKompass 0x4 fc.o
Mittelwert_AccRoll 0x2 fc.o
Parameter_NaviGpsGain
0x1 fc.o
fgfdogjWEti45e9tjh394
0x4 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
DisplayBuff 0x50 menu.o
PPM_diff 0x46 rc.o
sBusBuffer 0x19 sbus.o
Parameter_ExternalControl
0x1 fc.o
Parameter_J17Bitmask
0x1 fc.o
Parameter_NaviGpsD 0x1 fc.o
 
Discarded input sections
 
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o
.text 0x00000000 0x0 analog.o
.data 0x00000000 0x0 analog.o
.bss 0x00000000 0x0 analog.o
.data.AnalogOffsetGier
0x00000000 0x1 analog.o
.data.AnalogOffsetRoll
0x00000000 0x1 analog.o
.data.AnalogOffsetNick
0x00000000 0x1 analog.o
.bss.AdWertGierFilter
0x00000000 0x2 analog.o
.text 0x00000000 0x0 capacity.o
.data 0x00000000 0x0 capacity.o
.bss 0x00000000 0x0 capacity.o
.text 0x00000000 0x0 debug.o
.data 0x00000000 0x0 debug.o
.bss 0x00000000 0x0 debug.o
.text 0x00000000 0x0 eeprom.o
.data 0x00000000 0x0 eeprom.o
.bss 0x00000000 0x0 eeprom.o
.text 0x00000000 0x0 fc.o
.data 0x00000000 0x0 fc.o
.bss 0x00000000 0x0 fc.o
.data.Parameter_NickControl
0x00000000 0x1 fc.o
.data.Parameter_Gier_P
0x00000000 0x1 fc.o
.bss.ControlHeading
0x00000000 0x1 fc.o
.text 0x00000000 0x0 FlightCtrl.o
.data 0x00000000 0x0 FlightCtrl.o
.bss 0x00000000 0x0 FlightCtrl.o
.text 0x00000000 0x0 GPS.o
.data 0x00000000 0x0 GPS.o
.bss 0x00000000 0x0 GPS.o
.text 0x00000000 0x0 hottmenu.o
.data 0x00000000 0x0 hottmenu.o
.bss 0x00000000 0x0 hottmenu.o
.data 0x00000000 0x0 isqrt.o
.bss 0x00000000 0x0 isqrt.o
.text 0x00000000 0x0 jetimenu.o
.data 0x00000000 0x0 jetimenu.o
.bss 0x00000000 0x0 jetimenu.o
.text 0x00000000 0x0 jeti_ex.o
.data 0x00000000 0x0 jeti_ex.o
.bss 0x00000000 0x0 jeti_ex.o
.text 0x00000000 0x0 led.o
.data 0x00000000 0x0 led.o
.bss 0x00000000 0x0 led.o
.bss.LED2_Timing
0x00000000 0x2 led.o
.bss.LED1_Timing
0x00000000 0x2 led.o
.text 0x00000000 0x0 menu.o
.data 0x00000000 0x0 menu.o
.bss 0x00000000 0x0 menu.o
.text 0x00000000 0x0 mymath.o
.data 0x00000000 0x0 mymath.o
.bss 0x00000000 0x0 mymath.o
.text 0x00000000 0x0 rc.o
.data 0x00000000 0x0 rc.o
.bss 0x00000000 0x0 rc.o
.bss.tmpChannels
0x00000000 0x1 rc.o
.text 0x00000000 0x0 sbus.o
.data 0x00000000 0x0 sbus.o
.bss 0x00000000 0x0 sbus.o
.text 0x00000000 0x0 Spektrum.o
.data 0x00000000 0x0 Spektrum.o
.bss 0x00000000 0x0 Spektrum.o
.text 0x00000000 0x0 spi.o
.data 0x00000000 0x0 spi.o
.bss 0x00000000 0x0 spi.o
.bss.MagVec 0x00000000 0x6 spi.o
.text 0x00000000 0x0 timer0.o
.data 0x00000000 0x0 timer0.o
.bss 0x00000000 0x0 timer0.o
.text.Delay_ms
0x00000000 0x22 timer0.o
.text 0x00000000 0x0 twimaster.o
.data 0x00000000 0x0 twimaster.o
.bss 0x00000000 0x0 twimaster.o
.bss.dac_channel
0x00000000 0x1 twimaster.o
.text 0x00000000 0x0 uart.o
.data 0x00000000 0x0 uart.o
.bss 0x00000000 0x0 uart.o
.bss.PC_DebugTimeout
0x00000000 0x1 uart.o
.bss.NeueKoordinateEmpfangen
0x00000000 0x1 uart.o
.text 0x00000000 0x0 user_receiver.o
.data 0x00000000 0x0 user_receiver.o
.bss 0x00000000 0x0 user_receiver.o
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fixunssfsi.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fixunssfsi.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fixunssfsi.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(floatsisf.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(floatsisf.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(floatsisf.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_inf.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_inf.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_inf.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_nan.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_nan.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_nan.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscA.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscA.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscA.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscB.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscB.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscB.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_round.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_round.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_round.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_split3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_split3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_split3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_zero.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_zero.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_zero.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy_P.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy_P.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy_P.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memchr.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memchr.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memchr.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_block_atmega1284.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_block_atmega1284.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_block_atmega1284.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_byte_atmega1284.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_byte_atmega1284.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_byte_atmega1284.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_word_atmega1284.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_word_atmega1284.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_word_atmega1284.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_block_atmega1284.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_block_atmega1284.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_block_atmega1284.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_byte_atmega1284.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_byte_atmega1284.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_byte_atmega1284.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_word_atmega1284.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_word_atmega1284.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_word_atmega1284.o)
 
Memory Configuration
 
Name Origin Length Attributes
text 0x00000000 0x00020000 xr
data 0x00800100 0x0000ff00 rw !x
eeprom 0x00810000 0x00010000 rw !x
fuse 0x00820000 0x00000400 rw !x
lock 0x00830000 0x00000400 rw !x
signature 0x00840000 0x00000400 rw !x
user_signatures 0x00850000 0x00000400 rw !x
*default* 0x00000000 0xffffffff
 
Linker script and memory map
 
Address of section .data set to 0x800100
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o
LOAD analog.o
LOAD capacity.o
LOAD debug.o
LOAD eeprom.o
LOAD fc.o
LOAD FlightCtrl.o
LOAD GPS.o
LOAD hottmenu.o
LOAD isqrt.o
LOAD jetimenu.o
LOAD jeti_ex.o
LOAD led.o
LOAD menu.o
LOAD mymath.o
LOAD rc.o
LOAD sbus.o
LOAD Spektrum.o
LOAD spi.o
LOAD timer0.o
LOAD twimaster.o
LOAD uart.o
LOAD user_receiver.o
START GROUP
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a
LOAD C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a
END GROUP
START GROUP
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a
END GROUP
 
.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 0x164ce
*(.vectors)
.vectors 0x00000000 0x8c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o
0x00000000 __vector_default
0x00000000 __vectors
*(.vectors)
*(.progmem.gcc*)
.progmem.gcc_sw_table.__vector_24
0x0000008c 0x24 analog.o
.progmem.gcc_sw_table.HoTT_Menu
0x000000b0 0x74 hottmenu.o
.progmem.gcc_sw_table.Menu
0x00000124 0x28 menu.o
.progmem.gcc_sw_table.UpdateSPI_Buffer
0x0000014c 0x14 spi.o
.progmem.gcc_sw_table.__vector_26
0x00000160 0xe twimaster.o
.progmem.gcc_sw_table.BearbeiteRxDaten
0x0000016e 0xb6 uart.o
.progmem.gcc_sw_table
0x00000224 0x12 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
0x00000236 . = ALIGN (0x2)
0x00000236 __trampolines_start = .
*(.trampolines)
.trampolines 0x00000236 0x0 linker stubs
*(.trampolines*)
0x00000236 __trampolines_end = .
*(.progmem*)
.progmem.data.__c.3000
0x00000236 0x2 analog.o
.progmem.data.__c.3073
0x00000238 0x21 eeprom.o
.progmem.data.__c.3068
0x00000259 0x21 eeprom.o
.progmem.data.__c.3066
0x0000027a 0x19 eeprom.o
.progmem.data.__c.3057
0x00000293 0x26 eeprom.o
.progmem.data.__c.3054
0x000002b9 0x28 eeprom.o
.progmem.data.__c.3166
0x000002e1 0x24 fc.o
.progmem.data.__c.3161
0x00000305 0x18 fc.o
.progmem.data.__c.3040
0x0000031d 0x20 FlightCtrl.o
.progmem.data.__c.3038
0x0000033d 0x22 FlightCtrl.o
.progmem.data.__c.3036
0x0000035f 0x5 FlightCtrl.o
.progmem.data.__c.3031
0x00000364 0x20 FlightCtrl.o
.progmem.data.__c.3029
0x00000384 0x19 FlightCtrl.o
.progmem.data.__c.3027
0x0000039d 0x16 FlightCtrl.o
.progmem.data.__c.3022
0x000003b3 0x1e FlightCtrl.o
.progmem.data.__c.3017
0x000003d1 0x3 FlightCtrl.o
.progmem.data.__c.3008
0x000003d4 0x12 FlightCtrl.o
.progmem.data.__c.2999
0x000003e6 0x32 FlightCtrl.o
.progmem.data.__c.2985
0x00000418 0x16 FlightCtrl.o
.progmem.data.__c.2983
0x0000042e 0x12 FlightCtrl.o
.progmem.data.__c.2981
0x00000440 0x15 FlightCtrl.o
.progmem.data.__c.2979
0x00000455 0xb FlightCtrl.o
.progmem.data.__c.2977
0x00000460 0x8 FlightCtrl.o
.progmem.data.__c.2968
0x00000468 0x26 FlightCtrl.o
.progmem.data.__c.3496
0x0000048e 0x3 hottmenu.o
.progmem.data.__c.3494
0x00000491 0xe hottmenu.o
.progmem.data.__c.3492
0x0000049f 0xe hottmenu.o
.progmem.data.__c.3490
0x000004ad 0x3 hottmenu.o
.progmem.data.__c.3488
0x000004b0 0x4 hottmenu.o
.progmem.data.__c.3486
0x000004b4 0x4 hottmenu.o
.progmem.data.__c.3484
0x000004b8 0xc hottmenu.o
.progmem.data.__c.3479
0x000004c4 0x9 hottmenu.o
.progmem.data.__c.3477
0x000004cd 0xb hottmenu.o
.progmem.data.__c.3475
0x000004d8 0xd hottmenu.o
.progmem.data.__c.3473
0x000004e5 0xd hottmenu.o
.progmem.data.__c.3470
0x000004f2 0x15 hottmenu.o
.progmem.data.__c.3468
0x00000507 0xb hottmenu.o
.progmem.data.__c.3466
0x00000512 0xb hottmenu.o
.progmem.data.__c.3462
0x0000051d 0x15 hottmenu.o
.progmem.data.__c.3455
0x00000532 0xe hottmenu.o
.progmem.data.__c.3453
0x00000540 0xf hottmenu.o
.progmem.data.__c.3451
0x0000054f 0xe hottmenu.o
.progmem.data.__c.3449
0x0000055d 0x3 hottmenu.o
.progmem.data.__c.3447
0x00000560 0x5 hottmenu.o
.progmem.data.__c.3445
0x00000565 0x4 hottmenu.o
.progmem.data.__c.3443
0x00000569 0xd hottmenu.o
.progmem.data.__c.3438
0x00000576 0x9 hottmenu.o
.progmem.data.__c.3436
0x0000057f 0xb hottmenu.o
.progmem.data.__c.3434
0x0000058a 0x9 hottmenu.o
.progmem.data.__c.3431
0x00000593 0xb hottmenu.o
.progmem.data.__c.3429
0x0000059e 0xb hottmenu.o
.progmem.data.__c.3425
0x000005a9 0x16 hottmenu.o
.progmem.data.__c.3418
0x000005bf 0xe hottmenu.o
.progmem.data.__c.3416
0x000005cd 0xe hottmenu.o
.progmem.data.__c.3414
0x000005db 0xe hottmenu.o
.progmem.data.__c.3412
0x000005e9 0x4 hottmenu.o
.progmem.data.__c.3410
0x000005ed 0xa hottmenu.o
.progmem.data.__c.3408
0x000005f7 0x4 hottmenu.o
.progmem.data.__c.3406
0x000005fb 0xb hottmenu.o
.progmem.data.__c.3401
0x00000606 0x3 hottmenu.o
.progmem.data.__c.3399
0x00000609 0xa hottmenu.o
.progmem.data.__c.3396
0x00000613 0x12 hottmenu.o
.progmem.data.__c.3394
0x00000625 0x12 hottmenu.o
.progmem.data.__c.3390
0x00000637 0x12 hottmenu.o
.progmem.data.__c.3388
0x00000649 0xf hottmenu.o
.progmem.data.__c.3381
0x00000658 0xe hottmenu.o
.progmem.data.__c.3379
0x00000666 0xe hottmenu.o
.progmem.data.__c.3377
0x00000674 0xe hottmenu.o
.progmem.data.__c.3375
0x00000682 0xe hottmenu.o
.progmem.data.__c.3373
0x00000690 0xf hottmenu.o
.progmem.data.__c.3371
0x0000069f 0xb hottmenu.o
.progmem.data.__c.3369
0x000006aa 0x7 hottmenu.o
.progmem.data.__c.3367
0x000006b1 0x4 hottmenu.o
.progmem.data.__c.3362
0x000006b5 0x3 hottmenu.o
.progmem.data.__c.3360
0x000006b8 0xa hottmenu.o
.progmem.data.__c.3357
0x000006c2 0x13 hottmenu.o
.progmem.data.__c.3355
0x000006d5 0x12 hottmenu.o
.progmem.data.__c.3351
0x000006e7 0x15 hottmenu.o
.progmem.data.__c.3349
0x000006fc 0xf hottmenu.o
.progmem.data.__c.3333
0x0000070b 0xe hottmenu.o
.progmem.data.__c.3331
0x00000719 0x5 hottmenu.o
.progmem.data.__c.3329
0x0000071e 0xa hottmenu.o
.progmem.data.__c.3327
0x00000728 0xf hottmenu.o
.progmem.data.__c.3324
0x00000737 0x14 hottmenu.o
.progmem.data.__c.3322
0x0000074b 0x14 hottmenu.o
.progmem.data.__c.3320
0x0000075f 0xf hottmenu.o
.progmem.data.__c.3318
0x0000076e 0x14 hottmenu.o
.progmem.data.__c.3315
0x00000782 0x6 hottmenu.o
.progmem.data.__c.3313
0x00000788 0x4 hottmenu.o
.progmem.data.__c.3311
0x0000078c 0xa hottmenu.o
.progmem.data.__c.3308
0x00000796 0xb hottmenu.o
.progmem.data.__c.3306
0x000007a1 0x7 hottmenu.o
.progmem.data.__c.3304
0x000007a8 0x7 hottmenu.o
.progmem.data.__c.3302
0x000007af 0x7 hottmenu.o
.progmem.data.__c.3300
0x000007b6 0x7 hottmenu.o
.progmem.data.__c.3298
0x000007bd 0x9 hottmenu.o
.progmem.data.__c.3296
0x000007c6 0x5 hottmenu.o
.progmem.data.__c.3293
0x000007cb 0x7 hottmenu.o
.progmem.data.__c.3291
0x000007d2 0x7 hottmenu.o
.progmem.data.__c.3289
0x000007d9 0x7 hottmenu.o
.progmem.data.__c.3287
0x000007e0 0x9 hottmenu.o
.progmem.data.__c.3285
0x000007e9 0x4 hottmenu.o
.progmem.data.__c.3282
0x000007ed 0x9 hottmenu.o
.progmem.data.__c.3280
0x000007f6 0x6 hottmenu.o
.progmem.data.__c.3278
0x000007fc 0x6 hottmenu.o
.progmem.data.__c.3276
0x00000802 0x7 hottmenu.o
.progmem.data.__c.3274
0x00000809 0x7 hottmenu.o
.progmem.data.__c.3272
0x00000810 0xa hottmenu.o
.progmem.data.__c.3270
0x0000081a 0x5 hottmenu.o
.progmem.data.__c.3267
0x0000081f 0x11 hottmenu.o
.progmem.data.__c.3263
0x00000830 0xf hottmenu.o
.progmem.data.__c.3249
0x0000083f 0x16 hottmenu.o
.progmem.data.__c.3247
0x00000855 0x13 hottmenu.o
.progmem.data.__c.3245
0x00000868 0x6 hottmenu.o
.progmem.data.__c.3243
0x0000086e 0xb hottmenu.o
.progmem.data.__c.3240
0x00000879 0x13 hottmenu.o
.progmem.data.__c.3238
0x0000088c 0x13 hottmenu.o
.progmem.data.__c.3236
0x0000089f 0x1d hottmenu.o
.progmem.data.__c.3234
0x000008bc 0xf hottmenu.o
.progmem.data.__c.3231
0x000008cb 0x13 hottmenu.o
.progmem.data.__c.3229
0x000008de 0x1d hottmenu.o
.progmem.data.__c.3226
0x000008fb 0x16 hottmenu.o
.progmem.data.__c.3224
0x00000911 0x6 hottmenu.o
.progmem.data.__c.3222
0x00000917 0x6 hottmenu.o
.progmem.data.__c.3218
0x0000091d 0x6 hottmenu.o
.progmem.data.__c.3215
0x00000923 0x13 hottmenu.o
.progmem.data.__c.3212
0x00000936 0x3 hottmenu.o
.progmem.data.__c.3210
0x00000939 0x3 hottmenu.o
.progmem.data.__c.3208
0x0000093c 0x14 hottmenu.o
.progmem.data.__c.3205
0x00000950 0x17 hottmenu.o
.progmem.data.__c.3202
0x00000967 0x3 hottmenu.o
.progmem.data.__c.3200
0x0000096a 0xa hottmenu.o
.progmem.data.__c.3198
0x00000974 0x9 hottmenu.o
.progmem.data.__c.3196
0x0000097d 0x9 hottmenu.o
.progmem.data.__c.3194
0x00000986 0xa hottmenu.o
.progmem.data.__c.3190
0x00000990 0x1b hottmenu.o
.progmem.data.__c.3188
0x000009ab 0x1b hottmenu.o
.progmem.data.__c.3173
0x000009c6 0x16 hottmenu.o
.progmem.data.__c.3171
0x000009dc 0x13 hottmenu.o
.progmem.data.__c.3169
0x000009ef 0x6 hottmenu.o
.progmem.data.__c.3167
0x000009f5 0xb hottmenu.o
.progmem.data.__c.3163
0x00000a00 0x19 hottmenu.o
.progmem.data.__c.3161
0x00000a19 0x10 hottmenu.o
.progmem.data.__c.3159
0x00000a29 0xc hottmenu.o
.progmem.data.__c.3157
0x00000a35 0xb hottmenu.o
.progmem.data.__c.3154
0x00000a40 0x3 hottmenu.o
.progmem.data.__c.3150
0x00000a43 0x3 hottmenu.o
.progmem.data.__c.3148
0x00000a46 0x3 hottmenu.o
.progmem.data.__c.3145
0x00000a49 0xa hottmenu.o
.progmem.data.__c.3143
0x00000a53 0x9 hottmenu.o
.progmem.data.__c.3141
0x00000a5c 0x2 hottmenu.o
.progmem.data.__c.3138
0x00000a5e 0x16 hottmenu.o
.progmem.data.__c.3136
0x00000a74 0x16 hottmenu.o
.progmem.data.__c.3134
0x00000a8a 0x2 hottmenu.o
.progmem.data.__c.3132
0x00000a8c 0x2 hottmenu.o
.progmem.data.__c.3130
0x00000a8e 0x2 hottmenu.o
.progmem.data.__c.3127
0x00000a90 0xc hottmenu.o
.progmem.data.__c.3125
0x00000a9c 0x8 hottmenu.o
.progmem.data.__c.3123
0x00000aa4 0x8 hottmenu.o
.progmem.data.__c.3120
0x00000aac 0x2 hottmenu.o
.progmem.data.__c.3118
0x00000aae 0x2 hottmenu.o
.progmem.data.__c.3116
0x00000ab0 0xb hottmenu.o
.progmem.data.__c.3114
0x00000abb 0xd hottmenu.o
.progmem.data.__c.3112
0x00000ac8 0xd hottmenu.o
.progmem.data.__c.3108
0x00000ad5 0xa hottmenu.o
.progmem.data.__c.3106
0x00000adf 0xb hottmenu.o
.progmem.data.__c.3104
0x00000aea 0xc hottmenu.o
.progmem.data.__c.3102
0x00000af6 0xd hottmenu.o
.progmem.data.__c.3100
0x00000b03 0xd hottmenu.o
.progmem.data.__c.2991
0x00000b10 0x16 hottmenu.o
.progmem.data.HOTT_ERROR
0x00000b26 0x46 hottmenu.o
0x00000b26 HOTT_ERROR
.progmem.data.NC_ERROR_TEXT
0x00000b6c 0x253 hottmenu.o
0x00000b6c NC_ERROR_TEXT
.progmem.data.SETTING
0x00000dbf 0x7 hottmenu.o
0x00000dbf SETTING
.progmem.data.BOAT_MODE
0x00000dc6 0x16 hottmenu.o
0x00000dc6 BOAT_MODE
.progmem.data.SIMULATION
0x00000ddc 0x16 hottmenu.o
0x00000ddc SIMULATION
.progmem.data.LANDING
0x00000df2 0x16 hottmenu.o
0x00000df2 LANDING
.progmem.data.UNDERVOLTAGE
0x00000e08 0x16 hottmenu.o
0x00000e08 UNDERVOLTAGE
.progmem.data.MIKROKOPTER
0x00000e1e 0x16 hottmenu.o
0x00000e1e MIKROKOPTER
.progmem.data.__c.3126
0x00000e34 0xd jetimenu.o
.progmem.data.__c.3124
0x00000e41 0x13 jetimenu.o
.progmem.data.__c.3122
0x00000e54 0x5 jetimenu.o
.progmem.data.__c.3120
0x00000e59 0x5 jetimenu.o
.progmem.data.__c.3116
0x00000e5e 0x5 jetimenu.o
.progmem.data.__c.3113
0x00000e63 0xf jetimenu.o
.progmem.data.__c.3108
0x00000e72 0x3 jetimenu.o
.progmem.data.__c.3106
0x00000e75 0x3 jetimenu.o
.progmem.data.__c.3104
0x00000e78 0x6 jetimenu.o
.progmem.data.__c.3102
0x00000e7e 0x8 jetimenu.o
.progmem.data.__c.3100
0x00000e86 0xa jetimenu.o
.progmem.data.__c.3098
0x00000e90 0xb jetimenu.o
.progmem.data.__c.3096
0x00000e9b 0xb jetimenu.o
.progmem.data.__c.3094
0x00000ea6 0x7 jetimenu.o
.progmem.data.__c.3092
0x00000ead 0xe jetimenu.o
.progmem.data.__c.3085
0x00000ebb 0x3 jetimenu.o
.progmem.data.__c.3083
0x00000ebe 0x3 jetimenu.o
.progmem.data.__c.3081
0x00000ec1 0x6 jetimenu.o
.progmem.data.__c.3079
0x00000ec7 0x8 jetimenu.o
.progmem.data.__c.3077
0x00000ecf 0x9 jetimenu.o
.progmem.data.__c.3075
0x00000ed8 0xb jetimenu.o
.progmem.data.__c.3073
0x00000ee3 0x7 jetimenu.o
.progmem.data.__c.3071
0x00000eea 0xe jetimenu.o
.progmem.data.__c.3064
0x00000ef8 0x3 jetimenu.o
.progmem.data.__c.3062
0x00000efb 0x3 jetimenu.o
.progmem.data.__c.3060
0x00000efe 0x11 jetimenu.o
.progmem.data.__c.3058
0x00000f0f 0x12 jetimenu.o
.progmem.data.__c.3056
0x00000f21 0x4 jetimenu.o
.progmem.data.__c.3054
0x00000f25 0xb jetimenu.o
.progmem.data.__c.3052
0x00000f30 0xb jetimenu.o
.progmem.data.__c.3045
0x00000f3b 0x3 jetimenu.o
.progmem.data.__c.3043
0x00000f3e 0x3 jetimenu.o
.progmem.data.__c.3041
0x00000f41 0x11 jetimenu.o
.progmem.data.__c.3039
0x00000f52 0x4 jetimenu.o
.progmem.data.__c.3037
0x00000f56 0xb jetimenu.o
.progmem.data.__c.3035
0x00000f61 0xb jetimenu.o
.progmem.data.__c.3033
0x00000f6c 0xc jetimenu.o
.progmem.data.__c.3026
0x00000f78 0x11 jetimenu.o
.progmem.data.__c.3021
0x00000f89 0x11 jetimenu.o
.progmem.data.__c.3016
0x00000f9a 0xe jetimenu.o
.progmem.data.__c.3014
0x00000fa8 0xf jetimenu.o
.progmem.data.__c.3009
0x00000fb7 0xe jetimenu.o
.progmem.data.__c.3007
0x00000fc5 0xf jetimenu.o
.progmem.data.__c.3002
0x00000fd4 0x13 jetimenu.o
.progmem.data.__c.3000
0x00000fe7 0x13 jetimenu.o
.progmem.data.__c.2995
0x00000ffa 0xc jetimenu.o
.progmem.data.__c.2993
0x00001006 0x12 jetimenu.o
.progmem.data.__c.2988
0x00001018 0x9 jetimenu.o
.progmem.data.__c.2986
0x00001021 0x11 jetimenu.o
.progmem.data.__c.2984
0x00001032 0x10 jetimenu.o
.progmem.data.__c.2982
0x00001042 0x10 jetimenu.o
.progmem.data.__c.2977
0x00001052 0x2 jetimenu.o
.progmem.data.__c.2975
0x00001054 0x7 jetimenu.o
.progmem.data.__c.2973
0x0000105b 0xd jetimenu.o
.progmem.data.__c.2971
0x00001068 0xc jetimenu.o
.progmem.data.__c.2969
0x00001074 0x9 jetimenu.o
.progmem.data.__c.2967
0x0000107d 0xb jetimenu.o
.progmem.data.__c.2965
0x00001088 0xc jetimenu.o
.progmem.data.__c.2961
0x00001094 0xb jetimenu.o
.progmem.data.__c.2959
0x0000109f 0xd jetimenu.o
.progmem.data.__c.2957
0x000010ac 0x9 jetimenu.o
.progmem.data.JetiBox_Menu
0x000010b5 0x4e jetimenu.o
0x000010b5 JetiBox_Menu
.progmem.data.JETI_CODE
0x00001103 0x35 jeti_ex.o
0x00001103 JETI_CODE
.progmem.data.__c.3160
0x00001138 0x24 menu.o
.progmem.data.__c.3158
0x0000115c 0xc menu.o
.progmem.data.__c.3155
0x00001168 0x3 menu.o
.progmem.data.__c.3153
0x0000116b 0x3 menu.o
.progmem.data.__c.3151
0x0000116e 0x3 menu.o
.progmem.data.__c.3149
0x00001171 0x11 menu.o
.progmem.data.__c.3147
0x00001182 0x14 menu.o
.progmem.data.__c.3145
0x00001196 0x14 menu.o
.progmem.data.__c.3143
0x000011aa 0xf menu.o
.progmem.data.__c.3137
0x000011b9 0x11 menu.o
.progmem.data.__c.3135
0x000011ca 0xa menu.o
.progmem.data.__c.3133
0x000011d4 0xb menu.o
.progmem.data.__c.3127
0x000011df 0x11 menu.o
.progmem.data.__c.3125
0x000011f0 0xf menu.o
.progmem.data.__c.3119
0x000011ff 0x11 menu.o
.progmem.data.__c.3117
0x00001210 0x10 menu.o
.progmem.data.__c.3114
0x00001220 0xe menu.o
.progmem.data.__c.3112
0x0000122e 0xe menu.o
.progmem.data.__c.3110
0x0000123c 0xe menu.o
.progmem.data.__c.3108
0x0000124a 0x8 menu.o
.progmem.data.__c.3105
0x00001252 0xe menu.o
.progmem.data.__c.3103
0x00001260 0xe menu.o
.progmem.data.__c.3101
0x0000126e 0xe menu.o
.progmem.data.__c.3099
0x0000127c 0x8 menu.o
.progmem.data.__c.3096
0x00001284 0x8 menu.o
.progmem.data.__c.3094
0x0000128c 0xd menu.o
.progmem.data.__c.3092
0x00001299 0xd menu.o
.progmem.data.__c.3090
0x000012a6 0xe menu.o
.progmem.data.__c.3084
0x000012b4 0xd menu.o
.progmem.data.__c.3078
0x000012c1 0xd menu.o
.progmem.data.__c.3075
0x000012ce 0xe menu.o
.progmem.data.__c.3073
0x000012dc 0xe menu.o
.progmem.data.__c.3071
0x000012ea 0xe menu.o
.progmem.data.__c.3069
0x000012f8 0x10 menu.o
.progmem.data.__c.3066
0x00001308 0x10 menu.o
.progmem.data.__c.3064
0x00001318 0x10 menu.o
.progmem.data.__c.3062
0x00001328 0x9 menu.o
.progmem.data.__c.3059
0x00001331 0x12 menu.o
.progmem.data.__c.3057
0x00001343 0x10 menu.o
.progmem.data.__c.3055
0x00001353 0x14 menu.o
.progmem.data.__c.3053
0x00001367 0x14 menu.o
.progmem.data.__c.3050
0x0000137b 0xf menu.o
.progmem.data.__c.3048
0x0000138a 0xf menu.o
.progmem.data.__c.3046
0x00001399 0xf menu.o
.progmem.data.__c.3044
0x000013a8 0xd menu.o
.progmem.data.__c.3041
0x000013b5 0xf menu.o
.progmem.data.__c.3039
0x000013c4 0xf menu.o
.progmem.data.__c.3037
0x000013d3 0xf menu.o
.progmem.data.__c.3035
0x000013e2 0xe menu.o
.progmem.data.__c.3032
0x000013f0 0x10 menu.o
.progmem.data.__c.3030
0x00001400 0x10 menu.o
.progmem.data.__c.3028
0x00001410 0x10 menu.o
.progmem.data.__c.3026
0x00001420 0x10 menu.o
.progmem.data.__c.3020
0x00001430 0x12 menu.o
.progmem.data.__c.3017
0x00001442 0xf menu.o
.progmem.data.__c.3015
0x00001451 0xf menu.o
.progmem.data.__c.3013
0x00001460 0xf menu.o
.progmem.data.__c.3011
0x0000146f 0xd menu.o
.progmem.data.__c.3008
0x0000147c 0x3 menu.o
.progmem.data.__c.3006
0x0000147f 0x4 menu.o
.progmem.data.__c.3004
0x00001483 0xd menu.o
.progmem.data.__c.3002
0x00001490 0xd menu.o
.progmem.data.__c.3000
0x0000149d 0xd menu.o
.progmem.data.__c.2998
0x000014aa 0xd menu.o
.progmem.data.__c.2994
0x000014b7 0x14 menu.o
.progmem.data.__c.2992
0x000014cb 0xd menu.o
.progmem.data.__c.2990
0x000014d8 0x16 menu.o
.progmem.data.__c.2988
0x000014ee 0x17 menu.o
.progmem.data.__c.2986
0x00001505 0x8 menu.o
.progmem.data.__c.2984
0x0000150d 0xd menu.o
.progmem.data.__c.2982
0x0000151a 0x5 menu.o
.progmem.data.__c.2980
0x0000151f 0xa menu.o
.progmem.data.__c.2978
0x00001529 0x18 menu.o
.progmem.data.__c.2976
0x00001541 0x10 menu.o
.progmem.data.__c.2973
0x00001551 0x5 menu.o
.progmem.data.__c.2971
0x00001556 0x5 menu.o
.progmem.data.pgm_sinlookup
0x0000155b 0xb6 mymath.o
0x0000155b pgm_sinlookup
.progmem.data.__c.3146
0x00001611 0x11 uart.o
.progmem.data.__c.3143
0x00001622 0x15 uart.o
.progmem.data.__c.3101
0x00001637 0xe uart.o
.progmem.data.__c.3095
0x00001645 0xe uart.o
.progmem.data.__c.3080
0x00001653 0x10 uart.o
.progmem.data.__c.3069
0x00001663 0xc uart.o
.progmem.data.ANALOG_TEXT
0x0000166f 0x200 uart.o
0x0000166f ANALOG_TEXT
.progmem.data 0x0000186f 0x170 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
0x0000186f Msg2
0x00001897 Msg1
0x000018e7 Rec_USER
0x000018ec Rec_HoTT
0x000018f4 Rec_ACT_DSL
0x000018fc Rec_Jeti
0x00001901 Rec_Spektrum
0x0000190a Rec_PPM
0x000019e0 . = ALIGN (0x2)
*fill* 0x000019df 0x1
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x000019e0 __ctors_start = .
*(.ctors)
0x000019e0 __ctors_end = .
0x000019e0 __dtors_start = .
*(.dtors)
0x000019e0 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x000019e0 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o
0x000019e0 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x000019e0 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x000019ec 0x1a c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
0x000019ec __do_copy_data
.init4 0x00001a06 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
0x00001a06 __do_clear_bss
*(.init4)
*(.init5)
.init5 0x00001a16 0x76 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
0x00001a16 ndfcvbghs
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x00001a8c 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o
*(.init9)
*(.text)
.text 0x00001a94 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o
0x00001a94 __vector_1
0x00001a94 __vector_32
0x00001a94 __vector_34
0x00001a94 __bad_interrupt
0x00001a94 __vector_6
0x00001a94 __vector_31
0x00001a94 __vector_3
0x00001a94 __vector_23
0x00001a94 __vector_25
0x00001a94 __vector_11
0x00001a94 __vector_13
0x00001a94 __vector_17
0x00001a94 __vector_19
0x00001a94 __vector_7
0x00001a94 __vector_27
0x00001a94 __vector_5
0x00001a94 __vector_33
0x00001a94 __vector_4
0x00001a94 __vector_2
0x00001a94 __vector_21
0x00001a94 __vector_15
0x00001a94 __vector_29
0x00001a94 __vector_8
0x00001a94 __vector_14
0x00001a94 __vector_10
0x00001a94 __vector_16
.text 0x00001a98 0x100 isqrt.o
0x00001a98 isqrt32
0x00001b02 isqrt16
0x00001b44 ihypot
.text 0x00001b98 0x1a84 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
0x00001b98 fomklkdtn89SFGrsgt9rf
0x00001c46 FGRT0589rge90gj459gg4
0x00001d78 DFGeefWEF43tgt5uGreg5
0x00001e5c FGtj76uzh56z3grEg5t45
0x00001edc LIBFC_JetiBox_Putchar
0x00001ef6 LIBFC_JetiBox_SetPos
0x00001f02 LIBFC_JetiBox_Clear
0x00001f14 INiuzBtergGIBuB76T0G5
0x00001fd2 KLNMIOHMUHG76GFGr43r3
0x00001fec __vector_30
0x000020fc update_crc
0x00002122 crc8
0x00002150 JetiEX_GetLength
0x00002174 JetiEX_CreatePacket
0x000023a8 a48784362857632195659
0x00002440 njkvnfuhgbuzrgezgf483
0x0000246e lkvgnfdgun57th38rgh84
0x0000249e fgmjgnrtuth587th9rTrw
0x000024c0 wqqeRT45jth8g758735h4
0x000024e2 IIllllIllIlllIIlllII
0x00002a16 LIBFC_HoTT_Putchar
0x00002a36 LIBFC_HoTT_Putchar_INV
0x00002a58 LIBFC_HoTT_Putchar_BLINK
0x00002a6a LIBFC_HoTT_SetPos
0x00002a74 LIBFC_HoTT_Clear
0x00002a86 HoTT_Init
0x00002c4e HoTT_Parser
0x00002cc0 HoTT_Polling
0x00002d40 ACC_AltitudeFusion
0x0000303e LIBFC_GetCPUType
0x00003096 awokdjwqdjcjuhcuweih
0x000030d0 LIBFC_ReceiverInit
0x00003232 LIBFC_Init
0x00003400 LIBFC_CheckSettings
0x0000342c LIBFC_Polling
0x00003542 __vector_28
0x0000361c . = ALIGN (0x2)
*(.text.*)
.text.ADC_Init
0x0000361c 0xc analog.o
0x0000361c ADC_Init
.text.CalcExpandBaroStep
0x00003628 0x6e analog.o
0x00003628 CalcExpandBaroStep
.text.SucheLuftruckOffset
0x00003696 0x174 analog.o
0x00003696 SucheLuftruckOffset
.text.__vector_24
0x0000380a 0xb64 analog.o
0x0000380a __vector_24
.text.Capacity_Init
0x0000436e 0x2e capacity.o
0x0000436e Capacity_Init
.text.BL3_Current
0x0000439c 0x5e capacity.o
0x0000439c BL3_Current
.text.Capacity_Update
0x000043fa 0x236 capacity.o
0x000043fa Capacity_Update
.text.Debug_Putchar
0x00004630 0x28 debug.o
0x00004630 Debug_Putchar
.text.DebugSend
0x00004658 0x24 debug.o
0x00004658 DebugSend
.text.RAM_Checksum
0x0000467c 0x1e eeprom.o
0x0000467c RAM_Checksum
.text.EEProm_Checksum
0x0000469a 0x48 eeprom.o
0x0000469a EEProm_Checksum
.text.ParamSet_DefaultStickMapping
0x000046e2 0x4a eeprom.o
0x000046e2 ParamSet_DefaultStickMapping
.text.CommonDefaults
0x0000472c 0x232 eeprom.o
0x0000472c CommonDefaults
.text.ParamSet_DefaultSet1
0x0000495e 0x66 eeprom.o
0x0000495e ParamSet_DefaultSet1
.text.ParamSet_DefaultSet2
0x000049c4 0x5c eeprom.o
0x000049c4 ParamSet_DefaultSet2
.text.ParamSet_DefaultSet3
0x00004a20 0x64 eeprom.o
0x00004a20 ParamSet_DefaultSet3
.text.GetParamByte
0x00004a84 0x6 eeprom.o
0x00004a84 GetParamByte
.text.SetParamByte
0x00004a8a 0x6 eeprom.o
0x00004a8a SetParamByte
.text.GetParamWord
0x00004a90 0x6 eeprom.o
0x00004a90 GetParamWord
.text.SetParamWord
0x00004a96 0x6 eeprom.o
0x00004a96 SetParamWord
.text.ParamSet_ReadFromEEProm
0x00004a9c 0x78 eeprom.o
0x00004a9c ParamSet_ReadFromEEProm
.text.MixerTable_ReadFromEEProm
0x00004b14 0x44 eeprom.o
0x00004b14 MixerTable_ReadFromEEProm
.text.MixerTable_WriteToEEProm
0x00004b58 0x2e eeprom.o
0x00004b58 MixerTable_WriteToEEProm
.text.MixerTable_Default
0x00004b86 0x8c eeprom.o
0x00004b86 MixerTable_Default
.text.GetActiveParamSet
0x00004c12 0x1e eeprom.o
0x00004c12 GetActiveParamSet
.text.SetActiveParamSet
0x00004c30 0x1c eeprom.o
0x00004c30 SetActiveParamSet
.text.ParamSet_WriteToEEProm
0x00004c4c 0xa4 eeprom.o
0x00004c4c ParamSet_WriteToEEProm
.text.SetDefaultParameter
0x00004cf0 0x6e eeprom.o
0x00004cf0 SetDefaultParameter
.text.ParamSet_Init
0x00004d5e 0x224 eeprom.o
0x00004d5e ParamSet_Init
.text.CopyDebugValues
0x00004f82 0x1f2 fc.o
0x00004f82 CopyDebugValues
.text.Piep 0x00005174 0x82 fc.o
0x00005174 Piep
.text.CalibrierMittelwert
0x000051f6 0xb0 fc.o
0x000051f6 CalibrierMittelwert
.text.SetNeutral
0x000052a6 0x76a fc.o
0x000052a6 SetNeutral
.text.Mittelwert
0x00005a10 0xd7e fc.o
0x00005a10 Mittelwert
.text.SendMotorData
0x0000678e 0x8e fc.o
0x0000678e SendMotorData
.text.GetChannelValue
0x0000681c 0x32 fc.o
0x0000681c GetChannelValue
.text.ParameterZuordnung
0x0000684e 0x73a fc.o
0x0000684e ParameterZuordnung
.text.CalcStickGasHover
0x00006f88 0x84 fc.o
0x00006f88 CalcStickGasHover
.text.MotorRegler
0x0000700c 0x428a fc.o
0x0000700c MotorRegler
.text.PrintLine
0x0000b296 0x24 FlightCtrl.o
0x0000b296 PrintLine
.text.CalMk3Mag
0x0000b2ba 0x66 FlightCtrl.o
0x0000b2ba CalMk3Mag
.text.LipoDetection
0x0000b320 0x21c FlightCtrl.o
0x0000b320 LipoDetection
.text.main 0x0000b53c 0xbb6 FlightCtrl.o
0x0000b53c main
.text.GetHottestBl
0x0000c0f2 0x76 hottmenu.o
0x0000c0f2 GetHottestBl
.text.Hott_ClearLine
0x0000c168 0x30 hottmenu.o
0x0000c168 Hott_ClearLine
.text.HoTT_Waring
0x0000c198 0xe4 hottmenu.o
0x0000c198 HoTT_Waring
.text.NC_Fills_HoTT_Telemety
0x0000c27c 0x94 hottmenu.o
0x0000c27c NC_Fills_HoTT_Telemety
.text.BuildHoTT_Vario
0x0000c310 0xda hottmenu.o
0x0000c310 BuildHoTT_Vario
.text.HoTT_Telemety
0x0000c3ea 0x854 hottmenu.o
0x0000c3ea HoTT_Telemety
.text.HoTT_Menu
0x0000cc3e 0x2b22 hottmenu.o
0x0000cc3e HoTT_Menu
.text.Menu_Temperature
0x0000f760 0xfe jetimenu.o
0x0000f760 Menu_Temperature
.text.Menu_Battery
0x0000f85e 0xf2 jetimenu.o
0x0000f85e Menu_Battery
.text.Magnet_Values
0x0000f950 0x88 jetimenu.o
0x0000f950 Magnet_Values
.text.Menu_WPL_A1
0x0000f9d8 0x56 jetimenu.o
0x0000f9d8 Menu_WPL_A1
.text.Menu_WPL_R1
0x0000fa2e 0x56 jetimenu.o
0x0000fa2e Menu_WPL_R1
.text.Menu_POINT_LD
0x0000fa84 0x2a jetimenu.o
0x0000fa84 Menu_POINT_LD
.text.Menu_POINT_SV
0x0000faae 0x2a jetimenu.o
0x0000faae Menu_POINT_SV
.text.Menu_POINT_SV2
0x0000fad8 0x1c0 jetimenu.o
0x0000fad8 Menu_POINT_SV2
.text.Menu_POINT_LD2
0x0000fc98 0x1ca jetimenu.o
0x0000fc98 Menu_POINT_LD2
.text.Menu_WPL_A2
0x0000fe62 0x1ea jetimenu.o
0x0000fe62 Menu_WPL_A2
.text.Menu_WPL_R2
0x0001004c 0x21e jetimenu.o
0x0001004c Menu_WPL_R2
.text.Menu_PosInfo
0x0001026a 0x16a jetimenu.o
0x0001026a Menu_PosInfo
.text.Menu_Status
0x000103d4 0x386 jetimenu.o
0x000103d4 Menu_Status
.text.JetiBox_Update
0x0001075a 0xfe jetimenu.o
0x0001075a JetiBox_Update
.text.BuildJeti_Vario
0x00010858 0x118 jeti_ex.o
0x00010858 BuildJeti_Vario
.text.JetiEX_Update
0x00010970 0x190 jeti_ex.o
0x00010970 JetiEX_Update
.text.LED_Init
0x00010b00 0x1e led.o
0x00010b00 LED_Init
.text.LED_Update
0x00010b1e 0x302 led.o
0x00010b1e LED_Update
.text.Menu_Putchar
0x00010e20 0x1a menu.o
0x00010e20 Menu_Putchar
.text.LcdClear
0x00010e3a 0x14 menu.o
0x00010e3a LcdClear
.text.Menu 0x00010e4e 0x140c menu.o
0x00010e4e Menu
.text.c_cos_8192
0x0001225a 0x92 mymath.o
0x0001225a c_cos_8192
.text.rc_sum_init
0x000122ec 0x7a rc.o
0x000122ec rc_sum_init
.text.__vector_12
0x00012366 0x224 rc.o
0x00012366 __vector_12
.text.SbusUartInit
0x0001258a 0x98 sbus.o
0x0001258a SbusUartInit
.text.SbusParser
0x00012622 0x44 sbus.o
0x00012622 SbusParser
.text.ProcessSBus
0x00012666 0x1d2 sbus.o
0x00012666 ProcessSBus
.text.SpektrumUartInit
0x00012838 0x92 Spektrum.o
0x00012838 SpektrumUartInit
.text.SpektrumParser
0x000128ca 0x2b0 Spektrum.o
0x000128ca SpektrumParser
.text.SPI_MasterInit
0x00012b7a 0x42 spi.o
0x00012b7a SPI_MasterInit
.text.SPI_TransmitByte
0x00012bbc 0xfc spi.o
0x00012bbc SPI_TransmitByte
.text.UpdateSPI_Buffer
0x00012cb8 0x9bc spi.o
0x00012cb8 UpdateSPI_Buffer
.text.SPI_StartTransmitPacket
0x00013674 0x54 spi.o
0x00013674 SPI_StartTransmitPacket
.text.__vector_18
0x000136c8 0x1ec timer0.o
0x000136c8 __vector_18
.text.SetDelay
0x000138b4 0x12 timer0.o
0x000138b4 SetDelay
.text.CheckDelay
0x000138c6 0x16 timer0.o
0x000138c6 CheckDelay
.text.Delay_ms_Mess
0x000138dc 0x4a timer0.o
0x000138dc Delay_ms_Mess
.text.TIMER2_Init
0x00013926 0x4e timer0.o
0x00013926 TIMER2_Init
.text.Timer_Init
0x00013974 0x32 timer0.o
0x00013974 Timer_Init
.text.CalcNickServoValue
0x000139a6 0x82 timer0.o
0x000139a6 CalcNickServoValue
.text.CalculateServo
0x00013a28 0x4b2 timer0.o
0x00013a28 CalculateServo
.text.__vector_9
0x00013eda 0x2b8 timer0.o
0x00013eda __vector_9
.text.I2C_Init
0x00014192 0x80 twimaster.o
0x00014192 I2C_Init
.text.I2C_Reset
0x00014212 0x54 twimaster.o
0x00014212 I2C_Reset
.text.__vector_26
0x00014266 0x632 twimaster.o
0x00014266 __vector_26
.text.I2C_WriteBLConfig
0x00014898 0x172 twimaster.o
0x00014898 I2C_WriteBLConfig
.text.I2C_ReadBLConfig
0x00014a0a 0x132 twimaster.o
0x00014a0a I2C_ReadBLConfig
.text.__vector_22
0x00014b3c 0x78 uart.o
0x00014b3c __vector_22
.text.__vector_20
0x00014bb4 0x226 uart.o
0x00014bb4 __vector_20
.text.AddCRC 0x00014dda 0x6c uart.o
0x00014dda AddCRC
.text.SendOutData
0x00014e46 0x1a6 uart.o
0x00014e46 SendOutData
.text.Decode64
0x00014fec 0xd2 uart.o
0x00014fec Decode64
.text.BearbeiteRxDaten
0x000150be 0x8b0 uart.o
0x000150be BearbeiteRxDaten
.text.uart_putchar
0x0001596e 0x10 uart.o
0x0001596e uart_putchar
.text.UART_Init
0x0001597e 0x82 uart.o
0x0001597e UART_Init
.text.DatenUebertragung
0x00015a00 0x60c uart.o
0x00015a00 DatenUebertragung
.text.User_Receiver_Init
0x0001600c 0x2 user_receiver.o
0x0001600c User_Receiver_Init
.text.User_RX_Parser
0x0001600e 0x2 user_receiver.o
0x0001600e User_RX_Parser
.text.avr-libc.fplib
0x00016010 0xa c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3.o)
0x00016010 __subsf3
0x00016012 __addsf3
.text.avr-libc.fplib
0x0001601a 0xc0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o)
0x00016034 __addsf3x
.text.avr-libc.fplib
0x000160da 0x58 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fixunssfsi.o)
0x000160da __fixunssfsi
.text.avr-libc.fplib
0x00016132 0x7a c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(floatsisf.o)
0x00016132 __floatunsisf
0x00016136 __floatsisf
.text.avr-libc.fplib
0x000161ac 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_inf.o)
0x000161ac __fp_inf
.text.avr-libc.fplib
0x000161b8 0x6 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_nan.o)
0x000161b8 __fp_nan
.text.avr-libc.fplib
0x000161be 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscA.o)
0x000161be __fp_pscA
.text.avr-libc.fplib
0x000161cc 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscB.o)
0x000161cc __fp_pscB
.text.avr-libc.fplib
0x000161da 0x22 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_round.o)
0x000161da __fp_round
.text.avr-libc.fplib
0x000161fc 0x44 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_split3.o)
0x000161fc __fp_split3
0x0001620c __fp_splitA
.text.avr-libc.fplib
0x00016240 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_zero.o)
0x00016240 __fp_zero
0x00016242 __fp_szero
.text.libgcc.mul
0x0001624e 0x1e c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
0x0001624e __mulsi3
.text.libgcc.div
0x0001626c 0x18 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
0x0001626c __udivmodqi4
.text.libgcc.div
0x00016284 0x28 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
0x00016284 __udivmodhi4
.text.libgcc.div
0x000162ac 0x26 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
0x000162ac _div
0x000162ac __divmodhi4
.text.libgcc.div
0x000162d2 0x44 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
0x000162d2 __udivmodsi4
.text.libgcc.div
0x00016316 0x28 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
0x00016316 __divmodsi4
.text.libgcc.div
0x0001633e 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
0x0001633e __negsi2
.text.libgcc 0x0001634e 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
0x0001634e __tablejump2__
0x00016352 __tablejump__
.text.libgcc.mul
0x0001635a 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
0x0001635a __mulhisi3
.text.libgcc.mul
0x00016366 0x1e c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
0x00016366 __umulhisi3
.text.libgcc.mul
0x00016384 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
0x00016384 __usmulhisi3
0x00016386 __usmulhisi3_tail
.text.libgcc.mul
0x00016390 0x14 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
0x00016390 __muluhisi3
.text.libgcc.mul
0x000163a4 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
0x000163a4 __mulshisi3
0x000163a8 __mulohisi3
.text.libgcc.prologue
0x000163b0 0x38 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
0x000163b0 __prologue_saves__
.text.libgcc.prologue
0x000163e8 0x36 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
0x000163e8 __epilogue_restores__
.text.avr-libc
0x0001641e 0x12 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy_P.o)
0x0001641e memcpy_P
.text.avr-libc
0x00016430 0x1a c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memchr.o)
0x00016430 memchr
.text.avr-libc
0x0001644a 0x12 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy.o)
0x0001644a memcpy
.text.avr-libc
0x0001645c 0x20 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_block_atmega1284.o)
0x0001645c __eerd_block_m1284
0x00016460 __eerd_blraw_m1284
.text.avr-libc
0x0001647c 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_byte_atmega1284.o)
0x0001647c __eerd_byte_m1284
.text.avr-libc
0x0001648c 0xa c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_word_atmega1284.o)
0x0001648c __eerd_word_m1284
.text.avr-libc
0x00016496 0x12 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_block_atmega1284.o)
0x00016496 __eewr_block_m1284
.text.avr-libc
0x000164a8 0x1c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_byte_atmega1284.o)
0x000164a8 __eewr_byte_m1284
0x000164aa __eewr_r18_m1284
.text.avr-libc
0x000164c4 0x6 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_word_atmega1284.o)
0x000164c4 __eewr_word_m1284
0x000164ca . = ALIGN (0x2)
*(.fini9)
.fini9 0x000164ca 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
0x000164ca _exit
0x000164ca exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x000164ca 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
*(.fini0)
0x000164ce _etext = .
 
.data 0x00800100 0x1ea load address 0x000164ce
0x00800100 PROVIDE (__data_start, .)
*(.data)
.data 0x00800100 0xa C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
0x00800100 CallBootloader2
0x00800102 adad_HiSystems_GmbH_
0x00800104 md5
0x00800105 kf089uwjef89234hffhh
0x00800106 f8jhreghreGerg45gE542
*(.data*)
.data.AD_ACC_X
0x0080010a 0x1 analog.o
0x0080010a AD_ACC_X
.data.AD_ACC_Y
0x0080010b 0x1 analog.o
0x0080010b AD_ACC_Y
.data.CalAthmospheare
0x0080010c 0x1 analog.o
0x0080010c CalAthmospheare
.data.BaroStep
0x0080010d 0x2 analog.o
0x0080010d BaroStep
.data.AdReady 0x0080010f 0x1 analog.o
0x0080010f AdReady
.data.MessLuftdruck
0x00800110 0x2 analog.o
0x00800110 MessLuftdruck
.data.Luftdruck
0x00800112 0x4 analog.o
0x00800112 Luftdruck
.data.HiResRoll
0x00800116 0x2 analog.o
0x00800116 HiResRoll
.data.HiResNick
0x00800118 0x2 analog.o
0x00800118 HiResNick
.data.UBat 0x0080011a 0x2 analog.o
0x0080011a UBat
.data.delay.3251
0x0080011c 0x1 fc.o
.data.trigger.3226
0x0080011d 0x2 fc.o
.data.old_switch.3227
0x0080011f 0x1 fc.o
.data.VarioCharacter
0x00800120 0x1 fc.o
0x00800120 VarioCharacter
.data.GIER_GRAD_FAKTOR
0x00800121 0x4 fc.o
0x00800121 GIER_GRAD_FAKTOR
.data.ExternHoehenValue
0x00800125 0x2 fc.o
0x00800125 ExternHoehenValue
.data.Parameter_DynamicStability
0x00800127 0x1 fc.o
0x00800127 Parameter_DynamicStability
.data.Parameter_CouplingYawCorrection
0x00800128 0x1 fc.o
0x00800128 Parameter_CouplingYawCorrection
.data.Parameter_AchsKopplung2
0x00800129 0x1 fc.o
0x00800129 Parameter_AchsKopplung2
.data.Parameter_AchsKopplung1
0x0080012a 0x1 fc.o
0x0080012a Parameter_AchsKopplung1
.data.Parameter_LoopGasLimit
0x0080012b 0x1 fc.o
0x0080012b Parameter_LoopGasLimit
.data.Parameter_ServoRollComp
0x0080012c 0x1 fc.o
0x0080012c Parameter_ServoRollComp
.data.Parameter_ServoNickComp
0x0080012d 0x1 fc.o
0x0080012d Parameter_ServoNickComp
.data.Parameter_ServoRollControl
0x0080012e 0x1 fc.o
0x0080012e Parameter_ServoRollControl
.data.Parameter_ServoNickControl
0x0080012f 0x1 fc.o
0x0080012f Parameter_ServoNickControl
.data.Parameter_I_Faktor
0x00800130 0x1 fc.o
0x00800130 Parameter_I_Faktor
.data.Parameter_Gyro_Gier_I
0x00800131 0x1 fc.o
0x00800131 Parameter_Gyro_Gier_I
.data.Parameter_Gyro_Gier_P
0x00800132 0x1 fc.o
0x00800132 Parameter_Gyro_Gier_P
.data.Parameter_Gyro_I
0x00800133 0x1 fc.o
0x00800133 Parameter_Gyro_I
.data.Parameter_Gyro_P
0x00800134 0x1 fc.o
0x00800134 Parameter_Gyro_P
.data.Parameter_Gyro_D
0x00800135 0x1 fc.o
0x00800135 Parameter_Gyro_D
.data.Parameter_Hoehe_TiltCompensation
0x00800136 0x1 fc.o
0x00800136 Parameter_Hoehe_TiltCompensation
.data.Parameter_KompassWirkung
0x00800137 0x1 fc.o
0x00800137 Parameter_KompassWirkung
.data.Parameter_Hoehe_ACC_Wirkung
0x00800138 0x1 fc.o
0x00800138 Parameter_Hoehe_ACC_Wirkung
.data.Parameter_Hoehe_P
0x00800139 0x1 fc.o
0x00800139 Parameter_Hoehe_P
.data.Parameter_Luftdruck_D
0x0080013a 0x1 fc.o
0x0080013a Parameter_Luftdruck_D
.data.Ki 0x0080013b 0x2 fc.o
0x0080013b Ki
.data.carefree_old
0x0080013d 0x1 fc.o
0x0080013d carefree_old
.data.HoverGasMax
0x0080013e 0x2 fc.o
0x0080013e HoverGasMax
.data.StickGasHover
0x00800140 0x2 fc.o
0x00800140 StickGasHover
.data.Umschlag180Roll
0x00800142 0x4 fc.o
0x00800142 Umschlag180Roll
.data.Umschlag180Nick
0x00800146 0x4 fc.o
0x00800146 Umschlag180Nick
.data.KompassSignalSchlecht
0x0080014a 0x2 fc.o
0x0080014a KompassSignalSchlecht
.data.KompassFusion
0x0080014c 0x1 fc.o
0x0080014c KompassFusion
.data.CalculateCompassTimer
0x0080014d 0x1 fc.o
0x0080014d CalculateCompassTimer
.data.KompassValue
0x0080014e 0x2 fc.o
0x0080014e KompassValue
.data.stick.2973
0x00800150 0x1 FlightCtrl.o
.data.LipoCells
0x00800151 0x1 FlightCtrl.o
0x00800151 LipoCells
.data.ActiveParamSet
0x00800152 0x1 FlightCtrl.o
0x00800152 ActiveParamSet
.data.BattLowVoltageWarning
0x00800153 0x1 FlightCtrl.o
0x00800153 BattLowVoltageWarning
.data.PlatinenVersion
0x00800154 0x1 FlightCtrl.o
0x00800154 PlatinenVersion
.data.load_waypoint_tmp.3385
0x00800155 0x1 hottmenu.o
.data.load_waypoint_tmp2.3346
0x00800156 0x1 hottmenu.o
.data.SpeakHoTT
0x00800157 0x1 hottmenu.o
0x00800157 SpeakHoTT
.data.updateDelay.3143
0x00800158 0x1 jetimenu.o
.data.load_waypoint_tmp.3090
0x00800159 0x1 jetimenu.o
.data.load_waypoint_tmp.3069
0x0080015a 0x1 jetimenu.o
.data.load_waypoint_tmp.3050
0x0080015b 0x1 jetimenu.o
.data.load_waypoint_tmp.3031
0x0080015c 0x1 jetimenu.o
.data.toggle.2964
0x0080015d 0x1 jetimenu.o
.data.JetiExData
0x0080015e 0x130 jeti_ex.o
0x0080015e JetiExData
.data.J17Mask 0x0080028e 0x1 led.o
0x0080028e J17Mask
.data.J16Mask 0x0080028f 0x1 led.o
0x0080028f J16Mask
.data.MaxMenue
0x00800290 0x1 menu.o
0x00800290 MaxMenue
.data.PPM_Neutral
0x00800291 0x2 rc.o
0x00800291 PPM_Neutral
.data.NewPpmData
0x00800293 0x1 rc.o
0x00800293 NewPpmData
.data.ReSync.2967
0x00800294 0x1 Spektrum.o
.data.oldcommand.3000
0x00800295 0x1 spi.o
.data.NC_GPS_ModeCharacter
0x00800296 0x1 spi.o
0x00800296 NC_GPS_ModeCharacter
.data.SPI_CommandSequence
0x00800297 0xd spi.o
0x00800297 SPI_CommandSequence
.data.NaviDataOkay
0x008002a4 0x1 spi.o
0x008002a4 NaviDataOkay
.data.FromNC_Rotate_C
0x008002a5 0x1 spi.o
0x008002a5 FromNC_Rotate_C
.data.cnt_1ms.2982
0x008002a6 0x1 timer0.o
.data.NickServoValue
0x008002a7 0x2 timer0.o
0x008002a7 NickServoValue
.data.BeepMuster
0x008002a9 0x2 timer0.o
0x008002a9 BeepMuster
.data.ServoRollOffset
0x008002ab 0x2 timer0.o
0x008002ab ServoRollOffset
.data.ServoNickOffset
0x008002ad 0x2 timer0.o
0x008002ad ServoNickOffset
.data.CalculateServoSignals
0x008002af 0x1 timer0.o
0x008002af CalculateServoSignals
.data.I2CTimeout
0x008002b0 0x2 twimaster.o
0x008002b0 I2CTimeout
.data.Max_I2C_Packets
0x008002b2 0x1 twimaster.o
0x008002b2 Max_I2C_Packets
.data.ReadBlSize
0x008002b3 0x1 twimaster.o
0x008002b3 ReadBlSize
.data.MeineSlaveAdresse
0x008002b4 0x1 uart.o
0x008002b4 MeineSlaveAdresse
.data.PcZugriff
0x008002b5 0x1 uart.o
0x008002b5 PcZugriff
.data.DebugTextAnforderung
0x008002b6 0x1 uart.o
0x008002b6 DebugTextAnforderung
.data.UebertragungAbgeschlossen
0x008002b7 0x1 uart.o
0x008002b7 UebertragungAbgeschlossen
*(.rodata)
.rodata 0x008002b8 0xd eeprom.o
*(.rodata*)
.rodata.str1.1
0x008002c5 0x6 eeprom.o
.rodata.sintab
0x008002cb 0x1f fc.o
0x008002cb sintab
*(.gnu.linkonce.d*)
0x008002ea . = ALIGN (0x2)
0x008002ea _edata = .
0x008002ea PROVIDE (__data_end, .)
 
.bss 0x008002ea 0x9ef
0x008002ea PROVIDE (__bss_start, .)
*(.bss)
.bss 0x008002ea 0x3f C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
0x008002ea SinceV23
0x008002eb weiuncefcnsavsgvghjc
0x008002ec IllIIllIlIlIlIllllII
0x008002ed HoTTBlink
0x008002ee Hott_TxWait
0x008002ef HoTT_TxBytesLeft
0x008002f0 HoTT_DataPointer
0x008002f2 XSasC2389ufwejiCjuz32
0x008002f3 IIIIIlIllllllIIllIIll
0x008002f4 DJFIORJHcvjr894hjhffj
0x008002f5 fij48zrhoih3498fhfo90
0x008002f6 fojk48fj478fhw7fhw39
*(.bss*)
.bss.messanzahl_Druck.3021
0x00800329 0x1 analog.o
.bss.tmpLuftdruck.3020
0x0080032a 0x4 analog.o
.bss.roll_filter.3017
0x0080032e 0x2 analog.o
.bss.nick_filter.3016
0x00800330 0x2 analog.o
.bss.subcount.3012
0x00800332 0x2 analog.o
.bss.tmpVoltage.3031
0x00800334 0x2 analog.o
.bss.accx.3019
0x00800336 0x2 analog.o
.bss.accy.3018
0x00800338 0x2 analog.o
.bss.gier1.3013
0x0080033a 0x2 analog.o
.bss.roll1.3014
0x0080033c 0x2 analog.o
.bss.kanal.3010
0x0080033e 0x1 analog.o
.bss.nick1.3015
0x0080033f 0x2 analog.o
.bss.state.3011
0x00800341 0x1 analog.o
.bss.HoehenWertF_Mess
0x00800342 0x4 analog.o
0x00800342 HoehenWertF_Mess
.bss.HoehenWert_Mess
0x00800346 0x4 analog.o
0x00800346 HoehenWert_Mess
.bss.HoehenWertF
0x0080034a 0x4 analog.o
0x0080034a HoehenWertF
.bss.ExpandBaroStep
0x0080034e 0x4 analog.o
0x0080034e ExpandBaroStep
.bss.ZaehlMessungen
0x00800352 0x2 analog.o
0x00800352 ZaehlMessungen
.bss.VarioMeter
0x00800354 0x2 analog.o
0x00800354 VarioMeter
.bss.ExpandBaro
0x00800356 0x1 analog.o
0x00800356 ExpandBaro
.bss.SummenHoehe
0x00800357 0x4 analog.o
0x00800357 SummenHoehe
.bss.AdWertAccHoch
0x0080035b 0x2 analog.o
0x0080035b AdWertAccHoch
.bss.AdWertAccNick
0x0080035d 0x2 analog.o
0x0080035d AdWertAccNick
.bss.AdWertAccRoll
0x0080035f 0x2 analog.o
0x0080035f AdWertAccRoll
.bss.AdWertGier
0x00800361 0x2 analog.o
0x00800361 AdWertGier
.bss.AdWertRoll
0x00800363 0x2 analog.o
0x00800363 AdWertRoll
.bss.AdWertNick
0x00800365 0x2 analog.o
0x00800365 AdWertNick
.bss.AdWertRollFilter
0x00800367 0x2 analog.o
0x00800367 AdWertRollFilter
.bss.AdWertNickFilter
0x00800369 0x2 analog.o
0x00800369 AdWertNickFilter
.bss.SubCounter.2993
0x0080036b 0x2 capacity.o
.bss.CurrentOffset.2994
0x0080036d 0x2 capacity.o
.bss.SumCurrentOffset.2995
0x0080036f 0x4 capacity.o
.bss.update_timer
0x00800373 0x2 capacity.o
0x00800373 update_timer
.bss.Debug_BufPtr
0x00800375 0x1 debug.o
0x00800375 Debug_BufPtr
.bss.SendDebugOutput
0x00800376 0x1 debug.o
0x00800376 SendDebugOutput
.bss.HoverGasFilter.3250
0x00800377 0x4 fc.o
.bss.FilterHCGas.3249
0x0080037b 0x2 fc.o
.bss.tmp_long2.3217
0x0080037d 0x4 fc.o
.bss.tmp_long.3216
0x00800381 0x4 fc.o
.bss.HeightDeviation.3248
0x00800385 0x2 fc.o
.bss.HeightTrimming.3247
0x00800387 0x2 fc.o
.bss.BaroAtUpperLimit.3252
0x00800389 0x1 fc.o
.bss.BaroAtLowerLimit.3253
0x0080038a 0x1 fc.o
.bss.u_filter.3244
0x0080038b 0x2 fc.o
.bss.slower.3243
0x0080038d 0x1 fc.o
.bss.MittelIntegralRoll_Alt.3237
0x0080038e 0x4 fc.o
.bss.MittelIntegralNick_Alt.3236
0x00800392 0x4 fc.o
.bss.stick_roll.3230
0x00800396 0x2 fc.o
.bss.stick_nick.3229
0x00800398 0x2 fc.o
.bss.delay_ausschalten.3221
0x0080039a 0x1 fc.o
.bss.delay_einschalten.3220
0x0080039b 0x1 fc.o
.bss.move_safety_switch.3222
0x0080039c 0x1 fc.o
.bss.delay_neutral.3219
0x0080039d 0x1 fc.o
.bss.sollGier.3215
0x0080039e 0x4 fc.o
.bss.RcLostTimer.3218
0x008003a2 0x2 fc.o
.bss.d2Roll.3179
0x008003a4 0x2 fc.o
.bss.oldRoll.3178
0x008003a6 0x2 fc.o
.bss.d2Nick.3180
0x008003a8 0x2 fc.o
.bss.oldNick.3177
0x008003aa 0x2 fc.o
.bss.tmpl2.3174
0x008003ac 0x4 fc.o
.bss.tmpl.3173
0x008003b0 0x4 fc.o
.bss.tmpl4.3176
0x008003b4 0x4 fc.o
.bss.tmpl3.3175
0x008003b8 0x4 fc.o
.bss.DriftRoll
0x008003bc 0x2 fc.o
0x008003bc DriftRoll
.bss.DriftNick
0x008003be 0x2 fc.o
0x008003be DriftNick
.bss.LowVoltageHomeActive
0x008003c0 0x1 fc.o
0x008003c0 LowVoltageHomeActive
.bss.LowVoltageLandingActive
0x008003c1 0x1 fc.o
0x008003c1 LowVoltageLandingActive
.bss.ACC_AltitudeControl
0x008003c2 0x1 fc.o
0x008003c2 ACC_AltitudeControl
.bss.Variance 0x008003c3 0x2 fc.o
0x008003c3 Variance
.bss.GasIsZeroCnt
0x008003c5 0x2 fc.o
0x008003c5 GasIsZeroCnt
.bss.HooverGasEmergencyPercent
0x008003c7 0x2 fc.o
0x008003c7 HooverGasEmergencyPercent
.bss.FC_StatusFlags3
0x008003c9 0x1 fc.o
0x008003c9 FC_StatusFlags3
.bss.FC_StatusFlags2
0x008003ca 0x1 fc.o
0x008003ca FC_StatusFlags2
.bss.FC_StatusFlags
0x008003cb 0x1 fc.o
0x008003cb FC_StatusFlags
.bss.modell_fliegt
0x008003cc 0x2 fc.o
0x008003cc modell_fliegt
.bss.MaxStickRoll
0x008003ce 0x2 fc.o
0x008003ce MaxStickRoll
.bss.MaxStickNick
0x008003d0 0x2 fc.o
0x008003d0 MaxStickNick
.bss.ExternStickGier
0x008003d2 0x2 fc.o
0x008003d2 ExternStickGier
.bss.ExternStickRoll
0x008003d4 0x2 fc.o
0x008003d4 ExternStickRoll
.bss.ExternStickNick
0x008003d6 0x2 fc.o
0x008003d6 ExternStickNick
.bss.CareFree 0x008003d8 0x1 fc.o
0x008003d8 CareFree
.bss.Parameter_UserParam8
0x008003d9 0x1 fc.o
0x008003d9 Parameter_UserParam8
.bss.Parameter_UserParam7
0x008003da 0x1 fc.o
0x008003da Parameter_UserParam7
.bss.Parameter_UserParam6
0x008003db 0x1 fc.o
0x008003db Parameter_UserParam6
.bss.Parameter_UserParam5
0x008003dc 0x1 fc.o
0x008003dc Parameter_UserParam5
.bss.Parameter_UserParam4
0x008003dd 0x1 fc.o
0x008003dd Parameter_UserParam4
.bss.Parameter_UserParam3
0x008003de 0x1 fc.o
0x008003de Parameter_UserParam3
.bss.Parameter_UserParam2
0x008003df 0x1 fc.o
0x008003df Parameter_UserParam2
.bss.Parameter_UserParam1
0x008003e0 0x1 fc.o
0x008003e0 Parameter_UserParam1
.bss.Parameter_HoehenSchalter
0x008003e1 0x1 fc.o
0x008003e1 Parameter_HoehenSchalter
.bss.Looping_Oben
0x008003e2 0x1 fc.o
0x008003e2 Looping_Oben
.bss.Looping_Unten
0x008003e3 0x1 fc.o
0x008003e3 Looping_Unten
.bss.Looping_Rechts
0x008003e4 0x1 fc.o
0x008003e4 Looping_Rechts
.bss.Looping_Links
0x008003e5 0x1 fc.o
0x008003e5 Looping_Links
.bss.Looping_Roll
0x008003e6 0x1 fc.o
0x008003e6 Looping_Roll
.bss.Looping_Nick
0x008003e7 0x1 fc.o
0x008003e7 Looping_Nick
.bss.HoverGas 0x008003e8 0x2 fc.o
0x008003e8 HoverGas
.bss.LageKorrekturNick
0x008003ea 0x2 fc.o
0x008003ea LageKorrekturNick
.bss.LageKorrekturRoll
0x008003ec 0x2 fc.o
0x008003ec LageKorrekturRoll
.bss.NeueKompassRichtungMerken
0x008003ee 0x1 fc.o
0x008003ee NeueKompassRichtungMerken
.bss.CalibrationDone
0x008003ef 0x1 fc.o
0x008003ef CalibrationDone
.bss.CompassGierSetpoint
0x008003f0 0x2 fc.o
0x008003f0 CompassGierSetpoint
.bss.WaypointTrimming
0x008003f2 0x1 fc.o
0x008003f2 WaypointTrimming
.bss.FromNC_AltitudeSpeed
0x008003f3 0x1 fc.o
0x008003f3 FromNC_AltitudeSpeed
.bss.FromNC_AltitudeSetpoint
0x008003f4 0x4 fc.o
0x008003f4 FromNC_AltitudeSetpoint
.bss.AltitudeSetpointTrimming
0x008003f8 0x2 fc.o
0x008003f8 AltitudeSetpointTrimming
.bss.SollHoehe
0x008003fa 0x4 fc.o
0x008003fa SollHoehe
.bss.HoehenWert
0x008003fe 0x4 fc.o
0x008003fe HoehenWert
.bss.StartTrigger
0x00800402 0x1 fc.o
0x00800402 StartTrigger
.bss.MotorenEin
0x00800403 0x1 fc.o
0x00800403 MotorenEin
.bss.SenderOkay
0x00800404 0x1 fc.o
0x00800404 SenderOkay
.bss.Poti 0x00800405 0x9 fc.o
0x00800405 Poti
.bss.StickGas 0x0080040e 0x2 fc.o
0x0080040e StickGas
.bss.StickGier
0x00800410 0x2 fc.o
0x00800410 StickGier
.bss.StickRoll
0x00800412 0x2 fc.o
0x00800412 StickRoll
.bss.StickNick
0x00800414 0x2 fc.o
0x00800414 StickNick
.bss.HoverGasMin
0x00800416 0x2 fc.o
0x00800416 HoverGasMin
.bss.GierGyroFehler
0x00800418 0x2 fc.o
0x00800418 GierGyroFehler
.bss.TrichterFlug
0x0080041a 0x1 fc.o
0x0080041a TrichterFlug
.bss.HoehenReglerAktiv
0x0080041b 0x1 fc.o
0x0080041b HoehenReglerAktiv
.bss.KompassSollWert
0x0080041c 0x2 fc.o
0x0080041c KompassSollWert
.bss.Mess_Integral_Hoch
0x0080041e 0x4 fc.o
0x0080041e Mess_Integral_Hoch
.bss.SummeRoll
0x00800422 0x4 fc.o
0x00800422 SummeRoll
.bss.SummeNick
0x00800426 0x4 fc.o
0x00800426 SummeNick
.bss.Mess_Integral_Gier2
0x0080042a 0x4 fc.o
0x0080042a Mess_Integral_Gier2
.bss.Mess_Integral_Gier
0x0080042e 0x4 fc.o
0x0080042e Mess_Integral_Gier
.bss.Mess_IntegralRoll
0x00800432 0x4 fc.o
0x00800432 Mess_IntegralRoll
.bss.Mess_IntegralNick
0x00800436 0x4 fc.o
0x00800436 Mess_IntegralNick
.bss.Integral_Gier
0x0080043a 0x4 fc.o
0x0080043a Integral_Gier
.bss.IntegralRoll
0x0080043e 0x4 fc.o
0x0080043e IntegralRoll
.bss.IntegralNick
0x00800442 0x4 fc.o
0x00800442 IntegralNick
.bss.NeutralAccZfine
0x00800446 0x1 fc.o
0x00800446 NeutralAccZfine
.bss.NeutralAccZ
0x00800447 0x2 fc.o
0x00800447 NeutralAccZ
.bss.NaviCntAcc
0x00800449 0x2 fc.o
0x00800449 NaviCntAcc
.bss.NeutralAccY
0x0080044b 0x2 fc.o
0x0080044b NeutralAccY
.bss.NeutralAccX
0x0080044d 0x2 fc.o
0x0080044d NeutralAccX
.bss.StartNeutralNick
0x0080044f 0x2 fc.o
0x0080044f StartNeutralNick
.bss.StartNeutralRoll
0x00800451 0x2 fc.o
0x00800451 StartNeutralRoll
.bss.AdNeutralGier
0x00800453 0x2 fc.o
0x00800453 AdNeutralGier
.bss.AdNeutralRoll
0x00800455 0x2 fc.o
0x00800455 AdNeutralRoll
.bss.AdNeutralNick
0x00800457 0x2 fc.o
0x00800457 AdNeutralNick
.bss.BaroExpandActive
0x00800459 0x2 fc.o
0x00800459 BaroExpandActive
.bss.second.3043
0x0080045b 0x1 FlightCtrl.o
.bss.JetiBeep 0x0080045c 0x1 FlightCtrl.o
0x0080045c JetiBeep
.bss.FoundMotors
0x0080045d 0x1 FlightCtrl.o
0x0080045d FoundMotors
.bss.FlugSekunden
0x0080045e 0x2 FlightCtrl.o
0x0080045e FlugSekunden
.bss.FlugMinutenGesamt
0x00800460 0x2 FlightCtrl.o
0x00800460 FlugMinutenGesamt
.bss.FlugMinuten
0x00800462 0x2 FlightCtrl.o
0x00800462 FlugMinuten
.bss.BattComingHomeVoltage
0x00800464 0x1 FlightCtrl.o
0x00800464 BattComingHomeVoltage
.bss.BattAutoLandingVoltage
0x00800465 0x1 FlightCtrl.o
0x00800465 BattAutoLandingVoltage
.bss.DisableRcOffBeeping
0x00800466 0x1 FlightCtrl.o
0x00800466 DisableRcOffBeeping
.bss.GPS_Aid_StickMultiplikator
0x00800467 0x1 GPS.o
0x00800467 GPS_Aid_StickMultiplikator
.bss.GPS_Roll 0x00800468 0x2 GPS.o
0x00800468 GPS_Roll
.bss.GPS_Nick 0x0080046a 0x2 GPS.o
0x0080046a GPS_Nick
.bss.changed.3460
0x0080046c 0x1 hottmenu.o
.bss.wp_tmp.3459
0x0080046d 0x1 hottmenu.o
.bss.changed.3423
0x0080046e 0x1 hottmenu.o
.bss.wp_tmp.3422
0x0080046f 0x1 hottmenu.o
.bss.changed.3386
0x00800470 0x1 hottmenu.o
.bss.changed2.3347
0x00800471 0x1 hottmenu.o
.bss.show_poti.3096
0x00800472 0x1 hottmenu.o
.bss.show_current.3094
0x00800473 0x1 hottmenu.o
.bss.show_mag.3095
0x00800474 0x1 hottmenu.o
.bss.line.3092
0x00800475 0x1 hottmenu.o
.bss.page.3093
0x00800476 0x1 hottmenu.o
.bss.repeat.2998
0x00800477 0x2 hottmenu.o
.bss.old_status.2997
0x00800479 0x1 hottmenu.o
.bss.tmp_min.2986
0x0080047a 0x1 hottmenu.o
.bss.who.2987 0x0080047b 0x1 hottmenu.o
.bss.tmp_max.2985
0x0080047c 0x1 hottmenu.o
.bss.search.2984
0x0080047d 0x1 hottmenu.o
.bss.HoTTVarioMeter
0x0080047e 0x2 hottmenu.o
0x0080047e HoTTVarioMeter
.bss.ShowSettingNameTime
0x00800480 0x1 hottmenu.o
0x00800480 ShowSettingNameTime
.bss.ToNC_SpeakHoTT
0x00800481 0x1 hottmenu.o
0x00800481 ToNC_SpeakHoTT
.bss.HottestBl
0x00800482 0x1 hottmenu.o
0x00800482 HottestBl
.bss.MinBlTemperture
0x00800483 0x1 hottmenu.o
0x00800483 MinBlTemperture
.bss.MaxBlTemperture
0x00800484 0x1 hottmenu.o
0x00800484 MaxBlTemperture
.bss.NaviData_TargetDistance
0x00800485 0x2 hottmenu.o
0x00800485 NaviData_TargetDistance
.bss.ToNC_Store_SingePoint
0x00800487 0x1 hottmenu.o
0x00800487 ToNC_Store_SingePoint
.bss.ToNC_Load_SingePoint
0x00800488 0x1 hottmenu.o
0x00800488 ToNC_Load_SingePoint
.bss.NaviData_MaxWpListIndex
0x00800489 0x1 hottmenu.o
0x00800489 NaviData_MaxWpListIndex
.bss.ToNC_Load_WP_List
0x0080048a 0x1 hottmenu.o
0x0080048a ToNC_Load_WP_List
.bss.NaviData_TargetHoldTime
0x0080048b 0x1 hottmenu.o
0x0080048b NaviData_TargetHoldTime
.bss.NaviData_WaypointNumber
0x0080048c 0x1 hottmenu.o
0x0080048c NaviData_WaypointNumber
.bss.NaviData_WaypointIndex
0x0080048d 0x1 hottmenu.o
0x0080048d NaviData_WaypointIndex
.bss.last_key.3144
0x0080048e 0x1 jetimenu.o
.bss.last_item.3142
0x0080048f 0x1 jetimenu.o
.bss.item.3141
0x00800490 0x1 jetimenu.o
.bss.changed.3091
0x00800491 0x1 jetimenu.o
.bss.changed.3070
0x00800492 0x1 jetimenu.o
.bss.changed.3051
0x00800493 0x1 jetimenu.o
.bss.changed.3032
0x00800494 0x1 jetimenu.o
.bss.timer.2963
0x00800495 0x2 jetimenu.o
.bss.JetiVarioMeter.2958
0x00800497 0x2 jeti_ex.o
.bss.J17Warn.2969
0x00800499 0x1 led.o
.bss.J16Warn.2968
0x0080049a 0x1 led.o
.bss.J17Bitmask.2967
0x0080049b 0x1 led.o
.bss.J16Bitmask.2966
0x0080049c 0x1 led.o
.bss.delay.2965
0x0080049d 0x1 led.o
.bss.from_nc.2970
0x0080049e 0x1 led.o
.bss.NC_Wait_for_LED
0x0080049f 0x1 led.o
0x0080049f NC_Wait_for_LED
.bss.J17Blinkcount
0x008004a0 0x1 led.o
0x008004a0 J17Blinkcount
.bss.J16Blinkcount
0x008004a1 0x1 led.o
0x008004a1 J16Blinkcount
.bss.RemoteKeys
0x008004a2 0x1 menu.o
0x008004a2 RemoteKeys
.bss.MenuePunkt
0x008004a3 0x1 menu.o
0x008004a3 MenuePunkt
.bss.DispPtr 0x008004a4 0x1 menu.o
0x008004a4 DispPtr
.bss.index.2973
0x008004a5 0x2 rc.o
.bss.AltICR.2970
0x008004a7 0x2 rc.o
.bss.load.2969
0x008004a9 0x1 sbus.o
.bss.ptr.2965 0x008004aa 0x1 sbus.o
.bss.NewSBusData
0x008004ab 0x1 sbus.o
0x008004ab NewSBusData
.bss.Frame2.2968
0x008004ac 0x1 Spektrum.o
.bss.ByteHigh.2966
0x008004ad 0x1 Spektrum.o
.bss.Sync.2964
0x008004ae 0x1 Spektrum.o
.bss.FrameCnt.2965
0x008004af 0x1 Spektrum.o
.bss.SpektrumTimer
0x008004b0 0x1 Spektrum.o
0x008004b0 SpektrumTimer
.bss.slow_command.3001
0x008004b1 0x1 spi.o
.bss.motorindex.2999
0x008004b2 0x1 spi.o
.bss.rxchksum.2989
0x008004b3 0x1 spi.o
.bss.SPI_RXState.2987
0x008004b4 0x1 spi.o
.bss.POI_KameraNick
0x008004b5 0x2 spi.o
0x008004b5 POI_KameraNick
.bss.NC_To_FC_Flags
0x008004b7 0x1 spi.o
0x008004b7 NC_To_FC_Flags
.bss.EarthMagneticInclinationTheoretic
0x008004b8 0x1 spi.o
0x008004b8 EarthMagneticInclinationTheoretic
.bss.EarthMagneticInclination
0x008004b9 0x1 spi.o
0x008004b9 EarthMagneticInclination
.bss.EarthMagneticField
0x008004ba 0x1 spi.o
0x008004ba EarthMagneticField
.bss.NC_ErrorCode
0x008004bb 0x1 spi.o
0x008004bb NC_ErrorCode
.bss.SPI_CommandCounter
0x008004bc 0x1 spi.o
0x008004bc SPI_CommandCounter
.bss.FromNC_WP_EventChannel_New
0x008004bd 0x1 spi.o
0x008004bd FromNC_WP_EventChannel_New
.bss.FromNC_Rotate_S
0x008004be 0x1 spi.o
0x008004be FromNC_Rotate_S
.bss.ServoFrameTime.3030
0x008004bf 0x2 timer0.o
.bss.ServoIndex.3031
0x008004c1 0x1 timer0.o
.bss.PulseOutput.3029
0x008004c2 0x1 timer0.o
.bss.cnt.2983 0x008004c3 0x1 timer0.o
.bss.ServoRollValue
0x008004c4 0x2 timer0.o
0x008004c4 ServoRollValue
.bss.ServoNickValue
0x008004c6 0x2 timer0.o
0x008004c6 ServoNickValue
.bss.RemainingPulse
0x008004c8 0x2 timer0.o
0x008004c8 RemainingPulse
.bss.JustMK3MagConnected
0x008004ca 0x1 timer0.o
0x008004ca JustMK3MagConnected
.bss.ServoActive
0x008004cb 0x1 timer0.o
0x008004cb ServoActive
.bss.BytegapSPI
0x008004cc 0x1 timer0.o
0x008004cc BytegapSPI
.bss.beeptime 0x008004cd 0x2 timer0.o
0x008004cd beeptime
.bss.cntKompass
0x008004cf 0x2 timer0.o
0x008004cf cntKompass
.bss.UpdateMotor
0x008004d1 0x1 timer0.o
0x008004d1 UpdateMotor
.bss.CountMilliseconds
0x008004d2 0x2 timer0.o
0x008004d2 CountMilliseconds
.bss.motor_read_temperature.3012
0x008004d4 0x1 twimaster.o
.bss.missing_motor.3011
0x008004d5 0x1 twimaster.o
.bss.BuffLen.3014
0x008004d6 0x1 twimaster.o
.bss.pBuff.3013
0x008004d7 0x2 twimaster.o
.bss.max_packets.3015
0x008004d9 0x1 twimaster.o
.bss.BLConfig_ReadMask
0x008004da 0x2 twimaster.o
0x008004da BLConfig_ReadMask
.bss.BLConfig_WriteMask
0x008004dc 0x2 twimaster.o
0x008004dc BLConfig_WriteMask
.bss.BLFlags 0x008004de 0x1 twimaster.o
0x008004de BLFlags
.bss.MissingMotor
0x008004df 0x1 twimaster.o
0x008004df MissingMotor
.bss.I2C_TransferActive
0x008004e0 0x1 twimaster.o
0x008004e0 I2C_TransferActive
.bss.motor_read
0x008004e1 0x1 twimaster.o
0x008004e1 motor_read
.bss.motor_write
0x008004e2 0x1 twimaster.o
0x008004e2 motor_write
.bss.twi_state
0x008004e3 0x1 twimaster.o
0x008004e3 twi_state
.bss.crc2.3007
0x008004e4 0x1 uart.o
.bss.crc1.3006
0x008004e5 0x1 uart.o
.bss.crc.3005 0x008004e6 0x2 uart.o
.bss.UartState.3009
0x008004e8 0x1 uart.o
.bss.buf_ptr.3008
0x008004e9 0x1 uart.o
.bss.ptr.2998 0x008004ea 0x2 uart.o
.bss.ReceiverUpdateModeActive
0x008004ec 0x1 uart.o
0x008004ec ReceiverUpdateModeActive
.bss.AboTimeOut
0x008004ed 0x2 uart.o
0x008004ed AboTimeOut
.bss.Display_Interval
0x008004ef 0x2 uart.o
0x008004ef Display_Interval
.bss.Intervall3D
0x008004f1 0x2 uart.o
0x008004f1 Intervall3D
.bss.DebugDataIntervall
0x008004f3 0x2 uart.o
0x008004f3 DebugDataIntervall
.bss.PC_MotortestActive
0x008004f5 0x1 uart.o
0x008004f5 PC_MotortestActive
.bss.RxDataLen
0x008004f6 0x1 uart.o
0x008004f6 RxDataLen
.bss.pRxData 0x008004f7 0x2 uart.o
0x008004f7 pRxData
.bss.AnzahlEmpfangsBytes
0x008004f9 0x1 uart.o
0x008004f9 AnzahlEmpfangsBytes
.bss.CntCrcError
0x008004fa 0x1 uart.o
0x008004fa CntCrcError
.bss.NeuerDatensatzEmpfangen
0x008004fb 0x1 uart.o
0x008004fb NeuerDatensatzEmpfangen
.bss.SioTmp 0x008004fc 0x1 uart.o
0x008004fc SioTmp
.bss.DisplayLine
0x008004fd 0x1 uart.o
0x008004fd DisplayLine
.bss.GetPPMChannelAnforderung
0x008004fe 0x1 uart.o
0x008004fe GetPPMChannelAnforderung
.bss.GetVersionAnforderung
0x008004ff 0x1 uart.o
0x008004ff GetVersionAnforderung
.bss.DebugDataAnforderung
0x00800500 0x1 uart.o
0x00800500 DebugDataAnforderung
.bss.DebugDisplayAnforderung
0x00800501 0x1 uart.o
0x00800501 DebugDisplayAnforderung
.bss.DebugDisplayAnforderung1
0x00800502 0x1 uart.o
0x00800502 DebugDisplayAnforderung1
.bss.GetExternalControl
0x00800503 0x1 uart.o
0x00800503 GetExternalControl
*(COMMON)
COMMON 0x00800504 0x11 analog.o
0x00800504 Aktuell_ay
0x00800506 Aktuell_az
0x00800508 StartLuftdruck
0x0080050c Aktuell_Nick
0x0080050e Aktuell_Roll
0x00800510 Aktuell_ax
0x00800512 DruckOffsetSetting
0x00800513 Aktuell_Gier
COMMON 0x00800515 0x7 capacity.o
0x00800515 Capacity
COMMON 0x0080051c 0x21 debug.o
0x0080051c tDebug
COMMON 0x0080053d 0xd8 eeprom.o
0x0080053d RequiredMotors
0x0080053e EE_Parameter
0x008005c7 Mixer
COMMON 0x00800615 0x63 fc.o
0x00800615 KopplungsteilNickRoll
0x00800617 KopplungsteilRollNick
0x00800619 Parameter_Servo4
0x0080061a DiffRoll
0x0080061c MesswertRoll
0x0080061e TrimNick
0x00800620 Parameter_NaviGpsP
0x00800621 ErsatzKompassInGrad
0x00800623 GyroFaktorGier
0x00800624 Parameter_MaximumAltitude
0x00800625 TrimRoll
0x00800627 MesswertNick
0x00800629 Parameter_NaviGpsI
0x0080062a RohMesswertRoll
0x0080062c MIN_GAS
0x0080062d CosAttitude
0x0080062f RohMesswertNick
0x00800631 IntegralFaktorGier
0x00800632 DiffNick
0x00800634 MittelIntegralNick
0x00800638 Parameter_Servo3
0x00800639 NaviAccNick
0x0080063b Parameter_J16Timing
0x0080063c MittelIntegralRoll
0x00800640 Parameter_ExtraConfig
0x00800641 Parameter_Servo5
0x00800642 IntegralFaktor
0x00800643 tmp_motorwert
0x0080065b Parameter_NaviGpsA
0x0080065c Parameter_GlobalConfig
0x0080065d Parameter_NaviWindCorrection
0x0080065e s
0x0080065f h
0x00800660 Mittelwert_AccNick
0x00800662 Parameter_NaviSpeedCompensation
0x00800663 Parameter_J17Timing
0x00800664 MAX_GAS
0x00800665 CompassCorrected
0x00800667 MesswertGier
0x00800669 Parameter_J16Bitmask
0x0080066a NaviAccRoll
0x0080066c GyroFaktor
0x0080066d m
0x0080066e ErsatzKompass
0x00800672 Mittelwert_AccRoll
0x00800674 Parameter_NaviGpsGain
0x00800675 Parameter_ExternalControl
0x00800676 Parameter_J17Bitmask
0x00800677 Parameter_NaviGpsD
COMMON 0x00800678 0x2 FlightCtrl.o
0x00800678 _printf_P
COMMON 0x0080067a 0x166 hottmenu.o
0x0080067a ElectricAirPacket
0x008006a6 HoTTGeneral
0x008006d2 WPL_Name
0x008006dc VarioPacket
0x00800708 ASCIIPacket
0x008007b4 GPSPacket
COMMON 0x008007e0 0x50 menu.o
0x008007e0 DisplayBuff
COMMON 0x00800830 0x8d rc.o
0x00800830 Channels
0x00800831 PPM_in
0x00800877 PPM_diff
COMMON 0x008008bd 0x19 sbus.o
0x008008bd sBusBuffer
COMMON 0x008008d6 0x7b spi.o
0x008008d6 SPITransferCompleted
0x008008d7 GPSInfo
0x008008df SPI_TX_Buffer
0x008008e1 NC_Version
0x008008e6 SPI_BufferIndex
0x008008e7 ToNaviCtrl
0x00800909 SPI_ChkSum
0x0080090a SPI_RxBufferIndex
0x0080090b SPI_RxDataValid
0x0080090c FromNaviCtrl
0x0080092c SPI_Buffer
0x0080094c FromNaviCtrl_Value
COMMON 0x00800951 0x2 timer0.o
0x00800951 tim_main
COMMON 0x00800953 0xf8 twimaster.o
0x00800953 RedundantMotor
0x0080098f BLConfig
0x00800997 Motor
COMMON 0x00800a4b 0x23e uart.o
0x00800a4b Data3D
0x00800a59 Timer3D
0x00800a5b Debug_Timer
0x00800a5d VersionInfo
0x00800a67 MotorTest
0x00800a77 WinkelOut
0x00800a7f ExternControl
0x00800a8a Kompass_Timer
0x00800a8c RxdBuffer
0x00800b68 Display_Timer
0x00800b6a TxdBuffer
0x00800c46 DebugOut
0x00800c88 ConfirmFrame
COMMON 0x00800c89 0x50 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
0x00800c89 USART1_EX_TxBuffer
0x00800ca9 HottKeyboard
0x00800caa fdknerTjg5i83th589v44
0x00800cb0 HoTT_RequestedSensor
0x00800cb1 HoTT_TextPointer
0x00800cb2 IlIlIlIIIIIIIlIllllll
0x00800cd5 fgfdogjWEti45e9tjh394
0x00800cd9 PROVIDE (__bss_end, .)
0x000164ce __data_load_start = LOADADDR (.data)
0x000166b8 __data_load_end = (__data_load_start + SIZEOF (.data))
 
.noinit 0x00800cd9 0x0
0x00800cd9 PROVIDE (__noinit_start, .)
*(.noinit*)
0x00800cd9 PROVIDE (__noinit_end, .)
0x00800cd9 _end = .
0x00800cd9 PROVIDE (__heap_start, .)
 
.eeprom 0x00810000 0x0
*(.eeprom*)
0x00810000 __eeprom_end = .
 
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
 
.lock
*(.lock*)
 
.signature
*(.signature*)
 
.user_signatures
*(.user_signatures*)
 
.stab
*(.stab)
 
.stabstr
*(.stabstr)
 
.stab.excl
*(.stab.excl)
 
.stab.exclstr
*(.stab.exclstr)
 
.stab.index
*(.stab.index)
 
.stab.indexstr
*(.stab.indexstr)
 
.comment 0x00000000 0x30
*(.comment)
.comment 0x00000000 0x30 analog.o
0x31 (size before relaxing)
.comment 0x00000000 0x31 capacity.o
.comment 0x00000000 0x31 debug.o
.comment 0x00000000 0x31 eeprom.o
.comment 0x00000000 0x31 fc.o
.comment 0x00000000 0x31 FlightCtrl.o
.comment 0x00000000 0x31 GPS.o
.comment 0x00000000 0x31 hottmenu.o
.comment 0x00000000 0x31 jetimenu.o
.comment 0x00000000 0x31 jeti_ex.o
.comment 0x00000000 0x31 led.o
.comment 0x00000000 0x31 menu.o
.comment 0x00000000 0x31 mymath.o
.comment 0x00000000 0x31 rc.o
.comment 0x00000000 0x31 sbus.o
.comment 0x00000000 0x31 Spektrum.o
.comment 0x00000000 0x31 spi.o
.comment 0x00000000 0x31 timer0.o
.comment 0x00000000 0x31 twimaster.o
.comment 0x00000000 0x31 uart.o
.comment 0x00000000 0x31 user_receiver.o
 
.note.gnu.build-id
*(.note.gnu.build-id)
 
.debug
*(.debug)
 
.line
*(.line)
 
.debug_srcinfo
*(.debug_srcinfo)
 
.debug_sfnames
*(.debug_sfnames)
 
.debug_aranges 0x00000000 0x580
*(.debug_aranges)
.debug_aranges
0x00000000 0x38 analog.o
.debug_aranges
0x00000038 0x30 capacity.o
.debug_aranges
0x00000068 0x28 debug.o
.debug_aranges
0x00000090 0xb8 eeprom.o
.debug_aranges
0x00000148 0x68 fc.o
.debug_aranges
0x000001b0 0x38 FlightCtrl.o
.debug_aranges
0x000001e8 0x18 GPS.o
.debug_aranges
0x00000200 0x50 hottmenu.o
.debug_aranges
0x00000250 0x20 isqrt.o
.debug_aranges
0x00000270 0x88 jetimenu.o
.debug_aranges
0x000002f8 0x28 jeti_ex.o
.debug_aranges
0x00000320 0x28 led.o
.debug_aranges
0x00000348 0x30 menu.o
.debug_aranges
0x00000378 0x20 mymath.o
.debug_aranges
0x00000398 0x28 rc.o
.debug_aranges
0x000003c0 0x30 sbus.o
.debug_aranges
0x000003f0 0x28 Spektrum.o
.debug_aranges
0x00000418 0x38 spi.o
.debug_aranges
0x00000450 0x68 timer0.o
.debug_aranges
0x000004b8 0x40 twimaster.o
.debug_aranges
0x000004f8 0x60 uart.o
.debug_aranges
0x00000558 0x28 user_receiver.o
 
.debug_pubnames
*(.debug_pubnames)
 
.debug_info 0x00000000 0x11ffe
*(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x00000000 0xe08 analog.o
.debug_info 0x00000e08 0x367 capacity.o
.debug_info 0x0000116f 0x13f debug.o
.debug_info 0x000012ae 0x1489 eeprom.o
.debug_info 0x00002737 0x2938 fc.o
.debug_info 0x0000506f 0x1289 FlightCtrl.o
.debug_info 0x000062f8 0xba GPS.o
.debug_info 0x000063b2 0x2b11 hottmenu.o
.debug_info 0x00008ec3 0x7a isqrt.o
.debug_info 0x00008f3d 0x110e jetimenu.o
.debug_info 0x0000a04b 0x9b7 jeti_ex.o
.debug_info 0x0000aa02 0x951 led.o
.debug_info 0x0000b353 0xd8e menu.o
.debug_info 0x0000c0e1 0x136 mymath.o
.debug_info 0x0000c217 0x87d rc.o
.debug_info 0x0000ca94 0x8f1 sbus.o
.debug_info 0x0000d385 0x8a9 Spektrum.o
.debug_info 0x0000dc2e 0x1588 spi.o
.debug_info 0x0000f1b6 0xc85 timer0.o
.debug_info 0x0000fe3b 0x76f twimaster.o
.debug_info 0x000105aa 0x19e5 uart.o
.debug_info 0x00011f8f 0x6f user_receiver.o
 
.debug_abbrev 0x00000000 0x2459
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x201 analog.o
.debug_abbrev 0x00000201 0x17c capacity.o
.debug_abbrev 0x0000037d 0xa5 debug.o
.debug_abbrev 0x00000422 0x317 eeprom.o
.debug_abbrev 0x00000739 0x320 fc.o
.debug_abbrev 0x00000a59 0x21d FlightCtrl.o
.debug_abbrev 0x00000c76 0x37 GPS.o
.debug_abbrev 0x00000cad 0x30e hottmenu.o
.debug_abbrev 0x00000fbb 0x14 isqrt.o
.debug_abbrev 0x00000fcf 0x256 jetimenu.o
.debug_abbrev 0x00001225 0x136 jeti_ex.o
.debug_abbrev 0x0000135b 0x11c led.o
.debug_abbrev 0x00001477 0x16e menu.o
.debug_abbrev 0x000015e5 0xc4 mymath.o
.debug_abbrev 0x000016a9 0x12d rc.o
.debug_abbrev 0x000017d6 0x15a sbus.o
.debug_abbrev 0x00001930 0x13e Spektrum.o
.debug_abbrev 0x00001a6e 0x222 spi.o
.debug_abbrev 0x00001c90 0x24f timer0.o
.debug_abbrev 0x00001edf 0x1b8 twimaster.o
.debug_abbrev 0x00002097 0x360 uart.o
.debug_abbrev 0x000023f7 0x62 user_receiver.o
 
.debug_line 0x00000000 0xa084
*(.debug_line .debug_line.* .debug_line_end)
.debug_line 0x00000000 0x57e analog.o
.debug_line 0x0000057e 0x276 capacity.o
.debug_line 0x000007f4 0x90 debug.o
.debug_line 0x00000884 0xaeb eeprom.o
.debug_line 0x0000136f 0x2c3a fc.o
.debug_line 0x00003fa9 0xa55 FlightCtrl.o
.debug_line 0x000049fe 0x33 GPS.o
.debug_line 0x00004a31 0x1311 hottmenu.o
.debug_line 0x00005d42 0x334 isqrt.o
.debug_line 0x00006076 0x67d jetimenu.o
.debug_line 0x000066f3 0x15f jeti_ex.o
.debug_line 0x00006852 0x42e led.o
.debug_line 0x00006c80 0x51d menu.o
.debug_line 0x0000719d 0x118 mymath.o
.debug_line 0x000072b5 0x20d rc.o
.debug_line 0x000074c2 0x310 sbus.o
.debug_line 0x000077d2 0x3a9 Spektrum.o
.debug_line 0x00007b7b 0x846 spi.o
.debug_line 0x000083c1 0x638 timer0.o
.debug_line 0x000089f9 0x73c twimaster.o
.debug_line 0x00009135 0xefd uart.o
.debug_line 0x0000a032 0x52 user_receiver.o
 
.debug_frame 0x00000000 0x1cc8
*(.debug_frame)
.debug_frame 0x00000000 0xfc analog.o
.debug_frame 0x000000fc 0x7c capacity.o
.debug_frame 0x00000178 0x34 debug.o
.debug_frame 0x000001ac 0x248 eeprom.o
.debug_frame 0x000003f4 0x230 fc.o
.debug_frame 0x00000624 0x1a0 FlightCtrl.o
.debug_frame 0x000007c4 0x104 hottmenu.o
.debug_frame 0x000008c8 0x648 jetimenu.o
.debug_frame 0x00000f10 0x34 jeti_ex.o
.debug_frame 0x00000f44 0x34 led.o
.debug_frame 0x00000f78 0x714 menu.o
.debug_frame 0x0000168c 0x2c mymath.o
.debug_frame 0x000016b8 0x84 rc.o
.debug_frame 0x0000173c 0x9c sbus.o
.debug_frame 0x000017d8 0x4c Spektrum.o
.debug_frame 0x00001824 0x74 spi.o
.debug_frame 0x00001898 0x188 timer0.o
.debug_frame 0x00001a20 0xec twimaster.o
.debug_frame 0x00001b0c 0x188 uart.o
.debug_frame 0x00001c94 0x34 user_receiver.o
 
.debug_str 0x00000000 0x30b7
*(.debug_str)
.debug_str 0x00000000 0x94d analog.o
0xc08 (size before relaxing)
.debug_str 0x0000094d 0x131 capacity.o
0x323 (size before relaxing)
.debug_str 0x00000a7e 0x48 debug.o
0x1ca (size before relaxing)
.debug_str 0x00000ac6 0x29f eeprom.o
0xb01 (size before relaxing)
.debug_str 0x00000d65 0x108c fc.o
0x1e0d (size before relaxing)
.debug_str 0x00001df1 0x155 FlightCtrl.o
0xf58 (size before relaxing)
.debug_str 0x00001f46 0xb GPS.o
0x1ba (size before relaxing)
.debug_str 0x00001f51 0x660 hottmenu.o
0x1319 (size before relaxing)
.debug_str 0x000025b1 0x157 jetimenu.o
0xcd5 (size before relaxing)
.debug_str 0x00002708 0x46 jeti_ex.o
0x989 (size before relaxing)
.debug_str 0x0000274e 0x9d led.o
0x93d (size before relaxing)
.debug_str 0x000027eb 0x55 menu.o
0xc24 (size before relaxing)
.debug_str 0x00002840 0x22 mymath.o
0x1b1 (size before relaxing)
.debug_str 0x00002862 0x48 rc.o
0x86d (size before relaxing)
.debug_str 0x000028aa 0x82 sbus.o
0x88f (size before relaxing)
.debug_str 0x0000292c 0x5c Spektrum.o
0x88b (size before relaxing)
.debug_str 0x00002988 0x12a spi.o
0x126d (size before relaxing)
.debug_str 0x00002ab2 0x147 timer0.o
0xaf0 (size before relaxing)
.debug_str 0x00002bf9 0x159 twimaster.o
0x4af (size before relaxing)
.debug_str 0x00002d52 0x32e uart.o
0x105e (size before relaxing)
.debug_str 0x00003080 0x37 user_receiver.o
0x129 (size before relaxing)
 
.debug_loc 0x00000000 0x82f5
*(.debug_loc)
.debug_loc 0x00000000 0x266 analog.o
.debug_loc 0x00000266 0x20e capacity.o
.debug_loc 0x00000474 0x5d debug.o
.debug_loc 0x000004d1 0x9db eeprom.o
.debug_loc 0x00000eac 0x129f fc.o
.debug_loc 0x0000214b 0x5bb FlightCtrl.o
.debug_loc 0x00002706 0x978 hottmenu.o
.debug_loc 0x0000307e 0x197f jetimenu.o
.debug_loc 0x000049fd 0xb0 jeti_ex.o
.debug_loc 0x00004aad 0x1d2e menu.o
.debug_loc 0x000067db 0x16b mymath.o
.debug_loc 0x00006946 0x19c rc.o
.debug_loc 0x00006ae2 0x336 sbus.o
.debug_loc 0x00006e18 0x2b5 Spektrum.o
.debug_loc 0x000070cd 0x125 spi.o
.debug_loc 0x000071f2 0x48a timer0.o
.debug_loc 0x0000767c 0x368 twimaster.o
.debug_loc 0x000079e4 0x911 uart.o
 
.debug_macinfo
*(.debug_macinfo)
 
.debug_weaknames
*(.debug_weaknames)
 
.debug_funcnames
*(.debug_funcnames)
 
.debug_typenames
*(.debug_typenames)
 
.debug_varnames
*(.debug_varnames)
 
.debug_pubtypes
*(.debug_pubtypes)
 
.debug_ranges 0x00000000 0x468
*(.debug_ranges)
.debug_ranges 0x00000000 0x28 analog.o
.debug_ranges 0x00000028 0x20 capacity.o
.debug_ranges 0x00000048 0x18 debug.o
.debug_ranges 0x00000060 0xa8 eeprom.o
.debug_ranges 0x00000108 0x88 fc.o
.debug_ranges 0x00000190 0x58 FlightCtrl.o
.debug_ranges 0x000001e8 0x40 hottmenu.o
.debug_ranges 0x00000228 0x78 jetimenu.o
.debug_ranges 0x000002a0 0x18 jeti_ex.o
.debug_ranges 0x000002b8 0x18 led.o
.debug_ranges 0x000002d0 0x20 menu.o
.debug_ranges 0x000002f0 0x10 mymath.o
.debug_ranges 0x00000300 0x18 rc.o
.debug_ranges 0x00000318 0x20 sbus.o
.debug_ranges 0x00000338 0x18 Spektrum.o
.debug_ranges 0x00000350 0x28 spi.o
.debug_ranges 0x00000378 0x58 timer0.o
.debug_ranges 0x000003d0 0x30 twimaster.o
.debug_ranges 0x00000400 0x50 uart.o
.debug_ranges 0x00000450 0x18 user_receiver.o
 
.debug_macro
*(.debug_macro)
OUTPUT(FlightCtrl.elf elf32-avr)
LOAD linker stubs
/branches/V2.08a_Rens_Testversion/FlightCtrl/Debug/FlightCtrl.srec
0,0 → 1,5742
S0120000466C696768744374726C2E737265631F
S2140000000C94F00C0C944A0D0C944A0D0C944A0D6A
S2140000100C944A0D0C944A0D0C944A0D0C944A0DFF
S2140000200C944A0D0C946D9F0C944A0D0C944A0D3A
S2140000300C94B3910C944A0D0C944A0D0C944A0DF2
S2140000400C944A0D0C944A0D0C94649B0C944A0D27
S2140000500C94DAA50C944A0D0C949EA50C944A0DAB
S2140000600C94051C0C944A0D0C9433A10C944A0D68
S2140000700C94A11A0C944A0D0C94F60F0C944A0D8D
S2140000800C944A0D0C944A0D0C944A0D321C3E1CDE
S214000090491C561C711C8B1C9D1CAF1C331DBC1FA1
S2140000A05B1E6D1E7E1E951EB61ED61E271F781F53
S2140000B06266A86AA0701374CF7571774C79726601
S2140000C03C670B688A68D9687169997BFA697E6AA9
S2140000D07E6A7E6A7E6A7E6A7E6A7E6A7E6A7E6ADB
S2140000E0B86A766B1A6C576CCD6C4E6D436EED6FBE
S2140000F071707170717071707170717071707170F3
S2140001007170B070CF70FE70A3710E72AD72EF7228
S2140001108773997BE573E573E573E573E573E573BC
S214000120E573E5739F87D4887189F489368ADA8AFD
S214000130648BCB8B5A8C988C158D438D718DCD8DA1
S214000140218E7F8ECD8E178F8A8FA69019977F98D7
S214000150FA98B5995399859958972798B599B99764
S21400016053A1B2A1F1A151A270A2B1A26AA37DA827
S21400017073AB73AB73AB73AB73AB73AB73AB73AB8A
S21400018073AB73AB73AB73AB73AB73AB73AB73AB7A
S21400019073AB73AB73AB73AB73AB73AB73AB73AB6A
S2140001A073AB73ABEAA973AB73AB73ABE8AA73AB71
S2140001B073ABD6A8AFA873AB05A90CA973AB88A977
S2140001C088A83EAA73AB93AA73AB22AABDABAAAC0F
S2140001D0AAACAAACAAACAAACAAACAAACAAACAAAC6A
S2140001E0AAACAAACAAACAAACAAACAAACAAACAAAC5A
S2140001F0AAACAAACAAACAAACC8ABD9ABECAB29AC3F
S214000200AAACAAACA7AC4FACAAACAAACAAAC87ACBA
S214000210AAACAAACAAACAAACAAACAAACAAAC80AB54
S214000220AAAC95ACA318A618A618A618AF18B218AC
S214000230B518C718C4182E000A0D4D697865722DBA
S214000240436F6E6669673A20272573272028257531
S214000250204D6F746F727329000A0D47656E6572C4
S2140002606174696E672064656661756C74204D699B
S214000270786572205461626C65000A0D5573696E6C
S2140002806720506172616D657465722053657420D5
S2140002902564000A0D47656E65726174696E672095
S2140002A064656661756C7420506172616D65746515
S2140002B07220536574202564000A0D2D2D3E2048BB
S2140002C0617264776172652056657273696F6E201D
S2140002D042797465204368616E676564203C2D2D05
S2140002E0000A0D4779726F2063616C6962726174EF
S2140002F0696F6E2064617461206E6F742076616C25
S21400030069640D0A000A0D414343206E6F74206332
S214000310616C69627261746564210D0A001B5B3250
S2140003204A46432D5374617274210A0D466C7567F4
S2140003307A6569743A202564206D696E000A0D4658
S2140003406C696768742D74696D65202575206D6904
S2140003506E20546F74616C3A2575206D696E004F7F
S2140003604B0A0D000A0D43616C6962726174696E16
S214000370672070726573737572652073656E736F30
S214000380722E2E003C2D2D207761726E696E6720CE
S2140003906F6C642056657273696F6E21000A0D4299
S2140003A04C2D4669726D776172652025642E253066
S2140003B03264000A0D0A0D2121204D495353494E3F
S2140003C04720424C2D4354524C3A2025642021218C
S2140003D0002564000A0D466F756E6420424C2D435E
S2140003E074726C3A20000A0D4F6C64204643204815
S2140003F061726477617265206E6F742073757070B9
S2140004006F72746564206279207468697320466927
S214000410726D77617265210020204175746F6C6182
S2140004206E64696E673A2025642E25645600202087
S2140004304175746F2D43483A2025642E2564560076
S214000440204C6F77207761726E696E673A2025645C
S2140004502E256456002025642043656C6C732000AE
S2140004600A0D426174743A000A0D3D3D3D3D3D3D26
S2140004703D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DA7
S2140004803D3D3D3D3D3D3D3D3D3D3D3D3D002573B6
S2140004900028536574202D3E204C6F616429004E61
S2140004A06F2053442D43617264202020002D2D00C0
S2140004B025326400202020006C6F616420706F6914
S2140004C06E743A0043616D3A202533690044495200
S2140004D03A20253364256300414C543A2534696D2F
S2140004E02020202000414C543A2534692F25696D80
S2140004F0200057503A2532642F25642044697374CF
S2140005003A2533646D2000202532693A2530326959
S2140005102000202532692E2531695620004C6F6157
S214000520642073696E676C6520506F736974696FB9
S2140005306E00214E6F204750532D466978212000CB
S21400054028536574202D3E2053746F726529004E23
S2140005506F2053442D43617264202020002D2D000F
S21400056025326420002020200053746F72652070AE
S2140005706F696E743A0043616D3A20253369004412
S21400058049523A20253364256300414C543A2534B9
S214000590696D00202532693A253032692000202511
S2140005A032692E25316956200053746F72652073A8
S2140005B0696E676C6520506F736974696F6E002092
S2140005C020202020202020202020202000285365C6
S2140005D074202D3E204C6F616429004E6F205344DA
S2140005E02D4361726420202000202D2D00253264CA
S2140005F020284649582900202020004C6F6164209E
S2140006006C6973743A002573002532692E253169AA
S2140006105620004E6F2057507320616374697665CC
S21400062020202020004163746976652057503A25C3
S21400063032642F2564200028466978656420506F50
S214000640736974696F6E7329004C6F61642057611B
S21400065079706F696E747300214E6F204750532D6A
S21400066046697821200020202020202020202020DD
S2140006702020200028536574202D3E204C6F616496
S21400068029004E6F2053442D4361726420202000C1
S2140006904C6F6164206C6973743A202D2D20004CD9
S2140006A06F6164206C6973743A00253269202020DB
S2140006B000202020002573002532692E253169563A
S2140006C020004E6F20575073206163746976652052
S2140006D020202020004163746976652057503A2513
S2140006E032642F256420002852656C617469766533
S2140006F020506F736974696F6E7329004C6F616464
S21400070020576179706F696E747300434F4D504186
S2140007105353204F464621200048482120004C4F86
S2140007204F50494E47212000434F55504C494E47A5
S214000730204F464621200050343A25346920503553
S2140007403A25346920363A2533690050313A253443
S214000750692050323A25346920333A2533690047F8
S214000760733A2534692059613A25346920004E6968
S2140007703A25346920526F3A25346920433A2533A6
S2140007806900484F4C44200025756D00484F4D4584
S21400079020414C543A002046533A257573656B2029
S2140007A00028484F4C442900284149442920002865
S2140007B0484F4D452900284652454529004449538F
S2140007C041424C4544004750533A0020544541436B
S2140007D0480020284F4646290020284F4E29200052
S2140007E044495341424C45440043463A0044495329
S2140007F041424C454400564152494F004C494D49F0
S2140008005400284F4646292000284F4E2920200015
S214000810504F54493A2533752000414C543A004D08
S214000820696E3A2532692E253169562025732000D7
S21400083053657474696E673A257520257320002009
S2140008407777772E4D696B726F4B6F707465722E6B
S21400085064652020002121204C69506F20766F6C43
S21400086074616765202121004552523A20004552A6
S214000870523A202532642021002533692025336929
S21400088020253369202533692563430025336920F5
S21400089025336925634320202020202020200025A2
S2140008A032692E2569202532692E25692025326970
S2140008B02E2569202532692E256941002532692EAC
S2140008C02569202532692E256941002533692025B2
S2140008D03369202533692025336925634300253293
S2140008E0692E2569202532692E2569202532692E34
S2140008F02569202532692E256941002020204E6F6B
S214000900204E6176694374726C20202020202020BF
S214000910004447505320004E4F464958002020338D
S2140009204420004750533A2532756D2F73205341AB
S214000930543A256420002020004346005057523A7F
S2140009402532692E2531694120282569572920003E
S214000950484D3A25336425632020444953543A25AC
S21400096033646D20256300256300414C543A2D2DD9
S2140009702D2D2000414C543A2534696D00414C54CD
S2140009803A2534696D004449523A2533642563009C
S214000990202532693A2530326920202532692E25F5
S2140009A0316956202534696D416800202532693A40
S2140009B02530326920202532692E253169562025BA
S2140009C034696D416800207777772E4D696B726FBA
S2140009D04B6F707465722E64652020002121204CB8
S2140009E069506F20766F6C74616765202121004521
S2140009F052523A20004552523A20253264202100B5
S214000A00202020202532756D2F733A2020484D3A3D
S214000A10253364256320256300696E636C3A2532AE
S214000A20642563282532692900484D3A2533642514
S214000A3063202563004D41473A2533752525200060
S214000A40212100334400442000444953543A2533BE
S214000A50646D005341543A25326420003A002D2D2F
S214000A602D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DB1
S214000A702D2D2D002D2D2D2D2D2D2D2D2D2B2D2DD0
S214000A802D2D2D2D2D2D2D2D2D003A003A003A001E
S214000A90493A2532692E2531694120002020253526
S214000AA069202000202025356920200020004300F2
S214000AB04449523A202533642563002020253269B4
S214000AC03A2530326920200020202532693A253028
S214000AD03269202000414C543A2D2D2D2D20004106
S214000AE04C543A2534696D202000414C543A253444
S214000AF0696D2025630020202532692E2531695630
S214000B0020200020202532692E253169562020001D
S214000B1020202020202020202020202020202020D0
S214000B20202020202000000005000500040106010A
S214000B300800060102000400040007000700070082
S214000B40070007000700070003010301050017015F
S214000B500F01060009010A01190105010501190125
S214000B601A010F0101000900060006004E6F20451D
S214000B7072726F722020202020202020004E6F747A
S214000B8020636F6D70617469626C652020004D4B48
S214000B90334D6167206E6F7420636F6D7061004E19
S214000BA06F20464320636F6D6D756E6963617400D8
S214000BB0436F6D7061737320636F6D6D756E6963DF
S214000BC00047505320636F6D6D756E69636174697D
S214000BD06F00636F6D706173732076616C7565204E
S214000BE02020005243205369676E616C206C6F733F
S214000BF07420200046432073706920727820657246
S214000C00726F7220004E6F204E4320636F6D6D75BD
S214000C106E69636174004643204E69636B204779B2
S214000C20726F2020202000464320526F6C6C2047B5
S214000C3079726F2020202000464320596177204794
S214000C4079726F2020202020004643204E69636B77
S214000C5020414343202020202000464320526F6C32
S214000C606C204143432020202020004643205A2D5C
S214000C70414343202020202020202000507265730E
S214000C80737572652073656E736F72200049324308
S214000C902046432D3E424C2D4374726C2000426C1D
S214000CA0204D697373696E67202020202020004D38
S214000CB069786572204572726F72202020202000AD
S214000CC04361726566726565204572726F72202098
S214000CD00047505320466978206C6F73742020209C
S214000CE020004D61676E6574204572726F72202019
S214000CF02020004D6F746F72207265737461727479
S214000D0020202000424C204C696D69746174696F24
S214000D106E202020004750532052616E67652020C9
S214000D202020202020004E6F2053442D4361726403
S214000D302020202020200053442D4C6F6767696ECA
S214000D4067206572726F7200466C79696E672072F2
S214000D50616E676521202020004D617820416C740B
S214000D60697475646521202020004E6F204750531B
S214000D702066697820202020202000636F6D706137
S214000D807373206E6F742063616C2E00424C2D537B
S214000D90656C66746573742020202020006E6F20BA
S214000DA06578742E20636F6D706173732000636FB7
S214000DB06D706173732073656E736F7220200053BD
S214000DC0657420203A00204D696B726F4B6F70740B
S214000DD065722028426F6174292020002020534924
S214000DE04D554C4154494F4E2061637469766520D9
S214000DF020002021212020204C414E44494E4720EF
S214000E002020202121202000202121204C69506F05
S214000E1020766F6C746167652021212020002020D9
S214000E202020204D696B726F4B6F707465722020A6
S214000E30202020004E6F204E6176694374726C212C
S214000E4000486F6D653A2533646D2025336425634D
S214000E502025630044475053004E6F4678002020FC
S214000E603344002532756D2F73205361743A256420
S214000E7020002020002D3E002D2D2F2D2D00253268
S214000E80642F2564200023253264205750733A00CF
S214000E906E6F204750532D466978006E6F2053447E
S214000EA02D436172640052656C3A25730052656C7E
S214000EB061746976652057507320002020002D3E0F
S214000EC0002D2D2F2D2D002532642F256420002384
S214000ED02532642057503A006E6F2053442D4361EC
S214000EE07264004649583A257300464958205761AF
S214000EF079706F696E7473002020002D3E002020EC
S214000F0020202020202020202020202020200044D8
S214000F106973743A25336420416C743A253364202F
S214000F2000253264006E6F2053442D4361726400C6
S214000F304C6F616420506F696E74002020002D3E57
S214000F40004469723A25336420416C743A25336450
S214000F506D00253264006E6F204750532D46697829
S214000F60006E6F2053442D436172640053617665B2
S214000F7020506F696E743A00536176652073696E0F
S214000F80676C2E506F696E74004C6F6164207369D5
S214000F906E676C2E506F696E74002852656C6174B3
S214000FA069766529202020004C6F6164205761799E
S214000FB0706F696E7473002846697865642920200E
S214000FC020202020004C6F616420576179706F6983
S214000FD06E747300496E636C692E3A253369256317
S214000FE0202825692920004D61676E65743A2533EF
S214000FF06925252025336925630025346957202572
S21400100036696D4168002532692E253169562025DE
S21400101033692E2531694100256343202020202096
S2140010200054656D7065726174757265732020205A
S2140010302000253369202533692025336920253390
S2140010406900253369202533692025336920253337
S214001050690052002534696D256300253469202512
S21400106032693A253032690028426F61742D4D6F1F
S2140010706465290053657425643A25730053494D09
S214001080554C4154494F4E004552524F523A202536
S214001090326420005374617475732020202000256C
S2140010A033642563202533646D2563002532692E5D
S2140010B0253169560008010000EA8100020101B0EE
S2140010C07B010302022F7C0204030335810305041F
S2140010D009EC7C0406050A177D0507060B427D060B
S2140010E008070C577D07000806A87C040909093183
S2140010F07F050A0A0A2680060B0B0B4C7E070C0C93
S2140011000C6C7D004F50515253545356574800585C
S21400111059005A5545464748410049424A4A000048
S214001120000000000000000000444C4D00000000DD
S214001130004E0000004B00432531642E25303264FB
S214001140202531642E25303264202531642E25304A
S2140011503264202531642E2530326400424C2056FD
S214001160657273696F6E7300313200313100313051
S214001170002025632020202D2020202D2020202D1B
S21400118020002025632020202563202020256320A2
S2140011902020256320002025632020202563202092
S2140011A020256320202025632000424C2D437472A6
S2140011B06C20666F756E64200025336420253364CA
S2140011C02025336420253364200028696E20302EC5
S2140011D031412900424C2043757272656E740025B9
S2140011E033642025336420253364202533642000AF
S2140011F0424C2054656D7065726174757265002589
S214001200336420253364202533642025336420008E
S214001210424C2D4374726C204572726F72732000BC
S21400122052616E67653A2533692D25336900506F24
S214001230736974696F6E3A2025336900536574705C
S2140012406F696E74202025336900536572766F20AF
S2140012502000547275653A2020202020253569002C
S2140012604779726F3A2020202020253569004D618D
S214001270676E65743A20202025356900436F6D70CF
S2140012806173730028726573657429004163743A4C
S21400129020202535756D696E00546F74616C3A2593
S2140012A035756D696E00466C696768742D54696D96
S2140012B065202000506F746925693A20202533691F
S2140012C000506F746925693A2020253369004C6107
S2140012D06E643A202532642E25645600486F6D658C
S2140012E03A202532642E256456005761726E3A20E5
S2140012F02532642E25645600556E646572766F6CD2
S214001300746167657320200052432D4368616E6EDA
S214001310656C733A2534690052432D5175616C69CA
S21400132074793A202534690052656365697665727A
S214001330004469736368617267653A202535696D94
S214001340416800506F7765723A20202020202534AF
S21400135069570043757272656E743A2020202533F3
S214001360692E2531694100566F6C746167653A20B5
S21400137020202533692E25316956005A202020204A
S21400138025346920282533692900526F6C6C202586
S2140013903469202825336929004E69636B2025347B
S2140013A06920282533692900414343202D205365B1
S2140013B06E736F72005961772020253469202825C6
S2140013C034692900526F6C6C202534692028253436
S2140013D06929004E69636B20253469202825346905
S2140013E029004779726F202D2053656E736F720047
S2140013F050333A253469202050343A253469200089
S21400140050313A253469202050323A25346920007C
S21400141047733A253469202047693A253469200005
S2140014204E693A2534692020526F3A2534692000E7
S2140014304B25693A25346920204B25693A253469BD
S2140014402000436F6D706173733A20202025356944
S21400145000526F6C6C3A2020202020202535690031
S2140014604E69636B3A2020202020202535690061D4
S21400147063742E2062656172696E670025690028B4
S2140014804129004F66667365743A20202535690049
S21400149050726573737572653A25356900536574C5
S2140014A0706F696E743A25356900486569676874B7
S2140014B03A202025356900424C2D53656C667465CC
S2140014C07374204572723A253264004932432045CF
S2140014D052524F52212121004D697373696E672065
S2140014E0424C2D4374726C3A2564202121004861D9
S2140014F0726477617265204572726F7220313A2588
S21400150064202121004552522532643A004D697804
S2140015106572204572726F722100424F415400532B
S21400152065743A25642025730048573A5625642E7C
S21400153025642053573A25642E25303264256320CF
S214001540002B204D696B726F4B6F70746572202B89
S214001550005B25695D005B25695D0000008F001E4D
S21400156001AD013B02CA025803E603740402058F6C
S214001570051B06A7063307BE074808D2085B09E323
S214001580096B0AF20A780BFD0B810C040D860D0719
S2140015900E870E060F840F00107B10F5106E11E5F7
S2140015A0115B12CF124213B31323149214FE146A63
S2140015B015D3153B16A11605176717C817271883E6
S2140015C018DE1837198E19E319361A871AD61A2311
S2140015D01B6E1BB61BFD1B411C831CC31C001D3C45
S2140015E01D751DAB1DE01D121E421E6F1E9A1EC3EA
S2140015F01EE91E0D1F2E1F4D1F691F841F9B1FB047
S2140016001FC31FD31FE11FEC1FF51FFB1FFF1F008B
S2140016102056657273696F6E20676573656E6465C4
S214001620740021212120494E434F4D5041544942D8
S2140016304C45202121210057726974696E6720424B
S2140016404C2025640052656164696E6720424C2018
S2140016502564004C6573652053657474696E672055
S2140016602564004D69786572206C6573656E00416F
S2140016706E676C654E69636B202020202020204119
S2140016806E676C65526F6C6C2020202020202041F5
S21400169063634E69636B2020202020202020204199
S2140016A06363526F6C6C202020202020202020595D
S2140016B061774779726F202020202020202020414B
S2140016C06C746974756465205B302E316D5D2041E5
S2140016D063635A202020202020202020202020471E
S2140016E0617320202020202020202020202020433E
S2140016F06F6D706173732056616C7565202020567F
S2140017006F6C74616765205B302E31565D20205209
S21400171065636569766572204C6576656C20204742
S21400172079726F20436F6D70617373202020204D97
S2140017306F746F7220312020202020202020204D22
S2140017406F746F7220322020202020202020204D11
S2140017506F746F7220332020202020202020204D00
S2140017606F746F722034202020202020202020310B
S214001770362020202020202020202020202020313D
S214001780372020202020202020202020202020312C
S214001790382020202020202020202020202020311B
S2140017A039202020202020202020202020202053E8
S2140017B06572766F202020202020202020202048C0
S2140017C06F766572676173202020202020202043DA
S2140017D0757272656E74205B302E31415D20204339
S2140017E061706163697479205B6D41685D20204893
S2140017F0656967687420536574706F696E7420320B
S21400180035202020202020202020202020202032AC
S214001810362020202020202020202020202020329B
S2140018203720202020202020202020202020204973
S21400183032432D4572726F722020202020202042D5
S2140018404C204C696D6974202020202020202047E1
S21400185050535F4E69636B202020202020202047B5
S21400186050535F526F6C6C20202020202020200ACE
S2140018700D7777772E4D696B726F4B6F707465724C
S2140018802E64652028632920486953797374656D32
S2140018907320476D6248000A0D746865207573658D
S2140018A0206F66207468697320736F667477617240
S2140018B065206973206F6E6C79207065726D69742F
S2140018C0746564200A0D6F6E206F726967696E61B9
S2140018D06C204D696B726F4B6F707465722D48612A
S2140018E0726477617265005573657200486F545470
S2140018F0205634004143542044534C004A657469D2
S214001900005370656B7472756D0050504D000A0D73
S21400191052656365697665723A2000532E42757388
S21400192000756E6B6E6F776E2E205573696E67202E
S21400193050504D2E2E2E006E6F7420737570706F83
S214001940727465642062792068617264776172657A
S21400195021000A0D202D204C4942204E4F54204392
S2140019604F4D50415449424C452021212121000A27
S2140019700D0A0D212120426F6F746C6F61646572D1
S214001980206E6F7420636F6D70617469626C652081
S214001990746F204861726477617265203E20322E33
S2140019A0322021210A0D0A0D000A0D466C6967686F
S2140019B074436F6E74726F6C0A0D4861726477615F
S2140019C072653A25642E25640A0D536F6674776136
S2140019D072653A5625642E25303264256320000051
S2140019E011241FBECFEFD0E4DEBFCDBF12E0A0E0D3
S2140019F0B1E0EEECF4E601E00BBF02C007900D92FA
S214001A00AA3EB107D9F72CE0AAEEB2E001C01D92BB
S214001A10A93DB207E1F77AEAE2E0F0E081E28093DE
S214001A205700149120EF37EF41E050E0C6E1D3E0D5
S214001A306FE0DA01C9012F5F3F4F4F4F5F4FABBFDB
S214001A40FC0187918993615067FFF3CF84EE8ABDCE
S214001A5080911E038093EA02893138F086E08093F5
S214001A600B0187E080930A017BEAE6E1F3E06EE093
S214001A70819178277095615067FFFACF8091250392
S214001A80781721F0173911F40000FECF0E949E5AF5
S214001A900C9465B20C9400000024222733274427B8
S214001AA051E0BB27EE27FF27A0E1660F771F881FB0
S214001AB0991F001C221F331F441F660F771F881FA5
S214001AC0991F001C221F331F441F2AF4050E2B1FCC
S214001AD03E1F4F1F04C0051A2B0B3E0B4F0B550F16
S214001AE0BB1FEE1F587F556047FD5250AA95E9F67A
S214001AF0E695B7955795E695B7955795852F9B2FFD
S214001B0008952227332741E0552768E0880F991F5C
S214001B10221F331F880F991F221F331F1AF4240F0A
S214001B20351F02C0241B350B440F551F487F4560E8
S214001B3037FD42506A9551F7569547955695479505
S214001B40842F0895AA2797FF04C0809590958A1F32
S214001B509A1F77FF04C0609570956A1F7A1F669F6C
S214001B609001779FA001679F300D411D5A1F300DD1
S214001B70411D5A1F889FF001999F2E0F3F1F401D41
S214001B80511D899F300D411D5A1F300D411D5A1F92
S214001B90CA01B901112480CF4FB720E430E0F89491
S214001BA08091C9008F778093C9008091C9008F7B90
S214001BB08093C9008091C9008F7D8093C900832FD0
S214001BC099278093CD002093CC008091C800826036
S214001BD08093C80088E18093C9008091CA008F77FF
S214001BE08093CA008091CA008F7B8093CA00809140
S214001BF0CA008F7D8093CA008091CA008F7E809332
S214001C00CA008091CA00877F8093CA008091C9006D
S214001C108B7F8093C9008091CA0084608093CA003D
S214001C208091CA0082608093CA008091C80087FFB6
S214001C3003C08091CE00F9CF8091C9008068809360
S214001C40C9004FBF08950F931F93CF93DF93482F7C
S214001C504F5F893108F08BC080913008841720F4DC
S214001C604F5F409330084150CB0183539B4268E15D
S214001C7070E00E9456B1A42FBB27FD01EA0FFB1FA0
S214001C80EF5CF74F808191819B01281B390BC901BE
S214001C9037FF03C0909581959F4F069794F48091E7
S214001CA00404883C30F480910404865F8093040426
S214001CB008C088EC8093040480916F008F7D809329
S214001CC06F00FD01EA0FFB1FEF5CF74F80819181EB
S214001CD09C01220F331F280F391F260F371F37FF8F
S214001CE002C02D5F3F4FE901D595C795D595C7959D
S214001CF0CB0101968C179D0714F4219706C06150FE
S214001D007040C617D7070CF4219680910404843BD4
S214001D10D8F08D010A0F1B1FF801EF5CF74F80818A
S214001D209181FE01E81BF90BCF0163E070E00E9491
S214001D3056B1CB01880F991F860F971F0958174F6A
S214001D40F8019183808307C0AA0FBB1FA958B74F1D
S214001D5011961C921E92E42FFF27EE0FFF1FEF5CDA
S214001D60F74FD183C083443011F410929302DF9171
S214001D70CF911F910F910895CF93DF932091AA0CD6
S214001D80822F9927807F9070409709F064C02F318A
S214001D9009F040C08091AB0C8093F4029091AD0C9A
S214001DA09093F6028091AE0C8093F502992309F089
S214001DB052C080913F05282F3327220F331FF90189
S214001DC0E958F74F1182108280914005A82FBB2753
S214001DD0AA0FBB1FFD01E958F74F118210828091B0
S214001DE04205E82FFF27EE0FFF1FCF018958974FB8
S214001DF0EC01198218822F5C374FE901198218828C
S214001E00AF5CB74F11961C921E92EF5CF74F118293
S214001E10108221C0C22FCF70CA30E8F48091AB0C7C
S214001E208093D60C8091AC0C8093D50C8091AD0C31
S214001E308093D80C8091AE0C8093D70C6091D50C13
S214001E407091D60C8C2FFFDE6091D70C7091D80C59
S214001E508C2F8F5FF8DEDF91CF910895CF93C82F38
S214001E608F3F49F48091F7028F3F29F41092F902D0
S214001E701092F80231C02091F902222339F4CF31B2
S214001E8011F485E001C084E08093FA028091FA02A2
S214001E909091F802821798F4892F80958093F80223
S214001EA08F3F19F48EEF8093F8028091F802C817DE
S214001EB009F462DF1092F9021092F8020BC0E22FCA
S214001EC0FF27E655F34FC0832F5F2093F9029C0F40
S214001ED09093F802C093F702CF9108959091F30281
S214001EE0933240F4E92FFF27EE54F34F80839F5F31
S214001EF09093F3020895833218F48D5F8093F30273
S214001F00089590E2E5EBFCE08FE19193815087FF26
S214001F10FCCF0895CF93CFB723E031E0F8948091BB
S214001F20C9008F778093C9008091C9008F7B80930A
S214001F30C9008091C9008F7D8093C900832F99279F
S214001F408093CD002093CC008091C800826080935F
S214001F50C80088E18093C9008091CA008F7780937B
S214001F60CA008091CA008F7B8093CA008091CA0005
S214001F7080628093CA008091CA0080618093CA0004
S214001F808091CA0088608093CA008091C9008460EE
S214001F908093C9008091CA0084608093CA008091B3
S214001FA0CA0082608093CA008091C80087FF03C081
S214001FB08091CE00F9CF8091C90080688093C900D7
S214001FC08091C90080648093C9009BDFCFBFCF910A
S214001FD00895282F99278F709070892B31F42095BB
S214001FE08091F202822B8093F20208951F920F9244
S214001FF00FB60F9211248F93EF93FF9380910601F3
S214002000882309F068C0E091FC02EE2389F48091F1
S214002010FB02882369F48091B20C882321F081E0CA
S2140020208093FD0205C08091C90081608093C9003D
S2140020308091FD02882379F4EF5FE093FC028091A3
S214002040890C8E1720F481E08093FD021CC0FF27C8
S214002050E757F34F3CC08091FB02882361F48091E0
S214002060B20C882311F483E003C0813999F481E02F
S2140020708093FB020FC0833099F48091B20C8823C2
S21400208049F01092B20C8091C9008E7F8093C900EF
S2140020908EEF1EC08091C90081608093C9000EC07B
S2140020A0833261F48091C9008E7F8093C9008FEFE0
S2140020B08093CE0081E08093060118C08091FB02D9
S2140020C0E82FFF27EE54F34F8F5F8093FB0280814B
S2140020D08093CE000BC01092FB021092FC0210926E
S2140020E0FD028091C90080618093C900FF91EF9145
S2140020F08F910F900FBE0F901F901895682727E0BE
S214002100322F67FF06C0862F9927880F991F8327CF
S21400211002C0862F880F682F215027FFF2CF9927FD
S21400212008950F931F93CF93DF93062F60E0162F2B
S214002130601738F4EC018991E1DF682F1F5F1017F4
S214002140D0F3862F9927DF91CF911F910F91089595
S214002150DC0190E0961758F48C91803241F09F5F36
S214002160961728F4FD01E90FF11D8081F6CF892F1F
S21400217099270895A0E0B0E0E0ECF0E10C94E1B11E
S2140021808FE980938A0C80E180938C0C84EA80939C
S2140021908D0C85E580938E0C8DE580938F0C1092C8
S2140021A0900C8091FF02882309F067C08091FE02A0
S2140021B013E1819FC001112463E088599E4FC8DF58
S2140021C0082F8091FE02819FC00111246AE0825A86
S2140021D09E4FBEDF982F800F865F8093890C2EEF70
S2140021E0B22EB80EB0928B0C2091FE022093910C6A
S2140021F0E92EFF24C70113E0880F991F1A95E1F70F
S214002200802B8093920C822F9927C3E1CC2ED12C61
S2140022108C9D90018D9D300D9C9D300D1124C90123
S214002220825A9E4FA701BC0183E99CE00E9425B21A
S21400223011278091FE0299278C9DE0018D9DD00D7F
S2140022409C9DD00D1124CE0188599E4FA801BC013B
S214002250C7018D56934F0E9425B20757134F0E0D98
S2140022601F1D6B2D8BE89CE05CDFF8018287809158
S214002270FF028F5F8093FF0292C0C090900C1C2DCF
S2140022800E94B88430910701303108F058C0B3E19D
S214002290EB2EF12C632F812F9927FC01EE0FFF1FE9
S2140022A0E80FF91FEC0DF11DE757F34F832F992721
S2140022B08E9DD0018F9DB00D9E9DB00D1124A25A0B
S2140022C0BE4FED012D8574E0880F991F7A95E1F7D2
S2140022D0282B20873E3088F42E853F853F798A89D3
S2140022E09927982F88279295990F907E282B392B1F
S2140022F02187832F9927828716C0ED012E853F857B
S214002300488959892187BB27A52F942F832F828739
S214002310CA01AA27BB278387852F9927AA27BB2709
S2140023208487E2E0CE0E862F8F5F682F1F5F163001
S21400233020F4382F803108F4AECF8093070183E075
S214002340189FC00111242C2D280F285F2093890C7C
S214002350225C20938B0C812F99278C01000F111F74
S214002360080F191F0C0D111D0757134F2054622F0D
S2140023708BE89CE0D6DEE8018887809107018031F3
S21400238070F081E0809307011092FF028091FE02B8
S2140023908F5F8093FE02803110F01092FE02E9E01B
S2140023A0CDB7DEB70C94FDB180910601882309F401
S2140023B046C08091CB0385FD04C080915C048823D1
S2140023C081F082E98093B20C83E28093B30C809113
S2140023D05C04882309F485E58093B40C10925C04B1
S2140023E002C08093B20C809108018F3071F4809106
S2140023F0F2020E94AD83882341F081E98093B20CFB
S2140024008093B30C81E38093B40C10920601809104
S214002410C80085FFFCCF8091C9008F7E8093C900DD
S2140024208091C9008E7F8093C900A4DE8EE78093DA
S214002430CE008091F202809308011092F202089575
S214002440EF92FF920F931F93CF93DF937C018B0144
S214002450EA01452B39F0F80181918F01F7010995C2
S2140024602197C9F7E6E0CDB7DEB70C9400B2EF923D
S214002470FF920F931F93CF93DF937C018B01EA01AA
S214002480452B41F0F8010F5F1F4F8491F701099526
S2140024902197C1F7E6E0CDB7DEB70C9400B20F93F4
S2140024A01F93CF938C01C62F161634F480E2F801E2
S2140024B00995C1501C16D4F3CF911F910F91089522
S2140024C00F931F93CF938C01C62F161634F480E318
S2140024D0F8010995C1501C16D4F3CF911F910F91A6
S2140024E00895A5E3B0E0E7E7F2E10C94D8B12E96A4
S2140024F0EEADFFAD2E978824992454018091EC020E
S214002500882321F42C961FAE1EAE2C97AEE44A2EDE
S214002510512C4C0E5D1E6F01B60105C0153239F008
S2140025200894C11CD11CF60114911123B9F7A60119
S214002530461B570B29F02C968EAD9FAD2C9797DF38
S214002540112309F464C20894C11CD11CFF24FDA603
S214002550FCA6EFEFEE2EF9A6F6010894C11CD11CDE
S2140025601491153721F0812F80628837B1F4F0FE80
S2140025700AC0F20124E030E0420E531E80809180B3
S214002580A280B3800AC0F20142E050E0440E551E1D
S214002590808191814C01AA24BB24103221F489A5A4
S2140025A08823D1F61DC0133219F458E0F52AD4CF8B
S2140025B01A3211F01D3291F41A3259F4F20182E007
S2140025C090E0480E591EE081ECA7EE232CF6E1952C
S2140025D0ECA790E1F92AAFEDFA22BECF1B3211F438
S2140025E019A7BACF1E32C1F5F6010894C11CD11C3A
S2140025F014911A3279F4F20122E030E0420E531EB2
S214002600408151813FEF4F3F530714F44FEF5FEF88
S214002610E42EA2CF40E050E0812F80538A30A0F411
S214002620CA0173E0880F991F7A95E1F7840F951F0A
S214002630480F591F410F511D40535040F601089452
S214002640C11CD11C1491E8CF8FEF4F3F580714F4EC
S2140026504FEF5FEFE42E85CF103329F4F4FC7CCFE8
S21400266090E2F92A79CF812F81538930D8F440E05F
S21400267050E0CA0163E0880F991F6A95E1F7840F5E
S214002680951F480F591F410F511D40535040F601EA
S2140026900894C11CD11C1491812F80538A3048F3B2
S2140026A04CA75FCF183619F4A4E0FA2A55CF1C368B
S2140026B019F4B1E0FB2A50CF133661F43E010894BA
S2140026C0611C711CF20122E030E0420E531E808134
S2140026D089833CC1143421F0143611F0193651F5B3
S2140026E0143411F431E0F32AF0FE0AC0F20144E09B
S2140026F050E0440E551E80809180A280B3800CC0AE
S214002700F20182E090E0480E591E808191814C01D2
S214002710AA2497FCA094BA2CB7FE0AC0B094A09442
S21400272090948094811C911CA11CB11C8DE289A7F9
S2140027300AE06FC01F3411F01F3631F41F3411F455
S21400274091E0F92A08E064C0103779F4F201A2E0BB
S214002750B0E04A0E5B1E808191814C01AA24BB2406
S21400276000E1B0E4FB2A18E753C01337C1F5F201C5
S21400277022E030E0420E531E6080718061147104C6
S21400278089F43E010894611C711C88E289838EE6F8
S214002790F301818385E78B838CE68C838D8389E2C6
S2140027A08E831F82E7FC13C08E2D992787FD909598
S2140027B0AC0160E070E0C3010E9418B2009729F0F7
S2140027C0382E3618E3140CF0C3C03E2CC1C0F301FB
S2140027D001900020E9F731973E2E3618B9C015351E
S2140027E011F0153731F4153511F4F1E0FF2A0AE03F
S2140027F00FC0183519F0183709F0A0C000E1F3FE35
S21400280007C081149104A104B10411F020E4F22A57
S21400281019A6EDA6E7FC02C03FEDF32249E2642EBE
S214002820712C6C0E7D1E81149104A104B10421F458
S2140028304DA5442309F47BC0802F9927AA27BB27E0
S2140028408EA79FA7A8ABB9AB202E332490E089169D
S21400285090E0990691E0A90690E0B90648F0C50117
S214002860B4012EA53FA548A959A90E9469B117C071
S214002870AFEF8A169104A104B10449F040F0C401F8
S214002880B1010E9442B19B014427552708C0882DFC
S214002890602F0E9436B1282F3327442755272AABAE
S2140028A03BAB4CAB5DAB0A3059F48AA9880F880F56
S2140028B0880F9AA9990F890F382D381B832F10C0BF
S2140028C0003139F48AA98295807F482D481B842FD1
S2140028D007C08AA9880F880F880F582D581B852F88
S2140028E090E02EA53FA548A959A982169306A406EE
S2140028F0B50608F091E08AA89BA8ACA8BDA88A30C7
S21400290010F4805D04C0895A183509F48F7DD30110
S2140029108E933D01992309F099CF083041F4F3FED8
S21400292006C0803321F080E3FD0182933F01CE0193
S2140029300196382E3618F8E23F0E0BC0112309F424
S21400294066C03E010894611C711C198331E0332E69
S21400295019A6032D2DA4231827FC222489A5882335
S21400296011F00F5F02C0F6FC0E5F020DEF2CFF2485
S214002970C70180739070892B41F48CA5801B682F4B
S2140029802C968EAD9FAD2C978ADD89A5882331F0D5
S21400299041E050E0BE01675D7F4F0AC0E6FE0DC015
S2140029A080E38AA71BA742E050E0BE01665D7F4F2A
S2140029B02C968EAD9FAD2C9743DDC701807390702B
S2140029C0809741F48CA5801B682F2C968EAD9FAD0A
S2140029D02C9776DD622D2C968EAD9FAD2C9770DDF4
S2140029E0832D992787FD9095AC01B3012C968EAD6B
S2140029F09FAD2C9725DDE4FE8FCD2CA5201B2CA7A4
S214002A00622F2C968EAD9FAD2C9749DD85CDE2E1E9
S214002A10CB5C0C94F4B1982F8091B10C883A50F4AA
S214002A208091B10CE82FFF27E85FF84F93838F5F04
S214002A308093B10C0895982F8091B10C883A58F481
S214002A408091B10CE82FFF27E85FF84F90689383DA
S214002A508F5F8093B10C0895982F8091ED028823A4
S214002A6011F0892FE8CF892FD6CF883A10F48093BB
S214002A70B10C089580E090E2EBE0F7E091938F5F71
S214002A80883AE0F308954FB721E830E0F894809153
S214002A90C9008F778093C9008091C9008F7B80938F
S214002AA0C9008091C9008F7D8093C900832F992724
S214002AB08093CD002093CC008091C80082608093E4
S214002AC0C80088E18093C9008091CA008F77809300
S214002AD0CA008091CA008F7B8093CA008091CA008A
S214002AE08F7D8093CA008091CA008F7E8093CA0033
S214002AF08091CA00877F8093CA008091C900846055
S214002B008093C9008091CA0084608093CA00809137
S214002B10CA0082608093CA008091C9008160809359
S214002B20C9008091C80087FF03C08091CE00F9CF0E
S214002B308091C90080688093C9004FBF3CE73093FE
S214002B407A062DE72093A5068EE880937B061092E2
S214002B509706109296061092800680EE80937D0669
S214002B603093DC06209307071092E8061092E706DB
S214002B701092EA061092E9061092EC061092EB0606
S214002B8084EF91E09093E6068093E5069093E40642
S214002B908093E3069093E2068093E1061092DE06A9
S214002BA089E88093DD06109205071092060780E9F3
S214002BB08093DF063093B4072093DF071092B607A2
S214002BC08AE88093B5071092BC071092BB07109254
S214002BD0BA071092BE071092BF071092C007109255
S214002BE0C1071092C3071092C4071092C50710922F
S214002BF0C6071092CA071092C9071092C80710920B
S214002C00C70780EA8093B7073093A6062093D106BD
S214002C101092A8068DE88093A7061092D00680ED45
S214002C208093A9068BE78093080780E880930907BE
S214002C3010920A078091800690E2EBE0F7E091930D
S214002C408F5F883AE0F38DE78093B3070895CF93BC
S214002C50C82F80910003803879F48C2F0E94F5618C
S214002C608093EF028091EF02882331F1C093B00C7D
S214002C708091EF028F5F16C08F37F1F48091A90C18
S214002C80882329F48C2F80958F708093A90C0E943E
S214002C90CC6080930A0788E097E09093F1028093D7
S214002CA0F0028DEA8093EF028091C9008F7E8093B8
S214002CB0C90082E08093EE02C0930003CF9108958E
S214002CC03091EE02332331F08091EE0281508093F2
S214002CD0EE0208958091EF02882361F14091EF02A1
S214002CE090910103413069F4292F309301038091BC
S214002CF0ED02882319F03093ED0210C04093ED02E8
S214002D000DC0E091F002F091F1028191F093F10292
S214002D10E093F002282F980F909301038091C8004B
S214002D2085FFFCCF2093CE008091EF0281508093E8
S214002D30EF0208958091C90080618093C9000895CC
S214002D406F927F928F929F92AF92BF92CF92DF92B6
S214002D50EF92FF920F931F93882361F1823041F424
S214002D6010920A0310920B0310920C0310920D039C
S214002D702091FE033091FF0340910004509101041E
S214002D80DA01C90119E0880F991FAA1FBB1F1A95FF
S214002D90D1F78093570390935803A0935903B093A9
S214002DA05A03209302033093030340930403509383
S214002DB0050326C1A090FE03B090FF03C090000458
S214002DC0D09001048091020390910303A091040324
S214002DD0B091050335014601681A790A8A0A9B0AEA
S214002DE0609206037092070380920803909209038C
S214002DF080915B0390915C0384559F4F7C01002774
S214002E00F7FC0095102F80912D0690912E069C01C0
S214002E10442737FD4095542FC801B7010E9427B1BB
S214002E2097FF04C06150704E8F4F9F4FAB01BC019F
S214002E30FDE07595679557954795FA95D1F74C5AE5
S214002E4050406040704040930E0350930F036093D1
S214002E501003709311032091EC083091ED0837FFB2
S214002E6002C0215F3F4FE4E035952795EA95E1F7EC
S214002E7080915F0390916003829FD001839FB00D85
S214002E80929FB00D1124CD01B7FF02C081509F4F15
S214002E90E92FFF27E7FDFA952091EA083091EB0825
S214002EA037FF02C0215F3F4F84E0359527958A950E
S214002EB0E1F780915D0390915E03829FD001839F2E
S214002EC0B00D929FB00D1124CD01B7FF02C0815006
S214002ED09F4F892F990F990BE80FF91FCF01AA274B
S214002EE097FDA095BA2F840F951FA61FB71F809336
S214002EF00E0390930F03A0931003B0931103BC012D
S214002F00CD012DE030E040E050E00E9427B17B018B
S214002F108C01C401B30124EF31E040E050E00E9490
S214002F2027B1DC01CB01E80EF91E0A1F1B1F80919A
S214002F300A0390910B03A0910C03B0910D0320910E
S214002F401203309113034091140350911503821B12
S214002F50930BA40BB50BE80EF91E0A1F1B1FE0927D
S214002F600A03F0920B0300930C0310930D03D80191
S214002F70C70180509E4FAF4FBF4FB7FF06C0D80166
S214002F80C70181509A4FAF4FBF4F1AE0B595A7952E
S214002F90979587951A95D1F780931203909313030C
S214002FA0A0931403B0931503A0920203B0920303F8
S214002FB0C0920403D0920503209157033091580322
S214002FC04091590350915A03E0904A03F0904B0306
S214002FD000914C0310914D032E193F09400B510BE5
S214002FE0280F391F4A1F5B1F2A0D3B1D4C1D5D1DF8
S214002FF020935703309358034093590350935A0332
S2140030008091120390911303909355038093540379
S2140030108091570390915803A0915903B0915A0399
S214003020BC01CD011F910F91FF90EF90DF90CF90E4
S214003030BF90AF909F908F907F906F9008952FB71E
S21400304040E0F894E0E0F0E081E28093570094914D
S214003050E2E0F0E0809357003491E4E0F0E0809303
S214003060570084912FBF9E3199F4363941F4893048
S21400307011F441E00DC08A3059F442E009C03739F6
S21400308039F4863011F443E003C0853009F444E097
S214003090842F992708959FB7F8948091C900877F59
S2140030A08093C9008091C9008F7E8093C90080916B
S2140030B0C9008F778093C9008091C9008F7B809369
S2140030C0C9008091C9008F7D8093C9009FBF089575
S2140030D01F93CF93DF93182F8091EC02882309F477
S2140030E0A4C080910501181709F49FC08091EB02D7
S2140030F0882319F4A4DF8093EB0282ED91E090938D
S2140031009202809391028EE099E19F938F93C7EB92
S214003110DCEADF93CF93E0917806F0917906099583
S2140031200F900F900F900F90812F9927AA27BB27FB
S214003130FC01099778F5EE5EFE4F209178063091F7
S21400314079060C94A7B18AE099E102C081E099E182
S2140031509F938F93DF93CF93F901099527C08CEF48
S21400316098E1F6CF84EF98E1F3CF8CEE98E19F9349
S2140031708F93DF93CF93F901099588ED91E09093B3
S21400318092028093910212C087EE98E1E1CF8BE124
S21400319099E1DECF81E299E19F938F93DF93CF93FE
S2140031A0E0917806F0917906099510E00F900F905F
S2140031B00F900F908091EB02843011F0823001F571
S2140031C06ADF812F8150833018F40E941C942BC034
S2140031D0143019F40E948A0F26C0183019F40E9481
S2140031E006B021C0153019F40E94CC0D1CC0163054
S2140031F011F449DC18C01730B1F40E94C59213C010
S214003200112389F087E399E19F938F9387EB9CEADC
S2140032109F938F93E0917806F091790609950F9029
S2140032200F900F900F9010930501DF91CF911F9193
S21400323008950F931F93082F81E08093EC0240912E
S2140032400401E7E9F8E120E030E05FE484919927A3
S2140032502F5F3F4F829FB001839F700D929F700D2E
S214003260112446275150319657FFF0CF4093040162
S214003270EFE6F8E120E030E057E2849199272F5FEF
S2140032803F4F829FB001839F700D929F700D112457
S21400329046275150319657FFF0CF40930401809156
S2140032A0EB02882319F4CBDE8093EB0281E792E1F0
S2140032B0909379068093780680910401833459F0C0
S2140032C088E190E029E20FB6F894A8958093600014
S2140032D00FBE20936000073091F082E599E19F933E
S2140032E08F9387EB9CEA9F938F93E0917806F091FB
S2140032F0790609950F900F900F900F90EECF809162
S2140033005401893158F18091EA028823A9F48FE6A6
S21400331099E19F938F9387EB9CEA9F938F93E0911D
S2140033207806F0917906099587E1809354010F900D
S2140033300F900F900F9012C015BC873119F4809330
S214003340540106C087E080930B0186E080930A0153
S214003350E0910201F09103018DEF09950E944B590F
S21400336081E690E09F938F9388E090E09F938F9301
S21400337082E090E09F938F93809154016AE00E94D0
S21400338036B1892F99279F938F93809154010E947D
S21400339036B199279F938F9389EA99E19F938F93EC
S2140033A007EB1CEA1F930F93E0917806F0917906DD
S2140033B0099587E998E19F938F931F930F93E09168
S2140033C07806F091790609958FE698E19F938F939A
S2140033D01F930F93E0917806F091790609950E9465
S2140033E04B5983EC8093810080916F0080628093BC
S2140033F06F008DB79EB746968DBF1F910F910895AB
S2140034008091A6058D3338F08091D70887FD03C0DC
S2140034108CE38093A60580915405882331F080556F
S214003420853618F08FE78093540508958091EC0256
S214003430882309F485C08091260381508093260353
S214003440882309F069C089E1809326038091A60548
S2140034508E3338F08091D70887FD03C08DE38093C4
S214003460A605809104048238A0F58091CC03909143
S214003470CD03805D974020F080911B05843620F4B4
S21400348010922803109227032091270330912803D7
S21400349021153105B1F1C901019790932803809356
S2140034A02703419798F18091D70884FF2FC0809119
S2140034B0CA0384608093CA038091E50887FF26C00C
S2140034C080918D04882311F13093280320932703DD
S2140034D01DC080910404853BC8F09091A60584E148
S2140034E0989FC0011124409620912703309128030D
S2140034F02817390730F42F5F3F4F30932803209367
S21400350027038091CA038B7F8093CA0380910401AE
S214003510833411F01092EC0290910501963009F474
S214003520CFCB80910901882321F081508093090137
S21400353008958BE480930901943011F40C94D4110F
S21400354008951F920F920FB60F9211242F933F9358
S2140035504F935F936F937F938F939F93AF93BF9396
S214003560EF93FF939091CE008091EC048823B9F0FE
S2140035709093C6008091EC04823009F03EC09F3FD5
S214003580E1F58FEF94E3ACE0B0E0C297A109B10992
S214003590B7FFFBCF80918C0A8093CE002EC020917F
S2140035A00501822F8150833020F4892F0E94659474
S2140035B024C0243021F4892F0E94E90F1EC0283031
S2140035C021F4892F0E9407B018C0809154018931D8
S2140035D020F08091EA02882381F0253021F4892F9B
S2140035E00E942E0F0AC0263019F4892F30DB05C042
S2140035F0273019F4892F0E941193FF91EF91BF9104
S214003600AF919F918F917F916F915F914F913F9175
S2140036102F910F900FBE0F901F90189510927C0060
S2140036208FEC80937A0008958091C2038823A1F0DE
S21400363020910D0130910E01A0915603BB27A7FDE6
S214003640B0950E94C2B160934E0370934F0380936F
S214003650500390935103089520910D0130910E016F
S21400366022953295307F3227207F3227A09156034D
S214003670BB27A7FDB0950E94C2B1DC01CB01049721
S214003680A109B10980934E0390934F03A093500372
S214003690B09351030895EF92FF920F931F93CF9329
S2140036A0DF9310925603C0DF83E090E00E9442252D
S2140036B0C82FD0E0C03FD10508F42A96C7BD8C2F8E
S2140036C0809588BD86E990E00E946E9C80911001EE
S2140036D0909111018132934058F0C0EFD0E00F2E48
S2140036E0F6E3EF2EF2E0FF2EF02D07EB1CEA04C007
S2140036F0C630D105A0F720C08C2FC7BD809588BDE9
S21400370084E690E00E946E9CFF92EF921F930F93C8
S214003710E0917806F09179060995809110019091D4
S21400372011010F900F900F900F908132934020F46C
S2140037302197C630D10500F7C09312056C2F83E0A1
S21400374090E00E94452580914B0580FF0AC080913D
S21400375012058A508C3D28F0E2E6FAE0808180640B
S214003760808380E180930C018091C203882369F1F5
S214003770809154018731A8F4CC38D10530F520EA81
S21400378030E02C1B3D0BA5ECBEE40E94B3B1969531
S21400379087959695879596958795805F80930C017B
S2140037A014C0CA3AD10588F42CEB30E02C1B3D0B34
S2140037B0A5E9B7ED0E94B3B1929582958F708927DF
S2140037C09F708927805F80930C01209110013091B3
S2140037D0110140910C01429FC001439F900D11249E
S2140037E0A0E0B0E08093120190931301A09314011F
S2140037F0B09315018CE291E00E946E9CDF91CF9110
S2140038001F910F91FF90EF9008951F920F920FB6A1
S2140038100F9211240BB60F928F929F92AF92BF9287
S214003820CF92DF92EF92FF920F931F932F933F93C7
S2140038304F935F936F937F938F939F93AF93BF93B3
S214003840EF93FF938091410391E0980F909341038B
S21400385090E08231910508F05DC5FC01EA5BFF4F00
S2140038600C94A7B1809178009091790090934003D2
S21400387080933F0381E080933E0351C5809178009A
S2140038809091790090933D0380933C0310923E0301
S21400389046C5809178009091790090933B03809381
S2140038A03A0380910B0180933E0339C5209178003E
S2140038B03091790080914B0490914C04821B930BBD
S2140038C09093050580930405809104059091050565
S2140038D0909339038093380380910A0180933E03C6
S2140038E01EC5809178009091790020914D0430910A
S2140038F04E04821B930B90931105809310058091C4
S214003900100590911105909337038093360382E05B
S21400391080933E0304C580917800909179002091B1
S2140039203F0330914003820F931F90934003809390
S2140039303F0381E080933E03F2C48091780090912B
S214003940790020913C0330913D03820F931F9093A2
S2140039503D0380933C0384E080933E03E0C4809163
S214003960B80583FF29C040911A0150911B01809130
S2140039707800909179006BE0689F9001699F300D08
S2140039801124A9E8B8E80E94B3B1929582958F7089
S21400399089279F7089279A01220F331F420F531FD2
S2140039A0480F591FCA0196958795969587959093C7
S2140039B01B0180931A0153C0809134039091350304
S2140039C0892B99F480917800909179009C01220FC0
S2140039D0331F880F991F880F991F880F991F820F12
S2140039E0931F909335038093340320917800309191
S2140039F079008091340390913503A901440F551F37
S214003A00220F331F220F331F220F331F240F351FA1
S214003A102817390730F002969093350380933403C5
S214003A2005C0029790933503809334034091340386
S214003A30509135039A01A3E4B8E00E94B3B1481B45
S214003A40590B56954795840F951F929582958F70C2
S214003A5089279F70892790931B0180931A0185E020
S214003A6080933E035CC48091780090917900909397
S214003A70070580930605209106053091070580917D
S214003A8047049091480440914604281B390B241B98
S214003A90310947FD339530935C0320935B032091F7
S214003AA0C203211172C020915B0330915C03223067
S214003AB031058CF18E3E22E092070CF0ADC02091CD
S214003AC0320330913303A9014B5F5F4F50933303AA
S214003AD0409332034091CC035091CD03443F514074
S214003AE030F4215F3F4F309333032093320320910D
S214003AF0320330913303253631050CF48DC0019620
S214003B009093480480934704245631093093330336
S214003B102093320381C020915B0330915C032F3FDA
S214003B203F4F0CF079C0873222E092070CF474C045
S214003B302091320330913303A90145505109509327
S214003B403303409332034091CC035091CD03443F5E
S214003B50514030F42F503109309333032093320311
S214003B6020913203309133032C39EFEF3E070CF0EF
S214003B7053C0019790934804809347042C593F4FB5
S214003B80309333032093320347C080912D069091E3
S214003B902E068F3C9F410CF43FC080915B039091B2
S214003BA05C030297CCF02091320330913303C901B5
S214003BB0019690933303809332038938934164F1DE
S214003BC046301CF44F5F40934604275833413093E9
S214003BD033032093320320C080915B0390915C03F3
S214003BE08F3F9F4FCCF480913203909133039C011A
S214003BF021503109309333032093320328373C4E4B
S214003C005CF44B3F1CF041504093460489579C4E51
S214003C10909333038093320380915B0390915C030F
S214003C2040911E0450911F0460912004709121045D
S214003C30AA2797FDA095BA2F840F951FA61FB71F1A
S214003C4080931E0490931F04A0932004B093210435
S214003C50C0901E04D0901F04E0902004F090210431
S214003C6080911E0490911F04A0912004B09121041D
S214003C70BB2324F481509C4FAF4FBF4FAC01BD0116
S214003C80032E3AE075956795579547953A95D1F77F
S214003C90302DD701C601841B950BA60BB70B80935E
S214003CA01E0490931F04A0932004B093210483E085
S214003CB080933E0334C380917800909179002091E0
S214003CC03F0330914003820F931F909340038093ED
S214003CD03F0381E080933E0322C380917800909159
S214003CE0790020913C0330913D03820F931F9093FF
S214003CF03D0380933C0310923E0311C3209178004D
S214003D00309179008FEF97E0821B930B20913A0356
S214003D1030913B03821B930B909362038093610365
S214003D2080910B0180933E03FAC220917800309177
S214003D30790080914B0490914C04821B930B9093D6
S214003D4005058093040520910405309105058091B2
S214003D50380390913903820F931F909360038093EA
S214003D605F0380910A0180933E03D9C28091780058
S214003D709091790020914D0430914E04821B930B54
S214003D809093110580931005209110053091110530
S214003D908091360390913703820F931F90935E03B2
S214003DA080935D0382E080933E03B9C22091780041
S214003DB03091790080913F0390914003820F931FCA
S214003DC0880F991F880F991F9093400380933F0395
S214003DD09C01992314F4295F3F4F35952795359517
S214003DE02795359527953093660320936503209194
S214003DF0300330913103820F931F99230CF4019600
S214003E0095958795909331038093300320915704BE
S214003E1030915804821B930B9093190180931801DC
S214003E202091690330916A038091180190911901DD
S214003E30820F931F99230CF401969595879590937E
S214003E406A038093690381E080933E0368C22091F1
S214003E5078003091790080913C0390913D03820F69
S214003E60931F880F991F880F991F90933D03809387
S214003E703C039C01992314F4295F3F4F3595279501
S214003E8035952795359527953093640320936303DE
S214003E9020912E0330912F03820F931F99230CF449
S214003EA001969595879590932F0380932E032091E6
S214003EB0550430915604821B930B90931701809300
S214003EC01601209167033091680380911601909146
S214003ED01701820F931F99230CF4019695958795E9
S214003EE0909368038093670383E080933E0317C232
S214003EF08091C203882311F180E00E94A016AB01D6
S214003F00BC015F5F6F4F7F4FDB01CA01772324F44C
S214003F1081509E4FAF4FBF4F072E79E0B595A795BE
S214003F20979587957A95D1F7702D80934203909355
S214003F304303A0934403B093450310C08091FE034F
S214003F409091FF03A0910004B09101048093420376
S214003F5090934303A0934403B09345031092410308
S214003F6081E080930F018091520390915303019654
S214003F709093530380935203809178009091790038
S214003F8090931101809310018091C203882309F455
S214003F906EC0C0901001D0901101E12CF12C8091E0
S214003FA04E0390914F03A0915003B0915103C81A4D
S214003FB0D90AEA0AFB0AC0922A03D0922B03E0929F
S214003FC02C03F0922D038090120190901301A09084
S214003FD01401B09015016091120170911301809147
S214003FE014019091150120910C0130E040E050E062
S214003FF00E948BB1821A930AA40AB50A8092120113
S21400400090921301A0921401B092150180911201B2
S21400401090911301A0911401B0911501C80ED91EFC
S214004020EA1EFB1EC0921201D0921301E092140108
S214004030F09215018091080590910905A0910A0556
S214004040B0910B054091120150911301609114013B
S21400405070911501841B950BA60BB70B8093460336
S21400406090934703A0934803B09349034FC1209110
S21400407010013091110180912A0390912B03A09199
S2140040802C03B0912D03820F931FA11DB11D8093A9
S2140040902A0390932B03A0932C03B0932D03209117
S2140040A029032F5F20932903203108F42FC1409164
S2140040B012015091130160911401709115016A016B
S2140040C07B01CC0CDD1CEE1CFF1CCC0CDD1CEE1C9E
S2140040D0FF1CCC0CDD1CEE1CFF1CC41AD50AE60A1D
S2140040E0F70AC80ED91EEA1EFB1E40914E035091D9
S2140040F04F036091500370915103C41AD50AE60A23
S214004100F70AB701A60122F4495F5F4F6F4F7F4F52
S214004110689412F875956795579547951694D1F754
S214004120409312015093130160931401709315018C
S214004130409108055091090560910A0570910B059C
S2140041400091120110911301209114013091150174
S214004150401B510B620B730B40934603509347036F
S21400416060934803709349030091570310915803D6
S2140041702091590330915A03C0905703D0905803AA
S214004180E0905903F0905A03FF202CF4EFE0CE0E97
S214004190D11CE11CF11C46015701689413F8B59434
S2140041A0A794979487941694D1F768017901C81854
S2140041B0D908EA08FB08C0925703D0925803E09249
S2140041C05903F0925A03C0905703D0905803E090DA
S2140041D05903F0905A03C40ED51EE61EF71EC09271
S2140041E05703D0925803E0925903F0925A03C090B6
S2140041F05703D0905803E0905903F0905A03FF20DD
S2140042002CF42FE0C20ED11CE11CF11C689413F8AC
S214004210F594E794D794C7941694D1F74C195D0992
S21400422041156CEF560714F440E05CEF4130E4E0D3
S2140042305E0714F040E054E020915403309155039B
S21400424033231CF43195219531092D3B32401CF166
S2140042506091540370915503EFE0E69F9001E79F4D
S214004260300D1124440F551F440F551F440F551F82
S214004270420F531F552314F4415F5F4F55954795E2
S214004280559547955595479555954795509355039C
S2140042904093540324C06091540370915503EFE19A
S2140042A0E69F9001E79F300D1124440F551F440FE1
S2140042B0551F440F551F420F531F552314F4415EDC
S2140042C05F4F5595479555954795559547955595FF
S2140042D04795559547955093550340935403AC0125
S2140042E0BD01BB2324F44F5F5F4F6F4F7F4F759523
S2140042F067955795479540932A0350932B036093F1
S2140043002C0370932D0388E08093290382E080932A
S2140043103E0305C01092410382E080933E038091E5
S2140043203E0380937C0080914103882319F08FEC34
S21400433080937A00FF91EF91BF91AF919F918F91FB
S2140043407F916F915F914F913F912F911F910F91A8
S214004350FF90EF90DF90CF90BF90AF909F908F90A0
S2140043600F900BBE0F900FBE0F901F9018951092D7
S21400437016051092150510921A051092190510923E
S21400438018051092170510921B0582E390E00E9414
S2140043905A9C90937403809373030895282F30E0FB
S2140043A09FE0899FF0011124E956F64F85818F3FE3
S2140043B009F1893C10F490E008959FE0929FF00187
S2140043C0939FF00D1124E956F64F908192FF10C08E
S2140043D0282F30E0C901880F991F220F331F220FA4
S2140043E0331F220F331F820F931F88509740089564
S2140043F090E0089580E090E008959F92AF92BF927B
S214004400CF92DF92EF92FF920F931F93CF93DF939B
S21400441080917303909174030E94639C882309F42F
S214004420FBC08091730390917403C29690937403BB
S2140044308093730380911B058E3F31F48091C903EE
S21400444081608093C903DDC08F3F09F0DAC0809198
S214004450C9038E7F8093C903D4C07801F8013397CF
S21400446080818823E4F4B39432968081893C28F0D6
S2140044708A2D94DFC80FD91F02C0C80FD11DF701BF
S21400448035978081C80ED11CF7018081981630F4CC
S2140044908091C9038E7F8093C90301C0982EA39490
S2140044A0015F1F4FFCE0AF12D8CF90921B05CD28BE
S2140044B059F540916F0350917003609171037091AC
S2140044C07203052F162F272F332710936E030093A2
S2140044D06D0322273327401B510B620B730B4C0FC7
S2140044E05D1F611D711D40936F03509370036093B1
S2140044F071037093720385E090E0909316058093A5
S2140045001505C5E0D0E01CC080916D0390916E0348
S2140045108C179D0728F49E01281B390BC90102C081
S21400452080E090E0CB2DD0E0CC0FDD1F2596C80FA5
S214004530D91FD0931605C0931505CF3FD105D0F4EB
S21400454080911A0190911B01C89F9001C99F300D60
S214004550D89F300D11243695279536952795ABE7CD
S214004560B4E10E94B3B19695879590931805809311
S214004570170525C080911A0190911B019E01369562
S214004580279536952795289FA001299F500D389F7F
S214004590500D11249A01AFEAB7E40E94B3B1481B4C
S2140045A0590B56954795840F951F929582958F7057
S2140045B089279F7089279093180580931705809107
S2140045C06B0390916C03C80FD91FD0936C03C093F4
S2140045D06B03C13D32E0D307F8F080911905909146
S2140045E01A050196C05DD240C13DE2E0DE07C8F77D
S2140045F090931A0580931905D0936C03C0936B03B0
S2140046000BC00DE919E099249A94B12CA12CC12C69
S214004610D12CC0E0D0E021CFDF91CF911F910F9138
S214004620FF90EF90DF90CF90BF90AF909F9008954F
S2140046309091760391110FC0E091750391E09E0F63
S21400464090937503F0E0E45EFA4F81839F3118F093
S2140046508EE18093750308959091760391110DC0B5
S21400466080931C05E0917503F0E0E45EFA4F11823A
S2140046701092750381E080937603089561157105A5
S21400468051F0FC01680F791F8AEA9191890FE617AD
S214004690F707D9F708958AEA0895FF920F931F93B4
S2140046A0CF93DF936115710589F08B01080F191FF1
S2140046B0EC010F2EFAEAFF2EF02DCE010E943EB23C
S2140046C0F80E2196C017D107C1F704C00F2EFAEADC
S2140046D0FF2EF02D8F2DDF91CF911F910F91FF9020
S2140046E0089581E08093410582E08093400583E051
S2140046F080933F0584E08093420585E080934305E0
S21400470086E08093440587E08093450588E08093A3
S214004710460589E0809347058AE0809348058BE04C
S214004720809349058CE080934A05089587E6809338
S2140047303E058CE0EAEBF5E0DF011D928A95E9F78D
S2140047408AE080935E05109282058BE180935A057D
S2140047508EE480937F058093800580E280938105B8
S2140047601092B6058AE680934B0582E78093B805DB
S21400477080E58093B90586E0809365051092A305D1
S2140047801092A00588E08093580586EE8093590520
S21400479080E480935B0585E080934E058EE18093F0
S2140047A04C058EE6809353058091C203882399F0CA
S2140047B084E180934F0588E280934D058EE18093D7
S2140047C0510581E0809352058FE7809354058CE372
S2140047D08093A6050FC08FE080934F058EE18093EF
S2140047E04D051092510588E08093520510925405AD
S2140047F01092A6058FE0809350051092AF058CE0CE
S2140048008093B005109267051092680510926905AE
S21400481010926A05109284051092850510928605FE
S2140048201092870520E820936B0582E380936C0541
S21400483052E05093B70598E190936D0596EE9093ED
S2140048406E0593E0909373059DE79093760590939D
S21400485077059093780520936F0575E5709370053E
S21400486026E4209371053CED309372053CE33093CB
S2140048707405109275053AEA309388054CEC40931F
S2140048808A0510928C0530938D0548E24093890581
S21400489040938B0510928E051092B4058093B50553
S2140048A0809379053AE530937A0580937B0566E038
S2140048B060938F05E4E6E0939005E09391053093CE
S2140048C09205E8E7E0939305409397054BE4409301
S2140048D0940570939505409396056093980548E077
S2140048E04093990580939A058AE280939B051092DF
S2140048F09C0510929F058CE880939D0550939E051D
S2140049001092A1051092A20541E4409363053093EE
S21400491064051092A4051092A50536E93093A70504
S21400492090937C0594E390937D051092A8051092D1
S214004930A9051092AA058093AB052093AC05809339
S214004940AD052093AE051092B10580E28093620516
S2140049508FE18093B3058EE18093B2050895E6DE7D
S2140049608AE08093550580E18093560586E0809323
S21400497057052AE520935C0598E790935D052093FC
S2140049805F05909360058093610580E280936605DD
S2140049908CE380937E058BE48093830586E491E622
S2140049A0A3E7B4E78093BA059093BB05A093BC0534
S2140049B0B093BD0568E870E08EE395E05FDE809317
S2140049C0C6050895B3DE88E08093550580E18093A0
S2140049D0560596E09093570534E630935C0528E735
S2140049E020935D0530935F052093600590936105E5
S2140049F08093660586E480937E058093830585E034
S214004A00E5ECF2E0AAEBB5E001900D928A95E1F7AD
S214004A1068E870E08EE395E031DE8093C605089581
S214004A2085DE86E0809355059AE09093560594E0DF
S214004A309093570524E620935C0598E790935D05D0
S214004A4020935F05909360058093610580E18093D5
S214004A50660586E480937E058093830585E491E66B
S214004A60A3E7B9E78093BA059093BB05A093BC056E
S214004A70B093BD0568E870E08EE395E0FFDD8093B7
S214004A80C60508950C943EB208950C9454B2089549
S214004A900C9446B208950C9462B20895FF920F9358
S214004AA01F93CF93DF939FEF980F953008F083E026
S214004AB090E0019729E8289FE001299FD00D112456
S214004AC08E010C591F4F68E870E0C801E6DDF82E2D
S214004AD0CE0184519F4F0E943EB28F1112C0C80172
S214004AE00E943EB2873679F449E850E0B8018EE37A
S214004AF095E00E942EB20E9480850E943A1581E0C1
S214004B0003C080E001C080E0DF91CF911F910F913C
S214004B10FF900895CF936DE470E088EE93E0BDDDDE
S214004B20C82F85E394E00E943EB28C1310C088EE36
S214004B3093E00E943EB2813061F44EE450E068EEAD
S214004B4073E087EC95E00E942EB281E003C080E01F
S214004B5001C080E0CF9108958091C705813089F427
S214004B606DE470E087EC95E089DD809314064EE4F2
S214004B7050E068EE73E087EC95E00E944BB281E06F
S214004B80089580E0089581E08093C705E7EDF5E09D
S214004B9087E196E0DF0113971C9211961C921196FE
S214004BA01C9210823496E817F907A1F780E48093E8
S214004BB0D4058093D5051092D6058093D7058093AB
S214004BC0D80590EC9093D9051092DA058093DB0512
S214004BD08093DC051092DD059093DE059093DF054B
S214004BE08093E0051092E1058093E2059093E3053B
S214004BF08CE0E8EBF2E0A8ECB5E001900D928A9527
S214004C00E1F76DE470E087EC95E038DD80931406FC
S214004C10089582E090E00E943EB2863030F063E075
S214004C2082E090E00E9454B283E08093520108959F
S214004C30863008F085E0811101C081E08093520142
S214004C40682F82E090E00C9454B20895CF93909130
S214004C503E05973609F047C0C82F863008F0C5E0F5
S214004C60CC2309F442C00E94001A8091B90582FF45
S214004C7007C080916305843618F080E5809363054D
S214004C8068E870E08EE395E0F9DC8093C6052C2F8B
S214004C9030E02150310989E8829FB001839F700D72
S214004CA011246C597F4F49E850E08EE395E00E944E
S214004CB04BB24CE050E060E570E08FE395E00E9478
S214004CC04BB26CE070E08FE395E0D8DC682F8CE5A3
S214004CD090E00E9454B28C2FABDF0E9480850E9429
S214004CE03A1581E003C080E001C080E0CF910895CE
S214004CF0CF93DF93C82FD62F863080F4882339F0E1
S214004D00823041F0833041F0813049F401C0C1E087
S214004D1026DE06C057DE04C083DE02C0C5E080DEA5
S214004D20DD23B9F06CE070E080E590E0B6DCD82FCB
S214004D308CE590E00E943EB28D1309C04CE050E036
S214004D4060E570E08FE395E00E942EB203C0C9DCF8
S214004D5001C0C7DC8C2F7ADFDF91CF9108958F9248
S214004D609F92AF92BF92CF92DF92EF92FF920F93F5
S214004D701F93CF93DF9381E190E00E943EB2909123
S214004D805401981771F1963149F4853139F44C99EC
S214004D9005C060E081E090E00E9454B2609154014A
S214004DA081E190E00E9454B228E088E190E00FB6DE
S214004DB0F894A895809360000FBE2093600089EB5E
S214004DC092E09F938F9387EB9CEA9F938F93E0915B
S214004DD07806F091790609950F900F900F900F9036
S214004DE0FFCF81E090E00E943EB2FF24F394873626
S214004DF009F4F12C6CE070E080E590E04EDCB82E13
S214004E008CE590E00E943EB2C82EC1E0D0E0D12CE6
S214004E100F2EF3E98F2EF2E09F2EF02D07EB1CEA03
S214004E20AA24A394EC2EF11004C08C2F37DE811137
S214004E302CC0DF93CF939F928F921F930F93E09196
S214004E407806F091790609950F900F900F900F90C5
S214004E500F900F9081E0E81621F092E0E91619F025
S214004E6004C07DDD03C0AEDD01C0DADDBC1009C0C4
S214004E704CE050E060E570E08FE395E00E942EB2D3
S214004E8001C02FDC8E2DE2DEDA2C2196C630D1054D
S214004E9049F6DD2011F083E0CBDEBBDEC82FFEDD59
S214004EA01F92CF938AE792E09F938F9387EB9CEABB
S214004EB09F938F93E0917806F0917906099581E0AB
S214004EC090E00E943EB20F900F900F900F900F90C0
S214004ED00F908F3F19F01EDE811113C089E592E016
S214004EE09F938F9387EB9CEA9F938F93E09178062E
S214004EF0F0917906099547DE2FDE0F900F900F9000
S214004F000F90FF2029F067E681E090E00E9454B2FF
S214004F10E4EDF5E084E196E020E0308113160CF431
S214004F202F5F3496E817F907C1F720933D051F92C7
S214004F302F9388EC95E09F938F9388E392E09F935E
S214004F408F9387EB9CEA9F938F93E0917806F0917E
S214004F50790609950E944B598DB79EB708960FB6ED
S214004F60F8949EBF0FBE8DBFDF91CF911F910F911A
S214004F70FF90EF90DF90CF90BF90AF909F908F9074
S214004F800895CF92DF92EF92FF928091EA08909177
S214004F90EB089093490C8093480C8091EC08909114
S214004FA0ED0890934B0C80934A0C8091600690918C
S214004FB0610699230CF403969595879595958795A4
S214004FC090934D0C80934C0C8091720690917306D2
S214004FD099230CF4039695958795959587959093C8
S214004FE04F0C80934E0C20916103309162038091A8
S214004FF0530490915404821B930B9093510C80930E
S214005000500C6091FE037091FF0380910004909114
S21400501001040F2EFAE0CF2ED12CE12CF12CF02D2E
S214005020A70196010E948BB13093530C2093520C2B
S21400503080910605909107059093550C8093540C2B
S21400504080914E0190914F019093590C8093580C8B
S21400505080911A0190911B0190935B0C80935A0CDF
S2140050608091040490E090935D0C80935C0C80919A
S21400507021069091220690935F0C80935E0C80919F
S214005080980990E09093610C8093600C8091A7093A
S21400509090E09093630C8093620C8091B60990E048
S2140050A09093650C8093640C8091C50990E0909372
S2140050B0670C8093660C8091C6049091C704909309
S2140050C0710C8093700C8091E8039091E9039093A3
S2140050D0730C8093720C8091150590911605909331
S2140050E0750C8093740C8091190590911A05909315
S2140050F0770C8093760C6091FA037091FB03809195
S214005100FC039091FD03A70196010E948BB130939A
S214005110790C2093780C80911B0590E09093830C7B
S2140051208093820C80916A0490916B049093850C16
S2140051308093840C80916804909169049093870C06
S2140051408093860C8091620A811104C08091630A64
S214005150882331F0E7E4FCE080818160808305C02D
S214005160E7E4FCE080818E7F8083FF90EF90DF9005
S214005170CF900895FF920F931F93CF93DF938B01E9
S21400518090910304911131C090915401993111F41A
S214005190299821C0299A1FC01093CE040093CD04ED
S2140051A0E8010FC09091D104992359F01092D104D0
S2140051B02091CD043091CE04232B09F421970E9430
S2140051C0161A2091CD043091CE04232B59F7209740
S2140051D049F7FA9401C0F82EF110DECF8091540101
S2140051E0893111F4299A01C02998DF91CF911F9136
S2140051F00F91FF900895EAE7F0E010828091650332
S2140052009091660390932806809327068091630307
S2140052109091640390931D0680931C068091610311
S21400522090916203909368068093670680915D0371
S21400523090915E039C01220F331F820F931F880FED
S214005240991F909361068093600680915F0390910A
S21400525060039C01220F331F820F931F880F991F34
S21400526090937306809372068FEC808320917F055F
S21400527030E0A4ECB9E00E94B3B1609346017093AD
S214005280470180934801909349012091800530E0C2
S2140052900E94B3B16093420170934301809344012E
S2140052A09093450108958F929F92AF92BF92CF92AE
S2140052B0DF92EF92FF920F931F93CF93DF93C82F47
S2140052C01092620A10924E0410924D0410924C04F2
S2140052D010924B0410924804109247041092460411
S2140052E010925804109257041092560410925504C7
S2140052F0109254041092530410922A01109229011D
S21400530010925603833029F48091C90382608093FB
S214005310C90371DF84E690E00E946E9C6CDF80918A
S2140053204B0580FF13C08091100190911101873BBF
S214005330934050F480911001909111018E3E92405E
S21400534018F08091560381110E944B1B00911001AA
S2140053501091110187B58B5F87BD87B5809588BD95
S214005360D0E2E12CF12CA12CB12C812C912CC12C5B
S214005370D12C8AE090E00E946E9C8091610390910F
S2140053806203C80ED91E8091650390916603880E4D
S214005390991E8091630390916403A80EB91E8091B4
S2140053A0060590910705E80EF91ED15011F7809179
S2140053B0100190911101823F934080F4809110017A
S2140053C090911101459750F0809110019091110134
S2140053D0081B190B10930E0100930D0187B585501D
S2140053E087BD87B5809588BD80E1880E911C969410
S2140053F0879496948794909258048092570420E15C
S214005400A20EB11CB694A794B694A794B092560474
S214005410A092550440E1C40ED11CD694C794D694ED
S214005420C794D694C794D694C794D694C794D0926B
S2140054305404C092530460E1E60EF11CF694E7941F
S214005440F694E794F694E794F694E794F694E79443
S214005450F0924804E0924704B0925204A09251049D
S2140054609092500480924F04C23009F04CC0809154
S21400547060069091610699231CF491958195910997
S2140054806CE070E00E9456B19B0170934E046093EE
S2140054904D04809172069091730699231CF49195A1
S2140054A0819591096CE070E00E9456B170934C04AF
S2140054B060934B04B90184E090E0EDDA60914B0410
S2140054C070914C0486E090E0E6DA609147047091B3
S2140054D0480488E090E0DFDA609157047091580441
S2140054E082E190E0D8DA609155047091560484E128
S2140054F090E0D1DA609153047091540486E190E014
S214005500CADAD1E091C084E090E0C2DA90934E040B
S21400551080934D0486E090E0BBDA90934C04809331
S2140055204B0420914D0430914E042130384018F43D
S21400553081309840A8F185E093E09F938F9387EBA6
S2140055409CEA9F938F93E0917806F09179060995EF
S214005550809160069091610699231CF4919581953F
S21400556091096CE070E00E9456B170934E0460930F
S2140055704D04809172069091730699231CF49195C0
S214005580819591096CE070E00E9456B170934C04CE
S21400559060934B040F900F900F900F90D0E001C0D7
S2140055A0D1E08091C90381FF3FC082E190E070DACC
S2140055B08C0184E190E06CDA7C0186E190E068DAA8
S2140055C09801395121383C4058F497013951213817
S2140055D03C4030F49C012052334021393140C0F029
S2140055E081EE92E09F938F9387EB9CEA9F938F9335
S2140055F0E0917806F091790609958091C9038D7F30
S2140056008093C9030F900F900F900F90D0E00CC0BE
S2140056101093580400935704F0925604E0925504F1
S214005620909354048093530412BC11BC1092280625
S2140056301092270610921D0610921C0610926806FD
S2140056401092670688EC90E00E946E9C80915D0345
S21400565090915E03DC01AA0FBB1F8A0F9B1FDC0123
S214005660AA0FBB1FB0936106A093600680915F03EC
S21400567090916003FC01EE0FFF1F8E0F9F1FFC0131
S214005680EE0FFF1FF0937306E093720680905A05A4
S214005690912CA12CB12CA50194010E94D2B16B01D2
S2140056A07C01609342047093430480934404909377
S2140056B04504DF010E94D2B160933E0470933F041C
S2140056C08093400490934104C0923604D0923704ED
S2140056D0E0923804F09239046093320470933304F5
S2140056E0809334049093350410922E0410922F0465
S2140056F01092300410923104E0914E01F0914F0167
S214005700F0931D04E0931C0484E690E090934B0114
S21400571080934A0120917F0530E0A4ECB9E00E9416
S214005720B3B1DC01CB018856954CAF4FBF4F809389
S214005730460190934701A0934801B09349012091F8
S214005740800530E0A4ECB9E00E94B3B1DC01CB01E7
S2140057508856954CAF4FBF4F8093420190934301BC
S214005760A0934401B09345011092260110922501A2
S2140057702091210130912201409123015091240172
S214005780DF010E94D2B160936E0670936F0680931D
S21400579070069093710610921904109218040E94D5
S2140057A08085CC2329F08091CB0384608093CB0343
S2140057B08FEF80934C0910924D0980E280934E093A
S2140057C084E6809304048091CB04882311F0579AD2
S2140057D019C08091B7058570853039F480EE9EE259
S2140057E09093A8028093A70206C080E091E1909370
S2140057F0A8028093A70281E08093AF020E94149DC6
S2140058000E94149DC0902101D0902201E0902301B7
S214005810F090240160913E0470913F048091400412
S21400582090914104A70196010E948BB149015A014B
S2140058306091420470914304809144049091450421
S214005840A70196010E948BB1B401C9010E94A20D66
S2140058507C010E942D919C0190932E0680932D062C
S21400586060914704709148047250CB01AA2797FDB7
S214005870A095BA2F072E7DE0880F991FAA1FBB1F81
S2140058807A95D1F7702DBC01CD01705F8F4F9F4F79
S214005890442737FD4095542F0E948BB1C901B901AA
S2140058A07E5F709348046093470465E1E616F10452
S2140058B00CF0D0E0CC2379F06091C203662359F057
S2140058C02C5831092234310530F0E2E6FAE0208126
S2140058D020622083D0E0209157043091580420564F
S2140058E03940213C3B4228F0E2E6FAE02081216084
S2140058F02083209155043091560420563940213C8F
S2140059003B4228F0E2E6FAE02081226020832091E4
S2140059105304309154042C5231402937354028F036
S214005920E2E6FAE020812460208320914D04309145
S2140059304E042C523140233C314028F0E2E6FAE097
S21400594020812860208320914B0430914C042C52F7
S2140059503140233C314028F0E2E6FAE02081206125
S21400596020838335914028F0E2E6FAE08081806269
S21400597080838091620A8111D0E086E480933D01A5
S2140059800E943A1582E00E94A01680911201909122
S2140059901301A0911401B09115018093080590930E
S2140059A00905A0930A05B0930B05109255031092B3
S2140059B054031092570310925803109259031092F2
S2140059C05A0310921E0410921F0410922004109284
S2140059D021041092810C1092800C0E94141B80915E
S2140059E0C90381FF07C080918205811103C084E04E
S2140059F0809382058D2FDF91CF911F910F91FF909D
S214005A00EF90DF90CF90BF90AF909F908F900895CB
S214005A102F923F924F925F926F927F928F929F92B9
S214005A20AF92BF92CF92DF92EF92FF920F931F93A7
S214005A30CF93DF93CDB7DEB760970FB6F894DEBF8F
S214005A400FBECDBF20916103309162038091530455
S214005A5090915404821B930B90936806809367067C
S214005A608091690390916A0399230CF407969C0130
S214005A70359527953595279535952795309328069E
S214005A8020932706809167039091680399230CF46E
S214005A90079695958795959587959595879590936F
S214005AA01D0680931C063093300620932F06909395
S214005AB02B0680932A0620915D0330915E03809129
S214005AC0600690916106AC01440F551F840F951F28
S214005AD0A901440F551F240F351F220F331F820FB5
S214005AE0931F99230CF4039695958795959587951E
S214005AF0909361068093600620915F033091600367
S214005B008091720690917306AC01440F551F840F66
S214005B10951FA901440F551F240F351F220F331F51
S214005B20820F931F99230CF4039695958795959568
S214005B308795909373068093720680915D0390918B
S214005B405E032091390630913A06820F931F909398
S214005B503A068093390680915F0390916003209106
S214005B606A0630916B06820F931F90936B068093A4
S214005B706A068091490490914A04019690934A04DB
S214005B80809349048091460390914703A09148036F
S214005B90B09149038093FE039093FF03A093000403
S214005BA0B09301048091420390914303A091440373
S214005BB0B091450380934A0390934B03A0934C0304
S214005BC0B0934D038FEC80937A0010920F010091F2
S214005BD0320410913304709134046091350450916E
S214005BE036044091370430913804209139042090CF
S214005BF06706309068066101EE24D7FCE094FE2C20
S214005C0080912E0490912F04A0913004B09131041D
S214005C1046015701880E991EAA1EBB1E80922E04AE
S214005C2090922F04A0923004B092310480916E06B8
S214005C3090916F06A0917006B0917106260137010B
S214005C40480E591E6A1E7B1E40926E0650926F06C4
S214005C5060927006709271068091E7038111C5C14B
S214005C608091E6038111C1C180915C0686FFBDC1AB
S214005C7009871A877B876C8789859A85AB85BC855B
S214005C80883B9449AE4FBF4F44F488EB94E9AEEF9F
S214005C90BFEF89879A87AB87BC8789859A85AB854E
S214005CA0BC8589349B46A140B10544F088E49BE658
S214005CB0A1E0B0E089879A87AB87BC87852F942FB1
S214005CC0A32FB22F883BE4E99E07EEEFAE07EFEF77
S214005CD0BE0724F488EB94E9AEEFBFEF8D839E8376
S214005CE0AF83B88789349B46A140B10544F008E4E9
S214005CF01BE621E030E00D831E832F8338878091DA
S214005D002901082F10E020E030E00D871E872F873E
S214005D10388BA0911C06B0911D062D813E814F81C7
S214005D2058850E94D2B18B019C01992324F401501E
S214005D30184F2F4F3F4FA9019801012E1BE0559594
S214005D404795379527951A95D1F7102D6D857E8541
S214005D508F8598890E9427B18B019C01992324F492
S214005D600150104F2F4F3F4FD901C801072E7CE03E
S214005D70B595A795979587957A95D1F7702D8983D0
S214005D809A83AB83BC838093B8039093B903A093A4
S214005D90BA03B093BB03A0912706B09128062985C5
S214005DA03A854B855C850E94D2B18B019C01992374
S214005DB024F40150184F2F4F3F4FC901B801052E4C
S214005DC05BE095958795779567955A95D1F7502D11
S214005DD02D853E854F8558890E9427B18B019C01F1
S214005DE0992324F40150104F2F4F3F4FD901C8017B
S214005DF0072E7CE0B595A795979587957A95D1F768
S214005E00702DE981FA81F0931606E09315069093BB
S214005E1018068093170609811A812B813C81801B06
S214005E20910BA20BB30B8093B4039093B503A0938E
S214005E30B603B093B703B301A201480F591F6A1FF8
S214005E407B1F40936E0650936F06609370067093A8
S214005E5071062091280121111AC0AC01BD01BB2397
S214005E6024F44F5F5F4F6F4F7F4F7595679557953B
S214005E70479595018401041B150B260B370B0093E1
S214005E802E0410932F0420933004309331044601DF
S214005E905701880E991EAA1EBB1EE0902A01CE2C22
S214005EA0D12CE12CF12CA50194016D817E818F818E
S214005EB098850E9427B18B019C01992324F40150F8
S214005EC0184F2F4F3F4FA9019801012E1BE0559503
S214005ED04795379527951A95D1F7102DC701B60126
S214005EE00E9427B12B013C01992334F41FEF410E89
S214005EF01FE0511E611C711C032E3CE075946794D4
S214005F00579447943A95D1F7302D4092B00350926B
S214005F10B1036092B2037092B303A5019401698540
S214005F207A858B859C850E9427B18B019C019923DD
S214005F3024F40150184F2F4F3F4FC901B801052ECA
S214005F405BE095958795779567955A95D1F7502D8F
S214005F50A70196010E9427B18B019C01992324F486
S214005F600150104F2F4F3F4FD901C801072E7CE03C
S214005F70B595A795979587957A95D1F7702D8093C7
S214005F80AC039093AD03A093AE03B093AF0391011F
S214005F90332024F4222733272219330921343105EC
S214005FA0E4F1B301A20177203CF444275527BA0157
S214005FB04419550966097709413851056105710587
S214005FC084F4AC01BD01BB233CF444275527BA0139
S214005FD0481B590B6A0B7B0B41385105610571054F
S214005FE0E4F081E080931A0418C01092180610920C
S214005FF0170610921606109215061092AC03109211
S214006000AD031092AE031092AF031092B00310923D
S214006010B1031092B2031092B303C090B003D090B5
S214006020B103E090B203F090B3038090AC0390907D
S214006030AD03A090AE03B090AF030F2EF4E64F2E44
S214006040512C612C712CF02DC501B401A3019201D5
S2140060500E948BB11601221A330A3092260620922D
S2140060602506C701B601A30192010E948BB1F90172
S214006070E819F909F0931F06E0931E0640902101E7
S214006080509022016090230170902401A8E6B1E0B0
S214006090A30192010E94C8B16B017C0180906E063C
S2140060A090906F06A0907006B090710686169706C0
S2140060B0A806B90684F0A8E9BEEF0E94D4B1860E01
S2140060C0971EA81EB91E80926E0690926F06A0922A
S2140060D07006B092710680916E0690916F06A09140
S2140060E07006B0917106BB2364F48C0D9D1DAE1D29
S2140060F0BF1D80936E0690936F06A0937006B093B4
S214006100710680911C0690911D06820D931D2091AC
S214006110EC033091ED03821B930BAA2797FDA09505
S214006120BA2F409132045091330460913404709138
S2140061303504480F591F6A1F7B1F40933204509343
S2140061403304609334047093350480914201909137
S2140061504301A0914401B091450184179507A60715
S214006160B70784F448EA51E660E070E0481B590B34
S2140061706A0B7B0B409332045093330460933404D1
S21400618070933504882499245401881A990AAA0A17
S214006190BB0A4091320450913304609134047091EC
S2140061A03504481559056A057B0564F4885A9146F6
S2140061B0A109B1098093320490933304A093340468
S2140061C0B093350440912706509128064E0F5F1F66
S2140061D02091EA033091EB03421B530B662757FDD1
S2140061E06095762F8091360490913704A0913804FC
S2140061F0B0913904840F951FA61FB71F80933604ED
S21400620090933704A0933804B09339044091460124
S214006210509147016091480170914901481759070C
S2140062206A077B0784F488EA91E6A0E0B0E0841B66
S214006230950BA60BB70B8093360490933704A09368
S2140062403804B0933904882499245401841A950A92
S214006250A60AB70A8091360490913704A0913804B4
S214006260B091390488159905AA05BB0574F4DB01BD
S214006270CA01885A9146A109B109809336049093C1
S2140062803704A0933804B093390480912E0490917B
S2140062902F04A0913004B091310480933A04909377
S2140062A03B04A0933C04B0933D0480913604909147
S2140062B03704A0913804B091390480934204909337
S2140062C04304A0934404B093450480913204909113
S2140062D03304A0913404B091350480933E04909327
S2140062E03F04A0934004B09341048091180190911C
S2140062F0190199230CF4079695958795959587959A
S2140063009595879590932806809327068091160189
S2140063109091170199230CF4079695958795959576
S21400632087959595879590931D0680931C0680917A
S2140063306503909166030F9734F488E19CEF909381
S2140063402806809327068091650390916603079739
S21400635034F480E398EF9093280680932706809184
S214006360650390916603813D974034F088EE93E094
S2140063709093280680932706809165039091660384
S214006380803E974034F080ED97E090932806809307
S214006390270680916303909164030F9734F488E195
S2140063A09CEF90931D0680931C068091630390914A
S2140063B06403079734F480E398EF90931D06809368
S2140063C01C068091630390916403813D974034F0EE
S2140063D088EE93E090931D0680931C0680916303DD
S2140063E090916403803E974034F080ED97E0909360
S2140063F01D0680931C0640913501442309F4BAC05B
S21400640080911801909119012091AA033091AB0355
S214006410821B930B9093A9038093A80360911801A5
S21400642070911901260F371F332314F42F5F3F4F47
S214006430359527953093AB032093AA0381389105B1
S2140064403CF080E890E09093A9038093A80309C0ED
S21400645080389F4F34F480E89FEF9093A903809391
S214006460A80380911601909117012091A603309100
S214006470A703821B930B9093A5038093A4036091BC
S214006480160170911701260F371F332314F42F5F60
S2140064903F4F359527953093A7032093A603813861
S2140064A091053CF080E890E09093A5038093A403C8
S2140064B009C080389F4F34F480E89FEF9093A5037F
S2140064C08093A40350E08091A8039091A903489F6D
S2140064D09001499F300D589F300D1124C901332378
S2140064E00CF40F9695958795959587959595879530
S2140064F0959587956091270670912806860F971FB9
S21400650090932806809327066091A4037091A503B4
S214006510469FC001479F900D569F900D1124AC01D9
S214006520992314F4415F5F4F5595479555954795C8
S214006530559547955595479560911C0670911D0693
S214006540460F571F50931D0640931C064091180196
S21400655050911901240F351F30931901209318010B
S2140065602091160130911701820F931F9093170107
S2140065708093160140912A0650912B061416150694
S2140065803CF5A0911506B0911606BB231CF4B195F8
S214006590A195B1092091280130E00E94C2B18B017B
S2140065A09C01992324F4015C1F4F2F4F3F4FD901C4
S2140065B0C801689415F8B595A7959795879516948C
S2140065C0D1F7820D931D909326068093250627C04B
S2140065D0A0911506B0911606BB231CF4B195A195A3
S2140065E0B1092091280130E00E94C2B18B019C01C4
S2140065F0992324F4015C1F4F2F4F3F4FD901C80148
S214006600689415F8B595A795979587951694D1F73C
S2140066107101E81AF90AF0922606E0922506E09043
S2140066202F06F09030061E141F043CF5A0911706A6
S214006630B0911806BB231CF4B195A195B109209121
S214006640280130E00E94C2B18B019C01992324F4FA
S214006650015C1F4F2F4F3F4FD901C801689415F8B2
S214006660B595A795979587951694D1F78E0F9F1F8A
S21400667090931F0680931E0626C0A0911706B09121
S2140066801806BB231CF4B195A195B10920912801E9
S21400669030E00E94C2B18B019C01992324F4015C76
S2140066A01F4F2F4F3F4FD901C801689415F8B59575
S2140066B0A795979587951694D1F7E81BF90BF09355
S2140066C01F06E0931E0680915C0688230CF046C0E9
S2140066D08091E703811142C08091E60381113EC09C
S2140066E0B1E0EB16FB0664F0FA94809127069091D1
S2140066F02806E80EF91EF0922806E09227060FC03C
S214006700E114FFEFFF065CF4F39480912706909166
S2140067102806E80EF91EF0922806E0922706413079
S21400672011E0510764F05A9580911C0690911D0661
S214006730480F591F50931D0640931C060FC0411565
S2140067402FEF52075CF4539580911C0690911D061E
S214006750480F591F50931D0640931C0660960FB6AF
S214006760F894DEBF0FBECDBFDF91CF911F910F9182
S214006770FF90EF90DF90CF90BF90AF909F908F905C
S2140067807F906F905F904F903F902F900895CF939B
S214006790DF9380910304811128C08091CB038C7F06
S2140067A08093CB038091CA038F7D8093CA03A7E6AC
S2140067B0BAE0E9E9F9E083E79AE02091F5042111CF
S2140067C001C01C922D91EF012197288310823F96DD
S2140067D0A817B90791F78091F504882359F080919E
S2140067E0F50481508093F50405C08091CB03816049
S2140067F08093CB038091E004882319F01092E00484
S2140068000AC01092E3048091DE048E7F8093DE043B
S21400681085EA8093BC00DF91CF9108958823A9F084
S214006820E82FF0E0EE0FFF1FEF5CF74F80819181BD
S21400683081589F4F992314F480E090E08F3F910594
S21400684029F024F08FEF90E0089580E00895DF921D
S214006850EF92FF920F931F93CF93DF93A3E4B5E0DD
S214006860E5E0F4E04BE455E0E12CF12C0FEF10E00E
S2140068702D91C22FD0E0CC0FDD1FCF5CD74F888183
S214006880998181589F4F992314F48E2D9F2D8F3F09
S214006890910519F014F0802F912F293111F480837F
S2140068A01EC0EF01D0802D2D30E028173907B9F033
S2140068B0BC01621B730B9B0112F42D5F3F4F359595
S2140068C02795359527952D0D2883622F70E086171E
S2140068D097071CF42150288302C02F5F2883319627
S2140068E0A417B50729F680914D05883F18F48093C4
S2140068F03A0109C0EFEFF0E0E81BF109EB5FFB4F50
S214006900808180933A0180913A01843618F084E6BB
S21400691080933A0180914F05883F18F4809339019F
S21400692009C0EFEFF0E0E81BF109EB5FFB4F808159
S2140069308093390180913901843618F084E680937B
S214006940390180915C05883F18F48093340109C0B2
S214006950EFEFF0E0E81BF109EB5FFB4F80818093DF
S2140069603401809134018B3018F48AE0809334012E
S21400697080918905883F18F480933B0609C0EFEFA5
S214006980F0E0E81BF109EB5FFB4F808180933B064C
S21400699080913B06863018F485E080933B06809114
S2140069A08B05883F18F48093630609C0EFEFF0E08C
S2140069B0E81BF109EB5FFB4F8081809363068091B3
S2140069C06306863018F485E080936306809176052A
S2140069D0873F61F4429B05C08091AB0580933806E3
S2140069E028C08091AC058093380623C0863F61F4AA
S2140069F0439B05C08091AB05809338061AC08091F2
S214006A00AC058093380615C0883F18F48093380686
S214006A1009C0EFEFF0E0E81BF109EB5FFB4F808168
S214006A208093380680913806893118F488E180937F
S214006A30380680917705873F61F4429B05C08091B8
S214006A40AD058093190628C08091AE05809319067F
S214006A5023C0863F61F4439B05C08091AD058093BB
S214006A6019061AC08091AE058093190615C0883F96
S214006A7018F48093190609C0EFEFF0E0E81BF1095F
S214006A80EB5FFB4F80818093190680911906893150
S214006A9018F488E18093190680917805883F18F4E9
S214006AA08093410609C0EFEFF0E0E81BF109EB5FC9
S214006AB0FB4F80818093410680914106893118F40E
S214006AC088E18093410680914E05A8DE8093E1031D
S214006AD080915105883F18F48093380109C0EFEF84
S214006AE0F0E0E81BF109EB5FFB4F808180933801F3
S214006AF080915305883F18F48093360109C0EFEF64
S214006B00F0E0E81BF109EB5FFB4F808180933601D4
S214006B1080915B05883F18F48093370109C0EFEF3A
S214006B20F0E0E81BF109EB5FFB4F808180933701B3
S214006B3080915D05883F18F48093330109C0EFEF1C
S214006B40F0E0E81BF109EB5FFB4F80818093330197
S214006B5080915E05883F18F48093350109C0EFEFF9
S214006B60F0E0E81BF109EB5FFB4F80818093350175
S214006B7080915F05883F18F48093320109C0EFEFDB
S214006B80F0E0E81BF109EB5FFB4F80818093320158
S214006B9080916005883F18F48093310109C0EFEFBB
S214006BA0F0E0E81BF109EB5FFB4F80818093310139
S214006BB080916605883F18F48093300109C0EFEF96
S214006BC0F0E0E81BF109EB5FFB4F8081809330011A
S214006BD080916705883F18F48093E00309C0EFEFC3
S214006BE0F0E0E81BF109EB5FFB4F80818093E00348
S214006BF080916805883F18F48093DF0309C0EFEFA3
S214006C00F0E0E81BF109EB5FFB4F80818093DF0328
S214006C1080916905883F18F48093DE0309C0EFEF82
S214006C20F0E0E81BF109EB5FFB4F80818093DE0309
S214006C3080916A05883F18F48093DD0309C0EFEF62
S214006C40F0E0E81BF109EB5FFB4F80818093DD03EA
S214006C5080918405883F18F48093DC0309C0EFEF29
S214006C60F0E0E81BF109EB5FFB4F80818093DC03CB
S214006C7080918505883F18F48093DB0309C0EFEF09
S214006C80F0E0E81BF109EB5FFB4F80818093DB03AC
S214006C9080918605883F18F48093DA0309C0EFEFE9
S214006CA0F0E0E81BF109EB5FFB4F80818093DA038D
S214006CB080918705883F18F48093D90309C0EFEFC9
S214006CC0F0E0E81BF109EB5FFB4F80818093D9036E
S214006CD080916B05883F18F480932F0109C0EFEF71
S214006CE0F0E0E81BF109EB5FFB4F808180932F01FA
S214006CF080916F05883F18F480932E0109C0EFEF4E
S214006D00F0E0E81BF109EB5FFB4F808180932E01DA
S214006D1080916C05883F18F480932D0109C0EFEF31
S214006D20F0E0E81BF109EB5FFB4F808180932D01BB
S214006D3080917005883F18F480932C0109C0EFEF0E
S214006D40F0E0E81BF109EB5FFB4F808180932C019C
S214006D5080917905883F18F480932B0109C0EFEFE6
S214006D60F0E0E81BF109EB5FFB4F808180932B017D
S214006D7080917C05883F18F480932A0109C0EFEFC4
S214006D80F0E0E81BF109EB5FFB4F808180932A015E
S214006D9080917D05883F18F48093290109C0EFEFA4
S214006DA0F0E0E81BF109EB5FFB4F8081809329013F
S214006DB080917E05883F18F48093280109C0EFEF84
S214006DC0F0E0E81BF109EB5FFB4F80818093280120
S214006DD08091A705883F18F48093240609C0EFEF3A
S214006DE0F0E0E81BF109EB5FFB4F808180932406FF
S214006DF080914B0580935C068091B8058093400691
S214006E0080918305883F18F48093270109C0EFEF2F
S214006E10F0E0E81BF109EB5FFB4F808180932701D0
S214006E208091A005883F18F48093750609C0EFEF9F
S214006E30F0E0E81BF109EB5FFB4F8081809375065D
S214006E406091300170E06F5F7F4F8CE398E20E94A4
S214006E5056B170933C0160933B0180915905809335
S214006E6064068091580580932C06E091A205EE23D7
S214006E7009F44BC081E08093D803F0E0EE0FFF1FCB
S214006E80EF5CF74F80819181803C9F4F14F4109205
S214006E90D80380913D012091D803821741F18330B9
S214006EA018F5222371F08CED95E09093CE04809334
S214006EB0CD0480915701811111C08EE28093570155
S214006EC00DC088EC90E09093CE048093CD04809122
S214006ED05701811103C087E18093570185E08093B5
S214006EE0EE0320933D0103C0815080933D018091C5
S214006EF0130990911409992384F5222389F0E2E678
S214006F00FAE080818068808305C01092D8038AE00A
S214006F1080933D0180911309909114099923ECF414
S214006F20809103048823C9F08091D8038823F9F060
S214006F308091A9029091AA02019699F488E99AE3B1
S214006F409093CE048093CD0480E094EA9093AA02B6
S214006F508093A9021092D8030AC08091D803882390
S214006F6031F08091CA0381608093CA0305C0809186
S214006F70CA038E7F8093CA03DF91CF911F910F9132
S214006F80FF90EF90DF90089580915405811121C005
S214006F9020911A0130911B018091E8039091E9033A
S214006FA099230CF40396AC0155954795559547954E
S214006FB0429FC001439F900D529F900D11246091F7
S214006FC0530170E00E9442B170934101609340010A
S214006FD005C090E09093410180934001809140016C
S214006FE0909141018734910538F486E490E09093BF
S214006FF041018093400108958F3A910530F08FEA61
S21400700090E0909341018093400108952F923F9223
S2140070104F925F926F927F928F929F92AF92BF92A3
S214007020CF92DF92EF92FF920F931F93CF93DF934F
S214007030CDB7DEB7A6970FB6F894DEBF0FBECDBFAE
S2140070400E94082D8091CB038471A9F58091B90523
S21400705082FF2AC08091E8039091E9030097E9F047
S214007060883502E09007CCF49C01992314F42D5F38
S2140070703F4F359527953595279540916305429F57
S214007080C001439F900D112464E670E00E9456B143
S2140070907093C8036093C7030EC08DE290E0909390
S2140070A0C8038093C70307C08091630590E0909360
S2140070B0C8038093C7032091C5033091C6032033CD
S2140070C015E7310759F410920F0410920E048091C0
S2140070D02C0690E09093C8038093C70380910E041B
S2140070E090910F0420902C06312C4AE0240E311C7F
S2140070F0281639060CF41C01809104048436A0F589
S2140071008091CA0382FD30C08091A2039091A303B0
S214007110009731F001979093A3038093A2030BC0CE
S214007120109203041092CD031092CC038091CB03EF
S2140071308D7E8093CB03289A8091CC039091CD03CB
S214007140893E934070F080911B05853650F0209064
S214007150C7033090C8038091CB0380618093CB0334
S214007160F1C510920304EEC5809104048D3808F42E
S214007170BFC58091AF05882309F44DC09091B00536
S214007180992309F448C090E0FC01EE0FFF1FEF5C66
S214007190F74F2081318123333105CCF080911F01D8
S2140071A0823361F48091CA0385FF08C08091CA03C8
S2140071B080648093CA0380E3809357018091CA035A
S2140071C08F778093CA0386E980931F0124C0FC0151
S2140071D0EE0FFF1FEF5CF74F808191818E3C9F4F33
S2140071E0ACF480911F01863941F48091CA0380680F
S2140071F08093CA038FE2809357018091CA038F7BE6
S2140072008093CA0382E380931F0105C08091CA035E
S2140072108F738093CA038091CB038F7E8093CB03BA
S2140072208091640572E3879FC00111249093A303A5
S2140072308093A20389E2281631048CF0809103041F
S214007240882369F08091CC039091CD038F3FAFEFF8
S2140072509A07B1F101969093CD038093CC03809169
S214007260CC039091CD038F3F910509F048F510921D
S21400727026041092270410922804109229041092D3
S21400728022041092230410922404109225041092D3
S2140072909E0310929F031092A0031092A1031092D7
S2140072A02E0410922F041092300410923104809114
S2140072B0CA0380628093CA0384E680931F0138C1A4
S2140072C08091CB0382608093CB038091CA0385FFB5
S2140072D09AC08091B704282F247082FD04C0809144
S2140072E0CA0386FF2AC0809120018D3331F5809134
S2140072F0C203882311F180E58093F30384EF91E0C5
S214007300A0E0B0E08093F4039093F503A093F60317
S214007310B093F7038093FA039093FB03A093FC03C8
S214007320B093FD0388EE93E090931E0180931D01B9
S214007330222319F08DE08093570180914A039091A3
S2140073404B03A0914C03B0914D0387399105A105DD
S214007350B1058CF48091FE039091FF03A091000488
S214007360B0910104823A9E4FAF4FBF4F24F08091F8
S2140073705C0680FD21C088EE93E090931E0180930A
S2140073801D018091CA0386FF0FC01092F3038CE2A2
S21400739091E0A0E0B0E08093FA039093FB03A09303
S2140073A0FC03B093FD0303C080E3809357018091F4
S2140073B0CA038F718093CA03109226041092270482
S2140073C0109228041092290410922204109223048A
S2140073D0109224041092250410922E0410922F046A
S2140073E010923004109231048091CC039091CD031A
S2140073F0893E934008F49CC088EE93E09093CD03BA
S2140074008093CC0395C08091CA038823D4F48091DE
S2140074102001863711F08D33A1F48091C2038823B2
S21400742081F08091B0058093F30380EE91EBAFEF8F
S214007430BFEF8093F4039093F503A093F603B09305
S214007440F70380911D0190911E01883E03E090078E
S21400745008F049C09C012F5F3F4F30931E012093D8
S2140074601D011092260410922704109228041092F0
S21400747029041092220410922304109224041092DD
S214007480250410922E0410922F04109230041092AD
S214007490310480914A0390914B03A0914C03B09124
S2140074A04D038C529140A109B1098093FA03909341
S2140074B0FB03A093FC03B093FD03283E3340C1F5C5
S2140074C08091CA038823A4F5809120018B3281F134
S2140074D08091CA038F778093CA038091CA03806223
S2140074E08093CA0325C08091C203882309F1809146
S2140074F02001863711F08D32D9F48091FE039091E9
S214007500FF03A0910004B0910104883E9340A105BA
S214007510B10574F480910605909107058D3A934065
S2140075203CF010921E0110921D018EE080935701D0
S214007530E0914105F0E0EE0FFF1FEF5CF74F808112
S2140075409181813591050CF487C1809103048111E6
S21400755083C18091B70484FD7FC1E0914205F0E0CD
S214007560EE0FFF1FEF5CF74F8081918199231CF48B
S2140075709195819591098C3491050CF46BC180919D
S2140075809D038F5F893C18F480939D0365C110921C
S2140075909D031092CD031092CC0320913F0530E05E
S2140075A0F901EE0FFF1FEF5CF74F80819181873462
S2140075B0910594F4E0914005F0E0EE0FFF1FEF5CBC
S2140075C0F74F8081918199231CF4919581959109BB
S2140075D0873491050CF48CC04091400550E0FA01C8
S2140075E0EE0FFF1FEF5CF74F808191818734910586
S2140075F0BCF0F901EE0FFF1FEF5CF74F8081918121
S214007600863491057CF4F901EE0FFF1FEF5CF74F0F
S2140076108081918111E08B3B9F4F2CF410E003C0DA
S21400762010E001C010E0FA01EE0FFF1FEF5CF74F0D
S21400763080819181873491055CF0F901EE0FFF1F80
S214007640EF5CF74F80819181873491050CF012E052
S214007650FA01EE0FFF1FEF5CF74F808191818634B1
S21400766091055CF4F901EE0FFF1FEF5CF74F808188
S2140076709181873491050CF013E0FA01EE0FFF1F9D
S214007680EF5CF74F808191818A3B9F4F5CF4F90154
S214007690EE0FFF1FEF5CF74F8081918187349105D5
S2140076A00CF014E0440F551FFA01EF5CF74F808191
S2140076B091818A3B9F4FA4F4F901EE0FFF1FEF5C08
S2140076C0F74F808191818634910554F4220F331F41
S2140076D0F901EF5CF74F808191818B3B9F4F1CF443
S2140076E0112339F001C015E0812F0E94182601C031
S2140076F010E0E0914005F0E0EE0FFF1FEF5CF74F63
S2140077002081318133231CF43195219531092E31A6
S2140077103105C4F4E0913F05F0E0EE0FFF1FEF5C8B
S214007720F74F208131812A3B3F4F64F481E08093FC
S2140077307D0A1092EF0388EE93E09093CE04809338
S214007740CD048AC0809152010E944E2580E00E949E
S2140077509059809165050E94681880915C0680FFAC
S21400776010C02091100130911101273B334038F4AE
S21400777020911001309111012E3E324010F40E94EB
S2140077804B1B111141C0E0914005F0E0EE0FFF1FCA
S214007790EF5CF74F808191818A3B9F4F94F4E09194
S2140077A03F05F0E0EE0FFF1FEF5CF74F8081918101
S2140077B08634910534F483E00E9453298093EF03C6
S2140077C028C0E0914205F0E0EE0FFF1FEF5CF74F98
S2140077D080819181853B9F4FBCF4E0913F05F0E0AE
S2140077E0EE0FFF1FEF5CF74F8081918199231CF409
S2140077F09195819591098634910534F482E00E9432
S21400780053298093EF0305C081E00E94532980939B
S214007810EF0381E08093CB04579A8091620A882315
S21400782021F087E0809357010BC08091EF03811110
S21400783004C081E08093570103C088E1809357011C
S2140078408AE08093800468E770E0809152010E948D
S214007850BA2802C010929D03E0914105F0E0EE0FB9
S214007860FF1FEF5CF74F808191818C399F4F0CF0A2
S21400787038C24091A305842F8F7790E0FC01EE0F6D
S214007880FF1FE958F74F208131812630310524F05B
S21400789084E680939C030DC0FC01EE0FFF1FE958A1
S2140078A0F74F808191818B3F9F4F1CF48CE980932A
S2140078B09C0380910304811166C1E0914205F0E0CB
S2140078C0EE0FFF1FEF5CF74F808191818C399F4F41
S2140078D08CF48091B90583FD0BC0E42FF0E0EE0F29
S2140078E0FF1FEF5CF74F80819181853B9F4FBCF077
S2140078F04423A9F08091B90583FF42C1E42FF0E04C
S214007900EE0FFF1FEF5CF74F80819181873F9F4FFF
S2140079100CF436C180919C03843609F031C1809105
S214007920B70484FD2DC18091EF03882329F0809150
S214007930CB0388608093CB03809112019091130152
S214007940A0911401B0911501809308059093090544
S214007950A0930A05B0930B051092FE031092FF0346
S21400796010920004109201041092460310924703EE
S214007970109248031092490388E592E09093C6035C
S2140079808093C5031092420310924303109244035F
S2140079901092450310925703109258031092590301
S2140079A010925A03E0913F05F0E0EE0FFF1FEF5CE8
S2140079B0F74F808191818D399F4F8CF4E09140057F
S2140079C0F0E0EE0FFF1FEF5CF74F80819181992367
S2140079D01CF49195819591098436910534F44111F2
S2140079E004C081E080939B035EC180919B038F5F00
S2140079F080939B038E3F08F456C18091C90381FF94
S214007A0025C0809167069091680699231CF491958D
S214007A108195910981349105B4F48091270690915F
S214007A20280699231CF4919581959109CD975CF4CD
S214007A3080911C0690911D0699231CF491958195C2
S214007A409109CD9734F11092EF0323C08091670619
S214007A509091680699231CF49195819591098197D8
S214007A60B4F4809127069091280699231CF49195EA
S214007A708195910945975CF480911C0690911D06AE
S214007A8099231CF4919581959109459714F01092CD
S214007A90EF0310929B038091620A811163C080916C
S214007AA0EF03882309F45EC08091BB0481115AC09D
S214007AB081E090E09093CD038093CC038093030401
S214007AC010929E0310929F031092A0031092A1039F
S214007AD010922E0410922F0410923004109231044B
S214007AE010922A0410922B0410922C0410922D044B
S214007AF0C0905A05D12CE12CF12CA0916006B091D3
S214007B006106A70196010E94D2B160933604709375
S214007B1037048093380490933904A0917206B0918C
S214007B2073060E94D2B1609332047093330480933C
S214007B303404909335041092260410922704109271
S214007B402804109229041092220410922304109202
S214007B5024041092250484E68093EE0384E3809345
S214007B605701A1C08CED95E09093CE048093CD0490
S214007B708091EF03811197C081E08093570193C0F5
S214007B8010929B0390C0E0914205F0E0EE0FFF1FBD
S214007B90EF5CF74F80819181853691058CF080915E
S214007BA0B90583FD0BC0E42FF0E0EE0FFF1FEF5C7E
S214007BB0F74F80819181853B9F4FBCF04423A9F00D
S214007BC08091B90583FF6DC0E42FF0E0EE0FFF1F34
S214007BD0EF5CF74F808191818E3C9F4F0CF061C027
S214007BE080919C038C3909F05CC0E0913F05F0E081
S214007BF0EE0FFF1FEF5CF74F808191818D399F4F0D
S214007C008CF4E0914005F0E0EE0FFF1FEF5CF74FBD
S214007C108081918199231CF49195819591098436F0
S214007C20910534F4411104C081E080939A033BC06F
S214007C301092260410922704109228041092290409
S214007C401092220410922304109224041092250409
S214007C501092150410921404109213041092120439
S214007C6080919A038F5F80939A038B3F88F01092DF
S214007C70030410929A031092CD031092CC038091C5
S214007C80CA038F718093CA0386E2809357010BC0A4
S214007C90843649F48CEA9DE09093CE048093CD041C
S214007CA002C010929A038091C5039091C603883E45
S214007CB013E0910708F046C0209154033091550315
S214007CC02B363F4F34F001969093C6038093C5033E
S214007CD039C00097B9F101979093C6038093C50306
S214007CE031C010929C031092C6031092C5032AC09E
S214007CF02E3E324038F18091DB089091DC088039C6
S214007D00914000F58091FE039091FF03A09100043E
S214007D10B09101048C3D9540A105B1059CF480E32B
S214007D2095E79093C6038093C5038091CC0390910A
S214007D30CD038A3E934030F089EE93E09093CD03D6
S214007D408093CC03809193029FEF980F90939302B9
S214007D50882321F08091CB0384FFD2C30E9427346E
S214007D6080913F0590E0880F991FFC01EF5CF74F6C
S214007D70A081B1816091550570E0FC01E958F74F8C
S214007D800190F081E02D4091560550E080919803D7
S214007D90909199039C01220F331F820F931FA69F79
S214007DA09001A79F300DB69F300D1124820F931FB0
S214007DB099230CF403969595879595958795E49F5A
S214007DC09001E59F300DF49F300D1124820F931F14
S214007DD090939903809398032091400530E0220FFA
S214007DE0331FF901EF5CF74F00811181F901E95863
S214007DF0F74F0190F081E02D209196033091970384
S214007E00D901AA0FBB1F2A0F3B1F609FD001619F9D
S214007E10B00D709FB00D11242A0F3B1F332314F4AE
S214007E202D5F3F4F35952795359527954E9FB00189
S214007E304F9F700D5E9F700D1124260F371F3093D5
S214007E409703209396034091D803442309F459C01E
S214007E50AC01992314F44D5F5F4F559547955595A2
S214007E604795C90199230CF40396FC01F595E7950F
S214007E70F595E7956091A502772767FD70952091A7
S214007E80BE04332727FD3095649FD001659FB00D53
S214007E90749FB00D11242E9FC0012F9F900D3E9F02
S214007EA0900D11248A0F9B1F99230CF40796959525
S214007EB087959595879595958795909315048093C6
S214007EC01404E69FD001E79FB00DF69FB00D112475
S214007ED0429FC001439F900D529F900D11249D011B
S214007EE0281B390BC90199230CF40796959587959D
S214007EF0959587959595879590931304809312048E
S214007F0050C0A091A105B0E0A553BD4F1696EC91C8
S214007F101697E093A5026C916093BE04FF27E7FDD9
S214007F20F095772767FD70958E9FD0018F9FB00DD7
S214007F309E9FB00D1124269FA001279F500D369FAF
S214007F40500D11244A0F5B1F552314F4495F5F4FF1
S214007F5055954795559547955595479550931504CE
S214007F60409314042E9FD0012F9FB00D3E9FB00D5E
S214007F701124869FA001879F500D969F500D1124B7
S214007F809D01241B350BC90199230CF40796959582
S214007F9087959595879595958795909313048093E7
S214007FA01204E0914205F0E0EE0FFF1FEF5CF74F82
S214007FB08081918122273327281B390B25303105F4
S214007FC054F02CEF3FEFF901E81BF90BF093110486
S214007FD0E093100411C02C3F3F4F54F424E030E0EF
S214007FE04901881A990A909211048092100404C0DC
S214007FF010921104109210048091C5039091C6034C
S2140080008130924098F18091140490911504992340
S2140080100CF40796959587959595879595958795EC
S2140080209093150480931404809112049091130485
S21400803099230CF40796959587959595879595952C
S214008040879590931304809312041092260410923E
S21400805027041092280410922904109222041092E9
S214008060230410922404109225044EC02091670425
S214008070222309F449C030E080911404909115043D
S21400808099230CF40796AC01559547955595479559
S21400809055954795249FC001259F900D349F900DC0
S2140080A0112499230CF40F969595879595958795A9
S2140080B095958795959587959093150480931404C8
S2140080C0809112049091130499230CF40796AC0146
S2140080D0559547955595479555954795249FC001C5
S2140080E0259F900D349F900D112499230CF40F9624
S2140080F09595879595958795959587959595879563
S2140081009093130480931204C0901404D090150426
S21400811080916A0490916B04C81AD90AD09215040B
S214008120C0921404E0901204F09013048091680446
S21400813090916904E81AF90AF0921304E092120486
S214008140E0914105F0E0EE0FFF1FEF5CF74F008176
S214008150118101581F4F10930F0400930E04609175
S214008160340170E080E090E00E949BB020E030E0B8
S21400817040E251E40E9409B00E946DB060936C0624
S21400818080913301809342066091320170E080E076
S21400819090E00E949BB020E030E040E251E40E9474
S2140081A009B00E946DB060932306809131018093E0
S2140081B031068091890A80FF45C080917506813816
S2140081C008F440C02091550530E04091820A4203F1
S2140081D0C001439F900D1124C80ED91ED0921504DD
S2140081E0C09214044091830A4203C001439F900D3D
S2140081F01124E80EF91EF0921304E0921204209166
S214008200840A8091100490911104820F911D27FD1D
S2140082109A9590931104809310043091860A2091C9
S21400822050053203C0011124909326018093250146
S2140082308091850A90E08017910724F490930F04AC
S21400824080930E0480910E0490910F04992324F4D9
S21400825010920F0410920E0480915C0682FD10921C
S214008260420680911404909115044091D0035091D9
S214008270D1039C01992314F42D5F3F4F3595279524
S2140082803595279533231CF43195219531094217EE
S2140082905307F4F49C01992324F422273327281B40
S2140082A0390BC90199230CF40396959587959595F6
S2140082B08795853691052CF49093D1038093D0034F
S2140082C00DC084E690E09093D1038093D00306C05F
S2140082D0415051095093D1034093D003809112042A
S2140082E0909113044091CE035091CF039C019923A3
S2140082F014F42D5F3F4F35952795359527953323F5
S2140083001CF431952195310942175307F4F49C016A
S214008310992324F422273327281B390BC9019923D4
S2140083200CF40396959587959595879585369105D2
S2140083302CF49093CF038093CE030DC084E690E098
S2140083409093CF038093CE0306C0415051095093BB
S214008350CF034093CE038091CB0384FF08C01092D6
S214008360D1031092D0031092CF031092CE03209127
S214008370400530E0F901EE0FFF1FEF5CF74F40813C
S214008380518180917A0590E08417950744F44091D6
S214008390B60542FF04C041E04093E50311C0F90171
S2140083A0EE0FFF1FEF5CF74F6081718140917B05F8
S2140083B0DC01A41BB1096A177B0714F41092E503CD
S2140083C0F901EE0FFF1FEF5CF74F608171814427C4
S2140083D05527481B590B6417750744F46091B6057A
S2140083E063FF04C021E02093E40315C06091E4031A
S2140083F0662389F0F901EE0FFF1FEF5CF74F6081EF
S214008400718120917B0530E0281B390B2617370732
S21400841014F41092E40320913F0530E0F901EE0FCA
S214008420FF1FEF5CF74F608171818617970744F452
S2140084306091B60560FF04C061E06093E20316C079
S2140084406091E203662391F0F901EE0FFF1FEF5CE7
S214008450F74F0190F081E02D60917B054C01861A64
S2140084609108E815F90514F41092E203F901EE0FED
S214008470FF1FEF5CF74F608171816417750744F446
S2140084804091B60541FF04C081E08093E30316C027
S2140084904091E303442391F0F901EE0FFF1FEF5CD8
S2140084A0F74F2081318140917B0550E05A01A81A90
S2140084B0B90AA216B30614F41092E3038091E503FA
S2140084C0811104C08091E403882321F081E0809329
S2140084D0E60302C01092E6038091E203811104C015
S2140084E08091E303882351F081E08093E7031092A4
S2140084F0E6031092E5031092E40302C01092E7032D
S2140085008091E603811104C08091E703882351F02F
S2140085108091790590E0821593050CF41C0181E0AA
S21400852080931A048091CA0382FF31C080916A0446
S21400853090916B0491958195910990931504809381
S214008540140480916804909169049195819591092D
S21400855090931304809312048091400190914101FE
S21400856090930F0480930E0410921104109210043E
S21400857080915C068B778B6680935C0680914006C4
S2140085808C7B8093400688EC8093E1031EC080912C
S214008590CB0384FF1AC0109211041092100410929C
S2140085A015041092140410921304109212049AE503
S2140085B090936C0688E780934206909323068093F8
S2140085C031061092E6031092E703C0904204D09062
S2140085D04304E0904404F090450480913406909162
S2140085E03506A0913606B09137068C0D9D1DAE1D42
S2140085F0BF1D8093340690933506A0933606B0933D
S214008600370680903E0490903F04A0904004B090BF
S214008610410480913C0690913D06A0913E06B091A3
S2140086203F06880D991DAA1DBB1D80933C0690939E
S2140086303D06A0933E06B0933F068091E703811166
S2140086400C9414598091E60381110C94F158809192
S214008650060590910705813092402CF48091030422
S214008660882309F4E0C140904C0914140CF0C9C0EA
S21400867080915A05082F10E020E030E00D831E831D
S2140086802F833887552447FC5094652C752CC701DA
S214008690B601A90198010E948BB180916006909165
S2140086A061066091150970911609861B970BAA271B
S2140086B097FDA095BA2F79018A01E81AF90A0A0BE4
S2140086C01B0BC801B701A30192010E9427B16B01E1
S2140086D07C01992334F40FEFC00E01E0D01EE11C9C
S2140086E0F11C0B2EB9E0F594E794D794C794BA958D
S2140086F0D1F7B02DC501B4012D813E814F8158853B
S2140087000E948BB180917206909173066091170952
S21400871070911809861B970BAA2797FDA095BA2F6C
S214008720281B390B4A0B5B0BC301B2010E9427B111
S2140087308B019C01992324F401501E4F2F4F3F4F6D
S2140087400F2EF9E03595279517950795FA95D1F7E9
S214008750F02D8091D0039091D103813491053CF4A3
S2140087608091CE039091CF0381349105D4F0D70148
S214008770C601FF201CF40196A11DB11D6C017D01F0
S214008780F594E794D794C794D901C80133231CF411
S2140087900196A11DB11D8C019D0135952795179554
S2140087A0079580914E09482F552747FD5095652F10
S2140087B0752F4C155D056E057F0514F46A017B0167
S2140087C0992781950CF49095AA2797FDA095BA2F26
S2140087D0C816D906EA06FB0614F46C017D0140179C
S2140087E051076207730714F48A019B01B901A801B7
S2140087F0081719072A073B070CF0D8C0AC01BD01C3
S214008800D5C040905A05512C612C712CC501B4017D
S214008810A30192010E948BB180917206909173061B
S214008820AA2797FDA095BA2F49015A01881A990AD6
S214008830AA0ABB0A8D829E82AF82B886C701B6019D
S214008840A30192010E948BB180916006909161060F
S214008850AA2797FDA095BA2F79018A01E81AF90A86
S2140088600A0B1B0B67017801FF202CF40FE0C00EEB
S214008870D11CE11CF11C689413F8F594E794D79486
S214008880C7941694D1F78D809E80AF80B884BB20A5
S2140088902CF41FE0810E911CA11CB11C689413F8E7
S2140088A0B594A794979487941694D1F78091D003A3
S2140088B09091D103813491053CF48091CE03909140
S2140088C0CF0381349105BCF00F2EF3E04F2E512CD0
S2140088D0612C712CF02DC701B601A30192010E94F4
S2140088E08BB169017A01C501B401A30192010E940E
S2140088F08BB149015A01E0914205F0E0EE0FFF1FEF
S214008900EF5CF74F8081918199231CF491958195B6
S21400891091094A97BCF00F2EF3E04F2E512C612C94
S214008920712CF02DC701B601A30192010E948BB1F4
S21400893069017A01C501B401A30192010E948BB1BD
S21400894049015A0189E180934C0121E2C216D10403
S214008950E104F1042CF0C12CD12C76016894C5F802
S21400896030EEC3163FEFD306E306F30644F40F2EAD
S214008970F0EECF2EDD24DA94ED2CFD2CF02DD50173
S214008980C40181329105A105B10524F080E290E092
S214008990A0E0B0E0AC01BD01403E8FEF580768078D
S2140089A0780724F440EE5FEF6FEF7FEF8091360498
S2140089B090913704A0913804B09139048C199D0920
S2140089C0AE09BF098093360490933704A093380409
S2140089D0B09339048091320490913304A09134040A
S2140089E0B0913504841B950BA60BB70B809332040D
S2140089F090933304A0933404B09335048091BE035F
S214008A009091BF03C80ED91ED092BF03C092BE037A
S214008A108091BC039091BD039C01240F351F3093B9
S214008A20BD032093BC0380915203909153038F3F64
S214008A30910509F008F45AC100918205002309F453
S214008A4007C18091600690916106815E9C4F8F33CE
S214008A50964008F0FDC08091720690917306815E84
S214008A609C4F8F33964008F0F3C080911A04811112
S214008A70EFC080916706909168064F96CF9708F0F2
S214008A80E7C010E01093690C0093680CE091BE03F9
S214008A90F091BF0300241695079507941695079541
S214008AA00794102F002DCF01B8010E9442B1E61B9B
S214008AB0F70BF093BF03E093BE032091BC03309105
S214008AC0BD03C901B8010E9442B1261B370B309383
S214008AD0BD032093BC03E0901804F0901904C7016E
S214008AE0B8010E9442B1E61AF70AF0921904E09221
S214008AF018048091D0039091D10381349105BCF481
S214008B008091CE039091CF038134910584F4A09197
S214008B104205B0E0AA0FBB1FAF5CB74F8D919C918A
S214008B2099231CF49195819591094A97C4F0CF0139
S214008B30FF230CF40196959587959093BF03809339
S214008B40BE03C90199230CF40196959587959093D9
S214008B50BD038093BC0310921904109218048091F0
S214008B60BE039091BF03893B9B406CF01092BF03FD
S214008B701092BE03809157049091580401969093EA
S214008B805804809357048091BE039091BF038834A5
S214008B90944F6CF41092BF031092BE03809157045A
S214008BA090915804019790935804809357048091AD
S214008BB0BC039091BD03893B9B406CF01092BD03B3
S214008BC01092BC03809155049091560401969093A0
S214008BD05604809355048091BC039091BD0388345D
S214008BE0944F6CF41092BD031092BC038091550410
S214008BF09091560401979093560480935504809163
S214008C001804909119048D3A9D406CF01092190446
S214008C1010921804809153049091540401969093F6
S214008C205404809353048091180490911904843559
S214008C30924FD4F4109219041092180480915304A1
S214008C4090915404019790935404809353040CC05D
S214008C501092BF031092BE031092BD031092BC0385
S214008C60109219041092180410921A048091420669
S214008C70811108C01092ED031092EC031092EB03E2
S214008C801092EA038091340690913506A09136063C
S214008C90B09137068093920390939303A093940326
S214008CA0B093950380913C0690913D06A0913E06B8
S214008CB0B0913F0680938E0390938F03A09390030A
S214008CC0B093910310923406109235061092360631
S214008CD01092370610923C0610923D0610923E0601
S214008CE010923F061092530310925203E091100424
S214008CF0F0911104DF01FF2324F4AA27BB27AE1B43
S214008D00BF0BA430B1053CF080915C0684FD03C027
S214008D1082E38093EE03109157058091C5039091EE
S214008D20C6038130924068F59F010E94ADB19B0159
S214008D30AC01A12FB0E00E94C8B16B017C01992361
S214008D4034F45FEFC50E51E0D51EE11CF11CB701EF
S214008D50A601032E39E075956795579547953A9580
S214008D60D1F7302D1E9FC0011F9F900D112499230F
S214008D700CF403969595879595958795480F591FFA
S214008D8002C040E050E08091F0039091F103480F5C
S214008D90591F662757FD6095762F40939E03509384
S214008DA09F036093A0037093A10380912E0490917B
S214008DB02F04A0913004B0913104841B950BA60BB0
S214008DC0B70B80932E0490932F04A0933004B09397
S214008DD03104813563EC9607A105B1056CF080E59A
S214008DE093ECA0E0B0E080932E0490932F04A09321
S214008DF03004B093310411C0803B9C43AF4FBF4F4B
S214008E0064F480EB9CE3AFEFBFEF80932E04909367
S214008E102F04A0933004B0933104E0904E01F090FC
S214008E204F01FF200CF4FEC080915C0683FFFAC061
S214008E3080914D01813021F0815080934D01F6C024
S214008E408DE080934D018091420490914304A0915F
S214008E504404B0914504BB2324F481509E4FAF4F89
S214008E60BF4F072E79E0B595A795979587957A9584
S214008E70D1F7702D9C01992324F422273327281B31
S214008E80390B80913E0490913F04A0914004B0912C
S214008E904104BB2324F481509E4FAF4FBF4F072E93
S214008EA079E0B595A795979587957A95D1F7702D22
S214008EB06C01992324F4CC24DD24C81AD90AC216DE
S214008EC0D3060CF4690180906E0690906F06A09011
S214008ED07006B090710620912101309122014091D8
S214008EE0230150912401C501B4010E948BB1890170
S214008EF09A01109322060093210684EEE81A8DEF5D
S214008F00F80AC701801B910B68E671E00E9456B113
S214008F10845B91096091EE03662321F010931D0493
S214008F2000931C0440914A0150914B014115510594
S214008F3039F04150510950934B0140934A0113C0F8
S214008F40A9E1CA16D104ACF4409118045091190452
S214008F50480F591F5093190440931804662319F0BC
S214008F6061506093EE0340914A0150914B01452BAE
S214008F7049F540914C01489FF001499FF00D11249E
S214008F80A601DD2014F4495F5F4FBA017595679519
S214008F9075956795759567956E5F7F4FCF010E94B3
S214008FA056B1CB01AA2797FDA095BA2F880E991E19
S214008FB0AA1EBB1E80926E0690926F06A092700646
S214008FC0B09271068091EE03811127C0409137015F
S214008FD0469580911C0490911D04801B910B845E25
S214008FE09D4F68E671E00E9456B1845B9109489FE8
S214008FF09001499F300D1124332314F4215F3F4F15
S2140090003595279535952795359527953595279543
S2140090103093F1032093F00309C01092F1031092ED
S214009020F00304C01092F1031092F00380911A042A
S214009030882381F0109222041092230410922404B4
S21400904010922504109226041092270410922804E9
S214009050109229048091E703811115C0A091420661
S21400906020914204309143044091440450914504B9
S214009070B0E00E94C8B128EF3AE240E050E00E941B
S2140090808BB1790102C0E12CF12C8091E6038111AD
S21400909015C0A091420620913E0430913F044091B5
S2140090A0400450914104B0E00E94C8B128EF3AE273
S2140090B040E050E00E948BB1590102C0A12CB12CB7
S2140090C080911E0690911F06893C91053CF088EC25
S2140090D090E090931F0680931E0609C088339F4F2A
S2140090E034F488E39FEF90931F0680931E068091CA
S2140090F0250690912606893C91053CF088EC90E088
S214009100909326068093250609C088339F4F34F433
S21400911088E39FEF909326068093250640906C0682
S214009120512C612C712CA0912706B0912806A30122
S21400913092010E94D2B140911E0650911F068A01EC
S214009140222717FD2095322F000F111F221F331FD5
S214009150000F111F221F331F000F111F221F331F66
S214009160000F111F221F331F000F111F221F331F56
S214009170000F111F221F331F000F111F221F331F46
S214009180AB01BC01400F511F621F731FDB01CA01F8
S21400919077231CF4CF96A11DB11D689415F8B595DC
S2140091A0A795979587951694D1F76701C80ED91E8F
S2140091B0D0922806C0922706A0911C06B0911D06E4
S2140091C0A30192010E94D2B1209125063091260675
S2140091D08901222717FD2095322F000F111F221F0D
S2140091E0331F000F111F221F331F000F111F221FD6
S2140091F0331F000F111F221F331F000F111F221FC6
S214009200331F000F111F221F331F000F111F221FB5
S214009210331FDC01CB01800F911FA21FB31F8C01EF
S2140092209D01BB2324F4015C1F4F2F4F3F4F6894D2
S21400923015F835952795179507951694D1F70A0DC5
S2140092401B1D10931D0600931C06A0916706B09187
S2140092506806AA0FBB1F2091230630E00E94C2B109
S2140092602B013C0199232CF4FFE34F0E511C611C8B
S214009270711C689415F875946794579447941694DF
S214009280D1F7A091310620913A0430913B044091E9
S2140092903C0450913D04B0E00E94C8B120EF35E593
S2140092A040E050E00E948BB1240D351D30936806D7
S2140092B02093670641E0C41640E1D4063CF080E007
S2140092C090E190932806809327060DC0809127068C
S2140092D0909128068115904F34F480E090EF90939B
S2140092E0280680932706013010413CF080E090E18C
S2140092F090931D0680931C060DC080911C069091CD
S2140093001D068115904F34F480E090EF90931D0673
S21400931080931C06213030413CF080E090E1909331
S2140093206806809367060DC0809167069091680670
S2140093308115904F34F480E090EF90936806809308
S21400934067068091CB0385FD0EC060911A0170916F
S2140093501B0120915301229DC001239D900D1124D5
S2140093600E9442B11B0180918D039FEF980F90934E
S2140093708D03811166C080918B0390918C03892B9D
S21400938041F480911A0190911B0190938C03809375
S2140093908B0320911A0130911B0180918B039091D1
S2140093A08C038217930730F4019690938C03809376
S2140093B08B030CC020911A0130911B012817390726
S2140093C028F4019790938C0380938B0384E6809314
S2140093D08D034091650480918B0390918C03242F1C
S2140093E030E08217930720F42AE02093C1030FC0D1
S2140093F02091510130E0240F311D2817390738F429
S2140094002091C103222319F021502093C1034091DB
S2140094106404242F30E08217930720F489E18093B8
S214009420C0030FC02091510130E0240F311D2817D2
S214009430390738F48091C003882319F0815080934F
S214009440C0038091C1038823D1F08091F4039091EA
S214009450F503A091F603B091F703BB2384F0809147
S214009460B0058093F30380EE91EBAFEFBFEF8093F0
S214009470F4039093F503A093F603B093F70380915B
S214009480CC04811102C00E94DE95220C331C220CF3
S214009490331C80915C0680FD02C00C94B75480910A
S2140094A0E60381110C94B7548091E70381110C9464
S2140094B0B7548091620A8F7711F00C94B75480915C
S2140094C0590490915A04892B09F05FC080911001CD
S2140094D0909111018939934030F187B58A3FF8F4AD
S2140094E080915603815080935603982F990F990FB9
S2140094F0890F90911205981B97BD87B5809588BDFA
S2140095008CE291E09093CE048093CD048EE591E0BA
S21400951090935A04809359040E94141B6BC081E0F8
S21400952080938A0367C08091100190911101843660
S214009530910530F587B58630F8F0809156038F5F39
S21400954080935603982F990F990F890F90911205C3
S214009550981B97BD87B5809588BD8CE291E0909367
S214009560CE048093CD048EE591E090935A048093C8
S21400957059040E94141B3EC081E0809389033AC0C0
S2140095801092890310928A0335C0109255031092E8
S21400959054038091C203882321F081E00E94A01624
S2140095A020C08091FE039091FF03A0910004B0912B
S2140095B00104880F991FAA1FBB1F880F991FAA1F97
S2140095C0BB1F880F991FAA1FBB1F880F991FAA1FB2
S2140095D0BB1F8093570390935803A0935903B093EF
S2140095E05A038091590490915A04019790935A0413
S2140095F08093590480915C0681FF41C08091E1030D
S214009600823348F580911C019FEF980F90931C01C0
S214009610811153C080915701811107C080911B04AE
S214009620882319F088E28093570110921B048091DA
S214009630FE039091FF03A0910004B0910104809373
S214009640FA039093FB03A093FC03B093FD0381E021
S21400965080931C0132C0873480F1809157018111BC
S21400966007C080911B04811103C087E280935701D5
S21400967088EC80931C0181E080931B041EC08091BF
S214009680E1032091250130912601280F311D4091DC
S2140096905005429FC001439F900D1124AA2797FDB5
S2140096A0A095BA2F8093FA039093FB03A093FC0334
S2140096B0B093FD0381E080931B04409021015090FD
S2140096C02201609023017090240160913E04709105
S2140096D03F048091400490914104A30192010E94AE
S2140096E08BB12D833E834F835887609142047091DF
S2140096F043048091440490914504A30192010E9482
S2140097008BB16D817E81C9010E94A20D2091360128
S214009710FC012E9FC0012F9F900D112464E670E07F
S2140097200E9456B1CB016C33710514F08CE390E0C7
S2140097300E942D9190932E0680932D0680E28093B2
S21400974020011092F9031092F80380911B048823DD
S21400975009F4B5C78091CB0384FDB1C78091CA03D5
S21400976082608093CA03E0914006E0FD04C08091C9
S2140097705C0681FD0BC010928803109287038091CF
S214009780CB03806C8093CB03F10120C38091CB0385
S21400979081FFEAC200910E0410910F04C0904001B0
S2140097A0D0904101C6010F968017910708F093C02C
S2140097B08091890381118FC08091CB038823ACF4FC
S2140097C08091CB038F778093CB0380914A0390914F
S2140097D04B03A0914C03B0914D038093FA039093F2
S2140097E0FB03A093FC03B093FD03409024064420A3
S2140097F0A1F1512C612C712C6091FA037091FB033E
S2140098008091FC039091FD0324E630E040E050E0B8
S2140098100E948BB14216530664067506F4F48091D6
S2140098205701811116C06091FE037091FF0380916D
S2140098300004909101042FE530E040E050E00E94E3
S2140098408BB142165306640675061CF48AE18093B3
S21400985057018DE3809320013BC080918503909152
S2140098608603459784F080914A0390914B03A0911C
S2140098704C03B0914D038093FA039093FB03A0939F
S214009880FC03B093FD038091CB0380648093CB03ED
S214009890C8018C199D090F979C01992324F422274F
S2140098A03327281B390B822F932F3093F9032093ED
S2140098B0F8032091C103222341F063E070E00E9488
S2140098C056B17093F9036093F8038BE280932001FE
S2140098D01092F20329C1C6010F970817190708F05E
S2140098E042C080918A0381113EC08091CB0386FDE1
S2140098F007C08091850390918603843D9E4FACF40B
S2140099008091CB038F7B8093CB0380914A03909109
S2140099104B03A0914C03B0914D038093FA039093B0
S214009920FB03A093FC03B093FD038091CB038068F8
S2140099308093CB0398012C193D09215F3F4FC90145
S214009940992324F488279927821B930B9195819558
S21400995091099093F9038093F8038DE28093200198
S2140099601092F203E1C08DE3809320012091F3036F
S214009970222309F474C04091F4035091F5036091DA
S214009980F6037091F7038091FA039091FB03A09180
S214009990FC03B091FD0384179507A607B70764F587
S2140099A08091CB0380648093CB03822F90E09093CA
S2140099B0F9038093F8038AE08093F2038EE58093A0
S2140099C020018091CB0388230CF0AEC08091CB039E
S2140099D08F778093CB0380914A0390914B03A0919D
S2140099E04C03B0914D038093FA039093FB03A0932E
S2140099F0FC03B093FD0398C0481759076A077B0716
S214009A0074F58091CB0380688093CB03822F90E01F
S214009A109195819591099093F9038093F80386EFC9
S214009A208093F20386E7809320018091CB0386FF24
S214009A307BC08091CB038F7B8093CB0380914A03BE
S214009A4090914B03A0914C03B0914D038093FA0381
S214009A509093FB03A093FC03B093FD0365C0809135
S214009A60CB03807C09F460C08091F203811136C07C
S214009A7080914A0390914B03A0914C03B0914D0303
S214009A808C019D01085C1109210931094091FA03F6
S214009A905091FB036091FC037091FD0304171507BA
S214009AA0260737074CF00093FA031093FB03209326
S214009AB0FC033093FD0314C088539F4FAF4FBF4F36
S214009AC0481759076A077B075CF08093FA03909360
S214009AD0FB03A093FC03B093FD0302C01092F203B5
S214009AE08091CB038F738093CB03109288031092E0
S214009AF08703E1FF06C084EF91E09093CE04809345
S214009B00CD048091020481110FC08091FE039091D4
S214009B10FF03A0910004B0910104C397A105B1050D
S214009B201CF081E080930204209187033091880323
S214009B308091F8039091F903280F391F309388031A
S214009B4020938703C901332324F488279927821B8F
S214009B50930B853F91400CF4EFC0E091F203EE23A7
S214009B60B1F14091F4035091F5036091F6037091C2
S214009B70F7038091FA039091FB03A091FC03B09148
S214009B80FD039A01281B390B273F1FEF310764F0AE
S214009B902A3031054CF44093FA035093FB0360934C
S214009BA0FC037093FD034DC04E2F552747FD50957F
S214009BB0652F752F840F951FA61FB71F8093FA0376
S214009BC09093FB03A093FC03B093FD033AC01216D8
S214009BD01306E4F4209150058BEA289F212D1124CA
S214009BE026958091FA039091FB03A091FC03B09117
S214009BF0FD03820F911DA11DB11D8093FA03909362
S214009C00FB03A093FC03B093FD031BC020915005FB
S214009C108BEA289F212D112426958091FA03909196
S214009C20FB03A091FC03B091FD03821B9109A109DF
S214009C30B1098093FA039093FB03A093FC03B093BF
S214009C40FD0310928803109287038091FE03909183
S214009C50FF03A0910004B09101048C019D011450F3
S214009C602109310940914A0350914B0360914C03FE
S214009C7070914D0304171507260737074CF000931D
S214009C804A0310934B0320934C0330934D0310C0AC
S214009C909C5FAF4FBF4F481759076A077B0744F0D2
S214009CA080934A0390934B03A0934C03B0934D03C9
S214009CB080914A0390914B03A0914C03B0914D03C1
S214009CC08C019D011450210931094091FA035091ED
S214009CD0FB036091FC037091FD030417150726072C
S214009CE037074CF00093FA031093FB032093FC0312
S214009CF03093FD0311C084529A4FAF4FBF4F4817A1
S214009D0059076A077B0744F08093FA039093FB0396
S214009D10A093FC03B093FD038091400681FF06C02C
S214009D2084E690E09093CE048093CD048091F30374
S214009D30811102C00E94C4378091590490915A0440
S214009D40892B09F43FC080914A0390914B03A09160
S214009D504C03B0914D038093FA039093FB03A093BA
S214009D60FC03B093FD032EC081E00E94A0168091F4
S214009D704A0390914B03A0914C03B0914D03805D34
S214009D809740A109B1098093FA039093FB03A0932F
S214009D90FC03B093FD0380915405882331F090E0D6
S214009DA0909341018093400106C08FE790E0909326
S214009DB04101809340013092E9032092E8038EE24D
S214009DC080932001E091E803F091E90380914A0333
S214009DD090914B03A0914C03B0914D034091FA0330
S214009DE05091FB036091FC037091FD0348175907DF
S214009DF06A077B0724F02091400620FD70C420915E
S214009E00C20321117EC22091590430915A04232B9B
S214009E1059F0E091E803F091E9031092860310925E
S214009E208503C12CD12CEAC0841B950BA60BB70B5F
S214009E30823020E892072FEFA207B2076CF481E089
S214009E4090E8AFEFBFEF8093810390938203A093D7
S214009E508303B09384031BC08F3F3FE79307A1059E
S214009E60B1054CF48093810390938203A0938303FF
S214009E70B09384030CC08FEF9FE7A0E0B0E0809320
S214009E80810390938203A0938303B093840320916D
S214009E908103309182034091830350918403309371
S214009EA0860320938503A0913901B0E00E94C8B1D3
S214009EB08B019C01992324F4015E1F4F2F4F3F4FC7
S214009EC0D901C801689414F8B595A7959795879514
S214009ED01694D1F785304EEF94074FEFA407B407DA
S214009EE06CF484E09EEFAFEFBFEF80938103909316
S214009EF08203A0938303B09384031BC0811554E0B0
S214009F009507A105B1054CF48093810390938203D5
S214009F10A0938303B09384030CC080E094E0A0E099
S214009F20B0E08093810390938203A0938303B09361
S214009F3084034091810350918203A0915403B09111
S214009F405503BB230CF41796B595A795B595A7951D
S214009F50B595A795A2386FEFB60724F0A038B105DF
S214009F6024F405C0A1E8BFEF02C0A0E8B0E020914D
S214009F703A0130E00E94C2B18B019C01992324F47F
S214009F800D5F1F4F2F4F3F4FD901C801B595A795BD
S214009F9097958795B595A7959795879581307FEF87
S214009FA097072CF08F3F910509F024F405C080E058
S214009FB09FEF02C080E091E02091CB03207C59F017
S214009FC09C01992314F42D5F3F4FC9019595879501
S214009FD09595879510C02091400620FF0CC09C01E7
S214009FE0992314F4295F3F4FC90195958795959558
S214009FF08795959587956A01C80ED91EA091380158
S21400A000AA2309F461C040911E0450911F04609178
S21400A010200470912104772324F441585F4F6F4F3A
S21400A0207F4F9A01AB01689416F85595479537957A
S21400A03027951694D1F7B0E00E94C8B18B019C0119
S21400A040992324F4015E1F4F2F4F3F4FD901C801BB
S21400A050689414F8B595A795979587951694D1F7B3
S21400A06081380FEF9007A007B0076CF480E89FEFE9
S21400A070AFEFBFEF8093810390938203A093830397
S21400A080B09384031BC08F3F9105A105B10509F06D
S21400A0904CF48093810390938203A0938303B09340
S21400A0A084030CC080E091E0A0E0B0E080938103E0
S21400A0B090938203A0938303B093840380918103DB
S21400A0C090918203C80ED91E0091E8031091E9030F
S21400A0D09601D8010E94ADB12B013C01992334F4BE
S21400A0E02FEF420E21E0521E611C711CD301C201EB
S21400A0F0072E79E0B595A795979587957A95D1F728
S21400A100702DBF01681B790B8091F8039091F903BD
S21400A110892B09F079C0101611060CF075C0209135
S21400A120850330918603C901332324F488279927B1
S21400A130821B930B8D33910590F4809116049091B9
S21400A1401704861797070CF05CC080913E0190912B
S21400A1503F01861797070CF057C0BC0155C0CC9737
S21400A16096958795929582958F7089279F708927F7
S21400A1708031910510F08FE090E0121613061CF562
S21400A18040E150E0481B590B20911604309117040B
S21400A190429FC001439F900D529F900D11249295AF
S21400A1A082958F7089279F7089278617970710F0EA
S21400A1B0BC012AC080913E0190913F018617970707
S21400A1C01CF5BC0121C0409640913E0150913F01D4
S21400A1D0849F9001859F300D949F300D11243295F9
S21400A1E022952F7023273F70232780911604909185
S21400A1F01704861797073CF46217730728F0B9010F
S21400A20003C0BC0101C0BC01CB01AA2797FDA095E5
S21400A210BA2FBC01CD01052E5DE0660F771F881FA3
S21400A220991F5A95D1F7502D20912D0630912E0664
S21400A230442737FD4095542F0E948BB120937D0311
S21400A24030937E0340937F035093800380917B037B
S21400A25090917C03BC01660F771F860F971F280F0F
S21400A260391F332314F42D5F3F4F359527953595C9
S21400A270279530937C0320937B0380914C0590E0D8
S21400A280880F991F880F991F821793072CF09093B9
S21400A2907C0380937B030FC08091640690E0449714
S21400A2A0880F991F880F991F2817390724F0909355
S21400A2B07C0380937B038091400680FF10C08091D2
S21400A2C07B0390917C038215930524F030927C03E7
S21400A2D020927B0320907B0330907C0300C2201AE0
S21400A2E0310AC10199230CF40396959587959595A7
S21400A2F0879520917B0330917C031C01220E331E30
S21400A300EEC12091590430915A04232B59F0E09164
S21400A310E803F091E9031092860310928503412C1E
S21400A320512C3CC1841B950BA60BB70B823030E832
S21400A33093073FEFA307B3076CF481E090E8AFEF15
S21400A340BFEF8093810390938203A0938303B0931F
S21400A35084031BC08F3F4FE79407A105B1054CF45B
S21400A3608093810390938203A0938303B093840326
S21400A3700CC08FEF9FE7A0E0B0E08093810390933E
S21400A3808203A0938303B0938403209181033091CA
S21400A3908203409183035091840330938603209375
S21400A3A08503A0913901B0E00E94C8B18B019C01E1
S21400A3B0992324F4015E1F4F2F4F3F4FD901C80148
S21400A3C0689414F8B595A795979587951694D1F740
S21400A3D0853058EF95075FEFA507B5076CF484E066
S21400A3E098EFAFEFBFEF8093810390938203A09323
S21400A3F08303B09384031BC0811568E09607A1050C
S21400A400B1054CF48093810390938203A093830359
S21400A410B09384030CC080E098E0A0E0B0E08093A6
S21400A420810390938203A0938303B09384034090A8
S21400A4308103509082036090830370908403409160
S21400A4405B0350915C032091540330915503609157
S21400A4503801649FC001659F900D1124992314F460
S21400A46081509F4F892F990F990B8C01020F131F54
S21400A470222717FD2095322F8091F203882379F04A
S21400A4808091F8039091F903880F991F880F991F00
S21400A490880F991F9093C4038093C30325C06091CF
S21400A4A050054091F8035091F903649FC001659FE1
S21400A4B0900D1124AC01440F551F440F551F440F37
S21400A4C0551F840F951F99230CF44F9695958795E5
S21400A4D0959587959595879595958795959587955F
S21400A4E09093C4038093C3038091C3039091C403E5
S21400A4F0AA2797FDA095BA2FA9019801281B390B0A
S21400A5004A0B5B0BA0913A01B0E00E94C8B18B01E8
S21400A5109C01992324F4015E1F4F2F4F3F4FD90112
S21400A520C801689414F8B595A795979587951694DD
S21400A530D1F7853078EF97077FEFA707B7076CF45A
S21400A54084E098EFAFEFBFEF809381039093820390
S21400A550A0938303B09384031BC0811508E0900783
S21400A560A105B1054CF48093810390938203A093D8
S21400A5708303B09384030CC080E098E0A0E0B0E0D2
S21400A5808093810390938203A0938303B093840304
S21400A5908091810390918203480E591EE419F509B3
S21400A5A060911604709117046E177F074CF4809123
S21400A5B03E0190913F01BF018E179F070CF4BC012E
S21400A5C0CB01AA2797FDA095BA2FBC01CD01052E79
S21400A5D05DE0660F771F881F991F5A95D1F7502D9B
S21400A5E020912D0630912E06442737FD4095542F96
S21400A5F00E948BB120937D0330937E0340937F03AC
S21400A6005093800380917B0390917C03BC01660F7E
S21400A610771F860F971F280F391F332314F42D5FDB
S21400A6203F4F359527953595279530937C03209396
S21400A6307B038091C5039091C6038139914020F435
S21400A6408091CA0385FF04C08091580590E003C03E
S21400A65080914C0590E0880F991F880F991F8217EC
S21400A66093072CF090937C0380937B030FC080911C
S21400A670640690E04497880F991F880F991F281743
S21400A680390724F090937C0380937B0380914006E7
S21400A69080FF10C080917B0390917C038215930508
S21400A6A024F030927C0320927B0320907B03309032
S21400A6B07C0315C020907B0330907C0310C00E9462
S21400A6C0C43730927C0320927B038091CB03806C4E
S21400A6D08093CB038091CA038D7F8093CA038091B9
S21400A6E0CB0381FF35C18091770390917803A091C9
S21400A6F07903B0917A03892B8A2B8B2B21F08091DA
S21400A7000204813001F58091E8039091E903AA27BD
S21400A71097FDA095BA2F072E7EE0880F991FAA1FD7
S21400A720BB1F7A95D1F7702D8093770390937803AB
S21400A730A0937903B0937A0380910204813019F4D0
S21400A74082E080930204A0912D06B0912E0691011E
S21400A7500E94ADB18B019C01992324F40150104E48
S21400A7602F4F3F4FD901C801072E7DE0B595A7951D
S21400A770979587957A95D1F7702D80937D03909362
S21400A7807E03A0937F03B09380032091CC03309187
S21400A790CD03203A4FE03407A8F540917703509157
S21400A7A078036091790370917A032A013B01032EA6
S21400A7B03AE076946794579447943A95D1F7302DBB
S21400A7C044195509660977092C013D01440C551CAE
S21400A7D0661C771C440C551C661C771C440C551CC8
S21400A7E0661C771C440C551C661C771C440D551DB6
S21400A7F0661D771D40937703509378036093790323
S21400A80070937A0320343F4160F54091770350916E
S21400A81078036091790370917A038A019B010F2E69
S21400A820FCE03695279517950795FA95D1F7F02D04
S21400A830401B510B620B730B880F991FAA1FBB1F7F
S21400A840880F991FAA1FBB1F840F951FA61FB71F2F
S21400A8508093770390937803A0937903B0937A0359
S21400A86041C0209154033091550333231CF4319595
S21400A8702195310924363105ACF520914A033091F3
S21400A8804B034091FA035091FB03241B350B2130F8
S21400A8906FEF36073CF12F3F310509F01CF540916C
S21400A8A07703509178036091790370917A038A0157
S21400A8B09B010F2EFEE03695279517950795FA957E
S21400A8C0D1F7F02D401B510B620B730B840F951FB5
S21400A8D0A61FB71F8093770390937803A0937903FE
S21400A8E0B0937A030091770310917803209179034F
S21400A8F030917A030F2EFEE036952795179507952B
S21400A900FA95D1F7F02DC8011093E9030093E803F8
S21400A91060915205662389F070E00E9456B1C80126
S21400A920861B970B9093170480931604060F171F29
S21400A93010933F0100933E011FC01092170410921F
S21400A94016048FEF93E090933F0180933E0114C06E
S21400A95010920204109277031092780310927903F3
S21400A96010927A031092E9031092E80305C08091D2
S21400A970CB03806C8093CB038091B70481FF37C0F4
S21400A9808091C7039091C8039101332014F42D5F82
S21400A9903F4F35952795359527958217930758F499
S21400A9A02091E8033091E903232B29F01C01220CA7
S21400A9B0331C220C331C80914A0390914B03A091C8
S21400A9C04C03B0914D038093FA039093FB03A0933E
S21400A9D0FC03B093FD0388E99AE39093CE0480933A
S21400A9E0CD0480E09EE09093AA028093A902809115
S21400A9F02C0690E00A96880F991F880F991F281634
S21400AA0039060CF41C012091640630E0245131090B
S21400AA10220F331F220F331F3E822D82221533054D
S21400AA2014F43E832D832091DF04211108C0209169
S21400AA301B052E3F20F02091BB04222301F120911C
S21400AA40CC033091CD032250310920333105B8F4C0
S21400AA508D809E801814190494F421E030E0309321
S21400AA60CD032093CC0320911B05283230F429E037
S21400AA70209357019E838D8302C09E838D83809191
S21400AA80CC04811102C00E94DE950D811E811093B8
S21400AA90570C0093560C20919E0330919F03220F73
S21400AAA0331F220F331F8091670690916806821B22
S21400AAB0930B013A1105C4F09801112314F42F5F8B
S21400AAC03F4F35952795522F432F8217930714F43F
S21400AAD0582F492F319521953109852F942F8217AC
S21400AAE093076CF4C9010BC08135910514F080E51D
S21400AAF090E0803B1FEF910714F480EB9FEF2091CE
S21400AB00640630E0220F331F220F331FA9018D8009
S21400AB109E8048195909481759070CF4CA010D8137
S21400AB201E81021B130B9A8789878017910714F4DE
S21400AB301A8709878091140490911504209127069E
S21400AB4030912806281B390B3093330620933206A3
S21400AB50009142060023E9F0A701481B590BCA01E1
S21400AB60AA2797FDA095BA2F409126045091270456
S21400AB706091280470912904840F951FA61FB71FA3
S21400AB808093260490932704A0932804B093290466
S21400AB9019C04091260450912704609128047091B2
S21400ABA02904C901AA2797FDA095BA2F840F951FDF
S21400ABB0A61FB71F8093260490932704A09328040B
S21400ABC0B09329048091260490912704A09128042C
S21400ABD0B091290481305AEF9507A105B1056CF0B4
S21400ABE080E09AEFA0E0B0E08093260490932704DC
S21400ABF0A0932804B093290411C081159640AF4F46
S21400AC00BF4F64F480E096E0AFEFBFEF809326047A
S21400AC1090932704A0932804B0932904109161050B
S21400AC20193088F4129F7001139FF00C1124FF2036
S21400AC301CF477E0E70EF11CF594E794F594E7949E
S21400AC40F594E79410C0812F8695829F7001839FAC
S21400AC50F00C1124FF201CF483E0E80EF11CF594A0
S21400AC60E794F594E79440903B0150903C016624AD
S21400AC7057FC6094762C609126047091270480918E
S21400AC80280490912904A30192010E948BB1170118
S21400AC90220E331E2091270130E040E050E08985E7
S21400ACA09A8599231CF4919581959109DC01992345
S21400ACB00CF41196B595A7958D809E80A80DB91DAC
S21400ACC00E94D2B16B017C0199232CF42FE3C20EB3
S21400ACD0D11CE11CF11C689415F8F594E794D79400
S21400ACE0C7941694D1F7DC86CB86F101C214D30440
S21400ACF00CF4F601222433242C183D08FE87ED8739
S21400AD00E215F30514F43E862D8620911204309148
S21400AD10130480911C0690911D06821B930B909342
S21400AD201B0680931A06002321F1A21AB30A950186
S21400AD30442737FD4095542F298B3A8B4B8B5C8BE1
S21400AD4040912204509123046091240470912504BC
S21400AD5089889A88AB88BC88840E951EA61EB71E66
S21400AD608092220490922304A0922404B092250498
S21400AD7021C0209122043091230440912404509154
S21400AD80250429833A834B835C83AC01662757FDF1
S21400AD906095762F89809A80AB80BC80480D591DBF
S21400ADA06A1D7B1D40932204509323046093240461
S21400ADB0709325044091220450912304609124044A
S21400ADC07091250441300AEF5007610571056CF05B
S21400ADD040E05AEF60E070E0409322045093230472
S21400ADE0609324047093250411C0411556406F4F9C
S21400ADF07F4F64F440E056E06FEF7FEF409322040D
S21400AE00509323046093240470932504193088F427
S21400AE10189F5001199FB00C1124BB201CF437E07A
S21400AE20A30EB11CB594A794B594A794B594A79413
S21400AE300FC01695189F5001199FB00C1124BB2007
S21400AE401CF443E0A40EB11CB594A794B594A79443
S21400AE50609122047091230480912404909125042B
S21400AE60A30192010E948BB12A0D3B1D8B849C840A
S21400AE70821693060CF496013C872B872215330521
S21400AE8014F43C862B868091CC0481113DC10E942F
S21400AE90DE953AC19EA28DA2F4013397A0811A16C0
S21400AEA00CF01DC1A034E1F0BB27A7FDB095A701AB
S21400AEB096010E94D2B19B01AC01992324F4215C37
S21400AEC03F4F4F4F5F4FBA01A901689415F875952B
S21400AED06795579547951694D1F75E834D8304C0C2
S21400AEE00F8D0D83E8A1EE83ADA1BEA11297AC91A4
S21400AEF0A03449F4ED81FE812D853E85E20FF31FD7
S21400AF00FE83ED832CC0A03C49F4ED81FE812D85A7
S21400AF103E85E21BF30BFE83ED8321C0BB27A7FD16
S21400AF20B095298D3A8D4B8D5C8D0E94D2B19B01D8
S21400AF30AC01992324F4215C3F4F4F4F5F4FBA0179
S21400AF40A901689415F875956795579547951694D1
S21400AF50D1F7ED81FE81E40FF51FFE83ED83ADA1F1
S21400AF60BEA11197AC91A03449F4ED81FE812B85EA
S21400AF703C85E20FF31FFE83ED832CC0A03C49F412
S21400AF80ED81FE812B853C85E21BF30BFE83ED8372
S21400AF9021C0BB27A7FDB0952D893E894F89588DC6
S21400AFA00E94D2B19B01AC01992324F4215C3F4F4F
S21400AFB04F4F5F4FDA01C901689415F8B595A7950C
S21400AFC0979587951694D1F7ED81FE81E80FF91FC6
S21400AFD0FE83ED83EDA1FEA1A081A03439F4ED81BE
S21400AFE0FE8129853A85E20FF31F28C0A03C39F47C
S21400AFF0ED81FE8149855A85E41BF50B1FC0BB27F2
S21400B000A7FDB09529893A894B895C890E94D2B1FF
S21400B0109B01AC01992324F4215C3F4F4F4F5F4FB7
S21400B020DA01C901689415F8B595A795979587959F
S21400B0301694D1F7ED81FE81E80FF91F9201D20137
S21400B04012978C9181FD06C0D3018D919C918E172D
S21400B0509F075CF4D3018D919C91E80FF91FFF23A5
S21400B0600CF43196F595E79511C0111105C0EE0F59
S21400B070FF1FE81BF90B0AC0123040F08E1B9F0B17
S21400B0806BA17CA10E9456B1E60FF71F49815A8139
S21400B0904E175F0744F46F8578896E177F072CF488
S21400B0A0E9A1FAA102C0ED8DFE8DCF01FF230CF4BD
S21400B0B003969595879595958795D5018C93CF01A1
S21400B0C083709078992324F401978C6F9F6F019674
S21400B0D0880FD9018C93D301ED93FC9304C0F5013E
S21400B0E01082D2011C92BFE0AB0EB11CEFE04E0EF8
S21400B0F0511CF2E06F0E711C04E0800E911C42148D
S21400B100530409F0C7CEAEC05090A405E52DF0E07C
S21400B110FCA3EBA380912C0690E04C01880C991CB4
S21400B120880C991C9A8289828091640690E05C0162
S21400B130AA0CBB1CAA0CBB1CB88AAF860F2EF8E95B
S21400B1406F2EF9E07F2EF02D09E919E00F2EF3E4BB
S21400B1508F2EF6E09F2EF02D0F2EF7EDAF2EF5E09A
S21400B160BF2EF02D0F2EFDE42F2EFAE03F2EF02DF1
S21400B170E980ED8EFA80FE8EEF85E9A3F889FAA3C2
S21400B18029853A85442737FD4095542F298B3A8BDD
S21400B1904B8B5C8B4B855C85662757FD6095762FC1
S21400B1A04D8B5E8B6F8B788F6D857E85882777FDC0
S21400B1B08095982F698F7A8F8B8F9C8FED81EF8F7C
S21400B1C0FE81F8A32D813E816901EE24D7FCE09430
S21400B1D0FE2CC401450153019801152D29013C019F
S21400B1E059CE1092340610923506109236061092FA
S21400B1F0370610923C0610923D0610923E061092BC
S21400B2003F0610925303109252031092EB031092D3
S21400B210EA031092ED031092EC038091E60381118D
S21400B2200C9413450C94274310923406109235065E
S21400B230109236061092370610923C0610923D0683
S21400B24010923E0610923F0610925303109252033D
S21400B2501092EB031092EA031092ED031092EC03A7
S21400B2600C941345A6960FB6F894DEBF0FBECDBF5E
S21400B270DF91CF911F910F91FF90EF90DF90CF90CD
S21400B280BF90AF909F908F907F906F905F904F9001
S21400B2903F902F90089588E694E09F938F9387EBD6
S21400B2A09CEA9F938F93E0917806F0917906099532
S21400B2B00F900F900F900F90089580913F0590E0AB
S21400B2C0FC01EE0FFF1FEF5CF74F208131812D3E12
S21400B2D03F4F14F010925001FC01EE0FFF1FEF5C81
S21400B2E0F74F808191818A3B9F4FCCF4809150012B
S21400B2F0811115C081E080935001EDE7FAE080816E
S21400B3008F5F8083853038F088EE93E09093CE048C
S21400B3108093CD04089566E970E00C94BA280895E9
S21400B320CF93C82F882311F120E634E03F932F9364
S21400B33027EB3CEA3F932F93E0917806F09179064D
S21400B340099580911A0190911B016BE270E00E94B2
S21400B35056B16F5F0F900F900F900F90673018F4F4
S21400B3606093510103C086E080935101909162057D
S21400B370923328F580915101899F902D1124909346
S21400B3805301CC23F1F068EC70E00E94BA2880915B
S21400B39051011F928F9325E534E03F932F9327EBBF
S21400B3A03CEA3F932F93E0917806F0917906099551
S21400B3B00F900F900F900F900F900F9002C09093E9
S21400B3C053018091B205823340F490915101989FC9
S21400B3D0802D11248093650402C0809365048091BB
S21400B3E0B305823340F490915101989F902D11241B
S21400B3F09093640402C0809364049091530120915A
S21400B4006504921720F42FEF290F209365042091EE
S21400B4106404291720F02FEF290F2093640420914D
S21400B420640430916504321728F0882319F02150FF
S21400B43020936504CC2309F47FC08DEC989F812D62
S21400B4401124869586958695282F220F322F330F46
S21400B450330F230F921B1F929F931F928F9380E4AC
S21400B46094E09F938F9387EB9CEA9F938F93E09152
S21400B4707806F09179060995809164042DB73EB759
S21400B480285F3F4F0FB6F8943EBF0FBE2DBF8823F0
S21400B49039F19DEC899F912D112496959695969558
S21400B4A0292F220F322F330F330F230F821B1F92A9
S21400B4B08F931F929F938EE294E09F938F9387EBD8
S21400B4C09CEA9F938F93E0917806F0917906099510
S21400B4D08DB79EB708960FB6F8949EBF0FBE8DBF69
S21400B4E080916504882341F19DEC899F912D11245C
S21400B4F0969596959695292F220F322F330F330F58
S21400B500230F821B1F928F931F929F9388E194E0D4
S21400B5109F938F9387EB9CEA9F938F93E091780697
S21400B520F091790609952DB73EB7285F3F4F0FB6C5
S21400B530F8943EBF0FBE2DBFCF91089514B815B82E
S21400B5408AE08AB98FE58BB988EE93E00197009779
S21400B550E9F7199B0DC04C9B04C085E1809354010C
S21400B5600DC086E18093540181E08093C20306C03B
S21400B57089E18093540181E08093C20381E887B912
S21400B5803E9A8FEF88B98BE184B981E085B9469AF7
S21400B59084B7877F84BFE0E6F0E08081886180839F
S21400B5A0108284EC99E09093CE048093CD041092A0
S21400B5B0110410921004109236081092350810925A
S21400B5C01304109212041092150410921404809121
S21400B5D05401843168F084EC94E0A0E0B0E08093FD
S21400B5E0210190932201A0932301B09324010CC063
S21400B5F08BE095E0A0E0B0E08093210190932201DB
S21400B600A0932301B0932401289880915401893196
S21400B61011F4299A01C029980E94BA9C0E94939C12
S21400B6200E94BFAC0E9476910E940E1B81E00E9491
S21400B630C9A00E94BD950E94B72187E00E941919F3
S21400B64080915401893111F4299A01C0299878947F
S21400B6500E94AF26809154018431E8F42CE088E102
S21400B66090E00FB6F894A895809360000FBE2093E4
S21400B670600006EE13E0C7EBDCEA1F930F93DF9340
S21400B680CF93E0917806F091790609950F900F9088
S21400B6900F900F90F2CF8091DE0482608093DE04DC
S21400B6A01092E104C4EFD1E00E94C73385E090E039
S21400B6B00E945A9C5C018091DE0480FD05C0C50195
S21400B6C00E94639C8823B9F32197209769F784ED3D
S21400B6D093E09F938F9387EB9CEA9F938F93E091E1
S21400B6E07806F091790609950F2EF4EAEF2EF9E028
S21400B6F0FF2EF02D0F900F900F900F90CAE9D9E013
S21400B7000F2EF4EDCF2EF5E0DF2EF02D01E010E049
S21400B7100F2EF1ED2F2EF3E03F2EF02D0F2EF7EB30
S21400B7204F2EFCEA5F2EF02D0F2EF4E69F2EF02D06
S21400B7300F2EF5E66F2EFAE07F2EF02DF6018081B3
S21400B740181664F014C00E94C7338091DE0480FD92
S21400B75005C0C5010E94639C8823B9F3C5010E94F9
S21400B760639C811104C0888188236CF704C088819B
S21400B77088230CF03FC09801ADECBCEC0E94B3B13E
S21400B7809695879596958795969587959C01220F11
S21400B790331F880F991F880F991F880F991F820FD4
S21400B7A0931F9801281B390BC9019F932F933F9233
S21400B7B02F925F924F92E0917806F0917906099564
S21400B7C080915D048F5F80935D04F70131979081CF
S21400B7D0F7018081999D800D11240F900F900F9096
S21400B7E00F900F900F90882329F0F301908189170E
S21400B7F008F480830F5F1F4FF4E0CF0ED11C2F9606
S21400B8002FE0E20EF11C0D30110509F097CF0F2E38
S21400B810F4EDEF2EF5E0FF2EF02D0AE919E0C1E079
S21400B820D0E00F2EF3EBAF2EF3E0BF2EF02D0F2E51
S21400B830F7EBCF2EFCEADF2EF02D6894772471F814
S21400B8404801F80180818823BCF0F7018081181632
S21400B8509CF4DF93CF93BF92AF92DF92CF92E091AA
S21400B8607806F091790609957092CB040F900F90A8
S21400B8700F900F900F900F90F40180818078808356
S21400B8802196015F1F4FF4E0EF0EF11CCD30D1057D
S21400B890B9F68091650A8F3FD1F199E2899F912D83
S21400B8A0112492959F7024E6929F801911241F926E
S21400B8B08F931F929F938DE993E09F938F9387EBCF
S21400B8C09CEA9F938F93E0917806F091790609950C
S21400B8D08091650A84564DB75EB7485F5F4F0FB6D6
S21400B8E0F8945EBF0FBE4DBF833088F484E893E0C3
S21400B8F09F938F9387EB9CEA9F938F93E0917806B4
S21400B900F091790609950F900F900F900F90C3DC79
S21400B91080913D0590915D04891728F4E3E6FAE0EE
S21400B920908190619083893020F088E08093B20205
S21400B93002C08093B20284E693E09F938F9387EBD6
S21400B9409CEA9F938F93E0917806F091790609958B
S21400B95088EE93E00E945A9CEC010E944B1B0F90CD
S21400B9600F900F900F90CE010E94639C8823D9F30E
S21400B9708FE593E09F938F9387EB9CEA9F938F933B
S21400B980E0917806F0917906099580E00E945329A7
S21400B990289880ED97E09093CE048093CD0485E5BB
S21400B9A080937F0A8EE090E00E944225C82F8FE0A9
S21400B9B090E00E9442252C2F30E0322F2227280FBD
S21400B9C0311D30936304209362048AE090E00E9465
S21400B9D04225C82F8BE090E00E9442252C2F30E0B5
S21400B9E0322F2227F901E80FF11DCF01F0936104F1
S21400B9F0E09360040F900F900F900F90019631F037
S21400BA008091620490916304019641F4109263045D
S21400BA101092620410926104109260048091610496
S21400BA208F93809160048F93809163048F938091AD
S21400BA3062048F938DE393E09F938F9387EB9CEA4A
S21400BA409F938F93E0917806F091790609950E946E
S21400BA501D8788E893E19093B1028093B00281E05D
S21400BA6080937E0A5DDC809165050E94681813DC71
S21400BA7080ED97E00E945A9C4C018AEF90E00E946D
S21400BA805A9C809161048F93809160048F938DE11E
S21400BA9093E09F938F9388E193E29F938F93E09137
S21400BAA07806F0917906099580E00E942C2383E0C1
S21400BAB08093460C10925C048091B8054DB75EB733
S21400BAC0425F5F4F0FB6F8945EBF0FBE4DBF84FF58
S21400BAD003C081E08093660483E08093B302612C08
S21400BAE077247394C0E0D0E00F2EFDE7AF2EFAE087
S21400BAF0BF2EF02D0F2EF5E6CF2EF5E0DF2EF02D23
S21400BB000F2EF0E7EF2EF7E1FF2EF02D0F2EF7E1C8
S21400BB102F2EF9E03F2EF02D0F2EF3E14F2EF9E0F9
S21400BB205F2EF02D172D062D03C01CE001C010E07F
S21400BB3012BC11BC8091EC04882311F04798FECF0C
S21400BB408091D104882309F4BFC280910F01882315
S21400BB5009F4BAC2F8948091D10481508093D1043C
S21400BB607894F5018081882311F0A7DB02C00E943B
S21400BB7006380E94C733289880910404882331F041
S21400BB80809104048150809304043EC0EFE6F0E008
S21400BB908081806280831092320810923108E3E63A
S21400BBA0FAE080818860808320913F0530E0220F94
S21400BBB0331FF901E958F74F118210828091400532
S21400BBC090E0880F991FFC01E958F74F1182108208
S21400BBD0F901EF5CF74F11821082FC01EF5CF74F22
S21400BBE011821082E0914205F0E0EE0FFF1FEF5C3D
S21400BBF0F74F11821082E0914105F0E0EE0FFF1F33
S21400BC00EF5CF74F118210828091B0029091B102E2
S21400BC1001979093B1028093B002892B21F0809116
S21400BC20DF048823B1F18091B0029091B102892B94
S21400BC30C9F40E9409A185E090E09093B102809338
S21400BC40B002E0E8FCE080819181019691838083D8
S21400BC50E3E6FAE0808181608083E7E4FCE08081AF
S21400BC60826080838091A9029091AA02019691F445
S21400BC7080910304882371F088EA91E69093CE04BD
S21400BC808093CD0480E890E09093AA028093A90266
S21400BC9001C028980E94161A8091D104811111C201
S21400BCA08091AB04882319F00E9433930AC28091D6
S21400BCB0CC04811102C00E94DE958091AF028111F2
S21400BCC00E94149D0E9400AD0E945FA8C4010E94BD
S21400BCD0639C882309F4F1C124E1820E911C0E9422
S21400BCE0D39CF6018081863011F4A9D704C0843035
S21400BCF011F40E942C848091C203882329F180913C
S21400BD000605909107058C32914074F08091560C90
S21400BD109091570C81159240CCF480910605909135
S21400BD20070583359340A4F00F5F033390F08091AE
S21400BD300304882331F0E2E6FAE0808180628083A3
S21400BD4008C01092EF0305C000E003C000E001C089
S21400BD5000E08091DF04811105C080911B058E31C3
S21400BD6030F00BC0E3E6FAE0808182608083E7E48F
S21400BD70FCE080818260808311C08091CD04909128
S21400BD80CE04892B59F48091B0029091B1020797A6
S21400BD9028F0E7E4FCE080818D7F80838091660454
S21400BDA0882361F080910404873940F0109266047D
S21400BDB088E893E19093CE048093CD048091B502F9
S21400BDC0882321F081508093B5022DC01092890AF5
S21400BDD01092D7031092D6031092D5031092D40374
S21400BDE01092D3031092D2038091040481111BC0D9
S21400BDF08091A9029091AA020196A9F42091660466
S21400BE00223089F088E99AE39093CE048093CD049B
S21400BE1080E09CE09093AA028093A902222319F066
S21400BE2082E0809366048091A402893C70F0815081
S21400BE308093A402E3E6FAE080818B7F8083E6E6C7
S21400BE40FAE080818160808351C0E4EEF8E0808172
S21400BE508823F1F0E3E6FAE080818460808389E05D
S21400BE608093BB048091A9029091AA02019681F466
S21400BE7080910304882361F088E99AE39093CE04C6
S21400BE808093CD0480E098EA9093AA028093A9025A
S21400BE9010926B0410926A0410926904109268045F
S21400BEA010926704E7EDF8E010828FEFECE4F9E01B
S21400BEB08083E5E1F9E011821082F101118210829F
S21400BEC08FEF9FEFF201918380831092F30310921D
S21400BED0F4031092F5031092F6031092F703E6E6C9
S21400BEE0FAE080818E7F80831092A4022091530115
S21400BEF030E080911A0190911B0128173907DCF079
S21400BF008091CB0380628093CB038091A9029091AD
S21400BF10AA02019681F480911A0190911B010B9759
S21400BF2054F0F092CE04E092CD0440E053E05093FB
S21400BF30AA024093A90280915B048F5F80935B0402
S21400BF40813309F082C010925B04809180048823BC
S21400BF5019F08150809380048091CB0381FF0AC042
S21400BF6080915E0490915F04019690935F048093A5
S21400BF705E0404C05AEAC52F85E0D82F8091CC0312
S21400BF809091CD038115944008F051C0409108056A
S21400BF905091090560910A0570910B058091120178
S21400BFA090911301A0911401B091150148175907FB
S21400BFB06A077B07A4F48091080590910905A09173
S21400BFC00A05B0910B050596A11DB11D80930805C5
S21400BFD090930905A0930A05B0930B0528C04091DD
S21400BFE008055091090560910A0570910B0580912E
S21400BFF0120190911301A0911401B09115018417BC
S21400C0009507A607B7079CF4809108059091090547
S21400C010A0910A05B0910B050597A109B109809377
S21400C020080590930905A0930A05B0930B05809127
S21400C0301A0190911B012F5F3F4F281739072CF4E8
S21400C0408091CB038F7D8093CB032196C237FBE094
S21400C050DF0799F5809162049091630401969093AE
S21400C06063048093620420916004309161042F5F22
S21400C0703F4F3093610420936004692F8EE090E078
S21400C0800E944525E2E6F4E060818FE090E00E94A1
S21400C0904525609161048AE090E00E944525E0E62F
S21400C0A0F4E060818BE090E00E94452584E190E01A
S21400C0B00E945A9C4C01C0E0D0E00E948F850E94EE
S21400C0C0FD21112319F0115011110CC00E943A9B4A
S21400C0D081112BCD8091CC04811129CD0E94DE9553
S21400C0E010E026CD8091CC04811122CD0E94DE95F1
S21400C0F01FCD80917D049FE0899FF0011124E956B1
S21400C100F64F978120917C04291728F490937C049D
S21400C11080937B0408C0992331F020917A0492170B
S21400C12010F490937A048F5F8C3018F480937D041B
S21400C130089510927D0480917A048F3F19F08093C1
S21400C140830402C01092830480917C04809384044C
S21400C15080917B04809382048FEF80937A04109200
S21400C1607C0410927B04089595E1899F802D11240C
S21400C1700E94351580E19BE09F938F938BE095E1BD
S21400C1809F938F93E0917806F091790609950F902A
S21400C1900F900F900F900895CF93C0915701C093C2
S21400C1A081048091CB0385FF14C08091C10388234E
S21400C1B031F080916505863021F0E0E103C0E0E1D2
S21400C1C001C0EEE0CC2301F1809179048031E1F4E6
S21400C1D025C08091BB049FEF980F9232B8F49091DF
S21400C1E0030491110AC0282F30E0F901EE0FFF1F5B
S21400C1F0E95DF44FE491E11109C0E82FF0E0EE0F9D
S21400C200FF1FEA5DF44FE491E11109C08091B90582
S21400C21086FD08C010925701C0E004C0EC2FE093E2
S21400C2208104CE2F809179048C1311C080917704FD
S21400C230909178040E94639C8823E9F080EA9FE04E
S21400C2400E945A9C909378048093770408C080EDEF
S21400C25097E00E945A9C9093780480937704CC23AE
S21400C26031F080915701C81302C010925701C09355
S21400C27079048C2F01C080E0CF91089580912A091F
S21400C280893831F138F48230D9F08330E9F08130E2
S21400C290F1F512C08D3861F08E3831F08A38B9F574
S21400C2A05CE284EB97E017C05CE28AE796E013C096
S21400C2B05CE286EA96E00FC054E086E792E00BC0A8
S21400C2C054E089E892E007C059E082ED96E003C0AA
S21400C2D05CE28CED96E020911F0930912009332313
S21400C2E0B1F02517A0F430E0A0E2B9E002C02517AF
S21400C2F070F4E32FF0E0E45FF64F4589FC01E20FAF
S21400C300F11D40832F5F3F5F4C91341780F30895F3
S21400C310809120018B3211F08D32C9F44091500586
S21400C3202091F8033091F903429FC001439F900D7E
S21400C330112463E070E00E9456B1CB01805D9A48FC
S21400C3406F5C7F4F6133710508F440C008958032FA
S21400C350F9F48091CB0381FF3CC080917E049091DC
S21400C3607F04805D9A48813325E7920730F0843950
S21400C37035E7930788F184569109803325E79207BD
S21400C38098F58D3C34E7930750F58C599F4F0895E8
S21400C3908E3589F42091F30330E0C901880F991F88
S21400C3A0220F331F220F331F220F331F820F931FBC
S21400C3B0805D9A4808958637A9F42091F30336EFF6
S21400C3C03203C0011124805D9A4808958EEF94E7E9
S21400C3D0089580E395E7089580E395E7089580E360
S21400C3E095E7089580E395E70895CF938A3809F492
S21400C3F036C218F4893841F017C48D3809F442C3A0
S21400C4008E3809F485C210C4C7DEC82F8093B607DD
S21400C4106091FE037091FF038091000490910104E7
S21400C42024E630E040E050E00E948BB12C503E4FB6
S21400C4303093E2062093E106C11106C069DF9093AF
S21400C440E8068093E70606C080E395E79093E80643
S21400C4508093E7068091E7069091E8069093EA06B7
S21400C4608093E9069093EC068093EB068091E106B4
S21400C4709091E2062091E5063091E6068217930732
S21400C48024F49093E6068093E5062091E306309127
S21400C490E4062817390724F49093E4068093E3060D
S21400C4A01092DE068CED96E09093F1028093F002F7
S21400C4B080912001809302078091CA0380FF04C008
S21400C4C083E48093030703C080E280930307E09130
S21400C4D0BB04EE2381F18DECE89F812D1124869517
S21400C4E08695869590E3980F9093ED06880F982F83
S21400C4F0990F990F890F2E2F281B822F805D80930E
S21400C500EE068AE38093EF0641E1E49FF0011124F2
S21400C510E459F44FA0EFB6E080E097E024912D9325
S21400C5203196A817B907D1F780E280930007809369
S21400C53001078CE282C38091C103882369F0E2EF91
S21400C540FDE0ADEEB6E087E09EE024912D933196B7
S21400C550E817F907D1F76AC38091CB0385FF0DC0B2
S21400C560E8E0FEE0ADEEB6E08DE19EE024912D938E
S21400C5703196E817F907D1F75BC3809180048823CA
S21400C580B9F1EFEBFDE0ADEEB6E086EC9DE0249170
S21400C5902D933196E817F907D1F780915201805D07
S21400C5A08093F106EAEBF5E0A4EFB6E086EC95E0C2
S21400C5B021912D93E817F907D9F78091C90381FFD8
S21400C5C00EC082E48093FE068FE48093FF0681E42B
S21400C5D08093000784E5809301078CE22EC380E2F7
S21400C5E08093FF0680930007809301078CE225C3A3
S21400C5F080918C04882309F4DAC097E59093ED06C1
S21400C60090E59093EE0690E29093EF0630918D04BD
S21400C6102DEC329F412D112446954695469550E3C4
S21400C620540F5093F006440F542F550F550F450FD7
S21400C630341B305D3093F1063FE23093F206829F62
S21400C640212D112426952695269530E3320F30931A
S21400C650F306220F322F330F330F230F821B805D1A
S21400C6608093F4069093F5064091850450918604D5
S21400C670493E83E0580708F19A0136952795369586
S21400C680279536952795A5ECB0E20E94B3B1929512
S21400C69082958F7089279F70892720E3280F209323
S21400C6A0F60668EE73E0869F9001879F300D969F92
S21400C6B0300D1124421B530B03C080E28093F60614
S21400C6C045365105C0F09A0136952795369527953B
S21400C6D0ABE7B4E10E94B3B19695879520E3280FA7
S21400C6E02093F70664E6689F9001699F300D112439
S21400C6F0421B530B03C080E28093F7069A01ADEC11
S21400C700BCEC0E94B3B196958795969587959695BD
S21400C710879520E3280F2093F8069C01220F331FED
S21400C720880F991F880F991F880F991F820F931FD4
S21400C730481B590B405D4093F9068DE68093FA0638
S21400C74080E28093FB0680918B04853678F099E230
S21400C750899F912D112492959F7020E3290F209395
S21400C760FC0624E6929F8019112403C090E2909361
S21400C770FC069DEC899F912D11249695969596958D
S21400C78020E3290F2093FD06990F292F220F220F51
S21400C790920F891B805D8093FE0683E78093FF06D9
S21400C7A080E280930007809301078CE246C2809166
S21400C7B0B70484FF0DC0ECEDFDE0ADEEB6E081EF12
S21400C7C09DE024912D933196E817F907D1F732C2F0
S21400C7D08091EF0381111DC0E0E2FEE0ADEEB6E011
S21400C7E081E39EE024912D933196E817F907D1F75F
S21400C7F082E38093FD068EE28093FE0680E38093BC
S21400C800FF0688E38093000781E6809301078CE2A9
S21400C81014C28091C90381FF0DC0E6ECFDE0ADEEC9
S21400C820B6E08BED9DE024912D933196E817F9073D
S21400C830D1F70CC0EEE1FEE0ADEEB6E083E39EE09D
S21400C84024912D933196E817F907D1F78091C90303
S21400C85080FFF2C182E58093ED068CE2EEC1609126
S21400C860FE037091FF03809100049091010424E67A
S21400C87030E040E050E00E948BB12C503E4F3093A9
S21400C880CA072093C9078091B607811106C040DD0C
S21400C8909093CC078093CB0706C080E395E79093F0
S21400C8A0CC078093CB0788E78093CD078091D80884
S21400C8B08093CE078091D70881FF04C084E48093DC
S21400C8C0CF070BC08091D908833021F480E2809393
S21400C8D0CF0703C081E28093CF0784EB97E0909365
S21400C8E0F1028093F002809196028093DB0780919C
S21400C8F0CF078093DD078091DD089091DE089923AD
S21400C9000CF40196959587958093D0078CE295C197
S21400C910F0DB6091FE037091FF038091000490911C
S21400C920010424E630E040E050E00E948BB12C5039
S21400C9303E4F309395062093940680911A0190916D
S21400C9401B0190938F0680938E0680911A0190911A
S21400C9501B019093910680939006809165069091B6
S21400C960660699230CF40196959587958093800624
S21400C970809387068091DD089091DE0899230CF459
S21400C9800196AC0155954795409385062091DB08A6
S21400C9903091DC08ADECBCEC0E94B3B19295829568
S21400C9A08F7089279F7089278093860640938C0610
S21400C9B080938D068091B607811106C0A9DC9093FE
S21400C9C09D0680939C0606C080E395E790939D069F
S21400C9D080939C0688E780939E0680911A0190912A
S21400C9E01B019093990680939806809183048C5E31
S21400C9F080939206809184048C5E809393062091A7
S21400CA00190530911A05ADECBCEC0E94B3B19695B1
S21400CA108795969587959695879590939B06809390
S21400CA209A068091B60780937C06809115059091B2
S21400CA30160590939706809396068AE796E090935D
S21400CA40F1028093F00240915E0450915F049A01D7
S21400CA50A9E8B8E80E94B3B1969587959295829515
S21400CA608F7089279F7089278093A1066CE3689F43
S21400CA709001699F300D1124421B530B4093A20670
S21400CA808CE2DBC036DB2091DB083091DC08369583
S21400CA90279536952795ABE7B4E10E94B3B19695F6
S21400CAA087959093BC068093BB068091650690910F
S21400CAB0660699230CF40196959587958093AC06A7
S21400CAC080914E0190914F0199230CF40196959513
S21400CAD087958093AD068091800C8093B0068091F8
S21400CAE0DD089091DE0899230CF4019695958795BC
S21400CAF08093B1068091530190E020911A01309105
S21400CB001B01AC014E5F5F4F421753078CF4209118
S21400CB101A0130911B01A901481B590BCA01029743
S21400CB20982F990F890F8093B806853620F406C093
S21400CB301092B80603C084E68093B8068091BB04C2
S21400CB4090E09093BA068093B9066091FE037091C8
S21400CB50FF03809100049091010424E630E040E059
S21400CB6050E00E948BB12C503E4F3093BE0620936F
S21400CB70BD0680911A0190911B019093B306809395
S21400CB80B20680911A0190911B019093B50680938E
S21400CB90B4068091B607811106C0BADB9093C00632
S21400CBA08093BF0606C080E395E79093C006809307
S21400CBB0BF068091B60788588093C10680911A01F7
S21400CBC090911B019093C5068093C40680918304C0
S21400CBD08C5E8093B606809184048C5E8093B70644
S21400CBE02091190530911A05ADECBCEC0E94B3B14A
S21400CBF09695879596958795969587959093C7066B
S21400CC008093C6061092A806809115059091160589
S21400CC109093C3068093C20686EA96E09093F1024C
S21400CC208093F0028CE209C080E007C08CE205C069
S21400CC308CE203C08CE201C08CE2CF9108952F9263
S21400CC403F924F925F926F927F928F929F92AF9297
S21400CC50BF92CF92DF92EF92FF920F931F93CF93E4
S21400CC60DF9300D000D0CDB7DEB74091540350918B
S21400CC70550320917E0430917F04C901880F991FC7
S21400CC80880F991F880F991F821B930B840F951F7F
S21400CC9099230CF407969595879595958795959580
S21400CCA0879590937F0480937E048091760490E02D
S21400CCB08730910510F00C94977BFC01E85AFF4FE3
S21400CCC00C94A7B18091750491E0980F9093750429
S21400CCD090E08131910508F037C4FC01E15AFF4F1E
S21400CCE00C94A7B18091CB0385FF2BC080E00E94F7
S21400CCF0351580911A0190911B01E0911A01F0916F
S21400CD001B012AE030E0B9010E9456B19F938F9331
S21400CD10CF01B9010E9456B17F936F9383E09BE0E9
S21400CD209F938F938CE295E19F938F93E091780683
S21400CD30F091790609950FB6F894DEBF0FBECDBF09
S21400CD402AC080E00E94351580911A0190911B013F
S21400CD50E0911A01F0911B012AE030E0B9010E942F
S21400CD6056B19F938F93CF01B9010E9456B17F931E
S21400CD706F9386EF9AE09F938F938BE095E19F9356
S21400CD808F93E0917806F091790609950FB6F8949E
S21400CD90DEBF0FBECDBF80915C0680FF57C080917E
S21400CDA01B04882359F18AE00E94351580912001E2
S21400CDB01F928F936091FE037091FF038091000491
S21400CDC09091010424E630E040E050E00E948BB1F0
S21400CDD03F932F938AEE9AE09F938F938BE195E192
S21400CDE09F938F93E0917806F091790609950FB698
S21400CDF0F894DEBF0FBECDBF0C94997B8AE00E94EC
S21400CE0035156091FE037091FF03809100049091A8
S21400CE10010424E630E040E050E00E948BB13F93EE
S21400CE202F938FED9AE09F938F938BE095E19F93DE
S21400CE308F93E0917806F091790609950F900F9000
S21400CE400F900F900F900F900C94997B8AE00E94A1
S21400CE50351585ED9AE09F938F938BE095E19F9330
S21400CE608F93E0917806F091790609950F900F90D0
S21400CE700F900F900C94997B8091CB0385FF3FC059
S21400CE8085E10E94351540915E0450915F049A0139
S21400CE90A9E8B8E80E94B3B19695879592958295D1
S21400CEA08F7089279F7089276CE3689F9001699F20
S21400CEB0300D1124CA01821B930B9F938F939A0106
S21400CEC00E94B3B196958795929582958F70892723
S21400CED09F7089279F938F9388EC9AE09F938F93F8
S21400CEE08CE295E19F938F93E0917806F091790616
S21400CEF009950FB6F894DEBF0FBECDBF3EC085E1E4
S21400CF000E94351540915E0450915F049A01A9E88D
S21400CF10B8E80E94B3B196958795929582958F70E2
S21400CF2089279F7089276CE3689F9001699F300D61
S21400CF301124CA01821B930B9F938F939A010E9420
S21400CF40B3B196958795929582958F7089279F7035
S21400CF5089279F938F938BEB9AE09F938F938BE019
S21400CF6095E19F938F93E0917806F0917906099565
S21400CF700FB6F894DEBF0FBECDBF8FE10E94351509
S21400CF801F9280E68F93809166068F938091650648
S21400CF908F9380EB9AE09F938F938BE095E19F931E
S21400CFA08F93E0917806F091790609958091CA03EF
S21400CFB00FB6F894DEBF0FBECDBF80FF16C089E265
S21400CFC00E9435158EEA9AE09F938F938BE195E148
S21400CFD09F938F93E0917806F091790609950F90CC
S21400CFE00F900F900F900C94997B89E20E94351554
S21400CFF08CEA9AE09F938F938BE095E19F938F93B3
S21400D000E0917806F091790609950F900F900F90B1
S21400D0100F900C94997B8091CB0385FF1DC08AE20C
S21400D0200E943515E9E1F5E081818F9380818F9329
S21400D03084EA9AE09F938F938CE295E19F938F9377
S21400D040E0917806F091790609950F900F900F9071
S21400D0500F900F900F901CC08AE20E943515E9E1F0
S21400D060F5E081818F9380818F938CE99AE09F937E
S21400D0708F938BE095E19F938F93E0917806F091E4
S21400D080790609950F900F900F900F900F900F90C4
S21400D09086E30E94351540911505509116059A01B4
S21400D0A0ADECBCEC0E94B3B19695879596958795A6
S21400D0B0969587959C01220F331F880F991F880F1E
S21400D0C0991F880F991F820F931F9A01281B390BEF
S21400D0D0C9019F932F939A010E94B3B196958795A5
S21400D0E096958795969587959F938F9380E99AE076
S21400D0F09F938F938BE095E19F938F93E0917806B3
S21400D100F091790609950FB6F894DEBF0FBECDBF35
S21400D1100C94997B89E00E9435158EE89AE09F93DF
S21400D1208F930BE015E11F930F93E0917806F09133
S21400D130790609958EE10E9435158CE89AE09F9352
S21400D1408F931F930F93E0917806F09179060995D7
S21400D15083E30E9435158AE89AE09F938F931F9386
S21400D1600F93E0917806F091790609958FE30E9477
S21400D170351584E79AE09F938F931F930F93E09162
S21400D1807806F091790609958EE70E9435158EE5AA
S21400D1909AE09F938F931F930F93E0917806F091F8
S21400D1A0790609950FB6F894DEBF0FBECDBF0C9476
S21400D1B0997B8091A402882309F48EC08DE50E9495
S21400D1C035158CE59AE09F938F930BE015E11F933E
S21400D1D00F93E0917806F0917906099584E50E9410
S21400D1E035158091D8081F928F9383E59AE09F9318
S21400D1F08F931F930F93E0917806F0917906099527
S21400D2008EE50E9435152091DB083091DC08ADECE8
S21400D210BCEC0E94B3B196958795969587959695A2
S21400D22087959F938F9389E49AE09F938F931F939C
S21400D2300F93E0917806F091790609950FB6F89469
S21400D240DEBF0FBECDBF8091D908833079F58091BF
S21400D250D70881FF15C08BE50E94351586E49AE055
S21400D2609F938F93C8019F930F93E0917806F09158
S21400D270790609950F900F900F900F900C94997B5C
S21400D2808BE50E94351583E49AE09F938F938BE09D
S21400D29095E19F938F93E0917806F0917906099532
S21400D2A00F900F900F900F900C94997B8BE50E9437
S21400D2B0351580E49AE09F938F938CE295E19F93D7
S21400D2C08F93E0917806F091790609950F900F906C
S21400D2D00F900F900C94997B84E00E94B4600C949D
S21400D2E0997B8091A402882309F47FC080917404FE
S21400D2F0882309F452C089E60E9435158091BA0445
S21400D3001F928F9385E39AE09F938F930F2EFBE0F7
S21400D310EF2EF5E1FF2EF02DFF92EF92E0917806CA
S21400D320F0917906099585E70E9435158091960259
S21400D3301F928F931F9210E61F93EDEDF8E0818108
S21400D3408F9380818F9389E29AE09F938F93FF92C9
S21400D350EF92E0917806F0917906099582E70E94AF
S21400D36035158091B8041F928F931F921F9380915A
S21400D370B9041F928F9389E19AE09F938F93FF924F
S21400D380EF92E0917806F091790609950FB6F89439
S21400D390DEBF0FBECDBF0C94997B89E60E94351583
S21400D3A0809196021F928F931F9280E68F93EDEDE9
S21400D3B0F8E081818F9380818F938091DA081F92A5
S21400D3C08F9380E09AE09F938F938BE095E19F93F5
S21400D3D08F93E0917806F091790609950FB6F89448
S21400D3E0DEBF0FBECDBF0C94997B85E00E94B46073
S21400D3F00C94997B8091BB04882309F44FC09091CC
S21400D400ED02992309F18332F8F487E00E94B460B4
S21400D41083E90E9435158091BB041F928F9385EF98
S21400D42099E09F938F938BE195E19F938F93E09183
S21400D4307806F091790609950F900F900F900F904F
S21400D4400F900F900C94997B83E90E9435158FEE10
S21400D45099E09F938F930BE015E11F930F93E09154
S21400D4607806F091790609951F921F928091BB0469
S21400D470F1E18F9FC00111248459944F9F938F939D
S21400D4801F930F93E0917806F091790609950FB6F1
S21400D490F894DEBF0FBECDBF0C94997B8091CB0372
S21400D4A085FF16C084E90E9435158CED99E09F93A0
S21400D4B08F938BE095E19F938F93E0917806F091A0
S21400D4C0790609950F900F900F900F900C94997B0A
S21400D4D083E90E94351586EC99E09F938F938BE045
S21400D4E095E19F938F93E0917806F09179060995E0
S21400D4F00F900F900F900F900C94997B8091A90C31
S21400D500823041F40E943A1585E0809376041092AA
S21400D510750416C0863059F480917404882319F077
S21400D520109274040DC081E08093740409C08830A2
S21400D53039F40E943A1581E08093760410927504BF
S21400D5401092A90C0C94997B109275040C94997BFC
S21400D5508091750491E0980F9093750490E0813166
S21400D560910508F0E9C5FC01E059FF4F0C94A7B1FE
S21400D5708091CB0385FF5DC080E00E9435158091C9
S21400D5801A0190911B0100911A0110911B01E09164
S21400D5905E04F0915F04A9E1B5E011962C91119715
S21400D5A02F932C912F932AE030E0B9010E9456B1B8
S21400D5B09F938F93C801B9010E9456B17F936F93D2
S21400D5C09F01A9E8B8E80E94B3B196958795929511
S21400D5D082958F7089279F7089274CE3489F90011A
S21400D5E0499F300D1124CF01821B930B9F938F937D
S21400D5F09F010E94B3B196958795929582958F70FC
S21400D60089279F7089279F938F938BEA99E09F9332
S21400D6108F938CE295E19F938F93E0917806F0913B
S21400D620790609950FB6F894DEBF0FBECDBF0C94F1
S21400D630997B80E00E94351580911A0190911B011C
S21400D64000911A0110911B01E0915E04F0915F04B5
S21400D650A9E1B5E011962C9111972F932C912F9359
S21400D6602AE030E0B9010E9456B19F938F93C8011B
S21400D670B9010E9456B17F936F939F01A9E8B8E85D
S21400D6800E94B3B196958795929582958F7089275B
S21400D6909F7089274CE3489F9001499F300D1124C5
S21400D6A0CF01821B930B9F938F939F010E94B3B170
S21400D6B096958795929582958F7089279F70892772
S21400D6C09F938F9380E999E09F938F938BE095E1EA
S21400D6D09F938F93E0917806F091790609950FB69F
S21400D6E0F894DEBF0FBECDBF0C94997B85E10E94F7
S21400D6F035151F9280E68F93809166068F938091F2
S21400D70065068F9386E899E09F938F938BE095E16B
S21400D7109F938F93E0917806F09179060995809112
S21400D7205C060FB6F894DEBF0FBECDBF80FF52C0BA
S21400D73080911B04882339F18FE10E943515609192
S21400D740FE037091FF03809100049091010424E68B
S21400D75030E040E050E00E948BB13F932F938DE77E
S21400D76099E09F938F938BE195E19F938F93E09140
S21400D7707806F091790609950F900F900F900F900C
S21400D7800F900F903BC08FE10E9435156091FE030D
S21400D7907091FF03809100049091010424E630E02C
S21400D7A040E050E00E948BB13F932F9384E799E0CE
S21400D7B09F938F938BE095E19F938F93E0917806EC
S21400D7C0F091790609950F900F900F900F900F909B
S21400D7D00F9014C08FE10E9435158AE699E09F935A
S21400D7E08F938BE095E19F938F93E0917806F0916D
S21400D7F0790609950F900F900F900F9089E20E947E
S21400D8003515809120011F928F9387E699E09F93AC
S21400D8108F938BE095E19F938F93E0917806F0913C
S21400D820790609950F900F900F900F900F900F901C
S21400D8300C94997B8091A4028823A1F18BE20E942C
S21400D8403515809196021F928F932091DB083091B8
S21400D850DC08ADECBCEC0E94B3B196958795969526
S21400D8608795969587959F938F931F9280E68F93C3
S21400D870EDEDF8E081818F9380818F9380E599E0CC
S21400D8809F938F938BE095E19F938F93E09178061B
S21400D890F091790609950FB6F894DEBF0FBECDBF9E
S21400D8A00C94997B82E00E94B4600C94997B8FE381
S21400D8B00E9435154091150550911605E7E1F5E0F3
S21400D8C081818F9380818F939A01ADECBCEC0E948E
S21400D8D0B3B19695879596958795969587959C016D
S21400D8E0220F331F880F991F880F991F880F991FC3
S21400D8F0820F931FFA01E81BF90BCF019F93EF935A
S21400D9009A010E94B3B196958795969587959695B8
S21400D91087959F938F938CE399E09F938F938BE0EB
S21400D92095E19F938F93E0917806F091790609959B
S21400D9308091CA030FB6F894DEBF0FBECDBF80FF3E
S21400D94016C082E50E94351589E399E09F938F9370
S21400D9508BE195E19F938F93E0917806F09179069D
S21400D96009950F900F900F900F900C94997B82E57D
S21400D9700E94351586E399E09F938F938BE095E19F
S21400D9809F938F93E0917806F091790609950F9012
S21400D9900F900F900F900C94997B8091A40288238F
S21400D9A009F466C084E50E9435158091D8081F9258
S21400D9B08F938091DA081F928F9383E299E09F936A
S21400D9C08F938BE095E19F938F93E0917806F0918B
S21400D9D0790609950FB6F894DEBF0FBECDBF8091CD
S21400D9E0D9088330A9F484E60E9435158DE199E0C4
S21400D9F09F938F938BE095E19F938F93E0917806AA
S21400DA00F091790609950F900F900F900F9014C023
S21400DA1084E60E94351587E199E09F938F938CE208
S21400DA2095E19F938F93E0917806F091790609959A
S21400DA300F900F900F900F908091D70881FD02C035
S21400DA400C94997B84E60E94351581E199E09F93BA
S21400DA508F938BE095E19F938F93E0917806F091FA
S21400DA60790609950F900F900F900F900C94997B64
S21400DA7084E50E9435158BEF98E09F938F938BE09B
S21400DA8095E19F938F93E0917806F091790609953A
S21400DA900F900F900F900F900C94997B80917304C9
S21400DAA0882309F4C6C089E60E943515409078069A
S21400DAB05090790683E00E94CE216C0183E00E949C
S21400DAC0CE214C0182E00E94CE217C0182E00E94A1
S21400DAD0CE215C0181E00E94CE218C0181E00E9473
S21400DAE0CE213C0180E00E94CE211C0180E00E94F5
S21400DAF0CE21AC019601ADECBCEC0E94B3B196957C
S21400DB00879596958795969587959C01220F331F46
S21400DB10880F991F880F991F880F991F820F931FD0
S21400DB20C81AD90ADF92CF9294010E94B3B1969593
S21400DB30879596958795969587959F938F9397014A
S21400DB400E94B3B1969587959695879596958795F5
S21400DB509C01220F331F880F991F880F991F880F6B
S21400DB60991F820F931FE81AF90AFF92EF92950108
S21400DB700E94B3B1969587959695879596958795C5
S21400DB809F938F9398010E94B3B19695879596952B
S21400DB908795969587959C01220F331F880F991FAE
S21400DBA0880F991F880F991F820F931F081B190B48
S21400DBB01F930F9393010E94B3B196958795969500
S21400DBC08795969587959F938F9391010E94B3B101
S21400DBD09695879596958795969587959C01220F9D
S21400DBE0331F880F991F880F991F880F991F820F60
S21400DBF0931F281A390A3F922F929A010E94B3B1B6
S21400DC009695879596958795969587959F938F93E6
S21400DC108EED98E09F938F938BE095E19F938F9383
S21400DC20F20109950FB6F894DEBF0FBECDBF0C9477
S21400DC30997B89E60E9435151F9280E68F93809126
S21400DC40CB091F928F938091BC091F928F9380916E
S21400DC50AD091F928F9380919E091F928F938BEC34
S21400DC6098E09F938F938BE095E19F938F93E0913D
S21400DC707806F091790609950FB6F894DEBF0FBEC8
S21400DC80CDBF0C94997B80917304882309F44AC114
S21400DC9080913D05843029F486E00E94B4600C949F
S21400DCA0997B863009F042C08EE70E943515A09019
S21400DCB07806B090790685E00E94CE216C0185E05A
S21400DCC00E94CE217C0184E00E94CE218C0184E05B
S21400DCD00E94CE21FC012AE030E0C601B9010E9474
S21400DCE042B19F938F93C701B9010E9442B17F93BF
S21400DCF06F93C801B9010E9442B19F938F93CF01E1
S21400DD00B9010E9442B17F936F938CEB98E09F938A
S21400DD108F938BE095E19F938F93F50109950FB64E
S21400DD20F894DEBF0FBECDBF0C94997B873010F4FD
S21400DD300C94997B8EE70E94351580917806909119
S21400DD4079069A83898388E00E94CE215C0188E068
S21400DD500E94CE214C0187E00E94CE216C0187E014
S21400DD600E94CE213C0186E00E94CE217C0186E006
S21400DD700E94CE212C0185E00E94CE218C0185E0F8
S21400DD800E94CE211C0184E00E94CE219C838B83BE
S21400DD9084E00E94CE21AC019501ADECBCEC0E9463
S21400DDA0B3B19695879596958795969587959C0198
S21400DDB0220F331F880F991F880F991F880F991FEE
S21400DDC0820F931FA81AB90ABF92AF9294010E94BD
S21400DDD0B3B19695879596958795969587959F93D3
S21400DDE08F9396010E94B3B19695879596958795E1
S21400DDF0969587959C01220F331F880F991F880FD1
S21400DE00991F880F991F820F931FC81AD90ADF928D
S21400DE10CF9293010E94B3B1969587959695879574
S21400DE20969587959F938F9397010E94B3B1969589
S21400DE30879596958795969587959C01220F331F13
S21400DE40880F991F880F991F880F991F820F931F9D
S21400DE50E81AF90AFF92EF9292010E94B3B19695E2
S21400DE60879596958795969587959F938F93980116
S21400DE700E94B3B1969587959695879596958795C2
S21400DE809C01220F331F880F991F880F991F880F38
S21400DE90991F820F931F081B190B1F930F93910155
S21400DEA00E94B3B196958795969587959695879592
S21400DEB09F938F932B813C810E94B3B19695879553
S21400DEC096958795969587959C01220F331F880F08
S21400DED0991F880F991F880F991F820F931F2B81F8
S21400DEE03C81281B390B3F932F939A010E94B3B1B4
S21400DEF09695879596958795969587959F938F93F4
S21400DF008FE998E09F938F938BE095E19F938F9393
S21400DF10E981FA8109950FB6F894DEBF0FBECDBF32
S21400DF200C94997B80913D05843029F486E00E940C
S21400DF30B4600C94997B863011F58EE70E943515F7
S21400DF401F9280E68F938091E9091F928F938091AC
S21400DF50DA091F928F938CE898E09F938F938BE05B
S21400DF6095E19F938F93E0917806F0917906099555
S21400DF700FB6F894DEBF0FBECDBF0C94997B8730EA
S21400DF8010F40C94997B8EE70E9435151F9280E65C
S21400DF908F938091070A1F928F938091F8091F92A2
S21400DFA08F938091E9091F928F938091DA091F92CF
S21400DFB08F9389E798E09F938F938BE095E19F93EB
S21400DFC08F93E0917806F091790609950FB6F8944C
S21400DFD0DEBF0FBECDBF0C94997B8091BB04882317
S21400DFE009F44FC09091ED02992309F18332F8F4B9
S21400DFF087E00E94B46083E90E9435158091BB04D7
S21400E0001F928F938EE698E09F938F938BE195E116
S21400E0109F938F93E0917806F091790609950F907B
S21400E0200F900F900F900F900F900C94997B83E9B0
S21400E0300E94351588E698E09F938F930BE015E1D4
S21400E0401F930F93E0917806F091790609951F9239
S21400E0501F928091BB04F1E18F9FC0011124845967
S21400E060944F9F938F931F930F93E0917806F091B0
S21400E070790609950FB6F894DEBF0FBECDBF0C9497
S21400E080997B8091CB0385FF16C084E90E943515E5
S21400E09085E598E09F938F938BE095E19F938F9310
S21400E0A0E0917806F091790609950F900F900F9001
S21400E0B00F900C94997B83E90E9435158FE398E0C6
S21400E0C09F938F938BE095E19F938F93E0917806D3
S21400E0D0F091790609950F900F900F900F900C9481
S21400E0E0997B8091A90C863089F4809173048823EB
S21400E0F019F01092730403C081E08093730485E0E6
S21400E1000E94B46086E00E94B46012C0883041F479
S21400E1100E943A1582E0809376041092750408C037
S21400E120813031F40E943A151092760410927504EC
S21400E1301092A90C0C94997B109275040C94997B00
S21400E1408091750491E0980F9093750490E081316A
S21400E150910508F065C3FC01EF57FF4F0C94A7B17B
S21400E16080E00E9435158AEB95E09F938F9380910F
S21400E17052011F928F9380E398E09F938F938BE1D9
S21400E18095E19F938F93E0917806F0917906099533
S21400E1900FB6F894DEBF0FBECDBF0C94997B85E119
S21400E1A00E9435152091530188EC95E09F938F933C
S21400E1B08DEC289F812D1124869586958695982F1F
S21400E1C0990F392F330F330F930F291B1F922F935D
S21400E1D01F928F938FE198E09F938F938BE095E14A
S21400E1E09F938F93E0917806F091790609950FB684
S21400E1F0F894DEBF0FBECDBF0C94997B8AE20E94D6
S21400E20035158AE198E09F938F938BE095E19F9375
S21400E2108F93E0917806F0917906099580915C06D7
S21400E2200F900F900F900F9080FF7AC080914B0553
S21400E23081FD19C08091E1031F928F9380E198E0E1
S21400E2409F938F938BE095E19F938F93E091780651
S21400E250F091790609950F900F900F900F900F9000
S21400E2600F900C94997B8091E103833390F089E0C2
S21400E27098E09F938F938BE095E19F938F93E09127
S21400E2807806F091790609950F900F900F900F90F1
S21400E29011C082E098E09F938F938BE095E19F9367
S21400E2A08F93E0917806F091790609950F900F907C
S21400E2B00F900F908091400680FF19C08091E10377
S21400E2C01F928F938CEF97E09F938F938BE095E14F
S21400E2D09F938F93E0917806F091790609950F90B9
S21400E2E00F900F900F900F900F900C94997B809149
S21400E2F0E1031F928F9386EF97E09F938F938BE0B7
S21400E30095E19F938F93E0917806F09179060995B1
S21400E3100F900F900F900F900F900F900C94997B8A
S21400E3208DEE97E09F938F938BE095E19F938F936D
S21400E330E0917806F091790609950F900F900F906E
S21400E3400F900C94997B8FE30E94351589EE97E029
S21400E3509F938F938BE095E19F938F93E091780640
S21400E360F091790609950F900F900F900F9080917D
S21400E370A205811113C080EE97E09F938F938BE0E8
S21400E38095E19F938F93E0917806F0917906099531
S21400E3900F900F900F900F900C94997B8091D8035C
S21400E3A0882391F089ED97E09F938F938BE095E11A
S21400E3B09F938F93E0917806F091790609950F90D8
S21400E3C00F900F900F9011C082ED97E09F938F9360
S21400E3D08BE095E19F938F93E0917806F091790614
S21400E3E009950F900F900F900F908091B80586FDBD
S21400E3F002C00C94997B8BEC97E09F938F938BE0F5
S21400E40095E19F938F93E0917806F09179060995B0
S21400E4100F900F900F900F900C94997B84E50E94BC
S21400E420351586EC97E09F938F938BE095E19F934D
S21400E4308F93E0917806F0917906099580915C06B5
S21400E4400F900F900F900F9085FD12C08DEB97E008
S21400E4509F938F938BE095E19F938F93E09178063F
S21400E460F091790609950F900F900F900F9053C07A
S21400E47080918F050E940E34823390F486EB97E0ED
S21400E4809F938F938BE095E19F938F93E09178060F
S21400E490F091790609950F900F900F900F903BC062
S21400E4A0843B90F08FEA97E09F938F938BE095E103
S21400E4B09F938F93E0917806F091790609950F90D7
S21400E4C00F900F900F9027C08091B80585FF12C05F
S21400E4D088EA97E09F938F938BE095E19F938F93C5
S21400E4E0E0917806F091790609950F900F900F90BD
S21400E4F00F9011C081EA97E09F938F938BE095E190
S21400E5009F938F93E0917806F091790609950F9086
S21400E5100F900F900F908091A605882311F40C940D
S21400E520997B8EE50E9435158091A6051F928F93E4
S21400E53086E997E09F938F938BE095E19F938F9367
S21400E540E0917806F091790609950F900F900F905C
S21400E5500F900F900F900C94997B89E60E943515CA
S21400E5608CE897E09F938F938BE095E19F938F9332
S21400E570E0917806F091790609958091A5050F90AF
S21400E5800F900F900F908823B9F01F928F9388E812
S21400E59097E09F938F938BE095E19F938F93E09105
S21400E5A07806F091790609950F900F900F900F90CE
S21400E5B00F900F900C94997B82E897E09F938F932F
S21400E5C08BE095E19F938F93E0917806F091790622
S21400E5D009950F900F900F900F900C94997B809157
S21400E5E07204811157C08EE70E943515E0914005F0
S21400E5F0F0E0EE0FFF1FEF5CF74F20813181E091D6
S21400E6003F05F0E0EE0FFF1FEF5CF74F8081918132
S21400E61040912F011F924F933F932F939F938F9379
S21400E6208EE697E09F938F930BE015E11F930F9371
S21400E630E0917806F0917906099583E90E943515F0
S21400E640E0914205F0E0EE0FFF1FEF5CF74F2081F0
S21400E6503181E0914105F0E0EE0FFF1FEF5CF74FD0
S21400E660808191813F932F9381589F4F9F938F93E3
S21400E6708FE597E09F938F931F930F93E091780613
S21400E680F091790609950FB6F894DEBF0FBECDBFA0
S21400E6900C94997B8EE70E943515809107041F9293
S21400E6A08F93809106041F928F93809105041F928A
S21400E6B08F938BE497E09F938F930BE015E11F9366
S21400E6C00F93E0917806F0917906099583E90E9408
S21400E6D0351580910A041F928F93809109041F922A
S21400E6E08F93809108041F928F9387E397E09F9300
S21400E6F08F931F930F93E0917806F0917906099512
S21400E7000FB6F894DEBF0FBECDBF0C94997B8091F8
S21400E710ED02882311F40C94997B8EE70E94351540
S21400E72080915C0686FD11C088E297E09F938F93E8
S21400E7308CE295E19F938F93E0917806F0917906AD
S21400E74009950F900F900F900F908091B6058F70DF
S21400E75089F08EE197E09F938F938CE295E19F93EB
S21400E7608F93E0917806F091790609950F900F90B7
S21400E7700F900F9080915C0682FF11C089E197E0B0
S21400E7809F938F938CE295E19F938F93E091780609
S21400E790F091790609950F900F900F900F90809149
S21400E7A05C0683FDC6C78BE097E09F938F938CE251
S21400E7B095E19F938F93E0917806F09179060995FD
S21400E7C00F900F900F900F90B4C78091A90C8630D1
S21400E7D089F480917204882319F01092720403C0A1
S21400E7E081E08093720486E00E94B46087E00E9415
S21400E7F0B46013C0883041F40E943A1583E08093D9
S21400E80076041092750409C0813039F40E943A15D6
S21400E81081E080937604109275041092A90C89C743
S21400E8201092750486C78091750491E0980F9093B6
S21400E8307504823009F465C028F4882339F08130E5
S21400E84049F1AAC1863008F498C0A6C180E00E94AB
S21400E85035158CEF96E09F938F930BE015E11F9391
S21400E8600F93E0917806F0917906099585E10E946C
S21400E870351587EE96E09F938F931F930F93E09145
S21400E8807806F091790609950FB6F894DEBF0FBEAC
S21400E890CDBF4FC780918C048823F1F08EE70E948D
S21400E8A0351580918C041F928F9380918D041F9252
S21400E8B08F9385ED96E09F938F938BE095E19F93E2
S21400E8C08F93E0917806F091790609950FB6F89443
S21400E8D0DEBF0FBECDBF2DC78EE70E94351582EC7A
S21400E8E096E09F938F938BE095E19F938F93E091B3
S21400E8F07806F091790609950F900F900F900F907B
S21400E90018C783E90E94351580911A0190911B0162
S21400E910E0911A01F0911B012AE030E0B9010E9453
S21400E92056B19F938F93CF01B9010E9456B17F9342
S21400E9306F9388EB96E09F938F930BE015E11F9300
S21400E9400F93E0917806F091790609958EE90E947A
S21400E950351582ED96E09F938F9385EB96E09F9317
S21400E9608F931F930F93E0917806F091790609959F
S21400E9700FB6F894DEBF0FBECDBF80915601882338
S21400E98009F44CC0809171048823C9F08091ED028F
S21400E9908823A9F089E40E94351581EB96E09F93C1
S21400E9A08F938BE095E19F938F93E0917806F0919B
S21400E9B0790609950F900F900F900F901AC089E472
S21400E9C00E943515809156011F928F938AEA96E031
S21400E9D09F938F938BE095E19F938F93E0917806BA
S21400E9E0F091790609950F900F900F900F900F9069
S21400E9F00F908FE30E9435158FE996E09F938F93D3
S21400EA008BE095E19F938F93E0917806F0917906DD
S21400EA1009950F900F900F900F9014C08FE30E94EF
S21400EA20351580E996E09F938F938BE095E19F9351
S21400EA308F93E0917806F091790609950F900F90E4
S21400EA400F900F9080918904811115C084E50E9473
S21400EA50351582E896E09F938F938BE095E19F9320
S21400EA608F93E0917806F091790609950F900F90B4
S21400EA700F900F9058C08091D908833009F03FC09E
S21400EA80809171048823C9F0809156018823A9F0EB
S21400EA9084E50E94351584E796E09F938F938BE07C
S21400EAA095E19F938F93E0917806F091790609950A
S21400EAB00F900F900F900F9014C084E50E943515AC
S21400EAC086E696E09F938F938BE095E19F938F93D6
S21400EAD0E0917806F091790609950F900F900F90C7
S21400EAE00F908091A90C8630F1F48091560188230E
S21400EAF019F0806880938A041092710414C084E52B
S21400EB000E94351588E596E09F938F938BE095E1FC
S21400EB109F938F93E0917806F091790609950F9070
S21400EB200F900F900F908091A90C843079F480910B
S21400EB30560190918904891708F591E09093710425
S21400EB408F5F809356011092ED0218C0823069F4F0
S21400EB5080915601823090F091E09093710481503C
S21400EB60809356011092ED0209C0883039F40E9455
S21400EB703A1584E080937604109275048091A90C6F
S21400EB80813039F40E943A1582E080937604109220
S21400EB9075041092A90CCDC510927504CAC5809153
S21400EBA0750491E0980F90937504823009F465C05F
S21400EBB028F4882339F0813049F190C1863008F472
S21400EBC098C08CC180E00E94351589E496E09F933A
S21400EBD08F930BE015E11F930F93E0917806F09169
S21400EBE07906099585E10E94351587E396E09F939F
S21400EBF08F931F930F93E0917806F091790609950D
S21400EC000FB6F894DEBF0FBECDBF93C580918C04BF
S21400EC108823F1F08EE70E94351580918C041F92B0
S21400EC208F9380918D041F928F9385E296E09F9339
S21400EC308F938BE095E19F938F93E0917806F09108
S21400EC40790609950FB6F894DEBF0FBECDBF71C525
S21400EC508EE70E94351583E196E09F938F938BE0B5
S21400EC6095E19F938F93E0917806F0917906099548
S21400EC700F900F900F900F905CC583E90E9435159A
S21400EC8080911A0190911B01E0911A01F0911B01ED
S21400EC902AE030E0B9010E9456B19F938F93CF01CE
S21400ECA0B9010E9456B17F936F9389E096E09F93D7
S21400ECB08F930BE015E11F930F93E0917806F09188
S21400ECC0790609958EE90E94351582ED96E09F93A8
S21400ECD08F9386E096E09F938F931F930F93E09118
S21400ECE07806F091790609950FB6F894DEBF0FBE48
S21400ECF0CDBF8FE30E9435158BEF95E09F938F93E2
S21400ED008BE095E19F938F93E0917806F0917906DA
S21400ED1009950F900F900F900F90809155018823C2
S21400ED20C1F1809170048823C9F08091ED02882398
S21400ED30A9F089E40E94351587EF95E09F938F939D
S21400ED408BE095E19F938F93E0917806F09179069A
S21400ED5009950F900F900F900F902FC089E40E9496
S21400ED603515809155011F928F938DEE95E09F93F8
S21400ED708F938BE095E19F938F93E0917806F091C7
S21400ED80790609950F900F900F900F900F900F90A7
S21400ED9014C089E40E94351589EE95E09F938F9301
S21400EDA08BE095E19F938F93E0917806F09179063A
S21400EDB009950F900F900F900F9080918904811104
S21400EDC015C084E50E9435158BED95E09F938F93D3
S21400EDD08BE095E19F938F93E0917806F09179060A
S21400EDE009950F900F900F900F9031C0809170048E
S21400EDF08823C9F0809155018823A9F084E50E94F4
S21400EE0035158DEC95E09F938F938BE095E19F935E
S21400EE108F93E0917806F091790609950F900F9000
S21400EE200F900F9014C084E50E9435158FEB95E087
S21400EE309F938F938BE095E19F938F93E091780655
S21400EE40F091790609950F900F900F900F90809192
S21400EE50A90C843079F49091550120918904921779
S21400EE6010F521E0209370049F5F90935501109257
S21400EE70ED0219C0823069F4809155018230F0F0BD
S21400EE8091E0909370048150809355011092ED02AA
S21400EE9015C0863041F480915501811180938A0413
S21400EEA0109270040BC0883049F40E943A15809185
S21400EEB076048F5F80937604109275048091A90C77
S21400EEC0813049F40E943A158091760481508093EF
S21400EED07604109275041092A90C2BC41092750437
S21400EEE028C48091750491E0980F90937504823041
S21400EEF009F481C028F4882339F08130D1F0C9C1E3
S21400EF00863008F4C7C0C5C180E00E94351589EA7E
S21400EF1095E09F938F938BE095E19F938F93E0917D
S21400EF207806F091790609950F900F900F900F9044
S21400EF3000C48AE20E94351580911A0190911B0147
S21400EF40E0911A01F0911B012AE030E0B9010E941D
S21400EF5056B19F938F93CF01B9010E9456B17F930C
S21400EF606F938EE995E09F938F930BE015E11F93C7
S21400EF700F93E0917806F091790609958FE30E9449
S21400EF80351540915E0450915F049A01A9E8B8E8EF
S21400EF900E94B3B196958795929582958F70892732
S21400EFA09F7089276CE3689F9001699F300D11243C
S21400EFB0CA01821B930B9F938F939A010E94B3B151
S21400EFC096958795929582958F7089279F70892749
S21400EFD09F938F9383E995E09F938F931F930F934F
S21400EFE0E0917806F091790609950FB6F894DEBFA1
S21400EFF00FBECDBF9EC385E30E9435156091FE030C
S21400F0007091FF03809100049091010424E630E0A3
S21400F01040E050E00E948BB13F932F938AE895E042
S21400F0209F938F930BE015E11F930F93E091780663
S21400F030F091790609958AE40E9435151F9280E6BC
S21400F0408F93809166068F93809165068F938FE7E6
S21400F05095E09F938F931F930F93E0917806F0911E
S21400F060790609958FE50E94351580912F011F922C
S21400F0708F9386E795E09F938F931F930F93E0916E
S21400F0807806F091790609950FB6F894DEBF0FBEA4
S21400F090CDBF4FC38EE70E94351589E695E09F9356
S21400F0A08F938BE095E19F938F93E0917806F09194
S21400F0B0790609950F900F900F900F9080916F042E
S21400F0C08823C1F180916E048823C9F08091ED02F7
S21400F0D08823A9F08BE80E94351585E695E09F9376
S21400F0E08F938BE095E19F938F93E0917806F09154
S21400F0F0790609950F900F900F900F902FC08BE810
S21400F1000E94351580916F041F928F9380E695E0DC
S21400F1109F938F938BE095E19F938F93E091780672
S21400F120F091790609950F900F900F900F900F9021
S21400F1300F9014C08BE80E9435158DE595E09F93DF
S21400F1408F938BE095E19F938F93E0917806F091F3
S21400F150790609950F900F900F900F908091D9081F
S21400F160833009F045C080918904811115C083E978
S21400F1700E9435158FE495E09F938F938BE095E181
S21400F1809F938F93E0917806F091790609950F90FA
S21400F1900F900F900F9020C080916E048823C9F0C6
S21400F1A080916F048823A9F083E90E94351580E4D6
S21400F1B095E09F938F938BE095E19F938F93E091DB
S21400F1C07806F091790609950F900F900F900F90A2
S21400F1D003C087E00E94B4608091A90C8630E1F4F9
S21400F1E080916F0481118093870410926E0414C07E
S21400F1F083E90E94351582E395E09F938F938BE019
S21400F20095E19F938F93E0917806F09179060995A2
S21400F2100F900F900F900F908091A90C843079F486
S21400F22080916F0490918904891718F591E0909366
S21400F2306E048F5F80936F041092ED021AC08230C6
S21400F24069F480916F048230A0F091E090936E0490
S21400F250815080936F041092ED020BC0883049F401
S21400F2600E943A15809176048F5F80937604109200
S21400F27075048091A90C813049F40E943A1580915A
S21400F2807604815080937604109275041092A90C2F
S21400F29050C2109275044DC28091750491E0980F8B
S21400F2A090937504823009F4ABC028F4882339F0B3
S21400F2B08130D1F039C2863008F436C135C280E0DC
S21400F2C00E9435158DE195E09F938F938BE095E135
S21400F2D09F938F93E0917806F091790609950F90A9
S21400F2E00F900F900F9025C28AE20E9435158091EC
S21400F2F01A0190911B01E0911A01F0911B012AE07E
S21400F30030E0B9010E9456B19F938F93CF01B901A7
S21400F3100E9456B17F936F9382E195E09F938F93FF
S21400F3200BE015E11F930F93E0917806F0917906B4
S21400F33009958FE30E94351540915E0450915F0455
S21400F3409A01A9E8B8E80E94B3B196958795929578
S21400F35082958F7089279F7089276CE3689F90013C
S21400F360699F300D1124CA01821B930B9F938F93C4
S21400F3709A010E94B3B196958795929582958F7063
S21400F38089279F7089279F938F9387E095E09F93A7
S21400F3908F931F930F93E0917806F0917906099565
S21400F3A00FB6F894DEBF0FBECDBF80918C048823C5
S21400F3B019F189E60E943515809186048F93809115
S21400F3C085048F9380918C041F928F9380918D0477
S21400F3D01F928F9382EF94E09F938F93C8019F9321
S21400F3E00F93E0917806F091790609950FB6F89498
S21400F3F0DEBF0FBECDBF9DC185E00E94B46099C13F
S21400F4008091F3038823C9F182E30E943515609149
S21400F410F4037091F5038091F6039091F7030F2E95
S21400F420F4E6CF2ED12CE12CF12CF02DA70196017D
S21400F4300E948BB13F932F936091FE037091FF0360
S21400F4408091000490910104A70196010E948BB15F
S21400F4503F932F9385EE94E09F938F938BE095E1F7
S21400F4609F938F93E0917806F091790609950FB6F1
S21400F470F894DEBF0FBECDBF26C082E30E943515CE
S21400F4806091FE037091FF03809100049091010447
S21400F49024E630E040E050E00E948BB13F932F938B
S21400F4A088ED94E09F938F938BE095E19F938F93E5
S21400F4B0E0917806F091790609950F900F900F90DD
S21400F4C00F900F900F9087E40E9435151F9280E6EC
S21400F4D08F93809166068F93809165068F938DEC4F
S21400F4E094E09F938F930BE015E11F930F93E091A9
S21400F4F07806F091790609958CE50E94351580917D
S21400F5002F011F928F9384EC94E09F938F931F9309
S21400F5100F93E0917806F091790609950FB6F89466
S21400F520DEBF0FBECDBF05C18091A90C882339F080
S21400F530EAE6FCE0808191810196918380838EE7E4
S21400F5400E94351588EB94E09F938F938BE095E1AE
S21400F5509F938F93E0917806F091790609950F9026
S21400F5600F900F900F9080916D048823C1F18091C9
S21400F5706C048823C9F08091ED028823A9F089E8FD
S21400F5800E94351584EB94E09F938F938BE095E172
S21400F5909F938F93E0917806F091790609950F90E6
S21400F5A00F900F900F902FC089E80E94351580911C
S21400F5B06D041F928F9380EB94E09F938F938BE064
S21400F5C095E19F938F93E0917806F09179060995DF
S21400F5D00F900F900F900F900F900F9014C089E827
S21400F5E00E9435158DEA94E09F938F938BE095E10A
S21400F5F09F938F93E0917806F091790609950F9086
S21400F6000F900F900F9080918904811115C083E9A7
S21400F6100E9435158FE994E09F938F938BE095E1D8
S21400F6209F938F93E0917806F091790609950F9055
S21400F6300F900F900F903EC080916C048823C9F005
S21400F64080916D048823A9F083E90E94351581E92D
S21400F65094E09F938F938BE095E19F938F93E09137
S21400F6607806F091790609950F900F900F900F90FD
S21400F67021C087E00E94B46080918C048823D1F07A
S21400F68083E90E94351582ED96E09F938F938EE86E
S21400F69094E09F938F938BE095E19F938F93E091F7
S21400F6A07806F091790609950F900F900F900F90BD
S21400F6B00F900F908091A90C843079F490916D048E
S21400F6C020918904921710F521E020936C049F5F27
S21400F6D090936D041092ED0219C0823069F4809107
S21400F6E06D048230F0F091E090936C04815080932A
S21400F6F06D041092ED0215C0863041F480916D04C1
S21400F70081118093880410926C040BC0813049F4F8
S21400F7100E943A1580917604815080937604109268
S21400F72075041092A90C05C01092750402C01092C0
S21400F73076040F900F900F900F90DF91CF911F914E
S21400F7400F91FF90EF90DF90CF90BF90AF909F907B
S21400F7508F907F906F905F904F903F902F9008957E
S21400F760CF93DF9380E00E947B0F8091CB091F929E
S21400F7708F938091BC091F928F938091AD091F9241
S21400F7808F9380919E091F928F9382E490E19F93BE
S21400F7908F93CEE6DFE0DF93CF93E0917806F0918B
S21400F7A07906099580E10E947B0F8091070A1F92D7
S21400F7B08F938091F8091F928F938091E9091F9289
S21400F7C08F938091DA091F928F9382E390E19F9343
S21400F7D08F93DF93CF93E0917806F09179060995A1
S21400F7E080913D052DB73EB7285E3F4F0FB6F89483
S21400F7F03EBF0FBE2DBF8530A0F480E10E947B0F78
S21400F80081E290E19F938F93CE019F93CF93E091F7
S21400F8107806F091790609950F900F900F900F904B
S21400F8201BC08730C8F488E10E947B0F1F928FEDC3
S21400F8308F9388E190E19F938F938EE69FE09F934E
S21400F8408F93E0917806F091790609950F900F90C6
S21400F8500F900F900F900F90DF91CF910895CF9358
S21400F860DF9380E00E947B0F4091150550911605AE
S21400F870C0911A01D0911B01E0911A01F0911B0171
S21400F8809A01ADECBCEC0E94B3B19C01369527956D
S21400F8903695279536952795C901880F991F220F0B
S21400F8A0331F220F331F220F331F280F391FCA01A1
S21400F8B0821B930B9C013F938F939A010E94B3B1D6
S21400F8C09695879596958795969587959F938F930A
S21400F8D02AE030E0CE01B9010E9456B19F938F9383
S21400F8E0CF01B9010E9456B17F936F9386E090E1F5
S21400F8F09F938F93CEE6DFE0DF93CF93E091780679
S21400F900F0917906099580E10E947B0FE9E1F5E028
S21400F91081818F9380818F93E7E1F5E081818F93DA
S21400F92080818F938AEF9FE09F938F93DF93CF938F
S21400F930E0917806F091790609958DB79EB74496C2
S21400F9400FB6F8949EBF0FBE8DBFDF91CF9108957E
S21400F9501F93CF93DF9380E00E947B0F1F921FEDD3
S21400F9601F9380914F018F9380914E018F938091CA
S21400F970BA041F928F9387EE9FE09F938F93CEE6F5
S21400F980DFE0DF93CF93E0917806F0917906099552
S21400F99080E10E947B0F8091B8041F928F931F9284
S21400F9A01F938091B9041F928F9384ED9FE09F93DD
S21400F9B08F93DF93CF93E0917806F09179060995BF
S21400F9C08DB79EB744960FB6F8949EBF0FBE8DBFF8
S21400F9D0DF91CF911F910895CF93DF9380E00E942F
S21400F9E07B0F85EC9FE09F938F93CEE6DFE0DF935F
S21400F9F0CF93E0917806F0917906099580E10E9410
S21400FA007B0F87EB9FE09F938F93DF93CF93E091DD
S21400FA107806F091790609958DB79EB708960FB6C9
S21400FA20F8949EBF0FBE8DBFDF91CF910895CF9300
S21400FA30DF9380E00E947B0F88EA9FE09F938F937E
S21400FA40CEE6DFE0DF93CF93E0917806F09179067B
S21400FA50099580E10E947B0F8AE99FE09F938F9330
S21400FA60DF93CF93E0917806F091790609958DB7EC
S21400FA709EB708960FB6F8949EBF0FBE8DBFDF9157
S21400FA80CF91089580E00E947B0F89E89FE09F93C6
S21400FA908F938EE69FE09F938F93E0917806F09188
S21400FAA0790609950F900F900F900F90089580E0BB
S21400FAB00E947B0F88E79FE09F938F938EE69FE0E0
S21400FAC09F938F93E0917806F091790609950F90B1
S21400FAD00F900F900F9008951F93CF93DF93182FDA
S21400FAE080E00E947B0F2CE63FE03F932F932EE6AC
S21400FAF03FE03F932F93E0917806F09179060995C1
S21400FB000F900F900F900F9080918904811115C06F
S21400FB1080E10E947B0F81E69FE09F938F938EE6A5
S21400FB209FE09F938F93E0917806F0917906099570
S21400FB300F900F900F900F90ABC08091D908833034
S21400FB40A9F080E10E947B0F86E59FE09F938F934C
S21400FB508EE69FE09F938F93E0917806F09179066A
S21400FB6009950F900F900F900F9092C08BE00E9417
S21400FB707B0F80915C011F928F9322E53FE03F93BD
S21400FB802F93CEE6DFE0DF93CF93E0917806F091F7
S21400FB907906099580E10E947B0F6091FE037091C3
S21400FBA0FF03809100049091010424E630E040E0D9
S21400FBB050E00E948BB13F932F93809166068F93FF
S21400FBC0809165068F9321E43FE03F932F93DF9368
S21400FBD0CF93E0917806F091790609958DB79EB798
S21400FBE00E960FB6F8949EBF0FBE8DBF80919404FC
S21400FBF08823A1F08EE00E947B0F8EE39FE09F9308
S21400FC008F93CE019F93CF93E0917806F09179067B
S21400FC1009950F900F900F900F9014C08EE00E94E1
S21400FC207B0F8BE39FE09F938F938EE69FE09F93DF
S21400FC308F93E0917806F091790609950F900F90D2
S21400FC400F900F901F3269F480915C0190918904A7
S21400FC508917F0F48F5F80935C0181E080939404B1
S21400FC6017C01F3459F480915C01823088F08150AF
S21400FC7080935C0181E0809394040AC01F3141F4B4
S21400FC8080915C01882321F080938704109294046D
S21400FC90DF91CF911F910895CF93C82F80E00E94E7
S21400FCA07B0F20E33FE03F932F932EE63FE03F930A
S21400FCB02F93E0917806F091790609950F900F90B2
S21400FCC00F900F9080918904811115C080E10E94E9
S21400FCD07B0F85E29FE09F938F938EE69FE09F9336
S21400FCE08F93E0917806F091790609950F900F9022
S21400FCF00F900F90B4C08BE00E947B0F80915B0149
S21400FD001F928F9321E23FE03F932F932EE63FE032
S21400FD103F932F93E0917806F091790609950F901E
S21400FD200F900F900F900F900F9080918C04882367
S21400FD3079F180E10E947B0F6091F4037091F503E6
S21400FD408091F6039091F70324E630E040E050E01F
S21400FD500E948BB13F932F93809186048F9380915E
S21400FD6085048F938FE09FE09F938F938EE69FE0AE
S21400FD709F938F93E0917806F091790609958DB759
S21400FD809EB708960FB6F8949EBF0FBE8DBF14C0E0
S21400FD9088E10E947B0F8EEF9EE09F938F938EE606
S21400FDA09FE09F938F93E0917806F09179060995EE
S21400FDB00F900F900F900F90809193048823A9F0D6
S21400FDC08EE00E947B0F8BEF9EE09F938F938EE6D4
S21400FDD09FE09F938F93E0917806F09179060995BE
S21400FDE00F900F900F900F9014C08EE00E947B0F24
S21400FDF088EF9EE09F938F938EE69FE09F938F936E
S21400FE00E0917806F091790609950F900F900F9083
S21400FE100F90CF3269F480915B0190918904891725
S21400FE20F0F48F5F80935B0181E08093930417C0AA
S21400FE30CF3459F480915B01823088F081508093F2
S21400FE405B0181E0809393040AC0CF3141F4809136
S21400FE505B01882321F08093880410929304CF914D
S21400FE600895CF93C82F8091D206811114C00E94A6
S21400FE707B0F2AEE3EE03F932F932EE63FE03F9324
S21400FE802F93E0917806F091790609950F900F90E0
S21400FE900F900F901AC080E00E947B0F22ED36E094
S21400FEA03F932F9323EE3EE03F932F932EE63FE0C3
S21400FEB03F932F93E0917806F091790609950F907D
S21400FEC00F900F900F900F900F90809189048111E2
S21400FED015C080E10E947B0F88ED9EE09F938F9374
S21400FEE08EE69FE09F938F93E0917806F0917906D7
S21400FEF009950F900F900F900F90A6C080E10E947A
S21400FF007B0F80915A011F928F932FEC3EE03F9318
S21400FF102F932EE63FE03F932F93E0917806F091E3
S21400FF20790609950F900F900F900F900F900F90F5
S21400FF3080918C04882309F188E10E947B0F8091D0
S21400FF408C041F928F9380918D041F928F9387EC61
S21400FF509EE09F938F938EE69FE09F938F93E09112
S21400FF607806F091790609958DB79EB708960FB674
S21400FF70F8949EBF0FBE8DBF14C088E10E947B0F11
S21400FF8081EC9EE09F938F938EE69FE09F938F93E6
S21400FF90E0917806F091790609950F900F900F90F2
S21400FFA00F90809192048823A9F08EE10E947B0F27
S21400FFB08EEB9EE09F938F938EE69FE09F938F93AA
S21400FFC0E0917806F091790609950F900F900F90C2
S21400FFD00F9014C08EE10E947B0F8BEB9EE09F93E8
S21400FFE08F938EE69FE09F938F93E0917806F09133
S21400FFF0790609950F900F900F900F90CF3269F405
S21401000080915A01909189048917F0F48F5F80934B
S2140100105A0181E08093920417C0CF3459F480913D
S2140100205A01823088F0815080935A0181E0809392
S21401003092040AC0CF3141F480915A01882321F0FD
S21401004080938A0410929204CF910895CF93C82F7B
S2140100508091D206811114C00E947B0F2DEA3EE0EA
S2140100603F932F932EE63FE03F932F93E091780640
S214010070F091790609950F900F900F900F901AC086
S21401008080E00E947B0F22ED36E03F932F9326EA15
S2140100903EE03F932F932EE63FE03F932F93E09170
S2140100A07806F091790609950F900F900F900F90B2
S2140100B00F900F9080918904811115C080E10E94F4
S2140100C07B0F8BE99EE09F938F938EE69FE09F9335
S2140100D08F93E0917806F091790609950F900F902D
S2140100E00F900F90C0C08091D9088330A9F080E1AD
S2140100F00E947B0F80E99EE09F938F938EE69FE0A0
S2140101009F938F93E0917806F091790609950F9069
S2140101100F900F900F90A7C080E10E947B0F8091F7
S21401012059011F928F9386E89EE09F938F932EE648
S2140101303FE03F932F93E0917806F0917906099579
S2140101400F900F900F900F900F900F9080918C044E
S214010150882309F188E10E947B0F80918C041F920D
S2140101608F9380918D041F928F938EE79EE09F93CD
S2140101708F938EE69FE09F938F93E0917806F091A0
S214010180790609958DB79EB708960FB6F8949EBF67
S2140101900FBE8DBF14C088E10E947B0F88E79EE0EA
S2140101A09F938F938EE69FE09F938F93E0917806BF
S2140101B0F091790609950F900F900F900F9080910E
S2140101C091048823A9F08EE10E947B0F85E79EE0CB
S2140101D09F938F938EE69FE09F938F93E09178068F
S2140101E0F091790609950F900F900F900F9014C01B
S2140101F08EE10E947B0F82E79EE09F938F938EE6AF
S2140102009FE09F938F93E0917806F0917906099588
S2140102100F900F900F900F90CF3269F48091590193
S214010220909189048917F8F48F5F8093590181E0D2
S2140102308093910418C0CF3459F4809159018230CB
S21401024090F081508093590181E0809391040BC016
S214010250CF3149F480915901882329F08068809331
S2140102608A0410929104CF9108958091A402882364
S21401027009F49BC080E00E947B0F8091D8081F92F2
S2140102808F938091DA081F928F9383E69EE09F9367
S2140102908F938EE69FE09F938F93E0917806F0917F
S2140102A0790609958DB79EB708960FB6F8949EBF46
S2140102B00FBE8DBF8091D9088330A9F48CE00E94CF
S2140102C07B0F8EE59EE09F938F938EE69FE09F9334
S2140102D08F93E0917806F091790609950F900F902B
S2140102E00F900F9014C08CE00E947B0F89E59EE072
S2140102F09F938F938EE69FE09F938F93E09178066E
S214010300F091790609950F900F900F900F908091BC
S214010310D70881FF14C08CE00E947B0F84E59EE025
S2140103209F938F938EE69FE09F938F93E09178063D
S214010330F091790609950F900F900F900F9080E13C
S2140103400E947B0F809196021F928F931F928FEDD2
S2140103508F93EDEDF8E081818F9380818F932091CB
S214010360DB083091DC08ADECBCEC0E94B3B196958D
S214010370879596958795969587959F938F9381E414
S2140103809EE09F938F938EE69FE09F938F93E091DD
S2140103907806F091790609958DB79EB70C960FB63B
S2140103A0F8949EBF0FBE8DBF089582E00E947B0F1A
S2140103B084E39EE09F938F938EE69FE09F938F93B7
S2140103C0E0917806F091790609950F900F900F90BD
S2140103D00F90089580E00E947B0F80911A01909102
S2140103E01B01E0911A01F0911B012AE030E0B901EE
S2140103F00E9456B19F938F93CF01B9010E9456B1C7
S2140104007F936F938CEA90E19F938F938EE69FE0A4
S2140104109F938F93E0917806F091790609952DB711
S2140104203EB7285F3F4F0FB6F8943EBF0FBE2DBFB5
S2140104308091A4028823B1F186E00E947B0F80910F
S21401044096021F928F932091DB083091DC08ADEC69
S214010450BCEC0E94B3B1969587959695879596952F
S21401046087959F938F931F928FED8F93809166064A
S2140104708F93809165068F938FE990E19F938F9379
S2140104808EE69FE09F938F93E0917806F091790630
S21401049009958DB79EB70C960FB6F8949EBF0FBE02
S2140104A08DBF14C086E00E947B0F84E990E19F9384
S2140104B08F938EE69FE09F938F93E0917806F0915D
S2140104C0790609950F900F900F900F908091BB04BD
S2140104D0882309F458C080919504909196040E944F
S2140104E0639C882391F080915D01882319F0109216
S2140104F05D0103C081E080935D018CED95E00E9473
S2140105005A9C909396048093950480915D0188236C
S214010510F9F080E00E947B0F1F921F928091BB042E
S21401052021E1829FC00111248459944F9F938F9398
S2140105308EE69FE09F938F93E0917806F09179067F
S21401054009950F900F900F900F900F900F9074C019
S21401055086E00E947B0F8091BB041F928F9388E8F0
S21401056090E19F938F938EE69FE09F938F93E09108
S2140105707806F091790609950F900F900F900F90DD
S2140105800F900F9059C08091B70484FF15C086E084
S2140105900E947B0F8DE790E19F938F938EE69FE0FD
S2140105A09F938F93E0917806F091790609950F90C5
S2140105B00F900F900F9040C0809180048823E1F146
S2140105C00E94810F80E00E947B0F8AEB95E09F934B
S2140105D08F93809152011F928F9384E790E19F93AE
S2140105E08F938EE69FE09F938F93E0917806F0912C
S2140105F0790609958091C9032DB73EB7285F3F4F0D
S2140106000FB6F8943EBF0FBE2DBF81FFA5C080E197
S2140106100E947B0F88E690E19F938F938EE69FE082
S2140106209F938F93E0917806F091790609950F9044
S2140106300F900F900F90089580E10E947B0F4091DC
S2140106405E0450915F049A01A9E8B8E80E94B3B12C
S21401065096958795929582958F7089279F708927A1
S2140106606CE3689F9001699F300D1124CA01821BBB
S214010670930B9F938F939A010E94B3B1969587959A
S214010680929582958F7089279F7089279F938F9364
S214010690E9E1F5E081818F9380818F938BE590E18D
S2140106A09F938F938EE69FE09F938F93E0917806BA
S2140106B0F0917906099580915C062DB73EB7265FC5
S2140106C03F4F0FB6F8943EBF0FBE2DBF80FF2CC024
S2140106D08AE10E947B0F809120011F928F93609187
S2140106E0FE037091FF03809100049091010424E6BB
S2140106F030E040E050E00E948BB13F932F9384E5B9
S21401070090E19F938F938EE69FE09F938F93E09166
S2140107107806F091790609958DB79EB708960FB6BB
S214010720F8949EBF0FBE8DBF8091C90380FF14C091
S2140107308AE10E947B0F82E590E19F938F938EE67C
S2140107409FE09F938F93E0917806F0917906099543
S2140107500F900F900F900F900895CF93C82F409150
S214010760900440938F048F3249F118F48F31B1F021
S21401077044C08F3499F18F3809F03FC0842F90E040
S214010780FC01EE0FFF1F8E0F9F1FFC01EE0FFF1FD8
S214010790EB54FF4EE491E09390042FC0842F90E039
S2140107A0FC01EE0FFF1F8E0F9F1FFC01EE0FFF1FB8
S2140107B0EA54FF4EE491E09390041FC0842F90E02A
S2140107C0FC01EE0FFF1F8E0F9F1FFC01EE0FFF1F98
S2140107D0E954FF4EE491E09390040FC0242F30E0DB
S2140107E0F901EE0FFF1F2E0F3F1FF901EE0FFF1F3E
S2140107F0E854FF4EE491E0939004809190044813EE
S21401080021C08091580191E0980F9093580180FD86
S21401081002C0CF30F1F0C0938E040E94810F209168
S214010820900430E0F901EE0FFF1F2E0F3F1FF90174
S214010830EE0FFF1FE754FF4E259134918C2FF901DF
S214010840099507C0809158018F5F80935801C0E0D9
S214010850E2CF80E0CF910895409154035091550323
S2140108602091970430919804C901880F991F820F2F
S214010870931F840F951F99230CF4039695958795DE
S21401088095958795909398048093970420912001DD
S2140108902B32D1F4409150052091F8033091F903A1
S2140108A0429FC001439F900D112499230CF44F964B
S2140108B0959587959595879595958795959587951A
S2140108C095958795059647C02D32D1F440915005F0
S2140108D02091F8033091F903429FC001439F900D88
S2140108E0112499230CF44F969595879595958795A0
S2140108F095958795959587959595879505972BC099
S2140109002032A9F42091CB0321FF20C09C0199231A
S21401091014F4215E3F4FC901959587959595879566
S21401092095958795959587959595879514C02E35B8
S21401093021F48091F30390E00EC0263751F48091A4
S214010940F30390E091958195910905C080E090E0D0
S21401095002C080E090E0AA2797FDA095BA2F809369
S214010960500290935102A0935202B09353020895FD
S2140109700E94796080911A0190911B01AA2797FD28
S214010980A095BA2F80937F0190938001A093810157
S214010990B09382018091150590911605A0E0B0E014
S2140109A08093920190939301A0939401B093950143
S2140109B02091190530911A05ADECBCEC0E94B3B13B
S2140109C0969587959695879596958795A0E0B0E03C
S2140109D08093A5019093A601A093A701B093A801C7
S2140109E06091FE037091FF038091000490910104D1
S2140109F024E630E040E050E00E948BB12093B8013D
S214010A003093B9014093BA015093BB0180914E01D6
S214010A1090914F01AA2797FDA095BA2F8093CB01FD
S214010A209093CC01A093CD01B093CE018091D808CC
S214010A3090E0A0E0B0E08093DE019093DF01A09308
S214010A40E001B093E1018091DA0890E0A0E0B0E027
S214010A508093F1019093F201A093F301B093F40116
S214010A602091DB083091DC08ADECBCEC0E94B3B100
S214010A70969587959695879596958795A0E0B0E08B
S214010A808093040290930502A0930602B093070296
S214010A908091DD089091DE08AA2797FDA095BA2FD0
S214010AA08093170290931802A0931902B0931A022A
S214010AB08091840490E0A0E0B0E080932A029093B5
S214010AC02B02A0932C02B0932D028091BA0490E0E1
S214010AD0A0E0B0E080933D0290933E02A0933F02D7
S214010AE0B09340028091BB0490E0A0E0B0E0809318
S214010AF0630290936402A0936502B0936602089520
S214010B0087B18C6087B9429843981092A10480E817
S214010B1080938F021092A00480938E020895809194
S214010B20BD04811180939E0480919D049FEF980FD0
S214010B3090939D04811173C18091880580939C04D4
S214010B4080918A0580939B0489E080939D0480911F
S214010B50CB03807321F48091630A80FF1DC08091CE
S214010B608C05882351F080919A04811103C084E09A
S214010B708093A10481E080939A0480918D05882357
S214010B8079F080919904811103C084E08093A004D8
S214010B9081E08093990404C010929A0410929904FB
S214010BA080919A04811195C08091B60584FF0AC090
S214010BB090910304911106C085FF02C0429AA8C015
S214010BC04298A6C080918905883F00F180913B0636
S214010BD08D3D68F080919C04882314F4429801C0EE
S214010BE0429A81E080938F0210929F0491C08530D3
S214010BF069F480919C04882314F4429A01C04298B7
S214010C0081E080938F0210929F0482C08091A1049C
S214010C109FEF980F9093A10481117AC08091B90536
S214010C2085FF39C080919E04982F96959093A104D4
S214010C3081110CC010929F0480919C04882314F4A7
S214010C40429A01C0429810928F0262C081E080935E
S214010C509F0480918F02811111C08091BD04809301
S214010C609E041092BD0480E480938F0280919C04C0
S214010C70882314F4429A4CC042984AC090919C042E
S214010C80892311F0429A01C0429880918F0286957D
S214010C9080938F023DC080913B0686958093A10488
S214010CA080918F02813031F410929E0480E480930B
S214010CB08F0203C0869580938F0290919C04809149
S214010CC08F02892311F0429A01C0429810929F0424
S214010CD01FC08091A104882321F081508093A10434
S214010CE017C089E08093A10480918F02813021F49E
S214010CF080E880938F0203C0869580938F0290913F
S214010D008F0280918C05892311F0429A01C0429886
S214010D1080919904811150C08091B605882354F4BE
S214010D2090910304911106C086FF02C0439A63C0E6
S214010D30439861C080918B05883FE0F080916306FF
S214010D408D3D58F080919B04882314F4439801C08C
S214010D50439A81E080938E024EC0853059F480918B
S214010D609B04882314F4439A01C0439881E080933E
S214010D708E0241C08091A0049FEF980F9093A0042B
S214010D80811139C08091630686958093A004809175
S214010D908E02813021F480E480938E0203C0869512
S214010DA080938E0290919B0480918E02892311F08C
S214010DB0439A21C043981FC08091A004882321F044
S214010DC081508093A00417C089E08093A00480918D
S214010DD08E02813021F480E880938E0203C08695CE
S214010DE080938E0290918E0280918D05892311F059
S214010DF0439A01C04398429B05C08091CA0388600C
S214010E008093CA03439B06C08091CA038061809386
S214010E10CA0308958091CA038F7E8093CA030895FA
S214010E20E091A404E03540F491E09E0F9093A40471
S214010E30F0E0E052F84F80830895E0EEF7E080E3BB
S214010E4098E020E22193E817F907E1F708952F9239
S214010E503F925F926F927F928F929F92AF92BF92D4
S214010E60CF92DF92EF92FF920F931F93CF93DF9370
S214010E708091A20480FF0CC09091A304992321F0D5
S214010E8091509093A30404C0909190029093A30470
S214010E9081FF0CC09091A30420919002921303C08D
S214010EA01092A30403C09F5F9093A30483708330C2
S214010EB011F41092A304C1DF8091A3048A30C8F410
S214010EC091E19093A4041F928F9386E595E19F93F9
S214010ED08F9380E197E89F938F93E0917806F09146
S214010EE0790609950F900F900F900F900F900F9025
S214010EF018C090E19093A4041F928F9381E595E129
S214010F009F938F9380E197E89F938F93E091780664
S214010F10F091790609950F900F900F900F900F9012
S214010F200F902091A304822F90E08431910510F058
S214010F300C941091FC01EE56FF4F0C94A7B1109241
S214010F40A40481E495E19F938F93C0E1D7E8DF93F2
S214010F50CF93E0917806F0917906099584E1809324
S214010F60A404909154011F9281E68F931F9288E00A
S214010F708F931F9282E08F938DEC989F812D112481
S214010F80869586958695282F220F322F330F330F9D
S214010F90230F921B1F929F931F928F9389E295E1D5
S214010FA09F938F93DF93CF93E0917806F091790624
S214010FB0099588E28093A40488EC95E09F938F932B
S214010FC0809152011F928F938FE195E19F938F93AA
S214010FD0DF93CF93E0917806F09179060995809199
S214010FE0C9032DB73EB7265E3F4F0FB6F8943EBFF6
S214010FF00FBE2DBF81FF13C088E38093A4048AE14E
S21401100095E19F938F93CE019F93CF93E0917806BE
S214011010F091790609950F900F900F900F9080919F
S214011020630A84FF16C08CE38093A4048DE095E1E7
S2140110309F938F9380E197E89F938F93E091780633
S214011040F091790609950F900F900F900F900C94E0
S21401105019918091BB04882379F19CE39093A404B1
S2140110601F928F9385E095E19F938F93C0E1D7E818
S214011070DF93CF93E0917806F091790609951F9258
S2140110801F928091BB04E1E18E9FC0011124845917
S214011090944F9F938F93DF93CF93E0917806F091CF
S2140110A0790609958DB79EB70C960FB6F8949EBF34
S2140110B00FBE8DBF0C9419918091620A8823D1F0DE
S2140110C09CE39093A4041F928F938EEE94E19F93DA
S2140110D08F9380E197E89F938F93E0917806F09144
S2140110E0790609950F900F900F900F900F900F9023
S2140110F00C9419918091DF048823D1F09CE390939E
S214011100A4041F928F9388ED94E19F938F9380E1BF
S21401111097E89F938F93E0917806F0917906099569
S2140111200F900F900F900F900F900F900C941991B5
S2140111308091B0029091B1020697B0F48CE380934F
S214011140A4048BEC94E19F938F9380E197E89F939F
S2140111508F93E0917806F091790609950F900F909C
S2140111600F900F900C94199180911B058E3110F001
S2140111700C9419919CE39093A4041F928F9387EB90
S21401118094E19F938F9380E197E89F938F93E091EB
S2140111907806F091790609950F900F900F900F90B1
S2140111A00F900F900C9419911092A4046091FE0375
S2140111B07091FF0380910004909101040F2EF5E0D9
S2140111C0CF2ED12CE12CF12CF02DA70196010E94F7
S2140111D08BB13F932F938AEA94E19F938F93C0E15B
S2140111E0D7E8DF93CF93E0917806F09179060995D9
S2140111F084E18093A4046091FA037091FB038091CB
S214011200FC039091FD03A70196010E948BB13F93C9
S2140112102F938DE994E19F938F93DF93CF93E09182
S2140112207806F0917906099588E28093A404809166
S2140112301001909111019F938F9380E994E19F9300
S2140112408F93DF93CF93E0917806F0917906099515
S2140112508CE38093A40487B51F928F9383E894E16F
S2140112609F938F93DF93CF93E0917806F091790661
S21401127009952DB73EB7285E3F4F0FB6F8943EBF8F
S2140112800FBE2DBF8091C203882309F4D2C789E31C
S2140112908093A4048FE794E19F938F93DF93CF937A
S2140112A0E0917806F091790609958DE48093A4047F
S2140112B080910C011F928F938CE794E19F938F93FB
S2140112C0DF93CF93E0917806F091790609952DB7D3
S2140112D03EB7265F3F4F0FB6F8943EBF0FBE2DBFF9
S2140112E0A8C71092A4048FE694E19F938F9380E1A0
S2140112F097E89F938F93E0917806F0917906099588
S21401130084E18093A4048091420490914304A091C7
S2140113104404B0914504BB2324F481509C4FAF4F45
S214011320BF4F072E7AE0B595A795979587957A953D
S214011330D1F7702DBF93AF939F938F9380E694E17F
S2140113409F938F9380E197E89F938F93E091780620
S214011350F0917906099588E28093A40480913E0471
S21401136090913F04A0914004B0914104BB2324F422
S21401137081509C4FAF4FBF4F072E7AE0B595A7958A
S214011380979587957A95D1F7702DBF93AF939F93D5
S2140113908F9381E594E19F938F93C0E1D7E8DF9324
S2140113A0CF93E0917806F091790609958CE38093C6
S2140113B0A404809166068F93809165068F9382E4DC
S2140113C094E19F938F93DF93CF93E0917806F0910A
S2140113D0790609952DB73EB7265E3F4F0FB6F894AE
S2140113E03EBF0FBE2DBF25C7C1E0D0E00F2EF0E3F4
S2140113F0EF2EF4E1FF2EF02D00E117E88C2F8695F5
S214011400880F880F982F990F990F890F8093A4043E
S214011410CE010196FC01EE0FFF1FEF5CF74F4081F6
S2140114205181FE01EE0FFF1FEF5CF74F20813181E6
S2140114305F934F939F938F933F932F93DF93CF9316
S214011440FF92EF921F930F93E0917806F091790641
S21401145009952296EDB7FEB73C960FB6F894FEBFF7
S2140114600FBEEDBFC930D10549F6E3C61092A404FC
S214011470E0914005F0E0EE0FFF1FEF5CF74F208193
S2140114803181E0913F05F0E0EE0FFF1FEF5CF74F73
S214011490808191813F932F939F938F9380E294E174
S2140114A09F938F93C0E1D7E8DF93CF93E0917806BF
S2140114B0F0917906099584E18093A404E0914205B0
S2140114C0F0E0EE0FFF1FEF5CF74F20813181E091D6
S2140114D04105F0E0EE0FFF1FEF5CF74F8081918131
S2140114E03F932F9381589F4F9F938F9380E194E171
S2140114F09F938F93DF93CF93E0917806F0917906CF
S214011500099588E28093A404E0914405F0E0EE0F8B
S214011510FF1FEF5CF74F20813181E0914305F0E03A
S214011520EE0FFF1FEF5CF74F8081918121583F4FEF
S2140115303F932F9381589F4F9F938F9380E094E121
S2140115409F938F93DF93CF93E0917806F09179067E
S21401155009958CE38093A404E0914605F0E0EE0F34
S214011560FF1FEF5CF74F20813181E0914505F0E0E8
S214011570EE0FFF1FEF5CF74F8081918121583F4F9F
S2140115803F932F9381589F4F9F938F9380EF93E1C3
S2140115909F938F93DF93CF93E0917806F09179062E
S2140115A009958DB79EB780960FB6F8949EBF0FBE6D
S2140115B08DBF3FC61092A40482EE93E19F938F9352
S2140115C080E197E89F938F93E0917806F0917906F2
S2140115D0099584E18093A4044091650350916603C4
S2140115E030915704209158042F933F93832F922FC5
S2140115F099230CF407969C013595279535952795E3
S21401160035952795CA01821B930B9F938F9383ED84
S21401161093E19F938F9380E197E89F938F93E09157
S2140116207806F0917906099588E28093A4044091A2
S21401163063035091640330915504209156042F930F
S2140116403F93832F922F99230CF407969C0135958F
S21401165027953595279535952795CA01821B930BB6
S2140116609F938F9384EC93E19F938F93C0E1D7E888
S214011670DF93CF93E0917806F091790609958CE394
S2140116808093A404809153049091540420916103A3
S214011690309162039F938F93821B930B9F938F933B
S2140116A085EB93E19F938F93DF93CF93E091780639
S2140116B0F091790609958DB79EB74C960FB6F894BA
S2140116C09EBF0FBE8DBFB5C51092A40488EA93E1F4
S2140116D09F938F93C0E1D7E8DF93CF93E09178068D
S2140116E0F0917906099584E18093A40480915D03C5
S2140116F090915E0320914E042F9320914D042F93D9
S2140117009F938F9389E993E19F938F93DF93CF9371
S214011710E0917806F0917906099588E28093A40411
S21401172080915F039091600320914C042F93209148
S2140117304B042F939F938F938AE893E19F938F9304
S214011740DF93CF93E0917806F091790609958CE3C3
S2140117508093A40480915B0390915C0320914804DC
S2140117602F93209147042F939F938F938BE793E1B9
S2140117709F938F93DF93CF93E0917806F09179064C
S21401178009952DB73EB7245E3F4F0FB6F8943EBF7E
S2140117900FBE2DBF4EC51092A40480911A019091E0
S2140117A01B01E0911A01F0911B012AE030E0B9011A
S2140117B00E9456B19F938F93CF01B9010E9456B1F3
S2140117C07F936F9387E693E19F938F93C0E1D7E86A
S2140117D0DF93CF93E0917806F0917906099584E13D
S2140117E08093A40440911505509116059A01ADEC1D
S2140117F0BCEC0E94B3B1969587959695879596957C
S21401180087959C01220F331F880F991F880F991FF8
S214011810880F991F820F931FFA01E81BF90BCF015E
S2140118209F93EF939A010E94B3B1969587959695EB
S2140118308795969587959F938F9383E593E19F93DD
S2140118408F93DF93CF93E0917806F091790609950F
S21401185088E28093A404E7E1F5E081818F9380819B
S2140118608F9383E493E19F938F93DF93CF93E091DC
S2140118707806F091790609958CE38093A404E9E152
S214011880F5E081818F9380818F9381E393E19F932C
S2140118908F93DF93CF93E0917806F09179060995BF
S2140118A02DB73EB7245E3F4F0FB6F8943EBF0FBE2E
S2140118B02DBFBFC41092A40488E293E19F938F9337
S2140118C0C0E1D7E8DF93CF93E0917806F0917906EF
S2140118D0099588E28093A404809104041F928F9353
S2140118E088E193E19F938F93DF93CF93E0917806FE
S2140118F0F091790609958CE38093A40480913008D1
S21401190090E001979F938F9388E093E19F938F9345
S214011910DF93CF93E0917806F091790609958DB71C
S2140119209EB740960FB6F8949EBF0FBE8DBF81C47A
S2140119301092A40488EF92E19F938F93C0E1D7E8B9
S214011940DF93CF93E0917806F0917906099584E1CB
S2140119508093A404909153011DEC919F812D112435
S214011960869586958695282F220F322F330F330FB3
S214011970230F921B1F929F931F928F938AEE92E1E1
S2140119809F938F93DF93CF93E0917806F09179063A
S214011990099588E28093A40490916404919F812D17
S2140119A01124869586958695282F220F322F330F80
S2140119B0330F230F921B1F929F931F928F938CEDD1
S2140119C092E19F938F93DF93CF93E0917806F09106
S2140119D0790609958CE38093A40480916504819F20
S2140119E0112D1124169516951695912F990F292FBD
S2140119F0220F220F920F891B1F928F931F921F9304
S214011A008EEC92E19F938F93DF93CF93E0917806CC
S214011A10F091790609952DB73EB7245E3F4F0FB674
S214011A20F8943EBF0FBE2DBF04C4C5E0D4E010E05D
S214011A300F2EF1ECEF2EF2E1FF2EF02D0F2EF0E13E
S214011A40CF2EF7E8DF2EF02D1093A40489911F9274
S214011A508F93CE01855094409F938F93FF92EF9280
S214011A60DF92CF92E0917806F091790609951C5E97
S214011A708DB79EB708960FB6F8949EBF0FBE8DBF62
S214011A80103511F7D6C3C9E0D4E010E00F2EF4EB01
S214011A90EF2EF2E1FF2EF02D0F2EF0E1CF2EF7E81C
S214011AA0DF2EF02D1093A40489911F928F93CE01FF
S214011AB0855094409F938F93FF92EF92DF92CF923F
S214011AC0E0917806F091790609951C5EEDB7FEB7B0
S214011AD038960FB6F894FEBF0FBEEDBF103511F75E
S214011AE0A8C31092A40486EA92E19F938F93C0E163
S214011AF0D7E8DF93CF93E0917806F09179060995C0
S214011B0084E18093A404809161048F9380916004A2
S214011B108F9389E992E19F938F93DF93CF93E0911F
S214011B207806F0917906099588E28093A40480915D
S214011B3063048F93809162048F938CE892E19F9364
S214011B408F93DF93CF93E0917806F091790609950C
S214011B5089E48093A40484E892E19F938F93DF93B2
S214011B60CF93E0917806F091790609958091A204C9
S214011B70EDB7FEB774960FB6F894FEBF0FBEEDBF75
S214011B8083FF57C3109263041092620460E070E012
S214011B908EE090E00E944B254CC31092A4048CE783
S214011BA092E19F938F93C0E1D7E8DF93CF93E091C3
S214011BB07806F0917906099584E18093A4048091D2
S214011BC04F018F9380914E018F938EE692E19F9302
S214011BD08F93DF93CF93E0917806F091790609957C
S214011BE088E28093A404809122068F938091210637
S214011BF08F9380E692E19F938F93DF93CF93E0914B
S214011C007806F091790609958CE38093A404809177
S214011C1066068F93809165068F9382E592E19F9386
S214011C208F93DF93CF93E0917806F091790609952B
S214011C308DB79EB746960FB6F8949EBF0FBE8DBF62
S214011C40F8C21092A4048AE492E19F938F93C0E1B4
S214011C50D7E8DF93CF93E0917806F091790609955E
S214011C6084E18093A40480912F011F928F938CE3CB
S214011C7092E19F938F93DF93CF93E0917806F09153
S214011C807906099588E28093A4048091C604909110
S214011C90C70499230CF40396959587959595879592
S214011CA09F938F938EE292E19F938F93C0E1D7E843
S214011CB0DF93CF93E0917806F091790609958CE34E
S214011CC08093A40480916E051F928F9380916D0579
S214011CD01F928F9380E292E19F938F93DF93CF932E
S214011CE0E0917806F091790609952DB73EB7285E02
S214011CF03F4F0FB6F8943EBF0FBE2DBF9AC210924B
S214011D00A40480E192E19F938F9380E197E89F93EB
S214011D108F93E0917806F09179060995C7ECD9E0A2
S214011D200F900F900F900F9014E10F2EFFEFEF2EF4
S214011D30F1E1FF2EF02D0F2EF0E1CF2EF7E8DF2E8A
S214011D40F02D1093A40488818F771F928F93FE0144
S214011D503F9780818F771F928F933F9780818F77F0
S214011D601F928F933F9780818F771F928F93FF9259
S214011D70EF92DF92CF92E0917806F091790609957D
S214011D801C5EEC968DB79EB70C960FB6F8949EBF68
S214011D900FBE8DBF1035A9F64CC21092A40480EF79
S214011DA091E19F938F9380E197E89F938F93E091C2
S214011DB07806F09179060995CBECD9E00F900F9053
S214011DC00F900F9014E10F2EFFEDEF2EF1E1FF2E95
S214011DD0F02D0F2EF0E1CF2EF7E8DF2EF02D109329
S214011DE0A40488811F928F93FE013F9780811F92E2
S214011DF08F933F9780811F928F933F9780811F9289
S214011E008F93FF92EF92DF92CF92E0917806F09156
S214011E10790609951C5EEC96EDB7FEB73C960FB6B3
S214011E20F894FEBF0FBEEDBF1035C9F602C2109280
S214011E30A40484ED91E19F938F93C0E1D7E8DF93EB
S214011E40CF93E0917806F0917906099587E480931F
S214011E50A4048AEC91E19F938F93DF93CF93E09153
S214011E607806F09179060995EDB7FEB738960FB664
S214011E70F894FEBF0FBEEDBFC4E0D0E014E10F2E14
S214011E80F9EBEF2EF1E1FF2EF02D0F2EF0E12F2EC4
S214011E90F7E83F2EF02D1093A404C0907806D0905A
S214011EA079068C2F81500E94CE21682E592E8C2FB8
S214011EB082500E94CE21882E792E8C2F83500E942C
S214011EC0CE21A82E992E8C2F84500E94CE215F926F
S214011ED06F927F928F929F92AF929F938F93FF9272
S214011EE0EF923F922F92F601099580913D0590E081
S214011EF02DB73EB7245F3F4F0FB6F8943EBF0FBED7
S214011F002DBFC817D9070CF094C11C5E2496103556
S214011F1011F68FC11092A4048AEA91E19F938F93E0
S214011F20C0E1D7E8DF93CF93E0917806F091790688
S214011F30099584E18093A4042091C709221F2227D2
S214011F40221F30E0C901880F991F880F991F880F3B
S214011F50991F821B930B8D969F938F938091B8093F
S214011F60881F8827881F90E09C01220F331F820F4D
S214011F70931F880F991F8D969F938F938091A90920
S214011F80881F8827881F90E09C01220F331F220F8D
S214011F90331F820F931F8D969F938F9380919A097B
S214011FA0881F8827881F90E0880F991F880F991F20
S214011FB08D969F938F9386E991E19F938F93DF93FD
S214011FC0CF93E0917806F0917906099588E280939F
S214011FD0A4048091030A881F8827881FFBE08F9F2F
S214011FE0C00111248D969F938F932091F409221F8F
S214011FF02227221F30E0C901880F991F220F331FA5
S214012000220F331F220F331F820F931F8D969F932C
S2140120108F938091E509881F8827881F90E09C018F
S214012020220F331F220F331F220F331F820F931FDE
S2140120308D969F938F938091D609881F8827881F36
S21401204090E0880F991F880F991F880F991F8D960A
S2140120509F938F9382E891E19F938F93DF93CF9322
S214012060E0917806F091790609958CE38093A404B3
S2140120708091120A881F8827881F90E09C01220FF2
S214012080331F820F931F880F991F880F991F8D96F4
S2140120909F938F9381E791E19F938F93DF93CF93E4
S2140120A0E0917806F09179060995EDB7FEB7B296FC
S2140120B00FB6F894FEBF0FBEEDBF8091210A8823AC
S2140120C09CF480E48093A4048EE691E19F938F9321
S2140120D0CE019F93CF93E0917806F091790609950A
S2140120E00F900F900F900F908091300A8823A4F4E0
S2140120F084E48093A4048BE691E19F938F9380E11F
S21401210097E89F938F93E0917806F0917906099569
S2140121100F900F900F900F9080913F0A88230CF03C
S21401212088C088E48093A40488E691E19F938F9306
S21401213080E197E89F938F93E0917806F091790676
S21401214009950F900F900F900F9073C01092A404F2
S2140121508CE591E19F938F9380E197E89F938F930E
S214012160E0917806F09179060995C1EDD9E00F90D6
S2140121700F900F900F9004E010E00F2EF4E1BF2EA9
S214012180F02D0F2EF8E3CF2EF1E1DF2EF02D0F2EDE
S214012190F0E1EF2EF7E8FF2EF02DB092A40488812F
S2140121A01F928F93FE01319780811F928F933E97E6
S2140121B080811F928F93319780811F928F933E97D4
S2140121C080811F928F93319780811F928F933E97C4
S2140121D080811F928F93319780811F928F93DF9218
S2140121E0CF92FF92EF92E0917806F09179060995E9
S2140121F080913D0590E02DB73EB72C5E3F4F0FB660
S214012200F8943EBF0FBE2DBF0817190794F434E1AA
S214012210B30EEC960C5F1F4F80E5B812BECF09C017
S21401222080919002281303C02150209390021092AF
S214012230A3041092A204DF91CF911F910F91FF90FA
S214012240EF90DF90CF90BF90AF909F908F907F9050
S2140122506F905F903F902F9008951F932AE530E08E
S214012260A901481B590BCA0199233CF499231CF474
S2140122709195819591091FEF01C011E068E671E023
S2140122800E9456B1FC018B359105ECF09C012B5553
S21401229031092A35310530F4E4EBF0E0E81BF90B9F
S2140122A061E012C09C01255B31092A35310528F40D
S2140122B0FC01E45BF1096FEF07C0E8E6F1E0E81B1B
S2140122C0F90B6FEF01C061E0EE0FFF1FE55AFA4E02
S2140122D0259134911203A001139F500D112464031C
S2140122E0C001659F900D11241F91089580E090E034
S2140122F021E83FEF853040F4FC01EE0FFF1FEF5C55
S214012300F74F1182108207C0FC01EE0FFF1FEF5C32
S214012310F74F31832083FC01EE0FFF1FE958F74F7B
S2140123201182108201968332910521F78FE790E0A2
S2140123309093700880936F0881E89FEF90936E08E2
S21401234080936D08109272081092710810925404CE
S2140123501092530410925604109255041092580489
S2140123601092570408951F920F920FB60F921124E0
S2140123700BB60F922F933F934F935F936F937F9379
S2140123808F939F93AF93BF93CF93DF93EF93FF9377
S214012390E6E8F0E0808191812091A7043091A804BD
S2140123A0821B930B208131813093A8042093A704CC
S2140123B09C012D543440233F3A4188F48091A50472
S2140123C09091A60480933008049714F0109293021B
S2140123D081E090E09093A6048093A504C1C020916B
S2140123E0A5043091A604213131050CF0B9C0AC0129
S2140123F04B5F5109443B514008F0ACC040919102FB
S21401240050919202841B950BE091A805EE2351F0A2
S214012410F0E0EE0FFF1FEF5CF74F4081518144362D
S214012420510504F5F901EE0FFF1FEF5CF74F4081F0
S2140124305181BC01641B750BAB0122F4442755275F
S214012440461B570B463051056CF440910404483C3A
S21401245030F440910404465F4093040403C048EC02
S21401246040930404F901EE0FFF1FEF5CF74F408124
S2140124705181FA01EE0FFF1FE40FF51FE80FF91F58
S214012480FF230CF43396F595E795F595E795AC01A2
S2140124904F5F5F4F4E175F0714F4319705C00197E2
S2140124A0E817F9070CF4319680910404833CD0F0C8
S2140124B0E901CC0FDD1FDE01AF5CB74F8D919C911A
S2140124C0AF01481B590BCA0163E070E00E9456B188
S2140124D0CB01880F991F680F791FC958D74F798389
S2140124E0688308C0D901AA0FBB1FA958B74F119618
S2140124F01C921E92D901AA0FBB1FAF5CB74F119653
S214012500FC93EE9380910404823320F5E0913F051D
S214012510F0E0EE0FFF1FEF5CF74F11821082E091A3
S2140125204005F0E0EE0FFF1FEF5CF74F11821082BF
S214012530E0914205F0E0EE0FFF1FEF5CF74F1182CE
S2140125401082E0914105F0E0EE0FFF1FEF5CF74FC0
S214012550118210822F5F3F4F3093A6042093A5046B
S214012560FF91EF91DF91CF91BF91AF919F918F91A5
S2140125707F916F915F914F913F912F910F900BBE7D
S2140125800F900FBE0F901F901895CF93DF939FB7B4
S214012590F894A9ECB0E08C918F778C938C918F7B1B
S2140125A08C938C918F7D8C931092CD0088E18093D3
S2140125B0CC00C8ECD0E088818260888380E18C936F
S2140125C0EAECF0E080818F77808380818F7B808347
S2140125D0808180818F7E80838081886080838C91DA
S2140125E08B7F8C93808184608083808182608083EE
S2140125F08881882344F4AEECB0E0E8ECF0E08C91FE
S21401260080818823E4F3E9ECF0E0808180688083B0
S214012610E4EDF8E08081846080839FBFDF91CF91F5
S21401262008959091B004911108C08F3031F4109242
S214012630AA0480E58093B0040895E091AA04EF5FB0
S214012640E093AA04E83121F481E08093AB04089575
S214012650E93120F089E18093AA040895F0E0E3547B
S214012660F74F808308955F926F927F928F929F9229
S214012670AF92BF92CF92DF92EF92FF920F931F938A
S214012680CF93DF938091D40882FDA4C0EFE6F0E0FB
S21401269080818F7D8083E091A805EE2351F0F0E0E4
S2140126A0EE0FFF1FEF5CF74F808191818436910515
S2140126B06CF480910404883C30F4809104048C5EB0
S2140126C08093040403C088EC809304048091BE08C0
S2140126D090E02091A904211180C022E02093A90452
S2140126E00F2EF8EABF2EF02D7FC0EC2DF0E0E3545C
S2140126F0F74F5081542311F0822B932B440F11F482
S214012700C394492D220F331F211558E0350709F0D0
S2140127105BC09450B8010E9456B1EA2DF0E0DF018B
S214012720AA0FBB1FAF5CB74F8D919C919C01220FE6
S214012730331F280F391F260F371F332314F42D5F3D
S2140127403F4F3595279535952795CB0101968217ED
S21401275093071CF42150310907C0615071092617EF
S214012760370714F42F5F3F4F80910404833CC8F071
S214012770EF01CC0FDD1FDE01AF5CB74F8D919C9151
S214012780B901681B790BCB01B7010E9456B1CB0189
S214012790880F991F680F791FC958D74F79836883A7
S2140127A008C0DF01AA0FBB1FA958B74F11961C928C
S2140127B01E92EE0FFF1FEF5CF74F31832083A39429
S2140127C0882D972D262D352DD394DB1408F48DCF27
S2140127D0109293021092AB041FC021502093A904BB
S2140127E00F2EF4E2BF2EF02D20E031E0AA24A394B0
S2140127F0D12C6894CC24C1F841E09924939405E047
S21401280010E0812C712C66246394512C0F2EF3E07A
S214012810EF2EF12CF02D69CFDF91CF911F910F9103
S214012820FF90EF90DF90CF90BF90AF909F908F90EA
S2140128307F906F905F900895CF93DF939FB7F89442
S214012840A9ECB0E08C918F778C938C918F7B8C93D5
S2140128508C918F7D8C931092CD0084E18093CC0077
S214012860C8ECD0E088818260888380E18C93EAECB2
S214012870F0E080818F77808380818F7B8083808169
S2140128808F7D808380818F7E80838081877F808318
S2140128908C918B7F8C938081846080838081826021
S2140128A080838881882344F4AEECB0E0E8ECF0E065
S2140128B08C9180818823E4F3E9ECF0E080818068E4
S2140128C080839FBFDF91CF910895CF93DF9390913F
S2140128D09402913061F41092940284E48093B004DF
S2140128E01092AF041092AE041092AD0443C141E0C1
S2140128F090E02091B004211140E0242F392F9091CF
S214012900AE04911118C0232B61F081E08093AE04D0
S2140129108091AF048F5F8093AF0483E08093B0040F
S21401292012C184E48093B0041092AF041092AE04F6
S2140129301092AD0408C1913079F4232B09F0F9C047
S21401294082E08093AE048091AF048F5F8093AF04E2
S21401295083E08093B004F7C09230D9F4232B09F0BA
S214012960E8C093E09093B0048093AD049091AF04D7
S214012970923041F488231CF01092AC0403C081E02D
S2140129808093AC0483E08093AE049F5F9093AF0482
S214012990DAC0933009F0CDC0232B09F0CAC090935A
S2140129A0B00492E09093AE049091AF049F5F909331
S2140129B0AF042091AD0490E0922B30916505313043
S2140129C059F49370925063E070E00E9456B12695D8
S2140129D026952F7030E01CC0323061F49770945009
S2140129E066E070E00E9456B12695269526952F70D2
S2140129F030E00EC0937088569140BC01992314F4C0
S214012A006F5F7F4F75956795269526952F7030E0F9
S214012A102F5F3F4F2D30310508F084C0F901EE0FCE
S214012A20FF1FEF5CF74F80819181AB01481B590B6B
S214012A30CA01992324F488279927841B950B0697A6
S214012A4004F5E091A805EE2351F0F0E0EE0FFF1F2C
S214012A50EF5CF74F808191818436910594F48091E3
S214012A600404883C30F480910404865F8093040457
S214012A7008C088EC80930404EFE6F0E080818F7D47
S214012A808083F901EE0FFF1FEF5CF74F8081918184
S214012A90FC01EE0FFF1FE80FF91FE60FF71FFF23DC
S214012AA00CF43396F595E795F595E795CB010196E8
S214012AB08E179F0714F4319706C061507109E61707
S214012AC0F7070CF4319680910404843BD0F0E901B9
S214012AD0CC0FDD1FDE01AF5CB74F8D919C91AF012E
S214012AE0481B590BCA0163E070E00E9456B1CB0146
S214012AF0880F991F680F791FC958D74F7983688344
S214012B0008C0D901AA0FBB1FA958B74F11961C922E
S214012B101E92D901AA0FBB1FAF5CB74F1196FC934B
S214012B20EE9311C02231310570F081E0809394025A
S214012B300AC081E0809394021092AF041092AC0414
S214012B4084E48093B0048091AF04803198F0809142
S214012B50AC04811106C080919402811102C01092CA
S214012B6093021092AF041092AC041092AE0484E467
S214012B708093B004DF91CF91089584B1806A84B9BF
S214012B803D9A82E58CBD1DBC459A81E08093D608AE
S214012B908AEA8093E70883E88093E8088AE08093CE
S214012BA0E9081092EB081092EA081092ED081092CC
S214012BB0EC0810924F0910920B0908958091D608DF
S214012BC0811179C00DB407FE76C085E08093CC04F0
S214012BD0459A9EB58091B404813071F018F0823028
S214012BE0C9F03FC010920A099093B3049138C9F511
S214012BF081E08093B40435C0953549F48091B304DF
S214012C008B5A8093B30482E08093B4042AC0109256
S214012C10B40427C0E0910A0981E08E0F80930A0967
S214012C20F0E0E45DF64F90838032B0F08091B3041B
S214012C3098130DC080E2ECE2F9E0ACE0B9E0019057
S214012C400D928A95E1F781E080930B0902C01092FC
S214012C500B091092B40405C08091B304980F9093A9
S214012C60B3048091E6088232F0F445980000000033
S214012C70000000008091E608E091DF08F091E0088E
S214012C80E80FF11D80818EBDE8E0F9E08091E6084D
S214012C90A091DF08B091E008A80FB11D9C9180813A
S214012CA0890F808303C081E08093D6088091E6086F
S214012CB08F5F8093E6080895CF92DF92EF92FF929E
S214012CC00F931F93C0905A05D12CCC0CDD1CCC0C55
S214012CD0DD1CEE24D7FCE094FE2C6091420470913A
S214012CE043048091440490914504A70196010E94F3
S214012CF08BB13093EB082093EA0860913E04709103
S214012D003F048091400490914104A70196010E94DE
S214012D108BB13093ED082093EC0880916E0690916C
S214012D206F06A0917006B0917106880F991FAA1FB1
S214012D30BB1FAC01BD01440F551F661F771F440F13
S214012D40551F661F771F8C019D01040F151F261F37
S214012D50371FC901B801209121013091220140910C
S214012D602301509124010E948BB13093F3082093E4
S214012D70F208E0905304F09054048091610390911E
S214012D8062039701281B390B3093F9082093F80842
S214012D902091490430914A048091390690913A066F
S214012DA0B9010E9456B1CB01880F991F680F791F90
S214012DB0660F771FCB0199230CF40396959587959B
S214012DC0959587959093EF088093EE0880916A0613
S214012DD090916B06B9010E9456B1CB01880F991FDD
S214012DE0680F791F660F771FCB0199230CF40396A2
S214012DF095958795959587959093F1088093F0081A
S214012E0010924A041092490410923A06109239061A
S214012E1010926B0610926A068091E90890E00A9774
S214012E208A30910508F0A1C28A559F4FFC010C9487
S214012E30A7B18091E0038093FC088091DF03809323
S214012E40FD088091DE038093FE088091DD03809368
S214012E50FF088091DC03809300098091DB03809357
S214012E6001098091DA03809302098091D903809346
S214012E7003098091CB03809304098091CB03837F60
S214012E808093CB03809152018093050980911A01AA
S214012E9090911B01809306098091CA0380930709CC
S214012EA0429963C28091CA03877F8093CA035DC239
S214012EB080911505909116059093FD088093FC0866
S214012EC08091B2048093FE0880911B058093FF08D1
S214012ED080918F050E940E34809300098091200115
S214012EE0809301092091B2040FE0209FF001112484
S214012EF0E956F64F868580930209808180930309FF
S214012F008681809304098381809305098781809354
S214012F1006098581809307092F5F2093B204822FCB
S214012F2090E0FC01EE0FFF1FEE0FFF1FE953FA4F73
S214012F30358513160CF419C2222309F416C22DE0A6
S214012F4030E00196B9010E9456B1482F9927FC013D
S214012F50EE0FFF1FEE0FFF1FE953FA4F55851516AB
S214012F601CF44093B20401C24111EBCF4093B2046A
S214012F70FCC18091B104811137C08DE08093E908CE
S214012F8081E08093B104809153018093FC08809185
S214012F9090058093FD08809191058093FE088091AD
S214012FA092058093FF088091930580930009809194
S214012FB09705809301098091980580930209809175
S214012FC099058093030980919C058093040980915B
S214012FD09A058093050980919B0580930609809147
S214012FE09D0580930709C1C182E18093E90810928B
S214012FF0B10480915704909158049093FD088093F2
S214013000FC0880915504909156049093FF08809394
S214013010FE08F0920109E0920009809182058093F2
S21401302002098091E8039091E90399230CF4039631
S2140130309595879595958795809303091092040930
S2140130401092050910920609109207098EC1809107
S2140130508E058093FC0880916505863081F080910D
S2140130605C04823451F00E94CC60E82FF0E0ED5F02
S214013070FE4EE491E0935C0402C00E94CC60809115
S21401308081048093FD088091B0058093FE088091AD
S214013090A5058093FF088091C00380930009809165
S2140130A08A048093010980918804809302098091A3
S2140130B087048093030910928A0410928804109260
S2140130C0870480913701882349F080911C049091F0
S2140130D01D04909305098093040908C08091210678
S2140130E09091220690930509809304098091B40576
S2140130F0809306098091B5058093070936C1F89437
S214013100E0914105F0E0EE0FFF1FEF5CF74F808185
S214013110918181381FEF910714F481E89FEF803881
S214013120910514F08FE790E08093FC08E09142054A
S214013130F0E0EE0FFF1FEF5CF74F80819181813841
S2140131402FEF920714F481E89FEF8038910514F071
S2140131508FE790E08093FD08E0914005F0E0EE0FE8
S214013160FF1FEF5CF74F8081918181383FEF930716
S21401317014F481E89FEF8038910514F08FE790E012
S2140131808093FE08E0913F05F0E0EE0FFF1FEF5C35
S214013190F74F8081918181384FEF940714F481E8CD
S2140131A09FEF78948038910514F08FE790E0809334
S2140131B0FF0880910504809300098091060480939E
S2140131C00109809107048093020980910804809385
S2140131D00309809109048093040980910A0480936D
S2140131E0050980910B048093060980910C04809355
S2140131F00709BBC080917D0A853030F010927D0AA8
S21401320085E08093FC0802C08093FC0880919E05AF
S2140132108093FD086091FE037091FF038091000486
S214013220909101040F2EF5E0CF2ED12CE12CF12C3C
S214013230F02DA70196010E948BB13093FF082093D1
S214013240FE086091FA037091FB038091FC03909154
S214013250FD03A70196010E948BB1309301092093CB
S21401326000098091940580930209809195058093C9
S2140132700309809196058093040980910404809344
S214013280050980919F04809306098091560C9091C0
S214013290570C99230CF403969595879595958795E4
S2140132A08093070962C082E08093FC0888E08093DF
S2140132B0FD081092FE0887E48093FF088091540170
S2140132C080930009A2E6BAE09C9190930109E3E697
S2140132D0FAE08081809302099F779C9380718083B6
S2140132E08091B1058093030980915C06809304095F
S2140132F080914006809305098091A1058093060977
S2140133008091B9058093070930C080911905909185
S2140133101A059093FD088093FC0880912F018093F5
S214013320FE0880912E018093FF088091800C809387
S21401333000098091C9038093010980919F058093BC
S214013340020980912406809303098091600490917C
S2140133506104909305098093040980917505809313
S21401336006098091650A8093070980910B098823D5
S21401337009F471C160910C0980919502681719F0E2
S2140133808AEF8093A4026093950281E080934D01B9
S21401339080910D0990910E099C0121503E4F2F3FBF
S2140133A03340B0F420910F0930911009A901415022
S2140133B05E4F4F3F534060F440914B0545FF08C0B8
S2140133C090936B0480936A04309369042093680495
S2140133D080911309909114098936F1E09F0724F42E
S2140133E090934F0180934E0180911D0990911E0983
S2140133F02091CD043091CE042817390740F420914E
S2140134006604211104C09093CE048093CD046936DE
S21401341009F485C030F4673659F0683609F44AC0B5
S21401342022C16A3609F414C16B3609F4D7C01BC130
S21401343080911F0980934C098091200980934E0941
S2140134408091210980934D098091220980934C0136
S2140134508091230980935009809124098093A502C5
S214013460809125098093BE04809126098093670484
S2140134708091D803882351F08091270990912809DB
S214013480992324F090931D0480931C04209129090C
S21401349030912A098091B5049091B604820F931F4A
S2140134A099230CF40196959587959093B60480938D
S2140134B0B504D9C080911F098093E1088091200945
S2140134C08093E208809121098093E3088091220984
S2140134D08093E408809123098093E508E6E4FCE004
S2140134E0909124098081892B8083E7E4FCE0909108
S2140134F025099C7080818370892B808380912609A1
S2140135008093BB04809127098093960280912809B5
S21401351080934F09809129098093B704A4C08091B4
S2140135201F098093D708809120098093D80880913D
S21401353021098093D908809122098093DA08809125
S2140135402309909124099093DC088093DB088091ED
S2140135502509909126099093DE088093DD088091D5
S2140135606B0890916C08813849F48091BD048111F3
S21401357005C08091270981588093BD048091270951
S214013580992787FD909590936C0880936B0880919E
S21401359028098093F3038091290990912A09AA2783
S2140135A097FDA095BA2F880F991FAA1FBB1FAC01C4
S2140135B0BD01440F551F661F771F440F551F661F19
S2140135C0771F840F951FA61FB71F8093F403909350
S2140135D0F503A093F603B093F70345C080911F0946
S2140135E08093BA04809120098093B90480912109BF
S2140135F08093B80480912209882349F0909157015D
S214013600992319F09151933010F4809357018091CA
S21401361025099091260990938604809385048091CC
S214013620230980938D048091240980938C048091D2
S214013630270980938B0480912809809389048091BF
S214013640290990912A0990936606809365060BC016
S2140136500E943E6108C010926B0410926A04109298
S2140136606904109268041F910F91FF90EF90DF900C
S214013670CF9008958091D608882321F1459887EE4A
S21401368098E09093E0088093DF08E091BC0481E025
S2140136908E0F8093BC04F0E0E956FD4F9081909325
S2140136A0E9088D3010F01092BC041092D60804DBA5
S2140136B081E08093E6088091E708809308098EBD33
S2140136C081E0089580E008951F920F920FB60F9241
S2140136D011240BB60F922F933F934F935F936F93E3
S2140136E07F938F939F93AF93BF93EF93FF938091B5
S2140136F0CC04882329F08091CC0481508093CC049B
S2140137008091B004882319F081508093B004809191
S214013710C304882321F081508093C30453C089E0F9
S2140137208093C3048091D2049091D3040196909320
S214013730D3048093D2048091A6028F5F8170809318
S214013740A602811109C08091D104843028F48091A9
S214013750D1048F5F8093D104349903C081E08093B4
S214013760CA048091CD049091CE04892B09F18091F1
S214013770CD049091CE040B9750F08091CD0490919A
S214013780CE040A979093CE048093CD0404C0109281
S214013790CE041092CD042091CD043091CE048091B8
S2140137A0A9029091AA0282239323892B41F409C08E
S2140137B08FEF9FEF9093AA028093A90202C0479AC7
S2140137C001C047988091CA04882309F460C080919B
S2140137D0A40281115CC080915C0683FF58C0349BB3
S2140137E010C08091CF049091D00401969093D0049C
S2140137F08093CF04893E934008F449C01092CA04CE
S21401380046C08091CF049091D004892BE1F180913C
S214013810CF049091D0048A369140A8F54091CF0408
S2140138205091D004E091CF04F091D0049A01ADE913
S214013830BFE80E94B3B1481B590B56954795840FB4
S214013840951F96958795929582958F7089279F707B
S2140138508927E80FF91FF093D004E093CF048091F5
S214013860CF049091D0040B9750F08091CF049091A3
S214013870D0040A9790934F0180934E0104C0109292
S2140138804F0110924E011092D0041092CF04FF9176
S214013890EF91BF91AF919F918F917F916F915F91C2
S2140138A04F913F912F910F900BBE0F900FBE0F902F
S2140138B01F9018952091D2043091D3042F5F3F4F6B
S2140138C0820F931F08952091D2043091D304821B56
S2140138D0930B88279078892F86950895FF920F93EA
S2140138E01F93CF93DF93C091D204D091D304219636
S2140138F0C80FD91F0AE710E00F2EFFECFF2EF02DA0
S21401390008C080910F01882321F010920F01F80161
S214013910F082CE01D8DF8823A1F3DF91CF911F91EA
S2140139200F91FF9008958FB7F8945F983E9A469A44
S214013930E0EBF0E090819F7090839081936090839C
S214013940A1EBB0E09C919B739C939C919B609C9394
S2140139501092B2009FEF9093B3009081906890838D
S214013960E0E7F0E090819A7F908390819260908367
S2140139708FBF08958091D2049091D3040B969093B3
S21401398052098093510982E085BD83EB84BD8FEF98
S21401399088BD84EB87BD86E086BDEEE6F0E08081DB
S2140139A08160808308958091B70582FF32C050916F
S2140139B06E0520916D0540E5249F900111248091AC
S2140139C02F0180580AF48D5F482F459545958091C3
S2140139D0A7029091A80266E0460280199109112477
S2140139E0281739072CF03093A8022093A7020895D0
S2140139F04CE3549F90011124821793072CF4909363
S214013A00A8028093A70208953093A8022093A702E4
S214013A10089580912F0160E4869FC0011124909340
S214013A20A8028093A70208958F929F92AF92BF92A9
S214013A30CF92DF92EF92FF920F931F93E09175055D
S214013A40F0E0E553FD4FA681E0818091AF02813021
S214013A5009F031C18091B90588230CF447C0209143
S214013A604204309143044091440450914504BB27DD
S214013A70A7FDB0950E94D2B18B019C01992324F435
S214013A8001581F4F2F4F3F4F68017901689416F870
S214013A90F594E794D794C7941694D1F720913E04F1
S214013AA030913F044091400450914104AE2FBB2712
S214013AB0A7FDB0950E94D2B14B015C0199232CF46D
S214013AC02FE7820E911CA11CB11CD501C40168947C
S214013AD016F8B595A795979587951694D1F79701FA
S214013AE08601081B190B2A0B3B0B03C000E010E0F4
S214013AF09801E0912D016091B5047091B604CB0157
S214013B00880F991F880F991F880F991F861B970B7F
S214013B10AA2797FDA095BA2FA9019801281B390B52
S214013B204A0B5B0BAE2FB0E00E94C8B16B017C0163
S214013B30992334F43FEFC30E31E0D31EE11CF11C90
S214013B400B2EB9E0F594E794D794C794BA95D1F7BC
S214013B50B02DE091B705E2FF09C08091A7029091D0
S214013B60A8029093AE028093AD0219C04091AD02B7
S214013B705091AE022091AD023091AE028091A70223
S214013B809091A802841B950B6091740570E00E94C9
S214013B9056B1260F371F3093AE022093AD02E0FFD9
S214013BA018C08091AD029091AE0299230CF40F9645
S214013BB095958795959587959595879595958795E7
S214013BC0AA2797FDA095BA2FC80ED91EEA1EFB1E7E
S214013BD01BC08091AD029091AE0299230CF40F9612
S214013BE095958795959587959595879595958795B7
S214013BF0AA2797FDA095BA2F9C01AD012C193D0966
S214013C004E095F0969017A012091A905222321F154
S214013C1030E08091C6049091C704289FB001299F87
S214013C20700D389F700D1124CB01AA2797FDA09522
S214013C30BA2FBC01CD016C0D7D1D8E1D9F1D2F5F02
S214013C403F4F442737FD4095542F0E948BB1309348
S214013C50C7042093C60404C0D092C704C092C60409
S214013C6080916D0590E0880F991F880F991F20910C
S214013C70C6043091C704281739072CF49093C7045B
S214013C808093C60412C080916E0590E0880F991F3C
S214013C90880F991F2091C6043091C7048217930795
S214013CA024F49093C7048093C6048091AF028F5F7B
S214013CB08093AF0207C1C0902C01D12CE12CF12CCE
S214013CC020913E0430913F044091400450914104BC
S214013CD0BB27A7FDB0950E94D2B18B019C01992309
S214013CE024F401581F4F2F4F3F4F48015901689444
S214013CF016F8B594A794979487941694D1F72091C3
S214013D004204309143044091440450914504AE2F3F
S214013D10BB27A7FDB0950E94D2B18B019C019923C8
S214013D2024F401581F4F2F4F3F4FD901C801689403
S214013D3016F8B595A795979587951694D1F7BC0172
S214013D40CD01680D791D8A1D9B1DA70196010E9454
S214013D5027B16B017C01992334F43FEFC30E31E0A8
S214013D60D31EE11CF11C0B2EB9E0F594E794D79411
S214013D70C794BA95D1F7B02D4091AB025091AC02E1
S214013D802091AB023091AC0280912E0160E4869FB7
S214013D90C0011124841B950B6091740570E00E948C
S214013DA056B1260F371F3093AC022093AB02809199
S214013DB0B70581FF18C08091AB029091AC029923A0
S214013DC00CF40F9695958795959587959595879576
S214013DD095958795AA2797FDA095BA2FC80ED91E47
S214013DE0EA1EFB1E1BC08091AB029091AC02992388
S214013DF00CF40F9695958795959587959595879546
S214013E0095958795AA2797FDA095BA2F9C01AD0198
S214013E102C193D094E095F0969017A014091AA05ED
S214013E20442329F150E08091C4049091C504489F31
S214013E30B001499F700D589F700D1124CB01AA2720
S214013E4097FDA095BA2FBC01CD016C0D7D1D8E1D71
S214013E509F1D9A012F5F3F4F442737FD4095542FF2
S214013E600E948BB13093C5042093C40404C0D09241
S214013E70C504C092C4048091710590E0880F991F13
S214013E80880F991F2091C4043091C504281739075B
S214013E902CF49093C5048093C40412C080917205DB
S214013EA090E0880F991F880F991F2091C4043091C4
S214013EB0C5048217930724F49093C5048093C40421
S214013EC01092AF021F910F91FF90EF90DF90CF906D
S214013ED0BF90AF909F908F9008951F920F920FB64C
S214013EE00F9211240BB60F922F933F934F938F93FC
S214013EF09F93EF93FF938091C2048111F9C0809143
S214013F00B00086FFBCC0E0EBF0E080818F7B808351
S214013F10E091C104E11119C0409173052DED36E021
S214013F20429FC001439F900D11242091BF04309100
S214013F30C004821B930B9093C9048093C80410920B
S214013F40C0041092BF04469AD0C0809173058E17A4
S214013F5038F48AE090E09093C9048093C804C5C001
S214013F6089EA93E09093C9048093C804E33009F189
S214013F7028F4E13041F0E23089F045C0E43039F10F
S214013F80E53099F140C08091C6049091C7048755E9
S214013F909E4F9093C9048093C80444C08091C40482
S214013FA09091C50487559E4F9093C9048093C80489
S214013FB039C08091380690E0880F991F880F991FA5
S214013FC087559E4F9093C9048093C8042BC0809157
S214013FD0190690E0880F991F880F991F87559E4FE5
S214013FE09093C9048093C8041DC08091410690E057
S214013FF0880F991F880F991F87559E4F9093C90464
S2140140008093C8040FC0F0E0EE0FFF1FEF5CF74F80
S21401401080819181880F991F87559C4F9093C90481
S2140140208093C8048091C8049091C9048D3D25E011
S214014030920738F08CED95E09093C9048093C804FC
S21401404009C08737914030F487E791E09093C9041F
S2140140508093C8048091C8049091C9048C5B91092F
S2140140609093C9048093C8042091BF043091C00482
S214014070820F931F9093C0048093BF0436C0E0EB79
S214014080F0E08081806480838CEB90E09093C9049B
S2140140908093C8048091BF049091C00484549F4FBC
S2140140A09093C0048093BF048091CB04882321F0B1
S2140140B080910404811104C08091CB04823011F4F4
S2140140C0469801C0469A2091C1042F5F2093C104EF
S2140140D030E08091730590E00196821793072CF4E7
S2140140E081E08093AF021092C10481E08093C20404
S2140140F08091C8049091C9048F3721E0920770F02F
S2140141008FEF8093B3008091C8049091C9048F5FAC
S21401411091099093C9048093C8042DC08F3F9105DF
S21401412011F108F18F5F91098F37910570F480E8DE
S2140141308093B3008091C8049091C9048058910976
S2140141409093C9048093C80416C08FEF8093B30080
S2140141508091C8049091C9048F5F91099093C90416
S2140141608093C80408C08093B3001092C9041092CB
S214014170C8041092C204FF91EF919F918F914F91C5
S2140141803F912F910F900BBE0F900FBE0F901F9077
S21401419018952FB7F8943998389A98B1936098B9CA
S2140141A0E9EBF0E090819C7F90839AE29093B800CF
S2140141B01092E3041092E2041092E104882331F194
S2140141C0E5EAF9E089E59AE0DF011E971C9211966F
S2140141D01C9211961C9211961C9211961C92119685
S2140141E01C9211961C9211961C92108211961C928A
S2140141F011961C9211961C9211961C9211961C9265
S21401420011961C923F96E817F907F1F678942FBF9E
S21401421008950F931F93CF93DF931092E304CCEB93
S214014220D0E084E9888380E888831092BD001092EC
S214014230BA000BEB10E0F80110821092B900109250
S214014240B8001092E00480E0A4DFF801108285E84F
S21401425088838091DE0482608093DE04DF91CF91B3
S2140142601F910F9108951F920F920FB60F9211246E
S2140142700BB60F922F933F934F938F939F93AF93CA
S214014280BF93EF93FF938091E30491E0980F90938F
S214014290E30490E08730910508F0D8C2FC01E055B0
S2140142A0FF4F0C94A7B181E08093E004E091E20413
S2140142B0F0E0EE0FFF1FEE0FFF1FE953FA4F858563
S2140142C01816CCF08091E2048C30A8F48091E204B8
S2140142D08F5F8093E204E091E204F0E0EE0FFF1FAF
S2140142E0EE0FFF1FE953FA4F8585181624F08091CB
S2140142F0E2048C3058F39091E2048BEA989F812D6A
S2140143001124869586958695282F220F820F880F71
S214014310880F981B9093E2048091D9048F5F809355
S214014320D9049091B202981798F41092D904109279
S214014330DD041092DC0485E08093E3048091E104BF
S214014340880F8D5A8093BB0085E88093BC0094C289
S2140143508091E204880F8E5A8093BB0085E8809393
S214014360BC008AC2A091E2048FE08A9FD00111248A
S214014370A956B64F11969C919093BB0095E89093E1
S214014380BC00E091E2048E9FF0011124E956F64F3D
S214014390808180FD04C084E08093E3046DC2E091D7
S2140143A0E2042FE0E29FF0011124E956F64F8281E4
S2140143B0882329F080913D05873008F45DC28091FD
S2140143C0DC049091DD04892B09F056C28091DA0451
S2140143D09091DB04892B09F04FC284E08093E304BB
S2140143E04BC24091E2042091DA043091DB0481E073
S2140143F090E002C0880F991F4A95E2F78223932323
S214014400892B59F0E091E2048FE0E89FF001112436
S214014410E956F64F80E1848309C0E091E2042FE07B
S214014420E29FF0011124E956F64F1482A091E204AE
S214014430E091E2048FE08A9FD0011124A956B64F7D
S21401444014969C91990F990F990F8E9FF001112444
S214014450E956F64F82818770892B8093BB0085E8E9
S2140144608093BC004091E2042091DC043091DD048D
S21401447081E090E002C0880F991F4A95E2F78223F7
S2140144809323892B51F08FE899E09093D804809379
S214014490D70488E08093D604EFC184E08093E304D8
S2140144A0EBC1E091D704F091D80480818093BB00E2
S2140144B085E88093BC008091D7049091D80401963A
S2140144C09093D8048093D7048091D604815080932A
S2140144D0D604882309F4D0C183E08093E304CCC1D9
S2140144E08091B900803311F58091D504811105C002
S2140144F08091E2048F5F8093D504E091E2048FE01F
S214014500E89FF0011124E956F64F83818F7790E0FA
S2140145108F3791055CF4E091E2042FE0E29FF00111
S2140145201124E956F64F83818F5F83831092E3044B
S214014530ECEBF0E084E980838AE090E09093B102AE
S2140145408093B0028091E2048F5F8093E204109220
S214014550E3048091DE048E7F8093DE0485EA808307
S2140145608BC18091B9008034A1F1E091E1048FE024
S214014570E89FF0011124E956F64F83818F778383F4
S2140145808091E1048F5F8093E1048C30A8F0109253
S214014590E1041092DB041092DA048091D4048F5F58
S2140145A08C3018F48093D40407C01092D404809100
S2140145B0DE048D7F8093DE048091DE04816080932B
S2140145C0DE041092E30484E98093BC001092E004B8
S2140145D07AC0E091E1048FE08E9FF0011124E95644
S2140145E0F64F938190689383E091E1048E9FF001EA
S2140145F01124E956F64F808180FF3CC0E091E1042A
S2140146002FE0E29FF0011124E956F64F84818823BA
S214014610B1F0803109F04CC08FE899E09093D8044E
S2140146208093D70488E08093D604E091E1048FE07C
S214014630E89FF0011124E956F64F148239C08091A3
S214014640E1042FE0829FC00111248456964F909377
S214014650D8048093D7049091E1048091D4049813F0
S21401466005C08091B3028093D60422C081E0809376
S214014670D60422C08091E1042FE0829FC00111245C
S2140146808456964F9093D8048093D7048091DE0485
S21401469081FD06C09091E1048091D404981304C072
S2140146A082E08093D6040CC081E08093D60404C0D7
S2140146B08091D604813021F485E88093BC0003C044
S2140146C085EC8093BC008091D5048093DF04109222
S2140146D0D504D2C08091BB00E091D704F091D804F4
S2140146E08193F093D804E093D7048091D604815047
S2140146F08093D604823020F085EC8093BC00A2C063
S214014700813021F485E88093BC009CC08091DE0452
S21401471081FF52C08091CB0380FD4EC0E091E10441
S2140147208FE0E89FF0011124E956F64F86818C7FD1
S214014730883F61F4E091E1042FE0E29FF00111244B
S214014740E956F64F80818160808309C0E091E104DB
S2140147508FE0E89FF0011124E956F64F1082E091B0
S214014760E1042FE0E29FF0011124E956F64F86811D
S214014770883F61F4E091E1048FE0E89FF0011124A5
S214014780E956F64F80818660808316C0E091E10489
S2140147902FE0E29FF0011124E956F64F8681893F0A
S2140147A059F4E091E1048FE0E89FF0011124E95605
S2140147B0F64F8081846080838091CB0381FF19C08E
S2140147C0E091E1042FE0E29FF0011124E956F64F53
S2140147D086818E3F70F4E091E1048FE0E89FF0015E
S2140147E01124E956F64F86858F5F868789E0809388
S2140147F057018091E1048F5F8093E1048C30A8F02B
S2140148001092E1041092DB041092DA048091D40431
S2140148108F5F8C3018F48093D40407C01092D404B0
S2140148208091DE048D7F8093DE041092E30484E998
S2140148308093BC008091DE0481608093DE04109238
S214014840E0041AC086E08093E30416C01092E304E5
S21401485084E98093BC008091DE0481608093DE044D
S2140148608AE090E09093B1028093B0021092E20445
S2140148701092E1041092E004FF91EF91BF91AF9185
S2140148809F918F914F913F912F910F900BBE0F905B
S2140148900FBE0F901F901895EF92FF920F931F93E4
S2140148A0CF93DF93182F90910304911198C08091B4
S2140148B0F504811196C01D3008F095C01123D9F07A
S2140148C0212F30E0215031098FE0829FF001839F34
S2140148D0F00D1124E956F64F838188230CF085C02C
S2140148E08FE0829FF001839FF00D1124E956F64F69
S2140148F0808180FF7CC080918F098B70823009F0A7
S21401490078C067E070E08FE899E00E943E239091BE
S2140149109609981370C0F090B2028CE08093B202B0
S21401492024E630E03093B1022093B00284E690E0B2
S2140149300E945A9CEC018091DE0480FD05C0CE01E8
S2140149400E94639C8823B9F3111107C08FEF9FE083
S2140149509093DD048093DC040CC0115081E090E05C
S21401496002C0880F991F1A95E2F79093DD04809391
S214014970DC041092E2041092E10488EE93E00E94B7
S2140149805A9CEC010CEB10E00F2EF5EAEF2EF02D01
S2140149901092E3048091DE048E7F8093DE04F8019A
S2140149A0E0828091DE0480FD05C0CE010E94639CFA
S2140149B08823B9F38091DC049091DD04892B29F0DA
S2140149C0CE010E94639C882319F3F092B202809173
S2140149D0DC049091DD04892B81F082E00FC081E038
S2140149E00DC081E00BC082E009C082E007C083E011
S2140149F005C084E003C085E001C080E0DF91CF916F
S214014A001F910F91FF90EF900895FF920F931F93C0
S214014A10CF93DF939091030491117BC09091F5049D
S214014A20911179C08D3008F078C0882309F477C0D9
S214014A30082F10E0015011098FE0809FF001819F3F
S214014A40F00D1124E956F64F838188230CF069C0D6
S214014A508FE0809FF001819FF00D1124E956F64FFB
S214014A60808180FF60C088EE93E00E945A9CEC0132
S214014A708091DE0480FD05C0CE010E94639C8823E0
S214014A80B9F381E090E09C0102C0220F331F0A9522
S214014A90E2F73093DB042093DA041092E2041092DA
S214014AA0E10410928F09109296090CEB10E00F2E7C
S214014AB0F5EAFF2EF02D1092E3048091DE048E7F3E
S214014AC08093DE04F801F0828091DE0480FD05C04B
S214014AD0CE010E94639C8823B9F38091DA049091F9
S214014AE0DB04892B29F0CE010E94639C882319F3ED
S214014AF080918F098B708230C1F467E070E08FE897
S214014B0099E00E943E2390919609981781F085E0DE
S214014B100FC081E00DC081E00BC082E009C086E0D5
S214014B2007C082E005C083E003C084E001C080E0E6
S214014B30DF91CF911F910F91FF9008951F920F92D1
S214014B400FB60F9211240BB60F922F938F939F934C
S214014B50EF93FF938091B70281111CC08091EA0404
S214014B609091EB0401969093EB048093EA04FC0188
S214014B70E659F44F20812D3019F08C3D910539F41A
S214014B801092EB041092EA0481E08093B70220931E
S214014B90C60004C01092EB041092EA04FF91EF9154
S214014BA09F918F912F910F900BBE0F900FBE0F907C
S214014BB01F9018951F920F920FB60F9211240BB6E5
S214014BC00F921F932F933F934F935F936F937F9310
S214014BD08F939F93AF93BF93CF93DF93EF93FF93FF
S214014BE08091EC04813029F48091C6008093CE0038
S214014BF0DEC08091EC04823029F48091C600809357
S214014C008C0AD5C08091C6008093FC041091E904FB
S214014C101C3D10F01092E8048091FC048D3009F0E0
S214014C2065C08091E804823009F060C01092E80403
S214014C30212F30E0D901A657B54F7C91A9014150EB
S214014C405109EA01C457D54F68818091E6049091D5
S214014C50E704871B9109861B91099F709093E704CF
S214014C608093E604BC010024660F771F001C660FC4
S214014C70771F001C672F702D635C6093E5048F73AC
S214014C80835C8093E4049C91691304C0988189171E
S214014C9009F488C08091FA048F5F8093FA048091AA
S214014CA0FB0485C081E08093FB041F5F1093F90429
S214014CB0F901E457F54F8DE0808380918E0A8235A5
S214014CC009F075C080910304811171C00E941D878F
S214014CD02CE088E190E00FB6F894A89580936000E8
S214014CE00FBE209360001092CB0461C08091E8044F
S214014CF08130F1F018F08230B1F151C08091FC049E
S214014D00833239F48091FB04811103C081E08093E2
S214014D10E80481E08093E9048091FC0480938C0A86
S214014D208091FC0490E09093E7048093E6043FC0F2
S214014D3082E08093E80481E0810F8093E904E12F0B
S214014D40F0E08091FC04E457F54F80832091FC0449
S214014D508091E6049091E704820F911D9093E704F9
S214014D608093E60424C0E12FF0E08091FC04E45730
S214014D70F54F80831C3D20F41F5F1093E90402C0A9
S214014D801092E8042091FC048091E6049091E704D7
S214014D90820F911D9093E7048093E60408C0109259
S214014DA0E80405C08091FB04882309F47BCFFF91BA
S214014DB0EF91DF91CF91BF91AF919F918F917F91AD
S214014DC06F915F914F913F912F911F910F900BBE65
S214014DD00F900FBE0F901F901895009781F020E05E
S214014DE030E040E050E0F901E659F44F6081460FAB
S214014DF0511D2F5F3F4F28173907A9F702C040E022
S214014E0050E05F709A010024220F331F001C220F0E
S214014E10331F001C232F302D235CFC01E659F44F71
S214014E2020834F73435CFC01E559F44F4083FC013A
S214014E30E459F44F2DE020831092B70280916A0B5B
S214014E408093C6000895DF92EF92FF920F931F930F
S214014E50CF93DF93CDB7DEB70C8583E280936A0BE1
S214014E608B858F5980936B0B8A8580936C0B0023FF
S214014E7009F4A1C06D857E85ADE0B0E0AC0FBD1F25
S214014E8014962F85388901502115310509F496C0ED
S214014E90D12C83E090E010E02115310509F492C091
S214014EA0FF24F394FD0CFB01ED0DF11D4081215013
S214014EB031092115310599F4002309F485C06D9156
S214014EC07C911197FD01349612962D913C91139782
S214014ED001502115310509F47AC0DF01F12E51E0A8
S214014EE05F0DFB01EF0DF11DE08021503109211509
S214014EF0310591F4002309F46EC06D917C911197F0
S214014F00FD01349612962D913C911397015021156F
S214014F103105D9F0DF01512FDD24D394D50EFB01E5
S214014F20E50FF11DF080215031092115310581F47D
S214014F30002371F06D917C91119712962D913C9101
S214014F40139701501496D12E03C0DF01D12EF12EF6
S214014F50542F56955695535CFC01E659F44F5083F1
S214014F604370E0E14E9FA00111245E2D52955F70C3
S214014F70452B435CFC01E559F44F40834E2D4F70A1
S214014F80440F440F5F2D5295569556955370452BF9
S214014F90435CFC01E459F44F40834F2D4F73435C4F
S214014FA0FC013396E659F44F0496408321153105EA
S214014FB009F072CF05C083E090E002C083E090E084
S214014FC00CDF0CC0412F01C0DF2CE12E05C0DF0134
S214014FD0D12EE12E01C0D52EF12EBACFDF91CF9181
S214014FE01F910F91FF90EF90DF9008957091F90453
S214014FF06AEF670F09F454C0ABEFA70F745043E094
S21401500053E0E52FF0E0E457F54F3081E1E0E50F9E
S214015010F0E0E457F54F20812D53E2E0E50FF0E094
S214015020E457F54F80818D53E3E0E50FF0E05C5FD8
S214015030E457F54FE081922F92959F703D53330FC1
S214015040330FB32FB92B90E1299F90011124982F8C
S21401505096959695292B30E4839FC001112493ECF5
S2140150609E0F892B662309F131E0340FE42FF0E01F
S214015070E457F54FB0834717A9F092E0940FE32F5A
S214015080F0E0E457F54F208363504A1769F04D5F0F
S214015090E92FF0E0E457F54F80836111B2CF05C0E8
S2140150A043E003C0432F01C0492F8FE89AE0909355
S2140150B0F8048093F70443504093F6040895CF9381
S2140150C0DF9300D0CDB7DEB78091FB04882309F4C7
S2140150D049C48CDF80918D0A823609F004C3809121
S2140150E08E0A90E0FC01EB54F109EF32F10508F06D
S2140150F0FAC2E954FF4F0C94A7B1E091F704F0917E
S214015100F8048081918190934F0180934E01EBC208
S2140151108091F904853160F0E091F704F091F8048C
S21401512080E1A7E6BAE001900D928A95E1F710C0FA
S214015130E091F704F091F80480819181A281B38116
S2140151408093670A9093680AA093690AB0936A0AE3
S21401515080EF8093F5048FEF8093B502C4C28091EF
S214015160B7028823E1F31F928DE48F9387EC95E0D5
S2140151709F938F9381E08F938F938EE48F9363DE5B
S21401518083E696E19F938F9388E193E29F938F93B3
S214015190E0917806F0917906099580E00E942C232B
S2140151A00FB6F894DEBF0FBECDBF9DC2E091F704E7
S2140151B0F091F8048081813089F48DE4A7ECB5E0A4
S2140151C001900D928A95E1F70E94AC2581E08983D2
S2140151D0E3E6FAE080818F7E808301C019828091A8
S2140151E0B7028823E1F31F9221E02F93CE010196A7
S2140151F09F938F932F932F938DE48F9324DE0FB677
S214015200F894DEBF0FBECDBF6EC281E08093FE0470
S2140152108FEF8093B50267C280910304811144C069
S214015220E091F704F091F804808196EF980F9A3098
S21401523080F4911103C081E0898306C0963010F492
S214015240998302C085E0898361E089810E9478267E
S21401525027C09CEE980F9A3080F4911103C081E02C
S214015260898306C0963010F4998302C085E089834D
S21401527060E089810E94782613C089838F3F19F4E4
S2140152800E94092689838981811103C081E089836F
S21401529004C0863010F085E0898389810E944E25FE
S2140152A080E00E94905903C00E940926898380915C
S2140152B0B7028823E1F31F9288E88F938EE395E087
S2140152C09F938F931F9221E02F93CE0101969F9378
S2140152D08F9382E08F932F9381E58F93B4DD89813D
S2140152E01F928F9383E596E19F938F9388E193E2D4
S2140152F09F938F93E0917806F0917906099580E067
S2140153000E942C230FB6F894DEBF0FBECDBFEBC1B3
S2140153108091F7049091F804FC01208121502530FA
S21401532090F52181273679F52091030421112BC0B0
S214015330319628E8AEE3B5E001900D922A95E1F7A3
S214015340FC0180810E94262620917F0530E0A4EC96
S214015350B9E00E94B3B16093460170934701809310
S2140153604801909349012091800530E0FCD7609375
S21401537042017093430180934401909345010E943A
S2140153800926898301C019828091B7028823E1F337
S2140153901F9221E02F93CE0101969F938F932F9317
S2140153A02F9383E58F934FDD0FB6F894DEBF0FBEC4
S2140153B0CDBF80910304811108C06EE670E089813B
S2140153C00E94BA2880E00E949059809165050E944B
S2140153D0681889C180910304811185C1E091F704A1
S2140153E0F091F80480819FEF980F953010F40E9499
S2140153F04E250E94092689838091B7028823E1F30E
S2140154001F9221E02F93CE0101969F938F932F93A6
S2140154102F9386E48F9317DD0FB6F894DEBF0FBE89
S214015420CDBF80910304811108C06EE670E08981CA
S2140154300E94BA2880E00E949059809165050E94DA
S214015440681851C119824091F704E42FF091F804CD
S21401545081E190E02191332727FD3095DC01AA0FE9
S214015460BB1FAF5CB74F11963C932E932E2F241B78
S214015470298301968D31910569F735C1E091F704CD
S214015480F091F80480811F928F9385E496E19F93B3
S2140154908F9388E193E29F938F93E0917806F09142
S2140154A07906099580E00E942C23E091F704F0919B
S2140154B0F8048081AADA8A830F900F900F900F90DC
S2140154C00F900F90811103C081E0898301C019827A
S2140154D08091B7028823E1F31F9288E08F938FE8CB
S2140154E099E09F938F931F9221E02F938091F80468
S2140154F08F938091F7048F931F922F93CE0102967C
S2140155009F938F931F922F9301979F938F9384E07E
S2140155108F932F9385E58F9396DC0FB6F894DEBFB5
S2140155200FBECDBFE0C0E091F704F091F804808192
S2140155301F928F9387E396E19F938F9388E193E27F
S2140155409F938F93E0917806F0917906099580E014
S2140155500E942C230F900F900F900F900F900F909A
S2140155608091F604893008F4BEC08091F7049091CA
S214015570F80428E0FC013196AFE8B9E001900D92FD
S2140155802A95E1F7FC01808187D98A83811103C0BE
S21401559081E0898301C019828091B7028823E1F3F3
S2140155A01F9221E02F93CE0102969F938F931F9215
S2140155B02F9301979F938F9382E08F932F9387E585
S2140155C08F9341DC0FB6F894DEBF0FBECDBF8BC004
S2140155D080910304811187C00E941F18898382303D
S2140155E019F0843009F07FC0F894A1ECB0E08C91FA
S2140155F08F738C93E9ECF0E080818F7380838C91BC
S214015600877E8C938081877E80838091C8008823E3
S21401561044F4AEECB0E0E8ECF0E08C9180818823B5
S214015620E4F38091C000882344F4A6ECB0E0E0ECFB
S214015630F0E08C9180818823E4F3E091F704F09107
S214015640F8048081813021F482E08093EC0427C045
S214015650843611F080E401C081E891E09093EC0477
S214015660ADECB0E01C92ECECF0E080838C91809382
S214015670C50080818093C400EAECF0E080818F7DD4
S214015680808380818F7E8083A9ECB0E08C918B7FB4
S2140156908C93808184608083808182608083EAEC41
S2140156A0F0E08081877F8083E2ECF0E08081877F75
S2140156B08083E9ECF0E080818E7F8083A1ECB0E00E
S2140156C08C9188618C938081886180838C918068BD
S2140156D08C9380818068808310926E0010926F0098
S2140156E010927000789480918E0A90E0FC01EB5441
S2140156F0F109EC32F10508F02DC1EA51FF4F27C63A
S2140157008091F904803160F0E091F704F091F8049B
S21401571080E1A7E6BAE001900D928A95E1F710C004
S214015720E091F704F091F80480819181A281B38120
S2140157308093670A9093680AA093690AB0936A0AED
S2140157408091B7028823E1F31F928091B4028F9370
S21401575084E58F9378DB8AEF8093F5048FEF80934F
S214015760B50280EA9FE00E945A9C9093EE048093D3
S214015770ED040F900F900F90EDC0E091F704F091BB
S214015780F8048081918190934F0180934E01E2C08D
S214015790E091F704F091F8048081803218F4809348
S2140157A0B60203C08FE18093B6028FEF8093B502F5
S2140157B0D1C0E091F704F091F8048BE0AFE7BAE0CE
S2140157C001900D928A95E1F78091880A8093880C62
S2140157D08FEF8093B502BEC08091F1049091F204E0
S2140157E0892BC9F4E091F704F091F8042081222373
S2140157F091F030E0C901880F991F220F331F220F45
S214015800331F220F331F820F931F0E945A9C9093BF
S2140158105A0A8093590AE091F704F091F8048081BE
S21401582090E09C01220F331F880F991F880F991F44
S214015830880F991F820F931F9093F2048093F104AF
S21401584080EA9FE00E945A9C9093EE048093ED04B8
S21401585081C08FEF8093B502E091F704F091F804D0
S214015860208130E0C901880F991F220F331F220FB4
S214015870331F220F331F820F931F9093F4048093DC
S214015880F304892B19F081E08093000580EA9FE0FC
S2140158900E945A9C9093EE048093ED045BC08FEFB8
S2140158A08093B502E091F704F091F8048081882393
S2140158B044F082E08093FD041092F0041092EF040D
S2140158C022C080959091A204892B8093A2048181A5
S2140158D090E09C01220F331F880F991F880F991F94
S2140158E0880F991F820F931F9093F0048093EF0403
S2140158F084E08093FD0480EA9FE00E945A9C909386
S214015900EE048093ED0481E08093010523C08FEFC0
S2140159108093B502E091F704F091F80480818093BA
S214015920A30481E08093020515C08091F6048823C4
S21401593051F0E091F704F091F8048081823019F477
S2140159408093FF0407C081E08093FF0403C081E0D9
S214015950809303051092FB041092F8041092F7044A
S2140159601092F6040F900F90DF91CF910895E0EC1E
S214015970F0E0908195FFFDCF8093C6000895E1EC9D
S214015980F0E088E18083A0ECB0E08C9182608C939B
S2140159908081806880838081806480831092C500C6
S2140159A08AE28093C4008091F3049091F4040E94EB
S2140159B05A9C90935C0A80935B0A8CED90E00E945F
S2140159C05A9C90938B0A80938A0A82E080935D0AA0
S2140159D088E080935E0A1092610A8BE080935F0AEA
S2140159E01092600A8FEF8093650A8091540180932C
S2140159F0640A1092F8041092F7041092F6040895BF
S214015A00CF92DF92EF92FF920F931F93CF93DF9384
S214015A10CDB7DEB760970FB6F894DEBF0FBECDBF29
S214015A208091B702882309F4E2C28091ED04909137
S214015A30EE040E94639C882361F01092F004109299
S214015A40EF041092F4041092F3041092F2041092F0
S214015A50F1048091EF049091F004892B41F080913C
S214015A60680B9091690B0E94639C811105C080911F
S214015A700105882309F45CC08091B702882309F4E4
S214015A8057C08091FD048430A8F00E9427871F929A
S214015A9080E58F9380EE97E09F938F9381E08F93BD
S214015AA08F9388E48F93CFD90FB6F894DEBF0FBEDD
S214015AB0CDBF32C01092A40482E296E19F938F93E9
S214015AC080E197E89F938F93E0917806F0917906AD
S214015AD009951F9284E18F9380EE97E09F938F93B1
S214015AE01F9221E02F938DEF94E09F938F9382E096
S214015AF08F932F9388E48F93A6D98091FD040FB6D8
S214015B00F894DEBF0FBECDBF843020F48F5F809344
S214015B10FD0402C01092FD048091EF049091F00400
S214015B200E945A9C9093690B8093680B1092010512
S214015B3080910205882339F18091B702882319F1F3
S214015B400E9427871F9280E58F9380EE97E09F93B0
S214015B508F931F9221E02F9380E992E09F938F937A
S214015B601F922F9383EA94E09F938F9383E08F9302
S214015B702F938CE48F9367D9109202050FB6F89491
S214015B80DEBF0FBECDBF8091FF04882309F45BC042
S214015B909091B702992309F456C0823061F580913D
S214015BA0E10889838091E2088A838091E3088D83E6
S214015BB08091E50888878FEF8E838F8380915F0AB7
S214015BC08B838091650A89878091660A8A871C8201
S214015BD01F928AE08F93CE0101969F938F9381E067
S214015BE08F938F9386E58F932ED90FB6F894DEBFE9
S214015BF00FBECDBF12C01F928AE08F938DE59AE04B
S214015C009F938F9381E08F938F9386E58F931BD914
S214015C100FB6F894DEBF0FBECDBF1092FF0481E130
S214015C2096E19F938F9388E193E29F938F93E09100
S214015C307806F0917906099588E00E942C230F904A
S214015C400F900F900F90809103058823D1F08091DB
S214015C50B7028823B1F01F928BE08F938FE79AE00B
S214015C609F938F9381E08F938091B4028F9387E403
S214015C708F93E9D8109203050FB6F894DEBF0FBED6
S214015C80CDBF8091F3049091F404892B41F080916B
S214015C905B0A90915C0A0E94639C811104C080910A
S214015CA00005882331F18091B702882311F10E9403
S214015CB0C1271F9282E48F9386E49CE09F938F9383
S214015CC081E08F938F9384E48F93BDD81092000563
S214015CD08091F3049091F4040FB6F894DEBF0FBEE2
S214015CE0CDBF009731F00E945A9C90935C0A809336
S214015CF05B0A8091F1049091F204892B09F49DC00E
S214015D008091590A90915A0A0E94639C882309F44B
S214015D1094C08091B702882309F48FC00BE41AE07F
S214015D208091EA089091EB08F80191838083809135
S214015D30EC089091ED0890934E0A80934D0A80915D
S214015D406E0690916F06A0917006B0917106880F4D
S214015D50991FAA1FBB1FAC01BD01440F551F661F2B
S214015D60771F440F551F661F771F6C017D01C40EF8
S214015D70D51EE61EF71EC701B601209121013091FE
S214015D8022014091230150912401C5D23093500A3B
S214015D9020934F0A8091260490912704A09128040D
S214015DA0B0912904072E79E0B595A7959795879523
S214015DB07A95D1F7702D8093510A809122049091A3
S214015DC02304A0912404B0912504072E79E0B5950B
S214015DD0A795979587957A95D1F7702D8093520A56
S214015DE080912E0490912F04A0913004B09131043B
S214015DF0072E79E0B595A795979587957A95D1F76A
S214015E00702D8093530A1F928EE08F931F930F93EA
S214015E1081E08F938F9383E48F9315D88091F1045B
S214015E209091F2040E945A9C90935A0A8093590AC0
S214015E300FB6F894DEBF0FBECDBF6091B6026F3FBE
S214015E4041F130E1639FB00111246159794E40E17F
S214015E5050E08E010F5F1F4FC801E1D21F9280E113
S214015E608F931F930F931F9221E02F9386EB92E05F
S214015E709F938F9382E08F932F9381E48F930E9459
S214015E8023A78FEF8093B6020FB6F894DEBF0FBE3E
S214015E90CDBF8091880C8823C1F08091B7028823FA
S214015EA0A1F01F9221E02F9388E89CE09F938F93A7
S214015EB02F932F9382E48F930E9423A71092880C2E
S214015EC00FB6F894DEBF0FBECDBF8091FE048823C7
S214015ED0C9F08091B7028823A9F01F9286E48F93B8
S214015EE081E398E09F938F9381E08F938F9380E572
S214015EF08F930E9423A71092FE040FB6F894DEBF7C
S214015F000FBECDBF80918A0A90918B0A0E94639C36
S214015F10882309F44FC08091B702882309F44AC048
S214015F208091A40281112AC0E7E7FAE08091EA088D
S214015F309091EB08918380838091EC089091ED0815
S214015F4090937A0A8093790A8091E00380937B0A82
S214015F508091DF0380937C0A1F9288E08F93FF93E2
S214015F60EF9381E08F9383E08F938BE68F930E946C
S214015F7023A70FB6F894DEBF0FBECDBF80917D0A72
S214015F80853018F086E080937D0A8091CA048823C4
S214015F9049F083E690E00E945A9C90938B0A809386
S214015FA08A0A08C087EE93E00E945A9C90938B0A57
S214015FB080938A0A809176038823C9F08091B7027C
S214015FC08823A9F01F9281E28F938CE195E09F933D
S214015FD08F9381E08F938F9380E38F930E9423A703
S214015FE0109276030FB6F894DEBF0FBECDBF609653
S214015FF00FB6F894DEBF0FBECDBFDF91CF911F91D4
S2140160000F91FF90EF90DF90CF9008950895089537
S2140160105058BB27AA270ED0E0C0D1D030F0D6D03A
S21401602020F031F49F3F11F41EF4C6C00EF4E09543
S214016030E7FBBCC0E92FE2D080F3BA17620773070B
S2140160408407950718F071F49EF5FAC00EF4E095F2
S2140160500B2EBA2FA02D0B01B90190010C01CA011C
S214016060A0011124FF27591B99F0593F50F4503EC7
S21401607068F11A16F040A22F232F342F4427585FB9
S214016080F3CF469537952795A795F0405395C9F7D1
S2140160907EF41F16BA0B620B730B840BBAF0915089
S2140160A0A1F0FF0FBB1F661F771F881FC2F70EC028
S2140160B0BA0F621F731F841F48F4879577956795FB
S2140160C0B795F7959E3F08F0B3CF9395880F08F0E4
S2140160D09927EE0F97958795089598D088F09F5742
S2140160E090F0B92F9927B751A0F0D1F0660F771F1E
S2140160F0881F991F1AF0BA95C9F712C0B13081F0FE
S2140161009FD0B1E008959CC0672F782F8827B85F8D
S21401611039F0B93FCCF3869577956795B395D9F75E
S2140161203EF490958095709561957F4F8F4F9F4F68
S2140161300895E89409C097FB3EF490958095709574
S21401614061957F4F8F4F9F4F9923A9F0F92F96E9BD
S214016150BB279395F695879577956795B795F11132
S214016160F8CFFAF4BB0F11F460FF1BC06F5F7F4FCF
S2140161708F4F9F4F16C0882311F096E911C07723E1
S21401618021F09EE8872F762F05C0662371F096E8EA
S214016190862F70E060E02AF09A95660F771F881FB9
S2140161A0DAF7880F9695879597F9089597F99F6777
S2140161B080E870E060E008959FEF80EC0895002489
S2140161C00A941616170618060906089500240A9456
S2140161D012161306140605060895092E0394000CDC
S2140161E011F4882352F0BB0F40F4BF2B11F460FF6B
S2140161F004C06F5F7F4F8F4F9F4F089557FD905894
S214016200440F551F59F05F3F71F04795880F97FB74
S214016210991F61F09F3F79F087950895121613062E
S2140162201406551FF2CF4695F1DF08C0161617065D
S2140162301806991FF1CF8695710561050894089592
S214016240E894BB2766277727CB0197F90895DB01EA
S2140162508F939F939DD0BF91AF91A29F800D911D6B
S214016260A39F900DB29F900D11240895991B79E07C
S21401627004C0991F961708F0961B881F7A95C9F7D0
S21401628080950895AA1BBB1B51E107C0AA1FBB1F1F
S214016290A617B70710F0A61BB70B881F991F5A95AC
S2140162A0A9F780959095BC01CD01089597FB072E1F
S2140162B016F4009406D077FD08D0E4DF07FC05D07D
S2140162C03EF4909581959F4F0895709561957F4F07
S2140162D00895A1E21A2EAA1BBB1BFD010DC0AA1F21
S2140162E0BB1FEE1FFF1FA217B307E407F50720F039
S2140162F0A21BB30BE40BF50B661F771F881F991FB4
S2140163001A9469F760957095809590959B01AC01FC
S214016310BD01CF010895052E97FB16F400940FD00A
S21401632057FD05D0D6DF07FC02D046F408C05095CD
S2140163304095309521953F4F4F4F5F4F089590956B
S2140163408095709561957F4F8F4F9F4F0895EE0F03
S214016350FF1F0590F491E02D099405D0332312F424
S2140163608A1B9B0B10C0A29FB001B39FC001A39FC5
S214016370700D811D1124911DB29F700D811D112478
S214016380911D0895F0DFB7FF0895821B930B0895C2
S214016390EADFA59F900DB49F900DA49F800D911DDF
S2140163A011240895B7FFF4CFF3DF821B930B0895F2
S2140163B02F923F924F925F926F927F928F929F920F
S2140163C0AF92BF92CF92DF92EF92FF920F931F93FD
S2140163D0CF93DF93CDB7DEB7CA1BDB0B0FB6F894AE
S2140163E0DEBF0FBECDBF09942A88398848885F84EE
S2140163F06E847D848C849B84AA84B984C884DF805F
S214016400EE80FD800C811B81AA81B981CE0FD11D42
S2140164100FB6F894DEBF0FBECDBFED010895FB01A8
S214016420DC0102C005900D9241505040D8F7089506
S214016430FC014150504030F001900616D1F73197DB
S214016440CF010895882799270895FB01DC0102C032
S21401645001900D9241505040D8F70895DC01CB01D0
S214016460FC01F999FECF06C0F2BDE1BDF89A31965E
S21401647000B40D9241505040B8F70895F999FECFF7
S21401648092BD81BDF89A992780B50895A8E1B0E03C
S21401649042E050E0E5CFDC01CB0102C02D9105D0F2
S2140164A041505040D8F70895262FF999FECF1FBACC
S2140164B092BD81BD20BD0FB6F894FA9AF99A0FBE27
S2120164C001960895F1DF272FF0CFF894FFCF55
S2140164CEF7FFFCFF70FF01010F64070610F40101D0
S2140164DEFF03007D0000C409C409960064E8036446
S2140164EE200B050000ECFF6440415A4655326464A9
S2140164FE0A969696960864403A1030380132FF0393
S21401650E7F0090D0030090D0030032002064FFFF7E
S21401651E0104035E0A0101150101010101014D4B42
S21401652E20202020202020202020200100000000F6
S21401653E00566F6C7461676520202056202001007E
S21401654E0000000143757272656E74202020412092
S21401655E20010000000001436170616369747920B7
S21401656E20416820010000000002416C74697475B8
S21401657E646520206D2020010000000000436F6D31
S21401658E70617373202020B02020010000000000EF
S21401659E536174732020202020202020200100002B
S2140165AE000000537065656420202020206D2F7337
S2140165BE01000000000044697374616E636520205B
S2140165CE6D2020010000000000486F6D652D4469A6
S2140165DE722020B020200100000000006D61782E90
S2140165EE54656D702E20B043200100000000004D52
S2140165FE61676E2E6669656C6425202001000000B9
S21401660E0000566172696F20202020202020200174
S21401661E00000000004572726F72436F64652020A1
S21401662E20200100000000004C61746974756465D9
S21401663E20202020200900000000004C6F6E6769A4
S21401664E74756465202020200900000000000101F9
S21401665E13D201010168200B0A130B0E100B0A0C44
S21401666E0F0B1110FA20010020FFFFC01FC01F01E3
S21401667E64000C090164FF0151756164726F0000BC
S21401668E00000000004167696C6500000204060701
S21401669E0808080706040200FEFCFAF9F8F8F8F9ED
S20E0166AEFAFCFE00020406070808C5
S804000000FB
/branches/V2.08a_Rens_Testversion/FlightCtrl/Debug/Makefile
0,0 → 1,289
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
 
SHELL := cmd.exe
RM := rm -rf
 
USER_OBJS :=
 
LIBS :=
PROJ :=
 
O_SRCS :=
C_SRCS :=
S_SRCS :=
S_UPPER_SRCS :=
OBJ_SRCS :=
ASM_SRCS :=
PREPROCESSING_SRCS :=
OBJS :=
OBJS_AS_ARGS :=
C_DEPS :=
C_DEPS_AS_ARGS :=
EXECUTABLES :=
OUTPUT_FILE_PATH :=
OUTPUT_FILE_PATH_AS_ARGS :=
AVR_APP_PATH :=$$$AVR_APP_PATH$$$
QUOTE := "
ADDITIONAL_DEPENDENCIES:=
OUTPUT_FILE_DEP:=
LIB_DEP:=
LINKER_SCRIPT_DEP:=
 
# Every subdirectory with source files must be described here
SUBDIRS :=
 
 
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../analog.c \
../capacity.c \
../debug.c \
../eeprom.c \
../fc.c \
../FlightCtrl.c \
../GPS.c \
../hottmenu.c \
../jetimenu.c \
../jeti_ex.c \
../led.c \
../menu.c \
../mymath.c \
../rc.c \
../sbus.c \
../Spektrum.c \
../spi.c \
../timer0.c \
../twimaster.c \
../uart.c \
../user_receiver.c
 
 
PREPROCESSING_SRCS += \
../isqrt.S
 
 
ASM_SRCS +=
 
 
OBJS += \
analog.o \
capacity.o \
debug.o \
eeprom.o \
fc.o \
FlightCtrl.o \
GPS.o \
hottmenu.o \
isqrt.o \
jetimenu.o \
jeti_ex.o \
led.o \
menu.o \
mymath.o \
rc.o \
sbus.o \
Spektrum.o \
spi.o \
timer0.o \
twimaster.o \
uart.o \
user_receiver.o
 
OBJS_AS_ARGS += \
analog.o \
capacity.o \
debug.o \
eeprom.o \
fc.o \
FlightCtrl.o \
GPS.o \
hottmenu.o \
isqrt.o \
jetimenu.o \
jeti_ex.o \
led.o \
menu.o \
mymath.o \
rc.o \
sbus.o \
Spektrum.o \
spi.o \
timer0.o \
twimaster.o \
uart.o \
user_receiver.o
 
C_DEPS += \
analog.d \
capacity.d \
debug.d \
eeprom.d \
fc.d \
FlightCtrl.d \
GPS.d \
hottmenu.d \
isqrt.d \
jetimenu.d \
jeti_ex.d \
led.d \
menu.d \
mymath.d \
rc.d \
sbus.d \
Spektrum.d \
spi.d \
timer0.d \
twimaster.d \
uart.d \
user_receiver.d
 
C_DEPS_AS_ARGS += \
analog.d \
capacity.d \
debug.d \
eeprom.d \
fc.d \
FlightCtrl.d \
GPS.d \
hottmenu.d \
isqrt.d \
jetimenu.d \
jeti_ex.d \
led.d \
menu.d \
mymath.d \
rc.d \
sbus.d \
Spektrum.d \
spi.d \
timer0.d \
twimaster.d \
uart.d \
user_receiver.d
 
OUTPUT_FILE_PATH +=FlightCtrl.elf
 
OUTPUT_FILE_PATH_AS_ARGS +=FlightCtrl.elf
 
ADDITIONAL_DEPENDENCIES:=
 
OUTPUT_FILE_DEP:= ./makedep.mk
 
LIB_DEP+= \
C:/Users/SIE-AV/Documents/Atmel\ Studio/6.2/FlightCtrl/FlightCtrl/libfc1284.a
 
LINKER_SCRIPT_DEP+=
 
 
# AVR32/GNU C Compiler
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
./%.o: .././%.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 4.8.1
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -DF_CPU=20000000 -DVERSION_MAJOR=2 -DVERSION_MINOR=8 -DVERSION_PATCH=0 -DVERSION_SERIAL_MAJOR=11 -DVERSION_SERIAL_MINOR=0 -DNC_SPI_COMPATIBLE=71 -DLIB_FC_COMPATIBLE=7 -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=atmega1284 -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
@echo Finished building: $<
 
 
 
# AVR32/GNU Preprocessing Assembler
 
 
 
# AVR32/GNU Assembler
./isqrt.o: .././isqrt.S
@echo Building file: $<
@echo Invoking: AVR32/GNU Assembler : 4.8.1
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -Wa,-gdwarf2 -x assembler-with-cpp -c -mmcu=atmega1284 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -mrelax -Wa,-g -o "$@" "$<"
@echo Finished building: $<
 
 
./%.o: .././%.S
@echo Building file: $<
@echo Invoking: AVR32/GNU Assembler : 4.8.1
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -Wa,-gdwarf2 -x assembler-with-cpp -c -mmcu=atmega1284 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -mrelax -Wa,-g -o "$@" "$<"
@echo Finished building: $<
 
 
 
 
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif
 
# Add inputs and outputs from these tool invocations to the build variables
 
# All Target
all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
 
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP)
@echo Building target: $@
@echo Invoking: AVR/GNU Linker : 4.8.1
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="FlightCtrl.map" -Wl,--start-group -Wl,-lm -Wl,-lfc1284 -Wl,--end-group -Wl,-L"C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl" -Wl,--gc-sections -mrelax -mmcu=atmega1284
@echo Finished building target: $@
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "FlightCtrl.elf" "FlightCtrl.hex"
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "FlightCtrl.elf" "FlightCtrl.eep" || exit 0
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "FlightCtrl.elf" > "FlightCtrl.lss"
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "FlightCtrl.elf" "FlightCtrl.srec"
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-size.exe" "FlightCtrl.elf"
 
 
 
 
 
# Other Targets
clean:
-$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)
-$(RM) $(C_DEPS_AS_ARGS)
rm -rf "FlightCtrl.elf" "FlightCtrl.a" "FlightCtrl.hex" "FlightCtrl.lss" "FlightCtrl.eep" "FlightCtrl.map" "FlightCtrl.srec" "FlightCtrl.usersignatures"
/branches/V2.08a_Rens_Testversion/FlightCtrl/Debug/do
--- V2.08a_Rens_Testversion/FlightCtrl/Debug/makedep.mk (nonexistent)
+++ V2.08a_Rens_Testversion/FlightCtrl/Debug/makedep.mk (revision 2504)
@@ -0,0 +1,48 @@
+################################################################################
+# Automatically-generated file. Do not edit or delete the file
+################################################################################
+
+analog.c
+
+capacity.c
+
+debug.c
+
+eeprom.c
+
+fc.c
+
+FlightCtrl.c
+
+GPS.c
+
+hottmenu.c
+
+isqrt.S
+
+jetimenu.c
+
+jeti_ex.c
+
+led.c
+
+menu.c
+
+mymath.c
+
+rc.c
+
+sbus.c
+
+Spektrum.c
+
+spi.c
+
+timer0.c
+
+twimaster.c
+
+uart.c
+
+user_receiver.c
+
/branches/V2.08a_Rens_Testversion/FlightCtrl/FlightCtrl.c
0,0 → 1,540
/*
* FlightCtrl.c
*
* Created: 03.02.2015 06:32:39
* Author: SIE-AV
*/
 
 
#include <avr/io.h>
 
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software Nutzungsbedingungen (english version: see below)
// + der Fa. HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland - nachfolgend Lizenzgeber genannt -
// + Der Lizenzgeber räumt dem Kunden ein nicht-ausschließliches, zeitlich und räumlich* unbeschränktes Recht ein, die im den
// + Mikrocontroller verwendete Firmware für die Hardware Flight-Ctrl, Navi-Ctrl, BL-Ctrl, MK3Mag & PC-Programm MikroKopter-Tool
// + - nachfolgend Software genannt - nur für private Zwecke zu nutzen.
// + Der Einsatz dieser Software ist nur auf oder mit Produkten des Lizenzgebers zulässig.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die vom Lizenzgeber gelieferte Software ist urheberrechtlich geschützt. Alle Rechte an der Software sowie an sonstigen im
// + Rahmen der Vertragsanbahnung und Vertragsdurchführung überlassenen Unterlagen stehen im Verhältnis der Vertragspartner ausschließlich dem Lizenzgeber zu.
// + Die in der Software enthaltenen Copyright-Vermerke, Markenzeichen, andere Rechtsvorbehalte, Seriennummern sowie
// + sonstige der Programmidentifikation dienenden Merkmale dürfen vom Kunden nicht verändert oder unkenntlich gemacht werden.
// + Der Kunde trifft angemessene Vorkehrungen für den sicheren Einsatz der Software. Er wird die Software gründlich auf deren
// + Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Die Haftung des Lizenzgebers wird - soweit gesetzlich zulässig - begrenzt in Höhe des typischen und vorhersehbaren
// + Schadens. Die gesetzliche Haftung bei Personenschäden und nach dem Produkthaftungsgesetz bleibt unberührt. Dem Lizenzgeber steht jedoch der Einwand
// + des Mitverschuldens offen.
// + Der Kunde trifft angemessene Vorkehrungen für den Fall, dass die Software ganz oder teilweise nicht ordnungsgemäß arbeitet.
// + Er wird die Software gründlich auf deren Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Der Kunde wird er seine Daten vor Einsatz der Software nach dem Stand der Technik sichern.
// + Der Kunde ist darüber unterrichtet, dass der Lizenzgeber seine Daten im zur Vertragsdurchführung erforderlichen Umfang
// + und auf Grundlage der Datenschutzvorschriften erhebt, speichert, verarbeitet und, sofern notwendig, an Dritte übermittelt.
// + *) Die räumliche Nutzung bezieht sich nur auf den Einsatzort, nicht auf die Reichweite der programmierten Software.
// + #### ENDE DER NUTZUNGSBEDINGUNGEN ####'
// + Hinweis: Informationen über erweiterte Nutzungsrechte (wie z.B. Nutzung für nicht-private Zwecke) sind auf Anfrage per Email an info(@)hisystems.de verfügbar.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software LICENSING TERMS
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + of HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland, Germany - the Licensor -
// + The Licensor grants the customer a non-exclusive license to use the microcontroller firmware of the Flight-Ctrl, Navi-Ctrl, BL-Ctrl, and MK3Mag hardware
// + (the Software) exclusively for private purposes. The License is unrestricted with respect to time and territory*.
// + The Software may only be used with the Licensor's products.
// + The Software provided by the Licensor is protected by copyright. With respect to the relationship between the parties to this
// + agreement, all rights pertaining to the Software and other documents provided during the preparation and execution of this
// + agreement shall be the property of the Licensor.
// + The information contained in the Software copyright notices, trademarks, other legal reservations, serial numbers and other
// + features that can be used to identify the program may not be altered or defaced by the customer.
// + The customer shall be responsible for taking reasonable precautions
// + for the safe use of the Software. The customer shall test the Software thoroughly regarding its suitability for the
// + intended purpose before implementing it for actual operation. The Licensor's liability shall be limited to the extent of typical and
// + foreseeable damage to the extent permitted by law, notwithstanding statutory liability for bodily injury and product
// + liability. However, the Licensor shall be entitled to the defense of contributory negligence.
// + The customer will take adequate precautions in the case, that the software is not working properly. The customer will test
// + the software for his purpose before any operational usage. The customer will backup his data before using the software.
// + The customer understands that the Licensor collects, stores and processes, and, where required, forwards, customer data
// + to third parties to the extent necessary for executing the agreement, subject to applicable data protection and privacy regulations.
// + *) The territory aspect only refers to the place where the Software is used, not its programmed range.
// + #### END OF LICENSING TERMS ####
// + Note: For information on license extensions (e.g. commercial use), please contact us at info(@)hisystems.de.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "main.h"
unsigned char DisableRcOffBeeping = 0;
unsigned char PlatinenVersion = 10;
unsigned char BattLowVoltageWarning = 94;
unsigned char BattAutoLandingVoltage = 0, BattComingHomeVoltage = 0;
unsigned int FlugMinuten = 0,FlugMinutenGesamt = 0;
unsigned int FlugSekunden = 0;
pVoidFnct_pVoidFnctChar_const_fmt _printf_P;
unsigned char FoundMotors = 0;
unsigned char JetiBeep = 0; // to allow any Morse-Beeping of the Jeti-Box
unsigned char ActiveParamSet = 3;
unsigned char LipoCells = 4;
 
void PrintLine(void)
{
printf("\n\r===================================");
}
 
 
void CalMk3Mag(void)
{
static unsigned char stick = 1;
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -20) stick = 0;
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) && !stick)
{
stick = 1;
WinkelOut.CalcState++;
if(WinkelOut.CalcState > 4)
{
// WinkelOut.CalcState = 0; // in Uart.c
beeptime = 1000;
}
else Piep(WinkelOut.CalcState,150);
}
}
 
 
void LipoDetection(unsigned char print)
{
#define MAX_CELL_VOLTAGE 43 // max cell voltage for LiPO
if(print)
{
printf("\n\rBatt:");
LipoCells = 1 + UBat / MAX_CELL_VOLTAGE;
if(LipoCells > 6) LipoCells = 6;
}
 
if(EE_Parameter.UnterspannungsWarnung < 50)
{
BattLowVoltageWarning = LipoCells * EE_Parameter.UnterspannungsWarnung;
if(print)
{
Piep(LipoCells, 200);
printf(" %d Cells ", LipoCells);
}
}
else BattLowVoltageWarning = EE_Parameter.UnterspannungsWarnung;
 
// automatische Zellenerkennung
if(EE_Parameter.AutoLandingVoltage < 50) BattAutoLandingVoltage = LipoCells * EE_Parameter.AutoLandingVoltage; else BattAutoLandingVoltage = EE_Parameter.AutoLandingVoltage;
if(EE_Parameter.ComingHomeVoltage < 50) BattComingHomeVoltage = LipoCells * EE_Parameter.ComingHomeVoltage; else BattComingHomeVoltage = EE_Parameter.ComingHomeVoltage;
 
if(BattAutoLandingVoltage > BattLowVoltageWarning) BattAutoLandingVoltage = BattLowVoltageWarning - 1;
if(BattComingHomeVoltage >= BattLowVoltageWarning) BattComingHomeVoltage = BattLowVoltageWarning - 1;
if(BattAutoLandingVoltage >= BattComingHomeVoltage && EE_Parameter.ComingHomeVoltage) BattAutoLandingVoltage = BattComingHomeVoltage - 1;
if(print)
{
printf(" Low warning: %d.%dV",BattLowVoltageWarning/10,BattLowVoltageWarning%10);
if(BattComingHomeVoltage) printf(" Auto-CH: %d.%dV",BattComingHomeVoltage/10,BattComingHomeVoltage%10);
if(BattAutoLandingVoltage) printf(" Autolanding: %d.%dV",BattAutoLandingVoltage/10,BattAutoLandingVoltage%10);
}
 
}
 
//############################################################################
//Hauptprogramm
int main (void)
//############################################################################
{
unsigned int timer,i,timer2 = 0, timerPolling;
unsigned char update_spi = 1;
DDRB = 0x00;
PORTB = 0x00;
DDRD = 0x0A; // UART & J3 J4 J5
PORTD = 0x5F; // PPM-Input & UART
for(timer = 0; timer < 1000; timer++); // verzögern
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
unsigned char AccZ_ErrorCnt = 0;
if(PINB & 0x02)
{
if(PIND & 0x10) PlatinenVersion = 21; // No Bridge from J4 to GND
else { PlatinenVersion = 22; ACC_AltitudeControl = 1;};
}
else
{
PlatinenVersion = 25; ACC_AltitudeControl = 1;
}
#else
if(PINB & 0x01)
{
if(PINB & 0x02) PlatinenVersion = 13;
else PlatinenVersion = 11;
}
else
{
if(PINB & 0x02) PlatinenVersion = 20;
else
{
PlatinenVersion = 10;
DDRD = 0x3E; // Speaker & TXD & J3 J4 J5
PORTD = 0x47; //
}
}
#endif
 
DDRC = 0x81; // I2C, Spaker
DDRC |=0x40; // HEF4017 Reset
PORTC = 0xff; // Pullup SDA
DDRB = 0x1B; // LEDs und Druckoffset
PORTB = 0x01; // LED_Rot
 
HEF4017Reset_ON;
MCUSR &=~(1<<WDRF);
WDTCSR |= (1<<WDCE)|(1<<WDE);
WDTCSR = 0;
 
beeptime = 2500;
StickGier = 0; PPM_in[K_GAS] = 0; StickRoll = 0; StickNick = 0;
if(PlatinenVersion >= 20) GIER_GRAD_FAKTOR = 1220; else GIER_GRAD_FAKTOR = 1291; // unterschiedlich für ME und ENC
ROT_OFF;
GRN_ON;
 
Timer_Init();
TIMER2_Init();
UART_Init();
rc_sum_init();
ADC_Init();
I2C_Init(1);
SPI_MasterInit();
Capacity_Init();
LIBFC_Init(LIB_FC_COMPATIBLE);
GRN_ON;
sei();
ParamSet_Init();
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(PlatinenVersion < 20)
{
wdt_enable(WDTO_250MS); // Reset-Commando
while(1) printf("\n\rOld FC Hardware not supported by this Firmware!");
}
#ifndef REDUNDANT_FC_SLAVE
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Check connected BL-Ctrls
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Check connected BL-Ctrls
BLFlags |= BLFLAG_READ_VERSION;
motor_read = 0; // read the first I2C-Data
for(i=0; i < 500; i++)
{
SendMotorData();
timer = SetDelay(5);
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
}
printf("\n\rFound BL-Ctrl: ");
// timer = SetDelay(1000);
for(i=0; i < MAX_MOTORS; i++)
{
// SendMotorData();
// while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
if(Mixer.Motor[i][0] > 0) // wait max 4 sec for the BL-Ctrls to wake up
{
while(!CheckDelay(timer) && !(Motor[i].State & MOTOR_STATE_PRESENT_MASK) )
{
SendMotorData();
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
}
}
if(Motor[i].State & MOTOR_STATE_PRESENT_MASK)
{
unsigned char vers;
printf("%d",(i+1)%10);
FoundMotors++;
vers = Motor[i].VersionMajor * 100 + Motor[i].VersionMinor; // creates 104 from 1.04
if(vers && VersionInfo.BL_Firmware > vers) VersionInfo.BL_Firmware = vers;
// if(Motor[i].Version & MOTOR_STATE_FAST_MODE) printf("(fast)\n\r");
// else if(Motor[i].Version & MOTOR_STATE_NEW_PROTOCOL_MASK) printf("(new)\n\r");
// printf(":V%03d\n\r",vers);
}
}
for(i=0; i < MAX_MOTORS; i++)
{
if(!(Motor[i].State & MOTOR_STATE_PRESENT_MASK) && Mixer.Motor[i][0] > 0)
{
printf("\n\r\n\r!! MISSING BL-CTRL: %d !!",i+1);
ServoActive = 2; // just in case the FC would be used as camera-stabilizer
}
Motor[i].State &= ~MOTOR_STATE_ERROR_MASK; // clear error counter
}
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(VersionInfo.BL_Firmware != 255)
{
printf("\n\rBL-Firmware %d.%02d",VersionInfo.BL_Firmware/100,VersionInfo.BL_Firmware%100);
if(VersionInfo.BL_Firmware >= 100 && VersionInfo.BL_Firmware <= 102) printf("<-- warning old Version!");
}
#endif
 
PrintLine();// ("\n\r===================================");
if(RequiredMotors < FoundMotors) VersionInfo.HardwareError[1] |= FC_ERROR1_MIXER;
if(RequiredMotors > 8) Max_I2C_Packets = 8; else Max_I2C_Packets = RequiredMotors;
#else
printf("\n\r\n\r--> REDUNDANT SLAVE <---\n\r");
#endif
 
#ifdef REDUNDANT_FC_MASTER
printf("\n\r\n\r--> REDUNDANT MASTER <---\n\r");
#endif
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Calibrating altitude sensor
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)
{
printf("\n\rCalibrating pressure sensor..");
timer = SetDelay(1000);
SucheLuftruckOffset();
while (!CheckDelay(timer));
printf("OK\n\r");
}
 
#ifdef REDUNDANT_FC_SLAVE
VersionInfo.HardwareError[0] = 0;
VersionInfo.HardwareError[1] = 0;
#endif
 
SetNeutral(0);
 
ROT_OFF;
 
beeptime = 2000;
ExternControl.Digital[0] = 0x55;
 
 
FlugMinuten = (unsigned int)GetParamByte(PID_FLIGHT_MINUTES) * 256 + (unsigned int)GetParamByte(PID_FLIGHT_MINUTES + 1);
FlugMinutenGesamt = (unsigned int)GetParamByte(PID_FLIGHT_MINUTES_TOTAL) * 256 + (unsigned int)GetParamByte(PID_FLIGHT_MINUTES_TOTAL + 1);
 
if((FlugMinutenGesamt == 0xFFFF) || (FlugMinuten == 0xFFFF))
{
FlugMinuten = 0;
FlugMinutenGesamt = 0;
}
printf("\n\rFlight-time %u min Total:%u min", FlugMinuten, FlugMinutenGesamt);
LcdClear();
I2CTimeout = 5000;
WinkelOut.Orientation = 1;
LipoDetection(1);
LIBFC_ReceiverInit(EE_Parameter.Receiver);
PrintLine();// ("\n\r===================================");
//SpektrumBinding();
timer = SetDelay(2000);
timerPolling = SetDelay(250);
 
Debug(ANSI_CLEAR "FC-Start!\n\rFlugzeit: %d min", FlugMinutenGesamt); // Note: this won't waste flash memory, if #DEBUG is not active
//printf("\n\rEE_Parameter size:%i\n\r", PARAMSET_STRUCT_LEN);
 
DebugOut.Status[0] = 0x01 | 0x02;
JetiBeep = 0;
if(EE_Parameter.ExtraConfig & CFG_NO_RCOFF_BEEPING) DisableRcOffBeeping = 1;
ReadBlSize = 3; // don't read the version any more
#ifdef REDUNDANT_FC_SLAVE
timer = SetDelay(2500);
while(!CheckDelay(timer));
printf("\n\rStart\n\r");
#endif
while(1)
{
EEAR = EE_DUMMY; // Set the EEPROM Address pointer to an unused space
if(ReceiverUpdateModeActive) while (1) PORTC &= ~(1<<7); // Beeper off
if(UpdateMotor && AdReady) // ReglerIntervall
{
cli();
UpdateMotor--;
sei();
if(WinkelOut.CalcState) CalMk3Mag();
else MotorRegler();
SendMotorData();
ROT_OFF;
if(SenderOkay) { SenderOkay--; /*VersionInfo.HardwareError[1] &= ~FC_ERROR1_PPM;*/ }
else
{
TIMSK1 |= _BV(ICIE1); // enable PPM-Input
PPM_in[0] = 0; // set RSSI to zero on data timeout
VersionInfo.HardwareError[1] |= FC_ERROR1_PPM;
// Now clear the channel values - they would be wrong
PPM_diff[EE_Parameter.Kanalbelegung[K_NICK]] = 0;
PPM_diff[EE_Parameter.Kanalbelegung[K_ROLL]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] = 0;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 160 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 220) SenderOkay = 160;
//if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 101 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 1) SenderOkay = 101;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!--I2CTimeout || MissingMotor)
{
if(!I2CTimeout)
{
I2C_Reset();
I2CTimeout = 5;
DebugOut.Analog[28]++; // I2C-Error
VersionInfo.HardwareError[1] |= FC_ERROR1_I2C;
DebugOut.Status[1] |= 0x02; // BL-Error-Status
}
if((BeepMuster == 0xffff) && MotorenEin)
{
beeptime = 25000;
BeepMuster = 0x0080;
}
}
else
{
ROT_OFF;
}
LIBFC_Polling();
 
if(!UpdateMotor)
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(NewSBusData) ProcessSBus();
else
#endif
{
if(BytegapSPI == 0) SPI_TransmitByte();
if(CalculateServoSignals) CalculateServo();
DatenUebertragung();
BearbeiteRxDaten();
if(CheckDelay(timer))
{
static unsigned char second;
timer += 20; // 20 ms interval
CalcNickServoValue();
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(EE_Parameter.Receiver == RECEIVER_HOTT) HoTT_Menu();
else
if(EE_Parameter.Receiver == RECEIVER_JETI) BuildJeti_Vario();
// ++++++++++++++++++++++++++++
// + check the ACC-Z range
if(ACC_AltitudeControl && ((Aktuell_az < 300) || (DebugOut.Analog[7] < (128 * 4) && Aktuell_az > 850))) // DebugOut.Analog[7] = GasMischanteil
{
if(++AccZ_ErrorCnt > 50)
{
if(MotorenEin) VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_TOP;
else CalibrationDone = 0;
}
}
else AccZ_ErrorCnt = 0;
// ++++++++++++++++++++++++++++
#endif
if(MissingMotor || Capacity.MinOfMaxPWM < 30)
{
if(MissingMotor) VersionInfo.HardwareError[1] |= FC_ERROR1_BL_MISSING;
DebugOut.Status[1] |= 0x02; // BL-Error-Status
}
else
{
if(!beeptime)
{
if(I2CTimeout > 6) DebugOut.Status[1] &= ~0x02; // BL-Error-Status
}
}
if(DisableRcOffBeeping) if(SenderOkay > 150) { DisableRcOffBeeping = 0; beeptime = 5000;};
if(PcZugriff) PcZugriff--;
else
{
ExternControl.Config = 0;
ExternStickNick = 0;
ExternStickRoll = 0;
ExternStickGier = 0;
if(!SenderOkay)
{
if(BeepMuster == 0xffff && DisableRcOffBeeping != 2)
{
beeptime = 15000;
BeepMuster = 0x0c00;
if(DisableRcOffBeeping) DisableRcOffBeeping = 2;
}
}
}
if(NaviDataOkay > 200)
{
NaviDataOkay--;
VersionInfo.HardwareError[1] &= ~FC_ERROR1_SPI_RX;
VersionInfo.Flags |= FC_VERSION_FLAG_NC_PRESENT;
}
else
{
if(NC_Version.Compatible)
{
VersionInfo.HardwareError[1] |= FC_ERROR1_SPI_RX;
NC_ErrorCode = 9; // "ERR: no NC communication"
if(BeepMuster == 0xffff && MotorenEin)
{
beeptime = 15000;
BeepMuster = 0xA800;
}
}
GPS_Nick = 0;
GPS_Roll = 0;
GPS_Aid_StickMultiplikator = 0;
GPSInfo.Flags = 0;
FromNaviCtrl_Value.Kalman_K = -1;
FromNaviCtrl.AccErrorN = 0;
FromNaviCtrl.AccErrorR = 0;
FromNaviCtrl.CompassValue = -1;
FromNC_AltitudeSpeed = 0;
FromNC_AltitudeSetpoint = 0;
VersionInfo.Flags &= ~FC_VERSION_FLAG_NC_PRESENT;
NaviDataOkay = 0;
}
if(UBat <= BattLowVoltageWarning)
{
FC_StatusFlags |= FC_STATUS_LOWBAT;
if(BeepMuster == 0xffff && UBat > 10) // Do not beep, if the voltage reading is below 1V (Supplied via MKUSB)
{
beeptime = 6000;
BeepMuster = 0x0300;
}
}
// +++++++++++++++++++++++++++++++++
// Sekundentakt
if(++second == 49)
{
second = 0;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(ShowSettingNameTime) ShowSettingNameTime--;
#endif
if(FC_StatusFlags & FC_STATUS_FLY) FlugSekunden++;
else timer2 = 1450; // 0,5 Minuten aufrunden
if(modell_fliegt < 1024)
{
if(StartLuftdruck < Luftdruck) StartLuftdruck += 5;
else
if(StartLuftdruck > Luftdruck) StartLuftdruck -= 5;
}
if(UBat > BattLowVoltageWarning + 1) FC_StatusFlags &= ~FC_STATUS_LOWBAT;
}
// +++++++++++++++++++++++++++++++++
if(++timer2 == 2930) // eine Minute
{
timer2 = 0;
FlugMinuten++;
FlugMinutenGesamt++;
SetParamByte(PID_FLIGHT_MINUTES,FlugMinuten / 256);
SetParamByte(PID_FLIGHT_MINUTES+1,FlugMinuten % 256);
SetParamByte(PID_FLIGHT_MINUTES_TOTAL,FlugMinutenGesamt / 256);
SetParamByte(PID_FLIGHT_MINUTES_TOTAL+1,FlugMinutenGesamt % 256);
timer = SetDelay(20); // falls "timer += 20;" mal nicht geht
}
}
LED_Update();
Capacity_Update();
}
} //else DebugOut.Analog[18]++;
if(update_spi) update_spi--;
} // 500Hz
if(update_spi == 0) // 41Hz
{
if(SPI_StartTransmitPacket()) update_spi = 12;
else
if(BytegapSPI == 0) SPI_TransmitByte();
}
else if(BytegapSPI == 0) SPI_TransmitByte();
}
}
//DebugOut.Analog[16]
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/FlightCtrl.cproj
0,0 → 1,302
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>6.2</ProjectVersion>
<ToolchainName>com.Atmel.AVRGCC8.C</ToolchainName>
<ProjectGuid>{5f2975c3-87e8-4878-a7fb-156d23300148}</ProjectGuid>
<avrdevice>ATmega1284</avrdevice>
<avrdeviceseries>none</avrdeviceseries>
<OutputType>Executable</OutputType>
<Language>C</Language>
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
<OutputFileExtension>.elf</OutputFileExtension>
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
<AssemblyName>FlightCtrl</AssemblyName>
<Name>FlightCtrl</Name>
<RootNamespace>FlightCtrl</RootNamespace>
<ToolchainFlavour>Native</ToolchainFlavour>
<KeepTimersRunning>true</KeepTimersRunning>
<OverrideVtor>false</OverrideVtor>
<CacheFlash>true</CacheFlash>
<ProgFlashFromRam>true</ProgFlashFromRam>
<RamSnippetAddress>0x20000000</RamSnippetAddress>
<UncachedRange />
<preserveEEPROM>true</preserveEEPROM>
<OverrideVtorValue>exception_table</OverrideVtorValue>
<BootSegment>2</BootSegment>
<eraseonlaunchrule>0</eraseonlaunchrule>
<AsfFrameworkConfig>
<framework-data xmlns="">
<options />
<configurations />
<files />
<documentation help="" />
<offline-documentation help="" />
<dependencies>
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.21.0" />
</dependencies>
</framework-data>
</AsfFrameworkConfig>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.optimization.RelaxBranches>True</avrgcc.common.optimization.RelaxBranches>
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcc.compiler.symbols.DefSymbols>
<ListValues>
<Value>NDEBUG</Value>
<Value>F_CPU=20000000</Value>
<Value>VERSION_MAJOR=2</Value>
<Value>VERSION_MINOR=8</Value>
<Value>VERSION_PATCH=0</Value>
<Value>VERSION_SERIAL_MAJOR=11</Value>
<Value>VERSION_SERIAL_MINOR=0</Value>
<Value>NC_SPI_COMPATIBLE=71</Value>
<Value>LIB_FC_COMPATIBLE=7</Value>
</ListValues>
</avrgcc.compiler.symbols.DefSymbols>
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.warnings.Undefined>True</avrgcc.compiler.warnings.Undefined>
<avrgcc.compiler.warnings.Pedantic>True</avrgcc.compiler.warnings.Pedantic>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
<Value>libfc1284.a</Value>
<Value>libfc644.a</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.linker.libraries.LibrarySearchPaths>
<ListValues>
<Value>C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl</Value>
</ListValues>
</avrgcc.linker.libraries.LibrarySearchPaths>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.optimization.RelaxBranches>True</avrgcc.common.optimization.RelaxBranches>
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcc.compiler.symbols.DefSymbols>
<ListValues>
<Value>DEBUG</Value>
<Value>F_CPU=20000000</Value>
<Value>VERSION_MAJOR=2</Value>
<Value>VERSION_MINOR=8</Value>
<Value>VERSION_PATCH=0</Value>
<Value>VERSION_SERIAL_MAJOR=11</Value>
<Value>VERSION_SERIAL_MINOR=0</Value>
<Value>NC_SPI_COMPATIBLE=71</Value>
<Value>LIB_FC_COMPATIBLE=7</Value>
</ListValues>
</avrgcc.compiler.symbols.DefSymbols>
<avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
<Value>libfc1284.a</Value>
<Value>libfc644.a</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.linker.libraries.LibrarySearchPaths>
<ListValues>
<Value>C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl</Value>
</ListValues>
</avrgcc.linker.libraries.LibrarySearchPaths>
<avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel>
</AvrGcc>
</ToolchainSettings>
<UsesExternalMakeFile>False</UsesExternalMakeFile>
<BuildTarget>all</BuildTarget>
<CleanTarget>clean</CleanTarget>
<ExternalMakeFilePath>C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\makefile</ExternalMakeFilePath>
</PropertyGroup>
<ItemGroup>
<Compile Include="analog.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="analog.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="capacity.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="capacity.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="debug.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="debug.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="eeprom.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="eeprom.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="fc.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="fc.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="FlightCtrl.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="GPS.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="gps.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="hottmenu.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="hottmenu.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="isqrt.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="isqrt.S">
<SubType>compile</SubType>
</Compile>
<Compile Include="jetimenu.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="jetimenu.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="jeti_ex.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="jeti_ex.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="led.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="led.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="libfc.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="main.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="menu.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="menu.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="mymath.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="mymath.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="old_macros.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="printf_P.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="rc.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="rc.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="sbus.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="sbus.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="Settings.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="Spektrum.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="Spektrum.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="spi.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="spi.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="timer0.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="timer0.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="twimaster.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="twimaster.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="uart.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="uart.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="user_receiver.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="user_receiver.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="vector.h">
<SubType>compile</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="libfc1284.a">
<SubType>compile</SubType>
</None>
<None Include="libfc644.a">
<SubType>compile</SubType>
</None>
<None Include="License.txt">
<SubType>compile</SubType>
</None>
<None Include="makefile">
<SubType>compile</SubType>
</None>
<None Include="version.txt">
<SubType>compile</SubType>
</None>
</ItemGroup>
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
</Project>
/branches/V2.08a_Rens_Testversion/FlightCtrl/GPS.c
0,0 → 1,16
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + only for non-profit use
// + www.MikroKopter.com
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "main.h"
 
signed int GPS_Nick = 0;
signed int GPS_Roll = 0;
unsigned char GPS_Aid_StickMultiplikator = 0; // 64 = 100%
 
 
 
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/License.txt
0,0 → 1,52
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software Nutzungsbedingungen (english version: see below)
// + der Fa. HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland - nachfolgend Lizenzgeber genannt -
// + Der Lizenzgeber räumt dem Kunden ein nicht-ausschließliches, zeitlich und räumlich* unbeschränktes Recht ein, die im den
// + Mikrocontroller verwendete Firmware für die Hardware Flight-Ctrl, Navi-Ctrl, BL-Ctrl, MK3Mag & PC-Programm MikroKopter-Tool
// + - nachfolgend Software genannt - nur für private Zwecke zu nutzen.
// + Der Einsatz dieser Software ist nur auf oder mit Produkten des Lizenzgebers zulässig.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die vom Lizenzgeber gelieferte Software ist urheberrechtlich geschützt. Alle Rechte an der Software sowie an sonstigen im
// + Rahmen der Vertragsanbahnung und Vertragsdurchführung überlassenen Unterlagen stehen im Verhältnis der Vertragspartner ausschließlich dem Lizenzgeber zu.
// + Die in der Software enthaltenen Copyright-Vermerke, Markenzeichen, andere Rechtsvorbehalte, Seriennummern sowie
// + sonstige der Programmidentifikation dienenden Merkmale dürfen vom Kunden nicht verändert oder unkenntlich gemacht werden.
// + Der Kunde trifft angemessene Vorkehrungen für den sicheren Einsatz der Software. Er wird die Software gründlich auf deren
// + Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Die Haftung des Lizenzgebers wird - soweit gesetzlich zulässig - begrenzt in Höhe des typischen und vorhersehbaren
// + Schadens. Die gesetzliche Haftung bei Personenschäden und nach dem Produkthaftungsgesetz bleibt unberührt. Dem Lizenzgeber steht jedoch der Einwand
// + des Mitverschuldens offen.
// + Der Kunde trifft angemessene Vorkehrungen für den Fall, dass die Software ganz oder teilweise nicht ordnungsgemäß arbeitet.
// + Er wird die Software gründlich auf deren Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Der Kunde wird er seine Daten vor Einsatz der Software nach dem Stand der Technik sichern.
// + Der Kunde ist darüber unterrichtet, dass der Lizenzgeber seine Daten im zur Vertragsdurchführung erforderlichen Umfang
// + und auf Grundlage der Datenschutzvorschriften erhebt, speichert, verarbeitet und, sofern notwendig, an Dritte übermittelt.
// + *) Die räumliche Nutzung bezieht sich nur auf den Einsatzort, nicht auf die Reichweite der programmierten Software.
// + #### ENDE DER NUTZUNGSBEDINGUNGEN ####'
// + Hinweis: Informationen über erweiterte Nutzungsrechte (wie z.B. Nutzung für nicht-private Zwecke) sind auf Anfrage per Email an info(@)hisystems.de verfügbar.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software LICENSING TERMS
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + of HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland, Germany - the Licensor -
// + The Licensor grants the customer a non-exclusive license to use the microcontroller firmware of the Flight-Ctrl, Navi-Ctrl, BL-Ctrl, and MK3Mag hardware
// + (the Software) exclusively for private purposes. The License is unrestricted with respect to time and territory*.
// + The Software may only be used with the Licensor's products.
// + The Software provided by the Licensor is protected by copyright. With respect to the relationship between the parties to this
// + agreement, all rights pertaining to the Software and other documents provided during the preparation and execution of this
// + agreement shall be the property of the Licensor.
// + The information contained in the Software copyright notices, trademarks, other legal reservations, serial numbers and other
// + features that can be used to identify the program may not be altered or defaced by the customer.
// + The customer shall be responsible for taking reasonable precautions
// + for the safe use of the Software. The customer shall test the Software thoroughly regarding its suitability for the
// + intended purpose before implementing it for actual operation. The Licensor's liability shall be limited to the extent of typical and
// + foreseeable damage to the extent permitted by law, notwithstanding statutory liability for bodily injury and product
// + liability. However, the Licensor shall be entitled to the defense of contributory negligence.
// + The customer will take adequate precautions in the case, that the software is not working properly. The customer will test
// + the software for his purpose before any operational usage. The customer will backup his data before using the software.
// + The customer understands that the Licensor collects, stores and processes, and, where required, forwards, customer data
// + to third parties to the extent necessary for executing the agreement, subject to applicable data protection and privacy regulations.
// + *) The territory aspect only refers to the place where the Software is used, not its programmed range.
// + #### END OF LICENSING TERMS ####
// + Note: For information on license extensions (e.g. commercial use), please contact us at info(@)hisystems.de.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/FlightCtrl.d
0,0 → 1,120
FlightCtrl.d FlightCtrl.o: .././FlightCtrl.c \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
.././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././printf_P.h .././timer0.h .././uart.h \
.././analog.h .././twimaster.h .././menu.h .././rc.h .././fc.h \
.././gps.h .././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././capacity.h .././eeprom.h \
.././libfc.h .././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././printf_P.h:
 
.././timer0.h:
 
.././uart.h:
 
.././analog.h:
 
.././twimaster.h:
 
.././menu.h:
 
.././rc.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././eeprom.h:
 
.././libfc.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/FlightCtrl.eep
0,0 → 1,0
:00000001FF
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/FlightCtrl.elf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/FlightCtrl.hex
0,0 → 1,5022
:100000000C94600C0C94BA0C0C94BA0C0C94BA0CB2
:100010000C94BA0C0C94BA0C0C94BA0C0C94BA0C48
:100020000C94BA0C0C94DF8A0C94BA0C0C94BA0C95
:100030000C944A7E0C94BA0C0C94BA0C0C94BA0C26
:100040000C94BA0C0C94BA0C0C9467870C94BA0CF0
:100050000C948E900C94BA0C0C9452900C94BA0C94
:100060000C944C1B0C94BA0C0C94648C0C94BA0C2D
:100070000C94111A0C94BA0C0C94660F0C94BA0CD4
:100080000C94BA0C0C94BA0C0C94BA0C7B1B801B0D
:10009000851B8E1BA51BBC1BCB1BDB1B371C7C1EB7
:1000A000BC1B471D581D6D1D8C1DA91DF71D451E30
:1000B000A05C7A5F34637965C666F0675369AC5CAF
:1000C000385DA15DF45D395E9E5E486B065F595FE9
:1000D000595F595F595F595F595F595F595F595F60
:1000E000855FE95F6C609A60D6602E61BB61CE620D
:1000F0001463146314631463146314631463146348
:100100001463406352636B63BF63F76351647D6440
:100110000465486B56655665566556655665566561
:1001200056655665D875B7763F77A377E3778378BA
:10013000F9785179B279E2792E7A597A847ADC7A2F
:10014000227B707BB97BFE7B647C4E7D4883A184DF
:100150001A85CB856B859B8587834F84CB85E4830C
:10016000868CC68CFD8C5A8D778DB48D5C8E131861
:100170001618161816181F182218251837183418AC
:100180002E000A0D4D697865722D436F6E666967A2
:100190003A202725732720282575204D6F746F720C
:1001A0007329000A0D47656E65726174696E672078
:1001B00064656661756C74204D6978657220546160
:1001C000626C65000A0D5573696E6720506172613B
:1001D0006D6574657220536574202564000A0D47AF
:1001E000656E65726174696E672064656661756CC1
:1001F0007420506172616D6574657220536574205E
:100200002564000A0D2D2D3E2048617264776172CD
:10021000652056657273696F6E204279746520435C
:1002200068616E676564203C2D2D000A0D47797268
:100230006F2063616C6962726174696F6E206461C2
:100240007461206E6F742076616C69640D0A000A17
:100250000D414343206E6F742063616C696272616B
:10026000746564210D0A000A0D466C696768742D77
:1002700074696D65202575206D696E20546F7461F9
:100280006C3A2575206D696E004F4B0A0D000A0D02
:1002900043616C6962726174696E67207072657324
:1002A000737572652073656E736F722E2E003C2D10
:1002B0002D207761726E696E67206F6C64205665C1
:1002C0007273696F6E21000A0D424C2D4669726D82
:1002D000776172652025642E25303264000A0D0A8C
:1002E0000D2121204D495353494E4720424C2D4367
:1002F00054524C3A202564202121002564000A0D27
:10030000466F756E6420424C2D4374726C3A200027
:100310000A0D4F6C64204643204861726477617215
:1003200065206E6F7420737570706F7274656420D1
:1003300062792074686973204669726D77617265AD
:10034000210020204175746F6C616E64696E673A9C
:100350002025642E2564560020204175746F2D439E
:10036000483A2025642E25645600204C6F7720776C
:1003700061726E696E673A2025642E2564560020EE
:1003800025642043656C6C7320000A0D426174740F
:100390003A000A0D3D3D3D3D3D3D3D3D3D3D3D3D30
:1003A0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D7D
:1003B0003D3D3D3D3D3D3D00257300285365742086
:1003C0002D3E204C6F616429004E6F2053442D4315
:1003D000617264202020002D2D0025326400202031
:1003E00020006C6F616420706F696E743A00436125
:1003F0006D3A20253369004449523A20253364255B
:100400006300414C543A2534696D2020202000417E
:100410004C543A2534692F25696D200057503A25F0
:1004200032642F256420446973743A2533646D2047
:1004300000202532693A25303269200020253269B2
:100440002E2531695620004C6F61642073696E67F8
:100450006C6520506F736974696F6E00214E6F2058
:100460004750532D46697821200028536574202D6C
:100470003E2053746F726529004E6F2053442D4304
:10048000617264202020002D2D0025326420002080
:1004900020200053746F726520706F696E743A008B
:1004A00043616D3A20253369004449523A2025338F
:1004B00064256300414C543A2534696D002025328F
:1004C000693A253032692000202532692E253169AC
:1004D00056200053746F72652073696E676C6520D7
:1004E000506F736974696F6E0020202020202020D7
:1004F0002020202020200028536574202D3E204CF1
:100500006F616429004E6F2053442D436172642053
:10051000202000202D2D002532642028464958290E
:1005200000202020004C6F6164206C6973743A00D5
:100530002573002532692E2531695620004E6F2023
:100540005750732061637469766520202020004134
:1005500063746976652057503A2532642F256420EC
:100560000028466978656420506F736974696F6EFE
:100570007329004C6F616420576179706F696E74E4
:100580007300214E6F204750532D4669782120007B
:100590002020202020202020202020202000285340
:1005A0006574202D3E204C6F616429004E6F2053EE
:1005B000442D43617264202020004C6F6164206CE4
:1005C0006973743A202D2D20004C6F6164206C6992
:1005D00073743A0025326920202000202020002555
:1005E00073002532692E2531695620004E6F205741
:1005F00050732061637469766520202020200041BB
:1006000063746976652057503A2532642F2564203B
:10061000002852656C617469766520506F73697447
:10062000696F6E7329004C6F616420576179706F38
:10063000696E747300434F4D50415353204F4646EB
:1006400021200048482120004C4F4F50494E47215F
:100650002000434F55504C494E47204F46462120DD
:100660000050343A2534692050353A253469203613
:100670003A2533690050313A2534692050323A2501
:10068000346920333A2533690047733A25346920A9
:1006900059613A25346920004E693A25346920525F
:1006A0006F3A25346920433A25336900484F4C445A
:1006B000200025756D00484F4D4520414C543A00AF
:1006C0002046533A257573656B200028484F4C44EB
:1006D00029002841494429200028484F4D45290038
:1006E0002846524545290044495341424C4544005F
:1006F0004750533A002054454143480020284F4674
:1007000046290020284F4E29200044495341424C9D
:1007100045440043463A0044495341424C45440055
:10072000564152494F004C494D495400284F4646C6
:10073000292000284F4E29202000504F54493A25A7
:1007400033752000414C543A004D696E3A253269A8
:100750002E25316956202573200053657474696E07
:10076000673A25752025732000207777772E4D690D
:100770006B726F4B6F707465722E64652020002160
:1007800021204C69506F20766F6C74616765202161
:1007900021004552523A20004552523A20253264F7
:1007A0002021002533692025336920253369202540
:1007B0003369256343002533692025336925634365
:1007C0002020202020202020002532692E2569208D
:1007D0002532692E2569202532692E25692025328A
:1007E000692E256941002532692E25692025326947
:1007F0002E25694100253369202533692025336979
:1008000020253369256343002532692E256920257B
:1008100032692E2569202532692E25692025326905
:100820002E256941002020204E6F204E61766943BD
:1008300074726C2020202020202000444750532038
:10084000004E4F4649580020203344200047505363
:100850003A2532756D2F73205341543A2564200098
:100860002020004346005057523A2532692E253148
:1008700069412028256957292000484D3A253364CD
:1008800025632020444953543A2533646D20256361
:1008900000256300414C543A2D2D2D2D2000414C54
:1008A000543A2534696D00414C543A2534696D0041
:1008B0004449523A253364256300202532693A259C
:1008C00030326920202532692E25316956202534A1
:1008D000696D416800202532693A2530326920204F
:1008E0002532692E25316956202534696D4168000D
:1008F000207777772E4D696B726F4B6F70746572CE
:100900002E64652020002121204C69506F20766FD5
:100910006C74616765202121004552523A200045E0
:1009200052523A20253264202100202020202532F6
:10093000756D2F733A2020484D3A25336425632086
:10094000256300696E636C3A25326425632825327D
:10095000692900484D3A2533642563202563004DFD
:1009600041473A25337525252000212100334400D5
:10097000442000444953543A2533646D0053415494
:100980003A25326420003A002D2D2D2D2D2D2D2DB0
:100990002D2D2D2D2D2D2D2D2D2D2D2D2D002D2DB4
:1009A0002D2D2D2D2D2D2D2B2D2D2D2D2D2D2D2D79
:1009B0002D2D2D003A003A003A00493A2532692E91
:1009C0002531694120002020253569202000202084
:1009D000253569202000200043004449523A202553
:1009E000336425630020202532693A25303269209E
:1009F000200020202532693A25303269202000412C
:100A00004C543A2D2D2D2D2000414C543A2534695B
:100A10006D202000414C543A2534696D2025630037
:100A200020202532692E25316956202000202025DE
:100A300032692E25316956202000202020202020D8
:100A400020202020202020202020202020202000C6
:100A5000000005000500040106010800060102006F
:100A60000400040007000700070007000700070054
:100A7000070003010301050017010F01060009012A
:100A80000A0119010501050119011A010F010100EF
:100A90000900060006004E6F204572726F7220201A
:100AA000202020202020004E6F7420636F6D706125
:100AB0007469626C652020004D4B334D6167206E78
:100AC0006F7420636F6D7061004E6F20464320632A
:100AD0006F6D6D756E6963617400436F6D706173E6
:100AE0007320636F6D6D756E6963004750532063AB
:100AF0006F6D6D756E69636174696F00636F6D70A2
:100B00006173732076616C7565202020005243204C
:100B10005369676E616C206C6F73742020004643CC
:100B200020737069207278206572726F7220004E97
:100B30006F204E4320636F6D6D756E696361740045
:100B40004643204E69636B204779726F2020202036
:100B500000464320526F6C6C204779726F20202032
:100B60002000464320596177204779726F2020206A
:100B70002020004643204E69636B204143432020E0
:100B800020202000464320526F6C6C2041434320BC
:100B900020202020004643205A2D4143432020207E
:100BA00020202020200050726573737572652073B9
:100BB000656E736F7220004932432046432D3E42DA
:100BC0004C2D4374726C2000426C204D6973736924
:100BD0006E67202020202020004D69786572204516
:100BE00072726F722020202020004361726566724D
:100BF0006565204572726F72202000475053204671
:100C00006978206C6F737420202020004D61676E1E
:100C10006574204572726F7220202020004D6F7421
:100C20006F72207265737461727420202000424CD0
:100C3000204C696D69746174696F6E2020200047D3
:100C400050532052616E6765202020202020200014
:100C50004E6F2053442D43617264202020202020B9
:100C60000053442D4C6F6767696E67206572726F21
:100C70007200466C79696E672072616E676521202B
:100C80002020004D617820416C7469747564652181
:100C9000202020004E6F2047505320666978202086
:100CA0002020202000636F6D70617373206E6F745D
:100CB0002063616C2E00424C2D53656C6674657325
:100CC000742020202020006E6F206578742E206311
:100CD0006F6D706173732000636F6D70617373204B
:100CE00073656E736F7220200053657420203A0084
:100CF000204D696B726F4B6F707465722028426F64
:100D0000617429202000202053494D554C415449FD
:100D10004F4E2061637469766520200020212120D8
:100D200020204C414E44494E4720202020212120A4
:100D30002000202121204C69506F20766F6C746157
:100D4000676520212120200020202020204D696B74
:100D5000726F4B6F707465722020202020004E6FE0
:100D6000204E6176694374726C2100486F6D653A5C
:100D70002533646D202533642563202563004447B3
:100D80005053004E6F4678002020334400253275C2
:100D90006D2F73205361743A256420002020002DAC
:100DA0003E002D2D2F2D2D002532642F256420008F
:100DB00023253264205750733A006E6F20475053FA
:100DC0002D466978006E6F2053442D436172640094
:100DD00052656C3A25730052656C617469766520C2
:100DE00057507320002020002D3E002D2D2F2D2D3B
:100DF000002532642F2564200023253264205750BB
:100E00003A006E6F2053442D436172640046495886
:100E10003A25730046495820576179706F696E749E
:100E200073002020002D3E002020202020202020A4
:100E3000202020202020202000446973743A25338C
:100E40006420416C743A2533642000253264006EBE
:100E50006F2053442D43617264004C6F61642050D5
:100E60006F696E74002020002D3E004469723A259F
:100E7000336420416C743A2533646D00253264007C
:100E80006E6F204750532D466978006E6F20534493
:100E90002D43617264005361766520506F696E74F2
:100EA0003A00536176652073696E676C2E506F69E6
:100EB0006E74004C6F61642073696E676C2E506FA6
:100EC000696E74002852656C61746976652920200A
:100ED00020004C6F616420576179706F696E747384
:100EE0000028466978656429202020202020004CB5
:100EF0006F616420576179706F696E747300496E19
:100F0000636C692E3A2533692563202825692920D9
:100F1000004D61676E65743A2533692525202533B8
:100F20006925630025346957202536696D416800BD
:100F30002532692E25316956202533692E253169E0
:100F4000410025634320202020200054656D7065FA
:100F5000726174757265732020202000253369202A
:100F6000253369202533692025336900253369201D
:100F70002533692025336920253369005200253443
:100F8000696D256300253469202532693A253032A0
:100F9000690028426F61742D4D6F646529005365A7
:100FA0007425643A25730053494D554C4154494FBB
:100FB0004E004552524F523A20253264200053745D
:100FC000617475732020202000253364256320255B
:100FD00033646D2563002532692E2531695600087A
:100FE000010000E36D000201015F6B01030202DBFF
:100FF0006B02040303CE7103050409776C04060534
:101000000AA26C0507060BCD6C0608070CE26C07FC
:10101000000806336C04090909ED70050A0A0AF78D
:101020006C060B0B0B2070070C0C0C686F004F50FC
:101030005152535453565748005859005A55454633
:101040004748410049424A4A0000000000000000B1
:10105000000000444C4D00000000004E0000004B1A
:1010600000432531642E25303264202531642E253D
:10107000303264202531642E2530326420253164DD
:101080002E2530326400424C2056657273696F6EB3
:1010900073003132003131003130002025632020CF
:1010A000202D2020202D2020202D200020256320F1
:1010B0002020256320202025632020202563200078
:1010C0002025632020202563202020256320202048
:1010D00025632000424C2D4374726C20666F756E40
:1010E00064200025336420253364202533642025C3
:1010F0003364200028696E20302E31412900424C93
:101100002043757272656E74002533642025336444
:1011100020253364202533642000424C2054656D23
:1011200070657261747572650025336420253364BF
:1011300020253364202533642000424C2D437472F3
:101140006C204572726F7273200052616E67653A4F
:101150002533692D25336900506F736974696F6E8B
:101160003A2025336900536574706F696E742020CE
:1011700025336900536572766F20200054727565BF
:101180003A2020202020253569004779726F3A20C7
:1011900020202020253569004D61676E65743A2056
:1011A000202025356900436F6D70617373002872CC
:1011B0006573657429004163743A20202535756D87
:1011C000696E00546F74616C3A2535756D696E00F7
:1011D000466C696768742D54696D65202000506FF6
:1011E000746925693A202025336900506F74692598
:1011F000693A2020253369004C616E643A2025321B
:10120000642E25645600486F6D653A202532642EA1
:10121000256456005761726E3A202532642E25648B
:101220005600556E646572766F6C746167657320E5
:10123000200052432D4368616E6E656C733A25340D
:10124000690052432D5175616C6974793A202534D7
:101250006900526563656976657200446973636805
:10126000617267653A202535696D416800506F7776
:1012700065723A202020202025346957004375727A
:1012800072656E743A2020202533692E253169411C
:1012900000566F6C746167653A2020202533692EF3
:1012A00025316956005A2020202025346920282520
:1012B00033692900526F6C6C20253469202825334E
:1012C0006929004E69636B2025346920282533691C
:1012D0002900414343202D2053656E736F720059DE
:1012E0006177202025346920282534692900526F30
:1012F0006C6C20253469202825346929004E6963E7
:101300006B20253469202825346929004779726FBC
:10131000202D2053656E736F720050333A25346967
:10132000202050343A253469200050313A25346960
:10133000202050323A253469200047733A25346919
:10134000202047693A25346920004E693A253469DE
:101350002020526F3A25346920004B25693A253404
:101360006920204B25693A2534692000436F6D7050
:101370006173733A20202025356900526F6C6C3AF6
:10138000202020202020253569004E69636B3A20FB
:101390002020202020253569006163742E2062659D
:1013A0006172696E6700256900284129004F6666F1
:1013B0007365743A20202535690050726573737522
:1013C00072653A25356900536574706F696E743AB9
:1013D000253569004865696768743A2020253569B4
:1013E00000424C2D53656C667465737420457272AF
:1013F0003A25326400493243204552524F5221214E
:1014000021004D697373696E6720424C2D437472DD
:101410006C3A25642021210048617264776172650D
:10142000204572726F7220313A25642021210045D7
:1014300052522532643A004D6978657220457272C5
:101440006F722100424F4154005365743A25642065
:1014500025730048573A5625642E25642053573A81
:1014600025642E25303264256320002B204D696BC6
:10147000726F4B6F70746572202B005B25695D0085
:101480005B25695D0000008F001E01AD013B02CAB3
:10149000025803E603740402058F051B06A70633F2
:1014A00007BE074808D2085B09E3096B0AF20A780D
:1014B0000BFD0B810C040D860D070E870E060F84A5
:1014C0000F00107B10F5106E11E5115B12CF124268
:1014D00013B31323149214FE146A15D3153B16A1EB
:1014E0001605176717C81727188318DE1837198EBF
:1014F00019E319361A871AD61A231B6E1BB61BFD61
:101500001B411C831CC31C001D3C1D751DAB1DE035
:101510001D121E421E6F1E9A1EC31EE91E0D1F2E97
:101520001F4D1F691F841F9B1FB01FC31FD31FE1C7
:101530001FEC1FF51FFB1FFF1F0020212121204949
:101540004E434F4D50415449424C452021212100EA
:10155000416E676C654E69636B202020202020203F
:10156000416E676C65526F6C6C202020202020201B
:101570004163634E69636B202020202020202020BF
:10158000416363526F6C6C2020202020202020209B
:101590005961774779726F20202020202020202059
:1015A000416C746974756465205B302E316D5D200B
:1015B0004163635A2020202020202020202020204A
:1015C0004761732020202020202020202020202060
:1015D000436F6D706173732056616C7565202020B8
:1015E000566F6C74616765205B302E31565D20202C
:1015F0005265636569766572204C6576656C20205E
:101600004779726F20436F6D7061737320202020C3
:101610004D6F746F72203120202020202020202048
:101620004D6F746F72203220202020202020202037
:101630004D6F746F72203320202020202020202026
:101640004D6F746F72203420202020202020202015
:101650003136202020202020202020202020202063
:101660003137202020202020202020202020202052
:101670003138202020202020202020202020202041
:101680003139202020202020202020202020202030
:10169000536572766F2020202020202020202020DB
:1016A000486F7665726761732020202020202020FB
:1016B00043757272656E74205B302E31415D20205F
:1016C0004361706163697479205B6D41685D2020BE
:1016D00048656967687420536574706F696E74201B
:1016E00032352020202020202020202020202020D3
:1016F00032362020202020202020202020202020C2
:1017000032372020202020202020202020202020B0
:101710004932432D4572726F7220202020202020F4
:10172000424C204C696D697420202020202020200C
:101730004750535F4E69636B2020202020202020DB
:101740004750535F526F6C6C2020202020202020B7
:101750000A0D7777772E4D696B726F4B6F707465DA
:10176000722E646520286329204869537973746553
:101770006D7320476D6248000A0D746865207573AB
:1017800065206F66207468697320736F6674776173
:101790007265206973206F6E6C79207065726D6957
:1017A00074746564200A0D6F6E206F726967696ECC
:1017B000616C204D696B726F4B6F707465722D4850
:1017C00061726477617265005573657200486F5489
:1017D00054205634004143542044534C004A65740D
:1017E00069005370656B7472756D0050504D000A3E
:1017F0000D52656365697665723A2000532E427515
:101800007300756E6B6E6F776E2E205573696E6701
:101810002050504D2E2E2E006E6F742073757070F8
:101820006F72746564206279206861726477617296
:101830006521000A0D202D204C4942204E4F542096
:10184000434F4D50415449424C4520212121210014
:101850000A0D0A0D212120426F6F746C6F6164655F
:1018600072206E6F7420636F6D70617469626C6555
:1018700020746F204861726477617265203E203267
:101880002E322021210A0D0A0D000A0D466C6967CF
:101890006874436F6E74726F6C0A0D48617264777E
:1018A0006172653A25642E25640A0D536F6674775C
:1018B0006172653A5625642E253032642563200016
:1018C00011241FBECFEFD0E4DEBFCDBF12E0A0E0F9
:1018D000B1E0E8ECF7E301E00BBF02C007900D9226
:1018E000AA3EB107D9F72CE0AAEEB2E001C01D92E2
:1018F000A63BB207E1F77AEAE2E0F0E081E280930A
:101900005700149120EF37EF41E050E0C6E1D3E0FB
:101910006FE0DA01C9012F5F3F4F4F4F5F4FABBF01
:10192000FC0187918993615067FFF3CF84EE8ABDF4
:1019300080911E038093EA02893138F086E080931B
:101940000B0187E080930A017BEAE6E1F3E06EE0B9
:10195000819178277095615067FFFACF80912503B8
:10196000781721F0173911F40000FECF0E9457526A
:101970000C94E29B0C940000002422273327442778
:1019800051E0BB27EE27FF27A0E1660F771F881FD6
:10199000991F001C221F331F441F660F771F881FCB
:1019A000991F001C221F331F441F2AF4050E2B1FF2
:1019B0003E1F4F1F04C0051A2B0B3E0B4F0B550F3C
:1019C000BB1FEE1F587F556047FD5250AA95E9F6A0
:1019D000E695B7955795E695B7955795852F9B2F23
:1019E00008952227332741E0552768E0880F991F83
:1019F000221F331F880F991F221F331F1AF4240F31
:101A0000351F02C0241B350B440F551F487F45600E
:101A100037FD42506A9551F756954795569547952B
:101A2000842F0895AA2797FF04C0809590958A1F58
:101A30009A1F77FF04C0609570956A1F7A1F669F92
:101A40009001779FA001679F300D411D5A1F300DF7
:101A5000411D5A1F889FF001999F2E0F3F1F401D67
:101A6000511D899F300D411D5A1F300D411D5A1FB8
:101A7000CA01B901112480CF4FB720E430E0F894B7
:101A80008091C9008F778093C9008091C9008F7BB6
:101A90008093C9008091C9008F7D8093C900832FF6
:101AA00099278093CD002093CC008091C80082605C
:101AB0008093C80088E18093C9008091CA008F7725
:101AC0008093CA008091CA008F7B8093CA00809166
:101AD000CA008F7D8093CA008091CA008F7E809358
:101AE000CA008091CA00877F8093CA008091C90094
:101AF0008B7F8093C9008091CA0084608093CA0064
:101B00008091CA0082608093CA008091C80087FFDC
:101B100003C08091CE00F9CF8091C9008068809386
:101B2000C9004FBF08950F931F93CF93DF93482FA2
:101B30004F5F893108F08BC080910D08841720F425
:101B40004F5F40930D084150CB0183539B4268E1A6
:101B500070E00E94D39AA42FBB27FD01EA0FFB1F60
:101B6000E25FF74F808191819B01281B390BC901EE
:101B700037FF03C0909581959F4F069794F480910D
:101B80000204883C30F480910204865F8093020452
:101B900008C088EC8093020480916F008F7D809351
:101BA0006F00FD01EA0FFB1FE25FF74F808191811B
:101BB0009C01220F331F280F391F260F371F37FFB5
:101BC00002C02D5F3F4FE901D595C795D595C795C3
:101BD000CB0101968C179D0714F4219706C0615024
:101BE0007040C617D7070CF4219680910204843BFD
:101BF000D8F08D010A0F1B1FF801E25FF74F8081BB
:101C00009181FE01E81BF90BCF0163E070E00E94B7
:101C1000D39ACB01880F991F860F971F0C5A174F25
:101C2000F8019183808307C0AA0FBB1FAC5AB74F3E
:101C300011961C921E92E42FFF27EE0FFF1FE25F0A
:101C4000F74FD183C083443011F410929302DF9197
:101C5000CF911F910F910895CF93DF932091870C1F
:101C6000822F9927807F9070409709F064C02F31B0
:101C700009F040C08091880C8093F40290918A0C06
:101C80009093F60280918B0C8093F502992309F0D2
:101C900052C080911C05282F3327220F331FF901D2
:101CA000EC5AF74F1182108280911D05A82FBB2797
:101CB000AA0FBB1FFD01EC5AF74F118210828091D1
:101CC0001F05E82FFF27EE0FFF1FCF018C5A974FFC
:101CD000EC0119821882225F374FE90119821882BC
:101CE000A25FB74F11961C921E92E25FF74F1182CE
:101CF000108221C0C22FCF70CA30E8F48091880CC6
:101D00008093B30C8091890C8093B20C80918A0CE3
:101D10008093B50C80918B0C8093B40C6091B20CC5
:101D20007091B30C8C2FFFDE6091B40C7091B50CE8
:101D30008C2F8F5FF8DEDF91CF910895CF93C82F5E
:101D40008F3F49F48091F7028F3F29F41092F902F6
:101D50001092F80231C02091F902222339F4CF31D8
:101D600011F485E001C084E08093FA028091FA02C8
:101D70009091F802821798F4892F80958093F80249
:101D80008F3F19F48EEF8093F8028091F802C81704
:101D900009F462DF1092F9021092F8020BC0E22FF0
:101DA000FF27E957F34FC0832F5F2093F9029C0F61
:101DB0009093F802C093F702CF9108959091F302A7
:101DC000933240F4E92FFF27E157F34F80839F5F61
:101DD0009093F3020895833218F48D5F8093F30299
:101DE000089590E2E2E9FCE08FE19193815087FF52
:101DF000FCCF0895CF93CFB723E031E0F8948091E2
:101E0000C9008F778093C9008091C9008F7B809330
:101E1000C9008091C9008F7D8093C900832F9927C5
:101E20008093CD002093CC008091C8008260809385
:101E3000C80088E18093C9008091CA008F778093A1
:101E4000CA008091CA008F7B8093CA008091CA002B
:101E500080628093CA008091CA0080618093CA002A
:101E60008091CA0088608093CA008091C900846014
:101E70008093C9008091CA0084608093CA008091D9
:101E8000CA0082608093CA008091C80087FF03C0A7
:101E90008091CE00F9CF8091C90080688093C900FD
:101EA0008091C90080648093C9009BDFCFBFCF9130
:101EB0000895282F99278F709070892B31F42095E1
:101EC0008091F202822B8093F20208951F920F926A
:101ED0000FB60F9211248F93EF93FF938091060119
:101EE000882309F068C0E091FC02EE2389F4809118
:101EF000FB02882369F480918F0C882321F081E014
:101F00008093FD0205C08091C90081608093C90063
:101F10008091FD02882379F4EF5FE093FC028091C9
:101F2000660C8E1720F481E08093FD021CC0FF2711
:101F3000EA59F34F3CC08091FB02882361F4809101
:101F40008F0C882311F483E003C0813999F481E078
:101F50008093FB020FC0833099F480918F0C88230B
:101F600049F010928F0C8091C9008E7F8093C90038
:101F70008EEF1EC08091C90081608093C9000EC0A1
:101F8000833261F48091C9008E7F8093C9008FEF06
:101F90008093CE0081E08093060118C08091FB02FF
:101FA000E82FFF27E157F34F8F5F8093FB0280817B
:101FB0008093CE000BC01092FB021092FC02109294
:101FC000FD028091C90080618093C900FF91EF916B
:101FD0008F910F900FBE0F901F901895682727E0E4
:101FE000322F67FF06C0862F9927880F991F8327F6
:101FF00002C0862F880F682F215027FFF2CF992724
:1020000008950F931F93CF93DF93062F60E0162F51
:10201000601738F4EC018991E1DF682F1F5F10171A
:10202000D0F3862F9927DF91CF911F910F910895BB
:10203000DC0190E0961758F48C91803241F09F5F5C
:10204000961728F4FD01E90FF11D8081F6CF892F45
:1020500099270895A0E0B0E0E0E3F0E10C945E9BE6
:102060008FE98093670C80E18093690C84EA809308
:102070006A0C85E580936B0C8DE580936C0C109257
:102080006D0C8091FF02882309F067C08091FE02E9
:1020900013E1819FC001112463E088599E4FC8DF7E
:1020A000082F8091FE02819FC00111246AE0825AAC
:1020B0009E4FBEDF982F800F865F8093660C2EEFB9
:1020C000B22EB80EB092680C2091FE0220936E0CD6
:1020D000E92EFF24C70113E0880F991F1A95E1F735
:1020E000802B80936F0C822F9927C3E1CC2ED12CAB
:1020F0008C9D90018D9D300D9C9D300D1124C9014A
:10210000825A9E4FA701BC0180E79CE00E94A29BDF
:1021100011278091FE0299278C9DE0018D9DD00DA5
:102120009C9DD00D1124CE0188599E4FA801BC0161
:10213000C7018059934F0E94A29B0A59134F0E0D5D
:102140001F1D6B2D88E69CE05CDFF8018287809183
:10215000FF028F5F8093FF0292C0C0906D0C1C2D18
:102160000E94387330910701303108F058C0B3E154
:10217000EB2EF12C632F812F9927FC01EE0FFF1F0F
:10218000E80FF91FEC0DF11DEA59F34F832F992742
:102190008E9DD0018F9DB00D9E9DB00D1124A25A31
:1021A000BE4FED012D8574E0880F991F7A95E1F7F8
:1021B000282B20873E3088F42E853F853F798A89F9
:1021C0009927982F88279295990F907E282B392B45
:1021D0002187832F9927828716C0ED012E853F85A1
:1021E000488959892187BB27A52F942F832F828760
:1021F000CA01AA27BB278387852F9927AA27BB2730
:102200008487E2E0CE0E862F8F5F682F1F5F163027
:1022100020F4382F803108F4AECF8093070183E09B
:10222000189FC00111242C2D280F285F2093660CC5
:10223000225C2093680C812F99278C01000F111FBD
:10224000080F191F0C0D111D0A59134F2054622F2E
:1022500088E69CE0D6DEE80188878091070180311E
:1022600070F081E0809307011092FF028091FE02DE
:102270008F5F8093FE02803110F01092FE02E9E041
:10228000CDB7DEB70C947A9B80910601882309F4C0
:1022900046C08091C90385FD04C080915A048823FB
:1022A00081F082E980938F0C83E28093900C80917F
:1022B0005A04882309F485E58093910C10925A04FE
:1022C00002C080938F0C809108018F3071F480914F
:1022D000F2020E947072882341F081E980938F0C92
:1022E0008093900C81E38093910C10920601809171
:1022F000C80085FFFCCF8091C9008F7E8093C90004
:102300008091C9008E7F8093C900A4DE8EE7809300
:10231000CE008091F202809308011092F20208959B
:10232000EF92FF920F931F93CF93DF937C018B016A
:10233000EA01452B39F0F80181918F01F7010995E8
:102340002197C9F7E6E0CDB7DEB70C947D9BEF92FD
:10235000FF920F931F93CF93DF937C018B01EA01D0
:10236000452B41F0F8010F5F1F4F8491F70109954C
:102370002197C1F7E6E0CDB7DEB70C947D9B0F93B4
:102380001F93CF938C01C62F161634F480E2F80108
:102390000995C1501C16D4F3CF911F910F91089548
:1023A0000F931F93CF938C01C62F161634F480E33E
:1023B000F8010995C1501C16D4F3CF911F910F91CC
:1023C0000895A5E3B0E0E7EEF1E10C94559B2E965D
:1023D000EEADFFAD2E978824992454018091EC0234
:1023E000882321F42C961FAE1EAE2C97AEE44A2E05
:1023F000512C4C0E5D1E6F01B60105C0153239F02F
:102400000894C11CD11CF60114911123B9F7A6013F
:10241000461B570B29F02C968EAD9FAD2C9797DF5E
:10242000112309F464C20894C11CD11CFF24FDA629
:10243000FCA6EFEFEE2EF9A6F6010894C11CD11C04
:102440001491153721F0812F80628837B1F4F0FEA6
:102450000AC0F20124E030E0420E531E80809180D9
:10246000A280B3800AC0F20142E050E0440E551E43
:10247000808191814C01AA24BB24103221F489A5CA
:102480008823D1F61DC0133219F458E0F52AD4CFB1
:102490001A3211F01D3291F41A3259F4F20182E02D
:1024A00090E0480E591EE081ECA7EE232CF6E19552
:1024B000ECA790E1F92AAFEDFA22BECF1B3211F45E
:1024C00019A7BACF1E32C1F5F6010894C11CD11C60
:1024D00014911A3279F4F20122E030E0420E531ED8
:1024E000408151813FEF4F3F530714F44FEF5FEFAF
:1024F000E42EA2CF40E050E0812F80538A30A0F438
:10250000CA0173E0880F991F7A95E1F7840F951F30
:10251000480F591F410F511D40535040F601089478
:10252000C11CD11C1491E8CF8FEF4F3F580714F412
:102530004FEF5FEFE42E85CF103329F4F4FC7CCF0E
:1025400090E2F92A79CF812F81538930D8F440E085
:1025500050E0CA0163E0880F991F6A95E1F7840F84
:10256000951F480F591F410F511D40535040F60110
:102570000894C11CD11C1491812F80538A3048F3D8
:102580004CA75FCF183619F4A4E0FA2A55CF1C36B1
:1025900019F4B1E0FB2A50CF133661F43E010894E0
:1025A000611C711CF20122E030E0420E531E80815A
:1025B00089833CC1143421F0143611F0193651F5D9
:1025C000143411F431E0F32AF0FE0AC0F20144E0C1
:1025D00050E0440E551E80809180A280B3800CC0D4
:1025E000F20182E090E0480E591E808191814C01F9
:1025F000AA2497FCA094BA2CB7FE0AC0B094A09469
:1026000090948094811C911CA11CB11C8DE289A71F
:102610000AE06FC01F3411F01F3631F41F3411F47B
:1026200091E0F92A08E064C0103779F4F201A2E0E1
:10263000B0E04A0E5B1E808191814C01AA24BB242C
:1026400000E1B0E4FB2A18E753C01337C1F5F201EB
:1026500022E030E0420E531E6080718061147104EC
:1026600089F43E010894611C711C88E289838EE61E
:10267000F301818385E78B838CE68C838D8389E2EC
:102680008E831F82E7FC13C08E2D992787FD9095BE
:10269000AC0160E070E0C3010E94959B009729F0B7
:1026A000382E3618E3140CF0C3C03E2CC1C0F30121
:1026B00001900020E9F731973E2E3618B9C0153544
:1026C00011F0153731F4153511F4F1E0FF2A0AE065
:1026D0000FC0183519F0183709F0A0C000E1F3FE5B
:1026E00007C081149104A104B10411F020E4F22A7E
:1026F00019A6EDA6E7FC02C03FEDF32249E2642EE5
:10270000712C6C0E7D1E81149104A104B10421F47E
:102710004DA5442309F47BC0802F9927AA27BB2706
:102720008EA79FA7A8ABB9AB202E332490E08916C3
:1027300090E0990691E0A90690E0B90648F0C5013D
:10274000B4012EA53FA548A959A90E94E69A17C031
:10275000AFEF8A169104A104B10449F040F0C4011E
:10276000B1010E94BF9A9B014427552708C0882DBC
:10277000602F0E94B39A282F3327442755272AAB6E
:102780003BAB4CAB5DAB0A3059F48AA9880F880F7C
:10279000880F9AA9990F890F382D381B832F10C0E5
:1027A000003139F48AA98295807F482D481B842FF7
:1027B00007C08AA9880F880F880F582D581B852FAE
:1027C00090E02EA53FA548A959A982169306A40614
:1027D000B50608F091E08AA89BA8ACA8BDA88A30ED
:1027E00010F4805D04C0895A183509F48F7DD30137
:1027F0008E933D01992309F099CF083041F4F3FEFF
:1028000006C0803321F080E3FD0182933F01CE01B9
:102810000196382E3618F8E23F0E0BC0112309F44A
:1028200066C03E010894611C711C198331E0332E8F
:1028300019A6032D2DA4231827FC222489A588235B
:1028400011F00F5F02C0F6FC0E5F020DEF2CFF24AB
:10285000C70180739070892B41F48CA5801B682F71
:102860002C968EAD9FAD2C978ADD89A5882331F0FB
:1028700041E050E0BE01675D7F4F0AC0E6FE0DC03B
:1028800080E38AA71BA742E050E0BE01665D7F4F50
:102890002C968EAD9FAD2C9743DDC7018073907051
:1028A000809741F48CA5801B682F2C968EAD9FAD30
:1028B0002C9776DD622D2C968EAD9FAD2C9770DD1A
:1028C000832D992787FD9095AC01B3012C968EAD91
:1028D0009FAD2C9725DDE4FE8FCD2CA5201B2CA7CA
:1028E000622F2C968EAD9FAD2C9749DD85CDE2E110
:1028F000CB5C0C94719B982F80918E0C883A50F48D
:1029000080918E0CE82FFF27EB51F94F93838F5F57
:1029100080938E0C0895982F80918E0C883A58F4ED
:1029200080918E0CE82FFF27EB51F94F906893832D
:102930008F5F80938E0C0895982F8091ED028823ED
:1029400011F0892FE8CF892FD6CF883A10F48093E1
:102950008E0C089580E090E2E8EEF6E091938F5FB0
:10296000883AE0F308954FB721E830E0F894809179
:10297000C9008F778093C9008091C9008F7B8093B5
:10298000C9008091C9008F7D8093C900832F99274A
:102990008093CD002093CC008091C800826080930A
:1029A000C80088E18093C9008091CA008F77809326
:1029B000CA008091CA008F7B8093CA008091CA00B0
:1029C0008F7D8093CA008091CA008F7E8093CA0059
:1029D0008091CA00877F8093CA008091C90084607B
:1029E0008093C9008091CA0084608093CA0080915E
:1029F000CA0082608093CA008091C9008160809380
:102A0000C9008091C80087FF03C08091CE00F9CF34
:102A10008091C90080688093C9004FBF3CE7309324
:102A200057062DE7209382068EE880935806109271
:102A300074061092730610925D0680EE80935A061B
:102A40003093B9062093E4061092C5061092C4068E
:102A50001092C7061092C6061092C9061092C806B8
:102A600084EF91E09093C3068093C2069093C106D1
:102A70008093C0069093BF068093BE061092BB065B
:102A800089E88093BA061092E2061092E30680E984
:102A90008093BC06309391072093BC071092930754
:102AA0008AE88093920710929907109298071092E3
:102AB000970710929B0710929C0710929D07109207
:102AC0009E071092A0071092A1071092A2071092E1
:102AD000A3071092A7071092A6071092A5071092BD
:102AE000A40780EA80939407309383062093AE0670
:102AF000109285068DE8809384061092AD0680EDD5
:102B0000809386068BE78093E50680E88093E6064F
:102B10001092E70680915D0690E2E8EEF6E0919370
:102B20008F5F883AE0F38DE7809390070895CF9305
:102B3000C82F80910003803879F48C2F0E940C59A3
:102B40008093EF028091EF02882331F1C0938D0CC6
:102B50008091EF028F5F16C08F37F1F48091860C61
:102B6000882329F48C2F80958F708093860C0E9487
:102B700005588093E70685EE96E09093F1028093E6
:102B8000F0028DEA8093EF028091C9008F7E8093DE
:102B9000C90082E08093EE02C0930003CF910895B4
:102BA0003091EE02332331F08091EE028150809318
:102BB000EE0208958091EF02882361F14091EF02C7
:102BC00090910103413069F4292F309301038091E2
:102BD000ED02882319F03093ED0210C04093ED020E
:102BE0000DC0E091F002F091F1028191F093F102B9
:102BF000E093F002282F980F909301038091C80072
:102C000085FFFCCF2093CE008091EF02815080930E
:102C1000EF0208958091C90080618093C9000895F2
:102C20006F927F928F929F92AF92BF92CF92DF92DC
:102C3000EF92FF920F931F93882361F1823041F44A
:102C400010920A0310920B0310920C0310920D03C2
:102C50002091FC033091FD034091FE035091FF034E
:102C6000DA01C90119E0880F991FAA1FBB1F1A9525
:102C7000D1F78093570390935803A0935903B093CF
:102C80005A032093020330930303409304035093A9
:102C9000050326C1A090FC03B090FD03C090FE0385
:102CA000D090FF038091020390910303A09104034D
:102CB000B091050335014601681A790A8A0A9B0A10
:102CC00060920603709207038092080390920903B2
:102CD00080915B0390915C0384559F4F7C0100279A
:102CE000F7FC0095102F80910A0690910B069C012D
:102CF000442737FD4095542FC801B7010E94A49A7C
:102D000097FF04C06150704E8F4F9F4FAB01BC01C5
:102D1000FDE07595679557954795FA95D1F74C5A0B
:102D200050406040704040930E0350930F036093F7
:102D30001003709311032091C9083091CA0837FF1E
:102D400002C0215F3F4FE4E035952795EA95E1F712
:102D500080915F0390916003829FD001839FB00DAB
:102D6000929FB00D1124CD01B7FF02C081509F4F3B
:102D7000E92FFF27E7FDFA952091C7083091C80891
:102D800037FF02C0215F3F4F84E0359527958A9534
:102D9000E1F780915D0390915E03829FD001839F54
:102DA000B00D929FB00D1124CD01B7FF02C081502C
:102DB0009F4F892F990F990BE80FF91FCF01AA2771
:102DC00097FDA095BA2F840F951FA61FB71F80935C
:102DD0000E0390930F03A0931003B0931103BC0153
:102DE000CD012DE030E040E050E00E94A49A7B014C
:102DF0008C01C401B30124EF31E040E050E00E94B7
:102E0000A49ADC01CB01E80EF91E0A1F1B1F80915A
:102E10000A0390910B03A0910C03B0910D03209134
:102E20001203309113034091140350911503821B38
:102E3000930BA40BB50BE80EF91E0A1F1B1FE092A3
:102E40000A03F0920B0300930C0310930D03D801B7
:102E5000C70180509E4FAF4FBF4FB7FF06C0D8018C
:102E6000C70181509A4FAF4FBF4F1AE0B595A79554
:102E7000979587951A95D1F7809312039093130332
:102E8000A0931403B0931503A0920203B09203031E
:102E9000C0920403D0920503209157033091580348
:102EA0004091590350915A03E0904A03F0904B032C
:102EB00000914C0310914D032E193F09400B510B0B
:102EC000280F391F4A1F5B1F2A0D3B1D4C1D5D1D1E
:102ED00020935703309358034093590350935A0358
:102EE00080911203909113039093550380935403A0
:102EF0008091570390915803A0915903B0915A03C0
:102F0000BC01CD011F910F91FF90EF90DF90CF900A
:102F1000BF90AF909F908F907F906F9008952FB744
:102F200040E0F894E0E0F0E081E280935700949173
:102F3000E2E0F0E0809357003491E4E0F0E0809329
:102F4000570084912FBF9E3199F4363941F489306E
:102F500011F441E00DC08A3059F442E009C037391C
:102F600039F4863011F443E003C0853009F444E0BD
:102F7000842F992708959FB7F8948091C900877F7F
:102F80008093C9008091C9008F7E8093C900809191
:102F9000C9008F778093C9008091C9008F7B80938F
:102FA000C9008091C9008F7D8093C9009FBF08959B
:102FB0001F93CF93DF93182F8091EC02882309F49D
:102FC000A4C080910501181709F49FC08091EB02FD
:102FD000882319F4A4DF8093EB0282ED91E09093B3
:102FE0009202809391028FEE97E19F938F93CCE9A9
:102FF000D6E9DF93CF93E0915506F09156060995F7
:103000000F900F900F900F90812F9927AA27BB2721
:10301000FC01099778F5E954FF4F2091550630914E
:1030200056060C94249B8BEE97E102C082EE97E14A
:103030009F938F93DF93CF93F901099527C08DED6F
:1030400097E1F6CF85ED97E1F3CF8DEC97E19F9374
:103050008F93DF93CF93F901099588ED91E09093D9
:1030600092028093910212C088EC97E1E1CF8CEF3D
:1030700097E1DECF82E098E19F938F93DF93CF9328
:10308000E0915506F0915606099510E00F900F90CB
:103090000F900F908091EB02843011F0823001F597
:1030A0006ADF812F8150833018F40E948B802BC0FF
:1030B000143019F40E94FA0E26C0183019F40E9438
:1030C000839921C0153019F40E943C0D1CC01630A4
:1030D00011F449DC18C01730B1F40E94517F13C0BD
:1030E000112389F088E198E19F938F938CE996E909
:1030F0009F938F93E0915506F091560609950F9096
:103100000F900F900F9010930501DF91CF911F91B9
:1031100008950F931F93082F81E08093EC02409154
:103120000401E8E7F7E120E030E05FE484919927CB
:103130002F5F3F4F829FB001839F700D929F700D54
:10314000112446275150319657FFF0CF4093040188
:10315000E0E5F7E120E030E057E2849199272F5F26
:103160003F4F829FB001839F700D929F700D11247D
:1031700046275150319657FFF0CF4093040180917C
:10318000EB02882319F4CBDE8093EB0281EE91E110
:10319000909356068093550680910401833459F02C
:1031A00088E190E029E20FB6F894A895809360003A
:1031B0000FBE20936000073091F083E398E19F9366
:1031C0008F938CE996E99F938F93E0915506F09148
:1031D000560609950F900F900F900F90EECF8091AB
:1031E0005401893158F18091EA028823A9F480E5DD
:1031F00098E19F938F938CE996E99F938F93E09149
:103200005506F0915606099587E1809354010F9079
:103210000F900F900F9012C015BC873119F4809356
:10322000540106C087E080930B0186E080930A0179
:10323000E0910201F09103018DEF09950E94285160
:1032400081E690E09F938F9388E090E09F938F9327
:1032500082E090E09F938F93809154016AE00E94F6
:10326000B39A892F99279F938F93809154010E943D
:10327000B39A99279F938F938AE898E19F938F93AE
:103280000CE916E91F930F93E0915506F09156064D
:10329000099588E797E19F938F931F930F93E09190
:1032A0005506F0915606099580E597E19F938F9317
:1032B0001F930F93E0915506F091560609950E94D1
:1032C000285183EC8093810080916F00806280930D
:1032D0006F008DB79EB746968DBF1F910F910895D1
:1032E000809183058D3338F08091B40887FD03C049
:1032F0008CE38093830580913105882331F08055DC
:10330000853618F08FE78093310508958091EC029F
:10331000882309F485C08091260381508093260379
:10332000882309F069C089E1809326038091830591
:103330008E3338F08091B40887FD03C08DE380930D
:103340008305809102048238A0F58091CA03909190
:10335000CB03805D974020F080911905843620F4DE
:1033600010922803109227032091270330912803FD
:1033700021153105B1F1C90101979093280380937C
:103380002703419798F18091B40884FF2FC0809162
:10339000C80384608093C8038091C20887FF26C059
:1033A00080918B04882311F1309328032093270305
:1033B0001DC080910204853BC8F09091830584E193
:1033C000989FC00111244096209127033091280333
:1033D0002817390730F42F5F3F4F3093280320938D
:1033E00027038091C8038B7F8093C80380910401D9
:1033F000833411F01092EC0290910501963009F49B
:10340000CFCB80910901882321F08150809309015D
:1034100008958BE480930901943011F40C944411C5
:1034200008951F920F920FB60F9211242F933F937E
:103430004F935F936F937F938F939F93AF93BF93BC
:10344000EF93FF939091CE008091EA048823B9F026
:103450009093C6008091EA04823009F03EC09F3FFD
:10346000E1F58FEF94E3ACE0B0E0C297A109B109B8
:10347000B7FFFBCF8091690A8093CE002EC02091C8
:103480000501822F8150833020F4892F0E94DF8034
:1034900024C0243021F4892F0E94590F1EC02830E7
:1034A00021F4892F0E94849918C080915401893198
:1034B00020F08091EA02882381F0253021F4892FC1
:1034C0000E949E0E0AC0263019F4892F30DB05C0F9
:1034D000273019F4892F0E94A77FFF91EF91BF91A8
:1034E000AF919F918F917F916F915F914F913F919C
:1034F0002F910F900FBE0F901F90189510927C0087
:103500008FEC80937A0008958091C00320910D0183
:1035100030910E01A0915603882331F0BB27A7FDFF
:10352000B0950E943F9B0EC084E0220F331F8A9506
:10353000E1F7BB27A7FDB0950E943F9B645071093E
:103540008109910960934E0370934F038093500358
:10355000909351030895EF92FF920F931F93CF938F
:10356000DF9310925603D0DF83E090E00E94432364
:10357000C82FD0E0C03FD10508F42A96C7BD8C2FD4
:10358000809588BD86E990E00E945A88809110015C
:10359000909111018132934010F0C0EFD0E000E82B
:1035A00011E09CE9E92E96E9F92E8C2FC7BD809594
:1035B00088BD84E690E00E945A881F930F93FF9283
:1035C000EF92E0915506F091560609958091100111
:1035D000909111010F900F900F900F9081329340B6
:1035E00020F42197C630D10500F7C09310056C2F49
:1035F00083E090E00E9445238091280580FF0AC067
:10360000809110058A508C3D28F080913F0A80649B
:1036100080933F0A80E180930C018091C00388234E
:10362000E1F080915401873150F4CC38D105A8F4F1
:1036300080EA90E08C1B9D0B6AE170E009C0CA3AF9
:10364000D10558F48CEB90E08C1B9D0B63E170E08E
:103650000E94BF9A605F60930C012091100130912D
:10366000110140910C01429FC001439F900D112414
:10367000A0E0B0E08093120190931301A093140195
:10368000B09315018CE291E0DF91CF911F910F91E2
:10369000FF90EF900C945A881F920F920FB60F92E2
:1036A00011240BB60F924F925F926F927F928F927E
:1036B0009F92AF92BF92CF92DF92EF92FF922F93A1
:1036C0003F934F935F936F937F938F939F93AF93AA
:1036D000BF93EF93FF938091410391E0980F9093F4
:1036E000410390E08231910508F092C4FC01EA5B4D
:1036F000FF4F0C94249B809178009091790046C0F4
:103700008091780090917900CCC18091780090915F
:10371000790090933B0380933A03DCC120917800B9
:10372000309179008091490490914A04821B930B57
:103730009093030580930205809102059091030503
:103740009093390380933803E4C18091780090917D
:10375000790020914B0430914C04821B930B909381
:103760000F0580930E0580910E0590910F059093A3
:103770003703809336034EC420917800309179004E
:1037800080913F0390914003820F931F90934003D9
:1037900080933F032AC22091780030917900809174
:1037A0003C0390913D03820F931F90933D038093C0
:1037B0003C0384E030C48091950583FF1EC02091B6
:1037C0001A0130911B0140917800509179006BE013
:1037D000649FC001659F900D11246EE170E00E940E
:1037E000BF9AC901880F991F820F931F680F791F15
:1037F000769567957695679534C08091340390915E
:103800003503892B71F420917800309179004AE0DA
:10381000429FC001439F900D1124909335038093E4
:103820003403809134039091350340917800509196
:1038300079006AE0649F9001659F300D112428177C
:10384000390710F0029601C00297909335038093D8
:10385000340380913403909135036FE170E00E944E
:10386000BF9A70931B0160931A0185E0D4C38091C5
:10387000780090917900909305058093040520913C
:1038800004053091050580914504909146044091CE
:103890004404281B390B241B310947FD3395309311
:1038A0005C0320935B032091C00321116EC0209123
:1038B0005B0330915C03223031056CF18E3E22E0D7
:1038C00092070CF0A5C02091320330913303A90177
:1038D0004B5F5F4F50933303409332034091CA03D1
:1038E0005091CB03443F514030F4215F3F4F309320
:1038F0003303209332032091320330913303253672
:1039000031050CF485C001969093460480934504DC
:103910002456310935C020915B0330915C032F3F61
:103920003F4F0CF075C0873252E095070CF470C021
:103930002091320330913303A9014550510950932E
:103940003303409332034091CA035091CB03443F69
:10395000514030F42F503109309333032093320318
:1039600020913203309133032C394FEF34070CF0A0
:103970004FC0019790934604809345042C593F4FC4
:10398000309333032093320343C080910A06909111
:103990000B068F3C9F41E4F180915B0390915C03A7
:1039A0000297B4F080913203909133039C012F5F12
:1039B0003F4F30933303209332032938334144F18E
:1039C00046301CF44F5F40934404875893411CC019
:1039D00080915B0390915C038F3F9F4FCCF480916B
:1039E0003203909133039C0121503109309333030A
:1039F0002093320328373C4E5CF44B3F1CF041507F
:103A00004093440489579C4E909333038093320330
:103A100080911C0490911D04A0911E04B0911F047C
:103A200040915B0350915C03662757FD6095762FAC
:103A3000840F951FA61FB71F80931C0490931D042D
:103A4000A0931E04B0931F04C0901C04D0901D04CA
:103A5000E0901E04F0901F0460911C0470911D04FE
:103A600080911E0490911F0420E034E040E050E07B
:103A70000E94089BC21AD30AE40AF50AC0921C04E9
:103A8000D0921D04E0921E04F0921F04FCC020910D
:103A900078003091790080913C0390913D03820F32
:103AA000931F90933D0380933C0310923E03B5C255
:103AB00020917800309179008FEF97E0821B930B73
:103AC00020913A0330913B03821B930B9093620346
:103AD0008093610380910B019EC220917800309108
:103AE00079008091490490914A04821B930B909332
:103AF00003058093020580910205909103052091B2
:103B0000380330913903820F931F909360038093A1
:103B10005F0380910A017FC28091780090917900C3
:103B200020914B0430914C04821B930B90930F0512
:103B300080930E0580910E0590910F05209136031C
:103B400030913703820F931F90935E0380935D0340
:103B500061C2809178009091790020913F0330916B
:103B60004003820F931F880F991F880F991F90930E
:103B7000400380933F039C0197FF02C0295F3F4FA2
:103B8000B3E035952795BA95E1F730936603209316
:103B900065032091300330913103280F391F37FF1F
:103BA00002C02F5F3F4F3595279530933103209307
:103BB00030038091550490915604281B390B3093A3
:103BC0001901209318018091690390916A03209153
:103BD000180130911901820F931F97FD0196959559
:103BE000879590936A038093690381E014C2809162
:103BF00078009091790020913C0330913D03820F31
:103C0000931F880F991F880F991F90933D038093EE
:103C10003C039C0197FF02C0295F3F4F73E035953D
:103C200027957A95E1F730936403209363032091FD
:103C30002E0330912F03280F391F37FF02C02F5F4B
:103C40003F4F3595279530932F0320932E03809176
:103C5000530490915404281B390B3093170120937F
:103C600016018091670390916803209116013091AD
:103C70001701820F931F97FD019695958795909355
:103C800068038093670383E0C6C18091C0038823E3
:103C9000A9F080E00E9410167F5F8F4F9F4F20E0B9
:103CA00032E040E050E00E94089B209342033093B2
:103CB0004303409344035093450310C08091FC0399
:103CC0009091FD03A091FE03B091FF038093420306
:103CD00090934303A0934403B09345031092410390
:103CE00081E080930F0180915203909153030196DC
:103CF00090935303809352038091780090917900C0
:103D000090931101809310018091C003882309F4DE
:103D10006EC0C0901001D0901101E12CF12C809167
:103D20004E0390914F03A0915003B0915103C81AD4
:103D3000D90AEA0AFB0AC0922A03D0922B03E09226
:103D40002C03F0922D038090120190901301A0900B
:103D50001401B090150160911201709113018091CE
:103D600014019091150120910C0130E040E050E0E9
:103D70000E94089B821A930AA40AB50A8092120133
:103D800090921301A0921401B0921501809112013A
:103D900090911301A0911401B09115018C0D9D1DFE
:103DA000AE1DBF1D8093120190931301A0931401C7
:103DB000B09315018091060590910705A091080523
:103DC000B0910905409112015091130160911401C5
:103DD00070911501841B950BA60BB70B80934603BE
:103DE00090934703A0934803B093490313C1809174
:103DF000100190911101C0902A03D0902B03E09004
:103E00002C03F0902D03C80ED91EE11CF11CC092AA
:103E10002A03D0922B03E0922C03F0922D03809181
:103E200029038F5F80932903803108F4F3C0209128
:103E30001201309113014091140150911501A7E036
:103E4000B0E00E94459B6C0D7D1D8E1D9F1D8090D6
:103E50004E0390904F03A0905003B0905103681907
:103E600079098A099B0928E030E040E050E00E948F
:103E7000089B209312013093130140931401509337
:103E800015018090060590900705A0900805B09058
:103E900009058091120190911301A0911401B09134
:103EA0001501881A990AAA0ABB0A809246039092C1
:103EB0004703A0924803B0924903409057035090A3
:103EC00058036090590370905A03609157037091A2
:103ED00058038091590390915A0320E130E040E06B
:103EE00050E00E94089B421A530A640A750A4092E5
:103EF0005703509258036092590370925A0380916D
:103F0000570390915803A0915903B0915A03880D1B
:103F1000991DAA1DBB1D8093570390935803A0932E
:103F20005903B0935A0360915703709158038091DD
:103F3000590390915A0320E130E040E050E00E94A4
:103F4000089B50954095309521953F4F4F4F5F4FBF
:103F5000C901880D991D81156CEF960714F480E056
:103F60009CEF9C01213084E0380714F020E034E01D
:103F7000809154039091550397FF03C091958195CB
:103F8000910943E0220F331F4A95E1F78D3B9240A0
:103F9000A4F040915403509155036FE0649FC00119
:103FA000659F900D1124820F931F97FD0F9634E0AB
:103FB000959587953A95E1F713C040915403509138
:103FC00055036FE1649FC001659F900D1124820F1E
:103FD000931F97FD4F9625E0959587952A95E1F7D4
:103FE0009093550380935403C701B60122E030E05B
:103FF00040E050E00E94089B20932A0330932B035B
:1040000040932C0350932D0388E08093290302C032
:104010001092410382E080933E0380913E0380939F
:104020007C0080914103882319F08FEC80937A0003
:10403000FF91EF91BF91AF919F918F917F916F9180
:104040005F914F913F912F91FF90EF90DF90CF9034
:10405000BF90AF909F908F907F906F905F904F90A8
:104060000F900BBE0F900FBE0F901F9018951092DF
:10407000140510921305109218051092170510924E
:104080001605109215051092190582E390E00E9422
:104090004688909374038093730308952FE0829F62
:1040A000F0011124EC58F64F85818F3F71F0893C67
:1040B00050F0908192FF07C02AE0829FC001112436
:1040C00088509740089590E0089580E090E008952A
:1040D000BF92CF92DF92EF92FF920F931F93CF93F5
:1040E000DF9380917303909174030E944F8888231B
:1040F00009F4CBC08091730390917403C29690939E
:10410000740380937303809119058E3F81F480912D
:10411000C70381608093C7030AE719E0BB24BA9400
:10412000D12CC12CE12CF12CC0E0D0E023C08F3F7A
:1041300099F78091C7038E7FEDCFD394329680811B
:10414000893CF0F08C2DAADFC80FD91FF8013597F4
:104150008081E80EF11CF8018081B816A0F48091EE
:10416000C7038E7F8093C703C394015F1F4FFCE09A
:10417000CF1659F0F8013397808187FFF5CFDDCF57
:10418000C80FD11DE3CFB82EEFCFB0921905EF289D
:1041900029F540916F035091700360917103709104
:1041A0007203BB27A72F962F852F90936E038093C2
:1041B0006D03AA27BB27481B590B6A0B7B0B4C0FBF
:1041C0005D1F611D711D40936F03509370036093D9
:1041D000710370937203C5E0D0E011C080916D034C
:1041E00090916E038C179D0718F4C81BD90B02C061
:1041F000C0E0D0E0CD0DD11DCD0DD11D2596D093C1
:104200001405C093130520911A0130911B01CF3F73
:10421000D10550F4C29FC001C39F900DD29F900D55
:10422000112464E670E00EC0AE0156954795569590
:104230004795429FC001439F900D529F900D1124BE
:1042400069E170E00E94BF9A7093160560931505AE
:1042500080916B0390916C032091170530911805A4
:104260008C0F9D1FA9014F5F5F4F813D62E0960754
:1042700020F0805D92409A01F5CF3093180520938D
:10428000170590936C0380936B03DF91CF911F917F
:104290000F91FF90EF90DF90CF90BF900895FC01B9
:1042A000680F791F8AEAE617F70719F09191890FCD
:1042B000FACF0895FF920F931F93CF93DF938B0153
:1042C000080F191FEC018AEAF82EC017D10731F048
:1042D000CE010E94BB9BF80E2196F7CF8F2DDF9168
:1042E000CF911F910F91FF90089581E080931E055B
:1042F00082E080931D0583E080931C0584E0809319
:104300001F0585E08093200586E08093210587E0E6
:104310008093220588E08093230589E0809324051B
:104320008AE0809325058BE0809326058CE08093BE
:104330002705089587E680931B058CE0E7E9F5E003
:10434000DF011D928A95E9F78AE080933B05109280
:104350005F058BE1809337058EE480935C05809345
:104360005D0580E280935E05109293058AE6809356
:10437000280582E78093950580E58093960586E081
:10438000809342051092800510927D0598E09093ED
:10439000350586EE8093360580E48093380585E008
:1043A00080932B058EE1809329052EE6209330051E
:1043B0002091C003222391F094E190932C0598E280
:1043C00090932A0580932E0581E080932F058FE737
:1043D000809331058CE3809383050DC02FE02093FB
:1043E0002C0580932A0510922E0590932F0510928C
:1043F0003105109283058FE080932D0510928C0576
:104400008CE080938D051092440510924505109222
:1044100046051092470510926105109262051092B0
:1044200063051092640520E82093480582E3809399
:10443000490552E05093940598E190934A0596EE11
:1044400090934B0593E0909350059DE7909353050F
:10445000909354059093550520934C0575E5709302
:104460004D0526E420934E053CED30934F053CE38B
:1044700030935105109252053AEA309365054CECA1
:10448000409367051092690530936A0548E24093AE
:1044900066054093680510926B0510929105809314
:1044A0009205809356053AE5309357058093580559
:1044B00066E060936C05E4E6E0936D05E0936E05BD
:1044C00030936F05E8E7E0937005409374054BE483
:1044D0004093710570937205409373056093750561
:1044E00048E040937605809377058AE280937805CB
:1044F0001092790510927C058CE880937A05509390
:104500007B0510927E0510927F0541E440934005A3
:1045100030934105109281051092820536E930935F
:1045200084059093590594E390935A05109285055C
:10453000109286051092870580938805209389053F
:1045400080938A0520938B0510928E0580E28093DC
:104550003F058FE1809390058EE180938F0508954C
:10456000E9DE8AE08093320580E18093330586E0BE
:10457000809334052AE52093390598E790933A050E
:1045800020933C0590933D0580933E0580E2809307
:1045900043058CE380935B058BE48093600586E4A0
:1045A00091E6A3E7B4E78093970590939805A093CD
:1045B0009905B0939A0568E870E08BE195E06FDEAD
:1045C0008093A3050895B6DE88E08093320580E1EC
:1045D0008093330596E09093340534E630933905A3
:1045E00028E720933A0530933C0520933D059093AE
:1045F0003E058093430586E480935B0580936005C8
:1046000085E0E5ECF2E0A7E9B5E001900D928A952E
:10461000E1F768E870E08BE195E041DE8093A30567
:10462000089588DE86E0809332059AE09093330502
:1046300094E09093340524E62093390598E790930D
:104640003A0520933C0590933D0580933E0580E11B
:104650008093430586E480935B058093600585E441
:1046600091E6A3E7B9E78093970590939805A09307
:104670009905B0939A0568E870E08BE195E00FDE4C
:104680008093A30508950C94BB9B0C94D19B0C9430
:10469000C39B0C94DF9BFF920F931F93CF93DF93E9
:1046A0009FEF980F953008F083E0282F30E02150DD
:1046B000310989E8829F8001839F100D1124E80150
:1046C000CC59DF4F68E870E0CE01F4DDF82EC80168
:1046D00084519F4F0E94BB9BF81212C0CE010E94D2
:1046E000BB9B873669F449E850E0BE018BE195E059
:1046F0000E94AB9B0E94FA730E94AA1481E001C041
:1047000080E0DF91CF911F910F91FF900895CF939B
:104710006DE470E088EE93E0CDDDC82F85E394E092
:104720000E94BB9BC81310C088EE93E00E94BB9B05
:10473000813051F44EE450E068EE73E084EA95E095
:104740000E94AB9B81E001C080E0CF9108958091F1
:10475000A405813089F46DE470E084EA95E09FDD82
:104760008093F1054EE450E068EE73E084EA95E052
:104770000E94C89B81E0089580E0089581E08093C5
:10478000A405E4EBF5E0DF0113971C9211961C924F
:1047900011961C921082349685E0E43FF80799F751
:1047A00080E48093B1058093B2051092B3058093A5
:1047B000B4058093B50590EC9093B6051092B705BB
:1047C0008093B8058093B9051092BA059093BB0504
:1047D0009093BC058093BD051092BE058093BF05E4
:1047E0009093C0058CE0E8EBF2E0A5EAB5E001901B
:1047F0000D928A95E1F76DE470E084EA95E04FDD73
:104800008093F105089582E090E00E94BB9B863082
:1048100030F063E082E090E00E94D19B83E08093DF
:1048200052010895863020F4811103C081E001C057
:1048300085E080935201682F82E090E00C94D19B38
:10484000CF93C82F80911B05873609F047C0C6302B
:1048500020F4CC2309F442C001C0C5E00E947019C5
:104860008091960582FF07C080914005843618F03C
:1048700080E58093400568E870E08BE195E00FDD0E
:104880008093A3052C2F30E02150310989E8829FC5
:10489000B001839F700D11246C597F4F49E850E09F
:1048A0008BE195E00E94C89B4CE050E060E570E031
:1048B0008CE195E00E94C89B6CE070E08CE195E093
:1048C000EEDC682F8CE590E00E94D19B8C2FAADF54
:1048D0000E94FA730E94AA1481E001C080E0CF9187
:1048E0000895CF93DF93C82FD62F863068F488239E
:1048F00031F0823039F0833041F0813031F430DEF4
:10490000C1E004C060DE02C0C5E08BDEDD23A9F09B
:104910006CE070E080E590E0CDDCD82F8CE590E095
:104920000E94BB9BD81309C04CE050E060E570E0EA
:104930008CE195E00E94AB9B01C0D7DC8C2FDF910E
:10494000CF917ECF9F92AF92BF92CF92DF92EF92A4
:10495000FF920F931F93CF93DF93C091540181E196
:1049600090E00E94BB9BC81771F1C63149F48531B4
:1049700039F44C9905C060E081E090E00E94D19B41
:104980006091540181E190E00E94D19B28E088E190
:1049900090E00FB6F894A895809360000FBE209326
:1049A000600083E092E09F938F938CE996E99F9358
:1049B0008F93E0915506F091560609950F900F9050
:1049C0000F900F90FFCF81E090E00E94BB9BDD2411
:1049D000D394873609F4D12C6CE070E080E590E048
:1049E00069DCA82E8CE590E00E94BB9B982EC1E06C
:1049F000D0E0B12C0DED11E09CE9E92E96E9F92EFD
:104A0000CC2EDD20C9F0DF93CF931F930F93FF923D
:104A1000EF92E0915506F091560609950F900F9090
:104A20000F900F900F900F9081E0C81651F092E018
:104A3000C91209C0C8DD08C08C2F2DDE882319F3E8
:104A400013C08EDD01C0EDDDA91009C04CE050E0BF
:104A500060E570E08CE195E00E94AB9B01C045DC15
:104A60008C2DEEDEBB24B3942196C630D10541F6E1
:104A7000BB2011F083E0D6DEC6DEC82F0CDE1F920D
:104A8000CF9384EC91E09F938F938CE996E99F9369
:104A90008F93E0915506F0915606099581E090E0DC
:104AA0000E94BB9B0F900F900F900F900F900F9054
:104AB0008F3FA1F483EA91E09F938F938CE996E96D
:104AC0009F938F93E0915506F0915606099556DE17
:104AD0003EDE0F900F900F900F9003C018DE8823DA
:104AE00049F3DD2029F067E681E090E00E94D19B48
:104AF000E1EBF5E080E0908119160CF48F5F3496BD
:104B000095E0E13FF907B9F780931A051F928F935B
:104B100085EA95E09F938F9382E891E09F938F932E
:104B20008CE996E99F938F93E0915506F091560694
:104B300009958DB79EB708960FB6F8949EBF0FBE25
:104B40008DBFDF91CF911F910F91FF90EF90DF907C
:104B5000CF90BF90AF909F900C942851CF92DF924E
:104B6000EF92FF928091C7089091C8089093260C0D
:104B70008093250C8091C9089091CA089093280CC5
:104B80008093270C80913D0690913E0697FD0396F9
:104B9000959587959595879590932A0C8093290CE8
:104BA00080914F069091500697FD039695958795B5
:104BB0009595879590932C0C80932B0C20916103F5
:104BC000309162038091510490915204821B930BA7
:104BD00090932E0C80932D0C6091FC037091FD033B
:104BE0008091FE039091FF033AE0C32ED12CE12C7B
:104BF000F12CA70196010E94089B3093300C209362
:104C00002F0C80910405909105059093320C8093B0
:104C1000310C80914E0190914F019093360C80930E
:104C2000350C80911A0190911B019093380C809360
:104C3000370C8091020490E090933A0C8093390CE9
:104C40008091FE059091FF0590933C0C80933B0C66
:104C50008091750990E090933E0C80933D0C80917B
:104C6000840990E09093400C80933F0C80919309CD
:104C700090E09093420C8093410C8091A20990E0C7
:104C80009093440C8093430C8091C4049091C5048C
:104C900090934E0C80934D0C8091E6039091E70326
:104CA0009093500C80934F0C8091130590911405B4
:104CB0009093520C8093510C809117059091180598
:104CC0009093540C8093530C6091F8037091F90306
:104CD0008091FA039091FB03A70196010E94089B23
:104CE0003093560C2093550C8091190590E09093C9
:104CF000600C80935F0C809168049091690490939C
:104D0000620C8093610C809166049091670490938B
:104D1000640C8093630C90913F0A8091240C911154
:104D200004C09091400A992311F0816001C08E7FE8
:104D30008093240CFF90EF90DF90CF900895FF9226
:104D40000F931F93CF93DF938B01909101049111E7
:104D500030C090915401993111F4299801C0299AD9
:104D6000F82EFF20F9F01093CC040093CB04E80157
:104D70002091CB043091CC04232B81F08091CF047F
:104D80008823B1F31092CF042091CB043091CC044E
:104D9000232B09F421970E948619EACF209771F7F7
:104DA000FA94DFCF80915401893111F4299A01C01E
:104DB0002998DF91CF911F910F91FF900895EAE715
:104DC000F0E0108280916503909166039093050650
:104DD0008093040680916303909164039093FA0595
:104DE0008093F90580916103909162039093450649
:104DF0008093440620915D0330915E0346E0429F1C
:104E0000C001439F900D112490933E0680933D0670
:104E100020915F0330916003429FC001439F900D3A
:104E200011249093500680934F068FEC808320913D
:104E30005C0530E0A4ECB9E00E94309B6093460131
:104E400070934701809348019093490120915D053B
:104E500030E00E94309B6093420170934301809345
:104E600044019093450108958F929F92AF92BF9213
:104E7000CF92DF92EF92FF920F931F93CF93DF9326
:104E8000082F10923F0A10924C0410924B0410927B
:104E90004A0410924904109246041092450410925C
:104EA0004404109256041092550410925404109227
:104EB0005304109252041092510410922A0110923D
:104EC000290110925603833029F48091C703826030
:104ED0008093C70374DF84E690E00E945A886FDFF6
:104EE0008091280580FF13C08091100190911101DD
:104EF000873B934050F480911001909111018E3EB8
:104F0000924018F08091560381110E94AB1A809054
:104F100010019090110187B58B5F87BD87B5809593
:104F200088BD10E2C0E0D0E0C12CD12CA12CB12C66
:104F3000E12CF12C8AE090E00E945A888091610374
:104F400090916203E80EF91E8091650390916603CB
:104F5000A80EB91E8091630390916403C80ED91EF8
:104F60008091040590910505C80FD91F115011F7C4
:104F70008091100190911101823F934080F48091C3
:104F8000100190911101459750F08091100190917E
:104F90001101881A990A90920E0180920D0187B52D
:104FA000855087BD87B5809588BDC501409696958B
:104FB000879596958795909356048093550496010E
:104FC000205F3F4F369527953695279530935404AB
:104FD0002093530440E1E40EF11CE5E0F694E794DD
:104FE000EA95E1F7F0925204E09251046096F5E000
:104FF000D695C795FA95E1F7D0934604C09345043A
:105000003093500420934F0490934E0480934D04AA
:10501000023009F04CC080913D0690913E0697FF0A
:1050200003C09195819591096CE070E00E94D39A3C
:105030009B0170934C0460934B0480914F069091B8
:10504000500697FF03C09195819591096CE070E03F
:105050000E94D39A70934A0460934904B90184E092
:1050600090E017DB6091490470914A0486E090E07B
:1050700010DB609145047091460488E090E009DB04
:10508000609155047091560482E190E002DB6091DA
:1050900053047091540484E190E0FBDA6091510470
:1050A0007091520486E190E0F4DA11E091C084E05E
:1050B00090E0EDDA90934C0480934B0486E090E00E
:1050C000E6DA90934A048093490420914B0430918E
:1050D0004C042130384018F481309840A8F18FE416
:1050E00092E09F938F938CE996E99F938F93E09141
:1050F0005506F0915606099580913D0690913E0621
:1051000097FF03C09195819591096CE070E00E9432
:10511000D39A70934C0460934B0480914F06909106
:10512000500697FF03C09195819591096CE070E05E
:105130000E94D39A70934A04609349040F900F9091
:105140000F900F9010E001C011E08091C70381FF24
:105150003FC082E190E09BDA7C0184E190E097DA45
:10516000EC0186E190E093DA9701395121383C4017
:1051700058F49E01395121383C4030F49C012052B2
:10518000334021393140C0F08BE292E09F938F93FE
:105190008CE996E99F938F93E0915506F09156061E
:1051A00009958091C7038D7F8093C7030F900F905F
:1051B0000F900F9010E00CC0F0925604E09255044E
:1051C000D0935404C0935304909352048093510499
:1051D00012BC11BC10920506109204061092FA053A
:1051E0001092F905109245061092440688EC90E062
:1051F0000E945A8880915D0390915E0326E0289F6B
:10520000D001299FB00D1124B0933E06A0933D0616
:1052100080915F0390916003289FA001299F500D0A
:1052200011245093500640934F06E0913705F0E06B
:105230009F010E943F9B6B017C016093400470932F
:1052400041048093420490934304DA010E943F9BFF
:1052500060933C0470933D0480933E0490933F041C
:10526000C0923404D0923504E0923604F0923704B0
:10527000609330047093310480933204909333042C
:1052800010922C0410922D0410922E0410922F04D0
:10529000E0914E01F0914F01F0931B04E0931A044A
:1052A00084E690E090934B0180934A0120915C0545
:1052B00030E0A4ECB9E00E94309B6856754C8F4FEB
:1052C0009F4F6093460170934701809348019093EC
:1052D000490120915D0530E00E94309B6856754C75
:1052E0008F4F9F4F6093420170934301809344011D
:1052F00090934501109226011092250120912101E1
:10530000309122014091230150912401DF010E943C
:105310004F9B60934B0670934C0680934D06909381
:105320004E0610921704109216040E94FA7300237E
:1053300029F08091C90384608093C9038FEF809323
:10534000290910922A0980E280932B0984E6809330
:1053500002048091C904882311F0579A15C08091E6
:1053600094058570853019F480EE9EE202C080E0DD
:1053700091E19093A8028093A70281E08093AF020D
:105380000E94F3880E94F388C0902101D0902201EE
:10539000E0902301F090240160913C0470913D0461
:1053A00080913E0490913F04A70196010E94089BC2
:1053B00049015A0160914004709141048091420476
:1053C00090914304A70196010E94089BB401C90172
:1053D0000E94120DEC010E94CD7D9C0190930B0662
:1053E00080930A06609145047091460472508827A4
:1053F00077FD8095982F5DE0660F771F881F991FB6
:105400005A95D1F7705F8F4F9F4F442737FD4095D6
:10541000542F0E94089BC901B9017E5F7093460416
:105420006093450465970CF010E0002379F06091DB
:10543000C003662359F02C5831092234310530F06D
:1054400020913F0A206220933F0A10E020915504EA
:105450003091560420563940213C3B4228F020919F
:105460003F0A216020933F0A209153043091540455
:1054700020563940213C3B4228F020913F0A2260CF
:1054800020933F0A20915104309152042C52314014
:105490002937354028F020913F0A246020933F0AA5
:1054A00020914B0430914C042C523140233C31402C
:1054B00028F020913F0A286020933F0A2091490458
:1054C00030914A042C523140233C314028F0209145
:1054D0003F0A206120933F0A8335914028F0809154
:1054E0003F0A806280933F0A80913F0A811110E059
:1054F00086E480933D010E94AA1482E00E94101667
:105500008091120190911301A0911401B0911501A5
:105510008093060590930705A0930805B0930905AD
:10552000109255031092540310925703109258038F
:105530001092590310925A0310921C0410921D04E9
:1055400010921E0410921F0410925E0C10925D0CBB
:105550000E94841A8091C70381FF07C080915F0574
:10556000811103C084E080935F05812FDF91CF918B
:105570001F910F91FF90EF90DF90CF90BF90AF9071
:105580009F908F9008952F923F924F925F926F92CB
:105590007F928F929F92AF92BF92CF92DF92EF92C3
:1055A000FF920F931F93CF93DF93CDB7DEB768972A
:1055B0000FB6F894DEBF0FBECDBF209161033091CE
:1055C00062038091510490915204821B930B90933B
:1055D0004506809344068091690390916A0397FD84
:1055E00007969C0173E0359527957A95E1F73093FE
:1055F000050620930406809167039091680397FD48
:10560000079643E0959587954A95E1F79093FA05BB
:105610008093F90530930D0620930C0690930806AD
:105620008093070640915D0350915E0320913D06F3
:1056300030913E06C901880F991F820F931F66E0C3
:10564000649F9001659F300D1124820F931F97FD79
:105650000396959587959595879590933E068093AB
:105660003D0640915F035091600320914F063091B9
:105670005006C901880F991F820F931F66E0649F2F
:105680009001659F300D1124820F931F97FD0396A3
:1056900095958795959587959093500680934F069D
:1056A00020915D0330915E0380911606909117065C
:1056B000820F931F909317068093160620915F0325
:1056C000309160038091470690914806820F931FA6
:1056D0009093480680934706809147049091480430
:1056E00001969093480480934704809146039091DB
:1056F0004703A0914803B09149038093FC03909322
:10570000FD03A093FE03B093FF03809142039091A9
:105710004303A0914403B091450380934A039093BF
:105720004B03A0934C03B0934D038FEC80937A000E
:1057300010920F01209130043091310440913204D5
:10574000509133042D833E834F8358874091340416
:1057500050913504609136047091370449875A8717
:105760006B877C872090440630904506B1018827DE
:1057700077FD8095982F698B7A8B8B8B9C8B809093
:105780002C0490902D04A0902E04B0902F04860E2F
:10579000971EA81EB91E80922C0490922D04A092F0
:1057A0002E04B0922F0480914B0690914C06A0914C
:1057B0004D06B0914E0629893A894B895C89280F9C
:1057C000391F4A1F5B1F2D873E874F87588B2093B9
:1057D0004B0630934C0640934D0650934E068091F5
:1057E000E50381115BC18091E403811157C1809170
:1057F000390686FF53C13D812E819F8188854D8169
:105800005E816F817885483B54496E4F7F4F24F409
:1058100038EB24E99EEF8FEF39832A839B838C83B7
:1058200029813A814B815C8129343B4641405105B5
:1058300044F088E49BE6A1E0B0E089839A83AB83DF
:10584000BC8339852A859B858C8549855A856B85DE
:105850007C85483B54496E4F7F4F24F438EB24E954
:105860009EEF8FEFC32ED22EE92EF82EB9E4CB1681
:10587000BBE6DB06B1E0EB06F1043CF0A8E4CA2E7F
:10588000ABE6DA2EEE24E394F12C40902901242D8E
:1058900030E040E050E02D8B3E8B4F8B588FA09135
:1058A000F905B091FA05A70196010E944F9B20E0EF
:1058B00038E040E050E00E94089B6D897E898F8926
:1058C000988D0E94A49A20E030E140E050E00E94D0
:1058D000089B29013A012093B6033093B703409304
:1058E000B8035093B903A0910406B091050629812D
:1058F0003A814B815C810E944F9B20E038E040E080
:1059000050E00E94089B6D897E898F89988D0E9446
:10591000A49A20E030E140E050E00E94089B5092C1
:10592000F3054092F2053093F5052093F405CA0182
:10593000B90164197509860997092B013C01609327
:10594000B2037093B3038093B4039093B5038D8532
:105950009E85AF85B889840D951DA61DB71D8093C2
:105960004B0690934C06A0934D06B0934E06809143
:105970002801811116C0C301B20122E030E040E0ED
:1059800050E00E94089BD501C401821B930BA40B1D
:10599000B50B80932C0490932D04A0932E04B09308
:1059A0002F0489899A89AB89BC89480E591E6A1EC1
:1059B0007B1E80902A01912CA12CB12CA301920175
:1059C000C701B6010E94A49A20E038E040E050E010
:1059D0000E94089BC501B4010E94A49AC12CF0E169
:1059E000DF2EE12CF12CA70196010E94089B890172
:1059F000498B5D872093AE031093AF034093B003B0
:105A00005093B103A301920169817A818B819C81BA
:105A10000E94A49A20E038E040E050E00E94089BF9
:105A2000C501B4010E94A49AA70196010E94089B97
:105A30002093AA033093AB034093AC035093AD0380
:105A400037FE03C031942194310891E429163104C2
:105A5000ECF1C801A989BD85B7FF07C0B095A09535
:105A6000909581959F4FAF4FBF4F81389105A1050C
:105A7000B10584F4C901DA01B7FF07C0B095A0955C
:105A8000909581959F4FAF4FBF4F81389105A105EC
:105A9000B105E4F081E08093180418C01092F50578
:105AA0001092F4051092F3051092F2051092AA03D9
:105AB0001092AB031092AC031092AD031092AE03A0
:105AC0001092AF031092B0031092B1038090AE0316
:105AD0009090AF03A090B003B090B103C090AA0320
:105AE000D090AB03E090AC03F090AD03C701B601DA
:105AF0002CE93FEF4FEF5FEF0E94089B8901080DF3
:105B0000191D1093030600930206C501B40124E693
:105B100030E040E050E00E94089B19012C183D083D
:105B20003092FC052092FB0580904B0690904C062D
:105B3000A0904D06B0904E06409021015090220159
:105B40006090230170902401A8E6B1E0A3019201C6
:105B50000E94459B6B017C0186169706A806B90634
:105B600084F0A8E9BEEF0E94519B680D791D8A1D43
:105B70009B1D60934B0670934C0680934D0690934B
:105B80004E0680914B0690914C06A0914D06B09127
:105B90004E06B7FF0CC0C80ED91EEA1EFB1EC092EF
:105BA0004B06D0924C06E0924D06F0924E06409184
:105BB000F9055091FA05400F511F8091EA03909129
:105BC000EB03481B590B662757FD6095762F8D8197
:105BD0009E81AF81B885480F591F6A1F7B1F409374
:105BE00030045093310460933204709333048091F5
:105BF000420190914301A0914401B0914501841765
:105C00009507A607B70784F448EA51E660E070E01C
:105C1000481B590B6A0B7B0B4093300450933104A3
:105C2000609332047093330444275527BA01481B0C
:105C3000590B6A0B7B0BC0903004D0903104E0907C
:105C40003204F0903304C416D506E606F70664F471
:105C5000885A9146A109B109809330049093310488
:105C6000A0933204B093330440910406509105068A
:105C7000420D531D8091E8039091E903481B590B95
:105C8000662757FD6095762F89859A85AB85BC85FB
:105C9000480F591F6A1F7B1F4093340450933504EB
:105CA00060933604709337048091460190914701C8
:105CB000A0914801B091490184179507A607B7073D
:105CC00084F448EA51E660E070E0481B590B6A0B27
:105CD0007B0B4093340450933504609336047093E7
:105CE000370444275527BA01481B590B6A0B7B0B15
:105CF000C0903404D0903504E0903604F09037041E
:105D0000C416D506E606F70664F4885A9146A1093A
:105D1000B1098093340490933504A0933604B09372
:105D2000370480912C0490912D04A0912E04B09101
:105D30002F048093380490933904A0933A04B093CD
:105D40003B048091340490913504A0913604B091C5
:105D500037048093400490934104A0934204B0938D
:105D600043048091300490913104A0913204B091A9
:105D7000330480933C0490933D04A0933E04B0937D
:105D80003F04809118019091190197FD0796E3E077
:105D900095958795EA95E1F790930506809304061B
:105DA000809116019091170197FD079673E09595E4
:105DB00087957A95E1F79093FA058093F90580919C
:105DC0006503909166030F9734F488E19CEF9093FC
:105DD00005068093040680916503909166030797FA
:105DE00034F480E398EF9093050680930406809145
:105DF000650390916603813D974034F088EE93E00F
:105E00009093050680930406809165039091660344
:105E1000803E974034F080ED97E0909305068093A4
:105E2000040680916303909164030F9734F488E132
:105E30009CEF9093FA058093F9058091630390910C
:105E40006403079734F480E398EF9093FA05809306
:105E5000F9058091630390916403813D974034F08C
:105E600088EE93E09093FA058093F905809163039F
:105E700090916403803E974034F080ED97E09093DA
:105E8000FA058093F90540913501442309F4A9C02E
:105E900020911801309119016091A8037091A90314
:105EA000261B370B3093A7032093A603809118017C
:105EB00090911901860F971F97FD019695958795EB
:105EC0009093A9038093A803213831051CF080E842
:105ED00090E005C020383F4F34F480E89FEF909366
:105EE000A7038093A60320911601309117016091BA
:105EF000A4037091A503261B370B3093A3032093B3
:105F0000A2038091160190911701860F971F97FDAC
:105F10000196959587959093A5038093A4032138C6
:105F200031051CF080E890E005C020383F4F34F484
:105F300080E89FEF9093A3038093A20350E08091A9
:105F4000A6039091A703489F9001499F300D589F49
:105F5000300D1124C90137FD0F96BC01B4E07595D1
:105F60006795BA95E1F78091040690910506860F32
:105F7000971F90930506809304066091A203709189
:105F8000A303469FC001479F900D569F900D11247B
:105F9000AC0197FF02C0415F5F4FBA01A4E0759565
:105FA0006795AA95E1F74091F9055091FA05460FDA
:105FB000571F5093FA054093F905409118015091ED
:105FC0001901420F531F509319014093180120915A
:105FD000160130911701280F391F309317012093B4
:105FE0001601E0900706F0900806D09028019091E5
:105FF000F2058091F305A92FB82F1E141F0484F415
:10600000B7FF03C0B195A195B1092D2D30E00E94D5
:106010003F9B20E430E040E050E00E94089B16C027
:10602000B7FF03C0B195A195B1092D2D30E00E94B5
:106030003F9B20E430E040E050E00E94089B5095F8
:106040004095309521953F4F4F4F5F4F200F311FA7
:10605000309303062093020600910C0610910D0662
:106060009091F4058091F505A92FB82F101611060F
:1060700084F4B7FF03C0B195A195B1092D2D30E08F
:106080000E943F9B20E430E040E050E00E94089BEB
:1060900016C0B7FF03C0B195A195B1092D2D30E011
:1060A0000E943F9B20E430E040E050E00E94089BCB
:1060B00050954095309521953F4F4F4F5F4F220DA2
:1060C000331D3093FC052093FB058091390687FF33
:1060D00032C08091E50381112EC08091E4038111CB
:1060E0002AC0013071E0170714F01A9505C0011598
:1060F0008FEF18075CF413958091040690910506C4
:10610000800F911F909305068093040691E0E91695
:10611000F90614F0FA9405C0E114BFEFFB065CF435
:10612000F3948091F9059091FA058E0D9F1D90933F
:10613000FA058093F90568960FB6F894DEBF0FBE96
:10614000CDBFDF91CF911F910F91FF90EF90DF9026
:10615000CF90BF90AF909F908F907F906F905F9007
:106160004F903F902F900895CF93DF93809101043B
:10617000811127C08091C9038C7F8093C9038091CE
:10618000C8038F7D8093C803E4E4FAE0A6E7B9E092
:106190008091F304811101C010828191ED0121975A
:1061A00088831C921F968AE0E035F80789F7809172
:1061B000F304882359F08091F30481508093F30411
:1061C00005C08091C90381608093C9038091DE047A
:1061D000882319F01092DE040AC01092E104809125
:1061E000DC048E7F8093DC0485EA8093BC00DF9121
:1061F000CF9108958823A9F0E82FF0E0EE0FFF1F5C
:10620000E25FF74F8081918181589F4F97FF02C0D5
:1062100080E090E08F3F910529F024F08FEF90E02F
:10622000089580E00895CF93DF93C0E2D5E0E3E0E6
:10623000F4E02991A22FB0E0AA0FBB1FA25FB74FD5
:106240008D919C9181589F4F97FF02C080E090E014
:106250008F3F910519F014F08FEF90E0293111F480
:1062600080831CC06081462F50E084179507B1F0F1
:106270009C01241B350B37FF02C02D5F3F4F359526
:10628000279535952795260F2083422F50E08417B8
:10629000950714F4215001C02F5F2083319625E02B
:1062A000C832D20731F680912A05883F38F0EFEFE7
:1062B000F0E0E81BF109ED5FFB4F808180933A012C
:1062C00080913A01843618F084E680933A018091F7
:1062D0002C05883F38F0EFEFF0E0E81BF109ED5FA7
:1062E000FB4F80818093390180913901843618F009
:1062F00084E68093390180913905883F38F0EFEFCB
:10630000F0E0E81BF109ED5FFB4F808180933401E1
:10631000809134018B3018F48AE0809334018091AD
:106320006605883F38F0EFEFF0E0E81BF109ED5F1C
:10633000FB4F80818093180680911806863018F4F0
:1063400085E08093180680916805883F38F0EFEF6C
:10635000F0E0E81BF109ED5FFB4F80818093400680
:1063600080914006863018F485E080934006809145
:106370005305873F29F4429B07C08091880517C0C9
:10638000863F29F44399F9CF8091890510C0883F51
:1063900038F0EFEFF0E0E81BF109ED5FFB4F808193
:1063A0008093150680911506893118F488E1809351
:1063B000150680915405873F29F4429B07C08091C0
:1063C0008A0517C0863F29F44399F9CF80918B0540
:1063D00010C0883F38F0EFEFF0E0E81BF109ED5F07
:1063E000FB4F80818093F6058091F605893118F482
:1063F00088E18093F60580915505883F38F0EFEFEE
:10640000F0E0E81BF109ED5FFB4F808180931E06F1
:1064100080911E06893118F488E180931E068091D0
:106420002B05E8DE8093DF0380912E05883F38F04E
:10643000EFEFF0E0E81BF109ED5FFB4F8081809307
:10644000380180913005883F38F0EFEFF0E0E81B2D
:10645000F109ED5FFB4F8081809336018091380513
:10646000883F38F0EFEFF0E0E81BF109ED5FFB4FFC
:1064700080818093370180913A05883F38F0EFEFB3
:10648000F0E0E81BF109ED5FFB4F80818093330161
:1064900080913B05883F38F0EFEFF0E0E81BF10911
:1064A000ED5FFB4F80818093350180913C05883FF3
:1064B00038F0EFEFF0E0E81BF109ED5FFB4F808172
:1064C0008093320180913D05883F38F0EFEFF0E096
:1064D000E81BF109ED5FFB4F8081809331018091D2
:1064E0004305883F38F0EFEFF0E0E81BF109ED5F7E
:1064F000FB4F80818093300180914405883F38F0C4
:10650000EFEFF0E0E81BF109ED5FFB4F8081809336
:10651000DE0380914505883F38F0EFEFF0E0E81B9F
:10652000F109ED5FFB4F80818093DD03809146058B
:10653000883F38F0EFEFF0E0E81BF109ED5FFB4F2B
:1065400080818093DC0380914705883F38F0EFEF2E
:10655000F0E0E81BF109ED5FFB4F80818093DB03E6
:1065600080916105883F38F0EFEFF0E0E81BF1091A
:10657000ED5FFB4F80818093DA0380916205883F55
:1065800038F0EFEFF0E0E81BF109ED5FFB4F8081A1
:106590008093D90380916305883F38F0EFEFF0E0F6
:1065A000E81BF109ED5FFB4F80818093D803809158
:1065B0006405883F38F0EFEFF0E0E81BF109ED5F8C
:1065C000FB4F80818093D70380914805883F38F046
:1065D000EFEFF0E0E81BF109ED5FFB4F8081809366
:1065E0002F0180914C05883F38F0EFEFF0E0E81B79
:1065F000F109ED5FFB4F808180932E018091490569
:10660000883F38F0EFEFF0E0E81BF109ED5FFB4F5A
:10661000808180932D0180914D05883F38F0EFEF08
:10662000F0E0E81BF109ED5FFB4F808180932C01C6
:1066300080915605883F38F0EFEFF0E0E81BF10954
:10664000ED5FFB4F808180932B0180915905883F3E
:1066500038F0EFEFF0E0E81BF109ED5FFB4F8081D0
:1066600080932A0180915A05883F38F0EFEFF0E0DF
:10667000E81BF109ED5FFB4F808180932901809138
:106680005B05883F38F0EFEFF0E0E81BF109ED5FC4
:10669000FB4F80818093280180918405883F38F0EA
:1066A000EFEFF0E0E81BF109ED5FFB4F8081809395
:1066B0000106809128058093390680919505809385
:1066C0001D0680916005883F38F0EFEFF0E0E81B91
:1066D000F109ED5FFB4F80818093270180917D055B
:1066E000883F38F0EFEFF0E0E81BF109ED5FFB4F7A
:1066F0008081809352066091300170E06F5F7F4F20
:106700008CE398E20E94D39A70933C0160933B0122
:106710008091360580934106809135058093090666
:10672000E0917F058091F0089091F108EE2309F443
:1067300043C021E02093D603F0E0EE0FFF1FE25F9D
:10674000F74F20813181203C3F4F14F41092D60343
:1067500020913D014091D603241721F12330F8F414
:1067600050915701442351F02CED35E03093CC0487
:106770002093CB0451110DC02EE209C028EC30E06B
:106780003093CC042093CB04511103C027E1209314
:10679000570125E02093EC0340933D0103C02150B5
:1067A00020933D0197FF0DC0442359F020913F0AEB
:1067B000206820933F0A05C01092D6032AE0209358
:1067C0003D0197FF1CC0809101048823C1F0809196
:1067D000D6038823A1F08091A9029091AA02019684
:1067E00071F488E99AE39093CC048093CB0480E021
:1067F00094EA9093AA028093A9021092D603809102
:10680000D603882321F08091C803816003C0809162
:10681000C8038E7F8093C803DF91CF910895809144
:106820003105811120C020911A0130911B01809106
:10683000E6039091E70397FD0396AC0155954795C4
:1068400055954795429FC001439F900D529F900DD3
:1068500011246091530170E00E94BF9A709341012E
:106860006093400105C090E0909341018093400106
:1068700080914001909141018734910518F486E49C
:1068800090E005C08F3A910530F08FEA90E0909348
:1068900041018093400108952F923F924F925F9261
:1068A0006F927F928F929F92AF92BF92CF92DF9220
:1068B000EF92FF920F931F93CF93DF93CDB7DEB785
:1068C00069970FB6F894DEBF0FBECDBF0E94C32AF2
:1068D0008091C903847179F58091960582FF24C067
:1068E0008091E6039091E7030097D9F0883522E084
:1068F0009207BCF497FD03969C0135952795359535
:10690000279540914005429FC001439F900D11245F
:1069100064E670E00E94D39A7093C6036093C50347
:106920000AC08DE290E003C08091400590E0909312
:10693000C6038093C5038091C3039091C403209143
:106940000906803335E7930751F410920D04109235
:106950000C04422F50E05093C6034093C50340916E
:106960000C0450910D045A83498330E0A901475F1C
:106970005F4F69817A814617570724F0D9011A962B
:10698000BA83A983209102042436B0F52091C8036C
:1069900022FD32C08091A0039091A103009731F0B5
:1069A00001979093A1038093A0030BC01092010460
:1069B0001092CB031092CA038091C9038D7E8093FD
:1069C000C903289A8091CA039091CB03893E9340D2
:1069D00080F080911905853660F0E091C503F09153
:1069E000C603FA83E9838091C90380618093C90358
:1069F0008CC51092010489C5209102042D3808F439
:106A00005AC5E0918C05EE2309F444C080918D05B0
:106A1000882309F43FC0F0E0EE0FFF1FE25FF74F5D
:106A200080819181C397BCF080911F01823361F412
:106A30008091C80385FF08C08091C803806480935B
:106A4000C80380E3809357018091C8038F778093B8
:106A5000C80386E917C0808191818E3C9F4FACF4BA
:106A600080911F01863941F48091C803806880932A
:106A7000C8038FE2809357018091C8038F7B809376
:106A8000C80382E380931F0105C08091C8038F7300
:106A90008093C8038091C9038F7E8093C90380913E
:106AA000410522E3829FC00111249093A1038093AA
:106AB000A00349815A81493251058CF0809101042B
:106AC000882369F08091CA039091CB038F3F5FEFD9
:106AD000950729F001969093CB038093CA032091E8
:106AE000CA033091CB032F3F310509F048F51092CE
:106AF0002404109225041092260410922704109268
:106B00002004109221041092220410922304109267
:106B10009C0310929D0310929E0310929F0310926B
:106B20002C0410922D0410922E0410922F048091A8
:106B3000C80380628093C80384E680931F0133C139
:106B40008091C90382608093C9038091C80385FF47
:106B500096C08091B504482F447082FD04C0809196
:106B6000C80386FF2AC0809120018D3331F58091C2
:106B7000C003882311F180E58093F10384EF91E055
:106B8000A0E0B0E08093F2039093F303A093F403AA
:106B9000B093F5038093F8039093F903A093FA035D
:106BA000B093FB0388EE93E090931E0180931D0148
:106BB000442319F08DE08093570180914A0390910E
:106BC0004B03A0914C03B0914D0387399105A1056A
:106BD000B1058CF48091FC039091FD03A091FE031C
:106BE000B091FF03823A9E4FAF4FBF4F24F0809188
:106BF000390680FD21C088EE93E090931E018093BA
:106C00001D018091C80386FF0FC01092F1038CE232
:106C100091E0A0E0B0E08093F8039093F903A09393
:106C2000FA03B093FB0303C080E380935701809184
:106C3000C8038F718093C803109224041092250416
:106C4000109226041092270410922004109221041E
:106C5000109222041092230410922C0410922D04FE
:106C600010922E0410922F04293E334008F49BC04A
:106C700088EE93E09093CB038093CA0394C08091F5
:106C8000C80387FF1AC080912001863711F08D3329
:106C9000A1F48091C003882381F080918D058093B9
:106CA000F10380EE91EBAFEFBFEF8093F20390938F
:106CB000F303A093F403B093F50320911D013091E9
:106CC0001E01283E83E0380708F048C02F5F3F4F81
:106CD00030931E0120931D0110922404109225046C
:106CE000109226041092270410922004109221047E
:106CF000109222041092230410922C0410922D045E
:106D000010922E0410922F0480914A0390914B030D
:106D1000A0914C03B0914D038C529140A109B1094F
:106D20008093F8039093F903A093FA03B093FB03C5
:106D3000283E3340C1F58091C80387FF34C080915D
:106D400020018B3281F18091C8038F778093C80333
:106D50008091C80380628093C80325C08091C003DE
:106D6000882309F180912001863711F08D32D9F402
:106D70008091FC039091FD03A091FE03B091FF036D
:106D8000883E9340A105B10574F48091040590916B
:106D900005058D3A93403CF010921E0110921D01A2
:106DA0008EE080935701E0911E05F0E0EE0FFF1F8B
:106DB000E25FF74F80819181813591050CF457C1D5
:106DC00080910104811153C18091B50484FD4FC1AC
:106DD000E0911F05F0E0EE0FFF1FE25FF74F8081AB
:106DE000918197FF03C09195819591098C3491050C
:106DF0000CF43BC180919B038F5F80939B03893C84
:106E000008F435C110929B031092CB031092CA0371
:106E100020911C0530E0220F331FF901E25FF74F8C
:106E20008081918140911D05873491058CF4E42F78
:106E3000F0E0EE0FFF1FE25FF74F8081918197FF37
:106E400003C0919581959109873491050CF46AC02E
:106E500050E0440F551FFA01E25FF74F80819181A6
:106E60008734910574F0F901E25FF74F80819181D9
:106E70008634910534F48081918111E08B3B9F4FE2
:106E80000CF410E0FA01E25FF74F808191818734C2
:106E900091054CF0F901E25FF74F808191818734D1
:106EA00091050CF012E0FA01E25FF74F80819181C9
:106EB000863491054CF4F901E25FF74F80819181AE
:106EC000873491050CF013E0FA01E25FF74F8081FF
:106ED00091818A3B9F4F4CF4F901E25FF74F80812B
:106EE0009181873491050CF014E0FA01E25FF74FCD
:106EF000808191818A3B9F4F6CF4F901E25FF74FEB
:106F000020813181263431052CF4208131812B3BC5
:106F10003F4F1CF4112339F001C015E0812F0E946E
:106F2000122401C010E0E0911D05F0E0EE0FFF1FFC
:106F3000E25FF74F2081318137FF03C03195219502
:106F400031092E313105C4F4E0911C05F0E0EE0F5B
:106F5000FF1FE25FF74F208131812A3B3F4F64F4EE
:106F600081E080935A0A1092ED0388EE93E09093AB
:106F7000CC048093CB047BC0809152010E944B23B0
:106F800080E00E946B51809142050E94D817809149
:106F9000390680FF10C02091100130911101273B6C
:106FA000334038F420911001309111012E3E3240CF
:106FB00010F40E94AB1A111139C0E0911D05F0E0E8
:106FC000EE0FFF1FE25FF74F808191818A3B9F4F59
:106FD00074F4E0911C05F0E0EE0FFF1FE25FF74F45
:106FE000808191818634910514F483E020C0E09182
:106FF0001F05F0E0EE0FFF1FE25FF74F80819181E8
:10700000853B9F4F9CF4E0911C05F0E0EE0FFF1FC5
:10701000E25FF74F8081918197FF03C09195819541
:1070200091098634910514F482E001C081E00E9448
:1070300034278093ED0381E08093C904579A90919F
:107040003F0A992311F087E004C09091ED0391115C
:1070500088E1809357018AE080937E0468E770E0BE
:10706000809152010E949F2602C010929B03E091E2
:107070001E05F0E0EE0FFF1FE25FF74F8081918168
:107080008C399F4F0CF010C220918005E22FEF77D2
:10709000F0E0EE0FFF1FEC5AF74F808191810697C9
:1070A00014F084E606C0808191818B3F9F4F1CF4D1
:1070B0008CE980939A038091010430919605E091C8
:1070C0001F05F0E0EE0FFF1FE25FF74F81114EC189
:1070D000808191818C399F4F7CF433FD0BC0E22F6E
:1070E000F0E0EE0FFF1FE25FF74F80819181853B5B
:1070F0009F4FACF0222399F033FF35C1E22FF0E02F
:10710000EE0FFF1FE25FF74F80819181873F9F4F16
:107110000CF429C180919A03843609F024C180912E
:10712000B50484FD20C18091ED03882329F080916E
:10713000C90388608093C903809112019091130163
:10714000A0911401B0911501809306059093070555
:10715000A0930805B09309051092FC031092FD035B
:107160001092FE031092FF03109246031092470301
:10717000109248031092490388E592E09093C4036B
:107180008093C3031092420310924303109244036E
:10719000109245031092570310925803109259030E
:1071A00010925A03E0911C05F0E0EE0FFF1FE25F22
:1071B000F74F808191818D399F4F8CF4E0911D05AF
:1071C000F0E0EE0FFF1FE25FF74F8081918197FFA4
:1071D00003C09195819591098436910524F421117C
:1071E00002C010929903809199038F5F8093990355
:1071F0008E3F08F43FC18091C7033091440620912F
:10720000450681FF23C0832F922F97FF03C09195DE
:107210008195910981349105B4F48091040690918F
:10722000050697FF03C0919581959109CD975CF470
:107230008091F9059091FA0597FF03C0919581958A
:107240009109CD9714F11092ED031FC0832F922F57
:1072500097FF03C09195819591098197A4F780913B
:1072600004069091050697FF03C0919581959109B9
:1072700045974CF78091F9059091FA0597FF03C067
:107280009195819591094597F4F610929903809113
:107290003F0A2091ED0381115CC0222309F459C0FB
:1072A0008091B904811155C081E090E09093CB03A7
:1072B0008093CA038093010410929C0310929D0353
:1072C00010929E0310929F0310922C0410922D0492
:1072D00010922E0410922F04109228041092290468
:1072E00010922A0410922B0440913705A0913D067C
:1072F000B0913E0650E09A010E943F9B6093340497
:10730000709335048093360490933704A0914F0610
:10731000B09150060E943F9B6093300470933104FB
:107320008093320490933304109224041092250425
:107330001092260410922704109220041092210427
:10734000109222041092230484E68093EC0384E3D9
:1073500083C08CED95E09093CC048093CB042111F5
:1073600089C081E079C01092990384C080819181A5
:10737000853691057CF033FD0BC0E22FF0E0EE0F77
:10738000FF1FE25FF74F80819181853B9F4FACF0FB
:10739000222399F033FF6CC0E22FF0E0EE0FFF1FC5
:1073A000E25FF74F808191818E3C9F4F0CF060C06F
:1073B00080919A038C3909F05BC0E0911C05F0E0E4
:1073C000EE0FFF1FE25FF74F808191818D399F4F54
:1073D0008CF4E0911D05F0E0EE0FFF1FE25FF74F28
:1073E0008081918197FF03C09195819591098436A1
:1073F00091052CF4211103C01092980318C010922B
:10740000240410922504109226041092270410924E
:10741000200410922104109222041092230410924E
:10742000130410921204109211041092100480910F
:1074300098038F5F809398038B3F88F0109201042C
:10744000109298031092CB031092CA038091C80344
:107450008F718093C80386E2809357010BC08436F6
:1074600049F48CEA9DE09093CC048093CB0402C055
:10747000109298038091C3039091C403883E73E0F7
:10748000970708F042C020915403309155032B36E2
:107490003F4F14F0019603C00097B9F10197909304
:1074A000C4038093C30331C010929A031092C403A3
:1074B0001092C3032AC08E3E924038F18091B808E2
:1074C0009091B9088039914000F58091FC0390912A
:1074D000FD03A091FE03B091FF038C3D9540A105F3
:1074E000B1059CF480E395E79093C4038093C303B4
:1074F0008091CA039091CB038A3E934030F089EE8D
:1075000093E09093CB038093CA03809193029FEF03
:10751000980F90939302882321F08091C90384FFF0
:107520003FC30E94133180911C05682E712C660C9C
:10753000771CF301E25FF74FA081B1819090320593
:10754000692D70E0F301EC5AF74F0190F081E02DC6
:107550004091330550E080919603909197039C01F0
:10756000220F331F280F391FA69FC001A79F900D20
:10757000B69F900D1124280F391F37FF02C02D5FD1
:107580003F4F3595279535952795E49FC001E59F99
:10759000900DF49F900D1124280F391F30939703FD
:1075A0002093960300911D0510E0000F111FF801B4
:1075B000E25FF74FE080F180F801EC5AF74FA081CD
:1075C000B181E0919403F0919503CF01880F991F49
:1075D0008E0F9F1FE69EF001E79EF00DF69EF00DC8
:1075E00011248E0F9F1F97FD03969595879595956E
:1075F0008795A49FB001A59F700DB49F700D1124B5
:10760000860F971F90939503809394034091D60320
:107610004423B1F037FF02C02D5F3F4F35952795CA
:107620003595279597FD039695958795959587951B
:10763000E091A502FF27E7FDF0956091BC040FC023
:10764000E0917E05F0E0E553FD4F46814093A502B1
:1076500060816093BC04E42FFF27E7FDF095772756
:1076600067FD7095E29FA001E39F500DF29F500DC2
:107670001124689FD001699FB00D789FB00D11242F
:107680004A0F5B1F57FF02C0495F5F4FA3E055954C
:107690004795AA95E1F75093130440931204E89F8D
:1076A000A001E99F500DF89F500D1124629FC00169
:1076B000639F900D729F900D1124481B590B57FF2B
:1076C00002C0495F5F4F83E0559547958A95E1F782
:1076D0005093110440931004E0911F05F0E0EE0F69
:1076E000FF1FE25FF74F2081318188279927821B96
:1076F000930B853091051CF08CEF9FEF05C08C3FFC
:107700009F4F4CF484E090E0821B930B90930F0406
:1077100080930E0404C010920F0410920E04809106
:10772000C3039091C403309112042091130470910B
:107730001004609111048130924058F1832F922FF0
:1077400097FD0796B3E095958795BA95E1F79093E5
:10775000130480931204872F962F97FD0796A3E0BA
:1077600095958795AA95E1F790931104809310045D
:1077700010922404109225041092260410922704DB
:1077800010922004109221041092220410922304DB
:107790003FC0409165044423D9F150E0832F922FDC
:1077A00097FD0796F3E095958795FA95E1F7489F41
:1077B0009001499F300D589F300D112437FF02C0B2
:1077C000215F3F4FE4E035952795EA95E1F7309347
:1077D000130420931204872F962F97FD079623E01A
:1077E000959587952A95E1F7489F9001499F300D1F
:1077F000589F300D112437FF02C0215F3F4FB4E086
:1078000035952795BA95E1F730931104209310042C
:10781000C0901204D0901304809168049091690480
:10782000C81AD90AD0921304C0921204E09010042E
:10783000F09011048091660490916704E81AF90AA7
:10784000F0921104E0921004E0911E05F0E0EE0FBA
:10785000FF1FE25FF74FA080B1806FE7A60EB11C5B
:10786000B0920D04A0920C046091340170E080E0AD
:1078700090E00E94189A20E030E040E251E40E943B
:1078800086990E94EA99609349068091330180931A
:107890001F066091320170E080E090E00E94189A2B
:1078A00020E030E040E251E40E9486990E94EA998B
:1078B000609300068091310180930E068091660AE4
:1078C00080FF3EC0809152068138D0F120915F0A3E
:1078D000792D2703C00111248C0D9D1D9093130455
:1078E000809312042091600A2703C00111248E0D99
:1078F0009F1D90931104809310042091610A809140
:107900000E0490910F04820F911D27FD9A9590937C
:107910000F0480930E042091630A30912D052303F8
:10792000C001112490932601809325018091620A61
:1079300090E08A159B0524F490930D0480930C0429
:1079400080910C0490910D0497FF04C010920D04D7
:1079500010920C048091390682FD10921F068091CE
:107960001204909113044091CE035091CF039C01D7
:1079700097FF02C02D5F3F4F359527953595279589
:1079800037FF03C0319521953109421753079CF405
:1079900097FF03C091958195910995958795959548
:1079A00087958536910514F084E690E09093CF0397
:1079B0008093CE0306C0415051095093CF034093AA
:1079C000CE0380911004909111044091CC0350910A
:1079D000CD039C0197FF02C02D5F3F4F3595279542
:1079E0003595279537FF03C0319521953109421709
:1079F00053079CF497FF03C0919581959109959544
:107A00008795959587958536910514F084E690E0E5
:107A10009093CD038093CC0306C0415051095093FD
:107A2000CD034093CC038091C90384FF08C010921A
:107A3000CF031092CE031092CD031092CC03F80125
:107A4000E25FF74F208131818091570590E08217E6
:107A5000930744F42091930522FF04C021E0209372
:107A6000E3030FC0F801E25FF74F4081518120919D
:107A70005805DC01A21BB1094A175B0714F41092E8
:107A8000E303F801E25FF74F208131814427552756
:107A9000481B590B2417350744F42091930523FF05
:107AA00004C021E02093E20313C02091E2032223CB
:107AB00079F0F801E25FF74F6081718120915805FC
:107AC00030E0281B390B2617370714F41092E20315
:107AD000F301E25FF74F208131818217930744F46D
:107AE0002091930520FF04C021E02093E00313C000
:107AF0002091E003222379F0F301E25FF74F6081E8
:107B0000718120915805FC01E21BF1096E177F0776
:107B100014F41092E003F301E25FF74F208131810A
:107B20002417350744F42091930521FF04C081E018
:107B30008093E10313C02091E103222379F0F30144
:107B4000E25FF74F408151812091580530E0281BBA
:107B5000390B2417350714F41092E1038091E303E5
:107B6000811104C08091E203882321F081E0809399
:107B7000E40302C01092E4038091E003811104C089
:107B80008091E103882351F081E08093E503109216
:107B9000E4031092E3031092E20302C01092E503A3
:107BA0008091E403811104C08091E503882369F08A
:107BB0008091560590E029813A818217930714F449
:107BC0009A83898381E0809318048091C80382FF9F
:107BD00031C08091680490916904919581959109D3
:107BE000909313048093120480916604909167042B
:107BF000919581959109909311048093100480913F
:107C000040019091410190930D0480930C041092D7
:107C10000F0410920E04809139068B778B66809347
:107C2000390680911D068C7B80931D0688EC80931D
:107C3000DF031EC08091C90384FF1AC010920F0495
:107C400010920E0410921304109212041092110458
:107C5000109210049AE59093490688E780931F06D6
:107C60009093000680930E061092E4031092E503B1
:107C7000409040045090410460904204709043044E
:107C80008091110690911206A0911306B0911406EE
:107C9000840D951DA61DB71D8093110690931206A5
:107CA000A0931306B093140640913C0450913D04F8
:107CB00060913E0470913F044B835C836D837E83AF
:107CC0008091190690911A06A0911B06B0911C068E
:107CD000840F951FA61FB71F8093190690931A064D
:107CE000A0931B06B0931C065091E5035F8360913F
:107CF000E4036D87511102C0662311F11092110641
:107D00001092120610921306109214061092190681
:107D100010921A0610921B0610921C061092530322
:107D2000109252031092E9031092E8031092EB03B1
:107D30001092EA038F818111D8C17D857111D5C15F
:107D40008091040590910505813092402CF480913A
:107D50000104882309F4C9C180902909809137055D
:107D600000913D0610913E0618140CF0BAC0282F61
:107D700030E040E050E029873A874B875C879924C0
:107D800087FC9094A92CB92CC301B2010E94089BD6
:107D90008091F2089091F308B801681B790BCB0130
:107DA000AA2797FDA095BA2F281B390B4A0B5B0B0E
:107DB000C501B4010E94A49AC12C52E0D52EE12C39
:107DC000F12CA70196010E94089B2C8B3D8B4E8BBA
:107DD0005F8B2F87398B4A8B5B8B6B817C818D818D
:107DE0009E8129853A854B855C850E94089B809100
:107DF0004F06909150066091F4087091F508861B2B
:107E0000970BAA2797FDA095BA2F281B390B4A0B71
:107E10005B0BC501B4010E94A49AA70196010E94C0
:107E2000089B89015A01342E2B2CE091CE03F0914E
:107E3000CF03E134F1053CF4E091CC03F091CD03A4
:107E4000E134F105CCF042E0C42ED12CE12CF12C30
:107E50006C897D898E899F89A70196010E94089B64
:107E60002F87398B4A8B5B8BB801C501A70196011F
:107E70000E94089B342E252E80912B09482F5527D0
:107E800047FD5095652F752F8F849988AA88BB88E8
:107E9000481559056A057B0514F44A015B019927C9
:107EA00081950CF49095AA2797FDA095BA2F881676
:107EB0009906AA06BB0614F44C015D016901E32C86
:107EC000F22C4C155D056E057F0514F46A017B01EB
:107ED000C816D906EA06FB060CF0CBC06C017D0182
:107EE000C8C0882E912CA12CB12C6B817C818D81F6
:107EF0009E81A50194010E94089B69017A018091ED
:107F00004F0690915006AA2797FDA095BA2FC81A40
:107F1000D90AEA0AFB0AC301B201A50194010E9431
:107F2000089BC801AA2797FDA095BA2F281B390BDB
:107F30004A0B5B0BCA01B90120E130E040E050E0A0
:107F40000E94089B322E398B242E5A8B822E932E20
:107F5000A42EB52EC701B60120E130E040E050E08C
:107F60000E94089B122F032F49875F87C22ED32EB2
:107F70007A018091CE039091CF03813491053CF436
:107F80008091CC039091CD0381349105CCF033E006
:107F9000C32ED12CE12CF12C632D7989822D9A8965
:107FA000A70196010E94089B49015A01612F702F79
:107FB00089859F85A70196010E94089B69017A0126
:107FC000E0911F05F0E0EE0FFF1FE25FF74F8081A9
:107FD000918197FF03C09195819591094A97A4F0EB
:107FE000C501B40123E030E040E050E00E94089B6E
:107FF00049015A01C701B60123E030E040E050E0FA
:108000000E94089B69017A0189E180934C0171E229
:1080100087169104A104B10474F480EE88168FEFE2
:108020009806A806B80664F480EE882E99249A94DF
:10803000A92CB92C05C090E2892E912CA12CB12C31
:1080400091E2C916D104E104F10474F4A0EECA1659
:10805000AFEFDA06EA06FA0664F410EEC12EDD246C
:10806000DA94ED2CFD2C05C000E2C02ED12CE12CC1
:10807000F12C8091340490913504A0913604B09194
:10808000370488199909AA09BB098093340490938D
:108090003504A0933604B093370480913004909156
:1080A0003104A0913204B09133048C199D09AE09BA
:1080B000BF098093300490933104A0933204B093AD
:1080C00033048091BC039091BD03880D991D90935A
:1080D000BD038093BC038091BA039091BB038C0DC8
:1080E0009D1D9093BB038093BA038091520390919E
:1080F0005303E0914406F0914506FA87E9878F3FE4
:10810000910509F008F457C120915F05222309F475
:1081100004C180913D0690913E06815E9C4F8F3355
:10812000964008F0FAC080914F0690915006815E0B
:108130009C4F8F33964008F0F0C080911804811155
:10814000ECC089859A854F96CF9708F0E6C030E05D
:108150003093460C2093450CE090BC03F090BD0397
:10816000B6E0220F331FBA95E1F7C701B9010E94AB
:10817000BF9AE61AF70AF092BD03E092BC03E091C1
:10818000BA03F091BB03CF01B9010E94BF9A6F01FE
:10819000C61AD70AD092BB03C092BA03E091160464
:1081A000F0911704CF01B9010E94BF9AE61BF70BAB
:1081B000F0931704E09316048091CE039091CF03BF
:1081C00081349105BCF48091CC039091CD0381342E
:1081D000910584F4E0911F05F0E0EE0FFF1FE25FD0
:1081E000F74F8081918197FF03C091958195910907
:1081F0004A97D4F0F7FE03C04FEFE41AF40AF5945F
:10820000E794F092BD03E092BC03D7FE03C05FEF9A
:10821000C51AD50AD594C794D092BB03C092BA03AD
:1082200010921704109216048091BC039091BD0324
:10823000893B9B406CF01092BD031092BC0380916F
:1082400055049091560401969093560480935504DA
:108250008091BC039091BD038834944F6CF41092CC
:10826000BD031092BC038091550490915604019770
:1082700090935604809355048091BA039091BB0368
:10828000893B9B406CF01092BB031092BA03809123
:108290005304909154040196909354048093530492
:1082A0008091BA039091BB038834944F6CF4109280
:1082B000BB031092BA038091530490915404019728
:1082C0009093540480935304809116049091170462
:1082D0008D3A9D406CF01092170410921604809114
:1082E000510490915204019690935204809351044A
:1082F00080911604909117048435924FD4F4109213
:108300001704109216048091510490915204019721
:1083100090935204809351040CC01092BD031092AC
:10832000BC031092BB031092BA0310921704109270
:1083300016041092180480911F06811108C0109233
:10834000EB031092EA031092E9031092E803809184
:10835000110690911206A0911306B0911406809315
:10836000900390939103A0939203B0939303809111
:10837000190690911A06A0911B06B0911C068093D5
:108380008C0390938D03A0938E03B0938F03109270
:1083900011061092120610921306109214061092F3
:1083A000190610921A0610921B0610921C061092C3
:1083B000530310925203E0900E04F0900F04D70183
:1083C000F7FE04C0AA27BB27AE19BF09A430B10528
:1083D0003CF08091390684FD03C082E38093EC0376
:1083E000109134058091C3039091C4038130924071
:1083F000E8F497010E942A9B9B01AC01A12FB0E0F9
:108400000E94459B20E032E040E050E00E94089B43
:108410001E9DC0011F9D900D112497FD03969595FB
:10842000879595958795820F931F02C080E090E015
:108430002091EE033091EF03280F391FA901662721
:1084400057FD6095762F40939C0350939D03609356
:108450009E0370939F0380912C0490912D04A09112
:108460002E04B0912F04841B950BA60BB70B8135FE
:1084700033EC9307A105B10524F080E593ECA0E06F
:10848000B0E080932C0490932D04A0932E04B0931D
:108490002F0480912C0490912D04A0912E04B09172
:1084A0002F04803B9C43AF4FBF4F64F480EB9CE3B1
:1084B000AFEFBFEF80932C0490932D04A0932E0474
:1084C000B0932F0400914E0110914F0117FDD0C0C1
:1084D0008091390683FFCCC080914D01813021F01D
:1084E000815080934D01C8C08DE080934D01C30140
:1084F000B20120E032E040E050E00E94089B7901A8
:1085000037FF04C0EE24FF24E21AF30A6B817C815A
:108510008D819E8120E032E040E050E00E94089B87
:10852000190137FF04C022243324221A330A2E14DF
:108530003F040CF41701C0904B06D0904C06E0901D
:108540004D06F0904E06209121013091220140917C
:10855000230150912401C701B6010E94089B4901E3
:108560005A013093FF052093FE05C801845E9D4F9C
:10857000821B930B68E671E00E94D39AAC01445BC6
:1085800051096091EC03662321F090921B048092C4
:108590001A0480914A0190914B01009731F00197A4
:1085A00090934B0180934A0113C079E1271631045F
:1085B0007CF42091160430911704240F351F30935A
:1085C000170420931604662319F061506093EC039E
:1085D00080914A0190914B01892B11F520914C011A
:1085E000249FC001259F900D1124B10153E0759582
:1085F00067955A95E1F76E5F7F4F0E94D39ACB0142
:10860000AA2797FDA095BA2F8C0D9D1DAE1DBF1DED
:1086100080934B0690934C06A0934D06B0934E0664
:108620008091EC03811124C080911A0490911B0465
:1086300088199909845E9D4F68E671E00E94D39A7B
:10864000845B9109409137014695489F9001499F6D
:10865000300D112437FF02C0215F3F4F44E03595B4
:1086600027954A95E1F73093EF032093EE0304C07A
:108670001092EF031092EE0380911804882381F08A
:1086800010922004109221041092220410922304CC
:1086900010922404109225041092260410922704AC
:1086A0008F8181110FC0A0911F06B0E0A30192013C
:1086B0000E94459B28EF3AE240E050E00E94089B70
:1086C000190102C0212C312C9D85911112C0A0915D
:1086D0001F06B0E02B813C814D815E810E94459B4D
:1086E00028EF3AE240E050E00E94089B38872F8351
:1086F00002C018861F828091FB059091FC05893C81
:1087000091051CF088EC90E005C088339F4F34F44D
:1087100088E39FEF9093FC058093FB058091020610
:1087200090910306893C91051CF088EC90E005C00F
:1087300088339F4F34F488E39FEF90930306809330
:108740000206A0910406B091050680914906409169
:10875000FB055091FC05A82EB12C95010E943F9B72
:108760008A01222717FD2095322FB7E0000F111F35
:10877000221F331FBA95D1F7600F711F821F931FFD
:1087800010E4C12ED12CE12CF12CA70196010E94FE
:10879000089B8101020F131F109305060093040626
:1087A000A091F905B091FA05409102065091030697
:1087B00095010E943F9B4A01AA2497FCA094BA2CE1
:1087C00027E0880C991CAA1CBB1C2A95D1F7680DC0
:1087D000791D8A1D9B1DA70196010E94089BAF80F1
:1087E000B884A20EB31EB092FA05A092F905A9852D
:1087F000BA85AA0FBB1F2091000630E00E943F9B64
:10880000A70196010E94089B69017A01A0910E06BA
:10881000209138043091390440913A0450913B043E
:10882000B0E00E94459B20EF35E540E050E00E941B
:10883000089BC20ED31ED0924506C092440601305A
:10884000104134F080E090E1909305068093040697
:1088500080910406909105068115904F34F480E0D4
:1088600090EF909305068093040621E0A21620E184
:10887000B20634F080E090E19093FA058093F90518
:108880008091F9059091FA058115904F34F480E0BC
:1088900090EF9093FA058093F90541E0C41640E10A
:1088A000D40634F080E090E190934506809344062E
:1088B00080914406909145068115904F34F480E0F4
:1088C00090EF90934506809344068091C90385FDFF
:1088D00011C060911A0170911B0120915301A9816F
:1088E000BA812A9FC0012B9F900D11240E94BF9A2C
:1088F0007A83698380918B039FEF980F90938B030A
:1089000081115AC08091890390918A03892B41F487
:1089100080911A0190911B0190938A03809389039F
:1089200020911A0130911B018091890390918A0353
:108930008217930710F4019608C020911A01309114
:108940001B012817390728F4019790938A03809315
:10895000890384E680938B038091890390918A0335
:108960002091630430E08217930710F42AE00CC0D2
:1089700040915101240F311D2817390738F42091F7
:10898000BF03222319F021502093BF0320916204DA
:1089900030E08217930710F489E10CC04091510137
:1089A000240F311D2817390738F48091BE0388231E
:1089B00019F081508093BE038091BF038823D1F0CA
:1089C0008091F2039091F303A091F403B091F50329
:1089D000B7FD10C080918D058093F10380EE91EB7F
:1089E000AFEFBFEF8093F2039093F303A093F403F0
:1089F000B093F5038091CA04811102C00E942F82B6
:108A0000E981FA81EE0FFF1FEE0FFF1FFA83E98362
:108A10008091390680FD02C00C94CC4D8091E40316
:108A200081110C94CC4D8091E50381110C94CC4DB7
:108A300080913F0A8F7711F00C94CC4D80915704B0
:108A400090915804892B09F04BC0809110019091AE
:108A500011018939934098F087B58A3F60F480917D
:108A600056038150809356039091100525E0829F14
:108A70009019112419C081E0809388035DC0809112
:108A80001001909111018436910528F587B5863043
:108A9000F0F0809156038F5F8093560390911005FC
:108AA00035E0839F9019112497BD87B5809588BDC7
:108AB0008CE291E09093CC048093CB048EE591E01E
:108AC00090935804809357040E94841A35C081E023
:108AD0008093870331C010928703109288032CC0C3
:108AE00010925503109254038091C003882321F003
:108AF00081E00E94101617C08091FC039091FD0345
:108B0000A091FE03B091FF03E4E0880F991FAA1F14
:108B1000BB1FEA95D1F78093570390935803A09316
:108B20005903B0935A0380915704909158040197C8
:108B30009093580480935704909139068091DF03F5
:108B400091FF3CC0823348F580911C019FEF980F44
:108B500090931C0181114EC080915701811107C073
:108B600080911904882319F088E2809357011092AC
:108B700019048091FC039091FD03A091FE03B09134
:108B8000FF038093F8039093F903A093FA03B09343
:108B9000FB0381E080931C012DC0873458F1809144
:108BA0005701811107C080911904811103C087E228
:108BB0008093570188EC80931C0119C020912501F6
:108BC00030912601280F311D40912D05429FC00193
:108BD000439F900D1124AA2797FDA095BA2F80934B
:108BE000F8039093F903A093FA03B093FB0381E099
:108BF00080931904C0902101D0902201E0902301BC
:108C0000F090240160913C0470913D0480913E04F9
:108C100090913F04A70196010E94089B49015A01C7
:108C2000609140047091410480914204909143040A
:108C3000A70196010E94089BB401C9010E94120D70
:108C400020913601AC01249FC001259F900D112475
:108C500064E670E00E94D39ACB016C33710514F086
:108C60008CE390E00E94CD7D90930B0680930A06E2
:108C700080E2809320011092F7031092F603809116
:108C80001904882309F45DC68091C90384FD59C67F
:108C90008091C80382608093C803D0901D06D0FCE9
:108CA00004C08091390681FD0CC010928603109299
:108CB00085038091C903806C8093C90309811A815F
:108CC000C2C28091C90381FF8EC2E0900C04F09073
:108CD0000D040091400110914101C8010F96809050
:108CE0004A0390904B03A0904C03B0904D038E1517
:108CF0009F0508F07DC080918703811179C0809124
:108D0000C90387FF0DC08091C9038F778093C90382
:108D10008092F8039092F903A092FA03B092FB03B9
:108D200040900106442091F1512C612C712C6091EE
:108D3000F8037091F9038091FA039091FB0324E604
:108D400030E040E050E00E94089B42165306640663
:108D50007506E4F480915701811116C06091FC03FF
:108D60007091FD038091FE039091FF032FE530E0A9
:108D700040E050E00E94089B4216530664067506C8
:108D80001CF48AE1809357018DE32DC08091830309
:108D900090918403459744F08092F8039092F903F0
:108DA000A092FA03B092FB038091C9038064809380
:108DB000C903C701801B910B0F9797FF03C09195C3
:108DC000819591099093F7038093F6032091BF0357
:108DD000222341F063E070E00E94D39A7093F7037E
:108DE0006093F6038BE2809320011092F003FDC0A4
:108DF000C8010F97E816F906A0F580918803811144
:108E000030C08091C90386FD07C080918303909193
:108E10008403843D9E4F6CF48091C9038F7B8093C3
:108E2000C9038092F8039092F903A092FA03B092DA
:108E3000FB038091C90380688093C903E01AF10A9B
:108E40006FE0E60EF11CF7FE03C0F194E194F10827
:108E5000F194E194F108F092F703E092F6038DE2C9
:108E6000C2CF8DE3809320012091F103222309F4E6
:108E700059C04091F2035091F3036091F403709153
:108E8000F5038091F8039091F903A091FA03B09152
:108E9000FB0384179507A607B707CCF48091C90395
:108EA00080648093C903822F90E09093F7038093AE
:108EB000F6038AE08093F0038EE580932001809191
:108EC000C90387FF92C08091C9038F7720C04817DC
:108ED00059076A077B0734F58091C903806880933E
:108EE000C903822F90E09195819591099093F703A2
:108EF0008093F60386EF8093F00386E7809320014A
:108F00008091C90386FF71C08091C9038F7B8093D4
:108F1000C9038092F8039092F903A092FA03B092E9
:108F2000FB0363C08091C903807C09F45EC080911B
:108F3000F003811134C08091F8039091F903A0915E
:108F4000FA03B091FB03B501A401475C5109610923
:108F5000710984179507A607B7073CF4D501C4012A
:108F6000885C9109A109B10911C0B501A401495357
:108F70005F4F6F4F7F4F481759076A077B078CF485
:108F8000D501C40188539F4FAF4FBF4F8093F80363
:108F90009093F903A093FA03B093FB0302C01092DD
:108FA000F0038091C9038F738093C90310928603E5
:108FB00010928503D1FE06C084EF91E09093CC041B
:108FC0008093CB048091000481110FC08091FC0339
:108FD0009091FD03A091FE03B091FF03C397A105FB
:108FE000B1051CF081E0809300042091850330914D
:108FF00086038091F6039091F703280F391F309371
:10900000860320938503C90137FF04C08827992769
:10901000821B930B853F91400CF4CEC04091F0032E
:109020008091F8039091F903A091FA03B091FB03AA
:10903000442369F14090F2035090F3036090F403ED
:109040007090F5039201281B390B273FEFEF3E0785
:1090500064F02A3031054CF44092F8035092F90341
:109060006092FA037092FB0332C0552747FD50957A
:10907000652F752F480F591F6A1F7B1F4093F803F8
:109080005093F9036093FA037093FB0320C040915F
:109090002D051216130654F42BEA429F212D11249C
:1090A0002695820F911DA11DB11D09C02BEA429F7B
:1090B000212D11242695821B9109A109B1098093C4
:1090C000F8039093F903A093FA03B093FB03109273
:1090D0008603109285038091FC039091FD03A0917B
:1090E000FE03B091FF03AC01BD014F5F5340610926
:1090F000710984169506A606B70624F49450A109B2
:10910000B1090EC0AC01BD0141505C4F6F4F7F4FA4
:10911000481559056A057B055CF49C5FAF4FBF4F4E
:1091200080934A0390934B03A0934C03B0934D0359
:1091300080914A0390914B03A0914C03B0914D0351
:109140004091F8035091F9036091FA037091FB0389
:109150008C019D010F5F1340210931094017510710
:109160006207730724F49450A109B1090FC08C0160
:109170009D0105521A4F2F4F3F4F04171507260721
:10918000370764F484529A4FAF4FBF4F8093F80370
:109190009093F903A093FA03B093FB03D1FE06C0AA
:1091A00084E690E09093CC048093CB048091F1030B
:1091B000811102C00E940F3480915704909158048D
:1091C000892BE9F180914A0390914B03A0914C03C4
:1091D000B0914D038093F8039093F903A093FA03A1
:1091E000B093FB032CC081E00E94101680914A03CB
:1091F00090914B03A0914C03B0914D03805D97403B
:10920000A109B1098093F8039093F903A093FA039D
:10921000B093FB0380913105882311F090E002C0E8
:109220008FE790E0909341018093400129813A813A
:109230003093E7032093E6038EE2809320010091B0
:10924000E6031091E70380914A0390914B03A091AC
:109250004C03B0914D034091F8035091F903609194
:10926000FA037091FB0390901D06481759076A078F
:109270007B0714F090FC77C3E091C0032091570462
:109280003091580440900A0650900B06A090790344
:10929000B0907A0380904106E111D6C1E090E603D8
:1092A000F090E703232B41F0870110928403109282
:1092B0008303C12CD12CAEC0841B950BA60BB70B1E
:1092C000823030E893073FEFA307B3072CF481E027
:1092D00090E8AFEFBFEF0AC08F3F4FE79407A105BB
:1092E000B10524F08FEF9FE7A0E0B0E080937F030B
:1092F00090938003A0938103B093820320917F0316
:109300003091800340918103509182033093840314
:1093100020938303A0913901B0E00E94459B20E295
:1093200030E040E050E00E94089B25306EEF3607A9
:109330006FEF460756072CF484E09EEFAFEFBFEFC8
:1093400013C0211574E03707410551054CF42093F3
:109350007F033093800340938103509382030CC0BA
:1093600080E094E0A0E0B0E080937F0390938003DE
:10937000A0938103B093820360907F037090800379
:10938000A0915403B0915503B7FD179673E0B595BE
:10939000A7957A95E1F7A2388FEFB80734F0A03897
:1093A000B1052CF0A0E8B0E002C0A1E8BFEF209129
:1093B0003A0130E00E943F9B24E030E040E050E082
:1093C0000E94089B21309FEF39073CF02F3F310569
:1093D00031F02CF020E031E002C020E03FEF80913E
:1093E000C903807C49F037FF02C02D5F3F4F3595A0
:1093F0002795359527950BC090FE09C037FF02C011
:10940000295F3F4F53E0359527955A95E1F7630162
:10941000C20ED31E70903801772009F444C06091C9
:109420001C0470911D0480911E0490911F0420E87B
:1094300030E040E050E00E94089BA72DB0E00E9481
:10944000459B20E230E040E050E00E94089B21383C
:10945000AFEF3A074A075A072CF480E89FEFAFEFC7
:10946000BFEF13C02F3F31054105510509F04CF402
:1094700020937F03309380034093810350938203B2
:109480000CC080E091E0A0E0B0E080937F03909377
:109490008003A0938103B093820380917F03909116
:1094A0008003C80ED91E9601D7010E942A9B20E096
:1094B00032E040E050E00E94089B021B130B8091B9
:1094C000F6039091F703892B09F062C01E141F0464
:1094D0000CF05EC02091830330918403B90137FF03
:1094E00004C066277727621B730B80911404909148
:1094F00015046D33710528F4801791070CF047C0EF
:1095000024C06C53710945E0769567954A95E1F75B
:109510006031710510F06FE070E012161306ECF484
:1095200020E130E0261B370B289FA001299F500D1A
:10953000389F500D112484E0569547958A95E1F7A0
:109540004017510710F08A0123C080913E0190918D
:109550003F0180179107E4F41AC0605F7F4F40918C
:109560003E0150913F01649F9001659F300D749FB3
:10957000300D1124B4E036952795BA95E1F78017A0
:1095800091072CF40217130718F0890101C08C0110
:10959000B801882777FD8095982FFDE0660F771F2B
:1095A000881F991FFA95D1F79201442737FD4095FE
:1095B000542F0E94089B20937B0330937C0340939D
:1095C0007D0350937E03C501880F991F8A0D9B1D53
:1095D000820F931F97FD039695958795959587958F
:1095E00090937A038093790320912905B4E02B9F0F
:1095F00090011124281739075CF4282D30E02451FC
:109600003109220F331F220F331F8217930724F0D3
:1096100030937A03209379038091790390917A03B0
:1096200090FC7CC129813A812E193F0937FF02C085
:109630002D5F3F4FA9015595479555954795480F83
:10964000591F5A8349838FC1232B59F00091E60398
:109650001091E703109284031092830380E090E05E
:10966000F3C0841B950BA60BB70B823050E895070F
:109670005FEFA507B5072CF481E090E8AFEFBFEFEF
:109680000AC08F3F6FE79607A105B10524F08FEF61
:109690009FE7A0E0B0E080937F0390938003A093C6
:1096A0008103B093820320917F0330918003409126
:1096B0008103509182033093840320938303A0910C
:1096C0003901B0E00E94459B20E230E040E050E0EC
:1096D0000E94089B253078EF37077FEF4707570731
:1096E0002CF484E098EFAFEFBFEF13C0211588E0B2
:1096F0003807410551054CF420937F0330938003D4
:1097000040938103509382030CC080E098E0A0E076
:10971000B0E080937F0390938003A0938103B09384
:109720008203C0907F03D0908003E0908103F0908B
:109730008203209154033091550340915B03509173
:109740005C0360913801649FC001659F900D1124F6
:1097500097FF02C081509F4F492F552747FD5A95CB
:10976000420F531F662757FD6095762F8091F003B7
:109770002091F6033091F703882331F0B3E0220FF4
:10978000331FBA95E1F716C0E0912D05E29FC001A5
:10979000E39F900D1124E9E0E89F9001E99F300DCF
:1097A000112437FF02C0215E3F4FA5E03595279574
:1097B000AA95E1F73093C2032093C1038091C103BE
:1097C0009091C203AA2797FDA095BA2F9A01AB01E9
:1097D000281B390B4A0B5B0BA0913A01B0E00E94A9
:1097E000459B20E230E040E050E00E94089B25309D
:1097F00098EF39079FEF490759072CF484E098EF59
:10980000AFEFBFEF13C02115A8E03A07410551059E
:109810004CF420937F033093800340938103509353
:1098200082030CC080E098E0A0E0B0E080937F036A
:1098300090938003A0938103B093820380917F0370
:10984000909180038C0D9D1D081B190B60911404D1
:1098500070911504601771074CF480913E0190914E
:109860003F01B801801791070CF4BC01882777FDF0
:109870008095982FEDE0660F771F881F991FEA9556
:10988000D1F79201442737FD4095542F0E94089B41
:1098900020937B0330937C0340937D0350937E039E
:1098A000C501880F991F8A0D9B1D820F931F97FD7D
:1098B0000396959587959595879590937A038093D0
:1098C00079032091C3033091C4032139314020F43E
:1098D0002091C80325FF03C02091350502C02091C7
:1098E000290530E0220F331F220F331F28173907B5
:1098F0005CF4282D30E024513109220F331F220F50
:10990000331F8217930724F030937A03209379034F
:109910008091790390917A0390FE10C0E981FA81D9
:109920008E179F0724F0F0937A03E0937903209138
:10993000790330917A033A83298315C09A83898306
:1099400012C00E940F3449815A8150937A03409388
:1099500079038091C903806C8093C9038091C80307
:109960008D7F8093C8038091C90381FF06C18091D8
:10997000750390917603A0917703B09178032091BD
:109980000004892B8A2B8B2B11F02130B9F48091A4
:10999000E6039091E703AA2797FDA095BA2F0EE062
:1099A000880F991FAA1FBB1F0A95D1F780937503D3
:1099B00090937603A0937703B0937803213019F442
:1099C00082E080930004A0910A06B0910B062981E1
:1099D0003A810E942A9B20E030E240E050E00E9461
:1099E000089B20937B0330937C0340937D0350932B
:1099F0007E036091CA037091CB03809175039091AF
:109A00007603A0917703B0917803603AEFE07E0788
:109A100018F56C017D01FAE0F694E794D794C794A9
:109A2000FA95D1F78C199D09AE09BF0969017A0130
:109A300014E0CC0CDD1CEE1CFF1C1A95D1F78C0D2C
:109A40009D1DAE1DBF1D8093750390937603A0935B
:109A50007703B093780303C060347F4118F5809199
:109A6000750390917603A0917703B09178036C0110
:109A70007D017CE0F694E794D794C7947A95D1F76A
:109A80008C199D09AE09BF09BA01A901E2E0440F92
:109A9000551F661F771FEA95D1F7840F951FA61FE4
:109AA000B71F2FC0609154037091550377FF03C017
:109AB000719561957109643671055CF560914A0391
:109AC00070914B03E091F803F091F9036E1B7F0B4B
:109AD0006130EFEF7E07ECF06F3F710509F0CCF4D9
:109AE0006C017D016EE0F694E794D794C7946A9573
:109AF000D1F78C199D09AE09BF09820F931FA41FCE
:109B0000B51F8093750390937603A0937703B0936A
:109B100078030091750310917603209177033091BB
:109B200078038EE036952795179507958A95D1F796
:109B3000C8011093E7030093E60360912F056623A5
:109B400089F070E00E94D39AC801861B970B90930E
:109B5000150480931404060F171F10933F01009300
:109B60003E011FC010921504109214048FEF93E071
:109B700090933F0180933E0114C010920004109214
:109B80007503109276031092770310927803109267
:109B9000E7031092E60305C08091C903806C8093AF
:109BA000C9038091B50481FF3AC08091C5039091AB
:109BB000C60329813A8137FF02C02D5F3F4F35959B
:109BC0002795359527958217930768F42091E6032A
:109BD0003091E703232B39F09C01220F331F220F12
:109BE000331F3A83298380914A0390914B03A091BC
:109BF0004C03B0914D038093F8039093F903A09325
:109C0000FA03B093FB0388E99AE39093CC04809322
:109C1000CB0480E09EE09093AA028093A9028091F9
:109C2000090690E00A96880F991F880F991F0981ED
:109C30001A81081719070CF48C012091410630E0B5
:109C400024513109220F331F220F331F20173107F0
:109C50000CF489012091DD04211108C0209119051F
:109C60002E3F20F02091B9042223D1F02091CA0385
:109C70003091CB03225031092033310588F410167E
:109C8000110674F421E030E03093CB032093CA0333
:109C900020911905283218F429E0209357018C01EE
:109CA0008091CA04811102C00E942F821093340C4B
:109CB0000093330C20919C0330919D03220F331F9E
:109CC000220F331F8091440690914506821B930B0F
:109CD000013A1105BCF0A8015595479584179507E1
:109CE0000CF4AC01980117FF02C02F5F3F4F359570
:109CF0002795319521953109CA014217530774F40C
:109D0000C9010CC0813591053CF4803B3FEF9307BE
:109D10002CF480EB9FEF02C080E590E0209141069B
:109D200044E0249F90011124A901401B510B4817C6
:109D300059070CF4CA01B801621B730B9A8389831B
:109D40008617970714F47A8369838091120490919F
:109D500013042091040630910506281B390B30931B
:109D6000100620930F0670901F0640912404509116
:109D700025046091260470912704772049F0D101D1
:109D8000A81BB90BCD01AA2797FDA095BA2F05C036
:109D9000C901AA2797FDA095BA2F840F951FA61F6A
:109DA000B71F8093240490932504A0932604B093B6
:109DB00027048091240490912504A0912604B09159
:109DC000270481309A4FA105B10564F080E09AEF35
:109DD000A0E0B0E08093240490932504A09326048F
:109DE000B09327048091240490912504A091260427
:109DF000B091270481159640AF4FBF4F64F480E0C7
:109E000096E0AFEFBFEF8093240490932504A093D6
:109E10002604B093270440913E054987493080F4D9
:109E2000429F5001439FB00C1124B7FE03C057E07E
:109E3000A50EB11C63E0B594A7946A95E1F710C034
:109E400089858695829F5001839FB00C1124B7FEAF
:109E500003C063E0A60EB11CB594A794B594A79473
:109E600020903B0130903C01442437FC4094542C1A
:109E70006091240470912504809126049091270418
:109E8000A20191010E94089BA20EB31E20912701FE
:109E9000A981BA81B7FF03C0B195A195B109B59564
:109EA000A795A00FB11F30E00E943F9B20E430E057
:109EB00040E050E00E94089B69017A013E872D87AF
:109EC000C5012A153B050CF4C901AA24BB24AC1812
:109ED000BD089C838B838A159B0514F4BC82AB82DE
:109EE00020911004309111048091F9059091FA05A8
:109EF000821B930B9093F8058093F7054091200403
:109F0000509121046091220470912304772051F034
:109F1000EF81F885E21BF30B3F01882477FC8094E6
:109F2000982C05C03C01882477FC8094982C640E02
:109F3000751E861E971E60922004709221048092E6
:109F400022049092230440912004509121046091B6
:109F500022047091230441305A4F6105710564F069
:109F600040E05AEF60E070E04093200450932104F9
:109F700060932204709323044091200450912104A3
:109F80006091220470912304411556406F4F7F4F1A
:109F900064F440E056E06FEF7FEF4093200450936D
:109FA000210460932204709323043985393080F4AE
:109FB000389F3001399F700C112477FE03C047E0B1
:109FC000640E711C33E0759467943A95E1F710C004
:109FD00029852695289F3001299F700C112477FE32
:109FE00003C053E0650E711C759467947594679473
:109FF00060912004709121048091220490912304A7
:10A00000A20191010E94089B260D371D6D857E855A
:10A01000621773070CF4960129012A153B050CF40D
:10A0200025018091CA04811102C00E942F82709183
:10A0300081057F83872F90E0988B8F878091090619
:10A04000E4E08E9FD0011124BE87AD878091410648
:10A0500044E0849F900111243A872987A5E7CA2EFE
:10A06000A9E0DA2EB6E76B2EB9E07B2E80E2282E2F
:10A0700086E0382E64EB75E0798F688F90E4892E46
:10A08000912CA12CB12CE88DF98D3397A0811A1653
:10A090000CF0ACC0A03461F09801BB27A7FDB095CF
:10A0A0000E942A9BA50194010E94089B790101C08E
:10A0B0007801E88DF98D3297A081A03429F48B8145
:10A0C0009C81E80EF91E14C0A03C29F4AB81BC8130
:10A0D000EA1AFB0A0DC02B813C81BB27A7FDB09576
:10A0E0000E942A9BA50194010E94089BE20EF31E88
:10A0F000E88DF98D3197A081A03419F4E40CF51C9A
:10A1000011C0A03C19F4E418F5080CC09201BB275B
:10A11000A7FDB0950E942A9BA50194010E94089B6F
:10A12000E20EF31EE88DF98DA081A03419F4298187
:10A130003A8112C0A03C29F449815A81E41AF50AF7
:10A140000DC029813A81BB27A7FDB0950E942A9BAB
:10A15000A50194010E94089BE20EF31EF3013297C1
:10A16000808181FD06C0D1018D919C918E159F0546
:10A170005CF4F101808191818E0D9F1D97FD019608
:10A180007C01F594E79413C0FF81F11105C0EE0C3A
:10A19000FF1CE81AF90A0BC02F81223040F08E19FB
:10A1A0009F096F8578890E94D39AE60EF71E4D8528
:10A1B0005E854E155F053CF469857A856E157F05D1
:10A1C00024F47B0102C0ED84FE84C7019595879538
:10A1D00095958795D6018C93C70183709927880F31
:10A1E000F3018083D101ED92FC9204C0F60110824C
:10A1F000D3011C92BFE0CB0ED11CEFE06E0E711CA0
:10A20000F2E02F0E311C288D398D2C5F3F4F398F96
:10A21000288F39E2C3163AE0D30609F034CF6996A5
:10A220000FB6F894DEBF0FBECDBFDF91CF911F9167
:10A230000F91FF90EF90DF90CF90BF90AF909F90E5
:10A240008F907F906F905F904F903F902F900895E8
:10A2500082E993E09F938F938CE996E99F938F9384
:10A26000E0915506F091560609950F900F900F90CA
:10A270000F90089580911C0590E0880F991FFC01B4
:10A28000E25FF74F208131812D3E3F4F14F0109255
:10A290005001FC01E25FF74F808191818A3B9F4F23
:10A2A000CCF480915001811115C081E08093500160
:10A2B00080915A0A8F5F80935A0A853038F088EE71
:10A2C00093E09093CC048093CB04089566E970E00A
:10A2D0000C949F2608951F93CF93DF93C82F882354
:10A2E00009F12AE833E03F932F932CE936E93F93B5
:10A2F0002F93E0915506F0915606099580911A0129
:10A3000090911B016BE270E00E94D39A6F5F6093A3
:10A3100051010F900F900F900F90673018F086E06A
:10A320008093510190913F05923328F5809151011E
:10A33000899F902D112490935301CC23F1F068EC68
:10A3400070E00E949F26809151011F928F932FE70A
:10A3500033E03F932F932CE936E93F932F93E0911D
:10A360005506F091560609950F900F900F900F909B
:10A370000F900F9002C09093530180918F0582330C
:10A3800028F490915101989F802D112480936304AB
:10A3900090919005923340F480915101899F802DD6
:10A3A00011248093620402C090936204809153014F
:10A3B00020916304821720F42FEF280F2093630469
:10A3C00020916204281720F02FEF280F20936204B9
:10A3D0002091620430916304321728F0992319F018
:10A3E000215020936304CC2309F45DC01AE0612F4F
:10A3F0000E94B39A1F929F931F928F938AE693E0D5
:10A400009F938F93CCE9D6E9DF93CF93E0915506E4
:10A41000F09156060995809162042DB73EB7285FEA
:10A420003F4F0FB6F8943EBF0FBE2DBF8823D9F023
:10A43000612F0E94B39A1F929F931F928F9388E57A
:10A4400093E09F938F93DF93CF93E0915506F09124
:10A45000560609952DB73EB7285F3F4F0FB6F894C3
:10A460003EBF0FBE2DBF809163048823E1F06AE0F8
:10A470000E94B39A1F929F931F928F9382E493E05E
:10A480009F938F938CE996E99F938F93E091550664
:10A49000F091560609958DB79EB708960FB6F894B9
:10A4A0009EBF0FBE8DBFDF91CF911F91089514B84D
:10A4B00015B88AE08AB98FE58BB9199B08C04C9B07
:10A4C00004C085E18093540108C086E101C089E1A0
:10A4D0008093540181E08093C00381E887B93E9A5C
:10A4E0008FEF88B98BE184B981E085B9469A84B74A
:10A4F000877F84BF809160008861809360001092A4
:10A50000600084EC99E09093CC048093CB0410928B
:10A510000F0410920E041092130810921208109259
:10A5200011041092100410921304109212048091DE
:10A530005401843128F084EC94E0A0E0B0E004C041
:10A540008BE095E0A0E0B0E08093210190932201A0
:10A55000A0932301B093240128988091540189315C
:10A5600011F4299A01C029980E949D880E9476883A
:10A570000E94A3960E94137E0E947E1A81E00E9490
:10A58000FA8B0E940E820E94372087E00E94891871
:10A5900080915401893111F4299A01C02998789445
:10A5A0000E94A224809154018431E8F42CE088E1D7
:10A5B00090E00FB6F894A895809360000FBE2093AA
:10A5C000600000E113E0CCE9D6E91F930F93DF931D
:10A5D000CF93E0915506F091560609950F900F9094
:10A5E0000F900F90F2CF8091DC0482608093DC04A6
:10A5F0001092DF04C4EFD1E00E94B43085E090E017
:10A600000E9446885C018091DC0480FF2EC0219767
:10A61000209791F78EEF92E09F938F938CE996E9C4
:10A620009F938F93E0915506F09156060995A1E806
:10A63000EA2EA9E0FA2E0F900F900F900F9007E7E7
:10A6400019E0B1EBCB2EB5E0DB2EC1E0D0E08AE023
:10A65000482E512C9BEF692E92E0792E2CE9822E08
:10A6600026E9922E34E6332E06C0C5010E944F889B
:10A67000882349F2CCCFF601808118167CF0F801CE
:10A68000808187FF41C016C0F801808187FDF7CF28
:10A690000E94B4308091DC0480FF06C0C5010E9496
:10A6A0004F88882389F3EBCFC5010E944F88882308
:10A6B00089F3F4CFCE01B2010E94BF9A9F938F938A
:10A6C0007F926F929F928F92E0915506F09156067D
:10A6D000099580915B048F5F80935B04F70131974C
:10A6E0009081F7018081939D800D11240F900F9030
:10A6F0000F900F900F900F90882331F09091420AA5
:10A70000891710F48093420A2196F4E0CF0ED11CF1
:10A710002FE0E20EF11C015F1F4FCD30D10509F093
:10A72000AACF61EBE62E65E0F62E07E719E0C1E05F
:10A73000D0E07DEDC72E72E0D72EECE9AE2EE6E933
:10A74000BE2EF2E09F2EF801808187FD17C0F70131
:10A75000808118169CF4DF93CF93DF92CF92BF9243
:10A76000AF92E0915506F091560609959092C90472
:10A770000F900F900F900F900F900F90F801808125
:10A78000807880832196015F1F4FF4E0EF0EF11C6B
:10A79000CD30D105C1F68091420A8F3F81F164E648
:10A7A0000E94B39A1F929F931F928F9387EC92E01F
:10A7B0009F938F93CCE9D6E9DF93CF93E091550631
:10A7C000F091560609958091420A8456EDB7FEB77E
:10A7D00038960FB6F894FEBF0FBEEDBF833078F405
:10A7E0008EEA92E09F938F93DF93CF93E09155068B
:10A7F000F091560609950F900F900F900F9028DD5D
:10A8000080911A0590915B04891728F49091400A71
:10A8100090619093400A893008F088E08093B202FA
:10A820008EE892E09F938F938CE996E99F938F93A4
:10A83000E0915506F0915606099588EE93E00E9446
:10A840004688EC010E94AB1A0F900F900F900F906A
:10A85000CE010E944F888823D9F389E892E09F9324
:10A860008F938CE996E99F938F93E0915506F09131
:10A870005606099580E00E943427289880ED97E0DD
:10A880009093CC048093CB0485E580935C0A8EE0A2
:10A8900090E00E944323C82F8FE090E00E94432362
:10A8A0002C2F30E0322F2227280F311D30936104E6
:10A8B000209360048AE090E00E944323C82F8BE03D
:10A8C00090E00E9443232C2F30E0322F2227280FC4
:10A8D000311D30935F0420935E040F900F900F9012
:10A8E0000F902F3F3F4F31F08091600490916104B1
:10A8F000019641F4109261041092600410925F047A
:10A9000010925E0480915F048F9380915E048F9318
:10A91000809161048F93809160048F9387E692E029
:10A920009F938F938CE996E99F938F93E0915506BF
:10A93000F091560609950E94657588E893E1909319
:10A94000B1028093B002C1E0C0935B0A81E0C3DC36
:10A95000809142050E94D8177BDC80ED97E00E9431
:10A9600046888C018AEF90E00E94468883E08093BD
:10A97000230C10925A04809195052DB73EB7285F9D
:10A980003F4F0FB6F8943EBF0FBE2DBF84FDC0935E
:10A99000640483E08093B302612C77247394C0E055
:10A9A000D0E0F8E9EF2EFAE3FF2E212CACE03A2EAE
:10A9B000B8E84B2EB3E15B2E88EAC82E81E6D82E8C
:10A9C00090E8A92EB12C25E0822E912C12BC11BC4E
:10A9D0008091EA04882311F04798FECF8091CF043C
:10A9E000882309F4A6C280910F01882309F4A1C22B
:10A9F000F8948091CF0481508093CF047894809113
:10AA00005A0A882311F036DC02C00E944C340E949E
:10AA1000B430289880910204882331F08091020498
:10AA20008150809302043EC080916F0080628093C9
:10AA30006F0010920F0810920E088091400A8860F3
:10AA40008093400A20911C0530E0220F331FF9014A
:10AA5000EC5AF74F1182108280911D0590E0880F0B
:10AA6000991FFC01EC5AF74F11821082F901E25F45
:10AA7000F74F11821082FC01E25FF74F11821082C2
:10AA8000E0911F05F0E0EE0FFF1FE25FF74F11822C
:10AA90001082E0911E05F0E0EE0FFF1FE25FF74F1E
:10AAA000118210828091B0029091B102019790932F
:10AAB000B1028093B002892B21F08091DD048823BC
:10AAC00091F18091B0029091B102892BC9F40E945A
:10AAD0003A8C9092B1028092B00280915D0C90917C
:10AAE0005E0C019690935E0C80935D0C8091400A01
:10AAF00081608093400A8091240C82608093240CB2
:10AB00008091A9029091AA02019671F480910104AA
:10AB1000882351F0D092CC04C092CB04B092AA0208
:10AB2000A092A90201C028980E9486198091CF04A2
:10AB30008111FCC18091A904882319F00E94C97F6A
:10AB4000F5C18091CA04811102C00E942F828091B8
:10AB5000AF0281110E94F3880E94E4960E94D7926E
:10AB6000C8010E944F88882309F4DCC10C5E1F4F86
:10AB70000E94B68880914205863011F49DD604C0AB
:10AB8000843011F40E94C5728091C003882331F192
:10AB900080910405909105058C32914074F080916C
:10ABA000330C9091340C81159240C4F480910405CB
:10ABB00090910505833593408CF0639432E336150C
:10ABC00070F480910104882331F080913F0A806203
:10ABD00080933F0A04C01092ED0301C0612C809164
:10ABE000DD04811105C0809119058E3130F009C056
:10ABF0008091400A82608093400A8091240C826098
:10AC00000FC08091CB049091CC04892B59F4809192
:10AC1000B0029091B102079728F08091240C8D7FAB
:10AC20008093240C80916404882351F08091020465
:10AC3000873930F0109264045092CC044092CB04D7
:10AC40008091B502882321F081508093B50229C0FC
:10AC50001092660A1092D5031092D4031092D30377
:10AC60001092D2031092D1031092D003809102046B
:10AC7000811117C08091A9029091AA02019689F4CE
:10AC800080916404823069F0F092CC04E092CB04AD
:10AC90003092AA022092A902882319F082E08093C0
:10ACA00064048091A4022091430A893C60F08150A1
:10ACB0008093A4028091400A8B7F8093400A216098
:10ACC0002093430A4CC08091C1088823E1F0809111
:10ACD000400A84608093400A89E08093B90480919F
:10ACE000A9029091AA02019671F48091010488232F
:10ACF00051F0F092CC04E092CB0480E098EA90937B
:10AD0000AA028093A902109269041092680410921A
:10AD1000670410926604109265041092B4088FEFD5
:10AD2000809329091092F3081092F2081092F50806
:10AD30001092F408EFEFFFEFF093F108E093F008C2
:10AD40001092F1031092F2031092F3031092F403A5
:10AD50001092F5032E7F2093430A1092A4022091B3
:10AD60001A0130911B0180915301E82FF0E0E217A6
:10AD7000F307FCF02091C90320622093C9032091BE
:10AD8000A9023091AA022F3F3F4F99F420911A0156
:10AD900030911B012B30310564F020E737E130930F
:10ADA000CC042093CB0480E093E09093AA0280939C
:10ADB000A902209159042F5F20935904213309F0EF
:10ADC0007BC01092590420917E04222319F0215057
:10ADD00020937E042091C90321FF0BC020915C04C5
:10ADE00030915D042F5F3F4F30935D0420935C04EE
:10ADF00002C0CAEAD5E02091CA033091CB032115E5
:10AE0000344008F04BC08091060590910705A09151
:10AE10000805B0910905409112015091130160910C
:10AE200014017091150184179507A607B7076CF4F4
:10AE3000409106055091070560910805709109053C
:10AE40004B5F5F4F6F4F7F4F21C080910605909100
:10AE50000705A0910805B091090540911201509194
:10AE600013016091140170911501481759076A0781
:10AE70007B07A4F4409106055091070560910805F1
:10AE80007091090545505109610971094093060502
:10AE900050930705609308057093090520911A01E6
:10AEA00030911B01CF010196821793072CF48091FA
:10AEB000C9038F7D8093C9032196C237EBE0DE077B
:10AEC00089F58091600490916104019690936104EA
:10AED0008093600420915E0430915F042F5F3F4FA8
:10AEE00030935F0420935E04692F8EE090E00E940F
:10AEF0004523609160048FE090E00E9445236091BB
:10AF00005F048AE090E00E94452360915E048BE03C
:10AF100090E00E94452384E190E00E9446888C01E5
:10AF2000C0E0D0E00E9409740E946820772019F0E8
:10AF30007A94711010C00E943D87882319F0ECE0CC
:10AF40007E2E44CD8091CA04882311F0712C3ECD11
:10AF50000E942F82FBCF8091CA04811137CD0E94BD
:10AF60002F8234CD90917B048FE0989FF0011124C3
:10AF7000EC58F64F878120917A04281728F48093A3
:10AF80007A049093790408C0882331F020917804E2
:10AF9000821710F4809378049F5F9C3018F490938C
:10AFA0007B04089510927B04809178048F3F19F000
:10AFB0008093810402C01092810480917A0480936E
:10AFC000820480917904809380048FEF80937804C9
:10AFD00010927A0410927904089595E1899F802D4A
:10AFE00011240E94A5148AE39AE09F938F938BE724
:10AFF00094E19F938F93E0915506F0915606099541
:10B000000F900F900F900F900895CF93C09157011C
:10B01000C0937F049091C9038091770495FF10C07D
:10B020009091BF03992331F090914205963011F42D
:10B03000EEE001C0E0E1CC2339F1803129F523C0F5
:10B040002091B9049FEF920F9232A8F490910104DD
:10B0500030E0911108C0F901EE0FFF1FEF5AF54FD4
:10B06000E491E11108C0F901EE0FFF1FE05BF54F1D
:10B07000E491E11109C09091960596FD08C01092E7
:10B080005701C0E004C0EC2FE0937F04CE2F8C1357
:10B090000BC080917504909176040E944F8888239C
:10B0A000B9F080EA9FE002C080ED97E00E944688F8
:10B0B0009093760480937504CC2331F080915701EE
:10B0C000C81302C010925701C09377048C2F01C09F
:10B0D00080E0CF91089580910709893851F138F4C3
:10B0E0008230F9F0833009F1813039F416C08D389F
:10B0F00081F08E3851F08A3821F020E080E090E035
:10B100001BC02CE281E997E017C02CE287E596E0AE
:10B1100013C02CE283E896E00FC024E086E792E0BB
:10B120000BC024E089E892E007C029E08FEA96E0AE
:10B1300003C02CE289EB96E04091FC08EEEFF8E0CA
:10B14000342F5091FD08632F641B651748F43217A4
:10B1500038F45191DC01A30FB11D5C933F5FF1CF37
:10B160000895809120018B3211F08D32C1F440910D
:10B170002D052091F6033091F703429FC001439FB4
:10B18000900D112463E070E00E94D39ACB01805DA2
:10B190009A486F5C7F4F61337105C0F1089580322A
:10B1A00009F58091C90381FF34C020917C0430915E
:10B1B0007D04C901805D9A48813345E7940738F0E2
:10B1C000843945E7940728F184569109089580331E
:10B1D00045E7940701F18D3C9447D8F4C9018C569A
:10B1E0009A4808958E3539F48091F1032AE0829FC0
:10B1F000C001112408C0863761F42091F10336EFB5
:10B200003203C0011124805D9A4808958EEF94E7BF
:10B21000089580E395E70895CF938A3809F4A7C18C
:10B2200018F4893841F045C38D3809F486C28E3848
:10B2300009F4EDC13EC3E9DEC82F80939307609106
:10B24000FC037091FD038091FE039091FF0324E6BF
:10B2500030E040E050E00E94089B2C503E4F30937D
:10B26000BF062093BE06C11102C07BDF02C080E38F
:10B2700095E79093C5068093C4068091C40690918B
:10B28000C5069093C7068093C6069093C90680931F
:10B29000C8068091BE069091BF062091C2063091EB
:10B2A000C3068217930724F49093C3068093C206C3
:10B2B0002091C0063091C1062817390724F49093D5
:10B2C000C1068093C0061092BB0689EB96E090936E
:10B2D000F1028093F002809120018093DF0680913B
:10B2E000C80380FF02C083E401C080E28093E006CF
:10B2F0002091B904222311F1822F6AE00E94B39AAF
:10B30000805D8093CA06905D9093CB068AE380931C
:10B31000CC06ADECB6E031E1239FC001112420E062
:10B3200030E08A56954FFC01E20FF31FE491ED9354
:10B330002F5F3F4F20313105B1F7C3C08091BF036C
:10B34000882361F0ECE1FDE0AAECB6E084918D93F6
:10B3500031968DE0E133F807C9F74CC18091C903FC
:10B3600085FF0CC0E2E3FDE0AAECB6E084918D938A
:10B3700031969DE0E734F907C9F73CC180917E041E
:10B38000882369F1E9EEFCE0AAECB6E084918D93A4
:10B3900031963CE0E03FF307C9F780915201805DB0
:10B3A0008093CE06E7E9F5E0A1EDB6E081918D93BB
:10B3B00085E0E33AF807D1F78091C70381FF0BC01E
:10B3C00082E48093DB068FE48093DC0681E4809343
:10B3D000DD0684E579C080E28093DC0673C040918D
:10B3E0008A04442309F473C087E58093CA0680E584
:10B3F0008093CB0620E22093CC0680918B043AE028
:10B40000632F0E94B39A805D8093CD06905D9093E8
:10B41000CE068FE28093CF06842F0E94B39A805D80
:10B420008093D006905D9093D1062093D2068091B0
:10B43000830490918404893E33E0930740F068EEE2
:10B4400073E00E94BF9A605D6093D30602C02093B0
:10B45000D3068536910540F064E670E00E94BF9AFD
:10B46000605D6093D40603C020E22093D4066AE0B6
:10B4700070E00E94BF9A605D6093D506805D809306
:10B48000D6068DE68093D70690E29093D8068091F9
:10B490008904853640F064E60E94B39A805D80930B
:10B4A000D906892F02C09093D9066AE00E94B39A08
:10B4B000805D8093DA06905D9093DB0683E780934E
:10B4C000DC0680E28093DD068093DE0693C08091E7
:10B4D000B50484FF0CC0E6E0FDE0AAECB6E0849180
:10B4E0008D9331968DE0EB31F807C9F783C08091D9
:10B4F000ED0381111BC0AAECB6E080E090E0FC01F6
:10B50000E65BF24FE491ED93019681319105B9F735
:10B5100082E38093DA068EE28093DB0680E38093F9
:10B52000DC0688E38093DD0681E6CECF8091C703F9
:10B5300081FF11C0E0EFFCE0AAECB6E094919D938E
:10B5400031969DE0E530F907C9F780FF53C082E5E9
:10B550008093CA064FC0E8E4FDE0AAECB6E09491FF
:10B560009D9331963DE0ED35F307C9F7EECF60913D
:10B57000FC037091FD038091FE039091FF0324E68C
:10B5800030E040E050E00E94089B2C503E4F30934A
:10B59000A7072093A6078091930781112DC0E1DDB5
:10B5A0009093A9078093A80788E78093AA078091C2
:10B5B000B5088093AB078091B40881FF20C084E474
:10B5C0008093AC0781E997E09093F1028093F002B9
:10B5D000809196028093B8078091AC078093BA0758
:10B5E0008091BA089091BB0897FD01969595879533
:10B5F0008093AD078CE25EC180E395E7D1CF809167
:10B60000B608833011F480E2DBCF81E2D9CFAADC27
:10B610006091FC037091FD038091FE039091FF0304
:10B6200024E630E040E050E00E94089B2C503E4F62
:10B63000309372062093710680911A0190911B013C
:10B6400090936C0680936B0680911A0190911B0178
:10B6500090936E0680936D0680914206909143060A
:10B6600097FD01969595879580935D068093640676
:10B670008091BA089091BB0897FD01969C01359581
:10B680002795209362068091B8089091B90864E1EB
:10B6900070E00E94BF9A60936306209369066093EE
:10B6A0006A0680919307811102C05BDD02C080E3CE
:10B6B00095E790937A068093790688E780937B06D6
:10B6C00080911A0190911B019093760680937506E4
:10B6D000809181048C5E80936F06809182048C5EE1
:10B6E0008093700680911705909118056AE070E0CC
:10B6F0000E94BF9A709378066093770680919307B3
:10B7000080935906809113059091140590937406C7
:10B710008093730687E596E09093F1028093F002A0
:10B7200080915C0490915D046CE370E00E94BF9A8C
:10B7300060937E0680937F065DCF14DC8091B8080D
:10B740009091B90864E670E00E94BF9A70939906E0
:10B7500060939806809142069091430697FD01966A
:10B76000959587958093890680914E0190914F0120
:10B7700097FD01969595879580938A0680915D0C3B
:10B7800080938D068091BA089091BB0897FD019631
:10B790009595879580938E0640911A0150911B01D3
:10B7A0002091530130E0C9010296841795076CF48B
:10B7B00080911A0190911B01821B930B0297982F85
:10B7C000990F980F9093950602C01092950680915C
:10B7D0009506853618F084E6809395068091B90425
:10B7E00090E090939706809396066091FC03709189
:10B7F000FD038091FE039091FF0324E630E040E0DA
:10B8000050E00E94089B2C503E4F30939B062093A3
:10B810009A0680911A0190911B0190939006809353
:10B820008F0680911A0190911B019093920680934C
:10B83000910680919307811102C093DC02C080E3DE
:10B8400095E790939D0680939C0680919307885876
:10B8500080939E0680911A0190911B019093A206FD
:10B860008093A106809181048C5E809393068091E1
:10B8700082048C5E80939406809117059091180540
:10B880006AE070E00E94BF9A7093A4066093A306DA
:10B890001092850680911305909114059093A0064F
:10B8A00080939F0683E896E09093F1028093F002E4
:10B8B000A1CE80E0CF9108952F923F924F925F9258
:10B8C0006F927F928F929F92AF92BF92CF92DF92B0
:10B8D000EF92FF920F931F93CF93DF9300D000D08E
:10B8E000CDB7DEB7209154033091550340917C04CD
:10B8F00050917D0467E0649FC001659F900D112405
:10B90000820F931F97FD079633E0959587953A959B
:10B91000E1F790937D0480937C048091740490E01F
:10B920008730910510F00C94466BFC01E85AFF4FEC
:10B930004091730481E0840F809373040C94249BE2
:10B94000042F10E00131110510F00C94436BF80145
:10B95000E15AFF4F0C94249B8091C90385FF1FC0BF
:10B9600080E00E94A51480911A0190911B01E09142
:10B970001A01F0911B012AE030E0B9010E94D39A2C
:10B980009F938F93CF01B9010E94D39A7F936F93B6
:10B990008DE29AE09F938F938CE994E11EC080E042
:10B9A0000E94A51480911A0190911B01E0911A0147
:10B9B000F0911B012AE030E0B9010E94D39A9F93D5
:10B9C0008F93CF01B9010E94D39A7F936F9380E246
:10B9D0009AE09F938F938BE794E19F938F93E091ED
:10B9E0005506F091560609950FB6F894DEBF0FBEC6
:10B9F000CDBF8091390680FF34C08091190488231F
:10BA0000D1F08AE00E94A514809120011F928F93AB
:10BA10006091FC037091FD038091FE039091FF0300
:10BA200024E630E040E050E00E94089B3F932F93D3
:10BA300084E19AE032C68AE00E94A5146091FC037A
:10BA40007091FD038091FE039091FF0324E630E0A6
:10BA500040E050E00E94089B3F932F9389E09AE0DA
:10BA60001BC78AE00E94A5148FEF99E00C946569CA
:10BA70008091C90385FF16C085E10E94A5148091BD
:10BA80005C0490915D046CE370E00E94BF9A9F9308
:10BA90008F937F936F9382EF99E09F938F938CE9BD
:10BAA00094E115C085E10E94A51480915C049091F9
:10BAB0005D046CE370E00E94BF9A9F938F937F9325
:10BAC0006F9385EE99E09F938F938BE794E19F931B
:10BAD0008F93E0915506F091560609950FB6F894AC
:10BAE000DEBF0FBECDBF8FE10E94A5141F9280E67E
:10BAF0008F93809143068F93809142068F938AEDB6
:10BB000099E09F938F930BE714E11F930F93E091BC
:10BB10005506F091560609958091C8030FB6F89422
:10BB2000DEBF0FBECDBF80FF06C089E20E94A51414
:10BB300088ED99E02FC389E20E94A51486ED99E073
:10BB4000E9C08091C90385FF10C08AE20E94A51454
:10BB5000809118058F93809117058F938EEC99E053
:10BB60009F938F938CE994E10FC08AE20E94A51401
:10BB7000809118058F93809117058F9386EC99E03B
:10BB80009F938F938BE794E19F938F93E09155065A
:10BB9000F091560609950F900F900F900F900F900F
:10BBA0000F9086E30E94A5148091130590911405CF
:10BBB0006AE070E00E94BF9A9F938F937F936F9388
:10BBC0008AEB99E09F938F938BE794E19F938F93F8
:10BBD000E0915506F091560609950FB6F894DEBF30
:10BBE0000FBECDBF0C94486B89E00E94A51488EB72
:10BBF00099E09F938F930BE714E11F930F93E091CC
:10BC00005506F091560609958EE10E94A51486EB23
:10BC100099E09F938F931F930F93E0915506F091B6
:10BC20005606099583E30E94A51484EB99E09F933F
:10BC30008F931F930F93E0915506F0915606099547
:10BC40008FE30E94A5148EE999E09F938F931F9331
:10BC50000F93E0915506F091560609958EE70E94E4
:10BC6000A51488E899E09F938F931F930F930C94EA
:10BC7000EC668091A402882309F45EC08DE50E94E1
:10BC8000A51486E899E09F938F930BE714E11F9327
:10BC90000F93E0915506F0915606099584E50E94B0
:10BCA000A5148091B5081F928F938DE799E09F931B
:10BCB0008F931F930F93E0915506F09156060995C7
:10BCC0008EE50E94A5148091B8089091B9086AE0A9
:10BCD00070E00E94BF9A7F936F9383E799E09F93F0
:10BCE0008F931F930F93E0915506F0915606099597
:10BCF0000FB6F894DEBF0FBECDBF8091B60883307B
:10BD0000A9F48091B40881FF0BC08BE50E94A514B3
:10BD100080E799E09F938F931F930F930C946B6927
:10BD20008BE50E94A5148DE699E0F4CF8BE50E9487
:10BD3000A5148AE699E0B5C684E027C38091A402E1
:10BD4000882309F461C080917204882309F445C0F6
:10BD500089E60E94A5148091B8041F928F938FE505
:10BD600099E09F938F932BE7E22E24E1F22EFF922E
:10BD7000EF92E0915506F0915606099585E70E94ED
:10BD8000A514809196021F928F931F9210E61F9325
:10BD90008091BB088F938091BA088F9383E599E0D7
:10BDA0009F938F93FF92EF92E0915506F091560684
:10BDB000099582E70E94A5148091B6041F928F9383
:10BDC0001F921F938091B7041F928F9383E499E091
:10BDD0009F938F93FF92EF9211C689E60E94A5145C
:10BDE000809196021F928F931F9280E68F9380918D
:10BDF000BB088F938091BA088F938091B7081F92E8
:10BE00008F938AE299E088C185E0BFC28091B9042E
:10BE10008823E9F19091ED02992301F18332F0F446
:10BE200087E0DBD883E90E94A5148091B9041F92B2
:10BE30008F938FE199E09F938F938BE894E19F9389
:10BE40008F93E0915506F091560609950F900F904B
:10BE50000F900F900F900F900C94486B83E90E9405
:10BE6000A51489E199E09F938F930BE714E11F9349
:10BE70000F93E0915506F091560609951F921F9277
:10BE80008091B904E1E18E9FC0011124B6C3809175
:10BE9000C90385FF07C084E90E94A51486E099E0E4
:10BEA0000C94656983E90E94A51480EF98E00C94D6
:10BEB00065698091860C823029F40E94AA1485E07D
:10BEC0000C943C6B863069F480917204882321F0D5
:10BED000109272040C94406B81E0809372040C9475
:10BEE000406B883011F00C94406B0E94AA1481E0E2
:10BEF0000C943C6B50E04131510510F00C94436BB5
:10BF0000FA01E059FF4F0C94249B8091C90385FFEF
:10BF100032C080E00E94A51480911A0190911B010B
:10BF200000911A0110911B01E0915C04F0915D04F5
:10BF3000209118052F93209117052F932AE030E0C8
:10BF4000B9010E94D39A9F938F93C801B9010E94AF
:10BF5000D39A7F936F93CF016CE370E00E94BF9AF6
:10BF60009F938F937F936F9385ED98E09F938F932B
:10BF70008CE994E1F8C180E00E94A51480911A0137
:10BF800090911B0100911A0110911B01E0915C043A
:10BF9000F0915D04209118052F93209117052F93A0
:10BFA0002AE030E0B9010E94D39A9F938F93C80191
:10BFB000B9010E94D39A7F936F93CF016CE370E035
:10BFC0000E94BF9A9F938F937F936F938AEB98E021
:10BFD000C6C185E10E94A5141F9280E68F938091CF
:10BFE00043068F93809142068F9380EB98E09F9356
:10BFF0008F930BE714E11F930F93E0915506F09197
:10C0000056060995809139060FB6F894DEBF0FBE2B
:10C01000CDBF80FF45C0809119048823E1F08FE1F6
:10C020000E94A5146091FC037091FD038091FE03B2
:10C030009091FF0324E630E040E050E00E94089B2E
:10C040003F932F9387EA98E09F938F938BE894E137
:10C050009F938F9319C08FE10E94A5146091FC03F8
:10C060007091FD038091FE039091FF0324E630E080
:10C0700040E050E00E94089B3F932F938EE998E0A8
:10C080009F938F931F930F93E0915506F09156065F
:10C0900009950F900F900F900F900F900F9012C076
:10C0A0008FE10E94A51484E998E09F938F931F93DA
:10C0B0000F93E0915506F091560609950F900F9059
:10C0C0000F900F9089E20E94A514809120011F9289
:10C0D0008F9381E998E0E0C38091A402882341F125
:10C0E0008BE20E94A514809196021F928F938091FB
:10C0F000B8089091B9086AE070E00E94BF9A7F93F7
:10C100006F931F9280E68F938091BB088F938091ED
:10C11000BA088F938AE798E09F938F938BE794E117
:10C120009F938F93E0915506F0915606099555CD52
:10C1300082E02BC18FE30E94A5148091130590919A
:10C140001405209116052F93209115052F936AE071
:10C1500070E00E94BF9A9F938F937F936F9386E6C0
:10C1600098E09F938F930BE714E11F930F93E09157
:10C170005506F091560609958091C8030FB6F894BC
:10C18000DEBF0FBECDBF80FF0BC082E50E94A514AD
:10C1900083E698E09F938F938BE894E10C94696910
:10C1A00082E50E94A51480E698E0B4CD8091A402B7
:10C1B000882309F44CC084E50E94A5148091B50839
:10C1C0001F928F938091B7081F928F938DE498E010
:10C1D0009F938F930BE714E11F930F93E091550604
:10C1E000F091560609950FB6F894DEBF0FBECDBF8D
:10C1F0008091B608833051F484E60E94A51487E448
:10C2000098E09F938F931F930F930BC084E60E9437
:10C21000A51481E498E09F938F938CE994E19F9318
:10C220008F93E0915506F091560609950F900F9067
:10C230000F900F908091B40881FD02C00C94486B60
:10C2400084E60E94A5148BE398E00C94656984E56C
:10C250000E94A51485E298E00C94656980917104B0
:10C26000882309F464C089E60E94A514409055060D
:10C270005090560683E00E944E203C0183E00E94CD
:10C280004E204C0182E00E944E205C0182E00E9420
:10C290004E206C0181E00E944E207C0181E00E94D2
:10C2A0004E208C0180E00E944E201C0180E00E9404
:10C2B0004E20FC012AE030E0C301B9010E94BF9A80
:10C2C0009F938F93C401B9010E94BF9A7F936F938C
:10C2D000C501B9010E94BF9A9F938F93C601B9010E
:10C2E0000E94BF9A7F936F93C701B9010E94BF9AC2
:10C2F0009F938F93C801B9010E94BF9A7F936F9358
:10C30000C101B9010E94BF9A9F938F93CF01B901D8
:10C310000E94BF9A7F936F9388E098E09F938F93DA
:10C320008BE794E19F938F93F201099556CC89E6B0
:10C330000E94A5141F9280E68F938091A8091F92F6
:10C340008F93809199091F928F9380918A091F92F0
:10C350008F9380917B091F928F9385EF97E09F9336
:10C360008F938BE794E19F938F93E0915506F09123
:10C370005606099532CC9091710480911A05992343
:10C3800009F4D9C08430C9F486E00F900F900F9063
:10C390000F90DF91CF911F910F91FF90EF90DF9061
:10C3A000CF90BF90AF909F908F907F906F905F9055
:10C3B0004F903F902F900C94ED578630D9F58EE733
:10C3C0000E94A514A0905506B090560685E00E94E4
:10C3D0004E206C0185E00E944E207C0184E00E948A
:10C3E0004E208C0184E00E944E20FC012AE030E0C7
:10C3F000C601B9010E94BF9A9F938F93C701B901EB
:10C400000E94BF9A7F936F93C801B9010E94BF9A9F
:10C410009F938F93CF01B9010E94BF9A7F936F932F
:10C4200086EE97E09F938F938BE794E19F938F9392
:10C43000F5017CCE873010F40C94486B8EE70E9497
:10C44000A51420915506309156063A83298388E039
:10C450000E944E203C0188E00E944E204C0187E063
:10C460000E944E205C0187E00E944E206C0186E015
:10C470000E944E207C0186E00E944E208C0185E0C7
:10C480000E944E209C838B8385E00E944E202C01CD
:10C4900084E00E944E201C0184E00E944E20FC019A
:10C4A0002AE030E0C301B9010E94BF9A9F938F93A5
:10C4B000C401B9010E94BF9A7F936F93C501B9016E
:10C4C0000E94BF9A9F938F93C601B9010E94BF9AA1
:10C4D0007F936F93C701B9010E94BF9A9F938F9377
:10C4E000C801B9010E94BF9A7F936F938B819C8191
:10C4F000B9010E94BF9A9F938F93C201B9010E9414
:10C50000BF9A7F936F93C101B9010E94BF9A9F9315
:10C510008F93CF01B9010E94BF9A7F936F9389ECEB
:10C5200097E09F938F938BE794E19F938F93E9819B
:10C53000FA81099552CB843009F426CF863089F4EC
:10C540008EE70E94A5141F9280E68F938091C60902
:10C550001F928F938091B7091F928F9386EB97E07C
:10C56000B3C0873010F40C94486B8EE70E94A5147A
:10C570001F9280E68F938091E4091F928F938091A0
:10C58000D5091F928F938091C6091F928F93809136
:10C59000B7091F928F9383EA97E0E1CE8091B904A7
:10C5A000882391F19091ED02992379F0833268F418
:10C5B00087E00E94ED5783E90E94A5148091B90499
:10C5C0001F928F9388E997E036CC83E90E94A514E7
:10C5D00082E997E09F938F930BE714E11F930F93EA
:10C5E000E0915506F091560609951F921F92809191
:10C5F000B904F1E18F9FC00111248A56954F9F9392
:10C600008F931F930F935AC78091C90385FF06C06C
:10C6100084E90E94A5148FE797E057C683E90E943A
:10C62000A51489E697E051C68091860C863079F48E
:10C6300080917104882319F01092710403C081E085
:10C640008093710485E00E94ED5786E041C28830F6
:10C6500009F498C3813011F00C94406B0E94AA1425
:10C66000109274040C943E6B842F90E081319105FC
:10C6700010F00C94436BFC01EF57FF4F0C94249B7C
:10C6800080E00E94A51487E995E09F938F938091A5
:10C6900052011F928F938AE597E09F938F938BE8C7
:10C6A00094E194CA85E10E94A5148091530125EA82
:10C6B00035E03F932F936AE00E94B39A1F929F93B5
:10C6C0001F928F9389E497E09F938F938BE794E178
:10C6D0009F938F9393C18AE20E94A51484E497E00C
:10C6E0009F938F930BE714E11F930F93E0915506EF
:10C6F000F09156060995809139060F900F900F9092
:10C700000F90E0915506F091560680FF35C090914C
:10C7100028058091DF0391FD05C01F928F938AE366
:10C7200097E0DFC0833318F083E397E002C08CE228
:10C7300097E09F938F931F930F9309950F900F90FE
:10C740000F900F9090911D06E0915506F0915606BE
:10C750008091DF0390FF05C01F928F9386E297E0E0
:10C7600004C01F928F9380E297E09F938F938BE793
:10C7700094E19F938F9369CB87E197E0B9C08FE3F2
:10C780000E94A51483E197E09F938F930BE714E138
:10C790001F930F93E0915506F091560609950F905F
:10C7A0000F900F900F9080917F05E0915506F091CA
:10C7B0005606811103C08AE097E09AC08091D603A3
:10C7C000882319F083E097E002C08CEF96E09F93F6
:10C7D0008F931F930F9309950F900F900F900F90C9
:10C7E0008091950586FF54C785EF96E06EC584E578
:10C7F0000E94A51480EF96E09F938F930BE714E1BE
:10C800001F930F93E0915506F0915606099580917C
:10C8100039060F900F900F900F9085FD0BC087EE9B
:10C8200096E09F938F931F930F93E0915506F0919D
:10C8300056061FC080916C050E94FA30E0915506A3
:10C84000F0915606823318F480EE96E00EC0843BD9
:10C8500018F089ED96E009C08091950585FF03C029
:10C8600082ED96E002C08BEC96E09F938F931F932E
:10C870000F9309950F900F900F900F908091830563
:10C88000882309F405C78EE50E94A51480918305CD
:10C890001F928F9380EC96E09F938F938BE794E1A8
:10C8A000CECA89E60E94A51486EB96E09F938F93EB
:10C8B0000BE714E11F930F93E0915506F091560694
:10C8C0000995809182050F900F900F900F90E09145
:10C8D0005506F0915606882349F01F928F9382EBFC
:10C8E00096E09F938F931F930F93AFCA8CEA96E0C5
:10C8F0009F938F931F930F93F2C4809170048111C3
:10C900004CC08EE70E94A514E0911D05F0E0EE0FEB
:10C91000FF1FE25FF74F20813181E0911C05F0E0BD
:10C92000EE0FFF1FE25FF74F8081918140912F0151
:10C930001F924F933F932F939F938F9388E996E095
:10C940009F938F930BE714E11F930F93E09155068C
:10C95000F0915606099583E90E94A514E0911F0500
:10C96000F0E0EE0FFF1FE25FF74F20813181E09191
:10C970001E05F0E0EE0FFF1FE25FF74F808191810F
:10C980003F932F9381589F4F9F938F9389E896E011
:10C990009F938F931F930F931BC98EE70E94A5143B
:10C9A000809105041F928F93809104041F928F93AE
:10C9B000809103041F928F9385E796E09F938F9356
:10C9C0000BE714E11F930F93E0915506F091560683
:10C9D000099583E90E94A514809108041F928F9302
:10C9E000809107041F928F93809106041F928F936A
:10C9F00081E696E09F938F931F930F93E0915506E6
:10CA0000F09156060995E9C88091ED02882309F452
:10CA10003FC68EE70E94A5148091390686FD11C09D
:10CA200082E596E09F938F938CE994E19F938F9397
:10CA3000E0915506F091560609950F900F900F90D2
:10CA40000F90809193058F7089F088E496E09F9312
:10CA50008F938CE994E19F938F93E0915506F09129
:10CA6000560609950F900F900F900F908091390600
:10CA700082FF11C083E496E09F938F938CE994E149
:10CA80009F938F93E0915506F091560609950F906C
:10CA90000F900F900F908091390683FDF9C585E3C3
:10CAA00096E09F938F938CE994E113C41091860CC8
:10CAB000163089F480917004882319F01092700464
:10CAC00003C081E08093700486E00E94ED5787E008
:10CAD0000E94ED57D5C5183021F40E94AA1483E0B6
:10CAE000CBC5113009F0CCC50E94AA141093740470
:10CAF000C5C54230C1F128F4442339F04130D9F0A2
:10CB0000C2C5463008F46BC0BEC580E00E94A514C3
:10CB100086E296E09F938F930BE714E11F930F93A8
:10CB2000E0915506F0915606099585E10E94A514FD
:10CB300081E196E04DC180918A04882371F08EE7EF
:10CB40000E94A51480918A041F928F9380918B0478
:10CB50001F928F938FEF95E035C88EE70E94A51442
:10CB60008CEE95E0B2C383E90E94A51480911A016E
:10CB700090911B01E0911A01F0911B012AE030E035
:10CB8000B9010E94D39A9F938F93CF01B9010E945C
:10CB9000D39A7F936F9382EE95E09F938F930BE7E9
:10CBA00014E11F930F93E0915506F09156060995F5
:10CBB0008EE90E94A5148FEA96E09F938F938FEDE4
:10CBC00095E09F938F931F930F93E0915506F091FB
:10CBD000560609950FB6F894DEBF0FBECDBF809103
:10CBE00056018823E9F180916F048823C9F0809170
:10CBF000ED028823A9F089E40E94A5148BED95E04D
:10CC00009F938F938BE794E19F938F93E0915506C9
:10CC1000F091560609950F900F900F900F901AC043
:10CC200089E40E94A514809156011F928F9384ED90
:10CC300095E09F938F938BE794E19F938F93E0917F
:10CC40005506F091560609950F900F900F900F9092
:10CC50000F900F908FE30E94A51489EC95E005C01A
:10CC60008FE30E94A5148AEB95E09F938F938BE747
:10CC700094E19F938F93E0915506F09156060995A4
:10CC80000F900F900F900F9080918704811106C034
:10CC900084E50E94A5148CEA95E039C08091B6081D
:10CCA000833081F580916F04882351F08091560183
:10CCB000882331F084E50E94A5148EE995E005C033
:10CCC00084E50E94A51480E995E09F938F938BE7FC
:10CCD00094E19F938F93E0915506F0915606099544
:10CCE0000F900F900F900F908091860C8630F1F48A
:10CCF00080915601882319F08068809388041092EF
:10CD00006F0414C084E50E94A51482E895E09F9307
:10CD10008F938BE794E19F938F93E0915506F09169
:10CD2000560609950F900F900F900F908091860CEA
:10CD3000843059F480915601909187048917E8F462
:10CD400091E090936F048F5F0AC0823069F4809104
:10CD50005601823090F091E090936F04815080935F
:10CD600056011092ED0209C0883039F40E94AA14CD
:10CD700084E080937404109273048091860C813057
:10CD800009F07EC40E94AA1482E076C4423009F4FD
:10CD900043C028F4442339F0413029F174C44630AB
:10CDA00008F476C070C480E00E94A51483E795E083
:10CDB0009F938F930BE714E11F930F93E091550618
:10CDC000F0915606099585E10E94A51481E695E04B
:10CDD0009F938F931F930F93E0915506F091560602
:10CDE00009950C94ED5D80918A04882379F08EE793
:10CDF0000E94A51480918A041F928F9380918B04C6
:10CE00001F928F938FE495E00C94E25D8EE70E9471
:10CE1000A5148DE395E059C283E90E94A514809181
:10CE20001A0190911B01E0911A01F0911B012AE077
:10CE300030E0B9010E94D39A9F938F93CF01B9013B
:10CE40000E94D39A7F936F9383E395E09F938F9390
:10CE50000BE714E11F930F93E0915506F0915606EE
:10CE600009958EE90E94A5148FEA96E09F938F930F
:10CE700080E395E09F938F931F930F93E091550666
:10CE8000F091560609950FB6F894DEBF0FBECDBFE0
:10CE90008FE30E94A51485E295E09F938F930BE7A3
:10CEA00014E11F930F93E0915506F09156060995F2
:10CEB0000F900F900F900F9080915501882349F1AA
:10CEC00080916E04882351F08091ED02882331F027
:10CED00089E40E94A51481E295E020C089E40E94C3
:10CEE000A514809155011F928F9387E195E09F9340
:10CEF0008F938BE794E19F938F93E0915506F09188
:10CF0000560609950F900F900F900F900F900F906D
:10CF100012C089E40E94A51483E195E09F938F934A
:10CF20001F930F93E0915506F091560609950F90C7
:10CF30000F900F900F9080918704811106C084E5B7
:10CF40000E94A51485E095E013C080916E048823AB
:10CF500051F080915501882331F084E50E94A51499
:10CF600087EF94E005C084E50E94A51489EE94E063
:10CF70009F938F938BE794E19F938F93E091550656
:10CF8000F091560609950F900F900F900F90809199
:10CF9000860C843061F48091550190918704891743
:10CFA00008F07EC191E090936E048F5F0BC08230D9
:10CFB00061F480915501823008F472C191E0909340
:10CFC0006E048150809355015DC1863009F05DC1CA
:10CFD0008091550181118093880410926E0460C184
:10CFE000423009F44EC008F042C0442309F443C063
:10CFF000413009F048C38AE20E94A51480911A01C9
:10D0000090911B01E0911A01F0911B012AE030E0A0
:10D01000B9010E94D39A9F938F93CF01B9010E94C7
:10D02000D39A7F936F9388EC94E09F938F930BE751
:10D0300014E11F930F93E0915506F0915606099560
:10D040008FE30E94A51480915C0490915D046CE3D1
:10D0500070E00E94BF9A9F938F937F936F938DEBA5
:10D0600094E09F938F931F930F930C94E85D463049
:10D0700008F44CC008C380E00E94A51483ED94E03E
:10D0800024C185E30E94A5146091FC037091FD0307
:10D090008091FE039091FF0324E630E040E050E0F1
:10D0A0000E94089B3F932F9384EB94E09F938F9370
:10D0B0000BE714E11F930F93E0915506F09156068C
:10D0C00009958AE40E94A5141F9280E68F938091AF
:10D0D00043068F93809142068F9389EA94E09F9351
:10D0E0008F931F930F93E0915506F0915606099583
:10D0F0008FE50E94A51480912F011F928F9380EAE3
:10D1000094E09F938F931F930F93D8C18EE70E9453
:10D11000A51483E994E09F938F930BE714E11F9389
:10D120000F93E0915506F091560609950F900F90D8
:10D130000F900F9080916D04882349F180916C04C9
:10D14000882351F08091ED02882331F08BE80E9412
:10D15000A5148FE894E020C08BE80E94A51480916C
:10D160006D041F928F938AE894E09F938F938BE7CF
:10D1700094E19F938F93E0915506F091560609959F
:10D180000F900F900F900F900F900F9012C08BE8A0
:10D190000E94A51487E894E09F938F931F930F93A9
:10D1A000E0915506F091560609950F900F900F905B
:10D1B0000F908091B6088330B1F58091870481117A
:10D1C00006C083E90E94A51489E794E00DC0809110
:10D1D0006C048823C9F080916D048823A9F083E949
:10D1E0000E94A5148AE694E09F938F938BE794E1C5
:10D1F0009F938F93E0915506F091560609950F90F5
:10D200000F900F900F9003C087E00E94ED57809120
:10D21000860C8630E1F480916D0481118093850441
:10D2200010926C0414C083E90E94A5148CE594E06C
:10D230009F938F938BE794E19F938F93E091550693
:10D24000F091560609950F900F900F900F908091D6
:10D25000860C843059F480916D049091870489176D
:10D26000F8F491E090936C048F5F0AC0823069F407
:10D2700080916D048230A0F091E090936C04815015
:10D2800080936D041092ED020BC0883049F40E9427
:10D29000AA14809174048F5F8093740410927304B5
:10D2A0008091860CE2C1423009F481C028F4442305
:10D2B00039F04130D1F0E7C1463008F406C1E3C18E
:10D2C00080E00E94A51487E494E09F938F938BE7FE
:10D2D00094E19F938F93E0915506F091560609953E
:10D2E0000F900F900F900F90D3C18AE20E94A51467
:10D2F00080911A0190911B01E0911A01F0911B019C
:10D300002AE030E0B9010E94D39A9F938F93CF0116
:10D31000B9010E94D39A7F936F938CE394E09F931B
:10D320008F930BE714E11F930F93E0915506F09153
:10D33000560609958FE30E94A51480915C04909194
:10D340005D046CE370E00E94BF9A9F938F937F937C
:10D350006F9381E394E09F938F931F930F93E091DA
:10D360005506F091560609950FB6F894DEBF0FBE2C
:10D37000CDBF80918A04882311F40C94045F89E660
:10D380000E94A514809184048F93809183048F93CD
:10D3900080918A041F928F9380918B041F928F93A8
:10D3A0008CE194E09F938F931F930F9327CB8091F1
:10D3B000F1038823B9F182E30E94A5146091F2037E
:10D3C0007091F3038091F4039091F503B4E6CB2EB2
:10D3D000D12CE12CF12CA70196010E94089B3F93D0
:10D3E0002F936091FC037091FD038091FE03909157
:10D3F000FF03A70196010E94089B3F932F938FE0A4
:10D4000094E09F938F938BE794E19F938F93E091A8
:10D410005506F091560609950FB6F894DEBF0FBE7B
:10D42000CDBF26C082E30E94A5146091FC037091D9
:10D43000FD038091FE039091FF0324E630E040E07D
:10D4400050E00E94089B3F932F9382E094E09F93CB
:10D450008F938BE794E19F938F93E0915506F09122
:10D46000560609950F900F900F900F900F900F9008
:10D4700087E40E94A5141F9280E68F938091430653
:10D480008F93809142068F9387EF93E09F938F93C2
:10D490000BE714E11F930F93E0915506F0915606A8
:10D4A00009958CE50E94A51480912F011F928F93FE
:10D4B0008EEE93E09F938F931F930F93E091550609
:10D4C000F091560609950C94ED5D8091860C8823A9
:10D4D00049F08091470C9091480C01969093480C2C
:10D4E0008093470C8EE70E94A51482EE93E09F93F1
:10D4F0008F930BE714E11F930F93E0915506F09182
:10D50000560609950F900F900F900F9080916B0425
:10D51000882349F180916A04882351F08091ED02BB
:10D52000882331F089E80E94A5148EED93E020C095
:10D5300089E80E94A51480916B041F928F938AED55
:10D5400093E09F938F938BE794E19F938F93E09168
:10D550005506F091560609950F900F900F900F9079
:10D560000F900F9012C089E80E94A51487ED93E0F8
:10D570009F938F931F930F93E0915506F09156065A
:10D5800009950F900F900F900F9080918704811153
:10D5900006C083E90E94A51489EC93E00DC0809138
:10D5A0006A048823C9F080916B048823A9F083E979
:10D5B0000E94A5148BEB93E09F938F938BE794E1EC
:10D5C0009F938F93E0915506F091560609950F9021
:10D5D0000F900F900F9021C087E00E94ED5780912F
:10D5E0008A048823D1F083E90E94A5148FEA96E08B
:10D5F0009F938F9388EB93E09F938F938BE794E1B6
:10D600009F938F93E0915506F091560609950F90E0
:10D610000F900F900F900F900F908091860C843098
:10D6200059F480916B0490918704891748F591E033
:10D6300090936A048F5F0AC0823069F480916B0412
:10D640008230F0F091E090936A04815080936B04F3
:10D650001092ED0215C0863041F480916B04811167
:10D660008093860410926A040BC0813049F40E94B2
:10D67000AA148091740481508093740410927304EE
:10D680001092860C05C01092730402C010927404AC
:10D690000F900F900F900F90DF91CF911F910F91EE
:10D6A000FF90EF90DF90CF90BF90AF909F908F90C2
:10D6B0007F906F905F904F903F902F900895CF9301
:10D6C000DF9380E00E94EB0E8091A8091F928F9358
:10D6D000809199091F928F9380918A091F928F934D
:10D6E00080917B091F928F938CE69FE09F938F938D
:10D6F000CEEDDEE0DF93CF93E0915506F091560634
:10D70000099580E10E94EB0E8091E4091F928F93AE
:10D710008091D5091F928F938091C6091F928F9394
:10D720008091B7091F928F938CE59FE09F938F9311
:10D73000DF93CF93E0915506F091560609958091BD
:10D740001A052DB73EB7285E3F4F0FB6F8943EBF7F
:10D750000FBE2DBF853098F480E10E94EB0E8BE464
:10D760009FE09F938F93DF93CF93E0915506F091C5
:10D77000560609950F900F900F900F9019C08730A3
:10D78000B8F488E10E94EB0E1F928FED8F9382E434
:10D790009FE09F938F93DF93CF93E0915506F09195
:10D7A000560609950F900F900F900F900F900F90C5
:10D7B000DF91CF910895CF93DF9380E00E94EB0E2D
:10D7C0008091130590911405C0911A01D0911B010D
:10D7D000E0911A01F0911B012AE030E0B9010E94AA
:10D7E000BF9A9F938F937F936F93CE01B9010E944D
:10D7F000D39A9F938F93CF01B9010E94D39A7F93BD
:10D800006F9380E39FE09F938F93CEEDDEE0DF93F5
:10D81000CF93E0915506F0915606099580E10E945C
:10D82000EB0EE7E1F5E081818F9380818F93E5E155
:10D83000F5E081818F9380818F9384E29FE09F93B5
:10D840008F93DF93CF93E0915506F091560609959B
:10D850008DB79EB744960FB6F8949EBF0FBE8DBF8E
:10D86000DF91CF9108951F93CF93DF9380E00E94C3
:10D87000EB0E1F921FED1F9380914F018F938091AC
:10D880004E018F938091B8041F928F9381E19FE0A6
:10D890009F938F93CEEDDEE0DF93CF93E09155061B
:10D8A000F0915606099580E10E94EB0E8091B60436
:10D8B0001F928F931F921F938091B7041F928F9393
:10D8C0008EEF9EE09F938F93DF93CF93E091550669
:10D8D000F091560609958DB79EB744960FB6F89409
:10D8E0009EBF0FBE8DBFDF91CF911F910895CF9343
:10D8F000DF9380E00E94EB0E8FEE9EE09F938F936C
:10D90000CEEDDEE0DF93CF93E0915506F091560621
:10D91000099580E10E94EB0E81EE9EE09F938F932C
:10D92000DF93CF93E0915506F091560609958DB798
:10D930009EB708960FB6F8949EBF0FBE8DBFDF91BD
:10D94000CF910895CF93DF9380E00E94EB0E82ED9C
:10D950009EE09F938F93CEEDDEE0DF93CF93E09137
:10D960005506F0915606099580E10E94EB0E84EC75
:10D970009EE09F938F93DF93CF93E0915506F091B4
:10D98000560609958DB79EB708960FB6F8949EBFB8
:10D990000FBE8DBFDF91CF91089580E00E94EB0E06
:10D9A00083EB9EE09F938F938EED9EE09F938F93EA
:10D9B000E0915506F091560609950F900F900F9043
:10D9C0000F90089580E00E94EB0E82EA9EE09F9304
:10D9D0008F938EED9EE09F938F93E0915506F0918B
:10D9E000560609950F900F900F900F9008951F9372
:10D9F000CF93DF93182FCFEAD6E08091AF06811145
:10DA000014C00E94EB0E87ED9DE09F938F938EEDE7
:10DA10009EE09F938F93E0915506F09156060995ED
:10DA20000F900F900F900F9018C080E00E94EB0EA7
:10DA3000DF93CF9380ED9DE09F938F938EED9EE0DB
:10DA40009F938F93E0915506F091560609950F909C
:10DA50000F900F900F900F900F908091870481117D
:10DA600006C080E10E94EB0E85EC9DE009C080912C
:10DA7000B6088330A9F080E10E94EB0E8AEB9DE0AE
:10DA80009F938F938EED9EE09F938F93E091550629
:10DA9000F091560609950F900F900F900F908FC040
:10DAA00080E10E94EB0E809159011F928F9380EBD1
:10DAB0009DE09F938F93CEEDDEE0DF93CF93E091D7
:10DAC0005506F091560609950F900F900F900F9004
:10DAD0000F900F9080918A048823F9F088E10E94CA
:10DAE000EB0E80918A041F928F9380918B041F927A
:10DAF0008F9328EA3DE03F932F93DF93CF93E091FC
:10DB00005506F091560609958DB79EB708960FB643
:10DB1000F8949EBF0FBE8DBF12C088E10E94EB0E2D
:10DB200022EA3DE03F932F93DF93CF93E091550698
:10DB3000F091560609950F900F900F900F908091DD
:10DB40008F04882331F08EE10E94EB0E2FE93DE037
:10DB500005C08EE10E94EB0E2CE93DE03F932F9330
:10DB60002EED3EE03F932F93E0915506F09156063F
:10DB700009950F900F900F900F901F3241F48091F4
:10DB80005901909187048917D0F48F5F07C01F3423
:10DB900059F480915901823090F08150809359015D
:10DBA00081E080938F040BC01F3149F480915901AB
:10DBB000882329F080688093880410928F04DF9175
:10DBC000CF911F9108950F931F93CF93DF9380E020
:10DBD0000E94EB0E80911A0190911B0120911A0175
:10DBE00030911B010AE010E0B8010E94D39A9F9384
:10DBF0008F93C901B8010E94D39A7F936F9386EDEA
:10DC00009FE09F938F93CEEDDEE0DF93CF93E09183
:10DC10005506F091560609958DB79EB708960FB632
:10DC2000F8949EBF0FBE8DBF8091A402882369F136
:10DC300086E00E94EB0E809196021F928F93809156
:10DC4000B8089091B908B8010E94BF9A7F936F936A
:10DC50001F928FED8F93809143068F9380914206A0
:10DC60008F9389EC9FE09F938F93DF93CF93E09105
:10DC70005506F091560609958DB79EB70C960FB6CE
:10DC8000F8949EBF0FBE8DBF12C086E00E94EB0EBF
:10DC90008EEB9FE09F938F93DF93CF93E091550698
:10DCA000F091560609950F900F900F900F9080916C
:10DCB000B904882309F447C0809193049091940497
:10DCC0000E944F88882391F080915D01882319F08C
:10DCD00010925D0103C081E080935D018CED95E0C1
:10DCE0000E944688909394048093930480915D01F0
:10DCF000882371F080E00E94EB0E1F921F928091AA
:10DD0000B90431E1839FC00111248A56954F09C09F
:10DD100086E00E94EB0E8091B9041F928F9382EBF4
:10DD20009FE09F938F938EED9EE09F938F93E09162
:10DD30005506F091560609950F900F900F900F9091
:10DD40000F900F904EC08091B50484FF15C086E0FF
:10DD50000E94EB0E87EA9FE09F938F938EED9EE0EB
:10DD60009F938F93E0915506F091560609950F9079
:10DD70000F900F900F9035C080917E04882389F119
:10DD80000E94F10E80E00E94EB0E87E995E09F93E0
:10DD90008F93809152011F928F938EE99FE09F9302
:10DDA0008F93CEEDDEE0DF93CF93E0915506F091B7
:10DDB000560609958091C7032DB73EB7285F3F4FA0
:10DDC0000FB6F8943EBF0FBE2DBF81FF7CC080E12F
:10DDD0000E94EB0E82E99FE09F938F93DF938C2F3D
:10DDE00068C080E10E94EB0E80915C0490915D041C
:10DDF0006CE370E00E94BF9A9F938F937F936F9321
:10DE0000809118058F93809117058F9385E89FE087
:10DE10009F938F93CEEDDEE0DF93CF93E091550695
:10DE2000F09156060995809139062DB73EB7265FC9
:10DE30003F4F0FB6F8943EBF0FBE2DBF80FF2BC0E3
:10DE40008AE10E94EB0E809120011F928F936091D6
:10DE5000FC037091FD038091FE039091FF0324E683
:10DE600030E040E050E00E94089B3F932F938EE704
:10DE70009FE09F938F93DF93CF93E0915506F091AE
:10DE8000560609952DB73EB7285F3F4F0FB6F89459
:10DE90003EBF0FBE2DBF8091C70380FF14C08AE133
:10DEA0000E94EB0E8CE79FE09F938F938EED9EE098
:10DEB0009F938F93E0915506F091560609950F9028
:10DEC0000F900F900F90DF91CF911F910F910895B8
:10DED0001F93CF93DF93182F80E00E94EB0E26E96B
:10DEE0003EE03F932F93CEEDDEE0DF93CF93E091C2
:10DEF0005506F091560609950F900F900F900F90D0
:10DF000080918704811106C080E10E94EB0E8BE8AE
:10DF10009EE009C08091B608833099F080E10E94AC
:10DF2000EB0E80E89EE09F938F93DF93CF93E09179
:10DF30005506F091560609950F900F900F900F908F
:10DF40007BC08BE00E94EB0E80915C011F928F934F
:10DF50002CE73EE03F932F93DF93CF93E09155065C
:10DF6000F0915606099580E10E94EB0E6091FC034A
:10DF70007091FD038091FE039091FF0324E630E051
:10DF800040E050E00E94089B3F932F93809143060E
:10DF90008F93809142068F932BE63EE03F932F9321
:10DFA000DF93CF93E0915506F091560609958DB712
:10DFB0009EB70E960FB6F8949EBF0FBE8DBF809190
:10DFC0009204882331F08EE00E94EB0E28E63EE0BA
:10DFD00005C08EE00E94EB0E25E63EE03F932F93B6
:10DFE000DF93CF93E0915506F091560609950F9077
:10DFF0000F900F900F901F3241F480915C0190912F
:10E0000087048917C8F48F5F07C01F3459F48091C3
:10E010005C01823088F0815080935C0181E08093C4
:10E0200092040AC01F3141F480915C01882321F0E1
:10E030008093850410929204DF91CF911F910895EF
:10E040001F93CF93DF93182F80E00E94EB0E8AE599
:10E050009EE09F938F93CEEDDEE0DF93CF93E09130
:10E060005506F091560609950F900F900F900F905E
:10E0700080918704811113C080E10E94EB0E8FE430
:10E080009EE09F938F93DF93CF93E0915506F0919D
:10E09000560609950F900F900F900F909AC08BE045
:10E0A0000E94EB0E80915B011F928F938BE49EE0A8
:10E0B0009F938F93DF93CF93E0915506F09156068F
:10E0C00009950F900F900F900F900F900F908091E7
:10E0D0008A04882369F180E10E94EB0E6091F203CB
:10E0E0007091F3038091F4039091F50324E630E0FE
:10E0F00040E050E00E94089B3F932F93809184045E
:10E100008F93809183048F9389E39EE09F938F93F5
:10E11000DF93CF93E0915506F091560609958DB7A0
:10E120009EB708960FB6F8949EBF0FBE8DBF12C063
:10E1300088E10E94EB0E28E23EE03F932F93DF93AD
:10E14000CF93E0915506F091560609950F900F90E8
:10E150000F900F9080919104882331F08EE00E94FF
:10E16000EB0E25E23EE005C08EE00E94EB0E22E2BF
:10E170003EE03F932F932EED3EE03F932F93E091AF
:10E180005506F091560609950F900F900F900F903D
:10E190001F3241F480915B01909187048917C8F484
:10E1A0008F5F07C01F3459F480915B01823088F083
:10E1B000815080935B0181E0809391040AC01F31FC
:10E1C00041F480915B01882321F0809386041092B2
:10E1D0009104DF91CF911F9108951F93CF93DF9307
:10E1E000182FCFEAD6E08091AF06811114C00E94AB
:10E1F000EB0E84E19EE09F938F938EED9EE09F93C4
:10E200008F93E0915506F091560609950F900F9067
:10E210000F900F9018C080E00E94EB0EDF93CF9319
:10E220008DE09EE09F938F938EED9EE09F938F9362
:10E23000E0915506F091560609950F900F900F90BA
:10E240000F900F900F9080918704811115C080E18D
:10E250000E94EB0E82E09EE09F938F938EED9EE0F6
:10E260009F938F93E0915506F091560609950F9074
:10E270000F900F900F908EC080E10E94EB0E809166
:10E280005A011F928F9389EF9DE09F938F93CEED5C
:10E29000DEE0DF93CF93E0915506F09156060995A5
:10E2A0000F900F900F900F900F900F9080918A0415
:10E2B0008823F9F088E10E94EB0E80918A041F9276
:10E2C0008F9380918B041F928F9321EF3DE03F93BA
:10E2D0002F93DF93CF93E0915506F0915606099561
:10E2E0008DB79EB708960FB6F8949EBF0FBE8DBF30
:10E2F00012C088E10E94EB0E2BEE3DE03F932F937E
:10E30000DF93CF93E0915506F091560609950F9053
:10E310000F900F900F9080919004882331F08EE140
:10E320000E94EB0E28EE3DE005C08EE10E94EB0E50
:10E3300025EE3DE03F932F932EED3EE03F932F934C
:10E34000E0915506F091560609950F900F900F90A9
:10E350000F901F3241F480915A01909187048917E0
:10E36000C8F48F5F07C01F3459F480915A0182307E
:10E3700088F0815080935A0181E0809390040AC014
:10E380001F3141F480915A01882321F08093880441
:10E3900010929004DF91CF911F910895CF93DF9356
:10E3A0008091A402882309F484C080E00E94EB0ECF
:10E3B0008091B5081F928F938091B7081F928F9319
:10E3C0008DE89DE09F938F93CEEDDEE0DF93CF93BA
:10E3D000E0915506F091560609958DB79EB70896BF
:10E3E0000FB6F8949EBF0FBE8DBF8091B6088330E4
:10E3F00031F48CE00E94EB0E88E89DE005C08CE0D3
:10E400000E94EB0E83E89DE09F938F93DF93CF9361
:10E41000E0915506F091560609950F900F900F90D8
:10E420000F908091B40881FF14C08CE00E94EB0E25
:10E430008EE79DE09F938F938EED9EE09F938F9349
:10E44000E0915506F091560609950F900F900F90A8
:10E450000F9080E10E94EB0E809196021F928F93A5
:10E460001F928FED8F938091BB088F938091BA0894
:10E470008F938091B8089091B9086AE070E00E948B
:10E48000BF9A7F936F938BE69DE09F938F938EED62
:10E490009EE09F938F93E0915506F0915606099563
:10E4A0008DB79EB70C960FB6F8949EBF0FBE8DBF6A
:10E4B00014C082E00E94EB0E8EE59DE09F938F9347
:10E4C0008EED9EE09F938F93E0915506F091560656
:10E4D00009950F900F900F900F90DF91CF910895B5
:10E4E000CF93DF931F92CDB7DEB790918E049093B8
:10E4F0008D048F32A9F048F48F3111F526E0929FF8
:10E50000F0011124E052F04F18C08F3481F08F38A1
:10E51000B9F426E0929FF0011124E152F04F0DC0B2
:10E5200026E0929FF0011124EF51F04F06C026E043
:10E53000929FF0011124EE51F04FE491E0938E048C
:10E5400020918E04291380E09091580121E0290F39
:10E550002093580190FD02C08F3091F080938C047D
:10E5600089830E94F10EE0918E0496E0E99FF0010C
:10E570001124ED51F04F259134918981F9010995CC
:10E5800080E00F90DF91CF91089540915403509116
:10E5900055032091950430919604C901880F991F65
:10E5A000820F931F840F951F97FD0396959587956E
:10E5B00095958795909396048093950420912001DA
:10E5C0002B32A1F440912D052091F6033091F703F1
:10E5D000429FC001439F900D112497FD4F9645E047
:10E5E000959587954A95E1F7059635C02D32A1F4AA
:10E5F00040912D052091F6033091F703429FC00111
:10E60000439F900D112497FD4F9635E09595879582
:10E610003A95E1F705971FC0203261F42091C903B4
:10E6200021FF17C097FD4F9625E0959587952A9570
:10E63000E1F711C02E3521F48091F10390E00BC079
:10E64000263739F48091F10390E0919581959109F5
:10E6500002C080E090E0AA2797FDA095BA2F809392
:10E66000500290935102A0935202B0935302089526
:10E67000CF93DF930E94B25780911A0190911B01B2
:10E68000AA2797FDA095BA2F80937F0190938001D0
:10E69000A0938101B093820180911305909114059C
:10E6A000A0E0B0E08093920190939301A093940135
:10E6B000B09395018091170590911805CAE0D0E0BC
:10E6C000BE010E94BF9ACB01A0E0B0E08093A501FB
:10E6D0009093A601A093A701B093A8016091FC03B9
:10E6E0007091FD038091FE039091FF0324E630E0DA
:10E6F00040E050E00E94089B2093B8013093B9019C
:10E700004093BA015093BB0180914E0190914F010B
:10E71000AA2797FDA095BA2F8093CB019093CC01A7
:10E72000A093CD01B093CE018091B50890E0A0E018
:10E73000B0E08093DE019093DF01A093E001B093FD
:10E74000E1018091B70890E0A0E0B0E08093F10192
:10E750009093F201A093F301B093F4018091B80873
:10E760009091B908BE010E94BF9ACB01A0E0B0E031
:10E770008093040290930502A0930602B0930702CF
:10E780008091BA089091BB08AA2797FDA095BA2F4F
:10E790008093170290931802A0931902B0931A0263
:10E7A0008091820490E0A0E0B0E080932A029093F0
:10E7B0002B02A0932C02B0932D028091B80490E01C
:10E7C000A0E0B0E080933D0290933E02A0933F0210
:10E7D000B09340028091B90490E0A0E0B0E0809353
:10E7E000630290936402A0936502B0936602DF9186
:10E7F000CF91089587B18C6087B942984398109261
:10E800009F0480E880938F0210929E0480938E0272
:10E8100008959091BB04911190939C0480919B0466
:10E820002FEF280F20939B04811141C18091650532
:10E8300080939A04809167058093990489E080937E
:10E840009B048091C903807321F48091400A80FF6A
:10E850001DC080916905882351F080919804811131
:10E8600003C084E080939F0481E0809398048091AA
:10E870006A05882379F080919704811103C084E0B0
:10E8800080939E0481E08093970404C010929804C2
:10E89000109297048091980481117BC08091930518
:10E8A00084FF07C020910104211103C085FF8DC0A2
:10E8B0008AC080916605883FB0F0809118068D3D32
:10E8C00028F080919A0487FF07C008C0853059F46A
:10E8D00080919A0487FF02C0429A01C0429881E069
:10E8E00080938F0253C080919F042FEF280F2093B5
:10E8F0009F0481116BC02091960580919A0425FF99
:10E900002EC020919C04322F369530939F04211104
:10E910000AC010929D0487FF02C0429A01C042982B
:10E9200010928F0253C021E020939D0420918F020A
:10E9300021110AC090939C041092BB0490E4909320
:10E940008F0287FF42C03FC0822311F0429A01C06C
:10E95000429880918F02869580938F0237C0909164
:10E960001806969590939F0490918F02913021F410
:10E9700010929C0490E401C0969590938F02909120
:10E980008F02982311F0429A01C0429810929D0480
:10E990001DC080919F049FEF980F90939F04811159
:10E9A00015C089E080939F0480918F02813011F41B
:10E9B00080E801C0869580938F02809169059091CF
:10E9C0008F02892311F0429A01C0429880919704E6
:10E9D00081113EC08091930587FF07C0909101048B
:10E9E000911103C086FF50C04DC080916805883FDB
:10E9F000B0F0809140068D3D28F08091990487FF0A
:10EA000007C008C0853059F48091990487FF02C07F
:10EA1000439A01C0439881E080938E0236C0809172
:10EA20009E049FEF980F90939E0481112EC08091B9
:10EA30004006869580939E0480918E02813011F469
:10EA400080E401C0869580938E028091990416C05F
:10EA500080919E049FEF980F90939E04811115C0A2
:10EA600089E080939E0480918E02813011F480E8C9
:10EA700001C0869580938E0280916A0590918E02E6
:10EA8000892311F0439A01C04398429B05C08091AD
:10EA9000C80388608093C803439B04C08091C80367
:10EAA000806103C08091C8038F7E8093C80308955E
:10EAB000E091A204E03540F491E09E0F9093A2040F
:10EAC000F0E0E354F84F80830895EDEBF7E080E247
:10EAD000819398E0ED30F907D9F708954F925F924E
:10EAE0006F927F928F929F92AF92BF92CF92DF925E
:10EAF000EF92FF920F931F93CF93DF931F92CDB7A7
:10EB0000DEB78091A00480FF0AC09091A1049923F0
:10EB100011F0915002C0909190029093A10481FF56
:10EB20000CC09091A10420919002921303C0109206
:10EB3000A10403C09F5F9093A1048370833011F4FC
:10EB40001092A104C2DF8091A104E0915506F091DA
:10EB500056068A3040F491E19093A2041F928F935D
:10EB600080E894E107C090E19093A2041F928F93F4
:10EB70008BE794E19F938F9388E595E79F938F931D
:10EB800009950F900F900F900F900F900F9020917C
:10EB9000A104822F90E08431910508F0E1C7FC01C7
:10EBA000EE56FF4F00915506109156060C94249B8B
:10EBB0001092A2048BE694E19F938F93B8E5EB2E1D
:10EBC000B5E7FB2EFF92EF92F801099584E180935F
:10EBD000A204809154011F9291E69F931F9298E0A6
:10EBE0009F931F9292E09F936AE00E94B39A1F92B4
:10EBF0009F931F928F9383E594E19F938F93FF924E
:10EC0000EF92E0915506F0915606099588E28093BF
:10EC1000A20485EA95E09F938F93809152011F9201
:10EC20008F9389E494E19F938F93FF92EF92E09109
:10EC30005506F091560609958091C7030FB6F894D2
:10EC4000DEBF0FBECDBF81FF12C088E38093A20458
:10EC500084E494E19F938F93FF92EF92E0915506A5
:10EC6000F091560609950F900F900F900F9080919C
:10EC7000400A84FF06C08CE38093A20487E394E1FA
:10EC800048C08091B904882309F19CE39093A204C1
:10EC90001F928F938FE294E19F938F9308E515E77E
:10ECA0001F930F93E0915506F091560609951F9218
:10ECB0001F928091B90431E1839FC00111248A56CB
:10ECC000954F9F938F931F930F9337C180913F0A66
:10ECD000882341F09CE39093A2041F928F9388E1D4
:10ECE00094E133C08091DD04882341F09CE390934C
:10ECF000A2041F928F9382E094E127C08091B0021A
:10ED00009091B1020697A8F48CE38093A20485EF5A
:10ED100093E19F938F9388E595E79F938F93E0917D
:10ED20005506F091560609950F900F900F900F9091
:10ED300020C7809119058E3108F01BC79CE3909382
:10ED4000A2041F928F9381EE93E19F938F9388E5A6
:10ED500095E79F938F93E0915506F091560609959C
:10ED60000F900F900F900F900F900F9002C710927E
:10ED7000A2046091FC037091FD038091FE039091C9
:10ED8000FF03F5E0CF2ED12CE12CF12CA701960149
:10ED90000E94089B3F932F9384ED93E19F938F9361
:10EDA000A8E5AA2EA5E7BA2EBF92AF92F801099561
:10EDB00084E18093A2046091F8037091F90380913B
:10EDC000FA039091FB03A70196010E94089B3F93D1
:10EDD0002F9387EC93E19F938F93BF92AF92E09133
:10EDE0005506F0915606099588E28093A204809119
:10EDF0001001909111019F938F938AEB93E19F9360
:10EE00008F93BF92AF92E0915506F0915606099507
:10EE10008CE38093A20487B51F928F938DEA93E1D0
:10EE20009F938F93BF92AF92E0915506F091560653
:10EE300009950FB6F894DEBF0FBECDBF8091C00319
:10EE4000882309F496C689E38093A20489EA93E1B2
:10EE50009F938F93BF92AF92E0915506F091560623
:10EE600009958DE48093A20480910C011F928F93E9
:10EE700086EA93E19F938F93BF92AF925EC0109208
:10EE8000A20489E993E19F938F9368E5A62E65E735
:10EE9000B62EBF92AF92F801099584E18093A20447
:10EEA0006091400470914104809142049091430428
:10EEB000C12CE4E0DE2EE12CF12CA70196010E948A
:10EEC000089B5F934F933F932F938AE893E19F931F
:10EED0008F93BF92AF92E0915506F0915606099537
:10EEE00088E28093A20460913C0470913D0480917B
:10EEF0003E0490913F04A70196010E94089B5F93F6
:10EF00004F933F932F938BE793E19F938F93BF9200
:10EF1000AF92E0915506F091560609958CE38093E7
:10EF2000A204809143068F93809142068F938CE6D2
:10EF300093E19F938F93BF92AF92E0915506F0912A
:10EF400056060995DAC0AA24A394B12C44E1D42E24
:10EF50005AE5E52E53E1F52E08E515E78A2D86954D
:10EF60008D9D802D11248093A204C5010196FC0182
:10EF7000EE0FFF1FE25FF74F40815181F501EE0F69
:10EF8000FF1FE25FF74F208131815F934F939F9383
:10EF90008F933F932F93BF92AF92FF92EF921F9365
:10EFA0000F93E0915506F0915606099532E0A30EB5
:10EFB000B11C0FB6F894DEBF0FBECDBF59E0A51649
:10EFC000B10461F6D6C51092A204E0911D05F0E0EF
:10EFD000EE0FFF1FE25FF74F20813181E0911C05AA
:10EFE000F0E0EE0FFF1FE25FF74F808191813F93CA
:10EFF0002F939F938F938AE493E19F938F9328E5B8
:10F00000E22E25E7F22EFF92EF92F801099584E1B6
:10F010008093A204E0911F05F0E0EE0FFF1FE25F76
:10F02000F74F20813181E0911E05F0E0EE0FFF1FC8
:10F03000E25FF74F808191813F932F9381589F4FDB
:10F040009F938F938AE393E19F938F93FF92EF9225
:10F05000E0915506F0915606099588E28093A20446
:10F06000E0912105F0E0EE0FFF1FE25FF74F2081F6
:10F070003181E0912005F0E0EE0FFF1FE25FF74FD6
:10F080008081918121583F4F3F932F9381589F4F0B
:10F090009F938F938AE293E19F938F93FF92EF92D6
:10F0A000E0915506F091560609958CE38093A204F1
:10F0B000E0912305F0E0EE0FFF1FE25FF74F2081A4
:10F0C0003181E0912205F0E0EE0FFF1FE25FF74F84
:10F0D0008081918121583F4F3F932F9381589F4FBB
:10F0E0009F938F938AE193E19F938F93FF92EF9287
:10F0F000E0915506F091560609950FB6F894DEBFDB
:10F100000FBECDBF36C51092A2048CE093E19F9351
:10F110008F9388E595E79F938F93F801099584E194
:10F120008093A20440916503509166033091550489
:10F13000209156042F933F93832F922F97FD07968C
:10F140009C0103E0359527950A95E1F7CA01821BDA
:10F15000930B9F938F938DEF92E19F938F9388E50D
:10F1600095E79F938F93E0915506F0915606099588
:10F1700088E28093A204409163035091640330912C
:10F180005304209154042F933F93832F922F97FD84
:10F1900007969C0113E0359527951A95E1F7CA016A
:10F1A000821B930B9F938F938EEE92E19F938F938D
:10F1B00008E515E71F930F93E0915506F091560669
:10F1C00009958CE38093A20480915104909152049C
:10F1D00020916103309162039F938F93821B930B65
:10F1E0009F938F938FED92E19F938F931F930F9334
:10F1F0007FCF1092A20482ED92E19F938F93B8E5A6
:10F20000EB2EB5E7FB2EFF92EF92F801099584E112
:10F210008093A20480915D0390915E0320914C0441
:10F220002F9320914B042F939F938F9383EC92E124
:10F230009F938F93FF92EF92E0915506F0915606BF
:10F24000099588E28093A20480915F039091600306
:10F2500020914A042F93209149042F939F938F93D9
:10F2600084EB92E19F938F93FF92EF92E09155068A
:10F27000F091560609958CE38093A20480915B037C
:10F2800090915C03209146042F93209145042F9385
:10F290009F938F9385EA92E19F938F93FF92EF92D2
:10F2A00027CF1092A20480911A0190911B01209106
:10F2B0001A0130911B01FAE0EF2EF12CB7010E94E8
:10F2C000D39A9F938F93C901B7010E94D39A7F93DA
:10F2D0006F9381E992E19F938F93A8E5CA2EA5E7EA
:10F2E000DA2EDF92CF92F801099584E18093A2048F
:10F2F0008091130590911405B7010E94BF9A9F93C6
:10F300008F937F936F938DE792E19F938F93DF921B
:10F31000CF92E0915506F0915606099588E28093C8
:10F32000A204809116058F93809115058F938DE629
:10F3300092E19F938F93DF92CF92E0915506F091E7
:10F34000560609958CE38093A204809118058F934B
:10F35000809117058F938BE592E19F938F93DF92B6
:10F36000CF92EBCD1092A20482E592E19F938F930E
:10F37000E8E5EE2EE5E7FE2EFF92EF92F801099503
:10F3800088E28093A204809102041F928F9382E40A
:10F3900092E19F938F93FF92EF92E0915506F09147
:10F3A000560609958CE38093A20480910D0890E0A5
:10F3B00001979F938F9382E392E19F938F93FF92A4
:10F3C000EF92BBCD1092A20482E292E19F938F93C1
:10F3D00078E5E72E75E7F72EFF92EF92F801099591
:10F3E00084E18093A204809153011AE0612F0E946E
:10F3F000B39A1F929F931F928F9384E192E19F9300
:10F400008F93FF92EF92E0915506F0915606099581
:10F4100088E28093A20480916204612F0E94B39AD3
:10F420001F929F931F928F9386E092E19F938F93F9
:10F43000FF92EF92E0915506F091560609958CE304
:10F440008093A20480916304612F0E94B39A1F925B
:10F450009F931F928F9388EF91E11ECF53E0C52EAB
:10F4600054E0D52E20E06BEEE62E61E1F62E08E5A5
:10F4700015E72093A204D6018D916D011F928F9301
:10F48000CD01835094409F938F93FF92EF921F93EF
:10F490000F93E0915506F09156062983099529812D
:10F4A0002C5E0FB6F894DEBF0FBECDBF203509F736
:10F4B00060C337E0C32E34E0D32E20E04EEDE42EBF
:10F4C00041E1F42E08E515E72093A204D6018D91C1
:10F4D0006D011F928F93CD01835094409F938F9322
:10F4E000FF92EF921F930F93E0915506F09156060D
:10F4F0002983099529812C5E0FB6F894DEBF0FBED3
:10F50000CDBF203509F735C31092A20480ED91E1FB
:10F510009F938F9328E5E22E25E7F22EFF92EF923C
:10F52000F801099584E18093A20480915F048F9390
:10F5300080915E048F9383EC91E19F938F93FF9270
:10F54000EF92E0915506F0915606099588E2809376
:10F55000A204809161048F93809160048F9386EB65
:10F5600091E19F938F93FF92EF92E0915506F09176
:10F570005606099589E48093A2048EEA91E19F934F
:10F580008F93FF92EF92E0915506F0915606099500
:10F590008091A0040FB6F894DEBF0FBECDBF83FFED
:10F5A000E8C2109261041092600460E070E08EE0A6
:10F5B00090E00E944923DDC21092A20486EA91E104
:10F5C0009F938F9398E5E92E95E7F92EFF92EF929E
:10F5D000F801099584E18093A20480914F018F93F3
:10F5E00080914E018F9388E991E19F938F93FF92D1
:10F5F000EF92E0915506F0915606099588E28093C6
:10F60000A2048091FF058F938091FE058F938AE875
:10F6100091E19F938F93FF92EF92E0915506F091C5
:10F62000560609958CE38093A204809143068F933C
:10F63000809142068F938CE791E19F938F93FF9285
:10F64000EF927BCC1092A20484E791E19F938F9379
:10F6500088E5E82E85E7F82EFF92EF92F8010995EC
:10F6600084E18093A20480912F011F928F9386E6FC
:10F6700091E19F938F93FF92EF92E0915506F09165
:10F680005606099588E28093A2048091C404909163
:10F69000C50497FD039695958795959587959F93B6
:10F6A0008F9388E591E19F938F9308E515E71F936A
:10F6B0000F93E0915506F091560609958CE38093DF
:10F6C000A20480914B051F928F9380914A051F924F
:10F6D0008F938AE491E19F938F931F930F9308CDAB
:10F6E0001092A2048AE391E19F938F9388E595E7B6
:10F6F0009F938F93F8010995B4EACB2EB9E0DB2EE6
:10F700000F900F900F900F9084E119E2E12E11E11C
:10F71000F12E08E515E78093A204D6019C919F770E
:10F720001F929F93F6013F9790819F771F929F931F
:10F730003F9790819F771F929F933F9790819F77EC
:10F740001F929F93FF92EF921F930F93E0915506A4
:10F75000F09156068983099589818C5EBCE3CB0EB6
:10F76000D11C0FB6F894DEBF0FBECDBF803599F621
:10F7700000C21092A2048AE191E19F938F9388E5E1
:10F7800095E79F938F93F8010995F8EACF2EF9E05A
:10F79000DF2E0F900F900F900F9084E1A9E0EA2EDA
:10F7A000A1E1FA2E08E515E78093A204D6019C9109
:10F7B0001F929F93F6013F9790811F929F933F97CF
:10F7C00090811F929F933F9790811F929F93FF92EA
:10F7D000EF921F930F93E0915506F091560689839F
:10F7E000099589818C5EBCE3CB0ED11C0FB6F894D1
:10F7F000DEBF0FBECDBF8035B9F6BBC11092A204EB
:10F800008EEF90E19F938F9378E5E72E75E7F72EC3
:10F81000FF92EF92F801099587E48093A20484EFA8
:10F8200090E19F938F93FF92EF92E0915506F091B4
:10F83000560609950FB6F894DEBF0FBECDBFE4E0C3
:10F840004E2E512C24E103EE10E12093A204C0902F
:10F850005506D09056068FEF840D29830E944E20C6
:10F86000782E692E8EEF840D0E944E20982E892EC0
:10F870008DEF840D0E944E20B82EA92E8CEF840DA2
:10F880000E944E206F927F928F929F92AF92BF9272
:10F890009F938F931F930F93FF92EF92F601099519
:10F8A00080911A0590E00FB6F894DEBF0FBECDBF71
:10F8B0002981481659060CF05CC12C5E54E0450EB7
:10F8C000511C203511F655C11092A20484ED90E12F
:10F8D0009F938F9348E5E42E45E7F42EFF92EF9235
:10F8E000F801099584E18093A2046091A409661F40
:10F8F0006627661F40919509441F4427441F2091A5
:10F900008609221F2227221F80917709881F8827B6
:10F91000881FF7E06F9FB0011124635D7F4F7F93D5
:10F920006F9336E0439FA0011124435D5F4F5F93C7
:10F930004F9345E0249F90011124235D3F4F3F9357
:10F940002F9390E0880F991F880F991F8D969F9392
:10F950008F9380EC90E19F938F93FF92EF92E091D1
:10F960005506F0915606099588E28093A2046091AD
:10F97000E009661F6627661F4091D109441F44278E
:10F98000441F2091C209221F2227221F8091B30900
:10F99000881F8827881F5BE0659FB0011124635D85
:10F9A0007F4F7F936F939AE0499FA0011124435D9D
:10F9B0005F4F5F934F93A9E02A9F90011124235D2D
:10F9C0003F4F3F932F9390E063E0880F991F6A9514
:10F9D000E1F78D969F938F938CEA90E19F938F939D
:10F9E000FF92EF92E0915506F091560609958CE34F
:10F9F0008093A2048091EF09881F8827881FBCE0AC
:10FA00008B9FC00111248D969F938F938BE990E17A
:10FA10009F938F93FF92EF92E0915506F0915606D7
:10FA200009950FB6F894DEBF0FBECDBF8091FE09D9
:10FA300087FF12C080E48093A20488E990E19F933D
:10FA40008F93FF92EF92E0915506F091560609953B
:10FA50000F900F900F900F9080910D0A87FF14C0A8
:10FA600084E48093A20485E990E19F938F9388E5D5
:10FA700095E79F938F93E0915506F091560609956F
:10FA80000F900F900F900F9080911C0A87FF71C00C
:10FA900088E48093A20482E990E13BC91092A20419
:10FAA00086E890E19F938F9388E595E79F938F93E6
:10FAB000F80109958EEAA82E89E0B82E0F900F90D4
:10FAC0000F900F9004E010E024E192E6E92E90E11F
:10FAD000F92E38E5C32E35E7D32E2093A204D501A5
:10FAE0008C911F928F93F501319780811F928F9394
:10FAF0003E9780811F928F93319780811F928F93C1
:10FB00003E9780811F928F93319780811F928F93B0
:10FB10003E9780811F928F93319780811F928F93A0
:10FB2000FF92EF92DF92CF92E0915506F091560648
:10FB30002983099580911A0590E00FB6F894DEBFED
:10FB40000FBECDBF2981081719079CF42C5EFCE37A
:10FB5000AF0EB11C0C5F1F4F203509F0BECF09C09E
:10FB600080919002281303C021502093900210929C
:10FB7000A1041092A0040F90DF91CF911F910F91DB
:10FB8000FF90EF90DF90CF90BF90AF909F908F90BD
:10FB90007F906F905F904F9008951F932AE530E01B
:10FBA000281B390B37FF05C03195219531091FEF0F
:10FBB00001C011E0E8E6F1E0C901BF010E94D39A5B
:10FBC0008B359105E4F09C012B5531092A3531051F
:10FBD00038F424EB30E0A901481B590BCA010FC0CF
:10FBE0009C01255B31092A35310518F4845B9109A4
:10FBF00004C09F01281B390BC9016FEF01C061E0F0
:10FC0000FC01EE0FFF1FEB57FB4E259134911203C1
:10FC1000A001139F500D11246403C001659F900D36
:10FC200011241F91089580E090E041E85FEF9C016E
:10FC3000220F331FF901E25FF74F853018F411826C
:10FC4000108202C051834083F901EC5AF74F1182B0
:10FC5000108201968332910551F78FE790E09093DF
:10FC60004D0880934C0881E89FEF90934B08809358
:10FC70004A0810924F0810924E08109252041092A7
:10FC8000510410925404109253041092560410928E
:10FC9000550408951F920F920FB60F9211240BB6C0
:10FCA0000F922F933F934F935F936F937F938F9315
:10FCB0009F93AF93BF93CF93DF93EF93FF93809185
:10FCC0008600909187002091A5043091A604821BA4
:10FCD000930B20918600309187003093A6042093E7
:10FCE000A5049C012D543440C091A304D091A404D8
:10FCF000233F3A4168F4C0930D08249714F0109202
:10FD0000930281E090E09093A4048093A304B4C094
:10FD1000C131D1050CF0B0C09C012B5F3109243BEF
:10FD2000314008F0A4C02091910230919202821BD0
:10FD3000930BA0918505FE01EE0FFF1FAA2351F042
:10FD4000B0E0AA0FBB1FA25FB74F2D913C912436A4
:10FD50003105E4F4DF01A25FB74F2D913C91AC0176
:10FD6000421B530B9A0157FF03C03195219531096E
:10FD7000263031055CF420910204283C20F42091C7
:10FD80000204265F01C028EC20930204DF01A25F79
:10FD9000B74F4D915C919A01220F331F240F351FED
:10FDA000280F391F37FF02C02D5F3F4F359527952C
:10FDB00035952795AC014F5F5F4F421753071CF4F1
:10FDC0002150310906C001972817390714F42F5F15
:10FDD0003F4F80910204DF01833CC0F0A25FB74F28
:10FDE0008D919C91A901481B590BCA0163E070E0F9
:10FDF0000E94D39ACB01880F991F860F971FDF01AE
:10FE0000AC5AB74F11969C938E9305C0AC5AB74F1E
:10FE100011961C921E92E25FF74F318320838091EE
:10FE20000204823320F5E0911C05F0E0EE0FFF1F85
:10FE3000E25FF74F11821082E0911D05F0E0EE0FB6
:10FE4000FF1FE25FF74F11821082E0911F05F0E083
:10FE5000EE0FFF1FE25FF74F11821082E0911E0547
:10FE6000F0E0EE0FFF1FE25FF74F11821082219644
:10FE7000D093A404C093A304FF91EF91DF91CF919D
:10FE8000BF91AF919F918F917F916F915F914F91B2
:10FE90003F912F910F900BBE0F900FBE0F901F90B0
:10FEA00018959FB7F8948091C9008F778093C90007
:10FEB0008091C9008F7B8093C9008091C9008F7D9C
:10FEC0008093C9001092CD0088E18093CC0080918E
:10FED000C80082608093C80080E18093C90080914F
:10FEE000CA008F778093CA008091CA008F7B80936D
:10FEF000CA008091CA008091CA008F7E8093CA0098
:10FF00008091CA0088608093CA008091C9008B7F6D
:10FF10008093C9008091CA0084608093CA00809158
:10FF2000CA0082608093CA008091C80087FF03C026
:10FF30008091CE00F9CF8091C90080688093C9007C
:10FF40008091B10884608093B1089FBF089590911B
:10FF5000AE04911108C08F3031F41092A80480E5EE
:10FF60008093AE040895E091A804EF5FE093A804A5
:10FF7000E83121F481E08093A9040895E93120F06B
:10FF800089E18093A8040895F0E0E656F74F808356
:10FF90000895CF92DF92EF92FF920F931F93CF932A
:10FFA000DF938091B10882FDABC080916F008F7D9F
:10FFB00080936F00E0918505EE2351F0F0E0EE0FA5
:10FFC000FF1FE25FF74F80819181843691055CF4D9
:10FFD00080910204883C20F4809102048C5E01C070
:10FFE00088EC8093020480919B0890E02091A70404
:10FFF000222331F021502093A704F4E2CF2E05C034
:020000021000EC
:1000000022E02093A704E8EACE2E20E031E0DD24B0
:10001000D394F12C72E0E72E41E0C5E0D0E003E09C
:1000200010E0EE2DF0E0E656F74F5081542311F02A
:10003000822B932B440F11F4E39441E0220F331FE2
:10004000211558E0350709F055C09450BE010E94B3
:10005000D39AED2DF0E0EE0FFF1FDF01A25FB74F47
:100060008D919C919C01220F331F280F391F260F61
:10007000371F37FF02C02D5F3F4F359527953595C8
:100080002795CB010196821793071CF42150310963
:1000900007C0615071092617370714F42F5F3F4FCF
:1000A00080910204DF01833CB8F0A25FB74F8D91CD
:1000B0009C91B901681B790BCB01B8010E94D39ABE
:1000C000CB01880F991F860F971FDF01AC5AB74FDE
:1000D00011969C938E9305C0AC5AB74F11961C9203
:1000E0001E92E25FF74F31832083D39480E090E04B
:1000F00021E030E0F394FC1408F493CF10929302C3
:100100001092A904DF91CF911F910F91FF90EF9072
:10011000DF90CF9008959FB7F8948091C9008F77B2
:100120008093C9008091C9008F7B8093C900809122
:10013000C9008F7D8093C9001092CD0084E1809327
:10014000CC008091C80082608093C80080E18093D9
:10015000C9008091CA008F778093CA008091CA003D
:100160008F7B8093CA008091CA008F7D8093CA00E4
:100170008091CA008F7E8093CA008091CA00877FD9
:100180008093CA008091C9008B7F8093C9008091C1
:10019000CA0084608093CA008091CA008260809304
:1001A000CA008091C80087FF03C08091CE00F9CFBC
:1001B0008091C90080688093C9009FBF0895909185
:1001C0009402913061F41092940284E48093AE041E
:1001D0001092AD041092AC041092AB04089521E08B
:1001E00030E09091AE04992311F020E030E090913E
:1001F000AC0491110EC0232B11F081E010C084E4F7
:100200008093AE041092AD041092AC041092AB0433
:10021000EDC0913069F4232B09F0DEC082E08093B9
:10022000AC048091AD048F5F8093AD0483E0DCC0AB
:100230009230D1F4232B09F0CFC093E09093AE0419
:100240008093AB049091AD04923039F41092AA04DB
:1002500087FF03C081E08093AA0483E08093AC040D
:100260009F5F9093AD04C2C0933009F0B5C0232BBB
:1002700009F0B2C09093AE0492E09093AC049091D8
:10028000AD049F5F9093AD04E091AB0490E09E2B92
:1002900020914205213039F49370925063E070E070
:1002A0000E94D39A14C0223051F49770945066E0A3
:1002B00070E00E94D39AE695E695E6950AC09370A1
:1002C0008856914097FD0196BC0175956795E69516
:1002D000E695EF70F0E03196ED30F10508F086C05C
:1002E000EE0FFF1FDF01A25FB74F8D919C919B0125
:1002F000281B390BC90137FF03C0919581959109DE
:10030000069704F5A0918505AA2351F0B0E0AA0F45
:10031000BB1FA25FB74F8D919C918436910594F4D9
:1003200080910204883C30F480910204865F8093BF
:10033000020408C088EC8093020480916F008F7DD6
:1003400080936F00DF01A25FB74F8D919C919C015C
:10035000220F331F280F391F260F371F37FF02C008
:100360002D5F3F4F3595279535952795CB01019604
:10037000821793071CF42150310907C0615071099D
:100380002617370714F42F5F3F4F80910204DF01D7
:10039000843BC0F0A25FB74F8D919C91A901481B8F
:1003A000590BCA0163E070E00E94D39ACB01880F19
:1003B000991F860F971FDF01AC5AB74F11969C9378
:1003C0008E9305C0AC5AB74F11961C921E92E25FF5
:1003D000F74F318320830AC081E08093940210920A
:1003E000AD041092AA0484E48093AE048091AD041D
:1003F000803198F08091AA04811106C08091940206
:10040000811102C0109293021092AD041092AA04BE
:100410001092AC0484E48093AE04089584B1806AA1
:1004200084B93D9A82E58CBD1DBC459A81E08093DC
:10043000B3088AEA8093C40883E88093C5088AE0F9
:100440008093C6081092C8081092C7081092CA0874
:100450001092C90810922C091092E8080895809112
:10046000B308811172C00DB407FE6FC085E08093A0
:10047000CA04459A8EB59091B204913061F018F09B
:100480009230A1F038C01092E7088093B10481380F
:1004900091F581E008C0853541F58091B1048B5A12
:1004A0008093B10482E08093B20425C0E091E70814
:1004B00021E02E0F2093E708F0E0E75FF64F8083FE
:1004C0009091B1042032A0F089130DC080E2E9E0E0
:1004D000F9E0A9EEB8E001900D928A95E1F781E08C
:1004E0008093E80802C01092E8081092B20403C09A
:1004F000890F8093B1048091C3088232F0F445984B
:1005000000000000000000008091C308E091BC08DA
:10051000F091BD08E80FF11D80818EBD8091C30868
:10052000E091BC08F091BD08E80FF11D8081909129
:10053000E508890F8093E50803C081E08093B30844
:100540008091C3088F5F8093C3080895CF92DF9294
:10055000EF92FF92C090370524E0C29E6001112403
:10056000EE24D7FCE094FE2C60914004709141048D
:100570008091420490914304A70196010E94089B38
:100580003093C8082093C70860913C0470913D04E3
:1005900080913E0490913F04A70196010E94089B20
:1005A0003093CA082093C90820914B0630914C061D
:1005B00040914D0650914E06AAE0B0E00E94459B46
:1005C0002091210130912201409123015091240179
:1005D0000E94089B3093D0082093CF0820915104AB
:1005E000309152048091610390916203A901481BEC
:1005F000590B5093D6084093D508E0914704F091E9
:1006000048048091160690911706BF010E94D39A64
:1006100046E0469FC001479F900D112497FD039629
:1006200095958795959587959093CC088093CB0861
:100630008091470690914806BF010E94D39A46E0F8
:10064000469FC001479F900D112497FD03969595F5
:100650008795959587959093CE088093CD081092B5
:100660004804109247041092170610921606109232
:100670004806109247068091C60890E0FC013A9720
:10068000EA30F10508F087C2EA55FF4F0C94249B2D
:100690008091DE038093D9088091DD038093DA088E
:1006A0008091DC038093DB088091DB038093DC087E
:1006B0008091DA038093DD088091D9038093DE086E
:1006C0008091D8038093DF088091D7038093E0085E
:1006D0008091C9038093E1088091C903837F80934F
:1006E000C903809152018093E20880911A01909190
:1006F0001B018093E3088091C8038093E40842992A
:100700004AC28091C803877F8093C80344C2809106
:100710001305909114059093DA088093D90880917D
:10072000B0048093DB08809119058093DC088091E8
:100730006C050E94FA308093DD088091200180933F
:10074000DE084091B0045FE0459FF0011124EC58B1
:10075000F64F86858093DF0880818093E00886814C
:100760008093E10883818093E20887818093E30886
:1007700085818093E4084F5F4093B00474E0479F05
:10078000F0011124EC55FA4F858518160CF403C2BC
:100790002DE030E0842F90E0FC01EE0FFF1FEE0F04
:1007A000FF1FEC55FA4F558515161CF44093B00405
:1007B000F2C1442331F00196B9010E94D39A482F27
:1007C000E9CF1092B004E7C18091AF04811135C028
:1007D0008DE08093C60881E08093AF04809153013F
:1007E0008093D90880916D058093DA0880916E0519
:1007F0008093DB0880916F058093DC088091700501
:100800008093DD08809174058093DE0880917505E2
:100810008093DF08809176058093E00880917905C8
:100820008093E108809177058093E20880917805B4
:100830008093E30880917A05ACC182E18093C60879
:100840001092AF0480915504909156049093DA0869
:100850008093D90880915304909154049093DC08BC
:100860008093DB083093DE082093DD0880915F05DC
:100870008093DF088091E6039091E70397FD03964C
:1008800095958795959587958093E0081092E10856
:100890001092E2081092E3081092E4087CC1809163
:1008A0006B058093D90880914205863081F0809154
:1008B0005A04823451F00E940558E82FF0E0E35DBD
:1008C000FF4EE491E0935A0402C00E9405588091C3
:1008D0007F048093DA0880918D058093DB088091F6
:1008E00082058093DC088091BE038093DD088091AF
:1008F00088048093DE08809186048093DF088091CD
:1009000085048093E0081092880410928604109267
:10091000850480913701882329F080911A049091F1
:100920001B0404C08091FE059091FF059093E2089E
:100930008093E108809191058093E308809192056E
:1009400028C1F894E0911E05F0E0EE0FFF1FE25F72
:10095000F74F8081918181382FEF920714F481E85D
:100960009FEF8038910514F08FE790E08093D908CD
:10097000E0911F05F0E0EE0FFF1FE25FF74F80816F
:10098000918181384FEF940714F481E89FEF80380C
:10099000910514F08FE790E08093DA08E0911D054F
:1009A000F0E0EE0FFF1FE25FF74F80819181813809
:1009B0005FEF950714F481E89FEF8038910514F0FC
:1009C0008FE790E08093DB08E0911C05F0E0EE0FEC
:1009D000FF1FE25FF74F8081918181387FEF97079A
:1009E00014F481E89FEF78948038910514F08FE734
:1009F00090E08093DC08809103048093DD0880916F
:100A000004048093DE08809105048093DF088091C0
:100A100006048093E008809107048093E1088091A8
:100A200008048093E208809109048093E308809190
:100A30000A04AFC080915A0A853018F010925A0A01
:100A400085E08093D90880917B058093DA086091D6
:100A5000FC037091FD038091FE039091FF0345E03C
:100A6000C42ED12CE12CF12CA70196010E94089BE9
:100A70003093DC082093DB086091F8037091F90350
:100A80008091FA039091FB03A70196010E94089BB5
:100A90003093DE082093DD08809171058093DF0894
:100AA000809172058093E008809173058093E1083E
:100AB000809102048093E20880919D048093E30872
:100AC0008091330C9091340C97FD03969595879502
:100AD000959587955EC082E08093D90888E08093E1
:100AE000DA081092DB0887E48093DC0880915401D7
:100AF0008093DD0890913F0A9093DE088091400A30
:100B00008093DF089F7790933F0A80718093400A1B
:100B100080918E058093E008809139068093E108EA
:100B200080911D068093E20880917E058093E30802
:100B3000809196052EC0809117059091180590938D
:100B4000DA088093D90880912F018093DB08809187
:100B50002E018093DC0880915D0C8093DD088091EC
:100B6000C7038093DE0880917C058093DF08809125
:100B700001068093E00880915E0490915F04909359
:100B8000E2088093E108809152058093E308809108
:100B9000420A8093E4088091E808882309F460C140
:100BA0006091E90880919502681719F08AEF8093A7
:100BB000A4026093950281E080934D012091EA08A0
:100BC0003091EB08C90181509E4F8F3F9340B0F4A4
:100BD0008091EC089091ED08AC0141505E4F4F3F81
:100BE000534060F44091280545FF08C030936904E4
:100BF0002093680490936704809366048091F008C2
:100C00009091F108893621E0920724F490934F01E6
:100C100080934E018091FA089091FB082091CB04BB
:100C20003091CC042817390740F420916404211135
:100C300004C09093CC048093CB04693609F484C03B
:100C4000D8F5673609F43FC0683609F011C18091C4
:100C5000FC088093BE088091FD088093BF088091B6
:100C6000FE088093C0088091FF088093C10880919E
:100C700000098093C208809101099091230C892B6F
:100C80008093230C809102098C709091240C9370B6
:100C9000892B8093240C809103098093B90480915F
:100CA0000409809396028091050980932C09809114
:100CB00006098093B504DCC06A3609F4CBC06B36F4
:100CC00009F48EC0D5C08091FC08809329098091D9
:100CD000FD0880932B098091FE0880932A0980915A
:100CE000FF0880934C018091000980932D09809129
:100CF00001098093A502809102098093BC04809130
:100D00000309809365048091D603882351F0809174
:100D100004099091050997FD04C090931B048093EA
:100D20001A048091B3049091B40420910609309183
:100D30000709820F931F97FD0196959587959093CC
:100D4000B4048093B30494C08091FC088093B408E9
:100D50008091FD088093B5088091FE088093B608C5
:100D60008091FF088093B708809100099091010954
:100D70009093B9088093B808809102099091030973
:100D80009093BB088093BA08209148083091490895
:100D900080910409213841F49091BB04911104C061
:100DA0009FE7980F9093BB04992787FD90959093A8
:100DB000490880934808809105098093F103A09128
:100DC0000609B09107092AE030E00E943F9B60933A
:100DD000F2037093F3038093F4039093F50348C0F8
:100DE0008091FC088093B8048091FD088093B7043B
:100DF0008091FE088093B6048091FF08882349F013
:100E000090915701992319F09151933010F48093E8
:100E10005701809102099091030990938404809373
:100E200083048091000980938B0480910109809351
:100E30008A04809104098093890480910509809334
:100E40008704809106099091070990934306809347
:100E500042060EC0FF90EF90DF90CF900C946B583D
:100E6000109269041092680410926704109266044C
:100E7000FF90EF90DF90CF9008958091B308882382
:100E800021F1459884EC98E09093BD088093BC08CC
:100E9000E091BA0481E08E0F8093BA04F0E0E95645
:100EA000FD4F90819093C6088D3010F01092BA04D7
:100EB0001092B3084BDB81E08093C3088091C40893
:100EC0008093E5088EBD81E0089580E008951F922B
:100ED0000F920FB60F9211242F933F935F936F934E
:100EE0007F938F939F93AF93BF938091CA0488237E
:100EF00029F08091CA0481508093CA048091AE0485
:100F0000882319F081508093AE048091C10481112F
:100F100051C089E08093C1048091D0049091D104A4
:100F200001969093D1048093D0048091A6028F5FA4
:100F300081708093A602811109C08091CF04843012
:100F400028F48091CF048F5F8093CF04349903C03D
:100F500081E08093C8048091CB049091CC04892BCC
:100F600011F18091CB049091CC040B9750F08091BB
:100F7000CB049091CC040A979093CC048093CB043B
:100F800004C01092CC041092CB048091CB049091B9
:100F9000CC042091A9023091AA0282239323892BA9
:100FA00009F064C061C08FEF9FEF9093AA02809315
:100FB000A9025AC081508093C1048091C80488233B
:100FC00009F456C08091A402811152C08091390663
:100FD00083FF4EC0349B10C08091CD049091CE040D
:100FE00001969093CE048093CD04893E934008F4FB
:100FF0003FC01092C8043CC08091CD049091CE04B3
:10100000892B69F18091CD049091CE048A3691406C
:1010100030F52091CD043091CE048091CD04909193
:10102000CE0469E270E00E94BF9A620F731F709352
:10103000CE046093CD048091CD049091CE040B97A3
:1010400050F08091CD049091CE040A9790934F0177
:1010500080934E0104C010924F0110924E011092E5
:10106000CE041092CD0404C04798A7CF479AA5CFCD
:10107000BF91AF919F918F917F916F915F913F91C0
:101080002F910F900FBE0F901F9018952091D004B4
:101090003091D1042F5F3F4F820F931F089520910D
:1010A000D0043091D104821B930B88279078892F2C
:1010B000869508951F93CF93DF93C091D004D0916C
:1010C000D1042196C80FD91F1FECCE01E8DF811192
:1010D00009C080910F018823C1F310920F01109372
:1010E0007A00F3CFDF91CF911F9108959FB7F894C5
:1010F0005F983E9A469AE0EBF0E080818F708083A3
:10110000808183608083A1EBB0E08C918B738C93A2
:101110008C918B608C931092B2008FEF8093B30010
:10112000808180688083E0E7F0E080818A7F80832F
:101130008081826080839FBF08958091D0049091C8
:10114000D1040B9690932F0980932E0982E085BDE0
:1011500083EB84BD8FEF88BD84EB87BD86E086BDC1
:10116000EEE6F0E08081816080830895909194059F
:1011700080912F0192FF2EC020914B0540914A058E
:1011800060E5469FA001112490E8980F97FF02C0E8
:1011900093E8980F392F359535958091A702909156
:1011A000A80266E0360280199109112448175907F0
:1011B0002CF05093A8024093A70208954CE3249F7B
:1011C00090011124821793074CF03093A8022093CA
:1011D000A702089560E4869FC00111249093A8029D
:1011E0008093A70208958F929F92AF92BF92CF9261
:1011F000DF92EF92FF921F93CF93DF93E09152051E
:10120000F0E0E553FD4FA681D0818091AF02C091FF
:101210009405813009F0F5C08091960587FD2FC0B7
:101220002091400430914104409142045091430484
:10123000BB27A7FDB0950E944F9BE0E88E2E912C16
:10124000A12CB12CA50194010E94089B69017A018F
:1012500020913C0430913D0440913E0450913F0464
:10126000AD2FBB27A7FDB0950E944F9BA501940110
:101270000E94089BC21AD30AE40AF50A03C0C12CD3
:10128000D12C760160912D012091B3043091B404EA
:1012900047E0429FC001439F900D1124AA2797FD6C
:1012A000A095BA2FA7019601281B390B4A0B5B0B9F
:1012B000A62FB0E00E94459B20E032E040E050E0E5
:1012C0000E94089B69017A018091A7029091A8026F
:1012D000C2FF05C09093AE028093AD0215C020916D
:1012E000AD023091AE024091AD025091AE02841B2E
:1012F000950B6091510570E00E94D39A260F371F1D
:101300003093AE022093AD022091AD023091AE0237
:10131000C0FF14C037FF02C0215F3F4FC90164E026
:10132000959587956A95E1F74C01AA2497FCA094BE
:10133000BA2C8C0C9D1CAE1CBF1C13C037FF02C006
:10134000215F3F4FC90154E0959587955A95E1F784
:101350004C01AA2497FCA094BA2C8C189D08AE08C6
:10136000BF08C0908605CC2021F12091C4043091A3
:10137000C504D12C2C9DA0012D9D500D3C9D500DE0
:101380001124BA01882777FD8095982F680D791D63
:101390008A1D9B1D2FEFC21AD20A9601442737FDE2
:1013A0004095542F0E94089B3093C5042093C40499
:1013B00004C09092C5048092C4042091C40430916A
:1013C000C50480914A0544E0849FC0011124281778
:1013D00039076CF02091C4043091C50480914B050D
:1013E00064E0869FC00111248217930724F4909330
:1013F000C5048093C4048091AF028F5F8093AF02D5
:10140000D2C010912C0120913C0430913D044091B8
:101410003E0450913F04BB27A7FDB0950E944F9B0F
:1014200040E8842E912CA12CB12CA50194010E949E
:10143000089B69017A012091400430914104409158
:10144000420450914304AD2FBB27A7FDB0950E94E5
:101450004F9BA50194010E94089BC20ED31EE41E5F
:10146000F51EA12FB0E0A70196010E94459B20E048
:1014700032E040E050E00E94089B69017A0120912F
:10148000AB023091AC0280912E014091AB025091A1
:10149000AC0260E4869FC0011124841B950B60910F
:1014A000510570E00E94D39A260F371F3093AC028B
:1014B0002093AB022091AB023091AC02C1FF14C06B
:1014C00037FF02C0215F3F4FC90134E095958795F2
:1014D0003A95E1F74C01AA2497FCA094BA2C8C0C05
:1014E0009D1CAE1CBF1C13C037FF02C0215F3F4FC5
:1014F000C90124E0959587952A95E1F74C01AA2426
:1015000097FCA094BA2C8C189D08AE08BF08C09018
:101510008705CC2021F12091C2043091C304D12C45
:101520002C9DA0012D9D500D3C9D500D1124BA0104
:10153000882777FD8095982F680D791D8A1D9B1D42
:101540002FEFC21AD20A9601442737FD4095542F37
:101550000E94089B3093C3042093C20404C090925D
:10156000C3048092C2042091C2043091C3048091CC
:101570004E0544E0849FC0011124281739076CF000
:101580002091C2043091C30480914F0564E0869F8E
:10159000C00111248217930724F49093C30480930D
:1015A000C2041092AF02DF91CF911F91FF90EF9094
:1015B000DF90CF90BF90AF909F908F9008951F9233
:1015C0000F920FB60F9211240BB60F922F933F93E9
:1015D0004F935F938F939F93EF93FF938091C004FA
:1015E0008111CAC09091B0008091500596FF8DC0C6
:1015F0009091B0009F7B9093B000E091BF04E11107
:1016000017C04DED56E0849F9001859F300D112449
:101610008091BD049091BE04281B390B3093C70400
:101620002093C6041092BE041092BD04469AA1C035
:101630008E1738F48AE090E09093C7048093C60434
:1016400098C089EA93E09093C7048093C604E3307E
:10165000C1F048F4E13071F0E230F9F48091C20455
:101660009091C3040BC0E43079F0E530B1F480917F
:101670001E060CC08091C4049091C50487559E4FEE
:1016800017C08091150602C08091F60524E0829F64
:10169000C001112487559E4F0BC0F0E0EE0FFF1FD5
:1016A000E25FF74F80819181880F991F87559C4F8A
:1016B0009093C7048093C6048091C6049091C70498
:1016C0008D3D25E0920718F08CED95E005C0873739
:1016D000914030F487E791E09093C7048093C6046B
:1016E0002091C6043091C7042C5B31093093C704A4
:1016F0002093C6048091BD049091BE04820F931F75
:101700009093BE048093BD0434C09091B000906467
:101710009093B0002CEB30E03093C7042093C604C4
:101720002091BD043091BE0424543F4F3093BE0439
:101730002093BD049091C904992321F09091020453
:10174000911104C09091C904923011F4469801C0DF
:10175000469A2091BF042F5F2093BF0430E090E0B1
:101760000196821793072CF481E08093AF021092C8
:10177000BF0481E08093C0048091C6049091C704A7
:101780008F3721E0920788F48F3F9105E1F0D8F080
:101790008E37914051F080E88093B3008091C60469
:1017A0009091C7048058910909C08FEF8093B300CE
:1017B0008091C6049091C7048F5F91099093C704EC
:1017C0008093C60408C08093B3001092C70410929F
:1017D000C6041092C004FF91EF919F918F915F9189
:1017E0004F913F912F910F900BBE0F900FBE0F9016
:1017F0001F9018959FB7F8943998389A28B12360AC
:1018000028B92091B9002C7F2093B9002AE22093B7
:10181000B8001092E1041092E0041092DF048111EC
:1018200003C078949FBF0895E2E8F9E0DF011E97B6
:101830001C9211961C9211961C9211961C92119654
:101840001C9211961C9211961C9211961C92108259
:1018500011961C9211961C9211961C9211961C9234
:1018600011961C9211961C923F968AE0E633F80777
:10187000E9F6D7CF0F931F93CF93DF931092E10434
:10188000CCEBD0E084E9888380E888831092BD00A7
:101890001092BA000BEB10E0F80110821092B90020
:1018A0001092B8001092DE0480E0A4DFF8011082EC
:1018B00085E888838091DC0482608093DC04DF917A
:1018C000CF911F910F9108951F920F920FB60F9213
:1018D00011240BB60F922F933F934F936F937F93E7
:1018E0008F939F93AF93BF93EF93FF938091E10406
:1018F00091E0980F9093E10490E08730910508F013
:1019000088C2FC01E055FF4F0C94249B81E080933A
:10191000DE04E091E00434E0E39FF0011124EC5593
:10192000FA4F8585181654F08091E0048C3030F41D
:101930008091E0048F5F8093E004EBCF8091E0041E
:101940006CE00E94B39A9093E0048091D7048F5F7B
:101950008093D7049091B202981770F41092D70434
:101960001092DB041092DA0485E08093E104809108
:10197000DF04880F8D5A04C08091E004880F8E5ACE
:101980008093BB0085E88093BC0059C2A091E0041D
:101990008FE08A9FD0011124AC58B64F11969C91CC
:1019A0009093BB0095E89093BC00A091E0048A9FBF
:1019B000D0011124AC58B64F9C9190FF79C0E091B2
:1019C000E0048E9FF0011124EC58F64F82818823A9
:1019D00029F080911A05873008F431C28091DA0429
:1019E0009091DB04892B09F02AC28091D804909150
:1019F000D904892B09F023C25BC04091E0042091F7
:101A0000D8043091D90481E090E002C0880F991F7A
:101A10004A95E2F782239323E091E004892B49F071
:101A20008FE0E89FF0011124EC58F64F80E18483A9
:101A300007C03FE0E39FF0011124EC58F64F1482F9
:101A4000A091E004E091E0042FE02A9FD00111244E
:101A5000AC58B64F14968C9138E0839FC001112486
:101A60002E9FF0011124EC58F64F92819770982B1D
:101A70009093BB0085E88093BC004091E0042091E6
:101A8000DA043091DB0481E090E002C0880F991FF6
:101A90004A95E2F782239323892B51F08CE699E053
:101AA0009093D6048093D50488E08093D404C7C172
:101AB00084E0ACC1E091D504F091D604808180939C
:101AC000BB0085E88093BC008091D5049091D6043A
:101AD00001969093D6048093D5048091D4048150CC
:101AE0008093D404882309F4AAC183E08FC1809134
:101AF000B900803301F58091D304811105C0809134
:101B0000E0048F5F8093D304A091E0049FE09A9F4C
:101B1000D0011124AC58B64F13968C918F778F3724
:101B200051F0E091E0049E9FF0011124EC58F64F33
:101B300083818F5F83831092E10484E98093BC00EA
:101B40008AE090E09093B1028093B0028091E0042B
:101B50008F5F8093E0041092E1048091DC048E7F1B
:101B60008093DC0485EA0FCF8091B900E091DF0417
:101B7000803489F18FE0E89FF0011124EC58F64F92
:101B800083818F7783838091DF048F5F8093DF046D
:101B90008C30A0F01092DF041092D9041092D80477
:101BA0008091D2048F5F8093D2048C3038F01092F1
:101BB000D2048091DC048D7F8093DC048091DC046E
:101BC00081608093DC041092E10484E98093BC007E
:101BD0001092DE046AC08FE08E9FF0011124EC5851
:101BE000F64F938190689383A091DF048A9FD00180
:101BF0001124AC58B64F9C9190FF34C0A091DF04E3
:101C00008A9FD0011124AC58B64F14969C91992309
:101C1000A9F0903109F040C02CE639E03093D604A9
:101C20002093D50498E09093D404E091DF048E9F34
:101C3000F0011124EC58F64F14822EC09091DF046D
:101C4000899FC00111248758964F9093D6048093A2
:101C5000D5049091DF048091D20498131AC080912A
:101C6000B30218C09091DF04899FC00111248758E6
:101C7000964F9093D6048093D5048091DC0481FD27
:101C800006C09091DF048091D204981302C082E0D4
:101C900001C081E08093D4048091D404813011F498
:101CA00085E801C085EC8093BC008091D3048093CB
:101CB000DD041092D304C3C08091BB00E091D50431
:101CC000F091D6048193F093D604E093D5048091EB
:101CD000D40481508093D404823010F085EC03C08A
:101CE000813029F485E88093BC0086E08FC0809124
:101CF000DC0481FF48C08091C90380FD44C0A091ED
:101D0000DF048FE08A9FD0011124AC58B64F16969D
:101D10009C919C7FE091DF048E9FF0011124EC5890
:101D2000F64F983F21F480818160808301C010824A
:101D3000A091DF048FE08A9FD0011124AC58B64FE8
:101D400016969C91983F51F4E091DF048E9FF0012C
:101D50001124EC58F64F8081866014C0A091DF04F6
:101D60008A9FD0011124AC58B64F16969C91993F8A
:101D700051F4E091DF048E9FF0011124EC58F64FEE
:101D80008081846080838091C90381FF19C0A09104
:101D9000DF048FE08A9FD0011124AC58B64F16960D
:101DA0009C919E3F68F4E091DF048E9FF001112426
:101DB000EC58F64F86858F5F868789E080935701C0
:101DC0008091DF048F5F8093DF048C30A0F010924D
:101DD000DF041092D9041092D8048091D2048F5F4E
:101DE0008093D2048C3038F01092D2048091DC04BD
:101DF0008D7F8093DC041092E10484E98093BC0021
:101E00008091DC0481608093DC0417C08093E1043E
:101E100016C01092E10484E98093BC008091DC0438
:101E200081608093DC048AE090E09093B10280931B
:101E3000B0021092E0041092DF041092DE04FF91D1
:101E4000EF91BF91AF919F918F917F916F914F9142
:101E50003F912F910F900BBE0F900FBE0F901F90D0
:101E600018950F931F93CF93DF93182F8091010440
:101E700081118AC08091F304811186C01D3010F059
:101E800082E089C0112391F0212F30E021503109E7
:101E90008FE0829FF001839FF00D1124EC58F64FE4
:101EA000838187FFEDCF808180FF70C080916C09B6
:101EB0008B70823009F06CC067E070E08CE699E0CE
:101EC0000E944F2190917309891364C00091B2025E
:101ED0008CE08093B20224E630E03093B10220938C
:101EE000B00284E690E0D2D8EC018091DC0480FF5F
:101EF00009C011110CC08FEF9FE09093DB04809319
:101F0000DA0411C0CE01CBD8882379F3F2CF115077
:101F100021E030E002C0220F331F1A95E2F7309320
:101F2000DB042093DA041092E0041092DF0488EEC0
:101F300093E0ACD8EC0115EA1092E1048091DC0446
:101F40008E7F8093DC041093BC008091DC0480FFC2
:101F500007C08091DA049091DB04892B31F409C029
:101F6000CE019DD8882389F3F4CFCE0198D8882359
:101F700019F30093B2028091DA049091DB04892B6B
:101F800009F07ECF80E007C081E005C083E003C098
:101F900084E001C085E0DF91CF911F910F910895FA
:101FA0000F931F93CF93DF939091010491116AC017
:101FB0009091F304911166C08D3008F067C08823BA
:101FC00009F462C0C82FD0E021978FE08C9FF00108
:101FD0008D9FF00D1124EC58F64F838187FF56C07A
:101FE000808180FF55C088EE93E050D88C018091AD
:101FF000DC0480FF15C081E090E002C0880F991FCB
:10200000CA95E2F79093D9048093D8041092E00423
:102010001092DF0410926C0910927309C5EA17C080
:10202000C8013DD8882319F3E6CFC80138D88111FB
:1020300004C08091DC0480FFF8CF8091D804909197
:10204000D904892B71F0C8012AD881110AC01092D5
:10205000E1048091DC048E7F8093DC04C093BC009B
:10206000E8CF80916C098B708230A1F467E070E05A
:102070008CE699E00E944F2190917309891761F0D5
:1020800085E00BC081E009C086E007C082E005C0A2
:1020900083E003C084E001C080E0DF91CF911F9115
:1020A0000F9108951F920F920FB60F9211240BB645
:1020B0000F922F938F939F93EF93FF938091B7028B
:1020C00081111CC08091E8049091E90401969093DD
:1020D000E9048093E804FC01E95BF44F20812D3092
:1020E00019F08C3D910539F41092E9041092E8043E
:1020F00081E08093B7022093C60004C01092E904E7
:102100001092E804FF91EF919F918F912F910F9082
:102110000BBE0F900FBE0F901F9018951F920F923D
:102120000FB60F9211240BB60F922F933F934F933C
:102130005F936F937F938F939F93AF93BF93CF934F
:10214000DF93EF93FF938091EA04813029F480912B
:10215000C6008093CE00C5C08091EA04823029F485
:102160008091C6008093690ABCC08091C6008093AC
:10217000FA046091E7046C3D10F01092E60490912F
:10218000FA048091E6049D3009F062C0823009F0C3
:102190005FC01092E604262F30E0E901C959D54FFF
:1021A0005881D901A859B54F4C918091E404909180
:1021B000E504851B9109841B91099F709093E504A8
:1021C0008093E404AC0196E0569547959A95E1F723
:1021D000435C4093E3048F73835C8093E2049881B3
:1021E000491303C09C91891739F08091F8048F5FDF
:1021F0008093F80480E001C081E09091F90491118E
:1022000070C0882309F46DC081E08093F9046F5F8A
:102210006093F704F901E759F54F8DE080838091D1
:102220006B0A823509F05DC080910104811159C0AB
:102230000E9465752CE088E190E00FB6F894A895AF
:10224000809360000FBE209360001092C90449C0C3
:102250008130D1F018F0823031F141C08091FA0420
:10226000833239F48091F904811103C081E08093B5
:10227000E60481E08093E7048091FA048093690A80
:102280008091FA0490E026C082E08093E60481E029
:10229000860F8093E704E62FF0E08091FA04E75977
:1022A000F54F80830FC0E62FF0E08091FA04E759E4
:1022B000F54F80836C3D20F46F5F6093E70402C0AC
:1022C0001092E6042091FA048091E4049091E504D0
:1022D000820F911D9093E5048093E40402C0109254
:1022E000E604FF91EF91DF91CF91BF91AF919F9164
:1022F0008F917F916F915F914F913F912F910F90AF
:102300000BBE0F900FBE0F901F90189520E030E08D
:1023100040E050E0F901E95BF44FB9016F5F7F4F96
:102320002817390729F02081420F511D9B01F2CF58
:102330005F70CA0156E0969587955A95E1F7835CE0
:1023400080834F73435CFB01E95BF44F4083F901E9
:10235000E75BF44F8DE080831092B7028091470BCA
:102360008093C6000895CF92DF92EF92FF920F9371
:102370001F93CF93DF93CDB7DEB78C851D8593E296
:102380009093470B8F598093480B8B858093490B13
:10239000FE013E96112339F04E855F8522813381FF
:1023A0001150349604C020E030E040E050E000E0FE
:1023B00083E090E02115310509F486C071E0700FCB
:1023C000DA01A00FB11DDC90215031092115310532
:1023D00089F4112309F482C040815181BF016C5FEF
:1023E0007F4F228133811150FB0170E021153105AF
:1023F00009F474C061E0670FDA01A70FB11DFC900A
:10240000215031092115310581F4112309F468C0E7
:1024100040815181BF016C5F7F4F22813381115018
:10242000FB0121153105B1F060E001E0060FDA0192
:10243000A60FB11DEC90215031092115310561F431
:10244000112351F040815181228133811150349602
:1024500000E002C000E0E12C6D2D66956695635C9E
:10246000DC01A95BB44F6C937F2D72957F70AD2D0D
:10247000A37060E1A69FD00111247A2B735CDC016C
:10248000A85BB44F7C936C01A3E0CA0ED11C7F2DD6
:102490007F7064E0769FD0011124FE2CF294F694B4
:1024A000F69463E0F622FA2AADE3FA0EBC01675B0C
:1024B000744FDB01FC9204966E2D6F73635CD60142
:1024C000A95BB44F6C9376CF21DFDF91CF911F9141
:1024D0000F91FF90EF90DF90CF900895F12C01C005
:1024E000762F072F20E030E0B6CFCF93DF937091A7
:1024F000F704765063E0C3E0772309F44CC0EC2F77
:10250000F0E0E759F54F4081E1E0EC0FF0E0E759EA
:10251000F54F20812D53E2E0EC0FF0E0E759F54F45
:1025200080818D53E3E0EC0FF0E0CC5FE759F54F8D
:10253000D081B22FB295BF704D5394E0499FA00156
:102540001124B42B90E1299F90011124382F369546
:102550003695322B20E4829FC0011124DD53D82B05
:10256000A1E0A60FE62FF0E0E759F54FB0837130F8
:1025700079F0E2E0E60FB0E0A759B54F3C93723036
:1025800049F06D5FF0E0E759F54FD0837350B4CF59
:102590006A2F01C06E2F8CE69AE09093F604809328
:1025A000F50463506093F404DF91CF9108951F9375
:1025B000CF93DF9300D0CDB7DEB78091F9048823A5
:1025C00009F4B4C392DF80916A0A823609F08BC2A3
:1025D00080916B0A803709F48AC088F48A3609F43E
:1025E000F1C130F48B34F9F0863609F42DC17BC289
:1025F0008D3609F453C08E3609F440C074C2843756
:10260000E9F038F4813709F479C0833709F4D2C08E
:102610006AC2873709F49EC1893709F44DC18537ED
:1026200009F061C264C1E091F504F091F604808183
:10263000918190934F0180934E0155C28091F70490
:10264000E091F504F091F604853140F080E1A4E4D6
:10265000BAE001900D928A95E1F70CC080819181DA
:10266000A281B3818093440A9093450AA093460ABD
:10267000B093470A80EF8093F3043CC08091B70287
:102680008823E1F31F928DE48F9384EA95E09F9372
:102690008F9381E08F938F938EE426C0E091F504B1
:1026A000F091F6041081113081F48DE4A4EAB5E0D4
:1026B00001900D928A95E1F70E94A7231A838091D9
:1026C000400A8F7E8093400A01C01A828091B7022F
:1026D0008823E1F31F9221E02F93CE0102969F936E
:1026E0008F932F932F938DE48F933DDE65C181E00F
:1026F0008093FC048FEF8093B502F5C180910104B3
:1027000081113EC0E091F504F091F604808196EFCE
:10271000980F9A3060F4911102C081E005C09630A4
:1027200010F49A8302C085E08A8361E00FC09CEEBA
:10273000980F9A3078F4911102C081E005C096306C
:1027400010F49A8302C085E08A8360E08A810E9447
:10275000712412C08A838F3F19F40E9403248A8354
:102760008A81811102C081E003C0863010F085E0CB
:102770008A838A810E944B2380E00E946B5103C0B0
:102780000E9403248A838091B7028823E1F31F9279
:1027900088E88F938BE195E09F938F931F9221E0C0
:1027A0002F93CE0102969F938F9382E08F932F9366
:1027B00081E500C18091F5049091F604FC0120812F
:1027C0002150253088F52181273671F520910104AB
:1027D00021112AC0319628E8ABE1B5E001900D92B5
:1027E0002A95E1F7FC0180810E94202420915C055C
:1027F00030E0A4ECB9E034D7609346017093470110
:10280000809348019093490120915D0530E028D7DD
:10281000609342017093430180934401909345017A
:102820000E9403248A8301C01A828091B702882300
:10283000E1F31F9221E02F93CE0102969F938F9395
:102840002F932F9383E520C08091010481114BC108
:10285000E091F504F091F60480819FEF980F953098
:1028600010F40E944B230E9403248A838091B702B4
:102870008823E1F31F9221E02F93CE0102969F93CC
:102880008F932F932F9386E48F936DDD0FB6F8947B
:10289000DEBF0FBECDBF80910104811108C06EE67E
:1028A00070E08A810E949F2680E00E946B51809197
:1028B00042050E94D81717C11A828091F5049091A1
:1028C000F6044A814C3008F00EC1E42FF0E0DC0140
:1028D000AE0FBF1F2C91332727FD3095EE0FFF1F42
:1028E000E05DF74F318320834F5F4A83EACFE09169
:1028F000F504F091F604808153DB8983811103C0D4
:1029000081E08A8301C01A828091B7028823E1F3B3
:102910001F9288E08F938CE699E09F938F931F928C
:1029200021E02F938091F6048F938091F5048F938B
:102930001F922F93CE0101969F938F931F922F93F7
:1029400001969F938F9384E08F932F9385E58F93C8
:102950000ADD32C08091F404893008F4C4C080914B
:10296000F5049091F60428E0FC013196ACE6B9E05C
:1029700001900D922A95E1F7FC01808172DA89833A
:10298000811103C081E08A8301C01A828091B7025D
:102990008823E1F31F9221E02F93CE0101969F93AC
:1029A0008F931F922F9301969F938F9382E08F9323
:1029B0002F9387E58F93D7DC0FB6F894DEBF0FBE59
:1029C000CDBF91C08091010481118DC00E948F17ED
:1029D0008A83823019F0843009F085C0F8948091A0
:1029E000C1008F738093C1008091C9008F73809361
:1029F000C9008091C100877E8093C1008091C90089
:102A0000877E8093C9008091C80087FF03C08091B2
:102A1000CE00F9CF8091C00087FF03C08091C6002F
:102A2000F9CFE091F504F091F6048081813021F432
:102A300082E08093EA042DC0843611F080E401C066
:102A400081E891E09093EA041092CD008093CC004D
:102A50008091CD008093C5008091CC008093C4000C
:102A60008091CA008F7D8093CA008091CA008F7EBA
:102A70008093CA008091C9008B7F8093C9008091A8
:102A8000CA0084608093CA008091CA0082608093EB
:102A9000CA008091CA00877F8093CA008091C200DB
:102AA000877F8093C2008091C9008E7F8093C90088
:102AB0008091C10088618093C1008091C9008861C4
:102AC0008093C9008091C10080688093C10080918B
:102AD000C90080688093C90010926E0010926F0048
:102AE00010927000789480916B0A843609F4A7C024
:102AF000C8F4813609F460C070F48B3409F00EC15B
:102B0000E091F504F091F6048081918190934F015A
:102B100080934E0103C1823609F459C0833609F40B
:102B200069C0FCC08C3609F4D9C038F4873609F482
:102B3000F2C0883609F4A1C0F1C0843721F086378D
:102B400009F4DAC0EBC08091F704E091F504F0914C
:102B5000F604803140F080E1A4E4BAE001900D92E7
:102B60008A95E1F70CC080819181A281B381809325
:102B7000440A9093450AA093460AB093470A80916D
:102B8000B7028823E1F31F928091B4028F9384E50A
:102B90008F93E9DB8AEF8093F3048FEF8093B50284
:102BA00080EA9FE00E9446889093EC048093EB04B7
:102BB0000F900F900F90B2C0E091F504F091F604E1
:102BC0008081803208F08FE18093B6020FC0E091DF
:102BD000F504F091F6048BE0ACE5BAE001900D92BB
:102BE0008A95E1F78091650A8093650C8FEF809359
:102BF000B50294C08091EF049091F004892B89F480
:102C0000E091F504F091F6048081882351F0EAE028
:102C10008E9FC00111240E9446889093370A8093AA
:102C2000360AE091F504F091F6048081FAE08F9F76
:102C3000C00111249093F0048093EF0415C08FEF2E
:102C40008093B502E091F504F091F60480812AE0CA
:102C5000829FC00111249093F2048093F104892B88
:102C600019F081E08093FE0480EA9FE00E9446888C
:102C70009093EC048093EB0451C08FEF8093B502E6
:102C8000E091F504F091F604808187FD08C082E0B0
:102C90008093FB041092EE041092ED041BC0982F59
:102CA00090958091A004892B8093A0048181EAE013
:102CB0008E9FC00111249093EE048093ED0484E074
:102CC0008093FB0480EA9FE00E9446889093EC0486
:102CD0008093EB0481E08093FF0420C08FEF80930A
:102CE000B502E091F504F091F60480818093A1048F
:102CF00081E08093000512C08091F404882339F0AC
:102D0000E091F504F091F6048081823009F081E0D1
:102D10008093FD0403C081E0809301051092F904C3
:102D20001092F6041092F5041092F4040F900F9094
:102D3000DF91CF911F9108959091C00095FFFCCF36
:102D40008093C6000895E1ECF0E088E18083A0EC78
:102D5000B0E08C9182608C938081806880838081D8
:102D6000806480831092C5008AE28093C4008091C1
:102D7000F1049091F2040E9446889093390A80935E
:102D8000380A8CED90E00E9446889093680A809300
:102D9000670A82E080933A0A88E080933B0A1092A7
:102DA0003E0A8BE080933C0A10923D0A8FEF80939D
:102DB000420A809154018093410A1092F6041092C5
:102DC000F5041092F40408950F931F93CF93DF93AB
:102DD000CDB7DEB760970FB6F894DEBF0FBECDBF9C
:102DE0008091B702882309F483C28091EB0490910B
:102DF000EC040E944F88882361F01092EE04109238
:102E0000ED041092F2041092F1041092F00410926A
:102E1000EF048091ED049091EE04892B29F48091C8
:102E2000FF04811109C064C08091450B9091460B4D
:102E30000E944F88882399F38091B702882309F470
:102E400057C08091FB048430A8F00E946E751F92D9
:102E500080E58F938DEB97E09F938F9381E08F9325
:102E60008F9388E48F937FDA0FB6F894DEBF0FBE9E
:102E7000CDBF32C01092A2048BE395E19F938F9354
:102E800088E595E79F938F93E0915506F09156065C
:102E900009951F9284E18F938DEB97E09F938F9319
:102EA0001F9221E02F938BEF94E09F938F9382E00A
:102EB0008F932F9388E48F9356DA8091FB040FB69B
:102EC000F894DEBF0FBECDBF843020F48F5F8093B7
:102ED000FB0402C01092FB048091ED049091EE047B
:102EE0000E9446889093460B8093450B1092FF04F6
:102EF00080910005882339F18091B702882319F168
:102F00000E946E751F9280E58F938DEB97E09F93E3
:102F10008F931F9221E02F9380E992E09F938F93EC
:102F20001F922F9381EA94E09F938F9383E08F9376
:102F30002F938CE48F9317DA109200050FB6F89454
:102F4000DEBF0FBECDBF8091FD048823C9F19091F3
:102F5000B7029923A9F18230F9F48091BE088983E0
:102F60008091BF088A838091C0088D838091C208B8
:102F700088878FEF8E838F8380913C0A8B8380912B
:102F8000420A89878091430A8A871C821F928AE0BD
:102F90008F93CE01019605C01F928AE08F938AE33A
:102FA0009AE09F938F9381E08F938F9386E58F9321
:102FB000DAD90FB6F894DEBF0FBECDBF1092FD0474
:102FC000809101058823D1F08091B7028823B1F068
:102FD0001F928BE08F938CE59AE09F938F9381E013
:102FE0008F938091B4028F9387E48F93BCD9109212
:102FF00001050FB6F894DEBF0FBECDBF8091F1047E
:103000009091F204892B29F48091FE04811109C06A
:103010002EC08091380A9091390A0E944F888823E7
:1030200099F38091B702882311F10E94AE251F9277
:1030300082E48F9383E29CE09F938F9381E08F9350
:103040008F9384E48F938FD91092FE048091F104C2
:103050009091F2040FB6F894DEBF0FBECDBF00977B
:1030600031F00E9446889093390A8093380A809103
:10307000EF049091F004892B09F485C08091360A01
:103080009091370A0E944F88882309F47CC0809170
:10309000B702882309F477C008E21AE08091C708D4
:1030A0009091C8089093290A8093280A8091C908B2
:1030B0009091CA0890932B0A80932A0A20914B067C
:1030C00030914C0640914D0650914E06AAE0B0E07A
:1030D000DCD22091210130912201409123015091B5
:1030E000240196D230932D0A20932C0A8091240437
:1030F00090912504A0912604B0912704E9E0B595AC
:10310000A79597958795EA95D1F780932E0A809198
:10311000200490912104A0912204B0912304F9E0AD
:10312000B595A79597958795FA95D1F780932F0A2E
:1031300080912C0490912D04A0912E04B0912F0425
:1031400029E0B595A795979587952A95D1F780930E
:10315000300A1F928EE08F931F930F9381E08F931D
:103160008F9383E48F93FFD88091EF049091F004C4
:103170000E9446889093370A8093360A0FB6F894D7
:10318000DEBF0FBECDBF6091B6026F3F39F190E157
:10319000699FB0011124605B7A4E40E150E08E01DE
:1031A0000F5F1F4FC801B8D21F9280E18F931F930A
:1031B0000F931F9221E02F9386EB92E09F938F93C2
:1031C00082E08F932F9381E48F93CDD88FEF8093FC
:1031D000B6020FB6F894DEBF0FBECDBF8091650C6E
:1031E0008823B9F08091B702882399F01F9221E0DB
:1031F0002F9385E69CE09F938F932F932F9382E4E8
:103200008F93B1D81092650C0FB6F894DEBF0FBE45
:10321000CDBF8091FC048823C1F08091B702882340
:10322000A1F01F9286E48F938EE098E09F938F9396
:1032300081E08F938F9380E58F9395D81092FC0453
:103240000FB6F894DEBF0FBECDBF8091670A909194
:10325000680A0E944F88882309F44AC08091B70207
:10326000882309F445C08091A40281112BC084E514
:103270009AE02091C7083091C8083093550A2093EE
:10328000540A2091C9083091CA083093570A2093F4
:10329000560A2091DE032093580A2091DD032093E3
:1032A000590A1F9228E02F939F938F9381E08F9369
:1032B00083E08F938BE68F9356D80FB6F894DEBFDA
:1032C0000FBECDBF80915A0A853018F086E08093FA
:1032D0005A0A8091C804882319F083E690E002C05E
:1032E00087EE93E00E9446889093680A8093670A6D
:1032F00060960FB6F894DEBF0FBECDBFDF91CF91C1
:103300001F910F910895089508955058BB27AA273B
:103310000ED0E0C0D1D030F0D6D020F031F49F3FB5
:1033200011F41EF4C6C00EF4E095E7FBBCC0E92F13
:10333000E2D080F3BA17620773078407950718F085
:1033400071F49EF5FAC00EF4E0950B2EBA2FA02D65
:103350000B01B90190010C01CA01A0011124FF2742
:10336000591B99F0593F50F4503E68F11A16F0403D
:10337000A22F232F342F4427585FF3CF469537953C
:103380002795A795F0405395C9F77EF41F16BA0B01
:10339000620B730B840BBAF09150A1F0FF0FBB1FAF
:1033A000661F771F881FC2F70EC0BA0F621F731FF8
:1033B000841F48F4879577956795B795F7959E3F55
:1033C00008F0B3CF9395880F08F09927EE0F9795E3
:1033D0008795089598D088F09F5790F0B92F992736
:1033E000B751A0F0D1F0660F771F881F991F1AF010
:1033F000BA95C9F712C0B13081F09FD0B1E00895FD
:103400009CC0672F782F8827B85F39F0B93FCCF37D
:10341000869577956795B395D9F73EF49095809505
:10342000709561957F4F8F4F9F4F0895E89409C025
:1034300097FB3EF490958095709561957F4F8F4FE7
:103440009F4F9923A9F0F92F96E9BB279395F695FD
:10345000879577956795B795F111F8CFFAF4BB0F7B
:1034600011F460FF1BC06F5F7F4F8F4F9F4F16C0DF
:10347000882311F096E911C0772321F09EE8872F69
:10348000762F05C0662371F096E8862F70E060E025
:103490002AF09A95660F771F881FDAF7880F96959E
:1034A000879597F9089597F99F6780E870E060E045
:1034B00008959FEF80EC089500240A9416161706CD
:1034C00018060906089500240A9412161306140615
:1034D00005060895092E0394000C11F4882352F078
:1034E000BB0F40F4BF2B11F460FF04C06F5F7F4F30
:1034F0008F4F9F4F089557FD9058440F551F59F017
:103500005F3F71F04795880F97FB991F61F09F3FD0
:1035100079F087950895121613061406551FF2CFF9
:103520004695F1DF08C0161617061806991FF1CF49
:1035300086957105610508940895E894BB27662770
:103540007727CB0197F90895DB018F939F939DD047
:10355000BF91AF91A29F800D911DA39F900DB29F2F
:10356000900D11240895991B79E004C0991F9617B6
:1035700008F0961B881F7A95C9F780950895AA1BB5
:10358000BB1B51E107C0AA1FBB1FA617B70710F04E
:10359000A61BB70B881F991F5A95A9F78095909580
:1035A000BC01CD01089597FB072E16F4009406D0B8
:1035B00077FD08D0E4DF07FC05D03EF490958195B7
:1035C0009F4F0895709561957F4F0895A1E21A2E3F
:1035D000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1FB7
:1035E000A217B307E407F50720F0A21BB30BE40B07
:1035F000F50B661F771F881F991F1A9469F760954E
:103600007095809590959B01AC01BD01CF01089507
:10361000052E97FB16F400940FD057FD05D0D6DF8A
:1036200007FC02D046F408C050954095309521958E
:103630003F4F4F4F5F4F08959095809570956195DE
:103640007F4F8F4F9F4F0895EE0FFF1F0590F4910E
:10365000E02D099405D0332312F48A1B9B0B10C074
:10366000A29FB001B39FC001A39F700D811D1124C3
:10367000911DB29F700D811D1124911D0895F0DFE1
:10368000B7FF0895821B930B0895EADFA59F900D65
:10369000B49F900DA49F800D911D11240895B7FF34
:1036A000F4CFF3DF821B930B08952F923F924F923A
:1036B0005F926F927F928F929F92AF92BF92CF92C2
:1036C000DF92EF92FF920F931F93CF93DF93CDB7CB
:1036D000DEB7CA1BDB0B0FB6F894DEBF0FBECDBF43
:1036E00009942A88398848885F846E847D848C8414
:1036F0009B84AA84B984C884DF80EE80FD800C811D
:103700001B81AA81B981CE0FD11D0FB6F894DEBFFF
:103710000FBECDBFED010895FB01DC0102C0059095
:103720000D9241505040D8F70895FC01415050404F
:1037300030F001900616D1F73197CF010895882710
:1037400099270895FB01DC0102C001900D924150C0
:103750005040D8F70895DC01CB01FC01F999FECF68
:1037600006C0F2BDE1BDF89A319600B40D92415009
:103770005040B8F70895F999FECF92BD81BDF89AEF
:10378000992780B50895A8E1B0E042E050E0E5CF88
:10379000DC01CB0102C02D9105D041505040D8F73B
:1037A0000895262FF999FECF1FBA92BD81BD20BD85
:1037B0000FB6F894FA9AF99A0FBE01960895F1DFC0
:0837C000272FF0CFF894FFCF92
:1037C800F7FFFCFF70FF01010F64070610F4010109
:1037D800FF03007D0000C409C409960064E803647F
:1037E800200B050000ECFF6440415A4655326464E2
:1037F8000A969696960864403A1030380132FF03CC
:103808007F0090D0030090D0030032002064FFFFB7
:103818000104035E0A0101150101010101014D4B7B
:10382800202020202020202020202001000000002F
:1038380000566F6C746167652020205620200100B7
:103848000000000143757272656E742020204120CB
:1038580020010000000001436170616369747920F0
:1038680020416820010000000002416C74697475F1
:10387800646520206D2020010000000000436F6D6A
:1038880070617373202020B0202001000000000028
:103898005361747320202020202020202001000064
:1038A800000000537065656420202020206D2F7370
:1038B80001000000000044697374616E6365202094
:1038C8006D2020010000000000486F6D652D4469DF
:1038D800722020B020200100000000006D61782EC9
:1038E80054656D702E20B043200100000000004D8B
:1038F80061676E2E6669656C6425202001000000F2
:103908000000566172696F202020202020202001AD
:1039180000000000004572726F72436F64652020DA
:1039280020200100000000004C6174697475646512
:1039380020202020200900000000004C6F6E6769DD
:103948007475646520202020090000000000010132
:1039580013D201010168200B0A130B0E100B0A0C7D
:103968000F0B1110FA20010020FFFFC01FC01F011C
:1039780064000C090164FF0151756164726F0000F5
:1039880000000000004167696C650000020406073A
:103998000808080706040200FEFCFAF9F8F8F8F926
:0A39A800FAFCFE00020406070808FE
:00000001FF
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/FlightCtrl.lss
0,0 → 1,30928
 
FlightCtrl.elf: file format elf32-avr
 
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 000001ea 00800100 000137c8 0001385c 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 000137c8 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 000009cc 008002ea 008002ea 00013a46 2**0
ALLOC
3 .comment 00000030 00000000 00000000 00013a46 2**0
CONTENTS, READONLY
4 .debug_aranges 00000020 00000000 00000000 00013a78 2**3
CONTENTS, READONLY, DEBUGGING
5 .debug_info 0000007c 00000000 00000000 00013a98 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 00000014 00000000 00000000 00013b14 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 00000334 00000000 00000000 00013b28 2**0
CONTENTS, READONLY, DEBUGGING
 
Disassembly of section .text:
 
00000000 <__vectors>:
0: 0c 94 60 0c jmp 0x18c0 ; 0x18c0 <__ctors_end>
4: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
8: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
c: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
10: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
14: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
18: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
1c: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
20: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
24: 0c 94 df 8a jmp 0x115be ; 0x115be <__vector_9>
28: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
2c: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
30: 0c 94 4a 7e jmp 0xfc94 ; 0xfc94 <__vector_12>
34: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
38: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
3c: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
40: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
44: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
48: 0c 94 67 87 jmp 0x10ece ; 0x10ece <__vector_18>
4c: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
50: 0c 94 8e 90 jmp 0x1211c ; 0x1211c <__vector_20>
54: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
58: 0c 94 52 90 jmp 0x120a4 ; 0x120a4 <__vector_22>
5c: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
60: 0c 94 4c 1b jmp 0x3698 ; 0x3698 <__vector_24>
64: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
68: 0c 94 64 8c jmp 0x118c8 ; 0x118c8 <__vector_26>
6c: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
70: 0c 94 11 1a jmp 0x3422 ; 0x3422 <__vector_28>
74: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
78: 0c 94 66 0f jmp 0x1ecc ; 0x1ecc <__vector_30>
7c: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
80: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
84: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
88: 0c 94 ba 0c jmp 0x1974 ; 0x1974 <__bad_interrupt>
8c: 7b 1b sub r23, r27
8e: 80 1b sub r24, r16
90: 85 1b sub r24, r21
92: 8e 1b sub r24, r30
94: a5 1b sub r26, r21
96: bc 1b sub r27, r28
98: cb 1b sub r28, r27
9a: db 1b sub r29, r27
9c: 37 1c adc r3, r7
9e: 7c 1e adc r7, r28
a0: bc 1b sub r27, r28
a2: 47 1d adc r20, r7
a4: 58 1d adc r21, r8
a6: 6d 1d adc r22, r13
a8: 8c 1d adc r24, r12
aa: a9 1d adc r26, r9
ac: f7 1d adc r31, r7
ae: 45 1e adc r4, r21
b0: a0 5c subi r26, 0xC0 ; 192
b2: 7a 5f subi r23, 0xFA ; 250
b4: 34 63 ori r19, 0x34 ; 52
b6: 79 65 ori r23, 0x59 ; 89
b8: c6 66 ori r28, 0x66 ; 102
ba: f0 67 ori r31, 0x70 ; 112
bc: 53 69 ori r21, 0x93 ; 147
be: ac 5c subi r26, 0xCC ; 204
c0: 38 5d subi r19, 0xD8 ; 216
c2: a1 5d subi r26, 0xD1 ; 209
c4: f4 5d subi r31, 0xD4 ; 212
c6: 39 5e subi r19, 0xE9 ; 233
c8: 9e 5e subi r25, 0xEE ; 238
ca: 48 6b ori r20, 0xB8 ; 184
cc: 06 5f subi r16, 0xF6 ; 246
ce: 59 5f subi r21, 0xF9 ; 249
d0: 59 5f subi r21, 0xF9 ; 249
d2: 59 5f subi r21, 0xF9 ; 249
d4: 59 5f subi r21, 0xF9 ; 249
d6: 59 5f subi r21, 0xF9 ; 249
d8: 59 5f subi r21, 0xF9 ; 249
da: 59 5f subi r21, 0xF9 ; 249
dc: 59 5f subi r21, 0xF9 ; 249
de: 59 5f subi r21, 0xF9 ; 249
e0: 85 5f subi r24, 0xF5 ; 245
e2: e9 5f subi r30, 0xF9 ; 249
e4: 6c 60 ori r22, 0x0C ; 12
e6: 9a 60 ori r25, 0x0A ; 10
e8: d6 60 ori r29, 0x06 ; 6
ea: 2e 61 ori r18, 0x1E ; 30
ec: bb 61 ori r27, 0x1B ; 27
ee: ce 62 ori r28, 0x2E ; 46
f0: 14 63 ori r17, 0x34 ; 52
f2: 14 63 ori r17, 0x34 ; 52
f4: 14 63 ori r17, 0x34 ; 52
f6: 14 63 ori r17, 0x34 ; 52
f8: 14 63 ori r17, 0x34 ; 52
fa: 14 63 ori r17, 0x34 ; 52
fc: 14 63 ori r17, 0x34 ; 52
fe: 14 63 ori r17, 0x34 ; 52
100: 14 63 ori r17, 0x34 ; 52
102: 40 63 ori r20, 0x30 ; 48
104: 52 63 ori r21, 0x32 ; 50
106: 6b 63 ori r22, 0x3B ; 59
108: bf 63 ori r27, 0x3F ; 63
10a: f7 63 ori r31, 0x37 ; 55
10c: 51 64 ori r21, 0x41 ; 65
10e: 7d 64 ori r23, 0x4D ; 77
110: 04 65 ori r16, 0x54 ; 84
112: 48 6b ori r20, 0xB8 ; 184
114: 56 65 ori r21, 0x56 ; 86
116: 56 65 ori r21, 0x56 ; 86
118: 56 65 ori r21, 0x56 ; 86
11a: 56 65 ori r21, 0x56 ; 86
11c: 56 65 ori r21, 0x56 ; 86
11e: 56 65 ori r21, 0x56 ; 86
120: 56 65 ori r21, 0x56 ; 86
122: 56 65 ori r21, 0x56 ; 86
124: d8 75 andi r29, 0x58 ; 88
126: b7 76 andi r27, 0x67 ; 103
128: 3f 77 andi r19, 0x7F ; 127
12a: a3 77 andi r26, 0x73 ; 115
12c: e3 77 andi r30, 0x73 ; 115
12e: 83 78 andi r24, 0x83 ; 131
130: f9 78 andi r31, 0x89 ; 137
132: 51 79 andi r21, 0x91 ; 145
134: b2 79 andi r27, 0x92 ; 146
136: e2 79 andi r30, 0x92 ; 146
138: 2e 7a andi r18, 0xAE ; 174
13a: 59 7a andi r21, 0xA9 ; 169
13c: 84 7a andi r24, 0xA4 ; 164
13e: dc 7a andi r29, 0xAC ; 172
140: 22 7b andi r18, 0xB2 ; 178
142: 70 7b andi r23, 0xB0 ; 176
144: b9 7b andi r27, 0xB9 ; 185
146: fe 7b andi r31, 0xBE ; 190
148: 64 7c andi r22, 0xC4 ; 196
14a: 4e 7d andi r20, 0xDE ; 222
14c: 48 83 st Y, r20
14e: a1 84 ldd r10, Z+9 ; 0x09
150: 1a 85 ldd r17, Y+10 ; 0x0a
152: cb 85 ldd r28, Y+11 ; 0x0b
154: 6b 85 ldd r22, Y+11 ; 0x0b
156: 9b 85 ldd r25, Y+11 ; 0x0b
158: 87 83 std Z+7, r24 ; 0x07
15a: 4f 84 ldd r4, Y+15 ; 0x0f
15c: cb 85 ldd r28, Y+11 ; 0x0b
15e: e4 83 std Z+4, r30 ; 0x04
160: 86 8c ldd r8, Z+30 ; 0x1e
162: c6 8c ldd r12, Z+30 ; 0x1e
164: fd 8c ldd r15, Y+29 ; 0x1d
166: 5a 8d ldd r21, Y+26 ; 0x1a
168: 77 8d ldd r23, Z+31 ; 0x1f
16a: b4 8d ldd r27, Z+28 ; 0x1c
16c: 5c 8e std Y+28, r5 ; 0x1c
16e: 13 18 sub r1, r3
170: 16 18 sub r1, r6
172: 16 18 sub r1, r6
174: 16 18 sub r1, r6
176: 1f 18 sub r1, r15
178: 22 18 sub r2, r2
17a: 25 18 sub r2, r5
17c: 37 18 sub r3, r7
17e: 34 18 sub r3, r4
 
00000180 <__trampolines_end>:
180: 2e 00 .word 0x002e ; ????
 
00000182 <__c.3064>:
182: 0a 0d 4d 69 78 65 72 2d 43 6f 6e 66 69 67 3a 20 ..Mixer-Config:
192: 27 25 73 27 20 28 25 75 20 4d 6f 74 6f 72 73 29 '%s' (%u Motors)
...
 
000001a3 <__c.3059>:
1a3: 0a 0d 47 65 6e 65 72 61 74 69 6e 67 20 64 65 66 ..Generating def
1b3: 61 75 6c 74 20 4d 69 78 65 72 20 54 61 62 6c 65 ault Mixer Table
...
 
000001c4 <__c.3057>:
1c4: 0a 0d 55 73 69 6e 67 20 50 61 72 61 6d 65 74 65 ..Using Paramete
1d4: 72 20 53 65 74 20 25 64 00 r Set %d.
 
000001dd <__c.3048>:
1dd: 0a 0d 47 65 6e 65 72 61 74 69 6e 67 20 64 65 66 ..Generating def
1ed: 61 75 6c 74 20 50 61 72 61 6d 65 74 65 72 20 53 ault Parameter S
1fd: 65 74 20 25 64 00 et %d.
 
00000203 <__c.3045>:
203: 0a 0d 2d 2d 3e 20 48 61 72 64 77 61 72 65 20 56 ..--> Hardware V
213: 65 72 73 69 6f 6e 20 42 79 74 65 20 43 68 61 6e ersion Byte Chan
223: 67 65 64 20 3c 2d 2d 00 ged <--.
 
0000022b <__c.3157>:
22b: 0a 0d 47 79 72 6f 20 63 61 6c 69 62 72 61 74 69 ..Gyro calibrati
23b: 6f 6e 20 64 61 74 61 20 6e 6f 74 20 76 61 6c 69 on data not vali
24b: 64 0d 0a 00 d...
 
0000024f <__c.3152>:
24f: 0a 0d 41 43 43 20 6e 6f 74 20 63 61 6c 69 62 72 ..ACC not calibr
25f: 61 74 65 64 21 0d 0a 00 ated!...
 
00000267 <__c.3029>:
267: 0a 0d 46 6c 69 67 68 74 2d 74 69 6d 65 20 25 75 ..Flight-time %u
277: 20 6d 69 6e 20 54 6f 74 61 6c 3a 25 75 20 6d 69 min Total:%u mi
287: 6e 00 n.
 
00000289 <__c.3027>:
289: 4f 4b 0a 0d 00 OK...
 
0000028e <__c.3022>:
28e: 0a 0d 43 61 6c 69 62 72 61 74 69 6e 67 20 70 72 ..Calibrating pr
29e: 65 73 73 75 72 65 20 73 65 6e 73 6f 72 2e 2e 00 essure sensor...
 
000002ae <__c.3020>:
2ae: 3c 2d 2d 20 77 61 72 6e 69 6e 67 20 6f 6c 64 20 <-- warning old
2be: 56 65 72 73 69 6f 6e 21 00 Version!.
 
000002c7 <__c.3018>:
2c7: 0a 0d 42 4c 2d 46 69 72 6d 77 61 72 65 20 25 64 ..BL-Firmware %d
2d7: 2e 25 30 32 64 00 .%02d.
 
000002dd <__c.3013>:
2dd: 0a 0d 0a 0d 21 21 20 4d 49 53 53 49 4e 47 20 42 ....!! MISSING B
2ed: 4c 2d 43 54 52 4c 3a 20 25 64 20 21 21 00 L-CTRL: %d !!.
 
000002fb <__c.3008>:
2fb: 25 64 00 %d.
 
000002fe <__c.2999>:
2fe: 0a 0d 46 6f 75 6e 64 20 42 4c 2d 43 74 72 6c 3a ..Found BL-Ctrl:
30e: 20 00 .
 
00000310 <__c.2990>:
310: 0a 0d 4f 6c 64 20 46 43 20 48 61 72 64 77 61 72 ..Old FC Hardwar
320: 65 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 e not supported
330: 62 79 20 74 68 69 73 20 46 69 72 6d 77 61 72 65 by this Firmware
340: 21 00 !.
 
00000342 <__c.2976>:
342: 20 20 41 75 74 6f 6c 61 6e 64 69 6e 67 3a 20 25 Autolanding: %
352: 64 2e 25 64 56 00 d.%dV.
 
00000358 <__c.2974>:
358: 20 20 41 75 74 6f 2d 43 48 3a 20 25 64 2e 25 64 Auto-CH: %d.%d
368: 56 00 V.
 
0000036a <__c.2972>:
36a: 20 4c 6f 77 20 77 61 72 6e 69 6e 67 3a 20 25 64 Low warning: %d
37a: 2e 25 64 56 00 .%dV.
 
0000037f <__c.2970>:
37f: 20 25 64 20 43 65 6c 6c 73 20 00 %d Cells .
 
0000038a <__c.2968>:
38a: 0a 0d 42 61 74 74 3a 00 ..Batt:.
 
00000392 <__c.2959>:
392: 0a 0d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ..==============
3a2: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
3b2: 3d 3d 3d 3d 3d 00 =====.
 
000003b8 <__c.3487>:
3b8: 25 73 00 %s.
 
000003bb <__c.3485>:
3bb: 28 53 65 74 20 2d 3e 20 4c 6f 61 64 29 00 (Set -> Load).
 
000003c9 <__c.3483>:
3c9: 4e 6f 20 53 44 2d 43 61 72 64 20 20 20 00 No SD-Card .
 
000003d7 <__c.3481>:
3d7: 2d 2d 00 --.
 
000003da <__c.3479>:
3da: 25 32 64 00 %2d.
 
000003de <__c.3477>:
3de: 20 20 20 00 .
 
000003e2 <__c.3475>:
3e2: 6c 6f 61 64 20 70 6f 69 6e 74 3a 00 load point:.
 
000003ee <__c.3470>:
3ee: 43 61 6d 3a 20 25 33 69 00 Cam: %3i.
 
000003f7 <__c.3468>:
3f7: 44 49 52 3a 20 25 33 64 25 63 00 DIR: %3d%c.
 
00000402 <__c.3466>:
402: 41 4c 54 3a 25 34 69 6d 20 20 20 20 00 ALT:%4im .
 
0000040f <__c.3464>:
40f: 41 4c 54 3a 25 34 69 2f 25 69 6d 20 00 ALT:%4i/%im .
 
0000041c <__c.3461>:
41c: 57 50 3a 25 32 64 2f 25 64 20 44 69 73 74 3a 25 WP:%2d/%d Dist:%
42c: 33 64 6d 20 00 3dm .
 
00000431 <__c.3459>:
431: 20 25 32 69 3a 25 30 32 69 20 00 %2i:%02i .
 
0000043c <__c.3457>:
43c: 20 25 32 69 2e 25 31 69 56 20 00 %2i.%1iV .
 
00000447 <__c.3453>:
447: 4c 6f 61 64 20 73 69 6e 67 6c 65 20 50 6f 73 69 Load single Posi
457: 74 69 6f 6e 00 tion.
 
0000045c <__c.3446>:
45c: 21 4e 6f 20 47 50 53 2d 46 69 78 21 20 00 !No GPS-Fix! .
 
0000046a <__c.3444>:
46a: 28 53 65 74 20 2d 3e 20 53 74 6f 72 65 29 00 (Set -> Store).
 
00000479 <__c.3442>:
479: 4e 6f 20 53 44 2d 43 61 72 64 20 20 20 00 No SD-Card .
 
00000487 <__c.3440>:
487: 2d 2d 00 --.
 
0000048a <__c.3438>:
48a: 25 32 64 20 00 %2d .
 
0000048f <__c.3436>:
48f: 20 20 20 00 .
 
00000493 <__c.3434>:
493: 53 74 6f 72 65 20 70 6f 69 6e 74 3a 00 Store point:.
 
000004a0 <__c.3429>:
4a0: 43 61 6d 3a 20 25 33 69 00 Cam: %3i.
 
000004a9 <__c.3427>:
4a9: 44 49 52 3a 20 25 33 64 25 63 00 DIR: %3d%c.
 
000004b4 <__c.3425>:
4b4: 41 4c 54 3a 25 34 69 6d 00 ALT:%4im.
 
000004bd <__c.3422>:
4bd: 20 25 32 69 3a 25 30 32 69 20 00 %2i:%02i .
 
000004c8 <__c.3420>:
4c8: 20 25 32 69 2e 25 31 69 56 20 00 %2i.%1iV .
 
000004d3 <__c.3416>:
4d3: 53 74 6f 72 65 20 73 69 6e 67 6c 65 20 50 6f 73 Store single Pos
4e3: 69 74 69 6f 6e 00 ition.
 
000004e9 <__c.3409>:
4e9: 20 20 20 20 20 20 20 20 20 20 20 20 20 00 .
 
000004f7 <__c.3407>:
4f7: 28 53 65 74 20 2d 3e 20 4c 6f 61 64 29 00 (Set -> Load).
 
00000505 <__c.3405>:
505: 4e 6f 20 53 44 2d 43 61 72 64 20 20 20 00 No SD-Card .
 
00000513 <__c.3403>:
513: 20 2d 2d 00 --.
 
00000517 <__c.3401>:
517: 25 32 64 20 28 46 49 58 29 00 %2d (FIX).
 
00000521 <__c.3399>:
521: 20 20 20 00 .
 
00000525 <__c.3397>:
525: 4c 6f 61 64 20 6c 69 73 74 3a 00 Load list:.
 
00000530 <__c.3392>:
530: 25 73 00 %s.
 
00000533 <__c.3390>:
533: 25 32 69 2e 25 31 69 56 20 00 %2i.%1iV .
 
0000053d <__c.3387>:
53d: 4e 6f 20 57 50 73 20 61 63 74 69 76 65 20 20 20 No WPs active
54d: 20 00 .
 
0000054f <__c.3385>:
54f: 41 63 74 69 76 65 20 57 50 3a 25 32 64 2f 25 64 Active WP:%2d/%d
55f: 20 00 .
 
00000561 <__c.3381>:
561: 28 46 69 78 65 64 20 50 6f 73 69 74 69 6f 6e 73 (Fixed Positions
571: 29 00 ).
 
00000573 <__c.3379>:
573: 4c 6f 61 64 20 57 61 79 70 6f 69 6e 74 73 00 Load Waypoints.
 
00000582 <__c.3372>:
582: 21 4e 6f 20 47 50 53 2d 46 69 78 21 20 00 !No GPS-Fix! .
 
00000590 <__c.3370>:
590: 20 20 20 20 20 20 20 20 20 20 20 20 20 00 .
 
0000059e <__c.3368>:
59e: 28 53 65 74 20 2d 3e 20 4c 6f 61 64 29 00 (Set -> Load).
 
000005ac <__c.3366>:
5ac: 4e 6f 20 53 44 2d 43 61 72 64 20 20 20 00 No SD-Card .
 
000005ba <__c.3364>:
5ba: 4c 6f 61 64 20 6c 69 73 74 3a 20 2d 2d 20 00 Load list: -- .
 
000005c9 <__c.3362>:
5c9: 4c 6f 61 64 20 6c 69 73 74 3a 00 Load list:.
 
000005d4 <__c.3360>:
5d4: 25 32 69 20 20 20 00 %2i .
 
000005db <__c.3358>:
5db: 20 20 20 00 .
 
000005df <__c.3353>:
5df: 25 73 00 %s.
 
000005e2 <__c.3351>:
5e2: 25 32 69 2e 25 31 69 56 20 00 %2i.%1iV .
 
000005ec <__c.3348>:
5ec: 4e 6f 20 57 50 73 20 61 63 74 69 76 65 20 20 20 No WPs active
5fc: 20 20 00 .
 
000005ff <__c.3346>:
5ff: 41 63 74 69 76 65 20 57 50 3a 25 32 64 2f 25 64 Active WP:%2d/%d
60f: 20 00 .
 
00000611 <__c.3342>:
611: 28 52 65 6c 61 74 69 76 65 20 50 6f 73 69 74 69 (Relative Positi
621: 6f 6e 73 29 00 ons).
 
00000626 <__c.3340>:
626: 4c 6f 61 64 20 57 61 79 70 6f 69 6e 74 73 00 Load Waypoints.
 
00000635 <__c.3324>:
635: 43 4f 4d 50 41 53 53 20 4f 46 46 21 20 00 COMPASS OFF! .
 
00000643 <__c.3322>:
643: 48 48 21 20 00 HH! .
 
00000648 <__c.3320>:
648: 4c 4f 4f 50 49 4e 47 21 20 00 LOOPING! .
 
00000652 <__c.3318>:
652: 43 4f 55 50 4c 49 4e 47 20 4f 46 46 21 20 00 COUPLING OFF! .
 
00000661 <__c.3315>:
661: 50 34 3a 25 34 69 20 50 35 3a 25 34 69 20 36 3a P4:%4i P5:%4i 6:
671: 25 33 69 00 %3i.
 
00000675 <__c.3313>:
675: 50 31 3a 25 34 69 20 50 32 3a 25 34 69 20 33 3a P1:%4i P2:%4i 3:
685: 25 33 69 00 %3i.
 
00000689 <__c.3311>:
689: 47 73 3a 25 34 69 20 59 61 3a 25 34 69 20 00 Gs:%4i Ya:%4i .
 
00000698 <__c.3309>:
698: 4e 69 3a 25 34 69 20 52 6f 3a 25 34 69 20 43 3a Ni:%4i Ro:%4i C:
6a8: 25 33 69 00 %3i.
 
000006ac <__c.3306>:
6ac: 48 4f 4c 44 20 00 HOLD .
 
000006b2 <__c.3304>:
6b2: 25 75 6d 00 %um.
 
000006b6 <__c.3302>:
6b6: 48 4f 4d 45 20 41 4c 54 3a 00 HOME ALT:.
 
000006c0 <__c.3299>:
6c0: 20 46 53 3a 25 75 73 65 6b 20 00 FS:%usek .
 
000006cb <__c.3297>:
6cb: 28 48 4f 4c 44 29 00 (HOLD).
 
000006d2 <__c.3295>:
6d2: 28 41 49 44 29 20 00 (AID) .
 
000006d9 <__c.3293>:
6d9: 28 48 4f 4d 45 29 00 (HOME).
 
000006e0 <__c.3291>:
6e0: 28 46 52 45 45 29 00 (FREE).
 
000006e7 <__c.3289>:
6e7: 44 49 53 41 42 4c 45 44 00 DISABLED.
 
000006f0 <__c.3287>:
6f0: 47 50 53 3a 00 GPS:.
 
000006f5 <__c.3284>:
6f5: 20 54 45 41 43 48 00 TEACH.
 
000006fc <__c.3282>:
6fc: 20 28 4f 46 46 29 00 (OFF).
 
00000703 <__c.3280>:
703: 20 28 4f 4e 29 20 00 (ON) .
 
0000070a <__c.3278>:
70a: 44 49 53 41 42 4c 45 44 00 DISABLED.
 
00000713 <__c.3276>:
713: 43 46 3a 00 CF:.
 
00000717 <__c.3273>:
717: 44 49 53 41 42 4c 45 44 00 DISABLED.
 
00000720 <__c.3271>:
720: 56 41 52 49 4f 00 VARIO.
 
00000726 <__c.3269>:
726: 4c 49 4d 49 54 00 LIMIT.
 
0000072c <__c.3267>:
72c: 28 4f 46 46 29 20 00 (OFF) .
 
00000733 <__c.3265>:
733: 28 4f 4e 29 20 20 00 (ON) .
 
0000073a <__c.3263>:
73a: 50 4f 54 49 3a 25 33 75 20 00 POTI:%3u .
 
00000744 <__c.3261>:
744: 41 4c 54 3a 00 ALT:.
 
00000749 <__c.3258>:
749: 4d 69 6e 3a 25 32 69 2e 25 31 69 56 20 25 73 20 Min:%2i.%1iV %s
...
 
0000075a <__c.3254>:
75a: 53 65 74 74 69 6e 67 3a 25 75 20 25 73 20 00 Setting:%u %s .
 
00000769 <__c.3240>:
769: 20 77 77 77 2e 4d 69 6b 72 6f 4b 6f 70 74 65 72 www.MikroKopter
779: 2e 64 65 20 20 00 .de .
 
0000077f <__c.3238>:
77f: 21 21 20 4c 69 50 6f 20 76 6f 6c 74 61 67 65 20 !! LiPo voltage
78f: 21 21 00 !!.
 
00000792 <__c.3236>:
792: 45 52 52 3a 20 00 ERR: .
 
00000798 <__c.3234>:
798: 45 52 52 3a 20 25 32 64 20 21 00 ERR: %2d !.
 
000007a3 <__c.3231>:
7a3: 25 33 69 20 25 33 69 20 25 33 69 20 25 33 69 25 %3i %3i %3i %3i%
7b3: 63 43 00 cC.
 
000007b6 <__c.3229>:
7b6: 25 33 69 20 25 33 69 25 63 43 20 20 20 20 20 20 %3i %3i%cC
7c6: 20 20 00 .
 
000007c9 <__c.3227>:
7c9: 25 32 69 2e 25 69 20 25 32 69 2e 25 69 20 25 32 %2i.%i %2i.%i %2
7d9: 69 2e 25 69 20 25 32 69 2e 25 69 41 00 i.%i %2i.%iA.
 
000007e6 <__c.3225>:
7e6: 25 32 69 2e 25 69 20 25 32 69 2e 25 69 41 00 %2i.%i %2i.%iA.
 
000007f5 <__c.3222>:
7f5: 25 33 69 20 25 33 69 20 25 33 69 20 25 33 69 25 %3i %3i %3i %3i%
805: 63 43 00 cC.
 
00000808 <__c.3220>:
808: 25 32 69 2e 25 69 20 25 32 69 2e 25 69 20 25 32 %2i.%i %2i.%i %2
818: 69 2e 25 69 20 25 32 69 2e 25 69 41 00 i.%i %2i.%iA.
 
00000825 <__c.3217>:
825: 20 20 20 4e 6f 20 4e 61 76 69 43 74 72 6c 20 20 No NaviCtrl
835: 20 20 20 20 20 00 .
 
0000083b <__c.3215>:
83b: 44 47 50 53 20 00 DGPS .
 
00000841 <__c.3213>:
841: 4e 4f 46 49 58 00 NOFIX.
 
00000847 <__c.3209>:
847: 20 20 33 44 20 00 3D .
 
0000084d <__c.3206>:
84d: 47 50 53 3a 25 32 75 6d 2f 73 20 53 41 54 3a 25 GPS:%2um/s SAT:%
85d: 64 20 00 d .
 
00000860 <__c.3203>:
860: 20 20 00 .
 
00000863 <__c.3201>:
863: 43 46 00 CF.
 
00000866 <__c.3199>:
866: 50 57 52 3a 25 32 69 2e 25 31 69 41 20 28 25 69 PWR:%2i.%1iA (%i
876: 57 29 20 00 W) .
 
0000087a <__c.3196>:
87a: 48 4d 3a 25 33 64 25 63 20 20 44 49 53 54 3a 25 HM:%3d%c DIST:%
88a: 33 64 6d 20 25 63 00 3dm %c.
 
00000891 <__c.3193>:
891: 25 63 00 %c.
 
00000894 <__c.3191>:
894: 41 4c 54 3a 2d 2d 2d 2d 20 00 ALT:---- .
 
0000089e <__c.3189>:
89e: 41 4c 54 3a 25 34 69 6d 00 ALT:%4im.
 
000008a7 <__c.3187>:
8a7: 41 4c 54 3a 25 34 69 6d 00 ALT:%4im.
 
000008b0 <__c.3185>:
8b0: 44 49 52 3a 25 33 64 25 63 00 DIR:%3d%c.
 
000008ba <__c.3181>:
8ba: 20 25 32 69 3a 25 30 32 69 20 20 25 32 69 2e 25 %2i:%02i %2i.%
8ca: 31 69 56 20 25 34 69 6d 41 68 00 1iV %4imAh.
 
000008d5 <__c.3179>:
8d5: 20 25 32 69 3a 25 30 32 69 20 20 25 32 69 2e 25 %2i:%02i %2i.%
8e5: 31 69 56 20 25 34 69 6d 41 68 00 1iV %4imAh.
 
000008f0 <__c.3164>:
8f0: 20 77 77 77 2e 4d 69 6b 72 6f 4b 6f 70 74 65 72 www.MikroKopter
900: 2e 64 65 20 20 00 .de .
 
00000906 <__c.3162>:
906: 21 21 20 4c 69 50 6f 20 76 6f 6c 74 61 67 65 20 !! LiPo voltage
916: 21 21 00 !!.
 
00000919 <__c.3160>:
919: 45 52 52 3a 20 00 ERR: .
 
0000091f <__c.3158>:
91f: 45 52 52 3a 20 25 32 64 20 21 00 ERR: %2d !.
 
0000092a <__c.3154>:
92a: 20 20 20 20 25 32 75 6d 2f 73 3a 20 20 48 4d 3a %2um/s: HM:
93a: 25 33 64 25 63 20 25 63 00 %3d%c %c.
 
00000943 <__c.3152>:
943: 69 6e 63 6c 3a 25 32 64 25 63 28 25 32 69 29 00 incl:%2d%c(%2i).
 
00000953 <__c.3150>:
953: 48 4d 3a 25 33 64 25 63 20 25 63 00 HM:%3d%c %c.
 
0000095f <__c.3148>:
95f: 4d 41 47 3a 25 33 75 25 25 20 00 MAG:%3u%% .
 
0000096a <__c.3145>:
96a: 21 21 00 !!.
 
0000096d <__c.3141>:
96d: 33 44 00 3D.
 
00000970 <__c.3139>:
970: 44 20 00 D .
 
00000973 <__c.3136>:
973: 44 49 53 54 3a 25 33 64 6d 00 DIST:%3dm.
 
0000097d <__c.3134>:
97d: 53 41 54 3a 25 32 64 20 00 SAT:%2d .
 
00000986 <__c.3132>:
986: 3a 00 :.
 
00000988 <__c.3129>:
988: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
998: 2d 2d 2d 2d 2d 00 -----.
 
0000099e <__c.3127>:
99e: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d ---------+------
9ae: 2d 2d 2d 2d 2d 00 -----.
 
000009b4 <__c.3125>:
9b4: 3a 00 :.
 
000009b6 <__c.3123>:
9b6: 3a 00 :.
 
000009b8 <__c.3121>:
9b8: 3a 00 :.
 
000009ba <__c.3118>:
9ba: 49 3a 25 32 69 2e 25 31 69 41 20 00 I:%2i.%1iA .
 
000009c6 <__c.3116>:
9c6: 20 20 25 35 69 20 20 00 %5i .
 
000009ce <__c.3114>:
9ce: 20 20 25 35 69 20 20 00 %5i .
 
000009d6 <__c.3111>:
9d6: 20 00 .
 
000009d8 <__c.3109>:
9d8: 43 00 C.
 
000009da <__c.3107>:
9da: 44 49 52 3a 20 25 33 64 25 63 00 DIR: %3d%c.
 
000009e5 <__c.3105>:
9e5: 20 20 25 32 69 3a 25 30 32 69 20 20 00 %2i:%02i .
 
000009f2 <__c.3103>:
9f2: 20 20 25 32 69 3a 25 30 32 69 20 20 00 %2i:%02i .
 
000009ff <__c.3099>:
9ff: 41 4c 54 3a 2d 2d 2d 2d 20 00 ALT:---- .
 
00000a09 <__c.3097>:
a09: 41 4c 54 3a 25 34 69 6d 20 20 00 ALT:%4im .
 
00000a14 <__c.3095>:
a14: 41 4c 54 3a 25 34 69 6d 20 25 63 00 ALT:%4im %c.
 
00000a20 <__c.3093>:
a20: 20 20 25 32 69 2e 25 31 69 56 20 20 00 %2i.%1iV .
 
00000a2d <__c.3091>:
a2d: 20 20 25 32 69 2e 25 31 69 56 20 20 00 %2i.%1iV .
 
00000a3a <__c.2982>:
a3a: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
a4a: 20 20 20 20 20 00 .
 
00000a50 <HOTT_ERROR>:
a50: 00 00 05 00 05 00 04 01 06 01 08 00 06 01 02 00 ................
a60: 04 00 04 00 07 00 07 00 07 00 07 00 07 00 07 00 ................
a70: 07 00 03 01 03 01 05 00 17 01 0f 01 06 00 09 01 ................
a80: 0a 01 19 01 05 01 05 01 19 01 1a 01 0f 01 01 00 ................
a90: 09 00 06 00 06 00 ......
 
00000a96 <NC_ERROR_TEXT>:
a96: 4e 6f 20 45 72 72 6f 72 20 20 20 20 20 20 20 20 No Error
aa6: 00 4e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 20 .Not compatible
ab6: 20 00 4d 4b 33 4d 61 67 20 6e 6f 74 20 63 6f 6d .MK3Mag not com
ac6: 70 61 00 4e 6f 20 46 43 20 63 6f 6d 6d 75 6e 69 pa.No FC communi
ad6: 63 61 74 00 43 6f 6d 70 61 73 73 20 63 6f 6d 6d cat.Compass comm
ae6: 75 6e 69 63 00 47 50 53 20 63 6f 6d 6d 75 6e 69 unic.GPS communi
af6: 63 61 74 69 6f 00 63 6f 6d 70 61 73 73 20 76 61 catio.compass va
b06: 6c 75 65 20 20 20 00 52 43 20 53 69 67 6e 61 6c lue .RC Signal
b16: 20 6c 6f 73 74 20 20 00 46 43 20 73 70 69 20 72 lost .FC spi r
b26: 78 20 65 72 72 6f 72 20 00 4e 6f 20 4e 43 20 63 x error .No NC c
b36: 6f 6d 6d 75 6e 69 63 61 74 00 46 43 20 4e 69 63 ommunicat.FC Nic
b46: 6b 20 47 79 72 6f 20 20 20 20 00 46 43 20 52 6f k Gyro .FC Ro
b56: 6c 6c 20 47 79 72 6f 20 20 20 20 00 46 43 20 59 ll Gyro .FC Y
b66: 61 77 20 47 79 72 6f 20 20 20 20 20 00 46 43 20 aw Gyro .FC
b76: 4e 69 63 6b 20 41 43 43 20 20 20 20 20 00 46 43 Nick ACC .FC
b86: 20 52 6f 6c 6c 20 41 43 43 20 20 20 20 20 00 46 Roll ACC .F
b96: 43 20 5a 2d 41 43 43 20 20 20 20 20 20 20 20 00 C Z-ACC .
ba6: 50 72 65 73 73 75 72 65 20 73 65 6e 73 6f 72 20 Pressure sensor
bb6: 00 49 32 43 20 46 43 2d 3e 42 4c 2d 43 74 72 6c .I2C FC->BL-Ctrl
bc6: 20 00 42 6c 20 4d 69 73 73 69 6e 67 20 20 20 20 .Bl Missing
bd6: 20 20 00 4d 69 78 65 72 20 45 72 72 6f 72 20 20 .Mixer Error
be6: 20 20 20 00 43 61 72 65 66 72 65 65 20 45 72 72 .Carefree Err
bf6: 6f 72 20 20 00 47 50 53 20 46 69 78 20 6c 6f 73 or .GPS Fix los
c06: 74 20 20 20 20 00 4d 61 67 6e 65 74 20 45 72 72 t .Magnet Err
c16: 6f 72 20 20 20 20 00 4d 6f 74 6f 72 20 72 65 73 or .Motor res
c26: 74 61 72 74 20 20 20 00 42 4c 20 4c 69 6d 69 74 tart .BL Limit
c36: 61 74 69 6f 6e 20 20 20 00 47 50 53 20 52 61 6e ation .GPS Ran
c46: 67 65 20 20 20 20 20 20 20 00 4e 6f 20 53 44 2d ge .No SD-
c56: 43 61 72 64 20 20 20 20 20 20 00 53 44 2d 4c 6f Card .SD-Lo
c66: 67 67 69 6e 67 20 65 72 72 6f 72 00 46 6c 79 69 gging error.Flyi
c76: 6e 67 20 72 61 6e 67 65 21 20 20 20 00 4d 61 78 ng range! .Max
c86: 20 41 6c 74 69 74 75 64 65 21 20 20 20 00 4e 6f Altitude! .No
c96: 20 47 50 53 20 66 69 78 20 20 20 20 20 20 00 63 GPS fix .c
ca6: 6f 6d 70 61 73 73 20 6e 6f 74 20 63 61 6c 2e 00 ompass not cal..
cb6: 42 4c 2d 53 65 6c 66 74 65 73 74 20 20 20 20 20 BL-Selftest
cc6: 00 6e 6f 20 65 78 74 2e 20 63 6f 6d 70 61 73 73 .no ext. compass
cd6: 20 00 63 6f 6d 70 61 73 73 20 73 65 6e 73 6f 72 .compass sensor
ce6: 20 20 00 .
 
00000ce9 <SETTING>:
ce9: 53 65 74 20 20 3a 00 Set :.
 
00000cf0 <BOAT_MODE>:
cf0: 20 4d 69 6b 72 6f 4b 6f 70 74 65 72 20 28 42 6f MikroKopter (Bo
d00: 61 74 29 20 20 00 at) .
 
00000d06 <SIMULATION>:
d06: 20 20 53 49 4d 55 4c 41 54 49 4f 4e 20 61 63 74 SIMULATION act
d16: 69 76 65 20 20 00 ive .
 
00000d1c <LANDING>:
d1c: 20 21 21 20 20 20 4c 41 4e 44 49 4e 47 20 20 20 !! LANDING
d2c: 20 21 21 20 20 00 !! .
 
00000d32 <UNDERVOLTAGE>:
d32: 20 21 21 20 4c 69 50 6f 20 76 6f 6c 74 61 67 65 !! LiPo voltage
d42: 20 21 21 20 20 00 !! .
 
00000d48 <MIKROKOPTER>:
d48: 20 20 20 20 20 4d 69 6b 72 6f 4b 6f 70 74 65 72 MikroKopter
d58: 20 20 20 20 20 00 .
 
00000d5e <__c.3117>:
d5e: 4e 6f 20 4e 61 76 69 43 74 72 6c 21 00 No NaviCtrl!.
 
00000d6b <__c.3115>:
d6b: 48 6f 6d 65 3a 25 33 64 6d 20 25 33 64 25 63 20 Home:%3dm %3d%c
d7b: 25 63 00 %c.
 
00000d7e <__c.3113>:
d7e: 44 47 50 53 00 DGPS.
 
00000d83 <__c.3111>:
d83: 4e 6f 46 78 00 NoFx.
 
00000d88 <__c.3107>:
d88: 20 20 33 44 00 3D.
 
00000d8d <__c.3104>:
d8d: 25 32 75 6d 2f 73 20 53 61 74 3a 25 64 20 00 %2um/s Sat:%d .
 
00000d9c <__c.3099>:
d9c: 20 20 00 .
 
00000d9f <__c.3097>:
d9f: 2d 3e 00 ->.
 
00000da2 <__c.3095>:
da2: 2d 2d 2f 2d 2d 00 --/--.
 
00000da8 <__c.3093>:
da8: 25 32 64 2f 25 64 20 00 %2d/%d .
 
00000db0 <__c.3091>:
db0: 23 25 32 64 20 57 50 73 3a 00 #%2d WPs:.
 
00000dba <__c.3089>:
dba: 6e 6f 20 47 50 53 2d 46 69 78 00 no GPS-Fix.
 
00000dc5 <__c.3087>:
dc5: 6e 6f 20 53 44 2d 43 61 72 64 00 no SD-Card.
 
00000dd0 <__c.3085>:
dd0: 52 65 6c 3a 25 73 00 Rel:%s.
 
00000dd7 <__c.3083>:
dd7: 52 65 6c 61 74 69 76 65 20 57 50 73 20 00 Relative WPs .
 
00000de5 <__c.3076>:
de5: 20 20 00 .
 
00000de8 <__c.3074>:
de8: 2d 3e 00 ->.
 
00000deb <__c.3072>:
deb: 2d 2d 2f 2d 2d 00 --/--.
 
00000df1 <__c.3070>:
df1: 25 32 64 2f 25 64 20 00 %2d/%d .
 
00000df9 <__c.3068>:
df9: 23 25 32 64 20 57 50 3a 00 #%2d WP:.
 
00000e02 <__c.3066>:
e02: 6e 6f 20 53 44 2d 43 61 72 64 00 no SD-Card.
 
00000e0d <__c.3064>:
e0d: 46 49 58 3a 25 73 00 FIX:%s.
 
00000e14 <__c.3062>:
e14: 46 49 58 20 57 61 79 70 6f 69 6e 74 73 00 FIX Waypoints.
 
00000e22 <__c.3055>:
e22: 20 20 00 .
 
00000e25 <__c.3053>:
e25: 2d 3e 00 ->.
 
00000e28 <__c.3051>:
e28: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
...
 
00000e39 <__c.3049>:
e39: 44 69 73 74 3a 25 33 64 20 41 6c 74 3a 25 33 64 Dist:%3d Alt:%3d
e49: 20 00 .
 
00000e4b <__c.3047>:
e4b: 25 32 64 00 %2d.
 
00000e4f <__c.3045>:
e4f: 6e 6f 20 53 44 2d 43 61 72 64 00 no SD-Card.
 
00000e5a <__c.3043>:
e5a: 4c 6f 61 64 20 50 6f 69 6e 74 00 Load Point.
 
00000e65 <__c.3036>:
e65: 20 20 00 .
 
00000e68 <__c.3034>:
e68: 2d 3e 00 ->.
 
00000e6b <__c.3032>:
e6b: 44 69 72 3a 25 33 64 20 41 6c 74 3a 25 33 64 6d Dir:%3d Alt:%3dm
...
 
00000e7c <__c.3030>:
e7c: 25 32 64 00 %2d.
 
00000e80 <__c.3028>:
e80: 6e 6f 20 47 50 53 2d 46 69 78 00 no GPS-Fix.
 
00000e8b <__c.3026>:
e8b: 6e 6f 20 53 44 2d 43 61 72 64 00 no SD-Card.
 
00000e96 <__c.3024>:
e96: 53 61 76 65 20 50 6f 69 6e 74 3a 00 Save Point:.
 
00000ea2 <__c.3017>:
ea2: 53 61 76 65 20 73 69 6e 67 6c 2e 50 6f 69 6e 74 Save singl.Point
...
 
00000eb3 <__c.3012>:
eb3: 4c 6f 61 64 20 73 69 6e 67 6c 2e 50 6f 69 6e 74 Load singl.Point
...
 
00000ec4 <__c.3007>:
ec4: 28 52 65 6c 61 74 69 76 65 29 20 20 20 00 (Relative) .
 
00000ed2 <__c.3005>:
ed2: 4c 6f 61 64 20 57 61 79 70 6f 69 6e 74 73 00 Load Waypoints.
 
00000ee1 <__c.3000>:
ee1: 28 46 69 78 65 64 29 20 20 20 20 20 20 00 (Fixed) .
 
00000eef <__c.2998>:
eef: 4c 6f 61 64 20 57 61 79 70 6f 69 6e 74 73 00 Load Waypoints.
 
00000efe <__c.2993>:
efe: 49 6e 63 6c 69 2e 3a 25 33 69 25 63 20 28 25 69 Incli.:%3i%c (%i
f0e: 29 20 00 ) .
 
00000f11 <__c.2991>:
f11: 4d 61 67 6e 65 74 3a 25 33 69 25 25 20 25 33 69 Magnet:%3i%% %3i
f21: 25 63 00 %c.
 
00000f24 <__c.2986>:
f24: 25 34 69 57 20 25 36 69 6d 41 68 00 %4iW %6imAh.
 
00000f30 <__c.2984>:
f30: 25 32 69 2e 25 31 69 56 20 25 33 69 2e 25 31 69 %2i.%1iV %3i.%1i
f40: 41 00 A.
 
00000f42 <__c.2979>:
f42: 25 63 43 20 20 20 20 20 00 %cC .
 
00000f4b <__c.2977>:
f4b: 54 65 6d 70 65 72 61 74 75 72 65 73 20 20 20 20 Temperatures
...
 
00000f5c <__c.2975>:
f5c: 25 33 69 20 25 33 69 20 25 33 69 20 25 33 69 00 %3i %3i %3i %3i.
 
00000f6c <__c.2973>:
f6c: 25 33 69 20 25 33 69 20 25 33 69 20 25 33 69 00 %3i %3i %3i %3i.
 
00000f7c <__c.2968>:
f7c: 52 00 R.
 
00000f7e <__c.2966>:
f7e: 25 34 69 6d 25 63 00 %4im%c.
 
00000f85 <__c.2964>:
f85: 25 34 69 20 25 32 69 3a 25 30 32 69 00 %4i %2i:%02i.
 
00000f92 <__c.2962>:
f92: 28 42 6f 61 74 2d 4d 6f 64 65 29 00 (Boat-Mode).
 
00000f9e <__c.2960>:
f9e: 53 65 74 25 64 3a 25 73 00 Set%d:%s.
 
00000fa7 <__c.2958>:
fa7: 53 49 4d 55 4c 41 54 49 4f 4e 00 SIMULATION.
 
00000fb2 <__c.2956>:
fb2: 45 52 52 4f 52 3a 20 25 32 64 20 00 ERROR: %2d .
 
00000fbe <__c.2952>:
fbe: 53 74 61 74 75 73 20 20 20 20 00 Status .
 
00000fc9 <__c.2950>:
fc9: 25 33 64 25 63 20 25 33 64 6d 25 63 00 %3d%c %3dm%c.
 
00000fd6 <__c.2948>:
fd6: 25 32 69 2e 25 31 69 56 00 %2i.%1iV.
 
00000fdf <JetiBox_Menu>:
fdf: 08 01 00 00 e3 6d 00 02 01 01 5f 6b 01 03 02 02 .....m...._k....
fef: db 6b 02 04 03 03 ce 71 03 05 04 09 77 6c 04 06 .k.....q....wl..
fff: 05 0a a2 6c 05 07 06 0b cd 6c 06 08 07 0c e2 6c ...l.....l.....l
100f: 07 00 08 06 33 6c 04 09 09 09 ed 70 05 0a 0a 0a ....3l.....p....
101f: f7 6c 06 0b 0b 0b 20 70 07 0c 0c 0c 68 6f .l.... p....ho
 
0000102d <JETI_CODE>:
102d: 00 4f 50 51 52 53 54 53 56 57 48 00 58 59 00 5a .OPQRSTSVWH.XY.Z
103d: 55 45 46 47 48 41 00 49 42 4a 4a 00 00 00 00 00 UEFGHA.IBJJ.....
104d: 00 00 00 00 00 00 44 4c 4d 00 00 00 00 00 4e 00 ......DLM.....N.
105d: 00 00 4b 00 43 ..K.C
 
00001062 <__c.3151>:
1062: 25 31 64 2e 25 30 32 64 20 25 31 64 2e 25 30 32 %1d.%02d %1d.%02
1072: 64 20 25 31 64 2e 25 30 32 64 20 25 31 64 2e 25 d %1d.%02d %1d.%
1082: 30 32 64 00 02d.
 
00001086 <__c.3149>:
1086: 42 4c 20 56 65 72 73 69 6f 6e 73 00 BL Versions.
 
00001092 <__c.3146>:
1092: 31 32 00 12.
 
00001095 <__c.3144>:
1095: 31 31 00 11.
 
00001098 <__c.3142>:
1098: 31 30 00 10.
 
0000109b <__c.3140>:
109b: 20 25 63 20 20 20 2d 20 20 20 2d 20 20 20 2d 20 %c - - -
...
 
000010ac <__c.3138>:
10ac: 20 25 63 20 20 20 25 63 20 20 20 25 63 20 20 20 %c %c %c
10bc: 25 63 20 00 %c .
 
000010c0 <__c.3136>:
10c0: 20 25 63 20 20 20 25 63 20 20 20 25 63 20 20 20 %c %c %c
10d0: 25 63 20 00 %c .
 
000010d4 <__c.3134>:
10d4: 42 4c 2d 43 74 72 6c 20 66 6f 75 6e 64 20 00 BL-Ctrl found .
 
000010e3 <__c.3128>:
10e3: 25 33 64 20 25 33 64 20 25 33 64 20 25 33 64 20 %3d %3d %3d %3d
...
 
000010f4 <__c.3126>:
10f4: 28 69 6e 20 30 2e 31 41 29 00 (in 0.1A).
 
000010fe <__c.3124>:
10fe: 42 4c 20 43 75 72 72 65 6e 74 00 BL Current.
 
00001109 <__c.3118>:
1109: 25 33 64 20 25 33 64 20 25 33 64 20 25 33 64 20 %3d %3d %3d %3d
...
 
0000111a <__c.3116>:
111a: 42 4c 20 54 65 6d 70 65 72 61 74 75 72 65 00 BL Temperature.
 
00001129 <__c.3110>:
1129: 25 33 64 20 25 33 64 20 25 33 64 20 25 33 64 20 %3d %3d %3d %3d
...
 
0000113a <__c.3108>:
113a: 42 4c 2d 43 74 72 6c 20 45 72 72 6f 72 73 20 00 BL-Ctrl Errors .
 
0000114a <__c.3105>:
114a: 52 61 6e 67 65 3a 25 33 69 2d 25 33 69 00 Range:%3i-%3i.
 
00001158 <__c.3103>:
1158: 50 6f 73 69 74 69 6f 6e 3a 20 25 33 69 00 Position: %3i.
 
00001166 <__c.3101>:
1166: 53 65 74 70 6f 69 6e 74 20 20 25 33 69 00 Setpoint %3i.
 
00001174 <__c.3099>:
1174: 53 65 72 76 6f 20 20 00 Servo .
 
0000117c <__c.3096>:
117c: 54 72 75 65 3a 20 20 20 20 20 25 35 69 00 True: %5i.
 
0000118a <__c.3094>:
118a: 47 79 72 6f 3a 20 20 20 20 20 25 35 69 00 Gyro: %5i.
 
00001198 <__c.3092>:
1198: 4d 61 67 6e 65 74 3a 20 20 20 25 35 69 00 Magnet: %5i.
 
000011a6 <__c.3090>:
11a6: 43 6f 6d 70 61 73 73 00 Compass.
 
000011ae <__c.3087>:
11ae: 28 72 65 73 65 74 29 00 (reset).
 
000011b6 <__c.3085>:
11b6: 41 63 74 3a 20 20 25 35 75 6d 69 6e 00 Act: %5umin.
 
000011c3 <__c.3083>:
11c3: 54 6f 74 61 6c 3a 25 35 75 6d 69 6e 00 Total:%5umin.
 
000011d0 <__c.3081>:
11d0: 46 6c 69 67 68 74 2d 54 69 6d 65 20 20 00 Flight-Time .
 
000011de <__c.3075>:
11de: 50 6f 74 69 25 69 3a 20 20 25 33 69 00 Poti%i: %3i.
 
000011eb <__c.3069>:
11eb: 50 6f 74 69 25 69 3a 20 20 25 33 69 00 Poti%i: %3i.
 
000011f8 <__c.3066>:
11f8: 4c 61 6e 64 3a 20 25 32 64 2e 25 64 56 00 Land: %2d.%dV.
 
00001206 <__c.3064>:
1206: 48 6f 6d 65 3a 20 25 32 64 2e 25 64 56 00 Home: %2d.%dV.
 
00001214 <__c.3062>:
1214: 57 61 72 6e 3a 20 25 32 64 2e 25 64 56 00 Warn: %2d.%dV.
 
00001222 <__c.3060>:
1222: 55 6e 64 65 72 76 6f 6c 74 61 67 65 73 20 20 00 Undervoltages .
 
00001232 <__c.3057>:
1232: 52 43 2d 43 68 61 6e 6e 65 6c 73 3a 25 34 69 00 RC-Channels:%4i.
 
00001242 <__c.3055>:
1242: 52 43 2d 51 75 61 6c 69 74 79 3a 20 25 34 69 00 RC-Quality: %4i.
 
00001252 <__c.3053>:
1252: 52 65 63 65 69 76 65 72 00 Receiver.
 
0000125b <__c.3050>:
125b: 44 69 73 63 68 61 72 67 65 3a 20 25 35 69 6d 41 Discharge: %5imA
126b: 68 00 h.
 
0000126d <__c.3048>:
126d: 50 6f 77 65 72 3a 20 20 20 20 20 25 34 69 57 00 Power: %4iW.
 
0000127d <__c.3046>:
127d: 43 75 72 72 65 6e 74 3a 20 20 20 25 33 69 2e 25 Current: %3i.%
128d: 31 69 41 00 1iA.
 
00001291 <__c.3044>:
1291: 56 6f 6c 74 61 67 65 3a 20 20 20 25 33 69 2e 25 Voltage: %3i.%
12a1: 31 69 56 00 1iV.
 
000012a5 <__c.3041>:
12a5: 5a 20 20 20 20 25 34 69 20 28 25 33 69 29 00 Z %4i (%3i).
 
000012b4 <__c.3039>:
12b4: 52 6f 6c 6c 20 25 34 69 20 28 25 33 69 29 00 Roll %4i (%3i).
 
000012c3 <__c.3037>:
12c3: 4e 69 63 6b 20 25 34 69 20 28 25 33 69 29 00 Nick %4i (%3i).
 
000012d2 <__c.3035>:
12d2: 41 43 43 20 2d 20 53 65 6e 73 6f 72 00 ACC - Sensor.
 
000012df <__c.3032>:
12df: 59 61 77 20 20 25 34 69 20 28 25 34 69 29 00 Yaw %4i (%4i).
 
000012ee <__c.3030>:
12ee: 52 6f 6c 6c 20 25 34 69 20 28 25 34 69 29 00 Roll %4i (%4i).
 
000012fd <__c.3028>:
12fd: 4e 69 63 6b 20 25 34 69 20 28 25 34 69 29 00 Nick %4i (%4i).
 
0000130c <__c.3026>:
130c: 47 79 72 6f 20 2d 20 53 65 6e 73 6f 72 00 Gyro - Sensor.
 
0000131a <__c.3023>:
131a: 50 33 3a 25 34 69 20 20 50 34 3a 25 34 69 20 00 P3:%4i P4:%4i .
 
0000132a <__c.3021>:
132a: 50 31 3a 25 34 69 20 20 50 32 3a 25 34 69 20 00 P1:%4i P2:%4i .
 
0000133a <__c.3019>:
133a: 47 73 3a 25 34 69 20 20 47 69 3a 25 34 69 20 00 Gs:%4i Gi:%4i .
 
0000134a <__c.3017>:
134a: 4e 69 3a 25 34 69 20 20 52 6f 3a 25 34 69 20 00 Ni:%4i Ro:%4i .
 
0000135a <__c.3011>:
135a: 4b 25 69 3a 25 34 69 20 20 4b 25 69 3a 25 34 69 K%i:%4i K%i:%4i
136a: 20 00 .
 
0000136c <__c.3008>:
136c: 43 6f 6d 70 61 73 73 3a 20 20 20 25 35 69 00 Compass: %5i.
 
0000137b <__c.3006>:
137b: 52 6f 6c 6c 3a 20 20 20 20 20 20 25 35 69 00 Roll: %5i.
 
0000138a <__c.3004>:
138a: 4e 69 63 6b 3a 20 20 20 20 20 20 25 35 69 00 Nick: %5i.
 
00001399 <__c.3002>:
1399: 61 63 74 2e 20 62 65 61 72 69 6e 67 00 act. bearing.
 
000013a6 <__c.2999>:
13a6: 25 69 00 %i.
 
000013a9 <__c.2997>:
13a9: 28 41 29 00 (A).
 
000013ad <__c.2995>:
13ad: 4f 66 66 73 65 74 3a 20 20 25 35 69 00 Offset: %5i.
 
000013ba <__c.2993>:
13ba: 50 72 65 73 73 75 72 65 3a 25 35 69 00 Pressure:%5i.
 
000013c7 <__c.2991>:
13c7: 53 65 74 70 6f 69 6e 74 3a 25 35 69 00 Setpoint:%5i.
 
000013d4 <__c.2989>:
13d4: 48 65 69 67 68 74 3a 20 20 25 35 69 00 Height: %5i.
 
000013e1 <__c.2985>:
13e1: 42 4c 2d 53 65 6c 66 74 65 73 74 20 45 72 72 3a BL-Selftest Err:
13f1: 25 32 64 00 %2d.
 
000013f5 <__c.2983>:
13f5: 49 32 43 20 45 52 52 4f 52 21 21 21 00 I2C ERROR!!!.
 
00001402 <__c.2981>:
1402: 4d 69 73 73 69 6e 67 20 42 4c 2d 43 74 72 6c 3a Missing BL-Ctrl:
1412: 25 64 20 21 21 00 %d !!.
 
00001418 <__c.2979>:
1418: 48 61 72 64 77 61 72 65 20 45 72 72 6f 72 20 31 Hardware Error 1
1428: 3a 25 64 20 21 21 00 :%d !!.
 
0000142f <__c.2977>:
142f: 45 52 52 25 32 64 3a 00 ERR%2d:.
 
00001437 <__c.2975>:
1437: 4d 69 78 65 72 20 45 72 72 6f 72 21 00 Mixer Error!.
 
00001444 <__c.2973>:
1444: 42 4f 41 54 00 BOAT.
 
00001449 <__c.2971>:
1449: 53 65 74 3a 25 64 20 25 73 00 Set:%d %s.
 
00001453 <__c.2969>:
1453: 48 57 3a 56 25 64 2e 25 64 20 53 57 3a 25 64 2e HW:V%d.%d SW:%d.
1463: 25 30 32 64 25 63 20 00 %02d%c .
 
0000146b <__c.2967>:
146b: 2b 20 4d 69 6b 72 6f 4b 6f 70 74 65 72 20 2b 00 + MikroKopter +.
 
0000147b <__c.2964>:
147b: 5b 25 69 5d 00 [%i].
 
00001480 <__c.2962>:
1480: 5b 25 69 5d 00 [%i].
 
00001485 <pgm_sinlookup>:
1485: 00 00 8f 00 1e 01 ad 01 3b 02 ca 02 58 03 e6 03 ........;...X...
1495: 74 04 02 05 8f 05 1b 06 a7 06 33 07 be 07 48 08 t.........3...H.
14a5: d2 08 5b 09 e3 09 6b 0a f2 0a 78 0b fd 0b 81 0c ..[...k...x.....
14b5: 04 0d 86 0d 07 0e 87 0e 06 0f 84 0f 00 10 7b 10 ..............{.
14c5: f5 10 6e 11 e5 11 5b 12 cf 12 42 13 b3 13 23 14 ..n...[...B...#.
14d5: 92 14 fe 14 6a 15 d3 15 3b 16 a1 16 05 17 67 17 ....j...;.....g.
14e5: c8 17 27 18 83 18 de 18 37 19 8e 19 e3 19 36 1a ..'.....7.....6.
14f5: 87 1a d6 1a 23 1b 6e 1b b6 1b fd 1b 41 1c 83 1c ....#.n.....A...
1505: c3 1c 00 1d 3c 1d 75 1d ab 1d e0 1d 12 1e 42 1e ....<.u.......B.
1515: 6f 1e 9a 1e c3 1e e9 1e 0d 1f 2e 1f 4d 1f 69 1f o...........M.i.
1525: 84 1f 9b 1f b0 1f c3 1f d3 1f e1 1f ec 1f f5 1f ................
1535: fb 1f ff 1f 00 20 .....
 
0000153b <__c.3126>:
153b: 21 21 21 20 49 4e 43 4f 4d 50 41 54 49 42 4c 45 !!! INCOMPATIBLE
154b: 20 21 21 21 00 !!!.
 
00001550 <ANALOG_TEXT>:
1550: 41 6e 67 6c 65 4e 69 63 6b 20 20 20 20 20 20 20 AngleNick
1560: 41 6e 67 6c 65 52 6f 6c 6c 20 20 20 20 20 20 20 AngleRoll
1570: 41 63 63 4e 69 63 6b 20 20 20 20 20 20 20 20 20 AccNick
1580: 41 63 63 52 6f 6c 6c 20 20 20 20 20 20 20 20 20 AccRoll
1590: 59 61 77 47 79 72 6f 20 20 20 20 20 20 20 20 20 YawGyro
15a0: 41 6c 74 69 74 75 64 65 20 5b 30 2e 31 6d 5d 20 Altitude [0.1m]
15b0: 41 63 63 5a 20 20 20 20 20 20 20 20 20 20 20 20 AccZ
15c0: 47 61 73 20 20 20 20 20 20 20 20 20 20 20 20 20 Gas
15d0: 43 6f 6d 70 61 73 73 20 56 61 6c 75 65 20 20 20 Compass Value
15e0: 56 6f 6c 74 61 67 65 20 5b 30 2e 31 56 5d 20 20 Voltage [0.1V]
15f0: 52 65 63 65 69 76 65 72 20 4c 65 76 65 6c 20 20 Receiver Level
1600: 47 79 72 6f 20 43 6f 6d 70 61 73 73 20 20 20 20 Gyro Compass
1610: 4d 6f 74 6f 72 20 31 20 20 20 20 20 20 20 20 20 Motor 1
1620: 4d 6f 74 6f 72 20 32 20 20 20 20 20 20 20 20 20 Motor 2
1630: 4d 6f 74 6f 72 20 33 20 20 20 20 20 20 20 20 20 Motor 3
1640: 4d 6f 74 6f 72 20 34 20 20 20 20 20 20 20 20 20 Motor 4
1650: 31 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 16
1660: 31 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 17
1670: 31 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 18
1680: 31 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 19
1690: 53 65 72 76 6f 20 20 20 20 20 20 20 20 20 20 20 Servo
16a0: 48 6f 76 65 72 67 61 73 20 20 20 20 20 20 20 20 Hovergas
16b0: 43 75 72 72 65 6e 74 20 5b 30 2e 31 41 5d 20 20 Current [0.1A]
16c0: 43 61 70 61 63 69 74 79 20 5b 6d 41 68 5d 20 20 Capacity [mAh]
16d0: 48 65 69 67 68 74 20 53 65 74 70 6f 69 6e 74 20 Height Setpoint
16e0: 32 35 20 20 20 20 20 20 20 20 20 20 20 20 20 20 25
16f0: 32 36 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26
1700: 32 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27
1710: 49 32 43 2d 45 72 72 6f 72 20 20 20 20 20 20 20 I2C-Error
1720: 42 4c 20 4c 69 6d 69 74 20 20 20 20 20 20 20 20 BL Limit
1730: 47 50 53 5f 4e 69 63 6b 20 20 20 20 20 20 20 20 GPS_Nick
1740: 47 50 53 5f 52 6f 6c 6c 20 20 20 20 20 20 20 20 GPS_Roll
 
00001750 <Msg2>:
1750: 0a 0d 77 77 77 2e 4d 69 6b 72 6f 4b 6f 70 74 65 ..www.MikroKopte
1760: 72 2e 64 65 20 28 63 29 20 48 69 53 79 73 74 65 r.de (c) HiSyste
1770: 6d 73 20 47 6d 62 48 00 ms GmbH.
 
00001778 <Msg1>:
1778: 0a 0d 74 68 65 20 75 73 65 20 6f 66 20 74 68 69 ..the use of thi
1788: 73 20 73 6f 66 74 77 61 72 65 20 69 73 20 6f 6e s software is on
1798: 6c 79 20 70 65 72 6d 69 74 74 65 64 20 0a 0d 6f ly permitted ..o
17a8: 6e 20 6f 72 69 67 69 6e 61 6c 20 4d 69 6b 72 6f n original Mikro
17b8: 4b 6f 70 74 65 72 2d 48 61 72 64 77 61 72 65 00 Kopter-Hardware.
 
000017c8 <Rec_USER>:
17c8: 55 73 65 72 00 User.
 
000017cd <Rec_HoTT>:
17cd: 48 6f 54 54 20 56 34 00 HoTT V4.
 
000017d5 <Rec_ACT_DSL>:
17d5: 41 43 54 20 44 53 4c 00 ACT DSL.
 
000017dd <Rec_Jeti>:
17dd: 4a 65 74 69 00 Jeti.
 
000017e2 <Rec_Spektrum>:
17e2: 53 70 65 6b 74 72 75 6d 00 Spektrum.
 
000017eb <Rec_PPM>:
17eb: 50 50 4d 00 PPM.
 
000017ef <__c.6>:
17ef: 0a 0d 52 65 63 65 69 76 65 72 3a 20 00 ..Receiver: .
 
000017fc <__c.7>:
17fc: 53 2e 42 75 73 00 S.Bus.
 
00001802 <__c.8>:
1802: 75 6e 6b 6e 6f 77 6e 2e 20 55 73 69 6e 67 20 50 unknown. Using P
1812: 50 4d 2e 2e 2e 00 PM....
 
00001818 <__c.9>:
1818: 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 62 79 not supported by
1828: 20 68 61 72 64 77 61 72 65 21 00 hardware!.
 
00001833 <__c.3>:
1833: 0a 0d 20 2d 20 4c 49 42 20 4e 4f 54 20 43 4f 4d .. - LIB NOT COM
1843: 50 41 54 49 42 4c 45 20 21 21 21 21 00 PATIBLE !!!!.
 
00001850 <__c.4>:
1850: 0a 0d 0a 0d 21 21 20 42 6f 6f 74 6c 6f 61 64 65 ....!! Bootloade
1860: 72 20 6e 6f 74 20 63 6f 6d 70 61 74 69 62 6c 65 r not compatible
1870: 20 74 6f 20 48 61 72 64 77 61 72 65 20 3e 20 32 to Hardware > 2
1880: 2e 32 20 21 21 0a 0d 0a 0d 00 .2 !!.....
 
0000188a <__c.5>:
188a: 0a 0d 46 6c 69 67 68 74 43 6f 6e 74 72 6f 6c 0a ..FlightControl.
189a: 0d 48 61 72 64 77 61 72 65 3a 25 64 2e 25 64 0a .Hardware:%d.%d.
18aa: 0d 53 6f 66 74 77 61 72 65 3a 56 25 64 2e 25 30 .Software:V%d.%0
18ba: 32 64 25 63 20 00 2d%c .
 
000018c0 <__ctors_end>:
18c0: 11 24 eor r1, r1
18c2: 1f be out 0x3f, r1 ; 63
18c4: cf ef ldi r28, 0xFF ; 255
18c6: d0 e4 ldi r29, 0x40 ; 64
18c8: de bf out 0x3e, r29 ; 62
18ca: cd bf out 0x3d, r28 ; 61
 
000018cc <__do_copy_data>:
18cc: 12 e0 ldi r17, 0x02 ; 2
18ce: a0 e0 ldi r26, 0x00 ; 0
18d0: b1 e0 ldi r27, 0x01 ; 1
18d2: e8 ec ldi r30, 0xC8 ; 200
18d4: f7 e3 ldi r31, 0x37 ; 55
18d6: 01 e0 ldi r16, 0x01 ; 1
18d8: 0b bf out 0x3b, r16 ; 59
18da: 02 c0 rjmp .+4 ; 0x18e0 <__do_copy_data+0x14>
18dc: 07 90 elpm r0, Z+
18de: 0d 92 st X+, r0
18e0: aa 3e cpi r26, 0xEA ; 234
18e2: b1 07 cpc r27, r17
18e4: d9 f7 brne .-10 ; 0x18dc <__do_copy_data+0x10>
 
000018e6 <__do_clear_bss>:
18e6: 2c e0 ldi r18, 0x0C ; 12
18e8: aa ee ldi r26, 0xEA ; 234
18ea: b2 e0 ldi r27, 0x02 ; 2
18ec: 01 c0 rjmp .+2 ; 0x18f0 <.do_clear_bss_start>
 
000018ee <.do_clear_bss_loop>:
18ee: 1d 92 st X+, r1
 
000018f0 <.do_clear_bss_start>:
18f0: a6 3b cpi r26, 0xB6 ; 182
18f2: b2 07 cpc r27, r18
18f4: e1 f7 brne .-8 ; 0x18ee <.do_clear_bss_loop>
 
000018f6 <ndfcvbghs>:
18f6: 7a ea ldi r23, 0xAA ; 170
18f8: e2 e0 ldi r30, 0x02 ; 2
18fa: f0 e0 ldi r31, 0x00 ; 0
18fc: 81 e2 ldi r24, 0x21 ; 33
18fe: 80 93 57 00 sts 0x0057, r24
1902: 14 91 lpm r17, Z
1904: 20 ef ldi r18, 0xF0 ; 240
1906: 37 ef ldi r19, 0xF7 ; 247
1908: 41 e0 ldi r20, 0x01 ; 1
190a: 50 e0 ldi r21, 0x00 ; 0
190c: c6 e1 ldi r28, 0x16 ; 22
190e: d3 e0 ldi r29, 0x03 ; 3
1910: 6f e0 ldi r22, 0x0F ; 15
1912: da 01 movw r26, r20
1914: c9 01 movw r24, r18
1916: 2f 5f subi r18, 0xFF ; 255
1918: 3f 4f sbci r19, 0xFF ; 255
191a: 4f 4f sbci r20, 0xFF ; 255
191c: 5f 4f sbci r21, 0xFF ; 255
191e: ab bf out 0x3b, r26 ; 59
1920: fc 01 movw r30, r24
1922: 87 91 elpm r24, Z+
1924: 89 93 st Y+, r24
1926: 61 50 subi r22, 0x01 ; 1
1928: 67 ff sbrs r22, 7
192a: f3 cf rjmp .-26 ; 0x1912 <ndfcvbghs+0x1c>
192c: 84 ee ldi r24, 0xE4 ; 228
192e: 8a bd out 0x2a, r24 ; 42
1930: 80 91 1e 03 lds r24, 0x031E
1934: 80 93 ea 02 sts 0x02EA, r24
1938: 89 31 cpi r24, 0x19 ; 25
193a: 38 f0 brcs .+14 ; 0x194a <ndfcvbghs+0x54>
193c: 86 e0 ldi r24, 0x06 ; 6
193e: 80 93 0b 01 sts 0x010B, r24
1942: 87 e0 ldi r24, 0x07 ; 7
1944: 80 93 0a 01 sts 0x010A, r24
1948: 7b ea ldi r23, 0xAB ; 171
194a: e6 e1 ldi r30, 0x16 ; 22
194c: f3 e0 ldi r31, 0x03 ; 3
194e: 6e e0 ldi r22, 0x0E ; 14
1950: 81 91 ld r24, Z+
1952: 78 27 eor r23, r24
1954: 70 95 com r23
1956: 61 50 subi r22, 0x01 ; 1
1958: 67 ff sbrs r22, 7
195a: fa cf rjmp .-12 ; 0x1950 <ndfcvbghs+0x5a>
195c: 80 91 25 03 lds r24, 0x0325
1960: 78 17 cp r23, r24
1962: 21 f0 breq .+8 ; 0x196c <ndfcvbghs+0x76>
1964: 17 39 cpi r17, 0x97 ; 151
1966: 11 f4 brne .+4 ; 0x196c <ndfcvbghs+0x76>
1968: 00 00 nop
196a: fe cf rjmp .-4 ; 0x1968 <ndfcvbghs+0x72>
196c: 0e 94 57 52 call 0xa4ae ; 0xa4ae <main>
1970: 0c 94 e2 9b jmp 0x137c4 ; 0x137c4 <_exit>
 
00001974 <__bad_interrupt>:
1974: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
 
00001978 <isqrt32>:
 
.global isqrt32
.func isqrt32
 
isqrt32:
clr r0
1978: 00 24 eor r0, r0
clr r18
197a: 22 27 eor r18, r18
clr r19
197c: 33 27 eor r19, r19
clr r20
197e: 44 27 eor r20, r20
ldi r21, 1
1980: 51 e0 ldi r21, 0x01 ; 1
clr r27
1982: bb 27 eor r27, r27
clr r30
1984: ee 27 eor r30, r30
clr r31
1986: ff 27 eor r31, r31
ldi r26, 16
1988: a0 e1 ldi r26, 0x10 ; 16
1: lsl r22
198a: 66 0f add r22, r22
rol r23
198c: 77 1f adc r23, r23
rol r24
198e: 88 1f adc r24, r24
rol r25
1990: 99 1f adc r25, r25
rol r0
1992: 00 1c adc r0, r0
rol r18
1994: 22 1f adc r18, r18
rol r19
1996: 33 1f adc r19, r19
rol r20
1998: 44 1f adc r20, r20
lsl r22
199a: 66 0f add r22, r22
rol r23
199c: 77 1f adc r23, r23
rol r24
199e: 88 1f adc r24, r24
rol r25
19a0: 99 1f adc r25, r25
rol r0
19a2: 00 1c adc r0, r0
rol r18
19a4: 22 1f adc r18, r18
rol r19
19a6: 33 1f adc r19, r19
rol r20
19a8: 44 1f adc r20, r20
brpl 2f
19aa: 2a f4 brpl .+10 ; 0x19b6 <isqrt32+0x3e>
add r0, r21
19ac: 05 0e add r0, r21
adc r18, r27
19ae: 2b 1f adc r18, r27
adc r19, r30
19b0: 3e 1f adc r19, r30
adc r20, r31
19b2: 4f 1f adc r20, r31
rjmp 3f
19b4: 04 c0 rjmp .+8 ; 0x19be <isqrt32+0x46>
2: sub r0, r21
19b6: 05 1a sub r0, r21
sbc r18, r27
19b8: 2b 0b sbc r18, r27
sbc r19, r30
19ba: 3e 0b sbc r19, r30
sbc r20, r31
19bc: 4f 0b sbc r20, r31
3: lsl r21
19be: 55 0f add r21, r21
rol r27
19c0: bb 1f adc r27, r27
rol r30
19c2: ee 1f adc r30, r30
andi r21, 0b11111000
19c4: 58 7f andi r21, 0xF8 ; 248
ori r21, 0b00000101
19c6: 55 60 ori r21, 0x05 ; 5
sbrc r20, 7
19c8: 47 fd sbrc r20, 7
subi r21, 2
19ca: 52 50 subi r21, 0x02 ; 2
dec r26
19cc: aa 95 dec r26
brne 1b
19ce: e9 f6 brne .-70 ; 0x198a <isqrt32+0x12>
lsr r30
19d0: e6 95 lsr r30
ror r27
19d2: b7 95 ror r27
ror r21
19d4: 57 95 ror r21
lsr r30
19d6: e6 95 lsr r30
ror r27
19d8: b7 95 ror r27
ror r21
19da: 57 95 ror r21
mov r24, r21
19dc: 85 2f mov r24, r21
mov r25, r27
19de: 9b 2f mov r25, r27
ret
19e0: 08 95 ret
 
000019e2 <isqrt16>:
 
.global isqrt16
.func isqrt16
 
isqrt16:
clr r18
19e2: 22 27 eor r18, r18
clr r19
19e4: 33 27 eor r19, r19
ldi r20, 1
19e6: 41 e0 ldi r20, 0x01 ; 1
clr r21
19e8: 55 27 eor r21, r21
ldi r22, 8
19ea: 68 e0 ldi r22, 0x08 ; 8
1: lsl r24
19ec: 88 0f add r24, r24
rol r25
19ee: 99 1f adc r25, r25
rol r18
19f0: 22 1f adc r18, r18
rol r19
19f2: 33 1f adc r19, r19
lsl r24
19f4: 88 0f add r24, r24
rol r25
19f6: 99 1f adc r25, r25
rol r18
19f8: 22 1f adc r18, r18
rol r19
19fa: 33 1f adc r19, r19
brpl 2f
19fc: 1a f4 brpl .+6 ; 0x1a04 <isqrt16+0x22>
add r18, r20
19fe: 24 0f add r18, r20
adc r19, r21
1a00: 35 1f adc r19, r21
rjmp 3f
1a02: 02 c0 rjmp .+4 ; 0x1a08 <isqrt16+0x26>
2: sub r18, r20
1a04: 24 1b sub r18, r20
sbc r19, r21
1a06: 35 0b sbc r19, r21
3: lsl r20
1a08: 44 0f add r20, r20
rol r21
1a0a: 55 1f adc r21, r21
andi r20, 0b11111000
1a0c: 48 7f andi r20, 0xF8 ; 248
ori r20, 0b00000101
1a0e: 45 60 ori r20, 0x05 ; 5
sbrc r19, 7
1a10: 37 fd sbrc r19, 7
subi r20, 2
1a12: 42 50 subi r20, 0x02 ; 2
dec r22
1a14: 6a 95 dec r22
brne 1b
1a16: 51 f7 brne .-44 ; 0x19ec <isqrt16+0xa>
lsr r21
1a18: 56 95 lsr r21
ror r20
1a1a: 47 95 ror r20
lsr r21
1a1c: 56 95 lsr r21
ror r20
1a1e: 47 95 ror r20
mov r24, r20
1a20: 84 2f mov r24, r20
ret
1a22: 08 95 ret
 
00001a24 <ihypot>:
 
.global ihypot
.func ihypot
 
ihypot:
clr r26
1a24: aa 27 eor r26, r26
sbrs r25, 7
1a26: 97 ff sbrs r25, 7
rjmp 1f
1a28: 04 c0 rjmp .+8 ; 0x1a32 <ihypot+0xe>
com r24
1a2a: 80 95 com r24
com r25
1a2c: 90 95 com r25
adc r24, r26
1a2e: 8a 1f adc r24, r26
adc r25, r26
1a30: 9a 1f adc r25, r26
1: sbrs r23, 7
1a32: 77 ff sbrs r23, 7
rjmp 2f
1a34: 04 c0 rjmp .+8 ; 0x1a3e <ihypot+0x1a>
com r22
1a36: 60 95 com r22
com r23
1a38: 70 95 com r23
adc r22, r26
1a3a: 6a 1f adc r22, r26
adc r23, r26
1a3c: 7a 1f adc r23, r26
2: mul r22, r22
1a3e: 66 9f mul r22, r22
movw r18, r0
1a40: 90 01 movw r18, r0
mul r23, r23
1a42: 77 9f mul r23, r23
movw r20, r0
1a44: a0 01 movw r20, r0
mul r22, r23
1a46: 67 9f mul r22, r23
add r19, r0
1a48: 30 0d add r19, r0
adc r20, r1
1a4a: 41 1d adc r20, r1
adc r21, r26
1a4c: 5a 1f adc r21, r26
add r19, r0
1a4e: 30 0d add r19, r0
adc r20, r1
1a50: 41 1d adc r20, r1
adc r21, r26
1a52: 5a 1f adc r21, r26
mul r24, r24
1a54: 88 9f mul r24, r24
movw r30, r0
1a56: f0 01 movw r30, r0
mul r25, r25
1a58: 99 9f mul r25, r25
add r18, r30
1a5a: 2e 0f add r18, r30
adc r19, r31
1a5c: 3f 1f adc r19, r31
adc r20, r0
1a5e: 40 1d adc r20, r0
adc r21, r1
1a60: 51 1d adc r21, r1
mul r24, r25
1a62: 89 9f mul r24, r25
add r19, r0
1a64: 30 0d add r19, r0
adc r20, r1
1a66: 41 1d adc r20, r1
adc r21, r26
1a68: 5a 1f adc r21, r26
add r19, r0
1a6a: 30 0d add r19, r0
adc r20, r1
1a6c: 41 1d adc r20, r1
adc r21, r26
1a6e: 5a 1f adc r21, r26
movw r24, r20
1a70: ca 01 movw r24, r20
movw r22, r18
1a72: b9 01 movw r22, r18
clr r1
1a74: 11 24 eor r1, r1
rjmp isqrt32
1a76: 80 cf rjmp .-256 ; 0x1978 <isqrt32>
 
00001a78 <fomklkdtn89SFGrsgt9rf>:
1a78: 4f b7 in r20, 0x3f ; 63
1a7a: 20 e4 ldi r18, 0x40 ; 64
1a7c: 30 e0 ldi r19, 0x00 ; 0
1a7e: f8 94 cli
1a80: 80 91 c9 00 lds r24, 0x00C9
1a84: 8f 77 andi r24, 0x7F ; 127
1a86: 80 93 c9 00 sts 0x00C9, r24
1a8a: 80 91 c9 00 lds r24, 0x00C9
1a8e: 8f 7b andi r24, 0xBF ; 191
1a90: 80 93 c9 00 sts 0x00C9, r24
1a94: 80 91 c9 00 lds r24, 0x00C9
1a98: 8f 7d andi r24, 0xDF ; 223
1a9a: 80 93 c9 00 sts 0x00C9, r24
1a9e: 83 2f mov r24, r19
1aa0: 99 27 eor r25, r25
1aa2: 80 93 cd 00 sts 0x00CD, r24
1aa6: 20 93 cc 00 sts 0x00CC, r18
1aaa: 80 91 c8 00 lds r24, 0x00C8
1aae: 82 60 ori r24, 0x02 ; 2
1ab0: 80 93 c8 00 sts 0x00C8, r24
1ab4: 88 e1 ldi r24, 0x18 ; 24
1ab6: 80 93 c9 00 sts 0x00C9, r24
1aba: 80 91 ca 00 lds r24, 0x00CA
1abe: 8f 77 andi r24, 0x7F ; 127
1ac0: 80 93 ca 00 sts 0x00CA, r24
1ac4: 80 91 ca 00 lds r24, 0x00CA
1ac8: 8f 7b andi r24, 0xBF ; 191
1aca: 80 93 ca 00 sts 0x00CA, r24
1ace: 80 91 ca 00 lds r24, 0x00CA
1ad2: 8f 7d andi r24, 0xDF ; 223
1ad4: 80 93 ca 00 sts 0x00CA, r24
1ad8: 80 91 ca 00 lds r24, 0x00CA
1adc: 8f 7e andi r24, 0xEF ; 239
1ade: 80 93 ca 00 sts 0x00CA, r24
1ae2: 80 91 ca 00 lds r24, 0x00CA
1ae6: 87 7f andi r24, 0xF7 ; 247
1ae8: 80 93 ca 00 sts 0x00CA, r24
1aec: 80 91 c9 00 lds r24, 0x00C9
1af0: 8b 7f andi r24, 0xFB ; 251
1af2: 80 93 c9 00 sts 0x00C9, r24
1af6: 80 91 ca 00 lds r24, 0x00CA
1afa: 84 60 ori r24, 0x04 ; 4
1afc: 80 93 ca 00 sts 0x00CA, r24
1b00: 80 91 ca 00 lds r24, 0x00CA
1b04: 82 60 ori r24, 0x02 ; 2
1b06: 80 93 ca 00 sts 0x00CA, r24
1b0a: 80 91 c8 00 lds r24, 0x00C8
1b0e: 87 ff sbrs r24, 7
1b10: 03 c0 rjmp .+6 ; 0x1b18 <fomklkdtn89SFGrsgt9rf+0xa0>
1b12: 80 91 ce 00 lds r24, 0x00CE
1b16: f9 cf rjmp .-14 ; 0x1b0a <fomklkdtn89SFGrsgt9rf+0x92>
1b18: 80 91 c9 00 lds r24, 0x00C9
1b1c: 80 68 ori r24, 0x80 ; 128
1b1e: 80 93 c9 00 sts 0x00C9, r24
1b22: 4f bf out 0x3f, r20 ; 63
1b24: 08 95 ret
 
00001b26 <FGRT0589rge90gj459gg4>:
1b26: 0f 93 push r16
1b28: 1f 93 push r17
1b2a: cf 93 push r28
1b2c: df 93 push r29
1b2e: 48 2f mov r20, r24
1b30: 4f 5f subi r20, 0xFF ; 255
1b32: 89 31 cpi r24, 0x19 ; 25
1b34: 08 f0 brcs .+2 ; 0x1b38 <FGRT0589rge90gj459gg4+0x12>
1b36: 8b c0 rjmp .+278 ; 0x1c4e <FGRT0589rge90gj459gg4+0x128>
1b38: 80 91 0d 08 lds r24, 0x080D
1b3c: 84 17 cp r24, r20
1b3e: 20 f4 brcc .+8 ; 0x1b48 <FGRT0589rge90gj459gg4+0x22>
1b40: 4f 5f subi r20, 0xFF ; 255
1b42: 40 93 0d 08 sts 0x080D, r20
1b46: 41 50 subi r20, 0x01 ; 1
1b48: cb 01 movw r24, r22
1b4a: 83 53 subi r24, 0x33 ; 51
1b4c: 9b 42 sbci r25, 0x2B ; 43
1b4e: 68 e1 ldi r22, 0x18 ; 24
1b50: 70 e0 ldi r23, 0x00 ; 0
1b52: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
1b56: a4 2f mov r26, r20
1b58: bb 27 eor r27, r27
1b5a: fd 01 movw r30, r26
1b5c: ea 0f add r30, r26
1b5e: fb 1f adc r31, r27
1b60: e2 5f subi r30, 0xF2 ; 242
1b62: f7 4f sbci r31, 0xF7 ; 247
1b64: 80 81 ld r24, Z
1b66: 91 81 ldd r25, Z+1 ; 0x01
1b68: 9b 01 movw r18, r22
1b6a: 28 1b sub r18, r24
1b6c: 39 0b sbc r19, r25
1b6e: c9 01 movw r24, r18
1b70: 37 ff sbrs r19, 7
1b72: 03 c0 rjmp .+6 ; 0x1b7a <FGRT0589rge90gj459gg4+0x54>
1b74: 90 95 com r25
1b76: 81 95 neg r24
1b78: 9f 4f sbci r25, 0xFF ; 255
1b7a: 06 97 sbiw r24, 0x06 ; 6
1b7c: 94 f4 brge .+36 ; 0x1ba2 <FGRT0589rge90gj459gg4+0x7c>
1b7e: 80 91 02 04 lds r24, 0x0402
1b82: 88 3c cpi r24, 0xC8 ; 200
1b84: 30 f4 brcc .+12 ; 0x1b92 <FGRT0589rge90gj459gg4+0x6c>
1b86: 80 91 02 04 lds r24, 0x0402
1b8a: 86 5f subi r24, 0xF6 ; 246
1b8c: 80 93 02 04 sts 0x0402, r24
1b90: 08 c0 rjmp .+16 ; 0x1ba2 <FGRT0589rge90gj459gg4+0x7c>
1b92: 88 ec ldi r24, 0xC8 ; 200
1b94: 80 93 02 04 sts 0x0402, r24
1b98: 80 91 6f 00 lds r24, 0x006F
1b9c: 8f 7d andi r24, 0xDF ; 223
1b9e: 80 93 6f 00 sts 0x006F, r24
1ba2: fd 01 movw r30, r26
1ba4: ea 0f add r30, r26
1ba6: fb 1f adc r31, r27
1ba8: e2 5f subi r30, 0xF2 ; 242
1baa: f7 4f sbci r31, 0xF7 ; 247
1bac: 80 81 ld r24, Z
1bae: 91 81 ldd r25, Z+1 ; 0x01
1bb0: 9c 01 movw r18, r24
1bb2: 22 0f add r18, r18
1bb4: 33 1f adc r19, r19
1bb6: 28 0f add r18, r24
1bb8: 39 1f adc r19, r25
1bba: 26 0f add r18, r22
1bbc: 37 1f adc r19, r23
1bbe: 37 ff sbrs r19, 7
1bc0: 02 c0 rjmp .+4 ; 0x1bc6 <FGRT0589rge90gj459gg4+0xa0>
1bc2: 2d 5f subi r18, 0xFD ; 253
1bc4: 3f 4f sbci r19, 0xFF ; 255
1bc6: e9 01 movw r28, r18
1bc8: d5 95 asr r29
1bca: c7 95 ror r28
1bcc: d5 95 asr r29
1bce: c7 95 ror r28
1bd0: cb 01 movw r24, r22
1bd2: 01 96 adiw r24, 0x01 ; 1
1bd4: 8c 17 cp r24, r28
1bd6: 9d 07 cpc r25, r29
1bd8: 14 f4 brge .+4 ; 0x1bde <FGRT0589rge90gj459gg4+0xb8>
1bda: 21 97 sbiw r28, 0x01 ; 1
1bdc: 06 c0 rjmp .+12 ; 0x1bea <FGRT0589rge90gj459gg4+0xc4>
1bde: 61 50 subi r22, 0x01 ; 1
1be0: 70 40 sbci r23, 0x00 ; 0
1be2: c6 17 cp r28, r22
1be4: d7 07 cpc r29, r23
1be6: 0c f4 brge .+2 ; 0x1bea <FGRT0589rge90gj459gg4+0xc4>
1be8: 21 96 adiw r28, 0x01 ; 1
1bea: 80 91 02 04 lds r24, 0x0402
1bee: 84 3b cpi r24, 0xB4 ; 180
1bf0: d8 f0 brcs .+54 ; 0x1c28 <FGRT0589rge90gj459gg4+0x102>
1bf2: 8d 01 movw r16, r26
1bf4: 0a 0f add r16, r26
1bf6: 1b 1f adc r17, r27
1bf8: f8 01 movw r30, r16
1bfa: e2 5f subi r30, 0xF2 ; 242
1bfc: f7 4f sbci r31, 0xF7 ; 247
1bfe: 80 81 ld r24, Z
1c00: 91 81 ldd r25, Z+1 ; 0x01
1c02: fe 01 movw r30, r28
1c04: e8 1b sub r30, r24
1c06: f9 0b sbc r31, r25
1c08: cf 01 movw r24, r30
1c0a: 63 e0 ldi r22, 0x03 ; 3
1c0c: 70 e0 ldi r23, 0x00 ; 0
1c0e: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
1c12: cb 01 movw r24, r22
1c14: 88 0f add r24, r24
1c16: 99 1f adc r25, r25
1c18: 86 0f add r24, r22
1c1a: 97 1f adc r25, r23
1c1c: 0c 5a subi r16, 0xAC ; 172
1c1e: 17 4f sbci r17, 0xF7 ; 247
1c20: f8 01 movw r30, r16
1c22: 91 83 std Z+1, r25 ; 0x01
1c24: 80 83 st Z, r24
1c26: 07 c0 rjmp .+14 ; 0x1c36 <FGRT0589rge90gj459gg4+0x110>
1c28: aa 0f add r26, r26
1c2a: bb 1f adc r27, r27
1c2c: ac 5a subi r26, 0xAC ; 172
1c2e: b7 4f sbci r27, 0xF7 ; 247
1c30: 11 96 adiw r26, 0x01 ; 1
1c32: 1c 92 st X, r1
1c34: 1e 92 st -X, r1
1c36: e4 2f mov r30, r20
1c38: ff 27 eor r31, r31
1c3a: ee 0f add r30, r30
1c3c: ff 1f adc r31, r31
1c3e: e2 5f subi r30, 0xF2 ; 242
1c40: f7 4f sbci r31, 0xF7 ; 247
1c42: d1 83 std Z+1, r29 ; 0x01
1c44: c0 83 st Z, r28
1c46: 44 30 cpi r20, 0x04 ; 4
1c48: 11 f4 brne .+4 ; 0x1c4e <FGRT0589rge90gj459gg4+0x128>
1c4a: 10 92 93 02 sts 0x0293, r1
1c4e: df 91 pop r29
1c50: cf 91 pop r28
1c52: 1f 91 pop r17
1c54: 0f 91 pop r16
1c56: 08 95 ret
 
00001c58 <DFGeefWEF43tgt5uGreg5>:
1c58: cf 93 push r28
1c5a: df 93 push r29
1c5c: 20 91 87 0c lds r18, 0x0C87
1c60: 82 2f mov r24, r18
1c62: 99 27 eor r25, r25
1c64: 80 7f andi r24, 0xF0 ; 240
1c66: 90 70 andi r25, 0x00 ; 0
1c68: 40 97 sbiw r24, 0x10 ; 16
1c6a: 09 f0 breq .+2 ; 0x1c6e <DFGeefWEF43tgt5uGreg5+0x16>
1c6c: 64 c0 rjmp .+200 ; 0x1d36 <DFGeefWEF43tgt5uGreg5+0xde>
1c6e: 2f 31 cpi r18, 0x1F ; 31
1c70: 09 f0 breq .+2 ; 0x1c74 <DFGeefWEF43tgt5uGreg5+0x1c>
1c72: 40 c0 rjmp .+128 ; 0x1cf4 <DFGeefWEF43tgt5uGreg5+0x9c>
1c74: 80 91 88 0c lds r24, 0x0C88
1c78: 80 93 f4 02 sts 0x02F4, r24
1c7c: 90 91 8a 0c lds r25, 0x0C8A
1c80: 90 93 f6 02 sts 0x02F6, r25
1c84: 80 91 8b 0c lds r24, 0x0C8B
1c88: 80 93 f5 02 sts 0x02F5, r24
1c8c: 99 23 and r25, r25
1c8e: 09 f0 breq .+2 ; 0x1c92 <DFGeefWEF43tgt5uGreg5+0x3a>
1c90: 52 c0 rjmp .+164 ; 0x1d36 <DFGeefWEF43tgt5uGreg5+0xde>
1c92: 80 91 1c 05 lds r24, 0x051C
1c96: 28 2f mov r18, r24
1c98: 33 27 eor r19, r19
1c9a: 22 0f add r18, r18
1c9c: 33 1f adc r19, r19
1c9e: f9 01 movw r30, r18
1ca0: ec 5a subi r30, 0xAC ; 172
1ca2: f7 4f sbci r31, 0xF7 ; 247
1ca4: 11 82 std Z+1, r1 ; 0x01
1ca6: 10 82 st Z, r1
1ca8: 80 91 1d 05 lds r24, 0x051D
1cac: a8 2f mov r26, r24
1cae: bb 27 eor r27, r27
1cb0: aa 0f add r26, r26
1cb2: bb 1f adc r27, r27
1cb4: fd 01 movw r30, r26
1cb6: ec 5a subi r30, 0xAC ; 172
1cb8: f7 4f sbci r31, 0xF7 ; 247
1cba: 11 82 std Z+1, r1 ; 0x01
1cbc: 10 82 st Z, r1
1cbe: 80 91 1f 05 lds r24, 0x051F
1cc2: e8 2f mov r30, r24
1cc4: ff 27 eor r31, r31
1cc6: ee 0f add r30, r30
1cc8: ff 1f adc r31, r31
1cca: cf 01 movw r24, r30
1ccc: 8c 5a subi r24, 0xAC ; 172
1cce: 97 4f sbci r25, 0xF7 ; 247
1cd0: ec 01 movw r28, r24
1cd2: 19 82 std Y+1, r1 ; 0x01
1cd4: 18 82 st Y, r1
1cd6: 22 5f subi r18, 0xF2 ; 242
1cd8: 37 4f sbci r19, 0xF7 ; 247
1cda: e9 01 movw r28, r18
1cdc: 19 82 std Y+1, r1 ; 0x01
1cde: 18 82 st Y, r1
1ce0: a2 5f subi r26, 0xF2 ; 242
1ce2: b7 4f sbci r27, 0xF7 ; 247
1ce4: 11 96 adiw r26, 0x01 ; 1
1ce6: 1c 92 st X, r1
1ce8: 1e 92 st -X, r1
1cea: e2 5f subi r30, 0xF2 ; 242
1cec: f7 4f sbci r31, 0xF7 ; 247
1cee: 11 82 std Z+1, r1 ; 0x01
1cf0: 10 82 st Z, r1
1cf2: 21 c0 rjmp .+66 ; 0x1d36 <DFGeefWEF43tgt5uGreg5+0xde>
1cf4: c2 2f mov r28, r18
1cf6: cf 70 andi r28, 0x0F ; 15
1cf8: ca 30 cpi r28, 0x0A ; 10
1cfa: e8 f4 brcc .+58 ; 0x1d36 <DFGeefWEF43tgt5uGreg5+0xde>
1cfc: 80 91 88 0c lds r24, 0x0C88
1d00: 80 93 b3 0c sts 0x0CB3, r24
1d04: 80 91 89 0c lds r24, 0x0C89
1d08: 80 93 b2 0c sts 0x0CB2, r24
1d0c: 80 91 8a 0c lds r24, 0x0C8A
1d10: 80 93 b5 0c sts 0x0CB5, r24
1d14: 80 91 8b 0c lds r24, 0x0C8B
1d18: 80 93 b4 0c sts 0x0CB4, r24
1d1c: 60 91 b2 0c lds r22, 0x0CB2
1d20: 70 91 b3 0c lds r23, 0x0CB3
1d24: 8c 2f mov r24, r28
1d26: ff de rcall .-514 ; 0x1b26 <FGRT0589rge90gj459gg4>
1d28: 60 91 b4 0c lds r22, 0x0CB4
1d2c: 70 91 b5 0c lds r23, 0x0CB5
1d30: 8c 2f mov r24, r28
1d32: 8f 5f subi r24, 0xFF ; 255
1d34: f8 de rcall .-528 ; 0x1b26 <FGRT0589rge90gj459gg4>
1d36: df 91 pop r29
1d38: cf 91 pop r28
1d3a: 08 95 ret
 
00001d3c <FGtj76uzh56z3grEg5t45>:
1d3c: cf 93 push r28
1d3e: c8 2f mov r28, r24
1d40: 8f 3f cpi r24, 0xFF ; 255
1d42: 49 f4 brne .+18 ; 0x1d56 <FGtj76uzh56z3grEg5t45+0x1a>
1d44: 80 91 f7 02 lds r24, 0x02F7
1d48: 8f 3f cpi r24, 0xFF ; 255
1d4a: 29 f4 brne .+10 ; 0x1d56 <FGtj76uzh56z3grEg5t45+0x1a>
1d4c: 10 92 f9 02 sts 0x02F9, r1
1d50: 10 92 f8 02 sts 0x02F8, r1
1d54: 31 c0 rjmp .+98 ; 0x1db8 <FGtj76uzh56z3grEg5t45+0x7c>
1d56: 20 91 f9 02 lds r18, 0x02F9
1d5a: 22 23 and r18, r18
1d5c: 39 f4 brne .+14 ; 0x1d6c <FGtj76uzh56z3grEg5t45+0x30>
1d5e: cf 31 cpi r28, 0x1F ; 31
1d60: 11 f4 brne .+4 ; 0x1d66 <FGtj76uzh56z3grEg5t45+0x2a>
1d62: 85 e0 ldi r24, 0x05 ; 5
1d64: 01 c0 rjmp .+2 ; 0x1d68 <FGtj76uzh56z3grEg5t45+0x2c>
1d66: 84 e0 ldi r24, 0x04 ; 4
1d68: 80 93 fa 02 sts 0x02FA, r24
1d6c: 80 91 fa 02 lds r24, 0x02FA
1d70: 90 91 f8 02 lds r25, 0x02F8
1d74: 82 17 cp r24, r18
1d76: 98 f4 brcc .+38 ; 0x1d9e <FGtj76uzh56z3grEg5t45+0x62>
1d78: 89 2f mov r24, r25
1d7a: 80 95 com r24
1d7c: 80 93 f8 02 sts 0x02F8, r24
1d80: 8f 3f cpi r24, 0xFF ; 255
1d82: 19 f4 brne .+6 ; 0x1d8a <FGtj76uzh56z3grEg5t45+0x4e>
1d84: 8e ef ldi r24, 0xFE ; 254
1d86: 80 93 f8 02 sts 0x02F8, r24
1d8a: 80 91 f8 02 lds r24, 0x02F8
1d8e: c8 17 cp r28, r24
1d90: 09 f4 brne .+2 ; 0x1d94 <FGtj76uzh56z3grEg5t45+0x58>
1d92: 62 df rcall .-316 ; 0x1c58 <DFGeefWEF43tgt5uGreg5>
1d94: 10 92 f9 02 sts 0x02F9, r1
1d98: 10 92 f8 02 sts 0x02F8, r1
1d9c: 0b c0 rjmp .+22 ; 0x1db4 <FGtj76uzh56z3grEg5t45+0x78>
1d9e: e2 2f mov r30, r18
1da0: ff 27 eor r31, r31
1da2: e9 57 subi r30, 0x79 ; 121
1da4: f3 4f sbci r31, 0xF3 ; 243
1da6: c0 83 st Z, r28
1da8: 2f 5f subi r18, 0xFF ; 255
1daa: 20 93 f9 02 sts 0x02F9, r18
1dae: 9c 0f add r25, r28
1db0: 90 93 f8 02 sts 0x02F8, r25
1db4: c0 93 f7 02 sts 0x02F7, r28
1db8: cf 91 pop r28
1dba: 08 95 ret
 
00001dbc <LIBFC_JetiBox_Putchar>:
1dbc: 90 91 f3 02 lds r25, 0x02F3
1dc0: 93 32 cpi r25, 0x23 ; 35
1dc2: 40 f4 brcc .+16 ; 0x1dd4 <LIBFC_JetiBox_Putchar+0x18>
1dc4: e9 2f mov r30, r25
1dc6: ff 27 eor r31, r31
1dc8: e1 57 subi r30, 0x71 ; 113
1dca: f3 4f sbci r31, 0xF3 ; 243
1dcc: 80 83 st Z, r24
1dce: 9f 5f subi r25, 0xFF ; 255
1dd0: 90 93 f3 02 sts 0x02F3, r25
1dd4: 08 95 ret
 
00001dd6 <LIBFC_JetiBox_SetPos>:
1dd6: 83 32 cpi r24, 0x23 ; 35
1dd8: 18 f4 brcc .+6 ; 0x1de0 <LIBFC_JetiBox_SetPos+0xa>
1dda: 8d 5f subi r24, 0xFD ; 253
1ddc: 80 93 f3 02 sts 0x02F3, r24
1de0: 08 95 ret
 
00001de2 <LIBFC_JetiBox_Clear>:
1de2: 90 e2 ldi r25, 0x20 ; 32
1de4: e2 e9 ldi r30, 0x92 ; 146
1de6: fc e0 ldi r31, 0x0C ; 12
1de8: 8f e1 ldi r24, 0x1F ; 31
1dea: 91 93 st Z+, r25
1dec: 81 50 subi r24, 0x01 ; 1
1dee: 87 ff sbrs r24, 7
1df0: fc cf rjmp .-8 ; 0x1dea <LIBFC_JetiBox_Clear+0x8>
1df2: 08 95 ret
 
00001df4 <INiuzBtergGIBuB76T0G5>:
1df4: cf 93 push r28
1df6: cf b7 in r28, 0x3f ; 63
1df8: 23 e0 ldi r18, 0x03 ; 3
1dfa: 31 e0 ldi r19, 0x01 ; 1
1dfc: f8 94 cli
1dfe: 80 91 c9 00 lds r24, 0x00C9
1e02: 8f 77 andi r24, 0x7F ; 127
1e04: 80 93 c9 00 sts 0x00C9, r24
1e08: 80 91 c9 00 lds r24, 0x00C9
1e0c: 8f 7b andi r24, 0xBF ; 191
1e0e: 80 93 c9 00 sts 0x00C9, r24
1e12: 80 91 c9 00 lds r24, 0x00C9
1e16: 8f 7d andi r24, 0xDF ; 223
1e18: 80 93 c9 00 sts 0x00C9, r24
1e1c: 83 2f mov r24, r19
1e1e: 99 27 eor r25, r25
1e20: 80 93 cd 00 sts 0x00CD, r24
1e24: 20 93 cc 00 sts 0x00CC, r18
1e28: 80 91 c8 00 lds r24, 0x00C8
1e2c: 82 60 ori r24, 0x02 ; 2
1e2e: 80 93 c8 00 sts 0x00C8, r24
1e32: 88 e1 ldi r24, 0x18 ; 24
1e34: 80 93 c9 00 sts 0x00C9, r24
1e38: 80 91 ca 00 lds r24, 0x00CA
1e3c: 8f 77 andi r24, 0x7F ; 127
1e3e: 80 93 ca 00 sts 0x00CA, r24
1e42: 80 91 ca 00 lds r24, 0x00CA
1e46: 8f 7b andi r24, 0xBF ; 191
1e48: 80 93 ca 00 sts 0x00CA, r24
1e4c: 80 91 ca 00 lds r24, 0x00CA
1e50: 80 62 ori r24, 0x20 ; 32
1e52: 80 93 ca 00 sts 0x00CA, r24
1e56: 80 91 ca 00 lds r24, 0x00CA
1e5a: 80 61 ori r24, 0x10 ; 16
1e5c: 80 93 ca 00 sts 0x00CA, r24
1e60: 80 91 ca 00 lds r24, 0x00CA
1e64: 88 60 ori r24, 0x08 ; 8
1e66: 80 93 ca 00 sts 0x00CA, r24
1e6a: 80 91 c9 00 lds r24, 0x00C9
1e6e: 84 60 ori r24, 0x04 ; 4
1e70: 80 93 c9 00 sts 0x00C9, r24
1e74: 80 91 ca 00 lds r24, 0x00CA
1e78: 84 60 ori r24, 0x04 ; 4
1e7a: 80 93 ca 00 sts 0x00CA, r24
1e7e: 80 91 ca 00 lds r24, 0x00CA
1e82: 82 60 ori r24, 0x02 ; 2
1e84: 80 93 ca 00 sts 0x00CA, r24
1e88: 80 91 c8 00 lds r24, 0x00C8
1e8c: 87 ff sbrs r24, 7
1e8e: 03 c0 rjmp .+6 ; 0x1e96 <INiuzBtergGIBuB76T0G5+0xa2>
1e90: 80 91 ce 00 lds r24, 0x00CE
1e94: f9 cf rjmp .-14 ; 0x1e88 <INiuzBtergGIBuB76T0G5+0x94>
1e96: 80 91 c9 00 lds r24, 0x00C9
1e9a: 80 68 ori r24, 0x80 ; 128
1e9c: 80 93 c9 00 sts 0x00C9, r24
1ea0: 80 91 c9 00 lds r24, 0x00C9
1ea4: 80 64 ori r24, 0x40 ; 64
1ea6: 80 93 c9 00 sts 0x00C9, r24
1eaa: 9b df rcall .-202 ; 0x1de2 <LIBFC_JetiBox_Clear>
1eac: cf bf out 0x3f, r28 ; 63
1eae: cf 91 pop r28
1eb0: 08 95 ret
 
00001eb2 <KLNMIOHMUHG76GFGr43r3>:
1eb2: 28 2f mov r18, r24
1eb4: 99 27 eor r25, r25
1eb6: 8f 70 andi r24, 0x0F ; 15
1eb8: 90 70 andi r25, 0x00 ; 0
1eba: 89 2b or r24, r25
1ebc: 31 f4 brne .+12 ; 0x1eca <KLNMIOHMUHG76GFGr43r3+0x18>
1ebe: 20 95 com r18
1ec0: 80 91 f2 02 lds r24, 0x02F2
1ec4: 82 2b or r24, r18
1ec6: 80 93 f2 02 sts 0x02F2, r24
1eca: 08 95 ret
 
00001ecc <__vector_30>:
1ecc: 1f 92 push r1
1ece: 0f 92 push r0
1ed0: 0f b6 in r0, 0x3f ; 63
1ed2: 0f 92 push r0
1ed4: 11 24 eor r1, r1
1ed6: 8f 93 push r24
1ed8: ef 93 push r30
1eda: ff 93 push r31
1edc: 80 91 06 01 lds r24, 0x0106
1ee0: 88 23 and r24, r24
1ee2: 09 f0 breq .+2 ; 0x1ee6 <__vector_30+0x1a>
1ee4: 68 c0 rjmp .+208 ; 0x1fb6 <__vector_30+0xea>
1ee6: e0 91 fc 02 lds r30, 0x02FC
1eea: ee 23 and r30, r30
1eec: 89 f4 brne .+34 ; 0x1f10 <__vector_30+0x44>
1eee: 80 91 fb 02 lds r24, 0x02FB
1ef2: 88 23 and r24, r24
1ef4: 69 f4 brne .+26 ; 0x1f10 <__vector_30+0x44>
1ef6: 80 91 8f 0c lds r24, 0x0C8F
1efa: 88 23 and r24, r24
1efc: 21 f0 breq .+8 ; 0x1f06 <__vector_30+0x3a>
1efe: 81 e0 ldi r24, 0x01 ; 1
1f00: 80 93 fd 02 sts 0x02FD, r24
1f04: 05 c0 rjmp .+10 ; 0x1f10 <__vector_30+0x44>
1f06: 80 91 c9 00 lds r24, 0x00C9
1f0a: 81 60 ori r24, 0x01 ; 1
1f0c: 80 93 c9 00 sts 0x00C9, r24
1f10: 80 91 fd 02 lds r24, 0x02FD
1f14: 88 23 and r24, r24
1f16: 79 f4 brne .+30 ; 0x1f36 <__vector_30+0x6a>
1f18: ef 5f subi r30, 0xFF ; 255
1f1a: e0 93 fc 02 sts 0x02FC, r30
1f1e: 80 91 66 0c lds r24, 0x0C66
1f22: 8e 17 cp r24, r30
1f24: 20 f4 brcc .+8 ; 0x1f2e <__vector_30+0x62>
1f26: 81 e0 ldi r24, 0x01 ; 1
1f28: 80 93 fd 02 sts 0x02FD, r24
1f2c: 1c c0 rjmp .+56 ; 0x1f66 <__vector_30+0x9a>
1f2e: ff 27 eor r31, r31
1f30: ea 59 subi r30, 0x9A ; 154
1f32: f3 4f sbci r31, 0xF3 ; 243
1f34: 3c c0 rjmp .+120 ; 0x1fae <__vector_30+0xe2>
1f36: 80 91 fb 02 lds r24, 0x02FB
1f3a: 88 23 and r24, r24
1f3c: 61 f4 brne .+24 ; 0x1f56 <__vector_30+0x8a>
1f3e: 80 91 8f 0c lds r24, 0x0C8F
1f42: 88 23 and r24, r24
1f44: 11 f4 brne .+4 ; 0x1f4a <__vector_30+0x7e>
1f46: 83 e0 ldi r24, 0x03 ; 3
1f48: 03 c0 rjmp .+6 ; 0x1f50 <__vector_30+0x84>
1f4a: 81 39 cpi r24, 0x91 ; 145
1f4c: 99 f4 brne .+38 ; 0x1f74 <__vector_30+0xa8>
1f4e: 81 e0 ldi r24, 0x01 ; 1
1f50: 80 93 fb 02 sts 0x02FB, r24
1f54: 0f c0 rjmp .+30 ; 0x1f74 <__vector_30+0xa8>
1f56: 83 30 cpi r24, 0x03 ; 3
1f58: 99 f4 brne .+38 ; 0x1f80 <__vector_30+0xb4>
1f5a: 80 91 8f 0c lds r24, 0x0C8F
1f5e: 88 23 and r24, r24
1f60: 49 f0 breq .+18 ; 0x1f74 <__vector_30+0xa8>
1f62: 10 92 8f 0c sts 0x0C8F, r1
1f66: 80 91 c9 00 lds r24, 0x00C9
1f6a: 8e 7f andi r24, 0xFE ; 254
1f6c: 80 93 c9 00 sts 0x00C9, r24
1f70: 8e ef ldi r24, 0xFE ; 254
1f72: 1e c0 rjmp .+60 ; 0x1fb0 <__vector_30+0xe4>
1f74: 80 91 c9 00 lds r24, 0x00C9
1f78: 81 60 ori r24, 0x01 ; 1
1f7a: 80 93 c9 00 sts 0x00C9, r24
1f7e: 0e c0 rjmp .+28 ; 0x1f9c <__vector_30+0xd0>
1f80: 83 32 cpi r24, 0x23 ; 35
1f82: 61 f4 brne .+24 ; 0x1f9c <__vector_30+0xd0>
1f84: 80 91 c9 00 lds r24, 0x00C9
1f88: 8e 7f andi r24, 0xFE ; 254
1f8a: 80 93 c9 00 sts 0x00C9, r24
1f8e: 8f ef ldi r24, 0xFF ; 255
1f90: 80 93 ce 00 sts 0x00CE, r24
1f94: 81 e0 ldi r24, 0x01 ; 1
1f96: 80 93 06 01 sts 0x0106, r24
1f9a: 18 c0 rjmp .+48 ; 0x1fcc <__vector_30+0x100>
1f9c: 80 91 fb 02 lds r24, 0x02FB
1fa0: e8 2f mov r30, r24
1fa2: ff 27 eor r31, r31
1fa4: e1 57 subi r30, 0x71 ; 113
1fa6: f3 4f sbci r31, 0xF3 ; 243
1fa8: 8f 5f subi r24, 0xFF ; 255
1faa: 80 93 fb 02 sts 0x02FB, r24
1fae: 80 81 ld r24, Z
1fb0: 80 93 ce 00 sts 0x00CE, r24
1fb4: 0b c0 rjmp .+22 ; 0x1fcc <__vector_30+0x100>
1fb6: 10 92 fb 02 sts 0x02FB, r1
1fba: 10 92 fc 02 sts 0x02FC, r1
1fbe: 10 92 fd 02 sts 0x02FD, r1
1fc2: 80 91 c9 00 lds r24, 0x00C9
1fc6: 80 61 ori r24, 0x10 ; 16
1fc8: 80 93 c9 00 sts 0x00C9, r24
1fcc: ff 91 pop r31
1fce: ef 91 pop r30
1fd0: 8f 91 pop r24
1fd2: 0f 90 pop r0
1fd4: 0f be out 0x3f, r0 ; 63
1fd6: 0f 90 pop r0
1fd8: 1f 90 pop r1
1fda: 18 95 reti
 
00001fdc <update_crc>:
1fdc: 68 27 eor r22, r24
1fde: 27 e0 ldi r18, 0x07 ; 7
1fe0: 32 2f mov r19, r18
1fe2: 67 ff sbrs r22, 7
1fe4: 06 c0 rjmp .+12 ; 0x1ff2 <update_crc+0x16>
1fe6: 86 2f mov r24, r22
1fe8: 99 27 eor r25, r25
1fea: 88 0f add r24, r24
1fec: 99 1f adc r25, r25
1fee: 83 27 eor r24, r19
1ff0: 02 c0 rjmp .+4 ; 0x1ff6 <update_crc+0x1a>
1ff2: 86 2f mov r24, r22
1ff4: 88 0f add r24, r24
1ff6: 68 2f mov r22, r24
1ff8: 21 50 subi r18, 0x01 ; 1
1ffa: 27 ff sbrs r18, 7
1ffc: f2 cf rjmp .-28 ; 0x1fe2 <update_crc+0x6>
1ffe: 99 27 eor r25, r25
2000: 08 95 ret
 
00002002 <crc8>:
2002: 0f 93 push r16
2004: 1f 93 push r17
2006: cf 93 push r28
2008: df 93 push r29
200a: 06 2f mov r16, r22
200c: 60 e0 ldi r22, 0x00 ; 0
200e: 16 2f mov r17, r22
2010: 60 17 cp r22, r16
2012: 38 f4 brcc .+14 ; 0x2022 <crc8+0x20>
2014: ec 01 movw r28, r24
2016: 89 91 ld r24, Y+
2018: e1 df rcall .-62 ; 0x1fdc <update_crc>
201a: 68 2f mov r22, r24
201c: 1f 5f subi r17, 0xFF ; 255
201e: 10 17 cp r17, r16
2020: d0 f3 brcs .-12 ; 0x2016 <crc8+0x14>
2022: 86 2f mov r24, r22
2024: 99 27 eor r25, r25
2026: df 91 pop r29
2028: cf 91 pop r28
202a: 1f 91 pop r17
202c: 0f 91 pop r16
202e: 08 95 ret
 
00002030 <JetiEX_GetLength>:
2030: dc 01 movw r26, r24
2032: 90 e0 ldi r25, 0x00 ; 0
2034: 96 17 cp r25, r22
2036: 58 f4 brcc .+22 ; 0x204e <JetiEX_GetLength+0x1e>
2038: 8c 91 ld r24, X
203a: 80 32 cpi r24, 0x20 ; 32
203c: 41 f0 breq .+16 ; 0x204e <JetiEX_GetLength+0x1e>
203e: 9f 5f subi r25, 0xFF ; 255
2040: 96 17 cp r25, r22
2042: 28 f4 brcc .+10 ; 0x204e <JetiEX_GetLength+0x1e>
2044: fd 01 movw r30, r26
2046: e9 0f add r30, r25
2048: f1 1d adc r31, r1
204a: 80 81 ld r24, Z
204c: f6 cf rjmp .-20 ; 0x203a <JetiEX_GetLength+0xa>
204e: 89 2f mov r24, r25
2050: 99 27 eor r25, r25
2052: 08 95 ret
 
00002054 <JetiEX_CreatePacket>:
2054: a0 e0 ldi r26, 0x00 ; 0
2056: b0 e0 ldi r27, 0x00 ; 0
2058: e0 e3 ldi r30, 0x30 ; 48
205a: f0 e1 ldi r31, 0x10 ; 16
205c: 0c 94 5e 9b jmp 0x136bc ; 0x136bc <__prologue_saves__+0x12>
2060: 8f e9 ldi r24, 0x9F ; 159
2062: 80 93 67 0c sts 0x0C67, r24
2066: 80 e1 ldi r24, 0x10 ; 16
2068: 80 93 69 0c sts 0x0C69, r24
206c: 84 ea ldi r24, 0xA4 ; 164
206e: 80 93 6a 0c sts 0x0C6A, r24
2072: 85 e5 ldi r24, 0x55 ; 85
2074: 80 93 6b 0c sts 0x0C6B, r24
2078: 8d e5 ldi r24, 0x5D ; 93
207a: 80 93 6c 0c sts 0x0C6C, r24
207e: 10 92 6d 0c sts 0x0C6D, r1
2082: 80 91 ff 02 lds r24, 0x02FF
2086: 88 23 and r24, r24
2088: 09 f0 breq .+2 ; 0x208c <JetiEX_CreatePacket+0x38>
208a: 67 c0 rjmp .+206 ; 0x215a <JetiEX_CreatePacket+0x106>
208c: 80 91 fe 02 lds r24, 0x02FE
2090: 13 e1 ldi r17, 0x13 ; 19
2092: 81 9f mul r24, r17
2094: c0 01 movw r24, r0
2096: 11 24 eor r1, r1
2098: 63 e0 ldi r22, 0x03 ; 3
209a: 88 59 subi r24, 0x98 ; 152
209c: 9e 4f sbci r25, 0xFE ; 254
209e: c8 df rcall .-112 ; 0x2030 <JetiEX_GetLength>
20a0: 08 2f mov r16, r24
20a2: 80 91 fe 02 lds r24, 0x02FE
20a6: 81 9f mul r24, r17
20a8: c0 01 movw r24, r0
20aa: 11 24 eor r1, r1
20ac: 6a e0 ldi r22, 0x0A ; 10
20ae: 82 5a subi r24, 0xA2 ; 162
20b0: 9e 4f sbci r25, 0xFE ; 254
20b2: be df rcall .-132 ; 0x2030 <JetiEX_GetLength>
20b4: 98 2f mov r25, r24
20b6: 80 0f add r24, r16
20b8: 86 5f subi r24, 0xF6 ; 246
20ba: 80 93 66 0c sts 0x0C66, r24
20be: 2e ef ldi r18, 0xFE ; 254
20c0: b2 2e mov r11, r18
20c2: b8 0e add r11, r24
20c4: b0 92 68 0c sts 0x0C68, r11
20c8: 20 91 fe 02 lds r18, 0x02FE
20cc: 20 93 6e 0c sts 0x0C6E, r18
20d0: e9 2e mov r14, r25
20d2: ff 24 eor r15, r15
20d4: c7 01 movw r24, r14
20d6: 13 e0 ldi r17, 0x03 ; 3
20d8: 88 0f add r24, r24
20da: 99 1f adc r25, r25
20dc: 1a 95 dec r17
20de: e1 f7 brne .-8 ; 0x20d8 <JetiEX_CreatePacket+0x84>
20e0: 80 2b or r24, r16
20e2: 80 93 6f 0c sts 0x0C6F, r24
20e6: 82 2f mov r24, r18
20e8: 99 27 eor r25, r25
20ea: c3 e1 ldi r28, 0x13 ; 19
20ec: cc 2e mov r12, r28
20ee: d1 2c mov r13, r1
20f0: 8c 9d mul r24, r12
20f2: 90 01 movw r18, r0
20f4: 8d 9d mul r24, r13
20f6: 30 0d add r19, r0
20f8: 9c 9d mul r25, r12
20fa: 30 0d add r19, r0
20fc: 11 24 eor r1, r1
20fe: c9 01 movw r24, r18
2100: 82 5a subi r24, 0xA2 ; 162
2102: 9e 4f sbci r25, 0xFE ; 254
2104: a7 01 movw r20, r14
2106: bc 01 movw r22, r24
2108: 80 e7 ldi r24, 0x70 ; 112
210a: 9c e0 ldi r25, 0x0C ; 12
210c: 0e 94 a2 9b call 0x13744 ; 0x13744 <memcpy>
2110: 11 27 eor r17, r17
2112: 80 91 fe 02 lds r24, 0x02FE
2116: 99 27 eor r25, r25
2118: 8c 9d mul r24, r12
211a: e0 01 movw r28, r0
211c: 8d 9d mul r24, r13
211e: d0 0d add r29, r0
2120: 9c 9d mul r25, r12
2122: d0 0d add r29, r0
2124: 11 24 eor r1, r1
2126: ce 01 movw r24, r28
2128: 88 59 subi r24, 0x98 ; 152
212a: 9e 4f sbci r25, 0xFE ; 254
212c: a8 01 movw r20, r16
212e: bc 01 movw r22, r24
2130: c7 01 movw r24, r14
2132: 80 59 subi r24, 0x90 ; 144
2134: 93 4f sbci r25, 0xF3 ; 243
2136: 0e 94 a2 9b call 0x13744 ; 0x13744 <memcpy>
213a: 0a 59 subi r16, 0x9A ; 154
213c: 13 4f sbci r17, 0xF3 ; 243
213e: 0e 0d add r16, r14
2140: 1f 1d adc r17, r15
2142: 6b 2d mov r22, r11
2144: 88 e6 ldi r24, 0x68 ; 104
2146: 9c e0 ldi r25, 0x0C ; 12
2148: 5c df rcall .-328 ; 0x2002 <crc8>
214a: f8 01 movw r30, r16
214c: 82 87 std Z+10, r24 ; 0x0a
214e: 80 91 ff 02 lds r24, 0x02FF
2152: 8f 5f subi r24, 0xFF ; 255
2154: 80 93 ff 02 sts 0x02FF, r24
2158: 92 c0 rjmp .+292 ; 0x227e <JetiEX_CreatePacket+0x22a>
215a: c0 90 6d 0c lds r12, 0x0C6D
215e: 1c 2d mov r17, r12
2160: 0e 94 38 73 call 0xe670 ; 0xe670 <JetiEX_Update>
2164: 30 91 07 01 lds r19, 0x0107
2168: 30 31 cpi r19, 0x10 ; 16
216a: 08 f0 brcs .+2 ; 0x216e <JetiEX_CreatePacket+0x11a>
216c: 58 c0 rjmp .+176 ; 0x221e <JetiEX_CreatePacket+0x1ca>
216e: b3 e1 ldi r27, 0x13 ; 19
2170: eb 2e mov r14, r27
2172: f1 2c mov r15, r1
2174: 63 2f mov r22, r19
2176: 81 2f mov r24, r17
2178: 99 27 eor r25, r25
217a: fc 01 movw r30, r24
217c: ee 0f add r30, r30
217e: ff 1f adc r31, r31
2180: e8 0f add r30, r24
2182: f9 1f adc r31, r25
2184: ec 0d add r30, r12
2186: f1 1d adc r31, r1
2188: ea 59 subi r30, 0x9A ; 154
218a: f3 4f sbci r31, 0xF3 ; 243
218c: 83 2f mov r24, r19
218e: 99 27 eor r25, r25
2190: 8e 9d mul r24, r14
2192: d0 01 movw r26, r0
2194: 8f 9d mul r24, r15
2196: b0 0d add r27, r0
2198: 9e 9d mul r25, r14
219a: b0 0d add r27, r0
219c: 11 24 eor r1, r1
219e: a2 5a subi r26, 0xA2 ; 162
21a0: be 4f sbci r27, 0xFE ; 254
21a2: ed 01 movw r28, r26
21a4: 2d 85 ldd r18, Y+13 ; 0x0d
21a6: 74 e0 ldi r23, 0x04 ; 4
21a8: 88 0f add r24, r24
21aa: 99 1f adc r25, r25
21ac: 7a 95 dec r23
21ae: e1 f7 brne .-8 ; 0x21a8 <JetiEX_CreatePacket+0x154>
21b0: 28 2b or r18, r24
21b2: 20 87 std Z+8, r18 ; 0x08
21b4: 3e 30 cpi r19, 0x0E ; 14
21b6: 88 f4 brcc .+34 ; 0x21da <JetiEX_CreatePacket+0x186>
21b8: 2e 85 ldd r18, Y+14 ; 0x0e
21ba: 3f 85 ldd r19, Y+15 ; 0x0f
21bc: 3f 79 andi r19, 0x9F ; 159
21be: 8a 89 ldd r24, Y+18 ; 0x12
21c0: 99 27 eor r25, r25
21c2: 98 2f mov r25, r24
21c4: 88 27 eor r24, r24
21c6: 92 95 swap r25
21c8: 99 0f add r25, r25
21ca: 90 7e andi r25, 0xE0 ; 224
21cc: 28 2b or r18, r24
21ce: 39 2b or r19, r25
21d0: 21 87 std Z+9, r18 ; 0x09
21d2: 83 2f mov r24, r19
21d4: 99 27 eor r25, r25
21d6: 82 87 std Z+10, r24 ; 0x0a
21d8: 16 c0 rjmp .+44 ; 0x2206 <JetiEX_CreatePacket+0x1b2>
21da: ed 01 movw r28, r26
21dc: 2e 85 ldd r18, Y+14 ; 0x0e
21de: 3f 85 ldd r19, Y+15 ; 0x0f
21e0: 48 89 ldd r20, Y+16 ; 0x10
21e2: 59 89 ldd r21, Y+17 ; 0x11
21e4: 21 87 std Z+9, r18 ; 0x09
21e6: bb 27 eor r27, r27
21e8: a5 2f mov r26, r21
21ea: 94 2f mov r25, r20
21ec: 83 2f mov r24, r19
21ee: 82 87 std Z+10, r24 ; 0x0a
21f0: ca 01 movw r24, r20
21f2: aa 27 eor r26, r26
21f4: bb 27 eor r27, r27
21f6: 83 87 std Z+11, r24 ; 0x0b
21f8: 85 2f mov r24, r21
21fa: 99 27 eor r25, r25
21fc: aa 27 eor r26, r26
21fe: bb 27 eor r27, r27
2200: 84 87 std Z+12, r24 ; 0x0c
2202: e2 e0 ldi r30, 0x02 ; 2
2204: ce 0e add r12, r30
2206: 86 2f mov r24, r22
2208: 8f 5f subi r24, 0xFF ; 255
220a: 68 2f mov r22, r24
220c: 1f 5f subi r17, 0xFF ; 255
220e: 16 30 cpi r17, 0x06 ; 6
2210: 20 f4 brcc .+8 ; 0x221a <JetiEX_CreatePacket+0x1c6>
2212: 38 2f mov r19, r24
2214: 80 31 cpi r24, 0x10 ; 16
2216: 08 f4 brcc .+2 ; 0x221a <JetiEX_CreatePacket+0x1c6>
2218: ae cf rjmp .-164 ; 0x2176 <JetiEX_CreatePacket+0x122>
221a: 80 93 07 01 sts 0x0107, r24
221e: 83 e0 ldi r24, 0x03 ; 3
2220: 18 9f mul r17, r24
2222: c0 01 movw r24, r0
2224: 11 24 eor r1, r1
2226: 2c 2d mov r18, r12
2228: 28 0f add r18, r24
222a: 28 5f subi r18, 0xF8 ; 248
222c: 20 93 66 0c sts 0x0C66, r18
2230: 22 5c subi r18, 0xC2 ; 194
2232: 20 93 68 0c sts 0x0C68, r18
2236: 81 2f mov r24, r17
2238: 99 27 eor r25, r25
223a: 8c 01 movw r16, r24
223c: 00 0f add r16, r16
223e: 11 1f adc r17, r17
2240: 08 0f add r16, r24
2242: 19 1f adc r17, r25
2244: 0c 0d add r16, r12
2246: 11 1d adc r17, r1
2248: 0a 59 subi r16, 0x9A ; 154
224a: 13 4f sbci r17, 0xF3 ; 243
224c: 20 54 subi r18, 0x40 ; 64
224e: 62 2f mov r22, r18
2250: 88 e6 ldi r24, 0x68 ; 104
2252: 9c e0 ldi r25, 0x0C ; 12
2254: d6 de rcall .-596 ; 0x2002 <crc8>
2256: e8 01 movw r28, r16
2258: 88 87 std Y+8, r24 ; 0x08
225a: 80 91 07 01 lds r24, 0x0107
225e: 80 31 cpi r24, 0x10 ; 16
2260: 70 f0 brcs .+28 ; 0x227e <JetiEX_CreatePacket+0x22a>
2262: 81 e0 ldi r24, 0x01 ; 1
2264: 80 93 07 01 sts 0x0107, r24
2268: 10 92 ff 02 sts 0x02FF, r1
226c: 80 91 fe 02 lds r24, 0x02FE
2270: 8f 5f subi r24, 0xFF ; 255
2272: 80 93 fe 02 sts 0x02FE, r24
2276: 80 31 cpi r24, 0x10 ; 16
2278: 10 f0 brcs .+4 ; 0x227e <JetiEX_CreatePacket+0x22a>
227a: 10 92 fe 02 sts 0x02FE, r1
227e: e9 e0 ldi r30, 0x09 ; 9
2280: cd b7 in r28, 0x3d ; 61
2282: de b7 in r29, 0x3e ; 62
2284: 0c 94 7a 9b jmp 0x136f4 ; 0x136f4 <__epilogue_restores__+0x12>
 
00002288 <a48784362857632195659>:
2288: 80 91 06 01 lds r24, 0x0106
228c: 88 23 and r24, r24
228e: 09 f4 brne .+2 ; 0x2292 <a48784362857632195659+0xa>
2290: 46 c0 rjmp .+140 ; 0x231e <a48784362857632195659+0x96>
2292: 80 91 c9 03 lds r24, 0x03C9
2296: 85 fd sbrc r24, 5
2298: 04 c0 rjmp .+8 ; 0x22a2 <a48784362857632195659+0x1a>
229a: 80 91 5a 04 lds r24, 0x045A
229e: 88 23 and r24, r24
22a0: 81 f0 breq .+32 ; 0x22c2 <a48784362857632195659+0x3a>
22a2: 82 e9 ldi r24, 0x92 ; 146
22a4: 80 93 8f 0c sts 0x0C8F, r24
22a8: 83 e2 ldi r24, 0x23 ; 35
22aa: 80 93 90 0c sts 0x0C90, r24
22ae: 80 91 5a 04 lds r24, 0x045A
22b2: 88 23 and r24, r24
22b4: 09 f4 brne .+2 ; 0x22b8 <a48784362857632195659+0x30>
22b6: 85 e5 ldi r24, 0x55 ; 85
22b8: 80 93 91 0c sts 0x0C91, r24
22bc: 10 92 5a 04 sts 0x045A, r1
22c0: 02 c0 rjmp .+4 ; 0x22c6 <a48784362857632195659+0x3e>
22c2: 80 93 8f 0c sts 0x0C8F, r24
22c6: 80 91 08 01 lds r24, 0x0108
22ca: 8f 30 cpi r24, 0x0F ; 15
22cc: 71 f4 brne .+28 ; 0x22ea <a48784362857632195659+0x62>
22ce: 80 91 f2 02 lds r24, 0x02F2
22d2: 0e 94 70 72 call 0xe4e0 ; 0xe4e0 <JetiBox_Update>
22d6: 88 23 and r24, r24
22d8: 41 f0 breq .+16 ; 0x22ea <a48784362857632195659+0x62>
22da: 81 e9 ldi r24, 0x91 ; 145
22dc: 80 93 8f 0c sts 0x0C8F, r24
22e0: 80 93 90 0c sts 0x0C90, r24
22e4: 81 e3 ldi r24, 0x31 ; 49
22e6: 80 93 91 0c sts 0x0C91, r24
22ea: 10 92 06 01 sts 0x0106, r1
22ee: 80 91 c8 00 lds r24, 0x00C8
22f2: 85 ff sbrs r24, 5
22f4: fc cf rjmp .-8 ; 0x22ee <a48784362857632195659+0x66>
22f6: 80 91 c9 00 lds r24, 0x00C9
22fa: 8f 7e andi r24, 0xEF ; 239
22fc: 80 93 c9 00 sts 0x00C9, r24
2300: 80 91 c9 00 lds r24, 0x00C9
2304: 8e 7f andi r24, 0xFE ; 254
2306: 80 93 c9 00 sts 0x00C9, r24
230a: a4 de rcall .-696 ; 0x2054 <JetiEX_CreatePacket>
230c: 8e e7 ldi r24, 0x7E ; 126
230e: 80 93 ce 00 sts 0x00CE, r24
2312: 80 91 f2 02 lds r24, 0x02F2
2316: 80 93 08 01 sts 0x0108, r24
231a: 10 92 f2 02 sts 0x02F2, r1
231e: 08 95 ret
 
00002320 <njkvnfuhgbuzrgezgf483>:
2320: ef 92 push r14
2322: ff 92 push r15
2324: 0f 93 push r16
2326: 1f 93 push r17
2328: cf 93 push r28
232a: df 93 push r29
232c: 7c 01 movw r14, r24
232e: 8b 01 movw r16, r22
2330: ea 01 movw r28, r20
2332: 45 2b or r20, r21
2334: 39 f0 breq .+14 ; 0x2344 <njkvnfuhgbuzrgezgf483+0x24>
2336: f8 01 movw r30, r16
2338: 81 91 ld r24, Z+
233a: 8f 01 movw r16, r30
233c: f7 01 movw r30, r14
233e: 09 95 icall
2340: 21 97 sbiw r28, 0x01 ; 1
2342: c9 f7 brne .-14 ; 0x2336 <njkvnfuhgbuzrgezgf483+0x16>
2344: e6 e0 ldi r30, 0x06 ; 6
2346: cd b7 in r28, 0x3d ; 61
2348: de b7 in r29, 0x3e ; 62
234a: 0c 94 7d 9b jmp 0x136fa ; 0x136fa <__epilogue_restores__+0x18>
 
0000234e <lkvgnfdgun57th38rgh84>:
234e: ef 92 push r14
2350: ff 92 push r15
2352: 0f 93 push r16
2354: 1f 93 push r17
2356: cf 93 push r28
2358: df 93 push r29
235a: 7c 01 movw r14, r24
235c: 8b 01 movw r16, r22
235e: ea 01 movw r28, r20
2360: 45 2b or r20, r21
2362: 41 f0 breq .+16 ; 0x2374 <lkvgnfdgun57th38rgh84+0x26>
2364: f8 01 movw r30, r16
2366: 0f 5f subi r16, 0xFF ; 255
2368: 1f 4f sbci r17, 0xFF ; 255
236a: 84 91 lpm r24, Z
236c: f7 01 movw r30, r14
236e: 09 95 icall
2370: 21 97 sbiw r28, 0x01 ; 1
2372: c1 f7 brne .-16 ; 0x2364 <lkvgnfdgun57th38rgh84+0x16>
2374: e6 e0 ldi r30, 0x06 ; 6
2376: cd b7 in r28, 0x3d ; 61
2378: de b7 in r29, 0x3e ; 62
237a: 0c 94 7d 9b jmp 0x136fa ; 0x136fa <__epilogue_restores__+0x18>
 
0000237e <fgmjgnrtuth587th9rTrw>:
237e: 0f 93 push r16
2380: 1f 93 push r17
2382: cf 93 push r28
2384: 8c 01 movw r16, r24
2386: c6 2f mov r28, r22
2388: 16 16 cp r1, r22
238a: 34 f4 brge .+12 ; 0x2398 <fgmjgnrtuth587th9rTrw+0x1a>
238c: 80 e2 ldi r24, 0x20 ; 32
238e: f8 01 movw r30, r16
2390: 09 95 icall
2392: c1 50 subi r28, 0x01 ; 1
2394: 1c 16 cp r1, r28
2396: d4 f3 brlt .-12 ; 0x238c <fgmjgnrtuth587th9rTrw+0xe>
2398: cf 91 pop r28
239a: 1f 91 pop r17
239c: 0f 91 pop r16
239e: 08 95 ret
 
000023a0 <wqqeRT45jth8g758735h4>:
23a0: 0f 93 push r16
23a2: 1f 93 push r17
23a4: cf 93 push r28
23a6: 8c 01 movw r16, r24
23a8: c6 2f mov r28, r22
23aa: 16 16 cp r1, r22
23ac: 34 f4 brge .+12 ; 0x23ba <wqqeRT45jth8g758735h4+0x1a>
23ae: 80 e3 ldi r24, 0x30 ; 48
23b0: f8 01 movw r30, r16
23b2: 09 95 icall
23b4: c1 50 subi r28, 0x01 ; 1
23b6: 1c 16 cp r1, r28
23b8: d4 f3 brlt .-12 ; 0x23ae <wqqeRT45jth8g758735h4+0xe>
23ba: cf 91 pop r28
23bc: 1f 91 pop r17
23be: 0f 91 pop r16
23c0: 08 95 ret
 
000023c2 <IIllllIllIlllIIlllII>:
23c2: a5 e3 ldi r26, 0x35 ; 53
23c4: b0 e0 ldi r27, 0x00 ; 0
23c6: e7 ee ldi r30, 0xE7 ; 231
23c8: f1 e1 ldi r31, 0x11 ; 17
23ca: 0c 94 55 9b jmp 0x136aa ; 0x136aa <__prologue_saves__>
23ce: 2e 96 adiw r28, 0x0e ; 14
23d0: ee ad ldd r30, Y+62 ; 0x3e
23d2: ff ad ldd r31, Y+63 ; 0x3f
23d4: 2e 97 sbiw r28, 0x0e ; 14
23d6: 88 24 eor r8, r8
23d8: 99 24 eor r9, r9
23da: 54 01 movw r10, r8
23dc: 80 91 ec 02 lds r24, 0x02EC
23e0: 88 23 and r24, r24
23e2: 21 f4 brne .+8 ; 0x23ec <IIllllIllIlllIIlllII+0x2a>
23e4: 2c 96 adiw r28, 0x0c ; 12
23e6: 1f ae std Y+63, r1 ; 0x3f
23e8: 1e ae std Y+62, r1 ; 0x3e
23ea: 2c 97 sbiw r28, 0x0c ; 12
23ec: ae e4 ldi r26, 0x4E ; 78
23ee: 4a 2e mov r4, r26
23f0: 51 2c mov r5, r1
23f2: 4c 0e add r4, r28
23f4: 5d 1e adc r5, r29
23f6: 6f 01 movw r12, r30
23f8: b6 01 movw r22, r12
23fa: 05 c0 rjmp .+10 ; 0x2406 <IIllllIllIlllIIlllII+0x44>
23fc: 15 32 cpi r17, 0x25 ; 37
23fe: 39 f0 breq .+14 ; 0x240e <IIllllIllIlllIIlllII+0x4c>
2400: 08 94 sec
2402: c1 1c adc r12, r1
2404: d1 1c adc r13, r1
2406: f6 01 movw r30, r12
2408: 14 91 lpm r17, Z
240a: 11 23 and r17, r17
240c: b9 f7 brne .-18 ; 0x23fc <IIllllIllIlllIIlllII+0x3a>
240e: a6 01 movw r20, r12
2410: 46 1b sub r20, r22
2412: 57 0b sbc r21, r23
2414: 29 f0 breq .+10 ; 0x2420 <IIllllIllIlllIIlllII+0x5e>
2416: 2c 96 adiw r28, 0x0c ; 12
2418: 8e ad ldd r24, Y+62 ; 0x3e
241a: 9f ad ldd r25, Y+63 ; 0x3f
241c: 2c 97 sbiw r28, 0x0c ; 12
241e: 97 df rcall .-210 ; 0x234e <lkvgnfdgun57th38rgh84>
2420: 11 23 and r17, r17
2422: 09 f4 brne .+2 ; 0x2426 <IIllllIllIlllIIlllII+0x64>
2424: 64 c2 rjmp .+1224 ; 0x28ee <IIllllIllIlllIIlllII+0x52c>
2426: 08 94 sec
2428: c1 1c adc r12, r1
242a: d1 1c adc r13, r1
242c: ff 24 eor r15, r15
242e: fd a6 std Y+45, r15 ; 0x2d
2430: fc a6 std Y+44, r15 ; 0x2c
2432: ef ef ldi r30, 0xFF ; 255
2434: ee 2e mov r14, r30
2436: f9 a6 std Y+41, r15 ; 0x29
2438: f6 01 movw r30, r12
243a: 08 94 sec
243c: c1 1c adc r12, r1
243e: d1 1c adc r13, r1
2440: 14 91 lpm r17, Z
2442: 15 37 cpi r17, 0x75 ; 117
2444: 21 f0 breq .+8 ; 0x244e <IIllllIllIlllIIlllII+0x8c>
2446: 81 2f mov r24, r17
2448: 80 62 ori r24, 0x20 ; 32
244a: 88 37 cpi r24, 0x78 ; 120
244c: b1 f4 brne .+44 ; 0x247a <IIllllIllIlllIIlllII+0xb8>
244e: f0 fe sbrs r15, 0
2450: 0a c0 rjmp .+20 ; 0x2466 <IIllllIllIlllIIlllII+0xa4>
2452: f2 01 movw r30, r4
2454: 24 e0 ldi r18, 0x04 ; 4
2456: 30 e0 ldi r19, 0x00 ; 0
2458: 42 0e add r4, r18
245a: 53 1e adc r5, r19
245c: 80 80 ld r8, Z
245e: 91 80 ldd r9, Z+1 ; 0x01
2460: a2 80 ldd r10, Z+2 ; 0x02
2462: b3 80 ldd r11, Z+3 ; 0x03
2464: 0a c0 rjmp .+20 ; 0x247a <IIllllIllIlllIIlllII+0xb8>
2466: f2 01 movw r30, r4
2468: 42 e0 ldi r20, 0x02 ; 2
246a: 50 e0 ldi r21, 0x00 ; 0
246c: 44 0e add r4, r20
246e: 55 1e adc r5, r21
2470: 80 81 ld r24, Z
2472: 91 81 ldd r25, Z+1 ; 0x01
2474: 4c 01 movw r8, r24
2476: aa 24 eor r10, r10
2478: bb 24 eor r11, r11
247a: 10 32 cpi r17, 0x20 ; 32
247c: 21 f4 brne .+8 ; 0x2486 <IIllllIllIlllIIlllII+0xc4>
247e: 89 a5 ldd r24, Y+41 ; 0x29
2480: 88 23 and r24, r24
2482: d1 f6 brne .-76 ; 0x2438 <IIllllIllIlllIIlllII+0x76>
2484: 1d c0 rjmp .+58 ; 0x24c0 <IIllllIllIlllIIlllII+0xfe>
2486: 13 32 cpi r17, 0x23 ; 35
2488: 19 f4 brne .+6 ; 0x2490 <IIllllIllIlllIIlllII+0xce>
248a: 58 e0 ldi r21, 0x08 ; 8
248c: f5 2a or r15, r21
248e: d4 cf rjmp .-88 ; 0x2438 <IIllllIllIlllIIlllII+0x76>
2490: 1a 32 cpi r17, 0x2A ; 42
2492: 11 f0 breq .+4 ; 0x2498 <IIllllIllIlllIIlllII+0xd6>
2494: 1d 32 cpi r17, 0x2D ; 45
2496: 91 f4 brne .+36 ; 0x24bc <IIllllIllIlllIIlllII+0xfa>
2498: 1a 32 cpi r17, 0x2A ; 42
249a: 59 f4 brne .+22 ; 0x24b2 <IIllllIllIlllIIlllII+0xf0>
249c: f2 01 movw r30, r4
249e: 82 e0 ldi r24, 0x02 ; 2
24a0: 90 e0 ldi r25, 0x00 ; 0
24a2: 48 0e add r4, r24
24a4: 59 1e adc r5, r25
24a6: e0 81 ld r30, Z
24a8: ec a7 std Y+44, r30 ; 0x2c
24aa: ee 23 and r30, r30
24ac: 2c f6 brge .-118 ; 0x2438 <IIllllIllIlllIIlllII+0x76>
24ae: e1 95 neg r30
24b0: ec a7 std Y+44, r30 ; 0x2c
24b2: 90 e1 ldi r25, 0x10 ; 16
24b4: f9 2a or r15, r25
24b6: af ed ldi r26, 0xDF ; 223
24b8: fa 22 and r15, r26
24ba: be cf rjmp .-132 ; 0x2438 <IIllllIllIlllIIlllII+0x76>
24bc: 1b 32 cpi r17, 0x2B ; 43
24be: 11 f4 brne .+4 ; 0x24c4 <IIllllIllIlllIIlllII+0x102>
24c0: 19 a7 std Y+41, r17 ; 0x29
24c2: ba cf rjmp .-140 ; 0x2438 <IIllllIllIlllIIlllII+0x76>
24c4: 1e 32 cpi r17, 0x2E ; 46
24c6: c1 f5 brne .+112 ; 0x2538 <IIllllIllIlllIIlllII+0x176>
24c8: f6 01 movw r30, r12
24ca: 08 94 sec
24cc: c1 1c adc r12, r1
24ce: d1 1c adc r13, r1
24d0: 14 91 lpm r17, Z
24d2: 1a 32 cpi r17, 0x2A ; 42
24d4: 79 f4 brne .+30 ; 0x24f4 <IIllllIllIlllIIlllII+0x132>
24d6: f2 01 movw r30, r4
24d8: 22 e0 ldi r18, 0x02 ; 2
24da: 30 e0 ldi r19, 0x00 ; 0
24dc: 42 0e add r4, r18
24de: 53 1e adc r5, r19
24e0: 40 81 ld r20, Z
24e2: 51 81 ldd r21, Z+1 ; 0x01
24e4: 3f ef ldi r19, 0xFF ; 255
24e6: 4f 3f cpi r20, 0xFF ; 255
24e8: 53 07 cpc r21, r19
24ea: 14 f4 brge .+4 ; 0x24f0 <IIllllIllIlllIIlllII+0x12e>
24ec: 4f ef ldi r20, 0xFF ; 255
24ee: 5f ef ldi r21, 0xFF ; 255
24f0: e4 2e mov r14, r20
24f2: a2 cf rjmp .-188 ; 0x2438 <IIllllIllIlllIIlllII+0x76>
24f4: 40 e0 ldi r20, 0x00 ; 0
24f6: 50 e0 ldi r21, 0x00 ; 0
24f8: 81 2f mov r24, r17
24fa: 80 53 subi r24, 0x30 ; 48
24fc: 8a 30 cpi r24, 0x0A ; 10
24fe: a0 f4 brcc .+40 ; 0x2528 <IIllllIllIlllIIlllII+0x166>
2500: ca 01 movw r24, r20
2502: 73 e0 ldi r23, 0x03 ; 3
2504: 88 0f add r24, r24
2506: 99 1f adc r25, r25
2508: 7a 95 dec r23
250a: e1 f7 brne .-8 ; 0x2504 <IIllllIllIlllIIlllII+0x142>
250c: 84 0f add r24, r20
250e: 95 1f adc r25, r21
2510: 48 0f add r20, r24
2512: 59 1f adc r21, r25
2514: 41 0f add r20, r17
2516: 51 1d adc r21, r1
2518: 40 53 subi r20, 0x30 ; 48
251a: 50 40 sbci r21, 0x00 ; 0
251c: f6 01 movw r30, r12
251e: 08 94 sec
2520: c1 1c adc r12, r1
2522: d1 1c adc r13, r1
2524: 14 91 lpm r17, Z
2526: e8 cf rjmp .-48 ; 0x24f8 <IIllllIllIlllIIlllII+0x136>
2528: 8f ef ldi r24, 0xFF ; 255
252a: 4f 3f cpi r20, 0xFF ; 255
252c: 58 07 cpc r21, r24
252e: 14 f4 brge .+4 ; 0x2534 <IIllllIllIlllIIlllII+0x172>
2530: 4f ef ldi r20, 0xFF ; 255
2532: 5f ef ldi r21, 0xFF ; 255
2534: e4 2e mov r14, r20
2536: 85 cf rjmp .-246 ; 0x2442 <IIllllIllIlllIIlllII+0x80>
2538: 10 33 cpi r17, 0x30 ; 48
253a: 29 f4 brne .+10 ; 0x2546 <IIllllIllIlllIIlllII+0x184>
253c: f4 fc sbrc r15, 4
253e: 7c cf rjmp .-264 ; 0x2438 <IIllllIllIlllIIlllII+0x76>
2540: 90 e2 ldi r25, 0x20 ; 32
2542: f9 2a or r15, r25
2544: 79 cf rjmp .-270 ; 0x2438 <IIllllIllIlllIIlllII+0x76>
2546: 81 2f mov r24, r17
2548: 81 53 subi r24, 0x31 ; 49
254a: 89 30 cpi r24, 0x09 ; 9
254c: d8 f4 brcc .+54 ; 0x2584 <IIllllIllIlllIIlllII+0x1c2>
254e: 40 e0 ldi r20, 0x00 ; 0
2550: 50 e0 ldi r21, 0x00 ; 0
2552: ca 01 movw r24, r20
2554: 63 e0 ldi r22, 0x03 ; 3
2556: 88 0f add r24, r24
2558: 99 1f adc r25, r25
255a: 6a 95 dec r22
255c: e1 f7 brne .-8 ; 0x2556 <IIllllIllIlllIIlllII+0x194>
255e: 84 0f add r24, r20
2560: 95 1f adc r25, r21
2562: 48 0f add r20, r24
2564: 59 1f adc r21, r25
2566: 41 0f add r20, r17
2568: 51 1d adc r21, r1
256a: 40 53 subi r20, 0x30 ; 48
256c: 50 40 sbci r21, 0x00 ; 0
256e: f6 01 movw r30, r12
2570: 08 94 sec
2572: c1 1c adc r12, r1
2574: d1 1c adc r13, r1
2576: 14 91 lpm r17, Z
2578: 81 2f mov r24, r17
257a: 80 53 subi r24, 0x30 ; 48
257c: 8a 30 cpi r24, 0x0A ; 10
257e: 48 f3 brcs .-46 ; 0x2552 <IIllllIllIlllIIlllII+0x190>
2580: 4c a7 std Y+44, r20 ; 0x2c
2582: 5f cf rjmp .-322 ; 0x2442 <IIllllIllIlllIIlllII+0x80>
2584: 18 36 cpi r17, 0x68 ; 104
2586: 19 f4 brne .+6 ; 0x258e <IIllllIllIlllIIlllII+0x1cc>
2588: a4 e0 ldi r26, 0x04 ; 4
258a: fa 2a or r15, r26
258c: 55 cf rjmp .-342 ; 0x2438 <IIllllIllIlllIIlllII+0x76>
258e: 1c 36 cpi r17, 0x6C ; 108
2590: 19 f4 brne .+6 ; 0x2598 <IIllllIllIlllIIlllII+0x1d6>
2592: b1 e0 ldi r27, 0x01 ; 1
2594: fb 2a or r15, r27
2596: 50 cf rjmp .-352 ; 0x2438 <IIllllIllIlllIIlllII+0x76>
2598: 13 36 cpi r17, 0x63 ; 99
259a: 61 f4 brne .+24 ; 0x25b4 <IIllllIllIlllIIlllII+0x1f2>
259c: 3e 01 movw r6, r28
259e: 08 94 sec
25a0: 61 1c adc r6, r1
25a2: 71 1c adc r7, r1
25a4: f2 01 movw r30, r4
25a6: 22 e0 ldi r18, 0x02 ; 2
25a8: 30 e0 ldi r19, 0x00 ; 0
25aa: 42 0e add r4, r18
25ac: 53 1e adc r5, r19
25ae: 80 81 ld r24, Z
25b0: 89 83 std Y+1, r24 ; 0x01
25b2: 3c c1 rjmp .+632 ; 0x282c <IIllllIllIlllIIlllII+0x46a>
25b4: 14 34 cpi r17, 0x44 ; 68
25b6: 21 f0 breq .+8 ; 0x25c0 <IIllllIllIlllIIlllII+0x1fe>
25b8: 14 36 cpi r17, 0x64 ; 100
25ba: 11 f0 breq .+4 ; 0x25c0 <IIllllIllIlllIIlllII+0x1fe>
25bc: 19 36 cpi r17, 0x69 ; 105
25be: 51 f5 brne .+84 ; 0x2614 <IIllllIllIlllIIlllII+0x252>
25c0: 14 34 cpi r17, 0x44 ; 68
25c2: 11 f4 brne .+4 ; 0x25c8 <IIllllIllIlllIIlllII+0x206>
25c4: 31 e0 ldi r19, 0x01 ; 1
25c6: f3 2a or r15, r19
25c8: f0 fe sbrs r15, 0
25ca: 0a c0 rjmp .+20 ; 0x25e0 <IIllllIllIlllIIlllII+0x21e>
25cc: f2 01 movw r30, r4
25ce: 44 e0 ldi r20, 0x04 ; 4
25d0: 50 e0 ldi r21, 0x00 ; 0
25d2: 44 0e add r4, r20
25d4: 55 1e adc r5, r21
25d6: 80 80 ld r8, Z
25d8: 91 80 ldd r9, Z+1 ; 0x01
25da: a2 80 ldd r10, Z+2 ; 0x02
25dc: b3 80 ldd r11, Z+3 ; 0x03
25de: 0c c0 rjmp .+24 ; 0x25f8 <IIllllIllIlllIIlllII+0x236>
25e0: f2 01 movw r30, r4
25e2: 82 e0 ldi r24, 0x02 ; 2
25e4: 90 e0 ldi r25, 0x00 ; 0
25e6: 48 0e add r4, r24
25e8: 59 1e adc r5, r25
25ea: 80 81 ld r24, Z
25ec: 91 81 ldd r25, Z+1 ; 0x01
25ee: 4c 01 movw r8, r24
25f0: aa 24 eor r10, r10
25f2: 97 fc sbrc r9, 7
25f4: a0 94 com r10
25f6: ba 2c mov r11, r10
25f8: b7 fe sbrs r11, 7
25fa: 0a c0 rjmp .+20 ; 0x2610 <IIllllIllIlllIIlllII+0x24e>
25fc: b0 94 com r11
25fe: a0 94 com r10
2600: 90 94 com r9
2602: 80 94 com r8
2604: 81 1c adc r8, r1
2606: 91 1c adc r9, r1
2608: a1 1c adc r10, r1
260a: b1 1c adc r11, r1
260c: 8d e2 ldi r24, 0x2D ; 45
260e: 89 a7 std Y+41, r24 ; 0x29
2610: 0a e0 ldi r16, 0x0A ; 10
2612: 6f c0 rjmp .+222 ; 0x26f2 <IIllllIllIlllIIlllII+0x330>
2614: 1f 34 cpi r17, 0x4F ; 79
2616: 11 f0 breq .+4 ; 0x261c <IIllllIllIlllIIlllII+0x25a>
2618: 1f 36 cpi r17, 0x6F ; 111
261a: 31 f4 brne .+12 ; 0x2628 <IIllllIllIlllIIlllII+0x266>
261c: 1f 34 cpi r17, 0x4F ; 79
261e: 11 f4 brne .+4 ; 0x2624 <IIllllIllIlllIIlllII+0x262>
2620: 91 e0 ldi r25, 0x01 ; 1
2622: f9 2a or r15, r25
2624: 08 e0 ldi r16, 0x08 ; 8
2626: 64 c0 rjmp .+200 ; 0x26f0 <IIllllIllIlllIIlllII+0x32e>
2628: 10 37 cpi r17, 0x70 ; 112
262a: 79 f4 brne .+30 ; 0x264a <IIllllIllIlllIIlllII+0x288>
262c: f2 01 movw r30, r4
262e: a2 e0 ldi r26, 0x02 ; 2
2630: b0 e0 ldi r27, 0x00 ; 0
2632: 4a 0e add r4, r26
2634: 5b 1e adc r5, r27
2636: 80 81 ld r24, Z
2638: 91 81 ldd r25, Z+1 ; 0x01
263a: 4c 01 movw r8, r24
263c: aa 24 eor r10, r10
263e: bb 24 eor r11, r11
2640: 00 e1 ldi r16, 0x10 ; 16
2642: b0 e4 ldi r27, 0x40 ; 64
2644: fb 2a or r15, r27
2646: 18 e7 ldi r17, 0x78 ; 120
2648: 53 c0 rjmp .+166 ; 0x26f0 <IIllllIllIlllIIlllII+0x32e>
264a: 13 37 cpi r17, 0x73 ; 115
264c: c1 f5 brne .+112 ; 0x26be <IIllllIllIlllIIlllII+0x2fc>
264e: f2 01 movw r30, r4
2650: 22 e0 ldi r18, 0x02 ; 2
2652: 30 e0 ldi r19, 0x00 ; 0
2654: 42 0e add r4, r18
2656: 53 1e adc r5, r19
2658: 60 80 ld r6, Z
265a: 71 80 ldd r7, Z+1 ; 0x01
265c: 61 14 cp r6, r1
265e: 71 04 cpc r7, r1
2660: 89 f4 brne .+34 ; 0x2684 <IIllllIllIlllIIlllII+0x2c2>
2662: 3e 01 movw r6, r28
2664: 08 94 sec
2666: 61 1c adc r6, r1
2668: 71 1c adc r7, r1
266a: 88 e2 ldi r24, 0x28 ; 40
266c: 89 83 std Y+1, r24 ; 0x01
266e: 8e e6 ldi r24, 0x6E ; 110
2670: f3 01 movw r30, r6
2672: 81 83 std Z+1, r24 ; 0x01
2674: 85 e7 ldi r24, 0x75 ; 117
2676: 8b 83 std Y+3, r24 ; 0x03
2678: 8c e6 ldi r24, 0x6C ; 108
267a: 8c 83 std Y+4, r24 ; 0x04
267c: 8d 83 std Y+5, r24 ; 0x05
267e: 89 e2 ldi r24, 0x29 ; 41
2680: 8e 83 std Y+6, r24 ; 0x06
2682: 1f 82 std Y+7, r1 ; 0x07
2684: e7 fc sbrc r14, 7
2686: 13 c0 rjmp .+38 ; 0x26ae <IIllllIllIlllIIlllII+0x2ec>
2688: 8e 2d mov r24, r14
268a: 99 27 eor r25, r25
268c: 87 fd sbrc r24, 7
268e: 90 95 com r25
2690: ac 01 movw r20, r24
2692: 60 e0 ldi r22, 0x00 ; 0
2694: 70 e0 ldi r23, 0x00 ; 0
2696: c3 01 movw r24, r6
2698: 0e 94 95 9b call 0x1372a ; 0x1372a <memchr>
269c: 00 97 sbiw r24, 0x00 ; 0
269e: 29 f0 breq .+10 ; 0x26aa <IIllllIllIlllIIlllII+0x2e8>
26a0: 38 2e mov r3, r24
26a2: 36 18 sub r3, r6
26a4: e3 14 cp r14, r3
26a6: 0c f0 brlt .+2 ; 0x26aa <IIllllIllIlllIIlllII+0x2e8>
26a8: c3 c0 rjmp .+390 ; 0x2830 <IIllllIllIlllIIlllII+0x46e>
26aa: 3e 2c mov r3, r14
26ac: c1 c0 rjmp .+386 ; 0x2830 <IIllllIllIlllIIlllII+0x46e>
26ae: f3 01 movw r30, r6
26b0: 01 90 ld r0, Z+
26b2: 00 20 and r0, r0
26b4: e9 f7 brne .-6 ; 0x26b0 <IIllllIllIlllIIlllII+0x2ee>
26b6: 31 97 sbiw r30, 0x01 ; 1
26b8: 3e 2e mov r3, r30
26ba: 36 18 sub r3, r6
26bc: b9 c0 rjmp .+370 ; 0x2830 <IIllllIllIlllIIlllII+0x46e>
26be: 15 35 cpi r17, 0x55 ; 85
26c0: 11 f0 breq .+4 ; 0x26c6 <IIllllIllIlllIIlllII+0x304>
26c2: 15 37 cpi r17, 0x75 ; 117
26c4: 31 f4 brne .+12 ; 0x26d2 <IIllllIllIlllIIlllII+0x310>
26c6: 15 35 cpi r17, 0x55 ; 85
26c8: 11 f4 brne .+4 ; 0x26ce <IIllllIllIlllIIlllII+0x30c>
26ca: f1 e0 ldi r31, 0x01 ; 1
26cc: ff 2a or r15, r31
26ce: 0a e0 ldi r16, 0x0A ; 10
26d0: 0f c0 rjmp .+30 ; 0x26f0 <IIllllIllIlllIIlllII+0x32e>
26d2: 18 35 cpi r17, 0x58 ; 88
26d4: 19 f0 breq .+6 ; 0x26dc <IIllllIllIlllIIlllII+0x31a>
26d6: 18 37 cpi r17, 0x78 ; 120
26d8: 09 f0 breq .+2 ; 0x26dc <IIllllIllIlllIIlllII+0x31a>
26da: a0 c0 rjmp .+320 ; 0x281c <IIllllIllIlllIIlllII+0x45a>
26dc: 00 e1 ldi r16, 0x10 ; 16
26de: f3 fe sbrs r15, 3
26e0: 07 c0 rjmp .+14 ; 0x26f0 <IIllllIllIlllIIlllII+0x32e>
26e2: 81 14 cp r8, r1
26e4: 91 04 cpc r9, r1
26e6: a1 04 cpc r10, r1
26e8: b1 04 cpc r11, r1
26ea: 11 f0 breq .+4 ; 0x26f0 <IIllllIllIlllIIlllII+0x32e>
26ec: 20 e4 ldi r18, 0x40 ; 64
26ee: f2 2a or r15, r18
26f0: 19 a6 std Y+41, r1 ; 0x29
26f2: ed a6 std Y+45, r14 ; 0x2d
26f4: e7 fc sbrc r14, 7
26f6: 02 c0 rjmp .+4 ; 0x26fc <IIllllIllIlllIIlllII+0x33a>
26f8: 3f ed ldi r19, 0xDF ; 223
26fa: f3 22 and r15, r19
26fc: 49 e2 ldi r20, 0x29 ; 41
26fe: 64 2e mov r6, r20
2700: 71 2c mov r7, r1
2702: 6c 0e add r6, r28
2704: 7d 1e adc r7, r29
2706: 81 14 cp r8, r1
2708: 91 04 cpc r9, r1
270a: a1 04 cpc r10, r1
270c: b1 04 cpc r11, r1
270e: 21 f4 brne .+8 ; 0x2718 <IIllllIllIlllIIlllII+0x356>
2710: 4d a5 ldd r20, Y+45 ; 0x2d
2712: 44 23 and r20, r20
2714: 09 f4 brne .+2 ; 0x2718 <IIllllIllIlllIIlllII+0x356>
2716: 7b c0 rjmp .+246 ; 0x280e <IIllllIllIlllIIlllII+0x44c>
2718: 80 2f mov r24, r16
271a: 99 27 eor r25, r25
271c: aa 27 eor r26, r26
271e: bb 27 eor r27, r27
2720: 8e a7 std Y+46, r24 ; 0x2e
2722: 9f a7 std Y+47, r25 ; 0x2f
2724: a8 ab std Y+48, r26 ; 0x30
2726: b9 ab std Y+49, r27 ; 0x31
2728: 20 2e mov r2, r16
272a: 33 24 eor r3, r3
272c: 90 e0 ldi r25, 0x00 ; 0
272e: 89 16 cp r8, r25
2730: 90 e0 ldi r25, 0x00 ; 0
2732: 99 06 cpc r9, r25
2734: 91 e0 ldi r25, 0x01 ; 1
2736: a9 06 cpc r10, r25
2738: 90 e0 ldi r25, 0x00 ; 0
273a: b9 06 cpc r11, r25
273c: 48 f0 brcs .+18 ; 0x2750 <IIllllIllIlllIIlllII+0x38e>
273e: c5 01 movw r24, r10
2740: b4 01 movw r22, r8
2742: 2e a5 ldd r18, Y+46 ; 0x2e
2744: 3f a5 ldd r19, Y+47 ; 0x2f
2746: 48 a9 ldd r20, Y+48 ; 0x30
2748: 59 a9 ldd r21, Y+49 ; 0x31
274a: 0e 94 e6 9a call 0x135cc ; 0x135cc <__udivmodsi4>
274e: 17 c0 rjmp .+46 ; 0x277e <IIllllIllIlllIIlllII+0x3bc>
2750: af ef ldi r26, 0xFF ; 255
2752: 8a 16 cp r8, r26
2754: 91 04 cpc r9, r1
2756: a1 04 cpc r10, r1
2758: b1 04 cpc r11, r1
275a: 49 f0 breq .+18 ; 0x276e <IIllllIllIlllIIlllII+0x3ac>
275c: 40 f0 brcs .+16 ; 0x276e <IIllllIllIlllIIlllII+0x3ac>
275e: c4 01 movw r24, r8
2760: b1 01 movw r22, r2
2762: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
2766: 9b 01 movw r18, r22
2768: 44 27 eor r20, r20
276a: 55 27 eor r21, r21
276c: 08 c0 rjmp .+16 ; 0x277e <IIllllIllIlllIIlllII+0x3bc>
276e: 88 2d mov r24, r8
2770: 60 2f mov r22, r16
2772: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
2776: 28 2f mov r18, r24
2778: 33 27 eor r19, r19
277a: 44 27 eor r20, r20
277c: 55 27 eor r21, r21
277e: 2a ab std Y+50, r18 ; 0x32
2780: 3b ab std Y+51, r19 ; 0x33
2782: 4c ab std Y+52, r20 ; 0x34
2784: 5d ab std Y+53, r21 ; 0x35
2786: 0a 30 cpi r16, 0x0A ; 10
2788: 59 f4 brne .+22 ; 0x27a0 <IIllllIllIlllIIlllII+0x3de>
278a: 8a a9 ldd r24, Y+50 ; 0x32
278c: 88 0f add r24, r24
278e: 88 0f add r24, r24
2790: 88 0f add r24, r24
2792: 9a a9 ldd r25, Y+50 ; 0x32
2794: 99 0f add r25, r25
2796: 89 0f add r24, r25
2798: 38 2d mov r19, r8
279a: 38 1b sub r19, r24
279c: 83 2f mov r24, r19
279e: 10 c0 rjmp .+32 ; 0x27c0 <IIllllIllIlllIIlllII+0x3fe>
27a0: 00 31 cpi r16, 0x10 ; 16
27a2: 39 f4 brne .+14 ; 0x27b2 <IIllllIllIlllIIlllII+0x3f0>
27a4: 8a a9 ldd r24, Y+50 ; 0x32
27a6: 82 95 swap r24
27a8: 80 7f andi r24, 0xF0 ; 240
27aa: 48 2d mov r20, r8
27ac: 48 1b sub r20, r24
27ae: 84 2f mov r24, r20
27b0: 07 c0 rjmp .+14 ; 0x27c0 <IIllllIllIlllIIlllII+0x3fe>
27b2: 8a a9 ldd r24, Y+50 ; 0x32
27b4: 88 0f add r24, r24
27b6: 88 0f add r24, r24
27b8: 88 0f add r24, r24
27ba: 58 2d mov r21, r8
27bc: 58 1b sub r21, r24
27be: 85 2f mov r24, r21
27c0: 90 e0 ldi r25, 0x00 ; 0
27c2: 2e a5 ldd r18, Y+46 ; 0x2e
27c4: 3f a5 ldd r19, Y+47 ; 0x2f
27c6: 48 a9 ldd r20, Y+48 ; 0x30
27c8: 59 a9 ldd r21, Y+49 ; 0x31
27ca: 82 16 cp r8, r18
27cc: 93 06 cpc r9, r19
27ce: a4 06 cpc r10, r20
27d0: b5 06 cpc r11, r21
27d2: 08 f0 brcs .+2 ; 0x27d6 <IIllllIllIlllIIlllII+0x414>
27d4: 91 e0 ldi r25, 0x01 ; 1
27d6: 8a a8 ldd r8, Y+50 ; 0x32
27d8: 9b a8 ldd r9, Y+51 ; 0x33
27da: ac a8 ldd r10, Y+52 ; 0x34
27dc: bd a8 ldd r11, Y+53 ; 0x35
27de: 8a 30 cpi r24, 0x0A ; 10
27e0: 10 f4 brcc .+4 ; 0x27e6 <IIllllIllIlllIIlllII+0x424>
27e2: 80 5d subi r24, 0xD0 ; 208
27e4: 04 c0 rjmp .+8 ; 0x27ee <IIllllIllIlllIIlllII+0x42c>
27e6: 89 5a subi r24, 0xA9 ; 169
27e8: 18 35 cpi r17, 0x58 ; 88
27ea: 09 f4 brne .+2 ; 0x27ee <IIllllIllIlllIIlllII+0x42c>
27ec: 8f 7d andi r24, 0xDF ; 223
27ee: d3 01 movw r26, r6
27f0: 8e 93 st -X, r24
27f2: 3d 01 movw r6, r26
27f4: 99 23 and r25, r25
27f6: 09 f0 breq .+2 ; 0x27fa <IIllllIllIlllIIlllII+0x438>
27f8: 99 cf rjmp .-206 ; 0x272c <IIllllIllIlllIIlllII+0x36a>
27fa: 08 30 cpi r16, 0x08 ; 8
27fc: 41 f4 brne .+16 ; 0x280e <IIllllIllIlllIIlllII+0x44c>
27fe: f3 fe sbrs r15, 3
2800: 06 c0 rjmp .+12 ; 0x280e <IIllllIllIlllIIlllII+0x44c>
2802: 80 33 cpi r24, 0x30 ; 48
2804: 21 f0 breq .+8 ; 0x280e <IIllllIllIlllIIlllII+0x44c>
2806: 80 e3 ldi r24, 0x30 ; 48
2808: fd 01 movw r30, r26
280a: 82 93 st -Z, r24
280c: 3f 01 movw r6, r30
280e: ce 01 movw r24, r28
2810: 01 96 adiw r24, 0x01 ; 1
2812: 38 2e mov r3, r24
2814: 36 18 sub r3, r6
2816: f8 e2 ldi r31, 0x28 ; 40
2818: 3f 0e add r3, r31
281a: 0b c0 rjmp .+22 ; 0x2832 <IIllllIllIlllIIlllII+0x470>
281c: 11 23 and r17, r17
281e: 09 f4 brne .+2 ; 0x2822 <IIllllIllIlllIIlllII+0x460>
2820: 66 c0 rjmp .+204 ; 0x28ee <IIllllIllIlllIIlllII+0x52c>
2822: 3e 01 movw r6, r28
2824: 08 94 sec
2826: 61 1c adc r6, r1
2828: 71 1c adc r7, r1
282a: 19 83 std Y+1, r17 ; 0x01
282c: 31 e0 ldi r19, 0x01 ; 1
282e: 33 2e mov r3, r19
2830: 19 a6 std Y+41, r1 ; 0x29
2832: 03 2d mov r16, r3
2834: 2d a4 ldd r2, Y+45 ; 0x2d
2836: 23 18 sub r2, r3
2838: 27 fc sbrc r2, 7
283a: 22 24 eor r2, r2
283c: 89 a5 ldd r24, Y+41 ; 0x29
283e: 88 23 and r24, r24
2840: 11 f0 breq .+4 ; 0x2846 <IIllllIllIlllIIlllII+0x484>
2842: 0f 5f subi r16, 0xFF ; 255
2844: 02 c0 rjmp .+4 ; 0x284a <IIllllIllIlllIIlllII+0x488>
2846: f6 fc sbrc r15, 6
2848: 0e 5f subi r16, 0xFE ; 254
284a: 02 0d add r16, r2
284c: ef 2c mov r14, r15
284e: ff 24 eor r15, r15
2850: c7 01 movw r24, r14
2852: 80 73 andi r24, 0x30 ; 48
2854: 90 70 andi r25, 0x00 ; 0
2856: 89 2b or r24, r25
2858: 41 f4 brne .+16 ; 0x286a <IIllllIllIlllIIlllII+0x4a8>
285a: 8c a5 ldd r24, Y+44 ; 0x2c
285c: 80 1b sub r24, r16
285e: 68 2f mov r22, r24
2860: 2c 96 adiw r28, 0x0c ; 12
2862: 8e ad ldd r24, Y+62 ; 0x3e
2864: 9f ad ldd r25, Y+63 ; 0x3f
2866: 2c 97 sbiw r28, 0x0c ; 12
2868: 8a dd rcall .-1260 ; 0x237e <fgmjgnrtuth587th9rTrw>
286a: 89 a5 ldd r24, Y+41 ; 0x29
286c: 88 23 and r24, r24
286e: 31 f0 breq .+12 ; 0x287c <IIllllIllIlllIIlllII+0x4ba>
2870: 41 e0 ldi r20, 0x01 ; 1
2872: 50 e0 ldi r21, 0x00 ; 0
2874: be 01 movw r22, r28
2876: 67 5d subi r22, 0xD7 ; 215
2878: 7f 4f sbci r23, 0xFF ; 255
287a: 0a c0 rjmp .+20 ; 0x2890 <IIllllIllIlllIIlllII+0x4ce>
287c: e6 fe sbrs r14, 6
287e: 0d c0 rjmp .+26 ; 0x289a <IIllllIllIlllIIlllII+0x4d8>
2880: 80 e3 ldi r24, 0x30 ; 48
2882: 8a a7 std Y+42, r24 ; 0x2a
2884: 1b a7 std Y+43, r17 ; 0x2b
2886: 42 e0 ldi r20, 0x02 ; 2
2888: 50 e0 ldi r21, 0x00 ; 0
288a: be 01 movw r22, r28
288c: 66 5d subi r22, 0xD6 ; 214
288e: 7f 4f sbci r23, 0xFF ; 255
2890: 2c 96 adiw r28, 0x0c ; 12
2892: 8e ad ldd r24, Y+62 ; 0x3e
2894: 9f ad ldd r25, Y+63 ; 0x3f
2896: 2c 97 sbiw r28, 0x0c ; 12
2898: 43 dd rcall .-1402 ; 0x2320 <njkvnfuhgbuzrgezgf483>
289a: c7 01 movw r24, r14
289c: 80 73 andi r24, 0x30 ; 48
289e: 90 70 andi r25, 0x00 ; 0
28a0: 80 97 sbiw r24, 0x20 ; 32
28a2: 41 f4 brne .+16 ; 0x28b4 <IIllllIllIlllIIlllII+0x4f2>
28a4: 8c a5 ldd r24, Y+44 ; 0x2c
28a6: 80 1b sub r24, r16
28a8: 68 2f mov r22, r24
28aa: 2c 96 adiw r28, 0x0c ; 12
28ac: 8e ad ldd r24, Y+62 ; 0x3e
28ae: 9f ad ldd r25, Y+63 ; 0x3f
28b0: 2c 97 sbiw r28, 0x0c ; 12
28b2: 76 dd rcall .-1300 ; 0x23a0 <wqqeRT45jth8g758735h4>
28b4: 62 2d mov r22, r2
28b6: 2c 96 adiw r28, 0x0c ; 12
28b8: 8e ad ldd r24, Y+62 ; 0x3e
28ba: 9f ad ldd r25, Y+63 ; 0x3f
28bc: 2c 97 sbiw r28, 0x0c ; 12
28be: 70 dd rcall .-1312 ; 0x23a0 <wqqeRT45jth8g758735h4>
28c0: 83 2d mov r24, r3
28c2: 99 27 eor r25, r25
28c4: 87 fd sbrc r24, 7
28c6: 90 95 com r25
28c8: ac 01 movw r20, r24
28ca: b3 01 movw r22, r6
28cc: 2c 96 adiw r28, 0x0c ; 12
28ce: 8e ad ldd r24, Y+62 ; 0x3e
28d0: 9f ad ldd r25, Y+63 ; 0x3f
28d2: 2c 97 sbiw r28, 0x0c ; 12
28d4: 25 dd rcall .-1462 ; 0x2320 <njkvnfuhgbuzrgezgf483>
28d6: e4 fe sbrs r14, 4
28d8: 8f cd rjmp .-1250 ; 0x23f8 <IIllllIllIlllIIlllII+0x36>
28da: 2c a5 ldd r18, Y+44 ; 0x2c
28dc: 20 1b sub r18, r16
28de: 2c a7 std Y+44, r18 ; 0x2c
28e0: 62 2f mov r22, r18
28e2: 2c 96 adiw r28, 0x0c ; 12
28e4: 8e ad ldd r24, Y+62 ; 0x3e
28e6: 9f ad ldd r25, Y+63 ; 0x3f
28e8: 2c 97 sbiw r28, 0x0c ; 12
28ea: 49 dd rcall .-1390 ; 0x237e <fgmjgnrtuth587th9rTrw>
28ec: 85 cd rjmp .-1270 ; 0x23f8 <IIllllIllIlllIIlllII+0x36>
28ee: e2 e1 ldi r30, 0x12 ; 18
28f0: cb 5c subi r28, 0xCB ; 203
28f2: 0c 94 71 9b jmp 0x136e2 ; 0x136e2 <__epilogue_restores__>
 
000028f6 <LIBFC_HoTT_Putchar>:
28f6: 98 2f mov r25, r24
28f8: 80 91 8e 0c lds r24, 0x0C8E
28fc: 88 3a cpi r24, 0xA8 ; 168
28fe: 50 f4 brcc .+20 ; 0x2914 <LIBFC_HoTT_Putchar+0x1e>
2900: 80 91 8e 0c lds r24, 0x0C8E
2904: e8 2f mov r30, r24
2906: ff 27 eor r31, r31
2908: eb 51 subi r30, 0x1B ; 27
290a: f9 4f sbci r31, 0xF9 ; 249
290c: 93 83 std Z+3, r25 ; 0x03
290e: 8f 5f subi r24, 0xFF ; 255
2910: 80 93 8e 0c sts 0x0C8E, r24
2914: 08 95 ret
 
00002916 <LIBFC_HoTT_Putchar_INV>:
2916: 98 2f mov r25, r24
2918: 80 91 8e 0c lds r24, 0x0C8E
291c: 88 3a cpi r24, 0xA8 ; 168
291e: 58 f4 brcc .+22 ; 0x2936 <LIBFC_HoTT_Putchar_INV+0x20>
2920: 80 91 8e 0c lds r24, 0x0C8E
2924: e8 2f mov r30, r24
2926: ff 27 eor r31, r31
2928: eb 51 subi r30, 0x1B ; 27
292a: f9 4f sbci r31, 0xF9 ; 249
292c: 90 68 ori r25, 0x80 ; 128
292e: 93 83 std Z+3, r25 ; 0x03
2930: 8f 5f subi r24, 0xFF ; 255
2932: 80 93 8e 0c sts 0x0C8E, r24
2936: 08 95 ret
 
00002938 <LIBFC_HoTT_Putchar_BLINK>:
2938: 98 2f mov r25, r24
293a: 80 91 ed 02 lds r24, 0x02ED
293e: 88 23 and r24, r24
2940: 11 f0 breq .+4 ; 0x2946 <LIBFC_HoTT_Putchar_BLINK+0xe>
2942: 89 2f mov r24, r25
2944: e8 cf rjmp .-48 ; 0x2916 <LIBFC_HoTT_Putchar_INV>
2946: 89 2f mov r24, r25
2948: d6 cf rjmp .-84 ; 0x28f6 <LIBFC_HoTT_Putchar>
 
0000294a <LIBFC_HoTT_SetPos>:
294a: 88 3a cpi r24, 0xA8 ; 168
294c: 10 f4 brcc .+4 ; 0x2952 <LIBFC_HoTT_SetPos+0x8>
294e: 80 93 8e 0c sts 0x0C8E, r24
2952: 08 95 ret
 
00002954 <LIBFC_HoTT_Clear>:
2954: 80 e0 ldi r24, 0x00 ; 0
2956: 90 e2 ldi r25, 0x20 ; 32
2958: e8 ee ldi r30, 0xE8 ; 232
295a: f6 e0 ldi r31, 0x06 ; 6
295c: 91 93 st Z+, r25
295e: 8f 5f subi r24, 0xFF ; 255
2960: 88 3a cpi r24, 0xA8 ; 168
2962: e0 f3 brcs .-8 ; 0x295c <LIBFC_HoTT_Clear+0x8>
2964: 08 95 ret
 
00002966 <HoTT_Init>:
2966: 4f b7 in r20, 0x3f ; 63
2968: 21 e8 ldi r18, 0x81 ; 129
296a: 30 e0 ldi r19, 0x00 ; 0
296c: f8 94 cli
296e: 80 91 c9 00 lds r24, 0x00C9
2972: 8f 77 andi r24, 0x7F ; 127
2974: 80 93 c9 00 sts 0x00C9, r24
2978: 80 91 c9 00 lds r24, 0x00C9
297c: 8f 7b andi r24, 0xBF ; 191
297e: 80 93 c9 00 sts 0x00C9, r24
2982: 80 91 c9 00 lds r24, 0x00C9
2986: 8f 7d andi r24, 0xDF ; 223
2988: 80 93 c9 00 sts 0x00C9, r24
298c: 83 2f mov r24, r19
298e: 99 27 eor r25, r25
2990: 80 93 cd 00 sts 0x00CD, r24
2994: 20 93 cc 00 sts 0x00CC, r18
2998: 80 91 c8 00 lds r24, 0x00C8
299c: 82 60 ori r24, 0x02 ; 2
299e: 80 93 c8 00 sts 0x00C8, r24
29a2: 88 e1 ldi r24, 0x18 ; 24
29a4: 80 93 c9 00 sts 0x00C9, r24
29a8: 80 91 ca 00 lds r24, 0x00CA
29ac: 8f 77 andi r24, 0x7F ; 127
29ae: 80 93 ca 00 sts 0x00CA, r24
29b2: 80 91 ca 00 lds r24, 0x00CA
29b6: 8f 7b andi r24, 0xBF ; 191
29b8: 80 93 ca 00 sts 0x00CA, r24
29bc: 80 91 ca 00 lds r24, 0x00CA
29c0: 8f 7d andi r24, 0xDF ; 223
29c2: 80 93 ca 00 sts 0x00CA, r24
29c6: 80 91 ca 00 lds r24, 0x00CA
29ca: 8f 7e andi r24, 0xEF ; 239
29cc: 80 93 ca 00 sts 0x00CA, r24
29d0: 80 91 ca 00 lds r24, 0x00CA
29d4: 87 7f andi r24, 0xF7 ; 247
29d6: 80 93 ca 00 sts 0x00CA, r24
29da: 80 91 c9 00 lds r24, 0x00C9
29de: 84 60 ori r24, 0x04 ; 4
29e0: 80 93 c9 00 sts 0x00C9, r24
29e4: 80 91 ca 00 lds r24, 0x00CA
29e8: 84 60 ori r24, 0x04 ; 4
29ea: 80 93 ca 00 sts 0x00CA, r24
29ee: 80 91 ca 00 lds r24, 0x00CA
29f2: 82 60 ori r24, 0x02 ; 2
29f4: 80 93 ca 00 sts 0x00CA, r24
29f8: 80 91 c9 00 lds r24, 0x00C9
29fc: 81 60 ori r24, 0x01 ; 1
29fe: 80 93 c9 00 sts 0x00C9, r24
2a02: 80 91 c8 00 lds r24, 0x00C8
2a06: 87 ff sbrs r24, 7
2a08: 03 c0 rjmp .+6 ; 0x2a10 <HoTT_Init+0xaa>
2a0a: 80 91 ce 00 lds r24, 0x00CE
2a0e: f9 cf rjmp .-14 ; 0x2a02 <HoTT_Init+0x9c>
2a10: 80 91 c9 00 lds r24, 0x00C9
2a14: 80 68 ori r24, 0x80 ; 128
2a16: 80 93 c9 00 sts 0x00C9, r24
2a1a: 4f bf out 0x3f, r20 ; 63
2a1c: 3c e7 ldi r19, 0x7C ; 124
2a1e: 30 93 57 06 sts 0x0657, r19
2a22: 2d e7 ldi r18, 0x7D ; 125
2a24: 20 93 82 06 sts 0x0682, r18
2a28: 8e e8 ldi r24, 0x8E ; 142
2a2a: 80 93 58 06 sts 0x0658, r24
2a2e: 10 92 74 06 sts 0x0674, r1
2a32: 10 92 73 06 sts 0x0673, r1
2a36: 10 92 5d 06 sts 0x065D, r1
2a3a: 80 ee ldi r24, 0xE0 ; 224
2a3c: 80 93 5a 06 sts 0x065A, r24
2a40: 30 93 b9 06 sts 0x06B9, r19
2a44: 20 93 e4 06 sts 0x06E4, r18
2a48: 10 92 c5 06 sts 0x06C5, r1
2a4c: 10 92 c4 06 sts 0x06C4, r1
2a50: 10 92 c7 06 sts 0x06C7, r1
2a54: 10 92 c6 06 sts 0x06C6, r1
2a58: 10 92 c9 06 sts 0x06C9, r1
2a5c: 10 92 c8 06 sts 0x06C8, r1
2a60: 84 ef ldi r24, 0xF4 ; 244
2a62: 91 e0 ldi r25, 0x01 ; 1
2a64: 90 93 c3 06 sts 0x06C3, r25
2a68: 80 93 c2 06 sts 0x06C2, r24
2a6c: 90 93 c1 06 sts 0x06C1, r25
2a70: 80 93 c0 06 sts 0x06C0, r24
2a74: 90 93 bf 06 sts 0x06BF, r25
2a78: 80 93 be 06 sts 0x06BE, r24
2a7c: 10 92 bb 06 sts 0x06BB, r1
2a80: 89 e8 ldi r24, 0x89 ; 137
2a82: 80 93 ba 06 sts 0x06BA, r24
2a86: 10 92 e2 06 sts 0x06E2, r1
2a8a: 10 92 e3 06 sts 0x06E3, r1
2a8e: 80 e9 ldi r24, 0x90 ; 144
2a90: 80 93 bc 06 sts 0x06BC, r24
2a94: 30 93 91 07 sts 0x0791, r19
2a98: 20 93 bc 07 sts 0x07BC, r18
2a9c: 10 92 93 07 sts 0x0793, r1
2aa0: 8a e8 ldi r24, 0x8A ; 138
2aa2: 80 93 92 07 sts 0x0792, r24
2aa6: 10 92 99 07 sts 0x0799, r1
2aaa: 10 92 98 07 sts 0x0798, r1
2aae: 10 92 97 07 sts 0x0797, r1
2ab2: 10 92 9b 07 sts 0x079B, r1
2ab6: 10 92 9c 07 sts 0x079C, r1
2aba: 10 92 9d 07 sts 0x079D, r1
2abe: 10 92 9e 07 sts 0x079E, r1
2ac2: 10 92 a0 07 sts 0x07A0, r1
2ac6: 10 92 a1 07 sts 0x07A1, r1
2aca: 10 92 a2 07 sts 0x07A2, r1
2ace: 10 92 a3 07 sts 0x07A3, r1
2ad2: 10 92 a7 07 sts 0x07A7, r1
2ad6: 10 92 a6 07 sts 0x07A6, r1
2ada: 10 92 a5 07 sts 0x07A5, r1
2ade: 10 92 a4 07 sts 0x07A4, r1
2ae2: 80 ea ldi r24, 0xA0 ; 160
2ae4: 80 93 94 07 sts 0x0794, r24
2ae8: 30 93 83 06 sts 0x0683, r19
2aec: 20 93 ae 06 sts 0x06AE, r18
2af0: 10 92 85 06 sts 0x0685, r1
2af4: 8d e8 ldi r24, 0x8D ; 141
2af6: 80 93 84 06 sts 0x0684, r24
2afa: 10 92 ad 06 sts 0x06AD, r1
2afe: 80 ed ldi r24, 0xD0 ; 208
2b00: 80 93 86 06 sts 0x0686, r24
2b04: 8b e7 ldi r24, 0x7B ; 123
2b06: 80 93 e5 06 sts 0x06E5, r24
2b0a: 80 e8 ldi r24, 0x80 ; 128
2b0c: 80 93 e6 06 sts 0x06E6, r24
2b10: 10 92 e7 06 sts 0x06E7, r1
2b14: 80 91 5d 06 lds r24, 0x065D
2b18: 90 e2 ldi r25, 0x20 ; 32
2b1a: e8 ee ldi r30, 0xE8 ; 232
2b1c: f6 e0 ldi r31, 0x06 ; 6
2b1e: 91 93 st Z+, r25
2b20: 8f 5f subi r24, 0xFF ; 255
2b22: 88 3a cpi r24, 0xA8 ; 168
2b24: e0 f3 brcs .-8 ; 0x2b1e <HoTT_Init+0x1b8>
2b26: 8d e7 ldi r24, 0x7D ; 125
2b28: 80 93 90 07 sts 0x0790, r24
2b2c: 08 95 ret
 
00002b2e <HoTT_Parser>:
2b2e: cf 93 push r28
2b30: c8 2f mov r28, r24
2b32: 80 91 00 03 lds r24, 0x0300
2b36: 80 38 cpi r24, 0x80 ; 128
2b38: 79 f4 brne .+30 ; 0x2b58 <HoTT_Parser+0x2a>
2b3a: 8c 2f mov r24, r28
2b3c: 0e 94 0c 59 call 0xb218 ; 0xb218 <HoTT_Telemety>
2b40: 80 93 ef 02 sts 0x02EF, r24
2b44: 80 91 ef 02 lds r24, 0x02EF
2b48: 88 23 and r24, r24
2b4a: 31 f1 breq .+76 ; 0x2b98 <HoTT_Parser+0x6a>
2b4c: c0 93 8d 0c sts 0x0C8D, r28
2b50: 80 91 ef 02 lds r24, 0x02EF
2b54: 8f 5f subi r24, 0xFF ; 255
2b56: 16 c0 rjmp .+44 ; 0x2b84 <HoTT_Parser+0x56>
2b58: 8f 37 cpi r24, 0x7F ; 127
2b5a: f1 f4 brne .+60 ; 0x2b98 <HoTT_Parser+0x6a>
2b5c: 80 91 86 0c lds r24, 0x0C86
2b60: 88 23 and r24, r24
2b62: 29 f4 brne .+10 ; 0x2b6e <HoTT_Parser+0x40>
2b64: 8c 2f mov r24, r28
2b66: 80 95 com r24
2b68: 8f 70 andi r24, 0x0F ; 15
2b6a: 80 93 86 0c sts 0x0C86, r24
2b6e: 0e 94 05 58 call 0xb00a ; 0xb00a <HoTT_Waring>
2b72: 80 93 e7 06 sts 0x06E7, r24
2b76: 85 ee ldi r24, 0xE5 ; 229
2b78: 96 e0 ldi r25, 0x06 ; 6
2b7a: 90 93 f1 02 sts 0x02F1, r25
2b7e: 80 93 f0 02 sts 0x02F0, r24
2b82: 8d ea ldi r24, 0xAD ; 173
2b84: 80 93 ef 02 sts 0x02EF, r24
2b88: 80 91 c9 00 lds r24, 0x00C9
2b8c: 8f 7e andi r24, 0xEF ; 239
2b8e: 80 93 c9 00 sts 0x00C9, r24
2b92: 82 e0 ldi r24, 0x02 ; 2
2b94: 80 93 ee 02 sts 0x02EE, r24
2b98: c0 93 00 03 sts 0x0300, r28
2b9c: cf 91 pop r28
2b9e: 08 95 ret
 
00002ba0 <HoTT_Polling>:
2ba0: 30 91 ee 02 lds r19, 0x02EE
2ba4: 33 23 and r19, r19
2ba6: 31 f0 breq .+12 ; 0x2bb4 <HoTT_Polling+0x14>
2ba8: 80 91 ee 02 lds r24, 0x02EE
2bac: 81 50 subi r24, 0x01 ; 1
2bae: 80 93 ee 02 sts 0x02EE, r24
2bb2: 08 95 ret
2bb4: 80 91 ef 02 lds r24, 0x02EF
2bb8: 88 23 and r24, r24
2bba: 61 f1 breq .+88 ; 0x2c14 <HoTT_Polling+0x74>
2bbc: 40 91 ef 02 lds r20, 0x02EF
2bc0: 90 91 01 03 lds r25, 0x0301
2bc4: 41 30 cpi r20, 0x01 ; 1
2bc6: 69 f4 brne .+26 ; 0x2be2 <HoTT_Polling+0x42>
2bc8: 29 2f mov r18, r25
2bca: 30 93 01 03 sts 0x0301, r19
2bce: 80 91 ed 02 lds r24, 0x02ED
2bd2: 88 23 and r24, r24
2bd4: 19 f0 breq .+6 ; 0x2bdc <HoTT_Polling+0x3c>
2bd6: 30 93 ed 02 sts 0x02ED, r19
2bda: 10 c0 rjmp .+32 ; 0x2bfc <HoTT_Polling+0x5c>
2bdc: 40 93 ed 02 sts 0x02ED, r20
2be0: 0d c0 rjmp .+26 ; 0x2bfc <HoTT_Polling+0x5c>
2be2: e0 91 f0 02 lds r30, 0x02F0
2be6: f0 91 f1 02 lds r31, 0x02F1
2bea: 81 91 ld r24, Z+
2bec: f0 93 f1 02 sts 0x02F1, r31
2bf0: e0 93 f0 02 sts 0x02F0, r30
2bf4: 28 2f mov r18, r24
2bf6: 98 0f add r25, r24
2bf8: 90 93 01 03 sts 0x0301, r25
2bfc: 80 91 c8 00 lds r24, 0x00C8
2c00: 85 ff sbrs r24, 5
2c02: fc cf rjmp .-8 ; 0x2bfc <HoTT_Polling+0x5c>
2c04: 20 93 ce 00 sts 0x00CE, r18
2c08: 80 91 ef 02 lds r24, 0x02EF
2c0c: 81 50 subi r24, 0x01 ; 1
2c0e: 80 93 ef 02 sts 0x02EF, r24
2c12: 08 95 ret
2c14: 80 91 c9 00 lds r24, 0x00C9
2c18: 80 61 ori r24, 0x10 ; 16
2c1a: 80 93 c9 00 sts 0x00C9, r24
2c1e: 08 95 ret
 
00002c20 <ACC_AltitudeFusion>:
2c20: 6f 92 push r6
2c22: 7f 92 push r7
2c24: 8f 92 push r8
2c26: 9f 92 push r9
2c28: af 92 push r10
2c2a: bf 92 push r11
2c2c: cf 92 push r12
2c2e: df 92 push r13
2c30: ef 92 push r14
2c32: ff 92 push r15
2c34: 0f 93 push r16
2c36: 1f 93 push r17
2c38: 88 23 and r24, r24
2c3a: 61 f1 breq .+88 ; 0x2c94 <ACC_AltitudeFusion+0x74>
2c3c: 82 30 cpi r24, 0x02 ; 2
2c3e: 41 f4 brne .+16 ; 0x2c50 <ACC_AltitudeFusion+0x30>
2c40: 10 92 0a 03 sts 0x030A, r1
2c44: 10 92 0b 03 sts 0x030B, r1
2c48: 10 92 0c 03 sts 0x030C, r1
2c4c: 10 92 0d 03 sts 0x030D, r1
2c50: 20 91 fc 03 lds r18, 0x03FC
2c54: 30 91 fd 03 lds r19, 0x03FD
2c58: 40 91 fe 03 lds r20, 0x03FE
2c5c: 50 91 ff 03 lds r21, 0x03FF
2c60: da 01 movw r26, r20
2c62: c9 01 movw r24, r18
2c64: 19 e0 ldi r17, 0x09 ; 9
2c66: 88 0f add r24, r24
2c68: 99 1f adc r25, r25
2c6a: aa 1f adc r26, r26
2c6c: bb 1f adc r27, r27
2c6e: 1a 95 dec r17
2c70: d1 f7 brne .-12 ; 0x2c66 <ACC_AltitudeFusion+0x46>
2c72: 80 93 57 03 sts 0x0357, r24
2c76: 90 93 58 03 sts 0x0358, r25
2c7a: a0 93 59 03 sts 0x0359, r26
2c7e: b0 93 5a 03 sts 0x035A, r27
2c82: 20 93 02 03 sts 0x0302, r18
2c86: 30 93 03 03 sts 0x0303, r19
2c8a: 40 93 04 03 sts 0x0304, r20
2c8e: 50 93 05 03 sts 0x0305, r21
2c92: 26 c1 rjmp .+588 ; 0x2ee0 <ACC_AltitudeFusion+0x2c0>
2c94: a0 90 fc 03 lds r10, 0x03FC
2c98: b0 90 fd 03 lds r11, 0x03FD
2c9c: c0 90 fe 03 lds r12, 0x03FE
2ca0: d0 90 ff 03 lds r13, 0x03FF
2ca4: 80 91 02 03 lds r24, 0x0302
2ca8: 90 91 03 03 lds r25, 0x0303
2cac: a0 91 04 03 lds r26, 0x0304
2cb0: b0 91 05 03 lds r27, 0x0305
2cb4: 35 01 movw r6, r10
2cb6: 46 01 movw r8, r12
2cb8: 68 1a sub r6, r24
2cba: 79 0a sbc r7, r25
2cbc: 8a 0a sbc r8, r26
2cbe: 9b 0a sbc r9, r27
2cc0: 60 92 06 03 sts 0x0306, r6
2cc4: 70 92 07 03 sts 0x0307, r7
2cc8: 80 92 08 03 sts 0x0308, r8
2ccc: 90 92 09 03 sts 0x0309, r9
2cd0: 80 91 5b 03 lds r24, 0x035B
2cd4: 90 91 5c 03 lds r25, 0x035C
2cd8: 84 55 subi r24, 0x54 ; 84
2cda: 9f 4f sbci r25, 0xFF ; 255
2cdc: 7c 01 movw r14, r24
2cde: 00 27 eor r16, r16
2ce0: f7 fc sbrc r15, 7
2ce2: 00 95 com r16
2ce4: 10 2f mov r17, r16
2ce6: 80 91 0a 06 lds r24, 0x060A
2cea: 90 91 0b 06 lds r25, 0x060B
2cee: 9c 01 movw r18, r24
2cf0: 44 27 eor r20, r20
2cf2: 37 fd sbrc r19, 7
2cf4: 40 95 com r20
2cf6: 54 2f mov r21, r20
2cf8: c8 01 movw r24, r16
2cfa: b7 01 movw r22, r14
2cfc: 0e 94 a4 9a call 0x13548 ; 0x13548 <__mulsi3>
2d00: 97 ff sbrs r25, 7
2d02: 04 c0 rjmp .+8 ; 0x2d0c <ACC_AltitudeFusion+0xec>
2d04: 61 50 subi r22, 0x01 ; 1
2d06: 70 4e sbci r23, 0xE0 ; 224
2d08: 8f 4f sbci r24, 0xFF ; 255
2d0a: 9f 4f sbci r25, 0xFF ; 255
2d0c: ab 01 movw r20, r22
2d0e: bc 01 movw r22, r24
2d10: fd e0 ldi r31, 0x0D ; 13
2d12: 75 95 asr r23
2d14: 67 95 ror r22
2d16: 57 95 ror r21
2d18: 47 95 ror r20
2d1a: fa 95 dec r31
2d1c: d1 f7 brne .-12 ; 0x2d12 <ACC_AltitudeFusion+0xf2>
2d1e: 4c 5a subi r20, 0xAC ; 172
2d20: 50 40 sbci r21, 0x00 ; 0
2d22: 60 40 sbci r22, 0x00 ; 0
2d24: 70 40 sbci r23, 0x00 ; 0
2d26: 40 93 0e 03 sts 0x030E, r20
2d2a: 50 93 0f 03 sts 0x030F, r21
2d2e: 60 93 10 03 sts 0x0310, r22
2d32: 70 93 11 03 sts 0x0311, r23
2d36: 20 91 c9 08 lds r18, 0x08C9
2d3a: 30 91 ca 08 lds r19, 0x08CA
2d3e: 37 ff sbrs r19, 7
2d40: 02 c0 rjmp .+4 ; 0x2d46 <ACC_AltitudeFusion+0x126>
2d42: 21 5f subi r18, 0xF1 ; 241
2d44: 3f 4f sbci r19, 0xFF ; 255
2d46: e4 e0 ldi r30, 0x04 ; 4
2d48: 35 95 asr r19
2d4a: 27 95 ror r18
2d4c: ea 95 dec r30
2d4e: e1 f7 brne .-8 ; 0x2d48 <ACC_AltitudeFusion+0x128>
2d50: 80 91 5f 03 lds r24, 0x035F
2d54: 90 91 60 03 lds r25, 0x0360
2d58: 82 9f mul r24, r18
2d5a: d0 01 movw r26, r0
2d5c: 83 9f mul r24, r19
2d5e: b0 0d add r27, r0
2d60: 92 9f mul r25, r18
2d62: b0 0d add r27, r0
2d64: 11 24 eor r1, r1
2d66: cd 01 movw r24, r26
2d68: b7 ff sbrs r27, 7
2d6a: 02 c0 rjmp .+4 ; 0x2d70 <ACC_AltitudeFusion+0x150>
2d6c: 81 50 subi r24, 0x01 ; 1
2d6e: 9f 4f sbci r25, 0xFF ; 255
2d70: e9 2f mov r30, r25
2d72: ff 27 eor r31, r31
2d74: e7 fd sbrc r30, 7
2d76: fa 95 dec r31
2d78: 20 91 c7 08 lds r18, 0x08C7
2d7c: 30 91 c8 08 lds r19, 0x08C8
2d80: 37 ff sbrs r19, 7
2d82: 02 c0 rjmp .+4 ; 0x2d88 <ACC_AltitudeFusion+0x168>
2d84: 21 5f subi r18, 0xF1 ; 241
2d86: 3f 4f sbci r19, 0xFF ; 255
2d88: 84 e0 ldi r24, 0x04 ; 4
2d8a: 35 95 asr r19
2d8c: 27 95 ror r18
2d8e: 8a 95 dec r24
2d90: e1 f7 brne .-8 ; 0x2d8a <ACC_AltitudeFusion+0x16a>
2d92: 80 91 5d 03 lds r24, 0x035D
2d96: 90 91 5e 03 lds r25, 0x035E
2d9a: 82 9f mul r24, r18
2d9c: d0 01 movw r26, r0
2d9e: 83 9f mul r24, r19
2da0: b0 0d add r27, r0
2da2: 92 9f mul r25, r18
2da4: b0 0d add r27, r0
2da6: 11 24 eor r1, r1
2da8: cd 01 movw r24, r26
2daa: b7 ff sbrs r27, 7
2dac: 02 c0 rjmp .+4 ; 0x2db2 <ACC_AltitudeFusion+0x192>
2dae: 81 50 subi r24, 0x01 ; 1
2db0: 9f 4f sbci r25, 0xFF ; 255
2db2: 89 2f mov r24, r25
2db4: 99 0f add r25, r25
2db6: 99 0b sbc r25, r25
2db8: e8 0f add r30, r24
2dba: f9 1f adc r31, r25
2dbc: cf 01 movw r24, r30
2dbe: aa 27 eor r26, r26
2dc0: 97 fd sbrc r25, 7
2dc2: a0 95 com r26
2dc4: ba 2f mov r27, r26
2dc6: 84 0f add r24, r20
2dc8: 95 1f adc r25, r21
2dca: a6 1f adc r26, r22
2dcc: b7 1f adc r27, r23
2dce: 80 93 0e 03 sts 0x030E, r24
2dd2: 90 93 0f 03 sts 0x030F, r25
2dd6: a0 93 10 03 sts 0x0310, r26
2dda: b0 93 11 03 sts 0x0311, r27
2dde: bc 01 movw r22, r24
2de0: cd 01 movw r24, r26
2de2: 2d e0 ldi r18, 0x0D ; 13
2de4: 30 e0 ldi r19, 0x00 ; 0
2de6: 40 e0 ldi r20, 0x00 ; 0
2de8: 50 e0 ldi r21, 0x00 ; 0
2dea: 0e 94 a4 9a call 0x13548 ; 0x13548 <__mulsi3>
2dee: 7b 01 movw r14, r22
2df0: 8c 01 movw r16, r24
2df2: c4 01 movw r24, r8
2df4: b3 01 movw r22, r6
2df6: 24 ef ldi r18, 0xF4 ; 244
2df8: 31 e0 ldi r19, 0x01 ; 1
2dfa: 40 e0 ldi r20, 0x00 ; 0
2dfc: 50 e0 ldi r21, 0x00 ; 0
2dfe: 0e 94 a4 9a call 0x13548 ; 0x13548 <__mulsi3>
2e02: dc 01 movw r26, r24
2e04: cb 01 movw r24, r22
2e06: e8 0e add r14, r24
2e08: f9 1e adc r15, r25
2e0a: 0a 1f adc r16, r26
2e0c: 1b 1f adc r17, r27
2e0e: 80 91 0a 03 lds r24, 0x030A
2e12: 90 91 0b 03 lds r25, 0x030B
2e16: a0 91 0c 03 lds r26, 0x030C
2e1a: b0 91 0d 03 lds r27, 0x030D
2e1e: 20 91 12 03 lds r18, 0x0312
2e22: 30 91 13 03 lds r19, 0x0313
2e26: 40 91 14 03 lds r20, 0x0314
2e2a: 50 91 15 03 lds r21, 0x0315
2e2e: 82 1b sub r24, r18
2e30: 93 0b sbc r25, r19
2e32: a4 0b sbc r26, r20
2e34: b5 0b sbc r27, r21
2e36: e8 0e add r14, r24
2e38: f9 1e adc r15, r25
2e3a: 0a 1f adc r16, r26
2e3c: 1b 1f adc r17, r27
2e3e: e0 92 0a 03 sts 0x030A, r14
2e42: f0 92 0b 03 sts 0x030B, r15
2e46: 00 93 0c 03 sts 0x030C, r16
2e4a: 10 93 0d 03 sts 0x030D, r17
2e4e: d8 01 movw r26, r16
2e50: c7 01 movw r24, r14
2e52: 80 50 subi r24, 0x00 ; 0
2e54: 9e 4f sbci r25, 0xFE ; 254
2e56: af 4f sbci r26, 0xFF ; 255
2e58: bf 4f sbci r27, 0xFF ; 255
2e5a: b7 ff sbrs r27, 7
2e5c: 06 c0 rjmp .+12 ; 0x2e6a <ACC_AltitudeFusion+0x24a>
2e5e: d8 01 movw r26, r16
2e60: c7 01 movw r24, r14
2e62: 81 50 subi r24, 0x01 ; 1
2e64: 9a 4f sbci r25, 0xFA ; 250
2e66: af 4f sbci r26, 0xFF ; 255
2e68: bf 4f sbci r27, 0xFF ; 255
2e6a: 1a e0 ldi r17, 0x0A ; 10
2e6c: b5 95 asr r27
2e6e: a7 95 ror r26
2e70: 97 95 ror r25
2e72: 87 95 ror r24
2e74: 1a 95 dec r17
2e76: d1 f7 brne .-12 ; 0x2e6c <ACC_AltitudeFusion+0x24c>
2e78: 80 93 12 03 sts 0x0312, r24
2e7c: 90 93 13 03 sts 0x0313, r25
2e80: a0 93 14 03 sts 0x0314, r26
2e84: b0 93 15 03 sts 0x0315, r27
2e88: a0 92 02 03 sts 0x0302, r10
2e8c: b0 92 03 03 sts 0x0303, r11
2e90: c0 92 04 03 sts 0x0304, r12
2e94: d0 92 05 03 sts 0x0305, r13
2e98: 20 91 57 03 lds r18, 0x0357
2e9c: 30 91 58 03 lds r19, 0x0358
2ea0: 40 91 59 03 lds r20, 0x0359
2ea4: 50 91 5a 03 lds r21, 0x035A
2ea8: e0 90 4a 03 lds r14, 0x034A
2eac: f0 90 4b 03 lds r15, 0x034B
2eb0: 00 91 4c 03 lds r16, 0x034C
2eb4: 10 91 4d 03 lds r17, 0x034D
2eb8: 2e 19 sub r18, r14
2eba: 3f 09 sbc r19, r15
2ebc: 40 0b sbc r20, r16
2ebe: 51 0b sbc r21, r17
2ec0: 28 0f add r18, r24
2ec2: 39 1f adc r19, r25
2ec4: 4a 1f adc r20, r26
2ec6: 5b 1f adc r21, r27
2ec8: 2a 0d add r18, r10
2eca: 3b 1d adc r19, r11
2ecc: 4c 1d adc r20, r12
2ece: 5d 1d adc r21, r13
2ed0: 20 93 57 03 sts 0x0357, r18
2ed4: 30 93 58 03 sts 0x0358, r19
2ed8: 40 93 59 03 sts 0x0359, r20
2edc: 50 93 5a 03 sts 0x035A, r21
2ee0: 80 91 12 03 lds r24, 0x0312
2ee4: 90 91 13 03 lds r25, 0x0313
2ee8: 90 93 55 03 sts 0x0355, r25
2eec: 80 93 54 03 sts 0x0354, r24
2ef0: 80 91 57 03 lds r24, 0x0357
2ef4: 90 91 58 03 lds r25, 0x0358
2ef8: a0 91 59 03 lds r26, 0x0359
2efc: b0 91 5a 03 lds r27, 0x035A
2f00: bc 01 movw r22, r24
2f02: cd 01 movw r24, r26
2f04: 1f 91 pop r17
2f06: 0f 91 pop r16
2f08: ff 90 pop r15
2f0a: ef 90 pop r14
2f0c: df 90 pop r13
2f0e: cf 90 pop r12
2f10: bf 90 pop r11
2f12: af 90 pop r10
2f14: 9f 90 pop r9
2f16: 8f 90 pop r8
2f18: 7f 90 pop r7
2f1a: 6f 90 pop r6
2f1c: 08 95 ret
 
00002f1e <LIBFC_GetCPUType>:
2f1e: 2f b7 in r18, 0x3f ; 63
2f20: 40 e0 ldi r20, 0x00 ; 0
2f22: f8 94 cli
2f24: e0 e0 ldi r30, 0x00 ; 0
2f26: f0 e0 ldi r31, 0x00 ; 0
2f28: 81 e2 ldi r24, 0x21 ; 33
2f2a: 80 93 57 00 sts 0x0057, r24
2f2e: 94 91 lpm r25, Z
2f30: e2 e0 ldi r30, 0x02 ; 2
2f32: f0 e0 ldi r31, 0x00 ; 0
2f34: 80 93 57 00 sts 0x0057, r24
2f38: 34 91 lpm r19, Z
2f3a: e4 e0 ldi r30, 0x04 ; 4
2f3c: f0 e0 ldi r31, 0x00 ; 0
2f3e: 80 93 57 00 sts 0x0057, r24
2f42: 84 91 lpm r24, Z
2f44: 2f bf out 0x3f, r18 ; 63
2f46: 9e 31 cpi r25, 0x1E ; 30
2f48: 99 f4 brne .+38 ; 0x2f70 <LIBFC_GetCPUType+0x52>
2f4a: 36 39 cpi r19, 0x96 ; 150
2f4c: 41 f4 brne .+16 ; 0x2f5e <LIBFC_GetCPUType+0x40>
2f4e: 89 30 cpi r24, 0x09 ; 9
2f50: 11 f4 brne .+4 ; 0x2f56 <LIBFC_GetCPUType+0x38>
2f52: 41 e0 ldi r20, 0x01 ; 1
2f54: 0d c0 rjmp .+26 ; 0x2f70 <LIBFC_GetCPUType+0x52>
2f56: 8a 30 cpi r24, 0x0A ; 10
2f58: 59 f4 brne .+22 ; 0x2f70 <LIBFC_GetCPUType+0x52>
2f5a: 42 e0 ldi r20, 0x02 ; 2
2f5c: 09 c0 rjmp .+18 ; 0x2f70 <LIBFC_GetCPUType+0x52>
2f5e: 37 39 cpi r19, 0x97 ; 151
2f60: 39 f4 brne .+14 ; 0x2f70 <LIBFC_GetCPUType+0x52>
2f62: 86 30 cpi r24, 0x06 ; 6
2f64: 11 f4 brne .+4 ; 0x2f6a <LIBFC_GetCPUType+0x4c>
2f66: 43 e0 ldi r20, 0x03 ; 3
2f68: 03 c0 rjmp .+6 ; 0x2f70 <LIBFC_GetCPUType+0x52>
2f6a: 85 30 cpi r24, 0x05 ; 5
2f6c: 09 f4 brne .+2 ; 0x2f70 <LIBFC_GetCPUType+0x52>
2f6e: 44 e0 ldi r20, 0x04 ; 4
2f70: 84 2f mov r24, r20
2f72: 99 27 eor r25, r25
2f74: 08 95 ret
 
00002f76 <awokdjwqdjcjuhcuweih>:
2f76: 9f b7 in r25, 0x3f ; 63
2f78: f8 94 cli
2f7a: 80 91 c9 00 lds r24, 0x00C9
2f7e: 87 7f andi r24, 0xF7 ; 247
2f80: 80 93 c9 00 sts 0x00C9, r24
2f84: 80 91 c9 00 lds r24, 0x00C9
2f88: 8f 7e andi r24, 0xEF ; 239
2f8a: 80 93 c9 00 sts 0x00C9, r24
2f8e: 80 91 c9 00 lds r24, 0x00C9
2f92: 8f 77 andi r24, 0x7F ; 127
2f94: 80 93 c9 00 sts 0x00C9, r24
2f98: 80 91 c9 00 lds r24, 0x00C9
2f9c: 8f 7b andi r24, 0xBF ; 191
2f9e: 80 93 c9 00 sts 0x00C9, r24
2fa2: 80 91 c9 00 lds r24, 0x00C9
2fa6: 8f 7d andi r24, 0xDF ; 223
2fa8: 80 93 c9 00 sts 0x00C9, r24
2fac: 9f bf out 0x3f, r25 ; 63
2fae: 08 95 ret
 
00002fb0 <LIBFC_ReceiverInit>:
2fb0: 1f 93 push r17
2fb2: cf 93 push r28
2fb4: df 93 push r29
2fb6: 18 2f mov r17, r24
2fb8: 80 91 ec 02 lds r24, 0x02EC
2fbc: 88 23 and r24, r24
2fbe: 09 f4 brne .+2 ; 0x2fc2 <LIBFC_ReceiverInit+0x12>
2fc0: a4 c0 rjmp .+328 ; 0x310a <LIBFC_ReceiverInit+0x15a>
2fc2: 80 91 05 01 lds r24, 0x0105
2fc6: 18 17 cp r17, r24
2fc8: 09 f4 brne .+2 ; 0x2fcc <LIBFC_ReceiverInit+0x1c>
2fca: 9f c0 rjmp .+318 ; 0x310a <LIBFC_ReceiverInit+0x15a>
2fcc: 80 91 eb 02 lds r24, 0x02EB
2fd0: 88 23 and r24, r24
2fd2: 19 f4 brne .+6 ; 0x2fda <LIBFC_ReceiverInit+0x2a>
2fd4: a4 df rcall .-184 ; 0x2f1e <LIBFC_GetCPUType>
2fd6: 80 93 eb 02 sts 0x02EB, r24
2fda: 82 ed ldi r24, 0xD2 ; 210
2fdc: 91 e0 ldi r25, 0x01 ; 1
2fde: 90 93 92 02 sts 0x0292, r25
2fe2: 80 93 91 02 sts 0x0291, r24
2fe6: 8f ee ldi r24, 0xEF ; 239
2fe8: 97 e1 ldi r25, 0x17 ; 23
2fea: 9f 93 push r25
2fec: 8f 93 push r24
2fee: cc e9 ldi r28, 0x9C ; 156
2ff0: d6 e9 ldi r29, 0x96 ; 150
2ff2: df 93 push r29
2ff4: cf 93 push r28
2ff6: e0 91 55 06 lds r30, 0x0655
2ffa: f0 91 56 06 lds r31, 0x0656
2ffe: 09 95 icall
3000: 0f 90 pop r0
3002: 0f 90 pop r0
3004: 0f 90 pop r0
3006: 0f 90 pop r0
3008: 81 2f mov r24, r17
300a: 99 27 eor r25, r25
300c: aa 27 eor r26, r26
300e: bb 27 eor r27, r27
3010: fc 01 movw r30, r24
3012: 09 97 sbiw r24, 0x09 ; 9
3014: 78 f5 brcc .+94 ; 0x3074 <LIBFC_ReceiverInit+0xc4>
3016: e9 54 subi r30, 0x49 ; 73
3018: ff 4f sbci r31, 0xFF ; 255
301a: 20 91 55 06 lds r18, 0x0655
301e: 30 91 56 06 lds r19, 0x0656
3022: 0c 94 24 9b jmp 0x13648 ; 0x13648 <__tablejump2__>
3026: 8b ee ldi r24, 0xEB ; 235
3028: 97 e1 ldi r25, 0x17 ; 23
302a: 02 c0 rjmp .+4 ; 0x3030 <LIBFC_ReceiverInit+0x80>
302c: 82 ee ldi r24, 0xE2 ; 226
302e: 97 e1 ldi r25, 0x17 ; 23
3030: 9f 93 push r25
3032: 8f 93 push r24
3034: df 93 push r29
3036: cf 93 push r28
3038: f9 01 movw r30, r18
303a: 09 95 icall
303c: 27 c0 rjmp .+78 ; 0x308c <LIBFC_ReceiverInit+0xdc>
303e: 8d ed ldi r24, 0xDD ; 221
3040: 97 e1 ldi r25, 0x17 ; 23
3042: f6 cf rjmp .-20 ; 0x3030 <LIBFC_ReceiverInit+0x80>
3044: 85 ed ldi r24, 0xD5 ; 213
3046: 97 e1 ldi r25, 0x17 ; 23
3048: f3 cf rjmp .-26 ; 0x3030 <LIBFC_ReceiverInit+0x80>
304a: 8d ec ldi r24, 0xCD ; 205
304c: 97 e1 ldi r25, 0x17 ; 23
304e: 9f 93 push r25
3050: 8f 93 push r24
3052: df 93 push r29
3054: cf 93 push r28
3056: f9 01 movw r30, r18
3058: 09 95 icall
305a: 88 ed ldi r24, 0xD8 ; 216
305c: 91 e0 ldi r25, 0x01 ; 1
305e: 90 93 92 02 sts 0x0292, r25
3062: 80 93 91 02 sts 0x0291, r24
3066: 12 c0 rjmp .+36 ; 0x308c <LIBFC_ReceiverInit+0xdc>
3068: 88 ec ldi r24, 0xC8 ; 200
306a: 97 e1 ldi r25, 0x17 ; 23
306c: e1 cf rjmp .-62 ; 0x3030 <LIBFC_ReceiverInit+0x80>
306e: 8c ef ldi r24, 0xFC ; 252
3070: 97 e1 ldi r25, 0x17 ; 23
3072: de cf rjmp .-68 ; 0x3030 <LIBFC_ReceiverInit+0x80>
3074: 82 e0 ldi r24, 0x02 ; 2
3076: 98 e1 ldi r25, 0x18 ; 24
3078: 9f 93 push r25
307a: 8f 93 push r24
307c: df 93 push r29
307e: cf 93 push r28
3080: e0 91 55 06 lds r30, 0x0655
3084: f0 91 56 06 lds r31, 0x0656
3088: 09 95 icall
308a: 10 e0 ldi r17, 0x00 ; 0
308c: 0f 90 pop r0
308e: 0f 90 pop r0
3090: 0f 90 pop r0
3092: 0f 90 pop r0
3094: 80 91 eb 02 lds r24, 0x02EB
3098: 84 30 cpi r24, 0x04 ; 4
309a: 11 f0 breq .+4 ; 0x30a0 <LIBFC_ReceiverInit+0xf0>
309c: 82 30 cpi r24, 0x02 ; 2
309e: 01 f5 brne .+64 ; 0x30e0 <LIBFC_ReceiverInit+0x130>
30a0: 6a df rcall .-300 ; 0x2f76 <awokdjwqdjcjuhcuweih>
30a2: 81 2f mov r24, r17
30a4: 81 50 subi r24, 0x01 ; 1
30a6: 83 30 cpi r24, 0x03 ; 3
30a8: 18 f4 brcc .+6 ; 0x30b0 <LIBFC_ReceiverInit+0x100>
30aa: 0e 94 8b 80 call 0x10116 ; 0x10116 <SpektrumUartInit>
30ae: 2b c0 rjmp .+86 ; 0x3106 <LIBFC_ReceiverInit+0x156>
30b0: 14 30 cpi r17, 0x04 ; 4
30b2: 19 f4 brne .+6 ; 0x30ba <LIBFC_ReceiverInit+0x10a>
30b4: 0e 94 fa 0e call 0x1df4 ; 0x1df4 <INiuzBtergGIBuB76T0G5>
30b8: 26 c0 rjmp .+76 ; 0x3106 <LIBFC_ReceiverInit+0x156>
30ba: 18 30 cpi r17, 0x08 ; 8
30bc: 19 f4 brne .+6 ; 0x30c4 <LIBFC_ReceiverInit+0x114>
30be: 0e 94 83 99 call 0x13306 ; 0x13306 <User_Receiver_Init>
30c2: 21 c0 rjmp .+66 ; 0x3106 <LIBFC_ReceiverInit+0x156>
30c4: 15 30 cpi r17, 0x05 ; 5
30c6: 19 f4 brne .+6 ; 0x30ce <LIBFC_ReceiverInit+0x11e>
30c8: 0e 94 3c 0d call 0x1a78 ; 0x1a78 <fomklkdtn89SFGrsgt9rf>
30cc: 1c c0 rjmp .+56 ; 0x3106 <LIBFC_ReceiverInit+0x156>
30ce: 16 30 cpi r17, 0x06 ; 6
30d0: 11 f4 brne .+4 ; 0x30d6 <LIBFC_ReceiverInit+0x126>
30d2: 49 dc rcall .-1902 ; 0x2966 <HoTT_Init>
30d4: 18 c0 rjmp .+48 ; 0x3106 <LIBFC_ReceiverInit+0x156>
30d6: 17 30 cpi r17, 0x07 ; 7
30d8: b1 f4 brne .+44 ; 0x3106 <LIBFC_ReceiverInit+0x156>
30da: 0e 94 51 7f call 0xfea2 ; 0xfea2 <SbusUartInit>
30de: 13 c0 rjmp .+38 ; 0x3106 <LIBFC_ReceiverInit+0x156>
30e0: 11 23 and r17, r17
30e2: 89 f0 breq .+34 ; 0x3106 <LIBFC_ReceiverInit+0x156>
30e4: 88 e1 ldi r24, 0x18 ; 24
30e6: 98 e1 ldi r25, 0x18 ; 24
30e8: 9f 93 push r25
30ea: 8f 93 push r24
30ec: 8c e9 ldi r24, 0x9C ; 156
30ee: 96 e9 ldi r25, 0x96 ; 150
30f0: 9f 93 push r25
30f2: 8f 93 push r24
30f4: e0 91 55 06 lds r30, 0x0655
30f8: f0 91 56 06 lds r31, 0x0656
30fc: 09 95 icall
30fe: 0f 90 pop r0
3100: 0f 90 pop r0
3102: 0f 90 pop r0
3104: 0f 90 pop r0
3106: 10 93 05 01 sts 0x0105, r17
310a: df 91 pop r29
310c: cf 91 pop r28
310e: 1f 91 pop r17
3110: 08 95 ret
 
00003112 <LIBFC_Init>:
3112: 0f 93 push r16
3114: 1f 93 push r17
3116: 08 2f mov r16, r24
3118: 81 e0 ldi r24, 0x01 ; 1
311a: 80 93 ec 02 sts 0x02EC, r24
311e: 40 91 04 01 lds r20, 0x0104
3122: e8 e7 ldi r30, 0x78 ; 120
3124: f7 e1 ldi r31, 0x17 ; 23
3126: 20 e0 ldi r18, 0x00 ; 0
3128: 30 e0 ldi r19, 0x00 ; 0
312a: 5f e4 ldi r21, 0x4F ; 79
312c: 84 91 lpm r24, Z
312e: 99 27 eor r25, r25
3130: 2f 5f subi r18, 0xFF ; 255
3132: 3f 4f sbci r19, 0xFF ; 255
3134: 82 9f mul r24, r18
3136: b0 01 movw r22, r0
3138: 83 9f mul r24, r19
313a: 70 0d add r23, r0
313c: 92 9f mul r25, r18
313e: 70 0d add r23, r0
3140: 11 24 eor r1, r1
3142: 46 27 eor r20, r22
3144: 51 50 subi r21, 0x01 ; 1
3146: 31 96 adiw r30, 0x01 ; 1
3148: 57 ff sbrs r21, 7
314a: f0 cf rjmp .-32 ; 0x312c <LIBFC_Init+0x1a>
314c: 40 93 04 01 sts 0x0104, r20
3150: e0 e5 ldi r30, 0x50 ; 80
3152: f7 e1 ldi r31, 0x17 ; 23
3154: 20 e0 ldi r18, 0x00 ; 0
3156: 30 e0 ldi r19, 0x00 ; 0
3158: 57 e2 ldi r21, 0x27 ; 39
315a: 84 91 lpm r24, Z
315c: 99 27 eor r25, r25
315e: 2f 5f subi r18, 0xFF ; 255
3160: 3f 4f sbci r19, 0xFF ; 255
3162: 82 9f mul r24, r18
3164: b0 01 movw r22, r0
3166: 83 9f mul r24, r19
3168: 70 0d add r23, r0
316a: 92 9f mul r25, r18
316c: 70 0d add r23, r0
316e: 11 24 eor r1, r1
3170: 46 27 eor r20, r22
3172: 51 50 subi r21, 0x01 ; 1
3174: 31 96 adiw r30, 0x01 ; 1
3176: 57 ff sbrs r21, 7
3178: f0 cf rjmp .-32 ; 0x315a <LIBFC_Init+0x48>
317a: 40 93 04 01 sts 0x0104, r20
317e: 80 91 eb 02 lds r24, 0x02EB
3182: 88 23 and r24, r24
3184: 19 f4 brne .+6 ; 0x318c <LIBFC_Init+0x7a>
3186: cb de rcall .-618 ; 0x2f1e <LIBFC_GetCPUType>
3188: 80 93 eb 02 sts 0x02EB, r24
318c: 81 ee ldi r24, 0xE1 ; 225
318e: 91 e1 ldi r25, 0x11 ; 17
3190: 90 93 56 06 sts 0x0656, r25
3194: 80 93 55 06 sts 0x0655, r24
3198: 80 91 04 01 lds r24, 0x0104
319c: 83 34 cpi r24, 0x43 ; 67
319e: 59 f0 breq .+22 ; 0x31b6 <LIBFC_Init+0xa4>
31a0: 88 e1 ldi r24, 0x18 ; 24
31a2: 90 e0 ldi r25, 0x00 ; 0
31a4: 29 e2 ldi r18, 0x29 ; 41
31a6: 0f b6 in r0, 0x3f ; 63
31a8: f8 94 cli
31aa: a8 95 wdr
31ac: 80 93 60 00 sts 0x0060, r24
31b0: 0f be out 0x3f, r0 ; 63
31b2: 20 93 60 00 sts 0x0060, r18
31b6: 07 30 cpi r16, 0x07 ; 7
31b8: 91 f0 breq .+36 ; 0x31de <LIBFC_Init+0xcc>
31ba: 83 e3 ldi r24, 0x33 ; 51
31bc: 98 e1 ldi r25, 0x18 ; 24
31be: 9f 93 push r25
31c0: 8f 93 push r24
31c2: 8c e9 ldi r24, 0x9C ; 156
31c4: 96 e9 ldi r25, 0x96 ; 150
31c6: 9f 93 push r25
31c8: 8f 93 push r24
31ca: e0 91 55 06 lds r30, 0x0655
31ce: f0 91 56 06 lds r31, 0x0656
31d2: 09 95 icall
31d4: 0f 90 pop r0
31d6: 0f 90 pop r0
31d8: 0f 90 pop r0
31da: 0f 90 pop r0
31dc: ee cf rjmp .-36 ; 0x31ba <LIBFC_Init+0xa8>
31de: 80 91 54 01 lds r24, 0x0154
31e2: 89 31 cpi r24, 0x19 ; 25
31e4: 58 f1 brcs .+86 ; 0x323c <LIBFC_Init+0x12a>
31e6: 80 91 ea 02 lds r24, 0x02EA
31ea: 88 23 and r24, r24
31ec: a9 f4 brne .+42 ; 0x3218 <LIBFC_Init+0x106>
31ee: 80 e5 ldi r24, 0x50 ; 80
31f0: 98 e1 ldi r25, 0x18 ; 24
31f2: 9f 93 push r25
31f4: 8f 93 push r24
31f6: 8c e9 ldi r24, 0x9C ; 156
31f8: 96 e9 ldi r25, 0x96 ; 150
31fa: 9f 93 push r25
31fc: 8f 93 push r24
31fe: e0 91 55 06 lds r30, 0x0655
3202: f0 91 56 06 lds r31, 0x0656
3206: 09 95 icall
3208: 87 e1 ldi r24, 0x17 ; 23
320a: 80 93 54 01 sts 0x0154, r24
320e: 0f 90 pop r0
3210: 0f 90 pop r0
3212: 0f 90 pop r0
3214: 0f 90 pop r0
3216: 12 c0 rjmp .+36 ; 0x323c <LIBFC_Init+0x12a>
3218: 15 bc out 0x25, r1 ; 37
321a: 87 31 cpi r24, 0x17 ; 23
321c: 19 f4 brne .+6 ; 0x3224 <LIBFC_Init+0x112>
321e: 80 93 54 01 sts 0x0154, r24
3222: 06 c0 rjmp .+12 ; 0x3230 <LIBFC_Init+0x11e>
3224: 87 e0 ldi r24, 0x07 ; 7
3226: 80 93 0b 01 sts 0x010B, r24
322a: 86 e0 ldi r24, 0x06 ; 6
322c: 80 93 0a 01 sts 0x010A, r24
3230: e0 91 02 01 lds r30, 0x0102
3234: f0 91 03 01 lds r31, 0x0103
3238: 8d ef ldi r24, 0xFD ; 253
323a: 09 95 icall
323c: 0e 94 28 51 call 0xa250 ; 0xa250 <PrintLine>
3240: 81 e6 ldi r24, 0x61 ; 97
3242: 90 e0 ldi r25, 0x00 ; 0
3244: 9f 93 push r25
3246: 8f 93 push r24
3248: 88 e0 ldi r24, 0x08 ; 8
324a: 90 e0 ldi r25, 0x00 ; 0
324c: 9f 93 push r25
324e: 8f 93 push r24
3250: 82 e0 ldi r24, 0x02 ; 2
3252: 90 e0 ldi r25, 0x00 ; 0
3254: 9f 93 push r25
3256: 8f 93 push r24
3258: 80 91 54 01 lds r24, 0x0154
325c: 6a e0 ldi r22, 0x0A ; 10
325e: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
3262: 89 2f mov r24, r25
3264: 99 27 eor r25, r25
3266: 9f 93 push r25
3268: 8f 93 push r24
326a: 80 91 54 01 lds r24, 0x0154
326e: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
3272: 99 27 eor r25, r25
3274: 9f 93 push r25
3276: 8f 93 push r24
3278: 8a e8 ldi r24, 0x8A ; 138
327a: 98 e1 ldi r25, 0x18 ; 24
327c: 9f 93 push r25
327e: 8f 93 push r24
3280: 0c e9 ldi r16, 0x9C ; 156
3282: 16 e9 ldi r17, 0x96 ; 150
3284: 1f 93 push r17
3286: 0f 93 push r16
3288: e0 91 55 06 lds r30, 0x0655
328c: f0 91 56 06 lds r31, 0x0656
3290: 09 95 icall
3292: 88 e7 ldi r24, 0x78 ; 120
3294: 97 e1 ldi r25, 0x17 ; 23
3296: 9f 93 push r25
3298: 8f 93 push r24
329a: 1f 93 push r17
329c: 0f 93 push r16
329e: e0 91 55 06 lds r30, 0x0655
32a2: f0 91 56 06 lds r31, 0x0656
32a6: 09 95 icall
32a8: 80 e5 ldi r24, 0x50 ; 80
32aa: 97 e1 ldi r25, 0x17 ; 23
32ac: 9f 93 push r25
32ae: 8f 93 push r24
32b0: 1f 93 push r17
32b2: 0f 93 push r16
32b4: e0 91 55 06 lds r30, 0x0655
32b8: f0 91 56 06 lds r31, 0x0656
32bc: 09 95 icall
32be: 0e 94 28 51 call 0xa250 ; 0xa250 <PrintLine>
32c2: 83 ec ldi r24, 0xC3 ; 195
32c4: 80 93 81 00 sts 0x0081, r24
32c8: 80 91 6f 00 lds r24, 0x006F
32cc: 80 62 ori r24, 0x20 ; 32
32ce: 80 93 6f 00 sts 0x006F, r24
32d2: 8d b7 in r24, 0x3d ; 61
32d4: 9e b7 in r25, 0x3e ; 62
32d6: 46 96 adiw r24, 0x16 ; 22
32d8: 8d bf out 0x3d, r24 ; 61
32da: 1f 91 pop r17
32dc: 0f 91 pop r16
32de: 08 95 ret
 
000032e0 <LIBFC_CheckSettings>:
32e0: 80 91 83 05 lds r24, 0x0583
32e4: 8d 33 cpi r24, 0x3D ; 61
32e6: 38 f0 brcs .+14 ; 0x32f6 <LIBFC_CheckSettings+0x16>
32e8: 80 91 b4 08 lds r24, 0x08B4
32ec: 87 fd sbrc r24, 7
32ee: 03 c0 rjmp .+6 ; 0x32f6 <LIBFC_CheckSettings+0x16>
32f0: 8c e3 ldi r24, 0x3C ; 60
32f2: 80 93 83 05 sts 0x0583, r24
32f6: 80 91 31 05 lds r24, 0x0531
32fa: 88 23 and r24, r24
32fc: 31 f0 breq .+12 ; 0x330a <LIBFC_CheckSettings+0x2a>
32fe: 80 55 subi r24, 0x50 ; 80
3300: 85 36 cpi r24, 0x65 ; 101
3302: 18 f0 brcs .+6 ; 0x330a <LIBFC_CheckSettings+0x2a>
3304: 8f e7 ldi r24, 0x7F ; 127
3306: 80 93 31 05 sts 0x0531, r24
330a: 08 95 ret
 
0000330c <LIBFC_Polling>:
330c: 80 91 ec 02 lds r24, 0x02EC
3310: 88 23 and r24, r24
3312: 09 f4 brne .+2 ; 0x3316 <LIBFC_Polling+0xa>
3314: 85 c0 rjmp .+266 ; 0x3420 <LIBFC_Polling+0x114>
3316: 80 91 26 03 lds r24, 0x0326
331a: 81 50 subi r24, 0x01 ; 1
331c: 80 93 26 03 sts 0x0326, r24
3320: 88 23 and r24, r24
3322: 09 f0 breq .+2 ; 0x3326 <LIBFC_Polling+0x1a>
3324: 69 c0 rjmp .+210 ; 0x33f8 <LIBFC_Polling+0xec>
3326: 89 e1 ldi r24, 0x19 ; 25
3328: 80 93 26 03 sts 0x0326, r24
332c: 80 91 83 05 lds r24, 0x0583
3330: 8e 33 cpi r24, 0x3E ; 62
3332: 38 f0 brcs .+14 ; 0x3342 <LIBFC_Polling+0x36>
3334: 80 91 b4 08 lds r24, 0x08B4
3338: 87 fd sbrc r24, 7
333a: 03 c0 rjmp .+6 ; 0x3342 <LIBFC_Polling+0x36>
333c: 8d e3 ldi r24, 0x3D ; 61
333e: 80 93 83 05 sts 0x0583, r24
3342: 80 91 02 04 lds r24, 0x0402
3346: 82 38 cpi r24, 0x82 ; 130
3348: a0 f5 brcc .+104 ; 0x33b2 <LIBFC_Polling+0xa6>
334a: 80 91 ca 03 lds r24, 0x03CA
334e: 90 91 cb 03 lds r25, 0x03CB
3352: 80 5d subi r24, 0xD0 ; 208
3354: 97 40 sbci r25, 0x07 ; 7
3356: 20 f0 brcs .+8 ; 0x3360 <LIBFC_Polling+0x54>
3358: 80 91 19 05 lds r24, 0x0519
335c: 84 36 cpi r24, 0x64 ; 100
335e: 20 f4 brcc .+8 ; 0x3368 <LIBFC_Polling+0x5c>
3360: 10 92 28 03 sts 0x0328, r1
3364: 10 92 27 03 sts 0x0327, r1
3368: 20 91 27 03 lds r18, 0x0327
336c: 30 91 28 03 lds r19, 0x0328
3370: 21 15 cp r18, r1
3372: 31 05 cpc r19, r1
3374: b1 f1 breq .+108 ; 0x33e2 <LIBFC_Polling+0xd6>
3376: c9 01 movw r24, r18
3378: 01 97 sbiw r24, 0x01 ; 1
337a: 90 93 28 03 sts 0x0328, r25
337e: 80 93 27 03 sts 0x0327, r24
3382: 41 97 sbiw r24, 0x11 ; 17
3384: 98 f1 brcs .+102 ; 0x33ec <LIBFC_Polling+0xe0>
3386: 80 91 b4 08 lds r24, 0x08B4
338a: 84 ff sbrs r24, 4
338c: 2f c0 rjmp .+94 ; 0x33ec <LIBFC_Polling+0xe0>
338e: 80 91 c8 03 lds r24, 0x03C8
3392: 84 60 ori r24, 0x04 ; 4
3394: 80 93 c8 03 sts 0x03C8, r24
3398: 80 91 c2 08 lds r24, 0x08C2
339c: 87 ff sbrs r24, 7
339e: 26 c0 rjmp .+76 ; 0x33ec <LIBFC_Polling+0xe0>
33a0: 80 91 8b 04 lds r24, 0x048B
33a4: 88 23 and r24, r24
33a6: 11 f1 breq .+68 ; 0x33ec <LIBFC_Polling+0xe0>
33a8: 30 93 28 03 sts 0x0328, r19
33ac: 20 93 27 03 sts 0x0327, r18
33b0: 1d c0 rjmp .+58 ; 0x33ec <LIBFC_Polling+0xe0>
33b2: 80 91 02 04 lds r24, 0x0402
33b6: 85 3b cpi r24, 0xB5 ; 181
33b8: c8 f0 brcs .+50 ; 0x33ec <LIBFC_Polling+0xe0>
33ba: 90 91 83 05 lds r25, 0x0583
33be: 84 e1 ldi r24, 0x14 ; 20
33c0: 98 9f mul r25, r24
33c2: c0 01 movw r24, r0
33c4: 11 24 eor r1, r1
33c6: 40 96 adiw r24, 0x10 ; 16
33c8: 20 91 27 03 lds r18, 0x0327
33cc: 30 91 28 03 lds r19, 0x0328
33d0: 28 17 cp r18, r24
33d2: 39 07 cpc r19, r25
33d4: 30 f4 brcc .+12 ; 0x33e2 <LIBFC_Polling+0xd6>
33d6: 2f 5f subi r18, 0xFF ; 255
33d8: 3f 4f sbci r19, 0xFF ; 255
33da: 30 93 28 03 sts 0x0328, r19
33de: 20 93 27 03 sts 0x0327, r18
33e2: 80 91 c8 03 lds r24, 0x03C8
33e6: 8b 7f andi r24, 0xFB ; 251
33e8: 80 93 c8 03 sts 0x03C8, r24
33ec: 80 91 04 01 lds r24, 0x0104
33f0: 83 34 cpi r24, 0x43 ; 67
33f2: 11 f0 breq .+4 ; 0x33f8 <LIBFC_Polling+0xec>
33f4: 10 92 ec 02 sts 0x02EC, r1
33f8: 90 91 05 01 lds r25, 0x0105
33fc: 96 30 cpi r25, 0x06 ; 6
33fe: 09 f4 brne .+2 ; 0x3402 <LIBFC_Polling+0xf6>
3400: cf cb rjmp .-2146 ; 0x2ba0 <HoTT_Polling>
3402: 80 91 09 01 lds r24, 0x0109
3406: 88 23 and r24, r24
3408: 21 f0 breq .+8 ; 0x3412 <LIBFC_Polling+0x106>
340a: 81 50 subi r24, 0x01 ; 1
340c: 80 93 09 01 sts 0x0109, r24
3410: 08 95 ret
3412: 8b e4 ldi r24, 0x4B ; 75
3414: 80 93 09 01 sts 0x0109, r24
3418: 94 30 cpi r25, 0x04 ; 4
341a: 11 f4 brne .+4 ; 0x3420 <LIBFC_Polling+0x114>
341c: 0c 94 44 11 jmp 0x2288 ; 0x2288 <a48784362857632195659>
3420: 08 95 ret
 
00003422 <__vector_28>:
3422: 1f 92 push r1
3424: 0f 92 push r0
3426: 0f b6 in r0, 0x3f ; 63
3428: 0f 92 push r0
342a: 11 24 eor r1, r1
342c: 2f 93 push r18
342e: 3f 93 push r19
3430: 4f 93 push r20
3432: 5f 93 push r21
3434: 6f 93 push r22
3436: 7f 93 push r23
3438: 8f 93 push r24
343a: 9f 93 push r25
343c: af 93 push r26
343e: bf 93 push r27
3440: ef 93 push r30
3442: ff 93 push r31
3444: 90 91 ce 00 lds r25, 0x00CE
3448: 80 91 ea 04 lds r24, 0x04EA
344c: 88 23 and r24, r24
344e: b9 f0 breq .+46 ; 0x347e <__vector_28+0x5c>
3450: 90 93 c6 00 sts 0x00C6, r25
3454: 80 91 ea 04 lds r24, 0x04EA
3458: 82 30 cpi r24, 0x02 ; 2
345a: 09 f0 breq .+2 ; 0x345e <__vector_28+0x3c>
345c: 3e c0 rjmp .+124 ; 0x34da <__vector_28+0xb8>
345e: 9f 3f cpi r25, 0xFF ; 255
3460: e1 f5 brne .+120 ; 0x34da <__vector_28+0xb8>
3462: 8f ef ldi r24, 0xFF ; 255
3464: 94 e3 ldi r25, 0x34 ; 52
3466: ac e0 ldi r26, 0x0C ; 12
3468: b0 e0 ldi r27, 0x00 ; 0
346a: c2 97 sbiw r24, 0x32 ; 50
346c: a1 09 sbc r26, r1
346e: b1 09 sbc r27, r1
3470: b7 ff sbrs r27, 7
3472: fb cf rjmp .-10 ; 0x346a <__vector_28+0x48>
3474: 80 91 69 0a lds r24, 0x0A69
3478: 80 93 ce 00 sts 0x00CE, r24
347c: 2e c0 rjmp .+92 ; 0x34da <__vector_28+0xb8>
347e: 20 91 05 01 lds r18, 0x0105
3482: 82 2f mov r24, r18
3484: 81 50 subi r24, 0x01 ; 1
3486: 83 30 cpi r24, 0x03 ; 3
3488: 20 f4 brcc .+8 ; 0x3492 <__vector_28+0x70>
348a: 89 2f mov r24, r25
348c: 0e 94 df 80 call 0x101be ; 0x101be <SpektrumParser>
3490: 24 c0 rjmp .+72 ; 0x34da <__vector_28+0xb8>
3492: 24 30 cpi r18, 0x04 ; 4
3494: 21 f4 brne .+8 ; 0x349e <__vector_28+0x7c>
3496: 89 2f mov r24, r25
3498: 0e 94 59 0f call 0x1eb2 ; 0x1eb2 <KLNMIOHMUHG76GFGr43r3>
349c: 1e c0 rjmp .+60 ; 0x34da <__vector_28+0xb8>
349e: 28 30 cpi r18, 0x08 ; 8
34a0: 21 f4 brne .+8 ; 0x34aa <__vector_28+0x88>
34a2: 89 2f mov r24, r25
34a4: 0e 94 84 99 call 0x13308 ; 0x13308 <User_RX_Parser>
34a8: 18 c0 rjmp .+48 ; 0x34da <__vector_28+0xb8>
34aa: 80 91 54 01 lds r24, 0x0154
34ae: 89 31 cpi r24, 0x19 ; 25
34b0: 20 f0 brcs .+8 ; 0x34ba <__vector_28+0x98>
34b2: 80 91 ea 02 lds r24, 0x02EA
34b6: 88 23 and r24, r24
34b8: 81 f0 breq .+32 ; 0x34da <__vector_28+0xb8>
34ba: 25 30 cpi r18, 0x05 ; 5
34bc: 21 f4 brne .+8 ; 0x34c6 <__vector_28+0xa4>
34be: 89 2f mov r24, r25
34c0: 0e 94 9e 0e call 0x1d3c ; 0x1d3c <FGtj76uzh56z3grEg5t45>
34c4: 0a c0 rjmp .+20 ; 0x34da <__vector_28+0xb8>
34c6: 26 30 cpi r18, 0x06 ; 6
34c8: 19 f4 brne .+6 ; 0x34d0 <__vector_28+0xae>
34ca: 89 2f mov r24, r25
34cc: 30 db rcall .-2464 ; 0x2b2e <HoTT_Parser>
34ce: 05 c0 rjmp .+10 ; 0x34da <__vector_28+0xb8>
34d0: 27 30 cpi r18, 0x07 ; 7
34d2: 19 f4 brne .+6 ; 0x34da <__vector_28+0xb8>
34d4: 89 2f mov r24, r25
34d6: 0e 94 a7 7f call 0xff4e ; 0xff4e <SbusParser>
34da: ff 91 pop r31
34dc: ef 91 pop r30
34de: bf 91 pop r27
34e0: af 91 pop r26
34e2: 9f 91 pop r25
34e4: 8f 91 pop r24
34e6: 7f 91 pop r23
34e8: 6f 91 pop r22
34ea: 5f 91 pop r21
34ec: 4f 91 pop r20
34ee: 3f 91 pop r19
34f0: 2f 91 pop r18
34f2: 0f 90 pop r0
34f4: 0f be out 0x3f, r0 ; 63
34f6: 0f 90 pop r0
34f8: 1f 90 pop r1
34fa: 18 95 reti
 
000034fc <ADC_Init>:
34fc: 10 92 7c 00 sts 0x007C, r1
3500: 8f ec ldi r24, 0xCF ; 207
3502: 80 93 7a 00 sts 0x007A, r24
3506: 08 95 ret
 
00003508 <CalcExpandBaroStep>:
3508: 80 91 c0 03 lds r24, 0x03C0
350c: 20 91 0d 01 lds r18, 0x010D
3510: 30 91 0e 01 lds r19, 0x010E
3514: a0 91 56 03 lds r26, 0x0356
3518: 88 23 and r24, r24
351a: 31 f0 breq .+12 ; 0x3528 <CalcExpandBaroStep+0x20>
351c: bb 27 eor r27, r27
351e: a7 fd sbrc r26, 7
3520: b0 95 com r27
3522: 0e 94 3f 9b call 0x1367e ; 0x1367e <__usmulhisi3>
3526: 0e c0 rjmp .+28 ; 0x3544 <CalcExpandBaroStep+0x3c>
3528: 84 e0 ldi r24, 0x04 ; 4
352a: 22 0f add r18, r18
352c: 33 1f adc r19, r19
352e: 8a 95 dec r24
3530: e1 f7 brne .-8 ; 0x352a <CalcExpandBaroStep+0x22>
3532: bb 27 eor r27, r27
3534: a7 fd sbrc r26, 7
3536: b0 95 com r27
3538: 0e 94 3f 9b call 0x1367e ; 0x1367e <__usmulhisi3>
353c: 64 50 subi r22, 0x04 ; 4
353e: 71 09 sbc r23, r1
3540: 81 09 sbc r24, r1
3542: 91 09 sbc r25, r1
3544: 60 93 4e 03 sts 0x034E, r22
3548: 70 93 4f 03 sts 0x034F, r23
354c: 80 93 50 03 sts 0x0350, r24
3550: 90 93 51 03 sts 0x0351, r25
3554: 08 95 ret
 
00003556 <SucheLuftruckOffset>:
3556: ef 92 push r14
3558: ff 92 push r15
355a: 0f 93 push r16
355c: 1f 93 push r17
355e: cf 93 push r28
3560: df 93 push r29
3562: 10 92 56 03 sts 0x0356, r1
3566: d0 df rcall .-96 ; 0x3508 <CalcExpandBaroStep>
3568: 83 e0 ldi r24, 0x03 ; 3
356a: 90 e0 ldi r25, 0x00 ; 0
356c: 0e 94 43 23 call 0x4686 ; 0x4686 <GetParamByte>
3570: c8 2f mov r28, r24
3572: d0 e0 ldi r29, 0x00 ; 0
3574: c0 3f cpi r28, 0xF0 ; 240
3576: d1 05 cpc r29, r1
3578: 08 f4 brcc .+2 ; 0x357c <SucheLuftruckOffset+0x26>
357a: 2a 96 adiw r28, 0x0a ; 10
357c: c7 bd out 0x27, r28 ; 39
357e: 8c 2f mov r24, r28
3580: 80 95 com r24
3582: 88 bd out 0x28, r24 ; 40
3584: 86 e9 ldi r24, 0x96 ; 150
3586: 90 e0 ldi r25, 0x00 ; 0
3588: 0e 94 5a 88 call 0x110b4 ; 0x110b4 <Delay_ms_Mess>
358c: 80 91 10 01 lds r24, 0x0110
3590: 90 91 11 01 lds r25, 0x0111
3594: 81 32 cpi r24, 0x21 ; 33
3596: 93 40 sbci r25, 0x03 ; 3
3598: 10 f0 brcs .+4 ; 0x359e <SucheLuftruckOffset+0x48>
359a: c0 ef ldi r28, 0xF0 ; 240
359c: d0 e0 ldi r29, 0x00 ; 0
359e: 00 e8 ldi r16, 0x80 ; 128
35a0: 11 e0 ldi r17, 0x01 ; 1
35a2: 9c e9 ldi r25, 0x9C ; 156
35a4: e9 2e mov r14, r25
35a6: 96 e9 ldi r25, 0x96 ; 150
35a8: f9 2e mov r15, r25
35aa: 8c 2f mov r24, r28
35ac: c7 bd out 0x27, r28 ; 39
35ae: 80 95 com r24
35b0: 88 bd out 0x28, r24 ; 40
35b2: 84 e6 ldi r24, 0x64 ; 100
35b4: 90 e0 ldi r25, 0x00 ; 0
35b6: 0e 94 5a 88 call 0x110b4 ; 0x110b4 <Delay_ms_Mess>
35ba: 1f 93 push r17
35bc: 0f 93 push r16
35be: ff 92 push r15
35c0: ef 92 push r14
35c2: e0 91 55 06 lds r30, 0x0655
35c6: f0 91 56 06 lds r31, 0x0656
35ca: 09 95 icall
35cc: 80 91 10 01 lds r24, 0x0110
35d0: 90 91 11 01 lds r25, 0x0111
35d4: 0f 90 pop r0
35d6: 0f 90 pop r0
35d8: 0f 90 pop r0
35da: 0f 90 pop r0
35dc: 81 32 cpi r24, 0x21 ; 33
35de: 93 40 sbci r25, 0x03 ; 3
35e0: 20 f4 brcc .+8 ; 0x35ea <SucheLuftruckOffset+0x94>
35e2: 21 97 sbiw r28, 0x01 ; 1
35e4: c6 30 cpi r28, 0x06 ; 6
35e6: d1 05 cpc r29, r1
35e8: 00 f7 brcc .-64 ; 0x35aa <SucheLuftruckOffset+0x54>
35ea: c0 93 10 05 sts 0x0510, r28
35ee: 6c 2f mov r22, r28
35f0: 83 e0 ldi r24, 0x03 ; 3
35f2: 90 e0 ldi r25, 0x00 ; 0
35f4: 0e 94 45 23 call 0x468a ; 0x468a <SetParamByte>
35f8: 80 91 28 05 lds r24, 0x0528
35fc: 80 ff sbrs r24, 0
35fe: 0a c0 rjmp .+20 ; 0x3614 <SucheLuftruckOffset+0xbe>
3600: 80 91 10 05 lds r24, 0x0510
3604: 8a 50 subi r24, 0x0A ; 10
3606: 8c 3d cpi r24, 0xDC ; 220
3608: 28 f0 brcs .+10 ; 0x3614 <SucheLuftruckOffset+0xbe>
360a: 80 91 3f 0a lds r24, 0x0A3F
360e: 80 64 ori r24, 0x40 ; 64
3610: 80 93 3f 0a sts 0x0A3F, r24
3614: 80 e1 ldi r24, 0x10 ; 16
3616: 80 93 0c 01 sts 0x010C, r24
361a: 80 91 c0 03 lds r24, 0x03C0
361e: 88 23 and r24, r24
3620: e1 f0 breq .+56 ; 0x365a <SucheLuftruckOffset+0x104>
3622: 80 91 54 01 lds r24, 0x0154
3626: 87 31 cpi r24, 0x17 ; 23
3628: 50 f4 brcc .+20 ; 0x363e <SucheLuftruckOffset+0xe8>
362a: cc 38 cpi r28, 0x8C ; 140
362c: d1 05 cpc r29, r1
362e: a8 f4 brcc .+42 ; 0x365a <SucheLuftruckOffset+0x104>
3630: 80 ea ldi r24, 0xA0 ; 160
3632: 90 e0 ldi r25, 0x00 ; 0
3634: 8c 1b sub r24, r28
3636: 9d 0b sbc r25, r29
3638: 6a e1 ldi r22, 0x1A ; 26
363a: 70 e0 ldi r23, 0x00 ; 0
363c: 09 c0 rjmp .+18 ; 0x3650 <SucheLuftruckOffset+0xfa>
363e: ca 3a cpi r28, 0xAA ; 170
3640: d1 05 cpc r29, r1
3642: 58 f4 brcc .+22 ; 0x365a <SucheLuftruckOffset+0x104>
3644: 8c eb ldi r24, 0xBC ; 188
3646: 90 e0 ldi r25, 0x00 ; 0
3648: 8c 1b sub r24, r28
364a: 9d 0b sbc r25, r29
364c: 63 e1 ldi r22, 0x13 ; 19
364e: 70 e0 ldi r23, 0x00 ; 0
3650: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
3654: 60 5f subi r22, 0xF0 ; 240
3656: 60 93 0c 01 sts 0x010C, r22
365a: 20 91 10 01 lds r18, 0x0110
365e: 30 91 11 01 lds r19, 0x0111
3662: 40 91 0c 01 lds r20, 0x010C
3666: 42 9f mul r20, r18
3668: c0 01 movw r24, r0
366a: 43 9f mul r20, r19
366c: 90 0d add r25, r0
366e: 11 24 eor r1, r1
3670: a0 e0 ldi r26, 0x00 ; 0
3672: b0 e0 ldi r27, 0x00 ; 0
3674: 80 93 12 01 sts 0x0112, r24
3678: 90 93 13 01 sts 0x0113, r25
367c: a0 93 14 01 sts 0x0114, r26
3680: b0 93 15 01 sts 0x0115, r27
3684: 8c e2 ldi r24, 0x2C ; 44
3686: 91 e0 ldi r25, 0x01 ; 1
3688: df 91 pop r29
368a: cf 91 pop r28
368c: 1f 91 pop r17
368e: 0f 91 pop r16
3690: ff 90 pop r15
3692: ef 90 pop r14
3694: 0c 94 5a 88 jmp 0x110b4 ; 0x110b4 <Delay_ms_Mess>
 
00003698 <__vector_24>:
3698: 1f 92 push r1
369a: 0f 92 push r0
369c: 0f b6 in r0, 0x3f ; 63
369e: 0f 92 push r0
36a0: 11 24 eor r1, r1
36a2: 0b b6 in r0, 0x3b ; 59
36a4: 0f 92 push r0
36a6: 4f 92 push r4
36a8: 5f 92 push r5
36aa: 6f 92 push r6
36ac: 7f 92 push r7
36ae: 8f 92 push r8
36b0: 9f 92 push r9
36b2: af 92 push r10
36b4: bf 92 push r11
36b6: cf 92 push r12
36b8: df 92 push r13
36ba: ef 92 push r14
36bc: ff 92 push r15
36be: 2f 93 push r18
36c0: 3f 93 push r19
36c2: 4f 93 push r20
36c4: 5f 93 push r21
36c6: 6f 93 push r22
36c8: 7f 93 push r23
36ca: 8f 93 push r24
36cc: 9f 93 push r25
36ce: af 93 push r26
36d0: bf 93 push r27
36d2: ef 93 push r30
36d4: ff 93 push r31
36d6: 80 91 41 03 lds r24, 0x0341
36da: 91 e0 ldi r25, 0x01 ; 1
36dc: 98 0f add r25, r24
36de: 90 93 41 03 sts 0x0341, r25
36e2: 90 e0 ldi r25, 0x00 ; 0
36e4: 82 31 cpi r24, 0x12 ; 18
36e6: 91 05 cpc r25, r1
36e8: 08 f0 brcs .+2 ; 0x36ec <__vector_24+0x54>
36ea: 92 c4 rjmp .+2340 ; 0x4010 <__vector_24+0x978>
36ec: fc 01 movw r30, r24
36ee: ea 5b subi r30, 0xBA ; 186
36f0: ff 4f sbci r31, 0xFF ; 255
36f2: 0c 94 24 9b jmp 0x13648 ; 0x13648 <__tablejump2__>
36f6: 80 91 78 00 lds r24, 0x0078
36fa: 90 91 79 00 lds r25, 0x0079
36fe: 46 c0 rjmp .+140 ; 0x378c <__vector_24+0xf4>
3700: 80 91 78 00 lds r24, 0x0078
3704: 90 91 79 00 lds r25, 0x0079
3708: cc c1 rjmp .+920 ; 0x3aa2 <__vector_24+0x40a>
370a: 80 91 78 00 lds r24, 0x0078
370e: 90 91 79 00 lds r25, 0x0079
3712: 90 93 3b 03 sts 0x033B, r25
3716: 80 93 3a 03 sts 0x033A, r24
371a: dc c1 rjmp .+952 ; 0x3ad4 <__vector_24+0x43c>
371c: 20 91 78 00 lds r18, 0x0078
3720: 30 91 79 00 lds r19, 0x0079
3724: 80 91 49 04 lds r24, 0x0449
3728: 90 91 4a 04 lds r25, 0x044A
372c: 82 1b sub r24, r18
372e: 93 0b sbc r25, r19
3730: 90 93 03 05 sts 0x0503, r25
3734: 80 93 02 05 sts 0x0502, r24
3738: 80 91 02 05 lds r24, 0x0502
373c: 90 91 03 05 lds r25, 0x0503
3740: 90 93 39 03 sts 0x0339, r25
3744: 80 93 38 03 sts 0x0338, r24
3748: e4 c1 rjmp .+968 ; 0x3b12 <__vector_24+0x47a>
374a: 80 91 78 00 lds r24, 0x0078
374e: 90 91 79 00 lds r25, 0x0079
3752: 20 91 4b 04 lds r18, 0x044B
3756: 30 91 4c 04 lds r19, 0x044C
375a: 82 1b sub r24, r18
375c: 93 0b sbc r25, r19
375e: 90 93 0f 05 sts 0x050F, r25
3762: 80 93 0e 05 sts 0x050E, r24
3766: 80 91 0e 05 lds r24, 0x050E
376a: 90 91 0f 05 lds r25, 0x050F
376e: 90 93 37 03 sts 0x0337, r25
3772: 80 93 36 03 sts 0x0336, r24
3776: 4e c4 rjmp .+2204 ; 0x4014 <__vector_24+0x97c>
3778: 20 91 78 00 lds r18, 0x0078
377c: 30 91 79 00 lds r19, 0x0079
3780: 80 91 3f 03 lds r24, 0x033F
3784: 90 91 40 03 lds r25, 0x0340
3788: 82 0f add r24, r18
378a: 93 1f adc r25, r19
378c: 90 93 40 03 sts 0x0340, r25
3790: 80 93 3f 03 sts 0x033F, r24
3794: 2a c2 rjmp .+1108 ; 0x3bea <__vector_24+0x552>
3796: 20 91 78 00 lds r18, 0x0078
379a: 30 91 79 00 lds r19, 0x0079
379e: 80 91 3c 03 lds r24, 0x033C
37a2: 90 91 3d 03 lds r25, 0x033D
37a6: 82 0f add r24, r18
37a8: 93 1f adc r25, r19
37aa: 90 93 3d 03 sts 0x033D, r25
37ae: 80 93 3c 03 sts 0x033C, r24
37b2: 84 e0 ldi r24, 0x04 ; 4
37b4: 30 c4 rjmp .+2144 ; 0x4016 <__vector_24+0x97e>
37b6: 80 91 95 05 lds r24, 0x0595
37ba: 83 ff sbrs r24, 3
37bc: 1e c0 rjmp .+60 ; 0x37fa <__vector_24+0x162>
37be: 20 91 1a 01 lds r18, 0x011A
37c2: 30 91 1b 01 lds r19, 0x011B
37c6: 40 91 78 00 lds r20, 0x0078
37ca: 50 91 79 00 lds r21, 0x0079
37ce: 6b e0 ldi r22, 0x0B ; 11
37d0: 64 9f mul r22, r20
37d2: c0 01 movw r24, r0
37d4: 65 9f mul r22, r21
37d6: 90 0d add r25, r0
37d8: 11 24 eor r1, r1
37da: 6e e1 ldi r22, 0x1E ; 30
37dc: 70 e0 ldi r23, 0x00 ; 0
37de: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
37e2: c9 01 movw r24, r18
37e4: 88 0f add r24, r24
37e6: 99 1f adc r25, r25
37e8: 82 0f add r24, r18
37ea: 93 1f adc r25, r19
37ec: 68 0f add r22, r24
37ee: 79 1f adc r23, r25
37f0: 76 95 lsr r23
37f2: 67 95 ror r22
37f4: 76 95 lsr r23
37f6: 67 95 ror r22
37f8: 34 c0 rjmp .+104 ; 0x3862 <__vector_24+0x1ca>
37fa: 80 91 34 03 lds r24, 0x0334
37fe: 90 91 35 03 lds r25, 0x0335
3802: 89 2b or r24, r25
3804: 71 f4 brne .+28 ; 0x3822 <__vector_24+0x18a>
3806: 20 91 78 00 lds r18, 0x0078
380a: 30 91 79 00 lds r19, 0x0079
380e: 4a e0 ldi r20, 0x0A ; 10
3810: 42 9f mul r20, r18
3812: c0 01 movw r24, r0
3814: 43 9f mul r20, r19
3816: 90 0d add r25, r0
3818: 11 24 eor r1, r1
381a: 90 93 35 03 sts 0x0335, r25
381e: 80 93 34 03 sts 0x0334, r24
3822: 80 91 34 03 lds r24, 0x0334
3826: 90 91 35 03 lds r25, 0x0335
382a: 40 91 78 00 lds r20, 0x0078
382e: 50 91 79 00 lds r21, 0x0079
3832: 6a e0 ldi r22, 0x0A ; 10
3834: 64 9f mul r22, r20
3836: 90 01 movw r18, r0
3838: 65 9f mul r22, r21
383a: 30 0d add r19, r0
383c: 11 24 eor r1, r1
383e: 28 17 cp r18, r24
3840: 39 07 cpc r19, r25
3842: 10 f0 brcs .+4 ; 0x3848 <__vector_24+0x1b0>
3844: 02 96 adiw r24, 0x02 ; 2
3846: 01 c0 rjmp .+2 ; 0x384a <__vector_24+0x1b2>
3848: 02 97 sbiw r24, 0x02 ; 2
384a: 90 93 35 03 sts 0x0335, r25
384e: 80 93 34 03 sts 0x0334, r24
3852: 80 91 34 03 lds r24, 0x0334
3856: 90 91 35 03 lds r25, 0x0335
385a: 6f e1 ldi r22, 0x1F ; 31
385c: 70 e0 ldi r23, 0x00 ; 0
385e: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
3862: 70 93 1b 01 sts 0x011B, r23
3866: 60 93 1a 01 sts 0x011A, r22
386a: 85 e0 ldi r24, 0x05 ; 5
386c: d4 c3 rjmp .+1960 ; 0x4016 <__vector_24+0x97e>
386e: 80 91 78 00 lds r24, 0x0078
3872: 90 91 79 00 lds r25, 0x0079
3876: 90 93 05 05 sts 0x0505, r25
387a: 80 93 04 05 sts 0x0504, r24
387e: 20 91 04 05 lds r18, 0x0504
3882: 30 91 05 05 lds r19, 0x0505
3886: 80 91 45 04 lds r24, 0x0445
388a: 90 91 46 04 lds r25, 0x0446
388e: 40 91 44 04 lds r20, 0x0444
3892: 28 1b sub r18, r24
3894: 39 0b sbc r19, r25
3896: 24 1b sub r18, r20
3898: 31 09 sbc r19, r1
389a: 47 fd sbrc r20, 7
389c: 33 95 inc r19
389e: 30 93 5c 03 sts 0x035C, r19
38a2: 20 93 5b 03 sts 0x035B, r18
38a6: 20 91 c0 03 lds r18, 0x03C0
38aa: 21 11 cpse r18, r1
38ac: 6e c0 rjmp .+220 ; 0x398a <__vector_24+0x2f2>
38ae: 20 91 5b 03 lds r18, 0x035B
38b2: 30 91 5c 03 lds r19, 0x035C
38b6: 22 30 cpi r18, 0x02 ; 2
38b8: 31 05 cpc r19, r1
38ba: 6c f1 brlt .+90 ; 0x3916 <__vector_24+0x27e>
38bc: 8e 3e cpi r24, 0xEE ; 238
38be: 22 e0 ldi r18, 0x02 ; 2
38c0: 92 07 cpc r25, r18
38c2: 0c f0 brlt .+2 ; 0x38c6 <__vector_24+0x22e>
38c4: a5 c0 rjmp .+330 ; 0x3a10 <__vector_24+0x378>
38c6: 20 91 32 03 lds r18, 0x0332
38ca: 30 91 33 03 lds r19, 0x0333
38ce: a9 01 movw r20, r18
38d0: 4b 5f subi r20, 0xFB ; 251
38d2: 5f 4f sbci r21, 0xFF ; 255
38d4: 50 93 33 03 sts 0x0333, r21
38d8: 40 93 32 03 sts 0x0332, r20
38dc: 40 91 ca 03 lds r20, 0x03CA
38e0: 50 91 cb 03 lds r21, 0x03CB
38e4: 44 3f cpi r20, 0xF4 ; 244
38e6: 51 40 sbci r21, 0x01 ; 1
38e8: 30 f4 brcc .+12 ; 0x38f6 <__vector_24+0x25e>
38ea: 21 5f subi r18, 0xF1 ; 241
38ec: 3f 4f sbci r19, 0xFF ; 255
38ee: 30 93 33 03 sts 0x0333, r19
38f2: 20 93 32 03 sts 0x0332, r18
38f6: 20 91 32 03 lds r18, 0x0332
38fa: 30 91 33 03 lds r19, 0x0333
38fe: 25 36 cpi r18, 0x65 ; 101
3900: 31 05 cpc r19, r1
3902: 0c f4 brge .+2 ; 0x3906 <__vector_24+0x26e>
3904: 85 c0 rjmp .+266 ; 0x3a10 <__vector_24+0x378>
3906: 01 96 adiw r24, 0x01 ; 1
3908: 90 93 46 04 sts 0x0446, r25
390c: 80 93 45 04 sts 0x0445, r24
3910: 24 56 subi r18, 0x64 ; 100
3912: 31 09 sbc r19, r1
3914: 35 c0 rjmp .+106 ; 0x3980 <__vector_24+0x2e8>
3916: 20 91 5b 03 lds r18, 0x035B
391a: 30 91 5c 03 lds r19, 0x035C
391e: 2f 3f cpi r18, 0xFF ; 255
3920: 3f 4f sbci r19, 0xFF ; 255
3922: 0c f0 brlt .+2 ; 0x3926 <__vector_24+0x28e>
3924: 75 c0 rjmp .+234 ; 0x3a10 <__vector_24+0x378>
3926: 87 32 cpi r24, 0x27 ; 39
3928: 52 e0 ldi r21, 0x02 ; 2
392a: 95 07 cpc r25, r21
392c: 0c f4 brge .+2 ; 0x3930 <__vector_24+0x298>
392e: 70 c0 rjmp .+224 ; 0x3a10 <__vector_24+0x378>
3930: 20 91 32 03 lds r18, 0x0332
3934: 30 91 33 03 lds r19, 0x0333
3938: a9 01 movw r20, r18
393a: 45 50 subi r20, 0x05 ; 5
393c: 51 09 sbc r21, r1
393e: 50 93 33 03 sts 0x0333, r21
3942: 40 93 32 03 sts 0x0332, r20
3946: 40 91 ca 03 lds r20, 0x03CA
394a: 50 91 cb 03 lds r21, 0x03CB
394e: 44 3f cpi r20, 0xF4 ; 244
3950: 51 40 sbci r21, 0x01 ; 1
3952: 30 f4 brcc .+12 ; 0x3960 <__vector_24+0x2c8>
3954: 2f 50 subi r18, 0x0F ; 15
3956: 31 09 sbc r19, r1
3958: 30 93 33 03 sts 0x0333, r19
395c: 20 93 32 03 sts 0x0332, r18
3960: 20 91 32 03 lds r18, 0x0332
3964: 30 91 33 03 lds r19, 0x0333
3968: 2c 39 cpi r18, 0x9C ; 156
396a: 4f ef ldi r20, 0xFF ; 255
396c: 34 07 cpc r19, r20
396e: 0c f0 brlt .+2 ; 0x3972 <__vector_24+0x2da>
3970: 4f c0 rjmp .+158 ; 0x3a10 <__vector_24+0x378>
3972: 01 97 sbiw r24, 0x01 ; 1
3974: 90 93 46 04 sts 0x0446, r25
3978: 80 93 45 04 sts 0x0445, r24
397c: 2c 59 subi r18, 0x9C ; 156
397e: 3f 4f sbci r19, 0xFF ; 255
3980: 30 93 33 03 sts 0x0333, r19
3984: 20 93 32 03 sts 0x0332, r18
3988: 43 c0 rjmp .+134 ; 0x3a10 <__vector_24+0x378>
398a: 80 91 0a 06 lds r24, 0x060A
398e: 90 91 0b 06 lds r25, 0x060B
3992: 8f 3c cpi r24, 0xCF ; 207
3994: 9f 41 sbci r25, 0x1F ; 31
3996: e4 f1 brlt .+120 ; 0x3a10 <__vector_24+0x378>
3998: 80 91 5b 03 lds r24, 0x035B
399c: 90 91 5c 03 lds r25, 0x035C
39a0: 02 97 sbiw r24, 0x02 ; 2
39a2: b4 f0 brlt .+44 ; 0x39d0 <__vector_24+0x338>
39a4: 80 91 32 03 lds r24, 0x0332
39a8: 90 91 33 03 lds r25, 0x0333
39ac: 9c 01 movw r18, r24
39ae: 2f 5f subi r18, 0xFF ; 255
39b0: 3f 4f sbci r19, 0xFF ; 255
39b2: 30 93 33 03 sts 0x0333, r19
39b6: 20 93 32 03 sts 0x0332, r18
39ba: 29 38 cpi r18, 0x89 ; 137
39bc: 33 41 sbci r19, 0x13 ; 19
39be: 44 f1 brlt .+80 ; 0x3a10 <__vector_24+0x378>
39c0: 46 30 cpi r20, 0x06 ; 6
39c2: 1c f4 brge .+6 ; 0x39ca <__vector_24+0x332>
39c4: 4f 5f subi r20, 0xFF ; 255
39c6: 40 93 44 04 sts 0x0444, r20
39ca: 87 58 subi r24, 0x87 ; 135
39cc: 93 41 sbci r25, 0x13 ; 19
39ce: 1c c0 rjmp .+56 ; 0x3a08 <__vector_24+0x370>
39d0: 80 91 5b 03 lds r24, 0x035B
39d4: 90 91 5c 03 lds r25, 0x035C
39d8: 8f 3f cpi r24, 0xFF ; 255
39da: 9f 4f sbci r25, 0xFF ; 255
39dc: cc f4 brge .+50 ; 0x3a10 <__vector_24+0x378>
39de: 80 91 32 03 lds r24, 0x0332
39e2: 90 91 33 03 lds r25, 0x0333
39e6: 9c 01 movw r18, r24
39e8: 21 50 subi r18, 0x01 ; 1
39ea: 31 09 sbc r19, r1
39ec: 30 93 33 03 sts 0x0333, r19
39f0: 20 93 32 03 sts 0x0332, r18
39f4: 28 37 cpi r18, 0x78 ; 120
39f6: 3c 4e sbci r19, 0xEC ; 236
39f8: 5c f4 brge .+22 ; 0x3a10 <__vector_24+0x378>
39fa: 4b 3f cpi r20, 0xFB ; 251
39fc: 1c f0 brlt .+6 ; 0x3a04 <__vector_24+0x36c>
39fe: 41 50 subi r20, 0x01 ; 1
3a00: 40 93 44 04 sts 0x0444, r20
3a04: 89 57 subi r24, 0x79 ; 121
3a06: 9c 4e sbci r25, 0xEC ; 236
3a08: 90 93 33 03 sts 0x0333, r25
3a0c: 80 93 32 03 sts 0x0332, r24
3a10: 80 91 1c 04 lds r24, 0x041C
3a14: 90 91 1d 04 lds r25, 0x041D
3a18: a0 91 1e 04 lds r26, 0x041E
3a1c: b0 91 1f 04 lds r27, 0x041F
3a20: 40 91 5b 03 lds r20, 0x035B
3a24: 50 91 5c 03 lds r21, 0x035C
3a28: 66 27 eor r22, r22
3a2a: 57 fd sbrc r21, 7
3a2c: 60 95 com r22
3a2e: 76 2f mov r23, r22
3a30: 84 0f add r24, r20
3a32: 95 1f adc r25, r21
3a34: a6 1f adc r26, r22
3a36: b7 1f adc r27, r23
3a38: 80 93 1c 04 sts 0x041C, r24
3a3c: 90 93 1d 04 sts 0x041D, r25
3a40: a0 93 1e 04 sts 0x041E, r26
3a44: b0 93 1f 04 sts 0x041F, r27
3a48: c0 90 1c 04 lds r12, 0x041C
3a4c: d0 90 1d 04 lds r13, 0x041D
3a50: e0 90 1e 04 lds r14, 0x041E
3a54: f0 90 1f 04 lds r15, 0x041F
3a58: 60 91 1c 04 lds r22, 0x041C
3a5c: 70 91 1d 04 lds r23, 0x041D
3a60: 80 91 1e 04 lds r24, 0x041E
3a64: 90 91 1f 04 lds r25, 0x041F
3a68: 20 e0 ldi r18, 0x00 ; 0
3a6a: 34 e0 ldi r19, 0x04 ; 4
3a6c: 40 e0 ldi r20, 0x00 ; 0
3a6e: 50 e0 ldi r21, 0x00 ; 0
3a70: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
3a74: c2 1a sub r12, r18
3a76: d3 0a sbc r13, r19
3a78: e4 0a sbc r14, r20
3a7a: f5 0a sbc r15, r21
3a7c: c0 92 1c 04 sts 0x041C, r12
3a80: d0 92 1d 04 sts 0x041D, r13
3a84: e0 92 1e 04 sts 0x041E, r14
3a88: f0 92 1f 04 sts 0x041F, r15
3a8c: fc c0 rjmp .+504 ; 0x3c86 <__vector_24+0x5ee>
3a8e: 20 91 78 00 lds r18, 0x0078
3a92: 30 91 79 00 lds r19, 0x0079
3a96: 80 91 3c 03 lds r24, 0x033C
3a9a: 90 91 3d 03 lds r25, 0x033D
3a9e: 82 0f add r24, r18
3aa0: 93 1f adc r25, r19
3aa2: 90 93 3d 03 sts 0x033D, r25
3aa6: 80 93 3c 03 sts 0x033C, r24
3aaa: 10 92 3e 03 sts 0x033E, r1
3aae: b5 c2 rjmp .+1386 ; 0x401a <__vector_24+0x982>
3ab0: 20 91 78 00 lds r18, 0x0078
3ab4: 30 91 79 00 lds r19, 0x0079
3ab8: 8f ef ldi r24, 0xFF ; 255
3aba: 97 e0 ldi r25, 0x07 ; 7
3abc: 82 1b sub r24, r18
3abe: 93 0b sbc r25, r19
3ac0: 20 91 3a 03 lds r18, 0x033A
3ac4: 30 91 3b 03 lds r19, 0x033B
3ac8: 82 1b sub r24, r18
3aca: 93 0b sbc r25, r19
3acc: 90 93 62 03 sts 0x0362, r25
3ad0: 80 93 61 03 sts 0x0361, r24
3ad4: 80 91 0b 01 lds r24, 0x010B
3ad8: 9e c2 rjmp .+1340 ; 0x4016 <__vector_24+0x97e>
3ada: 20 91 78 00 lds r18, 0x0078
3ade: 30 91 79 00 lds r19, 0x0079
3ae2: 80 91 49 04 lds r24, 0x0449
3ae6: 90 91 4a 04 lds r25, 0x044A
3aea: 82 1b sub r24, r18
3aec: 93 0b sbc r25, r19
3aee: 90 93 03 05 sts 0x0503, r25
3af2: 80 93 02 05 sts 0x0502, r24
3af6: 80 91 02 05 lds r24, 0x0502
3afa: 90 91 03 05 lds r25, 0x0503
3afe: 20 91 38 03 lds r18, 0x0338
3b02: 30 91 39 03 lds r19, 0x0339
3b06: 82 0f add r24, r18
3b08: 93 1f adc r25, r19
3b0a: 90 93 60 03 sts 0x0360, r25
3b0e: 80 93 5f 03 sts 0x035F, r24
3b12: 80 91 0a 01 lds r24, 0x010A
3b16: 7f c2 rjmp .+1278 ; 0x4016 <__vector_24+0x97e>
3b18: 80 91 78 00 lds r24, 0x0078
3b1c: 90 91 79 00 lds r25, 0x0079
3b20: 20 91 4b 04 lds r18, 0x044B
3b24: 30 91 4c 04 lds r19, 0x044C
3b28: 82 1b sub r24, r18
3b2a: 93 0b sbc r25, r19
3b2c: 90 93 0f 05 sts 0x050F, r25
3b30: 80 93 0e 05 sts 0x050E, r24
3b34: 80 91 0e 05 lds r24, 0x050E
3b38: 90 91 0f 05 lds r25, 0x050F
3b3c: 20 91 36 03 lds r18, 0x0336
3b40: 30 91 37 03 lds r19, 0x0337
3b44: 82 0f add r24, r18
3b46: 93 1f adc r25, r19
3b48: 90 93 5e 03 sts 0x035E, r25
3b4c: 80 93 5d 03 sts 0x035D, r24
3b50: 61 c2 rjmp .+1218 ; 0x4014 <__vector_24+0x97c>
3b52: 80 91 78 00 lds r24, 0x0078
3b56: 90 91 79 00 lds r25, 0x0079
3b5a: 20 91 3f 03 lds r18, 0x033F
3b5e: 30 91 40 03 lds r19, 0x0340
3b62: 82 0f add r24, r18
3b64: 93 1f adc r25, r19
3b66: 88 0f add r24, r24
3b68: 99 1f adc r25, r25
3b6a: 88 0f add r24, r24
3b6c: 99 1f adc r25, r25
3b6e: 90 93 40 03 sts 0x0340, r25
3b72: 80 93 3f 03 sts 0x033F, r24
3b76: 9c 01 movw r18, r24
3b78: 97 ff sbrs r25, 7
3b7a: 02 c0 rjmp .+4 ; 0x3b80 <__vector_24+0x4e8>
3b7c: 29 5f subi r18, 0xF9 ; 249
3b7e: 3f 4f sbci r19, 0xFF ; 255
3b80: b3 e0 ldi r27, 0x03 ; 3
3b82: 35 95 asr r19
3b84: 27 95 ror r18
3b86: ba 95 dec r27
3b88: e1 f7 brne .-8 ; 0x3b82 <__vector_24+0x4ea>
3b8a: 30 93 66 03 sts 0x0366, r19
3b8e: 20 93 65 03 sts 0x0365, r18
3b92: 20 91 30 03 lds r18, 0x0330
3b96: 30 91 31 03 lds r19, 0x0331
3b9a: 28 0f add r18, r24
3b9c: 39 1f adc r19, r25
3b9e: 37 ff sbrs r19, 7
3ba0: 02 c0 rjmp .+4 ; 0x3ba6 <__vector_24+0x50e>
3ba2: 2f 5f subi r18, 0xFF ; 255
3ba4: 3f 4f sbci r19, 0xFF ; 255
3ba6: 35 95 asr r19
3ba8: 27 95 ror r18
3baa: 30 93 31 03 sts 0x0331, r19
3bae: 20 93 30 03 sts 0x0330, r18
3bb2: 80 91 55 04 lds r24, 0x0455
3bb6: 90 91 56 04 lds r25, 0x0456
3bba: 28 1b sub r18, r24
3bbc: 39 0b sbc r19, r25
3bbe: 30 93 19 01 sts 0x0119, r19
3bc2: 20 93 18 01 sts 0x0118, r18
3bc6: 80 91 69 03 lds r24, 0x0369
3bca: 90 91 6a 03 lds r25, 0x036A
3bce: 20 91 18 01 lds r18, 0x0118
3bd2: 30 91 19 01 lds r19, 0x0119
3bd6: 82 0f add r24, r18
3bd8: 93 1f adc r25, r19
3bda: 97 fd sbrc r25, 7
3bdc: 01 96 adiw r24, 0x01 ; 1
3bde: 95 95 asr r25
3be0: 87 95 ror r24
3be2: 90 93 6a 03 sts 0x036A, r25
3be6: 80 93 69 03 sts 0x0369, r24
3bea: 81 e0 ldi r24, 0x01 ; 1
3bec: 14 c2 rjmp .+1064 ; 0x4016 <__vector_24+0x97e>
3bee: 80 91 78 00 lds r24, 0x0078
3bf2: 90 91 79 00 lds r25, 0x0079
3bf6: 20 91 3c 03 lds r18, 0x033C
3bfa: 30 91 3d 03 lds r19, 0x033D
3bfe: 82 0f add r24, r18
3c00: 93 1f adc r25, r19
3c02: 88 0f add r24, r24
3c04: 99 1f adc r25, r25
3c06: 88 0f add r24, r24
3c08: 99 1f adc r25, r25
3c0a: 90 93 3d 03 sts 0x033D, r25
3c0e: 80 93 3c 03 sts 0x033C, r24
3c12: 9c 01 movw r18, r24
3c14: 97 ff sbrs r25, 7
3c16: 02 c0 rjmp .+4 ; 0x3c1c <__vector_24+0x584>
3c18: 29 5f subi r18, 0xF9 ; 249
3c1a: 3f 4f sbci r19, 0xFF ; 255
3c1c: 73 e0 ldi r23, 0x03 ; 3
3c1e: 35 95 asr r19
3c20: 27 95 ror r18
3c22: 7a 95 dec r23
3c24: e1 f7 brne .-8 ; 0x3c1e <__vector_24+0x586>
3c26: 30 93 64 03 sts 0x0364, r19
3c2a: 20 93 63 03 sts 0x0363, r18
3c2e: 20 91 2e 03 lds r18, 0x032E
3c32: 30 91 2f 03 lds r19, 0x032F
3c36: 28 0f add r18, r24
3c38: 39 1f adc r19, r25
3c3a: 37 ff sbrs r19, 7
3c3c: 02 c0 rjmp .+4 ; 0x3c42 <__vector_24+0x5aa>
3c3e: 2f 5f subi r18, 0xFF ; 255
3c40: 3f 4f sbci r19, 0xFF ; 255
3c42: 35 95 asr r19
3c44: 27 95 ror r18
3c46: 30 93 2f 03 sts 0x032F, r19
3c4a: 20 93 2e 03 sts 0x032E, r18
3c4e: 80 91 53 04 lds r24, 0x0453
3c52: 90 91 54 04 lds r25, 0x0454
3c56: 28 1b sub r18, r24
3c58: 39 0b sbc r19, r25
3c5a: 30 93 17 01 sts 0x0117, r19
3c5e: 20 93 16 01 sts 0x0116, r18
3c62: 80 91 67 03 lds r24, 0x0367
3c66: 90 91 68 03 lds r25, 0x0368
3c6a: 20 91 16 01 lds r18, 0x0116
3c6e: 30 91 17 01 lds r19, 0x0117
3c72: 82 0f add r24, r18
3c74: 93 1f adc r25, r19
3c76: 97 fd sbrc r25, 7
3c78: 01 96 adiw r24, 0x01 ; 1
3c7a: 95 95 asr r25
3c7c: 87 95 ror r24
3c7e: 90 93 68 03 sts 0x0368, r25
3c82: 80 93 67 03 sts 0x0367, r24
3c86: 83 e0 ldi r24, 0x03 ; 3
3c88: c6 c1 rjmp .+908 ; 0x4016 <__vector_24+0x97e>
3c8a: 80 91 c0 03 lds r24, 0x03C0
3c8e: 88 23 and r24, r24
3c90: a9 f0 breq .+42 ; 0x3cbc <__vector_24+0x624>
3c92: 80 e0 ldi r24, 0x00 ; 0
3c94: 0e 94 10 16 call 0x2c20 ; 0x2c20 <ACC_AltitudeFusion>
3c98: 7f 5f subi r23, 0xFF ; 255
3c9a: 8f 4f sbci r24, 0xFF ; 255
3c9c: 9f 4f sbci r25, 0xFF ; 255
3c9e: 20 e0 ldi r18, 0x00 ; 0
3ca0: 32 e0 ldi r19, 0x02 ; 2
3ca2: 40 e0 ldi r20, 0x00 ; 0
3ca4: 50 e0 ldi r21, 0x00 ; 0
3ca6: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
3caa: 20 93 42 03 sts 0x0342, r18
3cae: 30 93 43 03 sts 0x0343, r19
3cb2: 40 93 44 03 sts 0x0344, r20
3cb6: 50 93 45 03 sts 0x0345, r21
3cba: 10 c0 rjmp .+32 ; 0x3cdc <__vector_24+0x644>
3cbc: 80 91 fc 03 lds r24, 0x03FC
3cc0: 90 91 fd 03 lds r25, 0x03FD
3cc4: a0 91 fe 03 lds r26, 0x03FE
3cc8: b0 91 ff 03 lds r27, 0x03FF
3ccc: 80 93 42 03 sts 0x0342, r24
3cd0: 90 93 43 03 sts 0x0343, r25
3cd4: a0 93 44 03 sts 0x0344, r26
3cd8: b0 93 45 03 sts 0x0345, r27
3cdc: 10 92 41 03 sts 0x0341, r1
3ce0: 81 e0 ldi r24, 0x01 ; 1
3ce2: 80 93 0f 01 sts 0x010F, r24
3ce6: 80 91 52 03 lds r24, 0x0352
3cea: 90 91 53 03 lds r25, 0x0353
3cee: 01 96 adiw r24, 0x01 ; 1
3cf0: 90 93 53 03 sts 0x0353, r25
3cf4: 80 93 52 03 sts 0x0352, r24
3cf8: 80 91 78 00 lds r24, 0x0078
3cfc: 90 91 79 00 lds r25, 0x0079
3d00: 90 93 11 01 sts 0x0111, r25
3d04: 80 93 10 01 sts 0x0110, r24
3d08: 80 91 c0 03 lds r24, 0x03C0
3d0c: 88 23 and r24, r24
3d0e: 09 f4 brne .+2 ; 0x3d12 <__vector_24+0x67a>
3d10: 6e c0 rjmp .+220 ; 0x3dee <__vector_24+0x756>
3d12: c0 90 10 01 lds r12, 0x0110
3d16: d0 90 11 01 lds r13, 0x0111
3d1a: e1 2c mov r14, r1
3d1c: f1 2c mov r15, r1
3d1e: 80 91 4e 03 lds r24, 0x034E
3d22: 90 91 4f 03 lds r25, 0x034F
3d26: a0 91 50 03 lds r26, 0x0350
3d2a: b0 91 51 03 lds r27, 0x0351
3d2e: c8 1a sub r12, r24
3d30: d9 0a sbc r13, r25
3d32: ea 0a sbc r14, r26
3d34: fb 0a sbc r15, r27
3d36: c0 92 2a 03 sts 0x032A, r12
3d3a: d0 92 2b 03 sts 0x032B, r13
3d3e: e0 92 2c 03 sts 0x032C, r14
3d42: f0 92 2d 03 sts 0x032D, r15
3d46: 80 90 12 01 lds r8, 0x0112
3d4a: 90 90 13 01 lds r9, 0x0113
3d4e: a0 90 14 01 lds r10, 0x0114
3d52: b0 90 15 01 lds r11, 0x0115
3d56: 60 91 12 01 lds r22, 0x0112
3d5a: 70 91 13 01 lds r23, 0x0113
3d5e: 80 91 14 01 lds r24, 0x0114
3d62: 90 91 15 01 lds r25, 0x0115
3d66: 20 91 0c 01 lds r18, 0x010C
3d6a: 30 e0 ldi r19, 0x00 ; 0
3d6c: 40 e0 ldi r20, 0x00 ; 0
3d6e: 50 e0 ldi r21, 0x00 ; 0
3d70: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
3d74: 82 1a sub r8, r18
3d76: 93 0a sbc r9, r19
3d78: a4 0a sbc r10, r20
3d7a: b5 0a sbc r11, r21
3d7c: 80 92 12 01 sts 0x0112, r8
3d80: 90 92 13 01 sts 0x0113, r9
3d84: a0 92 14 01 sts 0x0114, r10
3d88: b0 92 15 01 sts 0x0115, r11
3d8c: 80 91 12 01 lds r24, 0x0112
3d90: 90 91 13 01 lds r25, 0x0113
3d94: a0 91 14 01 lds r26, 0x0114
3d98: b0 91 15 01 lds r27, 0x0115
3d9c: 8c 0d add r24, r12
3d9e: 9d 1d adc r25, r13
3da0: ae 1d adc r26, r14
3da2: bf 1d adc r27, r15
3da4: 80 93 12 01 sts 0x0112, r24
3da8: 90 93 13 01 sts 0x0113, r25
3dac: a0 93 14 01 sts 0x0114, r26
3db0: b0 93 15 01 sts 0x0115, r27
3db4: 80 91 06 05 lds r24, 0x0506
3db8: 90 91 07 05 lds r25, 0x0507
3dbc: a0 91 08 05 lds r26, 0x0508
3dc0: b0 91 09 05 lds r27, 0x0509
3dc4: 40 91 12 01 lds r20, 0x0112
3dc8: 50 91 13 01 lds r21, 0x0113
3dcc: 60 91 14 01 lds r22, 0x0114
3dd0: 70 91 15 01 lds r23, 0x0115
3dd4: 84 1b sub r24, r20
3dd6: 95 0b sbc r25, r21
3dd8: a6 0b sbc r26, r22
3dda: b7 0b sbc r27, r23
3ddc: 80 93 46 03 sts 0x0346, r24
3de0: 90 93 47 03 sts 0x0347, r25
3de4: a0 93 48 03 sts 0x0348, r26
3de8: b0 93 49 03 sts 0x0349, r27
3dec: 13 c1 rjmp .+550 ; 0x4014 <__vector_24+0x97c>
3dee: 80 91 10 01 lds r24, 0x0110
3df2: 90 91 11 01 lds r25, 0x0111
3df6: c0 90 2a 03 lds r12, 0x032A
3dfa: d0 90 2b 03 lds r13, 0x032B
3dfe: e0 90 2c 03 lds r14, 0x032C
3e02: f0 90 2d 03 lds r15, 0x032D
3e06: c8 0e add r12, r24
3e08: d9 1e adc r13, r25
3e0a: e1 1c adc r14, r1
3e0c: f1 1c adc r15, r1
3e0e: c0 92 2a 03 sts 0x032A, r12
3e12: d0 92 2b 03 sts 0x032B, r13
3e16: e0 92 2c 03 sts 0x032C, r14
3e1a: f0 92 2d 03 sts 0x032D, r15
3e1e: 80 91 29 03 lds r24, 0x0329
3e22: 8f 5f subi r24, 0xFF ; 255
3e24: 80 93 29 03 sts 0x0329, r24
3e28: 80 31 cpi r24, 0x10 ; 16
3e2a: 08 f4 brcc .+2 ; 0x3e2e <__vector_24+0x796>
3e2c: f3 c0 rjmp .+486 ; 0x4014 <__vector_24+0x97c>
3e2e: 20 91 12 01 lds r18, 0x0112
3e32: 30 91 13 01 lds r19, 0x0113
3e36: 40 91 14 01 lds r20, 0x0114
3e3a: 50 91 15 01 lds r21, 0x0115
3e3e: a7 e0 ldi r26, 0x07 ; 7
3e40: b0 e0 ldi r27, 0x00 ; 0
3e42: 0e 94 45 9b call 0x1368a ; 0x1368a <__muluhisi3>
3e46: 6c 0d add r22, r12
3e48: 7d 1d adc r23, r13
3e4a: 8e 1d adc r24, r14
3e4c: 9f 1d adc r25, r15
3e4e: 80 90 4e 03 lds r8, 0x034E
3e52: 90 90 4f 03 lds r9, 0x034F
3e56: a0 90 50 03 lds r10, 0x0350
3e5a: b0 90 51 03 lds r11, 0x0351
3e5e: 68 19 sub r22, r8
3e60: 79 09 sbc r23, r9
3e62: 8a 09 sbc r24, r10
3e64: 9b 09 sbc r25, r11
3e66: 28 e0 ldi r18, 0x08 ; 8
3e68: 30 e0 ldi r19, 0x00 ; 0
3e6a: 40 e0 ldi r20, 0x00 ; 0
3e6c: 50 e0 ldi r21, 0x00 ; 0
3e6e: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
3e72: 20 93 12 01 sts 0x0112, r18
3e76: 30 93 13 01 sts 0x0113, r19
3e7a: 40 93 14 01 sts 0x0114, r20
3e7e: 50 93 15 01 sts 0x0115, r21
3e82: 80 90 06 05 lds r8, 0x0506
3e86: 90 90 07 05 lds r9, 0x0507
3e8a: a0 90 08 05 lds r10, 0x0508
3e8e: b0 90 09 05 lds r11, 0x0509
3e92: 80 91 12 01 lds r24, 0x0112
3e96: 90 91 13 01 lds r25, 0x0113
3e9a: a0 91 14 01 lds r26, 0x0114
3e9e: b0 91 15 01 lds r27, 0x0115
3ea2: 88 1a sub r8, r24
3ea4: 99 0a sbc r9, r25
3ea6: aa 0a sbc r10, r26
3ea8: bb 0a sbc r11, r27
3eaa: 80 92 46 03 sts 0x0346, r8
3eae: 90 92 47 03 sts 0x0347, r9
3eb2: a0 92 48 03 sts 0x0348, r10
3eb6: b0 92 49 03 sts 0x0349, r11
3eba: 40 90 57 03 lds r4, 0x0357
3ebe: 50 90 58 03 lds r5, 0x0358
3ec2: 60 90 59 03 lds r6, 0x0359
3ec6: 70 90 5a 03 lds r7, 0x035A
3eca: 60 91 57 03 lds r22, 0x0357
3ece: 70 91 58 03 lds r23, 0x0358
3ed2: 80 91 59 03 lds r24, 0x0359
3ed6: 90 91 5a 03 lds r25, 0x035A
3eda: 20 e1 ldi r18, 0x10 ; 16
3edc: 30 e0 ldi r19, 0x00 ; 0
3ede: 40 e0 ldi r20, 0x00 ; 0
3ee0: 50 e0 ldi r21, 0x00 ; 0
3ee2: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
3ee6: 42 1a sub r4, r18
3ee8: 53 0a sbc r5, r19
3eea: 64 0a sbc r6, r20
3eec: 75 0a sbc r7, r21
3eee: 40 92 57 03 sts 0x0357, r4
3ef2: 50 92 58 03 sts 0x0358, r5
3ef6: 60 92 59 03 sts 0x0359, r6
3efa: 70 92 5a 03 sts 0x035A, r7
3efe: 80 91 57 03 lds r24, 0x0357
3f02: 90 91 58 03 lds r25, 0x0358
3f06: a0 91 59 03 lds r26, 0x0359
3f0a: b0 91 5a 03 lds r27, 0x035A
3f0e: 88 0d add r24, r8
3f10: 99 1d adc r25, r9
3f12: aa 1d adc r26, r10
3f14: bb 1d adc r27, r11
3f16: 80 93 57 03 sts 0x0357, r24
3f1a: 90 93 58 03 sts 0x0358, r25
3f1e: a0 93 59 03 sts 0x0359, r26
3f22: b0 93 5a 03 sts 0x035A, r27
3f26: 60 91 57 03 lds r22, 0x0357
3f2a: 70 91 58 03 lds r23, 0x0358
3f2e: 80 91 59 03 lds r24, 0x0359
3f32: 90 91 5a 03 lds r25, 0x035A
3f36: 20 e1 ldi r18, 0x10 ; 16
3f38: 30 e0 ldi r19, 0x00 ; 0
3f3a: 40 e0 ldi r20, 0x00 ; 0
3f3c: 50 e0 ldi r21, 0x00 ; 0
3f3e: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
3f42: 50 95 com r21
3f44: 40 95 com r20
3f46: 30 95 com r19
3f48: 21 95 neg r18
3f4a: 3f 4f sbci r19, 0xFF ; 255
3f4c: 4f 4f sbci r20, 0xFF ; 255
3f4e: 5f 4f sbci r21, 0xFF ; 255
3f50: c9 01 movw r24, r18
3f52: 88 0d add r24, r8
3f54: 99 1d adc r25, r9
3f56: 81 15 cp r24, r1
3f58: 6c ef ldi r22, 0xFC ; 252
3f5a: 96 07 cpc r25, r22
3f5c: 14 f4 brge .+4 ; 0x3f62 <__vector_24+0x8ca>
3f5e: 80 e0 ldi r24, 0x00 ; 0
3f60: 9c ef ldi r25, 0xFC ; 252
3f62: 9c 01 movw r18, r24
3f64: 21 30 cpi r18, 0x01 ; 1
3f66: 84 e0 ldi r24, 0x04 ; 4
3f68: 38 07 cpc r19, r24
3f6a: 14 f0 brlt .+4 ; 0x3f70 <__vector_24+0x8d8>
3f6c: 20 e0 ldi r18, 0x00 ; 0
3f6e: 34 e0 ldi r19, 0x04 ; 4
3f70: 80 91 54 03 lds r24, 0x0354
3f74: 90 91 55 03 lds r25, 0x0355
3f78: 97 ff sbrs r25, 7
3f7a: 03 c0 rjmp .+6 ; 0x3f82 <__vector_24+0x8ea>
3f7c: 91 95 neg r25
3f7e: 81 95 neg r24
3f80: 91 09 sbc r25, r1
3f82: 43 e0 ldi r20, 0x03 ; 3
3f84: 22 0f add r18, r18
3f86: 33 1f adc r19, r19
3f88: 4a 95 dec r20
3f8a: e1 f7 brne .-8 ; 0x3f84 <__vector_24+0x8ec>
3f8c: 8d 3b cpi r24, 0xBD ; 189
3f8e: 92 40 sbci r25, 0x02 ; 2
3f90: a4 f0 brlt .+40 ; 0x3fba <__vector_24+0x922>
3f92: 40 91 54 03 lds r20, 0x0354
3f96: 50 91 55 03 lds r21, 0x0355
3f9a: 6f e0 ldi r22, 0x0F ; 15
3f9c: 64 9f mul r22, r20
3f9e: c0 01 movw r24, r0
3fa0: 65 9f mul r22, r21
3fa2: 90 0d add r25, r0
3fa4: 11 24 eor r1, r1
3fa6: 82 0f add r24, r18
3fa8: 93 1f adc r25, r19
3faa: 97 fd sbrc r25, 7
3fac: 0f 96 adiw r24, 0x0f ; 15
3fae: 34 e0 ldi r19, 0x04 ; 4
3fb0: 95 95 asr r25
3fb2: 87 95 ror r24
3fb4: 3a 95 dec r19
3fb6: e1 f7 brne .-8 ; 0x3fb0 <__vector_24+0x918>
3fb8: 13 c0 rjmp .+38 ; 0x3fe0 <__vector_24+0x948>
3fba: 40 91 54 03 lds r20, 0x0354
3fbe: 50 91 55 03 lds r21, 0x0355
3fc2: 6f e1 ldi r22, 0x1F ; 31
3fc4: 64 9f mul r22, r20
3fc6: c0 01 movw r24, r0
3fc8: 65 9f mul r22, r21
3fca: 90 0d add r25, r0
3fcc: 11 24 eor r1, r1
3fce: 82 0f add r24, r18
3fd0: 93 1f adc r25, r19
3fd2: 97 fd sbrc r25, 7
3fd4: 4f 96 adiw r24, 0x1f ; 31
3fd6: 25 e0 ldi r18, 0x05 ; 5
3fd8: 95 95 asr r25
3fda: 87 95 ror r24
3fdc: 2a 95 dec r18
3fde: e1 f7 brne .-8 ; 0x3fd8 <__vector_24+0x940>
3fe0: 90 93 55 03 sts 0x0355, r25
3fe4: 80 93 54 03 sts 0x0354, r24
3fe8: c7 01 movw r24, r14
3fea: b6 01 movw r22, r12
3fec: 22 e0 ldi r18, 0x02 ; 2
3fee: 30 e0 ldi r19, 0x00 ; 0
3ff0: 40 e0 ldi r20, 0x00 ; 0
3ff2: 50 e0 ldi r21, 0x00 ; 0
3ff4: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
3ff8: 20 93 2a 03 sts 0x032A, r18
3ffc: 30 93 2b 03 sts 0x032B, r19
4000: 40 93 2c 03 sts 0x032C, r20
4004: 50 93 2d 03 sts 0x032D, r21
4008: 88 e0 ldi r24, 0x08 ; 8
400a: 80 93 29 03 sts 0x0329, r24
400e: 02 c0 rjmp .+4 ; 0x4014 <__vector_24+0x97c>
4010: 10 92 41 03 sts 0x0341, r1
4014: 82 e0 ldi r24, 0x02 ; 2
4016: 80 93 3e 03 sts 0x033E, r24
401a: 80 91 3e 03 lds r24, 0x033E
401e: 80 93 7c 00 sts 0x007C, r24
4022: 80 91 41 03 lds r24, 0x0341
4026: 88 23 and r24, r24
4028: 19 f0 breq .+6 ; 0x4030 <__vector_24+0x998>
402a: 8f ec ldi r24, 0xCF ; 207
402c: 80 93 7a 00 sts 0x007A, r24
4030: ff 91 pop r31
4032: ef 91 pop r30
4034: bf 91 pop r27
4036: af 91 pop r26
4038: 9f 91 pop r25
403a: 8f 91 pop r24
403c: 7f 91 pop r23
403e: 6f 91 pop r22
4040: 5f 91 pop r21
4042: 4f 91 pop r20
4044: 3f 91 pop r19
4046: 2f 91 pop r18
4048: ff 90 pop r15
404a: ef 90 pop r14
404c: df 90 pop r13
404e: cf 90 pop r12
4050: bf 90 pop r11
4052: af 90 pop r10
4054: 9f 90 pop r9
4056: 8f 90 pop r8
4058: 7f 90 pop r7
405a: 6f 90 pop r6
405c: 5f 90 pop r5
405e: 4f 90 pop r4
4060: 0f 90 pop r0
4062: 0b be out 0x3b, r0 ; 59
4064: 0f 90 pop r0
4066: 0f be out 0x3f, r0 ; 63
4068: 0f 90 pop r0
406a: 1f 90 pop r1
406c: 18 95 reti
 
0000406e <Capacity_Init>:
406e: 10 92 14 05 sts 0x0514, r1
4072: 10 92 13 05 sts 0x0513, r1
4076: 10 92 18 05 sts 0x0518, r1
407a: 10 92 17 05 sts 0x0517, r1
407e: 10 92 16 05 sts 0x0516, r1
4082: 10 92 15 05 sts 0x0515, r1
4086: 10 92 19 05 sts 0x0519, r1
408a: 82 e3 ldi r24, 0x32 ; 50
408c: 90 e0 ldi r25, 0x00 ; 0
408e: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
4092: 90 93 74 03 sts 0x0374, r25
4096: 80 93 73 03 sts 0x0373, r24
409a: 08 95 ret
 
0000409c <BL3_Current>:
409c: 2f e0 ldi r18, 0x0F ; 15
409e: 82 9f mul r24, r18
40a0: f0 01 movw r30, r0
40a2: 11 24 eor r1, r1
40a4: ec 58 subi r30, 0x8C ; 140
40a6: f6 4f sbci r31, 0xF6 ; 246
40a8: 85 81 ldd r24, Z+5 ; 0x05
40aa: 8f 3f cpi r24, 0xFF ; 255
40ac: 71 f0 breq .+28 ; 0x40ca <BL3_Current+0x2e>
40ae: 89 3c cpi r24, 0xC9 ; 201
40b0: 50 f0 brcs .+20 ; 0x40c6 <BL3_Current+0x2a>
40b2: 90 81 ld r25, Z
40b4: 92 ff sbrs r25, 2
40b6: 07 c0 rjmp .+14 ; 0x40c6 <BL3_Current+0x2a>
40b8: 2a e0 ldi r18, 0x0A ; 10
40ba: 82 9f mul r24, r18
40bc: c0 01 movw r24, r0
40be: 11 24 eor r1, r1
40c0: 88 50 subi r24, 0x08 ; 8
40c2: 97 40 sbci r25, 0x07 ; 7
40c4: 08 95 ret
40c6: 90 e0 ldi r25, 0x00 ; 0
40c8: 08 95 ret
40ca: 80 e0 ldi r24, 0x00 ; 0
40cc: 90 e0 ldi r25, 0x00 ; 0
40ce: 08 95 ret
 
000040d0 <Capacity_Update>:
40d0: bf 92 push r11
40d2: cf 92 push r12
40d4: df 92 push r13
40d6: ef 92 push r14
40d8: ff 92 push r15
40da: 0f 93 push r16
40dc: 1f 93 push r17
40de: cf 93 push r28
40e0: df 93 push r29
40e2: 80 91 73 03 lds r24, 0x0373
40e6: 90 91 74 03 lds r25, 0x0374
40ea: 0e 94 4f 88 call 0x1109e ; 0x1109e <CheckDelay>
40ee: 88 23 and r24, r24
40f0: 09 f4 brne .+2 ; 0x40f4 <Capacity_Update+0x24>
40f2: cb c0 rjmp .+406 ; 0x428a <__stack+0x18b>
40f4: 80 91 73 03 lds r24, 0x0373
40f8: 90 91 74 03 lds r25, 0x0374
40fc: c2 96 adiw r24, 0x32 ; 50
40fe: 90 93 74 03 sts 0x0374, r25
4102: 80 93 73 03 sts 0x0373, r24
4106: 80 91 19 05 lds r24, 0x0519
410a: 8e 3f cpi r24, 0xFE ; 254
410c: 81 f4 brne .+32 ; 0x412e <__stack+0x2f>
410e: 80 91 c7 03 lds r24, 0x03C7
4112: 81 60 ori r24, 0x01 ; 1
4114: 80 93 c7 03 sts 0x03C7, r24
4118: 0a e7 ldi r16, 0x7A ; 122
411a: 19 e0 ldi r17, 0x09 ; 9
411c: bb 24 eor r11, r11
411e: ba 94 dec r11
4120: d1 2c mov r13, r1
4122: c1 2c mov r12, r1
4124: e1 2c mov r14, r1
4126: f1 2c mov r15, r1
4128: c0 e0 ldi r28, 0x00 ; 0
412a: d0 e0 ldi r29, 0x00 ; 0
412c: 23 c0 rjmp .+70 ; 0x4174 <__stack+0x75>
412e: 8f 3f cpi r24, 0xFF ; 255
4130: 99 f7 brne .-26 ; 0x4118 <__stack+0x19>
4132: 80 91 c7 03 lds r24, 0x03C7
4136: 8e 7f andi r24, 0xFE ; 254
4138: ed cf rjmp .-38 ; 0x4114 <__stack+0x15>
413a: d3 94 inc r13
413c: 32 96 adiw r30, 0x02 ; 2
413e: 80 81 ld r24, Z
4140: 89 3c cpi r24, 0xC9 ; 201
4142: f0 f0 brcs .+60 ; 0x4180 <__stack+0x81>
4144: 8c 2d mov r24, r12
4146: aa df rcall .-172 ; 0x409c <BL3_Current>
4148: c8 0f add r28, r24
414a: d9 1f adc r29, r25
414c: f8 01 movw r30, r16
414e: 35 97 sbiw r30, 0x05 ; 5
4150: 80 81 ld r24, Z
4152: e8 0e add r14, r24
4154: f1 1c adc r15, r1
4156: f8 01 movw r30, r16
4158: 80 81 ld r24, Z
415a: b8 16 cp r11, r24
415c: a0 f4 brcc .+40 ; 0x4186 <__stack+0x87>
415e: 80 91 c7 03 lds r24, 0x03C7
4162: 8e 7f andi r24, 0xFE ; 254
4164: 80 93 c7 03 sts 0x03C7, r24
4168: c3 94 inc r12
416a: 01 5f subi r16, 0xF1 ; 241
416c: 1f 4f sbci r17, 0xFF ; 255
416e: fc e0 ldi r31, 0x0C ; 12
4170: cf 16 cp r12, r31
4172: 59 f0 breq .+22 ; 0x418a <__stack+0x8b>
4174: f8 01 movw r30, r16
4176: 33 97 sbiw r30, 0x03 ; 3
4178: 80 81 ld r24, Z
417a: 87 ff sbrs r24, 7
417c: f5 cf rjmp .-22 ; 0x4168 <__stack+0x69>
417e: dd cf rjmp .-70 ; 0x413a <__stack+0x3b>
4180: c8 0f add r28, r24
4182: d1 1d adc r29, r1
4184: e3 cf rjmp .-58 ; 0x414c <__stack+0x4d>
4186: b8 2e mov r11, r24
4188: ef cf rjmp .-34 ; 0x4168 <__stack+0x69>
418a: b0 92 19 05 sts 0x0519, r11
418e: ef 28 or r14, r15
4190: 29 f5 brne .+74 ; 0x41dc <__stack+0xdd>
4192: 40 91 6f 03 lds r20, 0x036F
4196: 50 91 70 03 lds r21, 0x0370
419a: 60 91 71 03 lds r22, 0x0371
419e: 70 91 72 03 lds r23, 0x0372
41a2: bb 27 eor r27, r27
41a4: a7 2f mov r26, r23
41a6: 96 2f mov r25, r22
41a8: 85 2f mov r24, r21
41aa: 90 93 6e 03 sts 0x036E, r25
41ae: 80 93 6d 03 sts 0x036D, r24
41b2: aa 27 eor r26, r26
41b4: bb 27 eor r27, r27
41b6: 48 1b sub r20, r24
41b8: 59 0b sbc r21, r25
41ba: 6a 0b sbc r22, r26
41bc: 7b 0b sbc r23, r27
41be: 4c 0f add r20, r28
41c0: 5d 1f adc r21, r29
41c2: 61 1d adc r22, r1
41c4: 71 1d adc r23, r1
41c6: 40 93 6f 03 sts 0x036F, r20
41ca: 50 93 70 03 sts 0x0370, r21
41ce: 60 93 71 03 sts 0x0371, r22
41d2: 70 93 72 03 sts 0x0372, r23
41d6: c5 e0 ldi r28, 0x05 ; 5
41d8: d0 e0 ldi r29, 0x00 ; 0
41da: 11 c0 rjmp .+34 ; 0x41fe <__stack+0xff>
41dc: 80 91 6d 03 lds r24, 0x036D
41e0: 90 91 6e 03 lds r25, 0x036E
41e4: 8c 17 cp r24, r28
41e6: 9d 07 cpc r25, r29
41e8: 18 f4 brcc .+6 ; 0x41f0 <__stack+0xf1>
41ea: c8 1b sub r28, r24
41ec: d9 0b sbc r29, r25
41ee: 02 c0 rjmp .+4 ; 0x41f4 <__stack+0xf5>
41f0: c0 e0 ldi r28, 0x00 ; 0
41f2: d0 e0 ldi r29, 0x00 ; 0
41f4: cd 0d add r28, r13
41f6: d1 1d adc r29, r1
41f8: cd 0d add r28, r13
41fa: d1 1d adc r29, r1
41fc: 25 96 adiw r28, 0x05 ; 5
41fe: d0 93 14 05 sts 0x0514, r29
4202: c0 93 13 05 sts 0x0513, r28
4206: 20 91 1a 01 lds r18, 0x011A
420a: 30 91 1b 01 lds r19, 0x011B
420e: cf 3f cpi r28, 0xFF ; 255
4210: d1 05 cpc r29, r1
4212: 50 f4 brcc .+20 ; 0x4228 <__stack+0x129>
4214: c2 9f mul r28, r18
4216: c0 01 movw r24, r0
4218: c3 9f mul r28, r19
421a: 90 0d add r25, r0
421c: d2 9f mul r29, r18
421e: 90 0d add r25, r0
4220: 11 24 eor r1, r1
4222: 64 e6 ldi r22, 0x64 ; 100
4224: 70 e0 ldi r23, 0x00 ; 0
4226: 0e c0 rjmp .+28 ; 0x4244 <__stack+0x145>
4228: ae 01 movw r20, r28
422a: 56 95 lsr r21
422c: 47 95 ror r20
422e: 56 95 lsr r21
4230: 47 95 ror r20
4232: 42 9f mul r20, r18
4234: c0 01 movw r24, r0
4236: 43 9f mul r20, r19
4238: 90 0d add r25, r0
423a: 52 9f mul r21, r18
423c: 90 0d add r25, r0
423e: 11 24 eor r1, r1
4240: 69 e1 ldi r22, 0x19 ; 25
4242: 70 e0 ldi r23, 0x00 ; 0
4244: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
4248: 70 93 16 05 sts 0x0516, r23
424c: 60 93 15 05 sts 0x0515, r22
4250: 80 91 6b 03 lds r24, 0x036B
4254: 90 91 6c 03 lds r25, 0x036C
4258: 20 91 17 05 lds r18, 0x0517
425c: 30 91 18 05 lds r19, 0x0518
4260: 8c 0f add r24, r28
4262: 9d 1f adc r25, r29
4264: a9 01 movw r20, r18
4266: 4f 5f subi r20, 0xFF ; 255
4268: 5f 4f sbci r21, 0xFF ; 255
426a: 81 3d cpi r24, 0xD1 ; 209
426c: 62 e0 ldi r22, 0x02 ; 2
426e: 96 07 cpc r25, r22
4270: 20 f0 brcs .+8 ; 0x427a <__stack+0x17b>
4272: 80 5d subi r24, 0xD0 ; 208
4274: 92 40 sbci r25, 0x02 ; 2
4276: 9a 01 movw r18, r20
4278: f5 cf rjmp .-22 ; 0x4264 <__stack+0x165>
427a: 30 93 18 05 sts 0x0518, r19
427e: 20 93 17 05 sts 0x0517, r18
4282: 90 93 6c 03 sts 0x036C, r25
4286: 80 93 6b 03 sts 0x036B, r24
428a: df 91 pop r29
428c: cf 91 pop r28
428e: 1f 91 pop r17
4290: 0f 91 pop r16
4292: ff 90 pop r15
4294: ef 90 pop r14
4296: df 90 pop r13
4298: cf 90 pop r12
429a: bf 90 pop r11
429c: 08 95 ret
 
0000429e <RAM_Checksum>:
429e: fc 01 movw r30, r24
42a0: 68 0f add r22, r24
42a2: 79 1f adc r23, r25
42a4: 8a ea ldi r24, 0xAA ; 170
42a6: e6 17 cp r30, r22
42a8: f7 07 cpc r31, r23
42aa: 19 f0 breq .+6 ; 0x42b2 <RAM_Checksum+0x14>
42ac: 91 91 ld r25, Z+
42ae: 89 0f add r24, r25
42b0: fa cf rjmp .-12 ; 0x42a6 <RAM_Checksum+0x8>
42b2: 08 95 ret
 
000042b4 <EEProm_Checksum>:
42b4: ff 92 push r15
42b6: 0f 93 push r16
42b8: 1f 93 push r17
42ba: cf 93 push r28
42bc: df 93 push r29
42be: 8b 01 movw r16, r22
42c0: 08 0f add r16, r24
42c2: 19 1f adc r17, r25
42c4: ec 01 movw r28, r24
42c6: 8a ea ldi r24, 0xAA ; 170
42c8: f8 2e mov r15, r24
42ca: c0 17 cp r28, r16
42cc: d1 07 cpc r29, r17
42ce: 31 f0 breq .+12 ; 0x42dc <EEProm_Checksum+0x28>
42d0: ce 01 movw r24, r28
42d2: 0e 94 bb 9b call 0x13776 ; 0x13776 <__eerd_byte_m1284>
42d6: f8 0e add r15, r24
42d8: 21 96 adiw r28, 0x01 ; 1
42da: f7 cf rjmp .-18 ; 0x42ca <EEProm_Checksum+0x16>
42dc: 8f 2d mov r24, r15
42de: df 91 pop r29
42e0: cf 91 pop r28
42e2: 1f 91 pop r17
42e4: 0f 91 pop r16
42e6: ff 90 pop r15
42e8: 08 95 ret
 
000042ea <ParamSet_DefaultStickMapping>:
42ea: 81 e0 ldi r24, 0x01 ; 1
42ec: 80 93 1e 05 sts 0x051E, r24
42f0: 82 e0 ldi r24, 0x02 ; 2
42f2: 80 93 1d 05 sts 0x051D, r24
42f6: 83 e0 ldi r24, 0x03 ; 3
42f8: 80 93 1c 05 sts 0x051C, r24
42fc: 84 e0 ldi r24, 0x04 ; 4
42fe: 80 93 1f 05 sts 0x051F, r24
4302: 85 e0 ldi r24, 0x05 ; 5
4304: 80 93 20 05 sts 0x0520, r24
4308: 86 e0 ldi r24, 0x06 ; 6
430a: 80 93 21 05 sts 0x0521, r24
430e: 87 e0 ldi r24, 0x07 ; 7
4310: 80 93 22 05 sts 0x0522, r24
4314: 88 e0 ldi r24, 0x08 ; 8
4316: 80 93 23 05 sts 0x0523, r24
431a: 89 e0 ldi r24, 0x09 ; 9
431c: 80 93 24 05 sts 0x0524, r24
4320: 8a e0 ldi r24, 0x0A ; 10
4322: 80 93 25 05 sts 0x0525, r24
4326: 8b e0 ldi r24, 0x0B ; 11
4328: 80 93 26 05 sts 0x0526, r24
432c: 8c e0 ldi r24, 0x0C ; 12
432e: 80 93 27 05 sts 0x0527, r24
4332: 08 95 ret
 
00004334 <CommonDefaults>:
4334: 87 e6 ldi r24, 0x67 ; 103
4336: 80 93 1b 05 sts 0x051B, r24
433a: 8c e0 ldi r24, 0x0C ; 12
433c: e7 e9 ldi r30, 0x97 ; 151
433e: f5 e0 ldi r31, 0x05 ; 5
4340: df 01 movw r26, r30
4342: 1d 92 st X+, r1
4344: 8a 95 dec r24
4346: e9 f7 brne .-6 ; 0x4342 <CommonDefaults+0xe>
4348: 8a e0 ldi r24, 0x0A ; 10
434a: 80 93 3b 05 sts 0x053B, r24
434e: 10 92 5f 05 sts 0x055F, r1
4352: 8b e1 ldi r24, 0x1B ; 27
4354: 80 93 37 05 sts 0x0537, r24
4358: 8e e4 ldi r24, 0x4E ; 78
435a: 80 93 5c 05 sts 0x055C, r24
435e: 80 93 5d 05 sts 0x055D, r24
4362: 80 e2 ldi r24, 0x20 ; 32
4364: 80 93 5e 05 sts 0x055E, r24
4368: 10 92 93 05 sts 0x0593, r1
436c: 8a e6 ldi r24, 0x6A ; 106
436e: 80 93 28 05 sts 0x0528, r24
4372: 82 e7 ldi r24, 0x72 ; 114
4374: 80 93 95 05 sts 0x0595, r24
4378: 80 e5 ldi r24, 0x50 ; 80
437a: 80 93 96 05 sts 0x0596, r24
437e: 86 e0 ldi r24, 0x06 ; 6
4380: 80 93 42 05 sts 0x0542, r24
4384: 10 92 80 05 sts 0x0580, r1
4388: 10 92 7d 05 sts 0x057D, r1
438c: 98 e0 ldi r25, 0x08 ; 8
438e: 90 93 35 05 sts 0x0535, r25
4392: 86 ee ldi r24, 0xE6 ; 230
4394: 80 93 36 05 sts 0x0536, r24
4398: 80 e4 ldi r24, 0x40 ; 64
439a: 80 93 38 05 sts 0x0538, r24
439e: 85 e0 ldi r24, 0x05 ; 5
43a0: 80 93 2b 05 sts 0x052B, r24
43a4: 8e e1 ldi r24, 0x1E ; 30
43a6: 80 93 29 05 sts 0x0529, r24
43aa: 2e e6 ldi r18, 0x6E ; 110
43ac: 20 93 30 05 sts 0x0530, r18
43b0: 20 91 c0 03 lds r18, 0x03C0
43b4: 22 23 and r18, r18
43b6: 91 f0 breq .+36 ; 0x43dc <CommonDefaults+0xa8>
43b8: 94 e1 ldi r25, 0x14 ; 20
43ba: 90 93 2c 05 sts 0x052C, r25
43be: 98 e2 ldi r25, 0x28 ; 40
43c0: 90 93 2a 05 sts 0x052A, r25
43c4: 80 93 2e 05 sts 0x052E, r24
43c8: 81 e0 ldi r24, 0x01 ; 1
43ca: 80 93 2f 05 sts 0x052F, r24
43ce: 8f e7 ldi r24, 0x7F ; 127
43d0: 80 93 31 05 sts 0x0531, r24
43d4: 8c e3 ldi r24, 0x3C ; 60
43d6: 80 93 83 05 sts 0x0583, r24
43da: 0d c0 rjmp .+26 ; 0x43f6 <CommonDefaults+0xc2>
43dc: 2f e0 ldi r18, 0x0F ; 15
43de: 20 93 2c 05 sts 0x052C, r18
43e2: 80 93 2a 05 sts 0x052A, r24
43e6: 10 92 2e 05 sts 0x052E, r1
43ea: 90 93 2f 05 sts 0x052F, r25
43ee: 10 92 31 05 sts 0x0531, r1
43f2: 10 92 83 05 sts 0x0583, r1
43f6: 8f e0 ldi r24, 0x0F ; 15
43f8: 80 93 2d 05 sts 0x052D, r24
43fc: 10 92 8c 05 sts 0x058C, r1
4400: 8c e0 ldi r24, 0x0C ; 12
4402: 80 93 8d 05 sts 0x058D, r24
4406: 10 92 44 05 sts 0x0544, r1
440a: 10 92 45 05 sts 0x0545, r1
440e: 10 92 46 05 sts 0x0546, r1
4412: 10 92 47 05 sts 0x0547, r1
4416: 10 92 61 05 sts 0x0561, r1
441a: 10 92 62 05 sts 0x0562, r1
441e: 10 92 63 05 sts 0x0563, r1
4422: 10 92 64 05 sts 0x0564, r1
4426: 20 e8 ldi r18, 0x80 ; 128
4428: 20 93 48 05 sts 0x0548, r18
442c: 82 e3 ldi r24, 0x32 ; 50
442e: 80 93 49 05 sts 0x0549, r24
4432: 52 e0 ldi r21, 0x02 ; 2
4434: 50 93 94 05 sts 0x0594, r21
4438: 98 e1 ldi r25, 0x18 ; 24
443a: 90 93 4a 05 sts 0x054A, r25
443e: 96 ee ldi r25, 0xE6 ; 230
4440: 90 93 4b 05 sts 0x054B, r25
4444: 93 e0 ldi r25, 0x03 ; 3
4446: 90 93 50 05 sts 0x0550, r25
444a: 9d e7 ldi r25, 0x7D ; 125
444c: 90 93 53 05 sts 0x0553, r25
4450: 90 93 54 05 sts 0x0554, r25
4454: 90 93 55 05 sts 0x0555, r25
4458: 20 93 4c 05 sts 0x054C, r18
445c: 75 e5 ldi r23, 0x55 ; 85
445e: 70 93 4d 05 sts 0x054D, r23
4462: 26 e4 ldi r18, 0x46 ; 70
4464: 20 93 4e 05 sts 0x054E, r18
4468: 3c ed ldi r19, 0xDC ; 220
446a: 30 93 4f 05 sts 0x054F, r19
446e: 3c e3 ldi r19, 0x3C ; 60
4470: 30 93 51 05 sts 0x0551, r19
4474: 10 92 52 05 sts 0x0552, r1
4478: 3a ea ldi r19, 0xAA ; 170
447a: 30 93 65 05 sts 0x0565, r19
447e: 4c ec ldi r20, 0xCC ; 204
4480: 40 93 67 05 sts 0x0567, r20
4484: 10 92 69 05 sts 0x0569, r1
4488: 30 93 6a 05 sts 0x056A, r19
448c: 48 e2 ldi r20, 0x28 ; 40
448e: 40 93 66 05 sts 0x0566, r20
4492: 40 93 68 05 sts 0x0568, r20
4496: 10 92 6b 05 sts 0x056B, r1
449a: 10 92 91 05 sts 0x0591, r1
449e: 80 93 92 05 sts 0x0592, r24
44a2: 80 93 56 05 sts 0x0556, r24
44a6: 3a e5 ldi r19, 0x5A ; 90
44a8: 30 93 57 05 sts 0x0557, r19
44ac: 80 93 58 05 sts 0x0558, r24
44b0: 66 e0 ldi r22, 0x06 ; 6
44b2: 60 93 6c 05 sts 0x056C, r22
44b6: e4 e6 ldi r30, 0x64 ; 100
44b8: e0 93 6d 05 sts 0x056D, r30
44bc: e0 93 6e 05 sts 0x056E, r30
44c0: 30 93 6f 05 sts 0x056F, r19
44c4: e8 e7 ldi r30, 0x78 ; 120
44c6: e0 93 70 05 sts 0x0570, r30
44ca: 40 93 74 05 sts 0x0574, r20
44ce: 4b e4 ldi r20, 0x4B ; 75
44d0: 40 93 71 05 sts 0x0571, r20
44d4: 70 93 72 05 sts 0x0572, r23
44d8: 40 93 73 05 sts 0x0573, r20
44dc: 60 93 75 05 sts 0x0575, r22
44e0: 48 e0 ldi r20, 0x08 ; 8
44e2: 40 93 76 05 sts 0x0576, r20
44e6: 80 93 77 05 sts 0x0577, r24
44ea: 8a e2 ldi r24, 0x2A ; 42
44ec: 80 93 78 05 sts 0x0578, r24
44f0: 10 92 79 05 sts 0x0579, r1
44f4: 10 92 7c 05 sts 0x057C, r1
44f8: 8c e8 ldi r24, 0x8C ; 140
44fa: 80 93 7a 05 sts 0x057A, r24
44fe: 50 93 7b 05 sts 0x057B, r21
4502: 10 92 7e 05 sts 0x057E, r1
4506: 10 92 7f 05 sts 0x057F, r1
450a: 41 e4 ldi r20, 0x41 ; 65
450c: 40 93 40 05 sts 0x0540, r20
4510: 30 93 41 05 sts 0x0541, r19
4514: 10 92 81 05 sts 0x0581, r1
4518: 10 92 82 05 sts 0x0582, r1
451c: 36 e9 ldi r19, 0x96 ; 150
451e: 30 93 84 05 sts 0x0584, r19
4522: 90 93 59 05 sts 0x0559, r25
4526: 94 e3 ldi r25, 0x34 ; 52
4528: 90 93 5a 05 sts 0x055A, r25
452c: 10 92 85 05 sts 0x0585, r1
4530: 10 92 86 05 sts 0x0586, r1
4534: 10 92 87 05 sts 0x0587, r1
4538: 80 93 88 05 sts 0x0588, r24
453c: 20 93 89 05 sts 0x0589, r18
4540: 80 93 8a 05 sts 0x058A, r24
4544: 20 93 8b 05 sts 0x058B, r18
4548: 10 92 8e 05 sts 0x058E, r1
454c: 80 e2 ldi r24, 0x20 ; 32
454e: 80 93 3f 05 sts 0x053F, r24
4552: 8f e1 ldi r24, 0x1F ; 31
4554: 80 93 90 05 sts 0x0590, r24
4558: 8e e1 ldi r24, 0x1E ; 30
455a: 80 93 8f 05 sts 0x058F, r24
455e: 08 95 ret
 
00004560 <ParamSet_DefaultSet1>:
4560: e9 de rcall .-558 ; 0x4334 <CommonDefaults>
4562: 8a e0 ldi r24, 0x0A ; 10
4564: 80 93 32 05 sts 0x0532, r24
4568: 80 e1 ldi r24, 0x10 ; 16
456a: 80 93 33 05 sts 0x0533, r24
456e: 86 e0 ldi r24, 0x06 ; 6
4570: 80 93 34 05 sts 0x0534, r24
4574: 2a e5 ldi r18, 0x5A ; 90
4576: 20 93 39 05 sts 0x0539, r18
457a: 98 e7 ldi r25, 0x78 ; 120
457c: 90 93 3a 05 sts 0x053A, r25
4580: 20 93 3c 05 sts 0x053C, r18
4584: 90 93 3d 05 sts 0x053D, r25
4588: 80 93 3e 05 sts 0x053E, r24
458c: 80 e2 ldi r24, 0x20 ; 32
458e: 80 93 43 05 sts 0x0543, r24
4592: 8c e3 ldi r24, 0x3C ; 60
4594: 80 93 5b 05 sts 0x055B, r24
4598: 8b e4 ldi r24, 0x4B ; 75
459a: 80 93 60 05 sts 0x0560, r24
459e: 86 e4 ldi r24, 0x46 ; 70
45a0: 91 e6 ldi r25, 0x61 ; 97
45a2: a3 e7 ldi r26, 0x73 ; 115
45a4: b4 e7 ldi r27, 0x74 ; 116
45a6: 80 93 97 05 sts 0x0597, r24
45aa: 90 93 98 05 sts 0x0598, r25
45ae: a0 93 99 05 sts 0x0599, r26
45b2: b0 93 9a 05 sts 0x059A, r27
45b6: 68 e8 ldi r22, 0x88 ; 136
45b8: 70 e0 ldi r23, 0x00 ; 0
45ba: 8b e1 ldi r24, 0x1B ; 27
45bc: 95 e0 ldi r25, 0x05 ; 5
45be: 6f de rcall .-802 ; 0x429e <RAM_Checksum>
45c0: 80 93 a3 05 sts 0x05A3, r24
45c4: 08 95 ret
 
000045c6 <ParamSet_DefaultSet2>:
45c6: b6 de rcall .-660 ; 0x4334 <CommonDefaults>
45c8: 88 e0 ldi r24, 0x08 ; 8
45ca: 80 93 32 05 sts 0x0532, r24
45ce: 80 e1 ldi r24, 0x10 ; 16
45d0: 80 93 33 05 sts 0x0533, r24
45d4: 96 e0 ldi r25, 0x06 ; 6
45d6: 90 93 34 05 sts 0x0534, r25
45da: 34 e6 ldi r19, 0x64 ; 100
45dc: 30 93 39 05 sts 0x0539, r19
45e0: 28 e7 ldi r18, 0x78 ; 120
45e2: 20 93 3a 05 sts 0x053A, r18
45e6: 30 93 3c 05 sts 0x053C, r19
45ea: 20 93 3d 05 sts 0x053D, r18
45ee: 90 93 3e 05 sts 0x053E, r25
45f2: 80 93 43 05 sts 0x0543, r24
45f6: 86 e4 ldi r24, 0x46 ; 70
45f8: 80 93 5b 05 sts 0x055B, r24
45fc: 80 93 60 05 sts 0x0560, r24
4600: 85 e0 ldi r24, 0x05 ; 5
4602: e5 ec ldi r30, 0xC5 ; 197
4604: f2 e0 ldi r31, 0x02 ; 2
4606: a7 e9 ldi r26, 0x97 ; 151
4608: b5 e0 ldi r27, 0x05 ; 5
460a: 01 90 ld r0, Z+
460c: 0d 92 st X+, r0
460e: 8a 95 dec r24
4610: e1 f7 brne .-8 ; 0x460a <ParamSet_DefaultSet2+0x44>
4612: 68 e8 ldi r22, 0x88 ; 136
4614: 70 e0 ldi r23, 0x00 ; 0
4616: 8b e1 ldi r24, 0x1B ; 27
4618: 95 e0 ldi r25, 0x05 ; 5
461a: 41 de rcall .-894 ; 0x429e <RAM_Checksum>
461c: 80 93 a3 05 sts 0x05A3, r24
4620: 08 95 ret
 
00004622 <ParamSet_DefaultSet3>:
4622: 88 de rcall .-752 ; 0x4334 <CommonDefaults>
4624: 86 e0 ldi r24, 0x06 ; 6
4626: 80 93 32 05 sts 0x0532, r24
462a: 9a e0 ldi r25, 0x0A ; 10
462c: 90 93 33 05 sts 0x0533, r25
4630: 94 e0 ldi r25, 0x04 ; 4
4632: 90 93 34 05 sts 0x0534, r25
4636: 24 e6 ldi r18, 0x64 ; 100
4638: 20 93 39 05 sts 0x0539, r18
463c: 98 e7 ldi r25, 0x78 ; 120
463e: 90 93 3a 05 sts 0x053A, r25
4642: 20 93 3c 05 sts 0x053C, r18
4646: 90 93 3d 05 sts 0x053D, r25
464a: 80 93 3e 05 sts 0x053E, r24
464e: 80 e1 ldi r24, 0x10 ; 16
4650: 80 93 43 05 sts 0x0543, r24
4654: 86 e4 ldi r24, 0x46 ; 70
4656: 80 93 5b 05 sts 0x055B, r24
465a: 80 93 60 05 sts 0x0560, r24
465e: 85 e4 ldi r24, 0x45 ; 69
4660: 91 e6 ldi r25, 0x61 ; 97
4662: a3 e7 ldi r26, 0x73 ; 115
4664: b9 e7 ldi r27, 0x79 ; 121
4666: 80 93 97 05 sts 0x0597, r24
466a: 90 93 98 05 sts 0x0598, r25
466e: a0 93 99 05 sts 0x0599, r26
4672: b0 93 9a 05 sts 0x059A, r27
4676: 68 e8 ldi r22, 0x88 ; 136
4678: 70 e0 ldi r23, 0x00 ; 0
467a: 8b e1 ldi r24, 0x1B ; 27
467c: 95 e0 ldi r25, 0x05 ; 5
467e: 0f de rcall .-994 ; 0x429e <RAM_Checksum>
4680: 80 93 a3 05 sts 0x05A3, r24
4684: 08 95 ret
 
00004686 <GetParamByte>:
4686: 0c 94 bb 9b jmp 0x13776 ; 0x13776 <__eerd_byte_m1284>
 
0000468a <SetParamByte>:
468a: 0c 94 d1 9b jmp 0x137a2 ; 0x137a2 <__eewr_byte_m1284>
 
0000468e <GetParamWord>:
468e: 0c 94 c3 9b jmp 0x13786 ; 0x13786 <__eerd_word_m1284>
 
00004692 <SetParamWord>:
4692: 0c 94 df 9b jmp 0x137be ; 0x137be <__eewr_word_m1284>
 
00004696 <ParamSet_ReadFromEEProm>:
4696: ff 92 push r15
4698: 0f 93 push r16
469a: 1f 93 push r17
469c: cf 93 push r28
469e: df 93 push r29
46a0: 9f ef ldi r25, 0xFF ; 255
46a2: 98 0f add r25, r24
46a4: 95 30 cpi r25, 0x05 ; 5
46a6: 08 f0 brcs .+2 ; 0x46aa <ParamSet_ReadFromEEProm+0x14>
46a8: 83 e0 ldi r24, 0x03 ; 3
46aa: 28 2f mov r18, r24
46ac: 30 e0 ldi r19, 0x00 ; 0
46ae: 21 50 subi r18, 0x01 ; 1
46b0: 31 09 sbc r19, r1
46b2: 89 e8 ldi r24, 0x89 ; 137
46b4: 82 9f mul r24, r18
46b6: 80 01 movw r16, r0
46b8: 83 9f mul r24, r19
46ba: 10 0d add r17, r0
46bc: 11 24 eor r1, r1
46be: e8 01 movw r28, r16
46c0: cc 59 subi r28, 0x9C ; 156
46c2: df 4f sbci r29, 0xFF ; 255
46c4: 68 e8 ldi r22, 0x88 ; 136
46c6: 70 e0 ldi r23, 0x00 ; 0
46c8: ce 01 movw r24, r28
46ca: f4 dd rcall .-1048 ; 0x42b4 <EEProm_Checksum>
46cc: f8 2e mov r15, r24
46ce: c8 01 movw r24, r16
46d0: 84 51 subi r24, 0x14 ; 20
46d2: 9f 4f sbci r25, 0xFF ; 255
46d4: 0e 94 bb 9b call 0x13776 ; 0x13776 <__eerd_byte_m1284>
46d8: f8 12 cpse r15, r24
46da: 12 c0 rjmp .+36 ; 0x4700 <ParamSet_ReadFromEEProm+0x6a>
46dc: ce 01 movw r24, r28
46de: 0e 94 bb 9b call 0x13776 ; 0x13776 <__eerd_byte_m1284>
46e2: 87 36 cpi r24, 0x67 ; 103
46e4: 69 f4 brne .+26 ; 0x4700 <ParamSet_ReadFromEEProm+0x6a>
46e6: 49 e8 ldi r20, 0x89 ; 137
46e8: 50 e0 ldi r21, 0x00 ; 0
46ea: be 01 movw r22, r28
46ec: 8b e1 ldi r24, 0x1B ; 27
46ee: 95 e0 ldi r25, 0x05 ; 5
46f0: 0e 94 ab 9b call 0x13756 ; 0x13756 <__eerd_block_m1284>
46f4: 0e 94 fa 73 call 0xe7f4 ; 0xe7f4 <LED_Init>
46f8: 0e 94 aa 14 call 0x2954 ; 0x2954 <LIBFC_HoTT_Clear>
46fc: 81 e0 ldi r24, 0x01 ; 1
46fe: 01 c0 rjmp .+2 ; 0x4702 <ParamSet_ReadFromEEProm+0x6c>
4700: 80 e0 ldi r24, 0x00 ; 0
4702: df 91 pop r29
4704: cf 91 pop r28
4706: 1f 91 pop r17
4708: 0f 91 pop r16
470a: ff 90 pop r15
470c: 08 95 ret
 
0000470e <MixerTable_ReadFromEEProm>:
470e: cf 93 push r28
4710: 6d e4 ldi r22, 0x4D ; 77
4712: 70 e0 ldi r23, 0x00 ; 0
4714: 88 ee ldi r24, 0xE8 ; 232
4716: 93 e0 ldi r25, 0x03 ; 3
4718: cd dd rcall .-1126 ; 0x42b4 <EEProm_Checksum>
471a: c8 2f mov r28, r24
471c: 85 e3 ldi r24, 0x35 ; 53
471e: 94 e0 ldi r25, 0x04 ; 4
4720: 0e 94 bb 9b call 0x13776 ; 0x13776 <__eerd_byte_m1284>
4724: c8 13 cpse r28, r24
4726: 10 c0 rjmp .+32 ; 0x4748 <MixerTable_ReadFromEEProm+0x3a>
4728: 88 ee ldi r24, 0xE8 ; 232
472a: 93 e0 ldi r25, 0x03 ; 3
472c: 0e 94 bb 9b call 0x13776 ; 0x13776 <__eerd_byte_m1284>
4730: 81 30 cpi r24, 0x01 ; 1
4732: 51 f4 brne .+20 ; 0x4748 <MixerTable_ReadFromEEProm+0x3a>
4734: 4e e4 ldi r20, 0x4E ; 78
4736: 50 e0 ldi r21, 0x00 ; 0
4738: 68 ee ldi r22, 0xE8 ; 232
473a: 73 e0 ldi r23, 0x03 ; 3
473c: 84 ea ldi r24, 0xA4 ; 164
473e: 95 e0 ldi r25, 0x05 ; 5
4740: 0e 94 ab 9b call 0x13756 ; 0x13756 <__eerd_block_m1284>
4744: 81 e0 ldi r24, 0x01 ; 1
4746: 01 c0 rjmp .+2 ; 0x474a <MixerTable_ReadFromEEProm+0x3c>
4748: 80 e0 ldi r24, 0x00 ; 0
474a: cf 91 pop r28
474c: 08 95 ret
 
0000474e <MixerTable_WriteToEEProm>:
474e: 80 91 a4 05 lds r24, 0x05A4
4752: 81 30 cpi r24, 0x01 ; 1
4754: 89 f4 brne .+34 ; 0x4778 <MixerTable_WriteToEEProm+0x2a>
4756: 6d e4 ldi r22, 0x4D ; 77
4758: 70 e0 ldi r23, 0x00 ; 0
475a: 84 ea ldi r24, 0xA4 ; 164
475c: 95 e0 ldi r25, 0x05 ; 5
475e: 9f dd rcall .-1218 ; 0x429e <RAM_Checksum>
4760: 80 93 f1 05 sts 0x05F1, r24
4764: 4e e4 ldi r20, 0x4E ; 78
4766: 50 e0 ldi r21, 0x00 ; 0
4768: 68 ee ldi r22, 0xE8 ; 232
476a: 73 e0 ldi r23, 0x03 ; 3
476c: 84 ea ldi r24, 0xA4 ; 164
476e: 95 e0 ldi r25, 0x05 ; 5
4770: 0e 94 c8 9b call 0x13790 ; 0x13790 <__eewr_block_m1284>
4774: 81 e0 ldi r24, 0x01 ; 1
4776: 08 95 ret
4778: 80 e0 ldi r24, 0x00 ; 0
477a: 08 95 ret
 
0000477c <MixerTable_Default>:
477c: 81 e0 ldi r24, 0x01 ; 1
477e: 80 93 a4 05 sts 0x05A4, r24
4782: e4 eb ldi r30, 0xB4 ; 180
4784: f5 e0 ldi r31, 0x05 ; 5
4786: df 01 movw r26, r30
4788: 13 97 sbiw r26, 0x03 ; 3
478a: 1c 92 st X, r1
478c: 11 96 adiw r26, 0x01 ; 1
478e: 1c 92 st X, r1
4790: 11 96 adiw r26, 0x01 ; 1
4792: 1c 92 st X, r1
4794: 10 82 st Z, r1
4796: 34 96 adiw r30, 0x04 ; 4
4798: 85 e0 ldi r24, 0x05 ; 5
479a: e4 3f cpi r30, 0xF4 ; 244
479c: f8 07 cpc r31, r24
479e: 99 f7 brne .-26 ; 0x4786 <MixerTable_Default+0xa>
47a0: 80 e4 ldi r24, 0x40 ; 64
47a2: 80 93 b1 05 sts 0x05B1, r24
47a6: 80 93 b2 05 sts 0x05B2, r24
47aa: 10 92 b3 05 sts 0x05B3, r1
47ae: 80 93 b4 05 sts 0x05B4, r24
47b2: 80 93 b5 05 sts 0x05B5, r24
47b6: 90 ec ldi r25, 0xC0 ; 192
47b8: 90 93 b6 05 sts 0x05B6, r25
47bc: 10 92 b7 05 sts 0x05B7, r1
47c0: 80 93 b8 05 sts 0x05B8, r24
47c4: 80 93 b9 05 sts 0x05B9, r24
47c8: 10 92 ba 05 sts 0x05BA, r1
47cc: 90 93 bb 05 sts 0x05BB, r25
47d0: 90 93 bc 05 sts 0x05BC, r25
47d4: 80 93 bd 05 sts 0x05BD, r24
47d8: 10 92 be 05 sts 0x05BE, r1
47dc: 80 93 bf 05 sts 0x05BF, r24
47e0: 90 93 c0 05 sts 0x05C0, r25
47e4: 8c e0 ldi r24, 0x0C ; 12
47e6: e8 eb ldi r30, 0xB8 ; 184
47e8: f2 e0 ldi r31, 0x02 ; 2
47ea: a5 ea ldi r26, 0xA5 ; 165
47ec: b5 e0 ldi r27, 0x05 ; 5
47ee: 01 90 ld r0, Z+
47f0: 0d 92 st X+, r0
47f2: 8a 95 dec r24
47f4: e1 f7 brne .-8 ; 0x47ee <MixerTable_Default+0x72>
47f6: 6d e4 ldi r22, 0x4D ; 77
47f8: 70 e0 ldi r23, 0x00 ; 0
47fa: 84 ea ldi r24, 0xA4 ; 164
47fc: 95 e0 ldi r25, 0x05 ; 5
47fe: 4f dd rcall .-1378 ; 0x429e <RAM_Checksum>
4800: 80 93 f1 05 sts 0x05F1, r24
4804: 08 95 ret
 
00004806 <GetActiveParamSet>:
4806: 82 e0 ldi r24, 0x02 ; 2
4808: 90 e0 ldi r25, 0x00 ; 0
480a: 0e 94 bb 9b call 0x13776 ; 0x13776 <__eerd_byte_m1284>
480e: 86 30 cpi r24, 0x06 ; 6
4810: 30 f0 brcs .+12 ; 0x481e <GetActiveParamSet+0x18>
4812: 63 e0 ldi r22, 0x03 ; 3
4814: 82 e0 ldi r24, 0x02 ; 2
4816: 90 e0 ldi r25, 0x00 ; 0
4818: 0e 94 d1 9b call 0x137a2 ; 0x137a2 <__eewr_byte_m1284>
481c: 83 e0 ldi r24, 0x03 ; 3
481e: 80 93 52 01 sts 0x0152, r24
4822: 08 95 ret
 
00004824 <SetActiveParamSet>:
4824: 86 30 cpi r24, 0x06 ; 6
4826: 20 f4 brcc .+8 ; 0x4830 <SetActiveParamSet+0xc>
4828: 81 11 cpse r24, r1
482a: 03 c0 rjmp .+6 ; 0x4832 <SetActiveParamSet+0xe>
482c: 81 e0 ldi r24, 0x01 ; 1
482e: 01 c0 rjmp .+2 ; 0x4832 <SetActiveParamSet+0xe>
4830: 85 e0 ldi r24, 0x05 ; 5
4832: 80 93 52 01 sts 0x0152, r24
4836: 68 2f mov r22, r24
4838: 82 e0 ldi r24, 0x02 ; 2
483a: 90 e0 ldi r25, 0x00 ; 0
483c: 0c 94 d1 9b jmp 0x137a2 ; 0x137a2 <__eewr_byte_m1284>
 
00004840 <ParamSet_WriteToEEProm>:
4840: cf 93 push r28
4842: c8 2f mov r28, r24
4844: 80 91 1b 05 lds r24, 0x051B
4848: 87 36 cpi r24, 0x67 ; 103
484a: 09 f0 breq .+2 ; 0x484e <ParamSet_WriteToEEProm+0xe>
484c: 47 c0 rjmp .+142 ; 0x48dc <ParamSet_WriteToEEProm+0x9c>
484e: c6 30 cpi r28, 0x06 ; 6
4850: 20 f4 brcc .+8 ; 0x485a <ParamSet_WriteToEEProm+0x1a>
4852: cc 23 and r28, r28
4854: 09 f4 brne .+2 ; 0x4858 <ParamSet_WriteToEEProm+0x18>
4856: 42 c0 rjmp .+132 ; 0x48dc <ParamSet_WriteToEEProm+0x9c>
4858: 01 c0 rjmp .+2 ; 0x485c <ParamSet_WriteToEEProm+0x1c>
485a: c5 e0 ldi r28, 0x05 ; 5
485c: 0e 94 70 19 call 0x32e0 ; 0x32e0 <LIBFC_CheckSettings>
4860: 80 91 96 05 lds r24, 0x0596
4864: 82 ff sbrs r24, 2
4866: 07 c0 rjmp .+14 ; 0x4876 <ParamSet_WriteToEEProm+0x36>
4868: 80 91 40 05 lds r24, 0x0540
486c: 84 36 cpi r24, 0x64 ; 100
486e: 18 f0 brcs .+6 ; 0x4876 <ParamSet_WriteToEEProm+0x36>
4870: 80 e5 ldi r24, 0x50 ; 80
4872: 80 93 40 05 sts 0x0540, r24
4876: 68 e8 ldi r22, 0x88 ; 136
4878: 70 e0 ldi r23, 0x00 ; 0
487a: 8b e1 ldi r24, 0x1B ; 27
487c: 95 e0 ldi r25, 0x05 ; 5
487e: 0f dd rcall .-1506 ; 0x429e <RAM_Checksum>
4880: 80 93 a3 05 sts 0x05A3, r24
4884: 2c 2f mov r18, r28
4886: 30 e0 ldi r19, 0x00 ; 0
4888: 21 50 subi r18, 0x01 ; 1
488a: 31 09 sbc r19, r1
488c: 89 e8 ldi r24, 0x89 ; 137
488e: 82 9f mul r24, r18
4890: b0 01 movw r22, r0
4892: 83 9f mul r24, r19
4894: 70 0d add r23, r0
4896: 11 24 eor r1, r1
4898: 6c 59 subi r22, 0x9C ; 156
489a: 7f 4f sbci r23, 0xFF ; 255
489c: 49 e8 ldi r20, 0x89 ; 137
489e: 50 e0 ldi r21, 0x00 ; 0
48a0: 8b e1 ldi r24, 0x1B ; 27
48a2: 95 e0 ldi r25, 0x05 ; 5
48a4: 0e 94 c8 9b call 0x13790 ; 0x13790 <__eewr_block_m1284>
48a8: 4c e0 ldi r20, 0x0C ; 12
48aa: 50 e0 ldi r21, 0x00 ; 0
48ac: 60 e5 ldi r22, 0x50 ; 80
48ae: 70 e0 ldi r23, 0x00 ; 0
48b0: 8c e1 ldi r24, 0x1C ; 28
48b2: 95 e0 ldi r25, 0x05 ; 5
48b4: 0e 94 c8 9b call 0x13790 ; 0x13790 <__eewr_block_m1284>
48b8: 6c e0 ldi r22, 0x0C ; 12
48ba: 70 e0 ldi r23, 0x00 ; 0
48bc: 8c e1 ldi r24, 0x1C ; 28
48be: 95 e0 ldi r25, 0x05 ; 5
48c0: ee dc rcall .-1572 ; 0x429e <RAM_Checksum>
48c2: 68 2f mov r22, r24
48c4: 8c e5 ldi r24, 0x5C ; 92
48c6: 90 e0 ldi r25, 0x00 ; 0
48c8: 0e 94 d1 9b call 0x137a2 ; 0x137a2 <__eewr_byte_m1284>
48cc: 8c 2f mov r24, r28
48ce: aa df rcall .-172 ; 0x4824 <SetActiveParamSet>
48d0: 0e 94 fa 73 call 0xe7f4 ; 0xe7f4 <LED_Init>
48d4: 0e 94 aa 14 call 0x2954 ; 0x2954 <LIBFC_HoTT_Clear>
48d8: 81 e0 ldi r24, 0x01 ; 1
48da: 01 c0 rjmp .+2 ; 0x48de <ParamSet_WriteToEEProm+0x9e>
48dc: 80 e0 ldi r24, 0x00 ; 0
48de: cf 91 pop r28
48e0: 08 95 ret
 
000048e2 <SetDefaultParameter>:
48e2: cf 93 push r28
48e4: df 93 push r29
48e6: c8 2f mov r28, r24
48e8: d6 2f mov r29, r22
48ea: 86 30 cpi r24, 0x06 ; 6
48ec: 68 f4 brcc .+26 ; 0x4908 <SetDefaultParameter+0x26>
48ee: 88 23 and r24, r24
48f0: 31 f0 breq .+12 ; 0x48fe <SetDefaultParameter+0x1c>
48f2: 82 30 cpi r24, 0x02 ; 2
48f4: 39 f0 breq .+14 ; 0x4904 <SetDefaultParameter+0x22>
48f6: 83 30 cpi r24, 0x03 ; 3
48f8: 41 f0 breq .+16 ; 0x490a <SetDefaultParameter+0x28>
48fa: 81 30 cpi r24, 0x01 ; 1
48fc: 31 f4 brne .+12 ; 0x490a <SetDefaultParameter+0x28>
48fe: 30 de rcall .-928 ; 0x4560 <ParamSet_DefaultSet1>
4900: c1 e0 ldi r28, 0x01 ; 1
4902: 04 c0 rjmp .+8 ; 0x490c <SetDefaultParameter+0x2a>
4904: 60 de rcall .-832 ; 0x45c6 <ParamSet_DefaultSet2>
4906: 02 c0 rjmp .+4 ; 0x490c <SetDefaultParameter+0x2a>
4908: c5 e0 ldi r28, 0x05 ; 5
490a: 8b de rcall .-746 ; 0x4622 <ParamSet_DefaultSet3>
490c: dd 23 and r29, r29
490e: a9 f0 breq .+42 ; 0x493a <SetDefaultParameter+0x58>
4910: 6c e0 ldi r22, 0x0C ; 12
4912: 70 e0 ldi r23, 0x00 ; 0
4914: 80 e5 ldi r24, 0x50 ; 80
4916: 90 e0 ldi r25, 0x00 ; 0
4918: cd dc rcall .-1638 ; 0x42b4 <EEProm_Checksum>
491a: d8 2f mov r29, r24
491c: 8c e5 ldi r24, 0x5C ; 92
491e: 90 e0 ldi r25, 0x00 ; 0
4920: 0e 94 bb 9b call 0x13776 ; 0x13776 <__eerd_byte_m1284>
4924: d8 13 cpse r29, r24
4926: 09 c0 rjmp .+18 ; 0x493a <SetDefaultParameter+0x58>
4928: 4c e0 ldi r20, 0x0C ; 12
492a: 50 e0 ldi r21, 0x00 ; 0
492c: 60 e5 ldi r22, 0x50 ; 80
492e: 70 e0 ldi r23, 0x00 ; 0
4930: 8c e1 ldi r24, 0x1C ; 28
4932: 95 e0 ldi r25, 0x05 ; 5
4934: 0e 94 ab 9b call 0x13756 ; 0x13756 <__eerd_block_m1284>
4938: 01 c0 rjmp .+2 ; 0x493c <SetDefaultParameter+0x5a>
493a: d7 dc rcall .-1618 ; 0x42ea <ParamSet_DefaultStickMapping>
493c: 8c 2f mov r24, r28
493e: df 91 pop r29
4940: cf 91 pop r28
4942: 7e cf rjmp .-260 ; 0x4840 <ParamSet_WriteToEEProm>
 
00004944 <ParamSet_Init>:
4944: 9f 92 push r9
4946: af 92 push r10
4948: bf 92 push r11
494a: cf 92 push r12
494c: df 92 push r13
494e: ef 92 push r14
4950: ff 92 push r15
4952: 0f 93 push r16
4954: 1f 93 push r17
4956: cf 93 push r28
4958: df 93 push r29
495a: c0 91 54 01 lds r28, 0x0154
495e: 81 e1 ldi r24, 0x11 ; 17
4960: 90 e0 ldi r25, 0x00 ; 0
4962: 0e 94 bb 9b call 0x13776 ; 0x13776 <__eerd_byte_m1284>
4966: c8 17 cp r28, r24
4968: 71 f1 breq .+92 ; 0x49c6 <ParamSet_Init+0x82>
496a: c6 31 cpi r28, 0x16 ; 22
496c: 49 f4 brne .+18 ; 0x4980 <ParamSet_Init+0x3c>
496e: 85 31 cpi r24, 0x15 ; 21
4970: 39 f4 brne .+14 ; 0x4980 <ParamSet_Init+0x3c>
4972: 4c 99 sbic 0x09, 4 ; 9
4974: 05 c0 rjmp .+10 ; 0x4980 <ParamSet_Init+0x3c>
4976: 60 e0 ldi r22, 0x00 ; 0
4978: 81 e0 ldi r24, 0x01 ; 1
497a: 90 e0 ldi r25, 0x00 ; 0
497c: 0e 94 d1 9b call 0x137a2 ; 0x137a2 <__eewr_byte_m1284>
4980: 60 91 54 01 lds r22, 0x0154
4984: 81 e1 ldi r24, 0x11 ; 17
4986: 90 e0 ldi r25, 0x00 ; 0
4988: 0e 94 d1 9b call 0x137a2 ; 0x137a2 <__eewr_byte_m1284>
498c: 28 e0 ldi r18, 0x08 ; 8
498e: 88 e1 ldi r24, 0x18 ; 24
4990: 90 e0 ldi r25, 0x00 ; 0
4992: 0f b6 in r0, 0x3f ; 63
4994: f8 94 cli
4996: a8 95 wdr
4998: 80 93 60 00 sts 0x0060, r24
499c: 0f be out 0x3f, r0 ; 63
499e: 20 93 60 00 sts 0x0060, r18
49a2: 83 e0 ldi r24, 0x03 ; 3
49a4: 92 e0 ldi r25, 0x02 ; 2
49a6: 9f 93 push r25
49a8: 8f 93 push r24
49aa: 8c e9 ldi r24, 0x9C ; 156
49ac: 96 e9 ldi r25, 0x96 ; 150
49ae: 9f 93 push r25
49b0: 8f 93 push r24
49b2: e0 91 55 06 lds r30, 0x0655
49b6: f0 91 56 06 lds r31, 0x0656
49ba: 09 95 icall
49bc: 0f 90 pop r0
49be: 0f 90 pop r0
49c0: 0f 90 pop r0
49c2: 0f 90 pop r0
49c4: ff cf rjmp .-2 ; 0x49c4 <ParamSet_Init+0x80>
49c6: 81 e0 ldi r24, 0x01 ; 1
49c8: 90 e0 ldi r25, 0x00 ; 0
49ca: 0e 94 bb 9b call 0x13776 ; 0x13776 <__eerd_byte_m1284>
49ce: dd 24 eor r13, r13
49d0: d3 94 inc r13
49d2: 87 36 cpi r24, 0x67 ; 103
49d4: 09 f4 brne .+2 ; 0x49d8 <ParamSet_Init+0x94>
49d6: d1 2c mov r13, r1
49d8: 6c e0 ldi r22, 0x0C ; 12
49da: 70 e0 ldi r23, 0x00 ; 0
49dc: 80 e5 ldi r24, 0x50 ; 80
49de: 90 e0 ldi r25, 0x00 ; 0
49e0: 69 dc rcall .-1838 ; 0x42b4 <EEProm_Checksum>
49e2: a8 2e mov r10, r24
49e4: 8c e5 ldi r24, 0x5C ; 92
49e6: 90 e0 ldi r25, 0x00 ; 0
49e8: 0e 94 bb 9b call 0x13776 ; 0x13776 <__eerd_byte_m1284>
49ec: 98 2e mov r9, r24
49ee: c1 e0 ldi r28, 0x01 ; 1
49f0: d0 e0 ldi r29, 0x00 ; 0
49f2: b1 2c mov r11, r1
49f4: 0d ed ldi r16, 0xDD ; 221
49f6: 11 e0 ldi r17, 0x01 ; 1
49f8: 9c e9 ldi r25, 0x9C ; 156
49fa: e9 2e mov r14, r25
49fc: 96 e9 ldi r25, 0x96 ; 150
49fe: f9 2e mov r15, r25
4a00: cc 2e mov r12, r28
4a02: dd 20 and r13, r13
4a04: c9 f0 breq .+50 ; 0x4a38 <ParamSet_Init+0xf4>
4a06: df 93 push r29
4a08: cf 93 push r28
4a0a: 1f 93 push r17
4a0c: 0f 93 push r16
4a0e: ff 92 push r15
4a10: ef 92 push r14
4a12: e0 91 55 06 lds r30, 0x0655
4a16: f0 91 56 06 lds r31, 0x0656
4a1a: 09 95 icall
4a1c: 0f 90 pop r0
4a1e: 0f 90 pop r0
4a20: 0f 90 pop r0
4a22: 0f 90 pop r0
4a24: 0f 90 pop r0
4a26: 0f 90 pop r0
4a28: 81 e0 ldi r24, 0x01 ; 1
4a2a: c8 16 cp r12, r24
4a2c: 51 f0 breq .+20 ; 0x4a42 <ParamSet_Init+0xfe>
4a2e: 92 e0 ldi r25, 0x02 ; 2
4a30: c9 12 cpse r12, r25
4a32: 09 c0 rjmp .+18 ; 0x4a46 <ParamSet_Init+0x102>
4a34: c8 dd rcall .-1136 ; 0x45c6 <ParamSet_DefaultSet2>
4a36: 08 c0 rjmp .+16 ; 0x4a48 <ParamSet_Init+0x104>
4a38: 8c 2f mov r24, r28
4a3a: 2d de rcall .-934 ; 0x4696 <ParamSet_ReadFromEEProm>
4a3c: 88 23 and r24, r24
4a3e: 19 f3 breq .-58 ; 0x4a06 <ParamSet_Init+0xc2>
4a40: 13 c0 rjmp .+38 ; 0x4a68 <ParamSet_Init+0x124>
4a42: 8e dd rcall .-1252 ; 0x4560 <ParamSet_DefaultSet1>
4a44: 01 c0 rjmp .+2 ; 0x4a48 <ParamSet_Init+0x104>
4a46: ed dd rcall .-1062 ; 0x4622 <ParamSet_DefaultSet3>
4a48: a9 10 cpse r10, r9
4a4a: 09 c0 rjmp .+18 ; 0x4a5e <ParamSet_Init+0x11a>
4a4c: 4c e0 ldi r20, 0x0C ; 12
4a4e: 50 e0 ldi r21, 0x00 ; 0
4a50: 60 e5 ldi r22, 0x50 ; 80
4a52: 70 e0 ldi r23, 0x00 ; 0
4a54: 8c e1 ldi r24, 0x1C ; 28
4a56: 95 e0 ldi r25, 0x05 ; 5
4a58: 0e 94 ab 9b call 0x13756 ; 0x13756 <__eerd_block_m1284>
4a5c: 01 c0 rjmp .+2 ; 0x4a60 <ParamSet_Init+0x11c>
4a5e: 45 dc rcall .-1910 ; 0x42ea <ParamSet_DefaultStickMapping>
4a60: 8c 2d mov r24, r12
4a62: ee de rcall .-548 ; 0x4840 <ParamSet_WriteToEEProm>
4a64: bb 24 eor r11, r11
4a66: b3 94 inc r11
4a68: 21 96 adiw r28, 0x01 ; 1
4a6a: c6 30 cpi r28, 0x06 ; 6
4a6c: d1 05 cpc r29, r1
4a6e: 41 f6 brne .-112 ; 0x4a00 <ParamSet_Init+0xbc>
4a70: bb 20 and r11, r11
4a72: 11 f0 breq .+4 ; 0x4a78 <ParamSet_Init+0x134>
4a74: 83 e0 ldi r24, 0x03 ; 3
4a76: d6 de rcall .-596 ; 0x4824 <SetActiveParamSet>
4a78: c6 de rcall .-628 ; 0x4806 <GetActiveParamSet>
4a7a: c8 2f mov r28, r24
4a7c: 0c de rcall .-1000 ; 0x4696 <ParamSet_ReadFromEEProm>
4a7e: 1f 92 push r1
4a80: cf 93 push r28
4a82: 84 ec ldi r24, 0xC4 ; 196
4a84: 91 e0 ldi r25, 0x01 ; 1
4a86: 9f 93 push r25
4a88: 8f 93 push r24
4a8a: 8c e9 ldi r24, 0x9C ; 156
4a8c: 96 e9 ldi r25, 0x96 ; 150
4a8e: 9f 93 push r25
4a90: 8f 93 push r24
4a92: e0 91 55 06 lds r30, 0x0655
4a96: f0 91 56 06 lds r31, 0x0656
4a9a: 09 95 icall
4a9c: 81 e0 ldi r24, 0x01 ; 1
4a9e: 90 e0 ldi r25, 0x00 ; 0
4aa0: 0e 94 bb 9b call 0x13776 ; 0x13776 <__eerd_byte_m1284>
4aa4: 0f 90 pop r0
4aa6: 0f 90 pop r0
4aa8: 0f 90 pop r0
4aaa: 0f 90 pop r0
4aac: 0f 90 pop r0
4aae: 0f 90 pop r0
4ab0: 8f 3f cpi r24, 0xFF ; 255
4ab2: a1 f4 brne .+40 ; 0x4adc <ParamSet_Init+0x198>
4ab4: 83 ea ldi r24, 0xA3 ; 163
4ab6: 91 e0 ldi r25, 0x01 ; 1
4ab8: 9f 93 push r25
4aba: 8f 93 push r24
4abc: 8c e9 ldi r24, 0x9C ; 156
4abe: 96 e9 ldi r25, 0x96 ; 150
4ac0: 9f 93 push r25
4ac2: 8f 93 push r24
4ac4: e0 91 55 06 lds r30, 0x0655
4ac8: f0 91 56 06 lds r31, 0x0656
4acc: 09 95 icall
4ace: 56 de rcall .-852 ; 0x477c <MixerTable_Default>
4ad0: 3e de rcall .-900 ; 0x474e <MixerTable_WriteToEEProm>
4ad2: 0f 90 pop r0
4ad4: 0f 90 pop r0
4ad6: 0f 90 pop r0
4ad8: 0f 90 pop r0
4ada: 03 c0 rjmp .+6 ; 0x4ae2 <ParamSet_Init+0x19e>
4adc: 18 de rcall .-976 ; 0x470e <MixerTable_ReadFromEEProm>
4ade: 88 23 and r24, r24
4ae0: 49 f3 breq .-46 ; 0x4ab4 <ParamSet_Init+0x170>
4ae2: dd 20 and r13, r13
4ae4: 29 f0 breq .+10 ; 0x4af0 <ParamSet_Init+0x1ac>
4ae6: 67 e6 ldi r22, 0x67 ; 103
4ae8: 81 e0 ldi r24, 0x01 ; 1
4aea: 90 e0 ldi r25, 0x00 ; 0
4aec: 0e 94 d1 9b call 0x137a2 ; 0x137a2 <__eewr_byte_m1284>
4af0: e1 eb ldi r30, 0xB1 ; 177
4af2: f5 e0 ldi r31, 0x05 ; 5
4af4: 80 e0 ldi r24, 0x00 ; 0
4af6: 90 81 ld r25, Z
4af8: 19 16 cp r1, r25
4afa: 0c f4 brge .+2 ; 0x4afe <ParamSet_Init+0x1ba>
4afc: 8f 5f subi r24, 0xFF ; 255
4afe: 34 96 adiw r30, 0x04 ; 4
4b00: 95 e0 ldi r25, 0x05 ; 5
4b02: e1 3f cpi r30, 0xF1 ; 241
4b04: f9 07 cpc r31, r25
4b06: b9 f7 brne .-18 ; 0x4af6 <ParamSet_Init+0x1b2>
4b08: 80 93 1a 05 sts 0x051A, r24
4b0c: 1f 92 push r1
4b0e: 8f 93 push r24
4b10: 85 ea ldi r24, 0xA5 ; 165
4b12: 95 e0 ldi r25, 0x05 ; 5
4b14: 9f 93 push r25
4b16: 8f 93 push r24
4b18: 82 e8 ldi r24, 0x82 ; 130
4b1a: 91 e0 ldi r25, 0x01 ; 1
4b1c: 9f 93 push r25
4b1e: 8f 93 push r24
4b20: 8c e9 ldi r24, 0x9C ; 156
4b22: 96 e9 ldi r25, 0x96 ; 150
4b24: 9f 93 push r25
4b26: 8f 93 push r24
4b28: e0 91 55 06 lds r30, 0x0655
4b2c: f0 91 56 06 lds r31, 0x0656
4b30: 09 95 icall
4b32: 8d b7 in r24, 0x3d ; 61
4b34: 9e b7 in r25, 0x3e ; 62
4b36: 08 96 adiw r24, 0x08 ; 8
4b38: 0f b6 in r0, 0x3f ; 63
4b3a: f8 94 cli
4b3c: 9e bf out 0x3e, r25 ; 62
4b3e: 0f be out 0x3f, r0 ; 63
4b40: 8d bf out 0x3d, r24 ; 61
4b42: df 91 pop r29
4b44: cf 91 pop r28
4b46: 1f 91 pop r17
4b48: 0f 91 pop r16
4b4a: ff 90 pop r15
4b4c: ef 90 pop r14
4b4e: df 90 pop r13
4b50: cf 90 pop r12
4b52: bf 90 pop r11
4b54: af 90 pop r10
4b56: 9f 90 pop r9
4b58: 0c 94 28 51 jmp 0xa250 ; 0xa250 <PrintLine>
 
00004b5c <CopyDebugValues>:
4b5c: cf 92 push r12
4b5e: df 92 push r13
4b60: ef 92 push r14
4b62: ff 92 push r15
4b64: 80 91 c7 08 lds r24, 0x08C7
4b68: 90 91 c8 08 lds r25, 0x08C8
4b6c: 90 93 26 0c sts 0x0C26, r25
4b70: 80 93 25 0c sts 0x0C25, r24
4b74: 80 91 c9 08 lds r24, 0x08C9
4b78: 90 91 ca 08 lds r25, 0x08CA
4b7c: 90 93 28 0c sts 0x0C28, r25
4b80: 80 93 27 0c sts 0x0C27, r24
4b84: 80 91 3d 06 lds r24, 0x063D
4b88: 90 91 3e 06 lds r25, 0x063E
4b8c: 97 fd sbrc r25, 7
4b8e: 03 96 adiw r24, 0x03 ; 3
4b90: 95 95 asr r25
4b92: 87 95 ror r24
4b94: 95 95 asr r25
4b96: 87 95 ror r24
4b98: 90 93 2a 0c sts 0x0C2A, r25
4b9c: 80 93 29 0c sts 0x0C29, r24
4ba0: 80 91 4f 06 lds r24, 0x064F
4ba4: 90 91 50 06 lds r25, 0x0650
4ba8: 97 fd sbrc r25, 7
4baa: 03 96 adiw r24, 0x03 ; 3
4bac: 95 95 asr r25
4bae: 87 95 ror r24
4bb0: 95 95 asr r25
4bb2: 87 95 ror r24
4bb4: 90 93 2c 0c sts 0x0C2C, r25
4bb8: 80 93 2b 0c sts 0x0C2B, r24
4bbc: 20 91 61 03 lds r18, 0x0361
4bc0: 30 91 62 03 lds r19, 0x0362
4bc4: 80 91 51 04 lds r24, 0x0451
4bc8: 90 91 52 04 lds r25, 0x0452
4bcc: 82 1b sub r24, r18
4bce: 93 0b sbc r25, r19
4bd0: 90 93 2e 0c sts 0x0C2E, r25
4bd4: 80 93 2d 0c sts 0x0C2D, r24
4bd8: 60 91 fc 03 lds r22, 0x03FC
4bdc: 70 91 fd 03 lds r23, 0x03FD
4be0: 80 91 fe 03 lds r24, 0x03FE
4be4: 90 91 ff 03 lds r25, 0x03FF
4be8: 3a e0 ldi r19, 0x0A ; 10
4bea: c3 2e mov r12, r19
4bec: d1 2c mov r13, r1
4bee: e1 2c mov r14, r1
4bf0: f1 2c mov r15, r1
4bf2: a7 01 movw r20, r14
4bf4: 96 01 movw r18, r12
4bf6: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
4bfa: 30 93 30 0c sts 0x0C30, r19
4bfe: 20 93 2f 0c sts 0x0C2F, r18
4c02: 80 91 04 05 lds r24, 0x0504
4c06: 90 91 05 05 lds r25, 0x0505
4c0a: 90 93 32 0c sts 0x0C32, r25
4c0e: 80 93 31 0c sts 0x0C31, r24
4c12: 80 91 4e 01 lds r24, 0x014E
4c16: 90 91 4f 01 lds r25, 0x014F
4c1a: 90 93 36 0c sts 0x0C36, r25
4c1e: 80 93 35 0c sts 0x0C35, r24
4c22: 80 91 1a 01 lds r24, 0x011A
4c26: 90 91 1b 01 lds r25, 0x011B
4c2a: 90 93 38 0c sts 0x0C38, r25
4c2e: 80 93 37 0c sts 0x0C37, r24
4c32: 80 91 02 04 lds r24, 0x0402
4c36: 90 e0 ldi r25, 0x00 ; 0
4c38: 90 93 3a 0c sts 0x0C3A, r25
4c3c: 80 93 39 0c sts 0x0C39, r24
4c40: 80 91 fe 05 lds r24, 0x05FE
4c44: 90 91 ff 05 lds r25, 0x05FF
4c48: 90 93 3c 0c sts 0x0C3C, r25
4c4c: 80 93 3b 0c sts 0x0C3B, r24
4c50: 80 91 75 09 lds r24, 0x0975
4c54: 90 e0 ldi r25, 0x00 ; 0
4c56: 90 93 3e 0c sts 0x0C3E, r25
4c5a: 80 93 3d 0c sts 0x0C3D, r24
4c5e: 80 91 84 09 lds r24, 0x0984
4c62: 90 e0 ldi r25, 0x00 ; 0
4c64: 90 93 40 0c sts 0x0C40, r25
4c68: 80 93 3f 0c sts 0x0C3F, r24
4c6c: 80 91 93 09 lds r24, 0x0993
4c70: 90 e0 ldi r25, 0x00 ; 0
4c72: 90 93 42 0c sts 0x0C42, r25
4c76: 80 93 41 0c sts 0x0C41, r24
4c7a: 80 91 a2 09 lds r24, 0x09A2
4c7e: 90 e0 ldi r25, 0x00 ; 0
4c80: 90 93 44 0c sts 0x0C44, r25
4c84: 80 93 43 0c sts 0x0C43, r24
4c88: 80 91 c4 04 lds r24, 0x04C4
4c8c: 90 91 c5 04 lds r25, 0x04C5
4c90: 90 93 4e 0c sts 0x0C4E, r25
4c94: 80 93 4d 0c sts 0x0C4D, r24
4c98: 80 91 e6 03 lds r24, 0x03E6
4c9c: 90 91 e7 03 lds r25, 0x03E7
4ca0: 90 93 50 0c sts 0x0C50, r25
4ca4: 80 93 4f 0c sts 0x0C4F, r24
4ca8: 80 91 13 05 lds r24, 0x0513
4cac: 90 91 14 05 lds r25, 0x0514
4cb0: 90 93 52 0c sts 0x0C52, r25
4cb4: 80 93 51 0c sts 0x0C51, r24
4cb8: 80 91 17 05 lds r24, 0x0517
4cbc: 90 91 18 05 lds r25, 0x0518
4cc0: 90 93 54 0c sts 0x0C54, r25
4cc4: 80 93 53 0c sts 0x0C53, r24
4cc8: 60 91 f8 03 lds r22, 0x03F8
4ccc: 70 91 f9 03 lds r23, 0x03F9
4cd0: 80 91 fa 03 lds r24, 0x03FA
4cd4: 90 91 fb 03 lds r25, 0x03FB
4cd8: a7 01 movw r20, r14
4cda: 96 01 movw r18, r12
4cdc: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
4ce0: 30 93 56 0c sts 0x0C56, r19
4ce4: 20 93 55 0c sts 0x0C55, r18
4ce8: 80 91 19 05 lds r24, 0x0519
4cec: 90 e0 ldi r25, 0x00 ; 0
4cee: 90 93 60 0c sts 0x0C60, r25
4cf2: 80 93 5f 0c sts 0x0C5F, r24
4cf6: 80 91 68 04 lds r24, 0x0468
4cfa: 90 91 69 04 lds r25, 0x0469
4cfe: 90 93 62 0c sts 0x0C62, r25
4d02: 80 93 61 0c sts 0x0C61, r24
4d06: 80 91 66 04 lds r24, 0x0466
4d0a: 90 91 67 04 lds r25, 0x0467
4d0e: 90 93 64 0c sts 0x0C64, r25
4d12: 80 93 63 0c sts 0x0C63, r24
4d16: 90 91 3f 0a lds r25, 0x0A3F
4d1a: 80 91 24 0c lds r24, 0x0C24
4d1e: 91 11 cpse r25, r1
4d20: 04 c0 rjmp .+8 ; 0x4d2a <CopyDebugValues+0x1ce>
4d22: 90 91 40 0a lds r25, 0x0A40
4d26: 99 23 and r25, r25
4d28: 11 f0 breq .+4 ; 0x4d2e <CopyDebugValues+0x1d2>
4d2a: 81 60 ori r24, 0x01 ; 1
4d2c: 01 c0 rjmp .+2 ; 0x4d30 <CopyDebugValues+0x1d4>
4d2e: 8e 7f andi r24, 0xFE ; 254
4d30: 80 93 24 0c sts 0x0C24, r24
4d34: ff 90 pop r15
4d36: ef 90 pop r14
4d38: df 90 pop r13
4d3a: cf 90 pop r12
4d3c: 08 95 ret
 
00004d3e <Piep>:
4d3e: ff 92 push r15
4d40: 0f 93 push r16
4d42: 1f 93 push r17
4d44: cf 93 push r28
4d46: df 93 push r29
4d48: 8b 01 movw r16, r22
4d4a: 90 91 01 04 lds r25, 0x0401
4d4e: 91 11 cpse r25, r1
4d50: 30 c0 rjmp .+96 ; 0x4db2 <Piep+0x74>
4d52: 90 91 54 01 lds r25, 0x0154
4d56: 99 31 cpi r25, 0x19 ; 25
4d58: 11 f4 brne .+4 ; 0x4d5e <Piep+0x20>
4d5a: 29 98 cbi 0x05, 1 ; 5
4d5c: 01 c0 rjmp .+2 ; 0x4d60 <Piep+0x22>
4d5e: 29 9a sbi 0x05, 1 ; 5
4d60: f8 2e mov r15, r24
4d62: ff 20 and r15, r15
4d64: f9 f0 breq .+62 ; 0x4da4 <Piep+0x66>
4d66: 10 93 cc 04 sts 0x04CC, r17
4d6a: 00 93 cb 04 sts 0x04CB, r16
4d6e: e8 01 movw r28, r16
4d70: 20 91 cb 04 lds r18, 0x04CB
4d74: 30 91 cc 04 lds r19, 0x04CC
4d78: 23 2b or r18, r19
4d7a: 81 f0 breq .+32 ; 0x4d9c <Piep+0x5e>
4d7c: 80 91 cf 04 lds r24, 0x04CF
4d80: 88 23 and r24, r24
4d82: b1 f3 breq .-20 ; 0x4d70 <Piep+0x32>
4d84: 10 92 cf 04 sts 0x04CF, r1
4d88: 20 91 cb 04 lds r18, 0x04CB
4d8c: 30 91 cc 04 lds r19, 0x04CC
4d90: 23 2b or r18, r19
4d92: 09 f4 brne .+2 ; 0x4d96 <Piep+0x58>
4d94: 21 97 sbiw r28, 0x01 ; 1
4d96: 0e 94 86 19 call 0x330c ; 0x330c <LIBFC_Polling>
4d9a: ea cf rjmp .-44 ; 0x4d70 <Piep+0x32>
4d9c: 20 97 sbiw r28, 0x00 ; 0
4d9e: 71 f7 brne .-36 ; 0x4d7c <Piep+0x3e>
4da0: fa 94 dec r15
4da2: df cf rjmp .-66 ; 0x4d62 <Piep+0x24>
4da4: 80 91 54 01 lds r24, 0x0154
4da8: 89 31 cpi r24, 0x19 ; 25
4daa: 11 f4 brne .+4 ; 0x4db0 <Piep+0x72>
4dac: 29 9a sbi 0x05, 1 ; 5
4dae: 01 c0 rjmp .+2 ; 0x4db2 <Piep+0x74>
4db0: 29 98 cbi 0x05, 1 ; 5
4db2: df 91 pop r29
4db4: cf 91 pop r28
4db6: 1f 91 pop r17
4db8: 0f 91 pop r16
4dba: ff 90 pop r15
4dbc: 08 95 ret
 
00004dbe <CalibrierMittelwert>:
4dbe: ea e7 ldi r30, 0x7A ; 122
4dc0: f0 e0 ldi r31, 0x00 ; 0
4dc2: 10 82 st Z, r1
4dc4: 80 91 65 03 lds r24, 0x0365
4dc8: 90 91 66 03 lds r25, 0x0366
4dcc: 90 93 05 06 sts 0x0605, r25
4dd0: 80 93 04 06 sts 0x0604, r24
4dd4: 80 91 63 03 lds r24, 0x0363
4dd8: 90 91 64 03 lds r25, 0x0364
4ddc: 90 93 fa 05 sts 0x05FA, r25
4de0: 80 93 f9 05 sts 0x05F9, r24
4de4: 80 91 61 03 lds r24, 0x0361
4de8: 90 91 62 03 lds r25, 0x0362
4dec: 90 93 45 06 sts 0x0645, r25
4df0: 80 93 44 06 sts 0x0644, r24
4df4: 20 91 5d 03 lds r18, 0x035D
4df8: 30 91 5e 03 lds r19, 0x035E
4dfc: 46 e0 ldi r20, 0x06 ; 6
4dfe: 42 9f mul r20, r18
4e00: c0 01 movw r24, r0
4e02: 43 9f mul r20, r19
4e04: 90 0d add r25, r0
4e06: 11 24 eor r1, r1
4e08: 90 93 3e 06 sts 0x063E, r25
4e0c: 80 93 3d 06 sts 0x063D, r24
4e10: 20 91 5f 03 lds r18, 0x035F
4e14: 30 91 60 03 lds r19, 0x0360
4e18: 42 9f mul r20, r18
4e1a: c0 01 movw r24, r0
4e1c: 43 9f mul r20, r19
4e1e: 90 0d add r25, r0
4e20: 11 24 eor r1, r1
4e22: 90 93 50 06 sts 0x0650, r25
4e26: 80 93 4f 06 sts 0x064F, r24
4e2a: 8f ec ldi r24, 0xCF ; 207
4e2c: 80 83 st Z, r24
4e2e: 20 91 5c 05 lds r18, 0x055C
4e32: 30 e0 ldi r19, 0x00 ; 0
4e34: a4 ec ldi r26, 0xC4 ; 196
4e36: b9 e0 ldi r27, 0x09 ; 9
4e38: 0e 94 30 9b call 0x13660 ; 0x13660 <__umulhisi3>
4e3c: 60 93 46 01 sts 0x0146, r22
4e40: 70 93 47 01 sts 0x0147, r23
4e44: 80 93 48 01 sts 0x0148, r24
4e48: 90 93 49 01 sts 0x0149, r25
4e4c: 20 91 5d 05 lds r18, 0x055D
4e50: 30 e0 ldi r19, 0x00 ; 0
4e52: 0e 94 30 9b call 0x13660 ; 0x13660 <__umulhisi3>
4e56: 60 93 42 01 sts 0x0142, r22
4e5a: 70 93 43 01 sts 0x0143, r23
4e5e: 80 93 44 01 sts 0x0144, r24
4e62: 90 93 45 01 sts 0x0145, r25
4e66: 08 95 ret
 
00004e68 <SetNeutral>:
4e68: 8f 92 push r8
4e6a: 9f 92 push r9
4e6c: af 92 push r10
4e6e: bf 92 push r11
4e70: cf 92 push r12
4e72: df 92 push r13
4e74: ef 92 push r14
4e76: ff 92 push r15
4e78: 0f 93 push r16
4e7a: 1f 93 push r17
4e7c: cf 93 push r28
4e7e: df 93 push r29
4e80: 08 2f mov r16, r24
4e82: 10 92 3f 0a sts 0x0A3F, r1
4e86: 10 92 4c 04 sts 0x044C, r1
4e8a: 10 92 4b 04 sts 0x044B, r1
4e8e: 10 92 4a 04 sts 0x044A, r1
4e92: 10 92 49 04 sts 0x0449, r1
4e96: 10 92 46 04 sts 0x0446, r1
4e9a: 10 92 45 04 sts 0x0445, r1
4e9e: 10 92 44 04 sts 0x0444, r1
4ea2: 10 92 56 04 sts 0x0456, r1
4ea6: 10 92 55 04 sts 0x0455, r1
4eaa: 10 92 54 04 sts 0x0454, r1
4eae: 10 92 53 04 sts 0x0453, r1
4eb2: 10 92 52 04 sts 0x0452, r1
4eb6: 10 92 51 04 sts 0x0451, r1
4eba: 10 92 2a 01 sts 0x012A, r1
4ebe: 10 92 29 01 sts 0x0129, r1
4ec2: 10 92 56 03 sts 0x0356, r1
4ec6: 83 30 cpi r24, 0x03 ; 3
4ec8: 29 f4 brne .+10 ; 0x4ed4 <SetNeutral+0x6c>
4eca: 80 91 c7 03 lds r24, 0x03C7
4ece: 82 60 ori r24, 0x02 ; 2
4ed0: 80 93 c7 03 sts 0x03C7, r24
4ed4: 74 df rcall .-280 ; 0x4dbe <CalibrierMittelwert>
4ed6: 84 e6 ldi r24, 0x64 ; 100
4ed8: 90 e0 ldi r25, 0x00 ; 0
4eda: 0e 94 5a 88 call 0x110b4 ; 0x110b4 <Delay_ms_Mess>
4ede: 6f df rcall .-290 ; 0x4dbe <CalibrierMittelwert>
4ee0: 80 91 28 05 lds r24, 0x0528
4ee4: 80 ff sbrs r24, 0
4ee6: 13 c0 rjmp .+38 ; 0x4f0e <SetNeutral+0xa6>
4ee8: 80 91 10 01 lds r24, 0x0110
4eec: 90 91 11 01 lds r25, 0x0111
4ef0: 87 3b cpi r24, 0xB7 ; 183
4ef2: 93 40 sbci r25, 0x03 ; 3
4ef4: 50 f4 brcc .+20 ; 0x4f0a <SetNeutral+0xa2>
4ef6: 80 91 10 01 lds r24, 0x0110
4efa: 90 91 11 01 lds r25, 0x0111
4efe: 8e 3e cpi r24, 0xEE ; 238
4f00: 92 40 sbci r25, 0x02 ; 2
4f02: 18 f0 brcs .+6 ; 0x4f0a <SetNeutral+0xa2>
4f04: 80 91 56 03 lds r24, 0x0356
4f08: 81 11 cpse r24, r1
4f0a: 0e 94 ab 1a call 0x3556 ; 0x3556 <SucheLuftruckOffset>
4f0e: 80 90 10 01 lds r8, 0x0110
4f12: 90 90 11 01 lds r9, 0x0111
4f16: 87 b5 in r24, 0x27 ; 39
4f18: 8b 5f subi r24, 0xFB ; 251
4f1a: 87 bd out 0x27, r24 ; 39
4f1c: 87 b5 in r24, 0x27 ; 39
4f1e: 80 95 com r24
4f20: 88 bd out 0x28, r24 ; 40
4f22: 10 e2 ldi r17, 0x20 ; 32
4f24: c0 e0 ldi r28, 0x00 ; 0
4f26: d0 e0 ldi r29, 0x00 ; 0
4f28: c1 2c mov r12, r1
4f2a: d1 2c mov r13, r1
4f2c: a1 2c mov r10, r1
4f2e: b1 2c mov r11, r1
4f30: e1 2c mov r14, r1
4f32: f1 2c mov r15, r1
4f34: 8a e0 ldi r24, 0x0A ; 10
4f36: 90 e0 ldi r25, 0x00 ; 0
4f38: 0e 94 5a 88 call 0x110b4 ; 0x110b4 <Delay_ms_Mess>
4f3c: 80 91 61 03 lds r24, 0x0361
4f40: 90 91 62 03 lds r25, 0x0362
4f44: e8 0e add r14, r24
4f46: f9 1e adc r15, r25
4f48: 80 91 65 03 lds r24, 0x0365
4f4c: 90 91 66 03 lds r25, 0x0366
4f50: a8 0e add r10, r24
4f52: b9 1e adc r11, r25
4f54: 80 91 63 03 lds r24, 0x0363
4f58: 90 91 64 03 lds r25, 0x0364
4f5c: c8 0e add r12, r24
4f5e: d9 1e adc r13, r25
4f60: 80 91 04 05 lds r24, 0x0504
4f64: 90 91 05 05 lds r25, 0x0505
4f68: c8 0f add r28, r24
4f6a: d9 1f adc r29, r25
4f6c: 11 50 subi r17, 0x01 ; 1
4f6e: 11 f7 brne .-60 ; 0x4f34 <SetNeutral+0xcc>
4f70: 80 91 10 01 lds r24, 0x0110
4f74: 90 91 11 01 lds r25, 0x0111
4f78: 82 3f cpi r24, 0xF2 ; 242
4f7a: 93 40 sbci r25, 0x03 ; 3
4f7c: 80 f4 brcc .+32 ; 0x4f9e <SetNeutral+0x136>
4f7e: 80 91 10 01 lds r24, 0x0110
4f82: 90 91 11 01 lds r25, 0x0111
4f86: 45 97 sbiw r24, 0x15 ; 21
4f88: 50 f0 brcs .+20 ; 0x4f9e <SetNeutral+0x136>
4f8a: 80 91 10 01 lds r24, 0x0110
4f8e: 90 91 11 01 lds r25, 0x0111
4f92: 88 1a sub r8, r24
4f94: 99 0a sbc r9, r25
4f96: 90 92 0e 01 sts 0x010E, r9
4f9a: 80 92 0d 01 sts 0x010D, r8
4f9e: 87 b5 in r24, 0x27 ; 39
4fa0: 85 50 subi r24, 0x05 ; 5
4fa2: 87 bd out 0x27, r24 ; 39
4fa4: 87 b5 in r24, 0x27 ; 39
4fa6: 80 95 com r24
4fa8: 88 bd out 0x28, r24 ; 40
4faa: c5 01 movw r24, r10
4fac: 40 96 adiw r24, 0x10 ; 16
4fae: 96 95 lsr r25
4fb0: 87 95 ror r24
4fb2: 96 95 lsr r25
4fb4: 87 95 ror r24
4fb6: 90 93 56 04 sts 0x0456, r25
4fba: 80 93 55 04 sts 0x0455, r24
4fbe: 96 01 movw r18, r12
4fc0: 20 5f subi r18, 0xF0 ; 240
4fc2: 3f 4f sbci r19, 0xFF ; 255
4fc4: 36 95 lsr r19
4fc6: 27 95 ror r18
4fc8: 36 95 lsr r19
4fca: 27 95 ror r18
4fcc: 30 93 54 04 sts 0x0454, r19
4fd0: 20 93 53 04 sts 0x0453, r18
4fd4: 40 e1 ldi r20, 0x10 ; 16
4fd6: e4 0e add r14, r20
4fd8: f1 1c adc r15, r1
4fda: e5 e0 ldi r30, 0x05 ; 5
4fdc: f6 94 lsr r15
4fde: e7 94 ror r14
4fe0: ea 95 dec r30
4fe2: e1 f7 brne .-8 ; 0x4fdc <SetNeutral+0x174>
4fe4: f0 92 52 04 sts 0x0452, r15
4fe8: e0 92 51 04 sts 0x0451, r14
4fec: 60 96 adiw r28, 0x10 ; 16
4fee: f5 e0 ldi r31, 0x05 ; 5
4ff0: d6 95 lsr r29
4ff2: c7 95 ror r28
4ff4: fa 95 dec r31
4ff6: e1 f7 brne .-8 ; 0x4ff0 <SetNeutral+0x188>
4ff8: d0 93 46 04 sts 0x0446, r29
4ffc: c0 93 45 04 sts 0x0445, r28
5000: 30 93 50 04 sts 0x0450, r19
5004: 20 93 4f 04 sts 0x044F, r18
5008: 90 93 4e 04 sts 0x044E, r25
500c: 80 93 4d 04 sts 0x044D, r24
5010: 02 30 cpi r16, 0x02 ; 2
5012: 09 f0 breq .+2 ; 0x5016 <SetNeutral+0x1ae>
5014: 4c c0 rjmp .+152 ; 0x50ae <SetNeutral+0x246>
5016: 80 91 3d 06 lds r24, 0x063D
501a: 90 91 3e 06 lds r25, 0x063E
501e: 97 ff sbrs r25, 7
5020: 03 c0 rjmp .+6 ; 0x5028 <SetNeutral+0x1c0>
5022: 91 95 neg r25
5024: 81 95 neg r24
5026: 91 09 sbc r25, r1
5028: 6c e0 ldi r22, 0x0C ; 12
502a: 70 e0 ldi r23, 0x00 ; 0
502c: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
5030: 9b 01 movw r18, r22
5032: 70 93 4c 04 sts 0x044C, r23
5036: 60 93 4b 04 sts 0x044B, r22
503a: 80 91 4f 06 lds r24, 0x064F
503e: 90 91 50 06 lds r25, 0x0650
5042: 97 ff sbrs r25, 7
5044: 03 c0 rjmp .+6 ; 0x504c <SetNeutral+0x1e4>
5046: 91 95 neg r25
5048: 81 95 neg r24
504a: 91 09 sbc r25, r1
504c: 6c e0 ldi r22, 0x0C ; 12
504e: 70 e0 ldi r23, 0x00 ; 0
5050: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
5054: 70 93 4a 04 sts 0x044A, r23
5058: 60 93 49 04 sts 0x0449, r22
505c: b9 01 movw r22, r18
505e: 84 e0 ldi r24, 0x04 ; 4
5060: 90 e0 ldi r25, 0x00 ; 0
5062: 17 db rcall .-2514 ; 0x4692 <SetParamWord>
5064: 60 91 49 04 lds r22, 0x0449
5068: 70 91 4a 04 lds r23, 0x044A
506c: 86 e0 ldi r24, 0x06 ; 6
506e: 90 e0 ldi r25, 0x00 ; 0
5070: 10 db rcall .-2528 ; 0x4692 <SetParamWord>
5072: 60 91 45 04 lds r22, 0x0445
5076: 70 91 46 04 lds r23, 0x0446
507a: 88 e0 ldi r24, 0x08 ; 8
507c: 90 e0 ldi r25, 0x00 ; 0
507e: 09 db rcall .-2542 ; 0x4692 <SetParamWord>
5080: 60 91 55 04 lds r22, 0x0455
5084: 70 91 56 04 lds r23, 0x0456
5088: 82 e1 ldi r24, 0x12 ; 18
508a: 90 e0 ldi r25, 0x00 ; 0
508c: 02 db rcall .-2556 ; 0x4692 <SetParamWord>
508e: 60 91 53 04 lds r22, 0x0453
5092: 70 91 54 04 lds r23, 0x0454
5096: 84 e1 ldi r24, 0x14 ; 20
5098: 90 e0 ldi r25, 0x00 ; 0
509a: fb da rcall .-2570 ; 0x4692 <SetParamWord>
509c: 60 91 51 04 lds r22, 0x0451
50a0: 70 91 52 04 lds r23, 0x0452
50a4: 86 e1 ldi r24, 0x16 ; 22
50a6: 90 e0 ldi r25, 0x00 ; 0
50a8: f4 da rcall .-2584 ; 0x4692 <SetParamWord>
50aa: 11 e0 ldi r17, 0x01 ; 1
50ac: 91 c0 rjmp .+290 ; 0x51d0 <SetNeutral+0x368>
50ae: 84 e0 ldi r24, 0x04 ; 4
50b0: 90 e0 ldi r25, 0x00 ; 0
50b2: ed da rcall .-2598 ; 0x468e <GetParamWord>
50b4: 90 93 4c 04 sts 0x044C, r25
50b8: 80 93 4b 04 sts 0x044B, r24
50bc: 86 e0 ldi r24, 0x06 ; 6
50be: 90 e0 ldi r25, 0x00 ; 0
50c0: e6 da rcall .-2612 ; 0x468e <GetParamWord>
50c2: 90 93 4a 04 sts 0x044A, r25
50c6: 80 93 49 04 sts 0x0449, r24
50ca: 20 91 4b 04 lds r18, 0x044B
50ce: 30 91 4c 04 lds r19, 0x044C
50d2: 21 30 cpi r18, 0x01 ; 1
50d4: 38 40 sbci r19, 0x08 ; 8
50d6: 18 f4 brcc .+6 ; 0x50de <SetNeutral+0x276>
50d8: 81 30 cpi r24, 0x01 ; 1
50da: 98 40 sbci r25, 0x08 ; 8
50dc: a8 f1 brcs .+106 ; 0x5148 <SetNeutral+0x2e0>
50de: 8f e4 ldi r24, 0x4F ; 79
50e0: 92 e0 ldi r25, 0x02 ; 2
50e2: 9f 93 push r25
50e4: 8f 93 push r24
50e6: 8c e9 ldi r24, 0x9C ; 156
50e8: 96 e9 ldi r25, 0x96 ; 150
50ea: 9f 93 push r25
50ec: 8f 93 push r24
50ee: e0 91 55 06 lds r30, 0x0655
50f2: f0 91 56 06 lds r31, 0x0656
50f6: 09 95 icall
50f8: 80 91 3d 06 lds r24, 0x063D
50fc: 90 91 3e 06 lds r25, 0x063E
5100: 97 ff sbrs r25, 7
5102: 03 c0 rjmp .+6 ; 0x510a <SetNeutral+0x2a2>
5104: 91 95 neg r25
5106: 81 95 neg r24
5108: 91 09 sbc r25, r1
510a: 6c e0 ldi r22, 0x0C ; 12
510c: 70 e0 ldi r23, 0x00 ; 0
510e: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
5112: 70 93 4c 04 sts 0x044C, r23
5116: 60 93 4b 04 sts 0x044B, r22
511a: 80 91 4f 06 lds r24, 0x064F
511e: 90 91 50 06 lds r25, 0x0650
5122: 97 ff sbrs r25, 7
5124: 03 c0 rjmp .+6 ; 0x512c <SetNeutral+0x2c4>
5126: 91 95 neg r25
5128: 81 95 neg r24
512a: 91 09 sbc r25, r1
512c: 6c e0 ldi r22, 0x0C ; 12
512e: 70 e0 ldi r23, 0x00 ; 0
5130: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
5134: 70 93 4a 04 sts 0x044A, r23
5138: 60 93 49 04 sts 0x0449, r22
513c: 0f 90 pop r0
513e: 0f 90 pop r0
5140: 0f 90 pop r0
5142: 0f 90 pop r0
5144: 10 e0 ldi r17, 0x00 ; 0
5146: 01 c0 rjmp .+2 ; 0x514a <SetNeutral+0x2e2>
5148: 11 e0 ldi r17, 0x01 ; 1
514a: 80 91 c7 03 lds r24, 0x03C7
514e: 81 ff sbrs r24, 1
5150: 3f c0 rjmp .+126 ; 0x51d0 <SetNeutral+0x368>
5152: 82 e1 ldi r24, 0x12 ; 18
5154: 90 e0 ldi r25, 0x00 ; 0
5156: 9b da rcall .-2762 ; 0x468e <GetParamWord>
5158: 7c 01 movw r14, r24
515a: 84 e1 ldi r24, 0x14 ; 20
515c: 90 e0 ldi r25, 0x00 ; 0
515e: 97 da rcall .-2770 ; 0x468e <GetParamWord>
5160: ec 01 movw r28, r24
5162: 86 e1 ldi r24, 0x16 ; 22
5164: 90 e0 ldi r25, 0x00 ; 0
5166: 93 da rcall .-2778 ; 0x468e <GetParamWord>
5168: 97 01 movw r18, r14
516a: 39 51 subi r19, 0x19 ; 25
516c: 21 38 cpi r18, 0x81 ; 129
516e: 3c 40 sbci r19, 0x0C ; 12
5170: 58 f4 brcc .+22 ; 0x5188 <SetNeutral+0x320>
5172: 9e 01 movw r18, r28
5174: 39 51 subi r19, 0x19 ; 25
5176: 21 38 cpi r18, 0x81 ; 129
5178: 3c 40 sbci r19, 0x0C ; 12
517a: 30 f4 brcc .+12 ; 0x5188 <SetNeutral+0x320>
517c: 9c 01 movw r18, r24
517e: 20 52 subi r18, 0x20 ; 32
5180: 33 40 sbci r19, 0x03 ; 3
5182: 21 39 cpi r18, 0x91 ; 145
5184: 31 40 sbci r19, 0x01 ; 1
5186: c0 f0 brcs .+48 ; 0x51b8 <SetNeutral+0x350>
5188: 8b e2 ldi r24, 0x2B ; 43
518a: 92 e0 ldi r25, 0x02 ; 2
518c: 9f 93 push r25
518e: 8f 93 push r24
5190: 8c e9 ldi r24, 0x9C ; 156
5192: 96 e9 ldi r25, 0x96 ; 150
5194: 9f 93 push r25
5196: 8f 93 push r24
5198: e0 91 55 06 lds r30, 0x0655
519c: f0 91 56 06 lds r31, 0x0656
51a0: 09 95 icall
51a2: 80 91 c7 03 lds r24, 0x03C7
51a6: 8d 7f andi r24, 0xFD ; 253
51a8: 80 93 c7 03 sts 0x03C7, r24
51ac: 0f 90 pop r0
51ae: 0f 90 pop r0
51b0: 0f 90 pop r0
51b2: 0f 90 pop r0
51b4: 10 e0 ldi r17, 0x00 ; 0
51b6: 0c c0 rjmp .+24 ; 0x51d0 <SetNeutral+0x368>
51b8: f0 92 56 04 sts 0x0456, r15
51bc: e0 92 55 04 sts 0x0455, r14
51c0: d0 93 54 04 sts 0x0454, r29
51c4: c0 93 53 04 sts 0x0453, r28
51c8: 90 93 52 04 sts 0x0452, r25
51cc: 80 93 51 04 sts 0x0451, r24
51d0: 12 bc out 0x22, r1 ; 34
51d2: 11 bc out 0x21, r1 ; 33
51d4: 10 92 05 06 sts 0x0605, r1
51d8: 10 92 04 06 sts 0x0604, r1
51dc: 10 92 fa 05 sts 0x05FA, r1
51e0: 10 92 f9 05 sts 0x05F9, r1
51e4: 10 92 45 06 sts 0x0645, r1
51e8: 10 92 44 06 sts 0x0644, r1
51ec: 88 ec ldi r24, 0xC8 ; 200
51ee: 90 e0 ldi r25, 0x00 ; 0
51f0: 0e 94 5a 88 call 0x110b4 ; 0x110b4 <Delay_ms_Mess>
51f4: 80 91 5d 03 lds r24, 0x035D
51f8: 90 91 5e 03 lds r25, 0x035E
51fc: 26 e0 ldi r18, 0x06 ; 6
51fe: 28 9f mul r18, r24
5200: d0 01 movw r26, r0
5202: 29 9f mul r18, r25
5204: b0 0d add r27, r0
5206: 11 24 eor r1, r1
5208: b0 93 3e 06 sts 0x063E, r27
520c: a0 93 3d 06 sts 0x063D, r26
5210: 80 91 5f 03 lds r24, 0x035F
5214: 90 91 60 03 lds r25, 0x0360
5218: 28 9f mul r18, r24
521a: a0 01 movw r20, r0
521c: 29 9f mul r18, r25
521e: 50 0d add r21, r0
5220: 11 24 eor r1, r1
5222: 50 93 50 06 sts 0x0650, r21
5226: 40 93 4f 06 sts 0x064F, r20
522a: e0 91 37 05 lds r30, 0x0537
522e: f0 e0 ldi r31, 0x00 ; 0
5230: 9f 01 movw r18, r30
5232: 0e 94 3f 9b call 0x1367e ; 0x1367e <__usmulhisi3>
5236: 6b 01 movw r12, r22
5238: 7c 01 movw r14, r24
523a: 60 93 40 04 sts 0x0440, r22
523e: 70 93 41 04 sts 0x0441, r23
5242: 80 93 42 04 sts 0x0442, r24
5246: 90 93 43 04 sts 0x0443, r25
524a: da 01 movw r26, r20
524c: 0e 94 3f 9b call 0x1367e ; 0x1367e <__usmulhisi3>
5250: 60 93 3c 04 sts 0x043C, r22
5254: 70 93 3d 04 sts 0x043D, r23
5258: 80 93 3e 04 sts 0x043E, r24
525c: 90 93 3f 04 sts 0x043F, r25
5260: c0 92 34 04 sts 0x0434, r12
5264: d0 92 35 04 sts 0x0435, r13
5268: e0 92 36 04 sts 0x0436, r14
526c: f0 92 37 04 sts 0x0437, r15
5270: 60 93 30 04 sts 0x0430, r22
5274: 70 93 31 04 sts 0x0431, r23
5278: 80 93 32 04 sts 0x0432, r24
527c: 90 93 33 04 sts 0x0433, r25
5280: 10 92 2c 04 sts 0x042C, r1
5284: 10 92 2d 04 sts 0x042D, r1
5288: 10 92 2e 04 sts 0x042E, r1
528c: 10 92 2f 04 sts 0x042F, r1
5290: e0 91 4e 01 lds r30, 0x014E
5294: f0 91 4f 01 lds r31, 0x014F
5298: f0 93 1b 04 sts 0x041B, r31
529c: e0 93 1a 04 sts 0x041A, r30
52a0: 84 e6 ldi r24, 0x64 ; 100
52a2: 90 e0 ldi r25, 0x00 ; 0
52a4: 90 93 4b 01 sts 0x014B, r25
52a8: 80 93 4a 01 sts 0x014A, r24
52ac: 20 91 5c 05 lds r18, 0x055C
52b0: 30 e0 ldi r19, 0x00 ; 0
52b2: a4 ec ldi r26, 0xC4 ; 196
52b4: b9 e0 ldi r27, 0x09 ; 9
52b6: 0e 94 30 9b call 0x13660 ; 0x13660 <__umulhisi3>
52ba: 68 56 subi r22, 0x68 ; 104
52bc: 75 4c sbci r23, 0xC5 ; 197
52be: 8f 4f sbci r24, 0xFF ; 255
52c0: 9f 4f sbci r25, 0xFF ; 255
52c2: 60 93 46 01 sts 0x0146, r22
52c6: 70 93 47 01 sts 0x0147, r23
52ca: 80 93 48 01 sts 0x0148, r24
52ce: 90 93 49 01 sts 0x0149, r25
52d2: 20 91 5d 05 lds r18, 0x055D
52d6: 30 e0 ldi r19, 0x00 ; 0
52d8: 0e 94 30 9b call 0x13660 ; 0x13660 <__umulhisi3>
52dc: 68 56 subi r22, 0x68 ; 104
52de: 75 4c sbci r23, 0xC5 ; 197
52e0: 8f 4f sbci r24, 0xFF ; 255
52e2: 9f 4f sbci r25, 0xFF ; 255
52e4: 60 93 42 01 sts 0x0142, r22
52e8: 70 93 43 01 sts 0x0143, r23
52ec: 80 93 44 01 sts 0x0144, r24
52f0: 90 93 45 01 sts 0x0145, r25
52f4: 10 92 26 01 sts 0x0126, r1
52f8: 10 92 25 01 sts 0x0125, r1
52fc: 20 91 21 01 lds r18, 0x0121
5300: 30 91 22 01 lds r19, 0x0122
5304: 40 91 23 01 lds r20, 0x0123
5308: 50 91 24 01 lds r21, 0x0124
530c: df 01 movw r26, r30
530e: 0e 94 4f 9b call 0x1369e ; 0x1369e <__mulshisi3>
5312: 60 93 4b 06 sts 0x064B, r22
5316: 70 93 4c 06 sts 0x064C, r23
531a: 80 93 4d 06 sts 0x064D, r24
531e: 90 93 4e 06 sts 0x064E, r25
5322: 10 92 17 04 sts 0x0417, r1
5326: 10 92 16 04 sts 0x0416, r1
532a: 0e 94 fa 73 call 0xe7f4 ; 0xe7f4 <LED_Init>
532e: 00 23 and r16, r16
5330: 29 f0 breq .+10 ; 0x533c <SetNeutral+0x4d4>
5332: 80 91 c9 03 lds r24, 0x03C9
5336: 84 60 ori r24, 0x04 ; 4
5338: 80 93 c9 03 sts 0x03C9, r24
533c: 8f ef ldi r24, 0xFF ; 255
533e: 80 93 29 09 sts 0x0929, r24
5342: 10 92 2a 09 sts 0x092A, r1
5346: 80 e2 ldi r24, 0x20 ; 32
5348: 80 93 2b 09 sts 0x092B, r24
534c: 84 e6 ldi r24, 0x64 ; 100
534e: 80 93 02 04 sts 0x0402, r24
5352: 80 91 c9 04 lds r24, 0x04C9
5356: 88 23 and r24, r24
5358: 11 f0 breq .+4 ; 0x535e <SetNeutral+0x4f6>
535a: 57 9a sbi 0x0a, 7 ; 10
535c: 15 c0 rjmp .+42 ; 0x5388 <SetNeutral+0x520>
535e: 80 91 94 05 lds r24, 0x0594
5362: 85 70 andi r24, 0x05 ; 5
5364: 85 30 cpi r24, 0x05 ; 5
5366: 19 f4 brne .+6 ; 0x536e <SetNeutral+0x506>
5368: 80 ee ldi r24, 0xE0 ; 224
536a: 9e e2 ldi r25, 0x2E ; 46
536c: 02 c0 rjmp .+4 ; 0x5372 <SetNeutral+0x50a>
536e: 80 e0 ldi r24, 0x00 ; 0
5370: 91 e1 ldi r25, 0x11 ; 17
5372: 90 93 a8 02 sts 0x02A8, r25
5376: 80 93 a7 02 sts 0x02A7, r24
537a: 81 e0 ldi r24, 0x01 ; 1
537c: 80 93 af 02 sts 0x02AF, r24
5380: 0e 94 f3 88 call 0x111e6 ; 0x111e6 <CalculateServo>
5384: 0e 94 f3 88 call 0x111e6 ; 0x111e6 <CalculateServo>
5388: c0 90 21 01 lds r12, 0x0121
538c: d0 90 22 01 lds r13, 0x0122
5390: e0 90 23 01 lds r14, 0x0123
5394: f0 90 24 01 lds r15, 0x0124
5398: 60 91 3c 04 lds r22, 0x043C
539c: 70 91 3d 04 lds r23, 0x043D
53a0: 80 91 3e 04 lds r24, 0x043E
53a4: 90 91 3f 04 lds r25, 0x043F
53a8: a7 01 movw r20, r14
53aa: 96 01 movw r18, r12
53ac: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
53b0: 49 01 movw r8, r18
53b2: 5a 01 movw r10, r20
53b4: 60 91 40 04 lds r22, 0x0440
53b8: 70 91 41 04 lds r23, 0x0441
53bc: 80 91 42 04 lds r24, 0x0442
53c0: 90 91 43 04 lds r25, 0x0443
53c4: a7 01 movw r20, r14
53c6: 96 01 movw r18, r12
53c8: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
53cc: b4 01 movw r22, r8
53ce: c9 01 movw r24, r18
53d0: 0e 94 12 0d call 0x1a24 ; 0x1a24 <ihypot>
53d4: ec 01 movw r28, r24
53d6: 0e 94 cd 7d call 0xfb9a ; 0xfb9a <c_cos_8192>
53da: 9c 01 movw r18, r24
53dc: 90 93 0b 06 sts 0x060B, r25
53e0: 80 93 0a 06 sts 0x060A, r24
53e4: 60 91 45 04 lds r22, 0x0445
53e8: 70 91 46 04 lds r23, 0x0446
53ec: 72 50 subi r23, 0x02 ; 2
53ee: 88 27 eor r24, r24
53f0: 77 fd sbrc r23, 7
53f2: 80 95 com r24
53f4: 98 2f mov r25, r24
53f6: 5d e0 ldi r21, 0x0D ; 13
53f8: 66 0f add r22, r22
53fa: 77 1f adc r23, r23
53fc: 88 1f adc r24, r24
53fe: 99 1f adc r25, r25
5400: 5a 95 dec r21
5402: d1 f7 brne .-12 ; 0x53f8 <SetNeutral+0x590>
5404: 70 5f subi r23, 0xF0 ; 240
5406: 8f 4f sbci r24, 0xFF ; 255
5408: 9f 4f sbci r25, 0xFF ; 255
540a: 44 27 eor r20, r20
540c: 37 fd sbrc r19, 7
540e: 40 95 com r20
5410: 54 2f mov r21, r20
5412: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
5416: c9 01 movw r24, r18
5418: b9 01 movw r22, r18
541a: 7e 5f subi r23, 0xFE ; 254
541c: 70 93 46 04 sts 0x0446, r23
5420: 60 93 45 04 sts 0x0445, r22
5424: 65 97 sbiw r28, 0x15 ; 21
5426: 0c f0 brlt .+2 ; 0x542a <SetNeutral+0x5c2>
5428: 10 e0 ldi r17, 0x00 ; 0
542a: 00 23 and r16, r16
542c: 79 f0 breq .+30 ; 0x544c <SetNeutral+0x5e4>
542e: 60 91 c0 03 lds r22, 0x03C0
5432: 66 23 and r22, r22
5434: 59 f0 breq .+22 ; 0x544c <SetNeutral+0x5e4>
5436: 2c 58 subi r18, 0x8C ; 140
5438: 31 09 sbc r19, r1
543a: 22 34 cpi r18, 0x42 ; 66
543c: 31 05 cpc r19, r1
543e: 30 f0 brcs .+12 ; 0x544c <SetNeutral+0x5e4>
5440: 20 91 3f 0a lds r18, 0x0A3F
5444: 20 62 ori r18, 0x20 ; 32
5446: 20 93 3f 0a sts 0x0A3F, r18
544a: 10 e0 ldi r17, 0x00 ; 0
544c: 20 91 55 04 lds r18, 0x0455
5450: 30 91 56 04 lds r19, 0x0456
5454: 20 56 subi r18, 0x60 ; 96
5456: 39 40 sbci r19, 0x09 ; 9
5458: 21 3c cpi r18, 0xC1 ; 193
545a: 3b 42 sbci r19, 0x2B ; 43
545c: 28 f0 brcs .+10 ; 0x5468 <SetNeutral+0x600>
545e: 20 91 3f 0a lds r18, 0x0A3F
5462: 21 60 ori r18, 0x01 ; 1
5464: 20 93 3f 0a sts 0x0A3F, r18
5468: 20 91 53 04 lds r18, 0x0453
546c: 30 91 54 04 lds r19, 0x0454
5470: 20 56 subi r18, 0x60 ; 96
5472: 39 40 sbci r19, 0x09 ; 9
5474: 21 3c cpi r18, 0xC1 ; 193
5476: 3b 42 sbci r19, 0x2B ; 43
5478: 28 f0 brcs .+10 ; 0x5484 <SetNeutral+0x61c>
547a: 20 91 3f 0a lds r18, 0x0A3F
547e: 22 60 ori r18, 0x02 ; 2
5480: 20 93 3f 0a sts 0x0A3F, r18
5484: 20 91 51 04 lds r18, 0x0451
5488: 30 91 52 04 lds r19, 0x0452
548c: 2c 52 subi r18, 0x2C ; 44
548e: 31 40 sbci r19, 0x01 ; 1
5490: 29 37 cpi r18, 0x79 ; 121
5492: 35 40 sbci r19, 0x05 ; 5
5494: 28 f0 brcs .+10 ; 0x54a0 <SetNeutral+0x638>
5496: 20 91 3f 0a lds r18, 0x0A3F
549a: 24 60 ori r18, 0x04 ; 4
549c: 20 93 3f 0a sts 0x0A3F, r18
54a0: 20 91 4b 04 lds r18, 0x044B
54a4: 30 91 4c 04 lds r19, 0x044C
54a8: 2c 52 subi r18, 0x2C ; 44
54aa: 31 40 sbci r19, 0x01 ; 1
54ac: 23 3c cpi r18, 0xC3 ; 195
54ae: 31 40 sbci r19, 0x01 ; 1
54b0: 28 f0 brcs .+10 ; 0x54bc <SetNeutral+0x654>
54b2: 20 91 3f 0a lds r18, 0x0A3F
54b6: 28 60 ori r18, 0x08 ; 8
54b8: 20 93 3f 0a sts 0x0A3F, r18
54bc: 20 91 49 04 lds r18, 0x0449
54c0: 30 91 4a 04 lds r19, 0x044A
54c4: 2c 52 subi r18, 0x2C ; 44
54c6: 31 40 sbci r19, 0x01 ; 1
54c8: 23 3c cpi r18, 0xC3 ; 195
54ca: 31 40 sbci r19, 0x01 ; 1
54cc: 28 f0 brcs .+10 ; 0x54d8 <SetNeutral+0x670>
54ce: 20 91 3f 0a lds r18, 0x0A3F
54d2: 20 61 ori r18, 0x10 ; 16
54d4: 20 93 3f 0a sts 0x0A3F, r18
54d8: 83 35 cpi r24, 0x53 ; 83
54da: 91 40 sbci r25, 0x01 ; 1
54dc: 28 f0 brcs .+10 ; 0x54e8 <SetNeutral+0x680>
54de: 80 91 3f 0a lds r24, 0x0A3F
54e2: 80 62 ori r24, 0x20 ; 32
54e4: 80 93 3f 0a sts 0x0A3F, r24
54e8: 80 91 3f 0a lds r24, 0x0A3F
54ec: 81 11 cpse r24, r1
54ee: 10 e0 ldi r17, 0x00 ; 0
54f0: 86 e4 ldi r24, 0x46 ; 70
54f2: 80 93 3d 01 sts 0x013D, r24
54f6: 0e 94 aa 14 call 0x2954 ; 0x2954 <LIBFC_HoTT_Clear>
54fa: 82 e0 ldi r24, 0x02 ; 2
54fc: 0e 94 10 16 call 0x2c20 ; 0x2c20 <ACC_AltitudeFusion>
5500: 80 91 12 01 lds r24, 0x0112
5504: 90 91 13 01 lds r25, 0x0113
5508: a0 91 14 01 lds r26, 0x0114
550c: b0 91 15 01 lds r27, 0x0115
5510: 80 93 06 05 sts 0x0506, r24
5514: 90 93 07 05 sts 0x0507, r25
5518: a0 93 08 05 sts 0x0508, r26
551c: b0 93 09 05 sts 0x0509, r27
5520: 10 92 55 03 sts 0x0355, r1
5524: 10 92 54 03 sts 0x0354, r1
5528: 10 92 57 03 sts 0x0357, r1
552c: 10 92 58 03 sts 0x0358, r1
5530: 10 92 59 03 sts 0x0359, r1
5534: 10 92 5a 03 sts 0x035A, r1
5538: 10 92 1c 04 sts 0x041C, r1
553c: 10 92 1d 04 sts 0x041D, r1
5540: 10 92 1e 04 sts 0x041E, r1
5544: 10 92 1f 04 sts 0x041F, r1
5548: 10 92 5e 0c sts 0x0C5E, r1
554c: 10 92 5d 0c sts 0x0C5D, r1
5550: 0e 94 84 1a call 0x3508 ; 0x3508 <CalcExpandBaroStep>
5554: 80 91 c7 03 lds r24, 0x03C7
5558: 81 ff sbrs r24, 1
555a: 07 c0 rjmp .+14 ; 0x556a <SetNeutral+0x702>
555c: 80 91 5f 05 lds r24, 0x055F
5560: 81 11 cpse r24, r1
5562: 03 c0 rjmp .+6 ; 0x556a <SetNeutral+0x702>
5564: 84 e0 ldi r24, 0x04 ; 4
5566: 80 93 5f 05 sts 0x055F, r24
556a: 81 2f mov r24, r17
556c: df 91 pop r29
556e: cf 91 pop r28
5570: 1f 91 pop r17
5572: 0f 91 pop r16
5574: ff 90 pop r15
5576: ef 90 pop r14
5578: df 90 pop r13
557a: cf 90 pop r12
557c: bf 90 pop r11
557e: af 90 pop r10
5580: 9f 90 pop r9
5582: 8f 90 pop r8
5584: 08 95 ret
 
00005586 <Mittelwert>:
5586: 2f 92 push r2
5588: 3f 92 push r3
558a: 4f 92 push r4
558c: 5f 92 push r5
558e: 6f 92 push r6
5590: 7f 92 push r7
5592: 8f 92 push r8
5594: 9f 92 push r9
5596: af 92 push r10
5598: bf 92 push r11
559a: cf 92 push r12
559c: df 92 push r13
559e: ef 92 push r14
55a0: ff 92 push r15
55a2: 0f 93 push r16
55a4: 1f 93 push r17
55a6: cf 93 push r28
55a8: df 93 push r29
55aa: cd b7 in r28, 0x3d ; 61
55ac: de b7 in r29, 0x3e ; 62
55ae: 68 97 sbiw r28, 0x18 ; 24
55b0: 0f b6 in r0, 0x3f ; 63
55b2: f8 94 cli
55b4: de bf out 0x3e, r29 ; 62
55b6: 0f be out 0x3f, r0 ; 63
55b8: cd bf out 0x3d, r28 ; 61
55ba: 20 91 61 03 lds r18, 0x0361
55be: 30 91 62 03 lds r19, 0x0362
55c2: 80 91 51 04 lds r24, 0x0451
55c6: 90 91 52 04 lds r25, 0x0452
55ca: 82 1b sub r24, r18
55cc: 93 0b sbc r25, r19
55ce: 90 93 45 06 sts 0x0645, r25
55d2: 80 93 44 06 sts 0x0644, r24
55d6: 80 91 69 03 lds r24, 0x0369
55da: 90 91 6a 03 lds r25, 0x036A
55de: 97 fd sbrc r25, 7
55e0: 07 96 adiw r24, 0x07 ; 7
55e2: 9c 01 movw r18, r24
55e4: 73 e0 ldi r23, 0x03 ; 3
55e6: 35 95 asr r19
55e8: 27 95 ror r18
55ea: 7a 95 dec r23
55ec: e1 f7 brne .-8 ; 0x55e6 <Mittelwert+0x60>
55ee: 30 93 05 06 sts 0x0605, r19
55f2: 20 93 04 06 sts 0x0604, r18
55f6: 80 91 67 03 lds r24, 0x0367
55fa: 90 91 68 03 lds r25, 0x0368
55fe: 97 fd sbrc r25, 7
5600: 07 96 adiw r24, 0x07 ; 7
5602: 43 e0 ldi r20, 0x03 ; 3
5604: 95 95 asr r25
5606: 87 95 ror r24
5608: 4a 95 dec r20
560a: e1 f7 brne .-8 ; 0x5604 <Mittelwert+0x7e>
560c: 90 93 fa 05 sts 0x05FA, r25
5610: 80 93 f9 05 sts 0x05F9, r24
5614: 30 93 0d 06 sts 0x060D, r19
5618: 20 93 0c 06 sts 0x060C, r18
561c: 90 93 08 06 sts 0x0608, r25
5620: 80 93 07 06 sts 0x0607, r24
5624: 40 91 5d 03 lds r20, 0x035D
5628: 50 91 5e 03 lds r21, 0x035E
562c: 20 91 3d 06 lds r18, 0x063D
5630: 30 91 3e 06 lds r19, 0x063E
5634: c9 01 movw r24, r18
5636: 88 0f add r24, r24
5638: 99 1f adc r25, r25
563a: 82 0f add r24, r18
563c: 93 1f adc r25, r19
563e: 66 e0 ldi r22, 0x06 ; 6
5640: 64 9f mul r22, r20
5642: 90 01 movw r18, r0
5644: 65 9f mul r22, r21
5646: 30 0d add r19, r0
5648: 11 24 eor r1, r1
564a: 82 0f add r24, r18
564c: 93 1f adc r25, r19
564e: 97 fd sbrc r25, 7
5650: 03 96 adiw r24, 0x03 ; 3
5652: 95 95 asr r25
5654: 87 95 ror r24
5656: 95 95 asr r25
5658: 87 95 ror r24
565a: 90 93 3e 06 sts 0x063E, r25
565e: 80 93 3d 06 sts 0x063D, r24
5662: 40 91 5f 03 lds r20, 0x035F
5666: 50 91 60 03 lds r21, 0x0360
566a: 20 91 4f 06 lds r18, 0x064F
566e: 30 91 50 06 lds r19, 0x0650
5672: c9 01 movw r24, r18
5674: 88 0f add r24, r24
5676: 99 1f adc r25, r25
5678: 82 0f add r24, r18
567a: 93 1f adc r25, r19
567c: 66 e0 ldi r22, 0x06 ; 6
567e: 64 9f mul r22, r20
5680: 90 01 movw r18, r0
5682: 65 9f mul r22, r21
5684: 30 0d add r19, r0
5686: 11 24 eor r1, r1
5688: 82 0f add r24, r18
568a: 93 1f adc r25, r19
568c: 97 fd sbrc r25, 7
568e: 03 96 adiw r24, 0x03 ; 3
5690: 95 95 asr r25
5692: 87 95 ror r24
5694: 95 95 asr r25
5696: 87 95 ror r24
5698: 90 93 50 06 sts 0x0650, r25
569c: 80 93 4f 06 sts 0x064F, r24
56a0: 20 91 5d 03 lds r18, 0x035D
56a4: 30 91 5e 03 lds r19, 0x035E
56a8: 80 91 16 06 lds r24, 0x0616
56ac: 90 91 17 06 lds r25, 0x0617
56b0: 82 0f add r24, r18
56b2: 93 1f adc r25, r19
56b4: 90 93 17 06 sts 0x0617, r25
56b8: 80 93 16 06 sts 0x0616, r24
56bc: 20 91 5f 03 lds r18, 0x035F
56c0: 30 91 60 03 lds r19, 0x0360
56c4: 80 91 47 06 lds r24, 0x0647
56c8: 90 91 48 06 lds r25, 0x0648
56cc: 82 0f add r24, r18
56ce: 93 1f adc r25, r19
56d0: 90 93 48 06 sts 0x0648, r25
56d4: 80 93 47 06 sts 0x0647, r24
56d8: 80 91 47 04 lds r24, 0x0447
56dc: 90 91 48 04 lds r25, 0x0448
56e0: 01 96 adiw r24, 0x01 ; 1
56e2: 90 93 48 04 sts 0x0448, r25
56e6: 80 93 47 04 sts 0x0447, r24
56ea: 80 91 46 03 lds r24, 0x0346
56ee: 90 91 47 03 lds r25, 0x0347
56f2: a0 91 48 03 lds r26, 0x0348
56f6: b0 91 49 03 lds r27, 0x0349
56fa: 80 93 fc 03 sts 0x03FC, r24
56fe: 90 93 fd 03 sts 0x03FD, r25
5702: a0 93 fe 03 sts 0x03FE, r26
5706: b0 93 ff 03 sts 0x03FF, r27
570a: 80 91 42 03 lds r24, 0x0342
570e: 90 91 43 03 lds r25, 0x0343
5712: a0 91 44 03 lds r26, 0x0344
5716: b0 91 45 03 lds r27, 0x0345
571a: 80 93 4a 03 sts 0x034A, r24
571e: 90 93 4b 03 sts 0x034B, r25
5722: a0 93 4c 03 sts 0x034C, r26
5726: b0 93 4d 03 sts 0x034D, r27
572a: 8f ec ldi r24, 0xCF ; 207
572c: 80 93 7a 00 sts 0x007A, r24
5730: 10 92 0f 01 sts 0x010F, r1
5734: 20 91 30 04 lds r18, 0x0430
5738: 30 91 31 04 lds r19, 0x0431
573c: 40 91 32 04 lds r20, 0x0432
5740: 50 91 33 04 lds r21, 0x0433
5744: 2d 83 std Y+5, r18 ; 0x05
5746: 3e 83 std Y+6, r19 ; 0x06
5748: 4f 83 std Y+7, r20 ; 0x07
574a: 58 87 std Y+8, r21 ; 0x08
574c: 40 91 34 04 lds r20, 0x0434
5750: 50 91 35 04 lds r21, 0x0435
5754: 60 91 36 04 lds r22, 0x0436
5758: 70 91 37 04 lds r23, 0x0437
575c: 49 87 std Y+9, r20 ; 0x09
575e: 5a 87 std Y+10, r21 ; 0x0a
5760: 6b 87 std Y+11, r22 ; 0x0b
5762: 7c 87 std Y+12, r23 ; 0x0c
5764: 20 90 44 06 lds r2, 0x0644
5768: 30 90 45 06 lds r3, 0x0645
576c: b1 01 movw r22, r2
576e: 88 27 eor r24, r24
5770: 77 fd sbrc r23, 7
5772: 80 95 com r24
5774: 98 2f mov r25, r24
5776: 69 8b std Y+17, r22 ; 0x11
5778: 7a 8b std Y+18, r23 ; 0x12
577a: 8b 8b std Y+19, r24 ; 0x13
577c: 9c 8b std Y+20, r25 ; 0x14
577e: 80 90 2c 04 lds r8, 0x042C
5782: 90 90 2d 04 lds r9, 0x042D
5786: a0 90 2e 04 lds r10, 0x042E
578a: b0 90 2f 04 lds r11, 0x042F
578e: 86 0e add r8, r22
5790: 97 1e adc r9, r23
5792: a8 1e adc r10, r24
5794: b9 1e adc r11, r25
5796: 80 92 2c 04 sts 0x042C, r8
579a: 90 92 2d 04 sts 0x042D, r9
579e: a0 92 2e 04 sts 0x042E, r10
57a2: b0 92 2f 04 sts 0x042F, r11
57a6: 80 91 4b 06 lds r24, 0x064B
57aa: 90 91 4c 06 lds r25, 0x064C
57ae: a0 91 4d 06 lds r26, 0x064D
57b2: b0 91 4e 06 lds r27, 0x064E
57b6: 29 89 ldd r18, Y+17 ; 0x11
57b8: 3a 89 ldd r19, Y+18 ; 0x12
57ba: 4b 89 ldd r20, Y+19 ; 0x13
57bc: 5c 89 ldd r21, Y+20 ; 0x14
57be: 28 0f add r18, r24
57c0: 39 1f adc r19, r25
57c2: 4a 1f adc r20, r26
57c4: 5b 1f adc r21, r27
57c6: 2d 87 std Y+13, r18 ; 0x0d
57c8: 3e 87 std Y+14, r19 ; 0x0e
57ca: 4f 87 std Y+15, r20 ; 0x0f
57cc: 58 8b std Y+16, r21 ; 0x10
57ce: 20 93 4b 06 sts 0x064B, r18
57d2: 30 93 4c 06 sts 0x064C, r19
57d6: 40 93 4d 06 sts 0x064D, r20
57da: 50 93 4e 06 sts 0x064E, r21
57de: 80 91 e5 03 lds r24, 0x03E5
57e2: 81 11 cpse r24, r1
57e4: 5b c1 rjmp .+694 ; 0x5a9c <Mittelwert+0x516>
57e6: 80 91 e4 03 lds r24, 0x03E4
57ea: 81 11 cpse r24, r1
57ec: 57 c1 rjmp .+686 ; 0x5a9c <Mittelwert+0x516>
57ee: 80 91 39 06 lds r24, 0x0639
57f2: 86 ff sbrs r24, 6
57f4: 53 c1 rjmp .+678 ; 0x5a9c <Mittelwert+0x516>
57f6: 3d 81 ldd r19, Y+5 ; 0x05
57f8: 2e 81 ldd r18, Y+6 ; 0x06
57fa: 9f 81 ldd r25, Y+7 ; 0x07
57fc: 88 85 ldd r24, Y+8 ; 0x08
57fe: 4d 81 ldd r20, Y+5 ; 0x05
5800: 5e 81 ldd r21, Y+6 ; 0x06
5802: 6f 81 ldd r22, Y+7 ; 0x07
5804: 78 85 ldd r23, Y+8 ; 0x08
5806: 48 3b cpi r20, 0xB8 ; 184
5808: 54 49 sbci r21, 0x94 ; 148
580a: 6e 4f sbci r22, 0xFE ; 254
580c: 7f 4f sbci r23, 0xFF ; 255
580e: 24 f4 brge .+8 ; 0x5818 <Mittelwert+0x292>
5810: 38 eb ldi r19, 0xB8 ; 184
5812: 24 e9 ldi r18, 0x94 ; 148
5814: 9e ef ldi r25, 0xFE ; 254
5816: 8f ef ldi r24, 0xFF ; 255
5818: 39 83 std Y+1, r19 ; 0x01
581a: 2a 83 std Y+2, r18 ; 0x02
581c: 9b 83 std Y+3, r25 ; 0x03
581e: 8c 83 std Y+4, r24 ; 0x04
5820: 29 81 ldd r18, Y+1 ; 0x01
5822: 3a 81 ldd r19, Y+2 ; 0x02
5824: 4b 81 ldd r20, Y+3 ; 0x03
5826: 5c 81 ldd r21, Y+4 ; 0x04
5828: 29 34 cpi r18, 0x49 ; 73
582a: 3b 46 sbci r19, 0x6B ; 107
582c: 41 40 sbci r20, 0x01 ; 1
582e: 51 05 cpc r21, r1
5830: 44 f0 brlt .+16 ; 0x5842 <Mittelwert+0x2bc>
5832: 88 e4 ldi r24, 0x48 ; 72
5834: 9b e6 ldi r25, 0x6B ; 107
5836: a1 e0 ldi r26, 0x01 ; 1
5838: b0 e0 ldi r27, 0x00 ; 0
583a: 89 83 std Y+1, r24 ; 0x01
583c: 9a 83 std Y+2, r25 ; 0x02
583e: ab 83 std Y+3, r26 ; 0x03
5840: bc 83 std Y+4, r27 ; 0x04
5842: 39 85 ldd r19, Y+9 ; 0x09
5844: 2a 85 ldd r18, Y+10 ; 0x0a
5846: 9b 85 ldd r25, Y+11 ; 0x0b
5848: 8c 85 ldd r24, Y+12 ; 0x0c
584a: 49 85 ldd r20, Y+9 ; 0x09
584c: 5a 85 ldd r21, Y+10 ; 0x0a
584e: 6b 85 ldd r22, Y+11 ; 0x0b
5850: 7c 85 ldd r23, Y+12 ; 0x0c
5852: 48 3b cpi r20, 0xB8 ; 184
5854: 54 49 sbci r21, 0x94 ; 148
5856: 6e 4f sbci r22, 0xFE ; 254
5858: 7f 4f sbci r23, 0xFF ; 255
585a: 24 f4 brge .+8 ; 0x5864 <Mittelwert+0x2de>
585c: 38 eb ldi r19, 0xB8 ; 184
585e: 24 e9 ldi r18, 0x94 ; 148
5860: 9e ef ldi r25, 0xFE ; 254
5862: 8f ef ldi r24, 0xFF ; 255
5864: c3 2e mov r12, r19
5866: d2 2e mov r13, r18
5868: e9 2e mov r14, r25
586a: f8 2e mov r15, r24
586c: b9 e4 ldi r27, 0x49 ; 73
586e: cb 16 cp r12, r27
5870: bb e6 ldi r27, 0x6B ; 107
5872: db 06 cpc r13, r27
5874: b1 e0 ldi r27, 0x01 ; 1
5876: eb 06 cpc r14, r27
5878: f1 04 cpc r15, r1
587a: 3c f0 brlt .+14 ; 0x588a <Mittelwert+0x304>
587c: a8 e4 ldi r26, 0x48 ; 72
587e: ca 2e mov r12, r26
5880: ab e6 ldi r26, 0x6B ; 107
5882: da 2e mov r13, r26
5884: ee 24 eor r14, r14
5886: e3 94 inc r14
5888: f1 2c mov r15, r1
588a: 40 90 29 01 lds r4, 0x0129
588e: 24 2d mov r18, r4
5890: 30 e0 ldi r19, 0x00 ; 0
5892: 40 e0 ldi r20, 0x00 ; 0
5894: 50 e0 ldi r21, 0x00 ; 0
5896: 2d 8b std Y+21, r18 ; 0x15
5898: 3e 8b std Y+22, r19 ; 0x16
589a: 4f 8b std Y+23, r20 ; 0x17
589c: 58 8f std Y+24, r21 ; 0x18
589e: a0 91 f9 05 lds r26, 0x05F9
58a2: b0 91 fa 05 lds r27, 0x05FA
58a6: a7 01 movw r20, r14
58a8: 96 01 movw r18, r12
58aa: 0e 94 4f 9b call 0x1369e ; 0x1369e <__mulshisi3>
58ae: 20 e0 ldi r18, 0x00 ; 0
58b0: 38 e0 ldi r19, 0x08 ; 8
58b2: 40 e0 ldi r20, 0x00 ; 0
58b4: 50 e0 ldi r21, 0x00 ; 0
58b6: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
58ba: 6d 89 ldd r22, Y+21 ; 0x15
58bc: 7e 89 ldd r23, Y+22 ; 0x16
58be: 8f 89 ldd r24, Y+23 ; 0x17
58c0: 98 8d ldd r25, Y+24 ; 0x18
58c2: 0e 94 a4 9a call 0x13548 ; 0x13548 <__mulsi3>
58c6: 20 e0 ldi r18, 0x00 ; 0
58c8: 30 e1 ldi r19, 0x10 ; 16
58ca: 40 e0 ldi r20, 0x00 ; 0
58cc: 50 e0 ldi r21, 0x00 ; 0
58ce: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
58d2: 29 01 movw r4, r18
58d4: 3a 01 movw r6, r20
58d6: 20 93 b6 03 sts 0x03B6, r18
58da: 30 93 b7 03 sts 0x03B7, r19
58de: 40 93 b8 03 sts 0x03B8, r20
58e2: 50 93 b9 03 sts 0x03B9, r21
58e6: a0 91 04 06 lds r26, 0x0604
58ea: b0 91 05 06 lds r27, 0x0605
58ee: 29 81 ldd r18, Y+1 ; 0x01
58f0: 3a 81 ldd r19, Y+2 ; 0x02
58f2: 4b 81 ldd r20, Y+3 ; 0x03
58f4: 5c 81 ldd r21, Y+4 ; 0x04
58f6: 0e 94 4f 9b call 0x1369e ; 0x1369e <__mulshisi3>
58fa: 20 e0 ldi r18, 0x00 ; 0
58fc: 38 e0 ldi r19, 0x08 ; 8
58fe: 40 e0 ldi r20, 0x00 ; 0
5900: 50 e0 ldi r21, 0x00 ; 0
5902: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
5906: 6d 89 ldd r22, Y+21 ; 0x15
5908: 7e 89 ldd r23, Y+22 ; 0x16
590a: 8f 89 ldd r24, Y+23 ; 0x17
590c: 98 8d ldd r25, Y+24 ; 0x18
590e: 0e 94 a4 9a call 0x13548 ; 0x13548 <__mulsi3>
5912: 20 e0 ldi r18, 0x00 ; 0
5914: 30 e1 ldi r19, 0x10 ; 16
5916: 40 e0 ldi r20, 0x00 ; 0
5918: 50 e0 ldi r21, 0x00 ; 0
591a: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
591e: 50 92 f3 05 sts 0x05F3, r5
5922: 40 92 f2 05 sts 0x05F2, r4
5926: 30 93 f5 05 sts 0x05F5, r19
592a: 20 93 f4 05 sts 0x05F4, r18
592e: ca 01 movw r24, r20
5930: b9 01 movw r22, r18
5932: 64 19 sub r22, r4
5934: 75 09 sbc r23, r5
5936: 86 09 sbc r24, r6
5938: 97 09 sbc r25, r7
593a: 2b 01 movw r4, r22
593c: 3c 01 movw r6, r24
593e: 60 93 b2 03 sts 0x03B2, r22
5942: 70 93 b3 03 sts 0x03B3, r23
5946: 80 93 b4 03 sts 0x03B4, r24
594a: 90 93 b5 03 sts 0x03B5, r25
594e: 8d 85 ldd r24, Y+13 ; 0x0d
5950: 9e 85 ldd r25, Y+14 ; 0x0e
5952: af 85 ldd r26, Y+15 ; 0x0f
5954: b8 89 ldd r27, Y+16 ; 0x10
5956: 84 0d add r24, r4
5958: 95 1d adc r25, r5
595a: a6 1d adc r26, r6
595c: b7 1d adc r27, r7
595e: 80 93 4b 06 sts 0x064B, r24
5962: 90 93 4c 06 sts 0x064C, r25
5966: a0 93 4d 06 sts 0x064D, r26
596a: b0 93 4e 06 sts 0x064E, r27
596e: 80 91 28 01 lds r24, 0x0128
5972: 81 11 cpse r24, r1
5974: 16 c0 rjmp .+44 ; 0x59a2 <Mittelwert+0x41c>
5976: c3 01 movw r24, r6
5978: b2 01 movw r22, r4
597a: 22 e0 ldi r18, 0x02 ; 2
597c: 30 e0 ldi r19, 0x00 ; 0
597e: 40 e0 ldi r20, 0x00 ; 0
5980: 50 e0 ldi r21, 0x00 ; 0
5982: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
5986: d5 01 movw r26, r10
5988: c4 01 movw r24, r8
598a: 82 1b sub r24, r18
598c: 93 0b sbc r25, r19
598e: a4 0b sbc r26, r20
5990: b5 0b sbc r27, r21
5992: 80 93 2c 04 sts 0x042C, r24
5996: 90 93 2d 04 sts 0x042D, r25
599a: a0 93 2e 04 sts 0x042E, r26
599e: b0 93 2f 04 sts 0x042F, r27
59a2: 89 89 ldd r24, Y+17 ; 0x11
59a4: 9a 89 ldd r25, Y+18 ; 0x12
59a6: ab 89 ldd r26, Y+19 ; 0x13
59a8: bc 89 ldd r27, Y+20 ; 0x14
59aa: 48 0e add r4, r24
59ac: 59 1e adc r5, r25
59ae: 6a 1e adc r6, r26
59b0: 7b 1e adc r7, r27
59b2: 80 90 2a 01 lds r8, 0x012A
59b6: 91 2c mov r9, r1
59b8: a1 2c mov r10, r1
59ba: b1 2c mov r11, r1
59bc: a3 01 movw r20, r6
59be: 92 01 movw r18, r4
59c0: c7 01 movw r24, r14
59c2: b6 01 movw r22, r12
59c4: 0e 94 a4 9a call 0x13548 ; 0x13548 <__mulsi3>
59c8: 20 e0 ldi r18, 0x00 ; 0
59ca: 38 e0 ldi r19, 0x08 ; 8
59cc: 40 e0 ldi r20, 0x00 ; 0
59ce: 50 e0 ldi r21, 0x00 ; 0
59d0: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
59d4: c5 01 movw r24, r10
59d6: b4 01 movw r22, r8
59d8: 0e 94 a4 9a call 0x13548 ; 0x13548 <__mulsi3>
59dc: c1 2c mov r12, r1
59de: f0 e1 ldi r31, 0x10 ; 16
59e0: df 2e mov r13, r31
59e2: e1 2c mov r14, r1
59e4: f1 2c mov r15, r1
59e6: a7 01 movw r20, r14
59e8: 96 01 movw r18, r12
59ea: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
59ee: 89 01 movw r16, r18
59f0: 49 8b std Y+17, r20 ; 0x11
59f2: 5d 87 std Y+13, r21 ; 0x0d
59f4: 20 93 ae 03 sts 0x03AE, r18
59f8: 10 93 af 03 sts 0x03AF, r17
59fc: 40 93 b0 03 sts 0x03B0, r20
5a00: 50 93 b1 03 sts 0x03B1, r21
5a04: a3 01 movw r20, r6
5a06: 92 01 movw r18, r4
5a08: 69 81 ldd r22, Y+1 ; 0x01
5a0a: 7a 81 ldd r23, Y+2 ; 0x02
5a0c: 8b 81 ldd r24, Y+3 ; 0x03
5a0e: 9c 81 ldd r25, Y+4 ; 0x04
5a10: 0e 94 a4 9a call 0x13548 ; 0x13548 <__mulsi3>
5a14: 20 e0 ldi r18, 0x00 ; 0
5a16: 38 e0 ldi r19, 0x08 ; 8
5a18: 40 e0 ldi r20, 0x00 ; 0
5a1a: 50 e0 ldi r21, 0x00 ; 0
5a1c: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
5a20: c5 01 movw r24, r10
5a22: b4 01 movw r22, r8
5a24: 0e 94 a4 9a call 0x13548 ; 0x13548 <__mulsi3>
5a28: a7 01 movw r20, r14
5a2a: 96 01 movw r18, r12
5a2c: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
5a30: 20 93 aa 03 sts 0x03AA, r18
5a34: 30 93 ab 03 sts 0x03AB, r19
5a38: 40 93 ac 03 sts 0x03AC, r20
5a3c: 50 93 ad 03 sts 0x03AD, r21
5a40: 37 fe sbrs r3, 7
5a42: 03 c0 rjmp .+6 ; 0x5a4a <Mittelwert+0x4c4>
5a44: 31 94 neg r3
5a46: 21 94 neg r2
5a48: 31 08 sbc r3, r1
5a4a: 91 e4 ldi r25, 0x41 ; 65
5a4c: 29 16 cp r2, r25
5a4e: 31 04 cpc r3, r1
5a50: ec f1 brlt .+122 ; 0x5acc <Mittelwert+0x546>
5a52: c8 01 movw r24, r16
5a54: a9 89 ldd r26, Y+17 ; 0x11
5a56: bd 85 ldd r27, Y+13 ; 0x0d
5a58: b7 ff sbrs r27, 7
5a5a: 07 c0 rjmp .+14 ; 0x5a6a <Mittelwert+0x4e4>
5a5c: b0 95 com r27
5a5e: a0 95 com r26
5a60: 90 95 com r25
5a62: 81 95 neg r24
5a64: 9f 4f sbci r25, 0xFF ; 255
5a66: af 4f sbci r26, 0xFF ; 255
5a68: bf 4f sbci r27, 0xFF ; 255
5a6a: 81 38 cpi r24, 0x81 ; 129
5a6c: 91 05 cpc r25, r1
5a6e: a1 05 cpc r26, r1
5a70: b1 05 cpc r27, r1
5a72: 84 f4 brge .+32 ; 0x5a94 <Mittelwert+0x50e>
5a74: c9 01 movw r24, r18
5a76: da 01 movw r26, r20
5a78: b7 ff sbrs r27, 7
5a7a: 07 c0 rjmp .+14 ; 0x5a8a <Mittelwert+0x504>
5a7c: b0 95 com r27
5a7e: a0 95 com r26
5a80: 90 95 com r25
5a82: 81 95 neg r24
5a84: 9f 4f sbci r25, 0xFF ; 255
5a86: af 4f sbci r26, 0xFF ; 255
5a88: bf 4f sbci r27, 0xFF ; 255
5a8a: 81 38 cpi r24, 0x81 ; 129
5a8c: 91 05 cpc r25, r1
5a8e: a1 05 cpc r26, r1
5a90: b1 05 cpc r27, r1
5a92: e4 f0 brlt .+56 ; 0x5acc <Mittelwert+0x546>
5a94: 81 e0 ldi r24, 0x01 ; 1
5a96: 80 93 18 04 sts 0x0418, r24
5a9a: 18 c0 rjmp .+48 ; 0x5acc <Mittelwert+0x546>
5a9c: 10 92 f5 05 sts 0x05F5, r1
5aa0: 10 92 f4 05 sts 0x05F4, r1
5aa4: 10 92 f3 05 sts 0x05F3, r1
5aa8: 10 92 f2 05 sts 0x05F2, r1
5aac: 10 92 aa 03 sts 0x03AA, r1
5ab0: 10 92 ab 03 sts 0x03AB, r1
5ab4: 10 92 ac 03 sts 0x03AC, r1
5ab8: 10 92 ad 03 sts 0x03AD, r1
5abc: 10 92 ae 03 sts 0x03AE, r1
5ac0: 10 92 af 03 sts 0x03AF, r1
5ac4: 10 92 b0 03 sts 0x03B0, r1
5ac8: 10 92 b1 03 sts 0x03B1, r1
5acc: 80 90 ae 03 lds r8, 0x03AE
5ad0: 90 90 af 03 lds r9, 0x03AF
5ad4: a0 90 b0 03 lds r10, 0x03B0
5ad8: b0 90 b1 03 lds r11, 0x03B1
5adc: c0 90 aa 03 lds r12, 0x03AA
5ae0: d0 90 ab 03 lds r13, 0x03AB
5ae4: e0 90 ac 03 lds r14, 0x03AC
5ae8: f0 90 ad 03 lds r15, 0x03AD
5aec: c7 01 movw r24, r14
5aee: b6 01 movw r22, r12
5af0: 2c e9 ldi r18, 0x9C ; 156
5af2: 3f ef ldi r19, 0xFF ; 255
5af4: 4f ef ldi r20, 0xFF ; 255
5af6: 5f ef ldi r21, 0xFF ; 255
5af8: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
5afc: 89 01 movw r16, r18
5afe: 08 0d add r16, r8
5b00: 19 1d adc r17, r9
5b02: 10 93 03 06 sts 0x0603, r17
5b06: 00 93 02 06 sts 0x0602, r16
5b0a: c5 01 movw r24, r10
5b0c: b4 01 movw r22, r8
5b0e: 24 e6 ldi r18, 0x64 ; 100
5b10: 30 e0 ldi r19, 0x00 ; 0
5b12: 40 e0 ldi r20, 0x00 ; 0
5b14: 50 e0 ldi r21, 0x00 ; 0
5b16: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
5b1a: 19 01 movw r2, r18
5b1c: 2c 18 sub r2, r12
5b1e: 3d 08 sbc r3, r13
5b20: 30 92 fc 05 sts 0x05FC, r3
5b24: 20 92 fb 05 sts 0x05FB, r2
5b28: 80 90 4b 06 lds r8, 0x064B
5b2c: 90 90 4c 06 lds r9, 0x064C
5b30: a0 90 4d 06 lds r10, 0x064D
5b34: b0 90 4e 06 lds r11, 0x064E
5b38: 40 90 21 01 lds r4, 0x0121
5b3c: 50 90 22 01 lds r5, 0x0122
5b40: 60 90 23 01 lds r6, 0x0123
5b44: 70 90 24 01 lds r7, 0x0124
5b48: a8 e6 ldi r26, 0x68 ; 104
5b4a: b1 e0 ldi r27, 0x01 ; 1
5b4c: a3 01 movw r20, r6
5b4e: 92 01 movw r18, r4
5b50: 0e 94 45 9b call 0x1368a ; 0x1368a <__muluhisi3>
5b54: 6b 01 movw r12, r22
5b56: 7c 01 movw r14, r24
5b58: 86 16 cp r8, r22
5b5a: 97 06 cpc r9, r23
5b5c: a8 06 cpc r10, r24
5b5e: b9 06 cpc r11, r25
5b60: 84 f0 brlt .+32 ; 0x5b82 <Mittelwert+0x5fc>
5b62: a8 e9 ldi r26, 0x98 ; 152
5b64: be ef ldi r27, 0xFE ; 254
5b66: 0e 94 51 9b call 0x136a2 ; 0x136a2 <__mulohisi3>
5b6a: 68 0d add r22, r8
5b6c: 79 1d adc r23, r9
5b6e: 8a 1d adc r24, r10
5b70: 9b 1d adc r25, r11
5b72: 60 93 4b 06 sts 0x064B, r22
5b76: 70 93 4c 06 sts 0x064C, r23
5b7a: 80 93 4d 06 sts 0x064D, r24
5b7e: 90 93 4e 06 sts 0x064E, r25
5b82: 80 91 4b 06 lds r24, 0x064B
5b86: 90 91 4c 06 lds r25, 0x064C
5b8a: a0 91 4d 06 lds r26, 0x064D
5b8e: b0 91 4e 06 lds r27, 0x064E
5b92: b7 ff sbrs r27, 7
5b94: 0c c0 rjmp .+24 ; 0x5bae <Mittelwert+0x628>
5b96: c8 0e add r12, r24
5b98: d9 1e adc r13, r25
5b9a: ea 1e adc r14, r26
5b9c: fb 1e adc r15, r27
5b9e: c0 92 4b 06 sts 0x064B, r12
5ba2: d0 92 4c 06 sts 0x064C, r13
5ba6: e0 92 4d 06 sts 0x064D, r14
5baa: f0 92 4e 06 sts 0x064E, r15
5bae: 40 91 f9 05 lds r20, 0x05F9
5bb2: 50 91 fa 05 lds r21, 0x05FA
5bb6: 40 0f add r20, r16
5bb8: 51 1f adc r21, r17
5bba: 80 91 ea 03 lds r24, 0x03EA
5bbe: 90 91 eb 03 lds r25, 0x03EB
5bc2: 48 1b sub r20, r24
5bc4: 59 0b sbc r21, r25
5bc6: 66 27 eor r22, r22
5bc8: 57 fd sbrc r21, 7
5bca: 60 95 com r22
5bcc: 76 2f mov r23, r22
5bce: 8d 81 ldd r24, Y+5 ; 0x05
5bd0: 9e 81 ldd r25, Y+6 ; 0x06
5bd2: af 81 ldd r26, Y+7 ; 0x07
5bd4: b8 85 ldd r27, Y+8 ; 0x08
5bd6: 48 0f add r20, r24
5bd8: 59 1f adc r21, r25
5bda: 6a 1f adc r22, r26
5bdc: 7b 1f adc r23, r27
5bde: 40 93 30 04 sts 0x0430, r20
5be2: 50 93 31 04 sts 0x0431, r21
5be6: 60 93 32 04 sts 0x0432, r22
5bea: 70 93 33 04 sts 0x0433, r23
5bee: 80 91 42 01 lds r24, 0x0142
5bf2: 90 91 43 01 lds r25, 0x0143
5bf6: a0 91 44 01 lds r26, 0x0144
5bfa: b0 91 45 01 lds r27, 0x0145
5bfe: 84 17 cp r24, r20
5c00: 95 07 cpc r25, r21
5c02: a6 07 cpc r26, r22
5c04: b7 07 cpc r27, r23
5c06: 84 f4 brge .+32 ; 0x5c28 <Mittelwert+0x6a2>
5c08: 48 ea ldi r20, 0xA8 ; 168
5c0a: 51 e6 ldi r21, 0x61 ; 97
5c0c: 60 e0 ldi r22, 0x00 ; 0
5c0e: 70 e0 ldi r23, 0x00 ; 0
5c10: 48 1b sub r20, r24
5c12: 59 0b sbc r21, r25
5c14: 6a 0b sbc r22, r26
5c16: 7b 0b sbc r23, r27
5c18: 40 93 30 04 sts 0x0430, r20
5c1c: 50 93 31 04 sts 0x0431, r21
5c20: 60 93 32 04 sts 0x0432, r22
5c24: 70 93 33 04 sts 0x0433, r23
5c28: 44 27 eor r20, r20
5c2a: 55 27 eor r21, r21
5c2c: ba 01 movw r22, r20
5c2e: 48 1b sub r20, r24
5c30: 59 0b sbc r21, r25
5c32: 6a 0b sbc r22, r26
5c34: 7b 0b sbc r23, r27
5c36: c0 90 30 04 lds r12, 0x0430
5c3a: d0 90 31 04 lds r13, 0x0431
5c3e: e0 90 32 04 lds r14, 0x0432
5c42: f0 90 33 04 lds r15, 0x0433
5c46: c4 16 cp r12, r20
5c48: d5 06 cpc r13, r21
5c4a: e6 06 cpc r14, r22
5c4c: f7 06 cpc r15, r23
5c4e: 64 f4 brge .+24 ; 0x5c68 <Mittelwert+0x6e2>
5c50: 88 5a subi r24, 0xA8 ; 168
5c52: 91 46 sbci r25, 0x61 ; 97
5c54: a1 09 sbc r26, r1
5c56: b1 09 sbc r27, r1
5c58: 80 93 30 04 sts 0x0430, r24
5c5c: 90 93 31 04 sts 0x0431, r25
5c60: a0 93 32 04 sts 0x0432, r26
5c64: b0 93 33 04 sts 0x0433, r27
5c68: 40 91 04 06 lds r20, 0x0604
5c6c: 50 91 05 06 lds r21, 0x0605
5c70: 42 0d add r20, r2
5c72: 53 1d adc r21, r3
5c74: 80 91 e8 03 lds r24, 0x03E8
5c78: 90 91 e9 03 lds r25, 0x03E9
5c7c: 48 1b sub r20, r24
5c7e: 59 0b sbc r21, r25
5c80: 66 27 eor r22, r22
5c82: 57 fd sbrc r21, 7
5c84: 60 95 com r22
5c86: 76 2f mov r23, r22
5c88: 89 85 ldd r24, Y+9 ; 0x09
5c8a: 9a 85 ldd r25, Y+10 ; 0x0a
5c8c: ab 85 ldd r26, Y+11 ; 0x0b
5c8e: bc 85 ldd r27, Y+12 ; 0x0c
5c90: 48 0f add r20, r24
5c92: 59 1f adc r21, r25
5c94: 6a 1f adc r22, r26
5c96: 7b 1f adc r23, r27
5c98: 40 93 34 04 sts 0x0434, r20
5c9c: 50 93 35 04 sts 0x0435, r21
5ca0: 60 93 36 04 sts 0x0436, r22
5ca4: 70 93 37 04 sts 0x0437, r23
5ca8: 80 91 46 01 lds r24, 0x0146
5cac: 90 91 47 01 lds r25, 0x0147
5cb0: a0 91 48 01 lds r26, 0x0148
5cb4: b0 91 49 01 lds r27, 0x0149
5cb8: 84 17 cp r24, r20
5cba: 95 07 cpc r25, r21
5cbc: a6 07 cpc r26, r22
5cbe: b7 07 cpc r27, r23
5cc0: 84 f4 brge .+32 ; 0x5ce2 <Mittelwert+0x75c>
5cc2: 48 ea ldi r20, 0xA8 ; 168
5cc4: 51 e6 ldi r21, 0x61 ; 97
5cc6: 60 e0 ldi r22, 0x00 ; 0
5cc8: 70 e0 ldi r23, 0x00 ; 0
5cca: 48 1b sub r20, r24
5ccc: 59 0b sbc r21, r25
5cce: 6a 0b sbc r22, r26
5cd0: 7b 0b sbc r23, r27
5cd2: 40 93 34 04 sts 0x0434, r20
5cd6: 50 93 35 04 sts 0x0435, r21
5cda: 60 93 36 04 sts 0x0436, r22
5cde: 70 93 37 04 sts 0x0437, r23
5ce2: 44 27 eor r20, r20
5ce4: 55 27 eor r21, r21
5ce6: ba 01 movw r22, r20
5ce8: 48 1b sub r20, r24
5cea: 59 0b sbc r21, r25
5cec: 6a 0b sbc r22, r26
5cee: 7b 0b sbc r23, r27
5cf0: c0 90 34 04 lds r12, 0x0434
5cf4: d0 90 35 04 lds r13, 0x0435
5cf8: e0 90 36 04 lds r14, 0x0436
5cfc: f0 90 37 04 lds r15, 0x0437
5d00: c4 16 cp r12, r20
5d02: d5 06 cpc r13, r21
5d04: e6 06 cpc r14, r22
5d06: f7 06 cpc r15, r23
5d08: 64 f4 brge .+24 ; 0x5d22 <Mittelwert+0x79c>
5d0a: 88 5a subi r24, 0xA8 ; 168
5d0c: 91 46 sbci r25, 0x61 ; 97
5d0e: a1 09 sbc r26, r1
5d10: b1 09 sbc r27, r1
5d12: 80 93 34 04 sts 0x0434, r24
5d16: 90 93 35 04 sts 0x0435, r25
5d1a: a0 93 36 04 sts 0x0436, r26
5d1e: b0 93 37 04 sts 0x0437, r27
5d22: 80 91 2c 04 lds r24, 0x042C
5d26: 90 91 2d 04 lds r25, 0x042D
5d2a: a0 91 2e 04 lds r26, 0x042E
5d2e: b0 91 2f 04 lds r27, 0x042F
5d32: 80 93 38 04 sts 0x0438, r24
5d36: 90 93 39 04 sts 0x0439, r25
5d3a: a0 93 3a 04 sts 0x043A, r26
5d3e: b0 93 3b 04 sts 0x043B, r27
5d42: 80 91 34 04 lds r24, 0x0434
5d46: 90 91 35 04 lds r25, 0x0435
5d4a: a0 91 36 04 lds r26, 0x0436
5d4e: b0 91 37 04 lds r27, 0x0437
5d52: 80 93 40 04 sts 0x0440, r24
5d56: 90 93 41 04 sts 0x0441, r25
5d5a: a0 93 42 04 sts 0x0442, r26
5d5e: b0 93 43 04 sts 0x0443, r27
5d62: 80 91 30 04 lds r24, 0x0430
5d66: 90 91 31 04 lds r25, 0x0431
5d6a: a0 91 32 04 lds r26, 0x0432
5d6e: b0 91 33 04 lds r27, 0x0433
5d72: 80 93 3c 04 sts 0x043C, r24
5d76: 90 93 3d 04 sts 0x043D, r25
5d7a: a0 93 3e 04 sts 0x043E, r26
5d7e: b0 93 3f 04 sts 0x043F, r27
5d82: 80 91 18 01 lds r24, 0x0118
5d86: 90 91 19 01 lds r25, 0x0119
5d8a: 97 fd sbrc r25, 7
5d8c: 07 96 adiw r24, 0x07 ; 7
5d8e: e3 e0 ldi r30, 0x03 ; 3
5d90: 95 95 asr r25
5d92: 87 95 ror r24
5d94: ea 95 dec r30
5d96: e1 f7 brne .-8 ; 0x5d90 <Mittelwert+0x80a>
5d98: 90 93 05 06 sts 0x0605, r25
5d9c: 80 93 04 06 sts 0x0604, r24
5da0: 80 91 16 01 lds r24, 0x0116
5da4: 90 91 17 01 lds r25, 0x0117
5da8: 97 fd sbrc r25, 7
5daa: 07 96 adiw r24, 0x07 ; 7
5dac: 73 e0 ldi r23, 0x03 ; 3
5dae: 95 95 asr r25
5db0: 87 95 ror r24
5db2: 7a 95 dec r23
5db4: e1 f7 brne .-8 ; 0x5dae <Mittelwert+0x828>
5db6: 90 93 fa 05 sts 0x05FA, r25
5dba: 80 93 f9 05 sts 0x05F9, r24
5dbe: 80 91 65 03 lds r24, 0x0365
5dc2: 90 91 66 03 lds r25, 0x0366
5dc6: 0f 97 sbiw r24, 0x0f ; 15
5dc8: 34 f4 brge .+12 ; 0x5dd6 <Mittelwert+0x850>
5dca: 88 e1 ldi r24, 0x18 ; 24
5dcc: 9c ef ldi r25, 0xFC ; 252
5dce: 90 93 05 06 sts 0x0605, r25
5dd2: 80 93 04 06 sts 0x0604, r24
5dd6: 80 91 65 03 lds r24, 0x0365
5dda: 90 91 66 03 lds r25, 0x0366
5dde: 07 97 sbiw r24, 0x07 ; 7
5de0: 34 f4 brge .+12 ; 0x5dee <Mittelwert+0x868>
5de2: 80 e3 ldi r24, 0x30 ; 48
5de4: 98 ef ldi r25, 0xF8 ; 248
5de6: 90 93 05 06 sts 0x0605, r25
5dea: 80 93 04 06 sts 0x0604, r24
5dee: 80 91 65 03 lds r24, 0x0365
5df2: 90 91 66 03 lds r25, 0x0366
5df6: 81 3d cpi r24, 0xD1 ; 209
5df8: 97 40 sbci r25, 0x07 ; 7
5dfa: 34 f0 brlt .+12 ; 0x5e08 <Mittelwert+0x882>
5dfc: 88 ee ldi r24, 0xE8 ; 232
5dfe: 93 e0 ldi r25, 0x03 ; 3
5e00: 90 93 05 06 sts 0x0605, r25
5e04: 80 93 04 06 sts 0x0604, r24
5e08: 80 91 65 03 lds r24, 0x0365
5e0c: 90 91 66 03 lds r25, 0x0366
5e10: 80 3e cpi r24, 0xE0 ; 224
5e12: 97 40 sbci r25, 0x07 ; 7
5e14: 34 f0 brlt .+12 ; 0x5e22 <Mittelwert+0x89c>
5e16: 80 ed ldi r24, 0xD0 ; 208
5e18: 97 e0 ldi r25, 0x07 ; 7
5e1a: 90 93 05 06 sts 0x0605, r25
5e1e: 80 93 04 06 sts 0x0604, r24
5e22: 80 91 63 03 lds r24, 0x0363
5e26: 90 91 64 03 lds r25, 0x0364
5e2a: 0f 97 sbiw r24, 0x0f ; 15
5e2c: 34 f4 brge .+12 ; 0x5e3a <Mittelwert+0x8b4>
5e2e: 88 e1 ldi r24, 0x18 ; 24
5e30: 9c ef ldi r25, 0xFC ; 252
5e32: 90 93 fa 05 sts 0x05FA, r25
5e36: 80 93 f9 05 sts 0x05F9, r24
5e3a: 80 91 63 03 lds r24, 0x0363
5e3e: 90 91 64 03 lds r25, 0x0364
5e42: 07 97 sbiw r24, 0x07 ; 7
5e44: 34 f4 brge .+12 ; 0x5e52 <Mittelwert+0x8cc>
5e46: 80 e3 ldi r24, 0x30 ; 48
5e48: 98 ef ldi r25, 0xF8 ; 248
5e4a: 90 93 fa 05 sts 0x05FA, r25
5e4e: 80 93 f9 05 sts 0x05F9, r24
5e52: 80 91 63 03 lds r24, 0x0363
5e56: 90 91 64 03 lds r25, 0x0364
5e5a: 81 3d cpi r24, 0xD1 ; 209
5e5c: 97 40 sbci r25, 0x07 ; 7
5e5e: 34 f0 brlt .+12 ; 0x5e6c <Mittelwert+0x8e6>
5e60: 88 ee ldi r24, 0xE8 ; 232
5e62: 93 e0 ldi r25, 0x03 ; 3
5e64: 90 93 fa 05 sts 0x05FA, r25
5e68: 80 93 f9 05 sts 0x05F9, r24
5e6c: 80 91 63 03 lds r24, 0x0363
5e70: 90 91 64 03 lds r25, 0x0364
5e74: 80 3e cpi r24, 0xE0 ; 224
5e76: 97 40 sbci r25, 0x07 ; 7
5e78: 34 f0 brlt .+12 ; 0x5e86 <Mittelwert+0x900>
5e7a: 80 ed ldi r24, 0xD0 ; 208
5e7c: 97 e0 ldi r25, 0x07 ; 7
5e7e: 90 93 fa 05 sts 0x05FA, r25
5e82: 80 93 f9 05 sts 0x05F9, r24
5e86: 40 91 35 01 lds r20, 0x0135
5e8a: 44 23 and r20, r20
5e8c: 09 f4 brne .+2 ; 0x5e90 <Mittelwert+0x90a>
5e8e: a9 c0 rjmp .+338 ; 0x5fe2 <Mittelwert+0xa5c>
5e90: 20 91 18 01 lds r18, 0x0118
5e94: 30 91 19 01 lds r19, 0x0119
5e98: 60 91 a8 03 lds r22, 0x03A8
5e9c: 70 91 a9 03 lds r23, 0x03A9
5ea0: 26 1b sub r18, r22
5ea2: 37 0b sbc r19, r23
5ea4: 30 93 a7 03 sts 0x03A7, r19
5ea8: 20 93 a6 03 sts 0x03A6, r18
5eac: 80 91 18 01 lds r24, 0x0118
5eb0: 90 91 19 01 lds r25, 0x0119
5eb4: 86 0f add r24, r22
5eb6: 97 1f adc r25, r23
5eb8: 97 fd sbrc r25, 7
5eba: 01 96 adiw r24, 0x01 ; 1
5ebc: 95 95 asr r25
5ebe: 87 95 ror r24
5ec0: 90 93 a9 03 sts 0x03A9, r25
5ec4: 80 93 a8 03 sts 0x03A8, r24
5ec8: 21 38 cpi r18, 0x81 ; 129
5eca: 31 05 cpc r19, r1
5ecc: 1c f0 brlt .+6 ; 0x5ed4 <Mittelwert+0x94e>
5ece: 80 e8 ldi r24, 0x80 ; 128
5ed0: 90 e0 ldi r25, 0x00 ; 0
5ed2: 05 c0 rjmp .+10 ; 0x5ede <Mittelwert+0x958>
5ed4: 20 38 cpi r18, 0x80 ; 128
5ed6: 3f 4f sbci r19, 0xFF ; 255
5ed8: 34 f4 brge .+12 ; 0x5ee6 <Mittelwert+0x960>
5eda: 80 e8 ldi r24, 0x80 ; 128
5edc: 9f ef ldi r25, 0xFF ; 255
5ede: 90 93 a7 03 sts 0x03A7, r25
5ee2: 80 93 a6 03 sts 0x03A6, r24
5ee6: 20 91 16 01 lds r18, 0x0116
5eea: 30 91 17 01 lds r19, 0x0117
5eee: 60 91 a4 03 lds r22, 0x03A4
5ef2: 70 91 a5 03 lds r23, 0x03A5
5ef6: 26 1b sub r18, r22
5ef8: 37 0b sbc r19, r23
5efa: 30 93 a3 03 sts 0x03A3, r19
5efe: 20 93 a2 03 sts 0x03A2, r18
5f02: 80 91 16 01 lds r24, 0x0116
5f06: 90 91 17 01 lds r25, 0x0117
5f0a: 86 0f add r24, r22
5f0c: 97 1f adc r25, r23
5f0e: 97 fd sbrc r25, 7
5f10: 01 96 adiw r24, 0x01 ; 1
5f12: 95 95 asr r25
5f14: 87 95 ror r24
5f16: 90 93 a5 03 sts 0x03A5, r25
5f1a: 80 93 a4 03 sts 0x03A4, r24
5f1e: 21 38 cpi r18, 0x81 ; 129
5f20: 31 05 cpc r19, r1
5f22: 1c f0 brlt .+6 ; 0x5f2a <Mittelwert+0x9a4>
5f24: 80 e8 ldi r24, 0x80 ; 128
5f26: 90 e0 ldi r25, 0x00 ; 0
5f28: 05 c0 rjmp .+10 ; 0x5f34 <Mittelwert+0x9ae>
5f2a: 20 38 cpi r18, 0x80 ; 128
5f2c: 3f 4f sbci r19, 0xFF ; 255
5f2e: 34 f4 brge .+12 ; 0x5f3c <Mittelwert+0x9b6>
5f30: 80 e8 ldi r24, 0x80 ; 128
5f32: 9f ef ldi r25, 0xFF ; 255
5f34: 90 93 a3 03 sts 0x03A3, r25
5f38: 80 93 a2 03 sts 0x03A2, r24
5f3c: 50 e0 ldi r21, 0x00 ; 0
5f3e: 80 91 a6 03 lds r24, 0x03A6
5f42: 90 91 a7 03 lds r25, 0x03A7
5f46: 48 9f mul r20, r24
5f48: 90 01 movw r18, r0
5f4a: 49 9f mul r20, r25
5f4c: 30 0d add r19, r0
5f4e: 58 9f mul r21, r24
5f50: 30 0d add r19, r0
5f52: 11 24 eor r1, r1
5f54: c9 01 movw r24, r18
5f56: 37 fd sbrc r19, 7
5f58: 0f 96 adiw r24, 0x0f ; 15
5f5a: bc 01 movw r22, r24
5f5c: b4 e0 ldi r27, 0x04 ; 4
5f5e: 75 95 asr r23
5f60: 67 95 ror r22
5f62: ba 95 dec r27
5f64: e1 f7 brne .-8 ; 0x5f5e <Mittelwert+0x9d8>
5f66: 80 91 04 06 lds r24, 0x0604
5f6a: 90 91 05 06 lds r25, 0x0605
5f6e: 86 0f add r24, r22
5f70: 97 1f adc r25, r23
5f72: 90 93 05 06 sts 0x0605, r25
5f76: 80 93 04 06 sts 0x0604, r24
5f7a: 60 91 a2 03 lds r22, 0x03A2
5f7e: 70 91 a3 03 lds r23, 0x03A3
5f82: 46 9f mul r20, r22
5f84: c0 01 movw r24, r0
5f86: 47 9f mul r20, r23
5f88: 90 0d add r25, r0
5f8a: 56 9f mul r21, r22
5f8c: 90 0d add r25, r0
5f8e: 11 24 eor r1, r1
5f90: ac 01 movw r20, r24
5f92: 97 ff sbrs r25, 7
5f94: 02 c0 rjmp .+4 ; 0x5f9a <Mittelwert+0xa14>
5f96: 41 5f subi r20, 0xF1 ; 241
5f98: 5f 4f sbci r21, 0xFF ; 255
5f9a: ba 01 movw r22, r20
5f9c: a4 e0 ldi r26, 0x04 ; 4
5f9e: 75 95 asr r23
5fa0: 67 95 ror r22
5fa2: aa 95 dec r26
5fa4: e1 f7 brne .-8 ; 0x5f9e <Mittelwert+0xa18>
5fa6: 40 91 f9 05 lds r20, 0x05F9
5faa: 50 91 fa 05 lds r21, 0x05FA
5fae: 46 0f add r20, r22
5fb0: 57 1f adc r21, r23
5fb2: 50 93 fa 05 sts 0x05FA, r21
5fb6: 40 93 f9 05 sts 0x05F9, r20
5fba: 40 91 18 01 lds r20, 0x0118
5fbe: 50 91 19 01 lds r21, 0x0119
5fc2: 42 0f add r20, r18
5fc4: 53 1f adc r21, r19
5fc6: 50 93 19 01 sts 0x0119, r21
5fca: 40 93 18 01 sts 0x0118, r20
5fce: 20 91 16 01 lds r18, 0x0116
5fd2: 30 91 17 01 lds r19, 0x0117
5fd6: 28 0f add r18, r24
5fd8: 39 1f adc r19, r25
5fda: 30 93 17 01 sts 0x0117, r19
5fde: 20 93 16 01 sts 0x0116, r18
5fe2: e0 90 07 06 lds r14, 0x0607
5fe6: f0 90 08 06 lds r15, 0x0608
5fea: d0 90 28 01 lds r13, 0x0128
5fee: 90 91 f2 05 lds r25, 0x05F2
5ff2: 80 91 f3 05 lds r24, 0x05F3
5ff6: a9 2f mov r26, r25
5ff8: b8 2f mov r27, r24
5ffa: 1e 14 cp r1, r14
5ffc: 1f 04 cpc r1, r15
5ffe: 84 f4 brge .+32 ; 0x6020 <Mittelwert+0xa9a>
6000: b7 ff sbrs r27, 7
6002: 03 c0 rjmp .+6 ; 0x600a <Mittelwert+0xa84>
6004: b1 95 neg r27
6006: a1 95 neg r26
6008: b1 09 sbc r27, r1
600a: 2d 2d mov r18, r13
600c: 30 e0 ldi r19, 0x00 ; 0
600e: 0e 94 3f 9b call 0x1367e ; 0x1367e <__usmulhisi3>
6012: 20 e4 ldi r18, 0x40 ; 64
6014: 30 e0 ldi r19, 0x00 ; 0
6016: 40 e0 ldi r20, 0x00 ; 0
6018: 50 e0 ldi r21, 0x00 ; 0
601a: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
601e: 16 c0 rjmp .+44 ; 0x604c <Mittelwert+0xac6>
6020: b7 ff sbrs r27, 7
6022: 03 c0 rjmp .+6 ; 0x602a <Mittelwert+0xaa4>
6024: b1 95 neg r27
6026: a1 95 neg r26
6028: b1 09 sbc r27, r1
602a: 2d 2d mov r18, r13
602c: 30 e0 ldi r19, 0x00 ; 0
602e: 0e 94 3f 9b call 0x1367e ; 0x1367e <__usmulhisi3>
6032: 20 e4 ldi r18, 0x40 ; 64
6034: 30 e0 ldi r19, 0x00 ; 0
6036: 40 e0 ldi r20, 0x00 ; 0
6038: 50 e0 ldi r21, 0x00 ; 0
603a: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
603e: 50 95 com r21
6040: 40 95 com r20
6042: 30 95 com r19
6044: 21 95 neg r18
6046: 3f 4f sbci r19, 0xFF ; 255
6048: 4f 4f sbci r20, 0xFF ; 255
604a: 5f 4f sbci r21, 0xFF ; 255
604c: 20 0f add r18, r16
604e: 31 1f adc r19, r17
6050: 30 93 03 06 sts 0x0603, r19
6054: 20 93 02 06 sts 0x0602, r18
6058: 00 91 0c 06 lds r16, 0x060C
605c: 10 91 0d 06 lds r17, 0x060D
6060: 90 91 f4 05 lds r25, 0x05F4
6064: 80 91 f5 05 lds r24, 0x05F5
6068: a9 2f mov r26, r25
606a: b8 2f mov r27, r24
606c: 10 16 cp r1, r16
606e: 11 06 cpc r1, r17
6070: 84 f4 brge .+32 ; 0x6092 <Mittelwert+0xb0c>
6072: b7 ff sbrs r27, 7
6074: 03 c0 rjmp .+6 ; 0x607c <Mittelwert+0xaf6>
6076: b1 95 neg r27
6078: a1 95 neg r26
607a: b1 09 sbc r27, r1
607c: 2d 2d mov r18, r13
607e: 30 e0 ldi r19, 0x00 ; 0
6080: 0e 94 3f 9b call 0x1367e ; 0x1367e <__usmulhisi3>
6084: 20 e4 ldi r18, 0x40 ; 64
6086: 30 e0 ldi r19, 0x00 ; 0
6088: 40 e0 ldi r20, 0x00 ; 0
608a: 50 e0 ldi r21, 0x00 ; 0
608c: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
6090: 16 c0 rjmp .+44 ; 0x60be <Mittelwert+0xb38>
6092: b7 ff sbrs r27, 7
6094: 03 c0 rjmp .+6 ; 0x609c <Mittelwert+0xb16>
6096: b1 95 neg r27
6098: a1 95 neg r26
609a: b1 09 sbc r27, r1
609c: 2d 2d mov r18, r13
609e: 30 e0 ldi r19, 0x00 ; 0
60a0: 0e 94 3f 9b call 0x1367e ; 0x1367e <__usmulhisi3>
60a4: 20 e4 ldi r18, 0x40 ; 64
60a6: 30 e0 ldi r19, 0x00 ; 0
60a8: 40 e0 ldi r20, 0x00 ; 0
60aa: 50 e0 ldi r21, 0x00 ; 0
60ac: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
60b0: 50 95 com r21
60b2: 40 95 com r20
60b4: 30 95 com r19
60b6: 21 95 neg r18
60b8: 3f 4f sbci r19, 0xFF ; 255
60ba: 4f 4f sbci r20, 0xFF ; 255
60bc: 5f 4f sbci r21, 0xFF ; 255
60be: 22 0d add r18, r2
60c0: 33 1d adc r19, r3
60c2: 30 93 fc 05 sts 0x05FC, r19
60c6: 20 93 fb 05 sts 0x05FB, r18
60ca: 80 91 39 06 lds r24, 0x0639
60ce: 87 ff sbrs r24, 7
60d0: 32 c0 rjmp .+100 ; 0x6136 <Mittelwert+0xbb0>
60d2: 80 91 e5 03 lds r24, 0x03E5
60d6: 81 11 cpse r24, r1
60d8: 2e c0 rjmp .+92 ; 0x6136 <Mittelwert+0xbb0>
60da: 80 91 e4 03 lds r24, 0x03E4
60de: 81 11 cpse r24, r1
60e0: 2a c0 rjmp .+84 ; 0x6136 <Mittelwert+0xbb0>
60e2: 01 30 cpi r16, 0x01 ; 1
60e4: 71 e0 ldi r23, 0x01 ; 1
60e6: 17 07 cpc r17, r23
60e8: 14 f0 brlt .+4 ; 0x60ee <Mittelwert+0xb68>
60ea: 1a 95 dec r17
60ec: 05 c0 rjmp .+10 ; 0x60f8 <Mittelwert+0xb72>
60ee: 01 15 cp r16, r1
60f0: 8f ef ldi r24, 0xFF ; 255
60f2: 18 07 cpc r17, r24
60f4: 5c f4 brge .+22 ; 0x610c <Mittelwert+0xb86>
60f6: 13 95 inc r17
60f8: 80 91 04 06 lds r24, 0x0604
60fc: 90 91 05 06 lds r25, 0x0605
6100: 80 0f add r24, r16
6102: 91 1f adc r25, r17
6104: 90 93 05 06 sts 0x0605, r25
6108: 80 93 04 06 sts 0x0604, r24
610c: 91 e0 ldi r25, 0x01 ; 1
610e: e9 16 cp r14, r25
6110: f9 06 cpc r15, r25
6112: 14 f0 brlt .+4 ; 0x6118 <Mittelwert+0xb92>
6114: fa 94 dec r15
6116: 05 c0 rjmp .+10 ; 0x6122 <Mittelwert+0xb9c>
6118: e1 14 cp r14, r1
611a: bf ef ldi r27, 0xFF ; 255
611c: fb 06 cpc r15, r27
611e: 5c f4 brge .+22 ; 0x6136 <Mittelwert+0xbb0>
6120: f3 94 inc r15
6122: 80 91 f9 05 lds r24, 0x05F9
6126: 90 91 fa 05 lds r25, 0x05FA
612a: 8e 0d add r24, r14
612c: 9f 1d adc r25, r15
612e: 90 93 fa 05 sts 0x05FA, r25
6132: 80 93 f9 05 sts 0x05F9, r24
6136: 68 96 adiw r28, 0x18 ; 24
6138: 0f b6 in r0, 0x3f ; 63
613a: f8 94 cli
613c: de bf out 0x3e, r29 ; 62
613e: 0f be out 0x3f, r0 ; 63
6140: cd bf out 0x3d, r28 ; 61
6142: df 91 pop r29
6144: cf 91 pop r28
6146: 1f 91 pop r17
6148: 0f 91 pop r16
614a: ff 90 pop r15
614c: ef 90 pop r14
614e: df 90 pop r13
6150: cf 90 pop r12
6152: bf 90 pop r11
6154: af 90 pop r10
6156: 9f 90 pop r9
6158: 8f 90 pop r8
615a: 7f 90 pop r7
615c: 6f 90 pop r6
615e: 5f 90 pop r5
6160: 4f 90 pop r4
6162: 3f 90 pop r3
6164: 2f 90 pop r2
6166: 08 95 ret
 
00006168 <SendMotorData>:
6168: cf 93 push r28
616a: df 93 push r29
616c: 80 91 01 04 lds r24, 0x0401
6170: 81 11 cpse r24, r1
6172: 27 c0 rjmp .+78 ; 0x61c2 <SendMotorData+0x5a>
6174: 80 91 c9 03 lds r24, 0x03C9
6178: 8c 7f andi r24, 0xFC ; 252
617a: 80 93 c9 03 sts 0x03C9, r24
617e: 80 91 c8 03 lds r24, 0x03C8
6182: 8f 7d andi r24, 0xDF ; 223
6184: 80 93 c8 03 sts 0x03C8, r24
6188: e4 e4 ldi r30, 0x44 ; 68
618a: fa e0 ldi r31, 0x0A ; 10
618c: a6 e7 ldi r26, 0x76 ; 118
618e: b9 e0 ldi r27, 0x09 ; 9
6190: 80 91 f3 04 lds r24, 0x04F3
6194: 81 11 cpse r24, r1
6196: 01 c0 rjmp .+2 ; 0x619a <SendMotorData+0x32>
6198: 10 82 st Z, r1
619a: 81 91 ld r24, Z+
619c: ed 01 movw r28, r26
619e: 21 97 sbiw r28, 0x01 ; 1
61a0: 88 83 st Y, r24
61a2: 1c 92 st X, r1
61a4: 1f 96 adiw r26, 0x0f ; 15
61a6: 8a e0 ldi r24, 0x0A ; 10
61a8: e0 35 cpi r30, 0x50 ; 80
61aa: f8 07 cpc r31, r24
61ac: 89 f7 brne .-30 ; 0x6190 <SendMotorData+0x28>
61ae: 80 91 f3 04 lds r24, 0x04F3
61b2: 88 23 and r24, r24
61b4: 59 f0 breq .+22 ; 0x61cc <SendMotorData+0x64>
61b6: 80 91 f3 04 lds r24, 0x04F3
61ba: 81 50 subi r24, 0x01 ; 1
61bc: 80 93 f3 04 sts 0x04F3, r24
61c0: 05 c0 rjmp .+10 ; 0x61cc <SendMotorData+0x64>
61c2: 80 91 c9 03 lds r24, 0x03C9
61c6: 81 60 ori r24, 0x01 ; 1
61c8: 80 93 c9 03 sts 0x03C9, r24
61cc: 80 91 de 04 lds r24, 0x04DE
61d0: 88 23 and r24, r24
61d2: 19 f0 breq .+6 ; 0x61da <SendMotorData+0x72>
61d4: 10 92 de 04 sts 0x04DE, r1
61d8: 0a c0 rjmp .+20 ; 0x61ee <SendMotorData+0x86>
61da: 10 92 e1 04 sts 0x04E1, r1
61de: 80 91 dc 04 lds r24, 0x04DC
61e2: 8e 7f andi r24, 0xFE ; 254
61e4: 80 93 dc 04 sts 0x04DC, r24
61e8: 85 ea ldi r24, 0xA5 ; 165
61ea: 80 93 bc 00 sts 0x00BC, r24
61ee: df 91 pop r29
61f0: cf 91 pop r28
61f2: 08 95 ret
 
000061f4 <GetChannelValue>:
61f4: 88 23 and r24, r24
61f6: a9 f0 breq .+42 ; 0x6222 <GetChannelValue+0x2e>
61f8: e8 2f mov r30, r24
61fa: f0 e0 ldi r31, 0x00 ; 0
61fc: ee 0f add r30, r30
61fe: ff 1f adc r31, r31
6200: e2 5f subi r30, 0xF2 ; 242
6202: f7 4f sbci r31, 0xF7 ; 247
6204: 80 81 ld r24, Z
6206: 91 81 ldd r25, Z+1 ; 0x01
6208: 81 58 subi r24, 0x81 ; 129
620a: 9f 4f sbci r25, 0xFF ; 255
620c: 97 ff sbrs r25, 7
620e: 02 c0 rjmp .+4 ; 0x6214 <GetChannelValue+0x20>
6210: 80 e0 ldi r24, 0x00 ; 0
6212: 90 e0 ldi r25, 0x00 ; 0
6214: 8f 3f cpi r24, 0xFF ; 255
6216: 91 05 cpc r25, r1
6218: 29 f0 breq .+10 ; 0x6224 <GetChannelValue+0x30>
621a: 24 f0 brlt .+8 ; 0x6224 <GetChannelValue+0x30>
621c: 8f ef ldi r24, 0xFF ; 255
621e: 90 e0 ldi r25, 0x00 ; 0
6220: 08 95 ret
6222: 80 e0 ldi r24, 0x00 ; 0
6224: 08 95 ret
 
00006226 <ParameterZuordnung>:
6226: cf 93 push r28
6228: df 93 push r29
622a: c0 e2 ldi r28, 0x20 ; 32
622c: d5 e0 ldi r29, 0x05 ; 5
622e: e3 e0 ldi r30, 0x03 ; 3
6230: f4 e0 ldi r31, 0x04 ; 4
6232: 29 91 ld r18, Y+
6234: a2 2f mov r26, r18
6236: b0 e0 ldi r27, 0x00 ; 0
6238: aa 0f add r26, r26
623a: bb 1f adc r27, r27
623c: a2 5f subi r26, 0xF2 ; 242
623e: b7 4f sbci r27, 0xF7 ; 247
6240: 8d 91 ld r24, X+
6242: 9c 91 ld r25, X
6244: 81 58 subi r24, 0x81 ; 129
6246: 9f 4f sbci r25, 0xFF ; 255
6248: 97 ff sbrs r25, 7
624a: 02 c0 rjmp .+4 ; 0x6250 <ParameterZuordnung+0x2a>
624c: 80 e0 ldi r24, 0x00 ; 0
624e: 90 e0 ldi r25, 0x00 ; 0
6250: 8f 3f cpi r24, 0xFF ; 255
6252: 91 05 cpc r25, r1
6254: 19 f0 breq .+6 ; 0x625c <ParameterZuordnung+0x36>
6256: 14 f0 brlt .+4 ; 0x625c <ParameterZuordnung+0x36>
6258: 8f ef ldi r24, 0xFF ; 255
625a: 90 e0 ldi r25, 0x00 ; 0
625c: 29 31 cpi r18, 0x19 ; 25
625e: 11 f4 brne .+4 ; 0x6264 <ParameterZuordnung+0x3e>
6260: 80 83 st Z, r24
6262: 1c c0 rjmp .+56 ; 0x629c <ParameterZuordnung+0x76>
6264: 60 81 ld r22, Z
6266: 46 2f mov r20, r22
6268: 50 e0 ldi r21, 0x00 ; 0
626a: 84 17 cp r24, r20
626c: 95 07 cpc r25, r21
626e: b1 f0 breq .+44 ; 0x629c <ParameterZuordnung+0x76>
6270: 9c 01 movw r18, r24
6272: 24 1b sub r18, r20
6274: 35 0b sbc r19, r21
6276: 37 ff sbrs r19, 7
6278: 02 c0 rjmp .+4 ; 0x627e <ParameterZuordnung+0x58>
627a: 2d 5f subi r18, 0xFD ; 253
627c: 3f 4f sbci r19, 0xFF ; 255
627e: 35 95 asr r19
6280: 27 95 ror r18
6282: 35 95 asr r19
6284: 27 95 ror r18
6286: 26 0f add r18, r22
6288: 20 83 st Z, r18
628a: 42 2f mov r20, r18
628c: 50 e0 ldi r21, 0x00 ; 0
628e: 84 17 cp r24, r20
6290: 95 07 cpc r25, r21
6292: 14 f4 brge .+4 ; 0x6298 <ParameterZuordnung+0x72>
6294: 21 50 subi r18, 0x01 ; 1
6296: 01 c0 rjmp .+2 ; 0x629a <ParameterZuordnung+0x74>
6298: 2f 5f subi r18, 0xFF ; 255
629a: 20 83 st Z, r18
629c: 31 96 adiw r30, 0x01 ; 1
629e: 25 e0 ldi r18, 0x05 ; 5
62a0: c8 32 cpi r28, 0x28 ; 40
62a2: d2 07 cpc r29, r18
62a4: 31 f6 brne .-116 ; 0x6232 <ParameterZuordnung+0xc>
62a6: 80 91 2a 05 lds r24, 0x052A
62aa: 88 3f cpi r24, 0xF8 ; 248
62ac: 38 f0 brcs .+14 ; 0x62bc <ParameterZuordnung+0x96>
62ae: ef ef ldi r30, 0xFF ; 255
62b0: f0 e0 ldi r31, 0x00 ; 0
62b2: e8 1b sub r30, r24
62b4: f1 09 sbc r31, r1
62b6: ed 5f subi r30, 0xFD ; 253
62b8: fb 4f sbci r31, 0xFB ; 251
62ba: 80 81 ld r24, Z
62bc: 80 93 3a 01 sts 0x013A, r24
62c0: 80 91 3a 01 lds r24, 0x013A
62c4: 84 36 cpi r24, 0x64 ; 100
62c6: 18 f0 brcs .+6 ; 0x62ce <ParameterZuordnung+0xa8>
62c8: 84 e6 ldi r24, 0x64 ; 100
62ca: 80 93 3a 01 sts 0x013A, r24
62ce: 80 91 2c 05 lds r24, 0x052C
62d2: 88 3f cpi r24, 0xF8 ; 248
62d4: 38 f0 brcs .+14 ; 0x62e4 <ParameterZuordnung+0xbe>
62d6: ef ef ldi r30, 0xFF ; 255
62d8: f0 e0 ldi r31, 0x00 ; 0
62da: e8 1b sub r30, r24
62dc: f1 09 sbc r31, r1
62de: ed 5f subi r30, 0xFD ; 253
62e0: fb 4f sbci r31, 0xFB ; 251
62e2: 80 81 ld r24, Z
62e4: 80 93 39 01 sts 0x0139, r24
62e8: 80 91 39 01 lds r24, 0x0139
62ec: 84 36 cpi r24, 0x64 ; 100
62ee: 18 f0 brcs .+6 ; 0x62f6 <ParameterZuordnung+0xd0>
62f0: 84 e6 ldi r24, 0x64 ; 100
62f2: 80 93 39 01 sts 0x0139, r24
62f6: 80 91 39 05 lds r24, 0x0539
62fa: 88 3f cpi r24, 0xF8 ; 248
62fc: 38 f0 brcs .+14 ; 0x630c <ParameterZuordnung+0xe6>
62fe: ef ef ldi r30, 0xFF ; 255
6300: f0 e0 ldi r31, 0x00 ; 0
6302: e8 1b sub r30, r24
6304: f1 09 sbc r31, r1
6306: ed 5f subi r30, 0xFD ; 253
6308: fb 4f sbci r31, 0xFB ; 251
630a: 80 81 ld r24, Z
630c: 80 93 34 01 sts 0x0134, r24
6310: 80 91 34 01 lds r24, 0x0134
6314: 8b 30 cpi r24, 0x0B ; 11
6316: 18 f4 brcc .+6 ; 0x631e <ParameterZuordnung+0xf8>
6318: 8a e0 ldi r24, 0x0A ; 10
631a: 80 93 34 01 sts 0x0134, r24
631e: 80 91 66 05 lds r24, 0x0566
6322: 88 3f cpi r24, 0xF8 ; 248
6324: 38 f0 brcs .+14 ; 0x6334 <ParameterZuordnung+0x10e>
6326: ef ef ldi r30, 0xFF ; 255
6328: f0 e0 ldi r31, 0x00 ; 0
632a: e8 1b sub r30, r24
632c: f1 09 sbc r31, r1
632e: ed 5f subi r30, 0xFD ; 253
6330: fb 4f sbci r31, 0xFB ; 251
6332: 80 81 ld r24, Z
6334: 80 93 18 06 sts 0x0618, r24
6338: 80 91 18 06 lds r24, 0x0618
633c: 86 30 cpi r24, 0x06 ; 6
633e: 18 f4 brcc .+6 ; 0x6346 <ParameterZuordnung+0x120>
6340: 85 e0 ldi r24, 0x05 ; 5
6342: 80 93 18 06 sts 0x0618, r24
6346: 80 91 68 05 lds r24, 0x0568
634a: 88 3f cpi r24, 0xF8 ; 248
634c: 38 f0 brcs .+14 ; 0x635c <ParameterZuordnung+0x136>
634e: ef ef ldi r30, 0xFF ; 255
6350: f0 e0 ldi r31, 0x00 ; 0
6352: e8 1b sub r30, r24
6354: f1 09 sbc r31, r1
6356: ed 5f subi r30, 0xFD ; 253
6358: fb 4f sbci r31, 0xFB ; 251
635a: 80 81 ld r24, Z
635c: 80 93 40 06 sts 0x0640, r24
6360: 80 91 40 06 lds r24, 0x0640
6364: 86 30 cpi r24, 0x06 ; 6
6366: 18 f4 brcc .+6 ; 0x636e <ParameterZuordnung+0x148>
6368: 85 e0 ldi r24, 0x05 ; 5
636a: 80 93 40 06 sts 0x0640, r24
636e: 80 91 53 05 lds r24, 0x0553
6372: 87 3f cpi r24, 0xF7 ; 247
6374: 29 f4 brne .+10 ; 0x6380 <ParameterZuordnung+0x15a>
6376: 42 9b sbis 0x08, 2 ; 8
6378: 07 c0 rjmp .+14 ; 0x6388 <ParameterZuordnung+0x162>
637a: 80 91 88 05 lds r24, 0x0588
637e: 17 c0 rjmp .+46 ; 0x63ae <ParameterZuordnung+0x188>
6380: 86 3f cpi r24, 0xF6 ; 246
6382: 29 f4 brne .+10 ; 0x638e <ParameterZuordnung+0x168>
6384: 43 99 sbic 0x08, 3 ; 8
6386: f9 cf rjmp .-14 ; 0x637a <ParameterZuordnung+0x154>
6388: 80 91 89 05 lds r24, 0x0589
638c: 10 c0 rjmp .+32 ; 0x63ae <ParameterZuordnung+0x188>
638e: 88 3f cpi r24, 0xF8 ; 248
6390: 38 f0 brcs .+14 ; 0x63a0 <ParameterZuordnung+0x17a>
6392: ef ef ldi r30, 0xFF ; 255
6394: f0 e0 ldi r31, 0x00 ; 0
6396: e8 1b sub r30, r24
6398: f1 09 sbc r31, r1
639a: ed 5f subi r30, 0xFD ; 253
639c: fb 4f sbci r31, 0xFB ; 251
639e: 80 81 ld r24, Z
63a0: 80 93 15 06 sts 0x0615, r24
63a4: 80 91 15 06 lds r24, 0x0615
63a8: 89 31 cpi r24, 0x19 ; 25
63aa: 18 f4 brcc .+6 ; 0x63b2 <ParameterZuordnung+0x18c>
63ac: 88 e1 ldi r24, 0x18 ; 24
63ae: 80 93 15 06 sts 0x0615, r24
63b2: 80 91 54 05 lds r24, 0x0554
63b6: 87 3f cpi r24, 0xF7 ; 247
63b8: 29 f4 brne .+10 ; 0x63c4 <ParameterZuordnung+0x19e>
63ba: 42 9b sbis 0x08, 2 ; 8
63bc: 07 c0 rjmp .+14 ; 0x63cc <ParameterZuordnung+0x1a6>
63be: 80 91 8a 05 lds r24, 0x058A
63c2: 17 c0 rjmp .+46 ; 0x63f2 <ParameterZuordnung+0x1cc>
63c4: 86 3f cpi r24, 0xF6 ; 246
63c6: 29 f4 brne .+10 ; 0x63d2 <ParameterZuordnung+0x1ac>
63c8: 43 99 sbic 0x08, 3 ; 8
63ca: f9 cf rjmp .-14 ; 0x63be <ParameterZuordnung+0x198>
63cc: 80 91 8b 05 lds r24, 0x058B
63d0: 10 c0 rjmp .+32 ; 0x63f2 <ParameterZuordnung+0x1cc>
63d2: 88 3f cpi r24, 0xF8 ; 248
63d4: 38 f0 brcs .+14 ; 0x63e4 <ParameterZuordnung+0x1be>
63d6: ef ef ldi r30, 0xFF ; 255
63d8: f0 e0 ldi r31, 0x00 ; 0
63da: e8 1b sub r30, r24
63dc: f1 09 sbc r31, r1
63de: ed 5f subi r30, 0xFD ; 253
63e0: fb 4f sbci r31, 0xFB ; 251
63e2: 80 81 ld r24, Z
63e4: 80 93 f6 05 sts 0x05F6, r24
63e8: 80 91 f6 05 lds r24, 0x05F6
63ec: 89 31 cpi r24, 0x19 ; 25
63ee: 18 f4 brcc .+6 ; 0x63f6 <ParameterZuordnung+0x1d0>
63f0: 88 e1 ldi r24, 0x18 ; 24
63f2: 80 93 f6 05 sts 0x05F6, r24
63f6: 80 91 55 05 lds r24, 0x0555
63fa: 88 3f cpi r24, 0xF8 ; 248
63fc: 38 f0 brcs .+14 ; 0x640c <ParameterZuordnung+0x1e6>
63fe: ef ef ldi r30, 0xFF ; 255
6400: f0 e0 ldi r31, 0x00 ; 0
6402: e8 1b sub r30, r24
6404: f1 09 sbc r31, r1
6406: ed 5f subi r30, 0xFD ; 253
6408: fb 4f sbci r31, 0xFB ; 251
640a: 80 81 ld r24, Z
640c: 80 93 1e 06 sts 0x061E, r24
6410: 80 91 1e 06 lds r24, 0x061E
6414: 89 31 cpi r24, 0x19 ; 25
6416: 18 f4 brcc .+6 ; 0x641e <ParameterZuordnung+0x1f8>
6418: 88 e1 ldi r24, 0x18 ; 24
641a: 80 93 1e 06 sts 0x061E, r24
641e: 80 91 2b 05 lds r24, 0x052B
6422: e8 de rcall .-560 ; 0x61f4 <GetChannelValue>
6424: 80 93 df 03 sts 0x03DF, r24
6428: 80 91 2e 05 lds r24, 0x052E
642c: 88 3f cpi r24, 0xF8 ; 248
642e: 38 f0 brcs .+14 ; 0x643e <ParameterZuordnung+0x218>
6430: ef ef ldi r30, 0xFF ; 255
6432: f0 e0 ldi r31, 0x00 ; 0
6434: e8 1b sub r30, r24
6436: f1 09 sbc r31, r1
6438: ed 5f subi r30, 0xFD ; 253
643a: fb 4f sbci r31, 0xFB ; 251
643c: 80 81 ld r24, Z
643e: 80 93 38 01 sts 0x0138, r24
6442: 80 91 30 05 lds r24, 0x0530
6446: 88 3f cpi r24, 0xF8 ; 248
6448: 38 f0 brcs .+14 ; 0x6458 <ParameterZuordnung+0x232>
644a: ef ef ldi r30, 0xFF ; 255
644c: f0 e0 ldi r31, 0x00 ; 0
644e: e8 1b sub r30, r24
6450: f1 09 sbc r31, r1
6452: ed 5f subi r30, 0xFD ; 253
6454: fb 4f sbci r31, 0xFB ; 251
6456: 80 81 ld r24, Z
6458: 80 93 36 01 sts 0x0136, r24
645c: 80 91 38 05 lds r24, 0x0538
6460: 88 3f cpi r24, 0xF8 ; 248
6462: 38 f0 brcs .+14 ; 0x6472 <ParameterZuordnung+0x24c>
6464: ef ef ldi r30, 0xFF ; 255
6466: f0 e0 ldi r31, 0x00 ; 0
6468: e8 1b sub r30, r24
646a: f1 09 sbc r31, r1
646c: ed 5f subi r30, 0xFD ; 253
646e: fb 4f sbci r31, 0xFB ; 251
6470: 80 81 ld r24, Z
6472: 80 93 37 01 sts 0x0137, r24
6476: 80 91 3a 05 lds r24, 0x053A
647a: 88 3f cpi r24, 0xF8 ; 248
647c: 38 f0 brcs .+14 ; 0x648c <ParameterZuordnung+0x266>
647e: ef ef ldi r30, 0xFF ; 255
6480: f0 e0 ldi r31, 0x00 ; 0
6482: e8 1b sub r30, r24
6484: f1 09 sbc r31, r1
6486: ed 5f subi r30, 0xFD ; 253
6488: fb 4f sbci r31, 0xFB ; 251
648a: 80 81 ld r24, Z
648c: 80 93 33 01 sts 0x0133, r24
6490: 80 91 3b 05 lds r24, 0x053B
6494: 88 3f cpi r24, 0xF8 ; 248
6496: 38 f0 brcs .+14 ; 0x64a6 <ParameterZuordnung+0x280>
6498: ef ef ldi r30, 0xFF ; 255
649a: f0 e0 ldi r31, 0x00 ; 0
649c: e8 1b sub r30, r24
649e: f1 09 sbc r31, r1
64a0: ed 5f subi r30, 0xFD ; 253
64a2: fb 4f sbci r31, 0xFB ; 251
64a4: 80 81 ld r24, Z
64a6: 80 93 35 01 sts 0x0135, r24
64aa: 80 91 3c 05 lds r24, 0x053C
64ae: 88 3f cpi r24, 0xF8 ; 248
64b0: 38 f0 brcs .+14 ; 0x64c0 <ParameterZuordnung+0x29a>
64b2: ef ef ldi r30, 0xFF ; 255
64b4: f0 e0 ldi r31, 0x00 ; 0
64b6: e8 1b sub r30, r24
64b8: f1 09 sbc r31, r1
64ba: ed 5f subi r30, 0xFD ; 253
64bc: fb 4f sbci r31, 0xFB ; 251
64be: 80 81 ld r24, Z
64c0: 80 93 32 01 sts 0x0132, r24
64c4: 80 91 3d 05 lds r24, 0x053D
64c8: 88 3f cpi r24, 0xF8 ; 248
64ca: 38 f0 brcs .+14 ; 0x64da <ParameterZuordnung+0x2b4>
64cc: ef ef ldi r30, 0xFF ; 255
64ce: f0 e0 ldi r31, 0x00 ; 0
64d0: e8 1b sub r30, r24
64d2: f1 09 sbc r31, r1
64d4: ed 5f subi r30, 0xFD ; 253
64d6: fb 4f sbci r31, 0xFB ; 251
64d8: 80 81 ld r24, Z
64da: 80 93 31 01 sts 0x0131, r24
64de: 80 91 43 05 lds r24, 0x0543
64e2: 88 3f cpi r24, 0xF8 ; 248
64e4: 38 f0 brcs .+14 ; 0x64f4 <ParameterZuordnung+0x2ce>
64e6: ef ef ldi r30, 0xFF ; 255
64e8: f0 e0 ldi r31, 0x00 ; 0
64ea: e8 1b sub r30, r24
64ec: f1 09 sbc r31, r1
64ee: ed 5f subi r30, 0xFD ; 253
64f0: fb 4f sbci r31, 0xFB ; 251
64f2: 80 81 ld r24, Z
64f4: 80 93 30 01 sts 0x0130, r24
64f8: 80 91 44 05 lds r24, 0x0544
64fc: 88 3f cpi r24, 0xF8 ; 248
64fe: 38 f0 brcs .+14 ; 0x650e <ParameterZuordnung+0x2e8>
6500: ef ef ldi r30, 0xFF ; 255
6502: f0 e0 ldi r31, 0x00 ; 0
6504: e8 1b sub r30, r24
6506: f1 09 sbc r31, r1
6508: ed 5f subi r30, 0xFD ; 253
650a: fb 4f sbci r31, 0xFB ; 251
650c: 80 81 ld r24, Z
650e: 80 93 de 03 sts 0x03DE, r24
6512: 80 91 45 05 lds r24, 0x0545
6516: 88 3f cpi r24, 0xF8 ; 248
6518: 38 f0 brcs .+14 ; 0x6528 <ParameterZuordnung+0x302>
651a: ef ef ldi r30, 0xFF ; 255
651c: f0 e0 ldi r31, 0x00 ; 0
651e: e8 1b sub r30, r24
6520: f1 09 sbc r31, r1
6522: ed 5f subi r30, 0xFD ; 253
6524: fb 4f sbci r31, 0xFB ; 251
6526: 80 81 ld r24, Z
6528: 80 93 dd 03 sts 0x03DD, r24
652c: 80 91 46 05 lds r24, 0x0546
6530: 88 3f cpi r24, 0xF8 ; 248
6532: 38 f0 brcs .+14 ; 0x6542 <ParameterZuordnung+0x31c>
6534: ef ef ldi r30, 0xFF ; 255
6536: f0 e0 ldi r31, 0x00 ; 0
6538: e8 1b sub r30, r24
653a: f1 09 sbc r31, r1
653c: ed 5f subi r30, 0xFD ; 253
653e: fb 4f sbci r31, 0xFB ; 251
6540: 80 81 ld r24, Z
6542: 80 93 dc 03 sts 0x03DC, r24
6546: 80 91 47 05 lds r24, 0x0547
654a: 88 3f cpi r24, 0xF8 ; 248
654c: 38 f0 brcs .+14 ; 0x655c <ParameterZuordnung+0x336>
654e: ef ef ldi r30, 0xFF ; 255
6550: f0 e0 ldi r31, 0x00 ; 0
6552: e8 1b sub r30, r24
6554: f1 09 sbc r31, r1
6556: ed 5f subi r30, 0xFD ; 253
6558: fb 4f sbci r31, 0xFB ; 251
655a: 80 81 ld r24, Z
655c: 80 93 db 03 sts 0x03DB, r24
6560: 80 91 61 05 lds r24, 0x0561
6564: 88 3f cpi r24, 0xF8 ; 248
6566: 38 f0 brcs .+14 ; 0x6576 <ParameterZuordnung+0x350>
6568: ef ef ldi r30, 0xFF ; 255
656a: f0 e0 ldi r31, 0x00 ; 0
656c: e8 1b sub r30, r24
656e: f1 09 sbc r31, r1
6570: ed 5f subi r30, 0xFD ; 253
6572: fb 4f sbci r31, 0xFB ; 251
6574: 80 81 ld r24, Z
6576: 80 93 da 03 sts 0x03DA, r24
657a: 80 91 62 05 lds r24, 0x0562
657e: 88 3f cpi r24, 0xF8 ; 248
6580: 38 f0 brcs .+14 ; 0x6590 <ParameterZuordnung+0x36a>
6582: ef ef ldi r30, 0xFF ; 255
6584: f0 e0 ldi r31, 0x00 ; 0
6586: e8 1b sub r30, r24
6588: f1 09 sbc r31, r1
658a: ed 5f subi r30, 0xFD ; 253
658c: fb 4f sbci r31, 0xFB ; 251
658e: 80 81 ld r24, Z
6590: 80 93 d9 03 sts 0x03D9, r24
6594: 80 91 63 05 lds r24, 0x0563
6598: 88 3f cpi r24, 0xF8 ; 248
659a: 38 f0 brcs .+14 ; 0x65aa <ParameterZuordnung+0x384>
659c: ef ef ldi r30, 0xFF ; 255
659e: f0 e0 ldi r31, 0x00 ; 0
65a0: e8 1b sub r30, r24
65a2: f1 09 sbc r31, r1
65a4: ed 5f subi r30, 0xFD ; 253
65a6: fb 4f sbci r31, 0xFB ; 251
65a8: 80 81 ld r24, Z
65aa: 80 93 d8 03 sts 0x03D8, r24
65ae: 80 91 64 05 lds r24, 0x0564
65b2: 88 3f cpi r24, 0xF8 ; 248
65b4: 38 f0 brcs .+14 ; 0x65c4 <ParameterZuordnung+0x39e>
65b6: ef ef ldi r30, 0xFF ; 255
65b8: f0 e0 ldi r31, 0x00 ; 0
65ba: e8 1b sub r30, r24
65bc: f1 09 sbc r31, r1
65be: ed 5f subi r30, 0xFD ; 253
65c0: fb 4f sbci r31, 0xFB ; 251
65c2: 80 81 ld r24, Z
65c4: 80 93 d7 03 sts 0x03D7, r24
65c8: 80 91 48 05 lds r24, 0x0548
65cc: 88 3f cpi r24, 0xF8 ; 248
65ce: 38 f0 brcs .+14 ; 0x65de <ParameterZuordnung+0x3b8>
65d0: ef ef ldi r30, 0xFF ; 255
65d2: f0 e0 ldi r31, 0x00 ; 0
65d4: e8 1b sub r30, r24
65d6: f1 09 sbc r31, r1
65d8: ed 5f subi r30, 0xFD ; 253
65da: fb 4f sbci r31, 0xFB ; 251
65dc: 80 81 ld r24, Z
65de: 80 93 2f 01 sts 0x012F, r24
65e2: 80 91 4c 05 lds r24, 0x054C
65e6: 88 3f cpi r24, 0xF8 ; 248
65e8: 38 f0 brcs .+14 ; 0x65f8 <ParameterZuordnung+0x3d2>
65ea: ef ef ldi r30, 0xFF ; 255
65ec: f0 e0 ldi r31, 0x00 ; 0
65ee: e8 1b sub r30, r24
65f0: f1 09 sbc r31, r1
65f2: ed 5f subi r30, 0xFD ; 253
65f4: fb 4f sbci r31, 0xFB ; 251
65f6: 80 81 ld r24, Z
65f8: 80 93 2e 01 sts 0x012E, r24
65fc: 80 91 49 05 lds r24, 0x0549
6600: 88 3f cpi r24, 0xF8 ; 248
6602: 38 f0 brcs .+14 ; 0x6612 <ParameterZuordnung+0x3ec>
6604: ef ef ldi r30, 0xFF ; 255
6606: f0 e0 ldi r31, 0x00 ; 0
6608: e8 1b sub r30, r24
660a: f1 09 sbc r31, r1
660c: ed 5f subi r30, 0xFD ; 253
660e: fb 4f sbci r31, 0xFB ; 251
6610: 80 81 ld r24, Z
6612: 80 93 2d 01 sts 0x012D, r24
6616: 80 91 4d 05 lds r24, 0x054D
661a: 88 3f cpi r24, 0xF8 ; 248
661c: 38 f0 brcs .+14 ; 0x662c <ParameterZuordnung+0x406>
661e: ef ef ldi r30, 0xFF ; 255
6620: f0 e0 ldi r31, 0x00 ; 0
6622: e8 1b sub r30, r24
6624: f1 09 sbc r31, r1
6626: ed 5f subi r30, 0xFD ; 253
6628: fb 4f sbci r31, 0xFB ; 251
662a: 80 81 ld r24, Z
662c: 80 93 2c 01 sts 0x012C, r24
6630: 80 91 56 05 lds r24, 0x0556
6634: 88 3f cpi r24, 0xF8 ; 248
6636: 38 f0 brcs .+14 ; 0x6646 <ParameterZuordnung+0x420>
6638: ef ef ldi r30, 0xFF ; 255
663a: f0 e0 ldi r31, 0x00 ; 0
663c: e8 1b sub r30, r24
663e: f1 09 sbc r31, r1
6640: ed 5f subi r30, 0xFD ; 253
6642: fb 4f sbci r31, 0xFB ; 251
6644: 80 81 ld r24, Z
6646: 80 93 2b 01 sts 0x012B, r24
664a: 80 91 59 05 lds r24, 0x0559
664e: 88 3f cpi r24, 0xF8 ; 248
6650: 38 f0 brcs .+14 ; 0x6660 <ParameterZuordnung+0x43a>
6652: ef ef ldi r30, 0xFF ; 255
6654: f0 e0 ldi r31, 0x00 ; 0
6656: e8 1b sub r30, r24
6658: f1 09 sbc r31, r1
665a: ed 5f subi r30, 0xFD ; 253
665c: fb 4f sbci r31, 0xFB ; 251
665e: 80 81 ld r24, Z
6660: 80 93 2a 01 sts 0x012A, r24
6664: 80 91 5a 05 lds r24, 0x055A
6668: 88 3f cpi r24, 0xF8 ; 248
666a: 38 f0 brcs .+14 ; 0x667a <ParameterZuordnung+0x454>
666c: ef ef ldi r30, 0xFF ; 255
666e: f0 e0 ldi r31, 0x00 ; 0
6670: e8 1b sub r30, r24
6672: f1 09 sbc r31, r1
6674: ed 5f subi r30, 0xFD ; 253
6676: fb 4f sbci r31, 0xFB ; 251
6678: 80 81 ld r24, Z
667a: 80 93 29 01 sts 0x0129, r24
667e: 80 91 5b 05 lds r24, 0x055B
6682: 88 3f cpi r24, 0xF8 ; 248
6684: 38 f0 brcs .+14 ; 0x6694 <ParameterZuordnung+0x46e>
6686: ef ef ldi r30, 0xFF ; 255
6688: f0 e0 ldi r31, 0x00 ; 0
668a: e8 1b sub r30, r24
668c: f1 09 sbc r31, r1
668e: ed 5f subi r30, 0xFD ; 253
6690: fb 4f sbci r31, 0xFB ; 251
6692: 80 81 ld r24, Z
6694: 80 93 28 01 sts 0x0128, r24
6698: 80 91 84 05 lds r24, 0x0584
669c: 88 3f cpi r24, 0xF8 ; 248
669e: 38 f0 brcs .+14 ; 0x66ae <ParameterZuordnung+0x488>
66a0: ef ef ldi r30, 0xFF ; 255
66a2: f0 e0 ldi r31, 0x00 ; 0
66a4: e8 1b sub r30, r24
66a6: f1 09 sbc r31, r1
66a8: ed 5f subi r30, 0xFD ; 253
66aa: fb 4f sbci r31, 0xFB ; 251
66ac: 80 81 ld r24, Z
66ae: 80 93 01 06 sts 0x0601, r24
66b2: 80 91 28 05 lds r24, 0x0528
66b6: 80 93 39 06 sts 0x0639, r24
66ba: 80 91 95 05 lds r24, 0x0595
66be: 80 93 1d 06 sts 0x061D, r24
66c2: 80 91 60 05 lds r24, 0x0560
66c6: 88 3f cpi r24, 0xF8 ; 248
66c8: 38 f0 brcs .+14 ; 0x66d8 <ParameterZuordnung+0x4b2>
66ca: ef ef ldi r30, 0xFF ; 255
66cc: f0 e0 ldi r31, 0x00 ; 0
66ce: e8 1b sub r30, r24
66d0: f1 09 sbc r31, r1
66d2: ed 5f subi r30, 0xFD ; 253
66d4: fb 4f sbci r31, 0xFB ; 251
66d6: 80 81 ld r24, Z
66d8: 80 93 27 01 sts 0x0127, r24
66dc: 80 91 7d 05 lds r24, 0x057D
66e0: 88 3f cpi r24, 0xF8 ; 248
66e2: 38 f0 brcs .+14 ; 0x66f2 <ParameterZuordnung+0x4cc>
66e4: ef ef ldi r30, 0xFF ; 255
66e6: f0 e0 ldi r31, 0x00 ; 0
66e8: e8 1b sub r30, r24
66ea: f1 09 sbc r31, r1
66ec: ed 5f subi r30, 0xFD ; 253
66ee: fb 4f sbci r31, 0xFB ; 251
66f0: 80 81 ld r24, Z
66f2: 80 93 52 06 sts 0x0652, r24
66f6: 60 91 30 01 lds r22, 0x0130
66fa: 70 e0 ldi r23, 0x00 ; 0
66fc: 6f 5f subi r22, 0xFF ; 255
66fe: 7f 4f sbci r23, 0xFF ; 255
6700: 8c e3 ldi r24, 0x3C ; 60
6702: 98 e2 ldi r25, 0x28 ; 40
6704: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
6708: 70 93 3c 01 sts 0x013C, r23
670c: 60 93 3b 01 sts 0x013B, r22
6710: 80 91 36 05 lds r24, 0x0536
6714: 80 93 41 06 sts 0x0641, r24
6718: 80 91 35 05 lds r24, 0x0535
671c: 80 93 09 06 sts 0x0609, r24
6720: e0 91 7f 05 lds r30, 0x057F
6724: 80 91 f0 08 lds r24, 0x08F0
6728: 90 91 f1 08 lds r25, 0x08F1
672c: ee 23 and r30, r30
672e: 09 f4 brne .+2 ; 0x6732 <ParameterZuordnung+0x50c>
6730: 43 c0 rjmp .+134 ; 0x67b8 <ParameterZuordnung+0x592>
6732: 21 e0 ldi r18, 0x01 ; 1
6734: 20 93 d6 03 sts 0x03D6, r18
6738: f0 e0 ldi r31, 0x00 ; 0
673a: ee 0f add r30, r30
673c: ff 1f adc r31, r31
673e: e2 5f subi r30, 0xF2 ; 242
6740: f7 4f sbci r31, 0xF7 ; 247
6742: 20 81 ld r18, Z
6744: 31 81 ldd r19, Z+1 ; 0x01
6746: 20 3c cpi r18, 0xC0 ; 192
6748: 3f 4f sbci r19, 0xFF ; 255
674a: 14 f4 brge .+4 ; 0x6750 <ParameterZuordnung+0x52a>
674c: 10 92 d6 03 sts 0x03D6, r1
6750: 20 91 3d 01 lds r18, 0x013D
6754: 40 91 d6 03 lds r20, 0x03D6
6758: 24 17 cp r18, r20
675a: 21 f1 breq .+72 ; 0x67a4 <ParameterZuordnung+0x57e>
675c: 23 30 cpi r18, 0x03 ; 3
675e: f8 f4 brcc .+62 ; 0x679e <ParameterZuordnung+0x578>
6760: 50 91 57 01 lds r21, 0x0157
6764: 44 23 and r20, r20
6766: 51 f0 breq .+20 ; 0x677c <ParameterZuordnung+0x556>
6768: 2c ed ldi r18, 0xDC ; 220
676a: 35 e0 ldi r19, 0x05 ; 5
676c: 30 93 cc 04 sts 0x04CC, r19
6770: 20 93 cb 04 sts 0x04CB, r18
6774: 51 11 cpse r21, r1
6776: 0d c0 rjmp .+26 ; 0x6792 <ParameterZuordnung+0x56c>
6778: 2e e2 ldi r18, 0x2E ; 46
677a: 09 c0 rjmp .+18 ; 0x678e <ParameterZuordnung+0x568>
677c: 28 ec ldi r18, 0xC8 ; 200
677e: 30 e0 ldi r19, 0x00 ; 0
6780: 30 93 cc 04 sts 0x04CC, r19
6784: 20 93 cb 04 sts 0x04CB, r18
6788: 51 11 cpse r21, r1
678a: 03 c0 rjmp .+6 ; 0x6792 <ParameterZuordnung+0x56c>
678c: 27 e1 ldi r18, 0x17 ; 23
678e: 20 93 57 01 sts 0x0157, r18
6792: 25 e0 ldi r18, 0x05 ; 5
6794: 20 93 ec 03 sts 0x03EC, r18
6798: 40 93 3d 01 sts 0x013D, r20
679c: 03 c0 rjmp .+6 ; 0x67a4 <ParameterZuordnung+0x57e>
679e: 21 50 subi r18, 0x01 ; 1
67a0: 20 93 3d 01 sts 0x013D, r18
67a4: 97 ff sbrs r25, 7
67a6: 0d c0 rjmp .+26 ; 0x67c2 <ParameterZuordnung+0x59c>
67a8: 44 23 and r20, r20
67aa: 59 f0 breq .+22 ; 0x67c2 <ParameterZuordnung+0x59c>
67ac: 20 91 3f 0a lds r18, 0x0A3F
67b0: 20 68 ori r18, 0x80 ; 128
67b2: 20 93 3f 0a sts 0x0A3F, r18
67b6: 05 c0 rjmp .+10 ; 0x67c2 <ParameterZuordnung+0x59c>
67b8: 10 92 d6 03 sts 0x03D6, r1
67bc: 2a e0 ldi r18, 0x0A ; 10
67be: 20 93 3d 01 sts 0x013D, r18
67c2: 97 ff sbrs r25, 7
67c4: 1c c0 rjmp .+56 ; 0x67fe <ParameterZuordnung+0x5d8>
67c6: 80 91 01 04 lds r24, 0x0401
67ca: 88 23 and r24, r24
67cc: c1 f0 breq .+48 ; 0x67fe <ParameterZuordnung+0x5d8>
67ce: 80 91 d6 03 lds r24, 0x03D6
67d2: 88 23 and r24, r24
67d4: a1 f0 breq .+40 ; 0x67fe <ParameterZuordnung+0x5d8>
67d6: 80 91 a9 02 lds r24, 0x02A9
67da: 90 91 aa 02 lds r25, 0x02AA
67de: 01 96 adiw r24, 0x01 ; 1
67e0: 71 f4 brne .+28 ; 0x67fe <ParameterZuordnung+0x5d8>
67e2: 88 e9 ldi r24, 0x98 ; 152
67e4: 9a e3 ldi r25, 0x3A ; 58
67e6: 90 93 cc 04 sts 0x04CC, r25
67ea: 80 93 cb 04 sts 0x04CB, r24
67ee: 80 e0 ldi r24, 0x00 ; 0
67f0: 94 ea ldi r25, 0xA4 ; 164
67f2: 90 93 aa 02 sts 0x02AA, r25
67f6: 80 93 a9 02 sts 0x02A9, r24
67fa: 10 92 d6 03 sts 0x03D6, r1
67fe: 80 91 d6 03 lds r24, 0x03D6
6802: 88 23 and r24, r24
6804: 21 f0 breq .+8 ; 0x680e <ParameterZuordnung+0x5e8>
6806: 80 91 c8 03 lds r24, 0x03C8
680a: 81 60 ori r24, 0x01 ; 1
680c: 03 c0 rjmp .+6 ; 0x6814 <ParameterZuordnung+0x5ee>
680e: 80 91 c8 03 lds r24, 0x03C8
6812: 8e 7f andi r24, 0xFE ; 254
6814: 80 93 c8 03 sts 0x03C8, r24
6818: df 91 pop r29
681a: cf 91 pop r28
681c: 08 95 ret
 
0000681e <CalcStickGasHover>:
681e: 80 91 31 05 lds r24, 0x0531
6822: 81 11 cpse r24, r1
6824: 20 c0 rjmp .+64 ; 0x6866 <CalcStickGasHover+0x48>
6826: 20 91 1a 01 lds r18, 0x011A
682a: 30 91 1b 01 lds r19, 0x011B
682e: 80 91 e6 03 lds r24, 0x03E6
6832: 90 91 e7 03 lds r25, 0x03E7
6836: 97 fd sbrc r25, 7
6838: 03 96 adiw r24, 0x03 ; 3
683a: ac 01 movw r20, r24
683c: 55 95 asr r21
683e: 47 95 ror r20
6840: 55 95 asr r21
6842: 47 95 ror r20
6844: 42 9f mul r20, r18
6846: c0 01 movw r24, r0
6848: 43 9f mul r20, r19
684a: 90 0d add r25, r0
684c: 52 9f mul r21, r18
684e: 90 0d add r25, r0
6850: 11 24 eor r1, r1
6852: 60 91 53 01 lds r22, 0x0153
6856: 70 e0 ldi r23, 0x00 ; 0
6858: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
685c: 70 93 41 01 sts 0x0141, r23
6860: 60 93 40 01 sts 0x0140, r22
6864: 05 c0 rjmp .+10 ; 0x6870 <CalcStickGasHover+0x52>
6866: 90 e0 ldi r25, 0x00 ; 0
6868: 90 93 41 01 sts 0x0141, r25
686c: 80 93 40 01 sts 0x0140, r24
6870: 80 91 40 01 lds r24, 0x0140
6874: 90 91 41 01 lds r25, 0x0141
6878: 87 34 cpi r24, 0x47 ; 71
687a: 91 05 cpc r25, r1
687c: 18 f4 brcc .+6 ; 0x6884 <CalcStickGasHover+0x66>
687e: 86 e4 ldi r24, 0x46 ; 70
6880: 90 e0 ldi r25, 0x00 ; 0
6882: 05 c0 rjmp .+10 ; 0x688e <CalcStickGasHover+0x70>
6884: 8f 3a cpi r24, 0xAF ; 175
6886: 91 05 cpc r25, r1
6888: 30 f0 brcs .+12 ; 0x6896 <CalcStickGasHover+0x78>
688a: 8f ea ldi r24, 0xAF ; 175
688c: 90 e0 ldi r25, 0x00 ; 0
688e: 90 93 41 01 sts 0x0141, r25
6892: 80 93 40 01 sts 0x0140, r24
6896: 08 95 ret
 
00006898 <MotorRegler>:
6898: 2f 92 push r2
689a: 3f 92 push r3
689c: 4f 92 push r4
689e: 5f 92 push r5
68a0: 6f 92 push r6
68a2: 7f 92 push r7
68a4: 8f 92 push r8
68a6: 9f 92 push r9
68a8: af 92 push r10
68aa: bf 92 push r11
68ac: cf 92 push r12
68ae: df 92 push r13
68b0: ef 92 push r14
68b2: ff 92 push r15
68b4: 0f 93 push r16
68b6: 1f 93 push r17
68b8: cf 93 push r28
68ba: df 93 push r29
68bc: cd b7 in r28, 0x3d ; 61
68be: de b7 in r29, 0x3e ; 62
68c0: 69 97 sbiw r28, 0x19 ; 25
68c2: 0f b6 in r0, 0x3f ; 63
68c4: f8 94 cli
68c6: de bf out 0x3e, r29 ; 62
68c8: 0f be out 0x3f, r0 ; 63
68ca: cd bf out 0x3d, r28 ; 61
68cc: 0e 94 c3 2a call 0x5586 ; 0x5586 <Mittelwert>
68d0: 80 91 c9 03 lds r24, 0x03C9
68d4: 84 71 andi r24, 0x14 ; 20
68d6: 79 f5 brne .+94 ; 0x6936 <MotorRegler+0x9e>
68d8: 80 91 96 05 lds r24, 0x0596
68dc: 82 ff sbrs r24, 2
68de: 24 c0 rjmp .+72 ; 0x6928 <MotorRegler+0x90>
68e0: 80 91 e6 03 lds r24, 0x03E6
68e4: 90 91 e7 03 lds r25, 0x03E7
68e8: 00 97 sbiw r24, 0x00 ; 0
68ea: d9 f0 breq .+54 ; 0x6922 <MotorRegler+0x8a>
68ec: 88 35 cpi r24, 0x58 ; 88
68ee: 22 e0 ldi r18, 0x02 ; 2
68f0: 92 07 cpc r25, r18
68f2: bc f4 brge .+46 ; 0x6922 <MotorRegler+0x8a>
68f4: 97 fd sbrc r25, 7
68f6: 03 96 adiw r24, 0x03 ; 3
68f8: 9c 01 movw r18, r24
68fa: 35 95 asr r19
68fc: 27 95 ror r18
68fe: 35 95 asr r19
6900: 27 95 ror r18
6902: 40 91 40 05 lds r20, 0x0540
6906: 42 9f mul r20, r18
6908: c0 01 movw r24, r0
690a: 43 9f mul r20, r19
690c: 90 0d add r25, r0
690e: 11 24 eor r1, r1
6910: 64 e6 ldi r22, 0x64 ; 100
6912: 70 e0 ldi r23, 0x00 ; 0
6914: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
6918: 70 93 c6 03 sts 0x03C6, r23
691c: 60 93 c5 03 sts 0x03C5, r22
6920: 0a c0 rjmp .+20 ; 0x6936 <MotorRegler+0x9e>
6922: 8d e2 ldi r24, 0x2D ; 45
6924: 90 e0 ldi r25, 0x00 ; 0
6926: 03 c0 rjmp .+6 ; 0x692e <MotorRegler+0x96>
6928: 80 91 40 05 lds r24, 0x0540
692c: 90 e0 ldi r25, 0x00 ; 0
692e: 90 93 c6 03 sts 0x03C6, r25
6932: 80 93 c5 03 sts 0x03C5, r24
6936: 80 91 c3 03 lds r24, 0x03C3
693a: 90 91 c4 03 lds r25, 0x03C4
693e: 20 91 09 06 lds r18, 0x0609
6942: 80 33 cpi r24, 0x30 ; 48
6944: 35 e7 ldi r19, 0x75 ; 117
6946: 93 07 cpc r25, r19
6948: 51 f4 brne .+20 ; 0x695e <MotorRegler+0xc6>
694a: 10 92 0d 04 sts 0x040D, r1
694e: 10 92 0c 04 sts 0x040C, r1
6952: 42 2f mov r20, r18
6954: 50 e0 ldi r21, 0x00 ; 0
6956: 50 93 c6 03 sts 0x03C6, r21
695a: 40 93 c5 03 sts 0x03C5, r20
695e: 40 91 0c 04 lds r20, 0x040C
6962: 50 91 0d 04 lds r21, 0x040D
6966: 5a 83 std Y+2, r21 ; 0x02
6968: 49 83 std Y+1, r20 ; 0x01
696a: 30 e0 ldi r19, 0x00 ; 0
696c: a9 01 movw r20, r18
696e: 47 5f subi r20, 0xF7 ; 247
6970: 5f 4f sbci r21, 0xFF ; 255
6972: 69 81 ldd r22, Y+1 ; 0x01
6974: 7a 81 ldd r23, Y+2 ; 0x02
6976: 46 17 cp r20, r22
6978: 57 07 cpc r21, r23
697a: 24 f0 brlt .+8 ; 0x6984 <MotorRegler+0xec>
697c: d9 01 movw r26, r18
697e: 1a 96 adiw r26, 0x0a ; 10
6980: ba 83 std Y+2, r27 ; 0x02
6982: a9 83 std Y+1, r26 ; 0x01
6984: 20 91 02 04 lds r18, 0x0402
6988: 24 36 cpi r18, 0x64 ; 100
698a: b0 f5 brcc .+108 ; 0x69f8 <MotorRegler+0x160>
698c: 20 91 c8 03 lds r18, 0x03C8
6990: 22 fd sbrc r18, 2
6992: 32 c0 rjmp .+100 ; 0x69f8 <MotorRegler+0x160>
6994: 80 91 a0 03 lds r24, 0x03A0
6998: 90 91 a1 03 lds r25, 0x03A1
699c: 00 97 sbiw r24, 0x00 ; 0
699e: 31 f0 breq .+12 ; 0x69ac <MotorRegler+0x114>
69a0: 01 97 sbiw r24, 0x01 ; 1
69a2: 90 93 a1 03 sts 0x03A1, r25
69a6: 80 93 a0 03 sts 0x03A0, r24
69aa: 0b c0 rjmp .+22 ; 0x69c2 <MotorRegler+0x12a>
69ac: 10 92 01 04 sts 0x0401, r1
69b0: 10 92 cb 03 sts 0x03CB, r1
69b4: 10 92 ca 03 sts 0x03CA, r1
69b8: 80 91 c9 03 lds r24, 0x03C9
69bc: 8d 7e andi r24, 0xED ; 237
69be: 80 93 c9 03 sts 0x03C9, r24
69c2: 28 9a sbi 0x05, 0 ; 5
69c4: 80 91 ca 03 lds r24, 0x03CA
69c8: 90 91 cb 03 lds r25, 0x03CB
69cc: 89 3e cpi r24, 0xE9 ; 233
69ce: 93 40 sbci r25, 0x03 ; 3
69d0: 80 f0 brcs .+32 ; 0x69f2 <MotorRegler+0x15a>
69d2: 80 91 19 05 lds r24, 0x0519
69d6: 85 36 cpi r24, 0x65 ; 101
69d8: 60 f0 brcs .+24 ; 0x69f2 <MotorRegler+0x15a>
69da: e0 91 c5 03 lds r30, 0x03C5
69de: f0 91 c6 03 lds r31, 0x03C6
69e2: fa 83 std Y+2, r31 ; 0x02
69e4: e9 83 std Y+1, r30 ; 0x01
69e6: 80 91 c9 03 lds r24, 0x03C9
69ea: 80 61 ori r24, 0x10 ; 16
69ec: 80 93 c9 03 sts 0x03C9, r24
69f0: 8c c5 rjmp .+2840 ; 0x750a <MotorRegler+0xc72>
69f2: 10 92 01 04 sts 0x0401, r1
69f6: 89 c5 rjmp .+2834 ; 0x750a <MotorRegler+0xc72>
69f8: 20 91 02 04 lds r18, 0x0402
69fc: 2d 38 cpi r18, 0x8D ; 141
69fe: 08 f4 brcc .+2 ; 0x6a02 <MotorRegler+0x16a>
6a00: 5a c5 rjmp .+2740 ; 0x74b6 <MotorRegler+0xc1e>
6a02: e0 91 8c 05 lds r30, 0x058C
6a06: ee 23 and r30, r30
6a08: 09 f4 brne .+2 ; 0x6a0c <MotorRegler+0x174>
6a0a: 44 c0 rjmp .+136 ; 0x6a94 <MotorRegler+0x1fc>
6a0c: 80 91 8d 05 lds r24, 0x058D
6a10: 88 23 and r24, r24
6a12: 09 f4 brne .+2 ; 0x6a16 <MotorRegler+0x17e>
6a14: 3f c0 rjmp .+126 ; 0x6a94 <MotorRegler+0x1fc>
6a16: f0 e0 ldi r31, 0x00 ; 0
6a18: ee 0f add r30, r30
6a1a: ff 1f adc r31, r31
6a1c: e2 5f subi r30, 0xF2 ; 242
6a1e: f7 4f sbci r31, 0xF7 ; 247
6a20: 80 81 ld r24, Z
6a22: 91 81 ldd r25, Z+1 ; 0x01
6a24: c3 97 sbiw r24, 0x33 ; 51
6a26: bc f0 brlt .+46 ; 0x6a56 <MotorRegler+0x1be>
6a28: 80 91 1f 01 lds r24, 0x011F
6a2c: 82 33 cpi r24, 0x32 ; 50
6a2e: 61 f4 brne .+24 ; 0x6a48 <MotorRegler+0x1b0>
6a30: 80 91 c8 03 lds r24, 0x03C8
6a34: 85 ff sbrs r24, 5
6a36: 08 c0 rjmp .+16 ; 0x6a48 <MotorRegler+0x1b0>
6a38: 80 91 c8 03 lds r24, 0x03C8
6a3c: 80 64 ori r24, 0x40 ; 64
6a3e: 80 93 c8 03 sts 0x03C8, r24
6a42: 80 e3 ldi r24, 0x30 ; 48
6a44: 80 93 57 01 sts 0x0157, r24
6a48: 80 91 c8 03 lds r24, 0x03C8
6a4c: 8f 77 andi r24, 0x7F ; 127
6a4e: 80 93 c8 03 sts 0x03C8, r24
6a52: 86 e9 ldi r24, 0x96 ; 150
6a54: 17 c0 rjmp .+46 ; 0x6a84 <MotorRegler+0x1ec>
6a56: 80 81 ld r24, Z
6a58: 91 81 ldd r25, Z+1 ; 0x01
6a5a: 8e 3c cpi r24, 0xCE ; 206
6a5c: 9f 4f sbci r25, 0xFF ; 255
6a5e: ac f4 brge .+42 ; 0x6a8a <MotorRegler+0x1f2>
6a60: 80 91 1f 01 lds r24, 0x011F
6a64: 86 39 cpi r24, 0x96 ; 150
6a66: 41 f4 brne .+16 ; 0x6a78 <MotorRegler+0x1e0>
6a68: 80 91 c8 03 lds r24, 0x03C8
6a6c: 80 68 ori r24, 0x80 ; 128
6a6e: 80 93 c8 03 sts 0x03C8, r24
6a72: 8f e2 ldi r24, 0x2F ; 47
6a74: 80 93 57 01 sts 0x0157, r24
6a78: 80 91 c8 03 lds r24, 0x03C8
6a7c: 8f 7b andi r24, 0xBF ; 191
6a7e: 80 93 c8 03 sts 0x03C8, r24
6a82: 82 e3 ldi r24, 0x32 ; 50
6a84: 80 93 1f 01 sts 0x011F, r24
6a88: 05 c0 rjmp .+10 ; 0x6a94 <MotorRegler+0x1fc>
6a8a: 80 91 c8 03 lds r24, 0x03C8
6a8e: 8f 73 andi r24, 0x3F ; 63
6a90: 80 93 c8 03 sts 0x03C8, r24
6a94: 80 91 c9 03 lds r24, 0x03C9
6a98: 8f 7e andi r24, 0xEF ; 239
6a9a: 80 93 c9 03 sts 0x03C9, r24
6a9e: 80 91 41 05 lds r24, 0x0541
6aa2: 22 e3 ldi r18, 0x32 ; 50
6aa4: 82 9f mul r24, r18
6aa6: c0 01 movw r24, r0
6aa8: 11 24 eor r1, r1
6aaa: 90 93 a1 03 sts 0x03A1, r25
6aae: 80 93 a0 03 sts 0x03A0, r24
6ab2: 49 81 ldd r20, Y+1 ; 0x01
6ab4: 5a 81 ldd r21, Y+2 ; 0x02
6ab6: 49 32 cpi r20, 0x29 ; 41
6ab8: 51 05 cpc r21, r1
6aba: 8c f0 brlt .+34 ; 0x6ade <MotorRegler+0x246>
6abc: 80 91 01 04 lds r24, 0x0401
6ac0: 88 23 and r24, r24
6ac2: 69 f0 breq .+26 ; 0x6ade <MotorRegler+0x246>
6ac4: 80 91 ca 03 lds r24, 0x03CA
6ac8: 90 91 cb 03 lds r25, 0x03CB
6acc: 8f 3f cpi r24, 0xFF ; 255
6ace: 5f ef ldi r21, 0xFF ; 255
6ad0: 95 07 cpc r25, r21
6ad2: 29 f0 breq .+10 ; 0x6ade <MotorRegler+0x246>
6ad4: 01 96 adiw r24, 0x01 ; 1
6ad6: 90 93 cb 03 sts 0x03CB, r25
6ada: 80 93 ca 03 sts 0x03CA, r24
6ade: 20 91 ca 03 lds r18, 0x03CA
6ae2: 30 91 cb 03 lds r19, 0x03CB
6ae6: 2f 3f cpi r18, 0xFF ; 255
6ae8: 31 05 cpc r19, r1
6aea: 09 f0 breq .+2 ; 0x6aee <MotorRegler+0x256>
6aec: 48 f5 brcc .+82 ; 0x6b40 <MotorRegler+0x2a8>
6aee: 10 92 24 04 sts 0x0424, r1
6af2: 10 92 25 04 sts 0x0425, r1
6af6: 10 92 26 04 sts 0x0426, r1
6afa: 10 92 27 04 sts 0x0427, r1
6afe: 10 92 20 04 sts 0x0420, r1
6b02: 10 92 21 04 sts 0x0421, r1
6b06: 10 92 22 04 sts 0x0422, r1
6b0a: 10 92 23 04 sts 0x0423, r1
6b0e: 10 92 9c 03 sts 0x039C, r1
6b12: 10 92 9d 03 sts 0x039D, r1
6b16: 10 92 9e 03 sts 0x039E, r1
6b1a: 10 92 9f 03 sts 0x039F, r1
6b1e: 10 92 2c 04 sts 0x042C, r1
6b22: 10 92 2d 04 sts 0x042D, r1
6b26: 10 92 2e 04 sts 0x042E, r1
6b2a: 10 92 2f 04 sts 0x042F, r1
6b2e: 80 91 c8 03 lds r24, 0x03C8
6b32: 80 62 ori r24, 0x20 ; 32
6b34: 80 93 c8 03 sts 0x03C8, r24
6b38: 84 e6 ldi r24, 0x64 ; 100
6b3a: 80 93 1f 01 sts 0x011F, r24
6b3e: 33 c1 rjmp .+614 ; 0x6da6 <MotorRegler+0x50e>
6b40: 80 91 c9 03 lds r24, 0x03C9
6b44: 82 60 ori r24, 0x02 ; 2
6b46: 80 93 c9 03 sts 0x03C9, r24
6b4a: 80 91 c8 03 lds r24, 0x03C8
6b4e: 85 ff sbrs r24, 5
6b50: 96 c0 rjmp .+300 ; 0x6c7e <MotorRegler+0x3e6>
6b52: 80 91 b5 04 lds r24, 0x04B5
6b56: 48 2f mov r20, r24
6b58: 44 70 andi r20, 0x04 ; 4
6b5a: 82 fd sbrc r24, 2
6b5c: 04 c0 rjmp .+8 ; 0x6b66 <MotorRegler+0x2ce>
6b5e: 80 91 c8 03 lds r24, 0x03C8
6b62: 86 ff sbrs r24, 6
6b64: 2a c0 rjmp .+84 ; 0x6bba <MotorRegler+0x322>
6b66: 80 91 20 01 lds r24, 0x0120
6b6a: 8d 33 cpi r24, 0x3D ; 61
6b6c: 31 f5 brne .+76 ; 0x6bba <MotorRegler+0x322>
6b6e: 80 91 c0 03 lds r24, 0x03C0
6b72: 88 23 and r24, r24
6b74: 11 f1 breq .+68 ; 0x6bba <MotorRegler+0x322>
6b76: 80 e5 ldi r24, 0x50 ; 80
6b78: 80 93 f1 03 sts 0x03F1, r24
6b7c: 84 ef ldi r24, 0xF4 ; 244
6b7e: 91 e0 ldi r25, 0x01 ; 1
6b80: a0 e0 ldi r26, 0x00 ; 0
6b82: b0 e0 ldi r27, 0x00 ; 0
6b84: 80 93 f2 03 sts 0x03F2, r24
6b88: 90 93 f3 03 sts 0x03F3, r25
6b8c: a0 93 f4 03 sts 0x03F4, r26
6b90: b0 93 f5 03 sts 0x03F5, r27
6b94: 80 93 f8 03 sts 0x03F8, r24
6b98: 90 93 f9 03 sts 0x03F9, r25
6b9c: a0 93 fa 03 sts 0x03FA, r26
6ba0: b0 93 fb 03 sts 0x03FB, r27
6ba4: 88 ee ldi r24, 0xE8 ; 232
6ba6: 93 e0 ldi r25, 0x03 ; 3
6ba8: 90 93 1e 01 sts 0x011E, r25
6bac: 80 93 1d 01 sts 0x011D, r24
6bb0: 44 23 and r20, r20
6bb2: 19 f0 breq .+6 ; 0x6bba <MotorRegler+0x322>
6bb4: 8d e0 ldi r24, 0x0D ; 13
6bb6: 80 93 57 01 sts 0x0157, r24
6bba: 80 91 4a 03 lds r24, 0x034A
6bbe: 90 91 4b 03 lds r25, 0x034B
6bc2: a0 91 4c 03 lds r26, 0x034C
6bc6: b0 91 4d 03 lds r27, 0x034D
6bca: 87 39 cpi r24, 0x97 ; 151
6bcc: 91 05 cpc r25, r1
6bce: a1 05 cpc r26, r1
6bd0: b1 05 cpc r27, r1
6bd2: 8c f4 brge .+34 ; 0x6bf6 <MotorRegler+0x35e>
6bd4: 80 91 fc 03 lds r24, 0x03FC
6bd8: 90 91 fd 03 lds r25, 0x03FD
6bdc: a0 91 fe 03 lds r26, 0x03FE
6be0: b0 91 ff 03 lds r27, 0x03FF
6be4: 82 3a cpi r24, 0xA2 ; 162
6be6: 9e 4f sbci r25, 0xFE ; 254
6be8: af 4f sbci r26, 0xFF ; 255
6bea: bf 4f sbci r27, 0xFF ; 255
6bec: 24 f0 brlt .+8 ; 0x6bf6 <MotorRegler+0x35e>
6bee: 80 91 39 06 lds r24, 0x0639
6bf2: 80 fd sbrc r24, 0
6bf4: 21 c0 rjmp .+66 ; 0x6c38 <MotorRegler+0x3a0>
6bf6: 88 ee ldi r24, 0xE8 ; 232
6bf8: 93 e0 ldi r25, 0x03 ; 3
6bfa: 90 93 1e 01 sts 0x011E, r25
6bfe: 80 93 1d 01 sts 0x011D, r24
6c02: 80 91 c8 03 lds r24, 0x03C8
6c06: 86 ff sbrs r24, 6
6c08: 0f c0 rjmp .+30 ; 0x6c28 <MotorRegler+0x390>
6c0a: 10 92 f1 03 sts 0x03F1, r1
6c0e: 8c e2 ldi r24, 0x2C ; 44
6c10: 91 e0 ldi r25, 0x01 ; 1
6c12: a0 e0 ldi r26, 0x00 ; 0
6c14: b0 e0 ldi r27, 0x00 ; 0
6c16: 80 93 f8 03 sts 0x03F8, r24
6c1a: 90 93 f9 03 sts 0x03F9, r25
6c1e: a0 93 fa 03 sts 0x03FA, r26
6c22: b0 93 fb 03 sts 0x03FB, r27
6c26: 03 c0 rjmp .+6 ; 0x6c2e <MotorRegler+0x396>
6c28: 80 e3 ldi r24, 0x30 ; 48
6c2a: 80 93 57 01 sts 0x0157, r24
6c2e: 80 91 c8 03 lds r24, 0x03C8
6c32: 8f 71 andi r24, 0x1F ; 31
6c34: 80 93 c8 03 sts 0x03C8, r24
6c38: 10 92 24 04 sts 0x0424, r1
6c3c: 10 92 25 04 sts 0x0425, r1
6c40: 10 92 26 04 sts 0x0426, r1
6c44: 10 92 27 04 sts 0x0427, r1
6c48: 10 92 20 04 sts 0x0420, r1
6c4c: 10 92 21 04 sts 0x0421, r1
6c50: 10 92 22 04 sts 0x0422, r1
6c54: 10 92 23 04 sts 0x0423, r1
6c58: 10 92 2c 04 sts 0x042C, r1
6c5c: 10 92 2d 04 sts 0x042D, r1
6c60: 10 92 2e 04 sts 0x042E, r1
6c64: 10 92 2f 04 sts 0x042F, r1
6c68: 29 3e cpi r18, 0xE9 ; 233
6c6a: 33 40 sbci r19, 0x03 ; 3
6c6c: 08 f4 brcc .+2 ; 0x6c70 <MotorRegler+0x3d8>
6c6e: 9b c0 rjmp .+310 ; 0x6da6 <MotorRegler+0x50e>
6c70: 88 ee ldi r24, 0xE8 ; 232
6c72: 93 e0 ldi r25, 0x03 ; 3
6c74: 90 93 cb 03 sts 0x03CB, r25
6c78: 80 93 ca 03 sts 0x03CA, r24
6c7c: 94 c0 rjmp .+296 ; 0x6da6 <MotorRegler+0x50e>
6c7e: 80 91 c8 03 lds r24, 0x03C8
6c82: 87 ff sbrs r24, 7
6c84: 1a c0 rjmp .+52 ; 0x6cba <MotorRegler+0x422>
6c86: 80 91 20 01 lds r24, 0x0120
6c8a: 86 37 cpi r24, 0x76 ; 118
6c8c: 11 f0 breq .+4 ; 0x6c92 <MotorRegler+0x3fa>
6c8e: 8d 33 cpi r24, 0x3D ; 61
6c90: a1 f4 brne .+40 ; 0x6cba <MotorRegler+0x422>
6c92: 80 91 c0 03 lds r24, 0x03C0
6c96: 88 23 and r24, r24
6c98: 81 f0 breq .+32 ; 0x6cba <MotorRegler+0x422>
6c9a: 80 91 8d 05 lds r24, 0x058D
6c9e: 80 93 f1 03 sts 0x03F1, r24
6ca2: 80 ee ldi r24, 0xE0 ; 224
6ca4: 91 eb ldi r25, 0xB1 ; 177
6ca6: af ef ldi r26, 0xFF ; 255
6ca8: bf ef ldi r27, 0xFF ; 255
6caa: 80 93 f2 03 sts 0x03F2, r24
6cae: 90 93 f3 03 sts 0x03F3, r25
6cb2: a0 93 f4 03 sts 0x03F4, r26
6cb6: b0 93 f5 03 sts 0x03F5, r27
6cba: 20 91 1d 01 lds r18, 0x011D
6cbe: 30 91 1e 01 lds r19, 0x011E
6cc2: 28 3e cpi r18, 0xE8 ; 232
6cc4: 83 e0 ldi r24, 0x03 ; 3
6cc6: 38 07 cpc r19, r24
6cc8: 08 f0 brcs .+2 ; 0x6ccc <MotorRegler+0x434>
6cca: 48 c0 rjmp .+144 ; 0x6d5c <MotorRegler+0x4c4>
6ccc: 2f 5f subi r18, 0xFF ; 255
6cce: 3f 4f sbci r19, 0xFF ; 255
6cd0: 30 93 1e 01 sts 0x011E, r19
6cd4: 20 93 1d 01 sts 0x011D, r18
6cd8: 10 92 24 04 sts 0x0424, r1
6cdc: 10 92 25 04 sts 0x0425, r1
6ce0: 10 92 26 04 sts 0x0426, r1
6ce4: 10 92 27 04 sts 0x0427, r1
6ce8: 10 92 20 04 sts 0x0420, r1
6cec: 10 92 21 04 sts 0x0421, r1
6cf0: 10 92 22 04 sts 0x0422, r1
6cf4: 10 92 23 04 sts 0x0423, r1
6cf8: 10 92 2c 04 sts 0x042C, r1
6cfc: 10 92 2d 04 sts 0x042D, r1
6d00: 10 92 2e 04 sts 0x042E, r1
6d04: 10 92 2f 04 sts 0x042F, r1
6d08: 80 91 4a 03 lds r24, 0x034A
6d0c: 90 91 4b 03 lds r25, 0x034B
6d10: a0 91 4c 03 lds r26, 0x034C
6d14: b0 91 4d 03 lds r27, 0x034D
6d18: 8c 52 subi r24, 0x2C ; 44
6d1a: 91 40 sbci r25, 0x01 ; 1
6d1c: a1 09 sbc r26, r1
6d1e: b1 09 sbc r27, r1
6d20: 80 93 f8 03 sts 0x03F8, r24
6d24: 90 93 f9 03 sts 0x03F9, r25
6d28: a0 93 fa 03 sts 0x03FA, r26
6d2c: b0 93 fb 03 sts 0x03FB, r27
6d30: 28 3e cpi r18, 0xE8 ; 232
6d32: 33 40 sbci r19, 0x03 ; 3
6d34: c1 f5 brne .+112 ; 0x6da6 <MotorRegler+0x50e>
6d36: 80 91 c8 03 lds r24, 0x03C8
6d3a: 87 ff sbrs r24, 7
6d3c: 34 c0 rjmp .+104 ; 0x6da6 <MotorRegler+0x50e>
6d3e: 80 91 20 01 lds r24, 0x0120
6d42: 8b 32 cpi r24, 0x2B ; 43
6d44: 81 f1 breq .+96 ; 0x6da6 <MotorRegler+0x50e>
6d46: 80 91 c8 03 lds r24, 0x03C8
6d4a: 8f 77 andi r24, 0x7F ; 127
6d4c: 80 93 c8 03 sts 0x03C8, r24
6d50: 80 91 c8 03 lds r24, 0x03C8
6d54: 80 62 ori r24, 0x20 ; 32
6d56: 80 93 c8 03 sts 0x03C8, r24
6d5a: 25 c0 rjmp .+74 ; 0x6da6 <MotorRegler+0x50e>
6d5c: 80 91 c0 03 lds r24, 0x03C0
6d60: 88 23 and r24, r24
6d62: 09 f1 breq .+66 ; 0x6da6 <MotorRegler+0x50e>
6d64: 80 91 20 01 lds r24, 0x0120
6d68: 86 37 cpi r24, 0x76 ; 118
6d6a: 11 f0 breq .+4 ; 0x6d70 <MotorRegler+0x4d8>
6d6c: 8d 32 cpi r24, 0x2D ; 45
6d6e: d9 f4 brne .+54 ; 0x6da6 <MotorRegler+0x50e>
6d70: 80 91 fc 03 lds r24, 0x03FC
6d74: 90 91 fd 03 lds r25, 0x03FD
6d78: a0 91 fe 03 lds r26, 0x03FE
6d7c: b0 91 ff 03 lds r27, 0x03FF
6d80: 88 3e cpi r24, 0xE8 ; 232
6d82: 93 40 sbci r25, 0x03 ; 3
6d84: a1 05 cpc r26, r1
6d86: b1 05 cpc r27, r1
6d88: 74 f4 brge .+28 ; 0x6da6 <MotorRegler+0x50e>
6d8a: 80 91 04 05 lds r24, 0x0504
6d8e: 90 91 05 05 lds r25, 0x0505
6d92: 8d 3a cpi r24, 0xAD ; 173
6d94: 93 40 sbci r25, 0x03 ; 3
6d96: 3c f0 brlt .+14 ; 0x6da6 <MotorRegler+0x50e>
6d98: 10 92 1e 01 sts 0x011E, r1
6d9c: 10 92 1d 01 sts 0x011D, r1
6da0: 8e e0 ldi r24, 0x0E ; 14
6da2: 80 93 57 01 sts 0x0157, r24
6da6: e0 91 1e 05 lds r30, 0x051E
6daa: f0 e0 ldi r31, 0x00 ; 0
6dac: ee 0f add r30, r30
6dae: ff 1f adc r31, r31
6db0: e2 5f subi r30, 0xF2 ; 242
6db2: f7 4f sbci r31, 0xF7 ; 247
6db4: 80 81 ld r24, Z
6db6: 91 81 ldd r25, Z+1 ; 0x01
6db8: 81 35 cpi r24, 0x51 ; 81
6dba: 91 05 cpc r25, r1
6dbc: 0c f4 brge .+2 ; 0x6dc0 <MotorRegler+0x528>
6dbe: 57 c1 rjmp .+686 ; 0x706e <MotorRegler+0x7d6>
6dc0: 80 91 01 04 lds r24, 0x0401
6dc4: 81 11 cpse r24, r1
6dc6: 53 c1 rjmp .+678 ; 0x706e <MotorRegler+0x7d6>
6dc8: 80 91 b5 04 lds r24, 0x04B5
6dcc: 84 fd sbrc r24, 4
6dce: 4f c1 rjmp .+670 ; 0x706e <MotorRegler+0x7d6>
6dd0: e0 91 1f 05 lds r30, 0x051F
6dd4: f0 e0 ldi r31, 0x00 ; 0
6dd6: ee 0f add r30, r30
6dd8: ff 1f adc r31, r31
6dda: e2 5f subi r30, 0xF2 ; 242
6ddc: f7 4f sbci r31, 0xF7 ; 247
6dde: 80 81 ld r24, Z
6de0: 91 81 ldd r25, Z+1 ; 0x01
6de2: 97 ff sbrs r25, 7
6de4: 03 c0 rjmp .+6 ; 0x6dec <MotorRegler+0x554>
6de6: 91 95 neg r25
6de8: 81 95 neg r24
6dea: 91 09 sbc r25, r1
6dec: 8c 34 cpi r24, 0x4C ; 76
6dee: 91 05 cpc r25, r1
6df0: 0c f4 brge .+2 ; 0x6df4 <MotorRegler+0x55c>
6df2: 3b c1 rjmp .+630 ; 0x706a <MotorRegler+0x7d2>
6df4: 80 91 9b 03 lds r24, 0x039B
6df8: 8f 5f subi r24, 0xFF ; 255
6dfa: 80 93 9b 03 sts 0x039B, r24
6dfe: 89 3c cpi r24, 0xC9 ; 201
6e00: 08 f4 brcc .+2 ; 0x6e04 <MotorRegler+0x56c>
6e02: 35 c1 rjmp .+618 ; 0x706e <MotorRegler+0x7d6>
6e04: 10 92 9b 03 sts 0x039B, r1
6e08: 10 92 cb 03 sts 0x03CB, r1
6e0c: 10 92 ca 03 sts 0x03CA, r1
6e10: 20 91 1c 05 lds r18, 0x051C
6e14: 30 e0 ldi r19, 0x00 ; 0
6e16: 22 0f add r18, r18
6e18: 33 1f adc r19, r19
6e1a: f9 01 movw r30, r18
6e1c: e2 5f subi r30, 0xF2 ; 242
6e1e: f7 4f sbci r31, 0xF7 ; 247
6e20: 80 81 ld r24, Z
6e22: 91 81 ldd r25, Z+1 ; 0x01
6e24: 40 91 1d 05 lds r20, 0x051D
6e28: 87 34 cpi r24, 0x47 ; 71
6e2a: 91 05 cpc r25, r1
6e2c: 8c f4 brge .+34 ; 0x6e50 <MotorRegler+0x5b8>
6e2e: e4 2f mov r30, r20
6e30: f0 e0 ldi r31, 0x00 ; 0
6e32: ee 0f add r30, r30
6e34: ff 1f adc r31, r31
6e36: e2 5f subi r30, 0xF2 ; 242
6e38: f7 4f sbci r31, 0xF7 ; 247
6e3a: 80 81 ld r24, Z
6e3c: 91 81 ldd r25, Z+1 ; 0x01
6e3e: 97 ff sbrs r25, 7
6e40: 03 c0 rjmp .+6 ; 0x6e48 <MotorRegler+0x5b0>
6e42: 91 95 neg r25
6e44: 81 95 neg r24
6e46: 91 09 sbc r25, r1
6e48: 87 34 cpi r24, 0x47 ; 71
6e4a: 91 05 cpc r25, r1
6e4c: 0c f4 brge .+2 ; 0x6e50 <MotorRegler+0x5b8>
6e4e: 6a c0 rjmp .+212 ; 0x6f24 <MotorRegler+0x68c>
6e50: 50 e0 ldi r21, 0x00 ; 0
6e52: 44 0f add r20, r20
6e54: 55 1f adc r21, r21
6e56: fa 01 movw r30, r20
6e58: e2 5f subi r30, 0xF2 ; 242
6e5a: f7 4f sbci r31, 0xF7 ; 247
6e5c: 80 81 ld r24, Z
6e5e: 91 81 ldd r25, Z+1 ; 0x01
6e60: 87 34 cpi r24, 0x47 ; 71
6e62: 91 05 cpc r25, r1
6e64: 74 f0 brlt .+28 ; 0x6e82 <MotorRegler+0x5ea>
6e66: f9 01 movw r30, r18
6e68: e2 5f subi r30, 0xF2 ; 242
6e6a: f7 4f sbci r31, 0xF7 ; 247
6e6c: 80 81 ld r24, Z
6e6e: 91 81 ldd r25, Z+1 ; 0x01
6e70: 86 34 cpi r24, 0x46 ; 70
6e72: 91 05 cpc r25, r1
6e74: 34 f4 brge .+12 ; 0x6e82 <MotorRegler+0x5ea>
6e76: 80 81 ld r24, Z
6e78: 91 81 ldd r25, Z+1 ; 0x01
6e7a: 11 e0 ldi r17, 0x01 ; 1
6e7c: 8b 3b cpi r24, 0xBB ; 187
6e7e: 9f 4f sbci r25, 0xFF ; 255
6e80: 0c f4 brge .+2 ; 0x6e84 <MotorRegler+0x5ec>
6e82: 10 e0 ldi r17, 0x00 ; 0
6e84: fa 01 movw r30, r20
6e86: e2 5f subi r30, 0xF2 ; 242
6e88: f7 4f sbci r31, 0xF7 ; 247
6e8a: 80 81 ld r24, Z
6e8c: 91 81 ldd r25, Z+1 ; 0x01
6e8e: 87 34 cpi r24, 0x47 ; 71
6e90: 91 05 cpc r25, r1
6e92: 4c f0 brlt .+18 ; 0x6ea6 <MotorRegler+0x60e>
6e94: f9 01 movw r30, r18
6e96: e2 5f subi r30, 0xF2 ; 242
6e98: f7 4f sbci r31, 0xF7 ; 247
6e9a: 80 81 ld r24, Z
6e9c: 91 81 ldd r25, Z+1 ; 0x01
6e9e: 87 34 cpi r24, 0x47 ; 71
6ea0: 91 05 cpc r25, r1
6ea2: 0c f0 brlt .+2 ; 0x6ea6 <MotorRegler+0x60e>
6ea4: 12 e0 ldi r17, 0x02 ; 2
6ea6: fa 01 movw r30, r20
6ea8: e2 5f subi r30, 0xF2 ; 242
6eaa: f7 4f sbci r31, 0xF7 ; 247
6eac: 80 81 ld r24, Z
6eae: 91 81 ldd r25, Z+1 ; 0x01
6eb0: 86 34 cpi r24, 0x46 ; 70
6eb2: 91 05 cpc r25, r1
6eb4: 4c f4 brge .+18 ; 0x6ec8 <MotorRegler+0x630>
6eb6: f9 01 movw r30, r18
6eb8: e2 5f subi r30, 0xF2 ; 242
6eba: f7 4f sbci r31, 0xF7 ; 247
6ebc: 80 81 ld r24, Z
6ebe: 91 81 ldd r25, Z+1 ; 0x01
6ec0: 87 34 cpi r24, 0x47 ; 71
6ec2: 91 05 cpc r25, r1
6ec4: 0c f0 brlt .+2 ; 0x6ec8 <MotorRegler+0x630>
6ec6: 13 e0 ldi r17, 0x03 ; 3
6ec8: fa 01 movw r30, r20
6eca: e2 5f subi r30, 0xF2 ; 242
6ecc: f7 4f sbci r31, 0xF7 ; 247
6ece: 80 81 ld r24, Z
6ed0: 91 81 ldd r25, Z+1 ; 0x01
6ed2: 8a 3b cpi r24, 0xBA ; 186
6ed4: 9f 4f sbci r25, 0xFF ; 255
6ed6: 4c f4 brge .+18 ; 0x6eea <MotorRegler+0x652>
6ed8: f9 01 movw r30, r18
6eda: e2 5f subi r30, 0xF2 ; 242
6edc: f7 4f sbci r31, 0xF7 ; 247
6ede: 80 81 ld r24, Z
6ee0: 91 81 ldd r25, Z+1 ; 0x01
6ee2: 87 34 cpi r24, 0x47 ; 71
6ee4: 91 05 cpc r25, r1
6ee6: 0c f0 brlt .+2 ; 0x6eea <MotorRegler+0x652>
6ee8: 14 e0 ldi r17, 0x04 ; 4
6eea: fa 01 movw r30, r20
6eec: e2 5f subi r30, 0xF2 ; 242
6eee: f7 4f sbci r31, 0xF7 ; 247
6ef0: 80 81 ld r24, Z
6ef2: 91 81 ldd r25, Z+1 ; 0x01
6ef4: 8a 3b cpi r24, 0xBA ; 186
6ef6: 9f 4f sbci r25, 0xFF ; 255
6ef8: 6c f4 brge .+26 ; 0x6f14 <MotorRegler+0x67c>
6efa: f9 01 movw r30, r18
6efc: e2 5f subi r30, 0xF2 ; 242
6efe: f7 4f sbci r31, 0xF7 ; 247
6f00: 20 81 ld r18, Z
6f02: 31 81 ldd r19, Z+1 ; 0x01
6f04: 26 34 cpi r18, 0x46 ; 70
6f06: 31 05 cpc r19, r1
6f08: 2c f4 brge .+10 ; 0x6f14 <MotorRegler+0x67c>
6f0a: 20 81 ld r18, Z
6f0c: 31 81 ldd r19, Z+1 ; 0x01
6f0e: 2b 3b cpi r18, 0xBB ; 187
6f10: 3f 4f sbci r19, 0xFF ; 255
6f12: 1c f4 brge .+6 ; 0x6f1a <MotorRegler+0x682>
6f14: 11 23 and r17, r17
6f16: 39 f0 breq .+14 ; 0x6f26 <MotorRegler+0x68e>
6f18: 01 c0 rjmp .+2 ; 0x6f1c <MotorRegler+0x684>
6f1a: 15 e0 ldi r17, 0x05 ; 5
6f1c: 81 2f mov r24, r17
6f1e: 0e 94 12 24 call 0x4824 ; 0x4824 <SetActiveParamSet>
6f22: 01 c0 rjmp .+2 ; 0x6f26 <MotorRegler+0x68e>
6f24: 10 e0 ldi r17, 0x00 ; 0
6f26: e0 91 1d 05 lds r30, 0x051D
6f2a: f0 e0 ldi r31, 0x00 ; 0
6f2c: ee 0f add r30, r30
6f2e: ff 1f adc r31, r31
6f30: e2 5f subi r30, 0xF2 ; 242
6f32: f7 4f sbci r31, 0xF7 ; 247
6f34: 20 81 ld r18, Z
6f36: 31 81 ldd r19, Z+1 ; 0x01
6f38: 37 ff sbrs r19, 7
6f3a: 03 c0 rjmp .+6 ; 0x6f42 <MotorRegler+0x6aa>
6f3c: 31 95 neg r19
6f3e: 21 95 neg r18
6f40: 31 09 sbc r19, r1
6f42: 2e 31 cpi r18, 0x1E ; 30
6f44: 31 05 cpc r19, r1
6f46: c4 f4 brge .+48 ; 0x6f78 <MotorRegler+0x6e0>
6f48: e0 91 1c 05 lds r30, 0x051C
6f4c: f0 e0 ldi r31, 0x00 ; 0
6f4e: ee 0f add r30, r30
6f50: ff 1f adc r31, r31
6f52: e2 5f subi r30, 0xF2 ; 242
6f54: f7 4f sbci r31, 0xF7 ; 247
6f56: 20 81 ld r18, Z
6f58: 31 81 ldd r19, Z+1 ; 0x01
6f5a: 2a 3b cpi r18, 0xBA ; 186
6f5c: 3f 4f sbci r19, 0xFF ; 255
6f5e: 64 f4 brge .+24 ; 0x6f78 <MotorRegler+0x6e0>
6f60: 81 e0 ldi r24, 0x01 ; 1
6f62: 80 93 5a 0a sts 0x0A5A, r24
6f66: 10 92 ed 03 sts 0x03ED, r1
6f6a: 88 ee ldi r24, 0xE8 ; 232
6f6c: 93 e0 ldi r25, 0x03 ; 3
6f6e: 90 93 cc 04 sts 0x04CC, r25
6f72: 80 93 cb 04 sts 0x04CB, r24
6f76: 7b c0 rjmp .+246 ; 0x706e <MotorRegler+0x7d6>
6f78: 80 91 52 01 lds r24, 0x0152
6f7c: 0e 94 4b 23 call 0x4696 ; 0x4696 <ParamSet_ReadFromEEProm>
6f80: 80 e0 ldi r24, 0x00 ; 0
6f82: 0e 94 6b 51 call 0xa2d6 ; 0xa2d6 <LipoDetection>
6f86: 80 91 42 05 lds r24, 0x0542
6f8a: 0e 94 d8 17 call 0x2fb0 ; 0x2fb0 <LIBFC_ReceiverInit>
6f8e: 80 91 39 06 lds r24, 0x0639
6f92: 80 ff sbrs r24, 0
6f94: 10 c0 rjmp .+32 ; 0x6fb6 <MotorRegler+0x71e>
6f96: 20 91 10 01 lds r18, 0x0110
6f9a: 30 91 11 01 lds r19, 0x0111
6f9e: 27 3b cpi r18, 0xB7 ; 183
6fa0: 33 40 sbci r19, 0x03 ; 3
6fa2: 38 f4 brcc .+14 ; 0x6fb2 <MotorRegler+0x71a>
6fa4: 20 91 10 01 lds r18, 0x0110
6fa8: 30 91 11 01 lds r19, 0x0111
6fac: 2e 3e cpi r18, 0xEE ; 238
6fae: 32 40 sbci r19, 0x02 ; 2
6fb0: 10 f4 brcc .+4 ; 0x6fb6 <MotorRegler+0x71e>
6fb2: 0e 94 ab 1a call 0x3556 ; 0x3556 <SucheLuftruckOffset>
6fb6: 11 11 cpse r17, r1
6fb8: 39 c0 rjmp .+114 ; 0x702c <MotorRegler+0x794>
6fba: e0 91 1d 05 lds r30, 0x051D
6fbe: f0 e0 ldi r31, 0x00 ; 0
6fc0: ee 0f add r30, r30
6fc2: ff 1f adc r31, r31
6fc4: e2 5f subi r30, 0xF2 ; 242
6fc6: f7 4f sbci r31, 0xF7 ; 247
6fc8: 80 81 ld r24, Z
6fca: 91 81 ldd r25, Z+1 ; 0x01
6fcc: 8a 3b cpi r24, 0xBA ; 186
6fce: 9f 4f sbci r25, 0xFF ; 255
6fd0: 74 f4 brge .+28 ; 0x6fee <MotorRegler+0x756>
6fd2: e0 91 1c 05 lds r30, 0x051C
6fd6: f0 e0 ldi r31, 0x00 ; 0
6fd8: ee 0f add r30, r30
6fda: ff 1f adc r31, r31
6fdc: e2 5f subi r30, 0xF2 ; 242
6fde: f7 4f sbci r31, 0xF7 ; 247
6fe0: 80 81 ld r24, Z
6fe2: 91 81 ldd r25, Z+1 ; 0x01
6fe4: 86 34 cpi r24, 0x46 ; 70
6fe6: 91 05 cpc r25, r1
6fe8: 14 f4 brge .+4 ; 0x6fee <MotorRegler+0x756>
6fea: 83 e0 ldi r24, 0x03 ; 3
6fec: 20 c0 rjmp .+64 ; 0x702e <MotorRegler+0x796>
6fee: e0 91 1f 05 lds r30, 0x051F
6ff2: f0 e0 ldi r31, 0x00 ; 0
6ff4: ee 0f add r30, r30
6ff6: ff 1f adc r31, r31
6ff8: e2 5f subi r30, 0xF2 ; 242
6ffa: f7 4f sbci r31, 0xF7 ; 247
6ffc: 80 81 ld r24, Z
6ffe: 91 81 ldd r25, Z+1 ; 0x01
7000: 85 3b cpi r24, 0xB5 ; 181
7002: 9f 4f sbci r25, 0xFF ; 255
7004: 9c f4 brge .+38 ; 0x702c <MotorRegler+0x794>
7006: e0 91 1c 05 lds r30, 0x051C
700a: f0 e0 ldi r31, 0x00 ; 0
700c: ee 0f add r30, r30
700e: ff 1f adc r31, r31
7010: e2 5f subi r30, 0xF2 ; 242
7012: f7 4f sbci r31, 0xF7 ; 247
7014: 80 81 ld r24, Z
7016: 91 81 ldd r25, Z+1 ; 0x01
7018: 97 ff sbrs r25, 7
701a: 03 c0 rjmp .+6 ; 0x7022 <MotorRegler+0x78a>
701c: 91 95 neg r25
701e: 81 95 neg r24
7020: 91 09 sbc r25, r1
7022: 86 34 cpi r24, 0x46 ; 70
7024: 91 05 cpc r25, r1
7026: 14 f4 brge .+4 ; 0x702c <MotorRegler+0x794>
7028: 82 e0 ldi r24, 0x02 ; 2
702a: 01 c0 rjmp .+2 ; 0x702e <MotorRegler+0x796>
702c: 81 e0 ldi r24, 0x01 ; 1
702e: 0e 94 34 27 call 0x4e68 ; 0x4e68 <SetNeutral>
7032: 80 93 ed 03 sts 0x03ED, r24
7036: 81 e0 ldi r24, 0x01 ; 1
7038: 80 93 c9 04 sts 0x04C9, r24
703c: 57 9a sbi 0x0a, 7 ; 10
703e: 90 91 3f 0a lds r25, 0x0A3F
7042: 99 23 and r25, r25
7044: 11 f0 breq .+4 ; 0x704a <MotorRegler+0x7b2>
7046: 87 e0 ldi r24, 0x07 ; 7
7048: 04 c0 rjmp .+8 ; 0x7052 <MotorRegler+0x7ba>
704a: 90 91 ed 03 lds r25, 0x03ED
704e: 91 11 cpse r25, r1
7050: 88 e1 ldi r24, 0x18 ; 24
7052: 80 93 57 01 sts 0x0157, r24
7056: 8a e0 ldi r24, 0x0A ; 10
7058: 80 93 7e 04 sts 0x047E, r24
705c: 68 e7 ldi r22, 0x78 ; 120
705e: 70 e0 ldi r23, 0x00 ; 0
7060: 80 91 52 01 lds r24, 0x0152
7064: 0e 94 9f 26 call 0x4d3e ; 0x4d3e <Piep>
7068: 02 c0 rjmp .+4 ; 0x706e <MotorRegler+0x7d6>
706a: 10 92 9b 03 sts 0x039B, r1
706e: e0 91 1e 05 lds r30, 0x051E
7072: f0 e0 ldi r31, 0x00 ; 0
7074: ee 0f add r30, r30
7076: ff 1f adc r31, r31
7078: e2 5f subi r30, 0xF2 ; 242
707a: f7 4f sbci r31, 0xF7 ; 247
707c: 80 81 ld r24, Z
707e: 91 81 ldd r25, Z+1 ; 0x01
7080: 8c 39 cpi r24, 0x9C ; 156
7082: 9f 4f sbci r25, 0xFF ; 255
7084: 0c f0 brlt .+2 ; 0x7088 <MotorRegler+0x7f0>
7086: 10 c2 rjmp .+1056 ; 0x74a8 <MotorRegler+0xc10>
7088: 20 91 80 05 lds r18, 0x0580
708c: e2 2f mov r30, r18
708e: ef 77 andi r30, 0x7F ; 127
7090: f0 e0 ldi r31, 0x00 ; 0
7092: ee 0f add r30, r30
7094: ff 1f adc r31, r31
7096: ec 5a subi r30, 0xAC ; 172
7098: f7 4f sbci r31, 0xF7 ; 247
709a: 80 81 ld r24, Z
709c: 91 81 ldd r25, Z+1 ; 0x01
709e: 06 97 sbiw r24, 0x06 ; 6
70a0: 14 f0 brlt .+4 ; 0x70a6 <MotorRegler+0x80e>
70a2: 84 e6 ldi r24, 0x64 ; 100
70a4: 06 c0 rjmp .+12 ; 0x70b2 <MotorRegler+0x81a>
70a6: 80 81 ld r24, Z
70a8: 91 81 ldd r25, Z+1 ; 0x01
70aa: 8b 3f cpi r24, 0xFB ; 251
70ac: 9f 4f sbci r25, 0xFF ; 255
70ae: 1c f4 brge .+6 ; 0x70b6 <MotorRegler+0x81e>
70b0: 8c e9 ldi r24, 0x9C ; 156
70b2: 80 93 9a 03 sts 0x039A, r24
70b6: 80 91 01 04 lds r24, 0x0401
70ba: 30 91 96 05 lds r19, 0x0596
70be: e0 91 1f 05 lds r30, 0x051F
70c2: f0 e0 ldi r31, 0x00 ; 0
70c4: ee 0f add r30, r30
70c6: ff 1f adc r31, r31
70c8: e2 5f subi r30, 0xF2 ; 242
70ca: f7 4f sbci r31, 0xF7 ; 247
70cc: 81 11 cpse r24, r1
70ce: 4e c1 rjmp .+668 ; 0x736c <MotorRegler+0xad4>
70d0: 80 81 ld r24, Z
70d2: 91 81 ldd r25, Z+1 ; 0x01
70d4: 8c 39 cpi r24, 0x9C ; 156
70d6: 9f 4f sbci r25, 0xFF ; 255
70d8: 7c f4 brge .+30 ; 0x70f8 <MotorRegler+0x860>
70da: 33 fd sbrc r19, 3
70dc: 0b c0 rjmp .+22 ; 0x70f4 <MotorRegler+0x85c>
70de: e2 2f mov r30, r18
70e0: f0 e0 ldi r31, 0x00 ; 0
70e2: ee 0f add r30, r30
70e4: ff 1f adc r31, r31
70e6: e2 5f subi r30, 0xF2 ; 242
70e8: f7 4f sbci r31, 0xF7 ; 247
70ea: 80 81 ld r24, Z
70ec: 91 81 ldd r25, Z+1 ; 0x01
70ee: 85 3b cpi r24, 0xB5 ; 181
70f0: 9f 4f sbci r25, 0xFF ; 255
70f2: ac f0 brlt .+42 ; 0x711e <MotorRegler+0x886>
70f4: 22 23 and r18, r18
70f6: 99 f0 breq .+38 ; 0x711e <MotorRegler+0x886>
70f8: 33 ff sbrs r19, 3
70fa: 35 c1 rjmp .+618 ; 0x7366 <MotorRegler+0xace>
70fc: e2 2f mov r30, r18
70fe: f0 e0 ldi r31, 0x00 ; 0
7100: ee 0f add r30, r30
7102: ff 1f adc r31, r31
7104: e2 5f subi r30, 0xF2 ; 242
7106: f7 4f sbci r31, 0xF7 ; 247
7108: 80 81 ld r24, Z
710a: 91 81 ldd r25, Z+1 ; 0x01
710c: 87 3f cpi r24, 0xF7 ; 247
710e: 9f 4f sbci r25, 0xFF ; 255
7110: 0c f4 brge .+2 ; 0x7114 <MotorRegler+0x87c>
7112: 29 c1 rjmp .+594 ; 0x7366 <MotorRegler+0xace>
7114: 80 91 9a 03 lds r24, 0x039A
7118: 84 36 cpi r24, 0x64 ; 100
711a: 09 f0 breq .+2 ; 0x711e <MotorRegler+0x886>
711c: 24 c1 rjmp .+584 ; 0x7366 <MotorRegler+0xace>
711e: 80 91 b5 04 lds r24, 0x04B5
7122: 84 fd sbrc r24, 4
7124: 20 c1 rjmp .+576 ; 0x7366 <MotorRegler+0xace>
7126: 80 91 ed 03 lds r24, 0x03ED
712a: 88 23 and r24, r24
712c: 29 f0 breq .+10 ; 0x7138 <MotorRegler+0x8a0>
712e: 80 91 c9 03 lds r24, 0x03C9
7132: 88 60 ori r24, 0x08 ; 8
7134: 80 93 c9 03 sts 0x03C9, r24
7138: 80 91 12 01 lds r24, 0x0112
713c: 90 91 13 01 lds r25, 0x0113
7140: a0 91 14 01 lds r26, 0x0114
7144: b0 91 15 01 lds r27, 0x0115
7148: 80 93 06 05 sts 0x0506, r24
714c: 90 93 07 05 sts 0x0507, r25
7150: a0 93 08 05 sts 0x0508, r26
7154: b0 93 09 05 sts 0x0509, r27
7158: 10 92 fc 03 sts 0x03FC, r1
715c: 10 92 fd 03 sts 0x03FD, r1
7160: 10 92 fe 03 sts 0x03FE, r1
7164: 10 92 ff 03 sts 0x03FF, r1
7168: 10 92 46 03 sts 0x0346, r1
716c: 10 92 47 03 sts 0x0347, r1
7170: 10 92 48 03 sts 0x0348, r1
7174: 10 92 49 03 sts 0x0349, r1
7178: 88 e5 ldi r24, 0x58 ; 88
717a: 92 e0 ldi r25, 0x02 ; 2
717c: 90 93 c4 03 sts 0x03C4, r25
7180: 80 93 c3 03 sts 0x03C3, r24
7184: 10 92 42 03 sts 0x0342, r1
7188: 10 92 43 03 sts 0x0343, r1
718c: 10 92 44 03 sts 0x0344, r1
7190: 10 92 45 03 sts 0x0345, r1
7194: 10 92 57 03 sts 0x0357, r1
7198: 10 92 58 03 sts 0x0358, r1
719c: 10 92 59 03 sts 0x0359, r1
71a0: 10 92 5a 03 sts 0x035A, r1
71a4: e0 91 1c 05 lds r30, 0x051C
71a8: f0 e0 ldi r31, 0x00 ; 0
71aa: ee 0f add r30, r30
71ac: ff 1f adc r31, r31
71ae: e2 5f subi r30, 0xF2 ; 242
71b0: f7 4f sbci r31, 0xF7 ; 247
71b2: 80 81 ld r24, Z
71b4: 91 81 ldd r25, Z+1 ; 0x01
71b6: 8d 39 cpi r24, 0x9D ; 157
71b8: 9f 4f sbci r25, 0xFF ; 255
71ba: 8c f4 brge .+34 ; 0x71de <MotorRegler+0x946>
71bc: e0 91 1d 05 lds r30, 0x051D
71c0: f0 e0 ldi r31, 0x00 ; 0
71c2: ee 0f add r30, r30
71c4: ff 1f adc r31, r31
71c6: e2 5f subi r30, 0xF2 ; 242
71c8: f7 4f sbci r31, 0xF7 ; 247
71ca: 80 81 ld r24, Z
71cc: 91 81 ldd r25, Z+1 ; 0x01
71ce: 97 ff sbrs r25, 7
71d0: 03 c0 rjmp .+6 ; 0x71d8 <MotorRegler+0x940>
71d2: 91 95 neg r25
71d4: 81 95 neg r24
71d6: 91 09 sbc r25, r1
71d8: 84 36 cpi r24, 0x64 ; 100
71da: 91 05 cpc r25, r1
71dc: 24 f4 brge .+8 ; 0x71e6 <MotorRegler+0x94e>
71de: 21 11 cpse r18, r1
71e0: 02 c0 rjmp .+4 ; 0x71e6 <MotorRegler+0x94e>
71e2: 10 92 99 03 sts 0x0399, r1
71e6: 80 91 99 03 lds r24, 0x0399
71ea: 8f 5f subi r24, 0xFF ; 255
71ec: 80 93 99 03 sts 0x0399, r24
71f0: 8e 3f cpi r24, 0xFE ; 254
71f2: 08 f4 brcc .+2 ; 0x71f6 <MotorRegler+0x95e>
71f4: 3f c1 rjmp .+638 ; 0x7474 <MotorRegler+0xbdc>
71f6: 80 91 c7 03 lds r24, 0x03C7
71fa: 30 91 44 06 lds r19, 0x0644
71fe: 20 91 45 06 lds r18, 0x0645
7202: 81 ff sbrs r24, 1
7204: 23 c0 rjmp .+70 ; 0x724c <MotorRegler+0x9b4>
7206: 83 2f mov r24, r19
7208: 92 2f mov r25, r18
720a: 97 ff sbrs r25, 7
720c: 03 c0 rjmp .+6 ; 0x7214 <MotorRegler+0x97c>
720e: 91 95 neg r25
7210: 81 95 neg r24
7212: 91 09 sbc r25, r1
7214: 81 34 cpi r24, 0x41 ; 65
7216: 91 05 cpc r25, r1
7218: b4 f4 brge .+44 ; 0x7246 <MotorRegler+0x9ae>
721a: 80 91 04 06 lds r24, 0x0604
721e: 90 91 05 06 lds r25, 0x0605
7222: 97 ff sbrs r25, 7
7224: 03 c0 rjmp .+6 ; 0x722c <MotorRegler+0x994>
7226: 91 95 neg r25
7228: 81 95 neg r24
722a: 91 09 sbc r25, r1
722c: cd 97 sbiw r24, 0x3d ; 61
722e: 5c f4 brge .+22 ; 0x7246 <MotorRegler+0x9ae>
7230: 80 91 f9 05 lds r24, 0x05F9
7234: 90 91 fa 05 lds r25, 0x05FA
7238: 97 ff sbrs r25, 7
723a: 03 c0 rjmp .+6 ; 0x7242 <MotorRegler+0x9aa>
723c: 91 95 neg r25
723e: 81 95 neg r24
7240: 91 09 sbc r25, r1
7242: cd 97 sbiw r24, 0x3d ; 61
7244: 14 f1 brlt .+68 ; 0x728a <MotorRegler+0x9f2>
7246: 10 92 ed 03 sts 0x03ED, r1
724a: 1f c0 rjmp .+62 ; 0x728a <MotorRegler+0x9f2>
724c: 83 2f mov r24, r19
724e: 92 2f mov r25, r18
7250: 97 ff sbrs r25, 7
7252: 03 c0 rjmp .+6 ; 0x725a <MotorRegler+0x9c2>
7254: 91 95 neg r25
7256: 81 95 neg r24
7258: 91 09 sbc r25, r1
725a: 81 97 sbiw r24, 0x21 ; 33
725c: a4 f7 brge .-24 ; 0x7246 <MotorRegler+0x9ae>
725e: 80 91 04 06 lds r24, 0x0604
7262: 90 91 05 06 lds r25, 0x0605
7266: 97 ff sbrs r25, 7
7268: 03 c0 rjmp .+6 ; 0x7270 <MotorRegler+0x9d8>
726a: 91 95 neg r25
726c: 81 95 neg r24
726e: 91 09 sbc r25, r1
7270: 45 97 sbiw r24, 0x15 ; 21
7272: 4c f7 brge .-46 ; 0x7246 <MotorRegler+0x9ae>
7274: 80 91 f9 05 lds r24, 0x05F9
7278: 90 91 fa 05 lds r25, 0x05FA
727c: 97 ff sbrs r25, 7
727e: 03 c0 rjmp .+6 ; 0x7286 <MotorRegler+0x9ee>
7280: 91 95 neg r25
7282: 81 95 neg r24
7284: 91 09 sbc r25, r1
7286: 45 97 sbiw r24, 0x15 ; 21
7288: f4 f6 brge .-68 ; 0x7246 <MotorRegler+0x9ae>
728a: 10 92 99 03 sts 0x0399, r1
728e: 80 91 3f 0a lds r24, 0x0A3F
7292: 20 91 ed 03 lds r18, 0x03ED
7296: 81 11 cpse r24, r1
7298: 5c c0 rjmp .+184 ; 0x7352 <MotorRegler+0xaba>
729a: 22 23 and r18, r18
729c: 09 f4 brne .+2 ; 0x72a0 <MotorRegler+0xa08>
729e: 59 c0 rjmp .+178 ; 0x7352 <MotorRegler+0xaba>
72a0: 80 91 b9 04 lds r24, 0x04B9
72a4: 81 11 cpse r24, r1
72a6: 55 c0 rjmp .+170 ; 0x7352 <MotorRegler+0xaba>
72a8: 81 e0 ldi r24, 0x01 ; 1
72aa: 90 e0 ldi r25, 0x00 ; 0
72ac: 90 93 cb 03 sts 0x03CB, r25
72b0: 80 93 ca 03 sts 0x03CA, r24
72b4: 80 93 01 04 sts 0x0401, r24
72b8: 10 92 9c 03 sts 0x039C, r1
72bc: 10 92 9d 03 sts 0x039D, r1
72c0: 10 92 9e 03 sts 0x039E, r1
72c4: 10 92 9f 03 sts 0x039F, r1
72c8: 10 92 2c 04 sts 0x042C, r1
72cc: 10 92 2d 04 sts 0x042D, r1
72d0: 10 92 2e 04 sts 0x042E, r1
72d4: 10 92 2f 04 sts 0x042F, r1
72d8: 10 92 28 04 sts 0x0428, r1
72dc: 10 92 29 04 sts 0x0429, r1
72e0: 10 92 2a 04 sts 0x042A, r1
72e4: 10 92 2b 04 sts 0x042B, r1
72e8: 40 91 37 05 lds r20, 0x0537
72ec: a0 91 3d 06 lds r26, 0x063D
72f0: b0 91 3e 06 lds r27, 0x063E
72f4: 50 e0 ldi r21, 0x00 ; 0
72f6: 9a 01 movw r18, r20
72f8: 0e 94 3f 9b call 0x1367e ; 0x1367e <__usmulhisi3>
72fc: 60 93 34 04 sts 0x0434, r22
7300: 70 93 35 04 sts 0x0435, r23
7304: 80 93 36 04 sts 0x0436, r24
7308: 90 93 37 04 sts 0x0437, r25
730c: a0 91 4f 06 lds r26, 0x064F
7310: b0 91 50 06 lds r27, 0x0650
7314: 0e 94 3f 9b call 0x1367e ; 0x1367e <__usmulhisi3>
7318: 60 93 30 04 sts 0x0430, r22
731c: 70 93 31 04 sts 0x0431, r23
7320: 80 93 32 04 sts 0x0432, r24
7324: 90 93 33 04 sts 0x0433, r25
7328: 10 92 24 04 sts 0x0424, r1
732c: 10 92 25 04 sts 0x0425, r1
7330: 10 92 26 04 sts 0x0426, r1
7334: 10 92 27 04 sts 0x0427, r1
7338: 10 92 20 04 sts 0x0420, r1
733c: 10 92 21 04 sts 0x0421, r1
7340: 10 92 22 04 sts 0x0422, r1
7344: 10 92 23 04 sts 0x0423, r1
7348: 84 e6 ldi r24, 0x64 ; 100
734a: 80 93 ec 03 sts 0x03EC, r24
734e: 84 e3 ldi r24, 0x34 ; 52
7350: 83 c0 rjmp .+262 ; 0x7458 <MotorRegler+0xbc0>
7352: 8c ed ldi r24, 0xDC ; 220
7354: 95 e0 ldi r25, 0x05 ; 5
7356: 90 93 cc 04 sts 0x04CC, r25
735a: 80 93 cb 04 sts 0x04CB, r24
735e: 21 11 cpse r18, r1
7360: 89 c0 rjmp .+274 ; 0x7474 <MotorRegler+0xbdc>
7362: 81 e0 ldi r24, 0x01 ; 1
7364: 79 c0 rjmp .+242 ; 0x7458 <MotorRegler+0xbc0>
7366: 10 92 99 03 sts 0x0399, r1
736a: 84 c0 rjmp .+264 ; 0x7474 <MotorRegler+0xbdc>
736c: 80 81 ld r24, Z
736e: 91 81 ldd r25, Z+1 ; 0x01
7370: 85 36 cpi r24, 0x65 ; 101
7372: 91 05 cpc r25, r1
7374: 7c f0 brlt .+30 ; 0x7394 <MotorRegler+0xafc>
7376: 33 fd sbrc r19, 3
7378: 0b c0 rjmp .+22 ; 0x7390 <MotorRegler+0xaf8>
737a: e2 2f mov r30, r18
737c: f0 e0 ldi r31, 0x00 ; 0
737e: ee 0f add r30, r30
7380: ff 1f adc r31, r31
7382: e2 5f subi r30, 0xF2 ; 242
7384: f7 4f sbci r31, 0xF7 ; 247
7386: 80 81 ld r24, Z
7388: 91 81 ldd r25, Z+1 ; 0x01
738a: 85 3b cpi r24, 0xB5 ; 181
738c: 9f 4f sbci r25, 0xFF ; 255
738e: ac f0 brlt .+42 ; 0x73ba <MotorRegler+0xb22>
7390: 22 23 and r18, r18
7392: 99 f0 breq .+38 ; 0x73ba <MotorRegler+0xb22>
7394: 33 ff sbrs r19, 3
7396: 6c c0 rjmp .+216 ; 0x7470 <MotorRegler+0xbd8>
7398: e2 2f mov r30, r18
739a: f0 e0 ldi r31, 0x00 ; 0
739c: ee 0f add r30, r30
739e: ff 1f adc r31, r31
73a0: e2 5f subi r30, 0xF2 ; 242
73a2: f7 4f sbci r31, 0xF7 ; 247
73a4: 80 81 ld r24, Z
73a6: 91 81 ldd r25, Z+1 ; 0x01
73a8: 8e 3c cpi r24, 0xCE ; 206
73aa: 9f 4f sbci r25, 0xFF ; 255
73ac: 0c f0 brlt .+2 ; 0x73b0 <MotorRegler+0xb18>
73ae: 60 c0 rjmp .+192 ; 0x7470 <MotorRegler+0xbd8>
73b0: 80 91 9a 03 lds r24, 0x039A
73b4: 8c 39 cpi r24, 0x9C ; 156
73b6: 09 f0 breq .+2 ; 0x73ba <MotorRegler+0xb22>
73b8: 5b c0 rjmp .+182 ; 0x7470 <MotorRegler+0xbd8>
73ba: e0 91 1c 05 lds r30, 0x051C
73be: f0 e0 ldi r31, 0x00 ; 0
73c0: ee 0f add r30, r30
73c2: ff 1f adc r31, r31
73c4: e2 5f subi r30, 0xF2 ; 242
73c6: f7 4f sbci r31, 0xF7 ; 247
73c8: 80 81 ld r24, Z
73ca: 91 81 ldd r25, Z+1 ; 0x01
73cc: 8d 39 cpi r24, 0x9D ; 157
73ce: 9f 4f sbci r25, 0xFF ; 255
73d0: 8c f4 brge .+34 ; 0x73f4 <MotorRegler+0xb5c>
73d2: e0 91 1d 05 lds r30, 0x051D
73d6: f0 e0 ldi r31, 0x00 ; 0
73d8: ee 0f add r30, r30
73da: ff 1f adc r31, r31
73dc: e2 5f subi r30, 0xF2 ; 242
73de: f7 4f sbci r31, 0xF7 ; 247
73e0: 80 81 ld r24, Z
73e2: 91 81 ldd r25, Z+1 ; 0x01
73e4: 97 ff sbrs r25, 7
73e6: 03 c0 rjmp .+6 ; 0x73ee <MotorRegler+0xb56>
73e8: 91 95 neg r25
73ea: 81 95 neg r24
73ec: 91 09 sbc r25, r1
73ee: 84 36 cpi r24, 0x64 ; 100
73f0: 91 05 cpc r25, r1
73f2: 2c f4 brge .+10 ; 0x73fe <MotorRegler+0xb66>
73f4: 21 11 cpse r18, r1
73f6: 03 c0 rjmp .+6 ; 0x73fe <MotorRegler+0xb66>
73f8: 10 92 98 03 sts 0x0398, r1
73fc: 18 c0 rjmp .+48 ; 0x742e <MotorRegler+0xb96>
73fe: 10 92 24 04 sts 0x0424, r1
7402: 10 92 25 04 sts 0x0425, r1
7406: 10 92 26 04 sts 0x0426, r1
740a: 10 92 27 04 sts 0x0427, r1
740e: 10 92 20 04 sts 0x0420, r1
7412: 10 92 21 04 sts 0x0421, r1
7416: 10 92 22 04 sts 0x0422, r1
741a: 10 92 23 04 sts 0x0423, r1
741e: 10 92 13 04 sts 0x0413, r1
7422: 10 92 12 04 sts 0x0412, r1
7426: 10 92 11 04 sts 0x0411, r1
742a: 10 92 10 04 sts 0x0410, r1
742e: 80 91 98 03 lds r24, 0x0398
7432: 8f 5f subi r24, 0xFF ; 255
7434: 80 93 98 03 sts 0x0398, r24
7438: 8b 3f cpi r24, 0xFB ; 251
743a: 88 f0 brcs .+34 ; 0x745e <MotorRegler+0xbc6>
743c: 10 92 01 04 sts 0x0401, r1
7440: 10 92 98 03 sts 0x0398, r1
7444: 10 92 cb 03 sts 0x03CB, r1
7448: 10 92 ca 03 sts 0x03CA, r1
744c: 80 91 c8 03 lds r24, 0x03C8
7450: 8f 71 andi r24, 0x1F ; 31
7452: 80 93 c8 03 sts 0x03C8, r24
7456: 86 e2 ldi r24, 0x26 ; 38
7458: 80 93 57 01 sts 0x0157, r24
745c: 0b c0 rjmp .+22 ; 0x7474 <MotorRegler+0xbdc>
745e: 84 36 cpi r24, 0x64 ; 100
7460: 49 f4 brne .+18 ; 0x7474 <MotorRegler+0xbdc>
7462: 8c ea ldi r24, 0xAC ; 172
7464: 9d e0 ldi r25, 0x0D ; 13
7466: 90 93 cc 04 sts 0x04CC, r25
746a: 80 93 cb 04 sts 0x04CB, r24
746e: 02 c0 rjmp .+4 ; 0x7474 <MotorRegler+0xbdc>
7470: 10 92 98 03 sts 0x0398, r1
7474: 80 91 c3 03 lds r24, 0x03C3
7478: 90 91 c4 03 lds r25, 0x03C4
747c: 88 3e cpi r24, 0xE8 ; 232
747e: 73 e0 ldi r23, 0x03 ; 3
7480: 97 07 cpc r25, r23
7482: 08 f0 brcs .+2 ; 0x7486 <MotorRegler+0xbee>
7484: 42 c0 rjmp .+132 ; 0x750a <MotorRegler+0xc72>
7486: 20 91 54 03 lds r18, 0x0354
748a: 30 91 55 03 lds r19, 0x0355
748e: 2b 36 cpi r18, 0x6B ; 107
7490: 3f 4f sbci r19, 0xFF ; 255
7492: 14 f0 brlt .+4 ; 0x7498 <MotorRegler+0xc00>
7494: 01 96 adiw r24, 0x01 ; 1
7496: 03 c0 rjmp .+6 ; 0x749e <MotorRegler+0xc06>
7498: 00 97 sbiw r24, 0x00 ; 0
749a: b9 f1 breq .+110 ; 0x750a <MotorRegler+0xc72>
749c: 01 97 sbiw r24, 0x01 ; 1
749e: 90 93 c4 03 sts 0x03C4, r25
74a2: 80 93 c3 03 sts 0x03C3, r24
74a6: 31 c0 rjmp .+98 ; 0x750a <MotorRegler+0xc72>
74a8: 10 92 9a 03 sts 0x039A, r1
74ac: 10 92 c4 03 sts 0x03C4, r1
74b0: 10 92 c3 03 sts 0x03C3, r1
74b4: 2a c0 rjmp .+84 ; 0x750a <MotorRegler+0xc72>
74b6: 8e 3e cpi r24, 0xEE ; 238
74b8: 92 40 sbci r25, 0x02 ; 2
74ba: 38 f1 brcs .+78 ; 0x750a <MotorRegler+0xc72>
74bc: 80 91 b8 08 lds r24, 0x08B8
74c0: 90 91 b9 08 lds r25, 0x08B9
74c4: 80 39 cpi r24, 0x90 ; 144
74c6: 91 40 sbci r25, 0x01 ; 1
74c8: 00 f5 brcc .+64 ; 0x750a <MotorRegler+0xc72>
74ca: 80 91 fc 03 lds r24, 0x03FC
74ce: 90 91 fd 03 lds r25, 0x03FD
74d2: a0 91 fe 03 lds r26, 0x03FE
74d6: b0 91 ff 03 lds r27, 0x03FF
74da: 8c 3d cpi r24, 0xDC ; 220
74dc: 95 40 sbci r25, 0x05 ; 5
74de: a1 05 cpc r26, r1
74e0: b1 05 cpc r27, r1
74e2: 9c f4 brge .+38 ; 0x750a <MotorRegler+0xc72>
74e4: 80 e3 ldi r24, 0x30 ; 48
74e6: 95 e7 ldi r25, 0x75 ; 117
74e8: 90 93 c4 03 sts 0x03C4, r25
74ec: 80 93 c3 03 sts 0x03C3, r24
74f0: 80 91 ca 03 lds r24, 0x03CA
74f4: 90 91 cb 03 lds r25, 0x03CB
74f8: 8a 3e cpi r24, 0xEA ; 234
74fa: 93 40 sbci r25, 0x03 ; 3
74fc: 30 f0 brcs .+12 ; 0x750a <MotorRegler+0xc72>
74fe: 89 ee ldi r24, 0xE9 ; 233
7500: 93 e0 ldi r25, 0x03 ; 3
7502: 90 93 cb 03 sts 0x03CB, r25
7506: 80 93 ca 03 sts 0x03CA, r24
750a: 80 91 93 02 lds r24, 0x0293
750e: 9f ef ldi r25, 0xFF ; 255
7510: 98 0f add r25, r24
7512: 90 93 93 02 sts 0x0293, r25
7516: 88 23 and r24, r24
7518: 21 f0 breq .+8 ; 0x7522 <MotorRegler+0xc8a>
751a: 80 91 c9 03 lds r24, 0x03C9
751e: 84 ff sbrs r24, 4
7520: 3f c3 rjmp .+1662 ; 0x7ba0 <MotorRegler+0x1308>
7522: 0e 94 13 31 call 0x6226 ; 0x6226 <ParameterZuordnung>
7526: 80 91 1c 05 lds r24, 0x051C
752a: 68 2e mov r6, r24
752c: 71 2c mov r7, r1
752e: 66 0c add r6, r6
7530: 77 1c adc r7, r7
7532: f3 01 movw r30, r6
7534: e2 5f subi r30, 0xF2 ; 242
7536: f7 4f sbci r31, 0xF7 ; 247
7538: a0 81 ld r26, Z
753a: b1 81 ldd r27, Z+1 ; 0x01
753c: 90 90 32 05 lds r9, 0x0532
7540: 69 2d mov r22, r9
7542: 70 e0 ldi r23, 0x00 ; 0
7544: f3 01 movw r30, r6
7546: ec 5a subi r30, 0xAC ; 172
7548: f7 4f sbci r31, 0xF7 ; 247
754a: 01 90 ld r0, Z+
754c: f0 81 ld r31, Z
754e: e0 2d mov r30, r0
7550: 40 91 33 05 lds r20, 0x0533
7554: 50 e0 ldi r21, 0x00 ; 0
7556: 80 91 96 03 lds r24, 0x0396
755a: 90 91 97 03 lds r25, 0x0397
755e: 9c 01 movw r18, r24
7560: 22 0f add r18, r18
7562: 33 1f adc r19, r19
7564: 28 0f add r18, r24
7566: 39 1f adc r19, r25
7568: a6 9f mul r26, r22
756a: c0 01 movw r24, r0
756c: a7 9f mul r26, r23
756e: 90 0d add r25, r0
7570: b6 9f mul r27, r22
7572: 90 0d add r25, r0
7574: 11 24 eor r1, r1
7576: 28 0f add r18, r24
7578: 39 1f adc r19, r25
757a: 37 ff sbrs r19, 7
757c: 02 c0 rjmp .+4 ; 0x7582 <MotorRegler+0xcea>
757e: 2d 5f subi r18, 0xFD ; 253
7580: 3f 4f sbci r19, 0xFF ; 255
7582: 35 95 asr r19
7584: 27 95 ror r18
7586: 35 95 asr r19
7588: 27 95 ror r18
758a: e4 9f mul r30, r20
758c: c0 01 movw r24, r0
758e: e5 9f mul r30, r21
7590: 90 0d add r25, r0
7592: f4 9f mul r31, r20
7594: 90 0d add r25, r0
7596: 11 24 eor r1, r1
7598: 28 0f add r18, r24
759a: 39 1f adc r19, r25
759c: 30 93 97 03 sts 0x0397, r19
75a0: 20 93 96 03 sts 0x0396, r18
75a4: 00 91 1d 05 lds r16, 0x051D
75a8: 10 e0 ldi r17, 0x00 ; 0
75aa: 00 0f add r16, r16
75ac: 11 1f adc r17, r17
75ae: f8 01 movw r30, r16
75b0: e2 5f subi r30, 0xF2 ; 242
75b2: f7 4f sbci r31, 0xF7 ; 247
75b4: e0 80 ld r14, Z
75b6: f1 80 ldd r15, Z+1 ; 0x01
75b8: f8 01 movw r30, r16
75ba: ec 5a subi r30, 0xAC ; 172
75bc: f7 4f sbci r31, 0xF7 ; 247
75be: a0 81 ld r26, Z
75c0: b1 81 ldd r27, Z+1 ; 0x01
75c2: e0 91 94 03 lds r30, 0x0394
75c6: f0 91 95 03 lds r31, 0x0395
75ca: cf 01 movw r24, r30
75cc: 88 0f add r24, r24
75ce: 99 1f adc r25, r25
75d0: 8e 0f add r24, r30
75d2: 9f 1f adc r25, r31
75d4: e6 9e mul r14, r22
75d6: f0 01 movw r30, r0
75d8: e7 9e mul r14, r23
75da: f0 0d add r31, r0
75dc: f6 9e mul r15, r22
75de: f0 0d add r31, r0
75e0: 11 24 eor r1, r1
75e2: 8e 0f add r24, r30
75e4: 9f 1f adc r25, r31
75e6: 97 fd sbrc r25, 7
75e8: 03 96 adiw r24, 0x03 ; 3
75ea: 95 95 asr r25
75ec: 87 95 ror r24
75ee: 95 95 asr r25
75f0: 87 95 ror r24
75f2: a4 9f mul r26, r20
75f4: b0 01 movw r22, r0
75f6: a5 9f mul r26, r21
75f8: 70 0d add r23, r0
75fa: b4 9f mul r27, r20
75fc: 70 0d add r23, r0
75fe: 11 24 eor r1, r1
7600: 86 0f add r24, r22
7602: 97 1f adc r25, r23
7604: 90 93 95 03 sts 0x0395, r25
7608: 80 93 94 03 sts 0x0394, r24
760c: 40 91 d6 03 lds r20, 0x03D6
7610: 44 23 and r20, r20
7612: b1 f0 breq .+44 ; 0x7640 <MotorRegler+0xda8>
7614: 37 ff sbrs r19, 7
7616: 02 c0 rjmp .+4 ; 0x761c <MotorRegler+0xd84>
7618: 2d 5f subi r18, 0xFD ; 253
761a: 3f 4f sbci r19, 0xFF ; 255
761c: 35 95 asr r19
761e: 27 95 ror r18
7620: 35 95 asr r19
7622: 27 95 ror r18
7624: 97 fd sbrc r25, 7
7626: 03 96 adiw r24, 0x03 ; 3
7628: 95 95 asr r25
762a: 87 95 ror r24
762c: 95 95 asr r25
762e: 87 95 ror r24
7630: e0 91 a5 02 lds r30, 0x02A5
7634: ff 27 eor r31, r31
7636: e7 fd sbrc r30, 7
7638: f0 95 com r31
763a: 60 91 bc 04 lds r22, 0x04BC
763e: 0f c0 rjmp .+30 ; 0x765e <MotorRegler+0xdc6>
7640: e0 91 7e 05 lds r30, 0x057E
7644: f0 e0 ldi r31, 0x00 ; 0
7646: e5 53 subi r30, 0x35 ; 53
7648: fd 4f sbci r31, 0xFD ; 253
764a: 46 81 ldd r20, Z+6 ; 0x06
764c: 40 93 a5 02 sts 0x02A5, r20
7650: 60 81 ld r22, Z
7652: 60 93 bc 04 sts 0x04BC, r22
7656: e4 2f mov r30, r20
7658: ff 27 eor r31, r31
765a: e7 fd sbrc r30, 7
765c: f0 95 com r31
765e: 77 27 eor r23, r23
7660: 67 fd sbrc r22, 7
7662: 70 95 com r23
7664: e2 9f mul r30, r18
7666: a0 01 movw r20, r0
7668: e3 9f mul r30, r19
766a: 50 0d add r21, r0
766c: f2 9f mul r31, r18
766e: 50 0d add r21, r0
7670: 11 24 eor r1, r1
7672: 68 9f mul r22, r24
7674: d0 01 movw r26, r0
7676: 69 9f mul r22, r25
7678: b0 0d add r27, r0
767a: 78 9f mul r23, r24
767c: b0 0d add r27, r0
767e: 11 24 eor r1, r1
7680: 4a 0f add r20, r26
7682: 5b 1f adc r21, r27
7684: 57 ff sbrs r21, 7
7686: 02 c0 rjmp .+4 ; 0x768c <MotorRegler+0xdf4>
7688: 49 5f subi r20, 0xF9 ; 249
768a: 5f 4f sbci r21, 0xFF ; 255
768c: a3 e0 ldi r26, 0x03 ; 3
768e: 55 95 asr r21
7690: 47 95 ror r20
7692: aa 95 dec r26
7694: e1 f7 brne .-8 ; 0x768e <MotorRegler+0xdf6>
7696: 50 93 13 04 sts 0x0413, r21
769a: 40 93 12 04 sts 0x0412, r20
769e: e8 9f mul r30, r24
76a0: a0 01 movw r20, r0
76a2: e9 9f mul r30, r25
76a4: 50 0d add r21, r0
76a6: f8 9f mul r31, r24
76a8: 50 0d add r21, r0
76aa: 11 24 eor r1, r1
76ac: 62 9f mul r22, r18
76ae: c0 01 movw r24, r0
76b0: 63 9f mul r22, r19
76b2: 90 0d add r25, r0
76b4: 72 9f mul r23, r18
76b6: 90 0d add r25, r0
76b8: 11 24 eor r1, r1
76ba: 48 1b sub r20, r24
76bc: 59 0b sbc r21, r25
76be: 57 ff sbrs r21, 7
76c0: 02 c0 rjmp .+4 ; 0x76c6 <MotorRegler+0xe2e>
76c2: 49 5f subi r20, 0xF9 ; 249
76c4: 5f 4f sbci r21, 0xFF ; 255
76c6: 83 e0 ldi r24, 0x03 ; 3
76c8: 55 95 asr r21
76ca: 47 95 ror r20
76cc: 8a 95 dec r24
76ce: e1 f7 brne .-8 ; 0x76c8 <MotorRegler+0xe30>
76d0: 50 93 11 04 sts 0x0411, r21
76d4: 40 93 10 04 sts 0x0410, r20
76d8: e0 91 1f 05 lds r30, 0x051F
76dc: f0 e0 ldi r31, 0x00 ; 0
76de: ee 0f add r30, r30
76e0: ff 1f adc r31, r31
76e2: e2 5f subi r30, 0xF2 ; 242
76e4: f7 4f sbci r31, 0xF7 ; 247
76e6: 20 81 ld r18, Z
76e8: 31 81 ldd r19, Z+1 ; 0x01
76ea: 88 27 eor r24, r24
76ec: 99 27 eor r25, r25
76ee: 82 1b sub r24, r18
76f0: 93 0b sbc r25, r19
76f2: 85 30 cpi r24, 0x05 ; 5
76f4: 91 05 cpc r25, r1
76f6: 1c f0 brlt .+6 ; 0x76fe <MotorRegler+0xe66>
76f8: 8c ef ldi r24, 0xFC ; 252
76fa: 9f ef ldi r25, 0xFF ; 255
76fc: 05 c0 rjmp .+10 ; 0x7708 <MotorRegler+0xe70>
76fe: 8c 3f cpi r24, 0xFC ; 252
7700: 9f 4f sbci r25, 0xFF ; 255
7702: 4c f4 brge .+18 ; 0x7716 <MotorRegler+0xe7e>
7704: 84 e0 ldi r24, 0x04 ; 4
7706: 90 e0 ldi r25, 0x00 ; 0
7708: 82 1b sub r24, r18
770a: 93 0b sbc r25, r19
770c: 90 93 0f 04 sts 0x040F, r25
7710: 80 93 0e 04 sts 0x040E, r24
7714: 04 c0 rjmp .+8 ; 0x771e <MotorRegler+0xe86>
7716: 10 92 0f 04 sts 0x040F, r1
771a: 10 92 0e 04 sts 0x040E, r1
771e: 80 91 c3 03 lds r24, 0x03C3
7722: 90 91 c4 03 lds r25, 0x03C4
7726: 30 91 12 04 lds r19, 0x0412
772a: 20 91 13 04 lds r18, 0x0413
772e: 70 91 10 04 lds r23, 0x0410
7732: 60 91 11 04 lds r22, 0x0411
7736: 81 30 cpi r24, 0x01 ; 1
7738: 92 40 sbci r25, 0x02 ; 2
773a: 58 f1 brcs .+86 ; 0x7792 <MotorRegler+0xefa>
773c: 83 2f mov r24, r19
773e: 92 2f mov r25, r18
7740: 97 fd sbrc r25, 7
7742: 07 96 adiw r24, 0x07 ; 7
7744: b3 e0 ldi r27, 0x03 ; 3
7746: 95 95 asr r25
7748: 87 95 ror r24
774a: ba 95 dec r27
774c: e1 f7 brne .-8 ; 0x7746 <MotorRegler+0xeae>
774e: 90 93 13 04 sts 0x0413, r25
7752: 80 93 12 04 sts 0x0412, r24
7756: 87 2f mov r24, r23
7758: 96 2f mov r25, r22
775a: 97 fd sbrc r25, 7
775c: 07 96 adiw r24, 0x07 ; 7
775e: a3 e0 ldi r26, 0x03 ; 3
7760: 95 95 asr r25
7762: 87 95 ror r24
7764: aa 95 dec r26
7766: e1 f7 brne .-8 ; 0x7760 <MotorRegler+0xec8>
7768: 90 93 11 04 sts 0x0411, r25
776c: 80 93 10 04 sts 0x0410, r24
7770: 10 92 24 04 sts 0x0424, r1
7774: 10 92 25 04 sts 0x0425, r1
7778: 10 92 26 04 sts 0x0426, r1
777c: 10 92 27 04 sts 0x0427, r1
7780: 10 92 20 04 sts 0x0420, r1
7784: 10 92 21 04 sts 0x0421, r1
7788: 10 92 22 04 sts 0x0422, r1
778c: 10 92 23 04 sts 0x0423, r1
7790: 3f c0 rjmp .+126 ; 0x7810 <MotorRegler+0xf78>
7792: 40 91 65 04 lds r20, 0x0465
7796: 44 23 and r20, r20
7798: d9 f1 breq .+118 ; 0x7810 <MotorRegler+0xf78>
779a: 50 e0 ldi r21, 0x00 ; 0
779c: 83 2f mov r24, r19
779e: 92 2f mov r25, r18
77a0: 97 fd sbrc r25, 7
77a2: 07 96 adiw r24, 0x07 ; 7
77a4: f3 e0 ldi r31, 0x03 ; 3
77a6: 95 95 asr r25
77a8: 87 95 ror r24
77aa: fa 95 dec r31
77ac: e1 f7 brne .-8 ; 0x77a6 <MotorRegler+0xf0e>
77ae: 48 9f mul r20, r24
77b0: 90 01 movw r18, r0
77b2: 49 9f mul r20, r25
77b4: 30 0d add r19, r0
77b6: 58 9f mul r21, r24
77b8: 30 0d add r19, r0
77ba: 11 24 eor r1, r1
77bc: 37 ff sbrs r19, 7
77be: 02 c0 rjmp .+4 ; 0x77c4 <MotorRegler+0xf2c>
77c0: 21 5f subi r18, 0xF1 ; 241
77c2: 3f 4f sbci r19, 0xFF ; 255
77c4: e4 e0 ldi r30, 0x04 ; 4
77c6: 35 95 asr r19
77c8: 27 95 ror r18
77ca: ea 95 dec r30
77cc: e1 f7 brne .-8 ; 0x77c6 <MotorRegler+0xf2e>
77ce: 30 93 13 04 sts 0x0413, r19
77d2: 20 93 12 04 sts 0x0412, r18
77d6: 87 2f mov r24, r23
77d8: 96 2f mov r25, r22
77da: 97 fd sbrc r25, 7
77dc: 07 96 adiw r24, 0x07 ; 7
77de: 23 e0 ldi r18, 0x03 ; 3
77e0: 95 95 asr r25
77e2: 87 95 ror r24
77e4: 2a 95 dec r18
77e6: e1 f7 brne .-8 ; 0x77e0 <MotorRegler+0xf48>
77e8: 48 9f mul r20, r24
77ea: 90 01 movw r18, r0
77ec: 49 9f mul r20, r25
77ee: 30 0d add r19, r0
77f0: 58 9f mul r21, r24
77f2: 30 0d add r19, r0
77f4: 11 24 eor r1, r1
77f6: 37 ff sbrs r19, 7
77f8: 02 c0 rjmp .+4 ; 0x77fe <MotorRegler+0xf66>
77fa: 21 5f subi r18, 0xF1 ; 241
77fc: 3f 4f sbci r19, 0xFF ; 255
77fe: b4 e0 ldi r27, 0x04 ; 4
7800: 35 95 asr r19
7802: 27 95 ror r18
7804: ba 95 dec r27
7806: e1 f7 brne .-8 ; 0x7800 <MotorRegler+0xf68>
7808: 30 93 11 04 sts 0x0411, r19
780c: 20 93 10 04 sts 0x0410, r18
7810: c0 90 12 04 lds r12, 0x0412
7814: d0 90 13 04 lds r13, 0x0413
7818: 80 91 68 04 lds r24, 0x0468
781c: 90 91 69 04 lds r25, 0x0469
7820: c8 1a sub r12, r24
7822: d9 0a sbc r13, r25
7824: d0 92 13 04 sts 0x0413, r13
7828: c0 92 12 04 sts 0x0412, r12
782c: e0 90 10 04 lds r14, 0x0410
7830: f0 90 11 04 lds r15, 0x0411
7834: 80 91 66 04 lds r24, 0x0466
7838: 90 91 67 04 lds r25, 0x0467
783c: e8 1a sub r14, r24
783e: f9 0a sbc r15, r25
7840: f0 92 11 04 sts 0x0411, r15
7844: e0 92 10 04 sts 0x0410, r14
7848: e0 91 1e 05 lds r30, 0x051E
784c: f0 e0 ldi r31, 0x00 ; 0
784e: ee 0f add r30, r30
7850: ff 1f adc r31, r31
7852: e2 5f subi r30, 0xF2 ; 242
7854: f7 4f sbci r31, 0xF7 ; 247
7856: a0 80 ld r10, Z
7858: b1 80 ldd r11, Z+1 ; 0x01
785a: 6f e7 ldi r22, 0x7F ; 127
785c: a6 0e add r10, r22
785e: b1 1c adc r11, r1
7860: b0 92 0d 04 sts 0x040D, r11
7864: a0 92 0c 04 sts 0x040C, r10
7868: 60 91 34 01 lds r22, 0x0134
786c: 70 e0 ldi r23, 0x00 ; 0
786e: 80 e0 ldi r24, 0x00 ; 0
7870: 90 e0 ldi r25, 0x00 ; 0
7872: 0e 94 18 9a call 0x13430 ; 0x13430 <__floatsisf>
7876: 20 e0 ldi r18, 0x00 ; 0
7878: 30 e0 ldi r19, 0x00 ; 0
787a: 40 e2 ldi r20, 0x20 ; 32
787c: 51 e4 ldi r21, 0x41 ; 65
787e: 0e 94 86 99 call 0x1330c ; 0x1330c <__addsf3>
7882: 0e 94 ea 99 call 0x133d4 ; 0x133d4 <__fixunssfsi>
7886: 60 93 49 06 sts 0x0649, r22
788a: 80 91 33 01 lds r24, 0x0133
788e: 80 93 1f 06 sts 0x061F, r24
7892: 60 91 32 01 lds r22, 0x0132
7896: 70 e0 ldi r23, 0x00 ; 0
7898: 80 e0 ldi r24, 0x00 ; 0
789a: 90 e0 ldi r25, 0x00 ; 0
789c: 0e 94 18 9a call 0x13430 ; 0x13430 <__floatsisf>
78a0: 20 e0 ldi r18, 0x00 ; 0
78a2: 30 e0 ldi r19, 0x00 ; 0
78a4: 40 e2 ldi r20, 0x20 ; 32
78a6: 51 e4 ldi r21, 0x41 ; 65
78a8: 0e 94 86 99 call 0x1330c ; 0x1330c <__addsf3>
78ac: 0e 94 ea 99 call 0x133d4 ; 0x133d4 <__fixunssfsi>
78b0: 60 93 00 06 sts 0x0600, r22
78b4: 80 91 31 01 lds r24, 0x0131
78b8: 80 93 0e 06 sts 0x060E, r24
78bc: 80 91 66 0a lds r24, 0x0A66
78c0: 80 ff sbrs r24, 0
78c2: 3e c0 rjmp .+124 ; 0x7940 <MotorRegler+0x10a8>
78c4: 80 91 52 06 lds r24, 0x0652
78c8: 81 38 cpi r24, 0x81 ; 129
78ca: d0 f1 brcs .+116 ; 0x7940 <MotorRegler+0x10a8>
78cc: 20 91 5f 0a lds r18, 0x0A5F
78d0: 79 2d mov r23, r9
78d2: 27 03 mulsu r18, r23
78d4: c0 01 movw r24, r0
78d6: 11 24 eor r1, r1
78d8: 8c 0d add r24, r12
78da: 9d 1d adc r25, r13
78dc: 90 93 13 04 sts 0x0413, r25
78e0: 80 93 12 04 sts 0x0412, r24
78e4: 20 91 60 0a lds r18, 0x0A60
78e8: 27 03 mulsu r18, r23
78ea: c0 01 movw r24, r0
78ec: 11 24 eor r1, r1
78ee: 8e 0d add r24, r14
78f0: 9f 1d adc r25, r15
78f2: 90 93 11 04 sts 0x0411, r25
78f6: 80 93 10 04 sts 0x0410, r24
78fa: 20 91 61 0a lds r18, 0x0A61
78fe: 80 91 0e 04 lds r24, 0x040E
7902: 90 91 0f 04 lds r25, 0x040F
7906: 82 0f add r24, r18
7908: 91 1d adc r25, r1
790a: 27 fd sbrc r18, 7
790c: 9a 95 dec r25
790e: 90 93 0f 04 sts 0x040F, r25
7912: 80 93 0e 04 sts 0x040E, r24
7916: 20 91 63 0a lds r18, 0x0A63
791a: 30 91 2d 05 lds r19, 0x052D
791e: 23 03 mulsu r18, r19
7920: c0 01 movw r24, r0
7922: 11 24 eor r1, r1
7924: 90 93 26 01 sts 0x0126, r25
7928: 80 93 25 01 sts 0x0125, r24
792c: 80 91 62 0a lds r24, 0x0A62
7930: 90 e0 ldi r25, 0x00 ; 0
7932: 8a 15 cp r24, r10
7934: 9b 05 cpc r25, r11
7936: 24 f4 brge .+8 ; 0x7940 <MotorRegler+0x10a8>
7938: 90 93 0d 04 sts 0x040D, r25
793c: 80 93 0c 04 sts 0x040C, r24
7940: 80 91 0c 04 lds r24, 0x040C
7944: 90 91 0d 04 lds r25, 0x040D
7948: 97 ff sbrs r25, 7
794a: 04 c0 rjmp .+8 ; 0x7954 <MotorRegler+0x10bc>
794c: 10 92 0d 04 sts 0x040D, r1
7950: 10 92 0c 04 sts 0x040C, r1
7954: 80 91 39 06 lds r24, 0x0639
7958: 82 fd sbrc r24, 2
795a: 10 92 1f 06 sts 0x061F, r1
795e: 80 91 12 04 lds r24, 0x0412
7962: 90 91 13 04 lds r25, 0x0413
7966: 40 91 ce 03 lds r20, 0x03CE
796a: 50 91 cf 03 lds r21, 0x03CF
796e: 9c 01 movw r18, r24
7970: 97 ff sbrs r25, 7
7972: 02 c0 rjmp .+4 ; 0x7978 <MotorRegler+0x10e0>
7974: 2d 5f subi r18, 0xFD ; 253
7976: 3f 4f sbci r19, 0xFF ; 255
7978: 35 95 asr r19
797a: 27 95 ror r18
797c: 35 95 asr r19
797e: 27 95 ror r18
7980: 37 ff sbrs r19, 7
7982: 03 c0 rjmp .+6 ; 0x798a <MotorRegler+0x10f2>
7984: 31 95 neg r19
7986: 21 95 neg r18
7988: 31 09 sbc r19, r1
798a: 42 17 cp r20, r18
798c: 53 07 cpc r21, r19
798e: 9c f4 brge .+38 ; 0x79b6 <MotorRegler+0x111e>
7990: 97 ff sbrs r25, 7
7992: 03 c0 rjmp .+6 ; 0x799a <MotorRegler+0x1102>
7994: 91 95 neg r25
7996: 81 95 neg r24
7998: 91 09 sbc r25, r1
799a: 95 95 asr r25
799c: 87 95 ror r24
799e: 95 95 asr r25
79a0: 87 95 ror r24
79a2: 85 36 cpi r24, 0x65 ; 101
79a4: 91 05 cpc r25, r1
79a6: 14 f0 brlt .+4 ; 0x79ac <MotorRegler+0x1114>
79a8: 84 e6 ldi r24, 0x64 ; 100
79aa: 90 e0 ldi r25, 0x00 ; 0
79ac: 90 93 cf 03 sts 0x03CF, r25
79b0: 80 93 ce 03 sts 0x03CE, r24
79b4: 06 c0 rjmp .+12 ; 0x79c2 <MotorRegler+0x112a>
79b6: 41 50 subi r20, 0x01 ; 1
79b8: 51 09 sbc r21, r1
79ba: 50 93 cf 03 sts 0x03CF, r21
79be: 40 93 ce 03 sts 0x03CE, r20
79c2: 80 91 10 04 lds r24, 0x0410
79c6: 90 91 11 04 lds r25, 0x0411
79ca: 40 91 cc 03 lds r20, 0x03CC
79ce: 50 91 cd 03 lds r21, 0x03CD
79d2: 9c 01 movw r18, r24
79d4: 97 ff sbrs r25, 7
79d6: 02 c0 rjmp .+4 ; 0x79dc <MotorRegler+0x1144>
79d8: 2d 5f subi r18, 0xFD ; 253
79da: 3f 4f sbci r19, 0xFF ; 255
79dc: 35 95 asr r19
79de: 27 95 ror r18
79e0: 35 95 asr r19
79e2: 27 95 ror r18
79e4: 37 ff sbrs r19, 7
79e6: 03 c0 rjmp .+6 ; 0x79ee <MotorRegler+0x1156>
79e8: 31 95 neg r19
79ea: 21 95 neg r18
79ec: 31 09 sbc r19, r1
79ee: 42 17 cp r20, r18
79f0: 53 07 cpc r21, r19
79f2: 9c f4 brge .+38 ; 0x7a1a <MotorRegler+0x1182>
79f4: 97 ff sbrs r25, 7
79f6: 03 c0 rjmp .+6 ; 0x79fe <MotorRegler+0x1166>
79f8: 91 95 neg r25
79fa: 81 95 neg r24
79fc: 91 09 sbc r25, r1
79fe: 95 95 asr r25
7a00: 87 95 ror r24
7a02: 95 95 asr r25
7a04: 87 95 ror r24
7a06: 85 36 cpi r24, 0x65 ; 101
7a08: 91 05 cpc r25, r1
7a0a: 14 f0 brlt .+4 ; 0x7a10 <MotorRegler+0x1178>
7a0c: 84 e6 ldi r24, 0x64 ; 100
7a0e: 90 e0 ldi r25, 0x00 ; 0
7a10: 90 93 cd 03 sts 0x03CD, r25
7a14: 80 93 cc 03 sts 0x03CC, r24
7a18: 06 c0 rjmp .+12 ; 0x7a26 <MotorRegler+0x118e>
7a1a: 41 50 subi r20, 0x01 ; 1
7a1c: 51 09 sbc r21, r1
7a1e: 50 93 cd 03 sts 0x03CD, r21
7a22: 40 93 cc 03 sts 0x03CC, r20
7a26: 80 91 c9 03 lds r24, 0x03C9
7a2a: 84 ff sbrs r24, 4
7a2c: 08 c0 rjmp .+16 ; 0x7a3e <MotorRegler+0x11a6>
7a2e: 10 92 cf 03 sts 0x03CF, r1
7a32: 10 92 ce 03 sts 0x03CE, r1
7a36: 10 92 cd 03 sts 0x03CD, r1
7a3a: 10 92 cc 03 sts 0x03CC, r1
7a3e: f8 01 movw r30, r16
7a40: e2 5f subi r30, 0xF2 ; 242
7a42: f7 4f sbci r31, 0xF7 ; 247
7a44: 20 81 ld r18, Z
7a46: 31 81 ldd r19, Z+1 ; 0x01
7a48: 80 91 57 05 lds r24, 0x0557
7a4c: 90 e0 ldi r25, 0x00 ; 0
7a4e: 82 17 cp r24, r18
7a50: 93 07 cpc r25, r19
7a52: 44 f4 brge .+16 ; 0x7a64 <MotorRegler+0x11cc>
7a54: 20 91 93 05 lds r18, 0x0593
7a58: 22 ff sbrs r18, 2
7a5a: 04 c0 rjmp .+8 ; 0x7a64 <MotorRegler+0x11cc>
7a5c: 21 e0 ldi r18, 0x01 ; 1
7a5e: 20 93 e3 03 sts 0x03E3, r18
7a62: 0f c0 rjmp .+30 ; 0x7a82 <MotorRegler+0x11ea>
7a64: f8 01 movw r30, r16
7a66: e2 5f subi r30, 0xF2 ; 242
7a68: f7 4f sbci r31, 0xF7 ; 247
7a6a: 40 81 ld r20, Z
7a6c: 51 81 ldd r21, Z+1 ; 0x01
7a6e: 20 91 58 05 lds r18, 0x0558
7a72: dc 01 movw r26, r24
7a74: a2 1b sub r26, r18
7a76: b1 09 sbc r27, r1
7a78: 4a 17 cp r20, r26
7a7a: 5b 07 cpc r21, r27
7a7c: 14 f4 brge .+4 ; 0x7a82 <MotorRegler+0x11ea>
7a7e: 10 92 e3 03 sts 0x03E3, r1
7a82: f8 01 movw r30, r16
7a84: e2 5f subi r30, 0xF2 ; 242
7a86: f7 4f sbci r31, 0xF7 ; 247
7a88: 20 81 ld r18, Z
7a8a: 31 81 ldd r19, Z+1 ; 0x01
7a8c: 44 27 eor r20, r20
7a8e: 55 27 eor r21, r21
7a90: 48 1b sub r20, r24
7a92: 59 0b sbc r21, r25
7a94: 24 17 cp r18, r20
7a96: 35 07 cpc r19, r21
7a98: 44 f4 brge .+16 ; 0x7aaa <MotorRegler+0x1212>
7a9a: 20 91 93 05 lds r18, 0x0593
7a9e: 23 ff sbrs r18, 3
7aa0: 04 c0 rjmp .+8 ; 0x7aaa <MotorRegler+0x1212>
7aa2: 21 e0 ldi r18, 0x01 ; 1
7aa4: 20 93 e2 03 sts 0x03E2, r18
7aa8: 13 c0 rjmp .+38 ; 0x7ad0 <MotorRegler+0x1238>
7aaa: 20 91 e2 03 lds r18, 0x03E2
7aae: 22 23 and r18, r18
7ab0: 79 f0 breq .+30 ; 0x7ad0 <MotorRegler+0x1238>
7ab2: f8 01 movw r30, r16
7ab4: e2 5f subi r30, 0xF2 ; 242
7ab6: f7 4f sbci r31, 0xF7 ; 247
7ab8: 60 81 ld r22, Z
7aba: 71 81 ldd r23, Z+1 ; 0x01
7abc: 20 91 58 05 lds r18, 0x0558
7ac0: 30 e0 ldi r19, 0x00 ; 0
7ac2: 28 1b sub r18, r24
7ac4: 39 0b sbc r19, r25
7ac6: 26 17 cp r18, r22
7ac8: 37 07 cpc r19, r23
7aca: 14 f4 brge .+4 ; 0x7ad0 <MotorRegler+0x1238>
7acc: 10 92 e2 03 sts 0x03E2, r1
7ad0: f3 01 movw r30, r6
7ad2: e2 5f subi r30, 0xF2 ; 242
7ad4: f7 4f sbci r31, 0xF7 ; 247
7ad6: 20 81 ld r18, Z
7ad8: 31 81 ldd r19, Z+1 ; 0x01
7ada: 82 17 cp r24, r18
7adc: 93 07 cpc r25, r19
7ade: 44 f4 brge .+16 ; 0x7af0 <MotorRegler+0x1258>
7ae0: 20 91 93 05 lds r18, 0x0593
7ae4: 20 ff sbrs r18, 0
7ae6: 04 c0 rjmp .+8 ; 0x7af0 <MotorRegler+0x1258>
7ae8: 21 e0 ldi r18, 0x01 ; 1
7aea: 20 93 e0 03 sts 0x03E0, r18
7aee: 13 c0 rjmp .+38 ; 0x7b16 <MotorRegler+0x127e>
7af0: 20 91 e0 03 lds r18, 0x03E0
7af4: 22 23 and r18, r18
7af6: 79 f0 breq .+30 ; 0x7b16 <MotorRegler+0x127e>
7af8: f3 01 movw r30, r6
7afa: e2 5f subi r30, 0xF2 ; 242
7afc: f7 4f sbci r31, 0xF7 ; 247
7afe: 60 81 ld r22, Z
7b00: 71 81 ldd r23, Z+1 ; 0x01
7b02: 20 91 58 05 lds r18, 0x0558
7b06: fc 01 movw r30, r24
7b08: e2 1b sub r30, r18
7b0a: f1 09 sbc r31, r1
7b0c: 6e 17 cp r22, r30
7b0e: 7f 07 cpc r23, r31
7b10: 14 f4 brge .+4 ; 0x7b16 <MotorRegler+0x127e>
7b12: 10 92 e0 03 sts 0x03E0, r1
7b16: f3 01 movw r30, r6
7b18: e2 5f subi r30, 0xF2 ; 242
7b1a: f7 4f sbci r31, 0xF7 ; 247
7b1c: 20 81 ld r18, Z
7b1e: 31 81 ldd r19, Z+1 ; 0x01
7b20: 24 17 cp r18, r20
7b22: 35 07 cpc r19, r21
7b24: 44 f4 brge .+16 ; 0x7b36 <MotorRegler+0x129e>
7b26: 20 91 93 05 lds r18, 0x0593
7b2a: 21 ff sbrs r18, 1
7b2c: 04 c0 rjmp .+8 ; 0x7b36 <MotorRegler+0x129e>
7b2e: 81 e0 ldi r24, 0x01 ; 1
7b30: 80 93 e1 03 sts 0x03E1, r24
7b34: 13 c0 rjmp .+38 ; 0x7b5c <MotorRegler+0x12c4>
7b36: 20 91 e1 03 lds r18, 0x03E1
7b3a: 22 23 and r18, r18
7b3c: 79 f0 breq .+30 ; 0x7b5c <MotorRegler+0x12c4>
7b3e: f3 01 movw r30, r6
7b40: e2 5f subi r30, 0xF2 ; 242
7b42: f7 4f sbci r31, 0xF7 ; 247
7b44: 40 81 ld r20, Z
7b46: 51 81 ldd r21, Z+1 ; 0x01
7b48: 20 91 58 05 lds r18, 0x0558
7b4c: 30 e0 ldi r19, 0x00 ; 0
7b4e: 28 1b sub r18, r24
7b50: 39 0b sbc r19, r25
7b52: 24 17 cp r18, r20
7b54: 35 07 cpc r19, r21
7b56: 14 f4 brge .+4 ; 0x7b5c <MotorRegler+0x12c4>
7b58: 10 92 e1 03 sts 0x03E1, r1
7b5c: 80 91 e3 03 lds r24, 0x03E3
7b60: 81 11 cpse r24, r1
7b62: 04 c0 rjmp .+8 ; 0x7b6c <MotorRegler+0x12d4>
7b64: 80 91 e2 03 lds r24, 0x03E2
7b68: 88 23 and r24, r24
7b6a: 21 f0 breq .+8 ; 0x7b74 <MotorRegler+0x12dc>
7b6c: 81 e0 ldi r24, 0x01 ; 1
7b6e: 80 93 e4 03 sts 0x03E4, r24
7b72: 02 c0 rjmp .+4 ; 0x7b78 <MotorRegler+0x12e0>
7b74: 10 92 e4 03 sts 0x03E4, r1
7b78: 80 91 e0 03 lds r24, 0x03E0
7b7c: 81 11 cpse r24, r1
7b7e: 04 c0 rjmp .+8 ; 0x7b88 <MotorRegler+0x12f0>
7b80: 80 91 e1 03 lds r24, 0x03E1
7b84: 88 23 and r24, r24
7b86: 51 f0 breq .+20 ; 0x7b9c <MotorRegler+0x1304>
7b88: 81 e0 ldi r24, 0x01 ; 1
7b8a: 80 93 e5 03 sts 0x03E5, r24
7b8e: 10 92 e4 03 sts 0x03E4, r1
7b92: 10 92 e3 03 sts 0x03E3, r1
7b96: 10 92 e2 03 sts 0x03E2, r1
7b9a: 02 c0 rjmp .+4 ; 0x7ba0 <MotorRegler+0x1308>
7b9c: 10 92 e5 03 sts 0x03E5, r1
7ba0: 80 91 e4 03 lds r24, 0x03E4
7ba4: 81 11 cpse r24, r1
7ba6: 04 c0 rjmp .+8 ; 0x7bb0 <MotorRegler+0x1318>
7ba8: 80 91 e5 03 lds r24, 0x03E5
7bac: 88 23 and r24, r24
7bae: 69 f0 breq .+26 ; 0x7bca <MotorRegler+0x1332>
7bb0: 80 91 56 05 lds r24, 0x0556
7bb4: 90 e0 ldi r25, 0x00 ; 0
7bb6: 29 81 ldd r18, Y+1 ; 0x01
7bb8: 3a 81 ldd r19, Y+2 ; 0x02
7bba: 82 17 cp r24, r18
7bbc: 93 07 cpc r25, r19
7bbe: 14 f4 brge .+4 ; 0x7bc4 <MotorRegler+0x132c>
7bc0: 9a 83 std Y+2, r25 ; 0x02
7bc2: 89 83 std Y+1, r24 ; 0x01
7bc4: 81 e0 ldi r24, 0x01 ; 1
7bc6: 80 93 18 04 sts 0x0418, r24
7bca: 80 91 c8 03 lds r24, 0x03C8
7bce: 82 ff sbrs r24, 2
7bd0: 31 c0 rjmp .+98 ; 0x7c34 <MotorRegler+0x139c>
7bd2: 80 91 68 04 lds r24, 0x0468
7bd6: 90 91 69 04 lds r25, 0x0469
7bda: 91 95 neg r25
7bdc: 81 95 neg r24
7bde: 91 09 sbc r25, r1
7be0: 90 93 13 04 sts 0x0413, r25
7be4: 80 93 12 04 sts 0x0412, r24
7be8: 80 91 66 04 lds r24, 0x0466
7bec: 90 91 67 04 lds r25, 0x0467
7bf0: 91 95 neg r25
7bf2: 81 95 neg r24
7bf4: 91 09 sbc r25, r1
7bf6: 90 93 11 04 sts 0x0411, r25
7bfa: 80 93 10 04 sts 0x0410, r24
7bfe: 80 91 40 01 lds r24, 0x0140
7c02: 90 91 41 01 lds r25, 0x0141
7c06: 90 93 0d 04 sts 0x040D, r25
7c0a: 80 93 0c 04 sts 0x040C, r24
7c0e: 10 92 0f 04 sts 0x040F, r1
7c12: 10 92 0e 04 sts 0x040E, r1
7c16: 80 91 39 06 lds r24, 0x0639
7c1a: 8b 77 andi r24, 0x7B ; 123
7c1c: 8b 66 ori r24, 0x6B ; 107
7c1e: 80 93 39 06 sts 0x0639, r24
7c22: 80 91 1d 06 lds r24, 0x061D
7c26: 8c 7b andi r24, 0xBC ; 188
7c28: 80 93 1d 06 sts 0x061D, r24
7c2c: 88 ec ldi r24, 0xC8 ; 200
7c2e: 80 93 df 03 sts 0x03DF, r24
7c32: 1e c0 rjmp .+60 ; 0x7c70 <MotorRegler+0x13d8>
7c34: 80 91 c9 03 lds r24, 0x03C9
7c38: 84 ff sbrs r24, 4
7c3a: 1a c0 rjmp .+52 ; 0x7c70 <MotorRegler+0x13d8>
7c3c: 10 92 0f 04 sts 0x040F, r1
7c40: 10 92 0e 04 sts 0x040E, r1
7c44: 10 92 13 04 sts 0x0413, r1
7c48: 10 92 12 04 sts 0x0412, r1
7c4c: 10 92 11 04 sts 0x0411, r1
7c50: 10 92 10 04 sts 0x0410, r1
7c54: 9a e5 ldi r25, 0x5A ; 90
7c56: 90 93 49 06 sts 0x0649, r25
7c5a: 88 e7 ldi r24, 0x78 ; 120
7c5c: 80 93 1f 06 sts 0x061F, r24
7c60: 90 93 00 06 sts 0x0600, r25
7c64: 80 93 0e 06 sts 0x060E, r24
7c68: 10 92 e4 03 sts 0x03E4, r1
7c6c: 10 92 e5 03 sts 0x03E5, r1
7c70: 40 90 40 04 lds r4, 0x0440
7c74: 50 90 41 04 lds r5, 0x0441
7c78: 60 90 42 04 lds r6, 0x0442
7c7c: 70 90 43 04 lds r7, 0x0443
7c80: 80 91 11 06 lds r24, 0x0611
7c84: 90 91 12 06 lds r25, 0x0612
7c88: a0 91 13 06 lds r26, 0x0613
7c8c: b0 91 14 06 lds r27, 0x0614
7c90: 84 0d add r24, r4
7c92: 95 1d adc r25, r5
7c94: a6 1d adc r26, r6
7c96: b7 1d adc r27, r7
7c98: 80 93 11 06 sts 0x0611, r24
7c9c: 90 93 12 06 sts 0x0612, r25
7ca0: a0 93 13 06 sts 0x0613, r26
7ca4: b0 93 14 06 sts 0x0614, r27
7ca8: 40 91 3c 04 lds r20, 0x043C
7cac: 50 91 3d 04 lds r21, 0x043D
7cb0: 60 91 3e 04 lds r22, 0x043E
7cb4: 70 91 3f 04 lds r23, 0x043F
7cb8: 4b 83 std Y+3, r20 ; 0x03
7cba: 5c 83 std Y+4, r21 ; 0x04
7cbc: 6d 83 std Y+5, r22 ; 0x05
7cbe: 7e 83 std Y+6, r23 ; 0x06
7cc0: 80 91 19 06 lds r24, 0x0619
7cc4: 90 91 1a 06 lds r25, 0x061A
7cc8: a0 91 1b 06 lds r26, 0x061B
7ccc: b0 91 1c 06 lds r27, 0x061C
7cd0: 84 0f add r24, r20
7cd2: 95 1f adc r25, r21
7cd4: a6 1f adc r26, r22
7cd6: b7 1f adc r27, r23
7cd8: 80 93 19 06 sts 0x0619, r24
7cdc: 90 93 1a 06 sts 0x061A, r25
7ce0: a0 93 1b 06 sts 0x061B, r26
7ce4: b0 93 1c 06 sts 0x061C, r27
7ce8: 50 91 e5 03 lds r21, 0x03E5
7cec: 5f 83 std Y+7, r21 ; 0x07
7cee: 60 91 e4 03 lds r22, 0x03E4
7cf2: 6d 87 std Y+13, r22 ; 0x0d
7cf4: 51 11 cpse r21, r1
7cf6: 02 c0 rjmp .+4 ; 0x7cfc <MotorRegler+0x1464>
7cf8: 66 23 and r22, r22
7cfa: 11 f1 breq .+68 ; 0x7d40 <MotorRegler+0x14a8>
7cfc: 10 92 11 06 sts 0x0611, r1
7d00: 10 92 12 06 sts 0x0612, r1
7d04: 10 92 13 06 sts 0x0613, r1
7d08: 10 92 14 06 sts 0x0614, r1
7d0c: 10 92 19 06 sts 0x0619, r1
7d10: 10 92 1a 06 sts 0x061A, r1
7d14: 10 92 1b 06 sts 0x061B, r1
7d18: 10 92 1c 06 sts 0x061C, r1
7d1c: 10 92 53 03 sts 0x0353, r1
7d20: 10 92 52 03 sts 0x0352, r1
7d24: 10 92 e9 03 sts 0x03E9, r1
7d28: 10 92 e8 03 sts 0x03E8, r1
7d2c: 10 92 eb 03 sts 0x03EB, r1
7d30: 10 92 ea 03 sts 0x03EA, r1
7d34: 8f 81 ldd r24, Y+7 ; 0x07
7d36: 81 11 cpse r24, r1
7d38: d8 c1 rjmp .+944 ; 0x80ea <MotorRegler+0x1852>
7d3a: 7d 85 ldd r23, Y+13 ; 0x0d
7d3c: 71 11 cpse r23, r1
7d3e: d5 c1 rjmp .+938 ; 0x80ea <MotorRegler+0x1852>
7d40: 80 91 04 05 lds r24, 0x0504
7d44: 90 91 05 05 lds r25, 0x0505
7d48: 81 30 cpi r24, 0x01 ; 1
7d4a: 92 40 sbci r25, 0x02 ; 2
7d4c: 2c f4 brge .+10 ; 0x7d58 <MotorRegler+0x14c0>
7d4e: 80 91 01 04 lds r24, 0x0401
7d52: 88 23 and r24, r24
7d54: 09 f4 brne .+2 ; 0x7d58 <MotorRegler+0x14c0>
7d56: c9 c1 rjmp .+914 ; 0x80ea <MotorRegler+0x1852>
7d58: 80 90 29 09 lds r8, 0x0929
7d5c: 80 91 37 05 lds r24, 0x0537
7d60: 00 91 3d 06 lds r16, 0x063D
7d64: 10 91 3e 06 lds r17, 0x063E
7d68: 18 14 cp r1, r8
7d6a: 0c f0 brlt .+2 ; 0x7d6e <MotorRegler+0x14d6>
7d6c: ba c0 rjmp .+372 ; 0x7ee2 <MotorRegler+0x164a>
7d6e: 28 2f mov r18, r24
7d70: 30 e0 ldi r19, 0x00 ; 0
7d72: 40 e0 ldi r20, 0x00 ; 0
7d74: 50 e0 ldi r21, 0x00 ; 0
7d76: 29 87 std Y+9, r18 ; 0x09
7d78: 3a 87 std Y+10, r19 ; 0x0a
7d7a: 4b 87 std Y+11, r20 ; 0x0b
7d7c: 5c 87 std Y+12, r21 ; 0x0c
7d7e: 99 24 eor r9, r9
7d80: 87 fc sbrc r8, 7
7d82: 90 94 com r9
7d84: a9 2c mov r10, r9
7d86: b9 2c mov r11, r9
7d88: c3 01 movw r24, r6
7d8a: b2 01 movw r22, r4
7d8c: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
7d90: 80 91 f2 08 lds r24, 0x08F2
7d94: 90 91 f3 08 lds r25, 0x08F3
7d98: b8 01 movw r22, r16
7d9a: 68 1b sub r22, r24
7d9c: 79 0b sbc r23, r25
7d9e: cb 01 movw r24, r22
7da0: aa 27 eor r26, r26
7da2: 97 fd sbrc r25, 7
7da4: a0 95 com r26
7da6: ba 2f mov r27, r26
7da8: 28 1b sub r18, r24
7daa: 39 0b sbc r19, r25
7dac: 4a 0b sbc r20, r26
7dae: 5b 0b sbc r21, r27
7db0: c5 01 movw r24, r10
7db2: b4 01 movw r22, r8
7db4: 0e 94 a4 9a call 0x13548 ; 0x13548 <__mulsi3>
7db8: c1 2c mov r12, r1
7dba: 52 e0 ldi r21, 0x02 ; 2
7dbc: d5 2e mov r13, r21
7dbe: e1 2c mov r14, r1
7dc0: f1 2c mov r15, r1
7dc2: a7 01 movw r20, r14
7dc4: 96 01 movw r18, r12
7dc6: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
7dca: 2c 8b std Y+20, r18 ; 0x14
7dcc: 3d 8b std Y+21, r19 ; 0x15
7dce: 4e 8b std Y+22, r20 ; 0x16
7dd0: 5f 8b std Y+23, r21 ; 0x17
7dd2: 2f 87 std Y+15, r18 ; 0x0f
7dd4: 39 8b std Y+17, r19 ; 0x11
7dd6: 4a 8b std Y+18, r20 ; 0x12
7dd8: 5b 8b std Y+19, r21 ; 0x13
7dda: 6b 81 ldd r22, Y+3 ; 0x03
7ddc: 7c 81 ldd r23, Y+4 ; 0x04
7dde: 8d 81 ldd r24, Y+5 ; 0x05
7de0: 9e 81 ldd r25, Y+6 ; 0x06
7de2: 29 85 ldd r18, Y+9 ; 0x09
7de4: 3a 85 ldd r19, Y+10 ; 0x0a
7de6: 4b 85 ldd r20, Y+11 ; 0x0b
7de8: 5c 85 ldd r21, Y+12 ; 0x0c
7dea: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
7dee: 80 91 4f 06 lds r24, 0x064F
7df2: 90 91 50 06 lds r25, 0x0650
7df6: 60 91 f4 08 lds r22, 0x08F4
7dfa: 70 91 f5 08 lds r23, 0x08F5
7dfe: 86 1b sub r24, r22
7e00: 97 0b sbc r25, r23
7e02: aa 27 eor r26, r26
7e04: 97 fd sbrc r25, 7
7e06: a0 95 com r26
7e08: ba 2f mov r27, r26
7e0a: 28 1b sub r18, r24
7e0c: 39 0b sbc r19, r25
7e0e: 4a 0b sbc r20, r26
7e10: 5b 0b sbc r21, r27
7e12: c5 01 movw r24, r10
7e14: b4 01 movw r22, r8
7e16: 0e 94 a4 9a call 0x13548 ; 0x13548 <__mulsi3>
7e1a: a7 01 movw r20, r14
7e1c: 96 01 movw r18, r12
7e1e: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
7e22: 89 01 movw r16, r18
7e24: 5a 01 movw r10, r20
7e26: 34 2e mov r3, r20
7e28: 2b 2c mov r2, r11
7e2a: e0 91 ce 03 lds r30, 0x03CE
7e2e: f0 91 cf 03 lds r31, 0x03CF
7e32: e1 34 cpi r30, 0x41 ; 65
7e34: f1 05 cpc r31, r1
7e36: 3c f4 brge .+14 ; 0x7e46 <MotorRegler+0x15ae>
7e38: e0 91 cc 03 lds r30, 0x03CC
7e3c: f0 91 cd 03 lds r31, 0x03CD
7e40: e1 34 cpi r30, 0x41 ; 65
7e42: f1 05 cpc r31, r1
7e44: cc f0 brlt .+50 ; 0x7e78 <MotorRegler+0x15e0>
7e46: 42 e0 ldi r20, 0x02 ; 2
7e48: c4 2e mov r12, r20
7e4a: d1 2c mov r13, r1
7e4c: e1 2c mov r14, r1
7e4e: f1 2c mov r15, r1
7e50: 6c 89 ldd r22, Y+20 ; 0x14
7e52: 7d 89 ldd r23, Y+21 ; 0x15
7e54: 8e 89 ldd r24, Y+22 ; 0x16
7e56: 9f 89 ldd r25, Y+23 ; 0x17
7e58: a7 01 movw r20, r14
7e5a: 96 01 movw r18, r12
7e5c: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
7e60: 2f 87 std Y+15, r18 ; 0x0f
7e62: 39 8b std Y+17, r19 ; 0x11
7e64: 4a 8b std Y+18, r20 ; 0x12
7e66: 5b 8b std Y+19, r21 ; 0x13
7e68: b8 01 movw r22, r16
7e6a: c5 01 movw r24, r10
7e6c: a7 01 movw r20, r14
7e6e: 96 01 movw r18, r12
7e70: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
7e74: 34 2e mov r3, r20
7e76: 25 2e mov r2, r21
7e78: 80 91 2b 09 lds r24, 0x092B
7e7c: 48 2f mov r20, r24
7e7e: 55 27 eor r21, r21
7e80: 47 fd sbrc r20, 7
7e82: 50 95 com r21
7e84: 65 2f mov r22, r21
7e86: 75 2f mov r23, r21
7e88: 8f 84 ldd r8, Y+15 ; 0x0f
7e8a: 99 88 ldd r9, Y+17 ; 0x11
7e8c: aa 88 ldd r10, Y+18 ; 0x12
7e8e: bb 88 ldd r11, Y+19 ; 0x13
7e90: 48 15 cp r20, r8
7e92: 59 05 cpc r21, r9
7e94: 6a 05 cpc r22, r10
7e96: 7b 05 cpc r23, r11
7e98: 14 f4 brge .+4 ; 0x7e9e <MotorRegler+0x1606>
7e9a: 4a 01 movw r8, r20
7e9c: 5b 01 movw r10, r22
7e9e: 99 27 eor r25, r25
7ea0: 81 95 neg r24
7ea2: 0c f4 brge .+2 ; 0x7ea6 <MotorRegler+0x160e>
7ea4: 90 95 com r25
7ea6: aa 27 eor r26, r26
7ea8: 97 fd sbrc r25, 7
7eaa: a0 95 com r26
7eac: ba 2f mov r27, r26
7eae: 88 16 cp r8, r24
7eb0: 99 06 cpc r9, r25
7eb2: aa 06 cpc r10, r26
7eb4: bb 06 cpc r11, r27
7eb6: 14 f4 brge .+4 ; 0x7ebc <MotorRegler+0x1624>
7eb8: 4c 01 movw r8, r24
7eba: 5d 01 movw r10, r26
7ebc: 69 01 movw r12, r18
7ebe: e3 2c mov r14, r3
7ec0: f2 2c mov r15, r2
7ec2: 4c 15 cp r20, r12
7ec4: 5d 05 cpc r21, r13
7ec6: 6e 05 cpc r22, r14
7ec8: 7f 05 cpc r23, r15
7eca: 14 f4 brge .+4 ; 0x7ed0 <MotorRegler+0x1638>
7ecc: 6a 01 movw r12, r20
7ece: 7b 01 movw r14, r22
7ed0: c8 16 cp r12, r24
7ed2: d9 06 cpc r13, r25
7ed4: ea 06 cpc r14, r26
7ed6: fb 06 cpc r15, r27
7ed8: 0c f0 brlt .+2 ; 0x7edc <MotorRegler+0x1644>
7eda: cb c0 rjmp .+406 ; 0x8072 <MotorRegler+0x17da>
7edc: 6c 01 movw r12, r24
7ede: 7d 01 movw r14, r26
7ee0: c8 c0 rjmp .+400 ; 0x8072 <MotorRegler+0x17da>
7ee2: 88 2e mov r8, r24
7ee4: 91 2c mov r9, r1
7ee6: a1 2c mov r10, r1
7ee8: b1 2c mov r11, r1
7eea: 6b 81 ldd r22, Y+3 ; 0x03
7eec: 7c 81 ldd r23, Y+4 ; 0x04
7eee: 8d 81 ldd r24, Y+5 ; 0x05
7ef0: 9e 81 ldd r25, Y+6 ; 0x06
7ef2: a5 01 movw r20, r10
7ef4: 94 01 movw r18, r8
7ef6: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
7efa: 69 01 movw r12, r18
7efc: 7a 01 movw r14, r20
7efe: 80 91 4f 06 lds r24, 0x064F
7f02: 90 91 50 06 lds r25, 0x0650
7f06: aa 27 eor r26, r26
7f08: 97 fd sbrc r25, 7
7f0a: a0 95 com r26
7f0c: ba 2f mov r27, r26
7f0e: c8 1a sub r12, r24
7f10: d9 0a sbc r13, r25
7f12: ea 0a sbc r14, r26
7f14: fb 0a sbc r15, r27
7f16: c3 01 movw r24, r6
7f18: b2 01 movw r22, r4
7f1a: a5 01 movw r20, r10
7f1c: 94 01 movw r18, r8
7f1e: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
7f22: c8 01 movw r24, r16
7f24: aa 27 eor r26, r26
7f26: 97 fd sbrc r25, 7
7f28: a0 95 com r26
7f2a: ba 2f mov r27, r26
7f2c: 28 1b sub r18, r24
7f2e: 39 0b sbc r19, r25
7f30: 4a 0b sbc r20, r26
7f32: 5b 0b sbc r21, r27
7f34: ca 01 movw r24, r20
7f36: b9 01 movw r22, r18
7f38: 20 e1 ldi r18, 0x10 ; 16
7f3a: 30 e0 ldi r19, 0x00 ; 0
7f3c: 40 e0 ldi r20, 0x00 ; 0
7f3e: 50 e0 ldi r21, 0x00 ; 0
7f40: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
7f44: 32 2e mov r3, r18
7f46: 39 8b std Y+17, r19 ; 0x11
7f48: 24 2e mov r2, r20
7f4a: 5a 8b std Y+18, r21 ; 0x12
7f4c: 82 2e mov r8, r18
7f4e: 93 2e mov r9, r19
7f50: a4 2e mov r10, r20
7f52: b5 2e mov r11, r21
7f54: c7 01 movw r24, r14
7f56: b6 01 movw r22, r12
7f58: 20 e1 ldi r18, 0x10 ; 16
7f5a: 30 e0 ldi r19, 0x00 ; 0
7f5c: 40 e0 ldi r20, 0x00 ; 0
7f5e: 50 e0 ldi r21, 0x00 ; 0
7f60: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
7f64: 12 2f mov r17, r18
7f66: 03 2f mov r16, r19
7f68: 49 87 std Y+9, r20 ; 0x09
7f6a: 5f 87 std Y+15, r21 ; 0x0f
7f6c: c2 2e mov r12, r18
7f6e: d3 2e mov r13, r19
7f70: 7a 01 movw r14, r20
7f72: 80 91 ce 03 lds r24, 0x03CE
7f76: 90 91 cf 03 lds r25, 0x03CF
7f7a: 81 34 cpi r24, 0x41 ; 65
7f7c: 91 05 cpc r25, r1
7f7e: 3c f4 brge .+14 ; 0x7f8e <MotorRegler+0x16f6>
7f80: 80 91 cc 03 lds r24, 0x03CC
7f84: 90 91 cd 03 lds r25, 0x03CD
7f88: 81 34 cpi r24, 0x41 ; 65
7f8a: 91 05 cpc r25, r1
7f8c: cc f0 brlt .+50 ; 0x7fc0 <MotorRegler+0x1728>
7f8e: 33 e0 ldi r19, 0x03 ; 3
7f90: c3 2e mov r12, r19
7f92: d1 2c mov r13, r1
7f94: e1 2c mov r14, r1
7f96: f1 2c mov r15, r1
7f98: 63 2d mov r22, r3
7f9a: 79 89 ldd r23, Y+17 ; 0x11
7f9c: 82 2d mov r24, r2
7f9e: 9a 89 ldd r25, Y+18 ; 0x12
7fa0: a7 01 movw r20, r14
7fa2: 96 01 movw r18, r12
7fa4: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
7fa8: 49 01 movw r8, r18
7faa: 5a 01 movw r10, r20
7fac: 61 2f mov r22, r17
7fae: 70 2f mov r23, r16
7fb0: 89 85 ldd r24, Y+9 ; 0x09
7fb2: 9f 85 ldd r25, Y+15 ; 0x0f
7fb4: a7 01 movw r20, r14
7fb6: 96 01 movw r18, r12
7fb8: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
7fbc: 69 01 movw r12, r18
7fbe: 7a 01 movw r14, r20
7fc0: e0 91 1f 05 lds r30, 0x051F
7fc4: f0 e0 ldi r31, 0x00 ; 0
7fc6: ee 0f add r30, r30
7fc8: ff 1f adc r31, r31
7fca: e2 5f subi r30, 0xF2 ; 242
7fcc: f7 4f sbci r31, 0xF7 ; 247
7fce: 80 81 ld r24, Z
7fd0: 91 81 ldd r25, Z+1 ; 0x01
7fd2: 97 ff sbrs r25, 7
7fd4: 03 c0 rjmp .+6 ; 0x7fdc <MotorRegler+0x1744>
7fd6: 91 95 neg r25
7fd8: 81 95 neg r24
7fda: 91 09 sbc r25, r1
7fdc: 4a 97 sbiw r24, 0x1a ; 26
7fde: a4 f0 brlt .+40 ; 0x8008 <MotorRegler+0x1770>
7fe0: c5 01 movw r24, r10
7fe2: b4 01 movw r22, r8
7fe4: 23 e0 ldi r18, 0x03 ; 3
7fe6: 30 e0 ldi r19, 0x00 ; 0
7fe8: 40 e0 ldi r20, 0x00 ; 0
7fea: 50 e0 ldi r21, 0x00 ; 0
7fec: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
7ff0: 49 01 movw r8, r18
7ff2: 5a 01 movw r10, r20
7ff4: c7 01 movw r24, r14
7ff6: b6 01 movw r22, r12
7ff8: 23 e0 ldi r18, 0x03 ; 3
7ffa: 30 e0 ldi r19, 0x00 ; 0
7ffc: 40 e0 ldi r20, 0x00 ; 0
7ffe: 50 e0 ldi r21, 0x00 ; 0
8000: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
8004: 69 01 movw r12, r18
8006: 7a 01 movw r14, r20
8008: 89 e1 ldi r24, 0x19 ; 25
800a: 80 93 4c 01 sts 0x014C, r24
800e: 71 e2 ldi r23, 0x21 ; 33
8010: 87 16 cp r8, r23
8012: 91 04 cpc r9, r1
8014: a1 04 cpc r10, r1
8016: b1 04 cpc r11, r1
8018: 74 f4 brge .+28 ; 0x8036 <MotorRegler+0x179e>
801a: 80 ee ldi r24, 0xE0 ; 224
801c: 88 16 cp r8, r24
801e: 8f ef ldi r24, 0xFF ; 255
8020: 98 06 cpc r9, r24
8022: a8 06 cpc r10, r24
8024: b8 06 cpc r11, r24
8026: 64 f4 brge .+24 ; 0x8040 <MotorRegler+0x17a8>
8028: 80 ee ldi r24, 0xE0 ; 224
802a: 88 2e mov r8, r24
802c: 99 24 eor r9, r9
802e: 9a 94 dec r9
8030: a9 2c mov r10, r9
8032: b9 2c mov r11, r9
8034: 05 c0 rjmp .+10 ; 0x8040 <MotorRegler+0x17a8>
8036: 90 e2 ldi r25, 0x20 ; 32
8038: 89 2e mov r8, r25
803a: 91 2c mov r9, r1
803c: a1 2c mov r10, r1
803e: b1 2c mov r11, r1
8040: 91 e2 ldi r25, 0x21 ; 33
8042: c9 16 cp r12, r25
8044: d1 04 cpc r13, r1
8046: e1 04 cpc r14, r1
8048: f1 04 cpc r15, r1
804a: 74 f4 brge .+28 ; 0x8068 <MotorRegler+0x17d0>
804c: a0 ee ldi r26, 0xE0 ; 224
804e: ca 16 cp r12, r26
8050: af ef ldi r26, 0xFF ; 255
8052: da 06 cpc r13, r26
8054: ea 06 cpc r14, r26
8056: fa 06 cpc r15, r26
8058: 64 f4 brge .+24 ; 0x8072 <MotorRegler+0x17da>
805a: 10 ee ldi r17, 0xE0 ; 224
805c: c1 2e mov r12, r17
805e: dd 24 eor r13, r13
8060: da 94 dec r13
8062: ed 2c mov r14, r13
8064: fd 2c mov r15, r13
8066: 05 c0 rjmp .+10 ; 0x8072 <MotorRegler+0x17da>
8068: 00 e2 ldi r16, 0x20 ; 32
806a: c0 2e mov r12, r16
806c: d1 2c mov r13, r1
806e: e1 2c mov r14, r1
8070: f1 2c mov r15, r1
8072: 80 91 34 04 lds r24, 0x0434
8076: 90 91 35 04 lds r25, 0x0435
807a: a0 91 36 04 lds r26, 0x0436
807e: b0 91 37 04 lds r27, 0x0437
8082: 88 19 sub r24, r8
8084: 99 09 sbc r25, r9
8086: aa 09 sbc r26, r10
8088: bb 09 sbc r27, r11
808a: 80 93 34 04 sts 0x0434, r24
808e: 90 93 35 04 sts 0x0435, r25
8092: a0 93 36 04 sts 0x0436, r26
8096: b0 93 37 04 sts 0x0437, r27
809a: 80 91 30 04 lds r24, 0x0430
809e: 90 91 31 04 lds r25, 0x0431
80a2: a0 91 32 04 lds r26, 0x0432
80a6: b0 91 33 04 lds r27, 0x0433
80aa: 8c 19 sub r24, r12
80ac: 9d 09 sbc r25, r13
80ae: ae 09 sbc r26, r14
80b0: bf 09 sbc r27, r15
80b2: 80 93 30 04 sts 0x0430, r24
80b6: 90 93 31 04 sts 0x0431, r25
80ba: a0 93 32 04 sts 0x0432, r26
80be: b0 93 33 04 sts 0x0433, r27
80c2: 80 91 bc 03 lds r24, 0x03BC
80c6: 90 91 bd 03 lds r25, 0x03BD
80ca: 88 0d add r24, r8
80cc: 99 1d adc r25, r9
80ce: 90 93 bd 03 sts 0x03BD, r25
80d2: 80 93 bc 03 sts 0x03BC, r24
80d6: 80 91 ba 03 lds r24, 0x03BA
80da: 90 91 bb 03 lds r25, 0x03BB
80de: 8c 0d add r24, r12
80e0: 9d 1d adc r25, r13
80e2: 90 93 bb 03 sts 0x03BB, r25
80e6: 80 93 ba 03 sts 0x03BA, r24
80ea: 80 91 52 03 lds r24, 0x0352
80ee: 90 91 53 03 lds r25, 0x0353
80f2: e0 91 44 06 lds r30, 0x0644
80f6: f0 91 45 06 lds r31, 0x0645
80fa: fa 87 std Y+10, r31 ; 0x0a
80fc: e9 87 std Y+9, r30 ; 0x09
80fe: 8f 3f cpi r24, 0xFF ; 255
8100: 91 05 cpc r25, r1
8102: 09 f0 breq .+2 ; 0x8106 <MotorRegler+0x186e>
8104: 08 f4 brcc .+2 ; 0x8108 <MotorRegler+0x1870>
8106: 57 c1 rjmp .+686 ; 0x83b6 <MotorRegler+0x1b1e>
8108: 20 91 5f 05 lds r18, 0x055F
810c: 22 23 and r18, r18
810e: 09 f4 brne .+2 ; 0x8112 <MotorRegler+0x187a>
8110: 04 c1 rjmp .+520 ; 0x831a <MotorRegler+0x1a82>
8112: 80 91 3d 06 lds r24, 0x063D
8116: 90 91 3e 06 lds r25, 0x063E
811a: 81 5e subi r24, 0xE1 ; 225
811c: 9c 4f sbci r25, 0xFC ; 252
811e: 8f 33 cpi r24, 0x3F ; 63
8120: 96 40 sbci r25, 0x06 ; 6
8122: 08 f0 brcs .+2 ; 0x8126 <MotorRegler+0x188e>
8124: fa c0 rjmp .+500 ; 0x831a <MotorRegler+0x1a82>
8126: 80 91 4f 06 lds r24, 0x064F
812a: 90 91 50 06 lds r25, 0x0650
812e: 81 5e subi r24, 0xE1 ; 225
8130: 9c 4f sbci r25, 0xFC ; 252
8132: 8f 33 cpi r24, 0x3F ; 63
8134: 96 40 sbci r25, 0x06 ; 6
8136: 08 f0 brcs .+2 ; 0x813a <MotorRegler+0x18a2>
8138: f0 c0 rjmp .+480 ; 0x831a <MotorRegler+0x1a82>
813a: 80 91 18 04 lds r24, 0x0418
813e: 81 11 cpse r24, r1
8140: ec c0 rjmp .+472 ; 0x831a <MotorRegler+0x1a82>
8142: 89 85 ldd r24, Y+9 ; 0x09
8144: 9a 85 ldd r25, Y+10 ; 0x0a
8146: 4f 96 adiw r24, 0x1f ; 31
8148: cf 97 sbiw r24, 0x3f ; 63
814a: 08 f0 brcs .+2 ; 0x814e <MotorRegler+0x18b6>
814c: e6 c0 rjmp .+460 ; 0x831a <MotorRegler+0x1a82>
814e: 30 e0 ldi r19, 0x00 ; 0
8150: 30 93 46 0c sts 0x0C46, r19
8154: 20 93 45 0c sts 0x0C45, r18
8158: e0 90 bc 03 lds r14, 0x03BC
815c: f0 90 bd 03 lds r15, 0x03BD
8160: b6 e0 ldi r27, 0x06 ; 6
8162: 22 0f add r18, r18
8164: 33 1f adc r19, r19
8166: ba 95 dec r27
8168: e1 f7 brne .-8 ; 0x8162 <MotorRegler+0x18ca>
816a: c7 01 movw r24, r14
816c: b9 01 movw r22, r18
816e: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
8172: e6 1a sub r14, r22
8174: f7 0a sbc r15, r23
8176: f0 92 bd 03 sts 0x03BD, r15
817a: e0 92 bc 03 sts 0x03BC, r14
817e: e0 91 ba 03 lds r30, 0x03BA
8182: f0 91 bb 03 lds r31, 0x03BB
8186: cf 01 movw r24, r30
8188: b9 01 movw r22, r18
818a: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
818e: 6f 01 movw r12, r30
8190: c6 1a sub r12, r22
8192: d7 0a sbc r13, r23
8194: d0 92 bb 03 sts 0x03BB, r13
8198: c0 92 ba 03 sts 0x03BA, r12
819c: e0 91 16 04 lds r30, 0x0416
81a0: f0 91 17 04 lds r31, 0x0417
81a4: cf 01 movw r24, r30
81a6: b9 01 movw r22, r18
81a8: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
81ac: e6 1b sub r30, r22
81ae: f7 0b sbc r31, r23
81b0: f0 93 17 04 sts 0x0417, r31
81b4: e0 93 16 04 sts 0x0416, r30
81b8: 80 91 ce 03 lds r24, 0x03CE
81bc: 90 91 cf 03 lds r25, 0x03CF
81c0: 81 34 cpi r24, 0x41 ; 65
81c2: 91 05 cpc r25, r1
81c4: bc f4 brge .+46 ; 0x81f4 <MotorRegler+0x195c>
81c6: 80 91 cc 03 lds r24, 0x03CC
81ca: 90 91 cd 03 lds r25, 0x03CD
81ce: 81 34 cpi r24, 0x41 ; 65
81d0: 91 05 cpc r25, r1
81d2: 84 f4 brge .+32 ; 0x81f4 <MotorRegler+0x195c>
81d4: e0 91 1f 05 lds r30, 0x051F
81d8: f0 e0 ldi r31, 0x00 ; 0
81da: ee 0f add r30, r30
81dc: ff 1f adc r31, r31
81de: e2 5f subi r30, 0xF2 ; 242
81e0: f7 4f sbci r31, 0xF7 ; 247
81e2: 80 81 ld r24, Z
81e4: 91 81 ldd r25, Z+1 ; 0x01
81e6: 97 ff sbrs r25, 7
81e8: 03 c0 rjmp .+6 ; 0x81f0 <MotorRegler+0x1958>
81ea: 91 95 neg r25
81ec: 81 95 neg r24
81ee: 91 09 sbc r25, r1
81f0: 4a 97 sbiw r24, 0x1a ; 26
81f2: d4 f0 brlt .+52 ; 0x8228 <MotorRegler+0x1990>
81f4: f7 fe sbrs r15, 7
81f6: 03 c0 rjmp .+6 ; 0x81fe <MotorRegler+0x1966>
81f8: 4f ef ldi r20, 0xFF ; 255
81fa: e4 1a sub r14, r20
81fc: f4 0a sbc r15, r20
81fe: f5 94 asr r15
8200: e7 94 ror r14
8202: f0 92 bd 03 sts 0x03BD, r15
8206: e0 92 bc 03 sts 0x03BC, r14
820a: d7 fe sbrs r13, 7
820c: 03 c0 rjmp .+6 ; 0x8214 <MotorRegler+0x197c>
820e: 5f ef ldi r21, 0xFF ; 255
8210: c5 1a sub r12, r21
8212: d5 0a sbc r13, r21
8214: d5 94 asr r13
8216: c7 94 ror r12
8218: d0 92 bb 03 sts 0x03BB, r13
821c: c0 92 ba 03 sts 0x03BA, r12
8220: 10 92 17 04 sts 0x0417, r1
8224: 10 92 16 04 sts 0x0416, r1
8228: 80 91 bc 03 lds r24, 0x03BC
822c: 90 91 bd 03 lds r25, 0x03BD
8230: 89 3b cpi r24, 0xB9 ; 185
8232: 9b 40 sbci r25, 0x0B ; 11
8234: 6c f0 brlt .+26 ; 0x8250 <MotorRegler+0x19b8>
8236: 10 92 bd 03 sts 0x03BD, r1
823a: 10 92 bc 03 sts 0x03BC, r1
823e: 80 91 55 04 lds r24, 0x0455
8242: 90 91 56 04 lds r25, 0x0456
8246: 01 96 adiw r24, 0x01 ; 1
8248: 90 93 56 04 sts 0x0456, r25
824c: 80 93 55 04 sts 0x0455, r24
8250: 80 91 bc 03 lds r24, 0x03BC
8254: 90 91 bd 03 lds r25, 0x03BD
8258: 88 34 cpi r24, 0x48 ; 72
825a: 94 4f sbci r25, 0xF4 ; 244
825c: 6c f4 brge .+26 ; 0x8278 <MotorRegler+0x19e0>
825e: 10 92 bd 03 sts 0x03BD, r1
8262: 10 92 bc 03 sts 0x03BC, r1
8266: 80 91 55 04 lds r24, 0x0455
826a: 90 91 56 04 lds r25, 0x0456
826e: 01 97 sbiw r24, 0x01 ; 1
8270: 90 93 56 04 sts 0x0456, r25
8274: 80 93 55 04 sts 0x0455, r24
8278: 80 91 ba 03 lds r24, 0x03BA
827c: 90 91 bb 03 lds r25, 0x03BB
8280: 89 3b cpi r24, 0xB9 ; 185
8282: 9b 40 sbci r25, 0x0B ; 11
8284: 6c f0 brlt .+26 ; 0x82a0 <MotorRegler+0x1a08>
8286: 10 92 bb 03 sts 0x03BB, r1
828a: 10 92 ba 03 sts 0x03BA, r1
828e: 80 91 53 04 lds r24, 0x0453
8292: 90 91 54 04 lds r25, 0x0454
8296: 01 96 adiw r24, 0x01 ; 1
8298: 90 93 54 04 sts 0x0454, r25
829c: 80 93 53 04 sts 0x0453, r24
82a0: 80 91 ba 03 lds r24, 0x03BA
82a4: 90 91 bb 03 lds r25, 0x03BB
82a8: 88 34 cpi r24, 0x48 ; 72
82aa: 94 4f sbci r25, 0xF4 ; 244
82ac: 6c f4 brge .+26 ; 0x82c8 <MotorRegler+0x1a30>
82ae: 10 92 bb 03 sts 0x03BB, r1
82b2: 10 92 ba 03 sts 0x03BA, r1
82b6: 80 91 53 04 lds r24, 0x0453
82ba: 90 91 54 04 lds r25, 0x0454
82be: 01 97 sbiw r24, 0x01 ; 1
82c0: 90 93 54 04 sts 0x0454, r25
82c4: 80 93 53 04 sts 0x0453, r24
82c8: 80 91 16 04 lds r24, 0x0416
82cc: 90 91 17 04 lds r25, 0x0417
82d0: 8d 3a cpi r24, 0xAD ; 173
82d2: 9d 40 sbci r25, 0x0D ; 13
82d4: 6c f0 brlt .+26 ; 0x82f0 <MotorRegler+0x1a58>
82d6: 10 92 17 04 sts 0x0417, r1
82da: 10 92 16 04 sts 0x0416, r1
82de: 80 91 51 04 lds r24, 0x0451
82e2: 90 91 52 04 lds r25, 0x0452
82e6: 01 96 adiw r24, 0x01 ; 1
82e8: 90 93 52 04 sts 0x0452, r25
82ec: 80 93 51 04 sts 0x0451, r24
82f0: 80 91 16 04 lds r24, 0x0416
82f4: 90 91 17 04 lds r25, 0x0417
82f8: 84 35 cpi r24, 0x54 ; 84
82fa: 92 4f sbci r25, 0xF2 ; 242
82fc: d4 f4 brge .+52 ; 0x8332 <MotorRegler+0x1a9a>
82fe: 10 92 17 04 sts 0x0417, r1
8302: 10 92 16 04 sts 0x0416, r1
8306: 80 91 51 04 lds r24, 0x0451
830a: 90 91 52 04 lds r25, 0x0452
830e: 01 97 sbiw r24, 0x01 ; 1
8310: 90 93 52 04 sts 0x0452, r25
8314: 80 93 51 04 sts 0x0451, r24
8318: 0c c0 rjmp .+24 ; 0x8332 <MotorRegler+0x1a9a>
831a: 10 92 bd 03 sts 0x03BD, r1
831e: 10 92 bc 03 sts 0x03BC, r1
8322: 10 92 bb 03 sts 0x03BB, r1
8326: 10 92 ba 03 sts 0x03BA, r1
832a: 10 92 17 04 sts 0x0417, r1
832e: 10 92 16 04 sts 0x0416, r1
8332: 10 92 18 04 sts 0x0418, r1
8336: 80 91 1f 06 lds r24, 0x061F
833a: 81 11 cpse r24, r1
833c: 08 c0 rjmp .+16 ; 0x834e <MotorRegler+0x1ab6>
833e: 10 92 eb 03 sts 0x03EB, r1
8342: 10 92 ea 03 sts 0x03EA, r1
8346: 10 92 e9 03 sts 0x03E9, r1
834a: 10 92 e8 03 sts 0x03E8, r1
834e: 80 91 11 06 lds r24, 0x0611
8352: 90 91 12 06 lds r25, 0x0612
8356: a0 91 13 06 lds r26, 0x0613
835a: b0 91 14 06 lds r27, 0x0614
835e: 80 93 90 03 sts 0x0390, r24
8362: 90 93 91 03 sts 0x0391, r25
8366: a0 93 92 03 sts 0x0392, r26
836a: b0 93 93 03 sts 0x0393, r27
836e: 80 91 19 06 lds r24, 0x0619
8372: 90 91 1a 06 lds r25, 0x061A
8376: a0 91 1b 06 lds r26, 0x061B
837a: b0 91 1c 06 lds r27, 0x061C
837e: 80 93 8c 03 sts 0x038C, r24
8382: 90 93 8d 03 sts 0x038D, r25
8386: a0 93 8e 03 sts 0x038E, r26
838a: b0 93 8f 03 sts 0x038F, r27
838e: 10 92 11 06 sts 0x0611, r1
8392: 10 92 12 06 sts 0x0612, r1
8396: 10 92 13 06 sts 0x0613, r1
839a: 10 92 14 06 sts 0x0614, r1
839e: 10 92 19 06 sts 0x0619, r1
83a2: 10 92 1a 06 sts 0x061A, r1
83a6: 10 92 1b 06 sts 0x061B, r1
83aa: 10 92 1c 06 sts 0x061C, r1
83ae: 10 92 53 03 sts 0x0353, r1
83b2: 10 92 52 03 sts 0x0352, r1
83b6: e0 90 0e 04 lds r14, 0x040E
83ba: f0 90 0f 04 lds r15, 0x040F
83be: d7 01 movw r26, r14
83c0: f7 fe sbrs r15, 7
83c2: 04 c0 rjmp .+8 ; 0x83cc <MotorRegler+0x1b34>
83c4: aa 27 eor r26, r26
83c6: bb 27 eor r27, r27
83c8: ae 19 sub r26, r14
83ca: bf 09 sbc r27, r15
83cc: a4 30 cpi r26, 0x04 ; 4
83ce: b1 05 cpc r27, r1
83d0: 3c f0 brlt .+14 ; 0x83e0 <MotorRegler+0x1b48>
83d2: 80 91 39 06 lds r24, 0x0639
83d6: 84 fd sbrc r24, 4
83d8: 03 c0 rjmp .+6 ; 0x83e0 <MotorRegler+0x1b48>
83da: 82 e3 ldi r24, 0x32 ; 50
83dc: 80 93 ec 03 sts 0x03EC, r24
83e0: 10 91 34 05 lds r17, 0x0534
83e4: 80 91 c3 03 lds r24, 0x03C3
83e8: 90 91 c4 03 lds r25, 0x03C4
83ec: 81 30 cpi r24, 0x01 ; 1
83ee: 92 40 sbci r25, 0x02 ; 2
83f0: e8 f4 brcc .+58 ; 0x842c <MotorRegler+0x1b94>
83f2: 97 01 movw r18, r14
83f4: 0e 94 2a 9b call 0x13654 ; 0x13654 <__mulhisi3>
83f8: 9b 01 movw r18, r22
83fa: ac 01 movw r20, r24
83fc: a1 2f mov r26, r17
83fe: b0 e0 ldi r27, 0x00 ; 0
8400: 0e 94 45 9b call 0x1368a ; 0x1368a <__muluhisi3>
8404: 20 e0 ldi r18, 0x00 ; 0
8406: 32 e0 ldi r19, 0x02 ; 2
8408: 40 e0 ldi r20, 0x00 ; 0
840a: 50 e0 ldi r21, 0x00 ; 0
840c: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
8410: 1e 9d mul r17, r14
8412: c0 01 movw r24, r0
8414: 1f 9d mul r17, r15
8416: 90 0d add r25, r0
8418: 11 24 eor r1, r1
841a: 97 fd sbrc r25, 7
841c: 03 96 adiw r24, 0x03 ; 3
841e: 95 95 asr r25
8420: 87 95 ror r24
8422: 95 95 asr r25
8424: 87 95 ror r24
8426: 82 0f add r24, r18
8428: 93 1f adc r25, r19
842a: 02 c0 rjmp .+4 ; 0x8430 <MotorRegler+0x1b98>
842c: 80 e0 ldi r24, 0x00 ; 0
842e: 90 e0 ldi r25, 0x00 ; 0
8430: 20 91 ee 03 lds r18, 0x03EE
8434: 30 91 ef 03 lds r19, 0x03EF
8438: 28 0f add r18, r24
843a: 39 1f adc r19, r25
843c: a9 01 movw r20, r18
843e: 66 27 eor r22, r22
8440: 57 fd sbrc r21, 7
8442: 60 95 com r22
8444: 76 2f mov r23, r22
8446: 40 93 9c 03 sts 0x039C, r20
844a: 50 93 9d 03 sts 0x039D, r21
844e: 60 93 9e 03 sts 0x039E, r22
8452: 70 93 9f 03 sts 0x039F, r23
8456: 80 91 2c 04 lds r24, 0x042C
845a: 90 91 2d 04 lds r25, 0x042D
845e: a0 91 2e 04 lds r26, 0x042E
8462: b0 91 2f 04 lds r27, 0x042F
8466: 84 1b sub r24, r20
8468: 95 0b sbc r25, r21
846a: a6 0b sbc r26, r22
846c: b7 0b sbc r27, r23
846e: 81 35 cpi r24, 0x51 ; 81
8470: 33 ec ldi r19, 0xC3 ; 195
8472: 93 07 cpc r25, r19
8474: a1 05 cpc r26, r1
8476: b1 05 cpc r27, r1
8478: 24 f0 brlt .+8 ; 0x8482 <MotorRegler+0x1bea>
847a: 80 e5 ldi r24, 0x50 ; 80
847c: 93 ec ldi r25, 0xC3 ; 195
847e: a0 e0 ldi r26, 0x00 ; 0
8480: b0 e0 ldi r27, 0x00 ; 0
8482: 80 93 2c 04 sts 0x042C, r24
8486: 90 93 2d 04 sts 0x042D, r25
848a: a0 93 2e 04 sts 0x042E, r26
848e: b0 93 2f 04 sts 0x042F, r27
8492: 80 91 2c 04 lds r24, 0x042C
8496: 90 91 2d 04 lds r25, 0x042D
849a: a0 91 2e 04 lds r26, 0x042E
849e: b0 91 2f 04 lds r27, 0x042F
84a2: 80 3b cpi r24, 0xB0 ; 176
84a4: 9c 43 sbci r25, 0x3C ; 60
84a6: af 4f sbci r26, 0xFF ; 255
84a8: bf 4f sbci r27, 0xFF ; 255
84aa: 64 f4 brge .+24 ; 0x84c4 <MotorRegler+0x1c2c>
84ac: 80 eb ldi r24, 0xB0 ; 176
84ae: 9c e3 ldi r25, 0x3C ; 60
84b0: af ef ldi r26, 0xFF ; 255
84b2: bf ef ldi r27, 0xFF ; 255
84b4: 80 93 2c 04 sts 0x042C, r24
84b8: 90 93 2d 04 sts 0x042D, r25
84bc: a0 93 2e 04 sts 0x042E, r26
84c0: b0 93 2f 04 sts 0x042F, r27
84c4: 00 91 4e 01 lds r16, 0x014E
84c8: 10 91 4f 01 lds r17, 0x014F
84cc: 17 fd sbrc r17, 7
84ce: d0 c0 rjmp .+416 ; 0x8670 <MotorRegler+0x1dd8>
84d0: 80 91 39 06 lds r24, 0x0639
84d4: 83 ff sbrs r24, 3
84d6: cc c0 rjmp .+408 ; 0x8670 <MotorRegler+0x1dd8>
84d8: 80 91 4d 01 lds r24, 0x014D
84dc: 81 30 cpi r24, 0x01 ; 1
84de: 21 f0 breq .+8 ; 0x84e8 <MotorRegler+0x1c50>
84e0: 81 50 subi r24, 0x01 ; 1
84e2: 80 93 4d 01 sts 0x014D, r24
84e6: c8 c0 rjmp .+400 ; 0x8678 <MotorRegler+0x1de0>
84e8: 8d e0 ldi r24, 0x0D ; 13
84ea: 80 93 4d 01 sts 0x014D, r24
84ee: c3 01 movw r24, r6
84f0: b2 01 movw r22, r4
84f2: 20 e0 ldi r18, 0x00 ; 0
84f4: 32 e0 ldi r19, 0x02 ; 2
84f6: 40 e0 ldi r20, 0x00 ; 0
84f8: 50 e0 ldi r21, 0x00 ; 0
84fa: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
84fe: 79 01 movw r14, r18
8500: 37 ff sbrs r19, 7
8502: 04 c0 rjmp .+8 ; 0x850c <MotorRegler+0x1c74>
8504: ee 24 eor r14, r14
8506: ff 24 eor r15, r15
8508: e2 1a sub r14, r18
850a: f3 0a sbc r15, r19
850c: 6b 81 ldd r22, Y+3 ; 0x03
850e: 7c 81 ldd r23, Y+4 ; 0x04
8510: 8d 81 ldd r24, Y+5 ; 0x05
8512: 9e 81 ldd r25, Y+6 ; 0x06
8514: 20 e0 ldi r18, 0x00 ; 0
8516: 32 e0 ldi r19, 0x02 ; 2
8518: 40 e0 ldi r20, 0x00 ; 0
851a: 50 e0 ldi r21, 0x00 ; 0
851c: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
8520: 19 01 movw r2, r18
8522: 37 ff sbrs r19, 7
8524: 04 c0 rjmp .+8 ; 0x852e <MotorRegler+0x1c96>
8526: 22 24 eor r2, r2
8528: 33 24 eor r3, r3
852a: 22 1a sub r2, r18
852c: 33 0a sbc r3, r19
852e: 2e 14 cp r2, r14
8530: 3f 04 cpc r3, r15
8532: 0c f4 brge .+2 ; 0x8536 <MotorRegler+0x1c9e>
8534: 17 01 movw r2, r14
8536: c0 90 4b 06 lds r12, 0x064B
853a: d0 90 4c 06 lds r13, 0x064C
853e: e0 90 4d 06 lds r14, 0x064D
8542: f0 90 4e 06 lds r15, 0x064E
8546: 20 91 21 01 lds r18, 0x0121
854a: 30 91 22 01 lds r19, 0x0122
854e: 40 91 23 01 lds r20, 0x0123
8552: 50 91 24 01 lds r21, 0x0124
8556: c7 01 movw r24, r14
8558: b6 01 movw r22, r12
855a: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
855e: 49 01 movw r8, r18
8560: 5a 01 movw r10, r20
8562: 30 93 ff 05 sts 0x05FF, r19
8566: 20 93 fe 05 sts 0x05FE, r18
856a: c8 01 movw r24, r16
856c: 84 5e subi r24, 0xE4 ; 228
856e: 9d 4f sbci r25, 0xFD ; 253
8570: 82 1b sub r24, r18
8572: 93 0b sbc r25, r19
8574: 68 e6 ldi r22, 0x68 ; 104
8576: 71 e0 ldi r23, 0x01 ; 1
8578: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
857c: ac 01 movw r20, r24
857e: 44 5b subi r20, 0xB4 ; 180
8580: 51 09 sbc r21, r1
8582: 60 91 ec 03 lds r22, 0x03EC
8586: 66 23 and r22, r22
8588: 21 f0 breq .+8 ; 0x8592 <MotorRegler+0x1cfa>
858a: 90 92 1b 04 sts 0x041B, r9
858e: 80 92 1a 04 sts 0x041A, r8
8592: 80 91 4a 01 lds r24, 0x014A
8596: 90 91 4b 01 lds r25, 0x014B
859a: 00 97 sbiw r24, 0x00 ; 0
859c: 31 f0 breq .+12 ; 0x85aa <MotorRegler+0x1d12>
859e: 01 97 sbiw r24, 0x01 ; 1
85a0: 90 93 4b 01 sts 0x014B, r25
85a4: 80 93 4a 01 sts 0x014A, r24
85a8: 13 c0 rjmp .+38 ; 0x85d0 <MotorRegler+0x1d38>
85aa: 79 e1 ldi r23, 0x19 ; 25
85ac: 27 16 cp r2, r23
85ae: 31 04 cpc r3, r1
85b0: 7c f4 brge .+30 ; 0x85d0 <MotorRegler+0x1d38>
85b2: 20 91 16 04 lds r18, 0x0416
85b6: 30 91 17 04 lds r19, 0x0417
85ba: 24 0f add r18, r20
85bc: 35 1f adc r19, r21
85be: 30 93 17 04 sts 0x0417, r19
85c2: 20 93 16 04 sts 0x0416, r18
85c6: 66 23 and r22, r22
85c8: 19 f0 breq .+6 ; 0x85d0 <MotorRegler+0x1d38>
85ca: 61 50 subi r22, 0x01 ; 1
85cc: 60 93 ec 03 sts 0x03EC, r22
85d0: 80 91 4a 01 lds r24, 0x014A
85d4: 90 91 4b 01 lds r25, 0x014B
85d8: 89 2b or r24, r25
85da: 11 f5 brne .+68 ; 0x8620 <MotorRegler+0x1d88>
85dc: 20 91 4c 01 lds r18, 0x014C
85e0: 24 9f mul r18, r20
85e2: c0 01 movw r24, r0
85e4: 25 9f mul r18, r21
85e6: 90 0d add r25, r0
85e8: 11 24 eor r1, r1
85ea: b1 01 movw r22, r2
85ec: 53 e0 ldi r21, 0x03 ; 3
85ee: 75 95 asr r23
85f0: 67 95 ror r22
85f2: 5a 95 dec r21
85f4: e1 f7 brne .-8 ; 0x85ee <MotorRegler+0x1d56>
85f6: 6e 5f subi r22, 0xFE ; 254
85f8: 7f 4f sbci r23, 0xFF ; 255
85fa: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
85fe: cb 01 movw r24, r22
8600: aa 27 eor r26, r26
8602: 97 fd sbrc r25, 7
8604: a0 95 com r26
8606: ba 2f mov r27, r26
8608: 8c 0d add r24, r12
860a: 9d 1d adc r25, r13
860c: ae 1d adc r26, r14
860e: bf 1d adc r27, r15
8610: 80 93 4b 06 sts 0x064B, r24
8614: 90 93 4c 06 sts 0x064C, r25
8618: a0 93 4d 06 sts 0x064D, r26
861c: b0 93 4e 06 sts 0x064E, r27
8620: 80 91 ec 03 lds r24, 0x03EC
8624: 81 11 cpse r24, r1
8626: 24 c0 rjmp .+72 ; 0x8670 <MotorRegler+0x1dd8>
8628: 80 91 1a 04 lds r24, 0x041A
862c: 90 91 1b 04 lds r25, 0x041B
8630: 88 19 sub r24, r8
8632: 99 09 sbc r25, r9
8634: 84 5e subi r24, 0xE4 ; 228
8636: 9d 4f sbci r25, 0xFD ; 253
8638: 68 e6 ldi r22, 0x68 ; 104
863a: 71 e0 ldi r23, 0x01 ; 1
863c: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
8640: 84 5b subi r24, 0xB4 ; 180
8642: 91 09 sbc r25, r1
8644: 40 91 37 01 lds r20, 0x0137
8648: 46 95 lsr r20
864a: 48 9f mul r20, r24
864c: 90 01 movw r18, r0
864e: 49 9f mul r20, r25
8650: 30 0d add r19, r0
8652: 11 24 eor r1, r1
8654: 37 ff sbrs r19, 7
8656: 02 c0 rjmp .+4 ; 0x865c <MotorRegler+0x1dc4>
8658: 21 5f subi r18, 0xF1 ; 241
865a: 3f 4f sbci r19, 0xFF ; 255
865c: 44 e0 ldi r20, 0x04 ; 4
865e: 35 95 asr r19
8660: 27 95 ror r18
8662: 4a 95 dec r20
8664: e1 f7 brne .-8 ; 0x865e <MotorRegler+0x1dc6>
8666: 30 93 ef 03 sts 0x03EF, r19
866a: 20 93 ee 03 sts 0x03EE, r18
866e: 04 c0 rjmp .+8 ; 0x8678 <MotorRegler+0x1de0>
8670: 10 92 ef 03 sts 0x03EF, r1
8674: 10 92 ee 03 sts 0x03EE, r1
8678: 80 91 18 04 lds r24, 0x0418
867c: 88 23 and r24, r24
867e: 81 f0 breq .+32 ; 0x86a0 <MotorRegler+0x1e08>
8680: 10 92 20 04 sts 0x0420, r1
8684: 10 92 21 04 sts 0x0421, r1
8688: 10 92 22 04 sts 0x0422, r1
868c: 10 92 23 04 sts 0x0423, r1
8690: 10 92 24 04 sts 0x0424, r1
8694: 10 92 25 04 sts 0x0425, r1
8698: 10 92 26 04 sts 0x0426, r1
869c: 10 92 27 04 sts 0x0427, r1
86a0: 8f 81 ldd r24, Y+7 ; 0x07
86a2: 81 11 cpse r24, r1
86a4: 0f c0 rjmp .+30 ; 0x86c4 <MotorRegler+0x1e2c>
86a6: a0 91 1f 06 lds r26, 0x061F
86aa: b0 e0 ldi r27, 0x00 ; 0
86ac: a3 01 movw r20, r6
86ae: 92 01 movw r18, r4
86b0: 0e 94 45 9b call 0x1368a ; 0x1368a <__muluhisi3>
86b4: 28 ef ldi r18, 0xF8 ; 248
86b6: 3a e2 ldi r19, 0x2A ; 42
86b8: 40 e0 ldi r20, 0x00 ; 0
86ba: 50 e0 ldi r21, 0x00 ; 0
86bc: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
86c0: 19 01 movw r2, r18
86c2: 02 c0 rjmp .+4 ; 0x86c8 <MotorRegler+0x1e30>
86c4: 21 2c mov r2, r1
86c6: 31 2c mov r3, r1
86c8: 9d 85 ldd r25, Y+13 ; 0x0d
86ca: 91 11 cpse r25, r1
86cc: 12 c0 rjmp .+36 ; 0x86f2 <MotorRegler+0x1e5a>
86ce: a0 91 1f 06 lds r26, 0x061F
86d2: b0 e0 ldi r27, 0x00 ; 0
86d4: 2b 81 ldd r18, Y+3 ; 0x03
86d6: 3c 81 ldd r19, Y+4 ; 0x04
86d8: 4d 81 ldd r20, Y+5 ; 0x05
86da: 5e 81 ldd r21, Y+6 ; 0x06
86dc: 0e 94 45 9b call 0x1368a ; 0x1368a <__muluhisi3>
86e0: 28 ef ldi r18, 0xF8 ; 248
86e2: 3a e2 ldi r19, 0x2A ; 42
86e4: 40 e0 ldi r20, 0x00 ; 0
86e6: 50 e0 ldi r21, 0x00 ; 0
86e8: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
86ec: 38 87 std Y+8, r19 ; 0x08
86ee: 2f 83 std Y+7, r18 ; 0x07
86f0: 02 c0 rjmp .+4 ; 0x86f6 <MotorRegler+0x1e5e>
86f2: 18 86 std Y+8, r1 ; 0x08
86f4: 1f 82 std Y+7, r1 ; 0x07
86f6: 80 91 fb 05 lds r24, 0x05FB
86fa: 90 91 fc 05 lds r25, 0x05FC
86fe: 89 3c cpi r24, 0xC9 ; 201
8700: 91 05 cpc r25, r1
8702: 1c f0 brlt .+6 ; 0x870a <MotorRegler+0x1e72>
8704: 88 ec ldi r24, 0xC8 ; 200
8706: 90 e0 ldi r25, 0x00 ; 0
8708: 05 c0 rjmp .+10 ; 0x8714 <MotorRegler+0x1e7c>
870a: 88 33 cpi r24, 0x38 ; 56
870c: 9f 4f sbci r25, 0xFF ; 255
870e: 34 f4 brge .+12 ; 0x871c <MotorRegler+0x1e84>
8710: 88 e3 ldi r24, 0x38 ; 56
8712: 9f ef ldi r25, 0xFF ; 255
8714: 90 93 fc 05 sts 0x05FC, r25
8718: 80 93 fb 05 sts 0x05FB, r24
871c: 80 91 02 06 lds r24, 0x0602
8720: 90 91 03 06 lds r25, 0x0603
8724: 89 3c cpi r24, 0xC9 ; 201
8726: 91 05 cpc r25, r1
8728: 1c f0 brlt .+6 ; 0x8730 <MotorRegler+0x1e98>
872a: 88 ec ldi r24, 0xC8 ; 200
872c: 90 e0 ldi r25, 0x00 ; 0
872e: 05 c0 rjmp .+10 ; 0x873a <MotorRegler+0x1ea2>
8730: 88 33 cpi r24, 0x38 ; 56
8732: 9f 4f sbci r25, 0xFF ; 255
8734: 34 f4 brge .+12 ; 0x8742 <MotorRegler+0x1eaa>
8736: 88 e3 ldi r24, 0x38 ; 56
8738: 9f ef ldi r25, 0xFF ; 255
873a: 90 93 03 06 sts 0x0603, r25
873e: 80 93 02 06 sts 0x0602, r24
8742: a0 91 04 06 lds r26, 0x0604
8746: b0 91 05 06 lds r27, 0x0605
874a: 80 91 49 06 lds r24, 0x0649
874e: 40 91 fb 05 lds r20, 0x05FB
8752: 50 91 fc 05 lds r21, 0x05FC
8756: a8 2e mov r10, r24
8758: b1 2c mov r11, r1
875a: 95 01 movw r18, r10
875c: 0e 94 3f 9b call 0x1367e ; 0x1367e <__usmulhisi3>
8760: 8a 01 movw r16, r20
8762: 22 27 eor r18, r18
8764: 17 fd sbrc r17, 7
8766: 20 95 com r18
8768: 32 2f mov r19, r18
876a: b7 e0 ldi r27, 0x07 ; 7
876c: 00 0f add r16, r16
876e: 11 1f adc r17, r17
8770: 22 1f adc r18, r18
8772: 33 1f adc r19, r19
8774: ba 95 dec r27
8776: d1 f7 brne .-12 ; 0x876c <MotorRegler+0x1ed4>
8778: 60 0f add r22, r16
877a: 71 1f adc r23, r17
877c: 82 1f adc r24, r18
877e: 93 1f adc r25, r19
8780: 10 e4 ldi r17, 0x40 ; 64
8782: c1 2e mov r12, r17
8784: d1 2c mov r13, r1
8786: e1 2c mov r14, r1
8788: f1 2c mov r15, r1
878a: a7 01 movw r20, r14
878c: 96 01 movw r18, r12
878e: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
8792: 81 01 movw r16, r2
8794: 02 0f add r16, r18
8796: 13 1f adc r17, r19
8798: 10 93 05 06 sts 0x0605, r17
879c: 00 93 04 06 sts 0x0604, r16
87a0: a0 91 f9 05 lds r26, 0x05F9
87a4: b0 91 fa 05 lds r27, 0x05FA
87a8: 40 91 02 06 lds r20, 0x0602
87ac: 50 91 03 06 lds r21, 0x0603
87b0: 95 01 movw r18, r10
87b2: 0e 94 3f 9b call 0x1367e ; 0x1367e <__usmulhisi3>
87b6: 4a 01 movw r8, r20
87b8: aa 24 eor r10, r10
87ba: 97 fc sbrc r9, 7
87bc: a0 94 com r10
87be: ba 2c mov r11, r10
87c0: 27 e0 ldi r18, 0x07 ; 7
87c2: 88 0c add r8, r8
87c4: 99 1c adc r9, r9
87c6: aa 1c adc r10, r10
87c8: bb 1c adc r11, r11
87ca: 2a 95 dec r18
87cc: d1 f7 brne .-12 ; 0x87c2 <MotorRegler+0x1f2a>
87ce: 68 0d add r22, r8
87d0: 79 1d adc r23, r9
87d2: 8a 1d adc r24, r10
87d4: 9b 1d adc r25, r11
87d6: a7 01 movw r20, r14
87d8: 96 01 movw r18, r12
87da: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
87de: af 80 ldd r10, Y+7 ; 0x07
87e0: b8 84 ldd r11, Y+8 ; 0x08
87e2: a2 0e add r10, r18
87e4: b3 1e adc r11, r19
87e6: b0 92 fa 05 sts 0x05FA, r11
87ea: a0 92 f9 05 sts 0x05F9, r10
87ee: a9 85 ldd r26, Y+9 ; 0x09
87f0: ba 85 ldd r27, Y+10 ; 0x0a
87f2: aa 0f add r26, r26
87f4: bb 1f adc r27, r27
87f6: 20 91 00 06 lds r18, 0x0600
87fa: 30 e0 ldi r19, 0x00 ; 0
87fc: 0e 94 3f 9b call 0x1367e ; 0x1367e <__usmulhisi3>
8800: a7 01 movw r20, r14
8802: 96 01 movw r18, r12
8804: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
8808: 69 01 movw r12, r18
880a: 7a 01 movw r14, r20
880c: a0 91 0e 06 lds r26, 0x060E
8810: 20 91 38 04 lds r18, 0x0438
8814: 30 91 39 04 lds r19, 0x0439
8818: 40 91 3a 04 lds r20, 0x043A
881c: 50 91 3b 04 lds r21, 0x043B
8820: b0 e0 ldi r27, 0x00 ; 0
8822: 0e 94 45 9b call 0x1368a ; 0x1368a <__muluhisi3>
8826: 20 ef ldi r18, 0xF0 ; 240
8828: 35 e5 ldi r19, 0x55 ; 85
882a: 40 e0 ldi r20, 0x00 ; 0
882c: 50 e0 ldi r21, 0x00 ; 0
882e: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
8832: c2 0e add r12, r18
8834: d3 1e adc r13, r19
8836: d0 92 45 06 sts 0x0645, r13
883a: c0 92 44 06 sts 0x0644, r12
883e: 01 30 cpi r16, 0x01 ; 1
8840: 10 41 sbci r17, 0x10 ; 16
8842: 34 f0 brlt .+12 ; 0x8850 <MotorRegler+0x1fb8>
8844: 80 e0 ldi r24, 0x00 ; 0
8846: 90 e1 ldi r25, 0x10 ; 16
8848: 90 93 05 06 sts 0x0605, r25
884c: 80 93 04 06 sts 0x0604, r24
8850: 80 91 04 06 lds r24, 0x0604
8854: 90 91 05 06 lds r25, 0x0605
8858: 81 15 cp r24, r1
885a: 90 4f sbci r25, 0xF0 ; 240
885c: 34 f4 brge .+12 ; 0x886a <MotorRegler+0x1fd2>
885e: 80 e0 ldi r24, 0x00 ; 0
8860: 90 ef ldi r25, 0xF0 ; 240
8862: 90 93 05 06 sts 0x0605, r25
8866: 80 93 04 06 sts 0x0604, r24
886a: 21 e0 ldi r18, 0x01 ; 1
886c: a2 16 cp r10, r18
886e: 20 e1 ldi r18, 0x10 ; 16
8870: b2 06 cpc r11, r18
8872: 34 f0 brlt .+12 ; 0x8880 <MotorRegler+0x1fe8>
8874: 80 e0 ldi r24, 0x00 ; 0
8876: 90 e1 ldi r25, 0x10 ; 16
8878: 90 93 fa 05 sts 0x05FA, r25
887c: 80 93 f9 05 sts 0x05F9, r24
8880: 80 91 f9 05 lds r24, 0x05F9
8884: 90 91 fa 05 lds r25, 0x05FA
8888: 81 15 cp r24, r1
888a: 90 4f sbci r25, 0xF0 ; 240
888c: 34 f4 brge .+12 ; 0x889a <MotorRegler+0x2002>
888e: 80 e0 ldi r24, 0x00 ; 0
8890: 90 ef ldi r25, 0xF0 ; 240
8892: 90 93 fa 05 sts 0x05FA, r25
8896: 80 93 f9 05 sts 0x05F9, r24
889a: 41 e0 ldi r20, 0x01 ; 1
889c: c4 16 cp r12, r20
889e: 40 e1 ldi r20, 0x10 ; 16
88a0: d4 06 cpc r13, r20
88a2: 34 f0 brlt .+12 ; 0x88b0 <MotorRegler+0x2018>
88a4: 80 e0 ldi r24, 0x00 ; 0
88a6: 90 e1 ldi r25, 0x10 ; 16
88a8: 90 93 45 06 sts 0x0645, r25
88ac: 80 93 44 06 sts 0x0644, r24
88b0: 80 91 44 06 lds r24, 0x0644
88b4: 90 91 45 06 lds r25, 0x0645
88b8: 81 15 cp r24, r1
88ba: 90 4f sbci r25, 0xF0 ; 240
88bc: 34 f4 brge .+12 ; 0x88ca <MotorRegler+0x2032>
88be: 80 e0 ldi r24, 0x00 ; 0
88c0: 90 ef ldi r25, 0xF0 ; 240
88c2: 90 93 45 06 sts 0x0645, r25
88c6: 80 93 44 06 sts 0x0644, r24
88ca: 80 91 c9 03 lds r24, 0x03C9
88ce: 85 fd sbrc r24, 5
88d0: 11 c0 rjmp .+34 ; 0x88f4 <MotorRegler+0x205c>
88d2: 60 91 1a 01 lds r22, 0x011A
88d6: 70 91 1b 01 lds r23, 0x011B
88da: 20 91 53 01 lds r18, 0x0153
88de: a9 81 ldd r26, Y+1 ; 0x01
88e0: ba 81 ldd r27, Y+2 ; 0x02
88e2: 2a 9f mul r18, r26
88e4: c0 01 movw r24, r0
88e6: 2b 9f mul r18, r27
88e8: 90 0d add r25, r0
88ea: 11 24 eor r1, r1
88ec: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
88f0: 7a 83 std Y+2, r23 ; 0x02
88f2: 69 83 std Y+1, r22 ; 0x01
88f4: 80 91 8b 03 lds r24, 0x038B
88f8: 9f ef ldi r25, 0xFF ; 255
88fa: 98 0f add r25, r24
88fc: 90 93 8b 03 sts 0x038B, r25
8900: 81 11 cpse r24, r1
8902: 5a c0 rjmp .+180 ; 0x89b8 <MotorRegler+0x2120>
8904: 80 91 89 03 lds r24, 0x0389
8908: 90 91 8a 03 lds r25, 0x038A
890c: 89 2b or r24, r25
890e: 41 f4 brne .+16 ; 0x8920 <MotorRegler+0x2088>
8910: 80 91 1a 01 lds r24, 0x011A
8914: 90 91 1b 01 lds r25, 0x011B
8918: 90 93 8a 03 sts 0x038A, r25
891c: 80 93 89 03 sts 0x0389, r24
8920: 20 91 1a 01 lds r18, 0x011A
8924: 30 91 1b 01 lds r19, 0x011B
8928: 80 91 89 03 lds r24, 0x0389
892c: 90 91 8a 03 lds r25, 0x038A
8930: 82 17 cp r24, r18
8932: 93 07 cpc r25, r19
8934: 10 f4 brcc .+4 ; 0x893a <MotorRegler+0x20a2>
8936: 01 96 adiw r24, 0x01 ; 1
8938: 08 c0 rjmp .+16 ; 0x894a <MotorRegler+0x20b2>
893a: 20 91 1a 01 lds r18, 0x011A
893e: 30 91 1b 01 lds r19, 0x011B
8942: 28 17 cp r18, r24
8944: 39 07 cpc r19, r25
8946: 28 f4 brcc .+10 ; 0x8952 <MotorRegler+0x20ba>
8948: 01 97 sbiw r24, 0x01 ; 1
894a: 90 93 8a 03 sts 0x038A, r25
894e: 80 93 89 03 sts 0x0389, r24
8952: 84 e6 ldi r24, 0x64 ; 100
8954: 80 93 8b 03 sts 0x038B, r24
8958: 80 91 89 03 lds r24, 0x0389
895c: 90 91 8a 03 lds r25, 0x038A
8960: 20 91 63 04 lds r18, 0x0463
8964: 30 e0 ldi r19, 0x00 ; 0
8966: 82 17 cp r24, r18
8968: 93 07 cpc r25, r19
896a: 10 f4 brcc .+4 ; 0x8970 <MotorRegler+0x20d8>
896c: 2a e0 ldi r18, 0x0A ; 10
896e: 0c c0 rjmp .+24 ; 0x8988 <MotorRegler+0x20f0>
8970: 40 91 51 01 lds r20, 0x0151
8974: 24 0f add r18, r20
8976: 31 1d adc r19, r1
8978: 28 17 cp r18, r24
897a: 39 07 cpc r19, r25
897c: 38 f4 brcc .+14 ; 0x898c <MotorRegler+0x20f4>
897e: 20 91 bf 03 lds r18, 0x03BF
8982: 22 23 and r18, r18
8984: 19 f0 breq .+6 ; 0x898c <MotorRegler+0x20f4>
8986: 21 50 subi r18, 0x01 ; 1
8988: 20 93 bf 03 sts 0x03BF, r18
898c: 20 91 62 04 lds r18, 0x0462
8990: 30 e0 ldi r19, 0x00 ; 0
8992: 82 17 cp r24, r18
8994: 93 07 cpc r25, r19
8996: 10 f4 brcc .+4 ; 0x899c <MotorRegler+0x2104>
8998: 89 e1 ldi r24, 0x19 ; 25
899a: 0c c0 rjmp .+24 ; 0x89b4 <MotorRegler+0x211c>
899c: 40 91 51 01 lds r20, 0x0151
89a0: 24 0f add r18, r20
89a2: 31 1d adc r19, r1
89a4: 28 17 cp r18, r24
89a6: 39 07 cpc r19, r25
89a8: 38 f4 brcc .+14 ; 0x89b8 <MotorRegler+0x2120>
89aa: 80 91 be 03 lds r24, 0x03BE
89ae: 88 23 and r24, r24
89b0: 19 f0 breq .+6 ; 0x89b8 <MotorRegler+0x2120>
89b2: 81 50 subi r24, 0x01 ; 1
89b4: 80 93 be 03 sts 0x03BE, r24
89b8: 80 91 bf 03 lds r24, 0x03BF
89bc: 88 23 and r24, r24
89be: d1 f0 breq .+52 ; 0x89f4 <MotorRegler+0x215c>
89c0: 80 91 f2 03 lds r24, 0x03F2
89c4: 90 91 f3 03 lds r25, 0x03F3
89c8: a0 91 f4 03 lds r26, 0x03F4
89cc: b0 91 f5 03 lds r27, 0x03F5
89d0: b7 fd sbrc r27, 7
89d2: 10 c0 rjmp .+32 ; 0x89f4 <MotorRegler+0x215c>
89d4: 80 91 8d 05 lds r24, 0x058D
89d8: 80 93 f1 03 sts 0x03F1, r24
89dc: 80 ee ldi r24, 0xE0 ; 224
89de: 91 eb ldi r25, 0xB1 ; 177
89e0: af ef ldi r26, 0xFF ; 255
89e2: bf ef ldi r27, 0xFF ; 255
89e4: 80 93 f2 03 sts 0x03F2, r24
89e8: 90 93 f3 03 sts 0x03F3, r25
89ec: a0 93 f4 03 sts 0x03F4, r26
89f0: b0 93 f5 03 sts 0x03F5, r27
89f4: 80 91 ca 04 lds r24, 0x04CA
89f8: 81 11 cpse r24, r1
89fa: 02 c0 rjmp .+4 ; 0x8a00 <MotorRegler+0x2168>
89fc: 0e 94 2f 82 call 0x1045e ; 0x1045e <SPI_TransmitByte>
8a00: e9 81 ldd r30, Y+1 ; 0x01
8a02: fa 81 ldd r31, Y+2 ; 0x02
8a04: ee 0f add r30, r30
8a06: ff 1f adc r31, r31
8a08: ee 0f add r30, r30
8a0a: ff 1f adc r31, r31
8a0c: fa 83 std Y+2, r31 ; 0x02
8a0e: e9 83 std Y+1, r30 ; 0x01
8a10: 80 91 39 06 lds r24, 0x0639
8a14: 80 fd sbrc r24, 0
8a16: 02 c0 rjmp .+4 ; 0x8a1c <MotorRegler+0x2184>
8a18: 0c 94 cc 4d jmp 0x9b98 ; 0x9b98 <MotorRegler+0x3300>
8a1c: 80 91 e4 03 lds r24, 0x03E4
8a20: 81 11 cpse r24, r1
8a22: 0c 94 cc 4d jmp 0x9b98 ; 0x9b98 <MotorRegler+0x3300>
8a26: 80 91 e5 03 lds r24, 0x03E5
8a2a: 81 11 cpse r24, r1
8a2c: 0c 94 cc 4d jmp 0x9b98 ; 0x9b98 <MotorRegler+0x3300>
8a30: 80 91 3f 0a lds r24, 0x0A3F
8a34: 8f 77 andi r24, 0x7F ; 127
8a36: 11 f0 breq .+4 ; 0x8a3c <MotorRegler+0x21a4>
8a38: 0c 94 cc 4d jmp 0x9b98 ; 0x9b98 <MotorRegler+0x3300>
8a3c: 80 91 57 04 lds r24, 0x0457
8a40: 90 91 58 04 lds r25, 0x0458
8a44: 89 2b or r24, r25
8a46: 09 f0 breq .+2 ; 0x8a4a <MotorRegler+0x21b2>
8a48: 4b c0 rjmp .+150 ; 0x8ae0 <MotorRegler+0x2248>
8a4a: 80 91 10 01 lds r24, 0x0110
8a4e: 90 91 11 01 lds r25, 0x0111
8a52: 89 39 cpi r24, 0x99 ; 153
8a54: 93 40 sbci r25, 0x03 ; 3
8a56: 98 f0 brcs .+38 ; 0x8a7e <MotorRegler+0x21e6>
8a58: 87 b5 in r24, 0x27 ; 39
8a5a: 8a 3f cpi r24, 0xFA ; 250
8a5c: 60 f4 brcc .+24 ; 0x8a76 <MotorRegler+0x21de>
8a5e: 80 91 56 03 lds r24, 0x0356
8a62: 81 50 subi r24, 0x01 ; 1
8a64: 80 93 56 03 sts 0x0356, r24
8a68: 90 91 10 05 lds r25, 0x0510
8a6c: 25 e0 ldi r18, 0x05 ; 5
8a6e: 82 9f mul r24, r18
8a70: 90 19 sub r25, r0
8a72: 11 24 eor r1, r1
8a74: 19 c0 rjmp .+50 ; 0x8aa8 <MotorRegler+0x2210>
8a76: 81 e0 ldi r24, 0x01 ; 1
8a78: 80 93 88 03 sts 0x0388, r24
8a7c: 5d c0 rjmp .+186 ; 0x8b38 <MotorRegler+0x22a0>
8a7e: 80 91 10 01 lds r24, 0x0110
8a82: 90 91 11 01 lds r25, 0x0111
8a86: 84 36 cpi r24, 0x64 ; 100
8a88: 91 05 cpc r25, r1
8a8a: 28 f5 brcc .+74 ; 0x8ad6 <MotorRegler+0x223e>
8a8c: 87 b5 in r24, 0x27 ; 39
8a8e: 86 30 cpi r24, 0x06 ; 6
8a90: f0 f0 brcs .+60 ; 0x8ace <MotorRegler+0x2236>
8a92: 80 91 56 03 lds r24, 0x0356
8a96: 8f 5f subi r24, 0xFF ; 255
8a98: 80 93 56 03 sts 0x0356, r24
8a9c: 90 91 10 05 lds r25, 0x0510
8aa0: 35 e0 ldi r19, 0x05 ; 5
8aa2: 83 9f mul r24, r19
8aa4: 90 19 sub r25, r0
8aa6: 11 24 eor r1, r1
8aa8: 97 bd out 0x27, r25 ; 39
8aaa: 87 b5 in r24, 0x27 ; 39
8aac: 80 95 com r24
8aae: 88 bd out 0x28, r24 ; 40
8ab0: 8c e2 ldi r24, 0x2C ; 44
8ab2: 91 e0 ldi r25, 0x01 ; 1
8ab4: 90 93 cc 04 sts 0x04CC, r25
8ab8: 80 93 cb 04 sts 0x04CB, r24
8abc: 8e e5 ldi r24, 0x5E ; 94
8abe: 91 e0 ldi r25, 0x01 ; 1
8ac0: 90 93 58 04 sts 0x0458, r25
8ac4: 80 93 57 04 sts 0x0457, r24
8ac8: 0e 94 84 1a call 0x3508 ; 0x3508 <CalcExpandBaroStep>
8acc: 35 c0 rjmp .+106 ; 0x8b38 <MotorRegler+0x22a0>
8ace: 81 e0 ldi r24, 0x01 ; 1
8ad0: 80 93 87 03 sts 0x0387, r24
8ad4: 31 c0 rjmp .+98 ; 0x8b38 <MotorRegler+0x22a0>
8ad6: 10 92 87 03 sts 0x0387, r1
8ada: 10 92 88 03 sts 0x0388, r1
8ade: 2c c0 rjmp .+88 ; 0x8b38 <MotorRegler+0x22a0>
8ae0: 10 92 55 03 sts 0x0355, r1
8ae4: 10 92 54 03 sts 0x0354, r1
8ae8: 80 91 c0 03 lds r24, 0x03C0
8aec: 88 23 and r24, r24
8aee: 21 f0 breq .+8 ; 0x8af8 <MotorRegler+0x2260>
8af0: 81 e0 ldi r24, 0x01 ; 1
8af2: 0e 94 10 16 call 0x2c20 ; 0x2c20 <ACC_AltitudeFusion>
8af6: 17 c0 rjmp .+46 ; 0x8b26 <MotorRegler+0x228e>
8af8: 80 91 fc 03 lds r24, 0x03FC
8afc: 90 91 fd 03 lds r25, 0x03FD
8b00: a0 91 fe 03 lds r26, 0x03FE
8b04: b0 91 ff 03 lds r27, 0x03FF
8b08: e4 e0 ldi r30, 0x04 ; 4
8b0a: 88 0f add r24, r24
8b0c: 99 1f adc r25, r25
8b0e: aa 1f adc r26, r26
8b10: bb 1f adc r27, r27
8b12: ea 95 dec r30
8b14: d1 f7 brne .-12 ; 0x8b0a <MotorRegler+0x2272>
8b16: 80 93 57 03 sts 0x0357, r24
8b1a: 90 93 58 03 sts 0x0358, r25
8b1e: a0 93 59 03 sts 0x0359, r26
8b22: b0 93 5a 03 sts 0x035A, r27
8b26: 80 91 57 04 lds r24, 0x0457
8b2a: 90 91 58 04 lds r25, 0x0458
8b2e: 01 97 sbiw r24, 0x01 ; 1
8b30: 90 93 58 04 sts 0x0458, r25
8b34: 80 93 57 04 sts 0x0457, r24
8b38: 90 91 39 06 lds r25, 0x0639
8b3c: 80 91 df 03 lds r24, 0x03DF
8b40: 91 ff sbrs r25, 1
8b42: 3c c0 rjmp .+120 ; 0x8bbc <MotorRegler+0x2324>
8b44: 82 33 cpi r24, 0x32 ; 50
8b46: 48 f5 brcc .+82 ; 0x8b9a <MotorRegler+0x2302>
8b48: 80 91 1c 01 lds r24, 0x011C
8b4c: 9f ef ldi r25, 0xFF ; 255
8b4e: 98 0f add r25, r24
8b50: 90 93 1c 01 sts 0x011C, r25
8b54: 81 11 cpse r24, r1
8b56: 4e c0 rjmp .+156 ; 0x8bf4 <MotorRegler+0x235c>
8b58: 80 91 57 01 lds r24, 0x0157
8b5c: 81 11 cpse r24, r1
8b5e: 07 c0 rjmp .+14 ; 0x8b6e <MotorRegler+0x22d6>
8b60: 80 91 19 04 lds r24, 0x0419
8b64: 88 23 and r24, r24
8b66: 19 f0 breq .+6 ; 0x8b6e <MotorRegler+0x22d6>
8b68: 88 e2 ldi r24, 0x28 ; 40
8b6a: 80 93 57 01 sts 0x0157, r24
8b6e: 10 92 19 04 sts 0x0419, r1
8b72: 80 91 fc 03 lds r24, 0x03FC
8b76: 90 91 fd 03 lds r25, 0x03FD
8b7a: a0 91 fe 03 lds r26, 0x03FE
8b7e: b0 91 ff 03 lds r27, 0x03FF
8b82: 80 93 f8 03 sts 0x03F8, r24
8b86: 90 93 f9 03 sts 0x03F9, r25
8b8a: a0 93 fa 03 sts 0x03FA, r26
8b8e: b0 93 fb 03 sts 0x03FB, r27
8b92: 81 e0 ldi r24, 0x01 ; 1
8b94: 80 93 1c 01 sts 0x011C, r24
8b98: 2d c0 rjmp .+90 ; 0x8bf4 <MotorRegler+0x235c>
8b9a: 87 34 cpi r24, 0x47 ; 71
8b9c: 58 f1 brcs .+86 ; 0x8bf4 <MotorRegler+0x235c>
8b9e: 80 91 57 01 lds r24, 0x0157
8ba2: 81 11 cpse r24, r1
8ba4: 07 c0 rjmp .+14 ; 0x8bb4 <MotorRegler+0x231c>
8ba6: 80 91 19 04 lds r24, 0x0419
8baa: 81 11 cpse r24, r1
8bac: 03 c0 rjmp .+6 ; 0x8bb4 <MotorRegler+0x231c>
8bae: 87 e2 ldi r24, 0x27 ; 39
8bb0: 80 93 57 01 sts 0x0157, r24
8bb4: 88 ec ldi r24, 0xC8 ; 200
8bb6: 80 93 1c 01 sts 0x011C, r24
8bba: 19 c0 rjmp .+50 ; 0x8bee <MotorRegler+0x2356>
8bbc: 20 91 25 01 lds r18, 0x0125
8bc0: 30 91 26 01 lds r19, 0x0126
8bc4: 28 0f add r18, r24
8bc6: 31 1d adc r19, r1
8bc8: 40 91 2d 05 lds r20, 0x052D
8bcc: 42 9f mul r20, r18
8bce: c0 01 movw r24, r0
8bd0: 43 9f mul r20, r19
8bd2: 90 0d add r25, r0
8bd4: 11 24 eor r1, r1
8bd6: aa 27 eor r26, r26
8bd8: 97 fd sbrc r25, 7
8bda: a0 95 com r26
8bdc: ba 2f mov r27, r26
8bde: 80 93 f8 03 sts 0x03F8, r24
8be2: 90 93 f9 03 sts 0x03F9, r25
8be6: a0 93 fa 03 sts 0x03FA, r26
8bea: b0 93 fb 03 sts 0x03FB, r27
8bee: 81 e0 ldi r24, 0x01 ; 1
8bf0: 80 93 19 04 sts 0x0419, r24
8bf4: c0 90 21 01 lds r12, 0x0121
8bf8: d0 90 22 01 lds r13, 0x0122
8bfc: e0 90 23 01 lds r14, 0x0123
8c00: f0 90 24 01 lds r15, 0x0124
8c04: 60 91 3c 04 lds r22, 0x043C
8c08: 70 91 3d 04 lds r23, 0x043D
8c0c: 80 91 3e 04 lds r24, 0x043E
8c10: 90 91 3f 04 lds r25, 0x043F
8c14: a7 01 movw r20, r14
8c16: 96 01 movw r18, r12
8c18: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
8c1c: 49 01 movw r8, r18
8c1e: 5a 01 movw r10, r20
8c20: 60 91 40 04 lds r22, 0x0440
8c24: 70 91 41 04 lds r23, 0x0441
8c28: 80 91 42 04 lds r24, 0x0442
8c2c: 90 91 43 04 lds r25, 0x0443
8c30: a7 01 movw r20, r14
8c32: 96 01 movw r18, r12
8c34: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
8c38: b4 01 movw r22, r8
8c3a: c9 01 movw r24, r18
8c3c: 0e 94 12 0d call 0x1a24 ; 0x1a24 <ihypot>
8c40: 20 91 36 01 lds r18, 0x0136
8c44: ac 01 movw r20, r24
8c46: 24 9f mul r18, r20
8c48: c0 01 movw r24, r0
8c4a: 25 9f mul r18, r21
8c4c: 90 0d add r25, r0
8c4e: 11 24 eor r1, r1
8c50: 64 e6 ldi r22, 0x64 ; 100
8c52: 70 e0 ldi r23, 0x00 ; 0
8c54: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
8c58: cb 01 movw r24, r22
8c5a: 6c 33 cpi r22, 0x3C ; 60
8c5c: 71 05 cpc r23, r1
8c5e: 14 f0 brlt .+4 ; 0x8c64 <MotorRegler+0x23cc>
8c60: 8c e3 ldi r24, 0x3C ; 60
8c62: 90 e0 ldi r25, 0x00 ; 0
8c64: 0e 94 cd 7d call 0xfb9a ; 0xfb9a <c_cos_8192>
8c68: 90 93 0b 06 sts 0x060B, r25
8c6c: 80 93 0a 06 sts 0x060A, r24
8c70: 80 e2 ldi r24, 0x20 ; 32
8c72: 80 93 20 01 sts 0x0120, r24
8c76: 10 92 f7 03 sts 0x03F7, r1
8c7a: 10 92 f6 03 sts 0x03F6, r1
8c7e: 80 91 19 04 lds r24, 0x0419
8c82: 88 23 and r24, r24
8c84: 09 f4 brne .+2 ; 0x8c88 <MotorRegler+0x23f0>
8c86: 5d c6 rjmp .+3258 ; 0x9942 <MotorRegler+0x30aa>
8c88: 80 91 c9 03 lds r24, 0x03C9
8c8c: 84 fd sbrc r24, 4
8c8e: 59 c6 rjmp .+3250 ; 0x9942 <MotorRegler+0x30aa>
8c90: 80 91 c8 03 lds r24, 0x03C8
8c94: 82 60 ori r24, 0x02 ; 2
8c96: 80 93 c8 03 sts 0x03C8, r24
8c9a: d0 90 1d 06 lds r13, 0x061D
8c9e: d0 fc sbrc r13, 0
8ca0: 04 c0 rjmp .+8 ; 0x8caa <MotorRegler+0x2412>
8ca2: 80 91 39 06 lds r24, 0x0639
8ca6: 81 fd sbrc r24, 1
8ca8: 0c c0 rjmp .+24 ; 0x8cc2 <MotorRegler+0x242a>
8caa: 10 92 86 03 sts 0x0386, r1
8cae: 10 92 85 03 sts 0x0385, r1
8cb2: 80 91 c9 03 lds r24, 0x03C9
8cb6: 80 6c ori r24, 0xC0 ; 192
8cb8: 80 93 c9 03 sts 0x03C9, r24
8cbc: 09 81 ldd r16, Y+1 ; 0x01
8cbe: 1a 81 ldd r17, Y+2 ; 0x02
8cc0: c2 c2 rjmp .+1412 ; 0x9246 <MotorRegler+0x29ae>
8cc2: 80 91 c9 03 lds r24, 0x03C9
8cc6: 81 ff sbrs r24, 1
8cc8: 8e c2 rjmp .+1308 ; 0x91e6 <MotorRegler+0x294e>
8cca: e0 90 0c 04 lds r14, 0x040C
8cce: f0 90 0d 04 lds r15, 0x040D
8cd2: 00 91 40 01 lds r16, 0x0140
8cd6: 10 91 41 01 lds r17, 0x0141
8cda: c8 01 movw r24, r16
8cdc: 0f 96 adiw r24, 0x0f ; 15
8cde: 80 90 4a 03 lds r8, 0x034A
8ce2: 90 90 4b 03 lds r9, 0x034B
8ce6: a0 90 4c 03 lds r10, 0x034C
8cea: b0 90 4d 03 lds r11, 0x034D
8cee: 8e 15 cp r24, r14
8cf0: 9f 05 cpc r25, r15
8cf2: 08 f0 brcs .+2 ; 0x8cf6 <MotorRegler+0x245e>
8cf4: 7d c0 rjmp .+250 ; 0x8df0 <MotorRegler+0x2558>
8cf6: 80 91 87 03 lds r24, 0x0387
8cfa: 81 11 cpse r24, r1
8cfc: 79 c0 rjmp .+242 ; 0x8df0 <MotorRegler+0x2558>
8cfe: 80 91 c9 03 lds r24, 0x03C9
8d02: 87 ff sbrs r24, 7
8d04: 0d c0 rjmp .+26 ; 0x8d20 <MotorRegler+0x2488>
8d06: 80 91 c9 03 lds r24, 0x03C9
8d0a: 8f 77 andi r24, 0x7F ; 127
8d0c: 80 93 c9 03 sts 0x03C9, r24
8d10: 80 92 f8 03 sts 0x03F8, r8
8d14: 90 92 f9 03 sts 0x03F9, r9
8d18: a0 92 fa 03 sts 0x03FA, r10
8d1c: b0 92 fb 03 sts 0x03FB, r11
8d20: 40 90 01 06 lds r4, 0x0601
8d24: 44 20 and r4, r4
8d26: 91 f1 breq .+100 ; 0x8d8c <MotorRegler+0x24f4>
8d28: 51 2c mov r5, r1
8d2a: 61 2c mov r6, r1
8d2c: 71 2c mov r7, r1
8d2e: 60 91 f8 03 lds r22, 0x03F8
8d32: 70 91 f9 03 lds r23, 0x03F9
8d36: 80 91 fa 03 lds r24, 0x03FA
8d3a: 90 91 fb 03 lds r25, 0x03FB
8d3e: 24 e6 ldi r18, 0x64 ; 100
8d40: 30 e0 ldi r19, 0x00 ; 0
8d42: 40 e0 ldi r20, 0x00 ; 0
8d44: 50 e0 ldi r21, 0x00 ; 0
8d46: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
8d4a: 42 16 cp r4, r18
8d4c: 53 06 cpc r5, r19
8d4e: 64 06 cpc r6, r20
8d50: 75 06 cpc r7, r21
8d52: e4 f4 brge .+56 ; 0x8d8c <MotorRegler+0x24f4>
8d54: 80 91 57 01 lds r24, 0x0157
8d58: 81 11 cpse r24, r1
8d5a: 16 c0 rjmp .+44 ; 0x8d88 <MotorRegler+0x24f0>
8d5c: 60 91 fc 03 lds r22, 0x03FC
8d60: 70 91 fd 03 lds r23, 0x03FD
8d64: 80 91 fe 03 lds r24, 0x03FE
8d68: 90 91 ff 03 lds r25, 0x03FF
8d6c: 2f e5 ldi r18, 0x5F ; 95
8d6e: 30 e0 ldi r19, 0x00 ; 0
8d70: 40 e0 ldi r20, 0x00 ; 0
8d72: 50 e0 ldi r21, 0x00 ; 0
8d74: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
8d78: 42 16 cp r4, r18
8d7a: 53 06 cpc r5, r19
8d7c: 64 06 cpc r6, r20
8d7e: 75 06 cpc r7, r21
8d80: 1c f4 brge .+6 ; 0x8d88 <MotorRegler+0x24f0>
8d82: 8a e1 ldi r24, 0x1A ; 26
8d84: 80 93 57 01 sts 0x0157, r24
8d88: 8d e3 ldi r24, 0x3D ; 61
8d8a: 2d c0 rjmp .+90 ; 0x8de6 <MotorRegler+0x254e>
8d8c: 80 91 83 03 lds r24, 0x0383
8d90: 90 91 84 03 lds r25, 0x0384
8d94: 45 97 sbiw r24, 0x15 ; 21
8d96: 44 f0 brlt .+16 ; 0x8da8 <MotorRegler+0x2510>
8d98: 80 92 f8 03 sts 0x03F8, r8
8d9c: 90 92 f9 03 sts 0x03F9, r9
8da0: a0 92 fa 03 sts 0x03FA, r10
8da4: b0 92 fb 03 sts 0x03FB, r11
8da8: 80 91 c9 03 lds r24, 0x03C9
8dac: 80 64 ori r24, 0x40 ; 64
8dae: 80 93 c9 03 sts 0x03C9, r24
8db2: c7 01 movw r24, r14
8db4: 80 1b sub r24, r16
8db6: 91 0b sbc r25, r17
8db8: 0f 97 sbiw r24, 0x0f ; 15
8dba: 97 ff sbrs r25, 7
8dbc: 03 c0 rjmp .+6 ; 0x8dc4 <MotorRegler+0x252c>
8dbe: 91 95 neg r25
8dc0: 81 95 neg r24
8dc2: 91 09 sbc r25, r1
8dc4: 90 93 f7 03 sts 0x03F7, r25
8dc8: 80 93 f6 03 sts 0x03F6, r24
8dcc: 20 91 bf 03 lds r18, 0x03BF
8dd0: 22 23 and r18, r18
8dd2: 41 f0 breq .+16 ; 0x8de4 <MotorRegler+0x254c>
8dd4: 63 e0 ldi r22, 0x03 ; 3
8dd6: 70 e0 ldi r23, 0x00 ; 0
8dd8: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
8ddc: 70 93 f7 03 sts 0x03F7, r23
8de0: 60 93 f6 03 sts 0x03F6, r22
8de4: 8b e2 ldi r24, 0x2B ; 43
8de6: 80 93 20 01 sts 0x0120, r24
8dea: 10 92 f0 03 sts 0x03F0, r1
8dee: fd c0 rjmp .+506 ; 0x8fea <MotorRegler+0x2752>
8df0: c8 01 movw r24, r16
8df2: 0f 97 sbiw r24, 0x0f ; 15
8df4: e8 16 cp r14, r24
8df6: f9 06 cpc r15, r25
8df8: a0 f5 brcc .+104 ; 0x8e62 <MotorRegler+0x25ca>
8dfa: 80 91 88 03 lds r24, 0x0388
8dfe: 81 11 cpse r24, r1
8e00: 30 c0 rjmp .+96 ; 0x8e62 <MotorRegler+0x25ca>
8e02: 80 91 c9 03 lds r24, 0x03C9
8e06: 86 fd sbrc r24, 6
8e08: 07 c0 rjmp .+14 ; 0x8e18 <MotorRegler+0x2580>
8e0a: 80 91 83 03 lds r24, 0x0383
8e0e: 90 91 84 03 lds r25, 0x0384
8e12: 84 3d cpi r24, 0xD4 ; 212
8e14: 9e 4f sbci r25, 0xFE ; 254
8e16: 6c f4 brge .+26 ; 0x8e32 <MotorRegler+0x259a>
8e18: 80 91 c9 03 lds r24, 0x03C9
8e1c: 8f 7b andi r24, 0xBF ; 191
8e1e: 80 93 c9 03 sts 0x03C9, r24
8e22: 80 92 f8 03 sts 0x03F8, r8
8e26: 90 92 f9 03 sts 0x03F9, r9
8e2a: a0 92 fa 03 sts 0x03FA, r10
8e2e: b0 92 fb 03 sts 0x03FB, r11
8e32: 80 91 c9 03 lds r24, 0x03C9
8e36: 80 68 ori r24, 0x80 ; 128
8e38: 80 93 c9 03 sts 0x03C9, r24
8e3c: e0 1a sub r14, r16
8e3e: f1 0a sbc r15, r17
8e40: 6f e0 ldi r22, 0x0F ; 15
8e42: e6 0e add r14, r22
8e44: f1 1c adc r15, r1
8e46: f7 fe sbrs r15, 7
8e48: 03 c0 rjmp .+6 ; 0x8e50 <MotorRegler+0x25b8>
8e4a: f1 94 neg r15
8e4c: e1 94 neg r14
8e4e: f1 08 sbc r15, r1
8e50: f1 94 neg r15
8e52: e1 94 neg r14
8e54: f1 08 sbc r15, r1
8e56: f0 92 f7 03 sts 0x03F7, r15
8e5a: e0 92 f6 03 sts 0x03F6, r14
8e5e: 8d e2 ldi r24, 0x2D ; 45
8e60: c2 cf rjmp .-124 ; 0x8de6 <MotorRegler+0x254e>
8e62: 8d e3 ldi r24, 0x3D ; 61
8e64: 80 93 20 01 sts 0x0120, r24
8e68: 20 91 f1 03 lds r18, 0x03F1
8e6c: 22 23 and r18, r18
8e6e: 09 f4 brne .+2 ; 0x8e72 <MotorRegler+0x25da>
8e70: 59 c0 rjmp .+178 ; 0x8f24 <MotorRegler+0x268c>
8e72: 40 91 f2 03 lds r20, 0x03F2
8e76: 50 91 f3 03 lds r21, 0x03F3
8e7a: 60 91 f4 03 lds r22, 0x03F4
8e7e: 70 91 f5 03 lds r23, 0x03F5
8e82: 80 91 f8 03 lds r24, 0x03F8
8e86: 90 91 f9 03 lds r25, 0x03F9
8e8a: a0 91 fa 03 lds r26, 0x03FA
8e8e: b0 91 fb 03 lds r27, 0x03FB
8e92: 84 17 cp r24, r20
8e94: 95 07 cpc r25, r21
8e96: a6 07 cpc r26, r22
8e98: b7 07 cpc r27, r23
8e9a: cc f4 brge .+50 ; 0x8ece <MotorRegler+0x2636>
8e9c: 80 91 c9 03 lds r24, 0x03C9
8ea0: 80 64 ori r24, 0x40 ; 64
8ea2: 80 93 c9 03 sts 0x03C9, r24
8ea6: 82 2f mov r24, r18
8ea8: 90 e0 ldi r25, 0x00 ; 0
8eaa: 90 93 f7 03 sts 0x03F7, r25
8eae: 80 93 f6 03 sts 0x03F6, r24
8eb2: 8a e0 ldi r24, 0x0A ; 10
8eb4: 80 93 f0 03 sts 0x03F0, r24
8eb8: 8e e5 ldi r24, 0x5E ; 94
8eba: 80 93 20 01 sts 0x0120, r24
8ebe: 80 91 c9 03 lds r24, 0x03C9
8ec2: 87 ff sbrs r24, 7
8ec4: 92 c0 rjmp .+292 ; 0x8fea <MotorRegler+0x2752>
8ec6: 80 91 c9 03 lds r24, 0x03C9
8eca: 8f 77 andi r24, 0x7F ; 127
8ecc: 20 c0 rjmp .+64 ; 0x8f0e <MotorRegler+0x2676>
8ece: 48 17 cp r20, r24
8ed0: 59 07 cpc r21, r25
8ed2: 6a 07 cpc r22, r26
8ed4: 7b 07 cpc r23, r27
8ed6: 34 f5 brge .+76 ; 0x8f24 <MotorRegler+0x268c>
8ed8: 80 91 c9 03 lds r24, 0x03C9
8edc: 80 68 ori r24, 0x80 ; 128
8ede: 80 93 c9 03 sts 0x03C9, r24
8ee2: 82 2f mov r24, r18
8ee4: 90 e0 ldi r25, 0x00 ; 0
8ee6: 91 95 neg r25
8ee8: 81 95 neg r24
8eea: 91 09 sbc r25, r1
8eec: 90 93 f7 03 sts 0x03F7, r25
8ef0: 80 93 f6 03 sts 0x03F6, r24
8ef4: 86 ef ldi r24, 0xF6 ; 246
8ef6: 80 93 f0 03 sts 0x03F0, r24
8efa: 86 e7 ldi r24, 0x76 ; 118
8efc: 80 93 20 01 sts 0x0120, r24
8f00: 80 91 c9 03 lds r24, 0x03C9
8f04: 86 ff sbrs r24, 6
8f06: 71 c0 rjmp .+226 ; 0x8fea <MotorRegler+0x2752>
8f08: 80 91 c9 03 lds r24, 0x03C9
8f0c: 8f 7b andi r24, 0xBF ; 191
8f0e: 80 93 c9 03 sts 0x03C9, r24
8f12: 80 92 f8 03 sts 0x03F8, r8
8f16: 90 92 f9 03 sts 0x03F9, r9
8f1a: a0 92 fa 03 sts 0x03FA, r10
8f1e: b0 92 fb 03 sts 0x03FB, r11
8f22: 63 c0 rjmp .+198 ; 0x8fea <MotorRegler+0x2752>
8f24: 80 91 c9 03 lds r24, 0x03C9
8f28: 80 7c andi r24, 0xC0 ; 192
8f2a: 09 f4 brne .+2 ; 0x8f2e <MotorRegler+0x2696>
8f2c: 5e c0 rjmp .+188 ; 0x8fea <MotorRegler+0x2752>
8f2e: 80 91 f0 03 lds r24, 0x03F0
8f32: 81 11 cpse r24, r1
8f34: 34 c0 rjmp .+104 ; 0x8f9e <MotorRegler+0x2706>
8f36: 80 91 f8 03 lds r24, 0x03F8
8f3a: 90 91 f9 03 lds r25, 0x03F9
8f3e: a0 91 fa 03 lds r26, 0x03FA
8f42: b0 91 fb 03 lds r27, 0x03FB
8f46: b5 01 movw r22, r10
8f48: a4 01 movw r20, r8
8f4a: 47 5c subi r20, 0xC7 ; 199
8f4c: 51 09 sbc r21, r1
8f4e: 61 09 sbc r22, r1
8f50: 71 09 sbc r23, r1
8f52: 84 17 cp r24, r20
8f54: 95 07 cpc r25, r21
8f56: a6 07 cpc r26, r22
8f58: b7 07 cpc r27, r23
8f5a: 3c f4 brge .+14 ; 0x8f6a <MotorRegler+0x26d2>
8f5c: d5 01 movw r26, r10
8f5e: c4 01 movw r24, r8
8f60: 88 5c subi r24, 0xC8 ; 200
8f62: 91 09 sbc r25, r1
8f64: a1 09 sbc r26, r1
8f66: b1 09 sbc r27, r1
8f68: 11 c0 rjmp .+34 ; 0x8f8c <MotorRegler+0x26f4>
8f6a: b5 01 movw r22, r10
8f6c: a4 01 movw r20, r8
8f6e: 49 53 subi r20, 0x39 ; 57
8f70: 5f 4f sbci r21, 0xFF ; 255
8f72: 6f 4f sbci r22, 0xFF ; 255
8f74: 7f 4f sbci r23, 0xFF ; 255
8f76: 48 17 cp r20, r24
8f78: 59 07 cpc r21, r25
8f7a: 6a 07 cpc r22, r26
8f7c: 7b 07 cpc r23, r27
8f7e: 8c f4 brge .+34 ; 0x8fa2 <MotorRegler+0x270a>
8f80: d5 01 movw r26, r10
8f82: c4 01 movw r24, r8
8f84: 88 53 subi r24, 0x38 ; 56
8f86: 9f 4f sbci r25, 0xFF ; 255
8f88: af 4f sbci r26, 0xFF ; 255
8f8a: bf 4f sbci r27, 0xFF ; 255
8f8c: 80 93 f8 03 sts 0x03F8, r24
8f90: 90 93 f9 03 sts 0x03F9, r25
8f94: a0 93 fa 03 sts 0x03FA, r26
8f98: b0 93 fb 03 sts 0x03FB, r27
8f9c: 02 c0 rjmp .+4 ; 0x8fa2 <MotorRegler+0x270a>
8f9e: 10 92 f0 03 sts 0x03F0, r1
8fa2: 80 91 c9 03 lds r24, 0x03C9
8fa6: 8f 73 andi r24, 0x3F ; 63
8fa8: 80 93 c9 03 sts 0x03C9, r24
8fac: 10 92 86 03 sts 0x0386, r1
8fb0: 10 92 85 03 sts 0x0385, r1
8fb4: d1 fe sbrs r13, 1
8fb6: 06 c0 rjmp .+12 ; 0x8fc4 <MotorRegler+0x272c>
8fb8: 84 ef ldi r24, 0xF4 ; 244
8fba: 91 e0 ldi r25, 0x01 ; 1
8fbc: 90 93 cc 04 sts 0x04CC, r25
8fc0: 80 93 cb 04 sts 0x04CB, r24
8fc4: 80 91 00 04 lds r24, 0x0400
8fc8: 81 11 cpse r24, r1
8fca: 0f c0 rjmp .+30 ; 0x8fea <MotorRegler+0x2752>
8fcc: 80 91 fc 03 lds r24, 0x03FC
8fd0: 90 91 fd 03 lds r25, 0x03FD
8fd4: a0 91 fe 03 lds r26, 0x03FE
8fd8: b0 91 ff 03 lds r27, 0x03FF
8fdc: c3 97 sbiw r24, 0x33 ; 51
8fde: a1 05 cpc r26, r1
8fe0: b1 05 cpc r27, r1
8fe2: 1c f0 brlt .+6 ; 0x8fea <MotorRegler+0x2752>
8fe4: 81 e0 ldi r24, 0x01 ; 1
8fe6: 80 93 00 04 sts 0x0400, r24
8fea: 20 91 85 03 lds r18, 0x0385
8fee: 30 91 86 03 lds r19, 0x0386
8ff2: 80 91 f6 03 lds r24, 0x03F6
8ff6: 90 91 f7 03 lds r25, 0x03F7
8ffa: 28 0f add r18, r24
8ffc: 39 1f adc r19, r25
8ffe: 30 93 86 03 sts 0x0386, r19
9002: 20 93 85 03 sts 0x0385, r18
9006: c9 01 movw r24, r18
9008: 37 ff sbrs r19, 7
900a: 04 c0 rjmp .+8 ; 0x9014 <MotorRegler+0x277c>
900c: 88 27 eor r24, r24
900e: 99 27 eor r25, r25
9010: 82 1b sub r24, r18
9012: 93 0b sbc r25, r19
9014: 85 3f cpi r24, 0xF5 ; 245
9016: 91 40 sbci r25, 0x01 ; 1
9018: 0c f4 brge .+2 ; 0x901c <MotorRegler+0x2784>
901a: ce c0 rjmp .+412 ; 0x91b8 <MotorRegler+0x2920>
901c: 40 91 f0 03 lds r20, 0x03F0
9020: 80 91 f8 03 lds r24, 0x03F8
9024: 90 91 f9 03 lds r25, 0x03F9
9028: a0 91 fa 03 lds r26, 0x03FA
902c: b0 91 fb 03 lds r27, 0x03FB
9030: 44 23 and r20, r20
9032: 69 f1 breq .+90 ; 0x908e <MotorRegler+0x27f6>
9034: 40 90 f2 03 lds r4, 0x03F2
9038: 50 90 f3 03 lds r5, 0x03F3
903c: 60 90 f4 03 lds r6, 0x03F4
9040: 70 90 f5 03 lds r7, 0x03F5
9044: 92 01 movw r18, r4
9046: 28 1b sub r18, r24
9048: 39 0b sbc r19, r25
904a: 27 3f cpi r18, 0xF7 ; 247
904c: ef ef ldi r30, 0xFF ; 255
904e: 3e 07 cpc r19, r30
9050: 64 f0 brlt .+24 ; 0x906a <MotorRegler+0x27d2>
9052: 2a 30 cpi r18, 0x0A ; 10
9054: 31 05 cpc r19, r1
9056: 4c f4 brge .+18 ; 0x906a <MotorRegler+0x27d2>
9058: 40 92 f8 03 sts 0x03F8, r4
905c: 50 92 f9 03 sts 0x03F9, r5
9060: 60 92 fa 03 sts 0x03FA, r6
9064: 70 92 fb 03 sts 0x03FB, r7
9068: 32 c0 rjmp .+100 ; 0x90ce <MotorRegler+0x2836>
906a: 55 27 eor r21, r21
906c: 47 fd sbrc r20, 7
906e: 50 95 com r21
9070: 65 2f mov r22, r21
9072: 75 2f mov r23, r21
9074: 48 0f add r20, r24
9076: 59 1f adc r21, r25
9078: 6a 1f adc r22, r26
907a: 7b 1f adc r23, r27
907c: 40 93 f8 03 sts 0x03F8, r20
9080: 50 93 f9 03 sts 0x03F9, r21
9084: 60 93 fa 03 sts 0x03FA, r22
9088: 70 93 fb 03 sts 0x03FB, r23
908c: 20 c0 rjmp .+64 ; 0x90ce <MotorRegler+0x2836>
908e: 40 91 2d 05 lds r20, 0x052D
9092: 12 16 cp r1, r18
9094: 13 06 cpc r1, r19
9096: 54 f4 brge .+20 ; 0x90ac <MotorRegler+0x2814>
9098: 2b ea ldi r18, 0xAB ; 171
909a: 42 9f mul r20, r18
909c: 21 2d mov r18, r1
909e: 11 24 eor r1, r1
90a0: 26 95 lsr r18
90a2: 82 0f add r24, r18
90a4: 91 1d adc r25, r1
90a6: a1 1d adc r26, r1
90a8: b1 1d adc r27, r1
90aa: 09 c0 rjmp .+18 ; 0x90be <MotorRegler+0x2826>
90ac: 2b ea ldi r18, 0xAB ; 171
90ae: 42 9f mul r20, r18
90b0: 21 2d mov r18, r1
90b2: 11 24 eor r1, r1
90b4: 26 95 lsr r18
90b6: 82 1b sub r24, r18
90b8: 91 09 sbc r25, r1
90ba: a1 09 sbc r26, r1
90bc: b1 09 sbc r27, r1
90be: 80 93 f8 03 sts 0x03F8, r24
90c2: 90 93 f9 03 sts 0x03F9, r25
90c6: a0 93 fa 03 sts 0x03FA, r26
90ca: b0 93 fb 03 sts 0x03FB, r27
90ce: 10 92 86 03 sts 0x0386, r1
90d2: 10 92 85 03 sts 0x0385, r1
90d6: 80 91 fc 03 lds r24, 0x03FC
90da: 90 91 fd 03 lds r25, 0x03FD
90de: a0 91 fe 03 lds r26, 0x03FE
90e2: b0 91 ff 03 lds r27, 0x03FF
90e6: ac 01 movw r20, r24
90e8: bd 01 movw r22, r26
90ea: 4f 5f subi r20, 0xFF ; 255
90ec: 53 40 sbci r21, 0x03 ; 3
90ee: 61 09 sbc r22, r1
90f0: 71 09 sbc r23, r1
90f2: 84 16 cp r8, r20
90f4: 95 06 cpc r9, r21
90f6: a6 06 cpc r10, r22
90f8: b7 06 cpc r11, r23
90fa: 24 f4 brge .+8 ; 0x9104 <MotorRegler+0x286c>
90fc: 94 50 subi r25, 0x04 ; 4
90fe: a1 09 sbc r26, r1
9100: b1 09 sbc r27, r1
9102: 0e c0 rjmp .+28 ; 0x9120 <MotorRegler+0x2888>
9104: ac 01 movw r20, r24
9106: bd 01 movw r22, r26
9108: 41 50 subi r20, 0x01 ; 1
910a: 5c 4f sbci r21, 0xFC ; 252
910c: 6f 4f sbci r22, 0xFF ; 255
910e: 7f 4f sbci r23, 0xFF ; 255
9110: 48 15 cp r20, r8
9112: 59 05 cpc r21, r9
9114: 6a 05 cpc r22, r10
9116: 7b 05 cpc r23, r11
9118: 5c f4 brge .+22 ; 0x9130 <MotorRegler+0x2898>
911a: 9c 5f subi r25, 0xFC ; 252
911c: af 4f sbci r26, 0xFF ; 255
911e: bf 4f sbci r27, 0xFF ; 255
9120: 80 93 4a 03 sts 0x034A, r24
9124: 90 93 4b 03 sts 0x034B, r25
9128: a0 93 4c 03 sts 0x034C, r26
912c: b0 93 4d 03 sts 0x034D, r27
9130: 80 91 4a 03 lds r24, 0x034A
9134: 90 91 4b 03 lds r25, 0x034B
9138: a0 91 4c 03 lds r26, 0x034C
913c: b0 91 4d 03 lds r27, 0x034D
9140: 40 91 f8 03 lds r20, 0x03F8
9144: 50 91 f9 03 lds r21, 0x03F9
9148: 60 91 fa 03 lds r22, 0x03FA
914c: 70 91 fb 03 lds r23, 0x03FB
9150: 8c 01 movw r16, r24
9152: 9d 01 movw r18, r26
9154: 0f 5f subi r16, 0xFF ; 255
9156: 13 40 sbci r17, 0x03 ; 3
9158: 21 09 sbc r18, r1
915a: 31 09 sbc r19, r1
915c: 40 17 cp r20, r16
915e: 51 07 cpc r21, r17
9160: 62 07 cpc r22, r18
9162: 73 07 cpc r23, r19
9164: 24 f4 brge .+8 ; 0x916e <MotorRegler+0x28d6>
9166: 94 50 subi r25, 0x04 ; 4
9168: a1 09 sbc r26, r1
916a: b1 09 sbc r27, r1
916c: 0f c0 rjmp .+30 ; 0x918c <MotorRegler+0x28f4>
916e: 8c 01 movw r16, r24
9170: 9d 01 movw r18, r26
9172: 05 52 subi r16, 0x25 ; 37
9174: 1a 4f sbci r17, 0xFA ; 250
9176: 2f 4f sbci r18, 0xFF ; 255
9178: 3f 4f sbci r19, 0xFF ; 255
917a: 04 17 cp r16, r20
917c: 15 07 cpc r17, r21
917e: 26 07 cpc r18, r22
9180: 37 07 cpc r19, r23
9182: 64 f4 brge .+24 ; 0x919c <MotorRegler+0x2904>
9184: 84 52 subi r24, 0x24 ; 36
9186: 9a 4f sbci r25, 0xFA ; 250
9188: af 4f sbci r26, 0xFF ; 255
918a: bf 4f sbci r27, 0xFF ; 255
918c: 80 93 f8 03 sts 0x03F8, r24
9190: 90 93 f9 03 sts 0x03F9, r25
9194: a0 93 fa 03 sts 0x03FA, r26
9198: b0 93 fb 03 sts 0x03FB, r27
919c: d1 fe sbrs r13, 1
919e: 06 c0 rjmp .+12 ; 0x91ac <MotorRegler+0x2914>
91a0: 84 e6 ldi r24, 0x64 ; 100
91a2: 90 e0 ldi r25, 0x00 ; 0
91a4: 90 93 cc 04 sts 0x04CC, r25
91a8: 80 93 cb 04 sts 0x04CB, r24
91ac: 80 91 f1 03 lds r24, 0x03F1
91b0: 81 11 cpse r24, r1
91b2: 02 c0 rjmp .+4 ; 0x91b8 <MotorRegler+0x2920>
91b4: 0e 94 0f 34 call 0x681e ; 0x681e <CalcStickGasHover>
91b8: 80 91 57 04 lds r24, 0x0457
91bc: 90 91 58 04 lds r25, 0x0458
91c0: 89 2b or r24, r25
91c2: e9 f1 breq .+122 ; 0x923e <MotorRegler+0x29a6>
91c4: 80 91 4a 03 lds r24, 0x034A
91c8: 90 91 4b 03 lds r25, 0x034B
91cc: a0 91 4c 03 lds r26, 0x034C
91d0: b0 91 4d 03 lds r27, 0x034D
91d4: 80 93 f8 03 sts 0x03F8, r24
91d8: 90 93 f9 03 sts 0x03F9, r25
91dc: a0 93 fa 03 sts 0x03FA, r26
91e0: b0 93 fb 03 sts 0x03FB, r27
91e4: 2c c0 rjmp .+88 ; 0x923e <MotorRegler+0x29a6>
91e6: 81 e0 ldi r24, 0x01 ; 1
91e8: 0e 94 10 16 call 0x2c20 ; 0x2c20 <ACC_AltitudeFusion>
91ec: 80 91 4a 03 lds r24, 0x034A
91f0: 90 91 4b 03 lds r25, 0x034B
91f4: a0 91 4c 03 lds r26, 0x034C
91f8: b0 91 4d 03 lds r27, 0x034D
91fc: 80 5d subi r24, 0xD0 ; 208
91fe: 97 40 sbci r25, 0x07 ; 7
9200: a1 09 sbc r26, r1
9202: b1 09 sbc r27, r1
9204: 80 93 f8 03 sts 0x03F8, r24
9208: 90 93 f9 03 sts 0x03F9, r25
920c: a0 93 fa 03 sts 0x03FA, r26
9210: b0 93 fb 03 sts 0x03FB, r27
9214: 80 91 31 05 lds r24, 0x0531
9218: 88 23 and r24, r24
921a: 11 f0 breq .+4 ; 0x9220 <MotorRegler+0x2988>
921c: 90 e0 ldi r25, 0x00 ; 0
921e: 02 c0 rjmp .+4 ; 0x9224 <MotorRegler+0x298c>
9220: 8f e7 ldi r24, 0x7F ; 127
9222: 90 e0 ldi r25, 0x00 ; 0
9224: 90 93 41 01 sts 0x0141, r25
9228: 80 93 40 01 sts 0x0140, r24
922c: 29 81 ldd r18, Y+1 ; 0x01
922e: 3a 81 ldd r19, Y+2 ; 0x02
9230: 30 93 e7 03 sts 0x03E7, r19
9234: 20 93 e6 03 sts 0x03E6, r18
9238: 8e e2 ldi r24, 0x2E ; 46
923a: 80 93 20 01 sts 0x0120, r24
923e: 00 91 e6 03 lds r16, 0x03E6
9242: 10 91 e7 03 lds r17, 0x03E7
9246: 80 91 4a 03 lds r24, 0x034A
924a: 90 91 4b 03 lds r25, 0x034B
924e: a0 91 4c 03 lds r26, 0x034C
9252: b0 91 4d 03 lds r27, 0x034D
9256: 40 91 f8 03 lds r20, 0x03F8
925a: 50 91 f9 03 lds r21, 0x03F9
925e: 60 91 fa 03 lds r22, 0x03FA
9262: 70 91 fb 03 lds r23, 0x03FB
9266: 90 90 1d 06 lds r9, 0x061D
926a: 48 17 cp r20, r24
926c: 59 07 cpc r21, r25
926e: 6a 07 cpc r22, r26
9270: 7b 07 cpc r23, r27
9272: 14 f0 brlt .+4 ; 0x9278 <MotorRegler+0x29e0>
9274: 90 fc sbrc r9, 0
9276: 77 c3 rjmp .+1774 ; 0x9966 <MotorRegler+0x30ce>
9278: e0 91 c0 03 lds r30, 0x03C0
927c: 20 91 57 04 lds r18, 0x0457
9280: 30 91 58 04 lds r19, 0x0458
9284: 40 90 0a 06 lds r4, 0x060A
9288: 50 90 0b 06 lds r5, 0x060B
928c: a0 90 79 03 lds r10, 0x0379
9290: b0 90 7a 03 lds r11, 0x037A
9294: 80 90 41 06 lds r8, 0x0641
9298: e1 11 cpse r30, r1
929a: d6 c1 rjmp .+940 ; 0x9648 <MotorRegler+0x2db0>
929c: e0 90 e6 03 lds r14, 0x03E6
92a0: f0 90 e7 03 lds r15, 0x03E7
92a4: 23 2b or r18, r19
92a6: 41 f0 breq .+16 ; 0x92b8 <MotorRegler+0x2a20>
92a8: 87 01 movw r16, r14
92aa: 10 92 84 03 sts 0x0384, r1
92ae: 10 92 83 03 sts 0x0383, r1
92b2: c1 2c mov r12, r1
92b4: d1 2c mov r13, r1
92b6: ae c0 rjmp .+348 ; 0x9414 <MotorRegler+0x2b7c>
92b8: 84 1b sub r24, r20
92ba: 95 0b sbc r25, r21
92bc: a6 0b sbc r26, r22
92be: b7 0b sbc r27, r23
92c0: 82 30 cpi r24, 0x02 ; 2
92c2: 30 e8 ldi r19, 0x80 ; 128
92c4: 93 07 cpc r25, r19
92c6: 3f ef ldi r19, 0xFF ; 255
92c8: a3 07 cpc r26, r19
92ca: b3 07 cpc r27, r19
92cc: 2c f4 brge .+10 ; 0x92d8 <MotorRegler+0x2a40>
92ce: 81 e0 ldi r24, 0x01 ; 1
92d0: 90 e8 ldi r25, 0x80 ; 128
92d2: af ef ldi r26, 0xFF ; 255
92d4: bf ef ldi r27, 0xFF ; 255
92d6: 0a c0 rjmp .+20 ; 0x92ec <MotorRegler+0x2a54>
92d8: 8f 3f cpi r24, 0xFF ; 255
92da: 4f e7 ldi r20, 0x7F ; 127
92dc: 94 07 cpc r25, r20
92de: a1 05 cpc r26, r1
92e0: b1 05 cpc r27, r1
92e2: 24 f0 brlt .+8 ; 0x92ec <MotorRegler+0x2a54>
92e4: 8f ef ldi r24, 0xFF ; 255
92e6: 9f e7 ldi r25, 0x7F ; 127
92e8: a0 e0 ldi r26, 0x00 ; 0
92ea: b0 e0 ldi r27, 0x00 ; 0
92ec: 80 93 7f 03 sts 0x037F, r24
92f0: 90 93 80 03 sts 0x0380, r25
92f4: a0 93 81 03 sts 0x0381, r26
92f8: b0 93 82 03 sts 0x0382, r27
92fc: 20 91 7f 03 lds r18, 0x037F
9300: 30 91 80 03 lds r19, 0x0380
9304: 40 91 81 03 lds r20, 0x0381
9308: 50 91 82 03 lds r21, 0x0382
930c: 30 93 84 03 sts 0x0384, r19
9310: 20 93 83 03 sts 0x0383, r18
9314: a0 91 39 01 lds r26, 0x0139
9318: b0 e0 ldi r27, 0x00 ; 0
931a: 0e 94 45 9b call 0x1368a ; 0x1368a <__muluhisi3>
931e: 20 e2 ldi r18, 0x20 ; 32
9320: 30 e0 ldi r19, 0x00 ; 0
9322: 40 e0 ldi r20, 0x00 ; 0
9324: 50 e0 ldi r21, 0x00 ; 0
9326: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
932a: 25 30 cpi r18, 0x05 ; 5
932c: 6e ef ldi r22, 0xFE ; 254
932e: 36 07 cpc r19, r22
9330: 6f ef ldi r22, 0xFF ; 255
9332: 46 07 cpc r20, r22
9334: 56 07 cpc r21, r22
9336: 2c f4 brge .+10 ; 0x9342 <MotorRegler+0x2aaa>
9338: 84 e0 ldi r24, 0x04 ; 4
933a: 9e ef ldi r25, 0xFE ; 254
933c: af ef ldi r26, 0xFF ; 255
933e: bf ef ldi r27, 0xFF ; 255
9340: 13 c0 rjmp .+38 ; 0x9368 <MotorRegler+0x2ad0>
9342: 21 15 cp r18, r1
9344: 74 e0 ldi r23, 0x04 ; 4
9346: 37 07 cpc r19, r23
9348: 41 05 cpc r20, r1
934a: 51 05 cpc r21, r1
934c: 4c f4 brge .+18 ; 0x9360 <MotorRegler+0x2ac8>
934e: 20 93 7f 03 sts 0x037F, r18
9352: 30 93 80 03 sts 0x0380, r19
9356: 40 93 81 03 sts 0x0381, r20
935a: 50 93 82 03 sts 0x0382, r21
935e: 0c c0 rjmp .+24 ; 0x9378 <MotorRegler+0x2ae0>
9360: 80 e0 ldi r24, 0x00 ; 0
9362: 94 e0 ldi r25, 0x04 ; 4
9364: a0 e0 ldi r26, 0x00 ; 0
9366: b0 e0 ldi r27, 0x00 ; 0
9368: 80 93 7f 03 sts 0x037F, r24
936c: 90 93 80 03 sts 0x0380, r25
9370: a0 93 81 03 sts 0x0381, r26
9374: b0 93 82 03 sts 0x0382, r27
9378: 60 90 7f 03 lds r6, 0x037F
937c: 70 90 80 03 lds r7, 0x0380
9380: a0 91 54 03 lds r26, 0x0354
9384: b0 91 55 03 lds r27, 0x0355
9388: b7 fd sbrc r27, 7
938a: 17 96 adiw r26, 0x07 ; 7
938c: 73 e0 ldi r23, 0x03 ; 3
938e: b5 95 asr r27
9390: a7 95 ror r26
9392: 7a 95 dec r23
9394: e1 f7 brne .-8 ; 0x938e <MotorRegler+0x2af6>
9396: a2 38 cpi r26, 0x82 ; 130
9398: 8f ef ldi r24, 0xFF ; 255
939a: b8 07 cpc r27, r24
939c: 34 f0 brlt .+12 ; 0x93aa <MotorRegler+0x2b12>
939e: a0 38 cpi r26, 0x80 ; 128
93a0: b1 05 cpc r27, r1
93a2: 2c f0 brlt .+10 ; 0x93ae <MotorRegler+0x2b16>
93a4: a0 e8 ldi r26, 0x80 ; 128
93a6: b0 e0 ldi r27, 0x00 ; 0
93a8: 02 c0 rjmp .+4 ; 0x93ae <MotorRegler+0x2b16>
93aa: a1 e8 ldi r26, 0x81 ; 129
93ac: bf ef ldi r27, 0xFF ; 255
93ae: 20 91 3a 01 lds r18, 0x013A
93b2: 30 e0 ldi r19, 0x00 ; 0
93b4: 0e 94 3f 9b call 0x1367e ; 0x1367e <__usmulhisi3>
93b8: 24 e0 ldi r18, 0x04 ; 4
93ba: 30 e0 ldi r19, 0x00 ; 0
93bc: 40 e0 ldi r20, 0x00 ; 0
93be: 50 e0 ldi r21, 0x00 ; 0
93c0: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
93c4: 21 30 cpi r18, 0x01 ; 1
93c6: 9f ef ldi r25, 0xFF ; 255
93c8: 39 07 cpc r19, r25
93ca: 3c f0 brlt .+14 ; 0x93da <MotorRegler+0x2b42>
93cc: 2f 3f cpi r18, 0xFF ; 255
93ce: 31 05 cpc r19, r1
93d0: 31 f0 breq .+12 ; 0x93de <MotorRegler+0x2b46>
93d2: 2c f0 brlt .+10 ; 0x93de <MotorRegler+0x2b46>
93d4: 20 e0 ldi r18, 0x00 ; 0
93d6: 31 e0 ldi r19, 0x01 ; 1
93d8: 02 c0 rjmp .+4 ; 0x93de <MotorRegler+0x2b46>
93da: 20 e0 ldi r18, 0x00 ; 0
93dc: 3f ef ldi r19, 0xFF ; 255
93de: 80 91 c9 03 lds r24, 0x03C9
93e2: 80 7c andi r24, 0xC0 ; 192
93e4: 49 f0 breq .+18 ; 0x93f8 <MotorRegler+0x2b60>
93e6: 37 ff sbrs r19, 7
93e8: 02 c0 rjmp .+4 ; 0x93ee <MotorRegler+0x2b56>
93ea: 2d 5f subi r18, 0xFD ; 253
93ec: 3f 4f sbci r19, 0xFF ; 255
93ee: 35 95 asr r19
93f0: 27 95 ror r18
93f2: 35 95 asr r19
93f4: 27 95 ror r18
93f6: 0b c0 rjmp .+22 ; 0x940e <MotorRegler+0x2b76>
93f8: 90 fe sbrs r9, 0
93fa: 09 c0 rjmp .+18 ; 0x940e <MotorRegler+0x2b76>
93fc: 37 ff sbrs r19, 7
93fe: 02 c0 rjmp .+4 ; 0x9404 <MotorRegler+0x2b6c>
9400: 29 5f subi r18, 0xF9 ; 249
9402: 3f 4f sbci r19, 0xFF ; 255
9404: 53 e0 ldi r21, 0x03 ; 3
9406: 35 95 asr r19
9408: 27 95 ror r18
940a: 5a 95 dec r21
940c: e1 f7 brne .-8 ; 0x9406 <MotorRegler+0x2b6e>
940e: 63 01 movw r12, r6
9410: c2 0e add r12, r18
9412: d3 1e adc r13, r19
9414: 70 90 38 01 lds r7, 0x0138
9418: 77 20 and r7, r7
941a: 09 f4 brne .+2 ; 0x941e <MotorRegler+0x2b86>
941c: 44 c0 rjmp .+136 ; 0x94a6 <MotorRegler+0x2c0e>
941e: 60 91 1c 04 lds r22, 0x041C
9422: 70 91 1d 04 lds r23, 0x041D
9426: 80 91 1e 04 lds r24, 0x041E
942a: 90 91 1f 04 lds r25, 0x041F
942e: 20 e8 ldi r18, 0x80 ; 128
9430: 30 e0 ldi r19, 0x00 ; 0
9432: 40 e0 ldi r20, 0x00 ; 0
9434: 50 e0 ldi r21, 0x00 ; 0
9436: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
943a: a7 2d mov r26, r7
943c: b0 e0 ldi r27, 0x00 ; 0
943e: 0e 94 45 9b call 0x1368a ; 0x1368a <__muluhisi3>
9442: 20 e2 ldi r18, 0x20 ; 32
9444: 30 e0 ldi r19, 0x00 ; 0
9446: 40 e0 ldi r20, 0x00 ; 0
9448: 50 e0 ldi r21, 0x00 ; 0
944a: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
944e: 21 38 cpi r18, 0x81 ; 129
9450: af ef ldi r26, 0xFF ; 255
9452: 3a 07 cpc r19, r26
9454: 4a 07 cpc r20, r26
9456: 5a 07 cpc r21, r26
9458: 2c f4 brge .+10 ; 0x9464 <MotorRegler+0x2bcc>
945a: 80 e8 ldi r24, 0x80 ; 128
945c: 9f ef ldi r25, 0xFF ; 255
945e: af ef ldi r26, 0xFF ; 255
9460: bf ef ldi r27, 0xFF ; 255
9462: 13 c0 rjmp .+38 ; 0x948a <MotorRegler+0x2bf2>
9464: 2f 3f cpi r18, 0xFF ; 255
9466: 31 05 cpc r19, r1
9468: 41 05 cpc r20, r1
946a: 51 05 cpc r21, r1
946c: 09 f0 breq .+2 ; 0x9470 <MotorRegler+0x2bd8>
946e: 4c f4 brge .+18 ; 0x9482 <MotorRegler+0x2bea>
9470: 20 93 7f 03 sts 0x037F, r18
9474: 30 93 80 03 sts 0x0380, r19
9478: 40 93 81 03 sts 0x0381, r20
947c: 50 93 82 03 sts 0x0382, r21
9480: 0c c0 rjmp .+24 ; 0x949a <MotorRegler+0x2c02>
9482: 80 e0 ldi r24, 0x00 ; 0
9484: 91 e0 ldi r25, 0x01 ; 1
9486: a0 e0 ldi r26, 0x00 ; 0
9488: b0 e0 ldi r27, 0x00 ; 0
948a: 80 93 7f 03 sts 0x037F, r24
948e: 90 93 80 03 sts 0x0380, r25
9492: a0 93 81 03 sts 0x0381, r26
9496: b0 93 82 03 sts 0x0382, r27
949a: 80 91 7f 03 lds r24, 0x037F
949e: 90 91 80 03 lds r25, 0x0380
94a2: c8 0e add r12, r24
94a4: d9 1e adc r13, r25
94a6: 96 01 movw r18, r12
94a8: d7 01 movw r26, r14
94aa: 0e 94 2a 9b call 0x13654 ; 0x13654 <__mulhisi3>
94ae: 20 e0 ldi r18, 0x00 ; 0
94b0: 32 e0 ldi r19, 0x02 ; 2
94b2: 40 e0 ldi r20, 0x00 ; 0
94b4: 50 e0 ldi r21, 0x00 ; 0
94b6: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
94ba: 02 1b sub r16, r18
94bc: 13 0b sbc r17, r19
94be: 80 91 f6 03 lds r24, 0x03F6
94c2: 90 91 f7 03 lds r25, 0x03F7
94c6: 89 2b or r24, r25
94c8: 09 f0 breq .+2 ; 0x94cc <MotorRegler+0x2c34>
94ca: 62 c0 rjmp .+196 ; 0x9590 <MotorRegler+0x2cf8>
94cc: 1e 14 cp r1, r14
94ce: 1f 04 cpc r1, r15
94d0: 0c f0 brlt .+2 ; 0x94d4 <MotorRegler+0x2c3c>
94d2: 5e c0 rjmp .+188 ; 0x9590 <MotorRegler+0x2cf8>
94d4: 20 91 83 03 lds r18, 0x0383
94d8: 30 91 84 03 lds r19, 0x0384
94dc: b9 01 movw r22, r18
94de: 37 ff sbrs r19, 7
94e0: 04 c0 rjmp .+8 ; 0x94ea <MotorRegler+0x2c52>
94e2: 66 27 eor r22, r22
94e4: 77 27 eor r23, r23
94e6: 62 1b sub r22, r18
94e8: 73 0b sbc r23, r19
94ea: 80 91 14 04 lds r24, 0x0414
94ee: 90 91 15 04 lds r25, 0x0415
94f2: 6d 33 cpi r22, 0x3D ; 61
94f4: 71 05 cpc r23, r1
94f6: 28 f4 brcc .+10 ; 0x9502 <MotorRegler+0x2c6a>
94f8: 80 17 cp r24, r16
94fa: 91 07 cpc r25, r17
94fc: 0c f0 brlt .+2 ; 0x9500 <MotorRegler+0x2c68>
94fe: 47 c0 rjmp .+142 ; 0x958e <MotorRegler+0x2cf6>
9500: 24 c0 rjmp .+72 ; 0x954a <MotorRegler+0x2cb2>
9502: 6c 53 subi r22, 0x3C ; 60
9504: 71 09 sbc r23, r1
9506: 45 e0 ldi r20, 0x05 ; 5
9508: 76 95 lsr r23
950a: 67 95 ror r22
950c: 4a 95 dec r20
950e: e1 f7 brne .-8 ; 0x9508 <MotorRegler+0x2c70>
9510: 60 31 cpi r22, 0x10 ; 16
9512: 71 05 cpc r23, r1
9514: 10 f0 brcs .+4 ; 0x951a <MotorRegler+0x2c82>
9516: 6f e0 ldi r22, 0x0F ; 15
9518: 70 e0 ldi r23, 0x00 ; 0
951a: 12 16 cp r1, r18
951c: 13 06 cpc r1, r19
951e: ec f4 brge .+58 ; 0x955a <MotorRegler+0x2cc2>
9520: 20 e1 ldi r18, 0x10 ; 16
9522: 30 e0 ldi r19, 0x00 ; 0
9524: 26 1b sub r18, r22
9526: 37 0b sbc r19, r23
9528: 28 9f mul r18, r24
952a: a0 01 movw r20, r0
952c: 29 9f mul r18, r25
952e: 50 0d add r21, r0
9530: 38 9f mul r19, r24
9532: 50 0d add r21, r0
9534: 11 24 eor r1, r1
9536: 84 e0 ldi r24, 0x04 ; 4
9538: 56 95 lsr r21
953a: 47 95 ror r20
953c: 8a 95 dec r24
953e: e1 f7 brne .-8 ; 0x9538 <MotorRegler+0x2ca0>
9540: 40 17 cp r20, r16
9542: 51 07 cpc r21, r17
9544: 10 f0 brcs .+4 ; 0x954a <MotorRegler+0x2cb2>
9546: 8a 01 movw r16, r20
9548: 23 c0 rjmp .+70 ; 0x9590 <MotorRegler+0x2cf8>
954a: 80 91 3e 01 lds r24, 0x013E
954e: 90 91 3f 01 lds r25, 0x013F
9552: 80 17 cp r24, r16
9554: 91 07 cpc r25, r17
9556: e4 f4 brge .+56 ; 0x9590 <MotorRegler+0x2cf8>
9558: 1a c0 rjmp .+52 ; 0x958e <MotorRegler+0x2cf6>
955a: 60 5f subi r22, 0xF0 ; 240
955c: 7f 4f sbci r23, 0xFF ; 255
955e: 40 91 3e 01 lds r20, 0x013E
9562: 50 91 3f 01 lds r21, 0x013F
9566: 64 9f mul r22, r20
9568: 90 01 movw r18, r0
956a: 65 9f mul r22, r21
956c: 30 0d add r19, r0
956e: 74 9f mul r23, r20
9570: 30 0d add r19, r0
9572: 11 24 eor r1, r1
9574: b4 e0 ldi r27, 0x04 ; 4
9576: 36 95 lsr r19
9578: 27 95 ror r18
957a: ba 95 dec r27
957c: e1 f7 brne .-8 ; 0x9576 <MotorRegler+0x2cde>
957e: 80 17 cp r24, r16
9580: 91 07 cpc r25, r17
9582: 2c f4 brge .+10 ; 0x958e <MotorRegler+0x2cf6>
9584: 02 17 cp r16, r18
9586: 13 07 cpc r17, r19
9588: 18 f0 brcs .+6 ; 0x9590 <MotorRegler+0x2cf8>
958a: 89 01 movw r16, r18
958c: 01 c0 rjmp .+2 ; 0x9590 <MotorRegler+0x2cf8>
958e: 8c 01 movw r16, r24
9590: b8 01 movw r22, r16
9592: 88 27 eor r24, r24
9594: 77 fd sbrc r23, 7
9596: 80 95 com r24
9598: 98 2f mov r25, r24
959a: fd e0 ldi r31, 0x0D ; 13
959c: 66 0f add r22, r22
959e: 77 1f adc r23, r23
95a0: 88 1f adc r24, r24
95a2: 99 1f adc r25, r25
95a4: fa 95 dec r31
95a6: d1 f7 brne .-12 ; 0x959c <MotorRegler+0x2d04>
95a8: 92 01 movw r18, r4
95aa: 44 27 eor r20, r20
95ac: 37 fd sbrc r19, 7
95ae: 40 95 com r20
95b0: 54 2f mov r21, r20
95b2: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
95b6: 20 93 7b 03 sts 0x037B, r18
95ba: 30 93 7c 03 sts 0x037C, r19
95be: 40 93 7d 03 sts 0x037D, r20
95c2: 50 93 7e 03 sts 0x037E, r21
95c6: c5 01 movw r24, r10
95c8: 88 0f add r24, r24
95ca: 99 1f adc r25, r25
95cc: 8a 0d add r24, r10
95ce: 9b 1d adc r25, r11
95d0: 82 0f add r24, r18
95d2: 93 1f adc r25, r19
95d4: 97 fd sbrc r25, 7
95d6: 03 96 adiw r24, 0x03 ; 3
95d8: 95 95 asr r25
95da: 87 95 ror r24
95dc: 95 95 asr r25
95de: 87 95 ror r24
95e0: 90 93 7a 03 sts 0x037A, r25
95e4: 80 93 79 03 sts 0x0379, r24
95e8: 20 91 29 05 lds r18, 0x0529
95ec: b4 e0 ldi r27, 0x04 ; 4
95ee: 2b 9f mul r18, r27
95f0: 90 01 movw r18, r0
95f2: 11 24 eor r1, r1
95f4: 28 17 cp r18, r24
95f6: 39 07 cpc r19, r25
95f8: 5c f4 brge .+22 ; 0x9610 <MotorRegler+0x2d78>
95fa: 28 2d mov r18, r8
95fc: 30 e0 ldi r19, 0x00 ; 0
95fe: 24 51 subi r18, 0x14 ; 20
9600: 31 09 sbc r19, r1
9602: 22 0f add r18, r18
9604: 33 1f adc r19, r19
9606: 22 0f add r18, r18
9608: 33 1f adc r19, r19
960a: 82 17 cp r24, r18
960c: 93 07 cpc r25, r19
960e: 24 f0 brlt .+8 ; 0x9618 <MotorRegler+0x2d80>
9610: 30 93 7a 03 sts 0x037A, r19
9614: 20 93 79 03 sts 0x0379, r18
9618: 80 91 79 03 lds r24, 0x0379
961c: 90 91 7a 03 lds r25, 0x037A
9620: 90 fc sbrc r9, 0
9622: 7c c1 rjmp .+760 ; 0x991c <MotorRegler+0x3084>
9624: 29 81 ldd r18, Y+1 ; 0x01
9626: 3a 81 ldd r19, Y+2 ; 0x02
9628: 2e 19 sub r18, r14
962a: 3f 09 sbc r19, r15
962c: 37 ff sbrs r19, 7
962e: 02 c0 rjmp .+4 ; 0x9634 <MotorRegler+0x2d9c>
9630: 2d 5f subi r18, 0xFD ; 253
9632: 3f 4f sbci r19, 0xFF ; 255
9634: a9 01 movw r20, r18
9636: 55 95 asr r21
9638: 47 95 ror r20
963a: 55 95 asr r21
963c: 47 95 ror r20
963e: 48 0f add r20, r24
9640: 59 1f adc r21, r25
9642: 5a 83 std Y+2, r21 ; 0x02
9644: 49 83 std Y+1, r20 ; 0x01
9646: 8f c1 rjmp .+798 ; 0x9966 <MotorRegler+0x30ce>
9648: 23 2b or r18, r19
964a: 59 f0 breq .+22 ; 0x9662 <MotorRegler+0x2dca>
964c: 00 91 e6 03 lds r16, 0x03E6
9650: 10 91 e7 03 lds r17, 0x03E7
9654: 10 92 84 03 sts 0x0384, r1
9658: 10 92 83 03 sts 0x0383, r1
965c: 80 e0 ldi r24, 0x00 ; 0
965e: 90 e0 ldi r25, 0x00 ; 0
9660: f3 c0 rjmp .+486 ; 0x9848 <MotorRegler+0x2fb0>
9662: 84 1b sub r24, r20
9664: 95 0b sbc r25, r21
9666: a6 0b sbc r26, r22
9668: b7 0b sbc r27, r23
966a: 82 30 cpi r24, 0x02 ; 2
966c: 50 e8 ldi r21, 0x80 ; 128
966e: 95 07 cpc r25, r21
9670: 5f ef ldi r21, 0xFF ; 255
9672: a5 07 cpc r26, r21
9674: b5 07 cpc r27, r21
9676: 2c f4 brge .+10 ; 0x9682 <MotorRegler+0x2dea>
9678: 81 e0 ldi r24, 0x01 ; 1
967a: 90 e8 ldi r25, 0x80 ; 128
967c: af ef ldi r26, 0xFF ; 255
967e: bf ef ldi r27, 0xFF ; 255
9680: 0a c0 rjmp .+20 ; 0x9696 <MotorRegler+0x2dfe>
9682: 8f 3f cpi r24, 0xFF ; 255
9684: 6f e7 ldi r22, 0x7F ; 127
9686: 96 07 cpc r25, r22
9688: a1 05 cpc r26, r1
968a: b1 05 cpc r27, r1
968c: 24 f0 brlt .+8 ; 0x9696 <MotorRegler+0x2dfe>
968e: 8f ef ldi r24, 0xFF ; 255
9690: 9f e7 ldi r25, 0x7F ; 127
9692: a0 e0 ldi r26, 0x00 ; 0
9694: b0 e0 ldi r27, 0x00 ; 0
9696: 80 93 7f 03 sts 0x037F, r24
969a: 90 93 80 03 sts 0x0380, r25
969e: a0 93 81 03 sts 0x0381, r26
96a2: b0 93 82 03 sts 0x0382, r27
96a6: 20 91 7f 03 lds r18, 0x037F
96aa: 30 91 80 03 lds r19, 0x0380
96ae: 40 91 81 03 lds r20, 0x0381
96b2: 50 91 82 03 lds r21, 0x0382
96b6: 30 93 84 03 sts 0x0384, r19
96ba: 20 93 83 03 sts 0x0383, r18
96be: a0 91 39 01 lds r26, 0x0139
96c2: b0 e0 ldi r27, 0x00 ; 0
96c4: 0e 94 45 9b call 0x1368a ; 0x1368a <__muluhisi3>
96c8: 20 e2 ldi r18, 0x20 ; 32
96ca: 30 e0 ldi r19, 0x00 ; 0
96cc: 40 e0 ldi r20, 0x00 ; 0
96ce: 50 e0 ldi r21, 0x00 ; 0
96d0: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
96d4: 25 30 cpi r18, 0x05 ; 5
96d6: 78 ef ldi r23, 0xF8 ; 248
96d8: 37 07 cpc r19, r23
96da: 7f ef ldi r23, 0xFF ; 255
96dc: 47 07 cpc r20, r23
96de: 57 07 cpc r21, r23
96e0: 2c f4 brge .+10 ; 0x96ec <MotorRegler+0x2e54>
96e2: 84 e0 ldi r24, 0x04 ; 4
96e4: 98 ef ldi r25, 0xF8 ; 248
96e6: af ef ldi r26, 0xFF ; 255
96e8: bf ef ldi r27, 0xFF ; 255
96ea: 13 c0 rjmp .+38 ; 0x9712 <MotorRegler+0x2e7a>
96ec: 21 15 cp r18, r1
96ee: 88 e0 ldi r24, 0x08 ; 8
96f0: 38 07 cpc r19, r24
96f2: 41 05 cpc r20, r1
96f4: 51 05 cpc r21, r1
96f6: 4c f4 brge .+18 ; 0x970a <MotorRegler+0x2e72>
96f8: 20 93 7f 03 sts 0x037F, r18
96fc: 30 93 80 03 sts 0x0380, r19
9700: 40 93 81 03 sts 0x0381, r20
9704: 50 93 82 03 sts 0x0382, r21
9708: 0c c0 rjmp .+24 ; 0x9722 <MotorRegler+0x2e8a>
970a: 80 e0 ldi r24, 0x00 ; 0
970c: 98 e0 ldi r25, 0x08 ; 8
970e: a0 e0 ldi r26, 0x00 ; 0
9710: b0 e0 ldi r27, 0x00 ; 0
9712: 80 93 7f 03 sts 0x037F, r24
9716: 90 93 80 03 sts 0x0380, r25
971a: a0 93 81 03 sts 0x0381, r26
971e: b0 93 82 03 sts 0x0382, r27
9722: c0 90 7f 03 lds r12, 0x037F
9726: d0 90 80 03 lds r13, 0x0380
972a: e0 90 81 03 lds r14, 0x0381
972e: f0 90 82 03 lds r15, 0x0382
9732: 20 91 54 03 lds r18, 0x0354
9736: 30 91 55 03 lds r19, 0x0355
973a: 40 91 5b 03 lds r20, 0x035B
973e: 50 91 5c 03 lds r21, 0x035C
9742: 60 91 38 01 lds r22, 0x0138
9746: 64 9f mul r22, r20
9748: c0 01 movw r24, r0
974a: 65 9f mul r22, r21
974c: 90 0d add r25, r0
974e: 11 24 eor r1, r1
9750: 97 ff sbrs r25, 7
9752: 02 c0 rjmp .+4 ; 0x9758 <MotorRegler+0x2ec0>
9754: 81 50 subi r24, 0x01 ; 1
9756: 9f 4f sbci r25, 0xFF ; 255
9758: 49 2f mov r20, r25
975a: 55 27 eor r21, r21
975c: 47 fd sbrc r20, 7
975e: 5a 95 dec r21
9760: 42 0f add r20, r18
9762: 53 1f adc r21, r19
9764: 66 27 eor r22, r22
9766: 57 fd sbrc r21, 7
9768: 60 95 com r22
976a: 76 2f mov r23, r22
976c: 80 91 f0 03 lds r24, 0x03F0
9770: 20 91 f6 03 lds r18, 0x03F6
9774: 30 91 f7 03 lds r19, 0x03F7
9778: 88 23 and r24, r24
977a: 31 f0 breq .+12 ; 0x9788 <MotorRegler+0x2ef0>
977c: b3 e0 ldi r27, 0x03 ; 3
977e: 22 0f add r18, r18
9780: 33 1f adc r19, r19
9782: ba 95 dec r27
9784: e1 f7 brne .-8 ; 0x977e <MotorRegler+0x2ee6>
9786: 16 c0 rjmp .+44 ; 0x97b4 <MotorRegler+0x2f1c>
9788: e0 91 2d 05 lds r30, 0x052D
978c: e2 9f mul r30, r18
978e: c0 01 movw r24, r0
9790: e3 9f mul r30, r19
9792: 90 0d add r25, r0
9794: 11 24 eor r1, r1
9796: e9 e0 ldi r30, 0x09 ; 9
9798: e8 9f mul r30, r24
979a: 90 01 movw r18, r0
979c: e9 9f mul r30, r25
979e: 30 0d add r19, r0
97a0: 11 24 eor r1, r1
97a2: 37 ff sbrs r19, 7
97a4: 02 c0 rjmp .+4 ; 0x97aa <MotorRegler+0x2f12>
97a6: 21 5e subi r18, 0xE1 ; 225
97a8: 3f 4f sbci r19, 0xFF ; 255
97aa: a5 e0 ldi r26, 0x05 ; 5
97ac: 35 95 asr r19
97ae: 27 95 ror r18
97b0: aa 95 dec r26
97b2: e1 f7 brne .-8 ; 0x97ac <MotorRegler+0x2f14>
97b4: 30 93 c2 03 sts 0x03C2, r19
97b8: 20 93 c1 03 sts 0x03C1, r18
97bc: 80 91 c1 03 lds r24, 0x03C1
97c0: 90 91 c2 03 lds r25, 0x03C2
97c4: aa 27 eor r26, r26
97c6: 97 fd sbrc r25, 7
97c8: a0 95 com r26
97ca: ba 2f mov r27, r26
97cc: 9a 01 movw r18, r20
97ce: ab 01 movw r20, r22
97d0: 28 1b sub r18, r24
97d2: 39 0b sbc r19, r25
97d4: 4a 0b sbc r20, r26
97d6: 5b 0b sbc r21, r27
97d8: a0 91 3a 01 lds r26, 0x013A
97dc: b0 e0 ldi r27, 0x00 ; 0
97de: 0e 94 45 9b call 0x1368a ; 0x1368a <__muluhisi3>
97e2: 20 e2 ldi r18, 0x20 ; 32
97e4: 30 e0 ldi r19, 0x00 ; 0
97e6: 40 e0 ldi r20, 0x00 ; 0
97e8: 50 e0 ldi r21, 0x00 ; 0
97ea: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
97ee: 25 30 cpi r18, 0x05 ; 5
97f0: 98 ef ldi r25, 0xF8 ; 248
97f2: 39 07 cpc r19, r25
97f4: 9f ef ldi r25, 0xFF ; 255
97f6: 49 07 cpc r20, r25
97f8: 59 07 cpc r21, r25
97fa: 2c f4 brge .+10 ; 0x9806 <MotorRegler+0x2f6e>
97fc: 84 e0 ldi r24, 0x04 ; 4
97fe: 98 ef ldi r25, 0xF8 ; 248
9800: af ef ldi r26, 0xFF ; 255
9802: bf ef ldi r27, 0xFF ; 255
9804: 13 c0 rjmp .+38 ; 0x982c <MotorRegler+0x2f94>
9806: 21 15 cp r18, r1
9808: a8 e0 ldi r26, 0x08 ; 8
980a: 3a 07 cpc r19, r26
980c: 41 05 cpc r20, r1
980e: 51 05 cpc r21, r1
9810: 4c f4 brge .+18 ; 0x9824 <MotorRegler+0x2f8c>
9812: 20 93 7f 03 sts 0x037F, r18
9816: 30 93 80 03 sts 0x0380, r19
981a: 40 93 81 03 sts 0x0381, r20
981e: 50 93 82 03 sts 0x0382, r21
9822: 0c c0 rjmp .+24 ; 0x983c <MotorRegler+0x2fa4>
9824: 80 e0 ldi r24, 0x00 ; 0
9826: 98 e0 ldi r25, 0x08 ; 8
9828: a0 e0 ldi r26, 0x00 ; 0
982a: b0 e0 ldi r27, 0x00 ; 0
982c: 80 93 7f 03 sts 0x037F, r24
9830: 90 93 80 03 sts 0x0380, r25
9834: a0 93 81 03 sts 0x0381, r26
9838: b0 93 82 03 sts 0x0382, r27
983c: 80 91 7f 03 lds r24, 0x037F
9840: 90 91 80 03 lds r25, 0x0380
9844: 8c 0d add r24, r12
9846: 9d 1d adc r25, r13
9848: 08 1b sub r16, r24
984a: 19 0b sbc r17, r25
984c: 60 91 14 04 lds r22, 0x0414
9850: 70 91 15 04 lds r23, 0x0415
9854: 60 17 cp r22, r16
9856: 71 07 cpc r23, r17
9858: 4c f4 brge .+18 ; 0x986c <MotorRegler+0x2fd4>
985a: 80 91 3e 01 lds r24, 0x013E
985e: 90 91 3f 01 lds r25, 0x013F
9862: b8 01 movw r22, r16
9864: 80 17 cp r24, r16
9866: 91 07 cpc r25, r17
9868: 0c f4 brge .+2 ; 0x986c <MotorRegler+0x2fd4>
986a: bc 01 movw r22, r24
986c: 88 27 eor r24, r24
986e: 77 fd sbrc r23, 7
9870: 80 95 com r24
9872: 98 2f mov r25, r24
9874: ed e0 ldi r30, 0x0D ; 13
9876: 66 0f add r22, r22
9878: 77 1f adc r23, r23
987a: 88 1f adc r24, r24
987c: 99 1f adc r25, r25
987e: ea 95 dec r30
9880: d1 f7 brne .-12 ; 0x9876 <MotorRegler+0x2fde>
9882: 92 01 movw r18, r4
9884: 44 27 eor r20, r20
9886: 37 fd sbrc r19, 7
9888: 40 95 com r20
988a: 54 2f mov r21, r20
988c: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
9890: 20 93 7b 03 sts 0x037B, r18
9894: 30 93 7c 03 sts 0x037C, r19
9898: 40 93 7d 03 sts 0x037D, r20
989c: 50 93 7e 03 sts 0x037E, r21
98a0: c5 01 movw r24, r10
98a2: 88 0f add r24, r24
98a4: 99 1f adc r25, r25
98a6: 8a 0d add r24, r10
98a8: 9b 1d adc r25, r11
98aa: 82 0f add r24, r18
98ac: 93 1f adc r25, r19
98ae: 97 fd sbrc r25, 7
98b0: 03 96 adiw r24, 0x03 ; 3
98b2: 95 95 asr r25
98b4: 87 95 ror r24
98b6: 95 95 asr r25
98b8: 87 95 ror r24
98ba: 90 93 7a 03 sts 0x037A, r25
98be: 80 93 79 03 sts 0x0379, r24
98c2: 20 91 c3 03 lds r18, 0x03C3
98c6: 30 91 c4 03 lds r19, 0x03C4
98ca: 21 39 cpi r18, 0x91 ; 145
98cc: 31 40 sbci r19, 0x01 ; 1
98ce: 20 f4 brcc .+8 ; 0x98d8 <MotorRegler+0x3040>
98d0: 20 91 c8 03 lds r18, 0x03C8
98d4: 25 ff sbrs r18, 5
98d6: 03 c0 rjmp .+6 ; 0x98de <MotorRegler+0x3046>
98d8: 20 91 35 05 lds r18, 0x0535
98dc: 02 c0 rjmp .+4 ; 0x98e2 <MotorRegler+0x304a>
98de: 20 91 29 05 lds r18, 0x0529
98e2: 30 e0 ldi r19, 0x00 ; 0
98e4: 22 0f add r18, r18
98e6: 33 1f adc r19, r19
98e8: 22 0f add r18, r18
98ea: 33 1f adc r19, r19
98ec: 28 17 cp r18, r24
98ee: 39 07 cpc r19, r25
98f0: 5c f4 brge .+22 ; 0x9908 <MotorRegler+0x3070>
98f2: 28 2d mov r18, r8
98f4: 30 e0 ldi r19, 0x00 ; 0
98f6: 24 51 subi r18, 0x14 ; 20
98f8: 31 09 sbc r19, r1
98fa: 22 0f add r18, r18
98fc: 33 1f adc r19, r19
98fe: 22 0f add r18, r18
9900: 33 1f adc r19, r19
9902: 82 17 cp r24, r18
9904: 93 07 cpc r25, r19
9906: 24 f0 brlt .+8 ; 0x9910 <MotorRegler+0x3078>
9908: 30 93 7a 03 sts 0x037A, r19
990c: 20 93 79 03 sts 0x0379, r18
9910: 80 91 79 03 lds r24, 0x0379
9914: 90 91 7a 03 lds r25, 0x037A
9918: 90 fe sbrs r9, 0
991a: 10 c0 rjmp .+32 ; 0x993c <MotorRegler+0x30a4>
991c: e9 81 ldd r30, Y+1 ; 0x01
991e: fa 81 ldd r31, Y+2 ; 0x02
9920: 8e 17 cp r24, r30
9922: 9f 07 cpc r25, r31
9924: 24 f0 brlt .+8 ; 0x992e <MotorRegler+0x3096>
9926: f0 93 7a 03 sts 0x037A, r31
992a: e0 93 79 03 sts 0x0379, r30
992e: 20 91 79 03 lds r18, 0x0379
9932: 30 91 7a 03 lds r19, 0x037A
9936: 3a 83 std Y+2, r19 ; 0x02
9938: 29 83 std Y+1, r18 ; 0x01
993a: 15 c0 rjmp .+42 ; 0x9966 <MotorRegler+0x30ce>
993c: 9a 83 std Y+2, r25 ; 0x02
993e: 89 83 std Y+1, r24 ; 0x01
9940: 12 c0 rjmp .+36 ; 0x9966 <MotorRegler+0x30ce>
9942: 0e 94 0f 34 call 0x681e ; 0x681e <CalcStickGasHover>
9946: 49 81 ldd r20, Y+1 ; 0x01
9948: 5a 81 ldd r21, Y+2 ; 0x02
994a: 50 93 7a 03 sts 0x037A, r21
994e: 40 93 79 03 sts 0x0379, r20
9952: 80 91 c9 03 lds r24, 0x03C9
9956: 80 6c ori r24, 0xC0 ; 192
9958: 80 93 c9 03 sts 0x03C9, r24
995c: 80 91 c8 03 lds r24, 0x03C8
9960: 8d 7f andi r24, 0xFD ; 253
9962: 80 93 c8 03 sts 0x03C8, r24
9966: 80 91 c9 03 lds r24, 0x03C9
996a: 81 ff sbrs r24, 1
996c: 06 c1 rjmp .+524 ; 0x9b7a <MotorRegler+0x32e2>
996e: 80 91 75 03 lds r24, 0x0375
9972: 90 91 76 03 lds r25, 0x0376
9976: a0 91 77 03 lds r26, 0x0377
997a: b0 91 78 03 lds r27, 0x0378
997e: 20 91 00 04 lds r18, 0x0400
9982: 89 2b or r24, r25
9984: 8a 2b or r24, r26
9986: 8b 2b or r24, r27
9988: 11 f0 breq .+4 ; 0x998e <MotorRegler+0x30f6>
998a: 21 30 cpi r18, 0x01 ; 1
998c: b9 f4 brne .+46 ; 0x99bc <MotorRegler+0x3124>
998e: 80 91 e6 03 lds r24, 0x03E6
9992: 90 91 e7 03 lds r25, 0x03E7
9996: aa 27 eor r26, r26
9998: 97 fd sbrc r25, 7
999a: a0 95 com r26
999c: ba 2f mov r27, r26
999e: 0e e0 ldi r16, 0x0E ; 14
99a0: 88 0f add r24, r24
99a2: 99 1f adc r25, r25
99a4: aa 1f adc r26, r26
99a6: bb 1f adc r27, r27
99a8: 0a 95 dec r16
99aa: d1 f7 brne .-12 ; 0x99a0 <MotorRegler+0x3108>
99ac: 80 93 75 03 sts 0x0375, r24
99b0: 90 93 76 03 sts 0x0376, r25
99b4: a0 93 77 03 sts 0x0377, r26
99b8: b0 93 78 03 sts 0x0378, r27
99bc: 21 30 cpi r18, 0x01 ; 1
99be: 19 f4 brne .+6 ; 0x99c6 <MotorRegler+0x312e>
99c0: 82 e0 ldi r24, 0x02 ; 2
99c2: 80 93 00 04 sts 0x0400, r24
99c6: a0 91 0a 06 lds r26, 0x060A
99ca: b0 91 0b 06 lds r27, 0x060B
99ce: 29 81 ldd r18, Y+1 ; 0x01
99d0: 3a 81 ldd r19, Y+2 ; 0x02
99d2: 0e 94 2a 9b call 0x13654 ; 0x13654 <__mulhisi3>
99d6: 20 e0 ldi r18, 0x00 ; 0
99d8: 30 e2 ldi r19, 0x20 ; 32
99da: 40 e0 ldi r20, 0x00 ; 0
99dc: 50 e0 ldi r21, 0x00 ; 0
99de: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
99e2: 20 93 7b 03 sts 0x037B, r18
99e6: 30 93 7c 03 sts 0x037C, r19
99ea: 40 93 7d 03 sts 0x037D, r20
99ee: 50 93 7e 03 sts 0x037E, r21
99f2: 60 91 ca 03 lds r22, 0x03CA
99f6: 70 91 cb 03 lds r23, 0x03CB
99fa: 80 91 75 03 lds r24, 0x0375
99fe: 90 91 76 03 lds r25, 0x0376
9a02: a0 91 77 03 lds r26, 0x0377
9a06: b0 91 78 03 lds r27, 0x0378
9a0a: 60 3a cpi r22, 0xA0 ; 160
9a0c: ef e0 ldi r30, 0x0F ; 15
9a0e: 7e 07 cpc r23, r30
9a10: 18 f5 brcc .+70 ; 0x9a58 <MotorRegler+0x31c0>
9a12: 6c 01 movw r12, r24
9a14: 7d 01 movw r14, r26
9a16: fa e0 ldi r31, 0x0A ; 10
9a18: f6 94 lsr r15
9a1a: e7 94 ror r14
9a1c: d7 94 ror r13
9a1e: c7 94 ror r12
9a20: fa 95 dec r31
9a22: d1 f7 brne .-12 ; 0x9a18 <MotorRegler+0x3180>
9a24: 8c 19 sub r24, r12
9a26: 9d 09 sbc r25, r13
9a28: ae 09 sbc r26, r14
9a2a: bf 09 sbc r27, r15
9a2c: 69 01 movw r12, r18
9a2e: 7a 01 movw r14, r20
9a30: 14 e0 ldi r17, 0x04 ; 4
9a32: cc 0c add r12, r12
9a34: dd 1c adc r13, r13
9a36: ee 1c adc r14, r14
9a38: ff 1c adc r15, r15
9a3a: 1a 95 dec r17
9a3c: d1 f7 brne .-12 ; 0x9a32 <MotorRegler+0x319a>
9a3e: 8c 0d add r24, r12
9a40: 9d 1d adc r25, r13
9a42: ae 1d adc r26, r14
9a44: bf 1d adc r27, r15
9a46: 80 93 75 03 sts 0x0375, r24
9a4a: 90 93 76 03 sts 0x0376, r25
9a4e: a0 93 77 03 sts 0x0377, r26
9a52: b0 93 78 03 sts 0x0378, r27
9a56: 03 c0 rjmp .+6 ; 0x9a5e <MotorRegler+0x31c6>
9a58: 60 34 cpi r22, 0x40 ; 64
9a5a: 7f 41 sbci r23, 0x1F ; 31
9a5c: 18 f5 brcc .+70 ; 0x9aa4 <MotorRegler+0x320c>
9a5e: 80 91 75 03 lds r24, 0x0375
9a62: 90 91 76 03 lds r25, 0x0376
9a66: a0 91 77 03 lds r26, 0x0377
9a6a: b0 91 78 03 lds r27, 0x0378
9a6e: 6c 01 movw r12, r24
9a70: 7d 01 movw r14, r26
9a72: 7c e0 ldi r23, 0x0C ; 12
9a74: f6 94 lsr r15
9a76: e7 94 ror r14
9a78: d7 94 ror r13
9a7a: c7 94 ror r12
9a7c: 7a 95 dec r23
9a7e: d1 f7 brne .-12 ; 0x9a74 <MotorRegler+0x31dc>
9a80: 8c 19 sub r24, r12
9a82: 9d 09 sbc r25, r13
9a84: ae 09 sbc r26, r14
9a86: bf 09 sbc r27, r15
9a88: ba 01 movw r22, r20
9a8a: a9 01 movw r20, r18
9a8c: e2 e0 ldi r30, 0x02 ; 2
9a8e: 44 0f add r20, r20
9a90: 55 1f adc r21, r21
9a92: 66 1f adc r22, r22
9a94: 77 1f adc r23, r23
9a96: ea 95 dec r30
9a98: d1 f7 brne .-12 ; 0x9a8e <MotorRegler+0x31f6>
9a9a: 84 0f add r24, r20
9a9c: 95 1f adc r25, r21
9a9e: a6 1f adc r26, r22
9aa0: b7 1f adc r27, r23
9aa2: 2f c0 rjmp .+94 ; 0x9b02 <MotorRegler+0x326a>
9aa4: 60 91 54 03 lds r22, 0x0354
9aa8: 70 91 55 03 lds r23, 0x0355
9aac: 77 ff sbrs r23, 7
9aae: 03 c0 rjmp .+6 ; 0x9ab6 <MotorRegler+0x321e>
9ab0: 71 95 neg r23
9ab2: 61 95 neg r22
9ab4: 71 09 sbc r23, r1
9ab6: 64 36 cpi r22, 0x64 ; 100
9ab8: 71 05 cpc r23, r1
9aba: 5c f5 brge .+86 ; 0x9b12 <MotorRegler+0x327a>
9abc: 60 91 4a 03 lds r22, 0x034A
9ac0: 70 91 4b 03 lds r23, 0x034B
9ac4: e0 91 f8 03 lds r30, 0x03F8
9ac8: f0 91 f9 03 lds r31, 0x03F9
9acc: 6e 1b sub r22, r30
9ace: 7f 0b sbc r23, r31
9ad0: 61 30 cpi r22, 0x01 ; 1
9ad2: ef ef ldi r30, 0xFF ; 255
9ad4: 7e 07 cpc r23, r30
9ad6: ec f0 brlt .+58 ; 0x9b12 <MotorRegler+0x327a>
9ad8: 6f 3f cpi r22, 0xFF ; 255
9ada: 71 05 cpc r23, r1
9adc: 09 f0 breq .+2 ; 0x9ae0 <MotorRegler+0x3248>
9ade: cc f4 brge .+50 ; 0x9b12 <MotorRegler+0x327a>
9ae0: 6c 01 movw r12, r24
9ae2: 7d 01 movw r14, r26
9ae4: 6e e0 ldi r22, 0x0E ; 14
9ae6: f6 94 lsr r15
9ae8: e7 94 ror r14
9aea: d7 94 ror r13
9aec: c7 94 ror r12
9aee: 6a 95 dec r22
9af0: d1 f7 brne .-12 ; 0x9ae6 <MotorRegler+0x324e>
9af2: 8c 19 sub r24, r12
9af4: 9d 09 sbc r25, r13
9af6: ae 09 sbc r26, r14
9af8: bf 09 sbc r27, r15
9afa: 82 0f add r24, r18
9afc: 93 1f adc r25, r19
9afe: a4 1f adc r26, r20
9b00: b5 1f adc r27, r21
9b02: 80 93 75 03 sts 0x0375, r24
9b06: 90 93 76 03 sts 0x0376, r25
9b0a: a0 93 77 03 sts 0x0377, r26
9b0e: b0 93 78 03 sts 0x0378, r27
9b12: 00 91 75 03 lds r16, 0x0375
9b16: 10 91 76 03 lds r17, 0x0376
9b1a: 20 91 77 03 lds r18, 0x0377
9b1e: 30 91 78 03 lds r19, 0x0378
9b22: 8e e0 ldi r24, 0x0E ; 14
9b24: 36 95 lsr r19
9b26: 27 95 ror r18
9b28: 17 95 ror r17
9b2a: 07 95 ror r16
9b2c: 8a 95 dec r24
9b2e: d1 f7 brne .-12 ; 0x9b24 <MotorRegler+0x328c>
9b30: c8 01 movw r24, r16
9b32: 10 93 e7 03 sts 0x03E7, r17
9b36: 00 93 e6 03 sts 0x03E6, r16
9b3a: 60 91 2f 05 lds r22, 0x052F
9b3e: 66 23 and r22, r22
9b40: 89 f0 breq .+34 ; 0x9b64 <MotorRegler+0x32cc>
9b42: 70 e0 ldi r23, 0x00 ; 0
9b44: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
9b48: c8 01 movw r24, r16
9b4a: 86 1b sub r24, r22
9b4c: 97 0b sbc r25, r23
9b4e: 90 93 15 04 sts 0x0415, r25
9b52: 80 93 14 04 sts 0x0414, r24
9b56: 06 0f add r16, r22
9b58: 17 1f adc r17, r23
9b5a: 10 93 3f 01 sts 0x013F, r17
9b5e: 00 93 3e 01 sts 0x013E, r16
9b62: 1f c0 rjmp .+62 ; 0x9ba2 <MotorRegler+0x330a>
9b64: 10 92 15 04 sts 0x0415, r1
9b68: 10 92 14 04 sts 0x0414, r1
9b6c: 8f ef ldi r24, 0xFF ; 255
9b6e: 93 e0 ldi r25, 0x03 ; 3
9b70: 90 93 3f 01 sts 0x013F, r25
9b74: 80 93 3e 01 sts 0x013E, r24
9b78: 14 c0 rjmp .+40 ; 0x9ba2 <MotorRegler+0x330a>
9b7a: 10 92 00 04 sts 0x0400, r1
9b7e: 10 92 75 03 sts 0x0375, r1
9b82: 10 92 76 03 sts 0x0376, r1
9b86: 10 92 77 03 sts 0x0377, r1
9b8a: 10 92 78 03 sts 0x0378, r1
9b8e: 10 92 e7 03 sts 0x03E7, r1
9b92: 10 92 e6 03 sts 0x03E6, r1
9b96: 05 c0 rjmp .+10 ; 0x9ba2 <MotorRegler+0x330a>
9b98: 80 91 c9 03 lds r24, 0x03C9
9b9c: 80 6c ori r24, 0xC0 ; 192
9b9e: 80 93 c9 03 sts 0x03C9, r24
9ba2: 80 91 b5 04 lds r24, 0x04B5
9ba6: 81 ff sbrs r24, 1
9ba8: 3a c0 rjmp .+116 ; 0x9c1e <MotorRegler+0x3386>
9baa: 80 91 c5 03 lds r24, 0x03C5
9bae: 90 91 c6 03 lds r25, 0x03C6
9bb2: 29 81 ldd r18, Y+1 ; 0x01
9bb4: 3a 81 ldd r19, Y+2 ; 0x02
9bb6: 37 ff sbrs r19, 7
9bb8: 02 c0 rjmp .+4 ; 0x9bbe <MotorRegler+0x3326>
9bba: 2d 5f subi r18, 0xFD ; 253
9bbc: 3f 4f sbci r19, 0xFF ; 255
9bbe: 35 95 asr r19
9bc0: 27 95 ror r18
9bc2: 35 95 asr r19
9bc4: 27 95 ror r18
9bc6: 82 17 cp r24, r18
9bc8: 93 07 cpc r25, r19
9bca: 68 f4 brcc .+26 ; 0x9be6 <MotorRegler+0x334e>
9bcc: 20 91 e6 03 lds r18, 0x03E6
9bd0: 30 91 e7 03 lds r19, 0x03E7
9bd4: 23 2b or r18, r19
9bd6: 39 f0 breq .+14 ; 0x9be6 <MotorRegler+0x334e>
9bd8: 9c 01 movw r18, r24
9bda: 22 0f add r18, r18
9bdc: 33 1f adc r19, r19
9bde: 22 0f add r18, r18
9be0: 33 1f adc r19, r19
9be2: 3a 83 std Y+2, r19 ; 0x02
9be4: 29 83 std Y+1, r18 ; 0x01
9be6: 80 91 4a 03 lds r24, 0x034A
9bea: 90 91 4b 03 lds r25, 0x034B
9bee: a0 91 4c 03 lds r26, 0x034C
9bf2: b0 91 4d 03 lds r27, 0x034D
9bf6: 80 93 f8 03 sts 0x03F8, r24
9bfa: 90 93 f9 03 sts 0x03F9, r25
9bfe: a0 93 fa 03 sts 0x03FA, r26
9c02: b0 93 fb 03 sts 0x03FB, r27
9c06: 88 e9 ldi r24, 0x98 ; 152
9c08: 9a e3 ldi r25, 0x3A ; 58
9c0a: 90 93 cc 04 sts 0x04CC, r25
9c0e: 80 93 cb 04 sts 0x04CB, r24
9c12: 80 e0 ldi r24, 0x00 ; 0
9c14: 9e e0 ldi r25, 0x0E ; 14
9c16: 90 93 aa 02 sts 0x02AA, r25
9c1a: 80 93 a9 02 sts 0x02A9, r24
9c1e: 80 91 09 06 lds r24, 0x0609
9c22: 90 e0 ldi r25, 0x00 ; 0
9c24: 0a 96 adiw r24, 0x0a ; 10
9c26: 88 0f add r24, r24
9c28: 99 1f adc r25, r25
9c2a: 88 0f add r24, r24
9c2c: 99 1f adc r25, r25
9c2e: 09 81 ldd r16, Y+1 ; 0x01
9c30: 1a 81 ldd r17, Y+2 ; 0x02
9c32: 08 17 cp r16, r24
9c34: 19 07 cpc r17, r25
9c36: 0c f4 brge .+2 ; 0x9c3a <MotorRegler+0x33a2>
9c38: 8c 01 movw r16, r24
9c3a: 20 91 41 06 lds r18, 0x0641
9c3e: 30 e0 ldi r19, 0x00 ; 0
9c40: 24 51 subi r18, 0x14 ; 20
9c42: 31 09 sbc r19, r1
9c44: 22 0f add r18, r18
9c46: 33 1f adc r19, r19
9c48: 22 0f add r18, r18
9c4a: 33 1f adc r19, r19
9c4c: 20 17 cp r18, r16
9c4e: 31 07 cpc r19, r17
9c50: 0c f4 brge .+2 ; 0x9c54 <MotorRegler+0x33bc>
9c52: 89 01 movw r16, r18
9c54: 20 91 dd 04 lds r18, 0x04DD
9c58: 21 11 cpse r18, r1
9c5a: 08 c0 rjmp .+16 ; 0x9c6c <MotorRegler+0x33d4>
9c5c: 20 91 19 05 lds r18, 0x0519
9c60: 2e 3f cpi r18, 0xFE ; 254
9c62: 20 f0 brcs .+8 ; 0x9c6c <MotorRegler+0x33d4>
9c64: 20 91 b9 04 lds r18, 0x04B9
9c68: 22 23 and r18, r18
9c6a: d1 f0 breq .+52 ; 0x9ca0 <MotorRegler+0x3408>
9c6c: 20 91 ca 03 lds r18, 0x03CA
9c70: 30 91 cb 03 lds r19, 0x03CB
9c74: 22 50 subi r18, 0x02 ; 2
9c76: 31 09 sbc r19, r1
9c78: 20 33 cpi r18, 0x30 ; 48
9c7a: 31 05 cpc r19, r1
9c7c: 88 f4 brcc .+34 ; 0x9ca0 <MotorRegler+0x3408>
9c7e: 10 16 cp r1, r16
9c80: 11 06 cpc r1, r17
9c82: 74 f4 brge .+28 ; 0x9ca0 <MotorRegler+0x3408>
9c84: 21 e0 ldi r18, 0x01 ; 1
9c86: 30 e0 ldi r19, 0x00 ; 0
9c88: 30 93 cb 03 sts 0x03CB, r19
9c8c: 20 93 ca 03 sts 0x03CA, r18
9c90: 20 91 19 05 lds r18, 0x0519
9c94: 28 32 cpi r18, 0x28 ; 40
9c96: 18 f4 brcc .+6 ; 0x9c9e <MotorRegler+0x3406>
9c98: 29 e0 ldi r18, 0x09 ; 9
9c9a: 20 93 57 01 sts 0x0157, r18
9c9e: 8c 01 movw r16, r24
9ca0: 80 91 ca 04 lds r24, 0x04CA
9ca4: 81 11 cpse r24, r1
9ca6: 02 c0 rjmp .+4 ; 0x9cac <MotorRegler+0x3414>
9ca8: 0e 94 2f 82 call 0x1045e ; 0x1045e <SPI_TransmitByte>
9cac: 10 93 34 0c sts 0x0C34, r17
9cb0: 00 93 33 0c sts 0x0C33, r16
9cb4: 20 91 9c 03 lds r18, 0x039C
9cb8: 30 91 9d 03 lds r19, 0x039D
9cbc: 22 0f add r18, r18
9cbe: 33 1f adc r19, r19
9cc0: 22 0f add r18, r18
9cc2: 33 1f adc r19, r19
9cc4: 80 91 44 06 lds r24, 0x0644
9cc8: 90 91 45 06 lds r25, 0x0645
9ccc: 82 1b sub r24, r18
9cce: 93 0b sbc r25, r19
9cd0: 01 3a cpi r16, 0xA1 ; 161
9cd2: 11 05 cpc r17, r1
9cd4: bc f0 brlt .+46 ; 0x9d04 <MotorRegler+0x346c>
9cd6: a8 01 movw r20, r16
9cd8: 55 95 asr r21
9cda: 47 95 ror r20
9cdc: 84 17 cp r24, r20
9cde: 95 07 cpc r25, r21
9ce0: 0c f4 brge .+2 ; 0x9ce4 <MotorRegler+0x344c>
9ce2: ac 01 movw r20, r24
9ce4: 98 01 movw r18, r16
9ce6: 17 ff sbrs r17, 7
9ce8: 02 c0 rjmp .+4 ; 0x9cee <MotorRegler+0x3456>
9cea: 2f 5f subi r18, 0xFF ; 255
9cec: 3f 4f sbci r19, 0xFF ; 255
9cee: 35 95 asr r19
9cf0: 27 95 ror r18
9cf2: 31 95 neg r19
9cf4: 21 95 neg r18
9cf6: 31 09 sbc r19, r1
9cf8: ca 01 movw r24, r20
9cfa: 42 17 cp r20, r18
9cfc: 53 07 cpc r21, r19
9cfe: 74 f4 brge .+28 ; 0x9d1c <MotorRegler+0x3484>
9d00: c9 01 movw r24, r18
9d02: 0c c0 rjmp .+24 ; 0x9d1c <MotorRegler+0x3484>
9d04: 81 35 cpi r24, 0x51 ; 81
9d06: 91 05 cpc r25, r1
9d08: 3c f4 brge .+14 ; 0x9d18 <MotorRegler+0x3480>
9d0a: 80 3b cpi r24, 0xB0 ; 176
9d0c: 3f ef ldi r19, 0xFF ; 255
9d0e: 93 07 cpc r25, r19
9d10: 2c f4 brge .+10 ; 0x9d1c <MotorRegler+0x3484>
9d12: 80 eb ldi r24, 0xB0 ; 176
9d14: 9f ef ldi r25, 0xFF ; 255
9d16: 02 c0 rjmp .+4 ; 0x9d1c <MotorRegler+0x3484>
9d18: 80 e5 ldi r24, 0x50 ; 80
9d1a: 90 e0 ldi r25, 0x00 ; 0
9d1c: 20 91 41 06 lds r18, 0x0641
9d20: 44 e0 ldi r20, 0x04 ; 4
9d22: 24 9f mul r18, r20
9d24: 90 01 movw r18, r0
9d26: 11 24 eor r1, r1
9d28: a9 01 movw r20, r18
9d2a: 40 1b sub r20, r16
9d2c: 51 0b sbc r21, r17
9d2e: 48 17 cp r20, r24
9d30: 59 07 cpc r21, r25
9d32: 0c f4 brge .+2 ; 0x9d36 <MotorRegler+0x349e>
9d34: ca 01 movw r24, r20
9d36: b8 01 movw r22, r16
9d38: 62 1b sub r22, r18
9d3a: 73 0b sbc r23, r19
9d3c: 9a 83 std Y+2, r25 ; 0x02
9d3e: 89 83 std Y+1, r24 ; 0x01
9d40: 86 17 cp r24, r22
9d42: 97 07 cpc r25, r23
9d44: 14 f4 brge .+4 ; 0x9d4a <MotorRegler+0x34b2>
9d46: 7a 83 std Y+2, r23 ; 0x02
9d48: 69 83 std Y+1, r22 ; 0x01
9d4a: 80 91 12 04 lds r24, 0x0412
9d4e: 90 91 13 04 lds r25, 0x0413
9d52: 20 91 04 06 lds r18, 0x0604
9d56: 30 91 05 06 lds r19, 0x0605
9d5a: 28 1b sub r18, r24
9d5c: 39 0b sbc r19, r25
9d5e: 30 93 10 06 sts 0x0610, r19
9d62: 20 93 0f 06 sts 0x060F, r18
9d66: 70 90 1f 06 lds r7, 0x061F
9d6a: 40 91 24 04 lds r20, 0x0424
9d6e: 50 91 25 04 lds r21, 0x0425
9d72: 60 91 26 04 lds r22, 0x0426
9d76: 70 91 27 04 lds r23, 0x0427
9d7a: 77 20 and r7, r7
9d7c: 49 f0 breq .+18 ; 0x9d90 <MotorRegler+0x34f8>
9d7e: d1 01 movw r26, r2
9d80: a8 1b sub r26, r24
9d82: b9 0b sbc r27, r25
9d84: cd 01 movw r24, r26
9d86: aa 27 eor r26, r26
9d88: 97 fd sbrc r25, 7
9d8a: a0 95 com r26
9d8c: ba 2f mov r27, r26
9d8e: 05 c0 rjmp .+10 ; 0x9d9a <MotorRegler+0x3502>
9d90: c9 01 movw r24, r18
9d92: aa 27 eor r26, r26
9d94: 97 fd sbrc r25, 7
9d96: a0 95 com r26
9d98: ba 2f mov r27, r26
9d9a: 84 0f add r24, r20
9d9c: 95 1f adc r25, r21
9d9e: a6 1f adc r26, r22
9da0: b7 1f adc r27, r23
9da2: 80 93 24 04 sts 0x0424, r24
9da6: 90 93 25 04 sts 0x0425, r25
9daa: a0 93 26 04 sts 0x0426, r26
9dae: b0 93 27 04 sts 0x0427, r27
9db2: 80 91 24 04 lds r24, 0x0424
9db6: 90 91 25 04 lds r25, 0x0425
9dba: a0 91 26 04 lds r26, 0x0426
9dbe: b0 91 27 04 lds r27, 0x0427
9dc2: 81 30 cpi r24, 0x01 ; 1
9dc4: 9a 4f sbci r25, 0xFA ; 250
9dc6: a1 05 cpc r26, r1
9dc8: b1 05 cpc r27, r1
9dca: 64 f0 brlt .+24 ; 0x9de4 <MotorRegler+0x354c>
9dcc: 80 e0 ldi r24, 0x00 ; 0
9dce: 9a ef ldi r25, 0xFA ; 250
9dd0: a0 e0 ldi r26, 0x00 ; 0
9dd2: b0 e0 ldi r27, 0x00 ; 0
9dd4: 80 93 24 04 sts 0x0424, r24
9dd8: 90 93 25 04 sts 0x0425, r25
9ddc: a0 93 26 04 sts 0x0426, r26
9de0: b0 93 27 04 sts 0x0427, r27
9de4: 80 91 24 04 lds r24, 0x0424
9de8: 90 91 25 04 lds r25, 0x0425
9dec: a0 91 26 04 lds r26, 0x0426
9df0: b0 91 27 04 lds r27, 0x0427
9df4: 81 15 cp r24, r1
9df6: 96 40 sbci r25, 0x06 ; 6
9df8: af 4f sbci r26, 0xFF ; 255
9dfa: bf 4f sbci r27, 0xFF ; 255
9dfc: 64 f4 brge .+24 ; 0x9e16 <MotorRegler+0x357e>
9dfe: 80 e0 ldi r24, 0x00 ; 0
9e00: 96 e0 ldi r25, 0x06 ; 6
9e02: af ef ldi r26, 0xFF ; 255
9e04: bf ef ldi r27, 0xFF ; 255
9e06: 80 93 24 04 sts 0x0424, r24
9e0a: 90 93 25 04 sts 0x0425, r25
9e0e: a0 93 26 04 sts 0x0426, r26
9e12: b0 93 27 04 sts 0x0427, r27
9e16: 40 91 3e 05 lds r20, 0x053E
9e1a: 49 87 std Y+9, r20 ; 0x09
9e1c: 49 30 cpi r20, 0x09 ; 9
9e1e: 80 f4 brcc .+32 ; 0x9e40 <MotorRegler+0x35a8>
9e20: 42 9f mul r20, r18
9e22: 50 01 movw r10, r0
9e24: 43 9f mul r20, r19
9e26: b0 0c add r11, r0
9e28: 11 24 eor r1, r1
9e2a: b7 fe sbrs r11, 7
9e2c: 03 c0 rjmp .+6 ; 0x9e34 <MotorRegler+0x359c>
9e2e: 57 e0 ldi r21, 0x07 ; 7
9e30: a5 0e add r10, r21
9e32: b1 1c adc r11, r1
9e34: 63 e0 ldi r22, 0x03 ; 3
9e36: b5 94 asr r11
9e38: a7 94 ror r10
9e3a: 6a 95 dec r22
9e3c: e1 f7 brne .-8 ; 0x9e36 <MotorRegler+0x359e>
9e3e: 10 c0 rjmp .+32 ; 0x9e60 <MotorRegler+0x35c8>
9e40: 89 85 ldd r24, Y+9 ; 0x09
9e42: 86 95 lsr r24
9e44: 82 9f mul r24, r18
9e46: 50 01 movw r10, r0
9e48: 83 9f mul r24, r19
9e4a: b0 0c add r11, r0
9e4c: 11 24 eor r1, r1
9e4e: b7 fe sbrs r11, 7
9e50: 03 c0 rjmp .+6 ; 0x9e58 <MotorRegler+0x35c0>
9e52: 63 e0 ldi r22, 0x03 ; 3
9e54: a6 0e add r10, r22
9e56: b1 1c adc r11, r1
9e58: b5 94 asr r11
9e5a: a7 94 ror r10
9e5c: b5 94 asr r11
9e5e: a7 94 ror r10
9e60: 20 90 3b 01 lds r2, 0x013B
9e64: 30 90 3c 01 lds r3, 0x013C
9e68: 44 24 eor r4, r4
9e6a: 37 fc sbrc r3, 7
9e6c: 40 94 com r4
9e6e: 54 2c mov r5, r4
9e70: 60 91 24 04 lds r22, 0x0424
9e74: 70 91 25 04 lds r23, 0x0425
9e78: 80 91 26 04 lds r24, 0x0426
9e7c: 90 91 27 04 lds r25, 0x0427
9e80: a2 01 movw r20, r4
9e82: 91 01 movw r18, r2
9e84: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
9e88: a2 0e add r10, r18
9e8a: b3 1e adc r11, r19
9e8c: 20 91 27 01 lds r18, 0x0127
9e90: a9 81 ldd r26, Y+1 ; 0x01
9e92: ba 81 ldd r27, Y+2 ; 0x02
9e94: b7 ff sbrs r27, 7
9e96: 03 c0 rjmp .+6 ; 0x9e9e <MotorRegler+0x3606>
9e98: b1 95 neg r27
9e9a: a1 95 neg r26
9e9c: b1 09 sbc r27, r1
9e9e: b5 95 asr r27
9ea0: a7 95 ror r26
9ea2: a0 0f add r26, r16
9ea4: b1 1f adc r27, r17
9ea6: 30 e0 ldi r19, 0x00 ; 0
9ea8: 0e 94 3f 9b call 0x1367e ; 0x1367e <__usmulhisi3>
9eac: 20 e4 ldi r18, 0x40 ; 64
9eae: 30 e0 ldi r19, 0x00 ; 0
9eb0: 40 e0 ldi r20, 0x00 ; 0
9eb2: 50 e0 ldi r21, 0x00 ; 0
9eb4: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
9eb8: 69 01 movw r12, r18
9eba: 7a 01 movw r14, r20
9ebc: 3e 87 std Y+14, r19 ; 0x0e
9ebe: 2d 87 std Y+13, r18 ; 0x0d
9ec0: c5 01 movw r24, r10
9ec2: 2a 15 cp r18, r10
9ec4: 3b 05 cpc r19, r11
9ec6: 0c f4 brge .+2 ; 0x9eca <MotorRegler+0x3632>
9ec8: c9 01 movw r24, r18
9eca: aa 24 eor r10, r10
9ecc: bb 24 eor r11, r11
9ece: ac 18 sub r10, r12
9ed0: bd 08 sbc r11, r13
9ed2: 9c 83 std Y+4, r25 ; 0x04
9ed4: 8b 83 std Y+3, r24 ; 0x03
9ed6: 8a 15 cp r24, r10
9ed8: 9b 05 cpc r25, r11
9eda: 14 f4 brge .+4 ; 0x9ee0 <MotorRegler+0x3648>
9edc: bc 82 std Y+4, r11 ; 0x04
9ede: ab 82 std Y+3, r10 ; 0x03
9ee0: 20 91 10 04 lds r18, 0x0410
9ee4: 30 91 11 04 lds r19, 0x0411
9ee8: 80 91 f9 05 lds r24, 0x05F9
9eec: 90 91 fa 05 lds r25, 0x05FA
9ef0: 82 1b sub r24, r18
9ef2: 93 0b sbc r25, r19
9ef4: 90 93 f8 05 sts 0x05F8, r25
9ef8: 80 93 f7 05 sts 0x05F7, r24
9efc: 40 91 20 04 lds r20, 0x0420
9f00: 50 91 21 04 lds r21, 0x0421
9f04: 60 91 22 04 lds r22, 0x0422
9f08: 70 91 23 04 lds r23, 0x0423
9f0c: 77 20 and r7, r7
9f0e: 51 f0 breq .+20 ; 0x9f24 <MotorRegler+0x368c>
9f10: ef 81 ldd r30, Y+7 ; 0x07
9f12: f8 85 ldd r31, Y+8 ; 0x08
9f14: e2 1b sub r30, r18
9f16: f3 0b sbc r31, r19
9f18: 3f 01 movw r6, r30
9f1a: 88 24 eor r8, r8
9f1c: 77 fc sbrc r7, 7
9f1e: 80 94 com r8
9f20: 98 2c mov r9, r8
9f22: 05 c0 rjmp .+10 ; 0x9f2e <MotorRegler+0x3696>
9f24: 3c 01 movw r6, r24
9f26: 88 24 eor r8, r8
9f28: 77 fc sbrc r7, 7
9f2a: 80 94 com r8
9f2c: 98 2c mov r9, r8
9f2e: 64 0e add r6, r20
9f30: 75 1e adc r7, r21
9f32: 86 1e adc r8, r22
9f34: 97 1e adc r9, r23
9f36: 60 92 20 04 sts 0x0420, r6
9f3a: 70 92 21 04 sts 0x0421, r7
9f3e: 80 92 22 04 sts 0x0422, r8
9f42: 90 92 23 04 sts 0x0423, r9
9f46: 40 91 20 04 lds r20, 0x0420
9f4a: 50 91 21 04 lds r21, 0x0421
9f4e: 60 91 22 04 lds r22, 0x0422
9f52: 70 91 23 04 lds r23, 0x0423
9f56: 41 30 cpi r20, 0x01 ; 1
9f58: 5a 4f sbci r21, 0xFA ; 250
9f5a: 61 05 cpc r22, r1
9f5c: 71 05 cpc r23, r1
9f5e: 64 f0 brlt .+24 ; 0x9f78 <MotorRegler+0x36e0>
9f60: 40 e0 ldi r20, 0x00 ; 0
9f62: 5a ef ldi r21, 0xFA ; 250
9f64: 60 e0 ldi r22, 0x00 ; 0
9f66: 70 e0 ldi r23, 0x00 ; 0
9f68: 40 93 20 04 sts 0x0420, r20
9f6c: 50 93 21 04 sts 0x0421, r21
9f70: 60 93 22 04 sts 0x0422, r22
9f74: 70 93 23 04 sts 0x0423, r23
9f78: 40 91 20 04 lds r20, 0x0420
9f7c: 50 91 21 04 lds r21, 0x0421
9f80: 60 91 22 04 lds r22, 0x0422
9f84: 70 91 23 04 lds r23, 0x0423
9f88: 41 15 cp r20, r1
9f8a: 56 40 sbci r21, 0x06 ; 6
9f8c: 6f 4f sbci r22, 0xFF ; 255
9f8e: 7f 4f sbci r23, 0xFF ; 255
9f90: 64 f4 brge .+24 ; 0x9faa <MotorRegler+0x3712>
9f92: 40 e0 ldi r20, 0x00 ; 0
9f94: 56 e0 ldi r21, 0x06 ; 6
9f96: 6f ef ldi r22, 0xFF ; 255
9f98: 7f ef ldi r23, 0xFF ; 255
9f9a: 40 93 20 04 sts 0x0420, r20
9f9e: 50 93 21 04 sts 0x0421, r21
9fa2: 60 93 22 04 sts 0x0422, r22
9fa6: 70 93 23 04 sts 0x0423, r23
9faa: 39 85 ldd r19, Y+9 ; 0x09
9fac: 39 30 cpi r19, 0x09 ; 9
9fae: 80 f4 brcc .+32 ; 0x9fd0 <MotorRegler+0x3738>
9fb0: 38 9f mul r19, r24
9fb2: 30 01 movw r6, r0
9fb4: 39 9f mul r19, r25
9fb6: 70 0c add r7, r0
9fb8: 11 24 eor r1, r1
9fba: 77 fe sbrs r7, 7
9fbc: 03 c0 rjmp .+6 ; 0x9fc4 <MotorRegler+0x372c>
9fbe: 47 e0 ldi r20, 0x07 ; 7
9fc0: 64 0e add r6, r20
9fc2: 71 1c adc r7, r1
9fc4: 33 e0 ldi r19, 0x03 ; 3
9fc6: 75 94 asr r7
9fc8: 67 94 ror r6
9fca: 3a 95 dec r19
9fcc: e1 f7 brne .-8 ; 0x9fc6 <MotorRegler+0x372e>
9fce: 10 c0 rjmp .+32 ; 0x9ff0 <MotorRegler+0x3758>
9fd0: 29 85 ldd r18, Y+9 ; 0x09
9fd2: 26 95 lsr r18
9fd4: 28 9f mul r18, r24
9fd6: 30 01 movw r6, r0
9fd8: 29 9f mul r18, r25
9fda: 70 0c add r7, r0
9fdc: 11 24 eor r1, r1
9fde: 77 fe sbrs r7, 7
9fe0: 03 c0 rjmp .+6 ; 0x9fe8 <MotorRegler+0x3750>
9fe2: 53 e0 ldi r21, 0x03 ; 3
9fe4: 65 0e add r6, r21
9fe6: 71 1c adc r7, r1
9fe8: 75 94 asr r7
9fea: 67 94 ror r6
9fec: 75 94 asr r7
9fee: 67 94 ror r6
9ff0: 60 91 20 04 lds r22, 0x0420
9ff4: 70 91 21 04 lds r23, 0x0421
9ff8: 80 91 22 04 lds r24, 0x0422
9ffc: 90 91 23 04 lds r25, 0x0423
a000: a2 01 movw r20, r4
a002: 91 01 movw r18, r2
a004: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
a008: 26 0d add r18, r6
a00a: 37 1d adc r19, r7
a00c: 6d 85 ldd r22, Y+13 ; 0x0d
a00e: 7e 85 ldd r23, Y+14 ; 0x0e
a010: 62 17 cp r22, r18
a012: 73 07 cpc r23, r19
a014: 0c f4 brge .+2 ; 0xa018 <MotorRegler+0x3780>
a016: 96 01 movw r18, r12
a018: 29 01 movw r4, r18
a01a: 2a 15 cp r18, r10
a01c: 3b 05 cpc r19, r11
a01e: 0c f4 brge .+2 ; 0xa022 <MotorRegler+0x378a>
a020: 25 01 movw r4, r10
a022: 80 91 ca 04 lds r24, 0x04CA
a026: 81 11 cpse r24, r1
a028: 02 c0 rjmp .+4 ; 0xa02e <MotorRegler+0x3796>
a02a: 0e 94 2f 82 call 0x1045e ; 0x1045e <SPI_TransmitByte>
a02e: 70 91 81 05 lds r23, 0x0581
a032: 7f 83 std Y+7, r23 ; 0x07
a034: 87 2f mov r24, r23
a036: 90 e0 ldi r25, 0x00 ; 0
a038: 98 8b std Y+16, r25 ; 0x10
a03a: 8f 87 std Y+15, r24 ; 0x0f
a03c: 80 91 09 06 lds r24, 0x0609
a040: e4 e0 ldi r30, 0x04 ; 4
a042: 8e 9f mul r24, r30
a044: d0 01 movw r26, r0
a046: 11 24 eor r1, r1
a048: be 87 std Y+14, r27 ; 0x0e
a04a: ad 87 std Y+13, r26 ; 0x0d
a04c: 80 91 41 06 lds r24, 0x0641
a050: 44 e0 ldi r20, 0x04 ; 4
a052: 84 9f mul r24, r20
a054: 90 01 movw r18, r0
a056: 11 24 eor r1, r1
a058: 3a 87 std Y+10, r19 ; 0x0a
a05a: 29 87 std Y+9, r18 ; 0x09
a05c: a5 e7 ldi r26, 0x75 ; 117
a05e: ca 2e mov r12, r26
a060: a9 e0 ldi r26, 0x09 ; 9
a062: da 2e mov r13, r26
a064: b6 e7 ldi r27, 0x76 ; 118
a066: 6b 2e mov r6, r27
a068: b9 e0 ldi r27, 0x09 ; 9
a06a: 7b 2e mov r7, r27
a06c: 80 e2 ldi r24, 0x20 ; 32
a06e: 28 2e mov r2, r24
a070: 86 e0 ldi r24, 0x06 ; 6
a072: 38 2e mov r3, r24
a074: 64 eb ldi r22, 0xB4 ; 180
a076: 75 e0 ldi r23, 0x05 ; 5
a078: 79 8f std Y+25, r23 ; 0x19
a07a: 68 8f std Y+24, r22 ; 0x18
a07c: 90 e4 ldi r25, 0x40 ; 64
a07e: 89 2e mov r8, r25
a080: 91 2c mov r9, r1
a082: a1 2c mov r10, r1
a084: b1 2c mov r11, r1
a086: e8 8d ldd r30, Y+24 ; 0x18
a088: f9 8d ldd r31, Y+25 ; 0x19
a08a: 33 97 sbiw r30, 0x03 ; 3
a08c: a0 81 ld r26, Z
a08e: 1a 16 cp r1, r26
a090: 0c f0 brlt .+2 ; 0xa094 <MotorRegler+0x37fc>
a092: ac c0 rjmp .+344 ; 0xa1ec <MotorRegler+0x3954>
a094: a0 34 cpi r26, 0x40 ; 64
a096: 61 f0 breq .+24 ; 0xa0b0 <MotorRegler+0x3818>
a098: 98 01 movw r18, r16
a09a: bb 27 eor r27, r27
a09c: a7 fd sbrc r26, 7
a09e: b0 95 com r27
a0a0: 0e 94 2a 9b call 0x13654 ; 0x13654 <__mulhisi3>
a0a4: a5 01 movw r20, r10
a0a6: 94 01 movw r18, r8
a0a8: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
a0ac: 79 01 movw r14, r18
a0ae: 01 c0 rjmp .+2 ; 0xa0b2 <MotorRegler+0x381a>
a0b0: 78 01 movw r14, r16
a0b2: e8 8d ldd r30, Y+24 ; 0x18
a0b4: f9 8d ldd r31, Y+25 ; 0x19
a0b6: 32 97 sbiw r30, 0x02 ; 2
a0b8: a0 81 ld r26, Z
a0ba: a0 34 cpi r26, 0x40 ; 64
a0bc: 29 f4 brne .+10 ; 0xa0c8 <MotorRegler+0x3830>
a0be: 8b 81 ldd r24, Y+3 ; 0x03
a0c0: 9c 81 ldd r25, Y+4 ; 0x04
a0c2: e8 0e add r14, r24
a0c4: f9 1e adc r15, r25
a0c6: 14 c0 rjmp .+40 ; 0xa0f0 <MotorRegler+0x3858>
a0c8: a0 3c cpi r26, 0xC0 ; 192
a0ca: 29 f4 brne .+10 ; 0xa0d6 <MotorRegler+0x383e>
a0cc: ab 81 ldd r26, Y+3 ; 0x03
a0ce: bc 81 ldd r27, Y+4 ; 0x04
a0d0: ea 1a sub r14, r26
a0d2: fb 0a sbc r15, r27
a0d4: 0d c0 rjmp .+26 ; 0xa0f0 <MotorRegler+0x3858>
a0d6: 2b 81 ldd r18, Y+3 ; 0x03
a0d8: 3c 81 ldd r19, Y+4 ; 0x04
a0da: bb 27 eor r27, r27
a0dc: a7 fd sbrc r26, 7
a0de: b0 95 com r27
a0e0: 0e 94 2a 9b call 0x13654 ; 0x13654 <__mulhisi3>
a0e4: a5 01 movw r20, r10
a0e6: 94 01 movw r18, r8
a0e8: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
a0ec: e2 0e add r14, r18
a0ee: f3 1e adc r15, r19
a0f0: e8 8d ldd r30, Y+24 ; 0x18
a0f2: f9 8d ldd r31, Y+25 ; 0x19
a0f4: 31 97 sbiw r30, 0x01 ; 1
a0f6: a0 81 ld r26, Z
a0f8: a0 34 cpi r26, 0x40 ; 64
a0fa: 19 f4 brne .+6 ; 0xa102 <MotorRegler+0x386a>
a0fc: e4 0c add r14, r4
a0fe: f5 1c adc r15, r5
a100: 11 c0 rjmp .+34 ; 0xa124 <MotorRegler+0x388c>
a102: a0 3c cpi r26, 0xC0 ; 192
a104: 19 f4 brne .+6 ; 0xa10c <MotorRegler+0x3874>
a106: e4 18 sub r14, r4
a108: f5 08 sbc r15, r5
a10a: 0c c0 rjmp .+24 ; 0xa124 <MotorRegler+0x388c>
a10c: 92 01 movw r18, r4
a10e: bb 27 eor r27, r27
a110: a7 fd sbrc r26, 7
a112: b0 95 com r27
a114: 0e 94 2a 9b call 0x13654 ; 0x13654 <__mulhisi3>
a118: a5 01 movw r20, r10
a11a: 94 01 movw r18, r8
a11c: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
a120: e2 0e add r14, r18
a122: f3 1e adc r15, r19
a124: e8 8d ldd r30, Y+24 ; 0x18
a126: f9 8d ldd r31, Y+25 ; 0x19
a128: a0 81 ld r26, Z
a12a: a0 34 cpi r26, 0x40 ; 64
a12c: 19 f4 brne .+6 ; 0xa134 <MotorRegler+0x389c>
a12e: 29 81 ldd r18, Y+1 ; 0x01
a130: 3a 81 ldd r19, Y+2 ; 0x02
a132: 12 c0 rjmp .+36 ; 0xa158 <MotorRegler+0x38c0>
a134: a0 3c cpi r26, 0xC0 ; 192
a136: 29 f4 brne .+10 ; 0xa142 <MotorRegler+0x38aa>
a138: 49 81 ldd r20, Y+1 ; 0x01
a13a: 5a 81 ldd r21, Y+2 ; 0x02
a13c: e4 1a sub r14, r20
a13e: f5 0a sbc r15, r21
a140: 0d c0 rjmp .+26 ; 0xa15c <MotorRegler+0x38c4>
a142: 29 81 ldd r18, Y+1 ; 0x01
a144: 3a 81 ldd r19, Y+2 ; 0x02
a146: bb 27 eor r27, r27
a148: a7 fd sbrc r26, 7
a14a: b0 95 com r27
a14c: 0e 94 2a 9b call 0x13654 ; 0x13654 <__mulhisi3>
a150: a5 01 movw r20, r10
a152: 94 01 movw r18, r8
a154: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
a158: e2 0e add r14, r18
a15a: f3 1e adc r15, r19
a15c: f3 01 movw r30, r6
a15e: 32 97 sbiw r30, 0x02 ; 2
a160: 80 81 ld r24, Z
a162: 81 fd sbrc r24, 1
a164: 06 c0 rjmp .+12 ; 0xa172 <MotorRegler+0x38da>
a166: d1 01 movw r26, r2
a168: 8d 91 ld r24, X+
a16a: 9c 91 ld r25, X
a16c: 8e 15 cp r24, r14
a16e: 9f 05 cpc r25, r15
a170: 5c f4 brge .+22 ; 0xa188 <MotorRegler+0x38f0>
a172: f1 01 movw r30, r2
a174: 80 81 ld r24, Z
a176: 91 81 ldd r25, Z+1 ; 0x01
a178: 8e 0d add r24, r14
a17a: 9f 1d adc r25, r15
a17c: 97 fd sbrc r25, 7
a17e: 01 96 adiw r24, 0x01 ; 1
a180: 7c 01 movw r14, r24
a182: f5 94 asr r15
a184: e7 94 ror r14
a186: 13 c0 rjmp .+38 ; 0xa1ae <MotorRegler+0x3916>
a188: ff 81 ldd r31, Y+7 ; 0x07
a18a: f1 11 cpse r31, r1
a18c: 05 c0 rjmp .+10 ; 0xa198 <MotorRegler+0x3900>
a18e: ee 0c add r14, r14
a190: ff 1c adc r15, r15
a192: e8 1a sub r14, r24
a194: f9 0a sbc r15, r25
a196: 0b c0 rjmp .+22 ; 0xa1ae <MotorRegler+0x3916>
a198: 2f 81 ldd r18, Y+7 ; 0x07
a19a: 22 30 cpi r18, 0x02 ; 2
a19c: 40 f0 brcs .+16 ; 0xa1ae <MotorRegler+0x3916>
a19e: 8e 19 sub r24, r14
a1a0: 9f 09 sbc r25, r15
a1a2: 6f 85 ldd r22, Y+15 ; 0x0f
a1a4: 78 89 ldd r23, Y+16 ; 0x10
a1a6: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
a1aa: e6 0e add r14, r22
a1ac: f7 1e adc r15, r23
a1ae: 4d 85 ldd r20, Y+13 ; 0x0d
a1b0: 5e 85 ldd r21, Y+14 ; 0x0e
a1b2: 4e 15 cp r20, r14
a1b4: 5f 05 cpc r21, r15
a1b6: 3c f4 brge .+14 ; 0xa1c6 <MotorRegler+0x392e>
a1b8: 69 85 ldd r22, Y+9 ; 0x09
a1ba: 7a 85 ldd r23, Y+10 ; 0x0a
a1bc: 6e 15 cp r22, r14
a1be: 7f 05 cpc r23, r15
a1c0: 24 f4 brge .+8 ; 0xa1ca <MotorRegler+0x3932>
a1c2: 7b 01 movw r14, r22
a1c4: 02 c0 rjmp .+4 ; 0xa1ca <MotorRegler+0x3932>
a1c6: ed 84 ldd r14, Y+13 ; 0x0d
a1c8: fe 84 ldd r15, Y+14 ; 0x0e
a1ca: c7 01 movw r24, r14
a1cc: 95 95 asr r25
a1ce: 87 95 ror r24
a1d0: 95 95 asr r25
a1d2: 87 95 ror r24
a1d4: d6 01 movw r26, r12
a1d6: 8c 93 st X, r24
a1d8: c7 01 movw r24, r14
a1da: 83 70 andi r24, 0x03 ; 3
a1dc: 99 27 eor r25, r25
a1de: 88 0f add r24, r24
a1e0: f3 01 movw r30, r6
a1e2: 80 83 st Z, r24
a1e4: d1 01 movw r26, r2
a1e6: ed 92 st X+, r14
a1e8: fc 92 st X, r15
a1ea: 04 c0 rjmp .+8 ; 0xa1f4 <MotorRegler+0x395c>
a1ec: f6 01 movw r30, r12
a1ee: 10 82 st Z, r1
a1f0: d3 01 movw r26, r6
a1f2: 1c 92 st X, r1
a1f4: bf e0 ldi r27, 0x0F ; 15
a1f6: cb 0e add r12, r27
a1f8: d1 1c adc r13, r1
a1fa: ef e0 ldi r30, 0x0F ; 15
a1fc: 6e 0e add r6, r30
a1fe: 71 1c adc r7, r1
a200: f2 e0 ldi r31, 0x02 ; 2
a202: 2f 0e add r2, r31
a204: 31 1c adc r3, r1
a206: 28 8d ldd r18, Y+24 ; 0x18
a208: 39 8d ldd r19, Y+25 ; 0x19
a20a: 2c 5f subi r18, 0xFC ; 252
a20c: 3f 4f sbci r19, 0xFF ; 255
a20e: 39 8f std Y+25, r19 ; 0x19
a210: 28 8f std Y+24, r18 ; 0x18
a212: 39 e2 ldi r19, 0x29 ; 41
a214: c3 16 cp r12, r19
a216: 3a e0 ldi r19, 0x0A ; 10
a218: d3 06 cpc r13, r19
a21a: 09 f0 breq .+2 ; 0xa21e <MotorRegler+0x3986>
a21c: 34 cf rjmp .-408 ; 0xa086 <MotorRegler+0x37ee>
a21e: 69 96 adiw r28, 0x19 ; 25
a220: 0f b6 in r0, 0x3f ; 63
a222: f8 94 cli
a224: de bf out 0x3e, r29 ; 62
a226: 0f be out 0x3f, r0 ; 63
a228: cd bf out 0x3d, r28 ; 61
a22a: df 91 pop r29
a22c: cf 91 pop r28
a22e: 1f 91 pop r17
a230: 0f 91 pop r16
a232: ff 90 pop r15
a234: ef 90 pop r14
a236: df 90 pop r13
a238: cf 90 pop r12
a23a: bf 90 pop r11
a23c: af 90 pop r10
a23e: 9f 90 pop r9
a240: 8f 90 pop r8
a242: 7f 90 pop r7
a244: 6f 90 pop r6
a246: 5f 90 pop r5
a248: 4f 90 pop r4
a24a: 3f 90 pop r3
a24c: 2f 90 pop r2
a24e: 08 95 ret
 
0000a250 <PrintLine>:
a250: 82 e9 ldi r24, 0x92 ; 146
a252: 93 e0 ldi r25, 0x03 ; 3
a254: 9f 93 push r25
a256: 8f 93 push r24
a258: 8c e9 ldi r24, 0x9C ; 156
a25a: 96 e9 ldi r25, 0x96 ; 150
a25c: 9f 93 push r25
a25e: 8f 93 push r24
a260: e0 91 55 06 lds r30, 0x0655
a264: f0 91 56 06 lds r31, 0x0656
a268: 09 95 icall
a26a: 0f 90 pop r0
a26c: 0f 90 pop r0
a26e: 0f 90 pop r0
a270: 0f 90 pop r0
a272: 08 95 ret
 
0000a274 <CalMk3Mag>:
a274: 80 91 1c 05 lds r24, 0x051C
a278: 90 e0 ldi r25, 0x00 ; 0
a27a: 88 0f add r24, r24
a27c: 99 1f adc r25, r25
a27e: fc 01 movw r30, r24
a280: e2 5f subi r30, 0xF2 ; 242
a282: f7 4f sbci r31, 0xF7 ; 247
a284: 20 81 ld r18, Z
a286: 31 81 ldd r19, Z+1 ; 0x01
a288: 2d 3e cpi r18, 0xED ; 237
a28a: 3f 4f sbci r19, 0xFF ; 255
a28c: 14 f0 brlt .+4 ; 0xa292 <CalMk3Mag+0x1e>
a28e: 10 92 50 01 sts 0x0150, r1
a292: fc 01 movw r30, r24
a294: e2 5f subi r30, 0xF2 ; 242
a296: f7 4f sbci r31, 0xF7 ; 247
a298: 80 81 ld r24, Z
a29a: 91 81 ldd r25, Z+1 ; 0x01
a29c: 8a 3b cpi r24, 0xBA ; 186
a29e: 9f 4f sbci r25, 0xFF ; 255
a2a0: cc f4 brge .+50 ; 0xa2d4 <CalMk3Mag+0x60>
a2a2: 80 91 50 01 lds r24, 0x0150
a2a6: 81 11 cpse r24, r1
a2a8: 15 c0 rjmp .+42 ; 0xa2d4 <CalMk3Mag+0x60>
a2aa: 81 e0 ldi r24, 0x01 ; 1
a2ac: 80 93 50 01 sts 0x0150, r24
a2b0: 80 91 5a 0a lds r24, 0x0A5A
a2b4: 8f 5f subi r24, 0xFF ; 255
a2b6: 80 93 5a 0a sts 0x0A5A, r24
a2ba: 85 30 cpi r24, 0x05 ; 5
a2bc: 38 f0 brcs .+14 ; 0xa2cc <CalMk3Mag+0x58>
a2be: 88 ee ldi r24, 0xE8 ; 232
a2c0: 93 e0 ldi r25, 0x03 ; 3
a2c2: 90 93 cc 04 sts 0x04CC, r25
a2c6: 80 93 cb 04 sts 0x04CB, r24
a2ca: 08 95 ret
a2cc: 66 e9 ldi r22, 0x96 ; 150
a2ce: 70 e0 ldi r23, 0x00 ; 0
a2d0: 0c 94 9f 26 jmp 0x4d3e ; 0x4d3e <Piep>
a2d4: 08 95 ret
 
0000a2d6 <LipoDetection>:
a2d6: 1f 93 push r17
a2d8: cf 93 push r28
a2da: df 93 push r29
a2dc: c8 2f mov r28, r24
a2de: 88 23 and r24, r24
a2e0: 09 f1 breq .+66 ; 0xa324 <LipoDetection+0x4e>
a2e2: 2a e8 ldi r18, 0x8A ; 138
a2e4: 33 e0 ldi r19, 0x03 ; 3
a2e6: 3f 93 push r19
a2e8: 2f 93 push r18
a2ea: 2c e9 ldi r18, 0x9C ; 156
a2ec: 36 e9 ldi r19, 0x96 ; 150
a2ee: 3f 93 push r19
a2f0: 2f 93 push r18
a2f2: e0 91 55 06 lds r30, 0x0655
a2f6: f0 91 56 06 lds r31, 0x0656
a2fa: 09 95 icall
a2fc: 80 91 1a 01 lds r24, 0x011A
a300: 90 91 1b 01 lds r25, 0x011B
a304: 6b e2 ldi r22, 0x2B ; 43
a306: 70 e0 ldi r23, 0x00 ; 0
a308: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
a30c: 6f 5f subi r22, 0xFF ; 255
a30e: 60 93 51 01 sts 0x0151, r22
a312: 0f 90 pop r0
a314: 0f 90 pop r0
a316: 0f 90 pop r0
a318: 0f 90 pop r0
a31a: 67 30 cpi r22, 0x07 ; 7
a31c: 18 f0 brcs .+6 ; 0xa324 <LipoDetection+0x4e>
a31e: 86 e0 ldi r24, 0x06 ; 6
a320: 80 93 51 01 sts 0x0151, r24
a324: 90 91 3f 05 lds r25, 0x053F
a328: 92 33 cpi r25, 0x32 ; 50
a32a: 28 f5 brcc .+74 ; 0xa376 <LipoDetection+0xa0>
a32c: 80 91 51 01 lds r24, 0x0151
a330: 89 9f mul r24, r25
a332: 90 2d mov r25, r0
a334: 11 24 eor r1, r1
a336: 90 93 53 01 sts 0x0153, r25
a33a: cc 23 and r28, r28
a33c: f1 f0 breq .+60 ; 0xa37a <LipoDetection+0xa4>
a33e: 68 ec ldi r22, 0xC8 ; 200
a340: 70 e0 ldi r23, 0x00 ; 0
a342: 0e 94 9f 26 call 0x4d3e ; 0x4d3e <Piep>
a346: 80 91 51 01 lds r24, 0x0151
a34a: 1f 92 push r1
a34c: 8f 93 push r24
a34e: 2f e7 ldi r18, 0x7F ; 127
a350: 33 e0 ldi r19, 0x03 ; 3
a352: 3f 93 push r19
a354: 2f 93 push r18
a356: 2c e9 ldi r18, 0x9C ; 156
a358: 36 e9 ldi r19, 0x96 ; 150
a35a: 3f 93 push r19
a35c: 2f 93 push r18
a35e: e0 91 55 06 lds r30, 0x0655
a362: f0 91 56 06 lds r31, 0x0656
a366: 09 95 icall
a368: 0f 90 pop r0
a36a: 0f 90 pop r0
a36c: 0f 90 pop r0
a36e: 0f 90 pop r0
a370: 0f 90 pop r0
a372: 0f 90 pop r0
a374: 02 c0 rjmp .+4 ; 0xa37a <LipoDetection+0xa4>
a376: 90 93 53 01 sts 0x0153, r25
a37a: 80 91 8f 05 lds r24, 0x058F
a37e: 82 33 cpi r24, 0x32 ; 50
a380: 28 f4 brcc .+10 ; 0xa38c <LipoDetection+0xb6>
a382: 90 91 51 01 lds r25, 0x0151
a386: 98 9f mul r25, r24
a388: 80 2d mov r24, r0
a38a: 11 24 eor r1, r1
a38c: 80 93 63 04 sts 0x0463, r24
a390: 90 91 90 05 lds r25, 0x0590
a394: 92 33 cpi r25, 0x32 ; 50
a396: 40 f4 brcc .+16 ; 0xa3a8 <LipoDetection+0xd2>
a398: 80 91 51 01 lds r24, 0x0151
a39c: 89 9f mul r24, r25
a39e: 80 2d mov r24, r0
a3a0: 11 24 eor r1, r1
a3a2: 80 93 62 04 sts 0x0462, r24
a3a6: 02 c0 rjmp .+4 ; 0xa3ac <LipoDetection+0xd6>
a3a8: 90 93 62 04 sts 0x0462, r25
a3ac: 80 91 53 01 lds r24, 0x0153
a3b0: 20 91 63 04 lds r18, 0x0463
a3b4: 82 17 cp r24, r18
a3b6: 20 f4 brcc .+8 ; 0xa3c0 <LipoDetection+0xea>
a3b8: 2f ef ldi r18, 0xFF ; 255
a3ba: 28 0f add r18, r24
a3bc: 20 93 63 04 sts 0x0463, r18
a3c0: 20 91 62 04 lds r18, 0x0462
a3c4: 28 17 cp r18, r24
a3c6: 20 f0 brcs .+8 ; 0xa3d0 <LipoDetection+0xfa>
a3c8: 2f ef ldi r18, 0xFF ; 255
a3ca: 28 0f add r18, r24
a3cc: 20 93 62 04 sts 0x0462, r18
a3d0: 20 91 62 04 lds r18, 0x0462
a3d4: 30 91 63 04 lds r19, 0x0463
a3d8: 32 17 cp r19, r18
a3da: 28 f0 brcs .+10 ; 0xa3e6 <LipoDetection+0x110>
a3dc: 99 23 and r25, r25
a3de: 19 f0 breq .+6 ; 0xa3e6 <LipoDetection+0x110>
a3e0: 21 50 subi r18, 0x01 ; 1
a3e2: 20 93 63 04 sts 0x0463, r18
a3e6: cc 23 and r28, r28
a3e8: 09 f4 brne .+2 ; 0xa3ec <LipoDetection+0x116>
a3ea: 5d c0 rjmp .+186 ; 0xa4a6 <LipoDetection+0x1d0>
a3ec: 1a e0 ldi r17, 0x0A ; 10
a3ee: 61 2f mov r22, r17
a3f0: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
a3f4: 1f 92 push r1
a3f6: 9f 93 push r25
a3f8: 1f 92 push r1
a3fa: 8f 93 push r24
a3fc: 8a e6 ldi r24, 0x6A ; 106
a3fe: 93 e0 ldi r25, 0x03 ; 3
a400: 9f 93 push r25
a402: 8f 93 push r24
a404: cc e9 ldi r28, 0x9C ; 156
a406: d6 e9 ldi r29, 0x96 ; 150
a408: df 93 push r29
a40a: cf 93 push r28
a40c: e0 91 55 06 lds r30, 0x0655
a410: f0 91 56 06 lds r31, 0x0656
a414: 09 95 icall
a416: 80 91 62 04 lds r24, 0x0462
a41a: 2d b7 in r18, 0x3d ; 61
a41c: 3e b7 in r19, 0x3e ; 62
a41e: 28 5f subi r18, 0xF8 ; 248
a420: 3f 4f sbci r19, 0xFF ; 255
a422: 0f b6 in r0, 0x3f ; 63
a424: f8 94 cli
a426: 3e bf out 0x3e, r19 ; 62
a428: 0f be out 0x3f, r0 ; 63
a42a: 2d bf out 0x3d, r18 ; 61
a42c: 88 23 and r24, r24
a42e: d9 f0 breq .+54 ; 0xa466 <LipoDetection+0x190>
a430: 61 2f mov r22, r17
a432: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
a436: 1f 92 push r1
a438: 9f 93 push r25
a43a: 1f 92 push r1
a43c: 8f 93 push r24
a43e: 88 e5 ldi r24, 0x58 ; 88
a440: 93 e0 ldi r25, 0x03 ; 3
a442: 9f 93 push r25
a444: 8f 93 push r24
a446: df 93 push r29
a448: cf 93 push r28
a44a: e0 91 55 06 lds r30, 0x0655
a44e: f0 91 56 06 lds r31, 0x0656
a452: 09 95 icall
a454: 2d b7 in r18, 0x3d ; 61
a456: 3e b7 in r19, 0x3e ; 62
a458: 28 5f subi r18, 0xF8 ; 248
a45a: 3f 4f sbci r19, 0xFF ; 255
a45c: 0f b6 in r0, 0x3f ; 63
a45e: f8 94 cli
a460: 3e bf out 0x3e, r19 ; 62
a462: 0f be out 0x3f, r0 ; 63
a464: 2d bf out 0x3d, r18 ; 61
a466: 80 91 63 04 lds r24, 0x0463
a46a: 88 23 and r24, r24
a46c: e1 f0 breq .+56 ; 0xa4a6 <LipoDetection+0x1d0>
a46e: 6a e0 ldi r22, 0x0A ; 10
a470: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
a474: 1f 92 push r1
a476: 9f 93 push r25
a478: 1f 92 push r1
a47a: 8f 93 push r24
a47c: 82 e4 ldi r24, 0x42 ; 66
a47e: 93 e0 ldi r25, 0x03 ; 3
a480: 9f 93 push r25
a482: 8f 93 push r24
a484: 8c e9 ldi r24, 0x9C ; 156
a486: 96 e9 ldi r25, 0x96 ; 150
a488: 9f 93 push r25
a48a: 8f 93 push r24
a48c: e0 91 55 06 lds r30, 0x0655
a490: f0 91 56 06 lds r31, 0x0656
a494: 09 95 icall
a496: 8d b7 in r24, 0x3d ; 61
a498: 9e b7 in r25, 0x3e ; 62
a49a: 08 96 adiw r24, 0x08 ; 8
a49c: 0f b6 in r0, 0x3f ; 63
a49e: f8 94 cli
a4a0: 9e bf out 0x3e, r25 ; 62
a4a2: 0f be out 0x3f, r0 ; 63
a4a4: 8d bf out 0x3d, r24 ; 61
a4a6: df 91 pop r29
a4a8: cf 91 pop r28
a4aa: 1f 91 pop r17
a4ac: 08 95 ret
 
0000a4ae <main>:
a4ae: 14 b8 out 0x04, r1 ; 4
a4b0: 15 b8 out 0x05, r1 ; 5
a4b2: 8a e0 ldi r24, 0x0A ; 10
a4b4: 8a b9 out 0x0a, r24 ; 10
a4b6: 8f e5 ldi r24, 0x5F ; 95
a4b8: 8b b9 out 0x0b, r24 ; 11
a4ba: 19 9b sbis 0x03, 1 ; 3
a4bc: 08 c0 rjmp .+16 ; 0xa4ce <main+0x20>
a4be: 4c 9b sbis 0x09, 4 ; 9
a4c0: 04 c0 rjmp .+8 ; 0xa4ca <main+0x1c>
a4c2: 85 e1 ldi r24, 0x15 ; 21
a4c4: 80 93 54 01 sts 0x0154, r24
a4c8: 08 c0 rjmp .+16 ; 0xa4da <main+0x2c>
a4ca: 86 e1 ldi r24, 0x16 ; 22
a4cc: 01 c0 rjmp .+2 ; 0xa4d0 <main+0x22>
a4ce: 89 e1 ldi r24, 0x19 ; 25
a4d0: 80 93 54 01 sts 0x0154, r24
a4d4: 81 e0 ldi r24, 0x01 ; 1
a4d6: 80 93 c0 03 sts 0x03C0, r24
a4da: 81 e8 ldi r24, 0x81 ; 129
a4dc: 87 b9 out 0x07, r24 ; 7
a4de: 3e 9a sbi 0x07, 6 ; 7
a4e0: 8f ef ldi r24, 0xFF ; 255
a4e2: 88 b9 out 0x08, r24 ; 8
a4e4: 8b e1 ldi r24, 0x1B ; 27
a4e6: 84 b9 out 0x04, r24 ; 4
a4e8: 81 e0 ldi r24, 0x01 ; 1
a4ea: 85 b9 out 0x05, r24 ; 5
a4ec: 46 9a sbi 0x08, 6 ; 8
a4ee: 84 b7 in r24, 0x34 ; 52
a4f0: 87 7f andi r24, 0xF7 ; 247
a4f2: 84 bf out 0x34, r24 ; 52
a4f4: 80 91 60 00 lds r24, 0x0060
a4f8: 88 61 ori r24, 0x18 ; 24
a4fa: 80 93 60 00 sts 0x0060, r24
a4fe: 10 92 60 00 sts 0x0060, r1
a502: 84 ec ldi r24, 0xC4 ; 196
a504: 99 e0 ldi r25, 0x09 ; 9
a506: 90 93 cc 04 sts 0x04CC, r25
a50a: 80 93 cb 04 sts 0x04CB, r24
a50e: 10 92 0f 04 sts 0x040F, r1
a512: 10 92 0e 04 sts 0x040E, r1
a516: 10 92 13 08 sts 0x0813, r1
a51a: 10 92 12 08 sts 0x0812, r1
a51e: 10 92 11 04 sts 0x0411, r1
a522: 10 92 10 04 sts 0x0410, r1
a526: 10 92 13 04 sts 0x0413, r1
a52a: 10 92 12 04 sts 0x0412, r1
a52e: 80 91 54 01 lds r24, 0x0154
a532: 84 31 cpi r24, 0x14 ; 20
a534: 28 f0 brcs .+10 ; 0xa540 <main+0x92>
a536: 84 ec ldi r24, 0xC4 ; 196
a538: 94 e0 ldi r25, 0x04 ; 4
a53a: a0 e0 ldi r26, 0x00 ; 0
a53c: b0 e0 ldi r27, 0x00 ; 0
a53e: 04 c0 rjmp .+8 ; 0xa548 <main+0x9a>
a540: 8b e0 ldi r24, 0x0B ; 11
a542: 95 e0 ldi r25, 0x05 ; 5
a544: a0 e0 ldi r26, 0x00 ; 0
a546: b0 e0 ldi r27, 0x00 ; 0
a548: 80 93 21 01 sts 0x0121, r24
a54c: 90 93 22 01 sts 0x0122, r25
a550: a0 93 23 01 sts 0x0123, r26
a554: b0 93 24 01 sts 0x0124, r27
a558: 28 98 cbi 0x05, 0 ; 5
a55a: 80 91 54 01 lds r24, 0x0154
a55e: 89 31 cpi r24, 0x19 ; 25
a560: 11 f4 brne .+4 ; 0xa566 <main+0xb8>
a562: 29 9a sbi 0x05, 1 ; 5
a564: 01 c0 rjmp .+2 ; 0xa568 <main+0xba>
a566: 29 98 cbi 0x05, 1 ; 5
a568: 0e 94 9d 88 call 0x1113a ; 0x1113a <Timer_Init>
a56c: 0e 94 76 88 call 0x110ec ; 0x110ec <TIMER2_Init>
a570: 0e 94 a3 96 call 0x12d46 ; 0x12d46 <UART_Init>
a574: 0e 94 13 7e call 0xfc26 ; 0xfc26 <rc_sum_init>
a578: 0e 94 7e 1a call 0x34fc ; 0x34fc <ADC_Init>
a57c: 81 e0 ldi r24, 0x01 ; 1
a57e: 0e 94 fa 8b call 0x117f4 ; 0x117f4 <I2C_Init>
a582: 0e 94 0e 82 call 0x1041c ; 0x1041c <SPI_MasterInit>
a586: 0e 94 37 20 call 0x406e ; 0x406e <Capacity_Init>
a58a: 87 e0 ldi r24, 0x07 ; 7
a58c: 0e 94 89 18 call 0x3112 ; 0x3112 <LIBFC_Init>
a590: 80 91 54 01 lds r24, 0x0154
a594: 89 31 cpi r24, 0x19 ; 25
a596: 11 f4 brne .+4 ; 0xa59c <main+0xee>
a598: 29 9a sbi 0x05, 1 ; 5
a59a: 01 c0 rjmp .+2 ; 0xa59e <main+0xf0>
a59c: 29 98 cbi 0x05, 1 ; 5
a59e: 78 94 sei
a5a0: 0e 94 a2 24 call 0x4944 ; 0x4944 <ParamSet_Init>
a5a4: 80 91 54 01 lds r24, 0x0154
a5a8: 84 31 cpi r24, 0x14 ; 20
a5aa: e8 f4 brcc .+58 ; 0xa5e6 <main+0x138>
a5ac: 2c e0 ldi r18, 0x0C ; 12
a5ae: 88 e1 ldi r24, 0x18 ; 24
a5b0: 90 e0 ldi r25, 0x00 ; 0
a5b2: 0f b6 in r0, 0x3f ; 63
a5b4: f8 94 cli
a5b6: a8 95 wdr
a5b8: 80 93 60 00 sts 0x0060, r24
a5bc: 0f be out 0x3f, r0 ; 63
a5be: 20 93 60 00 sts 0x0060, r18
a5c2: 00 e1 ldi r16, 0x10 ; 16
a5c4: 13 e0 ldi r17, 0x03 ; 3
a5c6: cc e9 ldi r28, 0x9C ; 156
a5c8: d6 e9 ldi r29, 0x96 ; 150
a5ca: 1f 93 push r17
a5cc: 0f 93 push r16
a5ce: df 93 push r29
a5d0: cf 93 push r28
a5d2: e0 91 55 06 lds r30, 0x0655
a5d6: f0 91 56 06 lds r31, 0x0656
a5da: 09 95 icall
a5dc: 0f 90 pop r0
a5de: 0f 90 pop r0
a5e0: 0f 90 pop r0
a5e2: 0f 90 pop r0
a5e4: f2 cf rjmp .-28 ; 0xa5ca <main+0x11c>
a5e6: 80 91 dc 04 lds r24, 0x04DC
a5ea: 82 60 ori r24, 0x02 ; 2
a5ec: 80 93 dc 04 sts 0x04DC, r24
a5f0: 10 92 df 04 sts 0x04DF, r1
a5f4: c4 ef ldi r28, 0xF4 ; 244
a5f6: d1 e0 ldi r29, 0x01 ; 1
a5f8: 0e 94 b4 30 call 0x6168 ; 0x6168 <SendMotorData>
a5fc: 85 e0 ldi r24, 0x05 ; 5
a5fe: 90 e0 ldi r25, 0x00 ; 0
a600: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
a604: 5c 01 movw r10, r24
a606: 80 91 dc 04 lds r24, 0x04DC
a60a: 80 ff sbrs r24, 0
a60c: 2e c0 rjmp .+92 ; 0xa66a <main+0x1bc>
a60e: 21 97 sbiw r28, 0x01 ; 1
a610: 20 97 sbiw r28, 0x00 ; 0
a612: 91 f7 brne .-28 ; 0xa5f8 <main+0x14a>
a614: 8e ef ldi r24, 0xFE ; 254
a616: 92 e0 ldi r25, 0x02 ; 2
a618: 9f 93 push r25
a61a: 8f 93 push r24
a61c: 8c e9 ldi r24, 0x9C ; 156
a61e: 96 e9 ldi r25, 0x96 ; 150
a620: 9f 93 push r25
a622: 8f 93 push r24
a624: e0 91 55 06 lds r30, 0x0655
a628: f0 91 56 06 lds r31, 0x0656
a62c: 09 95 icall
a62e: a1 e8 ldi r26, 0x81 ; 129
a630: ea 2e mov r14, r26
a632: a9 e0 ldi r26, 0x09 ; 9
a634: fa 2e mov r15, r26
a636: 0f 90 pop r0
a638: 0f 90 pop r0
a63a: 0f 90 pop r0
a63c: 0f 90 pop r0
a63e: 07 e7 ldi r16, 0x77 ; 119
a640: 19 e0 ldi r17, 0x09 ; 9
a642: b1 eb ldi r27, 0xB1 ; 177
a644: cb 2e mov r12, r27
a646: b5 e0 ldi r27, 0x05 ; 5
a648: db 2e mov r13, r27
a64a: c1 e0 ldi r28, 0x01 ; 1
a64c: d0 e0 ldi r29, 0x00 ; 0
a64e: 8a e0 ldi r24, 0x0A ; 10
a650: 48 2e mov r4, r24
a652: 51 2c mov r5, r1
a654: 9b ef ldi r25, 0xFB ; 251
a656: 69 2e mov r6, r25
a658: 92 e0 ldi r25, 0x02 ; 2
a65a: 79 2e mov r7, r25
a65c: 2c e9 ldi r18, 0x9C ; 156
a65e: 82 2e mov r8, r18
a660: 26 e9 ldi r18, 0x96 ; 150
a662: 92 2e mov r9, r18
a664: 34 e6 ldi r19, 0x64 ; 100
a666: 33 2e mov r3, r19
a668: 06 c0 rjmp .+12 ; 0xa676 <main+0x1c8>
a66a: c5 01 movw r24, r10
a66c: 0e 94 4f 88 call 0x1109e ; 0x1109e <CheckDelay>
a670: 88 23 and r24, r24
a672: 49 f2 breq .-110 ; 0xa606 <main+0x158>
a674: cc cf rjmp .-104 ; 0xa60e <main+0x160>
a676: f6 01 movw r30, r12
a678: 80 81 ld r24, Z
a67a: 18 16 cp r1, r24
a67c: 7c f0 brlt .+30 ; 0xa69c <main+0x1ee>
a67e: f8 01 movw r30, r16
a680: 80 81 ld r24, Z
a682: 87 ff sbrs r24, 7
a684: 41 c0 rjmp .+130 ; 0xa708 <main+0x25a>
a686: 16 c0 rjmp .+44 ; 0xa6b4 <main+0x206>
a688: f8 01 movw r30, r16
a68a: 80 81 ld r24, Z
a68c: 87 fd sbrc r24, 7
a68e: f7 cf rjmp .-18 ; 0xa67e <main+0x1d0>
a690: 0e 94 b4 30 call 0x6168 ; 0x6168 <SendMotorData>
a694: 80 91 dc 04 lds r24, 0x04DC
a698: 80 ff sbrs r24, 0
a69a: 06 c0 rjmp .+12 ; 0xa6a8 <main+0x1fa>
a69c: c5 01 movw r24, r10
a69e: 0e 94 4f 88 call 0x1109e ; 0x1109e <CheckDelay>
a6a2: 88 23 and r24, r24
a6a4: 89 f3 breq .-30 ; 0xa688 <main+0x1da>
a6a6: eb cf rjmp .-42 ; 0xa67e <main+0x1d0>
a6a8: c5 01 movw r24, r10
a6aa: 0e 94 4f 88 call 0x1109e ; 0x1109e <CheckDelay>
a6ae: 88 23 and r24, r24
a6b0: 89 f3 breq .-30 ; 0xa694 <main+0x1e6>
a6b2: f4 cf rjmp .-24 ; 0xa69c <main+0x1ee>
a6b4: ce 01 movw r24, r28
a6b6: b2 01 movw r22, r4
a6b8: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
a6bc: 9f 93 push r25
a6be: 8f 93 push r24
a6c0: 7f 92 push r7
a6c2: 6f 92 push r6
a6c4: 9f 92 push r9
a6c6: 8f 92 push r8
a6c8: e0 91 55 06 lds r30, 0x0655
a6cc: f0 91 56 06 lds r31, 0x0656
a6d0: 09 95 icall
a6d2: 80 91 5b 04 lds r24, 0x045B
a6d6: 8f 5f subi r24, 0xFF ; 255
a6d8: 80 93 5b 04 sts 0x045B, r24
a6dc: f7 01 movw r30, r14
a6de: 31 97 sbiw r30, 0x01 ; 1
a6e0: 90 81 ld r25, Z
a6e2: f7 01 movw r30, r14
a6e4: 80 81 ld r24, Z
a6e6: 93 9d mul r25, r3
a6e8: 80 0d add r24, r0
a6ea: 11 24 eor r1, r1
a6ec: 0f 90 pop r0
a6ee: 0f 90 pop r0
a6f0: 0f 90 pop r0
a6f2: 0f 90 pop r0
a6f4: 0f 90 pop r0
a6f6: 0f 90 pop r0
a6f8: 88 23 and r24, r24
a6fa: 31 f0 breq .+12 ; 0xa708 <main+0x25a>
a6fc: 90 91 42 0a lds r25, 0x0A42
a700: 89 17 cp r24, r25
a702: 10 f4 brcc .+4 ; 0xa708 <main+0x25a>
a704: 80 93 42 0a sts 0x0A42, r24
a708: 21 96 adiw r28, 0x01 ; 1
a70a: f4 e0 ldi r31, 0x04 ; 4
a70c: cf 0e add r12, r31
a70e: d1 1c adc r13, r1
a710: 2f e0 ldi r18, 0x0F ; 15
a712: e2 0e add r14, r18
a714: f1 1c adc r15, r1
a716: 01 5f subi r16, 0xF1 ; 241
a718: 1f 4f sbci r17, 0xFF ; 255
a71a: cd 30 cpi r28, 0x0D ; 13
a71c: d1 05 cpc r29, r1
a71e: 09 f0 breq .+2 ; 0xa722 <main+0x274>
a720: aa cf rjmp .-172 ; 0xa676 <main+0x1c8>
a722: 61 eb ldi r22, 0xB1 ; 177
a724: e6 2e mov r14, r22
a726: 65 e0 ldi r22, 0x05 ; 5
a728: f6 2e mov r15, r22
a72a: 07 e7 ldi r16, 0x77 ; 119
a72c: 19 e0 ldi r17, 0x09 ; 9
a72e: c1 e0 ldi r28, 0x01 ; 1
a730: d0 e0 ldi r29, 0x00 ; 0
a732: 7d ed ldi r23, 0xDD ; 221
a734: c7 2e mov r12, r23
a736: 72 e0 ldi r23, 0x02 ; 2
a738: d7 2e mov r13, r23
a73a: ec e9 ldi r30, 0x9C ; 156
a73c: ae 2e mov r10, r30
a73e: e6 e9 ldi r30, 0x96 ; 150
a740: be 2e mov r11, r30
a742: f2 e0 ldi r31, 0x02 ; 2
a744: 9f 2e mov r9, r31
a746: f8 01 movw r30, r16
a748: 80 81 ld r24, Z
a74a: 87 fd sbrc r24, 7
a74c: 17 c0 rjmp .+46 ; 0xa77c <main+0x2ce>
a74e: f7 01 movw r30, r14
a750: 80 81 ld r24, Z
a752: 18 16 cp r1, r24
a754: 9c f4 brge .+38 ; 0xa77c <main+0x2ce>
a756: df 93 push r29
a758: cf 93 push r28
a75a: df 92 push r13
a75c: cf 92 push r12
a75e: bf 92 push r11
a760: af 92 push r10
a762: e0 91 55 06 lds r30, 0x0655
a766: f0 91 56 06 lds r31, 0x0656
a76a: 09 95 icall
a76c: 90 92 c9 04 sts 0x04C9, r9
a770: 0f 90 pop r0
a772: 0f 90 pop r0
a774: 0f 90 pop r0
a776: 0f 90 pop r0
a778: 0f 90 pop r0
a77a: 0f 90 pop r0
a77c: f8 01 movw r30, r16
a77e: 80 81 ld r24, Z
a780: 80 78 andi r24, 0x80 ; 128
a782: 80 83 st Z, r24
a784: 21 96 adiw r28, 0x01 ; 1
a786: 01 5f subi r16, 0xF1 ; 241
a788: 1f 4f sbci r17, 0xFF ; 255
a78a: f4 e0 ldi r31, 0x04 ; 4
a78c: ef 0e add r14, r31
a78e: f1 1c adc r15, r1
a790: cd 30 cpi r28, 0x0D ; 13
a792: d1 05 cpc r29, r1
a794: c1 f6 brne .-80 ; 0xa746 <main+0x298>
a796: 80 91 42 0a lds r24, 0x0A42
a79a: 8f 3f cpi r24, 0xFF ; 255
a79c: 81 f1 breq .+96 ; 0xa7fe <main+0x350>
a79e: 64 e6 ldi r22, 0x64 ; 100
a7a0: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
a7a4: 1f 92 push r1
a7a6: 9f 93 push r25
a7a8: 1f 92 push r1
a7aa: 8f 93 push r24
a7ac: 87 ec ldi r24, 0xC7 ; 199
a7ae: 92 e0 ldi r25, 0x02 ; 2
a7b0: 9f 93 push r25
a7b2: 8f 93 push r24
a7b4: cc e9 ldi r28, 0x9C ; 156
a7b6: d6 e9 ldi r29, 0x96 ; 150
a7b8: df 93 push r29
a7ba: cf 93 push r28
a7bc: e0 91 55 06 lds r30, 0x0655
a7c0: f0 91 56 06 lds r31, 0x0656
a7c4: 09 95 icall
a7c6: 80 91 42 0a lds r24, 0x0A42
a7ca: 84 56 subi r24, 0x64 ; 100
a7cc: ed b7 in r30, 0x3d ; 61
a7ce: fe b7 in r31, 0x3e ; 62
a7d0: 38 96 adiw r30, 0x08 ; 8
a7d2: 0f b6 in r0, 0x3f ; 63
a7d4: f8 94 cli
a7d6: fe bf out 0x3e, r31 ; 62
a7d8: 0f be out 0x3f, r0 ; 63
a7da: ed bf out 0x3d, r30 ; 61
a7dc: 83 30 cpi r24, 0x03 ; 3
a7de: 78 f4 brcc .+30 ; 0xa7fe <main+0x350>
a7e0: 8e ea ldi r24, 0xAE ; 174
a7e2: 92 e0 ldi r25, 0x02 ; 2
a7e4: 9f 93 push r25
a7e6: 8f 93 push r24
a7e8: df 93 push r29
a7ea: cf 93 push r28
a7ec: e0 91 55 06 lds r30, 0x0655
a7f0: f0 91 56 06 lds r31, 0x0656
a7f4: 09 95 icall
a7f6: 0f 90 pop r0
a7f8: 0f 90 pop r0
a7fa: 0f 90 pop r0
a7fc: 0f 90 pop r0
a7fe: 28 dd rcall .-1456 ; 0xa250 <PrintLine>
a800: 80 91 1a 05 lds r24, 0x051A
a804: 90 91 5b 04 lds r25, 0x045B
a808: 89 17 cp r24, r25
a80a: 28 f4 brcc .+10 ; 0xa816 <main+0x368>
a80c: 90 91 40 0a lds r25, 0x0A40
a810: 90 61 ori r25, 0x10 ; 16
a812: 90 93 40 0a sts 0x0A40, r25
a816: 89 30 cpi r24, 0x09 ; 9
a818: 08 f0 brcs .+2 ; 0xa81c <main+0x36e>
a81a: 88 e0 ldi r24, 0x08 ; 8
a81c: 80 93 b2 02 sts 0x02B2, r24
a820: 8e e8 ldi r24, 0x8E ; 142
a822: 92 e0 ldi r25, 0x02 ; 2
a824: 9f 93 push r25
a826: 8f 93 push r24
a828: 8c e9 ldi r24, 0x9C ; 156
a82a: 96 e9 ldi r25, 0x96 ; 150
a82c: 9f 93 push r25
a82e: 8f 93 push r24
a830: e0 91 55 06 lds r30, 0x0655
a834: f0 91 56 06 lds r31, 0x0656
a838: 09 95 icall
a83a: 88 ee ldi r24, 0xE8 ; 232
a83c: 93 e0 ldi r25, 0x03 ; 3
a83e: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
a842: ec 01 movw r28, r24
a844: 0e 94 ab 1a call 0x3556 ; 0x3556 <SucheLuftruckOffset>
a848: 0f 90 pop r0
a84a: 0f 90 pop r0
a84c: 0f 90 pop r0
a84e: 0f 90 pop r0
a850: ce 01 movw r24, r28
a852: 0e 94 4f 88 call 0x1109e ; 0x1109e <CheckDelay>
a856: 88 23 and r24, r24
a858: d9 f3 breq .-10 ; 0xa850 <main+0x3a2>
a85a: 89 e8 ldi r24, 0x89 ; 137
a85c: 92 e0 ldi r25, 0x02 ; 2
a85e: 9f 93 push r25
a860: 8f 93 push r24
a862: 8c e9 ldi r24, 0x9C ; 156
a864: 96 e9 ldi r25, 0x96 ; 150
a866: 9f 93 push r25
a868: 8f 93 push r24
a86a: e0 91 55 06 lds r30, 0x0655
a86e: f0 91 56 06 lds r31, 0x0656
a872: 09 95 icall
a874: 80 e0 ldi r24, 0x00 ; 0
a876: 0e 94 34 27 call 0x4e68 ; 0x4e68 <SetNeutral>
a87a: 28 98 cbi 0x05, 0 ; 5
a87c: 80 ed ldi r24, 0xD0 ; 208
a87e: 97 e0 ldi r25, 0x07 ; 7
a880: 90 93 cc 04 sts 0x04CC, r25
a884: 80 93 cb 04 sts 0x04CB, r24
a888: 85 e5 ldi r24, 0x55 ; 85
a88a: 80 93 5c 0a sts 0x0A5C, r24
a88e: 8e e0 ldi r24, 0x0E ; 14
a890: 90 e0 ldi r25, 0x00 ; 0
a892: 0e 94 43 23 call 0x4686 ; 0x4686 <GetParamByte>
a896: c8 2f mov r28, r24
a898: 8f e0 ldi r24, 0x0F ; 15
a89a: 90 e0 ldi r25, 0x00 ; 0
a89c: 0e 94 43 23 call 0x4686 ; 0x4686 <GetParamByte>
a8a0: 2c 2f mov r18, r28
a8a2: 30 e0 ldi r19, 0x00 ; 0
a8a4: 32 2f mov r19, r18
a8a6: 22 27 eor r18, r18
a8a8: 28 0f add r18, r24
a8aa: 31 1d adc r19, r1
a8ac: 30 93 61 04 sts 0x0461, r19
a8b0: 20 93 60 04 sts 0x0460, r18
a8b4: 8a e0 ldi r24, 0x0A ; 10
a8b6: 90 e0 ldi r25, 0x00 ; 0
a8b8: 0e 94 43 23 call 0x4686 ; 0x4686 <GetParamByte>
a8bc: c8 2f mov r28, r24
a8be: 8b e0 ldi r24, 0x0B ; 11
a8c0: 90 e0 ldi r25, 0x00 ; 0
a8c2: 0e 94 43 23 call 0x4686 ; 0x4686 <GetParamByte>
a8c6: 2c 2f mov r18, r28
a8c8: 30 e0 ldi r19, 0x00 ; 0
a8ca: 32 2f mov r19, r18
a8cc: 22 27 eor r18, r18
a8ce: 28 0f add r18, r24
a8d0: 31 1d adc r19, r1
a8d2: 30 93 5f 04 sts 0x045F, r19
a8d6: 20 93 5e 04 sts 0x045E, r18
a8da: 0f 90 pop r0
a8dc: 0f 90 pop r0
a8de: 0f 90 pop r0
a8e0: 0f 90 pop r0
a8e2: 2f 3f cpi r18, 0xFF ; 255
a8e4: 3f 4f sbci r19, 0xFF ; 255
a8e6: 31 f0 breq .+12 ; 0xa8f4 <main+0x446>
a8e8: 80 91 60 04 lds r24, 0x0460
a8ec: 90 91 61 04 lds r25, 0x0461
a8f0: 01 96 adiw r24, 0x01 ; 1
a8f2: 41 f4 brne .+16 ; 0xa904 <main+0x456>
a8f4: 10 92 61 04 sts 0x0461, r1
a8f8: 10 92 60 04 sts 0x0460, r1
a8fc: 10 92 5f 04 sts 0x045F, r1
a900: 10 92 5e 04 sts 0x045E, r1
a904: 80 91 5f 04 lds r24, 0x045F
a908: 8f 93 push r24
a90a: 80 91 5e 04 lds r24, 0x045E
a90e: 8f 93 push r24
a910: 80 91 61 04 lds r24, 0x0461
a914: 8f 93 push r24
a916: 80 91 60 04 lds r24, 0x0460
a91a: 8f 93 push r24
a91c: 87 e6 ldi r24, 0x67 ; 103
a91e: 92 e0 ldi r25, 0x02 ; 2
a920: 9f 93 push r25
a922: 8f 93 push r24
a924: 8c e9 ldi r24, 0x9C ; 156
a926: 96 e9 ldi r25, 0x96 ; 150
a928: 9f 93 push r25
a92a: 8f 93 push r24
a92c: e0 91 55 06 lds r30, 0x0655
a930: f0 91 56 06 lds r31, 0x0656
a934: 09 95 icall
a936: 0e 94 65 75 call 0xeaca ; 0xeaca <LcdClear>
a93a: 88 e8 ldi r24, 0x88 ; 136
a93c: 93 e1 ldi r25, 0x13 ; 19
a93e: 90 93 b1 02 sts 0x02B1, r25
a942: 80 93 b0 02 sts 0x02B0, r24
a946: c1 e0 ldi r28, 0x01 ; 1
a948: c0 93 5b 0a sts 0x0A5B, r28
a94c: 81 e0 ldi r24, 0x01 ; 1
a94e: c3 dc rcall .-1658 ; 0xa2d6 <LipoDetection>
a950: 80 91 42 05 lds r24, 0x0542
a954: 0e 94 d8 17 call 0x2fb0 ; 0x2fb0 <LIBFC_ReceiverInit>
a958: 7b dc rcall .-1802 ; 0xa250 <PrintLine>
a95a: 80 ed ldi r24, 0xD0 ; 208
a95c: 97 e0 ldi r25, 0x07 ; 7
a95e: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
a962: 8c 01 movw r16, r24
a964: 8a ef ldi r24, 0xFA ; 250
a966: 90 e0 ldi r25, 0x00 ; 0
a968: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
a96c: 83 e0 ldi r24, 0x03 ; 3
a96e: 80 93 23 0c sts 0x0C23, r24
a972: 10 92 5a 04 sts 0x045A, r1
a976: 80 91 95 05 lds r24, 0x0595
a97a: 2d b7 in r18, 0x3d ; 61
a97c: 3e b7 in r19, 0x3e ; 62
a97e: 28 5f subi r18, 0xF8 ; 248
a980: 3f 4f sbci r19, 0xFF ; 255
a982: 0f b6 in r0, 0x3f ; 63
a984: f8 94 cli
a986: 3e bf out 0x3e, r19 ; 62
a988: 0f be out 0x3f, r0 ; 63
a98a: 2d bf out 0x3d, r18 ; 61
a98c: 84 fd sbrc r24, 4
a98e: c0 93 64 04 sts 0x0464, r28
a992: 83 e0 ldi r24, 0x03 ; 3
a994: 80 93 b3 02 sts 0x02B3, r24
a998: 61 2c mov r6, r1
a99a: 77 24 eor r7, r7
a99c: 73 94 inc r7
a99e: c0 e0 ldi r28, 0x00 ; 0
a9a0: d0 e0 ldi r29, 0x00 ; 0
a9a2: f8 e9 ldi r31, 0x98 ; 152
a9a4: ef 2e mov r14, r31
a9a6: fa e3 ldi r31, 0x3A ; 58
a9a8: ff 2e mov r15, r31
a9aa: 21 2c mov r2, r1
a9ac: ac e0 ldi r26, 0x0C ; 12
a9ae: 3a 2e mov r3, r26
a9b0: b8 e8 ldi r27, 0x88 ; 136
a9b2: 4b 2e mov r4, r27
a9b4: b3 e1 ldi r27, 0x13 ; 19
a9b6: 5b 2e mov r5, r27
a9b8: 88 ea ldi r24, 0xA8 ; 168
a9ba: c8 2e mov r12, r24
a9bc: 81 e6 ldi r24, 0x61 ; 97
a9be: d8 2e mov r13, r24
a9c0: 90 e8 ldi r25, 0x80 ; 128
a9c2: a9 2e mov r10, r25
a9c4: b1 2c mov r11, r1
a9c6: 25 e0 ldi r18, 0x05 ; 5
a9c8: 82 2e mov r8, r18
a9ca: 91 2c mov r9, r1
a9cc: 12 bc out 0x22, r1 ; 34
a9ce: 11 bc out 0x21, r1 ; 33
a9d0: 80 91 ea 04 lds r24, 0x04EA
a9d4: 88 23 and r24, r24
a9d6: 11 f0 breq .+4 ; 0xa9dc <main+0x52e>
a9d8: 47 98 cbi 0x08, 7 ; 8
a9da: fe cf rjmp .-4 ; 0xa9d8 <main+0x52a>
a9dc: 80 91 cf 04 lds r24, 0x04CF
a9e0: 88 23 and r24, r24
a9e2: 09 f4 brne .+2 ; 0xa9e6 <main+0x538>
a9e4: a6 c2 rjmp .+1356 ; 0xaf32 <main+0xa84>
a9e6: 80 91 0f 01 lds r24, 0x010F
a9ea: 88 23 and r24, r24
a9ec: 09 f4 brne .+2 ; 0xa9f0 <main+0x542>
a9ee: a1 c2 rjmp .+1346 ; 0xaf32 <main+0xa84>
a9f0: f8 94 cli
a9f2: 80 91 cf 04 lds r24, 0x04CF
a9f6: 81 50 subi r24, 0x01 ; 1
a9f8: 80 93 cf 04 sts 0x04CF, r24
a9fc: 78 94 sei
a9fe: 80 91 5a 0a lds r24, 0x0A5A
aa02: 88 23 and r24, r24
aa04: 11 f0 breq .+4 ; 0xaa0a <main+0x55c>
aa06: 36 dc rcall .-1940 ; 0xa274 <CalMk3Mag>
aa08: 02 c0 rjmp .+4 ; 0xaa0e <main+0x560>
aa0a: 0e 94 4c 34 call 0x6898 ; 0x6898 <MotorRegler>
aa0e: 0e 94 b4 30 call 0x6168 ; 0x6168 <SendMotorData>
aa12: 28 98 cbi 0x05, 0 ; 5
aa14: 80 91 02 04 lds r24, 0x0402
aa18: 88 23 and r24, r24
aa1a: 31 f0 breq .+12 ; 0xaa28 <main+0x57a>
aa1c: 80 91 02 04 lds r24, 0x0402
aa20: 81 50 subi r24, 0x01 ; 1
aa22: 80 93 02 04 sts 0x0402, r24
aa26: 3e c0 rjmp .+124 ; 0xaaa4 <main+0x5f6>
aa28: 80 91 6f 00 lds r24, 0x006F
aa2c: 80 62 ori r24, 0x20 ; 32
aa2e: 80 93 6f 00 sts 0x006F, r24
aa32: 10 92 0f 08 sts 0x080F, r1
aa36: 10 92 0e 08 sts 0x080E, r1
aa3a: 80 91 40 0a lds r24, 0x0A40
aa3e: 88 60 ori r24, 0x08 ; 8
aa40: 80 93 40 0a sts 0x0A40, r24
aa44: 20 91 1c 05 lds r18, 0x051C
aa48: 30 e0 ldi r19, 0x00 ; 0
aa4a: 22 0f add r18, r18
aa4c: 33 1f adc r19, r19
aa4e: f9 01 movw r30, r18
aa50: ec 5a subi r30, 0xAC ; 172
aa52: f7 4f sbci r31, 0xF7 ; 247
aa54: 11 82 std Z+1, r1 ; 0x01
aa56: 10 82 st Z, r1
aa58: 80 91 1d 05 lds r24, 0x051D
aa5c: 90 e0 ldi r25, 0x00 ; 0
aa5e: 88 0f add r24, r24
aa60: 99 1f adc r25, r25
aa62: fc 01 movw r30, r24
aa64: ec 5a subi r30, 0xAC ; 172
aa66: f7 4f sbci r31, 0xF7 ; 247
aa68: 11 82 std Z+1, r1 ; 0x01
aa6a: 10 82 st Z, r1
aa6c: f9 01 movw r30, r18
aa6e: e2 5f subi r30, 0xF2 ; 242
aa70: f7 4f sbci r31, 0xF7 ; 247
aa72: 11 82 std Z+1, r1 ; 0x01
aa74: 10 82 st Z, r1
aa76: fc 01 movw r30, r24
aa78: e2 5f subi r30, 0xF2 ; 242
aa7a: f7 4f sbci r31, 0xF7 ; 247
aa7c: 11 82 std Z+1, r1 ; 0x01
aa7e: 10 82 st Z, r1
aa80: e0 91 1f 05 lds r30, 0x051F
aa84: f0 e0 ldi r31, 0x00 ; 0
aa86: ee 0f add r30, r30
aa88: ff 1f adc r31, r31
aa8a: e2 5f subi r30, 0xF2 ; 242
aa8c: f7 4f sbci r31, 0xF7 ; 247
aa8e: 11 82 std Z+1, r1 ; 0x01
aa90: 10 82 st Z, r1
aa92: e0 91 1e 05 lds r30, 0x051E
aa96: f0 e0 ldi r31, 0x00 ; 0
aa98: ee 0f add r30, r30
aa9a: ff 1f adc r31, r31
aa9c: e2 5f subi r30, 0xF2 ; 242
aa9e: f7 4f sbci r31, 0xF7 ; 247
aaa0: 11 82 std Z+1, r1 ; 0x01
aaa2: 10 82 st Z, r1
aaa4: 80 91 b0 02 lds r24, 0x02B0
aaa8: 90 91 b1 02 lds r25, 0x02B1
aaac: 01 97 sbiw r24, 0x01 ; 1
aaae: 90 93 b1 02 sts 0x02B1, r25
aab2: 80 93 b0 02 sts 0x02B0, r24
aab6: 89 2b or r24, r25
aab8: 21 f0 breq .+8 ; 0xaac2 <main+0x614>
aaba: 80 91 dd 04 lds r24, 0x04DD
aabe: 88 23 and r24, r24
aac0: 91 f1 breq .+100 ; 0xab26 <main+0x678>
aac2: 80 91 b0 02 lds r24, 0x02B0
aac6: 90 91 b1 02 lds r25, 0x02B1
aaca: 89 2b or r24, r25
aacc: c9 f4 brne .+50 ; 0xab00 <main+0x652>
aace: 0e 94 3a 8c call 0x11874 ; 0x11874 <I2C_Reset>
aad2: 90 92 b1 02 sts 0x02B1, r9
aad6: 80 92 b0 02 sts 0x02B0, r8
aada: 80 91 5d 0c lds r24, 0x0C5D
aade: 90 91 5e 0c lds r25, 0x0C5E
aae2: 01 96 adiw r24, 0x01 ; 1
aae4: 90 93 5e 0c sts 0x0C5E, r25
aae8: 80 93 5d 0c sts 0x0C5D, r24
aaec: 80 91 40 0a lds r24, 0x0A40
aaf0: 81 60 ori r24, 0x01 ; 1
aaf2: 80 93 40 0a sts 0x0A40, r24
aaf6: 80 91 24 0c lds r24, 0x0C24
aafa: 82 60 ori r24, 0x02 ; 2
aafc: 80 93 24 0c sts 0x0C24, r24
ab00: 80 91 a9 02 lds r24, 0x02A9
ab04: 90 91 aa 02 lds r25, 0x02AA
ab08: 01 96 adiw r24, 0x01 ; 1
ab0a: 71 f4 brne .+28 ; 0xab28 <main+0x67a>
ab0c: 80 91 01 04 lds r24, 0x0401
ab10: 88 23 and r24, r24
ab12: 51 f0 breq .+20 ; 0xab28 <main+0x67a>
ab14: d0 92 cc 04 sts 0x04CC, r13
ab18: c0 92 cb 04 sts 0x04CB, r12
ab1c: b0 92 aa 02 sts 0x02AA, r11
ab20: a0 92 a9 02 sts 0x02A9, r10
ab24: 01 c0 rjmp .+2 ; 0xab28 <main+0x67a>
ab26: 28 98 cbi 0x05, 0 ; 5
ab28: 0e 94 86 19 call 0x330c ; 0x330c <LIBFC_Polling>
ab2c: 80 91 cf 04 lds r24, 0x04CF
ab30: 81 11 cpse r24, r1
ab32: fc c1 rjmp .+1016 ; 0xaf2c <main+0xa7e>
ab34: 80 91 a9 04 lds r24, 0x04A9
ab38: 88 23 and r24, r24
ab3a: 19 f0 breq .+6 ; 0xab42 <main+0x694>
ab3c: 0e 94 c9 7f call 0xff92 ; 0xff92 <ProcessSBus>
ab40: f5 c1 rjmp .+1002 ; 0xaf2c <main+0xa7e>
ab42: 80 91 ca 04 lds r24, 0x04CA
ab46: 81 11 cpse r24, r1
ab48: 02 c0 rjmp .+4 ; 0xab4e <main+0x6a0>
ab4a: 0e 94 2f 82 call 0x1045e ; 0x1045e <SPI_TransmitByte>
ab4e: 80 91 af 02 lds r24, 0x02AF
ab52: 81 11 cpse r24, r1
ab54: 0e 94 f3 88 call 0x111e6 ; 0x111e6 <CalculateServo>
ab58: 0e 94 e4 96 call 0x12dc8 ; 0x12dc8 <DatenUebertragung>
ab5c: 0e 94 d7 92 call 0x125ae ; 0x125ae <BearbeiteRxDaten>
ab60: c8 01 movw r24, r16
ab62: 0e 94 4f 88 call 0x1109e ; 0x1109e <CheckDelay>
ab66: 88 23 and r24, r24
ab68: 09 f4 brne .+2 ; 0xab6c <main+0x6be>
ab6a: dc c1 rjmp .+952 ; 0xaf24 <main+0xa76>
ab6c: 0c 5e subi r16, 0xEC ; 236
ab6e: 1f 4f sbci r17, 0xFF ; 255
ab70: 0e 94 b6 88 call 0x1116c ; 0x1116c <CalcNickServoValue>
ab74: 80 91 42 05 lds r24, 0x0542
ab78: 86 30 cpi r24, 0x06 ; 6
ab7a: 11 f4 brne .+4 ; 0xab80 <main+0x6d2>
ab7c: 9d d6 rcall .+3386 ; 0xb8b8 <HoTT_Menu>
ab7e: 04 c0 rjmp .+8 ; 0xab88 <main+0x6da>
ab80: 84 30 cpi r24, 0x04 ; 4
ab82: 11 f4 brne .+4 ; 0xab88 <main+0x6da>
ab84: 0e 94 c5 72 call 0xe58a ; 0xe58a <BuildJeti_Vario>
ab88: 80 91 c0 03 lds r24, 0x03C0
ab8c: 88 23 and r24, r24
ab8e: 31 f1 breq .+76 ; 0xabdc <main+0x72e>
ab90: 80 91 04 05 lds r24, 0x0504
ab94: 90 91 05 05 lds r25, 0x0505
ab98: 8c 32 cpi r24, 0x2C ; 44
ab9a: 91 40 sbci r25, 0x01 ; 1
ab9c: 74 f0 brlt .+28 ; 0xabba <main+0x70c>
ab9e: 80 91 33 0c lds r24, 0x0C33
aba2: 90 91 34 0c lds r25, 0x0C34
aba6: 81 15 cp r24, r1
aba8: 92 40 sbci r25, 0x02 ; 2
abaa: c4 f4 brge .+48 ; 0xabdc <main+0x72e>
abac: 80 91 04 05 lds r24, 0x0504
abb0: 90 91 05 05 lds r25, 0x0505
abb4: 83 35 cpi r24, 0x53 ; 83
abb6: 93 40 sbci r25, 0x03 ; 3
abb8: 8c f0 brlt .+34 ; 0xabdc <main+0x72e>
abba: 63 94 inc r6
abbc: 32 e3 ldi r19, 0x32 ; 50
abbe: 36 15 cp r19, r6
abc0: 70 f4 brcc .+28 ; 0xabde <main+0x730>
abc2: 80 91 01 04 lds r24, 0x0401
abc6: 88 23 and r24, r24
abc8: 31 f0 breq .+12 ; 0xabd6 <main+0x728>
abca: 80 91 3f 0a lds r24, 0x0A3F
abce: 80 62 ori r24, 0x20 ; 32
abd0: 80 93 3f 0a sts 0x0A3F, r24
abd4: 04 c0 rjmp .+8 ; 0xabde <main+0x730>
abd6: 10 92 ed 03 sts 0x03ED, r1
abda: 01 c0 rjmp .+2 ; 0xabde <main+0x730>
abdc: 61 2c mov r6, r1
abde: 80 91 dd 04 lds r24, 0x04DD
abe2: 81 11 cpse r24, r1
abe4: 05 c0 rjmp .+10 ; 0xabf0 <main+0x742>
abe6: 80 91 19 05 lds r24, 0x0519
abea: 8e 31 cpi r24, 0x1E ; 30
abec: 30 f0 brcs .+12 ; 0xabfa <main+0x74c>
abee: 09 c0 rjmp .+18 ; 0xac02 <main+0x754>
abf0: 80 91 40 0a lds r24, 0x0A40
abf4: 82 60 ori r24, 0x02 ; 2
abf6: 80 93 40 0a sts 0x0A40, r24
abfa: 80 91 24 0c lds r24, 0x0C24
abfe: 82 60 ori r24, 0x02 ; 2
ac00: 0f c0 rjmp .+30 ; 0xac20 <main+0x772>
ac02: 80 91 cb 04 lds r24, 0x04CB
ac06: 90 91 cc 04 lds r25, 0x04CC
ac0a: 89 2b or r24, r25
ac0c: 59 f4 brne .+22 ; 0xac24 <main+0x776>
ac0e: 80 91 b0 02 lds r24, 0x02B0
ac12: 90 91 b1 02 lds r25, 0x02B1
ac16: 07 97 sbiw r24, 0x07 ; 7
ac18: 28 f0 brcs .+10 ; 0xac24 <main+0x776>
ac1a: 80 91 24 0c lds r24, 0x0C24
ac1e: 8d 7f andi r24, 0xFD ; 253
ac20: 80 93 24 0c sts 0x0C24, r24
ac24: 80 91 64 04 lds r24, 0x0464
ac28: 88 23 and r24, r24
ac2a: 51 f0 breq .+20 ; 0xac40 <main+0x792>
ac2c: 80 91 02 04 lds r24, 0x0402
ac30: 87 39 cpi r24, 0x97 ; 151
ac32: 30 f0 brcs .+12 ; 0xac40 <main+0x792>
ac34: 10 92 64 04 sts 0x0464, r1
ac38: 50 92 cc 04 sts 0x04CC, r5
ac3c: 40 92 cb 04 sts 0x04CB, r4
ac40: 80 91 b5 02 lds r24, 0x02B5
ac44: 88 23 and r24, r24
ac46: 21 f0 breq .+8 ; 0xac50 <main+0x7a2>
ac48: 81 50 subi r24, 0x01 ; 1
ac4a: 80 93 b5 02 sts 0x02B5, r24
ac4e: 29 c0 rjmp .+82 ; 0xaca2 <main+0x7f4>
ac50: 10 92 66 0a sts 0x0A66, r1
ac54: 10 92 d5 03 sts 0x03D5, r1
ac58: 10 92 d4 03 sts 0x03D4, r1
ac5c: 10 92 d3 03 sts 0x03D3, r1
ac60: 10 92 d2 03 sts 0x03D2, r1
ac64: 10 92 d1 03 sts 0x03D1, r1
ac68: 10 92 d0 03 sts 0x03D0, r1
ac6c: 80 91 02 04 lds r24, 0x0402
ac70: 81 11 cpse r24, r1
ac72: 17 c0 rjmp .+46 ; 0xaca2 <main+0x7f4>
ac74: 80 91 a9 02 lds r24, 0x02A9
ac78: 90 91 aa 02 lds r25, 0x02AA
ac7c: 01 96 adiw r24, 0x01 ; 1
ac7e: 89 f4 brne .+34 ; 0xaca2 <main+0x7f4>
ac80: 80 91 64 04 lds r24, 0x0464
ac84: 82 30 cpi r24, 0x02 ; 2
ac86: 69 f0 breq .+26 ; 0xaca2 <main+0x7f4>
ac88: f0 92 cc 04 sts 0x04CC, r15
ac8c: e0 92 cb 04 sts 0x04CB, r14
ac90: 30 92 aa 02 sts 0x02AA, r3
ac94: 20 92 a9 02 sts 0x02A9, r2
ac98: 88 23 and r24, r24
ac9a: 19 f0 breq .+6 ; 0xaca2 <main+0x7f4>
ac9c: 82 e0 ldi r24, 0x02 ; 2
ac9e: 80 93 64 04 sts 0x0464, r24
aca2: 80 91 a4 02 lds r24, 0x02A4
aca6: 20 91 43 0a lds r18, 0x0A43
acaa: 89 3c cpi r24, 0xC9 ; 201
acac: 60 f0 brcs .+24 ; 0xacc6 <main+0x818>
acae: 81 50 subi r24, 0x01 ; 1
acb0: 80 93 a4 02 sts 0x02A4, r24
acb4: 80 91 40 0a lds r24, 0x0A40
acb8: 8b 7f andi r24, 0xFB ; 251
acba: 80 93 40 0a sts 0x0A40, r24
acbe: 21 60 ori r18, 0x01 ; 1
acc0: 20 93 43 0a sts 0x0A43, r18
acc4: 4c c0 rjmp .+152 ; 0xad5e <main+0x8b0>
acc6: 80 91 c1 08 lds r24, 0x08C1
acca: 88 23 and r24, r24
accc: e1 f0 breq .+56 ; 0xad06 <main+0x858>
acce: 80 91 40 0a lds r24, 0x0A40
acd2: 84 60 ori r24, 0x04 ; 4
acd4: 80 93 40 0a sts 0x0A40, r24
acd8: 89 e0 ldi r24, 0x09 ; 9
acda: 80 93 b9 04 sts 0x04B9, r24
acde: 80 91 a9 02 lds r24, 0x02A9
ace2: 90 91 aa 02 lds r25, 0x02AA
ace6: 01 96 adiw r24, 0x01 ; 1
ace8: 71 f4 brne .+28 ; 0xad06 <main+0x858>
acea: 80 91 01 04 lds r24, 0x0401
acee: 88 23 and r24, r24
acf0: 51 f0 breq .+20 ; 0xad06 <main+0x858>
acf2: f0 92 cc 04 sts 0x04CC, r15
acf6: e0 92 cb 04 sts 0x04CB, r14
acfa: 80 e0 ldi r24, 0x00 ; 0
acfc: 98 ea ldi r25, 0xA8 ; 168
acfe: 90 93 aa 02 sts 0x02AA, r25
ad02: 80 93 a9 02 sts 0x02A9, r24
ad06: 10 92 69 04 sts 0x0469, r1
ad0a: 10 92 68 04 sts 0x0468, r1
ad0e: 10 92 67 04 sts 0x0467, r1
ad12: 10 92 66 04 sts 0x0466, r1
ad16: 10 92 65 04 sts 0x0465, r1
ad1a: 10 92 b4 08 sts 0x08B4, r1
ad1e: 8f ef ldi r24, 0xFF ; 255
ad20: 80 93 29 09 sts 0x0929, r24
ad24: 10 92 f3 08 sts 0x08F3, r1
ad28: 10 92 f2 08 sts 0x08F2, r1
ad2c: 10 92 f5 08 sts 0x08F5, r1
ad30: 10 92 f4 08 sts 0x08F4, r1
ad34: ef ef ldi r30, 0xFF ; 255
ad36: ff ef ldi r31, 0xFF ; 255
ad38: f0 93 f1 08 sts 0x08F1, r31
ad3c: e0 93 f0 08 sts 0x08F0, r30
ad40: 10 92 f1 03 sts 0x03F1, r1
ad44: 10 92 f2 03 sts 0x03F2, r1
ad48: 10 92 f3 03 sts 0x03F3, r1
ad4c: 10 92 f4 03 sts 0x03F4, r1
ad50: 10 92 f5 03 sts 0x03F5, r1
ad54: 2e 7f andi r18, 0xFE ; 254
ad56: 20 93 43 0a sts 0x0A43, r18
ad5a: 10 92 a4 02 sts 0x02A4, r1
ad5e: 20 91 1a 01 lds r18, 0x011A
ad62: 30 91 1b 01 lds r19, 0x011B
ad66: 80 91 53 01 lds r24, 0x0153
ad6a: e8 2f mov r30, r24
ad6c: f0 e0 ldi r31, 0x00 ; 0
ad6e: e2 17 cp r30, r18
ad70: f3 07 cpc r31, r19
ad72: fc f0 brlt .+62 ; 0xadb2 <main+0x904>
ad74: 20 91 c9 03 lds r18, 0x03C9
ad78: 20 62 ori r18, 0x20 ; 32
ad7a: 20 93 c9 03 sts 0x03C9, r18
ad7e: 20 91 a9 02 lds r18, 0x02A9
ad82: 30 91 aa 02 lds r19, 0x02AA
ad86: 2f 3f cpi r18, 0xFF ; 255
ad88: 3f 4f sbci r19, 0xFF ; 255
ad8a: 99 f4 brne .+38 ; 0xadb2 <main+0x904>
ad8c: 20 91 1a 01 lds r18, 0x011A
ad90: 30 91 1b 01 lds r19, 0x011B
ad94: 2b 30 cpi r18, 0x0B ; 11
ad96: 31 05 cpc r19, r1
ad98: 64 f0 brlt .+24 ; 0xadb2 <main+0x904>
ad9a: 20 e7 ldi r18, 0x70 ; 112
ad9c: 37 e1 ldi r19, 0x17 ; 23
ad9e: 30 93 cc 04 sts 0x04CC, r19
ada2: 20 93 cb 04 sts 0x04CB, r18
ada6: 80 e0 ldi r24, 0x00 ; 0
ada8: 93 e0 ldi r25, 0x03 ; 3
adaa: 90 93 aa 02 sts 0x02AA, r25
adae: 80 93 a9 02 sts 0x02A9, r24
adb2: 20 91 59 04 lds r18, 0x0459
adb6: 2f 5f subi r18, 0xFF ; 255
adb8: 20 93 59 04 sts 0x0459, r18
adbc: 21 33 cpi r18, 0x31 ; 49
adbe: 09 f0 breq .+2 ; 0xadc2 <main+0x914>
adc0: 7b c0 rjmp .+246 ; 0xaeb8 <main+0xa0a>
adc2: 10 92 59 04 sts 0x0459, r1
adc6: 20 91 7e 04 lds r18, 0x047E
adca: 22 23 and r18, r18
adcc: 19 f0 breq .+6 ; 0xadd4 <main+0x926>
adce: 21 50 subi r18, 0x01 ; 1
add0: 20 93 7e 04 sts 0x047E, r18
add4: 20 91 c9 03 lds r18, 0x03C9
add8: 21 ff sbrs r18, 1
adda: 0b c0 rjmp .+22 ; 0xadf2 <main+0x944>
addc: 20 91 5c 04 lds r18, 0x045C
ade0: 30 91 5d 04 lds r19, 0x045D
ade4: 2f 5f subi r18, 0xFF ; 255
ade6: 3f 4f sbci r19, 0xFF ; 255
ade8: 30 93 5d 04 sts 0x045D, r19
adec: 20 93 5c 04 sts 0x045C, r18
adf0: 02 c0 rjmp .+4 ; 0xadf6 <main+0x948>
adf2: ca ea ldi r28, 0xAA ; 170
adf4: d5 e0 ldi r29, 0x05 ; 5
adf6: 20 91 ca 03 lds r18, 0x03CA
adfa: 30 91 cb 03 lds r19, 0x03CB
adfe: 21 15 cp r18, r1
ae00: 34 40 sbci r19, 0x04 ; 4
ae02: 08 f0 brcs .+2 ; 0xae06 <main+0x958>
ae04: 4b c0 rjmp .+150 ; 0xae9c <main+0x9ee>
ae06: 80 91 06 05 lds r24, 0x0506
ae0a: 90 91 07 05 lds r25, 0x0507
ae0e: a0 91 08 05 lds r26, 0x0508
ae12: b0 91 09 05 lds r27, 0x0509
ae16: 40 91 12 01 lds r20, 0x0112
ae1a: 50 91 13 01 lds r21, 0x0113
ae1e: 60 91 14 01 lds r22, 0x0114
ae22: 70 91 15 01 lds r23, 0x0115
ae26: 84 17 cp r24, r20
ae28: 95 07 cpc r25, r21
ae2a: a6 07 cpc r26, r22
ae2c: b7 07 cpc r27, r23
ae2e: 6c f4 brge .+26 ; 0xae4a <main+0x99c>
ae30: 40 91 06 05 lds r20, 0x0506
ae34: 50 91 07 05 lds r21, 0x0507
ae38: 60 91 08 05 lds r22, 0x0508
ae3c: 70 91 09 05 lds r23, 0x0509
ae40: 4b 5f subi r20, 0xFB ; 251
ae42: 5f 4f sbci r21, 0xFF ; 255
ae44: 6f 4f sbci r22, 0xFF ; 255
ae46: 7f 4f sbci r23, 0xFF ; 255
ae48: 21 c0 rjmp .+66 ; 0xae8c <main+0x9de>
ae4a: 80 91 06 05 lds r24, 0x0506
ae4e: 90 91 07 05 lds r25, 0x0507
ae52: a0 91 08 05 lds r26, 0x0508
ae56: b0 91 09 05 lds r27, 0x0509
ae5a: 40 91 12 01 lds r20, 0x0112
ae5e: 50 91 13 01 lds r21, 0x0113
ae62: 60 91 14 01 lds r22, 0x0114
ae66: 70 91 15 01 lds r23, 0x0115
ae6a: 48 17 cp r20, r24
ae6c: 59 07 cpc r21, r25
ae6e: 6a 07 cpc r22, r26
ae70: 7b 07 cpc r23, r27
ae72: a4 f4 brge .+40 ; 0xae9c <main+0x9ee>
ae74: 40 91 06 05 lds r20, 0x0506
ae78: 50 91 07 05 lds r21, 0x0507
ae7c: 60 91 08 05 lds r22, 0x0508
ae80: 70 91 09 05 lds r23, 0x0509
ae84: 45 50 subi r20, 0x05 ; 5
ae86: 51 09 sbc r21, r1
ae88: 61 09 sbc r22, r1
ae8a: 71 09 sbc r23, r1
ae8c: 40 93 06 05 sts 0x0506, r20
ae90: 50 93 07 05 sts 0x0507, r21
ae94: 60 93 08 05 sts 0x0508, r22
ae98: 70 93 09 05 sts 0x0509, r23
ae9c: 20 91 1a 01 lds r18, 0x011A
aea0: 30 91 1b 01 lds r19, 0x011B
aea4: cf 01 movw r24, r30
aea6: 01 96 adiw r24, 0x01 ; 1
aea8: 82 17 cp r24, r18
aeaa: 93 07 cpc r25, r19
aeac: 2c f4 brge .+10 ; 0xaeb8 <main+0xa0a>
aeae: 80 91 c9 03 lds r24, 0x03C9
aeb2: 8f 7d andi r24, 0xDF ; 223
aeb4: 80 93 c9 03 sts 0x03C9, r24
aeb8: 21 96 adiw r28, 0x01 ; 1
aeba: c2 37 cpi r28, 0x72 ; 114
aebc: eb e0 ldi r30, 0x0B ; 11
aebe: de 07 cpc r29, r30
aec0: 89 f5 brne .+98 ; 0xaf24 <main+0xa76>
aec2: 80 91 60 04 lds r24, 0x0460
aec6: 90 91 61 04 lds r25, 0x0461
aeca: 01 96 adiw r24, 0x01 ; 1
aecc: 90 93 61 04 sts 0x0461, r25
aed0: 80 93 60 04 sts 0x0460, r24
aed4: 20 91 5e 04 lds r18, 0x045E
aed8: 30 91 5f 04 lds r19, 0x045F
aedc: 2f 5f subi r18, 0xFF ; 255
aede: 3f 4f sbci r19, 0xFF ; 255
aee0: 30 93 5f 04 sts 0x045F, r19
aee4: 20 93 5e 04 sts 0x045E, r18
aee8: 69 2f mov r22, r25
aeea: 8e e0 ldi r24, 0x0E ; 14
aeec: 90 e0 ldi r25, 0x00 ; 0
aeee: 0e 94 45 23 call 0x468a ; 0x468a <SetParamByte>
aef2: 60 91 60 04 lds r22, 0x0460
aef6: 8f e0 ldi r24, 0x0F ; 15
aef8: 90 e0 ldi r25, 0x00 ; 0
aefa: 0e 94 45 23 call 0x468a ; 0x468a <SetParamByte>
aefe: 60 91 5f 04 lds r22, 0x045F
af02: 8a e0 ldi r24, 0x0A ; 10
af04: 90 e0 ldi r25, 0x00 ; 0
af06: 0e 94 45 23 call 0x468a ; 0x468a <SetParamByte>
af0a: 60 91 5e 04 lds r22, 0x045E
af0e: 8b e0 ldi r24, 0x0B ; 11
af10: 90 e0 ldi r25, 0x00 ; 0
af12: 0e 94 45 23 call 0x468a ; 0x468a <SetParamByte>
af16: 84 e1 ldi r24, 0x14 ; 20
af18: 90 e0 ldi r25, 0x00 ; 0
af1a: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
af1e: 8c 01 movw r16, r24
af20: c0 e0 ldi r28, 0x00 ; 0
af22: d0 e0 ldi r29, 0x00 ; 0
af24: 0e 94 09 74 call 0xe812 ; 0xe812 <LED_Update>
af28: 0e 94 68 20 call 0x40d0 ; 0x40d0 <Capacity_Update>
af2c: 77 20 and r7, r7
af2e: 19 f0 breq .+6 ; 0xaf36 <main+0xa88>
af30: 7a 94 dec r7
af32: 71 10 cpse r7, r1
af34: 10 c0 rjmp .+32 ; 0xaf56 <main+0xaa8>
af36: 0e 94 3d 87 call 0x10e7a ; 0x10e7a <SPI_StartTransmitPacket>
af3a: 88 23 and r24, r24
af3c: 19 f0 breq .+6 ; 0xaf44 <main+0xa96>
af3e: ec e0 ldi r30, 0x0C ; 12
af40: 7e 2e mov r7, r30
af42: 44 cd rjmp .-1400 ; 0xa9cc <main+0x51e>
af44: 80 91 ca 04 lds r24, 0x04CA
af48: 88 23 and r24, r24
af4a: 11 f0 breq .+4 ; 0xaf50 <main+0xaa2>
af4c: 71 2c mov r7, r1
af4e: 3e cd rjmp .-1412 ; 0xa9cc <main+0x51e>
af50: 0e 94 2f 82 call 0x1045e ; 0x1045e <SPI_TransmitByte>
af54: fb cf rjmp .-10 ; 0xaf4c <main+0xa9e>
af56: 80 91 ca 04 lds r24, 0x04CA
af5a: 81 11 cpse r24, r1
af5c: 37 cd rjmp .-1426 ; 0xa9cc <main+0x51e>
af5e: 0e 94 2f 82 call 0x1045e ; 0x1045e <SPI_TransmitByte>
af62: 34 cd rjmp .-1432 ; 0xa9cc <main+0x51e>
 
0000af64 <GetHottestBl>:
af64: 90 91 7b 04 lds r25, 0x047B
af68: 8f e0 ldi r24, 0x0F ; 15
af6a: 98 9f mul r25, r24
af6c: f0 01 movw r30, r0
af6e: 11 24 eor r1, r1
af70: ec 58 subi r30, 0x8C ; 140
af72: f6 4f sbci r31, 0xF6 ; 246
af74: 87 81 ldd r24, Z+7 ; 0x07
af76: 20 91 7a 04 lds r18, 0x047A
af7a: 28 17 cp r18, r24
af7c: 28 f4 brcc .+10 ; 0xaf88 <GetHottestBl+0x24>
af7e: 80 93 7a 04 sts 0x047A, r24
af82: 90 93 79 04 sts 0x0479, r25
af86: 08 c0 rjmp .+16 ; 0xaf98 <GetHottestBl+0x34>
af88: 88 23 and r24, r24
af8a: 31 f0 breq .+12 ; 0xaf98 <GetHottestBl+0x34>
af8c: 20 91 78 04 lds r18, 0x0478
af90: 82 17 cp r24, r18
af92: 10 f4 brcc .+4 ; 0xaf98 <GetHottestBl+0x34>
af94: 80 93 78 04 sts 0x0478, r24
af98: 9f 5f subi r25, 0xFF ; 255
af9a: 9c 30 cpi r25, 0x0C ; 12
af9c: 18 f4 brcc .+6 ; 0xafa4 <GetHottestBl+0x40>
af9e: 90 93 7b 04 sts 0x047B, r25
afa2: 08 95 ret
afa4: 10 92 7b 04 sts 0x047B, r1
afa8: 80 91 78 04 lds r24, 0x0478
afac: 8f 3f cpi r24, 0xFF ; 255
afae: 19 f0 breq .+6 ; 0xafb6 <GetHottestBl+0x52>
afb0: 80 93 81 04 sts 0x0481, r24
afb4: 02 c0 rjmp .+4 ; 0xafba <GetHottestBl+0x56>
afb6: 10 92 81 04 sts 0x0481, r1
afba: 80 91 7a 04 lds r24, 0x047A
afbe: 80 93 82 04 sts 0x0482, r24
afc2: 80 91 79 04 lds r24, 0x0479
afc6: 80 93 80 04 sts 0x0480, r24
afca: 8f ef ldi r24, 0xFF ; 255
afcc: 80 93 78 04 sts 0x0478, r24
afd0: 10 92 7a 04 sts 0x047A, r1
afd4: 10 92 79 04 sts 0x0479, r1
afd8: 08 95 ret
 
0000afda <Hott_ClearLine>:
afda: 95 e1 ldi r25, 0x15 ; 21
afdc: 89 9f mul r24, r25
afde: 80 2d mov r24, r0
afe0: 11 24 eor r1, r1
afe2: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
afe6: 8a e3 ldi r24, 0x3A ; 58
afe8: 9a e0 ldi r25, 0x0A ; 10
afea: 9f 93 push r25
afec: 8f 93 push r24
afee: 8b e7 ldi r24, 0x7B ; 123
aff0: 94 e1 ldi r25, 0x14 ; 20
aff2: 9f 93 push r25
aff4: 8f 93 push r24
aff6: e0 91 55 06 lds r30, 0x0655
affa: f0 91 56 06 lds r31, 0x0656
affe: 09 95 icall
b000: 0f 90 pop r0
b002: 0f 90 pop r0
b004: 0f 90 pop r0
b006: 0f 90 pop r0
b008: 08 95 ret
 
0000b00a <HoTT_Waring>:
b00a: cf 93 push r28
b00c: c0 91 57 01 lds r28, 0x0157
b010: c0 93 7f 04 sts 0x047F, r28
b014: 90 91 c9 03 lds r25, 0x03C9
b018: 80 91 77 04 lds r24, 0x0477
b01c: 95 ff sbrs r25, 5
b01e: 10 c0 rjmp .+32 ; 0xb040 <HoTT_Waring+0x36>
b020: 90 91 bf 03 lds r25, 0x03BF
b024: 99 23 and r25, r25
b026: 31 f0 breq .+12 ; 0xb034 <HoTT_Waring+0x2a>
b028: 90 91 42 05 lds r25, 0x0542
b02c: 96 30 cpi r25, 0x06 ; 6
b02e: 11 f4 brne .+4 ; 0xb034 <HoTT_Waring+0x2a>
b030: ee e0 ldi r30, 0x0E ; 14
b032: 01 c0 rjmp .+2 ; 0xb036 <HoTT_Waring+0x2c>
b034: e0 e1 ldi r30, 0x10 ; 16
b036: cc 23 and r28, r28
b038: 39 f1 breq .+78 ; 0xb088 <HoTT_Waring+0x7e>
b03a: 80 31 cpi r24, 0x10 ; 16
b03c: 29 f5 brne .+74 ; 0xb088 <HoTT_Waring+0x7e>
b03e: 23 c0 rjmp .+70 ; 0xb086 <HoTT_Waring+0x7c>
b040: 20 91 b9 04 lds r18, 0x04B9
b044: 9f ef ldi r25, 0xFF ; 255
b046: 92 0f add r25, r18
b048: 92 32 cpi r25, 0x22 ; 34
b04a: a8 f4 brcc .+42 ; 0xb076 <HoTT_Waring+0x6c>
b04c: 90 91 01 04 lds r25, 0x0401
b050: 30 e0 ldi r19, 0x00 ; 0
b052: 91 11 cpse r25, r1
b054: 08 c0 rjmp .+16 ; 0xb066 <HoTT_Waring+0x5c>
b056: f9 01 movw r30, r18
b058: ee 0f add r30, r30
b05a: ff 1f adc r31, r31
b05c: ef 5a subi r30, 0xAF ; 175
b05e: f5 4f sbci r31, 0xF5 ; 245
b060: e4 91 lpm r30, Z
b062: e1 11 cpse r30, r1
b064: 08 c0 rjmp .+16 ; 0xb076 <HoTT_Waring+0x6c>
b066: f9 01 movw r30, r18
b068: ee 0f add r30, r30
b06a: ff 1f adc r31, r31
b06c: e0 5b subi r30, 0xB0 ; 176
b06e: f5 4f sbci r31, 0xF5 ; 245
b070: e4 91 lpm r30, Z
b072: e1 11 cpse r30, r1
b074: 09 c0 rjmp .+18 ; 0xb088 <HoTT_Waring+0x7e>
b076: 90 91 96 05 lds r25, 0x0596
b07a: 96 fd sbrc r25, 6
b07c: 08 c0 rjmp .+16 ; 0xb08e <HoTT_Waring+0x84>
b07e: 10 92 57 01 sts 0x0157, r1
b082: c0 e0 ldi r28, 0x00 ; 0
b084: 04 c0 rjmp .+8 ; 0xb08e <HoTT_Waring+0x84>
b086: ec 2f mov r30, r28
b088: e0 93 7f 04 sts 0x047F, r30
b08c: ce 2f mov r28, r30
b08e: 8c 13 cpse r24, r28
b090: 0b c0 rjmp .+22 ; 0xb0a8 <HoTT_Waring+0x9e>
b092: 80 91 75 04 lds r24, 0x0475
b096: 90 91 76 04 lds r25, 0x0476
b09a: 0e 94 4f 88 call 0x1109e ; 0x1109e <CheckDelay>
b09e: 88 23 and r24, r24
b0a0: b9 f0 breq .+46 ; 0xb0d0 <HoTT_Waring+0xc6>
b0a2: 80 ea ldi r24, 0xA0 ; 160
b0a4: 9f e0 ldi r25, 0x0F ; 15
b0a6: 02 c0 rjmp .+4 ; 0xb0ac <HoTT_Waring+0xa2>
b0a8: 80 ed ldi r24, 0xD0 ; 208
b0aa: 97 e0 ldi r25, 0x07 ; 7
b0ac: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
b0b0: 90 93 76 04 sts 0x0476, r25
b0b4: 80 93 75 04 sts 0x0475, r24
b0b8: cc 23 and r28, r28
b0ba: 31 f0 breq .+12 ; 0xb0c8 <HoTT_Waring+0xbe>
b0bc: 80 91 57 01 lds r24, 0x0157
b0c0: c8 13 cpse r28, r24
b0c2: 02 c0 rjmp .+4 ; 0xb0c8 <HoTT_Waring+0xbe>
b0c4: 10 92 57 01 sts 0x0157, r1
b0c8: c0 93 77 04 sts 0x0477, r28
b0cc: 8c 2f mov r24, r28
b0ce: 01 c0 rjmp .+2 ; 0xb0d2 <HoTT_Waring+0xc8>
b0d0: 80 e0 ldi r24, 0x00 ; 0
b0d2: cf 91 pop r28
b0d4: 08 95 ret
 
0000b0d6 <NC_Fills_HoTT_Telemety>:
b0d6: 80 91 07 09 lds r24, 0x0907
b0da: 89 38 cpi r24, 0x89 ; 137
b0dc: 51 f1 breq .+84 ; 0xb132 <NC_Fills_HoTT_Telemety+0x5c>
b0de: 38 f4 brcc .+14 ; 0xb0ee <NC_Fills_HoTT_Telemety+0x18>
b0e0: 82 30 cpi r24, 0x02 ; 2
b0e2: f9 f0 breq .+62 ; 0xb122 <NC_Fills_HoTT_Telemety+0x4c>
b0e4: 83 30 cpi r24, 0x03 ; 3
b0e6: 09 f1 breq .+66 ; 0xb12a <NC_Fills_HoTT_Telemety+0x54>
b0e8: 81 30 cpi r24, 0x01 ; 1
b0ea: 39 f4 brne .+14 ; 0xb0fa <NC_Fills_HoTT_Telemety+0x24>
b0ec: 16 c0 rjmp .+44 ; 0xb11a <NC_Fills_HoTT_Telemety+0x44>
b0ee: 8d 38 cpi r24, 0x8D ; 141
b0f0: 81 f0 breq .+32 ; 0xb112 <NC_Fills_HoTT_Telemety+0x3c>
b0f2: 8e 38 cpi r24, 0x8E ; 142
b0f4: 51 f0 breq .+20 ; 0xb10a <NC_Fills_HoTT_Telemety+0x34>
b0f6: 8a 38 cpi r24, 0x8A ; 138
b0f8: 21 f0 breq .+8 ; 0xb102 <NC_Fills_HoTT_Telemety+0x2c>
b0fa: 20 e0 ldi r18, 0x00 ; 0
b0fc: 80 e0 ldi r24, 0x00 ; 0
b0fe: 90 e0 ldi r25, 0x00 ; 0
b100: 1b c0 rjmp .+54 ; 0xb138 <NC_Fills_HoTT_Telemety+0x62>
b102: 2c e2 ldi r18, 0x2C ; 44
b104: 81 e9 ldi r24, 0x91 ; 145
b106: 97 e0 ldi r25, 0x07 ; 7
b108: 17 c0 rjmp .+46 ; 0xb138 <NC_Fills_HoTT_Telemety+0x62>
b10a: 2c e2 ldi r18, 0x2C ; 44
b10c: 87 e5 ldi r24, 0x57 ; 87
b10e: 96 e0 ldi r25, 0x06 ; 6
b110: 13 c0 rjmp .+38 ; 0xb138 <NC_Fills_HoTT_Telemety+0x62>
b112: 2c e2 ldi r18, 0x2C ; 44
b114: 83 e8 ldi r24, 0x83 ; 131
b116: 96 e0 ldi r25, 0x06 ; 6
b118: 0f c0 rjmp .+30 ; 0xb138 <NC_Fills_HoTT_Telemety+0x62>
b11a: 24 e0 ldi r18, 0x04 ; 4
b11c: 86 e7 ldi r24, 0x76 ; 118
b11e: 92 e0 ldi r25, 0x02 ; 2
b120: 0b c0 rjmp .+22 ; 0xb138 <NC_Fills_HoTT_Telemety+0x62>
b122: 24 e0 ldi r18, 0x04 ; 4
b124: 89 e8 ldi r24, 0x89 ; 137
b126: 92 e0 ldi r25, 0x02 ; 2
b128: 07 c0 rjmp .+14 ; 0xb138 <NC_Fills_HoTT_Telemety+0x62>
b12a: 29 e0 ldi r18, 0x09 ; 9
b12c: 8f ea ldi r24, 0xAF ; 175
b12e: 96 e0 ldi r25, 0x06 ; 6
b130: 03 c0 rjmp .+6 ; 0xb138 <NC_Fills_HoTT_Telemety+0x62>
b132: 2c e2 ldi r18, 0x2C ; 44
b134: 89 eb ldi r24, 0xB9 ; 185
b136: 96 e0 ldi r25, 0x06 ; 6
b138: 40 91 fc 08 lds r20, 0x08FC
b13c: ee ef ldi r30, 0xFE ; 254
b13e: f8 e0 ldi r31, 0x08 ; 8
b140: 34 2f mov r19, r20
b142: 50 91 fd 08 lds r21, 0x08FD
b146: 63 2f mov r22, r19
b148: 64 1b sub r22, r20
b14a: 65 17 cp r22, r21
b14c: 48 f4 brcc .+18 ; 0xb160 <NC_Fills_HoTT_Telemety+0x8a>
b14e: 32 17 cp r19, r18
b150: 38 f4 brcc .+14 ; 0xb160 <NC_Fills_HoTT_Telemety+0x8a>
b152: 51 91 ld r21, Z+
b154: dc 01 movw r26, r24
b156: a3 0f add r26, r19
b158: b1 1d adc r27, r1
b15a: 5c 93 st X, r21
b15c: 3f 5f subi r19, 0xFF ; 255
b15e: f1 cf rjmp .-30 ; 0xb142 <NC_Fills_HoTT_Telemety+0x6c>
b160: 08 95 ret
 
0000b162 <BuildHoTT_Vario>:
b162: 80 91 20 01 lds r24, 0x0120
b166: 8b 32 cpi r24, 0x2B ; 43
b168: 11 f0 breq .+4 ; 0xb16e <BuildHoTT_Vario+0xc>
b16a: 8d 32 cpi r24, 0x2D ; 45
b16c: c1 f4 brne .+48 ; 0xb19e <BuildHoTT_Vario+0x3c>
b16e: 40 91 2d 05 lds r20, 0x052D
b172: 20 91 f6 03 lds r18, 0x03F6
b176: 30 91 f7 03 lds r19, 0x03F7
b17a: 42 9f mul r20, r18
b17c: c0 01 movw r24, r0
b17e: 43 9f mul r20, r19
b180: 90 0d add r25, r0
b182: 11 24 eor r1, r1
b184: 63 e0 ldi r22, 0x03 ; 3
b186: 70 e0 ldi r23, 0x00 ; 0
b188: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
b18c: cb 01 movw r24, r22
b18e: 80 5d subi r24, 0xD0 ; 208
b190: 9a 48 sbci r25, 0x8A ; 138
b192: 6f 5c subi r22, 0xCF ; 207
b194: 7f 4f sbci r23, 0xFF ; 255
b196: 61 33 cpi r22, 0x31 ; 49
b198: 71 05 cpc r23, r1
b19a: c0 f1 brcs .+112 ; 0xb20c <BuildHoTT_Vario+0xaa>
b19c: 08 95 ret
b19e: 80 32 cpi r24, 0x20 ; 32
b1a0: 09 f5 brne .+66 ; 0xb1e4 <BuildHoTT_Vario+0x82>
b1a2: 80 91 c9 03 lds r24, 0x03C9
b1a6: 81 ff sbrs r24, 1
b1a8: 34 c0 rjmp .+104 ; 0xb212 <BuildHoTT_Vario+0xb0>
b1aa: 20 91 7c 04 lds r18, 0x047C
b1ae: 30 91 7d 04 lds r19, 0x047D
b1b2: c9 01 movw r24, r18
b1b4: 80 5d subi r24, 0xD0 ; 208
b1b6: 9a 48 sbci r25, 0x8A ; 138
b1b8: 81 33 cpi r24, 0x31 ; 49
b1ba: 45 e7 ldi r20, 0x75 ; 117
b1bc: 94 07 cpc r25, r20
b1be: 38 f0 brcs .+14 ; 0xb1ce <BuildHoTT_Vario+0x6c>
b1c0: 84 39 cpi r24, 0x94 ; 148
b1c2: 45 e7 ldi r20, 0x75 ; 117
b1c4: 94 07 cpc r25, r20
b1c6: 28 f1 brcs .+74 ; 0xb212 <BuildHoTT_Vario+0xb0>
b1c8: 84 56 subi r24, 0x64 ; 100
b1ca: 91 09 sbc r25, r1
b1cc: 08 95 ret
b1ce: 80 33 cpi r24, 0x30 ; 48
b1d0: 45 e7 ldi r20, 0x75 ; 117
b1d2: 94 07 cpc r25, r20
b1d4: 01 f1 breq .+64 ; 0xb216 <BuildHoTT_Vario+0xb4>
b1d6: 8d 3c cpi r24, 0xCD ; 205
b1d8: 94 47 sbci r25, 0x74 ; 116
b1da: d8 f4 brcc .+54 ; 0xb212 <BuildHoTT_Vario+0xb0>
b1dc: c9 01 movw r24, r18
b1de: 8c 56 subi r24, 0x6C ; 108
b1e0: 9a 48 sbci r25, 0x8A ; 138
b1e2: 08 95 ret
b1e4: 8e 35 cpi r24, 0x5E ; 94
b1e6: 39 f4 brne .+14 ; 0xb1f6 <BuildHoTT_Vario+0x94>
b1e8: 80 91 f1 03 lds r24, 0x03F1
b1ec: 2a e0 ldi r18, 0x0A ; 10
b1ee: 82 9f mul r24, r18
b1f0: c0 01 movw r24, r0
b1f2: 11 24 eor r1, r1
b1f4: 08 c0 rjmp .+16 ; 0xb206 <BuildHoTT_Vario+0xa4>
b1f6: 86 37 cpi r24, 0x76 ; 118
b1f8: 61 f4 brne .+24 ; 0xb212 <BuildHoTT_Vario+0xb0>
b1fa: 20 91 f1 03 lds r18, 0x03F1
b1fe: 36 ef ldi r19, 0xF6 ; 246
b200: 32 03 mulsu r19, r18
b202: c0 01 movw r24, r0
b204: 11 24 eor r1, r1
b206: 80 5d subi r24, 0xD0 ; 208
b208: 9a 48 sbci r25, 0x8A ; 138
b20a: 08 95 ret
b20c: 8e ef ldi r24, 0xFE ; 254
b20e: 94 e7 ldi r25, 0x74 ; 116
b210: 08 95 ret
b212: 80 e3 ldi r24, 0x30 ; 48
b214: 95 e7 ldi r25, 0x75 ; 117
b216: 08 95 ret
 
0000b218 <HoTT_Telemety>:
b218: cf 93 push r28
b21a: 8a 38 cpi r24, 0x8A ; 138
b21c: 09 f4 brne .+2 ; 0xb220 <HoTT_Telemety+0x8>
b21e: a7 c1 rjmp .+846 ; 0xb56e <HoTT_Telemety+0x356>
b220: 18 f4 brcc .+6 ; 0xb228 <HoTT_Telemety+0x10>
b222: 89 38 cpi r24, 0x89 ; 137
b224: 41 f0 breq .+16 ; 0xb236 <HoTT_Telemety+0x1e>
b226: 45 c3 rjmp .+1674 ; 0xb8b2 <HoTT_Telemety+0x69a>
b228: 8d 38 cpi r24, 0x8D ; 141
b22a: 09 f4 brne .+2 ; 0xb22e <HoTT_Telemety+0x16>
b22c: 86 c2 rjmp .+1292 ; 0xb73a <HoTT_Telemety+0x522>
b22e: 8e 38 cpi r24, 0x8E ; 142
b230: 09 f4 brne .+2 ; 0xb234 <HoTT_Telemety+0x1c>
b232: ed c1 rjmp .+986 ; 0xb60e <HoTT_Telemety+0x3f6>
b234: 3e c3 rjmp .+1660 ; 0xb8b2 <HoTT_Telemety+0x69a>
b236: e9 de rcall .-558 ; 0xb00a <HoTT_Waring>
b238: c8 2f mov r28, r24
b23a: 80 93 93 07 sts 0x0793, r24
b23e: 60 91 fc 03 lds r22, 0x03FC
b242: 70 91 fd 03 lds r23, 0x03FD
b246: 80 91 fe 03 lds r24, 0x03FE
b24a: 90 91 ff 03 lds r25, 0x03FF
b24e: 24 e6 ldi r18, 0x64 ; 100
b250: 30 e0 ldi r19, 0x00 ; 0
b252: 40 e0 ldi r20, 0x00 ; 0
b254: 50 e0 ldi r21, 0x00 ; 0
b256: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
b25a: 2c 50 subi r18, 0x0C ; 12
b25c: 3e 4f sbci r19, 0xFE ; 254
b25e: 30 93 bf 06 sts 0x06BF, r19
b262: 20 93 be 06 sts 0x06BE, r18
b266: c1 11 cpse r28, r1
b268: 02 c0 rjmp .+4 ; 0xb26e <HoTT_Telemety+0x56>
b26a: 7b df rcall .-266 ; 0xb162 <BuildHoTT_Vario>
b26c: 02 c0 rjmp .+4 ; 0xb272 <HoTT_Telemety+0x5a>
b26e: 80 e3 ldi r24, 0x30 ; 48
b270: 95 e7 ldi r25, 0x75 ; 117
b272: 90 93 c5 06 sts 0x06C5, r25
b276: 80 93 c4 06 sts 0x06C4, r24
b27a: 80 91 c4 06 lds r24, 0x06C4
b27e: 90 91 c5 06 lds r25, 0x06C5
b282: 90 93 c7 06 sts 0x06C7, r25
b286: 80 93 c6 06 sts 0x06C6, r24
b28a: 90 93 c9 06 sts 0x06C9, r25
b28e: 80 93 c8 06 sts 0x06C8, r24
b292: 80 91 be 06 lds r24, 0x06BE
b296: 90 91 bf 06 lds r25, 0x06BF
b29a: 20 91 c2 06 lds r18, 0x06C2
b29e: 30 91 c3 06 lds r19, 0x06C3
b2a2: 82 17 cp r24, r18
b2a4: 93 07 cpc r25, r19
b2a6: 24 f4 brge .+8 ; 0xb2b0 <HoTT_Telemety+0x98>
b2a8: 90 93 c3 06 sts 0x06C3, r25
b2ac: 80 93 c2 06 sts 0x06C2, r24
b2b0: 20 91 c0 06 lds r18, 0x06C0
b2b4: 30 91 c1 06 lds r19, 0x06C1
b2b8: 28 17 cp r18, r24
b2ba: 39 07 cpc r19, r25
b2bc: 24 f4 brge .+8 ; 0xb2c6 <HoTT_Telemety+0xae>
b2be: 90 93 c1 06 sts 0x06C1, r25
b2c2: 80 93 c0 06 sts 0x06C0, r24
b2c6: 10 92 bb 06 sts 0x06BB, r1
b2ca: 89 eb ldi r24, 0xB9 ; 185
b2cc: 96 e0 ldi r25, 0x06 ; 6
b2ce: 90 93 f1 02 sts 0x02F1, r25
b2d2: 80 93 f0 02 sts 0x02F0, r24
b2d6: 80 91 20 01 lds r24, 0x0120
b2da: 80 93 df 06 sts 0x06DF, r24
b2de: 80 91 c8 03 lds r24, 0x03C8
b2e2: 80 ff sbrs r24, 0
b2e4: 02 c0 rjmp .+4 ; 0xb2ea <HoTT_Telemety+0xd2>
b2e6: 83 e4 ldi r24, 0x43 ; 67
b2e8: 01 c0 rjmp .+2 ; 0xb2ec <HoTT_Telemety+0xd4>
b2ea: 80 e2 ldi r24, 0x20 ; 32
b2ec: 80 93 e0 06 sts 0x06E0, r24
b2f0: 20 91 b9 04 lds r18, 0x04B9
b2f4: 22 23 and r18, r18
b2f6: 11 f1 breq .+68 ; 0xb33c <HoTT_Telemety+0x124>
b2f8: 82 2f mov r24, r18
b2fa: 6a e0 ldi r22, 0x0A ; 10
b2fc: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
b300: 80 5d subi r24, 0xD0 ; 208
b302: 80 93 ca 06 sts 0x06CA, r24
b306: 90 5d subi r25, 0xD0 ; 208
b308: 90 93 cb 06 sts 0x06CB, r25
b30c: 8a e3 ldi r24, 0x3A ; 58
b30e: 80 93 cc 06 sts 0x06CC, r24
b312: ad ec ldi r26, 0xCD ; 205
b314: b6 e0 ldi r27, 0x06 ; 6
b316: 31 e1 ldi r19, 0x11 ; 17
b318: 23 9f mul r18, r19
b31a: c0 01 movw r24, r0
b31c: 11 24 eor r1, r1
b31e: 20 e0 ldi r18, 0x00 ; 0
b320: 30 e0 ldi r19, 0x00 ; 0
b322: 8a 56 subi r24, 0x6A ; 106
b324: 95 4f sbci r25, 0xF5 ; 245
b326: fc 01 movw r30, r24
b328: e2 0f add r30, r18
b32a: f3 1f adc r31, r19
b32c: e4 91 lpm r30, Z
b32e: ed 93 st X+, r30
b330: 2f 5f subi r18, 0xFF ; 255
b332: 3f 4f sbci r19, 0xFF ; 255
b334: 20 31 cpi r18, 0x10 ; 16
b336: 31 05 cpc r19, r1
b338: b1 f7 brne .-20 ; 0xb326 <HoTT_Telemety+0x10e>
b33a: c3 c0 rjmp .+390 ; 0xb4c2 <HoTT_Telemety+0x2aa>
b33c: 80 91 bf 03 lds r24, 0x03BF
b340: 88 23 and r24, r24
b342: 61 f0 breq .+24 ; 0xb35c <HoTT_Telemety+0x144>
b344: ec e1 ldi r30, 0x1C ; 28
b346: fd e0 ldi r31, 0x0D ; 13
b348: aa ec ldi r26, 0xCA ; 202
b34a: b6 e0 ldi r27, 0x06 ; 6
b34c: 84 91 lpm r24, Z
b34e: 8d 93 st X+, r24
b350: 31 96 adiw r30, 0x01 ; 1
b352: 8d e0 ldi r24, 0x0D ; 13
b354: e1 33 cpi r30, 0x31 ; 49
b356: f8 07 cpc r31, r24
b358: c9 f7 brne .-14 ; 0xb34c <HoTT_Telemety+0x134>
b35a: 4c c1 rjmp .+664 ; 0xb5f4 <HoTT_Telemety+0x3dc>
b35c: 80 91 c9 03 lds r24, 0x03C9
b360: 85 ff sbrs r24, 5
b362: 0c c0 rjmp .+24 ; 0xb37c <HoTT_Telemety+0x164>
b364: e2 e3 ldi r30, 0x32 ; 50
b366: fd e0 ldi r31, 0x0D ; 13
b368: aa ec ldi r26, 0xCA ; 202
b36a: b6 e0 ldi r27, 0x06 ; 6
b36c: 84 91 lpm r24, Z
b36e: 8d 93 st X+, r24
b370: 31 96 adiw r30, 0x01 ; 1
b372: 9d e0 ldi r25, 0x0D ; 13
b374: e7 34 cpi r30, 0x47 ; 71
b376: f9 07 cpc r31, r25
b378: c9 f7 brne .-14 ; 0xb36c <HoTT_Telemety+0x154>
b37a: 3c c1 rjmp .+632 ; 0xb5f4 <HoTT_Telemety+0x3dc>
b37c: 80 91 7e 04 lds r24, 0x047E
b380: 88 23 and r24, r24
b382: 69 f1 breq .+90 ; 0xb3de <HoTT_Telemety+0x1c6>
b384: e9 ee ldi r30, 0xE9 ; 233
b386: fc e0 ldi r31, 0x0C ; 12
b388: aa ec ldi r26, 0xCA ; 202
b38a: b6 e0 ldi r27, 0x06 ; 6
b38c: 84 91 lpm r24, Z
b38e: 8d 93 st X+, r24
b390: 31 96 adiw r30, 0x01 ; 1
b392: 3c e0 ldi r19, 0x0C ; 12
b394: e0 3f cpi r30, 0xF0 ; 240
b396: f3 07 cpc r31, r19
b398: c9 f7 brne .-14 ; 0xb38c <HoTT_Telemety+0x174>
b39a: 80 91 52 01 lds r24, 0x0152
b39e: 80 5d subi r24, 0xD0 ; 208
b3a0: 80 93 ce 06 sts 0x06CE, r24
b3a4: e7 e9 ldi r30, 0x97 ; 151
b3a6: f5 e0 ldi r31, 0x05 ; 5
b3a8: a1 ed ldi r26, 0xD1 ; 209
b3aa: b6 e0 ldi r27, 0x06 ; 6
b3ac: 81 91 ld r24, Z+
b3ae: 8d 93 st X+, r24
b3b0: 85 e0 ldi r24, 0x05 ; 5
b3b2: e3 3a cpi r30, 0xA3 ; 163
b3b4: f8 07 cpc r31, r24
b3b6: d1 f7 brne .-12 ; 0xb3ac <HoTT_Telemety+0x194>
b3b8: 80 91 c7 03 lds r24, 0x03C7
b3bc: 81 ff sbrs r24, 1
b3be: 0b c0 rjmp .+22 ; 0xb3d6 <HoTT_Telemety+0x1be>
b3c0: 82 e4 ldi r24, 0x42 ; 66
b3c2: 80 93 db 06 sts 0x06DB, r24
b3c6: 8f e4 ldi r24, 0x4F ; 79
b3c8: 80 93 dc 06 sts 0x06DC, r24
b3cc: 81 e4 ldi r24, 0x41 ; 65
b3ce: 80 93 dd 06 sts 0x06DD, r24
b3d2: 84 e5 ldi r24, 0x54 ; 84
b3d4: 79 c0 rjmp .+242 ; 0xb4c8 <HoTT_Telemety+0x2b0>
b3d6: 80 e2 ldi r24, 0x20 ; 32
b3d8: 80 93 dc 06 sts 0x06DC, r24
b3dc: 73 c0 rjmp .+230 ; 0xb4c4 <HoTT_Telemety+0x2ac>
b3de: 40 91 8a 04 lds r20, 0x048A
b3e2: 44 23 and r20, r20
b3e4: 09 f4 brne .+2 ; 0xb3e8 <HoTT_Telemety+0x1d0>
b3e6: 73 c0 rjmp .+230 ; 0xb4ce <HoTT_Telemety+0x2b6>
b3e8: 87 e5 ldi r24, 0x57 ; 87
b3ea: 80 93 ca 06 sts 0x06CA, r24
b3ee: 80 e5 ldi r24, 0x50 ; 80
b3f0: 80 93 cb 06 sts 0x06CB, r24
b3f4: 20 e2 ldi r18, 0x20 ; 32
b3f6: 20 93 cc 06 sts 0x06CC, r18
b3fa: 80 91 8b 04 lds r24, 0x048B
b3fe: 3a e0 ldi r19, 0x0A ; 10
b400: 63 2f mov r22, r19
b402: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
b406: 80 5d subi r24, 0xD0 ; 208
b408: 80 93 cd 06 sts 0x06CD, r24
b40c: 90 5d subi r25, 0xD0 ; 208
b40e: 90 93 ce 06 sts 0x06CE, r25
b412: 8f e2 ldi r24, 0x2F ; 47
b414: 80 93 cf 06 sts 0x06CF, r24
b418: 84 2f mov r24, r20
b41a: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
b41e: 80 5d subi r24, 0xD0 ; 208
b420: 80 93 d0 06 sts 0x06D0, r24
b424: 90 5d subi r25, 0xD0 ; 208
b426: 90 93 d1 06 sts 0x06D1, r25
b42a: 20 93 d2 06 sts 0x06D2, r18
b42e: 80 91 83 04 lds r24, 0x0483
b432: 90 91 84 04 lds r25, 0x0484
b436: 89 3e cpi r24, 0xE9 ; 233
b438: 33 e0 ldi r19, 0x03 ; 3
b43a: 93 07 cpc r25, r19
b43c: 40 f0 brcs .+16 ; 0xb44e <HoTT_Telemety+0x236>
b43e: 68 ee ldi r22, 0xE8 ; 232
b440: 73 e0 ldi r23, 0x03 ; 3
b442: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
b446: 60 5d subi r22, 0xD0 ; 208
b448: 60 93 d3 06 sts 0x06D3, r22
b44c: 02 c0 rjmp .+4 ; 0xb452 <HoTT_Telemety+0x23a>
b44e: 20 93 d3 06 sts 0x06D3, r18
b452: 85 36 cpi r24, 0x65 ; 101
b454: 91 05 cpc r25, r1
b456: 40 f0 brcs .+16 ; 0xb468 <HoTT_Telemety+0x250>
b458: 64 e6 ldi r22, 0x64 ; 100
b45a: 70 e0 ldi r23, 0x00 ; 0
b45c: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
b460: 60 5d subi r22, 0xD0 ; 208
b462: 60 93 d4 06 sts 0x06D4, r22
b466: 03 c0 rjmp .+6 ; 0xb46e <HoTT_Telemety+0x256>
b468: 20 e2 ldi r18, 0x20 ; 32
b46a: 20 93 d4 06 sts 0x06D4, r18
b46e: 6a e0 ldi r22, 0x0A ; 10
b470: 70 e0 ldi r23, 0x00 ; 0
b472: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
b476: 60 5d subi r22, 0xD0 ; 208
b478: 60 93 d5 06 sts 0x06D5, r22
b47c: 80 5d subi r24, 0xD0 ; 208
b47e: 80 93 d6 06 sts 0x06D6, r24
b482: 8d e6 ldi r24, 0x6D ; 109
b484: 80 93 d7 06 sts 0x06D7, r24
b488: 90 e2 ldi r25, 0x20 ; 32
b48a: 90 93 d8 06 sts 0x06D8, r25
b48e: 80 91 89 04 lds r24, 0x0489
b492: 85 36 cpi r24, 0x65 ; 101
b494: 40 f0 brcs .+16 ; 0xb4a6 <HoTT_Telemety+0x28e>
b496: 64 e6 ldi r22, 0x64 ; 100
b498: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
b49c: 80 5d subi r24, 0xD0 ; 208
b49e: 80 93 d9 06 sts 0x06D9, r24
b4a2: 89 2f mov r24, r25
b4a4: 02 c0 rjmp .+4 ; 0xb4aa <HoTT_Telemety+0x292>
b4a6: 90 93 d9 06 sts 0x06D9, r25
b4aa: 6a e0 ldi r22, 0x0A ; 10
b4ac: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
b4b0: 80 5d subi r24, 0xD0 ; 208
b4b2: 80 93 da 06 sts 0x06DA, r24
b4b6: 90 5d subi r25, 0xD0 ; 208
b4b8: 90 93 db 06 sts 0x06DB, r25
b4bc: 83 e7 ldi r24, 0x73 ; 115
b4be: 80 93 dc 06 sts 0x06DC, r24
b4c2: 80 e2 ldi r24, 0x20 ; 32
b4c4: 80 93 dd 06 sts 0x06DD, r24
b4c8: 80 93 de 06 sts 0x06DE, r24
b4cc: 93 c0 rjmp .+294 ; 0xb5f4 <HoTT_Telemety+0x3dc>
b4ce: 80 91 b5 04 lds r24, 0x04B5
b4d2: 84 ff sbrs r24, 4
b4d4: 0c c0 rjmp .+24 ; 0xb4ee <HoTT_Telemety+0x2d6>
b4d6: e6 e0 ldi r30, 0x06 ; 6
b4d8: fd e0 ldi r31, 0x0D ; 13
b4da: aa ec ldi r26, 0xCA ; 202
b4dc: b6 e0 ldi r27, 0x06 ; 6
b4de: 84 91 lpm r24, Z
b4e0: 8d 93 st X+, r24
b4e2: 31 96 adiw r30, 0x01 ; 1
b4e4: 8d e0 ldi r24, 0x0D ; 13
b4e6: eb 31 cpi r30, 0x1B ; 27
b4e8: f8 07 cpc r31, r24
b4ea: c9 f7 brne .-14 ; 0xb4de <HoTT_Telemety+0x2c6>
b4ec: 83 c0 rjmp .+262 ; 0xb5f4 <HoTT_Telemety+0x3dc>
b4ee: 80 91 ed 03 lds r24, 0x03ED
b4f2: 81 11 cpse r24, r1
b4f4: 1b c0 rjmp .+54 ; 0xb52c <HoTT_Telemety+0x314>
b4f6: aa ec ldi r26, 0xCA ; 202
b4f8: b6 e0 ldi r27, 0x06 ; 6
b4fa: 80 e0 ldi r24, 0x00 ; 0
b4fc: 90 e0 ldi r25, 0x00 ; 0
b4fe: fc 01 movw r30, r24
b500: e6 5b subi r30, 0xB6 ; 182
b502: f2 4f sbci r31, 0xF2 ; 242
b504: e4 91 lpm r30, Z
b506: ed 93 st X+, r30
b508: 01 96 adiw r24, 0x01 ; 1
b50a: 81 31 cpi r24, 0x11 ; 17
b50c: 91 05 cpc r25, r1
b50e: b9 f7 brne .-18 ; 0xb4fe <HoTT_Telemety+0x2e6>
b510: 82 e3 ldi r24, 0x32 ; 50
b512: 80 93 da 06 sts 0x06DA, r24
b516: 8e e2 ldi r24, 0x2E ; 46
b518: 80 93 db 06 sts 0x06DB, r24
b51c: 80 e3 ldi r24, 0x30 ; 48
b51e: 80 93 dc 06 sts 0x06DC, r24
b522: 88 e3 ldi r24, 0x38 ; 56
b524: 80 93 dd 06 sts 0x06DD, r24
b528: 81 e6 ldi r24, 0x61 ; 97
b52a: ce cf rjmp .-100 ; 0xb4c8 <HoTT_Telemety+0x2b0>
b52c: 80 91 c7 03 lds r24, 0x03C7
b530: 81 ff sbrs r24, 1
b532: 11 c0 rjmp .+34 ; 0xb556 <HoTT_Telemety+0x33e>
b534: e0 ef ldi r30, 0xF0 ; 240
b536: fc e0 ldi r31, 0x0C ; 12
b538: aa ec ldi r26, 0xCA ; 202
b53a: b6 e0 ldi r27, 0x06 ; 6
b53c: 94 91 lpm r25, Z
b53e: 9d 93 st X+, r25
b540: 31 96 adiw r30, 0x01 ; 1
b542: 9d e0 ldi r25, 0x0D ; 13
b544: e5 30 cpi r30, 0x05 ; 5
b546: f9 07 cpc r31, r25
b548: c9 f7 brne .-14 ; 0xb53c <HoTT_Telemety+0x324>
b54a: 80 ff sbrs r24, 0
b54c: 53 c0 rjmp .+166 ; 0xb5f4 <HoTT_Telemety+0x3dc>
b54e: 82 e5 ldi r24, 0x52 ; 82
b550: 80 93 ca 06 sts 0x06CA, r24
b554: 4f c0 rjmp .+158 ; 0xb5f4 <HoTT_Telemety+0x3dc>
b556: e8 e4 ldi r30, 0x48 ; 72
b558: fd e0 ldi r31, 0x0D ; 13
b55a: aa ec ldi r26, 0xCA ; 202
b55c: b6 e0 ldi r27, 0x06 ; 6
b55e: 94 91 lpm r25, Z
b560: 9d 93 st X+, r25
b562: 31 96 adiw r30, 0x01 ; 1
b564: 3d e0 ldi r19, 0x0D ; 13
b566: ed 35 cpi r30, 0x5D ; 93
b568: f3 07 cpc r31, r19
b56a: c9 f7 brne .-14 ; 0xb55e <HoTT_Telemety+0x346>
b56c: ee cf rjmp .-36 ; 0xb54a <HoTT_Telemety+0x332>
b56e: 60 91 fc 03 lds r22, 0x03FC
b572: 70 91 fd 03 lds r23, 0x03FD
b576: 80 91 fe 03 lds r24, 0x03FE
b57a: 90 91 ff 03 lds r25, 0x03FF
b57e: 24 e6 ldi r18, 0x64 ; 100
b580: 30 e0 ldi r19, 0x00 ; 0
b582: 40 e0 ldi r20, 0x00 ; 0
b584: 50 e0 ldi r21, 0x00 ; 0
b586: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
b58a: 2c 50 subi r18, 0x0C ; 12
b58c: 3e 4f sbci r19, 0xFE ; 254
b58e: 30 93 a7 07 sts 0x07A7, r19
b592: 20 93 a6 07 sts 0x07A6, r18
b596: 80 91 93 07 lds r24, 0x0793
b59a: 81 11 cpse r24, r1
b59c: 2d c0 rjmp .+90 ; 0xb5f8 <HoTT_Telemety+0x3e0>
b59e: e1 dd rcall .-1086 ; 0xb162 <BuildHoTT_Vario>
b5a0: 90 93 a9 07 sts 0x07A9, r25
b5a4: 80 93 a8 07 sts 0x07A8, r24
b5a8: 88 e7 ldi r24, 0x78 ; 120
b5aa: 80 93 aa 07 sts 0x07AA, r24
b5ae: 80 91 b5 08 lds r24, 0x08B5
b5b2: 80 93 ab 07 sts 0x07AB, r24
b5b6: 80 91 b4 08 lds r24, 0x08B4
b5ba: 81 ff sbrs r24, 1
b5bc: 20 c0 rjmp .+64 ; 0xb5fe <HoTT_Telemety+0x3e6>
b5be: 84 e4 ldi r24, 0x44 ; 68
b5c0: 80 93 ac 07 sts 0x07AC, r24
b5c4: 81 e9 ldi r24, 0x91 ; 145
b5c6: 97 e0 ldi r25, 0x07 ; 7
b5c8: 90 93 f1 02 sts 0x02F1, r25
b5cc: 80 93 f0 02 sts 0x02F0, r24
b5d0: 80 91 96 02 lds r24, 0x0296
b5d4: 80 93 b8 07 sts 0x07B8, r24
b5d8: 80 91 ac 07 lds r24, 0x07AC
b5dc: 80 93 ba 07 sts 0x07BA, r24
b5e0: 80 91 ba 08 lds r24, 0x08BA
b5e4: 90 91 bb 08 lds r25, 0x08BB
b5e8: 97 fd sbrc r25, 7
b5ea: 01 96 adiw r24, 0x01 ; 1
b5ec: 95 95 asr r25
b5ee: 87 95 ror r24
b5f0: 80 93 ad 07 sts 0x07AD, r24
b5f4: 8c e2 ldi r24, 0x2C ; 44
b5f6: 5e c1 rjmp .+700 ; 0xb8b4 <HoTT_Telemety+0x69c>
b5f8: 80 e3 ldi r24, 0x30 ; 48
b5fa: 95 e7 ldi r25, 0x75 ; 117
b5fc: d1 cf rjmp .-94 ; 0xb5a0 <HoTT_Telemety+0x388>
b5fe: 80 91 b6 08 lds r24, 0x08B6
b602: 83 30 cpi r24, 0x03 ; 3
b604: 11 f4 brne .+4 ; 0xb60a <HoTT_Telemety+0x3f2>
b606: 80 e2 ldi r24, 0x20 ; 32
b608: db cf rjmp .-74 ; 0xb5c0 <HoTT_Telemety+0x3a8>
b60a: 81 e2 ldi r24, 0x21 ; 33
b60c: d9 cf rjmp .-78 ; 0xb5c0 <HoTT_Telemety+0x3a8>
b60e: aa dc rcall .-1708 ; 0xaf64 <GetHottestBl>
b610: 60 91 fc 03 lds r22, 0x03FC
b614: 70 91 fd 03 lds r23, 0x03FD
b618: 80 91 fe 03 lds r24, 0x03FE
b61c: 90 91 ff 03 lds r25, 0x03FF
b620: 24 e6 ldi r18, 0x64 ; 100
b622: 30 e0 ldi r19, 0x00 ; 0
b624: 40 e0 ldi r20, 0x00 ; 0
b626: 50 e0 ldi r21, 0x00 ; 0
b628: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
b62c: 2c 50 subi r18, 0x0C ; 12
b62e: 3e 4f sbci r19, 0xFE ; 254
b630: 30 93 72 06 sts 0x0672, r19
b634: 20 93 71 06 sts 0x0671, r18
b638: 80 91 1a 01 lds r24, 0x011A
b63c: 90 91 1b 01 lds r25, 0x011B
b640: 90 93 6c 06 sts 0x066C, r25
b644: 80 93 6b 06 sts 0x066B, r24
b648: 80 91 1a 01 lds r24, 0x011A
b64c: 90 91 1b 01 lds r25, 0x011B
b650: 90 93 6e 06 sts 0x066E, r25
b654: 80 93 6d 06 sts 0x066D, r24
b658: 80 91 42 06 lds r24, 0x0642
b65c: 90 91 43 06 lds r25, 0x0643
b660: 97 fd sbrc r25, 7
b662: 01 96 adiw r24, 0x01 ; 1
b664: 95 95 asr r25
b666: 87 95 ror r24
b668: 80 93 5d 06 sts 0x065D, r24
b66c: 80 93 64 06 sts 0x0664, r24
b670: 80 91 ba 08 lds r24, 0x08BA
b674: 90 91 bb 08 lds r25, 0x08BB
b678: 97 fd sbrc r25, 7
b67a: 01 96 adiw r24, 0x01 ; 1
b67c: 9c 01 movw r18, r24
b67e: 35 95 asr r19
b680: 27 95 ror r18
b682: 20 93 62 06 sts 0x0662, r18
b686: 80 91 b8 08 lds r24, 0x08B8
b68a: 90 91 b9 08 lds r25, 0x08B9
b68e: 64 e1 ldi r22, 0x14 ; 20
b690: 70 e0 ldi r23, 0x00 ; 0
b692: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
b696: 60 93 63 06 sts 0x0663, r22
b69a: 20 93 69 06 sts 0x0669, r18
b69e: 60 93 6a 06 sts 0x066A, r22
b6a2: 80 91 93 07 lds r24, 0x0793
b6a6: 81 11 cpse r24, r1
b6a8: 02 c0 rjmp .+4 ; 0xb6ae <HoTT_Telemety+0x496>
b6aa: 5b dd rcall .-1354 ; 0xb162 <BuildHoTT_Vario>
b6ac: 02 c0 rjmp .+4 ; 0xb6b2 <HoTT_Telemety+0x49a>
b6ae: 80 e3 ldi r24, 0x30 ; 48
b6b0: 95 e7 ldi r25, 0x75 ; 117
b6b2: 90 93 7a 06 sts 0x067A, r25
b6b6: 80 93 79 06 sts 0x0679, r24
b6ba: 88 e7 ldi r24, 0x78 ; 120
b6bc: 80 93 7b 06 sts 0x067B, r24
b6c0: 80 91 1a 01 lds r24, 0x011A
b6c4: 90 91 1b 01 lds r25, 0x011B
b6c8: 90 93 76 06 sts 0x0676, r25
b6cc: 80 93 75 06 sts 0x0675, r24
b6d0: 80 91 81 04 lds r24, 0x0481
b6d4: 8c 5e subi r24, 0xEC ; 236
b6d6: 80 93 6f 06 sts 0x066F, r24
b6da: 80 91 82 04 lds r24, 0x0482
b6de: 8c 5e subi r24, 0xEC ; 236
b6e0: 80 93 70 06 sts 0x0670, r24
b6e4: 80 91 17 05 lds r24, 0x0517
b6e8: 90 91 18 05 lds r25, 0x0518
b6ec: 6a e0 ldi r22, 0x0A ; 10
b6ee: 70 e0 ldi r23, 0x00 ; 0
b6f0: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
b6f4: 70 93 78 06 sts 0x0678, r23
b6f8: 60 93 77 06 sts 0x0677, r22
b6fc: 80 91 93 07 lds r24, 0x0793
b700: 80 93 59 06 sts 0x0659, r24
b704: 80 91 13 05 lds r24, 0x0513
b708: 90 91 14 05 lds r25, 0x0514
b70c: 90 93 74 06 sts 0x0674, r25
b710: 80 93 73 06 sts 0x0673, r24
b714: 87 e5 ldi r24, 0x57 ; 87
b716: 96 e0 ldi r25, 0x06 ; 6
b718: 90 93 f1 02 sts 0x02F1, r25
b71c: 80 93 f0 02 sts 0x02F0, r24
b720: 80 91 5c 04 lds r24, 0x045C
b724: 90 91 5d 04 lds r25, 0x045D
b728: 6c e3 ldi r22, 0x3C ; 60
b72a: 70 e0 ldi r23, 0x00 ; 0
b72c: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
b730: 60 93 7e 06 sts 0x067E, r22
b734: 80 93 7f 06 sts 0x067F, r24
b738: 5d cf rjmp .-326 ; 0xb5f4 <HoTT_Telemety+0x3dc>
b73a: 14 dc rcall .-2008 ; 0xaf64 <GetHottestBl>
b73c: 80 91 b8 08 lds r24, 0x08B8
b740: 90 91 b9 08 lds r25, 0x08B9
b744: 64 e6 ldi r22, 0x64 ; 100
b746: 70 e0 ldi r23, 0x00 ; 0
b748: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
b74c: 70 93 99 06 sts 0x0699, r23
b750: 60 93 98 06 sts 0x0698, r22
b754: 80 91 42 06 lds r24, 0x0642
b758: 90 91 43 06 lds r25, 0x0643
b75c: 97 fd sbrc r25, 7
b75e: 01 96 adiw r24, 0x01 ; 1
b760: 95 95 asr r25
b762: 87 95 ror r24
b764: 80 93 89 06 sts 0x0689, r24
b768: 80 91 4e 01 lds r24, 0x014E
b76c: 90 91 4f 01 lds r25, 0x014F
b770: 97 fd sbrc r25, 7
b772: 01 96 adiw r24, 0x01 ; 1
b774: 95 95 asr r25
b776: 87 95 ror r24
b778: 80 93 8a 06 sts 0x068A, r24
b77c: 80 91 5d 0c lds r24, 0x0C5D
b780: 80 93 8d 06 sts 0x068D, r24
b784: 80 91 ba 08 lds r24, 0x08BA
b788: 90 91 bb 08 lds r25, 0x08BB
b78c: 97 fd sbrc r25, 7
b78e: 01 96 adiw r24, 0x01 ; 1
b790: 95 95 asr r25
b792: 87 95 ror r24
b794: 80 93 8e 06 sts 0x068E, r24
b798: 40 91 1a 01 lds r20, 0x011A
b79c: 50 91 1b 01 lds r21, 0x011B
b7a0: 20 91 53 01 lds r18, 0x0153
b7a4: 30 e0 ldi r19, 0x00 ; 0
b7a6: c9 01 movw r24, r18
b7a8: 02 96 adiw r24, 0x02 ; 2
b7aa: 84 17 cp r24, r20
b7ac: 95 07 cpc r25, r21
b7ae: 6c f4 brge .+26 ; 0xb7ca <HoTT_Telemety+0x5b2>
b7b0: 80 91 1a 01 lds r24, 0x011A
b7b4: 90 91 1b 01 lds r25, 0x011B
b7b8: 82 1b sub r24, r18
b7ba: 93 0b sbc r25, r19
b7bc: 02 97 sbiw r24, 0x02 ; 2
b7be: 98 2f mov r25, r24
b7c0: 99 0f add r25, r25
b7c2: 98 0f add r25, r24
b7c4: 90 93 95 06 sts 0x0695, r25
b7c8: 02 c0 rjmp .+4 ; 0xb7ce <HoTT_Telemety+0x5b6>
b7ca: 10 92 95 06 sts 0x0695, r1
b7ce: 80 91 95 06 lds r24, 0x0695
b7d2: 85 36 cpi r24, 0x65 ; 101
b7d4: 18 f0 brcs .+6 ; 0xb7dc <HoTT_Telemety+0x5c4>
b7d6: 84 e6 ldi r24, 0x64 ; 100
b7d8: 80 93 95 06 sts 0x0695, r24
b7dc: 80 91 b9 04 lds r24, 0x04B9
b7e0: 90 e0 ldi r25, 0x00 ; 0
b7e2: 90 93 97 06 sts 0x0697, r25
b7e6: 80 93 96 06 sts 0x0696, r24
b7ea: 60 91 fc 03 lds r22, 0x03FC
b7ee: 70 91 fd 03 lds r23, 0x03FD
b7f2: 80 91 fe 03 lds r24, 0x03FE
b7f6: 90 91 ff 03 lds r25, 0x03FF
b7fa: 24 e6 ldi r18, 0x64 ; 100
b7fc: 30 e0 ldi r19, 0x00 ; 0
b7fe: 40 e0 ldi r20, 0x00 ; 0
b800: 50 e0 ldi r21, 0x00 ; 0
b802: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
b806: 2c 50 subi r18, 0x0C ; 12
b808: 3e 4f sbci r19, 0xFE ; 254
b80a: 30 93 9b 06 sts 0x069B, r19
b80e: 20 93 9a 06 sts 0x069A, r18
b812: 80 91 1a 01 lds r24, 0x011A
b816: 90 91 1b 01 lds r25, 0x011B
b81a: 90 93 90 06 sts 0x0690, r25
b81e: 80 93 8f 06 sts 0x068F, r24
b822: 80 91 1a 01 lds r24, 0x011A
b826: 90 91 1b 01 lds r25, 0x011B
b82a: 90 93 92 06 sts 0x0692, r25
b82e: 80 93 91 06 sts 0x0691, r24
b832: 80 91 93 07 lds r24, 0x0793
b836: 81 11 cpse r24, r1
b838: 02 c0 rjmp .+4 ; 0xb83e <HoTT_Telemety+0x626>
b83a: 93 dc rcall .-1754 ; 0xb162 <BuildHoTT_Vario>
b83c: 02 c0 rjmp .+4 ; 0xb842 <HoTT_Telemety+0x62a>
b83e: 80 e3 ldi r24, 0x30 ; 48
b840: 95 e7 ldi r25, 0x75 ; 117
b842: 90 93 9d 06 sts 0x069D, r25
b846: 80 93 9c 06 sts 0x069C, r24
b84a: 80 91 93 07 lds r24, 0x0793
b84e: 88 58 subi r24, 0x88 ; 136
b850: 80 93 9e 06 sts 0x069E, r24
b854: 80 91 1a 01 lds r24, 0x011A
b858: 90 91 1b 01 lds r25, 0x011B
b85c: 90 93 a2 06 sts 0x06A2, r25
b860: 80 93 a1 06 sts 0x06A1, r24
b864: 80 91 81 04 lds r24, 0x0481
b868: 8c 5e subi r24, 0xEC ; 236
b86a: 80 93 93 06 sts 0x0693, r24
b86e: 80 91 82 04 lds r24, 0x0482
b872: 8c 5e subi r24, 0xEC ; 236
b874: 80 93 94 06 sts 0x0694, r24
b878: 80 91 17 05 lds r24, 0x0517
b87c: 90 91 18 05 lds r25, 0x0518
b880: 6a e0 ldi r22, 0x0A ; 10
b882: 70 e0 ldi r23, 0x00 ; 0
b884: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
b888: 70 93 a4 06 sts 0x06A4, r23
b88c: 60 93 a3 06 sts 0x06A3, r22
b890: 10 92 85 06 sts 0x0685, r1
b894: 80 91 13 05 lds r24, 0x0513
b898: 90 91 14 05 lds r25, 0x0514
b89c: 90 93 a0 06 sts 0x06A0, r25
b8a0: 80 93 9f 06 sts 0x069F, r24
b8a4: 83 e8 ldi r24, 0x83 ; 131
b8a6: 96 e0 ldi r25, 0x06 ; 6
b8a8: 90 93 f1 02 sts 0x02F1, r25
b8ac: 80 93 f0 02 sts 0x02F0, r24
b8b0: a1 ce rjmp .-702 ; 0xb5f4 <HoTT_Telemety+0x3dc>
b8b2: 80 e0 ldi r24, 0x00 ; 0
b8b4: cf 91 pop r28
b8b6: 08 95 ret
 
0000b8b8 <HoTT_Menu>:
b8b8: 2f 92 push r2
b8ba: 3f 92 push r3
b8bc: 4f 92 push r4
b8be: 5f 92 push r5
b8c0: 6f 92 push r6
b8c2: 7f 92 push r7
b8c4: 8f 92 push r8
b8c6: 9f 92 push r9
b8c8: af 92 push r10
b8ca: bf 92 push r11
b8cc: cf 92 push r12
b8ce: df 92 push r13
b8d0: ef 92 push r14
b8d2: ff 92 push r15
b8d4: 0f 93 push r16
b8d6: 1f 93 push r17
b8d8: cf 93 push r28
b8da: df 93 push r29
b8dc: 00 d0 rcall .+0 ; 0xb8de <HoTT_Menu+0x26>
b8de: 00 d0 rcall .+0 ; 0xb8e0 <HoTT_Menu+0x28>
b8e0: cd b7 in r28, 0x3d ; 61
b8e2: de b7 in r29, 0x3e ; 62
b8e4: 20 91 54 03 lds r18, 0x0354
b8e8: 30 91 55 03 lds r19, 0x0355
b8ec: 40 91 7c 04 lds r20, 0x047C
b8f0: 50 91 7d 04 lds r21, 0x047D
b8f4: 67 e0 ldi r22, 0x07 ; 7
b8f6: 64 9f mul r22, r20
b8f8: c0 01 movw r24, r0
b8fa: 65 9f mul r22, r21
b8fc: 90 0d add r25, r0
b8fe: 11 24 eor r1, r1
b900: 82 0f add r24, r18
b902: 93 1f adc r25, r19
b904: 97 fd sbrc r25, 7
b906: 07 96 adiw r24, 0x07 ; 7
b908: 33 e0 ldi r19, 0x03 ; 3
b90a: 95 95 asr r25
b90c: 87 95 ror r24
b90e: 3a 95 dec r19
b910: e1 f7 brne .-8 ; 0xb90a <HoTT_Menu+0x52>
b912: 90 93 7d 04 sts 0x047D, r25
b916: 80 93 7c 04 sts 0x047C, r24
b91a: 80 91 74 04 lds r24, 0x0474
b91e: 90 e0 ldi r25, 0x00 ; 0
b920: 87 30 cpi r24, 0x07 ; 7
b922: 91 05 cpc r25, r1
b924: 10 f0 brcs .+4 ; 0xb92a <HoTT_Menu+0x72>
b926: 0c 94 46 6b jmp 0xd68c ; 0xd68c <HoTT_Menu+0x1dd4>
b92a: fc 01 movw r30, r24
b92c: e8 5a subi r30, 0xA8 ; 168
b92e: ff 4f sbci r31, 0xFF ; 255
b930: 40 91 73 04 lds r20, 0x0473
b934: 81 e0 ldi r24, 0x01 ; 1
b936: 84 0f add r24, r20
b938: 80 93 73 04 sts 0x0473, r24
b93c: 0c 94 24 9b jmp 0x13648 ; 0x13648 <__tablejump2__>
b940: 04 2f mov r16, r20
b942: 10 e0 ldi r17, 0x00 ; 0
b944: 01 31 cpi r16, 0x11 ; 17
b946: 11 05 cpc r17, r1
b948: 10 f0 brcs .+4 ; 0xb94e <HoTT_Menu+0x96>
b94a: 0c 94 43 6b jmp 0xd686 ; 0xd686 <HoTT_Menu+0x1dce>
b94e: f8 01 movw r30, r16
b950: e1 5a subi r30, 0xA1 ; 161
b952: ff 4f sbci r31, 0xFF ; 255
b954: 0c 94 24 9b jmp 0x13648 ; 0x13648 <__tablejump2__>
b958: 80 91 c9 03 lds r24, 0x03C9
b95c: 85 ff sbrs r24, 5
b95e: 1f c0 rjmp .+62 ; 0xb99e <HoTT_Menu+0xe6>
b960: 80 e0 ldi r24, 0x00 ; 0
b962: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
b966: 80 91 1a 01 lds r24, 0x011A
b96a: 90 91 1b 01 lds r25, 0x011B
b96e: e0 91 1a 01 lds r30, 0x011A
b972: f0 91 1b 01 lds r31, 0x011B
b976: 2a e0 ldi r18, 0x0A ; 10
b978: 30 e0 ldi r19, 0x00 ; 0
b97a: b9 01 movw r22, r18
b97c: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
b980: 9f 93 push r25
b982: 8f 93 push r24
b984: cf 01 movw r24, r30
b986: b9 01 movw r22, r18
b988: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
b98c: 7f 93 push r23
b98e: 6f 93 push r22
b990: 8d e2 ldi r24, 0x2D ; 45
b992: 9a e0 ldi r25, 0x0A ; 10
b994: 9f 93 push r25
b996: 8f 93 push r24
b998: 8c e9 ldi r24, 0x9C ; 156
b99a: 94 e1 ldi r25, 0x14 ; 20
b99c: 1e c0 rjmp .+60 ; 0xb9da <HoTT_Menu+0x122>
b99e: 80 e0 ldi r24, 0x00 ; 0
b9a0: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
b9a4: 80 91 1a 01 lds r24, 0x011A
b9a8: 90 91 1b 01 lds r25, 0x011B
b9ac: e0 91 1a 01 lds r30, 0x011A
b9b0: f0 91 1b 01 lds r31, 0x011B
b9b4: 2a e0 ldi r18, 0x0A ; 10
b9b6: 30 e0 ldi r19, 0x00 ; 0
b9b8: b9 01 movw r22, r18
b9ba: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
b9be: 9f 93 push r25
b9c0: 8f 93 push r24
b9c2: cf 01 movw r24, r30
b9c4: b9 01 movw r22, r18
b9c6: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
b9ca: 7f 93 push r23
b9cc: 6f 93 push r22
b9ce: 80 e2 ldi r24, 0x20 ; 32
b9d0: 9a e0 ldi r25, 0x0A ; 10
b9d2: 9f 93 push r25
b9d4: 8f 93 push r24
b9d6: 8b e7 ldi r24, 0x7B ; 123
b9d8: 94 e1 ldi r25, 0x14 ; 20
b9da: 9f 93 push r25
b9dc: 8f 93 push r24
b9de: e0 91 55 06 lds r30, 0x0655
b9e2: f0 91 56 06 lds r31, 0x0656
b9e6: 09 95 icall
b9e8: 0f b6 in r0, 0x3f ; 63
b9ea: f8 94 cli
b9ec: de bf out 0x3e, r29 ; 62
b9ee: 0f be out 0x3f, r0 ; 63
b9f0: cd bf out 0x3d, r28 ; 61
b9f2: 80 91 39 06 lds r24, 0x0639
b9f6: 80 ff sbrs r24, 0
b9f8: 34 c0 rjmp .+104 ; 0xba62 <HoTT_Menu+0x1aa>
b9fa: 80 91 19 04 lds r24, 0x0419
b9fe: 88 23 and r24, r24
ba00: d1 f0 breq .+52 ; 0xba36 <HoTT_Menu+0x17e>
ba02: 8a e0 ldi r24, 0x0A ; 10
ba04: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
ba08: 80 91 20 01 lds r24, 0x0120
ba0c: 1f 92 push r1
ba0e: 8f 93 push r24
ba10: 60 91 fc 03 lds r22, 0x03FC
ba14: 70 91 fd 03 lds r23, 0x03FD
ba18: 80 91 fe 03 lds r24, 0x03FE
ba1c: 90 91 ff 03 lds r25, 0x03FF
ba20: 24 e6 ldi r18, 0x64 ; 100
ba22: 30 e0 ldi r19, 0x00 ; 0
ba24: 40 e0 ldi r20, 0x00 ; 0
ba26: 50 e0 ldi r21, 0x00 ; 0
ba28: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
ba2c: 3f 93 push r19
ba2e: 2f 93 push r18
ba30: 84 e1 ldi r24, 0x14 ; 20
ba32: 9a e0 ldi r25, 0x0A ; 10
ba34: 32 c6 rjmp .+3172 ; 0xc69a <HoTT_Menu+0xde2>
ba36: 8a e0 ldi r24, 0x0A ; 10
ba38: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
ba3c: 60 91 fc 03 lds r22, 0x03FC
ba40: 70 91 fd 03 lds r23, 0x03FD
ba44: 80 91 fe 03 lds r24, 0x03FE
ba48: 90 91 ff 03 lds r25, 0x03FF
ba4c: 24 e6 ldi r18, 0x64 ; 100
ba4e: 30 e0 ldi r19, 0x00 ; 0
ba50: 40 e0 ldi r20, 0x00 ; 0
ba52: 50 e0 ldi r21, 0x00 ; 0
ba54: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
ba58: 3f 93 push r19
ba5a: 2f 93 push r18
ba5c: 89 e0 ldi r24, 0x09 ; 9
ba5e: 9a e0 ldi r25, 0x0A ; 10
ba60: 1b c7 rjmp .+3638 ; 0xc898 <HoTT_Menu+0xfe0>
ba62: 8a e0 ldi r24, 0x0A ; 10
ba64: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
ba68: 8f ef ldi r24, 0xFF ; 255
ba6a: 99 e0 ldi r25, 0x09 ; 9
ba6c: 0c 94 65 69 jmp 0xd2ca ; 0xd2ca <HoTT_Menu+0x1a12>
ba70: 80 91 c9 03 lds r24, 0x03C9
ba74: 85 ff sbrs r24, 5
ba76: 16 c0 rjmp .+44 ; 0xbaa4 <HoTT_Menu+0x1ec>
ba78: 85 e1 ldi r24, 0x15 ; 21
ba7a: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
ba7e: 80 91 5c 04 lds r24, 0x045C
ba82: 90 91 5d 04 lds r25, 0x045D
ba86: 6c e3 ldi r22, 0x3C ; 60
ba88: 70 e0 ldi r23, 0x00 ; 0
ba8a: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
ba8e: 9f 93 push r25
ba90: 8f 93 push r24
ba92: 7f 93 push r23
ba94: 6f 93 push r22
ba96: 82 ef ldi r24, 0xF2 ; 242
ba98: 99 e0 ldi r25, 0x09 ; 9
ba9a: 9f 93 push r25
ba9c: 8f 93 push r24
ba9e: 8c e9 ldi r24, 0x9C ; 156
baa0: 94 e1 ldi r25, 0x14 ; 20
baa2: 15 c0 rjmp .+42 ; 0xbace <HoTT_Menu+0x216>
baa4: 85 e1 ldi r24, 0x15 ; 21
baa6: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
baaa: 80 91 5c 04 lds r24, 0x045C
baae: 90 91 5d 04 lds r25, 0x045D
bab2: 6c e3 ldi r22, 0x3C ; 60
bab4: 70 e0 ldi r23, 0x00 ; 0
bab6: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
baba: 9f 93 push r25
babc: 8f 93 push r24
babe: 7f 93 push r23
bac0: 6f 93 push r22
bac2: 85 ee ldi r24, 0xE5 ; 229
bac4: 99 e0 ldi r25, 0x09 ; 9
bac6: 9f 93 push r25
bac8: 8f 93 push r24
baca: 8b e7 ldi r24, 0x7B ; 123
bacc: 94 e1 ldi r25, 0x14 ; 20
bace: 9f 93 push r25
bad0: 8f 93 push r24
bad2: e0 91 55 06 lds r30, 0x0655
bad6: f0 91 56 06 lds r31, 0x0656
bada: 09 95 icall
badc: 0f b6 in r0, 0x3f ; 63
bade: f8 94 cli
bae0: de bf out 0x3e, r29 ; 62
bae2: 0f be out 0x3f, r0 ; 63
bae4: cd bf out 0x3d, r28 ; 61
bae6: 8f e1 ldi r24, 0x1F ; 31
bae8: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
baec: 1f 92 push r1
baee: 80 e6 ldi r24, 0x60 ; 96
baf0: 8f 93 push r24
baf2: 80 91 43 06 lds r24, 0x0643
baf6: 8f 93 push r24
baf8: 80 91 42 06 lds r24, 0x0642
bafc: 8f 93 push r24
bafe: 8a ed ldi r24, 0xDA ; 218
bb00: 99 e0 ldi r25, 0x09 ; 9
bb02: 9f 93 push r25
bb04: 8f 93 push r24
bb06: 0b e7 ldi r16, 0x7B ; 123
bb08: 14 e1 ldi r17, 0x14 ; 20
bb0a: 1f 93 push r17
bb0c: 0f 93 push r16
bb0e: e0 91 55 06 lds r30, 0x0655
bb12: f0 91 56 06 lds r31, 0x0656
bb16: 09 95 icall
bb18: 80 91 c8 03 lds r24, 0x03C8
bb1c: 0f b6 in r0, 0x3f ; 63
bb1e: f8 94 cli
bb20: de bf out 0x3e, r29 ; 62
bb22: 0f be out 0x3f, r0 ; 63
bb24: cd bf out 0x3d, r28 ; 61
bb26: 80 ff sbrs r24, 0
bb28: 06 c0 rjmp .+12 ; 0xbb36 <HoTT_Menu+0x27e>
bb2a: 89 e2 ldi r24, 0x29 ; 41
bb2c: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bb30: 88 ed ldi r24, 0xD8 ; 216
bb32: 99 e0 ldi r25, 0x09 ; 9
bb34: 2f c3 rjmp .+1630 ; 0xc194 <HoTT_Menu+0x8dc>
bb36: 89 e2 ldi r24, 0x29 ; 41
bb38: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bb3c: 86 ed ldi r24, 0xD6 ; 214
bb3e: 99 e0 ldi r25, 0x09 ; 9
bb40: e9 c0 rjmp .+466 ; 0xbd14 <HoTT_Menu+0x45c>
bb42: 80 91 c9 03 lds r24, 0x03C9
bb46: 85 ff sbrs r24, 5
bb48: 10 c0 rjmp .+32 ; 0xbb6a <HoTT_Menu+0x2b2>
bb4a: 8a e2 ldi r24, 0x2A ; 42
bb4c: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bb50: 80 91 18 05 lds r24, 0x0518
bb54: 8f 93 push r24
bb56: 80 91 17 05 lds r24, 0x0517
bb5a: 8f 93 push r24
bb5c: 8e ec ldi r24, 0xCE ; 206
bb5e: 99 e0 ldi r25, 0x09 ; 9
bb60: 9f 93 push r25
bb62: 8f 93 push r24
bb64: 8c e9 ldi r24, 0x9C ; 156
bb66: 94 e1 ldi r25, 0x14 ; 20
bb68: 0f c0 rjmp .+30 ; 0xbb88 <HoTT_Menu+0x2d0>
bb6a: 8a e2 ldi r24, 0x2A ; 42
bb6c: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bb70: 80 91 18 05 lds r24, 0x0518
bb74: 8f 93 push r24
bb76: 80 91 17 05 lds r24, 0x0517
bb7a: 8f 93 push r24
bb7c: 86 ec ldi r24, 0xC6 ; 198
bb7e: 99 e0 ldi r25, 0x09 ; 9
bb80: 9f 93 push r25
bb82: 8f 93 push r24
bb84: 8b e7 ldi r24, 0x7B ; 123
bb86: 94 e1 ldi r25, 0x14 ; 20
bb88: 9f 93 push r25
bb8a: 8f 93 push r24
bb8c: e0 91 55 06 lds r30, 0x0655
bb90: f0 91 56 06 lds r31, 0x0656
bb94: 09 95 icall
bb96: 0f 90 pop r0
bb98: 0f 90 pop r0
bb9a: 0f 90 pop r0
bb9c: 0f 90 pop r0
bb9e: 0f 90 pop r0
bba0: 0f 90 pop r0
bba2: 86 e3 ldi r24, 0x36 ; 54
bba4: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bba8: 80 91 13 05 lds r24, 0x0513
bbac: 90 91 14 05 lds r25, 0x0514
bbb0: 6a e0 ldi r22, 0x0A ; 10
bbb2: 70 e0 ldi r23, 0x00 ; 0
bbb4: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
bbb8: 9f 93 push r25
bbba: 8f 93 push r24
bbbc: 7f 93 push r23
bbbe: 6f 93 push r22
bbc0: 8a eb ldi r24, 0xBA ; 186
bbc2: 99 e0 ldi r25, 0x09 ; 9
bbc4: 9f 93 push r25
bbc6: 8f 93 push r24
bbc8: 8b e7 ldi r24, 0x7B ; 123
bbca: 94 e1 ldi r25, 0x14 ; 20
bbcc: 9f 93 push r25
bbce: 8f 93 push r24
bbd0: e0 91 55 06 lds r30, 0x0655
bbd4: f0 91 56 06 lds r31, 0x0656
bbd8: 09 95 icall
bbda: 0f b6 in r0, 0x3f ; 63
bbdc: f8 94 cli
bbde: de bf out 0x3e, r29 ; 62
bbe0: 0f be out 0x3f, r0 ; 63
bbe2: cd bf out 0x3d, r28 ; 61
bbe4: 0c 94 48 6b jmp 0xd690 ; 0xd690 <HoTT_Menu+0x1dd8>
bbe8: 89 e0 ldi r24, 0x09 ; 9
bbea: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bbee: 88 eb ldi r24, 0xB8 ; 184
bbf0: 99 e0 ldi r25, 0x09 ; 9
bbf2: 9f 93 push r25
bbf4: 8f 93 push r24
bbf6: 0b e7 ldi r16, 0x7B ; 123
bbf8: 14 e1 ldi r17, 0x14 ; 20
bbfa: 1f 93 push r17
bbfc: 0f 93 push r16
bbfe: e0 91 55 06 lds r30, 0x0655
bc02: f0 91 56 06 lds r31, 0x0656
bc06: 09 95 icall
bc08: 8e e1 ldi r24, 0x1E ; 30
bc0a: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bc0e: 86 eb ldi r24, 0xB6 ; 182
bc10: 99 e0 ldi r25, 0x09 ; 9
bc12: 9f 93 push r25
bc14: 8f 93 push r24
bc16: 1f 93 push r17
bc18: 0f 93 push r16
bc1a: e0 91 55 06 lds r30, 0x0655
bc1e: f0 91 56 06 lds r31, 0x0656
bc22: 09 95 icall
bc24: 83 e3 ldi r24, 0x33 ; 51
bc26: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bc2a: 84 eb ldi r24, 0xB4 ; 180
bc2c: 99 e0 ldi r25, 0x09 ; 9
bc2e: 9f 93 push r25
bc30: 8f 93 push r24
bc32: 1f 93 push r17
bc34: 0f 93 push r16
bc36: e0 91 55 06 lds r30, 0x0655
bc3a: f0 91 56 06 lds r31, 0x0656
bc3e: 09 95 icall
bc40: 8f e3 ldi r24, 0x3F ; 63
bc42: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bc46: 8e e9 ldi r24, 0x9E ; 158
bc48: 99 e0 ldi r25, 0x09 ; 9
bc4a: 9f 93 push r25
bc4c: 8f 93 push r24
bc4e: 1f 93 push r17
bc50: 0f 93 push r16
bc52: e0 91 55 06 lds r30, 0x0655
bc56: f0 91 56 06 lds r31, 0x0656
bc5a: 09 95 icall
bc5c: 8e e7 ldi r24, 0x7E ; 126
bc5e: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bc62: 88 e8 ldi r24, 0x88 ; 136
bc64: 99 e0 ldi r25, 0x09 ; 9
bc66: 9f 93 push r25
bc68: 8f 93 push r24
bc6a: 1f 93 push r17
bc6c: 0f 93 push r16
bc6e: 0c 94 ec 66 jmp 0xcdd8 ; 0xcdd8 <HoTT_Menu+0x1520>
bc72: 80 91 a4 02 lds r24, 0x02A4
bc76: 88 23 and r24, r24
bc78: 09 f4 brne .+2 ; 0xbc7c <HoTT_Menu+0x3c4>
bc7a: 5e c0 rjmp .+188 ; 0xbd38 <HoTT_Menu+0x480>
bc7c: 8d e5 ldi r24, 0x5D ; 93
bc7e: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bc82: 86 e8 ldi r24, 0x86 ; 134
bc84: 99 e0 ldi r25, 0x09 ; 9
bc86: 9f 93 push r25
bc88: 8f 93 push r24
bc8a: 0b e7 ldi r16, 0x7B ; 123
bc8c: 14 e1 ldi r17, 0x14 ; 20
bc8e: 1f 93 push r17
bc90: 0f 93 push r16
bc92: e0 91 55 06 lds r30, 0x0655
bc96: f0 91 56 06 lds r31, 0x0656
bc9a: 09 95 icall
bc9c: 84 e5 ldi r24, 0x54 ; 84
bc9e: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bca2: 80 91 b5 08 lds r24, 0x08B5
bca6: 1f 92 push r1
bca8: 8f 93 push r24
bcaa: 8d e7 ldi r24, 0x7D ; 125
bcac: 99 e0 ldi r25, 0x09 ; 9
bcae: 9f 93 push r25
bcb0: 8f 93 push r24
bcb2: 1f 93 push r17
bcb4: 0f 93 push r16
bcb6: e0 91 55 06 lds r30, 0x0655
bcba: f0 91 56 06 lds r31, 0x0656
bcbe: 09 95 icall
bcc0: 8e e5 ldi r24, 0x5E ; 94
bcc2: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bcc6: 80 91 b8 08 lds r24, 0x08B8
bcca: 90 91 b9 08 lds r25, 0x08B9
bcce: 6a e0 ldi r22, 0x0A ; 10
bcd0: 70 e0 ldi r23, 0x00 ; 0
bcd2: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
bcd6: 7f 93 push r23
bcd8: 6f 93 push r22
bcda: 83 e7 ldi r24, 0x73 ; 115
bcdc: 99 e0 ldi r25, 0x09 ; 9
bcde: 9f 93 push r25
bce0: 8f 93 push r24
bce2: 1f 93 push r17
bce4: 0f 93 push r16
bce6: e0 91 55 06 lds r30, 0x0655
bcea: f0 91 56 06 lds r31, 0x0656
bcee: 09 95 icall
bcf0: 0f b6 in r0, 0x3f ; 63
bcf2: f8 94 cli
bcf4: de bf out 0x3e, r29 ; 62
bcf6: 0f be out 0x3f, r0 ; 63
bcf8: cd bf out 0x3d, r28 ; 61
bcfa: 80 91 b6 08 lds r24, 0x08B6
bcfe: 83 30 cpi r24, 0x03 ; 3
bd00: a9 f4 brne .+42 ; 0xbd2c <HoTT_Menu+0x474>
bd02: 80 91 b4 08 lds r24, 0x08B4
bd06: 81 ff sbrs r24, 1
bd08: 0b c0 rjmp .+22 ; 0xbd20 <HoTT_Menu+0x468>
bd0a: 8b e5 ldi r24, 0x5B ; 91
bd0c: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bd10: 80 e7 ldi r24, 0x70 ; 112
bd12: 99 e0 ldi r25, 0x09 ; 9
bd14: 9f 93 push r25
bd16: 8f 93 push r24
bd18: 1f 93 push r17
bd1a: 0f 93 push r16
bd1c: 0c 94 6b 69 jmp 0xd2d6 ; 0xd2d6 <HoTT_Menu+0x1a1e>
bd20: 8b e5 ldi r24, 0x5B ; 91
bd22: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bd26: 8d e6 ldi r24, 0x6D ; 109
bd28: 99 e0 ldi r25, 0x09 ; 9
bd2a: f4 cf rjmp .-24 ; 0xbd14 <HoTT_Menu+0x45c>
bd2c: 8b e5 ldi r24, 0x5B ; 91
bd2e: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bd32: 8a e6 ldi r24, 0x6A ; 106
bd34: 99 e0 ldi r25, 0x09 ; 9
bd36: b5 c6 rjmp .+3434 ; 0xcaa2 <HoTT_Menu+0x11ea>
bd38: 84 e0 ldi r24, 0x04 ; 4
bd3a: 27 c3 rjmp .+1614 ; 0xc38a <HoTT_Menu+0xad2>
bd3c: 80 91 a4 02 lds r24, 0x02A4
bd40: 88 23 and r24, r24
bd42: 09 f4 brne .+2 ; 0xbd46 <HoTT_Menu+0x48e>
bd44: 61 c0 rjmp .+194 ; 0xbe08 <HoTT_Menu+0x550>
bd46: 80 91 72 04 lds r24, 0x0472
bd4a: 88 23 and r24, r24
bd4c: 09 f4 brne .+2 ; 0xbd50 <HoTT_Menu+0x498>
bd4e: 45 c0 rjmp .+138 ; 0xbdda <HoTT_Menu+0x522>
bd50: 89 e6 ldi r24, 0x69 ; 105
bd52: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bd56: 80 91 b8 04 lds r24, 0x04B8
bd5a: 1f 92 push r1
bd5c: 8f 93 push r24
bd5e: 8f e5 ldi r24, 0x5F ; 95
bd60: 99 e0 ldi r25, 0x09 ; 9
bd62: 9f 93 push r25
bd64: 8f 93 push r24
bd66: 2b e7 ldi r18, 0x7B ; 123
bd68: e2 2e mov r14, r18
bd6a: 24 e1 ldi r18, 0x14 ; 20
bd6c: f2 2e mov r15, r18
bd6e: ff 92 push r15
bd70: ef 92 push r14
bd72: e0 91 55 06 lds r30, 0x0655
bd76: f0 91 56 06 lds r31, 0x0656
bd7a: 09 95 icall
bd7c: 85 e7 ldi r24, 0x75 ; 117
bd7e: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bd82: 80 91 96 02 lds r24, 0x0296
bd86: 1f 92 push r1
bd88: 8f 93 push r24
bd8a: 1f 92 push r1
bd8c: 10 e6 ldi r17, 0x60 ; 96
bd8e: 1f 93 push r17
bd90: 80 91 bb 08 lds r24, 0x08BB
bd94: 8f 93 push r24
bd96: 80 91 ba 08 lds r24, 0x08BA
bd9a: 8f 93 push r24
bd9c: 83 e5 ldi r24, 0x53 ; 83
bd9e: 99 e0 ldi r25, 0x09 ; 9
bda0: 9f 93 push r25
bda2: 8f 93 push r24
bda4: ff 92 push r15
bda6: ef 92 push r14
bda8: e0 91 55 06 lds r30, 0x0655
bdac: f0 91 56 06 lds r31, 0x0656
bdb0: 09 95 icall
bdb2: 82 e7 ldi r24, 0x72 ; 114
bdb4: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bdb8: 80 91 b6 04 lds r24, 0x04B6
bdbc: 1f 92 push r1
bdbe: 8f 93 push r24
bdc0: 1f 92 push r1
bdc2: 1f 93 push r17
bdc4: 80 91 b7 04 lds r24, 0x04B7
bdc8: 1f 92 push r1
bdca: 8f 93 push r24
bdcc: 83 e4 ldi r24, 0x43 ; 67
bdce: 99 e0 ldi r25, 0x09 ; 9
bdd0: 9f 93 push r25
bdd2: 8f 93 push r24
bdd4: ff 92 push r15
bdd6: ef 92 push r14
bdd8: 11 c6 rjmp .+3106 ; 0xc9fc <HoTT_Menu+0x1144>
bdda: 89 e6 ldi r24, 0x69 ; 105
bddc: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bde0: 80 91 96 02 lds r24, 0x0296
bde4: 1f 92 push r1
bde6: 8f 93 push r24
bde8: 1f 92 push r1
bdea: 80 e6 ldi r24, 0x60 ; 96
bdec: 8f 93 push r24
bdee: 80 91 bb 08 lds r24, 0x08BB
bdf2: 8f 93 push r24
bdf4: 80 91 ba 08 lds r24, 0x08BA
bdf8: 8f 93 push r24
bdfa: 80 91 b7 08 lds r24, 0x08B7
bdfe: 1f 92 push r1
be00: 8f 93 push r24
be02: 8a e2 ldi r24, 0x2A ; 42
be04: 99 e0 ldi r25, 0x09 ; 9
be06: 88 c1 rjmp .+784 ; 0xc118 <HoTT_Menu+0x860>
be08: 85 e0 ldi r24, 0x05 ; 5
be0a: bf c2 rjmp .+1406 ; 0xc38a <HoTT_Menu+0xad2>
be0c: 80 91 b9 04 lds r24, 0x04B9
be10: 88 23 and r24, r24
be12: e9 f1 breq .+122 ; 0xbe8e <HoTT_Menu+0x5d6>
be14: 90 91 ed 02 lds r25, 0x02ED
be18: 99 23 and r25, r25
be1a: 01 f1 breq .+64 ; 0xbe5c <HoTT_Menu+0x5a4>
be1c: 83 32 cpi r24, 0x23 ; 35
be1e: f0 f4 brcc .+60 ; 0xbe5c <HoTT_Menu+0x5a4>
be20: 87 e0 ldi r24, 0x07 ; 7
be22: db d8 rcall .-3658 ; 0xafda <Hott_ClearLine>
be24: 83 e9 ldi r24, 0x93 ; 147
be26: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
be2a: 80 91 b9 04 lds r24, 0x04B9
be2e: 1f 92 push r1
be30: 8f 93 push r24
be32: 8f e1 ldi r24, 0x1F ; 31
be34: 99 e0 ldi r25, 0x09 ; 9
be36: 9f 93 push r25
be38: 8f 93 push r24
be3a: 8b e8 ldi r24, 0x8B ; 139
be3c: 94 e1 ldi r25, 0x14 ; 20
be3e: 9f 93 push r25
be40: 8f 93 push r24
be42: e0 91 55 06 lds r30, 0x0655
be46: f0 91 56 06 lds r31, 0x0656
be4a: 09 95 icall
be4c: 0f 90 pop r0
be4e: 0f 90 pop r0
be50: 0f 90 pop r0
be52: 0f 90 pop r0
be54: 0f 90 pop r0
be56: 0f 90 pop r0
be58: 0c 94 48 6b jmp 0xd690 ; 0xd690 <HoTT_Menu+0x1dd8>
be5c: 83 e9 ldi r24, 0x93 ; 147
be5e: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
be62: 89 e1 ldi r24, 0x19 ; 25
be64: 99 e0 ldi r25, 0x09 ; 9
be66: 9f 93 push r25
be68: 8f 93 push r24
be6a: 0b e7 ldi r16, 0x7B ; 123
be6c: 14 e1 ldi r17, 0x14 ; 20
be6e: 1f 93 push r17
be70: 0f 93 push r16
be72: e0 91 55 06 lds r30, 0x0655
be76: f0 91 56 06 lds r31, 0x0656
be7a: 09 95 icall
be7c: 1f 92 push r1
be7e: 1f 92 push r1
be80: 80 91 b9 04 lds r24, 0x04B9
be84: e1 e1 ldi r30, 0x11 ; 17
be86: 8e 9f mul r24, r30
be88: c0 01 movw r24, r0
be8a: 11 24 eor r1, r1
be8c: b6 c3 rjmp .+1900 ; 0xc5fa <HoTT_Menu+0xd42>
be8e: 80 91 c9 03 lds r24, 0x03C9
be92: 85 ff sbrs r24, 5
be94: 07 c0 rjmp .+14 ; 0xbea4 <HoTT_Menu+0x5ec>
be96: 84 e9 ldi r24, 0x94 ; 148
be98: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
be9c: 86 e0 ldi r24, 0x06 ; 6
be9e: 99 e0 ldi r25, 0x09 ; 9
bea0: 0c 94 65 69 jmp 0xd2ca ; 0xd2ca <HoTT_Menu+0x1a12>
bea4: 83 e9 ldi r24, 0x93 ; 147
bea6: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
beaa: 80 ef ldi r24, 0xF0 ; 240
beac: 98 e0 ldi r25, 0x08 ; 8
beae: 0c 94 65 69 jmp 0xd2ca ; 0xd2ca <HoTT_Menu+0x1a12>
beb2: 80 91 86 0c lds r24, 0x0C86
beb6: 82 30 cpi r24, 0x02 ; 2
beb8: 29 f4 brne .+10 ; 0xbec4 <HoTT_Menu+0x60c>
beba: 0e 94 aa 14 call 0x2954 ; 0x2954 <LIBFC_HoTT_Clear>
bebe: 85 e0 ldi r24, 0x05 ; 5
bec0: 0c 94 3c 6b jmp 0xd678 ; 0xd678 <HoTT_Menu+0x1dc0>
bec4: 86 30 cpi r24, 0x06 ; 6
bec6: 69 f4 brne .+26 ; 0xbee2 <HoTT_Menu+0x62a>
bec8: 80 91 72 04 lds r24, 0x0472
becc: 88 23 and r24, r24
bece: 21 f0 breq .+8 ; 0xbed8 <HoTT_Menu+0x620>
bed0: 10 92 72 04 sts 0x0472, r1
bed4: 0c 94 40 6b jmp 0xd680 ; 0xd680 <HoTT_Menu+0x1dc8>
bed8: 81 e0 ldi r24, 0x01 ; 1
beda: 80 93 72 04 sts 0x0472, r24
bede: 0c 94 40 6b jmp 0xd680 ; 0xd680 <HoTT_Menu+0x1dc8>
bee2: 88 30 cpi r24, 0x08 ; 8
bee4: 11 f0 breq .+4 ; 0xbeea <HoTT_Menu+0x632>
bee6: 0c 94 40 6b jmp 0xd680 ; 0xd680 <HoTT_Menu+0x1dc8>
beea: 0e 94 aa 14 call 0x2954 ; 0x2954 <LIBFC_HoTT_Clear>
beee: 81 e0 ldi r24, 0x01 ; 1
bef0: 0c 94 3c 6b jmp 0xd678 ; 0xd678 <HoTT_Menu+0x1dc0>
bef4: 50 e0 ldi r21, 0x00 ; 0
bef6: 41 31 cpi r20, 0x11 ; 17
bef8: 51 05 cpc r21, r1
befa: 10 f0 brcs .+4 ; 0xbf00 <HoTT_Menu+0x648>
befc: 0c 94 43 6b jmp 0xd686 ; 0xd686 <HoTT_Menu+0x1dce>
bf00: fa 01 movw r30, r20
bf02: e0 59 subi r30, 0x90 ; 144
bf04: ff 4f sbci r31, 0xFF ; 255
bf06: 0c 94 24 9b jmp 0x13648 ; 0x13648 <__tablejump2__>
bf0a: 80 91 c9 03 lds r24, 0x03C9
bf0e: 85 ff sbrs r24, 5
bf10: 32 c0 rjmp .+100 ; 0xbf76 <HoTT_Menu+0x6be>
bf12: 80 e0 ldi r24, 0x00 ; 0
bf14: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bf18: 80 91 1a 01 lds r24, 0x011A
bf1c: 90 91 1b 01 lds r25, 0x011B
bf20: 00 91 1a 01 lds r16, 0x011A
bf24: 10 91 1b 01 lds r17, 0x011B
bf28: e0 91 5c 04 lds r30, 0x045C
bf2c: f0 91 5d 04 lds r31, 0x045D
bf30: 20 91 18 05 lds r18, 0x0518
bf34: 2f 93 push r18
bf36: 20 91 17 05 lds r18, 0x0517
bf3a: 2f 93 push r18
bf3c: 2a e0 ldi r18, 0x0A ; 10
bf3e: 30 e0 ldi r19, 0x00 ; 0
bf40: b9 01 movw r22, r18
bf42: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
bf46: 9f 93 push r25
bf48: 8f 93 push r24
bf4a: c8 01 movw r24, r16
bf4c: b9 01 movw r22, r18
bf4e: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
bf52: 7f 93 push r23
bf54: 6f 93 push r22
bf56: cf 01 movw r24, r30
bf58: 6c e3 ldi r22, 0x3C ; 60
bf5a: 70 e0 ldi r23, 0x00 ; 0
bf5c: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
bf60: 9f 93 push r25
bf62: 8f 93 push r24
bf64: 7f 93 push r23
bf66: 6f 93 push r22
bf68: 85 ed ldi r24, 0xD5 ; 213
bf6a: 98 e0 ldi r25, 0x08 ; 8
bf6c: 9f 93 push r25
bf6e: 8f 93 push r24
bf70: 8c e9 ldi r24, 0x9C ; 156
bf72: 94 e1 ldi r25, 0x14 ; 20
bf74: f8 c1 rjmp .+1008 ; 0xc366 <HoTT_Menu+0xaae>
bf76: 80 e0 ldi r24, 0x00 ; 0
bf78: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bf7c: 80 91 1a 01 lds r24, 0x011A
bf80: 90 91 1b 01 lds r25, 0x011B
bf84: 00 91 1a 01 lds r16, 0x011A
bf88: 10 91 1b 01 lds r17, 0x011B
bf8c: e0 91 5c 04 lds r30, 0x045C
bf90: f0 91 5d 04 lds r31, 0x045D
bf94: 20 91 18 05 lds r18, 0x0518
bf98: 2f 93 push r18
bf9a: 20 91 17 05 lds r18, 0x0517
bf9e: 2f 93 push r18
bfa0: 2a e0 ldi r18, 0x0A ; 10
bfa2: 30 e0 ldi r19, 0x00 ; 0
bfa4: b9 01 movw r22, r18
bfa6: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
bfaa: 9f 93 push r25
bfac: 8f 93 push r24
bfae: c8 01 movw r24, r16
bfb0: b9 01 movw r22, r18
bfb2: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
bfb6: 7f 93 push r23
bfb8: 6f 93 push r22
bfba: cf 01 movw r24, r30
bfbc: 6c e3 ldi r22, 0x3C ; 60
bfbe: 70 e0 ldi r23, 0x00 ; 0
bfc0: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
bfc4: 9f 93 push r25
bfc6: 8f 93 push r24
bfc8: 7f 93 push r23
bfca: 6f 93 push r22
bfcc: 8a eb ldi r24, 0xBA ; 186
bfce: 98 e0 ldi r25, 0x08 ; 8
bfd0: c6 c1 rjmp .+908 ; 0xc35e <HoTT_Menu+0xaa6>
bfd2: 85 e1 ldi r24, 0x15 ; 21
bfd4: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
bfd8: 1f 92 push r1
bfda: 80 e6 ldi r24, 0x60 ; 96
bfdc: 8f 93 push r24
bfde: 80 91 43 06 lds r24, 0x0643
bfe2: 8f 93 push r24
bfe4: 80 91 42 06 lds r24, 0x0642
bfe8: 8f 93 push r24
bfea: 80 eb ldi r24, 0xB0 ; 176
bfec: 98 e0 ldi r25, 0x08 ; 8
bfee: 9f 93 push r25
bff0: 8f 93 push r24
bff2: 0b e7 ldi r16, 0x7B ; 123
bff4: 14 e1 ldi r17, 0x14 ; 20
bff6: 1f 93 push r17
bff8: 0f 93 push r16
bffa: e0 91 55 06 lds r30, 0x0655
bffe: f0 91 56 06 lds r31, 0x0656
c002: 09 95 icall
c004: 80 91 39 06 lds r24, 0x0639
c008: 0f b6 in r0, 0x3f ; 63
c00a: f8 94 cli
c00c: de bf out 0x3e, r29 ; 62
c00e: 0f be out 0x3f, r0 ; 63
c010: cd bf out 0x3d, r28 ; 61
c012: 80 ff sbrs r24, 0
c014: 45 c0 rjmp .+138 ; 0xc0a0 <HoTT_Menu+0x7e8>
c016: 80 91 19 04 lds r24, 0x0419
c01a: 88 23 and r24, r24
c01c: e1 f0 breq .+56 ; 0xc056 <HoTT_Menu+0x79e>
c01e: 8f e1 ldi r24, 0x1F ; 31
c020: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c024: 60 91 fc 03 lds r22, 0x03FC
c028: 70 91 fd 03 lds r23, 0x03FD
c02c: 80 91 fe 03 lds r24, 0x03FE
c030: 90 91 ff 03 lds r25, 0x03FF
c034: 24 e6 ldi r18, 0x64 ; 100
c036: 30 e0 ldi r19, 0x00 ; 0
c038: 40 e0 ldi r20, 0x00 ; 0
c03a: 50 e0 ldi r21, 0x00 ; 0
c03c: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
c040: 3f 93 push r19
c042: 2f 93 push r18
c044: 87 ea ldi r24, 0xA7 ; 167
c046: 98 e0 ldi r25, 0x08 ; 8
c048: 9f 93 push r25
c04a: 8f 93 push r24
c04c: 8b e8 ldi r24, 0x8B ; 139
c04e: 94 e1 ldi r25, 0x14 ; 20
c050: 9f 93 push r25
c052: 8f 93 push r24
c054: 19 c0 rjmp .+50 ; 0xc088 <HoTT_Menu+0x7d0>
c056: 8f e1 ldi r24, 0x1F ; 31
c058: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c05c: 60 91 fc 03 lds r22, 0x03FC
c060: 70 91 fd 03 lds r23, 0x03FD
c064: 80 91 fe 03 lds r24, 0x03FE
c068: 90 91 ff 03 lds r25, 0x03FF
c06c: 24 e6 ldi r18, 0x64 ; 100
c06e: 30 e0 ldi r19, 0x00 ; 0
c070: 40 e0 ldi r20, 0x00 ; 0
c072: 50 e0 ldi r21, 0x00 ; 0
c074: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
c078: 3f 93 push r19
c07a: 2f 93 push r18
c07c: 8e e9 ldi r24, 0x9E ; 158
c07e: 98 e0 ldi r25, 0x08 ; 8
c080: 9f 93 push r25
c082: 8f 93 push r24
c084: 1f 93 push r17
c086: 0f 93 push r16
c088: e0 91 55 06 lds r30, 0x0655
c08c: f0 91 56 06 lds r31, 0x0656
c090: 09 95 icall
c092: 0f 90 pop r0
c094: 0f 90 pop r0
c096: 0f 90 pop r0
c098: 0f 90 pop r0
c09a: 0f 90 pop r0
c09c: 0f 90 pop r0
c09e: 12 c0 rjmp .+36 ; 0xc0c4 <HoTT_Menu+0x80c>
c0a0: 8f e1 ldi r24, 0x1F ; 31
c0a2: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c0a6: 84 e9 ldi r24, 0x94 ; 148
c0a8: 98 e0 ldi r25, 0x08 ; 8
c0aa: 9f 93 push r25
c0ac: 8f 93 push r24
c0ae: 1f 93 push r17
c0b0: 0f 93 push r16
c0b2: e0 91 55 06 lds r30, 0x0655
c0b6: f0 91 56 06 lds r31, 0x0656
c0ba: 09 95 icall
c0bc: 0f 90 pop r0
c0be: 0f 90 pop r0
c0c0: 0f 90 pop r0
c0c2: 0f 90 pop r0
c0c4: 89 e2 ldi r24, 0x29 ; 41
c0c6: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c0ca: 80 91 20 01 lds r24, 0x0120
c0ce: 1f 92 push r1
c0d0: 8f 93 push r24
c0d2: 81 e9 ldi r24, 0x91 ; 145
c0d4: 98 e0 ldi r25, 0x08 ; 8
c0d6: e0 c3 rjmp .+1984 ; 0xc898 <HoTT_Menu+0xfe0>
c0d8: 80 91 a4 02 lds r24, 0x02A4
c0dc: 88 23 and r24, r24
c0de: 41 f1 breq .+80 ; 0xc130 <HoTT_Menu+0x878>
c0e0: 8b e2 ldi r24, 0x2B ; 43
c0e2: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c0e6: 80 91 96 02 lds r24, 0x0296
c0ea: 1f 92 push r1
c0ec: 8f 93 push r24
c0ee: 80 91 b8 08 lds r24, 0x08B8
c0f2: 90 91 b9 08 lds r25, 0x08B9
c0f6: 6a e0 ldi r22, 0x0A ; 10
c0f8: 70 e0 ldi r23, 0x00 ; 0
c0fa: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c0fe: 7f 93 push r23
c100: 6f 93 push r22
c102: 1f 92 push r1
c104: 80 e6 ldi r24, 0x60 ; 96
c106: 8f 93 push r24
c108: 80 91 bb 08 lds r24, 0x08BB
c10c: 8f 93 push r24
c10e: 80 91 ba 08 lds r24, 0x08BA
c112: 8f 93 push r24
c114: 8a e7 ldi r24, 0x7A ; 122
c116: 98 e0 ldi r25, 0x08 ; 8
c118: 9f 93 push r25
c11a: 8f 93 push r24
c11c: 8b e7 ldi r24, 0x7B ; 123
c11e: 94 e1 ldi r25, 0x14 ; 20
c120: 9f 93 push r25
c122: 8f 93 push r24
c124: e0 91 55 06 lds r30, 0x0655
c128: f0 91 56 06 lds r31, 0x0656
c12c: 09 95 icall
c12e: 55 cd rjmp .-1366 ; 0xbbda <HoTT_Menu+0x322>
c130: 82 e0 ldi r24, 0x02 ; 2
c132: 2b c1 rjmp .+598 ; 0xc38a <HoTT_Menu+0xad2>
c134: 8f e3 ldi r24, 0x3F ; 63
c136: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c13a: 80 91 13 05 lds r24, 0x0513
c13e: 90 91 14 05 lds r25, 0x0514
c142: 20 91 16 05 lds r18, 0x0516
c146: 2f 93 push r18
c148: 20 91 15 05 lds r18, 0x0515
c14c: 2f 93 push r18
c14e: 6a e0 ldi r22, 0x0A ; 10
c150: 70 e0 ldi r23, 0x00 ; 0
c152: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c156: 9f 93 push r25
c158: 8f 93 push r24
c15a: 7f 93 push r23
c15c: 6f 93 push r22
c15e: 86 e6 ldi r24, 0x66 ; 102
c160: 98 e0 ldi r25, 0x08 ; 8
c162: 9f 93 push r25
c164: 8f 93 push r24
c166: 0b e7 ldi r16, 0x7B ; 123
c168: 14 e1 ldi r17, 0x14 ; 20
c16a: 1f 93 push r17
c16c: 0f 93 push r16
c16e: e0 91 55 06 lds r30, 0x0655
c172: f0 91 56 06 lds r31, 0x0656
c176: 09 95 icall
c178: 80 91 c8 03 lds r24, 0x03C8
c17c: 0f b6 in r0, 0x3f ; 63
c17e: f8 94 cli
c180: de bf out 0x3e, r29 ; 62
c182: 0f be out 0x3f, r0 ; 63
c184: cd bf out 0x3d, r28 ; 61
c186: 80 ff sbrs r24, 0
c188: 0b c0 rjmp .+22 ; 0xc1a0 <HoTT_Menu+0x8e8>
c18a: 82 e5 ldi r24, 0x52 ; 82
c18c: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c190: 83 e6 ldi r24, 0x63 ; 99
c192: 98 e0 ldi r25, 0x08 ; 8
c194: 9f 93 push r25
c196: 8f 93 push r24
c198: 8b e8 ldi r24, 0x8B ; 139
c19a: 94 e1 ldi r25, 0x14 ; 20
c19c: 0c 94 69 69 jmp 0xd2d2 ; 0xd2d2 <HoTT_Menu+0x1a1a>
c1a0: 82 e5 ldi r24, 0x52 ; 82
c1a2: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c1a6: 80 e6 ldi r24, 0x60 ; 96
c1a8: 98 e0 ldi r25, 0x08 ; 8
c1aa: b4 cd rjmp .-1176 ; 0xbd14 <HoTT_Menu+0x45c>
c1ac: 80 91 a4 02 lds r24, 0x02A4
c1b0: 88 23 and r24, r24
c1b2: 09 f4 brne .+2 ; 0xc1b6 <HoTT_Menu+0x8fe>
c1b4: 4c c0 rjmp .+152 ; 0xc24e <HoTT_Menu+0x996>
c1b6: 84 e5 ldi r24, 0x54 ; 84
c1b8: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c1bc: 80 91 b5 08 lds r24, 0x08B5
c1c0: 1f 92 push r1
c1c2: 8f 93 push r24
c1c4: 80 91 b7 08 lds r24, 0x08B7
c1c8: 1f 92 push r1
c1ca: 8f 93 push r24
c1cc: 8d e4 ldi r24, 0x4D ; 77
c1ce: 98 e0 ldi r25, 0x08 ; 8
c1d0: 9f 93 push r25
c1d2: 8f 93 push r24
c1d4: 0b e7 ldi r16, 0x7B ; 123
c1d6: 14 e1 ldi r17, 0x14 ; 20
c1d8: 1f 93 push r17
c1da: 0f 93 push r16
c1dc: e0 91 55 06 lds r30, 0x0655
c1e0: f0 91 56 06 lds r31, 0x0656
c1e4: 09 95 icall
c1e6: 0f b6 in r0, 0x3f ; 63
c1e8: f8 94 cli
c1ea: de bf out 0x3e, r29 ; 62
c1ec: 0f be out 0x3f, r0 ; 63
c1ee: cd bf out 0x3d, r28 ; 61
c1f0: 80 91 b6 08 lds r24, 0x08B6
c1f4: 83 30 cpi r24, 0x03 ; 3
c1f6: 51 f4 brne .+20 ; 0xc20c <HoTT_Menu+0x954>
c1f8: 84 e6 ldi r24, 0x64 ; 100
c1fa: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c1fe: 87 e4 ldi r24, 0x47 ; 71
c200: 98 e0 ldi r25, 0x08 ; 8
c202: 9f 93 push r25
c204: 8f 93 push r24
c206: 1f 93 push r17
c208: 0f 93 push r16
c20a: 0b c0 rjmp .+22 ; 0xc222 <HoTT_Menu+0x96a>
c20c: 84 e6 ldi r24, 0x64 ; 100
c20e: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c212: 81 e4 ldi r24, 0x41 ; 65
c214: 98 e0 ldi r25, 0x08 ; 8
c216: 9f 93 push r25
c218: 8f 93 push r24
c21a: 8c e9 ldi r24, 0x9C ; 156
c21c: 94 e1 ldi r25, 0x14 ; 20
c21e: 9f 93 push r25
c220: 8f 93 push r24
c222: e0 91 55 06 lds r30, 0x0655
c226: f0 91 56 06 lds r31, 0x0656
c22a: 09 95 icall
c22c: 0f 90 pop r0
c22e: 0f 90 pop r0
c230: 0f 90 pop r0
c232: 0f 90 pop r0
c234: 80 91 b4 08 lds r24, 0x08B4
c238: 81 fd sbrc r24, 1
c23a: 02 c0 rjmp .+4 ; 0xc240 <HoTT_Menu+0x988>
c23c: 0c 94 48 6b jmp 0xd690 ; 0xd690 <HoTT_Menu+0x1dd8>
c240: 84 e6 ldi r24, 0x64 ; 100
c242: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c246: 8b e3 ldi r24, 0x3B ; 59
c248: 98 e0 ldi r25, 0x08 ; 8
c24a: 0c 94 65 69 jmp 0xd2ca ; 0xd2ca <HoTT_Menu+0x1a12>
c24e: 84 e5 ldi r24, 0x54 ; 84
c250: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c254: 85 e2 ldi r24, 0x25 ; 37
c256: 98 e0 ldi r25, 0x08 ; 8
c258: 0c 94 65 69 jmp 0xd2ca ; 0xd2ca <HoTT_Menu+0x1a12>
c25c: 80 91 71 04 lds r24, 0x0471
c260: 88 23 and r24, r24
c262: 09 f4 brne .+2 ; 0xc266 <HoTT_Menu+0x9ae>
c264: 64 c0 rjmp .+200 ; 0xc32e <HoTT_Menu+0xa76>
c266: 89 e6 ldi r24, 0x69 ; 105
c268: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c26c: 40 90 55 06 lds r4, 0x0655
c270: 50 90 56 06 lds r5, 0x0656
c274: 83 e0 ldi r24, 0x03 ; 3
c276: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c27a: 3c 01 movw r6, r24
c27c: 83 e0 ldi r24, 0x03 ; 3
c27e: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c282: 4c 01 movw r8, r24
c284: 82 e0 ldi r24, 0x02 ; 2
c286: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c28a: 5c 01 movw r10, r24
c28c: 82 e0 ldi r24, 0x02 ; 2
c28e: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c292: 6c 01 movw r12, r24
c294: 81 e0 ldi r24, 0x01 ; 1
c296: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c29a: 7c 01 movw r14, r24
c29c: 81 e0 ldi r24, 0x01 ; 1
c29e: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c2a2: 8c 01 movw r16, r24
c2a4: 80 e0 ldi r24, 0x00 ; 0
c2a6: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c2aa: 1c 01 movw r2, r24
c2ac: 80 e0 ldi r24, 0x00 ; 0
c2ae: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c2b2: fc 01 movw r30, r24
c2b4: 2a e0 ldi r18, 0x0A ; 10
c2b6: 30 e0 ldi r19, 0x00 ; 0
c2b8: c3 01 movw r24, r6
c2ba: b9 01 movw r22, r18
c2bc: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c2c0: 9f 93 push r25
c2c2: 8f 93 push r24
c2c4: c4 01 movw r24, r8
c2c6: b9 01 movw r22, r18
c2c8: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c2cc: 7f 93 push r23
c2ce: 6f 93 push r22
c2d0: c5 01 movw r24, r10
c2d2: b9 01 movw r22, r18
c2d4: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c2d8: 9f 93 push r25
c2da: 8f 93 push r24
c2dc: c6 01 movw r24, r12
c2de: b9 01 movw r22, r18
c2e0: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c2e4: 7f 93 push r23
c2e6: 6f 93 push r22
c2e8: c7 01 movw r24, r14
c2ea: b9 01 movw r22, r18
c2ec: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c2f0: 9f 93 push r25
c2f2: 8f 93 push r24
c2f4: c8 01 movw r24, r16
c2f6: b9 01 movw r22, r18
c2f8: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c2fc: 7f 93 push r23
c2fe: 6f 93 push r22
c300: c1 01 movw r24, r2
c302: b9 01 movw r22, r18
c304: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c308: 9f 93 push r25
c30a: 8f 93 push r24
c30c: cf 01 movw r24, r30
c30e: b9 01 movw r22, r18
c310: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c314: 7f 93 push r23
c316: 6f 93 push r22
c318: 88 e0 ldi r24, 0x08 ; 8
c31a: 98 e0 ldi r25, 0x08 ; 8
c31c: 9f 93 push r25
c31e: 8f 93 push r24
c320: 8b e7 ldi r24, 0x7B ; 123
c322: 94 e1 ldi r25, 0x14 ; 20
c324: 9f 93 push r25
c326: 8f 93 push r24
c328: f2 01 movw r30, r4
c32a: 09 95 icall
c32c: 56 cc rjmp .-1876 ; 0xbbda <HoTT_Menu+0x322>
c32e: 89 e6 ldi r24, 0x69 ; 105
c330: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c334: 1f 92 push r1
c336: 80 e6 ldi r24, 0x60 ; 96
c338: 8f 93 push r24
c33a: 80 91 a8 09 lds r24, 0x09A8
c33e: 1f 92 push r1
c340: 8f 93 push r24
c342: 80 91 99 09 lds r24, 0x0999
c346: 1f 92 push r1
c348: 8f 93 push r24
c34a: 80 91 8a 09 lds r24, 0x098A
c34e: 1f 92 push r1
c350: 8f 93 push r24
c352: 80 91 7b 09 lds r24, 0x097B
c356: 1f 92 push r1
c358: 8f 93 push r24
c35a: 85 ef ldi r24, 0xF5 ; 245
c35c: 97 e0 ldi r25, 0x07 ; 7
c35e: 9f 93 push r25
c360: 8f 93 push r24
c362: 8b e7 ldi r24, 0x7B ; 123
c364: 94 e1 ldi r25, 0x14 ; 20
c366: 9f 93 push r25
c368: 8f 93 push r24
c36a: e0 91 55 06 lds r30, 0x0655
c36e: f0 91 56 06 lds r31, 0x0656
c372: 09 95 icall
c374: 32 cc rjmp .-1948 ; 0xbbda <HoTT_Menu+0x322>
c376: 90 91 71 04 lds r25, 0x0471
c37a: 80 91 1a 05 lds r24, 0x051A
c37e: 99 23 and r25, r25
c380: 09 f4 brne .+2 ; 0xc384 <HoTT_Menu+0xacc>
c382: d9 c0 rjmp .+434 ; 0xc536 <HoTT_Menu+0xc7e>
c384: 84 30 cpi r24, 0x04 ; 4
c386: c9 f4 brne .+50 ; 0xc3ba <HoTT_Menu+0xb02>
c388: 86 e0 ldi r24, 0x06 ; 6
c38a: 0f 90 pop r0
c38c: 0f 90 pop r0
c38e: 0f 90 pop r0
c390: 0f 90 pop r0
c392: df 91 pop r29
c394: cf 91 pop r28
c396: 1f 91 pop r17
c398: 0f 91 pop r16
c39a: ff 90 pop r15
c39c: ef 90 pop r14
c39e: df 90 pop r13
c3a0: cf 90 pop r12
c3a2: bf 90 pop r11
c3a4: af 90 pop r10
c3a6: 9f 90 pop r9
c3a8: 8f 90 pop r8
c3aa: 7f 90 pop r7
c3ac: 6f 90 pop r6
c3ae: 5f 90 pop r5
c3b0: 4f 90 pop r4
c3b2: 3f 90 pop r3
c3b4: 2f 90 pop r2
c3b6: 0c 94 ed 57 jmp 0xafda ; 0xafda <Hott_ClearLine>
c3ba: 86 30 cpi r24, 0x06 ; 6
c3bc: d9 f5 brne .+118 ; 0xc434 <HoTT_Menu+0xb7c>
c3be: 8e e7 ldi r24, 0x7E ; 126
c3c0: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c3c4: a0 90 55 06 lds r10, 0x0655
c3c8: b0 90 56 06 lds r11, 0x0656
c3cc: 85 e0 ldi r24, 0x05 ; 5
c3ce: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c3d2: 6c 01 movw r12, r24
c3d4: 85 e0 ldi r24, 0x05 ; 5
c3d6: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c3da: 7c 01 movw r14, r24
c3dc: 84 e0 ldi r24, 0x04 ; 4
c3de: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c3e2: 8c 01 movw r16, r24
c3e4: 84 e0 ldi r24, 0x04 ; 4
c3e6: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c3ea: fc 01 movw r30, r24
c3ec: 2a e0 ldi r18, 0x0A ; 10
c3ee: 30 e0 ldi r19, 0x00 ; 0
c3f0: c6 01 movw r24, r12
c3f2: b9 01 movw r22, r18
c3f4: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c3f8: 9f 93 push r25
c3fa: 8f 93 push r24
c3fc: c7 01 movw r24, r14
c3fe: b9 01 movw r22, r18
c400: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c404: 7f 93 push r23
c406: 6f 93 push r22
c408: c8 01 movw r24, r16
c40a: b9 01 movw r22, r18
c40c: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c410: 9f 93 push r25
c412: 8f 93 push r24
c414: cf 01 movw r24, r30
c416: b9 01 movw r22, r18
c418: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c41c: 7f 93 push r23
c41e: 6f 93 push r22
c420: 86 ee ldi r24, 0xE6 ; 230
c422: 97 e0 ldi r25, 0x07 ; 7
c424: 9f 93 push r25
c426: 8f 93 push r24
c428: 8b e7 ldi r24, 0x7B ; 123
c42a: 94 e1 ldi r25, 0x14 ; 20
c42c: 9f 93 push r25
c42e: 8f 93 push r24
c430: f5 01 movw r30, r10
c432: 7c ce rjmp .-776 ; 0xc12c <HoTT_Menu+0x874>
c434: 87 30 cpi r24, 0x07 ; 7
c436: 10 f4 brcc .+4 ; 0xc43c <HoTT_Menu+0xb84>
c438: 0c 94 48 6b jmp 0xd690 ; 0xd690 <HoTT_Menu+0x1dd8>
c43c: 8e e7 ldi r24, 0x7E ; 126
c43e: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c442: 20 91 55 06 lds r18, 0x0655
c446: 30 91 56 06 lds r19, 0x0656
c44a: 3a 83 std Y+2, r19 ; 0x02
c44c: 29 83 std Y+1, r18 ; 0x01
c44e: 88 e0 ldi r24, 0x08 ; 8
c450: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c454: 3c 01 movw r6, r24
c456: 88 e0 ldi r24, 0x08 ; 8
c458: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c45c: 4c 01 movw r8, r24
c45e: 87 e0 ldi r24, 0x07 ; 7
c460: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c464: 5c 01 movw r10, r24
c466: 87 e0 ldi r24, 0x07 ; 7
c468: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c46c: 6c 01 movw r12, r24
c46e: 86 e0 ldi r24, 0x06 ; 6
c470: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c474: 7c 01 movw r14, r24
c476: 86 e0 ldi r24, 0x06 ; 6
c478: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c47c: 8c 01 movw r16, r24
c47e: 85 e0 ldi r24, 0x05 ; 5
c480: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c484: 9c 83 std Y+4, r25 ; 0x04
c486: 8b 83 std Y+3, r24 ; 0x03
c488: 85 e0 ldi r24, 0x05 ; 5
c48a: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c48e: 2c 01 movw r4, r24
c490: 84 e0 ldi r24, 0x04 ; 4
c492: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c496: 1c 01 movw r2, r24
c498: 84 e0 ldi r24, 0x04 ; 4
c49a: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
c49e: fc 01 movw r30, r24
c4a0: 2a e0 ldi r18, 0x0A ; 10
c4a2: 30 e0 ldi r19, 0x00 ; 0
c4a4: c3 01 movw r24, r6
c4a6: b9 01 movw r22, r18
c4a8: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c4ac: 9f 93 push r25
c4ae: 8f 93 push r24
c4b0: c4 01 movw r24, r8
c4b2: b9 01 movw r22, r18
c4b4: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c4b8: 7f 93 push r23
c4ba: 6f 93 push r22
c4bc: c5 01 movw r24, r10
c4be: b9 01 movw r22, r18
c4c0: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c4c4: 9f 93 push r25
c4c6: 8f 93 push r24
c4c8: c6 01 movw r24, r12
c4ca: b9 01 movw r22, r18
c4cc: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c4d0: 7f 93 push r23
c4d2: 6f 93 push r22
c4d4: c7 01 movw r24, r14
c4d6: b9 01 movw r22, r18
c4d8: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c4dc: 9f 93 push r25
c4de: 8f 93 push r24
c4e0: c8 01 movw r24, r16
c4e2: b9 01 movw r22, r18
c4e4: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c4e8: 7f 93 push r23
c4ea: 6f 93 push r22
c4ec: 8b 81 ldd r24, Y+3 ; 0x03
c4ee: 9c 81 ldd r25, Y+4 ; 0x04
c4f0: b9 01 movw r22, r18
c4f2: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c4f6: 9f 93 push r25
c4f8: 8f 93 push r24
c4fa: c2 01 movw r24, r4
c4fc: b9 01 movw r22, r18
c4fe: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c502: 7f 93 push r23
c504: 6f 93 push r22
c506: c1 01 movw r24, r2
c508: b9 01 movw r22, r18
c50a: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c50e: 9f 93 push r25
c510: 8f 93 push r24
c512: cf 01 movw r24, r30
c514: b9 01 movw r22, r18
c516: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
c51a: 7f 93 push r23
c51c: 6f 93 push r22
c51e: 89 ec ldi r24, 0xC9 ; 201
c520: 97 e0 ldi r25, 0x07 ; 7
c522: 9f 93 push r25
c524: 8f 93 push r24
c526: 8b e7 ldi r24, 0x7B ; 123
c528: 94 e1 ldi r25, 0x14 ; 20
c52a: 9f 93 push r25
c52c: 8f 93 push r24
c52e: e9 81 ldd r30, Y+1 ; 0x01
c530: fa 81 ldd r31, Y+2 ; 0x02
c532: 09 95 icall
c534: 52 cb rjmp .-2396 ; 0xbbda <HoTT_Menu+0x322>
c536: 84 30 cpi r24, 0x04 ; 4
c538: 09 f4 brne .+2 ; 0xc53c <HoTT_Menu+0xc84>
c53a: 26 cf rjmp .-436 ; 0xc388 <HoTT_Menu+0xad0>
c53c: 86 30 cpi r24, 0x06 ; 6
c53e: 89 f4 brne .+34 ; 0xc562 <HoTT_Menu+0xcaa>
c540: 8e e7 ldi r24, 0x7E ; 126
c542: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c546: 1f 92 push r1
c548: 80 e6 ldi r24, 0x60 ; 96
c54a: 8f 93 push r24
c54c: 80 91 c6 09 lds r24, 0x09C6
c550: 1f 92 push r1
c552: 8f 93 push r24
c554: 80 91 b7 09 lds r24, 0x09B7
c558: 1f 92 push r1
c55a: 8f 93 push r24
c55c: 86 eb ldi r24, 0xB6 ; 182
c55e: 97 e0 ldi r25, 0x07 ; 7
c560: b3 c0 rjmp .+358 ; 0xc6c8 <HoTT_Menu+0xe10>
c562: 87 30 cpi r24, 0x07 ; 7
c564: 10 f4 brcc .+4 ; 0xc56a <HoTT_Menu+0xcb2>
c566: 0c 94 48 6b jmp 0xd690 ; 0xd690 <HoTT_Menu+0x1dd8>
c56a: 8e e7 ldi r24, 0x7E ; 126
c56c: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c570: 1f 92 push r1
c572: 80 e6 ldi r24, 0x60 ; 96
c574: 8f 93 push r24
c576: 80 91 e4 09 lds r24, 0x09E4
c57a: 1f 92 push r1
c57c: 8f 93 push r24
c57e: 80 91 d5 09 lds r24, 0x09D5
c582: 1f 92 push r1
c584: 8f 93 push r24
c586: 80 91 c6 09 lds r24, 0x09C6
c58a: 1f 92 push r1
c58c: 8f 93 push r24
c58e: 80 91 b7 09 lds r24, 0x09B7
c592: 1f 92 push r1
c594: 8f 93 push r24
c596: 83 ea ldi r24, 0xA3 ; 163
c598: 97 e0 ldi r25, 0x07 ; 7
c59a: e1 ce rjmp .-574 ; 0xc35e <HoTT_Menu+0xaa6>
c59c: 80 91 b9 04 lds r24, 0x04B9
c5a0: 88 23 and r24, r24
c5a2: 91 f1 breq .+100 ; 0xc608 <HoTT_Menu+0xd50>
c5a4: 90 91 ed 02 lds r25, 0x02ED
c5a8: 99 23 and r25, r25
c5aa: 79 f0 breq .+30 ; 0xc5ca <HoTT_Menu+0xd12>
c5ac: 83 32 cpi r24, 0x23 ; 35
c5ae: 68 f4 brcc .+26 ; 0xc5ca <HoTT_Menu+0xd12>
c5b0: 87 e0 ldi r24, 0x07 ; 7
c5b2: 0e 94 ed 57 call 0xafda ; 0xafda <Hott_ClearLine>
c5b6: 83 e9 ldi r24, 0x93 ; 147
c5b8: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c5bc: 80 91 b9 04 lds r24, 0x04B9
c5c0: 1f 92 push r1
c5c2: 8f 93 push r24
c5c4: 88 e9 ldi r24, 0x98 ; 152
c5c6: 97 e0 ldi r25, 0x07 ; 7
c5c8: 36 cc rjmp .-1940 ; 0xbe36 <HoTT_Menu+0x57e>
c5ca: 83 e9 ldi r24, 0x93 ; 147
c5cc: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c5d0: 82 e9 ldi r24, 0x92 ; 146
c5d2: 97 e0 ldi r25, 0x07 ; 7
c5d4: 9f 93 push r25
c5d6: 8f 93 push r24
c5d8: 0b e7 ldi r16, 0x7B ; 123
c5da: 14 e1 ldi r17, 0x14 ; 20
c5dc: 1f 93 push r17
c5de: 0f 93 push r16
c5e0: e0 91 55 06 lds r30, 0x0655
c5e4: f0 91 56 06 lds r31, 0x0656
c5e8: 09 95 icall
c5ea: 1f 92 push r1
c5ec: 1f 92 push r1
c5ee: 80 91 b9 04 lds r24, 0x04B9
c5f2: f1 e1 ldi r31, 0x11 ; 17
c5f4: 8f 9f mul r24, r31
c5f6: c0 01 movw r24, r0
c5f8: 11 24 eor r1, r1
c5fa: 8a 56 subi r24, 0x6A ; 106
c5fc: 95 4f sbci r25, 0xF5 ; 245
c5fe: 9f 93 push r25
c600: 8f 93 push r24
c602: 1f 93 push r17
c604: 0f 93 push r16
c606: 5a c7 rjmp .+3764 ; 0xd4bc <HoTT_Menu+0x1c04>
c608: 80 91 c9 03 lds r24, 0x03C9
c60c: 85 ff sbrs r24, 5
c60e: 06 c0 rjmp .+12 ; 0xc61c <HoTT_Menu+0xd64>
c610: 84 e9 ldi r24, 0x94 ; 148
c612: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c616: 8f e7 ldi r24, 0x7F ; 127
c618: 97 e0 ldi r25, 0x07 ; 7
c61a: 57 c6 rjmp .+3246 ; 0xd2ca <HoTT_Menu+0x1a12>
c61c: 83 e9 ldi r24, 0x93 ; 147
c61e: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c622: 89 e6 ldi r24, 0x69 ; 105
c624: 97 e0 ldi r25, 0x07 ; 7
c626: 51 c6 rjmp .+3234 ; 0xd2ca <HoTT_Menu+0x1a12>
c628: 80 91 86 0c lds r24, 0x0C86
c62c: 86 30 cpi r24, 0x06 ; 6
c62e: 79 f4 brne .+30 ; 0xc64e <HoTT_Menu+0xd96>
c630: 80 91 71 04 lds r24, 0x0471
c634: 88 23 and r24, r24
c636: 19 f0 breq .+6 ; 0xc63e <HoTT_Menu+0xd86>
c638: 10 92 71 04 sts 0x0471, r1
c63c: 03 c0 rjmp .+6 ; 0xc644 <HoTT_Menu+0xd8c>
c63e: 81 e0 ldi r24, 0x01 ; 1
c640: 80 93 71 04 sts 0x0471, r24
c644: 85 e0 ldi r24, 0x05 ; 5
c646: 0e 94 ed 57 call 0xafda ; 0xafda <Hott_ClearLine>
c64a: 86 e0 ldi r24, 0x06 ; 6
c64c: 41 c2 rjmp .+1154 ; 0xcad0 <HoTT_Menu+0x1218>
c64e: 88 30 cpi r24, 0x08 ; 8
c650: 09 f4 brne .+2 ; 0xc654 <HoTT_Menu+0xd9c>
c652: 98 c3 rjmp .+1840 ; 0xcd84 <HoTT_Menu+0x14cc>
c654: 81 30 cpi r24, 0x01 ; 1
c656: 11 f0 breq .+4 ; 0xc65c <HoTT_Menu+0xda4>
c658: 0c 94 40 6b jmp 0xd680 ; 0xd680 <HoTT_Menu+0x1dc8>
c65c: 0e 94 aa 14 call 0x2954 ; 0x2954 <LIBFC_HoTT_Clear>
c660: 10 92 74 04 sts 0x0474, r1
c664: 0c 94 3e 6b jmp 0xd67c ; 0xd67c <HoTT_Menu+0x1dc4>
c668: 84 2f mov r24, r20
c66a: 90 e0 ldi r25, 0x00 ; 0
c66c: 81 31 cpi r24, 0x11 ; 17
c66e: 91 05 cpc r25, r1
c670: 10 f0 brcs .+4 ; 0xc676 <HoTT_Menu+0xdbe>
c672: 0c 94 43 6b jmp 0xd686 ; 0xd686 <HoTT_Menu+0x1dce>
c676: fc 01 movw r30, r24
c678: ef 57 subi r30, 0x7F ; 127
c67a: ff 4f sbci r31, 0xFF ; 255
c67c: 0c 94 24 9b jmp 0x13648 ; 0x13648 <__tablejump2__>
c680: 80 e0 ldi r24, 0x00 ; 0
c682: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c686: 87 e9 ldi r24, 0x97 ; 151
c688: 95 e0 ldi r25, 0x05 ; 5
c68a: 9f 93 push r25
c68c: 8f 93 push r24
c68e: 80 91 52 01 lds r24, 0x0152
c692: 1f 92 push r1
c694: 8f 93 push r24
c696: 8a e5 ldi r24, 0x5A ; 90
c698: 97 e0 ldi r25, 0x07 ; 7
c69a: 9f 93 push r25
c69c: 8f 93 push r24
c69e: 8b e8 ldi r24, 0x8B ; 139
c6a0: 94 e1 ldi r25, 0x14 ; 20
c6a2: 94 ca rjmp .-2776 ; 0xbbcc <HoTT_Menu+0x314>
c6a4: 85 e1 ldi r24, 0x15 ; 21
c6a6: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c6aa: 80 91 53 01 lds r24, 0x0153
c6ae: 25 ea ldi r18, 0xA5 ; 165
c6b0: 35 e0 ldi r19, 0x05 ; 5
c6b2: 3f 93 push r19
c6b4: 2f 93 push r18
c6b6: 6a e0 ldi r22, 0x0A ; 10
c6b8: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
c6bc: 1f 92 push r1
c6be: 9f 93 push r25
c6c0: 1f 92 push r1
c6c2: 8f 93 push r24
c6c4: 89 e4 ldi r24, 0x49 ; 73
c6c6: 97 e0 ldi r25, 0x07 ; 7
c6c8: 9f 93 push r25
c6ca: 8f 93 push r24
c6cc: 8b e7 ldi r24, 0x7B ; 123
c6ce: 94 e1 ldi r25, 0x14 ; 20
c6d0: 9f 93 push r25
c6d2: 8f 93 push r24
c6d4: 93 c1 rjmp .+806 ; 0xc9fc <HoTT_Menu+0x1144>
c6d6: 8a e2 ldi r24, 0x2A ; 42
c6d8: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c6dc: 84 e4 ldi r24, 0x44 ; 68
c6de: 97 e0 ldi r25, 0x07 ; 7
c6e0: 9f 93 push r25
c6e2: 8f 93 push r24
c6e4: 0b e7 ldi r16, 0x7B ; 123
c6e6: 14 e1 ldi r17, 0x14 ; 20
c6e8: 1f 93 push r17
c6ea: 0f 93 push r16
c6ec: e0 91 55 06 lds r30, 0x0655
c6f0: f0 91 56 06 lds r31, 0x0656
c6f4: 09 95 icall
c6f6: 80 91 39 06 lds r24, 0x0639
c6fa: 0f 90 pop r0
c6fc: 0f 90 pop r0
c6fe: 0f 90 pop r0
c700: 0f 90 pop r0
c702: e0 91 55 06 lds r30, 0x0655
c706: f0 91 56 06 lds r31, 0x0656
c70a: 80 ff sbrs r24, 0
c70c: 35 c0 rjmp .+106 ; 0xc778 <HoTT_Menu+0xec0>
c70e: 90 91 28 05 lds r25, 0x0528
c712: 80 91 df 03 lds r24, 0x03DF
c716: 91 fd sbrc r25, 1
c718: 05 c0 rjmp .+10 ; 0xc724 <HoTT_Menu+0xe6c>
c71a: 1f 92 push r1
c71c: 8f 93 push r24
c71e: 8a e3 ldi r24, 0x3A ; 58
c720: 97 e0 ldi r25, 0x07 ; 7
c722: df c0 rjmp .+446 ; 0xc8e2 <HoTT_Menu+0x102a>
c724: 83 33 cpi r24, 0x33 ; 51
c726: 18 f0 brcs .+6 ; 0xc72e <HoTT_Menu+0xe76>
c728: 83 e3 ldi r24, 0x33 ; 51
c72a: 97 e0 ldi r25, 0x07 ; 7
c72c: 02 c0 rjmp .+4 ; 0xc732 <HoTT_Menu+0xe7a>
c72e: 8c e2 ldi r24, 0x2C ; 44
c730: 97 e0 ldi r25, 0x07 ; 7
c732: 9f 93 push r25
c734: 8f 93 push r24
c736: 1f 93 push r17
c738: 0f 93 push r16
c73a: 09 95 icall
c73c: 0f 90 pop r0
c73e: 0f 90 pop r0
c740: 0f 90 pop r0
c742: 0f 90 pop r0
c744: 90 91 1d 06 lds r25, 0x061D
c748: e0 91 55 06 lds r30, 0x0655
c74c: f0 91 56 06 lds r31, 0x0656
c750: 80 91 df 03 lds r24, 0x03DF
c754: 90 ff sbrs r25, 0
c756: 05 c0 rjmp .+10 ; 0xc762 <HoTT_Menu+0xeaa>
c758: 1f 92 push r1
c75a: 8f 93 push r24
c75c: 86 e2 ldi r24, 0x26 ; 38
c75e: 97 e0 ldi r25, 0x07 ; 7
c760: 04 c0 rjmp .+8 ; 0xc76a <HoTT_Menu+0xeb2>
c762: 1f 92 push r1
c764: 8f 93 push r24
c766: 80 e2 ldi r24, 0x20 ; 32
c768: 97 e0 ldi r25, 0x07 ; 7
c76a: 9f 93 push r25
c76c: 8f 93 push r24
c76e: 8b e7 ldi r24, 0x7B ; 123
c770: 94 e1 ldi r25, 0x14 ; 20
c772: 9f 93 push r25
c774: 8f 93 push r24
c776: 69 cb rjmp .-2350 ; 0xbe4a <HoTT_Menu+0x592>
c778: 87 e1 ldi r24, 0x17 ; 23
c77a: 97 e0 ldi r25, 0x07 ; 7
c77c: b9 c0 rjmp .+370 ; 0xc8f0 <HoTT_Menu+0x1038>
c77e: 8f e3 ldi r24, 0x3F ; 63
c780: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c784: 83 e1 ldi r24, 0x13 ; 19
c786: 97 e0 ldi r25, 0x07 ; 7
c788: 9f 93 push r25
c78a: 8f 93 push r24
c78c: 0b e7 ldi r16, 0x7B ; 123
c78e: 14 e1 ldi r17, 0x14 ; 20
c790: 1f 93 push r17
c792: 0f 93 push r16
c794: e0 91 55 06 lds r30, 0x0655
c798: f0 91 56 06 lds r31, 0x0656
c79c: 09 95 icall
c79e: 0f 90 pop r0
c7a0: 0f 90 pop r0
c7a2: 0f 90 pop r0
c7a4: 0f 90 pop r0
c7a6: 80 91 7f 05 lds r24, 0x057F
c7aa: e0 91 55 06 lds r30, 0x0655
c7ae: f0 91 56 06 lds r31, 0x0656
c7b2: 81 11 cpse r24, r1
c7b4: 03 c0 rjmp .+6 ; 0xc7bc <HoTT_Menu+0xf04>
c7b6: 8a e0 ldi r24, 0x0A ; 10
c7b8: 97 e0 ldi r25, 0x07 ; 7
c7ba: 9a c0 rjmp .+308 ; 0xc8f0 <HoTT_Menu+0x1038>
c7bc: 80 91 d6 03 lds r24, 0x03D6
c7c0: 88 23 and r24, r24
c7c2: 19 f0 breq .+6 ; 0xc7ca <HoTT_Menu+0xf12>
c7c4: 83 e0 ldi r24, 0x03 ; 3
c7c6: 97 e0 ldi r25, 0x07 ; 7
c7c8: 02 c0 rjmp .+4 ; 0xc7ce <HoTT_Menu+0xf16>
c7ca: 8c ef ldi r24, 0xFC ; 252
c7cc: 96 e0 ldi r25, 0x06 ; 6
c7ce: 9f 93 push r25
c7d0: 8f 93 push r24
c7d2: 1f 93 push r17
c7d4: 0f 93 push r16
c7d6: 09 95 icall
c7d8: 0f 90 pop r0
c7da: 0f 90 pop r0
c7dc: 0f 90 pop r0
c7de: 0f 90 pop r0
c7e0: 80 91 95 05 lds r24, 0x0595
c7e4: 86 ff sbrs r24, 6
c7e6: 54 c7 rjmp .+3752 ; 0xd690 <HoTT_Menu+0x1dd8>
c7e8: 85 ef ldi r24, 0xF5 ; 245
c7ea: 96 e0 ldi r25, 0x06 ; 6
c7ec: 6e c5 rjmp .+2780 ; 0xd2ca <HoTT_Menu+0x1a12>
c7ee: 84 e5 ldi r24, 0x54 ; 84
c7f0: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c7f4: 80 ef ldi r24, 0xF0 ; 240
c7f6: 96 e0 ldi r25, 0x06 ; 6
c7f8: 9f 93 push r25
c7fa: 8f 93 push r24
c7fc: 0b e7 ldi r16, 0x7B ; 123
c7fe: 14 e1 ldi r17, 0x14 ; 20
c800: 1f 93 push r17
c802: 0f 93 push r16
c804: e0 91 55 06 lds r30, 0x0655
c808: f0 91 56 06 lds r31, 0x0656
c80c: 09 95 icall
c80e: 80 91 39 06 lds r24, 0x0639
c812: 0f 90 pop r0
c814: 0f 90 pop r0
c816: 0f 90 pop r0
c818: 0f 90 pop r0
c81a: 85 fd sbrc r24, 5
c81c: 0b c0 rjmp .+22 ; 0xc834 <HoTT_Menu+0xf7c>
c81e: 87 ee ldi r24, 0xE7 ; 231
c820: 96 e0 ldi r25, 0x06 ; 6
c822: 9f 93 push r25
c824: 8f 93 push r24
c826: 1f 93 push r17
c828: 0f 93 push r16
c82a: e0 91 55 06 lds r30, 0x0655
c82e: f0 91 56 06 lds r31, 0x0656
c832: 1f c0 rjmp .+62 ; 0xc872 <HoTT_Menu+0xfba>
c834: 80 91 6c 05 lds r24, 0x056C
c838: 0e 94 fa 30 call 0x61f4 ; 0x61f4 <GetChannelValue>
c83c: e0 91 55 06 lds r30, 0x0655
c840: f0 91 56 06 lds r31, 0x0656
c844: 82 33 cpi r24, 0x32 ; 50
c846: 18 f4 brcc .+6 ; 0xc84e <HoTT_Menu+0xf96>
c848: 80 ee ldi r24, 0xE0 ; 224
c84a: 96 e0 ldi r25, 0x06 ; 6
c84c: 0e c0 rjmp .+28 ; 0xc86a <HoTT_Menu+0xfb2>
c84e: 84 3b cpi r24, 0xB4 ; 180
c850: 18 f0 brcs .+6 ; 0xc858 <HoTT_Menu+0xfa0>
c852: 89 ed ldi r24, 0xD9 ; 217
c854: 96 e0 ldi r25, 0x06 ; 6
c856: 09 c0 rjmp .+18 ; 0xc86a <HoTT_Menu+0xfb2>
c858: 80 91 95 05 lds r24, 0x0595
c85c: 85 ff sbrs r24, 5
c85e: 03 c0 rjmp .+6 ; 0xc866 <HoTT_Menu+0xfae>
c860: 82 ed ldi r24, 0xD2 ; 210
c862: 96 e0 ldi r25, 0x06 ; 6
c864: 02 c0 rjmp .+4 ; 0xc86a <HoTT_Menu+0xfb2>
c866: 8b ec ldi r24, 0xCB ; 203
c868: 96 e0 ldi r25, 0x06 ; 6
c86a: 9f 93 push r25
c86c: 8f 93 push r24
c86e: 1f 93 push r17
c870: 0f 93 push r16
c872: 09 95 icall
c874: 0f 90 pop r0
c876: 0f 90 pop r0
c878: 0f 90 pop r0
c87a: 0f 90 pop r0
c87c: 80 91 83 05 lds r24, 0x0583
c880: 88 23 and r24, r24
c882: 09 f4 brne .+2 ; 0xc886 <HoTT_Menu+0xfce>
c884: 05 c7 rjmp .+3594 ; 0xd690 <HoTT_Menu+0x1dd8>
c886: 8e e5 ldi r24, 0x5E ; 94
c888: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c88c: 80 91 83 05 lds r24, 0x0583
c890: 1f 92 push r1
c892: 8f 93 push r24
c894: 80 ec ldi r24, 0xC0 ; 192
c896: 96 e0 ldi r25, 0x06 ; 6
c898: 9f 93 push r25
c89a: 8f 93 push r24
c89c: 8b e7 ldi r24, 0x7B ; 123
c89e: 94 e1 ldi r25, 0x14 ; 20
c8a0: ce ca rjmp .-2660 ; 0xbe3e <HoTT_Menu+0x586>
c8a2: 89 e6 ldi r24, 0x69 ; 105
c8a4: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c8a8: 86 eb ldi r24, 0xB6 ; 182
c8aa: 96 e0 ldi r25, 0x06 ; 6
c8ac: 9f 93 push r25
c8ae: 8f 93 push r24
c8b0: 0b e7 ldi r16, 0x7B ; 123
c8b2: 14 e1 ldi r17, 0x14 ; 20
c8b4: 1f 93 push r17
c8b6: 0f 93 push r16
c8b8: e0 91 55 06 lds r30, 0x0655
c8bc: f0 91 56 06 lds r31, 0x0656
c8c0: 09 95 icall
c8c2: 80 91 82 05 lds r24, 0x0582
c8c6: 0f 90 pop r0
c8c8: 0f 90 pop r0
c8ca: 0f 90 pop r0
c8cc: 0f 90 pop r0
c8ce: e0 91 55 06 lds r30, 0x0655
c8d2: f0 91 56 06 lds r31, 0x0656
c8d6: 88 23 and r24, r24
c8d8: 49 f0 breq .+18 ; 0xc8ec <HoTT_Menu+0x1034>
c8da: 1f 92 push r1
c8dc: 8f 93 push r24
c8de: 82 eb ldi r24, 0xB2 ; 178
c8e0: 96 e0 ldi r25, 0x06 ; 6
c8e2: 9f 93 push r25
c8e4: 8f 93 push r24
c8e6: 1f 93 push r17
c8e8: 0f 93 push r16
c8ea: af ca rjmp .-2722 ; 0xbe4a <HoTT_Menu+0x592>
c8ec: 8c ea ldi r24, 0xAC ; 172
c8ee: 96 e0 ldi r25, 0x06 ; 6
c8f0: 9f 93 push r25
c8f2: 8f 93 push r24
c8f4: 1f 93 push r17
c8f6: 0f 93 push r16
c8f8: f2 c4 rjmp .+2532 ; 0xd2de <HoTT_Menu+0x1a26>
c8fa: 80 91 70 04 lds r24, 0x0470
c8fe: 81 11 cpse r24, r1
c900: 4c c0 rjmp .+152 ; 0xc99a <HoTT_Menu+0x10e2>
c902: 8e e7 ldi r24, 0x7E ; 126
c904: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c908: e0 91 1d 05 lds r30, 0x051D
c90c: f0 e0 ldi r31, 0x00 ; 0
c90e: ee 0f add r30, r30
c910: ff 1f adc r31, r31
c912: e2 5f subi r30, 0xF2 ; 242
c914: f7 4f sbci r31, 0xF7 ; 247
c916: 20 81 ld r18, Z
c918: 31 81 ldd r19, Z+1 ; 0x01
c91a: e0 91 1c 05 lds r30, 0x051C
c91e: f0 e0 ldi r31, 0x00 ; 0
c920: ee 0f add r30, r30
c922: ff 1f adc r31, r31
c924: e2 5f subi r30, 0xF2 ; 242
c926: f7 4f sbci r31, 0xF7 ; 247
c928: 80 81 ld r24, Z
c92a: 91 81 ldd r25, Z+1 ; 0x01
c92c: 40 91 2f 01 lds r20, 0x012F
c930: 1f 92 push r1
c932: 4f 93 push r20
c934: 3f 93 push r19
c936: 2f 93 push r18
c938: 9f 93 push r25
c93a: 8f 93 push r24
c93c: 88 e9 ldi r24, 0x98 ; 152
c93e: 96 e0 ldi r25, 0x06 ; 6
c940: 9f 93 push r25
c942: 8f 93 push r24
c944: 0b e7 ldi r16, 0x7B ; 123
c946: 14 e1 ldi r17, 0x14 ; 20
c948: 1f 93 push r17
c94a: 0f 93 push r16
c94c: e0 91 55 06 lds r30, 0x0655
c950: f0 91 56 06 lds r31, 0x0656
c954: 09 95 icall
c956: 83 e9 ldi r24, 0x93 ; 147
c958: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c95c: e0 91 1f 05 lds r30, 0x051F
c960: f0 e0 ldi r31, 0x00 ; 0
c962: ee 0f add r30, r30
c964: ff 1f adc r31, r31
c966: e2 5f subi r30, 0xF2 ; 242
c968: f7 4f sbci r31, 0xF7 ; 247
c96a: 20 81 ld r18, Z
c96c: 31 81 ldd r19, Z+1 ; 0x01
c96e: e0 91 1e 05 lds r30, 0x051E
c972: f0 e0 ldi r31, 0x00 ; 0
c974: ee 0f add r30, r30
c976: ff 1f adc r31, r31
c978: e2 5f subi r30, 0xF2 ; 242
c97a: f7 4f sbci r31, 0xF7 ; 247
c97c: 80 81 ld r24, Z
c97e: 91 81 ldd r25, Z+1 ; 0x01
c980: 3f 93 push r19
c982: 2f 93 push r18
c984: 81 58 subi r24, 0x81 ; 129
c986: 9f 4f sbci r25, 0xFF ; 255
c988: 9f 93 push r25
c98a: 8f 93 push r24
c98c: 89 e8 ldi r24, 0x89 ; 137
c98e: 96 e0 ldi r25, 0x06 ; 6
c990: 9f 93 push r25
c992: 8f 93 push r24
c994: 1f 93 push r17
c996: 0f 93 push r16
c998: 1b c9 rjmp .-3530 ; 0xbbd0 <HoTT_Menu+0x318>
c99a: 8e e7 ldi r24, 0x7E ; 126
c99c: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c9a0: 80 91 05 04 lds r24, 0x0405
c9a4: 1f 92 push r1
c9a6: 8f 93 push r24
c9a8: 80 91 04 04 lds r24, 0x0404
c9ac: 1f 92 push r1
c9ae: 8f 93 push r24
c9b0: 80 91 03 04 lds r24, 0x0403
c9b4: 1f 92 push r1
c9b6: 8f 93 push r24
c9b8: 85 e7 ldi r24, 0x75 ; 117
c9ba: 96 e0 ldi r25, 0x06 ; 6
c9bc: 9f 93 push r25
c9be: 8f 93 push r24
c9c0: 0b e7 ldi r16, 0x7B ; 123
c9c2: 14 e1 ldi r17, 0x14 ; 20
c9c4: 1f 93 push r17
c9c6: 0f 93 push r16
c9c8: e0 91 55 06 lds r30, 0x0655
c9cc: f0 91 56 06 lds r31, 0x0656
c9d0: 09 95 icall
c9d2: 83 e9 ldi r24, 0x93 ; 147
c9d4: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
c9d8: 80 91 08 04 lds r24, 0x0408
c9dc: 1f 92 push r1
c9de: 8f 93 push r24
c9e0: 80 91 07 04 lds r24, 0x0407
c9e4: 1f 92 push r1
c9e6: 8f 93 push r24
c9e8: 80 91 06 04 lds r24, 0x0406
c9ec: 1f 92 push r1
c9ee: 8f 93 push r24
c9f0: 81 e6 ldi r24, 0x61 ; 97
c9f2: 96 e0 ldi r25, 0x06 ; 6
c9f4: 9f 93 push r25
c9f6: 8f 93 push r24
c9f8: 1f 93 push r17
c9fa: 0f 93 push r16
c9fc: e0 91 55 06 lds r30, 0x0655
ca00: f0 91 56 06 lds r31, 0x0656
ca04: 09 95 icall
ca06: e9 c8 rjmp .-3630 ; 0xbbda <HoTT_Menu+0x322>
ca08: 80 91 ed 02 lds r24, 0x02ED
ca0c: 88 23 and r24, r24
ca0e: 09 f4 brne .+2 ; 0xca12 <HoTT_Menu+0x115a>
ca10: 3f c6 rjmp .+3198 ; 0xd690 <HoTT_Menu+0x1dd8>
ca12: 8e e7 ldi r24, 0x7E ; 126
ca14: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
ca18: 80 91 39 06 lds r24, 0x0639
ca1c: 86 fd sbrc r24, 6
ca1e: 11 c0 rjmp .+34 ; 0xca42 <HoTT_Menu+0x118a>
ca20: 82 e5 ldi r24, 0x52 ; 82
ca22: 96 e0 ldi r25, 0x06 ; 6
ca24: 9f 93 push r25
ca26: 8f 93 push r24
ca28: 8c e9 ldi r24, 0x9C ; 156
ca2a: 94 e1 ldi r25, 0x14 ; 20
ca2c: 9f 93 push r25
ca2e: 8f 93 push r24
ca30: e0 91 55 06 lds r30, 0x0655
ca34: f0 91 56 06 lds r31, 0x0656
ca38: 09 95 icall
ca3a: 0f 90 pop r0
ca3c: 0f 90 pop r0
ca3e: 0f 90 pop r0
ca40: 0f 90 pop r0
ca42: 80 91 93 05 lds r24, 0x0593
ca46: 8f 70 andi r24, 0x0F ; 15
ca48: 89 f0 breq .+34 ; 0xca6c <HoTT_Menu+0x11b4>
ca4a: 88 e4 ldi r24, 0x48 ; 72
ca4c: 96 e0 ldi r25, 0x06 ; 6
ca4e: 9f 93 push r25
ca50: 8f 93 push r24
ca52: 8c e9 ldi r24, 0x9C ; 156
ca54: 94 e1 ldi r25, 0x14 ; 20
ca56: 9f 93 push r25
ca58: 8f 93 push r24
ca5a: e0 91 55 06 lds r30, 0x0655
ca5e: f0 91 56 06 lds r31, 0x0656
ca62: 09 95 icall
ca64: 0f 90 pop r0
ca66: 0f 90 pop r0
ca68: 0f 90 pop r0
ca6a: 0f 90 pop r0
ca6c: 80 91 39 06 lds r24, 0x0639
ca70: 82 ff sbrs r24, 2
ca72: 11 c0 rjmp .+34 ; 0xca96 <HoTT_Menu+0x11de>
ca74: 83 e4 ldi r24, 0x43 ; 67
ca76: 96 e0 ldi r25, 0x06 ; 6
ca78: 9f 93 push r25
ca7a: 8f 93 push r24
ca7c: 8c e9 ldi r24, 0x9C ; 156
ca7e: 94 e1 ldi r25, 0x14 ; 20
ca80: 9f 93 push r25
ca82: 8f 93 push r24
ca84: e0 91 55 06 lds r30, 0x0655
ca88: f0 91 56 06 lds r31, 0x0656
ca8c: 09 95 icall
ca8e: 0f 90 pop r0
ca90: 0f 90 pop r0
ca92: 0f 90 pop r0
ca94: 0f 90 pop r0
ca96: 80 91 39 06 lds r24, 0x0639
ca9a: 83 fd sbrc r24, 3
ca9c: f9 c5 rjmp .+3058 ; 0xd690 <HoTT_Menu+0x1dd8>
ca9e: 85 e3 ldi r24, 0x35 ; 53
caa0: 96 e0 ldi r25, 0x06 ; 6
caa2: 9f 93 push r25
caa4: 8f 93 push r24
caa6: 8c e9 ldi r24, 0x9C ; 156
caa8: 94 e1 ldi r25, 0x14 ; 20
caaa: 13 c4 rjmp .+2086 ; 0xd2d2 <HoTT_Menu+0x1a1a>
caac: 10 91 86 0c lds r17, 0x0C86
cab0: 16 30 cpi r17, 0x06 ; 6
cab2: 89 f4 brne .+34 ; 0xcad6 <HoTT_Menu+0x121e>
cab4: 80 91 70 04 lds r24, 0x0470
cab8: 88 23 and r24, r24
caba: 19 f0 breq .+6 ; 0xcac2 <HoTT_Menu+0x120a>
cabc: 10 92 70 04 sts 0x0470, r1
cac0: 03 c0 rjmp .+6 ; 0xcac8 <HoTT_Menu+0x1210>
cac2: 81 e0 ldi r24, 0x01 ; 1
cac4: 80 93 70 04 sts 0x0470, r24
cac8: 86 e0 ldi r24, 0x06 ; 6
caca: 0e 94 ed 57 call 0xafda ; 0xafda <Hott_ClearLine>
cace: 87 e0 ldi r24, 0x07 ; 7
cad0: 0e 94 ed 57 call 0xafda ; 0xafda <Hott_ClearLine>
cad4: d5 c5 rjmp .+2986 ; 0xd680 <HoTT_Menu+0x1dc8>
cad6: 18 30 cpi r17, 0x08 ; 8
cad8: 21 f4 brne .+8 ; 0xcae2 <HoTT_Menu+0x122a>
cada: 0e 94 aa 14 call 0x2954 ; 0x2954 <LIBFC_HoTT_Clear>
cade: 83 e0 ldi r24, 0x03 ; 3
cae0: cb c5 rjmp .+2966 ; 0xd678 <HoTT_Menu+0x1dc0>
cae2: 11 30 cpi r17, 0x01 ; 1
cae4: 09 f0 breq .+2 ; 0xcae8 <HoTT_Menu+0x1230>
cae6: cc c5 rjmp .+2968 ; 0xd680 <HoTT_Menu+0x1dc8>
cae8: 0e 94 aa 14 call 0x2954 ; 0x2954 <LIBFC_HoTT_Clear>
caec: 10 93 74 04 sts 0x0474, r17
caf0: c5 c5 rjmp .+2954 ; 0xd67c <HoTT_Menu+0x1dc4>
caf2: 42 30 cpi r20, 0x02 ; 2
caf4: c1 f1 breq .+112 ; 0xcb66 <HoTT_Menu+0x12ae>
caf6: 28 f4 brcc .+10 ; 0xcb02 <HoTT_Menu+0x124a>
caf8: 44 23 and r20, r20
cafa: 39 f0 breq .+14 ; 0xcb0a <HoTT_Menu+0x1252>
cafc: 41 30 cpi r20, 0x01 ; 1
cafe: d9 f0 breq .+54 ; 0xcb36 <HoTT_Menu+0x127e>
cb00: c2 c5 rjmp .+2948 ; 0xd686 <HoTT_Menu+0x1dce>
cb02: 46 30 cpi r20, 0x06 ; 6
cb04: 08 f4 brcc .+2 ; 0xcb08 <HoTT_Menu+0x1250>
cb06: 6b c0 rjmp .+214 ; 0xcbde <HoTT_Menu+0x1326>
cb08: be c5 rjmp .+2940 ; 0xd686 <HoTT_Menu+0x1dce>
cb0a: 80 e0 ldi r24, 0x00 ; 0
cb0c: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cb10: 86 e2 ldi r24, 0x26 ; 38
cb12: 96 e0 ldi r25, 0x06 ; 6
cb14: 9f 93 push r25
cb16: 8f 93 push r24
cb18: 0b e7 ldi r16, 0x7B ; 123
cb1a: 14 e1 ldi r17, 0x14 ; 20
cb1c: 1f 93 push r17
cb1e: 0f 93 push r16
cb20: e0 91 55 06 lds r30, 0x0655
cb24: f0 91 56 06 lds r31, 0x0656
cb28: 09 95 icall
cb2a: 85 e1 ldi r24, 0x15 ; 21
cb2c: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cb30: 81 e1 ldi r24, 0x11 ; 17
cb32: 96 e0 ldi r25, 0x06 ; 6
cb34: 4d c1 rjmp .+666 ; 0xcdd0 <HoTT_Menu+0x1518>
cb36: 80 91 8a 04 lds r24, 0x048A
cb3a: 88 23 and r24, r24
cb3c: 71 f0 breq .+28 ; 0xcb5a <HoTT_Menu+0x12a2>
cb3e: 8e e7 ldi r24, 0x7E ; 126
cb40: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cb44: 80 91 8a 04 lds r24, 0x048A
cb48: 1f 92 push r1
cb4a: 8f 93 push r24
cb4c: 80 91 8b 04 lds r24, 0x048B
cb50: 1f 92 push r1
cb52: 8f 93 push r24
cb54: 8f ef ldi r24, 0xFF ; 255
cb56: 95 e0 ldi r25, 0x05 ; 5
cb58: 35 c8 rjmp .-3990 ; 0xbbc4 <HoTT_Menu+0x30c>
cb5a: 8e e7 ldi r24, 0x7E ; 126
cb5c: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cb60: 8c ee ldi r24, 0xEC ; 236
cb62: 95 e0 ldi r25, 0x05 ; 5
cb64: b2 c3 rjmp .+1892 ; 0xd2ca <HoTT_Menu+0x1a12>
cb66: 83 e9 ldi r24, 0x93 ; 147
cb68: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cb6c: 80 91 1a 01 lds r24, 0x011A
cb70: 90 91 1b 01 lds r25, 0x011B
cb74: e0 91 1a 01 lds r30, 0x011A
cb78: f0 91 1b 01 lds r31, 0x011B
cb7c: 2a e0 ldi r18, 0x0A ; 10
cb7e: 30 e0 ldi r19, 0x00 ; 0
cb80: b9 01 movw r22, r18
cb82: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
cb86: 9f 93 push r25
cb88: 8f 93 push r24
cb8a: cf 01 movw r24, r30
cb8c: b9 01 movw r22, r18
cb8e: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
cb92: 7f 93 push r23
cb94: 6f 93 push r22
cb96: 82 ee ldi r24, 0xE2 ; 226
cb98: 95 e0 ldi r25, 0x05 ; 5
cb9a: 9f 93 push r25
cb9c: 8f 93 push r24
cb9e: 0b e7 ldi r16, 0x7B ; 123
cba0: 14 e1 ldi r17, 0x14 ; 20
cba2: 1f 93 push r17
cba4: 0f 93 push r16
cba6: e0 91 55 06 lds r30, 0x0655
cbaa: f0 91 56 06 lds r31, 0x0656
cbae: 09 95 icall
cbb0: 8e e9 ldi r24, 0x9E ; 158
cbb2: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cbb6: 8f ea ldi r24, 0xAF ; 175
cbb8: 96 e0 ldi r25, 0x06 ; 6
cbba: 9f 93 push r25
cbbc: 8f 93 push r24
cbbe: 8f ed ldi r24, 0xDF ; 223
cbc0: 95 e0 ldi r25, 0x05 ; 5
cbc2: 9f 93 push r25
cbc4: 8f 93 push r24
cbc6: 1f 93 push r17
cbc8: 0f 93 push r16
cbca: e0 91 55 06 lds r30, 0x0655
cbce: f0 91 56 06 lds r31, 0x0656
cbd2: 09 95 icall
cbd4: 0f b6 in r0, 0x3f ; 63
cbd6: f8 94 cli
cbd8: de bf out 0x3e, r29 ; 62
cbda: 0f be out 0x3f, r0 ; 63
cbdc: cd bf out 0x3d, r28 ; 61
cbde: 80 91 56 01 lds r24, 0x0156
cbe2: 88 23 and r24, r24
cbe4: e9 f1 breq .+122 ; 0xcc60 <HoTT_Menu+0x13a8>
cbe6: 80 91 6f 04 lds r24, 0x046F
cbea: 88 23 and r24, r24
cbec: c9 f0 breq .+50 ; 0xcc20 <HoTT_Menu+0x1368>
cbee: 80 91 ed 02 lds r24, 0x02ED
cbf2: 88 23 and r24, r24
cbf4: a9 f0 breq .+42 ; 0xcc20 <HoTT_Menu+0x1368>
cbf6: 89 e4 ldi r24, 0x49 ; 73
cbf8: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cbfc: 8b ed ldi r24, 0xDB ; 219
cbfe: 95 e0 ldi r25, 0x05 ; 5
cc00: 9f 93 push r25
cc02: 8f 93 push r24
cc04: 8b e7 ldi r24, 0x7B ; 123
cc06: 94 e1 ldi r25, 0x14 ; 20
cc08: 9f 93 push r25
cc0a: 8f 93 push r24
cc0c: e0 91 55 06 lds r30, 0x0655
cc10: f0 91 56 06 lds r31, 0x0656
cc14: 09 95 icall
cc16: 0f 90 pop r0
cc18: 0f 90 pop r0
cc1a: 0f 90 pop r0
cc1c: 0f 90 pop r0
cc1e: 1a c0 rjmp .+52 ; 0xcc54 <HoTT_Menu+0x139c>
cc20: 89 e4 ldi r24, 0x49 ; 73
cc22: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cc26: 80 91 56 01 lds r24, 0x0156
cc2a: 1f 92 push r1
cc2c: 8f 93 push r24
cc2e: 84 ed ldi r24, 0xD4 ; 212
cc30: 95 e0 ldi r25, 0x05 ; 5
cc32: 9f 93 push r25
cc34: 8f 93 push r24
cc36: 8b e7 ldi r24, 0x7B ; 123
cc38: 94 e1 ldi r25, 0x14 ; 20
cc3a: 9f 93 push r25
cc3c: 8f 93 push r24
cc3e: e0 91 55 06 lds r30, 0x0655
cc42: f0 91 56 06 lds r31, 0x0656
cc46: 09 95 icall
cc48: 0f 90 pop r0
cc4a: 0f 90 pop r0
cc4c: 0f 90 pop r0
cc4e: 0f 90 pop r0
cc50: 0f 90 pop r0
cc52: 0f 90 pop r0
cc54: 8f e3 ldi r24, 0x3F ; 63
cc56: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cc5a: 89 ec ldi r24, 0xC9 ; 201
cc5c: 95 e0 ldi r25, 0x05 ; 5
cc5e: 05 c0 rjmp .+10 ; 0xcc6a <HoTT_Menu+0x13b2>
cc60: 8f e3 ldi r24, 0x3F ; 63
cc62: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cc66: 8a eb ldi r24, 0xBA ; 186
cc68: 95 e0 ldi r25, 0x05 ; 5
cc6a: 9f 93 push r25
cc6c: 8f 93 push r24
cc6e: 8b e7 ldi r24, 0x7B ; 123
cc70: 94 e1 ldi r25, 0x14 ; 20
cc72: 9f 93 push r25
cc74: 8f 93 push r24
cc76: e0 91 55 06 lds r30, 0x0655
cc7a: f0 91 56 06 lds r31, 0x0656
cc7e: 09 95 icall
cc80: 0f 90 pop r0
cc82: 0f 90 pop r0
cc84: 0f 90 pop r0
cc86: 0f 90 pop r0
cc88: 80 91 87 04 lds r24, 0x0487
cc8c: 81 11 cpse r24, r1
cc8e: 06 c0 rjmp .+12 ; 0xcc9c <HoTT_Menu+0x13e4>
cc90: 84 e5 ldi r24, 0x54 ; 84
cc92: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cc96: 8c ea ldi r24, 0xAC ; 172
cc98: 95 e0 ldi r25, 0x05 ; 5
cc9a: 39 c0 rjmp .+114 ; 0xcd0e <HoTT_Menu+0x1456>
cc9c: 80 91 b6 08 lds r24, 0x08B6
cca0: 83 30 cpi r24, 0x03 ; 3
cca2: 81 f5 brne .+96 ; 0xcd04 <HoTT_Menu+0x144c>
cca4: 80 91 6f 04 lds r24, 0x046F
cca8: 88 23 and r24, r24
ccaa: 51 f0 breq .+20 ; 0xccc0 <HoTT_Menu+0x1408>
ccac: 80 91 56 01 lds r24, 0x0156
ccb0: 88 23 and r24, r24
ccb2: 31 f0 breq .+12 ; 0xccc0 <HoTT_Menu+0x1408>
ccb4: 84 e5 ldi r24, 0x54 ; 84
ccb6: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
ccba: 8e e9 ldi r24, 0x9E ; 158
ccbc: 95 e0 ldi r25, 0x05 ; 5
ccbe: 05 c0 rjmp .+10 ; 0xccca <HoTT_Menu+0x1412>
ccc0: 84 e5 ldi r24, 0x54 ; 84
ccc2: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
ccc6: 80 e9 ldi r24, 0x90 ; 144
ccc8: 95 e0 ldi r25, 0x05 ; 5
ccca: 9f 93 push r25
cccc: 8f 93 push r24
ccce: 8b e7 ldi r24, 0x7B ; 123
ccd0: 94 e1 ldi r25, 0x14 ; 20
ccd2: 9f 93 push r25
ccd4: 8f 93 push r24
ccd6: e0 91 55 06 lds r30, 0x0655
ccda: f0 91 56 06 lds r31, 0x0656
ccde: 09 95 icall
cce0: 0f 90 pop r0
cce2: 0f 90 pop r0
cce4: 0f 90 pop r0
cce6: 0f 90 pop r0
cce8: 80 91 86 0c lds r24, 0x0C86
ccec: 86 30 cpi r24, 0x06 ; 6
ccee: f1 f4 brne .+60 ; 0xcd2c <HoTT_Menu+0x1474>
ccf0: 80 91 56 01 lds r24, 0x0156
ccf4: 88 23 and r24, r24
ccf6: 19 f0 breq .+6 ; 0xccfe <HoTT_Menu+0x1446>
ccf8: 80 68 ori r24, 0x80 ; 128
ccfa: 80 93 88 04 sts 0x0488, r24
ccfe: 10 92 6f 04 sts 0x046F, r1
cd02: 14 c0 rjmp .+40 ; 0xcd2c <HoTT_Menu+0x1474>
cd04: 84 e5 ldi r24, 0x54 ; 84
cd06: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cd0a: 82 e8 ldi r24, 0x82 ; 130
cd0c: 95 e0 ldi r25, 0x05 ; 5
cd0e: 9f 93 push r25
cd10: 8f 93 push r24
cd12: 8b e7 ldi r24, 0x7B ; 123
cd14: 94 e1 ldi r25, 0x14 ; 20
cd16: 9f 93 push r25
cd18: 8f 93 push r24
cd1a: e0 91 55 06 lds r30, 0x0655
cd1e: f0 91 56 06 lds r31, 0x0656
cd22: 09 95 icall
cd24: 0f 90 pop r0
cd26: 0f 90 pop r0
cd28: 0f 90 pop r0
cd2a: 0f 90 pop r0
cd2c: 80 91 86 0c lds r24, 0x0C86
cd30: 84 30 cpi r24, 0x04 ; 4
cd32: 59 f4 brne .+22 ; 0xcd4a <HoTT_Menu+0x1492>
cd34: 80 91 56 01 lds r24, 0x0156
cd38: 90 91 87 04 lds r25, 0x0487
cd3c: 89 17 cp r24, r25
cd3e: e8 f4 brcc .+58 ; 0xcd7a <HoTT_Menu+0x14c2>
cd40: 91 e0 ldi r25, 0x01 ; 1
cd42: 90 93 6f 04 sts 0x046F, r25
cd46: 8f 5f subi r24, 0xFF ; 255
cd48: 0a c0 rjmp .+20 ; 0xcd5e <HoTT_Menu+0x14a6>
cd4a: 82 30 cpi r24, 0x02 ; 2
cd4c: 69 f4 brne .+26 ; 0xcd68 <HoTT_Menu+0x14b0>
cd4e: 80 91 56 01 lds r24, 0x0156
cd52: 82 30 cpi r24, 0x02 ; 2
cd54: 90 f0 brcs .+36 ; 0xcd7a <HoTT_Menu+0x14c2>
cd56: 91 e0 ldi r25, 0x01 ; 1
cd58: 90 93 6f 04 sts 0x046F, r25
cd5c: 81 50 subi r24, 0x01 ; 1
cd5e: 80 93 56 01 sts 0x0156, r24
cd62: 10 92 ed 02 sts 0x02ED, r1
cd66: 09 c0 rjmp .+18 ; 0xcd7a <HoTT_Menu+0x14c2>
cd68: 88 30 cpi r24, 0x08 ; 8
cd6a: 39 f4 brne .+14 ; 0xcd7a <HoTT_Menu+0x14c2>
cd6c: 0e 94 aa 14 call 0x2954 ; 0x2954 <LIBFC_HoTT_Clear>
cd70: 84 e0 ldi r24, 0x04 ; 4
cd72: 80 93 74 04 sts 0x0474, r24
cd76: 10 92 73 04 sts 0x0473, r1
cd7a: 80 91 86 0c lds r24, 0x0C86
cd7e: 81 30 cpi r24, 0x01 ; 1
cd80: 09 f0 breq .+2 ; 0xcd84 <HoTT_Menu+0x14cc>
cd82: 7e c4 rjmp .+2300 ; 0xd680 <HoTT_Menu+0x1dc8>
cd84: 0e 94 aa 14 call 0x2954 ; 0x2954 <LIBFC_HoTT_Clear>
cd88: 82 e0 ldi r24, 0x02 ; 2
cd8a: 76 c4 rjmp .+2284 ; 0xd678 <HoTT_Menu+0x1dc0>
cd8c: 42 30 cpi r20, 0x02 ; 2
cd8e: 09 f4 brne .+2 ; 0xcd92 <HoTT_Menu+0x14da>
cd90: 43 c0 rjmp .+134 ; 0xce18 <HoTT_Menu+0x1560>
cd92: 28 f4 brcc .+10 ; 0xcd9e <HoTT_Menu+0x14e6>
cd94: 44 23 and r20, r20
cd96: 39 f0 breq .+14 ; 0xcda6 <HoTT_Menu+0x14ee>
cd98: 41 30 cpi r20, 0x01 ; 1
cd9a: 29 f1 breq .+74 ; 0xcde6 <HoTT_Menu+0x152e>
cd9c: 74 c4 rjmp .+2280 ; 0xd686 <HoTT_Menu+0x1dce>
cd9e: 46 30 cpi r20, 0x06 ; 6
cda0: 08 f4 brcc .+2 ; 0xcda4 <HoTT_Menu+0x14ec>
cda2: 76 c0 rjmp .+236 ; 0xce90 <HoTT_Menu+0x15d8>
cda4: 70 c4 rjmp .+2272 ; 0xd686 <HoTT_Menu+0x1dce>
cda6: 80 e0 ldi r24, 0x00 ; 0
cda8: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cdac: 83 e7 ldi r24, 0x73 ; 115
cdae: 95 e0 ldi r25, 0x05 ; 5
cdb0: 9f 93 push r25
cdb2: 8f 93 push r24
cdb4: 0b e7 ldi r16, 0x7B ; 123
cdb6: 14 e1 ldi r17, 0x14 ; 20
cdb8: 1f 93 push r17
cdba: 0f 93 push r16
cdbc: e0 91 55 06 lds r30, 0x0655
cdc0: f0 91 56 06 lds r31, 0x0656
cdc4: 09 95 icall
cdc6: 85 e1 ldi r24, 0x15 ; 21
cdc8: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cdcc: 81 e6 ldi r24, 0x61 ; 97
cdce: 95 e0 ldi r25, 0x05 ; 5
cdd0: 9f 93 push r25
cdd2: 8f 93 push r24
cdd4: 1f 93 push r17
cdd6: 0f 93 push r16
cdd8: e0 91 55 06 lds r30, 0x0655
cddc: f0 91 56 06 lds r31, 0x0656
cde0: 09 95 icall
cde2: 0c 94 ed 5d jmp 0xbbda ; 0xbbda <HoTT_Menu+0x322>
cde6: 80 91 8a 04 lds r24, 0x048A
cdea: 88 23 and r24, r24
cdec: 79 f0 breq .+30 ; 0xce0c <HoTT_Menu+0x1554>
cdee: 8e e7 ldi r24, 0x7E ; 126
cdf0: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cdf4: 80 91 8a 04 lds r24, 0x048A
cdf8: 1f 92 push r1
cdfa: 8f 93 push r24
cdfc: 80 91 8b 04 lds r24, 0x048B
ce00: 1f 92 push r1
ce02: 8f 93 push r24
ce04: 8f e4 ldi r24, 0x4F ; 79
ce06: 95 e0 ldi r25, 0x05 ; 5
ce08: 0c 94 e2 5d jmp 0xbbc4 ; 0xbbc4 <HoTT_Menu+0x30c>
ce0c: 8e e7 ldi r24, 0x7E ; 126
ce0e: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
ce12: 8d e3 ldi r24, 0x3D ; 61
ce14: 95 e0 ldi r25, 0x05 ; 5
ce16: 59 c2 rjmp .+1202 ; 0xd2ca <HoTT_Menu+0x1a12>
ce18: 83 e9 ldi r24, 0x93 ; 147
ce1a: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
ce1e: 80 91 1a 01 lds r24, 0x011A
ce22: 90 91 1b 01 lds r25, 0x011B
ce26: e0 91 1a 01 lds r30, 0x011A
ce2a: f0 91 1b 01 lds r31, 0x011B
ce2e: 2a e0 ldi r18, 0x0A ; 10
ce30: 30 e0 ldi r19, 0x00 ; 0
ce32: b9 01 movw r22, r18
ce34: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
ce38: 9f 93 push r25
ce3a: 8f 93 push r24
ce3c: cf 01 movw r24, r30
ce3e: b9 01 movw r22, r18
ce40: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
ce44: 7f 93 push r23
ce46: 6f 93 push r22
ce48: 83 e3 ldi r24, 0x33 ; 51
ce4a: 95 e0 ldi r25, 0x05 ; 5
ce4c: 9f 93 push r25
ce4e: 8f 93 push r24
ce50: 0b e7 ldi r16, 0x7B ; 123
ce52: 14 e1 ldi r17, 0x14 ; 20
ce54: 1f 93 push r17
ce56: 0f 93 push r16
ce58: e0 91 55 06 lds r30, 0x0655
ce5c: f0 91 56 06 lds r31, 0x0656
ce60: 09 95 icall
ce62: 8e e9 ldi r24, 0x9E ; 158
ce64: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
ce68: 8f ea ldi r24, 0xAF ; 175
ce6a: 96 e0 ldi r25, 0x06 ; 6
ce6c: 9f 93 push r25
ce6e: 8f 93 push r24
ce70: 80 e3 ldi r24, 0x30 ; 48
ce72: 95 e0 ldi r25, 0x05 ; 5
ce74: 9f 93 push r25
ce76: 8f 93 push r24
ce78: 1f 93 push r17
ce7a: 0f 93 push r16
ce7c: e0 91 55 06 lds r30, 0x0655
ce80: f0 91 56 06 lds r31, 0x0656
ce84: 09 95 icall
ce86: 0f b6 in r0, 0x3f ; 63
ce88: f8 94 cli
ce8a: de bf out 0x3e, r29 ; 62
ce8c: 0f be out 0x3f, r0 ; 63
ce8e: cd bf out 0x3d, r28 ; 61
ce90: 8f e3 ldi r24, 0x3F ; 63
ce92: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
ce96: 85 e2 ldi r24, 0x25 ; 37
ce98: 95 e0 ldi r25, 0x05 ; 5
ce9a: 9f 93 push r25
ce9c: 8f 93 push r24
ce9e: 0b e7 ldi r16, 0x7B ; 123
cea0: 14 e1 ldi r17, 0x14 ; 20
cea2: 1f 93 push r17
cea4: 0f 93 push r16
cea6: e0 91 55 06 lds r30, 0x0655
ceaa: f0 91 56 06 lds r31, 0x0656
ceae: 09 95 icall
ceb0: 0f 90 pop r0
ceb2: 0f 90 pop r0
ceb4: 0f 90 pop r0
ceb6: 0f 90 pop r0
ceb8: 80 91 55 01 lds r24, 0x0155
cebc: 88 23 and r24, r24
cebe: 49 f1 breq .+82 ; 0xcf12 <HoTT_Menu+0x165a>
cec0: 80 91 6e 04 lds r24, 0x046E
cec4: 88 23 and r24, r24
cec6: 51 f0 breq .+20 ; 0xcedc <HoTT_Menu+0x1624>
cec8: 80 91 ed 02 lds r24, 0x02ED
cecc: 88 23 and r24, r24
cece: 31 f0 breq .+12 ; 0xcedc <HoTT_Menu+0x1624>
ced0: 89 e4 ldi r24, 0x49 ; 73
ced2: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
ced6: 81 e2 ldi r24, 0x21 ; 33
ced8: 95 e0 ldi r25, 0x05 ; 5
ceda: 20 c0 rjmp .+64 ; 0xcf1c <HoTT_Menu+0x1664>
cedc: 89 e4 ldi r24, 0x49 ; 73
cede: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cee2: 80 91 55 01 lds r24, 0x0155
cee6: 1f 92 push r1
cee8: 8f 93 push r24
ceea: 87 e1 ldi r24, 0x17 ; 23
ceec: 95 e0 ldi r25, 0x05 ; 5
ceee: 9f 93 push r25
cef0: 8f 93 push r24
cef2: 8b e7 ldi r24, 0x7B ; 123
cef4: 94 e1 ldi r25, 0x14 ; 20
cef6: 9f 93 push r25
cef8: 8f 93 push r24
cefa: e0 91 55 06 lds r30, 0x0655
cefe: f0 91 56 06 lds r31, 0x0656
cf02: 09 95 icall
cf04: 0f 90 pop r0
cf06: 0f 90 pop r0
cf08: 0f 90 pop r0
cf0a: 0f 90 pop r0
cf0c: 0f 90 pop r0
cf0e: 0f 90 pop r0
cf10: 12 c0 rjmp .+36 ; 0xcf36 <HoTT_Menu+0x167e>
cf12: 89 e4 ldi r24, 0x49 ; 73
cf14: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cf18: 83 e1 ldi r24, 0x13 ; 19
cf1a: 95 e0 ldi r25, 0x05 ; 5
cf1c: 9f 93 push r25
cf1e: 8f 93 push r24
cf20: 1f 93 push r17
cf22: 0f 93 push r16
cf24: e0 91 55 06 lds r30, 0x0655
cf28: f0 91 56 06 lds r31, 0x0656
cf2c: 09 95 icall
cf2e: 0f 90 pop r0
cf30: 0f 90 pop r0
cf32: 0f 90 pop r0
cf34: 0f 90 pop r0
cf36: 80 91 87 04 lds r24, 0x0487
cf3a: 81 11 cpse r24, r1
cf3c: 06 c0 rjmp .+12 ; 0xcf4a <HoTT_Menu+0x1692>
cf3e: 84 e5 ldi r24, 0x54 ; 84
cf40: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cf44: 85 e0 ldi r24, 0x05 ; 5
cf46: 95 e0 ldi r25, 0x05 ; 5
cf48: 13 c0 rjmp .+38 ; 0xcf70 <HoTT_Menu+0x16b8>
cf4a: 80 91 6e 04 lds r24, 0x046E
cf4e: 88 23 and r24, r24
cf50: 51 f0 breq .+20 ; 0xcf66 <HoTT_Menu+0x16ae>
cf52: 80 91 55 01 lds r24, 0x0155
cf56: 88 23 and r24, r24
cf58: 31 f0 breq .+12 ; 0xcf66 <HoTT_Menu+0x16ae>
cf5a: 84 e5 ldi r24, 0x54 ; 84
cf5c: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cf60: 87 ef ldi r24, 0xF7 ; 247
cf62: 94 e0 ldi r25, 0x04 ; 4
cf64: 05 c0 rjmp .+10 ; 0xcf70 <HoTT_Menu+0x16b8>
cf66: 84 e5 ldi r24, 0x54 ; 84
cf68: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cf6c: 89 ee ldi r24, 0xE9 ; 233
cf6e: 94 e0 ldi r25, 0x04 ; 4
cf70: 9f 93 push r25
cf72: 8f 93 push r24
cf74: 8b e7 ldi r24, 0x7B ; 123
cf76: 94 e1 ldi r25, 0x14 ; 20
cf78: 9f 93 push r25
cf7a: 8f 93 push r24
cf7c: e0 91 55 06 lds r30, 0x0655
cf80: f0 91 56 06 lds r31, 0x0656
cf84: 09 95 icall
cf86: 0f 90 pop r0
cf88: 0f 90 pop r0
cf8a: 0f 90 pop r0
cf8c: 0f 90 pop r0
cf8e: 80 91 86 0c lds r24, 0x0C86
cf92: 84 30 cpi r24, 0x04 ; 4
cf94: 61 f4 brne .+24 ; 0xcfae <HoTT_Menu+0x16f6>
cf96: 80 91 55 01 lds r24, 0x0155
cf9a: 90 91 87 04 lds r25, 0x0487
cf9e: 89 17 cp r24, r25
cfa0: 08 f0 brcs .+2 ; 0xcfa4 <HoTT_Menu+0x16ec>
cfa2: 7e c1 rjmp .+764 ; 0xd2a0 <HoTT_Menu+0x19e8>
cfa4: 91 e0 ldi r25, 0x01 ; 1
cfa6: 90 93 6e 04 sts 0x046E, r25
cfaa: 8f 5f subi r24, 0xFF ; 255
cfac: 0b c0 rjmp .+22 ; 0xcfc4 <HoTT_Menu+0x170c>
cfae: 82 30 cpi r24, 0x02 ; 2
cfb0: 61 f4 brne .+24 ; 0xcfca <HoTT_Menu+0x1712>
cfb2: 80 91 55 01 lds r24, 0x0155
cfb6: 82 30 cpi r24, 0x02 ; 2
cfb8: 08 f4 brcc .+2 ; 0xcfbc <HoTT_Menu+0x1704>
cfba: 72 c1 rjmp .+740 ; 0xd2a0 <HoTT_Menu+0x19e8>
cfbc: 91 e0 ldi r25, 0x01 ; 1
cfbe: 90 93 6e 04 sts 0x046E, r25
cfc2: 81 50 subi r24, 0x01 ; 1
cfc4: 80 93 55 01 sts 0x0155, r24
cfc8: 5d c1 rjmp .+698 ; 0xd284 <HoTT_Menu+0x19cc>
cfca: 86 30 cpi r24, 0x06 ; 6
cfcc: 09 f0 breq .+2 ; 0xcfd0 <HoTT_Menu+0x1718>
cfce: 5d c1 rjmp .+698 ; 0xd28a <HoTT_Menu+0x19d2>
cfd0: 80 91 55 01 lds r24, 0x0155
cfd4: 81 11 cpse r24, r1
cfd6: 80 93 88 04 sts 0x0488, r24
cfda: 10 92 6e 04 sts 0x046E, r1
cfde: 60 c1 rjmp .+704 ; 0xd2a0 <HoTT_Menu+0x19e8>
cfe0: 42 30 cpi r20, 0x02 ; 2
cfe2: 09 f4 brne .+2 ; 0xcfe6 <HoTT_Menu+0x172e>
cfe4: 4e c0 rjmp .+156 ; 0xd082 <HoTT_Menu+0x17ca>
cfe6: 08 f0 brcs .+2 ; 0xcfea <HoTT_Menu+0x1732>
cfe8: 42 c0 rjmp .+132 ; 0xd06e <HoTT_Menu+0x17b6>
cfea: 44 23 and r20, r20
cfec: 09 f4 brne .+2 ; 0xcff0 <HoTT_Menu+0x1738>
cfee: 43 c0 rjmp .+134 ; 0xd076 <HoTT_Menu+0x17be>
cff0: 41 30 cpi r20, 0x01 ; 1
cff2: 09 f0 breq .+2 ; 0xcff6 <HoTT_Menu+0x173e>
cff4: 48 c3 rjmp .+1680 ; 0xd686 <HoTT_Menu+0x1dce>
cff6: 8a e2 ldi r24, 0x2A ; 42
cff8: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
cffc: 80 91 1a 01 lds r24, 0x011A
d000: 90 91 1b 01 lds r25, 0x011B
d004: e0 91 1a 01 lds r30, 0x011A
d008: f0 91 1b 01 lds r31, 0x011B
d00c: 2a e0 ldi r18, 0x0A ; 10
d00e: 30 e0 ldi r19, 0x00 ; 0
d010: b9 01 movw r22, r18
d012: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
d016: 9f 93 push r25
d018: 8f 93 push r24
d01a: cf 01 movw r24, r30
d01c: b9 01 movw r22, r18
d01e: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
d022: 7f 93 push r23
d024: 6f 93 push r22
d026: 88 ec ldi r24, 0xC8 ; 200
d028: 94 e0 ldi r25, 0x04 ; 4
d02a: 9f 93 push r25
d02c: 8f 93 push r24
d02e: 0b e7 ldi r16, 0x7B ; 123
d030: 14 e1 ldi r17, 0x14 ; 20
d032: 1f 93 push r17
d034: 0f 93 push r16
d036: e0 91 55 06 lds r30, 0x0655
d03a: f0 91 56 06 lds r31, 0x0656
d03e: 09 95 icall
d040: 8f e3 ldi r24, 0x3F ; 63
d042: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d046: 80 91 5c 04 lds r24, 0x045C
d04a: 90 91 5d 04 lds r25, 0x045D
d04e: 6c e3 ldi r22, 0x3C ; 60
d050: 70 e0 ldi r23, 0x00 ; 0
d052: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
d056: 9f 93 push r25
d058: 8f 93 push r24
d05a: 7f 93 push r23
d05c: 6f 93 push r22
d05e: 8d eb ldi r24, 0xBD ; 189
d060: 94 e0 ldi r25, 0x04 ; 4
d062: 9f 93 push r25
d064: 8f 93 push r24
d066: 1f 93 push r17
d068: 0f 93 push r16
d06a: 0c 94 e8 5d jmp 0xbbd0 ; 0xbbd0 <HoTT_Menu+0x318>
d06e: 46 30 cpi r20, 0x06 ; 6
d070: 08 f4 brcc .+2 ; 0xd074 <HoTT_Menu+0x17bc>
d072: 4c c0 rjmp .+152 ; 0xd10c <HoTT_Menu+0x1854>
d074: 08 c3 rjmp .+1552 ; 0xd686 <HoTT_Menu+0x1dce>
d076: 80 e0 ldi r24, 0x00 ; 0
d078: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d07c: 83 ed ldi r24, 0xD3 ; 211
d07e: 94 e0 ldi r25, 0x04 ; 4
d080: 24 c1 rjmp .+584 ; 0xd2ca <HoTT_Menu+0x1a12>
d082: 85 e3 ldi r24, 0x35 ; 53
d084: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d088: 60 91 fc 03 lds r22, 0x03FC
d08c: 70 91 fd 03 lds r23, 0x03FD
d090: 80 91 fe 03 lds r24, 0x03FE
d094: 90 91 ff 03 lds r25, 0x03FF
d098: 24 e6 ldi r18, 0x64 ; 100
d09a: 30 e0 ldi r19, 0x00 ; 0
d09c: 40 e0 ldi r20, 0x00 ; 0
d09e: 50 e0 ldi r21, 0x00 ; 0
d0a0: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
d0a4: 3f 93 push r19
d0a6: 2f 93 push r18
d0a8: 84 eb ldi r24, 0xB4 ; 180
d0aa: 94 e0 ldi r25, 0x04 ; 4
d0ac: 9f 93 push r25
d0ae: 8f 93 push r24
d0b0: 0b e7 ldi r16, 0x7B ; 123
d0b2: 14 e1 ldi r17, 0x14 ; 20
d0b4: 1f 93 push r17
d0b6: 0f 93 push r16
d0b8: e0 91 55 06 lds r30, 0x0655
d0bc: f0 91 56 06 lds r31, 0x0656
d0c0: 09 95 icall
d0c2: 8a e4 ldi r24, 0x4A ; 74
d0c4: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d0c8: 1f 92 push r1
d0ca: 80 e6 ldi r24, 0x60 ; 96
d0cc: 8f 93 push r24
d0ce: 80 91 43 06 lds r24, 0x0643
d0d2: 8f 93 push r24
d0d4: 80 91 42 06 lds r24, 0x0642
d0d8: 8f 93 push r24
d0da: 89 ea ldi r24, 0xA9 ; 169
d0dc: 94 e0 ldi r25, 0x04 ; 4
d0de: 9f 93 push r25
d0e0: 8f 93 push r24
d0e2: 1f 93 push r17
d0e4: 0f 93 push r16
d0e6: e0 91 55 06 lds r30, 0x0655
d0ea: f0 91 56 06 lds r31, 0x0656
d0ee: 09 95 icall
d0f0: 8f e5 ldi r24, 0x5F ; 95
d0f2: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d0f6: 80 91 2f 01 lds r24, 0x012F
d0fa: 1f 92 push r1
d0fc: 8f 93 push r24
d0fe: 80 ea ldi r24, 0xA0 ; 160
d100: 94 e0 ldi r25, 0x04 ; 4
d102: 9f 93 push r25
d104: 8f 93 push r24
d106: 1f 93 push r17
d108: 0f 93 push r16
d10a: d8 c1 rjmp .+944 ; 0xd4bc <HoTT_Menu+0x1c04>
d10c: 8e e7 ldi r24, 0x7E ; 126
d10e: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d112: 83 e9 ldi r24, 0x93 ; 147
d114: 94 e0 ldi r25, 0x04 ; 4
d116: 9f 93 push r25
d118: 8f 93 push r24
d11a: 0b e7 ldi r16, 0x7B ; 123
d11c: 14 e1 ldi r17, 0x14 ; 20
d11e: 1f 93 push r17
d120: 0f 93 push r16
d122: e0 91 55 06 lds r30, 0x0655
d126: f0 91 56 06 lds r31, 0x0656
d12a: 09 95 icall
d12c: 0f 90 pop r0
d12e: 0f 90 pop r0
d130: 0f 90 pop r0
d132: 0f 90 pop r0
d134: 80 91 6d 04 lds r24, 0x046D
d138: 88 23 and r24, r24
d13a: 49 f1 breq .+82 ; 0xd18e <HoTT_Menu+0x18d6>
d13c: 80 91 6c 04 lds r24, 0x046C
d140: 88 23 and r24, r24
d142: 51 f0 breq .+20 ; 0xd158 <HoTT_Menu+0x18a0>
d144: 80 91 ed 02 lds r24, 0x02ED
d148: 88 23 and r24, r24
d14a: 31 f0 breq .+12 ; 0xd158 <HoTT_Menu+0x18a0>
d14c: 8b e8 ldi r24, 0x8B ; 139
d14e: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d152: 8f e8 ldi r24, 0x8F ; 143
d154: 94 e0 ldi r25, 0x04 ; 4
d156: 20 c0 rjmp .+64 ; 0xd198 <HoTT_Menu+0x18e0>
d158: 8b e8 ldi r24, 0x8B ; 139
d15a: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d15e: 80 91 6d 04 lds r24, 0x046D
d162: 1f 92 push r1
d164: 8f 93 push r24
d166: 8a e8 ldi r24, 0x8A ; 138
d168: 94 e0 ldi r25, 0x04 ; 4
d16a: 9f 93 push r25
d16c: 8f 93 push r24
d16e: 8b e7 ldi r24, 0x7B ; 123
d170: 94 e1 ldi r25, 0x14 ; 20
d172: 9f 93 push r25
d174: 8f 93 push r24
d176: e0 91 55 06 lds r30, 0x0655
d17a: f0 91 56 06 lds r31, 0x0656
d17e: 09 95 icall
d180: 0f 90 pop r0
d182: 0f 90 pop r0
d184: 0f 90 pop r0
d186: 0f 90 pop r0
d188: 0f 90 pop r0
d18a: 0f 90 pop r0
d18c: 12 c0 rjmp .+36 ; 0xd1b2 <HoTT_Menu+0x18fa>
d18e: 8b e8 ldi r24, 0x8B ; 139
d190: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d194: 87 e8 ldi r24, 0x87 ; 135
d196: 94 e0 ldi r25, 0x04 ; 4
d198: 9f 93 push r25
d19a: 8f 93 push r24
d19c: 1f 93 push r17
d19e: 0f 93 push r16
d1a0: e0 91 55 06 lds r30, 0x0655
d1a4: f0 91 56 06 lds r31, 0x0656
d1a8: 09 95 icall
d1aa: 0f 90 pop r0
d1ac: 0f 90 pop r0
d1ae: 0f 90 pop r0
d1b0: 0f 90 pop r0
d1b2: 80 91 b6 08 lds r24, 0x08B6
d1b6: 83 30 cpi r24, 0x03 ; 3
d1b8: b1 f5 brne .+108 ; 0xd226 <HoTT_Menu+0x196e>
d1ba: 80 91 87 04 lds r24, 0x0487
d1be: 81 11 cpse r24, r1
d1c0: 06 c0 rjmp .+12 ; 0xd1ce <HoTT_Menu+0x1916>
d1c2: 83 e9 ldi r24, 0x93 ; 147
d1c4: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d1c8: 89 e7 ldi r24, 0x79 ; 121
d1ca: 94 e0 ldi r25, 0x04 ; 4
d1cc: 0d c0 rjmp .+26 ; 0xd1e8 <HoTT_Menu+0x1930>
d1ce: 80 91 6c 04 lds r24, 0x046C
d1d2: 88 23 and r24, r24
d1d4: c9 f0 breq .+50 ; 0xd208 <HoTT_Menu+0x1950>
d1d6: 80 91 6d 04 lds r24, 0x046D
d1da: 88 23 and r24, r24
d1dc: a9 f0 breq .+42 ; 0xd208 <HoTT_Menu+0x1950>
d1de: 83 e9 ldi r24, 0x93 ; 147
d1e0: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d1e4: 8a e6 ldi r24, 0x6A ; 106
d1e6: 94 e0 ldi r25, 0x04 ; 4
d1e8: 9f 93 push r25
d1ea: 8f 93 push r24
d1ec: 8b e7 ldi r24, 0x7B ; 123
d1ee: 94 e1 ldi r25, 0x14 ; 20
d1f0: 9f 93 push r25
d1f2: 8f 93 push r24
d1f4: e0 91 55 06 lds r30, 0x0655
d1f8: f0 91 56 06 lds r31, 0x0656
d1fc: 09 95 icall
d1fe: 0f 90 pop r0
d200: 0f 90 pop r0
d202: 0f 90 pop r0
d204: 0f 90 pop r0
d206: 03 c0 rjmp .+6 ; 0xd20e <HoTT_Menu+0x1956>
d208: 87 e0 ldi r24, 0x07 ; 7
d20a: 0e 94 ed 57 call 0xafda ; 0xafda <Hott_ClearLine>
d20e: 80 91 86 0c lds r24, 0x0C86
d212: 86 30 cpi r24, 0x06 ; 6
d214: e1 f4 brne .+56 ; 0xd24e <HoTT_Menu+0x1996>
d216: 80 91 6d 04 lds r24, 0x046D
d21a: 81 11 cpse r24, r1
d21c: 80 93 85 04 sts 0x0485, r24
d220: 10 92 6c 04 sts 0x046C, r1
d224: 14 c0 rjmp .+40 ; 0xd24e <HoTT_Menu+0x1996>
d226: 83 e9 ldi r24, 0x93 ; 147
d228: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d22c: 8c e5 ldi r24, 0x5C ; 92
d22e: 94 e0 ldi r25, 0x04 ; 4
d230: 9f 93 push r25
d232: 8f 93 push r24
d234: 8b e7 ldi r24, 0x7B ; 123
d236: 94 e1 ldi r25, 0x14 ; 20
d238: 9f 93 push r25
d23a: 8f 93 push r24
d23c: e0 91 55 06 lds r30, 0x0655
d240: f0 91 56 06 lds r31, 0x0656
d244: 09 95 icall
d246: 0f 90 pop r0
d248: 0f 90 pop r0
d24a: 0f 90 pop r0
d24c: 0f 90 pop r0
d24e: 80 91 86 0c lds r24, 0x0C86
d252: 84 30 cpi r24, 0x04 ; 4
d254: 59 f4 brne .+22 ; 0xd26c <HoTT_Menu+0x19b4>
d256: 80 91 6d 04 lds r24, 0x046D
d25a: 90 91 87 04 lds r25, 0x0487
d25e: 89 17 cp r24, r25
d260: f8 f4 brcc .+62 ; 0xd2a0 <HoTT_Menu+0x19e8>
d262: 91 e0 ldi r25, 0x01 ; 1
d264: 90 93 6c 04 sts 0x046C, r25
d268: 8f 5f subi r24, 0xFF ; 255
d26a: 0a c0 rjmp .+20 ; 0xd280 <HoTT_Menu+0x19c8>
d26c: 82 30 cpi r24, 0x02 ; 2
d26e: 69 f4 brne .+26 ; 0xd28a <HoTT_Menu+0x19d2>
d270: 80 91 6d 04 lds r24, 0x046D
d274: 82 30 cpi r24, 0x02 ; 2
d276: a0 f0 brcs .+40 ; 0xd2a0 <HoTT_Menu+0x19e8>
d278: 91 e0 ldi r25, 0x01 ; 1
d27a: 90 93 6c 04 sts 0x046C, r25
d27e: 81 50 subi r24, 0x01 ; 1
d280: 80 93 6d 04 sts 0x046D, r24
d284: 10 92 ed 02 sts 0x02ED, r1
d288: 0b c0 rjmp .+22 ; 0xd2a0 <HoTT_Menu+0x19e8>
d28a: 88 30 cpi r24, 0x08 ; 8
d28c: 49 f4 brne .+18 ; 0xd2a0 <HoTT_Menu+0x19e8>
d28e: 0e 94 aa 14 call 0x2954 ; 0x2954 <LIBFC_HoTT_Clear>
d292: 80 91 74 04 lds r24, 0x0474
d296: 8f 5f subi r24, 0xFF ; 255
d298: 80 93 74 04 sts 0x0474, r24
d29c: 10 92 73 04 sts 0x0473, r1
d2a0: 80 91 86 0c lds r24, 0x0C86
d2a4: e2 c1 rjmp .+964 ; 0xd66a <HoTT_Menu+0x1db2>
d2a6: 42 30 cpi r20, 0x02 ; 2
d2a8: 09 f4 brne .+2 ; 0xd2ac <HoTT_Menu+0x19f4>
d2aa: 81 c0 rjmp .+258 ; 0xd3ae <HoTT_Menu+0x1af6>
d2ac: 28 f4 brcc .+10 ; 0xd2b8 <HoTT_Menu+0x1a00>
d2ae: 44 23 and r20, r20
d2b0: 39 f0 breq .+14 ; 0xd2c0 <HoTT_Menu+0x1a08>
d2b2: 41 30 cpi r20, 0x01 ; 1
d2b4: d1 f0 breq .+52 ; 0xd2ea <HoTT_Menu+0x1a32>
d2b6: e7 c1 rjmp .+974 ; 0xd686 <HoTT_Menu+0x1dce>
d2b8: 46 30 cpi r20, 0x06 ; 6
d2ba: 08 f4 brcc .+2 ; 0xd2be <HoTT_Menu+0x1a06>
d2bc: 06 c1 rjmp .+524 ; 0xd4ca <HoTT_Menu+0x1c12>
d2be: e3 c1 rjmp .+966 ; 0xd686 <HoTT_Menu+0x1dce>
d2c0: 80 e0 ldi r24, 0x00 ; 0
d2c2: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d2c6: 87 e4 ldi r24, 0x47 ; 71
d2c8: 94 e0 ldi r25, 0x04 ; 4
d2ca: 9f 93 push r25
d2cc: 8f 93 push r24
d2ce: 8b e7 ldi r24, 0x7B ; 123
d2d0: 94 e1 ldi r25, 0x14 ; 20
d2d2: 9f 93 push r25
d2d4: 8f 93 push r24
d2d6: e0 91 55 06 lds r30, 0x0655
d2da: f0 91 56 06 lds r31, 0x0656
d2de: 09 95 icall
d2e0: 0f 90 pop r0
d2e2: 0f 90 pop r0
d2e4: 0f 90 pop r0
d2e6: 0f 90 pop r0
d2e8: d3 c1 rjmp .+934 ; 0xd690 <HoTT_Menu+0x1dd8>
d2ea: 8a e2 ldi r24, 0x2A ; 42
d2ec: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d2f0: 80 91 1a 01 lds r24, 0x011A
d2f4: 90 91 1b 01 lds r25, 0x011B
d2f8: e0 91 1a 01 lds r30, 0x011A
d2fc: f0 91 1b 01 lds r31, 0x011B
d300: 2a e0 ldi r18, 0x0A ; 10
d302: 30 e0 ldi r19, 0x00 ; 0
d304: b9 01 movw r22, r18
d306: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
d30a: 9f 93 push r25
d30c: 8f 93 push r24
d30e: cf 01 movw r24, r30
d310: b9 01 movw r22, r18
d312: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
d316: 7f 93 push r23
d318: 6f 93 push r22
d31a: 8c e3 ldi r24, 0x3C ; 60
d31c: 94 e0 ldi r25, 0x04 ; 4
d31e: 9f 93 push r25
d320: 8f 93 push r24
d322: 0b e7 ldi r16, 0x7B ; 123
d324: 14 e1 ldi r17, 0x14 ; 20
d326: 1f 93 push r17
d328: 0f 93 push r16
d32a: e0 91 55 06 lds r30, 0x0655
d32e: f0 91 56 06 lds r31, 0x0656
d332: 09 95 icall
d334: 8f e3 ldi r24, 0x3F ; 63
d336: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d33a: 80 91 5c 04 lds r24, 0x045C
d33e: 90 91 5d 04 lds r25, 0x045D
d342: 6c e3 ldi r22, 0x3C ; 60
d344: 70 e0 ldi r23, 0x00 ; 0
d346: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
d34a: 9f 93 push r25
d34c: 8f 93 push r24
d34e: 7f 93 push r23
d350: 6f 93 push r22
d352: 81 e3 ldi r24, 0x31 ; 49
d354: 94 e0 ldi r25, 0x04 ; 4
d356: 9f 93 push r25
d358: 8f 93 push r24
d35a: 1f 93 push r17
d35c: 0f 93 push r16
d35e: e0 91 55 06 lds r30, 0x0655
d362: f0 91 56 06 lds r31, 0x0656
d366: 09 95 icall
d368: 0f b6 in r0, 0x3f ; 63
d36a: f8 94 cli
d36c: de bf out 0x3e, r29 ; 62
d36e: 0f be out 0x3f, r0 ; 63
d370: cd bf out 0x3d, r28 ; 61
d372: 80 91 8a 04 lds r24, 0x048A
d376: 88 23 and r24, r24
d378: 11 f4 brne .+4 ; 0xd37e <HoTT_Menu+0x1ac6>
d37a: 0c 94 04 5f jmp 0xbe08 ; 0xbe08 <HoTT_Menu+0x550>
d37e: 89 e6 ldi r24, 0x69 ; 105
d380: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d384: 80 91 84 04 lds r24, 0x0484
d388: 8f 93 push r24
d38a: 80 91 83 04 lds r24, 0x0483
d38e: 8f 93 push r24
d390: 80 91 8a 04 lds r24, 0x048A
d394: 1f 92 push r1
d396: 8f 93 push r24
d398: 80 91 8b 04 lds r24, 0x048B
d39c: 1f 92 push r1
d39e: 8f 93 push r24
d3a0: 8c e1 ldi r24, 0x1C ; 28
d3a2: 94 e0 ldi r25, 0x04 ; 4
d3a4: 9f 93 push r25
d3a6: 8f 93 push r24
d3a8: 1f 93 push r17
d3aa: 0f 93 push r16
d3ac: 27 cb rjmp .-2482 ; 0xc9fc <HoTT_Menu+0x1144>
d3ae: 80 91 f1 03 lds r24, 0x03F1
d3b2: 88 23 and r24, r24
d3b4: b9 f1 breq .+110 ; 0xd424 <HoTT_Menu+0x1b6c>
d3b6: 82 e3 ldi r24, 0x32 ; 50
d3b8: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d3bc: 60 91 f2 03 lds r22, 0x03F2
d3c0: 70 91 f3 03 lds r23, 0x03F3
d3c4: 80 91 f4 03 lds r24, 0x03F4
d3c8: 90 91 f5 03 lds r25, 0x03F5
d3cc: b4 e6 ldi r27, 0x64 ; 100
d3ce: cb 2e mov r12, r27
d3d0: d1 2c mov r13, r1
d3d2: e1 2c mov r14, r1
d3d4: f1 2c mov r15, r1
d3d6: a7 01 movw r20, r14
d3d8: 96 01 movw r18, r12
d3da: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
d3de: 3f 93 push r19
d3e0: 2f 93 push r18
d3e2: 60 91 fc 03 lds r22, 0x03FC
d3e6: 70 91 fd 03 lds r23, 0x03FD
d3ea: 80 91 fe 03 lds r24, 0x03FE
d3ee: 90 91 ff 03 lds r25, 0x03FF
d3f2: a7 01 movw r20, r14
d3f4: 96 01 movw r18, r12
d3f6: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
d3fa: 3f 93 push r19
d3fc: 2f 93 push r18
d3fe: 8f e0 ldi r24, 0x0F ; 15
d400: 94 e0 ldi r25, 0x04 ; 4
d402: 9f 93 push r25
d404: 8f 93 push r24
d406: 8b e7 ldi r24, 0x7B ; 123
d408: 94 e1 ldi r25, 0x14 ; 20
d40a: 9f 93 push r25
d40c: 8f 93 push r24
d40e: e0 91 55 06 lds r30, 0x0655
d412: f0 91 56 06 lds r31, 0x0656
d416: 09 95 icall
d418: 0f b6 in r0, 0x3f ; 63
d41a: f8 94 cli
d41c: de bf out 0x3e, r29 ; 62
d41e: 0f be out 0x3f, r0 ; 63
d420: cd bf out 0x3d, r28 ; 61
d422: 26 c0 rjmp .+76 ; 0xd470 <HoTT_Menu+0x1bb8>
d424: 82 e3 ldi r24, 0x32 ; 50
d426: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d42a: 60 91 fc 03 lds r22, 0x03FC
d42e: 70 91 fd 03 lds r23, 0x03FD
d432: 80 91 fe 03 lds r24, 0x03FE
d436: 90 91 ff 03 lds r25, 0x03FF
d43a: 24 e6 ldi r18, 0x64 ; 100
d43c: 30 e0 ldi r19, 0x00 ; 0
d43e: 40 e0 ldi r20, 0x00 ; 0
d440: 50 e0 ldi r21, 0x00 ; 0
d442: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
d446: 3f 93 push r19
d448: 2f 93 push r18
d44a: 82 e0 ldi r24, 0x02 ; 2
d44c: 94 e0 ldi r25, 0x04 ; 4
d44e: 9f 93 push r25
d450: 8f 93 push r24
d452: 8b e7 ldi r24, 0x7B ; 123
d454: 94 e1 ldi r25, 0x14 ; 20
d456: 9f 93 push r25
d458: 8f 93 push r24
d45a: e0 91 55 06 lds r30, 0x0655
d45e: f0 91 56 06 lds r31, 0x0656
d462: 09 95 icall
d464: 0f 90 pop r0
d466: 0f 90 pop r0
d468: 0f 90 pop r0
d46a: 0f 90 pop r0
d46c: 0f 90 pop r0
d46e: 0f 90 pop r0
d470: 87 e4 ldi r24, 0x47 ; 71
d472: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d476: 1f 92 push r1
d478: 80 e6 ldi r24, 0x60 ; 96
d47a: 8f 93 push r24
d47c: 80 91 43 06 lds r24, 0x0643
d480: 8f 93 push r24
d482: 80 91 42 06 lds r24, 0x0642
d486: 8f 93 push r24
d488: 87 ef ldi r24, 0xF7 ; 247
d48a: 93 e0 ldi r25, 0x03 ; 3
d48c: 9f 93 push r25
d48e: 8f 93 push r24
d490: 0b e7 ldi r16, 0x7B ; 123
d492: 14 e1 ldi r17, 0x14 ; 20
d494: 1f 93 push r17
d496: 0f 93 push r16
d498: e0 91 55 06 lds r30, 0x0655
d49c: f0 91 56 06 lds r31, 0x0656
d4a0: 09 95 icall
d4a2: 8c e5 ldi r24, 0x5C ; 92
d4a4: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d4a8: 80 91 2f 01 lds r24, 0x012F
d4ac: 1f 92 push r1
d4ae: 8f 93 push r24
d4b0: 8e ee ldi r24, 0xEE ; 238
d4b2: 93 e0 ldi r25, 0x03 ; 3
d4b4: 9f 93 push r25
d4b6: 8f 93 push r24
d4b8: 1f 93 push r17
d4ba: 0f 93 push r16
d4bc: e0 91 55 06 lds r30, 0x0655
d4c0: f0 91 56 06 lds r31, 0x0656
d4c4: 09 95 icall
d4c6: 0c 94 ed 5d jmp 0xbbda ; 0xbbda <HoTT_Menu+0x322>
d4ca: 80 91 86 0c lds r24, 0x0C86
d4ce: 88 23 and r24, r24
d4d0: 49 f0 breq .+18 ; 0xd4e4 <HoTT_Menu+0x1c2c>
d4d2: 80 91 47 0c lds r24, 0x0C47
d4d6: 90 91 48 0c lds r25, 0x0C48
d4da: 01 96 adiw r24, 0x01 ; 1
d4dc: 90 93 48 0c sts 0x0C48, r25
d4e0: 80 93 47 0c sts 0x0C47, r24
d4e4: 8e e7 ldi r24, 0x7E ; 126
d4e6: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d4ea: 82 ee ldi r24, 0xE2 ; 226
d4ec: 93 e0 ldi r25, 0x03 ; 3
d4ee: 9f 93 push r25
d4f0: 8f 93 push r24
d4f2: 0b e7 ldi r16, 0x7B ; 123
d4f4: 14 e1 ldi r17, 0x14 ; 20
d4f6: 1f 93 push r17
d4f8: 0f 93 push r16
d4fa: e0 91 55 06 lds r30, 0x0655
d4fe: f0 91 56 06 lds r31, 0x0656
d502: 09 95 icall
d504: 0f 90 pop r0
d506: 0f 90 pop r0
d508: 0f 90 pop r0
d50a: 0f 90 pop r0
d50c: 80 91 6b 04 lds r24, 0x046B
d510: 88 23 and r24, r24
d512: 49 f1 breq .+82 ; 0xd566 <HoTT_Menu+0x1cae>
d514: 80 91 6a 04 lds r24, 0x046A
d518: 88 23 and r24, r24
d51a: 51 f0 breq .+20 ; 0xd530 <HoTT_Menu+0x1c78>
d51c: 80 91 ed 02 lds r24, 0x02ED
d520: 88 23 and r24, r24
d522: 31 f0 breq .+12 ; 0xd530 <HoTT_Menu+0x1c78>
d524: 89 e8 ldi r24, 0x89 ; 137
d526: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d52a: 8e ed ldi r24, 0xDE ; 222
d52c: 93 e0 ldi r25, 0x03 ; 3
d52e: 20 c0 rjmp .+64 ; 0xd570 <HoTT_Menu+0x1cb8>
d530: 89 e8 ldi r24, 0x89 ; 137
d532: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d536: 80 91 6b 04 lds r24, 0x046B
d53a: 1f 92 push r1
d53c: 8f 93 push r24
d53e: 8a ed ldi r24, 0xDA ; 218
d540: 93 e0 ldi r25, 0x03 ; 3
d542: 9f 93 push r25
d544: 8f 93 push r24
d546: 8b e7 ldi r24, 0x7B ; 123
d548: 94 e1 ldi r25, 0x14 ; 20
d54a: 9f 93 push r25
d54c: 8f 93 push r24
d54e: e0 91 55 06 lds r30, 0x0655
d552: f0 91 56 06 lds r31, 0x0656
d556: 09 95 icall
d558: 0f 90 pop r0
d55a: 0f 90 pop r0
d55c: 0f 90 pop r0
d55e: 0f 90 pop r0
d560: 0f 90 pop r0
d562: 0f 90 pop r0
d564: 12 c0 rjmp .+36 ; 0xd58a <HoTT_Menu+0x1cd2>
d566: 89 e8 ldi r24, 0x89 ; 137
d568: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d56c: 87 ed ldi r24, 0xD7 ; 215
d56e: 93 e0 ldi r25, 0x03 ; 3
d570: 9f 93 push r25
d572: 8f 93 push r24
d574: 1f 93 push r17
d576: 0f 93 push r16
d578: e0 91 55 06 lds r30, 0x0655
d57c: f0 91 56 06 lds r31, 0x0656
d580: 09 95 icall
d582: 0f 90 pop r0
d584: 0f 90 pop r0
d586: 0f 90 pop r0
d588: 0f 90 pop r0
d58a: 80 91 87 04 lds r24, 0x0487
d58e: 81 11 cpse r24, r1
d590: 06 c0 rjmp .+12 ; 0xd59e <HoTT_Menu+0x1ce6>
d592: 83 e9 ldi r24, 0x93 ; 147
d594: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d598: 89 ec ldi r24, 0xC9 ; 201
d59a: 93 e0 ldi r25, 0x03 ; 3
d59c: 0d c0 rjmp .+26 ; 0xd5b8 <HoTT_Menu+0x1d00>
d59e: 80 91 6a 04 lds r24, 0x046A
d5a2: 88 23 and r24, r24
d5a4: c9 f0 breq .+50 ; 0xd5d8 <HoTT_Menu+0x1d20>
d5a6: 80 91 6b 04 lds r24, 0x046B
d5aa: 88 23 and r24, r24
d5ac: a9 f0 breq .+42 ; 0xd5d8 <HoTT_Menu+0x1d20>
d5ae: 83 e9 ldi r24, 0x93 ; 147
d5b0: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d5b4: 8b eb ldi r24, 0xBB ; 187
d5b6: 93 e0 ldi r25, 0x03 ; 3
d5b8: 9f 93 push r25
d5ba: 8f 93 push r24
d5bc: 8b e7 ldi r24, 0x7B ; 123
d5be: 94 e1 ldi r25, 0x14 ; 20
d5c0: 9f 93 push r25
d5c2: 8f 93 push r24
d5c4: e0 91 55 06 lds r30, 0x0655
d5c8: f0 91 56 06 lds r31, 0x0656
d5cc: 09 95 icall
d5ce: 0f 90 pop r0
d5d0: 0f 90 pop r0
d5d2: 0f 90 pop r0
d5d4: 0f 90 pop r0
d5d6: 21 c0 rjmp .+66 ; 0xd61a <HoTT_Menu+0x1d62>
d5d8: 87 e0 ldi r24, 0x07 ; 7
d5da: 0e 94 ed 57 call 0xafda ; 0xafda <Hott_ClearLine>
d5de: 80 91 8a 04 lds r24, 0x048A
d5e2: 88 23 and r24, r24
d5e4: d1 f0 breq .+52 ; 0xd61a <HoTT_Menu+0x1d62>
d5e6: 83 e9 ldi r24, 0x93 ; 147
d5e8: 0e 94 a5 14 call 0x294a ; 0x294a <LIBFC_HoTT_SetPos>
d5ec: 8f ea ldi r24, 0xAF ; 175
d5ee: 96 e0 ldi r25, 0x06 ; 6
d5f0: 9f 93 push r25
d5f2: 8f 93 push r24
d5f4: 88 eb ldi r24, 0xB8 ; 184
d5f6: 93 e0 ldi r25, 0x03 ; 3
d5f8: 9f 93 push r25
d5fa: 8f 93 push r24
d5fc: 8b e7 ldi r24, 0x7B ; 123
d5fe: 94 e1 ldi r25, 0x14 ; 20
d600: 9f 93 push r25
d602: 8f 93 push r24
d604: e0 91 55 06 lds r30, 0x0655
d608: f0 91 56 06 lds r31, 0x0656
d60c: 09 95 icall
d60e: 0f 90 pop r0
d610: 0f 90 pop r0
d612: 0f 90 pop r0
d614: 0f 90 pop r0
d616: 0f 90 pop r0
d618: 0f 90 pop r0
d61a: 80 91 86 0c lds r24, 0x0C86
d61e: 84 30 cpi r24, 0x04 ; 4
d620: 59 f4 brne .+22 ; 0xd638 <HoTT_Menu+0x1d80>
d622: 80 91 6b 04 lds r24, 0x046B
d626: 90 91 87 04 lds r25, 0x0487
d62a: 89 17 cp r24, r25
d62c: 48 f5 brcc .+82 ; 0xd680 <HoTT_Menu+0x1dc8>
d62e: 91 e0 ldi r25, 0x01 ; 1
d630: 90 93 6a 04 sts 0x046A, r25
d634: 8f 5f subi r24, 0xFF ; 255
d636: 0a c0 rjmp .+20 ; 0xd64c <HoTT_Menu+0x1d94>
d638: 82 30 cpi r24, 0x02 ; 2
d63a: 69 f4 brne .+26 ; 0xd656 <HoTT_Menu+0x1d9e>
d63c: 80 91 6b 04 lds r24, 0x046B
d640: 82 30 cpi r24, 0x02 ; 2
d642: f0 f0 brcs .+60 ; 0xd680 <HoTT_Menu+0x1dc8>
d644: 91 e0 ldi r25, 0x01 ; 1
d646: 90 93 6a 04 sts 0x046A, r25
d64a: 81 50 subi r24, 0x01 ; 1
d64c: 80 93 6b 04 sts 0x046B, r24
d650: 10 92 ed 02 sts 0x02ED, r1
d654: 15 c0 rjmp .+42 ; 0xd680 <HoTT_Menu+0x1dc8>
d656: 86 30 cpi r24, 0x06 ; 6
d658: 41 f4 brne .+16 ; 0xd66a <HoTT_Menu+0x1db2>
d65a: 80 91 6b 04 lds r24, 0x046B
d65e: 81 11 cpse r24, r1
d660: 80 93 86 04 sts 0x0486, r24
d664: 10 92 6a 04 sts 0x046A, r1
d668: 0b c0 rjmp .+22 ; 0xd680 <HoTT_Menu+0x1dc8>
d66a: 81 30 cpi r24, 0x01 ; 1
d66c: 49 f4 brne .+18 ; 0xd680 <HoTT_Menu+0x1dc8>
d66e: 0e 94 aa 14 call 0x2954 ; 0x2954 <LIBFC_HoTT_Clear>
d672: 80 91 74 04 lds r24, 0x0474
d676: 81 50 subi r24, 0x01 ; 1
d678: 80 93 74 04 sts 0x0474, r24
d67c: 10 92 73 04 sts 0x0473, r1
d680: 10 92 86 0c sts 0x0C86, r1
d684: 05 c0 rjmp .+10 ; 0xd690 <HoTT_Menu+0x1dd8>
d686: 10 92 73 04 sts 0x0473, r1
d68a: 02 c0 rjmp .+4 ; 0xd690 <HoTT_Menu+0x1dd8>
d68c: 10 92 74 04 sts 0x0474, r1
d690: 0f 90 pop r0
d692: 0f 90 pop r0
d694: 0f 90 pop r0
d696: 0f 90 pop r0
d698: df 91 pop r29
d69a: cf 91 pop r28
d69c: 1f 91 pop r17
d69e: 0f 91 pop r16
d6a0: ff 90 pop r15
d6a2: ef 90 pop r14
d6a4: df 90 pop r13
d6a6: cf 90 pop r12
d6a8: bf 90 pop r11
d6aa: af 90 pop r10
d6ac: 9f 90 pop r9
d6ae: 8f 90 pop r8
d6b0: 7f 90 pop r7
d6b2: 6f 90 pop r6
d6b4: 5f 90 pop r5
d6b6: 4f 90 pop r4
d6b8: 3f 90 pop r3
d6ba: 2f 90 pop r2
d6bc: 08 95 ret
 
0000d6be <Menu_Temperature>:
d6be: cf 93 push r28
d6c0: df 93 push r29
d6c2: 80 e0 ldi r24, 0x00 ; 0
d6c4: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
d6c8: 80 91 a8 09 lds r24, 0x09A8
d6cc: 1f 92 push r1
d6ce: 8f 93 push r24
d6d0: 80 91 99 09 lds r24, 0x0999
d6d4: 1f 92 push r1
d6d6: 8f 93 push r24
d6d8: 80 91 8a 09 lds r24, 0x098A
d6dc: 1f 92 push r1
d6de: 8f 93 push r24
d6e0: 80 91 7b 09 lds r24, 0x097B
d6e4: 1f 92 push r1
d6e6: 8f 93 push r24
d6e8: 8c e6 ldi r24, 0x6C ; 108
d6ea: 9f e0 ldi r25, 0x0F ; 15
d6ec: 9f 93 push r25
d6ee: 8f 93 push r24
d6f0: ce ed ldi r28, 0xDE ; 222
d6f2: de e0 ldi r29, 0x0E ; 14
d6f4: df 93 push r29
d6f6: cf 93 push r28
d6f8: e0 91 55 06 lds r30, 0x0655
d6fc: f0 91 56 06 lds r31, 0x0656
d700: 09 95 icall
d702: 80 e1 ldi r24, 0x10 ; 16
d704: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
d708: 80 91 e4 09 lds r24, 0x09E4
d70c: 1f 92 push r1
d70e: 8f 93 push r24
d710: 80 91 d5 09 lds r24, 0x09D5
d714: 1f 92 push r1
d716: 8f 93 push r24
d718: 80 91 c6 09 lds r24, 0x09C6
d71c: 1f 92 push r1
d71e: 8f 93 push r24
d720: 80 91 b7 09 lds r24, 0x09B7
d724: 1f 92 push r1
d726: 8f 93 push r24
d728: 8c e5 ldi r24, 0x5C ; 92
d72a: 9f e0 ldi r25, 0x0F ; 15
d72c: 9f 93 push r25
d72e: 8f 93 push r24
d730: df 93 push r29
d732: cf 93 push r28
d734: e0 91 55 06 lds r30, 0x0655
d738: f0 91 56 06 lds r31, 0x0656
d73c: 09 95 icall
d73e: 80 91 1a 05 lds r24, 0x051A
d742: 2d b7 in r18, 0x3d ; 61
d744: 3e b7 in r19, 0x3e ; 62
d746: 28 5e subi r18, 0xE8 ; 232
d748: 3f 4f sbci r19, 0xFF ; 255
d74a: 0f b6 in r0, 0x3f ; 63
d74c: f8 94 cli
d74e: 3e bf out 0x3e, r19 ; 62
d750: 0f be out 0x3f, r0 ; 63
d752: 2d bf out 0x3d, r18 ; 61
d754: 85 30 cpi r24, 0x05 ; 5
d756: 98 f4 brcc .+38 ; 0xd77e <Menu_Temperature+0xc0>
d758: 80 e1 ldi r24, 0x10 ; 16
d75a: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
d75e: 8b e4 ldi r24, 0x4B ; 75
d760: 9f e0 ldi r25, 0x0F ; 15
d762: 9f 93 push r25
d764: 8f 93 push r24
d766: df 93 push r29
d768: cf 93 push r28
d76a: e0 91 55 06 lds r30, 0x0655
d76e: f0 91 56 06 lds r31, 0x0656
d772: 09 95 icall
d774: 0f 90 pop r0
d776: 0f 90 pop r0
d778: 0f 90 pop r0
d77a: 0f 90 pop r0
d77c: 19 c0 rjmp .+50 ; 0xd7b0 <Menu_Temperature+0xf2>
d77e: 87 30 cpi r24, 0x07 ; 7
d780: b8 f4 brcc .+46 ; 0xd7b0 <Menu_Temperature+0xf2>
d782: 88 e1 ldi r24, 0x18 ; 24
d784: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
d788: 1f 92 push r1
d78a: 8f ed ldi r24, 0xDF ; 223
d78c: 8f 93 push r24
d78e: 82 e4 ldi r24, 0x42 ; 66
d790: 9f e0 ldi r25, 0x0F ; 15
d792: 9f 93 push r25
d794: 8f 93 push r24
d796: df 93 push r29
d798: cf 93 push r28
d79a: e0 91 55 06 lds r30, 0x0655
d79e: f0 91 56 06 lds r31, 0x0656
d7a2: 09 95 icall
d7a4: 0f 90 pop r0
d7a6: 0f 90 pop r0
d7a8: 0f 90 pop r0
d7aa: 0f 90 pop r0
d7ac: 0f 90 pop r0
d7ae: 0f 90 pop r0
d7b0: df 91 pop r29
d7b2: cf 91 pop r28
d7b4: 08 95 ret
 
0000d7b6 <Menu_Battery>:
d7b6: cf 93 push r28
d7b8: df 93 push r29
d7ba: 80 e0 ldi r24, 0x00 ; 0
d7bc: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
d7c0: 80 91 13 05 lds r24, 0x0513
d7c4: 90 91 14 05 lds r25, 0x0514
d7c8: c0 91 1a 01 lds r28, 0x011A
d7cc: d0 91 1b 01 lds r29, 0x011B
d7d0: e0 91 1a 01 lds r30, 0x011A
d7d4: f0 91 1b 01 lds r31, 0x011B
d7d8: 2a e0 ldi r18, 0x0A ; 10
d7da: 30 e0 ldi r19, 0x00 ; 0
d7dc: b9 01 movw r22, r18
d7de: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
d7e2: 9f 93 push r25
d7e4: 8f 93 push r24
d7e6: 7f 93 push r23
d7e8: 6f 93 push r22
d7ea: ce 01 movw r24, r28
d7ec: b9 01 movw r22, r18
d7ee: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
d7f2: 9f 93 push r25
d7f4: 8f 93 push r24
d7f6: cf 01 movw r24, r30
d7f8: b9 01 movw r22, r18
d7fa: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
d7fe: 7f 93 push r23
d800: 6f 93 push r22
d802: 80 e3 ldi r24, 0x30 ; 48
d804: 9f e0 ldi r25, 0x0F ; 15
d806: 9f 93 push r25
d808: 8f 93 push r24
d80a: ce ed ldi r28, 0xDE ; 222
d80c: de e0 ldi r29, 0x0E ; 14
d80e: df 93 push r29
d810: cf 93 push r28
d812: e0 91 55 06 lds r30, 0x0655
d816: f0 91 56 06 lds r31, 0x0656
d81a: 09 95 icall
d81c: 80 e1 ldi r24, 0x10 ; 16
d81e: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
d822: e7 e1 ldi r30, 0x17 ; 23
d824: f5 e0 ldi r31, 0x05 ; 5
d826: 81 81 ldd r24, Z+1 ; 0x01
d828: 8f 93 push r24
d82a: 80 81 ld r24, Z
d82c: 8f 93 push r24
d82e: e5 e1 ldi r30, 0x15 ; 21
d830: f5 e0 ldi r31, 0x05 ; 5
d832: 81 81 ldd r24, Z+1 ; 0x01
d834: 8f 93 push r24
d836: 80 81 ld r24, Z
d838: 8f 93 push r24
d83a: 84 e2 ldi r24, 0x24 ; 36
d83c: 9f e0 ldi r25, 0x0F ; 15
d83e: 9f 93 push r25
d840: 8f 93 push r24
d842: df 93 push r29
d844: cf 93 push r28
d846: e0 91 55 06 lds r30, 0x0655
d84a: f0 91 56 06 lds r31, 0x0656
d84e: 09 95 icall
d850: 8d b7 in r24, 0x3d ; 61
d852: 9e b7 in r25, 0x3e ; 62
d854: 44 96 adiw r24, 0x14 ; 20
d856: 0f b6 in r0, 0x3f ; 63
d858: f8 94 cli
d85a: 9e bf out 0x3e, r25 ; 62
d85c: 0f be out 0x3f, r0 ; 63
d85e: 8d bf out 0x3d, r24 ; 61
d860: df 91 pop r29
d862: cf 91 pop r28
d864: 08 95 ret
 
0000d866 <Magnet_Values>:
d866: 1f 93 push r17
d868: cf 93 push r28
d86a: df 93 push r29
d86c: 80 e0 ldi r24, 0x00 ; 0
d86e: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
d872: 1f 92 push r1
d874: 1f ed ldi r17, 0xDF ; 223
d876: 1f 93 push r17
d878: 80 91 4f 01 lds r24, 0x014F
d87c: 8f 93 push r24
d87e: 80 91 4e 01 lds r24, 0x014E
d882: 8f 93 push r24
d884: 80 91 b8 04 lds r24, 0x04B8
d888: 1f 92 push r1
d88a: 8f 93 push r24
d88c: 81 e1 ldi r24, 0x11 ; 17
d88e: 9f e0 ldi r25, 0x0F ; 15
d890: 9f 93 push r25
d892: 8f 93 push r24
d894: ce ed ldi r28, 0xDE ; 222
d896: de e0 ldi r29, 0x0E ; 14
d898: df 93 push r29
d89a: cf 93 push r28
d89c: e0 91 55 06 lds r30, 0x0655
d8a0: f0 91 56 06 lds r31, 0x0656
d8a4: 09 95 icall
d8a6: 80 e1 ldi r24, 0x10 ; 16
d8a8: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
d8ac: 80 91 b6 04 lds r24, 0x04B6
d8b0: 1f 92 push r1
d8b2: 8f 93 push r24
d8b4: 1f 92 push r1
d8b6: 1f 93 push r17
d8b8: 80 91 b7 04 lds r24, 0x04B7
d8bc: 1f 92 push r1
d8be: 8f 93 push r24
d8c0: 8e ef ldi r24, 0xFE ; 254
d8c2: 9e e0 ldi r25, 0x0E ; 14
d8c4: 9f 93 push r25
d8c6: 8f 93 push r24
d8c8: df 93 push r29
d8ca: cf 93 push r28
d8cc: e0 91 55 06 lds r30, 0x0655
d8d0: f0 91 56 06 lds r31, 0x0656
d8d4: 09 95 icall
d8d6: 8d b7 in r24, 0x3d ; 61
d8d8: 9e b7 in r25, 0x3e ; 62
d8da: 44 96 adiw r24, 0x14 ; 20
d8dc: 0f b6 in r0, 0x3f ; 63
d8de: f8 94 cli
d8e0: 9e bf out 0x3e, r25 ; 62
d8e2: 0f be out 0x3f, r0 ; 63
d8e4: 8d bf out 0x3d, r24 ; 61
d8e6: df 91 pop r29
d8e8: cf 91 pop r28
d8ea: 1f 91 pop r17
d8ec: 08 95 ret
 
0000d8ee <Menu_WPL_A1>:
d8ee: cf 93 push r28
d8f0: df 93 push r29
d8f2: 80 e0 ldi r24, 0x00 ; 0
d8f4: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
d8f8: 8f ee ldi r24, 0xEF ; 239
d8fa: 9e e0 ldi r25, 0x0E ; 14
d8fc: 9f 93 push r25
d8fe: 8f 93 push r24
d900: ce ed ldi r28, 0xDE ; 222
d902: de e0 ldi r29, 0x0E ; 14
d904: df 93 push r29
d906: cf 93 push r28
d908: e0 91 55 06 lds r30, 0x0655
d90c: f0 91 56 06 lds r31, 0x0656
d910: 09 95 icall
d912: 80 e1 ldi r24, 0x10 ; 16
d914: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
d918: 81 ee ldi r24, 0xE1 ; 225
d91a: 9e e0 ldi r25, 0x0E ; 14
d91c: 9f 93 push r25
d91e: 8f 93 push r24
d920: df 93 push r29
d922: cf 93 push r28
d924: e0 91 55 06 lds r30, 0x0655
d928: f0 91 56 06 lds r31, 0x0656
d92c: 09 95 icall
d92e: 8d b7 in r24, 0x3d ; 61
d930: 9e b7 in r25, 0x3e ; 62
d932: 08 96 adiw r24, 0x08 ; 8
d934: 0f b6 in r0, 0x3f ; 63
d936: f8 94 cli
d938: 9e bf out 0x3e, r25 ; 62
d93a: 0f be out 0x3f, r0 ; 63
d93c: 8d bf out 0x3d, r24 ; 61
d93e: df 91 pop r29
d940: cf 91 pop r28
d942: 08 95 ret
 
0000d944 <Menu_WPL_R1>:
d944: cf 93 push r28
d946: df 93 push r29
d948: 80 e0 ldi r24, 0x00 ; 0
d94a: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
d94e: 82 ed ldi r24, 0xD2 ; 210
d950: 9e e0 ldi r25, 0x0E ; 14
d952: 9f 93 push r25
d954: 8f 93 push r24
d956: ce ed ldi r28, 0xDE ; 222
d958: de e0 ldi r29, 0x0E ; 14
d95a: df 93 push r29
d95c: cf 93 push r28
d95e: e0 91 55 06 lds r30, 0x0655
d962: f0 91 56 06 lds r31, 0x0656
d966: 09 95 icall
d968: 80 e1 ldi r24, 0x10 ; 16
d96a: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
d96e: 84 ec ldi r24, 0xC4 ; 196
d970: 9e e0 ldi r25, 0x0E ; 14
d972: 9f 93 push r25
d974: 8f 93 push r24
d976: df 93 push r29
d978: cf 93 push r28
d97a: e0 91 55 06 lds r30, 0x0655
d97e: f0 91 56 06 lds r31, 0x0656
d982: 09 95 icall
d984: 8d b7 in r24, 0x3d ; 61
d986: 9e b7 in r25, 0x3e ; 62
d988: 08 96 adiw r24, 0x08 ; 8
d98a: 0f b6 in r0, 0x3f ; 63
d98c: f8 94 cli
d98e: 9e bf out 0x3e, r25 ; 62
d990: 0f be out 0x3f, r0 ; 63
d992: 8d bf out 0x3d, r24 ; 61
d994: df 91 pop r29
d996: cf 91 pop r28
d998: 08 95 ret
 
0000d99a <Menu_POINT_LD>:
d99a: 80 e0 ldi r24, 0x00 ; 0
d99c: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
d9a0: 83 eb ldi r24, 0xB3 ; 179
d9a2: 9e e0 ldi r25, 0x0E ; 14
d9a4: 9f 93 push r25
d9a6: 8f 93 push r24
d9a8: 8e ed ldi r24, 0xDE ; 222
d9aa: 9e e0 ldi r25, 0x0E ; 14
d9ac: 9f 93 push r25
d9ae: 8f 93 push r24
d9b0: e0 91 55 06 lds r30, 0x0655
d9b4: f0 91 56 06 lds r31, 0x0656
d9b8: 09 95 icall
d9ba: 0f 90 pop r0
d9bc: 0f 90 pop r0
d9be: 0f 90 pop r0
d9c0: 0f 90 pop r0
d9c2: 08 95 ret
 
0000d9c4 <Menu_POINT_SV>:
d9c4: 80 e0 ldi r24, 0x00 ; 0
d9c6: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
d9ca: 82 ea ldi r24, 0xA2 ; 162
d9cc: 9e e0 ldi r25, 0x0E ; 14
d9ce: 9f 93 push r25
d9d0: 8f 93 push r24
d9d2: 8e ed ldi r24, 0xDE ; 222
d9d4: 9e e0 ldi r25, 0x0E ; 14
d9d6: 9f 93 push r25
d9d8: 8f 93 push r24
d9da: e0 91 55 06 lds r30, 0x0655
d9de: f0 91 56 06 lds r31, 0x0656
d9e2: 09 95 icall
d9e4: 0f 90 pop r0
d9e6: 0f 90 pop r0
d9e8: 0f 90 pop r0
d9ea: 0f 90 pop r0
d9ec: 08 95 ret
 
0000d9ee <Menu_WPL_R2>:
d9ee: 1f 93 push r17
d9f0: cf 93 push r28
d9f2: df 93 push r29
d9f4: 18 2f mov r17, r24
d9f6: cf ea ldi r28, 0xAF ; 175
d9f8: d6 e0 ldi r29, 0x06 ; 6
d9fa: 80 91 af 06 lds r24, 0x06AF
d9fe: 81 11 cpse r24, r1
da00: 14 c0 rjmp .+40 ; 0xda2a <Menu_WPL_R2+0x3c>
da02: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
da06: 87 ed ldi r24, 0xD7 ; 215
da08: 9d e0 ldi r25, 0x0D ; 13
da0a: 9f 93 push r25
da0c: 8f 93 push r24
da0e: 8e ed ldi r24, 0xDE ; 222
da10: 9e e0 ldi r25, 0x0E ; 14
da12: 9f 93 push r25
da14: 8f 93 push r24
da16: e0 91 55 06 lds r30, 0x0655
da1a: f0 91 56 06 lds r31, 0x0656
da1e: 09 95 icall
da20: 0f 90 pop r0
da22: 0f 90 pop r0
da24: 0f 90 pop r0
da26: 0f 90 pop r0
da28: 18 c0 rjmp .+48 ; 0xda5a <Menu_WPL_R2+0x6c>
da2a: 80 e0 ldi r24, 0x00 ; 0
da2c: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
da30: df 93 push r29
da32: cf 93 push r28
da34: 80 ed ldi r24, 0xD0 ; 208
da36: 9d e0 ldi r25, 0x0D ; 13
da38: 9f 93 push r25
da3a: 8f 93 push r24
da3c: 8e ed ldi r24, 0xDE ; 222
da3e: 9e e0 ldi r25, 0x0E ; 14
da40: 9f 93 push r25
da42: 8f 93 push r24
da44: e0 91 55 06 lds r30, 0x0655
da48: f0 91 56 06 lds r31, 0x0656
da4c: 09 95 icall
da4e: 0f 90 pop r0
da50: 0f 90 pop r0
da52: 0f 90 pop r0
da54: 0f 90 pop r0
da56: 0f 90 pop r0
da58: 0f 90 pop r0
da5a: 80 91 87 04 lds r24, 0x0487
da5e: 81 11 cpse r24, r1
da60: 06 c0 rjmp .+12 ; 0xda6e <Menu_WPL_R2+0x80>
da62: 80 e1 ldi r24, 0x10 ; 16
da64: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
da68: 85 ec ldi r24, 0xC5 ; 197
da6a: 9d e0 ldi r25, 0x0D ; 13
da6c: 09 c0 rjmp .+18 ; 0xda80 <Menu_WPL_R2+0x92>
da6e: 80 91 b6 08 lds r24, 0x08B6
da72: 83 30 cpi r24, 0x03 ; 3
da74: a9 f0 breq .+42 ; 0xdaa0 <Menu_WPL_R2+0xb2>
da76: 80 e1 ldi r24, 0x10 ; 16
da78: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
da7c: 8a eb ldi r24, 0xBA ; 186
da7e: 9d e0 ldi r25, 0x0D ; 13
da80: 9f 93 push r25
da82: 8f 93 push r24
da84: 8e ed ldi r24, 0xDE ; 222
da86: 9e e0 ldi r25, 0x0E ; 14
da88: 9f 93 push r25
da8a: 8f 93 push r24
da8c: e0 91 55 06 lds r30, 0x0655
da90: f0 91 56 06 lds r31, 0x0656
da94: 09 95 icall
da96: 0f 90 pop r0
da98: 0f 90 pop r0
da9a: 0f 90 pop r0
da9c: 0f 90 pop r0
da9e: 8f c0 rjmp .+286 ; 0xdbbe <Menu_WPL_R2+0x1d0>
daa0: 80 e1 ldi r24, 0x10 ; 16
daa2: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
daa6: 80 91 59 01 lds r24, 0x0159
daaa: 1f 92 push r1
daac: 8f 93 push r24
daae: 80 eb ldi r24, 0xB0 ; 176
dab0: 9d e0 ldi r25, 0x0D ; 13
dab2: 9f 93 push r25
dab4: 8f 93 push r24
dab6: ce ed ldi r28, 0xDE ; 222
dab8: de e0 ldi r29, 0x0E ; 14
daba: df 93 push r29
dabc: cf 93 push r28
dabe: e0 91 55 06 lds r30, 0x0655
dac2: f0 91 56 06 lds r31, 0x0656
dac6: 09 95 icall
dac8: 0f 90 pop r0
daca: 0f 90 pop r0
dacc: 0f 90 pop r0
dace: 0f 90 pop r0
dad0: 0f 90 pop r0
dad2: 0f 90 pop r0
dad4: 80 91 8a 04 lds r24, 0x048A
dad8: 88 23 and r24, r24
dada: f9 f0 breq .+62 ; 0xdb1a <Menu_WPL_R2+0x12c>
dadc: 88 e1 ldi r24, 0x18 ; 24
dade: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
dae2: 80 91 8a 04 lds r24, 0x048A
dae6: 1f 92 push r1
dae8: 8f 93 push r24
daea: 80 91 8b 04 lds r24, 0x048B
daee: 1f 92 push r1
daf0: 8f 93 push r24
daf2: 28 ea ldi r18, 0xA8 ; 168
daf4: 3d e0 ldi r19, 0x0D ; 13
daf6: 3f 93 push r19
daf8: 2f 93 push r18
dafa: df 93 push r29
dafc: cf 93 push r28
dafe: e0 91 55 06 lds r30, 0x0655
db02: f0 91 56 06 lds r31, 0x0656
db06: 09 95 icall
db08: 8d b7 in r24, 0x3d ; 61
db0a: 9e b7 in r25, 0x3e ; 62
db0c: 08 96 adiw r24, 0x08 ; 8
db0e: 0f b6 in r0, 0x3f ; 63
db10: f8 94 cli
db12: 9e bf out 0x3e, r25 ; 62
db14: 0f be out 0x3f, r0 ; 63
db16: 8d bf out 0x3d, r24 ; 61
db18: 12 c0 rjmp .+36 ; 0xdb3e <Menu_WPL_R2+0x150>
db1a: 88 e1 ldi r24, 0x18 ; 24
db1c: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
db20: 22 ea ldi r18, 0xA2 ; 162
db22: 3d e0 ldi r19, 0x0D ; 13
db24: 3f 93 push r19
db26: 2f 93 push r18
db28: df 93 push r29
db2a: cf 93 push r28
db2c: e0 91 55 06 lds r30, 0x0655
db30: f0 91 56 06 lds r31, 0x0656
db34: 09 95 icall
db36: 0f 90 pop r0
db38: 0f 90 pop r0
db3a: 0f 90 pop r0
db3c: 0f 90 pop r0
db3e: 80 91 8f 04 lds r24, 0x048F
db42: 88 23 and r24, r24
db44: 31 f0 breq .+12 ; 0xdb52 <Menu_WPL_R2+0x164>
db46: 8e e1 ldi r24, 0x1E ; 30
db48: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
db4c: 2f e9 ldi r18, 0x9F ; 159
db4e: 3d e0 ldi r19, 0x0D ; 13
db50: 05 c0 rjmp .+10 ; 0xdb5c <Menu_WPL_R2+0x16e>
db52: 8e e1 ldi r24, 0x1E ; 30
db54: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
db58: 2c e9 ldi r18, 0x9C ; 156
db5a: 3d e0 ldi r19, 0x0D ; 13
db5c: 3f 93 push r19
db5e: 2f 93 push r18
db60: 2e ed ldi r18, 0xDE ; 222
db62: 3e e0 ldi r19, 0x0E ; 14
db64: 3f 93 push r19
db66: 2f 93 push r18
db68: e0 91 55 06 lds r30, 0x0655
db6c: f0 91 56 06 lds r31, 0x0656
db70: 09 95 icall
db72: 0f 90 pop r0
db74: 0f 90 pop r0
db76: 0f 90 pop r0
db78: 0f 90 pop r0
db7a: 1f 32 cpi r17, 0x2F ; 47
db7c: 41 f4 brne .+16 ; 0xdb8e <Menu_WPL_R2+0x1a0>
db7e: 80 91 59 01 lds r24, 0x0159
db82: 90 91 87 04 lds r25, 0x0487
db86: 89 17 cp r24, r25
db88: d0 f4 brcc .+52 ; 0xdbbe <Menu_WPL_R2+0x1d0>
db8a: 8f 5f subi r24, 0xFF ; 255
db8c: 07 c0 rjmp .+14 ; 0xdb9c <Menu_WPL_R2+0x1ae>
db8e: 1f 34 cpi r17, 0x4F ; 79
db90: 59 f4 brne .+22 ; 0xdba8 <Menu_WPL_R2+0x1ba>
db92: 80 91 59 01 lds r24, 0x0159
db96: 82 30 cpi r24, 0x02 ; 2
db98: 90 f0 brcs .+36 ; 0xdbbe <Menu_WPL_R2+0x1d0>
db9a: 81 50 subi r24, 0x01 ; 1
db9c: 80 93 59 01 sts 0x0159, r24
dba0: 81 e0 ldi r24, 0x01 ; 1
dba2: 80 93 8f 04 sts 0x048F, r24
dba6: 0b c0 rjmp .+22 ; 0xdbbe <Menu_WPL_R2+0x1d0>
dba8: 1f 31 cpi r17, 0x1F ; 31
dbaa: 49 f4 brne .+18 ; 0xdbbe <Menu_WPL_R2+0x1d0>
dbac: 80 91 59 01 lds r24, 0x0159
dbb0: 88 23 and r24, r24
dbb2: 29 f0 breq .+10 ; 0xdbbe <Menu_WPL_R2+0x1d0>
dbb4: 80 68 ori r24, 0x80 ; 128
dbb6: 80 93 88 04 sts 0x0488, r24
dbba: 10 92 8f 04 sts 0x048F, r1
dbbe: df 91 pop r29
dbc0: cf 91 pop r28
dbc2: 1f 91 pop r17
dbc4: 08 95 ret
 
0000dbc6 <Menu_Status>:
dbc6: 0f 93 push r16
dbc8: 1f 93 push r17
dbca: cf 93 push r28
dbcc: df 93 push r29
dbce: 80 e0 ldi r24, 0x00 ; 0
dbd0: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
dbd4: 80 91 1a 01 lds r24, 0x011A
dbd8: 90 91 1b 01 lds r25, 0x011B
dbdc: 20 91 1a 01 lds r18, 0x011A
dbe0: 30 91 1b 01 lds r19, 0x011B
dbe4: 0a e0 ldi r16, 0x0A ; 10
dbe6: 10 e0 ldi r17, 0x00 ; 0
dbe8: b8 01 movw r22, r16
dbea: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
dbee: 9f 93 push r25
dbf0: 8f 93 push r24
dbf2: c9 01 movw r24, r18
dbf4: b8 01 movw r22, r16
dbf6: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
dbfa: 7f 93 push r23
dbfc: 6f 93 push r22
dbfe: 86 ed ldi r24, 0xD6 ; 214
dc00: 9f e0 ldi r25, 0x0F ; 15
dc02: 9f 93 push r25
dc04: 8f 93 push r24
dc06: ce ed ldi r28, 0xDE ; 222
dc08: de e0 ldi r29, 0x0E ; 14
dc0a: df 93 push r29
dc0c: cf 93 push r28
dc0e: e0 91 55 06 lds r30, 0x0655
dc12: f0 91 56 06 lds r31, 0x0656
dc16: 09 95 icall
dc18: 8d b7 in r24, 0x3d ; 61
dc1a: 9e b7 in r25, 0x3e ; 62
dc1c: 08 96 adiw r24, 0x08 ; 8
dc1e: 0f b6 in r0, 0x3f ; 63
dc20: f8 94 cli
dc22: 9e bf out 0x3e, r25 ; 62
dc24: 0f be out 0x3f, r0 ; 63
dc26: 8d bf out 0x3d, r24 ; 61
dc28: 80 91 a4 02 lds r24, 0x02A4
dc2c: 88 23 and r24, r24
dc2e: 69 f1 breq .+90 ; 0xdc8a <Menu_Status+0xc4>
dc30: 86 e0 ldi r24, 0x06 ; 6
dc32: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
dc36: 80 91 96 02 lds r24, 0x0296
dc3a: 1f 92 push r1
dc3c: 8f 93 push r24
dc3e: 80 91 b8 08 lds r24, 0x08B8
dc42: 90 91 b9 08 lds r25, 0x08B9
dc46: b8 01 movw r22, r16
dc48: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
dc4c: 7f 93 push r23
dc4e: 6f 93 push r22
dc50: 1f 92 push r1
dc52: 8f ed ldi r24, 0xDF ; 223
dc54: 8f 93 push r24
dc56: 80 91 43 06 lds r24, 0x0643
dc5a: 8f 93 push r24
dc5c: 80 91 42 06 lds r24, 0x0642
dc60: 8f 93 push r24
dc62: 89 ec ldi r24, 0xC9 ; 201
dc64: 9f e0 ldi r25, 0x0F ; 15
dc66: 9f 93 push r25
dc68: 8f 93 push r24
dc6a: df 93 push r29
dc6c: cf 93 push r28
dc6e: e0 91 55 06 lds r30, 0x0655
dc72: f0 91 56 06 lds r31, 0x0656
dc76: 09 95 icall
dc78: 8d b7 in r24, 0x3d ; 61
dc7a: 9e b7 in r25, 0x3e ; 62
dc7c: 0c 96 adiw r24, 0x0c ; 12
dc7e: 0f b6 in r0, 0x3f ; 63
dc80: f8 94 cli
dc82: 9e bf out 0x3e, r25 ; 62
dc84: 0f be out 0x3f, r0 ; 63
dc86: 8d bf out 0x3d, r24 ; 61
dc88: 12 c0 rjmp .+36 ; 0xdcae <Menu_Status+0xe8>
dc8a: 86 e0 ldi r24, 0x06 ; 6
dc8c: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
dc90: 8e eb ldi r24, 0xBE ; 190
dc92: 9f e0 ldi r25, 0x0F ; 15
dc94: 9f 93 push r25
dc96: 8f 93 push r24
dc98: df 93 push r29
dc9a: cf 93 push r28
dc9c: e0 91 55 06 lds r30, 0x0655
dca0: f0 91 56 06 lds r31, 0x0656
dca4: 09 95 icall
dca6: 0f 90 pop r0
dca8: 0f 90 pop r0
dcaa: 0f 90 pop r0
dcac: 0f 90 pop r0
dcae: 80 91 b9 04 lds r24, 0x04B9
dcb2: 88 23 and r24, r24
dcb4: 09 f4 brne .+2 ; 0xdcb8 <Menu_Status+0xf2>
dcb6: 47 c0 rjmp .+142 ; 0xdd46 <Menu_Status+0x180>
dcb8: 80 91 93 04 lds r24, 0x0493
dcbc: 90 91 94 04 lds r25, 0x0494
dcc0: 0e 94 4f 88 call 0x1109e ; 0x1109e <CheckDelay>
dcc4: 88 23 and r24, r24
dcc6: 91 f0 breq .+36 ; 0xdcec <Menu_Status+0x126>
dcc8: 80 91 5d 01 lds r24, 0x015D
dccc: 88 23 and r24, r24
dcce: 19 f0 breq .+6 ; 0xdcd6 <Menu_Status+0x110>
dcd0: 10 92 5d 01 sts 0x015D, r1
dcd4: 03 c0 rjmp .+6 ; 0xdcdc <Menu_Status+0x116>
dcd6: 81 e0 ldi r24, 0x01 ; 1
dcd8: 80 93 5d 01 sts 0x015D, r24
dcdc: 8c ed ldi r24, 0xDC ; 220
dcde: 95 e0 ldi r25, 0x05 ; 5
dce0: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
dce4: 90 93 94 04 sts 0x0494, r25
dce8: 80 93 93 04 sts 0x0493, r24
dcec: 80 91 5d 01 lds r24, 0x015D
dcf0: 88 23 and r24, r24
dcf2: 71 f0 breq .+28 ; 0xdd10 <Menu_Status+0x14a>
dcf4: 80 e0 ldi r24, 0x00 ; 0
dcf6: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
dcfa: 1f 92 push r1
dcfc: 1f 92 push r1
dcfe: 80 91 b9 04 lds r24, 0x04B9
dd02: 31 e1 ldi r19, 0x11 ; 17
dd04: 83 9f mul r24, r19
dd06: c0 01 movw r24, r0
dd08: 11 24 eor r1, r1
dd0a: 8a 56 subi r24, 0x6A ; 106
dd0c: 95 4f sbci r25, 0xF5 ; 245
dd0e: 09 c0 rjmp .+18 ; 0xdd22 <Menu_Status+0x15c>
dd10: 86 e0 ldi r24, 0x06 ; 6
dd12: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
dd16: 80 91 b9 04 lds r24, 0x04B9
dd1a: 1f 92 push r1
dd1c: 8f 93 push r24
dd1e: 82 eb ldi r24, 0xB2 ; 178
dd20: 9f e0 ldi r25, 0x0F ; 15
dd22: 9f 93 push r25
dd24: 8f 93 push r24
dd26: 8e ed ldi r24, 0xDE ; 222
dd28: 9e e0 ldi r25, 0x0E ; 14
dd2a: 9f 93 push r25
dd2c: 8f 93 push r24
dd2e: e0 91 55 06 lds r30, 0x0655
dd32: f0 91 56 06 lds r31, 0x0656
dd36: 09 95 icall
dd38: 0f 90 pop r0
dd3a: 0f 90 pop r0
dd3c: 0f 90 pop r0
dd3e: 0f 90 pop r0
dd40: 0f 90 pop r0
dd42: 0f 90 pop r0
dd44: 4e c0 rjmp .+156 ; 0xdde2 <Menu_Status+0x21c>
dd46: 80 91 b5 04 lds r24, 0x04B5
dd4a: 84 ff sbrs r24, 4
dd4c: 15 c0 rjmp .+42 ; 0xdd78 <Menu_Status+0x1b2>
dd4e: 86 e0 ldi r24, 0x06 ; 6
dd50: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
dd54: 87 ea ldi r24, 0xA7 ; 167
dd56: 9f e0 ldi r25, 0x0F ; 15
dd58: 9f 93 push r25
dd5a: 8f 93 push r24
dd5c: 8e ed ldi r24, 0xDE ; 222
dd5e: 9e e0 ldi r25, 0x0E ; 14
dd60: 9f 93 push r25
dd62: 8f 93 push r24
dd64: e0 91 55 06 lds r30, 0x0655
dd68: f0 91 56 06 lds r31, 0x0656
dd6c: 09 95 icall
dd6e: 0f 90 pop r0
dd70: 0f 90 pop r0
dd72: 0f 90 pop r0
dd74: 0f 90 pop r0
dd76: 35 c0 rjmp .+106 ; 0xdde2 <Menu_Status+0x21c>
dd78: 80 91 7e 04 lds r24, 0x047E
dd7c: 88 23 and r24, r24
dd7e: 89 f1 breq .+98 ; 0xdde2 <Menu_Status+0x21c>
dd80: 0e 94 f1 0e call 0x1de2 ; 0x1de2 <LIBFC_JetiBox_Clear>
dd84: 80 e0 ldi r24, 0x00 ; 0
dd86: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
dd8a: 87 e9 ldi r24, 0x97 ; 151
dd8c: 95 e0 ldi r25, 0x05 ; 5
dd8e: 9f 93 push r25
dd90: 8f 93 push r24
dd92: 80 91 52 01 lds r24, 0x0152
dd96: 1f 92 push r1
dd98: 8f 93 push r24
dd9a: 8e e9 ldi r24, 0x9E ; 158
dd9c: 9f e0 ldi r25, 0x0F ; 15
dd9e: 9f 93 push r25
dda0: 8f 93 push r24
dda2: ce ed ldi r28, 0xDE ; 222
dda4: de e0 ldi r29, 0x0E ; 14
dda6: df 93 push r29
dda8: cf 93 push r28
ddaa: e0 91 55 06 lds r30, 0x0655
ddae: f0 91 56 06 lds r31, 0x0656
ddb2: 09 95 icall
ddb4: 80 91 c7 03 lds r24, 0x03C7
ddb8: 2d b7 in r18, 0x3d ; 61
ddba: 3e b7 in r19, 0x3e ; 62
ddbc: 28 5f subi r18, 0xF8 ; 248
ddbe: 3f 4f sbci r19, 0xFF ; 255
ddc0: 0f b6 in r0, 0x3f ; 63
ddc2: f8 94 cli
ddc4: 3e bf out 0x3e, r19 ; 62
ddc6: 0f be out 0x3f, r0 ; 63
ddc8: 2d bf out 0x3d, r18 ; 61
ddca: 81 ff sbrs r24, 1
ddcc: 7c c0 rjmp .+248 ; 0xdec6 <Menu_Status+0x300>
ddce: 80 e1 ldi r24, 0x10 ; 16
ddd0: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
ddd4: 82 e9 ldi r24, 0x92 ; 146
ddd6: 9f e0 ldi r25, 0x0F ; 15
ddd8: 9f 93 push r25
ddda: 8f 93 push r24
dddc: df 93 push r29
ddde: 8c 2f mov r24, r28
dde0: 68 c0 rjmp .+208 ; 0xdeb2 <Menu_Status+0x2ec>
dde2: 80 e1 ldi r24, 0x10 ; 16
dde4: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
dde8: 80 91 5c 04 lds r24, 0x045C
ddec: 90 91 5d 04 lds r25, 0x045D
ddf0: 6c e3 ldi r22, 0x3C ; 60
ddf2: 70 e0 ldi r23, 0x00 ; 0
ddf4: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
ddf8: 9f 93 push r25
ddfa: 8f 93 push r24
ddfc: 7f 93 push r23
ddfe: 6f 93 push r22
de00: 80 91 18 05 lds r24, 0x0518
de04: 8f 93 push r24
de06: 80 91 17 05 lds r24, 0x0517
de0a: 8f 93 push r24
de0c: 85 e8 ldi r24, 0x85 ; 133
de0e: 9f e0 ldi r25, 0x0F ; 15
de10: 9f 93 push r25
de12: 8f 93 push r24
de14: ce ed ldi r28, 0xDE ; 222
de16: de e0 ldi r29, 0x0E ; 14
de18: df 93 push r29
de1a: cf 93 push r28
de1c: e0 91 55 06 lds r30, 0x0655
de20: f0 91 56 06 lds r31, 0x0656
de24: 09 95 icall
de26: 80 91 39 06 lds r24, 0x0639
de2a: 2d b7 in r18, 0x3d ; 61
de2c: 3e b7 in r19, 0x3e ; 62
de2e: 26 5f subi r18, 0xF6 ; 246
de30: 3f 4f sbci r19, 0xFF ; 255
de32: 0f b6 in r0, 0x3f ; 63
de34: f8 94 cli
de36: 3e bf out 0x3e, r19 ; 62
de38: 0f be out 0x3f, r0 ; 63
de3a: 2d bf out 0x3d, r18 ; 61
de3c: 80 ff sbrs r24, 0
de3e: 2b c0 rjmp .+86 ; 0xde96 <Menu_Status+0x2d0>
de40: 8a e1 ldi r24, 0x1A ; 26
de42: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
de46: 80 91 20 01 lds r24, 0x0120
de4a: 1f 92 push r1
de4c: 8f 93 push r24
de4e: 60 91 fc 03 lds r22, 0x03FC
de52: 70 91 fd 03 lds r23, 0x03FD
de56: 80 91 fe 03 lds r24, 0x03FE
de5a: 90 91 ff 03 lds r25, 0x03FF
de5e: 24 e6 ldi r18, 0x64 ; 100
de60: 30 e0 ldi r19, 0x00 ; 0
de62: 40 e0 ldi r20, 0x00 ; 0
de64: 50 e0 ldi r21, 0x00 ; 0
de66: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
de6a: 3f 93 push r19
de6c: 2f 93 push r18
de6e: 8e e7 ldi r24, 0x7E ; 126
de70: 9f e0 ldi r25, 0x0F ; 15
de72: 9f 93 push r25
de74: 8f 93 push r24
de76: df 93 push r29
de78: cf 93 push r28
de7a: e0 91 55 06 lds r30, 0x0655
de7e: f0 91 56 06 lds r31, 0x0656
de82: 09 95 icall
de84: 2d b7 in r18, 0x3d ; 61
de86: 3e b7 in r19, 0x3e ; 62
de88: 28 5f subi r18, 0xF8 ; 248
de8a: 3f 4f sbci r19, 0xFF ; 255
de8c: 0f b6 in r0, 0x3f ; 63
de8e: f8 94 cli
de90: 3e bf out 0x3e, r19 ; 62
de92: 0f be out 0x3f, r0 ; 63
de94: 2d bf out 0x3d, r18 ; 61
de96: 80 91 c7 03 lds r24, 0x03C7
de9a: 80 ff sbrs r24, 0
de9c: 14 c0 rjmp .+40 ; 0xdec6 <Menu_Status+0x300>
de9e: 8a e1 ldi r24, 0x1A ; 26
dea0: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
dea4: 8c e7 ldi r24, 0x7C ; 124
dea6: 9f e0 ldi r25, 0x0F ; 15
dea8: 9f 93 push r25
deaa: 8f 93 push r24
deac: 8e ed ldi r24, 0xDE ; 222
deae: 9e e0 ldi r25, 0x0E ; 14
deb0: 9f 93 push r25
deb2: 8f 93 push r24
deb4: e0 91 55 06 lds r30, 0x0655
deb8: f0 91 56 06 lds r31, 0x0656
debc: 09 95 icall
debe: 0f 90 pop r0
dec0: 0f 90 pop r0
dec2: 0f 90 pop r0
dec4: 0f 90 pop r0
dec6: df 91 pop r29
dec8: cf 91 pop r28
deca: 1f 91 pop r17
decc: 0f 91 pop r16
dece: 08 95 ret
 
0000ded0 <Menu_POINT_SV2>:
ded0: 1f 93 push r17
ded2: cf 93 push r28
ded4: df 93 push r29
ded6: 18 2f mov r17, r24
ded8: 80 e0 ldi r24, 0x00 ; 0
deda: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
dede: 26 e9 ldi r18, 0x96 ; 150
dee0: 3e e0 ldi r19, 0x0E ; 14
dee2: 3f 93 push r19
dee4: 2f 93 push r18
dee6: ce ed ldi r28, 0xDE ; 222
dee8: de e0 ldi r29, 0x0E ; 14
deea: df 93 push r29
deec: cf 93 push r28
deee: e0 91 55 06 lds r30, 0x0655
def2: f0 91 56 06 lds r31, 0x0656
def6: 09 95 icall
def8: 0f 90 pop r0
defa: 0f 90 pop r0
defc: 0f 90 pop r0
defe: 0f 90 pop r0
df00: 80 91 87 04 lds r24, 0x0487
df04: 81 11 cpse r24, r1
df06: 06 c0 rjmp .+12 ; 0xdf14 <Menu_POINT_SV2+0x44>
df08: 80 e1 ldi r24, 0x10 ; 16
df0a: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
df0e: 8b e8 ldi r24, 0x8B ; 139
df10: 9e e0 ldi r25, 0x0E ; 14
df12: 09 c0 rjmp .+18 ; 0xdf26 <Menu_POINT_SV2+0x56>
df14: 80 91 b6 08 lds r24, 0x08B6
df18: 83 30 cpi r24, 0x03 ; 3
df1a: 99 f0 breq .+38 ; 0xdf42 <Menu_POINT_SV2+0x72>
df1c: 80 e1 ldi r24, 0x10 ; 16
df1e: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
df22: 80 e8 ldi r24, 0x80 ; 128
df24: 9e e0 ldi r25, 0x0E ; 14
df26: 9f 93 push r25
df28: 8f 93 push r24
df2a: df 93 push r29
df2c: cf 93 push r28
df2e: e0 91 55 06 lds r30, 0x0655
df32: f0 91 56 06 lds r31, 0x0656
df36: 09 95 icall
df38: 0f 90 pop r0
df3a: 0f 90 pop r0
df3c: 0f 90 pop r0
df3e: 0f 90 pop r0
df40: 7b c0 rjmp .+246 ; 0xe038 <Menu_POINT_SV2+0x168>
df42: 8b e0 ldi r24, 0x0B ; 11
df44: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
df48: 80 91 5c 01 lds r24, 0x015C
df4c: 1f 92 push r1
df4e: 8f 93 push r24
df50: 2c e7 ldi r18, 0x7C ; 124
df52: 3e e0 ldi r19, 0x0E ; 14
df54: 3f 93 push r19
df56: 2f 93 push r18
df58: df 93 push r29
df5a: cf 93 push r28
df5c: e0 91 55 06 lds r30, 0x0655
df60: f0 91 56 06 lds r31, 0x0656
df64: 09 95 icall
df66: 80 e1 ldi r24, 0x10 ; 16
df68: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
df6c: 60 91 fc 03 lds r22, 0x03FC
df70: 70 91 fd 03 lds r23, 0x03FD
df74: 80 91 fe 03 lds r24, 0x03FE
df78: 90 91 ff 03 lds r25, 0x03FF
df7c: 24 e6 ldi r18, 0x64 ; 100
df7e: 30 e0 ldi r19, 0x00 ; 0
df80: 40 e0 ldi r20, 0x00 ; 0
df82: 50 e0 ldi r21, 0x00 ; 0
df84: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
df88: 3f 93 push r19
df8a: 2f 93 push r18
df8c: 80 91 43 06 lds r24, 0x0643
df90: 8f 93 push r24
df92: 80 91 42 06 lds r24, 0x0642
df96: 8f 93 push r24
df98: 2b e6 ldi r18, 0x6B ; 107
df9a: 3e e0 ldi r19, 0x0E ; 14
df9c: 3f 93 push r19
df9e: 2f 93 push r18
dfa0: df 93 push r29
dfa2: cf 93 push r28
dfa4: e0 91 55 06 lds r30, 0x0655
dfa8: f0 91 56 06 lds r31, 0x0656
dfac: 09 95 icall
dfae: 8d b7 in r24, 0x3d ; 61
dfb0: 9e b7 in r25, 0x3e ; 62
dfb2: 0e 96 adiw r24, 0x0e ; 14
dfb4: 0f b6 in r0, 0x3f ; 63
dfb6: f8 94 cli
dfb8: 9e bf out 0x3e, r25 ; 62
dfba: 0f be out 0x3f, r0 ; 63
dfbc: 8d bf out 0x3d, r24 ; 61
dfbe: 80 91 92 04 lds r24, 0x0492
dfc2: 88 23 and r24, r24
dfc4: 31 f0 breq .+12 ; 0xdfd2 <Menu_POINT_SV2+0x102>
dfc6: 8e e0 ldi r24, 0x0E ; 14
dfc8: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
dfcc: 28 e6 ldi r18, 0x68 ; 104
dfce: 3e e0 ldi r19, 0x0E ; 14
dfd0: 05 c0 rjmp .+10 ; 0xdfdc <Menu_POINT_SV2+0x10c>
dfd2: 8e e0 ldi r24, 0x0E ; 14
dfd4: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
dfd8: 25 e6 ldi r18, 0x65 ; 101
dfda: 3e e0 ldi r19, 0x0E ; 14
dfdc: 3f 93 push r19
dfde: 2f 93 push r18
dfe0: df 93 push r29
dfe2: cf 93 push r28
dfe4: e0 91 55 06 lds r30, 0x0655
dfe8: f0 91 56 06 lds r31, 0x0656
dfec: 09 95 icall
dfee: 0f 90 pop r0
dff0: 0f 90 pop r0
dff2: 0f 90 pop r0
dff4: 0f 90 pop r0
dff6: 1f 32 cpi r17, 0x2F ; 47
dff8: 41 f4 brne .+16 ; 0xe00a <Menu_POINT_SV2+0x13a>
dffa: 80 91 5c 01 lds r24, 0x015C
dffe: 90 91 87 04 lds r25, 0x0487
e002: 89 17 cp r24, r25
e004: c8 f4 brcc .+50 ; 0xe038 <Menu_POINT_SV2+0x168>
e006: 8f 5f subi r24, 0xFF ; 255
e008: 07 c0 rjmp .+14 ; 0xe018 <Menu_POINT_SV2+0x148>
e00a: 1f 34 cpi r17, 0x4F ; 79
e00c: 59 f4 brne .+22 ; 0xe024 <Menu_POINT_SV2+0x154>
e00e: 80 91 5c 01 lds r24, 0x015C
e012: 82 30 cpi r24, 0x02 ; 2
e014: 88 f0 brcs .+34 ; 0xe038 <Menu_POINT_SV2+0x168>
e016: 81 50 subi r24, 0x01 ; 1
e018: 80 93 5c 01 sts 0x015C, r24
e01c: 81 e0 ldi r24, 0x01 ; 1
e01e: 80 93 92 04 sts 0x0492, r24
e022: 0a c0 rjmp .+20 ; 0xe038 <Menu_POINT_SV2+0x168>
e024: 1f 31 cpi r17, 0x1F ; 31
e026: 41 f4 brne .+16 ; 0xe038 <Menu_POINT_SV2+0x168>
e028: 80 91 5c 01 lds r24, 0x015C
e02c: 88 23 and r24, r24
e02e: 21 f0 breq .+8 ; 0xe038 <Menu_POINT_SV2+0x168>
e030: 80 93 85 04 sts 0x0485, r24
e034: 10 92 92 04 sts 0x0492, r1
e038: df 91 pop r29
e03a: cf 91 pop r28
e03c: 1f 91 pop r17
e03e: 08 95 ret
 
0000e040 <Menu_POINT_LD2>:
e040: 1f 93 push r17
e042: cf 93 push r28
e044: df 93 push r29
e046: 18 2f mov r17, r24
e048: 80 e0 ldi r24, 0x00 ; 0
e04a: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e04e: 8a e5 ldi r24, 0x5A ; 90
e050: 9e e0 ldi r25, 0x0E ; 14
e052: 9f 93 push r25
e054: 8f 93 push r24
e056: ce ed ldi r28, 0xDE ; 222
e058: de e0 ldi r29, 0x0E ; 14
e05a: df 93 push r29
e05c: cf 93 push r28
e05e: e0 91 55 06 lds r30, 0x0655
e062: f0 91 56 06 lds r31, 0x0656
e066: 09 95 icall
e068: 0f 90 pop r0
e06a: 0f 90 pop r0
e06c: 0f 90 pop r0
e06e: 0f 90 pop r0
e070: 80 91 87 04 lds r24, 0x0487
e074: 81 11 cpse r24, r1
e076: 13 c0 rjmp .+38 ; 0xe09e <Menu_POINT_LD2+0x5e>
e078: 80 e1 ldi r24, 0x10 ; 16
e07a: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e07e: 8f e4 ldi r24, 0x4F ; 79
e080: 9e e0 ldi r25, 0x0E ; 14
e082: 9f 93 push r25
e084: 8f 93 push r24
e086: df 93 push r29
e088: cf 93 push r28
e08a: e0 91 55 06 lds r30, 0x0655
e08e: f0 91 56 06 lds r31, 0x0656
e092: 09 95 icall
e094: 0f 90 pop r0
e096: 0f 90 pop r0
e098: 0f 90 pop r0
e09a: 0f 90 pop r0
e09c: 9a c0 rjmp .+308 ; 0xe1d2 <Menu_POINT_LD2+0x192>
e09e: 8b e0 ldi r24, 0x0B ; 11
e0a0: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e0a4: 80 91 5b 01 lds r24, 0x015B
e0a8: 1f 92 push r1
e0aa: 8f 93 push r24
e0ac: 8b e4 ldi r24, 0x4B ; 75
e0ae: 9e e0 ldi r25, 0x0E ; 14
e0b0: 9f 93 push r25
e0b2: 8f 93 push r24
e0b4: df 93 push r29
e0b6: cf 93 push r28
e0b8: e0 91 55 06 lds r30, 0x0655
e0bc: f0 91 56 06 lds r31, 0x0656
e0c0: 09 95 icall
e0c2: 0f 90 pop r0
e0c4: 0f 90 pop r0
e0c6: 0f 90 pop r0
e0c8: 0f 90 pop r0
e0ca: 0f 90 pop r0
e0cc: 0f 90 pop r0
e0ce: 80 91 8a 04 lds r24, 0x048A
e0d2: 88 23 and r24, r24
e0d4: 69 f1 breq .+90 ; 0xe130 <Menu_POINT_LD2+0xf0>
e0d6: 80 e1 ldi r24, 0x10 ; 16
e0d8: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e0dc: 60 91 f2 03 lds r22, 0x03F2
e0e0: 70 91 f3 03 lds r23, 0x03F3
e0e4: 80 91 f4 03 lds r24, 0x03F4
e0e8: 90 91 f5 03 lds r25, 0x03F5
e0ec: 24 e6 ldi r18, 0x64 ; 100
e0ee: 30 e0 ldi r19, 0x00 ; 0
e0f0: 40 e0 ldi r20, 0x00 ; 0
e0f2: 50 e0 ldi r21, 0x00 ; 0
e0f4: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
e0f8: 3f 93 push r19
e0fa: 2f 93 push r18
e0fc: 80 91 84 04 lds r24, 0x0484
e100: 8f 93 push r24
e102: 80 91 83 04 lds r24, 0x0483
e106: 8f 93 push r24
e108: 89 e3 ldi r24, 0x39 ; 57
e10a: 9e e0 ldi r25, 0x0E ; 14
e10c: 9f 93 push r25
e10e: 8f 93 push r24
e110: df 93 push r29
e112: cf 93 push r28
e114: e0 91 55 06 lds r30, 0x0655
e118: f0 91 56 06 lds r31, 0x0656
e11c: 09 95 icall
e11e: 8d b7 in r24, 0x3d ; 61
e120: 9e b7 in r25, 0x3e ; 62
e122: 08 96 adiw r24, 0x08 ; 8
e124: 0f b6 in r0, 0x3f ; 63
e126: f8 94 cli
e128: 9e bf out 0x3e, r25 ; 62
e12a: 0f be out 0x3f, r0 ; 63
e12c: 8d bf out 0x3d, r24 ; 61
e12e: 12 c0 rjmp .+36 ; 0xe154 <Menu_POINT_LD2+0x114>
e130: 88 e1 ldi r24, 0x18 ; 24
e132: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e136: 28 e2 ldi r18, 0x28 ; 40
e138: 3e e0 ldi r19, 0x0E ; 14
e13a: 3f 93 push r19
e13c: 2f 93 push r18
e13e: df 93 push r29
e140: cf 93 push r28
e142: e0 91 55 06 lds r30, 0x0655
e146: f0 91 56 06 lds r31, 0x0656
e14a: 09 95 icall
e14c: 0f 90 pop r0
e14e: 0f 90 pop r0
e150: 0f 90 pop r0
e152: 0f 90 pop r0
e154: 80 91 91 04 lds r24, 0x0491
e158: 88 23 and r24, r24
e15a: 31 f0 breq .+12 ; 0xe168 <Menu_POINT_LD2+0x128>
e15c: 8e e0 ldi r24, 0x0E ; 14
e15e: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e162: 25 e2 ldi r18, 0x25 ; 37
e164: 3e e0 ldi r19, 0x0E ; 14
e166: 05 c0 rjmp .+10 ; 0xe172 <Menu_POINT_LD2+0x132>
e168: 8e e0 ldi r24, 0x0E ; 14
e16a: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e16e: 22 e2 ldi r18, 0x22 ; 34
e170: 3e e0 ldi r19, 0x0E ; 14
e172: 3f 93 push r19
e174: 2f 93 push r18
e176: 2e ed ldi r18, 0xDE ; 222
e178: 3e e0 ldi r19, 0x0E ; 14
e17a: 3f 93 push r19
e17c: 2f 93 push r18
e17e: e0 91 55 06 lds r30, 0x0655
e182: f0 91 56 06 lds r31, 0x0656
e186: 09 95 icall
e188: 0f 90 pop r0
e18a: 0f 90 pop r0
e18c: 0f 90 pop r0
e18e: 0f 90 pop r0
e190: 1f 32 cpi r17, 0x2F ; 47
e192: 41 f4 brne .+16 ; 0xe1a4 <Menu_POINT_LD2+0x164>
e194: 80 91 5b 01 lds r24, 0x015B
e198: 90 91 87 04 lds r25, 0x0487
e19c: 89 17 cp r24, r25
e19e: c8 f4 brcc .+50 ; 0xe1d2 <Menu_POINT_LD2+0x192>
e1a0: 8f 5f subi r24, 0xFF ; 255
e1a2: 07 c0 rjmp .+14 ; 0xe1b2 <Menu_POINT_LD2+0x172>
e1a4: 1f 34 cpi r17, 0x4F ; 79
e1a6: 59 f4 brne .+22 ; 0xe1be <Menu_POINT_LD2+0x17e>
e1a8: 80 91 5b 01 lds r24, 0x015B
e1ac: 82 30 cpi r24, 0x02 ; 2
e1ae: 88 f0 brcs .+34 ; 0xe1d2 <Menu_POINT_LD2+0x192>
e1b0: 81 50 subi r24, 0x01 ; 1
e1b2: 80 93 5b 01 sts 0x015B, r24
e1b6: 81 e0 ldi r24, 0x01 ; 1
e1b8: 80 93 91 04 sts 0x0491, r24
e1bc: 0a c0 rjmp .+20 ; 0xe1d2 <Menu_POINT_LD2+0x192>
e1be: 1f 31 cpi r17, 0x1F ; 31
e1c0: 41 f4 brne .+16 ; 0xe1d2 <Menu_POINT_LD2+0x192>
e1c2: 80 91 5b 01 lds r24, 0x015B
e1c6: 88 23 and r24, r24
e1c8: 21 f0 breq .+8 ; 0xe1d2 <Menu_POINT_LD2+0x192>
e1ca: 80 93 86 04 sts 0x0486, r24
e1ce: 10 92 91 04 sts 0x0491, r1
e1d2: df 91 pop r29
e1d4: cf 91 pop r28
e1d6: 1f 91 pop r17
e1d8: 08 95 ret
 
0000e1da <Menu_WPL_A2>:
e1da: 1f 93 push r17
e1dc: cf 93 push r28
e1de: df 93 push r29
e1e0: 18 2f mov r17, r24
e1e2: cf ea ldi r28, 0xAF ; 175
e1e4: d6 e0 ldi r29, 0x06 ; 6
e1e6: 80 91 af 06 lds r24, 0x06AF
e1ea: 81 11 cpse r24, r1
e1ec: 14 c0 rjmp .+40 ; 0xe216 <Menu_WPL_A2+0x3c>
e1ee: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e1f2: 84 e1 ldi r24, 0x14 ; 20
e1f4: 9e e0 ldi r25, 0x0E ; 14
e1f6: 9f 93 push r25
e1f8: 8f 93 push r24
e1fa: 8e ed ldi r24, 0xDE ; 222
e1fc: 9e e0 ldi r25, 0x0E ; 14
e1fe: 9f 93 push r25
e200: 8f 93 push r24
e202: e0 91 55 06 lds r30, 0x0655
e206: f0 91 56 06 lds r31, 0x0656
e20a: 09 95 icall
e20c: 0f 90 pop r0
e20e: 0f 90 pop r0
e210: 0f 90 pop r0
e212: 0f 90 pop r0
e214: 18 c0 rjmp .+48 ; 0xe246 <Menu_WPL_A2+0x6c>
e216: 80 e0 ldi r24, 0x00 ; 0
e218: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e21c: df 93 push r29
e21e: cf 93 push r28
e220: 8d e0 ldi r24, 0x0D ; 13
e222: 9e e0 ldi r25, 0x0E ; 14
e224: 9f 93 push r25
e226: 8f 93 push r24
e228: 8e ed ldi r24, 0xDE ; 222
e22a: 9e e0 ldi r25, 0x0E ; 14
e22c: 9f 93 push r25
e22e: 8f 93 push r24
e230: e0 91 55 06 lds r30, 0x0655
e234: f0 91 56 06 lds r31, 0x0656
e238: 09 95 icall
e23a: 0f 90 pop r0
e23c: 0f 90 pop r0
e23e: 0f 90 pop r0
e240: 0f 90 pop r0
e242: 0f 90 pop r0
e244: 0f 90 pop r0
e246: 80 91 87 04 lds r24, 0x0487
e24a: 81 11 cpse r24, r1
e24c: 15 c0 rjmp .+42 ; 0xe278 <Menu_WPL_A2+0x9e>
e24e: 80 e1 ldi r24, 0x10 ; 16
e250: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e254: 82 e0 ldi r24, 0x02 ; 2
e256: 9e e0 ldi r25, 0x0E ; 14
e258: 9f 93 push r25
e25a: 8f 93 push r24
e25c: 8e ed ldi r24, 0xDE ; 222
e25e: 9e e0 ldi r25, 0x0E ; 14
e260: 9f 93 push r25
e262: 8f 93 push r24
e264: e0 91 55 06 lds r30, 0x0655
e268: f0 91 56 06 lds r31, 0x0656
e26c: 09 95 icall
e26e: 0f 90 pop r0
e270: 0f 90 pop r0
e272: 0f 90 pop r0
e274: 0f 90 pop r0
e276: 8e c0 rjmp .+284 ; 0xe394 <Menu_WPL_A2+0x1ba>
e278: 80 e1 ldi r24, 0x10 ; 16
e27a: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e27e: 80 91 5a 01 lds r24, 0x015A
e282: 1f 92 push r1
e284: 8f 93 push r24
e286: 89 ef ldi r24, 0xF9 ; 249
e288: 9d e0 ldi r25, 0x0D ; 13
e28a: 9f 93 push r25
e28c: 8f 93 push r24
e28e: ce ed ldi r28, 0xDE ; 222
e290: de e0 ldi r29, 0x0E ; 14
e292: df 93 push r29
e294: cf 93 push r28
e296: e0 91 55 06 lds r30, 0x0655
e29a: f0 91 56 06 lds r31, 0x0656
e29e: 09 95 icall
e2a0: 0f 90 pop r0
e2a2: 0f 90 pop r0
e2a4: 0f 90 pop r0
e2a6: 0f 90 pop r0
e2a8: 0f 90 pop r0
e2aa: 0f 90 pop r0
e2ac: 80 91 8a 04 lds r24, 0x048A
e2b0: 88 23 and r24, r24
e2b2: f9 f0 breq .+62 ; 0xe2f2 <Menu_WPL_A2+0x118>
e2b4: 88 e1 ldi r24, 0x18 ; 24
e2b6: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e2ba: 80 91 8a 04 lds r24, 0x048A
e2be: 1f 92 push r1
e2c0: 8f 93 push r24
e2c2: 80 91 8b 04 lds r24, 0x048B
e2c6: 1f 92 push r1
e2c8: 8f 93 push r24
e2ca: 21 ef ldi r18, 0xF1 ; 241
e2cc: 3d e0 ldi r19, 0x0D ; 13
e2ce: 3f 93 push r19
e2d0: 2f 93 push r18
e2d2: df 93 push r29
e2d4: cf 93 push r28
e2d6: e0 91 55 06 lds r30, 0x0655
e2da: f0 91 56 06 lds r31, 0x0656
e2de: 09 95 icall
e2e0: 8d b7 in r24, 0x3d ; 61
e2e2: 9e b7 in r25, 0x3e ; 62
e2e4: 08 96 adiw r24, 0x08 ; 8
e2e6: 0f b6 in r0, 0x3f ; 63
e2e8: f8 94 cli
e2ea: 9e bf out 0x3e, r25 ; 62
e2ec: 0f be out 0x3f, r0 ; 63
e2ee: 8d bf out 0x3d, r24 ; 61
e2f0: 12 c0 rjmp .+36 ; 0xe316 <Menu_WPL_A2+0x13c>
e2f2: 88 e1 ldi r24, 0x18 ; 24
e2f4: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e2f8: 2b ee ldi r18, 0xEB ; 235
e2fa: 3d e0 ldi r19, 0x0D ; 13
e2fc: 3f 93 push r19
e2fe: 2f 93 push r18
e300: df 93 push r29
e302: cf 93 push r28
e304: e0 91 55 06 lds r30, 0x0655
e308: f0 91 56 06 lds r31, 0x0656
e30c: 09 95 icall
e30e: 0f 90 pop r0
e310: 0f 90 pop r0
e312: 0f 90 pop r0
e314: 0f 90 pop r0
e316: 80 91 90 04 lds r24, 0x0490
e31a: 88 23 and r24, r24
e31c: 31 f0 breq .+12 ; 0xe32a <Menu_WPL_A2+0x150>
e31e: 8e e1 ldi r24, 0x1E ; 30
e320: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e324: 28 ee ldi r18, 0xE8 ; 232
e326: 3d e0 ldi r19, 0x0D ; 13
e328: 05 c0 rjmp .+10 ; 0xe334 <Menu_WPL_A2+0x15a>
e32a: 8e e1 ldi r24, 0x1E ; 30
e32c: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e330: 25 ee ldi r18, 0xE5 ; 229
e332: 3d e0 ldi r19, 0x0D ; 13
e334: 3f 93 push r19
e336: 2f 93 push r18
e338: 2e ed ldi r18, 0xDE ; 222
e33a: 3e e0 ldi r19, 0x0E ; 14
e33c: 3f 93 push r19
e33e: 2f 93 push r18
e340: e0 91 55 06 lds r30, 0x0655
e344: f0 91 56 06 lds r31, 0x0656
e348: 09 95 icall
e34a: 0f 90 pop r0
e34c: 0f 90 pop r0
e34e: 0f 90 pop r0
e350: 0f 90 pop r0
e352: 1f 32 cpi r17, 0x2F ; 47
e354: 41 f4 brne .+16 ; 0xe366 <Menu_WPL_A2+0x18c>
e356: 80 91 5a 01 lds r24, 0x015A
e35a: 90 91 87 04 lds r25, 0x0487
e35e: 89 17 cp r24, r25
e360: c8 f4 brcc .+50 ; 0xe394 <Menu_WPL_A2+0x1ba>
e362: 8f 5f subi r24, 0xFF ; 255
e364: 07 c0 rjmp .+14 ; 0xe374 <Menu_WPL_A2+0x19a>
e366: 1f 34 cpi r17, 0x4F ; 79
e368: 59 f4 brne .+22 ; 0xe380 <Menu_WPL_A2+0x1a6>
e36a: 80 91 5a 01 lds r24, 0x015A
e36e: 82 30 cpi r24, 0x02 ; 2
e370: 88 f0 brcs .+34 ; 0xe394 <Menu_WPL_A2+0x1ba>
e372: 81 50 subi r24, 0x01 ; 1
e374: 80 93 5a 01 sts 0x015A, r24
e378: 81 e0 ldi r24, 0x01 ; 1
e37a: 80 93 90 04 sts 0x0490, r24
e37e: 0a c0 rjmp .+20 ; 0xe394 <Menu_WPL_A2+0x1ba>
e380: 1f 31 cpi r17, 0x1F ; 31
e382: 41 f4 brne .+16 ; 0xe394 <Menu_WPL_A2+0x1ba>
e384: 80 91 5a 01 lds r24, 0x015A
e388: 88 23 and r24, r24
e38a: 21 f0 breq .+8 ; 0xe394 <Menu_WPL_A2+0x1ba>
e38c: 80 93 88 04 sts 0x0488, r24
e390: 10 92 90 04 sts 0x0490, r1
e394: df 91 pop r29
e396: cf 91 pop r28
e398: 1f 91 pop r17
e39a: 08 95 ret
 
0000e39c <Menu_PosInfo>:
e39c: cf 93 push r28
e39e: df 93 push r29
e3a0: 80 91 a4 02 lds r24, 0x02A4
e3a4: 88 23 and r24, r24
e3a6: 09 f4 brne .+2 ; 0xe3aa <Menu_PosInfo+0xe>
e3a8: 84 c0 rjmp .+264 ; 0xe4b2 <Menu_PosInfo+0x116>
e3aa: 80 e0 ldi r24, 0x00 ; 0
e3ac: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e3b0: 80 91 b5 08 lds r24, 0x08B5
e3b4: 1f 92 push r1
e3b6: 8f 93 push r24
e3b8: 80 91 b7 08 lds r24, 0x08B7
e3bc: 1f 92 push r1
e3be: 8f 93 push r24
e3c0: 8d e8 ldi r24, 0x8D ; 141
e3c2: 9d e0 ldi r25, 0x0D ; 13
e3c4: 9f 93 push r25
e3c6: 8f 93 push r24
e3c8: ce ed ldi r28, 0xDE ; 222
e3ca: de e0 ldi r29, 0x0E ; 14
e3cc: df 93 push r29
e3ce: cf 93 push r28
e3d0: e0 91 55 06 lds r30, 0x0655
e3d4: f0 91 56 06 lds r31, 0x0656
e3d8: 09 95 icall
e3da: 8d b7 in r24, 0x3d ; 61
e3dc: 9e b7 in r25, 0x3e ; 62
e3de: 08 96 adiw r24, 0x08 ; 8
e3e0: 0f b6 in r0, 0x3f ; 63
e3e2: f8 94 cli
e3e4: 9e bf out 0x3e, r25 ; 62
e3e6: 0f be out 0x3f, r0 ; 63
e3e8: 8d bf out 0x3d, r24 ; 61
e3ea: 80 91 b6 08 lds r24, 0x08B6
e3ee: 83 30 cpi r24, 0x03 ; 3
e3f0: 31 f4 brne .+12 ; 0xe3fe <Menu_PosInfo+0x62>
e3f2: 8c e0 ldi r24, 0x0C ; 12
e3f4: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e3f8: 88 e8 ldi r24, 0x88 ; 136
e3fa: 9d e0 ldi r25, 0x0D ; 13
e3fc: 05 c0 rjmp .+10 ; 0xe408 <Menu_PosInfo+0x6c>
e3fe: 8c e0 ldi r24, 0x0C ; 12
e400: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e404: 83 e8 ldi r24, 0x83 ; 131
e406: 9d e0 ldi r25, 0x0D ; 13
e408: 9f 93 push r25
e40a: 8f 93 push r24
e40c: df 93 push r29
e40e: cf 93 push r28
e410: e0 91 55 06 lds r30, 0x0655
e414: f0 91 56 06 lds r31, 0x0656
e418: 09 95 icall
e41a: 0f 90 pop r0
e41c: 0f 90 pop r0
e41e: 0f 90 pop r0
e420: 0f 90 pop r0
e422: 80 91 b4 08 lds r24, 0x08B4
e426: 81 ff sbrs r24, 1
e428: 14 c0 rjmp .+40 ; 0xe452 <Menu_PosInfo+0xb6>
e42a: 8c e0 ldi r24, 0x0C ; 12
e42c: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e430: 8e e7 ldi r24, 0x7E ; 126
e432: 9d e0 ldi r25, 0x0D ; 13
e434: 9f 93 push r25
e436: 8f 93 push r24
e438: 8e ed ldi r24, 0xDE ; 222
e43a: 9e e0 ldi r25, 0x0E ; 14
e43c: 9f 93 push r25
e43e: 8f 93 push r24
e440: e0 91 55 06 lds r30, 0x0655
e444: f0 91 56 06 lds r31, 0x0656
e448: 09 95 icall
e44a: 0f 90 pop r0
e44c: 0f 90 pop r0
e44e: 0f 90 pop r0
e450: 0f 90 pop r0
e452: 80 e1 ldi r24, 0x10 ; 16
e454: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e458: 80 91 96 02 lds r24, 0x0296
e45c: 1f 92 push r1
e45e: 8f 93 push r24
e460: 1f 92 push r1
e462: 8f ed ldi r24, 0xDF ; 223
e464: 8f 93 push r24
e466: 80 91 bb 08 lds r24, 0x08BB
e46a: 8f 93 push r24
e46c: 80 91 ba 08 lds r24, 0x08BA
e470: 8f 93 push r24
e472: 80 91 b8 08 lds r24, 0x08B8
e476: 90 91 b9 08 lds r25, 0x08B9
e47a: 6a e0 ldi r22, 0x0A ; 10
e47c: 70 e0 ldi r23, 0x00 ; 0
e47e: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
e482: 7f 93 push r23
e484: 6f 93 push r22
e486: 8b e6 ldi r24, 0x6B ; 107
e488: 9d e0 ldi r25, 0x0D ; 13
e48a: 9f 93 push r25
e48c: 8f 93 push r24
e48e: 8e ed ldi r24, 0xDE ; 222
e490: 9e e0 ldi r25, 0x0E ; 14
e492: 9f 93 push r25
e494: 8f 93 push r24
e496: e0 91 55 06 lds r30, 0x0655
e49a: f0 91 56 06 lds r31, 0x0656
e49e: 09 95 icall
e4a0: 8d b7 in r24, 0x3d ; 61
e4a2: 9e b7 in r25, 0x3e ; 62
e4a4: 0c 96 adiw r24, 0x0c ; 12
e4a6: 0f b6 in r0, 0x3f ; 63
e4a8: f8 94 cli
e4aa: 9e bf out 0x3e, r25 ; 62
e4ac: 0f be out 0x3f, r0 ; 63
e4ae: 8d bf out 0x3d, r24 ; 61
e4b0: 14 c0 rjmp .+40 ; 0xe4da <Menu_PosInfo+0x13e>
e4b2: 82 e0 ldi r24, 0x02 ; 2
e4b4: 0e 94 eb 0e call 0x1dd6 ; 0x1dd6 <LIBFC_JetiBox_SetPos>
e4b8: 8e e5 ldi r24, 0x5E ; 94
e4ba: 9d e0 ldi r25, 0x0D ; 13
e4bc: 9f 93 push r25
e4be: 8f 93 push r24
e4c0: 8e ed ldi r24, 0xDE ; 222
e4c2: 9e e0 ldi r25, 0x0E ; 14
e4c4: 9f 93 push r25
e4c6: 8f 93 push r24
e4c8: e0 91 55 06 lds r30, 0x0655
e4cc: f0 91 56 06 lds r31, 0x0656
e4d0: 09 95 icall
e4d2: 0f 90 pop r0
e4d4: 0f 90 pop r0
e4d6: 0f 90 pop r0
e4d8: 0f 90 pop r0
e4da: df 91 pop r29
e4dc: cf 91 pop r28
e4de: 08 95 ret
 
0000e4e0 <JetiBox_Update>:
e4e0: cf 93 push r28
e4e2: df 93 push r29
e4e4: 1f 92 push r1
e4e6: cd b7 in r28, 0x3d ; 61
e4e8: de b7 in r29, 0x3e ; 62
e4ea: 90 91 8e 04 lds r25, 0x048E
e4ee: 90 93 8d 04 sts 0x048D, r25
e4f2: 8f 32 cpi r24, 0x2F ; 47
e4f4: a9 f0 breq .+42 ; 0xe520 <JetiBox_Update+0x40>
e4f6: 48 f4 brcc .+18 ; 0xe50a <JetiBox_Update+0x2a>
e4f8: 8f 31 cpi r24, 0x1F ; 31
e4fa: 11 f5 brne .+68 ; 0xe540 <JetiBox_Update+0x60>
e4fc: 26 e0 ldi r18, 0x06 ; 6
e4fe: 92 9f mul r25, r18
e500: f0 01 movw r30, r0
e502: 11 24 eor r1, r1
e504: e0 52 subi r30, 0x20 ; 32
e506: f0 4f sbci r31, 0xF0 ; 240
e508: 18 c0 rjmp .+48 ; 0xe53a <JetiBox_Update+0x5a>
e50a: 8f 34 cpi r24, 0x4F ; 79
e50c: 81 f0 breq .+32 ; 0xe52e <JetiBox_Update+0x4e>
e50e: 8f 38 cpi r24, 0x8F ; 143
e510: b9 f4 brne .+46 ; 0xe540 <JetiBox_Update+0x60>
e512: 26 e0 ldi r18, 0x06 ; 6
e514: 92 9f mul r25, r18
e516: f0 01 movw r30, r0
e518: 11 24 eor r1, r1
e51a: e1 52 subi r30, 0x21 ; 33
e51c: f0 4f sbci r31, 0xF0 ; 240
e51e: 0d c0 rjmp .+26 ; 0xe53a <JetiBox_Update+0x5a>
e520: 26 e0 ldi r18, 0x06 ; 6
e522: 92 9f mul r25, r18
e524: f0 01 movw r30, r0
e526: 11 24 eor r1, r1
e528: ef 51 subi r30, 0x1F ; 31
e52a: f0 4f sbci r31, 0xF0 ; 240
e52c: 06 c0 rjmp .+12 ; 0xe53a <JetiBox_Update+0x5a>
e52e: 26 e0 ldi r18, 0x06 ; 6
e530: 92 9f mul r25, r18
e532: f0 01 movw r30, r0
e534: 11 24 eor r1, r1
e536: ee 51 subi r30, 0x1E ; 30
e538: f0 4f sbci r31, 0xF0 ; 240
e53a: e4 91 lpm r30, Z
e53c: e0 93 8e 04 sts 0x048E, r30
e540: 20 91 8e 04 lds r18, 0x048E
e544: 29 13 cpse r18, r25
e546: 80 e0 ldi r24, 0x00 ; 0
e548: 90 91 58 01 lds r25, 0x0158
e54c: 21 e0 ldi r18, 0x01 ; 1
e54e: 29 0f add r18, r25
e550: 20 93 58 01 sts 0x0158, r18
e554: 90 fd sbrc r25, 0
e556: 02 c0 rjmp .+4 ; 0xe55c <JetiBox_Update+0x7c>
e558: 8f 30 cpi r24, 0x0F ; 15
e55a: 91 f0 breq .+36 ; 0xe580 <JetiBox_Update+0xa0>
e55c: 80 93 8c 04 sts 0x048C, r24
e560: 89 83 std Y+1, r24 ; 0x01
e562: 0e 94 f1 0e call 0x1de2 ; 0x1de2 <LIBFC_JetiBox_Clear>
e566: e0 91 8e 04 lds r30, 0x048E
e56a: 96 e0 ldi r25, 0x06 ; 6
e56c: e9 9f mul r30, r25
e56e: f0 01 movw r30, r0
e570: 11 24 eor r1, r1
e572: ed 51 subi r30, 0x1D ; 29
e574: f0 4f sbci r31, 0xF0 ; 240
e576: 25 91 lpm r18, Z+
e578: 34 91 lpm r19, Z
e57a: 89 81 ldd r24, Y+1 ; 0x01
e57c: f9 01 movw r30, r18
e57e: 09 95 icall
e580: 80 e0 ldi r24, 0x00 ; 0
e582: 0f 90 pop r0
e584: df 91 pop r29
e586: cf 91 pop r28
e588: 08 95 ret
 
0000e58a <BuildJeti_Vario>:
e58a: 40 91 54 03 lds r20, 0x0354
e58e: 50 91 55 03 lds r21, 0x0355
e592: 20 91 95 04 lds r18, 0x0495
e596: 30 91 96 04 lds r19, 0x0496
e59a: c9 01 movw r24, r18
e59c: 88 0f add r24, r24
e59e: 99 1f adc r25, r25
e5a0: 82 0f add r24, r18
e5a2: 93 1f adc r25, r19
e5a4: 84 0f add r24, r20
e5a6: 95 1f adc r25, r21
e5a8: 97 fd sbrc r25, 7
e5aa: 03 96 adiw r24, 0x03 ; 3
e5ac: 95 95 asr r25
e5ae: 87 95 ror r24
e5b0: 95 95 asr r25
e5b2: 87 95 ror r24
e5b4: 90 93 96 04 sts 0x0496, r25
e5b8: 80 93 95 04 sts 0x0495, r24
e5bc: 20 91 20 01 lds r18, 0x0120
e5c0: 2b 32 cpi r18, 0x2B ; 43
e5c2: a1 f4 brne .+40 ; 0xe5ec <BuildJeti_Vario+0x62>
e5c4: 40 91 2d 05 lds r20, 0x052D
e5c8: 20 91 f6 03 lds r18, 0x03F6
e5cc: 30 91 f7 03 lds r19, 0x03F7
e5d0: 42 9f mul r20, r18
e5d2: c0 01 movw r24, r0
e5d4: 43 9f mul r20, r19
e5d6: 90 0d add r25, r0
e5d8: 11 24 eor r1, r1
e5da: 97 fd sbrc r25, 7
e5dc: 4f 96 adiw r24, 0x1f ; 31
e5de: 45 e0 ldi r20, 0x05 ; 5
e5e0: 95 95 asr r25
e5e2: 87 95 ror r24
e5e4: 4a 95 dec r20
e5e6: e1 f7 brne .-8 ; 0xe5e0 <BuildJeti_Vario+0x56>
e5e8: 05 96 adiw r24, 0x05 ; 5
e5ea: 35 c0 rjmp .+106 ; 0xe656 <BuildJeti_Vario+0xcc>
e5ec: 2d 32 cpi r18, 0x2D ; 45
e5ee: a1 f4 brne .+40 ; 0xe618 <BuildJeti_Vario+0x8e>
e5f0: 40 91 2d 05 lds r20, 0x052D
e5f4: 20 91 f6 03 lds r18, 0x03F6
e5f8: 30 91 f7 03 lds r19, 0x03F7
e5fc: 42 9f mul r20, r18
e5fe: c0 01 movw r24, r0
e600: 43 9f mul r20, r19
e602: 90 0d add r25, r0
e604: 11 24 eor r1, r1
e606: 97 fd sbrc r25, 7
e608: 4f 96 adiw r24, 0x1f ; 31
e60a: 35 e0 ldi r19, 0x05 ; 5
e60c: 95 95 asr r25
e60e: 87 95 ror r24
e610: 3a 95 dec r19
e612: e1 f7 brne .-8 ; 0xe60c <BuildJeti_Vario+0x82>
e614: 05 97 sbiw r24, 0x05 ; 5
e616: 1f c0 rjmp .+62 ; 0xe656 <BuildJeti_Vario+0xcc>
e618: 20 32 cpi r18, 0x20 ; 32
e61a: 61 f4 brne .+24 ; 0xe634 <BuildJeti_Vario+0xaa>
e61c: 20 91 c9 03 lds r18, 0x03C9
e620: 21 ff sbrs r18, 1
e622: 17 c0 rjmp .+46 ; 0xe652 <BuildJeti_Vario+0xc8>
e624: 97 fd sbrc r25, 7
e626: 4f 96 adiw r24, 0x1f ; 31
e628: 25 e0 ldi r18, 0x05 ; 5
e62a: 95 95 asr r25
e62c: 87 95 ror r24
e62e: 2a 95 dec r18
e630: e1 f7 brne .-8 ; 0xe62a <BuildJeti_Vario+0xa0>
e632: 11 c0 rjmp .+34 ; 0xe656 <BuildJeti_Vario+0xcc>
e634: 2e 35 cpi r18, 0x5E ; 94
e636: 21 f4 brne .+8 ; 0xe640 <BuildJeti_Vario+0xb6>
e638: 80 91 f1 03 lds r24, 0x03F1
e63c: 90 e0 ldi r25, 0x00 ; 0
e63e: 0b c0 rjmp .+22 ; 0xe656 <BuildJeti_Vario+0xcc>
e640: 26 37 cpi r18, 0x76 ; 118
e642: 39 f4 brne .+14 ; 0xe652 <BuildJeti_Vario+0xc8>
e644: 80 91 f1 03 lds r24, 0x03F1
e648: 90 e0 ldi r25, 0x00 ; 0
e64a: 91 95 neg r25
e64c: 81 95 neg r24
e64e: 91 09 sbc r25, r1
e650: 02 c0 rjmp .+4 ; 0xe656 <BuildJeti_Vario+0xcc>
e652: 80 e0 ldi r24, 0x00 ; 0
e654: 90 e0 ldi r25, 0x00 ; 0
e656: aa 27 eor r26, r26
e658: 97 fd sbrc r25, 7
e65a: a0 95 com r26
e65c: ba 2f mov r27, r26
e65e: 80 93 50 02 sts 0x0250, r24
e662: 90 93 51 02 sts 0x0251, r25
e666: a0 93 52 02 sts 0x0252, r26
e66a: b0 93 53 02 sts 0x0253, r27
e66e: 08 95 ret
 
0000e670 <JetiEX_Update>:
e670: cf 93 push r28
e672: df 93 push r29
e674: 0e 94 b2 57 call 0xaf64 ; 0xaf64 <GetHottestBl>
e678: 80 91 1a 01 lds r24, 0x011A
e67c: 90 91 1b 01 lds r25, 0x011B
e680: aa 27 eor r26, r26
e682: 97 fd sbrc r25, 7
e684: a0 95 com r26
e686: ba 2f mov r27, r26
e688: 80 93 7f 01 sts 0x017F, r24
e68c: 90 93 80 01 sts 0x0180, r25
e690: a0 93 81 01 sts 0x0181, r26
e694: b0 93 82 01 sts 0x0182, r27
e698: 80 91 13 05 lds r24, 0x0513
e69c: 90 91 14 05 lds r25, 0x0514
e6a0: a0 e0 ldi r26, 0x00 ; 0
e6a2: b0 e0 ldi r27, 0x00 ; 0
e6a4: 80 93 92 01 sts 0x0192, r24
e6a8: 90 93 93 01 sts 0x0193, r25
e6ac: a0 93 94 01 sts 0x0194, r26
e6b0: b0 93 95 01 sts 0x0195, r27
e6b4: 80 91 17 05 lds r24, 0x0517
e6b8: 90 91 18 05 lds r25, 0x0518
e6bc: ca e0 ldi r28, 0x0A ; 10
e6be: d0 e0 ldi r29, 0x00 ; 0
e6c0: be 01 movw r22, r28
e6c2: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
e6c6: cb 01 movw r24, r22
e6c8: a0 e0 ldi r26, 0x00 ; 0
e6ca: b0 e0 ldi r27, 0x00 ; 0
e6cc: 80 93 a5 01 sts 0x01A5, r24
e6d0: 90 93 a6 01 sts 0x01A6, r25
e6d4: a0 93 a7 01 sts 0x01A7, r26
e6d8: b0 93 a8 01 sts 0x01A8, r27
e6dc: 60 91 fc 03 lds r22, 0x03FC
e6e0: 70 91 fd 03 lds r23, 0x03FD
e6e4: 80 91 fe 03 lds r24, 0x03FE
e6e8: 90 91 ff 03 lds r25, 0x03FF
e6ec: 24 e6 ldi r18, 0x64 ; 100
e6ee: 30 e0 ldi r19, 0x00 ; 0
e6f0: 40 e0 ldi r20, 0x00 ; 0
e6f2: 50 e0 ldi r21, 0x00 ; 0
e6f4: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
e6f8: 20 93 b8 01 sts 0x01B8, r18
e6fc: 30 93 b9 01 sts 0x01B9, r19
e700: 40 93 ba 01 sts 0x01BA, r20
e704: 50 93 bb 01 sts 0x01BB, r21
e708: 80 91 4e 01 lds r24, 0x014E
e70c: 90 91 4f 01 lds r25, 0x014F
e710: aa 27 eor r26, r26
e712: 97 fd sbrc r25, 7
e714: a0 95 com r26
e716: ba 2f mov r27, r26
e718: 80 93 cb 01 sts 0x01CB, r24
e71c: 90 93 cc 01 sts 0x01CC, r25
e720: a0 93 cd 01 sts 0x01CD, r26
e724: b0 93 ce 01 sts 0x01CE, r27
e728: 80 91 b5 08 lds r24, 0x08B5
e72c: 90 e0 ldi r25, 0x00 ; 0
e72e: a0 e0 ldi r26, 0x00 ; 0
e730: b0 e0 ldi r27, 0x00 ; 0
e732: 80 93 de 01 sts 0x01DE, r24
e736: 90 93 df 01 sts 0x01DF, r25
e73a: a0 93 e0 01 sts 0x01E0, r26
e73e: b0 93 e1 01 sts 0x01E1, r27
e742: 80 91 b7 08 lds r24, 0x08B7
e746: 90 e0 ldi r25, 0x00 ; 0
e748: a0 e0 ldi r26, 0x00 ; 0
e74a: b0 e0 ldi r27, 0x00 ; 0
e74c: 80 93 f1 01 sts 0x01F1, r24
e750: 90 93 f2 01 sts 0x01F2, r25
e754: a0 93 f3 01 sts 0x01F3, r26
e758: b0 93 f4 01 sts 0x01F4, r27
e75c: 80 91 b8 08 lds r24, 0x08B8
e760: 90 91 b9 08 lds r25, 0x08B9
e764: be 01 movw r22, r28
e766: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
e76a: cb 01 movw r24, r22
e76c: a0 e0 ldi r26, 0x00 ; 0
e76e: b0 e0 ldi r27, 0x00 ; 0
e770: 80 93 04 02 sts 0x0204, r24
e774: 90 93 05 02 sts 0x0205, r25
e778: a0 93 06 02 sts 0x0206, r26
e77c: b0 93 07 02 sts 0x0207, r27
e780: 80 91 ba 08 lds r24, 0x08BA
e784: 90 91 bb 08 lds r25, 0x08BB
e788: aa 27 eor r26, r26
e78a: 97 fd sbrc r25, 7
e78c: a0 95 com r26
e78e: ba 2f mov r27, r26
e790: 80 93 17 02 sts 0x0217, r24
e794: 90 93 18 02 sts 0x0218, r25
e798: a0 93 19 02 sts 0x0219, r26
e79c: b0 93 1a 02 sts 0x021A, r27
e7a0: 80 91 82 04 lds r24, 0x0482
e7a4: 90 e0 ldi r25, 0x00 ; 0
e7a6: a0 e0 ldi r26, 0x00 ; 0
e7a8: b0 e0 ldi r27, 0x00 ; 0
e7aa: 80 93 2a 02 sts 0x022A, r24
e7ae: 90 93 2b 02 sts 0x022B, r25
e7b2: a0 93 2c 02 sts 0x022C, r26
e7b6: b0 93 2d 02 sts 0x022D, r27
e7ba: 80 91 b8 04 lds r24, 0x04B8
e7be: 90 e0 ldi r25, 0x00 ; 0
e7c0: a0 e0 ldi r26, 0x00 ; 0
e7c2: b0 e0 ldi r27, 0x00 ; 0
e7c4: 80 93 3d 02 sts 0x023D, r24
e7c8: 90 93 3e 02 sts 0x023E, r25
e7cc: a0 93 3f 02 sts 0x023F, r26
e7d0: b0 93 40 02 sts 0x0240, r27
e7d4: 80 91 b9 04 lds r24, 0x04B9
e7d8: 90 e0 ldi r25, 0x00 ; 0
e7da: a0 e0 ldi r26, 0x00 ; 0
e7dc: b0 e0 ldi r27, 0x00 ; 0
e7de: 80 93 63 02 sts 0x0263, r24
e7e2: 90 93 64 02 sts 0x0264, r25
e7e6: a0 93 65 02 sts 0x0265, r26
e7ea: b0 93 66 02 sts 0x0266, r27
e7ee: df 91 pop r29
e7f0: cf 91 pop r28
e7f2: 08 95 ret
 
0000e7f4 <LED_Init>:
e7f4: 87 b1 in r24, 0x07 ; 7
e7f6: 8c 60 ori r24, 0x0C ; 12
e7f8: 87 b9 out 0x07, r24 ; 7
e7fa: 42 98 cbi 0x08, 2 ; 8
e7fc: 43 98 cbi 0x08, 3 ; 8
e7fe: 10 92 9f 04 sts 0x049F, r1
e802: 80 e8 ldi r24, 0x80 ; 128
e804: 80 93 8f 02 sts 0x028F, r24
e808: 10 92 9e 04 sts 0x049E, r1
e80c: 80 93 8e 02 sts 0x028E, r24
e810: 08 95 ret
 
0000e812 <LED_Update>:
e812: 90 91 bb 04 lds r25, 0x04BB
e816: 91 11 cpse r25, r1
e818: 90 93 9c 04 sts 0x049C, r25
e81c: 80 91 9b 04 lds r24, 0x049B
e820: 2f ef ldi r18, 0xFF ; 255
e822: 28 0f add r18, r24
e824: 20 93 9b 04 sts 0x049B, r18
e828: 81 11 cpse r24, r1
e82a: 41 c1 rjmp .+642 ; 0xeaae <LED_Update+0x29c>
e82c: 80 91 65 05 lds r24, 0x0565
e830: 80 93 9a 04 sts 0x049A, r24
e834: 80 91 67 05 lds r24, 0x0567
e838: 80 93 99 04 sts 0x0499, r24
e83c: 89 e0 ldi r24, 0x09 ; 9
e83e: 80 93 9b 04 sts 0x049B, r24
e842: 80 91 c9 03 lds r24, 0x03C9
e846: 80 73 andi r24, 0x30 ; 48
e848: 21 f4 brne .+8 ; 0xe852 <LED_Update+0x40>
e84a: 80 91 40 0a lds r24, 0x0A40
e84e: 80 ff sbrs r24, 0
e850: 1d c0 rjmp .+58 ; 0xe88c <LED_Update+0x7a>
e852: 80 91 69 05 lds r24, 0x0569
e856: 88 23 and r24, r24
e858: 51 f0 breq .+20 ; 0xe86e <LED_Update+0x5c>
e85a: 80 91 98 04 lds r24, 0x0498
e85e: 81 11 cpse r24, r1
e860: 03 c0 rjmp .+6 ; 0xe868 <LED_Update+0x56>
e862: 84 e0 ldi r24, 0x04 ; 4
e864: 80 93 9f 04 sts 0x049F, r24
e868: 81 e0 ldi r24, 0x01 ; 1
e86a: 80 93 98 04 sts 0x0498, r24
e86e: 80 91 6a 05 lds r24, 0x056A
e872: 88 23 and r24, r24
e874: 79 f0 breq .+30 ; 0xe894 <LED_Update+0x82>
e876: 80 91 97 04 lds r24, 0x0497
e87a: 81 11 cpse r24, r1
e87c: 03 c0 rjmp .+6 ; 0xe884 <LED_Update+0x72>
e87e: 84 e0 ldi r24, 0x04 ; 4
e880: 80 93 9e 04 sts 0x049E, r24
e884: 81 e0 ldi r24, 0x01 ; 1
e886: 80 93 97 04 sts 0x0497, r24
e88a: 04 c0 rjmp .+8 ; 0xe894 <LED_Update+0x82>
e88c: 10 92 98 04 sts 0x0498, r1
e890: 10 92 97 04 sts 0x0497, r1
e894: 80 91 98 04 lds r24, 0x0498
e898: 81 11 cpse r24, r1
e89a: 7b c0 rjmp .+246 ; 0xe992 <LED_Update+0x180>
e89c: 80 91 93 05 lds r24, 0x0593
e8a0: 84 ff sbrs r24, 4
e8a2: 07 c0 rjmp .+14 ; 0xe8b2 <LED_Update+0xa0>
e8a4: 20 91 01 04 lds r18, 0x0401
e8a8: 21 11 cpse r18, r1
e8aa: 03 c0 rjmp .+6 ; 0xe8b2 <LED_Update+0xa0>
e8ac: 85 ff sbrs r24, 5
e8ae: 8d c0 rjmp .+282 ; 0xe9ca <LED_Update+0x1b8>
e8b0: 8a c0 rjmp .+276 ; 0xe9c6 <LED_Update+0x1b4>
e8b2: 80 91 66 05 lds r24, 0x0566
e8b6: 88 3f cpi r24, 0xF8 ; 248
e8b8: b0 f0 brcs .+44 ; 0xe8e6 <LED_Update+0xd4>
e8ba: 80 91 18 06 lds r24, 0x0618
e8be: 8d 3d cpi r24, 0xDD ; 221
e8c0: 28 f0 brcs .+10 ; 0xe8cc <LED_Update+0xba>
e8c2: 80 91 9a 04 lds r24, 0x049A
e8c6: 87 ff sbrs r24, 7
e8c8: 07 c0 rjmp .+14 ; 0xe8d8 <LED_Update+0xc6>
e8ca: 08 c0 rjmp .+16 ; 0xe8dc <LED_Update+0xca>
e8cc: 85 30 cpi r24, 0x05 ; 5
e8ce: 59 f4 brne .+22 ; 0xe8e6 <LED_Update+0xd4>
e8d0: 80 91 9a 04 lds r24, 0x049A
e8d4: 87 ff sbrs r24, 7
e8d6: 02 c0 rjmp .+4 ; 0xe8dc <LED_Update+0xca>
e8d8: 42 9a sbi 0x08, 2 ; 8
e8da: 01 c0 rjmp .+2 ; 0xe8de <LED_Update+0xcc>
e8dc: 42 98 cbi 0x08, 2 ; 8
e8de: 81 e0 ldi r24, 0x01 ; 1
e8e0: 80 93 8f 02 sts 0x028F, r24
e8e4: 53 c0 rjmp .+166 ; 0xe98c <LED_Update+0x17a>
e8e6: 80 91 9f 04 lds r24, 0x049F
e8ea: 2f ef ldi r18, 0xFF ; 255
e8ec: 28 0f add r18, r24
e8ee: 20 93 9f 04 sts 0x049F, r18
e8f2: 81 11 cpse r24, r1
e8f4: 6b c0 rjmp .+214 ; 0xe9cc <LED_Update+0x1ba>
e8f6: 20 91 96 05 lds r18, 0x0596
e8fa: 80 91 9a 04 lds r24, 0x049A
e8fe: 25 ff sbrs r18, 5
e900: 2e c0 rjmp .+92 ; 0xe95e <LED_Update+0x14c>
e902: 20 91 9c 04 lds r18, 0x049C
e906: 32 2f mov r19, r18
e908: 36 95 lsr r19
e90a: 30 93 9f 04 sts 0x049F, r19
e90e: 21 11 cpse r18, r1
e910: 0a c0 rjmp .+20 ; 0xe926 <LED_Update+0x114>
e912: 10 92 9d 04 sts 0x049D, r1
e916: 87 ff sbrs r24, 7
e918: 02 c0 rjmp .+4 ; 0xe91e <LED_Update+0x10c>
e91a: 42 9a sbi 0x08, 2 ; 8
e91c: 01 c0 rjmp .+2 ; 0xe920 <LED_Update+0x10e>
e91e: 42 98 cbi 0x08, 2 ; 8
e920: 10 92 8f 02 sts 0x028F, r1
e924: 53 c0 rjmp .+166 ; 0xe9cc <LED_Update+0x1ba>
e926: 21 e0 ldi r18, 0x01 ; 1
e928: 20 93 9d 04 sts 0x049D, r18
e92c: 20 91 8f 02 lds r18, 0x028F
e930: 21 11 cpse r18, r1
e932: 0a c0 rjmp .+20 ; 0xe948 <LED_Update+0x136>
e934: 90 93 9c 04 sts 0x049C, r25
e938: 10 92 bb 04 sts 0x04BB, r1
e93c: 90 e4 ldi r25, 0x40 ; 64
e93e: 90 93 8f 02 sts 0x028F, r25
e942: 87 ff sbrs r24, 7
e944: 42 c0 rjmp .+132 ; 0xe9ca <LED_Update+0x1b8>
e946: 3f c0 rjmp .+126 ; 0xe9c6 <LED_Update+0x1b4>
e948: 82 23 and r24, r18
e94a: 11 f0 breq .+4 ; 0xe950 <LED_Update+0x13e>
e94c: 42 9a sbi 0x08, 2 ; 8
e94e: 01 c0 rjmp .+2 ; 0xe952 <LED_Update+0x140>
e950: 42 98 cbi 0x08, 2 ; 8
e952: 80 91 8f 02 lds r24, 0x028F
e956: 86 95 lsr r24
e958: 80 93 8f 02 sts 0x028F, r24
e95c: 37 c0 rjmp .+110 ; 0xe9cc <LED_Update+0x1ba>
e95e: 90 91 18 06 lds r25, 0x0618
e962: 96 95 lsr r25
e964: 90 93 9f 04 sts 0x049F, r25
e968: 90 91 8f 02 lds r25, 0x028F
e96c: 91 30 cpi r25, 0x01 ; 1
e96e: 21 f4 brne .+8 ; 0xe978 <LED_Update+0x166>
e970: 10 92 9c 04 sts 0x049C, r1
e974: 90 e4 ldi r25, 0x40 ; 64
e976: 01 c0 rjmp .+2 ; 0xe97a <LED_Update+0x168>
e978: 96 95 lsr r25
e97a: 90 93 8f 02 sts 0x028F, r25
e97e: 90 91 8f 02 lds r25, 0x028F
e982: 98 23 and r25, r24
e984: 11 f0 breq .+4 ; 0xe98a <LED_Update+0x178>
e986: 42 9a sbi 0x08, 2 ; 8
e988: 01 c0 rjmp .+2 ; 0xe98c <LED_Update+0x17a>
e98a: 42 98 cbi 0x08, 2 ; 8
e98c: 10 92 9d 04 sts 0x049D, r1
e990: 1d c0 rjmp .+58 ; 0xe9cc <LED_Update+0x1ba>
e992: 80 91 9f 04 lds r24, 0x049F
e996: 9f ef ldi r25, 0xFF ; 255
e998: 98 0f add r25, r24
e99a: 90 93 9f 04 sts 0x049F, r25
e99e: 81 11 cpse r24, r1
e9a0: 15 c0 rjmp .+42 ; 0xe9cc <LED_Update+0x1ba>
e9a2: 89 e0 ldi r24, 0x09 ; 9
e9a4: 80 93 9f 04 sts 0x049F, r24
e9a8: 80 91 8f 02 lds r24, 0x028F
e9ac: 81 30 cpi r24, 0x01 ; 1
e9ae: 11 f4 brne .+4 ; 0xe9b4 <LED_Update+0x1a2>
e9b0: 80 e8 ldi r24, 0x80 ; 128
e9b2: 01 c0 rjmp .+2 ; 0xe9b6 <LED_Update+0x1a4>
e9b4: 86 95 lsr r24
e9b6: 80 93 8f 02 sts 0x028F, r24
e9ba: 80 91 69 05 lds r24, 0x0569
e9be: 90 91 8f 02 lds r25, 0x028F
e9c2: 89 23 and r24, r25
e9c4: 11 f0 breq .+4 ; 0xe9ca <LED_Update+0x1b8>
e9c6: 42 9a sbi 0x08, 2 ; 8
e9c8: 01 c0 rjmp .+2 ; 0xe9cc <LED_Update+0x1ba>
e9ca: 42 98 cbi 0x08, 2 ; 8
e9cc: 80 91 97 04 lds r24, 0x0497
e9d0: 81 11 cpse r24, r1
e9d2: 3e c0 rjmp .+124 ; 0xea50 <LED_Update+0x23e>
e9d4: 80 91 93 05 lds r24, 0x0593
e9d8: 87 ff sbrs r24, 7
e9da: 07 c0 rjmp .+14 ; 0xe9ea <LED_Update+0x1d8>
e9dc: 90 91 01 04 lds r25, 0x0401
e9e0: 91 11 cpse r25, r1
e9e2: 03 c0 rjmp .+6 ; 0xe9ea <LED_Update+0x1d8>
e9e4: 86 ff sbrs r24, 6
e9e6: 50 c0 rjmp .+160 ; 0xea88 <LED_Update+0x276>
e9e8: 4d c0 rjmp .+154 ; 0xea84 <LED_Update+0x272>
e9ea: 80 91 68 05 lds r24, 0x0568
e9ee: 88 3f cpi r24, 0xF8 ; 248
e9f0: b0 f0 brcs .+44 ; 0xea1e <LED_Update+0x20c>
e9f2: 80 91 40 06 lds r24, 0x0640
e9f6: 8d 3d cpi r24, 0xDD ; 221
e9f8: 28 f0 brcs .+10 ; 0xea04 <LED_Update+0x1f2>
e9fa: 80 91 99 04 lds r24, 0x0499
e9fe: 87 ff sbrs r24, 7
ea00: 07 c0 rjmp .+14 ; 0xea10 <LED_Update+0x1fe>
ea02: 08 c0 rjmp .+16 ; 0xea14 <LED_Update+0x202>
ea04: 85 30 cpi r24, 0x05 ; 5
ea06: 59 f4 brne .+22 ; 0xea1e <LED_Update+0x20c>
ea08: 80 91 99 04 lds r24, 0x0499
ea0c: 87 ff sbrs r24, 7
ea0e: 02 c0 rjmp .+4 ; 0xea14 <LED_Update+0x202>
ea10: 43 9a sbi 0x08, 3 ; 8
ea12: 01 c0 rjmp .+2 ; 0xea16 <LED_Update+0x204>
ea14: 43 98 cbi 0x08, 3 ; 8
ea16: 81 e0 ldi r24, 0x01 ; 1
ea18: 80 93 8e 02 sts 0x028E, r24
ea1c: 36 c0 rjmp .+108 ; 0xea8a <LED_Update+0x278>
ea1e: 80 91 9e 04 lds r24, 0x049E
ea22: 9f ef ldi r25, 0xFF ; 255
ea24: 98 0f add r25, r24
ea26: 90 93 9e 04 sts 0x049E, r25
ea2a: 81 11 cpse r24, r1
ea2c: 2e c0 rjmp .+92 ; 0xea8a <LED_Update+0x278>
ea2e: 80 91 40 06 lds r24, 0x0640
ea32: 86 95 lsr r24
ea34: 80 93 9e 04 sts 0x049E, r24
ea38: 80 91 8e 02 lds r24, 0x028E
ea3c: 81 30 cpi r24, 0x01 ; 1
ea3e: 11 f4 brne .+4 ; 0xea44 <LED_Update+0x232>
ea40: 80 e4 ldi r24, 0x40 ; 64
ea42: 01 c0 rjmp .+2 ; 0xea46 <LED_Update+0x234>
ea44: 86 95 lsr r24
ea46: 80 93 8e 02 sts 0x028E, r24
ea4a: 80 91 99 04 lds r24, 0x0499
ea4e: 16 c0 rjmp .+44 ; 0xea7c <LED_Update+0x26a>
ea50: 80 91 9e 04 lds r24, 0x049E
ea54: 9f ef ldi r25, 0xFF ; 255
ea56: 98 0f add r25, r24
ea58: 90 93 9e 04 sts 0x049E, r25
ea5c: 81 11 cpse r24, r1
ea5e: 15 c0 rjmp .+42 ; 0xea8a <LED_Update+0x278>
ea60: 89 e0 ldi r24, 0x09 ; 9
ea62: 80 93 9e 04 sts 0x049E, r24
ea66: 80 91 8e 02 lds r24, 0x028E
ea6a: 81 30 cpi r24, 0x01 ; 1
ea6c: 11 f4 brne .+4 ; 0xea72 <LED_Update+0x260>
ea6e: 80 e8 ldi r24, 0x80 ; 128
ea70: 01 c0 rjmp .+2 ; 0xea74 <LED_Update+0x262>
ea72: 86 95 lsr r24
ea74: 80 93 8e 02 sts 0x028E, r24
ea78: 80 91 6a 05 lds r24, 0x056A
ea7c: 90 91 8e 02 lds r25, 0x028E
ea80: 89 23 and r24, r25
ea82: 11 f0 breq .+4 ; 0xea88 <LED_Update+0x276>
ea84: 43 9a sbi 0x08, 3 ; 8
ea86: 01 c0 rjmp .+2 ; 0xea8a <LED_Update+0x278>
ea88: 43 98 cbi 0x08, 3 ; 8
ea8a: 42 9b sbis 0x08, 2 ; 8
ea8c: 05 c0 rjmp .+10 ; 0xea98 <LED_Update+0x286>
ea8e: 80 91 c8 03 lds r24, 0x03C8
ea92: 88 60 ori r24, 0x08 ; 8
ea94: 80 93 c8 03 sts 0x03C8, r24
ea98: 43 9b sbis 0x08, 3 ; 8
ea9a: 04 c0 rjmp .+8 ; 0xeaa4 <LED_Update+0x292>
ea9c: 80 91 c8 03 lds r24, 0x03C8
eaa0: 80 61 ori r24, 0x10 ; 16
eaa2: 03 c0 rjmp .+6 ; 0xeaaa <LED_Update+0x298>
eaa4: 80 91 c8 03 lds r24, 0x03C8
eaa8: 8f 7e andi r24, 0xEF ; 239
eaaa: 80 93 c8 03 sts 0x03C8, r24
eaae: 08 95 ret
 
0000eab0 <Menu_Putchar>:
eab0: e0 91 a2 04 lds r30, 0x04A2
eab4: e0 35 cpi r30, 0x50 ; 80
eab6: 40 f4 brcc .+16 ; 0xeac8 <Menu_Putchar+0x18>
eab8: 91 e0 ldi r25, 0x01 ; 1
eaba: 9e 0f add r25, r30
eabc: 90 93 a2 04 sts 0x04A2, r25
eac0: f0 e0 ldi r31, 0x00 ; 0
eac2: e3 54 subi r30, 0x43 ; 67
eac4: f8 4f sbci r31, 0xF8 ; 248
eac6: 80 83 st Z, r24
eac8: 08 95 ret
 
0000eaca <LcdClear>:
eaca: ed eb ldi r30, 0xBD ; 189
eacc: f7 e0 ldi r31, 0x07 ; 7
eace: 80 e2 ldi r24, 0x20 ; 32
ead0: 81 93 st Z+, r24
ead2: 98 e0 ldi r25, 0x08 ; 8
ead4: ed 30 cpi r30, 0x0D ; 13
ead6: f9 07 cpc r31, r25
ead8: d9 f7 brne .-10 ; 0xead0 <LcdClear+0x6>
eada: 08 95 ret
 
0000eadc <Menu>:
eadc: 4f 92 push r4
eade: 5f 92 push r5
eae0: 6f 92 push r6
eae2: 7f 92 push r7
eae4: 8f 92 push r8
eae6: 9f 92 push r9
eae8: af 92 push r10
eaea: bf 92 push r11
eaec: cf 92 push r12
eaee: df 92 push r13
eaf0: ef 92 push r14
eaf2: ff 92 push r15
eaf4: 0f 93 push r16
eaf6: 1f 93 push r17
eaf8: cf 93 push r28
eafa: df 93 push r29
eafc: 1f 92 push r1
eafe: cd b7 in r28, 0x3d ; 61
eb00: de b7 in r29, 0x3e ; 62
eb02: 80 91 a0 04 lds r24, 0x04A0
eb06: 80 ff sbrs r24, 0
eb08: 0a c0 rjmp .+20 ; 0xeb1e <Menu+0x42>
eb0a: 90 91 a1 04 lds r25, 0x04A1
eb0e: 99 23 and r25, r25
eb10: 11 f0 breq .+4 ; 0xeb16 <Menu+0x3a>
eb12: 91 50 subi r25, 0x01 ; 1
eb14: 02 c0 rjmp .+4 ; 0xeb1a <Menu+0x3e>
eb16: 90 91 90 02 lds r25, 0x0290
eb1a: 90 93 a1 04 sts 0x04A1, r25
eb1e: 81 ff sbrs r24, 1
eb20: 0c c0 rjmp .+24 ; 0xeb3a <Menu+0x5e>
eb22: 90 91 a1 04 lds r25, 0x04A1
eb26: 20 91 90 02 lds r18, 0x0290
eb2a: 92 13 cpse r25, r18
eb2c: 03 c0 rjmp .+6 ; 0xeb34 <Menu+0x58>
eb2e: 10 92 a1 04 sts 0x04A1, r1
eb32: 03 c0 rjmp .+6 ; 0xeb3a <Menu+0x5e>
eb34: 9f 5f subi r25, 0xFF ; 255
eb36: 90 93 a1 04 sts 0x04A1, r25
eb3a: 83 70 andi r24, 0x03 ; 3
eb3c: 83 30 cpi r24, 0x03 ; 3
eb3e: 11 f4 brne .+4 ; 0xeb44 <Menu+0x68>
eb40: 10 92 a1 04 sts 0x04A1, r1
eb44: c2 df rcall .-124 ; 0xeaca <LcdClear>
eb46: 80 91 a1 04 lds r24, 0x04A1
eb4a: e0 91 55 06 lds r30, 0x0655
eb4e: f0 91 56 06 lds r31, 0x0656
eb52: 8a 30 cpi r24, 0x0A ; 10
eb54: 40 f4 brcc .+16 ; 0xeb66 <Menu+0x8a>
eb56: 91 e1 ldi r25, 0x11 ; 17
eb58: 90 93 a2 04 sts 0x04A2, r25
eb5c: 1f 92 push r1
eb5e: 8f 93 push r24
eb60: 80 e8 ldi r24, 0x80 ; 128
eb62: 94 e1 ldi r25, 0x14 ; 20
eb64: 07 c0 rjmp .+14 ; 0xeb74 <Menu+0x98>
eb66: 90 e1 ldi r25, 0x10 ; 16
eb68: 90 93 a2 04 sts 0x04A2, r25
eb6c: 1f 92 push r1
eb6e: 8f 93 push r24
eb70: 8b e7 ldi r24, 0x7B ; 123
eb72: 94 e1 ldi r25, 0x14 ; 20
eb74: 9f 93 push r25
eb76: 8f 93 push r24
eb78: 88 e5 ldi r24, 0x58 ; 88
eb7a: 95 e7 ldi r25, 0x75 ; 117
eb7c: 9f 93 push r25
eb7e: 8f 93 push r24
eb80: 09 95 icall
eb82: 0f 90 pop r0
eb84: 0f 90 pop r0
eb86: 0f 90 pop r0
eb88: 0f 90 pop r0
eb8a: 0f 90 pop r0
eb8c: 0f 90 pop r0
eb8e: 20 91 a1 04 lds r18, 0x04A1
eb92: 82 2f mov r24, r18
eb94: 90 e0 ldi r25, 0x00 ; 0
eb96: 84 31 cpi r24, 0x14 ; 20
eb98: 91 05 cpc r25, r1
eb9a: 08 f0 brcs .+2 ; 0xeb9e <Menu+0xc2>
eb9c: e1 c7 rjmp .+4034 ; 0xfb60 <Menu+0x1084>
eb9e: fc 01 movw r30, r24
eba0: ee 56 subi r30, 0x6E ; 110
eba2: ff 4f sbci r31, 0xFF ; 255
eba4: 00 91 55 06 lds r16, 0x0655
eba8: 10 91 56 06 lds r17, 0x0656
ebac: 0c 94 24 9b jmp 0x13648 ; 0x13648 <__tablejump2__>
ebb0: 10 92 a2 04 sts 0x04A2, r1
ebb4: 8b e6 ldi r24, 0x6B ; 107
ebb6: 94 e1 ldi r25, 0x14 ; 20
ebb8: 9f 93 push r25
ebba: 8f 93 push r24
ebbc: b8 e5 ldi r27, 0x58 ; 88
ebbe: eb 2e mov r14, r27
ebc0: b5 e7 ldi r27, 0x75 ; 117
ebc2: fb 2e mov r15, r27
ebc4: ff 92 push r15
ebc6: ef 92 push r14
ebc8: f8 01 movw r30, r16
ebca: 09 95 icall
ebcc: 84 e1 ldi r24, 0x14 ; 20
ebce: 80 93 a2 04 sts 0x04A2, r24
ebd2: 80 91 54 01 lds r24, 0x0154
ebd6: 1f 92 push r1
ebd8: 91 e6 ldi r25, 0x61 ; 97
ebda: 9f 93 push r25
ebdc: 1f 92 push r1
ebde: 98 e0 ldi r25, 0x08 ; 8
ebe0: 9f 93 push r25
ebe2: 1f 92 push r1
ebe4: 92 e0 ldi r25, 0x02 ; 2
ebe6: 9f 93 push r25
ebe8: 6a e0 ldi r22, 0x0A ; 10
ebea: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
ebee: 1f 92 push r1
ebf0: 9f 93 push r25
ebf2: 1f 92 push r1
ebf4: 8f 93 push r24
ebf6: 83 e5 ldi r24, 0x53 ; 83
ebf8: 94 e1 ldi r25, 0x14 ; 20
ebfa: 9f 93 push r25
ebfc: 8f 93 push r24
ebfe: ff 92 push r15
ec00: ef 92 push r14
ec02: e0 91 55 06 lds r30, 0x0655
ec06: f0 91 56 06 lds r31, 0x0656
ec0a: 09 95 icall
ec0c: 88 e2 ldi r24, 0x28 ; 40
ec0e: 80 93 a2 04 sts 0x04A2, r24
ec12: 85 ea ldi r24, 0xA5 ; 165
ec14: 95 e0 ldi r25, 0x05 ; 5
ec16: 9f 93 push r25
ec18: 8f 93 push r24
ec1a: 80 91 52 01 lds r24, 0x0152
ec1e: 1f 92 push r1
ec20: 8f 93 push r24
ec22: 89 e4 ldi r24, 0x49 ; 73
ec24: 94 e1 ldi r25, 0x14 ; 20
ec26: 9f 93 push r25
ec28: 8f 93 push r24
ec2a: ff 92 push r15
ec2c: ef 92 push r14
ec2e: e0 91 55 06 lds r30, 0x0655
ec32: f0 91 56 06 lds r31, 0x0656
ec36: 09 95 icall
ec38: 80 91 c7 03 lds r24, 0x03C7
ec3c: 0f b6 in r0, 0x3f ; 63
ec3e: f8 94 cli
ec40: de bf out 0x3e, r29 ; 62
ec42: 0f be out 0x3f, r0 ; 63
ec44: cd bf out 0x3d, r28 ; 61
ec46: 81 ff sbrs r24, 1
ec48: 12 c0 rjmp .+36 ; 0xec6e <Menu+0x192>
ec4a: 88 e3 ldi r24, 0x38 ; 56
ec4c: 80 93 a2 04 sts 0x04A2, r24
ec50: 84 e4 ldi r24, 0x44 ; 68
ec52: 94 e1 ldi r25, 0x14 ; 20
ec54: 9f 93 push r25
ec56: 8f 93 push r24
ec58: ff 92 push r15
ec5a: ef 92 push r14
ec5c: e0 91 55 06 lds r30, 0x0655
ec60: f0 91 56 06 lds r31, 0x0656
ec64: 09 95 icall
ec66: 0f 90 pop r0
ec68: 0f 90 pop r0
ec6a: 0f 90 pop r0
ec6c: 0f 90 pop r0
ec6e: 80 91 40 0a lds r24, 0x0A40
ec72: 84 ff sbrs r24, 4
ec74: 06 c0 rjmp .+12 ; 0xec82 <Menu+0x1a6>
ec76: 8c e3 ldi r24, 0x3C ; 60
ec78: 80 93 a2 04 sts 0x04A2, r24
ec7c: 87 e3 ldi r24, 0x37 ; 55
ec7e: 94 e1 ldi r25, 0x14 ; 20
ec80: 48 c0 rjmp .+144 ; 0xed12 <Menu+0x236>
ec82: 80 91 b9 04 lds r24, 0x04B9
ec86: 88 23 and r24, r24
ec88: 09 f1 breq .+66 ; 0xeccc <Menu+0x1f0>
ec8a: 9c e3 ldi r25, 0x3C ; 60
ec8c: 90 93 a2 04 sts 0x04A2, r25
ec90: 1f 92 push r1
ec92: 8f 93 push r24
ec94: 8f e2 ldi r24, 0x2F ; 47
ec96: 94 e1 ldi r25, 0x14 ; 20
ec98: 9f 93 push r25
ec9a: 8f 93 push r24
ec9c: 08 e5 ldi r16, 0x58 ; 88
ec9e: 15 e7 ldi r17, 0x75 ; 117
eca0: 1f 93 push r17
eca2: 0f 93 push r16
eca4: e0 91 55 06 lds r30, 0x0655
eca8: f0 91 56 06 lds r31, 0x0656
ecac: 09 95 icall
ecae: 1f 92 push r1
ecb0: 1f 92 push r1
ecb2: 80 91 b9 04 lds r24, 0x04B9
ecb6: 31 e1 ldi r19, 0x11 ; 17
ecb8: 83 9f mul r24, r19
ecba: c0 01 movw r24, r0
ecbc: 11 24 eor r1, r1
ecbe: 8a 56 subi r24, 0x6A ; 106
ecc0: 95 4f sbci r25, 0xF5 ; 245
ecc2: 9f 93 push r25
ecc4: 8f 93 push r24
ecc6: 1f 93 push r17
ecc8: 0f 93 push r16
ecca: 37 c1 rjmp .+622 ; 0xef3a <Menu+0x45e>
eccc: 80 91 3f 0a lds r24, 0x0A3F
ecd0: 88 23 and r24, r24
ecd2: 41 f0 breq .+16 ; 0xece4 <Menu+0x208>
ecd4: 9c e3 ldi r25, 0x3C ; 60
ecd6: 90 93 a2 04 sts 0x04A2, r25
ecda: 1f 92 push r1
ecdc: 8f 93 push r24
ecde: 88 e1 ldi r24, 0x18 ; 24
ece0: 94 e1 ldi r25, 0x14 ; 20
ece2: 33 c0 rjmp .+102 ; 0xed4a <Menu+0x26e>
ece4: 80 91 dd 04 lds r24, 0x04DD
ece8: 88 23 and r24, r24
ecea: 41 f0 breq .+16 ; 0xecfc <Menu+0x220>
ecec: 9c e3 ldi r25, 0x3C ; 60
ecee: 90 93 a2 04 sts 0x04A2, r25
ecf2: 1f 92 push r1
ecf4: 8f 93 push r24
ecf6: 82 e0 ldi r24, 0x02 ; 2
ecf8: 94 e1 ldi r25, 0x14 ; 20
ecfa: 27 c0 rjmp .+78 ; 0xed4a <Menu+0x26e>
ecfc: 80 91 b0 02 lds r24, 0x02B0
ed00: 90 91 b1 02 lds r25, 0x02B1
ed04: 06 97 sbiw r24, 0x06 ; 6
ed06: a8 f4 brcc .+42 ; 0xed32 <Menu+0x256>
ed08: 8c e3 ldi r24, 0x3C ; 60
ed0a: 80 93 a2 04 sts 0x04A2, r24
ed0e: 85 ef ldi r24, 0xF5 ; 245
ed10: 93 e1 ldi r25, 0x13 ; 19
ed12: 9f 93 push r25
ed14: 8f 93 push r24
ed16: 88 e5 ldi r24, 0x58 ; 88
ed18: 95 e7 ldi r25, 0x75 ; 117
ed1a: 9f 93 push r25
ed1c: 8f 93 push r24
ed1e: e0 91 55 06 lds r30, 0x0655
ed22: f0 91 56 06 lds r31, 0x0656
ed26: 09 95 icall
ed28: 0f 90 pop r0
ed2a: 0f 90 pop r0
ed2c: 0f 90 pop r0
ed2e: 0f 90 pop r0
ed30: 20 c7 rjmp .+3648 ; 0xfb72 <Menu+0x1096>
ed32: 80 91 19 05 lds r24, 0x0519
ed36: 8e 31 cpi r24, 0x1E ; 30
ed38: 08 f0 brcs .+2 ; 0xed3c <Menu+0x260>
ed3a: 1b c7 rjmp .+3638 ; 0xfb72 <Menu+0x1096>
ed3c: 9c e3 ldi r25, 0x3C ; 60
ed3e: 90 93 a2 04 sts 0x04A2, r25
ed42: 1f 92 push r1
ed44: 8f 93 push r24
ed46: 81 ee ldi r24, 0xE1 ; 225
ed48: 93 e1 ldi r25, 0x13 ; 19
ed4a: 9f 93 push r25
ed4c: 8f 93 push r24
ed4e: 88 e5 ldi r24, 0x58 ; 88
ed50: 95 e7 ldi r25, 0x75 ; 117
ed52: 9f 93 push r25
ed54: 8f 93 push r24
ed56: e0 91 55 06 lds r30, 0x0655
ed5a: f0 91 56 06 lds r31, 0x0656
ed5e: 09 95 icall
ed60: 0f 90 pop r0
ed62: 0f 90 pop r0
ed64: 0f 90 pop r0
ed66: 0f 90 pop r0
ed68: 0f 90 pop r0
ed6a: 0f 90 pop r0
ed6c: 02 c7 rjmp .+3588 ; 0xfb72 <Menu+0x1096>
ed6e: 10 92 a2 04 sts 0x04A2, r1
ed72: 60 91 fc 03 lds r22, 0x03FC
ed76: 70 91 fd 03 lds r23, 0x03FD
ed7a: 80 91 fe 03 lds r24, 0x03FE
ed7e: 90 91 ff 03 lds r25, 0x03FF
ed82: f5 e0 ldi r31, 0x05 ; 5
ed84: cf 2e mov r12, r31
ed86: d1 2c mov r13, r1
ed88: e1 2c mov r14, r1
ed8a: f1 2c mov r15, r1
ed8c: a7 01 movw r20, r14
ed8e: 96 01 movw r18, r12
ed90: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
ed94: 3f 93 push r19
ed96: 2f 93 push r18
ed98: 84 ed ldi r24, 0xD4 ; 212
ed9a: 93 e1 ldi r25, 0x13 ; 19
ed9c: 9f 93 push r25
ed9e: 8f 93 push r24
eda0: a8 e5 ldi r26, 0x58 ; 88
eda2: aa 2e mov r10, r26
eda4: a5 e7 ldi r26, 0x75 ; 117
eda6: ba 2e mov r11, r26
eda8: bf 92 push r11
edaa: af 92 push r10
edac: f8 01 movw r30, r16
edae: 09 95 icall
edb0: 84 e1 ldi r24, 0x14 ; 20
edb2: 80 93 a2 04 sts 0x04A2, r24
edb6: 60 91 f8 03 lds r22, 0x03F8
edba: 70 91 f9 03 lds r23, 0x03F9
edbe: 80 91 fa 03 lds r24, 0x03FA
edc2: 90 91 fb 03 lds r25, 0x03FB
edc6: a7 01 movw r20, r14
edc8: 96 01 movw r18, r12
edca: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
edce: 3f 93 push r19
edd0: 2f 93 push r18
edd2: 87 ec ldi r24, 0xC7 ; 199
edd4: 93 e1 ldi r25, 0x13 ; 19
edd6: 9f 93 push r25
edd8: 8f 93 push r24
edda: bf 92 push r11
eddc: af 92 push r10
edde: e0 91 55 06 lds r30, 0x0655
ede2: f0 91 56 06 lds r31, 0x0656
ede6: 09 95 icall
ede8: 88 e2 ldi r24, 0x28 ; 40
edea: 80 93 a2 04 sts 0x04A2, r24
edee: 80 91 10 01 lds r24, 0x0110
edf2: 90 91 11 01 lds r25, 0x0111
edf6: 9f 93 push r25
edf8: 8f 93 push r24
edfa: 8a eb ldi r24, 0xBA ; 186
edfc: 93 e1 ldi r25, 0x13 ; 19
edfe: 9f 93 push r25
ee00: 8f 93 push r24
ee02: bf 92 push r11
ee04: af 92 push r10
ee06: e0 91 55 06 lds r30, 0x0655
ee0a: f0 91 56 06 lds r31, 0x0656
ee0e: 09 95 icall
ee10: 8c e3 ldi r24, 0x3C ; 60
ee12: 80 93 a2 04 sts 0x04A2, r24
ee16: 87 b5 in r24, 0x27 ; 39
ee18: 1f 92 push r1
ee1a: 8f 93 push r24
ee1c: 8d ea ldi r24, 0xAD ; 173
ee1e: 93 e1 ldi r25, 0x13 ; 19
ee20: 9f 93 push r25
ee22: 8f 93 push r24
ee24: bf 92 push r11
ee26: af 92 push r10
ee28: e0 91 55 06 lds r30, 0x0655
ee2c: f0 91 56 06 lds r31, 0x0656
ee30: 09 95 icall
ee32: 0f b6 in r0, 0x3f ; 63
ee34: f8 94 cli
ee36: de bf out 0x3e, r29 ; 62
ee38: 0f be out 0x3f, r0 ; 63
ee3a: cd bf out 0x3d, r28 ; 61
ee3c: 80 91 c0 03 lds r24, 0x03C0
ee40: 88 23 and r24, r24
ee42: 09 f4 brne .+2 ; 0xee46 <Menu+0x36a>
ee44: 96 c6 rjmp .+3372 ; 0xfb72 <Menu+0x1096>
ee46: 89 e3 ldi r24, 0x39 ; 57
ee48: 80 93 a2 04 sts 0x04A2, r24
ee4c: 89 ea ldi r24, 0xA9 ; 169
ee4e: 93 e1 ldi r25, 0x13 ; 19
ee50: 9f 93 push r25
ee52: 8f 93 push r24
ee54: bf 92 push r11
ee56: af 92 push r10
ee58: e0 91 55 06 lds r30, 0x0655
ee5c: f0 91 56 06 lds r31, 0x0656
ee60: 09 95 icall
ee62: 8d e4 ldi r24, 0x4D ; 77
ee64: 80 93 a2 04 sts 0x04A2, r24
ee68: 80 91 0c 01 lds r24, 0x010C
ee6c: 1f 92 push r1
ee6e: 8f 93 push r24
ee70: 86 ea ldi r24, 0xA6 ; 166
ee72: 93 e1 ldi r25, 0x13 ; 19
ee74: 9f 93 push r25
ee76: 8f 93 push r24
ee78: bf 92 push r11
ee7a: af 92 push r10
ee7c: 5e c0 rjmp .+188 ; 0xef3a <Menu+0x45e>
ee7e: 10 92 a2 04 sts 0x04A2, r1
ee82: 89 e9 ldi r24, 0x99 ; 153
ee84: 93 e1 ldi r25, 0x13 ; 19
ee86: 9f 93 push r25
ee88: 8f 93 push r24
ee8a: 68 e5 ldi r22, 0x58 ; 88
ee8c: a6 2e mov r10, r22
ee8e: 65 e7 ldi r22, 0x75 ; 117
ee90: b6 2e mov r11, r22
ee92: bf 92 push r11
ee94: af 92 push r10
ee96: f8 01 movw r30, r16
ee98: 09 95 icall
ee9a: 84 e1 ldi r24, 0x14 ; 20
ee9c: 80 93 a2 04 sts 0x04A2, r24
eea0: 60 91 40 04 lds r22, 0x0440
eea4: 70 91 41 04 lds r23, 0x0441
eea8: 80 91 42 04 lds r24, 0x0442
eeac: 90 91 43 04 lds r25, 0x0443
eeb0: c1 2c mov r12, r1
eeb2: e4 e0 ldi r30, 0x04 ; 4
eeb4: de 2e mov r13, r30
eeb6: e1 2c mov r14, r1
eeb8: f1 2c mov r15, r1
eeba: a7 01 movw r20, r14
eebc: 96 01 movw r18, r12
eebe: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
eec2: 5f 93 push r21
eec4: 4f 93 push r20
eec6: 3f 93 push r19
eec8: 2f 93 push r18
eeca: 8a e8 ldi r24, 0x8A ; 138
eecc: 93 e1 ldi r25, 0x13 ; 19
eece: 9f 93 push r25
eed0: 8f 93 push r24
eed2: bf 92 push r11
eed4: af 92 push r10
eed6: e0 91 55 06 lds r30, 0x0655
eeda: f0 91 56 06 lds r31, 0x0656
eede: 09 95 icall
eee0: 88 e2 ldi r24, 0x28 ; 40
eee2: 80 93 a2 04 sts 0x04A2, r24
eee6: 60 91 3c 04 lds r22, 0x043C
eeea: 70 91 3d 04 lds r23, 0x043D
eeee: 80 91 3e 04 lds r24, 0x043E
eef2: 90 91 3f 04 lds r25, 0x043F
eef6: a7 01 movw r20, r14
eef8: 96 01 movw r18, r12
eefa: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
eefe: 5f 93 push r21
ef00: 4f 93 push r20
ef02: 3f 93 push r19
ef04: 2f 93 push r18
ef06: 8b e7 ldi r24, 0x7B ; 123
ef08: 93 e1 ldi r25, 0x13 ; 19
ef0a: 9f 93 push r25
ef0c: 8f 93 push r24
ef0e: bf 92 push r11
ef10: af 92 push r10
ef12: e0 91 55 06 lds r30, 0x0655
ef16: f0 91 56 06 lds r31, 0x0656
ef1a: 09 95 icall
ef1c: 8c e3 ldi r24, 0x3C ; 60
ef1e: 80 93 a2 04 sts 0x04A2, r24
ef22: 80 91 43 06 lds r24, 0x0643
ef26: 8f 93 push r24
ef28: 80 91 42 06 lds r24, 0x0642
ef2c: 8f 93 push r24
ef2e: 8c e6 ldi r24, 0x6C ; 108
ef30: 93 e1 ldi r25, 0x13 ; 19
ef32: 9f 93 push r25
ef34: 8f 93 push r24
ef36: bf 92 push r11
ef38: af 92 push r10
ef3a: e0 91 55 06 lds r30, 0x0655
ef3e: f0 91 56 06 lds r31, 0x0656
ef42: 09 95 icall
ef44: da c0 rjmp .+436 ; 0xf0fa <Menu+0x61e>
ef46: aa 24 eor r10, r10
ef48: a3 94 inc r10
ef4a: b1 2c mov r11, r1
ef4c: 44 e1 ldi r20, 0x14 ; 20
ef4e: d4 2e mov r13, r20
ef50: 5a e5 ldi r21, 0x5A ; 90
ef52: e5 2e mov r14, r21
ef54: 53 e1 ldi r21, 0x13 ; 19
ef56: f5 2e mov r15, r21
ef58: 08 e5 ldi r16, 0x58 ; 88
ef5a: 15 e7 ldi r17, 0x75 ; 117
ef5c: 8a 2d mov r24, r10
ef5e: 86 95 lsr r24
ef60: 8d 9d mul r24, r13
ef62: 80 2d mov r24, r0
ef64: 11 24 eor r1, r1
ef66: 80 93 a2 04 sts 0x04A2, r24
ef6a: c5 01 movw r24, r10
ef6c: 01 96 adiw r24, 0x01 ; 1
ef6e: fc 01 movw r30, r24
ef70: ee 0f add r30, r30
ef72: ff 1f adc r31, r31
ef74: e2 5f subi r30, 0xF2 ; 242
ef76: f7 4f sbci r31, 0xF7 ; 247
ef78: 40 81 ld r20, Z
ef7a: 51 81 ldd r21, Z+1 ; 0x01
ef7c: f5 01 movw r30, r10
ef7e: ee 0f add r30, r30
ef80: ff 1f adc r31, r31
ef82: e2 5f subi r30, 0xF2 ; 242
ef84: f7 4f sbci r31, 0xF7 ; 247
ef86: 20 81 ld r18, Z
ef88: 31 81 ldd r19, Z+1 ; 0x01
ef8a: 5f 93 push r21
ef8c: 4f 93 push r20
ef8e: 9f 93 push r25
ef90: 8f 93 push r24
ef92: 3f 93 push r19
ef94: 2f 93 push r18
ef96: bf 92 push r11
ef98: af 92 push r10
ef9a: ff 92 push r15
ef9c: ef 92 push r14
ef9e: 1f 93 push r17
efa0: 0f 93 push r16
efa2: e0 91 55 06 lds r30, 0x0655
efa6: f0 91 56 06 lds r31, 0x0656
efaa: 09 95 icall
efac: 32 e0 ldi r19, 0x02 ; 2
efae: a3 0e add r10, r19
efb0: b1 1c adc r11, r1
efb2: 0f b6 in r0, 0x3f ; 63
efb4: f8 94 cli
efb6: de bf out 0x3e, r29 ; 62
efb8: 0f be out 0x3f, r0 ; 63
efba: cd bf out 0x3d, r28 ; 61
efbc: 59 e0 ldi r21, 0x09 ; 9
efbe: a5 16 cp r10, r21
efc0: b1 04 cpc r11, r1
efc2: 61 f6 brne .-104 ; 0xef5c <Menu+0x480>
efc4: d6 c5 rjmp .+2988 ; 0xfb72 <Menu+0x1096>
efc6: 10 92 a2 04 sts 0x04A2, r1
efca: e0 91 1d 05 lds r30, 0x051D
efce: f0 e0 ldi r31, 0x00 ; 0
efd0: ee 0f add r30, r30
efd2: ff 1f adc r31, r31
efd4: e2 5f subi r30, 0xF2 ; 242
efd6: f7 4f sbci r31, 0xF7 ; 247
efd8: 20 81 ld r18, Z
efda: 31 81 ldd r19, Z+1 ; 0x01
efdc: e0 91 1c 05 lds r30, 0x051C
efe0: f0 e0 ldi r31, 0x00 ; 0
efe2: ee 0f add r30, r30
efe4: ff 1f adc r31, r31
efe6: e2 5f subi r30, 0xF2 ; 242
efe8: f7 4f sbci r31, 0xF7 ; 247
efea: 80 81 ld r24, Z
efec: 91 81 ldd r25, Z+1 ; 0x01
efee: 3f 93 push r19
eff0: 2f 93 push r18
eff2: 9f 93 push r25
eff4: 8f 93 push r24
eff6: 8a e4 ldi r24, 0x4A ; 74
eff8: 93 e1 ldi r25, 0x13 ; 19
effa: 9f 93 push r25
effc: 8f 93 push r24
effe: 28 e5 ldi r18, 0x58 ; 88
f000: e2 2e mov r14, r18
f002: 25 e7 ldi r18, 0x75 ; 117
f004: f2 2e mov r15, r18
f006: ff 92 push r15
f008: ef 92 push r14
f00a: f8 01 movw r30, r16
f00c: 09 95 icall
f00e: 84 e1 ldi r24, 0x14 ; 20
f010: 80 93 a2 04 sts 0x04A2, r24
f014: e0 91 1f 05 lds r30, 0x051F
f018: f0 e0 ldi r31, 0x00 ; 0
f01a: ee 0f add r30, r30
f01c: ff 1f adc r31, r31
f01e: e2 5f subi r30, 0xF2 ; 242
f020: f7 4f sbci r31, 0xF7 ; 247
f022: 20 81 ld r18, Z
f024: 31 81 ldd r19, Z+1 ; 0x01
f026: e0 91 1e 05 lds r30, 0x051E
f02a: f0 e0 ldi r31, 0x00 ; 0
f02c: ee 0f add r30, r30
f02e: ff 1f adc r31, r31
f030: e2 5f subi r30, 0xF2 ; 242
f032: f7 4f sbci r31, 0xF7 ; 247
f034: 80 81 ld r24, Z
f036: 91 81 ldd r25, Z+1 ; 0x01
f038: 3f 93 push r19
f03a: 2f 93 push r18
f03c: 81 58 subi r24, 0x81 ; 129
f03e: 9f 4f sbci r25, 0xFF ; 255
f040: 9f 93 push r25
f042: 8f 93 push r24
f044: 8a e3 ldi r24, 0x3A ; 58
f046: 93 e1 ldi r25, 0x13 ; 19
f048: 9f 93 push r25
f04a: 8f 93 push r24
f04c: ff 92 push r15
f04e: ef 92 push r14
f050: e0 91 55 06 lds r30, 0x0655
f054: f0 91 56 06 lds r31, 0x0656
f058: 09 95 icall
f05a: 88 e2 ldi r24, 0x28 ; 40
f05c: 80 93 a2 04 sts 0x04A2, r24
f060: e0 91 21 05 lds r30, 0x0521
f064: f0 e0 ldi r31, 0x00 ; 0
f066: ee 0f add r30, r30
f068: ff 1f adc r31, r31
f06a: e2 5f subi r30, 0xF2 ; 242
f06c: f7 4f sbci r31, 0xF7 ; 247
f06e: 20 81 ld r18, Z
f070: 31 81 ldd r19, Z+1 ; 0x01
f072: e0 91 20 05 lds r30, 0x0520
f076: f0 e0 ldi r31, 0x00 ; 0
f078: ee 0f add r30, r30
f07a: ff 1f adc r31, r31
f07c: e2 5f subi r30, 0xF2 ; 242
f07e: f7 4f sbci r31, 0xF7 ; 247
f080: 80 81 ld r24, Z
f082: 91 81 ldd r25, Z+1 ; 0x01
f084: 21 58 subi r18, 0x81 ; 129
f086: 3f 4f sbci r19, 0xFF ; 255
f088: 3f 93 push r19
f08a: 2f 93 push r18
f08c: 81 58 subi r24, 0x81 ; 129
f08e: 9f 4f sbci r25, 0xFF ; 255
f090: 9f 93 push r25
f092: 8f 93 push r24
f094: 8a e2 ldi r24, 0x2A ; 42
f096: 93 e1 ldi r25, 0x13 ; 19
f098: 9f 93 push r25
f09a: 8f 93 push r24
f09c: ff 92 push r15
f09e: ef 92 push r14
f0a0: e0 91 55 06 lds r30, 0x0655
f0a4: f0 91 56 06 lds r31, 0x0656
f0a8: 09 95 icall
f0aa: 8c e3 ldi r24, 0x3C ; 60
f0ac: 80 93 a2 04 sts 0x04A2, r24
f0b0: e0 91 23 05 lds r30, 0x0523
f0b4: f0 e0 ldi r31, 0x00 ; 0
f0b6: ee 0f add r30, r30
f0b8: ff 1f adc r31, r31
f0ba: e2 5f subi r30, 0xF2 ; 242
f0bc: f7 4f sbci r31, 0xF7 ; 247
f0be: 20 81 ld r18, Z
f0c0: 31 81 ldd r19, Z+1 ; 0x01
f0c2: e0 91 22 05 lds r30, 0x0522
f0c6: f0 e0 ldi r31, 0x00 ; 0
f0c8: ee 0f add r30, r30
f0ca: ff 1f adc r31, r31
f0cc: e2 5f subi r30, 0xF2 ; 242
f0ce: f7 4f sbci r31, 0xF7 ; 247
f0d0: 80 81 ld r24, Z
f0d2: 91 81 ldd r25, Z+1 ; 0x01
f0d4: 21 58 subi r18, 0x81 ; 129
f0d6: 3f 4f sbci r19, 0xFF ; 255
f0d8: 3f 93 push r19
f0da: 2f 93 push r18
f0dc: 81 58 subi r24, 0x81 ; 129
f0de: 9f 4f sbci r25, 0xFF ; 255
f0e0: 9f 93 push r25
f0e2: 8f 93 push r24
f0e4: 8a e1 ldi r24, 0x1A ; 26
f0e6: 93 e1 ldi r25, 0x13 ; 19
f0e8: 9f 93 push r25
f0ea: 8f 93 push r24
f0ec: ff 92 push r15
f0ee: ef 92 push r14
f0f0: e0 91 55 06 lds r30, 0x0655
f0f4: f0 91 56 06 lds r31, 0x0656
f0f8: 09 95 icall
f0fa: 0f b6 in r0, 0x3f ; 63
f0fc: f8 94 cli
f0fe: de bf out 0x3e, r29 ; 62
f100: 0f be out 0x3f, r0 ; 63
f102: cd bf out 0x3d, r28 ; 61
f104: 36 c5 rjmp .+2668 ; 0xfb72 <Menu+0x1096>
f106: 10 92 a2 04 sts 0x04A2, r1
f10a: 8c e0 ldi r24, 0x0C ; 12
f10c: 93 e1 ldi r25, 0x13 ; 19
f10e: 9f 93 push r25
f110: 8f 93 push r24
f112: 88 e5 ldi r24, 0x58 ; 88
f114: 95 e7 ldi r25, 0x75 ; 117
f116: 9f 93 push r25
f118: 8f 93 push r24
f11a: f8 01 movw r30, r16
f11c: 09 95 icall
f11e: 84 e1 ldi r24, 0x14 ; 20
f120: 80 93 a2 04 sts 0x04A2, r24
f124: 40 91 65 03 lds r20, 0x0365
f128: 50 91 66 03 lds r21, 0x0366
f12c: 30 91 55 04 lds r19, 0x0455
f130: 20 91 56 04 lds r18, 0x0456
f134: 2f 93 push r18
f136: 3f 93 push r19
f138: 83 2f mov r24, r19
f13a: 92 2f mov r25, r18
f13c: 97 fd sbrc r25, 7
f13e: 07 96 adiw r24, 0x07 ; 7
f140: 9c 01 movw r18, r24
f142: 03 e0 ldi r16, 0x03 ; 3
f144: 35 95 asr r19
f146: 27 95 ror r18
f148: 0a 95 dec r16
f14a: e1 f7 brne .-8 ; 0xf144 <Menu+0x668>
f14c: ca 01 movw r24, r20
f14e: 82 1b sub r24, r18
f150: 93 0b sbc r25, r19
f152: 9f 93 push r25
f154: 8f 93 push r24
f156: 8d ef ldi r24, 0xFD ; 253
f158: 92 e1 ldi r25, 0x12 ; 18
f15a: 9f 93 push r25
f15c: 8f 93 push r24
f15e: 88 e5 ldi r24, 0x58 ; 88
f160: 95 e7 ldi r25, 0x75 ; 117
f162: 9f 93 push r25
f164: 8f 93 push r24
f166: e0 91 55 06 lds r30, 0x0655
f16a: f0 91 56 06 lds r31, 0x0656
f16e: 09 95 icall
f170: 88 e2 ldi r24, 0x28 ; 40
f172: 80 93 a2 04 sts 0x04A2, r24
f176: 40 91 63 03 lds r20, 0x0363
f17a: 50 91 64 03 lds r21, 0x0364
f17e: 30 91 53 04 lds r19, 0x0453
f182: 20 91 54 04 lds r18, 0x0454
f186: 2f 93 push r18
f188: 3f 93 push r19
f18a: 83 2f mov r24, r19
f18c: 92 2f mov r25, r18
f18e: 97 fd sbrc r25, 7
f190: 07 96 adiw r24, 0x07 ; 7
f192: 9c 01 movw r18, r24
f194: 13 e0 ldi r17, 0x03 ; 3
f196: 35 95 asr r19
f198: 27 95 ror r18
f19a: 1a 95 dec r17
f19c: e1 f7 brne .-8 ; 0xf196 <Menu+0x6ba>
f19e: ca 01 movw r24, r20
f1a0: 82 1b sub r24, r18
f1a2: 93 0b sbc r25, r19
f1a4: 9f 93 push r25
f1a6: 8f 93 push r24
f1a8: 8e ee ldi r24, 0xEE ; 238
f1aa: 92 e1 ldi r25, 0x12 ; 18
f1ac: 9f 93 push r25
f1ae: 8f 93 push r24
f1b0: 08 e5 ldi r16, 0x58 ; 88
f1b2: 15 e7 ldi r17, 0x75 ; 117
f1b4: 1f 93 push r17
f1b6: 0f 93 push r16
f1b8: e0 91 55 06 lds r30, 0x0655
f1bc: f0 91 56 06 lds r31, 0x0656
f1c0: 09 95 icall
f1c2: 8c e3 ldi r24, 0x3C ; 60
f1c4: 80 93 a2 04 sts 0x04A2, r24
f1c8: 80 91 51 04 lds r24, 0x0451
f1cc: 90 91 52 04 lds r25, 0x0452
f1d0: 20 91 61 03 lds r18, 0x0361
f1d4: 30 91 62 03 lds r19, 0x0362
f1d8: 9f 93 push r25
f1da: 8f 93 push r24
f1dc: 82 1b sub r24, r18
f1de: 93 0b sbc r25, r19
f1e0: 9f 93 push r25
f1e2: 8f 93 push r24
f1e4: 8f ed ldi r24, 0xDF ; 223
f1e6: 92 e1 ldi r25, 0x12 ; 18
f1e8: 9f 93 push r25
f1ea: 8f 93 push r24
f1ec: 1f 93 push r17
f1ee: 0f 93 push r16
f1f0: 7f cf rjmp .-258 ; 0xf0f0 <Menu+0x614>
f1f2: 10 92 a2 04 sts 0x04A2, r1
f1f6: 82 ed ldi r24, 0xD2 ; 210
f1f8: 92 e1 ldi r25, 0x12 ; 18
f1fa: 9f 93 push r25
f1fc: 8f 93 push r24
f1fe: b8 e5 ldi r27, 0x58 ; 88
f200: eb 2e mov r14, r27
f202: b5 e7 ldi r27, 0x75 ; 117
f204: fb 2e mov r15, r27
f206: ff 92 push r15
f208: ef 92 push r14
f20a: f8 01 movw r30, r16
f20c: 09 95 icall
f20e: 84 e1 ldi r24, 0x14 ; 20
f210: 80 93 a2 04 sts 0x04A2, r24
f214: 80 91 5d 03 lds r24, 0x035D
f218: 90 91 5e 03 lds r25, 0x035E
f21c: 20 91 4c 04 lds r18, 0x044C
f220: 2f 93 push r18
f222: 20 91 4b 04 lds r18, 0x044B
f226: 2f 93 push r18
f228: 9f 93 push r25
f22a: 8f 93 push r24
f22c: 83 ec ldi r24, 0xC3 ; 195
f22e: 92 e1 ldi r25, 0x12 ; 18
f230: 9f 93 push r25
f232: 8f 93 push r24
f234: ff 92 push r15
f236: ef 92 push r14
f238: e0 91 55 06 lds r30, 0x0655
f23c: f0 91 56 06 lds r31, 0x0656
f240: 09 95 icall
f242: 88 e2 ldi r24, 0x28 ; 40
f244: 80 93 a2 04 sts 0x04A2, r24
f248: 80 91 5f 03 lds r24, 0x035F
f24c: 90 91 60 03 lds r25, 0x0360
f250: 20 91 4a 04 lds r18, 0x044A
f254: 2f 93 push r18
f256: 20 91 49 04 lds r18, 0x0449
f25a: 2f 93 push r18
f25c: 9f 93 push r25
f25e: 8f 93 push r24
f260: 84 eb ldi r24, 0xB4 ; 180
f262: 92 e1 ldi r25, 0x12 ; 18
f264: 9f 93 push r25
f266: 8f 93 push r24
f268: ff 92 push r15
f26a: ef 92 push r14
f26c: e0 91 55 06 lds r30, 0x0655
f270: f0 91 56 06 lds r31, 0x0656
f274: 09 95 icall
f276: 8c e3 ldi r24, 0x3C ; 60
f278: 80 93 a2 04 sts 0x04A2, r24
f27c: 80 91 5b 03 lds r24, 0x035B
f280: 90 91 5c 03 lds r25, 0x035C
f284: 20 91 46 04 lds r18, 0x0446
f288: 2f 93 push r18
f28a: 20 91 45 04 lds r18, 0x0445
f28e: 2f 93 push r18
f290: 9f 93 push r25
f292: 8f 93 push r24
f294: 85 ea ldi r24, 0xA5 ; 165
f296: 92 e1 ldi r25, 0x12 ; 18
f298: 9f 93 push r25
f29a: 8f 93 push r24
f29c: ff 92 push r15
f29e: ef 92 push r14
f2a0: 27 cf rjmp .-434 ; 0xf0f0 <Menu+0x614>
f2a2: 10 92 a2 04 sts 0x04A2, r1
f2a6: 80 91 1a 01 lds r24, 0x011A
f2aa: 90 91 1b 01 lds r25, 0x011B
f2ae: 20 91 1a 01 lds r18, 0x011A
f2b2: 30 91 1b 01 lds r19, 0x011B
f2b6: fa e0 ldi r31, 0x0A ; 10
f2b8: ef 2e mov r14, r31
f2ba: f1 2c mov r15, r1
f2bc: b7 01 movw r22, r14
f2be: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
f2c2: 9f 93 push r25
f2c4: 8f 93 push r24
f2c6: c9 01 movw r24, r18
f2c8: b7 01 movw r22, r14
f2ca: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
f2ce: 7f 93 push r23
f2d0: 6f 93 push r22
f2d2: 81 e9 ldi r24, 0x91 ; 145
f2d4: 92 e1 ldi r25, 0x12 ; 18
f2d6: 9f 93 push r25
f2d8: 8f 93 push r24
f2da: a8 e5 ldi r26, 0x58 ; 88
f2dc: ca 2e mov r12, r26
f2de: a5 e7 ldi r26, 0x75 ; 117
f2e0: da 2e mov r13, r26
f2e2: df 92 push r13
f2e4: cf 92 push r12
f2e6: f8 01 movw r30, r16
f2e8: 09 95 icall
f2ea: 84 e1 ldi r24, 0x14 ; 20
f2ec: 80 93 a2 04 sts 0x04A2, r24
f2f0: 80 91 13 05 lds r24, 0x0513
f2f4: 90 91 14 05 lds r25, 0x0514
f2f8: b7 01 movw r22, r14
f2fa: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
f2fe: 9f 93 push r25
f300: 8f 93 push r24
f302: 7f 93 push r23
f304: 6f 93 push r22
f306: 8d e7 ldi r24, 0x7D ; 125
f308: 92 e1 ldi r25, 0x12 ; 18
f30a: 9f 93 push r25
f30c: 8f 93 push r24
f30e: df 92 push r13
f310: cf 92 push r12
f312: e0 91 55 06 lds r30, 0x0655
f316: f0 91 56 06 lds r31, 0x0656
f31a: 09 95 icall
f31c: 88 e2 ldi r24, 0x28 ; 40
f31e: 80 93 a2 04 sts 0x04A2, r24
f322: 80 91 16 05 lds r24, 0x0516
f326: 8f 93 push r24
f328: 80 91 15 05 lds r24, 0x0515
f32c: 8f 93 push r24
f32e: 8d e6 ldi r24, 0x6D ; 109
f330: 92 e1 ldi r25, 0x12 ; 18
f332: 9f 93 push r25
f334: 8f 93 push r24
f336: df 92 push r13
f338: cf 92 push r12
f33a: e0 91 55 06 lds r30, 0x0655
f33e: f0 91 56 06 lds r31, 0x0656
f342: 09 95 icall
f344: 8c e3 ldi r24, 0x3C ; 60
f346: 80 93 a2 04 sts 0x04A2, r24
f34a: 80 91 18 05 lds r24, 0x0518
f34e: 8f 93 push r24
f350: 80 91 17 05 lds r24, 0x0517
f354: 8f 93 push r24
f356: 8b e5 ldi r24, 0x5B ; 91
f358: 92 e1 ldi r25, 0x12 ; 18
f35a: 9f 93 push r25
f35c: 8f 93 push r24
f35e: df 92 push r13
f360: cf 92 push r12
f362: eb cd rjmp .-1066 ; 0xef3a <Menu+0x45e>
f364: 10 92 a2 04 sts 0x04A2, r1
f368: 82 e5 ldi r24, 0x52 ; 82
f36a: 92 e1 ldi r25, 0x12 ; 18
f36c: 9f 93 push r25
f36e: 8f 93 push r24
f370: e8 e5 ldi r30, 0x58 ; 88
f372: ee 2e mov r14, r30
f374: e5 e7 ldi r30, 0x75 ; 117
f376: fe 2e mov r15, r30
f378: ff 92 push r15
f37a: ef 92 push r14
f37c: f8 01 movw r30, r16
f37e: 09 95 icall
f380: 88 e2 ldi r24, 0x28 ; 40
f382: 80 93 a2 04 sts 0x04A2, r24
f386: 80 91 02 04 lds r24, 0x0402
f38a: 1f 92 push r1
f38c: 8f 93 push r24
f38e: 82 e4 ldi r24, 0x42 ; 66
f390: 92 e1 ldi r25, 0x12 ; 18
f392: 9f 93 push r25
f394: 8f 93 push r24
f396: ff 92 push r15
f398: ef 92 push r14
f39a: e0 91 55 06 lds r30, 0x0655
f39e: f0 91 56 06 lds r31, 0x0656
f3a2: 09 95 icall
f3a4: 8c e3 ldi r24, 0x3C ; 60
f3a6: 80 93 a2 04 sts 0x04A2, r24
f3aa: 80 91 0d 08 lds r24, 0x080D
f3ae: 90 e0 ldi r25, 0x00 ; 0
f3b0: 01 97 sbiw r24, 0x01 ; 1
f3b2: 9f 93 push r25
f3b4: 8f 93 push r24
f3b6: 82 e3 ldi r24, 0x32 ; 50
f3b8: 92 e1 ldi r25, 0x12 ; 18
f3ba: 9f 93 push r25
f3bc: 8f 93 push r24
f3be: ff 92 push r15
f3c0: ef 92 push r14
f3c2: bb cd rjmp .-1162 ; 0xef3a <Menu+0x45e>
f3c4: 10 92 a2 04 sts 0x04A2, r1
f3c8: 82 e2 ldi r24, 0x22 ; 34
f3ca: 92 e1 ldi r25, 0x12 ; 18
f3cc: 9f 93 push r25
f3ce: 8f 93 push r24
f3d0: 78 e5 ldi r23, 0x58 ; 88
f3d2: e7 2e mov r14, r23
f3d4: 75 e7 ldi r23, 0x75 ; 117
f3d6: f7 2e mov r15, r23
f3d8: ff 92 push r15
f3da: ef 92 push r14
f3dc: f8 01 movw r30, r16
f3de: 09 95 icall
f3e0: 84 e1 ldi r24, 0x14 ; 20
f3e2: 80 93 a2 04 sts 0x04A2, r24
f3e6: 80 91 53 01 lds r24, 0x0153
f3ea: 1a e0 ldi r17, 0x0A ; 10
f3ec: 61 2f mov r22, r17
f3ee: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
f3f2: 1f 92 push r1
f3f4: 9f 93 push r25
f3f6: 1f 92 push r1
f3f8: 8f 93 push r24
f3fa: 84 e1 ldi r24, 0x14 ; 20
f3fc: 92 e1 ldi r25, 0x12 ; 18
f3fe: 9f 93 push r25
f400: 8f 93 push r24
f402: ff 92 push r15
f404: ef 92 push r14
f406: e0 91 55 06 lds r30, 0x0655
f40a: f0 91 56 06 lds r31, 0x0656
f40e: 09 95 icall
f410: 88 e2 ldi r24, 0x28 ; 40
f412: 80 93 a2 04 sts 0x04A2, r24
f416: 80 91 62 04 lds r24, 0x0462
f41a: 61 2f mov r22, r17
f41c: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
f420: 1f 92 push r1
f422: 9f 93 push r25
f424: 1f 92 push r1
f426: 8f 93 push r24
f428: 86 e0 ldi r24, 0x06 ; 6
f42a: 92 e1 ldi r25, 0x12 ; 18
f42c: 9f 93 push r25
f42e: 8f 93 push r24
f430: ff 92 push r15
f432: ef 92 push r14
f434: e0 91 55 06 lds r30, 0x0655
f438: f0 91 56 06 lds r31, 0x0656
f43c: 09 95 icall
f43e: 8c e3 ldi r24, 0x3C ; 60
f440: 80 93 a2 04 sts 0x04A2, r24
f444: 80 91 63 04 lds r24, 0x0463
f448: 61 2f mov r22, r17
f44a: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
f44e: 1f 92 push r1
f450: 9f 93 push r25
f452: 1f 92 push r1
f454: 8f 93 push r24
f456: 88 ef ldi r24, 0xF8 ; 248
f458: 91 e1 ldi r25, 0x11 ; 17
f45a: 1e cf rjmp .-452 ; 0xf298 <Menu+0x7bc>
f45c: 53 e0 ldi r21, 0x03 ; 3
f45e: c5 2e mov r12, r21
f460: 54 e0 ldi r21, 0x04 ; 4
f462: d5 2e mov r13, r21
f464: 20 e0 ldi r18, 0x00 ; 0
f466: 6b ee ldi r22, 0xEB ; 235
f468: e6 2e mov r14, r22
f46a: 61 e1 ldi r22, 0x11 ; 17
f46c: f6 2e mov r15, r22
f46e: 08 e5 ldi r16, 0x58 ; 88
f470: 15 e7 ldi r17, 0x75 ; 117
f472: 20 93 a2 04 sts 0x04A2, r18
f476: d6 01 movw r26, r12
f478: 8d 91 ld r24, X+
f47a: 6d 01 movw r12, r26
f47c: 1f 92 push r1
f47e: 8f 93 push r24
f480: cd 01 movw r24, r26
f482: 83 50 subi r24, 0x03 ; 3
f484: 94 40 sbci r25, 0x04 ; 4
f486: 9f 93 push r25
f488: 8f 93 push r24
f48a: ff 92 push r15
f48c: ef 92 push r14
f48e: 1f 93 push r17
f490: 0f 93 push r16
f492: e0 91 55 06 lds r30, 0x0655
f496: f0 91 56 06 lds r31, 0x0656
f49a: 29 83 std Y+1, r18 ; 0x01
f49c: 09 95 icall
f49e: 29 81 ldd r18, Y+1 ; 0x01
f4a0: 2c 5e subi r18, 0xEC ; 236
f4a2: 0f b6 in r0, 0x3f ; 63
f4a4: f8 94 cli
f4a6: de bf out 0x3e, r29 ; 62
f4a8: 0f be out 0x3f, r0 ; 63
f4aa: cd bf out 0x3d, r28 ; 61
f4ac: 20 35 cpi r18, 0x50 ; 80
f4ae: 09 f7 brne .-62 ; 0xf472 <Menu+0x996>
f4b0: 60 c3 rjmp .+1728 ; 0xfb72 <Menu+0x1096>
f4b2: 37 e0 ldi r19, 0x07 ; 7
f4b4: c3 2e mov r12, r19
f4b6: 34 e0 ldi r19, 0x04 ; 4
f4b8: d3 2e mov r13, r19
f4ba: 20 e0 ldi r18, 0x00 ; 0
f4bc: 4e ed ldi r20, 0xDE ; 222
f4be: e4 2e mov r14, r20
f4c0: 41 e1 ldi r20, 0x11 ; 17
f4c2: f4 2e mov r15, r20
f4c4: 08 e5 ldi r16, 0x58 ; 88
f4c6: 15 e7 ldi r17, 0x75 ; 117
f4c8: 20 93 a2 04 sts 0x04A2, r18
f4cc: d6 01 movw r26, r12
f4ce: 8d 91 ld r24, X+
f4d0: 6d 01 movw r12, r26
f4d2: 1f 92 push r1
f4d4: 8f 93 push r24
f4d6: cd 01 movw r24, r26
f4d8: 83 50 subi r24, 0x03 ; 3
f4da: 94 40 sbci r25, 0x04 ; 4
f4dc: 9f 93 push r25
f4de: 8f 93 push r24
f4e0: ff 92 push r15
f4e2: ef 92 push r14
f4e4: 1f 93 push r17
f4e6: 0f 93 push r16
f4e8: e0 91 55 06 lds r30, 0x0655
f4ec: f0 91 56 06 lds r31, 0x0656
f4f0: 29 83 std Y+1, r18 ; 0x01
f4f2: 09 95 icall
f4f4: 29 81 ldd r18, Y+1 ; 0x01
f4f6: 2c 5e subi r18, 0xEC ; 236
f4f8: 0f b6 in r0, 0x3f ; 63
f4fa: f8 94 cli
f4fc: de bf out 0x3e, r29 ; 62
f4fe: 0f be out 0x3f, r0 ; 63
f500: cd bf out 0x3d, r28 ; 61
f502: 20 35 cpi r18, 0x50 ; 80
f504: 09 f7 brne .-62 ; 0xf4c8 <Menu+0x9ec>
f506: 35 c3 rjmp .+1642 ; 0xfb72 <Menu+0x1096>
f508: 10 92 a2 04 sts 0x04A2, r1
f50c: 80 ed ldi r24, 0xD0 ; 208
f50e: 91 e1 ldi r25, 0x11 ; 17
f510: 9f 93 push r25
f512: 8f 93 push r24
f514: 28 e5 ldi r18, 0x58 ; 88
f516: e2 2e mov r14, r18
f518: 25 e7 ldi r18, 0x75 ; 117
f51a: f2 2e mov r15, r18
f51c: ff 92 push r15
f51e: ef 92 push r14
f520: f8 01 movw r30, r16
f522: 09 95 icall
f524: 84 e1 ldi r24, 0x14 ; 20
f526: 80 93 a2 04 sts 0x04A2, r24
f52a: 80 91 5f 04 lds r24, 0x045F
f52e: 8f 93 push r24
f530: 80 91 5e 04 lds r24, 0x045E
f534: 8f 93 push r24
f536: 83 ec ldi r24, 0xC3 ; 195
f538: 91 e1 ldi r25, 0x11 ; 17
f53a: 9f 93 push r25
f53c: 8f 93 push r24
f53e: ff 92 push r15
f540: ef 92 push r14
f542: e0 91 55 06 lds r30, 0x0655
f546: f0 91 56 06 lds r31, 0x0656
f54a: 09 95 icall
f54c: 88 e2 ldi r24, 0x28 ; 40
f54e: 80 93 a2 04 sts 0x04A2, r24
f552: 80 91 61 04 lds r24, 0x0461
f556: 8f 93 push r24
f558: 80 91 60 04 lds r24, 0x0460
f55c: 8f 93 push r24
f55e: 86 eb ldi r24, 0xB6 ; 182
f560: 91 e1 ldi r25, 0x11 ; 17
f562: 9f 93 push r25
f564: 8f 93 push r24
f566: ff 92 push r15
f568: ef 92 push r14
f56a: e0 91 55 06 lds r30, 0x0655
f56e: f0 91 56 06 lds r31, 0x0656
f572: 09 95 icall
f574: 89 e4 ldi r24, 0x49 ; 73
f576: 80 93 a2 04 sts 0x04A2, r24
f57a: 8e ea ldi r24, 0xAE ; 174
f57c: 91 e1 ldi r25, 0x11 ; 17
f57e: 9f 93 push r25
f580: 8f 93 push r24
f582: ff 92 push r15
f584: ef 92 push r14
f586: e0 91 55 06 lds r30, 0x0655
f58a: f0 91 56 06 lds r31, 0x0656
f58e: 09 95 icall
f590: 80 91 a0 04 lds r24, 0x04A0
f594: 0f b6 in r0, 0x3f ; 63
f596: f8 94 cli
f598: de bf out 0x3e, r29 ; 62
f59a: 0f be out 0x3f, r0 ; 63
f59c: cd bf out 0x3d, r28 ; 61
f59e: 83 ff sbrs r24, 3
f5a0: e8 c2 rjmp .+1488 ; 0xfb72 <Menu+0x1096>
f5a2: 10 92 61 04 sts 0x0461, r1
f5a6: 10 92 60 04 sts 0x0460, r1
f5aa: 60 e0 ldi r22, 0x00 ; 0
f5ac: 70 e0 ldi r23, 0x00 ; 0
f5ae: 8e e0 ldi r24, 0x0E ; 14
f5b0: 90 e0 ldi r25, 0x00 ; 0
f5b2: 0e 94 49 23 call 0x4692 ; 0x4692 <SetParamWord>
f5b6: dd c2 rjmp .+1466 ; 0xfb72 <Menu+0x1096>
f5b8: 10 92 a2 04 sts 0x04A2, r1
f5bc: 86 ea ldi r24, 0xA6 ; 166
f5be: 91 e1 ldi r25, 0x11 ; 17
f5c0: 9f 93 push r25
f5c2: 8f 93 push r24
f5c4: 98 e5 ldi r25, 0x58 ; 88
f5c6: e9 2e mov r14, r25
f5c8: 95 e7 ldi r25, 0x75 ; 117
f5ca: f9 2e mov r15, r25
f5cc: ff 92 push r15
f5ce: ef 92 push r14
f5d0: f8 01 movw r30, r16
f5d2: 09 95 icall
f5d4: 84 e1 ldi r24, 0x14 ; 20
f5d6: 80 93 a2 04 sts 0x04A2, r24
f5da: 80 91 4f 01 lds r24, 0x014F
f5de: 8f 93 push r24
f5e0: 80 91 4e 01 lds r24, 0x014E
f5e4: 8f 93 push r24
f5e6: 88 e9 ldi r24, 0x98 ; 152
f5e8: 91 e1 ldi r25, 0x11 ; 17
f5ea: 9f 93 push r25
f5ec: 8f 93 push r24
f5ee: ff 92 push r15
f5f0: ef 92 push r14
f5f2: e0 91 55 06 lds r30, 0x0655
f5f6: f0 91 56 06 lds r31, 0x0656
f5fa: 09 95 icall
f5fc: 88 e2 ldi r24, 0x28 ; 40
f5fe: 80 93 a2 04 sts 0x04A2, r24
f602: 80 91 ff 05 lds r24, 0x05FF
f606: 8f 93 push r24
f608: 80 91 fe 05 lds r24, 0x05FE
f60c: 8f 93 push r24
f60e: 8a e8 ldi r24, 0x8A ; 138
f610: 91 e1 ldi r25, 0x11 ; 17
f612: 9f 93 push r25
f614: 8f 93 push r24
f616: ff 92 push r15
f618: ef 92 push r14
f61a: e0 91 55 06 lds r30, 0x0655
f61e: f0 91 56 06 lds r31, 0x0656
f622: 09 95 icall
f624: 8c e3 ldi r24, 0x3C ; 60
f626: 80 93 a2 04 sts 0x04A2, r24
f62a: 80 91 43 06 lds r24, 0x0643
f62e: 8f 93 push r24
f630: 80 91 42 06 lds r24, 0x0642
f634: 8f 93 push r24
f636: 8c e7 ldi r24, 0x7C ; 124
f638: 91 e1 ldi r25, 0x11 ; 17
f63a: 9f 93 push r25
f63c: 8f 93 push r24
f63e: ff 92 push r15
f640: ef 92 push r14
f642: 7b cc rjmp .-1802 ; 0xef3a <Menu+0x45e>
f644: 10 92 a2 04 sts 0x04A2, r1
f648: 84 e7 ldi r24, 0x74 ; 116
f64a: 91 e1 ldi r25, 0x11 ; 17
f64c: 9f 93 push r25
f64e: 8f 93 push r24
f650: 88 e5 ldi r24, 0x58 ; 88
f652: e8 2e mov r14, r24
f654: 85 e7 ldi r24, 0x75 ; 117
f656: f8 2e mov r15, r24
f658: ff 92 push r15
f65a: ef 92 push r14
f65c: f8 01 movw r30, r16
f65e: 09 95 icall
f660: 84 e1 ldi r24, 0x14 ; 20
f662: 80 93 a2 04 sts 0x04A2, r24
f666: 80 91 2f 01 lds r24, 0x012F
f66a: 1f 92 push r1
f66c: 8f 93 push r24
f66e: 86 e6 ldi r24, 0x66 ; 102
f670: 91 e1 ldi r25, 0x11 ; 17
f672: 9f 93 push r25
f674: 8f 93 push r24
f676: ff 92 push r15
f678: ef 92 push r14
f67a: e0 91 55 06 lds r30, 0x0655
f67e: f0 91 56 06 lds r31, 0x0656
f682: 09 95 icall
f684: 88 e2 ldi r24, 0x28 ; 40
f686: 80 93 a2 04 sts 0x04A2, r24
f68a: 80 91 c4 04 lds r24, 0x04C4
f68e: 90 91 c5 04 lds r25, 0x04C5
f692: 97 fd sbrc r25, 7
f694: 03 96 adiw r24, 0x03 ; 3
f696: 95 95 asr r25
f698: 87 95 ror r24
f69a: 95 95 asr r25
f69c: 87 95 ror r24
f69e: 9f 93 push r25
f6a0: 8f 93 push r24
f6a2: 88 e5 ldi r24, 0x58 ; 88
f6a4: 91 e1 ldi r25, 0x11 ; 17
f6a6: 9f 93 push r25
f6a8: 8f 93 push r24
f6aa: 08 e5 ldi r16, 0x58 ; 88
f6ac: 15 e7 ldi r17, 0x75 ; 117
f6ae: 1f 93 push r17
f6b0: 0f 93 push r16
f6b2: e0 91 55 06 lds r30, 0x0655
f6b6: f0 91 56 06 lds r31, 0x0656
f6ba: 09 95 icall
f6bc: 8c e3 ldi r24, 0x3C ; 60
f6be: 80 93 a2 04 sts 0x04A2, r24
f6c2: 80 91 4b 05 lds r24, 0x054B
f6c6: 1f 92 push r1
f6c8: 8f 93 push r24
f6ca: 80 91 4a 05 lds r24, 0x054A
f6ce: 1f 92 push r1
f6d0: 8f 93 push r24
f6d2: 8a e4 ldi r24, 0x4A ; 74
f6d4: 91 e1 ldi r25, 0x11 ; 17
f6d6: 9f 93 push r25
f6d8: 8f 93 push r24
f6da: 1f 93 push r17
f6dc: 0f 93 push r16
f6de: 08 cd rjmp .-1520 ; 0xf0f0 <Menu+0x614>
f6e0: 10 92 a2 04 sts 0x04A2, r1
f6e4: 8a e3 ldi r24, 0x3A ; 58
f6e6: 91 e1 ldi r25, 0x11 ; 17
f6e8: 9f 93 push r25
f6ea: 8f 93 push r24
f6ec: 88 e5 ldi r24, 0x58 ; 88
f6ee: 95 e7 ldi r25, 0x75 ; 117
f6f0: 9f 93 push r25
f6f2: 8f 93 push r24
f6f4: f8 01 movw r30, r16
f6f6: 09 95 icall
f6f8: b4 ea ldi r27, 0xA4 ; 164
f6fa: cb 2e mov r12, r27
f6fc: b9 e0 ldi r27, 0x09 ; 9
f6fe: db 2e mov r13, r27
f700: 0f 90 pop r0
f702: 0f 90 pop r0
f704: 0f 90 pop r0
f706: 0f 90 pop r0
f708: 84 e1 ldi r24, 0x14 ; 20
f70a: 19 e2 ldi r17, 0x29 ; 41
f70c: e1 2e mov r14, r17
f70e: 11 e1 ldi r17, 0x11 ; 17
f710: f1 2e mov r15, r17
f712: 08 e5 ldi r16, 0x58 ; 88
f714: 15 e7 ldi r17, 0x75 ; 117
f716: 80 93 a2 04 sts 0x04A2, r24
f71a: d6 01 movw r26, r12
f71c: 9c 91 ld r25, X
f71e: 9f 77 andi r25, 0x7F ; 127
f720: 1f 92 push r1
f722: 9f 93 push r25
f724: f6 01 movw r30, r12
f726: 3f 97 sbiw r30, 0x0f ; 15
f728: 90 81 ld r25, Z
f72a: 9f 77 andi r25, 0x7F ; 127
f72c: 1f 92 push r1
f72e: 9f 93 push r25
f730: 3f 97 sbiw r30, 0x0f ; 15
f732: 90 81 ld r25, Z
f734: 9f 77 andi r25, 0x7F ; 127
f736: 1f 92 push r1
f738: 9f 93 push r25
f73a: 3f 97 sbiw r30, 0x0f ; 15
f73c: 90 81 ld r25, Z
f73e: 9f 77 andi r25, 0x7F ; 127
f740: 1f 92 push r1
f742: 9f 93 push r25
f744: ff 92 push r15
f746: ef 92 push r14
f748: 1f 93 push r17
f74a: 0f 93 push r16
f74c: e0 91 55 06 lds r30, 0x0655
f750: f0 91 56 06 lds r31, 0x0656
f754: 89 83 std Y+1, r24 ; 0x01
f756: 09 95 icall
f758: 89 81 ldd r24, Y+1 ; 0x01
f75a: 8c 5e subi r24, 0xEC ; 236
f75c: bc e3 ldi r27, 0x3C ; 60
f75e: cb 0e add r12, r27
f760: d1 1c adc r13, r1
f762: 0f b6 in r0, 0x3f ; 63
f764: f8 94 cli
f766: de bf out 0x3e, r29 ; 62
f768: 0f be out 0x3f, r0 ; 63
f76a: cd bf out 0x3d, r28 ; 61
f76c: 80 35 cpi r24, 0x50 ; 80
f76e: 99 f6 brne .-90 ; 0xf716 <Menu+0xc3a>
f770: 00 c2 rjmp .+1024 ; 0xfb72 <Menu+0x1096>
f772: 10 92 a2 04 sts 0x04A2, r1
f776: 8a e1 ldi r24, 0x1A ; 26
f778: 91 e1 ldi r25, 0x11 ; 17
f77a: 9f 93 push r25
f77c: 8f 93 push r24
f77e: 88 e5 ldi r24, 0x58 ; 88
f780: 95 e7 ldi r25, 0x75 ; 117
f782: 9f 93 push r25
f784: 8f 93 push r24
f786: f8 01 movw r30, r16
f788: 09 95 icall
f78a: f8 ea ldi r31, 0xA8 ; 168
f78c: cf 2e mov r12, r31
f78e: f9 e0 ldi r31, 0x09 ; 9
f790: df 2e mov r13, r31
f792: 0f 90 pop r0
f794: 0f 90 pop r0
f796: 0f 90 pop r0
f798: 0f 90 pop r0
f79a: 84 e1 ldi r24, 0x14 ; 20
f79c: a9 e0 ldi r26, 0x09 ; 9
f79e: ea 2e mov r14, r26
f7a0: a1 e1 ldi r26, 0x11 ; 17
f7a2: fa 2e mov r15, r26
f7a4: 08 e5 ldi r16, 0x58 ; 88
f7a6: 15 e7 ldi r17, 0x75 ; 117
f7a8: 80 93 a2 04 sts 0x04A2, r24
f7ac: d6 01 movw r26, r12
f7ae: 9c 91 ld r25, X
f7b0: 1f 92 push r1
f7b2: 9f 93 push r25
f7b4: f6 01 movw r30, r12
f7b6: 3f 97 sbiw r30, 0x0f ; 15
f7b8: 90 81 ld r25, Z
f7ba: 1f 92 push r1
f7bc: 9f 93 push r25
f7be: 3f 97 sbiw r30, 0x0f ; 15
f7c0: 90 81 ld r25, Z
f7c2: 1f 92 push r1
f7c4: 9f 93 push r25
f7c6: 3f 97 sbiw r30, 0x0f ; 15
f7c8: 90 81 ld r25, Z
f7ca: 1f 92 push r1
f7cc: 9f 93 push r25
f7ce: ff 92 push r15
f7d0: ef 92 push r14
f7d2: 1f 93 push r17
f7d4: 0f 93 push r16
f7d6: e0 91 55 06 lds r30, 0x0655
f7da: f0 91 56 06 lds r31, 0x0656
f7de: 89 83 std Y+1, r24 ; 0x01
f7e0: 09 95 icall
f7e2: 89 81 ldd r24, Y+1 ; 0x01
f7e4: 8c 5e subi r24, 0xEC ; 236
f7e6: bc e3 ldi r27, 0x3C ; 60
f7e8: cb 0e add r12, r27
f7ea: d1 1c adc r13, r1
f7ec: 0f b6 in r0, 0x3f ; 63
f7ee: f8 94 cli
f7f0: de bf out 0x3e, r29 ; 62
f7f2: 0f be out 0x3f, r0 ; 63
f7f4: cd bf out 0x3d, r28 ; 61
f7f6: 80 35 cpi r24, 0x50 ; 80
f7f8: b9 f6 brne .-82 ; 0xf7a8 <Menu+0xccc>
f7fa: bb c1 rjmp .+886 ; 0xfb72 <Menu+0x1096>
f7fc: 10 92 a2 04 sts 0x04A2, r1
f800: 8e ef ldi r24, 0xFE ; 254
f802: 90 e1 ldi r25, 0x10 ; 16
f804: 9f 93 push r25
f806: 8f 93 push r24
f808: 78 e5 ldi r23, 0x58 ; 88
f80a: e7 2e mov r14, r23
f80c: 75 e7 ldi r23, 0x75 ; 117
f80e: f7 2e mov r15, r23
f810: ff 92 push r15
f812: ef 92 push r14
f814: f8 01 movw r30, r16
f816: 09 95 icall
f818: 87 e4 ldi r24, 0x47 ; 71
f81a: 80 93 a2 04 sts 0x04A2, r24
f81e: 84 ef ldi r24, 0xF4 ; 244
f820: 90 e1 ldi r25, 0x10 ; 16
f822: 9f 93 push r25
f824: 8f 93 push r24
f826: ff 92 push r15
f828: ef 92 push r14
f82a: e0 91 55 06 lds r30, 0x0655
f82e: f0 91 56 06 lds r31, 0x0656
f832: 09 95 icall
f834: 0f b6 in r0, 0x3f ; 63
f836: f8 94 cli
f838: de bf out 0x3e, r29 ; 62
f83a: 0f be out 0x3f, r0 ; 63
f83c: cd bf out 0x3d, r28 ; 61
f83e: e4 e0 ldi r30, 0x04 ; 4
f840: 4e 2e mov r4, r30
f842: 51 2c mov r5, r1
f844: 24 e1 ldi r18, 0x14 ; 20
f846: 03 ee ldi r16, 0xE3 ; 227
f848: 10 e1 ldi r17, 0x10 ; 16
f84a: 20 93 a2 04 sts 0x04A2, r18
f84e: c0 90 55 06 lds r12, 0x0655
f852: d0 90 56 06 lds r13, 0x0656
f856: 8f ef ldi r24, 0xFF ; 255
f858: 84 0d add r24, r4
f85a: 29 83 std Y+1, r18 ; 0x01
f85c: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
f860: 78 2e mov r7, r24
f862: 69 2e mov r6, r25
f864: 8e ef ldi r24, 0xFE ; 254
f866: 84 0d add r24, r4
f868: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
f86c: 98 2e mov r9, r24
f86e: 89 2e mov r8, r25
f870: 8d ef ldi r24, 0xFD ; 253
f872: 84 0d add r24, r4
f874: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
f878: b8 2e mov r11, r24
f87a: a9 2e mov r10, r25
f87c: 8c ef ldi r24, 0xFC ; 252
f87e: 84 0d add r24, r4
f880: 0e 94 4e 20 call 0x409c ; 0x409c <BL3_Current>
f884: 6f 92 push r6
f886: 7f 92 push r7
f888: 8f 92 push r8
f88a: 9f 92 push r9
f88c: af 92 push r10
f88e: bf 92 push r11
f890: 9f 93 push r25
f892: 8f 93 push r24
f894: 1f 93 push r17
f896: 0f 93 push r16
f898: ff 92 push r15
f89a: ef 92 push r14
f89c: f6 01 movw r30, r12
f89e: 09 95 icall
f8a0: 80 91 1a 05 lds r24, 0x051A
f8a4: 90 e0 ldi r25, 0x00 ; 0
f8a6: 0f b6 in r0, 0x3f ; 63
f8a8: f8 94 cli
f8aa: de bf out 0x3e, r29 ; 62
f8ac: 0f be out 0x3f, r0 ; 63
f8ae: cd bf out 0x3d, r28 ; 61
f8b0: 29 81 ldd r18, Y+1 ; 0x01
f8b2: 48 16 cp r4, r24
f8b4: 59 06 cpc r5, r25
f8b6: 0c f0 brlt .+2 ; 0xf8ba <Menu+0xdde>
f8b8: 5c c1 rjmp .+696 ; 0xfb72 <Menu+0x1096>
f8ba: 2c 5e subi r18, 0xEC ; 236
f8bc: 54 e0 ldi r21, 0x04 ; 4
f8be: 45 0e add r4, r21
f8c0: 51 1c adc r5, r1
f8c2: 20 35 cpi r18, 0x50 ; 80
f8c4: 11 f6 brne .-124 ; 0xf84a <Menu+0xd6e>
f8c6: 55 c1 rjmp .+682 ; 0xfb72 <Menu+0x1096>
f8c8: 10 92 a2 04 sts 0x04A2, r1
f8cc: 84 ed ldi r24, 0xD4 ; 212
f8ce: 90 e1 ldi r25, 0x10 ; 16
f8d0: 9f 93 push r25
f8d2: 8f 93 push r24
f8d4: 48 e5 ldi r20, 0x58 ; 88
f8d6: e4 2e mov r14, r20
f8d8: 45 e7 ldi r20, 0x75 ; 117
f8da: f4 2e mov r15, r20
f8dc: ff 92 push r15
f8de: ef 92 push r14
f8e0: f8 01 movw r30, r16
f8e2: 09 95 icall
f8e4: 84 e1 ldi r24, 0x14 ; 20
f8e6: 80 93 a2 04 sts 0x04A2, r24
f8ea: 60 91 a4 09 lds r22, 0x09A4
f8ee: 66 1f adc r22, r22
f8f0: 66 27 eor r22, r22
f8f2: 66 1f adc r22, r22
f8f4: 40 91 95 09 lds r20, 0x0995
f8f8: 44 1f adc r20, r20
f8fa: 44 27 eor r20, r20
f8fc: 44 1f adc r20, r20
f8fe: 20 91 86 09 lds r18, 0x0986
f902: 22 1f adc r18, r18
f904: 22 27 eor r18, r18
f906: 22 1f adc r18, r18
f908: 80 91 77 09 lds r24, 0x0977
f90c: 88 1f adc r24, r24
f90e: 88 27 eor r24, r24
f910: 88 1f adc r24, r24
f912: f7 e0 ldi r31, 0x07 ; 7
f914: 6f 9f mul r22, r31
f916: b0 01 movw r22, r0
f918: 11 24 eor r1, r1
f91a: 63 5d subi r22, 0xD3 ; 211
f91c: 7f 4f sbci r23, 0xFF ; 255
f91e: 7f 93 push r23
f920: 6f 93 push r22
f922: 36 e0 ldi r19, 0x06 ; 6
f924: 43 9f mul r20, r19
f926: a0 01 movw r20, r0
f928: 11 24 eor r1, r1
f92a: 43 5d subi r20, 0xD3 ; 211
f92c: 5f 4f sbci r21, 0xFF ; 255
f92e: 5f 93 push r21
f930: 4f 93 push r20
f932: 45 e0 ldi r20, 0x05 ; 5
f934: 24 9f mul r18, r20
f936: 90 01 movw r18, r0
f938: 11 24 eor r1, r1
f93a: 23 5d subi r18, 0xD3 ; 211
f93c: 3f 4f sbci r19, 0xFF ; 255
f93e: 3f 93 push r19
f940: 2f 93 push r18
f942: 90 e0 ldi r25, 0x00 ; 0
f944: 88 0f add r24, r24
f946: 99 1f adc r25, r25
f948: 88 0f add r24, r24
f94a: 99 1f adc r25, r25
f94c: 8d 96 adiw r24, 0x2d ; 45
f94e: 9f 93 push r25
f950: 8f 93 push r24
f952: 80 ec ldi r24, 0xC0 ; 192
f954: 90 e1 ldi r25, 0x10 ; 16
f956: 9f 93 push r25
f958: 8f 93 push r24
f95a: ff 92 push r15
f95c: ef 92 push r14
f95e: e0 91 55 06 lds r30, 0x0655
f962: f0 91 56 06 lds r31, 0x0656
f966: 09 95 icall
f968: 88 e2 ldi r24, 0x28 ; 40
f96a: 80 93 a2 04 sts 0x04A2, r24
f96e: 60 91 e0 09 lds r22, 0x09E0
f972: 66 1f adc r22, r22
f974: 66 27 eor r22, r22
f976: 66 1f adc r22, r22
f978: 40 91 d1 09 lds r20, 0x09D1
f97c: 44 1f adc r20, r20
f97e: 44 27 eor r20, r20
f980: 44 1f adc r20, r20
f982: 20 91 c2 09 lds r18, 0x09C2
f986: 22 1f adc r18, r18
f988: 22 27 eor r18, r18
f98a: 22 1f adc r18, r18
f98c: 80 91 b3 09 lds r24, 0x09B3
f990: 88 1f adc r24, r24
f992: 88 27 eor r24, r24
f994: 88 1f adc r24, r24
f996: 5b e0 ldi r21, 0x0B ; 11
f998: 65 9f mul r22, r21
f99a: b0 01 movw r22, r0
f99c: 11 24 eor r1, r1
f99e: 63 5d subi r22, 0xD3 ; 211
f9a0: 7f 4f sbci r23, 0xFF ; 255
f9a2: 7f 93 push r23
f9a4: 6f 93 push r22
f9a6: 9a e0 ldi r25, 0x0A ; 10
f9a8: 49 9f mul r20, r25
f9aa: a0 01 movw r20, r0
f9ac: 11 24 eor r1, r1
f9ae: 43 5d subi r20, 0xD3 ; 211
f9b0: 5f 4f sbci r21, 0xFF ; 255
f9b2: 5f 93 push r21
f9b4: 4f 93 push r20
f9b6: a9 e0 ldi r26, 0x09 ; 9
f9b8: 2a 9f mul r18, r26
f9ba: 90 01 movw r18, r0
f9bc: 11 24 eor r1, r1
f9be: 23 5d subi r18, 0xD3 ; 211
f9c0: 3f 4f sbci r19, 0xFF ; 255
f9c2: 3f 93 push r19
f9c4: 2f 93 push r18
f9c6: 90 e0 ldi r25, 0x00 ; 0
f9c8: 63 e0 ldi r22, 0x03 ; 3
f9ca: 88 0f add r24, r24
f9cc: 99 1f adc r25, r25
f9ce: 6a 95 dec r22
f9d0: e1 f7 brne .-8 ; 0xf9ca <Menu+0xeee>
f9d2: 8d 96 adiw r24, 0x2d ; 45
f9d4: 9f 93 push r25
f9d6: 8f 93 push r24
f9d8: 8c ea ldi r24, 0xAC ; 172
f9da: 90 e1 ldi r25, 0x10 ; 16
f9dc: 9f 93 push r25
f9de: 8f 93 push r24
f9e0: ff 92 push r15
f9e2: ef 92 push r14
f9e4: e0 91 55 06 lds r30, 0x0655
f9e8: f0 91 56 06 lds r31, 0x0656
f9ec: 09 95 icall
f9ee: 8c e3 ldi r24, 0x3C ; 60
f9f0: 80 93 a2 04 sts 0x04A2, r24
f9f4: 80 91 ef 09 lds r24, 0x09EF
f9f8: 88 1f adc r24, r24
f9fa: 88 27 eor r24, r24
f9fc: 88 1f adc r24, r24
f9fe: bc e0 ldi r27, 0x0C ; 12
fa00: 8b 9f mul r24, r27
fa02: c0 01 movw r24, r0
fa04: 11 24 eor r1, r1
fa06: 8d 96 adiw r24, 0x2d ; 45
fa08: 9f 93 push r25
fa0a: 8f 93 push r24
fa0c: 8b e9 ldi r24, 0x9B ; 155
fa0e: 90 e1 ldi r25, 0x10 ; 16
fa10: 9f 93 push r25
fa12: 8f 93 push r24
fa14: ff 92 push r15
fa16: ef 92 push r14
fa18: e0 91 55 06 lds r30, 0x0655
fa1c: f0 91 56 06 lds r31, 0x0656
fa20: 09 95 icall
fa22: 0f b6 in r0, 0x3f ; 63
fa24: f8 94 cli
fa26: de bf out 0x3e, r29 ; 62
fa28: 0f be out 0x3f, r0 ; 63
fa2a: cd bf out 0x3d, r28 ; 61
fa2c: 80 91 fe 09 lds r24, 0x09FE
fa30: 87 ff sbrs r24, 7
fa32: 12 c0 rjmp .+36 ; 0xfa58 <Menu+0xf7c>
fa34: 80 e4 ldi r24, 0x40 ; 64
fa36: 80 93 a2 04 sts 0x04A2, r24
fa3a: 88 e9 ldi r24, 0x98 ; 152
fa3c: 90 e1 ldi r25, 0x10 ; 16
fa3e: 9f 93 push r25
fa40: 8f 93 push r24
fa42: ff 92 push r15
fa44: ef 92 push r14
fa46: e0 91 55 06 lds r30, 0x0655
fa4a: f0 91 56 06 lds r31, 0x0656
fa4e: 09 95 icall
fa50: 0f 90 pop r0
fa52: 0f 90 pop r0
fa54: 0f 90 pop r0
fa56: 0f 90 pop r0
fa58: 80 91 0d 0a lds r24, 0x0A0D
fa5c: 87 ff sbrs r24, 7
fa5e: 14 c0 rjmp .+40 ; 0xfa88 <Menu+0xfac>
fa60: 84 e4 ldi r24, 0x44 ; 68
fa62: 80 93 a2 04 sts 0x04A2, r24
fa66: 85 e9 ldi r24, 0x95 ; 149
fa68: 90 e1 ldi r25, 0x10 ; 16
fa6a: 9f 93 push r25
fa6c: 8f 93 push r24
fa6e: 88 e5 ldi r24, 0x58 ; 88
fa70: 95 e7 ldi r25, 0x75 ; 117
fa72: 9f 93 push r25
fa74: 8f 93 push r24
fa76: e0 91 55 06 lds r30, 0x0655
fa7a: f0 91 56 06 lds r31, 0x0656
fa7e: 09 95 icall
fa80: 0f 90 pop r0
fa82: 0f 90 pop r0
fa84: 0f 90 pop r0
fa86: 0f 90 pop r0
fa88: 80 91 1c 0a lds r24, 0x0A1C
fa8c: 87 ff sbrs r24, 7
fa8e: 71 c0 rjmp .+226 ; 0xfb72 <Menu+0x1096>
fa90: 88 e4 ldi r24, 0x48 ; 72
fa92: 80 93 a2 04 sts 0x04A2, r24
fa96: 82 e9 ldi r24, 0x92 ; 146
fa98: 90 e1 ldi r25, 0x10 ; 16
fa9a: 3b c9 rjmp .-3466 ; 0xed12 <Menu+0x236>
fa9c: 10 92 a2 04 sts 0x04A2, r1
faa0: 86 e8 ldi r24, 0x86 ; 134
faa2: 90 e1 ldi r25, 0x10 ; 16
faa4: 9f 93 push r25
faa6: 8f 93 push r24
faa8: 88 e5 ldi r24, 0x58 ; 88
faaa: 95 e7 ldi r25, 0x75 ; 117
faac: 9f 93 push r25
faae: 8f 93 push r24
fab0: f8 01 movw r30, r16
fab2: 09 95 icall
fab4: 8e ea ldi r24, 0xAE ; 174
fab6: a8 2e mov r10, r24
fab8: 89 e0 ldi r24, 0x09 ; 9
faba: b8 2e mov r11, r24
fabc: 0f 90 pop r0
fabe: 0f 90 pop r0
fac0: 0f 90 pop r0
fac2: 0f 90 pop r0
fac4: 04 e0 ldi r16, 0x04 ; 4
fac6: 10 e0 ldi r17, 0x00 ; 0
fac8: 24 e1 ldi r18, 0x14 ; 20
faca: 92 e6 ldi r25, 0x62 ; 98
facc: e9 2e mov r14, r25
face: 90 e1 ldi r25, 0x10 ; 16
fad0: f9 2e mov r15, r25
fad2: 38 e5 ldi r19, 0x58 ; 88
fad4: c3 2e mov r12, r19
fad6: 35 e7 ldi r19, 0x75 ; 117
fad8: d3 2e mov r13, r19
fada: 20 93 a2 04 sts 0x04A2, r18
fade: d5 01 movw r26, r10
fae0: 8c 91 ld r24, X
fae2: 1f 92 push r1
fae4: 8f 93 push r24
fae6: f5 01 movw r30, r10
fae8: 31 97 sbiw r30, 0x01 ; 1
faea: 80 81 ld r24, Z
faec: 1f 92 push r1
faee: 8f 93 push r24
faf0: 3e 97 sbiw r30, 0x0e ; 14
faf2: 80 81 ld r24, Z
faf4: 1f 92 push r1
faf6: 8f 93 push r24
faf8: 31 97 sbiw r30, 0x01 ; 1
fafa: 80 81 ld r24, Z
fafc: 1f 92 push r1
fafe: 8f 93 push r24
fb00: 3e 97 sbiw r30, 0x0e ; 14
fb02: 80 81 ld r24, Z
fb04: 1f 92 push r1
fb06: 8f 93 push r24
fb08: 31 97 sbiw r30, 0x01 ; 1
fb0a: 80 81 ld r24, Z
fb0c: 1f 92 push r1
fb0e: 8f 93 push r24
fb10: 3e 97 sbiw r30, 0x0e ; 14
fb12: 80 81 ld r24, Z
fb14: 1f 92 push r1
fb16: 8f 93 push r24
fb18: 31 97 sbiw r30, 0x01 ; 1
fb1a: 80 81 ld r24, Z
fb1c: 1f 92 push r1
fb1e: 8f 93 push r24
fb20: ff 92 push r15
fb22: ef 92 push r14
fb24: df 92 push r13
fb26: cf 92 push r12
fb28: e0 91 55 06 lds r30, 0x0655
fb2c: f0 91 56 06 lds r31, 0x0656
fb30: 29 83 std Y+1, r18 ; 0x01
fb32: 09 95 icall
fb34: 80 91 1a 05 lds r24, 0x051A
fb38: 90 e0 ldi r25, 0x00 ; 0
fb3a: 0f b6 in r0, 0x3f ; 63
fb3c: f8 94 cli
fb3e: de bf out 0x3e, r29 ; 62
fb40: 0f be out 0x3f, r0 ; 63
fb42: cd bf out 0x3d, r28 ; 61
fb44: 29 81 ldd r18, Y+1 ; 0x01
fb46: 08 17 cp r16, r24
fb48: 19 07 cpc r17, r25
fb4a: 9c f4 brge .+38 ; 0xfb72 <Menu+0x1096>
fb4c: 2c 5e subi r18, 0xEC ; 236
fb4e: fc e3 ldi r31, 0x3C ; 60
fb50: af 0e add r10, r31
fb52: b1 1c adc r11, r1
fb54: 0c 5f subi r16, 0xFC ; 252
fb56: 1f 4f sbci r17, 0xFF ; 255
fb58: 20 35 cpi r18, 0x50 ; 80
fb5a: 09 f0 breq .+2 ; 0xfb5e <Menu+0x1082>
fb5c: be cf rjmp .-132 ; 0xfada <Menu+0xffe>
fb5e: 09 c0 rjmp .+18 ; 0xfb72 <Menu+0x1096>
fb60: 80 91 90 02 lds r24, 0x0290
fb64: 28 13 cpse r18, r24
fb66: 03 c0 rjmp .+6 ; 0xfb6e <Menu+0x1092>
fb68: 21 50 subi r18, 0x01 ; 1
fb6a: 20 93 90 02 sts 0x0290, r18
fb6e: 10 92 a1 04 sts 0x04A1, r1
fb72: 10 92 a0 04 sts 0x04A0, r1
fb76: 0f 90 pop r0
fb78: df 91 pop r29
fb7a: cf 91 pop r28
fb7c: 1f 91 pop r17
fb7e: 0f 91 pop r16
fb80: ff 90 pop r15
fb82: ef 90 pop r14
fb84: df 90 pop r13
fb86: cf 90 pop r12
fb88: bf 90 pop r11
fb8a: af 90 pop r10
fb8c: 9f 90 pop r9
fb8e: 8f 90 pop r8
fb90: 7f 90 pop r7
fb92: 6f 90 pop r6
fb94: 5f 90 pop r5
fb96: 4f 90 pop r4
fb98: 08 95 ret
 
0000fb9a <c_cos_8192>:
fb9a: 1f 93 push r17
fb9c: 2a e5 ldi r18, 0x5A ; 90
fb9e: 30 e0 ldi r19, 0x00 ; 0
fba0: 28 1b sub r18, r24
fba2: 39 0b sbc r19, r25
fba4: 37 ff sbrs r19, 7
fba6: 05 c0 rjmp .+10 ; 0xfbb2 <c_cos_8192+0x18>
fba8: 31 95 neg r19
fbaa: 21 95 neg r18
fbac: 31 09 sbc r19, r1
fbae: 1f ef ldi r17, 0xFF ; 255
fbb0: 01 c0 rjmp .+2 ; 0xfbb4 <c_cos_8192+0x1a>
fbb2: 11 e0 ldi r17, 0x01 ; 1
fbb4: e8 e6 ldi r30, 0x68 ; 104
fbb6: f1 e0 ldi r31, 0x01 ; 1
fbb8: c9 01 movw r24, r18
fbba: bf 01 movw r22, r30
fbbc: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
fbc0: 8b 35 cpi r24, 0x5B ; 91
fbc2: 91 05 cpc r25, r1
fbc4: e4 f0 brlt .+56 ; 0xfbfe <c_cos_8192+0x64>
fbc6: 9c 01 movw r18, r24
fbc8: 2b 55 subi r18, 0x5B ; 91
fbca: 31 09 sbc r19, r1
fbcc: 2a 35 cpi r18, 0x5A ; 90
fbce: 31 05 cpc r19, r1
fbd0: 38 f4 brcc .+14 ; 0xfbe0 <c_cos_8192+0x46>
fbd2: 24 eb ldi r18, 0xB4 ; 180
fbd4: 30 e0 ldi r19, 0x00 ; 0
fbd6: a9 01 movw r20, r18
fbd8: 48 1b sub r20, r24
fbda: 59 0b sbc r21, r25
fbdc: ca 01 movw r24, r20
fbde: 0f c0 rjmp .+30 ; 0xfbfe <c_cos_8192+0x64>
fbe0: 9c 01 movw r18, r24
fbe2: 25 5b subi r18, 0xB5 ; 181
fbe4: 31 09 sbc r19, r1
fbe6: 2a 35 cpi r18, 0x5A ; 90
fbe8: 31 05 cpc r19, r1
fbea: 18 f4 brcc .+6 ; 0xfbf2 <c_cos_8192+0x58>
fbec: 84 5b subi r24, 0xB4 ; 180
fbee: 91 09 sbc r25, r1
fbf0: 04 c0 rjmp .+8 ; 0xfbfa <c_cos_8192+0x60>
fbf2: 9f 01 movw r18, r30
fbf4: 28 1b sub r18, r24
fbf6: 39 0b sbc r19, r25
fbf8: c9 01 movw r24, r18
fbfa: 6f ef ldi r22, 0xFF ; 255
fbfc: 01 c0 rjmp .+2 ; 0xfc00 <c_cos_8192+0x66>
fbfe: 61 e0 ldi r22, 0x01 ; 1
fc00: fc 01 movw r30, r24
fc02: ee 0f add r30, r30
fc04: ff 1f adc r31, r31
fc06: eb 57 subi r30, 0x7B ; 123
fc08: fb 4e sbci r31, 0xEB ; 235
fc0a: 25 91 lpm r18, Z+
fc0c: 34 91 lpm r19, Z
fc0e: 12 03 mulsu r17, r18
fc10: a0 01 movw r20, r0
fc12: 13 9f mul r17, r19
fc14: 50 0d add r21, r0
fc16: 11 24 eor r1, r1
fc18: 64 03 mulsu r22, r20
fc1a: c0 01 movw r24, r0
fc1c: 65 9f mul r22, r21
fc1e: 90 0d add r25, r0
fc20: 11 24 eor r1, r1
fc22: 1f 91 pop r17
fc24: 08 95 ret
 
0000fc26 <rc_sum_init>:
fc26: 80 e0 ldi r24, 0x00 ; 0
fc28: 90 e0 ldi r25, 0x00 ; 0
fc2a: 41 e8 ldi r20, 0x81 ; 129
fc2c: 5f ef ldi r21, 0xFF ; 255
fc2e: 9c 01 movw r18, r24
fc30: 22 0f add r18, r18
fc32: 33 1f adc r19, r19
fc34: f9 01 movw r30, r18
fc36: e2 5f subi r30, 0xF2 ; 242
fc38: f7 4f sbci r31, 0xF7 ; 247
fc3a: 85 30 cpi r24, 0x05 ; 5
fc3c: 18 f4 brcc .+6 ; 0xfc44 <rc_sum_init+0x1e>
fc3e: 11 82 std Z+1, r1 ; 0x01
fc40: 10 82 st Z, r1
fc42: 02 c0 rjmp .+4 ; 0xfc48 <rc_sum_init+0x22>
fc44: 51 83 std Z+1, r21 ; 0x01
fc46: 40 83 st Z, r20
fc48: f9 01 movw r30, r18
fc4a: ec 5a subi r30, 0xAC ; 172
fc4c: f7 4f sbci r31, 0xF7 ; 247
fc4e: 11 82 std Z+1, r1 ; 0x01
fc50: 10 82 st Z, r1
fc52: 01 96 adiw r24, 0x01 ; 1
fc54: 83 32 cpi r24, 0x23 ; 35
fc56: 91 05 cpc r25, r1
fc58: 51 f7 brne .-44 ; 0xfc2e <rc_sum_init+0x8>
fc5a: 8f e7 ldi r24, 0x7F ; 127
fc5c: 90 e0 ldi r25, 0x00 ; 0
fc5e: 90 93 4d 08 sts 0x084D, r25
fc62: 80 93 4c 08 sts 0x084C, r24
fc66: 81 e8 ldi r24, 0x81 ; 129
fc68: 9f ef ldi r25, 0xFF ; 255
fc6a: 90 93 4b 08 sts 0x084B, r25
fc6e: 80 93 4a 08 sts 0x084A, r24
fc72: 10 92 4f 08 sts 0x084F, r1
fc76: 10 92 4e 08 sts 0x084E, r1
fc7a: 10 92 52 04 sts 0x0452, r1
fc7e: 10 92 51 04 sts 0x0451, r1
fc82: 10 92 54 04 sts 0x0454, r1
fc86: 10 92 53 04 sts 0x0453, r1
fc8a: 10 92 56 04 sts 0x0456, r1
fc8e: 10 92 55 04 sts 0x0455, r1
fc92: 08 95 ret
 
0000fc94 <__vector_12>:
fc94: 1f 92 push r1
fc96: 0f 92 push r0
fc98: 0f b6 in r0, 0x3f ; 63
fc9a: 0f 92 push r0
fc9c: 11 24 eor r1, r1
fc9e: 0b b6 in r0, 0x3b ; 59
fca0: 0f 92 push r0
fca2: 2f 93 push r18
fca4: 3f 93 push r19
fca6: 4f 93 push r20
fca8: 5f 93 push r21
fcaa: 6f 93 push r22
fcac: 7f 93 push r23
fcae: 8f 93 push r24
fcb0: 9f 93 push r25
fcb2: af 93 push r26
fcb4: bf 93 push r27
fcb6: cf 93 push r28
fcb8: df 93 push r29
fcba: ef 93 push r30
fcbc: ff 93 push r31
fcbe: 80 91 86 00 lds r24, 0x0086
fcc2: 90 91 87 00 lds r25, 0x0087
fcc6: 20 91 a5 04 lds r18, 0x04A5
fcca: 30 91 a6 04 lds r19, 0x04A6
fcce: 82 1b sub r24, r18
fcd0: 93 0b sbc r25, r19
fcd2: 20 91 86 00 lds r18, 0x0086
fcd6: 30 91 87 00 lds r19, 0x0087
fcda: 30 93 a6 04 sts 0x04A6, r19
fcde: 20 93 a5 04 sts 0x04A5, r18
fce2: 9c 01 movw r18, r24
fce4: 2d 54 subi r18, 0x4D ; 77
fce6: 34 40 sbci r19, 0x04 ; 4
fce8: c0 91 a3 04 lds r28, 0x04A3
fcec: d0 91 a4 04 lds r29, 0x04A4
fcf0: 23 3f cpi r18, 0xF3 ; 243
fcf2: 3a 41 sbci r19, 0x1A ; 26
fcf4: 68 f4 brcc .+26 ; 0xfd10 <__vector_12+0x7c>
fcf6: c0 93 0d 08 sts 0x080D, r28
fcfa: 24 97 sbiw r28, 0x04 ; 4
fcfc: 14 f0 brlt .+4 ; 0xfd02 <__vector_12+0x6e>
fcfe: 10 92 93 02 sts 0x0293, r1
fd02: 81 e0 ldi r24, 0x01 ; 1
fd04: 90 e0 ldi r25, 0x00 ; 0
fd06: 90 93 a4 04 sts 0x04A4, r25
fd0a: 80 93 a3 04 sts 0x04A3, r24
fd0e: b4 c0 rjmp .+360 ; 0xfe78 <__vector_12+0x1e4>
fd10: c1 31 cpi r28, 0x11 ; 17
fd12: d1 05 cpc r29, r1
fd14: 0c f0 brlt .+2 ; 0xfd18 <__vector_12+0x84>
fd16: b0 c0 rjmp .+352 ; 0xfe78 <__vector_12+0x1e4>
fd18: 9c 01 movw r18, r24
fd1a: 2b 5f subi r18, 0xFB ; 251
fd1c: 31 09 sbc r19, r1
fd1e: 24 3b cpi r18, 0xB4 ; 180
fd20: 31 40 sbci r19, 0x01 ; 1
fd22: 08 f0 brcs .+2 ; 0xfd26 <__vector_12+0x92>
fd24: a4 c0 rjmp .+328 ; 0xfe6e <__vector_12+0x1da>
fd26: 20 91 91 02 lds r18, 0x0291
fd2a: 30 91 92 02 lds r19, 0x0292
fd2e: 82 1b sub r24, r18
fd30: 93 0b sbc r25, r19
fd32: a0 91 85 05 lds r26, 0x0585
fd36: fe 01 movw r30, r28
fd38: ee 0f add r30, r30
fd3a: ff 1f adc r31, r31
fd3c: aa 23 and r26, r26
fd3e: 51 f0 breq .+20 ; 0xfd54 <__vector_12+0xc0>
fd40: b0 e0 ldi r27, 0x00 ; 0
fd42: aa 0f add r26, r26
fd44: bb 1f adc r27, r27
fd46: a2 5f subi r26, 0xF2 ; 242
fd48: b7 4f sbci r27, 0xF7 ; 247
fd4a: 2d 91 ld r18, X+
fd4c: 3c 91 ld r19, X
fd4e: 24 36 cpi r18, 0x64 ; 100
fd50: 31 05 cpc r19, r1
fd52: e4 f4 brge .+56 ; 0xfd8c <__vector_12+0xf8>
fd54: df 01 movw r26, r30
fd56: a2 5f subi r26, 0xF2 ; 242
fd58: b7 4f sbci r27, 0xF7 ; 247
fd5a: 2d 91 ld r18, X+
fd5c: 3c 91 ld r19, X
fd5e: ac 01 movw r20, r24
fd60: 42 1b sub r20, r18
fd62: 53 0b sbc r21, r19
fd64: 9a 01 movw r18, r20
fd66: 57 ff sbrs r21, 7
fd68: 03 c0 rjmp .+6 ; 0xfd70 <__vector_12+0xdc>
fd6a: 31 95 neg r19
fd6c: 21 95 neg r18
fd6e: 31 09 sbc r19, r1
fd70: 26 30 cpi r18, 0x06 ; 6
fd72: 31 05 cpc r19, r1
fd74: 5c f4 brge .+22 ; 0xfd8c <__vector_12+0xf8>
fd76: 20 91 02 04 lds r18, 0x0402
fd7a: 28 3c cpi r18, 0xC8 ; 200
fd7c: 20 f4 brcc .+8 ; 0xfd86 <__vector_12+0xf2>
fd7e: 20 91 02 04 lds r18, 0x0402
fd82: 26 5f subi r18, 0xF6 ; 246
fd84: 01 c0 rjmp .+2 ; 0xfd88 <__vector_12+0xf4>
fd86: 28 ec ldi r18, 0xC8 ; 200
fd88: 20 93 02 04 sts 0x0402, r18
fd8c: df 01 movw r26, r30
fd8e: a2 5f subi r26, 0xF2 ; 242
fd90: b7 4f sbci r27, 0xF7 ; 247
fd92: 4d 91 ld r20, X+
fd94: 5c 91 ld r21, X
fd96: 9a 01 movw r18, r20
fd98: 22 0f add r18, r18
fd9a: 33 1f adc r19, r19
fd9c: 24 0f add r18, r20
fd9e: 35 1f adc r19, r21
fda0: 28 0f add r18, r24
fda2: 39 1f adc r19, r25
fda4: 37 ff sbrs r19, 7
fda6: 02 c0 rjmp .+4 ; 0xfdac <__vector_12+0x118>
fda8: 2d 5f subi r18, 0xFD ; 253
fdaa: 3f 4f sbci r19, 0xFF ; 255
fdac: 35 95 asr r19
fdae: 27 95 ror r18
fdb0: 35 95 asr r19
fdb2: 27 95 ror r18
fdb4: ac 01 movw r20, r24
fdb6: 4f 5f subi r20, 0xFF ; 255
fdb8: 5f 4f sbci r21, 0xFF ; 255
fdba: 42 17 cp r20, r18
fdbc: 53 07 cpc r21, r19
fdbe: 1c f4 brge .+6 ; 0xfdc6 <__vector_12+0x132>
fdc0: 21 50 subi r18, 0x01 ; 1
fdc2: 31 09 sbc r19, r1
fdc4: 06 c0 rjmp .+12 ; 0xfdd2 <__vector_12+0x13e>
fdc6: 01 97 sbiw r24, 0x01 ; 1
fdc8: 28 17 cp r18, r24
fdca: 39 07 cpc r19, r25
fdcc: 14 f4 brge .+4 ; 0xfdd2 <__vector_12+0x13e>
fdce: 2f 5f subi r18, 0xFF ; 255
fdd0: 3f 4f sbci r19, 0xFF ; 255
fdd2: 80 91 02 04 lds r24, 0x0402
fdd6: df 01 movw r26, r30
fdd8: 83 3c cpi r24, 0xC3 ; 195
fdda: c0 f0 brcs .+48 ; 0xfe0c <__vector_12+0x178>
fddc: a2 5f subi r26, 0xF2 ; 242
fdde: b7 4f sbci r27, 0xF7 ; 247
fde0: 8d 91 ld r24, X+
fde2: 9c 91 ld r25, X
fde4: a9 01 movw r20, r18
fde6: 48 1b sub r20, r24
fde8: 59 0b sbc r21, r25
fdea: ca 01 movw r24, r20
fdec: 63 e0 ldi r22, 0x03 ; 3
fdee: 70 e0 ldi r23, 0x00 ; 0
fdf0: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
fdf4: cb 01 movw r24, r22
fdf6: 88 0f add r24, r24
fdf8: 99 1f adc r25, r25
fdfa: 86 0f add r24, r22
fdfc: 97 1f adc r25, r23
fdfe: df 01 movw r26, r30
fe00: ac 5a subi r26, 0xAC ; 172
fe02: b7 4f sbci r27, 0xF7 ; 247
fe04: 11 96 adiw r26, 0x01 ; 1
fe06: 9c 93 st X, r25
fe08: 8e 93 st -X, r24
fe0a: 05 c0 rjmp .+10 ; 0xfe16 <__vector_12+0x182>
fe0c: ac 5a subi r26, 0xAC ; 172
fe0e: b7 4f sbci r27, 0xF7 ; 247
fe10: 11 96 adiw r26, 0x01 ; 1
fe12: 1c 92 st X, r1
fe14: 1e 92 st -X, r1
fe16: e2 5f subi r30, 0xF2 ; 242
fe18: f7 4f sbci r31, 0xF7 ; 247
fe1a: 31 83 std Z+1, r19 ; 0x01
fe1c: 20 83 st Z, r18
fe1e: 80 91 02 04 lds r24, 0x0402
fe22: 82 33 cpi r24, 0x32 ; 50
fe24: 20 f5 brcc .+72 ; 0xfe6e <__vector_12+0x1da>
fe26: e0 91 1c 05 lds r30, 0x051C
fe2a: f0 e0 ldi r31, 0x00 ; 0
fe2c: ee 0f add r30, r30
fe2e: ff 1f adc r31, r31
fe30: e2 5f subi r30, 0xF2 ; 242
fe32: f7 4f sbci r31, 0xF7 ; 247
fe34: 11 82 std Z+1, r1 ; 0x01
fe36: 10 82 st Z, r1
fe38: e0 91 1d 05 lds r30, 0x051D
fe3c: f0 e0 ldi r31, 0x00 ; 0
fe3e: ee 0f add r30, r30
fe40: ff 1f adc r31, r31
fe42: e2 5f subi r30, 0xF2 ; 242
fe44: f7 4f sbci r31, 0xF7 ; 247
fe46: 11 82 std Z+1, r1 ; 0x01
fe48: 10 82 st Z, r1
fe4a: e0 91 1f 05 lds r30, 0x051F
fe4e: f0 e0 ldi r31, 0x00 ; 0
fe50: ee 0f add r30, r30
fe52: ff 1f adc r31, r31
fe54: e2 5f subi r30, 0xF2 ; 242
fe56: f7 4f sbci r31, 0xF7 ; 247
fe58: 11 82 std Z+1, r1 ; 0x01
fe5a: 10 82 st Z, r1
fe5c: e0 91 1e 05 lds r30, 0x051E
fe60: f0 e0 ldi r31, 0x00 ; 0
fe62: ee 0f add r30, r30
fe64: ff 1f adc r31, r31
fe66: e2 5f subi r30, 0xF2 ; 242
fe68: f7 4f sbci r31, 0xF7 ; 247
fe6a: 11 82 std Z+1, r1 ; 0x01
fe6c: 10 82 st Z, r1
fe6e: 21 96 adiw r28, 0x01 ; 1
fe70: d0 93 a4 04 sts 0x04A4, r29
fe74: c0 93 a3 04 sts 0x04A3, r28
fe78: ff 91 pop r31
fe7a: ef 91 pop r30
fe7c: df 91 pop r29
fe7e: cf 91 pop r28
fe80: bf 91 pop r27
fe82: af 91 pop r26
fe84: 9f 91 pop r25
fe86: 8f 91 pop r24
fe88: 7f 91 pop r23
fe8a: 6f 91 pop r22
fe8c: 5f 91 pop r21
fe8e: 4f 91 pop r20
fe90: 3f 91 pop r19
fe92: 2f 91 pop r18
fe94: 0f 90 pop r0
fe96: 0b be out 0x3b, r0 ; 59
fe98: 0f 90 pop r0
fe9a: 0f be out 0x3f, r0 ; 63
fe9c: 0f 90 pop r0
fe9e: 1f 90 pop r1
fea0: 18 95 reti
 
0000fea2 <SbusUartInit>:
fea2: 9f b7 in r25, 0x3f ; 63
fea4: f8 94 cli
fea6: 80 91 c9 00 lds r24, 0x00C9
feaa: 8f 77 andi r24, 0x7F ; 127
feac: 80 93 c9 00 sts 0x00C9, r24
feb0: 80 91 c9 00 lds r24, 0x00C9
feb4: 8f 7b andi r24, 0xBF ; 191
feb6: 80 93 c9 00 sts 0x00C9, r24
feba: 80 91 c9 00 lds r24, 0x00C9
febe: 8f 7d andi r24, 0xDF ; 223
fec0: 80 93 c9 00 sts 0x00C9, r24
fec4: 10 92 cd 00 sts 0x00CD, r1
fec8: 88 e1 ldi r24, 0x18 ; 24
feca: 80 93 cc 00 sts 0x00CC, r24
fece: 80 91 c8 00 lds r24, 0x00C8
fed2: 82 60 ori r24, 0x02 ; 2
fed4: 80 93 c8 00 sts 0x00C8, r24
fed8: 80 e1 ldi r24, 0x10 ; 16
feda: 80 93 c9 00 sts 0x00C9, r24
fede: 80 91 ca 00 lds r24, 0x00CA
fee2: 8f 77 andi r24, 0x7F ; 127
fee4: 80 93 ca 00 sts 0x00CA, r24
fee8: 80 91 ca 00 lds r24, 0x00CA
feec: 8f 7b andi r24, 0xBF ; 191
feee: 80 93 ca 00 sts 0x00CA, r24
fef2: 80 91 ca 00 lds r24, 0x00CA
fef6: 80 91 ca 00 lds r24, 0x00CA
fefa: 8f 7e andi r24, 0xEF ; 239
fefc: 80 93 ca 00 sts 0x00CA, r24
ff00: 80 91 ca 00 lds r24, 0x00CA
ff04: 88 60 ori r24, 0x08 ; 8
ff06: 80 93 ca 00 sts 0x00CA, r24
ff0a: 80 91 c9 00 lds r24, 0x00C9
ff0e: 8b 7f andi r24, 0xFB ; 251
ff10: 80 93 c9 00 sts 0x00C9, r24
ff14: 80 91 ca 00 lds r24, 0x00CA
ff18: 84 60 ori r24, 0x04 ; 4
ff1a: 80 93 ca 00 sts 0x00CA, r24
ff1e: 80 91 ca 00 lds r24, 0x00CA
ff22: 82 60 ori r24, 0x02 ; 2
ff24: 80 93 ca 00 sts 0x00CA, r24
ff28: 80 91 c8 00 lds r24, 0x00C8
ff2c: 87 ff sbrs r24, 7
ff2e: 03 c0 rjmp .+6 ; 0xff36 <SbusUartInit+0x94>
ff30: 80 91 ce 00 lds r24, 0x00CE
ff34: f9 cf rjmp .-14 ; 0xff28 <SbusUartInit+0x86>
ff36: 80 91 c9 00 lds r24, 0x00C9
ff3a: 80 68 ori r24, 0x80 ; 128
ff3c: 80 93 c9 00 sts 0x00C9, r24
ff40: 80 91 b1 08 lds r24, 0x08B1
ff44: 84 60 ori r24, 0x04 ; 4
ff46: 80 93 b1 08 sts 0x08B1, r24
ff4a: 9f bf out 0x3f, r25 ; 63
ff4c: 08 95 ret
 
0000ff4e <SbusParser>:
ff4e: 90 91 ae 04 lds r25, 0x04AE
ff52: 91 11 cpse r25, r1
ff54: 08 c0 rjmp .+16 ; 0xff66 <SbusParser+0x18>
ff56: 8f 30 cpi r24, 0x0F ; 15
ff58: 31 f4 brne .+12 ; 0xff66 <SbusParser+0x18>
ff5a: 10 92 a8 04 sts 0x04A8, r1
ff5e: 80 e5 ldi r24, 0x50 ; 80
ff60: 80 93 ae 04 sts 0x04AE, r24
ff64: 08 95 ret
ff66: e0 91 a8 04 lds r30, 0x04A8
ff6a: ef 5f subi r30, 0xFF ; 255
ff6c: e0 93 a8 04 sts 0x04A8, r30
ff70: e8 31 cpi r30, 0x18 ; 24
ff72: 21 f4 brne .+8 ; 0xff7c <SbusParser+0x2e>
ff74: 81 e0 ldi r24, 0x01 ; 1
ff76: 80 93 a9 04 sts 0x04A9, r24
ff7a: 08 95 ret
ff7c: e9 31 cpi r30, 0x19 ; 25
ff7e: 20 f0 brcs .+8 ; 0xff88 <SbusParser+0x3a>
ff80: 89 e1 ldi r24, 0x19 ; 25
ff82: 80 93 a8 04 sts 0x04A8, r24
ff86: 08 95 ret
ff88: f0 e0 ldi r31, 0x00 ; 0
ff8a: e6 56 subi r30, 0x66 ; 102
ff8c: f7 4f sbci r31, 0xF7 ; 247
ff8e: 80 83 st Z, r24
ff90: 08 95 ret
 
0000ff92 <ProcessSBus>:
ff92: cf 92 push r12
ff94: df 92 push r13
ff96: ef 92 push r14
ff98: ff 92 push r15
ff9a: 0f 93 push r16
ff9c: 1f 93 push r17
ff9e: cf 93 push r28
ffa0: df 93 push r29
ffa2: 80 91 b1 08 lds r24, 0x08B1
ffa6: 82 fd sbrc r24, 2
ffa8: ab c0 rjmp .+342 ; 0x10100 <ProcessSBus+0x16e>
ffaa: 80 91 6f 00 lds r24, 0x006F
ffae: 8f 7d andi r24, 0xDF ; 223
ffb0: 80 93 6f 00 sts 0x006F, r24
ffb4: e0 91 85 05 lds r30, 0x0585
ffb8: ee 23 and r30, r30
ffba: 51 f0 breq .+20 ; 0xffd0 <ProcessSBus+0x3e>
ffbc: f0 e0 ldi r31, 0x00 ; 0
ffbe: ee 0f add r30, r30
ffc0: ff 1f adc r31, r31
ffc2: e2 5f subi r30, 0xF2 ; 242
ffc4: f7 4f sbci r31, 0xF7 ; 247
ffc6: 80 81 ld r24, Z
ffc8: 91 81 ldd r25, Z+1 ; 0x01
ffca: 84 36 cpi r24, 0x64 ; 100
ffcc: 91 05 cpc r25, r1
ffce: 5c f4 brge .+22 ; 0xffe6 <ProcessSBus+0x54>
ffd0: 80 91 02 04 lds r24, 0x0402
ffd4: 88 3c cpi r24, 0xC8 ; 200
ffd6: 20 f4 brcc .+8 ; 0xffe0 <ProcessSBus+0x4e>
ffd8: 80 91 02 04 lds r24, 0x0402
ffdc: 8c 5e subi r24, 0xEC ; 236
ffde: 01 c0 rjmp .+2 ; 0xffe2 <ProcessSBus+0x50>
ffe0: 88 ec ldi r24, 0xC8 ; 200
ffe2: 80 93 02 04 sts 0x0402, r24
ffe6: 80 91 9b 08 lds r24, 0x089B
ffea: 90 e0 ldi r25, 0x00 ; 0
ffec: 20 91 a7 04 lds r18, 0x04A7
fff0: 22 23 and r18, r18
fff2: 31 f0 breq .+12 ; 0x10000 <ProcessSBus+0x6e>
fff4: 21 50 subi r18, 0x01 ; 1
fff6: 20 93 a7 04 sts 0x04A7, r18
fffa: f4 e2 ldi r31, 0x24 ; 36
fffc: cf 2e mov r12, r31
fffe: 05 c0 rjmp .+10 ; 0x1000a <ProcessSBus+0x78>
10000: 22 e0 ldi r18, 0x02 ; 2
10002: 20 93 a7 04 sts 0x04A7, r18
10006: e8 ea ldi r30, 0xA8 ; 168
10008: ce 2e mov r12, r30
1000a: 20 e0 ldi r18, 0x00 ; 0
1000c: 31 e0 ldi r19, 0x01 ; 1
1000e: dd 24 eor r13, r13
10010: d3 94 inc r13
10012: f1 2c mov r15, r1
10014: 72 e0 ldi r23, 0x02 ; 2
10016: e7 2e mov r14, r23
10018: 41 e0 ldi r20, 0x01 ; 1
1001a: c5 e0 ldi r28, 0x05 ; 5
1001c: d0 e0 ldi r29, 0x00 ; 0
1001e: 03 e0 ldi r16, 0x03 ; 3
10020: 10 e0 ldi r17, 0x00 ; 0
10022: ee 2d mov r30, r14
10024: f0 e0 ldi r31, 0x00 ; 0
10026: e6 56 subi r30, 0x66 ; 102
10028: f7 4f sbci r31, 0xF7 ; 247
1002a: 50 81 ld r21, Z
1002c: 54 23 and r21, r20
1002e: 11 f0 breq .+4 ; 0x10034 <ProcessSBus+0xa2>
10030: 82 2b or r24, r18
10032: 93 2b or r25, r19
10034: 44 0f add r20, r20
10036: 11 f4 brne .+4 ; 0x1003c <ProcessSBus+0xaa>
10038: e3 94 inc r14
1003a: 41 e0 ldi r20, 0x01 ; 1
1003c: 22 0f add r18, r18
1003e: 33 1f adc r19, r19
10040: 21 15 cp r18, r1
10042: 58 e0 ldi r21, 0x08 ; 8
10044: 35 07 cpc r19, r21
10046: 09 f0 breq .+2 ; 0x1004a <ProcessSBus+0xb8>
10048: 55 c0 rjmp .+170 ; 0x100f4 <ProcessSBus+0x162>
1004a: 94 50 subi r25, 0x04 ; 4
1004c: be 01 movw r22, r28
1004e: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
10052: ed 2d mov r30, r13
10054: f0 e0 ldi r31, 0x00 ; 0
10056: ee 0f add r30, r30
10058: ff 1f adc r31, r31
1005a: df 01 movw r26, r30
1005c: a2 5f subi r26, 0xF2 ; 242
1005e: b7 4f sbci r27, 0xF7 ; 247
10060: 8d 91 ld r24, X+
10062: 9c 91 ld r25, X
10064: 9c 01 movw r18, r24
10066: 22 0f add r18, r18
10068: 33 1f adc r19, r19
1006a: 28 0f add r18, r24
1006c: 39 1f adc r19, r25
1006e: 26 0f add r18, r22
10070: 37 1f adc r19, r23
10072: 37 ff sbrs r19, 7
10074: 02 c0 rjmp .+4 ; 0x1007a <ProcessSBus+0xe8>
10076: 2d 5f subi r18, 0xFD ; 253
10078: 3f 4f sbci r19, 0xFF ; 255
1007a: 35 95 asr r19
1007c: 27 95 ror r18
1007e: 35 95 asr r19
10080: 27 95 ror r18
10082: cb 01 movw r24, r22
10084: 01 96 adiw r24, 0x01 ; 1
10086: 82 17 cp r24, r18
10088: 93 07 cpc r25, r19
1008a: 1c f4 brge .+6 ; 0x10092 <ProcessSBus+0x100>
1008c: 21 50 subi r18, 0x01 ; 1
1008e: 31 09 sbc r19, r1
10090: 07 c0 rjmp .+14 ; 0x100a0 <ProcessSBus+0x10e>
10092: 61 50 subi r22, 0x01 ; 1
10094: 71 09 sbc r23, r1
10096: 26 17 cp r18, r22
10098: 37 07 cpc r19, r23
1009a: 14 f4 brge .+4 ; 0x100a0 <ProcessSBus+0x10e>
1009c: 2f 5f subi r18, 0xFF ; 255
1009e: 3f 4f sbci r19, 0xFF ; 255
100a0: 80 91 02 04 lds r24, 0x0402
100a4: df 01 movw r26, r30
100a6: 83 3c cpi r24, 0xC3 ; 195
100a8: b8 f0 brcs .+46 ; 0x100d8 <ProcessSBus+0x146>
100aa: a2 5f subi r26, 0xF2 ; 242
100ac: b7 4f sbci r27, 0xF7 ; 247
100ae: 8d 91 ld r24, X+
100b0: 9c 91 ld r25, X
100b2: b9 01 movw r22, r18
100b4: 68 1b sub r22, r24
100b6: 79 0b sbc r23, r25
100b8: cb 01 movw r24, r22
100ba: b8 01 movw r22, r16
100bc: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
100c0: cb 01 movw r24, r22
100c2: 88 0f add r24, r24
100c4: 99 1f adc r25, r25
100c6: 86 0f add r24, r22
100c8: 97 1f adc r25, r23
100ca: df 01 movw r26, r30
100cc: ac 5a subi r26, 0xAC ; 172
100ce: b7 4f sbci r27, 0xF7 ; 247
100d0: 11 96 adiw r26, 0x01 ; 1
100d2: 9c 93 st X, r25
100d4: 8e 93 st -X, r24
100d6: 05 c0 rjmp .+10 ; 0x100e2 <ProcessSBus+0x150>
100d8: ac 5a subi r26, 0xAC ; 172
100da: b7 4f sbci r27, 0xF7 ; 247
100dc: 11 96 adiw r26, 0x01 ; 1
100de: 1c 92 st X, r1
100e0: 1e 92 st -X, r1
100e2: e2 5f subi r30, 0xF2 ; 242
100e4: f7 4f sbci r31, 0xF7 ; 247
100e6: 31 83 std Z+1, r19 ; 0x01
100e8: 20 83 st Z, r18
100ea: d3 94 inc r13
100ec: 80 e0 ldi r24, 0x00 ; 0
100ee: 90 e0 ldi r25, 0x00 ; 0
100f0: 21 e0 ldi r18, 0x01 ; 1
100f2: 30 e0 ldi r19, 0x00 ; 0
100f4: f3 94 inc r15
100f6: fc 14 cp r15, r12
100f8: 08 f4 brcc .+2 ; 0x100fc <ProcessSBus+0x16a>
100fa: 93 cf rjmp .-218 ; 0x10022 <ProcessSBus+0x90>
100fc: 10 92 93 02 sts 0x0293, r1
10100: 10 92 a9 04 sts 0x04A9, r1
10104: df 91 pop r29
10106: cf 91 pop r28
10108: 1f 91 pop r17
1010a: 0f 91 pop r16
1010c: ff 90 pop r15
1010e: ef 90 pop r14
10110: df 90 pop r13
10112: cf 90 pop r12
10114: 08 95 ret
 
00010116 <SpektrumUartInit>:
10116: 9f b7 in r25, 0x3f ; 63
10118: f8 94 cli
1011a: 80 91 c9 00 lds r24, 0x00C9
1011e: 8f 77 andi r24, 0x7F ; 127
10120: 80 93 c9 00 sts 0x00C9, r24
10124: 80 91 c9 00 lds r24, 0x00C9
10128: 8f 7b andi r24, 0xBF ; 191
1012a: 80 93 c9 00 sts 0x00C9, r24
1012e: 80 91 c9 00 lds r24, 0x00C9
10132: 8f 7d andi r24, 0xDF ; 223
10134: 80 93 c9 00 sts 0x00C9, r24
10138: 10 92 cd 00 sts 0x00CD, r1
1013c: 84 e1 ldi r24, 0x14 ; 20
1013e: 80 93 cc 00 sts 0x00CC, r24
10142: 80 91 c8 00 lds r24, 0x00C8
10146: 82 60 ori r24, 0x02 ; 2
10148: 80 93 c8 00 sts 0x00C8, r24
1014c: 80 e1 ldi r24, 0x10 ; 16
1014e: 80 93 c9 00 sts 0x00C9, r24
10152: 80 91 ca 00 lds r24, 0x00CA
10156: 8f 77 andi r24, 0x7F ; 127
10158: 80 93 ca 00 sts 0x00CA, r24
1015c: 80 91 ca 00 lds r24, 0x00CA
10160: 8f 7b andi r24, 0xBF ; 191
10162: 80 93 ca 00 sts 0x00CA, r24
10166: 80 91 ca 00 lds r24, 0x00CA
1016a: 8f 7d andi r24, 0xDF ; 223
1016c: 80 93 ca 00 sts 0x00CA, r24
10170: 80 91 ca 00 lds r24, 0x00CA
10174: 8f 7e andi r24, 0xEF ; 239
10176: 80 93 ca 00 sts 0x00CA, r24
1017a: 80 91 ca 00 lds r24, 0x00CA
1017e: 87 7f andi r24, 0xF7 ; 247
10180: 80 93 ca 00 sts 0x00CA, r24
10184: 80 91 c9 00 lds r24, 0x00C9
10188: 8b 7f andi r24, 0xFB ; 251
1018a: 80 93 c9 00 sts 0x00C9, r24
1018e: 80 91 ca 00 lds r24, 0x00CA
10192: 84 60 ori r24, 0x04 ; 4
10194: 80 93 ca 00 sts 0x00CA, r24
10198: 80 91 ca 00 lds r24, 0x00CA
1019c: 82 60 ori r24, 0x02 ; 2
1019e: 80 93 ca 00 sts 0x00CA, r24
101a2: 80 91 c8 00 lds r24, 0x00C8
101a6: 87 ff sbrs r24, 7
101a8: 03 c0 rjmp .+6 ; 0x101b0 <SpektrumUartInit+0x9a>
101aa: 80 91 ce 00 lds r24, 0x00CE
101ae: f9 cf rjmp .-14 ; 0x101a2 <SpektrumUartInit+0x8c>
101b0: 80 91 c9 00 lds r24, 0x00C9
101b4: 80 68 ori r24, 0x80 ; 128
101b6: 80 93 c9 00 sts 0x00C9, r24
101ba: 9f bf out 0x3f, r25 ; 63
101bc: 08 95 ret
 
000101be <SpektrumParser>:
101be: 90 91 94 02 lds r25, 0x0294
101c2: 91 30 cpi r25, 0x01 ; 1
101c4: 61 f4 brne .+24 ; 0x101de <SpektrumParser+0x20>
101c6: 10 92 94 02 sts 0x0294, r1
101ca: 84 e4 ldi r24, 0x44 ; 68
101cc: 80 93 ae 04 sts 0x04AE, r24
101d0: 10 92 ad 04 sts 0x04AD, r1
101d4: 10 92 ac 04 sts 0x04AC, r1
101d8: 10 92 ab 04 sts 0x04AB, r1
101dc: 08 95 ret
101de: 21 e0 ldi r18, 0x01 ; 1
101e0: 30 e0 ldi r19, 0x00 ; 0
101e2: 90 91 ae 04 lds r25, 0x04AE
101e6: 99 23 and r25, r25
101e8: 11 f0 breq .+4 ; 0x101ee <SpektrumParser+0x30>
101ea: 20 e0 ldi r18, 0x00 ; 0
101ec: 30 e0 ldi r19, 0x00 ; 0
101ee: 90 91 ac 04 lds r25, 0x04AC
101f2: 91 11 cpse r25, r1
101f4: 0e c0 rjmp .+28 ; 0x10212 <SpektrumParser+0x54>
101f6: 23 2b or r18, r19
101f8: 11 f0 breq .+4 ; 0x101fe <SpektrumParser+0x40>
101fa: 81 e0 ldi r24, 0x01 ; 1
101fc: 10 c0 rjmp .+32 ; 0x1021e <SpektrumParser+0x60>
101fe: 84 e4 ldi r24, 0x44 ; 68
10200: 80 93 ae 04 sts 0x04AE, r24
10204: 10 92 ad 04 sts 0x04AD, r1
10208: 10 92 ac 04 sts 0x04AC, r1
1020c: 10 92 ab 04 sts 0x04AB, r1
10210: ed c0 rjmp .+474 ; 0x103ec <SpektrumParser+0x22e>
10212: 91 30 cpi r25, 0x01 ; 1
10214: 69 f4 brne .+26 ; 0x10230 <SpektrumParser+0x72>
10216: 23 2b or r18, r19
10218: 09 f0 breq .+2 ; 0x1021c <SpektrumParser+0x5e>
1021a: de c0 rjmp .+444 ; 0x103d8 <SpektrumParser+0x21a>
1021c: 82 e0 ldi r24, 0x02 ; 2
1021e: 80 93 ac 04 sts 0x04AC, r24
10222: 80 91 ad 04 lds r24, 0x04AD
10226: 8f 5f subi r24, 0xFF ; 255
10228: 80 93 ad 04 sts 0x04AD, r24
1022c: 83 e0 ldi r24, 0x03 ; 3
1022e: dc c0 rjmp .+440 ; 0x103e8 <SpektrumParser+0x22a>
10230: 92 30 cpi r25, 0x02 ; 2
10232: d1 f4 brne .+52 ; 0x10268 <SpektrumParser+0xaa>
10234: 23 2b or r18, r19
10236: 09 f0 breq .+2 ; 0x1023a <SpektrumParser+0x7c>
10238: cf c0 rjmp .+414 ; 0x103d8 <SpektrumParser+0x21a>
1023a: 93 e0 ldi r25, 0x03 ; 3
1023c: 90 93 ae 04 sts 0x04AE, r25
10240: 80 93 ab 04 sts 0x04AB, r24
10244: 90 91 ad 04 lds r25, 0x04AD
10248: 92 30 cpi r25, 0x02 ; 2
1024a: 39 f4 brne .+14 ; 0x1025a <SpektrumParser+0x9c>
1024c: 10 92 aa 04 sts 0x04AA, r1
10250: 87 ff sbrs r24, 7
10252: 03 c0 rjmp .+6 ; 0x1025a <SpektrumParser+0x9c>
10254: 81 e0 ldi r24, 0x01 ; 1
10256: 80 93 aa 04 sts 0x04AA, r24
1025a: 83 e0 ldi r24, 0x03 ; 3
1025c: 80 93 ac 04 sts 0x04AC, r24
10260: 9f 5f subi r25, 0xFF ; 255
10262: 90 93 ad 04 sts 0x04AD, r25
10266: c2 c0 rjmp .+388 ; 0x103ec <SpektrumParser+0x22e>
10268: 93 30 cpi r25, 0x03 ; 3
1026a: 09 f0 breq .+2 ; 0x1026e <SpektrumParser+0xb0>
1026c: b5 c0 rjmp .+362 ; 0x103d8 <SpektrumParser+0x21a>
1026e: 23 2b or r18, r19
10270: 09 f0 breq .+2 ; 0x10274 <SpektrumParser+0xb6>
10272: b2 c0 rjmp .+356 ; 0x103d8 <SpektrumParser+0x21a>
10274: 90 93 ae 04 sts 0x04AE, r25
10278: 92 e0 ldi r25, 0x02 ; 2
1027a: 90 93 ac 04 sts 0x04AC, r25
1027e: 90 91 ad 04 lds r25, 0x04AD
10282: 9f 5f subi r25, 0xFF ; 255
10284: 90 93 ad 04 sts 0x04AD, r25
10288: e0 91 ab 04 lds r30, 0x04AB
1028c: 90 e0 ldi r25, 0x00 ; 0
1028e: 9e 2b or r25, r30
10290: 20 91 42 05 lds r18, 0x0542
10294: 21 30 cpi r18, 0x01 ; 1
10296: 39 f4 brne .+14 ; 0x102a6 <SpektrumParser+0xe8>
10298: 93 70 andi r25, 0x03 ; 3
1029a: 92 50 subi r25, 0x02 ; 2
1029c: 63 e0 ldi r22, 0x03 ; 3
1029e: 70 e0 ldi r23, 0x00 ; 0
102a0: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
102a4: 14 c0 rjmp .+40 ; 0x102ce <SpektrumParser+0x110>
102a6: 22 30 cpi r18, 0x02 ; 2
102a8: 51 f4 brne .+20 ; 0x102be <SpektrumParser+0x100>
102aa: 97 70 andi r25, 0x07 ; 7
102ac: 94 50 subi r25, 0x04 ; 4
102ae: 66 e0 ldi r22, 0x06 ; 6
102b0: 70 e0 ldi r23, 0x00 ; 0
102b2: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
102b6: e6 95 lsr r30
102b8: e6 95 lsr r30
102ba: e6 95 lsr r30
102bc: 0a c0 rjmp .+20 ; 0x102d2 <SpektrumParser+0x114>
102be: 93 70 andi r25, 0x03 ; 3
102c0: 88 56 subi r24, 0x68 ; 104
102c2: 91 40 sbci r25, 0x01 ; 1
102c4: 97 fd sbrc r25, 7
102c6: 01 96 adiw r24, 0x01 ; 1
102c8: bc 01 movw r22, r24
102ca: 75 95 asr r23
102cc: 67 95 ror r22
102ce: e6 95 lsr r30
102d0: e6 95 lsr r30
102d2: ef 70 andi r30, 0x0F ; 15
102d4: f0 e0 ldi r31, 0x00 ; 0
102d6: 31 96 adiw r30, 0x01 ; 1
102d8: ed 30 cpi r30, 0x0D ; 13
102da: f1 05 cpc r31, r1
102dc: 08 f0 brcs .+2 ; 0x102e0 <SpektrumParser+0x122>
102de: 86 c0 rjmp .+268 ; 0x103ec <SpektrumParser+0x22e>
102e0: ee 0f add r30, r30
102e2: ff 1f adc r31, r31
102e4: df 01 movw r26, r30
102e6: a2 5f subi r26, 0xF2 ; 242
102e8: b7 4f sbci r27, 0xF7 ; 247
102ea: 8d 91 ld r24, X+
102ec: 9c 91 ld r25, X
102ee: 9b 01 movw r18, r22
102f0: 28 1b sub r18, r24
102f2: 39 0b sbc r19, r25
102f4: c9 01 movw r24, r18
102f6: 37 ff sbrs r19, 7
102f8: 03 c0 rjmp .+6 ; 0x10300 <SpektrumParser+0x142>
102fa: 91 95 neg r25
102fc: 81 95 neg r24
102fe: 91 09 sbc r25, r1
10300: 06 97 sbiw r24, 0x06 ; 6
10302: 04 f5 brge .+64 ; 0x10344 <SpektrumParser+0x186>
10304: a0 91 85 05 lds r26, 0x0585
10308: aa 23 and r26, r26
1030a: 51 f0 breq .+20 ; 0x10320 <SpektrumParser+0x162>
1030c: b0 e0 ldi r27, 0x00 ; 0
1030e: aa 0f add r26, r26
10310: bb 1f adc r27, r27
10312: a2 5f subi r26, 0xF2 ; 242
10314: b7 4f sbci r27, 0xF7 ; 247
10316: 8d 91 ld r24, X+
10318: 9c 91 ld r25, X
1031a: 84 36 cpi r24, 0x64 ; 100
1031c: 91 05 cpc r25, r1
1031e: 94 f4 brge .+36 ; 0x10344 <SpektrumParser+0x186>
10320: 80 91 02 04 lds r24, 0x0402
10324: 88 3c cpi r24, 0xC8 ; 200
10326: 30 f4 brcc .+12 ; 0x10334 <SpektrumParser+0x176>
10328: 80 91 02 04 lds r24, 0x0402
1032c: 86 5f subi r24, 0xF6 ; 246
1032e: 80 93 02 04 sts 0x0402, r24
10332: 08 c0 rjmp .+16 ; 0x10344 <SpektrumParser+0x186>
10334: 88 ec ldi r24, 0xC8 ; 200
10336: 80 93 02 04 sts 0x0402, r24
1033a: 80 91 6f 00 lds r24, 0x006F
1033e: 8f 7d andi r24, 0xDF ; 223
10340: 80 93 6f 00 sts 0x006F, r24
10344: df 01 movw r26, r30
10346: a2 5f subi r26, 0xF2 ; 242
10348: b7 4f sbci r27, 0xF7 ; 247
1034a: 8d 91 ld r24, X+
1034c: 9c 91 ld r25, X
1034e: 9c 01 movw r18, r24
10350: 22 0f add r18, r18
10352: 33 1f adc r19, r19
10354: 28 0f add r18, r24
10356: 39 1f adc r19, r25
10358: 26 0f add r18, r22
1035a: 37 1f adc r19, r23
1035c: 37 ff sbrs r19, 7
1035e: 02 c0 rjmp .+4 ; 0x10364 <SpektrumParser+0x1a6>
10360: 2d 5f subi r18, 0xFD ; 253
10362: 3f 4f sbci r19, 0xFF ; 255
10364: 35 95 asr r19
10366: 27 95 ror r18
10368: 35 95 asr r19
1036a: 27 95 ror r18
1036c: cb 01 movw r24, r22
1036e: 01 96 adiw r24, 0x01 ; 1
10370: 82 17 cp r24, r18
10372: 93 07 cpc r25, r19
10374: 1c f4 brge .+6 ; 0x1037c <SpektrumParser+0x1be>
10376: 21 50 subi r18, 0x01 ; 1
10378: 31 09 sbc r19, r1
1037a: 07 c0 rjmp .+14 ; 0x1038a <SpektrumParser+0x1cc>
1037c: 61 50 subi r22, 0x01 ; 1
1037e: 71 09 sbc r23, r1
10380: 26 17 cp r18, r22
10382: 37 07 cpc r19, r23
10384: 14 f4 brge .+4 ; 0x1038a <SpektrumParser+0x1cc>
10386: 2f 5f subi r18, 0xFF ; 255
10388: 3f 4f sbci r19, 0xFF ; 255
1038a: 80 91 02 04 lds r24, 0x0402
1038e: df 01 movw r26, r30
10390: 84 3b cpi r24, 0xB4 ; 180
10392: c0 f0 brcs .+48 ; 0x103c4 <SpektrumParser+0x206>
10394: a2 5f subi r26, 0xF2 ; 242
10396: b7 4f sbci r27, 0xF7 ; 247
10398: 8d 91 ld r24, X+
1039a: 9c 91 ld r25, X
1039c: a9 01 movw r20, r18
1039e: 48 1b sub r20, r24
103a0: 59 0b sbc r21, r25
103a2: ca 01 movw r24, r20
103a4: 63 e0 ldi r22, 0x03 ; 3
103a6: 70 e0 ldi r23, 0x00 ; 0
103a8: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
103ac: cb 01 movw r24, r22
103ae: 88 0f add r24, r24
103b0: 99 1f adc r25, r25
103b2: 86 0f add r24, r22
103b4: 97 1f adc r25, r23
103b6: df 01 movw r26, r30
103b8: ac 5a subi r26, 0xAC ; 172
103ba: b7 4f sbci r27, 0xF7 ; 247
103bc: 11 96 adiw r26, 0x01 ; 1
103be: 9c 93 st X, r25
103c0: 8e 93 st -X, r24
103c2: 05 c0 rjmp .+10 ; 0x103ce <SpektrumParser+0x210>
103c4: ac 5a subi r26, 0xAC ; 172
103c6: b7 4f sbci r27, 0xF7 ; 247
103c8: 11 96 adiw r26, 0x01 ; 1
103ca: 1c 92 st X, r1
103cc: 1e 92 st -X, r1
103ce: e2 5f subi r30, 0xF2 ; 242
103d0: f7 4f sbci r31, 0xF7 ; 247
103d2: 31 83 std Z+1, r19 ; 0x01
103d4: 20 83 st Z, r18
103d6: 0a c0 rjmp .+20 ; 0x103ec <SpektrumParser+0x22e>
103d8: 81 e0 ldi r24, 0x01 ; 1
103da: 80 93 94 02 sts 0x0294, r24
103de: 10 92 ad 04 sts 0x04AD, r1
103e2: 10 92 aa 04 sts 0x04AA, r1
103e6: 84 e4 ldi r24, 0x44 ; 68
103e8: 80 93 ae 04 sts 0x04AE, r24
103ec: 80 91 ad 04 lds r24, 0x04AD
103f0: 80 31 cpi r24, 0x10 ; 16
103f2: 98 f0 brcs .+38 ; 0x1041a <SpektrumParser+0x25c>
103f4: 80 91 aa 04 lds r24, 0x04AA
103f8: 81 11 cpse r24, r1
103fa: 06 c0 rjmp .+12 ; 0x10408 <SpektrumParser+0x24a>
103fc: 80 91 94 02 lds r24, 0x0294
10400: 81 11 cpse r24, r1
10402: 02 c0 rjmp .+4 ; 0x10408 <SpektrumParser+0x24a>
10404: 10 92 93 02 sts 0x0293, r1
10408: 10 92 ad 04 sts 0x04AD, r1
1040c: 10 92 aa 04 sts 0x04AA, r1
10410: 10 92 ac 04 sts 0x04AC, r1
10414: 84 e4 ldi r24, 0x44 ; 68
10416: 80 93 ae 04 sts 0x04AE, r24
1041a: 08 95 ret
 
0001041c <SPI_MasterInit>:
1041c: 84 b1 in r24, 0x04 ; 4
1041e: 80 6a ori r24, 0xA0 ; 160
10420: 84 b9 out 0x04, r24 ; 4
10422: 3d 9a sbi 0x07, 5 ; 7
10424: 82 e5 ldi r24, 0x52 ; 82
10426: 8c bd out 0x2c, r24 ; 44
10428: 1d bc out 0x2d, r1 ; 45
1042a: 45 9a sbi 0x08, 5 ; 8
1042c: 81 e0 ldi r24, 0x01 ; 1
1042e: 80 93 b3 08 sts 0x08B3, r24
10432: 8a ea ldi r24, 0xAA ; 170
10434: 80 93 c4 08 sts 0x08C4, r24
10438: 83 e8 ldi r24, 0x83 ; 131
1043a: 80 93 c5 08 sts 0x08C5, r24
1043e: 8a e0 ldi r24, 0x0A ; 10
10440: 80 93 c6 08 sts 0x08C6, r24
10444: 10 92 c8 08 sts 0x08C8, r1
10448: 10 92 c7 08 sts 0x08C7, r1
1044c: 10 92 ca 08 sts 0x08CA, r1
10450: 10 92 c9 08 sts 0x08C9, r1
10454: 10 92 2c 09 sts 0x092C, r1
10458: 10 92 e8 08 sts 0x08E8, r1
1045c: 08 95 ret
 
0001045e <SPI_TransmitByte>:
1045e: 80 91 b3 08 lds r24, 0x08B3
10462: 81 11 cpse r24, r1
10464: 72 c0 rjmp .+228 ; 0x1054a <SPI_TransmitByte+0xec>
10466: 0d b4 in r0, 0x2d ; 45
10468: 07 fe sbrs r0, 7
1046a: 6f c0 rjmp .+222 ; 0x1054a <SPI_TransmitByte+0xec>
1046c: 85 e0 ldi r24, 0x05 ; 5
1046e: 80 93 ca 04 sts 0x04CA, r24
10472: 45 9a sbi 0x08, 5 ; 8
10474: 8e b5 in r24, 0x2e ; 46
10476: 90 91 b2 04 lds r25, 0x04B2
1047a: 91 30 cpi r25, 0x01 ; 1
1047c: 61 f0 breq .+24 ; 0x10496 <SPI_TransmitByte+0x38>
1047e: 18 f0 brcs .+6 ; 0x10486 <SPI_TransmitByte+0x28>
10480: 92 30 cpi r25, 0x02 ; 2
10482: a1 f0 breq .+40 ; 0x104ac <SPI_TransmitByte+0x4e>
10484: 38 c0 rjmp .+112 ; 0x104f6 <SPI_TransmitByte+0x98>
10486: 10 92 e7 08 sts 0x08E7, r1
1048a: 80 93 b1 04 sts 0x04B1, r24
1048e: 81 38 cpi r24, 0x81 ; 129
10490: 91 f5 brne .+100 ; 0x104f6 <SPI_TransmitByte+0x98>
10492: 81 e0 ldi r24, 0x01 ; 1
10494: 08 c0 rjmp .+16 ; 0x104a6 <SPI_TransmitByte+0x48>
10496: 85 35 cpi r24, 0x55 ; 85
10498: 41 f5 brne .+80 ; 0x104ea <SPI_TransmitByte+0x8c>
1049a: 80 91 b1 04 lds r24, 0x04B1
1049e: 8b 5a subi r24, 0xAB ; 171
104a0: 80 93 b1 04 sts 0x04B1, r24
104a4: 82 e0 ldi r24, 0x02 ; 2
104a6: 80 93 b2 04 sts 0x04B2, r24
104aa: 25 c0 rjmp .+74 ; 0x104f6 <SPI_TransmitByte+0x98>
104ac: e0 91 e7 08 lds r30, 0x08E7
104b0: 21 e0 ldi r18, 0x01 ; 1
104b2: 2e 0f add r18, r30
104b4: 20 93 e7 08 sts 0x08E7, r18
104b8: f0 e0 ldi r31, 0x00 ; 0
104ba: e7 5f subi r30, 0xF7 ; 247
104bc: f6 4f sbci r31, 0xF6 ; 246
104be: 80 83 st Z, r24
104c0: 90 91 b1 04 lds r25, 0x04B1
104c4: 20 32 cpi r18, 0x20 ; 32
104c6: a0 f0 brcs .+40 ; 0x104f0 <SPI_TransmitByte+0x92>
104c8: 89 13 cpse r24, r25
104ca: 0d c0 rjmp .+26 ; 0x104e6 <SPI_TransmitByte+0x88>
104cc: 80 e2 ldi r24, 0x20 ; 32
104ce: e9 e0 ldi r30, 0x09 ; 9
104d0: f9 e0 ldi r31, 0x09 ; 9
104d2: a9 ee ldi r26, 0xE9 ; 233
104d4: b8 e0 ldi r27, 0x08 ; 8
104d6: 01 90 ld r0, Z+
104d8: 0d 92 st X+, r0
104da: 8a 95 dec r24
104dc: e1 f7 brne .-8 ; 0x104d6 <SPI_TransmitByte+0x78>
104de: 81 e0 ldi r24, 0x01 ; 1
104e0: 80 93 e8 08 sts 0x08E8, r24
104e4: 02 c0 rjmp .+4 ; 0x104ea <SPI_TransmitByte+0x8c>
104e6: 10 92 e8 08 sts 0x08E8, r1
104ea: 10 92 b2 04 sts 0x04B2, r1
104ee: 03 c0 rjmp .+6 ; 0x104f6 <SPI_TransmitByte+0x98>
104f0: 89 0f add r24, r25
104f2: 80 93 b1 04 sts 0x04B1, r24
104f6: 80 91 c3 08 lds r24, 0x08C3
104fa: 82 32 cpi r24, 0x22 ; 34
104fc: f0 f4 brcc .+60 ; 0x1053a <SPI_TransmitByte+0xdc>
104fe: 45 98 cbi 0x08, 5 ; 8
...
10508: 80 91 c3 08 lds r24, 0x08C3
1050c: e0 91 bc 08 lds r30, 0x08BC
10510: f0 91 bd 08 lds r31, 0x08BD
10514: e8 0f add r30, r24
10516: f1 1d adc r31, r1
10518: 80 81 ld r24, Z
1051a: 8e bd out 0x2e, r24 ; 46
1051c: 80 91 c3 08 lds r24, 0x08C3
10520: e0 91 bc 08 lds r30, 0x08BC
10524: f0 91 bd 08 lds r31, 0x08BD
10528: e8 0f add r30, r24
1052a: f1 1d adc r31, r1
1052c: 80 81 ld r24, Z
1052e: 90 91 e5 08 lds r25, 0x08E5
10532: 89 0f add r24, r25
10534: 80 93 e5 08 sts 0x08E5, r24
10538: 03 c0 rjmp .+6 ; 0x10540 <SPI_TransmitByte+0xe2>
1053a: 81 e0 ldi r24, 0x01 ; 1
1053c: 80 93 b3 08 sts 0x08B3, r24
10540: 80 91 c3 08 lds r24, 0x08C3
10544: 8f 5f subi r24, 0xFF ; 255
10546: 80 93 c3 08 sts 0x08C3, r24
1054a: 08 95 ret
 
0001054c <UpdateSPI_Buffer>:
1054c: cf 92 push r12
1054e: df 92 push r13
10550: ef 92 push r14
10552: ff 92 push r15
10554: c0 90 37 05 lds r12, 0x0537
10558: 24 e0 ldi r18, 0x04 ; 4
1055a: c2 9e mul r12, r18
1055c: 60 01 movw r12, r0
1055e: 11 24 eor r1, r1
10560: ee 24 eor r14, r14
10562: d7 fc sbrc r13, 7
10564: e0 94 com r14
10566: fe 2c mov r15, r14
10568: 60 91 40 04 lds r22, 0x0440
1056c: 70 91 41 04 lds r23, 0x0441
10570: 80 91 42 04 lds r24, 0x0442
10574: 90 91 43 04 lds r25, 0x0443
10578: a7 01 movw r20, r14
1057a: 96 01 movw r18, r12
1057c: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
10580: 30 93 c8 08 sts 0x08C8, r19
10584: 20 93 c7 08 sts 0x08C7, r18
10588: 60 91 3c 04 lds r22, 0x043C
1058c: 70 91 3d 04 lds r23, 0x043D
10590: 80 91 3e 04 lds r24, 0x043E
10594: 90 91 3f 04 lds r25, 0x043F
10598: a7 01 movw r20, r14
1059a: 96 01 movw r18, r12
1059c: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
105a0: 30 93 ca 08 sts 0x08CA, r19
105a4: 20 93 c9 08 sts 0x08C9, r18
105a8: 20 91 4b 06 lds r18, 0x064B
105ac: 30 91 4c 06 lds r19, 0x064C
105b0: 40 91 4d 06 lds r20, 0x064D
105b4: 50 91 4e 06 lds r21, 0x064E
105b8: aa e0 ldi r26, 0x0A ; 10
105ba: b0 e0 ldi r27, 0x00 ; 0
105bc: 0e 94 45 9b call 0x1368a ; 0x1368a <__muluhisi3>
105c0: 20 91 21 01 lds r18, 0x0121
105c4: 30 91 22 01 lds r19, 0x0122
105c8: 40 91 23 01 lds r20, 0x0123
105cc: 50 91 24 01 lds r21, 0x0124
105d0: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
105d4: 30 93 d0 08 sts 0x08D0, r19
105d8: 20 93 cf 08 sts 0x08CF, r18
105dc: 20 91 51 04 lds r18, 0x0451
105e0: 30 91 52 04 lds r19, 0x0452
105e4: 80 91 61 03 lds r24, 0x0361
105e8: 90 91 62 03 lds r25, 0x0362
105ec: a9 01 movw r20, r18
105ee: 48 1b sub r20, r24
105f0: 59 0b sbc r21, r25
105f2: 50 93 d6 08 sts 0x08D6, r21
105f6: 40 93 d5 08 sts 0x08D5, r20
105fa: e0 91 47 04 lds r30, 0x0447
105fe: f0 91 48 04 lds r31, 0x0448
10602: 80 91 16 06 lds r24, 0x0616
10606: 90 91 17 06 lds r25, 0x0617
1060a: bf 01 movw r22, r30
1060c: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
10610: 46 e0 ldi r20, 0x06 ; 6
10612: 46 9f mul r20, r22
10614: c0 01 movw r24, r0
10616: 47 9f mul r20, r23
10618: 90 0d add r25, r0
1061a: 11 24 eor r1, r1
1061c: 97 fd sbrc r25, 7
1061e: 03 96 adiw r24, 0x03 ; 3
10620: 95 95 asr r25
10622: 87 95 ror r24
10624: 95 95 asr r25
10626: 87 95 ror r24
10628: 90 93 cc 08 sts 0x08CC, r25
1062c: 80 93 cb 08 sts 0x08CB, r24
10630: 80 91 47 06 lds r24, 0x0647
10634: 90 91 48 06 lds r25, 0x0648
10638: bf 01 movw r22, r30
1063a: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
1063e: 46 e0 ldi r20, 0x06 ; 6
10640: 46 9f mul r20, r22
10642: c0 01 movw r24, r0
10644: 47 9f mul r20, r23
10646: 90 0d add r25, r0
10648: 11 24 eor r1, r1
1064a: 97 fd sbrc r25, 7
1064c: 03 96 adiw r24, 0x03 ; 3
1064e: 95 95 asr r25
10650: 87 95 ror r24
10652: 95 95 asr r25
10654: 87 95 ror r24
10656: 90 93 ce 08 sts 0x08CE, r25
1065a: 80 93 cd 08 sts 0x08CD, r24
1065e: 10 92 48 04 sts 0x0448, r1
10662: 10 92 47 04 sts 0x0447, r1
10666: 10 92 17 06 sts 0x0617, r1
1066a: 10 92 16 06 sts 0x0616, r1
1066e: 10 92 48 06 sts 0x0648, r1
10672: 10 92 47 06 sts 0x0647, r1
10676: 80 91 c6 08 lds r24, 0x08C6
1067a: 90 e0 ldi r25, 0x00 ; 0
1067c: fc 01 movw r30, r24
1067e: 3a 97 sbiw r30, 0x0a ; 10
10680: ea 30 cpi r30, 0x0A ; 10
10682: f1 05 cpc r31, r1
10684: 08 f0 brcs .+2 ; 0x10688 <UpdateSPI_Buffer+0x13c>
10686: 87 c2 rjmp .+1294 ; 0x10b96 <UpdateSPI_Buffer+0x64a>
10688: ea 55 subi r30, 0x5A ; 90
1068a: ff 4f sbci r31, 0xFF ; 255
1068c: 0c 94 24 9b jmp 0x13648 ; 0x13648 <__tablejump2__>
10690: 80 91 de 03 lds r24, 0x03DE
10694: 80 93 d9 08 sts 0x08D9, r24
10698: 80 91 dd 03 lds r24, 0x03DD
1069c: 80 93 da 08 sts 0x08DA, r24
106a0: 80 91 dc 03 lds r24, 0x03DC
106a4: 80 93 db 08 sts 0x08DB, r24
106a8: 80 91 db 03 lds r24, 0x03DB
106ac: 80 93 dc 08 sts 0x08DC, r24
106b0: 80 91 da 03 lds r24, 0x03DA
106b4: 80 93 dd 08 sts 0x08DD, r24
106b8: 80 91 d9 03 lds r24, 0x03D9
106bc: 80 93 de 08 sts 0x08DE, r24
106c0: 80 91 d8 03 lds r24, 0x03D8
106c4: 80 93 df 08 sts 0x08DF, r24
106c8: 80 91 d7 03 lds r24, 0x03D7
106cc: 80 93 e0 08 sts 0x08E0, r24
106d0: 80 91 c9 03 lds r24, 0x03C9
106d4: 80 93 e1 08 sts 0x08E1, r24
106d8: 80 91 c9 03 lds r24, 0x03C9
106dc: 83 7f andi r24, 0xF3 ; 243
106de: 80 93 c9 03 sts 0x03C9, r24
106e2: 80 91 52 01 lds r24, 0x0152
106e6: 80 93 e2 08 sts 0x08E2, r24
106ea: 80 91 1a 01 lds r24, 0x011A
106ee: 90 91 1b 01 lds r25, 0x011B
106f2: 80 93 e3 08 sts 0x08E3, r24
106f6: 80 91 c8 03 lds r24, 0x03C8
106fa: 80 93 e4 08 sts 0x08E4, r24
106fe: 42 99 sbic 0x08, 2 ; 8
10700: 4a c2 rjmp .+1172 ; 0x10b96 <UpdateSPI_Buffer+0x64a>
10702: 80 91 c8 03 lds r24, 0x03C8
10706: 87 7f andi r24, 0xF7 ; 247
10708: 80 93 c8 03 sts 0x03C8, r24
1070c: 44 c2 rjmp .+1160 ; 0x10b96 <UpdateSPI_Buffer+0x64a>
1070e: 80 91 13 05 lds r24, 0x0513
10712: 90 91 14 05 lds r25, 0x0514
10716: 90 93 da 08 sts 0x08DA, r25
1071a: 80 93 d9 08 sts 0x08D9, r24
1071e: 80 91 b0 04 lds r24, 0x04B0
10722: 80 93 db 08 sts 0x08DB, r24
10726: 80 91 19 05 lds r24, 0x0519
1072a: 80 93 dc 08 sts 0x08DC, r24
1072e: 80 91 6c 05 lds r24, 0x056C
10732: 0e 94 fa 30 call 0x61f4 ; 0x61f4 <GetChannelValue>
10736: 80 93 dd 08 sts 0x08DD, r24
1073a: 80 91 20 01 lds r24, 0x0120
1073e: 80 93 de 08 sts 0x08DE, r24
10742: 40 91 b0 04 lds r20, 0x04B0
10746: 5f e0 ldi r21, 0x0F ; 15
10748: 45 9f mul r20, r21
1074a: f0 01 movw r30, r0
1074c: 11 24 eor r1, r1
1074e: ec 58 subi r30, 0x8C ; 140
10750: f6 4f sbci r31, 0xF6 ; 246
10752: 86 85 ldd r24, Z+14 ; 0x0e
10754: 80 93 df 08 sts 0x08DF, r24
10758: 80 81 ld r24, Z
1075a: 80 93 e0 08 sts 0x08E0, r24
1075e: 86 81 ldd r24, Z+6 ; 0x06
10760: 80 93 e1 08 sts 0x08E1, r24
10764: 83 81 ldd r24, Z+3 ; 0x03
10766: 80 93 e2 08 sts 0x08E2, r24
1076a: 87 81 ldd r24, Z+7 ; 0x07
1076c: 80 93 e3 08 sts 0x08E3, r24
10770: 85 81 ldd r24, Z+5 ; 0x05
10772: 80 93 e4 08 sts 0x08E4, r24
10776: 4f 5f subi r20, 0xFF ; 255
10778: 40 93 b0 04 sts 0x04B0, r20
1077c: 74 e0 ldi r23, 0x04 ; 4
1077e: 47 9f mul r20, r23
10780: f0 01 movw r30, r0
10782: 11 24 eor r1, r1
10784: ec 55 subi r30, 0x5C ; 92
10786: fa 4f sbci r31, 0xFA ; 250
10788: 85 85 ldd r24, Z+13 ; 0x0d
1078a: 18 16 cp r1, r24
1078c: 0c f4 brge .+2 ; 0x10790 <UpdateSPI_Buffer+0x244>
1078e: 03 c2 rjmp .+1030 ; 0x10b96 <UpdateSPI_Buffer+0x64a>
10790: 2d e0 ldi r18, 0x0D ; 13
10792: 30 e0 ldi r19, 0x00 ; 0
10794: 84 2f mov r24, r20
10796: 90 e0 ldi r25, 0x00 ; 0
10798: fc 01 movw r30, r24
1079a: ee 0f add r30, r30
1079c: ff 1f adc r31, r31
1079e: ee 0f add r30, r30
107a0: ff 1f adc r31, r31
107a2: ec 55 subi r30, 0x5C ; 92
107a4: fa 4f sbci r31, 0xFA ; 250
107a6: 55 85 ldd r21, Z+13 ; 0x0d
107a8: 15 16 cp r1, r21
107aa: 1c f4 brge .+6 ; 0x107b2 <UpdateSPI_Buffer+0x266>
107ac: 40 93 b0 04 sts 0x04B0, r20
107b0: f2 c1 rjmp .+996 ; 0x10b96 <UpdateSPI_Buffer+0x64a>
107b2: 44 23 and r20, r20
107b4: 31 f0 breq .+12 ; 0x107c2 <UpdateSPI_Buffer+0x276>
107b6: 01 96 adiw r24, 0x01 ; 1
107b8: b9 01 movw r22, r18
107ba: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
107be: 48 2f mov r20, r24
107c0: e9 cf rjmp .-46 ; 0x10794 <UpdateSPI_Buffer+0x248>
107c2: 10 92 b0 04 sts 0x04B0, r1
107c6: e7 c1 rjmp .+974 ; 0x10b96 <UpdateSPI_Buffer+0x64a>
107c8: 80 91 af 04 lds r24, 0x04AF
107cc: 81 11 cpse r24, r1
107ce: 35 c0 rjmp .+106 ; 0x1083a <UpdateSPI_Buffer+0x2ee>
107d0: 8d e0 ldi r24, 0x0D ; 13
107d2: 80 93 c6 08 sts 0x08C6, r24
107d6: 81 e0 ldi r24, 0x01 ; 1
107d8: 80 93 af 04 sts 0x04AF, r24
107dc: 80 91 53 01 lds r24, 0x0153
107e0: 80 93 d9 08 sts 0x08D9, r24
107e4: 80 91 6d 05 lds r24, 0x056D
107e8: 80 93 da 08 sts 0x08DA, r24
107ec: 80 91 6e 05 lds r24, 0x056E
107f0: 80 93 db 08 sts 0x08DB, r24
107f4: 80 91 6f 05 lds r24, 0x056F
107f8: 80 93 dc 08 sts 0x08DC, r24
107fc: 80 91 70 05 lds r24, 0x0570
10800: 80 93 dd 08 sts 0x08DD, r24
10804: 80 91 74 05 lds r24, 0x0574
10808: 80 93 de 08 sts 0x08DE, r24
1080c: 80 91 75 05 lds r24, 0x0575
10810: 80 93 df 08 sts 0x08DF, r24
10814: 80 91 76 05 lds r24, 0x0576
10818: 80 93 e0 08 sts 0x08E0, r24
1081c: 80 91 79 05 lds r24, 0x0579
10820: 80 93 e1 08 sts 0x08E1, r24
10824: 80 91 77 05 lds r24, 0x0577
10828: 80 93 e2 08 sts 0x08E2, r24
1082c: 80 91 78 05 lds r24, 0x0578
10830: 80 93 e3 08 sts 0x08E3, r24
10834: 80 91 7a 05 lds r24, 0x057A
10838: ac c1 rjmp .+856 ; 0x10b92 <UpdateSPI_Buffer+0x646>
1083a: 82 e1 ldi r24, 0x12 ; 18
1083c: 80 93 c6 08 sts 0x08C6, r24
10840: 10 92 af 04 sts 0x04AF, r1
10844: 80 91 55 04 lds r24, 0x0455
10848: 90 91 56 04 lds r25, 0x0456
1084c: 90 93 da 08 sts 0x08DA, r25
10850: 80 93 d9 08 sts 0x08D9, r24
10854: 80 91 53 04 lds r24, 0x0453
10858: 90 91 54 04 lds r25, 0x0454
1085c: 90 93 dc 08 sts 0x08DC, r25
10860: 80 93 db 08 sts 0x08DB, r24
10864: 30 93 de 08 sts 0x08DE, r19
10868: 20 93 dd 08 sts 0x08DD, r18
1086c: 80 91 5f 05 lds r24, 0x055F
10870: 80 93 df 08 sts 0x08DF, r24
10874: 80 91 e6 03 lds r24, 0x03E6
10878: 90 91 e7 03 lds r25, 0x03E7
1087c: 97 fd sbrc r25, 7
1087e: 03 96 adiw r24, 0x03 ; 3
10880: 95 95 asr r25
10882: 87 95 ror r24
10884: 95 95 asr r25
10886: 87 95 ror r24
10888: 80 93 e0 08 sts 0x08E0, r24
1088c: 10 92 e1 08 sts 0x08E1, r1
10890: 10 92 e2 08 sts 0x08E2, r1
10894: 10 92 e3 08 sts 0x08E3, r1
10898: 10 92 e4 08 sts 0x08E4, r1
1089c: 7c c1 rjmp .+760 ; 0x10b96 <UpdateSPI_Buffer+0x64a>
1089e: 80 91 6b 05 lds r24, 0x056B
108a2: 80 93 d9 08 sts 0x08D9, r24
108a6: 80 91 42 05 lds r24, 0x0542
108aa: 86 30 cpi r24, 0x06 ; 6
108ac: 81 f0 breq .+32 ; 0x108ce <UpdateSPI_Buffer+0x382>
108ae: 80 91 5a 04 lds r24, 0x045A
108b2: 82 34 cpi r24, 0x42 ; 66
108b4: 51 f0 breq .+20 ; 0x108ca <UpdateSPI_Buffer+0x37e>
108b6: 0e 94 05 58 call 0xb00a ; 0xb00a <HoTT_Waring>
108ba: e8 2f mov r30, r24
108bc: f0 e0 ldi r31, 0x00 ; 0
108be: e3 5d subi r30, 0xD3 ; 211
108c0: ff 4e sbci r31, 0xEF ; 239
108c2: e4 91 lpm r30, Z
108c4: e0 93 5a 04 sts 0x045A, r30
108c8: 02 c0 rjmp .+4 ; 0x108ce <UpdateSPI_Buffer+0x382>
108ca: 0e 94 05 58 call 0xb00a ; 0xb00a <HoTT_Waring>
108ce: 80 91 7f 04 lds r24, 0x047F
108d2: 80 93 da 08 sts 0x08DA, r24
108d6: 80 91 8d 05 lds r24, 0x058D
108da: 80 93 db 08 sts 0x08DB, r24
108de: 80 91 82 05 lds r24, 0x0582
108e2: 80 93 dc 08 sts 0x08DC, r24
108e6: 80 91 be 03 lds r24, 0x03BE
108ea: 80 93 dd 08 sts 0x08DD, r24
108ee: 80 91 88 04 lds r24, 0x0488
108f2: 80 93 de 08 sts 0x08DE, r24
108f6: 80 91 86 04 lds r24, 0x0486
108fa: 80 93 df 08 sts 0x08DF, r24
108fe: 80 91 85 04 lds r24, 0x0485
10902: 80 93 e0 08 sts 0x08E0, r24
10906: 10 92 88 04 sts 0x0488, r1
1090a: 10 92 86 04 sts 0x0486, r1
1090e: 10 92 85 04 sts 0x0485, r1
10912: 80 91 37 01 lds r24, 0x0137
10916: 88 23 and r24, r24
10918: 29 f0 breq .+10 ; 0x10924 <UpdateSPI_Buffer+0x3d8>
1091a: 80 91 1a 04 lds r24, 0x041A
1091e: 90 91 1b 04 lds r25, 0x041B
10922: 04 c0 rjmp .+8 ; 0x1092c <UpdateSPI_Buffer+0x3e0>
10924: 80 91 fe 05 lds r24, 0x05FE
10928: 90 91 ff 05 lds r25, 0x05FF
1092c: 90 93 e2 08 sts 0x08E2, r25
10930: 80 93 e1 08 sts 0x08E1, r24
10934: 80 91 91 05 lds r24, 0x0591
10938: 80 93 e3 08 sts 0x08E3, r24
1093c: 80 91 92 05 lds r24, 0x0592
10940: 28 c1 rjmp .+592 ; 0x10b92 <UpdateSPI_Buffer+0x646>
10942: f8 94 cli
10944: e0 91 1e 05 lds r30, 0x051E
10948: f0 e0 ldi r31, 0x00 ; 0
1094a: ee 0f add r30, r30
1094c: ff 1f adc r31, r31
1094e: e2 5f subi r30, 0xF2 ; 242
10950: f7 4f sbci r31, 0xF7 ; 247
10952: 80 81 ld r24, Z
10954: 91 81 ldd r25, Z+1 ; 0x01
10956: 81 38 cpi r24, 0x81 ; 129
10958: 2f ef ldi r18, 0xFF ; 255
1095a: 92 07 cpc r25, r18
1095c: 14 f4 brge .+4 ; 0x10962 <UpdateSPI_Buffer+0x416>
1095e: 81 e8 ldi r24, 0x81 ; 129
10960: 9f ef ldi r25, 0xFF ; 255
10962: 80 38 cpi r24, 0x80 ; 128
10964: 91 05 cpc r25, r1
10966: 14 f0 brlt .+4 ; 0x1096c <UpdateSPI_Buffer+0x420>
10968: 8f e7 ldi r24, 0x7F ; 127
1096a: 90 e0 ldi r25, 0x00 ; 0
1096c: 80 93 d9 08 sts 0x08D9, r24
10970: e0 91 1f 05 lds r30, 0x051F
10974: f0 e0 ldi r31, 0x00 ; 0
10976: ee 0f add r30, r30
10978: ff 1f adc r31, r31
1097a: e2 5f subi r30, 0xF2 ; 242
1097c: f7 4f sbci r31, 0xF7 ; 247
1097e: 80 81 ld r24, Z
10980: 91 81 ldd r25, Z+1 ; 0x01
10982: 81 38 cpi r24, 0x81 ; 129
10984: 4f ef ldi r20, 0xFF ; 255
10986: 94 07 cpc r25, r20
10988: 14 f4 brge .+4 ; 0x1098e <UpdateSPI_Buffer+0x442>
1098a: 81 e8 ldi r24, 0x81 ; 129
1098c: 9f ef ldi r25, 0xFF ; 255
1098e: 80 38 cpi r24, 0x80 ; 128
10990: 91 05 cpc r25, r1
10992: 14 f0 brlt .+4 ; 0x10998 <UpdateSPI_Buffer+0x44c>
10994: 8f e7 ldi r24, 0x7F ; 127
10996: 90 e0 ldi r25, 0x00 ; 0
10998: 80 93 da 08 sts 0x08DA, r24
1099c: e0 91 1d 05 lds r30, 0x051D
109a0: f0 e0 ldi r31, 0x00 ; 0
109a2: ee 0f add r30, r30
109a4: ff 1f adc r31, r31
109a6: e2 5f subi r30, 0xF2 ; 242
109a8: f7 4f sbci r31, 0xF7 ; 247
109aa: 80 81 ld r24, Z
109ac: 91 81 ldd r25, Z+1 ; 0x01
109ae: 81 38 cpi r24, 0x81 ; 129
109b0: 5f ef ldi r21, 0xFF ; 255
109b2: 95 07 cpc r25, r21
109b4: 14 f4 brge .+4 ; 0x109ba <UpdateSPI_Buffer+0x46e>
109b6: 81 e8 ldi r24, 0x81 ; 129
109b8: 9f ef ldi r25, 0xFF ; 255
109ba: 80 38 cpi r24, 0x80 ; 128
109bc: 91 05 cpc r25, r1
109be: 14 f0 brlt .+4 ; 0x109c4 <UpdateSPI_Buffer+0x478>
109c0: 8f e7 ldi r24, 0x7F ; 127
109c2: 90 e0 ldi r25, 0x00 ; 0
109c4: 80 93 db 08 sts 0x08DB, r24
109c8: e0 91 1c 05 lds r30, 0x051C
109cc: f0 e0 ldi r31, 0x00 ; 0
109ce: ee 0f add r30, r30
109d0: ff 1f adc r31, r31
109d2: e2 5f subi r30, 0xF2 ; 242
109d4: f7 4f sbci r31, 0xF7 ; 247
109d6: 80 81 ld r24, Z
109d8: 91 81 ldd r25, Z+1 ; 0x01
109da: 81 38 cpi r24, 0x81 ; 129
109dc: 7f ef ldi r23, 0xFF ; 255
109de: 97 07 cpc r25, r23
109e0: 14 f4 brge .+4 ; 0x109e6 <UpdateSPI_Buffer+0x49a>
109e2: 81 e8 ldi r24, 0x81 ; 129
109e4: 9f ef ldi r25, 0xFF ; 255
109e6: 78 94 sei
109e8: 80 38 cpi r24, 0x80 ; 128
109ea: 91 05 cpc r25, r1
109ec: 14 f0 brlt .+4 ; 0x109f2 <UpdateSPI_Buffer+0x4a6>
109ee: 8f e7 ldi r24, 0x7F ; 127
109f0: 90 e0 ldi r25, 0x00 ; 0
109f2: 80 93 dc 08 sts 0x08DC, r24
109f6: 80 91 03 04 lds r24, 0x0403
109fa: 80 93 dd 08 sts 0x08DD, r24
109fe: 80 91 04 04 lds r24, 0x0404
10a02: 80 93 de 08 sts 0x08DE, r24
10a06: 80 91 05 04 lds r24, 0x0405
10a0a: 80 93 df 08 sts 0x08DF, r24
10a0e: 80 91 06 04 lds r24, 0x0406
10a12: 80 93 e0 08 sts 0x08E0, r24
10a16: 80 91 07 04 lds r24, 0x0407
10a1a: 80 93 e1 08 sts 0x08E1, r24
10a1e: 80 91 08 04 lds r24, 0x0408
10a22: 80 93 e2 08 sts 0x08E2, r24
10a26: 80 91 09 04 lds r24, 0x0409
10a2a: 80 93 e3 08 sts 0x08E3, r24
10a2e: 80 91 0a 04 lds r24, 0x040A
10a32: af c0 rjmp .+350 ; 0x10b92 <UpdateSPI_Buffer+0x646>
10a34: 80 91 5a 0a lds r24, 0x0A5A
10a38: 85 30 cpi r24, 0x05 ; 5
10a3a: 18 f0 brcs .+6 ; 0x10a42 <UpdateSPI_Buffer+0x4f6>
10a3c: 10 92 5a 0a sts 0x0A5A, r1
10a40: 85 e0 ldi r24, 0x05 ; 5
10a42: 80 93 d9 08 sts 0x08D9, r24
10a46: 80 91 7b 05 lds r24, 0x057B
10a4a: 80 93 da 08 sts 0x08DA, r24
10a4e: 60 91 fc 03 lds r22, 0x03FC
10a52: 70 91 fd 03 lds r23, 0x03FD
10a56: 80 91 fe 03 lds r24, 0x03FE
10a5a: 90 91 ff 03 lds r25, 0x03FF
10a5e: 45 e0 ldi r20, 0x05 ; 5
10a60: c4 2e mov r12, r20
10a62: d1 2c mov r13, r1
10a64: e1 2c mov r14, r1
10a66: f1 2c mov r15, r1
10a68: a7 01 movw r20, r14
10a6a: 96 01 movw r18, r12
10a6c: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
10a70: 30 93 dc 08 sts 0x08DC, r19
10a74: 20 93 db 08 sts 0x08DB, r18
10a78: 60 91 f8 03 lds r22, 0x03F8
10a7c: 70 91 f9 03 lds r23, 0x03F9
10a80: 80 91 fa 03 lds r24, 0x03FA
10a84: 90 91 fb 03 lds r25, 0x03FB
10a88: a7 01 movw r20, r14
10a8a: 96 01 movw r18, r12
10a8c: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
10a90: 30 93 de 08 sts 0x08DE, r19
10a94: 20 93 dd 08 sts 0x08DD, r18
10a98: 80 91 71 05 lds r24, 0x0571
10a9c: 80 93 df 08 sts 0x08DF, r24
10aa0: 80 91 72 05 lds r24, 0x0572
10aa4: 80 93 e0 08 sts 0x08E0, r24
10aa8: 80 91 73 05 lds r24, 0x0573
10aac: 80 93 e1 08 sts 0x08E1, r24
10ab0: 80 91 02 04 lds r24, 0x0402
10ab4: 80 93 e2 08 sts 0x08E2, r24
10ab8: 80 91 9d 04 lds r24, 0x049D
10abc: 80 93 e3 08 sts 0x08E3, r24
10ac0: 80 91 33 0c lds r24, 0x0C33
10ac4: 90 91 34 0c lds r25, 0x0C34
10ac8: 97 fd sbrc r25, 7
10aca: 03 96 adiw r24, 0x03 ; 3
10acc: 95 95 asr r25
10ace: 87 95 ror r24
10ad0: 95 95 asr r25
10ad2: 87 95 ror r24
10ad4: 5e c0 rjmp .+188 ; 0x10b92 <UpdateSPI_Buffer+0x646>
10ad6: 82 e0 ldi r24, 0x02 ; 2
10ad8: 80 93 d9 08 sts 0x08D9, r24
10adc: 88 e0 ldi r24, 0x08 ; 8
10ade: 80 93 da 08 sts 0x08DA, r24
10ae2: 10 92 db 08 sts 0x08DB, r1
10ae6: 87 e4 ldi r24, 0x47 ; 71
10ae8: 80 93 dc 08 sts 0x08DC, r24
10aec: 80 91 54 01 lds r24, 0x0154
10af0: 80 93 dd 08 sts 0x08DD, r24
10af4: 90 91 3f 0a lds r25, 0x0A3F
10af8: 90 93 de 08 sts 0x08DE, r25
10afc: 80 91 40 0a lds r24, 0x0A40
10b00: 80 93 df 08 sts 0x08DF, r24
10b04: 9f 77 andi r25, 0x7F ; 127
10b06: 90 93 3f 0a sts 0x0A3F, r25
10b0a: 80 71 andi r24, 0x10 ; 16
10b0c: 80 93 40 0a sts 0x0A40, r24
10b10: 80 91 8e 05 lds r24, 0x058E
10b14: 80 93 e0 08 sts 0x08E0, r24
10b18: 80 91 39 06 lds r24, 0x0639
10b1c: 80 93 e1 08 sts 0x08E1, r24
10b20: 80 91 1d 06 lds r24, 0x061D
10b24: 80 93 e2 08 sts 0x08E2, r24
10b28: 80 91 7e 05 lds r24, 0x057E
10b2c: 80 93 e3 08 sts 0x08E3, r24
10b30: 80 91 96 05 lds r24, 0x0596
10b34: 2e c0 rjmp .+92 ; 0x10b92 <UpdateSPI_Buffer+0x646>
10b36: 80 91 17 05 lds r24, 0x0517
10b3a: 90 91 18 05 lds r25, 0x0518
10b3e: 90 93 da 08 sts 0x08DA, r25
10b42: 80 93 d9 08 sts 0x08D9, r24
10b46: 80 91 2f 01 lds r24, 0x012F
10b4a: 80 93 db 08 sts 0x08DB, r24
10b4e: 80 91 2e 01 lds r24, 0x012E
10b52: 80 93 dc 08 sts 0x08DC, r24
10b56: 80 91 5d 0c lds r24, 0x0C5D
10b5a: 80 93 dd 08 sts 0x08DD, r24
10b5e: 80 91 c7 03 lds r24, 0x03C7
10b62: 80 93 de 08 sts 0x08DE, r24
10b66: 80 91 7c 05 lds r24, 0x057C
10b6a: 80 93 df 08 sts 0x08DF, r24
10b6e: 80 91 01 06 lds r24, 0x0601
10b72: 80 93 e0 08 sts 0x08E0, r24
10b76: 80 91 5e 04 lds r24, 0x045E
10b7a: 90 91 5f 04 lds r25, 0x045F
10b7e: 90 93 e2 08 sts 0x08E2, r25
10b82: 80 93 e1 08 sts 0x08E1, r24
10b86: 80 91 52 05 lds r24, 0x0552
10b8a: 80 93 e3 08 sts 0x08E3, r24
10b8e: 80 91 42 0a lds r24, 0x0A42
10b92: 80 93 e4 08 sts 0x08E4, r24
10b96: 80 91 e8 08 lds r24, 0x08E8
10b9a: 88 23 and r24, r24
10b9c: 09 f4 brne .+2 ; 0x10ba0 <UpdateSPI_Buffer+0x654>
10b9e: 60 c1 rjmp .+704 ; 0x10e60 <UpdateSPI_Buffer+0x914>
10ba0: 60 91 e9 08 lds r22, 0x08E9
10ba4: 80 91 95 02 lds r24, 0x0295
10ba8: 68 17 cp r22, r24
10baa: 19 f0 breq .+6 ; 0x10bb2 <UpdateSPI_Buffer+0x666>
10bac: 8a ef ldi r24, 0xFA ; 250
10bae: 80 93 a4 02 sts 0x02A4, r24
10bb2: 60 93 95 02 sts 0x0295, r22
10bb6: 81 e0 ldi r24, 0x01 ; 1
10bb8: 80 93 4d 01 sts 0x014D, r24
10bbc: 20 91 ea 08 lds r18, 0x08EA
10bc0: 30 91 eb 08 lds r19, 0x08EB
10bc4: c9 01 movw r24, r18
10bc6: 81 50 subi r24, 0x01 ; 1
10bc8: 9e 4f sbci r25, 0xFE ; 254
10bca: 8f 3f cpi r24, 0xFF ; 255
10bcc: 93 40 sbci r25, 0x03 ; 3
10bce: b0 f4 brcc .+44 ; 0x10bfc <UpdateSPI_Buffer+0x6b0>
10bd0: 80 91 ec 08 lds r24, 0x08EC
10bd4: 90 91 ed 08 lds r25, 0x08ED
10bd8: ac 01 movw r20, r24
10bda: 41 50 subi r20, 0x01 ; 1
10bdc: 5e 4f sbci r21, 0xFE ; 254
10bde: 4f 3f cpi r20, 0xFF ; 255
10be0: 53 40 sbci r21, 0x03 ; 3
10be2: 60 f4 brcc .+24 ; 0x10bfc <UpdateSPI_Buffer+0x6b0>
10be4: 40 91 28 05 lds r20, 0x0528
10be8: 45 ff sbrs r20, 5
10bea: 08 c0 rjmp .+16 ; 0x10bfc <UpdateSPI_Buffer+0x6b0>
10bec: 30 93 69 04 sts 0x0469, r19
10bf0: 20 93 68 04 sts 0x0468, r18
10bf4: 90 93 67 04 sts 0x0467, r25
10bf8: 80 93 66 04 sts 0x0466, r24
10bfc: 80 91 f0 08 lds r24, 0x08F0
10c00: 90 91 f1 08 lds r25, 0x08F1
10c04: 89 36 cpi r24, 0x69 ; 105
10c06: 21 e0 ldi r18, 0x01 ; 1
10c08: 92 07 cpc r25, r18
10c0a: 24 f4 brge .+8 ; 0x10c14 <UpdateSPI_Buffer+0x6c8>
10c0c: 90 93 4f 01 sts 0x014F, r25
10c10: 80 93 4e 01 sts 0x014E, r24
10c14: 80 91 fa 08 lds r24, 0x08FA
10c18: 90 91 fb 08 lds r25, 0x08FB
10c1c: 20 91 cb 04 lds r18, 0x04CB
10c20: 30 91 cc 04 lds r19, 0x04CC
10c24: 28 17 cp r18, r24
10c26: 39 07 cpc r19, r25
10c28: 40 f4 brcc .+16 ; 0x10c3a <UpdateSPI_Buffer+0x6ee>
10c2a: 20 91 64 04 lds r18, 0x0464
10c2e: 21 11 cpse r18, r1
10c30: 04 c0 rjmp .+8 ; 0x10c3a <UpdateSPI_Buffer+0x6ee>
10c32: 90 93 cc 04 sts 0x04CC, r25
10c36: 80 93 cb 04 sts 0x04CB, r24
10c3a: 69 36 cpi r22, 0x69 ; 105
10c3c: 09 f4 brne .+2 ; 0x10c40 <UpdateSPI_Buffer+0x6f4>
10c3e: 84 c0 rjmp .+264 ; 0x10d48 <UpdateSPI_Buffer+0x7fc>
10c40: d8 f5 brcc .+118 ; 0x10cb8 <UpdateSPI_Buffer+0x76c>
10c42: 67 36 cpi r22, 0x67 ; 103
10c44: 09 f4 brne .+2 ; 0x10c48 <UpdateSPI_Buffer+0x6fc>
10c46: 3f c0 rjmp .+126 ; 0x10cc6 <UpdateSPI_Buffer+0x77a>
10c48: 68 36 cpi r22, 0x68 ; 104
10c4a: 09 f0 breq .+2 ; 0x10c4e <UpdateSPI_Buffer+0x702>
10c4c: 11 c1 rjmp .+546 ; 0x10e70 <UpdateSPI_Buffer+0x924>
10c4e: 80 91 fc 08 lds r24, 0x08FC
10c52: 80 93 be 08 sts 0x08BE, r24
10c56: 80 91 fd 08 lds r24, 0x08FD
10c5a: 80 93 bf 08 sts 0x08BF, r24
10c5e: 80 91 fe 08 lds r24, 0x08FE
10c62: 80 93 c0 08 sts 0x08C0, r24
10c66: 80 91 ff 08 lds r24, 0x08FF
10c6a: 80 93 c1 08 sts 0x08C1, r24
10c6e: 80 91 00 09 lds r24, 0x0900
10c72: 80 93 c2 08 sts 0x08C2, r24
10c76: 80 91 01 09 lds r24, 0x0901
10c7a: 90 91 23 0c lds r25, 0x0C23
10c7e: 89 2b or r24, r25
10c80: 80 93 23 0c sts 0x0C23, r24
10c84: 80 91 02 09 lds r24, 0x0902
10c88: 8c 70 andi r24, 0x0C ; 12
10c8a: 90 91 24 0c lds r25, 0x0C24
10c8e: 93 70 andi r25, 0x03 ; 3
10c90: 89 2b or r24, r25
10c92: 80 93 24 0c sts 0x0C24, r24
10c96: 80 91 03 09 lds r24, 0x0903
10c9a: 80 93 b9 04 sts 0x04B9, r24
10c9e: 80 91 04 09 lds r24, 0x0904
10ca2: 80 93 96 02 sts 0x0296, r24
10ca6: 80 91 05 09 lds r24, 0x0905
10caa: 80 93 2c 09 sts 0x092C, r24
10cae: 80 91 06 09 lds r24, 0x0906
10cb2: 80 93 b5 04 sts 0x04B5, r24
10cb6: dc c0 rjmp .+440 ; 0x10e70 <UpdateSPI_Buffer+0x924>
10cb8: 6a 36 cpi r22, 0x6A ; 106
10cba: 09 f4 brne .+2 ; 0x10cbe <UpdateSPI_Buffer+0x772>
10cbc: cb c0 rjmp .+406 ; 0x10e54 <UpdateSPI_Buffer+0x908>
10cbe: 6b 36 cpi r22, 0x6B ; 107
10cc0: 09 f4 brne .+2 ; 0x10cc4 <UpdateSPI_Buffer+0x778>
10cc2: 8e c0 rjmp .+284 ; 0x10de0 <UpdateSPI_Buffer+0x894>
10cc4: d5 c0 rjmp .+426 ; 0x10e70 <UpdateSPI_Buffer+0x924>
10cc6: 80 91 fc 08 lds r24, 0x08FC
10cca: 80 93 29 09 sts 0x0929, r24
10cce: 80 91 fd 08 lds r24, 0x08FD
10cd2: 80 93 2b 09 sts 0x092B, r24
10cd6: 80 91 fe 08 lds r24, 0x08FE
10cda: 80 93 2a 09 sts 0x092A, r24
10cde: 80 91 ff 08 lds r24, 0x08FF
10ce2: 80 93 4c 01 sts 0x014C, r24
10ce6: 80 91 00 09 lds r24, 0x0900
10cea: 80 93 2d 09 sts 0x092D, r24
10cee: 80 91 01 09 lds r24, 0x0901
10cf2: 80 93 a5 02 sts 0x02A5, r24
10cf6: 80 91 02 09 lds r24, 0x0902
10cfa: 80 93 bc 04 sts 0x04BC, r24
10cfe: 80 91 03 09 lds r24, 0x0903
10d02: 80 93 65 04 sts 0x0465, r24
10d06: 80 91 d6 03 lds r24, 0x03D6
10d0a: 88 23 and r24, r24
10d0c: 51 f0 breq .+20 ; 0x10d22 <UpdateSPI_Buffer+0x7d6>
10d0e: 80 91 04 09 lds r24, 0x0904
10d12: 90 91 05 09 lds r25, 0x0905
10d16: 97 fd sbrc r25, 7
10d18: 04 c0 rjmp .+8 ; 0x10d22 <UpdateSPI_Buffer+0x7d6>
10d1a: 90 93 1b 04 sts 0x041B, r25
10d1e: 80 93 1a 04 sts 0x041A, r24
10d22: 80 91 b3 04 lds r24, 0x04B3
10d26: 90 91 b4 04 lds r25, 0x04B4
10d2a: 20 91 06 09 lds r18, 0x0906
10d2e: 30 91 07 09 lds r19, 0x0907
10d32: 82 0f add r24, r18
10d34: 93 1f adc r25, r19
10d36: 97 fd sbrc r25, 7
10d38: 01 96 adiw r24, 0x01 ; 1
10d3a: 95 95 asr r25
10d3c: 87 95 ror r24
10d3e: 90 93 b4 04 sts 0x04B4, r25
10d42: 80 93 b3 04 sts 0x04B3, r24
10d46: 94 c0 rjmp .+296 ; 0x10e70 <UpdateSPI_Buffer+0x924>
10d48: 80 91 fc 08 lds r24, 0x08FC
10d4c: 80 93 b4 08 sts 0x08B4, r24
10d50: 80 91 fd 08 lds r24, 0x08FD
10d54: 80 93 b5 08 sts 0x08B5, r24
10d58: 80 91 fe 08 lds r24, 0x08FE
10d5c: 80 93 b6 08 sts 0x08B6, r24
10d60: 80 91 ff 08 lds r24, 0x08FF
10d64: 80 93 b7 08 sts 0x08B7, r24
10d68: 80 91 00 09 lds r24, 0x0900
10d6c: 90 91 01 09 lds r25, 0x0901
10d70: 90 93 b9 08 sts 0x08B9, r25
10d74: 80 93 b8 08 sts 0x08B8, r24
10d78: 80 91 02 09 lds r24, 0x0902
10d7c: 90 91 03 09 lds r25, 0x0903
10d80: 90 93 bb 08 sts 0x08BB, r25
10d84: 80 93 ba 08 sts 0x08BA, r24
10d88: 20 91 48 08 lds r18, 0x0848
10d8c: 30 91 49 08 lds r19, 0x0849
10d90: 80 91 04 09 lds r24, 0x0904
10d94: 21 38 cpi r18, 0x81 ; 129
10d96: 41 f4 brne .+16 ; 0x10da8 <UpdateSPI_Buffer+0x85c>
10d98: 90 91 bb 04 lds r25, 0x04BB
10d9c: 91 11 cpse r25, r1
10d9e: 04 c0 rjmp .+8 ; 0x10da8 <UpdateSPI_Buffer+0x85c>
10da0: 9f e7 ldi r25, 0x7F ; 127
10da2: 98 0f add r25, r24
10da4: 90 93 bb 04 sts 0x04BB, r25
10da8: 99 27 eor r25, r25
10daa: 87 fd sbrc r24, 7
10dac: 90 95 com r25
10dae: 90 93 49 08 sts 0x0849, r25
10db2: 80 93 48 08 sts 0x0848, r24
10db6: 80 91 05 09 lds r24, 0x0905
10dba: 80 93 f1 03 sts 0x03F1, r24
10dbe: a0 91 06 09 lds r26, 0x0906
10dc2: b0 91 07 09 lds r27, 0x0907
10dc6: 2a e0 ldi r18, 0x0A ; 10
10dc8: 30 e0 ldi r19, 0x00 ; 0
10dca: 0e 94 3f 9b call 0x1367e ; 0x1367e <__usmulhisi3>
10dce: 60 93 f2 03 sts 0x03F2, r22
10dd2: 70 93 f3 03 sts 0x03F3, r23
10dd6: 80 93 f4 03 sts 0x03F4, r24
10dda: 90 93 f5 03 sts 0x03F5, r25
10dde: 48 c0 rjmp .+144 ; 0x10e70 <UpdateSPI_Buffer+0x924>
10de0: 80 91 fc 08 lds r24, 0x08FC
10de4: 80 93 b8 04 sts 0x04B8, r24
10de8: 80 91 fd 08 lds r24, 0x08FD
10dec: 80 93 b7 04 sts 0x04B7, r24
10df0: 80 91 fe 08 lds r24, 0x08FE
10df4: 80 93 b6 04 sts 0x04B6, r24
10df8: 80 91 ff 08 lds r24, 0x08FF
10dfc: 88 23 and r24, r24
10dfe: 49 f0 breq .+18 ; 0x10e12 <UpdateSPI_Buffer+0x8c6>
10e00: 90 91 57 01 lds r25, 0x0157
10e04: 99 23 and r25, r25
10e06: 19 f0 breq .+6 ; 0x10e0e <UpdateSPI_Buffer+0x8c2>
10e08: 91 51 subi r25, 0x11 ; 17
10e0a: 93 30 cpi r25, 0x03 ; 3
10e0c: 10 f4 brcc .+4 ; 0x10e12 <UpdateSPI_Buffer+0x8c6>
10e0e: 80 93 57 01 sts 0x0157, r24
10e12: 80 91 02 09 lds r24, 0x0902
10e16: 90 91 03 09 lds r25, 0x0903
10e1a: 90 93 84 04 sts 0x0484, r25
10e1e: 80 93 83 04 sts 0x0483, r24
10e22: 80 91 00 09 lds r24, 0x0900
10e26: 80 93 8b 04 sts 0x048B, r24
10e2a: 80 91 01 09 lds r24, 0x0901
10e2e: 80 93 8a 04 sts 0x048A, r24
10e32: 80 91 04 09 lds r24, 0x0904
10e36: 80 93 89 04 sts 0x0489, r24
10e3a: 80 91 05 09 lds r24, 0x0905
10e3e: 80 93 87 04 sts 0x0487, r24
10e42: 80 91 06 09 lds r24, 0x0906
10e46: 90 91 07 09 lds r25, 0x0907
10e4a: 90 93 43 06 sts 0x0643, r25
10e4e: 80 93 42 06 sts 0x0642, r24
10e52: 0e c0 rjmp .+28 ; 0x10e70 <UpdateSPI_Buffer+0x924>
10e54: ff 90 pop r15
10e56: ef 90 pop r14
10e58: df 90 pop r13
10e5a: cf 90 pop r12
10e5c: 0c 94 6b 58 jmp 0xb0d6 ; 0xb0d6 <NC_Fills_HoTT_Telemety>
10e60: 10 92 69 04 sts 0x0469, r1
10e64: 10 92 68 04 sts 0x0468, r1
10e68: 10 92 67 04 sts 0x0467, r1
10e6c: 10 92 66 04 sts 0x0466, r1
10e70: ff 90 pop r15
10e72: ef 90 pop r14
10e74: df 90 pop r13
10e76: cf 90 pop r12
10e78: 08 95 ret
 
00010e7a <SPI_StartTransmitPacket>:
10e7a: 80 91 b3 08 lds r24, 0x08B3
10e7e: 88 23 and r24, r24
10e80: 21 f1 breq .+72 ; 0x10eca <SPI_StartTransmitPacket+0x50>
10e82: 45 98 cbi 0x08, 5 ; 8
10e84: 84 ec ldi r24, 0xC4 ; 196
10e86: 98 e0 ldi r25, 0x08 ; 8
10e88: 90 93 bd 08 sts 0x08BD, r25
10e8c: 80 93 bc 08 sts 0x08BC, r24
10e90: e0 91 ba 04 lds r30, 0x04BA
10e94: 81 e0 ldi r24, 0x01 ; 1
10e96: 8e 0f add r24, r30
10e98: 80 93 ba 04 sts 0x04BA, r24
10e9c: f0 e0 ldi r31, 0x00 ; 0
10e9e: e9 56 subi r30, 0x69 ; 105
10ea0: fd 4f sbci r31, 0xFD ; 253
10ea2: 90 81 ld r25, Z
10ea4: 90 93 c6 08 sts 0x08C6, r25
10ea8: 8d 30 cpi r24, 0x0D ; 13
10eaa: 10 f0 brcs .+4 ; 0x10eb0 <SPI_StartTransmitPacket+0x36>
10eac: 10 92 ba 04 sts 0x04BA, r1
10eb0: 10 92 b3 08 sts 0x08B3, r1
10eb4: 4b db rcall .-2410 ; 0x1054c <UpdateSPI_Buffer>
10eb6: 81 e0 ldi r24, 0x01 ; 1
10eb8: 80 93 c3 08 sts 0x08C3, r24
10ebc: 80 91 c4 08 lds r24, 0x08C4
10ec0: 80 93 e5 08 sts 0x08E5, r24
10ec4: 8e bd out 0x2e, r24 ; 46
10ec6: 81 e0 ldi r24, 0x01 ; 1
10ec8: 08 95 ret
10eca: 80 e0 ldi r24, 0x00 ; 0
10ecc: 08 95 ret
 
00010ece <__vector_18>:
10ece: 1f 92 push r1
10ed0: 0f 92 push r0
10ed2: 0f b6 in r0, 0x3f ; 63
10ed4: 0f 92 push r0
10ed6: 11 24 eor r1, r1
10ed8: 2f 93 push r18
10eda: 3f 93 push r19
10edc: 5f 93 push r21
10ede: 6f 93 push r22
10ee0: 7f 93 push r23
10ee2: 8f 93 push r24
10ee4: 9f 93 push r25
10ee6: af 93 push r26
10ee8: bf 93 push r27
10eea: 80 91 ca 04 lds r24, 0x04CA
10eee: 88 23 and r24, r24
10ef0: 29 f0 breq .+10 ; 0x10efc <__vector_18+0x2e>
10ef2: 80 91 ca 04 lds r24, 0x04CA
10ef6: 81 50 subi r24, 0x01 ; 1
10ef8: 80 93 ca 04 sts 0x04CA, r24
10efc: 80 91 ae 04 lds r24, 0x04AE
10f00: 88 23 and r24, r24
10f02: 19 f0 breq .+6 ; 0x10f0a <__vector_18+0x3c>
10f04: 81 50 subi r24, 0x01 ; 1
10f06: 80 93 ae 04 sts 0x04AE, r24
10f0a: 80 91 c1 04 lds r24, 0x04C1
10f0e: 81 11 cpse r24, r1
10f10: 51 c0 rjmp .+162 ; 0x10fb4 <__vector_18+0xe6>
10f12: 89 e0 ldi r24, 0x09 ; 9
10f14: 80 93 c1 04 sts 0x04C1, r24
10f18: 80 91 d0 04 lds r24, 0x04D0
10f1c: 90 91 d1 04 lds r25, 0x04D1
10f20: 01 96 adiw r24, 0x01 ; 1
10f22: 90 93 d1 04 sts 0x04D1, r25
10f26: 80 93 d0 04 sts 0x04D0, r24
10f2a: 80 91 a6 02 lds r24, 0x02A6
10f2e: 8f 5f subi r24, 0xFF ; 255
10f30: 81 70 andi r24, 0x01 ; 1
10f32: 80 93 a6 02 sts 0x02A6, r24
10f36: 81 11 cpse r24, r1
10f38: 09 c0 rjmp .+18 ; 0x10f4c <__vector_18+0x7e>
10f3a: 80 91 cf 04 lds r24, 0x04CF
10f3e: 84 30 cpi r24, 0x04 ; 4
10f40: 28 f4 brcc .+10 ; 0x10f4c <__vector_18+0x7e>
10f42: 80 91 cf 04 lds r24, 0x04CF
10f46: 8f 5f subi r24, 0xFF ; 255
10f48: 80 93 cf 04 sts 0x04CF, r24
10f4c: 34 99 sbic 0x06, 4 ; 6
10f4e: 03 c0 rjmp .+6 ; 0x10f56 <__vector_18+0x88>
10f50: 81 e0 ldi r24, 0x01 ; 1
10f52: 80 93 c8 04 sts 0x04C8, r24
10f56: 80 91 cb 04 lds r24, 0x04CB
10f5a: 90 91 cc 04 lds r25, 0x04CC
10f5e: 89 2b or r24, r25
10f60: 11 f1 breq .+68 ; 0x10fa6 <__vector_18+0xd8>
10f62: 80 91 cb 04 lds r24, 0x04CB
10f66: 90 91 cc 04 lds r25, 0x04CC
10f6a: 0b 97 sbiw r24, 0x0b ; 11
10f6c: 50 f0 brcs .+20 ; 0x10f82 <__vector_18+0xb4>
10f6e: 80 91 cb 04 lds r24, 0x04CB
10f72: 90 91 cc 04 lds r25, 0x04CC
10f76: 0a 97 sbiw r24, 0x0a ; 10
10f78: 90 93 cc 04 sts 0x04CC, r25
10f7c: 80 93 cb 04 sts 0x04CB, r24
10f80: 04 c0 rjmp .+8 ; 0x10f8a <__vector_18+0xbc>
10f82: 10 92 cc 04 sts 0x04CC, r1
10f86: 10 92 cb 04 sts 0x04CB, r1
10f8a: 80 91 cb 04 lds r24, 0x04CB
10f8e: 90 91 cc 04 lds r25, 0x04CC
10f92: 20 91 a9 02 lds r18, 0x02A9
10f96: 30 91 aa 02 lds r19, 0x02AA
10f9a: 82 23 and r24, r18
10f9c: 93 23 and r25, r19
10f9e: 89 2b or r24, r25
10fa0: 09 f0 breq .+2 ; 0x10fa4 <__vector_18+0xd6>
10fa2: 64 c0 rjmp .+200 ; 0x1106c <__vector_18+0x19e>
10fa4: 61 c0 rjmp .+194 ; 0x11068 <__vector_18+0x19a>
10fa6: 8f ef ldi r24, 0xFF ; 255
10fa8: 9f ef ldi r25, 0xFF ; 255
10faa: 90 93 aa 02 sts 0x02AA, r25
10fae: 80 93 a9 02 sts 0x02A9, r24
10fb2: 5a c0 rjmp .+180 ; 0x11068 <__vector_18+0x19a>
10fb4: 81 50 subi r24, 0x01 ; 1
10fb6: 80 93 c1 04 sts 0x04C1, r24
10fba: 80 91 c8 04 lds r24, 0x04C8
10fbe: 88 23 and r24, r24
10fc0: 09 f4 brne .+2 ; 0x10fc4 <__vector_18+0xf6>
10fc2: 56 c0 rjmp .+172 ; 0x11070 <__vector_18+0x1a2>
10fc4: 80 91 a4 02 lds r24, 0x02A4
10fc8: 81 11 cpse r24, r1
10fca: 52 c0 rjmp .+164 ; 0x11070 <__vector_18+0x1a2>
10fcc: 80 91 39 06 lds r24, 0x0639
10fd0: 83 ff sbrs r24, 3
10fd2: 4e c0 rjmp .+156 ; 0x11070 <__vector_18+0x1a2>
10fd4: 34 9b sbis 0x06, 4 ; 6
10fd6: 10 c0 rjmp .+32 ; 0x10ff8 <__vector_18+0x12a>
10fd8: 80 91 cd 04 lds r24, 0x04CD
10fdc: 90 91 ce 04 lds r25, 0x04CE
10fe0: 01 96 adiw r24, 0x01 ; 1
10fe2: 90 93 ce 04 sts 0x04CE, r25
10fe6: 80 93 cd 04 sts 0x04CD, r24
10fea: 89 3e cpi r24, 0xE9 ; 233
10fec: 93 40 sbci r25, 0x03 ; 3
10fee: 08 f4 brcc .+2 ; 0x10ff2 <__vector_18+0x124>
10ff0: 3f c0 rjmp .+126 ; 0x11070 <__vector_18+0x1a2>
10ff2: 10 92 c8 04 sts 0x04C8, r1
10ff6: 3c c0 rjmp .+120 ; 0x11070 <__vector_18+0x1a2>
10ff8: 80 91 cd 04 lds r24, 0x04CD
10ffc: 90 91 ce 04 lds r25, 0x04CE
11000: 89 2b or r24, r25
11002: 69 f1 breq .+90 ; 0x1105e <__vector_18+0x190>
11004: 80 91 cd 04 lds r24, 0x04CD
11008: 90 91 ce 04 lds r25, 0x04CE
1100c: 8a 36 cpi r24, 0x6A ; 106
1100e: 91 40 sbci r25, 0x01 ; 1
11010: 30 f5 brcc .+76 ; 0x1105e <__vector_18+0x190>
11012: 20 91 cd 04 lds r18, 0x04CD
11016: 30 91 ce 04 lds r19, 0x04CE
1101a: 80 91 cd 04 lds r24, 0x04CD
1101e: 90 91 ce 04 lds r25, 0x04CE
11022: 69 e2 ldi r22, 0x29 ; 41
11024: 70 e0 ldi r23, 0x00 ; 0
11026: 0e 94 bf 9a call 0x1357e ; 0x1357e <__udivmodhi4>
1102a: 62 0f add r22, r18
1102c: 73 1f adc r23, r19
1102e: 70 93 ce 04 sts 0x04CE, r23
11032: 60 93 cd 04 sts 0x04CD, r22
11036: 80 91 cd 04 lds r24, 0x04CD
1103a: 90 91 ce 04 lds r25, 0x04CE
1103e: 0b 97 sbiw r24, 0x0b ; 11
11040: 50 f0 brcs .+20 ; 0x11056 <__vector_18+0x188>
11042: 80 91 cd 04 lds r24, 0x04CD
11046: 90 91 ce 04 lds r25, 0x04CE
1104a: 0a 97 sbiw r24, 0x0a ; 10
1104c: 90 93 4f 01 sts 0x014F, r25
11050: 80 93 4e 01 sts 0x014E, r24
11054: 04 c0 rjmp .+8 ; 0x1105e <__vector_18+0x190>
11056: 10 92 4f 01 sts 0x014F, r1
1105a: 10 92 4e 01 sts 0x014E, r1
1105e: 10 92 ce 04 sts 0x04CE, r1
11062: 10 92 cd 04 sts 0x04CD, r1
11066: 04 c0 rjmp .+8 ; 0x11070 <__vector_18+0x1a2>
11068: 47 98 cbi 0x08, 7 ; 8
1106a: a7 cf rjmp .-178 ; 0x10fba <__vector_18+0xec>
1106c: 47 9a sbi 0x08, 7 ; 8
1106e: a5 cf rjmp .-182 ; 0x10fba <__vector_18+0xec>
11070: bf 91 pop r27
11072: af 91 pop r26
11074: 9f 91 pop r25
11076: 8f 91 pop r24
11078: 7f 91 pop r23
1107a: 6f 91 pop r22
1107c: 5f 91 pop r21
1107e: 3f 91 pop r19
11080: 2f 91 pop r18
11082: 0f 90 pop r0
11084: 0f be out 0x3f, r0 ; 63
11086: 0f 90 pop r0
11088: 1f 90 pop r1
1108a: 18 95 reti
 
0001108c <SetDelay>:
1108c: 20 91 d0 04 lds r18, 0x04D0
11090: 30 91 d1 04 lds r19, 0x04D1
11094: 2f 5f subi r18, 0xFF ; 255
11096: 3f 4f sbci r19, 0xFF ; 255
11098: 82 0f add r24, r18
1109a: 93 1f adc r25, r19
1109c: 08 95 ret
 
0001109e <CheckDelay>:
1109e: 20 91 d0 04 lds r18, 0x04D0
110a2: 30 91 d1 04 lds r19, 0x04D1
110a6: 82 1b sub r24, r18
110a8: 93 0b sbc r25, r19
110aa: 88 27 eor r24, r24
110ac: 90 78 andi r25, 0x80 ; 128
110ae: 89 2f mov r24, r25
110b0: 86 95 lsr r24
110b2: 08 95 ret
 
000110b4 <Delay_ms_Mess>:
110b4: 1f 93 push r17
110b6: cf 93 push r28
110b8: df 93 push r29
110ba: c0 91 d0 04 lds r28, 0x04D0
110be: d0 91 d1 04 lds r29, 0x04D1
110c2: 21 96 adiw r28, 0x01 ; 1
110c4: c8 0f add r28, r24
110c6: d9 1f adc r29, r25
110c8: 1f ec ldi r17, 0xCF ; 207
110ca: ce 01 movw r24, r28
110cc: e8 df rcall .-48 ; 0x1109e <CheckDelay>
110ce: 81 11 cpse r24, r1
110d0: 09 c0 rjmp .+18 ; 0x110e4 <Delay_ms_Mess+0x30>
110d2: 80 91 0f 01 lds r24, 0x010F
110d6: 88 23 and r24, r24
110d8: c1 f3 breq .-16 ; 0x110ca <Delay_ms_Mess+0x16>
110da: 10 92 0f 01 sts 0x010F, r1
110de: 10 93 7a 00 sts 0x007A, r17
110e2: f3 cf rjmp .-26 ; 0x110ca <Delay_ms_Mess+0x16>
110e4: df 91 pop r29
110e6: cf 91 pop r28
110e8: 1f 91 pop r17
110ea: 08 95 ret
 
000110ec <TIMER2_Init>:
110ec: 9f b7 in r25, 0x3f ; 63
110ee: f8 94 cli
110f0: 5f 98 cbi 0x0b, 7 ; 11
110f2: 3e 9a sbi 0x07, 6 ; 7
110f4: 46 9a sbi 0x08, 6 ; 8
110f6: e0 eb ldi r30, 0xB0 ; 176
110f8: f0 e0 ldi r31, 0x00 ; 0
110fa: 80 81 ld r24, Z
110fc: 8f 70 andi r24, 0x0F ; 15
110fe: 80 83 st Z, r24
11100: 80 81 ld r24, Z
11102: 83 60 ori r24, 0x03 ; 3
11104: 80 83 st Z, r24
11106: a1 eb ldi r26, 0xB1 ; 177
11108: b0 e0 ldi r27, 0x00 ; 0
1110a: 8c 91 ld r24, X
1110c: 8b 73 andi r24, 0x3B ; 59
1110e: 8c 93 st X, r24
11110: 8c 91 ld r24, X
11112: 8b 60 ori r24, 0x0B ; 11
11114: 8c 93 st X, r24
11116: 10 92 b2 00 sts 0x00B2, r1
1111a: 8f ef ldi r24, 0xFF ; 255
1111c: 80 93 b3 00 sts 0x00B3, r24
11120: 80 81 ld r24, Z
11122: 80 68 ori r24, 0x80 ; 128
11124: 80 83 st Z, r24
11126: e0 e7 ldi r30, 0x70 ; 112
11128: f0 e0 ldi r31, 0x00 ; 0
1112a: 80 81 ld r24, Z
1112c: 8a 7f andi r24, 0xFA ; 250
1112e: 80 83 st Z, r24
11130: 80 81 ld r24, Z
11132: 82 60 ori r24, 0x02 ; 2
11134: 80 83 st Z, r24
11136: 9f bf out 0x3f, r25 ; 63
11138: 08 95 ret
 
0001113a <Timer_Init>:
1113a: 80 91 d0 04 lds r24, 0x04D0
1113e: 90 91 d1 04 lds r25, 0x04D1
11142: 0b 96 adiw r24, 0x0b ; 11
11144: 90 93 2f 09 sts 0x092F, r25
11148: 80 93 2e 09 sts 0x092E, r24
1114c: 82 e0 ldi r24, 0x02 ; 2
1114e: 85 bd out 0x25, r24 ; 37
11150: 83 eb ldi r24, 0xB3 ; 179
11152: 84 bd out 0x24, r24 ; 36
11154: 8f ef ldi r24, 0xFF ; 255
11156: 88 bd out 0x28, r24 ; 40
11158: 84 eb ldi r24, 0xB4 ; 180
1115a: 87 bd out 0x27, r24 ; 39
1115c: 86 e0 ldi r24, 0x06 ; 6
1115e: 86 bd out 0x26, r24 ; 38
11160: ee e6 ldi r30, 0x6E ; 110
11162: f0 e0 ldi r31, 0x00 ; 0
11164: 80 81 ld r24, Z
11166: 81 60 ori r24, 0x01 ; 1
11168: 80 83 st Z, r24
1116a: 08 95 ret
 
0001116c <CalcNickServoValue>:
1116c: 90 91 94 05 lds r25, 0x0594
11170: 80 91 2f 01 lds r24, 0x012F
11174: 92 ff sbrs r25, 2
11176: 2e c0 rjmp .+92 ; 0x111d4 <CalcNickServoValue+0x68>
11178: 20 91 4b 05 lds r18, 0x054B
1117c: 40 91 4a 05 lds r20, 0x054A
11180: 60 e5 ldi r22, 0x50 ; 80
11182: 46 9f mul r20, r22
11184: a0 01 movw r20, r0
11186: 11 24 eor r1, r1
11188: 90 e8 ldi r25, 0x80 ; 128
1118a: 98 0f add r25, r24
1118c: 97 ff sbrs r25, 7
1118e: 02 c0 rjmp .+4 ; 0x11194 <CalcNickServoValue+0x28>
11190: 93 e8 ldi r25, 0x83 ; 131
11192: 98 0f add r25, r24
11194: 39 2f mov r19, r25
11196: 35 95 asr r19
11198: 35 95 asr r19
1119a: 80 91 a7 02 lds r24, 0x02A7
1119e: 90 91 a8 02 lds r25, 0x02A8
111a2: 66 e0 ldi r22, 0x06 ; 6
111a4: 36 02 muls r19, r22
111a6: 80 19 sub r24, r0
111a8: 91 09 sbc r25, r1
111aa: 11 24 eor r1, r1
111ac: 48 17 cp r20, r24
111ae: 59 07 cpc r21, r25
111b0: 2c f0 brlt .+10 ; 0x111bc <CalcNickServoValue+0x50>
111b2: 50 93 a8 02 sts 0x02A8, r21
111b6: 40 93 a7 02 sts 0x02A7, r20
111ba: 08 95 ret
111bc: 4c e3 ldi r20, 0x3C ; 60
111be: 24 9f mul r18, r20
111c0: 90 01 movw r18, r0
111c2: 11 24 eor r1, r1
111c4: 82 17 cp r24, r18
111c6: 93 07 cpc r25, r19
111c8: 4c f0 brlt .+18 ; 0x111dc <CalcNickServoValue+0x70>
111ca: 30 93 a8 02 sts 0x02A8, r19
111ce: 20 93 a7 02 sts 0x02A7, r18
111d2: 08 95 ret
111d4: 60 e4 ldi r22, 0x40 ; 64
111d6: 86 9f mul r24, r22
111d8: c0 01 movw r24, r0
111da: 11 24 eor r1, r1
111dc: 90 93 a8 02 sts 0x02A8, r25
111e0: 80 93 a7 02 sts 0x02A7, r24
111e4: 08 95 ret
 
000111e6 <CalculateServo>:
111e6: 8f 92 push r8
111e8: 9f 92 push r9
111ea: af 92 push r10
111ec: bf 92 push r11
111ee: cf 92 push r12
111f0: df 92 push r13
111f2: ef 92 push r14
111f4: ff 92 push r15
111f6: 1f 93 push r17
111f8: cf 93 push r28
111fa: df 93 push r29
111fc: e0 91 52 05 lds r30, 0x0552
11200: f0 e0 ldi r31, 0x00 ; 0
11202: e5 53 subi r30, 0x35 ; 53
11204: fd 4f sbci r31, 0xFD ; 253
11206: a6 81 ldd r26, Z+6 ; 0x06
11208: d0 81 ld r29, Z
1120a: 80 91 af 02 lds r24, 0x02AF
1120e: c0 91 94 05 lds r28, 0x0594
11212: 81 30 cpi r24, 0x01 ; 1
11214: 09 f0 breq .+2 ; 0x11218 <CalculateServo+0x32>
11216: f5 c0 rjmp .+490 ; 0x11402 <CalculateServo+0x21c>
11218: 80 91 96 05 lds r24, 0x0596
1121c: 87 fd sbrc r24, 7
1121e: 2f c0 rjmp .+94 ; 0x1127e <CalculateServo+0x98>
11220: 20 91 40 04 lds r18, 0x0440
11224: 30 91 41 04 lds r19, 0x0441
11228: 40 91 42 04 lds r20, 0x0442
1122c: 50 91 43 04 lds r21, 0x0443
11230: bb 27 eor r27, r27
11232: a7 fd sbrc r26, 7
11234: b0 95 com r27
11236: 0e 94 4f 9b call 0x1369e ; 0x1369e <__mulshisi3>
1123a: e0 e8 ldi r30, 0x80 ; 128
1123c: 8e 2e mov r8, r30
1123e: 91 2c mov r9, r1
11240: a1 2c mov r10, r1
11242: b1 2c mov r11, r1
11244: a5 01 movw r20, r10
11246: 94 01 movw r18, r8
11248: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
1124c: 69 01 movw r12, r18
1124e: 7a 01 movw r14, r20
11250: 20 91 3c 04 lds r18, 0x043C
11254: 30 91 3d 04 lds r19, 0x043D
11258: 40 91 3e 04 lds r20, 0x043E
1125c: 50 91 3f 04 lds r21, 0x043F
11260: ad 2f mov r26, r29
11262: bb 27 eor r27, r27
11264: a7 fd sbrc r26, 7
11266: b0 95 com r27
11268: 0e 94 4f 9b call 0x1369e ; 0x1369e <__mulshisi3>
1126c: a5 01 movw r20, r10
1126e: 94 01 movw r18, r8
11270: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
11274: c2 1a sub r12, r18
11276: d3 0a sbc r13, r19
11278: e4 0a sbc r14, r20
1127a: f5 0a sbc r15, r21
1127c: 03 c0 rjmp .+6 ; 0x11284 <CalculateServo+0x9e>
1127e: c1 2c mov r12, r1
11280: d1 2c mov r13, r1
11282: 76 01 movw r14, r12
11284: 60 91 2d 01 lds r22, 0x012D
11288: 20 91 b3 04 lds r18, 0x04B3
1128c: 30 91 b4 04 lds r19, 0x04B4
11290: 47 e0 ldi r20, 0x07 ; 7
11292: 42 9f mul r20, r18
11294: c0 01 movw r24, r0
11296: 43 9f mul r20, r19
11298: 90 0d add r25, r0
1129a: 11 24 eor r1, r1
1129c: aa 27 eor r26, r26
1129e: 97 fd sbrc r25, 7
112a0: a0 95 com r26
112a2: ba 2f mov r27, r26
112a4: a7 01 movw r20, r14
112a6: 96 01 movw r18, r12
112a8: 28 1b sub r18, r24
112aa: 39 0b sbc r19, r25
112ac: 4a 0b sbc r20, r26
112ae: 5b 0b sbc r21, r27
112b0: a6 2f mov r26, r22
112b2: b0 e0 ldi r27, 0x00 ; 0
112b4: 0e 94 45 9b call 0x1368a ; 0x1368a <__muluhisi3>
112b8: 20 e0 ldi r18, 0x00 ; 0
112ba: 32 e0 ldi r19, 0x02 ; 2
112bc: 40 e0 ldi r20, 0x00 ; 0
112be: 50 e0 ldi r21, 0x00 ; 0
112c0: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
112c4: 69 01 movw r12, r18
112c6: 7a 01 movw r14, r20
112c8: 80 91 a7 02 lds r24, 0x02A7
112cc: 90 91 a8 02 lds r25, 0x02A8
112d0: c2 ff sbrs r28, 2
112d2: 05 c0 rjmp .+10 ; 0x112de <CalculateServo+0xf8>
112d4: 90 93 ae 02 sts 0x02AE, r25
112d8: 80 93 ad 02 sts 0x02AD, r24
112dc: 15 c0 rjmp .+42 ; 0x11308 <CalculateServo+0x122>
112de: 20 91 ad 02 lds r18, 0x02AD
112e2: 30 91 ae 02 lds r19, 0x02AE
112e6: 40 91 ad 02 lds r20, 0x02AD
112ea: 50 91 ae 02 lds r21, 0x02AE
112ee: 84 1b sub r24, r20
112f0: 95 0b sbc r25, r21
112f2: 60 91 51 05 lds r22, 0x0551
112f6: 70 e0 ldi r23, 0x00 ; 0
112f8: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
112fc: 26 0f add r18, r22
112fe: 37 1f adc r19, r23
11300: 30 93 ae 02 sts 0x02AE, r19
11304: 20 93 ad 02 sts 0x02AD, r18
11308: 20 91 ad 02 lds r18, 0x02AD
1130c: 30 91 ae 02 lds r19, 0x02AE
11310: c0 ff sbrs r28, 0
11312: 14 c0 rjmp .+40 ; 0x1133c <CalculateServo+0x156>
11314: 37 ff sbrs r19, 7
11316: 02 c0 rjmp .+4 ; 0x1131c <CalculateServo+0x136>
11318: 21 5f subi r18, 0xF1 ; 241
1131a: 3f 4f sbci r19, 0xFF ; 255
1131c: c9 01 movw r24, r18
1131e: 64 e0 ldi r22, 0x04 ; 4
11320: 95 95 asr r25
11322: 87 95 ror r24
11324: 6a 95 dec r22
11326: e1 f7 brne .-8 ; 0x11320 <CalculateServo+0x13a>
11328: 4c 01 movw r8, r24
1132a: aa 24 eor r10, r10
1132c: 97 fc sbrc r9, 7
1132e: a0 94 com r10
11330: ba 2c mov r11, r10
11332: 8c 0c add r8, r12
11334: 9d 1c adc r9, r13
11336: ae 1c adc r10, r14
11338: bf 1c adc r11, r15
1133a: 13 c0 rjmp .+38 ; 0x11362 <CalculateServo+0x17c>
1133c: 37 ff sbrs r19, 7
1133e: 02 c0 rjmp .+4 ; 0x11344 <CalculateServo+0x15e>
11340: 21 5f subi r18, 0xF1 ; 241
11342: 3f 4f sbci r19, 0xFF ; 255
11344: c9 01 movw r24, r18
11346: 54 e0 ldi r21, 0x04 ; 4
11348: 95 95 asr r25
1134a: 87 95 ror r24
1134c: 5a 95 dec r21
1134e: e1 f7 brne .-8 ; 0x11348 <CalculateServo+0x162>
11350: 4c 01 movw r8, r24
11352: aa 24 eor r10, r10
11354: 97 fc sbrc r9, 7
11356: a0 94 com r10
11358: ba 2c mov r11, r10
1135a: 8c 18 sub r8, r12
1135c: 9d 08 sbc r9, r13
1135e: ae 08 sbc r10, r14
11360: bf 08 sbc r11, r15
11362: c0 90 86 05 lds r12, 0x0586
11366: cc 20 and r12, r12
11368: 21 f1 breq .+72 ; 0x113b2 <CalculateServo+0x1cc>
1136a: 20 91 c4 04 lds r18, 0x04C4
1136e: 30 91 c5 04 lds r19, 0x04C5
11372: d1 2c mov r13, r1
11374: 2c 9d mul r18, r12
11376: a0 01 movw r20, r0
11378: 2d 9d mul r18, r13
1137a: 50 0d add r21, r0
1137c: 3c 9d mul r19, r12
1137e: 50 0d add r21, r0
11380: 11 24 eor r1, r1
11382: ba 01 movw r22, r20
11384: 88 27 eor r24, r24
11386: 77 fd sbrc r23, 7
11388: 80 95 com r24
1138a: 98 2f mov r25, r24
1138c: 68 0d add r22, r8
1138e: 79 1d adc r23, r9
11390: 8a 1d adc r24, r10
11392: 9b 1d adc r25, r11
11394: 2f ef ldi r18, 0xFF ; 255
11396: c2 1a sub r12, r18
11398: d2 0a sbc r13, r18
1139a: 96 01 movw r18, r12
1139c: 44 27 eor r20, r20
1139e: 37 fd sbrc r19, 7
113a0: 40 95 com r20
113a2: 54 2f mov r21, r20
113a4: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
113a8: 30 93 c5 04 sts 0x04C5, r19
113ac: 20 93 c4 04 sts 0x04C4, r18
113b0: 04 c0 rjmp .+8 ; 0x113ba <CalculateServo+0x1d4>
113b2: 90 92 c5 04 sts 0x04C5, r9
113b6: 80 92 c4 04 sts 0x04C4, r8
113ba: 20 91 c4 04 lds r18, 0x04C4
113be: 30 91 c5 04 lds r19, 0x04C5
113c2: 80 91 4a 05 lds r24, 0x054A
113c6: 44 e0 ldi r20, 0x04 ; 4
113c8: 84 9f mul r24, r20
113ca: c0 01 movw r24, r0
113cc: 11 24 eor r1, r1
113ce: 28 17 cp r18, r24
113d0: 39 07 cpc r19, r25
113d2: 6c f0 brlt .+26 ; 0x113ee <CalculateServo+0x208>
113d4: 20 91 c4 04 lds r18, 0x04C4
113d8: 30 91 c5 04 lds r19, 0x04C5
113dc: 80 91 4b 05 lds r24, 0x054B
113e0: 64 e0 ldi r22, 0x04 ; 4
113e2: 86 9f mul r24, r22
113e4: c0 01 movw r24, r0
113e6: 11 24 eor r1, r1
113e8: 82 17 cp r24, r18
113ea: 93 07 cpc r25, r19
113ec: 24 f4 brge .+8 ; 0x113f6 <CalculateServo+0x210>
113ee: 90 93 c5 04 sts 0x04C5, r25
113f2: 80 93 c4 04 sts 0x04C4, r24
113f6: 80 91 af 02 lds r24, 0x02AF
113fa: 8f 5f subi r24, 0xFF ; 255
113fc: 80 93 af 02 sts 0x02AF, r24
11400: d2 c0 rjmp .+420 ; 0x115a6 <CalculateServo+0x3c0>
11402: 10 91 2c 01 lds r17, 0x012C
11406: 20 91 3c 04 lds r18, 0x043C
1140a: 30 91 3d 04 lds r19, 0x043D
1140e: 40 91 3e 04 lds r20, 0x043E
11412: 50 91 3f 04 lds r21, 0x043F
11416: bb 27 eor r27, r27
11418: a7 fd sbrc r26, 7
1141a: b0 95 com r27
1141c: 0e 94 4f 9b call 0x1369e ; 0x1369e <__mulshisi3>
11420: 40 e8 ldi r20, 0x80 ; 128
11422: 84 2e mov r8, r20
11424: 91 2c mov r9, r1
11426: a1 2c mov r10, r1
11428: b1 2c mov r11, r1
1142a: a5 01 movw r20, r10
1142c: 94 01 movw r18, r8
1142e: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
11432: 69 01 movw r12, r18
11434: 7a 01 movw r14, r20
11436: 20 91 40 04 lds r18, 0x0440
1143a: 30 91 41 04 lds r19, 0x0441
1143e: 40 91 42 04 lds r20, 0x0442
11442: 50 91 43 04 lds r21, 0x0443
11446: ad 2f mov r26, r29
11448: bb 27 eor r27, r27
1144a: a7 fd sbrc r26, 7
1144c: b0 95 com r27
1144e: 0e 94 4f 9b call 0x1369e ; 0x1369e <__mulshisi3>
11452: a5 01 movw r20, r10
11454: 94 01 movw r18, r8
11456: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
1145a: c2 0e add r12, r18
1145c: d3 1e adc r13, r19
1145e: e4 1e adc r14, r20
11460: f5 1e adc r15, r21
11462: a1 2f mov r26, r17
11464: b0 e0 ldi r27, 0x00 ; 0
11466: a7 01 movw r20, r14
11468: 96 01 movw r18, r12
1146a: 0e 94 45 9b call 0x1368a ; 0x1368a <__muluhisi3>
1146e: 20 e0 ldi r18, 0x00 ; 0
11470: 32 e0 ldi r19, 0x02 ; 2
11472: 40 e0 ldi r20, 0x00 ; 0
11474: 50 e0 ldi r21, 0x00 ; 0
11476: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
1147a: 69 01 movw r12, r18
1147c: 7a 01 movw r14, r20
1147e: 20 91 ab 02 lds r18, 0x02AB
11482: 30 91 ac 02 lds r19, 0x02AC
11486: 80 91 2e 01 lds r24, 0x012E
1148a: 40 91 ab 02 lds r20, 0x02AB
1148e: 50 91 ac 02 lds r21, 0x02AC
11492: 60 e4 ldi r22, 0x40 ; 64
11494: 86 9f mul r24, r22
11496: c0 01 movw r24, r0
11498: 11 24 eor r1, r1
1149a: 84 1b sub r24, r20
1149c: 95 0b sbc r25, r21
1149e: 60 91 51 05 lds r22, 0x0551
114a2: 70 e0 ldi r23, 0x00 ; 0
114a4: 0e 94 d3 9a call 0x135a6 ; 0x135a6 <__divmodhi4>
114a8: 26 0f add r18, r22
114aa: 37 1f adc r19, r23
114ac: 30 93 ac 02 sts 0x02AC, r19
114b0: 20 93 ab 02 sts 0x02AB, r18
114b4: 20 91 ab 02 lds r18, 0x02AB
114b8: 30 91 ac 02 lds r19, 0x02AC
114bc: c1 ff sbrs r28, 1
114be: 14 c0 rjmp .+40 ; 0x114e8 <CalculateServo+0x302>
114c0: 37 ff sbrs r19, 7
114c2: 02 c0 rjmp .+4 ; 0x114c8 <CalculateServo+0x2e2>
114c4: 21 5f subi r18, 0xF1 ; 241
114c6: 3f 4f sbci r19, 0xFF ; 255
114c8: c9 01 movw r24, r18
114ca: 34 e0 ldi r19, 0x04 ; 4
114cc: 95 95 asr r25
114ce: 87 95 ror r24
114d0: 3a 95 dec r19
114d2: e1 f7 brne .-8 ; 0x114cc <CalculateServo+0x2e6>
114d4: 4c 01 movw r8, r24
114d6: aa 24 eor r10, r10
114d8: 97 fc sbrc r9, 7
114da: a0 94 com r10
114dc: ba 2c mov r11, r10
114de: 8c 0c add r8, r12
114e0: 9d 1c adc r9, r13
114e2: ae 1c adc r10, r14
114e4: bf 1c adc r11, r15
114e6: 13 c0 rjmp .+38 ; 0x1150e <CalculateServo+0x328>
114e8: 37 ff sbrs r19, 7
114ea: 02 c0 rjmp .+4 ; 0x114f0 <CalculateServo+0x30a>
114ec: 21 5f subi r18, 0xF1 ; 241
114ee: 3f 4f sbci r19, 0xFF ; 255
114f0: c9 01 movw r24, r18
114f2: 24 e0 ldi r18, 0x04 ; 4
114f4: 95 95 asr r25
114f6: 87 95 ror r24
114f8: 2a 95 dec r18
114fa: e1 f7 brne .-8 ; 0x114f4 <CalculateServo+0x30e>
114fc: 4c 01 movw r8, r24
114fe: aa 24 eor r10, r10
11500: 97 fc sbrc r9, 7
11502: a0 94 com r10
11504: ba 2c mov r11, r10
11506: 8c 18 sub r8, r12
11508: 9d 08 sbc r9, r13
1150a: ae 08 sbc r10, r14
1150c: bf 08 sbc r11, r15
1150e: c0 90 87 05 lds r12, 0x0587
11512: cc 20 and r12, r12
11514: 21 f1 breq .+72 ; 0x1155e <CalculateServo+0x378>
11516: 20 91 c2 04 lds r18, 0x04C2
1151a: 30 91 c3 04 lds r19, 0x04C3
1151e: d1 2c mov r13, r1
11520: 2c 9d mul r18, r12
11522: a0 01 movw r20, r0
11524: 2d 9d mul r18, r13
11526: 50 0d add r21, r0
11528: 3c 9d mul r19, r12
1152a: 50 0d add r21, r0
1152c: 11 24 eor r1, r1
1152e: ba 01 movw r22, r20
11530: 88 27 eor r24, r24
11532: 77 fd sbrc r23, 7
11534: 80 95 com r24
11536: 98 2f mov r25, r24
11538: 68 0d add r22, r8
1153a: 79 1d adc r23, r9
1153c: 8a 1d adc r24, r10
1153e: 9b 1d adc r25, r11
11540: 2f ef ldi r18, 0xFF ; 255
11542: c2 1a sub r12, r18
11544: d2 0a sbc r13, r18
11546: 96 01 movw r18, r12
11548: 44 27 eor r20, r20
1154a: 37 fd sbrc r19, 7
1154c: 40 95 com r20
1154e: 54 2f mov r21, r20
11550: 0e 94 08 9b call 0x13610 ; 0x13610 <__divmodsi4>
11554: 30 93 c3 04 sts 0x04C3, r19
11558: 20 93 c2 04 sts 0x04C2, r18
1155c: 04 c0 rjmp .+8 ; 0x11566 <CalculateServo+0x380>
1155e: 90 92 c3 04 sts 0x04C3, r9
11562: 80 92 c2 04 sts 0x04C2, r8
11566: 20 91 c2 04 lds r18, 0x04C2
1156a: 30 91 c3 04 lds r19, 0x04C3
1156e: 80 91 4e 05 lds r24, 0x054E
11572: 44 e0 ldi r20, 0x04 ; 4
11574: 84 9f mul r24, r20
11576: c0 01 movw r24, r0
11578: 11 24 eor r1, r1
1157a: 28 17 cp r18, r24
1157c: 39 07 cpc r19, r25
1157e: 6c f0 brlt .+26 ; 0x1159a <CalculateServo+0x3b4>
11580: 20 91 c2 04 lds r18, 0x04C2
11584: 30 91 c3 04 lds r19, 0x04C3
11588: 80 91 4f 05 lds r24, 0x054F
1158c: 64 e0 ldi r22, 0x04 ; 4
1158e: 86 9f mul r24, r22
11590: c0 01 movw r24, r0
11592: 11 24 eor r1, r1
11594: 82 17 cp r24, r18
11596: 93 07 cpc r25, r19
11598: 24 f4 brge .+8 ; 0x115a2 <CalculateServo+0x3bc>
1159a: 90 93 c3 04 sts 0x04C3, r25
1159e: 80 93 c2 04 sts 0x04C2, r24
115a2: 10 92 af 02 sts 0x02AF, r1
115a6: df 91 pop r29
115a8: cf 91 pop r28
115aa: 1f 91 pop r17
115ac: ff 90 pop r15
115ae: ef 90 pop r14
115b0: df 90 pop r13
115b2: cf 90 pop r12
115b4: bf 90 pop r11
115b6: af 90 pop r10
115b8: 9f 90 pop r9
115ba: 8f 90 pop r8
115bc: 08 95 ret
 
000115be <__vector_9>:
115be: 1f 92 push r1
115c0: 0f 92 push r0
115c2: 0f b6 in r0, 0x3f ; 63
115c4: 0f 92 push r0
115c6: 11 24 eor r1, r1
115c8: 0b b6 in r0, 0x3b ; 59
115ca: 0f 92 push r0
115cc: 2f 93 push r18
115ce: 3f 93 push r19
115d0: 4f 93 push r20
115d2: 5f 93 push r21
115d4: 8f 93 push r24
115d6: 9f 93 push r25
115d8: ef 93 push r30
115da: ff 93 push r31
115dc: 80 91 c0 04 lds r24, 0x04C0
115e0: 81 11 cpse r24, r1
115e2: ca c0 rjmp .+404 ; 0x11778 <__vector_9+0x1ba>
115e4: 90 91 b0 00 lds r25, 0x00B0
115e8: 80 91 50 05 lds r24, 0x0550
115ec: 96 ff sbrs r25, 6
115ee: 8d c0 rjmp .+282 ; 0x1170a <__vector_9+0x14c>
115f0: 90 91 b0 00 lds r25, 0x00B0
115f4: 9f 7b andi r25, 0xBF ; 191
115f6: 90 93 b0 00 sts 0x00B0, r25
115fa: e0 91 bf 04 lds r30, 0x04BF
115fe: e1 11 cpse r30, r1
11600: 17 c0 rjmp .+46 ; 0x11630 <__vector_9+0x72>
11602: 4d ed ldi r20, 0xDD ; 221
11604: 56 e0 ldi r21, 0x06 ; 6
11606: 84 9f mul r24, r20
11608: 90 01 movw r18, r0
1160a: 85 9f mul r24, r21
1160c: 30 0d add r19, r0
1160e: 11 24 eor r1, r1
11610: 80 91 bd 04 lds r24, 0x04BD
11614: 90 91 be 04 lds r25, 0x04BE
11618: 28 1b sub r18, r24
1161a: 39 0b sbc r19, r25
1161c: 30 93 c7 04 sts 0x04C7, r19
11620: 20 93 c6 04 sts 0x04C6, r18
11624: 10 92 be 04 sts 0x04BE, r1
11628: 10 92 bd 04 sts 0x04BD, r1
1162c: 46 9a sbi 0x08, 6 ; 8
1162e: a1 c0 rjmp .+322 ; 0x11772 <__vector_9+0x1b4>
11630: 8e 17 cp r24, r30
11632: 38 f4 brcc .+14 ; 0x11642 <__vector_9+0x84>
11634: 8a e0 ldi r24, 0x0A ; 10
11636: 90 e0 ldi r25, 0x00 ; 0
11638: 90 93 c7 04 sts 0x04C7, r25
1163c: 80 93 c6 04 sts 0x04C6, r24
11640: 98 c0 rjmp .+304 ; 0x11772 <__vector_9+0x1b4>
11642: 89 ea ldi r24, 0xA9 ; 169
11644: 93 e0 ldi r25, 0x03 ; 3
11646: 90 93 c7 04 sts 0x04C7, r25
1164a: 80 93 c6 04 sts 0x04C6, r24
1164e: e3 30 cpi r30, 0x03 ; 3
11650: c1 f0 breq .+48 ; 0x11682 <__vector_9+0xc4>
11652: 48 f4 brcc .+18 ; 0x11666 <__vector_9+0xa8>
11654: e1 30 cpi r30, 0x01 ; 1
11656: 71 f0 breq .+28 ; 0x11674 <__vector_9+0xb6>
11658: e2 30 cpi r30, 0x02 ; 2
1165a: f9 f4 brne .+62 ; 0x1169a <__vector_9+0xdc>
1165c: 80 91 c2 04 lds r24, 0x04C2
11660: 90 91 c3 04 lds r25, 0x04C3
11664: 0b c0 rjmp .+22 ; 0x1167c <__vector_9+0xbe>
11666: e4 30 cpi r30, 0x04 ; 4
11668: 79 f0 breq .+30 ; 0x11688 <__vector_9+0xca>
1166a: e5 30 cpi r30, 0x05 ; 5
1166c: b1 f4 brne .+44 ; 0x1169a <__vector_9+0xdc>
1166e: 80 91 1e 06 lds r24, 0x061E
11672: 0c c0 rjmp .+24 ; 0x1168c <__vector_9+0xce>
11674: 80 91 c4 04 lds r24, 0x04C4
11678: 90 91 c5 04 lds r25, 0x04C5
1167c: 87 55 subi r24, 0x57 ; 87
1167e: 9e 4f sbci r25, 0xFE ; 254
11680: 17 c0 rjmp .+46 ; 0x116b0 <__vector_9+0xf2>
11682: 80 91 15 06 lds r24, 0x0615
11686: 02 c0 rjmp .+4 ; 0x1168c <__vector_9+0xce>
11688: 80 91 f6 05 lds r24, 0x05F6
1168c: 24 e0 ldi r18, 0x04 ; 4
1168e: 82 9f mul r24, r18
11690: c0 01 movw r24, r0
11692: 11 24 eor r1, r1
11694: 87 55 subi r24, 0x57 ; 87
11696: 9e 4f sbci r25, 0xFE ; 254
11698: 0b c0 rjmp .+22 ; 0x116b0 <__vector_9+0xf2>
1169a: f0 e0 ldi r31, 0x00 ; 0
1169c: ee 0f add r30, r30
1169e: ff 1f adc r31, r31
116a0: e2 5f subi r30, 0xF2 ; 242
116a2: f7 4f sbci r31, 0xF7 ; 247
116a4: 80 81 ld r24, Z
116a6: 91 81 ldd r25, Z+1 ; 0x01
116a8: 88 0f add r24, r24
116aa: 99 1f adc r25, r25
116ac: 87 55 subi r24, 0x57 ; 87
116ae: 9c 4f sbci r25, 0xFC ; 252
116b0: 90 93 c7 04 sts 0x04C7, r25
116b4: 80 93 c6 04 sts 0x04C6, r24
116b8: 80 91 c6 04 lds r24, 0x04C6
116bc: 90 91 c7 04 lds r25, 0x04C7
116c0: 8d 3d cpi r24, 0xDD ; 221
116c2: 25 e0 ldi r18, 0x05 ; 5
116c4: 92 07 cpc r25, r18
116c6: 18 f0 brcs .+6 ; 0x116ce <__vector_9+0x110>
116c8: 8c ed ldi r24, 0xDC ; 220
116ca: 95 e0 ldi r25, 0x05 ; 5
116cc: 05 c0 rjmp .+10 ; 0x116d8 <__vector_9+0x11a>
116ce: 87 37 cpi r24, 0x77 ; 119
116d0: 91 40 sbci r25, 0x01 ; 1
116d2: 30 f4 brcc .+12 ; 0x116e0 <__vector_9+0x122>
116d4: 87 e7 ldi r24, 0x77 ; 119
116d6: 91 e0 ldi r25, 0x01 ; 1
116d8: 90 93 c7 04 sts 0x04C7, r25
116dc: 80 93 c6 04 sts 0x04C6, r24
116e0: 20 91 c6 04 lds r18, 0x04C6
116e4: 30 91 c7 04 lds r19, 0x04C7
116e8: 2c 5b subi r18, 0xBC ; 188
116ea: 31 09 sbc r19, r1
116ec: 30 93 c7 04 sts 0x04C7, r19
116f0: 20 93 c6 04 sts 0x04C6, r18
116f4: 80 91 bd 04 lds r24, 0x04BD
116f8: 90 91 be 04 lds r25, 0x04BE
116fc: 82 0f add r24, r18
116fe: 93 1f adc r25, r19
11700: 90 93 be 04 sts 0x04BE, r25
11704: 80 93 bd 04 sts 0x04BD, r24
11708: 34 c0 rjmp .+104 ; 0x11772 <__vector_9+0x1b4>
1170a: 90 91 b0 00 lds r25, 0x00B0
1170e: 90 64 ori r25, 0x40 ; 64
11710: 90 93 b0 00 sts 0x00B0, r25
11714: 2c eb ldi r18, 0xBC ; 188
11716: 30 e0 ldi r19, 0x00 ; 0
11718: 30 93 c7 04 sts 0x04C7, r19
1171c: 20 93 c6 04 sts 0x04C6, r18
11720: 20 91 bd 04 lds r18, 0x04BD
11724: 30 91 be 04 lds r19, 0x04BE
11728: 24 54 subi r18, 0x44 ; 68
1172a: 3f 4f sbci r19, 0xFF ; 255
1172c: 30 93 be 04 sts 0x04BE, r19
11730: 20 93 bd 04 sts 0x04BD, r18
11734: 90 91 c9 04 lds r25, 0x04C9
11738: 99 23 and r25, r25
1173a: 21 f0 breq .+8 ; 0x11744 <__vector_9+0x186>
1173c: 90 91 02 04 lds r25, 0x0402
11740: 91 11 cpse r25, r1
11742: 04 c0 rjmp .+8 ; 0x1174c <__vector_9+0x18e>
11744: 90 91 c9 04 lds r25, 0x04C9
11748: 92 30 cpi r25, 0x02 ; 2
1174a: 11 f4 brne .+4 ; 0x11750 <__vector_9+0x192>
1174c: 46 98 cbi 0x08, 6 ; 8
1174e: 01 c0 rjmp .+2 ; 0x11752 <__vector_9+0x194>
11750: 46 9a sbi 0x08, 6 ; 8
11752: 20 91 bf 04 lds r18, 0x04BF
11756: 2f 5f subi r18, 0xFF ; 255
11758: 20 93 bf 04 sts 0x04BF, r18
1175c: 30 e0 ldi r19, 0x00 ; 0
1175e: 90 e0 ldi r25, 0x00 ; 0
11760: 01 96 adiw r24, 0x01 ; 1
11762: 82 17 cp r24, r18
11764: 93 07 cpc r25, r19
11766: 2c f4 brge .+10 ; 0x11772 <__vector_9+0x1b4>
11768: 81 e0 ldi r24, 0x01 ; 1
1176a: 80 93 af 02 sts 0x02AF, r24
1176e: 10 92 bf 04 sts 0x04BF, r1
11772: 81 e0 ldi r24, 0x01 ; 1
11774: 80 93 c0 04 sts 0x04C0, r24
11778: 80 91 c6 04 lds r24, 0x04C6
1177c: 90 91 c7 04 lds r25, 0x04C7
11780: 8f 37 cpi r24, 0x7F ; 127
11782: 21 e0 ldi r18, 0x01 ; 1
11784: 92 07 cpc r25, r18
11786: 88 f4 brcc .+34 ; 0x117aa <__vector_9+0x1ec>
11788: 8f 3f cpi r24, 0xFF ; 255
1178a: 91 05 cpc r25, r1
1178c: e1 f0 breq .+56 ; 0x117c6 <__vector_9+0x208>
1178e: d8 f0 brcs .+54 ; 0x117c6 <__vector_9+0x208>
11790: 8e 37 cpi r24, 0x7E ; 126
11792: 91 40 sbci r25, 0x01 ; 1
11794: 51 f0 breq .+20 ; 0x117aa <__vector_9+0x1ec>
11796: 80 e8 ldi r24, 0x80 ; 128
11798: 80 93 b3 00 sts 0x00B3, r24
1179c: 80 91 c6 04 lds r24, 0x04C6
117a0: 90 91 c7 04 lds r25, 0x04C7
117a4: 80 58 subi r24, 0x80 ; 128
117a6: 91 09 sbc r25, r1
117a8: 09 c0 rjmp .+18 ; 0x117bc <__vector_9+0x1fe>
117aa: 8f ef ldi r24, 0xFF ; 255
117ac: 80 93 b3 00 sts 0x00B3, r24
117b0: 80 91 c6 04 lds r24, 0x04C6
117b4: 90 91 c7 04 lds r25, 0x04C7
117b8: 8f 5f subi r24, 0xFF ; 255
117ba: 91 09 sbc r25, r1
117bc: 90 93 c7 04 sts 0x04C7, r25
117c0: 80 93 c6 04 sts 0x04C6, r24
117c4: 08 c0 rjmp .+16 ; 0x117d6 <__vector_9+0x218>
117c6: 80 93 b3 00 sts 0x00B3, r24
117ca: 10 92 c7 04 sts 0x04C7, r1
117ce: 10 92 c6 04 sts 0x04C6, r1
117d2: 10 92 c0 04 sts 0x04C0, r1
117d6: ff 91 pop r31
117d8: ef 91 pop r30
117da: 9f 91 pop r25
117dc: 8f 91 pop r24
117de: 5f 91 pop r21
117e0: 4f 91 pop r20
117e2: 3f 91 pop r19
117e4: 2f 91 pop r18
117e6: 0f 90 pop r0
117e8: 0b be out 0x3b, r0 ; 59
117ea: 0f 90 pop r0
117ec: 0f be out 0x3f, r0 ; 63
117ee: 0f 90 pop r0
117f0: 1f 90 pop r1
117f2: 18 95 reti
 
000117f4 <I2C_Init>:
117f4: 9f b7 in r25, 0x3f ; 63
117f6: f8 94 cli
117f8: 39 98 cbi 0x07, 1 ; 7
117fa: 38 9a sbi 0x07, 0 ; 7
117fc: 28 b1 in r18, 0x08 ; 8
117fe: 23 60 ori r18, 0x03 ; 3
11800: 28 b9 out 0x08, r18 ; 8
11802: 20 91 b9 00 lds r18, 0x00B9
11806: 2c 7f andi r18, 0xFC ; 252
11808: 20 93 b9 00 sts 0x00B9, r18
1180c: 2a e2 ldi r18, 0x2A ; 42
1180e: 20 93 b8 00 sts 0x00B8, r18
11812: 10 92 e1 04 sts 0x04E1, r1
11816: 10 92 e0 04 sts 0x04E0, r1
1181a: 10 92 df 04 sts 0x04DF, r1
1181e: 81 11 cpse r24, r1
11820: 03 c0 rjmp .+6 ; 0x11828 <I2C_Init+0x34>
11822: 78 94 sei
11824: 9f bf out 0x3f, r25 ; 63
11826: 08 95 ret
11828: e2 e8 ldi r30, 0x82 ; 130
1182a: f9 e0 ldi r31, 0x09 ; 9
1182c: df 01 movw r26, r30
1182e: 1e 97 sbiw r26, 0x0e ; 14
11830: 1c 92 st X, r1
11832: 11 96 adiw r26, 0x01 ; 1
11834: 1c 92 st X, r1
11836: 11 96 adiw r26, 0x01 ; 1
11838: 1c 92 st X, r1
1183a: 11 96 adiw r26, 0x01 ; 1
1183c: 1c 92 st X, r1
1183e: 11 96 adiw r26, 0x01 ; 1
11840: 1c 92 st X, r1
11842: 11 96 adiw r26, 0x01 ; 1
11844: 1c 92 st X, r1
11846: 11 96 adiw r26, 0x01 ; 1
11848: 1c 92 st X, r1
1184a: 11 96 adiw r26, 0x01 ; 1
1184c: 1c 92 st X, r1
1184e: 10 82 st Z, r1
11850: 11 96 adiw r26, 0x01 ; 1
11852: 1c 92 st X, r1
11854: 11 96 adiw r26, 0x01 ; 1
11856: 1c 92 st X, r1
11858: 11 96 adiw r26, 0x01 ; 1
1185a: 1c 92 st X, r1
1185c: 11 96 adiw r26, 0x01 ; 1
1185e: 1c 92 st X, r1
11860: 11 96 adiw r26, 0x01 ; 1
11862: 1c 92 st X, r1
11864: 11 96 adiw r26, 0x01 ; 1
11866: 1c 92 st X, r1
11868: 3f 96 adiw r30, 0x0f ; 15
1186a: 8a e0 ldi r24, 0x0A ; 10
1186c: e6 33 cpi r30, 0x36 ; 54
1186e: f8 07 cpc r31, r24
11870: e9 f6 brne .-70 ; 0x1182c <I2C_Init+0x38>
11872: d7 cf rjmp .-82 ; 0x11822 <I2C_Init+0x2e>
 
00011874 <I2C_Reset>:
11874: 0f 93 push r16
11876: 1f 93 push r17
11878: cf 93 push r28
1187a: df 93 push r29
1187c: 10 92 e1 04 sts 0x04E1, r1
11880: cc eb ldi r28, 0xBC ; 188
11882: d0 e0 ldi r29, 0x00 ; 0
11884: 84 e9 ldi r24, 0x94 ; 148
11886: 88 83 st Y, r24
11888: 80 e8 ldi r24, 0x80 ; 128
1188a: 88 83 st Y, r24
1188c: 10 92 bd 00 sts 0x00BD, r1
11890: 10 92 ba 00 sts 0x00BA, r1
11894: 0b eb ldi r16, 0xBB ; 187
11896: 10 e0 ldi r17, 0x00 ; 0
11898: f8 01 movw r30, r16
1189a: 10 82 st Z, r1
1189c: 10 92 b9 00 sts 0x00B9, r1
118a0: 10 92 b8 00 sts 0x00B8, r1
118a4: 10 92 de 04 sts 0x04DE, r1
118a8: 80 e0 ldi r24, 0x00 ; 0
118aa: a4 df rcall .-184 ; 0x117f4 <I2C_Init>
118ac: f8 01 movw r30, r16
118ae: 10 82 st Z, r1
118b0: 85 e8 ldi r24, 0x85 ; 133
118b2: 88 83 st Y, r24
118b4: 80 91 dc 04 lds r24, 0x04DC
118b8: 82 60 ori r24, 0x02 ; 2
118ba: 80 93 dc 04 sts 0x04DC, r24
118be: df 91 pop r29
118c0: cf 91 pop r28
118c2: 1f 91 pop r17
118c4: 0f 91 pop r16
118c6: 08 95 ret
 
000118c8 <__vector_26>:
118c8: 1f 92 push r1
118ca: 0f 92 push r0
118cc: 0f b6 in r0, 0x3f ; 63
118ce: 0f 92 push r0
118d0: 11 24 eor r1, r1
118d2: 0b b6 in r0, 0x3b ; 59
118d4: 0f 92 push r0
118d6: 2f 93 push r18
118d8: 3f 93 push r19
118da: 4f 93 push r20
118dc: 6f 93 push r22
118de: 7f 93 push r23
118e0: 8f 93 push r24
118e2: 9f 93 push r25
118e4: af 93 push r26
118e6: bf 93 push r27
118e8: ef 93 push r30
118ea: ff 93 push r31
118ec: 80 91 e1 04 lds r24, 0x04E1
118f0: 91 e0 ldi r25, 0x01 ; 1
118f2: 98 0f add r25, r24
118f4: 90 93 e1 04 sts 0x04E1, r25
118f8: 90 e0 ldi r25, 0x00 ; 0
118fa: 87 30 cpi r24, 0x07 ; 7
118fc: 91 05 cpc r25, r1
118fe: 08 f0 brcs .+2 ; 0x11902 <__vector_26+0x3a>
11900: 88 c2 rjmp .+1296 ; 0x11e12 <__vector_26+0x54a>
11902: fc 01 movw r30, r24
11904: e0 55 subi r30, 0x50 ; 80
11906: ff 4f sbci r31, 0xFF ; 255
11908: 0c 94 24 9b jmp 0x13648 ; 0x13648 <__tablejump2__>
1190c: 81 e0 ldi r24, 0x01 ; 1
1190e: 80 93 de 04 sts 0x04DE, r24
11912: e0 91 e0 04 lds r30, 0x04E0
11916: 34 e0 ldi r19, 0x04 ; 4
11918: e3 9f mul r30, r19
1191a: f0 01 movw r30, r0
1191c: 11 24 eor r1, r1
1191e: ec 55 subi r30, 0x5C ; 92
11920: fa 4f sbci r31, 0xFA ; 250
11922: 85 85 ldd r24, Z+13 ; 0x0d
11924: 18 16 cp r1, r24
11926: 54 f0 brlt .+20 ; 0x1193c <__vector_26+0x74>
11928: 80 91 e0 04 lds r24, 0x04E0
1192c: 8c 30 cpi r24, 0x0C ; 12
1192e: 30 f4 brcc .+12 ; 0x1193c <__vector_26+0x74>
11930: 80 91 e0 04 lds r24, 0x04E0
11934: 8f 5f subi r24, 0xFF ; 255
11936: 80 93 e0 04 sts 0x04E0, r24
1193a: eb cf rjmp .-42 ; 0x11912 <__vector_26+0x4a>
1193c: 80 91 e0 04 lds r24, 0x04E0
11940: 6c e0 ldi r22, 0x0C ; 12
11942: 0e 94 b3 9a call 0x13566 ; 0x13566 <__udivmodqi4>
11946: 90 93 e0 04 sts 0x04E0, r25
1194a: 80 91 d7 04 lds r24, 0x04D7
1194e: 8f 5f subi r24, 0xFF ; 255
11950: 80 93 d7 04 sts 0x04D7, r24
11954: 90 91 b2 02 lds r25, 0x02B2
11958: 98 17 cp r25, r24
1195a: 70 f4 brcc .+28 ; 0x11978 <__vector_26+0xb0>
1195c: 10 92 d7 04 sts 0x04D7, r1
11960: 10 92 db 04 sts 0x04DB, r1
11964: 10 92 da 04 sts 0x04DA, r1
11968: 85 e0 ldi r24, 0x05 ; 5
1196a: 80 93 e1 04 sts 0x04E1, r24
1196e: 80 91 df 04 lds r24, 0x04DF
11972: 88 0f add r24, r24
11974: 8d 5a subi r24, 0xAD ; 173
11976: 04 c0 rjmp .+8 ; 0x11980 <__vector_26+0xb8>
11978: 80 91 e0 04 lds r24, 0x04E0
1197c: 88 0f add r24, r24
1197e: 8e 5a subi r24, 0xAE ; 174
11980: 80 93 bb 00 sts 0x00BB, r24
11984: 85 e8 ldi r24, 0x85 ; 133
11986: 80 93 bc 00 sts 0x00BC, r24
1198a: 59 c2 rjmp .+1202 ; 0x11e3e <__vector_26+0x576>
1198c: a0 91 e0 04 lds r26, 0x04E0
11990: 8f e0 ldi r24, 0x0F ; 15
11992: 8a 9f mul r24, r26
11994: d0 01 movw r26, r0
11996: 11 24 eor r1, r1
11998: ac 58 subi r26, 0x8C ; 140
1199a: b6 4f sbci r27, 0xF6 ; 246
1199c: 11 96 adiw r26, 0x01 ; 1
1199e: 9c 91 ld r25, X
119a0: 90 93 bb 00 sts 0x00BB, r25
119a4: 95 e8 ldi r25, 0x85 ; 133
119a6: 90 93 bc 00 sts 0x00BC, r25
119aa: a0 91 e0 04 lds r26, 0x04E0
119ae: 8a 9f mul r24, r26
119b0: d0 01 movw r26, r0
119b2: 11 24 eor r1, r1
119b4: ac 58 subi r26, 0x8C ; 140
119b6: b6 4f sbci r27, 0xF6 ; 246
119b8: 9c 91 ld r25, X
119ba: 90 ff sbrs r25, 0
119bc: 79 c0 rjmp .+242 ; 0x11ab0 <__vector_26+0x1e8>
119be: e0 91 e0 04 lds r30, 0x04E0
119c2: 8e 9f mul r24, r30
119c4: f0 01 movw r30, r0
119c6: 11 24 eor r1, r1
119c8: ec 58 subi r30, 0x8C ; 140
119ca: f6 4f sbci r31, 0xF6 ; 246
119cc: 82 81 ldd r24, Z+2 ; 0x02
119ce: 88 23 and r24, r24
119d0: 29 f0 breq .+10 ; 0x119dc <__vector_26+0x114>
119d2: 80 91 1a 05 lds r24, 0x051A
119d6: 87 30 cpi r24, 0x07 ; 7
119d8: 08 f4 brcc .+2 ; 0x119dc <__vector_26+0x114>
119da: 31 c2 rjmp .+1122 ; 0x11e3e <__vector_26+0x576>
119dc: 80 91 da 04 lds r24, 0x04DA
119e0: 90 91 db 04 lds r25, 0x04DB
119e4: 89 2b or r24, r25
119e6: 09 f0 breq .+2 ; 0x119ea <__vector_26+0x122>
119e8: 2a c2 rjmp .+1108 ; 0x11e3e <__vector_26+0x576>
119ea: 80 91 d8 04 lds r24, 0x04D8
119ee: 90 91 d9 04 lds r25, 0x04D9
119f2: 89 2b or r24, r25
119f4: 09 f0 breq .+2 ; 0x119f8 <__vector_26+0x130>
119f6: 23 c2 rjmp .+1094 ; 0x11e3e <__vector_26+0x576>
119f8: 5b c0 rjmp .+182 ; 0x11ab0 <__vector_26+0x1e8>
119fa: 40 91 e0 04 lds r20, 0x04E0
119fe: 20 91 d8 04 lds r18, 0x04D8
11a02: 30 91 d9 04 lds r19, 0x04D9
11a06: 81 e0 ldi r24, 0x01 ; 1
11a08: 90 e0 ldi r25, 0x00 ; 0
11a0a: 02 c0 rjmp .+4 ; 0x11a10 <__vector_26+0x148>
11a0c: 88 0f add r24, r24
11a0e: 99 1f adc r25, r25
11a10: 4a 95 dec r20
11a12: e2 f7 brpl .-8 ; 0x11a0c <__vector_26+0x144>
11a14: 82 23 and r24, r18
11a16: 93 23 and r25, r19
11a18: e0 91 e0 04 lds r30, 0x04E0
11a1c: 89 2b or r24, r25
11a1e: 49 f0 breq .+18 ; 0x11a32 <__vector_26+0x16a>
11a20: 8f e0 ldi r24, 0x0F ; 15
11a22: e8 9f mul r30, r24
11a24: f0 01 movw r30, r0
11a26: 11 24 eor r1, r1
11a28: ec 58 subi r30, 0x8C ; 140
11a2a: f6 4f sbci r31, 0xF6 ; 246
11a2c: 80 e1 ldi r24, 0x10 ; 16
11a2e: 84 83 std Z+4, r24 ; 0x04
11a30: 07 c0 rjmp .+14 ; 0x11a40 <__vector_26+0x178>
11a32: 3f e0 ldi r19, 0x0F ; 15
11a34: e3 9f mul r30, r19
11a36: f0 01 movw r30, r0
11a38: 11 24 eor r1, r1
11a3a: ec 58 subi r30, 0x8C ; 140
11a3c: f6 4f sbci r31, 0xF6 ; 246
11a3e: 14 82 std Z+4, r1 ; 0x04
11a40: a0 91 e0 04 lds r26, 0x04E0
11a44: e0 91 e0 04 lds r30, 0x04E0
11a48: 2f e0 ldi r18, 0x0F ; 15
11a4a: 2a 9f mul r18, r26
11a4c: d0 01 movw r26, r0
11a4e: 11 24 eor r1, r1
11a50: ac 58 subi r26, 0x8C ; 140
11a52: b6 4f sbci r27, 0xF6 ; 246
11a54: 14 96 adiw r26, 0x04 ; 4
11a56: 8c 91 ld r24, X
11a58: 38 e0 ldi r19, 0x08 ; 8
11a5a: 83 9f mul r24, r19
11a5c: c0 01 movw r24, r0
11a5e: 11 24 eor r1, r1
11a60: 2e 9f mul r18, r30
11a62: f0 01 movw r30, r0
11a64: 11 24 eor r1, r1
11a66: ec 58 subi r30, 0x8C ; 140
11a68: f6 4f sbci r31, 0xF6 ; 246
11a6a: 92 81 ldd r25, Z+2 ; 0x02
11a6c: 97 70 andi r25, 0x07 ; 7
11a6e: 98 2b or r25, r24
11a70: 90 93 bb 00 sts 0x00BB, r25
11a74: 85 e8 ldi r24, 0x85 ; 133
11a76: 80 93 bc 00 sts 0x00BC, r24
11a7a: 40 91 e0 04 lds r20, 0x04E0
11a7e: 20 91 da 04 lds r18, 0x04DA
11a82: 30 91 db 04 lds r19, 0x04DB
11a86: 81 e0 ldi r24, 0x01 ; 1
11a88: 90 e0 ldi r25, 0x00 ; 0
11a8a: 02 c0 rjmp .+4 ; 0x11a90 <__vector_26+0x1c8>
11a8c: 88 0f add r24, r24
11a8e: 99 1f adc r25, r25
11a90: 4a 95 dec r20
11a92: e2 f7 brpl .-8 ; 0x11a8c <__vector_26+0x1c4>
11a94: 82 23 and r24, r18
11a96: 93 23 and r25, r19
11a98: 89 2b or r24, r25
11a9a: 51 f0 breq .+20 ; 0x11ab0 <__vector_26+0x1e8>
11a9c: 8c e6 ldi r24, 0x6C ; 108
11a9e: 99 e0 ldi r25, 0x09 ; 9
11aa0: 90 93 d6 04 sts 0x04D6, r25
11aa4: 80 93 d5 04 sts 0x04D5, r24
11aa8: 88 e0 ldi r24, 0x08 ; 8
11aaa: 80 93 d4 04 sts 0x04D4, r24
11aae: c7 c1 rjmp .+910 ; 0x11e3e <__vector_26+0x576>
11ab0: 84 e0 ldi r24, 0x04 ; 4
11ab2: ac c1 rjmp .+856 ; 0x11e0c <__vector_26+0x544>
11ab4: e0 91 d5 04 lds r30, 0x04D5
11ab8: f0 91 d6 04 lds r31, 0x04D6
11abc: 80 81 ld r24, Z
11abe: 80 93 bb 00 sts 0x00BB, r24
11ac2: 85 e8 ldi r24, 0x85 ; 133
11ac4: 80 93 bc 00 sts 0x00BC, r24
11ac8: 80 91 d5 04 lds r24, 0x04D5
11acc: 90 91 d6 04 lds r25, 0x04D6
11ad0: 01 96 adiw r24, 0x01 ; 1
11ad2: 90 93 d6 04 sts 0x04D6, r25
11ad6: 80 93 d5 04 sts 0x04D5, r24
11ada: 80 91 d4 04 lds r24, 0x04D4
11ade: 81 50 subi r24, 0x01 ; 1
11ae0: 80 93 d4 04 sts 0x04D4, r24
11ae4: 88 23 and r24, r24
11ae6: 09 f4 brne .+2 ; 0x11aea <__vector_26+0x222>
11ae8: aa c1 rjmp .+852 ; 0x11e3e <__vector_26+0x576>
11aea: 83 e0 ldi r24, 0x03 ; 3
11aec: 8f c1 rjmp .+798 ; 0x11e0c <__vector_26+0x544>
11aee: 80 91 b9 00 lds r24, 0x00B9
11af2: 80 33 cpi r24, 0x30 ; 48
11af4: 01 f5 brne .+64 ; 0x11b36 <__vector_26+0x26e>
11af6: 80 91 d3 04 lds r24, 0x04D3
11afa: 81 11 cpse r24, r1
11afc: 05 c0 rjmp .+10 ; 0x11b08 <__vector_26+0x240>
11afe: 80 91 e0 04 lds r24, 0x04E0
11b02: 8f 5f subi r24, 0xFF ; 255
11b04: 80 93 d3 04 sts 0x04D3, r24
11b08: a0 91 e0 04 lds r26, 0x04E0
11b0c: 9f e0 ldi r25, 0x0F ; 15
11b0e: 9a 9f mul r25, r26
11b10: d0 01 movw r26, r0
11b12: 11 24 eor r1, r1
11b14: ac 58 subi r26, 0x8C ; 140
11b16: b6 4f sbci r27, 0xF6 ; 246
11b18: 13 96 adiw r26, 0x03 ; 3
11b1a: 8c 91 ld r24, X
11b1c: 8f 77 andi r24, 0x7F ; 127
11b1e: 8f 37 cpi r24, 0x7F ; 127
11b20: 51 f0 breq .+20 ; 0x11b36 <__vector_26+0x26e>
11b22: e0 91 e0 04 lds r30, 0x04E0
11b26: 9e 9f mul r25, r30
11b28: f0 01 movw r30, r0
11b2a: 11 24 eor r1, r1
11b2c: ec 58 subi r30, 0x8C ; 140
11b2e: f6 4f sbci r31, 0xF6 ; 246
11b30: 83 81 ldd r24, Z+3 ; 0x03
11b32: 8f 5f subi r24, 0xFF ; 255
11b34: 83 83 std Z+3, r24 ; 0x03
11b36: 10 92 e1 04 sts 0x04E1, r1
11b3a: 84 e9 ldi r24, 0x94 ; 148
11b3c: 80 93 bc 00 sts 0x00BC, r24
11b40: 8a e0 ldi r24, 0x0A ; 10
11b42: 90 e0 ldi r25, 0x00 ; 0
11b44: 90 93 b1 02 sts 0x02B1, r25
11b48: 80 93 b0 02 sts 0x02B0, r24
11b4c: 80 91 e0 04 lds r24, 0x04E0
11b50: 8f 5f subi r24, 0xFF ; 255
11b52: 80 93 e0 04 sts 0x04E0, r24
11b56: 10 92 e1 04 sts 0x04E1, r1
11b5a: 80 91 dc 04 lds r24, 0x04DC
11b5e: 8e 7f andi r24, 0xFE ; 254
11b60: 80 93 dc 04 sts 0x04DC, r24
11b64: 85 ea ldi r24, 0xA5 ; 165
11b66: 0f cf rjmp .-482 ; 0x11986 <__vector_26+0xbe>
11b68: 80 91 b9 00 lds r24, 0x00B9
11b6c: e0 91 df 04 lds r30, 0x04DF
11b70: 80 34 cpi r24, 0x40 ; 64
11b72: 89 f1 breq .+98 ; 0x11bd6 <__vector_26+0x30e>
11b74: 8f e0 ldi r24, 0x0F ; 15
11b76: e8 9f mul r30, r24
11b78: f0 01 movw r30, r0
11b7a: 11 24 eor r1, r1
11b7c: ec 58 subi r30, 0x8C ; 140
11b7e: f6 4f sbci r31, 0xF6 ; 246
11b80: 83 81 ldd r24, Z+3 ; 0x03
11b82: 8f 77 andi r24, 0x7F ; 127
11b84: 83 83 std Z+3, r24 ; 0x03
11b86: 80 91 df 04 lds r24, 0x04DF
11b8a: 8f 5f subi r24, 0xFF ; 255
11b8c: 80 93 df 04 sts 0x04DF, r24
11b90: 8c 30 cpi r24, 0x0C ; 12
11b92: a0 f0 brcs .+40 ; 0x11bbc <__vector_26+0x2f4>
11b94: 10 92 df 04 sts 0x04DF, r1
11b98: 10 92 d9 04 sts 0x04D9, r1
11b9c: 10 92 d8 04 sts 0x04D8, r1
11ba0: 80 91 d2 04 lds r24, 0x04D2
11ba4: 8f 5f subi r24, 0xFF ; 255
11ba6: 80 93 d2 04 sts 0x04D2, r24
11baa: 8c 30 cpi r24, 0x0C ; 12
11bac: 38 f0 brcs .+14 ; 0x11bbc <__vector_26+0x2f4>
11bae: 10 92 d2 04 sts 0x04D2, r1
11bb2: 80 91 dc 04 lds r24, 0x04DC
11bb6: 8d 7f andi r24, 0xFD ; 253
11bb8: 80 93 dc 04 sts 0x04DC, r24
11bbc: 80 91 dc 04 lds r24, 0x04DC
11bc0: 81 60 ori r24, 0x01 ; 1
11bc2: 80 93 dc 04 sts 0x04DC, r24
11bc6: 10 92 e1 04 sts 0x04E1, r1
11bca: 84 e9 ldi r24, 0x94 ; 148
11bcc: 80 93 bc 00 sts 0x00BC, r24
11bd0: 10 92 de 04 sts 0x04DE, r1
11bd4: 6a c0 rjmp .+212 ; 0x11caa <__vector_26+0x3e2>
11bd6: 8f e0 ldi r24, 0x0F ; 15
11bd8: 8e 9f mul r24, r30
11bda: f0 01 movw r30, r0
11bdc: 11 24 eor r1, r1
11bde: ec 58 subi r30, 0x8C ; 140
11be0: f6 4f sbci r31, 0xF6 ; 246
11be2: 93 81 ldd r25, Z+3 ; 0x03
11be4: 90 68 ori r25, 0x80 ; 128
11be6: 93 83 std Z+3, r25 ; 0x03
11be8: a0 91 df 04 lds r26, 0x04DF
11bec: 8a 9f mul r24, r26
11bee: d0 01 movw r26, r0
11bf0: 11 24 eor r1, r1
11bf2: ac 58 subi r26, 0x8C ; 140
11bf4: b6 4f sbci r27, 0xF6 ; 246
11bf6: 9c 91 ld r25, X
11bf8: 90 ff sbrs r25, 0
11bfa: 34 c0 rjmp .+104 ; 0x11c64 <__vector_26+0x39c>
11bfc: a0 91 df 04 lds r26, 0x04DF
11c00: 8a 9f mul r24, r26
11c02: d0 01 movw r26, r0
11c04: 11 24 eor r1, r1
11c06: ac 58 subi r26, 0x8C ; 140
11c08: b6 4f sbci r27, 0xF6 ; 246
11c0a: 14 96 adiw r26, 0x04 ; 4
11c0c: 9c 91 ld r25, X
11c0e: 99 23 and r25, r25
11c10: a9 f0 breq .+42 ; 0x11c3c <__vector_26+0x374>
11c12: 90 31 cpi r25, 0x10 ; 16
11c14: 09 f0 breq .+2 ; 0x11c18 <__vector_26+0x350>
11c16: 40 c0 rjmp .+128 ; 0x11c98 <__vector_26+0x3d0>
11c18: 2c e6 ldi r18, 0x6C ; 108
11c1a: 39 e0 ldi r19, 0x09 ; 9
11c1c: 30 93 d6 04 sts 0x04D6, r19
11c20: 20 93 d5 04 sts 0x04D5, r18
11c24: 98 e0 ldi r25, 0x08 ; 8
11c26: 90 93 d4 04 sts 0x04D4, r25
11c2a: e0 91 df 04 lds r30, 0x04DF
11c2e: 8e 9f mul r24, r30
11c30: f0 01 movw r30, r0
11c32: 11 24 eor r1, r1
11c34: ec 58 subi r30, 0x8C ; 140
11c36: f6 4f sbci r31, 0xF6 ; 246
11c38: 14 82 std Z+4, r1 ; 0x04
11c3a: 2e c0 rjmp .+92 ; 0x11c98 <__vector_26+0x3d0>
11c3c: 90 91 df 04 lds r25, 0x04DF
11c40: 89 9f mul r24, r25
11c42: c0 01 movw r24, r0
11c44: 11 24 eor r1, r1
11c46: 87 58 subi r24, 0x87 ; 135
11c48: 96 4f sbci r25, 0xF6 ; 246
11c4a: 90 93 d6 04 sts 0x04D6, r25
11c4e: 80 93 d5 04 sts 0x04D5, r24
11c52: 90 91 df 04 lds r25, 0x04DF
11c56: 80 91 d2 04 lds r24, 0x04D2
11c5a: 98 13 cpse r25, r24
11c5c: 1a c0 rjmp .+52 ; 0x11c92 <__vector_26+0x3ca>
11c5e: 80 91 b3 02 lds r24, 0x02B3
11c62: 18 c0 rjmp .+48 ; 0x11c94 <__vector_26+0x3cc>
11c64: 90 91 df 04 lds r25, 0x04DF
11c68: 89 9f mul r24, r25
11c6a: c0 01 movw r24, r0
11c6c: 11 24 eor r1, r1
11c6e: 87 58 subi r24, 0x87 ; 135
11c70: 96 4f sbci r25, 0xF6 ; 246
11c72: 90 93 d6 04 sts 0x04D6, r25
11c76: 80 93 d5 04 sts 0x04D5, r24
11c7a: 80 91 dc 04 lds r24, 0x04DC
11c7e: 81 fd sbrc r24, 1
11c80: 06 c0 rjmp .+12 ; 0x11c8e <__vector_26+0x3c6>
11c82: 90 91 df 04 lds r25, 0x04DF
11c86: 80 91 d2 04 lds r24, 0x04D2
11c8a: 98 13 cpse r25, r24
11c8c: 02 c0 rjmp .+4 ; 0x11c92 <__vector_26+0x3ca>
11c8e: 82 e0 ldi r24, 0x02 ; 2
11c90: 01 c0 rjmp .+2 ; 0x11c94 <__vector_26+0x3cc>
11c92: 81 e0 ldi r24, 0x01 ; 1
11c94: 80 93 d4 04 sts 0x04D4, r24
11c98: 80 91 d4 04 lds r24, 0x04D4
11c9c: 81 30 cpi r24, 0x01 ; 1
11c9e: 11 f4 brne .+4 ; 0x11ca4 <__vector_26+0x3dc>
11ca0: 85 e8 ldi r24, 0x85 ; 133
11ca2: 01 c0 rjmp .+2 ; 0x11ca6 <__vector_26+0x3de>
11ca4: 85 ec ldi r24, 0xC5 ; 197
11ca6: 80 93 bc 00 sts 0x00BC, r24
11caa: 80 91 d3 04 lds r24, 0x04D3
11cae: 80 93 dd 04 sts 0x04DD, r24
11cb2: 10 92 d3 04 sts 0x04D3, r1
11cb6: c3 c0 rjmp .+390 ; 0x11e3e <__vector_26+0x576>
11cb8: 80 91 bb 00 lds r24, 0x00BB
11cbc: e0 91 d5 04 lds r30, 0x04D5
11cc0: f0 91 d6 04 lds r31, 0x04D6
11cc4: 81 93 st Z+, r24
11cc6: f0 93 d6 04 sts 0x04D6, r31
11cca: e0 93 d5 04 sts 0x04D5, r30
11cce: 80 91 d4 04 lds r24, 0x04D4
11cd2: 81 50 subi r24, 0x01 ; 1
11cd4: 80 93 d4 04 sts 0x04D4, r24
11cd8: 82 30 cpi r24, 0x02 ; 2
11cda: 10 f0 brcs .+4 ; 0x11ce0 <__vector_26+0x418>
11cdc: 85 ec ldi r24, 0xC5 ; 197
11cde: 03 c0 rjmp .+6 ; 0x11ce6 <__vector_26+0x41e>
11ce0: 81 30 cpi r24, 0x01 ; 1
11ce2: 29 f4 brne .+10 ; 0x11cee <__vector_26+0x426>
11ce4: 85 e8 ldi r24, 0x85 ; 133
11ce6: 80 93 bc 00 sts 0x00BC, r24
11cea: 86 e0 ldi r24, 0x06 ; 6
11cec: 8f c0 rjmp .+286 ; 0x11e0c <__vector_26+0x544>
11cee: 80 91 dc 04 lds r24, 0x04DC
11cf2: 81 ff sbrs r24, 1
11cf4: 48 c0 rjmp .+144 ; 0x11d86 <__vector_26+0x4be>
11cf6: 80 91 c9 03 lds r24, 0x03C9
11cfa: 80 fd sbrc r24, 0
11cfc: 44 c0 rjmp .+136 ; 0x11d86 <__vector_26+0x4be>
11cfe: a0 91 df 04 lds r26, 0x04DF
11d02: 8f e0 ldi r24, 0x0F ; 15
11d04: 8a 9f mul r24, r26
11d06: d0 01 movw r26, r0
11d08: 11 24 eor r1, r1
11d0a: ac 58 subi r26, 0x8C ; 140
11d0c: b6 4f sbci r27, 0xF6 ; 246
11d0e: 16 96 adiw r26, 0x06 ; 6
11d10: 9c 91 ld r25, X
11d12: 9c 7f andi r25, 0xFC ; 252
11d14: e0 91 df 04 lds r30, 0x04DF
11d18: 8e 9f mul r24, r30
11d1a: f0 01 movw r30, r0
11d1c: 11 24 eor r1, r1
11d1e: ec 58 subi r30, 0x8C ; 140
11d20: f6 4f sbci r31, 0xF6 ; 246
11d22: 98 3f cpi r25, 0xF8 ; 248
11d24: 21 f4 brne .+8 ; 0x11d2e <__vector_26+0x466>
11d26: 80 81 ld r24, Z
11d28: 81 60 ori r24, 0x01 ; 1
11d2a: 80 83 st Z, r24
11d2c: 01 c0 rjmp .+2 ; 0x11d30 <__vector_26+0x468>
11d2e: 10 82 st Z, r1
11d30: a0 91 df 04 lds r26, 0x04DF
11d34: 8f e0 ldi r24, 0x0F ; 15
11d36: 8a 9f mul r24, r26
11d38: d0 01 movw r26, r0
11d3a: 11 24 eor r1, r1
11d3c: ac 58 subi r26, 0x8C ; 140
11d3e: b6 4f sbci r27, 0xF6 ; 246
11d40: 16 96 adiw r26, 0x06 ; 6
11d42: 9c 91 ld r25, X
11d44: 98 3f cpi r25, 0xF8 ; 248
11d46: 51 f4 brne .+20 ; 0x11d5c <__vector_26+0x494>
11d48: e0 91 df 04 lds r30, 0x04DF
11d4c: 8e 9f mul r24, r30
11d4e: f0 01 movw r30, r0
11d50: 11 24 eor r1, r1
11d52: ec 58 subi r30, 0x8C ; 140
11d54: f6 4f sbci r31, 0xF6 ; 246
11d56: 80 81 ld r24, Z
11d58: 86 60 ori r24, 0x06 ; 6
11d5a: 14 c0 rjmp .+40 ; 0x11d84 <__vector_26+0x4bc>
11d5c: a0 91 df 04 lds r26, 0x04DF
11d60: 8a 9f mul r24, r26
11d62: d0 01 movw r26, r0
11d64: 11 24 eor r1, r1
11d66: ac 58 subi r26, 0x8C ; 140
11d68: b6 4f sbci r27, 0xF6 ; 246
11d6a: 16 96 adiw r26, 0x06 ; 6
11d6c: 9c 91 ld r25, X
11d6e: 99 3f cpi r25, 0xF9 ; 249
11d70: 51 f4 brne .+20 ; 0x11d86 <__vector_26+0x4be>
11d72: e0 91 df 04 lds r30, 0x04DF
11d76: 8e 9f mul r24, r30
11d78: f0 01 movw r30, r0
11d7a: 11 24 eor r1, r1
11d7c: ec 58 subi r30, 0x8C ; 140
11d7e: f6 4f sbci r31, 0xF6 ; 246
11d80: 80 81 ld r24, Z
11d82: 84 60 ori r24, 0x04 ; 4
11d84: 80 83 st Z, r24
11d86: 80 91 c9 03 lds r24, 0x03C9
11d8a: 81 ff sbrs r24, 1
11d8c: 19 c0 rjmp .+50 ; 0x11dc0 <__vector_26+0x4f8>
11d8e: a0 91 df 04 lds r26, 0x04DF
11d92: 8f e0 ldi r24, 0x0F ; 15
11d94: 8a 9f mul r24, r26
11d96: d0 01 movw r26, r0
11d98: 11 24 eor r1, r1
11d9a: ac 58 subi r26, 0x8C ; 140
11d9c: b6 4f sbci r27, 0xF6 ; 246
11d9e: 16 96 adiw r26, 0x06 ; 6
11da0: 9c 91 ld r25, X
11da2: 9e 3f cpi r25, 0xFE ; 254
11da4: 68 f4 brcc .+26 ; 0x11dc0 <__vector_26+0x4f8>
11da6: e0 91 df 04 lds r30, 0x04DF
11daa: 8e 9f mul r24, r30
11dac: f0 01 movw r30, r0
11dae: 11 24 eor r1, r1
11db0: ec 58 subi r30, 0x8C ; 140
11db2: f6 4f sbci r31, 0xF6 ; 246
11db4: 86 85 ldd r24, Z+14 ; 0x0e
11db6: 8f 5f subi r24, 0xFF ; 255
11db8: 86 87 std Z+14, r24 ; 0x0e
11dba: 89 e0 ldi r24, 0x09 ; 9
11dbc: 80 93 57 01 sts 0x0157, r24
11dc0: 80 91 df 04 lds r24, 0x04DF
11dc4: 8f 5f subi r24, 0xFF ; 255
11dc6: 80 93 df 04 sts 0x04DF, r24
11dca: 8c 30 cpi r24, 0x0C ; 12
11dcc: a0 f0 brcs .+40 ; 0x11df6 <__vector_26+0x52e>
11dce: 10 92 df 04 sts 0x04DF, r1
11dd2: 10 92 d9 04 sts 0x04D9, r1
11dd6: 10 92 d8 04 sts 0x04D8, r1
11dda: 80 91 d2 04 lds r24, 0x04D2
11dde: 8f 5f subi r24, 0xFF ; 255
11de0: 80 93 d2 04 sts 0x04D2, r24
11de4: 8c 30 cpi r24, 0x0C ; 12
11de6: 38 f0 brcs .+14 ; 0x11df6 <__vector_26+0x52e>
11de8: 10 92 d2 04 sts 0x04D2, r1
11dec: 80 91 dc 04 lds r24, 0x04DC
11df0: 8d 7f andi r24, 0xFD ; 253
11df2: 80 93 dc 04 sts 0x04DC, r24
11df6: 10 92 e1 04 sts 0x04E1, r1
11dfa: 84 e9 ldi r24, 0x94 ; 148
11dfc: 80 93 bc 00 sts 0x00BC, r24
11e00: 80 91 dc 04 lds r24, 0x04DC
11e04: 81 60 ori r24, 0x01 ; 1
11e06: 80 93 dc 04 sts 0x04DC, r24
11e0a: 17 c0 rjmp .+46 ; 0x11e3a <__vector_26+0x572>
11e0c: 80 93 e1 04 sts 0x04E1, r24
11e10: 16 c0 rjmp .+44 ; 0x11e3e <__vector_26+0x576>
11e12: 10 92 e1 04 sts 0x04E1, r1
11e16: 84 e9 ldi r24, 0x94 ; 148
11e18: 80 93 bc 00 sts 0x00BC, r24
11e1c: 80 91 dc 04 lds r24, 0x04DC
11e20: 81 60 ori r24, 0x01 ; 1
11e22: 80 93 dc 04 sts 0x04DC, r24
11e26: 8a e0 ldi r24, 0x0A ; 10
11e28: 90 e0 ldi r25, 0x00 ; 0
11e2a: 90 93 b1 02 sts 0x02B1, r25
11e2e: 80 93 b0 02 sts 0x02B0, r24
11e32: 10 92 e0 04 sts 0x04E0, r1
11e36: 10 92 df 04 sts 0x04DF, r1
11e3a: 10 92 de 04 sts 0x04DE, r1
11e3e: ff 91 pop r31
11e40: ef 91 pop r30
11e42: bf 91 pop r27
11e44: af 91 pop r26
11e46: 9f 91 pop r25
11e48: 8f 91 pop r24
11e4a: 7f 91 pop r23
11e4c: 6f 91 pop r22
11e4e: 4f 91 pop r20
11e50: 3f 91 pop r19
11e52: 2f 91 pop r18
11e54: 0f 90 pop r0
11e56: 0b be out 0x3b, r0 ; 59
11e58: 0f 90 pop r0
11e5a: 0f be out 0x3f, r0 ; 63
11e5c: 0f 90 pop r0
11e5e: 1f 90 pop r1
11e60: 18 95 reti
 
00011e62 <I2C_WriteBLConfig>:
11e62: 0f 93 push r16
11e64: 1f 93 push r17
11e66: cf 93 push r28
11e68: df 93 push r29
11e6a: 18 2f mov r17, r24
11e6c: 80 91 01 04 lds r24, 0x0401
11e70: 81 11 cpse r24, r1
11e72: 8a c0 rjmp .+276 ; 0x11f88 <I2C_WriteBLConfig+0x126>
11e74: 80 91 f3 04 lds r24, 0x04F3
11e78: 81 11 cpse r24, r1
11e7a: 86 c0 rjmp .+268 ; 0x11f88 <I2C_WriteBLConfig+0x126>
11e7c: 1d 30 cpi r17, 0x0D ; 13
11e7e: 10 f0 brcs .+4 ; 0x11e84 <I2C_WriteBLConfig+0x22>
11e80: 82 e0 ldi r24, 0x02 ; 2
11e82: 89 c0 rjmp .+274 ; 0x11f96 <I2C_WriteBLConfig+0x134>
11e84: 11 23 and r17, r17
11e86: 91 f0 breq .+36 ; 0x11eac <I2C_WriteBLConfig+0x4a>
11e88: 21 2f mov r18, r17
11e8a: 30 e0 ldi r19, 0x00 ; 0
11e8c: 21 50 subi r18, 0x01 ; 1
11e8e: 31 09 sbc r19, r1
11e90: 8f e0 ldi r24, 0x0F ; 15
11e92: 82 9f mul r24, r18
11e94: f0 01 movw r30, r0
11e96: 83 9f mul r24, r19
11e98: f0 0d add r31, r0
11e9a: 11 24 eor r1, r1
11e9c: ec 58 subi r30, 0x8C ; 140
11e9e: f6 4f sbci r31, 0xF6 ; 246
11ea0: 83 81 ldd r24, Z+3 ; 0x03
11ea2: 87 ff sbrs r24, 7
11ea4: ed cf rjmp .-38 ; 0x11e80 <I2C_WriteBLConfig+0x1e>
11ea6: 80 81 ld r24, Z
11ea8: 80 ff sbrs r24, 0
11eaa: 70 c0 rjmp .+224 ; 0x11f8c <I2C_WriteBLConfig+0x12a>
11eac: 80 91 6c 09 lds r24, 0x096C
11eb0: 8b 70 andi r24, 0x0B ; 11
11eb2: 82 30 cpi r24, 0x02 ; 2
11eb4: 09 f0 breq .+2 ; 0x11eb8 <I2C_WriteBLConfig+0x56>
11eb6: 6c c0 rjmp .+216 ; 0x11f90 <I2C_WriteBLConfig+0x12e>
11eb8: 67 e0 ldi r22, 0x07 ; 7
11eba: 70 e0 ldi r23, 0x00 ; 0
11ebc: 8c e6 ldi r24, 0x6C ; 108
11ebe: 99 e0 ldi r25, 0x09 ; 9
11ec0: 0e 94 4f 21 call 0x429e ; 0x429e <RAM_Checksum>
11ec4: 90 91 73 09 lds r25, 0x0973
11ec8: 89 13 cpse r24, r25
11eca: 64 c0 rjmp .+200 ; 0x11f94 <I2C_WriteBLConfig+0x132>
11ecc: 00 91 b2 02 lds r16, 0x02B2
11ed0: 8c e0 ldi r24, 0x0C ; 12
11ed2: 80 93 b2 02 sts 0x02B2, r24
11ed6: 24 e6 ldi r18, 0x64 ; 100
11ed8: 30 e0 ldi r19, 0x00 ; 0
11eda: 30 93 b1 02 sts 0x02B1, r19
11ede: 20 93 b0 02 sts 0x02B0, r18
11ee2: 84 e6 ldi r24, 0x64 ; 100
11ee4: 90 e0 ldi r25, 0x00 ; 0
11ee6: d2 d8 rcall .-3676 ; 0x1108c <SetDelay>
11ee8: ec 01 movw r28, r24
11eea: 80 91 dc 04 lds r24, 0x04DC
11eee: 80 ff sbrs r24, 0
11ef0: 09 c0 rjmp .+18 ; 0x11f04 <I2C_WriteBLConfig+0xa2>
11ef2: 11 11 cpse r17, r1
11ef4: 0c c0 rjmp .+24 ; 0x11f0e <I2C_WriteBLConfig+0xac>
11ef6: 8f ef ldi r24, 0xFF ; 255
11ef8: 9f e0 ldi r25, 0x0F ; 15
11efa: 90 93 db 04 sts 0x04DB, r25
11efe: 80 93 da 04 sts 0x04DA, r24
11f02: 11 c0 rjmp .+34 ; 0x11f26 <I2C_WriteBLConfig+0xc4>
11f04: ce 01 movw r24, r28
11f06: cb d8 rcall .-3690 ; 0x1109e <CheckDelay>
11f08: 88 23 and r24, r24
11f0a: 79 f3 breq .-34 ; 0x11eea <I2C_WriteBLConfig+0x88>
11f0c: f2 cf rjmp .-28 ; 0x11ef2 <I2C_WriteBLConfig+0x90>
11f0e: 11 50 subi r17, 0x01 ; 1
11f10: 21 e0 ldi r18, 0x01 ; 1
11f12: 30 e0 ldi r19, 0x00 ; 0
11f14: 02 c0 rjmp .+4 ; 0x11f1a <I2C_WriteBLConfig+0xb8>
11f16: 22 0f add r18, r18
11f18: 33 1f adc r19, r19
11f1a: 1a 95 dec r17
11f1c: e2 f7 brpl .-8 ; 0x11f16 <I2C_WriteBLConfig+0xb4>
11f1e: 30 93 db 04 sts 0x04DB, r19
11f22: 20 93 da 04 sts 0x04DA, r18
11f26: 10 92 e0 04 sts 0x04E0, r1
11f2a: 10 92 df 04 sts 0x04DF, r1
11f2e: 88 ee ldi r24, 0xE8 ; 232
11f30: 93 e0 ldi r25, 0x03 ; 3
11f32: ac d8 rcall .-3752 ; 0x1108c <SetDelay>
11f34: ec 01 movw r28, r24
11f36: 15 ea ldi r17, 0xA5 ; 165
11f38: 10 92 e1 04 sts 0x04E1, r1
11f3c: 80 91 dc 04 lds r24, 0x04DC
11f40: 8e 7f andi r24, 0xFE ; 254
11f42: 80 93 dc 04 sts 0x04DC, r24
11f46: 10 93 bc 00 sts 0x00BC, r17
11f4a: 80 91 dc 04 lds r24, 0x04DC
11f4e: 80 ff sbrs r24, 0
11f50: 07 c0 rjmp .+14 ; 0x11f60 <I2C_WriteBLConfig+0xfe>
11f52: 80 91 da 04 lds r24, 0x04DA
11f56: 90 91 db 04 lds r25, 0x04DB
11f5a: 89 2b or r24, r25
11f5c: 31 f4 brne .+12 ; 0x11f6a <I2C_WriteBLConfig+0x108>
11f5e: 09 c0 rjmp .+18 ; 0x11f72 <I2C_WriteBLConfig+0x110>
11f60: ce 01 movw r24, r28
11f62: 9d d8 rcall .-3782 ; 0x1109e <CheckDelay>
11f64: 88 23 and r24, r24
11f66: 89 f3 breq .-30 ; 0x11f4a <I2C_WriteBLConfig+0xe8>
11f68: f4 cf rjmp .-24 ; 0x11f52 <I2C_WriteBLConfig+0xf0>
11f6a: ce 01 movw r24, r28
11f6c: 98 d8 rcall .-3792 ; 0x1109e <CheckDelay>
11f6e: 88 23 and r24, r24
11f70: 19 f3 breq .-58 ; 0x11f38 <I2C_WriteBLConfig+0xd6>
11f72: 00 93 b2 02 sts 0x02B2, r16
11f76: 80 91 da 04 lds r24, 0x04DA
11f7a: 90 91 db 04 lds r25, 0x04DB
11f7e: 89 2b or r24, r25
11f80: 09 f0 breq .+2 ; 0x11f84 <I2C_WriteBLConfig+0x122>
11f82: 7e cf rjmp .-260 ; 0x11e80 <I2C_WriteBLConfig+0x1e>
11f84: 80 e0 ldi r24, 0x00 ; 0
11f86: 07 c0 rjmp .+14 ; 0x11f96 <I2C_WriteBLConfig+0x134>
11f88: 81 e0 ldi r24, 0x01 ; 1
11f8a: 05 c0 rjmp .+10 ; 0x11f96 <I2C_WriteBLConfig+0x134>
11f8c: 83 e0 ldi r24, 0x03 ; 3
11f8e: 03 c0 rjmp .+6 ; 0x11f96 <I2C_WriteBLConfig+0x134>
11f90: 84 e0 ldi r24, 0x04 ; 4
11f92: 01 c0 rjmp .+2 ; 0x11f96 <I2C_WriteBLConfig+0x134>
11f94: 85 e0 ldi r24, 0x05 ; 5
11f96: df 91 pop r29
11f98: cf 91 pop r28
11f9a: 1f 91 pop r17
11f9c: 0f 91 pop r16
11f9e: 08 95 ret
 
00011fa0 <I2C_ReadBLConfig>:
11fa0: 0f 93 push r16
11fa2: 1f 93 push r17
11fa4: cf 93 push r28
11fa6: df 93 push r29
11fa8: 90 91 01 04 lds r25, 0x0401
11fac: 91 11 cpse r25, r1
11fae: 6a c0 rjmp .+212 ; 0x12084 <I2C_ReadBLConfig+0xe4>
11fb0: 90 91 f3 04 lds r25, 0x04F3
11fb4: 91 11 cpse r25, r1
11fb6: 66 c0 rjmp .+204 ; 0x12084 <I2C_ReadBLConfig+0xe4>
11fb8: 8d 30 cpi r24, 0x0D ; 13
11fba: 08 f0 brcs .+2 ; 0x11fbe <I2C_ReadBLConfig+0x1e>
11fbc: 67 c0 rjmp .+206 ; 0x1208c <I2C_ReadBLConfig+0xec>
11fbe: 88 23 and r24, r24
11fc0: 09 f4 brne .+2 ; 0x11fc4 <I2C_ReadBLConfig+0x24>
11fc2: 62 c0 rjmp .+196 ; 0x12088 <I2C_ReadBLConfig+0xe8>
11fc4: c8 2f mov r28, r24
11fc6: d0 e0 ldi r29, 0x00 ; 0
11fc8: 21 97 sbiw r28, 0x01 ; 1
11fca: 8f e0 ldi r24, 0x0F ; 15
11fcc: 8c 9f mul r24, r28
11fce: f0 01 movw r30, r0
11fd0: 8d 9f mul r24, r29
11fd2: f0 0d add r31, r0
11fd4: 11 24 eor r1, r1
11fd6: ec 58 subi r30, 0x8C ; 140
11fd8: f6 4f sbci r31, 0xF6 ; 246
11fda: 83 81 ldd r24, Z+3 ; 0x03
11fdc: 87 ff sbrs r24, 7
11fde: 56 c0 rjmp .+172 ; 0x1208c <I2C_ReadBLConfig+0xec>
11fe0: 80 81 ld r24, Z
11fe2: 80 ff sbrs r24, 0
11fe4: 55 c0 rjmp .+170 ; 0x12090 <I2C_ReadBLConfig+0xf0>
11fe6: 88 ee ldi r24, 0xE8 ; 232
11fe8: 93 e0 ldi r25, 0x03 ; 3
11fea: 50 d8 rcall .-3936 ; 0x1108c <SetDelay>
11fec: 8c 01 movw r16, r24
11fee: 80 91 dc 04 lds r24, 0x04DC
11ff2: 80 ff sbrs r24, 0
11ff4: 15 c0 rjmp .+42 ; 0x12020 <I2C_ReadBLConfig+0x80>
11ff6: 81 e0 ldi r24, 0x01 ; 1
11ff8: 90 e0 ldi r25, 0x00 ; 0
11ffa: 02 c0 rjmp .+4 ; 0x12000 <I2C_ReadBLConfig+0x60>
11ffc: 88 0f add r24, r24
11ffe: 99 1f adc r25, r25
12000: ca 95 dec r28
12002: e2 f7 brpl .-8 ; 0x11ffc <I2C_ReadBLConfig+0x5c>
12004: 90 93 d9 04 sts 0x04D9, r25
12008: 80 93 d8 04 sts 0x04D8, r24
1200c: 10 92 e0 04 sts 0x04E0, r1
12010: 10 92 df 04 sts 0x04DF, r1
12014: 10 92 6c 09 sts 0x096C, r1
12018: 10 92 73 09 sts 0x0973, r1
1201c: c5 ea ldi r28, 0xA5 ; 165
1201e: 17 c0 rjmp .+46 ; 0x1204e <I2C_ReadBLConfig+0xae>
12020: c8 01 movw r24, r16
12022: 3d d8 rcall .-3974 ; 0x1109e <CheckDelay>
12024: 88 23 and r24, r24
12026: 19 f3 breq .-58 ; 0x11fee <I2C_ReadBLConfig+0x4e>
12028: e6 cf rjmp .-52 ; 0x11ff6 <I2C_ReadBLConfig+0x56>
1202a: c8 01 movw r24, r16
1202c: 38 d8 rcall .-3984 ; 0x1109e <CheckDelay>
1202e: 81 11 cpse r24, r1
12030: 04 c0 rjmp .+8 ; 0x1203a <I2C_ReadBLConfig+0x9a>
12032: 80 91 dc 04 lds r24, 0x04DC
12036: 80 ff sbrs r24, 0
12038: f8 cf rjmp .-16 ; 0x1202a <I2C_ReadBLConfig+0x8a>
1203a: 80 91 d8 04 lds r24, 0x04D8
1203e: 90 91 d9 04 lds r25, 0x04D9
12042: 89 2b or r24, r25
12044: 71 f0 breq .+28 ; 0x12062 <I2C_ReadBLConfig+0xc2>
12046: c8 01 movw r24, r16
12048: 2a d8 rcall .-4012 ; 0x1109e <CheckDelay>
1204a: 81 11 cpse r24, r1
1204c: 0a c0 rjmp .+20 ; 0x12062 <I2C_ReadBLConfig+0xc2>
1204e: 10 92 e1 04 sts 0x04E1, r1
12052: 80 91 dc 04 lds r24, 0x04DC
12056: 8e 7f andi r24, 0xFE ; 254
12058: 80 93 dc 04 sts 0x04DC, r24
1205c: c0 93 bc 00 sts 0x00BC, r28
12060: e8 cf rjmp .-48 ; 0x12032 <I2C_ReadBLConfig+0x92>
12062: 80 91 6c 09 lds r24, 0x096C
12066: 8b 70 andi r24, 0x0B ; 11
12068: 82 30 cpi r24, 0x02 ; 2
1206a: a1 f4 brne .+40 ; 0x12094 <I2C_ReadBLConfig+0xf4>
1206c: 67 e0 ldi r22, 0x07 ; 7
1206e: 70 e0 ldi r23, 0x00 ; 0
12070: 8c e6 ldi r24, 0x6C ; 108
12072: 99 e0 ldi r25, 0x09 ; 9
12074: 0e 94 4f 21 call 0x429e ; 0x429e <RAM_Checksum>
12078: 90 91 73 09 lds r25, 0x0973
1207c: 89 17 cp r24, r25
1207e: 61 f0 breq .+24 ; 0x12098 <I2C_ReadBLConfig+0xf8>
12080: 85 e0 ldi r24, 0x05 ; 5
12082: 0b c0 rjmp .+22 ; 0x1209a <I2C_ReadBLConfig+0xfa>
12084: 81 e0 ldi r24, 0x01 ; 1
12086: 09 c0 rjmp .+18 ; 0x1209a <I2C_ReadBLConfig+0xfa>
12088: 86 e0 ldi r24, 0x06 ; 6
1208a: 07 c0 rjmp .+14 ; 0x1209a <I2C_ReadBLConfig+0xfa>
1208c: 82 e0 ldi r24, 0x02 ; 2
1208e: 05 c0 rjmp .+10 ; 0x1209a <I2C_ReadBLConfig+0xfa>
12090: 83 e0 ldi r24, 0x03 ; 3
12092: 03 c0 rjmp .+6 ; 0x1209a <I2C_ReadBLConfig+0xfa>
12094: 84 e0 ldi r24, 0x04 ; 4
12096: 01 c0 rjmp .+2 ; 0x1209a <I2C_ReadBLConfig+0xfa>
12098: 80 e0 ldi r24, 0x00 ; 0
1209a: df 91 pop r29
1209c: cf 91 pop r28
1209e: 1f 91 pop r17
120a0: 0f 91 pop r16
120a2: 08 95 ret
 
000120a4 <__vector_22>:
120a4: 1f 92 push r1
120a6: 0f 92 push r0
120a8: 0f b6 in r0, 0x3f ; 63
120aa: 0f 92 push r0
120ac: 11 24 eor r1, r1
120ae: 0b b6 in r0, 0x3b ; 59
120b0: 0f 92 push r0
120b2: 2f 93 push r18
120b4: 8f 93 push r24
120b6: 9f 93 push r25
120b8: ef 93 push r30
120ba: ff 93 push r31
120bc: 80 91 b7 02 lds r24, 0x02B7
120c0: 81 11 cpse r24, r1
120c2: 1c c0 rjmp .+56 ; 0x120fc <__vector_22+0x58>
120c4: 80 91 e8 04 lds r24, 0x04E8
120c8: 90 91 e9 04 lds r25, 0x04E9
120cc: 01 96 adiw r24, 0x01 ; 1
120ce: 90 93 e9 04 sts 0x04E9, r25
120d2: 80 93 e8 04 sts 0x04E8, r24
120d6: fc 01 movw r30, r24
120d8: e9 5b subi r30, 0xB9 ; 185
120da: f4 4f sbci r31, 0xF4 ; 244
120dc: 20 81 ld r18, Z
120de: 2d 30 cpi r18, 0x0D ; 13
120e0: 19 f0 breq .+6 ; 0x120e8 <__vector_22+0x44>
120e2: 8c 3d cpi r24, 0xDC ; 220
120e4: 91 05 cpc r25, r1
120e6: 39 f4 brne .+14 ; 0x120f6 <__vector_22+0x52>
120e8: 10 92 e9 04 sts 0x04E9, r1
120ec: 10 92 e8 04 sts 0x04E8, r1
120f0: 81 e0 ldi r24, 0x01 ; 1
120f2: 80 93 b7 02 sts 0x02B7, r24
120f6: 20 93 c6 00 sts 0x00C6, r18
120fa: 04 c0 rjmp .+8 ; 0x12104 <__vector_22+0x60>
120fc: 10 92 e9 04 sts 0x04E9, r1
12100: 10 92 e8 04 sts 0x04E8, r1
12104: ff 91 pop r31
12106: ef 91 pop r30
12108: 9f 91 pop r25
1210a: 8f 91 pop r24
1210c: 2f 91 pop r18
1210e: 0f 90 pop r0
12110: 0b be out 0x3b, r0 ; 59
12112: 0f 90 pop r0
12114: 0f be out 0x3f, r0 ; 63
12116: 0f 90 pop r0
12118: 1f 90 pop r1
1211a: 18 95 reti
 
0001211c <__vector_20>:
1211c: 1f 92 push r1
1211e: 0f 92 push r0
12120: 0f b6 in r0, 0x3f ; 63
12122: 0f 92 push r0
12124: 11 24 eor r1, r1
12126: 0b b6 in r0, 0x3b ; 59
12128: 0f 92 push r0
1212a: 2f 93 push r18
1212c: 3f 93 push r19
1212e: 4f 93 push r20
12130: 5f 93 push r21
12132: 6f 93 push r22
12134: 7f 93 push r23
12136: 8f 93 push r24
12138: 9f 93 push r25
1213a: af 93 push r26
1213c: bf 93 push r27
1213e: cf 93 push r28
12140: df 93 push r29
12142: ef 93 push r30
12144: ff 93 push r31
12146: 80 91 ea 04 lds r24, 0x04EA
1214a: 81 30 cpi r24, 0x01 ; 1
1214c: 29 f4 brne .+10 ; 0x12158 <__vector_20+0x3c>
1214e: 80 91 c6 00 lds r24, 0x00C6
12152: 80 93 ce 00 sts 0x00CE, r24
12156: c5 c0 rjmp .+394 ; 0x122e2 <__vector_20+0x1c6>
12158: 80 91 ea 04 lds r24, 0x04EA
1215c: 82 30 cpi r24, 0x02 ; 2
1215e: 29 f4 brne .+10 ; 0x1216a <__vector_20+0x4e>
12160: 80 91 c6 00 lds r24, 0x00C6
12164: 80 93 69 0a sts 0x0A69, r24
12168: bc c0 rjmp .+376 ; 0x122e2 <__vector_20+0x1c6>
1216a: 80 91 c6 00 lds r24, 0x00C6
1216e: 80 93 fa 04 sts 0x04FA, r24
12172: 60 91 e7 04 lds r22, 0x04E7
12176: 6c 3d cpi r22, 0xDC ; 220
12178: 10 f0 brcs .+4 ; 0x1217e <__vector_20+0x62>
1217a: 10 92 e6 04 sts 0x04E6, r1
1217e: 90 91 fa 04 lds r25, 0x04FA
12182: 80 91 e6 04 lds r24, 0x04E6
12186: 9d 30 cpi r25, 0x0D ; 13
12188: 09 f0 breq .+2 ; 0x1218c <__vector_20+0x70>
1218a: 62 c0 rjmp .+196 ; 0x12250 <__vector_20+0x134>
1218c: 82 30 cpi r24, 0x02 ; 2
1218e: 09 f0 breq .+2 ; 0x12192 <__vector_20+0x76>
12190: 5f c0 rjmp .+190 ; 0x12250 <__vector_20+0x134>
12192: 10 92 e6 04 sts 0x04E6, r1
12196: 26 2f mov r18, r22
12198: 30 e0 ldi r19, 0x00 ; 0
1219a: e9 01 movw r28, r18
1219c: c9 59 subi r28, 0x99 ; 153
1219e: d5 4f sbci r29, 0xF5 ; 245
121a0: 58 81 ld r21, Y
121a2: d9 01 movw r26, r18
121a4: a8 59 subi r26, 0x98 ; 152
121a6: b5 4f sbci r27, 0xF5 ; 245
121a8: 4c 91 ld r20, X
121aa: 80 91 e4 04 lds r24, 0x04E4
121ae: 90 91 e5 04 lds r25, 0x04E5
121b2: 85 1b sub r24, r21
121b4: 91 09 sbc r25, r1
121b6: 84 1b sub r24, r20
121b8: 91 09 sbc r25, r1
121ba: 9f 70 andi r25, 0x0F ; 15
121bc: 90 93 e5 04 sts 0x04E5, r25
121c0: 80 93 e4 04 sts 0x04E4, r24
121c4: ac 01 movw r20, r24
121c6: 96 e0 ldi r25, 0x06 ; 6
121c8: 56 95 lsr r21
121ca: 47 95 ror r20
121cc: 9a 95 dec r25
121ce: e1 f7 brne .-8 ; 0x121c8 <__vector_20+0xac>
121d0: 43 5c subi r20, 0xC3 ; 195
121d2: 40 93 e3 04 sts 0x04E3, r20
121d6: 8f 73 andi r24, 0x3F ; 63
121d8: 83 5c subi r24, 0xC3 ; 195
121da: 80 93 e2 04 sts 0x04E2, r24
121de: 98 81 ld r25, Y
121e0: 49 13 cpse r20, r25
121e2: 03 c0 rjmp .+6 ; 0x121ea <__vector_20+0xce>
121e4: 9c 91 ld r25, X
121e6: 89 17 cp r24, r25
121e8: 39 f0 breq .+14 ; 0x121f8 <__vector_20+0xdc>
121ea: 80 91 f8 04 lds r24, 0x04F8
121ee: 8f 5f subi r24, 0xFF ; 255
121f0: 80 93 f8 04 sts 0x04F8, r24
121f4: 80 e0 ldi r24, 0x00 ; 0
121f6: 01 c0 rjmp .+2 ; 0x121fa <__vector_20+0xde>
121f8: 81 e0 ldi r24, 0x01 ; 1
121fa: 90 91 f9 04 lds r25, 0x04F9
121fe: 91 11 cpse r25, r1
12200: 70 c0 rjmp .+224 ; 0x122e2 <__vector_20+0x1c6>
12202: 88 23 and r24, r24
12204: 09 f4 brne .+2 ; 0x12208 <__vector_20+0xec>
12206: 6d c0 rjmp .+218 ; 0x122e2 <__vector_20+0x1c6>
12208: 81 e0 ldi r24, 0x01 ; 1
1220a: 80 93 f9 04 sts 0x04F9, r24
1220e: 6f 5f subi r22, 0xFF ; 255
12210: 60 93 f7 04 sts 0x04F7, r22
12214: f9 01 movw r30, r18
12216: e7 59 subi r30, 0x97 ; 151
12218: f5 4f sbci r31, 0xF5 ; 245
1221a: 8d e0 ldi r24, 0x0D ; 13
1221c: 80 83 st Z, r24
1221e: 80 91 6b 0a lds r24, 0x0A6B
12222: 82 35 cpi r24, 0x52 ; 82
12224: 09 f0 breq .+2 ; 0x12228 <__vector_20+0x10c>
12226: 5d c0 rjmp .+186 ; 0x122e2 <__vector_20+0x1c6>
12228: 80 91 01 04 lds r24, 0x0401
1222c: 81 11 cpse r24, r1
1222e: 59 c0 rjmp .+178 ; 0x122e2 <__vector_20+0x1c6>
12230: 0e 94 65 75 call 0xeaca ; 0xeaca <LcdClear>
12234: 2c e0 ldi r18, 0x0C ; 12
12236: 88 e1 ldi r24, 0x18 ; 24
12238: 90 e0 ldi r25, 0x00 ; 0
1223a: 0f b6 in r0, 0x3f ; 63
1223c: f8 94 cli
1223e: a8 95 wdr
12240: 80 93 60 00 sts 0x0060, r24
12244: 0f be out 0x3f, r0 ; 63
12246: 20 93 60 00 sts 0x0060, r18
1224a: 10 92 c9 04 sts 0x04C9, r1
1224e: 49 c0 rjmp .+146 ; 0x122e2 <__vector_20+0x1c6>
12250: 81 30 cpi r24, 0x01 ; 1
12252: d1 f0 breq .+52 ; 0x12288 <__vector_20+0x16c>
12254: 18 f0 brcs .+6 ; 0x1225c <__vector_20+0x140>
12256: 82 30 cpi r24, 0x02 ; 2
12258: 31 f1 breq .+76 ; 0x122a6 <__vector_20+0x18a>
1225a: 41 c0 rjmp .+130 ; 0x122de <__vector_20+0x1c2>
1225c: 80 91 fa 04 lds r24, 0x04FA
12260: 83 32 cpi r24, 0x23 ; 35
12262: 39 f4 brne .+14 ; 0x12272 <__vector_20+0x156>
12264: 80 91 f9 04 lds r24, 0x04F9
12268: 81 11 cpse r24, r1
1226a: 03 c0 rjmp .+6 ; 0x12272 <__vector_20+0x156>
1226c: 81 e0 ldi r24, 0x01 ; 1
1226e: 80 93 e6 04 sts 0x04E6, r24
12272: 81 e0 ldi r24, 0x01 ; 1
12274: 80 93 e7 04 sts 0x04E7, r24
12278: 80 91 fa 04 lds r24, 0x04FA
1227c: 80 93 69 0a sts 0x0A69, r24
12280: 80 91 fa 04 lds r24, 0x04FA
12284: 90 e0 ldi r25, 0x00 ; 0
12286: 26 c0 rjmp .+76 ; 0x122d4 <__vector_20+0x1b8>
12288: 82 e0 ldi r24, 0x02 ; 2
1228a: 80 93 e6 04 sts 0x04E6, r24
1228e: 81 e0 ldi r24, 0x01 ; 1
12290: 86 0f add r24, r22
12292: 80 93 e7 04 sts 0x04E7, r24
12296: e6 2f mov r30, r22
12298: f0 e0 ldi r31, 0x00 ; 0
1229a: 80 91 fa 04 lds r24, 0x04FA
1229e: e7 59 subi r30, 0x97 ; 151
122a0: f5 4f sbci r31, 0xF5 ; 245
122a2: 80 83 st Z, r24
122a4: 0f c0 rjmp .+30 ; 0x122c4 <__vector_20+0x1a8>
122a6: e6 2f mov r30, r22
122a8: f0 e0 ldi r31, 0x00 ; 0
122aa: 80 91 fa 04 lds r24, 0x04FA
122ae: e7 59 subi r30, 0x97 ; 151
122b0: f5 4f sbci r31, 0xF5 ; 245
122b2: 80 83 st Z, r24
122b4: 6c 3d cpi r22, 0xDC ; 220
122b6: 20 f4 brcc .+8 ; 0x122c0 <__vector_20+0x1a4>
122b8: 6f 5f subi r22, 0xFF ; 255
122ba: 60 93 e7 04 sts 0x04E7, r22
122be: 02 c0 rjmp .+4 ; 0x122c4 <__vector_20+0x1a8>
122c0: 10 92 e6 04 sts 0x04E6, r1
122c4: 20 91 fa 04 lds r18, 0x04FA
122c8: 80 91 e4 04 lds r24, 0x04E4
122cc: 90 91 e5 04 lds r25, 0x04E5
122d0: 82 0f add r24, r18
122d2: 91 1d adc r25, r1
122d4: 90 93 e5 04 sts 0x04E5, r25
122d8: 80 93 e4 04 sts 0x04E4, r24
122dc: 02 c0 rjmp .+4 ; 0x122e2 <__vector_20+0x1c6>
122de: 10 92 e6 04 sts 0x04E6, r1
122e2: ff 91 pop r31
122e4: ef 91 pop r30
122e6: df 91 pop r29
122e8: cf 91 pop r28
122ea: bf 91 pop r27
122ec: af 91 pop r26
122ee: 9f 91 pop r25
122f0: 8f 91 pop r24
122f2: 7f 91 pop r23
122f4: 6f 91 pop r22
122f6: 5f 91 pop r21
122f8: 4f 91 pop r20
122fa: 3f 91 pop r19
122fc: 2f 91 pop r18
122fe: 0f 90 pop r0
12300: 0b be out 0x3b, r0 ; 59
12302: 0f 90 pop r0
12304: 0f be out 0x3f, r0 ; 63
12306: 0f 90 pop r0
12308: 1f 90 pop r1
1230a: 18 95 reti
 
0001230c <AddCRC>:
1230c: 20 e0 ldi r18, 0x00 ; 0
1230e: 30 e0 ldi r19, 0x00 ; 0
12310: 40 e0 ldi r20, 0x00 ; 0
12312: 50 e0 ldi r21, 0x00 ; 0
12314: f9 01 movw r30, r18
12316: e9 5b subi r30, 0xB9 ; 185
12318: f4 4f sbci r31, 0xF4 ; 244
1231a: b9 01 movw r22, r18
1231c: 6f 5f subi r22, 0xFF ; 255
1231e: 7f 4f sbci r23, 0xFF ; 255
12320: 28 17 cp r18, r24
12322: 39 07 cpc r19, r25
12324: 29 f0 breq .+10 ; 0x12330 <AddCRC+0x24>
12326: 20 81 ld r18, Z
12328: 42 0f add r20, r18
1232a: 51 1d adc r21, r1
1232c: 9b 01 movw r18, r22
1232e: f2 cf rjmp .-28 ; 0x12314 <AddCRC+0x8>
12330: 5f 70 andi r21, 0x0F ; 15
12332: ca 01 movw r24, r20
12334: 56 e0 ldi r21, 0x06 ; 6
12336: 96 95 lsr r25
12338: 87 95 ror r24
1233a: 5a 95 dec r21
1233c: e1 f7 brne .-8 ; 0x12336 <AddCRC+0x2a>
1233e: 83 5c subi r24, 0xC3 ; 195
12340: 80 83 st Z, r24
12342: 4f 73 andi r20, 0x3F ; 63
12344: 43 5c subi r20, 0xC3 ; 195
12346: fb 01 movw r30, r22
12348: e9 5b subi r30, 0xB9 ; 185
1234a: f4 4f sbci r31, 0xF4 ; 244
1234c: 40 83 st Z, r20
1234e: f9 01 movw r30, r18
12350: e7 5b subi r30, 0xB7 ; 183
12352: f4 4f sbci r31, 0xF4 ; 244
12354: 8d e0 ldi r24, 0x0D ; 13
12356: 80 83 st Z, r24
12358: 10 92 b7 02 sts 0x02B7, r1
1235c: 80 91 47 0b lds r24, 0x0B47
12360: 80 93 c6 00 sts 0x00C6, r24
12364: 08 95 ret
 
00012366 <SendOutData>:
12366: cf 92 push r12
12368: df 92 push r13
1236a: ef 92 push r14
1236c: ff 92 push r15
1236e: 0f 93 push r16
12370: 1f 93 push r17
12372: cf 93 push r28
12374: df 93 push r29
12376: cd b7 in r28, 0x3d ; 61
12378: de b7 in r29, 0x3e ; 62
1237a: 8c 85 ldd r24, Y+12 ; 0x0c
1237c: 1d 85 ldd r17, Y+13 ; 0x0d
1237e: 93 e2 ldi r25, 0x23 ; 35
12380: 90 93 47 0b sts 0x0B47, r25
12384: 8f 59 subi r24, 0x9F ; 159
12386: 80 93 48 0b sts 0x0B48, r24
1238a: 8b 85 ldd r24, Y+11 ; 0x0b
1238c: 80 93 49 0b sts 0x0B49, r24
12390: fe 01 movw r30, r28
12392: 3e 96 adiw r30, 0x0e ; 14
12394: 11 23 and r17, r17
12396: 39 f0 breq .+14 ; 0x123a6 <SendOutData+0x40>
12398: 4e 85 ldd r20, Y+14 ; 0x0e
1239a: 5f 85 ldd r21, Y+15 ; 0x0f
1239c: 22 81 ldd r18, Z+2 ; 0x02
1239e: 33 81 ldd r19, Z+3 ; 0x03
123a0: 11 50 subi r17, 0x01 ; 1
123a2: 34 96 adiw r30, 0x04 ; 4
123a4: 04 c0 rjmp .+8 ; 0x123ae <SendOutData+0x48>
123a6: 20 e0 ldi r18, 0x00 ; 0
123a8: 30 e0 ldi r19, 0x00 ; 0
123aa: 40 e0 ldi r20, 0x00 ; 0
123ac: 50 e0 ldi r21, 0x00 ; 0
123ae: 00 e0 ldi r16, 0x00 ; 0
123b0: 83 e0 ldi r24, 0x03 ; 3
123b2: 90 e0 ldi r25, 0x00 ; 0
123b4: 21 15 cp r18, r1
123b6: 31 05 cpc r19, r1
123b8: 09 f4 brne .+2 ; 0x123bc <SendOutData+0x56>
123ba: 86 c0 rjmp .+268 ; 0x124c8 <SendOutData+0x162>
123bc: 71 e0 ldi r23, 0x01 ; 1
123be: 70 0f add r23, r16
123c0: da 01 movw r26, r20
123c2: a0 0f add r26, r16
123c4: b1 1d adc r27, r1
123c6: dc 90 ld r13, X
123c8: 21 50 subi r18, 0x01 ; 1
123ca: 31 09 sbc r19, r1
123cc: 21 15 cp r18, r1
123ce: 31 05 cpc r19, r1
123d0: 89 f4 brne .+34 ; 0x123f4 <SendOutData+0x8e>
123d2: 11 23 and r17, r17
123d4: 09 f4 brne .+2 ; 0x123d8 <SendOutData+0x72>
123d6: 82 c0 rjmp .+260 ; 0x124dc <SendOutData+0x176>
123d8: 40 81 ld r20, Z
123da: 51 81 ldd r21, Z+1 ; 0x01
123dc: bf 01 movw r22, r30
123de: 6c 5f subi r22, 0xFC ; 252
123e0: 7f 4f sbci r23, 0xFF ; 255
123e2: 22 81 ldd r18, Z+2 ; 0x02
123e4: 33 81 ldd r19, Z+3 ; 0x03
123e6: 11 50 subi r17, 0x01 ; 1
123e8: fb 01 movw r30, r22
123ea: 70 e0 ldi r23, 0x00 ; 0
123ec: 21 15 cp r18, r1
123ee: 31 05 cpc r19, r1
123f0: 09 f4 brne .+2 ; 0x123f4 <SendOutData+0x8e>
123f2: 74 c0 rjmp .+232 ; 0x124dc <SendOutData+0x176>
123f4: 61 e0 ldi r22, 0x01 ; 1
123f6: 67 0f add r22, r23
123f8: da 01 movw r26, r20
123fa: a7 0f add r26, r23
123fc: b1 1d adc r27, r1
123fe: fc 90 ld r15, X
12400: 21 50 subi r18, 0x01 ; 1
12402: 31 09 sbc r19, r1
12404: 21 15 cp r18, r1
12406: 31 05 cpc r19, r1
12408: 81 f4 brne .+32 ; 0x1242a <SendOutData+0xc4>
1240a: 11 23 and r17, r17
1240c: 09 f4 brne .+2 ; 0x12410 <SendOutData+0xaa>
1240e: 68 c0 rjmp .+208 ; 0x124e0 <SendOutData+0x17a>
12410: 40 81 ld r20, Z
12412: 51 81 ldd r21, Z+1 ; 0x01
12414: bf 01 movw r22, r30
12416: 6c 5f subi r22, 0xFC ; 252
12418: 7f 4f sbci r23, 0xFF ; 255
1241a: 22 81 ldd r18, Z+2 ; 0x02
1241c: 33 81 ldd r19, Z+3 ; 0x03
1241e: 11 50 subi r17, 0x01 ; 1
12420: fb 01 movw r30, r22
12422: 21 15 cp r18, r1
12424: 31 05 cpc r19, r1
12426: b1 f0 breq .+44 ; 0x12454 <SendOutData+0xee>
12428: 60 e0 ldi r22, 0x00 ; 0
1242a: 01 e0 ldi r16, 0x01 ; 1
1242c: 06 0f add r16, r22
1242e: da 01 movw r26, r20
12430: a6 0f add r26, r22
12432: b1 1d adc r27, r1
12434: ec 90 ld r14, X
12436: 21 50 subi r18, 0x01 ; 1
12438: 31 09 sbc r19, r1
1243a: 21 15 cp r18, r1
1243c: 31 05 cpc r19, r1
1243e: 61 f4 brne .+24 ; 0x12458 <SendOutData+0xf2>
12440: 11 23 and r17, r17
12442: 51 f0 breq .+20 ; 0x12458 <SendOutData+0xf2>
12444: 40 81 ld r20, Z
12446: 51 81 ldd r21, Z+1 ; 0x01
12448: 22 81 ldd r18, Z+2 ; 0x02
1244a: 33 81 ldd r19, Z+3 ; 0x03
1244c: 11 50 subi r17, 0x01 ; 1
1244e: 34 96 adiw r30, 0x04 ; 4
12450: 00 e0 ldi r16, 0x00 ; 0
12452: 02 c0 rjmp .+4 ; 0x12458 <SendOutData+0xf2>
12454: 00 e0 ldi r16, 0x00 ; 0
12456: e1 2c mov r14, r1
12458: 6d 2d mov r22, r13
1245a: 66 95 lsr r22
1245c: 66 95 lsr r22
1245e: 63 5c subi r22, 0xC3 ; 195
12460: dc 01 movw r26, r24
12462: a9 5b subi r26, 0xB9 ; 185
12464: b4 4f sbci r27, 0xF4 ; 244
12466: 6c 93 st X, r22
12468: 7f 2d mov r23, r15
1246a: 72 95 swap r23
1246c: 7f 70 andi r23, 0x0F ; 15
1246e: ad 2d mov r26, r13
12470: a3 70 andi r26, 0x03 ; 3
12472: 60 e1 ldi r22, 0x10 ; 16
12474: a6 9f mul r26, r22
12476: d0 01 movw r26, r0
12478: 11 24 eor r1, r1
1247a: 7a 2b or r23, r26
1247c: 73 5c subi r23, 0xC3 ; 195
1247e: dc 01 movw r26, r24
12480: a8 5b subi r26, 0xB8 ; 184
12482: b4 4f sbci r27, 0xF4 ; 244
12484: 7c 93 st X, r23
12486: 6c 01 movw r12, r24
12488: a3 e0 ldi r26, 0x03 ; 3
1248a: ca 0e add r12, r26
1248c: d1 1c adc r13, r1
1248e: 7f 2d mov r23, r15
12490: 7f 70 andi r23, 0x0F ; 15
12492: 64 e0 ldi r22, 0x04 ; 4
12494: 76 9f mul r23, r22
12496: d0 01 movw r26, r0
12498: 11 24 eor r1, r1
1249a: fe 2c mov r15, r14
1249c: f2 94 swap r15
1249e: f6 94 lsr r15
124a0: f6 94 lsr r15
124a2: 63 e0 ldi r22, 0x03 ; 3
124a4: f6 22 and r15, r22
124a6: fa 2a or r15, r26
124a8: ad e3 ldi r26, 0x3D ; 61
124aa: fa 0e add r15, r26
124ac: bc 01 movw r22, r24
124ae: 67 5b subi r22, 0xB7 ; 183
124b0: 74 4f sbci r23, 0xF4 ; 244
124b2: db 01 movw r26, r22
124b4: fc 92 st X, r15
124b6: 04 96 adiw r24, 0x04 ; 4
124b8: 6e 2d mov r22, r14
124ba: 6f 73 andi r22, 0x3F ; 63
124bc: 63 5c subi r22, 0xC3 ; 195
124be: d6 01 movw r26, r12
124c0: a9 5b subi r26, 0xB9 ; 185
124c2: b4 4f sbci r27, 0xF4 ; 244
124c4: 6c 93 st X, r22
124c6: 76 cf rjmp .-276 ; 0x123b4 <SendOutData+0x4e>
124c8: 21 df rcall .-446 ; 0x1230c <AddCRC>
124ca: df 91 pop r29
124cc: cf 91 pop r28
124ce: 1f 91 pop r17
124d0: 0f 91 pop r16
124d2: ff 90 pop r15
124d4: ef 90 pop r14
124d6: df 90 pop r13
124d8: cf 90 pop r12
124da: 08 95 ret
124dc: f1 2c mov r15, r1
124de: 01 c0 rjmp .+2 ; 0x124e2 <SendOutData+0x17c>
124e0: 76 2f mov r23, r22
124e2: 07 2f mov r16, r23
124e4: 20 e0 ldi r18, 0x00 ; 0
124e6: 30 e0 ldi r19, 0x00 ; 0
124e8: b6 cf rjmp .-148 ; 0x12456 <SendOutData+0xf0>
 
000124ea <Decode64>:
124ea: cf 93 push r28
124ec: df 93 push r29
124ee: 70 91 f7 04 lds r23, 0x04F7
124f2: 76 50 subi r23, 0x06 ; 6
124f4: 63 e0 ldi r22, 0x03 ; 3
124f6: c3 e0 ldi r28, 0x03 ; 3
124f8: 77 23 and r23, r23
124fa: 09 f4 brne .+2 ; 0x124fe <Decode64+0x14>
124fc: 4c c0 rjmp .+152 ; 0x12596 <Decode64+0xac>
124fe: ec 2f mov r30, r28
12500: f0 e0 ldi r31, 0x00 ; 0
12502: e7 59 subi r30, 0x97 ; 151
12504: f5 4f sbci r31, 0xF5 ; 245
12506: 40 81 ld r20, Z
12508: e1 e0 ldi r30, 0x01 ; 1
1250a: ec 0f add r30, r28
1250c: f0 e0 ldi r31, 0x00 ; 0
1250e: e7 59 subi r30, 0x97 ; 151
12510: f5 4f sbci r31, 0xF5 ; 245
12512: 20 81 ld r18, Z
12514: 2d 53 subi r18, 0x3D ; 61
12516: e2 e0 ldi r30, 0x02 ; 2
12518: ec 0f add r30, r28
1251a: f0 e0 ldi r31, 0x00 ; 0
1251c: e7 59 subi r30, 0x97 ; 151
1251e: f5 4f sbci r31, 0xF5 ; 245
12520: 80 81 ld r24, Z
12522: 8d 53 subi r24, 0x3D ; 61
12524: e3 e0 ldi r30, 0x03 ; 3
12526: ec 0f add r30, r28
12528: f0 e0 ldi r31, 0x00 ; 0
1252a: cc 5f subi r28, 0xFC ; 252
1252c: e7 59 subi r30, 0x97 ; 151
1252e: f5 4f sbci r31, 0xF5 ; 245
12530: d0 81 ld r29, Z
12532: b2 2f mov r27, r18
12534: b2 95 swap r27
12536: bf 70 andi r27, 0x0F ; 15
12538: 4d 53 subi r20, 0x3D ; 61
1253a: 94 e0 ldi r25, 0x04 ; 4
1253c: 49 9f mul r20, r25
1253e: a0 01 movw r20, r0
12540: 11 24 eor r1, r1
12542: b4 2b or r27, r20
12544: 90 e1 ldi r25, 0x10 ; 16
12546: 29 9f mul r18, r25
12548: 90 01 movw r18, r0
1254a: 11 24 eor r1, r1
1254c: 38 2f mov r19, r24
1254e: 36 95 lsr r19
12550: 36 95 lsr r19
12552: 32 2b or r19, r18
12554: 20 e4 ldi r18, 0x40 ; 64
12556: 82 9f mul r24, r18
12558: c0 01 movw r24, r0
1255a: 11 24 eor r1, r1
1255c: dd 53 subi r29, 0x3D ; 61
1255e: d8 2b or r29, r24
12560: a1 e0 ldi r26, 0x01 ; 1
12562: a6 0f add r26, r22
12564: e6 2f mov r30, r22
12566: f0 e0 ldi r31, 0x00 ; 0
12568: e7 59 subi r30, 0x97 ; 151
1256a: f5 4f sbci r31, 0xF5 ; 245
1256c: b0 83 st Z, r27
1256e: 71 30 cpi r23, 0x01 ; 1
12570: 79 f0 breq .+30 ; 0x12590 <Decode64+0xa6>
12572: e2 e0 ldi r30, 0x02 ; 2
12574: e6 0f add r30, r22
12576: b0 e0 ldi r27, 0x00 ; 0
12578: a7 59 subi r26, 0x97 ; 151
1257a: b5 4f sbci r27, 0xF5 ; 245
1257c: 3c 93 st X, r19
1257e: 72 30 cpi r23, 0x02 ; 2
12580: 49 f0 breq .+18 ; 0x12594 <Decode64+0xaa>
12582: 6d 5f subi r22, 0xFD ; 253
12584: f0 e0 ldi r31, 0x00 ; 0
12586: e7 59 subi r30, 0x97 ; 151
12588: f5 4f sbci r31, 0xF5 ; 245
1258a: d0 83 st Z, r29
1258c: 73 50 subi r23, 0x03 ; 3
1258e: b4 cf rjmp .-152 ; 0x124f8 <Decode64+0xe>
12590: 6a 2f mov r22, r26
12592: 01 c0 rjmp .+2 ; 0x12596 <Decode64+0xac>
12594: 6e 2f mov r22, r30
12596: 8c e6 ldi r24, 0x6C ; 108
12598: 9a e0 ldi r25, 0x0A ; 10
1259a: 90 93 f6 04 sts 0x04F6, r25
1259e: 80 93 f5 04 sts 0x04F5, r24
125a2: 63 50 subi r22, 0x03 ; 3
125a4: 60 93 f4 04 sts 0x04F4, r22
125a8: df 91 pop r29
125aa: cf 91 pop r28
125ac: 08 95 ret
 
000125ae <BearbeiteRxDaten>:
125ae: 1f 93 push r17
125b0: cf 93 push r28
125b2: df 93 push r29
125b4: 00 d0 rcall .+0 ; 0x125b6 <BearbeiteRxDaten+0x8>
125b6: cd b7 in r28, 0x3d ; 61
125b8: de b7 in r29, 0x3e ; 62
125ba: 80 91 f9 04 lds r24, 0x04F9
125be: 88 23 and r24, r24
125c0: 09 f4 brne .+2 ; 0x125c4 <BearbeiteRxDaten+0x16>
125c2: b4 c3 rjmp .+1896 ; 0x12d2c <BearbeiteRxDaten+0x77e>
125c4: 92 df rcall .-220 ; 0x124ea <Decode64>
125c6: 80 91 6a 0a lds r24, 0x0A6A
125ca: 82 36 cpi r24, 0x62 ; 98
125cc: 09 f0 breq .+2 ; 0x125d0 <BearbeiteRxDaten+0x22>
125ce: 8b c2 rjmp .+1302 ; 0x12ae6 <BearbeiteRxDaten+0x538>
125d0: 80 91 6b 0a lds r24, 0x0A6B
125d4: 80 37 cpi r24, 0x70 ; 112
125d6: 09 f4 brne .+2 ; 0x125da <BearbeiteRxDaten+0x2c>
125d8: 8a c0 rjmp .+276 ; 0x126ee <BearbeiteRxDaten+0x140>
125da: 88 f4 brcc .+34 ; 0x125fe <BearbeiteRxDaten+0x50>
125dc: 8a 36 cpi r24, 0x6A ; 106
125de: 09 f4 brne .+2 ; 0x125e2 <BearbeiteRxDaten+0x34>
125e0: f1 c1 rjmp .+994 ; 0x129c4 <BearbeiteRxDaten+0x416>
125e2: 30 f4 brcc .+12 ; 0x125f0 <BearbeiteRxDaten+0x42>
125e4: 8b 34 cpi r24, 0x4B ; 75
125e6: f9 f0 breq .+62 ; 0x12626 <BearbeiteRxDaten+0x78>
125e8: 86 36 cpi r24, 0x66 ; 102
125ea: 09 f4 brne .+2 ; 0x125ee <BearbeiteRxDaten+0x40>
125ec: 2d c1 rjmp .+602 ; 0x12848 <BearbeiteRxDaten+0x29a>
125ee: 7b c2 rjmp .+1270 ; 0x12ae6 <BearbeiteRxDaten+0x538>
125f0: 8d 36 cpi r24, 0x6D ; 109
125f2: 09 f4 brne .+2 ; 0x125f6 <BearbeiteRxDaten+0x48>
125f4: 53 c0 rjmp .+166 ; 0x1269c <BearbeiteRxDaten+0xee>
125f6: 8e 36 cpi r24, 0x6E ; 110
125f8: 09 f4 brne .+2 ; 0x125fc <BearbeiteRxDaten+0x4e>
125fa: 40 c0 rjmp .+128 ; 0x1267c <BearbeiteRxDaten+0xce>
125fc: 74 c2 rjmp .+1256 ; 0x12ae6 <BearbeiteRxDaten+0x538>
125fe: 84 37 cpi r24, 0x74 ; 116
12600: e9 f0 breq .+58 ; 0x1263c <BearbeiteRxDaten+0x8e>
12602: 38 f4 brcc .+14 ; 0x12612 <BearbeiteRxDaten+0x64>
12604: 81 37 cpi r24, 0x71 ; 113
12606: 09 f4 brne .+2 ; 0x1260a <BearbeiteRxDaten+0x5c>
12608: 79 c0 rjmp .+242 ; 0x126fc <BearbeiteRxDaten+0x14e>
1260a: 83 37 cpi r24, 0x73 ; 115
1260c: 09 f4 brne .+2 ; 0x12610 <BearbeiteRxDaten+0x62>
1260e: d2 c0 rjmp .+420 ; 0x127b4 <BearbeiteRxDaten+0x206>
12610: 6a c2 rjmp .+1236 ; 0x12ae6 <BearbeiteRxDaten+0x538>
12612: 87 37 cpi r24, 0x77 ; 119
12614: 09 f4 brne .+2 ; 0x12618 <BearbeiteRxDaten+0x6a>
12616: 9e c1 rjmp .+828 ; 0x12954 <BearbeiteRxDaten+0x3a6>
12618: 89 37 cpi r24, 0x79 ; 121
1261a: 09 f4 brne .+2 ; 0x1261e <BearbeiteRxDaten+0x70>
1261c: 4d c1 rjmp .+666 ; 0x128b8 <BearbeiteRxDaten+0x30a>
1261e: 85 37 cpi r24, 0x75 ; 117
12620: 09 f0 breq .+2 ; 0x12624 <BearbeiteRxDaten+0x76>
12622: 61 c2 rjmp .+1218 ; 0x12ae6 <BearbeiteRxDaten+0x538>
12624: 64 c1 rjmp .+712 ; 0x128ee <BearbeiteRxDaten+0x340>
12626: e0 91 f5 04 lds r30, 0x04F5
1262a: f0 91 f6 04 lds r31, 0x04F6
1262e: 80 81 ld r24, Z
12630: 91 81 ldd r25, Z+1 ; 0x01
12632: 90 93 4f 01 sts 0x014F, r25
12636: 80 93 4e 01 sts 0x014E, r24
1263a: 55 c2 rjmp .+1194 ; 0x12ae6 <BearbeiteRxDaten+0x538>
1263c: 80 91 f7 04 lds r24, 0x04F7
12640: e0 91 f5 04 lds r30, 0x04F5
12644: f0 91 f6 04 lds r31, 0x04F6
12648: 85 31 cpi r24, 0x15 ; 21
1264a: 40 f0 brcs .+16 ; 0x1265c <BearbeiteRxDaten+0xae>
1264c: 80 e1 ldi r24, 0x10 ; 16
1264e: a4 e4 ldi r26, 0x44 ; 68
12650: ba e0 ldi r27, 0x0A ; 10
12652: 01 90 ld r0, Z+
12654: 0d 92 st X+, r0
12656: 8a 95 dec r24
12658: e1 f7 brne .-8 ; 0x12652 <BearbeiteRxDaten+0xa4>
1265a: 0c c0 rjmp .+24 ; 0x12674 <BearbeiteRxDaten+0xc6>
1265c: 80 81 ld r24, Z
1265e: 91 81 ldd r25, Z+1 ; 0x01
12660: a2 81 ldd r26, Z+2 ; 0x02
12662: b3 81 ldd r27, Z+3 ; 0x03
12664: 80 93 44 0a sts 0x0A44, r24
12668: 90 93 45 0a sts 0x0A45, r25
1266c: a0 93 46 0a sts 0x0A46, r26
12670: b0 93 47 0a sts 0x0A47, r27
12674: 80 ef ldi r24, 0xF0 ; 240
12676: 80 93 f3 04 sts 0x04F3, r24
1267a: 3c c0 rjmp .+120 ; 0x126f4 <BearbeiteRxDaten+0x146>
1267c: 80 91 b7 02 lds r24, 0x02B7
12680: 88 23 and r24, r24
12682: e1 f3 breq .-8 ; 0x1267c <BearbeiteRxDaten+0xce>
12684: 1f 92 push r1
12686: 8d e4 ldi r24, 0x4D ; 77
12688: 8f 93 push r24
1268a: 84 ea ldi r24, 0xA4 ; 164
1268c: 95 e0 ldi r25, 0x05 ; 5
1268e: 9f 93 push r25
12690: 8f 93 push r24
12692: 81 e0 ldi r24, 0x01 ; 1
12694: 8f 93 push r24
12696: 8f 93 push r24
12698: 8e e4 ldi r24, 0x4E ; 78
1269a: 26 c0 rjmp .+76 ; 0x126e8 <BearbeiteRxDaten+0x13a>
1269c: e0 91 f5 04 lds r30, 0x04F5
126a0: f0 91 f6 04 lds r31, 0x04F6
126a4: 10 81 ld r17, Z
126a6: 11 30 cpi r17, 0x01 ; 1
126a8: 81 f4 brne .+32 ; 0x126ca <BearbeiteRxDaten+0x11c>
126aa: 8d e4 ldi r24, 0x4D ; 77
126ac: a4 ea ldi r26, 0xA4 ; 164
126ae: b5 e0 ldi r27, 0x05 ; 5
126b0: 01 90 ld r0, Z+
126b2: 0d 92 st X+, r0
126b4: 8a 95 dec r24
126b6: e1 f7 brne .-8 ; 0x126b0 <BearbeiteRxDaten+0x102>
126b8: 0e 94 a7 23 call 0x474e ; 0x474e <MixerTable_WriteToEEProm>
126bc: 1a 83 std Y+2, r17 ; 0x02
126be: 80 91 40 0a lds r24, 0x0A40
126c2: 8f 7e andi r24, 0xEF ; 239
126c4: 80 93 40 0a sts 0x0A40, r24
126c8: 01 c0 rjmp .+2 ; 0x126cc <BearbeiteRxDaten+0x11e>
126ca: 1a 82 std Y+2, r1 ; 0x02
126cc: 80 91 b7 02 lds r24, 0x02B7
126d0: 88 23 and r24, r24
126d2: e1 f3 breq .-8 ; 0x126cc <BearbeiteRxDaten+0x11e>
126d4: 1f 92 push r1
126d6: 21 e0 ldi r18, 0x01 ; 1
126d8: 2f 93 push r18
126da: ce 01 movw r24, r28
126dc: 02 96 adiw r24, 0x02 ; 2
126de: 9f 93 push r25
126e0: 8f 93 push r24
126e2: 2f 93 push r18
126e4: 2f 93 push r18
126e6: 8d e4 ldi r24, 0x4D ; 77
126e8: 8f 93 push r24
126ea: 3d de rcall .-902 ; 0x12366 <SendOutData>
126ec: 65 c1 rjmp .+714 ; 0x129b8 <BearbeiteRxDaten+0x40a>
126ee: 81 e0 ldi r24, 0x01 ; 1
126f0: 80 93 fc 04 sts 0x04FC, r24
126f4: 8f ef ldi r24, 0xFF ; 255
126f6: 80 93 b5 02 sts 0x02B5, r24
126fa: f5 c1 rjmp .+1002 ; 0x12ae6 <BearbeiteRxDaten+0x538>
126fc: 80 91 01 04 lds r24, 0x0401
12700: 81 11 cpse r24, r1
12702: 3e c0 rjmp .+124 ; 0x12780 <BearbeiteRxDaten+0x1d2>
12704: e0 91 f5 04 lds r30, 0x04F5
12708: f0 91 f6 04 lds r31, 0x04F6
1270c: 80 81 ld r24, Z
1270e: 96 ef ldi r25, 0xF6 ; 246
12710: 98 0f add r25, r24
12712: 9a 30 cpi r25, 0x0A ; 10
12714: 60 f4 brcc .+24 ; 0x1272e <BearbeiteRxDaten+0x180>
12716: 91 11 cpse r25, r1
12718: 02 c0 rjmp .+4 ; 0x1271e <BearbeiteRxDaten+0x170>
1271a: 81 e0 ldi r24, 0x01 ; 1
1271c: 05 c0 rjmp .+10 ; 0x12728 <BearbeiteRxDaten+0x17a>
1271e: 96 30 cpi r25, 0x06 ; 6
12720: 10 f4 brcc .+4 ; 0x12726 <BearbeiteRxDaten+0x178>
12722: 9a 83 std Y+2, r25 ; 0x02
12724: 02 c0 rjmp .+4 ; 0x1272a <BearbeiteRxDaten+0x17c>
12726: 85 e0 ldi r24, 0x05 ; 5
12728: 8a 83 std Y+2, r24 ; 0x02
1272a: 61 e0 ldi r22, 0x01 ; 1
1272c: 0f c0 rjmp .+30 ; 0x1274c <BearbeiteRxDaten+0x19e>
1272e: 9c ee ldi r25, 0xEC ; 236
12730: 98 0f add r25, r24
12732: 9a 30 cpi r25, 0x0A ; 10
12734: 78 f4 brcc .+30 ; 0x12754 <BearbeiteRxDaten+0x1a6>
12736: 91 11 cpse r25, r1
12738: 02 c0 rjmp .+4 ; 0x1273e <BearbeiteRxDaten+0x190>
1273a: 81 e0 ldi r24, 0x01 ; 1
1273c: 05 c0 rjmp .+10 ; 0x12748 <BearbeiteRxDaten+0x19a>
1273e: 96 30 cpi r25, 0x06 ; 6
12740: 10 f4 brcc .+4 ; 0x12746 <BearbeiteRxDaten+0x198>
12742: 9a 83 std Y+2, r25 ; 0x02
12744: 02 c0 rjmp .+4 ; 0x1274a <BearbeiteRxDaten+0x19c>
12746: 85 e0 ldi r24, 0x05 ; 5
12748: 8a 83 std Y+2, r24 ; 0x02
1274a: 60 e0 ldi r22, 0x00 ; 0
1274c: 8a 81 ldd r24, Y+2 ; 0x02
1274e: 0e 94 71 24 call 0x48e2 ; 0x48e2 <SetDefaultParameter>
12752: 12 c0 rjmp .+36 ; 0x12778 <BearbeiteRxDaten+0x1ca>
12754: 8a 83 std Y+2, r24 ; 0x02
12756: 8f 3f cpi r24, 0xFF ; 255
12758: 19 f4 brne .+6 ; 0x12760 <BearbeiteRxDaten+0x1b2>
1275a: 0e 94 03 24 call 0x4806 ; 0x4806 <GetActiveParamSet>
1275e: 8a 83 std Y+2, r24 ; 0x02
12760: 8a 81 ldd r24, Y+2 ; 0x02
12762: 81 11 cpse r24, r1
12764: 02 c0 rjmp .+4 ; 0x1276a <BearbeiteRxDaten+0x1bc>
12766: 81 e0 ldi r24, 0x01 ; 1
12768: 03 c0 rjmp .+6 ; 0x12770 <BearbeiteRxDaten+0x1c2>
1276a: 86 30 cpi r24, 0x06 ; 6
1276c: 10 f0 brcs .+4 ; 0x12772 <BearbeiteRxDaten+0x1c4>
1276e: 85 e0 ldi r24, 0x05 ; 5
12770: 8a 83 std Y+2, r24 ; 0x02
12772: 8a 81 ldd r24, Y+2 ; 0x02
12774: 0e 94 4b 23 call 0x4696 ; 0x4696 <ParamSet_ReadFromEEProm>
12778: 80 e0 ldi r24, 0x00 ; 0
1277a: 0e 94 6b 51 call 0xa2d6 ; 0xa2d6 <LipoDetection>
1277e: 03 c0 rjmp .+6 ; 0x12786 <BearbeiteRxDaten+0x1d8>
12780: 0e 94 03 24 call 0x4806 ; 0x4806 <GetActiveParamSet>
12784: 8a 83 std Y+2, r24 ; 0x02
12786: 80 91 b7 02 lds r24, 0x02B7
1278a: 88 23 and r24, r24
1278c: e1 f3 breq .-8 ; 0x12786 <BearbeiteRxDaten+0x1d8>
1278e: 1f 92 push r1
12790: 88 e8 ldi r24, 0x88 ; 136
12792: 8f 93 push r24
12794: 8b e1 ldi r24, 0x1B ; 27
12796: 95 e0 ldi r25, 0x05 ; 5
12798: 9f 93 push r25
1279a: 8f 93 push r24
1279c: 1f 92 push r1
1279e: 21 e0 ldi r18, 0x01 ; 1
127a0: 2f 93 push r18
127a2: ce 01 movw r24, r28
127a4: 02 96 adiw r24, 0x02 ; 2
127a6: 9f 93 push r25
127a8: 8f 93 push r24
127aa: 82 e0 ldi r24, 0x02 ; 2
127ac: 8f 93 push r24
127ae: 2f 93 push r18
127b0: 81 e5 ldi r24, 0x51 ; 81
127b2: 00 c1 rjmp .+512 ; 0x129b4 <BearbeiteRxDaten+0x406>
127b4: 80 91 f5 04 lds r24, 0x04F5
127b8: 90 91 f6 04 lds r25, 0x04F6
127bc: fc 01 movw r30, r24
127be: 20 81 ld r18, Z
127c0: 21 50 subi r18, 0x01 ; 1
127c2: 25 30 cpi r18, 0x05 ; 5
127c4: 88 f5 brcc .+98 ; 0x12828 <BearbeiteRxDaten+0x27a>
127c6: 21 81 ldd r18, Z+1 ; 0x01
127c8: 27 36 cpi r18, 0x67 ; 103
127ca: 71 f5 brne .+92 ; 0x12828 <BearbeiteRxDaten+0x27a>
127cc: 20 91 01 04 lds r18, 0x0401
127d0: 21 11 cpse r18, r1
127d2: 2a c0 rjmp .+84 ; 0x12828 <BearbeiteRxDaten+0x27a>
127d4: 31 96 adiw r30, 0x01 ; 1
127d6: 28 e8 ldi r18, 0x88 ; 136
127d8: ab e1 ldi r26, 0x1B ; 27
127da: b5 e0 ldi r27, 0x05 ; 5
127dc: 01 90 ld r0, Z+
127de: 0d 92 st X+, r0
127e0: 2a 95 dec r18
127e2: e1 f7 brne .-8 ; 0x127dc <BearbeiteRxDaten+0x22e>
127e4: fc 01 movw r30, r24
127e6: 80 81 ld r24, Z
127e8: 0e 94 20 24 call 0x4840 ; 0x4840 <ParamSet_WriteToEEProm>
127ec: 20 91 5c 05 lds r18, 0x055C
127f0: 30 e0 ldi r19, 0x00 ; 0
127f2: a4 ec ldi r26, 0xC4 ; 196
127f4: b9 e0 ldi r27, 0x09 ; 9
127f6: 34 d7 rcall .+3688 ; 0x13660 <__umulhisi3>
127f8: 60 93 46 01 sts 0x0146, r22
127fc: 70 93 47 01 sts 0x0147, r23
12800: 80 93 48 01 sts 0x0148, r24
12804: 90 93 49 01 sts 0x0149, r25
12808: 20 91 5d 05 lds r18, 0x055D
1280c: 30 e0 ldi r19, 0x00 ; 0
1280e: 28 d7 rcall .+3664 ; 0x13660 <__umulhisi3>
12810: 60 93 42 01 sts 0x0142, r22
12814: 70 93 43 01 sts 0x0143, r23
12818: 80 93 44 01 sts 0x0144, r24
1281c: 90 93 45 01 sts 0x0145, r25
12820: 0e 94 03 24 call 0x4806 ; 0x4806 <GetActiveParamSet>
12824: 8a 83 std Y+2, r24 ; 0x02
12826: 01 c0 rjmp .+2 ; 0x1282a <BearbeiteRxDaten+0x27c>
12828: 1a 82 std Y+2, r1 ; 0x02
1282a: 80 91 b7 02 lds r24, 0x02B7
1282e: 88 23 and r24, r24
12830: e1 f3 breq .-8 ; 0x1282a <BearbeiteRxDaten+0x27c>
12832: 1f 92 push r1
12834: 21 e0 ldi r18, 0x01 ; 1
12836: 2f 93 push r18
12838: ce 01 movw r24, r28
1283a: 02 96 adiw r24, 0x02 ; 2
1283c: 9f 93 push r25
1283e: 8f 93 push r24
12840: 2f 93 push r18
12842: 2f 93 push r18
12844: 83 e5 ldi r24, 0x53 ; 83
12846: 20 c0 rjmp .+64 ; 0x12888 <BearbeiteRxDaten+0x2da>
12848: 80 91 01 04 lds r24, 0x0401
1284c: 81 11 cpse r24, r1
1284e: 4b c1 rjmp .+662 ; 0x12ae6 <BearbeiteRxDaten+0x538>
12850: e0 91 f5 04 lds r30, 0x04F5
12854: f0 91 f6 04 lds r31, 0x04F6
12858: 80 81 ld r24, Z
1285a: 9f ef ldi r25, 0xFF ; 255
1285c: 98 0f add r25, r24
1285e: 95 30 cpi r25, 0x05 ; 5
12860: 10 f4 brcc .+4 ; 0x12866 <BearbeiteRxDaten+0x2b8>
12862: 0e 94 4b 23 call 0x4696 ; 0x4696 <ParamSet_ReadFromEEProm>
12866: 0e 94 03 24 call 0x4806 ; 0x4806 <GetActiveParamSet>
1286a: 8a 83 std Y+2, r24 ; 0x02
1286c: 80 91 b7 02 lds r24, 0x02B7
12870: 88 23 and r24, r24
12872: e1 f3 breq .-8 ; 0x1286c <BearbeiteRxDaten+0x2be>
12874: 1f 92 push r1
12876: 21 e0 ldi r18, 0x01 ; 1
12878: 2f 93 push r18
1287a: ce 01 movw r24, r28
1287c: 02 96 adiw r24, 0x02 ; 2
1287e: 9f 93 push r25
12880: 8f 93 push r24
12882: 2f 93 push r18
12884: 2f 93 push r18
12886: 86 e4 ldi r24, 0x46 ; 70
12888: 8f 93 push r24
1288a: 6d dd rcall .-1318 ; 0x12366 <SendOutData>
1288c: 0f b6 in r0, 0x3f ; 63
1288e: f8 94 cli
12890: de bf out 0x3e, r29 ; 62
12892: 0f be out 0x3f, r0 ; 63
12894: cd bf out 0x3d, r28 ; 61
12896: 80 91 01 04 lds r24, 0x0401
1289a: 81 11 cpse r24, r1
1289c: 08 c0 rjmp .+16 ; 0x128ae <BearbeiteRxDaten+0x300>
1289e: 6e e6 ldi r22, 0x6E ; 110
128a0: 70 e0 ldi r23, 0x00 ; 0
128a2: 8a 81 ldd r24, Y+2 ; 0x02
128a4: 0e 94 9f 26 call 0x4d3e ; 0x4d3e <Piep>
128a8: 80 e0 ldi r24, 0x00 ; 0
128aa: 0e 94 6b 51 call 0xa2d6 ; 0xa2d6 <LipoDetection>
128ae: 80 91 42 05 lds r24, 0x0542
128b2: 0e 94 d8 17 call 0x2fb0 ; 0x2fb0 <LIBFC_ReceiverInit>
128b6: 17 c1 rjmp .+558 ; 0x12ae6 <BearbeiteRxDaten+0x538>
128b8: 1a 82 std Y+2, r1 ; 0x02
128ba: 80 91 f5 04 lds r24, 0x04F5
128be: 90 91 f6 04 lds r25, 0x04F6
128c2: 4a 81 ldd r20, Y+2 ; 0x02
128c4: 4c 30 cpi r20, 0x0C ; 12
128c6: 08 f0 brcs .+2 ; 0x128ca <BearbeiteRxDaten+0x31c>
128c8: 0e c1 rjmp .+540 ; 0x12ae6 <BearbeiteRxDaten+0x538>
128ca: e4 2f mov r30, r20
128cc: f0 e0 ldi r31, 0x00 ; 0
128ce: dc 01 movw r26, r24
128d0: ae 0f add r26, r30
128d2: bf 1f adc r27, r31
128d4: 2c 91 ld r18, X
128d6: 33 27 eor r19, r19
128d8: 27 fd sbrc r18, 7
128da: 30 95 com r19
128dc: ee 0f add r30, r30
128de: ff 1f adc r31, r31
128e0: e0 5d subi r30, 0xD0 ; 208
128e2: f7 4f sbci r31, 0xF7 ; 247
128e4: 31 83 std Z+1, r19 ; 0x01
128e6: 20 83 st Z, r18
128e8: 4f 5f subi r20, 0xFF ; 255
128ea: 4a 83 std Y+2, r20 ; 0x02
128ec: ea cf rjmp .-44 ; 0x128c2 <BearbeiteRxDaten+0x314>
128ee: e0 91 f5 04 lds r30, 0x04F5
128f2: f0 91 f6 04 lds r31, 0x04F6
128f6: 80 81 ld r24, Z
128f8: 53 db rcall .-2394 ; 0x11fa0 <I2C_ReadBLConfig>
128fa: 89 83 std Y+1, r24 ; 0x01
128fc: 81 11 cpse r24, r1
128fe: 03 c0 rjmp .+6 ; 0x12906 <BearbeiteRxDaten+0x358>
12900: 81 e0 ldi r24, 0x01 ; 1
12902: 8a 83 std Y+2, r24 ; 0x02
12904: 01 c0 rjmp .+2 ; 0x12908 <BearbeiteRxDaten+0x35a>
12906: 1a 82 std Y+2, r1 ; 0x02
12908: 80 91 b7 02 lds r24, 0x02B7
1290c: 88 23 and r24, r24
1290e: e1 f3 breq .-8 ; 0x12908 <BearbeiteRxDaten+0x35a>
12910: 1f 92 push r1
12912: 88 e0 ldi r24, 0x08 ; 8
12914: 8f 93 push r24
12916: 8c e6 ldi r24, 0x6C ; 108
12918: 99 e0 ldi r25, 0x09 ; 9
1291a: 9f 93 push r25
1291c: 8f 93 push r24
1291e: 1f 92 push r1
12920: 21 e0 ldi r18, 0x01 ; 1
12922: 2f 93 push r18
12924: 80 91 f6 04 lds r24, 0x04F6
12928: 8f 93 push r24
1292a: 80 91 f5 04 lds r24, 0x04F5
1292e: 8f 93 push r24
12930: 1f 92 push r1
12932: 2f 93 push r18
12934: ce 01 movw r24, r28
12936: 01 96 adiw r24, 0x01 ; 1
12938: 9f 93 push r25
1293a: 8f 93 push r24
1293c: 1f 92 push r1
1293e: 2f 93 push r18
12940: 01 96 adiw r24, 0x01 ; 1
12942: 9f 93 push r25
12944: 8f 93 push r24
12946: 84 e0 ldi r24, 0x04 ; 4
12948: 8f 93 push r24
1294a: 2f 93 push r18
1294c: 85 e5 ldi r24, 0x55 ; 85
1294e: 8f 93 push r24
12950: 0a dd rcall .-1516 ; 0x12366 <SendOutData>
12952: 32 c0 rjmp .+100 ; 0x129b8 <BearbeiteRxDaten+0x40a>
12954: 80 91 f4 04 lds r24, 0x04F4
12958: 89 30 cpi r24, 0x09 ; 9
1295a: 08 f4 brcc .+2 ; 0x1295e <BearbeiteRxDaten+0x3b0>
1295c: c4 c0 rjmp .+392 ; 0x12ae6 <BearbeiteRxDaten+0x538>
1295e: 80 91 f5 04 lds r24, 0x04F5
12962: 90 91 f6 04 lds r25, 0x04F6
12966: 28 e0 ldi r18, 0x08 ; 8
12968: fc 01 movw r30, r24
1296a: 31 96 adiw r30, 0x01 ; 1
1296c: ac e6 ldi r26, 0x6C ; 108
1296e: b9 e0 ldi r27, 0x09 ; 9
12970: 01 90 ld r0, Z+
12972: 0d 92 st X+, r0
12974: 2a 95 dec r18
12976: e1 f7 brne .-8 ; 0x12970 <BearbeiteRxDaten+0x3c2>
12978: fc 01 movw r30, r24
1297a: 80 81 ld r24, Z
1297c: 72 da rcall .-2844 ; 0x11e62 <I2C_WriteBLConfig>
1297e: 89 83 std Y+1, r24 ; 0x01
12980: 81 11 cpse r24, r1
12982: 03 c0 rjmp .+6 ; 0x1298a <BearbeiteRxDaten+0x3dc>
12984: 81 e0 ldi r24, 0x01 ; 1
12986: 8a 83 std Y+2, r24 ; 0x02
12988: 01 c0 rjmp .+2 ; 0x1298c <BearbeiteRxDaten+0x3de>
1298a: 1a 82 std Y+2, r1 ; 0x02
1298c: 80 91 b7 02 lds r24, 0x02B7
12990: 88 23 and r24, r24
12992: e1 f3 breq .-8 ; 0x1298c <BearbeiteRxDaten+0x3de>
12994: 1f 92 push r1
12996: 21 e0 ldi r18, 0x01 ; 1
12998: 2f 93 push r18
1299a: ce 01 movw r24, r28
1299c: 01 96 adiw r24, 0x01 ; 1
1299e: 9f 93 push r25
129a0: 8f 93 push r24
129a2: 1f 92 push r1
129a4: 2f 93 push r18
129a6: 01 96 adiw r24, 0x01 ; 1
129a8: 9f 93 push r25
129aa: 8f 93 push r24
129ac: 82 e0 ldi r24, 0x02 ; 2
129ae: 8f 93 push r24
129b0: 2f 93 push r18
129b2: 87 e5 ldi r24, 0x57 ; 87
129b4: 8f 93 push r24
129b6: d7 dc rcall .-1618 ; 0x12366 <SendOutData>
129b8: 0f b6 in r0, 0x3f ; 63
129ba: f8 94 cli
129bc: de bf out 0x3e, r29 ; 62
129be: 0f be out 0x3f, r0 ; 63
129c0: cd bf out 0x3d, r28 ; 61
129c2: 91 c0 rjmp .+290 ; 0x12ae6 <BearbeiteRxDaten+0x538>
129c4: 80 91 01 04 lds r24, 0x0401
129c8: 81 11 cpse r24, r1
129ca: 8d c0 rjmp .+282 ; 0x12ae6 <BearbeiteRxDaten+0x538>
129cc: 0e 94 8f 17 call 0x2f1e ; 0x2f1e <LIBFC_GetCPUType>
129d0: 8a 83 std Y+2, r24 ; 0x02
129d2: 82 30 cpi r24, 0x02 ; 2
129d4: 19 f0 breq .+6 ; 0x129dc <BearbeiteRxDaten+0x42e>
129d6: 84 30 cpi r24, 0x04 ; 4
129d8: 09 f0 breq .+2 ; 0x129dc <BearbeiteRxDaten+0x42e>
129da: 85 c0 rjmp .+266 ; 0x12ae6 <BearbeiteRxDaten+0x538>
129dc: f8 94 cli
129de: 80 91 c1 00 lds r24, 0x00C1
129e2: 8f 73 andi r24, 0x3F ; 63
129e4: 80 93 c1 00 sts 0x00C1, r24
129e8: 80 91 c9 00 lds r24, 0x00C9
129ec: 8f 73 andi r24, 0x3F ; 63
129ee: 80 93 c9 00 sts 0x00C9, r24
129f2: 80 91 c1 00 lds r24, 0x00C1
129f6: 87 7e andi r24, 0xE7 ; 231
129f8: 80 93 c1 00 sts 0x00C1, r24
129fc: 80 91 c9 00 lds r24, 0x00C9
12a00: 87 7e andi r24, 0xE7 ; 231
12a02: 80 93 c9 00 sts 0x00C9, r24
12a06: 80 91 c8 00 lds r24, 0x00C8
12a0a: 87 ff sbrs r24, 7
12a0c: 03 c0 rjmp .+6 ; 0x12a14 <BearbeiteRxDaten+0x466>
12a0e: 80 91 ce 00 lds r24, 0x00CE
12a12: f9 cf rjmp .-14 ; 0x12a06 <BearbeiteRxDaten+0x458>
12a14: 80 91 c0 00 lds r24, 0x00C0
12a18: 87 ff sbrs r24, 7
12a1a: 03 c0 rjmp .+6 ; 0x12a22 <BearbeiteRxDaten+0x474>
12a1c: 80 91 c6 00 lds r24, 0x00C6
12a20: f9 cf rjmp .-14 ; 0x12a14 <BearbeiteRxDaten+0x466>
12a22: e0 91 f5 04 lds r30, 0x04F5
12a26: f0 91 f6 04 lds r31, 0x04F6
12a2a: 80 81 ld r24, Z
12a2c: 81 30 cpi r24, 0x01 ; 1
12a2e: 21 f4 brne .+8 ; 0x12a38 <BearbeiteRxDaten+0x48a>
12a30: 82 e0 ldi r24, 0x02 ; 2
12a32: 80 93 ea 04 sts 0x04EA, r24
12a36: 2d c0 rjmp .+90 ; 0x12a92 <BearbeiteRxDaten+0x4e4>
12a38: 84 36 cpi r24, 0x64 ; 100
12a3a: 11 f0 breq .+4 ; 0x12a40 <BearbeiteRxDaten+0x492>
12a3c: 80 e4 ldi r24, 0x40 ; 64
12a3e: 01 c0 rjmp .+2 ; 0x12a42 <BearbeiteRxDaten+0x494>
12a40: 81 e8 ldi r24, 0x81 ; 129
12a42: 91 e0 ldi r25, 0x01 ; 1
12a44: 90 93 ea 04 sts 0x04EA, r25
12a48: 10 92 cd 00 sts 0x00CD, r1
12a4c: 80 93 cc 00 sts 0x00CC, r24
12a50: 80 91 cd 00 lds r24, 0x00CD
12a54: 80 93 c5 00 sts 0x00C5, r24
12a58: 80 91 cc 00 lds r24, 0x00CC
12a5c: 80 93 c4 00 sts 0x00C4, r24
12a60: 80 91 ca 00 lds r24, 0x00CA
12a64: 8f 7d andi r24, 0xDF ; 223
12a66: 80 93 ca 00 sts 0x00CA, r24
12a6a: 80 91 ca 00 lds r24, 0x00CA
12a6e: 8f 7e andi r24, 0xEF ; 239
12a70: 80 93 ca 00 sts 0x00CA, r24
12a74: 80 91 c9 00 lds r24, 0x00C9
12a78: 8b 7f andi r24, 0xFB ; 251
12a7a: 80 93 c9 00 sts 0x00C9, r24
12a7e: 80 91 ca 00 lds r24, 0x00CA
12a82: 84 60 ori r24, 0x04 ; 4
12a84: 80 93 ca 00 sts 0x00CA, r24
12a88: 80 91 ca 00 lds r24, 0x00CA
12a8c: 82 60 ori r24, 0x02 ; 2
12a8e: 80 93 ca 00 sts 0x00CA, r24
12a92: 80 91 ca 00 lds r24, 0x00CA
12a96: 87 7f andi r24, 0xF7 ; 247
12a98: 80 93 ca 00 sts 0x00CA, r24
12a9c: 80 91 c2 00 lds r24, 0x00C2
12aa0: 87 7f andi r24, 0xF7 ; 247
12aa2: 80 93 c2 00 sts 0x00C2, r24
12aa6: 80 91 c9 00 lds r24, 0x00C9
12aaa: 8e 7f andi r24, 0xFE ; 254
12aac: 80 93 c9 00 sts 0x00C9, r24
12ab0: 80 91 c1 00 lds r24, 0x00C1
12ab4: 88 61 ori r24, 0x18 ; 24
12ab6: 80 93 c1 00 sts 0x00C1, r24
12aba: 80 91 c9 00 lds r24, 0x00C9
12abe: 88 61 ori r24, 0x18 ; 24
12ac0: 80 93 c9 00 sts 0x00C9, r24
12ac4: 80 91 c1 00 lds r24, 0x00C1
12ac8: 80 68 ori r24, 0x80 ; 128
12aca: 80 93 c1 00 sts 0x00C1, r24
12ace: 80 91 c9 00 lds r24, 0x00C9
12ad2: 80 68 ori r24, 0x80 ; 128
12ad4: 80 93 c9 00 sts 0x00C9, r24
12ad8: 10 92 6e 00 sts 0x006E, r1
12adc: 10 92 6f 00 sts 0x006F, r1
12ae0: 10 92 70 00 sts 0x0070, r1
12ae4: 78 94 sei
12ae6: 80 91 6b 0a lds r24, 0x0A6B
12aea: 84 36 cpi r24, 0x64 ; 100
12aec: 09 f4 brne .+2 ; 0x12af0 <BearbeiteRxDaten+0x542>
12aee: a7 c0 rjmp .+334 ; 0x12c3e <BearbeiteRxDaten+0x690>
12af0: c8 f4 brcc .+50 ; 0x12b24 <BearbeiteRxDaten+0x576>
12af2: 81 36 cpi r24, 0x61 ; 97
12af4: 09 f4 brne .+2 ; 0x12af8 <BearbeiteRxDaten+0x54a>
12af6: 60 c0 rjmp .+192 ; 0x12bb8 <BearbeiteRxDaten+0x60a>
12af8: 70 f4 brcc .+28 ; 0x12b16 <BearbeiteRxDaten+0x568>
12afa: 8b 34 cpi r24, 0x4B ; 75
12afc: 09 f0 breq .+2 ; 0x12b00 <BearbeiteRxDaten+0x552>
12afe: 0e c1 rjmp .+540 ; 0x12d1c <BearbeiteRxDaten+0x76e>
12b00: e0 91 f5 04 lds r30, 0x04F5
12b04: f0 91 f6 04 lds r31, 0x04F6
12b08: 80 81 ld r24, Z
12b0a: 91 81 ldd r25, Z+1 ; 0x01
12b0c: 90 93 4f 01 sts 0x014F, r25
12b10: 80 93 4e 01 sts 0x014E, r24
12b14: 03 c1 rjmp .+518 ; 0x12d1c <BearbeiteRxDaten+0x76e>
12b16: 82 36 cpi r24, 0x62 ; 98
12b18: 09 f4 brne .+2 ; 0x12b1c <BearbeiteRxDaten+0x56e>
12b1a: 59 c0 rjmp .+178 ; 0x12bce <BearbeiteRxDaten+0x620>
12b1c: 83 36 cpi r24, 0x63 ; 99
12b1e: 09 f4 brne .+2 ; 0x12b22 <BearbeiteRxDaten+0x574>
12b20: 69 c0 rjmp .+210 ; 0x12bf4 <BearbeiteRxDaten+0x646>
12b22: fc c0 rjmp .+504 ; 0x12d1c <BearbeiteRxDaten+0x76e>
12b24: 8c 36 cpi r24, 0x6C ; 108
12b26: 09 f4 brne .+2 ; 0x12b2a <BearbeiteRxDaten+0x57c>
12b28: d9 c0 rjmp .+434 ; 0x12cdc <BearbeiteRxDaten+0x72e>
12b2a: 38 f4 brcc .+14 ; 0x12b3a <BearbeiteRxDaten+0x58c>
12b2c: 87 36 cpi r24, 0x67 ; 103
12b2e: 09 f4 brne .+2 ; 0x12b32 <BearbeiteRxDaten+0x584>
12b30: f2 c0 rjmp .+484 ; 0x12d16 <BearbeiteRxDaten+0x768>
12b32: 88 36 cpi r24, 0x68 ; 104
12b34: 09 f4 brne .+2 ; 0x12b38 <BearbeiteRxDaten+0x58a>
12b36: a1 c0 rjmp .+322 ; 0x12c7a <BearbeiteRxDaten+0x6cc>
12b38: f1 c0 rjmp .+482 ; 0x12d1c <BearbeiteRxDaten+0x76e>
12b3a: 84 37 cpi r24, 0x74 ; 116
12b3c: 21 f0 breq .+8 ; 0x12b46 <BearbeiteRxDaten+0x598>
12b3e: 86 37 cpi r24, 0x76 ; 118
12b40: 09 f4 brne .+2 ; 0x12b44 <BearbeiteRxDaten+0x596>
12b42: da c0 rjmp .+436 ; 0x12cf8 <BearbeiteRxDaten+0x74a>
12b44: eb c0 rjmp .+470 ; 0x12d1c <BearbeiteRxDaten+0x76e>
12b46: 80 91 f7 04 lds r24, 0x04F7
12b4a: e0 91 f5 04 lds r30, 0x04F5
12b4e: f0 91 f6 04 lds r31, 0x04F6
12b52: 80 31 cpi r24, 0x10 ; 16
12b54: 40 f0 brcs .+16 ; 0x12b66 <BearbeiteRxDaten+0x5b8>
12b56: 80 e1 ldi r24, 0x10 ; 16
12b58: a4 e4 ldi r26, 0x44 ; 68
12b5a: ba e0 ldi r27, 0x0A ; 10
12b5c: 01 90 ld r0, Z+
12b5e: 0d 92 st X+, r0
12b60: 8a 95 dec r24
12b62: e1 f7 brne .-8 ; 0x12b5c <BearbeiteRxDaten+0x5ae>
12b64: 0c c0 rjmp .+24 ; 0x12b7e <BearbeiteRxDaten+0x5d0>
12b66: 80 81 ld r24, Z
12b68: 91 81 ldd r25, Z+1 ; 0x01
12b6a: a2 81 ldd r26, Z+2 ; 0x02
12b6c: b3 81 ldd r27, Z+3 ; 0x03
12b6e: 80 93 44 0a sts 0x0A44, r24
12b72: 90 93 45 0a sts 0x0A45, r25
12b76: a0 93 46 0a sts 0x0A46, r26
12b7a: b0 93 47 0a sts 0x0A47, r27
12b7e: 80 91 b7 02 lds r24, 0x02B7
12b82: 88 23 and r24, r24
12b84: e1 f3 breq .-8 ; 0x12b7e <BearbeiteRxDaten+0x5d0>
12b86: 1f 92 push r1
12b88: 80 91 b4 02 lds r24, 0x02B4
12b8c: 8f 93 push r24
12b8e: 84 e5 ldi r24, 0x54 ; 84
12b90: 8f 93 push r24
12b92: e9 db rcall .-2094 ; 0x12366 <SendOutData>
12b94: 8a ef ldi r24, 0xFA ; 250
12b96: 80 93 f3 04 sts 0x04F3, r24
12b9a: 8f ef ldi r24, 0xFF ; 255
12b9c: 80 93 b5 02 sts 0x02B5, r24
12ba0: 80 ea ldi r24, 0xA0 ; 160
12ba2: 9f e0 ldi r25, 0x0F ; 15
12ba4: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
12ba8: 90 93 ec 04 sts 0x04EC, r25
12bac: 80 93 eb 04 sts 0x04EB, r24
12bb0: 0f 90 pop r0
12bb2: 0f 90 pop r0
12bb4: 0f 90 pop r0
12bb6: b2 c0 rjmp .+356 ; 0x12d1c <BearbeiteRxDaten+0x76e>
12bb8: e0 91 f5 04 lds r30, 0x04F5
12bbc: f0 91 f6 04 lds r31, 0x04F6
12bc0: 80 81 ld r24, Z
12bc2: 80 32 cpi r24, 0x20 ; 32
12bc4: 08 f0 brcs .+2 ; 0x12bc8 <BearbeiteRxDaten+0x61a>
12bc6: 8f e1 ldi r24, 0x1F ; 31
12bc8: 80 93 b6 02 sts 0x02B6, r24
12bcc: 0f c0 rjmp .+30 ; 0x12bec <BearbeiteRxDaten+0x63e>
12bce: e0 91 f5 04 lds r30, 0x04F5
12bd2: f0 91 f6 04 lds r31, 0x04F6
12bd6: 8b e0 ldi r24, 0x0B ; 11
12bd8: ac e5 ldi r26, 0x5C ; 92
12bda: ba e0 ldi r27, 0x0A ; 10
12bdc: 01 90 ld r0, Z+
12bde: 0d 92 st X+, r0
12be0: 8a 95 dec r24
12be2: e1 f7 brne .-8 ; 0x12bdc <BearbeiteRxDaten+0x62e>
12be4: 80 91 65 0a lds r24, 0x0A65
12be8: 80 93 65 0c sts 0x0C65, r24
12bec: 8f ef ldi r24, 0xFF ; 255
12bee: 80 93 b5 02 sts 0x02B5, r24
12bf2: 94 c0 rjmp .+296 ; 0x12d1c <BearbeiteRxDaten+0x76e>
12bf4: 80 91 ef 04 lds r24, 0x04EF
12bf8: 90 91 f0 04 lds r25, 0x04F0
12bfc: 89 2b or r24, r25
12bfe: 89 f4 brne .+34 ; 0x12c22 <BearbeiteRxDaten+0x674>
12c00: e0 91 f5 04 lds r30, 0x04F5
12c04: f0 91 f6 04 lds r31, 0x04F6
12c08: 80 81 ld r24, Z
12c0a: 88 23 and r24, r24
12c0c: 51 f0 breq .+20 ; 0x12c22 <BearbeiteRxDaten+0x674>
12c0e: ea e0 ldi r30, 0x0A ; 10
12c10: 8e 9f mul r24, r30
12c12: c0 01 movw r24, r0
12c14: 11 24 eor r1, r1
12c16: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
12c1a: 90 93 37 0a sts 0x0A37, r25
12c1e: 80 93 36 0a sts 0x0A36, r24
12c22: e0 91 f5 04 lds r30, 0x04F5
12c26: f0 91 f6 04 lds r31, 0x04F6
12c2a: 80 81 ld r24, Z
12c2c: fa e0 ldi r31, 0x0A ; 10
12c2e: 8f 9f mul r24, r31
12c30: c0 01 movw r24, r0
12c32: 11 24 eor r1, r1
12c34: 90 93 f0 04 sts 0x04F0, r25
12c38: 80 93 ef 04 sts 0x04EF, r24
12c3c: 15 c0 rjmp .+42 ; 0x12c68 <BearbeiteRxDaten+0x6ba>
12c3e: 8f ef ldi r24, 0xFF ; 255
12c40: 80 93 b5 02 sts 0x02B5, r24
12c44: e0 91 f5 04 lds r30, 0x04F5
12c48: f0 91 f6 04 lds r31, 0x04F6
12c4c: 80 81 ld r24, Z
12c4e: 2a e0 ldi r18, 0x0A ; 10
12c50: 82 9f mul r24, r18
12c52: c0 01 movw r24, r0
12c54: 11 24 eor r1, r1
12c56: 90 93 f2 04 sts 0x04F2, r25
12c5a: 80 93 f1 04 sts 0x04F1, r24
12c5e: 89 2b or r24, r25
12c60: 19 f0 breq .+6 ; 0x12c68 <BearbeiteRxDaten+0x6ba>
12c62: 81 e0 ldi r24, 0x01 ; 1
12c64: 80 93 fe 04 sts 0x04FE, r24
12c68: 80 ea ldi r24, 0xA0 ; 160
12c6a: 9f e0 ldi r25, 0x0F ; 15
12c6c: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
12c70: 90 93 ec 04 sts 0x04EC, r25
12c74: 80 93 eb 04 sts 0x04EB, r24
12c78: 51 c0 rjmp .+162 ; 0x12d1c <BearbeiteRxDaten+0x76e>
12c7a: 8f ef ldi r24, 0xFF ; 255
12c7c: 80 93 b5 02 sts 0x02B5, r24
12c80: e0 91 f5 04 lds r30, 0x04F5
12c84: f0 91 f6 04 lds r31, 0x04F6
12c88: 80 81 ld r24, Z
12c8a: 87 fd sbrc r24, 7
12c8c: 08 c0 rjmp .+16 ; 0x12c9e <BearbeiteRxDaten+0x6f0>
12c8e: 82 e0 ldi r24, 0x02 ; 2
12c90: 80 93 fb 04 sts 0x04FB, r24
12c94: 10 92 ee 04 sts 0x04EE, r1
12c98: 10 92 ed 04 sts 0x04ED, r1
12c9c: 1b c0 rjmp .+54 ; 0x12cd4 <BearbeiteRxDaten+0x726>
12c9e: 98 2f mov r25, r24
12ca0: 90 95 com r25
12ca2: 80 91 a0 04 lds r24, 0x04A0
12ca6: 89 2b or r24, r25
12ca8: 80 93 a0 04 sts 0x04A0, r24
12cac: 81 81 ldd r24, Z+1 ; 0x01
12cae: ea e0 ldi r30, 0x0A ; 10
12cb0: 8e 9f mul r24, r30
12cb2: c0 01 movw r24, r0
12cb4: 11 24 eor r1, r1
12cb6: 90 93 ee 04 sts 0x04EE, r25
12cba: 80 93 ed 04 sts 0x04ED, r24
12cbe: 84 e0 ldi r24, 0x04 ; 4
12cc0: 80 93 fb 04 sts 0x04FB, r24
12cc4: 80 ea ldi r24, 0xA0 ; 160
12cc6: 9f e0 ldi r25, 0x0F ; 15
12cc8: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
12ccc: 90 93 ec 04 sts 0x04EC, r25
12cd0: 80 93 eb 04 sts 0x04EB, r24
12cd4: 81 e0 ldi r24, 0x01 ; 1
12cd6: 80 93 ff 04 sts 0x04FF, r24
12cda: 20 c0 rjmp .+64 ; 0x12d1c <BearbeiteRxDaten+0x76e>
12cdc: 8f ef ldi r24, 0xFF ; 255
12cde: 80 93 b5 02 sts 0x02B5, r24
12ce2: e0 91 f5 04 lds r30, 0x04F5
12ce6: f0 91 f6 04 lds r31, 0x04F6
12cea: 80 81 ld r24, Z
12cec: 80 93 a1 04 sts 0x04A1, r24
12cf0: 81 e0 ldi r24, 0x01 ; 1
12cf2: 80 93 00 05 sts 0x0500, r24
12cf6: 12 c0 rjmp .+36 ; 0x12d1c <BearbeiteRxDaten+0x76e>
12cf8: 80 91 f4 04 lds r24, 0x04F4
12cfc: 88 23 and r24, r24
12cfe: 39 f0 breq .+14 ; 0x12d0e <BearbeiteRxDaten+0x760>
12d00: e0 91 f5 04 lds r30, 0x04F5
12d04: f0 91 f6 04 lds r31, 0x04F6
12d08: 80 81 ld r24, Z
12d0a: 82 30 cpi r24, 0x02 ; 2
12d0c: 09 f0 breq .+2 ; 0x12d10 <BearbeiteRxDaten+0x762>
12d0e: 81 e0 ldi r24, 0x01 ; 1
12d10: 80 93 fd 04 sts 0x04FD, r24
12d14: 03 c0 rjmp .+6 ; 0x12d1c <BearbeiteRxDaten+0x76e>
12d16: 81 e0 ldi r24, 0x01 ; 1
12d18: 80 93 01 05 sts 0x0501, r24
12d1c: 10 92 f9 04 sts 0x04F9, r1
12d20: 10 92 f6 04 sts 0x04F6, r1
12d24: 10 92 f5 04 sts 0x04F5, r1
12d28: 10 92 f4 04 sts 0x04F4, r1
12d2c: 0f 90 pop r0
12d2e: 0f 90 pop r0
12d30: df 91 pop r29
12d32: cf 91 pop r28
12d34: 1f 91 pop r17
12d36: 08 95 ret
 
00012d38 <uart_putchar>:
12d38: 90 91 c0 00 lds r25, 0x00C0
12d3c: 95 ff sbrs r25, 5
12d3e: fc cf rjmp .-8 ; 0x12d38 <uart_putchar>
12d40: 80 93 c6 00 sts 0x00C6, r24
12d44: 08 95 ret
 
00012d46 <UART_Init>:
12d46: e1 ec ldi r30, 0xC1 ; 193
12d48: f0 e0 ldi r31, 0x00 ; 0
12d4a: 88 e1 ldi r24, 0x18 ; 24
12d4c: 80 83 st Z, r24
12d4e: a0 ec ldi r26, 0xC0 ; 192
12d50: b0 e0 ldi r27, 0x00 ; 0
12d52: 8c 91 ld r24, X
12d54: 82 60 ori r24, 0x02 ; 2
12d56: 8c 93 st X, r24
12d58: 80 81 ld r24, Z
12d5a: 80 68 ori r24, 0x80 ; 128
12d5c: 80 83 st Z, r24
12d5e: 80 81 ld r24, Z
12d60: 80 64 ori r24, 0x40 ; 64
12d62: 80 83 st Z, r24
12d64: 10 92 c5 00 sts 0x00C5, r1
12d68: 8a e2 ldi r24, 0x2A ; 42
12d6a: 80 93 c4 00 sts 0x00C4, r24
12d6e: 80 91 f1 04 lds r24, 0x04F1
12d72: 90 91 f2 04 lds r25, 0x04F2
12d76: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
12d7a: 90 93 39 0a sts 0x0A39, r25
12d7e: 80 93 38 0a sts 0x0A38, r24
12d82: 8c ed ldi r24, 0xDC ; 220
12d84: 90 e0 ldi r25, 0x00 ; 0
12d86: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
12d8a: 90 93 68 0a sts 0x0A68, r25
12d8e: 80 93 67 0a sts 0x0A67, r24
12d92: 82 e0 ldi r24, 0x02 ; 2
12d94: 80 93 3a 0a sts 0x0A3A, r24
12d98: 88 e0 ldi r24, 0x08 ; 8
12d9a: 80 93 3b 0a sts 0x0A3B, r24
12d9e: 10 92 3e 0a sts 0x0A3E, r1
12da2: 8b e0 ldi r24, 0x0B ; 11
12da4: 80 93 3c 0a sts 0x0A3C, r24
12da8: 10 92 3d 0a sts 0x0A3D, r1
12dac: 8f ef ldi r24, 0xFF ; 255
12dae: 80 93 42 0a sts 0x0A42, r24
12db2: 80 91 54 01 lds r24, 0x0154
12db6: 80 93 41 0a sts 0x0A41, r24
12dba: 10 92 f6 04 sts 0x04F6, r1
12dbe: 10 92 f5 04 sts 0x04F5, r1
12dc2: 10 92 f4 04 sts 0x04F4, r1
12dc6: 08 95 ret
 
00012dc8 <DatenUebertragung>:
12dc8: 0f 93 push r16
12dca: 1f 93 push r17
12dcc: cf 93 push r28
12dce: df 93 push r29
12dd0: cd b7 in r28, 0x3d ; 61
12dd2: de b7 in r29, 0x3e ; 62
12dd4: 60 97 sbiw r28, 0x10 ; 16
12dd6: 0f b6 in r0, 0x3f ; 63
12dd8: f8 94 cli
12dda: de bf out 0x3e, r29 ; 62
12ddc: 0f be out 0x3f, r0 ; 63
12dde: cd bf out 0x3d, r28 ; 61
12de0: 80 91 b7 02 lds r24, 0x02B7
12de4: 88 23 and r24, r24
12de6: 09 f4 brne .+2 ; 0x12dea <DatenUebertragung+0x22>
12de8: 83 c2 rjmp .+1286 ; 0x132f0 <DatenUebertragung+0x528>
12dea: 80 91 eb 04 lds r24, 0x04EB
12dee: 90 91 ec 04 lds r25, 0x04EC
12df2: 0e 94 4f 88 call 0x1109e ; 0x1109e <CheckDelay>
12df6: 88 23 and r24, r24
12df8: 61 f0 breq .+24 ; 0x12e12 <DatenUebertragung+0x4a>
12dfa: 10 92 ee 04 sts 0x04EE, r1
12dfe: 10 92 ed 04 sts 0x04ED, r1
12e02: 10 92 f2 04 sts 0x04F2, r1
12e06: 10 92 f1 04 sts 0x04F1, r1
12e0a: 10 92 f0 04 sts 0x04F0, r1
12e0e: 10 92 ef 04 sts 0x04EF, r1
12e12: 80 91 ed 04 lds r24, 0x04ED
12e16: 90 91 ee 04 lds r25, 0x04EE
12e1a: 89 2b or r24, r25
12e1c: 29 f4 brne .+10 ; 0x12e28 <DatenUebertragung+0x60>
12e1e: 80 91 ff 04 lds r24, 0x04FF
12e22: 81 11 cpse r24, r1
12e24: 09 c0 rjmp .+18 ; 0x12e38 <DatenUebertragung+0x70>
12e26: 64 c0 rjmp .+200 ; 0x12ef0 <DatenUebertragung+0x128>
12e28: 80 91 45 0b lds r24, 0x0B45
12e2c: 90 91 46 0b lds r25, 0x0B46
12e30: 0e 94 4f 88 call 0x1109e ; 0x1109e <CheckDelay>
12e34: 88 23 and r24, r24
12e36: 99 f3 breq .-26 ; 0x12e1e <DatenUebertragung+0x56>
12e38: 80 91 b7 02 lds r24, 0x02B7
12e3c: 88 23 and r24, r24
12e3e: 09 f4 brne .+2 ; 0x12e42 <DatenUebertragung+0x7a>
12e40: 57 c0 rjmp .+174 ; 0x12ef0 <DatenUebertragung+0x128>
12e42: 80 91 fb 04 lds r24, 0x04FB
12e46: 84 30 cpi r24, 0x04 ; 4
12e48: a8 f0 brcs .+42 ; 0x12e74 <DatenUebertragung+0xac>
12e4a: 0e 94 6e 75 call 0xeadc ; 0xeadc <Menu>
12e4e: 1f 92 push r1
12e50: 80 e5 ldi r24, 0x50 ; 80
12e52: 8f 93 push r24
12e54: 8d eb ldi r24, 0xBD ; 189
12e56: 97 e0 ldi r25, 0x07 ; 7
12e58: 9f 93 push r25
12e5a: 8f 93 push r24
12e5c: 81 e0 ldi r24, 0x01 ; 1
12e5e: 8f 93 push r24
12e60: 8f 93 push r24
12e62: 88 e4 ldi r24, 0x48 ; 72
12e64: 8f 93 push r24
12e66: 7f da rcall .-2818 ; 0x12366 <SendOutData>
12e68: 0f b6 in r0, 0x3f ; 63
12e6a: f8 94 cli
12e6c: de bf out 0x3e, r29 ; 62
12e6e: 0f be out 0x3f, r0 ; 63
12e70: cd bf out 0x3d, r28 ; 61
12e72: 32 c0 rjmp .+100 ; 0x12ed8 <DatenUebertragung+0x110>
12e74: 10 92 a2 04 sts 0x04A2, r1
12e78: 8b e3 ldi r24, 0x3B ; 59
12e7a: 95 e1 ldi r25, 0x15 ; 21
12e7c: 9f 93 push r25
12e7e: 8f 93 push r24
12e80: 88 e5 ldi r24, 0x58 ; 88
12e82: 95 e7 ldi r25, 0x75 ; 117
12e84: 9f 93 push r25
12e86: 8f 93 push r24
12e88: e0 91 55 06 lds r30, 0x0655
12e8c: f0 91 56 06 lds r31, 0x0656
12e90: 09 95 icall
12e92: 1f 92 push r1
12e94: 84 e1 ldi r24, 0x14 ; 20
12e96: 8f 93 push r24
12e98: 8d eb ldi r24, 0xBD ; 189
12e9a: 97 e0 ldi r25, 0x07 ; 7
12e9c: 9f 93 push r25
12e9e: 8f 93 push r24
12ea0: 1f 92 push r1
12ea2: 21 e0 ldi r18, 0x01 ; 1
12ea4: 2f 93 push r18
12ea6: 8b ef ldi r24, 0xFB ; 251
12ea8: 94 e0 ldi r25, 0x04 ; 4
12eaa: 9f 93 push r25
12eac: 8f 93 push r24
12eae: 82 e0 ldi r24, 0x02 ; 2
12eb0: 8f 93 push r24
12eb2: 2f 93 push r18
12eb4: 88 e4 ldi r24, 0x48 ; 72
12eb6: 8f 93 push r24
12eb8: 56 da rcall .-2900 ; 0x12366 <SendOutData>
12eba: 80 91 fb 04 lds r24, 0x04FB
12ebe: 0f b6 in r0, 0x3f ; 63
12ec0: f8 94 cli
12ec2: de bf out 0x3e, r29 ; 62
12ec4: 0f be out 0x3f, r0 ; 63
12ec6: cd bf out 0x3d, r28 ; 61
12ec8: 84 30 cpi r24, 0x04 ; 4
12eca: 20 f4 brcc .+8 ; 0x12ed4 <DatenUebertragung+0x10c>
12ecc: 8f 5f subi r24, 0xFF ; 255
12ece: 80 93 fb 04 sts 0x04FB, r24
12ed2: 02 c0 rjmp .+4 ; 0x12ed8 <DatenUebertragung+0x110>
12ed4: 10 92 fb 04 sts 0x04FB, r1
12ed8: 80 91 ed 04 lds r24, 0x04ED
12edc: 90 91 ee 04 lds r25, 0x04EE
12ee0: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
12ee4: 90 93 46 0b sts 0x0B46, r25
12ee8: 80 93 45 0b sts 0x0B45, r24
12eec: 10 92 ff 04 sts 0x04FF, r1
12ef0: 80 91 00 05 lds r24, 0x0500
12ef4: 88 23 and r24, r24
12ef6: 39 f1 breq .+78 ; 0x12f46 <DatenUebertragung+0x17e>
12ef8: 80 91 b7 02 lds r24, 0x02B7
12efc: 88 23 and r24, r24
12efe: 19 f1 breq .+70 ; 0x12f46 <DatenUebertragung+0x17e>
12f00: 0e 94 6e 75 call 0xeadc ; 0xeadc <Menu>
12f04: 1f 92 push r1
12f06: 80 e5 ldi r24, 0x50 ; 80
12f08: 8f 93 push r24
12f0a: 8d eb ldi r24, 0xBD ; 189
12f0c: 97 e0 ldi r25, 0x07 ; 7
12f0e: 9f 93 push r25
12f10: 8f 93 push r24
12f12: 1f 92 push r1
12f14: 21 e0 ldi r18, 0x01 ; 1
12f16: 2f 93 push r18
12f18: 80 e9 ldi r24, 0x90 ; 144
12f1a: 92 e0 ldi r25, 0x02 ; 2
12f1c: 9f 93 push r25
12f1e: 8f 93 push r24
12f20: 1f 92 push r1
12f22: 2f 93 push r18
12f24: 81 ea ldi r24, 0xA1 ; 161
12f26: 94 e0 ldi r25, 0x04 ; 4
12f28: 9f 93 push r25
12f2a: 8f 93 push r24
12f2c: 83 e0 ldi r24, 0x03 ; 3
12f2e: 8f 93 push r24
12f30: 2f 93 push r18
12f32: 8c e4 ldi r24, 0x4C ; 76
12f34: 8f 93 push r24
12f36: 17 da rcall .-3026 ; 0x12366 <SendOutData>
12f38: 10 92 00 05 sts 0x0500, r1
12f3c: 0f b6 in r0, 0x3f ; 63
12f3e: f8 94 cli
12f40: de bf out 0x3e, r29 ; 62
12f42: 0f be out 0x3f, r0 ; 63
12f44: cd bf out 0x3d, r28 ; 61
12f46: 80 91 fd 04 lds r24, 0x04FD
12f4a: 88 23 and r24, r24
12f4c: c9 f1 breq .+114 ; 0x12fc0 <DatenUebertragung+0x1f8>
12f4e: 90 91 b7 02 lds r25, 0x02B7
12f52: 99 23 and r25, r25
12f54: a9 f1 breq .+106 ; 0x12fc0 <DatenUebertragung+0x1f8>
12f56: 82 30 cpi r24, 0x02 ; 2
12f58: f9 f4 brne .+62 ; 0x12f98 <DatenUebertragung+0x1d0>
12f5a: 80 91 be 08 lds r24, 0x08BE
12f5e: 89 83 std Y+1, r24 ; 0x01
12f60: 80 91 bf 08 lds r24, 0x08BF
12f64: 8a 83 std Y+2, r24 ; 0x02
12f66: 80 91 c0 08 lds r24, 0x08C0
12f6a: 8d 83 std Y+5, r24 ; 0x05
12f6c: 80 91 c2 08 lds r24, 0x08C2
12f70: 88 87 std Y+8, r24 ; 0x08
12f72: 8f ef ldi r24, 0xFF ; 255
12f74: 8e 83 std Y+6, r24 ; 0x06
12f76: 8f 83 std Y+7, r24 ; 0x07
12f78: 80 91 3c 0a lds r24, 0x0A3C
12f7c: 8b 83 std Y+3, r24 ; 0x03
12f7e: 80 91 42 0a lds r24, 0x0A42
12f82: 89 87 std Y+9, r24 ; 0x09
12f84: 80 91 43 0a lds r24, 0x0A43
12f88: 8a 87 std Y+10, r24 ; 0x0a
12f8a: 1c 82 std Y+4, r1 ; 0x04
12f8c: 1f 92 push r1
12f8e: 8a e0 ldi r24, 0x0A ; 10
12f90: 8f 93 push r24
12f92: ce 01 movw r24, r28
12f94: 01 96 adiw r24, 0x01 ; 1
12f96: 05 c0 rjmp .+10 ; 0x12fa2 <DatenUebertragung+0x1da>
12f98: 1f 92 push r1
12f9a: 8a e0 ldi r24, 0x0A ; 10
12f9c: 8f 93 push r24
12f9e: 8a e3 ldi r24, 0x3A ; 58
12fa0: 9a e0 ldi r25, 0x0A ; 10
12fa2: 9f 93 push r25
12fa4: 8f 93 push r24
12fa6: 81 e0 ldi r24, 0x01 ; 1
12fa8: 8f 93 push r24
12faa: 8f 93 push r24
12fac: 86 e5 ldi r24, 0x56 ; 86
12fae: 8f 93 push r24
12fb0: da d9 rcall .-3148 ; 0x12366 <SendOutData>
12fb2: 0f b6 in r0, 0x3f ; 63
12fb4: f8 94 cli
12fb6: de bf out 0x3e, r29 ; 62
12fb8: 0f be out 0x3f, r0 ; 63
12fba: cd bf out 0x3d, r28 ; 61
12fbc: 10 92 fd 04 sts 0x04FD, r1
12fc0: 80 91 01 05 lds r24, 0x0501
12fc4: 88 23 and r24, r24
12fc6: d1 f0 breq .+52 ; 0x12ffc <DatenUebertragung+0x234>
12fc8: 80 91 b7 02 lds r24, 0x02B7
12fcc: 88 23 and r24, r24
12fce: b1 f0 breq .+44 ; 0x12ffc <DatenUebertragung+0x234>
12fd0: 1f 92 push r1
12fd2: 8b e0 ldi r24, 0x0B ; 11
12fd4: 8f 93 push r24
12fd6: 8c e5 ldi r24, 0x5C ; 92
12fd8: 9a e0 ldi r25, 0x0A ; 10
12fda: 9f 93 push r25
12fdc: 8f 93 push r24
12fde: 81 e0 ldi r24, 0x01 ; 1
12fe0: 8f 93 push r24
12fe2: 80 91 b4 02 lds r24, 0x02B4
12fe6: 8f 93 push r24
12fe8: 87 e4 ldi r24, 0x47 ; 71
12fea: 8f 93 push r24
12fec: bc d9 rcall .-3208 ; 0x12366 <SendOutData>
12fee: 10 92 01 05 sts 0x0501, r1
12ff2: 0f b6 in r0, 0x3f ; 63
12ff4: f8 94 cli
12ff6: de bf out 0x3e, r29 ; 62
12ff8: 0f be out 0x3f, r0 ; 63
12ffa: cd bf out 0x3d, r28 ; 61
12ffc: 80 91 f1 04 lds r24, 0x04F1
13000: 90 91 f2 04 lds r25, 0x04F2
13004: 89 2b or r24, r25
13006: 29 f4 brne .+10 ; 0x13012 <DatenUebertragung+0x24a>
13008: 80 91 fe 04 lds r24, 0x04FE
1300c: 81 11 cpse r24, r1
1300e: 09 c0 rjmp .+18 ; 0x13022 <DatenUebertragung+0x25a>
13010: 2e c0 rjmp .+92 ; 0x1306e <DatenUebertragung+0x2a6>
13012: 80 91 38 0a lds r24, 0x0A38
13016: 90 91 39 0a lds r25, 0x0A39
1301a: 0e 94 4f 88 call 0x1109e ; 0x1109e <CheckDelay>
1301e: 88 23 and r24, r24
13020: 99 f3 breq .-26 ; 0x13008 <DatenUebertragung+0x240>
13022: 80 91 b7 02 lds r24, 0x02B7
13026: 88 23 and r24, r24
13028: 11 f1 breq .+68 ; 0x1306e <DatenUebertragung+0x2a6>
1302a: 0e 94 ae 25 call 0x4b5c ; 0x4b5c <CopyDebugValues>
1302e: 1f 92 push r1
13030: 82 e4 ldi r24, 0x42 ; 66
13032: 8f 93 push r24
13034: 83 e2 ldi r24, 0x23 ; 35
13036: 9c e0 ldi r25, 0x0C ; 12
13038: 9f 93 push r25
1303a: 8f 93 push r24
1303c: 81 e0 ldi r24, 0x01 ; 1
1303e: 8f 93 push r24
13040: 8f 93 push r24
13042: 84 e4 ldi r24, 0x44 ; 68
13044: 8f 93 push r24
13046: 8f d9 rcall .-3298 ; 0x12366 <SendOutData>
13048: 10 92 fe 04 sts 0x04FE, r1
1304c: 80 91 f1 04 lds r24, 0x04F1
13050: 90 91 f2 04 lds r25, 0x04F2
13054: 0f b6 in r0, 0x3f ; 63
13056: f8 94 cli
13058: de bf out 0x3e, r29 ; 62
1305a: 0f be out 0x3f, r0 ; 63
1305c: cd bf out 0x3d, r28 ; 61
1305e: 00 97 sbiw r24, 0x00 ; 0
13060: 31 f0 breq .+12 ; 0x1306e <DatenUebertragung+0x2a6>
13062: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
13066: 90 93 39 0a sts 0x0A39, r25
1306a: 80 93 38 0a sts 0x0A38, r24
1306e: 80 91 ef 04 lds r24, 0x04EF
13072: 90 91 f0 04 lds r25, 0x04F0
13076: 89 2b or r24, r25
13078: 09 f4 brne .+2 ; 0x1307c <DatenUebertragung+0x2b4>
1307a: 85 c0 rjmp .+266 ; 0x13186 <DatenUebertragung+0x3be>
1307c: 80 91 36 0a lds r24, 0x0A36
13080: 90 91 37 0a lds r25, 0x0A37
13084: 0e 94 4f 88 call 0x1109e ; 0x1109e <CheckDelay>
13088: 88 23 and r24, r24
1308a: 09 f4 brne .+2 ; 0x1308e <DatenUebertragung+0x2c6>
1308c: 7c c0 rjmp .+248 ; 0x13186 <DatenUebertragung+0x3be>
1308e: 80 91 b7 02 lds r24, 0x02B7
13092: 88 23 and r24, r24
13094: 09 f4 brne .+2 ; 0x13098 <DatenUebertragung+0x2d0>
13096: 77 c0 rjmp .+238 ; 0x13186 <DatenUebertragung+0x3be>
13098: 08 e2 ldi r16, 0x28 ; 40
1309a: 1a e0 ldi r17, 0x0A ; 10
1309c: 80 91 c7 08 lds r24, 0x08C7
130a0: 90 91 c8 08 lds r25, 0x08C8
130a4: 90 93 29 0a sts 0x0A29, r25
130a8: 80 93 28 0a sts 0x0A28, r24
130ac: 80 91 c9 08 lds r24, 0x08C9
130b0: 90 91 ca 08 lds r25, 0x08CA
130b4: 90 93 2b 0a sts 0x0A2B, r25
130b8: 80 93 2a 0a sts 0x0A2A, r24
130bc: 20 91 4b 06 lds r18, 0x064B
130c0: 30 91 4c 06 lds r19, 0x064C
130c4: 40 91 4d 06 lds r20, 0x064D
130c8: 50 91 4e 06 lds r21, 0x064E
130cc: aa e0 ldi r26, 0x0A ; 10
130ce: b0 e0 ldi r27, 0x00 ; 0
130d0: dc d2 rcall .+1464 ; 0x1368a <__muluhisi3>
130d2: 20 91 21 01 lds r18, 0x0121
130d6: 30 91 22 01 lds r19, 0x0122
130da: 40 91 23 01 lds r20, 0x0123
130de: 50 91 24 01 lds r21, 0x0124
130e2: 96 d2 rcall .+1324 ; 0x13610 <__divmodsi4>
130e4: 30 93 2d 0a sts 0x0A2D, r19
130e8: 20 93 2c 0a sts 0x0A2C, r18
130ec: 80 91 24 04 lds r24, 0x0424
130f0: 90 91 25 04 lds r25, 0x0425
130f4: a0 91 26 04 lds r26, 0x0426
130f8: b0 91 27 04 lds r27, 0x0427
130fc: e9 e0 ldi r30, 0x09 ; 9
130fe: b5 95 asr r27
13100: a7 95 ror r26
13102: 97 95 ror r25
13104: 87 95 ror r24
13106: ea 95 dec r30
13108: d1 f7 brne .-12 ; 0x130fe <DatenUebertragung+0x336>
1310a: 80 93 2e 0a sts 0x0A2E, r24
1310e: 80 91 20 04 lds r24, 0x0420
13112: 90 91 21 04 lds r25, 0x0421
13116: a0 91 22 04 lds r26, 0x0422
1311a: b0 91 23 04 lds r27, 0x0423
1311e: f9 e0 ldi r31, 0x09 ; 9
13120: b5 95 asr r27
13122: a7 95 ror r26
13124: 97 95 ror r25
13126: 87 95 ror r24
13128: fa 95 dec r31
1312a: d1 f7 brne .-12 ; 0x13120 <DatenUebertragung+0x358>
1312c: 80 93 2f 0a sts 0x0A2F, r24
13130: 80 91 2c 04 lds r24, 0x042C
13134: 90 91 2d 04 lds r25, 0x042D
13138: a0 91 2e 04 lds r26, 0x042E
1313c: b0 91 2f 04 lds r27, 0x042F
13140: 29 e0 ldi r18, 0x09 ; 9
13142: b5 95 asr r27
13144: a7 95 ror r26
13146: 97 95 ror r25
13148: 87 95 ror r24
1314a: 2a 95 dec r18
1314c: d1 f7 brne .-12 ; 0x13142 <DatenUebertragung+0x37a>
1314e: 80 93 30 0a sts 0x0A30, r24
13152: 1f 92 push r1
13154: 8e e0 ldi r24, 0x0E ; 14
13156: 8f 93 push r24
13158: 1f 93 push r17
1315a: 0f 93 push r16
1315c: 81 e0 ldi r24, 0x01 ; 1
1315e: 8f 93 push r24
13160: 8f 93 push r24
13162: 83 e4 ldi r24, 0x43 ; 67
13164: 8f 93 push r24
13166: ff d8 rcall .-3586 ; 0x12366 <SendOutData>
13168: 80 91 ef 04 lds r24, 0x04EF
1316c: 90 91 f0 04 lds r25, 0x04F0
13170: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
13174: 90 93 37 0a sts 0x0A37, r25
13178: 80 93 36 0a sts 0x0A36, r24
1317c: 0f b6 in r0, 0x3f ; 63
1317e: f8 94 cli
13180: de bf out 0x3e, r29 ; 62
13182: 0f be out 0x3f, r0 ; 63
13184: cd bf out 0x3d, r28 ; 61
13186: 60 91 b6 02 lds r22, 0x02B6
1318a: 6f 3f cpi r22, 0xFF ; 255
1318c: 39 f1 breq .+78 ; 0x131dc <DatenUebertragung+0x414>
1318e: 90 e1 ldi r25, 0x10 ; 16
13190: 69 9f mul r22, r25
13192: b0 01 movw r22, r0
13194: 11 24 eor r1, r1
13196: 60 5b subi r22, 0xB0 ; 176
13198: 7a 4e sbci r23, 0xEA ; 234
1319a: 40 e1 ldi r20, 0x10 ; 16
1319c: 50 e0 ldi r21, 0x00 ; 0
1319e: 8e 01 movw r16, r28
131a0: 0f 5f subi r16, 0xFF ; 255
131a2: 1f 4f sbci r17, 0xFF ; 255
131a4: c8 01 movw r24, r16
131a6: b8 d2 rcall .+1392 ; 0x13718 <memcpy_P>
131a8: 1f 92 push r1
131aa: 80 e1 ldi r24, 0x10 ; 16
131ac: 8f 93 push r24
131ae: 1f 93 push r17
131b0: 0f 93 push r16
131b2: 1f 92 push r1
131b4: 21 e0 ldi r18, 0x01 ; 1
131b6: 2f 93 push r18
131b8: 86 eb ldi r24, 0xB6 ; 182
131ba: 92 e0 ldi r25, 0x02 ; 2
131bc: 9f 93 push r25
131be: 8f 93 push r24
131c0: 82 e0 ldi r24, 0x02 ; 2
131c2: 8f 93 push r24
131c4: 2f 93 push r18
131c6: 81 e4 ldi r24, 0x41 ; 65
131c8: 8f 93 push r24
131ca: cd d8 rcall .-3686 ; 0x12366 <SendOutData>
131cc: 8f ef ldi r24, 0xFF ; 255
131ce: 80 93 b6 02 sts 0x02B6, r24
131d2: 0f b6 in r0, 0x3f ; 63
131d4: f8 94 cli
131d6: de bf out 0x3e, r29 ; 62
131d8: 0f be out 0x3f, r0 ; 63
131da: cd bf out 0x3d, r28 ; 61
131dc: 80 91 65 0c lds r24, 0x0C65
131e0: 88 23 and r24, r24
131e2: b9 f0 breq .+46 ; 0x13212 <DatenUebertragung+0x44a>
131e4: 80 91 b7 02 lds r24, 0x02B7
131e8: 88 23 and r24, r24
131ea: 99 f0 breq .+38 ; 0x13212 <DatenUebertragung+0x44a>
131ec: 1f 92 push r1
131ee: 21 e0 ldi r18, 0x01 ; 1
131f0: 2f 93 push r18
131f2: 85 e6 ldi r24, 0x65 ; 101
131f4: 9c e0 ldi r25, 0x0C ; 12
131f6: 9f 93 push r25
131f8: 8f 93 push r24
131fa: 2f 93 push r18
131fc: 2f 93 push r18
131fe: 82 e4 ldi r24, 0x42 ; 66
13200: 8f 93 push r24
13202: b1 d8 rcall .-3742 ; 0x12366 <SendOutData>
13204: 10 92 65 0c sts 0x0C65, r1
13208: 0f b6 in r0, 0x3f ; 63
1320a: f8 94 cli
1320c: de bf out 0x3e, r29 ; 62
1320e: 0f be out 0x3f, r0 ; 63
13210: cd bf out 0x3d, r28 ; 61
13212: 80 91 fc 04 lds r24, 0x04FC
13216: 88 23 and r24, r24
13218: c1 f0 breq .+48 ; 0x1324a <DatenUebertragung+0x482>
1321a: 80 91 b7 02 lds r24, 0x02B7
1321e: 88 23 and r24, r24
13220: a1 f0 breq .+40 ; 0x1324a <DatenUebertragung+0x482>
13222: 1f 92 push r1
13224: 86 e4 ldi r24, 0x46 ; 70
13226: 8f 93 push r24
13228: 8e e0 ldi r24, 0x0E ; 14
1322a: 98 e0 ldi r25, 0x08 ; 8
1322c: 9f 93 push r25
1322e: 8f 93 push r24
13230: 81 e0 ldi r24, 0x01 ; 1
13232: 8f 93 push r24
13234: 8f 93 push r24
13236: 80 e5 ldi r24, 0x50 ; 80
13238: 8f 93 push r24
1323a: 95 d8 rcall .-3798 ; 0x12366 <SendOutData>
1323c: 10 92 fc 04 sts 0x04FC, r1
13240: 0f b6 in r0, 0x3f ; 63
13242: f8 94 cli
13244: de bf out 0x3e, r29 ; 62
13246: 0f be out 0x3f, r0 ; 63
13248: cd bf out 0x3d, r28 ; 61
1324a: 80 91 67 0a lds r24, 0x0A67
1324e: 90 91 68 0a lds r25, 0x0A68
13252: 0e 94 4f 88 call 0x1109e ; 0x1109e <CheckDelay>
13256: 88 23 and r24, r24
13258: 09 f4 brne .+2 ; 0x1325c <DatenUebertragung+0x494>
1325a: 4a c0 rjmp .+148 ; 0x132f0 <DatenUebertragung+0x528>
1325c: 80 91 b7 02 lds r24, 0x02B7
13260: 88 23 and r24, r24
13262: 09 f4 brne .+2 ; 0x13266 <DatenUebertragung+0x49e>
13264: 45 c0 rjmp .+138 ; 0x132f0 <DatenUebertragung+0x528>
13266: 80 91 a4 02 lds r24, 0x02A4
1326a: 81 11 cpse r24, r1
1326c: 2b c0 rjmp .+86 ; 0x132c4 <DatenUebertragung+0x4fc>
1326e: 84 e5 ldi r24, 0x54 ; 84
13270: 9a e0 ldi r25, 0x0A ; 10
13272: 20 91 c7 08 lds r18, 0x08C7
13276: 30 91 c8 08 lds r19, 0x08C8
1327a: 30 93 55 0a sts 0x0A55, r19
1327e: 20 93 54 0a sts 0x0A54, r18
13282: 20 91 c9 08 lds r18, 0x08C9
13286: 30 91 ca 08 lds r19, 0x08CA
1328a: 30 93 57 0a sts 0x0A57, r19
1328e: 20 93 56 0a sts 0x0A56, r18
13292: 20 91 de 03 lds r18, 0x03DE
13296: 20 93 58 0a sts 0x0A58, r18
1329a: 20 91 dd 03 lds r18, 0x03DD
1329e: 20 93 59 0a sts 0x0A59, r18
132a2: 1f 92 push r1
132a4: 28 e0 ldi r18, 0x08 ; 8
132a6: 2f 93 push r18
132a8: 9f 93 push r25
132aa: 8f 93 push r24
132ac: 81 e0 ldi r24, 0x01 ; 1
132ae: 8f 93 push r24
132b0: 83 e0 ldi r24, 0x03 ; 3
132b2: 8f 93 push r24
132b4: 8b e6 ldi r24, 0x6B ; 107
132b6: 8f 93 push r24
132b8: 56 d8 rcall .-3924 ; 0x12366 <SendOutData>
132ba: 0f b6 in r0, 0x3f ; 63
132bc: f8 94 cli
132be: de bf out 0x3e, r29 ; 62
132c0: 0f be out 0x3f, r0 ; 63
132c2: cd bf out 0x3d, r28 ; 61
132c4: 80 91 5a 0a lds r24, 0x0A5A
132c8: 85 30 cpi r24, 0x05 ; 5
132ca: 18 f0 brcs .+6 ; 0x132d2 <DatenUebertragung+0x50a>
132cc: 86 e0 ldi r24, 0x06 ; 6
132ce: 80 93 5a 0a sts 0x0A5A, r24
132d2: 80 91 c8 04 lds r24, 0x04C8
132d6: 88 23 and r24, r24
132d8: 19 f0 breq .+6 ; 0x132e0 <DatenUebertragung+0x518>
132da: 83 e6 ldi r24, 0x63 ; 99
132dc: 90 e0 ldi r25, 0x00 ; 0
132de: 02 c0 rjmp .+4 ; 0x132e4 <DatenUebertragung+0x51c>
132e0: 87 ee ldi r24, 0xE7 ; 231
132e2: 93 e0 ldi r25, 0x03 ; 3
132e4: 0e 94 46 88 call 0x1108c ; 0x1108c <SetDelay>
132e8: 90 93 68 0a sts 0x0A68, r25
132ec: 80 93 67 0a sts 0x0A67, r24
132f0: 60 96 adiw r28, 0x10 ; 16
132f2: 0f b6 in r0, 0x3f ; 63
132f4: f8 94 cli
132f6: de bf out 0x3e, r29 ; 62
132f8: 0f be out 0x3f, r0 ; 63
132fa: cd bf out 0x3d, r28 ; 61
132fc: df 91 pop r29
132fe: cf 91 pop r28
13300: 1f 91 pop r17
13302: 0f 91 pop r16
13304: 08 95 ret
 
00013306 <User_Receiver_Init>:
13306: 08 95 ret
 
00013308 <User_RX_Parser>:
13308: 08 95 ret
 
0001330a <__subsf3>:
1330a: 50 58 subi r21, 0x80 ; 128
 
0001330c <__addsf3>:
1330c: bb 27 eor r27, r27
1330e: aa 27 eor r26, r26
13310: 0e d0 rcall .+28 ; 0x1332e <__addsf3x>
13312: e0 c0 rjmp .+448 ; 0x134d4 <__fp_round>
13314: d1 d0 rcall .+418 ; 0x134b8 <__fp_pscA>
13316: 30 f0 brcs .+12 ; 0x13324 <__addsf3+0x18>
13318: d6 d0 rcall .+428 ; 0x134c6 <__fp_pscB>
1331a: 20 f0 brcs .+8 ; 0x13324 <__addsf3+0x18>
1331c: 31 f4 brne .+12 ; 0x1332a <__addsf3+0x1e>
1331e: 9f 3f cpi r25, 0xFF ; 255
13320: 11 f4 brne .+4 ; 0x13326 <__addsf3+0x1a>
13322: 1e f4 brtc .+6 ; 0x1332a <__addsf3+0x1e>
13324: c6 c0 rjmp .+396 ; 0x134b2 <__fp_nan>
13326: 0e f4 brtc .+2 ; 0x1332a <__addsf3+0x1e>
13328: e0 95 com r30
1332a: e7 fb bst r30, 7
1332c: bc c0 rjmp .+376 ; 0x134a6 <__fp_inf>
 
0001332e <__addsf3x>:
1332e: e9 2f mov r30, r25
13330: e2 d0 rcall .+452 ; 0x134f6 <__fp_split3>
13332: 80 f3 brcs .-32 ; 0x13314 <__addsf3+0x8>
13334: ba 17 cp r27, r26
13336: 62 07 cpc r22, r18
13338: 73 07 cpc r23, r19
1333a: 84 07 cpc r24, r20
1333c: 95 07 cpc r25, r21
1333e: 18 f0 brcs .+6 ; 0x13346 <__addsf3x+0x18>
13340: 71 f4 brne .+28 ; 0x1335e <__addsf3x+0x30>
13342: 9e f5 brtc .+102 ; 0x133aa <__addsf3x+0x7c>
13344: fa c0 rjmp .+500 ; 0x1353a <__fp_zero>
13346: 0e f4 brtc .+2 ; 0x1334a <__addsf3x+0x1c>
13348: e0 95 com r30
1334a: 0b 2e mov r0, r27
1334c: ba 2f mov r27, r26
1334e: a0 2d mov r26, r0
13350: 0b 01 movw r0, r22
13352: b9 01 movw r22, r18
13354: 90 01 movw r18, r0
13356: 0c 01 movw r0, r24
13358: ca 01 movw r24, r20
1335a: a0 01 movw r20, r0
1335c: 11 24 eor r1, r1
1335e: ff 27 eor r31, r31
13360: 59 1b sub r21, r25
13362: 99 f0 breq .+38 ; 0x1338a <__addsf3x+0x5c>
13364: 59 3f cpi r21, 0xF9 ; 249
13366: 50 f4 brcc .+20 ; 0x1337c <__addsf3x+0x4e>
13368: 50 3e cpi r21, 0xE0 ; 224
1336a: 68 f1 brcs .+90 ; 0x133c6 <__addsf3x+0x98>
1336c: 1a 16 cp r1, r26
1336e: f0 40 sbci r31, 0x00 ; 0
13370: a2 2f mov r26, r18
13372: 23 2f mov r18, r19
13374: 34 2f mov r19, r20
13376: 44 27 eor r20, r20
13378: 58 5f subi r21, 0xF8 ; 248
1337a: f3 cf rjmp .-26 ; 0x13362 <__addsf3x+0x34>
1337c: 46 95 lsr r20
1337e: 37 95 ror r19
13380: 27 95 ror r18
13382: a7 95 ror r26
13384: f0 40 sbci r31, 0x00 ; 0
13386: 53 95 inc r21
13388: c9 f7 brne .-14 ; 0x1337c <__addsf3x+0x4e>
1338a: 7e f4 brtc .+30 ; 0x133aa <__addsf3x+0x7c>
1338c: 1f 16 cp r1, r31
1338e: ba 0b sbc r27, r26
13390: 62 0b sbc r22, r18
13392: 73 0b sbc r23, r19
13394: 84 0b sbc r24, r20
13396: ba f0 brmi .+46 ; 0x133c6 <__addsf3x+0x98>
13398: 91 50 subi r25, 0x01 ; 1
1339a: a1 f0 breq .+40 ; 0x133c4 <__addsf3x+0x96>
1339c: ff 0f add r31, r31
1339e: bb 1f adc r27, r27
133a0: 66 1f adc r22, r22
133a2: 77 1f adc r23, r23
133a4: 88 1f adc r24, r24
133a6: c2 f7 brpl .-16 ; 0x13398 <__addsf3x+0x6a>
133a8: 0e c0 rjmp .+28 ; 0x133c6 <__addsf3x+0x98>
133aa: ba 0f add r27, r26
133ac: 62 1f adc r22, r18
133ae: 73 1f adc r23, r19
133b0: 84 1f adc r24, r20
133b2: 48 f4 brcc .+18 ; 0x133c6 <__addsf3x+0x98>
133b4: 87 95 ror r24
133b6: 77 95 ror r23
133b8: 67 95 ror r22
133ba: b7 95 ror r27
133bc: f7 95 ror r31
133be: 9e 3f cpi r25, 0xFE ; 254
133c0: 08 f0 brcs .+2 ; 0x133c4 <__addsf3x+0x96>
133c2: b3 cf rjmp .-154 ; 0x1332a <__addsf3+0x1e>
133c4: 93 95 inc r25
133c6: 88 0f add r24, r24
133c8: 08 f0 brcs .+2 ; 0x133cc <__addsf3x+0x9e>
133ca: 99 27 eor r25, r25
133cc: ee 0f add r30, r30
133ce: 97 95 ror r25
133d0: 87 95 ror r24
133d2: 08 95 ret
 
000133d4 <__fixunssfsi>:
133d4: 98 d0 rcall .+304 ; 0x13506 <__fp_splitA>
133d6: 88 f0 brcs .+34 ; 0x133fa <__fixunssfsi+0x26>
133d8: 9f 57 subi r25, 0x7F ; 127
133da: 90 f0 brcs .+36 ; 0x13400 <__fixunssfsi+0x2c>
133dc: b9 2f mov r27, r25
133de: 99 27 eor r25, r25
133e0: b7 51 subi r27, 0x17 ; 23
133e2: a0 f0 brcs .+40 ; 0x1340c <__fixunssfsi+0x38>
133e4: d1 f0 breq .+52 ; 0x1341a <__fixunssfsi+0x46>
133e6: 66 0f add r22, r22
133e8: 77 1f adc r23, r23
133ea: 88 1f adc r24, r24
133ec: 99 1f adc r25, r25
133ee: 1a f0 brmi .+6 ; 0x133f6 <__fixunssfsi+0x22>
133f0: ba 95 dec r27
133f2: c9 f7 brne .-14 ; 0x133e6 <__fixunssfsi+0x12>
133f4: 12 c0 rjmp .+36 ; 0x1341a <__fixunssfsi+0x46>
133f6: b1 30 cpi r27, 0x01 ; 1
133f8: 81 f0 breq .+32 ; 0x1341a <__fixunssfsi+0x46>
133fa: 9f d0 rcall .+318 ; 0x1353a <__fp_zero>
133fc: b1 e0 ldi r27, 0x01 ; 1
133fe: 08 95 ret
13400: 9c c0 rjmp .+312 ; 0x1353a <__fp_zero>
13402: 67 2f mov r22, r23
13404: 78 2f mov r23, r24
13406: 88 27 eor r24, r24
13408: b8 5f subi r27, 0xF8 ; 248
1340a: 39 f0 breq .+14 ; 0x1341a <__fixunssfsi+0x46>
1340c: b9 3f cpi r27, 0xF9 ; 249
1340e: cc f3 brlt .-14 ; 0x13402 <__fixunssfsi+0x2e>
13410: 86 95 lsr r24
13412: 77 95 ror r23
13414: 67 95 ror r22
13416: b3 95 inc r27
13418: d9 f7 brne .-10 ; 0x13410 <__fixunssfsi+0x3c>
1341a: 3e f4 brtc .+14 ; 0x1342a <__fixunssfsi+0x56>
1341c: 90 95 com r25
1341e: 80 95 com r24
13420: 70 95 com r23
13422: 61 95 neg r22
13424: 7f 4f sbci r23, 0xFF ; 255
13426: 8f 4f sbci r24, 0xFF ; 255
13428: 9f 4f sbci r25, 0xFF ; 255
1342a: 08 95 ret
 
0001342c <__floatunsisf>:
1342c: e8 94 clt
1342e: 09 c0 rjmp .+18 ; 0x13442 <__floatsisf+0x12>
 
00013430 <__floatsisf>:
13430: 97 fb bst r25, 7
13432: 3e f4 brtc .+14 ; 0x13442 <__floatsisf+0x12>
13434: 90 95 com r25
13436: 80 95 com r24
13438: 70 95 com r23
1343a: 61 95 neg r22
1343c: 7f 4f sbci r23, 0xFF ; 255
1343e: 8f 4f sbci r24, 0xFF ; 255
13440: 9f 4f sbci r25, 0xFF ; 255
13442: 99 23 and r25, r25
13444: a9 f0 breq .+42 ; 0x13470 <__floatsisf+0x40>
13446: f9 2f mov r31, r25
13448: 96 e9 ldi r25, 0x96 ; 150
1344a: bb 27 eor r27, r27
1344c: 93 95 inc r25
1344e: f6 95 lsr r31
13450: 87 95 ror r24
13452: 77 95 ror r23
13454: 67 95 ror r22
13456: b7 95 ror r27
13458: f1 11 cpse r31, r1
1345a: f8 cf rjmp .-16 ; 0x1344c <__floatsisf+0x1c>
1345c: fa f4 brpl .+62 ; 0x1349c <__floatsisf+0x6c>
1345e: bb 0f add r27, r27
13460: 11 f4 brne .+4 ; 0x13466 <__floatsisf+0x36>
13462: 60 ff sbrs r22, 0
13464: 1b c0 rjmp .+54 ; 0x1349c <__floatsisf+0x6c>
13466: 6f 5f subi r22, 0xFF ; 255
13468: 7f 4f sbci r23, 0xFF ; 255
1346a: 8f 4f sbci r24, 0xFF ; 255
1346c: 9f 4f sbci r25, 0xFF ; 255
1346e: 16 c0 rjmp .+44 ; 0x1349c <__floatsisf+0x6c>
13470: 88 23 and r24, r24
13472: 11 f0 breq .+4 ; 0x13478 <__floatsisf+0x48>
13474: 96 e9 ldi r25, 0x96 ; 150
13476: 11 c0 rjmp .+34 ; 0x1349a <__floatsisf+0x6a>
13478: 77 23 and r23, r23
1347a: 21 f0 breq .+8 ; 0x13484 <__floatsisf+0x54>
1347c: 9e e8 ldi r25, 0x8E ; 142
1347e: 87 2f mov r24, r23
13480: 76 2f mov r23, r22
13482: 05 c0 rjmp .+10 ; 0x1348e <__floatsisf+0x5e>
13484: 66 23 and r22, r22
13486: 71 f0 breq .+28 ; 0x134a4 <__floatsisf+0x74>
13488: 96 e8 ldi r25, 0x86 ; 134
1348a: 86 2f mov r24, r22
1348c: 70 e0 ldi r23, 0x00 ; 0
1348e: 60 e0 ldi r22, 0x00 ; 0
13490: 2a f0 brmi .+10 ; 0x1349c <__floatsisf+0x6c>
13492: 9a 95 dec r25
13494: 66 0f add r22, r22
13496: 77 1f adc r23, r23
13498: 88 1f adc r24, r24
1349a: da f7 brpl .-10 ; 0x13492 <__floatsisf+0x62>
1349c: 88 0f add r24, r24
1349e: 96 95 lsr r25
134a0: 87 95 ror r24
134a2: 97 f9 bld r25, 7
134a4: 08 95 ret
 
000134a6 <__fp_inf>:
134a6: 97 f9 bld r25, 7
134a8: 9f 67 ori r25, 0x7F ; 127
134aa: 80 e8 ldi r24, 0x80 ; 128
134ac: 70 e0 ldi r23, 0x00 ; 0
134ae: 60 e0 ldi r22, 0x00 ; 0
134b0: 08 95 ret
 
000134b2 <__fp_nan>:
134b2: 9f ef ldi r25, 0xFF ; 255
134b4: 80 ec ldi r24, 0xC0 ; 192
134b6: 08 95 ret
 
000134b8 <__fp_pscA>:
134b8: 00 24 eor r0, r0
134ba: 0a 94 dec r0
134bc: 16 16 cp r1, r22
134be: 17 06 cpc r1, r23
134c0: 18 06 cpc r1, r24
134c2: 09 06 cpc r0, r25
134c4: 08 95 ret
 
000134c6 <__fp_pscB>:
134c6: 00 24 eor r0, r0
134c8: 0a 94 dec r0
134ca: 12 16 cp r1, r18
134cc: 13 06 cpc r1, r19
134ce: 14 06 cpc r1, r20
134d0: 05 06 cpc r0, r21
134d2: 08 95 ret
 
000134d4 <__fp_round>:
134d4: 09 2e mov r0, r25
134d6: 03 94 inc r0
134d8: 00 0c add r0, r0
134da: 11 f4 brne .+4 ; 0x134e0 <__fp_round+0xc>
134dc: 88 23 and r24, r24
134de: 52 f0 brmi .+20 ; 0x134f4 <__fp_round+0x20>
134e0: bb 0f add r27, r27
134e2: 40 f4 brcc .+16 ; 0x134f4 <__fp_round+0x20>
134e4: bf 2b or r27, r31
134e6: 11 f4 brne .+4 ; 0x134ec <__fp_round+0x18>
134e8: 60 ff sbrs r22, 0
134ea: 04 c0 rjmp .+8 ; 0x134f4 <__fp_round+0x20>
134ec: 6f 5f subi r22, 0xFF ; 255
134ee: 7f 4f sbci r23, 0xFF ; 255
134f0: 8f 4f sbci r24, 0xFF ; 255
134f2: 9f 4f sbci r25, 0xFF ; 255
134f4: 08 95 ret
 
000134f6 <__fp_split3>:
134f6: 57 fd sbrc r21, 7
134f8: 90 58 subi r25, 0x80 ; 128
134fa: 44 0f add r20, r20
134fc: 55 1f adc r21, r21
134fe: 59 f0 breq .+22 ; 0x13516 <__fp_splitA+0x10>
13500: 5f 3f cpi r21, 0xFF ; 255
13502: 71 f0 breq .+28 ; 0x13520 <__fp_splitA+0x1a>
13504: 47 95 ror r20
 
00013506 <__fp_splitA>:
13506: 88 0f add r24, r24
13508: 97 fb bst r25, 7
1350a: 99 1f adc r25, r25
1350c: 61 f0 breq .+24 ; 0x13526 <__fp_splitA+0x20>
1350e: 9f 3f cpi r25, 0xFF ; 255
13510: 79 f0 breq .+30 ; 0x13530 <__fp_splitA+0x2a>
13512: 87 95 ror r24
13514: 08 95 ret
13516: 12 16 cp r1, r18
13518: 13 06 cpc r1, r19
1351a: 14 06 cpc r1, r20
1351c: 55 1f adc r21, r21
1351e: f2 cf rjmp .-28 ; 0x13504 <__fp_split3+0xe>
13520: 46 95 lsr r20
13522: f1 df rcall .-30 ; 0x13506 <__fp_splitA>
13524: 08 c0 rjmp .+16 ; 0x13536 <__fp_splitA+0x30>
13526: 16 16 cp r1, r22
13528: 17 06 cpc r1, r23
1352a: 18 06 cpc r1, r24
1352c: 99 1f adc r25, r25
1352e: f1 cf rjmp .-30 ; 0x13512 <__fp_splitA+0xc>
13530: 86 95 lsr r24
13532: 71 05 cpc r23, r1
13534: 61 05 cpc r22, r1
13536: 08 94 sec
13538: 08 95 ret
 
0001353a <__fp_zero>:
1353a: e8 94 clt
 
0001353c <__fp_szero>:
1353c: bb 27 eor r27, r27
1353e: 66 27 eor r22, r22
13540: 77 27 eor r23, r23
13542: cb 01 movw r24, r22
13544: 97 f9 bld r25, 7
13546: 08 95 ret
 
00013548 <__mulsi3>:
13548: db 01 movw r26, r22
1354a: 8f 93 push r24
1354c: 9f 93 push r25
1354e: 9d d0 rcall .+314 ; 0x1368a <__muluhisi3>
13550: bf 91 pop r27
13552: af 91 pop r26
13554: a2 9f mul r26, r18
13556: 80 0d add r24, r0
13558: 91 1d adc r25, r1
1355a: a3 9f mul r26, r19
1355c: 90 0d add r25, r0
1355e: b2 9f mul r27, r18
13560: 90 0d add r25, r0
13562: 11 24 eor r1, r1
13564: 08 95 ret
 
00013566 <__udivmodqi4>:
13566: 99 1b sub r25, r25
13568: 79 e0 ldi r23, 0x09 ; 9
1356a: 04 c0 rjmp .+8 ; 0x13574 <__udivmodqi4_ep>
 
0001356c <__udivmodqi4_loop>:
1356c: 99 1f adc r25, r25
1356e: 96 17 cp r25, r22
13570: 08 f0 brcs .+2 ; 0x13574 <__udivmodqi4_ep>
13572: 96 1b sub r25, r22
 
00013574 <__udivmodqi4_ep>:
13574: 88 1f adc r24, r24
13576: 7a 95 dec r23
13578: c9 f7 brne .-14 ; 0x1356c <__udivmodqi4_loop>
1357a: 80 95 com r24
1357c: 08 95 ret
 
0001357e <__udivmodhi4>:
1357e: aa 1b sub r26, r26
13580: bb 1b sub r27, r27
13582: 51 e1 ldi r21, 0x11 ; 17
13584: 07 c0 rjmp .+14 ; 0x13594 <__udivmodhi4_ep>
 
00013586 <__udivmodhi4_loop>:
13586: aa 1f adc r26, r26
13588: bb 1f adc r27, r27
1358a: a6 17 cp r26, r22
1358c: b7 07 cpc r27, r23
1358e: 10 f0 brcs .+4 ; 0x13594 <__udivmodhi4_ep>
13590: a6 1b sub r26, r22
13592: b7 0b sbc r27, r23
 
00013594 <__udivmodhi4_ep>:
13594: 88 1f adc r24, r24
13596: 99 1f adc r25, r25
13598: 5a 95 dec r21
1359a: a9 f7 brne .-22 ; 0x13586 <__udivmodhi4_loop>
1359c: 80 95 com r24
1359e: 90 95 com r25
135a0: bc 01 movw r22, r24
135a2: cd 01 movw r24, r26
135a4: 08 95 ret
 
000135a6 <__divmodhi4>:
135a6: 97 fb bst r25, 7
135a8: 07 2e mov r0, r23
135aa: 16 f4 brtc .+4 ; 0x135b0 <__divmodhi4+0xa>
135ac: 00 94 com r0
135ae: 06 d0 rcall .+12 ; 0x135bc <__divmodhi4_neg1>
135b0: 77 fd sbrc r23, 7
135b2: 08 d0 rcall .+16 ; 0x135c4 <__divmodhi4_neg2>
135b4: e4 df rcall .-56 ; 0x1357e <__udivmodhi4>
135b6: 07 fc sbrc r0, 7
135b8: 05 d0 rcall .+10 ; 0x135c4 <__divmodhi4_neg2>
135ba: 3e f4 brtc .+14 ; 0x135ca <__divmodhi4_exit>
 
000135bc <__divmodhi4_neg1>:
135bc: 90 95 com r25
135be: 81 95 neg r24
135c0: 9f 4f sbci r25, 0xFF ; 255
135c2: 08 95 ret
 
000135c4 <__divmodhi4_neg2>:
135c4: 70 95 com r23
135c6: 61 95 neg r22
135c8: 7f 4f sbci r23, 0xFF ; 255
 
000135ca <__divmodhi4_exit>:
135ca: 08 95 ret
 
000135cc <__udivmodsi4>:
135cc: a1 e2 ldi r26, 0x21 ; 33
135ce: 1a 2e mov r1, r26
135d0: aa 1b sub r26, r26
135d2: bb 1b sub r27, r27
135d4: fd 01 movw r30, r26
135d6: 0d c0 rjmp .+26 ; 0x135f2 <__udivmodsi4_ep>
 
000135d8 <__udivmodsi4_loop>:
135d8: aa 1f adc r26, r26
135da: bb 1f adc r27, r27
135dc: ee 1f adc r30, r30
135de: ff 1f adc r31, r31
135e0: a2 17 cp r26, r18
135e2: b3 07 cpc r27, r19
135e4: e4 07 cpc r30, r20
135e6: f5 07 cpc r31, r21
135e8: 20 f0 brcs .+8 ; 0x135f2 <__udivmodsi4_ep>
135ea: a2 1b sub r26, r18
135ec: b3 0b sbc r27, r19
135ee: e4 0b sbc r30, r20
135f0: f5 0b sbc r31, r21
 
000135f2 <__udivmodsi4_ep>:
135f2: 66 1f adc r22, r22
135f4: 77 1f adc r23, r23
135f6: 88 1f adc r24, r24
135f8: 99 1f adc r25, r25
135fa: 1a 94 dec r1
135fc: 69 f7 brne .-38 ; 0x135d8 <__udivmodsi4_loop>
135fe: 60 95 com r22
13600: 70 95 com r23
13602: 80 95 com r24
13604: 90 95 com r25
13606: 9b 01 movw r18, r22
13608: ac 01 movw r20, r24
1360a: bd 01 movw r22, r26
1360c: cf 01 movw r24, r30
1360e: 08 95 ret
 
00013610 <__divmodsi4>:
13610: 05 2e mov r0, r21
13612: 97 fb bst r25, 7
13614: 16 f4 brtc .+4 ; 0x1361a <__divmodsi4+0xa>
13616: 00 94 com r0
13618: 0f d0 rcall .+30 ; 0x13638 <__negsi2>
1361a: 57 fd sbrc r21, 7
1361c: 05 d0 rcall .+10 ; 0x13628 <__divmodsi4_neg2>
1361e: d6 df rcall .-84 ; 0x135cc <__udivmodsi4>
13620: 07 fc sbrc r0, 7
13622: 02 d0 rcall .+4 ; 0x13628 <__divmodsi4_neg2>
13624: 46 f4 brtc .+16 ; 0x13636 <__divmodsi4_exit>
13626: 08 c0 rjmp .+16 ; 0x13638 <__negsi2>
 
00013628 <__divmodsi4_neg2>:
13628: 50 95 com r21
1362a: 40 95 com r20
1362c: 30 95 com r19
1362e: 21 95 neg r18
13630: 3f 4f sbci r19, 0xFF ; 255
13632: 4f 4f sbci r20, 0xFF ; 255
13634: 5f 4f sbci r21, 0xFF ; 255
 
00013636 <__divmodsi4_exit>:
13636: 08 95 ret
 
00013638 <__negsi2>:
13638: 90 95 com r25
1363a: 80 95 com r24
1363c: 70 95 com r23
1363e: 61 95 neg r22
13640: 7f 4f sbci r23, 0xFF ; 255
13642: 8f 4f sbci r24, 0xFF ; 255
13644: 9f 4f sbci r25, 0xFF ; 255
13646: 08 95 ret
 
00013648 <__tablejump2__>:
13648: ee 0f add r30, r30
1364a: ff 1f adc r31, r31
 
0001364c <__tablejump__>:
1364c: 05 90 lpm r0, Z+
1364e: f4 91 lpm r31, Z
13650: e0 2d mov r30, r0
13652: 09 94 ijmp
 
00013654 <__mulhisi3>:
13654: 05 d0 rcall .+10 ; 0x13660 <__umulhisi3>
13656: 33 23 and r19, r19
13658: 12 f4 brpl .+4 ; 0x1365e <__mulhisi3+0xa>
1365a: 8a 1b sub r24, r26
1365c: 9b 0b sbc r25, r27
1365e: 10 c0 rjmp .+32 ; 0x13680 <__usmulhisi3_tail>
 
00013660 <__umulhisi3>:
13660: a2 9f mul r26, r18
13662: b0 01 movw r22, r0
13664: b3 9f mul r27, r19
13666: c0 01 movw r24, r0
13668: a3 9f mul r26, r19
1366a: 70 0d add r23, r0
1366c: 81 1d adc r24, r1
1366e: 11 24 eor r1, r1
13670: 91 1d adc r25, r1
13672: b2 9f mul r27, r18
13674: 70 0d add r23, r0
13676: 81 1d adc r24, r1
13678: 11 24 eor r1, r1
1367a: 91 1d adc r25, r1
1367c: 08 95 ret
 
0001367e <__usmulhisi3>:
1367e: f0 df rcall .-32 ; 0x13660 <__umulhisi3>
 
00013680 <__usmulhisi3_tail>:
13680: b7 ff sbrs r27, 7
13682: 08 95 ret
13684: 82 1b sub r24, r18
13686: 93 0b sbc r25, r19
13688: 08 95 ret
 
0001368a <__muluhisi3>:
1368a: ea df rcall .-44 ; 0x13660 <__umulhisi3>
1368c: a5 9f mul r26, r21
1368e: 90 0d add r25, r0
13690: b4 9f mul r27, r20
13692: 90 0d add r25, r0
13694: a4 9f mul r26, r20
13696: 80 0d add r24, r0
13698: 91 1d adc r25, r1
1369a: 11 24 eor r1, r1
1369c: 08 95 ret
 
0001369e <__mulshisi3>:
1369e: b7 ff sbrs r27, 7
136a0: f4 cf rjmp .-24 ; 0x1368a <__muluhisi3>
 
000136a2 <__mulohisi3>:
136a2: f3 df rcall .-26 ; 0x1368a <__muluhisi3>
136a4: 82 1b sub r24, r18
136a6: 93 0b sbc r25, r19
136a8: 08 95 ret
 
000136aa <__prologue_saves__>:
136aa: 2f 92 push r2
136ac: 3f 92 push r3
136ae: 4f 92 push r4
136b0: 5f 92 push r5
136b2: 6f 92 push r6
136b4: 7f 92 push r7
136b6: 8f 92 push r8
136b8: 9f 92 push r9
136ba: af 92 push r10
136bc: bf 92 push r11
136be: cf 92 push r12
136c0: df 92 push r13
136c2: ef 92 push r14
136c4: ff 92 push r15
136c6: 0f 93 push r16
136c8: 1f 93 push r17
136ca: cf 93 push r28
136cc: df 93 push r29
136ce: cd b7 in r28, 0x3d ; 61
136d0: de b7 in r29, 0x3e ; 62
136d2: ca 1b sub r28, r26
136d4: db 0b sbc r29, r27
136d6: 0f b6 in r0, 0x3f ; 63
136d8: f8 94 cli
136da: de bf out 0x3e, r29 ; 62
136dc: 0f be out 0x3f, r0 ; 63
136de: cd bf out 0x3d, r28 ; 61
136e0: 09 94 ijmp
 
000136e2 <__epilogue_restores__>:
136e2: 2a 88 ldd r2, Y+18 ; 0x12
136e4: 39 88 ldd r3, Y+17 ; 0x11
136e6: 48 88 ldd r4, Y+16 ; 0x10
136e8: 5f 84 ldd r5, Y+15 ; 0x0f
136ea: 6e 84 ldd r6, Y+14 ; 0x0e
136ec: 7d 84 ldd r7, Y+13 ; 0x0d
136ee: 8c 84 ldd r8, Y+12 ; 0x0c
136f0: 9b 84 ldd r9, Y+11 ; 0x0b
136f2: aa 84 ldd r10, Y+10 ; 0x0a
136f4: b9 84 ldd r11, Y+9 ; 0x09
136f6: c8 84 ldd r12, Y+8 ; 0x08
136f8: df 80 ldd r13, Y+7 ; 0x07
136fa: ee 80 ldd r14, Y+6 ; 0x06
136fc: fd 80 ldd r15, Y+5 ; 0x05
136fe: 0c 81 ldd r16, Y+4 ; 0x04
13700: 1b 81 ldd r17, Y+3 ; 0x03
13702: aa 81 ldd r26, Y+2 ; 0x02
13704: b9 81 ldd r27, Y+1 ; 0x01
13706: ce 0f add r28, r30
13708: d1 1d adc r29, r1
1370a: 0f b6 in r0, 0x3f ; 63
1370c: f8 94 cli
1370e: de bf out 0x3e, r29 ; 62
13710: 0f be out 0x3f, r0 ; 63
13712: cd bf out 0x3d, r28 ; 61
13714: ed 01 movw r28, r26
13716: 08 95 ret
 
00013718 <memcpy_P>:
13718: fb 01 movw r30, r22
1371a: dc 01 movw r26, r24
1371c: 02 c0 rjmp .+4 ; 0x13722 <memcpy_P+0xa>
1371e: 05 90 lpm r0, Z+
13720: 0d 92 st X+, r0
13722: 41 50 subi r20, 0x01 ; 1
13724: 50 40 sbci r21, 0x00 ; 0
13726: d8 f7 brcc .-10 ; 0x1371e <memcpy_P+0x6>
13728: 08 95 ret
 
0001372a <memchr>:
1372a: fc 01 movw r30, r24
1372c: 41 50 subi r20, 0x01 ; 1
1372e: 50 40 sbci r21, 0x00 ; 0
13730: 30 f0 brcs .+12 ; 0x1373e <memchr+0x14>
13732: 01 90 ld r0, Z+
13734: 06 16 cp r0, r22
13736: d1 f7 brne .-12 ; 0x1372c <memchr+0x2>
13738: 31 97 sbiw r30, 0x01 ; 1
1373a: cf 01 movw r24, r30
1373c: 08 95 ret
1373e: 88 27 eor r24, r24
13740: 99 27 eor r25, r25
13742: 08 95 ret
 
00013744 <memcpy>:
13744: fb 01 movw r30, r22
13746: dc 01 movw r26, r24
13748: 02 c0 rjmp .+4 ; 0x1374e <memcpy+0xa>
1374a: 01 90 ld r0, Z+
1374c: 0d 92 st X+, r0
1374e: 41 50 subi r20, 0x01 ; 1
13750: 50 40 sbci r21, 0x00 ; 0
13752: d8 f7 brcc .-10 ; 0x1374a <memcpy+0x6>
13754: 08 95 ret
 
00013756 <__eerd_block_m1284>:
13756: dc 01 movw r26, r24
13758: cb 01 movw r24, r22
 
0001375a <__eerd_blraw_m1284>:
1375a: fc 01 movw r30, r24
1375c: f9 99 sbic 0x1f, 1 ; 31
1375e: fe cf rjmp .-4 ; 0x1375c <__eerd_blraw_m1284+0x2>
13760: 06 c0 rjmp .+12 ; 0x1376e <__eerd_blraw_m1284+0x14>
13762: f2 bd out 0x22, r31 ; 34
13764: e1 bd out 0x21, r30 ; 33
13766: f8 9a sbi 0x1f, 0 ; 31
13768: 31 96 adiw r30, 0x01 ; 1
1376a: 00 b4 in r0, 0x20 ; 32
1376c: 0d 92 st X+, r0
1376e: 41 50 subi r20, 0x01 ; 1
13770: 50 40 sbci r21, 0x00 ; 0
13772: b8 f7 brcc .-18 ; 0x13762 <__eerd_blraw_m1284+0x8>
13774: 08 95 ret
 
00013776 <__eerd_byte_m1284>:
13776: f9 99 sbic 0x1f, 1 ; 31
13778: fe cf rjmp .-4 ; 0x13776 <__eerd_byte_m1284>
1377a: 92 bd out 0x22, r25 ; 34
1377c: 81 bd out 0x21, r24 ; 33
1377e: f8 9a sbi 0x1f, 0 ; 31
13780: 99 27 eor r25, r25
13782: 80 b5 in r24, 0x20 ; 32
13784: 08 95 ret
 
00013786 <__eerd_word_m1284>:
13786: a8 e1 ldi r26, 0x18 ; 24
13788: b0 e0 ldi r27, 0x00 ; 0
1378a: 42 e0 ldi r20, 0x02 ; 2
1378c: 50 e0 ldi r21, 0x00 ; 0
1378e: e5 cf rjmp .-54 ; 0x1375a <__eerd_blraw_m1284>
 
00013790 <__eewr_block_m1284>:
13790: dc 01 movw r26, r24
13792: cb 01 movw r24, r22
13794: 02 c0 rjmp .+4 ; 0x1379a <__eewr_block_m1284+0xa>
13796: 2d 91 ld r18, X+
13798: 05 d0 rcall .+10 ; 0x137a4 <__eewr_r18_m1284>
1379a: 41 50 subi r20, 0x01 ; 1
1379c: 50 40 sbci r21, 0x00 ; 0
1379e: d8 f7 brcc .-10 ; 0x13796 <__eewr_block_m1284+0x6>
137a0: 08 95 ret
 
000137a2 <__eewr_byte_m1284>:
137a2: 26 2f mov r18, r22
 
000137a4 <__eewr_r18_m1284>:
137a4: f9 99 sbic 0x1f, 1 ; 31
137a6: fe cf rjmp .-4 ; 0x137a4 <__eewr_r18_m1284>
137a8: 1f ba out 0x1f, r1 ; 31
137aa: 92 bd out 0x22, r25 ; 34
137ac: 81 bd out 0x21, r24 ; 33
137ae: 20 bd out 0x20, r18 ; 32
137b0: 0f b6 in r0, 0x3f ; 63
137b2: f8 94 cli
137b4: fa 9a sbi 0x1f, 2 ; 31
137b6: f9 9a sbi 0x1f, 1 ; 31
137b8: 0f be out 0x3f, r0 ; 63
137ba: 01 96 adiw r24, 0x01 ; 1
137bc: 08 95 ret
 
000137be <__eewr_word_m1284>:
137be: f1 df rcall .-30 ; 0x137a2 <__eewr_byte_m1284>
137c0: 27 2f mov r18, r23
137c2: f0 cf rjmp .-32 ; 0x137a4 <__eewr_r18_m1284>
 
000137c4 <_exit>:
137c4: f8 94 cli
 
000137c6 <__stop_program>:
137c6: ff cf rjmp .-2 ; 0x137c6 <__stop_program>
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/FlightCtrl.map
0,0 → 1,3281
Archive member included because of file (symbol)
 
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3.o)
fc.o (__addsf3)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3.o) (__addsf3x)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fixunssfsi.o)
fc.o (__fixunssfsi)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(floatsisf.o)
fc.o (__floatsisf)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_inf.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o) (__fp_inf)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_nan.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o) (__fp_nan)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscA.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o) (__fp_pscA)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscB.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o) (__fp_pscB)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_round.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3.o) (__fp_round)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_split3.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o) (__fp_split3)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_zero.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o) (__fp_zero)
C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
hottmenu.o (HoTTBlink)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
fc.o (__mulsi3)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
FlightCtrl.o (__udivmodqi4)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
analog.o (__udivmodhi4)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
fc.o (__divmodhi4)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o) (__udivmodsi4)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
analog.o (__divmodsi4)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o) (__negsi2)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o (exit)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
analog.o (__tablejump2__)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
analog.o (__do_copy_data)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
analog.o (__do_clear_bss)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
fc.o (__mulhisi3)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
fc.o (__umulhisi3)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
analog.o (__usmulhisi3)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
analog.o (__muluhisi3)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
fc.o (__mulshisi3)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o) (__prologue_saves__)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o) (__epilogue_restores__)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy_P.o)
uart.o (memcpy_P)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memchr.o)
C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o) (memchr)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy.o)
C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o) (memcpy)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_block_atmega1284.o)
eeprom.o (__eerd_block_m1284)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_byte_atmega1284.o)
eeprom.o (__eerd_byte_m1284)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_word_atmega1284.o)
eeprom.o (__eerd_word_m1284)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_block_atmega1284.o)
eeprom.o (__eewr_block_m1284)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_byte_atmega1284.o)
eeprom.o (__eewr_byte_m1284)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_word_atmega1284.o)
eeprom.o (__eewr_word_m1284)
 
Allocating common symbols
Common symbol size file
 
USART1_EX_TxBuffer 0x20 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
KopplungsteilNickRoll
0x2 fc.o
SPITransferCompleted
0x1 spi.o
KopplungsteilRollNick
0x2 fc.o
RequiredMotors 0x1 eeprom.o
Parameter_Servo4 0x1 fc.o
GPSInfo 0x8 spi.o
EE_Parameter 0x89 eeprom.o
DiffRoll 0x2 fc.o
MesswertRoll 0x2 fc.o
ElectricAirPacket 0x2c hottmenu.o
TrimNick 0x2 fc.o
Parameter_NaviGpsP 0x1 fc.o
ErsatzKompassInGrad
0x2 fc.o
GyroFaktorGier 0x1 fc.o
HoTTGeneral 0x2c hottmenu.o
Parameter_MaximumAltitude
0x1 fc.o
TrimRoll 0x2 fc.o
SPI_TX_Buffer 0x2 spi.o
MesswertNick 0x2 fc.o
NC_Version 0x5 spi.o
SPI_BufferIndex 0x1 spi.o
Aktuell_ay 0x2 analog.o
ToNaviCtrl 0x22 spi.o
Data3D 0xe uart.o
Parameter_NaviGpsI 0x1 fc.o
Capacity 0x7 capacity.o
Timer3D 0x2 uart.o
SPI_ChkSum 0x1 spi.o
RohMesswertRoll 0x2 fc.o
MIN_GAS 0x1 fc.o
HottKeyboard 0x1 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
CosAttitude 0x2 fc.o
Channels 0x1 rc.o
Debug_Timer 0x2 uart.o
RohMesswertNick 0x2 fc.o
IntegralFaktorGier 0x1 fc.o
fdknerTjg5i83th589v44
0x6 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
DiffNick 0x2 fc.o
MittelIntegralNick 0x4 fc.o
Parameter_Servo3 0x1 fc.o
VersionInfo 0xa uart.o
WPL_Name 0xa hottmenu.o
MotorTest 0x10 uart.o
SPI_RxBufferIndex 0x1 spi.o
NaviAccNick 0x2 fc.o
HoTT_RequestedSensor
0x1 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
Parameter_J16Timing
0x1 fc.o
MittelIntegralRoll 0x4 fc.o
Parameter_ExtraConfig
0x1 fc.o
VarioPacket 0x2c hottmenu.o
Parameter_Servo5 0x1 fc.o
SPI_RxDataValid 0x1 spi.o
PPM_in 0x46 rc.o
WinkelOut 0x8 uart.o
ExternControl 0xb uart.o
IntegralFaktor 0x1 fc.o
Aktuell_az 0x2 analog.o
RedundantMotor 0x3c twimaster.o
FromNaviCtrl 0x20 spi.o
StartLuftdruck 0x4 analog.o
_printf_P 0x2 FlightCtrl.o
tmp_motorwert 0x18 fc.o
Kompass_Timer 0x2 uart.o
RxdBuffer 0xdc uart.o
Mixer 0x4e eeprom.o
HoTT_TextPointer 0x1 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
Display_Timer 0x2 uart.o
Parameter_NaviGpsA 0x1 fc.o
ASCIIPacket 0xac hottmenu.o
TxdBuffer 0xdc uart.o
SPI_Buffer 0x20 spi.o
Parameter_GlobalConfig
0x1 fc.o
Aktuell_Nick 0x2 analog.o
Aktuell_Roll 0x2 analog.o
IlIlIlIIIIIIIlIllllll
0x23 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
Aktuell_ax 0x2 analog.o
Parameter_NaviWindCorrection
0x1 fc.o
s 0x1 fc.o
h 0x1 fc.o
Mittelwert_AccNick 0x2 fc.o
Parameter_NaviSpeedCompensation
0x1 fc.o
DebugOut 0x42 uart.o
DruckOffsetSetting 0x1 analog.o
FromNaviCtrl_Value 0x5 spi.o
BLConfig 0x8 twimaster.o
Motor 0xb4 twimaster.o
Aktuell_Gier 0x2 analog.o
Parameter_J17Timing
0x1 fc.o
GPSPacket 0x2c hottmenu.o
tim_main 0x2 timer0.o
MAX_GAS 0x1 fc.o
CompassCorrected 0x2 fc.o
MesswertGier 0x2 fc.o
Parameter_J16Bitmask
0x1 fc.o
ConfirmFrame 0x1 uart.o
NaviAccRoll 0x2 fc.o
GyroFaktor 0x1 fc.o
m 0x1 fc.o
ErsatzKompass 0x4 fc.o
Mittelwert_AccRoll 0x2 fc.o
Parameter_NaviGpsGain
0x1 fc.o
fgfdogjWEti45e9tjh394
0x4 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
DisplayBuff 0x50 menu.o
PPM_diff 0x46 rc.o
sBusBuffer 0x19 sbus.o
Parameter_ExternalControl
0x1 fc.o
Parameter_J17Bitmask
0x1 fc.o
Parameter_NaviGpsD 0x1 fc.o
 
Discarded input sections
 
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o
.text 0x00000000 0x0 analog.o
.data 0x00000000 0x0 analog.o
.bss 0x00000000 0x0 analog.o
.data.AnalogOffsetGier
0x00000000 0x1 analog.o
.data.AnalogOffsetRoll
0x00000000 0x1 analog.o
.data.AnalogOffsetNick
0x00000000 0x1 analog.o
.bss.AdWertGierFilter
0x00000000 0x2 analog.o
.text 0x00000000 0x0 capacity.o
.data 0x00000000 0x0 capacity.o
.bss 0x00000000 0x0 capacity.o
.text 0x00000000 0x0 debug.o
.data 0x00000000 0x0 debug.o
.bss 0x00000000 0x0 debug.o
.comment 0x00000000 0x31 debug.o
.text 0x00000000 0x0 eeprom.o
.data 0x00000000 0x0 eeprom.o
.bss 0x00000000 0x0 eeprom.o
.text 0x00000000 0x0 fc.o
.data 0x00000000 0x0 fc.o
.bss 0x00000000 0x0 fc.o
.data.Parameter_NickControl
0x00000000 0x1 fc.o
.data.Parameter_Gier_P
0x00000000 0x1 fc.o
.bss.ControlHeading
0x00000000 0x1 fc.o
.text 0x00000000 0x0 FlightCtrl.o
.data 0x00000000 0x0 FlightCtrl.o
.bss 0x00000000 0x0 FlightCtrl.o
.text 0x00000000 0x0 GPS.o
.data 0x00000000 0x0 GPS.o
.bss 0x00000000 0x0 GPS.o
.text 0x00000000 0x0 hottmenu.o
.data 0x00000000 0x0 hottmenu.o
.bss 0x00000000 0x0 hottmenu.o
.data 0x00000000 0x0 isqrt.o
.bss 0x00000000 0x0 isqrt.o
.text 0x00000000 0x0 jetimenu.o
.data 0x00000000 0x0 jetimenu.o
.bss 0x00000000 0x0 jetimenu.o
.text 0x00000000 0x0 jeti_ex.o
.data 0x00000000 0x0 jeti_ex.o
.bss 0x00000000 0x0 jeti_ex.o
.text 0x00000000 0x0 led.o
.data 0x00000000 0x0 led.o
.bss 0x00000000 0x0 led.o
.bss.LED2_Timing
0x00000000 0x2 led.o
.bss.LED1_Timing
0x00000000 0x2 led.o
.text 0x00000000 0x0 menu.o
.data 0x00000000 0x0 menu.o
.bss 0x00000000 0x0 menu.o
.text 0x00000000 0x0 mymath.o
.data 0x00000000 0x0 mymath.o
.bss 0x00000000 0x0 mymath.o
.text 0x00000000 0x0 rc.o
.data 0x00000000 0x0 rc.o
.bss 0x00000000 0x0 rc.o
.bss.tmpChannels
0x00000000 0x1 rc.o
.text 0x00000000 0x0 sbus.o
.data 0x00000000 0x0 sbus.o
.bss 0x00000000 0x0 sbus.o
.text 0x00000000 0x0 Spektrum.o
.data 0x00000000 0x0 Spektrum.o
.bss 0x00000000 0x0 Spektrum.o
.text 0x00000000 0x0 spi.o
.data 0x00000000 0x0 spi.o
.bss 0x00000000 0x0 spi.o
.bss.MagVec 0x00000000 0x6 spi.o
.text 0x00000000 0x0 timer0.o
.data 0x00000000 0x0 timer0.o
.bss 0x00000000 0x0 timer0.o
.text.Delay_ms
0x00000000 0x22 timer0.o
.text 0x00000000 0x0 twimaster.o
.data 0x00000000 0x0 twimaster.o
.bss 0x00000000 0x0 twimaster.o
.bss.dac_channel
0x00000000 0x1 twimaster.o
.text 0x00000000 0x0 uart.o
.data 0x00000000 0x0 uart.o
.bss 0x00000000 0x0 uart.o
.bss.PC_DebugTimeout
0x00000000 0x1 uart.o
.bss.NeueKoordinateEmpfangen
0x00000000 0x1 uart.o
.text 0x00000000 0x0 user_receiver.o
.data 0x00000000 0x0 user_receiver.o
.bss 0x00000000 0x0 user_receiver.o
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fixunssfsi.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fixunssfsi.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fixunssfsi.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(floatsisf.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(floatsisf.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(floatsisf.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_inf.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_inf.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_inf.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_nan.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_nan.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_nan.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscA.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscA.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscA.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscB.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscB.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscB.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_round.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_round.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_round.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_split3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_split3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_split3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_zero.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_zero.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_zero.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy_P.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy_P.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy_P.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memchr.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memchr.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memchr.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_block_atmega1284.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_block_atmega1284.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_block_atmega1284.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_byte_atmega1284.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_byte_atmega1284.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_byte_atmega1284.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_word_atmega1284.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_word_atmega1284.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_word_atmega1284.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_block_atmega1284.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_block_atmega1284.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_block_atmega1284.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_byte_atmega1284.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_byte_atmega1284.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_byte_atmega1284.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_word_atmega1284.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_word_atmega1284.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_word_atmega1284.o)
 
Memory Configuration
 
Name Origin Length Attributes
text 0x00000000 0x00020000 xr
data 0x00800100 0x0000ff00 rw !x
eeprom 0x00810000 0x00010000 rw !x
fuse 0x00820000 0x00000400 rw !x
lock 0x00830000 0x00000400 rw !x
signature 0x00840000 0x00000400 rw !x
user_signatures 0x00850000 0x00000400 rw !x
*default* 0x00000000 0xffffffff
 
Linker script and memory map
 
Address of section .data set to 0x800100
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o
LOAD analog.o
LOAD capacity.o
LOAD debug.o
LOAD eeprom.o
LOAD fc.o
LOAD FlightCtrl.o
LOAD GPS.o
LOAD hottmenu.o
LOAD isqrt.o
LOAD jetimenu.o
LOAD jeti_ex.o
LOAD led.o
LOAD menu.o
LOAD mymath.o
LOAD rc.o
LOAD sbus.o
LOAD Spektrum.o
LOAD spi.o
LOAD timer0.o
LOAD twimaster.o
LOAD uart.o
LOAD user_receiver.o
START GROUP
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a
LOAD C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a
LOAD C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc644.a
END GROUP
START GROUP
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a
END GROUP
 
.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 0x137c8
*(.vectors)
.vectors 0x00000000 0x8c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o
0x00000000 __vector_default
0x00000000 __vectors
*(.vectors)
*(.progmem.gcc*)
.progmem.gcc_sw_table.__vector_24
0x0000008c 0x24 analog.o
.progmem.gcc_sw_table.HoTT_Menu
0x000000b0 0x74 hottmenu.o
.progmem.gcc_sw_table.Menu
0x00000124 0x28 menu.o
.progmem.gcc_sw_table.UpdateSPI_Buffer
0x0000014c 0x14 spi.o
.progmem.gcc_sw_table.__vector_26
0x00000160 0xe twimaster.o
.progmem.gcc_sw_table
0x0000016e 0x12 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
0x00000180 . = ALIGN (0x2)
0x00000180 __trampolines_start = .
*(.trampolines)
.trampolines 0x00000180 0x0 linker stubs
*(.trampolines*)
0x00000180 __trampolines_end = .
*(.progmem*)
.progmem.data.__c.2991
0x00000180 0x2 analog.o
.progmem.data.__c.3064
0x00000182 0x21 eeprom.o
.progmem.data.__c.3059
0x000001a3 0x21 eeprom.o
.progmem.data.__c.3057
0x000001c4 0x19 eeprom.o
.progmem.data.__c.3048
0x000001dd 0x26 eeprom.o
.progmem.data.__c.3045
0x00000203 0x28 eeprom.o
.progmem.data.__c.3157
0x0000022b 0x24 fc.o
.progmem.data.__c.3152
0x0000024f 0x18 fc.o
.progmem.data.__c.3029
0x00000267 0x22 FlightCtrl.o
.progmem.data.__c.3027
0x00000289 0x5 FlightCtrl.o
.progmem.data.__c.3022
0x0000028e 0x20 FlightCtrl.o
.progmem.data.__c.3020
0x000002ae 0x19 FlightCtrl.o
.progmem.data.__c.3018
0x000002c7 0x16 FlightCtrl.o
.progmem.data.__c.3013
0x000002dd 0x1e FlightCtrl.o
.progmem.data.__c.3008
0x000002fb 0x3 FlightCtrl.o
.progmem.data.__c.2999
0x000002fe 0x12 FlightCtrl.o
.progmem.data.__c.2990
0x00000310 0x32 FlightCtrl.o
.progmem.data.__c.2976
0x00000342 0x16 FlightCtrl.o
.progmem.data.__c.2974
0x00000358 0x12 FlightCtrl.o
.progmem.data.__c.2972
0x0000036a 0x15 FlightCtrl.o
.progmem.data.__c.2970
0x0000037f 0xb FlightCtrl.o
.progmem.data.__c.2968
0x0000038a 0x8 FlightCtrl.o
.progmem.data.__c.2959
0x00000392 0x26 FlightCtrl.o
.progmem.data.__c.3487
0x000003b8 0x3 hottmenu.o
.progmem.data.__c.3485
0x000003bb 0xe hottmenu.o
.progmem.data.__c.3483
0x000003c9 0xe hottmenu.o
.progmem.data.__c.3481
0x000003d7 0x3 hottmenu.o
.progmem.data.__c.3479
0x000003da 0x4 hottmenu.o
.progmem.data.__c.3477
0x000003de 0x4 hottmenu.o
.progmem.data.__c.3475
0x000003e2 0xc hottmenu.o
.progmem.data.__c.3470
0x000003ee 0x9 hottmenu.o
.progmem.data.__c.3468
0x000003f7 0xb hottmenu.o
.progmem.data.__c.3466
0x00000402 0xd hottmenu.o
.progmem.data.__c.3464
0x0000040f 0xd hottmenu.o
.progmem.data.__c.3461
0x0000041c 0x15 hottmenu.o
.progmem.data.__c.3459
0x00000431 0xb hottmenu.o
.progmem.data.__c.3457
0x0000043c 0xb hottmenu.o
.progmem.data.__c.3453
0x00000447 0x15 hottmenu.o
.progmem.data.__c.3446
0x0000045c 0xe hottmenu.o
.progmem.data.__c.3444
0x0000046a 0xf hottmenu.o
.progmem.data.__c.3442
0x00000479 0xe hottmenu.o
.progmem.data.__c.3440
0x00000487 0x3 hottmenu.o
.progmem.data.__c.3438
0x0000048a 0x5 hottmenu.o
.progmem.data.__c.3436
0x0000048f 0x4 hottmenu.o
.progmem.data.__c.3434
0x00000493 0xd hottmenu.o
.progmem.data.__c.3429
0x000004a0 0x9 hottmenu.o
.progmem.data.__c.3427
0x000004a9 0xb hottmenu.o
.progmem.data.__c.3425
0x000004b4 0x9 hottmenu.o
.progmem.data.__c.3422
0x000004bd 0xb hottmenu.o
.progmem.data.__c.3420
0x000004c8 0xb hottmenu.o
.progmem.data.__c.3416
0x000004d3 0x16 hottmenu.o
.progmem.data.__c.3409
0x000004e9 0xe hottmenu.o
.progmem.data.__c.3407
0x000004f7 0xe hottmenu.o
.progmem.data.__c.3405
0x00000505 0xe hottmenu.o
.progmem.data.__c.3403
0x00000513 0x4 hottmenu.o
.progmem.data.__c.3401
0x00000517 0xa hottmenu.o
.progmem.data.__c.3399
0x00000521 0x4 hottmenu.o
.progmem.data.__c.3397
0x00000525 0xb hottmenu.o
.progmem.data.__c.3392
0x00000530 0x3 hottmenu.o
.progmem.data.__c.3390
0x00000533 0xa hottmenu.o
.progmem.data.__c.3387
0x0000053d 0x12 hottmenu.o
.progmem.data.__c.3385
0x0000054f 0x12 hottmenu.o
.progmem.data.__c.3381
0x00000561 0x12 hottmenu.o
.progmem.data.__c.3379
0x00000573 0xf hottmenu.o
.progmem.data.__c.3372
0x00000582 0xe hottmenu.o
.progmem.data.__c.3370
0x00000590 0xe hottmenu.o
.progmem.data.__c.3368
0x0000059e 0xe hottmenu.o
.progmem.data.__c.3366
0x000005ac 0xe hottmenu.o
.progmem.data.__c.3364
0x000005ba 0xf hottmenu.o
.progmem.data.__c.3362
0x000005c9 0xb hottmenu.o
.progmem.data.__c.3360
0x000005d4 0x7 hottmenu.o
.progmem.data.__c.3358
0x000005db 0x4 hottmenu.o
.progmem.data.__c.3353
0x000005df 0x3 hottmenu.o
.progmem.data.__c.3351
0x000005e2 0xa hottmenu.o
.progmem.data.__c.3348
0x000005ec 0x13 hottmenu.o
.progmem.data.__c.3346
0x000005ff 0x12 hottmenu.o
.progmem.data.__c.3342
0x00000611 0x15 hottmenu.o
.progmem.data.__c.3340
0x00000626 0xf hottmenu.o
.progmem.data.__c.3324
0x00000635 0xe hottmenu.o
.progmem.data.__c.3322
0x00000643 0x5 hottmenu.o
.progmem.data.__c.3320
0x00000648 0xa hottmenu.o
.progmem.data.__c.3318
0x00000652 0xf hottmenu.o
.progmem.data.__c.3315
0x00000661 0x14 hottmenu.o
.progmem.data.__c.3313
0x00000675 0x14 hottmenu.o
.progmem.data.__c.3311
0x00000689 0xf hottmenu.o
.progmem.data.__c.3309
0x00000698 0x14 hottmenu.o
.progmem.data.__c.3306
0x000006ac 0x6 hottmenu.o
.progmem.data.__c.3304
0x000006b2 0x4 hottmenu.o
.progmem.data.__c.3302
0x000006b6 0xa hottmenu.o
.progmem.data.__c.3299
0x000006c0 0xb hottmenu.o
.progmem.data.__c.3297
0x000006cb 0x7 hottmenu.o
.progmem.data.__c.3295
0x000006d2 0x7 hottmenu.o
.progmem.data.__c.3293
0x000006d9 0x7 hottmenu.o
.progmem.data.__c.3291
0x000006e0 0x7 hottmenu.o
.progmem.data.__c.3289
0x000006e7 0x9 hottmenu.o
.progmem.data.__c.3287
0x000006f0 0x5 hottmenu.o
.progmem.data.__c.3284
0x000006f5 0x7 hottmenu.o
.progmem.data.__c.3282
0x000006fc 0x7 hottmenu.o
.progmem.data.__c.3280
0x00000703 0x7 hottmenu.o
.progmem.data.__c.3278
0x0000070a 0x9 hottmenu.o
.progmem.data.__c.3276
0x00000713 0x4 hottmenu.o
.progmem.data.__c.3273
0x00000717 0x9 hottmenu.o
.progmem.data.__c.3271
0x00000720 0x6 hottmenu.o
.progmem.data.__c.3269
0x00000726 0x6 hottmenu.o
.progmem.data.__c.3267
0x0000072c 0x7 hottmenu.o
.progmem.data.__c.3265
0x00000733 0x7 hottmenu.o
.progmem.data.__c.3263
0x0000073a 0xa hottmenu.o
.progmem.data.__c.3261
0x00000744 0x5 hottmenu.o
.progmem.data.__c.3258
0x00000749 0x11 hottmenu.o
.progmem.data.__c.3254
0x0000075a 0xf hottmenu.o
.progmem.data.__c.3240
0x00000769 0x16 hottmenu.o
.progmem.data.__c.3238
0x0000077f 0x13 hottmenu.o
.progmem.data.__c.3236
0x00000792 0x6 hottmenu.o
.progmem.data.__c.3234
0x00000798 0xb hottmenu.o
.progmem.data.__c.3231
0x000007a3 0x13 hottmenu.o
.progmem.data.__c.3229
0x000007b6 0x13 hottmenu.o
.progmem.data.__c.3227
0x000007c9 0x1d hottmenu.o
.progmem.data.__c.3225
0x000007e6 0xf hottmenu.o
.progmem.data.__c.3222
0x000007f5 0x13 hottmenu.o
.progmem.data.__c.3220
0x00000808 0x1d hottmenu.o
.progmem.data.__c.3217
0x00000825 0x16 hottmenu.o
.progmem.data.__c.3215
0x0000083b 0x6 hottmenu.o
.progmem.data.__c.3213
0x00000841 0x6 hottmenu.o
.progmem.data.__c.3209
0x00000847 0x6 hottmenu.o
.progmem.data.__c.3206
0x0000084d 0x13 hottmenu.o
.progmem.data.__c.3203
0x00000860 0x3 hottmenu.o
.progmem.data.__c.3201
0x00000863 0x3 hottmenu.o
.progmem.data.__c.3199
0x00000866 0x14 hottmenu.o
.progmem.data.__c.3196
0x0000087a 0x17 hottmenu.o
.progmem.data.__c.3193
0x00000891 0x3 hottmenu.o
.progmem.data.__c.3191
0x00000894 0xa hottmenu.o
.progmem.data.__c.3189
0x0000089e 0x9 hottmenu.o
.progmem.data.__c.3187
0x000008a7 0x9 hottmenu.o
.progmem.data.__c.3185
0x000008b0 0xa hottmenu.o
.progmem.data.__c.3181
0x000008ba 0x1b hottmenu.o
.progmem.data.__c.3179
0x000008d5 0x1b hottmenu.o
.progmem.data.__c.3164
0x000008f0 0x16 hottmenu.o
.progmem.data.__c.3162
0x00000906 0x13 hottmenu.o
.progmem.data.__c.3160
0x00000919 0x6 hottmenu.o
.progmem.data.__c.3158
0x0000091f 0xb hottmenu.o
.progmem.data.__c.3154
0x0000092a 0x19 hottmenu.o
.progmem.data.__c.3152
0x00000943 0x10 hottmenu.o
.progmem.data.__c.3150
0x00000953 0xc hottmenu.o
.progmem.data.__c.3148
0x0000095f 0xb hottmenu.o
.progmem.data.__c.3145
0x0000096a 0x3 hottmenu.o
.progmem.data.__c.3141
0x0000096d 0x3 hottmenu.o
.progmem.data.__c.3139
0x00000970 0x3 hottmenu.o
.progmem.data.__c.3136
0x00000973 0xa hottmenu.o
.progmem.data.__c.3134
0x0000097d 0x9 hottmenu.o
.progmem.data.__c.3132
0x00000986 0x2 hottmenu.o
.progmem.data.__c.3129
0x00000988 0x16 hottmenu.o
.progmem.data.__c.3127
0x0000099e 0x16 hottmenu.o
.progmem.data.__c.3125
0x000009b4 0x2 hottmenu.o
.progmem.data.__c.3123
0x000009b6 0x2 hottmenu.o
.progmem.data.__c.3121
0x000009b8 0x2 hottmenu.o
.progmem.data.__c.3118
0x000009ba 0xc hottmenu.o
.progmem.data.__c.3116
0x000009c6 0x8 hottmenu.o
.progmem.data.__c.3114
0x000009ce 0x8 hottmenu.o
.progmem.data.__c.3111
0x000009d6 0x2 hottmenu.o
.progmem.data.__c.3109
0x000009d8 0x2 hottmenu.o
.progmem.data.__c.3107
0x000009da 0xb hottmenu.o
.progmem.data.__c.3105
0x000009e5 0xd hottmenu.o
.progmem.data.__c.3103
0x000009f2 0xd hottmenu.o
.progmem.data.__c.3099
0x000009ff 0xa hottmenu.o
.progmem.data.__c.3097
0x00000a09 0xb hottmenu.o
.progmem.data.__c.3095
0x00000a14 0xc hottmenu.o
.progmem.data.__c.3093
0x00000a20 0xd hottmenu.o
.progmem.data.__c.3091
0x00000a2d 0xd hottmenu.o
.progmem.data.__c.2982
0x00000a3a 0x16 hottmenu.o
.progmem.data.HOTT_ERROR
0x00000a50 0x46 hottmenu.o
0x00000a50 HOTT_ERROR
.progmem.data.NC_ERROR_TEXT
0x00000a96 0x253 hottmenu.o
0x00000a96 NC_ERROR_TEXT
.progmem.data.SETTING
0x00000ce9 0x7 hottmenu.o
0x00000ce9 SETTING
.progmem.data.BOAT_MODE
0x00000cf0 0x16 hottmenu.o
0x00000cf0 BOAT_MODE
.progmem.data.SIMULATION
0x00000d06 0x16 hottmenu.o
0x00000d06 SIMULATION
.progmem.data.LANDING
0x00000d1c 0x16 hottmenu.o
0x00000d1c LANDING
.progmem.data.UNDERVOLTAGE
0x00000d32 0x16 hottmenu.o
0x00000d32 UNDERVOLTAGE
.progmem.data.MIKROKOPTER
0x00000d48 0x16 hottmenu.o
0x00000d48 MIKROKOPTER
.progmem.data.__c.3117
0x00000d5e 0xd jetimenu.o
.progmem.data.__c.3115
0x00000d6b 0x13 jetimenu.o
.progmem.data.__c.3113
0x00000d7e 0x5 jetimenu.o
.progmem.data.__c.3111
0x00000d83 0x5 jetimenu.o
.progmem.data.__c.3107
0x00000d88 0x5 jetimenu.o
.progmem.data.__c.3104
0x00000d8d 0xf jetimenu.o
.progmem.data.__c.3099
0x00000d9c 0x3 jetimenu.o
.progmem.data.__c.3097
0x00000d9f 0x3 jetimenu.o
.progmem.data.__c.3095
0x00000da2 0x6 jetimenu.o
.progmem.data.__c.3093
0x00000da8 0x8 jetimenu.o
.progmem.data.__c.3091
0x00000db0 0xa jetimenu.o
.progmem.data.__c.3089
0x00000dba 0xb jetimenu.o
.progmem.data.__c.3087
0x00000dc5 0xb jetimenu.o
.progmem.data.__c.3085
0x00000dd0 0x7 jetimenu.o
.progmem.data.__c.3083
0x00000dd7 0xe jetimenu.o
.progmem.data.__c.3076
0x00000de5 0x3 jetimenu.o
.progmem.data.__c.3074
0x00000de8 0x3 jetimenu.o
.progmem.data.__c.3072
0x00000deb 0x6 jetimenu.o
.progmem.data.__c.3070
0x00000df1 0x8 jetimenu.o
.progmem.data.__c.3068
0x00000df9 0x9 jetimenu.o
.progmem.data.__c.3066
0x00000e02 0xb jetimenu.o
.progmem.data.__c.3064
0x00000e0d 0x7 jetimenu.o
.progmem.data.__c.3062
0x00000e14 0xe jetimenu.o
.progmem.data.__c.3055
0x00000e22 0x3 jetimenu.o
.progmem.data.__c.3053
0x00000e25 0x3 jetimenu.o
.progmem.data.__c.3051
0x00000e28 0x11 jetimenu.o
.progmem.data.__c.3049
0x00000e39 0x12 jetimenu.o
.progmem.data.__c.3047
0x00000e4b 0x4 jetimenu.o
.progmem.data.__c.3045
0x00000e4f 0xb jetimenu.o
.progmem.data.__c.3043
0x00000e5a 0xb jetimenu.o
.progmem.data.__c.3036
0x00000e65 0x3 jetimenu.o
.progmem.data.__c.3034
0x00000e68 0x3 jetimenu.o
.progmem.data.__c.3032
0x00000e6b 0x11 jetimenu.o
.progmem.data.__c.3030
0x00000e7c 0x4 jetimenu.o
.progmem.data.__c.3028
0x00000e80 0xb jetimenu.o
.progmem.data.__c.3026
0x00000e8b 0xb jetimenu.o
.progmem.data.__c.3024
0x00000e96 0xc jetimenu.o
.progmem.data.__c.3017
0x00000ea2 0x11 jetimenu.o
.progmem.data.__c.3012
0x00000eb3 0x11 jetimenu.o
.progmem.data.__c.3007
0x00000ec4 0xe jetimenu.o
.progmem.data.__c.3005
0x00000ed2 0xf jetimenu.o
.progmem.data.__c.3000
0x00000ee1 0xe jetimenu.o
.progmem.data.__c.2998
0x00000eef 0xf jetimenu.o
.progmem.data.__c.2993
0x00000efe 0x13 jetimenu.o
.progmem.data.__c.2991
0x00000f11 0x13 jetimenu.o
.progmem.data.__c.2986
0x00000f24 0xc jetimenu.o
.progmem.data.__c.2984
0x00000f30 0x12 jetimenu.o
.progmem.data.__c.2979
0x00000f42 0x9 jetimenu.o
.progmem.data.__c.2977
0x00000f4b 0x11 jetimenu.o
.progmem.data.__c.2975
0x00000f5c 0x10 jetimenu.o
.progmem.data.__c.2973
0x00000f6c 0x10 jetimenu.o
.progmem.data.__c.2968
0x00000f7c 0x2 jetimenu.o
.progmem.data.__c.2966
0x00000f7e 0x7 jetimenu.o
.progmem.data.__c.2964
0x00000f85 0xd jetimenu.o
.progmem.data.__c.2962
0x00000f92 0xc jetimenu.o
.progmem.data.__c.2960
0x00000f9e 0x9 jetimenu.o
.progmem.data.__c.2958
0x00000fa7 0xb jetimenu.o
.progmem.data.__c.2956
0x00000fb2 0xc jetimenu.o
.progmem.data.__c.2952
0x00000fbe 0xb jetimenu.o
.progmem.data.__c.2950
0x00000fc9 0xd jetimenu.o
.progmem.data.__c.2948
0x00000fd6 0x9 jetimenu.o
.progmem.data.JetiBox_Menu
0x00000fdf 0x4e jetimenu.o
0x00000fdf JetiBox_Menu
.progmem.data.JETI_CODE
0x0000102d 0x35 jeti_ex.o
0x0000102d JETI_CODE
.progmem.data.__c.3151
0x00001062 0x24 menu.o
.progmem.data.__c.3149
0x00001086 0xc menu.o
.progmem.data.__c.3146
0x00001092 0x3 menu.o
.progmem.data.__c.3144
0x00001095 0x3 menu.o
.progmem.data.__c.3142
0x00001098 0x3 menu.o
.progmem.data.__c.3140
0x0000109b 0x11 menu.o
.progmem.data.__c.3138
0x000010ac 0x14 menu.o
.progmem.data.__c.3136
0x000010c0 0x14 menu.o
.progmem.data.__c.3134
0x000010d4 0xf menu.o
.progmem.data.__c.3128
0x000010e3 0x11 menu.o
.progmem.data.__c.3126
0x000010f4 0xa menu.o
.progmem.data.__c.3124
0x000010fe 0xb menu.o
.progmem.data.__c.3118
0x00001109 0x11 menu.o
.progmem.data.__c.3116
0x0000111a 0xf menu.o
.progmem.data.__c.3110
0x00001129 0x11 menu.o
.progmem.data.__c.3108
0x0000113a 0x10 menu.o
.progmem.data.__c.3105
0x0000114a 0xe menu.o
.progmem.data.__c.3103
0x00001158 0xe menu.o
.progmem.data.__c.3101
0x00001166 0xe menu.o
.progmem.data.__c.3099
0x00001174 0x8 menu.o
.progmem.data.__c.3096
0x0000117c 0xe menu.o
.progmem.data.__c.3094
0x0000118a 0xe menu.o
.progmem.data.__c.3092
0x00001198 0xe menu.o
.progmem.data.__c.3090
0x000011a6 0x8 menu.o
.progmem.data.__c.3087
0x000011ae 0x8 menu.o
.progmem.data.__c.3085
0x000011b6 0xd menu.o
.progmem.data.__c.3083
0x000011c3 0xd menu.o
.progmem.data.__c.3081
0x000011d0 0xe menu.o
.progmem.data.__c.3075
0x000011de 0xd menu.o
.progmem.data.__c.3069
0x000011eb 0xd menu.o
.progmem.data.__c.3066
0x000011f8 0xe menu.o
.progmem.data.__c.3064
0x00001206 0xe menu.o
.progmem.data.__c.3062
0x00001214 0xe menu.o
.progmem.data.__c.3060
0x00001222 0x10 menu.o
.progmem.data.__c.3057
0x00001232 0x10 menu.o
.progmem.data.__c.3055
0x00001242 0x10 menu.o
.progmem.data.__c.3053
0x00001252 0x9 menu.o
.progmem.data.__c.3050
0x0000125b 0x12 menu.o
.progmem.data.__c.3048
0x0000126d 0x10 menu.o
.progmem.data.__c.3046
0x0000127d 0x14 menu.o
.progmem.data.__c.3044
0x00001291 0x14 menu.o
.progmem.data.__c.3041
0x000012a5 0xf menu.o
.progmem.data.__c.3039
0x000012b4 0xf menu.o
.progmem.data.__c.3037
0x000012c3 0xf menu.o
.progmem.data.__c.3035
0x000012d2 0xd menu.o
.progmem.data.__c.3032
0x000012df 0xf menu.o
.progmem.data.__c.3030
0x000012ee 0xf menu.o
.progmem.data.__c.3028
0x000012fd 0xf menu.o
.progmem.data.__c.3026
0x0000130c 0xe menu.o
.progmem.data.__c.3023
0x0000131a 0x10 menu.o
.progmem.data.__c.3021
0x0000132a 0x10 menu.o
.progmem.data.__c.3019
0x0000133a 0x10 menu.o
.progmem.data.__c.3017
0x0000134a 0x10 menu.o
.progmem.data.__c.3011
0x0000135a 0x12 menu.o
.progmem.data.__c.3008
0x0000136c 0xf menu.o
.progmem.data.__c.3006
0x0000137b 0xf menu.o
.progmem.data.__c.3004
0x0000138a 0xf menu.o
.progmem.data.__c.3002
0x00001399 0xd menu.o
.progmem.data.__c.2999
0x000013a6 0x3 menu.o
.progmem.data.__c.2997
0x000013a9 0x4 menu.o
.progmem.data.__c.2995
0x000013ad 0xd menu.o
.progmem.data.__c.2993
0x000013ba 0xd menu.o
.progmem.data.__c.2991
0x000013c7 0xd menu.o
.progmem.data.__c.2989
0x000013d4 0xd menu.o
.progmem.data.__c.2985
0x000013e1 0x14 menu.o
.progmem.data.__c.2983
0x000013f5 0xd menu.o
.progmem.data.__c.2981
0x00001402 0x16 menu.o
.progmem.data.__c.2979
0x00001418 0x17 menu.o
.progmem.data.__c.2977
0x0000142f 0x8 menu.o
.progmem.data.__c.2975
0x00001437 0xd menu.o
.progmem.data.__c.2973
0x00001444 0x5 menu.o
.progmem.data.__c.2971
0x00001449 0xa menu.o
.progmem.data.__c.2969
0x00001453 0x18 menu.o
.progmem.data.__c.2967
0x0000146b 0x10 menu.o
.progmem.data.__c.2964
0x0000147b 0x5 menu.o
.progmem.data.__c.2962
0x00001480 0x5 menu.o
.progmem.data.pgm_sinlookup
0x00001485 0xb6 mymath.o
0x00001485 pgm_sinlookup
.progmem.data.__c.3126
0x0000153b 0x15 uart.o
.progmem.data.ANALOG_TEXT
0x00001550 0x200 uart.o
0x00001550 ANALOG_TEXT
.progmem.data 0x00001750 0x170 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
0x00001750 Msg2
0x00001778 Msg1
0x000017c8 Rec_USER
0x000017cd Rec_HoTT
0x000017d5 Rec_ACT_DSL
0x000017dd Rec_Jeti
0x000017e2 Rec_Spektrum
0x000017eb Rec_PPM
0x000018c0 . = ALIGN (0x2)
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x000018c0 __ctors_start = .
*(.ctors)
0x000018c0 __ctors_end = .
0x000018c0 __dtors_start = .
*(.dtors)
0x000018c0 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x000018c0 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o
0x000018c0 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x000018c0 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x000018cc 0x1a c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_copy_data.o)
0x000018cc __do_copy_data
.init4 0x000018e6 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_clear_bss.o)
0x000018e6 __do_clear_bss
*(.init4)
*(.init5)
.init5 0x000018f6 0x76 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
0x000018f6 ndfcvbghs
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x0000196c 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o
*(.init9)
*(.text)
.text 0x00001974 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51/crtm1284.o
0x00001974 __vector_1
0x00001974 __vector_32
0x00001974 __vector_34
0x00001974 __bad_interrupt
0x00001974 __vector_6
0x00001974 __vector_31
0x00001974 __vector_3
0x00001974 __vector_23
0x00001974 __vector_25
0x00001974 __vector_11
0x00001974 __vector_13
0x00001974 __vector_17
0x00001974 __vector_19
0x00001974 __vector_7
0x00001974 __vector_27
0x00001974 __vector_5
0x00001974 __vector_33
0x00001974 __vector_4
0x00001974 __vector_2
0x00001974 __vector_21
0x00001974 __vector_15
0x00001974 __vector_29
0x00001974 __vector_8
0x00001974 __vector_14
0x00001974 __vector_10
0x00001974 __vector_16
.text 0x00001978 0x100 isqrt.o
0x00001978 isqrt32
0x000019e2 isqrt16
0x00001a24 ihypot
.text 0x00001a78 0x1a84 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
0x00001a78 fomklkdtn89SFGrsgt9rf
0x00001b26 FGRT0589rge90gj459gg4
0x00001c58 DFGeefWEF43tgt5uGreg5
0x00001d3c FGtj76uzh56z3grEg5t45
0x00001dbc LIBFC_JetiBox_Putchar
0x00001dd6 LIBFC_JetiBox_SetPos
0x00001de2 LIBFC_JetiBox_Clear
0x00001df4 INiuzBtergGIBuB76T0G5
0x00001eb2 KLNMIOHMUHG76GFGr43r3
0x00001ecc __vector_30
0x00001fdc update_crc
0x00002002 crc8
0x00002030 JetiEX_GetLength
0x00002054 JetiEX_CreatePacket
0x00002288 a48784362857632195659
0x00002320 njkvnfuhgbuzrgezgf483
0x0000234e lkvgnfdgun57th38rgh84
0x0000237e fgmjgnrtuth587th9rTrw
0x000023a0 wqqeRT45jth8g758735h4
0x000023c2 IIllllIllIlllIIlllII
0x000028f6 LIBFC_HoTT_Putchar
0x00002916 LIBFC_HoTT_Putchar_INV
0x00002938 LIBFC_HoTT_Putchar_BLINK
0x0000294a LIBFC_HoTT_SetPos
0x00002954 LIBFC_HoTT_Clear
0x00002966 HoTT_Init
0x00002b2e HoTT_Parser
0x00002ba0 HoTT_Polling
0x00002c20 ACC_AltitudeFusion
0x00002f1e LIBFC_GetCPUType
0x00002f76 awokdjwqdjcjuhcuweih
0x00002fb0 LIBFC_ReceiverInit
0x00003112 LIBFC_Init
0x000032e0 LIBFC_CheckSettings
0x0000330c LIBFC_Polling
0x00003422 __vector_28
0x000034fc . = ALIGN (0x2)
*(.text.*)
.text.ADC_Init
0x000034fc 0xc analog.o
0x000034fc ADC_Init
.text.CalcExpandBaroStep
0x00003508 0x4e analog.o
0x00003508 CalcExpandBaroStep
.text.SucheLuftruckOffset
0x00003556 0x142 analog.o
0x00003556 SucheLuftruckOffset
.text.__vector_24
0x00003698 0x9d6 analog.o
0x00003698 __vector_24
.text.Capacity_Init
0x0000406e 0x2e capacity.o
0x0000406e Capacity_Init
.text.BL3_Current
0x0000409c 0x34 capacity.o
0x0000409c BL3_Current
.text.Capacity_Update
0x000040d0 0x1ce capacity.o
0x000040d0 Capacity_Update
.text.RAM_Checksum
0x0000429e 0x16 eeprom.o
0x0000429e RAM_Checksum
.text.EEProm_Checksum
0x000042b4 0x36 eeprom.o
0x000042b4 EEProm_Checksum
.text.ParamSet_DefaultStickMapping
0x000042ea 0x4a eeprom.o
0x000042ea ParamSet_DefaultStickMapping
.text.CommonDefaults
0x00004334 0x22c eeprom.o
0x00004334 CommonDefaults
.text.ParamSet_DefaultSet1
0x00004560 0x66 eeprom.o
0x00004560 ParamSet_DefaultSet1
.text.ParamSet_DefaultSet2
0x000045c6 0x5c eeprom.o
0x000045c6 ParamSet_DefaultSet2
.text.ParamSet_DefaultSet3
0x00004622 0x64 eeprom.o
0x00004622 ParamSet_DefaultSet3
.text.GetParamByte
0x00004686 0x4 eeprom.o
0x00004686 GetParamByte
.text.SetParamByte
0x0000468a 0x4 eeprom.o
0x0000468a SetParamByte
.text.GetParamWord
0x0000468e 0x4 eeprom.o
0x0000468e GetParamWord
.text.SetParamWord
0x00004692 0x4 eeprom.o
0x00004692 SetParamWord
.text.ParamSet_ReadFromEEProm
0x00004696 0x78 eeprom.o
0x00004696 ParamSet_ReadFromEEProm
.text.MixerTable_ReadFromEEProm
0x0000470e 0x40 eeprom.o
0x0000470e MixerTable_ReadFromEEProm
.text.MixerTable_WriteToEEProm
0x0000474e 0x2e eeprom.o
0x0000474e MixerTable_WriteToEEProm
.text.MixerTable_Default
0x0000477c 0x8a eeprom.o
0x0000477c MixerTable_Default
.text.GetActiveParamSet
0x00004806 0x1e eeprom.o
0x00004806 GetActiveParamSet
.text.SetActiveParamSet
0x00004824 0x1c eeprom.o
0x00004824 SetActiveParamSet
.text.ParamSet_WriteToEEProm
0x00004840 0xa2 eeprom.o
0x00004840 ParamSet_WriteToEEProm
.text.SetDefaultParameter
0x000048e2 0x62 eeprom.o
0x000048e2 SetDefaultParameter
.text.ParamSet_Init
0x00004944 0x218 eeprom.o
0x00004944 ParamSet_Init
.text.CopyDebugValues
0x00004b5c 0x1e2 fc.o
0x00004b5c CopyDebugValues
.text.Piep 0x00004d3e 0x80 fc.o
0x00004d3e Piep
.text.CalibrierMittelwert
0x00004dbe 0xaa fc.o
0x00004dbe CalibrierMittelwert
.text.SetNeutral
0x00004e68 0x71e fc.o
0x00004e68 SetNeutral
.text.Mittelwert
0x00005586 0xbe2 fc.o
0x00005586 Mittelwert
.text.SendMotorData
0x00006168 0x8c fc.o
0x00006168 SendMotorData
.text.GetChannelValue
0x000061f4 0x32 fc.o
0x000061f4 GetChannelValue
.text.ParameterZuordnung
0x00006226 0x5f8 fc.o
0x00006226 ParameterZuordnung
.text.CalcStickGasHover
0x0000681e 0x7a fc.o
0x0000681e CalcStickGasHover
.text.MotorRegler
0x00006898 0x39b8 fc.o
0x00006898 MotorRegler
.text.PrintLine
0x0000a250 0x24 FlightCtrl.o
0x0000a250 PrintLine
.text.CalMk3Mag
0x0000a274 0x62 FlightCtrl.o
0x0000a274 CalMk3Mag
.text.LipoDetection
0x0000a2d6 0x1d8 FlightCtrl.o
0x0000a2d6 LipoDetection
.text.startup.main
0x0000a4ae 0xab6 FlightCtrl.o
0x0000a4ae main
.text.GetHottestBl
0x0000af64 0x76 hottmenu.o
0x0000af64 GetHottestBl
.text.Hott_ClearLine
0x0000afda 0x30 hottmenu.o
0x0000afda Hott_ClearLine
.text.HoTT_Waring
0x0000b00a 0xcc hottmenu.o
0x0000b00a HoTT_Waring
.text.NC_Fills_HoTT_Telemety
0x0000b0d6 0x8c hottmenu.o
0x0000b0d6 NC_Fills_HoTT_Telemety
.text.BuildHoTT_Vario
0x0000b162 0xb6 hottmenu.o
0x0000b162 BuildHoTT_Vario
.text.HoTT_Telemety
0x0000b218 0x6a0 hottmenu.o
0x0000b218 HoTT_Telemety
.text.HoTT_Menu
0x0000b8b8 0x1e06 hottmenu.o
0x0000b8b8 HoTT_Menu
.text.Menu_Temperature
0x0000d6be 0xf8 jetimenu.o
0x0000d6be Menu_Temperature
.text.Menu_Battery
0x0000d7b6 0xb0 jetimenu.o
0x0000d7b6 Menu_Battery
.text.Magnet_Values
0x0000d866 0x88 jetimenu.o
0x0000d866 Magnet_Values
.text.Menu_WPL_A1
0x0000d8ee 0x56 jetimenu.o
0x0000d8ee Menu_WPL_A1
.text.Menu_WPL_R1
0x0000d944 0x56 jetimenu.o
0x0000d944 Menu_WPL_R1
.text.Menu_POINT_LD
0x0000d99a 0x2a jetimenu.o
0x0000d99a Menu_POINT_LD
.text.Menu_POINT_SV
0x0000d9c4 0x2a jetimenu.o
0x0000d9c4 Menu_POINT_SV
.text.Menu_WPL_R2
0x0000d9ee 0x1d8 jetimenu.o
0x0000d9ee Menu_WPL_R2
.text.Menu_Status
0x0000dbc6 0x30a jetimenu.o
0x0000dbc6 Menu_Status
.text.Menu_POINT_SV2
0x0000ded0 0x170 jetimenu.o
0x0000ded0 Menu_POINT_SV2
.text.Menu_POINT_LD2
0x0000e040 0x19a jetimenu.o
0x0000e040 Menu_POINT_LD2
.text.Menu_WPL_A2
0x0000e1da 0x1c2 jetimenu.o
0x0000e1da Menu_WPL_A2
.text.Menu_PosInfo
0x0000e39c 0x144 jetimenu.o
0x0000e39c Menu_PosInfo
.text.JetiBox_Update
0x0000e4e0 0xaa jetimenu.o
0x0000e4e0 JetiBox_Update
.text.BuildJeti_Vario
0x0000e58a 0xe6 jeti_ex.o
0x0000e58a BuildJeti_Vario
.text.JetiEX_Update
0x0000e670 0x184 jeti_ex.o
0x0000e670 JetiEX_Update
.text.LED_Init
0x0000e7f4 0x1e led.o
0x0000e7f4 LED_Init
.text.LED_Update
0x0000e812 0x29e led.o
0x0000e812 LED_Update
.text.Menu_Putchar
0x0000eab0 0x1a menu.o
0x0000eab0 Menu_Putchar
.text.LcdClear
0x0000eaca 0x12 menu.o
0x0000eaca LcdClear
.text.Menu 0x0000eadc 0x10be menu.o
0x0000eadc Menu
.text.c_cos_8192
0x0000fb9a 0x8c mymath.o
0x0000fb9a c_cos_8192
.text.rc_sum_init
0x0000fc26 0x6e rc.o
0x0000fc26 rc_sum_init
.text.__vector_12
0x0000fc94 0x20e rc.o
0x0000fc94 __vector_12
.text.SbusUartInit
0x0000fea2 0xac sbus.o
0x0000fea2 SbusUartInit
.text.SbusParser
0x0000ff4e 0x44 sbus.o
0x0000ff4e SbusParser
.text.ProcessSBus
0x0000ff92 0x184 sbus.o
0x0000ff92 ProcessSBus
.text.SpektrumUartInit
0x00010116 0xa8 Spektrum.o
0x00010116 SpektrumUartInit
.text.SpektrumParser
0x000101be 0x25e Spektrum.o
0x000101be SpektrumParser
.text.SPI_MasterInit
0x0001041c 0x42 spi.o
0x0001041c SPI_MasterInit
.text.SPI_TransmitByte
0x0001045e 0xee spi.o
0x0001045e SPI_TransmitByte
.text.UpdateSPI_Buffer
0x0001054c 0x92e spi.o
0x0001054c UpdateSPI_Buffer
.text.SPI_StartTransmitPacket
0x00010e7a 0x54 spi.o
0x00010e7a SPI_StartTransmitPacket
.text.__vector_18
0x00010ece 0x1be timer0.o
0x00010ece __vector_18
.text.SetDelay
0x0001108c 0x12 timer0.o
0x0001108c SetDelay
.text.CheckDelay
0x0001109e 0x16 timer0.o
0x0001109e CheckDelay
.text.Delay_ms_Mess
0x000110b4 0x38 timer0.o
0x000110b4 Delay_ms_Mess
.text.TIMER2_Init
0x000110ec 0x4e timer0.o
0x000110ec TIMER2_Init
.text.Timer_Init
0x0001113a 0x32 timer0.o
0x0001113a Timer_Init
.text.CalcNickServoValue
0x0001116c 0x7a timer0.o
0x0001116c CalcNickServoValue
.text.CalculateServo
0x000111e6 0x3d8 timer0.o
0x000111e6 CalculateServo
.text.__vector_9
0x000115be 0x236 timer0.o
0x000115be __vector_9
.text.I2C_Init
0x000117f4 0x80 twimaster.o
0x000117f4 I2C_Init
.text.I2C_Reset
0x00011874 0x54 twimaster.o
0x00011874 I2C_Reset
.text.__vector_26
0x000118c8 0x59a twimaster.o
0x000118c8 __vector_26
.text.I2C_WriteBLConfig
0x00011e62 0x13e twimaster.o
0x00011e62 I2C_WriteBLConfig
.text.I2C_ReadBLConfig
0x00011fa0 0x104 twimaster.o
0x00011fa0 I2C_ReadBLConfig
.text.__vector_22
0x000120a4 0x78 uart.o
0x000120a4 __vector_22
.text.__vector_20
0x0001211c 0x1f0 uart.o
0x0001211c __vector_20
.text.AddCRC 0x0001230c 0x5a uart.o
0x0001230c AddCRC
.text.SendOutData
0x00012366 0x184 uart.o
0x00012366 SendOutData
.text.Decode64
0x000124ea 0xc4 uart.o
0x000124ea Decode64
.text.BearbeiteRxDaten
0x000125ae 0x78a uart.o
0x000125ae BearbeiteRxDaten
.text.uart_putchar
0x00012d38 0xe uart.o
0x00012d38 uart_putchar
.text.UART_Init
0x00012d46 0x82 uart.o
0x00012d46 UART_Init
.text.DatenUebertragung
0x00012dc8 0x53e uart.o
0x00012dc8 DatenUebertragung
.text.User_Receiver_Init
0x00013306 0x2 user_receiver.o
0x00013306 User_Receiver_Init
.text.User_RX_Parser
0x00013308 0x2 user_receiver.o
0x00013308 User_RX_Parser
.text.avr-libc.fplib
0x0001330a 0xa c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3.o)
0x0001330a __subsf3
0x0001330c __addsf3
.text.avr-libc.fplib
0x00013314 0xc0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(addsf3x.o)
0x0001332e __addsf3x
.text.avr-libc.fplib
0x000133d4 0x58 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fixunssfsi.o)
0x000133d4 __fixunssfsi
.text.avr-libc.fplib
0x0001342c 0x7a c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(floatsisf.o)
0x0001342c __floatunsisf
0x00013430 __floatsisf
.text.avr-libc.fplib
0x000134a6 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_inf.o)
0x000134a6 __fp_inf
.text.avr-libc.fplib
0x000134b2 0x6 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_nan.o)
0x000134b2 __fp_nan
.text.avr-libc.fplib
0x000134b8 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscA.o)
0x000134b8 __fp_pscA
.text.avr-libc.fplib
0x000134c6 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_pscB.o)
0x000134c6 __fp_pscB
.text.avr-libc.fplib
0x000134d4 0x22 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_round.o)
0x000134d4 __fp_round
.text.avr-libc.fplib
0x000134f6 0x44 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_split3.o)
0x000134f6 __fp_split3
0x00013506 __fp_splitA
.text.avr-libc.fplib
0x0001353a 0xe c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libm.a(fp_zero.o)
0x0001353a __fp_zero
0x0001353c __fp_szero
.text.libgcc.mul
0x00013548 0x1e c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulsi3.o)
0x00013548 __mulsi3
.text.libgcc.div
0x00013566 0x18 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodqi4.o)
0x00013566 __udivmodqi4
.text.libgcc.div
0x0001357e 0x28 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodhi4.o)
0x0001357e __udivmodhi4
.text.libgcc.div
0x000135a6 0x26 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodhi4.o)
0x000135a6 _div
0x000135a6 __divmodhi4
.text.libgcc.div
0x000135cc 0x44 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_udivmodsi4.o)
0x000135cc __udivmodsi4
.text.libgcc.div
0x00013610 0x28 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_divmodsi4.o)
0x00013610 __divmodsi4
.text.libgcc.div
0x00013638 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_negsi2.o)
0x00013638 __negsi2
.text.libgcc 0x00013648 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_tablejump.o)
0x00013648 __tablejump2__
0x0001364c __tablejump__
.text.libgcc.mul
0x00013654 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulhisi3.o)
0x00013654 __mulhisi3
.text.libgcc.mul
0x00013660 0x1e c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_umulhisi3.o)
0x00013660 __umulhisi3
.text.libgcc.mul
0x0001367e 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_usmulhisi3.o)
0x0001367e __usmulhisi3
0x00013680 __usmulhisi3_tail
.text.libgcc.mul
0x0001368a 0x14 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_muluhisi3.o)
0x0001368a __muluhisi3
.text.libgcc.mul
0x0001369e 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_mulshisi3.o)
0x0001369e __mulshisi3
0x000136a2 __mulohisi3
.text.libgcc.prologue
0x000136aa 0x38 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_prologue.o)
0x000136aa __prologue_saves__
.text.libgcc.prologue
0x000136e2 0x36 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_epilogue.o)
0x000136e2 __epilogue_restores__
.text.avr-libc
0x00013718 0x12 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy_P.o)
0x00013718 memcpy_P
.text.avr-libc
0x0001372a 0x1a c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memchr.o)
0x0001372a memchr
.text.avr-libc
0x00013744 0x12 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(memcpy.o)
0x00013744 memcpy
.text.avr-libc
0x00013756 0x20 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_block_atmega1284.o)
0x00013756 __eerd_block_m1284
0x0001375a __eerd_blraw_m1284
.text.avr-libc
0x00013776 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_byte_atmega1284.o)
0x00013776 __eerd_byte_m1284
.text.avr-libc
0x00013786 0xa c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eerd_word_atmega1284.o)
0x00013786 __eerd_word_m1284
.text.avr-libc
0x00013790 0x12 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_block_atmega1284.o)
0x00013790 __eewr_block_m1284
.text.avr-libc
0x000137a2 0x1c c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_byte_atmega1284.o)
0x000137a2 __eewr_byte_m1284
0x000137a4 __eewr_r18_m1284
.text.avr-libc
0x000137be 0x6 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/../../../../avr/lib/avr51\libc.a(eewr_word_atmega1284.o)
0x000137be __eewr_word_m1284
0x000137c4 . = ALIGN (0x2)
*(.fini9)
.fini9 0x000137c4 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
0x000137c4 _exit
0x000137c4 exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x000137c4 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.1061/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.8.1/avr51\libgcc.a(_exit.o)
*(.fini0)
0x000137c8 _etext = .
 
.data 0x00800100 0x1ea load address 0x000137c8
0x00800100 PROVIDE (__data_start, .)
*(.data)
.data 0x00800100 0xa C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
0x00800100 CallBootloader2
0x00800102 adad_HiSystems_GmbH_
0x00800104 md5
0x00800105 kf089uwjef89234hffhh
0x00800106 f8jhreghreGerg45gE542
*(.data*)
.data.AD_ACC_X
0x0080010a 0x1 analog.o
0x0080010a AD_ACC_X
.data.AD_ACC_Y
0x0080010b 0x1 analog.o
0x0080010b AD_ACC_Y
.data.CalAthmospheare
0x0080010c 0x1 analog.o
0x0080010c CalAthmospheare
.data.BaroStep
0x0080010d 0x2 analog.o
0x0080010d BaroStep
.data.AdReady 0x0080010f 0x1 analog.o
0x0080010f AdReady
.data.MessLuftdruck
0x00800110 0x2 analog.o
0x00800110 MessLuftdruck
.data.Luftdruck
0x00800112 0x4 analog.o
0x00800112 Luftdruck
.data.HiResRoll
0x00800116 0x2 analog.o
0x00800116 HiResRoll
.data.HiResNick
0x00800118 0x2 analog.o
0x00800118 HiResNick
.data.UBat 0x0080011a 0x2 analog.o
0x0080011a UBat
.data.delay.3242
0x0080011c 0x1 fc.o
.data.trigger.3217
0x0080011d 0x2 fc.o
.data.old_switch.3218
0x0080011f 0x1 fc.o
.data.VarioCharacter
0x00800120 0x1 fc.o
0x00800120 VarioCharacter
.data.GIER_GRAD_FAKTOR
0x00800121 0x4 fc.o
0x00800121 GIER_GRAD_FAKTOR
.data.ExternHoehenValue
0x00800125 0x2 fc.o
0x00800125 ExternHoehenValue
.data.Parameter_DynamicStability
0x00800127 0x1 fc.o
0x00800127 Parameter_DynamicStability
.data.Parameter_CouplingYawCorrection
0x00800128 0x1 fc.o
0x00800128 Parameter_CouplingYawCorrection
.data.Parameter_AchsKopplung2
0x00800129 0x1 fc.o
0x00800129 Parameter_AchsKopplung2
.data.Parameter_AchsKopplung1
0x0080012a 0x1 fc.o
0x0080012a Parameter_AchsKopplung1
.data.Parameter_LoopGasLimit
0x0080012b 0x1 fc.o
0x0080012b Parameter_LoopGasLimit
.data.Parameter_ServoRollComp
0x0080012c 0x1 fc.o
0x0080012c Parameter_ServoRollComp
.data.Parameter_ServoNickComp
0x0080012d 0x1 fc.o
0x0080012d Parameter_ServoNickComp
.data.Parameter_ServoRollControl
0x0080012e 0x1 fc.o
0x0080012e Parameter_ServoRollControl
.data.Parameter_ServoNickControl
0x0080012f 0x1 fc.o
0x0080012f Parameter_ServoNickControl
.data.Parameter_I_Faktor
0x00800130 0x1 fc.o
0x00800130 Parameter_I_Faktor
.data.Parameter_Gyro_Gier_I
0x00800131 0x1 fc.o
0x00800131 Parameter_Gyro_Gier_I
.data.Parameter_Gyro_Gier_P
0x00800132 0x1 fc.o
0x00800132 Parameter_Gyro_Gier_P
.data.Parameter_Gyro_I
0x00800133 0x1 fc.o
0x00800133 Parameter_Gyro_I
.data.Parameter_Gyro_P
0x00800134 0x1 fc.o
0x00800134 Parameter_Gyro_P
.data.Parameter_Gyro_D
0x00800135 0x1 fc.o
0x00800135 Parameter_Gyro_D
.data.Parameter_Hoehe_TiltCompensation
0x00800136 0x1 fc.o
0x00800136 Parameter_Hoehe_TiltCompensation
.data.Parameter_KompassWirkung
0x00800137 0x1 fc.o
0x00800137 Parameter_KompassWirkung
.data.Parameter_Hoehe_ACC_Wirkung
0x00800138 0x1 fc.o
0x00800138 Parameter_Hoehe_ACC_Wirkung
.data.Parameter_Hoehe_P
0x00800139 0x1 fc.o
0x00800139 Parameter_Hoehe_P
.data.Parameter_Luftdruck_D
0x0080013a 0x1 fc.o
0x0080013a Parameter_Luftdruck_D
.data.Ki 0x0080013b 0x2 fc.o
0x0080013b Ki
.data.carefree_old
0x0080013d 0x1 fc.o
0x0080013d carefree_old
.data.HoverGasMax
0x0080013e 0x2 fc.o
0x0080013e HoverGasMax
.data.StickGasHover
0x00800140 0x2 fc.o
0x00800140 StickGasHover
.data.Umschlag180Roll
0x00800142 0x4 fc.o
0x00800142 Umschlag180Roll
.data.Umschlag180Nick
0x00800146 0x4 fc.o
0x00800146 Umschlag180Nick
.data.KompassSignalSchlecht
0x0080014a 0x2 fc.o
0x0080014a KompassSignalSchlecht
.data.KompassFusion
0x0080014c 0x1 fc.o
0x0080014c KompassFusion
.data.CalculateCompassTimer
0x0080014d 0x1 fc.o
0x0080014d CalculateCompassTimer
.data.KompassValue
0x0080014e 0x2 fc.o
0x0080014e KompassValue
.data.stick.2964
0x00800150 0x1 FlightCtrl.o
.data.LipoCells
0x00800151 0x1 FlightCtrl.o
0x00800151 LipoCells
.data.ActiveParamSet
0x00800152 0x1 FlightCtrl.o
0x00800152 ActiveParamSet
.data.BattLowVoltageWarning
0x00800153 0x1 FlightCtrl.o
0x00800153 BattLowVoltageWarning
.data.PlatinenVersion
0x00800154 0x1 FlightCtrl.o
0x00800154 PlatinenVersion
.data.load_waypoint_tmp.3376
0x00800155 0x1 hottmenu.o
.data.load_waypoint_tmp2.3337
0x00800156 0x1 hottmenu.o
.data.SpeakHoTT
0x00800157 0x1 hottmenu.o
0x00800157 SpeakHoTT
.data.updateDelay.3134
0x00800158 0x1 jetimenu.o
.data.load_waypoint_tmp.3081
0x00800159 0x1 jetimenu.o
.data.load_waypoint_tmp.3060
0x0080015a 0x1 jetimenu.o
.data.load_waypoint_tmp.3041
0x0080015b 0x1 jetimenu.o
.data.load_waypoint_tmp.3022
0x0080015c 0x1 jetimenu.o
.data.toggle.2955
0x0080015d 0x1 jetimenu.o
.data.JetiExData
0x0080015e 0x130 jeti_ex.o
0x0080015e JetiExData
.data.J17Mask 0x0080028e 0x1 led.o
0x0080028e J17Mask
.data.J16Mask 0x0080028f 0x1 led.o
0x0080028f J16Mask
.data.MaxMenue
0x00800290 0x1 menu.o
0x00800290 MaxMenue
.data.PPM_Neutral
0x00800291 0x2 rc.o
0x00800291 PPM_Neutral
.data.NewPpmData
0x00800293 0x1 rc.o
0x00800293 NewPpmData
.data.ReSync.2958
0x00800294 0x1 Spektrum.o
.data.oldcommand.2991
0x00800295 0x1 spi.o
.data.NC_GPS_ModeCharacter
0x00800296 0x1 spi.o
0x00800296 NC_GPS_ModeCharacter
.data.SPI_CommandSequence
0x00800297 0xd spi.o
0x00800297 SPI_CommandSequence
.data.NaviDataOkay
0x008002a4 0x1 spi.o
0x008002a4 NaviDataOkay
.data.FromNC_Rotate_C
0x008002a5 0x1 spi.o
0x008002a5 FromNC_Rotate_C
.data.cnt_1ms.2973
0x008002a6 0x1 timer0.o
.data.NickServoValue
0x008002a7 0x2 timer0.o
0x008002a7 NickServoValue
.data.BeepMuster
0x008002a9 0x2 timer0.o
0x008002a9 BeepMuster
.data.ServoRollOffset
0x008002ab 0x2 timer0.o
0x008002ab ServoRollOffset
.data.ServoNickOffset
0x008002ad 0x2 timer0.o
0x008002ad ServoNickOffset
.data.CalculateServoSignals
0x008002af 0x1 timer0.o
0x008002af CalculateServoSignals
.data.I2CTimeout
0x008002b0 0x2 twimaster.o
0x008002b0 I2CTimeout
.data.Max_I2C_Packets
0x008002b2 0x1 twimaster.o
0x008002b2 Max_I2C_Packets
.data.ReadBlSize
0x008002b3 0x1 twimaster.o
0x008002b3 ReadBlSize
.data.MeineSlaveAdresse
0x008002b4 0x1 uart.o
0x008002b4 MeineSlaveAdresse
.data.PcZugriff
0x008002b5 0x1 uart.o
0x008002b5 PcZugriff
.data.DebugTextAnforderung
0x008002b6 0x1 uart.o
0x008002b6 DebugTextAnforderung
.data.UebertragungAbgeschlossen
0x008002b7 0x1 uart.o
0x008002b7 UebertragungAbgeschlossen
*(.rodata)
.rodata 0x008002b8 0xd eeprom.o
*(.rodata*)
.rodata.str1.1
0x008002c5 0x6 eeprom.o
.rodata.sintab
0x008002cb 0x1f fc.o
0x008002cb sintab
*(.gnu.linkonce.d*)
0x008002ea . = ALIGN (0x2)
0x008002ea _edata = .
0x008002ea PROVIDE (__data_end, .)
 
.bss 0x008002ea 0x9cc
0x008002ea PROVIDE (__bss_start, .)
*(.bss)
.bss 0x008002ea 0x3f C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
0x008002ea SinceV23
0x008002eb weiuncefcnsavsgvghjc
0x008002ec IllIIllIlIlIlIllllII
0x008002ed HoTTBlink
0x008002ee Hott_TxWait
0x008002ef HoTT_TxBytesLeft
0x008002f0 HoTT_DataPointer
0x008002f2 XSasC2389ufwejiCjuz32
0x008002f3 IIIIIlIllllllIIllIIll
0x008002f4 DJFIORJHcvjr894hjhffj
0x008002f5 fij48zrhoih3498fhfo90
0x008002f6 fojk48fj478fhw7fhw39
*(.bss*)
.bss.messanzahl_Druck.3012
0x00800329 0x1 analog.o
.bss.tmpLuftdruck.3011
0x0080032a 0x4 analog.o
.bss.roll_filter.3008
0x0080032e 0x2 analog.o
.bss.nick_filter.3007
0x00800330 0x2 analog.o
.bss.subcount.3003
0x00800332 0x2 analog.o
.bss.tmpVoltage.3022
0x00800334 0x2 analog.o
.bss.accx.3010
0x00800336 0x2 analog.o
.bss.accy.3009
0x00800338 0x2 analog.o
.bss.gier1.3004
0x0080033a 0x2 analog.o
.bss.roll1.3005
0x0080033c 0x2 analog.o
.bss.kanal.3001
0x0080033e 0x1 analog.o
.bss.nick1.3006
0x0080033f 0x2 analog.o
.bss.state.3002
0x00800341 0x1 analog.o
.bss.HoehenWertF_Mess
0x00800342 0x4 analog.o
0x00800342 HoehenWertF_Mess
.bss.HoehenWert_Mess
0x00800346 0x4 analog.o
0x00800346 HoehenWert_Mess
.bss.HoehenWertF
0x0080034a 0x4 analog.o
0x0080034a HoehenWertF
.bss.ExpandBaroStep
0x0080034e 0x4 analog.o
0x0080034e ExpandBaroStep
.bss.ZaehlMessungen
0x00800352 0x2 analog.o
0x00800352 ZaehlMessungen
.bss.VarioMeter
0x00800354 0x2 analog.o
0x00800354 VarioMeter
.bss.ExpandBaro
0x00800356 0x1 analog.o
0x00800356 ExpandBaro
.bss.SummenHoehe
0x00800357 0x4 analog.o
0x00800357 SummenHoehe
.bss.AdWertAccHoch
0x0080035b 0x2 analog.o
0x0080035b AdWertAccHoch
.bss.AdWertAccNick
0x0080035d 0x2 analog.o
0x0080035d AdWertAccNick
.bss.AdWertAccRoll
0x0080035f 0x2 analog.o
0x0080035f AdWertAccRoll
.bss.AdWertGier
0x00800361 0x2 analog.o
0x00800361 AdWertGier
.bss.AdWertRoll
0x00800363 0x2 analog.o
0x00800363 AdWertRoll
.bss.AdWertNick
0x00800365 0x2 analog.o
0x00800365 AdWertNick
.bss.AdWertRollFilter
0x00800367 0x2 analog.o
0x00800367 AdWertRollFilter
.bss.AdWertNickFilter
0x00800369 0x2 analog.o
0x00800369 AdWertNickFilter
.bss.SubCounter.2984
0x0080036b 0x2 capacity.o
.bss.CurrentOffset.2985
0x0080036d 0x2 capacity.o
.bss.SumCurrentOffset.2986
0x0080036f 0x4 capacity.o
.bss.update_timer
0x00800373 0x2 capacity.o
0x00800373 update_timer
.bss.HoverGasFilter.3241
0x00800375 0x4 fc.o
.bss.FilterHCGas.3240
0x00800379 0x2 fc.o
.bss.tmp_long2.3208
0x0080037b 0x4 fc.o
.bss.tmp_long.3207
0x0080037f 0x4 fc.o
.bss.HeightDeviation.3239
0x00800383 0x2 fc.o
.bss.HeightTrimming.3238
0x00800385 0x2 fc.o
.bss.BaroAtUpperLimit.3243
0x00800387 0x1 fc.o
.bss.BaroAtLowerLimit.3244
0x00800388 0x1 fc.o
.bss.u_filter.3235
0x00800389 0x2 fc.o
.bss.slower.3234
0x0080038b 0x1 fc.o
.bss.MittelIntegralRoll_Alt.3228
0x0080038c 0x4 fc.o
.bss.MittelIntegralNick_Alt.3227
0x00800390 0x4 fc.o
.bss.stick_roll.3221
0x00800394 0x2 fc.o
.bss.stick_nick.3220
0x00800396 0x2 fc.o
.bss.delay_ausschalten.3212
0x00800398 0x1 fc.o
.bss.delay_einschalten.3211
0x00800399 0x1 fc.o
.bss.move_safety_switch.3213
0x0080039a 0x1 fc.o
.bss.delay_neutral.3210
0x0080039b 0x1 fc.o
.bss.sollGier.3206
0x0080039c 0x4 fc.o
.bss.RcLostTimer.3209
0x008003a0 0x2 fc.o
.bss.d2Roll.3170
0x008003a2 0x2 fc.o
.bss.oldRoll.3169
0x008003a4 0x2 fc.o
.bss.d2Nick.3171
0x008003a6 0x2 fc.o
.bss.oldNick.3168
0x008003a8 0x2 fc.o
.bss.tmpl2.3165
0x008003aa 0x4 fc.o
.bss.tmpl.3164
0x008003ae 0x4 fc.o
.bss.tmpl4.3167
0x008003b2 0x4 fc.o
.bss.tmpl3.3166
0x008003b6 0x4 fc.o
.bss.DriftRoll
0x008003ba 0x2 fc.o
0x008003ba DriftRoll
.bss.DriftNick
0x008003bc 0x2 fc.o
0x008003bc DriftNick
.bss.LowVoltageHomeActive
0x008003be 0x1 fc.o
0x008003be LowVoltageHomeActive
.bss.LowVoltageLandingActive
0x008003bf 0x1 fc.o
0x008003bf LowVoltageLandingActive
.bss.ACC_AltitudeControl
0x008003c0 0x1 fc.o
0x008003c0 ACC_AltitudeControl
.bss.Variance 0x008003c1 0x2 fc.o
0x008003c1 Variance
.bss.GasIsZeroCnt
0x008003c3 0x2 fc.o
0x008003c3 GasIsZeroCnt
.bss.HooverGasEmergencyPercent
0x008003c5 0x2 fc.o
0x008003c5 HooverGasEmergencyPercent
.bss.FC_StatusFlags3
0x008003c7 0x1 fc.o
0x008003c7 FC_StatusFlags3
.bss.FC_StatusFlags2
0x008003c8 0x1 fc.o
0x008003c8 FC_StatusFlags2
.bss.FC_StatusFlags
0x008003c9 0x1 fc.o
0x008003c9 FC_StatusFlags
.bss.modell_fliegt
0x008003ca 0x2 fc.o
0x008003ca modell_fliegt
.bss.MaxStickRoll
0x008003cc 0x2 fc.o
0x008003cc MaxStickRoll
.bss.MaxStickNick
0x008003ce 0x2 fc.o
0x008003ce MaxStickNick
.bss.ExternStickGier
0x008003d0 0x2 fc.o
0x008003d0 ExternStickGier
.bss.ExternStickRoll
0x008003d2 0x2 fc.o
0x008003d2 ExternStickRoll
.bss.ExternStickNick
0x008003d4 0x2 fc.o
0x008003d4 ExternStickNick
.bss.CareFree 0x008003d6 0x1 fc.o
0x008003d6 CareFree
.bss.Parameter_UserParam8
0x008003d7 0x1 fc.o
0x008003d7 Parameter_UserParam8
.bss.Parameter_UserParam7
0x008003d8 0x1 fc.o
0x008003d8 Parameter_UserParam7
.bss.Parameter_UserParam6
0x008003d9 0x1 fc.o
0x008003d9 Parameter_UserParam6
.bss.Parameter_UserParam5
0x008003da 0x1 fc.o
0x008003da Parameter_UserParam5
.bss.Parameter_UserParam4
0x008003db 0x1 fc.o
0x008003db Parameter_UserParam4
.bss.Parameter_UserParam3
0x008003dc 0x1 fc.o
0x008003dc Parameter_UserParam3
.bss.Parameter_UserParam2
0x008003dd 0x1 fc.o
0x008003dd Parameter_UserParam2
.bss.Parameter_UserParam1
0x008003de 0x1 fc.o
0x008003de Parameter_UserParam1
.bss.Parameter_HoehenSchalter
0x008003df 0x1 fc.o
0x008003df Parameter_HoehenSchalter
.bss.Looping_Oben
0x008003e0 0x1 fc.o
0x008003e0 Looping_Oben
.bss.Looping_Unten
0x008003e1 0x1 fc.o
0x008003e1 Looping_Unten
.bss.Looping_Rechts
0x008003e2 0x1 fc.o
0x008003e2 Looping_Rechts
.bss.Looping_Links
0x008003e3 0x1 fc.o
0x008003e3 Looping_Links
.bss.Looping_Roll
0x008003e4 0x1 fc.o
0x008003e4 Looping_Roll
.bss.Looping_Nick
0x008003e5 0x1 fc.o
0x008003e5 Looping_Nick
.bss.HoverGas 0x008003e6 0x2 fc.o
0x008003e6 HoverGas
.bss.LageKorrekturNick
0x008003e8 0x2 fc.o
0x008003e8 LageKorrekturNick
.bss.LageKorrekturRoll
0x008003ea 0x2 fc.o
0x008003ea LageKorrekturRoll
.bss.NeueKompassRichtungMerken
0x008003ec 0x1 fc.o
0x008003ec NeueKompassRichtungMerken
.bss.CalibrationDone
0x008003ed 0x1 fc.o
0x008003ed CalibrationDone
.bss.CompassGierSetpoint
0x008003ee 0x2 fc.o
0x008003ee CompassGierSetpoint
.bss.WaypointTrimming
0x008003f0 0x1 fc.o
0x008003f0 WaypointTrimming
.bss.FromNC_AltitudeSpeed
0x008003f1 0x1 fc.o
0x008003f1 FromNC_AltitudeSpeed
.bss.FromNC_AltitudeSetpoint
0x008003f2 0x4 fc.o
0x008003f2 FromNC_AltitudeSetpoint
.bss.AltitudeSetpointTrimming
0x008003f6 0x2 fc.o
0x008003f6 AltitudeSetpointTrimming
.bss.SollHoehe
0x008003f8 0x4 fc.o
0x008003f8 SollHoehe
.bss.HoehenWert
0x008003fc 0x4 fc.o
0x008003fc HoehenWert
.bss.StartTrigger
0x00800400 0x1 fc.o
0x00800400 StartTrigger
.bss.MotorenEin
0x00800401 0x1 fc.o
0x00800401 MotorenEin
.bss.SenderOkay
0x00800402 0x1 fc.o
0x00800402 SenderOkay
.bss.Poti 0x00800403 0x9 fc.o
0x00800403 Poti
.bss.StickGas 0x0080040c 0x2 fc.o
0x0080040c StickGas
.bss.StickGier
0x0080040e 0x2 fc.o
0x0080040e StickGier
.bss.StickRoll
0x00800410 0x2 fc.o
0x00800410 StickRoll
.bss.StickNick
0x00800412 0x2 fc.o
0x00800412 StickNick
.bss.HoverGasMin
0x00800414 0x2 fc.o
0x00800414 HoverGasMin
.bss.GierGyroFehler
0x00800416 0x2 fc.o
0x00800416 GierGyroFehler
.bss.TrichterFlug
0x00800418 0x1 fc.o
0x00800418 TrichterFlug
.bss.HoehenReglerAktiv
0x00800419 0x1 fc.o
0x00800419 HoehenReglerAktiv
.bss.KompassSollWert
0x0080041a 0x2 fc.o
0x0080041a KompassSollWert
.bss.Mess_Integral_Hoch
0x0080041c 0x4 fc.o
0x0080041c Mess_Integral_Hoch
.bss.SummeRoll
0x00800420 0x4 fc.o
0x00800420 SummeRoll
.bss.SummeNick
0x00800424 0x4 fc.o
0x00800424 SummeNick
.bss.Mess_Integral_Gier2
0x00800428 0x4 fc.o
0x00800428 Mess_Integral_Gier2
.bss.Mess_Integral_Gier
0x0080042c 0x4 fc.o
0x0080042c Mess_Integral_Gier
.bss.Mess_IntegralRoll
0x00800430 0x4 fc.o
0x00800430 Mess_IntegralRoll
.bss.Mess_IntegralNick
0x00800434 0x4 fc.o
0x00800434 Mess_IntegralNick
.bss.Integral_Gier
0x00800438 0x4 fc.o
0x00800438 Integral_Gier
.bss.IntegralRoll
0x0080043c 0x4 fc.o
0x0080043c IntegralRoll
.bss.IntegralNick
0x00800440 0x4 fc.o
0x00800440 IntegralNick
.bss.NeutralAccZfine
0x00800444 0x1 fc.o
0x00800444 NeutralAccZfine
.bss.NeutralAccZ
0x00800445 0x2 fc.o
0x00800445 NeutralAccZ
.bss.NaviCntAcc
0x00800447 0x2 fc.o
0x00800447 NaviCntAcc
.bss.NeutralAccY
0x00800449 0x2 fc.o
0x00800449 NeutralAccY
.bss.NeutralAccX
0x0080044b 0x2 fc.o
0x0080044b NeutralAccX
.bss.StartNeutralNick
0x0080044d 0x2 fc.o
0x0080044d StartNeutralNick
.bss.StartNeutralRoll
0x0080044f 0x2 fc.o
0x0080044f StartNeutralRoll
.bss.AdNeutralGier
0x00800451 0x2 fc.o
0x00800451 AdNeutralGier
.bss.AdNeutralRoll
0x00800453 0x2 fc.o
0x00800453 AdNeutralRoll
.bss.AdNeutralNick
0x00800455 0x2 fc.o
0x00800455 AdNeutralNick
.bss.BaroExpandActive
0x00800457 0x2 fc.o
0x00800457 BaroExpandActive
.bss.second.3032
0x00800459 0x1 FlightCtrl.o
.bss.JetiBeep 0x0080045a 0x1 FlightCtrl.o
0x0080045a JetiBeep
.bss.FoundMotors
0x0080045b 0x1 FlightCtrl.o
0x0080045b FoundMotors
.bss.FlugSekunden
0x0080045c 0x2 FlightCtrl.o
0x0080045c FlugSekunden
.bss.FlugMinutenGesamt
0x0080045e 0x2 FlightCtrl.o
0x0080045e FlugMinutenGesamt
.bss.FlugMinuten
0x00800460 0x2 FlightCtrl.o
0x00800460 FlugMinuten
.bss.BattComingHomeVoltage
0x00800462 0x1 FlightCtrl.o
0x00800462 BattComingHomeVoltage
.bss.BattAutoLandingVoltage
0x00800463 0x1 FlightCtrl.o
0x00800463 BattAutoLandingVoltage
.bss.DisableRcOffBeeping
0x00800464 0x1 FlightCtrl.o
0x00800464 DisableRcOffBeeping
.bss.GPS_Aid_StickMultiplikator
0x00800465 0x1 GPS.o
0x00800465 GPS_Aid_StickMultiplikator
.bss.GPS_Roll 0x00800466 0x2 GPS.o
0x00800466 GPS_Roll
.bss.GPS_Nick 0x00800468 0x2 GPS.o
0x00800468 GPS_Nick
.bss.changed.3451
0x0080046a 0x1 hottmenu.o
.bss.wp_tmp.3450
0x0080046b 0x1 hottmenu.o
.bss.changed.3414
0x0080046c 0x1 hottmenu.o
.bss.wp_tmp.3413
0x0080046d 0x1 hottmenu.o
.bss.changed.3377
0x0080046e 0x1 hottmenu.o
.bss.changed2.3338
0x0080046f 0x1 hottmenu.o
.bss.show_poti.3087
0x00800470 0x1 hottmenu.o
.bss.show_current.3085
0x00800471 0x1 hottmenu.o
.bss.show_mag.3086
0x00800472 0x1 hottmenu.o
.bss.line.3083
0x00800473 0x1 hottmenu.o
.bss.page.3084
0x00800474 0x1 hottmenu.o
.bss.repeat.2989
0x00800475 0x2 hottmenu.o
.bss.old_status.2988
0x00800477 0x1 hottmenu.o
.bss.tmp_min.2977
0x00800478 0x1 hottmenu.o
.bss.who.2978 0x00800479 0x1 hottmenu.o
.bss.tmp_max.2976
0x0080047a 0x1 hottmenu.o
.bss.search.2975
0x0080047b 0x1 hottmenu.o
.bss.HoTTVarioMeter
0x0080047c 0x2 hottmenu.o
0x0080047c HoTTVarioMeter
.bss.ShowSettingNameTime
0x0080047e 0x1 hottmenu.o
0x0080047e ShowSettingNameTime
.bss.ToNC_SpeakHoTT
0x0080047f 0x1 hottmenu.o
0x0080047f ToNC_SpeakHoTT
.bss.HottestBl
0x00800480 0x1 hottmenu.o
0x00800480 HottestBl
.bss.MinBlTemperture
0x00800481 0x1 hottmenu.o
0x00800481 MinBlTemperture
.bss.MaxBlTemperture
0x00800482 0x1 hottmenu.o
0x00800482 MaxBlTemperture
.bss.NaviData_TargetDistance
0x00800483 0x2 hottmenu.o
0x00800483 NaviData_TargetDistance
.bss.ToNC_Store_SingePoint
0x00800485 0x1 hottmenu.o
0x00800485 ToNC_Store_SingePoint
.bss.ToNC_Load_SingePoint
0x00800486 0x1 hottmenu.o
0x00800486 ToNC_Load_SingePoint
.bss.NaviData_MaxWpListIndex
0x00800487 0x1 hottmenu.o
0x00800487 NaviData_MaxWpListIndex
.bss.ToNC_Load_WP_List
0x00800488 0x1 hottmenu.o
0x00800488 ToNC_Load_WP_List
.bss.NaviData_TargetHoldTime
0x00800489 0x1 hottmenu.o
0x00800489 NaviData_TargetHoldTime
.bss.NaviData_WaypointNumber
0x0080048a 0x1 hottmenu.o
0x0080048a NaviData_WaypointNumber
.bss.NaviData_WaypointIndex
0x0080048b 0x1 hottmenu.o
0x0080048b NaviData_WaypointIndex
.bss.last_key.3135
0x0080048c 0x1 jetimenu.o
.bss.last_item.3133
0x0080048d 0x1 jetimenu.o
.bss.item.3132
0x0080048e 0x1 jetimenu.o
.bss.changed.3082
0x0080048f 0x1 jetimenu.o
.bss.changed.3061
0x00800490 0x1 jetimenu.o
.bss.changed.3042
0x00800491 0x1 jetimenu.o
.bss.changed.3023
0x00800492 0x1 jetimenu.o
.bss.timer.2954
0x00800493 0x2 jetimenu.o
.bss.JetiVarioMeter.2949
0x00800495 0x2 jeti_ex.o
.bss.J17Warn.2960
0x00800497 0x1 led.o
.bss.J16Warn.2959
0x00800498 0x1 led.o
.bss.J17Bitmask.2958
0x00800499 0x1 led.o
.bss.J16Bitmask.2957
0x0080049a 0x1 led.o
.bss.delay.2956
0x0080049b 0x1 led.o
.bss.from_nc.2961
0x0080049c 0x1 led.o
.bss.NC_Wait_for_LED
0x0080049d 0x1 led.o
0x0080049d NC_Wait_for_LED
.bss.J17Blinkcount
0x0080049e 0x1 led.o
0x0080049e J17Blinkcount
.bss.J16Blinkcount
0x0080049f 0x1 led.o
0x0080049f J16Blinkcount
.bss.RemoteKeys
0x008004a0 0x1 menu.o
0x008004a0 RemoteKeys
.bss.MenuePunkt
0x008004a1 0x1 menu.o
0x008004a1 MenuePunkt
.bss.DispPtr 0x008004a2 0x1 menu.o
0x008004a2 DispPtr
.bss.index.2964
0x008004a3 0x2 rc.o
.bss.AltICR.2961
0x008004a5 0x2 rc.o
.bss.load.2960
0x008004a7 0x1 sbus.o
.bss.ptr.2956 0x008004a8 0x1 sbus.o
.bss.NewSBusData
0x008004a9 0x1 sbus.o
0x008004a9 NewSBusData
.bss.Frame2.2959
0x008004aa 0x1 Spektrum.o
.bss.ByteHigh.2957
0x008004ab 0x1 Spektrum.o
.bss.Sync.2955
0x008004ac 0x1 Spektrum.o
.bss.FrameCnt.2956
0x008004ad 0x1 Spektrum.o
.bss.SpektrumTimer
0x008004ae 0x1 Spektrum.o
0x008004ae SpektrumTimer
.bss.slow_command.2992
0x008004af 0x1 spi.o
.bss.motorindex.2990
0x008004b0 0x1 spi.o
.bss.rxchksum.2980
0x008004b1 0x1 spi.o
.bss.SPI_RXState.2978
0x008004b2 0x1 spi.o
.bss.POI_KameraNick
0x008004b3 0x2 spi.o
0x008004b3 POI_KameraNick
.bss.NC_To_FC_Flags
0x008004b5 0x1 spi.o
0x008004b5 NC_To_FC_Flags
.bss.EarthMagneticInclinationTheoretic
0x008004b6 0x1 spi.o
0x008004b6 EarthMagneticInclinationTheoretic
.bss.EarthMagneticInclination
0x008004b7 0x1 spi.o
0x008004b7 EarthMagneticInclination
.bss.EarthMagneticField
0x008004b8 0x1 spi.o
0x008004b8 EarthMagneticField
.bss.NC_ErrorCode
0x008004b9 0x1 spi.o
0x008004b9 NC_ErrorCode
.bss.SPI_CommandCounter
0x008004ba 0x1 spi.o
0x008004ba SPI_CommandCounter
.bss.FromNC_WP_EventChannel_New
0x008004bb 0x1 spi.o
0x008004bb FromNC_WP_EventChannel_New
.bss.FromNC_Rotate_S
0x008004bc 0x1 spi.o
0x008004bc FromNC_Rotate_S
.bss.ServoFrameTime.3021
0x008004bd 0x2 timer0.o
.bss.ServoIndex.3022
0x008004bf 0x1 timer0.o
.bss.PulseOutput.3020
0x008004c0 0x1 timer0.o
.bss.cnt.2974 0x008004c1 0x1 timer0.o
.bss.ServoRollValue
0x008004c2 0x2 timer0.o
0x008004c2 ServoRollValue
.bss.ServoNickValue
0x008004c4 0x2 timer0.o
0x008004c4 ServoNickValue
.bss.RemainingPulse
0x008004c6 0x2 timer0.o
0x008004c6 RemainingPulse
.bss.JustMK3MagConnected
0x008004c8 0x1 timer0.o
0x008004c8 JustMK3MagConnected
.bss.ServoActive
0x008004c9 0x1 timer0.o
0x008004c9 ServoActive
.bss.BytegapSPI
0x008004ca 0x1 timer0.o
0x008004ca BytegapSPI
.bss.beeptime 0x008004cb 0x2 timer0.o
0x008004cb beeptime
.bss.cntKompass
0x008004cd 0x2 timer0.o
0x008004cd cntKompass
.bss.UpdateMotor
0x008004cf 0x1 timer0.o
0x008004cf UpdateMotor
.bss.CountMilliseconds
0x008004d0 0x2 timer0.o
0x008004d0 CountMilliseconds
.bss.motor_read_temperature.3003
0x008004d2 0x1 twimaster.o
.bss.missing_motor.3002
0x008004d3 0x1 twimaster.o
.bss.BuffLen.3005
0x008004d4 0x1 twimaster.o
.bss.pBuff.3004
0x008004d5 0x2 twimaster.o
.bss.max_packets.3006
0x008004d7 0x1 twimaster.o
.bss.BLConfig_ReadMask
0x008004d8 0x2 twimaster.o
0x008004d8 BLConfig_ReadMask
.bss.BLConfig_WriteMask
0x008004da 0x2 twimaster.o
0x008004da BLConfig_WriteMask
.bss.BLFlags 0x008004dc 0x1 twimaster.o
0x008004dc BLFlags
.bss.MissingMotor
0x008004dd 0x1 twimaster.o
0x008004dd MissingMotor
.bss.I2C_TransferActive
0x008004de 0x1 twimaster.o
0x008004de I2C_TransferActive
.bss.motor_read
0x008004df 0x1 twimaster.o
0x008004df motor_read
.bss.motor_write
0x008004e0 0x1 twimaster.o
0x008004e0 motor_write
.bss.twi_state
0x008004e1 0x1 twimaster.o
0x008004e1 twi_state
.bss.crc2.2998
0x008004e2 0x1 uart.o
.bss.crc1.2997
0x008004e3 0x1 uart.o
.bss.crc.2996 0x008004e4 0x2 uart.o
.bss.UartState.3000
0x008004e6 0x1 uart.o
.bss.buf_ptr.2999
0x008004e7 0x1 uart.o
.bss.ptr.2989 0x008004e8 0x2 uart.o
.bss.ReceiverUpdateModeActive
0x008004ea 0x1 uart.o
0x008004ea ReceiverUpdateModeActive
.bss.AboTimeOut
0x008004eb 0x2 uart.o
0x008004eb AboTimeOut
.bss.Display_Interval
0x008004ed 0x2 uart.o
0x008004ed Display_Interval
.bss.Intervall3D
0x008004ef 0x2 uart.o
0x008004ef Intervall3D
.bss.DebugDataIntervall
0x008004f1 0x2 uart.o
0x008004f1 DebugDataIntervall
.bss.PC_MotortestActive
0x008004f3 0x1 uart.o
0x008004f3 PC_MotortestActive
.bss.RxDataLen
0x008004f4 0x1 uart.o
0x008004f4 RxDataLen
.bss.pRxData 0x008004f5 0x2 uart.o
0x008004f5 pRxData
.bss.AnzahlEmpfangsBytes
0x008004f7 0x1 uart.o
0x008004f7 AnzahlEmpfangsBytes
.bss.CntCrcError
0x008004f8 0x1 uart.o
0x008004f8 CntCrcError
.bss.NeuerDatensatzEmpfangen
0x008004f9 0x1 uart.o
0x008004f9 NeuerDatensatzEmpfangen
.bss.SioTmp 0x008004fa 0x1 uart.o
0x008004fa SioTmp
.bss.DisplayLine
0x008004fb 0x1 uart.o
0x008004fb DisplayLine
.bss.GetPPMChannelAnforderung
0x008004fc 0x1 uart.o
0x008004fc GetPPMChannelAnforderung
.bss.GetVersionAnforderung
0x008004fd 0x1 uart.o
0x008004fd GetVersionAnforderung
.bss.DebugDataAnforderung
0x008004fe 0x1 uart.o
0x008004fe DebugDataAnforderung
.bss.DebugDisplayAnforderung
0x008004ff 0x1 uart.o
0x008004ff DebugDisplayAnforderung
.bss.DebugDisplayAnforderung1
0x00800500 0x1 uart.o
0x00800500 DebugDisplayAnforderung1
.bss.GetExternalControl
0x00800501 0x1 uart.o
0x00800501 GetExternalControl
*(COMMON)
COMMON 0x00800502 0x11 analog.o
0x00800502 Aktuell_ay
0x00800504 Aktuell_az
0x00800506 StartLuftdruck
0x0080050a Aktuell_Nick
0x0080050c Aktuell_Roll
0x0080050e Aktuell_ax
0x00800510 DruckOffsetSetting
0x00800511 Aktuell_Gier
COMMON 0x00800513 0x7 capacity.o
0x00800513 Capacity
COMMON 0x0080051a 0xd8 eeprom.o
0x0080051a RequiredMotors
0x0080051b EE_Parameter
0x008005a4 Mixer
COMMON 0x008005f2 0x63 fc.o
0x008005f2 KopplungsteilNickRoll
0x008005f4 KopplungsteilRollNick
0x008005f6 Parameter_Servo4
0x008005f7 DiffRoll
0x008005f9 MesswertRoll
0x008005fb TrimNick
0x008005fd Parameter_NaviGpsP
0x008005fe ErsatzKompassInGrad
0x00800600 GyroFaktorGier
0x00800601 Parameter_MaximumAltitude
0x00800602 TrimRoll
0x00800604 MesswertNick
0x00800606 Parameter_NaviGpsI
0x00800607 RohMesswertRoll
0x00800609 MIN_GAS
0x0080060a CosAttitude
0x0080060c RohMesswertNick
0x0080060e IntegralFaktorGier
0x0080060f DiffNick
0x00800611 MittelIntegralNick
0x00800615 Parameter_Servo3
0x00800616 NaviAccNick
0x00800618 Parameter_J16Timing
0x00800619 MittelIntegralRoll
0x0080061d Parameter_ExtraConfig
0x0080061e Parameter_Servo5
0x0080061f IntegralFaktor
0x00800620 tmp_motorwert
0x00800638 Parameter_NaviGpsA
0x00800639 Parameter_GlobalConfig
0x0080063a Parameter_NaviWindCorrection
0x0080063b s
0x0080063c h
0x0080063d Mittelwert_AccNick
0x0080063f Parameter_NaviSpeedCompensation
0x00800640 Parameter_J17Timing
0x00800641 MAX_GAS
0x00800642 CompassCorrected
0x00800644 MesswertGier
0x00800646 Parameter_J16Bitmask
0x00800647 NaviAccRoll
0x00800649 GyroFaktor
0x0080064a m
0x0080064b ErsatzKompass
0x0080064f Mittelwert_AccRoll
0x00800651 Parameter_NaviGpsGain
0x00800652 Parameter_ExternalControl
0x00800653 Parameter_J17Bitmask
0x00800654 Parameter_NaviGpsD
COMMON 0x00800655 0x2 FlightCtrl.o
0x00800655 _printf_P
COMMON 0x00800657 0x166 hottmenu.o
0x00800657 ElectricAirPacket
0x00800683 HoTTGeneral
0x008006af WPL_Name
0x008006b9 VarioPacket
0x008006e5 ASCIIPacket
0x00800791 GPSPacket
COMMON 0x008007bd 0x50 menu.o
0x008007bd DisplayBuff
COMMON 0x0080080d 0x8d rc.o
0x0080080d Channels
0x0080080e PPM_in
0x00800854 PPM_diff
COMMON 0x0080089a 0x19 sbus.o
0x0080089a sBusBuffer
COMMON 0x008008b3 0x7b spi.o
0x008008b3 SPITransferCompleted
0x008008b4 GPSInfo
0x008008bc SPI_TX_Buffer
0x008008be NC_Version
0x008008c3 SPI_BufferIndex
0x008008c4 ToNaviCtrl
0x008008e6 SPI_ChkSum
0x008008e7 SPI_RxBufferIndex
0x008008e8 SPI_RxDataValid
0x008008e9 FromNaviCtrl
0x00800909 SPI_Buffer
0x00800929 FromNaviCtrl_Value
COMMON 0x0080092e 0x2 timer0.o
0x0080092e tim_main
COMMON 0x00800930 0xf8 twimaster.o
0x00800930 RedundantMotor
0x0080096c BLConfig
0x00800974 Motor
COMMON 0x00800a28 0x23e uart.o
0x00800a28 Data3D
0x00800a36 Timer3D
0x00800a38 Debug_Timer
0x00800a3a VersionInfo
0x00800a44 MotorTest
0x00800a54 WinkelOut
0x00800a5c ExternControl
0x00800a67 Kompass_Timer
0x00800a69 RxdBuffer
0x00800b45 Display_Timer
0x00800b47 TxdBuffer
0x00800c23 DebugOut
0x00800c65 ConfirmFrame
COMMON 0x00800c66 0x50 C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl\libfc1284.a(libfc.o)
0x00800c66 USART1_EX_TxBuffer
0x00800c86 HottKeyboard
0x00800c87 fdknerTjg5i83th589v44
0x00800c8d HoTT_RequestedSensor
0x00800c8e HoTT_TextPointer
0x00800c8f IlIlIlIIIIIIIlIllllll
0x00800cb2 fgfdogjWEti45e9tjh394
0x00800cb6 PROVIDE (__bss_end, .)
0x000137c8 __data_load_start = LOADADDR (.data)
0x000139b2 __data_load_end = (__data_load_start + SIZEOF (.data))
 
.noinit 0x00800cb6 0x0
0x00800cb6 PROVIDE (__noinit_start, .)
*(.noinit*)
0x00800cb6 PROVIDE (__noinit_end, .)
0x00800cb6 _end = .
0x00800cb6 PROVIDE (__heap_start, .)
 
.eeprom 0x00810000 0x0
*(.eeprom*)
0x00810000 __eeprom_end = .
 
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
 
.lock
*(.lock*)
 
.signature
*(.signature*)
 
.user_signatures
*(.user_signatures*)
 
.stab
*(.stab)
 
.stabstr
*(.stabstr)
 
.stab.excl
*(.stab.excl)
 
.stab.exclstr
*(.stab.exclstr)
 
.stab.index
*(.stab.index)
 
.stab.indexstr
*(.stab.indexstr)
 
.comment 0x00000000 0x30
*(.comment)
.comment 0x00000000 0x30 analog.o
0x31 (size before relaxing)
.comment 0x00000000 0x31 capacity.o
.comment 0x00000000 0x31 eeprom.o
.comment 0x00000000 0x31 fc.o
.comment 0x00000000 0x31 FlightCtrl.o
.comment 0x00000000 0x31 GPS.o
.comment 0x00000000 0x31 hottmenu.o
.comment 0x00000000 0x31 jetimenu.o
.comment 0x00000000 0x31 jeti_ex.o
.comment 0x00000000 0x31 led.o
.comment 0x00000000 0x31 menu.o
.comment 0x00000000 0x31 mymath.o
.comment 0x00000000 0x31 rc.o
.comment 0x00000000 0x31 sbus.o
.comment 0x00000000 0x31 Spektrum.o
.comment 0x00000000 0x31 spi.o
.comment 0x00000000 0x31 timer0.o
.comment 0x00000000 0x31 twimaster.o
.comment 0x00000000 0x31 uart.o
.comment 0x00000000 0x31 user_receiver.o
 
.note.gnu.build-id
*(.note.gnu.build-id)
 
.debug
*(.debug)
 
.line
*(.line)
 
.debug_srcinfo
*(.debug_srcinfo)
 
.debug_sfnames
*(.debug_sfnames)
 
.debug_aranges 0x00000000 0x20
*(.debug_aranges)
.debug_aranges
0x00000000 0x20 isqrt.o
 
.debug_pubnames
*(.debug_pubnames)
 
.debug_info 0x00000000 0x7c
*(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x00000000 0x7c isqrt.o
 
.debug_abbrev 0x00000000 0x14
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x14 isqrt.o
 
.debug_line 0x00000000 0x334
*(.debug_line .debug_line.* .debug_line_end)
.debug_line 0x00000000 0x334 isqrt.o
 
.debug_frame
*(.debug_frame)
 
.debug_str
*(.debug_str)
 
.debug_loc
*(.debug_loc)
 
.debug_macinfo
*(.debug_macinfo)
 
.debug_weaknames
*(.debug_weaknames)
 
.debug_funcnames
*(.debug_funcnames)
 
.debug_typenames
*(.debug_typenames)
 
.debug_varnames
*(.debug_varnames)
 
.debug_pubtypes
*(.debug_pubtypes)
 
.debug_ranges
*(.debug_ranges)
 
.debug_macro
*(.debug_macro)
OUTPUT(FlightCtrl.elf elf32-avr)
LOAD linker stubs
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/FlightCtrl.srec
0,0 → 1,5022
S0120000466C696768744374726C2E737265631F
S2140000000C94600C0C94BA0C0C94BA0C0C94BA0CAD
S2140000100C94BA0C0C94BA0C0C94BA0C0C94BA0C43
S2140000200C94BA0C0C94DF8A0C94BA0C0C94BA0C90
S2140000300C944A7E0C94BA0C0C94BA0C0C94BA0C21
S2140000400C94BA0C0C94BA0C0C9467870C94BA0CEB
S2140000500C948E900C94BA0C0C9452900C94BA0C8F
S2140000600C944C1B0C94BA0C0C94648C0C94BA0C28
S2140000700C94111A0C94BA0C0C94660F0C94BA0CCF
S2140000800C94BA0C0C94BA0C0C94BA0C7B1B801B08
S214000090851B8E1BA51BBC1BCB1BDB1B371C7C1EB2
S2140000A0BC1B471D581D6D1D8C1DA91DF71D451E2B
S2140000B0A05C7A5F34637965C666F0675369AC5CAA
S2140000C0385DA15DF45D395E9E5E486B065F595FE4
S2140000D0595F595F595F595F595F595F595F595F5B
S2140000E0855FE95F6C609A60D6602E61BB61CE6208
S2140000F01463146314631463146314631463146343
S2140001001463406352636B63BF63F76351647D643B
S2140001100465486B5665566556655665566556655C
S21400012056655665D875B7763F77A377E3778378B5
S214000130F9785179B279E2792E7A597A847ADC7A2A
S214000140227B707BB97BFE7B647C4E7D4883A184DA
S2140001501A85CB856B859B8587834F84CB85E48307
S214000160868CC68CFD8C5A8D778DB48D5C8E13185C
S2140001701618161816181F182218251837183418A7
S2140001802E000A0D4D697865722D436F6E6669679D
S2140001903A202725732720282575204D6F746F7207
S2140001A07329000A0D47656E65726174696E672073
S2140001B064656661756C74204D697865722054615B
S2140001C0626C65000A0D5573696E67205061726136
S2140001D06D6574657220536574202564000A0D47AA
S2140001E0656E65726174696E672064656661756CBC
S2140001F07420506172616D65746572205365742059
S2140002002564000A0D2D2D3E2048617264776172C8
S214000210652056657273696F6E2042797465204357
S21400022068616E676564203C2D2D000A0D47797263
S2140002306F2063616C6962726174696F6E206461BD
S2140002407461206E6F742076616C69640D0A000A12
S2140002500D414343206E6F742063616C6962726166
S214000260746564210D0A000A0D466C696768742D72
S21400027074696D65202575206D696E20546F7461F4
S2140002806C3A2575206D696E004F4B0A0D000A0DFD
S21400029043616C6962726174696E6720707265731F
S2140002A0737572652073656E736F722E2E003C2D0B
S2140002B02D207761726E696E67206F6C64205665BC
S2140002C07273696F6E21000A0D424C2D4669726D7D
S2140002D0776172652025642E25303264000A0D0A87
S2140002E00D2121204D495353494E4720424C2D4362
S2140002F054524C3A202564202121002564000A0D22
S214000300466F756E6420424C2D4374726C3A200022
S2140003100A0D4F6C64204643204861726477617210
S21400032065206E6F7420737570706F7274656420CC
S21400033062792074686973204669726D77617265A8
S214000340210020204175746F6C616E64696E673A97
S2140003502025642E2564560020204175746F2D4399
S214000360483A2025642E25645600204C6F77207767
S21400037061726E696E673A2025642E2564560020E9
S21400038025642043656C6C7320000A0D426174740A
S2140003903A000A0D3D3D3D3D3D3D3D3D3D3D3D3D2B
S2140003A03D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D78
S2140003B03D3D3D3D3D3D3D00257300285365742081
S2140003C02D3E204C6F616429004E6F2053442D4310
S2140003D0617264202020002D2D002532640020202C
S2140003E020006C6F616420706F696E743A00436120
S2140003F06D3A20253369004449523A202533642556
S2140004006300414C543A2534696D20202020004179
S2140004104C543A2534692F25696D200057503A25EB
S21400042032642F256420446973743A2533646D2042
S21400043000202532693A25303269200020253269AD
S2140004402E2531695620004C6F61642073696E67F3
S2140004506C6520506F736974696F6E00214E6F2053
S2140004604750532D46697821200028536574202D67
S2140004703E2053746F726529004E6F2053442D43FF
S214000480617264202020002D2D002532642000207B
S21400049020200053746F726520706F696E743A0086
S2140004A043616D3A20253369004449523A2025338A
S2140004B064256300414C543A2534696D002025328A
S2140004C0693A253032692000202532692E253169A7
S2140004D056200053746F72652073696E676C6520D2
S2140004E0506F736974696F6E0020202020202020D2
S2140004F02020202020200028536574202D3E204CEC
S2140005006F616429004E6F2053442D43617264204E
S214000510202000202D2D0025326420284649582909
S21400052000202020004C6F6164206C6973743A00D0
S2140005302573002532692E2531695620004E6F201E
S214000540575073206163746976652020202000412F
S21400055063746976652057503A2532642F256420E7
S2140005600028466978656420506F736974696F6EF9
S2140005707329004C6F616420576179706F696E74DF
S2140005807300214E6F204750532D46697821200076
S214000590202020202020202020202020200028533B
S2140005A06574202D3E204C6F616429004E6F2053E9
S2140005B0442D43617264202020004C6F6164206CDF
S2140005C06973743A202D2D20004C6F6164206C698D
S2140005D073743A0025326920202000202020002550
S2140005E073002532692E2531695620004E6F20573C
S2140005F050732061637469766520202020200041B6
S21400060063746976652057503A2532642F25642036
S214000610002852656C617469766520506F73697442
S214000620696F6E7329004C6F616420576179706F33
S214000630696E747300434F4D50415353204F4646E6
S21400064021200048482120004C4F4F50494E47215A
S2140006502000434F55504C494E47204F46462120D8
S2140006600050343A2534692050353A25346920360E
S2140006703A2533690050313A2534692050323A25FC
S214000680346920333A2533690047733A25346920A4
S21400069059613A25346920004E693A25346920525A
S2140006A06F3A25346920433A25336900484F4C4455
S2140006B0200025756D00484F4D4520414C543A00AA
S2140006C02046533A257573656B200028484F4C44E6
S2140006D029002841494429200028484F4D45290033
S2140006E02846524545290044495341424C4544005A
S2140006F04750533A002054454143480020284F466F
S21400070046290020284F4E29200044495341424C98
S21400071045440043463A0044495341424C45440050
S214000720564152494F004C494D495400284F4646C1
S214000730292000284F4E29202000504F54493A25A2
S21400074033752000414C543A004D696E3A253269A3
S2140007502E25316956202573200053657474696E02
S214000760673A25752025732000207777772E4D6908
S2140007706B726F4B6F707465722E6465202000215B
S21400078021204C69506F20766F6C7461676520215C
S21400079021004552523A20004552523A20253264F2
S2140007A0202100253369202533692025336920253B
S2140007B03369256343002533692025336925634360
S2140007C02020202020202020002532692E25692088
S2140007D02532692E2569202532692E256920253285
S2140007E0692E256941002532692E25692025326942
S2140007F02E25694100253369202533692025336974
S21400080020253369256343002532692E2569202576
S21400081032692E2569202532692E25692025326900
S2140008202E256941002020204E6F204E61766943B8
S21400083074726C2020202020202000444750532033
S214000840004E4F464958002020334420004750535E
S2140008503A2532756D2F73205341543A2564200093
S2140008602020004346005057523A2532692E253143
S21400087069412028256957292000484D3A253364C8
S21400088025632020444953543A2533646D2025635C
S21400089000256300414C543A2D2D2D2D2000414C4F
S2140008A0543A2534696D00414C543A2534696D003C
S2140008B04449523A253364256300202532693A2597
S2140008C030326920202532692E253169562025349C
S2140008D0696D416800202532693A2530326920204A
S2140008E02532692E25316956202534696D41680008
S2140008F0207777772E4D696B726F4B6F70746572C9
S2140009002E64652020002121204C69506F20766FD0
S2140009106C74616765202121004552523A200045DB
S21400092052523A20253264202100202020202532F1
S214000930756D2F733A2020484D3A25336425632081
S214000940256300696E636C3A253264256328253278
S214000950692900484D3A2533642563202563004DF8
S21400096041473A25337525252000212100334400D0
S214000970442000444953543A2533646D005341548F
S2140009803A25326420003A002D2D2D2D2D2D2D2DAB
S2140009902D2D2D2D2D2D2D2D2D2D2D2D2D002D2DAF
S2140009A02D2D2D2D2D2D2D2B2D2D2D2D2D2D2D2D74
S2140009B02D2D2D003A003A003A00493A2532692E8C
S2140009C0253169412000202025356920200020207F
S2140009D0253569202000200043004449523A20254E
S2140009E0336425630020202532693A253032692099
S2140009F0200020202532693A253032692020004127
S214000A004C543A2D2D2D2D2000414C543A25346956
S214000A106D202000414C543A2534696D2025630032
S214000A2020202532692E25316956202000202025D9
S214000A3032692E25316956202000202020202020D3
S214000A4020202020202020202020202020202000C1
S214000A50000005000500040106010800060102006A
S214000A60040004000700070007000700070007004F
S214000A70070003010301050017010F010600090125
S214000A800A0119010501050119011A010F010100EA
S214000A900900060006004E6F204572726F72202015
S214000AA0202020202020004E6F7420636F6D706120
S214000AB07469626C652020004D4B334D6167206E73
S214000AC06F7420636F6D7061004E6F204643206325
S214000AD06F6D6D756E6963617400436F6D706173E1
S214000AE07320636F6D6D756E6963004750532063A6
S214000AF06F6D6D756E69636174696F00636F6D709D
S214000B006173732076616C75652020200052432047
S214000B105369676E616C206C6F73742020004643C7
S214000B2020737069207278206572726F7220004E92
S214000B306F204E4320636F6D6D756E696361740040
S214000B404643204E69636B204779726F2020202031
S214000B5000464320526F6C6C204779726F2020202D
S214000B602000464320596177204779726F20202065
S214000B702020004643204E69636B204143432020DB
S214000B8020202000464320526F6C6C2041434320B7
S214000B9020202020004643205A2D41434320202079
S214000BA020202020200050726573737572652073B4
S214000BB0656E736F7220004932432046432D3E42D5
S214000BC04C2D4374726C2000426C204D697373691F
S214000BD06E67202020202020004D69786572204511
S214000BE072726F7220202020200043617265667248
S214000BF06565204572726F7220200047505320466C
S214000C006978206C6F737420202020004D61676E19
S214000C106574204572726F7220202020004D6F741C
S214000C206F72207265737461727420202000424CCB
S214000C30204C696D69746174696F6E2020200047CE
S214000C4050532052616E676520202020202020000F
S214000C504E6F2053442D43617264202020202020B4
S214000C600053442D4C6F6767696E67206572726F1C
S214000C707200466C79696E672072616E6765212026
S214000C802020004D617820416C746974756465217C
S214000C90202020004E6F2047505320666978202081
S214000CA02020202000636F6D70617373206E6F7458
S214000CB02063616C2E00424C2D53656C6674657320
S214000CC0742020202020006E6F206578742E20630C
S214000CD06F6D706173732000636F6D706173732046
S214000CE073656E736F7220200053657420203A007F
S214000CF0204D696B726F4B6F707465722028426F5F
S214000D00617429202000202053494D554C415449F8
S214000D104F4E2061637469766520200020212120D3
S214000D2020204C414E44494E47202020202121209F
S214000D302000202121204C69506F20766F6C746152
S214000D40676520212120200020202020204D696B6F
S214000D50726F4B6F707465722020202020004E6FDB
S214000D60204E6176694374726C2100486F6D653A57
S214000D702533646D202533642563202563004447AE
S214000D805053004E6F4678002020334400253275BD
S214000D906D2F73205361743A256420002020002DA7
S214000DA03E002D2D2F2D2D002532642F256420008A
S214000DB023253264205750733A006E6F20475053F5
S214000DC02D466978006E6F2053442D43617264008F
S214000DD052656C3A25730052656C617469766520BD
S214000DE057507320002020002D3E002D2D2F2D2D36
S214000DF0002532642F2564200023253264205750B6
S214000E003A006E6F2053442D436172640046495881
S214000E103A25730046495820576179706F696E7499
S214000E2073002020002D3E0020202020202020209F
S214000E30202020202020202000446973743A253387
S214000E406420416C743A2533642000253264006EB9
S214000E506F2053442D43617264004C6F61642050D0
S214000E606F696E74002020002D3E004469723A259A
S214000E70336420416C743A2533646D002532640077
S214000E806E6F204750532D466978006E6F2053448E
S214000E902D43617264005361766520506F696E74ED
S214000EA03A00536176652073696E676C2E506F69E1
S214000EB06E74004C6F61642073696E676C2E506FA1
S214000EC0696E74002852656C617469766529202005
S214000ED020004C6F616420576179706F696E74737F
S214000EE00028466978656429202020202020004CB0
S214000EF06F616420576179706F696E747300496E14
S214000F00636C692E3A2533692563202825692920D4
S214000F10004D61676E65743A2533692525202533B3
S214000F206925630025346957202536696D416800B8
S214000F302532692E25316956202533692E253169DB
S214000F40410025634320202020200054656D7065F5
S214000F507261747572657320202020002533692025
S214000F602533692025336920253369002533692018
S214000F70253369202533692025336900520025343E
S214000F80696D256300253469202532693A2530329B
S214000F90690028426F61742D4D6F646529005365A2
S214000FA07425643A25730053494D554C4154494FB6
S214000FB04E004552524F523A202532642000537458
S214000FC06174757320202020002533642563202556
S214000FD033646D2563002532692E25316956000875
S214000FE0010000E36D000201015F6B01030202DBFA
S214000FF06B02040303CE7103050409776C0406052F
S2140010000AA26C0507060BCD6C0608070CE26C07F7
S214001010000806336C04090909ED70050A0A0AF788
S2140010206C060B0B0B2070070C0C0C686F004F50F7
S2140010305152535453565748005859005A5545462E
S2140010404748410049424A4A0000000000000000AC
S214001050000000444C4D00000000004E0000004B15
S21400106000432531642E25303264202531642E2538
S214001070303264202531642E2530326420253164D8
S2140010802E2530326400424C2056657273696F6EAE
S21400109073003132003131003130002025632020CA
S2140010A0202D2020202D2020202D200020256320EC
S2140010B02020256320202025632020202563200073
S2140010C02025632020202563202020256320202043
S2140010D025632000424C2D4374726C20666F756E3B
S2140010E064200025336420253364202533642025BE
S2140010F03364200028696E20302E31412900424C8E
S2140011002043757272656E7400253364202533643F
S21400111020253364202533642000424C2054656D1E
S21400112070657261747572650025336420253364BA
S21400113020253364202533642000424C2D437472EE
S2140011406C204572726F7273200052616E67653A4A
S2140011502533692D25336900506F736974696F6E86
S2140011603A2025336900536574706F696E742020C9
S21400117025336900536572766F20200054727565BA
S2140011803A2020202020253569004779726F3A20C2
S21400119020202020253569004D61676E65743A2051
S2140011A0202025356900436F6D70617373002872C7
S2140011B06573657429004163743A20202535756D82
S2140011C0696E00546F74616C3A2535756D696E00F2
S2140011D0466C696768742D54696D65202000506FF1
S2140011E0746925693A202025336900506F74692593
S2140011F0693A2020253369004C616E643A20253216
S214001200642E25645600486F6D653A202532642E9C
S214001210256456005761726E3A202532642E256486
S2140012205600556E646572766F6C746167657320E0
S214001230200052432D4368616E6E656C733A253408
S214001240690052432D5175616C6974793A202534D2
S2140012506900526563656976657200446973636800
S214001260617267653A202535696D416800506F7771
S21400127065723A2020202020253469570043757275
S21400128072656E743A2020202533692E2531694117
S21400129000566F6C746167653A2020202533692EEE
S2140012A025316956005A202020202534692028251B
S2140012B033692900526F6C6C202534692028253349
S2140012C06929004E69636B20253469202825336917
S2140012D02900414343202D2053656E736F720059D9
S2140012E06177202025346920282534692900526F2B
S2140012F06C6C20253469202825346929004E6963E2
S2140013006B20253469202825346929004779726FB7
S214001310202D2053656E736F720050333A25346962
S214001320202050343A253469200050313A2534695B
S214001330202050323A253469200047733A25346914
S214001340202047693A25346920004E693A253469D9
S2140013502020526F3A25346920004B25693A2534FF
S2140013606920204B25693A2534692000436F6D704B
S2140013706173733A20202025356900526F6C6C3AF1
S214001380202020202020253569004E69636B3A20F6
S2140013902020202020253569006163742E20626598
S2140013A06172696E6700256900284129004F6666EC
S2140013B07365743A2020253569005072657373751D
S2140013C072653A25356900536574706F696E743AB4
S2140013D0253569004865696768743A2020253569AF
S2140013E000424C2D53656C667465737420457272AA
S2140013F03A25326400493243204552524F52212149
S21400140021004D697373696E6720424C2D437472D8
S2140014106C3A256420212100486172647761726508
S214001420204572726F7220313A25642021210045D2
S21400143052522532643A004D6978657220457272C0
S2140014406F722100424F4154005365743A25642060
S21400145025730048573A5625642E25642053573A7C
S21400146025642E25303264256320002B204D696BC1
S214001470726F4B6F70746572202B005B25695D0080
S2140014805B25695D0000008F001E01AD013B02CAAE
S214001490025803E603740402058F051B06A70633ED
S2140014A007BE074808D2085B09E3096B0AF20A7808
S2140014B00BFD0B810C040D860D070E870E060F84A0
S2140014C00F00107B10F5106E11E5115B12CF124263
S2140014D013B31323149214FE146A15D3153B16A1E6
S2140014E01605176717C81727188318DE1837198EBA
S2140014F019E319361A871AD61A231B6E1BB61BFD5C
S2140015001B411C831CC31C001D3C1D751DAB1DE030
S2140015101D121E421E6F1E9A1EC31EE91E0D1F2E92
S2140015201F4D1F691F841F9B1FB01FC31FD31FE1C2
S2140015301FEC1FF51FFB1FFF1F0020212121204944
S2140015404E434F4D50415449424C452021212100E5
S214001550416E676C654E69636B202020202020203A
S214001560416E676C65526F6C6C2020202020202016
S2140015704163634E69636B202020202020202020BA
S214001580416363526F6C6C20202020202020202096
S2140015905961774779726F20202020202020202054
S2140015A0416C746974756465205B302E316D5D2006
S2140015B04163635A20202020202020202020202045
S2140015C0476173202020202020202020202020205B
S2140015D0436F6D706173732056616C7565202020B3
S2140015E0566F6C74616765205B302E31565D202027
S2140015F05265636569766572204C6576656C202059
S2140016004779726F20436F6D7061737320202020BE
S2140016104D6F746F72203120202020202020202043
S2140016204D6F746F72203220202020202020202032
S2140016304D6F746F72203320202020202020202021
S2140016404D6F746F72203420202020202020202010
S214001650313620202020202020202020202020205E
S214001660313720202020202020202020202020204D
S214001670313820202020202020202020202020203C
S214001680313920202020202020202020202020202B
S214001690536572766F2020202020202020202020D6
S2140016A0486F7665726761732020202020202020F6
S2140016B043757272656E74205B302E31415D20205A
S2140016C04361706163697479205B6D41685D2020B9
S2140016D048656967687420536574706F696E742016
S2140016E032352020202020202020202020202020CE
S2140016F032362020202020202020202020202020BD
S21400170032372020202020202020202020202020AB
S2140017104932432D4572726F7220202020202020EF
S214001720424C204C696D6974202020202020202007
S2140017304750535F4E69636B2020202020202020D6
S2140017404750535F526F6C6C2020202020202020B2
S2140017500A0D7777772E4D696B726F4B6F707465D5
S214001760722E64652028632920486953797374654E
S2140017706D7320476D6248000A0D746865207573A6
S21400178065206F66207468697320736F667477616E
S2140017907265206973206F6E6C79207065726D6952
S2140017A074746564200A0D6F6E206F726967696EC7
S2140017B0616C204D696B726F4B6F707465722D484B
S2140017C061726477617265005573657200486F5484
S2140017D054205634004143542044534C004A657408
S2140017E069005370656B7472756D0050504D000A39
S2140017F00D52656365697665723A2000532E427510
S2140018007300756E6B6E6F776E2E205573696E67FC
S2140018102050504D2E2E2E006E6F742073757070F3
S2140018206F72746564206279206861726477617291
S2140018306521000A0D202D204C4942204E4F542091
S214001840434F4D50415449424C452021212121000F
S2140018500A0D0A0D212120426F6F746C6F6164655A
S21400186072206E6F7420636F6D70617469626C6550
S21400187020746F204861726477617265203E203262
S2140018802E322021210A0D0A0D000A0D466C6967CA
S2140018906874436F6E74726F6C0A0D486172647779
S2140018A06172653A25642E25640A0D536F66747757
S2140018B06172653A5625642E253032642563200011
S2140018C011241FBECFEFD0E4DEBFCDBF12E0A0E0F4
S2140018D0B1E0E8ECF7E301E00BBF02C007900D9221
S2140018E0AA3EB107D9F72CE0AAEEB2E001C01D92DD
S2140018F0A63BB207E1F77AEAE2E0F0E081E2809305
S2140019005700149120EF37EF41E050E0C6E1D3E0F6
S2140019106FE0DA01C9012F5F3F4F4F4F5F4FABBFFC
S214001920FC0187918993615067FFF3CF84EE8ABDEF
S21400193080911E038093EA02893138F086E0809316
S2140019400B0187E080930A017BEAE6E1F3E06EE0B4
S214001950819178277095615067FFFACF80912503B3
S214001960781721F0173911F40000FECF0E94575265
S2140019700C94E29B0C940000002422273327442773
S21400198051E0BB27EE27FF27A0E1660F771F881FD1
S214001990991F001C221F331F441F660F771F881FC6
S2140019A0991F001C221F331F441F2AF4050E2B1FED
S2140019B03E1F4F1F04C0051A2B0B3E0B4F0B550F37
S2140019C0BB1FEE1F587F556047FD5250AA95E9F69B
S2140019D0E695B7955795E695B7955795852F9B2F1E
S2140019E008952227332741E0552768E0880F991F7E
S2140019F0221F331F880F991F221F331F1AF4240F2C
S214001A00351F02C0241B350B440F551F487F456009
S214001A1037FD42506A9551F7569547955695479526
S214001A20842F0895AA2797FF04C0809590958A1F53
S214001A309A1F77FF04C0609570956A1F7A1F669F8D
S214001A409001779FA001679F300D411D5A1F300DF2
S214001A50411D5A1F889FF001999F2E0F3F1F401D62
S214001A60511D899F300D411D5A1F300D411D5A1FB3
S214001A70CA01B901112480CF4FB720E430E0F894B2
S214001A808091C9008F778093C9008091C9008F7BB1
S214001A908093C9008091C9008F7D8093C900832FF1
S214001AA099278093CD002093CC008091C800826057
S214001AB08093C80088E18093C9008091CA008F7720
S214001AC08093CA008091CA008F7B8093CA00809161
S214001AD0CA008F7D8093CA008091CA008F7E809353
S214001AE0CA008091CA00877F8093CA008091C9008F
S214001AF08B7F8093C9008091CA0084608093CA005F
S214001B008091CA0082608093CA008091C80087FFD7
S214001B1003C08091CE00F9CF8091C9008068809381
S214001B20C9004FBF08950F931F93CF93DF93482F9D
S214001B304F5F893108F08BC080910D08841720F420
S214001B404F5F40930D084150CB0183539B4268E1A1
S214001B5070E00E94D39AA42FBB27FD01EA0FFB1F5B
S214001B60E25FF74F808191819B01281B390BC901E9
S214001B7037FF03C0909581959F4F069794F4809108
S214001B800204883C30F480910204865F809302044D
S214001B9008C088EC8093020480916F008F7D80934C
S214001BA06F00FD01EA0FFB1FE25FF74F8081918116
S214001BB09C01220F331F280F391F260F371F37FFB0
S214001BC002C02D5F3F4FE901D595C795D595C795BE
S214001BD0CB0101968C179D0714F4219706C061501F
S214001BE07040C617D7070CF4219680910204843BF8
S214001BF0D8F08D010A0F1B1FF801E25FF74F8081B6
S214001C009181FE01E81BF90BCF0163E070E00E94B2
S214001C10D39ACB01880F991F860F971F0C5A174F20
S214001C20F8019183808307C0AA0FBB1FAC5AB74F39
S214001C3011961C921E92E42FFF27EE0FFF1FE25F05
S214001C40F74FD183C083443011F410929302DF9192
S214001C50CF911F910F910895CF93DF932091870C1A
S214001C60822F9927807F9070409709F064C02F31AB
S214001C7009F040C08091880C8093F40290918A0C01
S214001C809093F60280918B0C8093F502992309F0CD
S214001C9052C080911C05282F3327220F331FF901CD
S214001CA0EC5AF74F1182108280911D05A82FBB2792
S214001CB0AA0FBB1FFD01EC5AF74F118210828091CC
S214001CC01F05E82FFF27EE0FFF1FCF018C5A974FF7
S214001CD0EC0119821882225F374FE90119821882B7
S214001CE0A25FB74F11961C921E92E25FF74F1182C9
S214001CF0108221C0C22FCF70CA30E8F48091880CC1
S214001D008093B30C8091890C8093B20C80918A0CDE
S214001D108093B50C80918B0C8093B40C6091B20CC0
S214001D207091B30C8C2FFFDE6091B40C7091B50CE3
S214001D308C2F8F5FF8DEDF91CF910895CF93C82F59
S214001D408F3F49F48091F7028F3F29F41092F902F1
S214001D501092F80231C02091F902222339F4CF31D3
S214001D6011F485E001C084E08093FA028091FA02C3
S214001D709091F802821798F4892F80958093F80244
S214001D808F3F19F48EEF8093F8028091F802C817FF
S214001D9009F462DF1092F9021092F8020BC0E22FEB
S214001DA0FF27E957F34FC0832F5F2093F9029C0F5C
S214001DB09093F802C093F702CF9108959091F302A2
S214001DC0933240F4E92FFF27E157F34F80839F5F5C
S214001DD09093F3020895833218F48D5F8093F30294
S214001DE0089590E2E2E9FCE08FE19193815087FF4D
S214001DF0FCCF0895CF93CFB723E031E0F8948091DD
S214001E00C9008F778093C9008091C9008F7B80932B
S214001E10C9008091C9008F7D8093C900832F9927C0
S214001E208093CD002093CC008091C8008260809380
S214001E30C80088E18093C9008091CA008F7780939C
S214001E40CA008091CA008F7B8093CA008091CA0026
S214001E5080628093CA008091CA0080618093CA0025
S214001E608091CA0088608093CA008091C90084600F
S214001E708093C9008091CA0084608093CA008091D4
S214001E80CA0082608093CA008091C80087FF03C0A2
S214001E908091CE00F9CF8091C90080688093C900F8
S214001EA08091C90080648093C9009BDFCFBFCF912B
S214001EB00895282F99278F709070892B31F42095DC
S214001EC08091F202822B8093F20208951F920F9265
S214001ED00FB60F9211248F93EF93FF938091060114
S214001EE0882309F068C0E091FC02EE2389F4809113
S214001EF0FB02882369F480918F0C882321F081E00F
S214001F008093FD0205C08091C90081608093C9005E
S214001F108091FD02882379F4EF5FE093FC028091C4
S214001F20660C8E1720F481E08093FD021CC0FF270C
S214001F30EA59F34F3CC08091FB02882361F48091FC
S214001F408F0C882311F483E003C0813999F481E073
S214001F508093FB020FC0833099F480918F0C882306
S214001F6049F010928F0C8091C9008E7F8093C90033
S214001F708EEF1EC08091C90081608093C9000EC09C
S214001F80833261F48091C9008E7F8093C9008FEF01
S214001F908093CE0081E08093060118C08091FB02FA
S214001FA0E82FFF27E157F34F8F5F8093FB02808176
S214001FB08093CE000BC01092FB021092FC0210928F
S214001FC0FD028091C90080618093C900FF91EF9166
S214001FD08F910F900FBE0F901F901895682727E0DF
S214001FE0322F67FF06C0862F9927880F991F8327F1
S214001FF002C0862F880F682F215027FFF2CF99271F
S21400200008950F931F93CF93DF93062F60E0162F4C
S214002010601738F4EC018991E1DF682F1F5F101715
S214002020D0F3862F9927DF91CF911F910F910895B6
S214002030DC0190E0961758F48C91803241F09F5F57
S214002040961728F4FD01E90FF11D8081F6CF892F40
S21400205099270895A0E0B0E0E0E3F0E10C945E9BE1
S2140020608FE98093670C80E18093690C84EA809303
S2140020706A0C85E580936B0C8DE580936C0C109252
S2140020806D0C8091FF02882309F067C08091FE02E4
S21400209013E1819FC001112463E088599E4FC8DF79
S2140020A0082F8091FE02819FC00111246AE0825AA7
S2140020B09E4FBEDF982F800F865F8093660C2EEFB4
S2140020C0B22EB80EB092680C2091FE0220936E0CD1
S2140020D0E92EFF24C70113E0880F991F1A95E1F730
S2140020E0802B80936F0C822F9927C3E1CC2ED12CA6
S2140020F08C9D90018D9D300D9C9D300D1124C90145
S214002100825A9E4FA701BC0180E79CE00E94A29BDA
S21400211011278091FE0299278C9DE0018D9DD00DA0
S2140021209C9DD00D1124CE0188599E4FA801BC015C
S214002130C7018059934F0E94A29B0A59134F0E0D58
S2140021401F1D6B2D88E69CE05CDFF801828780917E
S214002150FF028F5F8093FF0292C0C0906D0C1C2D13
S2140021600E94387330910701303108F058C0B3E14F
S214002170EB2EF12C632F812F9927FC01EE0FFF1F0A
S214002180E80FF91FEC0DF11DEA59F34F832F99273D
S2140021908E9DD0018F9DB00D9E9DB00D1124A25A2C
S2140021A0BE4FED012D8574E0880F991F7A95E1F7F3
S2140021B0282B20873E3088F42E853F853F798A89F4
S2140021C09927982F88279295990F907E282B392B40
S2140021D02187832F9927828716C0ED012E853F859C
S2140021E0488959892187BB27A52F942F832F82875B
S2140021F0CA01AA27BB278387852F9927AA27BB272B
S2140022008487E2E0CE0E862F8F5F682F1F5F163022
S21400221020F4382F803108F4AECF8093070183E096
S214002220189FC00111242C2D280F285F2093660CC0
S214002230225C2093680C812F99278C01000F111FB8
S214002240080F191F0C0D111D0A59134F2054622F29
S21400225088E69CE0D6DEE801888780910701803119
S21400226070F081E0809307011092FF028091FE02D9
S2140022708F5F8093FE02803110F01092FE02E9E03C
S214002280CDB7DEB70C947A9B80910601882309F4BB
S21400229046C08091C90385FD04C080915A048823F6
S2140022A081F082E980938F0C83E28093900C80917A
S2140022B05A04882309F485E58093910C10925A04F9
S2140022C002C080938F0C809108018F3071F480914A
S2140022D0F2020E947072882341F081E980938F0C8D
S2140022E08093900C81E38093910C1092060180916C
S2140022F0C80085FFFCCF8091C9008F7E8093C900FF
S2140023008091C9008E7F8093C900A4DE8EE78093FB
S214002310CE008091F202809308011092F202089596
S214002320EF92FF920F931F93CF93DF937C018B0165
S214002330EA01452B39F0F80181918F01F7010995E3
S2140023402197C9F7E6E0CDB7DEB70C947D9BEF92F8
S214002350FF920F931F93CF93DF937C018B01EA01CB
S214002360452B41F0F8010F5F1F4F8491F701099547
S2140023702197C1F7E6E0CDB7DEB70C947D9B0F93AF
S2140023801F93CF938C01C62F161634F480E2F80103
S2140023900995C1501C16D4F3CF911F910F91089543
S2140023A00F931F93CF938C01C62F161634F480E339
S2140023B0F8010995C1501C16D4F3CF911F910F91C7
S2140023C00895A5E3B0E0E7EEF1E10C94559B2E9658
S2140023D0EEADFFAD2E978824992454018091EC022F
S2140023E0882321F42C961FAE1EAE2C97AEE44A2E00
S2140023F0512C4C0E5D1E6F01B60105C0153239F02A
S2140024000894C11CD11CF60114911123B9F7A6013A
S214002410461B570B29F02C968EAD9FAD2C9797DF59
S214002420112309F464C20894C11CD11CFF24FDA624
S214002430FCA6EFEFEE2EF9A6F6010894C11CD11CFF
S2140024401491153721F0812F80628837B1F4F0FEA1
S2140024500AC0F20124E030E0420E531E80809180D4
S214002460A280B3800AC0F20142E050E0440E551E3E
S214002470808191814C01AA24BB24103221F489A5C5
S2140024808823D1F61DC0133219F458E0F52AD4CFAC
S2140024901A3211F01D3291F41A3259F4F20182E028
S2140024A090E0480E591EE081ECA7EE232CF6E1954D
S2140024B0ECA790E1F92AAFEDFA22BECF1B3211F459
S2140024C019A7BACF1E32C1F5F6010894C11CD11C5B
S2140024D014911A3279F4F20122E030E0420E531ED3
S2140024E0408151813FEF4F3F530714F44FEF5FEFAA
S2140024F0E42EA2CF40E050E0812F80538A30A0F433
S214002500CA0173E0880F991F7A95E1F7840F951F2B
S214002510480F591F410F511D40535040F601089473
S214002520C11CD11C1491E8CF8FEF4F3F580714F40D
S2140025304FEF5FEFE42E85CF103329F4F4FC7CCF09
S21400254090E2F92A79CF812F81538930D8F440E080
S21400255050E0CA0163E0880F991F6A95E1F7840F7F
S214002560951F480F591F410F511D40535040F6010B
S2140025700894C11CD11C1491812F80538A3048F3D3
S2140025804CA75FCF183619F4A4E0FA2A55CF1C36AC
S21400259019F4B1E0FB2A50CF133661F43E010894DB
S2140025A0611C711CF20122E030E0420E531E808155
S2140025B089833CC1143421F0143611F0193651F5D4
S2140025C0143411F431E0F32AF0FE0AC0F20144E0BC
S2140025D050E0440E551E80809180A280B3800CC0CF
S2140025E0F20182E090E0480E591E808191814C01F4
S2140025F0AA2497FCA094BA2CB7FE0AC0B094A09464
S21400260090948094811C911CA11CB11C8DE289A71A
S2140026100AE06FC01F3411F01F3631F41F3411F476
S21400262091E0F92A08E064C0103779F4F201A2E0DC
S214002630B0E04A0E5B1E808191814C01AA24BB2427
S21400264000E1B0E4FB2A18E753C01337C1F5F201E6
S21400265022E030E0420E531E6080718061147104E7
S21400266089F43E010894611C711C88E289838EE619
S214002670F301818385E78B838CE68C838D8389E2E7
S2140026808E831F82E7FC13C08E2D992787FD9095B9
S214002690AC0160E070E0C3010E94959B009729F0B2
S2140026A0382E3618E3140CF0C3C03E2CC1C0F3011C
S2140026B001900020E9F731973E2E3618B9C015353F
S2140026C011F0153731F4153511F4F1E0FF2A0AE060
S2140026D00FC0183519F0183709F0A0C000E1F3FE56
S2140026E007C081149104A104B10411F020E4F22A79
S2140026F019A6EDA6E7FC02C03FEDF32249E2642EE0
S214002700712C6C0E7D1E81149104A104B10421F479
S2140027104DA5442309F47BC0802F9927AA27BB2701
S2140027208EA79FA7A8ABB9AB202E332490E08916BE
S21400273090E0990691E0A90690E0B90648F0C50138
S214002740B4012EA53FA548A959A90E94E69A17C02C
S214002750AFEF8A169104A104B10449F040F0C40119
S214002760B1010E94BF9A9B014427552708C0882DB7
S214002770602F0E94B39A282F3327442755272AAB69
S2140027803BAB4CAB5DAB0A3059F48AA9880F880F77
S214002790880F9AA9990F890F382D381B832F10C0E0
S2140027A0003139F48AA98295807F482D481B842FF2
S2140027B007C08AA9880F880F880F582D581B852FA9
S2140027C090E02EA53FA548A959A982169306A4060F
S2140027D0B50608F091E08AA89BA8ACA8BDA88A30E8
S2140027E010F4805D04C0895A183509F48F7DD30132
S2140027F08E933D01992309F099CF083041F4F3FEFA
S21400280006C0803321F080E3FD0182933F01CE01B4
S2140028100196382E3618F8E23F0E0BC0112309F445
S21400282066C03E010894611C711C198331E0332E8A
S21400283019A6032D2DA4231827FC222489A5882356
S21400284011F00F5F02C0F6FC0E5F020DEF2CFF24A6
S214002850C70180739070892B41F48CA5801B682F6C
S2140028602C968EAD9FAD2C978ADD89A5882331F0F6
S21400287041E050E0BE01675D7F4F0AC0E6FE0DC036
S21400288080E38AA71BA742E050E0BE01665D7F4F4B
S2140028902C968EAD9FAD2C9743DDC701807390704C
S2140028A0809741F48CA5801B682F2C968EAD9FAD2B
S2140028B02C9776DD622D2C968EAD9FAD2C9770DD15
S2140028C0832D992787FD9095AC01B3012C968EAD8C
S2140028D09FAD2C9725DDE4FE8FCD2CA5201B2CA7C5
S2140028E0622F2C968EAD9FAD2C9749DD85CDE2E10B
S2140028F0CB5C0C94719B982F80918E0C883A50F488
S21400290080918E0CE82FFF27EB51F94F93838F5F52
S21400291080938E0C0895982F80918E0C883A58F4E8
S21400292080918E0CE82FFF27EB51F94F9068938328
S2140029308F5F80938E0C0895982F8091ED028823E8
S21400294011F0892FE8CF892FD6CF883A10F48093DC
S2140029508E0C089580E090E2E8EEF6E091938F5FAB
S214002960883AE0F308954FB721E830E0F894809174
S214002970C9008F778093C9008091C9008F7B8093B0
S214002980C9008091C9008F7D8093C900832F992745
S2140029908093CD002093CC008091C8008260809305
S2140029A0C80088E18093C9008091CA008F77809321
S2140029B0CA008091CA008F7B8093CA008091CA00AB
S2140029C08F7D8093CA008091CA008F7E8093CA0054
S2140029D08091CA00877F8093CA008091C900846076
S2140029E08093C9008091CA0084608093CA00809159
S2140029F0CA0082608093CA008091C900816080937B
S214002A00C9008091C80087FF03C08091CE00F9CF2F
S214002A108091C90080688093C9004FBF3CE730931F
S214002A2057062DE7209382068EE88093580610926C
S214002A3074061092730610925D0680EE80935A0616
S214002A403093B9062093E4061092C5061092C40689
S214002A501092C7061092C6061092C9061092C806B3
S214002A6084EF91E09093C3068093C2069093C106CC
S214002A708093C0069093BF068093BE061092BB0656
S214002A8089E88093BA061092E2061092E30680E97F
S214002A908093BC06309391072093BC07109293074F
S214002AA08AE88093920710929907109298071092DE
S214002AB0970710929B0710929C0710929D07109202
S214002AC09E071092A0071092A1071092A2071092DC
S214002AD0A3071092A7071092A6071092A5071092B8
S214002AE0A40780EA80939407309383062093AE066B
S214002AF0109285068DE8809384061092AD0680EDD0
S214002B00809386068BE78093E50680E88093E6064A
S214002B101092E70680915D0690E2E8EEF6E091936B
S214002B208F5F883AE0F38DE7809390070895CF9300
S214002B30C82F80910003803879F48C2F0E940C599E
S214002B408093EF028091EF02882331F1C0938D0CC1
S214002B508091EF028F5F16C08F37F1F48091860C5C
S214002B60882329F48C2F80958F708093860C0E9482
S214002B7005588093E70685EE96E09093F1028093E1
S214002B80F0028DEA8093EF028091C9008F7E8093D9
S214002B90C90082E08093EE02C0930003CF910895AF
S214002BA03091EE02332331F08091EE028150809313
S214002BB0EE0208958091EF02882361F14091EF02C2
S214002BC090910103413069F4292F309301038091DD
S214002BD0ED02882319F03093ED0210C04093ED0209
S214002BE00DC0E091F002F091F1028191F093F102B4
S214002BF0E093F002282F980F909301038091C8006D
S214002C0085FFFCCF2093CE008091EF028150809309
S214002C10EF0208958091C90080618093C9000895ED
S214002C206F927F928F929F92AF92BF92CF92DF92D7
S214002C30EF92FF920F931F93882361F1823041F445
S214002C4010920A0310920B0310920C0310920D03BD
S214002C502091FC033091FD034091FE035091FF0349
S214002C60DA01C90119E0880F991FAA1FBB1F1A9520
S214002C70D1F78093570390935803A0935903B093CA
S214002C805A032093020330930303409304035093A4
S214002C90050326C1A090FC03B090FD03C090FE0380
S214002CA0D090FF038091020390910303A091040348
S214002CB0B091050335014601681A790A8A0A9B0A0B
S214002CC060920603709207038092080390920903AD
S214002CD080915B0390915C0384559F4F7C01002795
S214002CE0F7FC0095102F80910A0690910B069C0128
S214002CF0442737FD4095542FC801B7010E94A49A77
S214002D0097FF04C06150704E8F4F9F4FAB01BC01C0
S214002D10FDE07595679557954795FA95D1F74C5A06
S214002D2050406040704040930E0350930F036093F2
S214002D301003709311032091C9083091CA0837FF19
S214002D4002C0215F3F4FE4E035952795EA95E1F70D
S214002D5080915F0390916003829FD001839FB00DA6
S214002D60929FB00D1124CD01B7FF02C081509F4F36
S214002D70E92FFF27E7FDFA952091C7083091C8088C
S214002D8037FF02C0215F3F4F84E0359527958A952F
S214002D90E1F780915D0390915E03829FD001839F4F
S214002DA0B00D929FB00D1124CD01B7FF02C0815027
S214002DB09F4F892F990F990BE80FF91FCF01AA276C
S214002DC097FDA095BA2F840F951FA61FB71F809357
S214002DD00E0390930F03A0931003B0931103BC014E
S214002DE0CD012DE030E040E050E00E94A49A7B0147
S214002DF08C01C401B30124EF31E040E050E00E94B2
S214002E00A49ADC01CB01E80EF91E0A1F1B1F809155
S214002E100A0390910B03A0910C03B0910D0320912F
S214002E201203309113034091140350911503821B33
S214002E30930BA40BB50BE80EF91E0A1F1B1FE0929E
S214002E400A03F0920B0300930C0310930D03D801B2
S214002E50C70180509E4FAF4FBF4FB7FF06C0D80187
S214002E60C70181509A4FAF4FBF4F1AE0B595A7954F
S214002E70979587951A95D1F780931203909313032D
S214002E80A0931403B0931503A0920203B092030319
S214002E90C0920403D0920503209157033091580343
S214002EA04091590350915A03E0904A03F0904B0327
S214002EB000914C0310914D032E193F09400B510B06
S214002EC0280F391F4A1F5B1F2A0D3B1D4C1D5D1D19
S214002ED020935703309358034093590350935A0353
S214002EE0809112039091130390935503809354039B
S214002EF08091570390915803A0915903B0915A03BB
S214002F00BC01CD011F910F91FF90EF90DF90CF9005
S214002F10BF90AF909F908F907F906F9008952FB73F
S214002F2040E0F894E0E0F0E081E28093570094916E
S214002F30E2E0F0E0809357003491E4E0F0E0809324
S214002F40570084912FBF9E3199F4363941F4893069
S214002F5011F441E00DC08A3059F442E009C0373917
S214002F6039F4863011F443E003C0853009F444E0B8
S214002F70842F992708959FB7F8948091C900877F7A
S214002F808093C9008091C9008F7E8093C90080918C
S214002F90C9008F778093C9008091C9008F7B80938A
S214002FA0C9008091C9008F7D8093C9009FBF089596
S214002FB01F93CF93DF93182F8091EC02882309F498
S214002FC0A4C080910501181709F49FC08091EB02F8
S214002FD0882319F4A4DF8093EB0282ED91E09093AE
S214002FE09202809391028FEE97E19F938F93CCE9A4
S214002FF0D6E9DF93CF93E0915506F09156060995F2
S2140030000F900F900F900F90812F9927AA27BB271C
S214003010FC01099778F5E954FF4F20915506309149
S21400302056060C94249B8BEE97E102C082EE97E145
S2140030309F938F93DF93CF93F901099527C08DED6A
S21400304097E1F6CF85ED97E1F3CF8DEC97E19F936F
S2140030508F93DF93CF93F901099588ED91E09093D4
S21400306092028093910212C088EC97E1E1CF8CEF38
S21400307097E1DECF82E098E19F938F93DF93CF9323
S214003080E0915506F0915606099510E00F900F90C6
S2140030900F900F908091EB02843011F0823001F592
S2140030A06ADF812F8150833018F40E948B802BC0FA
S2140030B0143019F40E94FA0E26C0183019F40E9433
S2140030C0839921C0153019F40E943C0D1CC016309F
S2140030D011F449DC18C01730B1F40E94517F13C0B8
S2140030E0112389F088E198E19F938F938CE996E904
S2140030F09F938F93E0915506F091560609950F9091
S2140031000F900F900F9010930501DF91CF911F91B4
S21400311008950F931F93082F81E08093EC0240914F
S2140031200401E8E7F7E120E030E05FE484919927C6
S2140031302F5F3F4F829FB001839F700D929F700D4F
S214003140112446275150319657FFF0CF4093040183
S214003150E0E5F7E120E030E057E2849199272F5F21
S2140031603F4F829FB001839F700D929F700D112478
S21400317046275150319657FFF0CF40930401809177
S214003180EB02882319F4CBDE8093EB0281EE91E10B
S214003190909356068093550680910401833459F027
S2140031A088E190E029E20FB6F894A8958093600035
S2140031B00FBE20936000073091F083E398E19F9361
S2140031C08F938CE996E99F938F93E0915506F09143
S2140031D0560609950F900F900F900F90EECF8091A6
S2140031E05401893158F18091EA028823A9F480E5D8
S2140031F098E19F938F938CE996E99F938F93E09144
S2140032005506F0915606099587E1809354010F9074
S2140032100F900F900F9012C015BC873119F4809351
S214003220540106C087E080930B0186E080930A0174
S214003230E0910201F09103018DEF09950E9428515B
S21400324081E690E09F938F9388E090E09F938F9322
S21400325082E090E09F938F93809154016AE00E94F1
S214003260B39A892F99279F938F93809154010E9438
S214003270B39A99279F938F938AE898E19F938F93A9
S2140032800CE916E91F930F93E0915506F091560648
S214003290099588E797E19F938F931F930F93E0918B
S2140032A05506F0915606099580E597E19F938F9312
S2140032B01F930F93E0915506F091560609950E94CC
S2140032C0285183EC8093810080916F008062809308
S2140032D06F008DB79EB746968DBF1F910F910895CC
S2140032E0809183058D3338F08091B40887FD03C044
S2140032F08CE38093830580913105882331F08055D7
S214003300853618F08FE78093310508958091EC029A
S214003310882309F485C08091260381508093260374
S214003320882309F069C089E180932603809183058C
S2140033308E3338F08091B40887FD03C08DE3809308
S2140033408305809102048238A0F58091CA0390918B
S214003350CB03805D974020F080911905843620F4D9
S21400336010922803109227032091270330912803F8
S21400337021153105B1F1C901019790932803809377
S2140033802703419798F18091B40884FF2FC080915D
S214003390C80384608093C8038091C20887FF26C054
S2140033A080918B04882311F1309328032093270300
S2140033B01DC080910204853BC8F09091830584E18E
S2140033C0989FC0011124409620912703309128032E
S2140033D02817390730F42F5F3F4F30932803209388
S2140033E027038091C8038B7F8093C80380910401D4
S2140033F0833411F01092EC0290910501963009F496
S214003400CFCB80910901882321F081508093090158
S21400341008958BE480930901943011F40C944411C0
S21400342008951F920F920FB60F9211242F933F9379
S2140034304F935F936F937F938F939F93AF93BF93B7
S214003440EF93FF939091CE008091EA048823B9F021
S2140034509093C6008091EA04823009F03EC09F3FF8
S214003460E1F58FEF94E3ACE0B0E0C297A109B109B3
S214003470B7FFFBCF8091690A8093CE002EC02091C3
S2140034800501822F8150833020F4892F0E94DF802F
S21400349024C0243021F4892F0E94590F1EC02830E2
S2140034A021F4892F0E94849918C080915401893193
S2140034B020F08091EA02882381F0253021F4892FBC
S2140034C00E949E0E0AC0263019F4892F30DB05C0F4
S2140034D0273019F4892F0E94A77FFF91EF91BF91A3
S2140034E0AF919F918F917F916F915F914F913F9197
S2140034F02F910F900FBE0F901F90189510927C0082
S2140035008FEC80937A0008958091C00320910D017E
S21400351030910E01A0915603882331F0BB27A7FDFA
S214003520B0950E943F9B0EC084E0220F331F8A9501
S214003530E1F7BB27A7FDB0950E943F9B6450710939
S2140035408109910960934E0370934F038093500353
S214003550909351030895EF92FF920F931F93CF938A
S214003560DF9310925603D0DF83E090E00E9443235F
S214003570C82FD0E0C03FD10508F42A96C7BD8C2FCF
S214003580809588BD86E990E00E945A888091100157
S214003590909111018132934010F0C0EFD0E000E826
S2140035A011E09CE9E92E96E9F92E8C2FC7BD80958F
S2140035B088BD84E690E00E945A881F930F93FF927E
S2140035C0EF92E0915506F09156060995809110010C
S2140035D0909111010F900F900F900F9081329340B1
S2140035E020F42197C630D10500F7C09310056C2F44
S2140035F083E090E00E9445238091280580FF0AC062
S214003600809110058A508C3D28F080913F0A806496
S21400361080933F0A80E180930C018091C003882349
S214003620E1F080915401873150F4CC38D105A8F4EC
S21400363080EA90E08C1B9D0B6AE170E009C0CA3AF4
S214003640D10558F48CEB90E08C1B9D0B63E170E089
S2140036500E94BF9A605F60930C0120911001309128
S214003660110140910C01429FC001439F900D11240F
S214003670A0E0B0E08093120190931301A093140190
S214003680B09315018CE291E0DF91CF911F910F91DD
S214003690FF90EF900C945A881F920F920FB60F92DD
S2140036A011240BB60F924F925F926F927F928F9279
S2140036B09F92AF92BF92CF92DF92EF92FF922F939C
S2140036C03F934F935F936F937F938F939F93AF93A5
S2140036D0BF93EF93FF938091410391E0980F9093EF
S2140036E0410390E08231910508F092C4FC01EA5B48
S2140036F0FF4F0C94249B809178009091790046C0EF
S2140037008091780090917900CCC18091780090915A
S214003710790090933B0380933A03DCC120917800B4
S214003720309179008091490490914A04821B930B52
S21400373090930305809302058091020590910305FE
S2140037409093390380933803E4C180917800909178
S214003750790020914B0430914C04821B930B90937C
S2140037600F0580930E0580910E0590910F0590939E
S2140037703703809336034EC4209178003091790049
S21400378080913F0390914003820F931F90934003D4
S21400379080933F032AC2209178003091790080916F
S2140037A03C0390913D03820F931F90933D038093BB
S2140037B03C0384E030C48091950583FF1EC02091B1
S2140037C01A0130911B0140917800509179006BE00E
S2140037D0649FC001659F900D11246EE170E00E9409
S2140037E0BF9AC901880F991F820F931F680F791F10
S2140037F0769567957695679534C080913403909159
S2140038003503892B71F420917800309179004AE0D5
S214003810429FC001439F900D1124909335038093DF
S2140038203403809134039091350340917800509191
S21400383079006AE0649F9001659F300D1124281777
S214003840390710F0029601C00297909335038093D3
S214003850340380913403909135036FE170E00E9449
S214003860BF9A70931B0160931A0185E0D4C38091C0
S2140038707800909179009093050580930405209137
S21400388004053091050580914504909146044091C9
S2140038904404281B390B241B310947FD339530930C
S2140038A05C0320935B032091C00321116EC020911E
S2140038B05B0330915C03223031056CF18E3E22E0D2
S2140038C092070CF0A5C02091320330913303A90172
S2140038D04B5F5F4F50933303409332034091CA03CC
S2140038E05091CB03443F514030F4215F3F4F30931B
S2140038F0330320933203209132033091330325366D
S21400390031050CF485C001969093460480934504D7
S2140039102456310935C020915B0330915C032F3F5C
S2140039203F4F0CF075C0873252E095070CF470C01C
S2140039302091320330913303A90145505109509329
S2140039403303409332034091CA035091CB03443F64
S214003950514030F42F503109309333032093320313
S21400396020913203309133032C394FEF34070CF09B
S2140039704FC0019790934604809345042C593F4FBF
S214003980309333032093320343C080910A0690910C
S2140039900B068F3C9F41E4F180915B0390915C03A2
S2140039A00297B4F080913203909133039C012F5F0D
S2140039B03F4F30933303209332032938334144F189
S2140039C046301CF44F5F40934404875893411CC014
S2140039D080915B0390915C038F3F9F4FCCF4809166
S2140039E03203909133039C01215031093093330305
S2140039F02093320328373C4E5CF44B3F1CF041507A
S214003A004093440489579C4E90933303809332032B
S214003A1080911C0490911D04A0911E04B0911F0477
S214003A2040915B0350915C03662757FD6095762FA7
S214003A30840F951FA61FB71F80931C0490931D0428
S214003A40A0931E04B0931F04C0901C04D0901D04C5
S214003A50E0901E04F0901F0460911C0470911D04F9
S214003A6080911E0490911F0420E034E040E050E076
S214003A700E94089BC21AD30AE40AF50AC0921C04E4
S214003A80D0921D04E0921E04F0921F04FCC0209108
S214003A9078003091790080913C0390913D03820F2D
S214003AA0931F90933D0380933C0310923E03B5C250
S214003AB020917800309179008FEF97E0821B930B6E
S214003AC020913A0330913B03821B930B9093620341
S214003AD08093610380910B019EC220917800309103
S214003AE079008091490490914A04821B930B90932D
S214003AF003058093020580910205909103052091AD
S214003B00380330913903820F931F9093600380939C
S214003B105F0380910A017FC28091780090917900BE
S214003B2020914B0430914C04821B930B90930F050D
S214003B3080930E0580910E0590910F052091360317
S214003B4030913703820F931F90935E0380935D033B
S214003B5061C2809178009091790020913F03309166
S214003B604003820F931F880F991F880F991F909309
S214003B70400380933F039C0197FF02C0295F3F4F9D
S214003B80B3E035952795BA95E1F730936603209311
S214003B9065032091300330913103280F391F37FF1A
S214003BA002C02F5F3F4F3595279530933103209302
S214003BB030038091550490915604281B390B30939E
S214003BC01901209318018091690390916A0320914E
S214003BD0180130911901820F931F97FD0196959554
S214003BE0879590936A038093690381E014C280915D
S214003BF078009091790020913C0330913D03820F2C
S214003C00931F880F991F880F991F90933D038093E9
S214003C103C039C0197FF02C0295F3F4F73E0359538
S214003C2027957A95E1F730936403209363032091F8
S214003C302E0330912F03280F391F37FF02C02F5F46
S214003C403F4F3595279530932F0320932E03809171
S214003C50530490915404281B390B3093170120937A
S214003C6016018091670390916803209116013091A8
S214003C701701820F931F97FD019695958795909350
S214003C8068038093670383E0C6C18091C0038823DE
S214003C90A9F080E00E9410167F5F8F4F9F4F20E0B4
S214003CA032E040E050E00E94089B209342033093AD
S214003CB04303409344035093450310C08091FC0394
S214003CC09091FD03A091FE03B091FF038093420301
S214003CD090934303A0934403B0934503109241038B
S214003CE081E080930F0180915203909153030196D7
S214003CF090935303809352038091780090917900BB
S214003D0090931101809310018091C003882309F4D9
S214003D106EC0C0901001D0901101E12CF12C809162
S214003D204E0390914F03A0915003B0915103C81ACF
S214003D30D90AEA0AFB0AC0922A03D0922B03E09221
S214003D402C03F0922D038090120190901301A09006
S214003D501401B090150160911201709113018091C9
S214003D6014019091150120910C0130E040E050E0E4
S214003D700E94089B821A930AA40AB50A809212012E
S214003D8090921301A0921401B09215018091120135
S214003D9090911301A0911401B09115018C0D9D1DF9
S214003DA0AE1DBF1D8093120190931301A0931401C2
S214003DB0B09315018091060590910705A09108051E
S214003DC0B0910905409112015091130160911401C0
S214003DD070911501841B950BA60BB70B80934603B9
S214003DE090934703A0934803B093490313C180916F
S214003DF0100190911101C0902A03D0902B03E090FF
S214003E002C03F0902D03C80ED91EE11CF11CC092A5
S214003E102A03D0922B03E0922C03F0922D0380917C
S214003E2029038F5F80932903803108F4F3C0209123
S214003E301201309113014091140150911501A7E031
S214003E40B0E00E94459B6C0D7D1D8E1D9F1D8090D1
S214003E504E0390904F03A0905003B0905103681902
S214003E6079098A099B0928E030E040E050E00E948A
S214003E70089B209312013093130140931401509332
S214003E8015018090060590900705A0900805B09053
S214003E9009058091120190911301A0911401B0912F
S214003EA01501881A990AAA0ABB0A809246039092BC
S214003EB04703A0924803B09249034090570350909E
S214003EC058036090590370905A036091570370919D
S214003ED058038091590390915A0320E130E040E066
S214003EE050E00E94089B421A530A640A750A4092E0
S214003EF05703509258036092590370925A03809168
S214003F00570390915803A0915903B0915A03880D16
S214003F10991DAA1DBB1D8093570390935803A09329
S214003F205903B0935A0360915703709158038091D8
S214003F30590390915A0320E130E040E050E00E949F
S214003F40089B50954095309521953F4F4F4F5F4FBA
S214003F50C901880D991D81156CEF960714F480E051
S214003F609CEF9C01213084E0380714F020E034E018
S214003F70809154039091550397FF03C091958195C6
S214003F80910943E0220F331F4A95E1F78D3B92409B
S214003F90A4F040915403509155036FE0649FC00114
S214003FA0659F900D1124820F931F97FD0F9634E0A6
S214003FB0959587953A95E1F713C040915403509133
S214003FC055036FE1649FC001659F900D1124820F19
S214003FD0931F97FD4F9625E0959587952A95E1F7CF
S214003FE09093550380935403C701B60122E030E056
S214003FF040E050E00E94089B20932A0330932B0356
S21400400040932C0350932D0388E08093290302C02D
S2140040101092410382E080933E0380913E0380939A
S2140040207C0080914103882319F08FEC80937A00FE
S214004030FF91EF91BF91AF919F918F917F916F917B
S2140040405F914F913F912F91FF90EF90DF90CF902F
S214004050BF90AF909F908F907F906F905F904F90A3
S2140040600F900BBE0F900FBE0F901F9018951092DA
S2140040701405109213051092180510921705109249
S2140040801605109215051092190582E390E00E941D
S2140040904688909374038093730308952FE0829F5D
S2140040A0F0011124EC58F64F85818F3F71F0893C62
S2140040B050F0908192FF07C02AE0829FC001112431
S2140040C088509740089590E0089580E090E0089525
S2140040D0BF92CF92DF92EF92FF920F931F93CF93F0
S2140040E0DF9380917303909174030E944F88882316
S2140040F009F4CBC08091730390917403C296909399
S214004100740380937303809119058E3F81F4809128
S214004110C70381608093C7030AE719E0BB24BA94FB
S214004120D12CC12CE12CF12CC0E0D0E023C08F3F75
S21400413099F78091C7038E7FEDCFD3943296808116
S214004140893CF0F08C2DAADFC80FD91FF8013597EF
S2140041508081E80EF11CF8018081B816A0F48091E9
S214004160C7038E7F8093C703C394015F1F4FFCE095
S214004170CF1659F0F8013397808187FFF5CFDDCF52
S214004180C80FD11DE3CFB82EEFCFB0921905EF2898
S21400419029F540916F0350917003609171037091FF
S2140041A07203BB27A72F962F852F90936E038093BD
S2140041B06D03AA27BB27481B590B6A0B7B0B4C0FBA
S2140041C05D1F611D711D40936F03509370036093D4
S2140041D0710370937203C5E0D0E011C080916D0347
S2140041E090916E038C179D0718F4C81BD90B02C05C
S2140041F0C0E0D0E0CD0DD11DCD0DD11D2596D093BC
S2140042001405C093130520911A0130911B01CF3F6E
S214004210D10550F4C29FC001C39F900DD29F900D50
S214004220112464E670E00EC0AE015695479556958B
S2140042304795429FC001439F900D529F900D1124B9
S21400424069E170E00E94BF9A7093160560931505A9
S21400425080916B0390916C0320911705309118059F
S2140042608C0F9D1FA9014F5F5F4F813D62E096074F
S21400427020F0805D92409A01F5CF30931805209388
S214004280170590936C0380936B03DF91CF911F917A
S2140042900F91FF90EF90DF90CF90BF900895FC01B4
S2140042A0680F791F8AEAE617F70719F09191890FC8
S2140042B0FACF0895FF920F931F93CF93DF938B014E
S2140042C0080F191FEC018AEAF82EC017D10731F043
S2140042D0CE010E94BB9BF80E2196F7CF8F2DDF9163
S2140042E0CF911F910F91FF90089581E080931E0556
S2140042F082E080931D0583E080931C0584E0809314
S2140043001F0585E08093200586E08093210587E0E1
S2140043108093220588E08093230589E08093240516
S2140043208AE0809325058BE0809326058CE08093B9
S2140043302705089587E680931B058CE0E7E9F5E0FE
S214004340DF011D928A95E9F78AE080933B0510927B
S2140043505F058BE1809337058EE480935C05809340
S2140043605D0580E280935E05109293058AE6809351
S214004370280582E78093950580E58093960586E07C
S214004380809342051092800510927D0598E09093E8
S214004390350586EE8093360580E48093380585E003
S2140043A080932B058EE1809329052EE62093300519
S2140043B02091C003222391F094E190932C0598E27B
S2140043C090932A0580932E0581E080932F058FE732
S2140043D0809331058CE3809383050DC02FE02093F6
S2140043E02C0580932A0510922E0590932F05109287
S2140043F03105109283058FE080932D0510928C0571
S2140044008CE080938D05109244051092450510921D
S21400441046051092470510926105109262051092AB
S21400442063051092640520E82093480582E3809394
S214004430490552E05093940598E190934A0596EE0C
S21400444090934B0593E0909350059DE7909353050A
S214004450909354059093550520934C0575E57093FD
S2140044604D0526E420934E053CED30934F053CE386
S21400447030935105109252053AEA309365054CEC9C
S214004480409367051092690530936A0548E24093A9
S21400449066054093680510926B051092910580930F
S2140044A09205809356053AE5309357058093580554
S2140044B066E060936C05E4E6E0936D05E0936E05B8
S2140044C030936F05E8E7E0937005409374054BE47E
S2140044D0409371057093720540937305609375055C
S2140044E048E040937605809377058AE280937805C6
S2140044F01092790510927C058CE880937A0550938B
S2140045007B0510927E0510927F0541E4409340059E
S21400451030934105109281051092820536E930935A
S21400452084059093590594E390935A051092850557
S214004530109286051092870580938805209389053A
S21400454080938A0520938B0510928E0580E28093D7
S2140045503F058FE1809390058EE180938F05089547
S214004560E9DE8AE08093320580E18093330586E0B9
S214004570809334052AE52093390598E790933A0509
S21400458020933C0590933D0580933E0580E2809302
S21400459043058CE380935B058BE48093600586E49B
S2140045A091E6A3E7B4E78093970590939805A093C8
S2140045B09905B0939A0568E870E08BE195E06FDEA8
S2140045C08093A3050895B6DE88E08093320580E1E7
S2140045D08093330596E09093340534E6309339059E
S2140045E028E720933A0530933C0520933D059093A9
S2140045F03E058093430586E480935B0580936005C3
S21400460085E0E5ECF2E0A7E9B5E001900D928A9529
S214004610E1F768E870E08BE195E041DE8093A30562
S214004620089588DE86E0809332059AE090933305FD
S21400463094E09093340524E62093390598E7909308
S2140046403A0520933C0590933D0580933E0580E116
S2140046508093430586E480935B058093600585E43C
S21400466091E6A3E7B9E78093970590939805A09302
S2140046709905B0939A0568E870E08BE195E00FDE47
S2140046808093A30508950C94BB9B0C94D19B0C942B
S214004690C39B0C94DF9BFF920F931F93CF93DF93E4
S2140046A09FEF980F953008F083E0282F30E02150D8
S2140046B0310989E8829F8001839F100D1124E8014B
S2140046C0CC59DF4F68E870E0CE01F4DDF82EC80163
S2140046D084519F4F0E94BB9BF81212C0CE010E94CD
S2140046E0BB9B873669F449E850E0BE018BE195E054
S2140046F00E94AB9B0E94FA730E94AA1481E001C03C
S21400470080E0DF91CF911F910F91FF900895CF9396
S2140047106DE470E088EE93E0CDDDC82F85E394E08D
S2140047200E94BB9BC81310C088EE93E00E94BB9B00
S214004730813051F44EE450E068EE73E084EA95E090
S2140047400E94AB9B81E001C080E0CF9108958091EC
S214004750A405813089F46DE470E084EA95E09FDD7D
S2140047608093F1054EE450E068EE73E084EA95E04D
S2140047700E94C89B81E0089580E0089581E08093C0
S214004780A405E4EBF5E0DF0113971C9211961C924A
S21400479011961C921082349685E0E43FF80799F74C
S2140047A080E48093B1058093B2051092B3058093A0
S2140047B0B4058093B50590EC9093B6051092B705B6
S2140047C08093B8058093B9051092BA059093BB05FF
S2140047D09093BC058093BD051092BE058093BF05DF
S2140047E09093C0058CE0E8EBF2E0A5EAB5E0019016
S2140047F00D928A95E1F76DE470E084EA95E04FDD6E
S2140048008093F105089582E090E00E94BB9B86307D
S21400481030F063E082E090E00E94D19B83E08093DA
S21400482052010895863020F4811103C081E001C052
S21400483085E080935201682F82E090E00C94D19B33
S214004840CF93C82F80911B05873609F047C0C63026
S21400485020F4CC2309F442C001C0C5E00E947019C0
S2140048608091960582FF07C080914005843618F037
S21400487080E58093400568E870E08BE195E00FDD09
S2140048808093A3052C2F30E02150310989E8829FC0
S214004890B001839F700D11246C597F4F49E850E09A
S2140048A08BE195E00E94C89B4CE050E060E570E02C
S2140048B08CE195E00E94C89B6CE070E08CE195E08E
S2140048C0EEDC682F8CE590E00E94D19B8C2FAADF4F
S2140048D00E94FA730E94AA1481E001C080E0CF9182
S2140048E00895CF93DF93C82FD62F863068F4882399
S2140048F031F0823039F0833041F0813031F430DEEF
S214004900C1E004C060DE02C0C5E08BDEDD23A9F096
S2140049106CE070E080E590E0CDDCD82F8CE590E090
S2140049200E94BB9BD81309C04CE050E060E570E0E5
S2140049308CE195E00E94AB9B01C0D7DC8C2FDF9109
S214004940CF917ECF9F92AF92BF92CF92DF92EF929F
S214004950FF920F931F93CF93DF93C091540181E191
S21400496090E00E94BB9BC81771F1C63149F48531AF
S21400497039F44C9905C060E081E090E00E94D19B3C
S2140049806091540181E190E00E94D19B28E088E18B
S21400499090E00FB6F894A895809360000FBE209321
S2140049A0600083E092E09F938F938CE996E99F9353
S2140049B08F93E0915506F091560609950F900F904B
S2140049C00F900F90FFCF81E090E00E94BB9BDD240C
S2140049D0D394873609F4D12C6CE070E080E590E043
S2140049E069DCA82E8CE590E00E94BB9B982EC1E067
S2140049F0D0E0B12C0DED11E09CE9E92E96E9F92EF8
S214004A00CC2EDD20C9F0DF93CF931F930F93FF9238
S214004A10EF92E0915506F091560609950F900F908B
S214004A200F900F900F900F9081E0C81651F092E013
S214004A30C91209C0C8DD08C08C2F2DDE882319F3E3
S214004A4013C08EDD01C0EDDDA91009C04CE050E0BA
S214004A5060E570E08CE195E00E94AB9B01C045DC10
S214004A608C2DEEDEBB24B3942196C630D10541F6DC
S214004A70BB2011F083E0D6DEC6DEC82F0CDE1F9208
S214004A80CF9384EC91E09F938F938CE996E99F9364
S214004A908F93E0915506F0915606099581E090E0D7
S214004AA00E94BB9B0F900F900F900F900F900F904F
S214004AB08F3FA1F483EA91E09F938F938CE996E968
S214004AC09F938F93E0915506F0915606099556DE12
S214004AD03EDE0F900F900F900F9003C018DE8823D5
S214004AE049F3DD2029F067E681E090E00E94D19B43
S214004AF0E1EBF5E080E0908119160CF48F5F3496B8
S214004B0095E0E13FF907B9F780931A051F928F9356
S214004B1085EA95E09F938F9382E891E09F938F9329
S214004B208CE996E99F938F93E0915506F09156068F
S214004B3009958DB79EB708960FB6F8949EBF0FBE20
S214004B408DBFDF91CF911F910F91FF90EF90DF9077
S214004B50CF90BF90AF909F900C942851CF92DF9249
S214004B60EF92FF928091C7089091C8089093260C08
S214004B708093250C8091C9089091CA089093280CC0
S214004B808093270C80913D0690913E0697FD0396F4
S214004B90959587959595879590932A0C8093290CE3
S214004BA080914F069091500697FD039695958795B0
S214004BB09595879590932C0C80932B0C20916103F0
S214004BC0309162038091510490915204821B930BA2
S214004BD090932E0C80932D0C6091FC037091FD0336
S214004BE08091FE039091FF033AE0C32ED12CE12C76
S214004BF0F12CA70196010E94089B3093300C20935D
S214004C002F0C80910405909105059093320C8093AB
S214004C10310C80914E0190914F019093360C809309
S214004C20350C80911A0190911B019093380C80935B
S214004C30370C8091020490E090933A0C8093390CE4
S214004C408091FE059091FF0590933C0C80933B0C61
S214004C508091750990E090933E0C80933D0C809176
S214004C60840990E09093400C80933F0C80919309C8
S214004C7090E09093420C8093410C8091A20990E0C2
S214004C809093440C8093430C8091C4049091C50487
S214004C9090934E0C80934D0C8091E6039091E70321
S214004CA09093500C80934F0C8091130590911405AF
S214004CB09093520C8093510C809117059091180593
S214004CC09093540C8093530C6091F8037091F90301
S214004CD08091FA039091FB03A70196010E94089B1E
S214004CE03093560C2093550C8091190590E09093C4
S214004CF0600C80935F0C8091680490916904909397
S214004D00620C8093610C8091660490916704909386
S214004D10640C8093630C90913F0A8091240C91114F
S214004D2004C09091400A992311F0816001C08E7FE3
S214004D308093240CFF90EF90DF90CF900895FF9221
S214004D400F931F93CF93DF938B01909101049111E2
S214004D5030C090915401993111F4299801C0299AD4
S214004D60F82EFF20F9F01093CC040093CB04E80152
S214004D702091CB043091CC04232B81F08091CF047A
S214004D808823B1F31092CF042091CB043091CC0449
S214004D90232B09F421970E948619EACF209771F7F2
S214004DA0FA94DFCF80915401893111F4299A01C019
S214004DB02998DF91CF911F910F91FF900895EAE710
S214004DC0F0E010828091650390916603909305064B
S214004DD08093040680916303909164039093FA0590
S214004DE08093F90580916103909162039093450644
S214004DF08093440620915D0330915E0346E0429F17
S214004E00C001439F900D112490933E0680933D066B
S214004E1020915F0330916003429FC001439F900D35
S214004E2011249093500680934F068FEC8083209138
S214004E305C0530E0A4ECB9E00E94309B609346012C
S214004E4070934701809348019093490120915D0536
S214004E5030E00E94309B6093420170934301809340
S214004E6044019093450108958F929F92AF92BF920E
S214004E70CF92DF92EF92FF920F931F93CF93DF9321
S214004E80082F10923F0A10924C0410924B04109276
S214004E904A04109249041092460410924504109257
S214004EA04404109256041092550410925404109222
S214004EB05304109252041092510410922A01109238
S214004EC0290110925603833029F48091C70382602B
S214004ED08093C70374DF84E690E00E945A886FDFF1
S214004EE08091280580FF13C08091100190911101D8
S214004EF0873B934050F480911001909111018E3EB3
S214004F00924018F08091560381110E94AB1A80904F
S214004F1010019090110187B58B5F87BD87B580958E
S214004F2088BD10E2C0E0D0E0C12CD12CA12CB12C61
S214004F30E12CF12C8AE090E00E945A88809161036F
S214004F4090916203E80EF91E8091650390916603C6
S214004F50A80EB91E8091630390916403C80ED91EF3
S214004F608091040590910505C80FD91F115011F7BF
S214004F708091100190911101823F934080F48091BE
S214004F80100190911101459750F080911001909179
S214004F901101881A990A90920E0180920D0187B528
S214004FA0855087BD87B5809588BDC5014096969586
S214004FB08795969587959093560480935504960109
S214004FC0205F3F4F369527953695279530935404A6
S214004FD02093530440E1E40EF11CE5E0F694E794D8
S214004FE0EA95E1F7F0925204E09251046096F5E0FB
S214004FF0D695C795FA95E1F7D0934604C093450435
S2140050003093500420934F0490934E0480934D04A5
S214005010023009F04CC080913D0690913E0697FF05
S21400502003C09195819591096CE070E00E94D39A37
S2140050309B0170934C0460934B0480914F069091B3
S214005040500697FF03C09195819591096CE070E03A
S2140050500E94D39A70934A0460934904B90184E08D
S21400506090E017DB6091490470914A0486E090E076
S21400507010DB609145047091460488E090E009DBFF
S214005080609155047091560482E190E002DB6091D5
S21400509053047091540484E190E0FBDA609151046B
S2140050A07091520486E190E0F4DA11E091C084E059
S2140050B090E0EDDA90934C0480934B0486E090E009
S2140050C0E6DA90934A048093490420914B04309189
S2140050D04C042130384018F481309840A8F18FE411
S2140050E092E09F938F938CE996E99F938F93E0913C
S2140050F05506F0915606099580913D0690913E061C
S21400510097FF03C09195819591096CE070E00E942D
S214005110D39A70934C0460934B0480914F06909101
S214005120500697FF03C09195819591096CE070E059
S2140051300E94D39A70934A04609349040F900F908C
S2140051400F900F9010E001C011E08091C70381FF1F
S2140051503FC082E190E09BDA7C0184E190E097DA40
S214005160EC0186E190E093DA9701395121383C4012
S21400517058F49E01395121383C4030F49C012052AD
S214005180334021393140C0F08BE292E09F938F93F9
S2140051908CE996E99F938F93E0915506F091560619
S2140051A009958091C7038D7F8093C7030F900F905A
S2140051B00F900F9010E00CC0F0925604E092550449
S2140051C0D0935404C0935304909352048093510494
S2140051D012BC11BC10920506109204061092FA0535
S2140051E01092F905109245061092440688EC90E05D
S2140051F00E945A8880915D0390915E0326E0289F66
S214005200D001299FB00D1124B0933E06A0933D0611
S21400521080915F0390916003289FA001299F500D05
S21400522011245093500640934F06E0913705F0E066
S2140052309F010E943F9B6B017C016093400470932A
S21400524041048093420490934304DA010E943F9BFA
S21400525060933C0470933D0480933E0490933F0417
S214005260C0923404D0923504E0923604F0923704AB
S2140052706093300470933104809332049093330427
S21400528010922C0410922D0410922E0410922F04CB
S214005290E0914E01F0914F01F0931B04E0931A0445
S2140052A084E690E090934B0180934A0120915C0540
S2140052B030E0A4ECB9E00E94309B6856754C8F4FE6
S2140052C09F4F6093460170934701809348019093E7
S2140052D0490120915D0530E00E94309B6856754C70
S2140052E08F4F9F4F60934201709343018093440118
S2140052F090934501109226011092250120912101DC
S214005300309122014091230150912401DF010E9437
S2140053104F9B60934B0670934C0680934D0690937C
S2140053204E0610921704109216040E94FA73002379
S21400533029F08091C90384608093C9038FEF80931E
S214005340290910922A0980E280932B0984E680932B
S21400535002048091C904882311F0579A15C08091E1
S21400536094058570853019F480EE9EE202C080E0D8
S21400537091E19093A8028093A70281E08093AF0208
S2140053800E94F3880E94F388C0902101D0902201E9
S214005390E0902301F090240160913C0470913D045C
S2140053A080913E0490913F04A70196010E94089BBD
S2140053B049015A0160914004709141048091420471
S2140053C090914304A70196010E94089BB401C9016D
S2140053D00E94120DEC010E94CD7D9C0190930B065D
S2140053E080930A066091450470914604725088279F
S2140053F077FD8095982F5DE0660F771F881F991FB1
S2140054005A95D1F7705F8F4F9F4F442737FD4095D1
S214005410542F0E94089BC901B9017E5F7093460411
S2140054206093450465970CF010E0002379F06091D6
S214005430C003662359F02C5831092234310530F068
S21400544020913F0A206220933F0A10E020915504E5
S2140054503091560420563940213C3B4228F020919A
S2140054603F0A216020933F0A209153043091540450
S21400547020563940213C3B4228F020913F0A2260CA
S21400548020933F0A20915104309152042C5231400F
S2140054902937354028F020913F0A246020933F0AA0
S2140054A020914B0430914C042C523140233C314027
S2140054B028F020913F0A286020933F0A2091490453
S2140054C030914A042C523140233C314028F0209140
S2140054D03F0A206120933F0A8335914028F080914F
S2140054E03F0A806280933F0A80913F0A811110E054
S2140054F086E480933D010E94AA1482E00E94101662
S2140055008091120190911301A0911401B0911501A0
S2140055108093060590930705A0930805B0930905A8
S214005520109255031092540310925703109258038A
S2140055301092590310925A0310921C0410921D04E4
S21400554010921E0410921F0410925E0C10925D0CB6
S2140055500E94841A8091C70381FF07C080915F056F
S214005560811103C084E080935F05812FDF91CF9186
S2140055701F910F91FF90EF90DF90CF90BF90AF906C
S2140055809F908F9008952F923F924F925F926F92C6
S2140055907F928F929F92AF92BF92CF92DF92EF92BE
S2140055A0FF920F931F93CF93DF93CDB7DEB7689725
S2140055B00FB6F894DEBF0FBECDBF209161033091C9
S2140055C062038091510490915204821B930B909336
S2140055D04506809344068091690390916A0397FD7F
S2140055E007969C0173E0359527957A95E1F73093F9
S2140055F0050620930406809167039091680397FD43
S214005600079643E0959587954A95E1F79093FA05B6
S2140056108093F90530930D0620930C0690930806A8
S2140056208093070640915D0350915E0320913D06EE
S21400563030913E06C901880F991F820F931F66E0BE
S214005640649F9001659F300D1124820F931F97FD74
S2140056500396959587959595879590933E068093A6
S2140056603D0640915F035091600320914F063091B4
S2140056705006C901880F991F820F931F66E0649F2A
S2140056809001659F300D1124820F931F97FD03969E
S21400569095958795959587959093500680934F0698
S2140056A020915D0330915E03809116069091170657
S2140056B0820F931F909317068093160620915F0320
S2140056C0309160038091470690914806820F931FA1
S2140056D0909348068093470680914704909148042B
S2140056E001969093480480934704809146039091D6
S2140056F04703A0914803B09149038093FC0390931D
S214005700FD03A093FE03B093FF03809142039091A4
S2140057104303A0914403B091450380934A039093BA
S2140057204B03A0934C03B0934D038FEC80937A0009
S21400573010920F01209130043091310440913204D0
S214005740509133042D833E834F8358874091340411
S21400575050913504609136047091370449875A8712
S2140057606B877C872090440630904506B1018827D9
S21400577077FD8095982F698B7A8B8B8B9C8B80908E
S2140057802C0490902D04A0902E04B0902F04860E2A
S214005790971EA81EB91E80922C0490922D04A092EB
S2140057A02E04B0922F0480914B0690914C06A09147
S2140057B04D06B0914E0629893A894B895C89280F97
S2140057C0391F4A1F5B1F2D873E874F87588B2093B4
S2140057D04B0630934C0640934D0650934E068091F0
S2140057E0E50381115BC18091E403811157C180916B
S2140057F0390686FF53C13D812E819F8188854D8164
S2140058005E816F817885483B54496E4F7F4F24F404
S21400581038EB24E99EEF8FEF39832A839B838C83B2
S21400582029813A814B815C8129343B4641405105B0
S21400583044F088E49BE6A1E0B0E089839A83AB83DA
S214005840BC8339852A859B858C8549855A856B85D9
S2140058507C85483B54496E4F7F4F24F438EB24E94F
S2140058609EEF8FEFC32ED22EE92EF82EB9E4CB167C
S214005870BBE6DB06B1E0EB06F1043CF0A8E4CA2E7A
S214005880ABE6DA2EEE24E394F12C40902901242D89
S21400589030E040E050E02D8B3E8B4F8B588FA09130
S2140058A0F905B091FA05A70196010E944F9B20E0EA
S2140058B038E040E050E00E94089B6D897E898F8921
S2140058C0988D0E94A49A20E030E140E050E00E94CB
S2140058D0089B29013A012093B6033093B7034093FF
S2140058E0B8035093B903A0910406B0910506298128
S2140058F03A814B815C810E944F9B20E038E040E07B
S21400590050E00E94089B6D897E898F89988D0E9441
S214005910A49A20E030E140E050E00E94089B5092BC
S214005920F3054092F2053093F5052093F405CA017D
S214005930B90164197509860997092B013C01609322
S214005940B2037093B3038093B4039093B5038D852D
S2140059509E85AF85B889840D951DA61DB71D8093BD
S2140059604B0690934C06A0934D06B0934E0680913E
S2140059702801811116C0C301B20122E030E040E0E8
S21400598050E00E94089BD501C401821B930BA40B18
S214005990B50B80932C0490932D04A0932E04B09303
S2140059A02F0489899A89AB89BC89480E591E6A1EBC
S2140059B07B1E80902A01912CA12CB12CA301920170
S2140059C0C701B6010E94A49A20E038E040E050E00B
S2140059D00E94089BC501B4010E94A49AC12CF0E164
S2140059E0DF2EE12CF12CA70196010E94089B89016D
S2140059F0498B5D872093AE031093AF034093B003AB
S214005A005093B103A301920169817A818B819C81B5
S214005A100E94A49A20E038E040E050E00E94089BF4
S214005A20C501B4010E94A49AA70196010E94089B92
S214005A302093AA033093AB034093AC035093AD037B
S214005A4037FE03C031942194310891E429163104BD
S214005A50ECF1C801A989BD85B7FF07C0B095A09530
S214005A60909581959F4FAF4FBF4F81389105A10507
S214005A70B10584F4C901DA01B7FF07C0B095A09557
S214005A80909581959F4FAF4FBF4F81389105A105E7
S214005A90B105E4F081E08093180418C01092F50573
S214005AA01092F4051092F3051092F2051092AA03D4
S214005AB01092AB031092AC031092AD031092AE039B
S214005AC01092AF031092B0031092B1038090AE0311
S214005AD09090AF03A090B003B090B103C090AA031B
S214005AE0D090AB03E090AC03F090AD03C701B601D5
S214005AF02CE93FEF4FEF5FEF0E94089B8901080DEE
S214005B00191D1093030600930206C501B40124E68E
S214005B1030E040E050E00E94089B19012C183D0838
S214005B203092FC052092FB0580904B0690904C0628
S214005B30A0904D06B0904E06409021015090220154
S214005B406090230170902401A8E6B1E0A3019201C1
S214005B500E94459B6B017C0186169706A806B9062F
S214005B6084F0A8E9BEEF0E94519B680D791D8A1D3E
S214005B709B1D60934B0670934C0680934D06909346
S214005B804E0680914B0690914C06A0914D06B09122
S214005B904E06B7FF0CC0C80ED91EEA1EFB1EC092EA
S214005BA04B06D0924C06E0924D06F0924E0640917F
S214005BB0F9055091FA05400F511F8091EA03909124
S214005BC0EB03481B590B662757FD6095762F8D8192
S214005BD09E81AF81B885480F591F6A1F7B1F40936F
S214005BE030045093310460933204709333048091F0
S214005BF0420190914301A0914401B0914501841760
S214005C009507A607B70784F448EA51E660E070E017
S214005C10481B590B6A0B7B0B40933004509331049E
S214005C20609332047093330444275527BA01481B07
S214005C30590B6A0B7B0BC0903004D0903104E09077
S214005C403204F0903304C416D506E606F70664F46C
S214005C50885A9146A109B109809330049093310483
S214005C60A0933204B0933304409104065091050685
S214005C70420D531D8091E8039091E903481B590B90
S214005C80662757FD6095762F89859A85AB85BC85F6
S214005C90480F591F6A1F7B1F4093340450933504E6
S214005CA060933604709337048091460190914701C3
S214005CB0A0914801B091490184179507A607B70738
S214005CC084F448EA51E660E070E0481B590B6A0B22
S214005CD07B0B4093340450933504609336047093E2
S214005CE0370444275527BA01481B590B6A0B7B0B10
S214005CF0C0903404D0903504E0903604F090370419
S214005D00C416D506E606F70664F4885A9146A10935
S214005D10B1098093340490933504A0933604B0936D
S214005D20370480912C0490912D04A0912E04B091FC
S214005D302F048093380490933904A0933A04B093C8
S214005D403B048091340490913504A0913604B091C0
S214005D5037048093400490934104A0934204B09388
S214005D6043048091300490913104A0913204B091A4
S214005D70330480933C0490933D04A0933E04B09378
S214005D803F04809118019091190197FD0796E3E072
S214005D9095958795EA95E1F7909305068093040616
S214005DA0809116019091170197FD079673E09595DF
S214005DB087957A95E1F79093FA058093F905809197
S214005DC06503909166030F9734F488E19CEF9093F7
S214005DD005068093040680916503909166030797F5
S214005DE034F480E398EF9093050680930406809140
S214005DF0650390916603813D974034F088EE93E00A
S214005E00909305068093040680916503909166033F
S214005E10803E974034F080ED97E09093050680939F
S214005E20040680916303909164030F9734F488E12D
S214005E309CEF9093FA058093F90580916303909107
S214005E406403079734F480E398EF9093FA05809301
S214005E50F9058091630390916403813D974034F087
S214005E6088EE93E09093FA058093F905809163039A
S214005E7090916403803E974034F080ED97E09093D5
S214005E80FA058093F90540913501442309F4A9C029
S214005E9020911801309119016091A8037091A9030F
S214005EA0261B370B3093A7032093A6038091180177
S214005EB090911901860F971F97FD019695958795E6
S214005EC09093A9038093A803213831051CF080E83D
S214005ED090E005C020383F4F34F480E89FEF909361
S214005EE0A7038093A60320911601309117016091B5
S214005EF0A4037091A503261B370B3093A3032093AE
S214005F00A2038091160190911701860F971F97FDA7
S214005F100196959587959093A5038093A4032138C1
S214005F2031051CF080E890E005C020383F4F34F47F
S214005F3080E89FEF9093A3038093A20350E08091A4
S214005F40A6039091A703489F9001499F300D589F44
S214005F50300D1124C90137FD0F96BC01B4E07595CC
S214005F606795BA95E1F78091040690910506860F2D
S214005F70971F90930506809304066091A203709184
S214005F80A303469FC001479F900D569F900D112476
S214005F90AC0197FF02C0415F5F4FBA01A4E0759560
S214005FA06795AA95E1F74091F9055091FA05460FD5
S214005FB0571F5093FA054093F905409118015091E8
S214005FC01901420F531F5093190140931801209155
S214005FD0160130911701280F391F309317012093AF
S214005FE01601E0900706F0900806D09028019091E0
S214005FF0F2058091F305A92FB82F1E141F0484F410
S214006000B7FF03C0B195A195B1092D2D30E00E94D0
S2140060103F9B20E430E040E050E00E94089B16C022
S214006020B7FF03C0B195A195B1092D2D30E00E94B0
S2140060303F9B20E430E040E050E00E94089B5095F3
S2140060404095309521953F4F4F4F5F4F200F311FA2
S214006050309303062093020600910C0610910D065D
S2140060609091F4058091F505A92FB82F101611060A
S21400607084F4B7FF03C0B195A195B1092D2D30E08A
S2140060800E943F9B20E430E040E050E00E94089BE6
S21400609016C0B7FF03C0B195A195B1092D2D30E00C
S2140060A00E943F9B20E430E040E050E00E94089BC6
S2140060B050954095309521953F4F4F4F5F4F220D9D
S2140060C0331D3093FC052093FB058091390687FF2E
S2140060D032C08091E50381112EC08091E4038111C6
S2140060E02AC0013071E0170714F01A9505C0011593
S2140060F08FEF18075CF413958091040690910506BF
S214006100800F911F909305068093040691E0E91690
S214006110F90614F0FA9405C0E114BFEFFB065CF430
S214006120F3948091F9059091FA058E0D9F1D90933A
S214006130FA058093F90568960FB6F894DEBF0FBE91
S214006140CDBFDF91CF911F910F91FF90EF90DF9021
S214006150CF90BF90AF909F908F907F906F905F9002
S2140061604F903F902F900895CF93DF938091010436
S214006170811127C08091C9038C7F8093C9038091C9
S214006180C8038F7D8093C803E4E4FAE0A6E7B9E08D
S2140061908091F304811101C010828191ED01219755
S2140061A088831C921F968AE0E035F80789F780916D
S2140061B0F304882359F08091F30481508093F3040C
S2140061C005C08091C90381608093C9038091DE0475
S2140061D0882319F01092DE040AC01092E104809120
S2140061E0DC048E7F8093DC0485EA8093BC00DF911C
S2140061F0CF9108958823A9F0E82FF0E0EE0FFF1F57
S214006200E25FF74F8081918181589F4F97FF02C0D0
S21400621080E090E08F3F910529F024F08FEF90E02A
S214006220089580E00895CF93DF93C0E2D5E0E3E0E1
S214006230F4E02991A22FB0E0AA0FBB1FA25FB74FD0
S2140062408D919C9181589F4F97FF02C080E090E00F
S2140062508F3F910519F014F08FEF90E0293111F47B
S21400626080831CC06081462F50E084179507B1F0EC
S2140062709C01241B350B37FF02C02D5F3F4F359521
S214006280279535952795260F2083422F50E08417B3
S214006290950714F4215001C02F5F2083319625E026
S2140062A0C832D20731F680912A05883F38F0EFEFE2
S2140062B0F0E0E81BF109ED5FFB4F808180933A0127
S2140062C080913A01843618F084E680933A018091F2
S2140062D02C05883F38F0EFEFF0E0E81BF109ED5FA2
S2140062E0FB4F80818093390180913901843618F004
S2140062F084E68093390180913905883F38F0EFEFC6
S214006300F0E0E81BF109ED5FFB4F808180933401DC
S214006310809134018B3018F48AE0809334018091A8
S2140063206605883F38F0EFEFF0E0E81BF109ED5F17
S214006330FB4F80818093180680911806863018F4EB
S21400634085E08093180680916805883F38F0EFEF67
S214006350F0E0E81BF109ED5FFB4F8081809340067B
S21400636080914006863018F485E080934006809140
S2140063705305873F29F4429B07C08091880517C0C4
S214006380863F29F44399F9CF8091890510C0883F4C
S21400639038F0EFEFF0E0E81BF109ED5FFB4F80818E
S2140063A08093150680911506893118F488E180934C
S2140063B0150680915405873F29F4429B07C08091BB
S2140063C08A0517C0863F29F44399F9CF80918B053B
S2140063D010C0883F38F0EFEFF0E0E81BF109ED5F02
S2140063E0FB4F80818093F6058091F605893118F47D
S2140063F088E18093F60580915505883F38F0EFEFE9
S214006400F0E0E81BF109ED5FFB4F808180931E06EC
S21400641080911E06893118F488E180931E068091CB
S2140064202B05E8DE8093DF0380912E05883F38F049
S214006430EFEFF0E0E81BF109ED5FFB4F8081809302
S214006440380180913005883F38F0EFEFF0E0E81B28
S214006450F109ED5FFB4F808180933601809138050E
S214006460883F38F0EFEFF0E0E81BF109ED5FFB4FF7
S21400647080818093370180913A05883F38F0EFEFAE
S214006480F0E0E81BF109ED5FFB4F8081809333015C
S21400649080913B05883F38F0EFEFF0E0E81BF1090C
S2140064A0ED5FFB4F80818093350180913C05883FEE
S2140064B038F0EFEFF0E0E81BF109ED5FFB4F80816D
S2140064C08093320180913D05883F38F0EFEFF0E091
S2140064D0E81BF109ED5FFB4F8081809331018091CD
S2140064E04305883F38F0EFEFF0E0E81BF109ED5F79
S2140064F0FB4F80818093300180914405883F38F0BF
S214006500EFEFF0E0E81BF109ED5FFB4F8081809331
S214006510DE0380914505883F38F0EFEFF0E0E81B9A
S214006520F109ED5FFB4F80818093DD038091460586
S214006530883F38F0EFEFF0E0E81BF109ED5FFB4F26
S21400654080818093DC0380914705883F38F0EFEF29
S214006550F0E0E81BF109ED5FFB4F80818093DB03E1
S21400656080916105883F38F0EFEFF0E0E81BF10915
S214006570ED5FFB4F80818093DA0380916205883F50
S21400658038F0EFEFF0E0E81BF109ED5FFB4F80819C
S2140065908093D90380916305883F38F0EFEFF0E0F1
S2140065A0E81BF109ED5FFB4F80818093D803809153
S2140065B06405883F38F0EFEFF0E0E81BF109ED5F87
S2140065C0FB4F80818093D70380914805883F38F041
S2140065D0EFEFF0E0E81BF109ED5FFB4F8081809361
S2140065E02F0180914C05883F38F0EFEFF0E0E81B74
S2140065F0F109ED5FFB4F808180932E018091490564
S214006600883F38F0EFEFF0E0E81BF109ED5FFB4F55
S214006610808180932D0180914D05883F38F0EFEF03
S214006620F0E0E81BF109ED5FFB4F808180932C01C1
S21400663080915605883F38F0EFEFF0E0E81BF1094F
S214006640ED5FFB4F808180932B0180915905883F39
S21400665038F0EFEFF0E0E81BF109ED5FFB4F8081CB
S21400666080932A0180915A05883F38F0EFEFF0E0DA
S214006670E81BF109ED5FFB4F808180932901809133
S2140066805B05883F38F0EFEFF0E0E81BF109ED5FBF
S214006690FB4F80818093280180918405883F38F0E5
S2140066A0EFEFF0E0E81BF109ED5FFB4F8081809390
S2140066B00106809128058093390680919505809380
S2140066C01D0680916005883F38F0EFEFF0E0E81B8C
S2140066D0F109ED5FFB4F80818093270180917D0556
S2140066E0883F38F0EFEFF0E0E81BF109ED5FFB4F75
S2140066F08081809352066091300170E06F5F7F4F1B
S2140067008CE398E20E94D39A70933C0160933B011D
S2140067108091360580934106809135058093090661
S214006720E0917F058091F0089091F108EE2309F43E
S21400673043C021E02093D603F0E0EE0FFF1FE25F98
S214006740F74F20813181203C3F4F14F41092D6033E
S21400675020913D014091D603241721F12330F8F40F
S21400676050915701442351F02CED35E03093CC0482
S2140067702093CB0451110DC02EE209C028EC30E066
S2140067803093CC042093CB04511103C027E120930F
S214006790570125E02093EC0340933D0103C02150B0
S2140067A020933D0197FF0DC0442359F020913F0AE6
S2140067B0206820933F0A05C01092D6032AE0209353
S2140067C03D0197FF1CC0809101048823C1F0809191
S2140067D0D6038823A1F08091A9029091AA0201967F
S2140067E071F488E99AE39093CC048093CB0480E01C
S2140067F094EA9093AA028093A9021092D6038091FD
S214006800D603882321F08091C803816003C080915D
S214006810C8038E7F8093C803DF91CF91089580913F
S2140068203105811120C020911A0130911B01809101
S214006830E6039091E70397FD0396AC0155954795BF
S21400684055954795429FC001439F900D529F900DCE
S21400685011246091530170E00E94BF9A7093410129
S2140068606093400105C090E0909341018093400101
S21400687080914001909141018734910518F486E497
S21400688090E005C08F3A910530F08FEA90E0909343
S21400689041018093400108952F923F924F925F925C
S2140068A06F927F928F929F92AF92BF92CF92DF921B
S2140068B0EF92FF920F931F93CF93DF93CDB7DEB780
S2140068C069970FB6F894DEBF0FBECDBF0E94C32AED
S2140068D08091C903847179F58091960582FF24C062
S2140068E08091E6039091E7030097D9F0883522E07F
S2140068F09207BCF497FD03969C0135952795359530
S214006900279540914005429FC001439F900D11245A
S21400691064E670E00E94D39A7093C6036093C50342
S2140069200AC08DE290E003C08091400590E090930D
S214006930C6038093C5038091C3039091C40320913E
S2140069400906803335E7930751F410920D04109230
S2140069500C04422F50E05093C6034093C503409169
S2140069600C0450910D045A83498330E0A901475F17
S2140069705F4F69817A814617570724F0D9011A9626
S214006980BA83A983209102042436B0F52091C80367
S21400699022FD32C08091A0039091A103009731F0B0
S2140069A001979093A1038093A0030BC0109201045B
S2140069B01092CB031092CA038091C9038D7E8093F8
S2140069C0C903289A8091CA039091CB03893E9340CD
S2140069D080F080911905853660F0E091C503F0914E
S2140069E0C603FA83E9838091C90380618093C90353
S2140069F08CC51092010489C5209102042D3808F434
S214006A005AC5E0918C05EE2309F444C080918D05AB
S214006A10882309F43FC0F0E0EE0FFF1FE25FF74F58
S214006A2080819181C397BCF080911F01823361F40D
S214006A308091C80385FF08C08091C8038064809356
S214006A40C80380E3809357018091C8038F778093B3
S214006A50C80386E917C0808191818E3C9F4FACF4B5
S214006A6080911F01863941F48091C8038068809325
S214006A70C8038FE2809357018091C8038F7B809371
S214006A80C80382E380931F0105C08091C8038F73FB
S214006A908093C8038091C9038F7E8093C903809139
S214006AA0410522E3829FC00111249093A1038093A5
S214006AB0A00349815A81493251058CF08091010426
S214006AC0882369F08091CA039091CB038F3F5FEFD4
S214006AD0950729F001969093CB038093CA032091E3
S214006AE0CA033091CB032F3F310509F048F51092C9
S214006AF02404109225041092260410922704109263
S214006B002004109221041092220410922304109262
S214006B109C0310929D0310929E0310929F03109266
S214006B202C0410922D0410922E0410922F048091A3
S214006B30C80380628093C80384E680931F0133C134
S214006B408091C90382608093C9038091C80385FF42
S214006B5096C08091B504482F447082FD04C0809191
S214006B60C80386FF2AC0809120018D3331F58091BD
S214006B70C003882311F180E58093F10384EF91E050
S214006B80A0E0B0E08093F2039093F303A093F403A5
S214006B90B093F5038093F8039093F903A093FA0358
S214006BA0B093FB0388EE93E090931E0180931D0143
S214006BB0442319F08DE08093570180914A03909109
S214006BC04B03A0914C03B0914D0387399105A10565
S214006BD0B1058CF48091FC039091FD03A091FE0317
S214006BE0B091FF03823A9E4FAF4FBF4F24F0809183
S214006BF0390680FD21C088EE93E090931E018093B5
S214006C001D018091C80386FF0FC01092F1038CE22D
S214006C1091E0A0E0B0E08093F8039093F903A0938E
S214006C20FA03B093FB0303C080E38093570180917F
S214006C30C8038F718093C803109224041092250411
S214006C401092260410922704109220041092210419
S214006C50109222041092230410922C0410922D04F9
S214006C6010922E0410922F04293E334008F49BC045
S214006C7088EE93E09093CB038093CA0394C08091F0
S214006C80C80387FF1AC080912001863711F08D3324
S214006C90A1F48091C003882381F080918D058093B4
S214006CA0F10380EE91EBAFEFBFEF8093F20390938A
S214006CB0F303A093F403B093F50320911D013091E4
S214006CC01E01283E83E0380708F048C02F5F3F4F7C
S214006CD030931E0120931D01109224041092250467
S214006CE01092260410922704109220041092210479
S214006CF0109222041092230410922C0410922D0459
S214006D0010922E0410922F0480914A0390914B0308
S214006D10A0914C03B0914D038C529140A109B1094A
S214006D208093F8039093F903A093FA03B093FB03C0
S214006D30283E3340C1F58091C80387FF34C0809158
S214006D4020018B3281F18091C8038F778093C8032E
S214006D508091C80380628093C80325C08091C003D9
S214006D60882309F180912001863711F08D32D9F4FD
S214006D708091FC039091FD03A091FE03B091FF0368
S214006D80883E9340A105B10574F480910405909166
S214006D9005058D3A93403CF010921E0110921D019D
S214006DA08EE080935701E0911E05F0E0EE0FFF1F86
S214006DB0E25FF74F80819181813591050CF457C1D0
S214006DC080910104811153C18091B50484FD4FC1A7
S214006DD0E0911F05F0E0EE0FFF1FE25FF74F8081A6
S214006DE0918197FF03C09195819591098C34910507
S214006DF00CF43BC180919B038F5F80939B03893C7F
S214006E0008F435C110929B031092CB031092CA036C
S214006E1020911C0530E0220F331FF901E25FF74F87
S214006E208081918140911D05873491058CF4E42F73
S214006E30F0E0EE0FFF1FE25FF74F8081918197FF32
S214006E4003C0919581959109873491050CF46AC029
S214006E5050E0440F551FFA01E25FF74F80819181A1
S214006E608734910574F0F901E25FF74F80819181D4
S214006E708634910534F48081918111E08B3B9F4FDD
S214006E800CF410E0FA01E25FF74F808191818734BD
S214006E9091054CF0F901E25FF74F808191818734CC
S214006EA091050CF012E0FA01E25FF74F80819181C4
S214006EB0863491054CF4F901E25FF74F80819181A9
S214006EC0873491050CF013E0FA01E25FF74F8081FA
S214006ED091818A3B9F4F4CF4F901E25FF74F808126
S214006EE09181873491050CF014E0FA01E25FF74FC8
S214006EF0808191818A3B9F4F6CF4F901E25FF74FE6
S214006F0020813181263431052CF4208131812B3BC0
S214006F103F4F1CF4112339F001C015E0812F0E9469
S214006F20122401C010E0E0911D05F0E0EE0FFF1FF7
S214006F30E25FF74F2081318137FF03C031952195FD
S214006F4031092E313105C4F4E0911C05F0E0EE0F56
S214006F50FF1FE25FF74F208131812A3B3F4F64F4E9
S214006F6081E080935A0A1092ED0388EE93E09093A6
S214006F70CC048093CB047BC0809152010E944B23AB
S214006F8080E00E946B51809142050E94D817809144
S214006F90390680FF10C02091100130911101273B67
S214006FA0334038F420911001309111012E3E3240CA
S214006FB010F40E94AB1A111139C0E0911D05F0E0E3
S214006FC0EE0FFF1FE25FF74F808191818A3B9F4F54
S214006FD074F4E0911C05F0E0EE0FFF1FE25FF74F40
S214006FE0808191818634910514F483E020C0E0917D
S214006FF01F05F0E0EE0FFF1FE25FF74F80819181E3
S214007000853B9F4F9CF4E0911C05F0E0EE0FFF1FC0
S214007010E25FF74F8081918197FF03C0919581953C
S21400702091098634910514F482E001C081E00E9443
S21400703034278093ED0381E08093C904579A90919A
S2140070403F0A992311F087E004C09091ED03911157
S21400705088E1809357018AE080937E0468E770E0B9
S214007060809152010E949F2602C010929B03E091DD
S2140070701E05F0E0EE0FFF1FE25FF74F8081918163
S2140070808C399F4F0CF010C220918005E22FEF77CD
S214007090F0E0EE0FFF1FEC5AF74F808191810697C4
S2140070A014F084E606C0808191818B3F9F4F1CF4CC
S2140070B08CE980939A038091010430919605E091C3
S2140070C01F05F0E0EE0FFF1FE25FF74F81114EC184
S2140070D0808191818C399F4F7CF433FD0BC0E22F69
S2140070E0F0E0EE0FFF1FE25FF74F80819181853B56
S2140070F09F4FACF0222399F033FF35C1E22FF0E02A
S214007100EE0FFF1FE25FF74F80819181873F9F4F11
S2140071100CF429C180919A03843609F024C1809129
S214007120B50484FD20C18091ED03882329F0809169
S214007130C90388608093C90380911201909113015E
S214007140A0911401B0911501809306059093070550
S214007150A0930805B09309051092FC031092FD0356
S2140071601092FE031092FF031092460310924703FC
S214007170109248031092490388E592E09093C40366
S2140071808093C30310924203109243031092440369
S2140071901092450310925703109258031092590309
S2140071A010925A03E0911C05F0E0EE0FFF1FE25F1D
S2140071B0F74F808191818D399F4F8CF4E0911D05AA
S2140071C0F0E0EE0FFF1FE25FF74F8081918197FF9F
S2140071D003C09195819591098436910524F4211177
S2140071E002C010929903809199038F5F8093990350
S2140071F08E3F08F43FC18091C7033091440620912A
S214007200450681FF23C0832F922F97FF03C09195D9
S2140072108195910981349105B4F48091040690918A
S214007220050697FF03C0919581959109CD975CF46B
S2140072308091F9059091FA0597FF03C09195819585
S2140072409109CD9714F11092ED031FC0832F922F52
S21400725097FF03C09195819591098197A4F7809136
S21400726004069091050697FF03C0919581959109B4
S21400727045974CF78091F9059091FA0597FF03C062
S2140072809195819591094597F4F61092990380910E
S2140072903F0A2091ED0381115CC0222309F459C0F6
S2140072A08091B904811155C081E090E09093CB03A2
S2140072B08093CA038093010410929C0310929D034E
S2140072C010929E0310929F0310922C0410922D048D
S2140072D010922E0410922F04109228041092290463
S2140072E010922A0410922B0440913705A0913D0677
S2140072F0B0913E0650E09A010E943F9B6093340492
S214007300709335048093360490933704A0914F060B
S214007310B09150060E943F9B6093300470933104F6
S2140073208093320490933304109224041092250420
S2140073301092260410922704109220041092210422
S214007340109222041092230484E68093EC0384E3D4
S21400735083C08CED95E09093CC048093CB042111F0
S21400736089C081E079C01092990384C080819181A0
S214007370853691057CF033FD0BC0E22FF0E0EE0F72
S214007380FF1FE25FF74F80819181853B9F4FACF0F6
S214007390222399F033FF6CC0E22FF0E0EE0FFF1FC0
S2140073A0E25FF74F808191818E3C9F4F0CF060C06A
S2140073B080919A038C3909F05BC0E0911C05F0E0DF
S2140073C0EE0FFF1FE25FF74F808191818D399F4F4F
S2140073D08CF4E0911D05F0E0EE0FFF1FE25FF74F23
S2140073E08081918197FF03C091958195910984369C
S2140073F091052CF4211103C01092980318C0109226
S2140074002404109225041092260410922704109249
S2140074102004109221041092220410922304109249
S214007420130410921204109211041092100480910A
S21400743098038F5F809398038B3F88F01092010427
S214007440109298031092CB031092CA038091C8033F
S2140074508F718093C80386E2809357010BC08436F1
S21400746049F48CEA9DE09093CC048093CB0402C050
S214007470109298038091C3039091C403883E73E0F2
S214007480970708F042C020915403309155032B36DD
S2140074903F4F14F0019603C00097B9F101979093FF
S2140074A0C4038093C30331C010929A031092C4039E
S2140074B01092C3032AC08E3E924038F18091B808DD
S2140074C09091B9088039914000F58091FC03909125
S2140074D0FD03A091FE03B091FF038C3D9540A105EE
S2140074E0B1059CF480E395E79093C4038093C303AF
S2140074F08091CA039091CB038A3E934030F089EE88
S21400750093E09093CB038093CA03809193029FEFFE
S214007510980F90939302882321F08091C90384FFEB
S2140075203FC30E94133180911C05682E712C660C97
S214007530771CF301E25FF74FA081B181909032058E
S214007540692D70E0F301EC5AF74F0190F081E02DC1
S2140075504091330550E080919603909197039C01EB
S214007560220F331F280F391FA69FC001A79F900D1B
S214007570B69F900D1124280F391F37FF02C02D5FCC
S2140075803F4F3595279535952795E49FC001E59F94
S214007590900DF49F900D1124280F391F30939703F8
S2140075A02093960300911D0510E0000F111FF801AF
S2140075B0E25FF74FE080F180F801EC5AF74FA081C8
S2140075C0B181E0919403F0919503CF01880F991F44
S2140075D08E0F9F1FE69EF001E79EF00DF69EF00DC3
S2140075E011248E0F9F1F97FD039695958795959569
S2140075F08795A49FB001A59F700DB49F700D1124B0
S214007600860F971F90939503809394034091D6031B
S2140076104423B1F037FF02C02D5F3F4F35952795C5
S2140076203595279597FD0396959587959595879516
S214007630E091A502FF27E7FDF0956091BC040FC01E
S214007640E0917E05F0E0E553FD4F46814093A502AC
S21400765060816093BC04E42FFF27E7FDF095772751
S21400766067FD7095E29FA001E39F500DF29F500DBD
S2140076701124689FD001699FB00D789FB00D11242A
S2140076804A0F5B1F57FF02C0495F5F4FA3E0559547
S2140076904795AA95E1F75093130440931204E89F88
S2140076A0A001E99F500DF89F500D1124629FC00164
S2140076B0639F900D729F900D1124481B590B57FF26
S2140076C002C0495F5F4F83E0559547958A95E1F77D
S2140076D05093110440931004E0911F05F0E0EE0F64
S2140076E0FF1FE25FF74F2081318188279927821B91
S2140076F0930B853091051CF08CEF9FEF05C08C3FF7
S2140077009F4F4CF484E090E0821B930B90930F0401
S21400771080930E0404C010920F0410920E04809101
S214007720C3039091C4033091120420911304709106
S2140077301004609111048130924058F1832F922FEB
S21400774097FD0796B3E095958795BA95E1F79093E0
S214007750130480931204872F962F97FD0796A3E0B5
S21400776095958795AA95E1F7909311048093100458
S21400777010922404109225041092260410922704D6
S21400778010922004109221041092220410922304D6
S2140077903FC0409165044423D9F150E0832F922FD7
S2140077A097FD0796F3E095958795FA95E1F7489F3C
S2140077B09001499F300D589F300D112437FF02C0AD
S2140077C0215F3F4FE4E035952795EA95E1F7309342
S2140077D0130420931204872F962F97FD079623E015
S2140077E0959587952A95E1F7489F9001499F300D1A
S2140077F0589F300D112437FF02C0215F3F4FB4E081
S21400780035952795BA95E1F7309311042093100427
S214007810C0901204D090130480916804909169047B
S214007820C81AD90AD0921304C0921204E090100429
S214007830F09011048091660490916704E81AF90AA2
S214007840F0921104E0921004E0911E05F0E0EE0FB5
S214007850FF1FE25FF74FA080B1806FE7A60EB11C56
S214007860B0920D04A0920C046091340170E080E0A8
S21400787090E00E94189A20E030E040E251E40E9436
S21400788086990E94EA996093490680913301809315
S2140078901F066091320170E080E090E00E94189A26
S2140078A020E030E040E251E40E9486990E94EA9986
S2140078B0609300068091310180930E068091660ADF
S2140078C080FF3EC0809152068138D0F120915F0A39
S2140078D0792D2703C00111248C0D9D1D9093130450
S2140078E0809312042091600A2703C00111248E0D94
S2140078F09F1D90931104809310042091610A80913B
S2140079000E0490910F04820F911D27FD9A95909377
S2140079100F0480930E042091630A30912D052303F3
S214007920C001112490932601809325018091620A5C
S21400793090E08A159B0524F490930D0480930C0424
S21400794080910C0490910D0497FF04C010920D04D2
S21400795010920C048091390682FD10921F068091C9
S2140079601204909113044091CE035091CF039C01D2
S21400797097FF02C02D5F3F4F359527953595279584
S21400798037FF03C0319521953109421753079CF400
S21400799097FF03C091958195910995958795959543
S2140079A087958536910514F084E690E09093CF0392
S2140079B08093CE0306C0415051095093CF034093A5
S2140079C0CE0380911004909111044091CC03509105
S2140079D0CD039C0197FF02C02D5F3F4F359527953D
S2140079E03595279537FF03C0319521953109421704
S2140079F053079CF497FF03C091958195910995953F
S214007A008795959587958536910514F084E690E0E0
S214007A109093CD038093CC0306C0415051095093F8
S214007A20CD034093CC038091C90384FF08C0109215
S214007A30CF031092CE031092CD031092CC03F80120
S214007A40E25FF74F208131818091570590E08217E1
S214007A50930744F42091930522FF04C021E020936D
S214007A60E3030FC0F801E25FF74F40815181209198
S214007A705805DC01A21BB1094A175B0714F41092E3
S214007A80E303F801E25FF74F208131814427552751
S214007A90481B590B2417350744F42091930523FF00
S214007AA004C021E02093E20313C02091E2032223C6
S214007AB079F0F801E25FF74F6081718120915805F7
S214007AC030E0281B390B2617370714F41092E20310
S214007AD0F301E25FF74F208131818217930744F468
S214007AE02091930520FF04C021E02093E00313C0FB
S214007AF02091E003222379F0F301E25FF74F6081E3
S214007B00718120915805FC01E21BF1096E177F0771
S214007B1014F41092E003F301E25FF74F2081318105
S214007B202417350744F42091930521FF04C081E013
S214007B308093E10313C02091E103222379F0F3013F
S214007B40E25FF74F408151812091580530E0281BB5
S214007B50390B2417350714F41092E1038091E303E0
S214007B60811104C08091E203882321F081E0809394
S214007B70E40302C01092E4038091E003811104C084
S214007B808091E103882351F081E08093E503109211
S214007B90E4031092E3031092E20302C01092E5039E
S214007BA08091E403811104C08091E503882369F085
S214007BB08091560590E029813A818217930714F444
S214007BC09A83898381E0809318048091C80382FF9A
S214007BD031C08091680490916904919581959109CE
S214007BE09093130480931204809166049091670426
S214007BF0919581959109909311048093100480913A
S214007C0040019091410190930D0480930C041092D2
S214007C100F0410920E04809139068B778B66809342
S214007C20390680911D068C7B80931D0688EC809318
S214007C30DF031EC08091C90384FF1AC010920F0490
S214007C4010920E0410921304109212041092110453
S214007C50109210049AE59093490688E780931F06D1
S214007C609093000680930E061092E4031092E503AC
S214007C704090400450904104609042047090430449
S214007C808091110690911206A0911306B0911406E9
S214007C90840D951DA61DB71D8093110690931206A0
S214007CA0A0931306B093140640913C0450913D04F3
S214007CB060913E0470913F044B835C836D837E83AA
S214007CC08091190690911A06A0911B06B0911C0689
S214007CD0840F951FA61FB71F8093190690931A0648
S214007CE0A0931B06B0931C065091E5035F8360913A
S214007CF0E4036D87511102C0662311F1109211063C
S214007D00109212061092130610921406109219067C
S214007D1010921A0610921B0610921C06109253031D
S214007D20109252031092E9031092E8031092EB03AC
S214007D301092EA038F818111D8C17D857111D5C15A
S214007D408091040590910505813092402CF4809135
S214007D500104882309F4C9C1809029098091370558
S214007D6000913D0610913E0618140CF0BAC0282F5C
S214007D7030E040E050E029873A874B875C879924BB
S214007D8087FC9094A92CB92CC301B2010E94089BD1
S214007D908091F2089091F308B801681B790BCB012B
S214007DA0AA2797FDA095BA2F281B390B4A0B5B0B09
S214007DB0C501B4010E94A49AC12C52E0D52EE12C34
S214007DC0F12CA70196010E94089B2C8B3D8B4E8BB5
S214007DD05F8B2F87398B4A8B5B8B6B817C818D8188
S214007DE09E8129853A854B855C850E94089B8091FB
S214007DF04F06909150066091F4087091F508861B26
S214007E00970BAA2797FDA095BA2F281B390B4A0B6C
S214007E105B0BC501B4010E94A49AA70196010E94BB
S214007E20089B89015A01342E2B2CE091CE03F09149
S214007E30CF03E134F1053CF4E091CC03F091CD039F
S214007E40E134F105CCF042E0C42ED12CE12CF12C2B
S214007E506C897D898E899F89A70196010E94089B5F
S214007E602F87398B4A8B5B8BB801C501A70196011A
S214007E700E94089B342E252E80912B09482F5527CB
S214007E8047FD5095652F752F8F849988AA88BB88E3
S214007E90481559056A057B0514F44A015B019927C4
S214007EA081950CF49095AA2797FDA095BA2F881671
S214007EB09906AA06BB0614F44C015D016901E32C81
S214007EC0F22C4C155D056E057F0514F46A017B01E6
S214007ED0C816D906EA06FB060CF0CBC06C017D017D
S214007EE0C8C0882E912CA12CB12C6B817C818D81F1
S214007EF09E81A50194010E94089B69017A018091E8
S214007F004F0690915006AA2797FDA095BA2FC81A3B
S214007F10D90AEA0AFB0AC301B201A50194010E942C
S214007F20089BC801AA2797FDA095BA2F281B390BD6
S214007F304A0B5B0BCA01B90120E130E040E050E09B
S214007F400E94089B322E398B242E5A8B822E932E1B
S214007F50A42EB52EC701B60120E130E040E050E087
S214007F600E94089B122F032F49875F87C22ED32EAD
S214007F707A018091CE039091CF03813491053CF431
S214007F808091CC039091CD0381349105CCF033E001
S214007F90C32ED12CE12CF12C632D7989822D9A8960
S214007FA0A70196010E94089B49015A01612F702F74
S214007FB089859F85A70196010E94089B69017A0121
S214007FC0E0911F05F0E0EE0FFF1FE25FF74F8081A4
S214007FD0918197FF03C09195819591094A97A4F0E6
S214007FE0C501B40123E030E040E050E00E94089B69
S214007FF049015A01C701B60123E030E040E050E0F5
S2140080000E94089B69017A0189E180934C0171E224
S21400801087169104A104B10474F480EE88168FEFDD
S2140080209806A806B80664F480EE882E99249A94DA
S214008030A92CB92C05C090E2892E912CA12CB12C2C
S21400804091E2C916D104E104F10474F4A0EECA1654
S214008050AFEFDA06EA06FA0664F410EEC12EDD2467
S214008060DA94ED2CFD2C05C000E2C02ED12CE12CBC
S214008070F12C8091340490913504A0913604B0918F
S214008080370488199909AA09BB0980933404909388
S2140080903504A0933604B093370480913004909151
S2140080A03104A0913204B09133048C199D09AE09B5
S2140080B0BF098093300490933104A0933204B093A8
S2140080C033048091BC039091BD03880D991D909355
S2140080D0BD038093BC038091BA039091BB038C0DC3
S2140080E09D1D9093BB038093BA0380915203909199
S2140080F05303E0914406F0914506FA87E9878F3FDF
S214008100910509F008F457C120915F05222309F470
S21400811004C180913D0690913E06815E9C4F8F3350
S214008120964008F0FAC080914F0690915006815E06
S2140081309C4F8F33964008F0F0C080911804811150
S214008140ECC089859A854F96CF9708F0E6C030E058
S2140081503093460C2093450CE090BC03F090BD0392
S214008160B6E0220F331FBA95E1F7C701B9010E94A6
S214008170BF9AE61AF70AF092BD03E092BC03E091BC
S214008180BA03F091BB03CF01B9010E94BF9A6F01F9
S214008190C61AD70AD092BB03C092BA03E09116045F
S2140081A0F0911704CF01B9010E94BF9AE61BF70BA6
S2140081B0F0931704E09316048091CE039091CF03BA
S2140081C081349105BCF48091CC039091CD03813429
S2140081D0910584F4E0911F05F0E0EE0FFF1FE25FCB
S2140081E0F74F8081918197FF03C091958195910902
S2140081F04A97D4F0F7FE03C04FEFE41AF40AF5945A
S214008200E794F092BD03E092BC03D7FE03C05FEF95
S214008210C51AD50AD594C794D092BB03C092BA03A8
S21400822010921704109216048091BC039091BD031F
S214008230893B9B406CF01092BD031092BC0380916A
S21400824055049091560401969093560480935504D5
S2140082508091BC039091BD038834944F6CF41092C7
S214008260BD031092BC03809155049091560401976B
S21400827090935604809355048091BA039091BB0363
S214008280893B9B406CF01092BB031092BA0380911E
S214008290530490915404019690935404809353048D
S2140082A08091BA039091BB038834944F6CF410927B
S2140082B0BB031092BA038091530490915404019723
S2140082C0909354048093530480911604909117045D
S2140082D08D3A9D406CF0109217041092160480910F
S2140082E05104909152040196909352048093510445
S2140082F080911604909117048435924FD4F410920E
S214008300170410921604809151049091520401971C
S21400831090935204809351040CC01092BD031092A7
S214008320BC031092BB031092BA031092170410926B
S21400833016041092180480911F06811108C010922E
S214008340EB031092EA031092E9031092E80380917F
S214008350110690911206A0911306B0911406809310
S214008360900390939103A0939203B093930380910C
S214008370190690911A06A0911B06B0911C068093D0
S2140083808C0390938D03A0938E03B0938F0310926B
S21400839011061092120610921306109214061092EE
S2140083A0190610921A0610921B0610921C061092BE
S2140083B0530310925203E0900E04F0900F04D7017E
S2140083C0F7FE04C0AA27BB27AE19BF09A430B10523
S2140083D03CF08091390684FD03C082E38093EC0371
S2140083E0109134058091C3039091C403813092406C
S2140083F0E8F497010E942A9B9B01AC01A12FB0E0F4
S2140084000E94459B20E032E040E050E00E94089B3E
S2140084101E9DC0011F9D900D112497FD03969595F6
S214008420879595958795820F931F02C080E090E010
S2140084302091EE033091EF03280F391FA90166271C
S21400844057FD6095762F40939C0350939D03609351
S2140084509E0370939F0380912C0490912D04A0910D
S2140084602E04B0912F04841B950BA60BB70B8135F9
S21400847033EC9307A105B10524F080E593ECA0E06A
S214008480B0E080932C0490932D04A0932E04B09318
S2140084902F0480912C0490912D04A0912E04B0916D
S2140084A02F04803B9C43AF4FBF4F64F480EB9CE3AC
S2140084B0AFEFBFEF80932C0490932D04A0932E046F
S2140084C0B0932F0400914E0110914F0117FDD0C0BC
S2140084D08091390683FFCCC080914D01813021F018
S2140084E0815080934D01C8C08DE080934D01C3013B
S2140084F0B20120E032E040E050E00E94089B7901A3
S21400850037FF04C0EE24FF24E21AF30A6B817C8155
S2140085108D819E8120E032E040E050E00E94089B82
S214008520190137FF04C022243324221A330A2E14DA
S2140085303F040CF41701C0904B06D0904C06E09018
S2140085404D06F0904E062091210130912201409177
S214008550230150912401C701B6010E94089B4901DE
S2140085605A013093FF052093FE05C801845E9D4F97
S214008570821B930B68E671E00E94D39AAC01445BC1
S21400858051096091EC03662321F090921B048092BF
S2140085901A0480914A0190914B01009731F001979F
S2140085A090934B0180934A0113C079E1271631045A
S2140085B07CF42091160430911704240F351F309355
S2140085C0170420931604662319F061506093EC0399
S2140085D080914A0190914B01892B11F520914C0115
S2140085E0249FC001259F900D1124B10153E075957D
S2140085F067955A95E1F76E5F7F4F0E94D39ACB013D
S214008600AA2797FDA095BA2F8C0D9D1DAE1DBF1DE8
S21400861080934B0690934C06A0934D06B0934E065F
S2140086208091EC03811124C080911A0490911B0460
S21400863088199909845E9D4F68E671E00E94D39A76
S214008640845B9109409137014695489F9001499F68
S214008650300D112437FF02C0215F3F4F44E03595AF
S21400866027954A95E1F73093EF032093EE0304C075
S2140086701092EF031092EE0380911804882381F085
S21400868010922004109221041092220410922304C7
S21400869010922404109225041092260410922704A7
S2140086A08F8181110FC0A0911F06B0E0A301920137
S2140086B00E94459B28EF3AE240E050E00E94089B6B
S2140086C0190102C0212C312C9D85911112C0A09158
S2140086D01F06B0E02B813C814D815E810E94459B48
S2140086E028EF3AE240E050E00E94089B38872F834C
S2140086F002C018861F828091FB059091FC05893C7C
S21400870091051CF088EC90E005C088339F4F34F448
S21400871088E39FEF9093FC058093FB05809102060B
S21400872090910306893C91051CF088EC90E005C00A
S21400873088339F4F34F488E39FEF9093030680932B
S2140087400206A0910406B091050680914906409164
S214008750FB055091FC05A82EB12C95010E943F9B6D
S2140087608A01222717FD2095322FB7E0000F111F30
S214008770221F331FBA95D1F7600F711F821F931FF8
S21400878010E4C12ED12CE12CF12CA70196010E94F9
S214008790089B8101020F131F109305060093040621
S2140087A0A091F905B091FA05409102065091030692
S2140087B095010E943F9B4A01AA2497FCA094BA2CDC
S2140087C027E0880C991CAA1CBB1C2A95D1F7680DBB
S2140087D0791D8A1D9B1DA70196010E94089BAF80EC
S2140087E0B884A20EB31EB092FA05A092F905A98528
S2140087F0BA85AA0FBB1F2091000630E00E943F9B5F
S214008800A70196010E94089B69017A01A0910E06B5
S214008810209138043091390440913A0450913B0439
S214008820B0E00E94459B20EF35E540E050E00E9416
S214008830089BC20ED31ED0924506C0924406013055
S214008840104134F080E090E1909305068093040692
S21400885080910406909105068115904F34F480E0CF
S21400886090EF909305068093040621E0A21620E17F
S214008870B20634F080E090E19093FA058093F90513
S2140088808091F9059091FA058115904F34F480E0B7
S21400889090EF9093FA058093F90541E0C41640E105
S2140088A0D40634F080E090E1909345068093440629
S2140088B080914406909145068115904F34F480E0EF
S2140088C090EF90934506809344068091C90385FDFA
S2140088D011C060911A0170911B0120915301A9816A
S2140088E0BA812A9FC0012B9F900D11240E94BF9A27
S2140088F07A83698380918B039FEF980F90938B0305
S21400890081115AC08091890390918A03892B41F482
S21400891080911A0190911B0190938A03809389039A
S21400892020911A0130911B018091890390918A034E
S2140089308217930710F4019608C020911A0130910F
S2140089401B012817390728F4019790938A03809310
S214008950890384E680938B038091890390918A0330
S2140089602091630430E08217930710F42AE00CC0CD
S21400897040915101240F311D2817390738F42091F2
S214008980BF03222319F021502093BF0320916204D5
S21400899030E08217930710F489E10CC04091510132
S2140089A0240F311D2817390738F48091BE03882319
S2140089B019F081508093BE038091BF038823D1F0C5
S2140089C08091F2039091F303A091F403B091F50324
S2140089D0B7FD10C080918D058093F10380EE91EB7A
S2140089E0AFEFBFEF8093F2039093F303A093F403EB
S2140089F0B093F5038091CA04811102C00E942F82B1
S214008A00E981FA81EE0FFF1FEE0FFF1FFA83E9835D
S214008A108091390680FD02C00C94CC4D8091E40311
S214008A2081110C94CC4D8091E50381110C94CC4DB2
S214008A3080913F0A8F7711F00C94CC4D80915704AB
S214008A4090915804892B09F04BC0809110019091A9
S214008A5011018939934098F087B58A3F60F4809178
S214008A6056038150809356039091100525E0829F0F
S214008A709019112419C081E0809388035DC080910D
S214008A801001909111018436910528F587B586303E
S214008A90F0F0809156038F5F8093560390911005F7
S214008AA035E0839F9019112497BD87B5809588BDC2
S214008AB08CE291E09093CC048093CB048EE591E019
S214008AC090935804809357040E94841A35C081E01E
S214008AD08093870331C010928703109288032CC0BE
S214008AE010925503109254038091C003882321F0FE
S214008AF081E00E94101617C08091FC039091FD0340
S214008B00A091FE03B091FF03E4E0880F991FAA1F0F
S214008B10BB1FEA95D1F78093570390935803A09311
S214008B205903B0935A0380915704909158040197C3
S214008B309093580480935704909139068091DF03F0
S214008B4091FF3CC0823348F580911C019FEF980F3F
S214008B5090931C0181114EC080915701811107C06E
S214008B6080911904882319F088E2809357011092A7
S214008B7019048091FC039091FD03A091FE03B0912F
S214008B80FF038093F8039093F903A093FA03B0933E
S214008B90FB0381E080931C012DC0873458F180913F
S214008BA05701811107C080911904811103C087E223
S214008BB08093570188EC80931C0119C020912501F1
S214008BC030912601280F311D40912D05429FC0018E
S214008BD0439F900D1124AA2797FDA095BA2F809346
S214008BE0F8039093F903A093FA03B093FB0381E094
S214008BF080931904C0902101D0902201E0902301B7
S214008C00F090240160913C0470913D0480913E04F4
S214008C1090913F04A70196010E94089B49015A01C2
S214008C206091400470914104809142049091430405
S214008C30A70196010E94089BB401C9010E94120D6B
S214008C4020913601AC01249FC001259F900D112470
S214008C5064E670E00E94D39ACB016C33710514F081
S214008C608CE390E00E94CD7D90930B0680930A06DD
S214008C7080E2809320011092F7031092F603809111
S214008C801904882309F45DC68091C90384FD59C67A
S214008C908091C80382608093C803D0901D06D0FCE4
S214008CA004C08091390681FD0CC010928603109294
S214008CB085038091C903806C8093C90309811A815A
S214008CC0C2C28091C90381FF8EC2E0900C04F0906E
S214008CD00D040091400110914101C8010F9680904B
S214008CE04A0390904B03A0904C03B0904D038E1512
S214008CF09F0508F07DC080918703811179C080911F
S214008D00C90387FF0DC08091C9038F778093C9037D
S214008D108092F8039092F903A092FA03B092FB03B4
S214008D2040900106442091F1512C612C712C6091E9
S214008D30F8037091F9038091FA039091FB0324E6FF
S214008D4030E040E050E00E94089B4216530664065E
S214008D507506E4F480915701811116C06091FC03FA
S214008D607091FD038091FE039091FF032FE530E0A4
S214008D7040E050E00E94089B4216530664067506C3
S214008D801CF48AE1809357018DE32DC08091830304
S214008D9090918403459744F08092F8039092F903EB
S214008DA0A092FA03B092FB038091C903806480937B
S214008DB0C903C701801B910B0F9797FF03C09195BE
S214008DC0819591099093F7038093F6032091BF0352
S214008DD0222341F063E070E00E94D39A7093F70379
S214008DE06093F6038BE2809320011092F003FDC09F
S214008DF0C8010F97E816F906A0F58091880381113F
S214008E0030C08091C90386FD07C08091830390918E
S214008E108403843D9E4F6CF48091C9038F7B8093BE
S214008E20C9038092F8039092F903A092FA03B092D5
S214008E30FB038091C90380688093C903E01AF10A96
S214008E406FE0E60EF11CF7FE03C0F194E194F10822
S214008E50F194E194F108F092F703E092F6038DE2C4
S214008E60C2CF8DE3809320012091F103222309F4E1
S214008E7059C04091F2035091F3036091F40370914E
S214008E80F5038091F8039091F903A091FA03B0914D
S214008E90FB0384179507A607B707CCF48091C90390
S214008EA080648093C903822F90E09093F7038093A9
S214008EB0F6038AE08093F0038EE58093200180918C
S214008EC0C90387FF92C08091C9038F7720C04817D7
S214008ED059076A077B0734F58091C9038068809339
S214008EE0C903822F90E09195819591099093F7039D
S214008EF08093F60386EF8093F00386E78093200145
S214008F008091C90386FF71C08091C9038F7B8093CF
S214008F10C9038092F8039092F903A092FA03B092E4
S214008F20FB0363C08091C903807C09F45EC0809116
S214008F30F003811134C08091F8039091F903A09159
S214008F40FA03B091FB03B501A401475C510961091E
S214008F50710984179507A607B7073CF4D501C40125
S214008F60885C9109A109B10911C0B501A401495352
S214008F705F4F6F4F7F4F481759076A077B078CF480
S214008F80D501C40188539F4FAF4FBF4F8093F8035E
S214008F909093F903A093FA03B093FB0302C01092D8
S214008FA0F0038091C9038F738093C90310928603E0
S214008FB010928503D1FE06C084EF91E09093CC0416
S214008FC08093CB048091000481110FC08091FC0334
S214008FD09091FD03A091FE03B091FF03C397A105F6
S214008FE0B1051CF081E08093000420918503309148
S214008FF086038091F6039091F703280F391F30936C
S214009000860320938503C90137FF04C08827992764
S214009010821B930B853F91400CF4CEC04091F00329
S2140090208091F8039091F903A091FA03B091FB03A5
S214009030442369F14090F2035090F3036090F403E8
S2140090407090F5039201281B390B273FEFEF3E0780
S21400905064F02A3031054CF44092F8035092F9033C
S2140090606092FA037092FB0332C0552747FD509575
S214009070652F752F480F591F6A1F7B1F4093F803F3
S2140090805093F9036093FA037093FB0320C040915A
S2140090902D051216130654F42BEA429F212D112497
S2140090A02695820F911DA11DB11D09C02BEA429F76
S2140090B0212D11242695821B9109A109B1098093BF
S2140090C0F8039093F903A093FA03B093FB0310926E
S2140090D08603109285038091FC039091FD03A09176
S2140090E0FE03B091FF03AC01BD014F5F5340610921
S2140090F0710984169506A606B70624F49450A109AD
S214009100B1090EC0AC01BD0141505C4F6F4F7F4F9F
S214009110481559056A057B055CF49C5FAF4FBF4F49
S21400912080934A0390934B03A0934C03B0934D0354
S21400913080914A0390914B03A0914C03B0914D034C
S2140091404091F8035091F9036091FA037091FB0384
S2140091508C019D010F5F134021093109401751070B
S2140091606207730724F49450A109B1090FC08C015B
S2140091709D0105521A4F2F4F3F4F0417150726071C
S214009180370764F484529A4FAF4FBF4F8093F8036B
S2140091909093F903A093FA03B093FB03D1FE06C0A5
S2140091A084E690E09093CC048093CB048091F10306
S2140091B0811102C00E940F34809157049091580488
S2140091C0892BE9F180914A0390914B03A0914C03BF
S2140091D0B0914D038093F8039093F903A093FA039C
S2140091E0B093FB032CC081E00E94101680914A03C6
S2140091F090914B03A0914C03B0914D03805D974036
S214009200A109B1098093F8039093F903A093FA0398
S214009210B093FB0380913105882311F090E002C0E3
S2140092208FE790E0909341018093400129813A8135
S2140092303093E7032093E6038EE2809320010091AB
S214009240E6031091E70380914A0390914B03A091A7
S2140092504C03B0914D034091F8035091F90360918F
S214009260FA037091FB0390901D06481759076A078A
S2140092707B0714F090FC77C3E091C003209157045D
S2140092803091580440900A0650900B06A09079033F
S214009290B0907A0380904106E111D6C1E090E603D3
S2140092A0F090E703232B41F087011092840310927D
S2140092B08303C12CD12CAEC0841B950BA60BB70B19
S2140092C0823030E893073FEFA307B3072CF481E022
S2140092D090E8AFEFBFEF0AC08F3F4FE79407A105B6
S2140092E0B10524F08FEF9FE7A0E0B0E080937F0306
S2140092F090938003A0938103B093820320917F0311
S214009300309180034091810350918203309384030F
S21400931020938303A0913901B0E00E94459B20E290
S21400932030E040E050E00E94089B25306EEF3607A4
S2140093306FEF460756072CF484E09EEFAFEFBFEFC3
S21400934013C0211574E03707410551054CF42093EE
S2140093507F033093800340938103509382030CC0B5
S21400936080E094E0A0E0B0E080937F0390938003D9
S214009370A0938103B093820360907F037090800374
S214009380A0915403B0915503B7FD179673E0B595B9
S214009390A7957A95E1F7A2388FEFB80734F0A03892
S2140093A0B1052CF0A0E8B0E002C0A1E8BFEF209124
S2140093B03A0130E00E943F9B24E030E040E050E07D
S2140093C00E94089B21309FEF39073CF02F3F310564
S2140093D031F02CF020E031E002C020E03FEF809139
S2140093E0C903807C49F037FF02C02D5F3F4F35959B
S2140093F02795359527950BC090FE09C037FF02C00C
S214009400295F3F4F53E0359527955A95E1F763015D
S214009410C20ED31E70903801772009F444C06091C4
S2140094201C0470911D0480911E0490911F0420E876
S21400943030E040E050E00E94089BA72DB0E00E947C
S214009440459B20E230E040E050E00E94089B213837
S214009450AFEF3A074A075A072CF480E89FEFAFEFC2
S214009460BFEF13C02F3F31054105510509F04CF4FD
S21400947020937F03309380034093810350938203AD
S2140094800CC080E091E0A0E0B0E080937F03909372
S2140094908003A0938103B093820380917F03909111
S2140094A08003C80ED91E9601D7010E942A9B20E091
S2140094B032E040E050E00E94089B021B130B8091B4
S2140094C0F6039091F703892B09F062C01E141F045F
S2140094D00CF05EC02091830330918403B90137FFFE
S2140094E004C066277727621B730B80911404909143
S2140094F015046D33710528F4801791070CF047C0EA
S21400950024C06C53710945E0769567954A95E1F756
S2140095106031710510F06FE070E012161306ECF47F
S21400952020E130E0261B370B289FA001299F500D15
S214009530389F500D112484E0569547958A95E1F79B
S2140095404017510710F08A0123C080913E01909188
S2140095503F0180179107E4F41AC0605F7F4F409187
S2140095603E0150913F01649F9001659F300D749FAE
S214009570300D1124B4E036952795BA95E1F780179B
S21400958091072CF40217130718F0890101C08C010B
S214009590B801882777FD8095982FFDE0660F771F26
S2140095A0881F991FFA95D1F79201442737FD4095F9
S2140095B0542F0E94089B20937B0330937C03409398
S2140095C07D0350937E03C501880F991F8A0D9B1D4E
S2140095D0820F931F97FD039695958795959587958A
S2140095E090937A038093790320912905B4E02B9F0A
S2140095F090011124281739075CF4282D30E02451F7
S2140096003109220F331F220F331F8217930724F0CE
S21400961030937A03209379038091790390917A03AB
S21400962090FC7CC129813A812E193F0937FF02C080
S2140096302D5F3F4FA9015595479555954795480F7E
S214009640591F5A8349838FC1232B59F00091E60393
S2140096501091E703109284031092830380E090E059
S214009660F3C0841B950BA60BB70B823050E895070A
S2140096705FEFA507B5072CF481E090E8AFEFBFEFEA
S2140096800AC08F3F6FE79607A105B10524F08FEF5C
S2140096909FE7A0E0B0E080937F0390938003A093C1
S2140096A08103B093820320917F0330918003409121
S2140096B08103509182033093840320938303A09107
S2140096C03901B0E00E94459B20E230E040E050E0E7
S2140096D00E94089B253078EF37077FEF470757072C
S2140096E02CF484E098EFAFEFBFEF13C0211588E0AD
S2140096F03807410551054CF420937F0330938003CF
S21400970040938103509382030CC080E098E0A0E071
S214009710B0E080937F0390938003A0938103B0937F
S2140097208203C0907F03D0908003E0908103F09086
S2140097308203209154033091550340915B0350916E
S2140097405C0360913801649FC001659F900D1124F1
S21400975097FF02C081509F4F492F552747FD5A95C6
S214009760420F531F662757FD6095762F8091F003B2
S2140097702091F6033091F703882331F0B3E0220FEF
S214009780331FBA95E1F716C0E0912D05E29FC001A0
S214009790E39F900D1124E9E0E89F9001E99F300DCA
S2140097A0112437FF02C0215E3F4FA5E0359527956F
S2140097B0AA95E1F73093C2032093C1038091C103B9
S2140097C09091C203AA2797FDA095BA2F9A01AB01E4
S2140097D0281B390B4A0B5B0BA0913A01B0E00E94A4
S2140097E0459B20E230E040E050E00E94089B253098
S2140097F098EF39079FEF490759072CF484E098EF54
S214009800AFEFBFEF13C02115A8E03A074105510599
S2140098104CF420937F03309380034093810350934E
S21400982082030CC080E098E0A0E0B0E080937F0365
S21400983090938003A0938103B093820380917F036B
S214009840909180038C0D9D1D081B190B60911404CC
S21400985070911504601771074CF480913E01909149
S2140098603F01B801801791070CF4BC01882777FDEB
S2140098708095982FEDE0660F771F881F991FEA9551
S214009880D1F79201442737FD4095542F0E94089B3C
S21400989020937B0330937C0340937D0350937E0399
S2140098A0C501880F991F8A0D9B1D820F931F97FD78
S2140098B00396959587959595879590937A038093CB
S2140098C079032091C3033091C4032139314020F439
S2140098D02091C80325FF03C02091350502C02091C2
S2140098E0290530E0220F331F220F331F28173907B0
S2140098F05CF4282D30E024513109220F331F220F4B
S214009900331F8217930724F030937A03209379034A
S2140099108091790390917A0390FE10C0E981FA81D4
S2140099208E179F0724F0F0937A03E0937903209133
S214009930790330917A033A83298315C09A83898301
S21400994012C00E940F3449815A8150937A03409383
S21400995079038091C903806C8093C9038091C80302
S2140099608D7F8093C8038091C90381FF06C18091D3
S214009970750390917603A0917703B09178032091B8
S2140099800004892B8A2B8B2B11F02130B9F480919F
S214009990E6039091E703AA2797FDA095BA2F0EE05D
S2140099A0880F991FAA1FBB1F0A95D1F780937503CE
S2140099B090937603A0937703B0937803213019F43D
S2140099C082E080930004A0910A06B0910B062981DC
S2140099D03A810E942A9B20E030E240E050E00E945C
S2140099E0089B20937B0330937C0340937D03509326
S2140099F07E036091CA037091CB03809175039091AA
S214009A007603A0917703B0917803603AEFE07E0783
S214009A1018F56C017D01FAE0F694E794D794C794A4
S214009A20FA95D1F78C199D09AE09BF0969017A012B
S214009A3014E0CC0CDD1CEE1CFF1C1A95D1F78C0D27
S214009A409D1DAE1DBF1D8093750390937603A09356
S214009A507703B093780303C060347F4118F5809194
S214009A60750390917603A0917703B09178036C010B
S214009A707D017CE0F694E794D794C7947A95D1F765
S214009A808C199D09AE09BF09BA01A901E2E0440F8D
S214009A90551F661F771FEA95D1F7840F951FA61FDF
S214009AA0B71F2FC0609154037091550377FF03C012
S214009AB0719561957109643671055CF560914A038C
S214009AC070914B03E091F803F091F9036E1B7F0B46
S214009AD06130EFEF7E07ECF06F3F710509F0CCF4D4
S214009AE06C017D016EE0F694E794D794C7946A956E
S214009AF0D1F78C199D09AE09BF09820F931FA41FC9
S214009B00B51F8093750390937603A0937703B09365
S214009B1078030091750310917603209177033091B6
S214009B2078038EE036952795179507958A95D1F791
S214009B30C8011093E7030093E60360912F056623A0
S214009B4089F070E00E94D39AC801861B970B909309
S214009B50150480931404060F171F10933F010093FB
S214009B603E011FC010921504109214048FEF93E06C
S214009B7090933F0180933E0114C01092000410920F
S214009B807503109276031092770310927803109262
S214009B90E7031092E60305C08091C903806C8093AA
S214009BA0C9038091B50481FF3AC08091C5039091A6
S214009BB0C60329813A8137FF02C02D5F3F4F359596
S214009BC02795359527958217930768F42091E60325
S214009BD03091E703232B39F09C01220F331F220F0D
S214009BE0331F3A83298380914A0390914B03A091B7
S214009BF04C03B0914D038093F8039093F903A09320
S214009C00FA03B093FB0388E99AE39093CC0480931D
S214009C10CB0480E09EE09093AA028093A9028091F4
S214009C20090690E00A96880F991F880F991F0981E8
S214009C301A81081719070CF48C012091410630E0B0
S214009C4024513109220F331F220F331F20173107EB
S214009C500CF489012091DD04211108C0209119051A
S214009C602E3F20F02091B9042223D1F02091CA0380
S214009C703091CB03225031092033310588F4101679
S214009C80110674F421E030E03093CB032093CA032E
S214009C9020911905283218F429E0209357018C01E9
S214009CA08091CA04811102C00E942F821093340C46
S214009CB00093330C20919C0330919D03220F331F99
S214009CC0220F331F8091440690914506821B930B0A
S214009CD0013A1105BCF0A8015595479584179507DC
S214009CE00CF4AC01980117FF02C02F5F3F4F35956B
S214009CF02795319521953109CA014217530774F407
S214009D00C9010CC0813591053CF4803B3FEF9307B9
S214009D102CF480EB9FEF02C080E590E02091410696
S214009D2044E0249F90011124A901401B510B4817C1
S214009D3059070CF4CA01B801621B730B9A83898316
S214009D408617970714F47A8369838091120490919A
S214009D5013042091040630910506281B390B309316
S214009D60100620930F0670901F0640912404509111
S214009D7025046091260470912704772049F0D101CC
S214009D80A81BB90BCD01AA2797FDA095BA2F05C031
S214009D90C901AA2797FDA095BA2F840F951FA61F65
S214009DA0B71F8093240490932504A0932604B093B1
S214009DB027048091240490912504A0912604B09154
S214009DC0270481309A4FA105B10564F080E09AEF30
S214009DD0A0E0B0E08093240490932504A09326048A
S214009DE0B09327048091240490912504A091260422
S214009DF0B091270481159640AF4FBF4F64F480E0C2
S214009E0096E0AFEFBFEF8093240490932504A093D1
S214009E102604B093270440913E054987493080F4D4
S214009E20429F5001439FB00C1124B7FE03C057E079
S214009E30A50EB11C63E0B594A7946A95E1F710C02F
S214009E4089858695829F5001839FB00C1124B7FEAA
S214009E5003C063E0A60EB11CB594A794B594A7946E
S214009E6020903B0130903C01442437FC4094542C15
S214009E706091240470912504809126049091270413
S214009E80A20191010E94089BA20EB31E20912701F9
S214009E90A981BA81B7FF03C0B195A195B109B5955F
S214009EA0A795A00FB11F30E00E943F9B20E430E052
S214009EB040E050E00E94089B69017A013E872D87AA
S214009EC0C5012A153B050CF4C901AA24BB24AC180D
S214009ED0BD089C838B838A159B0514F4BC82AB82D9
S214009EE020911004309111048091F9059091FA05A3
S214009EF0821B930B9093F8058093F70540912004FE
S214009F00509121046091220470912304772051F02F
S214009F10EF81F885E21BF30B3F01882477FC8094E1
S214009F20982C05C03C01882477FC8094982C640EFD
S214009F30751E861E971E60922004709221048092E1
S214009F4022049092230440912004509121046091B1
S214009F5022047091230441305A4F6105710564F064
S214009F6040E05AEF60E070E04093200450932104F4
S214009F70609322047093230440912004509121049E
S214009F806091220470912304411556406F4F7F4F15
S214009F9064F440E056E06FEF7FEF40932004509368
S214009FA0210460932204709323043985393080F4A9
S214009FB0389F3001399F700C112477FE03C047E0AC
S214009FC0640E711C33E0759467943A95E1F710C0FF
S214009FD029852695289F3001299F700C112477FE2D
S214009FE003C053E0650E711C75946794759467946E
S214009FF060912004709121048091220490912304A2
S21400A000A20191010E94089B260D371D6D857E8555
S21400A010621773070CF4960129012A153B050CF408
S21400A02025018091CA04811102C00E942F8270917E
S21400A03081057F83872F90E0988B8F878091090614
S21400A040E4E08E9FD0011124BE87AD878091410643
S21400A05044E0849F900111243A872987A5E7CA2EF9
S21400A060A9E0DA2EB6E76B2EB9E07B2E80E2282E2A
S21400A07086E0382E64EB75E0798F688F90E4892E41
S21400A080912CA12CB12CE88DF98D3397A0811A164E
S21400A0900CF0ACC0A03461F09801BB27A7FDB095CA
S21400A0A00E942A9BA50194010E94089B790101C089
S21400A0B07801E88DF98D3297A081A03429F48B8140
S21400A0C09C81E80EF91E14C0A03C29F4AB81BC812B
S21400A0D0EA1AFB0A0DC02B813C81BB27A7FDB09571
S21400A0E00E942A9BA50194010E94089BE20EF31E83
S21400A0F0E88DF98D3197A081A03419F4E40CF51C95
S21400A10011C0A03C19F4E418F5080CC09201BB2756
S21400A110A7FDB0950E942A9BA50194010E94089B6A
S21400A120E20EF31EE88DF98DA081A03419F4298182
S21400A1303A8112C0A03C29F449815A81E41AF50AF2
S21400A1400DC029813A81BB27A7FDB0950E942A9BA6
S21400A150A50194010E94089BE20EF31EF3013297BC
S21400A160808181FD06C0D1018D919C918E159F0541
S21400A1705CF4F101808191818E0D9F1D97FD019603
S21400A1807C01F594E79413C0FF81F11105C0EE0C35
S21400A190FF1CE81AF90A0BC02F81223040F08E19F6
S21400A1A09F096F8578890E94D39AE60EF71E4D8523
S21400A1B05E854E155F053CF469857A856E157F05CC
S21400A1C024F47B0102C0ED84FE84C7019595879533
S21400A1D095958795D6018C93C70183709927880F2C
S21400A1E0F3018083D101ED92FC9204C0F601108247
S21400A1F0D3011C92BFE0CB0ED11CEFE06E0E711C9B
S21400A200F2E02F0E311C288D398D2C5F3F4F398F91
S21400A210288F39E2C3163AE0D30609F034CF6996A0
S21400A2200FB6F894DEBF0FBECDBFDF91CF911F9162
S21400A2300F91FF90EF90DF90CF90BF90AF909F90E0
S21400A2408F907F906F905F904F903F902F900895E3
S21400A25082E993E09F938F938CE996E99F938F937F
S21400A260E0915506F091560609950F900F900F90C5
S21400A2700F90089580911C0590E0880F991FFC01AF
S21400A280E25FF74F208131812D3E3F4F14F0109250
S21400A2905001FC01E25FF74F808191818A3B9F4F1E
S21400A2A0CCF480915001811115C081E0809350015B
S21400A2B080915A0A8F5F80935A0A853038F088EE6C
S21400A2C093E09093CC048093CB04089566E970E005
S21400A2D00C949F2608951F93CF93DF93C82F88234F
S21400A2E009F12AE833E03F932F932CE936E93F93B0
S21400A2F02F93E0915506F0915606099580911A0124
S21400A30090911B016BE270E00E94D39A6F5F60939E
S21400A31051010F900F900F900F90673018F086E065
S21400A3208093510190913F05923328F58091510119
S21400A330899F902D112490935301CC23F1F068EC63
S21400A34070E00E949F26809151011F928F932FE705
S21400A35033E03F932F932CE936E93F932F93E09118
S21400A3605506F091560609950F900F900F900F9096
S21400A3700F900F9002C09093530180918F05823307
S21400A38028F490915101989F802D112480936304A6
S21400A39090919005923340F480915101899F802DD1
S21400A3A011248093620402C090936204809153014A
S21400A3B020916304821720F42FEF280F2093630464
S21400A3C020916204281720F02FEF280F20936204B4
S21400A3D02091620430916304321728F0992319F013
S21400A3E0215020936304CC2309F45DC01AE0612F4A
S21400A3F00E94B39A1F929F931F928F938AE693E0D0
S21400A4009F938F93CCE9D6E9DF93CF93E0915506DF
S21400A410F09156060995809162042DB73EB7285FE5
S21400A4203F4F0FB6F8943EBF0FBE2DBF8823D9F01E
S21400A430612F0E94B39A1F929F931F928F9388E575
S21400A44093E09F938F93DF93CF93E0915506F0911F
S21400A450560609952DB73EB7285F3F4F0FB6F894BE
S21400A4603EBF0FBE2DBF809163048823E1F06AE0F3
S21400A4700E94B39A1F929F931F928F9382E493E059
S21400A4809F938F938CE996E99F938F93E09155065F
S21400A490F091560609958DB79EB708960FB6F894B4
S21400A4A09EBF0FBE8DBFDF91CF911F91089514B848
S21400A4B015B88AE08AB98FE58BB9199B08C04C9B02
S21400A4C004C085E18093540108C086E101C089E19B
S21400A4D08093540181E08093C00381E887B93E9A57
S21400A4E08FEF88B98BE184B981E085B9469A84B745
S21400A4F0877F84BF8091600088618093600010929F
S21400A500600084EC99E09093CC048093CB04109286
S21400A5100F0410920E041092130810921208109254
S21400A52011041092100410921304109212048091D9
S21400A5305401843128F084EC94E0A0E0B0E004C03C
S21400A5408BE095E0A0E0B0E080932101909322019B
S21400A550A0932301B0932401289880915401893157
S21400A56011F4299A01C029980E949D880E94768835
S21400A5700E94A3960E94137E0E947E1A81E00E948B
S21400A580FA8B0E940E820E94372087E00E9489186C
S21400A59080915401893111F4299A01C02998789440
S21400A5A00E94A224809154018431E8F42CE088E1D2
S21400A5B090E00FB6F894A895809360000FBE2093A5
S21400A5C0600000E113E0CCE9D6E91F930F93DF9318
S21400A5D0CF93E0915506F091560609950F900F908F
S21400A5E00F900F90F2CF8091DC0482608093DC04A1
S21400A5F01092DF04C4EFD1E00E94B43085E090E012
S21400A6000E9446885C018091DC0480FF2EC0219762
S21400A610209791F78EEF92E09F938F938CE996E9BF
S21400A6209F938F93E0915506F09156060995A1E801
S21400A630EA2EA9E0FA2E0F900F900F900F9007E7E2
S21400A64019E0B1EBCB2EB5E0DB2EC1E0D0E08AE01E
S21400A650482E512C9BEF692E92E0792E2CE9822E03
S21400A66026E9922E34E6332E06C0C5010E944F8896
S21400A670882349F2CCCFF601808118167CF0F801C9
S21400A680808187FF41C016C0F801808187FDF7CF23
S21400A6900E94B4308091DC0480FF06C0C5010E9491
S21400A6A04F88882389F3EBCFC5010E944F88882303
S21400A6B089F3F4CFCE01B2010E94BF9A9F938F9385
S21400A6C07F926F929F928F92E0915506F091560678
S21400A6D0099580915B048F5F80935B04F701319747
S21400A6E09081F7018081939D800D11240F900F902B
S21400A6F00F900F900F900F90882331F09091420AA0
S21400A700891710F48093420A2196F4E0CF0ED11CEC
S21400A7102FE0E20EF11C015F1F4FCD30D10509F08E
S21400A720AACF61EBE62E65E0F62E07E719E0C1E05A
S21400A730D0E07DEDC72E72E0D72EECE9AE2EE6E92E
S21400A740BE2EF2E09F2EF801808187FD17C0F7012C
S21400A750808118169CF4DF93CF93DF92CF92BF923E
S21400A760AF92E0915506F091560609959092C9046D
S21400A7700F900F900F900F900F900F90F801808120
S21400A780807880832196015F1F4FF4E0EF0EF11C66
S21400A790CD30D105C1F68091420A8F3F81F164E643
S21400A7A00E94B39A1F929F931F928F9387EC92E01A
S21400A7B09F938F93CCE9D6E9DF93CF93E09155062C
S21400A7C0F091560609958091420A8456EDB7FEB779
S21400A7D038960FB6F894FEBF0FBEEDBF833078F400
S21400A7E08EEA92E09F938F93DF93CF93E091550686
S21400A7F0F091560609950F900F900F900F9028DD58
S21400A80080911A0590915B04891728F49091400A6C
S21400A81090619093400A893008F088E08093B202F5
S21400A8208EE892E09F938F938CE996E99F938F939F
S21400A830E0915506F0915606099588EE93E00E9441
S21400A8404688EC010E94AB1A0F900F900F900F9065
S21400A850CE010E944F888823D9F389E892E09F931F
S21400A8608F938CE996E99F938F93E0915506F0912C
S21400A8705606099580E00E943427289880ED97E0D8
S21400A8809093CC048093CB0485E580935C0A8EE09D
S21400A89090E00E944323C82F8FE090E00E9443235D
S21400A8A02C2F30E0322F2227280F311D30936104E1
S21400A8B0209360048AE090E00E944323C82F8BE038
S21400A8C090E00E9443232C2F30E0322F2227280FBF
S21400A8D0311D30935F0420935E040F900F900F900D
S21400A8E00F902F3F3F4F31F08091600490916104AC
S21400A8F0019641F4109261041092600410925F0475
S21400A90010925E0480915F048F9380915E048F9313
S21400A910809161048F93809160048F9387E692E024
S21400A9209F938F938CE996E99F938F93E0915506BA
S21400A930F091560609950E94657588E893E1909314
S21400A940B1028093B002C1E0C0935B0A81E0C3DC31
S21400A950809142050E94D8177BDC80ED97E00E942C
S21400A96046888C018AEF90E00E94468883E08093B8
S21400A970230C10925A04809195052DB73EB7285F98
S21400A9803F4F0FB6F8943EBF0FBE2DBF84FDC09359
S21400A990640483E08093B302612C77247394C0E050
S21400A9A0D0E0F8E9EF2EFAE3FF2E212CACE03A2EA9
S21400A9B0B8E84B2EB3E15B2E88EAC82E81E6D82E87
S21400A9C090E8A92EB12C25E0822E912C12BC11BC49
S21400A9D08091EA04882311F04798FECF8091CF0437
S21400A9E0882309F4A6C280910F01882309F4A1C226
S21400A9F0F8948091CF0481508093CF04789480910E
S21400AA005A0A882311F036DC02C00E944C340E9499
S21400AA10B430289880910204882331F08091020493
S21400AA208150809302043EC080916F0080628093C4
S21400AA306F0010920F0810920E088091400A8860EE
S21400AA408093400A20911C0530E0220F331FF90145
S21400AA50EC5AF74F1182108280911D0590E0880F06
S21400AA60991FFC01EC5AF74F11821082F901E25F40
S21400AA70F74F11821082FC01E25FF74F11821082BD
S21400AA80E0911F05F0E0EE0FFF1FE25FF74F118227
S21400AA901082E0911E05F0E0EE0FFF1FE25FF74F19
S21400AAA0118210828091B0029091B102019790932A
S21400AAB0B1028093B002892B21F08091DD048823B7
S21400AAC091F18091B0029091B102892BC9F40E9455
S21400AAD03A8C9092B1028092B00280915D0C909177
S21400AAE05E0C019690935E0C80935D0C8091400AFC
S21400AAF081608093400A8091240C82608093240CAD
S21400AB008091A9029091AA02019671F480910104A5
S21400AB10882351F0D092CC04C092CB04B092AA0203
S21400AB20A092A90201C028980E9486198091CF049D
S21400AB308111FCC18091A904882319F00E94C97F65
S21400AB40F5C18091CA04811102C00E942F828091B3
S21400AB50AF0281110E94F3880E94E4960E94D79269
S21400AB60C8010E944F88882309F4DCC10C5E1F4F81
S21400AB700E94B68880914205863011F49DD604C0A6
S21400AB80843011F40E94C5728091C003882331F18D
S21400AB9080910405909105058C32914074F0809167
S21400ABA0330C9091340C81159240C4F480910405C6
S21400ABB090910505833593408CF0639432E3361507
S21400ABC070F480910104882331F080913F0A8062FE
S21400ABD080933F0A04C01092ED0301C0612C80915F
S21400ABE0DD04811105C0809119058E3130F009C051
S21400ABF08091400A82608093400A8091240C826093
S21400AC000FC08091CB049091CC04892B59F480918D
S21400AC10B0029091B102079728F08091240C8D7FA6
S21400AC208093240C80916404882351F08091020460
S21400AC30873930F0109264045092CC044092CB04D2
S21400AC408091B502882321F081508093B50229C0F7
S21400AC501092660A1092D5031092D4031092D30372
S21400AC601092D2031092D1031092D0038091020466
S21400AC70811117C08091A9029091AA02019689F4C9
S21400AC8080916404823069F0F092CC04E092CB04A8
S21400AC903092AA022092A902882319F082E08093BB
S21400ACA064048091A4022091430A893C60F081509C
S21400ACB08093A4028091400A8B7F8093400A216093
S21400ACC02093430A4CC08091C1088823E1F080910C
S21400ACD0400A84608093400A89E08093B90480919A
S21400ACE0A9029091AA02019671F48091010488232A
S21400ACF051F0F092CC04E092CB0480E098EA909376
S21400AD00AA028093A9021092690410926804109215
S21400AD10670410926604109265041092B4088FEFD0
S21400AD20809329091092F3081092F2081092F50801
S21400AD301092F408EFEFFFEFF093F108E093F008BD
S21400AD401092F1031092F2031092F3031092F403A0
S21400AD501092F5032E7F2093430A1092A4022091AE
S21400AD601A0130911B0180915301E82FF0E0E217A1
S21400AD70F307FCF02091C90320622093C9032091B9
S21400AD80A9023091AA022F3F3F4F99F420911A0151
S21400AD9030911B012B30310564F020E737E130930A
S21400ADA0CC042093CB0480E093E09093AA02809397
S21400ADB0A902209159042F5F20935904213309F0EA
S21400ADC07BC01092590420917E04222319F0215052
S21400ADD020937E042091C90321FF0BC020915C04C0
S21400ADE030915D042F5F3F4F30935D0420935C04E9
S21400ADF002C0CAEAD5E02091CA033091CB032115E0
S21400AE00344008F04BC08091060590910705A0914C
S21400AE100805B09109054091120150911301609107
S21400AE2014017091150184179507A607B7076CF4EF
S21400AE304091060550910705609108057091090537
S21400AE404B5F5F4F6F4F7F4F21C0809106059091FB
S21400AE500705A0910805B09109054091120150918F
S21400AE6013016091140170911501481759076A077C
S21400AE707B07A4F4409106055091070560910805EC
S21400AE8070910905455051096109710940930605FD
S21400AE9050930705609308057093090520911A01E1
S21400AEA030911B01CF010196821793072CF48091F5
S21400AEB0C9038F7D8093C9032196C237EBE0DE0776
S21400AEC089F58091600490916104019690936104E5
S21400AED08093600420915E0430915F042F5F3F4FA3
S21400AEE030935F0420935E04692F8EE090E00E940A
S21400AEF04523609160048FE090E00E9445236091B6
S21400AF005F048AE090E00E94452360915E048BE037
S21400AF1090E00E94452384E190E00E9446888C01E0
S21400AF20C0E0D0E00E9409740E946820772019F0E3
S21400AF307A94711010C00E943D87882319F0ECE0C7
S21400AF407E2E44CD8091CA04882311F0712C3ECD0C
S21400AF500E942F82FBCF8091CA04811137CD0E94B8
S21400AF602F8234CD90917B048FE0989FF0011124BE
S21400AF70EC58F64F878120917A04281728F480939E
S21400AF807A049093790408C0882331F020917804DD
S21400AF90821710F4809378049F5F9C3018F4909387
S21400AFA07B04089510927B04809178048F3F19F0FB
S21400AFB08093810402C01092810480917A04809369
S21400AFC0820480917904809380048FEF80937804C4
S21400AFD010927A0410927904089595E1899F802D45
S21400AFE011240E94A5148AE39AE09F938F938BE71F
S21400AFF094E19F938F93E0915506F091560609953C
S21400B0000F900F900F900F900895CF93C091570117
S21400B010C0937F049091C9038091770495FF10C078
S21400B0209091BF03992331F090914205963011F428
S21400B030EEE001C0E0E1CC2339F1803129F523C0F0
S21400B0402091B9049FEF920F9232A8F490910104D8
S21400B05030E0911108C0F901EE0FFF1FEF5AF54FCF
S21400B060E491E11108C0F901EE0FFF1FE05BF54F18
S21400B070E491E11109C09091960596FD08C01092E2
S21400B0805701C0E004C0EC2FE0937F04CE2F8C1352
S21400B0900BC080917504909176040E944F88882397
S21400B0A0B9F080EA9FE002C080ED97E00E944688F3
S21400B0B09093760480937504CC2331F080915701E9
S21400B0C0C81302C010925701C09377048C2F01C09A
S21400B0D080E0CF91089580910709893851F138F4BE
S21400B0E08230F9F0833009F1813039F416C08D389A
S21400B0F081F08E3851F08A3821F020E080E090E030
S21400B1001BC02CE281E997E017C02CE287E596E0A9
S21400B11013C02CE283E896E00FC024E086E792E0B6
S21400B1200BC024E089E892E007C029E08FEA96E0A9
S21400B13003C02CE289EB96E04091FC08EEEFF8E0C5
S21400B140342F5091FD08632F641B651748F432179F
S21400B15038F45191DC01A30FB11D5C933F5FF1CF32
S21400B1600895809120018B3211F08D32C1F4409108
S21400B1702D052091F6033091F703429FC001439FAF
S21400B180900D112463E070E00E94D39ACB01805D9D
S21400B1909A486F5C7F4F61337105C0F10895803225
S21400B1A009F58091C90381FF34C020917C04309159
S21400B1B07D04C901805D9A48813345E7940738F0DD
S21400B1C0843945E7940728F1845691090895803319
S21400B1D045E7940701F18D3C9447D8F4C9018C5695
S21400B1E09A4808958E3539F48091F1032AE0829FBB
S21400B1F0C001112408C0863761F42091F10336EFB0
S21400B2003203C0011124805D9A4808958EEF94E7BA
S21400B210089580E395E70895CF938A3809F4A7C187
S21400B22018F4893841F045C38D3809F486C28E3843
S21400B23009F4EDC13EC3E9DEC82F80939307609101
S21400B240FC037091FD038091FE039091FF0324E6BA
S21400B25030E040E050E00E94089B2C503E4F309378
S21400B260BF062093BE06C11102C07BDF02C080E38A
S21400B27095E79093C5068093C4068091C406909186
S21400B280C5069093C7068093C6069093C90680931A
S21400B290C8068091BE069091BF062091C2063091E6
S21400B2A0C3068217930724F49093C3068093C206BE
S21400B2B02091C0063091C1062817390724F49093D0
S21400B2C0C1068093C0061092BB0689EB96E0909369
S21400B2D0F1028093F002809120018093DF06809136
S21400B2E0C80380FF02C083E401C080E28093E006CA
S21400B2F02091B904222311F1822F6AE00E94B39AAA
S21400B300805D8093CA06905D9093CB068AE3809317
S21400B310CC06ADECB6E031E1239FC001112420E05D
S21400B32030E08A56954FFC01E20FF31FE491ED934F
S21400B3302F5F3F4F20313105B1F7C3C08091BF0367
S21400B340882361F0ECE1FDE0AAECB6E084918D93F1
S21400B35031968DE0E133F807C9F74CC18091C903F7
S21400B36085FF0CC0E2E3FDE0AAECB6E084918D9385
S21400B37031969DE0E734F907C9F73CC180917E0419
S21400B380882369F1E9EEFCE0AAECB6E084918D939F
S21400B39031963CE0E03FF307C9F780915201805DAB
S21400B3A08093CE06E7E9F5E0A1EDB6E081918D93B6
S21400B3B085E0E33AF807D1F78091C70381FF0BC019
S21400B3C082E48093DB068FE48093DC0681E480933E
S21400B3D0DD0684E579C080E28093DC0673C0409188
S21400B3E08A04442309F473C087E58093CA0680E57F
S21400B3F08093CB0620E22093CC0680918B043AE023
S21400B400632F0E94B39A805D8093CD06905D9093E3
S21400B410CE068FE28093CF06842F0E94B39A805D7B
S21400B4208093D006905D9093D1062093D2068091AB
S21400B430830490918404893E33E0930740F068EEDD
S21400B44073E00E94BF9A605D6093D30602C02093AB
S21400B450D3068536910540F064E670E00E94BF9AF8
S21400B460605D6093D40603C020E22093D4066AE0B1
S21400B47070E00E94BF9A605D6093D506805D809301
S21400B480D6068DE68093D70690E29093D8068091F4
S21400B4908904853640F064E60E94B39A805D809306
S21400B4A0D906892F02C09093D9066AE00E94B39A03
S21400B4B0805D8093DA06905D9093DB0683E7809349
S21400B4C0DC0680E28093DD068093DE0693C08091E2
S21400B4D0B50484FF0CC0E6E0FDE0AAECB6E084917B
S21400B4E08D9331968DE0EB31F807C9F783C08091D4
S21400B4F0ED0381111BC0AAECB6E080E090E0FC01F1
S21400B500E65BF24FE491ED93019681319105B9F730
S21400B51082E38093DA068EE28093DB0680E38093F4
S21400B520DC0688E38093DD0681E6CECF8091C703F4
S21400B53081FF11C0E0EFFCE0AAECB6E094919D9389
S21400B54031969DE0E530F907C9F780FF53C082E5E4
S21400B5508093CA064FC0E8E4FDE0AAECB6E09491FA
S21400B5609D9331963DE0ED35F307C9F7EECF609138
S21400B570FC037091FD038091FE039091FF0324E687
S21400B58030E040E050E00E94089B2C503E4F309345
S21400B590A7072093A6078091930781112DC0E1DDB0
S21400B5A09093A9078093A80788E78093AA078091BD
S21400B5B0B5088093AB078091B40881FF20C084E46F
S21400B5C08093AC0781E997E09093F1028093F002B4
S21400B5D0809196028093B8078091AC078093BA0753
S21400B5E08091BA089091BB0897FD0196959587952E
S21400B5F08093AD078CE25EC180E395E7D1CF809162
S21400B600B608833011F480E2DBCF81E2D9CFAADC22
S21400B6106091FC037091FD038091FE039091FF03FF
S21400B62024E630E040E050E00E94089B2C503E4F5D
S21400B630309372062093710680911A0190911B0137
S21400B64090936C0680936B0680911A0190911B0173
S21400B65090936E0680936D06809142069091430605
S21400B66097FD01969595879580935D068093640671
S21400B6708091BA089091BB0897FD01969C0135957C
S21400B6802795209362068091B8089091B90864E1E6
S21400B69070E00E94BF9A60936306209369066093E9
S21400B6A06A0680919307811102C05BDD02C080E3C9
S21400B6B095E790937A068093790688E780937B06D1
S21400B6C080911A0190911B019093760680937506DF
S21400B6D0809181048C5E80936F06809182048C5EDC
S21400B6E08093700680911705909118056AE070E0C7
S21400B6F00E94BF9A709378066093770680919307AE
S21400B70080935906809113059091140590937406C2
S21400B7108093730687E596E09093F1028093F0029B
S21400B72080915C0490915D046CE370E00E94BF9A87
S21400B73060937E0680937F065DCF14DC8091B80808
S21400B7409091B90864E670E00E94BF9A70939906DB
S21400B75060939806809142069091430697FD019665
S21400B760959587958093890680914E0190914F011B
S21400B77097FD01969595879580938A0680915D0C36
S21400B78080938D068091BA089091BB0897FD01962C
S21400B7909595879580938E0640911A0150911B01CE
S21400B7A02091530130E0C9010296841795076CF486
S21400B7B080911A0190911B01821B930B0297982F80
S21400B7C0990F980F9093950602C010929506809157
S21400B7D09506853618F084E6809395068091B90420
S21400B7E090E090939706809396066091FC03709184
S21400B7F0FD038091FE039091FF0324E630E040E0D5
S21400B80050E00E94089B2C503E4F30939B0620939E
S21400B8109A0680911A0190911B019093900680934E
S21400B8208F0680911A0190911B0190939206809347
S21400B830910680919307811102C093DC02C080E3D9
S21400B84095E790939D0680939C0680919307885871
S21400B85080939E0680911A0190911B019093A206F8
S21400B8608093A106809181048C5E809393068091DC
S21400B87082048C5E8093940680911705909118053B
S21400B8806AE070E00E94BF9A7093A4066093A306D5
S21400B8901092850680911305909114059093A0064A
S21400B8A080939F0683E896E09093F1028093F002DF
S21400B8B0A1CE80E0CF9108952F923F924F925F9253
S21400B8C06F927F928F929F92AF92BF92CF92DF92AB
S21400B8D0EF92FF920F931F93CF93DF9300D000D089
S21400B8E0CDB7DEB7209154033091550340917C04C8
S21400B8F050917D0467E0649FC001659F900D112400
S21400B900820F931F97FD079633E0959587953A9596
S21400B910E1F790937D0480937C048091740490E01A
S21400B9208730910510F00C94466BFC01E85AFF4FE7
S21400B9304091730481E0840F809373040C94249BDD
S21400B940042F10E00131110510F00C94436BF80140
S21400B950E15AFF4F0C94249B8091C90385FF1FC0BA
S21400B96080E00E94A51480911A0190911B01E0913D
S21400B9701A01F0911B012AE030E0B9010E94D39A27
S21400B9809F938F93CF01B9010E94D39A7F936F93B1
S21400B9908DE29AE09F938F938CE994E11EC080E03D
S21400B9A00E94A51480911A0190911B01E0911A0142
S21400B9B0F0911B012AE030E0B9010E94D39A9F93D0
S21400B9C08F93CF01B9010E94D39A7F936F9380E241
S21400B9D09AE09F938F938BE794E19F938F93E091E8
S21400B9E05506F091560609950FB6F894DEBF0FBEC1
S21400B9F0CDBF8091390680FF34C08091190488231A
S21400BA00D1F08AE00E94A514809120011F928F93A6
S21400BA106091FC037091FD038091FE039091FF03FB
S21400BA2024E630E040E050E00E94089B3F932F93CE
S21400BA3084E19AE032C68AE00E94A5146091FC0375
S21400BA407091FD038091FE039091FF0324E630E0A1
S21400BA5040E050E00E94089B3F932F9389E09AE0D5
S21400BA601BC78AE00E94A5148FEF99E00C946569C5
S21400BA708091C90385FF16C085E10E94A5148091B8
S21400BA805C0490915D046CE370E00E94BF9A9F9303
S21400BA908F937F936F9382EF99E09F938F938CE9B8
S21400BAA094E115C085E10E94A51480915C049091F4
S21400BAB05D046CE370E00E94BF9A9F938F937F9320
S21400BAC06F9385EE99E09F938F938BE794E19F9316
S21400BAD08F93E0915506F091560609950FB6F894A7
S21400BAE0DEBF0FBECDBF8FE10E94A5141F9280E679
S21400BAF08F93809143068F93809142068F938AEDB1
S21400BB0099E09F938F930BE714E11F930F93E091B7
S21400BB105506F091560609958091C8030FB6F8941D
S21400BB20DEBF0FBECDBF80FF06C089E20E94A5140F
S21400BB3088ED99E02FC389E20E94A51486ED99E06E
S21400BB40E9C08091C90385FF10C08AE20E94A5144F
S21400BB50809118058F93809117058F938EEC99E04E
S21400BB609F938F938CE994E10FC08AE20E94A514FC
S21400BB70809118058F93809117058F9386EC99E036
S21400BB809F938F938BE794E19F938F93E091550655
S21400BB90F091560609950F900F900F900F900F900A
S21400BBA00F9086E30E94A5148091130590911405CA
S21400BBB06AE070E00E94BF9A9F938F937F936F9383
S21400BBC08AEB99E09F938F938BE794E19F938F93F3
S21400BBD0E0915506F091560609950FB6F894DEBF2B
S21400BBE00FBECDBF0C94486B89E00E94A51488EB6D
S21400BBF099E09F938F930BE714E11F930F93E091C7
S21400BC005506F091560609958EE10E94A51486EB1E
S21400BC1099E09F938F931F930F93E0915506F091B1
S21400BC205606099583E30E94A51484EB99E09F933A
S21400BC308F931F930F93E0915506F0915606099542
S21400BC408FE30E94A5148EE999E09F938F931F932C
S21400BC500F93E0915506F091560609958EE70E94DF
S21400BC60A51488E899E09F938F931F930F930C94E5
S21400BC70EC668091A402882309F45EC08DE50E94DC
S21400BC80A51486E899E09F938F930BE714E11F9322
S21400BC900F93E0915506F0915606099584E50E94AB
S21400BCA0A5148091B5081F928F938DE799E09F9316
S21400BCB08F931F930F93E0915506F09156060995C2
S21400BCC08EE50E94A5148091B8089091B9086AE0A4
S21400BCD070E00E94BF9A7F936F9383E799E09F93EB
S21400BCE08F931F930F93E0915506F0915606099592
S21400BCF00FB6F894DEBF0FBECDBF8091B608833076
S21400BD00A9F48091B40881FF0BC08BE50E94A514AE
S21400BD1080E799E09F938F931F930F930C946B6922
S21400BD208BE50E94A5148DE699E0F4CF8BE50E9482
S21400BD30A5148AE699E0B5C684E027C38091A402DC
S21400BD40882309F461C080917204882309F445C0F1
S21400BD5089E60E94A5148091B8041F928F938FE500
S21400BD6099E09F938F932BE7E22E24E1F22EFF9229
S21400BD70EF92E0915506F0915606099585E70E94E8
S21400BD80A514809196021F928F931F9210E61F9320
S21400BD908091BB088F938091BA088F9383E599E0D2
S21400BDA09F938F93FF92EF92E0915506F09156067F
S21400BDB0099582E70E94A5148091B6041F928F937E
S21400BDC01F921F938091B7041F928F9383E499E08C
S21400BDD09F938F93FF92EF9211C689E60E94A51457
S21400BDE0809196021F928F931F9280E68F93809188
S21400BDF0BB088F938091BA088F938091B7081F92E3
S21400BE008F938AE299E088C185E0BFC28091B90429
S21400BE108823E9F19091ED02992301F18332F0F441
S21400BE2087E0DBD883E90E94A5148091B9041F92AD
S21400BE308F938FE199E09F938F938BE894E19F9384
S21400BE408F93E0915506F091560609950F900F9046
S21400BE500F900F900F900F900C94486B83E90E9400
S21400BE60A51489E199E09F938F930BE714E11F9344
S21400BE700F93E0915506F091560609951F921F9272
S21400BE808091B904E1E18E9FC0011124B6C3809170
S21400BE90C90385FF07C084E90E94A51486E099E0DF
S21400BEA00C94656983E90E94A51480EF98E00C94D1
S21400BEB065698091860C823029F40E94AA1485E078
S21400BEC00C943C6B863069F480917204882321F0D0
S21400BED0109272040C94406B81E0809372040C9470
S21400BEE0406B883011F00C94406B0E94AA1481E0DD
S21400BEF00C943C6B50E04131510510F00C94436BB0
S21400BF00FA01E059FF4F0C94249B8091C90385FFEA
S21400BF1032C080E00E94A51480911A0190911B0106
S21400BF2000911A0110911B01E0915C04F0915D04F0
S21400BF30209118052F93209117052F932AE030E0C3
S21400BF40B9010E94D39A9F938F93C801B9010E94AA
S21400BF50D39A7F936F93CF016CE370E00E94BF9AF1
S21400BF609F938F937F936F9385ED98E09F938F9326
S21400BF708CE994E1F8C180E00E94A51480911A0132
S21400BF8090911B0100911A0110911B01E0915C0435
S21400BF90F0915D04209118052F93209117052F939B
S21400BFA02AE030E0B9010E94D39A9F938F93C8018C
S21400BFB0B9010E94D39A7F936F93CF016CE370E030
S21400BFC00E94BF9A9F938F937F936F938AEB98E01C
S21400BFD0C6C185E10E94A5141F9280E68F938091CA
S21400BFE043068F93809142068F9380EB98E09F9351
S21400BFF08F930BE714E11F930F93E0915506F09192
S21400C00056060995809139060FB6F894DEBF0FBE26
S21400C010CDBF80FF45C0809119048823E1F08FE1F1
S21400C0200E94A5146091FC037091FD038091FE03AD
S21400C0309091FF0324E630E040E050E00E94089B29
S21400C0403F932F9387EA98E09F938F938BE894E132
S21400C0509F938F9319C08FE10E94A5146091FC03F3
S21400C0607091FD038091FE039091FF0324E630E07B
S21400C07040E050E00E94089B3F932F938EE998E0A3
S21400C0809F938F931F930F93E0915506F09156065A
S21400C09009950F900F900F900F900F900F9012C071
S21400C0A08FE10E94A51484E998E09F938F931F93D5
S21400C0B00F93E0915506F091560609950F900F9054
S21400C0C00F900F9089E20E94A514809120011F9284
S21400C0D08F9381E998E0E0C38091A402882341F120
S21400C0E08BE20E94A514809196021F928F938091F6
S21400C0F0B8089091B9086AE070E00E94BF9A7F93F2
S21400C1006F931F9280E68F938091BB088F938091E8
S21400C110BA088F938AE798E09F938F938BE794E112
S21400C1209F938F93E0915506F0915606099555CD4D
S21400C13082E02BC18FE30E94A51480911305909195
S21400C1401405209116052F93209115052F936AE06C
S21400C15070E00E94BF9A9F938F937F936F9386E6BB
S21400C16098E09F938F930BE714E11F930F93E09152
S21400C1705506F091560609958091C8030FB6F894B7
S21400C180DEBF0FBECDBF80FF0BC082E50E94A514A8
S21400C19083E698E09F938F938BE894E10C9469690B
S21400C1A082E50E94A51480E698E0B4CD8091A402B2
S21400C1B0882309F44CC084E50E94A5148091B50834
S21400C1C01F928F938091B7081F928F938DE498E00B
S21400C1D09F938F930BE714E11F930F93E0915506FF
S21400C1E0F091560609950FB6F894DEBF0FBECDBF88
S21400C1F08091B608833051F484E60E94A51487E443
S21400C20098E09F938F931F930F930BC084E60E9432
S21400C210A51481E498E09F938F938CE994E19F9313
S21400C2208F93E0915506F091560609950F900F9062
S21400C2300F900F908091B40881FD02C00C94486B5B
S21400C24084E60E94A5148BE398E00C94656984E567
S21400C2500E94A51485E298E00C94656980917104AB
S21400C260882309F464C089E60E94A5144090550608
S21400C2705090560683E00E944E203C0183E00E94C8
S21400C2804E204C0182E00E944E205C0182E00E941B
S21400C2904E206C0181E00E944E207C0181E00E94CD
S21400C2A04E208C0180E00E944E201C0180E00E94FF
S21400C2B04E20FC012AE030E0C301B9010E94BF9A7B
S21400C2C09F938F93C401B9010E94BF9A7F936F9387
S21400C2D0C501B9010E94BF9A9F938F93C601B90109
S21400C2E00E94BF9A7F936F93C701B9010E94BF9ABD
S21400C2F09F938F93C801B9010E94BF9A7F936F9353
S21400C300C101B9010E94BF9A9F938F93CF01B901D3
S21400C3100E94BF9A7F936F9388E098E09F938F93D5
S21400C3208BE794E19F938F93F201099556CC89E6AB
S21400C3300E94A5141F9280E68F938091A8091F92F1
S21400C3408F93809199091F928F9380918A091F92EB
S21400C3508F9380917B091F928F9385EF97E09F9331
S21400C3608F938BE794E19F938F93E0915506F0911E
S21400C3705606099532CC9091710480911A0599233E
S21400C38009F4D9C08430C9F486E00F900F900F905E
S21400C3900F90DF91CF911F910F91FF90EF90DF905C
S21400C3A0CF90BF90AF909F908F907F906F905F9050
S21400C3B04F903F902F900C94ED578630D9F58EE72E
S21400C3C00E94A514A0905506B090560685E00E94DF
S21400C3D04E206C0185E00E944E207C0184E00E9485
S21400C3E04E208C0184E00E944E20FC012AE030E0C2
S21400C3F0C601B9010E94BF9A9F938F93C701B901E6
S21400C4000E94BF9A7F936F93C801B9010E94BF9A9A
S21400C4109F938F93CF01B9010E94BF9A7F936F932A
S21400C42086EE97E09F938F938BE794E19F938F938D
S21400C430F5017CCE873010F40C94486B8EE70E9492
S21400C440A51420915506309156063A83298388E034
S21400C4500E944E203C0188E00E944E204C0187E05E
S21400C4600E944E205C0187E00E944E206C0186E010
S21400C4700E944E207C0186E00E944E208C0185E0C2
S21400C4800E944E209C838B8385E00E944E202C01C8
S21400C49084E00E944E201C0184E00E944E20FC0195
S21400C4A02AE030E0C301B9010E94BF9A9F938F93A0
S21400C4B0C401B9010E94BF9A7F936F93C501B90169
S21400C4C00E94BF9A9F938F93C601B9010E94BF9A9C
S21400C4D07F936F93C701B9010E94BF9A9F938F9372
S21400C4E0C801B9010E94BF9A7F936F938B819C818C
S21400C4F0B9010E94BF9A9F938F93C201B9010E940F
S21400C500BF9A7F936F93C101B9010E94BF9A9F9310
S21400C5108F93CF01B9010E94BF9A7F936F9389ECE6
S21400C52097E09F938F938BE794E19F938F93E98196
S21400C530FA81099552CB843009F426CF863089F4E7
S21400C5408EE70E94A5141F9280E68F938091C609FD
S21400C5501F928F938091B7091F928F9386EB97E077
S21400C560B3C0873010F40C94486B8EE70E94A51475
S21400C5701F9280E68F938091E4091F928F9380919B
S21400C580D5091F928F938091C6091F928F93809131
S21400C590B7091F928F9383EA97E0E1CE8091B904A2
S21400C5A0882391F19091ED02992379F0833268F413
S21400C5B087E00E94ED5783E90E94A5148091B90494
S21400C5C01F928F9388E997E036CC83E90E94A514E2
S21400C5D082E997E09F938F930BE714E11F930F93E5
S21400C5E0E0915506F091560609951F921F9280918C
S21400C5F0B904F1E18F9FC00111248A56954F9F938D
S21400C6008F931F930F935AC78091C90385FF06C067
S21400C61084E90E94A5148FE797E057C683E90E9435
S21400C620A51489E697E051C68091860C863079F489
S21400C63080917104882319F01092710403C081E080
S21400C6408093710485E00E94ED5786E041C28830F1
S21400C65009F498C3813011F00C94406B0E94AA1420
S21400C660109274040C943E6B842F90E081319105F7
S21400C67010F00C94436BFC01EF57FF4F0C94249B77
S21400C68080E00E94A51487E995E09F938F938091A0
S21400C69052011F928F938AE597E09F938F938BE8C2
S21400C6A094E194CA85E10E94A5148091530125EA7D
S21400C6B035E03F932F936AE00E94B39A1F929F93B0
S21400C6C01F928F9389E497E09F938F938BE794E173
S21400C6D09F938F9393C18AE20E94A51484E497E007
S21400C6E09F938F930BE714E11F930F93E0915506EA
S21400C6F0F09156060995809139060F900F900F908D
S21400C7000F90E0915506F091560680FF35C0909147
S21400C71028058091DF0391FD05C01F928F938AE361
S21400C72097E0DFC0833318F083E397E002C08CE223
S21400C73097E09F938F931F930F9309950F900F90F9
S21400C7400F900F9090911D06E0915506F0915606B9
S21400C7508091DF0390FF05C01F928F9386E297E0DB
S21400C76004C01F928F9380E297E09F938F938BE78E
S21400C77094E19F938F9369CB87E197E0B9C08FE3ED
S21400C7800E94A51483E197E09F938F930BE714E133
S21400C7901F930F93E0915506F091560609950F905A
S21400C7A00F900F900F9080917F05E0915506F091C5
S21400C7B05606811103C08AE097E09AC08091D6039E
S21400C7C0882319F083E097E002C08CEF96E09F93F1
S21400C7D08F931F930F9309950F900F900F900F90C4
S21400C7E08091950586FF54C785EF96E06EC584E573
S21400C7F00E94A51480EF96E09F938F930BE714E1B9
S21400C8001F930F93E0915506F09156060995809177
S21400C81039060F900F900F900F9085FD0BC087EE96
S21400C82096E09F938F931F930F93E0915506F09198
S21400C83056061FC080916C050E94FA30E09155069E
S21400C840F0915606823318F480EE96E00EC0843BD4
S21400C85018F089ED96E009C08091950585FF03C024
S21400C86082ED96E002C08BEC96E09F938F931F9329
S21400C8700F9309950F900F900F900F90809183055E
S21400C880882309F405C78EE50E94A51480918305C8
S21400C8901F928F9380EC96E09F938F938BE794E1A3
S21400C8A0CECA89E60E94A51486EB96E09F938F93E6
S21400C8B00BE714E11F930F93E0915506F09156068F
S21400C8C00995809182050F900F900F900F90E09140
S21400C8D05506F0915606882349F01F928F9382EBF7
S21400C8E096E09F938F931F930F93AFCA8CEA96E0C0
S21400C8F09F938F931F930F93F2C4809170048111BE
S21400C9004CC08EE70E94A514E0911D05F0E0EE0FE6
S21400C910FF1FE25FF74F20813181E0911C05F0E0B8
S21400C920EE0FFF1FE25FF74F8081918140912F014C
S21400C9301F924F933F932F939F938F9388E996E090
S21400C9409F938F930BE714E11F930F93E091550687
S21400C950F0915606099583E90E94A514E0911F05FB
S21400C960F0E0EE0FFF1FE25FF74F20813181E0918C
S21400C9701E05F0E0EE0FFF1FE25FF74F808191810A
S21400C9803F932F9381589F4F9F938F9389E896E00C
S21400C9909F938F931F930F931BC98EE70E94A51436
S21400C9A0809105041F928F93809104041F928F93A9
S21400C9B0809103041F928F9385E796E09F938F9351
S21400C9C00BE714E11F930F93E0915506F09156067E
S21400C9D0099583E90E94A514809108041F928F93FD
S21400C9E0809107041F928F93809106041F928F9365
S21400C9F081E696E09F938F931F930F93E0915506E1
S21400CA00F09156060995E9C88091ED02882309F44D
S21400CA103FC68EE70E94A5148091390686FD11C098
S21400CA2082E596E09F938F938CE994E19F938F9392
S21400CA30E0915506F091560609950F900F900F90CD
S21400CA400F90809193058F7089F088E496E09F930D
S21400CA508F938CE994E19F938F93E0915506F09124
S21400CA60560609950F900F900F900F9080913906FB
S21400CA7082FF11C083E496E09F938F938CE994E144
S21400CA809F938F93E0915506F091560609950F9067
S21400CA900F900F900F908091390683FDF9C585E3BE
S21400CAA096E09F938F938CE994E113C41091860CC3
S21400CAB0163089F480917004882319F0109270045F
S21400CAC003C081E08093700486E00E94ED5787E003
S21400CAD00E94ED57D5C5183021F40E94AA1483E0B1
S21400CAE0CBC5113009F0CCC50E94AA14109374046B
S21400CAF0C5C54230C1F128F4442339F04130D9F09D
S21400CB00C2C5463008F46BC0BEC580E00E94A514BE
S21400CB1086E296E09F938F930BE714E11F930F93A3
S21400CB20E0915506F0915606099585E10E94A514F8
S21400CB3081E196E04DC180918A04882371F08EE7EA
S21400CB400E94A51480918A041F928F9380918B0473
S21400CB501F928F938FEF95E035C88EE70E94A5143D
S21400CB608CEE95E0B2C383E90E94A51480911A0169
S21400CB7090911B01E0911A01F0911B012AE030E030
S21400CB80B9010E94D39A9F938F93CF01B9010E9457
S21400CB90D39A7F936F9382EE95E09F938F930BE7E4
S21400CBA014E11F930F93E0915506F09156060995F0
S21400CBB08EE90E94A5148FEA96E09F938F938FEDDF
S21400CBC095E09F938F931F930F93E0915506F091F6
S21400CBD0560609950FB6F894DEBF0FBECDBF8091FE
S21400CBE056018823E9F180916F048823C9F080916B
S21400CBF0ED028823A9F089E40E94A5148BED95E048
S21400CC009F938F938BE794E19F938F93E0915506C4
S21400CC10F091560609950F900F900F900F901AC03E
S21400CC2089E40E94A514809156011F928F9384ED8B
S21400CC3095E09F938F938BE794E19F938F93E0917A
S21400CC405506F091560609950F900F900F900F908D
S21400CC500F900F908FE30E94A51489EC95E005C015
S21400CC608FE30E94A5148AEB95E09F938F938BE742
S21400CC7094E19F938F93E0915506F091560609959F
S21400CC800F900F900F900F9080918704811106C02F
S21400CC9084E50E94A5148CEA95E039C08091B60818
S21400CCA0833081F580916F04882351F0809156017E
S21400CCB0882331F084E50E94A5148EE995E005C02E
S21400CCC084E50E94A51480E995E09F938F938BE7F7
S21400CCD094E19F938F93E0915506F091560609953F
S21400CCE00F900F900F900F908091860C8630F1F485
S21400CCF080915601882319F08068809388041092EA
S21400CD006F0414C084E50E94A51482E895E09F9302
S21400CD108F938BE794E19F938F93E0915506F09164
S21400CD20560609950F900F900F900F908091860CE5
S21400CD30843059F480915601909187048917E8F45D
S21400CD4091E090936F048F5F0AC0823069F48091FF
S21400CD505601823090F091E090936F04815080935A
S21400CD6056011092ED0209C0883039F40E94AA14C8
S21400CD7084E080937404109273048091860C813052
S21400CD8009F07EC40E94AA1482E076C4423009F4F8
S21400CD9043C028F4442339F0413029F174C44630A6
S21400CDA008F476C070C480E00E94A51483E795E07E
S21400CDB09F938F930BE714E11F930F93E091550613
S21400CDC0F0915606099585E10E94A51481E695E046
S21400CDD09F938F931F930F93E0915506F0915606FD
S21400CDE009950C94ED5D80918A04882379F08EE78E
S21400CDF00E94A51480918A041F928F9380918B04C1
S21400CE001F928F938FE495E00C94E25D8EE70E946C
S21400CE10A5148DE395E059C283E90E94A51480917C
S21400CE201A0190911B01E0911A01F0911B012AE072
S21400CE3030E0B9010E94D39A9F938F93CF01B90136
S21400CE400E94D39A7F936F9383E395E09F938F938B
S21400CE500BE714E11F930F93E0915506F0915606E9
S21400CE6009958EE90E94A5148FEA96E09F938F930A
S21400CE7080E395E09F938F931F930F93E091550661
S21400CE80F091560609950FB6F894DEBF0FBECDBFDB
S21400CE908FE30E94A51485E295E09F938F930BE79E
S21400CEA014E11F930F93E0915506F09156060995ED
S21400CEB00F900F900F900F9080915501882349F1A5
S21400CEC080916E04882351F08091ED02882331F022
S21400CED089E40E94A51481E295E020C089E40E94BE
S21400CEE0A514809155011F928F9387E195E09F933B
S21400CEF08F938BE794E19F938F93E0915506F09183
S21400CF00560609950F900F900F900F900F900F9068
S21400CF1012C089E40E94A51483E195E09F938F9345
S21400CF201F930F93E0915506F091560609950F90C2
S21400CF300F900F900F9080918704811106C084E5B2
S21400CF400E94A51485E095E013C080916E048823A6
S21400CF5051F080915501882331F084E50E94A51494
S21400CF6087EF94E005C084E50E94A51489EE94E05E
S21400CF709F938F938BE794E19F938F93E091550651
S21400CF80F091560609950F900F900F900F90809194
S21400CF90860C843061F4809155019091870489173E
S21400CFA008F07EC191E090936E048F5F0BC08230D4
S21400CFB061F480915501823008F472C191E090933B
S21400CFC06E048150809355015DC1863009F05DC1C5
S21400CFD08091550181118093880410926E0460C17F
S21400CFE0423009F44EC008F042C0442309F443C05E
S21400CFF0413009F048C38AE20E94A51480911A01C4
S21400D00090911B01E0911A01F0911B012AE030E09B
S21400D010B9010E94D39A9F938F93CF01B9010E94C2
S21400D020D39A7F936F9388EC94E09F938F930BE74C
S21400D03014E11F930F93E0915506F091560609955B
S21400D0408FE30E94A51480915C0490915D046CE3CC
S21400D05070E00E94BF9A9F938F937F936F938DEBA0
S21400D06094E09F938F931F930F930C94E85D463044
S21400D07008F44CC008C380E00E94A51483ED94E039
S21400D08024C185E30E94A5146091FC037091FD0302
S21400D0908091FE039091FF0324E630E040E050E0EC
S21400D0A00E94089B3F932F9384EB94E09F938F936B
S21400D0B00BE714E11F930F93E0915506F091560687
S21400D0C009958AE40E94A5141F9280E68F938091AA
S21400D0D043068F93809142068F9389EA94E09F934C
S21400D0E08F931F930F93E0915506F091560609957E
S21400D0F08FE50E94A51480912F011F928F9380EADE
S21400D10094E09F938F931F930F93D8C18EE70E944E
S21400D110A51483E994E09F938F930BE714E11F9384
S21400D1200F93E0915506F091560609950F900F90D3
S21400D1300F900F9080916D04882349F180916C04C4
S21400D140882351F08091ED02882331F08BE80E940D
S21400D150A5148FE894E020C08BE80E94A514809167
S21400D1606D041F928F938AE894E09F938F938BE7CA
S21400D17094E19F938F93E0915506F091560609959A
S21400D1800F900F900F900F900F900F9012C08BE89B
S21400D1900E94A51487E894E09F938F931F930F93A4
S21400D1A0E0915506F091560609950F900F900F9056
S21400D1B00F908091B6088330B1F580918704811175
S21400D1C006C083E90E94A51489E794E00DC080910B
S21400D1D06C048823C9F080916D048823A9F083E944
S21400D1E00E94A5148AE694E09F938F938BE794E1C0
S21400D1F09F938F93E0915506F091560609950F90F0
S21400D2000F900F900F9003C087E00E94ED5780911B
S21400D210860C8630E1F480916D048111809385043C
S21400D22010926C0414C083E90E94A5148CE594E067
S21400D2309F938F938BE794E19F938F93E09155068E
S21400D240F091560609950F900F900F900F908091D1
S21400D250860C843059F480916D0490918704891768
S21400D260F8F491E090936C048F5F0AC0823069F402
S21400D27080916D048230A0F091E090936C04815010
S21400D28080936D041092ED020BC0883049F40E9422
S21400D290AA14809174048F5F8093740410927304B0
S21400D2A08091860CE2C1423009F481C028F4442300
S21400D2B039F04130D1F0E7C1463008F406C1E3C189
S21400D2C080E00E94A51487E494E09F938F938BE7F9
S21400D2D094E19F938F93E0915506F0915606099539
S21400D2E00F900F900F900F90D3C18AE20E94A51462
S21400D2F080911A0190911B01E0911A01F0911B0197
S21400D3002AE030E0B9010E94D39A9F938F93CF0111
S21400D310B9010E94D39A7F936F938CE394E09F9316
S21400D3208F930BE714E11F930F93E0915506F0914E
S21400D330560609958FE30E94A51480915C0490918F
S21400D3405D046CE370E00E94BF9A9F938F937F9377
S21400D3506F9381E394E09F938F931F930F93E091D5
S21400D3605506F091560609950FB6F894DEBF0FBE27
S21400D370CDBF80918A04882311F40C94045F89E65B
S21400D3800E94A514809184048F93809183048F93C8
S21400D39080918A041F928F9380918B041F928F93A3
S21400D3A08CE194E09F938F931F930F9327CB8091EC
S21400D3B0F1038823B9F182E30E94A5146091F20379
S21400D3C07091F3038091F4039091F503B4E6CB2EAD
S21400D3D0D12CE12CF12CA70196010E94089B3F93CB
S21400D3E02F936091FC037091FD038091FE03909152
S21400D3F0FF03A70196010E94089B3F932F938FE09F
S21400D40094E09F938F938BE794E19F938F93E091A3
S21400D4105506F091560609950FB6F894DEBF0FBE76
S21400D420CDBF26C082E30E94A5146091FC037091D4
S21400D430FD038091FE039091FF0324E630E040E078
S21400D44050E00E94089B3F932F9382E094E09F93C6
S21400D4508F938BE794E19F938F93E0915506F0911D
S21400D460560609950F900F900F900F900F900F9003
S21400D47087E40E94A5141F9280E68F93809143064E
S21400D4808F93809142068F9387EF93E09F938F93BD
S21400D4900BE714E11F930F93E0915506F0915606A3
S21400D4A009958CE50E94A51480912F011F928F93F9
S21400D4B08EEE93E09F938F931F930F93E091550604
S21400D4C0F091560609950C94ED5D8091860C8823A4
S21400D4D049F08091470C9091480C01969093480C27
S21400D4E08093470C8EE70E94A51482EE93E09F93EC
S21400D4F08F930BE714E11F930F93E0915506F0917D
S21400D500560609950F900F900F900F9080916B0420
S21400D510882349F180916A04882351F08091ED02B6
S21400D520882331F089E80E94A5148EED93E020C090
S21400D53089E80E94A51480916B041F928F938AED50
S21400D54093E09F938F938BE794E19F938F93E09163
S21400D5505506F091560609950F900F900F900F9074
S21400D5600F900F9012C089E80E94A51487ED93E0F3
S21400D5709F938F931F930F93E0915506F091560655
S21400D58009950F900F900F900F908091870481114E
S21400D59006C083E90E94A51489EC93E00DC0809133
S21400D5A06A048823C9F080916B048823A9F083E974
S21400D5B00E94A5148BEB93E09F938F938BE794E1E7
S21400D5C09F938F93E0915506F091560609950F901C
S21400D5D00F900F900F9021C087E00E94ED5780912A
S21400D5E08A048823D1F083E90E94A5148FEA96E086
S21400D5F09F938F9388EB93E09F938F938BE794E1B1
S21400D6009F938F93E0915506F091560609950F90DB
S21400D6100F900F900F900F900F908091860C843093
S21400D62059F480916B0490918704891748F591E02E
S21400D63090936A048F5F0AC0823069F480916B040D
S21400D6408230F0F091E090936A04815080936B04EE
S21400D6501092ED0215C0863041F480916B04811162
S21400D6608093860410926A040BC0813049F40E94AD
S21400D670AA148091740481508093740410927304E9
S21400D6801092860C05C01092730402C010927404A7
S21400D6900F900F900F900F90DF91CF911F910F91E9
S21400D6A0FF90EF90DF90CF90BF90AF909F908F90BD
S21400D6B07F906F905F904F903F902F900895CF93FC
S21400D6C0DF9380E00E94EB0E8091A8091F928F9353
S21400D6D0809199091F928F9380918A091F928F9348
S21400D6E080917B091F928F938CE69FE09F938F9388
S21400D6F0CEEDDEE0DF93CF93E0915506F09156062F
S21400D700099580E10E94EB0E8091E4091F928F93A9
S21400D7108091D5091F928F938091C6091F928F938F
S21400D7208091B7091F928F938CE59FE09F938F930C
S21400D730DF93CF93E0915506F091560609958091B8
S21400D7401A052DB73EB7285E3F4F0FB6F8943EBF7A
S21400D7500FBE2DBF853098F480E10E94EB0E8BE45F
S21400D7609FE09F938F93DF93CF93E0915506F091C0
S21400D770560609950F900F900F900F9019C087309E
S21400D780B8F488E10E94EB0E1F928FED8F9382E42F
S21400D7909FE09F938F93DF93CF93E0915506F09190
S21400D7A0560609950F900F900F900F900F900F90C0
S21400D7B0DF91CF910895CF93DF9380E00E94EB0E28
S21400D7C08091130590911405C0911A01D0911B0108
S21400D7D0E0911A01F0911B012AE030E0B9010E94A5
S21400D7E0BF9A9F938F937F936F93CE01B9010E9448
S21400D7F0D39A9F938F93CF01B9010E94D39A7F93B8
S21400D8006F9380E39FE09F938F93CEEDDEE0DF93F0
S21400D810CF93E0915506F0915606099580E10E9457
S21400D820EB0EE7E1F5E081818F9380818F93E5E150
S21400D830F5E081818F9380818F9384E29FE09F93B0
S21400D8408F93DF93CF93E0915506F0915606099596
S21400D8508DB79EB744960FB6F8949EBF0FBE8DBF89
S21400D860DF91CF9108951F93CF93DF9380E00E94BE
S21400D870EB0E1F921FED1F9380914F018F938091A7
S21400D8804E018F938091B8041F928F9381E19FE0A1
S21400D8909F938F93CEEDDEE0DF93CF93E091550616
S21400D8A0F0915606099580E10E94EB0E8091B60431
S21400D8B01F928F931F921F938091B7041F928F938E
S21400D8C08EEF9EE09F938F93DF93CF93E091550664
S21400D8D0F091560609958DB79EB744960FB6F89404
S21400D8E09EBF0FBE8DBFDF91CF911F910895CF933E
S21400D8F0DF9380E00E94EB0E8FEE9EE09F938F9367
S21400D900CEEDDEE0DF93CF93E0915506F09156061C
S21400D910099580E10E94EB0E81EE9EE09F938F9327
S21400D920DF93CF93E0915506F091560609958DB793
S21400D9309EB708960FB6F8949EBF0FBE8DBFDF91B8
S21400D940CF910895CF93DF9380E00E94EB0E82ED97
S21400D9509EE09F938F93CEEDDEE0DF93CF93E09132
S21400D9605506F0915606099580E10E94EB0E84EC70
S21400D9709EE09F938F93DF93CF93E0915506F091AF
S21400D980560609958DB79EB708960FB6F8949EBFB3
S21400D9900FBE8DBFDF91CF91089580E00E94EB0E01
S21400D9A083EB9EE09F938F938EED9EE09F938F93E5
S21400D9B0E0915506F091560609950F900F900F903E
S21400D9C00F90089580E00E94EB0E82EA9EE09F93FF
S21400D9D08F938EED9EE09F938F93E0915506F09186
S21400D9E0560609950F900F900F900F9008951F936D
S21400D9F0CF93DF93182FCFEAD6E08091AF06811140
S21400DA0014C00E94EB0E87ED9DE09F938F938EEDE2
S21400DA109EE09F938F93E0915506F09156060995E8
S21400DA200F900F900F900F9018C080E00E94EB0EA2
S21400DA30DF93CF9380ED9DE09F938F938EED9EE0D6
S21400DA409F938F93E0915506F091560609950F9097
S21400DA500F900F900F900F900F9080918704811178
S21400DA6006C080E10E94EB0E85EC9DE009C0809127
S21400DA70B6088330A9F080E10E94EB0E8AEB9DE0A9
S21400DA809F938F938EED9EE09F938F93E091550624
S21400DA90F091560609950F900F900F900F908FC03B
S21400DAA080E10E94EB0E809159011F928F9380EBCC
S21400DAB09DE09F938F93CEEDDEE0DF93CF93E091D2
S21400DAC05506F091560609950F900F900F900F90FF
S21400DAD00F900F9080918A048823F9F088E10E94C5
S21400DAE0EB0E80918A041F928F9380918B041F9275
S21400DAF08F9328EA3DE03F932F93DF93CF93E091F7
S21400DB005506F091560609958DB79EB708960FB63E
S21400DB10F8949EBF0FBE8DBF12C088E10E94EB0E28
S21400DB2022EA3DE03F932F93DF93CF93E091550693
S21400DB30F091560609950F900F900F900F908091D8
S21400DB408F04882331F08EE10E94EB0E2FE93DE032
S21400DB5005C08EE10E94EB0E2CE93DE03F932F932B
S21400DB602EED3EE03F932F93E0915506F09156063A
S21400DB7009950F900F900F900F901F3241F48091EF
S21400DB805901909187048917D0F48F5F07C01F341E
S21400DB9059F480915901823090F081508093590158
S21400DBA081E080938F040BC01F3149F480915901A6
S21400DBB0882329F080688093880410928F04DF9170
S21400DBC0CF911F9108950F931F93CF93DF9380E01B
S21400DBD00E94EB0E80911A0190911B0120911A0170
S21400DBE030911B010AE010E0B8010E94D39A9F937F
S21400DBF08F93C901B8010E94D39A7F936F9386EDE5
S21400DC009FE09F938F93CEEDDEE0DF93CF93E0917E
S21400DC105506F091560609958DB79EB708960FB62D
S21400DC20F8949EBF0FBE8DBF8091A402882369F131
S21400DC3086E00E94EB0E809196021F928F93809151
S21400DC40B8089091B908B8010E94BF9A7F936F9365
S21400DC501F928FED8F93809143068F93809142069B
S21400DC608F9389EC9FE09F938F93DF93CF93E09100
S21400DC705506F091560609958DB79EB70C960FB6C9
S21400DC80F8949EBF0FBE8DBF12C086E00E94EB0EBA
S21400DC908EEB9FE09F938F93DF93CF93E091550693
S21400DCA0F091560609950F900F900F900F90809167
S21400DCB0B904882309F447C0809193049091940492
S21400DCC00E944F88882391F080915D01882319F087
S21400DCD010925D0103C081E080935D018CED95E0BC
S21400DCE00E944688909394048093930480915D01EB
S21400DCF0882371F080E00E94EB0E1F921F928091A5
S21400DD00B90431E1839FC00111248A56954F09C09A
S21400DD1086E00E94EB0E8091B9041F928F9382EBEF
S21400DD209FE09F938F938EED9EE09F938F93E0915D
S21400DD305506F091560609950F900F900F900F908C
S21400DD400F900F904EC08091B50484FF15C086E0FA
S21400DD500E94EB0E87EA9FE09F938F938EED9EE0E6
S21400DD609F938F93E0915506F091560609950F9074
S21400DD700F900F900F9035C080917E04882389F114
S21400DD800E94F10E80E00E94EB0E87E995E09F93DB
S21400DD908F93809152011F928F938EE99FE09F93FD
S21400DDA08F93CEEDDEE0DF93CF93E0915506F091B2
S21400DDB0560609958091C7032DB73EB7285F3F4F9B
S21400DDC00FB6F8943EBF0FBE2DBF81FF7CC080E12A
S21400DDD00E94EB0E82E99FE09F938F93DF938C2F38
S21400DDE068C080E10E94EB0E80915C0490915D0417
S21400DDF06CE370E00E94BF9A9F938F937F936F931C
S21400DE00809118058F93809117058F9385E89FE082
S21400DE109F938F93CEEDDEE0DF93CF93E091550690
S21400DE20F09156060995809139062DB73EB7265FC4
S21400DE303F4F0FB6F8943EBF0FBE2DBF80FF2BC0DE
S21400DE408AE10E94EB0E809120011F928F936091D1
S21400DE50FC037091FD038091FE039091FF0324E67E
S21400DE6030E040E050E00E94089B3F932F938EE7FF
S21400DE709FE09F938F93DF93CF93E0915506F091A9
S21400DE80560609952DB73EB7285F3F4F0FB6F89454
S21400DE903EBF0FBE2DBF8091C70380FF14C08AE12E
S21400DEA00E94EB0E8CE79FE09F938F938EED9EE093
S21400DEB09F938F93E0915506F091560609950F9023
S21400DEC00F900F900F90DF91CF911F910F910895B3
S21400DED01F93CF93DF93182F80E00E94EB0E26E966
S21400DEE03EE03F932F93CEEDDEE0DF93CF93E091BD
S21400DEF05506F091560609950F900F900F900F90CB
S21400DF0080918704811106C080E10E94EB0E8BE8A9
S21400DF109EE009C08091B608833099F080E10E94A7
S21400DF20EB0E80E89EE09F938F93DF93CF93E09174
S21400DF305506F091560609950F900F900F900F908A
S21400DF407BC08BE00E94EB0E80915C011F928F934A
S21400DF502CE73EE03F932F93DF93CF93E091550657
S21400DF60F0915606099580E10E94EB0E6091FC0345
S21400DF707091FD038091FE039091FF0324E630E04C
S21400DF8040E050E00E94089B3F932F938091430609
S21400DF908F93809142068F932BE63EE03F932F931C
S21400DFA0DF93CF93E0915506F091560609958DB70D
S21400DFB09EB70E960FB6F8949EBF0FBE8DBF80918B
S21400DFC09204882331F08EE00E94EB0E28E63EE0B5
S21400DFD005C08EE00E94EB0E25E63EE03F932F93B1
S21400DFE0DF93CF93E0915506F091560609950F9072
S21400DFF00F900F900F901F3241F480915C0190912A
S21400E00087048917C8F48F5F07C01F3459F48091BE
S21400E0105C01823088F0815080935C0181E08093BF
S21400E02092040AC01F3141F480915C01882321F0DC
S21400E0308093850410929204DF91CF911F910895EA
S21400E0401F93CF93DF93182F80E00E94EB0E8AE594
S21400E0509EE09F938F93CEEDDEE0DF93CF93E0912B
S21400E0605506F091560609950F900F900F900F9059
S21400E07080918704811113C080E10E94EB0E8FE42B
S21400E0809EE09F938F93DF93CF93E0915506F09198
S21400E090560609950F900F900F900F909AC08BE040
S21400E0A00E94EB0E80915B011F928F938BE49EE0A3
S21400E0B09F938F93DF93CF93E0915506F09156068A
S21400E0C009950F900F900F900F900F900F908091E2
S21400E0D08A04882369F180E10E94EB0E6091F203C6
S21400E0E07091F3038091F4039091F50324E630E0F9
S21400E0F040E050E00E94089B3F932F938091840459
S21400E1008F93809183048F9389E39EE09F938F93F0
S21400E110DF93CF93E0915506F091560609958DB79B
S21400E1209EB708960FB6F8949EBF0FBE8DBF12C05E
S21400E13088E10E94EB0E28E23EE03F932F93DF93A8
S21400E140CF93E0915506F091560609950F900F90E3
S21400E1500F900F9080919104882331F08EE00E94FA
S21400E160EB0E25E23EE005C08EE00E94EB0E22E2BA
S21400E1703EE03F932F932EED3EE03F932F93E091AA
S21400E1805506F091560609950F900F900F900F9038
S21400E1901F3241F480915B01909187048917C8F47F
S21400E1A08F5F07C01F3459F480915B01823088F07E
S21400E1B0815080935B0181E0809391040AC01F31F7
S21400E1C041F480915B01882321F0809386041092AD
S21400E1D09104DF91CF911F9108951F93CF93DF9302
S21400E1E0182FCFEAD6E08091AF06811114C00E94A6
S21400E1F0EB0E84E19EE09F938F938EED9EE09F93BF
S21400E2008F93E0915506F091560609950F900F9062
S21400E2100F900F9018C080E00E94EB0EDF93CF9314
S21400E2208DE09EE09F938F938EED9EE09F938F935D
S21400E230E0915506F091560609950F900F900F90B5
S21400E2400F900F900F9080918704811115C080E188
S21400E2500E94EB0E82E09EE09F938F938EED9EE0F1
S21400E2609F938F93E0915506F091560609950F906F
S21400E2700F900F900F908EC080E10E94EB0E809161
S21400E2805A011F928F9389EF9DE09F938F93CEED57
S21400E290DEE0DF93CF93E0915506F09156060995A0
S21400E2A00F900F900F900F900F900F9080918A0410
S21400E2B08823F9F088E10E94EB0E80918A041F9271
S21400E2C08F9380918B041F928F9321EF3DE03F93B5
S21400E2D02F93DF93CF93E0915506F091560609955C
S21400E2E08DB79EB708960FB6F8949EBF0FBE8DBF2B
S21400E2F012C088E10E94EB0E2BEE3DE03F932F9379
S21400E300DF93CF93E0915506F091560609950F904E
S21400E3100F900F900F9080919004882331F08EE13B
S21400E3200E94EB0E28EE3DE005C08EE10E94EB0E4B
S21400E33025EE3DE03F932F932EED3EE03F932F9347
S21400E340E0915506F091560609950F900F900F90A4
S21400E3500F901F3241F480915A01909187048917DB
S21400E360C8F48F5F07C01F3459F480915A01823079
S21400E37088F0815080935A0181E0809390040AC00F
S21400E3801F3141F480915A01882321F0809388043C
S21400E39010929004DF91CF911F910895CF93DF9351
S21400E3A08091A402882309F484C080E00E94EB0ECA
S21400E3B08091B5081F928F938091B7081F928F9314
S21400E3C08DE89DE09F938F93CEEDDEE0DF93CF93B5
S21400E3D0E0915506F091560609958DB79EB70896BA
S21400E3E00FB6F8949EBF0FBE8DBF8091B6088330DF
S21400E3F031F48CE00E94EB0E88E89DE005C08CE0CE
S21400E4000E94EB0E83E89DE09F938F93DF93CF935C
S21400E410E0915506F091560609950F900F900F90D3
S21400E4200F908091B40881FF14C08CE00E94EB0E20
S21400E4308EE79DE09F938F938EED9EE09F938F9344
S21400E440E0915506F091560609950F900F900F90A3
S21400E4500F9080E10E94EB0E809196021F928F93A0
S21400E4601F928FED8F938091BB088F938091BA088F
S21400E4708F938091B8089091B9086AE070E00E9486
S21400E480BF9A7F936F938BE69DE09F938F938EED5D
S21400E4909EE09F938F93E0915506F091560609955E
S21400E4A08DB79EB70C960FB6F8949EBF0FBE8DBF65
S21400E4B014C082E00E94EB0E8EE59DE09F938F9342
S21400E4C08EED9EE09F938F93E0915506F091560651
S21400E4D009950F900F900F900F90DF91CF910895B0
S21400E4E0CF93DF931F92CDB7DEB790918E049093B3
S21400E4F08D048F32A9F048F48F3111F526E0929FF3
S21400E500F0011124E052F04F18C08F3481F08F389C
S21400E510B9F426E0929FF0011124E152F04F0DC0AD
S21400E52026E0929FF0011124EF51F04F06C026E03E
S21400E530929FF0011124EE51F04FE491E0938E0487
S21400E54020918E04291380E09091580121E0290F34
S21400E5502093580190FD02C08F3091F080938C0478
S21400E56089830E94F10EE0918E0496E0E99FF00107
S21400E5701124ED51F04F259134918981F9010995C7
S21400E58080E00F90DF91CF91089540915403509111
S21400E59055032091950430919604C901880F991F60
S21400E5A0820F931F840F951F97FD03969595879569
S21400E5B095958795909396048093950420912001D5
S21400E5C02B32A1F440912D052091F6033091F703EC
S21400E5D0429FC001439F900D112497FD4F9645E042
S21400E5E0959587954A95E1F7059635C02D32A1F4A5
S21400E5F040912D052091F6033091F703429FC0010C
S21400E600439F900D112497FD4F9635E0959587957D
S21400E6103A95E1F705971FC0203261F42091C903AF
S21400E62021FF17C097FD4F9625E0959587952A956B
S21400E630E1F711C02E3521F48091F10390E00BC074
S21400E640263739F48091F10390E0919581959109F0
S21400E65002C080E090E0AA2797FDA095BA2F80938D
S21400E660500290935102A0935202B0935302089521
S21400E670CF93DF930E94B25780911A0190911B01AD
S21400E680AA2797FDA095BA2F80937F0190938001CB
S21400E690A0938101B0938201809113059091140597
S21400E6A0A0E0B0E08093920190939301A093940130
S21400E6B0B09395018091170590911805CAE0D0E0B7
S21400E6C0BE010E94BF9ACB01A0E0B0E08093A501F6
S21400E6D09093A601A093A701B093A8016091FC03B4
S21400E6E07091FD038091FE039091FF0324E630E0D5
S21400E6F040E050E00E94089B2093B8013093B90197
S21400E7004093BA015093BB0180914E0190914F0106
S21400E710AA2797FDA095BA2F8093CB019093CC01A2
S21400E720A093CD01B093CE018091B50890E0A0E013
S21400E730B0E08093DE019093DF01A093E001B093F8
S21400E740E1018091B70890E0A0E0B0E08093F1018D
S21400E7509093F201A093F301B093F4018091B8086E
S21400E7609091B908BE010E94BF9ACB01A0E0B0E02C
S21400E7708093040290930502A0930602B0930702CA
S21400E7808091BA089091BB08AA2797FDA095BA2F4A
S21400E7908093170290931802A0931902B0931A025E
S21400E7A08091820490E0A0E0B0E080932A029093EB
S21400E7B02B02A0932C02B0932D028091B80490E017
S21400E7C0A0E0B0E080933D0290933E02A0933F020B
S21400E7D0B09340028091B90490E0A0E0B0E080934E
S21400E7E0630290936402A0936502B0936602DF9181
S21400E7F0CF91089587B18C6087B94298439810925C
S21400E8009F0480E880938F0210929E0480938E026D
S21400E81008959091BB04911190939C0480919B0461
S21400E8202FEF280F20939B04811141C1809165052D
S21400E83080939A04809167058093990489E0809379
S21400E8409B048091C903807321F48091400A80FF65
S21400E8501DC080916905882351F08091980481112C
S21400E86003C084E080939F0481E0809398048091A5
S21400E8706A05882379F080919704811103C084E0AB
S21400E88080939E0481E08093970404C010929804BD
S21400E890109297048091980481117BC08091930513
S21400E8A084FF07C020910104211103C085FF8DC09D
S21400E8B08AC080916605883FB0F0809118068D3D2D
S21400E8C028F080919A0487FF07C008C0853059F465
S21400E8D080919A0487FF02C0429A01C0429881E064
S21400E8E080938F0253C080919F042FEF280F2093B0
S21400E8F09F0481116BC02091960580919A0425FF94
S21400E9002EC020919C04322F369530939F042111FF
S21400E9100AC010929D0487FF02C0429A01C0429826
S21400E92010928F0253C021E020939D0420918F0205
S21400E93021110AC090939C041092BB0490E490931B
S21400E9408F0287FF42C03FC0822311F0429A01C067
S21400E950429880918F02869580938F0237C090915F
S21400E9601806969590939F0490918F02913021F40B
S21400E97010929C0490E401C0969590938F0290911B
S21400E9808F02982311F0429A01C0429810929D047B
S21400E9901DC080919F049FEF980F90939F04811154
S21400E9A015C089E080939F0480918F02813011F416
S21400E9B080E801C0869580938F02809169059091CA
S21400E9C08F02892311F0429A01C0429880919704E1
S21400E9D081113EC08091930587FF07C09091010486
S21400E9E0911103C086FF50C04DC080916805883FD6
S21400E9F0B0F0809140068D3D28F08091990487FF05
S21400EA0007C008C0853059F48091990487FF02C07A
S21400EA10439A01C0439881E080938E0236C080916D
S21400EA209E049FEF980F90939E0481112EC08091B4
S21400EA304006869580939E0480918E02813011F464
S21400EA4080E401C0869580938E028091990416C05A
S21400EA5080919E049FEF980F90939E04811115C09D
S21400EA6089E080939E0480918E02813011F480E8C4
S21400EA7001C0869580938E0280916A0590918E02E1
S21400EA80892311F0439A01C04398429B05C08091A8
S21400EA90C80388608093C803439B04C08091C80362
S21400EAA0806103C08091C8038F7E8093C803089559
S21400EAB0E091A204E03540F491E09E0F9093A2040A
S21400EAC0F0E0E354F84F80830895EDEBF7E080E242
S21400EAD0819398E0ED30F907D9F708954F925F9249
S21400EAE06F927F928F929F92AF92BF92CF92DF9259
S21400EAF0EF92FF920F931F93CF93DF931F92CDB7A2
S21400EB00DEB78091A00480FF0AC09091A1049923EB
S21400EB1011F0915002C0909190029093A10481FF51
S21400EB200CC09091A10420919002921303C0109201
S21400EB30A10403C09F5F9093A1048370833011F4F7
S21400EB401092A104C2DF8091A104E0915506F091D5
S21400EB5056068A3040F491E19093A2041F928F9358
S21400EB6080E894E107C090E19093A2041F928F93EF
S21400EB708BE794E19F938F9388E595E79F938F9318
S21400EB8009950F900F900F900F900F900F90209177
S21400EB90A104822F90E08431910508F0E1C7FC01C2
S21400EBA0EE56FF4F00915506109156060C94249B86
S21400EBB01092A2048BE694E19F938F93B8E5EB2E18
S21400EBC0B5E7FB2EFF92EF92F801099584E180935A
S21400EBD0A204809154011F9291E69F931F9298E0A1
S21400EBE09F931F9292E09F936AE00E94B39A1F92AF
S21400EBF09F931F928F9383E594E19F938F93FF9249
S21400EC00EF92E0915506F0915606099588E28093BA
S21400EC10A20485EA95E09F938F93809152011F92FC
S21400EC208F9389E494E19F938F93FF92EF92E09104
S21400EC305506F091560609958091C7030FB6F894CD
S21400EC40DEBF0FBECDBF81FF12C088E38093A20453
S21400EC5084E494E19F938F93FF92EF92E0915506A0
S21400EC60F091560609950F900F900F900F90809197
S21400EC70400A84FF06C08CE38093A20487E394E1F5
S21400EC8048C08091B904882309F19CE39093A204BC
S21400EC901F928F938FE294E19F938F9308E515E779
S21400ECA01F930F93E0915506F091560609951F9213
S21400ECB01F928091B90431E1839FC00111248A56C6
S21400ECC0954F9F938F931F930F9337C180913F0A61
S21400ECD0882341F09CE39093A2041F928F9388E1CF
S21400ECE094E133C08091DD04882341F09CE3909347
S21400ECF0A2041F928F9382E094E127C08091B00215
S21400ED009091B1020697A8F48CE38093A20485EF55
S21400ED1093E19F938F9388E595E79F938F93E09178
S21400ED205506F091560609950F900F900F900F908C
S21400ED3020C7809119058E3108F01BC79CE390937D
S21400ED40A2041F928F9381EE93E19F938F9388E5A1
S21400ED5095E79F938F93E0915506F0915606099597
S21400ED600F900F900F900F900F900F9002C7109279
S21400ED70A2046091FC037091FD038091FE039091C4
S21400ED80FF03F5E0CF2ED12CE12CF12CA701960144
S21400ED900E94089B3F932F9384ED93E19F938F935C
S21400EDA0A8E5AA2EA5E7BA2EBF92AF92F80109955C
S21400EDB084E18093A2046091F8037091F903809136
S21400EDC0FA039091FB03A70196010E94089B3F93CC
S21400EDD02F9387EC93E19F938F93BF92AF92E0912E
S21400EDE05506F0915606099588E28093A204809114
S21400EDF01001909111019F938F938AEB93E19F935B
S21400EE008F93BF92AF92E0915506F0915606099502
S21400EE108CE38093A20487B51F928F938DEA93E1CB
S21400EE209F938F93BF92AF92E0915506F09156064E
S21400EE3009950FB6F894DEBF0FBECDBF8091C00314
S21400EE40882309F496C689E38093A20489EA93E1AD
S21400EE509F938F93BF92AF92E0915506F09156061E
S21400EE6009958DE48093A20480910C011F928F93E4
S21400EE7086EA93E19F938F93BF92AF925EC0109203
S21400EE80A20489E993E19F938F9368E5A62E65E730
S21400EE90B62EBF92AF92F801099584E18093A20442
S21400EEA06091400470914104809142049091430423
S21400EEB0C12CE4E0DE2EE12CF12CA70196010E9485
S21400EEC0089B5F934F933F932F938AE893E19F931A
S21400EED08F93BF92AF92E0915506F0915606099532
S21400EEE088E28093A20460913C0470913D04809176
S21400EEF03E0490913F04A70196010E94089B5F93F1
S21400EF004F933F932F938BE793E19F938F93BF92FB
S21400EF10AF92E0915506F091560609958CE38093E2
S21400EF20A204809143068F93809142068F938CE6CD
S21400EF3093E19F938F93BF92AF92E0915506F09125
S21400EF4056060995DAC0AA24A394B12C44E1D42E1F
S21400EF505AE5E52E53E1F52E08E515E78A2D869548
S21400EF608D9D802D11248093A204C5010196FC017D
S21400EF70EE0FFF1FE25FF74F40815181F501EE0F64
S21400EF80FF1FE25FF74F208131815F934F939F937E
S21400EF908F933F932F93BF92AF92FF92EF921F9360
S21400EFA00F93E0915506F0915606099532E0A30EB0
S21400EFB0B11C0FB6F894DEBF0FBECDBF59E0A51644
S21400EFC0B10461F6D6C51092A204E0911D05F0E0EA
S21400EFD0EE0FFF1FE25FF74F20813181E0911C05A5
S21400EFE0F0E0EE0FFF1FE25FF74F808191813F93C5
S21400EFF02F939F938F938AE493E19F938F9328E5B3
S21400F000E22E25E7F22EFF92EF92F801099584E1B1
S21400F0108093A204E0911F05F0E0EE0FFF1FE25F71
S21400F020F74F20813181E0911E05F0E0EE0FFF1FC3
S21400F030E25FF74F808191813F932F9381589F4FD6
S21400F0409F938F938AE393E19F938F93FF92EF9220
S21400F050E0915506F0915606099588E28093A20441
S21400F060E0912105F0E0EE0FFF1FE25FF74F2081F1
S21400F0703181E0912005F0E0EE0FFF1FE25FF74FD1
S21400F0808081918121583F4F3F932F9381589F4F06
S21400F0909F938F938AE293E19F938F93FF92EF92D1
S21400F0A0E0915506F091560609958CE38093A204EC
S21400F0B0E0912305F0E0EE0FFF1FE25FF74F20819F
S21400F0C03181E0912205F0E0EE0FFF1FE25FF74F7F
S21400F0D08081918121583F4F3F932F9381589F4FB6
S21400F0E09F938F938AE193E19F938F93FF92EF9282
S21400F0F0E0915506F091560609950FB6F894DEBFD6
S21400F1000FBECDBF36C51092A2048CE093E19F934C
S21400F1108F9388E595E79F938F93F801099584E18F
S21400F1208093A20440916503509166033091550484
S21400F130209156042F933F93832F922F97FD079687
S21400F1409C0103E0359527950A95E1F7CA01821BD5
S21400F150930B9F938F938DEF92E19F938F9388E508
S21400F16095E79F938F93E0915506F0915606099583
S21400F17088E28093A2044091630350916403309127
S21400F1805304209154042F933F93832F922F97FD7F
S21400F19007969C0113E0359527951A95E1F7CA0165
S21400F1A0821B930B9F938F938EEE92E19F938F9388
S21400F1B008E515E71F930F93E0915506F091560664
S21400F1C009958CE38093A204809151049091520497
S21400F1D020916103309162039F938F93821B930B60
S21400F1E09F938F938FED92E19F938F931F930F932F
S21400F1F07FCF1092A20482ED92E19F938F93B8E5A1
S21400F200EB2EB5E7FB2EFF92EF92F801099584E10D
S21400F2108093A20480915D0390915E0320914C043C
S21400F2202F9320914B042F939F938F9383EC92E11F
S21400F2309F938F93FF92EF92E0915506F0915606BA
S21400F240099588E28093A20480915F039091600301
S21400F25020914A042F93209149042F939F938F93D4
S21400F26084EB92E19F938F93FF92EF92E091550685
S21400F270F091560609958CE38093A20480915B0377
S21400F28090915C03209146042F93209145042F9380
S21400F2909F938F9385EA92E19F938F93FF92EF92CD
S21400F2A027CF1092A20480911A0190911B01209101
S21400F2B01A0130911B01FAE0EF2EF12CB7010E94E3
S21400F2C0D39A9F938F93C901B7010E94D39A7F93D5
S21400F2D06F9381E992E19F938F93A8E5CA2EA5E7E5
S21400F2E0DA2EDF92CF92F801099584E18093A2048A
S21400F2F08091130590911405B7010E94BF9A9F93C1
S21400F3008F937F936F938DE792E19F938F93DF9216
S21400F310CF92E0915506F0915606099588E28093C3
S21400F320A204809116058F93809115058F938DE624
S21400F33092E19F938F93DF92CF92E0915506F091E2
S21400F340560609958CE38093A204809118058F9346
S21400F350809117058F938BE592E19F938F93DF92B1
S21400F360CF92EBCD1092A20482E592E19F938F9309
S21400F370E8E5EE2EE5E7FE2EFF92EF92F8010995FE
S21400F38088E28093A204809102041F928F9382E405
S21400F39092E19F938F93FF92EF92E0915506F09142
S21400F3A0560609958CE38093A20480910D0890E0A0
S21400F3B001979F938F9382E392E19F938F93FF929F
S21400F3C0EF92BBCD1092A20482E292E19F938F93BC
S21400F3D078E5E72E75E7F72EFF92EF92F80109958C
S21400F3E084E18093A204809153011AE0612F0E9469
S21400F3F0B39A1F929F931F928F9384E192E19F93FB
S21400F4008F93FF92EF92E0915506F091560609957C
S21400F41088E28093A20480916204612F0E94B39ACE
S21400F4201F929F931F928F9386E092E19F938F93F4
S21400F430FF92EF92E0915506F091560609958CE3FF
S21400F4408093A20480916304612F0E94B39A1F9256
S21400F4509F931F928F9388EF91E11ECF53E0C52EA6
S21400F46054E0D52E20E06BEEE62E61E1F62E08E5A0
S21400F47015E72093A204D6018D916D011F928F93FC
S21400F480CD01835094409F938F93FF92EF921F93EA
S21400F4900F93E0915506F091560629830995298128
S21400F4A02C5E0FB6F894DEBF0FBECDBF203509F731
S21400F4B060C337E0C32E34E0D32E20E04EEDE42EBA
S21400F4C041E1F42E08E515E72093A204D6018D91BC
S21400F4D06D011F928F93CD01835094409F938F931D
S21400F4E0FF92EF921F930F93E0915506F091560608
S21400F4F02983099529812C5E0FB6F894DEBF0FBECE
S21400F500CDBF203509F735C31092A20480ED91E1F6
S21400F5109F938F9328E5E22E25E7F22EFF92EF9237
S21400F520F801099584E18093A20480915F048F938B
S21400F53080915E048F9383EC91E19F938F93FF926B
S21400F540EF92E0915506F0915606099588E2809371
S21400F550A204809161048F93809160048F9386EB60
S21400F56091E19F938F93FF92EF92E0915506F09171
S21400F5705606099589E48093A2048EEA91E19F934A
S21400F5808F93FF92EF92E0915506F09156060995FB
S21400F5908091A0040FB6F894DEBF0FBECDBF83FFE8
S21400F5A0E8C2109261041092600460E070E08EE0A1
S21400F5B090E00E944923DDC21092A20486EA91E1FF
S21400F5C09F938F9398E5E92E95E7F92EFF92EF9299
S21400F5D0F801099584E18093A20480914F018F93EE
S21400F5E080914E018F9388E991E19F938F93FF92CC
S21400F5F0EF92E0915506F0915606099588E28093C1
S21400F600A2048091FF058F938091FE058F938AE870
S21400F61091E19F938F93FF92EF92E0915506F091C0
S21400F620560609958CE38093A204809143068F9337
S21400F630809142068F938CE791E19F938F93FF9280
S21400F640EF927BCC1092A20484E791E19F938F9374
S21400F65088E5E82E85E7F82EFF92EF92F8010995E7
S21400F66084E18093A20480912F011F928F9386E6F7
S21400F67091E19F938F93FF92EF92E0915506F09160
S21400F6805606099588E28093A2048091C40490915E
S21400F690C50497FD039695958795959587959F93B1
S21400F6A08F9388E591E19F938F9308E515E71F9365
S21400F6B00F93E0915506F091560609958CE38093DA
S21400F6C0A20480914B051F928F9380914A051F924A
S21400F6D08F938AE491E19F938F931F930F9308CDA6
S21400F6E01092A2048AE391E19F938F9388E595E7B1
S21400F6F09F938F93F8010995B4EACB2EB9E0DB2EE1
S21400F7000F900F900F900F9084E119E2E12E11E117
S21400F710F12E08E515E78093A204D6019C919F7709
S21400F7201F929F93F6013F9790819F771F929F931A
S21400F7303F9790819F771F929F933F9790819F77E7
S21400F7401F929F93FF92EF921F930F93E09155069F
S21400F750F09156068983099589818C5EBCE3CB0EB1
S21400F760D11C0FB6F894DEBF0FBECDBF803599F61C
S21400F77000C21092A2048AE191E19F938F9388E5DC
S21400F78095E79F938F93F8010995F8EACF2EF9E055
S21400F790DF2E0F900F900F900F9084E1A9E0EA2ED5
S21400F7A0A1E1FA2E08E515E78093A204D6019C9104
S21400F7B01F929F93F6013F9790811F929F933F97CA
S21400F7C090811F929F933F9790811F929F93FF92E5
S21400F7D0EF921F930F93E0915506F091560689839A
S21400F7E0099589818C5EBCE3CB0ED11C0FB6F894CC
S21400F7F0DEBF0FBECDBF8035B9F6BBC11092A204E6
S21400F8008EEF90E19F938F9378E5E72E75E7F72EBE
S21400F810FF92EF92F801099587E48093A20484EFA3
S21400F82090E19F938F93FF92EF92E0915506F091AF
S21400F830560609950FB6F894DEBF0FBECDBFE4E0BE
S21400F8404E2E512C24E103EE10E12093A204C0902A
S21400F8505506D09056068FEF840D29830E944E20C1
S21400F860782E692E8EEF840D0E944E20982E892EBB
S21400F8708DEF840D0E944E20B82EA92E8CEF840D9D
S21400F8800E944E206F927F928F929F92AF92BF926D
S21400F8909F938F931F930F93FF92EF92F601099514
S21400F8A080911A0590E00FB6F894DEBF0FBECDBF6C
S21400F8B02981481659060CF05CC12C5E54E0450EB2
S21400F8C0511C203511F655C11092A20484ED90E12A
S21400F8D09F938F9348E5E42E45E7F42EFF92EF9230
S21400F8E0F801099584E18093A2046091A409661F3B
S21400F8F06627661F40919509441F4427441F2091A0
S21400F9008609221F2227221F80917709881F8827B1
S21400F910881FF7E06F9FB0011124635D7F4F7F93D0
S21400F9206F9336E0439FA0011124435D5F4F5F93C2
S21400F9304F9345E0249F90011124235D3F4F3F9352
S21400F9402F9390E0880F991F880F991F8D969F938D
S21400F9508F9380EC90E19F938F93FF92EF92E091CC
S21400F9605506F0915606099588E28093A2046091A8
S21400F970E009661F6627661F4091D109441F442789
S21400F980441F2091C209221F2227221F8091B309FB
S21400F990881F8827881F5BE0659FB0011124635D80
S21400F9A07F4F7F936F939AE0499FA0011124435D98
S21400F9B05F4F5F934F93A9E02A9F90011124235D28
S21400F9C03F4F3F932F9390E063E0880F991F6A950F
S21400F9D0E1F78D969F938F938CEA90E19F938F9398
S21400F9E0FF92EF92E0915506F091560609958CE34A
S21400F9F08093A2048091EF09881F8827881FBCE0A7
S21400FA008B9FC00111248D969F938F938BE990E175
S21400FA109F938F93FF92EF92E0915506F0915606D2
S21400FA2009950FB6F894DEBF0FBECDBF8091FE09D4
S21400FA3087FF12C080E48093A20488E990E19F9338
S21400FA408F93FF92EF92E0915506F0915606099536
S21400FA500F900F900F900F9080910D0A87FF14C0A3
S21400FA6084E48093A20485E990E19F938F9388E5D0
S21400FA7095E79F938F93E0915506F091560609956A
S21400FA800F900F900F900F9080911C0A87FF71C007
S21400FA9088E48093A20482E990E13BC91092A20414
S21400FAA086E890E19F938F9388E595E79F938F93E1
S21400FAB0F80109958EEAA82E89E0B82E0F900F90CF
S21400FAC00F900F9004E010E024E192E6E92E90E11A
S21400FAD0F92E38E5C32E35E7D32E2093A204D501A0
S21400FAE08C911F928F93F501319780811F928F938F
S21400FAF03E9780811F928F93319780811F928F93BC
S21400FB003E9780811F928F93319780811F928F93AB
S21400FB103E9780811F928F93319780811F928F939B
S21400FB20FF92EF92DF92CF92E0915506F091560643
S21400FB302983099580911A0590E00FB6F894DEBFE8
S21400FB400FBECDBF2981081719079CF42C5EFCE375
S21400FB50AF0EB11C0C5F1F4F203509F0BECF09C099
S21400FB6080919002281303C0215020939002109297
S21400FB70A1041092A0040F90DF91CF911F910F91D6
S21400FB80FF90EF90DF90CF90BF90AF909F908F90B8
S21400FB907F906F905F904F9008951F932AE530E016
S21400FBA0281B390B37FF05C03195219531091FEF0A
S21400FBB001C011E0E8E6F1E0C901BF010E94D39A56
S21400FBC08B359105E4F09C012B5531092A3531051A
S21400FBD038F424EB30E0A901481B590BCA010FC0CA
S21400FBE09C01255B31092A35310518F4845B91099F
S21400FBF004C09F01281B390BC9016FEF01C061E0EB
S21400FC00FC01EE0FFF1FEB57FB4E259134911203BC
S21400FC10A001139F500D11246403C001659F900D31
S21400FC2011241F91089580E090E041E85FEF9C0169
S21400FC30220F331FF901E25FF74F853018F4118267
S21400FC40108202C051834083F901EC5AF74F1182AB
S21400FC50108201968332910551F78FE790E09093DA
S21400FC604D0880934C0881E89FEF90934B08809353
S21400FC704A0810924F0810924E08109252041092A2
S21400FC805104109254041092530410925604109289
S21400FC90550408951F920F920FB60F9211240BB6BB
S21400FCA00F922F933F934F935F936F937F938F9310
S21400FCB09F93AF93BF93CF93DF93EF93FF93809180
S21400FCC08600909187002091A5043091A604821B9F
S21400FCD0930B20918600309187003093A6042093E2
S21400FCE0A5049C012D543440C091A304D091A404D3
S21400FCF0233F3A4168F4C0930D08249714F01092FD
S21400FD00930281E090E09093A4048093A304B4C08F
S21400FD10C131D1050CF0B0C09C012B5F3109243BEA
S21400FD20314008F0A4C02091910230919202821BCB
S21400FD30930BA0918505FE01EE0FFF1FAA2351F03D
S21400FD40B0E0AA0FBB1FA25FB74F2D913C9124369F
S21400FD503105E4F4DF01A25FB74F2D913C91AC0171
S21400FD60421B530B9A0157FF03C031952195310969
S21400FD70263031055CF420910204283C20F42091C2
S21400FD800204265F01C028EC20930204DF01A25F74
S21400FD90B74F4D915C919A01220F331F240F351FE8
S21400FDA0280F391F37FF02C02D5F3F4F3595279527
S21400FDB035952795AC014F5F5F4F421753071CF4EC
S21400FDC02150310906C001972817390714F42F5F10
S21400FDD03F4F80910204DF01833CC0F0A25FB74F23
S21400FDE08D919C91A901481B590BCA0163E070E0F4
S21400FDF00E94D39ACB01880F991F860F971FDF01A9
S21400FE00AC5AB74F11969C938E9305C0AC5AB74F19
S21400FE1011961C921E92E25FF74F318320838091E9
S21400FE200204823320F5E0911C05F0E0EE0FFF1F80
S21400FE30E25FF74F11821082E0911D05F0E0EE0FB1
S21400FE40FF1FE25FF74F11821082E0911F05F0E07E
S21400FE50EE0FFF1FE25FF74F11821082E0911E0542
S21400FE60F0E0EE0FFF1FE25FF74F1182108221963F
S21400FE70D093A404C093A304FF91EF91DF91CF9198
S21400FE80BF91AF919F918F917F916F915F914F91AD
S21400FE903F912F910F900BBE0F900FBE0F901F90AB
S21400FEA018959FB7F8948091C9008F778093C90002
S21400FEB08091C9008F7B8093C9008091C9008F7D97
S21400FEC08093C9001092CD0088E18093CC00809189
S21400FED0C80082608093C80080E18093C90080914A
S21400FEE0CA008F778093CA008091CA008F7B809368
S21400FEF0CA008091CA008091CA008F7E8093CA0093
S21400FF008091CA0088608093CA008091C9008B7F68
S21400FF108093C9008091CA0084608093CA00809153
S21400FF20CA0082608093CA008091C80087FF03C021
S21400FF308091CE00F9CF8091C90080688093C90077
S21400FF408091B10884608093B1089FBF0895909116
S21400FF50AE04911108C08F3031F41092A80480E5E9
S21400FF608093AE040895E091A804EF5FE093A804A0
S21400FF70E83121F481E08093A9040895E93120F066
S21400FF8089E18093A8040895F0E0E656F74F808351
S21400FF900895CF92DF92EF92FF920F931F93CF9325
S21400FFA0DF938091B10882FDABC080916F008F7D9A
S21400FFB080936F00E0918505EE2351F0F0E0EE0FA0
S21400FFC0FF1FE25FF74F80819181843691055CF4D4
S21400FFD080910204883C20F4809102048C5E01C06B
S21400FFE088EC8093020480919B0890E02091A704FF
S21400FFF0222331F021502093A704F4E2CF2E05C02F
S21401000022E02093A704E8EACE2E20E031E0DD24AA
S214010010D394F12C72E0E72E41E0C5E0D0E003E096
S21401002010E0EE2DF0E0E656F74F5081542311F024
S214010030822B932B440F11F4E39441E0220F331FDC
S214010040211558E0350709F055C09450BE010E94AD
S214010050D39AED2DF0E0EE0FFF1FDF01A25FB74F41
S2140100608D919C919C01220F331F280F391F260F5B
S214010070371F37FF02C02D5F3F4F359527953595C2
S2140100802795CB010196821793071CF4215031095D
S21401009007C0615071092617370714F42F5F3F4FC9
S2140100A080910204DF01833CB8F0A25FB74F8D91C7
S2140100B09C91B901681B790BCB01B8010E94D39AB8
S2140100C0CB01880F991F860F971FDF01AC5AB74FD8
S2140100D011969C938E9305C0AC5AB74F11961C92FD
S2140100E01E92E25FF74F31832083D39480E090E045
S2140100F021E030E0F394FC1408F493CF10929302BD
S2140101001092A904DF91CF911F910F91FF90EF906C
S214010110DF90CF9008959FB7F8948091C9008F77AC
S2140101208093C9008091C9008F7B8093C90080911C
S214010130C9008F7D8093C9001092CD0084E1809321
S214010140CC008091C80082608093C80080E18093D3
S214010150C9008091CA008F778093CA008091CA0037
S2140101608F7B8093CA008091CA008F7D8093CA00DE
S2140101708091CA008F7E8093CA008091CA00877FD3
S2140101808093CA008091C9008B7F8093C9008091BB
S214010190CA0084608093CA008091CA0082608093FE
S2140101A0CA008091C80087FF03C08091CE00F9CFB6
S2140101B08091C90080688093C9009FBF089590917F
S2140101C09402913061F41092940284E48093AE0418
S2140101D01092AD041092AC041092AB04089521E085
S2140101E030E09091AE04992311F020E030E0909138
S2140101F0AC0491110EC0232B11F081E010C084E4F1
S2140102008093AE041092AD041092AC041092AB042D
S214010210EDC0913069F4232B09F0DEC082E08093B3
S214010220AC048091AD048F5F8093AD0483E0DCC0A5
S2140102309230D1F4232B09F0CFC093E09093AE0413
S2140102408093AB049091AD04923039F41092AA04D5
S21401025087FF03C081E08093AA0483E08093AC0407
S2140102609F5F9093AD04C2C0933009F0B5C0232BB5
S21401027009F0B2C09093AE0492E09093AC049091D2
S214010280AD049F5F9093AD04E091AB0490E09E2B8C
S21401029020914205213039F49370925063E070E06A
S2140102A00E94D39A14C0223051F49770945066E09D
S2140102B070E00E94D39AE695E695E6950AC093709B
S2140102C08856914097FD0196BC0175956795E69510
S2140102D0E695EF70F0E03196ED30F10508F086C056
S2140102E0EE0FFF1FDF01A25FB74F8D919C919B011F
S2140102F0281B390BC90137FF03C0919581959109D8
S214010300069704F5A0918505AA2351F0B0E0AA0F3F
S214010310BB1FA25FB74F8D919C918436910594F4D3
S21401032080910204883C30F480910204865F8093B9
S214010330020408C088EC8093020480916F008F7DD0
S21401034080936F00DF01A25FB74F8D919C919C0156
S214010350220F331F280F391F260F371F37FF02C002
S2140103602D5F3F4F3595279535952795CB010196FE
S214010370821793071CF42150310907C06150710997
S2140103802617370714F42F5F3F4F80910204DF01D1
S214010390843BC0F0A25FB74F8D919C91A901481B89
S2140103A0590BCA0163E070E00E94D39ACB01880F13
S2140103B0991F860F971FDF01AC5AB74F11969C9372
S2140103C08E9305C0AC5AB74F11961C921E92E25FEF
S2140103D0F74F318320830AC081E080939402109204
S2140103E0AD041092AA0484E48093AE048091AD0417
S2140103F0803198F08091AA04811106C08091940200
S214010400811102C0109293021092AD041092AA04B8
S2140104101092AC0484E48093AE04089584B1806A9B
S21401042084B93D9A82E58CBD1DBC459A81E08093D6
S214010430B3088AEA8093C40883E88093C5088AE0F3
S2140104408093C6081092C8081092C7081092CA086E
S2140104501092C90810922C091092E808089580910C
S214010460B308811172C00DB407FE6FC085E080939A
S214010470CA04459A8EB59091B204913061F018F095
S2140104809230A1F038C01092E7088093B104813809
S21401049091F581E008C0853541F58091B1048B5A0C
S2140104A08093B10482E08093B20425C0E091E7080E
S2140104B021E02E0F2093E708F0E0E75FF64F8083F8
S2140104C09091B1042032A0F089130DC080E2E9E0DA
S2140104D0F9E0A9EEB8E001900D928A95E1F781E086
S2140104E08093E80802C01092E8081092B20403C094
S2140104F0890F8093B1048091C3088232F0F4459845
S21401050000000000000000008091C308E091BC08D4
S214010510F091BD08E80FF11D80818EBD8091C30862
S214010520E091BC08F091BD08E80FF11D8081909123
S214010530E508890F8093E50803C081E08093B3083E
S2140105408091C3088F5F8093C3080895CF92DF928E
S214010550EF92FF92C090370524E0C29E60011124FD
S214010560EE24D7FCE094FE2C609140047091410487
S2140105708091420490914304A70196010E94089B32
S2140105803093C8082093C70860913C0470913D04DD
S21401059080913E0490913F04A70196010E94089B1A
S2140105A03093CA082093C90820914B0630914C0617
S2140105B040914D0650914E06AAE0B0E00E94459B40
S2140105C02091210130912201409123015091240173
S2140105D00E94089B3093D0082093CF0820915104A5
S2140105E0309152048091610390916203A901481BE6
S2140105F0590B5093D6084093D508E0914704F091E3
S21401060048048091160690911706BF010E94D39A5E
S21401061046E0469FC001479F900D112497FD039623
S21401062095958795959587959093CC088093CB085B
S2140106308091470690914806BF010E94D39A46E0F2
S214010640469FC001479F900D112497FD03969595EF
S2140106508795959587959093CE088093CD081092AF
S214010660480410924704109217061092160610922C
S2140106704806109247068091C60890E0FC013A971A
S214010680EA30F10508F087C2EA55FF4F0C94249B27
S2140106908091DE038093D9088091DD038093DA0888
S2140106A08091DC038093DB088091DB038093DC0878
S2140106B08091DA038093DD088091D9038093DE0868
S2140106C08091D8038093DF088091D7038093E00858
S2140106D08091C9038093E1088091C903837F809349
S2140106E0C903809152018093E20880911A0190918A
S2140106F01B018093E3088091C8038093E408429924
S2140107004AC28091C803877F8093C80344C2809100
S2140107101305909114059093DA088093D908809177
S214010720B0048093DB08809119058093DC088091E2
S2140107306C050E94FA308093DD0880912001809339
S214010740DE084091B0045FE0459FF0011124EC58AB
S214010750F64F86858093DF0880818093E008868146
S2140107608093E10883818093E20887818093E30880
S21401077085818093E4084F5F4093B00474E0479FFF
S214010780F0011124EC55FA4F858518160CF403C2B6
S2140107902DE030E0842F90E0FC01EE0FFF1FEE0FFE
S2140107A0FF1FEC55FA4F558515161CF44093B004FF
S2140107B0F2C1442331F00196B9010E94D39A482F21
S2140107C0E9CF1092B004E7C18091AF04811135C022
S2140107D08DE08093C60881E08093AF048091530139
S2140107E08093D90880916D058093DA0880916E0513
S2140107F08093DB0880916F058093DC0880917005FB
S2140108008093DD08809174058093DE0880917505DC
S2140108108093DF08809176058093E00880917905C2
S2140108208093E108809177058093E20880917805AE
S2140108308093E30880917A05ACC182E18093C60873
S2140108401092AF0480915504909156049093DA0863
S2140108508093D90880915304909154049093DC08B6
S2140108608093DB083093DE082093DD0880915F05D6
S2140108708093DF088091E6039091E70397FD039646
S21401088095958795959587958093E0081092E10850
S2140108901092E2081092E3081092E4087CC180915D
S2140108A06B058093D90880914205863081F080914E
S2140108B05A04823451F00E940558E82FF0E0E35DB7
S2140108C0FF4EE491E0935A0402C00E9405588091BD
S2140108D07F048093DA0880918D058093DB088091F0
S2140108E082058093DC088091BE038093DD088091A9
S2140108F088048093DE08809186048093DF088091C7
S21401090085048093E0081092880410928604109261
S214010910850480913701882329F080911A049091EB
S2140109201B0404C08091FE059091FF059093E20898
S2140109308093E108809191058093E3088091920568
S21401094028C1F894E0911E05F0E0EE0FFF1FE25F6C
S214010950F74F8081918181382FEF920714F481E857
S2140109609FEF8038910514F08FE790E08093D908C7
S214010970E0911F05F0E0EE0FFF1FE25FF74F808169
S214010980918181384FEF940714F481E89FEF803806
S214010990910514F08FE790E08093DA08E0911D0549
S2140109A0F0E0EE0FFF1FE25FF74F80819181813803
S2140109B05FEF950714F481E89FEF8038910514F0F6
S2140109C08FE790E08093DB08E0911C05F0E0EE0FE6
S2140109D0FF1FE25FF74F8081918181387FEF970794
S2140109E014F481E89FEF78948038910514F08FE72E
S2140109F090E08093DC08809103048093DD08809169
S214010A0004048093DE08809105048093DF088091BA
S214010A1006048093E008809107048093E1088091A2
S214010A2008048093E208809109048093E30880918A
S214010A300A04AFC080915A0A853018F010925A0AFB
S214010A4085E08093D90880917B058093DA086091D0
S214010A50FC037091FD038091FE039091FF0345E036
S214010A60C42ED12CE12CF12CA70196010E94089BE3
S214010A703093DC082093DB086091F8037091F9034A
S214010A808091FA039091FB03A70196010E94089BAF
S214010A903093DE082093DD08809171058093DF088E
S214010AA0809172058093E008809173058093E10838
S214010AB0809102048093E20880919D048093E3086C
S214010AC08091330C9091340C97FD039695958795FC
S214010AD0959587955EC082E08093D90888E08093DB
S214010AE0DA081092DB0887E48093DC0880915401D1
S214010AF08093DD0890913F0A9093DE088091400A2A
S214010B008093DF089F7790933F0A80718093400A15
S214010B1080918E058093E008809139068093E108E4
S214010B2080911D068093E20880917E058093E308FC
S214010B30809196052EC08091170590911805909387
S214010B40DA088093D90880912F018093DB08809181
S214010B502E018093DC0880915D0C8093DD088091E6
S214010B60C7038093DE0880917C058093DF0880911F
S214010B7001068093E00880915E0490915F04909353
S214010B80E2088093E108809152058093E308809102
S214010B90420A8093E4088091E808882309F460C13A
S214010BA06091E90880919502681719F08AEF8093A1
S214010BB0A4026093950281E080934D012091EA089A
S214010BC03091EB08C90181509E4F8F3F9340B0F49E
S214010BD08091EC089091ED08AC0141505E4F4F3F7B
S214010BE0534060F44091280545FF08C030936904DE
S214010BF02093680490936704809366048091F008BC
S214010C009091F108893621E0920724F490934F01E0
S214010C1080934E018091FA089091FB082091CB04B5
S214010C203091CC042817390740F42091640421112F
S214010C3004C09093CC048093CB04693609F484C035
S214010C40D8F5673609F43FC0683609F011C18091BE
S214010C50FC088093BE088091FD088093BF088091B0
S214010C60FE088093C0088091FF088093C108809198
S214010C7000098093C208809101099091230C892B69
S214010C808093230C809102098C709091240C9370B0
S214010C90892B8093240C809103098093B904809159
S214010CA00409809396028091050980932C0980910E
S214010CB006098093B504DCC06A3609F4CBC06B36EE
S214010CC009F48EC0D5C08091FC08809329098091D3
S214010CD0FD0880932B098091FE0880932A09809154
S214010CE0FF0880934C018091000980932D09809123
S214010CF001098093A502809102098093BC0480912A
S214010D000309809365048091D603882351F080916E
S214010D1004099091050997FD04C090931B048093E4
S214010D201A048091B3049091B4042091060930917D
S214010D300709820F931F97FD0196959587959093C6
S214010D40B4048093B30494C08091FC088093B408E3
S214010D508091FD088093B5088091FE088093B608BF
S214010D608091FF088093B70880910009909101094E
S214010D709093B9088093B80880910209909103096D
S214010D809093BB088093BA0820914808309149088F
S214010D9080910409213841F49091BB04911104C05B
S214010DA09FE7980F9093BB04992787FD90959093A2
S214010DB0490880934808809105098093F103A09122
S214010DC00609B09107092AE030E00E943F9B609334
S214010DD0F2037093F3038093F4039093F50348C0F2
S214010DE08091FC088093B8048091FD088093B70435
S214010DF08091FE088093B6048091FF08882349F00D
S214010E0090915701992319F09151933010F48093E2
S214010E10570180910209909103099093840480936D
S214010E2083048091000980938B048091010980934B
S214010E308A0480910409809389048091050980932E
S214010E408704809106099091070990934306809341
S214010E5042060EC0FF90EF90DF90CF900C946B5837
S214010E601092690410926804109267041092660446
S214010E70FF90EF90DF90CF9008958091B30888237C
S214010E8021F1459884EC98E09093BD088093BC08C6
S214010E90E091BA0481E08E0F8093BA04F0E0E9563F
S214010EA0FD4F90819093C6088D3010F01092BA04D1
S214010EB01092B3084BDB81E08093C3088091C4088D
S214010EC08093E5088EBD81E0089580E008951F9225
S214010ED00F920FB60F9211242F933F935F936F9348
S214010EE07F938F939F93AF93BF938091CA04882378
S214010EF029F08091CA0481508093CA048091AE047F
S214010F00882319F081508093AE048091C104811129
S214010F1051C089E08093C1048091D0049091D1049E
S214010F2001969093D1048093D0048091A6028F5F9E
S214010F3081708093A602811109C08091CF0484300C
S214010F4028F48091CF048F5F8093CF04349903C037
S214010F5081E08093C8048091CB049091CC04892BC6
S214010F6011F18091CB049091CC040B9750F08091B5
S214010F70CB049091CC040A979093CC048093CB0435
S214010F8004C01092CC041092CB048091CB049091B3
S214010F90CC042091A9023091AA0282239323892BA3
S214010FA009F064C061C08FEF9FEF9093AA0280930F
S214010FB0A9025AC081508093C1048091C804882335
S214010FC009F456C08091A402811152C0809139065D
S214010FD083FF4EC0349B10C08091CD049091CE0407
S214010FE001969093CE048093CD04893E934008F4F5
S214010FF03FC01092C8043CC08091CD049091CE04AD
S214011000892B69F18091CD049091CE048A36914066
S21401101030F52091CD043091CE048091CD0490918D
S214011020CE0469E270E00E94BF9A620F731F70934C
S214011030CE046093CD048091CD049091CE040B979D
S21401104050F08091CD049091CE040A9790934F0171
S21401105080934E0104C010924F0110924E011092DF
S214011060CE041092CD0404C04798A7CF479AA5CFC7
S214011070BF91AF919F918F917F916F915F913F91BA
S2140110802F910F900FBE0F901F9018952091D004AE
S2140110903091D1042F5F3F4F820F931F0895209107
S2140110A0D0043091D104821B930B88279078892F26
S2140110B0869508951F93CF93DF93C091D004D09166
S2140110C0D1042196C80FD91F1FECCE01E8DF81118C
S2140110D009C080910F018823C1F310920F0110936C
S2140110E07A00F3CFDF91CF911F9108959FB7F894BF
S2140110F05F983E9A469AE0EBF0E080818F7080839D
S214011100808183608083A1EBB0E08C918B738C939C
S2140111108C918B608C931092B2008FEF8093B3000A
S214011120808180688083E0E7F0E080818A7F808329
S2140111308081826080839FBF08958091D0049091C2
S214011140D1040B9690932F0980932E0982E085BDDA
S21401115083EB84BD8FEF88BD84EB87BD86E086BDBB
S214011160EEE6F0E080818160808308959091940599
S21401117080912F0192FF2EC020914B0540914A0588
S21401118060E5469FA001112490E8980F97FF02C0E2
S21401119093E8980F392F359535958091A702909150
S2140111A0A80266E0360280199109112448175907EA
S2140111B02CF05093A8024093A70208954CE3249F75
S2140111C090011124821793074CF03093A8022093C4
S2140111D0A702089560E4869FC00111249093A80297
S2140111E08093A70208958F929F92AF92BF92CF925B
S2140111F0DF92EF92FF921F93CF93DF93E091520518
S214011200F0E0E553FD4FA681D0818091AF02C091F9
S2140112109405813009F0F5C08091960587FD2FC0B1
S214011220209140043091410440914204509143047E
S214011230BB27A7FDB0950E944F9BE0E88E2E912C10
S214011240A12CB12CA50194010E94089B69017A0189
S21401125020913C0430913D0440913E0450913F045E
S214011260AD2FBB27A7FDB0950E944F9BA50194010A
S2140112700E94089BC21AD30AE40AF50A03C0C12CCD
S214011280D12C760160912D012091B3043091B404E4
S21401129047E0429FC001439F900D1124AA2797FD66
S2140112A0A095BA2FA7019601281B390B4A0B5B0B99
S2140112B0A62FB0E00E94459B20E032E040E050E0DF
S2140112C00E94089B69017A018091A7029091A80269
S2140112D0C2FF05C09093AE028093AD0215C0209167
S2140112E0AD023091AE024091AD025091AE02841B28
S2140112F0950B6091510570E00E94D39A260F371F17
S2140113003093AE022093AD022091AD023091AE0231
S214011310C0FF14C037FF02C0215F3F4FC90164E020
S214011320959587956A95E1F74C01AA2497FCA094B8
S214011330BA2C8C0C9D1CAE1CBF1C13C037FF02C000
S214011340215F3F4FC90154E0959587955A95E1F77E
S2140113504C01AA2497FCA094BA2C8C189D08AE08C0
S214011360BF08C0908605CC2021F12091C40430919D
S214011370C504D12C2C9DA0012D9D500D3C9D500DDA
S2140113801124BA01882777FD8095982F680D791D5D
S2140113908A1D9B1D2FEFC21AD20A9601442737FDDC
S2140113A04095542F0E94089B3093C5042093C40493
S2140113B004C09092C5048092C4042091C404309164
S2140113C0C50480914A0544E0849FC0011124281772
S2140113D039076CF02091C4043091C50480914B0507
S2140113E064E0869FC00111248217930724F490932A
S2140113F0C5048093C4048091AF028F5F8093AF02CF
S214011400D2C010912C0120913C0430913D044091B2
S2140114103E0450913F04BB27A7FDB0950E944F9B09
S21401142040E8842E912CA12CB12CA50194010E9498
S214011430089B69017A012091400430914104409152
S214011440420450914304AD2FBB27A7FDB0950E94DF
S2140114504F9BA50194010E94089BC20ED31EE41E59
S214011460F51EA12FB0E0A70196010E94459B20E042
S21401147032E040E050E00E94089B69017A01209129
S214011480AB023091AC0280912E014091AB0250919B
S214011490AC0260E4869FC0011124841B950B609109
S2140114A0510570E00E94D39A260F371F3093AC0285
S2140114B02093AB022091AB023091AC02C1FF14C065
S2140114C037FF02C0215F3F4FC90134E095958795EC
S2140114D03A95E1F74C01AA2497FCA094BA2C8C0CFF
S2140114E09D1CAE1CBF1C13C037FF02C0215F3F4FBF
S2140114F0C90124E0959587952A95E1F74C01AA2420
S21401150097FCA094BA2C8C189D08AE08BF08C09012
S2140115108705CC2021F12091C2043091C304D12C3F
S2140115202C9DA0012D9D500D3C9D500D1124BA01FE
S214011530882777FD8095982F680D791D8A1D9B1D3C
S2140115402FEFC21AD20A9601442737FD4095542F31
S2140115500E94089B3093C3042093C20404C0909257
S214011560C3048092C2042091C2043091C3048091C6
S2140115704E0544E0849FC0011124281739076CF0FA
S2140115802091C2043091C30480914F0564E0869F88
S214011590C00111248217930724F49093C304809307
S2140115A0C2041092AF02DF91CF911F91FF90EF908E
S2140115B0DF90CF90BF90AF909F908F9008951F922D
S2140115C00F920FB60F9211240BB60F922F933F93E3
S2140115D04F935F938F939F93EF93FF938091C004F4
S2140115E08111CAC09091B0008091500596FF8DC0C0
S2140115F09091B0009F7B9093B000E091BF04E11101
S21401160017C04DED56E0849F9001859F300D112443
S2140116108091BD049091BE04281B390B3093C704FA
S2140116202093C6041092BE041092BD04469AA1C02F
S2140116308E1738F48AE090E09093C7048093C6042E
S21401164098C089EA93E09093C7048093C604E33078
S214011650C1F048F4E13071F0E230F9F48091C2044F
S2140116609091C3040BC0E43079F0E530B1F4809179
S2140116701E060CC08091C4049091C50487559E4FE8
S21401168017C08091150602C08091F60524E0829F5E
S214011690C001112487559E4F0BC0F0E0EE0FFF1FCF
S2140116A0E25FF74F80819181880F991F87559C4F84
S2140116B09093C7048093C6048091C6049091C70492
S2140116C08D3D25E0920718F08CED95E005C0873733
S2140116D0914030F487E791E09093C7048093C60465
S2140116E02091C6043091C7042C5B31093093C7049E
S2140116F02093C6048091BD049091BE04820F931F6F
S2140117009093BE048093BD0434C09091B000906461
S2140117109093B0002CEB30E03093C7042093C604BE
S2140117202091BD043091BE0424543F4F3093BE0433
S2140117302093BD049091C904992321F0909102044D
S214011740911104C09091C904923011F4469801C0D9
S214011750469A2091BF042F5F2093BF0430E090E0AB
S2140117600196821793072CF481E08093AF021092C2
S214011770BF0481E08093C0048091C6049091C704A1
S2140117808F3721E0920788F48F3F9105E1F0D8F07A
S2140117908E37914051F080E88093B3008091C60463
S2140117A09091C7048058910909C08FEF8093B300C8
S2140117B08091C6049091C7048F5F91099093C704E6
S2140117C08093C60408C08093B3001092C704109299
S2140117D0C6041092C004FF91EF919F918F915F9183
S2140117E04F913F912F910F900BBE0F900FBE0F9010
S2140117F01F9018959FB7F8943998389A28B12360A6
S21401180028B92091B9002C7F2093B9002AE22093B1
S214011810B8001092E1041092E0041092DF048111E6
S21401182003C078949FBF0895E2E8F9E0DF011E97B0
S2140118301C9211961C9211961C9211961C9211964E
S2140118401C9211961C9211961C9211961C92108253
S21401185011961C9211961C9211961C9211961C922E
S21401186011961C9211961C923F968AE0E633F80771
S214011870E9F6D7CF0F931F93CF93DF931092E1042E
S214011880CCEBD0E084E9888380E888831092BD00A1
S2140118901092BA000BEB10E0F80110821092B9001A
S2140118A01092B8001092DE0480E0A4DFF8011082E6
S2140118B085E888838091DC0482608093DC04DF9174
S2140118C0CF911F910F9108951F920F920FB60F920D
S2140118D011240BB60F922F933F934F936F937F93E1
S2140118E08F939F93AF93BF93EF93FF938091E10400
S2140118F091E0980F9093E10490E08730910508F00D
S21401190088C2FC01E055FF4F0C94249B81E0809334
S214011910DE04E091E00434E0E39FF0011124EC558D
S214011920FA4F8585181654F08091E0048C3030F417
S2140119308091E0048F5F8093E004EBCF8091E00418
S2140119406CE00E94B39A9093E0048091D7048F5F75
S2140119508093D7049091B202981770F41092D7042E
S2140119601092DB041092DA0485E08093E104809102
S214011970DF04880F8D5A04C08091E004880F8E5AC8
S2140119808093BB0085E88093BC0059C2A091E00417
S2140119908FE08A9FD0011124AC58B64F11969C91C6
S2140119A09093BB0095E89093BC00A091E0048A9FB9
S2140119B0D0011124AC58B64F9C9190FF79C0E091AC
S2140119C0E0048E9FF0011124EC58F64F82818823A3
S2140119D029F080911A05873008F431C28091DA0423
S2140119E09091DB04892B09F02AC28091D80490914A
S2140119F0D904892B09F023C25BC04091E0042091F1
S214011A00D8043091D90481E090E002C0880F991F74
S214011A104A95E2F782239323E091E004892B49F06B
S214011A208FE0E89FF0011124EC58F64F80E18483A3
S214011A3007C03FE0E39FF0011124EC58F64F1482F3
S214011A40A091E004E091E0042FE02A9FD001112448
S214011A50AC58B64F14968C9138E0839FC001112480
S214011A602E9FF0011124EC58F64F92819770982B17
S214011A709093BB0085E88093BC004091E0042091E0
S214011A80DA043091DB0481E090E002C0880F991FF0
S214011A904A95E2F782239323892B51F08CE699E04D
S214011AA09093D6048093D50488E08093D404C7C16C
S214011AB084E0ACC1E091D504F091D6048081809396
S214011AC0BB0085E88093BC008091D5049091D60434
S214011AD001969093D6048093D5048091D4048150C6
S214011AE08093D404882309F4AAC183E08FC180912E
S214011AF0B900803301F58091D304811105C080912E
S214011B00E0048F5F8093D304A091E0049FE09A9F46
S214011B10D0011124AC58B64F13968C918F778F371E
S214011B2051F0E091E0049E9FF0011124EC58F64F2D
S214011B3083818F5F83831092E10484E98093BC00E4
S214011B408AE090E09093B1028093B0028091E00425
S214011B508F5F8093E0041092E1048091DC048E7F15
S214011B608093DC0485EA0FCF8091B900E091DF0411
S214011B70803489F18FE0E89FF0011124EC58F64F8C
S214011B8083818F7783838091DF048F5F8093DF0467
S214011B908C30A0F01092DF041092D9041092D80471
S214011BA08091D2048F5F8093D2048C3038F01092EB
S214011BB0D2048091DC048D7F8093DC048091DC0468
S214011BC081608093DC041092E10484E98093BC0078
S214011BD01092DE046AC08FE08E9FF0011124EC584B
S214011BE0F64F938190689383A091DF048A9FD0017A
S214011BF01124AC58B64F9C9190FF34C0A091DF04DD
S214011C008A9FD0011124AC58B64F14969C91992303
S214011C10A9F0903109F040C02CE639E03093D604A3
S214011C202093D50498E09093D404E091DF048E9F2E
S214011C30F0011124EC58F64F14822EC09091DF0467
S214011C40899FC00111248758964F9093D60480939C
S214011C50D5049091DF048091D20498131AC0809124
S214011C60B30218C09091DF04899FC00111248758E0
S214011C70964F9093D6048093D5048091DC0481FD21
S214011C8006C09091DF048091D204981302C082E0CE
S214011C9001C081E08093D4048091D404813011F492
S214011CA085E801C085EC8093BC008091D3048093C5
S214011CB0DD041092D304C3C08091BB00E091D5042B
S214011CC0F091D6048193F093D604E093D5048091E5
S214011CD0D40481508093D404823010F085EC03C084
S214011CE0813029F485E88093BC0086E08FC080911E
S214011CF0DC0481FF48C08091C90380FD44C0A091E7
S214011D00DF048FE08A9FD0011124AC58B64F169697
S214011D109C919C7FE091DF048E9FF0011124EC588A
S214011D20F64F983F21F480818160808301C0108244
S214011D30A091DF048FE08A9FD0011124AC58B64FE2
S214011D4016969C91983F51F4E091DF048E9FF00126
S214011D501124EC58F64F8081866014C0A091DF04F0
S214011D608A9FD0011124AC58B64F16969C91993F84
S214011D7051F4E091DF048E9FF0011124EC58F64FE8
S214011D808081846080838091C90381FF19C0A091FE
S214011D90DF048FE08A9FD0011124AC58B64F169607
S214011DA09C919E3F68F4E091DF048E9FF001112420
S214011DB0EC58F64F86858F5F868789E080935701BA
S214011DC08091DF048F5F8093DF048C30A0F0109247
S214011DD0DF041092D9041092D8048091D2048F5F48
S214011DE08093D2048C3038F01092D2048091DC04B7
S214011DF08D7F8093DC041092E10484E98093BC001B
S214011E008091DC0481608093DC0417C08093E10438
S214011E1016C01092E10484E98093BC008091DC0432
S214011E2081608093DC048AE090E09093B102809315
S214011E30B0021092E0041092DF041092DE04FF91CB
S214011E40EF91BF91AF919F918F917F916F914F913C
S214011E503F912F910F900BBE0F900FBE0F901F90CA
S214011E6018950F931F93CF93DF93182F809101043A
S214011E7081118AC08091F304811186C01D3010F053
S214011E8082E089C0112391F0212F30E021503109E1
S214011E908FE0829FF001839FF00D1124EC58F64FDE
S214011EA0838187FFEDCF808180FF70C080916C09B0
S214011EB08B70823009F06CC067E070E08CE699E0C8
S214011EC00E944F2190917309891364C00091B20258
S214011ED08CE08093B20224E630E03093B102209386
S214011EE0B00284E690E0D2D8EC018091DC0480FF59
S214011EF009C011110CC08FEF9FE09093DB04809313
S214011F00DA0411C0CE01CBD8882379F3F2CF115071
S214011F1021E030E002C0220F331F1A95E2F730931A
S214011F20DB042093DA041092E0041092DF0488EEBA
S214011F3093E0ACD8EC0115EA1092E1048091DC0440
S214011F408E7F8093DC041093BC008091DC0480FFBC
S214011F5007C08091DA049091DB04892B31F409C023
S214011F60CE019DD8882389F3F4CFCE0198D8882353
S214011F7019F30093B2028091DA049091DB04892B65
S214011F8009F07ECF80E007C081E005C083E003C092
S214011F9084E001C085E0DF91CF911F910F910895F4
S214011FA00F931F93CF93DF939091010491116AC011
S214011FB09091F304911166C08D3008F067C08823B4
S214011FC009F462C0C82FD0E021978FE08C9FF00102
S214011FD08D9FF00D1124EC58F64F838187FF56C074
S214011FE0808180FF55C088EE93E050D88C018091A7
S214011FF0DC0480FF15C081E090E002C0880F991FC5
S214012000CA95E2F79093D9048093D8041092E0041D
S2140120101092DF0410926C0910927309C5EA17C07A
S214012020C8013DD8882319F3E6CFC80138D88111F5
S21401203004C08091DC0480FFF8CF8091D804909191
S214012040D904892B71F0C8012AD881110AC01092CF
S214012050E1048091DC048E7F8093DC04C093BC0095
S214012060E8CF80916C098B708230A1F467E070E054
S2140120708CE699E00E944F2190917309891761F0CF
S21401208085E00BC081E009C086E007C082E005C09C
S21401209083E003C084E001C080E0DF91CF911F910F
S2140120A00F9108951F920F920FB60F9211240BB63F
S2140120B00F922F938F939F93EF93FF938091B70285
S2140120C081111CC08091E8049091E90401969093D7
S2140120D0E9048093E804FC01E95BF44F20812D308C
S2140120E019F08C3D910539F41092E9041092E80438
S2140120F081E08093B7022093C60004C01092E904E1
S2140121001092E804FF91EF919F918F912F910F907C
S2140121100BBE0F900FBE0F901F9018951F920F9237
S2140121200FB60F9211240BB60F922F933F934F9336
S2140121305F936F937F938F939F93AF93BF93CF9349
S214012140DF93EF93FF938091EA04813029F4809125
S214012150C6008093CE00C5C08091EA04823029F47F
S2140121608091C6008093690ABCC08091C6008093A6
S214012170FA046091E7046C3D10F01092E604909129
S214012180FA048091E6049D3009F062C0823009F0BD
S2140121905FC01092E604262F30E0E901C959D54FF9
S2140121A05881D901A859B54F4C918091E40490917A
S2140121B0E504851B9109841B91099F709093E504A2
S2140121C08093E404AC0196E0569547959A95E1F71D
S2140121D0435C4093E3048F73835C8093E2049881AD
S2140121E0491303C09C91891739F08091F8048F5FD9
S2140121F08093F80480E001C081E09091F904911188
S21401220070C0882309F46DC081E08093F9046F5F84
S2140122106093F704F901E759F54F8DE080838091CB
S2140122206B0A823509F05DC080910104811159C0A5
S2140122300E9465752CE088E190E00FB6F894A895A9
S214012240809360000FBE209360001092C90449C0BD
S2140122508130D1F018F0823031F141C08091FA041A
S214012260833239F48091F904811103C081E08093AF
S214012270E60481E08093E7048091FA048093690A7A
S2140122808091FA0490E026C082E08093E60481E023
S214012290860F8093E704E62FF0E08091FA04E75971
S2140122A0F54F80830FC0E62FF0E08091FA04E759DE
S2140122B0F54F80836C3D20F46F5F6093E70402C0A6
S2140122C01092E6042091FA048091E4049091E504CA
S2140122D0820F911D9093E5048093E40402C010924E
S2140122E0E604FF91EF91DF91CF91BF91AF919F915E
S2140122F08F917F916F915F914F913F912F910F90A9
S2140123000BBE0F900FBE0F901F90189520E030E087
S21401231040E050E0F901E95BF44FB9016F5F7F4F90
S2140123202817390729F02081420F511D9B01F2CF52
S2140123305F70CA0156E0969587955A95E1F7835CDA
S21401234080834F73435CFB01E95BF44F4083F901E3
S214012350E75BF44F8DE080831092B7028091470BC4
S2140123608093C6000895CF92DF92EF92FF920F936B
S2140123701F93CF93DF93CDB7DEB78C851D8593E290
S2140123809093470B8F598093480B8B858093490B0D
S214012390FE013E96112339F04E855F8522813381F9
S2140123A01150349604C020E030E040E050E000E0F8
S2140123B083E090E02115310509F486C071E0700FC5
S2140123C0DA01A00FB11DDC9021503109211531052C
S2140123D089F4112309F482C040815181BF016C5FE9
S2140123E07F4F228133811150FB0170E021153105A9
S2140123F009F474C061E0670FDA01A70FB11DFC9004
S214012400215031092115310581F4112309F468C0E1
S21401241040815181BF016C5F7F4F22813381115012
S214012420FB0121153105B1F060E001E0060FDA018C
S214012430A60FB11DEC90215031092115310561F42B
S214012440112351F0408151812281338111503496FC
S21401245000E002C000E0E12C6D2D66956695635C98
S214012460DC01A95BB44F6C937F2D72957F70AD2D07
S214012470A37060E1A69FD00111247A2B735CDC0166
S214012480A85BB44F7C936C01A3E0CA0ED11C7F2DD0
S2140124907F7064E0769FD0011124FE2CF294F694AE
S2140124A0F69463E0F622FA2AADE3FA0EBC01675B06
S2140124B0744FDB01FC9204966E2D6F73635CD6013C
S2140124C0A95BB44F6C9376CF21DFDF91CF911F913B
S2140124D00F91FF90EF90DF90CF900895F12C01C0FF
S2140124E0762F072F20E030E0B6CFCF93DF937091A1
S2140124F0F704765063E0C3E0772309F44CC0EC2F71
S214012500F0E0E759F54F4081E1E0EC0FF0E0E759E4
S214012510F54F20812D53E2E0EC0FF0E0E759F54F3F
S21401252080818D53E3E0EC0FF0E0CC5FE759F54F87
S214012530D081B22FB295BF704D5394E0499FA00150
S2140125401124B42B90E1299F90011124382F369540
S2140125503695322B20E4829FC0011124DD53D82BFF
S214012560A1E0A60FE62FF0E0E759F54FB0837130F2
S21401257079F0E2E0E60FB0E0A759B54F3C93723030
S21401258049F06D5FF0E0E759F54FD0837350B4CF53
S2140125906A2F01C06E2F8CE69AE09093F604809322
S2140125A0F50463506093F404DF91CF9108951F936F
S2140125B0CF93DF9300D0CDB7DEB78091F90488239F
S2140125C009F4B4C392DF80916A0A823609F08BC29D
S2140125D080916B0A803709F48AC088F48A3609F438
S2140125E0F1C130F48B34F9F0863609F42DC17BC283
S2140125F08D3609F453C08E3609F440C074C2843750
S214012600E9F038F4813709F479C0833709F4D2C088
S2140126106AC2873709F49EC1893709F44DC18537E7
S21401262009F061C264C1E091F504F091F60480817D
S214012630918190934F0180934E0155C28091F7048A
S214012640E091F504F091F604853140F080E1A4E4D0
S214012650BAE001900D928A95E1F70CC080819181D4
S214012660A281B3818093440A9093450AA093460AB7
S214012670B093470A80EF8093F3043CC08091B70281
S2140126808823E1F31F928DE48F9384EA95E09F936C
S2140126908F9381E08F938F938EE426C0E091F504AB
S2140126A0F091F6041081113081F48DE4A4EAB5E0CE
S2140126B001900D928A95E1F70E94A7231A838091D3
S2140126C0400A8F7E8093400A01C01A828091B70229
S2140126D08823E1F31F9221E02F93CE0102969F9368
S2140126E08F932F932F938DE48F933DDE65C181E009
S2140126F08093FC048FEF8093B502F5C180910104AD
S21401270081113EC0E091F504F091F604808196EFC8
S214012710980F9A3060F4911102C081E005C096309E
S21401272010F49A8302C085E08A8361E00FC09CEEB4
S214012730980F9A3078F4911102C081E005C0963066
S21401274010F49A8302C085E08A8360E08A810E9441
S214012750712412C08A838F3F19F40E9403248A834E
S2140127608A81811102C081E003C0863010F085E0C5
S2140127708A838A810E944B2380E00E946B5103C0AA
S2140127800E9403248A838091B7028823E1F31F9273
S21401279088E88F938BE195E09F938F931F9221E0BA
S2140127A02F93CE0102969F938F9382E08F932F9360
S2140127B081E500C18091F5049091F604FC01208129
S2140127C02150253088F52181273671F520910104A5
S2140127D021112AC0319628E8ABE1B5E001900D92AF
S2140127E02A95E1F7FC0180810E94202420915C0556
S2140127F030E0A4ECB9E034D760934601709347010A
S214012800809348019093490120915D0530E028D7D7
S2140128106093420170934301809344019093450174
S2140128200E9403248A8301C01A828091B7028823FA
S214012830E1F31F9221E02F93CE0102969F938F938F
S2140128402F932F9383E520C08091010481114BC102
S214012850E091F504F091F60480819FEF980F953092
S21401286010F40E944B230E9403248A838091B702AE
S2140128708823E1F31F9221E02F93CE0102969F93C6
S2140128808F932F932F9386E48F936DDD0FB6F89475
S214012890DEBF0FBECDBF80910104811108C06EE678
S2140128A070E08A810E949F2680E00E946B51809191
S2140128B042050E94D81717C11A828091F50490919B
S2140128C0F6044A814C3008F00EC1E42FF0E0DC013A
S2140128D0AE0FBF1F2C91332727FD3095EE0FFF1F3C
S2140128E0E05DF74F318320834F5F4A83EACFE09163
S2140128F0F504F091F604808153DB8983811103C0CE
S21401290081E08A8301C01A828091B7028823E1F3AD
S2140129101F9288E08F938CE699E09F938F931F9286
S21401292021E02F938091F6048F938091F5048F9385
S2140129301F922F93CE0101969F938F931F922F93F1
S21401294001969F938F9384E08F932F9385E58F93C2
S2140129500ADD32C08091F404893008F4C4C0809145
S214012960F5049091F60428E0FC013196ACE6B9E056
S21401297001900D922A95E1F7FC01808172DA898334
S214012980811103C081E08A8301C01A828091B70257
S2140129908823E1F31F9221E02F93CE0101969F93A6
S2140129A08F931F922F9301969F938F9382E08F931D
S2140129B02F9387E58F93D7DC0FB6F894DEBF0FBE53
S2140129C0CDBF91C08091010481118DC00E948F17E7
S2140129D08A83823019F0843009F085C0F89480919A
S2140129E0C1008F738093C1008091C9008F7380935B
S2140129F0C9008091C100877E8093C1008091C90083
S214012A00877E8093C9008091C80087FF03C08091AC
S214012A10CE00F9CF8091C00087FF03C08091C60029
S214012A20F9CFE091F504F091F6048081813021F42C
S214012A3082E08093EA042DC0843611F080E401C060
S214012A4081E891E09093EA041092CD008093CC0047
S214012A508091CD008093C5008091CC008093C40006
S214012A608091CA008F7D8093CA008091CA008F7EB4
S214012A708093CA008091C9008B7F8093C9008091A2
S214012A80CA0084608093CA008091CA0082608093E5
S214012A90CA008091CA00877F8093CA008091C200D5
S214012AA0877F8093C2008091C9008E7F8093C90082
S214012AB08091C10088618093C1008091C9008861BE
S214012AC08093C9008091C10080688093C100809185
S214012AD0C90080688093C90010926E0010926F0042
S214012AE010927000789480916B0A843609F4A7C01E
S214012AF0C8F4813609F460C070F48B3409F00EC155
S214012B00E091F504F091F6048081918190934F0154
S214012B1080934E0103C1823609F459C0833609F405
S214012B2069C0FCC08C3609F4D9C038F4873609F47C
S214012B30F2C0883609F4A1C0F1C0843721F0863787
S214012B4009F4DAC0EBC08091F704E091F504F09146
S214012B50F604803140F080E1A4E4BAE001900D92E1
S214012B608A95E1F70CC080819181A281B38180931F
S214012B70440A9093450AA093460AB093470A809167
S214012B80B7028823E1F31F928091B4028F9384E504
S214012B908F93E9DB8AEF8093F3048FEF8093B5027E
S214012BA080EA9FE00E9446889093EC048093EB04B1
S214012BB00F900F900F90B2C0E091F504F091F604DB
S214012BC08081803208F08FE18093B6020FC0E091D9
S214012BD0F504F091F6048BE0ACE5BAE001900D92B5
S214012BE08A95E1F78091650A8093650C8FEF809353
S214012BF0B50294C08091EF049091F004892B89F47A
S214012C00E091F504F091F6048081882351F0EAE022
S214012C108E9FC00111240E9446889093370A8093A4
S214012C20360AE091F504F091F6048081FAE08F9F70
S214012C30C00111249093F0048093EF0415C08FEF28
S214012C408093B502E091F504F091F60480812AE0C4
S214012C50829FC00111249093F2048093F104892B82
S214012C6019F081E08093FE0480EA9FE00E94468886
S214012C709093EC048093EB0451C08FEF8093B502E0
S214012C80E091F504F091F604808187FD08C082E0AA
S214012C908093FB041092EE041092ED041BC0982F53
S214012CA090958091A004892B8093A0048181EAE00D
S214012CB08E9FC00111249093EE048093ED0484E06E
S214012CC08093FB0480EA9FE00E9446889093EC0480
S214012CD08093EB0481E08093FF0420C08FEF809304
S214012CE0B502E091F504F091F60480818093A10489
S214012CF081E08093000512C08091F404882339F0A6
S214012D00E091F504F091F6048081823009F081E0CB
S214012D108093FD0403C081E0809301051092F904BD
S214012D201092F6041092F5041092F4040F900F908E
S214012D30DF91CF911F9108959091C00095FFFCCF30
S214012D408093C6000895E1ECF0E088E18083A0EC72
S214012D50B0E08C9182608C938081806880838081D2
S214012D60806480831092C5008AE28093C4008091BB
S214012D70F1049091F2040E9446889093390A809358
S214012D80380A8CED90E00E9446889093680A8093FA
S214012D90670A82E080933A0A88E080933B0A1092A1
S214012DA03E0A8BE080933C0A10923D0A8FEF809397
S214012DB0420A809154018093410A1092F6041092BF
S214012DC0F5041092F40408950F931F93CF93DF93A5
S214012DD0CDB7DEB760970FB6F894DEBF0FBECDBF96
S214012DE08091B702882309F483C28091EB04909105
S214012DF0EC040E944F88882361F01092EE04109232
S214012E00ED041092F2041092F1041092F004109264
S214012E10EF048091ED049091EE04892B29F48091C2
S214012E20FF04811109C064C08091450B9091460B47
S214012E300E944F88882399F38091B702882309F46A
S214012E4057C08091FB048430A8F00E946E751F92D3
S214012E5080E58F938DEB97E09F938F9381E08F931F
S214012E608F9388E48F937FDA0FB6F894DEBF0FBE98
S214012E70CDBF32C01092A2048BE395E19F938F934E
S214012E8088E595E79F938F93E0915506F091560656
S214012E9009951F9284E18F938DEB97E09F938F9313
S214012EA01F9221E02F938BEF94E09F938F9382E004
S214012EB08F932F9388E48F9356DA8091FB040FB695
S214012EC0F894DEBF0FBECDBF843020F48F5F8093B1
S214012ED0FB0402C01092FB048091ED049091EE0475
S214012EE00E9446889093460B8093450B1092FF04F0
S214012EF080910005882339F18091B702882319F162
S214012F000E946E751F9280E58F938DEB97E09F93DD
S214012F108F931F9221E02F9380E992E09F938F93E6
S214012F201F922F9381EA94E09F938F9383E08F9370
S214012F302F938CE48F9317DA109200050FB6F8944E
S214012F40DEBF0FBECDBF8091FD048823C9F19091ED
S214012F50B7029923A9F18230F9F48091BE088983DA
S214012F608091BF088A838091C0088D838091C208B2
S214012F7088878FEF8E838F8380913C0A8B83809125
S214012F80420A89878091430A8A871C821F928AE0B7
S214012F908F93CE01019605C01F928AE08F938AE334
S214012FA09AE09F938F9381E08F938F9386E58F931B
S214012FB0DAD90FB6F894DEBF0FBECDBF1092FD046E
S214012FC0809101058823D1F08091B7028823B1F062
S214012FD01F928BE08F938CE59AE09F938F9381E00D
S214012FE08F938091B4028F9387E48F93BCD910920C
S214012FF001050FB6F894DEBF0FBECDBF8091F10478
S2140130009091F204892B29F48091FE04811109C064
S2140130102EC08091380A9091390A0E944F888823E1
S21401302099F38091B702882311F10E94AE251F9271
S21401303082E48F9383E29CE09F938F9381E08F934A
S2140130408F9384E48F938FD91092FE048091F104BC
S2140130509091F2040FB6F894DEBF0FBECDBF009775
S21401306031F00E9446889093390A8093380A8091FD
S214013070EF049091F004892B09F485C08091360AFB
S2140130809091370A0E944F88882309F47CC080916A
S214013090B702882309F477C008E21AE08091C708CE
S2140130A09091C8089093290A8093280A8091C908AC
S2140130B09091CA0890932B0A80932A0A20914B0676
S2140130C030914C0640914D0650914E06AAE0B0E074
S2140130D0DCD22091210130912201409123015091AF
S2140130E0240196D230932D0A20932C0A8091240431
S2140130F090912504A0912604B0912704E9E0B595A6
S214013100A79597958795EA95D1F780932E0A809192
S214013110200490912104A0912204B0912304F9E0A7
S214013120B595A79597958795FA95D1F780932F0A28
S21401313080912C0490912D04A0912E04B0912F041F
S21401314029E0B595A795979587952A95D1F7809308
S214013150300A1F928EE08F931F930F9381E08F9317
S2140131608F9383E48F93FFD88091EF049091F004BE
S2140131700E9446889093370A8093360A0FB6F894D1
S214013180DEBF0FBECDBF6091B6026F3F39F190E151
S214013190699FB0011124605B7A4E40E150E08E01D8
S2140131A00F5F1F4FC801B8D21F9280E18F931F9304
S2140131B00F931F9221E02F9386EB92E09F938F93BC
S2140131C082E08F932F9381E48F93CDD88FEF8093F6
S2140131D0B6020FB6F894DEBF0FBECDBF8091650C68
S2140131E08823B9F08091B702882399F01F9221E0D5
S2140131F02F9385E69CE09F938F932F932F9382E4E2
S2140132008F93B1D81092650C0FB6F894DEBF0FBE3F
S214013210CDBF8091FC048823C1F08091B70288233A
S214013220A1F01F9286E48F938EE098E09F938F9390
S21401323081E08F938F9380E58F9395D81092FC044D
S2140132400FB6F894DEBF0FBECDBF8091670A90918E
S214013250680A0E944F88882309F44AC08091B70201
S214013260882309F445C08091A40281112BC084E50E
S2140132709AE02091C7083091C8083093550A2093E8
S214013280540A2091C9083091CA083093570A2093EE
S214013290560A2091DE032093580A2091DD032093DD
S2140132A0590A1F9228E02F939F938F9381E08F9363
S2140132B083E08F938BE68F9356D80FB6F894DEBFD4
S2140132C00FBECDBF80915A0A853018F086E08093F4
S2140132D05A0A8091C804882319F083E690E002C058
S2140132E087EE93E00E9446889093680A8093670A67
S2140132F060960FB6F894DEBF0FBECDBFDF91CF91BB
S2140133001F910F910895089508955058BB27AA2735
S2140133100ED0E0C0D1D030F0D6D020F031F49F3FAF
S21401332011F41EF4C6C00EF4E095E7FBBCC0E92F0D
S214013330E2D080F3BA17620773078407950718F07F
S21401334071F49EF5FAC00EF4E0950B2EBA2FA02D5F
S2140133500B01B90190010C01CA01A0011124FF273C
S214013360591B99F0593F50F4503E68F11A16F04037
S214013370A22F232F342F4427585FF3CF4695379536
S2140133802795A795F0405395C9F77EF41F16BA0BFB
S214013390620B730B840BBAF09150A1F0FF0FBB1FA9
S2140133A0661F771F881FC2F70EC0BA0F621F731FF2
S2140133B0841F48F4879577956795B795F7959E3F4F
S2140133C008F0B3CF9395880F08F09927EE0F9795DD
S2140133D08795089598D088F09F5790F0B92F992730
S2140133E0B751A0F0D1F0660F771F881F991F1AF00A
S2140133F0BA95C9F712C0B13081F09FD0B1E00895F7
S2140134009CC0672F782F8827B85F39F0B93FCCF377
S214013410869577956795B395D9F73EF490958095FF
S214013420709561957F4F8F4F9F4F0895E89409C01F
S21401343097FB3EF490958095709561957F4F8F4FE1
S2140134409F4F9923A9F0F92F96E9BB279395F695F7
S214013450879577956795B795F111F8CFFAF4BB0F75
S21401346011F460FF1BC06F5F7F4F8F4F9F4F16C0D9
S214013470882311F096E911C0772321F09EE8872F63
S214013480762F05C0662371F096E8862F70E060E01F
S2140134902AF09A95660F771F881FDAF7880F969598
S2140134A0879597F9089597F99F6780E870E060E03F
S2140134B008959FEF80EC089500240A9416161706C7
S2140134C018060906089500240A941216130614060F
S2140134D005060895092E0394000C11F4882352F072
S2140134E0BB0F40F4BF2B11F460FF04C06F5F7F4F2A
S2140134F08F4F9F4F089557FD9058440F551F59F011
S2140135005F3F71F04795880F97FB991F61F09F3FCA
S21401351079F087950895121613061406551FF2CFF3
S2140135204695F1DF08C0161617061806991FF1CF43
S21401353086957105610508940895E894BB2766276A
S2140135407727CB0197F90895DB018F939F939DD041
S214013550BF91AF91A29F800D911DA39F900DB29F29
S214013560900D11240895991B79E004C0991F9617B0
S21401357008F0961B881F7A95C9F780950895AA1BAF
S214013580BB1B51E107C0AA1FBB1FA617B70710F048
S214013590A61BB70B881F991F5A95A9F7809590957A
S2140135A0BC01CD01089597FB072E16F4009406D0B2
S2140135B077FD08D0E4DF07FC05D03EF490958195B1
S2140135C09F4F0895709561957F4F0895A1E21A2E39
S2140135D0AA1BBB1BFD010DC0AA1FBB1FEE1FFF1FB1
S2140135E0A217B307E407F50720F0A21BB30BE40B01
S2140135F0F50B661F771F881F991F1A9469F7609548
S2140136007095809590959B01AC01BD01CF01089501
S214013610052E97FB16F400940FD057FD05D0D6DF84
S21401362007FC02D046F408C0509540953095219588
S2140136303F4F4F4F5F4F08959095809570956195D8
S2140136407F4F8F4F9F4F0895EE0FFF1F0590F49108
S214013650E02D099405D0332312F48A1B9B0B10C06E
S214013660A29FB001B39FC001A39F700D811D1124BD
S214013670911DB29F700D811D1124911D0895F0DFDB
S214013680B7FF0895821B930B0895EADFA59F900D5F
S214013690B49F900DA49F800D911D11240895B7FF2E
S2140136A0F4CFF3DF821B930B08952F923F924F9234
S2140136B05F926F927F928F929F92AF92BF92CF92BC
S2140136C0DF92EF92FF920F931F93CF93DF93CDB7C5
S2140136D0DEB7CA1BDB0B0FB6F894DEBF0FBECDBF3D
S2140136E009942A88398848885F846E847D848C840E
S2140136F09B84AA84B984C884DF80EE80FD800C8117
S2140137001B81AA81B981CE0FD11D0FB6F894DEBFF9
S2140137100FBECDBFED010895FB01DC0102C005908F
S2140137200D9241505040D8F70895FC014150504049
S21401373030F001900616D1F73197CF01089588270A
S21401374099270895FB01DC0102C001900D924150BA
S2140137505040D8F70895DC01CB01FC01F999FECF62
S21401376006C0F2BDE1BDF89A319600B40D92415003
S2140137705040B8F70895F999FECF92BD81BDF89AE9
S214013780992780B50895A8E1B0E042E050E0E5CF82
S214013790DC01CB0102C02D9105D041505040D8F735
S2140137A00895262FF999FECF1FBA92BD81BD20BD7F
S2140137B00FB6F894FA9AF99A0FBE01960895F1DFBA
S20C0137C0272FF0CFF894FFCF8C
S2140137C8F7FFFCFF70FF01010F64070610F4010103
S2140137D8FF03007D0000C409C409960064E8036479
S2140137E8200B050000ECFF6440415A4655326464DC
S2140137F80A969696960864403A1030380132FF03C6
S2140138087F0090D0030090D0030032002064FFFFB1
S2140138180104035E0A0101150101010101014D4B75
S2140138282020202020202020202020010000000029
S21401383800566F6C746167652020205620200100B1
S2140138480000000143757272656E742020204120C5
S21401385820010000000001436170616369747920EA
S21401386820416820010000000002416C74697475EB
S214013878646520206D2020010000000000436F6D64
S21401388870617373202020B0202001000000000022
S214013898536174732020202020202020200100005E
S2140138A8000000537065656420202020206D2F736A
S2140138B801000000000044697374616E636520208E
S2140138C86D2020010000000000486F6D652D4469D9
S2140138D8722020B020200100000000006D61782EC3
S2140138E854656D702E20B043200100000000004D85
S2140138F861676E2E6669656C6425202001000000EC
S2140139080000566172696F202020202020202001A7
S21401391800000000004572726F72436F64652020D4
S21401392820200100000000004C617469747564650C
S21401393820202020200900000000004C6F6E6769D7
S214013948747564652020202009000000000001012C
S21401395813D201010168200B0A130B0E100B0A0C77
S2140139680F0B1110FA20010020FFFFC01FC01F0116
S21401397864000C090164FF0151756164726F0000EF
S21401398800000000004167696C6500000204060734
S2140139980808080706040200FEFCFAF9F8F8F8F920
S20E0139A8FAFCFE00020406070808F8
S804000000FB
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/GPS.d
0,0 → 1,119
GPS.d GPS.o: .././GPS.c .././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././printf_P.h .././timer0.h .././uart.h \
.././analog.h .././twimaster.h .././menu.h .././rc.h .././fc.h \
.././gps.h .././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././capacity.h .././eeprom.h \
.././libfc.h .././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././printf_P.h:
 
.././timer0.h:
 
.././uart.h:
 
.././analog.h:
 
.././twimaster.h:
 
.././menu.h:
 
.././rc.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././eeprom.h:
 
.././libfc.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/Makefile
0,0 → 1,290
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
 
SHELL := cmd.exe
RM := rm -rf
 
USER_OBJS :=
 
LIBS :=
PROJ :=
 
O_SRCS :=
C_SRCS :=
S_SRCS :=
S_UPPER_SRCS :=
OBJ_SRCS :=
ASM_SRCS :=
PREPROCESSING_SRCS :=
OBJS :=
OBJS_AS_ARGS :=
C_DEPS :=
C_DEPS_AS_ARGS :=
EXECUTABLES :=
OUTPUT_FILE_PATH :=
OUTPUT_FILE_PATH_AS_ARGS :=
AVR_APP_PATH :=$$$AVR_APP_PATH$$$
QUOTE := "
ADDITIONAL_DEPENDENCIES:=
OUTPUT_FILE_DEP:=
LIB_DEP:=
LINKER_SCRIPT_DEP:=
 
# Every subdirectory with source files must be described here
SUBDIRS :=
 
 
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../analog.c \
../capacity.c \
../debug.c \
../eeprom.c \
../fc.c \
../FlightCtrl.c \
../GPS.c \
../hottmenu.c \
../jetimenu.c \
../jeti_ex.c \
../led.c \
../menu.c \
../mymath.c \
../rc.c \
../sbus.c \
../Spektrum.c \
../spi.c \
../timer0.c \
../twimaster.c \
../uart.c \
../user_receiver.c
 
 
PREPROCESSING_SRCS += \
../isqrt.S
 
 
ASM_SRCS +=
 
 
OBJS += \
analog.o \
capacity.o \
debug.o \
eeprom.o \
fc.o \
FlightCtrl.o \
GPS.o \
hottmenu.o \
isqrt.o \
jetimenu.o \
jeti_ex.o \
led.o \
menu.o \
mymath.o \
rc.o \
sbus.o \
Spektrum.o \
spi.o \
timer0.o \
twimaster.o \
uart.o \
user_receiver.o
 
OBJS_AS_ARGS += \
analog.o \
capacity.o \
debug.o \
eeprom.o \
fc.o \
FlightCtrl.o \
GPS.o \
hottmenu.o \
isqrt.o \
jetimenu.o \
jeti_ex.o \
led.o \
menu.o \
mymath.o \
rc.o \
sbus.o \
Spektrum.o \
spi.o \
timer0.o \
twimaster.o \
uart.o \
user_receiver.o
 
C_DEPS += \
analog.d \
capacity.d \
debug.d \
eeprom.d \
fc.d \
FlightCtrl.d \
GPS.d \
hottmenu.d \
isqrt.d \
jetimenu.d \
jeti_ex.d \
led.d \
menu.d \
mymath.d \
rc.d \
sbus.d \
Spektrum.d \
spi.d \
timer0.d \
twimaster.d \
uart.d \
user_receiver.d
 
C_DEPS_AS_ARGS += \
analog.d \
capacity.d \
debug.d \
eeprom.d \
fc.d \
FlightCtrl.d \
GPS.d \
hottmenu.d \
isqrt.d \
jetimenu.d \
jeti_ex.d \
led.d \
menu.d \
mymath.d \
rc.d \
sbus.d \
Spektrum.d \
spi.d \
timer0.d \
twimaster.d \
uart.d \
user_receiver.d
 
OUTPUT_FILE_PATH +=FlightCtrl.elf
 
OUTPUT_FILE_PATH_AS_ARGS +=FlightCtrl.elf
 
ADDITIONAL_DEPENDENCIES:=
 
OUTPUT_FILE_DEP:= ./makedep.mk
 
LIB_DEP+= \
C:/Users/SIE-AV/Documents/Atmel\ Studio/6.2/FlightCtrl/FlightCtrl/libfc1284.a \
C:/Users/SIE-AV/Documents/Atmel\ Studio/6.2/FlightCtrl/FlightCtrl/libfc644.a
 
LINKER_SCRIPT_DEP+=
 
 
# AVR32/GNU C Compiler
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
./%.o: .././%.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 4.8.1
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DNDEBUG -DF_CPU=20000000 -DVERSION_MAJOR=2 -DVERSION_MINOR=8 -DVERSION_PATCH=0 -DVERSION_SERIAL_MAJOR=11 -DVERSION_SERIAL_MINOR=0 -DNC_SPI_COMPATIBLE=71 -DLIB_FC_COMPATIBLE=7 -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -Wundef -pedantic -mmcu=atmega1284 -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
@echo Finished building: $<
 
 
 
# AVR32/GNU Preprocessing Assembler
 
 
 
# AVR32/GNU Assembler
./isqrt.o: .././isqrt.S
@echo Building file: $<
@echo Invoking: AVR32/GNU Assembler : 4.8.1
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -Wa,-gdwarf2 -x assembler-with-cpp -c -mmcu=atmega1284 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -mrelax -o "$@" "$<"
@echo Finished building: $<
 
 
./%.o: .././%.S
@echo Building file: $<
@echo Invoking: AVR32/GNU Assembler : 4.8.1
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -Wa,-gdwarf2 -x assembler-with-cpp -c -mmcu=atmega1284 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -mrelax -o "$@" "$<"
@echo Finished building: $<
 
 
 
 
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif
 
# Add inputs and outputs from these tool invocations to the build variables
 
# All Target
all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
 
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP)
@echo Building target: $@
@echo Invoking: AVR/GNU Linker : 4.8.1
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="FlightCtrl.map" -Wl,--start-group -Wl,-lm -Wl,-lfc1284 -Wl,-lfc644 -Wl,--end-group -Wl,-L"C:\Users\SIE-AV\Documents\Atmel Studio\6.2\FlightCtrl\FlightCtrl" -Wl,--gc-sections -mrelax -mmcu=atmega1284
@echo Finished building target: $@
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "FlightCtrl.elf" "FlightCtrl.hex"
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "FlightCtrl.elf" "FlightCtrl.eep" || exit 0
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "FlightCtrl.elf" > "FlightCtrl.lss"
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "FlightCtrl.elf" "FlightCtrl.srec"
"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1061\avr8-gnu-toolchain\bin\avr-size.exe" "FlightCtrl.elf"
 
 
 
 
 
# Other Targets
clean:
-$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)
-$(RM) $(C_DEPS_AS_ARGS)
rm -rf "FlightCtrl.elf" "FlightCtrl.a" "FlightCtrl.hex" "FlightCtrl.lss" "FlightCtrl.eep" "FlightCtrl.map" "FlightCtrl.srec" "FlightCtrl.usersignatures"
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/Spektrum.d
0,0 → 1,121
Spektrum.d Spektrum.o: .././Spektrum.c .././Spektrum.h .././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././printf_P.h .././timer0.h .././uart.h \
.././analog.h .././twimaster.h .././menu.h .././rc.h .././fc.h \
.././gps.h .././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././capacity.h .././eeprom.h \
.././libfc.h .././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h
 
.././Spektrum.h:
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././printf_P.h:
 
.././timer0.h:
 
.././uart.h:
 
.././analog.h:
 
.././twimaster.h:
 
.././menu.h:
 
.././rc.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././eeprom.h:
 
.././libfc.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/analog.d
0,0 → 1,119
analog.d analog.o: .././analog.c .././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././printf_P.h .././timer0.h .././uart.h \
.././analog.h .././twimaster.h .././menu.h .././rc.h .././fc.h \
.././gps.h .././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././capacity.h .././eeprom.h \
.././libfc.h .././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././printf_P.h:
 
.././timer0.h:
 
.././uart.h:
 
.././analog.h:
 
.././twimaster.h:
 
.././menu.h:
 
.././rc.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././eeprom.h:
 
.././libfc.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/capacity.d
0,0 → 1,119
capacity.d capacity.o: .././capacity.c .././capacity.h .././twimaster.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
.././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././printf_P.h .././timer0.h .././uart.h \
.././analog.h .././menu.h .././rc.h .././fc.h .././gps.h .././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././eeprom.h .././libfc.h \
.././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h
 
.././capacity.h:
 
.././twimaster.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././printf_P.h:
 
.././timer0.h:
 
.././uart.h:
 
.././analog.h:
 
.././menu.h:
 
.././rc.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././eeprom.h:
 
.././libfc.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/debug.d
0,0 → 1,119
debug.d debug.o: .././debug.c .././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././printf_P.h .././timer0.h .././uart.h \
.././analog.h .././twimaster.h .././menu.h .././rc.h .././fc.h \
.././gps.h .././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././capacity.h .././eeprom.h \
.././libfc.h .././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././printf_P.h:
 
.././timer0.h:
 
.././uart.h:
 
.././analog.h:
 
.././twimaster.h:
 
.././menu.h:
 
.././rc.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././eeprom.h:
 
.././libfc.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/eeprom.d
0,0 → 1,119
eeprom.d eeprom.o: .././eeprom.c \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
.././eeprom.h .././twimaster.h .././uart.h .././led.h .././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././printf_P.h .././timer0.h .././analog.h \
.././menu.h .././rc.h .././fc.h .././gps.h .././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././spektrum.h .././capacity.h .././libfc.h \
.././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
.././eeprom.h:
 
.././twimaster.h:
 
.././uart.h:
 
.././led.h:
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././printf_P.h:
 
.././timer0.h:
 
.././analog.h:
 
.././menu.h:
 
.././rc.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././libfc.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/fc.d
0,0 → 1,124
fc.d fc.o: .././fc.c .././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././printf_P.h .././timer0.h .././uart.h \
.././analog.h .././twimaster.h .././menu.h .././rc.h .././fc.h \
.././gps.h .././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././capacity.h .././eeprom.h \
.././libfc.h .././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h \
.././mymath.h .././isqrt.h
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././printf_P.h:
 
.././timer0.h:
 
.././uart.h:
 
.././analog.h:
 
.././twimaster.h:
 
.././menu.h:
 
.././rc.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././eeprom.h:
 
.././libfc.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
 
.././mymath.h:
 
.././isqrt.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/hottmenu.d
0,0 → 1,119
hottmenu.d hottmenu.o: .././hottmenu.c .././libfc.h .././printf_P.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
.././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././timer0.h .././uart.h .././analog.h \
.././twimaster.h .././menu.h .././rc.h .././fc.h .././gps.h .././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././capacity.h .././eeprom.h \
.././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h
 
.././libfc.h:
 
.././printf_P.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././timer0.h:
 
.././uart.h:
 
.././analog.h:
 
.././twimaster.h:
 
.././menu.h:
 
.././rc.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././eeprom.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/isqrt.d
0,0 → 1,0
isqrt.d isqrt.o: .././isqrt.S
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/jeti_ex.d
0,0 → 1,119
jeti_ex.d jeti_ex.o: .././jeti_ex.c .././libfc.h .././printf_P.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
.././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././timer0.h .././uart.h .././analog.h \
.././twimaster.h .././menu.h .././rc.h .././fc.h .././gps.h .././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././capacity.h .././eeprom.h \
.././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h
 
.././libfc.h:
 
.././printf_P.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././timer0.h:
 
.././uart.h:
 
.././analog.h:
 
.././twimaster.h:
 
.././menu.h:
 
.././rc.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././eeprom.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/jetimenu.d
0,0 → 1,122
jetimenu.d jetimenu.o: .././jetimenu.c .././jetimenu.h .././libfc.h \
.././printf_P.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
.././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././timer0.h .././uart.h .././analog.h \
.././twimaster.h .././menu.h .././rc.h .././fc.h .././gps.h .././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././capacity.h .././eeprom.h \
.././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h
 
.././jetimenu.h:
 
.././libfc.h:
 
.././printf_P.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././timer0.h:
 
.././uart.h:
 
.././analog.h:
 
.././twimaster.h:
 
.././menu.h:
 
.././rc.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././eeprom.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/led.d
0,0 → 1,120
led.d led.o: .././led.c \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
.././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././printf_P.h .././timer0.h .././uart.h \
.././analog.h .././twimaster.h .././menu.h .././rc.h .././fc.h \
.././gps.h .././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././capacity.h .././eeprom.h \
.././libfc.h .././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././printf_P.h:
 
.././timer0.h:
 
.././uart.h:
 
.././analog.h:
 
.././twimaster.h:
 
.././menu.h:
 
.././rc.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././eeprom.h:
 
.././libfc.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/makedep.mk
0,0 → 1,48
################################################################################
# Automatically-generated file. Do not edit or delete the file
################################################################################
 
analog.c
 
capacity.c
 
debug.c
 
eeprom.c
 
fc.c
 
FlightCtrl.c
 
GPS.c
 
hottmenu.c
 
isqrt.S
 
jetimenu.c
 
jeti_ex.c
 
led.c
 
menu.c
 
mymath.c
 
rc.c
 
sbus.c
 
Spektrum.c
 
spi.c
 
timer0.c
 
twimaster.c
 
uart.c
 
user_receiver.c
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/menu.d
0,0 → 1,119
menu.d menu.o: .././menu.c .././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././printf_P.h .././timer0.h .././uart.h \
.././analog.h .././twimaster.h .././menu.h .././rc.h .././fc.h \
.././gps.h .././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././capacity.h .././eeprom.h \
.././libfc.h .././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././printf_P.h:
 
.././timer0.h:
 
.././uart.h:
 
.././analog.h:
 
.././twimaster.h:
 
.././menu.h:
 
.././rc.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././eeprom.h:
 
.././libfc.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/mymath.d
0,0 → 1,46
mymath.d mymath.o: .././mymath.c \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
.././mymath.h
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
.././mymath.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/rc.d
0,0 → 1,119
rc.d rc.o: .././rc.c .././rc.h .././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././printf_P.h .././timer0.h .././uart.h \
.././analog.h .././twimaster.h .././menu.h .././fc.h .././gps.h \
.././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././capacity.h .././eeprom.h \
.././libfc.h .././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h
 
.././rc.h:
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././printf_P.h:
 
.././timer0.h:
 
.././uart.h:
 
.././analog.h:
 
.././twimaster.h:
 
.././menu.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././eeprom.h:
 
.././libfc.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/sbus.d
0,0 → 1,119
sbus.d sbus.o: .././sbus.c .././sbus.h .././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././printf_P.h .././timer0.h .././uart.h \
.././analog.h .././twimaster.h .././menu.h .././rc.h .././fc.h \
.././gps.h .././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././capacity.h .././eeprom.h \
.././libfc.h .././hottmenu.h .././debug.h .././jeti_ex.h
 
.././sbus.h:
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././printf_P.h:
 
.././timer0.h:
 
.././uart.h:
 
.././analog.h:
 
.././twimaster.h:
 
.././menu.h:
 
.././rc.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././eeprom.h:
 
.././libfc.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/spi.d
0,0 → 1,119
spi.d spi.o: .././spi.c .././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././printf_P.h .././timer0.h .././uart.h \
.././analog.h .././twimaster.h .././menu.h .././rc.h .././fc.h \
.././gps.h .././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././capacity.h .././eeprom.h \
.././libfc.h .././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././printf_P.h:
 
.././timer0.h:
 
.././uart.h:
 
.././analog.h:
 
.././twimaster.h:
 
.././menu.h:
 
.././rc.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././eeprom.h:
 
.././libfc.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/timer0.d
0,0 → 1,119
timer0.d timer0.o: .././timer0.c .././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././printf_P.h .././timer0.h .././uart.h \
.././analog.h .././twimaster.h .././menu.h .././rc.h .././fc.h \
.././gps.h .././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././capacity.h .././eeprom.h \
.././libfc.h .././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././printf_P.h:
 
.././timer0.h:
 
.././uart.h:
 
.././analog.h:
 
.././twimaster.h:
 
.././menu.h:
 
.././rc.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././eeprom.h:
 
.././libfc.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/twimaster.d
0,0 → 1,123
twimaster.d twimaster.o: .././twimaster.c \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\twi.h \
.././eeprom.h .././twimaster.h .././fc.h .././analog.h .././uart.h \
.././timer0.h .././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././printf_P.h .././menu.h .././rc.h .././gps.h \
.././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././capacity.h .././libfc.h \
.././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\twi.h:
 
.././eeprom.h:
 
.././twimaster.h:
 
.././fc.h:
 
.././analog.h:
 
.././uart.h:
 
.././timer0.h:
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././printf_P.h:
 
.././menu.h:
 
.././rc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././libfc.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/uart.d
0,0 → 1,123
uart.d uart.o: .././uart.c \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdarg.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h \
.././main.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h \
.././old_macros.h .././printf_P.h .././timer0.h .././uart.h \
.././analog.h .././twimaster.h .././menu.h .././rc.h .././fc.h \
.././gps.h .././spi.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h \
.././vector.h .././led.h .././spektrum.h .././capacity.h .././eeprom.h \
.././libfc.h .././hottmenu.h .././debug.h .././sbus.h .././jeti_ex.h
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdarg.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\string.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stddef.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\inttypes.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdint.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\io.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\iom1284.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\portpins.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\common.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\version.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\fuse.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\lock.h:
 
.././main.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\stdlib.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\eeprom.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\boot.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\lib\gcc\avr\4.8.1\include-fixed\limits.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\avr\wdt.h:
 
.././old_macros.h:
 
.././printf_P.h:
 
.././timer0.h:
 
.././uart.h:
 
.././analog.h:
 
.././twimaster.h:
 
.././menu.h:
 
.././rc.h:
 
.././fc.h:
 
.././gps.h:
 
.././spi.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
 
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.1061\avr8-gnu-toolchain\avr\include\math.h:
 
.././vector.h:
 
.././led.h:
 
.././spektrum.h:
 
.././capacity.h:
 
.././eeprom.h:
 
.././libfc.h:
 
.././hottmenu.h:
 
.././debug.h:
 
.././sbus.h:
 
.././jeti_ex.h:
/branches/V2.08a_Rens_Testversion/FlightCtrl/Release/user_receiver.d
0,0 → 1,0
user_receiver.d user_receiver.o: .././user_receiver.c
/branches/V2.08a_Rens_Testversion/FlightCtrl/Settings.h
--- V2.08a_Rens_Testversion/FlightCtrl/Spektrum.c (nonexistent)
+++ V2.08a_Rens_Testversion/FlightCtrl/Spektrum.c (revision 2504)
@@ -0,0 +1,406 @@
+/*#######################################################################################
+Decodieren eines RC Summen Signals oder Spektrum Empfänger-Satellit
+#######################################################################################*/
+
+#include "Spektrum.h"
+#include "main.h"
+
+unsigned char SpektrumTimer = 0;
+
+// Achtung: RECEIVER_SPEKTRUM_DX7EXP oder RECEIVER_SPEKTRUM_DX8EXP wird in der main.h gesetzt
+#if defined (RECEIVER_SPEKTRUM_DX7EXP) || defined (RECEIVER_SPEKTRUM_DX8EXP)
+unsigned char s_excnt = 0; // Bitcounter for Spektrum-Expander
+unsigned char s_exparity = 0; // Parity Bit for Spektrum-Expander
+signed char s_exdata[11]; // Data for Spektrum-Expander
+
+void s_update(unsigned char channel, signed int value) // Channel-Diff numbercrunching and finally assign new stickvalue to PPM_in
+{
+ if(SenderOkay >= 180) PPM_diff[channel] = ((value - PPM_in[channel]) / 3) * 3;
+ else PPM_diff[channel] = 0;
+ PPM_in[channel] = value;
+}
+#endif
+
+//############################################################################
+// USART1 initialisation from killagreg
+void SpektrumUartInit(void)
+//############################################################################
+ {
+ // -- Start of USART1 initialisation for Spekturm seriell-mode
+ // USART1 Control and Status Register A, B, C and baud rate register
+ uint8_t sreg = SREG;
+
+ uint16_t ubrr = (uint16_t) ((uint32_t) SYSCLK/(8 * 115200) - 1);
+
+ // disable all interrupts before reconfiguration
+ cli();
+ // disable RX-Interrupt
+ UCSR1B &= ~(1 << RXCIE1);
+ // disable TX-Interrupt
+ UCSR1B &= ~(1 << TXCIE1);
+ // disable DRE-Interrupt
+ UCSR1B &= ~(1 << UDRIE1);
+/*
+ // set direction of RXD1 and TXD1 pins
+ // set RXD1 (PD2) as an input pin
+ PORTD |= (1 << PORTD2);
+ DDRD &= ~(1 << DDD2);
+ // set TXD1 (PD3) as an output pin
+ PORTD |= (1 << PORTD3);
+ DDRD |= (1 << DDD3);
+*/
+ // USART0 Baud Rate Register
+ // set clock divider
+ UBRR1H = (uint8_t)(ubrr>>8);
+ UBRR1L = (uint8_t)ubrr;
+ // enable double speed operation
+ UCSR1A |= (1 << U2X1);
+ // enable receiver and transmitter
+ //UCSR1B = (1<<RXEN1)|(1<<TXEN1);
+
+ UCSR1B = (1<<RXEN1);
+ // set asynchronous mode
+ UCSR1C &= ~(1 << UMSEL11);
+ UCSR1C &= ~(1 << UMSEL10);
+ // no parity
+ UCSR1C &= ~(1 << UPM11);
+ UCSR1C &= ~(1 << UPM10);
+ // 1 stop bit
+ UCSR1C &= ~(1 << USBS1);
+ // 8-bit
+ UCSR1B &= ~(1 << UCSZ12);
+ UCSR1C |= (1 << UCSZ11);
+ UCSR1C |= (1 << UCSZ10);
+ // flush receive buffer explicit
+ while(UCSR1A & (1<<RXC1)) UDR1;
+ // enable RX-interrupts at the end
+ UCSR1B |= (1 << RXCIE1);
+ // -- End of USART1 initialisation
+ // restore global interrupt flags
+
+ SREG = sreg;
+ return;
+ }
+
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// + Copyright (c) Rainer Walther
+// + RC-routines from original MK rc.c (c) H&I
+// + Useful infos from Walter: http://www.rcgroups.com/forums/showthread.php?t=714299&page=2
+// + only for non-profit use
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//
+// 20080808 rw Modified for Spektrum AR6100 (PPM)
+// 20080823 rw Add Spektrum satellite receiver on USART1 (644P only)
+// 20081213 rw Add support for Spektrum DS9 Air-Tx-Module (9 channels)
+// Replace AR6100-coding with original composit-signal routines
+//
+// ---
+// Entweder Summensignal ODER Spektrum-Receiver anschließen. Nicht beides gleichzeitig betreiben!
+// Binding is not implemented. Bind with external Receiver.
+// Servo output J3, J4, J5 not serviced
+//
+// Anschuß Spektrum Receiver
+// Orange: 3V von der FC (keinesfalls an 5V anschließen!)
+// Schwarz: GND
+// Grau: RXD1 (Pin 3) auf 10-Pol FC-Stecker
+//
+// ---
+// Satellite-Reciever connected on USART1:
+//
+// DX7/DX6i: One data-frame at 115200 baud every 22ms.
+// DX7se: One data-frame at 115200 baud every 11ms.
+// byte1: unknown
+// byte2: unknown
+// byte3: and byte4: channel data (FLT-Mode)
+// byte5: and byte6: channel data (Roll)
+// byte7: and byte8: channel data (Nick)
+// byte9: and byte10: channel data (Gier)
+// byte11: and byte12: channel data (Gear Switch)
+// byte13: and byte14: channel data (Gas)
+// byte15: and byte16: channel data (AUX2)
+//
+// DS9 (9 Channel): One data-frame at 115200 baud every 11ms, alternating frame 1/2 for CH1-7 / CH8-9
+// 1st Frame:
+// byte1: unknown
+// byte2: unknown
+// byte3: and byte4: channel data
+// byte5: and byte6: channel data
+// byte7: and byte8: channel data
+// byte9: and byte10: channel data
+// byte11: and byte12: channel data
+// byte13: and byte14: channel data
+// byte15: and byte16: channel data
+// 2nd Frame:
+// byte1: unknown
+// byte2: unknown
+// byte3: and byte4: channel data
+// byte5: and byte6: channel data
+// byte7: and byte8: 0xffff
+// byte9: and byte10: 0xffff
+// byte11: and byte12: 0xffff
+// byte13: and byte14: 0xffff
+// byte15: and byte16: 0xffff
+//
+// Each channel data (16 bit= 2byte, first msb, second lsb) is arranged as:
+//
+// Bits: F 0 C3 C2 C1 C0 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
+//
+// 0 means a '0' bit
+// F: 1 = indicates beginning of 2nd frame for CH8-9 (DS9 only)
+// C3 to C0 is the channel number. 0 to 9 (4 bit, as assigned in the transmitter)
+// D9 to D0 is the channel data (10 bit) 0xaa..0x200..0x356 for 100% transmitter-travel
+//
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+#define MIN_FRAMEGAP 68 // 7ms
+#define MAX_BYTEGAP 3 // 310us
+
+
+//############################################################################
+// Wird im UART-Interrupt aufgerufen
+//############################################################################
+void SpektrumParser(unsigned char c)
+{
+ static unsigned char Sync=0, FrameCnt=0, ByteHigh=0, ReSync=1, Frame2=0;
+ unsigned int Channel, index = 0;
+ signed int signal = 0, tmp;
+ int bCheckDelay;
+// c = UDR1; // get data byte
+ if(ReSync == 1)
+ {
+ // wait for beginning of new frame
+ ReSync = 0;
+ SpektrumTimer = MIN_FRAMEGAP;
+ FrameCnt = 0;
+ Sync = 0;
+ ByteHigh = 0;
+ }
+ else
+ {
+ if(!SpektrumTimer) bCheckDelay = 1; else bCheckDelay = 0;//CheckDelay(FrameTimer);
+ if ( Sync == 0 )
+ {
+ if(bCheckDelay)
+ {
+ // nach einer Pause von mind. 7ms erstes Sync-Character gefunden
+ // Zeichen ignorieren, da Bedeutung unbekannt
+ Sync = 1;
+ FrameCnt ++;
+ SpektrumTimer = MAX_BYTEGAP;
+ }
+ else
+ {
+ // Zeichen kam vor Ablauf der 7ms Sync-Pause
+ // warten auf erstes Sync-Zeichen
+ SpektrumTimer = MIN_FRAMEGAP;
+ FrameCnt = 0;
+ Sync = 0;
+ ByteHigh = 0;
+ }
+ }
+ else if((Sync == 1) && !bCheckDelay)
+ {
+ // zweites Sync-Character ignorieren, Bedeutung unbekannt
+ Sync = 2;
+ FrameCnt ++;
+ SpektrumTimer = MAX_BYTEGAP;
+ }
+ else if((Sync == 2) && !bCheckDelay)
+ {
+ SpektrumTimer = MAX_BYTEGAP;
+ // Datenbyte high
+ ByteHigh = c;
+ if (FrameCnt == 2)
+ {
+ // is 1st Byte of Channel-data
+ // Frame 1 with Channel 1-7 comming next
+ Frame2 = 0;
+ if(ByteHigh & 0x80)
+ {
+ // DS9: Frame 2 with Channel 8-9 comming next
+ Frame2 = 1;
+ }
+ }
+ Sync = 3;
+ FrameCnt ++;
+ }
+ else if((Sync == 3) && !bCheckDelay)
+ {
+ // Datenbyte low
+ // High-Byte for next channel comes next
+ SpektrumTimer = MAX_BYTEGAP;
+ Sync = 2;
+ FrameCnt ++;
+ Channel = ((unsigned int)ByteHigh << 8) | c;
+ if(EE_Parameter.Receiver == RECEIVER_SPEKTRUM)
+ {
+ signal = Channel & 0x3ff;
+ signal -= 0x200; // Offset, range 0x000..0x3ff?
+ signal = signal/3; // scaling to fit PPM resolution
+ index = (ByteHigh >> 2) & 0x0f;
+ }
+ else
+ if(EE_Parameter.Receiver == RECEIVER_SPEKTRUM_HI_RES)
+ {
+ signal = Channel & 0x7ff;
+ signal -= 0x400; // Offset, range 0x000..0x7ff?
+ signal = signal/6; // scaling to fit PPM resolution
+ index = (ByteHigh >> 3) & 0x0f;
+ }
+ else
+ //if(EE_Parameter.Receiver == RECEIVER_SPEKTRUM_LOW_RES)
+ {
+ signal = Channel & 0x3ff;
+ signal -= 360; // Offset, range 0x000..0x3ff?
+ signal = signal/2; // scaling to fit PPM resolution
+ index = (ByteHigh >> 2) & 0x0f;
+ }
+
+ index++;
+ if(index < 13)
+ {
+ // Stabiles Signal
+#if defined (RECEIVER_SPEKTRUM_DX7EXP) || defined (RECEIVER_SPEKTRUM_DX8EXP)
+ if (index == 2) index = 4; // Analog channel reassigment (2 <-> 4) for logical numbering (1,2,3,4)
+ else if (index == 4) index = 2;
+#endif
+ if(abs(signal - PPM_in[index]) < 6)
+ {
+ if(EE_Parameter.FailsafeChannel == 0 || PPM_in[EE_Parameter.FailsafeChannel] < 100) // forces Failsafe if the receiver doesn't have 'signal loss' on Failsafe
+ {
+ if(SenderOkay < 200) SenderOkay += 10;
+ else
+ {
+ SenderOkay = 200;
+ TIMSK1 &= ~_BV(ICIE1); // disable PPM-Input
+ }
+ }
+ }
+ tmp = (3 * (PPM_in[index]) + signal) / 4;
+ if(tmp > signal+1) tmp--; else
+ if(tmp < signal-1) tmp++;
+
+#ifdef RECEIVER_SPEKTRUM_DX7EXP
+ if(index == 6) // FLIGHT-MODE - The channel used for our data uplink
+ {
+ if (signal > 100) // SYNC received
+ {
+ if (s_exdata[s_excnt] == 125) s_exparity = ~s_exparity; // Bit = 1 -> Re-Invert parity bit
+ if ((s_excnt == 6 && ((s_exparity != 0 && s_exdata[s_excnt] == -125) || (s_exparity == 0 && s_exdata[s_excnt] == 125))) || (s_excnt == 9 && ((s_exparity == 0 && s_exdata[s_excnt] == -125) || (s_exparity != 0 && s_exdata[s_excnt] == 125)))) // Parity check
+ {
+ if (s_exdata[1] == 125 && s_exdata[2] == -125) s_update(5,-125); // Reconstruct tripole Flight-Mode value (CH5)
+ else if (s_exdata[1] == -125 && s_exdata[2] == -125) s_update(5,0); // Reconstruct tripole Flight-Mode value (CH5)
+ else if (s_exdata[1] == -125 && s_exdata[2] == 125) s_update(5,125); // Reconstruct tripole Flight-Mode value (CH5)
+ s_update(6,s_exdata[3]); // Elevator (CH6)
+ s_update(11,s_exdata[4]); // Aileron (CH11)
+ s_update(12,s_exdata[5]); // Rudder (CH12)
+
+ if (s_excnt == 9) // New Mode (12 Channels)
+ {
+ if (s_exdata[7] == 125) s_update(8,PPM_in[8]+5); // Hover Pitch UP (CH8)
+ if (s_exdata[8] == 125) s_update(8,PPM_in[8]-5); // Hover Pitch DN (CH8)
+ if (PPM_in[8] < -125) PPM_in[8] = -125; // Range-Limit
+ else if (PPM_in[8] > 125) PPM_in[8] = 125; // Range-Limit
+ s_update(10,s_exdata[6]); // AUX2 (CH10)
+ }
+ }
+
+ s_excnt = 0; // Reset bitcounter
+ s_exparity = 0; // Reset parity bit
+ }
+
+ if (signal < 10) s_exdata[++s_excnt] = -125; // Bit = 0 -> value = -125 (min)
+ if (s_excnt == 10) s_excnt = 0; // Overflow protection
+ if (signal < -100)
+ {
+ s_exdata[s_excnt] = 125; // Bit = 1 -> value = 125 (max)
+ s_exparity = ~s_exparity; // Bit = 1 -> Invert parity bit
+ }
+
+ }
+
+ if (index < 5 ) s_update(index,tmp); // Update normal potis (CH1-4)
+ else if (index == 5) s_update(7,signal); // Gear (CH7)
+ else if (index == 7) s_update(9,signal); // Hover Throttle (CH9)
+
+#elif defined RECEIVER_SPEKTRUM_DX8EXP
+ if(index == 6) // FLIGHT-MODE - The channel used for our data uplink
+ {
+ if (signal > 100) // SYNC received
+ {
+ if (s_exdata[s_excnt] == 125) s_exparity = ~s_exparity; // Bit = 1 -> Re-Invert parity bit
+ if (s_excnt == 9 && ((s_exparity == 0 && s_exdata[s_excnt] == -125) || (s_exparity != 0 && s_exdata[s_excnt] == 125))) // Parity check
+ {
+ if (s_exdata[1] == 125 && s_exdata[2] == -125) s_update(5,-125); // Reconstruct tripole Flight-Mode value (CH5)
+ else if (s_exdata[1] == -125 && s_exdata[2] == -125) s_update(5,0); // Reconstruct tripole Flight-Mode value (CH5)
+ else if (s_exdata[1] == -125 && s_exdata[2] == 125) s_update(5,125); // Reconstruct tripole Flight-Mode value (CH5)
+
+ if (s_exdata[3] == 125 && s_exdata[6] == -125) s_update(6,125); // Reconstruct tripole Elev D/R value (CH6)
+ else if (s_exdata[3] == -125 && s_exdata[6] == -125) s_update(6,0); // Reconstruct tripole Elev D/R value (CH6)
+ else if (s_exdata[3] == -125 && s_exdata[6] == 125) s_update(6,-125); // Reconstruct tripole Elev D/R value (CH6)
+
+
+ if (s_exdata[7] == 125 && s_exdata[8] == -125) s_update(9,-125); // Reconstruct tripole AIL D/R value (CH9)
+ else if (s_exdata[7] == -125 && s_exdata[8] == -125) s_update(9,0); // Reconstruct tripole AIL D/R value (CH9)
+ else if (s_exdata[7] == -125 && s_exdata[8] == 125) s_update(9,125); // Reconstruct tripole AIL D/R value (CH9)
+
+ s_update(10,s_exdata[5]); // Gear (CH10)
+ s_update(12,s_exdata[4]); // Mix (CH12)
+ }
+
+ s_excnt = 0; // Reset bitcounter
+ s_exparity = 0; // Reset parity bit
+ }
+
+ if (signal < 10) s_exdata[++s_excnt] = -125; // Bit = 0 -> value = -125 (min)
+ if (s_excnt == 10) s_excnt = 0; // Overflow protection
+ if (signal < -100)
+ {
+ s_exdata[s_excnt] = 125; // Bit = 1 -> value = 125 (max)
+ s_exparity = ~s_exparity; // Bit = 1 -> Invert parity bit
+ }
+
+ }
+
+ if (index < 5 ) s_update(index,tmp); // Update normal potis (CH1-4)
+ else if (index == 7) s_update(7,signal); // R Trim (CH7)
+ else if (index == 5) s_update(8,signal); // AUX2 (CH8)
+ else if (index == 8) s_update(11,signal); // AUX3 (CH11)
+
+#else
+ if(SenderOkay >= 180) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
+ else PPM_diff[index] = 0;
+ PPM_in[index] = tmp;
+#endif
+ }
+ else if(index > 17) ReSync = 1; // hier stimmt was nicht: neu synchronisieren
+ }
+ else
+ {
+ // hier stimmt was nicht: neu synchronisieren
+ ReSync = 1;
+ FrameCnt = 0;
+ Frame2 = 0;
+ // new frame next, nach fruehestens 7ms erwartet
+ SpektrumTimer = MIN_FRAMEGAP;
+ }
+
+ // 16 Bytes eingetroffen -> Komplett
+ if(FrameCnt >= 16)
+ {
+ // Frame complete
+ if(Frame2 == 0)
+ {
+ // Null bedeutet: Neue Daten
+ // nur beim ersten Frame (CH 0-7) setzen
+ if(!ReSync) NewPpmData = 0;
+ }
+ FrameCnt = 0;
+ Frame2 = 0;
+ Sync = 0;
+ SpektrumTimer = MIN_FRAMEGAP;
+ }
+ }
+}
+
+
/branches/V2.08a_Rens_Testversion/FlightCtrl/Spektrum.h
0,0 → 1,12
/*#######################################################################################
Dekodieren eines Spektrum Signals
#######################################################################################*/
 
#ifndef _SPEKTRUM_H
#define _SPEKTRUM_H
void SpektrumUartInit(void);
void SpektrumBinding(void);
extern unsigned char SpektrumTimer;
extern void SpektrumParser(unsigned char c);
 
#endif //_RC_H
/branches/V2.08a_Rens_Testversion/FlightCtrl/analog.c
0,0 → 1,393
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software Nutzungsbedingungen (english version: see below)
// + der Fa. HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland - nachfolgend Lizenzgeber genannt -
// + Der Lizenzgeber räumt dem Kunden ein nicht-ausschließliches, zeitlich und räumlich* unbeschränktes Recht ein, die im den
// + Mikrocontroller verwendete Firmware für die Hardware Flight-Ctrl, Navi-Ctrl, BL-Ctrl, MK3Mag & PC-Programm MikroKopter-Tool
// + - nachfolgend Software genannt - nur für private Zwecke zu nutzen.
// + Der Einsatz dieser Software ist nur auf oder mit Produkten des Lizenzgebers zulässig.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die vom Lizenzgeber gelieferte Software ist urheberrechtlich geschützt. Alle Rechte an der Software sowie an sonstigen im
// + Rahmen der Vertragsanbahnung und Vertragsdurchführung überlassenen Unterlagen stehen im Verhältnis der Vertragspartner ausschließlich dem Lizenzgeber zu.
// + Die in der Software enthaltenen Copyright-Vermerke, Markenzeichen, andere Rechtsvorbehalte, Seriennummern sowie
// + sonstige der Programmidentifikation dienenden Merkmale dürfen vom Kunden nicht verändert oder unkenntlich gemacht werden.
// + Der Kunde trifft angemessene Vorkehrungen für den sicheren Einsatz der Software. Er wird die Software gründlich auf deren
// + Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Die Haftung des Lizenzgebers wird - soweit gesetzlich zulässig - begrenzt in Höhe des typischen und vorhersehbaren
// + Schadens. Die gesetzliche Haftung bei Personenschäden und nach dem Produkthaftungsgesetz bleibt unberührt. Dem Lizenzgeber steht jedoch der Einwand
// + des Mitverschuldens offen.
// + Der Kunde trifft angemessene Vorkehrungen für den Fall, dass die Software ganz oder teilweise nicht ordnungsgemäß arbeitet.
// + Er wird die Software gründlich auf deren Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Der Kunde wird er seine Daten vor Einsatz der Software nach dem Stand der Technik sichern.
// + Der Kunde ist darüber unterrichtet, dass der Lizenzgeber seine Daten im zur Vertragsdurchführung erforderlichen Umfang
// + und auf Grundlage der Datenschutzvorschriften erhebt, speichert, verarbeitet und, sofern notwendig, an Dritte übermittelt.
// + *) Die räumliche Nutzung bezieht sich nur auf den Einsatzort, nicht auf die Reichweite der programmierten Software.
// + #### ENDE DER NUTZUNGSBEDINGUNGEN ####'
// + Hinweis: Informationen über erweiterte Nutzungsrechte (wie z.B. Nutzung für nicht-private Zwecke) sind auf Anfrage per Email an info(@)hisystems.de verfügbar.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software LICENSING TERMS
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + of HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland, Germany - the Licensor -
// + The Licensor grants the customer a non-exclusive license to use the microcontroller firmware of the Flight-Ctrl, Navi-Ctrl, BL-Ctrl, and MK3Mag hardware
// + (the Software) exclusively for private purposes. The License is unrestricted with respect to time and territory*.
// + The Software may only be used with the Licensor's products.
// + The Software provided by the Licensor is protected by copyright. With respect to the relationship between the parties to this
// + agreement, all rights pertaining to the Software and other documents provided during the preparation and execution of this
// + agreement shall be the property of the Licensor.
// + The information contained in the Software copyright notices, trademarks, other legal reservations, serial numbers and other
// + features that can be used to identify the program may not be altered or defaced by the customer.
// + The customer shall be responsible for taking reasonable precautions
// + for the safe use of the Software. The customer shall test the Software thoroughly regarding its suitability for the
// + intended purpose before implementing it for actual operation. The Licensor's liability shall be limited to the extent of typical and
// + foreseeable damage to the extent permitted by law, notwithstanding statutory liability for bodily injury and product
// + liability. However, the Licensor shall be entitled to the defense of contributory negligence.
// + The customer will take adequate precautions in the case, that the software is not working properly. The customer will test
// + the software for his purpose before any operational usage. The customer will backup his data before using the software.
// + The customer understands that the Licensor collects, stores and processes, and, where required, forwards, customer data
// + to third parties to the extent necessary for executing the agreement, subject to applicable data protection and privacy regulations.
// + *) The territory aspect only refers to the place where the Software is used, not its programmed range.
// + #### END OF LICENSING TERMS ####
// + Note: For information on license extensions (e.g. commercial use), please contact us at info(@)hisystems.de.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "main.h"
#include "eeprom.h"
volatile int Aktuell_Nick,Aktuell_Roll,Aktuell_Gier,Aktuell_ax, Aktuell_ay,Aktuell_az, UBat = 150;
volatile int AdWertNickFilter = 0, AdWertRollFilter = 0, AdWertGierFilter = 0;
volatile int HiResNick = 2500, HiResRoll = 2500;
volatile int AdWertNick = 0, AdWertRoll = 0, AdWertGier = 0;
volatile int AdWertAccRoll = 0,AdWertAccNick = 0,AdWertAccHoch = 0;
volatile long Luftdruck = 32000;
volatile long SummenHoehe = 0;
volatile long StartLuftdruck;
volatile unsigned int MessLuftdruck = 1023;
unsigned char DruckOffsetSetting;
signed char ExpandBaro = 0;
volatile int VarioMeter = 0;
volatile unsigned int ZaehlMessungen = 0;
unsigned char AnalogOffsetNick = 115,AnalogOffsetRoll = 115,AnalogOffsetGier = 115;
volatile unsigned char AdReady = 1;
unsigned int BaroStep = 500;
long ExpandBaroStep = 0;
long HoehenWertF = 0;
long HoehenWert_Mess = 0;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
long HoehenWertF_Mess = 0;
unsigned char CalAthmospheare = 16;
unsigned char AD_ACC_Y = 6;
unsigned char AD_ACC_X = 7;
#endif
 
//#######################################################################################
void ADC_Init(void)
//#######################################################################################
{
ADMUX = 0;//Referenz ist extern
ANALOG_ON;
}
 
#define DESIRED_H_ADC 800
 
void CalcExpandBaroStep(void)
{
if(ACC_AltitudeControl) ExpandBaroStep = BaroStep * (long)ExpandBaro;
else ExpandBaroStep = (16 * BaroStep) * (long)ExpandBaro - 4;
}
 
void SucheLuftruckOffset(void)
{
unsigned int off;
ExpandBaro = 0;
CalcExpandBaroStep();
off = GetParamByte(PID_PRESSURE_OFFSET);
if(off < 240) off += 10;
OCR0A = off;
OCR0B = 255-off;
Delay_ms_Mess(150);
if(MessLuftdruck > DESIRED_H_ADC) off = 240;
for(; off > 5; off--)
{
OCR0A = off;
OCR0B = 255-off;
Delay_ms_Mess(100);
printf(".");
if(MessLuftdruck > DESIRED_H_ADC) break;
}
DruckOffsetSetting = off;
SetParamByte(PID_PRESSURE_OFFSET, off);
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG) && (DruckOffsetSetting < 10 || DruckOffsetSetting >= 230)) VersionInfo.HardwareError[0] |= FC_ERROR0_PRESSURE;
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + correction of the altitude error in higher altitudes
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CalAthmospheare = 16;
if(ACC_AltitudeControl)
{
if(PlatinenVersion < 23) { if(off < 140) CalAthmospheare += (160 - off) / 26; }
else { if(off < 170) CalAthmospheare += (188 - off) / 19; }
}
Luftdruck = MessLuftdruck * CalAthmospheare;
#endif
Delay_ms_Mess(300);
}
 
/*
void SucheGyroOffset(void)
{
unsigned char i, ready = 0;
int timeout;
timeout = SetDelay(2000);
for(i=140; i != 0; i--)
{
if(ready == 3 && i > 10) i = 9;
ready = 0;
if(AdWertNick < 1020) AnalogOffsetNick--; else if(AdWertNick > 1030) AnalogOffsetNick++; else ready++;
if(AdWertRoll < 1020) AnalogOffsetRoll--; else if(AdWertRoll > 1030) AnalogOffsetRoll++; else ready++;
if(AdWertGier < 1020) AnalogOffsetGier--; else if(AdWertGier > 1030) AnalogOffsetGier++; else ready++;
I2C_Start(TWI_STATE_GYRO_OFFSET_TX);
if(AnalogOffsetNick < 10) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_NICK; AnalogOffsetNick = 10;}; if(AnalogOffsetNick > 245) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_NICK; AnalogOffsetNick = 245;};
if(AnalogOffsetRoll < 10) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_ROLL; AnalogOffsetRoll = 10;}; if(AnalogOffsetRoll > 245) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_ROLL; AnalogOffsetRoll = 245;};
if(AnalogOffsetGier < 10) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_YAW; AnalogOffsetGier = 10;}; if(AnalogOffsetGier > 245) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_YAW; AnalogOffsetGier = 245;};
while(twi_state) if(CheckDelay(timeout)) {printf("\n\r DAC or I2C ERROR! Check I2C, 3Vref, DAC and BL-Ctrl"); break;}
AdReady = 0;
ANALOG_ON;
while(!AdReady);
if(i<10) Delay_ms_Mess(10);
}
Delay_ms_Mess(70);
}
*/
/*
0 n
1 r
2 g
3 y
4 x
5 n
6 r
7 u
8 z
9 L
10 n
11 r
12 g
13 y
14 x
15 n
16 r
17 L
*/
 
 
//#######################################################################################
//
ISR(ADC_vect)
//#######################################################################################
{
static unsigned char kanal=0,state = 0;
static signed int subcount = 0;
static signed int gier1, roll1, nick1, nick_filter, roll_filter;
static signed int accy, accx;
static long tmpLuftdruck = 0;
static char messanzahl_Druck = 0;
switch(state++)
{
case 0:
nick1 = ADC;
kanal = AD_ROLL;
break;
case 1:
roll1 = ADC;
kanal = AD_GIER;
break;
case 2:
gier1 = ADC;
kanal = AD_ACC_Y;
break;
case 3:
Aktuell_ay = NeutralAccY - ADC;
accy = Aktuell_ay;
kanal = AD_ACC_X;
break;
case 4:
Aktuell_ax = ADC - NeutralAccX;
accx = Aktuell_ax;
kanal = AD_NICK;
break;
case 5:
nick1 += ADC;
kanal = AD_ROLL;
break;
case 6:
roll1 += ADC;
kanal = AD_UBAT;
break;
case 7:
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(EE_Parameter.ExtraConfig & CFG_3_3V_REFERENCE) UBat = (3 * UBat + (11 * ADC) / 30) / 4; // there were some single FC2.1 with 3.3V reference
else
#endif
{
static unsigned int tmpVoltage = 0;
if(!tmpVoltage) tmpVoltage = (10 * ADC);
if(tmpVoltage <= (10 * ADC)) tmpVoltage += 2; else tmpVoltage -= 2;
UBat = tmpVoltage / 31;
}
kanal = AD_ACC_Z;
break;
case 8:
Aktuell_az = ADC;
AdWertAccHoch = Aktuell_az - NeutralAccZ - (int) NeutralAccZfine;
if(!ACC_AltitudeControl) // The Offset must be corrected, because of the ACC-Drift from vibrations
{
if(AdWertAccHoch > 1)
{
if(NeutralAccZ < 750)
{
subcount += 5;
if(modell_fliegt < 500) subcount += 10;
if(subcount > 100) { NeutralAccZ++; subcount -= 100;}
}
}
else if(AdWertAccHoch < -1)
{
if(NeutralAccZ > 550)
{
subcount -= 5;
if(modell_fliegt < 500) subcount -= 10;
if(subcount < -100) { NeutralAccZ--; subcount += 100;}
}
}
}
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
else
if(CosAttitude > 8192 - 50) // horizontal leveled within 6°
{
if(AdWertAccHoch > 1)
{
if(++subcount > 5000)
{
if(NeutralAccZfine < 6) NeutralAccZfine++;
subcount -= 5000;
}
}
else
if(AdWertAccHoch < -1)
{
if(--subcount < -5000)
{
if(NeutralAccZfine > -6) NeutralAccZfine--;
subcount += 5000;
}
}
}
#endif
Mess_Integral_Hoch += AdWertAccHoch; // Integrieren
Mess_Integral_Hoch -= Mess_Integral_Hoch / 1024; // dämfen
kanal = AD_DRUCK;
break;
// "case 9:" fehlt hier absichtlich
case 10:
nick1 += ADC;
kanal = AD_ROLL;
break;
case 11:
roll1 += ADC;
kanal = AD_GIER;
break;
case 12:
/* if(PlatinenVersion == 10) AdWertGier = (ADC + gier1 + 1) / 2;
else
if(PlatinenVersion >= 20) AdWertGier = 2047 - (ADC + gier1);
else AdWertGier = (ADC + gier1);
*/
AdWertGier = 2047 - (ADC + gier1);
kanal = AD_ACC_Y;
break;
case 13:
Aktuell_ay = NeutralAccY - ADC;
AdWertAccRoll = (Aktuell_ay + accy);
kanal = AD_ACC_X;
break;
case 14:
Aktuell_ax = ADC - NeutralAccX;
AdWertAccNick = (Aktuell_ax + accx);
kanal = AD_NICK;
break;
case 15:
nick1 += ADC;
//if(PlatinenVersion == 10) nick1 *= 2; else
nick1 *= 4;
AdWertNick = nick1 / 8;
nick_filter = (nick_filter + nick1) / 2;
HiResNick = nick_filter - AdNeutralNick;
AdWertNickFilter = (AdWertNickFilter + HiResNick) / 2;
kanal = AD_ROLL;
break;
case 16:
roll1 += ADC;
//if(PlatinenVersion == 10) roll1 *= 2; else
roll1 *= 4;
AdWertRoll = roll1 / 8;
roll_filter = (roll_filter + roll1) / 2;
HiResRoll = roll_filter - AdNeutralRoll;
AdWertRollFilter = (AdWertRollFilter + HiResRoll) / 2;
kanal = AD_DRUCK;
break;
case 17:
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(ACC_AltitudeControl)
{
HoehenWertF_Mess = (ACC_AltitudeFusion(0) + SA_FILTER/2)/SA_FILTER; // cm
}
else HoehenWertF_Mess = HoehenWert;
#endif
state = 0;
AdReady = 1;
ZaehlMessungen++;
// "break" fehlt hier absichtlich
case 9:
MessLuftdruck = ADC;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(ACC_AltitudeControl)
{
// ExpandBaroStep = BaroStep * (long)ExpandBaro; // wird in fc.c aufgerufen
// tmpLuftdruck = MessLuftdruck - BaroStep * (long)ExpandBaro; // -523 counts per offset step
tmpLuftdruck = MessLuftdruck - ExpandBaroStep; // -523 counts per offset step
Luftdruck -= Luftdruck / CalAthmospheare; // 16
Luftdruck += tmpLuftdruck;
HoehenWert_Mess = StartLuftdruck - Luftdruck; // cm
}
else
#endif
{ // old version (until FC V2.1)
tmpLuftdruck += MessLuftdruck;
if(++messanzahl_Druck >= 16) // war bis 0.86 "18"
{
signed int tmp;
// Luftdruck = (7 * Luftdruck + tmpLuftdruck - (16 * BaroStep) * (long)ExpandBaro + 4) / 8; // -523.19 counts per 10 counts offset step
// ExpandBaroStep = (16 * BaroStep) * (long)ExpandBaro - 4; // wird in fc.c aufgerufen
Luftdruck = (7 * Luftdruck + tmpLuftdruck - ExpandBaroStep) / 8; // -523.19 counts per 10 counts offset step
HoehenWert_Mess = StartLuftdruck - Luftdruck;
SummenHoehe -= SummenHoehe/SM_FILTER;
SummenHoehe += HoehenWert_Mess;
tmp = (HoehenWert_Mess - SummenHoehe/SM_FILTER);
if(tmp > 1024) tmp = 1024; else if(tmp < -1024) tmp = -1024;
if(abs(VarioMeter) > 700) VarioMeter = (15 * VarioMeter + 8 * tmp)/16;
else VarioMeter = (31 * VarioMeter + 8 * tmp)/32;
tmpLuftdruck /= 2;
messanzahl_Druck = 16/2;
}
}
kanal = AD_NICK;
break;
default:
kanal = 0; state = 0; kanal = AD_NICK;
break;
}
ADMUX = kanal;
if(state != 0) ANALOG_ON;
}
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/analog.h
0,0 → 1,60
#ifndef _ANALOG_H
#define _ANALOG_H
/*#######################################################################################
 
#######################################################################################*/
 
#define SM_FILTER 16
#define SA_FILTER 512
 
extern volatile int UBat;
extern volatile int AdWertNick, AdWertRoll, AdWertGier;
extern volatile int AdWertAccRoll,AdWertAccNick,AdWertAccHoch;
extern volatile int HiResNick, HiResRoll;
extern volatile int AdWertNickFilter, AdWertRollFilter, AdWertGierFilter;
extern volatile int Aktuell_Nick,Aktuell_Roll,Aktuell_Gier,Aktuell_ax, Aktuell_ay,Aktuell_az;
extern volatile long Luftdruck;
extern volatile long SummenHoehe;
extern volatile char messanzahl_Druck;
extern volatile unsigned int ZaehlMessungen;
extern unsigned char DruckOffsetSetting;
extern signed char ExpandBaro;
extern volatile int VarioMeter;
extern volatile unsigned int MessLuftdruck;
extern volatile long StartLuftdruck;
extern volatile char MessanzahlNick;
extern unsigned char AnalogOffsetNick,AnalogOffsetRoll,AnalogOffsetGier;
extern volatile unsigned char AdReady;
extern unsigned int BaroStep;
extern long HoehenWertF;
extern long HoehenWert_Mess;
extern long HoehenWertF_Mess;
unsigned int ReadADC(unsigned char adc_input);
void ADC_Init(void);
void SucheLuftruckOffset(void);
//void SucheGyroOffset(void);
void CalcExpandBaroStep(void);
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
extern unsigned char CalAthmospheare;
#endif
 
#define AD_GIER 0
#define AD_ROLL 1
#define AD_NICK 2
#define AD_DRUCK 3
#define AD_UBAT 4
#define AD_ACC_Z 5
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
extern unsigned char AD_ACC_Y;
extern unsigned char AD_ACC_X;
#else
#define AD_ACC_Y 6
#define AD_ACC_X 7
#endif
 
#define ANALOG_OFF ADCSRA=0
 
#define ANALOG_ON ADCSRA=(1<<ADEN)|(1<<ADSC)|(0<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE)
//Signle trigger Mode, Interrupt on
#endif //_ANALOG_H
/branches/V2.08a_Rens_Testversion/FlightCtrl/capacity.c
0,0 → 1,164
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software Nutzungsbedingungen (english version: see below)
// + der Fa. HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland - nachfolgend Lizenzgeber genannt -
// + Der Lizenzgeber räumt dem Kunden ein nicht-ausschließliches, zeitlich und räumlich* unbeschränktes Recht ein, die im den
// + Mikrocontroller verwendete Firmware für die Hardware Flight-Ctrl, Navi-Ctrl, BL-Ctrl, MK3Mag & PC-Programm MikroKopter-Tool
// + - nachfolgend Software genannt - nur für private Zwecke zu nutzen.
// + Der Einsatz dieser Software ist nur auf oder mit Produkten des Lizenzgebers zulässig.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die vom Lizenzgeber gelieferte Software ist urheberrechtlich geschützt. Alle Rechte an der Software sowie an sonstigen im
// + Rahmen der Vertragsanbahnung und Vertragsdurchführung überlassenen Unterlagen stehen im Verhältnis der Vertragspartner ausschließlich dem Lizenzgeber zu.
// + Die in der Software enthaltenen Copyright-Vermerke, Markenzeichen, andere Rechtsvorbehalte, Seriennummern sowie
// + sonstige der Programmidentifikation dienenden Merkmale dürfen vom Kunden nicht verändert oder unkenntlich gemacht werden.
// + Der Kunde trifft angemessene Vorkehrungen für den sicheren Einsatz der Software. Er wird die Software gründlich auf deren
// + Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Die Haftung des Lizenzgebers wird - soweit gesetzlich zulässig - begrenzt in Höhe des typischen und vorhersehbaren
// + Schadens. Die gesetzliche Haftung bei Personenschäden und nach dem Produkthaftungsgesetz bleibt unberührt. Dem Lizenzgeber steht jedoch der Einwand
// + des Mitverschuldens offen.
// + Der Kunde trifft angemessene Vorkehrungen für den Fall, dass die Software ganz oder teilweise nicht ordnungsgemäß arbeitet.
// + Er wird die Software gründlich auf deren Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Der Kunde wird er seine Daten vor Einsatz der Software nach dem Stand der Technik sichern.
// + Der Kunde ist darüber unterrichtet, dass der Lizenzgeber seine Daten im zur Vertragsdurchführung erforderlichen Umfang
// + und auf Grundlage der Datenschutzvorschriften erhebt, speichert, verarbeitet und, sofern notwendig, an Dritte übermittelt.
// + *) Die räumliche Nutzung bezieht sich nur auf den Einsatzort, nicht auf die Reichweite der programmierten Software.
// + #### ENDE DER NUTZUNGSBEDINGUNGEN ####'
// + Hinweis: Informationen über erweiterte Nutzungsrechte (wie z.B. Nutzung für nicht-private Zwecke) sind auf Anfrage per Email an info(@)hisystems.de verfügbar.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software LICENSING TERMS
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + of HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland, Germany - the Licensor -
// + The Licensor grants the customer a non-exclusive license to use the microcontroller firmware of the Flight-Ctrl, Navi-Ctrl, BL-Ctrl, and MK3Mag hardware
// + (the Software) exclusively for private purposes. The License is unrestricted with respect to time and territory*.
// + The Software may only be used with the Licensor's products.
// + The Software provided by the Licensor is protected by copyright. With respect to the relationship between the parties to this
// + agreement, all rights pertaining to the Software and other documents provided during the preparation and execution of this
// + agreement shall be the property of the Licensor.
// + The information contained in the Software copyright notices, trademarks, other legal reservations, serial numbers and other
// + features that can be used to identify the program may not be altered or defaced by the customer.
// + The customer shall be responsible for taking reasonable precautions
// + for the safe use of the Software. The customer shall test the Software thoroughly regarding its suitability for the
// + intended purpose before implementing it for actual operation. The Licensor's liability shall be limited to the extent of typical and
// + foreseeable damage to the extent permitted by law, notwithstanding statutory liability for bodily injury and product
// + liability. However, the Licensor shall be entitled to the defense of contributory negligence.
// + The customer will take adequate precautions in the case, that the software is not working properly. The customer will test
// + the software for his purpose before any operational usage. The customer will backup his data before using the software.
// + The customer understands that the Licensor collects, stores and processes, and, where required, forwards, customer data
// + to third parties to the extent necessary for executing the agreement, subject to applicable data protection and privacy regulations.
// + *) The territory aspect only refers to the place where the Software is used, not its programmed range.
// + #### END OF LICENSING TERMS ####
// + Note: For information on license extensions (e.g. commercial use), please contact us at info(@)hisystems.de.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "capacity.h"
#include "twimaster.h"
#include "main.h"
#include "timer0.h"
#include "analog.h"
 
//#define CAPACITY_UPDATE_INTERVAL 10 // 10 ms
#define CAPACITY_UPDATE_INTERVAL 50 // 50 ms = 20Hz
#define FC_OFFSET_CURRENT 5 // calculate with a current of 0.5A
#define BL_OFFSET_CURRENT 2 // calculate with a current of 0.2A
 
// global varialbles
unsigned short update_timer = 0;
Capacity_t Capacity;
 
// initialize capacity calculation
void Capacity_Init(void)
{
Capacity.ActualCurrent = 0;
Capacity.UsedCapacity = 0;
Capacity.ActualPower = 0;
Capacity.MinOfMaxPWM = 0;
update_timer = SetDelay(CAPACITY_UPDATE_INTERVAL);
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + extended Current measurement -> 200 = 20A 201 = 21A 255 = 75A (20+55)
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
unsigned int BL3_Current(unsigned char who) // in 0,1A
{
if(Motor[who].Current == 255) return(0); // invalid
if(Motor[who].Current <= 200) return(Motor[who].Current);
else
{
if(Motor[who].Version & MOTOR_STATE_BL30) return(200 + 10 * ((unsigned int)Motor[who].Current-200));
else return(Motor[who].Current);
}
}
 
// called in main loop at a regular interval
void Capacity_Update(void)
{
unsigned short Current, SetSum; // max value will be 255 * 12 = 3060
static unsigned short SubCounter = 0;
static unsigned short CurrentOffset = 0;
static unsigned long SumCurrentOffset = 0;
unsigned char i, NumOfMotors, MinOfMaxPWM;
 
if(CheckDelay(update_timer))
{
update_timer += CAPACITY_UPDATE_INTERVAL; // do not use SetDelay to avoid timing leaks
// determine sum of all present BL currents and setpoints
Current = 0;
SetSum = 0;
NumOfMotors = 0;
MinOfMaxPWM = 255;
if(Capacity.MinOfMaxPWM == 254) FC_StatusFlags3 |= FC_STATUS3_REDUNDANCE;
else if(Capacity.MinOfMaxPWM == 255) FC_StatusFlags3 &= ~FC_STATUS3_REDUNDANCE;
for(i = 0; i < MAX_MOTORS; i++)
{
if(Motor[i].State & MOTOR_STATE_PRESENT_MASK/* && Mixer.Motor[i][MIX_GAS]*/)
{
NumOfMotors++;
if(Motor[i].Current > 200)
{
Current += BL3_Current(i); // extended Current measurement -> 200 = 20A 201 = 21A 255 = 75A (20+55)
}
else Current += (unsigned int)(Motor[i].Current);
SetSum += (unsigned int)(Motor[i].SetPoint);
if(Motor[i].MaxPWM <= MinOfMaxPWM) MinOfMaxPWM = Motor[i].MaxPWM; else FC_StatusFlags3 &= ~FC_STATUS3_REDUNDANCE;
}
}
Capacity.MinOfMaxPWM = MinOfMaxPWM;
if(SetSum == 0) // if all setpoints are 0
{ // determine offsets of motor currents
#define CURRENT_AVERAGE 8 // 8bit = 256 * 10 ms = 2.56s average time
CurrentOffset = (unsigned int)(SumCurrentOffset>>CURRENT_AVERAGE);
SumCurrentOffset -= CurrentOffset;
SumCurrentOffset += Current;
// after averaging set current to static offset
Current = FC_OFFSET_CURRENT;
}
else // some motors are running, includes also motor test condition, where "MotorRunning" is false
{ // subtract offset
if(Current > CurrentOffset) Current -= CurrentOffset;
else Current = 0;
// add the FC and BL Offsets
Current += FC_OFFSET_CURRENT + NumOfMotors * BL_OFFSET_CURRENT;
}
 
// update actual Current
Capacity.ActualCurrent = Current;
// update actual Power
if(Current < 255) Capacity.ActualPower = (UBat * Current) / 100; // in W higher resolution
else Capacity.ActualPower = (UBat * (Current/4)) / 25; // in W
 
// update used capacity
SubCounter += Current;
 
// 100mA * 1ms * CAPACITY_UPDATE_INTERVAL = 1 mA * 100 ms * CAPACITY_UPDATE_INTERVAL
// = 1mA * 0.1s * CAPACITY_UPDATE_INTERVAL = 1mA * 1min / (600 / CAPACITY_UPDATE_INTERVAL)
// = 1mAh / (36000 / CAPACITY_UPDATE_INTERVAL)
#define SUB_COUNTER_LIMIT (36000 / CAPACITY_UPDATE_INTERVAL)
while(SubCounter > SUB_COUNTER_LIMIT)
{
Capacity.UsedCapacity++; // we have one mAh more
SubCounter -= SUB_COUNTER_LIMIT; // keep the remaining sub part
}
} // EOF check delay update timer
}
/branches/V2.08a_Rens_Testversion/FlightCtrl/capacity.h
0,0 → 1,18
#ifndef _CAPACITY_H
#define _CAPACITY_H
 
typedef struct
{
unsigned short ActualCurrent; // in 0.1A Steps
unsigned short ActualPower; // in 0.1W
unsigned short UsedCapacity; // in mAh
unsigned char MinOfMaxPWM; // BL Power Limit
} __attribute__((packed)) Capacity_t;
 
extern Capacity_t Capacity;
 
void Capacity_Init(void);
void Capacity_Update(void);
 
#endif //_CAPACITY_H
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/debug.c
0,0 → 1,48
#include "main.h"
#include "debug.h"
 
#ifdef DEBUG // only include functions if DEBUG is defined in main.h
 
#warning : "### DEBUG-Funktion aktiv ###"
 
 
 
unsigned char Debug_BufPtr = 0;
struct str_Debug tDebug;
unsigned char SendDebugOutput = 0;
 
// function called from _printf_P to output character
void Debug_Putchar(char c)
{
if (!SendDebugOutput)
{
tDebug.Text[Debug_BufPtr++] = c; // copy character to buffer
if (Debug_BufPtr > 30) Debug_BufPtr = 30; // avoid buffer overflow
}
}
 
void DebugSend(unsigned char cmd)
{
if (!SendDebugOutput)
{
tDebug.Cmd = cmd;
tDebug.Text[Debug_BufPtr] = '\0'; // end of text marker
Debug_BufPtr = 0; // set bufferindex to 0
SendDebugOutput = 1; // set flag to trasmit data the next time in serial transmit function
}
}
#endif
 
/*
add the following code block to the serial transmit function
 
#ifdef DEBUG // only include functions if DEBUG is defined
if(SendDebugOutput && UebertragungAbgeschlossen)
{
SendOutData('0', FC_ADDRESS, 1, (unsigned char *) &tDebug, sizeof(tDebug));
SendDebugOutput = 0;
}
#endif
 
*/
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/debug.h
0,0 → 1,60
#ifndef _DEBUG_H
#define _DEBUG_H
// ----------------------------------------------
#define CMD_NONE 0x00
#define CMD_RAW_OUTPUT 0x01
#define CMD_ERROR_MSG 0x02
#define CMD_WARNING_MSG 0x04
#define CMD_GREEN_MSG 0x08
 
// debug console in MK-Tool can also handle ANSI ESC seq.
#define ANSI_ATTRIBUTE_OFF "\033[0m"
#define ANSI_BOLD "\033[1m"
#define ANSI_UNDERSCORE "\033[4m"
#define ANSI_BLINK "\033[5m"
#define ANSI_INVERSE "\033[7m"
#define ANSI_INVISIBLE "\033[8m"
 
#define ANSI_COLOR_BLACK "\033[30m"
#define ANSI_COLOR_RED "\033[31m"
#define ANSI_COLOR_GREEN "\033[32m"
#define ANSI_COLOR_YELLOW "\033[33m"
#define ANSI_COLOR_BLUE "\033[34m"
#define ANSI_COLOR_VIOLETT "\033[35m"
#define ANSI_COLOR_KOBALTBLUE "\033[36m"
#define ANSI_COLOR_WHITE "\033[37m"
 
#define ANSI_CLEAR "\033[2J"
#define ANSI_HOME "\033[H"
 
// macros for easier use
#ifdef DEBUG // only include functions if DEBUG is defined in main.h
 
#define Debug(format, args...) { _printf_P(&Debug_Putchar, PSTR(format) , ## args); DebugSend(CMD_NONE); }
#define Debug_Raw(format, args...) { _printf_P(&Debug_Putchar, PSTR(format) , ## args); DebugSend(CMD_RAW_OUTPUT); }
#define Debug_Warning(format, args...) { _printf_P(&Debug_Putchar, PSTR(format) , ## args); DebugSend(CMD_WARNING_MSG); }
#define Debug_Error(format, args...) { _printf_P(&Debug_Putchar, PSTR(format) , ## args); DebugSend(CMD_ERROR_MSG); }
#define Debug_OK(format, args...) { _printf_P(&Debug_Putchar, PSTR(format) , ## args); DebugSend(CMD_GREEN_MSG); }
 
struct str_Debug
{
unsigned char Cmd; // bitcoded command
char Text[32];
};
 
extern struct str_Debug tDebug;
unsigned char SendDebugOutput;
 
void Debug_Putchar(char c);
void DebugSend(unsigned char cmd);
 
#else // dummy macros (won't waste flash, if #DEBUG is disabled)
#define Debug(format, args...) ;
#define Debug_Raw(format, args...) ;
#define Debug_Warning(format, args...) ;
#define Debug_Error(format, args...) ;
#define Debug_OK(format, args...) ;
#endif
 
// ----------------------------------------------
#endif
/branches/V2.08a_Rens_Testversion/FlightCtrl/eeprom.c
0,0 → 1,668
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software Nutzungsbedingungen (english version: see below)
// + der Fa. HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland - nachfolgend Lizenzgeber genannt -
// + Der Lizenzgeber räumt dem Kunden ein nicht-ausschließliches, zeitlich und räumlich* unbeschränktes Recht ein, die im den
// + Mikrocontroller verwendete Firmware für die Hardware Flight-Ctrl, Navi-Ctrl, BL-Ctrl, MK3Mag & PC-Programm MikroKopter-Tool
// + - nachfolgend Software genannt - nur für private Zwecke zu nutzen.
// + Der Einsatz dieser Software ist nur auf oder mit Produkten des Lizenzgebers zulässig.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die vom Lizenzgeber gelieferte Software ist urheberrechtlich geschützt. Alle Rechte an der Software sowie an sonstigen im
// + Rahmen der Vertragsanbahnung und Vertragsdurchführung überlassenen Unterlagen stehen im Verhältnis der Vertragspartner ausschließlich dem Lizenzgeber zu.
// + Die in der Software enthaltenen Copyright-Vermerke, Markenzeichen, andere Rechtsvorbehalte, Seriennummern sowie
// + sonstige der Programmidentifikation dienenden Merkmale dürfen vom Kunden nicht verändert oder unkenntlich gemacht werden.
// + Der Kunde trifft angemessene Vorkehrungen für den sicheren Einsatz der Software. Er wird die Software gründlich auf deren
// + Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Die Haftung des Lizenzgebers wird - soweit gesetzlich zulässig - begrenzt in Höhe des typischen und vorhersehbaren
// + Schadens. Die gesetzliche Haftung bei Personenschäden und nach dem Produkthaftungsgesetz bleibt unberührt. Dem Lizenzgeber steht jedoch der Einwand
// + des Mitverschuldens offen.
// + Der Kunde trifft angemessene Vorkehrungen für den Fall, dass die Software ganz oder teilweise nicht ordnungsgemäß arbeitet.
// + Er wird die Software gründlich auf deren Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Der Kunde wird er seine Daten vor Einsatz der Software nach dem Stand der Technik sichern.
// + Der Kunde ist darüber unterrichtet, dass der Lizenzgeber seine Daten im zur Vertragsdurchführung erforderlichen Umfang
// + und auf Grundlage der Datenschutzvorschriften erhebt, speichert, verarbeitet und, sofern notwendig, an Dritte übermittelt.
// + *) Die räumliche Nutzung bezieht sich nur auf den Einsatzort, nicht auf die Reichweite der programmierten Software.
// + #### ENDE DER NUTZUNGSBEDINGUNGEN ####'
// + Hinweis: Informationen über erweiterte Nutzungsrechte (wie z.B. Nutzung für nicht-private Zwecke) sind auf Anfrage per Email an info(@)hisystems.de verfügbar.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software LICENSING TERMS
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + of HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland, Germany - the Licensor -
// + The Licensor grants the customer a non-exclusive license to use the microcontroller firmware of the Flight-Ctrl, Navi-Ctrl, BL-Ctrl, and MK3Mag hardware
// + (the Software) exclusively for private purposes. The License is unrestricted with respect to time and territory*.
// + The Software may only be used with the Licensor's products.
// + The Software provided by the Licensor is protected by copyright. With respect to the relationship between the parties to this
// + agreement, all rights pertaining to the Software and other documents provided during the preparation and execution of this
// + agreement shall be the property of the Licensor.
// + The information contained in the Software copyright notices, trademarks, other legal reservations, serial numbers and other
// + features that can be used to identify the program may not be altered or defaced by the customer.
// + The customer shall be responsible for taking reasonable precautions
// + for the safe use of the Software. The customer shall test the Software thoroughly regarding its suitability for the
// + intended purpose before implementing it for actual operation. The Licensor's liability shall be limited to the extent of typical and
// + foreseeable damage to the extent permitted by law, notwithstanding statutory liability for bodily injury and product
// + liability. However, the Licensor shall be entitled to the defense of contributory negligence.
// + The customer will take adequate precautions in the case, that the software is not working properly. The customer will test
// + the software for his purpose before any operational usage. The customer will backup his data before using the software.
// + The customer understands that the Licensor collects, stores and processes, and, where required, forwards, customer data
// + to third parties to the extent necessary for executing the agreement, subject to applicable data protection and privacy regulations.
// + *) The territory aspect only refers to the place where the Software is used, not its programmed range.
// + #### END OF LICENSING TERMS ####
// + Note: For information on license extensions (e.g. commercial use), please contact us at info(@)hisystems.de.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#ifndef EEMEM
#define EEMEM __attribute__ ((section (".eeprom")))
#endif
 
 
#include <avr/eeprom.h>
#include <string.h>
#include "eeprom.h"
#include "uart.h"
#include "led.h"
#include "main.h"
#include "fc.h"
#include "twimaster.h"
 
paramset_t EE_Parameter;
MixerTable_t Mixer;
uint8_t RequiredMotors;
 
 
uint8_t RAM_Checksum(uint8_t* pBuffer, uint16_t len)
{
uint8_t crc = 0xAA;
uint16_t i;
 
for(i=0; i<len; i++)
{
crc += pBuffer[i];
}
return crc;
}
 
uint8_t EEProm_Checksum(uint16_t EEAddr, uint16_t len)
{
uint8_t crc = 0xAA;
uint16_t off;
 
for(off=0; off<len; off++)
{
crc += eeprom_read_byte((uint8_t*)(EEAddr + off));;
}
return crc;
}
 
void ParamSet_DefaultStickMapping(void)
{
EE_Parameter.Kanalbelegung[K_GAS] = 1;
EE_Parameter.Kanalbelegung[K_ROLL] = 2;
EE_Parameter.Kanalbelegung[K_NICK] = 3;
EE_Parameter.Kanalbelegung[K_GIER] = 4;
EE_Parameter.Kanalbelegung[K_POTI1] = 5;
EE_Parameter.Kanalbelegung[K_POTI2] = 6;
EE_Parameter.Kanalbelegung[K_POTI3] = 7;
EE_Parameter.Kanalbelegung[K_POTI4] = 8;
EE_Parameter.Kanalbelegung[K_POTI5] = 9;
EE_Parameter.Kanalbelegung[K_POTI6] = 10;
EE_Parameter.Kanalbelegung[K_POTI7] = 11;
EE_Parameter.Kanalbelegung[K_POTI8] = 12;
}
 
 
/***************************************************/
/* Default Values for parameter set 1 */
/***************************************************/
void CommonDefaults(void)
{
EE_Parameter.Revision = EEPARAM_REVISION;
memset(EE_Parameter.Name,0,12); // delete name
// if(PlatinenVersion >= 20)
{
EE_Parameter.Gyro_D = 10;
EE_Parameter.Driftkomp = 0;
EE_Parameter.GyroAccFaktor = 27;
EE_Parameter.WinkelUmschlagNick = 78;
EE_Parameter.WinkelUmschlagRoll = 78;
}
/* else
{
EE_Parameter.Gyro_D = 3;
EE_Parameter.Driftkomp = 32;
EE_Parameter.GyroAccFaktor = 30;
EE_Parameter.WinkelUmschlagNick = 85;
EE_Parameter.WinkelUmschlagRoll = 85;
}
*/
EE_Parameter.GyroAccAbgleich = 32; // 1/k
EE_Parameter.BitConfig = 0; // Looping usw.
EE_Parameter.GlobalConfig = CFG_ACHSENKOPPLUNG_AKTIV | CFG_KOMPASS_AKTIV | CFG_GPS_AKTIV | CFG_HOEHEN_SCHALTER;
EE_Parameter.ExtraConfig = CFG_GPS_AID | CFG2_VARIO_BEEP | CFG_LEARNABLE_CAREFREE | CFG_NO_RCOFF_BEEPING;
EE_Parameter.GlobalConfig3 = CFG3_SPEAK_ALL | CFG3_NO_GPSFIX_NO_START;//
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
EE_Parameter.Receiver = RECEIVER_HOTT;
#else
EE_Parameter.Receiver = RECEIVER_JETI;
#endif
 
EE_Parameter.MotorSafetySwitch = 0;
EE_Parameter.ExternalControl = 0;
 
EE_Parameter.Gas_Min = 8; // Wert : 0-32
EE_Parameter.Gas_Max = 230; // Wert : 33-247
EE_Parameter.KompassWirkung = 64; // Wert : 0-247
 
EE_Parameter.HoeheChannel = 5; // Wert : 0-32
EE_Parameter.Hoehe_MinGas = 30;
EE_Parameter.Hoehe_TiltCompensation = 110; // in %
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(ACC_AltitudeControl)
{
EE_Parameter.Hoehe_P = 20; // Wert : 0-32
EE_Parameter.Luftdruck_D = 40; // Wert : 0-247
EE_Parameter.Hoehe_ACC_Wirkung = 30; // Wert : 0-247
EE_Parameter.Hoehe_HoverBand = 1; // Wert : 0-247
EE_Parameter.Hoehe_StickNeutralPoint = 127;// Wert : 0-247 (0 = Hover-Estimation)
EE_Parameter.FailSafeTime = 60; // 0 = off
}
else
#endif
{
EE_Parameter.Hoehe_P = 15; // Wert : 0-32
EE_Parameter.Luftdruck_D = 30; // Wert : 0-247
EE_Parameter.Hoehe_ACC_Wirkung = 0; // Wert : 0-247
EE_Parameter.Hoehe_HoverBand = 8; // Wert : 0-247
EE_Parameter.Hoehe_StickNeutralPoint = 0;// Wert : 0-247 (0 = Hover-Estimation)
EE_Parameter.FailSafeTime = 0; // 0 = off
}
EE_Parameter.Hoehe_Verstaerkung = 15; // Wert : 0-50 (15 -> ca. +/- 5m/sek bei Stick-Voll-Ausschlag)
EE_Parameter.StartLandChannel = 0;
EE_Parameter.LandingSpeed = 12;
 
EE_Parameter.UserParam1 = 0; // zur freien Verwendung
EE_Parameter.UserParam2 = 0; // zur freien Verwendung
EE_Parameter.UserParam3 = 0; // zur freien Verwendung
EE_Parameter.UserParam4 = 0; // zur freien Verwendung
EE_Parameter.UserParam5 = 0; // zur freien Verwendung
EE_Parameter.UserParam6 = 0; // zur freien Verwendung
EE_Parameter.UserParam7 = 0; // zur freien Verwendung
EE_Parameter.UserParam8 = 0; // zur freien Verwendung
 
EE_Parameter.ServoNickControl = 128; // Wert : 0-247 // Stellung des Servos
EE_Parameter.ServoNickComp = 50; // Wert : 0-247 // Einfluss Gyro/Servo
EE_Parameter.ServoCompInvert = 2; // Wert : 0-247 // Richtung Einfluss Gyro/Servo
EE_Parameter.ServoNickMin = 24; // Wert : 0-247 // Anschlag
EE_Parameter.ServoNickMax = 230; // Wert : 0-247 // Anschlag
EE_Parameter.ServoNickRefresh = 3;
EE_Parameter.Servo3 = 125;
EE_Parameter.Servo4 = 125;
EE_Parameter.Servo5 = 125;
EE_Parameter.ServoRollControl = 128; // Wert : 0-247 // Stellung des Servos
EE_Parameter.ServoRollComp = 85; // Wert : 0-247 // Einfluss Gyro/Servo
EE_Parameter.ServoRollMin = 70; // Wert : 0-247 // Anschlag
EE_Parameter.ServoRollMax = 220; // Wert : 0-247 // Anschlag
EE_Parameter.ServoManualControlSpeed = 60;
EE_Parameter.CamOrientation = 0; // Wert : 0-24 -> 0-360 -> 15° steps
 
EE_Parameter.J16Bitmask = 0xAA;
EE_Parameter.J17Bitmask = 0xCC;
EE_Parameter.WARN_J16_Bitmask = 0x00;
EE_Parameter.WARN_J17_Bitmask = 0xAA;
EE_Parameter.J16Timing = 40;
EE_Parameter.J17Timing = 40;
EE_Parameter.AutoPhotoDistance = 0; // Photo release in meter
EE_Parameter.AutoPhotoAtitudes = 0; // Photo release in meter
EE_Parameter.SingleWpSpeed = 50; // Speed when flying the single points
 
EE_Parameter.LoopGasLimit = 50;
EE_Parameter.LoopThreshold = 90; // Wert: 0-247 Schwelle für Stickausschlag
EE_Parameter.LoopHysterese = 50;
 
EE_Parameter.NaviGpsModeChannel = 6; // Kanal 6
EE_Parameter.NaviGpsGain = 100;
EE_Parameter.NaviGpsP = 100;
EE_Parameter.NaviGpsI = 90;
EE_Parameter.NaviGpsD = 120;
EE_Parameter.NaviGpsA = 40;
EE_Parameter.NaviGpsPLimit = 75;
EE_Parameter.NaviGpsILimit = 85;
EE_Parameter.NaviGpsDLimit = 75;
EE_Parameter.NaviGpsMinSat = 6;
EE_Parameter.NaviStickThreshold = 8;
EE_Parameter.NaviWindCorrection = 50;
EE_Parameter.NaviAccCompensation = 42;
EE_Parameter.NaviMaxFlyingRange = 0;
EE_Parameter.NaviDescendRange = 0;
EE_Parameter.NaviAngleLimitation = 140;
EE_Parameter.NaviPH_LoginTime = 2;
EE_Parameter.OrientationAngle = 0;
EE_Parameter.CareFreeChannel = 0;
EE_Parameter.NotGas = 65; // Wert : 0-247 // Gaswert bei Empangsverlust (ggf. in Prozent)
EE_Parameter.NotGasZeit = 90; // Wert : 0-247 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen
EE_Parameter.MotorSmooth = 0;
EE_Parameter.ComingHomeAltitude = 0; // 0 = don't change
EE_Parameter.MaxAltitude = 150; // 0 = off
EE_Parameter.AchsKopplung1 = 125;
EE_Parameter.AchsKopplung2 = 52;
EE_Parameter.FailsafeChannel = 0;
EE_Parameter.ServoFilterNick = 0;
EE_Parameter.ServoFilterRoll = 0;
EE_Parameter.Servo3OnValue = 140;
EE_Parameter.Servo3OffValue = 70;
EE_Parameter.Servo4OnValue = 140;
EE_Parameter.Servo4OffValue = 70;
EE_Parameter.CompassOffset = 0;
EE_Parameter.UnterspannungsWarnung = 32; // Wert : 0-247 ( Automatische Zellenerkennung bei < 50)
EE_Parameter.ComingHomeVoltage = 31;
EE_Parameter.AutoLandingVoltage = 30;
}
/*
void ParamSet_DefaultSet1(void) // sport
{
CommonDefaults();
EE_Parameter.Stick_P = 14; // Wert : 1-20
EE_Parameter.Stick_D = 16; // Wert : 0-20
EE_Parameter.StickGier_P = 12; // Wert : 1-20
EE_Parameter.Gyro_P = 80; // Wert : 0-247
EE_Parameter.Gyro_I = 150; // Wert : 0-247
EE_Parameter.Gyro_Gier_P = 80; // Wert : 0-247
EE_Parameter.Gyro_Gier_I = 150; // Wert : 0-247
EE_Parameter.Gyro_Stability = 6; // Wert : 1-8
EE_Parameter.I_Faktor = 32;
EE_Parameter.CouplingYawCorrection = 1;
EE_Parameter.GyroAccAbgleich = 16; // 1/k;
EE_Parameter.DynamicStability = 100;
memcpy(EE_Parameter.Name, "Sport\0", 12);
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1);
}
*/
 
/***************************************************/
/* Default Values for parameter set 1 */
/***************************************************/
void ParamSet_DefaultSet1(void) // normal
{
CommonDefaults();
EE_Parameter.Stick_P = 10; // Wert : 1-20
EE_Parameter.Stick_D = 16; // Wert : 0-20
EE_Parameter.StickGier_P = 6; // Wert : 1-20
EE_Parameter.Gyro_P = 90; // Wert : 0-247
EE_Parameter.Gyro_I = 120; // Wert : 0-247
EE_Parameter.Gyro_Gier_P = 90; // Wert : 0-247
EE_Parameter.Gyro_Gier_I = 120; // Wert : 0-247
EE_Parameter.Gyro_Stability = 6; // Wert : 1-8
EE_Parameter.I_Faktor = 32;
EE_Parameter.CouplingYawCorrection = 60;
EE_Parameter.DynamicStability = 75;
memcpy(EE_Parameter.Name, "Fast",4);
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1);
}
 
 
/***************************************************/
/* Default Values for parameter set 2 */
/***************************************************/
void ParamSet_DefaultSet2(void) // Agil
{
CommonDefaults();
EE_Parameter.Stick_P = 8; // Wert : 1-20
EE_Parameter.Stick_D = 16; // Wert : 0-20
EE_Parameter.StickGier_P = 6; // Wert : 1-20
EE_Parameter.Gyro_P = 100; // Wert : 0-247
EE_Parameter.Gyro_I = 120; // Wert : 0-247
EE_Parameter.Gyro_Gier_P = 100; // Wert : 0-247
EE_Parameter.Gyro_Gier_I = 120; // Wert : 0-247
EE_Parameter.Gyro_Stability = 6; // Wert : 1-8
EE_Parameter.I_Faktor = 16;
EE_Parameter.CouplingYawCorrection = 70;
EE_Parameter.DynamicStability = 70;
memcpy(EE_Parameter.Name, "Agile",5);
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1);
}
 
/***************************************************/
/* Default Values for parameter set 3 */
/***************************************************/
void ParamSet_DefaultSet3(void) // Easy
{
CommonDefaults();
EE_Parameter.Stick_P = 6; // Wert : 1-20
EE_Parameter.Stick_D = 10; // Wert : 0-20
EE_Parameter.StickGier_P = 4; // Wert : 1-20
EE_Parameter.Gyro_P = 100; // Wert : 0-247
EE_Parameter.Gyro_I = 120; // Wert : 0-247
EE_Parameter.Gyro_Gier_P = 100; // Wert : 0-247
EE_Parameter.Gyro_Gier_I = 120; // Wert : 0-247
EE_Parameter.Gyro_Stability = 6; // Wert : 1-8
EE_Parameter.I_Faktor = 16;
EE_Parameter.CouplingYawCorrection = 70;
EE_Parameter.DynamicStability = 70;
memcpy(EE_Parameter.Name, "Easy", 4);
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1);
}
 
 
/***************************************************/
/* Read Parameter from EEPROM as byte */
/***************************************************/
uint8_t GetParamByte(uint16_t param_id)
{
return eeprom_read_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + param_id));
}
 
/***************************************************/
/* Write Parameter to EEPROM as byte */
/***************************************************/
void SetParamByte(uint16_t param_id, uint8_t value)
{
eeprom_write_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + param_id), value);
}
 
/***************************************************/
/* Read Parameter from EEPROM as word */
/***************************************************/
uint16_t GetParamWord(uint16_t param_id)
{
return eeprom_read_word((uint16_t *)(EEPROM_ADR_PARAM_BEGIN + param_id));
}
 
/***************************************************/
/* Write Parameter to EEPROM as word */
/***************************************************/
void SetParamWord(uint16_t param_id, uint16_t value)
{
eeprom_write_word((uint16_t*)(EEPROM_ADR_PARAM_BEGIN + param_id), value);
}
 
/***************************************************/
/* Read Parameter Set from EEPROM */
/***************************************************/
// number [1..5]
uint8_t ParamSet_ReadFromEEProm(uint8_t setnumber)
{
uint8_t crc;
uint16_t eeaddr;
 
// range the setnumber
if((1 > setnumber) || (setnumber > 5)) setnumber = 3;
 
// calculate eeprom addr
eeaddr = EEPROM_ADR_PARAMSET + PARAMSET_STRUCT_LEN * (setnumber - 1);
 
// calculate checksum from eeprom
crc = EEProm_Checksum(eeaddr, PARAMSET_STRUCT_LEN - 1);
 
// check crc
if(crc != eeprom_read_byte((uint8_t*)(eeaddr + PARAMSET_STRUCT_LEN - 1))) return 0;
 
// check revision
if(eeprom_read_byte((uint8_t*)(eeaddr)) != EEPARAM_REVISION) return 0;
 
// read paramset from eeprom
eeprom_read_block((void *) &EE_Parameter, (void*)(EEPROM_ADR_PARAMSET + PARAMSET_STRUCT_LEN * (setnumber - 1)), PARAMSET_STRUCT_LEN);
LED_Init();
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
LIBFC_HoTT_Clear();
#endif
return 1;
}
 
/***************************************************/
/* Write Parameter Set to EEPROM */
/***************************************************/
// number [1..5]
uint8_t ParamSet_WriteToEEProm(uint8_t setnumber)
{
uint8_t crc;
 
if(EE_Parameter.Revision == EEPARAM_REVISION) // write only the right revision to eeprom
{
if(setnumber > 5) setnumber = 5;
if(setnumber < 1) return 0;
LIBFC_CheckSettings();
if(EE_Parameter.GlobalConfig3 & CFG3_VARIO_FAILSAFE) // check the Setting: Not more than 100% emergency gas
{
if(EE_Parameter.NotGas > 99) EE_Parameter.NotGas = 80; // i.e. 80% of Hovergas
}
// update checksum
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1);
 
// write paramset to eeprom
eeprom_write_block((void *) &EE_Parameter, (void*)(EEPROM_ADR_PARAMSET + PARAMSET_STRUCT_LEN * (setnumber - 1)), PARAMSET_STRUCT_LEN);
 
// backup channel settings to separate block in eeprom
eeprom_write_block( (void*)(EE_Parameter.Kanalbelegung), (void*)(EEPROM_ADR_CHANNELS), sizeof(EE_Parameter.Kanalbelegung));
 
// write crc of channel block to eeprom
crc = RAM_Checksum((uint8_t*)(EE_Parameter.Kanalbelegung), sizeof(EE_Parameter.Kanalbelegung));
eeprom_write_byte((uint8_t*)(EEPROM_ADR_CHANNELS + sizeof(EE_Parameter.Kanalbelegung)), crc);
 
// update active settings number
SetActiveParamSet(setnumber);
LED_Init();
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
LIBFC_HoTT_Clear();
#endif
return 1;
}
// wrong revision
return 0;
}
 
/***************************************************/
/* Read MixerTable from EEPROM */
/***************************************************/
uint8_t MixerTable_ReadFromEEProm(void)
{
uint8_t crc;
 
// calculate checksum in eeprom
crc = EEProm_Checksum(EEPROM_ADR_MIXERTABLE, sizeof(Mixer) - 1);
 
// check crc
if( crc != eeprom_read_byte((uint8_t*)(EEPROM_ADR_MIXERTABLE + sizeof(Mixer) - 1)) ) return 0;
 
// check revision
if(eeprom_read_byte((uint8_t*)(EEPROM_ADR_MIXERTABLE)) != EEMIXER_REVISION) return 0;
 
// read mixer table
eeprom_read_block((void *) &Mixer, (void*)(EEPROM_ADR_MIXERTABLE), sizeof(Mixer));
return 1;
}
 
/***************************************************/
/* Write Mixer Table to EEPROM */
/***************************************************/
uint8_t MixerTable_WriteToEEProm(void)
{
if(Mixer.Revision == EEMIXER_REVISION)
{
// update crc
Mixer.crc = RAM_Checksum((uint8_t*)(&Mixer), sizeof(Mixer) - 1);
 
// write to eeprom
eeprom_write_block((void *) &Mixer, (void*)(EEPROM_ADR_MIXERTABLE), sizeof(Mixer));
return 1;
}
else return 0;
}
 
/***************************************************/
/* Default Values for Mixer Table */
/***************************************************/
void MixerTable_Default(void) // Quadro
{
uint8_t i;
 
Mixer.Revision = EEMIXER_REVISION;
// clear mixer table
for(i = 0; i < 16; i++)
{
Mixer.Motor[i][MIX_GAS] = 0;
Mixer.Motor[i][MIX_NICK] = 0;
Mixer.Motor[i][MIX_ROLL] = 0;
Mixer.Motor[i][MIX_YAW] = 0;
}
// default = Quadro
Mixer.Motor[0][MIX_GAS] = 64; Mixer.Motor[0][MIX_NICK] = +64; Mixer.Motor[0][MIX_ROLL] = 0; Mixer.Motor[0][MIX_YAW] = +64;
Mixer.Motor[1][MIX_GAS] = 64; Mixer.Motor[1][MIX_NICK] = -64; Mixer.Motor[1][MIX_ROLL] = 0; Mixer.Motor[1][MIX_YAW] = +64;
Mixer.Motor[2][MIX_GAS] = 64; Mixer.Motor[2][MIX_NICK] = 0; Mixer.Motor[2][MIX_ROLL] = -64; Mixer.Motor[2][MIX_YAW] = -64;
Mixer.Motor[3][MIX_GAS] = 64; Mixer.Motor[3][MIX_NICK] = 0; Mixer.Motor[3][MIX_ROLL] = +64; Mixer.Motor[3][MIX_YAW] = -64;
memcpy(Mixer.Name, "Quadro\0\0\0\0\0\0", 12);
Mixer.crc = RAM_Checksum((uint8_t*)(&Mixer), sizeof(Mixer) - 1);
}
 
/***************************************************/
/* Get active parameter set */
/***************************************************/
uint8_t GetActiveParamSet(void)
{
uint8_t setnumber;
setnumber = eeprom_read_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + PID_ACTIVE_SET));
if(setnumber > 5)
{
setnumber = 3;
eeprom_write_byte((void*)(EEPROM_ADR_PARAM_BEGIN+PID_ACTIVE_SET), setnumber);
}
ActiveParamSet = setnumber;
return(setnumber);
}
 
/***************************************************/
/* Set active parameter set */
/***************************************************/
void SetActiveParamSet(uint8_t setnumber)
{
if(setnumber > 5) setnumber = 5;
if(setnumber < 1) setnumber = 1;
ActiveParamSet = setnumber;
eeprom_write_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + PID_ACTIVE_SET), setnumber);
}
 
/***************************************************/
/* Set default parameter set */
/***************************************************/
void SetDefaultParameter(uint8_t set, uint8_t restore_channels)
{
 
if(set > 5) set = 5;
else if(set < 1) set = 1;
 
switch(set)
{
case 1:
ParamSet_DefaultSet1(); // Fill ParamSet Structure to default parameter set 1 (Sport)
break;
case 2:
ParamSet_DefaultSet2(); // Kamera
break;
case 3:
ParamSet_DefaultSet3(); // Beginner
break;
default:
ParamSet_DefaultSet3(); // Beginner
break;
}
if(restore_channels)
{
uint8_t crc;
// 1st check for a valid channel backup in eeprom
crc = EEProm_Checksum(EEPROM_ADR_CHANNELS, sizeof(EE_Parameter.Kanalbelegung));
if(crc == eeprom_read_byte((uint8_t*)(EEPROM_ADR_CHANNELS + sizeof(EE_Parameter.Kanalbelegung))) )
{
eeprom_read_block((void *)EE_Parameter.Kanalbelegung, (void*)(EEPROM_ADR_CHANNELS), sizeof(EE_Parameter.Kanalbelegung));
}
else ParamSet_DefaultStickMapping();
}
else ParamSet_DefaultStickMapping();
ParamSet_WriteToEEProm(set);
}
 
/***************************************************/
/* Initialize EEPROM Parameter Sets */
/***************************************************/
void ParamSet_Init(void)
{
uint8_t channel_backup = 0, bad_params = 0, ee_default = 0,i;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(PlatinenVersion != GetParamByte(PID_HARDWARE_VERSION))
{
if(PlatinenVersion == 22 && GetParamByte(PID_HARDWARE_VERSION) == 21 && !(PIND & 0x10)) SetParamByte(PID_EE_REVISION,0); // reset the Settings if the Version changed to V2.2
SetParamByte(PID_HARDWARE_VERSION,PlatinenVersion); // Remember the Version number
wdt_enable(WDTO_15MS); // Reset-Commando
printf("\n\r--> Hardware Version Byte Changed <--");
while(1);
}
#endif
if((EEPARAM_REVISION) != GetParamByte(PID_EE_REVISION))
{
ee_default = 1; // software update or forced by mktool
}
// 1st check for a valid channel backup in eeprom
i = EEProm_Checksum(EEPROM_ADR_CHANNELS, sizeof(EE_Parameter.Kanalbelegung));
if(i == eeprom_read_byte((uint8_t*)(EEPROM_ADR_CHANNELS + sizeof(EE_Parameter.Kanalbelegung)))) channel_backup = 1;
 
// parameter check
 
// check all 5 parameter settings
for (i = 1;i < 6; i++)
{
if(ee_default || !ParamSet_ReadFromEEProm(i)) // could not read paramset from eeprom
{
bad_params = 1;
printf("\n\rGenerating default Parameter Set %d",i);
switch(i)
{
case 1:
ParamSet_DefaultSet1(); // Fill ParamSet Structure to default parameter set 1 (Sport)
break;
case 2:
ParamSet_DefaultSet2(); // Normal
break;
default:
ParamSet_DefaultSet3(); // Easy
break;
}
if(channel_backup) // if we have an channel mapping backup in eeprom
{ // restore it from eeprom
eeprom_read_block((void *)EE_Parameter.Kanalbelegung, (void*)(EEPROM_ADR_CHANNELS), sizeof(EE_Parameter.Kanalbelegung));
}
else
{ // use default mapping
ParamSet_DefaultStickMapping();
}
ParamSet_WriteToEEProm(i);
}
}
if(bad_params) // at least one of the parameter settings were invalid
{
// default-Setting is parameter set 3
SetActiveParamSet(3);
}
// read active parameter set to ParamSet stucture
i = GetActiveParamSet();
ParamSet_ReadFromEEProm(i);
printf("\n\rUsing Parameter Set %d", i);
 
// load mixer table
if(GetParamByte(PID_EE_REVISION) == 0xff || !MixerTable_ReadFromEEProm() )
{
printf("\n\rGenerating default Mixer Table");
MixerTable_Default(); // Quadro
MixerTable_WriteToEEProm();
}
if(ee_default) SetParamByte(PID_EE_REVISION, (EEPARAM_REVISION));
// determine motornumber
RequiredMotors = 0;
for(i = 0; i < 16; i++)
{
if(Mixer.Motor[i][MIX_GAS] > 0) RequiredMotors++;
}
 
printf("\n\rMixer-Config: '%s' (%u Motors)",Mixer.Name, RequiredMotors);
PrintLine();// ("\n\r===================================");
 
}
/branches/V2.08a_Rens_Testversion/FlightCtrl/eeprom.h
0,0 → 1,296
#ifndef _EEPROM_H
#define _EEPROM_H
 
#include <inttypes.h>
#include "twimaster.h"
 
#define EEPARAM_REVISION 103 // is count up, if paramater stucture has changed (compatibility)
#define EEMIXER_REVISION 1 // is count up, if mixer stucture has changed (compatibility)
 
#define EEPROM_ADR_PARAM_BEGIN 0
#define EE_DUMMY 0 // Byte
#define PID_EE_REVISION 1 // byte
#define PID_ACTIVE_SET 2 // byte
#define PID_PRESSURE_OFFSET 3 // byte
 
#define PID_ACC_NICK 4 // word
#define PID_ACC_ROLL 6 // word
#define PID_ACC_TOP 8 // word
 
#define PID_FLIGHT_MINUTES_TOTAL 10 // word
#define PID_FLIGHT_MINUTES 14 // word
 
#define PID_SPEAK_HOTT_CFG 16 // Byte
#define PID_HARDWARE_VERSION 17 // Byte
 
#define PID_GYRO_NICK 18 // word
#define PID_GYRO_ROLL 20 // word
#define PID_GYRO_YAW 22 // word
 
#define EEPROM_ADR_CHANNELS 80 // 80 - 93, 12 bytes + 1 byte crc
#define EEPROM_ADR_PARAMSET 100 // 100 - 770, 5 * 134 bytes (V1.06)
#define EEPROM_ADR_MIXERTABLE 1000 // 1000 - 1078, 78 bytes
//#define EEPROM_ADR_BLCONFIG 1200 // 1200 - 1296, 12 * 8 bytes
 
#define MIX_GAS 0
#define MIX_NICK 1
#define MIX_ROLL 2
#define MIX_YAW 3
 
typedef struct
{
uint8_t Revision;
int8_t Name[12];
int8_t Motor[16][4];
uint8_t crc;
} __attribute__((packed)) MixerTable_t;
 
extern MixerTable_t Mixer;
extern uint8_t RequiredMotors;
 
//GlobalConfig3
#define CFG3_NO_SDCARD_NO_START 0x01
//#define CFG3_DPH_MAX_RADIUS 0x02
#define CFG3_VARIO_FAILSAFE 0x04
#define CFG3_MOTOR_SWITCH_MODE 0x08
#define CFG3_NO_GPSFIX_NO_START 0x10
#define CFG3_USE_NC_FOR_OUT1 0x20
#define CFG3_SPEAK_ALL 0x40
#define CFG3_SERVO_NICK_COMP_OFF 0x80
 
//GlobalConfig
#define CFG_HOEHENREGELUNG 0x01
#define CFG_HOEHEN_SCHALTER 0x02
#define CFG_HEADING_HOLD 0x04
#define CFG_KOMPASS_AKTIV 0x08
#define CFG_KOMPASS_FIX 0x10
#define CFG_GPS_AKTIV 0x20
#define CFG_ACHSENKOPPLUNG_AKTIV 0x40
#define CFG_DREHRATEN_BEGRENZER 0x80
 
//BitConfig
#define CFG_LOOP_OBEN 0x01
#define CFG_LOOP_UNTEN 0x02
#define CFG_LOOP_LINKS 0x04
#define CFG_LOOP_RECHTS 0x08
#define CFG_MOTOR_BLINK1 0x10
#define CFG_MOTOR_OFF_LED1 0x20
#define CFG_MOTOR_OFF_LED2 0x40
#define CFG_MOTOR_BLINK2 0x80
 
// ExtraConfig
#define CFG2_HEIGHT_LIMIT 0x01
#define CFG2_VARIO_BEEP 0x02
//#define CFG_SENSITIVE_RC 0x04
#define CFG_3_3V_REFERENCE 0x08
#define CFG_NO_RCOFF_BEEPING 0x10
#define CFG_GPS_AID 0x20
#define CFG_LEARNABLE_CAREFREE 0x40
#define CFG_IGNORE_MAG_ERR_AT_STARTUP 0x80
 
// bit mask for ParamSet.Config0
#define CFG0_AIRPRESS_SENSOR 0x01
#define CFG0_HEIGHT_SWITCH 0x02
#define CFG0_HEADING_HOLD 0x04
#define CFG0_COMPASS_ACTIVE 0x08
#define CFG0_COMPASS_FIX 0x10
#define CFG0_GPS_ACTIVE 0x20
#define CFG0_AXIS_COUPLING_ACTIVE 0x40
#define CFG0_ROTARY_RATE_LIMITER 0x80
 
// bitcoding for EE_Parameter.ServoCompInvert
#define SERVO_NICK_INV 0x01
#define SERVO_ROLL_INV 0x02
#define SERVO_RELATIVE 0x04 // direct poti control or relative moving of the servo value
 
// defines for the receiver selection
#define RECEIVER_PPM 0
#define RECEIVER_SPEKTRUM 1
#define RECEIVER_SPEKTRUM_HI_RES 2
#define RECEIVER_SPEKTRUM_LOW_RES 3
#define RECEIVER_JETI 4
#define RECEIVER_ACT_DSL 5
#define RECEIVER_HOTT 6
#define RECEIVER_SBUS 7
#define RECEIVER_USER 8
 
#define RECEIVER_UNKNOWN 0xFF
 
// defines for lookup ParamSet.ChannelAssignment
#define K_NICK 0
#define K_ROLL 1
#define K_GAS 2
#define K_GIER 3
#define K_POTI1 4
#define K_POTI2 5
#define K_POTI3 6
#define K_POTI4 7
#define K_POTI5 8
#define K_POTI6 9
#define K_POTI7 10
#define K_POTI8 11
 
 
// values above 247 representing poti1 to poti8
// poti1 = 255
// poti2 = 254
// poti3 = 253
// poti4 = 252
// poti5 = 251
// poti6 = 250
// poti7 = 249
// poti8 = 248
 
 
typedef struct
{
unsigned char Revision;
unsigned char Kanalbelegung[12]; // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
unsigned char GlobalConfig; // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
unsigned char Hoehe_MinGas; // Wert : 0-100
unsigned char Luftdruck_D; // Wert : 0-250
unsigned char HoeheChannel; // Wert : 0-32
unsigned char Hoehe_P; // Wert : 0-32
unsigned char Hoehe_Verstaerkung; // Wert : 0-50
unsigned char Hoehe_ACC_Wirkung; // Wert : 0-250
unsigned char Hoehe_HoverBand; // Wert : 0-250
unsigned char Hoehe_TiltCompensation; // Wert : 0-250
unsigned char Hoehe_StickNeutralPoint;// Wert : 0-250
unsigned char Stick_P; // Wert : 1-6
unsigned char Stick_D; // Wert : 0-64
unsigned char StickGier_P; // Wert : 1-20
unsigned char Gas_Min; // Wert : 0-32
unsigned char Gas_Max; // Wert : 33-250
unsigned char GyroAccFaktor; // Wert : 1-64
unsigned char KompassWirkung; // Wert : 0-32
unsigned char Gyro_P; // Wert : 10-250
unsigned char Gyro_I; // Wert : 0-250
unsigned char Gyro_D; // Wert : 0-250
unsigned char Gyro_Gier_P; // Wert : 10-250
unsigned char Gyro_Gier_I; // Wert : 0-250
unsigned char Gyro_Stability; // Wert : 0-16
unsigned char UnterspannungsWarnung; // Wert : 0-250
unsigned char NotGas; // Wert : 0-250 //Gaswert bei Empängsverlust
unsigned char NotGasZeit; // Wert : 0-250 // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
unsigned char Receiver; // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
unsigned char I_Faktor; // Wert : 0-250
unsigned char UserParam1; // Wert : 0-250
unsigned char UserParam2; // Wert : 0-250
unsigned char UserParam3; // Wert : 0-250
unsigned char UserParam4; // Wert : 0-250
unsigned char ServoNickControl; // Wert : 0-250 // Stellung des Servos
unsigned char ServoNickComp; // Wert : 0-250 // Einfluss Gyro/Servo
unsigned char ServoNickMin; // Wert : 0-250 // Anschlag
unsigned char ServoNickMax; // Wert : 0-250 // Anschlag
//--- Seit V0.75
unsigned char ServoRollControl; // Wert : 0-250 // Stellung des Servos
unsigned char ServoRollComp; // Wert : 0-250
unsigned char ServoRollMin; // Wert : 0-250
unsigned char ServoRollMax; // Wert : 0-250
//---
unsigned char ServoNickRefresh; // Speed of the Servo
unsigned char ServoManualControlSpeed;//
unsigned char CamOrientation; //
unsigned char Servo3; // Value or mapping of the Servo Output
unsigned char Servo4; // Value or mapping of the Servo Output
unsigned char Servo5; // Value or mapping of the Servo Output
unsigned char LoopGasLimit; // Wert: 0-250 max. Gas während Looping
unsigned char LoopThreshold; // Wert: 0-250 Schwelle für Stickausschlag
unsigned char LoopHysterese; // Wert: 0-250 Hysterese für Stickausschlag
unsigned char AchsKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
unsigned char AchsKopplung2; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
unsigned char CouplingYawCorrection; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
unsigned char WinkelUmschlagNick; // Wert: 0-250 180°-Punkt
unsigned char WinkelUmschlagRoll; // Wert: 0-250 180°-Punkt
unsigned char GyroAccAbgleich; // 1/k (Koppel_ACC_Wirkung)
unsigned char Driftkomp;
unsigned char DynamicStability;
unsigned char UserParam5; // Wert : 0-250
unsigned char UserParam6; // Wert : 0-250
unsigned char UserParam7; // Wert : 0-250
unsigned char UserParam8; // Wert : 0-250
//---Output ---------------------------------------------
unsigned char J16Bitmask; // for the J16 Output
unsigned char J16Timing; // for the J16 Output
unsigned char J17Bitmask; // for the J17 Output
unsigned char J17Timing; // for the J17 Output
// seit version V0.75c
unsigned char WARN_J16_Bitmask; // for the J16 Output
unsigned char WARN_J17_Bitmask; // for the J17 Output
//---NaviCtrl---------------------------------------------
unsigned char AutoPhotoDistance; // Auto Photo
unsigned char NaviGpsModeChannel; // Parameters for the Naviboard
unsigned char NaviGpsGain;
unsigned char NaviGpsP;
unsigned char NaviGpsI;
unsigned char NaviGpsD;
unsigned char NaviGpsPLimit;
unsigned char NaviGpsILimit;
unsigned char NaviGpsDLimit;
unsigned char NaviGpsA;
unsigned char NaviGpsMinSat;
unsigned char NaviStickThreshold;
unsigned char NaviWindCorrection;
unsigned char NaviAccCompensation; // New since 0.86 -> was: SpeedCompensation
unsigned char NaviMaxFlyingRange; // in 10m
unsigned char NaviAngleLimitation;
unsigned char NaviPH_LoginTime;
unsigned char NaviDescendRange;
//---Ext.Ctrl---------------------------------------------
unsigned char ExternalControl; // for serial Control
//---CareFree---------------------------------------------
unsigned char OrientationAngle; // Where is the front-direction?
unsigned char CareFreeChannel; // switch for CareFree
unsigned char MotorSafetySwitch;
unsigned char MotorSmooth;
unsigned char ComingHomeAltitude;
unsigned char FailSafeTime;
unsigned char MaxAltitude;
unsigned char FailsafeChannel; // if the value of this channel is > 100, the MK reports "RC-Lost"
unsigned char ServoFilterNick;
unsigned char ServoFilterRoll;
unsigned char Servo3OnValue;
unsigned char Servo3OffValue;
unsigned char Servo4OnValue;
unsigned char Servo4OffValue;
unsigned char StartLandChannel;
unsigned char LandingSpeed;
unsigned char CompassOffset;
unsigned char AutoLandingVoltage; // in 0,1V 0 -> disabled
unsigned char ComingHomeVoltage; // in 0,1V 0 -> disabled
unsigned char AutoPhotoAtitudes;
unsigned char SingleWpSpeed;
//------------------------------------------------
unsigned char BitConfig; // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
unsigned char ServoCompInvert; // // 0x01 = Nick, 0x02 = Roll, 0x04 = relative moving // WICHTIG!!! am Ende lassen
unsigned char ExtraConfig; // bitcodiert
unsigned char GlobalConfig3; // bitcodiert
char Name[12];
unsigned char crc; // must be the last byte!
} paramset_t; // 134 bytes (V1.06)
 
#define PARAMSET_STRUCT_LEN sizeof(paramset_t)
 
extern paramset_t EE_Parameter;
 
extern uint8_t RAM_Checksum(uint8_t* pBuffer, uint16_t len);
 
extern void ParamSet_Init(void);
extern void SetDefaultParameter(uint8_t set, uint8_t restore_channels);
 
extern uint8_t ParamSet_ReadFromEEProm(uint8_t setnumber);
extern uint8_t ParamSet_WriteToEEProm(uint8_t setnumber);
 
extern uint8_t GetActiveParamSet(void);
extern void SetActiveParamSet(uint8_t setnumber);
 
extern uint8_t MixerTable_ReadFromEEProm(void);
extern uint8_t MixerTable_WriteToEEProm(void);
 
extern uint8_t GetParamByte(uint16_t param_id);
extern void SetParamByte(uint16_t param_id, uint8_t value);
extern uint16_t GetParamWord(uint16_t param_id);
extern void SetParamWord(uint16_t param_id, uint16_t value);
 
 
#endif //_EEPROM_H
/branches/V2.08a_Rens_Testversion/FlightCtrl/fc.c
0,0 → 1,2327
/*#######################################################################################
Flight Control
#######################################################################################*/
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software Nutzungsbedingungen (english version: see below)
// + der Fa. HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland - nachfolgend Lizenzgeber genannt -
// + Der Lizenzgeber räumt dem Kunden ein nicht-ausschließliches, zeitlich und räumlich* unbeschränktes Recht ein, die im den
// + Mikrocontroller verwendete Firmware für die Hardware Flight-Ctrl, Navi-Ctrl, BL-Ctrl, MK3Mag & PC-Programm MikroKopter-Tool
// + - nachfolgend Software genannt - nur für private Zwecke zu nutzen.
// + Der Einsatz dieser Software ist nur auf oder mit Produkten des Lizenzgebers zulässig.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die vom Lizenzgeber gelieferte Software ist urheberrechtlich geschützt. Alle Rechte an der Software sowie an sonstigen im
// + Rahmen der Vertragsanbahnung und Vertragsdurchführung überlassenen Unterlagen stehen im Verhältnis der Vertragspartner ausschließlich dem Lizenzgeber zu.
// + Die in der Software enthaltenen Copyright-Vermerke, Markenzeichen, andere Rechtsvorbehalte, Seriennummern sowie
// + sonstige der Programmidentifikation dienenden Merkmale dürfen vom Kunden nicht verändert oder unkenntlich gemacht werden.
// + Der Kunde trifft angemessene Vorkehrungen für den sicheren Einsatz der Software. Er wird die Software gründlich auf deren
// + Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Die Haftung des Lizenzgebers wird - soweit gesetzlich zulässig - begrenzt in Höhe des typischen und vorhersehbaren
// + Schadens. Die gesetzliche Haftung bei Personenschäden und nach dem Produkthaftungsgesetz bleibt unberührt. Dem Lizenzgeber steht jedoch der Einwand
// + des Mitverschuldens offen.
// + Der Kunde trifft angemessene Vorkehrungen für den Fall, dass die Software ganz oder teilweise nicht ordnungsgemäß arbeitet.
// + Er wird die Software gründlich auf deren Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Der Kunde wird er seine Daten vor Einsatz der Software nach dem Stand der Technik sichern.
// + Der Kunde ist darüber unterrichtet, dass der Lizenzgeber seine Daten im zur Vertragsdurchführung erforderlichen Umfang
// + und auf Grundlage der Datenschutzvorschriften erhebt, speichert, verarbeitet und, sofern notwendig, an Dritte übermittelt.
// + *) Die räumliche Nutzung bezieht sich nur auf den Einsatzort, nicht auf die Reichweite der programmierten Software.
// + #### ENDE DER NUTZUNGSBEDINGUNGEN ####'
// + Hinweis: Informationen über erweiterte Nutzungsrechte (wie z.B. Nutzung für nicht-private Zwecke) sind auf Anfrage per Email an info(@)hisystems.de verfügbar.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software LICENSING TERMS
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + of HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland, Germany - the Licensor -
// + The Licensor grants the customer a non-exclusive license to use the microcontroller firmware of the Flight-Ctrl, Navi-Ctrl, BL-Ctrl, and MK3Mag hardware
// + (the Software) exclusively for private purposes. The License is unrestricted with respect to time and territory*.
// + The Software may only be used with the Licensor's products.
// + The Software provided by the Licensor is protected by copyright. With respect to the relationship between the parties to this
// + agreement, all rights pertaining to the Software and other documents provided during the preparation and execution of this
// + agreement shall be the property of the Licensor.
// + The information contained in the Software copyright notices, trademarks, other legal reservations, serial numbers and other
// + features that can be used to identify the program may not be altered or defaced by the customer.
// + The customer shall be responsible for taking reasonable precautions
// + for the safe use of the Software. The customer shall test the Software thoroughly regarding its suitability for the
// + intended purpose before implementing it for actual operation. The Licensor's liability shall be limited to the extent of typical and
// + foreseeable damage to the extent permitted by law, notwithstanding statutory liability for bodily injury and product
// + liability. However, the Licensor shall be entitled to the defense of contributory negligence.
// + The customer will take adequate precautions in the case, that the software is not working properly. The customer will test
// + the software for his purpose before any operational usage. The customer will backup his data before using the software.
// + The customer understands that the Licensor collects, stores and processes, and, where required, forwards, customer data
// + to third parties to the extent necessary for executing the agreement, subject to applicable data protection and privacy regulations.
// + *) The territory aspect only refers to the place where the Software is used, not its programmed range.
// + #### END OF LICENSING TERMS ####
// + Note: For information on license extensions (e.g. commercial use), please contact us at info(@)hisystems.de.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "main.h"
#include "mymath.h"
#include "isqrt.h"
 
unsigned char h,m,s;
unsigned int BaroExpandActive = 0;
int MesswertNick,MesswertRoll,MesswertGier,RohMesswertNick,RohMesswertRoll;
int TrimNick, TrimRoll;
int AdNeutralNick = 0,AdNeutralRoll = 0,AdNeutralGier = 0,StartNeutralRoll = 0,StartNeutralNick = 0;
int Mittelwert_AccNick, Mittelwert_AccRoll;
unsigned int NeutralAccX=0, NeutralAccY=0;
int NaviAccNick, NaviAccRoll,NaviCntAcc = 0;
int NeutralAccZ = 0;
signed char NeutralAccZfine = 0;
unsigned char ControlHeading = 0;// in 2°
long IntegralNick = 0;
long IntegralRoll = 0;
long Integral_Gier = 0;
long Mess_IntegralNick = 0;
long Mess_IntegralRoll = 0;
long Mess_Integral_Gier = 0,Mess_Integral_Gier2 = 0;
long MittelIntegralNick,MittelIntegralRoll;
long SummeNick=0,SummeRoll=0;
volatile long Mess_Integral_Hoch = 0;
int KompassValue = -1;
int KompassSollWert = 0;
//int KompassRichtung = 0;
char CalculateCompassTimer = 100;
unsigned char KompassFusion = 32;
unsigned int KompassSignalSchlecht = 50;
unsigned char MAX_GAS,MIN_GAS;
unsigned char HoehenReglerAktiv = 0;
unsigned char TrichterFlug = 0;
long Umschlag180Nick = 250000L, Umschlag180Roll = 250000L;
long ErsatzKompass;
int ErsatzKompassInGrad, CompassCorrected; // Kompasswert in Grad
int GierGyroFehler = 0;
char GyroFaktor,GyroFaktorGier;
char IntegralFaktor,IntegralFaktorGier;
int DiffNick,DiffRoll;
unsigned int StickGasHover = 127;
int HoverGasMin = 0, HoverGasMax = 1023;
int StickNick = 0,StickRoll = 0,StickGier = 0,StickGas = 0;
//int Poti1 = 0, Poti2 = 0, Poti3 = 0, Poti4 = 0, Poti5 = 0, Poti6 = 0, Poti7 = 0, Poti8 = 0;
unsigned char Poti[9] = {0,0,0,0,0,0,0,0};
volatile unsigned char SenderOkay = 0;
char MotorenEin = 0,StartTrigger = 0;
long HoehenWert = 0;
long SollHoehe = 0;
signed int AltitudeSetpointTrimming = 0;
long FromNC_AltitudeSetpoint = 0;
unsigned char FromNC_AltitudeSpeed = 0;
unsigned char carefree_old = 50; // to make the Beep when switching
signed char WaypointTrimming = 0;
int CompassGierSetpoint = 0;
unsigned char CalibrationDone = 0;
char NeueKompassRichtungMerken = 0;
int LageKorrekturRoll = 0,LageKorrekturNick = 0, HoverGas = 0;
//float Ki = FAKTOR_I;
int Ki = 10300 / 33;
unsigned char Looping_Nick = 0,Looping_Roll = 0;
unsigned char Looping_Links = 0, Looping_Rechts = 0, Looping_Unten = 0, Looping_Oben = 0;
 
unsigned char Parameter_Luftdruck_D = 48; // Wert : 0-250
unsigned char Parameter_HoehenSchalter = 0; // Wert : 0-250
unsigned char Parameter_Hoehe_P = 16; // Wert : 0-32
unsigned char Parameter_Hoehe_ACC_Wirkung = 58; // Wert : 0-250
unsigned char Parameter_KompassWirkung = 64; // Wert : 0-250
unsigned char Parameter_Hoehe_TiltCompensation = 100; // Wert : 0-250
unsigned char Parameter_Gyro_D = 8; // Wert : 0-250
unsigned char Parameter_Gyro_P = 150; // Wert : 10-250
unsigned char Parameter_Gyro_I = 150; // Wert : 0-250
unsigned char Parameter_Gyro_Gier_P = 150; // Wert : 10-250
unsigned char Parameter_Gyro_Gier_I = 150; // Wert : 10-250
unsigned char Parameter_Gier_P = 2; // Wert : 1-20
unsigned char Parameter_I_Faktor = 10; // Wert : 1-20
unsigned char Parameter_UserParam1 = 0;
unsigned char Parameter_UserParam2 = 0;
unsigned char Parameter_UserParam3 = 0;
unsigned char Parameter_UserParam4 = 0;
unsigned char Parameter_UserParam5 = 0;
unsigned char Parameter_UserParam6 = 0;
unsigned char Parameter_UserParam7 = 0;
unsigned char Parameter_UserParam8 = 0;
unsigned char Parameter_NickControl = 100;
unsigned char Parameter_ServoNickControl = 100;
unsigned char Parameter_ServoRollControl = 100;
unsigned char Parameter_ServoNickComp = 50;
unsigned char Parameter_ServoRollComp = 85;
unsigned char Parameter_LoopGasLimit = 70;
unsigned char Parameter_AchsKopplung1 = 90;
unsigned char Parameter_AchsKopplung2 = 65;
unsigned char Parameter_CouplingYawCorrection = 64;
//unsigned char Parameter_AchsGegenKopplung1 = 0;
unsigned char Parameter_DynamicStability = 100;
unsigned char Parameter_J16Bitmask; // for the J16 Output
unsigned char Parameter_J16Timing; // for the J16 Output
unsigned char Parameter_J17Bitmask; // for the J17 Output
unsigned char Parameter_J17Timing; // for the J17 Output
unsigned char Parameter_NaviGpsGain;
unsigned char Parameter_NaviGpsP;
unsigned char Parameter_NaviGpsI;
unsigned char Parameter_NaviGpsD;
unsigned char Parameter_NaviGpsA;
//unsigned char Parameter_NaviOperatingRadius;
unsigned char Parameter_NaviWindCorrection;
unsigned char Parameter_NaviSpeedCompensation;
unsigned char Parameter_ExternalControl;
unsigned char Parameter_GlobalConfig;
unsigned char Parameter_ExtraConfig;
unsigned char Parameter_MaximumAltitude;
unsigned char Parameter_Servo3,Parameter_Servo4,Parameter_Servo5;
unsigned char CareFree = 0;
const signed char sintab[31] = { 0, 2, 4, 6, 7, 8, 8, 8, 7, 6, 4, 2, 0, -2, -4, -6, -7, -8, -8, -8, -7, -6, -4, -2, 0, 2, 4, 6, 7, 8, 8}; // 15° steps
 
signed int ExternStickNick = 0,ExternStickRoll = 0,ExternStickGier = 0, ExternHoehenValue = -20;
int MaxStickNick = 0,MaxStickRoll = 0;
unsigned int modell_fliegt = 0;
volatile unsigned char FC_StatusFlags = 0, FC_StatusFlags2 = 0;
unsigned char FC_StatusFlags3 = 0;
long GIER_GRAD_FAKTOR = 1291;
signed int KopplungsteilNickRoll,KopplungsteilRollNick;
signed int tmp_motorwert[MAX_MOTORS];
char VarioCharacter = ' ';
unsigned int HooverGasEmergencyPercent = 0; // The gas value for Emergency landing
unsigned int GasIsZeroCnt = 0; // to detect that the gas-stick is down for a while
signed int Variance = 0;
signed int CosAttitude; // for projection of hoover gas
unsigned char ACC_AltitudeControl = 0;
unsigned char LowVoltageLandingActive = 0;
unsigned char LowVoltageHomeActive = 0;
signed int DriftNick = 0, DriftRoll = 0;
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
#define OPA_OFFSET_STEP 5
#else
#define OPA_OFFSET_STEP 10
#endif
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Debugwerte zuordnen
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void CopyDebugValues(void)
{
DebugOut.Analog[0] = ToNaviCtrl.IntegralNick;//IntegralNick / (EE_Parameter.GyroAccFaktor * 4);
DebugOut.Analog[1] = ToNaviCtrl.IntegralRoll;//IntegralRoll / (EE_Parameter.GyroAccFaktor * 4);
DebugOut.Analog[2] = Mittelwert_AccNick / 4;
DebugOut.Analog[3] = Mittelwert_AccRoll / 4;
DebugOut.Analog[4] = (signed int) AdNeutralGier - AdWertGier;
DebugOut.Analog[5] = HoehenWert/10;
DebugOut.Analog[6] = Aktuell_az;//AdWertAccHoch;//(Mess_Integral_Hoch / 512);
DebugOut.Analog[8] = KompassValue;
DebugOut.Analog[9] = UBat;
DebugOut.Analog[10] = SenderOkay;
DebugOut.Analog[11] = ErsatzKompassInGrad;
DebugOut.Analog[12] = Motor[0].SetPoint;
DebugOut.Analog[13] = Motor[1].SetPoint;
DebugOut.Analog[14] = Motor[2].SetPoint;
DebugOut.Analog[15] = Motor[3].SetPoint;
DebugOut.Analog[20] = ServoNickValue;
DebugOut.Analog[21] = HoverGas;
DebugOut.Analog[22] = Capacity.ActualCurrent;
DebugOut.Analog[23] = Capacity.UsedCapacity;
DebugOut.Analog[24] = SollHoehe/10;
// DebugOut.Analog[27] = KompassSollWert;
DebugOut.Analog[29] = Capacity.MinOfMaxPWM;
DebugOut.Analog[30] = GPS_Nick;
DebugOut.Analog[31] = GPS_Roll;
if(VersionInfo.HardwareError[0] || VersionInfo.HardwareError[1]) DebugOut.Status[1] |= 1; else DebugOut.Status[1] &= 0xfe;
//DebugOut.Analog[16] = MinBlTemperture;
//DebugOut.Analog[17] = MaxBlTemperture;
//DebugOut.Analog[16] = Variance;
//DebugOut.Analog[17] = VarioMeter;
//DebugOut.Analog[16] = GasIsZeroCnt;
//DebugOut.Analog[18] = HoehenWertF;
//DebugOut.Analog[25] = Parameter_Hoehe_P;
//DebugOut.Analog[26] = Parameter_Luftdruck_D;
}
 
 
void Piep(unsigned char Anzahl, unsigned int dauer)
{
unsigned int wait = 0;
if(MotorenEin) return; //auf keinen Fall im Flug!
GRN_OFF;
while(Anzahl--)
{
beeptime = dauer;
wait = dauer;
while(beeptime || wait)
{
if(UpdateMotor)
{
UpdateMotor = 0;
if(!beeptime) wait--;
LIBFC_Polling();
};
}
}
GRN_ON;
}
 
//############################################################################
// Messwerte beim Ermitteln der Nullage
void CalibrierMittelwert(void)
//############################################################################
{
// if(PlatinenVersion == 13) SucheGyroOffset();
// ADC auschalten, damit die Werte sich nicht während der Berechnung ändern
ANALOG_OFF;
MesswertNick = AdWertNick;
MesswertRoll = AdWertRoll;
MesswertGier = AdWertGier;
Mittelwert_AccNick = ACC_AMPLIFY * AdWertAccNick;
Mittelwert_AccRoll = ACC_AMPLIFY * AdWertAccRoll;
// ADC einschalten
ANALOG_ON;
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L;
}
 
//############################################################################
// Nullwerte ermitteln
// Parameter: 0 -> after switch on (ignore ACC-Z fault)
// Parameter: 1 -> before Start
// Parameter: 2 -> calibrate and store ACC
// Parameter: 3 -> use stored Gyro calibration Data from EEPROM
unsigned char SetNeutral(unsigned char AdjustmentMode) // retuns: "sucess"
//############################################################################
{
unsigned char i, sucess = 1;
unsigned int gier_neutral = 0, nick_neutral = 0, roll_neutral = 0, acc_z_neutral = 0, barotest;
VersionInfo.HardwareError[0] = 0;
// HEF4017Reset_ON;
NeutralAccX = 0;
NeutralAccY = 0;
NeutralAccZ = 0;
NeutralAccZfine = 0;
 
AdNeutralNick = 0;
AdNeutralRoll = 0;
AdNeutralGier = 0;
 
Parameter_AchsKopplung1 = 0;
Parameter_AchsKopplung2 = 0;
 
ExpandBaro = 0;
if(AdjustmentMode == 3) FC_StatusFlags3 |= FC_STATUS3_BOAT;
// else FC_StatusFlags3 &= ~FC_STATUS3_BOAT; -> do not clear that
 
CalibrierMittelwert();
Delay_ms_Mess(100);
CalibrierMittelwert();
 
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert?
{
if((MessLuftdruck > 950) || (MessLuftdruck < 750) || ExpandBaro) SucheLuftruckOffset();
}
barotest = MessLuftdruck;
#define NEUTRAL_FILTER 32
OCR0A += OPA_OFFSET_STEP;
OCR0B = 255 - OCR0A;
for(i=0; i<NEUTRAL_FILTER; i++)
{
Delay_ms_Mess(10);
gier_neutral += AdWertGier;
nick_neutral += AdWertNick;
roll_neutral += AdWertRoll;
acc_z_neutral += Aktuell_az;
}
if(MessLuftdruck < 1010 && MessLuftdruck > 20) BaroStep = barotest - MessLuftdruck;
OCR0A -= OPA_OFFSET_STEP;
OCR0B = 255 - OCR0A;
AdNeutralNick = (nick_neutral+NEUTRAL_FILTER/2) / (NEUTRAL_FILTER / 8);
AdNeutralRoll = (roll_neutral+NEUTRAL_FILTER/2) / (NEUTRAL_FILTER / 8);
AdNeutralGier = (gier_neutral+NEUTRAL_FILTER/2) / (NEUTRAL_FILTER);
NeutralAccZ = (acc_z_neutral+NEUTRAL_FILTER/2) / (NEUTRAL_FILTER);
 
StartNeutralRoll = AdNeutralRoll;
StartNeutralNick = AdNeutralNick;
 
if(AdjustmentMode == 2)
{
NeutralAccX = abs(Mittelwert_AccNick) / (2*ACC_AMPLIFY);
NeutralAccY = abs(Mittelwert_AccRoll) / (2*ACC_AMPLIFY);
// Save ACC neutral settings to eeprom
SetParamWord(PID_ACC_NICK, (uint16_t)NeutralAccX);
SetParamWord(PID_ACC_ROLL, (uint16_t)NeutralAccY);
SetParamWord(PID_ACC_TOP, (uint16_t)NeutralAccZ);
SetParamWord(PID_GYRO_NICK,(uint16_t)AdNeutralNick);
SetParamWord(PID_GYRO_ROLL,(uint16_t)AdNeutralRoll);
SetParamWord(PID_GYRO_YAW,(uint16_t)AdNeutralGier);
}
else
{
// restore from eeprom
NeutralAccX = (int16_t)GetParamWord(PID_ACC_NICK);
NeutralAccY = (int16_t)GetParamWord(PID_ACC_ROLL);
// strange settings?
if(((unsigned int) NeutralAccX > 2048) || ((unsigned int) NeutralAccY > 2048)/* || ((unsigned int) NeutralAccZ > 1024)*/)
{
printf("\n\rACC not calibrated!\r\n");
NeutralAccX = abs(Mittelwert_AccNick) / (2*ACC_AMPLIFY);
NeutralAccY = abs(Mittelwert_AccRoll) / (2*ACC_AMPLIFY);
sucess = 0;
}
if(FC_StatusFlags3 & FC_STATUS3_BOAT) // Read Gyro Data from eeprom
{
unsigned int nick, roll, gier;
// restore from eeprom
nick = (int16_t)GetParamWord(PID_GYRO_NICK);
roll = (int16_t)GetParamWord(PID_GYRO_ROLL);
gier = (int16_t)GetParamWord(PID_GYRO_YAW);
// strange settings?
if(((unsigned int) nick > (600 * 16)) || ((unsigned int) nick < (400 * 16))
|| ((unsigned int) roll > (600 * 16)) || ((unsigned int) roll < (400 * 16))
|| ((unsigned int) gier > (600 * 2)) || ((unsigned int) gier < (400 * 2)))
{
printf("\n\rGyro calibration data not valid\r\n");
sucess = 0;
FC_StatusFlags3 &= ~FC_STATUS3_BOAT;
}
else
{
AdNeutralNick = nick;
AdNeutralRoll = roll;
AdNeutralGier = gier;
}
}
}
EEAR = EE_DUMMY; // Set the EEPROM Address pointer to an unused space
MesswertNick = 0;
MesswertRoll = 0;
MesswertGier = 0;
Delay_ms_Mess(200);
Mittelwert_AccNick = ACC_AMPLIFY * AdWertAccNick;
Mittelwert_AccRoll = ACC_AMPLIFY * AdWertAccRoll;
IntegralNick = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccNick;
IntegralRoll = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccRoll;
Mess_IntegralNick = IntegralNick;
Mess_IntegralRoll = IntegralRoll;
Mess_Integral_Gier = 0;
KompassSollWert = KompassValue;
KompassSignalSchlecht = 100;
Umschlag180Nick = ((long) EE_Parameter.WinkelUmschlagNick * 2500L) + 15000L;
Umschlag180Roll = ((long) EE_Parameter.WinkelUmschlagRoll * 2500L) + 15000L;
ExternHoehenValue = 0;
ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR;
GierGyroFehler = 0;
LED_Init();
if(AdjustmentMode != 0) FC_StatusFlags |= FC_STATUS_CALIBRATE;
FromNaviCtrl_Value.Kalman_K = -1;
FromNaviCtrl_Value.Kalman_MaxDrift = 0;
FromNaviCtrl_Value.Kalman_MaxFusion = 32;
SenderOkay = 100;
 
if(ServoActive) DDRD |=0x80; // enable J7 -> Servo signal
else
{
if((EE_Parameter.ServoCompInvert & SERVO_NICK_INV) && (EE_Parameter.ServoCompInvert & SERVO_RELATIVE)) NickServoValue = 12000;//((128 + 60) * 4 * 16); // neutral position = upper 1/4// else
else NickServoValue = ((128 - 60) * 4 * 16); // neutral position = lower 1/4
CalculateServoSignals = 1;
CalculateServo(); // nick
CalculateServo(); // roll
}
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
signed int tilt1, tilt2;
tilt1 = (int)(IntegralNick/GIER_GRAD_FAKTOR); // nick angle in deg
tilt2 = (int)(IntegralRoll/GIER_GRAD_FAKTOR); // roll angle in deg
tilt1 = (int16_t)ihypot(tilt1,tilt2); // tilt angle over all
CosAttitude = c_cos_8192(tilt1);
NeutralAccZ = (long)((long) (NeutralAccZ - 512) * 8192 + 4096) / CosAttitude + 512;
if(tilt1 > 20) sucess = 0; // calibration must be within 20° Tilt angle
if(AdjustmentMode != 0 && ACC_AltitudeControl) if((NeutralAccZ < 682 - 30) || (NeutralAccZ > 682 + 35)) { VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_TOP; sucess = 0;};
#else
NeutralAccZ = (int16_t)GetParamWord(PID_ACC_TOP);
EEAR = EE_DUMMY; // Set the EEPROM Address pointer to an unused space
#endif
if((AdNeutralNick < 150 * 16) || (AdNeutralNick > 850 * 16)) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_NICK; };
if((AdNeutralRoll < 150 * 16) || (AdNeutralRoll > 850 * 16)) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_ROLL; };
if((AdNeutralGier < 150 * 2) || (AdNeutralGier > 850 * 2)) { VersionInfo.HardwareError[0] |= FC_ERROR0_GYRO_YAW; };
if((NeutralAccX < 300) || (NeutralAccX > 750)) { VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_NICK; };
if((NeutralAccY < 300) || (NeutralAccY > 750)) { VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_ROLL; };
if((NeutralAccZ < 512) || (NeutralAccZ > 850)) { VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_TOP; };
if(VersionInfo.HardwareError[0]) sucess = 0;
carefree_old = 70;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
LIBFC_HoTT_Clear();
ACC_AltitudeFusion(2); // initalisation
#endif
StartLuftdruck = Luftdruck;
VarioMeter = 0;
SummenHoehe = 0; Mess_Integral_Hoch = 0;
DebugOut.Analog[28] = 0; // I2C-Counter
CalcExpandBaroStep();
if(FC_StatusFlags3 & FC_STATUS3_BOAT && !EE_Parameter.Driftkomp) EE_Parameter.Driftkomp = 4;
return(sucess);
}
 
 
//############################################################################
// Bearbeitet die Messwerte
void Mittelwert(void)
//############################################################################
{
static signed long tmpl,tmpl2,tmpl3,tmpl4;
static signed int oldNick, oldRoll, d2Roll, d2Nick;
signed long winkel_nick, winkel_roll;
MesswertGier = (signed int) AdNeutralGier - AdWertGier;
MesswertNick = (signed int) AdWertNickFilter / 8;
MesswertRoll = (signed int) AdWertRollFilter / 8;
RohMesswertNick = MesswertNick;
RohMesswertRoll = MesswertRoll;
 
// Beschleunigungssensor ++++++++++++++++++++++++++++++++++++++++++++++++
Mittelwert_AccNick = (Mittelwert_AccNick * 3 + ((ACC_AMPLIFY * AdWertAccNick))) / 4L;
Mittelwert_AccRoll = (Mittelwert_AccRoll * 3 + ((ACC_AMPLIFY * AdWertAccRoll))) / 4L;
NaviAccNick += AdWertAccNick;
NaviAccRoll += AdWertAccRoll;
NaviCntAcc++;
 
//++++++++++++++++++++++++++++++++++++++++++++++++
HoehenWert = HoehenWert_Mess;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
HoehenWertF = HoehenWertF_Mess;
#else
HoehenWertF = HoehenWert;
#endif
//++++++++++++++++++++++++++++++++++++++++++++++++
// ADC einschalten
ANALOG_ON;
AdReady = 0;
//++++++++++++++++++++++++++++++++++++++++++++++++
 
if(Mess_IntegralRoll > 93000L) winkel_roll = 93000L;
else if(Mess_IntegralRoll <-93000L) winkel_roll = -93000L;
else winkel_roll = Mess_IntegralRoll;
 
if(Mess_IntegralNick > 93000L) winkel_nick = 93000L;
else if(Mess_IntegralNick <-93000L) winkel_nick = -93000L;
else winkel_nick = Mess_IntegralNick;
 
// Gier ++++++++++++++++++++++++++++++++++++++++++++++++
Mess_Integral_Gier += MesswertGier;
ErsatzKompass += MesswertGier;
// Kopplungsanteil +++++++++++++++++++++++++++++++++++++
if(!Looping_Nick && !Looping_Roll && (Parameter_GlobalConfig & CFG_ACHSENKOPPLUNG_AKTIV))
{
tmpl3 = (MesswertRoll * winkel_nick) / 2048L;
tmpl3 *= Parameter_AchsKopplung2; //65
tmpl3 /= 4096L;
tmpl4 = (MesswertNick * winkel_roll) / 2048L;
tmpl4 *= Parameter_AchsKopplung2; //65
tmpl4 /= 4096L;
KopplungsteilNickRoll = tmpl3;
KopplungsteilRollNick = tmpl4;
tmpl4 -= tmpl3;
ErsatzKompass += tmpl4;
if(!Parameter_CouplingYawCorrection) Mess_Integral_Gier -= tmpl4/2; // Gier nachhelfen
 
tmpl = ((MesswertGier + tmpl4) * winkel_nick) / 2048L;
tmpl *= Parameter_AchsKopplung1; // 90
tmpl /= 4096L;
tmpl2 = ((MesswertGier + tmpl4) * winkel_roll) / 2048L;
tmpl2 *= Parameter_AchsKopplung1;
tmpl2 /= 4096L;
if(abs(MesswertGier) > 64) if(labs(tmpl) > 128 || labs(tmpl2) > 128) TrichterFlug = 1;
//MesswertGier += (Parameter_CouplingYawCorrection * tmpl4) / 256;
}
else tmpl = tmpl2 = KopplungsteilNickRoll = KopplungsteilRollNick = 0;
TrimRoll = tmpl - tmpl2 / 100L;
TrimNick = -tmpl2 + tmpl / 100L;
// Kompasswert begrenzen ++++++++++++++++++++++++++++++++++++++++++++++++
if(ErsatzKompass >= (360L * GIER_GRAD_FAKTOR)) ErsatzKompass -= 360L * GIER_GRAD_FAKTOR; // 360° Umschlag
if(ErsatzKompass < 0) ErsatzKompass += 360L * GIER_GRAD_FAKTOR;
// Roll ++++++++++++++++++++++++++++++++++++++++++++++++
Mess_IntegralRoll += MesswertRoll + TrimRoll - LageKorrekturRoll;
if(Mess_IntegralRoll > Umschlag180Roll)
{
Mess_IntegralRoll = -(Umschlag180Roll - 25000L);
}
if(Mess_IntegralRoll <-Umschlag180Roll)
{
Mess_IntegralRoll = (Umschlag180Roll - 25000L);
}
// Nick ++++++++++++++++++++++++++++++++++++++++++++++++
Mess_IntegralNick += MesswertNick + TrimNick - LageKorrekturNick;
if(Mess_IntegralNick > Umschlag180Nick)
{
Mess_IntegralNick = -(Umschlag180Nick - 25000L);
}
if(Mess_IntegralNick <-Umschlag180Nick)
{
Mess_IntegralNick = (Umschlag180Nick - 25000L);
}
 
Integral_Gier = Mess_Integral_Gier;
IntegralNick = Mess_IntegralNick;
IntegralRoll = Mess_IntegralRoll;
 
 
#define D_LIMIT 128
 
MesswertNick = HiResNick / 8;
MesswertRoll = HiResRoll / 8;
 
if(AdWertNick < 15) MesswertNick = -1000; if(AdWertNick < 7) MesswertNick = -2000;
// if(PlatinenVersion == 10) { if(AdWertNick > 1010) MesswertNick = +1000; if(AdWertNick > 1017) MesswertNick = +2000; }
// else
{ if(AdWertNick > 2000) MesswertNick = +1000; if(AdWertNick > 2015) MesswertNick = +2000; }
if(AdWertRoll < 15) MesswertRoll = -1000; if(AdWertRoll < 7) MesswertRoll = -2000;
// if(PlatinenVersion == 10) { if(AdWertRoll > 1010) MesswertRoll = +1000; if(AdWertRoll > 1017) MesswertRoll = +2000; }
// else
{ if(AdWertRoll > 2000) MesswertRoll = +1000; if(AdWertRoll > 2015) MesswertRoll = +2000; }
 
if(Parameter_Gyro_D)
{
d2Nick = HiResNick - oldNick;
oldNick = (oldNick + HiResNick)/2;
if(d2Nick > D_LIMIT) d2Nick = D_LIMIT;
else if(d2Nick < -D_LIMIT) d2Nick = -D_LIMIT;
 
d2Roll = HiResRoll - oldRoll;
oldRoll = (oldRoll + HiResRoll)/2;
if(d2Roll > D_LIMIT) d2Roll = D_LIMIT;
else if(d2Roll < -D_LIMIT) d2Roll = -D_LIMIT;
 
MesswertNick += (d2Nick * (signed int) Parameter_Gyro_D) / 16;
MesswertRoll += (d2Roll * (signed int) Parameter_Gyro_D) / 16;
HiResNick += (d2Nick * (signed int) Parameter_Gyro_D);
HiResRoll += (d2Roll * (signed int) Parameter_Gyro_D);
}
 
if(RohMesswertRoll > 0) TrimRoll += ((long) abs(KopplungsteilNickRoll) * Parameter_CouplingYawCorrection) / 64L;
else TrimRoll -= ((long) abs(KopplungsteilNickRoll) * Parameter_CouplingYawCorrection) / 64L;
if(RohMesswertNick > 0) TrimNick += ((long) abs(KopplungsteilRollNick) * Parameter_CouplingYawCorrection) / 64L;
else TrimNick -= ((long) abs(KopplungsteilRollNick) * Parameter_CouplingYawCorrection) / 64L;
 
if(Parameter_GlobalConfig & CFG_DREHRATEN_BEGRENZER && !Looping_Nick && !Looping_Roll)
{
if(RohMesswertNick > 256) MesswertNick += 1 * (RohMesswertNick - 256);
else if(RohMesswertNick < -256) MesswertNick += 1 * (RohMesswertNick + 256);
if(RohMesswertRoll > 256) MesswertRoll += 1 * (RohMesswertRoll - 256);
else if(RohMesswertRoll < -256) MesswertRoll += 1 * (RohMesswertRoll + 256);
}
}
 
//############################################################################
// Senden der Motorwerte per I2C-Bus
void SendMotorData(void)
//############################################################################
{
unsigned char i;
if(!MotorenEin)
{
FC_StatusFlags &= ~(FC_STATUS_MOTOR_RUN | FC_STATUS_FLY);
FC_StatusFlags2 &= ~FC_STATUS2_WAIT_FOR_TAKEOFF;
for(i=0;i<MAX_MOTORS;i++)
{
if(!PC_MotortestActive) MotorTest[i] = 0;
Motor[i].SetPoint = MotorTest[i];
Motor[i].SetPointLowerBits = 0;
/*
Motor[i].SetPoint = MotorTest[i] / 4; // testing the high resolution
Motor[i].SetPointLowerBits = MotorTest[i] % 4;
*/
}
if(PC_MotortestActive) PC_MotortestActive--;
}
else FC_StatusFlags |= FC_STATUS_MOTOR_RUN;
 
// ++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++
#ifdef REDUNDANT_FC_SLAVE
I2CTimeout = 100;
return;
#endif
 
#ifdef REDUNDANT_FC_MASTER
if(Parameter_UserParam7 > 150)
{
// Make noise
if((BeepMuster == 0xffff)) { beeptime = 25000; BeepMuster = 0x0080; }
// Do not send I2C-Data
if(FC_StatusFlags3 & FC_STATUS3_REDUNDANCE)
{
I2CTimeout = 100;
return;
}
}
#endif
 
if(I2C_TransferActive)
{
I2C_TransferActive = 0; // enable for the next time
}
else
{
// motor_write = 0;
I2C_Start(TWI_STATE_MOTOR_TX); //Start I2C Interrupt Mode
}
}
 
unsigned char GetChannelValue(unsigned char ch) // gives the unsigned value of the channel
{
int tmp2;
if(ch == 0) return(0);
tmp2 = PPM_in[ch] + 127;
if(tmp2 > 255) tmp2 = 255; else if(tmp2 < 0) tmp2 = 0;
return(tmp2);
}
 
//############################################################################
// Trägt ggf. das Poti als Parameter ein
void ParameterZuordnung(void)
//############################################################################
{
unsigned char tmp,i;
for(i=0;i<8;i++)
{
int tmp2;
tmp = EE_Parameter.Kanalbelegung[K_POTI1 + i];
tmp2 = PPM_in[tmp] + 127;
if(tmp2 > 255) tmp2 = 255; else if(tmp2 < 0) tmp2 = 0;
 
if(tmp == 25) Poti[i] = tmp2; // 25 = WaypointEvent channel -> no filter
else
if(tmp2 != Poti[i])
{
Poti[i] += (tmp2 - Poti[i]) / 4;
if(Poti[i] > tmp2) Poti[i]--;
else Poti[i]++;
}
}
CHK_POTI_MM(Parameter_Luftdruck_D,EE_Parameter.Luftdruck_D,0,100);
CHK_POTI_MM(Parameter_Hoehe_P,EE_Parameter.Hoehe_P,0,100);
CHK_POTI_MM(Parameter_Gyro_P,EE_Parameter.Gyro_P,10,255);
CHK_POTI_MM(Parameter_J16Timing,EE_Parameter.J16Timing,5,255);
CHK_POTI_MM(Parameter_J17Timing,EE_Parameter.J17Timing,5,255);
if(EE_Parameter.Servo3 == 247) { if(PORTC & (1<<PORTC2)) Parameter_Servo3 = EE_Parameter.Servo3OnValue; else Parameter_Servo3 = EE_Parameter.Servo3OffValue;} // Out1 (J16)
else if(EE_Parameter.Servo3 == 246) { if(PORTC & (1<<PORTC3)) Parameter_Servo3 = EE_Parameter.Servo3OnValue; else Parameter_Servo3 = EE_Parameter.Servo3OffValue;}
else CHK_POTI_MM(Parameter_Servo3,EE_Parameter.Servo3, 24, 255);
 
if(EE_Parameter.Servo4 == 247) { if(PORTC & (1<<PORTC2)) Parameter_Servo4 = EE_Parameter.Servo4OnValue; else Parameter_Servo4 = EE_Parameter.Servo4OffValue;}
else if(EE_Parameter.Servo4 == 246) { if(PORTC & (1<<PORTC3)) Parameter_Servo4 = EE_Parameter.Servo4OnValue; else Parameter_Servo4 = EE_Parameter.Servo4OffValue;} // Out2 (J17)
else CHK_POTI_MM(Parameter_Servo4,EE_Parameter.Servo4, 24, 255);
 
CHK_POTI_MM(Parameter_Servo5,EE_Parameter.Servo5, 24, 255);
Parameter_HoehenSchalter = GetChannelValue(EE_Parameter.HoeheChannel);
CHK_POTI(Parameter_Hoehe_ACC_Wirkung,EE_Parameter.Hoehe_ACC_Wirkung);
CHK_POTI(Parameter_Hoehe_TiltCompensation,EE_Parameter.Hoehe_TiltCompensation);
CHK_POTI(Parameter_KompassWirkung,EE_Parameter.KompassWirkung);
CHK_POTI(Parameter_Gyro_I,EE_Parameter.Gyro_I);
CHK_POTI(Parameter_Gyro_D,EE_Parameter.Gyro_D);
CHK_POTI(Parameter_Gyro_Gier_P,EE_Parameter.Gyro_Gier_P);
CHK_POTI(Parameter_Gyro_Gier_I,EE_Parameter.Gyro_Gier_I);
CHK_POTI(Parameter_I_Faktor,EE_Parameter.I_Faktor);
CHK_POTI(Parameter_UserParam1,EE_Parameter.UserParam1);
CHK_POTI(Parameter_UserParam2,EE_Parameter.UserParam2);
CHK_POTI(Parameter_UserParam3,EE_Parameter.UserParam3);
CHK_POTI(Parameter_UserParam4,EE_Parameter.UserParam4);
CHK_POTI(Parameter_UserParam5,EE_Parameter.UserParam5);
CHK_POTI(Parameter_UserParam6,EE_Parameter.UserParam6);
CHK_POTI(Parameter_UserParam7,EE_Parameter.UserParam7);
CHK_POTI(Parameter_UserParam8,EE_Parameter.UserParam8);
CHK_POTI(Parameter_ServoNickControl,EE_Parameter.ServoNickControl);
CHK_POTI(Parameter_ServoRollControl,EE_Parameter.ServoRollControl);
CHK_POTI(Parameter_ServoNickComp,EE_Parameter.ServoNickComp);
CHK_POTI(Parameter_ServoRollComp,EE_Parameter.ServoRollComp);
CHK_POTI(Parameter_LoopGasLimit,EE_Parameter.LoopGasLimit);
CHK_POTI(Parameter_AchsKopplung1,EE_Parameter.AchsKopplung1);
CHK_POTI(Parameter_AchsKopplung2,EE_Parameter.AchsKopplung2);
CHK_POTI(Parameter_CouplingYawCorrection,EE_Parameter.CouplingYawCorrection);
CHK_POTI(Parameter_MaximumAltitude,EE_Parameter.MaxAltitude);
// if((NC_To_FC_MaxAltitude && NC_To_FC_MaxAltitude < Parameter_MaximumAltitude) || Parameter_MaximumAltitude == 0) Parameter_MaximumAltitude = NC_To_FC_MaxAltitude;
Parameter_GlobalConfig = EE_Parameter.GlobalConfig;
Parameter_ExtraConfig = EE_Parameter.ExtraConfig;
// CHK_POTI(Parameter_AchsGegenKopplung1,EE_Parameter.AchsGegenKopplung1,0,255);
CHK_POTI(Parameter_DynamicStability,EE_Parameter.DynamicStability);
CHK_POTI(Parameter_ExternalControl,EE_Parameter.ExternalControl);
Ki = 10300 / (Parameter_I_Faktor + 1);
MAX_GAS = EE_Parameter.Gas_Max;
MIN_GAS = EE_Parameter.Gas_Min;
 
if(EE_Parameter.CareFreeChannel)
{
CareFree = 1;
if(PPM_in[EE_Parameter.CareFreeChannel] < -64) CareFree = 0;
// if(tmp >= 248 && Poti[255 - tmp] < 50) CareFree = 0;
if(carefree_old != CareFree)
{
if(carefree_old < 3)
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(CareFree) { beeptime = 1500; if(!SpeakHoTT) SpeakHoTT = SPEAK_CF_ON; }
else { beeptime = 200; if(!SpeakHoTT) SpeakHoTT = SPEAK_CF_OFF; }
#else
if(CareFree) beeptime = 1500;
else beeptime = 200;
#endif
NeueKompassRichtungMerken = 5;
carefree_old = CareFree;
} else carefree_old--;
}
if(FromNaviCtrl.CompassValue < 0 && CareFree) VersionInfo.HardwareError[0] |= FC_ERROR0_CAREFREE; //else VersionInfo.HardwareError[0] &= ~FC_ERROR0_CAREFREE;
}
else
{
CareFree = 0;
carefree_old = 10;
}
 
if(FromNaviCtrl.CompassValue < 0 && MotorenEin && CareFree && BeepMuster == 0xffff) // ungültiger Kompasswert
{
beeptime = 15000;
BeepMuster = 0xA400;
CareFree = 0;
}
if(CareFree) { FC_StatusFlags2 |= FC_STATUS2_CAREFREE; /*if(Parameter_AchsKopplung1 < 210) Parameter_AchsKopplung1 += 30;*/} else FC_StatusFlags2 &= ~FC_STATUS2_CAREFREE;
}
 
void CalcStickGasHover(void)
{
if(!EE_Parameter.Hoehe_StickNeutralPoint)
{
StickGasHover = HoverGas/STICK_GAIN; // rescale back to stick value
StickGasHover = (unsigned int)((unsigned int) StickGasHover * UBat) / BattLowVoltageWarning;
}
else StickGasHover = EE_Parameter.Hoehe_StickNeutralPoint;
LIMIT_MIN_MAX(StickGasHover, 70, 175); // reserve some range for trim up and down
}
 
 
//############################################################################
//
void MotorRegler(void)
//############################################################################
{
int pd_ergebnis_nick,pd_ergebnis_roll,tmp_int, tmp_int2;
int GierMischanteil,GasMischanteil;
static long sollGier = 0,tmp_long,tmp_long2;
static unsigned int RcLostTimer;
static unsigned char delay_neutral = 0;
static unsigned char delay_einschalten = 0,delay_ausschalten = 0;
static signed char move_safety_switch = 0;
int IntegralNickMalFaktor,IntegralRollMalFaktor;
unsigned char i;
Mittelwert();
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gaswert ermitteln
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!(FC_StatusFlags & (FC_STATUS_EMERGENCY_LANDING | FC_STATUS2_RC_FAILSAVE_ACTIVE)))
{
if(EE_Parameter.GlobalConfig3 & CFG3_VARIO_FAILSAFE)
{
if(HoverGas && HoverGas < 150 * STICK_GAIN)
{
HooverGasEmergencyPercent = (HoverGas/(STICK_GAIN) * EE_Parameter.NotGas) / 100; // i.e. 80% of Hovergas
}
else HooverGasEmergencyPercent = 45; // default if the Hoovergas was could not calculated yet
} else HooverGasEmergencyPercent = EE_Parameter.NotGas;
}
if(GasIsZeroCnt == 30000) // in that case we have RC-Lost, but the MK is probably landed
{
StickGas = 0; // Hold Gas down in that case
HooverGasEmergencyPercent = MIN_GAS;
}
GasMischanteil = StickGas;
if(GasMischanteil < MIN_GAS + 10) GasMischanteil = MIN_GAS + 10;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Empfang schlecht
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(SenderOkay < 100 && !(FC_StatusFlags2 & FC_STATUS2_RC_FAILSAVE_ACTIVE))
{
if(RcLostTimer) RcLostTimer--;
else
{
MotorenEin = 0;
modell_fliegt = 0;
FC_StatusFlags &= ~(FC_STATUS_EMERGENCY_LANDING | FC_STATUS_FLY);
}
ROT_ON;
if(modell_fliegt > 1000 && Capacity.MinOfMaxPWM > 100) // wahrscheinlich in der Luft --> langsam absenken
{
GasMischanteil = HooverGasEmergencyPercent;
FC_StatusFlags |= FC_STATUS_EMERGENCY_LANDING;
}
else
{
MotorenEin = 0;
}
}
else
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Emfang gut
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(SenderOkay > 140)
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
static unsigned int trigger = 1000;
static unsigned char old_switch = 100;
if(EE_Parameter.StartLandChannel && EE_Parameter.LandingSpeed)
{
if(PPM_in[EE_Parameter.StartLandChannel] > 50)
{
if(old_switch == 50) if(FC_StatusFlags2 & FC_STATUS2_WAIT_FOR_TAKEOFF) { FC_StatusFlags2 |= FC_STATUS2_AUTO_STARTING; SpeakHoTT = SPEAK_RISING;}
FC_StatusFlags2 &= ~FC_STATUS2_AUTO_LANDING;
old_switch = 150;
}
else
if(PPM_in[EE_Parameter.StartLandChannel] < -50)
{
if(old_switch == 150) { FC_StatusFlags2 |= FC_STATUS2_AUTO_LANDING; SpeakHoTT = SPEAK_SINKING;}
FC_StatusFlags2 &= ~FC_STATUS2_AUTO_STARTING;
old_switch = 50;
}
else
{
FC_StatusFlags2 &= ~(FC_STATUS2_AUTO_STARTING | FC_STATUS2_AUTO_LANDING);
}
}
#endif
FC_StatusFlags &= ~FC_STATUS_EMERGENCY_LANDING;
RcLostTimer = EE_Parameter.NotGasZeit * 50;
if(GasMischanteil > 40 && MotorenEin)
{
if(modell_fliegt < 0xffff) modell_fliegt++;
}
if((modell_fliegt < 256))
{
SummeNick = 0;
SummeRoll = 0;
sollGier = 0;
Mess_Integral_Gier = 0;
FC_StatusFlags2 |= FC_STATUS2_WAIT_FOR_TAKEOFF;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
old_switch = 100;
#endif
}
else
{
FC_StatusFlags |= FC_STATUS_FLY;
if(FC_StatusFlags2 & FC_STATUS2_WAIT_FOR_TAKEOFF)
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if((NC_To_FC_Flags & NC_TO_FC_AUTOSTART || FC_StatusFlags2 & FC_STATUS2_AUTO_STARTING) && (VarioCharacter == '=') && ACC_AltitudeControl)
{
FromNC_AltitudeSpeed = 80;
FromNC_AltitudeSetpoint = 500;
SollHoehe = 500;
trigger = 1000;
if(NC_To_FC_Flags & NC_TO_FC_AUTOSTART) SpeakHoTT = SPEAK_NEXT_WP;
/* if(StartTrigger != 2)
{
StartTrigger = 1;
if(HoverGas < STICK_GAIN * 35) HoverGas = STICK_GAIN * 35;
}
*/
}
// else FC_StatusFlags2 &= ~(FC_STATUS2_AUTO_STARTING);
#endif
if(HoehenWertF > 150 || HoehenWert < -350 || !(Parameter_GlobalConfig & CFG_HOEHENREGELUNG))
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
trigger = 1000;
if(FC_StatusFlags2 & FC_STATUS2_AUTO_STARTING) { FromNC_AltitudeSpeed = 0; SollHoehe = 300;/*HoehenWertF + 100;*/}
else SpeakHoTT = SPEAK_RISING;
#endif
FC_StatusFlags2 &= ~(FC_STATUS2_WAIT_FOR_TAKEOFF | FC_STATUS2_AUTO_STARTING | FC_STATUS2_AUTO_LANDING);
}
SummeNick = 0;
SummeRoll = 0;
Mess_Integral_Gier = 0;
// sollGier = 0;
if(modell_fliegt > 1000) modell_fliegt = 1000; // for the Hooverpoint-Estimation
}
else // Flying mode
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if((FC_StatusFlags2 & FC_STATUS2_AUTO_LANDING) && (VarioCharacter == 'v' || VarioCharacter == '=') && ACC_AltitudeControl)
{
FromNC_AltitudeSpeed = EE_Parameter.LandingSpeed;
FromNC_AltitudeSetpoint = -20000;
}
if(trigger < 1000)
{
trigger++;
SummeNick = 0;
SummeRoll = 0;
Mess_Integral_Gier = 0;
SollHoehe = HoehenWertF - 300;
if(trigger == 1000 && FC_StatusFlags2 & FC_STATUS2_AUTO_LANDING && VarioCharacter != '+')
{
FC_StatusFlags2 &= ~FC_STATUS2_AUTO_LANDING;
FC_StatusFlags2 |= FC_STATUS2_WAIT_FOR_TAKEOFF; // go back into starting state
}
}
else
if(ACC_AltitudeControl && (VarioCharacter == 'v' || VarioCharacter == '-') && HoehenWert < 1000 /*&& FromNC_AltitudeSetpoint < 0*/)
{
if(Aktuell_az > 940)
{
trigger = 0;
SpeakHoTT = SPEAK_LANDING;
};
}
#endif
}
} // end of: modell_fliegt > 256
if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0 && !(NC_To_FC_Flags & NC_TO_FC_SIMULATION_ACTIVE))
{
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// auf Nullwerte kalibrieren
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 75) // Neutralwerte
{
if(++delay_neutral > 200) // nicht sofort
{
unsigned char setting = 0;
delay_neutral = 0;
modell_fliegt = 0;
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70 || abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) > 70)
{
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -70) setting = 1;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 2;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 3;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -70) setting = 5;
if(setting) SetActiveParamSet(setting); // aktiven Datensatz merken
}
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 30 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70)
{
WinkelOut.CalcState = 1;
CalibrationDone = 0;
beeptime = 1000;
}
else
{
ParamSet_ReadFromEEProm(ActiveParamSet);
LipoDetection(0);
LIBFC_ReceiverInit(EE_Parameter.Receiver);
if((Parameter_GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert?
{
if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();
}
if(!setting && PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < -70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) CalibrationDone = SetNeutral(3);
else
if(!setting && PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75 && abs(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]) < 70) CalibrationDone = SetNeutral(2); // store ACC values into EEPROM
else CalibrationDone = SetNeutral(1);
ServoActive = 1;
DDRD |=0x80; // enable J7 -> Servo signal
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(VersionInfo.HardwareError[0]) SpeakHoTT = SPEAK_ERR_SENSOR;
else
if(!CalibrationDone) SpeakHoTT = SPEAK_ERR_CALIBARTION;
else SpeakHoTT = SPEAK_CALIBRATE;
ShowSettingNameTime = 10; // for HoTT & Jeti
#endif
Piep(ActiveParamSet,120);
}
}
}
/*
else
if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75) // ACC Neutralwerte speichern
{
if(++delay_neutral > 200) // nicht sofort
{
MotorenEin = 0;
delay_neutral = 0;
modell_fliegt = 0;
CalibrationDone = SetNeutral(2); // store ACC values into EEPROM
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(VersionInfo.HardwareError[0]) SpeakHoTT = SPEAK_ERR_SENSOR;
else
if(!CalibrationDone) SpeakHoTT = SPEAK_ERR_CALIBARTION;
else SpeakHoTT = SPEAK_CALIBRATE;
#endif
Piep(ActiveParamSet,120);
}
}
*/
else delay_neutral = 0;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gas ist unten
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < -100)
{
if(PPM_diff[EE_Parameter.MotorSafetySwitch & 127] > 5) move_safety_switch = 100;
else
if(PPM_diff[EE_Parameter.MotorSafetySwitch & 127] < -5) move_safety_switch = -100;
// Motoren Starten
if(!MotorenEin)
{
if(((((PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -100) && ((!(EE_Parameter.GlobalConfig3 & CFG3_MOTOR_SWITCH_MODE) && PPM_in[EE_Parameter.MotorSafetySwitch] < -75) || EE_Parameter.MotorSafetySwitch == 0)))
|| (((EE_Parameter.GlobalConfig3 & CFG3_MOTOR_SWITCH_MODE) && PPM_in[EE_Parameter.MotorSafetySwitch] > -10 && move_safety_switch == 100)))
&& !(NC_To_FC_Flags & NC_TO_FC_SIMULATION_ACTIVE))
{
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Einschalten
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(CalibrationDone) FC_StatusFlags |= FC_STATUS_START;
 
StartLuftdruck = Luftdruck;
HoehenWert = 0;
HoehenWert_Mess = 0;
GasIsZeroCnt = 600;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
HoehenWertF_Mess = 0;
#endif
SummenHoehe = 0;
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -100 || abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 100) && EE_Parameter.MotorSafetySwitch == 0) delay_einschalten = 0;
if(++delay_einschalten > 253)
{
if(FC_StatusFlags3 & FC_STATUS3_BOAT) { if((abs(MesswertGier) > 32*2 || abs(MesswertNick) > 20*3) || abs(MesswertRoll) > 20*3) CalibrationDone = 0; } // dann ist der Gyro defekt, schlecht kalibriert oder der MK dreht sich
else
if((abs(MesswertGier) > 32 || abs(MesswertNick) > 20) || abs(MesswertRoll) > 20) CalibrationDone = 0; // dann ist der Gyro defekt, schlecht kalibriert oder der MK dreht sich
delay_einschalten = 0;
if(!VersionInfo.HardwareError[0] && CalibrationDone && !NC_ErrorCode)
{
modell_fliegt = 1;
MotorenEin = 1;
sollGier = 0;
Mess_Integral_Gier = 0;
Mess_Integral_Gier2 = 0;
Mess_IntegralNick = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccNick;
Mess_IntegralRoll = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccRoll;
SummeNick = 0;
SummeRoll = 0;
// ControlHeading = (((int) EE_Parameter.OrientationAngle * 15 + KompassValue) % 360) / 2;
NeueKompassRichtungMerken = 100; // 2 sekunden
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
SpeakHoTT = SPEAK_STARTING;
#endif
}
else
{
beeptime = 1500; // indicate missing calibration
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(!CalibrationDone) SpeakHoTT = SPEAK_ERR_CALIBARTION;
#endif
}
}
}
else delay_einschalten = 0;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Auschalten
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
else // only if motors are running
{
// if((PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) && (PPM_in[EE_Parameter.MotorSafetySwitch] < -75 || EE_Parameter.MotorSafetySwitch == 0))
if((((PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 100) && ((!(EE_Parameter.GlobalConfig3 & CFG3_MOTOR_SWITCH_MODE) && PPM_in[EE_Parameter.MotorSafetySwitch] < -75) || EE_Parameter.MotorSafetySwitch == 0)))
|| (((EE_Parameter.GlobalConfig3 & CFG3_MOTOR_SWITCH_MODE) && PPM_in[EE_Parameter.MotorSafetySwitch] < -50 && move_safety_switch == -100)))
{
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -100 || abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 100) && EE_Parameter.MotorSafetySwitch == 0)
{
delay_ausschalten = 0;
}
else
{
SummeNick = 0;
SummeRoll = 0;
StickNick = 0;
StickRoll = 0;
}
if(++delay_ausschalten > 250) // nicht sofort
{
MotorenEin = 0;
delay_ausschalten = 0;
modell_fliegt = 0;
FC_StatusFlags2 &= ~(FC_STATUS2_WAIT_FOR_TAKEOFF | FC_STATUS2_AUTO_STARTING | FC_STATUS2_AUTO_LANDING);
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
SpeakHoTT = SPEAK_MK_OFF;
#endif
}
else
if(delay_ausschalten == 100) beeptime = 3500;
}
else delay_ausschalten = 0;
}
if(GasIsZeroCnt < 1000)
{
if(VarioMeter > -150) GasIsZeroCnt++;
else if(GasIsZeroCnt) GasIsZeroCnt--;
}
}
else // gas not at minimum
{
move_safety_switch = 0;
GasIsZeroCnt = 0;
}
}
else // Empfang zwischen 100 und 140 -> schlecht
{
if(GasIsZeroCnt >= 750) // gas-stick was down for 1.5 seconds before RC-Lost
{
if((GPSInfo.HomeDistance < 40 * 10) && (HoehenWert < 15 * 100)) // and we are at the starting point -> maybe landed?
{
GasIsZeroCnt = 30000;
if(modell_fliegt > 1001) modell_fliegt = 1001;
}
}
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// neue Werte von der Funke
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
if(!NewPpmData-- || (FC_StatusFlags & FC_STATUS_EMERGENCY_LANDING))
{
static int stick_nick,stick_roll;
unsigned char stick_p;
ParameterZuordnung();
stick_p = EE_Parameter.Stick_P;
stick_nick = (stick_nick * 3 + PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] * stick_p) / 4;
stick_nick += PPM_diff[EE_Parameter.Kanalbelegung[K_NICK]] * EE_Parameter.Stick_D;
stick_roll = (stick_roll * 3 + PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] * stick_p) / 4;
stick_roll += PPM_diff[EE_Parameter.Kanalbelegung[K_ROLL]] * EE_Parameter.Stick_D;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// CareFree und freie Wahl der vorderen Richtung
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(CareFree)
{
signed int nick, roll;
nick = stick_nick / 4;
roll = stick_roll / 4;
StickNick = ((FromNC_Rotate_C * nick) + (FromNC_Rotate_S * roll)) / (32 / 4);
StickRoll = ((FromNC_Rotate_C * roll) - (FromNC_Rotate_S * nick)) / (32 / 4);
}
else
{
FromNC_Rotate_C = sintab[EE_Parameter.OrientationAngle + 6];
FromNC_Rotate_S = sintab[EE_Parameter.OrientationAngle];
StickNick = ((FromNC_Rotate_C * stick_nick) + (FromNC_Rotate_S * stick_roll)) / 8;
StickRoll = ((FromNC_Rotate_C * stick_roll) - (FromNC_Rotate_S * stick_nick)) / 8;
}
 
StickGier = -PPM_in[EE_Parameter.Kanalbelegung[K_GIER]];
if(StickGier > 4) StickGier -= 4; else
if(StickGier < -4) StickGier += 4; else StickGier = 0;
 
if(GasIsZeroCnt > 512) // About to switch - off
{
StickNick = StickNick/8;
StickRoll = StickRoll/8;
SummeNick = 0;
SummeRoll = 0;
}
else
if(GPS_Aid_StickMultiplikator) // in that case the GPS controls stronger
{
StickNick = (GPS_Aid_StickMultiplikator * (StickNick / 8)) / 16;
StickRoll = (GPS_Aid_StickMultiplikator * (StickRoll / 8)) / 16;
}
StickNick -= GPS_Nick;
StickRoll -= GPS_Roll;
StickGas = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] + 127;
 
GyroFaktor = (Parameter_Gyro_P + 10.0);
IntegralFaktor = Parameter_Gyro_I;
GyroFaktorGier = (Parameter_Gyro_Gier_P + 10.0);
IntegralFaktorGier = Parameter_Gyro_Gier_I;
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+ Analoge Steuerung per Seriell
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(ExternControl.Config & 0x01 && Parameter_ExternalControl > 128)
{
StickNick += (int) ExternControl.Nick * (int) EE_Parameter.Stick_P;
StickRoll += (int) ExternControl.Roll * (int) EE_Parameter.Stick_P;
StickGier += ExternControl.Gier;
ExternHoehenValue = (int) ExternControl.Hight * (int)EE_Parameter.Hoehe_Verstaerkung;
if(ExternControl.Gas < StickGas) StickGas = ExternControl.Gas;
}
if(StickGas < 0) StickGas = 0;
 
if(Parameter_GlobalConfig & CFG_HEADING_HOLD) IntegralFaktor = 0;
 
if(abs(StickNick/STICK_GAIN) > MaxStickNick)
{
MaxStickNick = abs(StickNick)/STICK_GAIN;
if(MaxStickNick > 100) MaxStickNick = 100;
}
else MaxStickNick--;
if(abs(StickRoll/STICK_GAIN) > MaxStickRoll)
{
MaxStickRoll = abs(StickRoll)/STICK_GAIN;
if(MaxStickRoll > 100) MaxStickRoll = 100;
}
else MaxStickRoll--;
if(FC_StatusFlags & FC_STATUS_EMERGENCY_LANDING) {MaxStickNick = 0; MaxStickRoll = 0;}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Looping?
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_LINKS) Looping_Links = 1;
else
{
{
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < (EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese))) Looping_Links = 0;
}
}
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < -EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_RECHTS) Looping_Rechts = 1;
else
{
if(Looping_Rechts) // Hysterese
{
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > -(EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese)) Looping_Rechts = 0;
}
}
 
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_OBEN) Looping_Oben = 1;
else
{
if(Looping_Oben) // Hysterese
{
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < (EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese))) Looping_Oben = 0;
}
}
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_UNTEN) Looping_Unten = 1;
else
{
if(Looping_Unten) // Hysterese
{
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -(EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese)) Looping_Unten = 0;
}
}
 
if(Looping_Links || Looping_Rechts) Looping_Roll = 1; else Looping_Roll = 0;
if(Looping_Oben || Looping_Unten) { Looping_Nick = 1; Looping_Roll = 0; Looping_Links = 0; Looping_Rechts = 0;} else Looping_Nick = 0;
} // Ende neue Funken-Werte
 
if(Looping_Roll || Looping_Nick)
{
if(GasMischanteil > EE_Parameter.LoopGasLimit) GasMischanteil = EE_Parameter.LoopGasLimit;
TrichterFlug = 1;
}
 
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Bei Empfangsausfall im Flug
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(FC_StatusFlags2 & FC_STATUS2_RC_FAILSAVE_ACTIVE)
{
StickNick = -GPS_Nick;
StickRoll = -GPS_Roll;
StickGas = StickGasHover;
StickGier = 0;
Parameter_GlobalConfig &= ~(CFG_HEADING_HOLD | CFG_DREHRATEN_BEGRENZER);
Parameter_GlobalConfig |= CFG_HOEHENREGELUNG | CFG_ACHSENKOPPLUNG_AKTIV | CFG_KOMPASS_AKTIV | CFG_GPS_AKTIV | CFG_HOEHEN_SCHALTER | CFG_GPS_AKTIV;
Parameter_ExtraConfig &= ~(CFG2_HEIGHT_LIMIT | CFG_LEARNABLE_CAREFREE | CFG2_VARIO_BEEP);
Parameter_HoehenSchalter = 200; // switch on
}
else
if(FC_StatusFlags & FC_STATUS_EMERGENCY_LANDING)
{
StickGier = 0;
StickNick = 0;
StickRoll = 0;
GyroFaktor = 90;
IntegralFaktor = 120;
GyroFaktorGier = 90;
IntegralFaktorGier = 120;
Looping_Roll = 0;
Looping_Nick = 0;
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Integrale auf ACC-Signal abgleichen
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#define ABGLEICH_ANZAHL 256L
 
MittelIntegralNick += IntegralNick; // Für die Mittelwertbildung aufsummieren
MittelIntegralRoll += IntegralRoll;
if(Looping_Nick || Looping_Roll)
{
MittelIntegralNick = 0;
MittelIntegralRoll = 0;
ZaehlMessungen = 0;
LageKorrekturNick = 0;
LageKorrekturRoll = 0;
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!Looping_Nick && !Looping_Roll && (Aktuell_az > 512 || MotorenEin))
{
long tmp_long, tmp_long2;
if(FromNaviCtrl_Value.Kalman_K > 0 /*&& !TrichterFlug*/)
{
tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)(Mittelwert_AccNick - FromNaviCtrl.AccErrorN));
tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)(Mittelwert_AccRoll - FromNaviCtrl.AccErrorR));
tmp_long = (tmp_long * FromNaviCtrl_Value.Kalman_K) / (32 * 16);
tmp_long2 = (tmp_long2 * FromNaviCtrl_Value.Kalman_K) / (32 * 16);
if((MaxStickNick > 64) || (MaxStickRoll > 64))
{
tmp_long /= 2;
tmp_long2 /= 2;
}
if(tmp_long > (long) FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long = (long) FromNaviCtrl_Value.Kalman_MaxFusion;
if(tmp_long < (long)-FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long = (long)-FromNaviCtrl_Value.Kalman_MaxFusion;
if(tmp_long2 > (long) FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long2 = (long) FromNaviCtrl_Value.Kalman_MaxFusion;
if(tmp_long2 < (long)-FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long2 = (long)-FromNaviCtrl_Value.Kalman_MaxFusion;
}
else
{
tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccNick);
tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccRoll);
tmp_long /= 16;
tmp_long2 /= 16;
if((MaxStickNick > 64) || (MaxStickRoll > 64))
{
tmp_long /= 3;
tmp_long2 /= 3;
}
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25)
{
tmp_long /= 3;
tmp_long2 /= 3;
}
KompassFusion = 25;
#define AUSGLEICH 32
if(tmp_long > AUSGLEICH) tmp_long = AUSGLEICH;
if(tmp_long < -AUSGLEICH) tmp_long =-AUSGLEICH;
if(tmp_long2 > AUSGLEICH) tmp_long2 = AUSGLEICH;
if(tmp_long2 <-AUSGLEICH) tmp_long2 =-AUSGLEICH;
}
 
Mess_IntegralNick -= tmp_long;
Mess_IntegralRoll -= tmp_long2;
DriftNick += tmp_long;
DriftRoll += tmp_long2;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(ZaehlMessungen >= ABGLEICH_ANZAHL)
{
// static int cnt = 0;
// static char last_n_p,last_n_n,last_r_p,last_r_n;
static long MittelIntegralNick_Alt,MittelIntegralRoll_Alt;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gyro-Drift ermitteln
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(EE_Parameter.Driftkomp && abs(Mittelwert_AccNick) < 200*4 && abs(Mittelwert_AccRoll) < 200*4 && !TrichterFlug && abs(MesswertGier) < 32/* && (FC_StatusFlags & FC_STATUS_FLY)*/)
{
DebugOut.Analog[16] = EE_Parameter.Driftkomp;
DriftNick -= DriftNick / (64 * (unsigned int) EE_Parameter.Driftkomp);
DriftRoll -= DriftRoll / (64 * (unsigned int) EE_Parameter.Driftkomp);
GierGyroFehler -= GierGyroFehler / (64 * (unsigned int) EE_Parameter.Driftkomp);
if((MaxStickNick > 64) || (MaxStickRoll > 64) || (abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25))
{
DriftNick /= 2;
DriftRoll /= 2;
GierGyroFehler = 0;
}
if(DriftNick > 3000) { DriftNick = 0; AdNeutralNick++;}
if(DriftNick <-3000) { DriftNick = 0; AdNeutralNick--;}
if(DriftRoll > 3000) { DriftRoll = 0; AdNeutralRoll++;}
if(DriftRoll <-3000) { DriftRoll = 0; AdNeutralRoll--;}
if(GierGyroFehler > 3500) { GierGyroFehler = 0; AdNeutralGier++; }
if(GierGyroFehler <-3500) { GierGyroFehler = 0; AdNeutralGier--; }
}
else
{
DriftNick = 0;
DriftRoll = 0;
GierGyroFehler = 0;
}
TrichterFlug = 0;
 
/*
if(!Looping_Nick && !Looping_Roll && !TrichterFlug && EE_Parameter.Driftkomp)
{
MittelIntegralNick /= ABGLEICH_ANZAHL;
MittelIntegralRoll /= ABGLEICH_ANZAHL;
IntegralAccNick = (EE_Parameter.GyroAccFaktor * IntegralAccNick) / ABGLEICH_ANZAHL;
IntegralAccRoll = (EE_Parameter.GyroAccFaktor * IntegralAccRoll) / ABGLEICH_ANZAHL;
IntegralAccZ = IntegralAccZ / ABGLEICH_ANZAHL;
#define MAX_I 0
// Nick ++++++++++++++++++++++++++++++++++++++++++++++++
IntegralFehlerNick = (long)(MittelIntegralNick - (long)IntegralAccNick);
ausgleichNick = IntegralFehlerNick / EE_Parameter.GyroAccAbgleich;
// Roll ++++++++++++++++++++++++++++++++++++++++++++++++
IntegralFehlerRoll = (long)(MittelIntegralRoll - (long)IntegralAccRoll);
ausgleichRoll = IntegralFehlerRoll / EE_Parameter.GyroAccAbgleich;
 
LageKorrekturNick = ausgleichNick / ABGLEICH_ANZAHL;
LageKorrekturRoll = ausgleichRoll / ABGLEICH_ANZAHL;
 
if(((MaxStickNick > 64) || (MaxStickRoll > 64) || (abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25)) && (FromNaviCtrl_Value.Kalman_K == -1))
{
LageKorrekturNick /= 2;
LageKorrekturRoll /= 2;
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gyro-Drift ermitteln
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MittelIntegralNick2 /= ABGLEICH_ANZAHL;
MittelIntegralRoll2 /= ABGLEICH_ANZAHL;
tmp_long = IntegralNick2 - IntegralNick;
tmp_long2 = IntegralRoll2 - IntegralRoll;
 
IntegralFehlerNick = tmp_long;
IntegralFehlerRoll = tmp_long2;
Mess_IntegralNick2 -= IntegralFehlerNick;
Mess_IntegralRoll2 -= IntegralFehlerRoll;
 
if(EE_Parameter.Driftkomp)
{
if(GierGyroFehler > ABGLEICH_ANZAHL/2) { AdNeutralGier++; }
if(GierGyroFehler <-ABGLEICH_ANZAHL/2) { AdNeutralGier--; }
}
GierGyroFehler = 0;
 
#define FEHLER_LIMIT (ABGLEICH_ANZAHL / 2)
#define FEHLER_LIMIT1 (ABGLEICH_ANZAHL * 2) //4
#define FEHLER_LIMIT2 (ABGLEICH_ANZAHL * 16) //16
#define BEWEGUNGS_LIMIT 20000
 
// Nick +++++++++++++++++++++++++++++++++++++++++++++++++
cnt = 1;// + labs(IntegralFehlerNick) / 4096;
if(labs(IntegralFehlerNick) > FEHLER_LIMIT1) cnt = 4;
if(labs(MittelIntegralNick_Alt - MittelIntegralNick) < BEWEGUNGS_LIMIT || (FromNaviCtrl_Value.Kalman_MaxDrift > 3*8))
{
if(IntegralFehlerNick > FEHLER_LIMIT2)
{
if(last_n_p)
{
cnt += labs(IntegralFehlerNick) / (FEHLER_LIMIT2 / 8);
ausgleichNick = IntegralFehlerNick / 8;
if(ausgleichNick > 5000) ausgleichNick = 5000;
LageKorrekturNick += ausgleichNick / ABGLEICH_ANZAHL;
}
else last_n_p = 1;
} else last_n_p = 0;
if(IntegralFehlerNick < -FEHLER_LIMIT2)
{
if(last_n_n)
{
cnt += labs(IntegralFehlerNick) / (FEHLER_LIMIT2 / 8);
ausgleichNick = IntegralFehlerNick / 8;
if(ausgleichNick < -5000) ausgleichNick = -5000;
LageKorrekturNick += ausgleichNick / ABGLEICH_ANZAHL;
}
else last_n_n = 1;
} else last_n_n = 0;
}
else
{
cnt = 0;
KompassSignalSchlecht = 100;
}
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp;
if(FromNaviCtrl_Value.Kalman_MaxDrift) if(cnt > FromNaviCtrl_Value.Kalman_MaxDrift) cnt = FromNaviCtrl_Value.Kalman_MaxDrift;
if(IntegralFehlerNick > FEHLER_LIMIT) AdNeutralNick += cnt;
if(IntegralFehlerNick < -FEHLER_LIMIT) AdNeutralNick -= cnt;
 
// Roll +++++++++++++++++++++++++++++++++++++++++++++++++
cnt = 1;// + labs(IntegralFehlerRoll) / 4096;
if(labs(IntegralFehlerRoll) > FEHLER_LIMIT1) cnt = 4;
if(labs(MittelIntegralRoll_Alt - MittelIntegralRoll) < BEWEGUNGS_LIMIT || (FromNaviCtrl_Value.Kalman_MaxDrift > 3*8))
{
if(IntegralFehlerRoll > FEHLER_LIMIT2)
{
if(last_r_p)
{
cnt += labs(IntegralFehlerRoll) / (FEHLER_LIMIT2 / 8);
ausgleichRoll = IntegralFehlerRoll / 8;
if(ausgleichRoll > 5000) ausgleichRoll = 5000;
LageKorrekturRoll += ausgleichRoll / ABGLEICH_ANZAHL;
}
else last_r_p = 1;
} else last_r_p = 0;
if(IntegralFehlerRoll < -FEHLER_LIMIT2)
{
if(last_r_n)
{
cnt += labs(IntegralFehlerRoll) / (FEHLER_LIMIT2 / 8);
ausgleichRoll = IntegralFehlerRoll / 8;
if(ausgleichRoll < -5000) ausgleichRoll = -5000;
LageKorrekturRoll += ausgleichRoll / ABGLEICH_ANZAHL;
}
else last_r_n = 1;
} else last_r_n = 0;
} else
{
cnt = 0;
KompassSignalSchlecht = 100;
}
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp;
if(FromNaviCtrl_Value.Kalman_MaxDrift) if(cnt > FromNaviCtrl_Value.Kalman_MaxDrift) cnt = FromNaviCtrl_Value.Kalman_MaxDrift;
if(IntegralFehlerRoll > FEHLER_LIMIT) AdNeutralRoll += cnt;
if(IntegralFehlerRoll < -FEHLER_LIMIT) AdNeutralRoll -= cnt;
}
else
{
LageKorrekturRoll = 0;
LageKorrekturNick = 0;
TrichterFlug = 0;
}
*/
if(!IntegralFaktor) { LageKorrekturRoll = 0; LageKorrekturNick = 0;} // z.B. bei HH
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
MittelIntegralNick_Alt = MittelIntegralNick;
MittelIntegralRoll_Alt = MittelIntegralRoll;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
MittelIntegralNick = 0;
MittelIntegralRoll = 0;
ZaehlMessungen = 0;
} // ZaehlMessungen >= ABGLEICH_ANZAHL
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gieren
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(abs(StickGier) > 3) // war 15
{
// KompassSignalSchlecht = 1000;
if(!(Parameter_GlobalConfig & CFG_KOMPASS_FIX))
{
NeueKompassRichtungMerken = 50; // eine Sekunde zum Einloggen
};
}
tmp_int = (long) EE_Parameter.StickGier_P * ((long)StickGier * abs(StickGier)) / 512L; // expo y = ax + bx²
tmp_int += (EE_Parameter.StickGier_P * StickGier) / 4;
if(GasIsZeroCnt > 512) tmp_int = 0; // disable Yawing when Gas-Stick is to Zero
tmp_int += CompassGierSetpoint;
sollGier = tmp_int;
Mess_Integral_Gier -= tmp_int;
if(Mess_Integral_Gier > 50000) Mess_Integral_Gier = 50000; // begrenzen
if(Mess_Integral_Gier <-50000) Mess_Integral_Gier =-50000;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Kompass
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(KompassValue >= 0 && (Parameter_GlobalConfig & CFG_KOMPASS_AKTIV))
{
if(CalculateCompassTimer-- == 1)
{
int w,v,r,fehler,korrektur; // wird von der SPI-Routine auf 1 gesetzt
CalculateCompassTimer = 13; // falls keine Navi-Daten
// max. Korrekturwert schätzen
w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln
v = abs(IntegralRoll /512);
if(v > w) w = v; // grösste Neigung ermitteln
// korrektur = w / 4 + 1;
korrektur = w / 8 + 2;
ErsatzKompassInGrad = ErsatzKompass/GIER_GRAD_FAKTOR;
// Kompassfehlerwert bestimmen
fehler = ((540 + KompassValue - ErsatzKompassInGrad) % 360) - 180;
// GIER_GRAD_FAKTOR ist ca. 1200
// Kompasswert einloggen
if(NeueKompassRichtungMerken) KompassSollWert = ErsatzKompassInGrad;
 
if(KompassSignalSchlecht) KompassSignalSchlecht--;
else
if(w < 25)
{
GierGyroFehler += fehler;
if(NeueKompassRichtungMerken) NeueKompassRichtungMerken--;
/* if(NeueKompassRichtungMerken)
{
if(--NeueKompassRichtungMerken == 0)
{
KompassSollWert = ErsatzKompassInGrad;
}
}
*/
}
// Kompass fusionieren
if(!KompassSignalSchlecht) ErsatzKompass += (fehler * KompassFusion) / korrektur;
// MK Gieren
if(!NeueKompassRichtungMerken)
{
r = ((540 + (KompassSollWert - ErsatzKompassInGrad)) % 360) - 180;
v = r * (Parameter_KompassWirkung/2); // nach Kompass ausrichten
CompassGierSetpoint = v / 16;
}
else CompassGierSetpoint = 0;
} // CalculateCompassTimer
}
else CompassGierSetpoint = 0;
 
//DebugOut.Analog[16] = KompassFusion;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Drehgeschwindigkeit und -winkel zu einem Istwert zusammenfassen
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(TrichterFlug) { SummeRoll = 0; SummeNick = 0;};
 
if(!Looping_Nick) IntegralNickMalFaktor = (IntegralNick * IntegralFaktor) / (44000 / STICK_GAIN); else IntegralNickMalFaktor = 0;
if(!Looping_Roll) IntegralRollMalFaktor = (IntegralRoll * IntegralFaktor) / (44000 / STICK_GAIN); else IntegralRollMalFaktor = 0;
 
#define TRIM_MAX 200
if(TrimNick > TRIM_MAX) TrimNick = TRIM_MAX; else if(TrimNick <-TRIM_MAX) TrimNick =-TRIM_MAX;
if(TrimRoll > TRIM_MAX) TrimRoll = TRIM_MAX; else if(TrimRoll <-TRIM_MAX) TrimRoll =-TRIM_MAX;
 
MesswertNick = IntegralNickMalFaktor + (long)((long)MesswertNick * GyroFaktor + (long)TrimNick * 128L) / (256L / STICK_GAIN);
MesswertRoll = IntegralRollMalFaktor + (long)((long)MesswertRoll * GyroFaktor + (long)TrimRoll * 128L) / (256L / STICK_GAIN);
MesswertGier = (long)(MesswertGier * 2 * (long)GyroFaktorGier) / (256L / STICK_GAIN) + (long)(Integral_Gier * IntegralFaktorGier) / (2 * (44000 / STICK_GAIN));
 
// Maximalwerte abfangen
#define MAX_SENSOR (4096)
if(MesswertNick > MAX_SENSOR) MesswertNick = MAX_SENSOR;
if(MesswertNick < -MAX_SENSOR) MesswertNick = -MAX_SENSOR;
if(MesswertRoll > MAX_SENSOR) MesswertRoll = MAX_SENSOR;
if(MesswertRoll < -MAX_SENSOR) MesswertRoll = -MAX_SENSOR;
if(MesswertGier > MAX_SENSOR) MesswertGier = MAX_SENSOR;
if(MesswertGier < -MAX_SENSOR) MesswertGier = -MAX_SENSOR;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Undervoltage
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!(FC_StatusFlags & FC_STATUS_LOWBAT))
{
GasMischanteil = ((unsigned int)GasMischanteil * BattLowVoltageWarning) / UBat; // Gas auf das aktuelle Spannungvieveau beziehen
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Auto-Landing
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
static unsigned char slower;
if(!slower--)
{
static unsigned int u_filter = 0;
if(!u_filter) u_filter = UBat;
if(UBat > u_filter) u_filter++; else
if(UBat < u_filter) u_filter--;
slower = 100; // 5Hz
if(u_filter < BattAutoLandingVoltage)
{
LowVoltageLandingActive = 10; // 2 sek
}
else if(u_filter > BattAutoLandingVoltage + LipoCells && LowVoltageLandingActive) LowVoltageLandingActive--;
 
if(u_filter < BattComingHomeVoltage)
{
LowVoltageHomeActive = 25; // min. 5 sek
}
else if(u_filter > BattComingHomeVoltage + LipoCells && LowVoltageHomeActive) LowVoltageHomeActive--;
}
if(LowVoltageLandingActive && FromNC_AltitudeSetpoint >= 0)
{
FromNC_AltitudeSpeed = EE_Parameter.LandingSpeed;
FromNC_AltitudeSetpoint = -20000;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// send SPI pending bytes
if(BytegapSPI == 0) SPI_TransmitByte();
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Höhenregelung
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GasMischanteil *= STICK_GAIN;
// if height control is activated
if((Parameter_GlobalConfig & CFG_HOEHENREGELUNG) && !(Looping_Roll || Looping_Nick) && !(VersionInfo.HardwareError[0] & 0x7F)) // Höhenregelung
{
#define HOVER_GAS_AVERAGE 16384L // 16384 * 2ms = 32s averaging
#define HC_GAS_AVERAGE 4 // 4 * 2ms= 8ms averaging
 
int HCGas, GasReduction = 0;
static int HeightTrimming = 0; // rate for change of height setpoint
static int HeightDeviation = 0, FilterHCGas = 0;
static unsigned long HoverGasFilter = 0;
static unsigned char delay = 100, BaroAtUpperLimit = 0, BaroAtLowerLimit = 0;
// Expand the measurement
// measurement of air pressure close to upper limit and no overflow in correction of the new OCR0A value occurs
if(!BaroExpandActive)
{
if(MessLuftdruck > 920)
{ // increase offset
if(OCR0A < (255 - OPA_OFFSET_STEP))
{
ExpandBaro -= 1;
OCR0A = DruckOffsetSetting - OPA_OFFSET_STEP * ExpandBaro; // increase offset to shift ADC down
OCR0B = 255 - OCR0A;
beeptime = 300;
BaroExpandActive = 350;
CalcExpandBaroStep();
}
else
{
BaroAtLowerLimit = 1;
}
}
// measurement of air pressure close to lower limit and
else
if(MessLuftdruck < 100)
{ // decrease offset
if(OCR0A > OPA_OFFSET_STEP)
{
ExpandBaro += 1;
OCR0A = DruckOffsetSetting - OPA_OFFSET_STEP * ExpandBaro; // decrease offset to shift ADC up
OCR0B = 255 - OCR0A;
beeptime = 300;
BaroExpandActive = 350;
CalcExpandBaroStep();
}
else
{
BaroAtUpperLimit = 1;
}
}
else
{
BaroAtUpperLimit = 0;
BaroAtLowerLimit = 0;
}
}
else // delay, because of expanding the Baro-Range
{
// now clear the D-values
VarioMeter = 0;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(ACC_AltitudeControl) ACC_AltitudeFusion(1); // init
else SummenHoehe = HoehenWert * SM_FILTER;
#else
SummenHoehe = HoehenWert * SM_FILTER;
#endif
BaroExpandActive--;
}
// if height control is activated by an rc channel
if(Parameter_GlobalConfig & CFG_HOEHEN_SCHALTER) // Regler wird über Schalter gesteuert
{ // check if parameter is less than activation threshold
if(Parameter_HoehenSchalter < 50) // for 3 or 2-state switch height control is disabled in lowest position
{ //height control not active
if(!delay--)
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(!SpeakHoTT && HoehenReglerAktiv) SpeakHoTT = SPEAK_ALTITUDE_OFF;
#endif
HoehenReglerAktiv = 0; // disable height control
SollHoehe = HoehenWert; // update SetPoint with current reading
delay = 1;
}
}
else
if(Parameter_HoehenSchalter > 70)
{ //height control is activated
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(!SpeakHoTT && !HoehenReglerAktiv) SpeakHoTT = SPEAK_ALTITUDE_ON;
#endif
delay = 200;
HoehenReglerAktiv = 1; // enable height control
}
}
else // no switchable height control
{
SollHoehe = ((int16_t) ExternHoehenValue + (int16_t) Parameter_HoehenSchalter) * (int)EE_Parameter.Hoehe_Verstaerkung;
HoehenReglerAktiv = 1;
}
// calculate cos of nick and roll angle used for projection of the vertical hoover gas
tmp_int = (int)(IntegralNick/GIER_GRAD_FAKTOR); // nick angle in deg
tmp_int2 = (int)(IntegralRoll/GIER_GRAD_FAKTOR); // roll angle in deg
tmp_int = (int16_t)ihypot(tmp_int, tmp_int2); // phytagoras gives effective attitude angle in deg
tmp_int = (tmp_int * Parameter_Hoehe_TiltCompensation) / 100;
LIMIT_MAX(tmp_int, 60); // limit effective attitude angle
CosAttitude = c_cos_8192(tmp_int); // cos of actual attitude
VarioCharacter = ' ';
AltitudeSetpointTrimming = 0;
if(HoehenReglerAktiv && !(FC_StatusFlags & FC_STATUS_EMERGENCY_LANDING))
{
// Holger original version
// start of height control algorithm
// the height control is only an attenuation of the actual gas stick.
// I.e. it will work only if the gas stick is higher than the hover gas
// and the hover height will be allways larger than height setpoint.
FC_StatusFlags2 |= FC_STATUS2_ALTITUDE_CONTROL;
if((Parameter_ExtraConfig & CFG2_HEIGHT_LIMIT) || !(Parameter_GlobalConfig & CFG_HOEHEN_SCHALTER)) // Regler wird über Schalter gesteuert)
{ // old version
HCGas = GasMischanteil; // take current stick gas as neutral point for the height control
HeightTrimming = 0;
AltitudeSetpointTrimming = 0;
// set both flags to indicate no vario mode
FC_StatusFlags |= (FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN);
}
else
{
// alternative height control
// PD-Control with respect to hoover point
// the thrust loss out of horizontal attitude is compensated
// the setpoint will be fine adjusted with the gas stick position
if(/*1 || */FC_StatusFlags & FC_STATUS_FLY) // trim setpoint only when flying
{ // gas stick is above hoover point
if(StickGas > (StickGasHover + HEIGHT_CONTROL_STICKTHRESHOLD) && !BaroAtUpperLimit)
{
if(FC_StatusFlags & FC_STATUS_VARIO_TRIM_DOWN)
{
FC_StatusFlags &= ~FC_STATUS_VARIO_TRIM_DOWN;
SollHoehe = HoehenWertF; // update setpoint to current heigth
}
// Limit the maximum Altitude
if(Parameter_MaximumAltitude && (SollHoehe/100 > Parameter_MaximumAltitude))
{
AltitudeSetpointTrimming = 0;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(!SpeakHoTT && HoehenWert/95 > Parameter_MaximumAltitude) SpeakHoTT = SPEAK_MAX_ALTITUD;
#endif
VarioCharacter = '=';
}
else
{
if(HeightDeviation > 20) SollHoehe = HoehenWertF; // update setpoint to current heigth
FC_StatusFlags |= FC_STATUS_VARIO_TRIM_UP;
AltitudeSetpointTrimming = abs(StickGas - (StickGasHover + HEIGHT_CONTROL_STICKTHRESHOLD));
if(LowVoltageLandingActive) AltitudeSetpointTrimming /= 3; // only 33% rising
VarioCharacter = '+';
}
WaypointTrimming = 0;
} // gas stick is below hoover point
else if(StickGas < (StickGasHover - HEIGHT_CONTROL_STICKTHRESHOLD) && !BaroAtLowerLimit ) // Minus
{
if(FC_StatusFlags & FC_STATUS_VARIO_TRIM_UP || (HeightDeviation < -300))
{
FC_StatusFlags &= ~FC_STATUS_VARIO_TRIM_UP;
SollHoehe = HoehenWertF; // update setpoint to current heigth
}
FC_StatusFlags |= FC_STATUS_VARIO_TRIM_DOWN;
AltitudeSetpointTrimming = -abs(StickGas - (StickGasHover - HEIGHT_CONTROL_STICKTHRESHOLD));
VarioCharacter = '-';
WaypointTrimming = 0;
}
else // Gas Stick in Hover Range
{
VarioCharacter = '=';
if(FromNC_AltitudeSpeed && FromNC_AltitudeSetpoint > SollHoehe) // von NC gesteuert -> Steigen
{
FC_StatusFlags |= FC_STATUS_VARIO_TRIM_UP;
AltitudeSetpointTrimming = FromNC_AltitudeSpeed;
//HeightTrimming += FromNC_AltitudeSpeed;
WaypointTrimming = 10;
VarioCharacter = '^';
if(FC_StatusFlags & FC_STATUS_VARIO_TRIM_DOWN) // changed from sinking to rising
{
FC_StatusFlags &= ~FC_STATUS_VARIO_TRIM_DOWN;
SollHoehe = HoehenWertF; // update setpoint to current heigth
}
}
else
if(FromNC_AltitudeSpeed && FromNC_AltitudeSetpoint < SollHoehe) // von NC gesteuert -> sinken
{
FC_StatusFlags |= FC_STATUS_VARIO_TRIM_DOWN;
AltitudeSetpointTrimming = -FromNC_AltitudeSpeed;
//HeightTrimming -= FromNC_AltitudeSpeed;
WaypointTrimming = -10;
VarioCharacter = 'v';
if(FC_StatusFlags & FC_STATUS_VARIO_TRIM_UP) // changed from rising to sinking
{
FC_StatusFlags &= ~FC_STATUS_VARIO_TRIM_UP;
SollHoehe = HoehenWertF; // update setpoint to current heigth
}
}
else
if(FC_StatusFlags & (FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN))
{
if(!WaypointTrimming) LIMIT_MIN_MAX(SollHoehe, (HoehenWertF-200), (HoehenWertF+200)) // max. 2m Unterschied
else WaypointTrimming = 0;
FC_StatusFlags &= ~(FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN);
HeightTrimming = 0;
if(Parameter_ExtraConfig & CFG2_VARIO_BEEP) beeptime = 500;
if(!StartTrigger && HoehenWert > 50)
{
StartTrigger = 1;
}
}
}
// Trim height set point
HeightTrimming += AltitudeSetpointTrimming;
if(abs(HeightTrimming) > 500) // bei Waypoint-Flug ist das ca. die 500Hz
{
if(WaypointTrimming)
{
if(abs(FromNC_AltitudeSetpoint - SollHoehe) < 10) SollHoehe = FromNC_AltitudeSetpoint;
else SollHoehe += WaypointTrimming;
}
else
{
if(HeightTrimming > 0) SollHoehe += EE_Parameter.Hoehe_Verstaerkung / 3;
else SollHoehe -= EE_Parameter.Hoehe_Verstaerkung / 3;
}
HeightTrimming = 0;
LIMIT_MIN_MAX(HoehenWertF, (HoehenWert-1024), (HoehenWert+1024)); // max. 10m Unterschied
LIMIT_MIN_MAX(SollHoehe, (HoehenWertF-1024), (HoehenWertF+1500)); // max. 15m Unterschied
if(Parameter_ExtraConfig & CFG2_VARIO_BEEP) beeptime = 100;
//update hoover gas stick value when setpoint is shifted
if(FromNC_AltitudeSpeed == 0) CalcStickGasHover();
/*
if(!EE_Parameter.Hoehe_StickNeutralPoint && FromNC_AltitudeSpeed == 0)
{
StickGasHover = HoverGas/STICK_GAIN; //rescale back to stick value
StickGasHover = (unsigned int)((unsigned int) StickGasHover * UBat) / BattLowVoltageWarning;
if(StickGasHover < 70) StickGasHover = 70;
else if(StickGasHover > 175) StickGasHover = 175;
}
*/
}
if(BaroExpandActive) SollHoehe = HoehenWertF; // update setpoint to current altitude if Expanding is active
} //if FCFlags & MKFCFLAG_FLY
else
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
ACC_AltitudeFusion(1); // init the ACC and Altitude fusion
#endif
SollHoehe = HoehenWertF - 2000;
 
if(EE_Parameter.Hoehe_StickNeutralPoint) StickGasHover = EE_Parameter.Hoehe_StickNeutralPoint;
else StickGasHover = 127;
HoverGas = GasMischanteil;
VarioCharacter = '.';
}
HCGas = HoverGas; // take hover gas (neutral point)
}
if(HoehenWertF > SollHoehe || !(Parameter_ExtraConfig & CFG2_HEIGHT_LIMIT))
{
if(!ACC_AltitudeControl)
{
// from this point the Heigth Control Algorithm is identical for both versions
if(BaroExpandActive) // baro range expanding active
{
HCGas = HoverGas; // hover while expanding baro adc range
HeightDeviation = 0;
} // EOF // baro range expanding active
else // valid data from air pressure sensor
{
// ------------------------- P-Part ----------------------------
tmp_long = (HoehenWertF - SollHoehe); // positive when too high
LIMIT_MIN_MAX(tmp_long, -32767L, 32767L); // avoid overflov when casting to int16_t
HeightDeviation = (int)(tmp_long); // positive when too high
tmp_long = (tmp_long * (long)Parameter_Hoehe_P) / 32L; // p-part
LIMIT_MIN_MAX(tmp_long, -127 * STICK_GAIN, 256 * STICK_GAIN); // more than the full range makes no sense
GasReduction = tmp_long;
// ------------------------- D-Part 1: Vario Meter ----------------------------
tmp_int = VarioMeter / 8;
LIMIT_MIN_MAX(tmp_int, -127, 128);
tmp_int = (tmp_int * (long)Parameter_Luftdruck_D) / 4L; // scale to d-gain parameter
LIMIT_MIN_MAX(tmp_int,-64 * STICK_GAIN, 64 * STICK_GAIN);
if(FC_StatusFlags & (FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN)) tmp_int /= 4; // reduce d-part while trimming setpoint
else
if(Parameter_ExtraConfig & CFG2_HEIGHT_LIMIT) tmp_int /= 8; // reduce d-part in "Deckel" mode
GasReduction += tmp_int;
} // EOF no baro range expanding
// ------------------------ D-Part 2: ACC-Z Integral ------------------------
if(Parameter_Hoehe_ACC_Wirkung)
{
tmp_long = ((Mess_Integral_Hoch / 128L) * (int32_t) Parameter_Hoehe_ACC_Wirkung) / (128L / STICK_GAIN);
LIMIT_MIN_MAX(tmp_long, -32 * STICK_GAIN, 64 * STICK_GAIN);
GasReduction += tmp_long;
}
/* // ------------------------ D-Part 3: GpsZ ----------------------------------
tmp_int = (Parameter_Hoehe_GPS_Z * (int)FromNaviCtrl_Value.GpsZ)/128L;
LIMIT_MIN_MAX(tmp_int, -32 * STICK_GAIN, 64 * STICK_GAIN);
GasReduction += tmp_int;
*/
GasReduction = (long)((long)GasReduction * HoverGas) / 512; // scale to the gas value
 
// ------------------------ ----------------------------------
HCGas -= GasReduction;
// limit deviation from hoover point within the target region
if(!AltitudeSetpointTrimming && HoverGas > 0) // height setpoint is not changed and hoover gas not zero
{
unsigned int tmp;
tmp = abs(HeightDeviation);
if(tmp <= 60)
{
LIMIT_MIN_MAX(HCGas, HoverGasMin, HoverGasMax); // limit gas around the hoover point
}
else
{
tmp = (tmp - 60) / 32;
if(tmp > 15) tmp = 15;
if(HeightDeviation > 0)
{
tmp = (HoverGasMin * (16 - tmp)) / 16;
LIMIT_MIN_MAX(HCGas, tmp, HoverGasMax); // limit gas around the hoover point
}
else
{
tmp = (HoverGasMax * (tmp + 16)) / 16;
LIMIT_MIN_MAX(HCGas, HoverGasMin, tmp); // limit gas around the hoover point
}
}
}
// strech control output by inverse attitude projection 1/cos
// + 1/cos(angle) ++++++++++++++++++++++++++
tmp_long2 = (int32_t)HCGas;
tmp_long2 *= 8192L;
tmp_long2 /= CosAttitude;
HCGas = (int16_t)tmp_long2;
// update height control gas averaging
FilterHCGas = (FilterHCGas * (HC_GAS_AVERAGE - 1) + HCGas) / HC_GAS_AVERAGE;
// limit height control gas pd-control output
LIMIT_MIN_MAX(FilterHCGas, EE_Parameter.Hoehe_MinGas * STICK_GAIN, (MAX_GAS - 20) * STICK_GAIN);
// set GasMischanteil to HeightControlGasFilter
if(Parameter_ExtraConfig & CFG2_HEIGHT_LIMIT)
{ // old version
LIMIT_MAX(FilterHCGas, GasMischanteil); // nicht mehr als Gas
GasMischanteil = FilterHCGas;
}
else GasMischanteil = FilterHCGas + (GasMischanteil - HoverGas) / 4; // only in Vario-Mode
}
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
else // ACC-Altitude control
{
// from this point the Heigth Control Algorithm is identical for both versions
if(BaroExpandActive) // baro range expanding active
{
HCGas = HoverGas; // hover while expanding baro adc range
HeightDeviation = 0;
} // EOF // baro range expanding active
else // valid data from air pressure sensor
{
// ------------------------- P-Part ----------------------------
tmp_long = (HoehenWertF - SollHoehe); // positive when too high
LIMIT_MIN_MAX(tmp_long, -32767L, 32767L); // avoid overflov when casting to int16_t
HeightDeviation = (int)(tmp_long); // positive when too high
tmp_long = (tmp_long * (long)Parameter_Hoehe_P) / 32L; // p-part
LIMIT_MIN_MAX(tmp_long, -511 * STICK_GAIN, 512 * STICK_GAIN); // more than full range makes sense
GasReduction = tmp_long;
// ------------------------ D-Part: ACC-Z Integral ------------------------
tmp_long = VarioMeter + (AdWertAccHoch * Parameter_Hoehe_ACC_Wirkung)/256;
// ------------------------- D-Part: Vario Meter ----------------------------
if(WaypointTrimming) {
Variance = AltitudeSetpointTrimming * 8;
} else {
Variance = AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung*9/32;
}
tmp_long -= (long)Variance;
tmp_long = (tmp_long * (long)Parameter_Luftdruck_D) / 32; // scale to d-gain parameter
LIMIT_MIN_MAX(tmp_long,-511 * STICK_GAIN, 512 * STICK_GAIN);
GasReduction += tmp_long;
} // EOF no baro range expanding
HCGas -= GasReduction;
LIMIT_MIN_MAX(HCGas, HoverGasMin, HoverGasMax); // limits gas around hover point
// strech control output by inverse attitude projection 1/cos
// + 1/cos(angle) ++++++++++++++++++++++++++
tmp_long2 = (int32_t)HCGas;
tmp_long2 *= 8192L;
tmp_long2 /= CosAttitude;
HCGas = (int16_t)tmp_long2;
// update height control gas averaging
FilterHCGas = (FilterHCGas * (HC_GAS_AVERAGE - 1) + HCGas) / HC_GAS_AVERAGE;
// limit height control gas pd-control output
int min;
if(GasIsZeroCnt > 400 || (FC_StatusFlags2 & FC_STATUS2_WAIT_FOR_TAKEOFF)) min = EE_Parameter.Gas_Min; else min = EE_Parameter.Hoehe_MinGas;
LIMIT_MIN_MAX(FilterHCGas, min * STICK_GAIN, (MAX_GAS - 20) * STICK_GAIN)
// set GasMischanteil to HeightControlGasFilter
if(Parameter_ExtraConfig & CFG2_HEIGHT_LIMIT)
{ // old version
LIMIT_MAX(FilterHCGas, GasMischanteil); // nicht mehr als Gas
GasMischanteil = FilterHCGas;
}
else GasMischanteil = FilterHCGas;
} // end of ACC-Altitude control
#endif
}
}// EOF height control active
else // HC not active
{
//update hoover gas stick value when HC is not active
CalcStickGasHover();
/* if(!EE_Parameter.Hoehe_StickNeutralPoint)
{
StickGasHover = HoverGas/STICK_GAIN; // rescale back to stick value
StickGasHover = (unsigned int)((unsigned int) StickGasHover * UBat) / BattLowVoltageWarning;
}
else StickGasHover = EE_Parameter.Hoehe_StickNeutralPoint;
LIMIT_MIN_MAX(StickGasHover, 70, 175); // reserve some range for trim up and down
*/
FilterHCGas = GasMischanteil;
// set both flags to indicate no vario mode
FC_StatusFlags |= (FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN);
FC_StatusFlags2 &= ~FC_STATUS2_ALTITUDE_CONTROL;
}
// Hover gas estimation by averaging gas control output on small z-velocities
// this is done only if height contol option is selected in global config and aircraft is flying
if((FC_StatusFlags & FC_STATUS_FLY))// && !(FC_SatusFlags & FC_STATUS_EMERGENCY_LANDING))
{
//if(HoverGasFilter == 0 || StartTrigger == 1) HoverGasFilter = HOVER_GAS_AVERAGE * (unsigned long)(GasMischanteil); // init estimation
if(HoverGasFilter == 0 || StartTrigger == 1) HoverGasFilter = HOVER_GAS_AVERAGE * (unsigned long)(HoverGas); // 0.90f: geändert
if(StartTrigger == 1) StartTrigger = 2;
tmp_long2 = (int32_t)GasMischanteil; // take current thrust
tmp_long2 *= CosAttitude; // apply attitude projection
tmp_long2 /= 8192;
// average vertical projected thrust
if(modell_fliegt < 4000) // the first 8 seconds
{ // reduce the time constant of averaging by factor of 4 to get much faster a stable value
HoverGasFilter -= HoverGasFilter/(HOVER_GAS_AVERAGE/16L);
HoverGasFilter += 16L * tmp_long2;
}
if(modell_fliegt < 8000) // the first 16 seconds
{ // reduce the time constant of averaging by factor of 2 to get much faster a stable value
HoverGasFilter -= HoverGasFilter/(HOVER_GAS_AVERAGE/4L);
HoverGasFilter += 4L * tmp_long2;
}
else //later
if(abs(VarioMeter) < 100 && abs(HoehenWertF - SollHoehe) < 256) // only on small vertical speed & difference is small (only descending)
{
HoverGasFilter -= HoverGasFilter/HOVER_GAS_AVERAGE;
HoverGasFilter += tmp_long2;
}
HoverGas = (int16_t)(HoverGasFilter/HOVER_GAS_AVERAGE);
if(EE_Parameter.Hoehe_HoverBand)
{
int16_t band;
band = HoverGas / EE_Parameter.Hoehe_HoverBand; // the higher the parameter the smaller the range
HoverGasMin = HoverGas - band;
HoverGasMax = HoverGas + band;
}
else
{ // no limit
HoverGasMin = 0;
HoverGasMax = 1023;
}
}
else
{
StartTrigger = 0;
HoverGasFilter = 0;
HoverGas = 0;
}
}// EOF Parameter_GlobalConfig & CFG_HEIGHT_CONTROL
else
{
// set undefined state to indicate vario off
FC_StatusFlags |= (FC_STATUS_VARIO_TRIM_UP|FC_STATUS_VARIO_TRIM_DOWN);
} // EOF no height control
 
// Limits the maximum gas in case of "Out of Range emergency landing"
if(NC_To_FC_Flags & NC_TO_FC_EMERGENCY_LANDING)
{
if(GasMischanteil/STICK_GAIN > HooverGasEmergencyPercent && HoverGas) GasMischanteil = HooverGasEmergencyPercent * STICK_GAIN;
SollHoehe = HoehenWertF; // update setpoint to current heigth
beeptime = 15000;
BeepMuster = 0x0E00;
}
// limit gas to parameter setting
LIMIT_MIN(GasMischanteil, (MIN_GAS + 10) * STICK_GAIN);
if(GasMischanteil > (MAX_GAS - 20) * STICK_GAIN) GasMischanteil = (MAX_GAS - 20) * STICK_GAIN;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// all BL-Ctrl connected?
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(MissingMotor || Capacity.MinOfMaxPWM < 254 || NC_ErrorCode) // wait until all BL-Ctrls started and no Errors
if(modell_fliegt > 1 && modell_fliegt < 50 && GasMischanteil > 0) // only during start-phase
{
modell_fliegt = 1;
GasMischanteil = (MIN_GAS + 10) * STICK_GAIN;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(Capacity.MinOfMaxPWM < 40) SpeakHoTT = SPEAK_ERR_MOTOR;
#endif
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// send SPI pending bytes
if(BytegapSPI == 0) SPI_TransmitByte();
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Mischer und PI-Regler
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DebugOut.Analog[7] = GasMischanteil; // achtung: Muss auf [7] bleiben wegen SPI.C
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gier-Anteil
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GierMischanteil = MesswertGier - sollGier * STICK_GAIN; // Regler für Gier
#define MIN_GIERGAS (40*STICK_GAIN) // unter diesem Gaswert trotzdem Gieren
if(GasMischanteil > MIN_GIERGAS)
{
if(GierMischanteil > (GasMischanteil / 2)) GierMischanteil = GasMischanteil / 2;
if(GierMischanteil < -(GasMischanteil / 2)) GierMischanteil = -(GasMischanteil / 2);
}
else
{
if(GierMischanteil > (MIN_GIERGAS / 2)) GierMischanteil = MIN_GIERGAS / 2;
if(GierMischanteil < -(MIN_GIERGAS / 2)) GierMischanteil = -(MIN_GIERGAS / 2);
}
tmp_int = MAX_GAS*STICK_GAIN;
if(GierMischanteil > ((tmp_int - GasMischanteil))) GierMischanteil = ((tmp_int - GasMischanteil));
if(GierMischanteil < -((tmp_int - GasMischanteil))) GierMischanteil = -((tmp_int - GasMischanteil));
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Nick-Achse
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DiffNick = MesswertNick - StickNick; // Differenz bestimmen
if(IntegralFaktor) SummeNick += IntegralNickMalFaktor - StickNick; // I-Anteil bei Winkelregelung
else SummeNick += DiffNick; // I-Anteil bei HH
if(SummeNick > (STICK_GAIN * 16000L)) SummeNick = (STICK_GAIN * 16000L);
if(SummeNick < -(16000L * STICK_GAIN)) SummeNick = -(16000L * STICK_GAIN);
 
if(EE_Parameter.Gyro_Stability <= 8) pd_ergebnis_nick = (EE_Parameter.Gyro_Stability * DiffNick) / 8; // PI-Regler für Nick
else pd_ergebnis_nick = ((EE_Parameter.Gyro_Stability / 2) * DiffNick) / 4; // Überlauf verhindern
pd_ergebnis_nick += SummeNick / Ki;
 
tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
if(pd_ergebnis_nick > tmp_int) pd_ergebnis_nick = tmp_int;
if(pd_ergebnis_nick < -tmp_int) pd_ergebnis_nick = -tmp_int;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Roll-Achse
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DiffRoll = MesswertRoll - StickRoll; // Differenz bestimmen
if(IntegralFaktor) SummeRoll += IntegralRollMalFaktor - StickRoll;// I-Anteil bei Winkelregelung
else SummeRoll += DiffRoll; // I-Anteil bei HH
if(SummeRoll > (STICK_GAIN * 16000L)) SummeRoll = (STICK_GAIN * 16000L);
if(SummeRoll < -(16000L * STICK_GAIN)) SummeRoll = -(16000L * STICK_GAIN);
 
if(EE_Parameter.Gyro_Stability <= 8) pd_ergebnis_roll = (EE_Parameter.Gyro_Stability * DiffRoll) / 8; // PI-Regler für Roll
else pd_ergebnis_roll = ((EE_Parameter.Gyro_Stability / 2) * DiffRoll) / 4; // Überlauf verhindern
pd_ergebnis_roll += SummeRoll / Ki;
tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
if(pd_ergebnis_roll > tmp_int) pd_ergebnis_roll = tmp_int;
if(pd_ergebnis_roll < -tmp_int) pd_ergebnis_roll = -tmp_int;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// send SPI pending bytes
if(BytegapSPI == 0) SPI_TransmitByte();
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Universal Mixer
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
for(i=0; i<MAX_MOTORS; i++)
{
signed int tmp_int;
if(Mixer.Motor[i][0] > 0)
{
// Gas
if(Mixer.Motor[i][0] == 64) tmp_int = GasMischanteil; else tmp_int = ((long)GasMischanteil * Mixer.Motor[i][0]) / 64L;
// Nick
if(Mixer.Motor[i][1] == 64) tmp_int += pd_ergebnis_nick;
else if(Mixer.Motor[i][1] == -64) tmp_int -= pd_ergebnis_nick;
else tmp_int += ((long)pd_ergebnis_nick * Mixer.Motor[i][1]) / 64L;
// Roll
if(Mixer.Motor[i][2] == 64) tmp_int += pd_ergebnis_roll;
else if(Mixer.Motor[i][2] == -64) tmp_int -= pd_ergebnis_roll;
else tmp_int += ((long)pd_ergebnis_roll * Mixer.Motor[i][2]) / 64L;
// Gier
if(Mixer.Motor[i][3] == 64) tmp_int += GierMischanteil;
else if(Mixer.Motor[i][3] == -64) tmp_int -= GierMischanteil;
else tmp_int += ((long)GierMischanteil * Mixer.Motor[i][3]) / 64L;
#ifdef REDUNDANT_FC_SLAVE
tmp_int = (tmp_motorwert[i] + tmp_int) / 2;
#else
if(Motor[i].Version & MOTOR_STATE_FAST_MODE || tmp_int > tmp_motorwert[i]) tmp_int = (tmp_motorwert[i] + tmp_int) / 2; // Beschleunigen
else
{ // BL-Ctrl 1.0 or 2.0
if(EE_Parameter.MotorSmooth == 0)
{
tmp_int = 2 * tmp_int - tmp_motorwert[i]; // original MotorSmoothing
}
else // 1 means tmp_int = tmp_int;
if(EE_Parameter.MotorSmooth > 1)
{
// If >= 2 then allow >= 50% of the intended step down to rapidly reach the intended value.
tmp_int = tmp_int + ((tmp_motorwert[i] - tmp_int) / EE_Parameter.MotorSmooth);
}
}
#endif
LIMIT_MIN_MAX(tmp_int,(int) MIN_GAS * 4,(int) MAX_GAS * 4);
Motor[i].SetPoint = tmp_int / 4;
Motor[i].SetPointLowerBits = (tmp_int % 4)<<1; // (3 bits total)
tmp_motorwert[i] = tmp_int;
}
else
{
Motor[i].SetPoint = 0;
Motor[i].SetPointLowerBits = 0;
}
}
#ifdef REDUNDANT_FC_MASTER
if(Parameter_UserParam6 > 230) Motor[0].SetPoint = 0;
#endif
}
//DebugOut.Analog[16]
/branches/V2.08a_Rens_Testversion/FlightCtrl/fc.h
0,0 → 1,160
/*#######################################################################################
Flight Control
#######################################################################################*/
 
#ifndef _FC_H
#define _FC_H
//#define GIER_GRAD_FAKTOR 1291L // Abhängigkeit zwischen GyroIntegral und Winkel
//#define GIER_GRAD_FAKTOR 1160L
extern long GIER_GRAD_FAKTOR; // Abhängigkeit zwischen GyroIntegral und Winkel
#define STICK_GAIN 4
#define ACC_AMPLIFY 6
#define HEIGHT_CONTROL_STICKTHRESHOLD 15
 
// FC_StatusFlags
#define FC_STATUS_MOTOR_RUN 0x01
#define FC_STATUS_FLY 0x02
#define FC_STATUS_CALIBRATE 0x04
#define FC_STATUS_START 0x08
#define FC_STATUS_EMERGENCY_LANDING 0x10
#define FC_STATUS_LOWBAT 0x20
#define FC_STATUS_VARIO_TRIM_UP 0x40
#define FC_STATUS_VARIO_TRIM_DOWN 0x80
 
// FC_StatusFlags2
#define FC_STATUS2_CAREFREE 0x01
#define FC_STATUS2_ALTITUDE_CONTROL 0x02
#define FC_STATUS2_RC_FAILSAVE_ACTIVE 0x04
#define FC_STATUS2_OUT1_ACTIVE 0x08
#define FC_STATUS2_OUT2_ACTIVE 0x10
#define FC_STATUS2_WAIT_FOR_TAKEOFF 0x20 // Motor Running, but still on the ground
#define FC_STATUS2_AUTO_STARTING 0x40
#define FC_STATUS2_AUTO_LANDING 0x80
 
// FC_StatusFlags3
#define FC_STATUS3_REDUNDANCE 0x01
#define FC_STATUS3_BOAT 0x02
 
//NC_To_FC_Flags
#define NC_TO_FC_FLYING_RANGE 0x01
#define NC_TO_FC_EMERGENCY_LANDING 0x02
#define NC_TO_FC_AUTOSTART 0x04
#define NC_TO_FC_AUTOLANDING 0x08 // not used
#define NC_TO_FC_SIMULATION_ACTIVE 0x10 // don't start motors
 
extern volatile unsigned char FC_StatusFlags, FC_StatusFlags2;
extern unsigned char FC_StatusFlags3;
extern void ParameterZuordnung(void);
extern unsigned char GetChannelValue(unsigned char ch); // gives the unsigned value of the channel
 
#define Poti1 Poti[0]
#define Poti2 Poti[1]
#define Poti3 Poti[2]
#define Poti4 Poti[3]
#define Poti5 Poti[4]
#define Poti6 Poti[5]
#define Poti7 Poti[6]
#define Poti8 Poti[7]
 
#define LIMIT_MIN(value, min) {if(value <= min) value = min;}
#define LIMIT_MAX(value, max) {if(value >= max) value = max;}
#define LIMIT_MIN_MAX(value, min, max) {if(value <= min) value = min; else if(value >= max) value = max;}
 
#define CHK_POTI(b,a) {if(a < 248) b = a; else b = Poti[255 - a];}
#define CHK_POTI_OFF(b,a,off) {if(a < 248) b = a; else b = Poti[255 - a] - off;}
#define CHK_POTI_MM(b,a,min,max) {CHK_POTI(b,a); LIMIT_MIN_MAX(b, min, max);}
#define CHK_POTI_MM_OFF(b,a,min,max,off) {CHK_POTI_OFF(b,a,off); LIMIT_MIN_MAX(b, min, max);}
 
extern unsigned char Sekunde,Minute;
extern unsigned int BaroExpandActive;
extern long IntegralNick;//,IntegralNick2;
extern long IntegralRoll;//,IntegralRoll2;
//extern int IntegralNick,IntegralNick2;
//extern int IntegralRoll,IntegralRoll2;
extern unsigned char Poti[9];
 
extern long Mess_IntegralNick;//,Mess_IntegralNick2;
extern long Mess_IntegralRoll;//,Mess_IntegralRoll2;
extern long IntegralAccNick,IntegralAccRoll;
extern long SummeNick,SummeRoll;
extern volatile long Mess_Integral_Hoch;
extern long Integral_Gier,Mess_Integral_Gier,Mess_Integral_Gier2;
extern int KompassValue;
extern int KompassSollWert;
extern int KompassRichtung;
extern char CalculateCompassTimer;
extern unsigned char KompassFusion;
extern unsigned char ControlHeading;
extern int TrimNick, TrimRoll;
extern long ErsatzKompass;
extern int ErsatzKompassInGrad,CompassCorrected; // Kompasswert in Grad
extern long HoehenWert;
extern long SollHoehe;
extern long FromNC_AltitudeSetpoint;
extern unsigned char FromNC_AltitudeSpeed;
extern unsigned char Parameter_HoehenSchalter; // Wert : 0-250
extern unsigned char CareFree;
extern int MesswertNick,MesswertRoll,MesswertGier;
extern int AdNeutralNick,AdNeutralRoll,AdNeutralGier, Mittelwert_AccNick, Mittelwert_AccRoll;
extern unsigned int NeutralAccX, NeutralAccY;
extern unsigned char HoehenReglerAktiv;
extern int NeutralAccZ;
extern signed char NeutralAccZfine;
extern long Umschlag180Nick, Umschlag180Roll;
extern signed int ExternStickNick,ExternStickRoll,ExternStickGier;
extern unsigned char Parameter_UserParam1,Parameter_UserParam2,Parameter_UserParam3,Parameter_UserParam4,Parameter_UserParam5,Parameter_UserParam6,Parameter_UserParam7,Parameter_UserParam8;
extern int NaviAccNick,NaviAccRoll,NaviCntAcc;
extern unsigned int modell_fliegt;
extern void MotorRegler(void);
extern void SendMotorData(void);
//void CalibrierMittelwert(void);
//void Mittelwert(void);
extern unsigned char SetNeutral(unsigned char AccAdjustment); // retuns: "sucess"
extern void Piep(unsigned char Anzahl, unsigned int dauer);
extern void CopyDebugValues(void);
extern unsigned char ACC_AltitudeControl;
extern signed int CosAttitude; // for projection of hoover gas
 
extern unsigned char h,m,s;
extern int StickNick,StickRoll,StickGier,StickGas;
extern volatile unsigned char Timeout ;
extern unsigned char CosinusNickWinkel, CosinusRollWinkel;
extern int DiffNick,DiffRoll;
//extern int Poti1, Poti2, Poti3, Poti4;
extern volatile unsigned char SenderOkay;
extern int StickNick,StickRoll,StickGier;
extern char MotorenEin;
extern unsigned char CalibrationDone;
extern unsigned char Parameter_Servo3,Parameter_Servo4,Parameter_Servo5;
extern char VarioCharacter;
extern signed int AltitudeSetpointTrimming;
extern signed char WaypointTrimming;
extern int HoverGas;
extern unsigned char Parameter_Luftdruck_D;
//extern unsigned char Parameter_MaxHoehe;
extern unsigned char Parameter_Hoehe_P;
extern unsigned char Parameter_Hoehe_ACC_Wirkung;
extern unsigned char Parameter_KompassWirkung;
extern unsigned char Parameter_Gyro_P;
extern unsigned char Parameter_Gyro_I;
extern unsigned char Parameter_Gier_P;
extern unsigned char Parameter_ServoNickControl;
extern unsigned char Parameter_ServoRollControl;
extern unsigned char Parameter_ServoNickComp;
extern unsigned char Parameter_ServoRollComp;
extern unsigned char Parameter_AchsKopplung1;
extern unsigned char Parameter_AchsKopplung2;
//extern unsigned char Parameter_AchsGegenKopplung1;
extern unsigned char Parameter_J16Bitmask; // for the J16 Output
extern unsigned char Parameter_J16Timing; // for the J16 Output
extern unsigned char Parameter_J17Bitmask; // for the J17 Output
extern unsigned char Parameter_J17Timing; // for the J17 Output
extern unsigned char Parameter_GlobalConfig;
extern unsigned char Parameter_ExtraConfig;
extern signed char MixerTable[MAX_MOTORS][4];
extern const signed char sintab[31];
extern unsigned char LowVoltageLandingActive;
extern unsigned char LowVoltageHomeActive;
extern unsigned char Parameter_MaximumAltitude;
#endif //_FC_H
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/gps.h
0,0 → 1,3
extern signed int GPS_Nick;
extern signed int GPS_Roll;
extern unsigned char GPS_Aid_StickMultiplikator;
/branches/V2.08a_Rens_Testversion/FlightCtrl/hottmenu.c
0,0 → 1,1085
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software Nutzungsbedingungen (english version: see below)
// + der Fa. HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland - nachfolgend Lizenzgeber genannt -
// + Der Lizenzgeber räumt dem Kunden ein nicht-ausschließliches, zeitlich und räumlich* unbeschränktes Recht ein, die im den
// + Mikrocontroller verwendete Firmware für die Hardware Flight-Ctrl, Navi-Ctrl, BL-Ctrl, MK3Mag & PC-Programm MikroKopter-Tool
// + - nachfolgend Software genannt - nur für private Zwecke zu nutzen.
// + Der Einsatz dieser Software ist nur auf oder mit Produkten des Lizenzgebers zulässig.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die vom Lizenzgeber gelieferte Software ist urheberrechtlich geschützt. Alle Rechte an der Software sowie an sonstigen im
// + Rahmen der Vertragsanbahnung und Vertragsdurchführung überlassenen Unterlagen stehen im Verhältnis der Vertragspartner ausschließlich dem Lizenzgeber zu.
// + Die in der Software enthaltenen Copyright-Vermerke, Markenzeichen, andere Rechtsvorbehalte, Seriennummern sowie
// + sonstige der Programmidentifikation dienenden Merkmale dürfen vom Kunden nicht verändert oder unkenntlich gemacht werden.
// + Der Kunde trifft angemessene Vorkehrungen für den sicheren Einsatz der Software. Er wird die Software gründlich auf deren
// + Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Die Haftung des Lizenzgebers wird - soweit gesetzlich zulässig - begrenzt in Höhe des typischen und vorhersehbaren
// + Schadens. Die gesetzliche Haftung bei Personenschäden und nach dem Produkthaftungsgesetz bleibt unberührt. Dem Lizenzgeber steht jedoch der Einwand
// + des Mitverschuldens offen.
// + Der Kunde trifft angemessene Vorkehrungen für den Fall, dass die Software ganz oder teilweise nicht ordnungsgemäß arbeitet.
// + Er wird die Software gründlich auf deren Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Der Kunde wird er seine Daten vor Einsatz der Software nach dem Stand der Technik sichern.
// + Der Kunde ist darüber unterrichtet, dass der Lizenzgeber seine Daten im zur Vertragsdurchführung erforderlichen Umfang
// + und auf Grundlage der Datenschutzvorschriften erhebt, speichert, verarbeitet und, sofern notwendig, an Dritte übermittelt.
// + *) Die räumliche Nutzung bezieht sich nur auf den Einsatzort, nicht auf die Reichweite der programmierten Software.
// + #### ENDE DER NUTZUNGSBEDINGUNGEN ####'
// + Hinweis: Informationen über erweiterte Nutzungsrechte (wie z.B. Nutzung für nicht-private Zwecke) sind auf Anfrage per Email an info(@)hisystems.de verfügbar.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software LICENSING TERMS
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + of HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland, Germany - the Licensor -
// + The Licensor grants the customer a non-exclusive license to use the microcontroller firmware of the Flight-Ctrl, Navi-Ctrl, BL-Ctrl, and MK3Mag hardware
// + (the Software) exclusively for private purposes. The License is unrestricted with respect to time and territory*.
// + The Software may only be used with the Licensor's products.
// + The Software provided by the Licensor is protected by copyright. With respect to the relationship between the parties to this
// + agreement, all rights pertaining to the Software and other documents provided during the preparation and execution of this
// + agreement shall be the property of the Licensor.
// + The information contained in the Software copyright notices, trademarks, other legal reservations, serial numbers and other
// + features that can be used to identify the program may not be altered or defaced by the customer.
// + The customer shall be responsible for taking reasonable precautions
// + for the safe use of the Software. The customer shall test the Software thoroughly regarding its suitability for the
// + intended purpose before implementing it for actual operation. The Licensor's liability shall be limited to the extent of typical and
// + foreseeable damage to the extent permitted by law, notwithstanding statutory liability for bodily injury and product
// + liability. However, the Licensor shall be entitled to the defense of contributory negligence.
// + The customer will take adequate precautions in the case, that the software is not working properly. The customer will test
// + the software for his purpose before any operational usage. The customer will backup his data before using the software.
// + The customer understands that the Licensor collects, stores and processes, and, where required, forwards, customer data
// + to third parties to the extent necessary for executing the agreement, subject to applicable data protection and privacy regulations.
// + *) The territory aspect only refers to the place where the Software is used, not its programmed range.
// + #### END OF LICENSING TERMS ####
// + Note: For information on license extensions (e.g. commercial use), please contact us at info(@)hisystems.de.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "libfc.h"
#include "printf_P.h"
#include "main.h"
#include "spi.h"
#include "capacity.h"
 
unsigned char NaviData_WaypointIndex = 0;
unsigned char NaviData_WaypointNumber = 0, NaviData_TargetHoldTime = 0, ToNC_Load_WP_List = 0, NaviData_MaxWpListIndex = 0;
unsigned char ToNC_Load_SingePoint = 0, ToNC_Store_SingePoint = 0;
char WPL_Name[10];// = {" \0"};
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
 
#define HoTT_printf(format, args...) { _printf_P(&LIBFC_HoTT_Putchar, PSTR(format) , ## args);}
#define HoTT_printfxy(x,y,format, args...) { LIBFC_HoTT_SetPos(y * 21 + x); _printf_P(&LIBFC_HoTT_Putchar, PSTR(format) , ## args);}
#define HoTT_printfxy_INV(x,y,format, args...) { LIBFC_HoTT_SetPos(y * 21 + x); _printf_P(&LIBFC_HoTT_Putchar_INV, PSTR(format) , ## args);}
#define HoTT_printfxy_BLINK(x,y,format, args...) { LIBFC_HoTT_SetPos(y * 21 + x); _printf_P(&LIBFC_HoTT_Putchar_BLINK, PSTR(format) , ## args);}
#define HoTT_printf_BLINK(format, args...) { _printf_P(&LIBFC_HoTT_Putchar_BLINK, PSTR(format) , ## args);}
#define HoTT_printf_INV(format, args...) { _printf_P(&LIBFC_HoTT_Putchar_INV, PSTR(format) , ## args);}
 
#define VOICE_MINIMALE_EINGANSSPANNUNG 16
#define VOICE_BEEP 5
#define HoTT_GRAD 96
#define HoTT_LINKS 123
#define HoTT_RECHTS 124
#define HoTT_OBEN 125
#define HoTT_UNTEN 126
 
#define HOTT_KEY_RIGHT 1
#define HOTT_KEY_DOWN 2
#define HOTT_KEY_UP 4
#define HOTT_KEY_SET 6
#define HOTT_KEY_LEFT 8
 
#define VARIO_ZERO 30000
unsigned int NaviData_TargetDistance = 0;
 
unsigned char MaxBlTemperture = 0;
unsigned char MinBlTemperture = 0;
unsigned char HottestBl = 0;
 
GPSPacket_t GPSPacket;
VarioPacket_t VarioPacket;
ASCIIPacket_t ASCIIPacket;
ElectricAirPacket_t ElectricAirPacket;
HoTTGeneral_t HoTTGeneral;
unsigned char SpeakHoTT = SPEAK_MIKROKOPTER;
unsigned char ToNC_SpeakHoTT = 0, ShowSettingNameTime = 0;
int HoTTVarioMeter = 0;
const char PROGMEM MIKROKOPTER[] = {" MikroKopter "};
const char PROGMEM UNDERVOLTAGE[] = {" !! LiPo voltage !! "};
const char PROGMEM LANDING[] = {" !! LANDING !! "};
const char PROGMEM SIMULATION[] = {" SIMULATION active "};
const char PROGMEM BOAT_MODE[] = {" MikroKopter (Boat) "};
const char PROGMEM SETTING[] = {"Set :"};
const char PROGMEM NC_ERROR_TEXT[MAX_ERR_NUMBER][17] =
{
//0123456789123456
"No Error \0", // 0
"Not compatible \0", // 1
"MK3Mag not compa\0", // 2
"No FC communicat\0", // 3
"Compass communic\0", // 4
"GPS communicatio\0", // 5
"compass value \0", // 6
"RC Signal lost \0", // 7
"FC spi rx error \0", // 8
"No NC communicat\0", // 9
"FC Nick Gyro \0", // 10
"FC Roll Gyro \0", // 11
"FC Yaw Gyro \0", // 12
"FC Nick ACC \0", // 13
"FC Roll ACC \0", // 14
"FC Z-ACC \0", // 15
"Pressure sensor \0", // 16
"I2C FC->BL-Ctrl \0", // 17
"Bl Missing \0", // 18
"Mixer Error \0", // 19
"Carefree Error \0", // 20
"GPS Fix lost \0", // 21
"Magnet Error \0", // 22
"Motor restart \0", // 23
"BL Limitation \0", // 24
"GPS Range \0", // 25
"No SD-Card \0", // 26
"SD-Logging error\0", // 27
"Flying range! \0", // 28
"Max Altitude! \0", // 29
"No GPS fix \0", // 30
"compass not cal.\0", // 31
"BL-Selftest \0", // 32
"no ext. compass \0", // 33
"compass sensor \0" // 34
};
 
 
const char PROGMEM HOTT_ERROR[MAX_ERR_NUMBER][2] =
{ // 1 -> only in flight 0 -> also on ground
//0123456789123456
{0,0},// "No Error \0", // 0
{SPEAK_ERROR,0}, // "Not compatible \0", // 1
{SPEAK_ERROR,0}, // "MK3Mag not compa\0", // 2
{SPEAK_ERR_NAVI,1}, // "No FC communicat\0", // 3
{SPEAK_ERR_COMPASS,1}, // "MK3Mag communica\0", // 4
{SPEAK_ERR_GPS,0}, // "GPS communicatio\0", // 5
{SPEAK_ERR_COMPASS,1}, // "compass value \0", // 6
{SPEAK_ERR_RECEICER,0},// "RC Signal lost \0", // 7
{SPEAK_ERR_NAVI,0}, // "FC spi rx error \0", // 8
{SPEAK_ERR_NAVI,0}, // "No NC communicat\0", // 9
{SPEAK_ERR_SENSOR,0}, // "FC Nick Gyro \0", // 10
{SPEAK_ERR_SENSOR,0}, // "FC Roll Gyro \0", // 11
{SPEAK_ERR_SENSOR,0}, // "FC Yaw Gyro \0", // 12
{SPEAK_ERR_SENSOR,0}, // "FC Nick ACC \0", // 13
{SPEAK_ERR_SENSOR,0}, // "FC Roll ACC \0", // 14
{SPEAK_ERR_SENSOR,0}, // "FC Z-ACC \0", // 15
{SPEAK_ERR_SENSOR,0}, // "Pressure sensor \0", // 16
{SPEAK_ERR_DATABUS,1}, // "I2C FC->BL-Ctrl \0", // 17
{SPEAK_ERR_DATABUS,1}, // "Bl Missing \0", // 18
{SPEAK_ERROR,0}, // "Mixer Error \0", // 19
{SPEAK_CF_OFF,1}, // "Carefree Error \0", // 20
{SPEAK_GPS_FIX,1}, // "GPS Fix lost \0", // 21
{SPEAK_ERR_COMPASS,0}, // "Magnet Error \0", // 22
{SPEAK_ERR_MOTOR,1}, // "Motor restart \0", // 23
{SPEAK_MAX_TEMPERAT,1},// "BL Limitation \0", // 24
{SPEAK_MAX_RANGE,1}, // "GPS Range \0", // 25
{SPEAK_ERROR,1}, // "No SD-Card \0", // 26
{SPEAK_ERROR,1}, // "SD-Logging error\0", // 27
{SPEAK_MAX_RANGE,1}, // "Flying range! \0", // 28
{SPEAK_MAX_ALTITUD,1}, // "Max Altitude! \0" // 29
{SPEAK_GPS_FIX,1}, // "No GPS fix \0" // 30
{SPEAK_ERR_CALIBARTION,0},// "compass not cal." // 31
{SPEAK_ERR_MOTOR,0}, // "BL-Selftest \0" // 32
{SPEAK_ERR_COMPASS,0}, // "no ext. compass" // 33
{SPEAK_ERR_COMPASS,0} // "compass sensor" // 34
};
 
 
void GetHottestBl(void)
{
static unsigned char search = 0,tmp_max,tmp_min,who;
if(Motor[search].Temperature > tmp_max) { tmp_max = Motor[search].Temperature; who = search;}
else
if(Motor[search].Temperature) if(Motor[search].Temperature < tmp_min) tmp_min = Motor[search].Temperature;
if(++search >= MAX_MOTORS)
{
search = 0;
if(tmp_min != 255) MinBlTemperture = tmp_min; else MinBlTemperture = 0;
MaxBlTemperture = tmp_max;
HottestBl = who;
tmp_min = 255;
tmp_max = 0;
who = 0;
}
}
 
//---------------------------------------------------------------
void Hott_ClearLine(unsigned char line)
{
HoTT_printfxy(0,line," ");
}
//---------------------------------------------------------------
 
 
unsigned char HoTT_Waring(void)
{
unsigned char status = 0;
static char old_status = 0;
static int repeat;
//if(Parameter_UserParam1) return(Parameter_UserParam1);
ToNC_SpeakHoTT = SpeakHoTT;
if(FC_StatusFlags & FC_STATUS_LOWBAT)
{
if(LowVoltageLandingActive && (EE_Parameter.Receiver == RECEIVER_HOTT)) status = SPEAK_LANDING;
else status = VOICE_MINIMALE_EINGANSSPANNUNG; // Jeti hat kein wort: "LANDEN"
if(SpeakHoTT && old_status == VOICE_MINIMALE_EINGANSSPANNUNG) status = SpeakHoTT; // das soll auch noch durch kommen
}
else
if(NC_ErrorCode && NC_ErrorCode < MAX_ERR_NUMBER) // Fehlercodes
{
if(MotorenEin || !pgm_read_byte(&HOTT_ERROR[NC_ErrorCode][1])) status = pgm_read_byte(&HOTT_ERROR[NC_ErrorCode][0]);
}
if(!status) // Sprachansagen
{
// if(!(GetParamByte(PID_SPEAK_HOTT_CFG) & 0x01)) SpeakHoTT = 0; // is the voice wanted?
if(!(EE_Parameter.GlobalConfig3 & CFG3_SPEAK_ALL)) SpeakHoTT = 0; // is the voice wanted?
else status = SpeakHoTT;
}
else ToNC_SpeakHoTT = status;
 
if(old_status == status) // Gleichen Fehler nur alle 4 sek bringen
{
if(!CheckDelay(repeat)) return(0);
repeat = SetDelay(4000);
}
else repeat = SetDelay(2000);
 
if(status)
{
if(status == SpeakHoTT) SpeakHoTT = 0;
}
old_status = status;
// DebugOut.Analog[16] = status;
return(status);
}
 
/*
unsigned char HoTTErrorCode(void)
{
return(NC_ErrorCode);
}
*/
//---------------------------------------------------------------
void NC_Fills_HoTT_Telemety(void)
{
unsigned char *ptr = NULL;
unsigned char max = 0,i,z;
switch(FromNaviCtrl.Param.Byte[11])
{
case HOTT_VARIO_PACKET_ID:
ptr = (unsigned char *) &VarioPacket;
max = sizeof(VarioPacket);
break;
case HOTT_GPS_PACKET_ID:
ptr = (unsigned char *) &GPSPacket;
max = sizeof(GPSPacket);
break;
case HOTT_ELECTRIC_AIR_PACKET_ID:
ptr = (unsigned char *) &ElectricAirPacket;
max = sizeof(ElectricAirPacket);
break;
case HOTT_GENERAL_PACKET_ID:
ptr = (unsigned char *) &HoTTGeneral;
max = sizeof(HoTTGeneral);
break;
case JETI_GPS_PACKET_ID1:
ptr = (unsigned char *) &JetiExData[14].Value;
max = sizeof(JetiExData[14].Value);
break;
case JETI_GPS_PACKET_ID2:
ptr = (unsigned char *) &JetiExData[15].Value;
max = sizeof(JetiExData[15].Value);
break;
case HOTT_WPL_NAME:
ptr = (unsigned char *) WPL_Name;
max = sizeof(WPL_Name)-1;
break;
 
}
z = FromNaviCtrl.Param.Byte[0]; // Data allocation
 
for(i=0; i < FromNaviCtrl.Param.Byte[1]; i++)
{
if(z >= max) break;
ptr[z] = FromNaviCtrl.Param.Byte[2+i];
z++;
}
}
 
unsigned int BuildHoTT_Vario(void)
{
unsigned int tmp = VARIO_ZERO;
if(VarioCharacter == '+' || VarioCharacter == '-')
{
tmp = VARIO_ZERO + (AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung) / 3;
if(tmp < VARIO_ZERO && tmp > VARIO_ZERO - 50) tmp = VARIO_ZERO - 50; // weil es sonst erst bei < 0,5m/sek piept
}
else
if((VarioCharacter == ' ') && (FC_StatusFlags & FC_STATUS_FLY))
{
tmp = VARIO_ZERO + HoTTVarioMeter;
if(tmp > VARIO_ZERO)
{
if(tmp < VARIO_ZERO + 100) tmp = VARIO_ZERO;
else tmp -= 100;
}
if(tmp < VARIO_ZERO)
{
if(tmp > VARIO_ZERO - 100) tmp = VARIO_ZERO;
else tmp += 100;
}
}
else
if(VarioCharacter == '^') tmp = VARIO_ZERO + FromNC_AltitudeSpeed * 10;
else
if(VarioCharacter == 'v') tmp = VARIO_ZERO - FromNC_AltitudeSpeed * 10;
return(tmp);
}
 
//---------------------------------------------------------------
unsigned char HoTT_Telemety(unsigned char packet_request)
{
unsigned char i = 0;
//Debug("rqst: %02X",packet_request);
 
switch(packet_request)
{
case HOTT_VARIO_PACKET_ID:
GPSPacket.WarnBeep = HoTT_Waring(); // Achtung: das ist richtig hier, damit der Varioton schon vorher abgestellt wird
VarioPacket.Altitude = HoehenWert/100 + 500;
if(!GPSPacket.WarnBeep) VarioPacket.m_sec = BuildHoTT_Vario(); else VarioPacket.m_sec = VARIO_ZERO;
VarioPacket.m_3sec = VarioPacket.m_sec;
VarioPacket.m_10sec = VarioPacket.m_sec;
if (VarioPacket.Altitude < VarioPacket.MinAltitude) VarioPacket.MinAltitude = VarioPacket.Altitude;
if (VarioPacket.Altitude > VarioPacket.MaxAltitude) VarioPacket.MaxAltitude = VarioPacket.Altitude;
VarioPacket.WarnBeep = 0;//HoTT_Waring();
HoTT_DataPointer = (unsigned char *) &VarioPacket;
VarioPacket.FreeCharacters[0] = VarioCharacter;
if(FC_StatusFlags2 & FC_STATUS2_CAREFREE) VarioPacket.FreeCharacters[1] = 'C'; else VarioPacket.FreeCharacters[1] = ' ';
// VarioPacket.FreeCharacters[2] = ' ';
if(NC_ErrorCode)
{
VarioPacket.Text[0] = NC_ErrorCode/10 + '0';
VarioPacket.Text[1] = NC_ErrorCode%10 + '0';
VarioPacket.Text[2] = ':';
for(i=0; i<16;i++) VarioPacket.Text[i+3] = pgm_read_byte(&NC_ERROR_TEXT[NC_ErrorCode][i]);
VarioPacket.Text[19] = ' ';
VarioPacket.Text[20] = ' ';
}
else
if(LowVoltageLandingActive) for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&LANDING[i]); // no Error
else
if(FC_StatusFlags & FC_STATUS_LOWBAT) for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&UNDERVOLTAGE[i]); // no Error
else
if(ShowSettingNameTime) // no Error
{
for(i=0; i<sizeof(SETTING);i++) VarioPacket.Text[i] = pgm_read_byte(&SETTING[i]);
VarioPacket.Text[4] = '0' + ActiveParamSet;
for(i=0; i<sizeof(EE_Parameter.Name);i++) VarioPacket.Text[i+7] = EE_Parameter.Name[i]; // no Error
if(FC_StatusFlags3 & FC_STATUS3_BOAT)
{
VarioPacket.Text[17] = 'B';
VarioPacket.Text[18] = 'O';
VarioPacket.Text[19] = 'A';
VarioPacket.Text[20] = 'T';
}
else
{
VarioPacket.Text[18] = ' ';
VarioPacket.Text[19] = ' ';
VarioPacket.Text[20] = ' ';
}
}
else
if(NaviData_WaypointNumber)
{
unsigned int tmp_int;
unsigned char tmp;
VarioPacket.Text[0] = 'W'; VarioPacket.Text[1] = 'P';
VarioPacket.Text[2] = ' ';
VarioPacket.Text[3] = '0'+(NaviData_WaypointIndex) / 10;
VarioPacket.Text[4] = '0'+(NaviData_WaypointIndex) % 10;
VarioPacket.Text[5] = '/';
VarioPacket.Text[6] = '0'+(NaviData_WaypointNumber) / 10;
VarioPacket.Text[7] = '0'+(NaviData_WaypointNumber) % 10;
VarioPacket.Text[8] = ' ';
tmp_int = NaviData_TargetDistance;
if(tmp_int > 1000) { VarioPacket.Text[9] = '0'+(tmp_int) / 1000; tmp_int %= 1000;}
else VarioPacket.Text[9] = ' ';
if(tmp_int > 100) { VarioPacket.Text[10] = '0'+(tmp_int) / 100; tmp_int %= 100;}
else VarioPacket.Text[10] = ' ';
VarioPacket.Text[11] = '0'+(tmp_int) / 10;
VarioPacket.Text[12] = '0'+(tmp_int) % 10;
VarioPacket.Text[13] = 'm';
VarioPacket.Text[14] = ' ';
tmp = NaviData_TargetHoldTime;
if(tmp > 100) { VarioPacket.Text[15] = '0'+(tmp) / 100; tmp %= 100;} else VarioPacket.Text[15] = ' ';
VarioPacket.Text[16] = '0'+(tmp) / 10;
VarioPacket.Text[17] = '0'+(tmp) % 10;
VarioPacket.Text[18] = 's';
VarioPacket.Text[19] = ' ';
VarioPacket.Text[20] = ' ';
}
else
if(NC_To_FC_Flags & NC_TO_FC_SIMULATION_ACTIVE)
{
for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&SIMULATION[i]);
}
else
if(!CalibrationDone)
{
for(i=0; i<17;i++) VarioPacket.Text[i] = pgm_read_byte(&MIKROKOPTER[i+2]); // no Error and not calibrated
VarioPacket.Text[16] = '0'+VERSION_MAJOR;
VarioPacket.Text[17] = '.';
VarioPacket.Text[18] = '0'+VERSION_MINOR/10;
VarioPacket.Text[19] = '0'+VERSION_MINOR%10;
VarioPacket.Text[20] = 'a'+VERSION_PATCH;
}
else
{
if(FC_StatusFlags3 & FC_STATUS3_BOAT) for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&BOAT_MODE[i]); // no Error
else for(i=0; i<21;i++) VarioPacket.Text[i] = pgm_read_byte(&MIKROKOPTER[i]); // no Error
if(FC_StatusFlags3 & FC_STATUS3_REDUNDANCE) VarioPacket.Text[0] = 'R';
}
return(sizeof(VarioPacket));
break;
 
case HOTT_GPS_PACKET_ID:
GPSPacket.Altitude = HoehenWert/100 + 500;
// GPSPacket.Distance = GPSInfo.HomeDistance/10; // macht die NC
// GPSPacket.Heading = GPSInfo.HomeBearing/2; // macht die NC
// GPSPacket.Speed = (GPSInfo.Speed * 36) / 10; // macht die NC
// GPSPacket.WarnBeep = HoTT_Waring(); //(wird jetzt weiter oben gemacht)
if(!GPSPacket.WarnBeep) GPSPacket.m_sec = BuildHoTT_Vario(); else GPSPacket.m_sec = VARIO_ZERO;
GPSPacket.m_3sec = 120;
GPSPacket.NumOfSats = GPSInfo.NumOfSats;
if(GPSInfo.Flags & FLAG_DIFFSOLN) GPSPacket.SatFix = 'D';
else
if(GPSInfo.SatFix == SATFIX_3D) GPSPacket.SatFix = ' ';
else GPSPacket.SatFix = '!';
HoTT_DataPointer = (unsigned char *) &GPSPacket;
GPSPacket.FreeCharacters[0] = NC_GPS_ModeCharacter;
GPSPacket.FreeCharacters[2] = GPSPacket.SatFix;
GPSPacket.HomeDirection = GPSInfo.HomeBearing / 2;//230;
return(sizeof(GPSPacket));
break;
case HOTT_ELECTRIC_AIR_PACKET_ID:
GetHottestBl();
ElectricAirPacket.Altitude = HoehenWert/100 + 500;
ElectricAirPacket.Battery1 = UBat;
ElectricAirPacket.Battery2 = UBat;
ElectricAirPacket.VoltageCell1 = CompassCorrected / 2;
ElectricAirPacket.VoltageCell8 = ElectricAirPacket.VoltageCell1;
ElectricAirPacket.VoltageCell6 = GPSInfo.HomeBearing / 2;
ElectricAirPacket.VoltageCell7 = GPSInfo.HomeDistance/20;
ElectricAirPacket.VoltageCell13 = ElectricAirPacket.VoltageCell6;
ElectricAirPacket.VoltageCell14 = ElectricAirPacket.VoltageCell7;
if(!GPSPacket.WarnBeep) ElectricAirPacket.m_sec = BuildHoTT_Vario(); else ElectricAirPacket.m_sec = VARIO_ZERO;
ElectricAirPacket.m_3sec = 120;
ElectricAirPacket.InputVoltage = UBat;
ElectricAirPacket.Temperature1 = MinBlTemperture + 20;
ElectricAirPacket.Temperature2 = MaxBlTemperture + 20;
ElectricAirPacket.Capacity = Capacity.UsedCapacity/10;
// ElectricAirPacket.WarnBeep = 0;//HoTT_Waring();
ElectricAirPacket.WarnBeep = GPSPacket.WarnBeep;
ElectricAirPacket.Current = Capacity.ActualCurrent;
HoTT_DataPointer = (unsigned char *) &ElectricAirPacket;
ElectricAirPacket.FlightTimeMinutes = FlugSekunden / 60;
ElectricAirPacket.FlightTimeSeconds = FlugSekunden % 60;
return(sizeof(ElectricAirPacket));
break;
case HOTT_GENERAL_PACKET_ID:
GetHottestBl();
HoTTGeneral.Rpm = GPSInfo.HomeDistance/100;
HoTTGeneral.VoltageCell1 = CompassCorrected / 2;
HoTTGeneral.VoltageCell2 = KompassValue / 2;
//HoTTGeneral.VoltageCell3 = Magnetstaerke -> macht NC
//HoTTGeneral.VoltageCell4 = Inclinition -> macht NC
HoTTGeneral.VoltageCell5 = DebugOut.Analog[28]; // I2C ErrorCounter
HoTTGeneral.VoltageCell6 = GPSInfo.HomeBearing / 2;
if(UBat > BattLowVoltageWarning + 2) HoTTGeneral.FuelPercent = (UBat - (BattLowVoltageWarning + 2)) * 3;
else HoTTGeneral.FuelPercent = 0;
if(HoTTGeneral.FuelPercent > 100) HoTTGeneral.FuelPercent = 100;
HoTTGeneral.FuelCapacity = NC_ErrorCode;//HoehenWert/100; // Oelpegel
// if(HoTTGeneral.FuelCapacity < 0) HoTTGeneral.FuelCapacity = 0;
HoTTGeneral.Altitude = HoehenWert/100 + 500;
HoTTGeneral.Battery1 = UBat;
HoTTGeneral.Battery2 = UBat;
if(!GPSPacket.WarnBeep) HoTTGeneral.m_sec = BuildHoTT_Vario(); else HoTTGeneral.m_sec = VARIO_ZERO;
HoTTGeneral.m_3sec = 120 + GPSPacket.WarnBeep;
HoTTGeneral.InputVoltage = UBat;
HoTTGeneral.Temperature1 = MinBlTemperture + 20;
HoTTGeneral.Temperature2 = MaxBlTemperture + 20;
HoTTGeneral.Capacity = Capacity.UsedCapacity/10;
HoTTGeneral.WarnBeep = 0;//HoTT_Waring();
HoTTGeneral.Current = Capacity.ActualCurrent;
//HoTTGeneral.ErrorNumber = HoTTErrorCode();
HoTT_DataPointer = (unsigned char *) &HoTTGeneral;
return(sizeof(HoTTGeneral));
break;
default: return(0);
}
}
 
//---------------------------------------------------------------
void HoTT_Menu(void)
{
static unsigned char line, page = 0,show_current = 0,show_mag = 0, show_poti = 0;
unsigned char tmp;
HoTTVarioMeter = (HoTTVarioMeter * 7 + VarioMeter) / 8;
 
// if(HottKeyboard) {beeptime = 1000;};
switch(page)
{
case 0:
switch(line++)
{
case 0:
if(FC_StatusFlags & FC_STATUS_LOWBAT)
HoTT_printfxy_BLINK(0,0," %2i.%1iV ",UBat/10, UBat%10)
else
HoTT_printfxy(0,0," %2i.%1iV ",UBat/10, UBat%10)
 
if(Parameter_GlobalConfig & CFG_HOEHENREGELUNG)
{
if(HoehenReglerAktiv) HoTT_printfxy_INV(10,0,"ALT:%4im %c", (int16_t)(HoehenWert/100),VarioCharacter)
else HoTT_printfxy(10,0,"ALT:%4im ", (int16_t)(HoehenWert/100))
}
else HoTT_printfxy(10,0,"ALT:---- ");
break;
case 1:
if(FC_StatusFlags & FC_STATUS_LOWBAT)
HoTT_printfxy_BLINK(0,1," %2i:%02i ",FlugSekunden/60,FlugSekunden%60)
else HoTT_printfxy(0,1," %2i:%02i ",FlugSekunden/60,FlugSekunden%60);
HoTT_printfxy(10,1,"DIR: %3d%c",CompassCorrected, HoTT_GRAD);
if(FC_StatusFlags2 & FC_STATUS2_CAREFREE) HoTT_printfxy_INV(20,1,"C") else HoTT_printfxy(20,1," ");
break;
case 2:
if(FC_StatusFlags & FC_STATUS_LOWBAT)
HoTT_printfxy_BLINK(0,2," %5i ",Capacity.UsedCapacity)
else HoTT_printfxy(0,2," %5i ",Capacity.UsedCapacity);
HoTT_printfxy(12,2,"I:%2i.%1iA ",Capacity.ActualCurrent/10, Capacity.ActualCurrent%10);
break;
case 3:
HoTT_printfxy(9,0,":");
HoTT_printfxy(9,1,":");
HoTT_printfxy(9,2,":");
HoTT_printfxy(0,3,"---------+-----------");
 
// HoTT_printfxy(0,3,"---------------------");
HoTT_printfxy(0,6,"---------------------");
break;
case 4:
if(NaviDataOkay)
{
HoTT_printfxy(9,4,":");
HoTT_printfxy(0,4,"SAT:%2d ",GPSInfo.NumOfSats);
HoTT_printfxy(10,4,"DIST:%3dm",GPSInfo.HomeDistance/10);
switch (GPSInfo.SatFix)
{
case SATFIX_3D:
if(GPSInfo.Flags & FLAG_DIFFSOLN) HoTT_printfxy(7,4,"D ")
else HoTT_printfxy(7,4,"3D");
break;
default:
HoTT_printfxy_BLINK(7,4,"!!");
break;
}
}
else
{
Hott_ClearLine(4);
}
break;
case 5:
if(NaviDataOkay)
{
if(show_mag)
{
HoTT_printfxy(0,5,"MAG:%3u%% ",EarthMagneticField);
HoTT_printfxy(12,5,"HM:%3d%c %c", GPSInfo.HomeBearing, HoTT_GRAD, NC_GPS_ModeCharacter);
HoTT_printfxy(9,5,"incl:%2d%c(%2i)",EarthMagneticInclination, HoTT_GRAD,EarthMagneticInclinationTheoretic);
}
else
{
HoTT_printfxy(0,5," %2um/s: HM:%3d%c %c",GPSInfo.Speed, GPSInfo.HomeBearing, HoTT_GRAD, NC_GPS_ModeCharacter);
}
}
else Hott_ClearLine(5);
break;
case 6:
break;
case 7: if(NC_ErrorCode)
{
if(HoTTBlink && NC_ErrorCode < MAX_ERR_NUMBER)
{
Hott_ClearLine(7);
HoTT_printfxy_INV(0,7,"ERR: %2d !",NC_ErrorCode);
}
else
{
HoTT_printfxy(0,7,"ERR: "); _printf_P(&LIBFC_HoTT_Putchar, NC_ERROR_TEXT[NC_ErrorCode] , 0);};
}
else
if(FC_StatusFlags & FC_STATUS_LOWBAT) HoTT_printfxy(1,7,"!! LiPo voltage !!")
else HoTT_printfxy(0,7," www.MikroKopter.de ");
break;
case 8: //ASCIIPacket.WarnBeep = HoTT_Waring();
// ASCIIPacket.WarnBeep = Parameter_UserParam1;
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
case 16:
if(HottKeyboard == HOTT_KEY_DOWN) { LIBFC_HoTT_Clear(); page = 5; line = 0;}
else
if(HottKeyboard == HOTT_KEY_SET) { if(show_mag) show_mag = 0; else show_mag = 1;}
else
if(HottKeyboard == HOTT_KEY_LEFT) { LIBFC_HoTT_Clear(); page = 1; line = 0;};
HottKeyboard = 0;
break;
default: line = 0;
break;
}
break;
case 1:
switch(line++)
{
case 0:
if(FC_StatusFlags & FC_STATUS_LOWBAT)
HoTT_printfxy_BLINK(0,0," %2i:%02i %2i.%1iV %4imAh",FlugSekunden/60,FlugSekunden%60,UBat/10, UBat%10,Capacity.UsedCapacity)
else HoTT_printfxy(0,0," %2i:%02i %2i.%1iV %4imAh",FlugSekunden/60,FlugSekunden%60,UBat/10, UBat%10,Capacity.UsedCapacity);
break;
case 1:
HoTT_printfxy(0,1,"DIR:%3d%c",CompassCorrected, HoTT_GRAD);
if(Parameter_GlobalConfig & CFG_HOEHENREGELUNG)
{
if(HoehenReglerAktiv) HoTT_printfxy_INV(10,1,"ALT:%4im", (int16_t)(HoehenWert/100))
else HoTT_printfxy(10,1,"ALT:%4im", (int16_t)(HoehenWert/100))
}
else HoTT_printfxy(10,1,"ALT:---- ");
HoTT_printfxy(20,1,"%c",VarioCharacter);
break;
case 2:
if(NaviDataOkay)
{
HoTT_printfxy(1,2,"HM:%3d%c DIST:%3dm %c", GPSInfo.HomeBearing, HoTT_GRAD, GPSInfo.HomeDistance/10, NC_GPS_ModeCharacter);
}
else
{
Hott_ClearLine(2);
}
break;
case 3:
HoTT_printfxy(0,3,"PWR:%2i.%1iA (%iW) ",Capacity.ActualCurrent/10, Capacity.ActualCurrent%10,Capacity.ActualPower);
if(FC_StatusFlags2 & FC_STATUS2_CAREFREE) HoTT_printfxy_INV(19,3,"CF") else HoTT_printfxy(19,3," ");
break;
case 4:
if(NaviDataOkay)
{
HoTT_printfxy(0,4,"GPS:%2um/s SAT:%d ",GPSInfo.Speed,GPSInfo.NumOfSats);
switch (GPSInfo.SatFix)
{
case SATFIX_3D:
HoTT_printfxy(16,4," 3D ");
break;
//case SATFIX_2D:
//case SATFIX_NONE:
default:
HoTT_printfxy_BLINK(16,4,"NOFIX");
break;
}
if(GPSInfo.Flags & FLAG_DIFFSOLN)
{
HoTT_printfxy(16,4,"DGPS ");
}
}
else
{ //012345678901234567890
HoTT_printfxy(0,4," No NaviCtrl ");
}
break;
case 5:
if(show_current)
{
// HoTT_printfxy(0,5,"%2i.%i %2i.%i %2i.%i %2i.%iA", Motor[0].Current/10,Motor[0].Current%10,Motor[1].Current/10,Motor[1].Current%10,Motor[2].Current/10,Motor[2].Current%10,Motor[3].Current/10,Motor[3].Current%10);
HoTT_printfxy(0,5,"%2i.%i %2i.%i %2i.%i %2i.%iA", BL3_Current(0)/10,BL3_Current(0)%10,BL3_Current(1)/10,BL3_Current(1)%10,BL3_Current(2)/10,BL3_Current(2)%10,BL3_Current(3)/10,BL3_Current(3)%10);
}
else
{
HoTT_printfxy(0,5,"%3i %3i %3i %3i%cC", Motor[0].Temperature, Motor[1].Temperature, Motor[2].Temperature, Motor[3].Temperature,HoTT_GRAD);
}
break;
case 6:
if(show_current)
{
if(RequiredMotors == 4) Hott_ClearLine(6);
else
// if(RequiredMotors == 6) HoTT_printfxy(0,6,"%2i.%i %2i.%iA", Motor[4].Current/10,Motor[4].Current%10,Motor[5].Current/10,Motor[5].Current%10)
if(RequiredMotors == 6) HoTT_printfxy(0,6,"%2i.%i %2i.%iA", BL3_Current(4)/10,BL3_Current(4)%10, BL3_Current(5)/10,BL3_Current(5)%10)
else
// if(RequiredMotors > 6) HoTT_printfxy(0,6,"%2i.%i %2i.%i %2i.%i %2i.%iA", Motor[4].Current/10,Motor[4].Current%10,Motor[5].Current/10,Motor[5].Current%10,Motor[6].Current/10,Motor[6].Current%10,Motor[7].Current/10,Motor[7].Current%10);
if(RequiredMotors > 6) HoTT_printfxy(0,6,"%2i.%i %2i.%i %2i.%i %2i.%iA", BL3_Current(4)/10,BL3_Current(4)%10,BL3_Current(5)/10,BL3_Current(5)%10,BL3_Current(6)/10,BL3_Current(6)%10,BL3_Current(7)/10,BL3_Current(7)%10,BL3_Current(8)/10,BL3_Current(8)%10);
}
else
{
if(RequiredMotors == 4) Hott_ClearLine(6);
else
if(RequiredMotors == 6) HoTT_printfxy(0,6,"%3i %3i%cC ", Motor[4].Temperature, Motor[5].Temperature,HoTT_GRAD)
else
if(RequiredMotors > 6) HoTT_printfxy(0,6,"%3i %3i %3i %3i%cC", Motor[4].Temperature, Motor[5].Temperature, Motor[6].Temperature, Motor[7].Temperature,HoTT_GRAD);
}
break;
case 7: if(NC_ErrorCode)
{
if(HoTTBlink && NC_ErrorCode < MAX_ERR_NUMBER)
{
Hott_ClearLine(7);
HoTT_printfxy_INV(0,7,"ERR: %2d !",NC_ErrorCode);
}
else
{
HoTT_printfxy(0,7,"ERR: "); _printf_P(&LIBFC_HoTT_Putchar, NC_ERROR_TEXT[NC_ErrorCode] , 0);};
}
else
if(FC_StatusFlags & FC_STATUS_LOWBAT) HoTT_printfxy(1,7,"!! LiPo voltage !!")
else HoTT_printfxy(0,7," www.MikroKopter.de ");
break;
case 8: // ASCIIPacket.WarnBeep = HoTT_Waring();
// ASCIIPacket.WarnBeep = Parameter_UserParam1;
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
case 16:
if(HottKeyboard == HOTT_KEY_SET) { if(show_current) show_current = 0; else show_current = 1; Hott_ClearLine(5); Hott_ClearLine(6);}
else
if(HottKeyboard == HOTT_KEY_LEFT) { LIBFC_HoTT_Clear(); page = 2; line = 0;}
else
if(HottKeyboard == HOTT_KEY_RIGHT) { LIBFC_HoTT_Clear(); page = 0; line = 0;}
//if(HottKeyboard) HoTT_printfxy(15,6,"%KEY:%02x ",HottKeyboard);
HottKeyboard = 0;
break;
default: line = 0;
break;
}
break;
case 2:
switch(line++)
{
case 0:
HoTT_printfxy_INV(0,0,"Setting:%u %s ",ActiveParamSet,EE_Parameter.Name);
break;
case 1: HoTT_printfxy(0,1,"Min:%2i.%1iV %s ",BattLowVoltageWarning/10, BattLowVoltageWarning%10, Mixer.Name);
break;
case 2: HoTT_printfxy(0,2,"ALT:");
if(Parameter_GlobalConfig & CFG_HOEHENREGELUNG)
{
if(!(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER)) HoTT_printf("POTI:%3u ", Parameter_HoehenSchalter)
else
{
if(Parameter_HoehenSchalter > 50) HoTT_printf("(ON) ") else HoTT_printf("(OFF) ");
if((Parameter_ExtraConfig & CFG2_HEIGHT_LIMIT)) HoTT_printf("LIMIT", Parameter_HoehenSchalter)
else HoTT_printf("VARIO", Parameter_HoehenSchalter);
}
}
else
HoTT_printf("DISABLED");
break;
case 3: HoTT_printfxy(0,3,"CF:");
if(!EE_Parameter.CareFreeChannel) HoTT_printf("DISABLED")
else
{
if(CareFree) HoTT_printf(" (ON) ") else HoTT_printf(" (OFF)");
if(EE_Parameter.ExtraConfig & CFG_LEARNABLE_CAREFREE) HoTT_printf(" TEACH");
}
break;
case 4: HoTT_printfxy(0,4,"GPS:");
if(!(Parameter_GlobalConfig & CFG_GPS_AKTIV)) HoTT_printf("DISABLED")
else
{
tmp = GetChannelValue(EE_Parameter.NaviGpsModeChannel);
if(tmp < 50) HoTT_printf("(FREE)")
else
if(tmp >= 180) HoTT_printf("(HOME)")
else
if(EE_Parameter.ExtraConfig & CFG_GPS_AID) HoTT_printf("(AID) ")
else HoTT_printf("(HOLD)")
}
if(EE_Parameter.FailSafeTime) HoTT_printfxy(10,4," FS:%usek ",EE_Parameter.FailSafeTime)
 
break;
case 5: HoTT_printfxy(0,5,"HOME ALT:");
if(EE_Parameter.ComingHomeAltitude) HoTT_printf("%um",EE_Parameter.ComingHomeAltitude) else HoTT_printf("HOLD ");
break;
case 6:
if(!show_poti)
{
HoTT_printfxy(0,6,"Ni:%4i Ro:%4i C:%3i",PPM_in[EE_Parameter.Kanalbelegung[K_NICK]],PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]], Parameter_ServoNickControl);
HoTT_printfxy(0,7,"Gs:%4i Ya:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_GAS]]+127,PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]);
}
else
{
HoTT_printfxy(0,6,"P1:%4i P2:%4i 3:%3i",Poti1,Poti2, Poti3);
HoTT_printfxy(0,7,"P4:%4i P5:%4i 6:%3i",Poti4,Poti5, Poti6);
}
break;
case 7: //HoTT_printfxy(0,6,"WARNINGS:");
if(HoTTBlink)
{
LIBFC_HoTT_SetPos(6 * 21);
if(!(Parameter_GlobalConfig & CFG_ACHSENKOPPLUNG_AKTIV)) HoTT_printf_BLINK("COUPLING OFF! ");
if(EE_Parameter.BitConfig & (CFG_LOOP_LINKS | CFG_LOOP_RECHTS | CFG_LOOP_UNTEN | CFG_LOOP_OBEN)) HoTT_printf_BLINK("LOOPING! ");
if(Parameter_GlobalConfig & CFG_HEADING_HOLD) HoTT_printf_BLINK("HH! ");
if(!(Parameter_GlobalConfig & CFG_KOMPASS_AKTIV)) HoTT_printf_BLINK("COMPASS OFF! ");
}
break;
case 8: //ASCIIPacket.WarnBeep = HoTT_Waring();
break;
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
case 16:
if(HottKeyboard == HOTT_KEY_SET) { if(show_poti) show_poti = 0; else show_poti = 1; Hott_ClearLine(6); Hott_ClearLine(7);}
else
if(HottKeyboard == HOTT_KEY_LEFT) { LIBFC_HoTT_Clear(); page = 3; line = 0;}
else
if(HottKeyboard == HOTT_KEY_RIGHT) { LIBFC_HoTT_Clear(); page = 1; line = 0;};
HottKeyboard = 0;
break;
default: line = 0;
break;
}
break;
case 3:
switch(line++)
{
static unsigned char load_waypoint_tmp2 = 1, changed2;
case 0:
HoTT_printfxy(0,0,"Load Waypoints");
HoTT_printfxy(0,1,"(Relative Positions)");
// HoTT_printfxy(0,1,"(Absolute)");
break;
case 1:
if(NaviData_WaypointNumber) HoTT_printfxy(0,6,"Active WP:%2d/%d ",NaviData_WaypointIndex,NaviData_WaypointNumber)
else HoTT_printfxy(0,6,"No WPs active ")
break;
case 2:
HoTT_printfxy(0,7,"%2i.%1iV ",UBat/10, UBat%10)
HoTT_printfxy(11,7,"%s",WPL_Name)
case 3:
case 4:
case 5:
if(load_waypoint_tmp2)
{
if(changed2 && HoTTBlink) HoTT_printfxy(10,3," ")
else HoTT_printfxy(10,3,"%2i ",load_waypoint_tmp2);
HoTT_printfxy(0,3,"Load list:")
}
else
{
HoTT_printfxy(0,3,"Load list: -- ");
}
if(NaviData_MaxWpListIndex == 0) HoTT_printfxy(0,4,"No SD-Card ")
else
{
if(GPSInfo.SatFix == SATFIX_3D)
{
if(changed2 && load_waypoint_tmp2) HoTT_printfxy(0,4,"(Set -> Load)")
else HoTT_printfxy(0,4," ");
if(HottKeyboard == HOTT_KEY_SET) { if(load_waypoint_tmp2) ToNC_Load_WP_List = load_waypoint_tmp2 | 128; changed2 = 0;}
} else HoTT_printfxy(0,4,"!No GPS-Fix! ");
}
if(HottKeyboard == HOTT_KEY_UP && load_waypoint_tmp2 < NaviData_MaxWpListIndex) { changed2 = 1; load_waypoint_tmp2++;HoTTBlink = 0;}
if(HottKeyboard == HOTT_KEY_DOWN && load_waypoint_tmp2 > 1) { changed2 = 1; load_waypoint_tmp2--;HoTTBlink = 0;};
if(HottKeyboard == HOTT_KEY_LEFT) { LIBFC_HoTT_Clear(); page = 4; line = 0;}
if(HottKeyboard == HOTT_KEY_RIGHT) { LIBFC_HoTT_Clear(); page = 2; line = 0;};
HottKeyboard = 0;
break;
default: line = 0;
break;
}
break;
case 4:
switch(line++)
{
static unsigned char load_waypoint_tmp = 1, changed;
case 0:
HoTT_printfxy(0,0,"Load Waypoints");
HoTT_printfxy(0,1,"(Fixed Positions)");
break;
case 1:
if(NaviData_WaypointNumber) HoTT_printfxy(0,6,"Active WP:%2d/%d ",NaviData_WaypointIndex,NaviData_WaypointNumber)
else HoTT_printfxy(0,6,"No WPs active ")
break;
case 2:
HoTT_printfxy(0,7,"%2i.%1iV ",UBat/10, UBat%10)
HoTT_printfxy(11,7,"%s",WPL_Name)
case 3:
case 4:
case 5:
HoTT_printfxy(0,3,"Load list:")
if(load_waypoint_tmp)
{
if(changed && HoTTBlink) HoTT_printfxy(10,3," ")
else HoTT_printfxy(10,3,"%2d (FIX)",load_waypoint_tmp);
}
else
{
HoTT_printfxy(10,3," --")
}
if(NaviData_MaxWpListIndex == 0) HoTT_printfxy(0,4,"No SD-Card ")
else
{
if(changed && load_waypoint_tmp) HoTT_printfxy(0,4,"(Set -> Load)")
else HoTT_printfxy(0,4," ");
}
if(HottKeyboard == HOTT_KEY_UP && load_waypoint_tmp < NaviData_MaxWpListIndex) { changed = 1; load_waypoint_tmp++; HoTTBlink = 0;}
if(HottKeyboard == HOTT_KEY_DOWN && load_waypoint_tmp > 1) { changed = 1; load_waypoint_tmp--; HoTTBlink = 0;};
if(HottKeyboard == HOTT_KEY_SET) { if(load_waypoint_tmp) ToNC_Load_WP_List = load_waypoint_tmp; changed = 0;}
if(HottKeyboard == HOTT_KEY_LEFT) { LIBFC_HoTT_Clear(); page++; line = 0;}
if(HottKeyboard == HOTT_KEY_RIGHT) { LIBFC_HoTT_Clear(); page--; line = 0;};
HottKeyboard = 0;
break;
default: line = 0;
break;
}
break;
case 5:
switch(line++)
{
static unsigned char wp_tmp, changed;
case 0:
HoTT_printfxy(0,0,"Store single Position");
// HoTT_printfxy(0,1,"(Fixed Positions)");
break;
case 1:
HoTT_printfxy(0,2," %2i.%1iV ",UBat/10, UBat%10)
HoTT_printfxy(0,3," %2i:%02i ",FlugSekunden/60,FlugSekunden%60);
// HoTT_printfxy(0,4,"Dist:%3dm",NaviData_TargetDistance)
break;
case 2:
HoTT_printfxy(11,2,"ALT:%4im", (int16_t)(HoehenWert/100))
HoTT_printfxy(11,3,"DIR: %3d%c",CompassCorrected, HoTT_GRAD);
HoTT_printfxy(11,4,"Cam: %3i",Parameter_ServoNickControl);
break;
case 3:
case 4:
case 5:
HoTT_printfxy(0,6,"Store point:")
if(wp_tmp)
{
if(changed && HoTTBlink) HoTT_printfxy(13,6," ")
else HoTT_printfxy(13,6,"%2d ",wp_tmp);
}
else
{
HoTT_printfxy(13,6,"--")
}
if(GPSInfo.SatFix == SATFIX_3D)
{
if(NaviData_MaxWpListIndex == 0) HoTT_printfxy(0,7,"No SD-Card ")
else
{
if(changed && wp_tmp) HoTT_printfxy(0,7,"(Set -> Store)")
else Hott_ClearLine(7);
}
if(HottKeyboard == HOTT_KEY_SET) { if(wp_tmp) ToNC_Store_SingePoint = wp_tmp; changed = 0;}
}
else HoTT_printfxy(0,7,"!No GPS-Fix! ");
if(HottKeyboard == HOTT_KEY_UP && wp_tmp < NaviData_MaxWpListIndex) { changed = 1; wp_tmp++; HoTTBlink = 0;}
if(HottKeyboard == HOTT_KEY_DOWN && wp_tmp > 1) { changed = 1; wp_tmp--; HoTTBlink = 0;};
if(HottKeyboard == HOTT_KEY_LEFT) { LIBFC_HoTT_Clear(); page++; line = 0;}
if(HottKeyboard == HOTT_KEY_RIGHT) { LIBFC_HoTT_Clear(); page--; line = 0;};
HottKeyboard = 0;
break;
default: line = 0;
break;
}
break;
case 6:
switch(line++)
{
static unsigned char wp_tmp, changed;
case 0:
HoTT_printfxy(0,0,"Load single Position");
// HoTT_printfxy(0,1,"(Fixed Positions)");
break;
case 1:
HoTT_printfxy(0,2," %2i.%1iV ",UBat/10, UBat%10)
HoTT_printfxy(0,3," %2i:%02i ",FlugSekunden/60,FlugSekunden%60);
// HoTT_printfxy(0,4,"Dist:%3dm",NaviData_TargetDistance)
if(NaviData_WaypointNumber) HoTT_printfxy(0,5,"WP:%2d/%d Dist:%3dm ",NaviData_WaypointIndex,NaviData_WaypointNumber,NaviData_TargetDistance)
else Hott_ClearLine(5);
break;
case 2:
if(FromNC_AltitudeSpeed)
HoTT_printfxy(8,2,"ALT:%4i/%im ", (int16_t)(HoehenWert/100),(int16_t)(FromNC_AltitudeSetpoint/100))
else
HoTT_printfxy(8,2,"ALT:%4im ",(int16_t)(HoehenWert/100))
HoTT_printfxy(8,3,"DIR: %3d%c",CompassCorrected, HoTT_GRAD);
HoTT_printfxy(8,4,"Cam: %3i",Parameter_ServoNickControl);
break;
// HoTT_printfxy(11,7,"%s",WPL_Name)
case 3:
case 4:
case 5:
if(HottKeyboard) DebugOut.Analog[17]++;
HoTT_printfxy(0,6,"load point:")
if(wp_tmp)
{
if(changed && HoTTBlink) HoTT_printfxy(11,6," ")
else HoTT_printfxy(11,6,"%2d",wp_tmp);
}
else
{
HoTT_printfxy(11,6,"--")
}
if(NaviData_MaxWpListIndex == 0) HoTT_printfxy(0,7,"No SD-Card ")
else
{
if(changed && wp_tmp) HoTT_printfxy(0,7,"(Set -> Load)")
else
{
Hott_ClearLine(7);
if(NaviData_WaypointNumber) HoTT_printfxy(0,7,"%s",WPL_Name);
}
}
if(HottKeyboard == HOTT_KEY_UP && wp_tmp < NaviData_MaxWpListIndex) { changed = 1; wp_tmp++; HoTTBlink = 0;}
if(HottKeyboard == HOTT_KEY_DOWN && wp_tmp > 1) { changed = 1; wp_tmp--; HoTTBlink = 0;};
if(HottKeyboard == HOTT_KEY_SET) { if(wp_tmp) ToNC_Load_SingePoint = wp_tmp; changed = 0;}
// if(HottKeyboard == HOTT_KEY_LEFT) { LIBFC_HoTT_Clear(); page++; line = 0;}
if(HottKeyboard == HOTT_KEY_RIGHT) { LIBFC_HoTT_Clear(); page--; line = 0;};
HottKeyboard = 0;
break;
default: line = 0;
break;
}
break;
default: page = 0;
break;
}
}
 
#endif
 
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/hottmenu.h
0,0 → 1,239
#ifndef _HOTTMENU_H
#define _HOTTMENU_H
 
extern unsigned char NaviData_WaypointIndex;
extern unsigned char NaviData_WaypointNumber, NaviData_TargetHoldTime,ToNC_Load_WP_List,NaviData_MaxWpListIndex;
extern unsigned char ToNC_Load_SingePoint, ToNC_Store_SingePoint;
 
extern char WPL_Name[10];
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
 
#define SPEAK_ERR_CALIBARTION 1
#define SPEAK_ERR_RECEICER 2
#define SPEAK_ERR_DATABUS 3
#define SPEAK_ERR_NAVI 4
#define SPEAK_ERROR 5
#define SPEAK_ERR_COMPASS 6
#define SPEAK_ERR_SENSOR 7
#define SPEAK_ERR_GPS 8
#define SPEAK_ERR_MOTOR 9
#define SPEAK_MAX_TEMPERAT 10
#define SPEAK_ALTI_REACHED 11
#define SPEAK_WP_REACHED 12
#define SPEAK_NEXT_WP 13
#define SPEAK_LANDING 14
#define SPEAK_GPS_FIX 15
#define SPEAK_UNDERVOLTAGE 16
#define SPEAK_GPS_HOLD 17
#define SPEAK_GPS_HOME 18
#define SPEAK_GPS_OFF 19
#define SPEAK_BEEP 20
#define SPEAK_MIKROKOPTER 21
#define SPEAK_CAPACITY 22
#define SPEAK_CF_OFF 23
#define SPEAK_CALIBRATE 24
#define SPEAK_MAX_RANGE 25
#define SPEAK_MAX_ALTITUD 26
 
#define SPEAK_MK_OFF 38
#define SPEAK_ALTITUDE_ON 39
#define SPEAK_ALTITUDE_OFF 40
#define SPEAK_CF_ON 46
#define SPEAK_SINKING 47
#define SPEAK_RISING 48
#define SPEAK_HOLDING 49
#define SPEAK_GPS_ON 50
#define SPEAK_FOLLWING 51
#define SPEAK_STARTING 52
 
#define MAX_ERR_NUMBER (34+1)
extern const char PROGMEM NC_ERROR_TEXT[MAX_ERR_NUMBER][17];
extern unsigned int NaviData_TargetDistance;
extern unsigned char MaxBlTemperture;
extern unsigned char MinBlTemperture;
extern unsigned char HottestBl;
 
extern unsigned char HottKeyboard,HoTT_RequestedSensor;
extern unsigned char HottUpdate(unsigned char key);
extern unsigned char SpeakHoTT,ShowSettingNameTime;
extern unsigned char ToNC_SpeakHoTT;
extern volatile unsigned char *HoTT_DataPointer;
 
extern void CreateHoTT_Menu(void);
extern void LIBFC_HoTT_Putchar(char);
extern void LIBFC_HoTT_Putchar_INV(char); // print Invers
extern void LIBFC_HoTT_Putchar_BLINK(char);
extern void LIBFC_HoTT_SetPos(unsigned char);
extern void LIBFC_HoTT_Clear(void);
extern void NC_Fills_HoTT_Telemety(void);
extern void HoTT_Menu(void);
extern unsigned char HoTT_Telemety(unsigned char);
extern unsigned char HoTT_Waring(void);
extern volatile unsigned char HoTTBlink;
extern void GetHottestBl(void);
 
typedef struct
{
unsigned char StartByte; // 0x7C
unsigned char Packet_ID; // HOTT_GENERAL_PACKET_ID
unsigned char WarnBeep; // 3 Anzahl der Töne 0..36
unsigned char SensorID; // 4 0xD0
unsigned char InverseStatus1; // 5
unsigned char InverseStatus2; // 6
unsigned char VoltageCell1; // 7 208 = 4,16V (Voltage * 50 = Wert)
unsigned char VoltageCell2; // 8 209 = 4,18V
unsigned char VoltageCell3; // 9
unsigned char VoltageCell4; // 10
unsigned char VoltageCell5; // 11
unsigned char VoltageCell6; // 12
unsigned int Battery1; // 13+14 51 = 5,1V
unsigned int Battery2; // 15+16 51 = 5,1V
unsigned char Temperature1; // 17 44 = 24°C, 0 = -20°C
unsigned char Temperature2; // 18 44 = 24°C, 0 = -20°C
unsigned char FuelPercent; // 19
signed int FuelCapacity; // 20+21
unsigned int Rpm; // 22+23
signed int Altitude; // 24+25
unsigned int m_sec; // 26+27 3000 = 0
unsigned char m_3sec; // 28 120 = 0
unsigned int Current; // 29+30 1 = 0.1A
unsigned int InputVoltage; // 31+32 66 = 6,6V
unsigned int Capacity; // 33+34 1 = 10mAh
unsigned int Speed; // 35+36
unsigned char LowestCellVoltage; // 37
unsigned char LowestCellNumber; // 38
unsigned int Rpm2; // 39+40
unsigned char ErrorNumber; // 41
unsigned char Pressure; // 42 in 0,1bar 20=2,0bar
unsigned char Version; // 43
unsigned char EndByte; // 0x7D
} HoTTGeneral_t;
 
typedef struct
{
unsigned char StartByte; // 0x7C
unsigned char Packet_ID; // HOTT_ELECTRIC_AIR_PACKET_ID
unsigned char WarnBeep; // Anzahl der Töne 0..36
unsigned char SensorID; // 4 0xE0
unsigned char InverseStatus1; // 5
unsigned char InverseStatus2; // 6
unsigned char VoltageCell1; // 7 208 = 4,16V (Voltage * 50 = Wert)
unsigned char VoltageCell2; // 209 = 4,18V
unsigned char VoltageCell3; //
unsigned char VoltageCell4; //
unsigned char VoltageCell5; //
unsigned char VoltageCell6; //
unsigned char VoltageCell7; //
unsigned char VoltageCell8; //
unsigned char VoltageCell9; //
unsigned char VoltageCell10; //
unsigned char VoltageCell11; //
unsigned char VoltageCell12; //
unsigned char VoltageCell13; //
unsigned char VoltageCell14; // 20
unsigned int Battery1; // 21+22 51 = 5,1V
unsigned int Battery2; // 23+24 51 = 5,1V
unsigned char Temperature1; // 25 44 = 24°C, 0 = -20°C
unsigned char Temperature2; // 26 44 = 24°C, 0 = -20°C
signed int Altitude; // 27+28
unsigned int Current; // 29+30 1 = 0.1A
unsigned int InputVoltage; // 31+32 66 = 6,6V
unsigned int Capacity; // 33+34 1 = 10mAh
unsigned int m_sec; // 35+36 30000 = 0
unsigned char m_3sec; // 37 120 = 0
unsigned int Rpm; // 38+39
unsigned char FlightTimeMinutes; // 40
unsigned char FlightTimeSeconds; // 41
unsigned char Speed; // 42 1=2km
unsigned char Version; // 43 0x00
unsigned char EndByte; // 0x7D
} ElectricAirPacket_t;
 
 
typedef struct
{
unsigned char StartByte; // 0x7C
unsigned char Packet_ID; // 0x89 - Vario ID
unsigned char WarnBeep; //3 // Anzahl der Töne 0..36
unsigned char SensorID; // 0x90
unsigned char InverseStatus;
signed int Altitude; //6+7 // 500 = 0m
signed int MaxAltitude; //8+9 // 500 = 0m
signed int MinAltitude; //10+11 // 500 = 0m
unsigned int m_sec; //12+13 // 3000 = 0
unsigned int m_3sec; //14+15
unsigned int m_10sec; //26+17
char Text[21]; //18-38
char FreeCharacters[3]; // 39-41
unsigned char NullByte; // 42 0x00
unsigned char Version; // 43
unsigned char EndByte; // 0x7D
} VarioPacket_t;
 
typedef struct
{
unsigned char StartByte; //0 // 0x7C
unsigned char Packet_ID; //1 // 0x8A - GPS ID
unsigned char WarnBeep; //2 // Anzahl der Töne 0..36
unsigned char SensorID; // 4 0xA0
unsigned char InverseStatus1; // 5
unsigned char InverseStatus2; // 6
unsigned char Heading; //7 // 1 = 2°
unsigned int Speed; //8+9 // in km/h
unsigned char Lat_North; //10
unsigned char Lat_G; //11
unsigned char Lat_M; //12
unsigned char Lat_Sek1; //13
unsigned char Lat_Sek2; //14
unsigned char Lon_East; //15
unsigned char Lon_G; //16
unsigned char Lon_M; //17
unsigned char Lon_Sek1; //18
unsigned char Lon_Sek2; //19
unsigned int Distance; //20+21 // 9000 = 0m
signed int Altitude; //22+23 // 500 = 0m
unsigned int m_sec; //24+25 // 3000 = 0
unsigned char m_3sec; //26 120 = 0
unsigned char NumOfSats; //27
unsigned char SatFix; //28
unsigned char HomeDirection; // 29
unsigned char AngleX; // 30
unsigned char AngleY; // 31
unsigned char AngleZ; // 32
signed int GyroX; //33+34
signed int GyroY; //35+36
signed int GyroZ; //37+38
unsigned char Vibration; // 39
char FreeCharacters[3]; // 40-42
unsigned char Version; // 43
unsigned char EndByte; // 0x7D
} GPSPacket_t;
 
typedef struct
{
unsigned char StartByte; // 0x7B
unsigned char Packet_ID; //
unsigned char WarnBeep; // Anzahl der Töne 0..36
char Text[8*21];
unsigned char EndByte; // 0x7D
} ASCIIPacket_t;
 
 
 
extern GPSPacket_t GPSPacket;
extern VarioPacket_t VarioPacket;
extern ASCIIPacket_t ASCIIPacket;
extern ElectricAirPacket_t ElectricAirPacket;
extern HoTTGeneral_t HoTTGeneral;
 
#define HOTT_VARIO_PACKET_ID 0x89
#define HOTT_GPS_PACKET_ID 0x8A
#define HOTT_ELECTRIC_AIR_PACKET_ID 0x8E
#define HOTT_GENERAL_PACKET_ID 0x8D
#define JETI_GPS_PACKET_ID1 0x01
#define JETI_GPS_PACKET_ID2 0x02
#define HOTT_WPL_NAME 0x03
 
#endif
#endif
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/isqrt.S
0,0 → 1,203
;-----------------------------------------------------------------------------;
; Fast integer squareroot routines for avr-gcc project (C)ChaN, 2008
; http://elm-chan.org/docs/avrlib/sqrt32.S
;-----------------------------------------------------------------------------;
; uint16_t isqrt32 (uint32_t n);
; uint8_t isqrt16 (uint16_t n);
; uint16_t ihypot (int16_t x, int16_t y);
 
;-----------------------------------------------------------------------------:
; 32bit integer squareroot
;-----------------------------------------------------------------------------;
; uint16_t isqrt32 (
; uint32_t n
; );
;
; Return Value:
; Squareroot of n.
;
; Size = 53 words
; Clock = 532..548 cycles
; Stack = 0 byte
 
.global isqrt32
.func isqrt32
 
isqrt32:
clr r0
clr r18
clr r19
clr r20
ldi r21, 1
clr r27
clr r30
clr r31
ldi r26, 16
1: lsl r22
rol r23
rol r24
rol r25
rol r0
rol r18
rol r19
rol r20
lsl r22
rol r23
rol r24
rol r25
rol r0
rol r18
rol r19
rol r20
brpl 2f
add r0, r21
adc r18, r27
adc r19, r30
adc r20, r31
rjmp 3f
2: sub r0, r21
sbc r18, r27
sbc r19, r30
sbc r20, r31
3: lsl r21
rol r27
rol r30
andi r21, 0b11111000
ori r21, 0b00000101
sbrc r20, 7
subi r21, 2
dec r26
brne 1b
lsr r30
ror r27
ror r21
lsr r30
ror r27
ror r21
mov r24, r21
mov r25, r27
ret
.endfunc
 
 
 
;-----------------------------------------------------------------------------:
; 16bit integer squareroot
;-----------------------------------------------------------------------------;
; uint8_t isqrt16 (
; uint16_t n
; );
;
; Return Value:
; Squareroot of n.
;
; Size = 33 words
; Clock = 181..189 cycles
; Stack = 0 byte
 
.global isqrt16
.func isqrt16
 
isqrt16:
clr r18
clr r19
ldi r20, 1
clr r21
ldi r22, 8
1: lsl r24
rol r25
rol r18
rol r19
lsl r24
rol r25
rol r18
rol r19
brpl 2f
add r18, r20
adc r19, r21
rjmp 3f
2: sub r18, r20
sbc r19, r21
3: lsl r20
rol r21
andi r20, 0b11111000
ori r20, 0b00000101
sbrc r19, 7
subi r20, 2
dec r22
brne 1b
lsr r21
ror r20
lsr r21
ror r20
mov r24, r20
ret
.endfunc
 
 
 
;-----------------------------------------------------------------------------:
; 16bit integer hypot (megaAVR is required)
;-----------------------------------------------------------------------------;
; uint16_t ihypot (
; int16_t x,
; int16_t y
; );
;
; Return Value:
; Squareroot of (x*x + y*y)
;
; Size = 42 words
; Clock = 581..597 cycles
; Stack = 0 byte
 
.global ihypot
.func ihypot
 
ihypot:
clr r26
sbrs r25, 7
rjmp 1f
com r24
com r25
adc r24, r26
adc r25, r26
1: sbrs r23, 7
rjmp 2f
com r22
com r23
adc r22, r26
adc r23, r26
2: mul r22, r22
movw r18, r0
mul r23, r23
movw r20, r0
mul r22, r23
add r19, r0
adc r20, r1
adc r21, r26
add r19, r0
adc r20, r1
adc r21, r26
mul r24, r24
movw r30, r0
mul r25, r25
add r18, r30
adc r19, r31
adc r20, r0
adc r21, r1
mul r24, r25
add r19, r0
adc r20, r1
adc r21, r26
add r19, r0
adc r20, r1
adc r21, r26
movw r24, r20
movw r22, r18
clr r1
rjmp isqrt32
.endfunc
 
 
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/isqrt.h
0,0 → 1,11
#ifndef _ISQRT_H
#define _ISQRT_H
 
#include <inttypes.h>
 
// coded in assembler file
extern uint16_t isqrt32(uint32_t n);
extern uint8_t isqrt16(uint16_t n);
extern uint16_t ihypot(int16_t x, int16_t y);
 
#endif // _ISQRT_H
/branches/V2.08a_Rens_Testversion/FlightCtrl/jeti_ex.c
0,0 → 1,144
#include "libfc.h"
#include "printf_P.h"
#include "main.h"
#include "spi.h"
#include "capacity.h"
#include "jeti_ex.h"
#include "hottmenu.h"
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
 
const char PROGMEM JETI_CODE[53] =
{
0, // 0
'O', // SPEAK_ERR_CALIBARTION 1
'P', // SPEAK_ERR_RECEICER 2
'Q', // SPEAK_ERR_DATABUS 3
'R', // SPEAK_ERR_NAVI 4
'S', // SPEAK_ERROR 5
'T', // SPEAK_ERR_COMPASS 6
'S', // SPEAK_ERR_SENSOR 7
'V', // SPEAK_ERR_GPS 8
'W', // SPEAK_ERR_MOTOR 9
'H', // SPEAK_MAX_TEMPERAT 10
0, // SPEAK_ALTI_REACHED 11
'X', // SPEAK_WP_REACHED 12
'Y', // SPEAK_NEXT_WP 13
0, // SPEAK_LANDING 14
'Z', // SPEAK_GPS_FIX 15
'U', // SPEAK_UNDERVOLTAGE 16
'E', // SPEAK_GPS_HOLD 17
'F', // SPEAK_GPS_HOME 18
'G', // SPEAK_GPS_OFF 19
'H', // SPEAK_BEEP 20
'A', // SPEAK_MIKROKOPTER 21
0, // SPEAK_CAPACITY 22
'I', // SPEAK_CF_OFF 23
'B', // SPEAK_CALIBRATE 24
'J', // SPEAK_MAX_RANGE 25
'J', // SPEAK_MAX_ALTITUD 26
0, // 27
0, // 28
0, // 29
0, // 30
0, // 31
0, // 32
0, // 33
0, // 34
0, // 35
0, // 36
0, // 37
'D', // SPEAK_MK_OFF 38
'L', // SPEAK_ALTITUDE_ON 39
'M', // SPEAK_ALTITUDE_OFF 40
0, // 41
0, // 42
0, // 43
0, // 44
0, // 45
'N', // SPEAK_CF_ON 46
0, // SPEAK_SINKING 47
0, // SPEAK_RISING 48
0, // SPEAK_HOLDING 49
'K', // SPEAK_GPS_ON 50
0, // SPEAK_FOLLWING 51
'C' // SPEAK_STARTING 52
};
 
JetiExPacket_t JetiExData[JETI_EX_PARAMETER_COUNT + 1] = // Parameter count + DeviceName (ID0)
{
// Label[10] unit[3], data type, Data , position of decimal point
// "1234567890", "123",
// { "-=.M_K.=-" , " ", 1, 0 , 0 }, // first one is device name // datatype 1 = -8192...8192
{ "MK " , " ", 1, 0 , 0 }, // first one is device name // datatype 1 = -8192...8192
{ "Voltage " , "V ", 1, 0 , 1 }, // ID 1
{ "Current " , "A ", 1, 0 , 1 }, // ID 2
{ "Capacity " , "Ah ", 1, 0 , 2 }, // ID 3
{ "Altitude " , "m ", 1, 0 , 0 }, // ID 4
{ "Compass " , "° ", 1, 0 , 0 }, // ID 5
{ "Sats " , " ", 1, 0 , 0 }, // ID 6
{ "Speed " , "m/s", 1, 0 , 0 }, // ID 7
{ "Distance " , "m ", 1, 0 , 0 }, // ID 8
{ "Home-Dir " , "° ", 1, 0 , 0 }, // ID 9
{ "max.Temp. " , "°C ", 1, 0 , 0 }, // ID 10
{ "Magn.field" , "% ", 1, 0 , 0 }, // ID 11
{ "Vario " , " ", 1, 0 , 0 }, // ID 12
{ "ErrorCode " , " ", 1, 0 , 0 }, // ID 13
{ "Latitude " , " ", 9, 0 , 0 }, // ID 14 special data type for coordinates Import: fixed position in list ID 14 - DO NOT MOVE !!!
{ "Longitude " , " ", 9, 0 , 0 }, // ID 15 special data type for coordinates Import: fixed position in list ID 15 - DO NOT MOVE !!!
};
 
 
void BuildJeti_Vario(void)
{
signed int tmp = 0;
static signed int JetiVarioMeter = 0;
JetiVarioMeter = (JetiVarioMeter * 3 + VarioMeter) / 4;
 
if(VarioCharacter == '+')
{
tmp = (AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung) / 32 + 5;
}
else
if(VarioCharacter == '-')
{
tmp = (AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung) / 32 - 5;
}
else
if((VarioCharacter == ' ') && (FC_StatusFlags & FC_STATUS_FLY))
{
tmp = (JetiVarioMeter/32);
}
else
if(VarioCharacter == '^') tmp = FromNC_AltitudeSpeed;
else
if(VarioCharacter == 'v') tmp = tmp - FromNC_AltitudeSpeed;
 
JetiExData[12].Value = tmp;
}
 
 
// --------------------------------------------------------------------------------------------------
void JetiEX_Update(void)
{
 
GetHottestBl();
JetiExData[1].Value = UBat;
JetiExData[2].Value = Capacity.ActualCurrent;
JetiExData[3].Value = Capacity.UsedCapacity / 10;
JetiExData[4].Value = HoehenWert / 100;
JetiExData[5].Value = KompassValue;
JetiExData[6].Value = GPSInfo.NumOfSats;
JetiExData[7].Value = GPSInfo.Speed;
JetiExData[8].Value = GPSInfo.HomeDistance / 10;
JetiExData[9].Value = GPSInfo.HomeBearing;
JetiExData[10].Value = MaxBlTemperture;
JetiExData[11].Value = EarthMagneticField;
// JetiExData[12].Value = Vario; // wird in BuildJeti_Vario() gemacht
JetiExData[13].Value = NC_ErrorCode;
//JetiExData[14].Value = 53 * 0x10000 + 23467; // GPS-Latitude (macht NC_Fills_HoTT_Telemety() )
//JetiExData[15].Value = 7 * 0x10000 + 23467; // GPS-Longitude (macht NC_Fills_HoTT_Telemety() )
}
#endif
/branches/V2.08a_Rens_Testversion/FlightCtrl/jeti_ex.h
0,0 → 1,37
#ifndef _JETI_EX_H
#define _JETI_EX_H
 
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
extern void BuildJeti_Vario(void);
 
// define here how many Jeti EX parameters should be transmitted (max. = 15)
//
#define JETI_EX_PARAMETER_COUNT 15
//
// -------------------------------------------------------------------------
 
extern const char PROGMEM JETI_CODE[53];
typedef struct
{
char Label[10];
char Unit[3];
unsigned char DataType;
long Value;
unsigned char DecimalPointPos;
} JetiExPacket_t;
extern JetiExPacket_t JetiExData[];
extern void JetiEX_Update(void);
 
 
 
#if (JETI_EX_PARAMETER_COUNT > 15)
#error "ERROR: Too many Jeti EX parameters (max. allowed 15)"
#endif
 
#endif
#endif //_JETI_EX_H
/branches/V2.08a_Rens_Testversion/FlightCtrl/jetimenu.c
0,0 → 1,462
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software Nutzungsbedingungen (english version: see below)
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + der Fa. HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland - nachfolgend Lizenzgeber genannt -
// + Der Lizenzgeber räumt dem Kunden ein nicht-ausschließliches, zeitlich und räumlich* unbeschränktes Recht ein, die im den
// + Mikrocontroller verwendete Firmware für die Hardware Flight-Ctrl, Navi-Ctrl, BL-Ctrl, MK3Mag & PC-Programm MikroKopter-Tool
// + - nachfolgend Software genannt - nur für private Zwecke zu nutzen.
// + Der Einsatz dieser Software ist nur auf oder mit Produkten des Lizenzgebers zulässig.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die vom Lizenzgeber gelieferte Software ist urheberrechtlich geschützt. Alle Rechte an der Software sowie an sonstigen im
// + Rahmen der Vertragsanbahnung und Vertragsdurchführung überlassenen Unterlagen stehen im Verhältnis der Vertragspartner ausschließlich dem Lizenzgeber zu.
// + Die in der Software enthaltenen Copyright-Vermerke, Markenzeichen, andere Rechtsvorbehalte, Seriennummern sowie
// + sonstige der Programmidentifikation dienenden Merkmale dürfen vom Kunden nicht verändert oder unkenntlich gemacht werden.
// + Der Kunde trifft angemessene Vorkehrungen für den sicheren Einsatz der Software. Er wird die Software gründlich auf deren
// + Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Die Haftung des Lizenzgebers wird - soweit gesetzlich zulässig - begrenzt in Höhe des typischen und vorhersehbaren
// + Schadens. Die gesetzliche Haftung bei Personenschäden und nach dem Produkthaftungsgesetz bleibt unberührt. Dem Lizenzgeber steht jedoch der Einwand
// + des Mitverschuldens offen.
// + Der Kunde trifft angemessene Vorkehrungen für den Fall, dass die Software ganz oder teilweise nicht ordnungsgemäß arbeitet.
// + Er wird die Software gründlich auf deren Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Der Kunde wird er seine Daten vor Einsatz der Software nach dem Stand der Technik sichern.
// + Der Kunde ist darüber unterrichtet, dass der Lizenzgeber seine Daten im zur Vertragsdurchführung erforderlichen Umfang
// + und auf Grundlage der Datenschutzvorschriften erhebt, speichert, verarbeitet und, sofern notwendig, an Dritte übermittelt.
// + *) Die räumliche Nutzung bezieht sich nur auf den Einsatzort, nicht auf die Reichweite der programmierten Software.
// + #### ENDE DER NUTZUNGSBEDINGUNGEN ####'
// + Hinweis: Informationen über erweiterte Nutzungsrechte (wie z.B. Nutzung für nicht-private Zwecke) sind auf Anfrage per Email an info(@)hisystems.de verfügbar.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software LICENSING TERMS
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + of HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland, Germany - the Licensor -
// + The Licensor grants the customer a non-exclusive license to use the microcontroller firmware of the Flight-Ctrl, Navi-Ctrl, BL-Ctrl, and MK3Mag hardware
// + (the Software) exclusively for private purposes. The License is unrestricted with respect to time and territory*.
// + The Software may only be used with the Licensor's products.
// + The Software provided by the Licensor is protected by copyright. With respect to the relationship between the parties to this
// + agreement, all rights pertaining to the Software and other documents provided during the preparation and execution of this
// + agreement shall be the property of the Licensor.
// + The information contained in the Software copyright notices, trademarks, other legal reservations, serial numbers and other
// + features that can be used to identify the program may not be altered or defaced by the customer.
// + The customer shall be responsible for taking reasonable precautions
// + for the safe use of the Software. The customer shall test the Software thoroughly regarding its suitability for the
// + intended purpose before implementing it for actual operation. The Licensor's liability shall be limited to the extent of typical and
// + foreseeable damage to the extent permitted by law, notwithstanding statutory liability for bodily injury and product
// + liability. However, the Licensor shall be entitled to the defense of contributory negligence.
// + The customer will take adequate precautions in the case, that the software is not working properly. The customer will test
// + the software for his purpose before any operational usage. The customer will backup his data before using the software.
// + The customer understands that the Licensor collects, stores and processes, and, where required, forwards, customer data
// + to third parties to the extent necessary for executing the agreement, subject to applicable data protection and privacy regulations.
// + *) The territory aspect only refers to the place where the Software is used, not its programmed range.
// + #### END OF LICENSING TERMS ####
// + Note: For information on license extensions (e.g. commercial use), please contact us at info(@)hisystems.de.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "jetimenu.h"
#include "libfc.h"
#include "printf_P.h"
#include "main.h"
#include "spi.h"
#include "capacity.h"
#include "hottmenu.h"
 
#define JETIBOX_KEY_RIGHT 0x1F
#define JETIBOX_KEY_UP 0x2F
#define JETIBOX_KEY_DOWN 0x4F
#define JETIBOX_KEY_LEFT 0x8F
#define JETIBOX_KEY_NONE 0x0F
#define JETIBOX_KEY_UNDEF 0x00
 
#define JetiBox_printfxy(x,y,format, args...) { LIBFC_JetiBox_SetPos(y * 16 + x); _printf_P(&LIBFC_JetiBox_Putchar, PSTR(format) , ## args);}
#define JetiBox_printf(format, args...) { _printf_P(&LIBFC_JetiBox_Putchar, PSTR(format) , ## args);}
 
// -----------------------------------------------------------
// the menu functions
// -----------------------------------------------------------
void Menu_Status(uint8_t key)
{ //0123456789ABCDEF
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
JetiBox_printfxy(0,0,"%2i.%1iV",UBat/10, UBat%10);
if(NaviDataOkay)
{
JetiBox_printfxy(6,0,"%3d%c %3dm%c",CompassCorrected, 0xDF, GPSInfo.HomeDistance/10,NC_GPS_ModeCharacter);
}
else
{
JetiBox_printfxy(6,0,"Status ");
}
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(NC_ErrorCode)
{
static unsigned int timer;
static char toggle = 1;
if(CheckDelay(timer)) { if(toggle) toggle = 0; else toggle = 1; timer = SetDelay(1500);};
if(toggle)
{
LIBFC_JetiBox_SetPos(0);
_printf_P(&LIBFC_JetiBox_Putchar, NC_ERROR_TEXT[NC_ErrorCode] , 0);
}
else
{
JetiBox_printfxy(6,0,"ERROR: %2d ",NC_ErrorCode);
// if(MotorenEin) JetiBeep = 'O';
}
}
else
if(NC_To_FC_Flags & NC_TO_FC_SIMULATION_ACTIVE)
{
JetiBox_printfxy(6,0,"SIMULATION");
}
else
if(ShowSettingNameTime)
{
LIBFC_JetiBox_Clear();
JetiBox_printfxy(0,0,"Set%d:%s",ActiveParamSet,EE_Parameter.Name);
if(FC_StatusFlags3 & FC_STATUS3_BOAT) JetiBox_printfxy(0,1,"(Boat-Mode)");
return; // nichts weiter ausgeben
}
 
#else
if(NC_ErrorCode) { JetiBox_printfxy(6,0,"ERROR: %2d ",NC_ErrorCode); if(MotorenEin) JetiBeep = 'S';};
#endif
JetiBox_printfxy(0,1,"%4i %2i:%02i",Capacity.UsedCapacity,FlugSekunden/60,FlugSekunden%60);
if(Parameter_GlobalConfig & CFG_HOEHENREGELUNG)
{
JetiBox_printfxy(10,1,"%4im%c", (int16_t)(HoehenWert/100),VarioCharacter);
}
if(FC_StatusFlags3 & FC_STATUS3_REDUNDANCE) JetiBox_printfxy(10,1,"R");
 
#endif
}
 
 
void Menu_Temperature(uint8_t key)
{ //0123456789ABCDEF
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
JetiBox_printfxy(0,0,"%3i %3i %3i %3i", Motor[0].Temperature, Motor[1].Temperature, Motor[2].Temperature, Motor[3].Temperature);
JetiBox_printfxy(0,1,"%3i %3i %3i %3i", Motor[4].Temperature, Motor[5].Temperature, Motor[6].Temperature, Motor[7].Temperature);
if(RequiredMotors <= 4)
{
JetiBox_printfxy(0,1,"Temperatures ");
}
else
if(RequiredMotors <= 6)
{
JetiBox_printfxy(8,1,"\%cC ",0xdf);
}
 
#endif
}
 
void Menu_Battery(uint8_t key)
{ //0123456789ABCDEF
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
JetiBox_printfxy(0,0,"%2i.%1iV %3i.%1iA", UBat/10, UBat%10, Capacity.ActualCurrent/10, Capacity.ActualCurrent%10);
JetiBox_printfxy(0,1,"%4iW %6imAh",Capacity.ActualPower, Capacity.UsedCapacity);
#endif
}
 
void Magnet_Values(uint8_t key)
{ //0123456789ABCDEF
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
JetiBox_printfxy(0,0,"Magnet:%3i%% %3i%c",EarthMagneticField, KompassValue,0xDF);
JetiBox_printfxy(0,1,"Incli.:%3i%c (%i) ",EarthMagneticInclination, 0xDF,EarthMagneticInclinationTheoretic);
#endif
}
 
 
void Menu_WPL_A1(uint8_t key)
{ //0123456789ABCDEF
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
JetiBox_printfxy(0,0,"Load Waypoints");
JetiBox_printfxy(0,1,"(Fixed) ");
#endif
}
 
void Menu_WPL_R1(uint8_t key)
{ //0123456789ABCDEF
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
JetiBox_printfxy(0,0,"Load Waypoints");
JetiBox_printfxy(0,1,"(Relative) ");
#endif
}
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
void Menu_POINT_LD(uint8_t key)
{ //0123456789ABCDEF
JetiBox_printfxy(0,0,"Load singl.Point");
// JetiBox_printfxy(0,1,"(Fixed) ");
}
#endif
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
void Menu_POINT_SV(uint8_t key)
{ //0123456789ABCDEF
JetiBox_printfxy(0,0,"Save singl.Point");
// JetiBox_printfxy(0,1,"(Relative) ");
}
#endif
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
void Menu_POINT_SV2(uint8_t key)
{ //0123456789ABCDEF
static unsigned char load_waypoint_tmp = 1, changed;
 
// if(WPL_Name[0] == 0) JetiBox_printfxy(0,0,"Relative WPs ")
// else JetiBox_printfxy(0,0,"Rel:%s",WPL_Name);
JetiBox_printfxy(0,0,"Save Point:");
if(NaviData_MaxWpListIndex == 0) JetiBox_printfxy(0,1,"no SD-Card")
else
if(GPSInfo.SatFix != SATFIX_3D) JetiBox_printfxy(0,1,"no GPS-Fix")
else
{
JetiBox_printfxy(11,0,"%2d",load_waypoint_tmp);
 
// if(NaviData_WaypointNumber) JetiBox_printfxy(8,1,"%2d/%d ",NaviData_WaypointIndex,NaviData_WaypointNumber)
// else JetiBox_printfxy(8,1,"--/--")
JetiBox_printfxy(0,1,"Dir:%3d Alt:%3dm",CompassCorrected,(int16_t)(HoehenWert/100))
 
if(changed) JetiBox_printfxy(14,0,"->")
else JetiBox_printfxy(14,0," ");
 
if(key == JETIBOX_KEY_UP && load_waypoint_tmp < NaviData_MaxWpListIndex) { load_waypoint_tmp++; changed = 1;}
if(key == JETIBOX_KEY_DOWN && load_waypoint_tmp > 1) { load_waypoint_tmp--; changed = 1; }
 
if(key == JETIBOX_KEY_RIGHT && load_waypoint_tmp)
{
ToNC_Store_SingePoint = load_waypoint_tmp;
changed = 0;
}
}
}
#endif
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
void Menu_POINT_LD2(uint8_t key)
{ //0123456789ABCDEF
static unsigned char load_waypoint_tmp = 1, changed;
// if(WPL_Name[0] == 0) JetiBox_printfxy(0,0,"FIX Waypoints")
// else JetiBox_printfxy(0,0,"FIX:%s",WPL_Name);
JetiBox_printfxy(0,0,"Load Point")
 
if(NaviData_MaxWpListIndex == 0) JetiBox_printfxy(0,1,"no SD-Card")
else
{
JetiBox_printfxy(11,0,"%2d",load_waypoint_tmp);
 
if(NaviData_WaypointNumber) JetiBox_printfxy(0,1,"Dist:%3d Alt:%3d ",NaviData_TargetDistance,(int16_t)(FromNC_AltitudeSetpoint/100))
else JetiBox_printfxy(8,1," ");
if(changed) JetiBox_printfxy(14,0,"->")
else JetiBox_printfxy(14,0," ");
 
if(key == JETIBOX_KEY_UP && load_waypoint_tmp < NaviData_MaxWpListIndex) { load_waypoint_tmp++; changed = 1;}
if(key == JETIBOX_KEY_DOWN && load_waypoint_tmp > 1) { load_waypoint_tmp--; changed = 1; }
 
if(key == JETIBOX_KEY_RIGHT && load_waypoint_tmp)
{
ToNC_Load_SingePoint = load_waypoint_tmp;
changed = 0;
}
}
}
#endif
 
 
void Menu_WPL_A2(uint8_t key)
{ //0123456789ABCDEF
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
static unsigned char load_waypoint_tmp = 1, changed;
if(WPL_Name[0] == 0) JetiBox_printfxy(0,0,"FIX Waypoints")
else JetiBox_printfxy(0,0,"FIX:%s",WPL_Name);
 
if(NaviData_MaxWpListIndex == 0) JetiBox_printfxy(0,1,"no SD-Card")
else
{
JetiBox_printfxy(0,1,"#%2d WP:",load_waypoint_tmp);
if(NaviData_WaypointNumber) JetiBox_printfxy(8,1,"%2d/%d ",NaviData_WaypointIndex,NaviData_WaypointNumber)
else JetiBox_printfxy(8,1,"--/--")
if(changed) JetiBox_printfxy(14,1,"->")
else JetiBox_printfxy(14,1," ");
 
if(key == JETIBOX_KEY_UP && load_waypoint_tmp < NaviData_MaxWpListIndex) { load_waypoint_tmp++; changed = 1;}
if(key == JETIBOX_KEY_DOWN && load_waypoint_tmp > 1) { load_waypoint_tmp--; changed = 1; }
 
if(key == JETIBOX_KEY_RIGHT && load_waypoint_tmp)
{
ToNC_Load_WP_List = load_waypoint_tmp;
changed = 0;
}
}
#endif
}
 
void Menu_WPL_R2(uint8_t key)
{ //0123456789ABCDEF
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
static unsigned char load_waypoint_tmp = 1, changed;
 
if(WPL_Name[0] == 0) JetiBox_printfxy(0,0,"Relative WPs ")
else JetiBox_printfxy(0,0,"Rel:%s",WPL_Name);
 
if(NaviData_MaxWpListIndex == 0) JetiBox_printfxy(0,1,"no SD-Card")
else
if(GPSInfo.SatFix != SATFIX_3D) JetiBox_printfxy(0,1,"no GPS-Fix")
else
{
JetiBox_printfxy(0,1,"#%2d WPs:",load_waypoint_tmp);
if(NaviData_WaypointNumber) JetiBox_printfxy(8,1,"%2d/%d ",NaviData_WaypointIndex,NaviData_WaypointNumber)
else JetiBox_printfxy(8,1,"--/--")
 
if(changed) JetiBox_printfxy(14,1,"->")
else JetiBox_printfxy(14,1," ");
 
if(key == JETIBOX_KEY_UP && load_waypoint_tmp < NaviData_MaxWpListIndex) { load_waypoint_tmp++; changed = 1;}
if(key == JETIBOX_KEY_DOWN && load_waypoint_tmp > 1) { load_waypoint_tmp--; changed = 1; }
 
if(key == JETIBOX_KEY_RIGHT && load_waypoint_tmp)
{
ToNC_Load_WP_List = load_waypoint_tmp | 0x80;
changed = 0;
}
}
#endif
}
 
 
 
void Menu_PosInfo(uint8_t key)
{
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
if(NaviDataOkay)
{
JetiBox_printfxy(0,0,"%2um/s Sat:%d ",GPSInfo.Speed,GPSInfo.NumOfSats);
switch (GPSInfo.SatFix)
{
case SATFIX_3D:
JetiBox_printfxy(12,0," 3D");
break;
// case SATFIX_2D:
// case SATFIX_NONE:
default:
JetiBox_printfxy(12,0,"NoFx");
break;
}
if(GPSInfo.Flags & FLAG_DIFFSOLN)
{
JetiBox_printfxy(12,0,"DGPS");
}
JetiBox_printfxy(0,1,"Home:%3dm %3d%c %c", GPSInfo.HomeDistance/10, GPSInfo.HomeBearing, 0xDF,NC_GPS_ModeCharacter);
}
else
{ //0123456789ABCDEF
JetiBox_printfxy(2,0,"No NaviCtrl!");
}
#endif
}
 
 
// -----------------------------------------------------------
// the menu topology
// -----------------------------------------------------------
typedef void (*pFctMenu) (uint8_t); // the menu item handler function pointer
 
typedef struct{
int8_t left;
int8_t right;
int8_t up;
int8_t down;
pFctMenu pHandler;
} MENU_ENTRY;
 
 
// the menu navigation structure
/* |
3 - 0 - 1 - 2 - 3 - 0
*/
 
const MENU_ENTRY JetiBox_Menu[] PROGMEM=
{ // l r u d pHandler
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
{8, 1, 0, 0, &Menu_Status }, // 0
{0, 2, 1, 1, &Menu_Temperature }, // 1
{1, 3, 2, 2, &Menu_Battery }, // 2
{2, 4, 3, 3, &Menu_PosInfo }, // 3
{3, 5, 4, 9, &Menu_WPL_A1 }, // 4
{4, 6, 5,10, &Menu_WPL_R1 }, // 5
{5, 7, 6,11, &Menu_POINT_LD}, // 6
{6, 8, 7,12, &Menu_POINT_SV}, // 7
{7, 0, 8, 6, &Magnet_Values }, // 8
 
{4, 9, 9, 9, &Menu_WPL_A2 }, // 9
{5,10,10,10, &Menu_WPL_R2 }, // 10
{6,11,11,11, &Menu_POINT_LD2}, // 11
{7,12,12,12, &Menu_POINT_SV2}, // 12
#else
{6, 1, 0, 0, &Menu_Status }, // 0
{0, 2, 1, 1, &Menu_Temperature }, // 1
{1, 3, 2, 2, &Menu_Battery }, // 2
{2, 4, 3, 3, &Menu_PosInfo }, // 3
{3, 5, 7, 7, &Menu_WPL_A1 }, // 4
{4, 6, 8, 8, &Menu_WPL_R1 }, // 5
{5, 0, 6, 6, &Magnet_Values }, // 6
 
{4, 7, 7, 7, &Menu_WPL_A2 }, // 7
{5, 8, 8, 8, &Menu_WPL_R2 }, // 8
#endif
#endif
};
 
// -----------------------------------------------------------
// Update display buffer
// -----------------------------------------------------------
unsigned char JetiBox_Update(unsigned char key)
{
#if !defined (RECEIVER_SPEKTRUM_DX7EXP) && !defined (RECEIVER_SPEKTRUM_DX8EXP)
static uint8_t item = 0, last_item = 0; // the menu item
static uint8_t updateDelay = 1 , last_key;
 
// navigate within the menu by key action
last_item = item;
switch(key)
{
case JETIBOX_KEY_LEFT:
//if (item == 0) return (1); // switch back to jeti expander menu
// else
item = pgm_read_byte(&JetiBox_Menu[item].left); //trigger to left menu item
break;
case JETIBOX_KEY_RIGHT:
item = pgm_read_byte(&JetiBox_Menu[item].right); //trigger to right menu item
break;
case JETIBOX_KEY_UP:
item = pgm_read_byte(&JetiBox_Menu[item].up); //trigger to up menu item
break;
case JETIBOX_KEY_DOWN:
item = pgm_read_byte(&JetiBox_Menu[item].down); //trigger to down menu item
break;
default:
break;
}
// if the menu item has been changed, do not pass the key to the item handler
// to avoid jumping over to items
if(item != last_item) key = JETIBOX_KEY_UNDEF;
 
// if((updateDelay++ & 0x01) || (key != last_key))
if((updateDelay++ & 0x01) || (key != JETIBOX_KEY_NONE))
{
last_key = key;
LIBFC_JetiBox_Clear();
//execute menu item handler
((pFctMenu)(pgm_read_word(&(JetiBox_Menu[item].pHandler))))(key);
}
#endif
return (0);
}
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/jetimenu.h
0,0 → 1,6
#ifndef _JETIMENU_H
#define _JETIMENU_H
 
extern unsigned char JetiBox_Update(unsigned char key);
 
#endif //_JETIMENU_H
/branches/V2.08a_Rens_Testversion/FlightCtrl/led.c
0,0 → 1,132
#include <inttypes.h>
#include "main.h"
 
uint16_t LED1_Timing = 0;
uint16_t LED2_Timing = 0;
unsigned char J16Blinkcount = 0, J16Mask = 1;
unsigned char J17Blinkcount = 0, J17Mask = 1;
unsigned char NC_Wait_for_LED = 0; // signal to NC: Wait for the LAD PAtter before switching to the next WP
 
// initializes the LED control outputs J16, J17
void LED_Init(void)
{
// set PC2 & PC3 as output (control of J16 & J17)
DDRC |= (1<<DDRC2)|(1<<DDRC3);
J16_OFF;
J17_OFF;
J16Blinkcount = 0; J16Mask = 128;
J17Blinkcount = 0; J17Mask = 128;
}
 
// called in UpdateMotors() every 2ms
void LED_Update(void)
{
static char delay = 0;
static unsigned char J16Bitmask = 0;
static unsigned char J17Bitmask = 0;
static unsigned char J16Warn = 0, J17Warn = 0;
static unsigned char from_nc = 0; // Copy for the timing
 
if(FromNC_WP_EventChannel_New) from_nc = FromNC_WP_EventChannel_New;
if(!delay--) // 20ms Intervall
{
J16Bitmask = EE_Parameter.J16Bitmask;
J17Bitmask = EE_Parameter.J17Bitmask;
delay = 9;
if(FC_StatusFlags & (FC_STATUS_LOWBAT | FC_STATUS_EMERGENCY_LANDING) || (VersionInfo.HardwareError[1] & FC_ERROR1_I2C))
{
if(EE_Parameter.WARN_J16_Bitmask)
{
if(!J16Warn) J16Blinkcount = 4;
J16Warn = 1;
}
if(EE_Parameter.WARN_J17_Bitmask)
{
if(!J17Warn) J17Blinkcount = 4;
J17Warn = 1;
}
}
else
{
J16Warn = 0;
J17Warn = 0;
}
//DebugOut.Analog[29] = EE_Parameter.GlobalConfig3;
// Output 1
if(!J16Warn)
{
if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK1) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED1) J16_ON; else J16_OFF;}
else
if((EE_Parameter.J16Timing > 247) && (Parameter_J16Timing > 220)) {if(J16Bitmask & 128) J16_OFF; else J16_ON; J16Mask = 1; NC_Wait_for_LED = 0;} // Manual overwrite
else
if((EE_Parameter.J16Timing > 247) && (Parameter_J16Timing == 5)) {if(J16Bitmask & 128) J16_ON; else J16_OFF; J16Mask = 1; NC_Wait_for_LED = 0;} // Manual overwrite
else
if(!J16Blinkcount--)
{
if(EE_Parameter.GlobalConfig3 & CFG3_USE_NC_FOR_OUT1)
{
J16Blinkcount = from_nc / 2;
if(!from_nc) { NC_Wait_for_LED = 0; if(J16Bitmask & 128) J16_ON; else J16_OFF; J16Mask = 0; } // Ausschalten
else
{
NC_Wait_for_LED = 1;
if(J16Mask == 0)
{
from_nc = FromNC_WP_EventChannel_New;
FromNC_WP_EventChannel_New = 0;
J16Mask = 64;
if(J16Bitmask & 128) J16_ON; else J16_OFF; // Ausschalten
}
else
{
if(J16Mask & J16Bitmask) J16_ON; else J16_OFF;
J16Mask /= 2;
}
}
}
else
{
J16Blinkcount = Parameter_J16Timing / 2;
if(J16Mask == 1) { from_nc = 0; J16Mask = 64; } else J16Mask /= 2;
if(J16Mask & J16Bitmask) J16_ON; else J16_OFF;
NC_Wait_for_LED = 0;
}
}
}
else // warning case
if(!J16Blinkcount--)
{
J16Blinkcount = 10-1;
if(J16Mask == 1) J16Mask = 128; else J16Mask /= 2;
if(J16Mask & EE_Parameter.WARN_J16_Bitmask) J16_ON; else J16_OFF;
}
// Output 2
 
if(!J17Warn)
{
if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK2) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED2) J17_ON; else J17_OFF;}
else
if((EE_Parameter.J17Timing > 247) && (Parameter_J17Timing > 220)) {if(J17Bitmask & 128) J17_OFF; else J17_ON; J17Mask = 1;}
else
if((EE_Parameter.J17Timing > 247) && (Parameter_J17Timing == 5)) {if(J17Bitmask & 128) J17_ON; else J17_OFF; J17Mask = 1;}
else
if(!J17Blinkcount--)
{
J17Blinkcount = Parameter_J17Timing / 2;
if(J17Mask == 1) J17Mask = 64; else J17Mask /= 2;
if(J17Mask & J17Bitmask) J17_ON; else J17_OFF;
}
}
else // warning case
if(!J17Blinkcount--)
{
J17Blinkcount = 10-1;
if(J17Mask == 1) J17Mask = 128; else J17Mask /= 2;
if(J17Mask & EE_Parameter.WARN_J17_Bitmask) J17_ON; else J17_OFF;
}
 
if(PORTC & (1<<PORTC2)) FC_StatusFlags2 |= FC_STATUS2_OUT1_ACTIVE; //else FC_StatusFlags2 &= ~FC_STATUS2_OUT1_ACTIVE; // Out1 (J16) -> wird in der SPI zurück gesetzt
if(PORTC & (1<<PORTC3)) FC_StatusFlags2 |= FC_STATUS2_OUT2_ACTIVE; else FC_StatusFlags2 &= ~FC_STATUS2_OUT2_ACTIVE; // Out2 (J17)
}
}
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/led.h
0,0 → 1,13
#include <avr/io.h>
 
#define J16_ON PORTC |= (1<<PORTC2)
#define J16_OFF PORTC &= ~(1<<PORTC2)
#define J16_TOGGLE PORTC ^= (1<<PORTC2)
#define J17_ON PORTC |= (1<<PORTC3)
#define J17_OFF PORTC &= ~(1<<PORTC3)
#define J17_TOGGLE PORTC ^= (1<<PORTC3)
 
extern void LED_Init(void);
extern void LED_Update(void);
extern unsigned char NC_Wait_for_LED;
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/libfc.h
0,0 → 1,24
#ifndef _LIBFC_H
#define _LIBFC_H
 
#define CPU_UNKNOWN 0
#define CPU_ATMEGA644 1
#define CPU_ATMEGA644P 2
#define CPU_ATMEGA1284 3
#define CPU_ATMEGA1284P 4
 
extern void LIBFC_Init(unsigned char);
extern void LIBFC_Polling(void);
extern void LIBFC_ReceiverInit(unsigned char rtype);
 
extern void LIBFC_JetiBox_Putchar(char c);
extern void LIBFC_JetiBox_SetPos(unsigned char index);
extern void LIBFC_JetiBox_Clear(void);
extern void LIBFC_CheckSettings(void);
extern unsigned char LIBFC_GetCPUType(void);
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
extern long ACC_AltitudeFusion(unsigned char init);
#endif
 
#endif //_LIBFC_H
/branches/V2.08a_Rens_Testversion/FlightCtrl/main.c
0,0 → 1,530
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software Nutzungsbedingungen (english version: see below)
// + der Fa. HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland - nachfolgend Lizenzgeber genannt -
// + Der Lizenzgeber räumt dem Kunden ein nicht-ausschließliches, zeitlich und räumlich* unbeschränktes Recht ein, die im den
// + Mikrocontroller verwendete Firmware für die Hardware Flight-Ctrl, Navi-Ctrl, BL-Ctrl, MK3Mag & PC-Programm MikroKopter-Tool
// + - nachfolgend Software genannt - nur für private Zwecke zu nutzen.
// + Der Einsatz dieser Software ist nur auf oder mit Produkten des Lizenzgebers zulässig.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die vom Lizenzgeber gelieferte Software ist urheberrechtlich geschützt. Alle Rechte an der Software sowie an sonstigen im
// + Rahmen der Vertragsanbahnung und Vertragsdurchführung überlassenen Unterlagen stehen im Verhältnis der Vertragspartner ausschließlich dem Lizenzgeber zu.
// + Die in der Software enthaltenen Copyright-Vermerke, Markenzeichen, andere Rechtsvorbehalte, Seriennummern sowie
// + sonstige der Programmidentifikation dienenden Merkmale dürfen vom Kunden nicht verändert oder unkenntlich gemacht werden.
// + Der Kunde trifft angemessene Vorkehrungen für den sicheren Einsatz der Software. Er wird die Software gründlich auf deren
// + Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Die Haftung des Lizenzgebers wird - soweit gesetzlich zulässig - begrenzt in Höhe des typischen und vorhersehbaren
// + Schadens. Die gesetzliche Haftung bei Personenschäden und nach dem Produkthaftungsgesetz bleibt unberührt. Dem Lizenzgeber steht jedoch der Einwand
// + des Mitverschuldens offen.
// + Der Kunde trifft angemessene Vorkehrungen für den Fall, dass die Software ganz oder teilweise nicht ordnungsgemäß arbeitet.
// + Er wird die Software gründlich auf deren Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Der Kunde wird er seine Daten vor Einsatz der Software nach dem Stand der Technik sichern.
// + Der Kunde ist darüber unterrichtet, dass der Lizenzgeber seine Daten im zur Vertragsdurchführung erforderlichen Umfang
// + und auf Grundlage der Datenschutzvorschriften erhebt, speichert, verarbeitet und, sofern notwendig, an Dritte übermittelt.
// + *) Die räumliche Nutzung bezieht sich nur auf den Einsatzort, nicht auf die Reichweite der programmierten Software.
// + #### ENDE DER NUTZUNGSBEDINGUNGEN ####'
// + Hinweis: Informationen über erweiterte Nutzungsrechte (wie z.B. Nutzung für nicht-private Zwecke) sind auf Anfrage per Email an info(@)hisystems.de verfügbar.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software LICENSING TERMS
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + of HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland, Germany - the Licensor -
// + The Licensor grants the customer a non-exclusive license to use the microcontroller firmware of the Flight-Ctrl, Navi-Ctrl, BL-Ctrl, and MK3Mag hardware
// + (the Software) exclusively for private purposes. The License is unrestricted with respect to time and territory*.
// + The Software may only be used with the Licensor's products.
// + The Software provided by the Licensor is protected by copyright. With respect to the relationship between the parties to this
// + agreement, all rights pertaining to the Software and other documents provided during the preparation and execution of this
// + agreement shall be the property of the Licensor.
// + The information contained in the Software copyright notices, trademarks, other legal reservations, serial numbers and other
// + features that can be used to identify the program may not be altered or defaced by the customer.
// + The customer shall be responsible for taking reasonable precautions
// + for the safe use of the Software. The customer shall test the Software thoroughly regarding its suitability for the
// + intended purpose before implementing it for actual operation. The Licensor's liability shall be limited to the extent of typical and
// + foreseeable damage to the extent permitted by law, notwithstanding statutory liability for bodily injury and product
// + liability. However, the Licensor shall be entitled to the defense of contributory negligence.
// + The customer will take adequate precautions in the case, that the software is not working properly. The customer will test
// + the software for his purpose before any operational usage. The customer will backup his data before using the software.
// + The customer understands that the Licensor collects, stores and processes, and, where required, forwards, customer data
// + to third parties to the extent necessary for executing the agreement, subject to applicable data protection and privacy regulations.
// + *) The territory aspect only refers to the place where the Software is used, not its programmed range.
// + #### END OF LICENSING TERMS ####
// + Note: For information on license extensions (e.g. commercial use), please contact us at info(@)hisystems.de.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "main.h"
unsigned char DisableRcOffBeeping = 0;
unsigned char PlatinenVersion = 10;
unsigned char BattLowVoltageWarning = 94;
unsigned char BattAutoLandingVoltage = 0, BattComingHomeVoltage = 0;
unsigned int FlugMinuten = 0,FlugMinutenGesamt = 0;
unsigned int FlugSekunden = 0;
pVoidFnct_pVoidFnctChar_const_fmt _printf_P;
unsigned char FoundMotors = 0;
unsigned char JetiBeep = 0; // to allow any Morse-Beeping of the Jeti-Box
unsigned char ActiveParamSet = 3;
unsigned char LipoCells = 4;
 
void PrintLine(void)
{
printf("\n\r===================================");
}
 
 
void CalMk3Mag(void)
{
static unsigned char stick = 1;
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -20) stick = 0;
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) && !stick)
{
stick = 1;
WinkelOut.CalcState++;
if(WinkelOut.CalcState > 4)
{
// WinkelOut.CalcState = 0; // in Uart.c
beeptime = 1000;
}
else Piep(WinkelOut.CalcState,150);
}
}
 
 
void LipoDetection(unsigned char print)
{
#define MAX_CELL_VOLTAGE 43 // max cell voltage for LiPO
if(print)
{
printf("\n\rBatt:");
LipoCells = 1 + UBat / MAX_CELL_VOLTAGE;
if(LipoCells > 6) LipoCells = 6;
}
 
if(EE_Parameter.UnterspannungsWarnung < 50)
{
BattLowVoltageWarning = LipoCells * EE_Parameter.UnterspannungsWarnung;
if(print)
{
Piep(LipoCells, 200);
printf(" %d Cells ", LipoCells);
}
}
else BattLowVoltageWarning = EE_Parameter.UnterspannungsWarnung;
 
// automatische Zellenerkennung
if(EE_Parameter.AutoLandingVoltage < 50) BattAutoLandingVoltage = LipoCells * EE_Parameter.AutoLandingVoltage; else BattAutoLandingVoltage = EE_Parameter.AutoLandingVoltage;
if(EE_Parameter.ComingHomeVoltage < 50) BattComingHomeVoltage = LipoCells * EE_Parameter.ComingHomeVoltage; else BattComingHomeVoltage = EE_Parameter.ComingHomeVoltage;
 
if(BattAutoLandingVoltage > BattLowVoltageWarning) BattAutoLandingVoltage = BattLowVoltageWarning - 1;
if(BattComingHomeVoltage >= BattLowVoltageWarning) BattComingHomeVoltage = BattLowVoltageWarning - 1;
if(BattAutoLandingVoltage >= BattComingHomeVoltage && EE_Parameter.ComingHomeVoltage) BattAutoLandingVoltage = BattComingHomeVoltage - 1;
if(print)
{
printf(" Low warning: %d.%dV",BattLowVoltageWarning/10,BattLowVoltageWarning%10);
if(BattComingHomeVoltage) printf(" Auto-CH: %d.%dV",BattComingHomeVoltage/10,BattComingHomeVoltage%10);
if(BattAutoLandingVoltage) printf(" Autolanding: %d.%dV",BattAutoLandingVoltage/10,BattAutoLandingVoltage%10);
}
 
}
 
//############################################################################
//Hauptprogramm
int main (void)
//############################################################################
{
unsigned int timer,i,timer2 = 0, timerPolling;
unsigned char update_spi = 1;
DDRB = 0x00;
PORTB = 0x00;
DDRD = 0x0A; // UART & J3 J4 J5
PORTD = 0x5F; // PPM-Input & UART
for(timer = 0; timer < 1000; timer++); // verzögern
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
unsigned char AccZ_ErrorCnt = 0;
if(PINB & 0x02)
{
if(PIND & 0x10) PlatinenVersion = 21; // No Bridge from J4 to GND
else { PlatinenVersion = 22; ACC_AltitudeControl = 1;};
}
else
{
PlatinenVersion = 25; ACC_AltitudeControl = 1;
}
#else
if(PINB & 0x01)
{
if(PINB & 0x02) PlatinenVersion = 13;
else PlatinenVersion = 11;
}
else
{
if(PINB & 0x02) PlatinenVersion = 20;
else
{
PlatinenVersion = 10;
DDRD = 0x3E; // Speaker & TXD & J3 J4 J5
PORTD = 0x47; //
}
}
#endif
 
DDRC = 0x81; // I2C, Spaker
DDRC |=0x40; // HEF4017 Reset
PORTC = 0xff; // Pullup SDA
DDRB = 0x1B; // LEDs und Druckoffset
PORTB = 0x01; // LED_Rot
 
HEF4017Reset_ON;
MCUSR &=~(1<<WDRF);
WDTCSR |= (1<<WDCE)|(1<<WDE);
WDTCSR = 0;
 
beeptime = 2500;
StickGier = 0; PPM_in[K_GAS] = 0; StickRoll = 0; StickNick = 0;
if(PlatinenVersion >= 20) GIER_GRAD_FAKTOR = 1220; else GIER_GRAD_FAKTOR = 1291; // unterschiedlich für ME und ENC
ROT_OFF;
GRN_ON;
 
Timer_Init();
TIMER2_Init();
UART_Init();
rc_sum_init();
ADC_Init();
I2C_Init(1);
SPI_MasterInit();
Capacity_Init();
LIBFC_Init(LIB_FC_COMPATIBLE);
GRN_ON;
sei();
ParamSet_Init();
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(PlatinenVersion < 20)
{
wdt_enable(WDTO_250MS); // Reset-Commando
while(1) printf("\n\rOld FC Hardware not supported by this Firmware!");
}
#ifndef REDUNDANT_FC_SLAVE
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Check connected BL-Ctrls
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Check connected BL-Ctrls
BLFlags |= BLFLAG_READ_VERSION;
motor_read = 0; // read the first I2C-Data
for(i=0; i < 500; i++)
{
SendMotorData();
timer = SetDelay(5);
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
}
printf("\n\rFound BL-Ctrl: ");
// timer = SetDelay(1000);
for(i=0; i < MAX_MOTORS; i++)
{
// SendMotorData();
// while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
if(Mixer.Motor[i][0] > 0) // wait max 4 sec for the BL-Ctrls to wake up
{
while(!CheckDelay(timer) && !(Motor[i].State & MOTOR_STATE_PRESENT_MASK) )
{
SendMotorData();
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
}
}
if(Motor[i].State & MOTOR_STATE_PRESENT_MASK)
{
unsigned char vers;
printf("%d",(i+1)%10);
FoundMotors++;
vers = Motor[i].VersionMajor * 100 + Motor[i].VersionMinor; // creates 104 from 1.04
if(vers && VersionInfo.BL_Firmware > vers) VersionInfo.BL_Firmware = vers;
// if(Motor[i].Version & MOTOR_STATE_FAST_MODE) printf("(fast)\n\r");
// else if(Motor[i].Version & MOTOR_STATE_NEW_PROTOCOL_MASK) printf("(new)\n\r");
// printf(":V%03d\n\r",vers);
}
}
for(i=0; i < MAX_MOTORS; i++)
{
if(!(Motor[i].State & MOTOR_STATE_PRESENT_MASK) && Mixer.Motor[i][0] > 0)
{
printf("\n\r\n\r!! MISSING BL-CTRL: %d !!",i+1);
ServoActive = 2; // just in case the FC would be used as camera-stabilizer
}
Motor[i].State &= ~MOTOR_STATE_ERROR_MASK; // clear error counter
}
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(VersionInfo.BL_Firmware != 255)
{
printf("\n\rBL-Firmware %d.%02d",VersionInfo.BL_Firmware/100,VersionInfo.BL_Firmware%100);
if(VersionInfo.BL_Firmware >= 100 && VersionInfo.BL_Firmware <= 102) printf("<-- warning old Version!");
}
#endif
 
PrintLine();// ("\n\r===================================");
if(RequiredMotors < FoundMotors) VersionInfo.HardwareError[1] |= FC_ERROR1_MIXER;
if(RequiredMotors > 8) Max_I2C_Packets = 8; else Max_I2C_Packets = RequiredMotors;
#else
printf("\n\r\n\r--> REDUNDANT SLAVE <---\n\r");
#endif
 
#ifdef REDUNDANT_FC_MASTER
printf("\n\r\n\r--> REDUNDANT MASTER <---\n\r");
#endif
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Calibrating altitude sensor
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)
{
printf("\n\rCalibrating pressure sensor..");
timer = SetDelay(1000);
SucheLuftruckOffset();
while (!CheckDelay(timer));
printf("OK\n\r");
}
 
#ifdef REDUNDANT_FC_SLAVE
VersionInfo.HardwareError[0] = 0;
VersionInfo.HardwareError[1] = 0;
#endif
 
SetNeutral(0);
 
ROT_OFF;
 
beeptime = 2000;
ExternControl.Digital[0] = 0x55;
 
 
FlugMinuten = (unsigned int)GetParamByte(PID_FLIGHT_MINUTES) * 256 + (unsigned int)GetParamByte(PID_FLIGHT_MINUTES + 1);
FlugMinutenGesamt = (unsigned int)GetParamByte(PID_FLIGHT_MINUTES_TOTAL) * 256 + (unsigned int)GetParamByte(PID_FLIGHT_MINUTES_TOTAL + 1);
 
if((FlugMinutenGesamt == 0xFFFF) || (FlugMinuten == 0xFFFF))
{
FlugMinuten = 0;
FlugMinutenGesamt = 0;
}
printf("\n\rFlight-time %u min Total:%u min", FlugMinuten, FlugMinutenGesamt);
LcdClear();
I2CTimeout = 5000;
WinkelOut.Orientation = 1;
LipoDetection(1);
LIBFC_ReceiverInit(EE_Parameter.Receiver);
PrintLine();// ("\n\r===================================");
//SpektrumBinding();
timer = SetDelay(2000);
timerPolling = SetDelay(250);
 
Debug(ANSI_CLEAR "FC-Start!\n\rFlugzeit: %d min", FlugMinutenGesamt); // Note: this won't waste flash memory, if #DEBUG is not active
//printf("\n\rEE_Parameter size:%i\n\r", PARAMSET_STRUCT_LEN);
 
DebugOut.Status[0] = 0x01 | 0x02;
JetiBeep = 0;
if(EE_Parameter.ExtraConfig & CFG_NO_RCOFF_BEEPING) DisableRcOffBeeping = 1;
ReadBlSize = 3; // don't read the version any more
#ifdef REDUNDANT_FC_SLAVE
timer = SetDelay(2500);
while(!CheckDelay(timer));
printf("\n\rStart\n\r");
#endif
while(1)
{
EEAR = EE_DUMMY; // Set the EEPROM Address pointer to an unused space
if(ReceiverUpdateModeActive) while (1) PORTC &= ~(1<<7); // Beeper off
if(UpdateMotor && AdReady) // ReglerIntervall
{
cli();
UpdateMotor--;
sei();
if(WinkelOut.CalcState) CalMk3Mag();
else MotorRegler();
SendMotorData();
ROT_OFF;
if(SenderOkay) { SenderOkay--; /*VersionInfo.HardwareError[1] &= ~FC_ERROR1_PPM;*/ }
else
{
TIMSK1 |= _BV(ICIE1); // enable PPM-Input
PPM_in[0] = 0; // set RSSI to zero on data timeout
VersionInfo.HardwareError[1] |= FC_ERROR1_PPM;
// Now clear the channel values - they would be wrong
PPM_diff[EE_Parameter.Kanalbelegung[K_NICK]] = 0;
PPM_diff[EE_Parameter.Kanalbelegung[K_ROLL]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] = 0;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 160 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 220) SenderOkay = 160;
//if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 101 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 1) SenderOkay = 101;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!--I2CTimeout || MissingMotor)
{
if(!I2CTimeout)
{
I2C_Reset();
I2CTimeout = 5;
DebugOut.Analog[28]++; // I2C-Error
VersionInfo.HardwareError[1] |= FC_ERROR1_I2C;
DebugOut.Status[1] |= 0x02; // BL-Error-Status
}
if((BeepMuster == 0xffff) && MotorenEin)
{
beeptime = 25000;
BeepMuster = 0x0080;
}
}
else
{
ROT_OFF;
}
LIBFC_Polling();
 
if(!UpdateMotor)
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(NewSBusData) ProcessSBus();
else
#endif
{
if(BytegapSPI == 0) SPI_TransmitByte();
if(CalculateServoSignals) CalculateServo();
DatenUebertragung();
BearbeiteRxDaten();
if(CheckDelay(timer))
{
static unsigned char second;
timer += 20; // 20 ms interval
CalcNickServoValue();
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(EE_Parameter.Receiver == RECEIVER_HOTT) HoTT_Menu();
else
if(EE_Parameter.Receiver == RECEIVER_JETI) BuildJeti_Vario();
// ++++++++++++++++++++++++++++
// + check the ACC-Z range
if(ACC_AltitudeControl && ((Aktuell_az < 300) || (DebugOut.Analog[7] < (128 * 4) && Aktuell_az > 850))) // DebugOut.Analog[7] = GasMischanteil
{
if(++AccZ_ErrorCnt > 50)
{
if(MotorenEin) VersionInfo.HardwareError[0] |= FC_ERROR0_ACC_TOP;
else CalibrationDone = 0;
}
}
else AccZ_ErrorCnt = 0;
// ++++++++++++++++++++++++++++
#endif
if(MissingMotor || Capacity.MinOfMaxPWM < 30)
{
if(MissingMotor) VersionInfo.HardwareError[1] |= FC_ERROR1_BL_MISSING;
DebugOut.Status[1] |= 0x02; // BL-Error-Status
}
else
{
if(!beeptime)
{
if(I2CTimeout > 6) DebugOut.Status[1] &= ~0x02; // BL-Error-Status
}
}
if(DisableRcOffBeeping) if(SenderOkay > 150) { DisableRcOffBeeping = 0; beeptime = 5000;};
if(PcZugriff) PcZugriff--;
else
{
ExternControl.Config = 0;
ExternStickNick = 0;
ExternStickRoll = 0;
ExternStickGier = 0;
if(!SenderOkay)
{
if(BeepMuster == 0xffff && DisableRcOffBeeping != 2)
{
beeptime = 15000;
BeepMuster = 0x0c00;
if(DisableRcOffBeeping) DisableRcOffBeeping = 2;
}
}
}
if(NaviDataOkay > 200)
{
NaviDataOkay--;
VersionInfo.HardwareError[1] &= ~FC_ERROR1_SPI_RX;
VersionInfo.Flags |= FC_VERSION_FLAG_NC_PRESENT;
}
else
{
if(NC_Version.Compatible)
{
VersionInfo.HardwareError[1] |= FC_ERROR1_SPI_RX;
NC_ErrorCode = 9; // "ERR: no NC communication"
if(BeepMuster == 0xffff && MotorenEin)
{
beeptime = 15000;
BeepMuster = 0xA800;
}
}
GPS_Nick = 0;
GPS_Roll = 0;
GPS_Aid_StickMultiplikator = 0;
GPSInfo.Flags = 0;
FromNaviCtrl_Value.Kalman_K = -1;
FromNaviCtrl.AccErrorN = 0;
FromNaviCtrl.AccErrorR = 0;
FromNaviCtrl.CompassValue = -1;
FromNC_AltitudeSpeed = 0;
FromNC_AltitudeSetpoint = 0;
VersionInfo.Flags &= ~FC_VERSION_FLAG_NC_PRESENT;
NaviDataOkay = 0;
}
if(UBat <= BattLowVoltageWarning)
{
FC_StatusFlags |= FC_STATUS_LOWBAT;
if(BeepMuster == 0xffff && UBat > 10) // Do not beep, if the voltage reading is below 1V (Supplied via MKUSB)
{
beeptime = 6000;
BeepMuster = 0x0300;
}
}
// +++++++++++++++++++++++++++++++++
// Sekundentakt
if(++second == 49)
{
second = 0;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(ShowSettingNameTime) ShowSettingNameTime--;
#endif
if(FC_StatusFlags & FC_STATUS_FLY) FlugSekunden++;
else timer2 = 1450; // 0,5 Minuten aufrunden
if(modell_fliegt < 1024)
{
if(StartLuftdruck < Luftdruck) StartLuftdruck += 5;
else
if(StartLuftdruck > Luftdruck) StartLuftdruck -= 5;
}
if(UBat > BattLowVoltageWarning + 1) FC_StatusFlags &= ~FC_STATUS_LOWBAT;
}
// +++++++++++++++++++++++++++++++++
if(++timer2 == 2930) // eine Minute
{
timer2 = 0;
FlugMinuten++;
FlugMinutenGesamt++;
SetParamByte(PID_FLIGHT_MINUTES,FlugMinuten / 256);
SetParamByte(PID_FLIGHT_MINUTES+1,FlugMinuten % 256);
SetParamByte(PID_FLIGHT_MINUTES_TOTAL,FlugMinutenGesamt / 256);
SetParamByte(PID_FLIGHT_MINUTES_TOTAL+1,FlugMinutenGesamt % 256);
timer = SetDelay(20); // falls "timer += 20;" mal nicht geht
}
}
LED_Update();
Capacity_Update();
}
} //else DebugOut.Analog[18]++;
if(update_spi) update_spi--;
} // 500Hz
if(update_spi == 0) // 41Hz
{
if(SPI_StartTransmitPacket()) update_spi = 12;
else
if(BytegapSPI == 0) SPI_TransmitByte();
}
else if(BytegapSPI == 0) SPI_TransmitByte();
}
}
//DebugOut.Analog[16]
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/main.h
0,0 → 1,95
#ifndef _MAIN_H
#define _MAIN_H
 
//#define REDUNDANT_FC_SLAVE
//#define REDUNDANT_FC_MASTER
 
//#define DEBUG // use to activate debug output to MK-Tool: use Debug(text);
//#define ACT_S3D_SUMMENSIGNAL
//#define UserParameter8_FAILSAFE
//#define RECEIVER_SPEKTRUM_DX7EXP
//#define RECEIVER_SPEKTRUM_DX8EXP
 
// neue Hardware
//#define ROT_OFF {if((PlatinenVersion == 10)||(PlatinenVersion >= 20)) PORTB &=~0x01; else PORTB |= 0x01;}
//#define ROT_ON {if((PlatinenVersion == 10)||(PlatinenVersion >= 20)) PORTB |= 0x01; else PORTB &=~0x01;}
 
#define ROT_OFF {PORTB &=~0x01;}
#define ROT_ON {PORTB |= 0x01;}
 
#define ROT_FLASH PORTB ^= 0x01
//#define GRN_OFF {if((PlatinenVersion < 12) || PlatinenVersion == 25) PORTB &=~0x02; else PORTB |= 0x02;}
//#define GRN_ON {if((PlatinenVersion < 12) || PlatinenVersion == 25) PORTB |= 0x02; else PORTB &=~0x02;}
#define GRN_OFF {if(PlatinenVersion == 25) PORTB &=~0x02; else PORTB |= 0x02;}
#define GRN_ON {if(PlatinenVersion == 25) PORTB |= 0x02; else PORTB &=~0x02;}
#define GRN_FLASH PORTB ^= 0x02
 
#define SYSCLK F_CPU
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#define J3High PORTD |= 0x20
#define J3Low PORTD &= ~0x20
#define J4High PORTD |= 0x10
#define J4Low PORTD &= ~0x10
#define J5High PORTD |= 0x08
#define J5Low PORTD &= ~0x08
 
extern volatile unsigned char SenderOkay;
extern unsigned char BattLowVoltageWarning;
extern unsigned char BattAutoLandingVoltage, BattComingHomeVoltage;
extern unsigned char CosinusNickWinkel, CosinusRollWinkel;
extern unsigned char PlatinenVersion;
extern unsigned char FoundMotors,DisableRcOffBeeping;
extern unsigned char JetiBeep;
void LipoDetection(unsigned char print);
extern unsigned int FlugMinuten,FlugMinutenGesamt,FlugSekunden;
extern void PrintLine(void); // "================================="
extern unsigned char ActiveParamSet;
extern unsigned int BL3_Current(unsigned char who); // in 0,1A
extern unsigned char LipoCells;
 
#include <avr/pgmspace.h>
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
 
#endif
 
#include <stdlib.h>
#include <string.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>
#include <avr/boot.h>
#include <avr/wdt.h>
 
#include "old_macros.h"
 
#include "printf_P.h"
#include "timer0.h"
#include "uart.h"
#include "analog.h"
#include "twimaster.h"
#include "menu.h"
#include "rc.h"
#include "fc.h"
#include "gps.h"
#include "spi.h"
#include "led.h"
#include "spektrum.h"
#include "capacity.h"
#include "eeprom.h"
#include "libfc.h"
#include "hottmenu.h"
#include "debug.h"
#include "sbus.h"
#include "jeti_ex.h"
 
#endif //_MAIN_H
 
 
 
 
 
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/makefile
0,0 → 1,496
#--------------------------------------------------------------------
# MCU name
MCU = atmega1284p
#MCU = atmega644p
F_CPU = 20000000
#-------------------------------------------------------------------
VERSION_MAJOR = 2
VERSION_MINOR = 8
VERSION_PATCH = 0
VERSION_SERIAL_MAJOR = 11 # Serial Protocol to KopterTool -> do not change!
VERSION_SERIAL_MINOR = 0 # Serial Protocol
NC_SPI_COMPATIBLE = 71 # Navi-Kompatibilität
LIB_FC_COMPATIBLE = 7 # Library
#-------------------------------------------------------------------
# ATMEGA644: 63487 is maximum
#-------------------------------------------------------------------
# 0 a
# 1 b
# 2 c
# 3 d
# 4 e
# 5 f
# 6 g
# 7 h
# 8 i
# 9 j
# 10 k
# 11 L
#-------------------------------------------------------------------
 
# get SVN revision
REV := $(shell sh -c "cat .svn/entries | sed -n '4p'")
 
ifeq ($(MCU), atmega1284p)
FUSE_SETTINGS = -u -U lfuse:w:0xff:m -U hfuse:w:0xdf:m
HEX_NAME = MEGA1284P
LIBFC_EXT = 1284
endif
 
ifeq ($(MCU), atmega644p)
FUSE_SETTINGS = -u -U lfuse:w:0xff:m -U hfuse:w:0xdf:m
HEX_NAME = MEGA644
LIBFC_EXT = 644
endif
 
ifeq ($(F_CPU), 16000000)
QUARZ = 16MHZ
endif
 
ifeq ($(F_CPU), 20000000)
QUARZ = 20MHZ
endif
 
 
# Output format. (can be srec, ihex, binary)
FORMAT = ihex
 
# Target file name (without extension).
 
ifeq ($(VERSION_PATCH), 0)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_0$(VERSION_MINOR)a_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 1)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_0$(VERSION_MINOR)b_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 2)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_0$(VERSION_MINOR)c_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 3)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_0$(VERSION_MINOR)d_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 4)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_0$(VERSION_MINOR)e_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 5)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_0$(VERSION_MINOR)f_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 6)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_0$(VERSION_MINOR)g_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 7)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_0$(VERSION_MINOR)h_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 8)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_0$(VERSION_MINOR)i_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 9)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_0$(VERSION_MINOR)j_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 10)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)k_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 11)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)L_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 12)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)m_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 13)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)n_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 14)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)o_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 15)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)p_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 16)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)q_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 17)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)r_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 18)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)s_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 19)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)t_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 20)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)u_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 21)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)v_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 22)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)w_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 23)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)x_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 24)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)y_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 25)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)z_SVN$(REV)
endif
 
 
# Optimization level, can be [0, 1, 2, 3, s]. 0 turns off optimization.
# (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
OPT = s
#OPT = 2
 
##########################################################################################################
# List C source files here. (C dependencies are automatically generated.)
SRC = main.c uart.c timer0.c analog.c menu.c eeprom.c
SRC += twimaster.c rc.c fc.c GPS.c spi.c led.c Spektrum.c
SRC += mymath.c jetimenu.c capacity.c debug.c
SRC += hottmenu.c sbus.c user_receiver.c
SRC += jeti_ex.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 = isqrt.S
 
 
 
# List any extra directories to look for include files here.
# Each directory must be seperated by a space.
EXTRAINCDIRS =
 
 
# Optional compiler flags.
# -g: generate debugging information (for GDB, or for COFF conversion)
# -O*: optimization level
# -f...: tuning, see gcc manual and avr-libc documentation
# -Wall...: warning level
# -Wa,...: tell GCC to pass this to the assembler.
# -ahlms: create assembler listing
CFLAGS = -O$(OPT) -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=$(<:%.c=%.lst) $(patsubst %,-I%,$(EXTRAINCDIRS))
 
 
# Set a "language standard" compiler flag.
# Unremark just one line below to set the language standard to use.
# gnu99 = C99 + GNU extensions. See GCC manual for more information.
#CFLAGS += -std=c89
#CFLAGS += -std=gnu89
#CFLAGS += -std=c99
CFLAGS += -std=gnu99
 
# shrink code size
CFLAGS += -mtiny-stack
#CFLAGS += -fno-inline-functions
CFLAGS += -mcall-prologues
 
CFLAGS += -DF_CPU=$(F_CPU) -DVERSION_MAJOR=$(VERSION_MAJOR) -DVERSION_MINOR=$(VERSION_MINOR) -DVERSION_PATCH=$(VERSION_PATCH) -DVERSION_SERIAL_MAJOR=$(VERSION_SERIAL_MAJOR) -DVERSION_SERIAL_MINOR=$(VERSION_SERIAL_MINOR) -DNC_SPI_COMPATIBLE=$(NC_SPI_COMPATIBLE) -DLIB_FC_COMPATIBLE=$(LIB_FC_COMPATIBLE)
 
 
# Optional assembler flags.
# -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
 
 
 
# Optional linker flags.
# -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
 
# Additional libraries
 
# Minimalistic printf version
#LDFLAGS += -Wl,-u,vfprintf -lprintf_min
 
# Floating point printf version (requires -lm below)
#LDFLAGS += -Wl,-u,vfprintf -lprintf_flt
 
# -lm = math library
LDFLAGS += -lm
 
LDFLAGS += libfc$(LIBFC_EXT).a
 
##LDFLAGS += -T./linkerfile/avr5.x
 
 
 
# Programming support using avrdude. Settings and variables.
 
# 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 = dt006
#AVRDUDE_PROGRAMMER = stk200
#AVRDUDE_PROGRAMMER = ponyser
AVRDUDE_PROGRAMMER = avrispv2
#falls Ponyser ausgewählt wird, muss sich unsere avrdude-Configdatei im Bin-Verzeichnis des Compilers befinden
 
#AVRDUDE_PORT = com1 # programmer connected to serial device
#AVRDUDE_PORT = lpt1 # programmer connected to parallel port
AVRDUDE_PORT = usb # programmer connected to USB
 
#AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex $(FUSE_SETTINGS)
#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
 
#avrdude -c avrispv2 -P usb -p m32 -U flash:w:blink.hex
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
 
# 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 += -y
 
# Uncomment the following if you do /not/ wish a verification to be
# performed after programming the device.
AVRDUDE_FLAGS += -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_FLAGS += -v -v
 
# ---------------------------------------------------------------------------
# Define directories, if needed.
DIRAVR = c:/winavr
DIRAVRBIN = $(DIRAVR)/bin
DIRAVRUTILS = $(DIRAVR)/utils/bin
DIRINC = .
DIRLIB = $(DIRAVR)/avr/lib
 
 
# Define programs and commands.
SHELL = sh
 
CC = avr-gcc
 
OBJCOPY = avr-objcopy
OBJDUMP = avr-objdump
SIZE = avr-size
 
# Programming support using avrdude.
AVRDUDE = avrdude
 
REMOVE = rm -f
COPY = cp
 
HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
ELFSIZE = $(SIZE) -x -A $(TARGET).elf
LIMITS = $(SIZE) --mcu=$(MCU) -C $(TARGET).elf
 
 
# 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 = $(ASRC:.S=.lst) $(SRC:.c=.lst)
 
# Combine all necessary flags and optional flags.
# Add target processor to flags.
#ALL_CFLAGS = -mmcu=$(MCU) -DF_CPU=$(F_CPU) -I. $(CFLAGS)
ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS)
ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
 
 
# Default target.
all: begin gccversion sizebefore $(TARGET).elf $(TARGET).hex sizeafter finished end
 
 
# 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)
 
finished:
@echo $(MSG_ERRORS_NONE)
 
end:
@echo $(MSG_END)
@echo
 
 
# Display size of file.
sizebefore:
@if [ -f $(TARGET).elf ]; then echo Size before:; $(ELFSIZE); $(HEXSIZE); $(LIMITS); echo; fi
sizeafter:
@if [ -f $(TARGET).elf ]; then echo Size after:; $(ELFSIZE); $(HEXSIZE); $(LIMITS); echo; fi
 
 
# Display compiler version information.
gccversion :
@$(CC) --version
 
 
# 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
 
 
 
 
# Program the device.
program: $(TARGET).hex $(TARGET).eep
$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
 
 
 
 
# 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) $@
avr-nm -n $< > $@
 
 
 
# Link: create ELF output file from object files.
.SECONDARY : $(TARGET).elf
.PRECIOUS : $(OBJ)
%.elf: $(OBJ)
@echo
@echo $(MSG_LINKING) $@
$(CC) $(ALL_CFLAGS) $(OBJ) --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 $@
 
 
 
 
 
 
# Target: clean project.
clean: begin clean_list finished end
 
clean_list :
@echo
@echo $(MSG_CLEANING)
$(REMOVE) Flight-Ctrl_*.hex
$(REMOVE) Flight-Ctrl_*.eep
$(REMOVE) $(TARGET).obj
$(REMOVE) $(TARGET).cof
$(REMOVE) Flight-Ctrl_*.elf
$(REMOVE) Flight-Ctrl_*.map
$(REMOVE) $(TARGET).obj
$(REMOVE) $(TARGET).a90
$(REMOVE) Flight-Ctrl_*.sym
$(REMOVE) $(TARGET).lnk
$(REMOVE) $(TARGET).lss
$(REMOVE) $(OBJ)
$(REMOVE) $(LST)
$(REMOVE) $(SRC:.c=.s)
$(REMOVE) $(SRC:.c=.d)
$(REMOVE) $(SRC:.c=.o)
 
 
# Automatically generate C source code dependencies.
# (Code originally taken from the GNU make user manual and modified
# (See README.txt Credits).)
#
# Note that this will work with sh (bash) and sed that is shipped with WinAVR
# (see the SHELL variable defined above).
# This may not work with other shells or other seds.
#
%.d: %.c
set -e; $(CC) -MM $(ALL_CFLAGS) $< \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > $@; \
[ -s $@ ] || rm -f $@
 
 
# Remove the '-' if you want to see the dependency files generated.
-include $(SRC:%.c=%.d)
 
 
 
# Listing of phony targets.
.PHONY : all begin finish end sizebefore sizeafter gccversion coff extcoff \
clean clean_list program
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/menu.c
0,0 → 1,299
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software Nutzungsbedingungen (english version: see below)
// + der Fa. HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland - nachfolgend Lizenzgeber genannt -
// + Der Lizenzgeber räumt dem Kunden ein nicht-ausschließliches, zeitlich und räumlich* unbeschränktes Recht ein, die im den
// + Mikrocontroller verwendete Firmware für die Hardware Flight-Ctrl, Navi-Ctrl, BL-Ctrl, MK3Mag & PC-Programm MikroKopter-Tool
// + - nachfolgend Software genannt - nur für private Zwecke zu nutzen.
// + Der Einsatz dieser Software ist nur auf oder mit Produkten des Lizenzgebers zulässig.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die vom Lizenzgeber gelieferte Software ist urheberrechtlich geschützt. Alle Rechte an der Software sowie an sonstigen im
// + Rahmen der Vertragsanbahnung und Vertragsdurchführung überlassenen Unterlagen stehen im Verhältnis der Vertragspartner ausschließlich dem Lizenzgeber zu.
// + Die in der Software enthaltenen Copyright-Vermerke, Markenzeichen, andere Rechtsvorbehalte, Seriennummern sowie
// + sonstige der Programmidentifikation dienenden Merkmale dürfen vom Kunden nicht verändert oder unkenntlich gemacht werden.
// + Der Kunde trifft angemessene Vorkehrungen für den sicheren Einsatz der Software. Er wird die Software gründlich auf deren
// + Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Die Haftung des Lizenzgebers wird - soweit gesetzlich zulässig - begrenzt in Höhe des typischen und vorhersehbaren
// + Schadens. Die gesetzliche Haftung bei Personenschäden und nach dem Produkthaftungsgesetz bleibt unberührt. Dem Lizenzgeber steht jedoch der Einwand
// + des Mitverschuldens offen.
// + Der Kunde trifft angemessene Vorkehrungen für den Fall, dass die Software ganz oder teilweise nicht ordnungsgemäß arbeitet.
// + Er wird die Software gründlich auf deren Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Der Kunde wird er seine Daten vor Einsatz der Software nach dem Stand der Technik sichern.
// + Der Kunde ist darüber unterrichtet, dass der Lizenzgeber seine Daten im zur Vertragsdurchführung erforderlichen Umfang
// + und auf Grundlage der Datenschutzvorschriften erhebt, speichert, verarbeitet und, sofern notwendig, an Dritte übermittelt.
// + *) Die räumliche Nutzung bezieht sich nur auf den Einsatzort, nicht auf die Reichweite der programmierten Software.
// + #### ENDE DER NUTZUNGSBEDINGUNGEN ####'
// + Hinweis: Informationen über erweiterte Nutzungsrechte (wie z.B. Nutzung für nicht-private Zwecke) sind auf Anfrage per Email an info(@)hisystems.de verfügbar.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software LICENSING TERMS
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + of HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland, Germany - the Licensor -
// + The Licensor grants the customer a non-exclusive license to use the microcontroller firmware of the Flight-Ctrl, Navi-Ctrl, BL-Ctrl, and MK3Mag hardware
// + (the Software) exclusively for private purposes. The License is unrestricted with respect to time and territory*.
// + The Software may only be used with the Licensor's products.
// + The Software provided by the Licensor is protected by copyright. With respect to the relationship between the parties to this
// + agreement, all rights pertaining to the Software and other documents provided during the preparation and execution of this
// + agreement shall be the property of the Licensor.
// + The information contained in the Software copyright notices, trademarks, other legal reservations, serial numbers and other
// + features that can be used to identify the program may not be altered or defaced by the customer.
// + The customer shall be responsible for taking reasonable precautions
// + for the safe use of the Software. The customer shall test the Software thoroughly regarding its suitability for the
// + intended purpose before implementing it for actual operation. The Licensor's liability shall be limited to the extent of typical and
// + foreseeable damage to the extent permitted by law, notwithstanding statutory liability for bodily injury and product
// + liability. However, the Licensor shall be entitled to the defense of contributory negligence.
// + The customer will take adequate precautions in the case, that the software is not working properly. The customer will test
// + the software for his purpose before any operational usage. The customer will backup his data before using the software.
// + The customer understands that the Licensor collects, stores and processes, and, where required, forwards, customer data
// + to third parties to the extent necessary for executing the agreement, subject to applicable data protection and privacy regulations.
// + *) The territory aspect only refers to the place where the Software is used, not its programmed range.
// + #### END OF LICENSING TERMS ####
// + Note: For information on license extensions (e.g. commercial use), please contact us at info(@)hisystems.de.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "main.h"
#include "eeprom.h"
 
char DisplayBuff[80];
unsigned char DispPtr = 0;
 
unsigned char MaxMenue = 19;
unsigned char MenuePunkt = 0;
unsigned char RemoteKeys = 0;
 
#define KEY1 0x01
#define KEY2 0x02
#define KEY3 0x04
#define KEY4 0x08
#define KEY5 0x10
 
void LcdClear(void)
{
unsigned char i;
for(i=0;i<80;i++) DisplayBuff[i] = ' ';
}
 
void Menu_Putchar(char c)
{
if(DispPtr < 80) DisplayBuff[DispPtr++] = c;
}
 
void Menu(void)
{
unsigned char i;
if(RemoteKeys & KEY1) { if(MenuePunkt) MenuePunkt--; else MenuePunkt = MaxMenue;}
if(RemoteKeys & KEY2) { if(MenuePunkt == MaxMenue) MenuePunkt = 0; else MenuePunkt++;}
if((RemoteKeys & KEY1) && (RemoteKeys & KEY2)) MenuePunkt = 0;
LcdClear();
if(MenuePunkt < 10) {LCD_printfxy(17,0,"[%i]",MenuePunkt);}
else {LCD_printfxy(16,0,"[%i]",MenuePunkt);};
 
switch(MenuePunkt)
{
case 0:
LCD_printfxy(0,0,"+ MikroKopter +");
LCD_printfxy(0,1,"HW:V%d.%d SW:%d.%02d%c ",PlatinenVersion/10,PlatinenVersion%10, VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH +'a');
LCD_printfxy(0,2,"Set:%d %s", ActiveParamSet,Mixer.Name);
if(FC_StatusFlags3 & FC_STATUS3_BOAT) LCD_printfxy(16,2,"BOAT");
 
if(VersionInfo.HardwareError[1] & FC_ERROR1_MIXER) LCD_printfxy(0,3,"Mixer Error!")
else
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(NC_ErrorCode)
{
LCD_printfxy(0,3,"ERR%2d:",NC_ErrorCode);
_printf_P(&Menu_Putchar, NC_ERROR_TEXT[NC_ErrorCode] , 0);
}
else
#endif
if(VersionInfo.HardwareError[0]) LCD_printfxy(0,3,"Hardware Error 1:%d !!",VersionInfo.HardwareError[0])
else
if(MissingMotor) LCD_printfxy(0,3,"Missing BL-Ctrl:%d !!",MissingMotor)
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
#else
else
if(NC_ErrorCode)
{
LCD_printfxy(0,3,"! NC-ERR: %2d ! ",NC_ErrorCode);
}
#endif
// if(VersionInfo.HardwareError[1]) LCD_printfxy(0,3,"Error 2:%d !!",VersionInfo.HardwareError[1])
else
if(I2CTimeout < 6) LCD_printfxy(0,3,"I2C ERROR!!!")
else
if(Capacity.MinOfMaxPWM < 30) LCD_printfxy(0,3,"BL-Selftest Err:%2d",Capacity.MinOfMaxPWM)
 
break;
case 1:
LCD_printfxy(0,0,"Height: %5i",(int)(HoehenWert/5));
LCD_printfxy(0,1,"Setpoint:%5i",(int)(SollHoehe/5));
LCD_printfxy(0,2,"Pressure:%5i",MessLuftdruck);
LCD_printfxy(0,3,"Offset: %5i",OCR0A);
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(ACC_AltitudeControl)
{
LCD_printfxy(17,2,"(A)");
LCD_printfxy(17,3,"%i",CalAthmospheare);
}
#endif
break;
case 2:
LCD_printfxy(0,0,"act. bearing");
LCD_printfxy(0,1,"Nick: %5i",IntegralNick/1024);
LCD_printfxy(0,2,"Roll: %5i",IntegralRoll/1024);
LCD_printfxy(0,3,"Compass: %5i",CompassCorrected);
break;
case 3:
for(i=1;i<9;i+=2) LCD_printfxy(0,i/2,"K%i:%4i K%i:%4i ",i,PPM_in[i],i+1,PPM_in[i+1]);
break;
case 4:
LCD_printfxy(0,0,"Ni:%4i Ro:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_NICK]],PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]);
LCD_printfxy(0,1,"Gs:%4i Gi:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_GAS]]+127,PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]);
LCD_printfxy(0,2,"P1:%4i P2:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]]+127,PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]]+127);
LCD_printfxy(0,3,"P3:%4i P4:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]]+127,PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]]+127);
break;
case 5:
LCD_printfxy(0,0,"Gyro - Sensor");
LCD_printfxy(0,1,"Nick %4i (%4i)",AdWertNick - AdNeutralNick/8, AdNeutralNick);
LCD_printfxy(0,2,"Roll %4i (%4i)",AdWertRoll - AdNeutralRoll/8, AdNeutralRoll);
LCD_printfxy(0,3,"Yaw %4i (%4i)",AdNeutralGier - AdWertGier, AdNeutralGier);
// LCD_printfxy(0,1,"Nick %4i (%3i.%x)",AdWertNick - AdNeutralNick/8, AdNeutralNick/16, (AdNeutralNick%16)/2);
// LCD_printfxy(0,2,"Roll %4i (%3i.%x)",AdWertRoll - AdNeutralRoll/8, AdNeutralRoll/16, (AdNeutralRoll%16)/2);
// LCD_printfxy(0,1,"Nick %4i (%4i)",AdWertNickFilter, AdNeutralNick);
// LCD_printfxy(0,2,"Roll %4i (%4i)",AdWertRollFilter, AdNeutralRoll);
// LCD_printfxy(0,3,"Yaw %4i (%3i)",AdNeutralGier - AdWertGier, AdNeutralGier/2);
 
/*
// entfernt aus Platzmangel
if(PlatinenVersion == 10)
{
LCD_printfxy(0,1,"Nick%4i (%3i.%i)",AdWertNick - AdNeutralNick/8, AdNeutralNick/8, AdNeutralNick%8);
LCD_printfxy(0,2,"Roll%4i (%3i.%i)",AdWertRoll - AdNeutralRoll/8, AdNeutralRoll/8, AdNeutralRoll%8);
LCD_printfxy(0,3,"Gier%4i (%3i)",AdNeutralGier - AdWertGier, AdNeutralGier);
}
else
if((PlatinenVersion == 11) || (PlatinenVersion >= 20))
{
LCD_printfxy(0,1,"Nick %4i (%3i.%x)",AdWertNick - AdNeutralNick/8, AdNeutralNick/16, (AdNeutralNick%16)/2);
LCD_printfxy(0,2,"Roll %4i (%3i.%x)",AdWertRoll - AdNeutralRoll/8, AdNeutralRoll/16, (AdNeutralRoll%16)/2);
LCD_printfxy(0,3,"Yaw %4i (%3i)",AdNeutralGier - AdWertGier, AdNeutralGier/2);
}
else
if(PlatinenVersion == 13)
{
LCD_printfxy(0,1,"Nick %4i (%3i)(%3i)",AdWertNick - AdNeutralNick/8, AdNeutralNick/16,AnalogOffsetNick);
LCD_printfxy(0,2,"Roll %4i (%3i)(%3i)",AdWertRoll - AdNeutralRoll/8, AdNeutralRoll/16,AnalogOffsetRoll);
LCD_printfxy(0,3,"Yaw %4i (%3i)(%3i)",AdNeutralGier - AdWertGier, AdNeutralGier/2,AnalogOffsetGier);
}
*/
break;
case 6:
LCD_printfxy(0,0,"ACC - Sensor");
LCD_printfxy(0,1,"Nick %4i (%3i)",AdWertAccNick,NeutralAccX);
LCD_printfxy(0,2,"Roll %4i (%3i)",AdWertAccRoll,NeutralAccY);
LCD_printfxy(0,3,"Z %4i (%3i)",AdWertAccHoch,(int)NeutralAccZ);
break;
case 7:
LCD_printfxy(0,0,"Voltage: %3i.%1iV",UBat/10, UBat%10);
LCD_printfxy(0,1,"Current: %3i.%1iA",Capacity.ActualCurrent/10, Capacity.ActualCurrent%10);
LCD_printfxy(0,2,"Power: %4iW",Capacity.ActualPower);
LCD_printfxy(0,3,"Discharge: %5imAh", Capacity.UsedCapacity);
break;
case 8:
LCD_printfxy(0,0,"Receiver");
LCD_printfxy(0,2,"RC-Quality: %4i", SenderOkay);
LCD_printfxy(0,3,"RC-Channels:%4i", Channels-1);
break;
case 9:
LCD_printfxy(0,0,"Undervoltages " );
LCD_printfxy(0,1,"Warn: %2d.%dV",BattLowVoltageWarning/10,BattLowVoltageWarning%10);
LCD_printfxy(0,2,"Home: %2d.%dV",BattComingHomeVoltage/10,BattComingHomeVoltage%10);
LCD_printfxy(0,3,"Land: %2d.%dV",BattAutoLandingVoltage/10,BattAutoLandingVoltage%10);
break;
case 10:
for(i=0;i<4;i++) LCD_printfxy(0,i,"Poti%i: %3i",i+1,Poti[i]);
break;
case 11:
for(i=0;i<4;i++) LCD_printfxy(0,i,"Poti%i: %3i",i+5,Poti[i+4]);
break;
case 12:
LCD_printfxy(0,0,"Flight-Time " );
LCD_printfxy(0,1,"Total:%5umin",FlugMinutenGesamt);
LCD_printfxy(0,2,"Act: %5umin",FlugMinuten);
LCD_printfxy(13,3,"(reset)");
if(RemoteKeys & KEY4)
{
FlugMinuten = 0;
SetParamWord(PID_FLIGHT_MINUTES, FlugMinuten);
}
break;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
case 13:
LCD_printfxy(0,0,"Compass");
LCD_printfxy(0,1,"Magnet: %5i",KompassValue);
LCD_printfxy(0,2,"Gyro: %5i",ErsatzKompassInGrad);
LCD_printfxy(0,3,"True: %5i",CompassCorrected);
break;
case 14:
LCD_printfxy(0,0,"Servo " );
LCD_printfxy(0,1,"Setpoint %3i",Parameter_ServoNickControl);
LCD_printfxy(0,2,"Position: %3i",ServoNickValue/4);
LCD_printfxy(0,3,"Range:%3i-%3i",EE_Parameter.ServoNickMin,EE_Parameter.ServoNickMax);
break;
case 15:
LCD_printfxy(0,0,"BL-Ctrl Errors " );
for(i=0;i<3;i++)
{
LCD_printfxy(0,i+1,"%3d %3d %3d %3d ",Motor[i*4].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+1].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+2].State & MOTOR_STATE_ERROR_MASK,Motor[i*4+3].State & MOTOR_STATE_ERROR_MASK);
}
break;
case 16:
LCD_printfxy(0,0,"BL Temperature" );
for(i=0;i<3;i++)
{
LCD_printfxy(0,i+1,"%3d %3d %3d %3d ",Motor[i*4].Temperature,Motor[i*4+1].Temperature,Motor[i*4+2].Temperature,Motor[i*4+3].Temperature);
}
break;
case 17:
LCD_printfxy(0,0,"BL Current" );
LCD_printfxy(11,3,"(in 0.1A)" );
for(i=0;i<3;i++)
{
LCD_printfxy(0,i+1,"%3d %3d %3d %3d ",BL3_Current(i*4),BL3_Current(i*4+1),BL3_Current(i*4+2),BL3_Current(i*4+3));
if(4 + i * 4 >= RequiredMotors) break;
}
break;
case 18:
LCD_printfxy(0,0,"BL-Ctrl found " );
LCD_printfxy(0,1," %c %c %c %c ",'-' + 4 * (Motor[0].State>>7),'-' + 5 * (Motor[1].State>>7),'-' + 6 * (Motor[2].State>>7),'-' + 7 * (Motor[3].State>>7));
LCD_printfxy(0,2," %c %c %c %c ",'-' + 8 * (Motor[4].State>>7),'-' + 9 * (Motor[5].State>>7),'-' + 10 * (Motor[6].State>>7),'-' + 11 * (Motor[7].State>>7));
LCD_printfxy(0,3," %c - - - ",'-' + 12 * (Motor[8].State>>7));
if(Motor[9].State>>7) LCD_printfxy(4,3,"10");
if(Motor[10].State>>7) LCD_printfxy(8,3,"11");
if(Motor[11].State>>7) LCD_printfxy(12,3,"12");
break;
case 19:
LCD_printfxy(0,0,"BL Versions" );
for(i=0;i<3;i++)
{
LCD_printfxy(0,i+1,"%1d.%02d %1d.%02d %1d.%02d %1d.%02d",Motor[i*4].VersionMajor,Motor[i*4].VersionMinor,Motor[i*4+1].VersionMajor,Motor[i*4+1].VersionMinor,Motor[i*4+2].VersionMajor,Motor[i*4+2].VersionMinor,Motor[i*4+3].VersionMajor,Motor[i*4+3].VersionMinor);
if(4 + i * 4 >= RequiredMotors) break;
}
break;
/*
case 19:
LCD_printfxy(0,0,"BL MaxPWM " );
for(i=0;i<3;i++)
{
LCD_printfxy(0,i+1,"%3d %3d %3d %3d ",Motor[i*4].MaxPWM,Motor[i*4+1].MaxPWM,Motor[i*4+2].MaxPWM,Motor[i*4+3].MaxPWM);
if(4 + i * 4 >= RequiredMotors) break;
}
break;
*/
#endif
default:
if(MenuePunkt == MaxMenue) MaxMenue--;
MenuePunkt = 0;
break;
}
RemoteKeys = 0;
}
/branches/V2.08a_Rens_Testversion/FlightCtrl/menu.h
0,0 → 1,17
#ifndef _MENU_H
#define _MENU_H
 
extern void Menu(void);
extern void LcdClear(void);
extern void Menu_Putchar(char c);
extern char DisplayBuff[80];
extern unsigned char DispPtr;
 
extern unsigned char MaxMenue;
extern unsigned char MenuePunkt;
extern unsigned char RemoteKeys;
 
#define LCD_printfxy(x,y,format, args...) { DispPtr = (y) * 20 + (x); _printf_P(&Menu_Putchar,PSTR(format) , ## args);}
#define LCD_printf(format, args...) { _printf_P(&Menu_Putchar, PSTR(format) , ## args);}
 
#endif //_MENU_H
/branches/V2.08a_Rens_Testversion/FlightCtrl/mymath.c
0,0 → 1,42
#include <stdlib.h>
#include <avr/pgmspace.h>
#include "mymath.h"
 
// discrete mathematics
 
// Sinus with argument in degree at an angular resolution of 1 degree and a discretisation of 13 bit.
const uint16_t pgm_sinlookup[91] PROGMEM = {0, 143, 286, 429, 571, 714, 856, 998, 1140, 1282, 1423, 1563, 1703, 1843, 1982, 2120, 2258, 2395, 2531, 2667, 2802, 2936, 3069, 3201, 3332, 3462, 3591, 3719, 3846, 3972, 4096, 4219, 4341, 4462, 4581, 4699, 4815, 4930, 5043, 5155, 5266, 5374, 5482, 5587, 5691, 5793, 5893, 5991, 6088, 6183, 6275, 6366, 6455, 6542, 6627, 6710, 6791, 6870, 6947, 7022, 7094, 7165, 7233, 7299, 7363, 7424, 7484, 7541, 7595, 7648, 7698, 7746, 7791, 7834, 7875, 7913, 7949, 7982, 8013, 8041, 8068, 8091, 8112, 8131, 8147, 8161, 8172, 8181, 8187, 8191, 8192};
 
int16_t c_cos_8192(int16_t angle)
{
int8_t m,n;
int16_t sinus;
angle = 90 - angle; // we need the cosinus and not the sinus
// avoid negative angles
if (angle < 0)
{
m = -1;
angle = abs(angle);
}
else m = +1;
 
// fold angle to intervall 0 to 359
angle %= 360;
 
// check quadrant
if (angle <= 90) n=1; // first quadrant
else if ((angle > 90) && (angle <= 180)) {angle = 180 - angle; n = 1;} // second quadrant
else if ((angle > 180) && (angle <= 270)) {angle = angle - 180; n = -1;} // third quadrant
else {angle = 360 - angle; n = -1;} //fourth quadrant
// get lookup value
sinus = pgm_read_word(&pgm_sinlookup[angle]);
// calculate sinus value
return (sinus * m * n);
}
/*
// Cosinus with argument in degree at an angular resolution of 1 degree and a discretisation of 13 bit.
int16_t c_cos_8192(int16_t angle)
{
return (c_sin_8192(90 - angle));
}
*/
/branches/V2.08a_Rens_Testversion/FlightCtrl/mymath.h
0,0 → 1,10
#ifndef _MYMATH_H
#define _MYMATH_H
 
#include <inttypes.h>
 
//extern int16_t c_sin_8192(int16_t angle);
extern int16_t c_cos_8192(int16_t angle);
extern int16_t c_atan2(int16_t y, int16_t x);
extern uint32_t c_sqrt(uint32_t a);
#endif // _MYMATH_H
/branches/V2.08a_Rens_Testversion/FlightCtrl/old_macros.h
0,0 → 1,47
/*
For backwards compatibility only.
Ingo Busker ingo@mikrocontroller.com
*/
 
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
 
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif
 
#ifndef inb
#define inb(sfr) _SFR_BYTE(sfr)
#endif
 
#ifndef outb
#define outb(sfr, val) (_SFR_BYTE(sfr) = (val))
#endif
 
#ifndef inw
#define inw(sfr) _SFR_WORD(sfr)
#endif
 
#ifndef outw
#define outw(sfr, val) (_SFR_WORD(sfr) = (val))
#endif
 
#ifndef outp
#define outp(val, sfr) outb(sfr, val)
#endif
 
#ifndef inp
#define inp(sfr) inb(sfr)
#endif
 
#ifndef BV
#define BV(bit) _BV(bit)
#endif
 
 
#ifndef PRG_RDB
#define PRG_RDB pgm_read_byte
#endif
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/printf_P.h
0,0 → 1,69
// Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist nicht von der Lizenz für den MikroKopter-Teil unterstellt
 
/*
Copyright (C) 1993 Free Software Foundation
 
This file is part of the GNU IO Library. This library is free
software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option)
any later version.
 
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this library; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
As a special exception, if you link this library with files
compiled with a GNU compiler to produce an executable, this does not cause
the resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why
the executable file might be covered by the GNU General Public License. */
 
/*
* Copyright (c) 1990 Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. [rescinded 22 July 1999]
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
 
/******************************************************************************/
#ifndef _PRINTF_P_H_
#define _PRINTF_P_H_
 
#include <avr/pgmspace.h>
 
// function pointer to external callback function
typedef void (*pVoidFnctChar) (char );
typedef void (*pVoidFnct_pVoidFnctChar_const_fmt) (pVoidFnctChar, char const *fmt0, ...);
extern pVoidFnct_pVoidFnctChar_const_fmt _printf_P;
 
 
#endif //_PRINTF_P_H_
/branches/V2.08a_Rens_Testversion/FlightCtrl/rc.c
0,0 → 1,188
/*#######################################################################################
Decodieren eines RC Summen Signals
#######################################################################################*/
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software Nutzungsbedingungen (english version: see below)
// + der Fa. HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland - nachfolgend Lizenzgeber genannt -
// + Der Lizenzgeber räumt dem Kunden ein nicht-ausschließliches, zeitlich und räumlich* unbeschränktes Recht ein, die im den
// + Mikrocontroller verwendete Firmware für die Hardware Flight-Ctrl, Navi-Ctrl, BL-Ctrl, MK3Mag & PC-Programm MikroKopter-Tool
// + - nachfolgend Software genannt - nur für private Zwecke zu nutzen.
// + Der Einsatz dieser Software ist nur auf oder mit Produkten des Lizenzgebers zulässig.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die vom Lizenzgeber gelieferte Software ist urheberrechtlich geschützt. Alle Rechte an der Software sowie an sonstigen im
// + Rahmen der Vertragsanbahnung und Vertragsdurchführung überlassenen Unterlagen stehen im Verhältnis der Vertragspartner ausschließlich dem Lizenzgeber zu.
// + Die in der Software enthaltenen Copyright-Vermerke, Markenzeichen, andere Rechtsvorbehalte, Seriennummern sowie
// + sonstige der Programmidentifikation dienenden Merkmale dürfen vom Kunden nicht verändert oder unkenntlich gemacht werden.
// + Der Kunde trifft angemessene Vorkehrungen für den sicheren Einsatz der Software. Er wird die Software gründlich auf deren
// + Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Die Haftung des Lizenzgebers wird - soweit gesetzlich zulässig - begrenzt in Höhe des typischen und vorhersehbaren
// + Schadens. Die gesetzliche Haftung bei Personenschäden und nach dem Produkthaftungsgesetz bleibt unberührt. Dem Lizenzgeber steht jedoch der Einwand
// + des Mitverschuldens offen.
// + Der Kunde trifft angemessene Vorkehrungen für den Fall, dass die Software ganz oder teilweise nicht ordnungsgemäß arbeitet.
// + Er wird die Software gründlich auf deren Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Der Kunde wird er seine Daten vor Einsatz der Software nach dem Stand der Technik sichern.
// + Der Kunde ist darüber unterrichtet, dass der Lizenzgeber seine Daten im zur Vertragsdurchführung erforderlichen Umfang
// + und auf Grundlage der Datenschutzvorschriften erhebt, speichert, verarbeitet und, sofern notwendig, an Dritte übermittelt.
// + *) Die räumliche Nutzung bezieht sich nur auf den Einsatzort, nicht auf die Reichweite der programmierten Software.
// + #### ENDE DER NUTZUNGSBEDINGUNGEN ####'
// + Hinweis: Informationen über erweiterte Nutzungsrechte (wie z.B. Nutzung für nicht-private Zwecke) sind auf Anfrage per Email an info(@)hisystems.de verfügbar.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software LICENSING TERMS
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + of HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland, Germany - the Licensor -
// + The Licensor grants the customer a non-exclusive license to use the microcontroller firmware of the Flight-Ctrl, Navi-Ctrl, BL-Ctrl, and MK3Mag hardware
// + (the Software) exclusively for private purposes. The License is unrestricted with respect to time and territory*.
// + The Software may only be used with the Licensor's products.
// + The Software provided by the Licensor is protected by copyright. With respect to the relationship between the parties to this
// + agreement, all rights pertaining to the Software and other documents provided during the preparation and execution of this
// + agreement shall be the property of the Licensor.
// + The information contained in the Software copyright notices, trademarks, other legal reservations, serial numbers and other
// + features that can be used to identify the program may not be altered or defaced by the customer.
// + The customer shall be responsible for taking reasonable precautions
// + for the safe use of the Software. The customer shall test the Software thoroughly regarding its suitability for the
// + intended purpose before implementing it for actual operation. The Licensor's liability shall be limited to the extent of typical and
// + foreseeable damage to the extent permitted by law, notwithstanding statutory liability for bodily injury and product
// + liability. However, the Licensor shall be entitled to the defense of contributory negligence.
// + The customer will take adequate precautions in the case, that the software is not working properly. The customer will test
// + the software for his purpose before any operational usage. The customer will backup his data before using the software.
// + The customer understands that the Licensor collects, stores and processes, and, where required, forwards, customer data
// + to third parties to the extent necessary for executing the agreement, subject to applicable data protection and privacy regulations.
// + *) The territory aspect only refers to the place where the Software is used, not its programmed range.
// + #### END OF LICENSING TERMS ####
// + Note: For information on license extensions (e.g. commercial use), please contact us at info(@)hisystems.de.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "rc.h"
#include "main.h"
// Achtung: ACT_S3D_SUMMENSIGNAL wird in der Main.h gesetzt
#define MAX_RC_IN 16+12+3+4 // 16ch + 12ser + 3stages + 4 reserved
volatile int PPM_in[MAX_RC_IN];
volatile int PPM_diff[MAX_RC_IN]; // das differnzierte Stick-Signal
volatile char Channels,tmpChannels = 0;
volatile unsigned char NewPpmData = 1;
unsigned int PPM_Neutral = 466;
 
//############################################################################
// Clear the values
void rc_sum_init(void)
//############################################################################
{
unsigned char i;
for(i=0;i<MAX_RC_IN;i++)
{
if(i < 5) PPM_in[i] = 0; else PPM_in[i] = -127;
PPM_diff[i] = 0;
}
PPM_in[PPM_IN_MAX] = +127;
PPM_in[PPM_IN_OFF] = -127;
PPM_in[PPM_IN_MID] = 0;
AdNeutralGier = 0;
AdNeutralRoll = 0;
AdNeutralNick = 0;
return;
}
 
#ifndef ACT_S3D_SUMMENSIGNAL
//############################################################################
// Interrupt function for the PPM-Input
ISR(TIMER1_CAPT_vect)
//############################################################################
{
static unsigned int AltICR=0;
signed int signal = 0,tmp;
static int index;
 
signal = (unsigned int) ICR1 - AltICR;
AltICR = ICR1;
//Syncronisationspause? (3.52 ms < signal < 25.6 ms)
if((signal > 1100) && (signal < 8000))
{
Channels = index;
if(index >= 4) NewPpmData = 0; // Null bedeutet: Neue Daten
index = 1;
}
else
{
if(index < 13+4)
{
if((signal > 250) && (signal < 687))
{
signal -= PPM_Neutral;
// Stabiles Signal
if(EE_Parameter.FailsafeChannel == 0 || PPM_in[EE_Parameter.FailsafeChannel] < 100) // forces Failsafe if the receiver doesn't have 'signal loss' on Failsafe
{
if(abs(signal - PPM_in[index]) < 6) { if(SenderOkay < 200) SenderOkay += 10; else SenderOkay = 200;}
}
tmp = (3 * (PPM_in[index]) + signal) / 4;
if(tmp > signal+1) tmp--; else
if(tmp < signal-1) tmp++;
if(SenderOkay >= 195) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
else PPM_diff[index] = 0;
PPM_in[index] = tmp;
if(SenderOkay < 50)
{
PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] = 0;
}
}
index++;
/*
if(PlatinenVersion < 20)
{
if(index == 5) J3High; else J3Low; // Servosignal an J3 anlegen
if(index == 6) J4High; else J4Low; // Servosignal an J4 anlegen
if(index == 7) J5High; else J5Low; // Servosignal an J5 anlegen
}
*/
}
}
}
 
#else
//############################################################################
// Interrupt function for the PPM-Input
ISR(TIMER1_CAPT_vect)
//############################################################################
 
{
static unsigned int AltICR=0;
signed int signal = 0,tmp;
static int index;
 
signal = (unsigned int) ICR1 - AltICR;
signal /= 2;
AltICR = ICR1;
//Syncronisationspause?
if((signal > 1100*2) && (signal < 8000*2))
{
if(index >= 4) NewPpmData = 0; // Null bedeutet: Neue Daten
index = 1;
}
else
{
if(index < 13)
{
if((signal > 250) && (signal < 687*2))
{
signal -= 962;
// Stabiles Signal
if(abs(signal - PPM_in[index]) < 6) { if(SenderOkay < 200) SenderOkay += 10;}
tmp = (3 * (PPM_in[index]) + signal) / 4;
if(tmp > signal+1) tmp--; else
if(tmp < signal-1) tmp++;
if(SenderOkay >= 195) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
else PPM_diff[index] = 0;
PPM_in[index] = tmp;
}
index++;
}
}
}
#endif
 
 
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/rc.h
0,0 → 1,42
/*#######################################################################################
Derkodieren eines RC Summen Signals
#######################################################################################*/
 
#ifndef _RC_H
#define _RC_H
 
#if defined (__AVR_ATmega644__)
#define TIMER_RELOAD_VALUE 250
#endif
 
#if defined (__AVR_ATmega644P__)
#define TIMER_RELOAD_VALUE 250
#endif
 
#define MAX_RC_IN 16+12+3+4 // 16ch + 12ser + 3stages + 4 reserved
 
extern void rc_sum_init (void);
 
extern volatile int PPM_in[MAX_RC_IN];
extern volatile int PPM_diff[MAX_RC_IN]; // das diffenzierte Stick-Signal
extern volatile unsigned char NewPpmData;
extern volatile char Channels,tmpChannels;
extern unsigned int PPM_Neutral;
 
// 0 -> frei bzw. ACT rssi
// 1 - 16 -> 1-16
// 17 - 28 -> 12 Serial channels
// 29 -> WP-Event kanal
// 30 -> -127
// 31 -> 0
// 32 -> 128
 
#define SERIAL_POTI_START 17
#define WP_EVENT_PPM_IN 29
#define PPM_IN_OFF 30
#define PPM_IN_MAX 31
#define PPM_IN_MID 32
 
#define FromNC_WP_EventChannel PPM_in[WP_EVENT_PPM_IN] // WP_EVENT-Channel-Value
 
#endif //_RC_H
/branches/V2.08a_Rens_Testversion/FlightCtrl/sbus.c
0,0 → 1,199
/*#######################################################################################
Decodes the sbus protocol
#######################################################################################*/
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software Nutzungsbedingungen (english version: see below)
// + der Fa. HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland - nachfolgend Lizenzgeber genannt -
// + Der Lizenzgeber räumt dem Kunden ein nicht-ausschließliches, zeitlich und räumlich* unbeschränktes Recht ein, die im den
// + Mikrocontroller verwendete Firmware für die Hardware Flight-Ctrl, Navi-Ctrl, BL-Ctrl, MK3Mag & PC-Programm MikroKopter-Tool
// + - nachfolgend Software genannt - nur für private Zwecke zu nutzen.
// + Der Einsatz dieser Software ist nur auf oder mit Produkten des Lizenzgebers zulässig.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die vom Lizenzgeber gelieferte Software ist urheberrechtlich geschützt. Alle Rechte an der Software sowie an sonstigen im
// + Rahmen der Vertragsanbahnung und Vertragsdurchführung überlassenen Unterlagen stehen im Verhältnis der Vertragspartner ausschließlich dem Lizenzgeber zu.
// + Die in der Software enthaltenen Copyright-Vermerke, Markenzeichen, andere Rechtsvorbehalte, Seriennummern sowie
// + sonstige der Programmidentifikation dienenden Merkmale dürfen vom Kunden nicht verändert oder unkenntlich gemacht werden.
// + Der Kunde trifft angemessene Vorkehrungen für den sicheren Einsatz der Software. Er wird die Software gründlich auf deren
// + Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Die Haftung des Lizenzgebers wird - soweit gesetzlich zulässig - begrenzt in Höhe des typischen und vorhersehbaren
// + Schadens. Die gesetzliche Haftung bei Personenschäden und nach dem Produkthaftungsgesetz bleibt unberührt. Dem Lizenzgeber steht jedoch der Einwand
// + des Mitverschuldens offen.
// + Der Kunde trifft angemessene Vorkehrungen für den Fall, dass die Software ganz oder teilweise nicht ordnungsgemäß arbeitet.
// + Er wird die Software gründlich auf deren Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Der Kunde wird er seine Daten vor Einsatz der Software nach dem Stand der Technik sichern.
// + Der Kunde ist darüber unterrichtet, dass der Lizenzgeber seine Daten im zur Vertragsdurchführung erforderlichen Umfang
// + und auf Grundlage der Datenschutzvorschriften erhebt, speichert, verarbeitet und, sofern notwendig, an Dritte übermittelt.
// + *) Die räumliche Nutzung bezieht sich nur auf den Einsatzort, nicht auf die Reichweite der programmierten Software.
// + #### ENDE DER NUTZUNGSBEDINGUNGEN ####'
// + Hinweis: Informationen über erweiterte Nutzungsrechte (wie z.B. Nutzung für nicht-private Zwecke) sind auf Anfrage per Email an info(@)hisystems.de verfügbar.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software LICENSING TERMS
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + of HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland, Germany - the Licensor -
// + The Licensor grants the customer a non-exclusive license to use the microcontroller firmware of the Flight-Ctrl, Navi-Ctrl, BL-Ctrl, and MK3Mag hardware
// + (the Software) exclusively for private purposes. The License is unrestricted with respect to time and territory*.
// + The Software may only be used with the Licensor's products.
// + The Software provided by the Licensor is protected by copyright. With respect to the relationship between the parties to this
// + agreement, all rights pertaining to the Software and other documents provided during the preparation and execution of this
// + agreement shall be the property of the Licensor.
// + The information contained in the Software copyright notices, trademarks, other legal reservations, serial numbers and other
// + features that can be used to identify the program may not be altered or defaced by the customer.
// + The customer shall be responsible for taking reasonable precautions
// + for the safe use of the Software. The customer shall test the Software thoroughly regarding its suitability for the
// + intended purpose before implementing it for actual operation. The Licensor's liability shall be limited to the extent of typical and
// + foreseeable damage to the extent permitted by law, notwithstanding statutory liability for bodily injury and product
// + liability. However, the Licensor shall be entitled to the defense of contributory negligence.
// + The customer will take adequate precautions in the case, that the software is not working properly. The customer will test
// + the software for his purpose before any operational usage. The customer will backup his data before using the software.
// + The customer understands that the Licensor collects, stores and processes, and, where required, forwards, customer data
// + to third parties to the extent necessary for executing the agreement, subject to applicable data protection and privacy regulations.
// + *) The territory aspect only refers to the place where the Software is used, not its programmed range.
// + #### END OF LICENSING TERMS ####
// + Note: For information on license extensions (e.g. commercial use), please contact us at info(@)hisystems.de.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "sbus.h"
#include "main.h"
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
unsigned char NewSBusData = 0, sBusBuffer[25];
 
//############################################################################
// USART1 initialisation from killagreg
void SbusUartInit(void)
//############################################################################
{
// -- Start of USART1 initialisation for Spekturm seriell-mode
// USART1 Control and Status Register A, B, C and baud rate register
uint8_t sreg = SREG;
uint16_t ubrr = (uint16_t) ((uint32_t) SYSCLK/(8 * 100000) - 1);
// disable all interrupts before reconfiguration
cli();
// disable RX-Interrupt
UCSR1B &= ~(1 << RXCIE1);
// disable TX-Interrupt
UCSR1B &= ~(1 << TXCIE1);
// disable DRE-Interrupt
UCSR1B &= ~(1 << UDRIE1);
/*
// set direction of RXD1 and TXD1 pins
// set RXD1 (PD2) as an input pin
PORTD |= (1 << PORTD2);
DDRD &= ~(1 << DDD2);
// set TXD1 (PD3) as an output pin
PORTD |= (1 << PORTD3);
DDRD |= (1 << DDD3);
*/
// USART0 Baud Rate Register
// set clock divider
UBRR1H = (uint8_t)(ubrr>>8);
UBRR1L = (uint8_t)ubrr;
// enable double speed operation
UCSR1A |= (1 << U2X1);
// enable receiver and transmitter
//UCSR1B = (1<<RXEN1)|(1<<TXEN1);
 
UCSR1B = (1<<RXEN1);
// set asynchronous mode
UCSR1C &= ~(1 << UMSEL11);
UCSR1C &= ~(1 << UMSEL10);
// parity
UCSR1C <= (1 << UPM11); // even
UCSR1C &= ~(1 << UPM10);
// stop bit
UCSR1C |= (1 << USBS1); // two
// 8-bit
UCSR1B &= ~(1 << UCSZ12);
UCSR1C |= (1 << UCSZ11);
UCSR1C |= (1 << UCSZ10);
// flush receive buffer explicit
while(UCSR1A & (1<<RXC1)) UDR1;
// enable RX-interrupts at the end
UCSR1B |= (1 << RXCIE1);
// -- End of USART1 initialisation
// restore global interrupt flags
sBusBuffer[23] |= 4; // This Bit contains the 'Signal loss'
SREG = sreg;
return;
}
 
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#define MIN_FRAMEGAP 68 // 7ms
#define MAX_BYTEGAP 3 // 310us
 
//############################################################################
// Is called by the uart RX interrupt
//############################################################################
void SbusParser(unsigned char udr)
{
static unsigned char ptr = 0;
if(!SpektrumTimer && udr == 0x0f) // wait for the start
{
ptr = 0;
SpektrumTimer = 80; // 8ms gap
}
else
{
if(++ptr == 24) // last byte
{
NewSBusData = 1;
}
else
if(ptr > 24) ptr = 25;
else
{
sBusBuffer[ptr] = udr; // collect all bytes
}
}
}
 
void ProcessSBus(void)
{
static unsigned char load = 0;
unsigned char bitmask8 = 1, sbyte = 2, i, index = 1, process;
unsigned int bitmask11 = 256;
signed int signal = 0,tmp;
if(!(sBusBuffer[23] & 4)) // This Bit contains the 'Signal loss'
{
TIMSK1 &= ~_BV(ICIE1); // disable PPM-Input
if(EE_Parameter.FailsafeChannel == 0 || PPM_in[EE_Parameter.FailsafeChannel] < 100) // forces Failsafe if the receiver doesn't have 'signal loss' on Failsafe
{
if(SenderOkay < 200) SenderOkay += 20; else SenderOkay = 200;
}
signal = sBusBuffer[1];
if(!load--) { process = (16*11 - 8); load = 2;} else process = (4*11 - 8); // lowers the processor load
for(i = 0; i < process; i++) // collect the single bits
{
if(sBusBuffer[sbyte] & bitmask8) signal |= bitmask11;
bitmask8 *= 2;
if(!bitmask8)
{
bitmask8 = 1;
sbyte++;
}
bitmask11 *= 2;
if(bitmask11 == 2048)
{
bitmask11 = 1;
signal = (signal-1024) / 5; // the resolution is higher than required
tmp = (3 * (PPM_in[index]) + signal) / 4;
if(tmp > signal+1) tmp--; else
if(tmp < signal-1) tmp++;
if(SenderOkay >= 195) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
else PPM_diff[index] = 0;
PPM_in[index] = tmp;
signal = 0;
index++; // next channel
}
}
NewPpmData = 0; // Null bedeutet: Neue Daten
}
NewSBusData = 0;
}
#endif
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/sbus.h
0,0 → 1,11
#ifndef _SBUS_H
#define _SBUS_H
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
extern unsigned char NewSBusData, sBusBuffer[25];
extern void SbusParser(unsigned char);
extern void SbusUartInit(void);
extern void ProcessSBus(void);
 
#endif
#endif
/branches/V2.08a_Rens_Testversion/FlightCtrl/spi.c
0,0 → 1,440
// ######################## SPI - FlightCtrl ###################
#include "main.h"
#include "eeprom.h"
 
//struct str_ToNaviCtrl_Version ToNaviCtrl_Version;
//struct str_FromNaviCtrl_Version FromNaviCtrl_Version;
struct str_ToNaviCtrl ToNaviCtrl;
struct str_FromNaviCtrl FromNaviCtrl;
struct str_FromNaviCtrl_Value FromNaviCtrl_Value;
struct str_SPI_VersionInfo NC_Version;
struct str_GPSInfo GPSInfo;
 
unsigned char SPI_BufferIndex;
unsigned char SPI_RxBufferIndex;
signed char FromNC_Rotate_C = 32, FromNC_Rotate_S = 0;
signed char FromNC_WP_EventChannel_New = 0;
 
volatile unsigned char SPI_Buffer[sizeof(FromNaviCtrl)];
unsigned char *SPI_TX_Buffer;
 
unsigned char SPITransferCompleted, SPI_ChkSum;
unsigned char SPI_RxDataValid,NaviDataOkay = 250;
 
unsigned char SPI_CommandSequence[] = { SPI_FCCMD_STICK, SPI_FCCMD_USER, SPI_FCCMD_SLOW,
SPI_FCCMD_STICK, SPI_FCCMD_VERSION, SPI_FCCMD_BL_ACCU,
SPI_FCCMD_STICK, SPI_FCCMD_USER, SPI_FCCMD_MISC,SPI_FCCMD_SERVOS,
SPI_FCCMD_STICK, SPI_FCCMD_PARAMETER2, SPI_FCCMD_BL_ACCU
};
unsigned char SPI_CommandCounter = 0;
unsigned char NC_ErrorCode = 0;
unsigned char NC_GPS_ModeCharacter = ' ';
unsigned char EarthMagneticField = 0;
unsigned char EarthMagneticInclination = 0, EarthMagneticInclinationTheoretic = 0;
unsigned char NC_To_FC_Flags = 0;
//unsigned char NC_To_FC_MaxAltitude = 0; // this is a Parameter on the SD-card
signed int POI_KameraNick = 0; // in 0,1°
vector16_t MagVec = {0,0,0};
 
#ifdef USE_SPI_COMMUNICATION
 
//------------------------------------------------------
void SPI_MasterInit(void)
{
DDR_SPI |= (1<<DD_MOSI)|(1<<DD_SCK); // Set MOSI and SCK output, all others input
SLAVE_SELECT_DDR_PORT |= (1 << SPI_SLAVE_SELECT);
 
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR1)|(0<<SPR0)|(0<<SPIE); // Enable SPI, Master, set clock rate fck/64
SPSR = 0;//(1<<SPI2X);
 
SLAVE_SELECT_PORT |= (1 << SPI_SLAVE_SELECT);
SPITransferCompleted = 1;
 
//SPDR = 0x00; // dummy write
 
ToNaviCtrl.Sync1 = 0xAA;
ToNaviCtrl.Sync2 = 0x83;
 
ToNaviCtrl.Command = SPI_FCCMD_USER;
ToNaviCtrl.IntegralNick = 0;
ToNaviCtrl.IntegralRoll = 0;
FromNaviCtrl_Value.SerialDataOkay = 0;
SPI_RxDataValid = 0;
 
}
 
//------------------------------------------------------
unsigned char SPI_StartTransmitPacket(void)
{
if(!SPITransferCompleted) return(0);
SLAVE_SELECT_PORT &= ~(1 << SPI_SLAVE_SELECT); // SelectSlave
SPI_TX_Buffer = (unsigned char *) &ToNaviCtrl;
 
ToNaviCtrl.Command = SPI_CommandSequence[SPI_CommandCounter++];
if (SPI_CommandCounter >= sizeof(SPI_CommandSequence)) SPI_CommandCounter = 0;
 
SPITransferCompleted = 0;
UpdateSPI_Buffer(); // update buffer
SPI_BufferIndex = 1;
ToNaviCtrl.Chksum = ToNaviCtrl.Sync1;
SPDR = ToNaviCtrl.Sync1; // Start transmission
return(1);
}
 
//------------------------------------------------------
//SIGNAL(SIG_SPI)
void SPI_TransmitByte(void)
{
static unsigned char SPI_RXState = 0;
unsigned char rxdata;
static unsigned char rxchksum;
 
if (SPITransferCompleted) return;
if (!(SPSR & (1 << SPIF))) return;
BytegapSPI = SPI_BYTEGAP;
// _delay_us(30);
SLAVE_SELECT_PORT |= (1 << SPI_SLAVE_SELECT); // DeselectSlave
 
rxdata = SPDR;
switch ( SPI_RXState)
{
case 0:
SPI_RxBufferIndex = 0;
rxchksum = rxdata;
if (rxdata == 0x81 ) { SPI_RXState = 1; } // 1. Syncbyte ok
 
break;
 
case 1:
if (rxdata == 0x55) { rxchksum += rxdata; SPI_RXState = 2; } // 2. Syncbyte ok
else SPI_RXState = 0;
break;
 
case 2:
SPI_Buffer[SPI_RxBufferIndex++]= rxdata; // get data
//DebugOut.Analog[19]++;
if (SPI_RxBufferIndex >= sizeof(FromNaviCtrl))
{
if (rxdata == rxchksum)
{
unsigned char *ptr = (unsigned char *)&FromNaviCtrl;
memcpy(ptr, (unsigned char *) SPI_Buffer, sizeof(SPI_Buffer));
SPI_RxDataValid = 1;
}
else
{
SPI_RxDataValid = 0;
}
SPI_RXState = 0;
}
else rxchksum += rxdata;
break;
 
}
 
if (SPI_BufferIndex < sizeof(ToNaviCtrl))
{
SLAVE_SELECT_PORT &= ~(1 << SPI_SLAVE_SELECT); // SelectSlave
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
SPDR = SPI_TX_Buffer[SPI_BufferIndex];
ToNaviCtrl.Chksum += SPI_TX_Buffer[SPI_BufferIndex];
}
else SPITransferCompleted = 1;
 
SPI_BufferIndex++;
}
 
 
//------------------------------------------------------
void UpdateSPI_Buffer(void)
{
signed int tmp;
static unsigned char motorindex, oldcommand = SPI_NCCMD_VERSION, slow_command;
ToNaviCtrl.IntegralNick = (int) (IntegralNick / (long)(EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
ToNaviCtrl.IntegralRoll = (int) (IntegralRoll / (long)(EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
ToNaviCtrl.GyroCompass = (10 * ErsatzKompass) / GIER_GRAD_FAKTOR;
ToNaviCtrl.GyroGier = (signed int) AdNeutralGier - AdWertGier;
ToNaviCtrl.AccNick = ((int) ACC_AMPLIFY * (NaviAccNick / NaviCntAcc))/4;
ToNaviCtrl.AccRoll = ((int) ACC_AMPLIFY * (NaviAccRoll / NaviCntAcc))/4;
NaviCntAcc = 0; NaviAccNick = 0; NaviAccRoll = 0;
// ToNaviCtrl.User8 = Parameter_UserParam8;
// ToNaviCtrl.CalState = WinkelOut.CalcState;
switch(ToNaviCtrl.Command) //
{
case SPI_FCCMD_USER:
ToNaviCtrl.Param.Byte[0] = Parameter_UserParam1;
ToNaviCtrl.Param.Byte[1] = Parameter_UserParam2;
ToNaviCtrl.Param.Byte[2] = Parameter_UserParam3;
ToNaviCtrl.Param.Byte[3] = Parameter_UserParam4;
ToNaviCtrl.Param.Byte[4] = Parameter_UserParam5;
ToNaviCtrl.Param.Byte[5] = Parameter_UserParam6;
ToNaviCtrl.Param.Byte[6] = Parameter_UserParam7;
ToNaviCtrl.Param.Byte[7] = Parameter_UserParam8;
ToNaviCtrl.Param.Byte[8] = FC_StatusFlags;
//if(FC_StatusFlags2 & FC_STATUS2_WAIT_FOR_TAKEOFF) ToNaviCtrl.Param.Byte[8] &= ~FC_STATUS_FLY;
FC_StatusFlags &= ~(FC_STATUS_CALIBRATE | FC_STATUS_START);
ToNaviCtrl.Param.Byte[9] = ActiveParamSet;
ToNaviCtrl.Param.Byte[10] = (unsigned char) UBat; // 0.1V
ToNaviCtrl.Param.Byte[11] = FC_StatusFlags2;
if(!(PORTC & (1<<PORTC2))) FC_StatusFlags2 &= ~FC_STATUS2_OUT1_ACTIVE; // Out1 (J16)
break;
case SPI_FCCMD_BL_ACCU:
ToNaviCtrl.Param.Int[0] = Capacity.ActualCurrent; // 0.1A
ToNaviCtrl.Param.Byte[2] = motorindex;
ToNaviCtrl.Param.Byte[3] = Capacity.MinOfMaxPWM;
ToNaviCtrl.Param.Byte[4] = GetChannelValue(EE_Parameter.NaviGpsModeChannel); // GPS-Mode control
ToNaviCtrl.Param.Byte[5] = VarioCharacter;
ToNaviCtrl.Param.Byte[6] = Motor[motorindex].NotReadyCnt;
ToNaviCtrl.Param.Byte[7] = Motor[motorindex].Version;
ToNaviCtrl.Param.Byte[8] = Motor[motorindex].MaxPWM;
ToNaviCtrl.Param.Byte[9] = Motor[motorindex].State;
ToNaviCtrl.Param.Byte[10] = Motor[motorindex].Temperature;
ToNaviCtrl.Param.Byte[11] = Motor[motorindex].Current;
 
if(Mixer.Motor[++motorindex][0] <= 0) // next motor is not used ?
while(Mixer.Motor[motorindex][0] <= 0 && motorindex) motorindex = (motorindex + 1) % 13;
break;
case SPI_FCCMD_SLOW:
switch(slow_command)
{
case 0:
ToNaviCtrl.Command = SPI_FCCMD_PARAMETER1; slow_command = 1;
ToNaviCtrl.Param.Byte[0] = (unsigned char) BattLowVoltageWarning; //0.1V
ToNaviCtrl.Param.Byte[1] = EE_Parameter.NaviGpsGain; // Parameters for the Naviboard
ToNaviCtrl.Param.Byte[2] = EE_Parameter.NaviGpsP;
ToNaviCtrl.Param.Byte[3] = EE_Parameter.NaviGpsI;
ToNaviCtrl.Param.Byte[4] = EE_Parameter.NaviGpsD;
ToNaviCtrl.Param.Byte[5] = EE_Parameter.NaviGpsA;
ToNaviCtrl.Param.Byte[6] = EE_Parameter.NaviGpsMinSat;
ToNaviCtrl.Param.Byte[7] = EE_Parameter.NaviStickThreshold;
ToNaviCtrl.Param.Byte[8] = EE_Parameter.NaviMaxFlyingRange;
ToNaviCtrl.Param.Byte[9] = EE_Parameter.NaviWindCorrection;
ToNaviCtrl.Param.Byte[10] = EE_Parameter.NaviAccCompensation;
ToNaviCtrl.Param.Byte[11] = EE_Parameter.NaviAngleLimitation;
break;
default:
ToNaviCtrl.Command = SPI_FCCMD_NEUTRAL; slow_command = 0;
ToNaviCtrl.Param.Int[0] = AdNeutralNick; // 0 & 1
ToNaviCtrl.Param.Int[1] = AdNeutralRoll; // 2 & 3
ToNaviCtrl.Param.Int[2] = AdNeutralGier; // 4 & 5
ToNaviCtrl.Param.Byte[6] = EE_Parameter.Driftkomp;
ToNaviCtrl.Param.Byte[7] = HoverGas / 4;
ToNaviCtrl.Param.Byte[8] = 0;
ToNaviCtrl.Param.Byte[9] = 0;
ToNaviCtrl.Param.Byte[10] = 0;
ToNaviCtrl.Param.Byte[11] = 0;
break;
}
break;
case SPI_FCCMD_PARAMETER2:
ToNaviCtrl.Param.Byte[0] = EE_Parameter.AutoPhotoDistance; // Distance between Photo releases
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
// create the ToNC_SpeakHoTT
if(EE_Parameter.Receiver != RECEIVER_HOTT)
{
if(JetiBeep != 'B') JetiBeep = pgm_read_byte(&JETI_CODE[HoTT_Waring()]);
else HoTT_Waring();
}
ToNaviCtrl.Param.Byte[1] = ToNC_SpeakHoTT;
#else
ToNaviCtrl.Param.Byte[1] = 0;
#endif
ToNaviCtrl.Param.Byte[2] = EE_Parameter.LandingSpeed;
ToNaviCtrl.Param.Byte[3] = EE_Parameter.ComingHomeAltitude;
ToNaviCtrl.Param.Byte[4] = LowVoltageHomeActive;
ToNaviCtrl.Param.Byte[5] = ToNC_Load_WP_List;
ToNaviCtrl.Param.Byte[6] = ToNC_Load_SingePoint;
ToNaviCtrl.Param.Byte[7] = ToNC_Store_SingePoint;
ToNC_Load_WP_List = 0;
ToNC_Load_SingePoint = 0;
ToNC_Store_SingePoint = 0;
if(Parameter_KompassWirkung) ToNaviCtrl.Param.sInt[4] = KompassSollWert; // Pos. 8 & 9
else ToNaviCtrl.Param.sInt[4] = ErsatzKompassInGrad; // answer with the compass value if the Compass effect is zero
ToNaviCtrl.Param.Byte[10] = EE_Parameter.AutoPhotoAtitudes;
ToNaviCtrl.Param.Byte[11] = EE_Parameter.SingleWpSpeed;
break;
case SPI_FCCMD_STICK:
cli();
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
ToNaviCtrl.Param.Byte[0] = (char) tmp;
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
ToNaviCtrl.Param.Byte[1] = (char) tmp;
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
ToNaviCtrl.Param.Byte[2] = (char) tmp;
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
sei();
ToNaviCtrl.Param.Byte[3] = (char) tmp;
ToNaviCtrl.Param.Byte[4] = (unsigned char) Poti[0];
ToNaviCtrl.Param.Byte[5] = (unsigned char) Poti[1];
ToNaviCtrl.Param.Byte[6] = (unsigned char) Poti[2];
ToNaviCtrl.Param.Byte[7] = (unsigned char) Poti[3];
ToNaviCtrl.Param.Byte[8] = (unsigned char) Poti[4];
ToNaviCtrl.Param.Byte[9] = (unsigned char) Poti[5];
ToNaviCtrl.Param.Byte[10] = (unsigned char) Poti[6];
ToNaviCtrl.Param.Byte[11] = (unsigned char) Poti[7];
break;
case SPI_FCCMD_MISC:
if(WinkelOut.CalcState >= 5)
{
WinkelOut.CalcState = 0;
ToNaviCtrl.Param.Byte[0] = 5;
}
else ToNaviCtrl.Param.Byte[0] = WinkelOut.CalcState;
ToNaviCtrl.Param.Byte[1] = EE_Parameter.NaviPH_LoginTime;
ToNaviCtrl.Param.Int[1] = (int)(HoehenWert/5);
ToNaviCtrl.Param.Int[2] = (int)(SollHoehe/5);
ToNaviCtrl.Param.Byte[6] = EE_Parameter.NaviGpsPLimit;
ToNaviCtrl.Param.Byte[7] = EE_Parameter.NaviGpsILimit;
ToNaviCtrl.Param.Byte[8] = EE_Parameter.NaviGpsDLimit;
ToNaviCtrl.Param.Byte[9] = (unsigned char) SenderOkay;
ToNaviCtrl.Param.Byte[10] = NC_Wait_for_LED;
ToNaviCtrl.Param.Byte[11] = DebugOut.Analog[7] / 4; //GasMischanteil
break;
case SPI_FCCMD_VERSION:
ToNaviCtrl.Param.Byte[0] = VERSION_MAJOR;
ToNaviCtrl.Param.Byte[1] = VERSION_MINOR;
ToNaviCtrl.Param.Byte[2] = VERSION_PATCH;
ToNaviCtrl.Param.Byte[3] = NC_SPI_COMPATIBLE;
ToNaviCtrl.Param.Byte[4] = PlatinenVersion;
ToNaviCtrl.Param.Byte[5] = VersionInfo.HardwareError[0];
ToNaviCtrl.Param.Byte[6] = VersionInfo.HardwareError[1];
VersionInfo.HardwareError[0] &= ~FC_ERROR0_CAREFREE; // VersionInfo.HardwareError[0] = 0;
VersionInfo.HardwareError[1] &= FC_ERROR1_MIXER;
ToNaviCtrl.Param.Byte[7] = EE_Parameter.CompassOffset;
ToNaviCtrl.Param.Byte[8] = Parameter_GlobalConfig;
ToNaviCtrl.Param.Byte[9] = Parameter_ExtraConfig;
ToNaviCtrl.Param.Byte[10] = EE_Parameter.OrientationAngle;
ToNaviCtrl.Param.Byte[11] = EE_Parameter.GlobalConfig3;
break;
case SPI_FCCMD_SERVOS:
ToNaviCtrl.Param.Int[0] = Capacity.UsedCapacity; // mAh
ToNaviCtrl.Param.Byte[2] = Parameter_ServoNickControl;
ToNaviCtrl.Param.Byte[3] = Parameter_ServoRollControl;
ToNaviCtrl.Param.Byte[4] = DebugOut.Analog[28]; // I2C-Error counter
ToNaviCtrl.Param.Byte[5] = FC_StatusFlags3;
ToNaviCtrl.Param.Byte[6] = EE_Parameter.NaviDescendRange; // in 10m
ToNaviCtrl.Param.Byte[7] = Parameter_MaximumAltitude;
ToNaviCtrl.Param.Int[4] = FlugMinutenGesamt; // 8 & 9
ToNaviCtrl.Param.Byte[10] = EE_Parameter.CamOrientation;
ToNaviCtrl.Param.Byte[11] = VersionInfo.BL_Firmware;
break;
}
if(SPI_RxDataValid)
{
if(FromNaviCtrl.Command != oldcommand) NaviDataOkay = 250;
oldcommand = FromNaviCtrl.Command;
CalculateCompassTimer = 1;
if(abs(FromNaviCtrl.GPS_Nick) < 512 && abs(FromNaviCtrl.GPS_Roll) < 512 && (EE_Parameter.GlobalConfig & CFG_GPS_AKTIV))
{
GPS_Nick = FromNaviCtrl.GPS_Nick;
GPS_Roll = FromNaviCtrl.GPS_Roll;
}
 
// update compass readings
// MagVec.x = FromNaviCtrl.MagVecX;
// MagVec.y = FromNaviCtrl.MagVecY;
// MagVec.z = FromNaviCtrl.MagVecZ;
 
if(FromNaviCtrl.CompassValue <= 360) KompassValue = FromNaviCtrl.CompassValue;
// KompassRichtung = ((540 + KompassValue - KompassSollWert) % 360) - 180;
 
if(FromNaviCtrl.BeepTime > beeptime && !DisableRcOffBeeping) beeptime = FromNaviCtrl.BeepTime;
switch (FromNaviCtrl.Command)
{
case SPI_NCCMD_KALMAN:
FromNaviCtrl_Value.Kalman_K = FromNaviCtrl.Param.sByte[0];
FromNaviCtrl_Value.Kalman_MaxFusion = FromNaviCtrl.Param.sByte[1];
FromNaviCtrl_Value.Kalman_MaxDrift = FromNaviCtrl.Param.sByte[2];
KompassFusion = FromNaviCtrl.Param.sByte[3];
FromNaviCtrl_Value.GpsZ = FromNaviCtrl.Param.Byte[4];
FromNC_Rotate_C = FromNaviCtrl.Param.Byte[5];
FromNC_Rotate_S = FromNaviCtrl.Param.Byte[6];
GPS_Aid_StickMultiplikator = FromNaviCtrl.Param.Byte[7];
if(CareFree && FromNaviCtrl.Param.sInt[4] >= 0)
{
KompassSollWert = FromNaviCtrl.Param.sInt[4]; // bei Carefree kann NC den Kompass-Sollwinkel vorgeben
/*
if(EE_Parameter.CamOrientation) // Kamera angle is not front
{
KompassSollWert += 360 - ((unsigned int) EE_Parameter.CamOrientation * 15);
KompassSollWert %= 360;
}
*/
}
POI_KameraNick = (POI_KameraNick + FromNaviCtrl.Param.sInt[5]) / 2; // FromNaviCtrl.Param.sInt[5]; // Nickwinkel
break;
case SPI_NCCMD_VERSION:
NC_Version.Major = FromNaviCtrl.Param.Byte[0];
NC_Version.Minor = FromNaviCtrl.Param.Byte[1];
NC_Version.Patch = FromNaviCtrl.Param.Byte[2];
NC_Version.Compatible = FromNaviCtrl.Param.Byte[3];
NC_Version.Hardware = FromNaviCtrl.Param.Byte[4];
DebugOut.Status[0] |= FromNaviCtrl.Param.Byte[5];
DebugOut.Status[1] = (DebugOut.Status[1] & (0x01|0x02)) | (FromNaviCtrl.Param.Byte[6] & (0x04 | 0x08));
NC_ErrorCode = FromNaviCtrl.Param.Byte[7];
NC_GPS_ModeCharacter = FromNaviCtrl.Param.Byte[8];
FromNaviCtrl_Value.SerialDataOkay = FromNaviCtrl.Param.Byte[9];
NC_To_FC_Flags = FromNaviCtrl.Param.Byte[10];
//NC_To_FC_MaxAltitude = FromNaviCtrl.Param.Byte[11];
break;
case SPI_NCCMD_GPSINFO:
GPSInfo.Flags = FromNaviCtrl.Param.Byte[0];
GPSInfo.NumOfSats = FromNaviCtrl.Param.Byte[1];
GPSInfo.SatFix = FromNaviCtrl.Param.Byte[2];
GPSInfo.Speed = FromNaviCtrl.Param.Byte[3];
GPSInfo.HomeDistance = FromNaviCtrl.Param.Int[2];
GPSInfo.HomeBearing = FromNaviCtrl.Param.sInt[3];
if((signed char) PPM_in[WP_EVENT_PPM_IN] == -127) // zuletzt war der WP-Event auf Null
{
if(!FromNC_WP_EventChannel_New) FromNC_WP_EventChannel_New = (unsigned char) FromNaviCtrl.Param.Byte[8] + 127; // zwischenspeichern, damit keiner verpasst wird
}
PPM_in[WP_EVENT_PPM_IN] = (signed char) FromNaviCtrl.Param.Byte[8]; // WP_EVENT-Channel-Value (FromNC_WP_EventChannel)
FromNC_AltitudeSpeed = FromNaviCtrl.Param.Byte[9];
FromNC_AltitudeSetpoint = (long) FromNaviCtrl.Param.sInt[5] * 10; // in cm
break;
case SPI_MISC:
EarthMagneticField = FromNaviCtrl.Param.Byte[0];
EarthMagneticInclination = FromNaviCtrl.Param.Byte[1];
EarthMagneticInclinationTheoretic = FromNaviCtrl.Param.Byte[2];
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(FromNaviCtrl.Param.Byte[3])
if(!SpeakHoTT || (SpeakHoTT >= SPEAK_GPS_HOLD && SpeakHoTT <= SPEAK_GPS_OFF)) SpeakHoTT = FromNaviCtrl.Param.Byte[3];
NaviData_TargetDistance = FromNaviCtrl.Param.Int[3];
#endif
NaviData_WaypointIndex = FromNaviCtrl.Param.Byte[4];
NaviData_WaypointNumber = FromNaviCtrl.Param.Byte[5];
NaviData_TargetHoldTime = FromNaviCtrl.Param.Byte[8];
NaviData_MaxWpListIndex = FromNaviCtrl.Param.Byte[9];
CompassCorrected = FromNaviCtrl.Param.sInt[5]; // Bytes 10 & 11
break;
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
case SPI_NCCMD_HOTT_DATA:
//if(EE_Parameter.Receiver == RECEIVER_HOTT)
NC_Fills_HoTT_Telemety();
break;
#endif
 
// 0 = 0,1
// 1 = 2,3
// 2 = 4,5
// 3 = 6,7
// 4 = 8,9
// 5 = 10,11
default:
break;
}
}
else
{
// KompassValue = 0;
// KompassRichtung = 0;
GPS_Nick = 0;
GPS_Roll = 0;
}
}
 
#endif
 
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/spi.h
0,0 → 1,200
// ######################## SPI - FlightCtrl ###################
#ifndef _SPI_H
#define _SPI_H
 
#include <util/delay.h>
#include "vector.h"
 
#define USE_SPI_COMMUNICATION
#define SPI_BYTEGAP 5
//-----------------------------------------
#define DDR_SPI DDRB
#define SLAVE_SELECT_DDR_PORT DDRC
#define SLAVE_SELECT_PORT PORTC
 
#if defined(__AVR_ATmega1284P__)
#define DD_SS PORTB4
#define DD_SCK PORTB7
#define DD_MOSI PORTB5
#define DD_MISO PORTB6
#define SPI_SLAVE_SELECT PORTC5
#else
#define DD_SS PB4
#define DD_SCK PB7
#define DD_MOSI PB5
#define DD_MISO PB6
#define SPI_SLAVE_SELECT PC5
#endif
 
// for compatibility reasons gcc3.x <-> gcc4.x
#ifndef SPCR
#define SPCR SPCR0
#endif
#ifndef SPE
#define SPE SPE0
#endif
#ifndef MSTR
#define MSTR MSTR0
#endif
#ifndef SPR1
#define SPR1 SPR01
#endif
#ifndef SPR0
#define SPR0 SPR00
#endif
#ifndef SPIE
#define SPIE SPIE0
#endif
#ifndef SPDR
#define SPDR SPDR0
#endif
#ifndef SPIF
#define SPIF SPIF0
#endif
#ifndef SPSR
#define SPSR SPSR0
#endif
// -------------------------
 
#define SPI_FCCMD_USER 10
#define SPI_FCCMD_STICK 11
#define SPI_FCCMD_MISC 12
#define SPI_FCCMD_PARAMETER1 13
#define SPI_FCCMD_VERSION 14
#define SPI_FCCMD_SERVOS 15
#define SPI_FCCMD_BL_ACCU 16
#define SPI_FCCMD_PARAMETER2 17
#define SPI_FCCMD_NEUTRAL 18
#define SPI_FCCMD_SLOW 19
 
struct str_ToNaviCtrl
{
unsigned char Sync1, Sync2;
unsigned char Command;
signed int IntegralNick;
signed int IntegralRoll;
signed int AccNick;
signed int AccRoll;
signed int GyroCompass;
signed int GyroNick;
signed int GyroRoll;
signed int GyroGier;
unsigned int FCStatus;
union
{
unsigned char Byte[12];
char sByte[12];
unsigned int Int[6];
int sInt[6];
unsigned long Long[3];
long sLong[3];
float Float[3];
} Param;
unsigned char Chksum;
};
 
#define SPI_NCCMD_KALMAN 103
#define SPI_NCCMD_VERSION 104
#define SPI_NCCMD_GPSINFO 105
#define SPI_NCCMD_HOTT_DATA 106
#define SPI_MISC 107
 
struct str_FromNaviCtrl
{
unsigned char Command;
signed int GPS_Nick;
signed int GPS_Roll;
signed int MagVecX;
signed int CompassValue;
signed int AccErrorN;
signed int AccErrorR;
signed int MagVecY;
signed int MagVecZ;
unsigned int BeepTime;
union
{
unsigned char Byte[12];
char sByte[12];
unsigned int Int[6];
int sInt[6];
unsigned long Long[3];
long sLong[3];
float Float[3];
} Param;
unsigned char Chksum;
};
 
struct str_FromNaviCtrl_Value
{
signed char Kalman_K;
signed char Kalman_MaxDrift;
signed char Kalman_MaxFusion;
unsigned char SerialDataOkay;
signed char GpsZ;
};
 
struct str_SPI_VersionInfo
{
unsigned char Major;
unsigned char Minor;
unsigned char Patch;
unsigned char Compatible;
unsigned char Hardware;
};
 
// Satfix types for GPSData.SatFix
#define SATFIX_NONE 0x00
#define SATFIX_DEADRECKOING 0x01
#define SATFIX_2D 0x02
#define SATFIX_3D 0x03
#define SATFIX_GPS_DEADRECKOING 0x04
#define SATFIX_TIMEONLY 0x05
// Flags for interpretation of the GPSData.Flags
#define FLAG_GPSFIXOK 0x01 // (i.e. within DOP & ACC Masks)
#define FLAG_DIFFSOLN 0x02 // (is DGPS used)
#define FLAG_WKNSET 0x04 // (is Week Number valid)
#define FLAG_TOWSET 0x08 // (is Time of Week valid)
#define FLAG_GPS_NAVIGATION_ACTIVE 0x10 // NC to FC -> NC is ready to navigate
 
struct str_GPSInfo
{
unsigned char Flags; // Status Flags
unsigned char NumOfSats; // number of satelites
unsigned char SatFix; // type of satfix
unsigned char Speed; // m/sek
unsigned int HomeDistance; // distance to Home in dm
int HomeBearing; // bearing to home in deg
};
 
 
#ifdef USE_SPI_COMMUNICATION
extern struct str_GPSInfo GPSInfo;
extern struct str_SPI_VersionInfo NC_Version;
extern struct str_FromNaviCtrl_Value FromNaviCtrl_Value;
extern struct str_ToNaviCtrl ToNaviCtrl;
extern struct str_FromNaviCtrl FromNaviCtrl;
extern unsigned char SPI_CommandCounter,NaviDataOkay;
extern signed char FromNC_Rotate_C, FromNC_Rotate_S;
extern unsigned char NC_ErrorCode;
extern void SPI_MasterInit(void);
extern unsigned char SPI_StartTransmitPacket(void);
extern void UpdateSPI_Buffer(void);
extern void SPI_TransmitByte(void);
extern signed int POI_KameraNick;
extern unsigned char NC_GPS_ModeCharacter, NC_To_FC_Flags, NC_To_FC_MaxAltitude;
extern vector16_t MagVec;
extern unsigned char EarthMagneticField;
extern unsigned char EarthMagneticInclination,EarthMagneticInclinationTheoretic;
extern signed char FromNC_WP_EventChannel_New;
#else
 
 
// -------------------------------- Dummy -----------------------------------------
#define SPI_MasterInit() ;
//#define SPI_StartTransmitPacket() ;
#define UpdateSPI_Buffer() ;
#define SPI_TransmitByte() ;
#endif
 
 
#endif
/branches/V2.08a_Rens_Testversion/FlightCtrl/timer0.c
0,0 → 1,490
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software Nutzungsbedingungen (english version: see below)
// + der Fa. HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland - nachfolgend Lizenzgeber genannt -
// + Der Lizenzgeber räumt dem Kunden ein nicht-ausschließliches, zeitlich und räumlich* unbeschränktes Recht ein, die im den
// + Mikrocontroller verwendete Firmware für die Hardware Flight-Ctrl, Navi-Ctrl, BL-Ctrl, MK3Mag & PC-Programm MikroKopter-Tool
// + - nachfolgend Software genannt - nur für private Zwecke zu nutzen.
// + Der Einsatz dieser Software ist nur auf oder mit Produkten des Lizenzgebers zulässig.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die vom Lizenzgeber gelieferte Software ist urheberrechtlich geschützt. Alle Rechte an der Software sowie an sonstigen im
// + Rahmen der Vertragsanbahnung und Vertragsdurchführung überlassenen Unterlagen stehen im Verhältnis der Vertragspartner ausschließlich dem Lizenzgeber zu.
// + Die in der Software enthaltenen Copyright-Vermerke, Markenzeichen, andere Rechtsvorbehalte, Seriennummern sowie
// + sonstige der Programmidentifikation dienenden Merkmale dürfen vom Kunden nicht verändert oder unkenntlich gemacht werden.
// + Der Kunde trifft angemessene Vorkehrungen für den sicheren Einsatz der Software. Er wird die Software gründlich auf deren
// + Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Die Haftung des Lizenzgebers wird - soweit gesetzlich zulässig - begrenzt in Höhe des typischen und vorhersehbaren
// + Schadens. Die gesetzliche Haftung bei Personenschäden und nach dem Produkthaftungsgesetz bleibt unberührt. Dem Lizenzgeber steht jedoch der Einwand
// + des Mitverschuldens offen.
// + Der Kunde trifft angemessene Vorkehrungen für den Fall, dass die Software ganz oder teilweise nicht ordnungsgemäß arbeitet.
// + Er wird die Software gründlich auf deren Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Der Kunde wird er seine Daten vor Einsatz der Software nach dem Stand der Technik sichern.
// + Der Kunde ist darüber unterrichtet, dass der Lizenzgeber seine Daten im zur Vertragsdurchführung erforderlichen Umfang
// + und auf Grundlage der Datenschutzvorschriften erhebt, speichert, verarbeitet und, sofern notwendig, an Dritte übermittelt.
// + *) Die räumliche Nutzung bezieht sich nur auf den Einsatzort, nicht auf die Reichweite der programmierten Software.
// + #### ENDE DER NUTZUNGSBEDINGUNGEN ####'
// + Hinweis: Informationen über erweiterte Nutzungsrechte (wie z.B. Nutzung für nicht-private Zwecke) sind auf Anfrage per Email an info(@)hisystems.de verfügbar.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software LICENSING TERMS
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + of HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland, Germany - the Licensor -
// + The Licensor grants the customer a non-exclusive license to use the microcontroller firmware of the Flight-Ctrl, Navi-Ctrl, BL-Ctrl, and MK3Mag hardware
// + (the Software) exclusively for private purposes. The License is unrestricted with respect to time and territory*.
// + The Software may only be used with the Licensor's products.
// + The Software provided by the Licensor is protected by copyright. With respect to the relationship between the parties to this
// + agreement, all rights pertaining to the Software and other documents provided during the preparation and execution of this
// + agreement shall be the property of the Licensor.
// + The information contained in the Software copyright notices, trademarks, other legal reservations, serial numbers and other
// + features that can be used to identify the program may not be altered or defaced by the customer.
// + The customer shall be responsible for taking reasonable precautions
// + for the safe use of the Software. The customer shall test the Software thoroughly regarding its suitability for the
// + intended purpose before implementing it for actual operation. The Licensor's liability shall be limited to the extent of typical and
// + foreseeable damage to the extent permitted by law, notwithstanding statutory liability for bodily injury and product
// + liability. However, the Licensor shall be entitled to the defense of contributory negligence.
// + The customer will take adequate precautions in the case, that the software is not working properly. The customer will test
// + the software for his purpose before any operational usage. The customer will backup his data before using the software.
// + The customer understands that the Licensor collects, stores and processes, and, where required, forwards, customer data
// + to third parties to the extent necessary for executing the agreement, subject to applicable data protection and privacy regulations.
// + *) The territory aspect only refers to the place where the Software is used, not its programmed range.
// + #### END OF LICENSING TERMS ####
// + Note: For information on license extensions (e.g. commercial use), please contact us at info(@)hisystems.de.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "main.h"
#define MULTIPLYER 4
 
volatile unsigned int CountMilliseconds = 0;
volatile unsigned int tim_main;
volatile unsigned char UpdateMotor = 0;
volatile unsigned int cntKompass = 0;
volatile unsigned int beeptime = 0;
volatile unsigned char BytegapSPI = 0, ServoActive = 0, CalculateServoSignals = 1;
unsigned char JustMK3MagConnected = 0;
uint16_t RemainingPulse = 0;
volatile int16_t ServoNickOffset = (255 / 2) * MULTIPLYER * 16; // initial value near center positon
volatile int16_t ServoRollOffset = (255 / 2) * MULTIPLYER * 16; // initial value near center positon
 
unsigned int BeepMuster = 0xffff;
signed int NickServoValue = 128 * MULTIPLYER * 16;
 
volatile int16_t ServoNickValue = 0;
volatile int16_t ServoRollValue = 0;
 
 
enum {
STOP = 0,
CK = 1,
CK8 = 2,
CK64 = 3,
CK256 = 4,
CK1024 = 5,
T0_FALLING_EDGE = 6,
T0_RISING_EDGE = 7
};
 
 
ISR(TIMER0_OVF_vect) // 9,7kHz
{
static unsigned char cnt_1ms = 1,cnt = 0;
unsigned char pieper_ein = 0;
if(BytegapSPI) BytegapSPI--;
if(SpektrumTimer) SpektrumTimer--;
if(!cnt--)
{
cnt = 9;
CountMilliseconds++;
cnt_1ms++;
cnt_1ms %= 2;
 
if(!cnt_1ms) if(UpdateMotor < 4) UpdateMotor++;
if(!(PINC & 0x10)) JustMK3MagConnected = 1;
 
if(beeptime)
{
if(beeptime > 10) beeptime -= 10; else beeptime = 0;
if(beeptime & BeepMuster)
{
pieper_ein = 1;
}
else pieper_ein = 0;
}
else
{
pieper_ein = 0;
BeepMuster = 0xffff;
}
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(pieper_ein) PORTC |= (1<<7); // Speaker an PORTC.7
else PORTC &= ~(1<<7);
#else
if(pieper_ein)
{
// if(PlatinenVersion == 10) PORTD |= (1<<2); // Speaker an PORTD.2
// else
PORTC |= (1<<7); // Speaker an PORTC.7
}
else
{
// if(PlatinenVersion == 10) PORTD &= ~(1<<2);
// else
PORTC &= ~(1<<7);
}
#endif
}
if(JustMK3MagConnected && !NaviDataOkay && Parameter_GlobalConfig & CFG_KOMPASS_AKTIV)
{
if(PINC & 0x10)
{
if(++cntKompass > 1000) JustMK3MagConnected = 0;
}
else
{
if((cntKompass) && (cntKompass < 362))
{
cntKompass += cntKompass / 41;
if(cntKompass > 10) KompassValue = cntKompass - 10; else KompassValue = 0;
// KompassRichtung = ((540 + KompassValue - KompassSollWert) % 360) - 180;
}
cntKompass = 0;
}
}
}
 
 
// -----------------------------------------------------------------------
unsigned int SetDelay(unsigned int t)
{
// TIMSK0 &= ~_BV(TOIE0);
return(CountMilliseconds + t + 1);
// TIMSK0 |= _BV(TOIE0);
}
 
// -----------------------------------------------------------------------
char CheckDelay(unsigned int t)
{
// TIMSK0 &= ~_BV(TOIE0);
return(((t - CountMilliseconds) & 0x8000) >> 9);
// TIMSK0 |= _BV(TOIE0);
}
 
// -----------------------------------------------------------------------
void Delay_ms(unsigned int w)
{
unsigned int akt;
akt = SetDelay(w);
while (!CheckDelay(akt));
}
 
void Delay_ms_Mess(unsigned int w)
{
unsigned int akt;
akt = SetDelay(w);
while (!CheckDelay(akt)) if(AdReady) {AdReady = 0; ANALOG_ON;}
}
 
/*****************************************************/
/* Initialize Timer 2 */
/*****************************************************/
// The timer 2 is used to generate the PWM at PD7 (J7)
// to control a camera servo for nick compensation.
void TIMER2_Init(void)
{
uint8_t sreg = SREG;
 
// disable all interrupts before reconfiguration
cli();
 
PORTD &= ~(1<<PORTD7); // set PD7 to low
 
DDRC |= (1<<DDRC6); // set PC6 as output (Reset for HEF4017)
HEF4017Reset_ON;
// Timer/Counter 2 Control Register A
 
// Timer Mode is FastPWM with timer reload at OCR2A (Bits: WGM22 = 1, WGM21 = 1, WGM20 = 1)
// PD7: Normal port operation, OC2A disconnected, (Bits: COM2A1 = 0, COM2A0 = 0)
// PD6: Normal port operation, OC2B disconnected, (Bits: COM2B1 = 0, COM2B0 = 0)
TCCR2A &= ~((1<<COM2A1)|(1<<COM2A0)|(1<<COM2B1)|(1<<COM2B0));
TCCR2A |= (1<<WGM21)|(1<<WGM20);
 
// Timer/Counter 2 Control Register B
 
// Set clock divider for timer 2 to SYSKLOCK/32 = 20MHz / 32 = 625 kHz
// The timer increments from 0x00 to 0xFF with an update rate of 625 kHz or 1.6 us
// hence the timer overflow interrupt frequency is 625 kHz / 256 = 2.44 kHz or 0.4096 ms
 
// divider 32 (Bits: CS022 = 0, CS21 = 1, CS20 = 1)
TCCR2B &= ~((1<<FOC2A)|(1<<FOC2B)|(1<<CS22));
TCCR2B |= (1<<CS21)|(1<<CS20)|(1<<WGM22);
 
// Initialize the Timer/Counter 2 Register
TCNT2 = 0;
 
// Initialize the Output Compare Register A used for PWM generation on port PD7.
OCR2A = 255;
TCCR2A |= (1<<COM2A1); // set or clear at compare match depends on value of COM2A0
 
// Timer/Counter 2 Interrupt Mask Register
// Enable timer output compare match A Interrupt only
TIMSK2 &= ~((1<<OCIE2B)|(1<<TOIE2));
TIMSK2 |= (1<<OCIE2A);
 
SREG = sreg;
}
 
//----------------------------
void Timer_Init(void)
{
tim_main = SetDelay(10);
TCCR0B = CK8;
// TCCR0A = (1<<COM0A1)|(1<<COM0B1)|3;//fast PWM
TCCR0A = (1<<COM0A1)|(1<<COM0B1)|(1<<COM0B0)|3;//fast PWM
OCR0B = 255;
OCR0A = 180;
TCNT0 = (unsigned char)-TIMER_RELOAD_VALUE; // reload
//OCR1 = 0x00;
TIMSK0 |= _BV(TOIE0);
}
 
 
/*****************************************************/
/* Control Servo Position */
/*****************************************************/
void CalcNickServoValue(void)
{
signed int max, min;
 
if(EE_Parameter.ServoCompInvert & SERVO_RELATIVE) // relative moving of the servo value
{
max = ((unsigned int) EE_Parameter.ServoNickMax * MULTIPLYER * 15);
min = ((unsigned int) EE_Parameter.ServoNickMin * MULTIPLYER * 20);
NickServoValue -= ((signed char) (Parameter_ServoNickControl - 128) / 4) * 6;
LIMIT_MIN_MAX(NickServoValue,min, max);
}
else NickServoValue = (int16_t)Parameter_ServoNickControl * (MULTIPLYER*16); // direct poti control
}
 
void CalculateServo(void)
{
signed char cosinus, sinus;
signed long nick, roll;
 
cosinus = sintab[EE_Parameter.CamOrientation + 6];
sinus = sintab[EE_Parameter.CamOrientation];
 
if(CalculateServoSignals == 1)
{
if(EE_Parameter.GlobalConfig3 & CFG3_SERVO_NICK_COMP_OFF) nick = 0;
else nick = (cosinus * IntegralNick) / 128L - (sinus * IntegralRoll) / 128L;
nick -= POI_KameraNick * 7;
nick = ((long)Parameter_ServoNickComp * nick) / 512L;
// offset (Range from 0 to 255 * 3 = 765)
if(EE_Parameter.ServoCompInvert & SERVO_RELATIVE) ServoNickOffset = NickServoValue;
else ServoNickOffset += (NickServoValue - ServoNickOffset) / EE_Parameter.ServoManualControlSpeed;
 
if(EE_Parameter.ServoCompInvert & SERVO_NICK_INV) // inverting movement of servo
{
nick = ServoNickOffset / 16 + nick;
}
else
{ // inverting movement of servo
nick = ServoNickOffset / 16 - nick;
}
if(EE_Parameter.ServoFilterNick) ServoNickValue = ((ServoNickValue * EE_Parameter.ServoFilterNick) + nick) / (EE_Parameter.ServoFilterNick + 1);
else ServoNickValue = nick;
// limit servo value to its parameter range definition
if(ServoNickValue < ((int16_t)EE_Parameter.ServoNickMin * MULTIPLYER))
{
ServoNickValue = (int16_t)EE_Parameter.ServoNickMin * MULTIPLYER;
}
else
if(ServoNickValue > ((int16_t)EE_Parameter.ServoNickMax * MULTIPLYER))
{
ServoNickValue = (int16_t)EE_Parameter.ServoNickMax * MULTIPLYER;
}
// if(PlatinenVersion < 20) CalculateServoSignals = 0; else
CalculateServoSignals++;
}
else
{
roll = (cosinus * IntegralRoll) / 128L + (sinus * IntegralNick) / 128L;
roll = ((long)Parameter_ServoRollComp * roll) / 512L;
ServoRollOffset += ((int16_t)Parameter_ServoRollControl * (MULTIPLYER*16) - ServoRollOffset) / EE_Parameter.ServoManualControlSpeed;
if(EE_Parameter.ServoCompInvert & SERVO_ROLL_INV)
{ // inverting movement of servo
roll = ServoRollOffset / 16 + roll;
}
else
{ // inverting movement of servo
roll = ServoRollOffset / 16 - roll;
}
if(EE_Parameter.ServoFilterRoll) ServoRollValue = ((ServoRollValue * EE_Parameter.ServoFilterRoll) + roll) / (EE_Parameter.ServoFilterRoll + 1);
else ServoRollValue = roll;
// limit servo value to its parameter range definition
if(ServoRollValue < ((int16_t)EE_Parameter.ServoRollMin * MULTIPLYER))
{
ServoRollValue = (int16_t)EE_Parameter.ServoRollMin * MULTIPLYER;
}
else
if(ServoRollValue > ((int16_t)EE_Parameter.ServoRollMax * MULTIPLYER))
{
ServoRollValue = (int16_t)EE_Parameter.ServoRollMax * MULTIPLYER;
}
CalculateServoSignals = 0;
}
}
 
ISR(TIMER2_COMPA_vect)
{
// frame len 22.5 ms = 14063 * 1.6 us
// stop pulse: 0.3 ms = 188 * 1.6 us
// min servo pulse: 0.6 ms = 375 * 1.6 us
// max servo pulse: 2.4 ms = 1500 * 1.6 us
// resolution: 1500 - 375 = 1125 steps
 
#define IRS_RUNTIME 127
#define PPM_STOPPULSE 188
#define PPM_FRAMELEN (1757 * EE_Parameter.ServoNickRefresh)
#define MINSERVOPULSE 375
#define MAXSERVOPULSE 1500
#define SERVORANGE (MAXSERVOPULSE - MINSERVOPULSE)
 
static uint8_t PulseOutput = 0;
static uint16_t ServoFrameTime = 0;
static uint8_t ServoIndex = 0;
 
/*
if(PlatinenVersion < 20)
{
//---------------------------
// Nick servo state machine
//---------------------------
if(!PulseOutput) // pulse output complete
{
if(TCCR2A & (1<<COM2A0)) // we had a low pulse
{
TCCR2A &= ~(1<<COM2A0);// make a high pulse
RemainingPulse = MINSERVOPULSE + SERVORANGE/2; // center position ~ 1.5ms
RemainingPulse += ServoNickValue - (256 / 2) * MULTIPLYER; // shift ServoNickValue to center position
// range servo pulse width
if(RemainingPulse > MAXSERVOPULSE ) RemainingPulse = MAXSERVOPULSE; // upper servo pulse limit
else if(RemainingPulse < MINSERVOPULSE ) RemainingPulse = MINSERVOPULSE; // lower servo pulse limit
// accumulate time for correct update rate
ServoFrameTime = RemainingPulse;
}
else // we had a high pulse
{
TCCR2A |= (1<<COM2A0); // make a low pulse
RemainingPulse = PPM_FRAMELEN - ServoFrameTime;
CalculateServoSignals = 1;
}
// set pulse output active
PulseOutput = 1;
}
} // EOF Nick servo state machine
else
*/
{
//-----------------------------------------------------
// PPM state machine, onboard demultiplexed by HEF4017
//-----------------------------------------------------
if(!PulseOutput) // pulse output complete
{
if(TCCR2A & (1<<COM2A0)) // we had a low pulse
{
TCCR2A &= ~(1<<COM2A0);// make a high pulse
if(ServoIndex == 0) // if we are at the sync gap
{
RemainingPulse = PPM_FRAMELEN - ServoFrameTime; // generate sync gap by filling time to full frame time
ServoFrameTime = 0; // reset servo frame time
HEF4017Reset_ON; // enable HEF4017 reset
}
else // servo channels
if(ServoIndex > EE_Parameter.ServoNickRefresh)
{
RemainingPulse = 10; // end it here
}
else
{
RemainingPulse = MINSERVOPULSE + SERVORANGE/2; // center position ~ 1.5ms
switch(ServoIndex) // map servo channels
{
case 1: // Nick Compensation Servo
RemainingPulse += ServoNickValue - (256 / 2) * MULTIPLYER; // shift ServoNickValue to center position
break;
case 2: // Roll Compensation Servo
RemainingPulse += ServoRollValue - (256 / 2) * MULTIPLYER; // shift ServoNickValue to center position
break;
case 3:
RemainingPulse += ((int16_t)Parameter_Servo3 * MULTIPLYER) - (256 / 2) * MULTIPLYER;
break;
case 4:
RemainingPulse += ((int16_t)Parameter_Servo4 * MULTIPLYER) - (256 / 2) * MULTIPLYER;
break;
case 5:
RemainingPulse += ((int16_t)Parameter_Servo5 * MULTIPLYER) - (256 / 2) * MULTIPLYER;
break;
default: // other servo channels
RemainingPulse += 2 * PPM_in[ServoIndex]; // add channel value, factor of 2 because timer 1 increments 3.2µs
break;
}
// range servo pulse width
if(RemainingPulse > MAXSERVOPULSE) RemainingPulse = MAXSERVOPULSE; // upper servo pulse limit
else if(RemainingPulse < MINSERVOPULSE) RemainingPulse = MINSERVOPULSE; // lower servo pulse limit
// substract stop pulse width
RemainingPulse -= PPM_STOPPULSE;
// accumulate time for correct sync gap
ServoFrameTime += RemainingPulse;
}
}
else // we had a high pulse
{
TCCR2A |= (1<<COM2A0); // make a low pulse
// set pulsewidth to stop pulse width
RemainingPulse = PPM_STOPPULSE;
// accumulate time for correct sync gap
ServoFrameTime += RemainingPulse;
if((ServoActive && SenderOkay) || ServoActive == 2) HEF4017Reset_OFF; // disable HEF4017 reset
else HEF4017Reset_ON;
ServoIndex++;
if(ServoIndex > EE_Parameter.ServoNickRefresh+1)
{
CalculateServoSignals = 1;
ServoIndex = 0; // reset to the sync gap
}
}
// set pulse output active
PulseOutput = 1;
}
} // EOF PPM state machine
 
// General pulse output generator
if(RemainingPulse > (255 + IRS_RUNTIME))
{
OCR2A = 255;
RemainingPulse -= 255;
}
else
{
if(RemainingPulse > 255) // this is the 2nd last part
{
if((RemainingPulse - 255) < IRS_RUNTIME)
{
OCR2A = 255 - IRS_RUNTIME;
RemainingPulse -= 255 - IRS_RUNTIME;
 
}
else // last part > ISR_RUNTIME
{
OCR2A = 255;
RemainingPulse -= 255;
}
}
else // this is the last part
{
OCR2A = RemainingPulse;
RemainingPulse = 0;
PulseOutput = 0; // trigger to stop pulse
}
} // EOF general pulse output generator
}
/branches/V2.08a_Rens_Testversion/FlightCtrl/timer0.h
0,0 → 1,25
 
#define TIMER_TEILER CK8
#define TIMER_RELOAD_VALUE 250
#define HEF4017Reset_ON PORTC |= (1<<PORTC6)
#define HEF4017Reset_OFF PORTC &= ~(1<<PORTC6)
 
void Timer_Init(void);
void TIMER2_Init(void);
void Delay_ms(unsigned int);
void Delay_ms_Mess(unsigned int);
unsigned int SetDelay (unsigned int t);
char CheckDelay (unsigned int t);
void CalculateServo(void);
void CalcNickServoValue(void);
 
extern volatile unsigned int CountMilliseconds;
extern volatile unsigned char UpdateMotor;
extern volatile unsigned int beeptime;
extern volatile unsigned int cntKompass;
extern unsigned int BeepMuster;
extern volatile unsigned char BytegapSPI, ServoActive, CalculateServoSignals;
extern volatile int16_t ServoNickValue;
extern volatile int16_t ServoRollValue;
extern signed int NickServoValue;
extern unsigned char JustMK3MagConnected;
/branches/V2.08a_Rens_Testversion/FlightCtrl/twimaster.c
0,0 → 1,487
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software Nutzungsbedingungen (english version: see below)
// + der Fa. HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland - nachfolgend Lizenzgeber genannt -
// + Der Lizenzgeber räumt dem Kunden ein nicht-ausschließliches, zeitlich und räumlich* unbeschränktes Recht ein, die im den
// + Mikrocontroller verwendete Firmware für die Hardware Flight-Ctrl, Navi-Ctrl, BL-Ctrl, MK3Mag & PC-Programm MikroKopter-Tool
// + - nachfolgend Software genannt - nur für private Zwecke zu nutzen.
// + Der Einsatz dieser Software ist nur auf oder mit Produkten des Lizenzgebers zulässig.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die vom Lizenzgeber gelieferte Software ist urheberrechtlich geschützt. Alle Rechte an der Software sowie an sonstigen im
// + Rahmen der Vertragsanbahnung und Vertragsdurchführung überlassenen Unterlagen stehen im Verhältnis der Vertragspartner ausschließlich dem Lizenzgeber zu.
// + Die in der Software enthaltenen Copyright-Vermerke, Markenzeichen, andere Rechtsvorbehalte, Seriennummern sowie
// + sonstige der Programmidentifikation dienenden Merkmale dürfen vom Kunden nicht verändert oder unkenntlich gemacht werden.
// + Der Kunde trifft angemessene Vorkehrungen für den sicheren Einsatz der Software. Er wird die Software gründlich auf deren
// + Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Die Haftung des Lizenzgebers wird - soweit gesetzlich zulässig - begrenzt in Höhe des typischen und vorhersehbaren
// + Schadens. Die gesetzliche Haftung bei Personenschäden und nach dem Produkthaftungsgesetz bleibt unberührt. Dem Lizenzgeber steht jedoch der Einwand
// + des Mitverschuldens offen.
// + Der Kunde trifft angemessene Vorkehrungen für den Fall, dass die Software ganz oder teilweise nicht ordnungsgemäß arbeitet.
// + Er wird die Software gründlich auf deren Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Der Kunde wird er seine Daten vor Einsatz der Software nach dem Stand der Technik sichern.
// + Der Kunde ist darüber unterrichtet, dass der Lizenzgeber seine Daten im zur Vertragsdurchführung erforderlichen Umfang
// + und auf Grundlage der Datenschutzvorschriften erhebt, speichert, verarbeitet und, sofern notwendig, an Dritte übermittelt.
// + *) Die räumliche Nutzung bezieht sich nur auf den Einsatzort, nicht auf die Reichweite der programmierten Software.
// + #### ENDE DER NUTZUNGSBEDINGUNGEN ####'
// + Hinweis: Informationen über erweiterte Nutzungsrechte (wie z.B. Nutzung für nicht-private Zwecke) sind auf Anfrage per Email an info(@)hisystems.de verfügbar.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software LICENSING TERMS
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + of HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland, Germany - the Licensor -
// + The Licensor grants the customer a non-exclusive license to use the microcontroller firmware of the Flight-Ctrl, Navi-Ctrl, BL-Ctrl, and MK3Mag hardware
// + (the Software) exclusively for private purposes. The License is unrestricted with respect to time and territory*.
// + The Software may only be used with the Licensor's products.
// + The Software provided by the Licensor is protected by copyright. With respect to the relationship between the parties to this
// + agreement, all rights pertaining to the Software and other documents provided during the preparation and execution of this
// + agreement shall be the property of the Licensor.
// + The information contained in the Software copyright notices, trademarks, other legal reservations, serial numbers and other
// + features that can be used to identify the program may not be altered or defaced by the customer.
// + The customer shall be responsible for taking reasonable precautions
// + for the safe use of the Software. The customer shall test the Software thoroughly regarding its suitability for the
// + intended purpose before implementing it for actual operation. The Licensor's liability shall be limited to the extent of typical and
// + foreseeable damage to the extent permitted by law, notwithstanding statutory liability for bodily injury and product
// + liability. However, the Licensor shall be entitled to the defense of contributory negligence.
// + The customer will take adequate precautions in the case, that the software is not working properly. The customer will test
// + the software for his purpose before any operational usage. The customer will backup his data before using the software.
// + The customer understands that the Licensor collects, stores and processes, and, where required, forwards, customer data
// + to third parties to the extent necessary for executing the agreement, subject to applicable data protection and privacy regulations.
// + *) The territory aspect only refers to the place where the Software is used, not its programmed range.
// + #### END OF LICENSING TERMS ####
// + Note: For information on license extensions (e.g. commercial use), please contact us at info(@)hisystems.de.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/twi.h>
#include "eeprom.h"
#include "twimaster.h"
#include "fc.h"
#include "analog.h"
#include "uart.h"
#include "timer0.h"
#include "main.h"
 
volatile uint8_t twi_state = TWI_STATE_MOTOR_TX, ReadBlSize = 9;
volatile uint8_t dac_channel = 0;
volatile uint8_t motor_write = 0;
volatile uint8_t motor_read = 0;
volatile uint8_t I2C_TransferActive = 0;
uint8_t Max_I2C_Packets = 12;
 
volatile uint16_t I2CTimeout = 100;
 
uint8_t MissingMotor = 0;
 
volatile uint8_t BLFlags = 0;
 
MotorData_t Motor[MAX_MOTORS];
RedundantBl_t RedundantMotor[MAX_MOTORS];
 
// bit mask for witch BL the configuration should be sent
volatile uint16_t BLConfig_WriteMask = 0;
// bit mask for witch BL the configuration should be read
volatile uint16_t BLConfig_ReadMask = 0;
// buffer for BL Configuration
BLConfig_t BLConfig;
 
#define I2C_WriteByte(byte) {TWDR = byte; TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE);}
#define I2C_ReceiveByte() {TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE) | (1<<TWEA);}
#define I2C_ReceiveLastByte() {TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE);}
 
#define SCL_CLOCK 200000L
#define I2C_TIMEOUT 30000
#define TWI_BASE_ADDRESS 0x52
 
/**************************************************/
/* Initialize I2C (TWI) */
/**************************************************/
 
void I2C_Init(char clear)
{
uint8_t i;
uint8_t sreg = SREG;
cli();
 
// SDA is INPUT
DDRC &= ~(1<<DDRC1);
// SCL is output
DDRC |= (1<<DDRC0);
// pull up SDA
PORTC |= (1<<PORTC0)|(1<<PORTC1);
 
// TWI Status Register
// prescaler 1 (TWPS1 = 0, TWPS0 = 0)
TWSR &= ~((1<<TWPS1)|(1<<TWPS0));
 
// set TWI Bit Rate Register
TWBR = ((F_CPU/SCL_CLOCK)-16)/2;
 
twi_state = TWI_STATE_MOTOR_TX;
motor_write = 0;
motor_read = 0;
 
if(clear) for(i=0; i < MAX_MOTORS; i++)
{
Motor[i].Version = 0;
Motor[i].SetPoint = 0;
Motor[i].SetPointLowerBits = 0;
Motor[i].State = 0;
Motor[i].ReadMode = BL_READMODE_STATUS;
Motor[i].Current = 0;
Motor[i].MaxPWM = 0;
Motor[i].Temperature = 0;
Motor[i].NotReadyCnt = 0;
Motor[i].RPM = 0;
Motor[i].reserved1 = 0;
Motor[i].Voltage = 0;
Motor[i].SlaveI2cError = 0;
Motor[i].VersionMajor = 0;
Motor[i].VersionMinor = 0;
}
sei();
SREG = sreg;
}
 
void I2C_Reset(void)
{
// stop i2c bus
I2C_Stop(TWI_STATE_MOTOR_TX);
TWCR = (1<<TWINT); // reset to original state incl. interrupt flag reset
TWAMR = 0;
TWAR = 0;
TWDR = 0;
TWSR = 0;
TWBR = 0;
I2C_TransferActive = 0;
I2C_Init(0);
I2C_WriteByte(0);
BLFlags |= BLFLAG_READ_VERSION;
}
 
/****************************************/
/* I2C ISR */
/****************************************/
ISR (TWI_vect)
{
static uint8_t missing_motor = 0, motor_read_temperature = 0;
static uint8_t *pBuff = 0;
static uint8_t BuffLen = 0;
static uint8_t max_packets = 0;
switch (twi_state++)
{
// Master Transmit
case 0: // TWI_STATE_MOTOR_TX
I2C_TransferActive = 1;
// skip motor if not used in mixer
while((Mixer.Motor[motor_write][MIX_GAS] <= 0) && (motor_write < MAX_MOTORS)) motor_write++;
motor_write %= MAX_MOTORS;
if(++max_packets > Max_I2C_Packets) // writing finished, read now
{
max_packets = 0;
BLConfig_WriteMask = 0; // reset configuration bitmask
//motor_write = 0; // reset motor write counter for next cycle
twi_state = TWI_STATE_MOTOR_RX;
I2C_WriteByte(TWI_BASE_ADDRESS + TW_READ + (motor_read<<1) ); // select slave address in rx mode
}
else I2C_WriteByte(TWI_BASE_ADDRESS + TW_WRITE + (motor_write<<1) ); // select slave address in tx mode
break;
case 1: // Send Data to Slave
I2C_WriteByte(Motor[motor_write].SetPoint); // transmit setpoint
// if old version has been detected
if(!(Motor[motor_write].Version & MOTOR_STATE_NEW_PROTOCOL_MASK))
{
twi_state = 4; //jump over sending more data
}
// the new version has been detected
else if(!( (Motor[motor_write].SetPointLowerBits && (RequiredMotors < 7)) || BLConfig_WriteMask || BLConfig_ReadMask ) )
{ // or LowerBits are zero and no BlConfig should be sent (saves round trip time)
twi_state = 4; //jump over sending more data
}
break;
case 2: // lower bits of setpoint (higher resolution)
if ((0x0001<<motor_write) & BLConfig_ReadMask)
{
Motor[motor_write].ReadMode = BL_READMODE_CONFIG; // configuration request
}
else
{
Motor[motor_write].ReadMode = BL_READMODE_STATUS; // normal status request
}
// send read mode and the lower bits of setpoint
I2C_WriteByte((Motor[motor_write].ReadMode<<3)|(Motor[motor_write].SetPointLowerBits & 0x07));
// configuration tranmission request?
if((0x0001<<motor_write) & BLConfig_WriteMask)
{ // redirect tx pointer to configuration data
pBuff = (uint8_t*)&BLConfig; // select config for motor
BuffLen = sizeof(BLConfig_t);
}
else
{ // jump to end of transmission for that motor
twi_state = 4;
}
break;
case 3: // send configuration
I2C_WriteByte(*pBuff);
pBuff++;
if(--BuffLen > 0) twi_state = 3; // if there are some bytes left
break;
case 4: // repeat case 0-4 for all motors
if(TWSR == TW_MT_DATA_NACK) // Data transmitted, NACK received
{
if(!missing_motor) missing_motor = motor_write + 1;
if((Motor[motor_write].State & MOTOR_STATE_ERROR_MASK) < MOTOR_STATE_ERROR_MASK) Motor[motor_write].State++; // increment error counter and handle overflow
}
I2C_Stop(TWI_STATE_MOTOR_TX);
I2CTimeout = 10;
motor_write++; // next motor
I2C_Start(TWI_STATE_MOTOR_TX); // Repeated start -> switch slave or switch Master Transmit -> Master Receive
break;
// Master Receive Data
case 5: // TWI_STATE_MOTOR_RX
if(TWSR != TW_MR_SLA_ACK) // SLA+R transmitted but no ACK received
{ // no response from the addressed slave received
Motor[motor_read].State &= ~MOTOR_STATE_PRESENT_MASK; // clear present bit
if(++motor_read >= MAX_MOTORS)
{ // all motors read
motor_read = 0; // restart from beginning
BLConfig_ReadMask = 0; // reset read configuration bitmask
if(++motor_read_temperature >= MAX_MOTORS)
{
motor_read_temperature = 0;
BLFlags &= ~BLFLAG_READ_VERSION;
}
}
BLFlags |= BLFLAG_TX_COMPLETE;
I2C_Stop(TWI_STATE_MOTOR_TX);
I2C_TransferActive = 0;
}
else
{ // motor successfully addressed
Motor[motor_read].State |= MOTOR_STATE_PRESENT_MASK; // set present bit
if(Motor[motor_read].Version & MOTOR_STATE_NEW_PROTOCOL_MASK)
{
// new BL found
switch(Motor[motor_read].ReadMode)
{
case BL_READMODE_CONFIG:
pBuff = (uint8_t*)&BLConfig;
BuffLen = sizeof(BLConfig_t);
Motor[motor_read].ReadMode = BL_READMODE_STATUS; // only once
break;
case BL_READMODE_STATUS:
pBuff = (uint8_t*)&(Motor[motor_read].Current);
if(motor_read == motor_read_temperature) BuffLen = ReadBlSize; // read Current, MaxPwm & Temp (is 3 or 9)
else BuffLen = 1;// read Current only
break;
}
}
else // old BL version
{
pBuff = (uint8_t*)&(Motor[motor_read].Current);
if((BLFlags & BLFLAG_READ_VERSION) || (motor_read == motor_read_temperature)) BuffLen = 2; // Current & MaxPwm
else BuffLen = 1; // read Current only
}
if(BuffLen == 1)
{
I2C_ReceiveLastByte(); // read last byte
}
else
{
I2C_ReceiveByte(); // read next byte
}
}
MissingMotor = missing_motor;
missing_motor = 0;
break;
case 6: // receive bytes
*pBuff = TWDR;
pBuff++; // set Pointer to next element : Motor[].Current,Motor[].Temperature
BuffLen--;
if(BuffLen>1)
{
I2C_ReceiveByte(); // read next byte
}
else if (BuffLen == 1)
{
I2C_ReceiveLastByte(); // read last byte
}
else // nothing left -> ready
{
if(BLFlags & BLFLAG_READ_VERSION)
{
if(!(FC_StatusFlags & FC_STATUS_MOTOR_RUN))
{
if((Motor[motor_read].MaxPWM & 252) == 248) Motor[motor_read].Version |= MOTOR_STATE_NEW_PROTOCOL_MASK;
else Motor[motor_read].Version = 0;
if(Motor[motor_read].MaxPWM == 248) Motor[motor_read].Version |= (MOTOR_STATE_FAST_MODE | MOTOR_STATE_BL30);
else
if(Motor[motor_read].MaxPWM == 249) Motor[motor_read].Version |= MOTOR_STATE_BL30;
}
}
 
if(FC_StatusFlags & FC_STATUS_FLY)
{
// Starting -> 40
// I2C-Setpoint is zero -> 250
// 255 -> Running and no Redundancy
// 254 -> Running and active Redundancy
if(Motor[motor_read].MaxPWM < 254)
{
Motor[motor_read].NotReadyCnt++;
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
SpeakHoTT = SPEAK_ERR_MOTOR;
#endif
}
}
if(++motor_read >= MAX_MOTORS)
{
motor_read = 0; // restart from beginning
BLConfig_ReadMask = 0; // reset read configuration bitmask
if(++motor_read_temperature >= MAX_MOTORS)
{
motor_read_temperature = 0;
BLFlags &= ~BLFLAG_READ_VERSION;
}
}
I2C_Stop(TWI_STATE_MOTOR_TX);
BLFlags |= BLFLAG_TX_COMPLETE;
I2C_TransferActive = 0;
return;
}
twi_state = 6; // if there are some bytes left
break;
/*
// writing Gyro-Offsets
case 18:
I2C_WriteByte(0x98); // Address the DAC
break;
 
case 19:
I2C_WriteByte(0x10 + (dac_channel * 2)); // Select DAC Channel (0x10 = A, 0x12 = B, 0x14 = C)
break;
 
case 20:
switch(dac_channel)
{
case 0:
I2C_WriteByte(AnalogOffsetNick); // 1st byte for Channel A
break;
case 1:
I2C_WriteByte(AnalogOffsetRoll); // 1st byte for Channel B
break;
case 2:
I2C_WriteByte(AnalogOffsetGier); // 1st byte for Channel C
break;
}
break;
 
case 21:
I2C_WriteByte(0x80); // 2nd byte for all channels is 0x80
break;
 
case 22:
I2C_Stop(TWI_STATE_MOTOR_TX);
I2C_TransferActive = 0;
I2CTimeout = 10;
// repeat case 18...22 until all DAC Channels are updated
if(dac_channel < 2)
{
dac_channel ++; // jump to next channel
I2C_Start(TWI_STATE_GYRO_OFFSET_TX); // start transmission for next channel
}
else
{
dac_channel = 0; // reset dac channel counter
BLFlags |= BLFLAG_TX_COMPLETE;
}
break;
*/
default:
I2C_Stop(TWI_STATE_MOTOR_TX);
BLFlags |= BLFLAG_TX_COMPLETE;
I2CTimeout = 10;
motor_write = 0;
motor_read = 0;
I2C_TransferActive = 0;
break;
}
 
}
 
 
uint8_t I2C_WriteBLConfig(uint8_t motor)
{
uint8_t i, packets;
uint16_t timer;
if(MotorenEin || PC_MotortestActive) return(BLCONFIG_ERR_MOTOR_RUNNING); // not when motors are running!
if(motor > MAX_MOTORS) return (BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
if(motor)
{
if(!(Motor[motor-1].State & MOTOR_STATE_PRESENT_MASK)) return(BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
if(!(Motor[motor-1].Version & MOTOR_STATE_NEW_PROTOCOL_MASK)) return(BLCONFIG_ERR_HW_NOT_COMPATIBLE); // not a new BL!
}
// check BL configuration to send
if((BLConfig.Revision & 0x0B) != BLCONFIG_REVISION) return (BLCONFIG_ERR_SW_NOT_COMPATIBLE); // bad revison
i = RAM_Checksum((uint8_t*)&BLConfig, sizeof(BLConfig_t) - 1);
if(i != BLConfig.crc) return(BLCONFIG_ERR_CHECKSUM); // bad checksum
 
packets = Max_I2C_Packets;
Max_I2C_Packets = 12;
I2CTimeout = 100;
 
timer = SetDelay(100);
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
 
// prepare the bitmask
if(!motor) BLConfig_WriteMask = 0x0FFF; // 0 means all -> all motors at once with the same configuration
else BLConfig_WriteMask = 0x0001<<(motor-1); //only one specific motor
 
motor_write = 0;
motor_read = 0;
// needs at least MAX_MOTORS loops of 2 ms (12*2ms = 24ms)
timer = SetDelay(1000);
do
{
I2C_Start(TWI_STATE_MOTOR_TX); // start an i2c transmission
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
} while(BLConfig_WriteMask && !CheckDelay(timer)); // repeat until the BL config has been sent
Max_I2C_Packets = packets;
if(BLConfig_WriteMask) return(BLCONFIG_ERR_MOTOR_NOT_EXIST);
return(BLCONFIG_SUCCESS);
}
 
uint8_t I2C_ReadBLConfig(uint8_t motor)
{
uint8_t i;
uint16_t timer;
 
if(MotorenEin || PC_MotortestActive) return(BLCONFIG_ERR_MOTOR_RUNNING); // not when motors are running!
if(motor > MAX_MOTORS) return (BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
if(motor == 0) return (BLCONFIG_ERR_READ_NOT_POSSIBLE);
if(!(Motor[motor-1].State & MOTOR_STATE_PRESENT_MASK)) return(BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
if(!(Motor[motor-1].Version & MOTOR_STATE_NEW_PROTOCOL_MASK)) return(BLCONFIG_ERR_HW_NOT_COMPATIBLE); // not a new BL!
 
timer = SetDelay(1000);
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
 
// prepare the bitmask
BLConfig_ReadMask = 0x0001<<(motor-1);
 
motor_write = 0;
motor_read = 0;
BLConfig.Revision = 0; // bad revision
BLConfig.crc = 0; // bad checksum
// needs at least MAX_MOTORS loops of 2 ms (12*2ms = 24ms)
do
{
I2C_Start(TWI_STATE_MOTOR_TX); // start an i2c transmission
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
} while(BLConfig_ReadMask && !CheckDelay(timer)); // repeat until the BL config has been received from all motors
// validate result
if((BLConfig.Revision & 0x0B) != BLCONFIG_REVISION) return (BLCONFIG_ERR_SW_NOT_COMPATIBLE); // bad revison
i = RAM_Checksum((uint8_t*)&BLConfig, sizeof(BLConfig_t) - 1);
if(i != BLConfig.crc) return(BLCONFIG_ERR_CHECKSUM); // bad checksum
return(BLCONFIG_SUCCESS);
}
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/twimaster.h
0,0 → 1,126
#ifndef _I2C_MASTER_H
#define _I2C_MASTER_H
+
+#include <inttypes.h>
+
+#define TWI_STATE_MOTOR_TX 0
+#define TWI_STATE_MOTOR_RX 5
+//#define TWI_STATE_GYRO_OFFSET_TX 18
+
+extern volatile uint8_t twi_state, ReadBlSize;
+extern volatile uint8_t motor_write;
+extern volatile uint8_t motor_read;
+extern volatile uint8_t I2C_TransferActive;
+extern uint8_t Max_I2C_Packets;
+extern uint8_t MissingMotor;
+
+#define MAX_MOTORS 12
+#define MOTOR_STATE_PRESENT_MASK 0x80
+#define MOTOR_STATE_ERROR_MASK 0x7F
+
+//Motor[x].Version
+#define MOTOR_STATE_NEW_PROTOCOL_MASK 0x01
+#define MOTOR_STATE_FAST_MODE 0x02
+#define MOTOR_STATE_BL30 0x04 // extended Current measurement -> 200 = 20A 201 = 21A 255 = 75A (20+55)
+
+#define BLFLAG_TX_COMPLETE 0x01
+#define BLFLAG_READ_VERSION 0x02
+
+extern volatile uint8_t BLFlags;
+
+#define BL_READMODE_STATUS 0
+#define BL_READMODE_CONFIG 16
+
+typedef struct
+{
+ uint8_t Version; // the version of the BL (0 = old)
+ uint8_t SetPoint; // written by attitude controller
+ uint8_t SetPointLowerBits; // for higher Resolution of new BLs
+ uint8_t State; // 7 bit for I2C error counter, highest bit indicates if motor is present
+ uint8_t ReadMode; // select data to read
+ // the following bytes must be exactly in that order!
+ uint8_t Current; // in 0.1 A steps, read back from BL
+ uint8_t MaxPWM; // read back from BL -> is less than 255 if BL is in current limit, not running (250) or starting (40)
+ uint8_t Temperature; // old BL-Ctrl will return a 255 here, the new version the temp. in °C
+ uint8_t RPM; // Raw value for RPM
+ uint8_t reserved1; // Voltage (BL3) or mAh (BL2)
+ uint8_t Voltage; // in 0.1V (BL3 is limited to 255, BL2 is only low-byte)
+ uint8_t SlaveI2cError; // BL2 & BL3
+ uint8_t VersionMajor; // BL2 & BL3
+ uint8_t VersionMinor; // BL2 & BL3
+ uint8_t NotReadyCnt; // Counts up is the Motor is not ready during flight -> MotorRestart etc.
+} __attribute__((packed)) MotorData_t;
+
+extern MotorData_t Motor[MAX_MOTORS];
+
+// BitSate
+#define BL_BIT_STATE_I2C_OK 0x01
+#define BL_BIT_STATE_I2C_VALUE 0x02
+#define BL_BIT_STATE_I2C_BAD 0x04
+#define BL_BIT_STATE_PPM_OK 0x08
+#define BL_BIT_STATE_MOTOR_RUN 0x10
+
+typedef struct
+{
+ unsigned char BitSate;
+ unsigned char Current;
+ unsigned char State;
+ unsigned char TemperatureInDeg;
+ unsigned char Voltage80;
+} __attribute__((packed)) RedundantBl_t;
+extern RedundantBl_t RedundantMotor[MAX_MOTORS];
+
+#define BLCONFIG_REVISION 2
+
+#define MASK_SET_PWM_SCALING 0x01
+#define MASK_SET_CURRENT_LIMIT 0x02
+#define MASK_SET_TEMP_LIMIT 0x04
+#define MASK_SET_CURRENT_SCALING 0x08
+#define MASK_SET_BITCONFIG 0x10
+#define MASK_SET_STARTPWM 0x20
+#define MASK_SET_DEFAULT_PARAMS 0x40
+#define MASK_SET_SAVE_EEPROM 0x80
+
+#define BITCONF_REVERSE_ROTATION 0x01
+#define BITCONF_STARTGAS1 0x02
+#define BITCONF_STARTGAS2 0x04
+#define BITCONF_STARTGAS3 0x08
+#define BITCONF_RES4 0x10
+#define BITCONF_RES5 0x20
+#define BITCONF_RES6 0x40
+#define BITCONF_RES7 0x80
+
+typedef struct
+{
+ uint8_t Revision; // must be BL_REVISION
+ uint8_t SetMask; // settings mask
+ uint8_t PwmScaling; // maximum value of control pwm, acts like a thrust limit
+ uint8_t CurrentLimit; // current limit in A
+ uint8_t TempLimit; // in °C
+ uint8_t CurrentScaling; // scaling factor for current measurement
+ uint8_t BitConfig; // see defines above
+ uint8_t crc; // checksum
+} __attribute__((packed)) BLConfig_t;
+
+extern BLConfig_t BLConfig;
+
+extern volatile uint16_t I2CTimeout;
+
+void I2C_Init(char); // Initialize I2C
+#define I2C_Start(start_state) {twi_state = start_state; BLFlags &= ~BLFLAG_TX_COMPLETE; TWCR = (1<<TWSTA) | (1<<TWEN) | (1<<TWINT) | (1<<TWIE);}
+#define I2C_Stop(start_state) {twi_state = start_state; TWCR = (1<<TWEN) | (1<<TWSTO) | (1<<TWINT);}
+void I2C_Reset(void); // Reset I2C
+
+#define BLCONFIG_SUCCESS 0
+#define BLCONFIG_ERR_MOTOR_RUNNING 1
+#define BLCONFIG_ERR_MOTOR_NOT_EXIST 2
+#define BLCONFIG_ERR_HW_NOT_COMPATIBLE 3
+#define BLCONFIG_ERR_SW_NOT_COMPATIBLE 4
+#define BLCONFIG_ERR_CHECKSUM 5
+#define BLCONFIG_ERR_READ_NOT_POSSIBLE 6
+
+uint8_t I2C_WriteBLConfig(uint8_t motor);
+uint8_t I2C_ReadBLConfig(uint8_t motor);
+
+#endif
/branches/V2.08a_Rens_Testversion/FlightCtrl/uart.c
0,0 → 1,874
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software Nutzungsbedingungen (english version: see below)
// + der Fa. HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland - nachfolgend Lizenzgeber genannt -
// + Der Lizenzgeber räumt dem Kunden ein nicht-ausschließliches, zeitlich und räumlich* unbeschränktes Recht ein, die im den
// + Mikrocontroller verwendete Firmware für die Hardware Flight-Ctrl, Navi-Ctrl, BL-Ctrl, MK3Mag & PC-Programm MikroKopter-Tool
// + - nachfolgend Software genannt - nur für private Zwecke zu nutzen.
// + Der Einsatz dieser Software ist nur auf oder mit Produkten des Lizenzgebers zulässig.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die vom Lizenzgeber gelieferte Software ist urheberrechtlich geschützt. Alle Rechte an der Software sowie an sonstigen im
// + Rahmen der Vertragsanbahnung und Vertragsdurchführung überlassenen Unterlagen stehen im Verhältnis der Vertragspartner ausschließlich dem Lizenzgeber zu.
// + Die in der Software enthaltenen Copyright-Vermerke, Markenzeichen, andere Rechtsvorbehalte, Seriennummern sowie
// + sonstige der Programmidentifikation dienenden Merkmale dürfen vom Kunden nicht verändert oder unkenntlich gemacht werden.
// + Der Kunde trifft angemessene Vorkehrungen für den sicheren Einsatz der Software. Er wird die Software gründlich auf deren
// + Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Die Haftung des Lizenzgebers wird - soweit gesetzlich zulässig - begrenzt in Höhe des typischen und vorhersehbaren
// + Schadens. Die gesetzliche Haftung bei Personenschäden und nach dem Produkthaftungsgesetz bleibt unberührt. Dem Lizenzgeber steht jedoch der Einwand
// + des Mitverschuldens offen.
// + Der Kunde trifft angemessene Vorkehrungen für den Fall, dass die Software ganz oder teilweise nicht ordnungsgemäß arbeitet.
// + Er wird die Software gründlich auf deren Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt.
// + Der Kunde wird er seine Daten vor Einsatz der Software nach dem Stand der Technik sichern.
// + Der Kunde ist darüber unterrichtet, dass der Lizenzgeber seine Daten im zur Vertragsdurchführung erforderlichen Umfang
// + und auf Grundlage der Datenschutzvorschriften erhebt, speichert, verarbeitet und, sofern notwendig, an Dritte übermittelt.
// + *) Die räumliche Nutzung bezieht sich nur auf den Einsatzort, nicht auf die Reichweite der programmierten Software.
// + #### ENDE DER NUTZUNGSBEDINGUNGEN ####'
// + Hinweis: Informationen über erweiterte Nutzungsrechte (wie z.B. Nutzung für nicht-private Zwecke) sind auf Anfrage per Email an info(@)hisystems.de verfügbar.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Software LICENSING TERMS
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + of HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland, Germany - the Licensor -
// + The Licensor grants the customer a non-exclusive license to use the microcontroller firmware of the Flight-Ctrl, Navi-Ctrl, BL-Ctrl, and MK3Mag hardware
// + (the Software) exclusively for private purposes. The License is unrestricted with respect to time and territory*.
// + The Software may only be used with the Licensor's products.
// + The Software provided by the Licensor is protected by copyright. With respect to the relationship between the parties to this
// + agreement, all rights pertaining to the Software and other documents provided during the preparation and execution of this
// + agreement shall be the property of the Licensor.
// + The information contained in the Software copyright notices, trademarks, other legal reservations, serial numbers and other
// + features that can be used to identify the program may not be altered or defaced by the customer.
// + The customer shall be responsible for taking reasonable precautions
// + for the safe use of the Software. The customer shall test the Software thoroughly regarding its suitability for the
// + intended purpose before implementing it for actual operation. The Licensor's liability shall be limited to the extent of typical and
// + foreseeable damage to the extent permitted by law, notwithstanding statutory liability for bodily injury and product
// + liability. However, the Licensor shall be entitled to the defense of contributory negligence.
// + The customer will take adequate precautions in the case, that the software is not working properly. The customer will test
// + the software for his purpose before any operational usage. The customer will backup his data before using the software.
// + The customer understands that the Licensor collects, stores and processes, and, where required, forwards, customer data
// + to third parties to the extent necessary for executing the agreement, subject to applicable data protection and privacy regulations.
// + *) The territory aspect only refers to the place where the Software is used, not its programmed range.
// + #### END OF LICENSING TERMS ####
// + Note: For information on license extensions (e.g. commercial use), please contact us at info(@)hisystems.de.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include <stdarg.h>
#include <string.h>
#include <avr/pgmspace.h>
#include "main.h"
#include "uart.h"
#include "libfc.h"
#include "eeprom.h"
 
#define FC_ADDRESS 1
#define NC_ADDRESS 2
#define MK3MAG_ADDRESS 3
#define BL_CTRL_ADDRESS 5
 
#define ABO_TIMEOUT 4000 // disable abo after 4 seconds
#define MAX_SENDE_BUFF 220
#define MAX_EMPFANGS_BUFF 220
 
#define BLPARAM_REVISION 1
#define MASK_SET_PWM_SCALING 0x01
#define MASK_SET_CURRENT_LIMIT 0x02
#define MASK_SET_TEMP_LIMIT 0x04
#define MASK_SET_CURRENT_SCALING 0x08
#define MASK_SET_BITCONFIG 0x10
#define MASK_RESET_CAPCOUNTER 0x20
#define MASK_SET_DEFAULT_PARAMS 0x40
#define MASK_SET_SAVE_EEPROM 0x80
 
unsigned char GetExternalControl = 0,DebugDisplayAnforderung1 = 0, DebugDisplayAnforderung = 0,DebugDataAnforderung = 0,GetVersionAnforderung = 0, GetPPMChannelAnforderung = 0;
unsigned char DisplayLine = 0;
unsigned volatile char SioTmp = 0;
unsigned volatile char NeuerDatensatzEmpfangen = 0;
unsigned volatile char NeueKoordinateEmpfangen = 0;
unsigned volatile char UebertragungAbgeschlossen = 1;
unsigned volatile char CntCrcError = 0;
unsigned volatile char AnzahlEmpfangsBytes = 0;
unsigned volatile char TxdBuffer[MAX_SENDE_BUFF];
unsigned volatile char RxdBuffer[MAX_EMPFANGS_BUFF];
 
unsigned char *pRxData = 0;
unsigned char RxDataLen = 0;
unsigned volatile char PC_DebugTimeout = 0;
unsigned volatile char PC_MotortestActive = 0;
unsigned char DebugTextAnforderung = 255;
 
unsigned char PcZugriff = 100;
unsigned char MotorTest[16];
unsigned char MeineSlaveAdresse = 1; // Flight-Ctrl
unsigned char ConfirmFrame;
struct str_DebugOut DebugOut;
struct str_ExternControl ExternControl;
struct str_VersionInfo VersionInfo;
struct str_WinkelOut WinkelOut;
struct str_Data3D Data3D;
 
int Display_Timer, Debug_Timer,Kompass_Timer,Timer3D;
unsigned int DebugDataIntervall = 0, Intervall3D = 0, Display_Interval = 0;
unsigned int AboTimeOut = 0;
unsigned volatile char ReceiverUpdateModeActive = 0; // 1 = Update 2 = JetiBox-Simulation
 
const unsigned char ANALOG_TEXT[32][16] PROGMEM =
{
//1234567890123456
"AngleNick ", //0
"AngleRoll ",
"AccNick ",
"AccRoll ",
"YawGyro ",
"Altitude [0.1m] ", //5
"AccZ ",
"Gas ",
"Compass Value ",
"Voltage [0.1V] ",
"Receiver Level ", //10
"Gyro Compass ",
"Motor 1 ",
"Motor 2 ",
"Motor 3 ",
"Motor 4 ", //15
"16 ",
"17 ",
"18 ",
"19 ",
"Servo ", //20
"Hovergas ",
"Current [0.1A] ",
"Capacity [mAh] ",
"Height Setpoint ",
"25 ", //25
"26 ", //"26 CPU OverLoad ",
"27 ",
"I2C-Error ",
"BL Limit ",
"GPS_Nick ", //30
"GPS_Roll "
};
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++ Sende-Part der Datenübertragung
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ISR(USART0_TX_vect)
{
static unsigned int ptr = 0;
unsigned char tmp_tx;
 
if(!UebertragungAbgeschlossen)
{
ptr++; // die [0] wurde schon gesendet
tmp_tx = TxdBuffer[ptr];
if((tmp_tx == '\r') || (ptr == MAX_SENDE_BUFF))
{
ptr = 0;
UebertragungAbgeschlossen = 1;
}
UDR0 = tmp_tx;
}
else ptr = 0;
}
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++ Empfangs-Part der Datenübertragung, incl. CRC-Auswertung
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ISR(USART0_RX_vect)
{
static unsigned int crc;
static unsigned char crc1,crc2,buf_ptr;
static unsigned char UartState = 0;
unsigned char CrcOkay = 0;
 
if (ReceiverUpdateModeActive == 1) { UDR1 = UDR0; return; } // 1 = Update
if (ReceiverUpdateModeActive == 2) { RxdBuffer[0] = UDR0; return; } // 2 = JetiBox-Simulation
 
SioTmp = UDR0;
 
if(buf_ptr >= MAX_SENDE_BUFF) UartState = 0;
if(SioTmp == '\r' && UartState == 2)
{
UartState = 0;
crc -= RxdBuffer[buf_ptr-2];
crc -= RxdBuffer[buf_ptr-1];
crc %= 4096;
crc1 = '=' + crc / 64;
crc2 = '=' + crc % 64;
CrcOkay = 0;
if((crc1 == RxdBuffer[buf_ptr-2]) && (crc2 == RxdBuffer[buf_ptr-1])) CrcOkay = 1; else { CrcOkay = 0; CntCrcError++;};
if(!NeuerDatensatzEmpfangen && CrcOkay) // Datensatz schon verarbeitet
{
NeuerDatensatzEmpfangen = 1;
AnzahlEmpfangsBytes = buf_ptr + 1;
RxdBuffer[buf_ptr] = '\r';
if(RxdBuffer[2] == 'R' && !MotorenEin)
{
LcdClear();
wdt_enable(WDTO_250MS); // Reset-Commando
ServoActive = 0;
}
}
}
else
switch(UartState)
{
case 0:
if(SioTmp == '#' && !NeuerDatensatzEmpfangen) UartState = 1; // Startzeichen und Daten schon verarbeitet
buf_ptr = 0;
RxdBuffer[buf_ptr++] = SioTmp;
crc = SioTmp;
break;
case 1: // Adresse auswerten
UartState++;
RxdBuffer[buf_ptr++] = SioTmp;
crc += SioTmp;
break;
case 2: // Eingangsdaten sammeln
RxdBuffer[buf_ptr] = SioTmp;
if(buf_ptr < MAX_EMPFANGS_BUFF) buf_ptr++;
else UartState = 0;
//if(DebugOut.Analog[] < buf_ptr) DebugOut.Analog[] = buf_ptr;
crc += SioTmp;
break;
default:
UartState = 0;
break;
}
}
 
 
// --------------------------------------------------------------------------
void AddCRC(unsigned int wieviele)
{
unsigned int tmpCRC = 0,i;
for(i = 0; i < wieviele;i++)
{
tmpCRC += TxdBuffer[i];
}
// if(i > MAX_SENDE_BUFF - 3) tmpCRC += 11;
tmpCRC %= 4096;
TxdBuffer[i++] = '=' + tmpCRC / 64;
TxdBuffer[i++] = '=' + tmpCRC % 64;
TxdBuffer[i++] = '\r';
UebertragungAbgeschlossen = 0;
UDR0 = TxdBuffer[0];
//if(DebugOut.Analog[] < i) DebugOut.Analog[] = i;
}
 
 
// --------------------------------------------------------------------------
void SendOutData(unsigned char cmd,unsigned char address, unsigned char BufferAnzahl, ...) //unsigned char *snd, unsigned char len)
{
va_list ap;
unsigned int pt = 0;
unsigned char a,b,c;
unsigned char ptr = 0;
 
unsigned char *snd = 0;
int len = 0;
 
TxdBuffer[pt++] = '#'; // Startzeichen
TxdBuffer[pt++] = 'a' + address; // Adresse (a=0; b=1,...)
TxdBuffer[pt++] = cmd; // Commando
 
va_start(ap, BufferAnzahl);
if(BufferAnzahl)
{
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
while(len)
{
if(len)
{
a = snd[ptr++];
len--;
if((!len) && BufferAnzahl)
{
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
}
else a = 0;
if(len)
{
b = snd[ptr++];
len--;
if((!len) && BufferAnzahl)
{
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
}
else b = 0;
if(len)
{
c = snd[ptr++];
len--;
if((!len) && BufferAnzahl)
{
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
}
else c = 0;
TxdBuffer[pt++] = '=' + (a >> 2);
TxdBuffer[pt++] = '=' + (((a & 0x03) << 4) | ((b & 0xf0) >> 4));
TxdBuffer[pt++] = '=' + (((b & 0x0f) << 2) | ((c & 0xc0) >> 6));
TxdBuffer[pt++] = '=' + ( c & 0x3f);
}
va_end(ap);
AddCRC(pt);
}
 
// --------------------------------------------------------------------------
void Decode64(void) // die daten werden im rx buffer dekodiert, das geht nur, weil aus 4 byte immer 3 gemacht werden.
{
unsigned char a,b,c,d;
unsigned char x,y,z;
unsigned char ptrIn = 3; // start at begin of data block
unsigned char ptrOut = 3;
unsigned char len = AnzahlEmpfangsBytes - 6; // von der Gesamtbytezahl eines Frames gehen 3 Bytes des Headers ('#',Addr, Cmd) und 3 Bytes des Footers (CRC1, CRC2, '\r') ab.
 
while(len)
{
a = RxdBuffer[ptrIn++] - '=';
b = RxdBuffer[ptrIn++] - '=';
c = RxdBuffer[ptrIn++] - '=';
d = RxdBuffer[ptrIn++] - '=';
 
x = (a << 2) | (b >> 4);
y = ((b & 0x0f) << 4) | (c >> 2);
z = ((c & 0x03) << 6) | d;
 
if(len--) RxdBuffer[ptrOut++] = x; else break;
if(len--) RxdBuffer[ptrOut++] = y; else break;
if(len--) RxdBuffer[ptrOut++] = z; else break;
}
pRxData = (unsigned char*)&RxdBuffer[3]; // decodierte Daten beginnen beim 4. Byte
RxDataLen = ptrOut - 3; // wie viele Bytes wurden dekodiert?
 
}
 
// --------------------------------------------------------------------------
void BearbeiteRxDaten(void)
{
if(!NeuerDatensatzEmpfangen) return;
 
unsigned char tempchar1, tempchar2;
Decode64(); // dekodiere datenblock im Empfangsbuffer
switch(RxdBuffer[1]-'a') // check for Slave Address
{
case FC_ADDRESS: // FC special commands
switch(RxdBuffer[2])
{
case 'K':// Kompasswert
memcpy((unsigned char *)&KompassValue , (unsigned char *)pRxData, sizeof(KompassValue));
// KompassRichtung = ((540 + KompassValue - KompassSollWert) % 360) - 180;
break;
case 't':// Motortest
if(AnzahlEmpfangsBytes > 20) memcpy(&MotorTest[0], (unsigned char *)pRxData, sizeof(MotorTest));
else memcpy(&MotorTest[0], (unsigned char *)pRxData, 4);
PC_MotortestActive = 240;
//while(!UebertragungAbgeschlossen);
//SendOutData('T', MeineSlaveAdresse, 0);
PcZugriff = 255;
break;
 
case 'n':// "Get Mixer
while(!UebertragungAbgeschlossen);
SendOutData('N', FC_ADDRESS, 1, (unsigned char *) &Mixer, sizeof(Mixer) - 1);
Debug("Mixer lesen");
break;
 
case 'm':// "Write Mixer
if(pRxData[0] == EEMIXER_REVISION)
{
memcpy(&Mixer, (unsigned char *)pRxData, sizeof(Mixer) - 1);
MixerTable_WriteToEEProm();
tempchar1 = 1;
VersionInfo.HardwareError[1] &= ~FC_ERROR1_MIXER;
}
else
{
tempchar1 = 0;
}
while(!UebertragungAbgeschlossen);
SendOutData('M', FC_ADDRESS, 1, &tempchar1, sizeof(tempchar1));
break;
 
case 'p': // get PPM Channels
GetPPMChannelAnforderung = 1;
PcZugriff = 255;
break;
 
case 'q':// "Get"-Anforderung für Settings
// Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen
if(!MotorenEin)
{
if((10 <= pRxData[0]) && (pRxData[0] < 20))
{
tempchar1 = pRxData[0] - 10;
if(tempchar1< 1) tempchar1 = 1; // limit to 1
else if(tempchar1 > 5) tempchar1 = 5; // limit to 5
SetDefaultParameter(tempchar1, 1);
}
else if((20 <= pRxData[0]) && (pRxData[0] < 30))
{
tempchar1 = pRxData[0] - 20;
if(tempchar1< 1) tempchar1 = 1; // limit to 1
else if(tempchar1 > 5) tempchar1 = 5; // limit to 5
SetDefaultParameter(tempchar1, 0);
}
else
{
tempchar1 = pRxData[0];
if(tempchar1 == 0xFF)
{
tempchar1 = GetActiveParamSet();
}
if(tempchar1< 1) tempchar1 = 1; // limit to 1
else if(tempchar1 > 5) tempchar1 = 5; // limit to 5
// load requested parameter set
ParamSet_ReadFromEEProm(tempchar1);
}
LipoDetection(0);
} else tempchar1 = GetActiveParamSet();
while(!UebertragungAbgeschlossen);
SendOutData('Q', FC_ADDRESS, 2, &tempchar1, sizeof(tempchar1), (unsigned char *) &EE_Parameter, sizeof(EE_Parameter) - 1);
Debug("Lese Setting %d", tempchar1);
break;
 
case 's': // Parametersatz speichern
if((1 <= pRxData[0]) && (pRxData[0] <= 5) && (pRxData[1] == EEPARAM_REVISION) && MotorenEin == 0) // check for setting to be in range
{
memcpy(&EE_Parameter, (uint8_t*)&pRxData[1], sizeof(EE_Parameter) - 1);
ParamSet_WriteToEEProm(pRxData[0]);
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L;
tempchar1 = GetActiveParamSet();
}
else
{
tempchar1 = 0; // mark in response an invlid setting
}
while(!UebertragungAbgeschlossen);
SendOutData('S', FC_ADDRESS, 1, &tempchar1, sizeof(tempchar1));
if(!MotorenEin)
{
Piep(tempchar1,110);
LipoDetection(0);
}
LIBFC_ReceiverInit(EE_Parameter.Receiver);
break;
case 'f': // auf anderen Parametersatz umschalten
if(MotorenEin) break;
if((1 <= pRxData[0]) && (pRxData[0] <= 5)) ParamSet_ReadFromEEProm(pRxData[0]);
tempchar1 = GetActiveParamSet();
while(!UebertragungAbgeschlossen);
SendOutData('F', FC_ADDRESS, 1, &tempchar1, sizeof(tempchar1));
if(!MotorenEin)
{
Piep(tempchar1,110);
LipoDetection(0);
}
LIBFC_ReceiverInit(EE_Parameter.Receiver);
break;
case 'y':// serial Potis
for(tempchar1 = 0; tempchar1 < 12; tempchar1++) PPM_in[SERIAL_POTI_START + tempchar1] = (signed char) pRxData[tempchar1];
break;
case 'u': // request BL parameter
Debug("Reading BL %d", pRxData[0]);
// try to read BL configuration
tempchar2 = I2C_ReadBLConfig(pRxData[0]);
if(tempchar2 == BLCONFIG_SUCCESS) tempchar1 = 1;
else tempchar1 = 0;
while(!UebertragungAbgeschlossen); // wait for previous frame to be sent
SendOutData('U', FC_ADDRESS, 4, &tempchar1, sizeof(tempchar1), &tempchar2, sizeof(tempchar2), &pRxData[0], 1, &BLConfig, sizeof(BLConfig_t));
break;
case 'w': // write BL parameter
Debug("Writing BL %d", pRxData[0]);
if(RxDataLen >= 1+sizeof(BLConfig_t))
{
memcpy(&BLConfig, (uint8_t*)(&pRxData[1]), sizeof(BLConfig_t));
tempchar2 = I2C_WriteBLConfig(pRxData[0]);
if(tempchar2 == BLCONFIG_SUCCESS) tempchar1 = 1;
else tempchar1 = 0; // indicate error
while(!UebertragungAbgeschlossen); // wait for previous frame to be sent
SendOutData('W', FC_ADDRESS,2, &tempchar1, sizeof(tempchar1), &tempchar2, sizeof(tempchar2));
}
break;
case 'j':
if(MotorenEin) break;
tempchar1 = LIBFC_GetCPUType();
if((tempchar1 == CPU_ATMEGA644P) || (tempchar1 == CPU_ATMEGA1284P))
{
uint16_t ubrr = (uint16_t) ((uint32_t) F_CPU/ (8 * 38400L) - 1);
 
cli();
 
// UART0 & UART1 disable RX and TX-Interrupt
UCSR0B &= ~((1 << RXCIE0)|(1 << TXCIE0));
UCSR1B &= ~((1 << RXCIE1)|(1 << TXCIE1));
 
// UART0 & UART1 disable receiver and transmitter
UCSR0B &= ~((1 << TXEN0) | (1 << RXEN0));
UCSR1B &= ~((1 << TXEN1) | (1 << RXEN1));
 
// UART0 & UART1 flush receive buffer explicit
while ( UCSR1A & (1<<RXC1) ) UDR1;
while ( UCSR0A & (1<<RXC0) ) UDR0;
 
 
if(pRxData[0] == 1) ReceiverUpdateModeActive = 2;
else
{ // Jeti or HoTT update
//#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(pRxData[0] == 100) ubrr = (uint16_t) ((uint32_t) F_CPU/ (8 * 19200L) - 1); // HoTT
//#endif
ReceiverUpdateModeActive = 1;
// UART0 & UART1 set baudrate
UBRR1H = (uint8_t)(ubrr>>8);
UBRR1L = (uint8_t)ubrr;
UBRR0H = UBRR1H;
UBRR0L = UBRR1L;
// UART1 no parity
UCSR1C &= ~(1 << UPM11);
UCSR1C &= ~(1 << UPM10);
// UART1 8-bit
UCSR1B &= ~(1 << UCSZ12);
UCSR1C |= (1 << UCSZ11);
UCSR1C |= (1 << UCSZ10);
}
// UART0 & UART1 1 stop bit
UCSR1C &= ~(1 << USBS1);
UCSR0C &= ~(1 << USBS0);
// UART1 clear 9th bit
UCSR1B &= ~(1<<TXB81);
// enable receiver and transmitter for UART0 and UART1
UCSR0B |= (1 << TXEN0) | (1 << RXEN0);
UCSR1B |= (1 << TXEN1) | (1 << RXEN1);
// enable RX-Interrupt for UART0 and UART1
UCSR0B |= (1 << RXCIE0);
UCSR1B |= (1 << RXCIE1);
// disable other Interrupts
TIMSK0 = 0;
TIMSK1 = 0;
TIMSK2 = 0;
 
sei();
}
break;
 
} // case FC_ADDRESS:
 
default: // any Slave Address
 
switch(RxdBuffer[2])
{
#ifdef REDUNDANT_FC_SLAVE
static unsigned int clear_I;
case '?':// Serielle Antwort eines BL-Reglers
tempchar1 = RxdBuffer[1] - ('a'+11);
if(tempchar1 >= MAX_MOTORS) break;
memcpy((unsigned char *)&RedundantMotor[tempchar1], (unsigned char *)pRxData, sizeof(RedundantBl_t));
if(RedundantMotor[tempchar1].BitSate & BL_BIT_STATE_I2C_OK && clear_I) clear_I--;
if(!(RedundantMotor[tempchar1].BitSate & BL_BIT_STATE_I2C_OK)) ROT_FLASH;
GRN_FLASH;
if(RedundantMotor[tempchar1].BitSate & BL_BIT_STATE_I2C_BAD)
{
ROT_ON;
if(clear_I == 0)
{
SummeNick = 0;
SummeRoll = 0;
Mess_Integral_Gier = 0;
}
clear_I = 500;
}
//DebugOut.Analog[16] = RedundantMotor[tempchar1].BitSate;
//DebugOut.Analog[17]++;
//DebugOut.Analog[18] = tempchar1;
break;
#endif
// 't' comand placed here only for compatibility to BL
case 't':// Motortest
if(AnzahlEmpfangsBytes >= sizeof(MotorTest)) memcpy(&MotorTest[0], (unsigned char *)pRxData, sizeof(MotorTest));
else memcpy(&MotorTest[0], (unsigned char *)pRxData, 4);
while(!UebertragungAbgeschlossen);
SendOutData('T', MeineSlaveAdresse, 0);
PC_MotortestActive = 250;
PcZugriff = 255;
AboTimeOut = SetDelay(ABO_TIMEOUT);
break;
// 'K' comand placed here only for compatibility to old MK3MAG software, that does not send the right Slave Address
case 'K':// Kompasswert
memcpy((unsigned char *)&KompassValue , (unsigned char *)pRxData, sizeof(KompassValue));
// KompassRichtung = ((540 + KompassValue - KompassSollWert) % 360) - 180;
break;
case 'a':// Texte der Analogwerte
DebugTextAnforderung = pRxData[0];
if (DebugTextAnforderung > 31) DebugTextAnforderung = 31;
PcZugriff = 255;
break;
case 'b':
memcpy((unsigned char *)&ExternControl, (unsigned char *)pRxData, sizeof(ExternControl));
ConfirmFrame = ExternControl.Frame;
PcZugriff = 255;
break;
case 'c': // Poll the 3D-Data
if(!Intervall3D) { if(pRxData[0]) Timer3D = SetDelay(pRxData[0] * 10);}
Intervall3D = pRxData[0] * 10;
AboTimeOut = SetDelay(ABO_TIMEOUT);
break;
case 'd': // Poll the debug data
PcZugriff = 255;
DebugDataIntervall = (unsigned int)pRxData[0] * 10;
if(DebugDataIntervall > 0) DebugDataAnforderung = 1;
AboTimeOut = SetDelay(ABO_TIMEOUT);
break;
 
case 'h':// x-1 Displayzeilen
PcZugriff = 255;
if((pRxData[0] & 0x80) == 0x00) // old format
{
DisplayLine = 2;
Display_Interval = 0;
}
else // new format
{
RemoteKeys |= ~pRxData[0];
Display_Interval = (unsigned int)pRxData[1] * 10;
DisplayLine = 4;
AboTimeOut = SetDelay(ABO_TIMEOUT);
}
DebugDisplayAnforderung = 1;
break;
 
case 'l':// x-1 Displayzeilen
PcZugriff = 255;
MenuePunkt = pRxData[0];
DebugDisplayAnforderung1 = 1;
break;
case 'v': // Version-Anforderung und Ausbaustufe
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(RxDataLen > 0 && pRxData[0] == 2) GetVersionAnforderung = 2;
else
#endif
GetVersionAnforderung = 1;
break;
case 'g'://
GetExternalControl = 1;
break;
 
default:
//unsupported command received
break;
}
break; // default:
}
NeuerDatensatzEmpfangen = 0;
pRxData = 0;
RxDataLen = 0;
}
 
//############################################################################
//Routine für die Serielle Ausgabe
void uart_putchar (char c)
//############################################################################
{
//Warten solange bis Zeichen gesendet wurde
loop_until_bit_is_set(UCSR0A, UDRE0);
//Ausgabe des Zeichens
UDR0 = c;
}
 
 
//############################################################################
//INstallation der Seriellen Schnittstelle
void UART_Init (void)
//############################################################################
{
unsigned int ubrr = (unsigned int) ((unsigned long) F_CPU/(8 * USART0_BAUD) - 1);
 
//Enable TXEN im Register UCR TX-Data Enable & RX Enable
UCSR0B = (1 << TXEN0) | (1 << RXEN0);
// UART Double Speed (U2X)
UCSR0A |= (1 << U2X0);
// RX-Interrupt Freigabe
UCSR0B |= (1 << RXCIE0);
// TX-Interrupt Freigabe
UCSR0B |= (1 << TXCIE0);
// USART0 Baud Rate Register
// set clock divider
UBRR0H = (uint8_t)(ubrr >> 8);
UBRR0L = (uint8_t)ubrr;
 
Debug_Timer = SetDelay(DebugDataIntervall);
Kompass_Timer = SetDelay(220);
 
VersionInfo.SWMajor = VERSION_MAJOR;
VersionInfo.SWMinor = VERSION_MINOR;
VersionInfo.SWPatch = VERSION_PATCH;
VersionInfo.ProtoMajor = VERSION_SERIAL_MAJOR;
VersionInfo.reserved1 = 0;
VersionInfo.BL_Firmware = 255;
VersionInfo.HWMajor = PlatinenVersion;
pRxData = 0;
RxDataLen = 0;
}
 
//---------------------------------------------------------------------------------------------
void DatenUebertragung(void)
{
if(!UebertragungAbgeschlossen) return;
 
if(CheckDelay(AboTimeOut))
{
Display_Interval = 0;
DebugDataIntervall = 0;
Intervall3D = 0;
}
 
if(((Display_Interval>0 && CheckDelay(Display_Timer)) || DebugDisplayAnforderung) && UebertragungAbgeschlossen)
{
if(DisplayLine > 3)// new format
{
Menu();
SendOutData('H', FC_ADDRESS, 1, (uint8_t *)DisplayBuff, 80);
}
else // old format
{
LCD_printfxy(0,0,"!!! INCOMPATIBLE !!!");
SendOutData('H', FC_ADDRESS, 2, &DisplayLine, sizeof(DisplayLine), (uint8_t *)DisplayBuff, 20);
if(DisplayLine++ > 3) DisplayLine = 0;
}
Display_Timer = SetDelay(Display_Interval);
DebugDisplayAnforderung = 0;
}
if(DebugDisplayAnforderung1 && UebertragungAbgeschlossen)
{
Menu();
SendOutData('L', FC_ADDRESS, 3, &MenuePunkt, sizeof(MenuePunkt), &MaxMenue, sizeof(MaxMenue), DisplayBuff, sizeof(DisplayBuff));
DebugDisplayAnforderung1 = 0;
}
if(GetVersionAnforderung && UebertragungAbgeschlossen)
{
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
if(GetVersionAnforderung == 2) // poll version of NC
{
struct str_VersionInfo nc;
nc.SWMajor = NC_Version.Major;
nc.SWMinor = NC_Version.Minor;
nc.SWPatch = NC_Version.Patch;
nc.HWMajor = NC_Version.Hardware;
nc.HardwareError[0] = 0xff;
nc.HardwareError[1] = 0xff;
nc.ProtoMajor = VersionInfo.ProtoMajor;
nc.BL_Firmware = VersionInfo.BL_Firmware;
nc.Flags = VersionInfo.Flags;
nc.reserved1 = 0;
SendOutData('V', FC_ADDRESS, 1, (unsigned char *) &nc, sizeof(nc));
}
else
#endif
{
SendOutData('V', FC_ADDRESS, 1, (unsigned char *) &VersionInfo, sizeof(VersionInfo));
}
GetVersionAnforderung = 0;
Debug_OK("Version gesendet");
}
 
if(GetExternalControl && UebertragungAbgeschlossen) // Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen
{
SendOutData('G',MeineSlaveAdresse, 1, (unsigned char *) &ExternControl, sizeof(ExternControl));
GetExternalControl = 0;
}
if(((DebugDataIntervall>0 && CheckDelay(Debug_Timer)) || DebugDataAnforderung) && UebertragungAbgeschlossen)
{
CopyDebugValues();
SendOutData('D', FC_ADDRESS, 1, (unsigned char *) &DebugOut,sizeof(DebugOut));
DebugDataAnforderung = 0;
if(DebugDataIntervall>0) Debug_Timer = SetDelay(DebugDataIntervall);
}
if(Intervall3D > 0 && CheckDelay(Timer3D) && UebertragungAbgeschlossen)
{
Data3D.Winkel[0] = ToNaviCtrl.IntegralNick;//(int) (IntegralNick / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
Data3D.Winkel[1] = ToNaviCtrl.IntegralRoll;//(int) (IntegralRoll / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
Data3D.Winkel[2] = (int) ((10 * ErsatzKompass) / GIER_GRAD_FAKTOR);
Data3D.Centroid[0] = SummeNick >> 9;
Data3D.Centroid[1] = SummeRoll >> 9;
Data3D.Centroid[2] = Mess_Integral_Gier >> 9;
SendOutData('C', FC_ADDRESS, 1, (unsigned char *) &Data3D,sizeof(Data3D));
Timer3D = SetDelay(Intervall3D);
}
if(DebugTextAnforderung != 255) // Texte für die Analogdaten
{
unsigned char label[16]; // local sram buffer
memcpy_P(label, ANALOG_TEXT[DebugTextAnforderung], 16); // read lable from flash to sra
SendOutData('A', FC_ADDRESS, 2, (unsigned char *)&DebugTextAnforderung, sizeof(DebugTextAnforderung),label, 16);
DebugTextAnforderung = 255;
}
if(ConfirmFrame && UebertragungAbgeschlossen) // Datensatz bestätigen
{
SendOutData('B', FC_ADDRESS, 1, (uint8_t*)&ConfirmFrame, sizeof(ConfirmFrame));
ConfirmFrame = 0;
}
if(GetPPMChannelAnforderung && UebertragungAbgeschlossen)
{
SendOutData('P', FC_ADDRESS, 1, (unsigned char *) &PPM_in, sizeof(PPM_in));
GetPPMChannelAnforderung = 0;
}
#ifndef REDUNDANT_FC_SLAVE
if((CheckDelay(Kompass_Timer)) && UebertragungAbgeschlossen)
{
if(!NaviDataOkay) // no external compass needed
{
WinkelOut.Winkel[0] = ToNaviCtrl.IntegralNick;//(int) (IntegralNick / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
WinkelOut.Winkel[1] = ToNaviCtrl.IntegralRoll;//(int) (IntegralRoll / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
WinkelOut.UserParameter[0] = Parameter_UserParam1;
WinkelOut.UserParameter[1] = Parameter_UserParam2;
SendOutData('k', MK3MAG_ADDRESS, 1, (unsigned char *) &WinkelOut,sizeof(WinkelOut));
}
if(WinkelOut.CalcState > 4) WinkelOut.CalcState = 6; // wird dann in SPI auf Null gesetzt
if(JustMK3MagConnected) Kompass_Timer = SetDelay(99);
else Kompass_Timer = SetDelay(999);
}
#endif
 
#ifdef REDUNDANT_FC_SLAVE
if(UebertragungAbgeschlossen || MotorenEin)
{
static unsigned char who, request;
unsigned char SendRedundantMotor[MAX_MOTORS], i;
if(!request) { who = (who+1) % RequiredMotors; request = 1;} // nur in jedem 2. Zykus abfragen, weil die Antwort zu lang ist
else request = 0;
for(i=0; i<RequiredMotors; i++)
{
if(request) SendRedundantMotor[0] = who+1;
else SendRedundantMotor[0] = 0;
if(PC_MotortestActive) SendRedundantMotor[0] |= 0x80;
SendRedundantMotor[i+1] = Motor[i].SetPoint;
}
SendOutData('!', FC_ADDRESS, 1, (unsigned char *) &SendRedundantMotor, RequiredMotors+1);
}
#endif
 
#ifdef DEBUG // only include functions if DEBUG is defined
if(SendDebugOutput && UebertragungAbgeschlossen)
{
SendOutData('0', FC_ADDRESS, 1, (unsigned char *) &tDebug, sizeof(tDebug));
SendDebugOutput = 0;
}
#endif
}
 
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/uart.h
0,0 → 1,117
#ifndef _UART_H
#define _UART_H
 
#define printf_P(format, args...) _printf_P(&uart_putchar, format , ## args)
#define printf(format, args...) _printf_P(&uart_putchar, PSTR(format) , ## args)
 
void BearbeiteRxDaten(void);
 
extern unsigned char DebugGetAnforderung;
extern unsigned volatile char ReceiverUpdateModeActive;
extern unsigned volatile char UebertragungAbgeschlossen;
extern unsigned volatile char PC_DebugTimeout;
extern unsigned volatile char NeueKoordinateEmpfangen;
extern unsigned volatile char PC_MotortestActive;
extern unsigned char MeineSlaveAdresse;
extern unsigned char PcZugriff;
extern unsigned char RemotePollDisplayLine;
extern unsigned volatile char RxdBuffer[];
extern int Debug_Timer,Kompass_Timer;
extern void UART_Init (void);
extern void uart_putchar (char c);
//extern void boot_program_page (uint32_t page, uint8_t *buf);
extern void DatenUebertragung(void);
extern void Uart1Init(void);
extern void BearbeiteRxDaten(void);
extern unsigned char MotorTest[16];
struct str_DebugOut
{
unsigned char Status[2];
signed int Analog[32]; // Debugwerte
};
 
extern struct str_DebugOut DebugOut;
 
struct str_WinkelOut
{
signed int Winkel[2];
unsigned char UserParameter[2];
unsigned char CalcState;
unsigned char Orientation;
};
extern struct str_WinkelOut WinkelOut;
 
struct str_Data3D
{
signed int Winkel[3]; // nick, roll, compass in 0,1°
signed char Centroid[3];
signed char reserve[5];
};
extern struct str_Data3D Data3D;
 
struct str_ExternControl
{
unsigned char Digital[2];
unsigned char RemoteTasten;
signed char Nick;
signed char Roll;
signed char Gier;
unsigned char Gas;
signed char Hight;
unsigned char free;
unsigned char Frame;
unsigned char Config;
};
extern struct str_ExternControl ExternControl;
 
// FC hardware errors
 
// bitmask for UART_VersionInfo_t.HardwareError[0]
#define FC_ERROR0_GYRO_NICK 0x01
#define FC_ERROR0_GYRO_ROLL 0x02
#define FC_ERROR0_GYRO_YAW 0x04
#define FC_ERROR0_ACC_NICK 0x08
#define FC_ERROR0_ACC_ROLL 0x10
#define FC_ERROR0_ACC_TOP 0x20
#define FC_ERROR0_PRESSURE 0x40
#define FC_ERROR0_CAREFREE 0x80
// bitmask for UART_VersionInfo_t.HardwareError[1]
#define FC_ERROR1_I2C 0x01
#define FC_ERROR1_BL_MISSING 0x02
#define FC_ERROR1_SPI_RX 0x04
#define FC_ERROR1_PPM 0x08
#define FC_ERROR1_MIXER 0x10
#define FC_ERROR1_RES1 0x20
#define FC_ERROR1_RES2 0x40
#define FC_ERROR1_RES3 0x80
 
 
// for FlightCtrl
//VersionInfo.Flags
#define FC_VERSION_FLAG_NC_PRESENT 0x01
// for NaviCtrl
#define NC_VERSION_FLAG_MK3MAG_PRESENT 0x01
 
struct str_VersionInfo
{
unsigned char SWMajor;
unsigned char SWMinor;
unsigned char ProtoMajor;
unsigned char reserved1;
unsigned char SWPatch;
unsigned char HardwareError[2];
unsigned char HWMajor;
unsigned char BL_Firmware;
unsigned char Flags;
};
 
extern struct str_VersionInfo VersionInfo;
 
//#define USART0_BAUD 9600
//#define USART0_BAUD 14400
//#define USART0_BAUD 28800
//#define USART0_BAUD 38400
#define USART0_BAUD 57600
 
 
#endif //_UART_H
/branches/V2.08a_Rens_Testversion/FlightCtrl/user_receiver.c
0,0 → 1,23
//############################################################################
// Implement your own RC-decoding routines here
//############################################################################
 
 
//############################################################################
// Initialize the UART here
//############################################################################
void User_Receiver_Init(void)
{
// SpektrumUartInit(); // or use an existing routine like this
}
 
 
//############################################################################
// Is called by the uart RX interrupt
// UDR contains the received byte
//############################################################################
void User_RX_Parser(unsigned char udr)
{
}
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/user_receiver.h
0,0 → 1,4
// for own implementations
void User_Receiver_Init(void);
void User_RX_Parser(unsigned char);
 
/branches/V2.08a_Rens_Testversion/FlightCtrl/vector.h
0,0 → 1,19
#ifndef _VECTOR_H
#define _VECTOR_H
 
typedef struct
{
int32_t x;
int32_t y;
int32_t z;
} __attribute__((packed)) vector32_t;
 
typedef struct
{
int16_t x;
int16_t y;
int16_t z;
} __attribute__((packed)) vector16_t;
 
 
#endif //_VECTOR_H
/branches/V2.08a_Rens_Testversion/FlightCtrl/version.txt
0,0 → 1,759
 
-------
V0.53 27.04.2007 H.Buss
- erste öffentliche Version
 
V0.53b 29.04.2007 H.Buss
- der FAKTOR_I war versehentlich auf Null, dann liegt der MikroKopter nicht so hart in der Luft
 
V0.53c 29.04.2007 H.Buss
- es gib ein Menü, in dem die Werte der Kanäle nach Nick, Roll, Gas,... sortiert sind.
Die angezeigten Werte waren nicht die Werte der Funke
 
V0.54 01.05.2007 H.Buss
- die Paramtersätze können jetzt vor dem Start ausgewählt werden
Dazu wird beim Kalibrieren der Messwerte (Gashebel oben links) der Nick-Rollhebel abgefragt:
2 3 4
1 x 5
- - -
Bedeutet: Nick-Rollhebel Links Mitte = Setting:1 Links Oben = Setting:2 usw.
- der Faktor_I für den Hauptregler ist hinzugekommen. Im Heading-Hold-Modus sollte er vergössert werden, was Stabilität bringt
 
V0.55 14.05.2007 H.Buss
- es können nun Servos an J3,J4,J5 mit den Kanälen 5-7 gesteuert werden
 
V0.56 14.05.2007 H.Buss
- es gab Probleme mit Funken, die mehr als 8 Kanäle haben, wenn mehrere Kanäle dann auf Null waren
- Funken, die nicht bis +-120 aussteuern können, sollten jetzt auch gehen
V0.57 24.05.2007 H.Buss
- Der Höhenregler kann nun auch mittels Schalter bedient werden
- Bug im Gier-Algorithmus behoben; Schnelles Gieren fürhrte dazu, dass der MK zu weit gedreht hat
- Kompass-Einfluss dämpfen bei Neigung
- Man kann zwischen Kompass FIX (Richtung beim Kalibrieren) und Variabel (einstellbar per Gier) wählen
- Der Motortest vom Kopter-Tool geht jetzt
- Man kann den Parametersätzen einen Namen geben
- Das Kamerasetting ist unter Setting 2 defaultmässig integriert
V0.58 30.05.2007 H.Buss
- Der Höhenregler-Algorithmus wird nun umgangen, wenn der Höhenreglerschalter aus ist
 
V0.60 17.08.2007 H.Buss
- "Schwindel-Bug" behoben
- Die Poti-Werte werden jetzt auf Unterlauf (<0) überprüft
- Poti4 zugefügt
- Es werden jetzt 8 Kanäle ausgewertet
- Kamera-Servo (an J7)
- Die Settings müssen überschrieben werden
V0.61 - V0.63 H.Buss 27.09.2007
- Poti 4 und Kanal 8 werden im Menü angezeigt
- ein paar Kleinigkeiten bei den DefaultKonstanten2 bereinigt
- Analog.c: Aktuell_ax korrigiert
- auf 32 Debug-Kanäle erweitert
- Loopings sind jetzt möglich und einzeln im KopterTool freischaltbar
- leichte Anpassungen im Gier - Geschwindigkeit und Drift
- die Hardwareversion V1.1 wird erkannt und das Programm stellt sich auf die geänderte Gyroverstärkung und die geänderten Portpins ein
- die Software startet nach dem Einschalten schneller, weil der Luftdruckoffset schneller gefunden wird
- die PPM-Ausgänge liegen wieder an den Pins an
- Details an der Sensordatenverarbeitung -> es fliegt sich geringfügig anders
- der MK ist bei wenig Gas nicht mehr so giftig -> soll das Landen vereinfachen
- I2C-Bus läuft jetzt sicher nach einer Störung wieder an
- Sticksignale werden präziser ausgewertet
- Stick-Kanäle werden ans Kopter-Tool übertragen
- Es muss die Version V1.47 des Kopter-Tool verwendet werden
- Die Settings werden auf Default zurückgesetzt
- am Piepen kann man die Fehlerart unterscheiden
1. einzelnes Piepen beim Einschalten und Kalibrieren
2. langsames Intervall mindestens 1 Sek -> Empfangsausfall
3. schnelleres Intervall mindestens 1 Sek -> Akku
4. sehr schnelles Intervall mindestens 1 Sek -> Kommunikation zu den Reglern gestört
V0.64 H.Buss 30.09.2007
- beim Gieren wurden die Achsen nicht hart genug geregelt
V0.65a H.Buss 15.10.2007
- Integral im Mischer wieder integriert
- Feinabstimmung im ACC/Gyro Abgleich -> 1/32 & 100
- ACC/Gyro Abgleich auch bei HH
 
V0.66a H.Buss 3.11.2007
- Messwertverarbeitung aus dem Analog-Interrupt entfernt
- Analogmessung hängt jetzt am FC-Timing
- Looping-Stick-Hysterese eingebaut
- Looping-180°-Umschlag einstellbar
- Achsenkopplung: Gierbewegung verkoppelt Nick und Roll
- Lageregelung nach ACC-Sensor verbessert
- zusätzlicher I-Anteil in der Lageregelung verbessert die Neutrallage
- Gyrodriftkompensation überarbeitet
- Bug in der Gier-Stick-Berechnung behoben
- Gyro-Messung auf 1kHz beschleunigt
V0.67a H.Buss 16.11.2007
- der Hauptregler-I-Anteil wirkt jetzt nur noch auf den Winkel (ausser im HH-Mode)
- Gyro-Acc-Abgleich jetzt wieder in jedem Zyklus
- Feinabstimmung
- Beim HH-Modus gab es noch Bugs
 
V0.67e H.Buss 29.11.2007
- Parameter: Dynamic Stability und Driftfaktor eingeführt
- Die Namen der Analogwerte werden jetzt zum Koptertool übertragen
- Kompatibilität zum Koptertool erhöht
 
V0.67f H.Buss 04.12.2007
- Das Integral des Hauptreglers wird jetzt linear entladen und nicht mehr proportional
- Schub für Gier wird jetzt auf den Gaswert begrenzt, dadurch steigt der MK nicht mehr beim Gieren. Gier ist allerdings nicht mehr so agressiv
- Die ACC-Nullwerte können jetzt dauerhaft im EEPROM gespeichert werden (Stick:Vollgas und Gier rechts)
V0.68a I.Busker 28.12.2007
- SPI.c & SPI.h ins Projekt aufgenommen
SPI-Kommuikation kann in SPI.h aktiviert/deaktivert werden
 
V0.68c H.Buss 05.01.2008
- Stickauswertung verbessert -> träger und präziser
- Alle Settings angepasst
 
V0.69e H.Buss 05.05.2008
- kleinere Bugs beseitigt
- Schneller Sinkflug jetzt möglich
- Min- und Maxgas in den Settings geändert
- Lagewinkel wird jetzt in 0,1 Grad an Kompass und Navi gesendet
- Kalibrierung für MK3Mag -> Nick unten beim Kalibrieren
- Kompassroutine um den Ersatzkompass (Gyro unterstützt Kompasswert) erweitert
V0.69h H.Buss 21.05.2008
- STICK_GAIN = 4 eingeführt. Das erhöht die Auflösung der Sollwerte. Stick_P und Stick_I müssen nun um Faktor 4 erhöht werden
- SenderOkay auch an das Naviboard übertragen
- Bessere Parameter bei Senderausfall
V0.69j H.Buss 30.05.2008
- Höhere Präzision der Achsenkopplung
 
V0.69k H.Buss 31.05.2008
- Bug in SPI.C behoben
- in 0.69h war ein Bug, der zu ungewollten Loopings führen konnte
 
V0.69L H.Buss 14.06.2008
- feinere Cam-Servo-Auflösung
V0.70a H.Buss 01.07.2008
- Unterstützung der V1.3-Hardware mit automatischem Hardware-Gyro-Abgleich
 
V0.70b H.Buss 14.07.2008
- flexible Einstellungsmöglichkeit von J16 und J17 (Transistorausgänge)
- eigene Parameter für GPS-Naviboard
- eigener Parameter für ExternalControl (war vorher UserParameter1 bzw. 8)
- neue Parameter im EEPROM-Datensatz: J16Bitmask, J16Timing, ExternalControl, Navi...
- MikroKopterFlags eingeführt, damit das Navi den Status des MKs kennt
- KopterTool-Kompatibilität auf 8 erhöht
V0.70c H.Buss 30.07.2008
- Parameter der Datenfusion leicht modifiziert
- EEPROM-Parameter für Looping-Umschlag angepasst (von 100 auf 85)
- MaxStick wird auf 100 begrenzt
 
V0.70d H.Buss 02.08.2008
- Transistorausgänge: das oberste Bit der Blinkmaske (im KopterTool linkes Bit) gibt nun den Zustand des Ausgangs im Schalterbetrieb an
0.71b: H.Buss 19.10.2008
Kommunikation zum Navi erweitert:
- Beeptime jetzt 32Bit
- Datenfusion und Driftkopensation wird durch NaviBoard unterstützt
0.71c: H.Buss 20.10.2008
- LoopConfig heisst jetzt BitConfig
- 3-Fach-Schalter für Höhensteuerung möglich -> kann man mit GPS-Schalter zusammenlegen
- bei den Settings wurde Setting[0] mit abgespeichert, welches es nicht gab.
- in Zukunft werden bei neuen EEPROM-Settings die Kanäle von Setting 1 übernommen
- Variablen NaviWindCorrection, NaviSpeedCompensation, NaviOperatingRadius eingeführt
 
0.71f: H.Buss 15.11.2008
- Ausschalten der Höhenregelung per Schalter um 0,3 sek verzögert
- bei der seriellen Übertragung hat die FC jetzt als SlaveAdresse die 1
- VersionInfo.NaviKompatibel eingeführt
- wenn manuell gegiert wird, wird der GyroKompass-Wert auf den Kompasswert gesetzt
- Luftdruckwert wird an das Navi übertragen
- Der Baro-Offset wird jetzt nachgeführt, um den Messbereich zu erweitern. Geht nur bei Höhenregler mit Schalter
- Debugdaten können jetzt mit 'f' gepollt werden
0.71g: Gregor 09.12.2008
- Kommunikation überarbeitet
Infos hier: http://www.mikrokopter.de/ucwiki/en/SerialCommands
0.71h: H.Buss 15.12.2008
- Freigegebene Version
- NaviAngleLimitation als Parameter zum Navi implementiert
- Antwort auf CMD: 't' entfernt
0.72d: H.Buss 22.01.2009
- OCTO als Compilerschalter
- Unterstützung der FC 2.0 (ME)
- GYRO_D eingeführt
- Achsenkopplung jetzt auch auf Nick/Roll-Bewegung
0.72e: H.Buss 27.01.2009
- die 0.72d hatte kein Integral im Gier
- Parameter eingeführt:
EE_Parameter.NaviGpsPLimit
EE_Parameter.NaviGpsILimit
EE_Parameter.NaviGpsDLimit
EE_Parameter.NaviPH_LoginTime
EE_Parameter.AchsKopplung2
EE_Parameter.CouplingYawCorrection
 
0.72f: H.Buss 28.01.2009
- Bug im Ersatzkompass entfernt
 
0.72h: H.Buss 05.02.2009
- Algorithmen beschleunigt -> Floats durch Fixkomma ersetzt
- Achsentkopplung weiter verbessert
- Nick- und Roll im Octo-Mischer auf jeweils vier Motoren aufgeteilt
 
0.72i: H.Buss 07.02.2009
- Abtastrate von 1kHz auf 2kHz erhöht
 
0.72j: H.Buss 09.02.2009
- neue Implementierung der Servoausgänge
 
0.72k: H.Buss 10.02.2009
- Abtastrate auf 5kHz erhöht
 
0.72L: H.Buss 13.02.2009
- Signalfilterung überarbeitet
- OCTO2 implementiert
 
0.72M: H.Buss 13.02.2009
- Code Cleanup
 
0.72o: H.Buss 24.02.2009
- Abtastrate auf 2kHz
- HW-Version an Navi
- neuer Datensatz 'c' -> Lagedaten für 3D-Grafik
- Auswerteroutine für Spectrum-Satteliten implementiert
- Kanalsettings werden beim Parameterreset nicht mehr gelöscht
- die Driftkompensation wird jetzt feiner aufgelöst --> EE_Parameter.Driftkomp muss mal 8 genommen werden
- die Integrale und ACC-Werte werden jetzt im Scope in ca. 0,1° angezeigt (wie beim NaviBrd)
0.72p: H.Buss 01.03.2009
- Octo3 erstellt
- Analogwerte umbenannt
 
0.73a-d: H.Buss 05.04.2009
- MixerTabelle implementiert
- I2C-Bus auf bis zu 12 Motoren erweitert
- die Busfehler der BL-Regler werden im Menü angezeigt
- Revision der MixerTabelle eingeführt
- MixerTabelle wird bei Parameterreset neu initialisiert
- Motortest auf [12] erweitert
- Motorschalter nicht mehr 3-Stufig
 
0.74a
- Datenfusion im Flug auch, wenn ACC-Z < 512
- Wert für die Luftdruck-Messbereichserweiterung abgefangen
 
0.74d
- Die Driftkompensation ist jetzt dreistufig -> 0,5% pro sekunde zusätzlich eingeführts
0.75a G.Stobrawa 22.5.2009
- Extern Control also received from NC via SPI
 
0.75b H.Buss 27.05.2009
- Spektrum-Singale schalten den PPM-Eingang aus
- max. 2 Sekunden nach dem Start auf die BL-Regler warten
- Automatische Zellenerkennung, wenn Spannungswarnung < 5,0V
- Bei automatischer Zellenerkennung piept es je nach Zellenzahl
- EE_DATENREVISION auf 76 erhöht
- Servo:
- Roll-Servo für FC ME implementiert
- Update-Cmd stoppt Servos
- Servos werden erst nach dem ersten Kalibrieren aktiviert
 
0.75c G.Stobrawa 25.7.2009
- Übertragung der Servo-Settings zur NC
- RSSI wird an NC gesendet, derzeit wird der Wert nicht gesetzt
- Bugfix Messbereichsumschaltung des Luftdrucksensors springt
- Auflösung des Luftdrucks nun bis auf 1 cm (5mal feiner) zur genaueren Berechnung des D-Anteils
- Unterstützung von Warnings-Bitmasks für die J16, J17-Outputs bei Unterspannung
- Unterspannung für einzelne Zelle´n von 3.2V auf 3.3V angehoben (9.6V --> 9.9V für 3S)
0.75d H.Buss 13.8.2009
- RC-Routine: Empfangsausfall soll sicherer erkannt werden
- Zellenerkennung nun auch beim Speichern der Settings
- Warnungs-Blinkmaske auch bei Empfangsausfall
 
0.75e H.Buss 18.8.2009
- LED-Blinken kann an die Motoren gekoppelt werden
- Feinabstimmung des Höhenreglers
0.75f H.Buss 27.8.2009
- D-Anteil des Höhenreglers jetzt mit Quadratischer Komponente
- Lagewinkel wirkt jetzt mit 1/Cos(x) mit in den Höhenregler
- leichte Modifikation der RC-Empfangroutine
 
0.75g H.Buss 31.08.2009
- die Akkuspannung geht jetzt antiproportional ins Gas ein
 
0.75h H.Buss 3.09.2009
- im Höhenregler werden jetzt die Stellwerte begrenzt --> max +- 16% vom geschätzten Schwebegas
 
0.75i H.Buss 7.09.2009
- GpsZ vom Navi zur FC für den Höhenregler
- "hoovergas-Variation" als Parameter
- Kompatibilität zu NC und PC erhöht
 
0.75j H.Buss 17.09.2009
- Laufzeitzähler eingebaut
 
0.75k H.Buss 22.09.2009
- zweite Variante (Gregor) der Höhenregelung implementiert
- umschaltbare RC-Routine
 
0.75L H.Buss 23.09.2009
- SollHoehe und Gas geht nun auch an die NC
 
0.75M H.Buss 29.09.2009
- Spektrum-Timing wird nun überwacht
- die FC kann nun stand-Alone als Kamera-Stabilizer eingesetzt werden, weil die Servos aktiviert werden, wenn I2C fehlt
0.75N H.Buss 29.09.2009
- Hoover-Stickpunkt wird bei aktivem Höhenregler nicht nachgeführt
- Hoover-Stickpunkt kann per Parameter fest eingestellt werden
- Baro-Messbereichserweiterung auch bei aktiviertem Höhenregler
- Gyro_Gier_P und Gyro_Gier_I eingeführt
- I2C_fehler-Zähler jetzt in den Analogdaten
 
0.75o H.Buss 01.10.2009
- der Höhenregler wird jetzt nur alle 10ms bearbeitet
- Baro-Messbereichserweiterung auch bei Poti als Sollwert
 
0.76d H.Buss 10.10.2009
- bei aktiver Messbereichserweiterung wird die aktuelle Höhe übernommen
 
0.76e H.Buss 27.10.2009
- es werden beim Start einmal alle BL-Regler angesprochen, damit BL-Regler#8 auch einen Selbsttest macht
- S3D-ACT-Summensignal als Compilerschalter
 
0.76f H.Buss 05.11.2009
- untere Spannungsgrenze der Unterspannungswarnung (9,3V) entfernt
0.76g H.Buss 10.11.2009
- Casting-Fehler in der Gas-Berechnung
 
0.77a H.Buss 11.11.2009
- Erweiterung auf 12 Kanäle
- Bei Koptertool-Kanalabfrage kein Empfangsausfall-Piepsen
- serielle Kanalerweiterung eingebaut -> PPM_in auf 25 erweitert
- Servos3-5 einstellbar
- neues Kommando "f" -> schaltet auf anderen Parametersatz um
 
0.77b H.Buss 09.12.2009
- JetiBox: Menü wird übertragen
- neu: FCFlags |= FCFLAG_I2CERR;
- LED-Warn-Blinken nun mit festem Timing und abschaltbar
0.77c H.Buss 07.01.2010
- zwei weitere Spektrum-Varianten implementiert
 
0.77d H.Buss 25.01.2010
- Strom-Messung eingebaut
0.78a H.Buss 03.02.2010
- Bugfix: Settingsumschaltung im Flug
 
0.78b H.Buss
- veröffentlichte Version
 
0.78c H.Buss + G.Stobrawa 22.2.2010
- Bewegungsbegrenzung an Servo 3 to 5 der FC 2.0
- Theoretischer Variablenüberlauf bei Vario-Höhenregler
- Anzeige des "SPI RX communication error" wenn GPS Option nicht aktiv
- LED-Schwellwerte fürs Blinken waren unterschiedlich
 
0.78c H.Buss + G.Stobrawa 04.3.2010
- Code cosmetics
 
0.78f H.Buss + I.Busker 23.3.2010
- Unterstützung für Jeti-Expander
- Begrenzung des Vario-Höhenreglers auf ein 10m-Fenster um Überläufe zu verhindern
- Einführung eines Vario-Zeichens (+/-/ ) auf der Jetibox
- BL-Timeout beim Start erhöht
 
0.80a-d H. Buss + G.Stobrawa 20.5.2010 - 22.7.2010
- Motoren Starten nicht ohne Kalibrierung
- Unterstützung der BL2.0-Regler
- statt 8 nun 10 Bit Auflösung der Lageregekung
- Unterstützung der BL2.0-Regler Konfiguration via MK-Tool
- Parametersätze werden per I2C an die BL-Regler durchgereicht
- "Care-Free" implementiert
- Freie Belegung der "Vorne"-Richtung
- nur wenn Motoren laufen: Beepen, wenn Carefree ohne Navi oder ohne gültigen MK3Mag-Wert
- nur wenn Motoren laufen: Beepen wenn NC plötzlich ausfällt
- #define RECEIVER_SPEKTRUM_EXP eingeführt
- #define SWITCH_LEARNS_CAREFREE eingeführt
- Schwerpunktanzeige in den 3D-Daten
- Checksummen gesicherte Datenablage im EEProm
- Fehlerdiagnose implementiert (Wiki: ErrorCodes)
- ErrorCode aufs Jeti-Display
 
- JetiMenü: bis acht Temperaturen der BL-Regler
- GPSInfo.Speed im Jeti-Display
- Compass-Richtung nun im Jeti-menü
 
- diverse Änderungen im Höhenregler
- P wirkt schwächer
- D wirkt stärker
- Anpassung der Höhenregelung auf Level des Hoovergases
- AccZ schneller nachführen
 
Parameter modifiziert:
- EEPROM-Kompatibilität auf 84 -> Parameter werden resettet
- EE_Parameter.Hoehe_ACC_Wirkung = 0; // war 30
- EE_Parameter.Hoehe_HoverBand = 8; // war 5
- Notgas = 45
- NotgasZeit = 90
- Beginnersetting: EE_Parameter.DynamicStability = 70;
- Neu: GyroStability = 6
- GPS-Login-Time auf 2 reduziert
 
0.80e H.Buss 02.08.2010
- MK3Mag ohne NC ging nicht
 
0.80f H.Buss 04.08.2010
- Beim Höhenregler "Deckel" wird das Gas wieder wie in der alten Version behandelt und der D-Anteil auf das alte Verhalten (um Faktor 8) reduziert
 
0.80g H.Buss 11.08.2010
- erweitetern Messbereich für Luftdruck bei der FC2.1 aktiviert
 
0.80h H.Buss 30.08.2010
- bei I2C-Fehlern wurden die Counter zurück gesetzt und für einige ms die Interrupts angehalten - das ist jetzt behoben
- Nur I2C-Daten senden, wenn das alte Paket komplett raus ist
 
0.82a H.Buss 08.11.2010
- MotorSafetySwitch - Verriegelt das Ein/Ausschalten
- ServoManualControlSpeed - Verlangsamt das Cam-Servo
- CamOrientation - für verdrehte Kamera-Servos
- Position der Status-Bits verändert
- "Zucken" der Servos bei kurzen Empfangsausfällen behoben
- jeti update command 'j' added
- Poti-Auswertung nach ParameterZuordnung() verschoben -> FC-Code schneller
- Waypont-Events z.B. zum Triggern der Kamera
- Gyro-Sytbility: Werte bis 16 möglich
 
0.82b H.Buss 08.12.2010
- Unterstützung von 3,3V-Referenzspannung (nur ATMEGA128)
 
0.84a H.Buss 21.03.2011 (Release: 30.03.2011)
- nur starten, wenn NC_ErrorCode = 0
- Beeptime von NC auch beim Kalibrieren durchlassen
- Varible "JetiBeep" eingeführt
- Kompass-Winkelvorgabe von NaviControl -> POI
- Piepen beim Umschalten von CareFree
- Compass-Routinen überarbeitet
- Dafaultvalues Servo-Min/MAx an MKDS18 angepasst
- Defaultreceiver ist RECEIVER_JETI
- GPS-Operation-Radius per default auf 245m bzw. 100%
- Höhenvorgabe im Vario-Mode durch Waypoints
- bei laufenden Motoren keine neuen Settings annehmen
- immer einmal Carefree Beepen nach dem Kalibrieren
- Kanaloffset für Potis von 110 auf 127 erhöht, damit es gleich ist mit allen anderen Kanälen
- POI-Richtung (Soll-Himmelsrichtung) bezieht sich auf den Kamera-Winkel
 
0.86a H.Buss 13.09.2011
- Variable "JetiBeep" wird gelöscht, wenn an den Empfänger gesendet wurde
- wenn GPS deaktiviert ist, keinen Fehler bringen, wenn GPS fehlt. Auch dann nicht piepsen
- GPS-Sollwertverschiebung
- Empfangs-Piepen unterdrücken -> einstellbar
- MotorSmooth einstellbar
- Höhenregler: keine 'harte' IstWert-Übernahme bei Bewegen des Sticks in die Hoover-Position
- Coming Home mit Höhenvorgabe
- Coming Home als Failsafe
- Einführung des GPS-Characters (- / W H D P)
- Klartext bei den Jeti-Fehlermeldungen
- Jeti-Beep "3*kurz" bei NC-Errors
- Jeti-LCD-Aufruf nur noch alle 300ms, weil die Werte zu unruhig waren
- Mixer-Settings werden nicht gelöscht, wenn sich die Parameter-Revision ändert
- GPS-Angle limit von 100 auf 140
- GPS-I-Limit von 75 auf 85
- GAS-Offset von 120 auf 127 erhöht, damit es für alle Kanäle gleich ist
- EE_Parameter.Hoehe_StickNeutralPoint auf Werte zwischen 80 und 180 begrenzt
- PPM_Neutral eingeführt, um den Offset bei HoTT auszugleichen;
- LED_Update() nun nur noch alle 20ms, weil die schnellste Ausgabe (bei Potivorgabe) ohnehin nur 40ms sind
- Jeti & HoTT: Nur beim Fehler auch JetiBeep, wenn die Motoren laufen -> sonst nervt das bei der Fehlerbehebung (Compass-Kalibrieren usw.)
- Error-Text auch im virtuellen Display des Koptertools
- virtuelles LCD-Menü:
- "ExternControl" aus Platzgründen aus dem virtuellen LCD-Menü entfernt.
- keine BL-Temperaturen und I2C-Fehler anzeigen, wenn die BL-Regler nicht verwendet werden
- nach dem Gieren nicht den Ersatzkompass auf den Kompasswert stellen, die Umschaltung war zu hart
- ACC Correction eingeführt
- I2C Fehler kamen nicht bei der NC an, weil die zu kurz waren - jetzt meldet die NC die Fehler mind. 8 Sekunden
- Fehlermeldungen stehen jetzt mind. so lange an, bis sie an die Nc ge sendet wurden
- neue Fehlermeldungen:
"No NC communicat", // 9
"GPS Fix lost ", // 21
"Magnet Error ", // 22
"Motor restart ", // 23
"BL Limitation " // 24
- LED: Schaltfläche "nur bei Motor start" bei beiden getrennt
- Ausbau der HoTT-Telemetrie
- Variable "KompassRichtung" entfernt
- ErsatzKompassInGrad sinvoll genutzt
- HoTT-Update per Uart-Durchschleifen
- AltitudeSetpointTrimming eingeführt
- Vario-Anzeige für HoTT
- Verhindern eines Überlaufs im Vario
- echter Varioton auch ohne Vario-Höhenregler
- Flugminuten laufen jetzt bei (FC_StatusFlags & FC_STATUS_FLY) los, weil sonst die Zeit zur NC verschieden war
- KompassFusion wird jetzt getrennt von der NC berechnet
- Sport-Setting entfernt und ein "Easy-Setting" eingeführt (leicht reduzierte Sticks); "Beginner" ist jetzt "Normal"
- MagnetError kann man in der Startphase ignorieren
- BL-Temperaturen, I2C-Fehler und BL-MaxPWM zum Loggen an NC
- Einzelströme nun auch bei HoTT angezeigt
0.86b H.Buss 20.09.2011
- Höhenbegrenzung bewirkt nur, dass im Vario-Mode der Sollwert nicht weiter nach oben geschoben werden kann
- grüne LED ging aus - gefixt
- K1-K8 wurden im LCD mit 0-7 bezeichnet
 
0.86c H.Buss 22.09.2011
- Neue Anzeige: Magnetfeld und Inklination bei HoTT und Jeti
- Neuer SPI-Block 'SPI_MISC'
- Kompass-Fusions-Dämpfung bei Neigung leicht verringert
- '.' im Vario-Höhenregler
 
0.86d H.Buss 26.09.2011
- Analog.c: Vario Überlauf anders verhinden
- Poti1-6 auch im HoTT-Display
 
0.88 H.Buss 12.12.2011 - 26.03.2012
- Failsafe-Kanal
- Failsafe: 5 Sekunden warten & Höhe ändern (macht die NC)
- Option: Failsafe-Sinkflug xx% Schwebegas
- Stopp der Motoren wenn bei Failsafe ein Motor blockiert
- von 30 auf 60 Sekunden Failsafe-Zeit verlängert
- Höhenwert auf cm kalibriert (zeigte ca. 10% zu viel an)
- Neue Error-Codes: "No SD-Card", "Flying range!" und "Error SD-Logging"
- Wenn die Motoren aus sind, den Luftduckwert langsam nachführen
- das sbus-protokoll implementiert (nur FC2.1)
- Schaltkanal auf Servo-Ausgang
- Filter auf den Ausgängen der Servos
- Option: Failsafe-Sinkflug xx% Schwebegas
- "Max Altitude" als Parameter auf der SD-Karte im Navi -> Beeinflusst "Parameter_MaximumAltitude" (das niedrigste gilt) und es gibt eine Fehlermeldung "ERR:Max Altitude"
- SPI-Protokoll: BL.Status eingefügt und Parameter.GlobalConfig & Parameter.ExtraConfig verschoben
- Senden der Out1 & Out2-Zustände an die NC, damit es in der OSD-Darstellung angezeigt werden kann
- Kompassrichtung neu merken, wenn CF geschaltet wird
- "I" aus dem Hott-Menü entfernt und durch ":" ersetzt, weil das nur auf der mx-20 gut aussah
- Höhenregler-Settings: GPS-Z von 64 auf 20 reduziert
 
0.88M H.Buss 15.05.2012
- HoTT V4
- Kamera-Servo beim Kalibrieren weiter laufen lassen.
- Error 30: no GPS fix bei Start
- echter MotorSchalter
 
0.88n H.Buss 06.07.2012
- Bugfix: Der letzte angesteuerte Servo-Puls war zu kurz
 
0.90 H.Buss 04.03.2013
- Anzeige WP x/Y in der HoTT-Telemetrie
- Schalter und WP-Event gleichzeitig
- Photo-Auslösung als Entfernungsintervalle
- Jeti +
- Kamera-Neitung als Integral
- RC-Lost am Startpunkt macht kein Failsafe, wenn GAS auf Null für 1,5sek war
- Auswahl:Speak-All nun in der KopterTool-Config
0.90e H.Buss 04.03.2013
- Parameter_ServoRollComp jetzt auf Poti /Kompatibilität auf 93 erhöht)
 
0.90f (26.04.2013)
- disable Yawing when Gas-Stick is to Zero
- calibration must be within 20° Tilt angle
- Hold I-Parts of the attitude control to zero when the MK is still on the ground
- ACC-Altitude sensor data fusion implemented to the altitude controller (HW-Update from FC2.1 to 2.2 needed)
- MK must be within 20° tilt angle when calibrating sensors
- Parameter Reset, if the HW-Version changes (FC2.1 to 2.2)
 
0.90g (29.04.2013)
- No ACC-Z error if the MK is tilted after switching on
- ATMEGA644 (until FC2.0): Sensitive RC-Signal validation removed -> that was only nessecary for old 35MHz receivers
 
0.90h (14.05.2013)
- Auto Start and landing for Waypoints
- back to old eeprom-compatiblity to remain compatible to other Tools
- HoTT-Bugfix: no speech while vario tone
- Bugfix: Wrong error speech in JetiEX ("Error calibration")
0.90j (27.05.2013)
- Changes for better EEPROM-Safety
- variable ActiveParamSet instead of the direct EEPROM-Reading (faster)
- Checking the ACC-Z value in flight and report ACC-Z if out of range
- disable Altitude hold in case of ACC-Z error
2.00a (after public Beta test 0.91)
- show SW-Version in Hot Display
- GPS-Parameter changed (P = 90->100; I = 90->90; D = 90->120; A = 40)
- Move NICK/Roll Sticks for switching on / off
- Move the Stick > 100 instead > 75 for switch on / off
- Failsafe active if ACC-Upgarde
- AltitudeMode, GPS_Mode & Carefree_Mode are now direct channels instead of Poti-Values (NaviGpsModeChannel,CareFreeChannel,HoeheChannel)
- NC-SPI communication from 25Hz to 41Hz
- MotorTemperature and GPS-Mode-Switch more often to NC
- Auto-Start/Landing
- JetiEX: Name set to 'MK'
- if(CareFree) Parameter_AchsKopplung1 += 30; removed
- StickNeutral setting per default 127
- UART-Buffer increased from 175 to 220 Bytes
- show name of active parameter set in the HoTT/Jeti display
- fixed in 0.91L: if "ServoRelative" is used, it coud happen that the servo moves a wide range in the first second after the first calibration
- Servo3-5 Limit to 24-255
- no. of channels increased from 12 to 16
// 0 -> frei bzw. ACT rssi (or zero if unsigned)
// 1 - 16 -> 1-16
// 17 - 28 -> 12 Serial channels
// 29 -> WP-Event kanal
// 30 Fix -> -127
// 31 Fix -> 0
// 32 Fix -> 128
2.00b
- default Camera-Position after calibration changed if Inverted
- some changes in ACC-Altitude hold to reduce climbing in fast foreward fly
- UserParameter1 > 100 disables camera nick control (for BL-Gimbals with self-alignments)
- Beep at motor off (1sek)
 
2.00d
- Do not start if MK is moving
- Full Range of altitude measure expansion (3000m flight instead of 950m)
- compensation of the atmospheric altitude error
- Measure the exact influence of the barometric range extender
- Reduce Nick/Roll if Gas is Zero -> avoids MK to turn over during switch-off sequence
- Tell NC to wait at the Waypoint until Out1 Pattern is over
- virtual menu: single BL-Currents (FC2.1)
- per default active: NO_GPSFIX_NO_START and CFG_NO_RCOFF_BEEPING
- Servo-Nick-Refres reduced from 4 to 3 in default setting -> makes the camera servos faster
- No undervoltage Beeping if the FC is only supplied by MKUSB (the Voltage measurement is zero)
- Reset I2C-Error counter when calibrating the Sensors
- HOTT & Jeti bugfix: The temperatures were sometimes wrong
- HoTT:
- GPS coordiante now in Degree + Minutes.Decimalminutes (like in original Graupner-Receivers)
- added the MK Status in Transmitter Logfile -> General->Fuel
- added the MK Speach in Transmitter Logfile -> General->Alt3Sek
2.02a
- code too big for MEGA644 -> only ATMEGA1284 supported
- Jeti:GPS-Koordinate
- Don't accept Reset-Command if Motor running
- 'Idle' Bit in Output-Mask
- Option: DisableServoNick
- Bugfix Maximum Altitude -> New: SpeakHoTT Errormessage = "MaximumAltitude" and VarioCharacter goes to '='
- New Error code 32 "ERR:BL Selftest"
- prepared for current measurements up to 75A per ESC
- reduced speed of capacity-calculation() from 10ms to 50ms - that should be fast enough
- Timing correction for NC-Data (41Hz)
- Autolanding if undervoltage
- Compass offset angle
- 0.2V hysteresis in undervoltage warning
- Fixed: Bug in LED-Output
- Autolanding per default at 3,1V
 
2.02b
- Bugfix: Data reading for Dodecas (12 motors)
2.04a (12.03.2014 after public betatest 2.03)
- No support for FC 1.x
- Bugfix: set ChannelYaw to zero in case of RC lost
- Bugfix: Max 6 cells in lipo-detection instead of 7
- Bugfix: Compass-Calibration: At the second comdass calibration, the Calibration started in step 2 and not in step 1
- increase the allowed band for Auto-Middele-Point of the AltitudeStick to 70-175
- Dodeca: reduced I2C Packet lenght to 8
- Auto-ComingHome at Undervoltage
- Voltage measurement was 3% too high
- allowed band for ACC-Z increased to: 652 - 717
- send 'K' command only if JustMK3MagConnected
- Redundant operation supported
- Loading Waypoints from SD-Card:
- menu by HoTT and Jeti added
- Show the name of the WP-List
- do not load points if no stafix
- Version for FC 2.0 with ATMEGA644
Not Supported in FC 2.0:
- ACC-Upgrade for better ACC-Altitude control
- Hott
- Jeti-EX
- Auto-Start & Landing
- WP-List Name
 
2.04b
- Bugfix: Poti Values were wrong after calibration
- Redundant Slave: LED-Binking: Green: UART Data & Red:I2C error
- CompassCorrected (True-Compass) in HoTT- and Jeti-Display
- "True Compass" in virtual menu
- Jeti: Indicator "R" for redundancy
2.04c
- S.Bus extended to 16 Channels
 
2.06a (09.04.2013 after public beta 2.05)
- Load/Store Single Point
- Photo-Releases on Altitudes
- Voltage warning set to 3,2V, because the Voltage measurement was lower than before
- new Parameter: SinglePoint Speed
- Counter for Motor-Restarts for each single motor
- Servo-Signals can be configured if mapped to output
- Speak "Error_Motor" as soon as one Motor reports a restart
- EE_Parameter.NaviDescendRange now as Parameter in EEPROM
- EE_Parameter.NaviMaxFlyingRange now as Parameter in EEPROM
- Maximum Altitude is also used in the NC instead of "ABSOLUTE_FLYING_ALTITUDE" from SD-Card
2.06b (05.05.2014)
- Change for redundant slave: Now the Status of all 8 BLs can be read
2.06c (10.05.2014)
- send EE_Parameter.CamOrientation to NC
- Bugfix: if the CamOrientation was not zero, the direction in load/store Singelpoints were not correct
2.06d (16.06.2014)
- Starting with activated Altitudecontrol: Keep setpoint -2m until Gas-Stick rises up
- Bugfix: Redundant slave: wait at start until BLc are configured
 
2.06e (24.06.2014)
- Bugfix: BL-Config of motors 9-12 was deactivated
- reading the SW-Version of the BLs
- Bugfix: Motor 1 sometimes reported "software not compatible" in BL-Settings
- Transmit all version numbers to KopterTool
2.06f (21.7.2014)
- Secure function: Avoid that the Altitude setpoint can be much higher than the actual altitude
- Use MinGas setting before while "Waiting for takeoff" instead of "AltitudeMinGas".
 
2.06g
- don't start motors when NC is in simulation mode
- correct behaviour if CompassEffect is zero
2.08a (10.10.2014)
- Redundance now In Flag3
- Boat-Moade implemented
- New Gyro DriftCompensation implemented
- sending Offset values to NC for Logging
- Menu: Neutral Values of Gyro now in full resolution
- camera releases via automatic distances faster than 1 sec
- clamp Altitude setpoint at +15m instead of +10m to allow faster starting
- set all channels to zero in case of RC-Lost
- removed: GPS_Z
- New Parameter: Parameter_Hoehe_TiltCompensation
- Default Failsafe-Time is 60sec (was 30sek before)
- Sensitive_RC removed
- Bugfix: WP-Event was sometimes triggered two times
- transmit HoverGas to NC for logging
 
toDo:
- CalAthmospheare nachführen
- ExpandBaro kürzer?
 
 
/branches/V2.08a_Rens_Testversion/FlightCtrl.atsln
0,0 → 1,20

Microsoft Visual Studio Solution File, Format Version 11.00
# Atmel Studio Solution File, Format Version 11.00
Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "FlightCtrl", "FlightCtrl\FlightCtrl.cproj", "{5F2975C3-87E8-4878-A7FB-156D23300148}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|AVR = Debug|AVR
Release|AVR = Release|AVR
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5F2975C3-87E8-4878-A7FB-156D23300148}.Debug|AVR.ActiveCfg = Debug|AVR
{5F2975C3-87E8-4878-A7FB-156D23300148}.Debug|AVR.Build.0 = Debug|AVR
{5F2975C3-87E8-4878-A7FB-156D23300148}.Release|AVR.ActiveCfg = Release|AVR
{5F2975C3-87E8-4878-A7FB-156D23300148}.Release|AVR.Build.0 = Release|AVR
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
/branches/V2.08a_Rens_Testversion/FlightCtrl.atsuo
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property