heater3_6_2.lss 137 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594
  1. heater3_6_2.elf: file format elf32-avr
  2. Sections:
  3. Idx Name Size VMA LMA File off Algn
  4. 0 .data 00000044 00800100 000018f4 00001988 2**0
  5. CONTENTS, ALLOC, LOAD, DATA
  6. 1 .text 000018f4 00000000 00000000 00000094 2**1
  7. CONTENTS, ALLOC, LOAD, READONLY, CODE
  8. 2 .bss 00000096 00800144 00800144 000019cc 2**0
  9. ALLOC
  10. 3 .comment 0000005c 00000000 00000000 000019cc 2**0
  11. CONTENTS, READONLY
  12. 4 .debug_aranges 000000e8 00000000 00000000 00001a28 2**0
  13. CONTENTS, READONLY, DEBUGGING
  14. 5 .debug_info 000011b3 00000000 00000000 00001b10 2**0
  15. CONTENTS, READONLY, DEBUGGING
  16. 6 .debug_abbrev 0000050b 00000000 00000000 00002cc3 2**0
  17. CONTENTS, READONLY, DEBUGGING
  18. 7 .debug_line 00000508 00000000 00000000 000031ce 2**0
  19. CONTENTS, READONLY, DEBUGGING
  20. 8 .debug_frame 000002d8 00000000 00000000 000036d8 2**2
  21. CONTENTS, READONLY, DEBUGGING
  22. 9 .debug_str 000004d5 00000000 00000000 000039b0 2**0
  23. CONTENTS, READONLY, DEBUGGING
  24. 10 .debug_loc 00000b53 00000000 00000000 00003e85 2**0
  25. CONTENTS, READONLY, DEBUGGING
  26. 11 .debug_ranges 000000e0 00000000 00000000 000049d8 2**0
  27. CONTENTS, READONLY, DEBUGGING
  28. Disassembly of section .text:
  29. 00000000 <__vectors>:
  30. 0: 0c 94 bf 00 jmp 0x17e ; 0x17e <__ctors_end>
  31. 4: 0c 94 16 01 jmp 0x22c ; 0x22c <__vector_1>
  32. 8: 0c 94 27 01 jmp 0x24e ; 0x24e <__vector_2>
  33. c: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  34. 10: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  35. 14: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  36. 18: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  37. 1c: 0c 94 03 01 jmp 0x206 ; 0x206 <__vector_7>
  38. 20: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  39. 24: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  40. 28: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  41. 2c: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  42. 30: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  43. 34: 0c 94 8d 01 jmp 0x31a ; 0x31a <__vector_13>
  44. 38: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  45. 3c: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  46. 40: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  47. 44: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  48. 48: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  49. 4c: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  50. 50: 0c 94 38 01 jmp 0x270 ; 0x270 <__vector_20>
  51. 54: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  52. 58: 0c 94 61 01 jmp 0x2c2 ; 0x2c2 <__vector_22>
  53. 5c: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  54. 60: 0c 94 83 01 jmp 0x306 ; 0x306 <__vector_24>
  55. 64: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  56. 68: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  57. 6c: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  58. 70: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  59. 74: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  60. 78: 0c 94 dc 00 jmp 0x1b8 ; 0x1b8 <__bad_interrupt>
  61. 0000007c <__trampolines_end>:
  62. 7c: 6e 61 ori r22, 0x1E ; 30
  63. 7e: 6e 00 .word 0x006e ; ????
  64. 00000080 <__c.2159>:
  65. 80: 69 6e 66 00 00 40 7a 10 f3 5a 00 a0 72 4e 18 09 inf..@z..Z..rN..
  66. 90: 00 10 a5 d4 e8 00 00 e8 76 48 17 00 00 e4 0b 54 ........vH.....T
  67. a0: 02 00 00 ca 9a 3b 00 00 00 e1 f5 05 00 00 80 96 .....;..........
  68. b0: 98 00 00 00 40 42 0f 00 00 00 a0 86 01 00 00 00 ....@B..........
  69. c0: 10 27 00 00 00 00 e8 03 00 00 00 00 64 00 00 00 .'..........d...
  70. d0: 00 00 0a 00 00 00 00 00 01 00 00 00 00 00 2c 76 ..............,v
  71. e0: d8 88 dc 67 4f 08 23 df c1 df ae 59 e1 b1 b7 96 ...gO.#....Y....
  72. f0: e5 e3 e4 53 c6 3a e6 51 99 76 96 e8 e6 c2 84 26 ...S.:.Q.v.....&
  73. 100: eb 89 8c 9b 62 ed 40 7c 6f fc ef bc 9c 9f 40 f2 ....b.@|o.....@.
  74. 110: ba a5 6f a5 f4 90 05 5a 2a f7 5c 93 6b 6c f9 67 ..o....Z*.\.kl.g
  75. 120: 6d c1 1b fc e0 e4 0d 47 fe f5 20 e6 b5 00 d0 ed m......G.. .....
  76. 130: 90 2e 03 00 94 35 77 05 00 80 84 1e 08 00 00 20 .....5w........
  77. 140: 4e 0a 00 00 00 c8 0c 33 33 33 33 0f 98 6e 12 83 N......3333..n..
  78. 150: 11 41 ef 8d 21 14 89 3b e6 55 16 cf fe e6 db 18 .A..!..;.U......
  79. 160: d1 84 4b 38 1b f7 7c 1d 90 1d a4 bb e4 24 20 32 ..K8..|......$ 2
  80. 170: 84 72 5e 22 81 00 c9 f1 24 ec a1 e5 3d 27 .r^"....$...='
  81. 0000017e <__ctors_end>:
  82. 17e: 11 24 eor r1, r1
  83. 180: 1f be out 0x3f, r1 ; 63
  84. 182: cf ef ldi r28, 0xFF ; 255
  85. 184: d0 e1 ldi r29, 0x10 ; 16
  86. 186: de bf out 0x3e, r29 ; 62
  87. 188: cd bf out 0x3d, r28 ; 61
  88. 0000018a <__do_copy_data>:
  89. 18a: 11 e0 ldi r17, 0x01 ; 1
  90. 18c: a0 e0 ldi r26, 0x00 ; 0
  91. 18e: b1 e0 ldi r27, 0x01 ; 1
  92. 190: e4 ef ldi r30, 0xF4 ; 244
  93. 192: f8 e1 ldi r31, 0x18 ; 24
  94. 194: 02 c0 rjmp .+4 ; 0x19a <__do_copy_data+0x10>
  95. 196: 05 90 lpm r0, Z+
  96. 198: 0d 92 st X+, r0
  97. 19a: a4 34 cpi r26, 0x44 ; 68
  98. 19c: b1 07 cpc r27, r17
  99. 19e: d9 f7 brne .-10 ; 0x196 <__do_copy_data+0xc>
  100. 000001a0 <__do_clear_bss>:
  101. 1a0: 21 e0 ldi r18, 0x01 ; 1
  102. 1a2: a4 e4 ldi r26, 0x44 ; 68
  103. 1a4: b1 e0 ldi r27, 0x01 ; 1
  104. 1a6: 01 c0 rjmp .+2 ; 0x1aa <.do_clear_bss_start>
  105. 000001a8 <.do_clear_bss_loop>:
  106. 1a8: 1d 92 st X+, r1
  107. 000001aa <.do_clear_bss_start>:
  108. 1aa: aa 3d cpi r26, 0xDA ; 218
  109. 1ac: b2 07 cpc r27, r18
  110. 1ae: e1 f7 brne .-8 ; 0x1a8 <.do_clear_bss_loop>
  111. 1b0: 0e 94 d5 02 call 0x5aa ; 0x5aa <main>
  112. 1b4: 0c 94 78 0c jmp 0x18f0 ; 0x18f0 <_exit>
  113. 000001b8 <__bad_interrupt>:
  114. 1b8: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
  115. 000001bc <uart_putchar>:
  116. return 0;
  117. }
  118. static int uart_putchar(char c, FILE *stream)
  119. {
  120. cli();
  121. 1bc: f8 94 cli
  122. if(UCSR0A & (1 << UDRIE0))
  123. 1be: 90 91 c0 00 lds r25, 0x00C0
  124. 1c2: 95 ff sbrs r25, 5
  125. 1c4: 03 c0 rjmp .+6 ; 0x1cc <uart_putchar+0x10>
  126. {
  127. UDR0 = c;
  128. 1c6: 80 93 c6 00 sts 0x00C6, r24
  129. 1ca: 14 c0 rjmp .+40 ; 0x1f4 <uart_putchar+0x38>
  130. }
  131. else
  132. {
  133. if(!FIFO_IS_FULL(fifo0))
  134. 1cc: 90 91 cb 01 lds r25, 0x01CB
  135. 1d0: 29 2f mov r18, r25
  136. 1d2: 30 e0 ldi r19, 0x00 ; 0
  137. 1d4: 40 91 ca 01 lds r20, 0x01CA
  138. 1d8: 24 1b sub r18, r20
  139. 1da: 31 09 sbc r19, r1
  140. 1dc: 20 38 cpi r18, 0x80 ; 128
  141. 1de: 31 05 cpc r19, r1
  142. 1e0: 49 f0 breq .+18 ; 0x1f4 <uart_putchar+0x38>
  143. {
  144. FIFO_PUSH(fifo0, c);
  145. 1e2: e9 2f mov r30, r25
  146. 1e4: ef 77 andi r30, 0x7F ; 127
  147. 1e6: f0 e0 ldi r31, 0x00 ; 0
  148. 1e8: e6 5b subi r30, 0xB6 ; 182
  149. 1ea: fe 4f sbci r31, 0xFE ; 254
  150. 1ec: 80 83 st Z, r24
  151. 1ee: 9f 5f subi r25, 0xFF ; 255
  152. 1f0: 90 93 cb 01 sts 0x01CB, r25
  153. }
  154. }
  155. sei();
  156. 1f4: 78 94 sei
  157. return 0;
  158. }
  159. 1f6: 80 e0 ldi r24, 0x00 ; 0
  160. 1f8: 90 e0 ldi r25, 0x00 ; 0
  161. 1fa: 08 95 ret
  162. 000001fc <lcd_putchar>:
  163. return(data);
  164. }
  165. static int lcd_putchar(char c, FILE *stream)
  166. {
  167. LCD_SendData(c);
  168. 1fc: 0e 94 7d 04 call 0x8fa ; 0x8fa <LCD_SendData>
  169. return 0;
  170. }
  171. 200: 80 e0 ldi r24, 0x00 ; 0
  172. 202: 90 e0 ldi r25, 0x00 ; 0
  173. 204: 08 95 ret
  174. 00000206 <__vector_7>:
  175. volatile uint8_t tick = 0;
  176. FIFO(128) fifo0;
  177. ISR(PCINT3_vect)
  178. {
  179. 206: 1f 92 push r1
  180. 208: 0f 92 push r0
  181. 20a: 0f b6 in r0, 0x3f ; 63
  182. 20c: 0f 92 push r0
  183. 20e: 11 24 eor r1, r1
  184. 210: 8f 93 push r24
  185. //PCICR &= ~(1 << PCIE3);
  186. btn_pressed = ~((BTNPIN >> 4) | 0xF0);
  187. 212: 89 b1 in r24, 0x09 ; 9
  188. 214: 82 95 swap r24
  189. 216: 8f 70 andi r24, 0x0F ; 15
  190. 218: 80 6f ori r24, 0xF0 ; 240
  191. 21a: 80 95 com r24
  192. 21c: 80 93 49 01 sts 0x0149, r24
  193. }
  194. 220: 8f 91 pop r24
  195. 222: 0f 90 pop r0
  196. 224: 0f be out 0x3f, r0 ; 63
  197. 226: 0f 90 pop r0
  198. 228: 1f 90 pop r1
  199. 22a: 18 95 reti
  200. 0000022c <__vector_1>:
  201. ISR(INT0_vect) /*OVERCURRENT PROTECTION 1*/
  202. {
  203. 22c: 1f 92 push r1
  204. 22e: 0f 92 push r0
  205. 230: 0f b6 in r0, 0x3f ; 63
  206. 232: 0f 92 push r0
  207. 234: 11 24 eor r1, r1
  208. 236: 8f 93 push r24
  209. GATEPORT |= (1 << GATE1);
  210. 238: 46 9a sbi 0x08, 6 ; 8
  211. LEDPORT &= ~(1 << LED1);
  212. 23a: 42 98 cbi 0x08, 2 ; 8
  213. ocp_ch[0] = 1;
  214. 23c: 81 e0 ldi r24, 0x01 ; 1
  215. 23e: 80 93 45 01 sts 0x0145, r24
  216. }
  217. 242: 8f 91 pop r24
  218. 244: 0f 90 pop r0
  219. 246: 0f be out 0x3f, r0 ; 63
  220. 248: 0f 90 pop r0
  221. 24a: 1f 90 pop r1
  222. 24c: 18 95 reti
  223. 0000024e <__vector_2>:
  224. ISR(INT1_vect) /*OVERCURRENT PROTECTION 2*/
  225. {
  226. 24e: 1f 92 push r1
  227. 250: 0f 92 push r0
  228. 252: 0f b6 in r0, 0x3f ; 63
  229. 254: 0f 92 push r0
  230. 256: 11 24 eor r1, r1
  231. 258: 8f 93 push r24
  232. GATEPORT |= (1 << GATE2);
  233. 25a: 47 9a sbi 0x08, 7 ; 8
  234. LEDPORT &= ~(1 << LED2);
  235. 25c: 43 98 cbi 0x08, 3 ; 8
  236. ocp_ch[1] = 1;
  237. 25e: 81 e0 ldi r24, 0x01 ; 1
  238. 260: 80 93 46 01 sts 0x0146, r24
  239. }
  240. 264: 8f 91 pop r24
  241. 266: 0f 90 pop r0
  242. 268: 0f be out 0x3f, r0 ; 63
  243. 26a: 0f 90 pop r0
  244. 26c: 1f 90 pop r1
  245. 26e: 18 95 reti
  246. 00000270 <__vector_20>:
  247. ISR(USART0_RX_vect)
  248. {
  249. 270: 1f 92 push r1
  250. 272: 0f 92 push r0
  251. 274: 0f b6 in r0, 0x3f ; 63
  252. 276: 0f 92 push r0
  253. 278: 11 24 eor r1, r1
  254. 27a: 8f 93 push r24
  255. 27c: ef 93 push r30
  256. 27e: ff 93 push r31
  257. rxbyte = UDR0;
  258. 280: 80 91 c6 00 lds r24, 0x00C6
  259. 284: 80 93 48 01 sts 0x0148, r24
  260. if(rxcounter || (rxbyte == 0x55))
  261. 288: 80 91 47 01 lds r24, 0x0147
  262. 28c: 81 11 cpse r24, r1
  263. 28e: 04 c0 rjmp .+8 ; 0x298 <__vector_20+0x28>
  264. 290: 80 91 48 01 lds r24, 0x0148
  265. 294: 85 35 cpi r24, 0x55 ; 85
  266. 296: 69 f4 brne .+26 ; 0x2b2 <__vector_20+0x42>
  267. {
  268. rxbuffer[rxcounter] = rxbyte;
  269. 298: e0 91 47 01 lds r30, 0x0147
  270. 29c: f0 e0 ldi r31, 0x00 ; 0
  271. 29e: 80 91 48 01 lds r24, 0x0148
  272. 2a2: e4 53 subi r30, 0x34 ; 52
  273. 2a4: fe 4f sbci r31, 0xFE ; 254
  274. 2a6: 80 83 st Z, r24
  275. rxcounter++;
  276. 2a8: 80 91 47 01 lds r24, 0x0147
  277. 2ac: 8f 5f subi r24, 0xFF ; 255
  278. 2ae: 80 93 47 01 sts 0x0147, r24
  279. }
  280. }
  281. 2b2: ff 91 pop r31
  282. 2b4: ef 91 pop r30
  283. 2b6: 8f 91 pop r24
  284. 2b8: 0f 90 pop r0
  285. 2ba: 0f be out 0x3f, r0 ; 63
  286. 2bc: 0f 90 pop r0
  287. 2be: 1f 90 pop r1
  288. 2c0: 18 95 reti
  289. 000002c2 <__vector_22>:
  290. ISR(USART0_TX_vect)
  291. {
  292. 2c2: 1f 92 push r1
  293. 2c4: 0f 92 push r0
  294. 2c6: 0f b6 in r0, 0x3f ; 63
  295. 2c8: 0f 92 push r0
  296. 2ca: 11 24 eor r1, r1
  297. 2cc: 8f 93 push r24
  298. 2ce: ef 93 push r30
  299. 2d0: ff 93 push r31
  300. if(!FIFO_IS_EMPTY(fifo0))
  301. 2d2: e0 91 ca 01 lds r30, 0x01CA
  302. 2d6: 80 91 cb 01 lds r24, 0x01CB
  303. 2da: e8 17 cp r30, r24
  304. 2dc: 61 f0 breq .+24 ; 0x2f6 <__vector_22+0x34>
  305. {
  306. UDR0 = FIFO_FRONT(fifo0);
  307. 2de: ef 77 andi r30, 0x7F ; 127
  308. 2e0: f0 e0 ldi r31, 0x00 ; 0
  309. 2e2: e6 5b subi r30, 0xB6 ; 182
  310. 2e4: fe 4f sbci r31, 0xFE ; 254
  311. 2e6: 80 81 ld r24, Z
  312. 2e8: 80 93 c6 00 sts 0x00C6, r24
  313. FIFO_POP(fifo0);
  314. 2ec: ea ec ldi r30, 0xCA ; 202
  315. 2ee: f1 e0 ldi r31, 0x01 ; 1
  316. 2f0: 80 81 ld r24, Z
  317. 2f2: 8f 5f subi r24, 0xFF ; 255
  318. 2f4: 80 83 st Z, r24
  319. }
  320. }
  321. 2f6: ff 91 pop r31
  322. 2f8: ef 91 pop r30
  323. 2fa: 8f 91 pop r24
  324. 2fc: 0f 90 pop r0
  325. 2fe: 0f be out 0x3f, r0 ; 63
  326. 300: 0f 90 pop r0
  327. 302: 1f 90 pop r1
  328. 304: 18 95 reti
  329. 00000306 <__vector_24>:
  330. ISR(ADC_vect)
  331. {
  332. 306: 1f 92 push r1
  333. 308: 0f 92 push r0
  334. 30a: 0f b6 in r0, 0x3f ; 63
  335. 30c: 0f 92 push r0
  336. 30e: 11 24 eor r1, r1
  337. }
  338. 310: 0f 90 pop r0
  339. 312: 0f be out 0x3f, r0 ; 63
  340. 314: 0f 90 pop r0
  341. 316: 1f 90 pop r1
  342. 318: 18 95 reti
  343. 0000031a <__vector_13>:
  344. ISR(TIMER1_COMPA_vect)
  345. {
  346. 31a: 1f 92 push r1
  347. 31c: 0f 92 push r0
  348. 31e: 0f b6 in r0, 0x3f ; 63
  349. 320: 0f 92 push r0
  350. 322: 11 24 eor r1, r1
  351. 324: 8f 93 push r24
  352. tick = 1;
  353. 326: 81 e0 ldi r24, 0x01 ; 1
  354. 328: 80 93 44 01 sts 0x0144, r24
  355. }
  356. 32c: 8f 91 pop r24
  357. 32e: 0f 90 pop r0
  358. 330: 0f be out 0x3f, r0 ; 63
  359. 332: 0f 90 pop r0
  360. 334: 1f 90 pop r1
  361. 336: 18 95 reti
  362. 00000338 <init>:
  363. void init()
  364. {
  365. /* Watchdog clear*/
  366. MCUSR &= ~(1 << WDRF);
  367. 338: 84 b7 in r24, 0x34 ; 52
  368. 33a: 87 7f andi r24, 0xF7 ; 247
  369. 33c: 84 bf out 0x34, r24 ; 52
  370. WDTCSR |= (1 << WDCE) | (1 << WDE);
  371. 33e: e0 e6 ldi r30, 0x60 ; 96
  372. 340: f0 e0 ldi r31, 0x00 ; 0
  373. 342: 80 81 ld r24, Z
  374. 344: 88 61 ori r24, 0x18 ; 24
  375. 346: 80 83 st Z, r24
  376. WDTCSR = 0x00;
  377. 348: 10 82 st Z, r1
  378. /* INT0 & INT1 Initialization*/
  379. EICRA |= (1 << ISC01) | (1 << ISC11);
  380. 34a: e9 e6 ldi r30, 0x69 ; 105
  381. 34c: f0 e0 ldi r31, 0x00 ; 0
  382. 34e: 80 81 ld r24, Z
  383. 350: 8a 60 ori r24, 0x0A ; 10
  384. 352: 80 83 st Z, r24
  385. EIMSK |= (1 << INT0) | (1 << INT1);
  386. 354: 8d b3 in r24, 0x1d ; 29
  387. 356: 83 60 ori r24, 0x03 ; 3
  388. 358: 8d bb out 0x1d, r24 ; 29
  389. /* GPIO Initialization */
  390. PORTC |= (1 << GATE1) | (1 << GATE2);
  391. 35a: 88 b1 in r24, 0x08 ; 8
  392. 35c: 80 6c ori r24, 0xC0 ; 192
  393. 35e: 88 b9 out 0x08, r24 ; 8
  394. DDRC |= (1 << LED1) | (1 << LED2) | (1 << GATE1) | (1 << GATE2);
  395. 360: 87 b1 in r24, 0x07 ; 7
  396. 362: 8c 6c ori r24, 0xCC ; 204
  397. 364: 87 b9 out 0x07, r24 ; 7
  398. /* UART Initialization */
  399. TXD_PORT |= (1 << TXD_BIT);
  400. 366: 59 9a sbi 0x0b, 1 ; 11
  401. TXD_DDR |= (1 << TXD_BIT);
  402. 368: 51 9a sbi 0x0a, 1 ; 10
  403. UBRR0H = 0;
  404. 36a: 10 92 c5 00 sts 0x00C5, r1
  405. UBRR0L = 38;
  406. 36e: 86 e2 ldi r24, 0x26 ; 38
  407. 370: 80 93 c4 00 sts 0x00C4, r24
  408. UCSR0A = (1 << U2X0);
  409. 374: 22 e0 ldi r18, 0x02 ; 2
  410. 376: 20 93 c0 00 sts 0x00C0, r18
  411. UCSR0B = (1 << RXCIE0) | (1 << TXCIE0) | (1 << RXEN0) | (1 << TXEN0);
  412. 37a: 88 ed ldi r24, 0xD8 ; 216
  413. 37c: 80 93 c1 00 sts 0x00C1, r24
  414. UCSR0C = (1 << UCSZ00) | (1 << UCSZ01);
  415. 380: 86 e0 ldi r24, 0x06 ; 6
  416. 382: 80 93 c2 00 sts 0x00C2, r24
  417. /* SPI Initialization */
  418. DDRB |= (1 << MOSI_BIT) | (1 << SCK_BIT) | (1 << SS_BIT) | (7 << PORTB0);
  419. 386: 84 b1 in r24, 0x04 ; 4
  420. 388: 87 6b ori r24, 0xB7 ; 183
  421. 38a: 84 b9 out 0x04, r24 ; 4
  422. PORTB |= (1 << MOSI_BIT) | (1 << SCK_BIT) | (1 << SS_BIT);
  423. 38c: 85 b1 in r24, 0x05 ; 5
  424. 38e: 80 6b ori r24, 0xB0 ; 176
  425. 390: 85 b9 out 0x05, r24 ; 5
  426. SPCR = (1 << SPE) | (1 << MSTR);
  427. 392: 80 e5 ldi r24, 0x50 ; 80
  428. 394: 8c bd out 0x2c, r24 ; 44
  429. /* TWI Initialization */
  430. TWBR = (uint8_t)(((F_CPU / TWI_FREQ) - 16) / 2);
  431. 396: 84 e0 ldi r24, 0x04 ; 4
  432. 398: 80 93 b8 00 sts 0x00B8, r24
  433. TWCR = (1 << TWEN);
  434. 39c: 80 93 bc 00 sts 0x00BC, r24
  435. /* Timer1 Initialization */
  436. TCCR1B = (1 << CS12) | (1 << CS10) | (1 << WGM12);
  437. 3a0: 8d e0 ldi r24, 0x0D ; 13
  438. 3a2: 80 93 81 00 sts 0x0081, r24
  439. OCR1A = 0x400;
  440. 3a6: 80 e0 ldi r24, 0x00 ; 0
  441. 3a8: 94 e0 ldi r25, 0x04 ; 4
  442. 3aa: 90 93 89 00 sts 0x0089, r25
  443. 3ae: 80 93 88 00 sts 0x0088, r24
  444. TIMSK1 = (1 << OCIE1A);
  445. 3b2: 20 93 6f 00 sts 0x006F, r18
  446. /* ADC Initialization */
  447. ADMUX |= (1 << REFS0) | (1 << REFS1);
  448. 3b6: ec e7 ldi r30, 0x7C ; 124
  449. 3b8: f0 e0 ldi r31, 0x00 ; 0
  450. 3ba: 80 81 ld r24, Z
  451. 3bc: 80 6c ori r24, 0xC0 ; 192
  452. 3be: 80 83 st Z, r24
  453. ADCSRA = (1 << ADEN) | (1 << ADPS2);
  454. 3c0: 84 e8 ldi r24, 0x84 ; 132
  455. 3c2: 80 93 7a 00 sts 0x007A, r24
  456. DIDR0 = 0xFF;
  457. 3c6: 8f ef ldi r24, 0xFF ; 255
  458. 3c8: 80 93 7e 00 sts 0x007E, r24
  459. PCICR = (1 << PCIE3);
  460. 3cc: 88 e0 ldi r24, 0x08 ; 8
  461. 3ce: 80 93 68 00 sts 0x0068, r24
  462. PCMSK3 = 0xF0;
  463. 3d2: 80 ef ldi r24, 0xF0 ; 240
  464. 3d4: 80 93 73 00 sts 0x0073, r24
  465. sei();
  466. 3d8: 78 94 sei
  467. 3da: 08 95 ret
  468. 000003dc <POT_SendData>:
  469. }
  470. void POT_SendData(uint8_t data, potnum_t potnum)
  471. {
  472. PORTB = (PORTB & 0xF8) | (potnum & 0x07);
  473. 3dc: 95 b1 in r25, 0x05 ; 5
  474. 3de: 67 70 andi r22, 0x07 ; 7
  475. 3e0: 98 7f andi r25, 0xF8 ; 248
  476. 3e2: 69 2b or r22, r25
  477. 3e4: 65 b9 out 0x05, r22 ; 5
  478. PORTB &= ~(1 << SS_BIT);
  479. 3e6: 2c 98 cbi 0x05, 4 ; 5
  480. SPDR = 0x11;
  481. 3e8: 91 e1 ldi r25, 0x11 ; 17
  482. 3ea: 9e bd out 0x2e, r25 ; 46
  483. while(!(SPSR & (1 <<SPIF)));
  484. 3ec: 0d b4 in r0, 0x2d ; 45
  485. 3ee: 07 fe sbrs r0, 7
  486. 3f0: fd cf rjmp .-6 ; 0x3ec <POT_SendData+0x10>
  487. SPDR = data;
  488. 3f2: 8e bd out 0x2e, r24 ; 46
  489. while(!(SPSR & (1 <<SPIF)));
  490. 3f4: 0d b4 in r0, 0x2d ; 45
  491. 3f6: 07 fe sbrs r0, 7
  492. 3f8: fd cf rjmp .-6 ; 0x3f4 <POT_SendData+0x18>
  493. PORTB |= (1 << SS_BIT);
  494. 3fa: 2c 9a sbi 0x05, 4 ; 5
  495. 3fc: 08 95 ret
  496. 000003fe <SetGateVoltage>:
  497. }
  498. float SetGateVoltage(uint8_t gatenum, float voltage)
  499. {
  500. 3fe: cf 92 push r12
  501. 400: df 92 push r13
  502. 402: ef 92 push r14
  503. 404: ff 92 push r15
  504. 406: cf 93 push r28
  505. 408: 6a 01 movw r12, r20
  506. 40a: 7b 01 movw r14, r22
  507. /* OpAmp Gain is 3, potentiometer voltage range 0 ~ 3.3 */
  508. /* voltage / ((3.3 / 255) * 3) = voltage * 25.76 */
  509. uint8_t potval;
  510. gatenum = POT_DRIVE1 + (gatenum & 0x01);
  511. 40c: c8 2f mov r28, r24
  512. 40e: c1 70 andi r28, 0x01 ; 1
  513. potval = (uint8_t)(voltage * 25.76);
  514. 410: 2b e7 ldi r18, 0x7B ; 123
  515. 412: 34 e1 ldi r19, 0x14 ; 20
  516. 414: 4e ec ldi r20, 0xCE ; 206
  517. 416: 51 e4 ldi r21, 0x41 ; 65
  518. 418: c7 01 movw r24, r14
  519. 41a: b6 01 movw r22, r12
  520. 41c: 0e 94 84 06 call 0xd08 ; 0xd08 <__mulsf3>
  521. 420: 0e 94 ca 05 call 0xb94 ; 0xb94 <__fixunssfsi>
  522. 424: f6 2e mov r15, r22
  523. float SetGateVoltage(uint8_t gatenum, float voltage)
  524. {
  525. /* OpAmp Gain is 3, potentiometer voltage range 0 ~ 3.3 */
  526. /* voltage / ((3.3 / 255) * 3) = voltage * 25.76 */
  527. uint8_t potval;
  528. gatenum = POT_DRIVE1 + (gatenum & 0x01);
  529. 426: 64 e0 ldi r22, 0x04 ; 4
  530. 428: 6c 0f add r22, r28
  531. potval = (uint8_t)(voltage * 25.76);
  532. POT_SendData(potval, gatenum);
  533. 42a: 8f 2d mov r24, r15
  534. 42c: 0e 94 ee 01 call 0x3dc ; 0x3dc <POT_SendData>
  535. return ((float)potval / 25.76);
  536. 430: 6f 2d mov r22, r15
  537. 432: 70 e0 ldi r23, 0x00 ; 0
  538. 434: 80 e0 ldi r24, 0x00 ; 0
  539. 436: 90 e0 ldi r25, 0x00 ; 0
  540. 438: 0e 94 f6 05 call 0xbec ; 0xbec <__floatunsisf>
  541. 43c: 2b e7 ldi r18, 0x7B ; 123
  542. 43e: 34 e1 ldi r19, 0x14 ; 20
  543. 440: 4e ec ldi r20, 0xCE ; 206
  544. 442: 51 e4 ldi r21, 0x41 ; 65
  545. 444: 0e 94 62 05 call 0xac4 ; 0xac4 <__divsf3>
  546. }
  547. 448: cf 91 pop r28
  548. 44a: ff 90 pop r15
  549. 44c: ef 90 pop r14
  550. 44e: df 90 pop r13
  551. 450: cf 90 pop r12
  552. 452: 08 95 ret
  553. 00000454 <SetOpampGain>:
  554. float SetOpampGain(uint8_t opampnum, float gain)
  555. {
  556. 454: cf 92 push r12
  557. 456: df 92 push r13
  558. 458: ef 92 push r14
  559. 45a: ff 92 push r15
  560. 45c: cf 93 push r28
  561. 45e: 6a 01 movw r12, r20
  562. 460: 7b 01 movw r14, r22
  563. uint8_t potval;
  564. opampnum = ((opampnum & 0x01) * 2) + 1;
  565. 462: 81 70 andi r24, 0x01 ; 1
  566. 464: c8 2f mov r28, r24
  567. 466: cc 0f add r28, r28
  568. potval = (uint8_t)((8.448 * gain) - 8.9088);
  569. 468: 22 e0 ldi r18, 0x02 ; 2
  570. 46a: 3b e2 ldi r19, 0x2B ; 43
  571. 46c: 47 e0 ldi r20, 0x07 ; 7
  572. 46e: 51 e4 ldi r21, 0x41 ; 65
  573. 470: c7 01 movw r24, r14
  574. 472: b6 01 movw r22, r12
  575. 474: 0e 94 84 06 call 0xd08 ; 0xd08 <__mulsf3>
  576. 478: 22 e7 ldi r18, 0x72 ; 114
  577. 47a: 3a e8 ldi r19, 0x8A ; 138
  578. 47c: 4e e0 ldi r20, 0x0E ; 14
  579. 47e: 51 e4 ldi r21, 0x41 ; 65
  580. 480: 0e 94 fd 04 call 0x9fa ; 0x9fa <__subsf3>
  581. 484: 0e 94 ca 05 call 0xb94 ; 0xb94 <__fixunssfsi>
  582. 488: f6 2e mov r15, r22
  583. }
  584. float SetOpampGain(uint8_t opampnum, float gain)
  585. {
  586. uint8_t potval;
  587. opampnum = ((opampnum & 0x01) * 2) + 1;
  588. 48a: 61 e0 ldi r22, 0x01 ; 1
  589. 48c: 6c 0f add r22, r28
  590. potval = (uint8_t)((8.448 * gain) - 8.9088);
  591. POT_SendData(potval, opampnum);
  592. 48e: 8f 2d mov r24, r15
  593. 490: 0e 94 ee 01 call 0x3dc ; 0x3dc <POT_SendData>
  594. return (((float)potval + 8.9088) / 8.448);
  595. 494: 6f 2d mov r22, r15
  596. 496: 70 e0 ldi r23, 0x00 ; 0
  597. 498: 80 e0 ldi r24, 0x00 ; 0
  598. 49a: 90 e0 ldi r25, 0x00 ; 0
  599. 49c: 0e 94 f6 05 call 0xbec ; 0xbec <__floatunsisf>
  600. 4a0: 22 e7 ldi r18, 0x72 ; 114
  601. 4a2: 3a e8 ldi r19, 0x8A ; 138
  602. 4a4: 4e e0 ldi r20, 0x0E ; 14
  603. 4a6: 51 e4 ldi r21, 0x41 ; 65
  604. 4a8: 0e 94 fe 04 call 0x9fc ; 0x9fc <__addsf3>
  605. 4ac: 22 e0 ldi r18, 0x02 ; 2
  606. 4ae: 3b e2 ldi r19, 0x2B ; 43
  607. 4b0: 47 e0 ldi r20, 0x07 ; 7
  608. 4b2: 51 e4 ldi r21, 0x41 ; 65
  609. 4b4: 0e 94 62 05 call 0xac4 ; 0xac4 <__divsf3>
  610. }
  611. 4b8: cf 91 pop r28
  612. 4ba: ff 90 pop r15
  613. 4bc: ef 90 pop r14
  614. 4be: df 90 pop r13
  615. 4c0: cf 90 pop r12
  616. 4c2: 08 95 ret
  617. 000004c4 <SetOpampShift>:
  618. float SetOpampShift(uint8_t opampnum, float shift)
  619. {
  620. 4c4: cf 92 push r12
  621. 4c6: df 92 push r13
  622. 4c8: ef 92 push r14
  623. 4ca: ff 92 push r15
  624. 4cc: cf 93 push r28
  625. 4ce: 6a 01 movw r12, r20
  626. 4d0: 7b 01 movw r14, r22
  627. uint8_t potval;
  628. opampnum = (opampnum & 0x01) * 2;
  629. 4d2: c8 2f mov r28, r24
  630. 4d4: c1 70 andi r28, 0x01 ; 1
  631. potval = (uint8_t)((shift * 255.0) / 2.037);
  632. 4d6: 20 e0 ldi r18, 0x00 ; 0
  633. 4d8: 30 e0 ldi r19, 0x00 ; 0
  634. 4da: 4f e7 ldi r20, 0x7F ; 127
  635. 4dc: 53 e4 ldi r21, 0x43 ; 67
  636. 4de: c7 01 movw r24, r14
  637. 4e0: b6 01 movw r22, r12
  638. 4e2: 0e 94 84 06 call 0xd08 ; 0xd08 <__mulsf3>
  639. 4e6: 25 e3 ldi r18, 0x35 ; 53
  640. 4e8: 3e e5 ldi r19, 0x5E ; 94
  641. 4ea: 42 e0 ldi r20, 0x02 ; 2
  642. 4ec: 50 e4 ldi r21, 0x40 ; 64
  643. 4ee: 0e 94 62 05 call 0xac4 ; 0xac4 <__divsf3>
  644. 4f2: 0e 94 ca 05 call 0xb94 ; 0xb94 <__fixunssfsi>
  645. 4f6: f6 2e mov r15, r22
  646. }
  647. float SetOpampShift(uint8_t opampnum, float shift)
  648. {
  649. uint8_t potval;
  650. opampnum = (opampnum & 0x01) * 2;
  651. 4f8: 6c 2f mov r22, r28
  652. 4fa: 66 0f add r22, r22
  653. potval = (uint8_t)((shift * 255.0) / 2.037);
  654. POT_SendData(potval, opampnum);
  655. 4fc: 8f 2d mov r24, r15
  656. 4fe: 0e 94 ee 01 call 0x3dc ; 0x3dc <POT_SendData>
  657. return (((float)potval * 2.037) / 255.0);
  658. 502: 6f 2d mov r22, r15
  659. 504: 70 e0 ldi r23, 0x00 ; 0
  660. 506: 80 e0 ldi r24, 0x00 ; 0
  661. 508: 90 e0 ldi r25, 0x00 ; 0
  662. 50a: 0e 94 f6 05 call 0xbec ; 0xbec <__floatunsisf>
  663. 50e: 25 e3 ldi r18, 0x35 ; 53
  664. 510: 3e e5 ldi r19, 0x5E ; 94
  665. 512: 42 e0 ldi r20, 0x02 ; 2
  666. 514: 50 e4 ldi r21, 0x40 ; 64
  667. 516: 0e 94 84 06 call 0xd08 ; 0xd08 <__mulsf3>
  668. 51a: 20 e0 ldi r18, 0x00 ; 0
  669. 51c: 30 e0 ldi r19, 0x00 ; 0
  670. 51e: 4f e7 ldi r20, 0x7F ; 127
  671. 520: 53 e4 ldi r21, 0x43 ; 67
  672. 522: 0e 94 62 05 call 0xac4 ; 0xac4 <__divsf3>
  673. }
  674. 526: cf 91 pop r28
  675. 528: ff 90 pop r15
  676. 52a: ef 90 pop r14
  677. 52c: df 90 pop r13
  678. 52e: cf 90 pop r12
  679. 530: 08 95 ret
  680. 00000532 <SetInputRange>:
  681. void SetInputRange(opamp_t *op, float vlow, float vhigh)
  682. {
  683. 532: cf 92 push r12
  684. 534: df 92 push r13
  685. 536: ef 92 push r14
  686. 538: ff 92 push r15
  687. 53a: 0f 93 push r16
  688. 53c: 1f 93 push r17
  689. 53e: cf 93 push r28
  690. 540: df 93 push r29
  691. 542: ec 01 movw r28, r24
  692. 544: 6a 01 movw r12, r20
  693. 546: 7b 01 movw r14, r22
  694. 548: c9 01 movw r24, r18
  695. 54a: b8 01 movw r22, r16
  696. op->gain = SetOpampGain(op->ch, (3.3 / (vhigh - vlow)));
  697. 54c: a7 01 movw r20, r14
  698. 54e: 96 01 movw r18, r12
  699. 550: 0e 94 fd 04 call 0x9fa ; 0x9fa <__subsf3>
  700. 554: 9b 01 movw r18, r22
  701. 556: ac 01 movw r20, r24
  702. 558: 63 e3 ldi r22, 0x33 ; 51
  703. 55a: 73 e3 ldi r23, 0x33 ; 51
  704. 55c: 83 e5 ldi r24, 0x53 ; 83
  705. 55e: 90 e4 ldi r25, 0x40 ; 64
  706. 560: 0e 94 62 05 call 0xac4 ; 0xac4 <__divsf3>
  707. 564: ab 01 movw r20, r22
  708. 566: bc 01 movw r22, r24
  709. 568: 88 81 ld r24, Y
  710. 56a: 0e 94 2a 02 call 0x454 ; 0x454 <SetOpampGain>
  711. 56e: 69 83 std Y+1, r22 ; 0x01
  712. 570: 7a 83 std Y+2, r23 ; 0x02
  713. 572: 8b 83 std Y+3, r24 ; 0x03
  714. 574: 9c 83 std Y+4, r25 ; 0x04
  715. op->shift = SetOpampShift(op->ch, (0.758 * vlow));
  716. 576: 2a e4 ldi r18, 0x4A ; 74
  717. 578: 3c e0 ldi r19, 0x0C ; 12
  718. 57a: 42 e4 ldi r20, 0x42 ; 66
  719. 57c: 5f e3 ldi r21, 0x3F ; 63
  720. 57e: c7 01 movw r24, r14
  721. 580: b6 01 movw r22, r12
  722. 582: 0e 94 84 06 call 0xd08 ; 0xd08 <__mulsf3>
  723. 586: ab 01 movw r20, r22
  724. 588: bc 01 movw r22, r24
  725. 58a: 88 81 ld r24, Y
  726. 58c: 0e 94 62 02 call 0x4c4 ; 0x4c4 <SetOpampShift>
  727. 590: 6d 83 std Y+5, r22 ; 0x05
  728. 592: 7e 83 std Y+6, r23 ; 0x06
  729. 594: 8f 83 std Y+7, r24 ; 0x07
  730. 596: 98 87 std Y+8, r25 ; 0x08
  731. }
  732. 598: df 91 pop r29
  733. 59a: cf 91 pop r28
  734. 59c: 1f 91 pop r17
  735. 59e: 0f 91 pop r16
  736. 5a0: ff 90 pop r15
  737. 5a2: ef 90 pop r14
  738. 5a4: df 90 pop r13
  739. 5a6: cf 90 pop r12
  740. 5a8: 08 95 ret
  741. 000005aa <main>:
  742. break;
  743. }*/
  744. }
  745. int main()
  746. {
  747. 5aa: cf 93 push r28
  748. 5ac: df 93 push r29
  749. 5ae: cd b7 in r28, 0x3d ; 61
  750. 5b0: de b7 in r29, 0x3e ; 62
  751. 5b2: 6a 97 sbiw r28, 0x1a ; 26
  752. 5b4: 0f b6 in r0, 0x3f ; 63
  753. 5b6: f8 94 cli
  754. 5b8: de bf out 0x3e, r29 ; 62
  755. 5ba: 0f be out 0x3f, r0 ; 63
  756. 5bc: cd bf out 0x3d, r28 ; 61
  757. heater_ch[i].tmeas_raw = 0;
  758. heater_ch[i].tset = 0;
  759. heater_ch[i].tset_raw = 0;
  760. heater_ch[i].current = 0;
  761. heater_ch[i].checksum = 0;
  762. opamp_ch[i].ch = i;
  763. 5be: 19 82 std Y+1, r1 ; 0x01
  764. opamp_ch[i].drive = 0;
  765. 5c0: 1a 86 std Y+10, r1 ; 0x0a
  766. 5c2: 1b 86 std Y+11, r1 ; 0x0b
  767. 5c4: 1c 86 std Y+12, r1 ; 0x0c
  768. 5c6: 1d 86 std Y+13, r1 ; 0x0d
  769. heater_ch[i].tmeas_raw = 0;
  770. heater_ch[i].tset = 0;
  771. heater_ch[i].tset_raw = 0;
  772. heater_ch[i].current = 0;
  773. heater_ch[i].checksum = 0;
  774. opamp_ch[i].ch = i;
  775. 5c8: 81 e0 ldi r24, 0x01 ; 1
  776. 5ca: 8e 87 std Y+14, r24 ; 0x0e
  777. opamp_ch[i].drive = 0;
  778. 5cc: 1f 8a std Y+23, r1 ; 0x17
  779. 5ce: 18 8e std Y+24, r1 ; 0x18
  780. 5d0: 19 8e std Y+25, r1 ; 0x19
  781. 5d2: 1a 8e std Y+26, r1 ; 0x1a
  782. }
  783. static FILE lcd_stdout = FDEV_SETUP_STREAM(lcd_putchar, NULL, _FDEV_SETUP_WRITE);
  784. static FILE uart_stdout = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE);
  785. stdout = &uart_stdout;
  786. 5d4: 8e e0 ldi r24, 0x0E ; 14
  787. 5d6: 91 e0 ldi r25, 0x01 ; 1
  788. 5d8: 90 93 d7 01 sts 0x01D7, r25
  789. 5dc: 80 93 d6 01 sts 0x01D6, r24
  790. init();
  791. 5e0: 0e 94 9c 01 call 0x338 ; 0x338 <init>
  792. LCD_Init();
  793. 5e4: 0e 94 cd 04 call 0x99a ; 0x99a <LCD_Init>
  794. printf("HELLO\r\n");
  795. 5e8: 8c e1 ldi r24, 0x1C ; 28
  796. 5ea: 91 e0 ldi r25, 0x01 ; 1
  797. 5ec: 0e 94 ed 0b call 0x17da ; 0x17da <puts>
  798. fprintf(&lcd_stdout, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF");
  799. 5f0: 20 e0 ldi r18, 0x00 ; 0
  800. 5f2: 31 e0 ldi r19, 0x01 ; 1
  801. 5f4: 40 e1 ldi r20, 0x10 ; 16
  802. 5f6: 50 e0 ldi r21, 0x00 ; 0
  803. 5f8: 61 e0 ldi r22, 0x01 ; 1
  804. 5fa: 70 e0 ldi r23, 0x00 ; 0
  805. 5fc: 83 e2 ldi r24, 0x23 ; 35
  806. 5fe: 91 e0 ldi r25, 0x01 ; 1
  807. 600: 0e 94 b9 0b call 0x1772 ; 0x1772 <fwrite>
  808. LCD_SetPos(0, 1);
  809. 604: 61 e0 ldi r22, 0x01 ; 1
  810. 606: 80 e0 ldi r24, 0x00 ; 0
  811. 608: 0e 94 c3 04 call 0x986 ; 0x986 <LCD_SetPos>
  812. fprintf(&lcd_stdout, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF");
  813. 60c: 20 e0 ldi r18, 0x00 ; 0
  814. 60e: 31 e0 ldi r19, 0x01 ; 1
  815. 610: 40 e1 ldi r20, 0x10 ; 16
  816. 612: 50 e0 ldi r21, 0x00 ; 0
  817. 614: 61 e0 ldi r22, 0x01 ; 1
  818. 616: 70 e0 ldi r23, 0x00 ; 0
  819. 618: 83 e2 ldi r24, 0x23 ; 35
  820. 61a: 91 e0 ldi r25, 0x01 ; 1
  821. 61c: 0e 94 b9 0b call 0x1772 ; 0x1772 <fwrite>
  822. SetGateVoltage(0, 0.0);
  823. 620: 40 e0 ldi r20, 0x00 ; 0
  824. 622: 50 e0 ldi r21, 0x00 ; 0
  825. 624: ba 01 movw r22, r20
  826. 626: 80 e0 ldi r24, 0x00 ; 0
  827. 628: 0e 94 ff 01 call 0x3fe ; 0x3fe <SetGateVoltage>
  828. SetGateVoltage(1, 0.0);
  829. 62c: 40 e0 ldi r20, 0x00 ; 0
  830. 62e: 50 e0 ldi r21, 0x00 ; 0
  831. 630: ba 01 movw r22, r20
  832. 632: 81 e0 ldi r24, 0x01 ; 1
  833. 634: 0e 94 ff 01 call 0x3fe ; 0x3fe <SetGateVoltage>
  834. SetInputRange(&opamp_ch[0], 0.35, 0.6);
  835. 638: 0a e9 ldi r16, 0x9A ; 154
  836. 63a: 19 e9 ldi r17, 0x99 ; 153
  837. 63c: 29 e1 ldi r18, 0x19 ; 25
  838. 63e: 3f e3 ldi r19, 0x3F ; 63
  839. 640: 43 e3 ldi r20, 0x33 ; 51
  840. 642: 53 e3 ldi r21, 0x33 ; 51
  841. 644: 63 eb ldi r22, 0xB3 ; 179
  842. 646: 7e e3 ldi r23, 0x3E ; 62
  843. 648: ce 01 movw r24, r28
  844. 64a: 01 96 adiw r24, 0x01 ; 1
  845. 64c: 0e 94 99 02 call 0x532 ; 0x532 <SetInputRange>
  846. SetInputRange(&opamp_ch[1], 1.0, 4.0);
  847. 650: 00 e0 ldi r16, 0x00 ; 0
  848. 652: 10 e0 ldi r17, 0x00 ; 0
  849. 654: 20 e8 ldi r18, 0x80 ; 128
  850. 656: 30 e4 ldi r19, 0x40 ; 64
  851. 658: 40 e0 ldi r20, 0x00 ; 0
  852. 65a: 50 e0 ldi r21, 0x00 ; 0
  853. 65c: 60 e8 ldi r22, 0x80 ; 128
  854. 65e: 7f e3 ldi r23, 0x3F ; 63
  855. 660: ce 01 movw r24, r28
  856. 662: 0e 96 adiw r24, 0x0e ; 14
  857. 664: 0e 94 99 02 call 0x532 ; 0x532 <SetInputRange>
  858. int main()
  859. {
  860. uint16_t i = 0;
  861. uint8_t adc_ch = 0;
  862. uint16_t adc_data = 0;
  863. uint8_t trig = 0;
  864. 668: c1 2c mov r12, r1
  865. }
  866. int main()
  867. {
  868. uint16_t i = 0;
  869. uint8_t adc_ch = 0;
  870. 66a: d1 2c mov r13, r1
  871. //transmit(&packet_ch[0]);
  872. i = 0;
  873. while(1)
  874. {
  875. if(ocp_ch[0] == 1)
  876. 66c: 0f 2e mov r0, r31
  877. 66e: f5 e4 ldi r31, 0x45 ; 69
  878. 670: ef 2e mov r14, r31
  879. 672: f1 e0 ldi r31, 0x01 ; 1
  880. 674: ff 2e mov r15, r31
  881. 676: f0 2d mov r31, r0
  882. fprintf(&lcd_stdout, " OVERCURRENT ");
  883. ocp_ch[0] = 0;
  884. _delay_ms(10);
  885. }
  886. if(ocp_ch[1] == 1)
  887. 678: 06 e4 ldi r16, 0x46 ; 70
  888. 67a: 11 e0 ldi r17, 0x01 ; 1
  889. fprintf(&lcd_stdout, " OVERCURRENT ");
  890. ocp_ch[1] = 0;
  891. _delay_ms(10);
  892. }
  893. if((rxcounter == 2) && (rxbuffer[1] == 'R'))
  894. 67c: 0f 2e mov r0, r31
  895. 67e: fd ec ldi r31, 0xCD ; 205
  896. 680: af 2e mov r10, r31
  897. 682: f1 e0 ldi r31, 0x01 ; 1
  898. 684: bf 2e mov r11, r31
  899. 686: f0 2d mov r31, r0
  900. for(i = 1; i < 7; i++)
  901. {
  902. temp += rxbuffer[i];
  903. }
  904. if(temp == rxbuffer[7])
  905. 688: 0f 2e mov r0, r31
  906. 68a: f3 ed ldi r31, 0xD3 ; 211
  907. 68c: 2f 2e mov r2, r31
  908. 68e: f1 e0 ldi r31, 0x01 ; 1
  909. 690: 3f 2e mov r3, r31
  910. 692: f0 2d mov r31, r0
  911. }
  912. else
  913. {
  914. //PORTC |= (1 << GATE1);
  915. //_delay_us(50);
  916. ADMUX = (ADMUX & 0xF8) | adc_ch;
  917. 694: 0f 2e mov r0, r31
  918. 696: fc e7 ldi r31, 0x7C ; 124
  919. 698: 4f 2e mov r4, r31
  920. 69a: 51 2c mov r5, r1
  921. 69c: f0 2d mov r31, r0
  922. ADCSRA |= (1 << ADSC);
  923. 69e: 0f 2e mov r0, r31
  924. 6a0: fa e7 ldi r31, 0x7A ; 122
  925. 6a2: 6f 2e mov r6, r31
  926. 6a4: 71 2c mov r7, r1
  927. 6a6: f0 2d mov r31, r0
  928. if(tick)
  929. {
  930. tick = 0;
  931. if(trig)
  932. {
  933. adc_data = ADCL;
  934. 6a8: 0f 2e mov r0, r31
  935. 6aa: f8 e7 ldi r31, 0x78 ; 120
  936. 6ac: 8f 2e mov r8, r31
  937. 6ae: 91 2c mov r9, r1
  938. 6b0: f0 2d mov r31, r0
  939. //transmit(&packet_ch[0]);
  940. i = 0;
  941. while(1)
  942. {
  943. if(ocp_ch[0] == 1)
  944. 6b2: f7 01 movw r30, r14
  945. 6b4: 80 81 ld r24, Z
  946. 6b6: 81 30 cpi r24, 0x01 ; 1
  947. 6b8: b1 f4 brne .+44 ; 0x6e6 <main+0x13c>
  948. {
  949. LCD_SetPos(0, 0);
  950. 6ba: 60 e0 ldi r22, 0x00 ; 0
  951. 6bc: 80 e0 ldi r24, 0x00 ; 0
  952. 6be: 0e 94 c3 04 call 0x986 ; 0x986 <LCD_SetPos>
  953. fprintf(&lcd_stdout, " OVERCURRENT ");
  954. 6c2: 20 e0 ldi r18, 0x00 ; 0
  955. 6c4: 31 e0 ldi r19, 0x01 ; 1
  956. 6c6: 4f e0 ldi r20, 0x0F ; 15
  957. 6c8: 50 e0 ldi r21, 0x00 ; 0
  958. 6ca: 61 e0 ldi r22, 0x01 ; 1
  959. 6cc: 70 e0 ldi r23, 0x00 ; 0
  960. 6ce: 84 e3 ldi r24, 0x34 ; 52
  961. 6d0: 91 e0 ldi r25, 0x01 ; 1
  962. 6d2: 0e 94 b9 0b call 0x1772 ; 0x1772 <fwrite>
  963. ocp_ch[0] = 0;
  964. 6d6: f7 01 movw r30, r14
  965. 6d8: 10 82 st Z, r1
  966. #else
  967. //round up by default
  968. __ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
  969. #endif
  970. __builtin_avr_delay_cycles(__ticks_dc);
  971. 6da: 8f e2 ldi r24, 0x2F ; 47
  972. 6dc: 95 e7 ldi r25, 0x75 ; 117
  973. 6de: 01 97 sbiw r24, 0x01 ; 1
  974. 6e0: f1 f7 brne .-4 ; 0x6de <main+0x134>
  975. 6e2: 00 c0 rjmp .+0 ; 0x6e4 <main+0x13a>
  976. 6e4: 00 00 nop
  977. _delay_ms(10);
  978. }
  979. if(ocp_ch[1] == 1)
  980. 6e6: f8 01 movw r30, r16
  981. 6e8: 80 81 ld r24, Z
  982. 6ea: 81 30 cpi r24, 0x01 ; 1
  983. 6ec: b1 f4 brne .+44 ; 0x71a <main+0x170>
  984. {
  985. LCD_SetPos(0, 1);
  986. 6ee: 61 e0 ldi r22, 0x01 ; 1
  987. 6f0: 80 e0 ldi r24, 0x00 ; 0
  988. 6f2: 0e 94 c3 04 call 0x986 ; 0x986 <LCD_SetPos>
  989. fprintf(&lcd_stdout, " OVERCURRENT ");
  990. 6f6: 20 e0 ldi r18, 0x00 ; 0
  991. 6f8: 31 e0 ldi r19, 0x01 ; 1
  992. 6fa: 4f e0 ldi r20, 0x0F ; 15
  993. 6fc: 50 e0 ldi r21, 0x00 ; 0
  994. 6fe: 61 e0 ldi r22, 0x01 ; 1
  995. 700: 70 e0 ldi r23, 0x00 ; 0
  996. 702: 84 e3 ldi r24, 0x34 ; 52
  997. 704: 91 e0 ldi r25, 0x01 ; 1
  998. 706: 0e 94 b9 0b call 0x1772 ; 0x1772 <fwrite>
  999. ocp_ch[1] = 0;
  1000. 70a: f8 01 movw r30, r16
  1001. 70c: 10 82 st Z, r1
  1002. 70e: 8f e2 ldi r24, 0x2F ; 47
  1003. 710: 95 e7 ldi r25, 0x75 ; 117
  1004. 712: 01 97 sbiw r24, 0x01 ; 1
  1005. 714: f1 f7 brne .-4 ; 0x712 <main+0x168>
  1006. 716: 00 c0 rjmp .+0 ; 0x718 <main+0x16e>
  1007. 718: 00 00 nop
  1008. _delay_ms(10);
  1009. }
  1010. if((rxcounter == 2) && (rxbuffer[1] == 'R'))
  1011. 71a: 80 91 47 01 lds r24, 0x0147
  1012. 71e: 82 30 cpi r24, 0x02 ; 2
  1013. 720: 59 f4 brne .+22 ; 0x738 <main+0x18e>
  1014. 722: f5 01 movw r30, r10
  1015. 724: 80 81 ld r24, Z
  1016. 726: 82 35 cpi r24, 0x52 ; 82
  1017. 728: 39 f4 brne .+14 ; 0x738 <main+0x18e>
  1018. {
  1019. cli();
  1020. 72a: f8 94 cli
  1021. WDTCSR |= (1 << WDCE) | (1 << WDE);
  1022. 72c: e0 e6 ldi r30, 0x60 ; 96
  1023. 72e: f0 e0 ldi r31, 0x00 ; 0
  1024. 730: 80 81 ld r24, Z
  1025. 732: 88 61 ori r24, 0x18 ; 24
  1026. 734: 80 83 st Z, r24
  1027. 736: ff cf rjmp .-2 ; 0x736 <main+0x18c>
  1028. while(1);
  1029. }
  1030. if(rxcounter == 8)
  1031. 738: 80 91 47 01 lds r24, 0x0147
  1032. 73c: 88 30 cpi r24, 0x08 ; 8
  1033. 73e: a9 f4 brne .+42 ; 0x76a <main+0x1c0>
  1034. {
  1035. rxcounter = 0;
  1036. 740: 10 92 47 01 sts 0x0147, r1
  1037. uint8_t temp = 0;
  1038. for(i = 1; i < 7; i++)
  1039. {
  1040. temp += rxbuffer[i];
  1041. 744: f5 01 movw r30, r10
  1042. 746: 80 81 ld r24, Z
  1043. 748: ee ec ldi r30, 0xCE ; 206
  1044. 74a: f1 e0 ldi r31, 0x01 ; 1
  1045. 74c: 80 81 ld r24, Z
  1046. 74e: ef ec ldi r30, 0xCF ; 207
  1047. 750: f1 e0 ldi r31, 0x01 ; 1
  1048. 752: 80 81 ld r24, Z
  1049. 754: e0 ed ldi r30, 0xD0 ; 208
  1050. 756: f1 e0 ldi r31, 0x01 ; 1
  1051. 758: 80 81 ld r24, Z
  1052. 75a: e1 ed ldi r30, 0xD1 ; 209
  1053. 75c: f1 e0 ldi r31, 0x01 ; 1
  1054. 75e: 80 81 ld r24, Z
  1055. 760: e2 ed ldi r30, 0xD2 ; 210
  1056. 762: f1 e0 ldi r31, 0x01 ; 1
  1057. 764: 80 81 ld r24, Z
  1058. }
  1059. if(temp == rxbuffer[7])
  1060. 766: f1 01 movw r30, r2
  1061. 768: 80 81 ld r24, Z
  1062. {
  1063. exec_cmd((rxdata_str*)rxbuffer);
  1064. }
  1065. }
  1066. if(tick)
  1067. 76a: 80 91 44 01 lds r24, 0x0144
  1068. 76e: 88 23 and r24, r24
  1069. 770: e9 f1 breq .+122 ; 0x7ec <main+0x242>
  1070. {
  1071. tick = 0;
  1072. 772: 10 92 44 01 sts 0x0144, r1
  1073. if(trig)
  1074. 776: cc 20 and r12, r12
  1075. 778: 61 f1 breq .+88 ; 0x7d2 <main+0x228>
  1076. {
  1077. adc_data = ADCL;
  1078. 77a: f4 01 movw r30, r8
  1079. 77c: 80 81 ld r24, Z
  1080. adc_data |= ((uint16_t)ADCH) << 8;
  1081. 77e: e9 e7 ldi r30, 0x79 ; 121
  1082. 780: f0 e0 ldi r31, 0x00 ; 0
  1083. 782: 80 81 ld r24, Z
  1084. switch(adc_ch)
  1085. 784: f1 e0 ldi r31, 0x01 ; 1
  1086. 786: df 16 cp r13, r31
  1087. 788: 71 f0 breq .+28 ; 0x7a6 <main+0x1fc>
  1088. 78a: df 16 cp r13, r31
  1089. 78c: 38 f0 brcs .+14 ; 0x79c <main+0x1f2>
  1090. 78e: 82 e0 ldi r24, 0x02 ; 2
  1091. 790: d8 16 cp r13, r24
  1092. 792: 71 f0 breq .+28 ; 0x7b0 <main+0x206>
  1093. 794: 93 e0 ldi r25, 0x03 ; 3
  1094. 796: d9 16 cp r13, r25
  1095. 798: 81 f0 breq .+32 ; 0x7ba <main+0x210>
  1096. 79a: 14 c0 rjmp .+40 ; 0x7c4 <main+0x21a>
  1097. {
  1098. case ADC_MEAS1:
  1099. //heater_ch[0].tmeas_raw = adc_data;
  1100. temp = (((float)adc_data * 2.56) / (opamp_ch[0].gain * 775.434)) + (opamp_ch[0].shift / 0.758);
  1101. //temp = ((float)adc_data * 2.56) / 1023;
  1102. LCD_SetPos(0, 0);
  1103. 79c: 60 e0 ldi r22, 0x00 ; 0
  1104. 79e: 80 e0 ldi r24, 0x00 ; 0
  1105. 7a0: 0e 94 c3 04 call 0x986 ; 0x986 <LCD_SetPos>
  1106. //fprintf(&lcd_stdout, "0 T:%.2f ", temp);
  1107. break;
  1108. 7a4: 81 c0 rjmp .+258 ; 0x8a8 <main+0x2fe>
  1109. case ADC_MEAS2:
  1110. //heater_ch[1].tmeas_raw = adc_data;
  1111. temp = (((float)adc_data * 2.56) / (opamp_ch[1].gain * 775.434)) + (opamp_ch[1].shift / 0.758);
  1112. //temp = ((float)adc_data * 2.56) / 1023;
  1113. LCD_SetPos(0, 1);
  1114. 7a6: 61 e0 ldi r22, 0x01 ; 1
  1115. 7a8: 80 e0 ldi r24, 0x00 ; 0
  1116. 7aa: 0e 94 c3 04 call 0x986 ; 0x986 <LCD_SetPos>
  1117. //fprintf(&lcd_stdout, "1 T:%.2f ", temp);
  1118. break;
  1119. 7ae: 7c c0 rjmp .+248 ; 0x8a8 <main+0x2fe>
  1120. case ADC_CUR1:
  1121. heater_ch[0].current = adc_data * 2.56;
  1122. LCD_SetPos(9, 0);
  1123. 7b0: 60 e0 ldi r22, 0x00 ; 0
  1124. 7b2: 89 e0 ldi r24, 0x09 ; 9
  1125. 7b4: 0e 94 c3 04 call 0x986 ; 0x986 <LCD_SetPos>
  1126. //fprintf(&lcd_stdout, "C:%.4d", heater_ch[0].current);
  1127. break;
  1128. 7b8: 77 c0 rjmp .+238 ; 0x8a8 <main+0x2fe>
  1129. case ADC_CUR2:
  1130. heater_ch[1].current = adc_data * 2.56;
  1131. LCD_SetPos(9, 1);
  1132. 7ba: 61 e0 ldi r22, 0x01 ; 1
  1133. 7bc: 89 e0 ldi r24, 0x09 ; 9
  1134. 7be: 0e 94 c3 04 call 0x986 ; 0x986 <LCD_SetPos>
  1135. 7c2: 04 c0 rjmp .+8 ; 0x7cc <main+0x222>
  1136. //fprintf(&lcd_stdout, "C:%.4d", heater_ch[1].current);
  1137. break;
  1138. }
  1139. if(++adc_ch == 0x04)
  1140. 7c4: d3 94 inc r13
  1141. 7c6: e4 e0 ldi r30, 0x04 ; 4
  1142. 7c8: de 12 cpse r13, r30
  1143. 7ca: 0f c0 rjmp .+30 ; 0x7ea <main+0x240>
  1144. adc_ch = 0;
  1145. //PORTC &= ~(1 << GATE1);
  1146. trig = 0;
  1147. 7cc: c1 2c mov r12, r1
  1148. //fprintf(&lcd_stdout, "C:%.4d", heater_ch[1].current);
  1149. break;
  1150. }
  1151. if(++adc_ch == 0x04)
  1152. adc_ch = 0;
  1153. 7ce: d1 2c mov r13, r1
  1154. 7d0: 0d c0 rjmp .+26 ; 0x7ec <main+0x242>
  1155. }
  1156. else
  1157. {
  1158. //PORTC |= (1 << GATE1);
  1159. //_delay_us(50);
  1160. ADMUX = (ADMUX & 0xF8) | adc_ch;
  1161. 7d2: f2 01 movw r30, r4
  1162. 7d4: 80 81 ld r24, Z
  1163. 7d6: 88 7f andi r24, 0xF8 ; 248
  1164. 7d8: 8d 29 or r24, r13
  1165. 7da: 80 83 st Z, r24
  1166. ADCSRA |= (1 << ADSC);
  1167. 7dc: f3 01 movw r30, r6
  1168. 7de: 80 81 ld r24, Z
  1169. 7e0: 80 64 ori r24, 0x40 ; 64
  1170. 7e2: 80 83 st Z, r24
  1171. trig = 1;
  1172. 7e4: cc 24 eor r12, r12
  1173. 7e6: c3 94 inc r12
  1174. 7e8: 01 c0 rjmp .+2 ; 0x7ec <main+0x242>
  1175. if(++adc_ch == 0x04)
  1176. adc_ch = 0;
  1177. //PORTC &= ~(1 << GATE1);
  1178. trig = 0;
  1179. 7ea: c1 2c mov r12, r1
  1180. fprintf(&lcd_stdout, "\xD9");
  1181. else
  1182. fprintf(&lcd_stdout, " ");
  1183. //transmit(&packet_ch[1]);*/
  1184. switch(btn_pressed)
  1185. 7ec: 80 91 49 01 lds r24, 0x0149
  1186. 7f0: 82 30 cpi r24, 0x02 ; 2
  1187. 7f2: 21 f1 breq .+72 ; 0x83c <main+0x292>
  1188. 7f4: 18 f4 brcc .+6 ; 0x7fc <main+0x252>
  1189. 7f6: 81 30 cpi r24, 0x01 ; 1
  1190. 7f8: 31 f0 breq .+12 ; 0x806 <main+0x25c>
  1191. 7fa: 5b cf rjmp .-330 ; 0x6b2 <main+0x108>
  1192. 7fc: 84 30 cpi r24, 0x04 ; 4
  1193. 7fe: 41 f1 breq .+80 ; 0x850 <main+0x2a6>
  1194. 800: 88 30 cpi r24, 0x08 ; 8
  1195. 802: e1 f1 breq .+120 ; 0x87c <main+0x2d2>
  1196. 804: 56 cf rjmp .-340 ; 0x6b2 <main+0x108>
  1197. {
  1198. case 0x01:
  1199. GATEPORT ^= (1 << GATE1);
  1200. 806: 98 b1 in r25, 0x08 ; 8
  1201. 808: 80 e4 ldi r24, 0x40 ; 64
  1202. 80a: 89 27 eor r24, r25
  1203. 80c: 88 b9 out 0x08, r24 ; 8
  1204. LEDPORT ^= (1 << LED1);
  1205. 80e: 98 b1 in r25, 0x08 ; 8
  1206. 810: 84 e0 ldi r24, 0x04 ; 4
  1207. 812: 89 27 eor r24, r25
  1208. 814: 88 b9 out 0x08, r24 ; 8
  1209. if(GATEPORT & (1 << GATE1))
  1210. 816: 46 9b sbis 0x08, 6 ; 8
  1211. 818: 07 c0 rjmp .+14 ; 0x828 <main+0x27e>
  1212. SetGateVoltage(0, 0);
  1213. 81a: 40 e0 ldi r20, 0x00 ; 0
  1214. 81c: 50 e0 ldi r21, 0x00 ; 0
  1215. 81e: ba 01 movw r22, r20
  1216. 820: 80 e0 ldi r24, 0x00 ; 0
  1217. 822: 0e 94 ff 01 call 0x3fe ; 0x3fe <SetGateVoltage>
  1218. 826: 07 c0 rjmp .+14 ; 0x836 <main+0x28c>
  1219. else
  1220. SetGateVoltage(0, opamp_ch[0].drive);
  1221. 828: 4a 85 ldd r20, Y+10 ; 0x0a
  1222. 82a: 5b 85 ldd r21, Y+11 ; 0x0b
  1223. 82c: 6c 85 ldd r22, Y+12 ; 0x0c
  1224. 82e: 7d 85 ldd r23, Y+13 ; 0x0d
  1225. 830: 80 e0 ldi r24, 0x00 ; 0
  1226. 832: 0e 94 ff 01 call 0x3fe ; 0x3fe <SetGateVoltage>
  1227. btn_pressed = 0;
  1228. 836: 10 92 49 01 sts 0x0149, r1
  1229. break;
  1230. 83a: 3b cf rjmp .-394 ; 0x6b2 <main+0x108>
  1231. case 0x02:
  1232. GATEPORT ^= (1 << GATE2);
  1233. 83c: 88 b1 in r24, 0x08 ; 8
  1234. 83e: 80 58 subi r24, 0x80 ; 128
  1235. 840: 88 b9 out 0x08, r24 ; 8
  1236. LEDPORT ^= (1 << LED2);
  1237. 842: 98 b1 in r25, 0x08 ; 8
  1238. 844: 88 e0 ldi r24, 0x08 ; 8
  1239. 846: 89 27 eor r24, r25
  1240. 848: 88 b9 out 0x08, r24 ; 8
  1241. btn_pressed = 0;
  1242. 84a: 10 92 49 01 sts 0x0149, r1
  1243. break;
  1244. 84e: 31 cf rjmp .-414 ; 0x6b2 <main+0x108>
  1245. case 0x04:
  1246. opamp_ch[0].drive -= 0.5;
  1247. 850: 20 e0 ldi r18, 0x00 ; 0
  1248. 852: 30 e0 ldi r19, 0x00 ; 0
  1249. 854: 40 e0 ldi r20, 0x00 ; 0
  1250. 856: 5f e3 ldi r21, 0x3F ; 63
  1251. 858: 6a 85 ldd r22, Y+10 ; 0x0a
  1252. 85a: 7b 85 ldd r23, Y+11 ; 0x0b
  1253. 85c: 8c 85 ldd r24, Y+12 ; 0x0c
  1254. 85e: 9d 85 ldd r25, Y+13 ; 0x0d
  1255. 860: 0e 94 fd 04 call 0x9fa ; 0x9fa <__subsf3>
  1256. 864: ab 01 movw r20, r22
  1257. 866: bc 01 movw r22, r24
  1258. 868: 4a 87 std Y+10, r20 ; 0x0a
  1259. 86a: 5b 87 std Y+11, r21 ; 0x0b
  1260. 86c: 6c 87 std Y+12, r22 ; 0x0c
  1261. 86e: 7d 87 std Y+13, r23 ; 0x0d
  1262. SetGateVoltage(0, opamp_ch[0].drive);
  1263. 870: 80 e0 ldi r24, 0x00 ; 0
  1264. 872: 0e 94 ff 01 call 0x3fe ; 0x3fe <SetGateVoltage>
  1265. btn_pressed = 0;
  1266. 876: 10 92 49 01 sts 0x0149, r1
  1267. break;
  1268. 87a: 1b cf rjmp .-458 ; 0x6b2 <main+0x108>
  1269. case 0x08:
  1270. opamp_ch[0].drive += 0.5;
  1271. 87c: 20 e0 ldi r18, 0x00 ; 0
  1272. 87e: 30 e0 ldi r19, 0x00 ; 0
  1273. 880: 40 e0 ldi r20, 0x00 ; 0
  1274. 882: 5f e3 ldi r21, 0x3F ; 63
  1275. 884: 6a 85 ldd r22, Y+10 ; 0x0a
  1276. 886: 7b 85 ldd r23, Y+11 ; 0x0b
  1277. 888: 8c 85 ldd r24, Y+12 ; 0x0c
  1278. 88a: 9d 85 ldd r25, Y+13 ; 0x0d
  1279. 88c: 0e 94 fe 04 call 0x9fc ; 0x9fc <__addsf3>
  1280. 890: ab 01 movw r20, r22
  1281. 892: bc 01 movw r22, r24
  1282. 894: 4a 87 std Y+10, r20 ; 0x0a
  1283. 896: 5b 87 std Y+11, r21 ; 0x0b
  1284. 898: 6c 87 std Y+12, r22 ; 0x0c
  1285. 89a: 7d 87 std Y+13, r23 ; 0x0d
  1286. SetGateVoltage(0, opamp_ch[0].drive);
  1287. 89c: 80 e0 ldi r24, 0x00 ; 0
  1288. 89e: 0e 94 ff 01 call 0x3fe ; 0x3fe <SetGateVoltage>
  1289. btn_pressed = 0;
  1290. 8a2: 10 92 49 01 sts 0x0149, r1
  1291. break;
  1292. 8a6: 05 cf rjmp .-502 ; 0x6b2 <main+0x108>
  1293. LCD_SetPos(9, 1);
  1294. //fprintf(&lcd_stdout, "C:%.4d", heater_ch[1].current);
  1295. break;
  1296. }
  1297. if(++adc_ch == 0x04)
  1298. 8a8: d3 94 inc r13
  1299. adc_ch = 0;
  1300. //PORTC &= ~(1 << GATE1);
  1301. trig = 0;
  1302. 8aa: c1 2c mov r12, r1
  1303. 8ac: 9f cf rjmp .-194 ; 0x7ec <main+0x242>
  1304. 000008ae <I2C_SendByte>:
  1305. #include "lcd-twi.h"
  1306. void I2C_SendByte(uint8_t byte)
  1307. {
  1308. TWCR |= (1 << TWINT) | (1 << TWSTA);
  1309. 8ae: ec eb ldi r30, 0xBC ; 188
  1310. 8b0: f0 e0 ldi r31, 0x00 ; 0
  1311. 8b2: 90 81 ld r25, Z
  1312. 8b4: 90 6a ori r25, 0xA0 ; 160
  1313. 8b6: 90 83 st Z, r25
  1314. while(!(TWCR & (1 << TWINT)));
  1315. 8b8: 90 81 ld r25, Z
  1316. 8ba: 99 23 and r25, r25
  1317. 8bc: ec f7 brge .-6 ; 0x8b8 <I2C_SendByte+0xa>
  1318. TWDR = LCDI2CADDR;
  1319. 8be: 9e e4 ldi r25, 0x4E ; 78
  1320. 8c0: 90 93 bb 00 sts 0x00BB, r25
  1321. TWCR &= ~(1 << TWSTA);
  1322. 8c4: ec eb ldi r30, 0xBC ; 188
  1323. 8c6: f0 e0 ldi r31, 0x00 ; 0
  1324. 8c8: 90 81 ld r25, Z
  1325. 8ca: 9f 7d andi r25, 0xDF ; 223
  1326. 8cc: 90 83 st Z, r25
  1327. TWCR |= (1 << TWINT);
  1328. 8ce: 90 81 ld r25, Z
  1329. 8d0: 90 68 ori r25, 0x80 ; 128
  1330. 8d2: 90 83 st Z, r25
  1331. while(!(TWCR & (1 << TWINT)));
  1332. 8d4: 90 81 ld r25, Z
  1333. 8d6: 99 23 and r25, r25
  1334. 8d8: ec f7 brge .-6 ; 0x8d4 <I2C_SendByte+0x26>
  1335. TWDR = byte;
  1336. 8da: 80 93 bb 00 sts 0x00BB, r24
  1337. TWCR |= (1 << TWINT);
  1338. 8de: ec eb ldi r30, 0xBC ; 188
  1339. 8e0: f0 e0 ldi r31, 0x00 ; 0
  1340. 8e2: 80 81 ld r24, Z
  1341. 8e4: 80 68 ori r24, 0x80 ; 128
  1342. 8e6: 80 83 st Z, r24
  1343. while(!(TWCR & (1 << TWINT)));
  1344. 8e8: 80 81 ld r24, Z
  1345. 8ea: 88 23 and r24, r24
  1346. 8ec: ec f7 brge .-6 ; 0x8e8 <I2C_SendByte+0x3a>
  1347. TWCR |= (1 << TWINT) | (1 << TWSTO);
  1348. 8ee: ec eb ldi r30, 0xBC ; 188
  1349. 8f0: f0 e0 ldi r31, 0x00 ; 0
  1350. 8f2: 80 81 ld r24, Z
  1351. 8f4: 80 69 ori r24, 0x90 ; 144
  1352. 8f6: 80 83 st Z, r24
  1353. 8f8: 08 95 ret
  1354. 000008fa <LCD_SendData>:
  1355. }
  1356. void LCD_SendData(uint8_t data)
  1357. {
  1358. 8fa: cf 93 push r28
  1359. 8fc: df 93 push r29
  1360. 8fe: c8 2f mov r28, r24
  1361. I2C_SendByte((data & 0xF0) | LCD_RS | LCD_E);
  1362. 900: d8 2f mov r29, r24
  1363. 902: d0 7f andi r29, 0xF0 ; 240
  1364. 904: 8d 2f mov r24, r29
  1365. 906: 85 60 ori r24, 0x05 ; 5
  1366. 908: 0e 94 57 04 call 0x8ae ; 0x8ae <I2C_SendByte>
  1367. I2C_SendByte((data & 0xF0) | LCD_RS);
  1368. 90c: 8d 2f mov r24, r29
  1369. 90e: 81 60 ori r24, 0x01 ; 1
  1370. 910: 0e 94 57 04 call 0x8ae ; 0x8ae <I2C_SendByte>
  1371. I2C_SendByte((data << 4) | LCD_RS | LCD_E);
  1372. 914: 80 e1 ldi r24, 0x10 ; 16
  1373. 916: c8 9f mul r28, r24
  1374. 918: e0 01 movw r28, r0
  1375. 91a: 11 24 eor r1, r1
  1376. 91c: 8c 2f mov r24, r28
  1377. 91e: 85 60 ori r24, 0x05 ; 5
  1378. 920: 0e 94 57 04 call 0x8ae ; 0x8ae <I2C_SendByte>
  1379. I2C_SendByte((data << 4) | LCD_RS);
  1380. 924: 8c 2f mov r24, r28
  1381. 926: 81 60 ori r24, 0x01 ; 1
  1382. 928: 0e 94 57 04 call 0x8ae ; 0x8ae <I2C_SendByte>
  1383. #else
  1384. //round up by default
  1385. __ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
  1386. #endif
  1387. __builtin_avr_delay_cycles(__ticks_dc);
  1388. 92c: 80 e1 ldi r24, 0x10 ; 16
  1389. 92e: 8a 95 dec r24
  1390. 930: f1 f7 brne .-4 ; 0x92e <LCD_SendData+0x34>
  1391. _delay_us(4);
  1392. }
  1393. 932: df 91 pop r29
  1394. 934: cf 91 pop r28
  1395. 936: 08 95 ret
  1396. 00000938 <LCD_SendCmd>:
  1397. void LCD_SendCmd(uint8_t cmd)
  1398. {
  1399. 938: cf 93 push r28
  1400. 93a: df 93 push r29
  1401. 93c: c8 2f mov r28, r24
  1402. I2C_SendByte(((cmd & 0xF0) & ~LCD_RS) | LCD_E);
  1403. 93e: d8 2f mov r29, r24
  1404. 940: d0 7f andi r29, 0xF0 ; 240
  1405. 942: 8d 2f mov r24, r29
  1406. 944: 84 60 ori r24, 0x04 ; 4
  1407. 946: 0e 94 57 04 call 0x8ae ; 0x8ae <I2C_SendByte>
  1408. I2C_SendByte((cmd & 0xF0) & ~LCD_RS);
  1409. 94a: 8d 2f mov r24, r29
  1410. 94c: 0e 94 57 04 call 0x8ae ; 0x8ae <I2C_SendByte>
  1411. I2C_SendByte(((cmd << 4) & ~LCD_RS) | LCD_E);
  1412. 950: 20 e1 ldi r18, 0x10 ; 16
  1413. 952: c2 9f mul r28, r18
  1414. 954: c0 01 movw r24, r0
  1415. 956: 11 24 eor r1, r1
  1416. 958: 84 60 ori r24, 0x04 ; 4
  1417. 95a: 0e 94 57 04 call 0x8ae ; 0x8ae <I2C_SendByte>
  1418. I2C_SendByte((cmd << 4) & ~LCD_RS);
  1419. 95e: 8c 2f mov r24, r28
  1420. 960: 82 95 swap r24
  1421. 962: 80 7f andi r24, 0xF0 ; 240
  1422. 964: 0e 94 57 04 call 0x8ae ; 0x8ae <I2C_SendByte>
  1423. if(cmd == LCD_CLR)
  1424. 968: c1 30 cpi r28, 0x01 ; 1
  1425. 96a: 39 f4 brne .+14 ; 0x97a <LCD_SendCmd+0x42>
  1426. #else
  1427. //round up by default
  1428. __ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
  1429. #endif
  1430. __builtin_avr_delay_cycles(__ticks_dc);
  1431. 96c: 8f e4 ldi r24, 0x4F ; 79
  1432. 96e: 96 e4 ldi r25, 0x46 ; 70
  1433. 970: 01 97 sbiw r24, 0x01 ; 1
  1434. 972: f1 f7 brne .-4 ; 0x970 <LCD_SendCmd+0x38>
  1435. 974: 00 c0 rjmp .+0 ; 0x976 <LCD_SendCmd+0x3e>
  1436. 976: 00 00 nop
  1437. 978: 03 c0 rjmp .+6 ; 0x980 <LCD_SendCmd+0x48>
  1438. #else
  1439. //round up by default
  1440. __ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
  1441. #endif
  1442. __builtin_avr_delay_cycles(__ticks_dc);
  1443. 97a: 98 e2 ldi r25, 0x28 ; 40
  1444. 97c: 9a 95 dec r25
  1445. 97e: f1 f7 brne .-4 ; 0x97c <LCD_SendCmd+0x44>
  1446. }
  1447. else
  1448. {
  1449. _delay_us(10);
  1450. }
  1451. }
  1452. 980: df 91 pop r29
  1453. 982: cf 91 pop r28
  1454. 984: 08 95 ret
  1455. 00000986 <LCD_SetPos>:
  1456. void LCD_SetPos(uint8_t x, uint8_t y)
  1457. {
  1458. y = ((y & 0x01) * 0x40);
  1459. 986: 61 70 andi r22, 0x01 ; 1
  1460. x &= 0x0F;
  1461. 988: 8f 70 andi r24, 0x0F ; 15
  1462. LCD_SendCmd(LCD_DDRAM | (x + y));
  1463. 98a: 90 e4 ldi r25, 0x40 ; 64
  1464. 98c: 69 9f mul r22, r25
  1465. 98e: 80 0d add r24, r0
  1466. 990: 11 24 eor r1, r1
  1467. 992: 80 68 ori r24, 0x80 ; 128
  1468. 994: 0e 94 9c 04 call 0x938 ; 0x938 <LCD_SendCmd>
  1469. 998: 08 95 ret
  1470. 0000099a <LCD_Init>:
  1471. }
  1472. void LCD_Init(void)
  1473. {
  1474. 99a: cf 93 push r28
  1475. I2C_SendByte(0x00);
  1476. 99c: 80 e0 ldi r24, 0x00 ; 0
  1477. 99e: 0e 94 57 04 call 0x8ae ; 0x8ae <I2C_SendByte>
  1478. #else
  1479. //round up by default
  1480. __ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
  1481. #endif
  1482. __builtin_avr_delay_cycles(__ticks_dc);
  1483. 9a2: 2f eb ldi r18, 0xBF ; 191
  1484. 9a4: 84 ed ldi r24, 0xD4 ; 212
  1485. 9a6: 91 e0 ldi r25, 0x01 ; 1
  1486. 9a8: 21 50 subi r18, 0x01 ; 1
  1487. 9aa: 80 40 sbci r24, 0x00 ; 0
  1488. 9ac: 90 40 sbci r25, 0x00 ; 0
  1489. 9ae: e1 f7 brne .-8 ; 0x9a8 <LCD_Init+0xe>
  1490. 9b0: 00 c0 rjmp .+0 ; 0x9b2 <LCD_Init+0x18>
  1491. 9b2: 00 00 nop
  1492. 9b4: c5 e0 ldi r28, 0x05 ; 5
  1493. _delay_ms(50);
  1494. for(uint8_t i = 0; i < 5; i++)
  1495. {
  1496. I2C_SendByte(0x00 | LCD_E);
  1497. 9b6: 84 e0 ldi r24, 0x04 ; 4
  1498. 9b8: 0e 94 57 04 call 0x8ae ; 0x8ae <I2C_SendByte>
  1499. I2C_SendByte(0x00 & ~LCD_E);
  1500. 9bc: 80 e0 ldi r24, 0x00 ; 0
  1501. 9be: 0e 94 57 04 call 0x8ae ; 0x8ae <I2C_SendByte>
  1502. 9c2: c1 50 subi r28, 0x01 ; 1
  1503. {
  1504. I2C_SendByte(0x00);
  1505. _delay_ms(50);
  1506. for(uint8_t i = 0; i < 5; i++)
  1507. 9c4: c1 f7 brne .-16 ; 0x9b6 <LCD_Init+0x1c>
  1508. #else
  1509. //round up by default
  1510. __ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
  1511. #endif
  1512. __builtin_avr_delay_cycles(__ticks_dc);
  1513. 9c6: 28 ec ldi r18, 0xC8 ; 200
  1514. 9c8: 2a 95 dec r18
  1515. 9ca: f1 f7 brne .-4 ; 0x9c8 <LCD_Init+0x2e>
  1516. I2C_SendByte(0x00 | LCD_E);
  1517. I2C_SendByte(0x00 & ~LCD_E);
  1518. }
  1519. _delay_us(50);
  1520. I2C_SendByte(LCD_WIDTH | LCD_E);
  1521. 9cc: 84 e2 ldi r24, 0x24 ; 36
  1522. 9ce: 0e 94 57 04 call 0x8ae ; 0x8ae <I2C_SendByte>
  1523. I2C_SendByte(LCD_WIDTH & ~LCD_E);
  1524. 9d2: 80 e2 ldi r24, 0x20 ; 32
  1525. 9d4: 0e 94 57 04 call 0x8ae ; 0x8ae <I2C_SendByte>
  1526. LCD_SendCmd(LCD_WIDTH | LCD_WIDTH_N | LCD_WIDTH_FT1);
  1527. 9d8: 8a e2 ldi r24, 0x2A ; 42
  1528. 9da: 0e 94 9c 04 call 0x938 ; 0x938 <LCD_SendCmd>
  1529. LCD_SendCmd(LCD_ONOFF);
  1530. 9de: 88 e0 ldi r24, 0x08 ; 8
  1531. 9e0: 0e 94 9c 04 call 0x938 ; 0x938 <LCD_SendCmd>
  1532. LCD_SendCmd(LCD_CLR);
  1533. 9e4: 81 e0 ldi r24, 0x01 ; 1
  1534. 9e6: 0e 94 9c 04 call 0x938 ; 0x938 <LCD_SendCmd>
  1535. LCD_SendCmd(LCD_DIR | LCD_DIR_ID);
  1536. 9ea: 86 e0 ldi r24, 0x06 ; 6
  1537. 9ec: 0e 94 9c 04 call 0x938 ; 0x938 <LCD_SendCmd>
  1538. LCD_SendCmd(LCD_ONOFF | LCD_ONOFF_D);
  1539. 9f0: 8c e0 ldi r24, 0x0C ; 12
  1540. 9f2: 0e 94 9c 04 call 0x938 ; 0x938 <LCD_SendCmd>
  1541. }
  1542. 9f6: cf 91 pop r28
  1543. 9f8: 08 95 ret
  1544. 000009fa <__subsf3>:
  1545. 9fa: 50 58 subi r21, 0x80 ; 128
  1546. 000009fc <__addsf3>:
  1547. 9fc: bb 27 eor r27, r27
  1548. 9fe: aa 27 eor r26, r26
  1549. a00: 0e d0 rcall .+28 ; 0xa1e <__addsf3x>
  1550. a02: 48 c1 rjmp .+656 ; 0xc94 <__fp_round>
  1551. a04: 39 d1 rcall .+626 ; 0xc78 <__fp_pscA>
  1552. a06: 30 f0 brcs .+12 ; 0xa14 <__addsf3+0x18>
  1553. a08: 3e d1 rcall .+636 ; 0xc86 <__fp_pscB>
  1554. a0a: 20 f0 brcs .+8 ; 0xa14 <__addsf3+0x18>
  1555. a0c: 31 f4 brne .+12 ; 0xa1a <__addsf3+0x1e>
  1556. a0e: 9f 3f cpi r25, 0xFF ; 255
  1557. a10: 11 f4 brne .+4 ; 0xa16 <__addsf3+0x1a>
  1558. a12: 1e f4 brtc .+6 ; 0xa1a <__addsf3+0x1e>
  1559. a14: 2e c1 rjmp .+604 ; 0xc72 <__fp_nan>
  1560. a16: 0e f4 brtc .+2 ; 0xa1a <__addsf3+0x1e>
  1561. a18: e0 95 com r30
  1562. a1a: e7 fb bst r30, 7
  1563. a1c: 24 c1 rjmp .+584 ; 0xc66 <__fp_inf>
  1564. 00000a1e <__addsf3x>:
  1565. a1e: e9 2f mov r30, r25
  1566. a20: 4a d1 rcall .+660 ; 0xcb6 <__fp_split3>
  1567. a22: 80 f3 brcs .-32 ; 0xa04 <__addsf3+0x8>
  1568. a24: ba 17 cp r27, r26
  1569. a26: 62 07 cpc r22, r18
  1570. a28: 73 07 cpc r23, r19
  1571. a2a: 84 07 cpc r24, r20
  1572. a2c: 95 07 cpc r25, r21
  1573. a2e: 18 f0 brcs .+6 ; 0xa36 <__addsf3x+0x18>
  1574. a30: 71 f4 brne .+28 ; 0xa4e <__addsf3x+0x30>
  1575. a32: 9e f5 brtc .+102 ; 0xa9a <__addsf3x+0x7c>
  1576. a34: 62 c1 rjmp .+708 ; 0xcfa <__fp_zero>
  1577. a36: 0e f4 brtc .+2 ; 0xa3a <__addsf3x+0x1c>
  1578. a38: e0 95 com r30
  1579. a3a: 0b 2e mov r0, r27
  1580. a3c: ba 2f mov r27, r26
  1581. a3e: a0 2d mov r26, r0
  1582. a40: 0b 01 movw r0, r22
  1583. a42: b9 01 movw r22, r18
  1584. a44: 90 01 movw r18, r0
  1585. a46: 0c 01 movw r0, r24
  1586. a48: ca 01 movw r24, r20
  1587. a4a: a0 01 movw r20, r0
  1588. a4c: 11 24 eor r1, r1
  1589. a4e: ff 27 eor r31, r31
  1590. a50: 59 1b sub r21, r25
  1591. a52: 99 f0 breq .+38 ; 0xa7a <__addsf3x+0x5c>
  1592. a54: 59 3f cpi r21, 0xF9 ; 249
  1593. a56: 50 f4 brcc .+20 ; 0xa6c <__addsf3x+0x4e>
  1594. a58: 50 3e cpi r21, 0xE0 ; 224
  1595. a5a: 68 f1 brcs .+90 ; 0xab6 <__addsf3x+0x98>
  1596. a5c: 1a 16 cp r1, r26
  1597. a5e: f0 40 sbci r31, 0x00 ; 0
  1598. a60: a2 2f mov r26, r18
  1599. a62: 23 2f mov r18, r19
  1600. a64: 34 2f mov r19, r20
  1601. a66: 44 27 eor r20, r20
  1602. a68: 58 5f subi r21, 0xF8 ; 248
  1603. a6a: f3 cf rjmp .-26 ; 0xa52 <__addsf3x+0x34>
  1604. a6c: 46 95 lsr r20
  1605. a6e: 37 95 ror r19
  1606. a70: 27 95 ror r18
  1607. a72: a7 95 ror r26
  1608. a74: f0 40 sbci r31, 0x00 ; 0
  1609. a76: 53 95 inc r21
  1610. a78: c9 f7 brne .-14 ; 0xa6c <__addsf3x+0x4e>
  1611. a7a: 7e f4 brtc .+30 ; 0xa9a <__addsf3x+0x7c>
  1612. a7c: 1f 16 cp r1, r31
  1613. a7e: ba 0b sbc r27, r26
  1614. a80: 62 0b sbc r22, r18
  1615. a82: 73 0b sbc r23, r19
  1616. a84: 84 0b sbc r24, r20
  1617. a86: ba f0 brmi .+46 ; 0xab6 <__addsf3x+0x98>
  1618. a88: 91 50 subi r25, 0x01 ; 1
  1619. a8a: a1 f0 breq .+40 ; 0xab4 <__addsf3x+0x96>
  1620. a8c: ff 0f add r31, r31
  1621. a8e: bb 1f adc r27, r27
  1622. a90: 66 1f adc r22, r22
  1623. a92: 77 1f adc r23, r23
  1624. a94: 88 1f adc r24, r24
  1625. a96: c2 f7 brpl .-16 ; 0xa88 <__addsf3x+0x6a>
  1626. a98: 0e c0 rjmp .+28 ; 0xab6 <__addsf3x+0x98>
  1627. a9a: ba 0f add r27, r26
  1628. a9c: 62 1f adc r22, r18
  1629. a9e: 73 1f adc r23, r19
  1630. aa0: 84 1f adc r24, r20
  1631. aa2: 48 f4 brcc .+18 ; 0xab6 <__addsf3x+0x98>
  1632. aa4: 87 95 ror r24
  1633. aa6: 77 95 ror r23
  1634. aa8: 67 95 ror r22
  1635. aaa: b7 95 ror r27
  1636. aac: f7 95 ror r31
  1637. aae: 9e 3f cpi r25, 0xFE ; 254
  1638. ab0: 08 f0 brcs .+2 ; 0xab4 <__addsf3x+0x96>
  1639. ab2: b3 cf rjmp .-154 ; 0xa1a <__addsf3+0x1e>
  1640. ab4: 93 95 inc r25
  1641. ab6: 88 0f add r24, r24
  1642. ab8: 08 f0 brcs .+2 ; 0xabc <__addsf3x+0x9e>
  1643. aba: 99 27 eor r25, r25
  1644. abc: ee 0f add r30, r30
  1645. abe: 97 95 ror r25
  1646. ac0: 87 95 ror r24
  1647. ac2: 08 95 ret
  1648. 00000ac4 <__divsf3>:
  1649. ac4: 0c d0 rcall .+24 ; 0xade <__divsf3x>
  1650. ac6: e6 c0 rjmp .+460 ; 0xc94 <__fp_round>
  1651. ac8: de d0 rcall .+444 ; 0xc86 <__fp_pscB>
  1652. aca: 40 f0 brcs .+16 ; 0xadc <__divsf3+0x18>
  1653. acc: d5 d0 rcall .+426 ; 0xc78 <__fp_pscA>
  1654. ace: 30 f0 brcs .+12 ; 0xadc <__divsf3+0x18>
  1655. ad0: 21 f4 brne .+8 ; 0xada <__divsf3+0x16>
  1656. ad2: 5f 3f cpi r21, 0xFF ; 255
  1657. ad4: 19 f0 breq .+6 ; 0xadc <__divsf3+0x18>
  1658. ad6: c7 c0 rjmp .+398 ; 0xc66 <__fp_inf>
  1659. ad8: 51 11 cpse r21, r1
  1660. ada: 10 c1 rjmp .+544 ; 0xcfc <__fp_szero>
  1661. adc: ca c0 rjmp .+404 ; 0xc72 <__fp_nan>
  1662. 00000ade <__divsf3x>:
  1663. ade: eb d0 rcall .+470 ; 0xcb6 <__fp_split3>
  1664. ae0: 98 f3 brcs .-26 ; 0xac8 <__divsf3+0x4>
  1665. 00000ae2 <__divsf3_pse>:
  1666. ae2: 99 23 and r25, r25
  1667. ae4: c9 f3 breq .-14 ; 0xad8 <__divsf3+0x14>
  1668. ae6: 55 23 and r21, r21
  1669. ae8: b1 f3 breq .-20 ; 0xad6 <__divsf3+0x12>
  1670. aea: 95 1b sub r25, r21
  1671. aec: 55 0b sbc r21, r21
  1672. aee: bb 27 eor r27, r27
  1673. af0: aa 27 eor r26, r26
  1674. af2: 62 17 cp r22, r18
  1675. af4: 73 07 cpc r23, r19
  1676. af6: 84 07 cpc r24, r20
  1677. af8: 38 f0 brcs .+14 ; 0xb08 <__divsf3_pse+0x26>
  1678. afa: 9f 5f subi r25, 0xFF ; 255
  1679. afc: 5f 4f sbci r21, 0xFF ; 255
  1680. afe: 22 0f add r18, r18
  1681. b00: 33 1f adc r19, r19
  1682. b02: 44 1f adc r20, r20
  1683. b04: aa 1f adc r26, r26
  1684. b06: a9 f3 breq .-22 ; 0xaf2 <__divsf3_pse+0x10>
  1685. b08: 33 d0 rcall .+102 ; 0xb70 <__divsf3_pse+0x8e>
  1686. b0a: 0e 2e mov r0, r30
  1687. b0c: 3a f0 brmi .+14 ; 0xb1c <__divsf3_pse+0x3a>
  1688. b0e: e0 e8 ldi r30, 0x80 ; 128
  1689. b10: 30 d0 rcall .+96 ; 0xb72 <__divsf3_pse+0x90>
  1690. b12: 91 50 subi r25, 0x01 ; 1
  1691. b14: 50 40 sbci r21, 0x00 ; 0
  1692. b16: e6 95 lsr r30
  1693. b18: 00 1c adc r0, r0
  1694. b1a: ca f7 brpl .-14 ; 0xb0e <__divsf3_pse+0x2c>
  1695. b1c: 29 d0 rcall .+82 ; 0xb70 <__divsf3_pse+0x8e>
  1696. b1e: fe 2f mov r31, r30
  1697. b20: 27 d0 rcall .+78 ; 0xb70 <__divsf3_pse+0x8e>
  1698. b22: 66 0f add r22, r22
  1699. b24: 77 1f adc r23, r23
  1700. b26: 88 1f adc r24, r24
  1701. b28: bb 1f adc r27, r27
  1702. b2a: 26 17 cp r18, r22
  1703. b2c: 37 07 cpc r19, r23
  1704. b2e: 48 07 cpc r20, r24
  1705. b30: ab 07 cpc r26, r27
  1706. b32: b0 e8 ldi r27, 0x80 ; 128
  1707. b34: 09 f0 breq .+2 ; 0xb38 <__divsf3_pse+0x56>
  1708. b36: bb 0b sbc r27, r27
  1709. b38: 80 2d mov r24, r0
  1710. b3a: bf 01 movw r22, r30
  1711. b3c: ff 27 eor r31, r31
  1712. b3e: 93 58 subi r25, 0x83 ; 131
  1713. b40: 5f 4f sbci r21, 0xFF ; 255
  1714. b42: 2a f0 brmi .+10 ; 0xb4e <__divsf3_pse+0x6c>
  1715. b44: 9e 3f cpi r25, 0xFE ; 254
  1716. b46: 51 05 cpc r21, r1
  1717. b48: 68 f0 brcs .+26 ; 0xb64 <__divsf3_pse+0x82>
  1718. b4a: 8d c0 rjmp .+282 ; 0xc66 <__fp_inf>
  1719. b4c: d7 c0 rjmp .+430 ; 0xcfc <__fp_szero>
  1720. b4e: 5f 3f cpi r21, 0xFF ; 255
  1721. b50: ec f3 brlt .-6 ; 0xb4c <__divsf3_pse+0x6a>
  1722. b52: 98 3e cpi r25, 0xE8 ; 232
  1723. b54: dc f3 brlt .-10 ; 0xb4c <__divsf3_pse+0x6a>
  1724. b56: 86 95 lsr r24
  1725. b58: 77 95 ror r23
  1726. b5a: 67 95 ror r22
  1727. b5c: b7 95 ror r27
  1728. b5e: f7 95 ror r31
  1729. b60: 9f 5f subi r25, 0xFF ; 255
  1730. b62: c9 f7 brne .-14 ; 0xb56 <__divsf3_pse+0x74>
  1731. b64: 88 0f add r24, r24
  1732. b66: 91 1d adc r25, r1
  1733. b68: 96 95 lsr r25
  1734. b6a: 87 95 ror r24
  1735. b6c: 97 f9 bld r25, 7
  1736. b6e: 08 95 ret
  1737. b70: e1 e0 ldi r30, 0x01 ; 1
  1738. b72: 66 0f add r22, r22
  1739. b74: 77 1f adc r23, r23
  1740. b76: 88 1f adc r24, r24
  1741. b78: bb 1f adc r27, r27
  1742. b7a: 62 17 cp r22, r18
  1743. b7c: 73 07 cpc r23, r19
  1744. b7e: 84 07 cpc r24, r20
  1745. b80: ba 07 cpc r27, r26
  1746. b82: 20 f0 brcs .+8 ; 0xb8c <__divsf3_pse+0xaa>
  1747. b84: 62 1b sub r22, r18
  1748. b86: 73 0b sbc r23, r19
  1749. b88: 84 0b sbc r24, r20
  1750. b8a: ba 0b sbc r27, r26
  1751. b8c: ee 1f adc r30, r30
  1752. b8e: 88 f7 brcc .-30 ; 0xb72 <__divsf3_pse+0x90>
  1753. b90: e0 95 com r30
  1754. b92: 08 95 ret
  1755. 00000b94 <__fixunssfsi>:
  1756. b94: 98 d0 rcall .+304 ; 0xcc6 <__fp_splitA>
  1757. b96: 88 f0 brcs .+34 ; 0xbba <__fixunssfsi+0x26>
  1758. b98: 9f 57 subi r25, 0x7F ; 127
  1759. b9a: 90 f0 brcs .+36 ; 0xbc0 <__fixunssfsi+0x2c>
  1760. b9c: b9 2f mov r27, r25
  1761. b9e: 99 27 eor r25, r25
  1762. ba0: b7 51 subi r27, 0x17 ; 23
  1763. ba2: a0 f0 brcs .+40 ; 0xbcc <__fixunssfsi+0x38>
  1764. ba4: d1 f0 breq .+52 ; 0xbda <__fixunssfsi+0x46>
  1765. ba6: 66 0f add r22, r22
  1766. ba8: 77 1f adc r23, r23
  1767. baa: 88 1f adc r24, r24
  1768. bac: 99 1f adc r25, r25
  1769. bae: 1a f0 brmi .+6 ; 0xbb6 <__fixunssfsi+0x22>
  1770. bb0: ba 95 dec r27
  1771. bb2: c9 f7 brne .-14 ; 0xba6 <__fixunssfsi+0x12>
  1772. bb4: 12 c0 rjmp .+36 ; 0xbda <__fixunssfsi+0x46>
  1773. bb6: b1 30 cpi r27, 0x01 ; 1
  1774. bb8: 81 f0 breq .+32 ; 0xbda <__fixunssfsi+0x46>
  1775. bba: 9f d0 rcall .+318 ; 0xcfa <__fp_zero>
  1776. bbc: b1 e0 ldi r27, 0x01 ; 1
  1777. bbe: 08 95 ret
  1778. bc0: 9c c0 rjmp .+312 ; 0xcfa <__fp_zero>
  1779. bc2: 67 2f mov r22, r23
  1780. bc4: 78 2f mov r23, r24
  1781. bc6: 88 27 eor r24, r24
  1782. bc8: b8 5f subi r27, 0xF8 ; 248
  1783. bca: 39 f0 breq .+14 ; 0xbda <__fixunssfsi+0x46>
  1784. bcc: b9 3f cpi r27, 0xF9 ; 249
  1785. bce: cc f3 brlt .-14 ; 0xbc2 <__fixunssfsi+0x2e>
  1786. bd0: 86 95 lsr r24
  1787. bd2: 77 95 ror r23
  1788. bd4: 67 95 ror r22
  1789. bd6: b3 95 inc r27
  1790. bd8: d9 f7 brne .-10 ; 0xbd0 <__fixunssfsi+0x3c>
  1791. bda: 3e f4 brtc .+14 ; 0xbea <__fixunssfsi+0x56>
  1792. bdc: 90 95 com r25
  1793. bde: 80 95 com r24
  1794. be0: 70 95 com r23
  1795. be2: 61 95 neg r22
  1796. be4: 7f 4f sbci r23, 0xFF ; 255
  1797. be6: 8f 4f sbci r24, 0xFF ; 255
  1798. be8: 9f 4f sbci r25, 0xFF ; 255
  1799. bea: 08 95 ret
  1800. 00000bec <__floatunsisf>:
  1801. bec: e8 94 clt
  1802. bee: 09 c0 rjmp .+18 ; 0xc02 <__floatsisf+0x12>
  1803. 00000bf0 <__floatsisf>:
  1804. bf0: 97 fb bst r25, 7
  1805. bf2: 3e f4 brtc .+14 ; 0xc02 <__floatsisf+0x12>
  1806. bf4: 90 95 com r25
  1807. bf6: 80 95 com r24
  1808. bf8: 70 95 com r23
  1809. bfa: 61 95 neg r22
  1810. bfc: 7f 4f sbci r23, 0xFF ; 255
  1811. bfe: 8f 4f sbci r24, 0xFF ; 255
  1812. c00: 9f 4f sbci r25, 0xFF ; 255
  1813. c02: 99 23 and r25, r25
  1814. c04: a9 f0 breq .+42 ; 0xc30 <__floatsisf+0x40>
  1815. c06: f9 2f mov r31, r25
  1816. c08: 96 e9 ldi r25, 0x96 ; 150
  1817. c0a: bb 27 eor r27, r27
  1818. c0c: 93 95 inc r25
  1819. c0e: f6 95 lsr r31
  1820. c10: 87 95 ror r24
  1821. c12: 77 95 ror r23
  1822. c14: 67 95 ror r22
  1823. c16: b7 95 ror r27
  1824. c18: f1 11 cpse r31, r1
  1825. c1a: f8 cf rjmp .-16 ; 0xc0c <__floatsisf+0x1c>
  1826. c1c: fa f4 brpl .+62 ; 0xc5c <__floatsisf+0x6c>
  1827. c1e: bb 0f add r27, r27
  1828. c20: 11 f4 brne .+4 ; 0xc26 <__floatsisf+0x36>
  1829. c22: 60 ff sbrs r22, 0
  1830. c24: 1b c0 rjmp .+54 ; 0xc5c <__floatsisf+0x6c>
  1831. c26: 6f 5f subi r22, 0xFF ; 255
  1832. c28: 7f 4f sbci r23, 0xFF ; 255
  1833. c2a: 8f 4f sbci r24, 0xFF ; 255
  1834. c2c: 9f 4f sbci r25, 0xFF ; 255
  1835. c2e: 16 c0 rjmp .+44 ; 0xc5c <__floatsisf+0x6c>
  1836. c30: 88 23 and r24, r24
  1837. c32: 11 f0 breq .+4 ; 0xc38 <__floatsisf+0x48>
  1838. c34: 96 e9 ldi r25, 0x96 ; 150
  1839. c36: 11 c0 rjmp .+34 ; 0xc5a <__floatsisf+0x6a>
  1840. c38: 77 23 and r23, r23
  1841. c3a: 21 f0 breq .+8 ; 0xc44 <__floatsisf+0x54>
  1842. c3c: 9e e8 ldi r25, 0x8E ; 142
  1843. c3e: 87 2f mov r24, r23
  1844. c40: 76 2f mov r23, r22
  1845. c42: 05 c0 rjmp .+10 ; 0xc4e <__floatsisf+0x5e>
  1846. c44: 66 23 and r22, r22
  1847. c46: 71 f0 breq .+28 ; 0xc64 <__floatsisf+0x74>
  1848. c48: 96 e8 ldi r25, 0x86 ; 134
  1849. c4a: 86 2f mov r24, r22
  1850. c4c: 70 e0 ldi r23, 0x00 ; 0
  1851. c4e: 60 e0 ldi r22, 0x00 ; 0
  1852. c50: 2a f0 brmi .+10 ; 0xc5c <__floatsisf+0x6c>
  1853. c52: 9a 95 dec r25
  1854. c54: 66 0f add r22, r22
  1855. c56: 77 1f adc r23, r23
  1856. c58: 88 1f adc r24, r24
  1857. c5a: da f7 brpl .-10 ; 0xc52 <__floatsisf+0x62>
  1858. c5c: 88 0f add r24, r24
  1859. c5e: 96 95 lsr r25
  1860. c60: 87 95 ror r24
  1861. c62: 97 f9 bld r25, 7
  1862. c64: 08 95 ret
  1863. 00000c66 <__fp_inf>:
  1864. c66: 97 f9 bld r25, 7
  1865. c68: 9f 67 ori r25, 0x7F ; 127
  1866. c6a: 80 e8 ldi r24, 0x80 ; 128
  1867. c6c: 70 e0 ldi r23, 0x00 ; 0
  1868. c6e: 60 e0 ldi r22, 0x00 ; 0
  1869. c70: 08 95 ret
  1870. 00000c72 <__fp_nan>:
  1871. c72: 9f ef ldi r25, 0xFF ; 255
  1872. c74: 80 ec ldi r24, 0xC0 ; 192
  1873. c76: 08 95 ret
  1874. 00000c78 <__fp_pscA>:
  1875. c78: 00 24 eor r0, r0
  1876. c7a: 0a 94 dec r0
  1877. c7c: 16 16 cp r1, r22
  1878. c7e: 17 06 cpc r1, r23
  1879. c80: 18 06 cpc r1, r24
  1880. c82: 09 06 cpc r0, r25
  1881. c84: 08 95 ret
  1882. 00000c86 <__fp_pscB>:
  1883. c86: 00 24 eor r0, r0
  1884. c88: 0a 94 dec r0
  1885. c8a: 12 16 cp r1, r18
  1886. c8c: 13 06 cpc r1, r19
  1887. c8e: 14 06 cpc r1, r20
  1888. c90: 05 06 cpc r0, r21
  1889. c92: 08 95 ret
  1890. 00000c94 <__fp_round>:
  1891. c94: 09 2e mov r0, r25
  1892. c96: 03 94 inc r0
  1893. c98: 00 0c add r0, r0
  1894. c9a: 11 f4 brne .+4 ; 0xca0 <__fp_round+0xc>
  1895. c9c: 88 23 and r24, r24
  1896. c9e: 52 f0 brmi .+20 ; 0xcb4 <__fp_round+0x20>
  1897. ca0: bb 0f add r27, r27
  1898. ca2: 40 f4 brcc .+16 ; 0xcb4 <__fp_round+0x20>
  1899. ca4: bf 2b or r27, r31
  1900. ca6: 11 f4 brne .+4 ; 0xcac <__fp_round+0x18>
  1901. ca8: 60 ff sbrs r22, 0
  1902. caa: 04 c0 rjmp .+8 ; 0xcb4 <__fp_round+0x20>
  1903. cac: 6f 5f subi r22, 0xFF ; 255
  1904. cae: 7f 4f sbci r23, 0xFF ; 255
  1905. cb0: 8f 4f sbci r24, 0xFF ; 255
  1906. cb2: 9f 4f sbci r25, 0xFF ; 255
  1907. cb4: 08 95 ret
  1908. 00000cb6 <__fp_split3>:
  1909. cb6: 57 fd sbrc r21, 7
  1910. cb8: 90 58 subi r25, 0x80 ; 128
  1911. cba: 44 0f add r20, r20
  1912. cbc: 55 1f adc r21, r21
  1913. cbe: 59 f0 breq .+22 ; 0xcd6 <__fp_splitA+0x10>
  1914. cc0: 5f 3f cpi r21, 0xFF ; 255
  1915. cc2: 71 f0 breq .+28 ; 0xce0 <__fp_splitA+0x1a>
  1916. cc4: 47 95 ror r20
  1917. 00000cc6 <__fp_splitA>:
  1918. cc6: 88 0f add r24, r24
  1919. cc8: 97 fb bst r25, 7
  1920. cca: 99 1f adc r25, r25
  1921. ccc: 61 f0 breq .+24 ; 0xce6 <__fp_splitA+0x20>
  1922. cce: 9f 3f cpi r25, 0xFF ; 255
  1923. cd0: 79 f0 breq .+30 ; 0xcf0 <__fp_splitA+0x2a>
  1924. cd2: 87 95 ror r24
  1925. cd4: 08 95 ret
  1926. cd6: 12 16 cp r1, r18
  1927. cd8: 13 06 cpc r1, r19
  1928. cda: 14 06 cpc r1, r20
  1929. cdc: 55 1f adc r21, r21
  1930. cde: f2 cf rjmp .-28 ; 0xcc4 <__fp_split3+0xe>
  1931. ce0: 46 95 lsr r20
  1932. ce2: f1 df rcall .-30 ; 0xcc6 <__fp_splitA>
  1933. ce4: 08 c0 rjmp .+16 ; 0xcf6 <__fp_splitA+0x30>
  1934. ce6: 16 16 cp r1, r22
  1935. ce8: 17 06 cpc r1, r23
  1936. cea: 18 06 cpc r1, r24
  1937. cec: 99 1f adc r25, r25
  1938. cee: f1 cf rjmp .-30 ; 0xcd2 <__fp_splitA+0xc>
  1939. cf0: 86 95 lsr r24
  1940. cf2: 71 05 cpc r23, r1
  1941. cf4: 61 05 cpc r22, r1
  1942. cf6: 08 94 sec
  1943. cf8: 08 95 ret
  1944. 00000cfa <__fp_zero>:
  1945. cfa: e8 94 clt
  1946. 00000cfc <__fp_szero>:
  1947. cfc: bb 27 eor r27, r27
  1948. cfe: 66 27 eor r22, r22
  1949. d00: 77 27 eor r23, r23
  1950. d02: cb 01 movw r24, r22
  1951. d04: 97 f9 bld r25, 7
  1952. d06: 08 95 ret
  1953. 00000d08 <__mulsf3>:
  1954. d08: 0b d0 rcall .+22 ; 0xd20 <__mulsf3x>
  1955. d0a: c4 cf rjmp .-120 ; 0xc94 <__fp_round>
  1956. d0c: b5 df rcall .-150 ; 0xc78 <__fp_pscA>
  1957. d0e: 28 f0 brcs .+10 ; 0xd1a <__mulsf3+0x12>
  1958. d10: ba df rcall .-140 ; 0xc86 <__fp_pscB>
  1959. d12: 18 f0 brcs .+6 ; 0xd1a <__mulsf3+0x12>
  1960. d14: 95 23 and r25, r21
  1961. d16: 09 f0 breq .+2 ; 0xd1a <__mulsf3+0x12>
  1962. d18: a6 cf rjmp .-180 ; 0xc66 <__fp_inf>
  1963. d1a: ab cf rjmp .-170 ; 0xc72 <__fp_nan>
  1964. d1c: 11 24 eor r1, r1
  1965. d1e: ee cf rjmp .-36 ; 0xcfc <__fp_szero>
  1966. 00000d20 <__mulsf3x>:
  1967. d20: ca df rcall .-108 ; 0xcb6 <__fp_split3>
  1968. d22: a0 f3 brcs .-24 ; 0xd0c <__mulsf3+0x4>
  1969. 00000d24 <__mulsf3_pse>:
  1970. d24: 95 9f mul r25, r21
  1971. d26: d1 f3 breq .-12 ; 0xd1c <__mulsf3+0x14>
  1972. d28: 95 0f add r25, r21
  1973. d2a: 50 e0 ldi r21, 0x00 ; 0
  1974. d2c: 55 1f adc r21, r21
  1975. d2e: 62 9f mul r22, r18
  1976. d30: f0 01 movw r30, r0
  1977. d32: 72 9f mul r23, r18
  1978. d34: bb 27 eor r27, r27
  1979. d36: f0 0d add r31, r0
  1980. d38: b1 1d adc r27, r1
  1981. d3a: 63 9f mul r22, r19
  1982. d3c: aa 27 eor r26, r26
  1983. d3e: f0 0d add r31, r0
  1984. d40: b1 1d adc r27, r1
  1985. d42: aa 1f adc r26, r26
  1986. d44: 64 9f mul r22, r20
  1987. d46: 66 27 eor r22, r22
  1988. d48: b0 0d add r27, r0
  1989. d4a: a1 1d adc r26, r1
  1990. d4c: 66 1f adc r22, r22
  1991. d4e: 82 9f mul r24, r18
  1992. d50: 22 27 eor r18, r18
  1993. d52: b0 0d add r27, r0
  1994. d54: a1 1d adc r26, r1
  1995. d56: 62 1f adc r22, r18
  1996. d58: 73 9f mul r23, r19
  1997. d5a: b0 0d add r27, r0
  1998. d5c: a1 1d adc r26, r1
  1999. d5e: 62 1f adc r22, r18
  2000. d60: 83 9f mul r24, r19
  2001. d62: a0 0d add r26, r0
  2002. d64: 61 1d adc r22, r1
  2003. d66: 22 1f adc r18, r18
  2004. d68: 74 9f mul r23, r20
  2005. d6a: 33 27 eor r19, r19
  2006. d6c: a0 0d add r26, r0
  2007. d6e: 61 1d adc r22, r1
  2008. d70: 23 1f adc r18, r19
  2009. d72: 84 9f mul r24, r20
  2010. d74: 60 0d add r22, r0
  2011. d76: 21 1d adc r18, r1
  2012. d78: 82 2f mov r24, r18
  2013. d7a: 76 2f mov r23, r22
  2014. d7c: 6a 2f mov r22, r26
  2015. d7e: 11 24 eor r1, r1
  2016. d80: 9f 57 subi r25, 0x7F ; 127
  2017. d82: 50 40 sbci r21, 0x00 ; 0
  2018. d84: 8a f0 brmi .+34 ; 0xda8 <__mulsf3_pse+0x84>
  2019. d86: e1 f0 breq .+56 ; 0xdc0 <__mulsf3_pse+0x9c>
  2020. d88: 88 23 and r24, r24
  2021. d8a: 4a f0 brmi .+18 ; 0xd9e <__mulsf3_pse+0x7a>
  2022. d8c: ee 0f add r30, r30
  2023. d8e: ff 1f adc r31, r31
  2024. d90: bb 1f adc r27, r27
  2025. d92: 66 1f adc r22, r22
  2026. d94: 77 1f adc r23, r23
  2027. d96: 88 1f adc r24, r24
  2028. d98: 91 50 subi r25, 0x01 ; 1
  2029. d9a: 50 40 sbci r21, 0x00 ; 0
  2030. d9c: a9 f7 brne .-22 ; 0xd88 <__mulsf3_pse+0x64>
  2031. d9e: 9e 3f cpi r25, 0xFE ; 254
  2032. da0: 51 05 cpc r21, r1
  2033. da2: 70 f0 brcs .+28 ; 0xdc0 <__mulsf3_pse+0x9c>
  2034. da4: 60 cf rjmp .-320 ; 0xc66 <__fp_inf>
  2035. da6: aa cf rjmp .-172 ; 0xcfc <__fp_szero>
  2036. da8: 5f 3f cpi r21, 0xFF ; 255
  2037. daa: ec f3 brlt .-6 ; 0xda6 <__mulsf3_pse+0x82>
  2038. dac: 98 3e cpi r25, 0xE8 ; 232
  2039. dae: dc f3 brlt .-10 ; 0xda6 <__mulsf3_pse+0x82>
  2040. db0: 86 95 lsr r24
  2041. db2: 77 95 ror r23
  2042. db4: 67 95 ror r22
  2043. db6: b7 95 ror r27
  2044. db8: f7 95 ror r31
  2045. dba: e7 95 ror r30
  2046. dbc: 9f 5f subi r25, 0xFF ; 255
  2047. dbe: c1 f7 brne .-16 ; 0xdb0 <__mulsf3_pse+0x8c>
  2048. dc0: fe 2b or r31, r30
  2049. dc2: 88 0f add r24, r24
  2050. dc4: 91 1d adc r25, r1
  2051. dc6: 96 95 lsr r25
  2052. dc8: 87 95 ror r24
  2053. dca: 97 f9 bld r25, 7
  2054. dcc: 08 95 ret
  2055. 00000dce <vfprintf>:
  2056. dce: a3 e1 ldi r26, 0x13 ; 19
  2057. dd0: b0 e0 ldi r27, 0x00 ; 0
  2058. dd2: ed ee ldi r30, 0xED ; 237
  2059. dd4: f6 e0 ldi r31, 0x06 ; 6
  2060. dd6: 0c 94 62 0a jmp 0x14c4 ; 0x14c4 <__prologue_saves__>
  2061. dda: 7c 01 movw r14, r24
  2062. ddc: 1b 01 movw r2, r22
  2063. dde: 6a 01 movw r12, r20
  2064. de0: fc 01 movw r30, r24
  2065. de2: 17 82 std Z+7, r1 ; 0x07
  2066. de4: 16 82 std Z+6, r1 ; 0x06
  2067. de6: 83 81 ldd r24, Z+3 ; 0x03
  2068. de8: 81 ff sbrs r24, 1
  2069. dea: 66 c3 rjmp .+1740 ; 0x14b8 <__stack+0x3b9>
  2070. dec: be 01 movw r22, r28
  2071. dee: 6f 5f subi r22, 0xFF ; 255
  2072. df0: 7f 4f sbci r23, 0xFF ; 255
  2073. df2: 4b 01 movw r8, r22
  2074. df4: f7 01 movw r30, r14
  2075. df6: 93 81 ldd r25, Z+3 ; 0x03
  2076. df8: f1 01 movw r30, r2
  2077. dfa: 93 fd sbrc r25, 3
  2078. dfc: 85 91 lpm r24, Z+
  2079. dfe: 93 ff sbrs r25, 3
  2080. e00: 81 91 ld r24, Z+
  2081. e02: 1f 01 movw r2, r30
  2082. e04: 88 23 and r24, r24
  2083. e06: 09 f4 brne .+2 ; 0xe0a <vfprintf+0x3c>
  2084. e08: 53 c3 rjmp .+1702 ; 0x14b0 <__stack+0x3b1>
  2085. e0a: 85 32 cpi r24, 0x25 ; 37
  2086. e0c: 39 f4 brne .+14 ; 0xe1c <vfprintf+0x4e>
  2087. e0e: 93 fd sbrc r25, 3
  2088. e10: 85 91 lpm r24, Z+
  2089. e12: 93 ff sbrs r25, 3
  2090. e14: 81 91 ld r24, Z+
  2091. e16: 1f 01 movw r2, r30
  2092. e18: 85 32 cpi r24, 0x25 ; 37
  2093. e1a: 39 f4 brne .+14 ; 0xe2a <vfprintf+0x5c>
  2094. e1c: b7 01 movw r22, r14
  2095. e1e: 90 e0 ldi r25, 0x00 ; 0
  2096. e20: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2097. e24: 56 01 movw r10, r12
  2098. e26: 65 01 movw r12, r10
  2099. e28: e5 cf rjmp .-54 ; 0xdf4 <vfprintf+0x26>
  2100. e2a: 10 e0 ldi r17, 0x00 ; 0
  2101. e2c: 51 2c mov r5, r1
  2102. e2e: 20 e0 ldi r18, 0x00 ; 0
  2103. e30: 20 32 cpi r18, 0x20 ; 32
  2104. e32: a0 f4 brcc .+40 ; 0xe5c <vfprintf+0x8e>
  2105. e34: 8b 32 cpi r24, 0x2B ; 43
  2106. e36: 69 f0 breq .+26 ; 0xe52 <vfprintf+0x84>
  2107. e38: 30 f4 brcc .+12 ; 0xe46 <vfprintf+0x78>
  2108. e3a: 80 32 cpi r24, 0x20 ; 32
  2109. e3c: 59 f0 breq .+22 ; 0xe54 <vfprintf+0x86>
  2110. e3e: 83 32 cpi r24, 0x23 ; 35
  2111. e40: 69 f4 brne .+26 ; 0xe5c <vfprintf+0x8e>
  2112. e42: 20 61 ori r18, 0x10 ; 16
  2113. e44: 2c c0 rjmp .+88 ; 0xe9e <vfprintf+0xd0>
  2114. e46: 8d 32 cpi r24, 0x2D ; 45
  2115. e48: 39 f0 breq .+14 ; 0xe58 <vfprintf+0x8a>
  2116. e4a: 80 33 cpi r24, 0x30 ; 48
  2117. e4c: 39 f4 brne .+14 ; 0xe5c <vfprintf+0x8e>
  2118. e4e: 21 60 ori r18, 0x01 ; 1
  2119. e50: 26 c0 rjmp .+76 ; 0xe9e <vfprintf+0xd0>
  2120. e52: 22 60 ori r18, 0x02 ; 2
  2121. e54: 24 60 ori r18, 0x04 ; 4
  2122. e56: 23 c0 rjmp .+70 ; 0xe9e <vfprintf+0xd0>
  2123. e58: 28 60 ori r18, 0x08 ; 8
  2124. e5a: 21 c0 rjmp .+66 ; 0xe9e <vfprintf+0xd0>
  2125. e5c: 27 fd sbrc r18, 7
  2126. e5e: 27 c0 rjmp .+78 ; 0xeae <vfprintf+0xe0>
  2127. e60: 30 ed ldi r19, 0xD0 ; 208
  2128. e62: 38 0f add r19, r24
  2129. e64: 3a 30 cpi r19, 0x0A ; 10
  2130. e66: 78 f4 brcc .+30 ; 0xe86 <vfprintf+0xb8>
  2131. e68: 26 ff sbrs r18, 6
  2132. e6a: 06 c0 rjmp .+12 ; 0xe78 <vfprintf+0xaa>
  2133. e6c: fa e0 ldi r31, 0x0A ; 10
  2134. e6e: 1f 9f mul r17, r31
  2135. e70: 30 0d add r19, r0
  2136. e72: 11 24 eor r1, r1
  2137. e74: 13 2f mov r17, r19
  2138. e76: 13 c0 rjmp .+38 ; 0xe9e <vfprintf+0xd0>
  2139. e78: 6a e0 ldi r22, 0x0A ; 10
  2140. e7a: 56 9e mul r5, r22
  2141. e7c: 30 0d add r19, r0
  2142. e7e: 11 24 eor r1, r1
  2143. e80: 53 2e mov r5, r19
  2144. e82: 20 62 ori r18, 0x20 ; 32
  2145. e84: 0c c0 rjmp .+24 ; 0xe9e <vfprintf+0xd0>
  2146. e86: 8e 32 cpi r24, 0x2E ; 46
  2147. e88: 21 f4 brne .+8 ; 0xe92 <vfprintf+0xc4>
  2148. e8a: 26 fd sbrc r18, 6
  2149. e8c: 11 c3 rjmp .+1570 ; 0x14b0 <__stack+0x3b1>
  2150. e8e: 20 64 ori r18, 0x40 ; 64
  2151. e90: 06 c0 rjmp .+12 ; 0xe9e <vfprintf+0xd0>
  2152. e92: 8c 36 cpi r24, 0x6C ; 108
  2153. e94: 11 f4 brne .+4 ; 0xe9a <vfprintf+0xcc>
  2154. e96: 20 68 ori r18, 0x80 ; 128
  2155. e98: 02 c0 rjmp .+4 ; 0xe9e <vfprintf+0xd0>
  2156. e9a: 88 36 cpi r24, 0x68 ; 104
  2157. e9c: 41 f4 brne .+16 ; 0xeae <vfprintf+0xe0>
  2158. e9e: f1 01 movw r30, r2
  2159. ea0: 93 fd sbrc r25, 3
  2160. ea2: 85 91 lpm r24, Z+
  2161. ea4: 93 ff sbrs r25, 3
  2162. ea6: 81 91 ld r24, Z+
  2163. ea8: 1f 01 movw r2, r30
  2164. eaa: 81 11 cpse r24, r1
  2165. eac: c1 cf rjmp .-126 ; 0xe30 <vfprintf+0x62>
  2166. eae: 9b eb ldi r25, 0xBB ; 187
  2167. eb0: 98 0f add r25, r24
  2168. eb2: 93 30 cpi r25, 0x03 ; 3
  2169. eb4: 18 f4 brcc .+6 ; 0xebc <vfprintf+0xee>
  2170. eb6: 20 61 ori r18, 0x10 ; 16
  2171. eb8: 80 5e subi r24, 0xE0 ; 224
  2172. eba: 06 c0 rjmp .+12 ; 0xec8 <vfprintf+0xfa>
  2173. ebc: 9b e9 ldi r25, 0x9B ; 155
  2174. ebe: 98 0f add r25, r24
  2175. ec0: 93 30 cpi r25, 0x03 ; 3
  2176. ec2: 08 f0 brcs .+2 ; 0xec6 <vfprintf+0xf8>
  2177. ec4: aa c1 rjmp .+852 ; 0x121a <__stack+0x11b>
  2178. ec6: 2f 7e andi r18, 0xEF ; 239
  2179. ec8: 26 ff sbrs r18, 6
  2180. eca: 16 e0 ldi r17, 0x06 ; 6
  2181. ecc: 2f 73 andi r18, 0x3F ; 63
  2182. ece: 72 2e mov r7, r18
  2183. ed0: 85 36 cpi r24, 0x65 ; 101
  2184. ed2: 21 f4 brne .+8 ; 0xedc <vfprintf+0x10e>
  2185. ed4: f2 2f mov r31, r18
  2186. ed6: f0 64 ori r31, 0x40 ; 64
  2187. ed8: 7f 2e mov r7, r31
  2188. eda: 08 c0 rjmp .+16 ; 0xeec <vfprintf+0x11e>
  2189. edc: 86 36 cpi r24, 0x66 ; 102
  2190. ede: 21 f4 brne .+8 ; 0xee8 <vfprintf+0x11a>
  2191. ee0: 62 2f mov r22, r18
  2192. ee2: 60 68 ori r22, 0x80 ; 128
  2193. ee4: 76 2e mov r7, r22
  2194. ee6: 02 c0 rjmp .+4 ; 0xeec <vfprintf+0x11e>
  2195. ee8: 11 11 cpse r17, r1
  2196. eea: 11 50 subi r17, 0x01 ; 1
  2197. eec: 77 fe sbrs r7, 7
  2198. eee: 07 c0 rjmp .+14 ; 0xefe <vfprintf+0x130>
  2199. ef0: 1c 33 cpi r17, 0x3C ; 60
  2200. ef2: 48 f4 brcc .+18 ; 0xf06 <vfprintf+0x138>
  2201. ef4: 44 24 eor r4, r4
  2202. ef6: 43 94 inc r4
  2203. ef8: 41 0e add r4, r17
  2204. efa: 27 e0 ldi r18, 0x07 ; 7
  2205. efc: 0b c0 rjmp .+22 ; 0xf14 <vfprintf+0x146>
  2206. efe: 18 30 cpi r17, 0x08 ; 8
  2207. f00: 30 f4 brcc .+12 ; 0xf0e <vfprintf+0x140>
  2208. f02: 21 2f mov r18, r17
  2209. f04: 06 c0 rjmp .+12 ; 0xf12 <vfprintf+0x144>
  2210. f06: 27 e0 ldi r18, 0x07 ; 7
  2211. f08: 4c e3 ldi r20, 0x3C ; 60
  2212. f0a: 44 2e mov r4, r20
  2213. f0c: 03 c0 rjmp .+6 ; 0xf14 <vfprintf+0x146>
  2214. f0e: 27 e0 ldi r18, 0x07 ; 7
  2215. f10: 17 e0 ldi r17, 0x07 ; 7
  2216. f12: 41 2c mov r4, r1
  2217. f14: 56 01 movw r10, r12
  2218. f16: 74 e0 ldi r23, 0x04 ; 4
  2219. f18: a7 0e add r10, r23
  2220. f1a: b1 1c adc r11, r1
  2221. f1c: f6 01 movw r30, r12
  2222. f1e: 60 81 ld r22, Z
  2223. f20: 71 81 ldd r23, Z+1 ; 0x01
  2224. f22: 82 81 ldd r24, Z+2 ; 0x02
  2225. f24: 93 81 ldd r25, Z+3 ; 0x03
  2226. f26: 04 2d mov r16, r4
  2227. f28: a4 01 movw r20, r8
  2228. f2a: 0e 94 99 0a call 0x1532 ; 0x1532 <__ftoa_engine>
  2229. f2e: 6c 01 movw r12, r24
  2230. f30: 09 81 ldd r16, Y+1 ; 0x01
  2231. f32: 00 ff sbrs r16, 0
  2232. f34: 02 c0 rjmp .+4 ; 0xf3a <vfprintf+0x16c>
  2233. f36: 03 ff sbrs r16, 3
  2234. f38: 06 c0 rjmp .+12 ; 0xf46 <vfprintf+0x178>
  2235. f3a: 71 fc sbrc r7, 1
  2236. f3c: 07 c0 rjmp .+14 ; 0xf4c <vfprintf+0x17e>
  2237. f3e: 72 fc sbrc r7, 2
  2238. f40: 08 c0 rjmp .+16 ; 0xf52 <vfprintf+0x184>
  2239. f42: 61 2c mov r6, r1
  2240. f44: 08 c0 rjmp .+16 ; 0xf56 <vfprintf+0x188>
  2241. f46: 3d e2 ldi r19, 0x2D ; 45
  2242. f48: 63 2e mov r6, r19
  2243. f4a: 05 c0 rjmp .+10 ; 0xf56 <vfprintf+0x188>
  2244. f4c: 2b e2 ldi r18, 0x2B ; 43
  2245. f4e: 62 2e mov r6, r18
  2246. f50: 02 c0 rjmp .+4 ; 0xf56 <vfprintf+0x188>
  2247. f52: 90 e2 ldi r25, 0x20 ; 32
  2248. f54: 69 2e mov r6, r25
  2249. f56: 80 2f mov r24, r16
  2250. f58: 8c 70 andi r24, 0x0C ; 12
  2251. f5a: 99 f1 breq .+102 ; 0xfc2 <vfprintf+0x1f4>
  2252. f5c: 66 20 and r6, r6
  2253. f5e: 11 f0 breq .+4 ; 0xf64 <vfprintf+0x196>
  2254. f60: 84 e0 ldi r24, 0x04 ; 4
  2255. f62: 01 c0 rjmp .+2 ; 0xf66 <vfprintf+0x198>
  2256. f64: 83 e0 ldi r24, 0x03 ; 3
  2257. f66: 85 15 cp r24, r5
  2258. f68: 10 f0 brcs .+4 ; 0xf6e <vfprintf+0x1a0>
  2259. f6a: 51 2c mov r5, r1
  2260. f6c: 0b c0 rjmp .+22 ; 0xf84 <vfprintf+0x1b6>
  2261. f6e: 58 1a sub r5, r24
  2262. f70: 73 fc sbrc r7, 3
  2263. f72: 08 c0 rjmp .+16 ; 0xf84 <vfprintf+0x1b6>
  2264. f74: b7 01 movw r22, r14
  2265. f76: 80 e2 ldi r24, 0x20 ; 32
  2266. f78: 90 e0 ldi r25, 0x00 ; 0
  2267. f7a: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2268. f7e: 5a 94 dec r5
  2269. f80: c9 f7 brne .-14 ; 0xf74 <vfprintf+0x1a6>
  2270. f82: f3 cf rjmp .-26 ; 0xf6a <vfprintf+0x19c>
  2271. f84: 66 20 and r6, r6
  2272. f86: 29 f0 breq .+10 ; 0xf92 <vfprintf+0x1c4>
  2273. f88: b7 01 movw r22, r14
  2274. f8a: 86 2d mov r24, r6
  2275. f8c: 90 e0 ldi r25, 0x00 ; 0
  2276. f8e: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2277. f92: 03 fd sbrc r16, 3
  2278. f94: 03 c0 rjmp .+6 ; 0xf9c <vfprintf+0x1ce>
  2279. f96: 00 e8 ldi r16, 0x80 ; 128
  2280. f98: 10 e0 ldi r17, 0x00 ; 0
  2281. f9a: 02 c0 rjmp .+4 ; 0xfa0 <vfprintf+0x1d2>
  2282. f9c: 0c e7 ldi r16, 0x7C ; 124
  2283. f9e: 10 e0 ldi r17, 0x00 ; 0
  2284. fa0: f7 2d mov r31, r7
  2285. fa2: f0 71 andi r31, 0x10 ; 16
  2286. fa4: 7f 2e mov r7, r31
  2287. fa6: f8 01 movw r30, r16
  2288. fa8: 84 91 lpm r24, Z
  2289. faa: 88 23 and r24, r24
  2290. fac: 09 f4 brne .+2 ; 0xfb0 <vfprintf+0x1e2>
  2291. fae: 76 c2 rjmp .+1260 ; 0x149c <__stack+0x39d>
  2292. fb0: 71 10 cpse r7, r1
  2293. fb2: 80 52 subi r24, 0x20 ; 32
  2294. fb4: b7 01 movw r22, r14
  2295. fb6: 90 e0 ldi r25, 0x00 ; 0
  2296. fb8: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2297. fbc: 0f 5f subi r16, 0xFF ; 255
  2298. fbe: 1f 4f sbci r17, 0xFF ; 255
  2299. fc0: f2 cf rjmp .-28 ; 0xfa6 <vfprintf+0x1d8>
  2300. fc2: 77 fe sbrs r7, 7
  2301. fc4: 0f c0 rjmp .+30 ; 0xfe4 <vfprintf+0x216>
  2302. fc6: 4c 0c add r4, r12
  2303. fc8: 04 ff sbrs r16, 4
  2304. fca: 04 c0 rjmp .+8 ; 0xfd4 <vfprintf+0x206>
  2305. fcc: 8a 81 ldd r24, Y+2 ; 0x02
  2306. fce: 81 33 cpi r24, 0x31 ; 49
  2307. fd0: 09 f4 brne .+2 ; 0xfd4 <vfprintf+0x206>
  2308. fd2: 4a 94 dec r4
  2309. fd4: 14 14 cp r1, r4
  2310. fd6: 74 f5 brge .+92 ; 0x1034 <vfprintf+0x266>
  2311. fd8: f8 e0 ldi r31, 0x08 ; 8
  2312. fda: f4 15 cp r31, r4
  2313. fdc: 78 f5 brcc .+94 ; 0x103c <vfprintf+0x26e>
  2314. fde: 88 e0 ldi r24, 0x08 ; 8
  2315. fe0: 48 2e mov r4, r24
  2316. fe2: 2c c0 rjmp .+88 ; 0x103c <vfprintf+0x26e>
  2317. fe4: 76 fc sbrc r7, 6
  2318. fe6: 2a c0 rjmp .+84 ; 0x103c <vfprintf+0x26e>
  2319. fe8: 81 2f mov r24, r17
  2320. fea: 90 e0 ldi r25, 0x00 ; 0
  2321. fec: 8c 15 cp r24, r12
  2322. fee: 9d 05 cpc r25, r13
  2323. ff0: 9c f0 brlt .+38 ; 0x1018 <vfprintf+0x24a>
  2324. ff2: 6c ef ldi r22, 0xFC ; 252
  2325. ff4: c6 16 cp r12, r22
  2326. ff6: 6f ef ldi r22, 0xFF ; 255
  2327. ff8: d6 06 cpc r13, r22
  2328. ffa: 74 f0 brlt .+28 ; 0x1018 <vfprintf+0x24a>
  2329. ffc: 77 2d mov r23, r7
  2330. ffe: 70 68 ori r23, 0x80 ; 128
  2331. 1000: 77 2e mov r7, r23
  2332. 1002: 0a c0 rjmp .+20 ; 0x1018 <vfprintf+0x24a>
  2333. 1004: e2 e0 ldi r30, 0x02 ; 2
  2334. 1006: f0 e0 ldi r31, 0x00 ; 0
  2335. 1008: ec 0f add r30, r28
  2336. 100a: fd 1f adc r31, r29
  2337. 100c: e1 0f add r30, r17
  2338. 100e: f1 1d adc r31, r1
  2339. 1010: 80 81 ld r24, Z
  2340. 1012: 80 33 cpi r24, 0x30 ; 48
  2341. 1014: 19 f4 brne .+6 ; 0x101c <vfprintf+0x24e>
  2342. 1016: 11 50 subi r17, 0x01 ; 1
  2343. 1018: 11 11 cpse r17, r1
  2344. 101a: f4 cf rjmp .-24 ; 0x1004 <vfprintf+0x236>
  2345. 101c: 77 fe sbrs r7, 7
  2346. 101e: 0e c0 rjmp .+28 ; 0x103c <vfprintf+0x26e>
  2347. 1020: 44 24 eor r4, r4
  2348. 1022: 43 94 inc r4
  2349. 1024: 41 0e add r4, r17
  2350. 1026: 81 2f mov r24, r17
  2351. 1028: 90 e0 ldi r25, 0x00 ; 0
  2352. 102a: c8 16 cp r12, r24
  2353. 102c: d9 06 cpc r13, r25
  2354. 102e: 2c f4 brge .+10 ; 0x103a <vfprintf+0x26c>
  2355. 1030: 1c 19 sub r17, r12
  2356. 1032: 04 c0 rjmp .+8 ; 0x103c <vfprintf+0x26e>
  2357. 1034: 44 24 eor r4, r4
  2358. 1036: 43 94 inc r4
  2359. 1038: 01 c0 rjmp .+2 ; 0x103c <vfprintf+0x26e>
  2360. 103a: 10 e0 ldi r17, 0x00 ; 0
  2361. 103c: 77 fe sbrs r7, 7
  2362. 103e: 07 c0 rjmp .+14 ; 0x104e <vfprintf+0x280>
  2363. 1040: 1c 14 cp r1, r12
  2364. 1042: 1d 04 cpc r1, r13
  2365. 1044: 3c f4 brge .+14 ; 0x1054 <vfprintf+0x286>
  2366. 1046: 96 01 movw r18, r12
  2367. 1048: 2f 5f subi r18, 0xFF ; 255
  2368. 104a: 3f 4f sbci r19, 0xFF ; 255
  2369. 104c: 05 c0 rjmp .+10 ; 0x1058 <vfprintf+0x28a>
  2370. 104e: 25 e0 ldi r18, 0x05 ; 5
  2371. 1050: 30 e0 ldi r19, 0x00 ; 0
  2372. 1052: 02 c0 rjmp .+4 ; 0x1058 <vfprintf+0x28a>
  2373. 1054: 21 e0 ldi r18, 0x01 ; 1
  2374. 1056: 30 e0 ldi r19, 0x00 ; 0
  2375. 1058: 66 20 and r6, r6
  2376. 105a: 11 f0 breq .+4 ; 0x1060 <vfprintf+0x292>
  2377. 105c: 2f 5f subi r18, 0xFF ; 255
  2378. 105e: 3f 4f sbci r19, 0xFF ; 255
  2379. 1060: 11 23 and r17, r17
  2380. 1062: 31 f0 breq .+12 ; 0x1070 <vfprintf+0x2a2>
  2381. 1064: 41 2f mov r20, r17
  2382. 1066: 50 e0 ldi r21, 0x00 ; 0
  2383. 1068: 4f 5f subi r20, 0xFF ; 255
  2384. 106a: 5f 4f sbci r21, 0xFF ; 255
  2385. 106c: 24 0f add r18, r20
  2386. 106e: 35 1f adc r19, r21
  2387. 1070: 45 2d mov r20, r5
  2388. 1072: 50 e0 ldi r21, 0x00 ; 0
  2389. 1074: 24 17 cp r18, r20
  2390. 1076: 35 07 cpc r19, r21
  2391. 1078: 14 f4 brge .+4 ; 0x107e <vfprintf+0x2b0>
  2392. 107a: 52 1a sub r5, r18
  2393. 107c: 01 c0 rjmp .+2 ; 0x1080 <vfprintf+0x2b2>
  2394. 107e: 51 2c mov r5, r1
  2395. 1080: 87 2d mov r24, r7
  2396. 1082: 89 70 andi r24, 0x09 ; 9
  2397. 1084: 49 f4 brne .+18 ; 0x1098 <vfprintf+0x2ca>
  2398. 1086: 55 20 and r5, r5
  2399. 1088: 39 f0 breq .+14 ; 0x1098 <vfprintf+0x2ca>
  2400. 108a: b7 01 movw r22, r14
  2401. 108c: 80 e2 ldi r24, 0x20 ; 32
  2402. 108e: 90 e0 ldi r25, 0x00 ; 0
  2403. 1090: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2404. 1094: 5a 94 dec r5
  2405. 1096: f7 cf rjmp .-18 ; 0x1086 <vfprintf+0x2b8>
  2406. 1098: 66 20 and r6, r6
  2407. 109a: 29 f0 breq .+10 ; 0x10a6 <vfprintf+0x2d8>
  2408. 109c: b7 01 movw r22, r14
  2409. 109e: 86 2d mov r24, r6
  2410. 10a0: 90 e0 ldi r25, 0x00 ; 0
  2411. 10a2: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2412. 10a6: 73 fc sbrc r7, 3
  2413. 10a8: 09 c0 rjmp .+18 ; 0x10bc <vfprintf+0x2ee>
  2414. 10aa: 55 20 and r5, r5
  2415. 10ac: 39 f0 breq .+14 ; 0x10bc <vfprintf+0x2ee>
  2416. 10ae: b7 01 movw r22, r14
  2417. 10b0: 80 e3 ldi r24, 0x30 ; 48
  2418. 10b2: 90 e0 ldi r25, 0x00 ; 0
  2419. 10b4: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2420. 10b8: 5a 94 dec r5
  2421. 10ba: f7 cf rjmp .-18 ; 0x10aa <vfprintf+0x2dc>
  2422. 10bc: 77 fe sbrs r7, 7
  2423. 10be: 5f c0 rjmp .+190 ; 0x117e <__stack+0x7f>
  2424. 10c0: 9c 2d mov r25, r12
  2425. 10c2: 8d 2d mov r24, r13
  2426. 10c4: d7 fe sbrs r13, 7
  2427. 10c6: 02 c0 rjmp .+4 ; 0x10cc <vfprintf+0x2fe>
  2428. 10c8: 90 e0 ldi r25, 0x00 ; 0
  2429. 10ca: 80 e0 ldi r24, 0x00 ; 0
  2430. 10cc: 69 2e mov r6, r25
  2431. 10ce: 78 2e mov r7, r24
  2432. 10d0: 40 e0 ldi r20, 0x00 ; 0
  2433. 10d2: 50 e0 ldi r21, 0x00 ; 0
  2434. 10d4: c6 01 movw r24, r12
  2435. 10d6: 84 19 sub r24, r4
  2436. 10d8: 91 09 sbc r25, r1
  2437. 10da: 9d 87 std Y+13, r25 ; 0x0d
  2438. 10dc: 8c 87 std Y+12, r24 ; 0x0c
  2439. 10de: 96 01 movw r18, r12
  2440. 10e0: 26 19 sub r18, r6
  2441. 10e2: 37 09 sbc r19, r7
  2442. 10e4: 28 0d add r18, r8
  2443. 10e6: 39 1d adc r19, r9
  2444. 10e8: 81 2f mov r24, r17
  2445. 10ea: 90 e0 ldi r25, 0x00 ; 0
  2446. 10ec: ee 27 eor r30, r30
  2447. 10ee: ff 27 eor r31, r31
  2448. 10f0: e8 1b sub r30, r24
  2449. 10f2: f9 0b sbc r31, r25
  2450. 10f4: ff 87 std Y+15, r31 ; 0x0f
  2451. 10f6: ee 87 std Y+14, r30 ; 0x0e
  2452. 10f8: ff ef ldi r31, 0xFF ; 255
  2453. 10fa: 6f 16 cp r6, r31
  2454. 10fc: 7f 06 cpc r7, r31
  2455. 10fe: 69 f4 brne .+26 ; 0x111a <__stack+0x1b>
  2456. 1100: b7 01 movw r22, r14
  2457. 1102: 8e e2 ldi r24, 0x2E ; 46
  2458. 1104: 90 e0 ldi r25, 0x00 ; 0
  2459. 1106: 2b 8b std Y+19, r18 ; 0x13
  2460. 1108: 3a 8b std Y+18, r19 ; 0x12
  2461. 110a: 48 8b std Y+16, r20 ; 0x10
  2462. 110c: 59 8b std Y+17, r21 ; 0x11
  2463. 110e: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2464. 1112: 59 89 ldd r21, Y+17 ; 0x11
  2465. 1114: 48 89 ldd r20, Y+16 ; 0x10
  2466. 1116: 3a 89 ldd r19, Y+18 ; 0x12
  2467. 1118: 2b 89 ldd r18, Y+19 ; 0x13
  2468. 111a: c6 14 cp r12, r6
  2469. 111c: d7 04 cpc r13, r7
  2470. 111e: 54 f0 brlt .+20 ; 0x1134 <__stack+0x35>
  2471. 1120: 6c 85 ldd r22, Y+12 ; 0x0c
  2472. 1122: 7d 85 ldd r23, Y+13 ; 0x0d
  2473. 1124: 66 15 cp r22, r6
  2474. 1126: 77 05 cpc r23, r7
  2475. 1128: 2c f4 brge .+10 ; 0x1134 <__stack+0x35>
  2476. 112a: f9 01 movw r30, r18
  2477. 112c: e4 0f add r30, r20
  2478. 112e: f5 1f adc r31, r21
  2479. 1130: 81 81 ldd r24, Z+1 ; 0x01
  2480. 1132: 01 c0 rjmp .+2 ; 0x1136 <__stack+0x37>
  2481. 1134: 80 e3 ldi r24, 0x30 ; 48
  2482. 1136: 71 e0 ldi r23, 0x01 ; 1
  2483. 1138: 67 1a sub r6, r23
  2484. 113a: 71 08 sbc r7, r1
  2485. 113c: 4f 5f subi r20, 0xFF ; 255
  2486. 113e: 5f 4f sbci r21, 0xFF ; 255
  2487. 1140: ee 85 ldd r30, Y+14 ; 0x0e
  2488. 1142: ff 85 ldd r31, Y+15 ; 0x0f
  2489. 1144: 6e 16 cp r6, r30
  2490. 1146: 7f 06 cpc r7, r31
  2491. 1148: 6c f0 brlt .+26 ; 0x1164 <__stack+0x65>
  2492. 114a: b7 01 movw r22, r14
  2493. 114c: 90 e0 ldi r25, 0x00 ; 0
  2494. 114e: 2b 8b std Y+19, r18 ; 0x13
  2495. 1150: 3a 8b std Y+18, r19 ; 0x12
  2496. 1152: 48 8b std Y+16, r20 ; 0x10
  2497. 1154: 59 8b std Y+17, r21 ; 0x11
  2498. 1156: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2499. 115a: 2b 89 ldd r18, Y+19 ; 0x13
  2500. 115c: 3a 89 ldd r19, Y+18 ; 0x12
  2501. 115e: 48 89 ldd r20, Y+16 ; 0x10
  2502. 1160: 59 89 ldd r21, Y+17 ; 0x11
  2503. 1162: ca cf rjmp .-108 ; 0x10f8 <vfprintf+0x32a>
  2504. 1164: 6c 14 cp r6, r12
  2505. 1166: 7d 04 cpc r7, r13
  2506. 1168: 39 f4 brne .+14 ; 0x1178 <__stack+0x79>
  2507. 116a: 9a 81 ldd r25, Y+2 ; 0x02
  2508. 116c: 96 33 cpi r25, 0x36 ; 54
  2509. 116e: 18 f4 brcc .+6 ; 0x1176 <__stack+0x77>
  2510. 1170: 95 33 cpi r25, 0x35 ; 53
  2511. 1172: 11 f4 brne .+4 ; 0x1178 <__stack+0x79>
  2512. 1174: 04 ff sbrs r16, 4
  2513. 1176: 81 e3 ldi r24, 0x31 ; 49
  2514. 1178: b7 01 movw r22, r14
  2515. 117a: 90 e0 ldi r25, 0x00 ; 0
  2516. 117c: 4b c0 rjmp .+150 ; 0x1214 <__stack+0x115>
  2517. 117e: 8a 81 ldd r24, Y+2 ; 0x02
  2518. 1180: 81 33 cpi r24, 0x31 ; 49
  2519. 1182: 09 f0 breq .+2 ; 0x1186 <__stack+0x87>
  2520. 1184: 0f 7e andi r16, 0xEF ; 239
  2521. 1186: b7 01 movw r22, r14
  2522. 1188: 90 e0 ldi r25, 0x00 ; 0
  2523. 118a: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2524. 118e: 11 11 cpse r17, r1
  2525. 1190: 05 c0 rjmp .+10 ; 0x119c <__stack+0x9d>
  2526. 1192: 74 fe sbrs r7, 4
  2527. 1194: 18 c0 rjmp .+48 ; 0x11c6 <__stack+0xc7>
  2528. 1196: 85 e4 ldi r24, 0x45 ; 69
  2529. 1198: 90 e0 ldi r25, 0x00 ; 0
  2530. 119a: 17 c0 rjmp .+46 ; 0x11ca <__stack+0xcb>
  2531. 119c: b7 01 movw r22, r14
  2532. 119e: 8e e2 ldi r24, 0x2E ; 46
  2533. 11a0: 90 e0 ldi r25, 0x00 ; 0
  2534. 11a2: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2535. 11a6: 82 e0 ldi r24, 0x02 ; 2
  2536. 11a8: 66 24 eor r6, r6
  2537. 11aa: 63 94 inc r6
  2538. 11ac: 68 0e add r6, r24
  2539. 11ae: f4 01 movw r30, r8
  2540. 11b0: e8 0f add r30, r24
  2541. 11b2: f1 1d adc r31, r1
  2542. 11b4: 80 81 ld r24, Z
  2543. 11b6: b7 01 movw r22, r14
  2544. 11b8: 90 e0 ldi r25, 0x00 ; 0
  2545. 11ba: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2546. 11be: 11 50 subi r17, 0x01 ; 1
  2547. 11c0: 41 f3 breq .-48 ; 0x1192 <__stack+0x93>
  2548. 11c2: 86 2d mov r24, r6
  2549. 11c4: f1 cf rjmp .-30 ; 0x11a8 <__stack+0xa9>
  2550. 11c6: 85 e6 ldi r24, 0x65 ; 101
  2551. 11c8: 90 e0 ldi r25, 0x00 ; 0
  2552. 11ca: b7 01 movw r22, r14
  2553. 11cc: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2554. 11d0: d7 fc sbrc r13, 7
  2555. 11d2: 05 c0 rjmp .+10 ; 0x11de <__stack+0xdf>
  2556. 11d4: c1 14 cp r12, r1
  2557. 11d6: d1 04 cpc r13, r1
  2558. 11d8: 39 f4 brne .+14 ; 0x11e8 <__stack+0xe9>
  2559. 11da: 04 ff sbrs r16, 4
  2560. 11dc: 05 c0 rjmp .+10 ; 0x11e8 <__stack+0xe9>
  2561. 11de: d1 94 neg r13
  2562. 11e0: c1 94 neg r12
  2563. 11e2: d1 08 sbc r13, r1
  2564. 11e4: 8d e2 ldi r24, 0x2D ; 45
  2565. 11e6: 01 c0 rjmp .+2 ; 0x11ea <__stack+0xeb>
  2566. 11e8: 8b e2 ldi r24, 0x2B ; 43
  2567. 11ea: b7 01 movw r22, r14
  2568. 11ec: 90 e0 ldi r25, 0x00 ; 0
  2569. 11ee: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2570. 11f2: 80 e3 ldi r24, 0x30 ; 48
  2571. 11f4: 6a e0 ldi r22, 0x0A ; 10
  2572. 11f6: c6 16 cp r12, r22
  2573. 11f8: d1 04 cpc r13, r1
  2574. 11fa: 2c f0 brlt .+10 ; 0x1206 <__stack+0x107>
  2575. 11fc: 8f 5f subi r24, 0xFF ; 255
  2576. 11fe: fa e0 ldi r31, 0x0A ; 10
  2577. 1200: cf 1a sub r12, r31
  2578. 1202: d1 08 sbc r13, r1
  2579. 1204: f7 cf rjmp .-18 ; 0x11f4 <__stack+0xf5>
  2580. 1206: b7 01 movw r22, r14
  2581. 1208: 90 e0 ldi r25, 0x00 ; 0
  2582. 120a: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2583. 120e: b7 01 movw r22, r14
  2584. 1210: c6 01 movw r24, r12
  2585. 1212: c0 96 adiw r24, 0x30 ; 48
  2586. 1214: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2587. 1218: 41 c1 rjmp .+642 ; 0x149c <__stack+0x39d>
  2588. 121a: 83 36 cpi r24, 0x63 ; 99
  2589. 121c: 31 f0 breq .+12 ; 0x122a <__stack+0x12b>
  2590. 121e: 83 37 cpi r24, 0x73 ; 115
  2591. 1220: 79 f0 breq .+30 ; 0x1240 <__stack+0x141>
  2592. 1222: 83 35 cpi r24, 0x53 ; 83
  2593. 1224: 09 f0 breq .+2 ; 0x1228 <__stack+0x129>
  2594. 1226: 58 c0 rjmp .+176 ; 0x12d8 <__stack+0x1d9>
  2595. 1228: 21 c0 rjmp .+66 ; 0x126c <__stack+0x16d>
  2596. 122a: 56 01 movw r10, r12
  2597. 122c: 72 e0 ldi r23, 0x02 ; 2
  2598. 122e: a7 0e add r10, r23
  2599. 1230: b1 1c adc r11, r1
  2600. 1232: f6 01 movw r30, r12
  2601. 1234: 80 81 ld r24, Z
  2602. 1236: 89 83 std Y+1, r24 ; 0x01
  2603. 1238: 01 e0 ldi r16, 0x01 ; 1
  2604. 123a: 10 e0 ldi r17, 0x00 ; 0
  2605. 123c: 64 01 movw r12, r8
  2606. 123e: 14 c0 rjmp .+40 ; 0x1268 <__stack+0x169>
  2607. 1240: 56 01 movw r10, r12
  2608. 1242: f2 e0 ldi r31, 0x02 ; 2
  2609. 1244: af 0e add r10, r31
  2610. 1246: b1 1c adc r11, r1
  2611. 1248: f6 01 movw r30, r12
  2612. 124a: c0 80 ld r12, Z
  2613. 124c: d1 80 ldd r13, Z+1 ; 0x01
  2614. 124e: 26 ff sbrs r18, 6
  2615. 1250: 03 c0 rjmp .+6 ; 0x1258 <__stack+0x159>
  2616. 1252: 61 2f mov r22, r17
  2617. 1254: 70 e0 ldi r23, 0x00 ; 0
  2618. 1256: 02 c0 rjmp .+4 ; 0x125c <__stack+0x15d>
  2619. 1258: 6f ef ldi r22, 0xFF ; 255
  2620. 125a: 7f ef ldi r23, 0xFF ; 255
  2621. 125c: c6 01 movw r24, r12
  2622. 125e: 2b 8b std Y+19, r18 ; 0x13
  2623. 1260: 0e 94 7c 0b call 0x16f8 ; 0x16f8 <strnlen>
  2624. 1264: 8c 01 movw r16, r24
  2625. 1266: 2b 89 ldd r18, Y+19 ; 0x13
  2626. 1268: 2f 77 andi r18, 0x7F ; 127
  2627. 126a: 15 c0 rjmp .+42 ; 0x1296 <__stack+0x197>
  2628. 126c: 56 01 movw r10, r12
  2629. 126e: f2 e0 ldi r31, 0x02 ; 2
  2630. 1270: af 0e add r10, r31
  2631. 1272: b1 1c adc r11, r1
  2632. 1274: f6 01 movw r30, r12
  2633. 1276: c0 80 ld r12, Z
  2634. 1278: d1 80 ldd r13, Z+1 ; 0x01
  2635. 127a: 26 ff sbrs r18, 6
  2636. 127c: 03 c0 rjmp .+6 ; 0x1284 <__stack+0x185>
  2637. 127e: 61 2f mov r22, r17
  2638. 1280: 70 e0 ldi r23, 0x00 ; 0
  2639. 1282: 02 c0 rjmp .+4 ; 0x1288 <__stack+0x189>
  2640. 1284: 6f ef ldi r22, 0xFF ; 255
  2641. 1286: 7f ef ldi r23, 0xFF ; 255
  2642. 1288: c6 01 movw r24, r12
  2643. 128a: 2b 8b std Y+19, r18 ; 0x13
  2644. 128c: 0e 94 71 0b call 0x16e2 ; 0x16e2 <strnlen_P>
  2645. 1290: 8c 01 movw r16, r24
  2646. 1292: 2b 89 ldd r18, Y+19 ; 0x13
  2647. 1294: 20 68 ori r18, 0x80 ; 128
  2648. 1296: 72 2e mov r7, r18
  2649. 1298: 23 fd sbrc r18, 3
  2650. 129a: 1a c0 rjmp .+52 ; 0x12d0 <__stack+0x1d1>
  2651. 129c: 85 2d mov r24, r5
  2652. 129e: 90 e0 ldi r25, 0x00 ; 0
  2653. 12a0: 08 17 cp r16, r24
  2654. 12a2: 19 07 cpc r17, r25
  2655. 12a4: a8 f4 brcc .+42 ; 0x12d0 <__stack+0x1d1>
  2656. 12a6: b7 01 movw r22, r14
  2657. 12a8: 80 e2 ldi r24, 0x20 ; 32
  2658. 12aa: 90 e0 ldi r25, 0x00 ; 0
  2659. 12ac: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2660. 12b0: 5a 94 dec r5
  2661. 12b2: f4 cf rjmp .-24 ; 0x129c <__stack+0x19d>
  2662. 12b4: f6 01 movw r30, r12
  2663. 12b6: 77 fc sbrc r7, 7
  2664. 12b8: 85 91 lpm r24, Z+
  2665. 12ba: 77 fe sbrs r7, 7
  2666. 12bc: 81 91 ld r24, Z+
  2667. 12be: 6f 01 movw r12, r30
  2668. 12c0: b7 01 movw r22, r14
  2669. 12c2: 90 e0 ldi r25, 0x00 ; 0
  2670. 12c4: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2671. 12c8: 51 10 cpse r5, r1
  2672. 12ca: 5a 94 dec r5
  2673. 12cc: 01 50 subi r16, 0x01 ; 1
  2674. 12ce: 11 09 sbc r17, r1
  2675. 12d0: 01 15 cp r16, r1
  2676. 12d2: 11 05 cpc r17, r1
  2677. 12d4: 79 f7 brne .-34 ; 0x12b4 <__stack+0x1b5>
  2678. 12d6: e2 c0 rjmp .+452 ; 0x149c <__stack+0x39d>
  2679. 12d8: 84 36 cpi r24, 0x64 ; 100
  2680. 12da: 11 f0 breq .+4 ; 0x12e0 <__stack+0x1e1>
  2681. 12dc: 89 36 cpi r24, 0x69 ; 105
  2682. 12de: 51 f5 brne .+84 ; 0x1334 <__stack+0x235>
  2683. 12e0: 56 01 movw r10, r12
  2684. 12e2: 27 ff sbrs r18, 7
  2685. 12e4: 09 c0 rjmp .+18 ; 0x12f8 <__stack+0x1f9>
  2686. 12e6: f4 e0 ldi r31, 0x04 ; 4
  2687. 12e8: af 0e add r10, r31
  2688. 12ea: b1 1c adc r11, r1
  2689. 12ec: f6 01 movw r30, r12
  2690. 12ee: 60 81 ld r22, Z
  2691. 12f0: 71 81 ldd r23, Z+1 ; 0x01
  2692. 12f2: 82 81 ldd r24, Z+2 ; 0x02
  2693. 12f4: 93 81 ldd r25, Z+3 ; 0x03
  2694. 12f6: 0a c0 rjmp .+20 ; 0x130c <__stack+0x20d>
  2695. 12f8: f2 e0 ldi r31, 0x02 ; 2
  2696. 12fa: af 0e add r10, r31
  2697. 12fc: b1 1c adc r11, r1
  2698. 12fe: f6 01 movw r30, r12
  2699. 1300: 60 81 ld r22, Z
  2700. 1302: 71 81 ldd r23, Z+1 ; 0x01
  2701. 1304: 88 27 eor r24, r24
  2702. 1306: 77 fd sbrc r23, 7
  2703. 1308: 80 95 com r24
  2704. 130a: 98 2f mov r25, r24
  2705. 130c: 02 2f mov r16, r18
  2706. 130e: 0f 76 andi r16, 0x6F ; 111
  2707. 1310: 97 ff sbrs r25, 7
  2708. 1312: 08 c0 rjmp .+16 ; 0x1324 <__stack+0x225>
  2709. 1314: 90 95 com r25
  2710. 1316: 80 95 com r24
  2711. 1318: 70 95 com r23
  2712. 131a: 61 95 neg r22
  2713. 131c: 7f 4f sbci r23, 0xFF ; 255
  2714. 131e: 8f 4f sbci r24, 0xFF ; 255
  2715. 1320: 9f 4f sbci r25, 0xFF ; 255
  2716. 1322: 00 68 ori r16, 0x80 ; 128
  2717. 1324: 2a e0 ldi r18, 0x0A ; 10
  2718. 1326: 30 e0 ldi r19, 0x00 ; 0
  2719. 1328: a4 01 movw r20, r8
  2720. 132a: 0e 94 1a 0c call 0x1834 ; 0x1834 <__ultoa_invert>
  2721. 132e: c8 2e mov r12, r24
  2722. 1330: c8 18 sub r12, r8
  2723. 1332: 3e c0 rjmp .+124 ; 0x13b0 <__stack+0x2b1>
  2724. 1334: 02 2f mov r16, r18
  2725. 1336: 85 37 cpi r24, 0x75 ; 117
  2726. 1338: 21 f4 brne .+8 ; 0x1342 <__stack+0x243>
  2727. 133a: 0f 7e andi r16, 0xEF ; 239
  2728. 133c: 2a e0 ldi r18, 0x0A ; 10
  2729. 133e: 30 e0 ldi r19, 0x00 ; 0
  2730. 1340: 1d c0 rjmp .+58 ; 0x137c <__stack+0x27d>
  2731. 1342: 09 7f andi r16, 0xF9 ; 249
  2732. 1344: 8f 36 cpi r24, 0x6F ; 111
  2733. 1346: 91 f0 breq .+36 ; 0x136c <__stack+0x26d>
  2734. 1348: 18 f4 brcc .+6 ; 0x1350 <__stack+0x251>
  2735. 134a: 88 35 cpi r24, 0x58 ; 88
  2736. 134c: 59 f0 breq .+22 ; 0x1364 <__stack+0x265>
  2737. 134e: b0 c0 rjmp .+352 ; 0x14b0 <__stack+0x3b1>
  2738. 1350: 80 37 cpi r24, 0x70 ; 112
  2739. 1352: 19 f0 breq .+6 ; 0x135a <__stack+0x25b>
  2740. 1354: 88 37 cpi r24, 0x78 ; 120
  2741. 1356: 11 f0 breq .+4 ; 0x135c <__stack+0x25d>
  2742. 1358: ab c0 rjmp .+342 ; 0x14b0 <__stack+0x3b1>
  2743. 135a: 00 61 ori r16, 0x10 ; 16
  2744. 135c: 04 ff sbrs r16, 4
  2745. 135e: 09 c0 rjmp .+18 ; 0x1372 <__stack+0x273>
  2746. 1360: 04 60 ori r16, 0x04 ; 4
  2747. 1362: 07 c0 rjmp .+14 ; 0x1372 <__stack+0x273>
  2748. 1364: 24 ff sbrs r18, 4
  2749. 1366: 08 c0 rjmp .+16 ; 0x1378 <__stack+0x279>
  2750. 1368: 06 60 ori r16, 0x06 ; 6
  2751. 136a: 06 c0 rjmp .+12 ; 0x1378 <__stack+0x279>
  2752. 136c: 28 e0 ldi r18, 0x08 ; 8
  2753. 136e: 30 e0 ldi r19, 0x00 ; 0
  2754. 1370: 05 c0 rjmp .+10 ; 0x137c <__stack+0x27d>
  2755. 1372: 20 e1 ldi r18, 0x10 ; 16
  2756. 1374: 30 e0 ldi r19, 0x00 ; 0
  2757. 1376: 02 c0 rjmp .+4 ; 0x137c <__stack+0x27d>
  2758. 1378: 20 e1 ldi r18, 0x10 ; 16
  2759. 137a: 32 e0 ldi r19, 0x02 ; 2
  2760. 137c: 56 01 movw r10, r12
  2761. 137e: 07 ff sbrs r16, 7
  2762. 1380: 09 c0 rjmp .+18 ; 0x1394 <__stack+0x295>
  2763. 1382: f4 e0 ldi r31, 0x04 ; 4
  2764. 1384: af 0e add r10, r31
  2765. 1386: b1 1c adc r11, r1
  2766. 1388: f6 01 movw r30, r12
  2767. 138a: 60 81 ld r22, Z
  2768. 138c: 71 81 ldd r23, Z+1 ; 0x01
  2769. 138e: 82 81 ldd r24, Z+2 ; 0x02
  2770. 1390: 93 81 ldd r25, Z+3 ; 0x03
  2771. 1392: 08 c0 rjmp .+16 ; 0x13a4 <__stack+0x2a5>
  2772. 1394: f2 e0 ldi r31, 0x02 ; 2
  2773. 1396: af 0e add r10, r31
  2774. 1398: b1 1c adc r11, r1
  2775. 139a: f6 01 movw r30, r12
  2776. 139c: 60 81 ld r22, Z
  2777. 139e: 71 81 ldd r23, Z+1 ; 0x01
  2778. 13a0: 80 e0 ldi r24, 0x00 ; 0
  2779. 13a2: 90 e0 ldi r25, 0x00 ; 0
  2780. 13a4: a4 01 movw r20, r8
  2781. 13a6: 0e 94 1a 0c call 0x1834 ; 0x1834 <__ultoa_invert>
  2782. 13aa: c8 2e mov r12, r24
  2783. 13ac: c8 18 sub r12, r8
  2784. 13ae: 0f 77 andi r16, 0x7F ; 127
  2785. 13b0: 06 ff sbrs r16, 6
  2786. 13b2: 0b c0 rjmp .+22 ; 0x13ca <__stack+0x2cb>
  2787. 13b4: 20 2f mov r18, r16
  2788. 13b6: 2e 7f andi r18, 0xFE ; 254
  2789. 13b8: c1 16 cp r12, r17
  2790. 13ba: 50 f4 brcc .+20 ; 0x13d0 <__stack+0x2d1>
  2791. 13bc: 04 ff sbrs r16, 4
  2792. 13be: 0a c0 rjmp .+20 ; 0x13d4 <__stack+0x2d5>
  2793. 13c0: 02 fd sbrc r16, 2
  2794. 13c2: 08 c0 rjmp .+16 ; 0x13d4 <__stack+0x2d5>
  2795. 13c4: 20 2f mov r18, r16
  2796. 13c6: 2e 7e andi r18, 0xEE ; 238
  2797. 13c8: 05 c0 rjmp .+10 ; 0x13d4 <__stack+0x2d5>
  2798. 13ca: dc 2c mov r13, r12
  2799. 13cc: 20 2f mov r18, r16
  2800. 13ce: 03 c0 rjmp .+6 ; 0x13d6 <__stack+0x2d7>
  2801. 13d0: dc 2c mov r13, r12
  2802. 13d2: 01 c0 rjmp .+2 ; 0x13d6 <__stack+0x2d7>
  2803. 13d4: d1 2e mov r13, r17
  2804. 13d6: 24 ff sbrs r18, 4
  2805. 13d8: 0d c0 rjmp .+26 ; 0x13f4 <__stack+0x2f5>
  2806. 13da: fe 01 movw r30, r28
  2807. 13dc: ec 0d add r30, r12
  2808. 13de: f1 1d adc r31, r1
  2809. 13e0: 80 81 ld r24, Z
  2810. 13e2: 80 33 cpi r24, 0x30 ; 48
  2811. 13e4: 11 f4 brne .+4 ; 0x13ea <__stack+0x2eb>
  2812. 13e6: 29 7e andi r18, 0xE9 ; 233
  2813. 13e8: 09 c0 rjmp .+18 ; 0x13fc <__stack+0x2fd>
  2814. 13ea: 22 ff sbrs r18, 2
  2815. 13ec: 06 c0 rjmp .+12 ; 0x13fa <__stack+0x2fb>
  2816. 13ee: d3 94 inc r13
  2817. 13f0: d3 94 inc r13
  2818. 13f2: 04 c0 rjmp .+8 ; 0x13fc <__stack+0x2fd>
  2819. 13f4: 82 2f mov r24, r18
  2820. 13f6: 86 78 andi r24, 0x86 ; 134
  2821. 13f8: 09 f0 breq .+2 ; 0x13fc <__stack+0x2fd>
  2822. 13fa: d3 94 inc r13
  2823. 13fc: 23 fd sbrc r18, 3
  2824. 13fe: 13 c0 rjmp .+38 ; 0x1426 <__stack+0x327>
  2825. 1400: 20 ff sbrs r18, 0
  2826. 1402: 06 c0 rjmp .+12 ; 0x1410 <__stack+0x311>
  2827. 1404: 1c 2d mov r17, r12
  2828. 1406: d5 14 cp r13, r5
  2829. 1408: 18 f4 brcc .+6 ; 0x1410 <__stack+0x311>
  2830. 140a: 15 0d add r17, r5
  2831. 140c: 1d 19 sub r17, r13
  2832. 140e: d5 2c mov r13, r5
  2833. 1410: d5 14 cp r13, r5
  2834. 1412: 68 f4 brcc .+26 ; 0x142e <__stack+0x32f>
  2835. 1414: b7 01 movw r22, r14
  2836. 1416: 80 e2 ldi r24, 0x20 ; 32
  2837. 1418: 90 e0 ldi r25, 0x00 ; 0
  2838. 141a: 2b 8b std Y+19, r18 ; 0x13
  2839. 141c: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2840. 1420: d3 94 inc r13
  2841. 1422: 2b 89 ldd r18, Y+19 ; 0x13
  2842. 1424: f5 cf rjmp .-22 ; 0x1410 <__stack+0x311>
  2843. 1426: d5 14 cp r13, r5
  2844. 1428: 10 f4 brcc .+4 ; 0x142e <__stack+0x32f>
  2845. 142a: 5d 18 sub r5, r13
  2846. 142c: 01 c0 rjmp .+2 ; 0x1430 <__stack+0x331>
  2847. 142e: 51 2c mov r5, r1
  2848. 1430: 24 ff sbrs r18, 4
  2849. 1432: 12 c0 rjmp .+36 ; 0x1458 <__stack+0x359>
  2850. 1434: b7 01 movw r22, r14
  2851. 1436: 80 e3 ldi r24, 0x30 ; 48
  2852. 1438: 90 e0 ldi r25, 0x00 ; 0
  2853. 143a: 2b 8b std Y+19, r18 ; 0x13
  2854. 143c: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2855. 1440: 2b 89 ldd r18, Y+19 ; 0x13
  2856. 1442: 22 ff sbrs r18, 2
  2857. 1444: 17 c0 rjmp .+46 ; 0x1474 <__stack+0x375>
  2858. 1446: 21 ff sbrs r18, 1
  2859. 1448: 03 c0 rjmp .+6 ; 0x1450 <__stack+0x351>
  2860. 144a: 88 e5 ldi r24, 0x58 ; 88
  2861. 144c: 90 e0 ldi r25, 0x00 ; 0
  2862. 144e: 02 c0 rjmp .+4 ; 0x1454 <__stack+0x355>
  2863. 1450: 88 e7 ldi r24, 0x78 ; 120
  2864. 1452: 90 e0 ldi r25, 0x00 ; 0
  2865. 1454: b7 01 movw r22, r14
  2866. 1456: 0c c0 rjmp .+24 ; 0x1470 <__stack+0x371>
  2867. 1458: 82 2f mov r24, r18
  2868. 145a: 86 78 andi r24, 0x86 ; 134
  2869. 145c: 59 f0 breq .+22 ; 0x1474 <__stack+0x375>
  2870. 145e: 21 fd sbrc r18, 1
  2871. 1460: 02 c0 rjmp .+4 ; 0x1466 <__stack+0x367>
  2872. 1462: 80 e2 ldi r24, 0x20 ; 32
  2873. 1464: 01 c0 rjmp .+2 ; 0x1468 <__stack+0x369>
  2874. 1466: 8b e2 ldi r24, 0x2B ; 43
  2875. 1468: 27 fd sbrc r18, 7
  2876. 146a: 8d e2 ldi r24, 0x2D ; 45
  2877. 146c: b7 01 movw r22, r14
  2878. 146e: 90 e0 ldi r25, 0x00 ; 0
  2879. 1470: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2880. 1474: c1 16 cp r12, r17
  2881. 1476: 38 f4 brcc .+14 ; 0x1486 <__stack+0x387>
  2882. 1478: b7 01 movw r22, r14
  2883. 147a: 80 e3 ldi r24, 0x30 ; 48
  2884. 147c: 90 e0 ldi r25, 0x00 ; 0
  2885. 147e: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2886. 1482: 11 50 subi r17, 0x01 ; 1
  2887. 1484: f7 cf rjmp .-18 ; 0x1474 <__stack+0x375>
  2888. 1486: ca 94 dec r12
  2889. 1488: f4 01 movw r30, r8
  2890. 148a: ec 0d add r30, r12
  2891. 148c: f1 1d adc r31, r1
  2892. 148e: 80 81 ld r24, Z
  2893. 1490: b7 01 movw r22, r14
  2894. 1492: 90 e0 ldi r25, 0x00 ; 0
  2895. 1494: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2896. 1498: c1 10 cpse r12, r1
  2897. 149a: f5 cf rjmp .-22 ; 0x1486 <__stack+0x387>
  2898. 149c: 55 20 and r5, r5
  2899. 149e: 09 f4 brne .+2 ; 0x14a2 <__stack+0x3a3>
  2900. 14a0: c2 cc rjmp .-1660 ; 0xe26 <vfprintf+0x58>
  2901. 14a2: b7 01 movw r22, r14
  2902. 14a4: 80 e2 ldi r24, 0x20 ; 32
  2903. 14a6: 90 e0 ldi r25, 0x00 ; 0
  2904. 14a8: 0e 94 87 0b call 0x170e ; 0x170e <fputc>
  2905. 14ac: 5a 94 dec r5
  2906. 14ae: f6 cf rjmp .-20 ; 0x149c <__stack+0x39d>
  2907. 14b0: f7 01 movw r30, r14
  2908. 14b2: 86 81 ldd r24, Z+6 ; 0x06
  2909. 14b4: 97 81 ldd r25, Z+7 ; 0x07
  2910. 14b6: 02 c0 rjmp .+4 ; 0x14bc <__stack+0x3bd>
  2911. 14b8: 8f ef ldi r24, 0xFF ; 255
  2912. 14ba: 9f ef ldi r25, 0xFF ; 255
  2913. 14bc: 63 96 adiw r28, 0x13 ; 19
  2914. 14be: e2 e1 ldi r30, 0x12 ; 18
  2915. 14c0: 0c 94 7e 0a jmp 0x14fc ; 0x14fc <__epilogue_restores__>
  2916. 000014c4 <__prologue_saves__>:
  2917. 14c4: 2f 92 push r2
  2918. 14c6: 3f 92 push r3
  2919. 14c8: 4f 92 push r4
  2920. 14ca: 5f 92 push r5
  2921. 14cc: 6f 92 push r6
  2922. 14ce: 7f 92 push r7
  2923. 14d0: 8f 92 push r8
  2924. 14d2: 9f 92 push r9
  2925. 14d4: af 92 push r10
  2926. 14d6: bf 92 push r11
  2927. 14d8: cf 92 push r12
  2928. 14da: df 92 push r13
  2929. 14dc: ef 92 push r14
  2930. 14de: ff 92 push r15
  2931. 14e0: 0f 93 push r16
  2932. 14e2: 1f 93 push r17
  2933. 14e4: cf 93 push r28
  2934. 14e6: df 93 push r29
  2935. 14e8: cd b7 in r28, 0x3d ; 61
  2936. 14ea: de b7 in r29, 0x3e ; 62
  2937. 14ec: ca 1b sub r28, r26
  2938. 14ee: db 0b sbc r29, r27
  2939. 14f0: 0f b6 in r0, 0x3f ; 63
  2940. 14f2: f8 94 cli
  2941. 14f4: de bf out 0x3e, r29 ; 62
  2942. 14f6: 0f be out 0x3f, r0 ; 63
  2943. 14f8: cd bf out 0x3d, r28 ; 61
  2944. 14fa: 09 94 ijmp
  2945. 000014fc <__epilogue_restores__>:
  2946. 14fc: 2a 88 ldd r2, Y+18 ; 0x12
  2947. 14fe: 39 88 ldd r3, Y+17 ; 0x11
  2948. 1500: 48 88 ldd r4, Y+16 ; 0x10
  2949. 1502: 5f 84 ldd r5, Y+15 ; 0x0f
  2950. 1504: 6e 84 ldd r6, Y+14 ; 0x0e
  2951. 1506: 7d 84 ldd r7, Y+13 ; 0x0d
  2952. 1508: 8c 84 ldd r8, Y+12 ; 0x0c
  2953. 150a: 9b 84 ldd r9, Y+11 ; 0x0b
  2954. 150c: aa 84 ldd r10, Y+10 ; 0x0a
  2955. 150e: b9 84 ldd r11, Y+9 ; 0x09
  2956. 1510: c8 84 ldd r12, Y+8 ; 0x08
  2957. 1512: df 80 ldd r13, Y+7 ; 0x07
  2958. 1514: ee 80 ldd r14, Y+6 ; 0x06
  2959. 1516: fd 80 ldd r15, Y+5 ; 0x05
  2960. 1518: 0c 81 ldd r16, Y+4 ; 0x04
  2961. 151a: 1b 81 ldd r17, Y+3 ; 0x03
  2962. 151c: aa 81 ldd r26, Y+2 ; 0x02
  2963. 151e: b9 81 ldd r27, Y+1 ; 0x01
  2964. 1520: ce 0f add r28, r30
  2965. 1522: d1 1d adc r29, r1
  2966. 1524: 0f b6 in r0, 0x3f ; 63
  2967. 1526: f8 94 cli
  2968. 1528: de bf out 0x3e, r29 ; 62
  2969. 152a: 0f be out 0x3f, r0 ; 63
  2970. 152c: cd bf out 0x3d, r28 ; 61
  2971. 152e: ed 01 movw r28, r26
  2972. 1530: 08 95 ret
  2973. 00001532 <__ftoa_engine>:
  2974. 1532: 28 30 cpi r18, 0x08 ; 8
  2975. 1534: 08 f0 brcs .+2 ; 0x1538 <__ftoa_engine+0x6>
  2976. 1536: 27 e0 ldi r18, 0x07 ; 7
  2977. 1538: 33 27 eor r19, r19
  2978. 153a: da 01 movw r26, r20
  2979. 153c: 99 0f add r25, r25
  2980. 153e: 31 1d adc r19, r1
  2981. 1540: 87 fd sbrc r24, 7
  2982. 1542: 91 60 ori r25, 0x01 ; 1
  2983. 1544: 00 96 adiw r24, 0x00 ; 0
  2984. 1546: 61 05 cpc r22, r1
  2985. 1548: 71 05 cpc r23, r1
  2986. 154a: 39 f4 brne .+14 ; 0x155a <__ftoa_engine+0x28>
  2987. 154c: 32 60 ori r19, 0x02 ; 2
  2988. 154e: 2e 5f subi r18, 0xFE ; 254
  2989. 1550: 3d 93 st X+, r19
  2990. 1552: 30 e3 ldi r19, 0x30 ; 48
  2991. 1554: 2a 95 dec r18
  2992. 1556: e1 f7 brne .-8 ; 0x1550 <__ftoa_engine+0x1e>
  2993. 1558: 08 95 ret
  2994. 155a: 9f 3f cpi r25, 0xFF ; 255
  2995. 155c: 30 f0 brcs .+12 ; 0x156a <__ftoa_engine+0x38>
  2996. 155e: 80 38 cpi r24, 0x80 ; 128
  2997. 1560: 71 05 cpc r23, r1
  2998. 1562: 61 05 cpc r22, r1
  2999. 1564: 09 f0 breq .+2 ; 0x1568 <__ftoa_engine+0x36>
  3000. 1566: 3c 5f subi r19, 0xFC ; 252
  3001. 1568: 3c 5f subi r19, 0xFC ; 252
  3002. 156a: 3d 93 st X+, r19
  3003. 156c: 91 30 cpi r25, 0x01 ; 1
  3004. 156e: 08 f0 brcs .+2 ; 0x1572 <__ftoa_engine+0x40>
  3005. 1570: 80 68 ori r24, 0x80 ; 128
  3006. 1572: 91 1d adc r25, r1
  3007. 1574: df 93 push r29
  3008. 1576: cf 93 push r28
  3009. 1578: 1f 93 push r17
  3010. 157a: 0f 93 push r16
  3011. 157c: ff 92 push r15
  3012. 157e: ef 92 push r14
  3013. 1580: 19 2f mov r17, r25
  3014. 1582: 98 7f andi r25, 0xF8 ; 248
  3015. 1584: 96 95 lsr r25
  3016. 1586: e9 2f mov r30, r25
  3017. 1588: 96 95 lsr r25
  3018. 158a: 96 95 lsr r25
  3019. 158c: e9 0f add r30, r25
  3020. 158e: ff 27 eor r31, r31
  3021. 1590: e2 52 subi r30, 0x22 ; 34
  3022. 1592: ff 4f sbci r31, 0xFF ; 255
  3023. 1594: 99 27 eor r25, r25
  3024. 1596: 33 27 eor r19, r19
  3025. 1598: ee 24 eor r14, r14
  3026. 159a: ff 24 eor r15, r15
  3027. 159c: a7 01 movw r20, r14
  3028. 159e: e7 01 movw r28, r14
  3029. 15a0: 05 90 lpm r0, Z+
  3030. 15a2: 08 94 sec
  3031. 15a4: 07 94 ror r0
  3032. 15a6: 28 f4 brcc .+10 ; 0x15b2 <__ftoa_engine+0x80>
  3033. 15a8: 36 0f add r19, r22
  3034. 15aa: e7 1e adc r14, r23
  3035. 15ac: f8 1e adc r15, r24
  3036. 15ae: 49 1f adc r20, r25
  3037. 15b0: 51 1d adc r21, r1
  3038. 15b2: 66 0f add r22, r22
  3039. 15b4: 77 1f adc r23, r23
  3040. 15b6: 88 1f adc r24, r24
  3041. 15b8: 99 1f adc r25, r25
  3042. 15ba: 06 94 lsr r0
  3043. 15bc: a1 f7 brne .-24 ; 0x15a6 <__ftoa_engine+0x74>
  3044. 15be: 05 90 lpm r0, Z+
  3045. 15c0: 07 94 ror r0
  3046. 15c2: 28 f4 brcc .+10 ; 0x15ce <__ftoa_engine+0x9c>
  3047. 15c4: e7 0e add r14, r23
  3048. 15c6: f8 1e adc r15, r24
  3049. 15c8: 49 1f adc r20, r25
  3050. 15ca: 56 1f adc r21, r22
  3051. 15cc: c1 1d adc r28, r1
  3052. 15ce: 77 0f add r23, r23
  3053. 15d0: 88 1f adc r24, r24
  3054. 15d2: 99 1f adc r25, r25
  3055. 15d4: 66 1f adc r22, r22
  3056. 15d6: 06 94 lsr r0
  3057. 15d8: a1 f7 brne .-24 ; 0x15c2 <__ftoa_engine+0x90>
  3058. 15da: 05 90 lpm r0, Z+
  3059. 15dc: 07 94 ror r0
  3060. 15de: 28 f4 brcc .+10 ; 0x15ea <__ftoa_engine+0xb8>
  3061. 15e0: f8 0e add r15, r24
  3062. 15e2: 49 1f adc r20, r25
  3063. 15e4: 56 1f adc r21, r22
  3064. 15e6: c7 1f adc r28, r23
  3065. 15e8: d1 1d adc r29, r1
  3066. 15ea: 88 0f add r24, r24
  3067. 15ec: 99 1f adc r25, r25
  3068. 15ee: 66 1f adc r22, r22
  3069. 15f0: 77 1f adc r23, r23
  3070. 15f2: 06 94 lsr r0
  3071. 15f4: a1 f7 brne .-24 ; 0x15de <__ftoa_engine+0xac>
  3072. 15f6: 05 90 lpm r0, Z+
  3073. 15f8: 07 94 ror r0
  3074. 15fa: 20 f4 brcc .+8 ; 0x1604 <__ftoa_engine+0xd2>
  3075. 15fc: 49 0f add r20, r25
  3076. 15fe: 56 1f adc r21, r22
  3077. 1600: c7 1f adc r28, r23
  3078. 1602: d8 1f adc r29, r24
  3079. 1604: 99 0f add r25, r25
  3080. 1606: 66 1f adc r22, r22
  3081. 1608: 77 1f adc r23, r23
  3082. 160a: 88 1f adc r24, r24
  3083. 160c: 06 94 lsr r0
  3084. 160e: a9 f7 brne .-22 ; 0x15fa <__ftoa_engine+0xc8>
  3085. 1610: 84 91 lpm r24, Z
  3086. 1612: 10 95 com r17
  3087. 1614: 17 70 andi r17, 0x07 ; 7
  3088. 1616: 41 f0 breq .+16 ; 0x1628 <__ftoa_engine+0xf6>
  3089. 1618: d6 95 lsr r29
  3090. 161a: c7 95 ror r28
  3091. 161c: 57 95 ror r21
  3092. 161e: 47 95 ror r20
  3093. 1620: f7 94 ror r15
  3094. 1622: e7 94 ror r14
  3095. 1624: 1a 95 dec r17
  3096. 1626: c1 f7 brne .-16 ; 0x1618 <__ftoa_engine+0xe6>
  3097. 1628: e4 e8 ldi r30, 0x84 ; 132
  3098. 162a: f0 e0 ldi r31, 0x00 ; 0
  3099. 162c: 68 94 set
  3100. 162e: 15 90 lpm r1, Z+
  3101. 1630: 15 91 lpm r17, Z+
  3102. 1632: 35 91 lpm r19, Z+
  3103. 1634: 65 91 lpm r22, Z+
  3104. 1636: 95 91 lpm r25, Z+
  3105. 1638: 05 90 lpm r0, Z+
  3106. 163a: 7f e2 ldi r23, 0x2F ; 47
  3107. 163c: 73 95 inc r23
  3108. 163e: e1 18 sub r14, r1
  3109. 1640: f1 0a sbc r15, r17
  3110. 1642: 43 0b sbc r20, r19
  3111. 1644: 56 0b sbc r21, r22
  3112. 1646: c9 0b sbc r28, r25
  3113. 1648: d0 09 sbc r29, r0
  3114. 164a: c0 f7 brcc .-16 ; 0x163c <__ftoa_engine+0x10a>
  3115. 164c: e1 0c add r14, r1
  3116. 164e: f1 1e adc r15, r17
  3117. 1650: 43 1f adc r20, r19
  3118. 1652: 56 1f adc r21, r22
  3119. 1654: c9 1f adc r28, r25
  3120. 1656: d0 1d adc r29, r0
  3121. 1658: 7e f4 brtc .+30 ; 0x1678 <__ftoa_engine+0x146>
  3122. 165a: 70 33 cpi r23, 0x30 ; 48
  3123. 165c: 11 f4 brne .+4 ; 0x1662 <__ftoa_engine+0x130>
  3124. 165e: 8a 95 dec r24
  3125. 1660: e6 cf rjmp .-52 ; 0x162e <__ftoa_engine+0xfc>
  3126. 1662: e8 94 clt
  3127. 1664: 01 50 subi r16, 0x01 ; 1
  3128. 1666: 30 f0 brcs .+12 ; 0x1674 <__ftoa_engine+0x142>
  3129. 1668: 08 0f add r16, r24
  3130. 166a: 0a f4 brpl .+2 ; 0x166e <__ftoa_engine+0x13c>
  3131. 166c: 00 27 eor r16, r16
  3132. 166e: 02 17 cp r16, r18
  3133. 1670: 08 f4 brcc .+2 ; 0x1674 <__ftoa_engine+0x142>
  3134. 1672: 20 2f mov r18, r16
  3135. 1674: 23 95 inc r18
  3136. 1676: 02 2f mov r16, r18
  3137. 1678: 7a 33 cpi r23, 0x3A ; 58
  3138. 167a: 28 f0 brcs .+10 ; 0x1686 <__ftoa_engine+0x154>
  3139. 167c: 79 e3 ldi r23, 0x39 ; 57
  3140. 167e: 7d 93 st X+, r23
  3141. 1680: 2a 95 dec r18
  3142. 1682: e9 f7 brne .-6 ; 0x167e <__ftoa_engine+0x14c>
  3143. 1684: 10 c0 rjmp .+32 ; 0x16a6 <__ftoa_engine+0x174>
  3144. 1686: 7d 93 st X+, r23
  3145. 1688: 2a 95 dec r18
  3146. 168a: 89 f6 brne .-94 ; 0x162e <__ftoa_engine+0xfc>
  3147. 168c: 06 94 lsr r0
  3148. 168e: 97 95 ror r25
  3149. 1690: 67 95 ror r22
  3150. 1692: 37 95 ror r19
  3151. 1694: 17 95 ror r17
  3152. 1696: 17 94 ror r1
  3153. 1698: e1 18 sub r14, r1
  3154. 169a: f1 0a sbc r15, r17
  3155. 169c: 43 0b sbc r20, r19
  3156. 169e: 56 0b sbc r21, r22
  3157. 16a0: c9 0b sbc r28, r25
  3158. 16a2: d0 09 sbc r29, r0
  3159. 16a4: 98 f0 brcs .+38 ; 0x16cc <__ftoa_engine+0x19a>
  3160. 16a6: 23 95 inc r18
  3161. 16a8: 7e 91 ld r23, -X
  3162. 16aa: 73 95 inc r23
  3163. 16ac: 7a 33 cpi r23, 0x3A ; 58
  3164. 16ae: 08 f0 brcs .+2 ; 0x16b2 <__ftoa_engine+0x180>
  3165. 16b0: 70 e3 ldi r23, 0x30 ; 48
  3166. 16b2: 7c 93 st X, r23
  3167. 16b4: 20 13 cpse r18, r16
  3168. 16b6: b8 f7 brcc .-18 ; 0x16a6 <__ftoa_engine+0x174>
  3169. 16b8: 7e 91 ld r23, -X
  3170. 16ba: 70 61 ori r23, 0x10 ; 16
  3171. 16bc: 7d 93 st X+, r23
  3172. 16be: 30 f0 brcs .+12 ; 0x16cc <__ftoa_engine+0x19a>
  3173. 16c0: 83 95 inc r24
  3174. 16c2: 71 e3 ldi r23, 0x31 ; 49
  3175. 16c4: 7d 93 st X+, r23
  3176. 16c6: 70 e3 ldi r23, 0x30 ; 48
  3177. 16c8: 2a 95 dec r18
  3178. 16ca: e1 f7 brne .-8 ; 0x16c4 <__ftoa_engine+0x192>
  3179. 16cc: 11 24 eor r1, r1
  3180. 16ce: ef 90 pop r14
  3181. 16d0: ff 90 pop r15
  3182. 16d2: 0f 91 pop r16
  3183. 16d4: 1f 91 pop r17
  3184. 16d6: cf 91 pop r28
  3185. 16d8: df 91 pop r29
  3186. 16da: 99 27 eor r25, r25
  3187. 16dc: 87 fd sbrc r24, 7
  3188. 16de: 90 95 com r25
  3189. 16e0: 08 95 ret
  3190. 000016e2 <strnlen_P>:
  3191. 16e2: fc 01 movw r30, r24
  3192. 16e4: 05 90 lpm r0, Z+
  3193. 16e6: 61 50 subi r22, 0x01 ; 1
  3194. 16e8: 70 40 sbci r23, 0x00 ; 0
  3195. 16ea: 01 10 cpse r0, r1
  3196. 16ec: d8 f7 brcc .-10 ; 0x16e4 <strnlen_P+0x2>
  3197. 16ee: 80 95 com r24
  3198. 16f0: 90 95 com r25
  3199. 16f2: 8e 0f add r24, r30
  3200. 16f4: 9f 1f adc r25, r31
  3201. 16f6: 08 95 ret
  3202. 000016f8 <strnlen>:
  3203. 16f8: fc 01 movw r30, r24
  3204. 16fa: 61 50 subi r22, 0x01 ; 1
  3205. 16fc: 70 40 sbci r23, 0x00 ; 0
  3206. 16fe: 01 90 ld r0, Z+
  3207. 1700: 01 10 cpse r0, r1
  3208. 1702: d8 f7 brcc .-10 ; 0x16fa <strnlen+0x2>
  3209. 1704: 80 95 com r24
  3210. 1706: 90 95 com r25
  3211. 1708: 8e 0f add r24, r30
  3212. 170a: 9f 1f adc r25, r31
  3213. 170c: 08 95 ret
  3214. 0000170e <fputc>:
  3215. 170e: 0f 93 push r16
  3216. 1710: 1f 93 push r17
  3217. 1712: cf 93 push r28
  3218. 1714: df 93 push r29
  3219. 1716: 18 2f mov r17, r24
  3220. 1718: 09 2f mov r16, r25
  3221. 171a: eb 01 movw r28, r22
  3222. 171c: 8b 81 ldd r24, Y+3 ; 0x03
  3223. 171e: 81 fd sbrc r24, 1
  3224. 1720: 03 c0 rjmp .+6 ; 0x1728 <fputc+0x1a>
  3225. 1722: 8f ef ldi r24, 0xFF ; 255
  3226. 1724: 9f ef ldi r25, 0xFF ; 255
  3227. 1726: 20 c0 rjmp .+64 ; 0x1768 <fputc+0x5a>
  3228. 1728: 82 ff sbrs r24, 2
  3229. 172a: 10 c0 rjmp .+32 ; 0x174c <fputc+0x3e>
  3230. 172c: 4e 81 ldd r20, Y+6 ; 0x06
  3231. 172e: 5f 81 ldd r21, Y+7 ; 0x07
  3232. 1730: 2c 81 ldd r18, Y+4 ; 0x04
  3233. 1732: 3d 81 ldd r19, Y+5 ; 0x05
  3234. 1734: 42 17 cp r20, r18
  3235. 1736: 53 07 cpc r21, r19
  3236. 1738: 7c f4 brge .+30 ; 0x1758 <fputc+0x4a>
  3237. 173a: e8 81 ld r30, Y
  3238. 173c: f9 81 ldd r31, Y+1 ; 0x01
  3239. 173e: 9f 01 movw r18, r30
  3240. 1740: 2f 5f subi r18, 0xFF ; 255
  3241. 1742: 3f 4f sbci r19, 0xFF ; 255
  3242. 1744: 39 83 std Y+1, r19 ; 0x01
  3243. 1746: 28 83 st Y, r18
  3244. 1748: 10 83 st Z, r17
  3245. 174a: 06 c0 rjmp .+12 ; 0x1758 <fputc+0x4a>
  3246. 174c: e8 85 ldd r30, Y+8 ; 0x08
  3247. 174e: f9 85 ldd r31, Y+9 ; 0x09
  3248. 1750: 81 2f mov r24, r17
  3249. 1752: 09 95 icall
  3250. 1754: 89 2b or r24, r25
  3251. 1756: 29 f7 brne .-54 ; 0x1722 <fputc+0x14>
  3252. 1758: 2e 81 ldd r18, Y+6 ; 0x06
  3253. 175a: 3f 81 ldd r19, Y+7 ; 0x07
  3254. 175c: 2f 5f subi r18, 0xFF ; 255
  3255. 175e: 3f 4f sbci r19, 0xFF ; 255
  3256. 1760: 3f 83 std Y+7, r19 ; 0x07
  3257. 1762: 2e 83 std Y+6, r18 ; 0x06
  3258. 1764: 81 2f mov r24, r17
  3259. 1766: 90 2f mov r25, r16
  3260. 1768: df 91 pop r29
  3261. 176a: cf 91 pop r28
  3262. 176c: 1f 91 pop r17
  3263. 176e: 0f 91 pop r16
  3264. 1770: 08 95 ret
  3265. 00001772 <fwrite>:
  3266. 1772: a0 e0 ldi r26, 0x00 ; 0
  3267. 1774: b0 e0 ldi r27, 0x00 ; 0
  3268. 1776: ef eb ldi r30, 0xBF ; 191
  3269. 1778: fb e0 ldi r31, 0x0B ; 11
  3270. 177a: 0c 94 68 0a jmp 0x14d0 ; 0x14d0 <__prologue_saves__+0xc>
  3271. 177e: 6b 01 movw r12, r22
  3272. 1780: 4a 01 movw r8, r20
  3273. 1782: 79 01 movw r14, r18
  3274. 1784: d9 01 movw r26, r18
  3275. 1786: 13 96 adiw r26, 0x03 ; 3
  3276. 1788: 2c 91 ld r18, X
  3277. 178a: 21 ff sbrs r18, 1
  3278. 178c: 1d c0 rjmp .+58 ; 0x17c8 <fwrite+0x56>
  3279. 178e: c0 e0 ldi r28, 0x00 ; 0
  3280. 1790: d0 e0 ldi r29, 0x00 ; 0
  3281. 1792: c8 15 cp r28, r8
  3282. 1794: d9 05 cpc r29, r9
  3283. 1796: d9 f0 breq .+54 ; 0x17ce <fwrite+0x5c>
  3284. 1798: 8c 01 movw r16, r24
  3285. 179a: 5c 01 movw r10, r24
  3286. 179c: ac 0c add r10, r12
  3287. 179e: bd 1c adc r11, r13
  3288. 17a0: c8 01 movw r24, r16
  3289. 17a2: 0a 15 cp r16, r10
  3290. 17a4: 1b 05 cpc r17, r11
  3291. 17a6: 71 f0 breq .+28 ; 0x17c4 <fwrite+0x52>
  3292. 17a8: 0f 5f subi r16, 0xFF ; 255
  3293. 17aa: 1f 4f sbci r17, 0xFF ; 255
  3294. 17ac: d7 01 movw r26, r14
  3295. 17ae: 18 96 adiw r26, 0x08 ; 8
  3296. 17b0: ed 91 ld r30, X+
  3297. 17b2: fc 91 ld r31, X
  3298. 17b4: 19 97 sbiw r26, 0x09 ; 9
  3299. 17b6: b7 01 movw r22, r14
  3300. 17b8: dc 01 movw r26, r24
  3301. 17ba: 8c 91 ld r24, X
  3302. 17bc: 09 95 icall
  3303. 17be: 89 2b or r24, r25
  3304. 17c0: 79 f3 breq .-34 ; 0x17a0 <fwrite+0x2e>
  3305. 17c2: 05 c0 rjmp .+10 ; 0x17ce <fwrite+0x5c>
  3306. 17c4: 21 96 adiw r28, 0x01 ; 1
  3307. 17c6: e5 cf rjmp .-54 ; 0x1792 <fwrite+0x20>
  3308. 17c8: 80 e0 ldi r24, 0x00 ; 0
  3309. 17ca: 90 e0 ldi r25, 0x00 ; 0
  3310. 17cc: 01 c0 rjmp .+2 ; 0x17d0 <fwrite+0x5e>
  3311. 17ce: ce 01 movw r24, r28
  3312. 17d0: cd b7 in r28, 0x3d ; 61
  3313. 17d2: de b7 in r29, 0x3e ; 62
  3314. 17d4: ec e0 ldi r30, 0x0C ; 12
  3315. 17d6: 0c 94 84 0a jmp 0x1508 ; 0x1508 <__epilogue_restores__+0xc>
  3316. 000017da <puts>:
  3317. 17da: 0f 93 push r16
  3318. 17dc: 1f 93 push r17
  3319. 17de: cf 93 push r28
  3320. 17e0: df 93 push r29
  3321. 17e2: e0 91 d6 01 lds r30, 0x01D6
  3322. 17e6: f0 91 d7 01 lds r31, 0x01D7
  3323. 17ea: 23 81 ldd r18, Z+3 ; 0x03
  3324. 17ec: 21 ff sbrs r18, 1
  3325. 17ee: 1b c0 rjmp .+54 ; 0x1826 <puts+0x4c>
  3326. 17f0: ec 01 movw r28, r24
  3327. 17f2: 00 e0 ldi r16, 0x00 ; 0
  3328. 17f4: 10 e0 ldi r17, 0x00 ; 0
  3329. 17f6: 89 91 ld r24, Y+
  3330. 17f8: 60 91 d6 01 lds r22, 0x01D6
  3331. 17fc: 70 91 d7 01 lds r23, 0x01D7
  3332. 1800: db 01 movw r26, r22
  3333. 1802: 18 96 adiw r26, 0x08 ; 8
  3334. 1804: ed 91 ld r30, X+
  3335. 1806: fc 91 ld r31, X
  3336. 1808: 19 97 sbiw r26, 0x09 ; 9
  3337. 180a: 88 23 and r24, r24
  3338. 180c: 31 f0 breq .+12 ; 0x181a <puts+0x40>
  3339. 180e: 09 95 icall
  3340. 1810: 89 2b or r24, r25
  3341. 1812: 89 f3 breq .-30 ; 0x17f6 <puts+0x1c>
  3342. 1814: 0f ef ldi r16, 0xFF ; 255
  3343. 1816: 1f ef ldi r17, 0xFF ; 255
  3344. 1818: ee cf rjmp .-36 ; 0x17f6 <puts+0x1c>
  3345. 181a: 8a e0 ldi r24, 0x0A ; 10
  3346. 181c: 09 95 icall
  3347. 181e: 89 2b or r24, r25
  3348. 1820: 11 f4 brne .+4 ; 0x1826 <puts+0x4c>
  3349. 1822: c8 01 movw r24, r16
  3350. 1824: 02 c0 rjmp .+4 ; 0x182a <puts+0x50>
  3351. 1826: 8f ef ldi r24, 0xFF ; 255
  3352. 1828: 9f ef ldi r25, 0xFF ; 255
  3353. 182a: df 91 pop r29
  3354. 182c: cf 91 pop r28
  3355. 182e: 1f 91 pop r17
  3356. 1830: 0f 91 pop r16
  3357. 1832: 08 95 ret
  3358. 00001834 <__ultoa_invert>:
  3359. 1834: fa 01 movw r30, r20
  3360. 1836: aa 27 eor r26, r26
  3361. 1838: 28 30 cpi r18, 0x08 ; 8
  3362. 183a: 51 f1 breq .+84 ; 0x1890 <__ultoa_invert+0x5c>
  3363. 183c: 20 31 cpi r18, 0x10 ; 16
  3364. 183e: 81 f1 breq .+96 ; 0x18a0 <__ultoa_invert+0x6c>
  3365. 1840: e8 94 clt
  3366. 1842: 6f 93 push r22
  3367. 1844: 6e 7f andi r22, 0xFE ; 254
  3368. 1846: 6e 5f subi r22, 0xFE ; 254
  3369. 1848: 7f 4f sbci r23, 0xFF ; 255
  3370. 184a: 8f 4f sbci r24, 0xFF ; 255
  3371. 184c: 9f 4f sbci r25, 0xFF ; 255
  3372. 184e: af 4f sbci r26, 0xFF ; 255
  3373. 1850: b1 e0 ldi r27, 0x01 ; 1
  3374. 1852: 3e d0 rcall .+124 ; 0x18d0 <__ultoa_invert+0x9c>
  3375. 1854: b4 e0 ldi r27, 0x04 ; 4
  3376. 1856: 3c d0 rcall .+120 ; 0x18d0 <__ultoa_invert+0x9c>
  3377. 1858: 67 0f add r22, r23
  3378. 185a: 78 1f adc r23, r24
  3379. 185c: 89 1f adc r24, r25
  3380. 185e: 9a 1f adc r25, r26
  3381. 1860: a1 1d adc r26, r1
  3382. 1862: 68 0f add r22, r24
  3383. 1864: 79 1f adc r23, r25
  3384. 1866: 8a 1f adc r24, r26
  3385. 1868: 91 1d adc r25, r1
  3386. 186a: a1 1d adc r26, r1
  3387. 186c: 6a 0f add r22, r26
  3388. 186e: 71 1d adc r23, r1
  3389. 1870: 81 1d adc r24, r1
  3390. 1872: 91 1d adc r25, r1
  3391. 1874: a1 1d adc r26, r1
  3392. 1876: 20 d0 rcall .+64 ; 0x18b8 <__ultoa_invert+0x84>
  3393. 1878: 09 f4 brne .+2 ; 0x187c <__ultoa_invert+0x48>
  3394. 187a: 68 94 set
  3395. 187c: 3f 91 pop r19
  3396. 187e: 2a e0 ldi r18, 0x0A ; 10
  3397. 1880: 26 9f mul r18, r22
  3398. 1882: 11 24 eor r1, r1
  3399. 1884: 30 19 sub r19, r0
  3400. 1886: 30 5d subi r19, 0xD0 ; 208
  3401. 1888: 31 93 st Z+, r19
  3402. 188a: de f6 brtc .-74 ; 0x1842 <__ultoa_invert+0xe>
  3403. 188c: cf 01 movw r24, r30
  3404. 188e: 08 95 ret
  3405. 1890: 46 2f mov r20, r22
  3406. 1892: 47 70 andi r20, 0x07 ; 7
  3407. 1894: 40 5d subi r20, 0xD0 ; 208
  3408. 1896: 41 93 st Z+, r20
  3409. 1898: b3 e0 ldi r27, 0x03 ; 3
  3410. 189a: 0f d0 rcall .+30 ; 0x18ba <__ultoa_invert+0x86>
  3411. 189c: c9 f7 brne .-14 ; 0x1890 <__ultoa_invert+0x5c>
  3412. 189e: f6 cf rjmp .-20 ; 0x188c <__ultoa_invert+0x58>
  3413. 18a0: 46 2f mov r20, r22
  3414. 18a2: 4f 70 andi r20, 0x0F ; 15
  3415. 18a4: 40 5d subi r20, 0xD0 ; 208
  3416. 18a6: 4a 33 cpi r20, 0x3A ; 58
  3417. 18a8: 18 f0 brcs .+6 ; 0x18b0 <__ultoa_invert+0x7c>
  3418. 18aa: 49 5d subi r20, 0xD9 ; 217
  3419. 18ac: 31 fd sbrc r19, 1
  3420. 18ae: 40 52 subi r20, 0x20 ; 32
  3421. 18b0: 41 93 st Z+, r20
  3422. 18b2: 02 d0 rcall .+4 ; 0x18b8 <__ultoa_invert+0x84>
  3423. 18b4: a9 f7 brne .-22 ; 0x18a0 <__ultoa_invert+0x6c>
  3424. 18b6: ea cf rjmp .-44 ; 0x188c <__ultoa_invert+0x58>
  3425. 18b8: b4 e0 ldi r27, 0x04 ; 4
  3426. 18ba: a6 95 lsr r26
  3427. 18bc: 97 95 ror r25
  3428. 18be: 87 95 ror r24
  3429. 18c0: 77 95 ror r23
  3430. 18c2: 67 95 ror r22
  3431. 18c4: ba 95 dec r27
  3432. 18c6: c9 f7 brne .-14 ; 0x18ba <__ultoa_invert+0x86>
  3433. 18c8: 00 97 sbiw r24, 0x00 ; 0
  3434. 18ca: 61 05 cpc r22, r1
  3435. 18cc: 71 05 cpc r23, r1
  3436. 18ce: 08 95 ret
  3437. 18d0: 9b 01 movw r18, r22
  3438. 18d2: ac 01 movw r20, r24
  3439. 18d4: 0a 2e mov r0, r26
  3440. 18d6: 06 94 lsr r0
  3441. 18d8: 57 95 ror r21
  3442. 18da: 47 95 ror r20
  3443. 18dc: 37 95 ror r19
  3444. 18de: 27 95 ror r18
  3445. 18e0: ba 95 dec r27
  3446. 18e2: c9 f7 brne .-14 ; 0x18d6 <__ultoa_invert+0xa2>
  3447. 18e4: 62 0f add r22, r18
  3448. 18e6: 73 1f adc r23, r19
  3449. 18e8: 84 1f adc r24, r20
  3450. 18ea: 95 1f adc r25, r21
  3451. 18ec: a0 1d adc r26, r0
  3452. 18ee: 08 95 ret
  3453. 000018f0 <_exit>:
  3454. 18f0: f8 94 cli
  3455. 000018f2 <__stop_program>:
  3456. 18f2: ff cf rjmp .-2 ; 0x18f2 <__stop_program>