fat.lst 114 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241
  1. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 1
  2. 1 .file "fat.c"
  3. 2 .arch atmega2561
  4. 3 __SREG__ = 0x3f
  5. 4 __SP_H__ = 0x3e
  6. 5 __SP_L__ = 0x3d
  7. 6 __tmp_reg__ = 0
  8. 7 __zero_reg__ = 1
  9. 8 .global __do_copy_data
  10. 9 .global __do_clear_bss
  11. 10 .text
  12. 11 .global FATRelease
  13. 12 .type FATRelease, @function
  14. 13 FATRelease:
  15. 14 /* prologue: frame size=0 */
  16. 15 /* prologue end (size=0) */
  17. 16 0000 1092 0000 sts (nIsInit)+1,__zero_reg__
  18. 17 0004 1092 0000 sts nIsInit,__zero_reg__
  19. 18 /* epilogue: frame size=0 */
  20. 19 0008 0895 ret
  21. 20 /* epilogue end (size=1) */
  22. 21 /* function FATRelease size 5 (4) */
  23. 22 .size FATRelease, .-FATRelease
  24. 23 .type GetFirstSectorOfCluster, @function
  25. 24 GetFirstSectorOfCluster:
  26. 25 /* prologue: frame size=0 */
  27. 26 000a EF92 push r14
  28. 27 000c FF92 push r15
  29. 28 000e 0F93 push r16
  30. 29 0010 1F93 push r17
  31. 30 0012 CF93 push r28
  32. 31 0014 DF93 push r29
  33. 32 /* prologue end (size=6) */
  34. 33 0016 EC01 movw r28,r24
  35. 34 0018 7A01 movw r14,r20
  36. 35 001a 8B01 movw r16,r22
  37. 36 001c 8B81 ldd r24,Y+3
  38. 37 001e 80FD sbrc r24,0
  39. 38 0020 00C0 rjmp .L6
  40. 39 0022 8EEF ldi r24,lo8(-2)
  41. 40 0024 9FEF ldi r25,hi8(-2)
  42. 41 0026 AFEF ldi r26,hlo8(-2)
  43. 42 0028 BFEF ldi r27,hhi8(-2)
  44. 43 002a E80E add r14,r24
  45. 44 002c F91E adc r15,r25
  46. 45 002e 0A1F adc r16,r26
  47. 46 0030 1B1F adc r17,r27
  48. 47 0032 2A81 ldd r18,Y+2
  49. 48 0034 3327 clr r19
  50. 49 0036 4427 clr r20
  51. 50 0038 5527 clr r21
  52. 51 003a C801 movw r24,r16
  53. 52 003c B701 movw r22,r14
  54. 53 003e 0E94 0000 call __mulsi3
  55. 54 0042 AB01 movw r20,r22
  56. 55 0044 BC01 movw r22,r24
  57. 56 0046 8A8D ldd r24,Y+26
  58. 57 0048 9B8D ldd r25,Y+27
  59. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 2
  60. 58 004a AC8D ldd r26,Y+28
  61. 59 004c BD8D ldd r27,Y+29
  62. 60 004e 480F add r20,r24
  63. 61 0050 591F adc r21,r25
  64. 62 0052 6A1F adc r22,r26
  65. 63 0054 7B1F adc r23,r27
  66. 64 .L6:
  67. 65 0056 CB01 movw r24,r22
  68. 66 0058 BA01 movw r22,r20
  69. 67 /* epilogue: frame size=0 */
  70. 68 005a DF91 pop r29
  71. 69 005c CF91 pop r28
  72. 70 005e 1F91 pop r17
  73. 71 0060 0F91 pop r16
  74. 72 0062 FF90 pop r15
  75. 73 0064 EF90 pop r14
  76. 74 0066 0895 ret
  77. 75 /* epilogue end (size=7) */
  78. 76 /* function GetFirstSectorOfCluster size 47 (34) */
  79. 77 .size GetFirstSectorOfCluster, .-GetFirstSectorOfCluster
  80. 78 .type FATFileWrite, @function
  81. 79 FATFileWrite:
  82. 80 /* prologue: frame size=0 */
  83. 81 /* prologue end (size=0) */
  84. 82 0068 8FEF ldi r24,lo8(-1)
  85. 83 006a 9FEF ldi r25,hi8(-1)
  86. 84 /* epilogue: frame size=0 */
  87. 85 006c 0895 ret
  88. 86 /* epilogue end (size=1) */
  89. 87 /* function FATFileWrite size 3 (2) */
  90. 88 .size FATFileWrite, .-FATFileWrite
  91. 89 .type FATFileWriteP, @function
  92. 90 FATFileWriteP:
  93. 91 /* prologue: frame size=0 */
  94. 92 /* prologue end (size=0) */
  95. 93 006e 8FEF ldi r24,lo8(-1)
  96. 94 0070 9FEF ldi r25,hi8(-1)
  97. 95 /* epilogue: frame size=0 */
  98. 96 0072 0895 ret
  99. 97 /* epilogue end (size=1) */
  100. 98 /* function FATFileWriteP size 3 (2) */
  101. 99 .size FATFileWriteP, .-FATFileWriteP
  102. 100 .type GetLongChar, @function
  103. 101 GetLongChar:
  104. 102 /* prologue: frame size=0 */
  105. 103 /* prologue end (size=0) */
  106. 104 0074 282F mov r18,r24
  107. 105 0076 8F3F cpi r24,lo8(-1)
  108. 106 0078 01F4 brne .L13
  109. 107 007a 20E0 ldi r18,lo8(0)
  110. 108 007c 00C0 rjmp .L15
  111. 109 .L13:
  112. 110 007e 8823 tst r24
  113. 111 0080 01F0 breq .L15
  114. 112 0082 9927 clr r25
  115. 113 0084 0E94 0000 call toupper
  116. 114 0088 282F mov r18,r24
  117. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 3
  118. 115 .L15:
  119. 116 008a 822F mov r24,r18
  120. 117 008c 9927 clr r25
  121. 118 008e 87FD sbrc r24,7
  122. 119 0090 9095 com r25
  123. 120 /* epilogue: frame size=0 */
  124. 121 0092 0895 ret
  125. 122 /* epilogue end (size=1) */
  126. 123 /* function GetLongChar size 16 (15) */
  127. 124 .size GetLongChar, .-GetLongChar
  128. 125 .type GetNextCluster, @function
  129. 126 GetNextCluster:
  130. 127 /* prologue: frame size=0 */
  131. 128 0094 8F92 push r8
  132. 129 0096 9F92 push r9
  133. 130 0098 AF92 push r10
  134. 131 009a BF92 push r11
  135. 132 009c CF92 push r12
  136. 133 009e DF92 push r13
  137. 134 00a0 EF92 push r14
  138. 135 00a2 FF92 push r15
  139. 136 00a4 0F93 push r16
  140. 137 00a6 1F93 push r17
  141. 138 /* prologue end (size=10) */
  142. 139 00a8 FC01 movw r30,r24
  143. 140 00aa 6A01 movw r12,r20
  144. 141 00ac 7B01 movw r14,r22
  145. 142 00ae 8381 ldd r24,Z+3
  146. 143 00b0 80FF sbrs r24,0
  147. 144 00b2 00C0 rjmp .L19
  148. 145 00b4 CB01 movw r24,r22
  149. 146 00b6 BA01 movw r22,r20
  150. 147 00b8 6F5F subi r22,lo8(-(1))
  151. 148 00ba 7F4F sbci r23,hi8(-(1))
  152. 149 00bc 8F4F sbci r24,hlo8(-(1))
  153. 150 00be 9F4F sbci r25,hhi8(-(1))
  154. 151 00c0 00C0 rjmp .L21
  155. 152 .L19:
  156. 153 00c2 8081 ld r24,Z
  157. 154 00c4 8288 ldd r8,Z+18
  158. 155 00c6 9388 ldd r9,Z+19
  159. 156 00c8 A488 ldd r10,Z+20
  160. 157 00ca B588 ldd r11,Z+21
  161. 158 00cc 6091 0000 lds r22,pSectorBuffer
  162. 159 00d0 7091 0000 lds r23,(pSectorBuffer)+1
  163. 160 00d4 8130 cpi r24,lo8(1)
  164. 161 00d6 01F4 brne .L22
  165. 162 00d8 A701 movw r20,r14
  166. 163 00da 9601 movw r18,r12
  167. 164 00dc A7E0 ldi r26,7
  168. 165 00de 5695 1: lsr r21
  169. 166 00e0 4795 ror r20
  170. 167 00e2 3795 ror r19
  171. 168 00e4 2795 ror r18
  172. 169 00e6 AA95 dec r26
  173. 170 00e8 01F4 brne 1b
  174. 171 00ea 280D add r18,r8
  175. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 4
  176. 172 00ec 391D adc r19,r9
  177. 173 00ee 4A1D adc r20,r10
  178. 174 00f0 5B1D adc r21,r11
  179. 175 00f2 01E0 ldi r16,lo8(1)
  180. 176 00f4 10E0 ldi r17,hi8(1)
  181. 177 00f6 8181 ldd r24,Z+1
  182. 178 00f8 0E94 0000 call MMCReadSectors
  183. 179 00fc 8091 0000 lds r24,pSectorBuffer
  184. 180 0100 9091 0000 lds r25,(pSectorBuffer)+1
  185. 181 0104 F601 movw r30,r12
  186. 182 0106 EF77 andi r30,lo8(127)
  187. 183 0108 F070 andi r31,hi8(127)
  188. 184 010a EE0F lsl r30
  189. 185 010c FF1F rol r31
  190. 186 010e EE0F lsl r30
  191. 187 0110 FF1F rol r31
  192. 188 0112 E80F add r30,r24
  193. 189 0114 F91F adc r31,r25
  194. 190 0116 6081 ld r22,Z
  195. 191 0118 7181 ldd r23,Z+1
  196. 192 011a 8281 ldd r24,Z+2
  197. 193 011c 9381 ldd r25,Z+3
  198. 194 011e 9F70 andi r25,hhi8(268435455)
  199. 195 0120 6F3F cpi r22,lo8(268435455)
  200. 196 0122 2FEF ldi r18,hi8(268435455)
  201. 197 0124 7207 cpc r23,r18
  202. 198 0126 2FEF ldi r18,hlo8(268435455)
  203. 199 0128 8207 cpc r24,r18
  204. 200 012a 2FE0 ldi r18,hhi8(268435455)
  205. 201 012c 9207 cpc r25,r18
  206. 202 012e 01F0 breq .L24
  207. 203 0130 673F cpi r22,lo8(268435447)
  208. 204 0132 2FEF ldi r18,hi8(268435447)
  209. 205 0134 7207 cpc r23,r18
  210. 206 0136 2FEF ldi r18,hlo8(268435447)
  211. 207 0138 8207 cpc r24,r18
  212. 208 013a 2FE0 ldi r18,hhi8(268435447)
  213. 209 013c 9207 cpc r25,r18
  214. 210 013e 01F4 brne .L21
  215. 211 0140 00C0 rjmp .L24
  216. 212 .L22:
  217. 213 0142 5527 clr r21
  218. 214 0144 4F2D mov r20,r15
  219. 215 0146 3E2D mov r19,r14
  220. 216 0148 2D2D mov r18,r13
  221. 217 014a 280D add r18,r8
  222. 218 014c 391D adc r19,r9
  223. 219 014e 4A1D adc r20,r10
  224. 220 0150 5B1D adc r21,r11
  225. 221 0152 01E0 ldi r16,lo8(1)
  226. 222 0154 10E0 ldi r17,hi8(1)
  227. 223 0156 8181 ldd r24,Z+1
  228. 224 0158 0E94 0000 call MMCReadSectors
  229. 225 015c 8091 0000 lds r24,pSectorBuffer
  230. 226 0160 9091 0000 lds r25,(pSectorBuffer)+1
  231. 227 0164 F601 movw r30,r12
  232. 228 0166 F070 andi r31,hi8(255)
  233. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 5
  234. 229 0168 EE0F lsl r30
  235. 230 016a FF1F rol r31
  236. 231 016c E80F add r30,r24
  237. 232 016e F91F adc r31,r25
  238. 233 0170 2081 ld r18,Z
  239. 234 0172 3181 ldd r19,Z+1
  240. 235 0174 8FEF ldi r24,hi8(-1)
  241. 236 0176 2F3F cpi r18,lo8(-1)
  242. 237 0178 3807 cpc r19,r24
  243. 238 017a 01F0 breq .L24
  244. 239 017c 8FEF ldi r24,hi8(-9)
  245. 240 017e 273F cpi r18,lo8(-9)
  246. 241 0180 3807 cpc r19,r24
  247. 242 0182 01F0 breq .L24
  248. 243 0184 B901 movw r22,r18
  249. 244 0186 8827 clr r24
  250. 245 0188 9927 clr r25
  251. 246 018a 00C0 rjmp .L21
  252. 247 .L24:
  253. 248 018c 60E0 ldi r22,lo8(0)
  254. 249 018e 70E0 ldi r23,hi8(0)
  255. 250 0190 80E0 ldi r24,hlo8(0)
  256. 251 0192 90E0 ldi r25,hhi8(0)
  257. 252 .L21:
  258. 253 /* epilogue: frame size=0 */
  259. 254 0194 1F91 pop r17
  260. 255 0196 0F91 pop r16
  261. 256 0198 FF90 pop r15
  262. 257 019a EF90 pop r14
  263. 258 019c DF90 pop r13
  264. 259 019e CF90 pop r12
  265. 260 01a0 BF90 pop r11
  266. 261 01a2 AF90 pop r10
  267. 262 01a4 9F90 pop r9
  268. 263 01a6 8F90 pop r8
  269. 264 01a8 0895 ret
  270. 265 /* epilogue end (size=11) */
  271. 266 /* function GetNextCluster size 140 (119) */
  272. 267 .size GetNextCluster, .-GetNextCluster
  273. 268 .type FindFile, @function
  274. 269 FindFile:
  275. 270 /* prologue: frame size=26 */
  276. 271 01aa 2F92 push r2
  277. 272 01ac 3F92 push r3
  278. 273 01ae 4F92 push r4
  279. 274 01b0 5F92 push r5
  280. 275 01b2 6F92 push r6
  281. 276 01b4 7F92 push r7
  282. 277 01b6 8F92 push r8
  283. 278 01b8 9F92 push r9
  284. 279 01ba AF92 push r10
  285. 280 01bc BF92 push r11
  286. 281 01be CF92 push r12
  287. 282 01c0 DF92 push r13
  288. 283 01c2 EF92 push r14
  289. 284 01c4 FF92 push r15
  290. 285 01c6 0F93 push r16
  291. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 6
  292. 286 01c8 1F93 push r17
  293. 287 01ca CF93 push r28
  294. 288 01cc DF93 push r29
  295. 289 01ce CDB7 in r28,__SP_L__
  296. 290 01d0 DEB7 in r29,__SP_H__
  297. 291 01d2 6A97 sbiw r28,26
  298. 292 01d4 0FB6 in __tmp_reg__,__SREG__
  299. 293 01d6 F894 cli
  300. 294 01d8 DEBF out __SP_H__,r29
  301. 295 01da 0FBE out __SREG__,__tmp_reg__
  302. 296 01dc CDBF out __SP_L__,r28
  303. 297 /* prologue end (size=26) */
  304. 298 01de 988B std Y+16,r25
  305. 299 01e0 8F87 std Y+15,r24
  306. 300 01e2 7A8B std Y+18,r23
  307. 301 01e4 698B std Y+17,r22
  308. 302 01e6 5C8B std Y+20,r21
  309. 303 01e8 4B8B std Y+19,r20
  310. 304 01ea 1801 movw r2,r16
  311. 305 01ec 2901 movw r4,r18
  312. 306 01ee FE8A std Y+22,r15
  313. 307 01f0 ED8A std Y+21,r14
  314. 308 01f2 D88E std Y+24,r13
  315. 309 01f4 CF8A std Y+23,r12
  316. 310 01f6 D701 movw r26,r14
  317. 311 01f8 1D92 st X+,__zero_reg__
  318. 312 01fa 1D92 st X+,__zero_reg__
  319. 313 01fc 1D92 st X+,__zero_reg__
  320. 314 01fe 1C92 st X,__zero_reg__
  321. 315 0200 1397 sbiw r26,3
  322. 316 0202 DA01 movw r26,r20
  323. 317 0204 0D90 ld __tmp_reg__,X+
  324. 318 0206 0020 tst __tmp_reg__
  325. 319 0208 01F4 brne .-6
  326. 320 020a 1197 sbiw r26,1
  327. 321 020c A41B sub r26,r20
  328. 322 020e B50B sbc r27,r21
  329. 323 0210 CD01 movw r24,r26
  330. 324 0212 0C96 adiw r24,12
  331. 325 0214 6DE0 ldi r22,lo8(13)
  332. 326 0216 70E0 ldi r23,hi8(13)
  333. 327 0218 0E94 0000 call __divmodhi4
  334. 328 021c F62F mov r31,r22
  335. 329 021e F064 ori r31,lo8(64)
  336. 330 0220 F983 std Y+1,r31
  337. 331 0222 F53E cpi r31,lo8(-27)
  338. 332 0224 01F4 brne .+2
  339. 333 0226 00C0 rjmp .L30
  340. 334 0228 8DE0 ldi r24,lo8(13)
  341. 335 022a 689F mul r22,r24
  342. 336 022c 9001 movw r18,r0
  343. 337 022e 1124 clr r1
  344. 338 0230 3B83 std Y+3,r19
  345. 339 0232 2A83 std Y+2,r18
  346. 340 0234 2F33 cpi r18,63
  347. 341 0236 3105 cpc r19,__zero_reg__
  348. 342 0238 04F0 brlt .+2
  349. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 7
  350. 343 023a 00C0 rjmp .L30
  351. 344 023c 7901 movw r14,r18
  352. 345 023e BF2E mov r11,r31
  353. 346 0240 1E86 std Y+14,__zero_reg__
  354. 347 0242 CC24 clr r12
  355. 348 0244 DD24 clr r13
  356. 349 0246 00C0 rjmp .L33
  357. 350 .L34:
  358. 351 0248 B201 movw r22,r4
  359. 352 024a A101 movw r20,r2
  360. 353 024c 8F85 ldd r24,Y+15
  361. 354 024e 9889 ldd r25,Y+16
  362. 355 0250 0E94 0000 call GetFirstSectorOfCluster
  363. 356 0254 6887 std Y+8,r22
  364. 357 0256 7987 std Y+9,r23
  365. 358 0258 8A87 std Y+10,r24
  366. 359 025a 9B87 std Y+11,r25
  367. 360 025c EF85 ldd r30,Y+15
  368. 361 025e F889 ldd r31,Y+16
  369. 362 0260 8281 ldd r24,Z+2
  370. 363 0262 282F mov r18,r24
  371. 364 0264 3327 clr r19
  372. 365 0266 3D87 std Y+13,r19
  373. 366 0268 2C87 std Y+12,r18
  374. 367 026a 31E0 ldi r19,lo8(1)
  375. 368 026c 2316 cp r2,r19
  376. 369 026e 3104 cpc r3,__zero_reg__
  377. 370 0270 4104 cpc r4,__zero_reg__
  378. 371 0272 5104 cpc r5,__zero_reg__
  379. 372 0274 01F4 brne .L35
  380. 373 0276 8081 ld r24,Z
  381. 374 0278 8823 tst r24
  382. 375 027a 01F4 brne .L35
  383. 376 027c 8285 ldd r24,Z+10
  384. 377 027e 9385 ldd r25,Z+11
  385. 378 0280 A485 ldd r26,Z+12
  386. 379 0282 B585 ldd r27,Z+13
  387. 380 0284 8887 std Y+8,r24
  388. 381 0286 9987 std Y+9,r25
  389. 382 0288 AA87 std Y+10,r26
  390. 383 028a BB87 std Y+11,r27
  391. 384 028c 2681 ldd r18,Z+6
  392. 385 028e 3781 ldd r19,Z+7
  393. 386 0290 3D87 std Y+13,r19
  394. 387 0292 2C87 std Y+12,r18
  395. 388 .L35:
  396. 389 0294 6884 ldd r6,Y+8
  397. 390 0296 7984 ldd r7,Y+9
  398. 391 0298 8A84 ldd r8,Y+10
  399. 392 029a 9B84 ldd r9,Y+11
  400. 393 029c 00C0 rjmp .L38
  401. 394 .L39:
  402. 395 029e 6091 0000 lds r22,pSectorBuffer
  403. 396 02a2 7091 0000 lds r23,(pSectorBuffer)+1
  404. 397 02a6 01E0 ldi r16,lo8(1)
  405. 398 02a8 10E0 ldi r17,hi8(1)
  406. 399 02aa A401 movw r20,r8
  407. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 8
  408. 400 02ac 9301 movw r18,r6
  409. 401 02ae EF85 ldd r30,Y+15
  410. 402 02b0 F889 ldd r31,Y+16
  411. 403 02b2 8181 ldd r24,Z+1
  412. 404 02b4 0E94 0000 call MMCReadSectors
  413. 405 02b8 2091 0000 lds r18,pSectorBuffer
  414. 406 02bc 3091 0000 lds r19,(pSectorBuffer)+1
  415. 407 02c0 3F83 std Y+7,r19
  416. 408 02c2 2E83 std Y+6,r18
  417. 409 02c4 8091 0000 lds r24,pLongName2
  418. 410 02c8 9091 0000 lds r25,(pLongName2)+1
  419. 411 02cc 9D83 std Y+5,r25
  420. 412 02ce 8C83 std Y+4,r24
  421. 413 02d0 3A8F std Y+26,r19
  422. 414 02d2 298F std Y+25,r18
  423. 415 .L40:
  424. 416 02d4 9E85 ldd r25,Y+14
  425. 417 02d6 9130 cpi r25,lo8(1)
  426. 418 02d8 01F4 brne .L41
  427. 419 02da E98D ldd r30,Y+25
  428. 420 02dc FA8D ldd r31,Y+26
  429. 421 02de 00C0 rjmp .L64
  430. 422 .L41:
  431. 423 02e0 2F89 ldd r18,Y+23
  432. 424 02e2 388D ldd r19,Y+24
  433. 425 02e4 232B or r18,r19
  434. 426 02e6 01F4 brne .L44
  435. 427 02e8 A98D ldd r26,Y+25
  436. 428 02ea BA8D ldd r27,Y+26
  437. 429 02ec 8C91 ld r24,X
  438. 430 02ee 853E cpi r24,lo8(-27)
  439. 431 02f0 01F0 breq .L44
  440. 432 02f2 8823 tst r24
  441. 433 02f4 01F0 breq .L44
  442. 434 02f6 4BE0 ldi r20,lo8(11)
  443. 435 02f8 50E0 ldi r21,hi8(11)
  444. 436 02fa 6989 ldd r22,Y+17
  445. 437 02fc 7A89 ldd r23,Y+18
  446. 438 02fe CD01 movw r24,r26
  447. 439 0300 0E94 0000 call memcmp
  448. 440 0304 892B or r24,r25
  449. 441 0306 01F4 brne .L44
  450. 442 0308 E989 ldd r30,Y+17
  451. 443 030a FA89 ldd r31,Y+18
  452. 444 030c 9385 ldd r25,Z+11
  453. 445 030e E98D ldd r30,Y+25
  454. 446 0310 FA8D ldd r31,Y+26
  455. 447 0312 8385 ldd r24,Z+11
  456. 448 0314 8923 and r24,r25
  457. 449 0316 8917 cp r24,r25
  458. 450 0318 01F4 brne .L44
  459. 451 .L64:
  460. 452 031a 8489 ldd r24,Z+20
  461. 453 031c 9589 ldd r25,Z+21
  462. 454 031e AA27 clr r26
  463. 455 0320 BB27 clr r27
  464. 456 0322 AC01 movw r20,r24
  465. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 9
  466. 457 0324 3327 clr r19
  467. 458 0326 2227 clr r18
  468. 459 0328 828D ldd r24,Z+26
  469. 460 032a 938D ldd r25,Z+27
  470. 461 032c AA27 clr r26
  471. 462 032e BB27 clr r27
  472. 463 0330 282B or r18,r24
  473. 464 0332 392B or r19,r25
  474. 465 0334 4A2B or r20,r26
  475. 466 0336 5B2B or r21,r27
  476. 467 0338 848D ldd r24,Z+28
  477. 468 033a 958D ldd r25,Z+29
  478. 469 033c A68D ldd r26,Z+30
  479. 470 033e B78D ldd r27,Z+31
  480. 471 0340 ED89 ldd r30,Y+21
  481. 472 0342 FE89 ldd r31,Y+22
  482. 473 0344 8083 st Z,r24
  483. 474 0346 9183 std Z+1,r25
  484. 475 0348 A283 std Z+2,r26
  485. 476 034a B383 std Z+3,r27
  486. 477 034c 00C0 rjmp .L43
  487. 478 .L44:
  488. 479 034e E98D ldd r30,Y+25
  489. 480 0350 FA8D ldd r31,Y+26
  490. 481 0352 8385 ldd r24,Z+11
  491. 482 0354 8F30 cpi r24,lo8(15)
  492. 483 0356 01F0 breq .+2
  493. 484 0358 00C0 rjmp .L50
  494. 485 035a A080 ld r10,Z
  495. 486 035c AB14 cp r10,r11
  496. 487 035e 01F0 breq .+2
  497. 488 0360 00C0 rjmp .L50
  498. 489 0362 B6FE sbrs r11,6
  499. 490 0364 00C0 rjmp .L53
  500. 491 0366 BFEB ldi r27,lo8(-65)
  501. 492 0368 AB2E mov r10,r27
  502. 493 036a AB20 and r10,r11
  503. 494 036c AC81 ldd r26,Y+4
  504. 495 036e BD81 ldd r27,Y+5
  505. 496 0370 AE0D add r26,r14
  506. 497 0372 BF1D adc r27,r15
  507. 498 0374 1C92 st X,__zero_reg__
  508. 499 0376 0894 sec
  509. 500 0378 E108 sbc r14,__zero_reg__
  510. 501 037a F108 sbc r15,__zero_reg__
  511. 502 037c CC80 ldd r12,Y+4
  512. 503 037e DD80 ldd r13,Y+5
  513. 504 .L53:
  514. 505 0380 E98D ldd r30,Y+25
  515. 506 0382 FA8D ldd r31,Y+26
  516. 507 0384 868D ldd r24,Z+30
  517. 508 0386 978D ldd r25,Z+31
  518. 509 0388 0E94 0000 call GetLongChar
  519. 510 038c F601 movw r30,r12
  520. 511 038e EE0D add r30,r14
  521. 512 0390 FF1D adc r31,r15
  522. 513 0392 8083 st Z,r24
  523. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 10
  524. 514 0394 8701 movw r16,r14
  525. 515 0396 0150 subi r16,lo8(-(-1))
  526. 516 0398 1040 sbci r17,hi8(-(-1))
  527. 517 039a E98D ldd r30,Y+25
  528. 518 039c FA8D ldd r31,Y+26
  529. 519 039e 848D ldd r24,Z+28
  530. 520 03a0 958D ldd r25,Z+29
  531. 521 03a2 0E94 0000 call GetLongChar
  532. 522 03a6 F601 movw r30,r12
  533. 523 03a8 E00F add r30,r16
  534. 524 03aa F11F adc r31,r17
  535. 525 03ac 8083 st Z,r24
  536. 526 03ae 0150 subi r16,lo8(-(-1))
  537. 527 03b0 1040 sbci r17,hi8(-(-1))
  538. 528 03b2 E98D ldd r30,Y+25
  539. 529 03b4 FA8D ldd r31,Y+26
  540. 530 03b6 808D ldd r24,Z+24
  541. 531 03b8 918D ldd r25,Z+25
  542. 532 03ba 0E94 0000 call GetLongChar
  543. 533 03be F601 movw r30,r12
  544. 534 03c0 E00F add r30,r16
  545. 535 03c2 F11F adc r31,r17
  546. 536 03c4 8083 st Z,r24
  547. 537 03c6 0150 subi r16,lo8(-(-1))
  548. 538 03c8 1040 sbci r17,hi8(-(-1))
  549. 539 03ca E98D ldd r30,Y+25
  550. 540 03cc FA8D ldd r31,Y+26
  551. 541 03ce 8689 ldd r24,Z+22
  552. 542 03d0 9789 ldd r25,Z+23
  553. 543 03d2 0E94 0000 call GetLongChar
  554. 544 03d6 F601 movw r30,r12
  555. 545 03d8 E00F add r30,r16
  556. 546 03da F11F adc r31,r17
  557. 547 03dc 8083 st Z,r24
  558. 548 03de 0150 subi r16,lo8(-(-1))
  559. 549 03e0 1040 sbci r17,hi8(-(-1))
  560. 550 03e2 E98D ldd r30,Y+25
  561. 551 03e4 FA8D ldd r31,Y+26
  562. 552 03e6 8489 ldd r24,Z+20
  563. 553 03e8 9589 ldd r25,Z+21
  564. 554 03ea 0E94 0000 call GetLongChar
  565. 555 03ee F601 movw r30,r12
  566. 556 03f0 E00F add r30,r16
  567. 557 03f2 F11F adc r31,r17
  568. 558 03f4 8083 st Z,r24
  569. 559 03f6 0150 subi r16,lo8(-(-1))
  570. 560 03f8 1040 sbci r17,hi8(-(-1))
  571. 561 03fa E98D ldd r30,Y+25
  572. 562 03fc FA8D ldd r31,Y+26
  573. 563 03fe 8289 ldd r24,Z+18
  574. 564 0400 9389 ldd r25,Z+19
  575. 565 0402 0E94 0000 call GetLongChar
  576. 566 0406 F601 movw r30,r12
  577. 567 0408 E00F add r30,r16
  578. 568 040a F11F adc r31,r17
  579. 569 040c 8083 st Z,r24
  580. 570 040e 0150 subi r16,lo8(-(-1))
  581. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 11
  582. 571 0410 1040 sbci r17,hi8(-(-1))
  583. 572 0412 E98D ldd r30,Y+25
  584. 573 0414 FA8D ldd r31,Y+26
  585. 574 0416 8089 ldd r24,Z+16
  586. 575 0418 9189 ldd r25,Z+17
  587. 576 041a 0E94 0000 call GetLongChar
  588. 577 041e F601 movw r30,r12
  589. 578 0420 E00F add r30,r16
  590. 579 0422 F11F adc r31,r17
  591. 580 0424 8083 st Z,r24
  592. 581 0426 0150 subi r16,lo8(-(-1))
  593. 582 0428 1040 sbci r17,hi8(-(-1))
  594. 583 042a E98D ldd r30,Y+25
  595. 584 042c FA8D ldd r31,Y+26
  596. 585 042e 8685 ldd r24,Z+14
  597. 586 0430 9785 ldd r25,Z+15
  598. 587 0432 0E94 0000 call GetLongChar
  599. 588 0436 F601 movw r30,r12
  600. 589 0438 E00F add r30,r16
  601. 590 043a F11F adc r31,r17
  602. 591 043c 8083 st Z,r24
  603. 592 043e 0150 subi r16,lo8(-(-1))
  604. 593 0440 1040 sbci r17,hi8(-(-1))
  605. 594 0442 E98D ldd r30,Y+25
  606. 595 0444 FA8D ldd r31,Y+26
  607. 596 0446 8185 ldd r24,Z+9
  608. 597 0448 9285 ldd r25,Z+10
  609. 598 044a 0E94 0000 call GetLongChar
  610. 599 044e F601 movw r30,r12
  611. 600 0450 E00F add r30,r16
  612. 601 0452 F11F adc r31,r17
  613. 602 0454 8083 st Z,r24
  614. 603 0456 0150 subi r16,lo8(-(-1))
  615. 604 0458 1040 sbci r17,hi8(-(-1))
  616. 605 045a E98D ldd r30,Y+25
  617. 606 045c FA8D ldd r31,Y+26
  618. 607 045e 8781 ldd r24,Z+7
  619. 608 0460 9085 ldd r25,Z+8
  620. 609 0462 0E94 0000 call GetLongChar
  621. 610 0466 F601 movw r30,r12
  622. 611 0468 E00F add r30,r16
  623. 612 046a F11F adc r31,r17
  624. 613 046c 8083 st Z,r24
  625. 614 046e 0150 subi r16,lo8(-(-1))
  626. 615 0470 1040 sbci r17,hi8(-(-1))
  627. 616 0472 E98D ldd r30,Y+25
  628. 617 0474 FA8D ldd r31,Y+26
  629. 618 0476 8581 ldd r24,Z+5
  630. 619 0478 9681 ldd r25,Z+6
  631. 620 047a 0E94 0000 call GetLongChar
  632. 621 047e F601 movw r30,r12
  633. 622 0480 E00F add r30,r16
  634. 623 0482 F11F adc r31,r17
  635. 624 0484 8083 st Z,r24
  636. 625 0486 0150 subi r16,lo8(-(-1))
  637. 626 0488 1040 sbci r17,hi8(-(-1))
  638. 627 048a E98D ldd r30,Y+25
  639. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 12
  640. 628 048c FA8D ldd r31,Y+26
  641. 629 048e 8381 ldd r24,Z+3
  642. 630 0490 9481 ldd r25,Z+4
  643. 631 0492 0E94 0000 call GetLongChar
  644. 632 0496 F601 movw r30,r12
  645. 633 0498 E00F add r30,r16
  646. 634 049a F11F adc r31,r17
  647. 635 049c 8083 st Z,r24
  648. 636 049e 0150 subi r16,lo8(-(-1))
  649. 637 04a0 1040 sbci r17,hi8(-(-1))
  650. 638 04a2 E98D ldd r30,Y+25
  651. 639 04a4 FA8D ldd r31,Y+26
  652. 640 04a6 8181 ldd r24,Z+1
  653. 641 04a8 9281 ldd r25,Z+2
  654. 642 04aa 0E94 0000 call GetLongChar
  655. 643 04ae F601 movw r30,r12
  656. 644 04b0 E00F add r30,r16
  657. 645 04b2 F11F adc r31,r17
  658. 646 04b4 8083 st Z,r24
  659. 647 04b6 BA2C mov r11,r10
  660. 648 04b8 BA94 dec r11
  661. 649 04ba 01F0 breq .L55
  662. 650 04bc 7801 movw r14,r16
  663. 651 04be 0894 sec
  664. 652 04c0 E108 sbc r14,__zero_reg__
  665. 653 04c2 F108 sbc r15,__zero_reg__
  666. 654 04c4 00C0 rjmp .L50
  667. 655 .L55:
  668. 656 04c6 AB89 ldd r26,Y+19
  669. 657 04c8 BC89 ldd r27,Y+20
  670. 658 04ca 0D90 ld __tmp_reg__,X+
  671. 659 04cc 0020 tst __tmp_reg__
  672. 660 04ce 01F4 brne .-6
  673. 661 04d0 1197 sbiw r26,1
  674. 662 04d2 2B89 ldd r18,Y+19
  675. 663 04d4 3C89 ldd r19,Y+20
  676. 664 04d6 A21B sub r26,r18
  677. 665 04d8 B30B sbc r27,r19
  678. 666 04da AD01 movw r20,r26
  679. 667 04dc B601 movw r22,r12
  680. 668 04de C901 movw r24,r18
  681. 669 04e0 0E94 0000 call memcmp
  682. 670 04e4 892B or r24,r25
  683. 671 04e6 01F4 brne .L57
  684. 672 04e8 EA80 ldd r14,Y+2
  685. 673 04ea FB80 ldd r15,Y+3
  686. 674 04ec B980 ldd r11,Y+1
  687. 675 04ee 31E0 ldi r19,lo8(1)
  688. 676 04f0 3E87 std Y+14,r19
  689. 677 04f2 00C0 rjmp .L50
  690. 678 .L57:
  691. 679 04f4 EA80 ldd r14,Y+2
  692. 680 04f6 FB80 ldd r15,Y+3
  693. 681 04f8 B980 ldd r11,Y+1
  694. 682 .L50:
  695. 683 04fa 898D ldd r24,Y+25
  696. 684 04fc 9A8D ldd r25,Y+26
  697. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 13
  698. 685 04fe 8096 adiw r24,32
  699. 686 0500 9A8F std Y+26,r25
  700. 687 0502 898F std Y+25,r24
  701. 688 0504 8E81 ldd r24,Y+6
  702. 689 0506 9F81 ldd r25,Y+7
  703. 690 0508 8050 subi r24,lo8(-(512))
  704. 691 050a 9E4F sbci r25,hi8(-(512))
  705. 692 050c A98D ldd r26,Y+25
  706. 693 050e BA8D ldd r27,Y+26
  707. 694 0510 A817 cp r26,r24
  708. 695 0512 B907 cpc r27,r25
  709. 696 0514 01F0 breq .+2
  710. 697 0516 00C0 rjmp .L40
  711. 698 0518 0894 sec
  712. 699 051a 611C adc r6,__zero_reg__
  713. 700 051c 711C adc r7,__zero_reg__
  714. 701 051e 811C adc r8,__zero_reg__
  715. 702 0520 911C adc r9,__zero_reg__
  716. 703 .L38:
  717. 704 0522 C301 movw r24,r6
  718. 705 0524 E885 ldd r30,Y+8
  719. 706 0526 F985 ldd r31,Y+9
  720. 707 0528 8E1B sub r24,r30
  721. 708 052a 9F0B sbc r25,r31
  722. 709 052c 2C85 ldd r18,Y+12
  723. 710 052e 3D85 ldd r19,Y+13
  724. 711 0530 8217 cp r24,r18
  725. 712 0532 9307 cpc r25,r19
  726. 713 0534 04F4 brge .+2
  727. 714 0536 00C0 rjmp .L39
  728. 715 0538 B201 movw r22,r4
  729. 716 053a A101 movw r20,r2
  730. 717 053c 8F85 ldd r24,Y+15
  731. 718 053e 9889 ldd r25,Y+16
  732. 719 0540 0E94 0000 call GetNextCluster
  733. 720 0544 1B01 movw r2,r22
  734. 721 0546 2C01 movw r4,r24
  735. 722 .L33:
  736. 723 0548 2114 cp r2,__zero_reg__
  737. 724 054a 3104 cpc r3,__zero_reg__
  738. 725 054c 4104 cpc r4,__zero_reg__
  739. 726 054e 5104 cpc r5,__zero_reg__
  740. 727 0550 01F0 breq .+2
  741. 728 0552 00C0 rjmp .L34
  742. 729 .L30:
  743. 730 0554 20E0 ldi r18,lo8(0)
  744. 731 0556 30E0 ldi r19,hi8(0)
  745. 732 0558 40E0 ldi r20,hlo8(0)
  746. 733 055a 50E0 ldi r21,hhi8(0)
  747. 734 .L43:
  748. 735 055c CA01 movw r24,r20
  749. 736 055e B901 movw r22,r18
  750. 737 /* epilogue: frame size=26 */
  751. 738 0560 6A96 adiw r28,26
  752. 739 0562 0FB6 in __tmp_reg__,__SREG__
  753. 740 0564 F894 cli
  754. 741 0566 DEBF out __SP_H__,r29
  755. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 14
  756. 742 0568 0FBE out __SREG__,__tmp_reg__
  757. 743 056a CDBF out __SP_L__,r28
  758. 744 056c DF91 pop r29
  759. 745 056e CF91 pop r28
  760. 746 0570 1F91 pop r17
  761. 747 0572 0F91 pop r16
  762. 748 0574 FF90 pop r15
  763. 749 0576 EF90 pop r14
  764. 750 0578 DF90 pop r13
  765. 751 057a CF90 pop r12
  766. 752 057c BF90 pop r11
  767. 753 057e AF90 pop r10
  768. 754 0580 9F90 pop r9
  769. 755 0582 8F90 pop r8
  770. 756 0584 7F90 pop r7
  771. 757 0586 6F90 pop r6
  772. 758 0588 5F90 pop r5
  773. 759 058a 4F90 pop r4
  774. 760 058c 3F90 pop r3
  775. 761 058e 2F90 pop r2
  776. 762 0590 0895 ret
  777. 763 /* epilogue end (size=25) */
  778. 764 /* function FindFile size 501 (450) */
  779. 765 .size FindFile, .-FindFile
  780. 766 .global FATSemaInit
  781. 767 .type FATSemaInit, @function
  782. 768 FATSemaInit:
  783. 769 /* prologue: frame size=0 */
  784. 770 /* prologue end (size=0) */
  785. 771 0592 80E0 ldi r24,lo8(hFATSemaphore)
  786. 772 0594 90E0 ldi r25,hi8(hFATSemaphore)
  787. 773 0596 0E94 0000 call NutEventPost
  788. 774 /* epilogue: frame size=0 */
  789. 775 059a 0895 ret
  790. 776 /* epilogue end (size=1) */
  791. 777 /* function FATSemaInit size 5 (4) */
  792. 778 .size FATSemaInit, .-FATSemaInit
  793. 779 .global FATFree
  794. 780 .type FATFree, @function
  795. 781 FATFree:
  796. 782 /* prologue: frame size=0 */
  797. 783 /* prologue end (size=0) */
  798. 784 059c 80E0 ldi r24,lo8(hFATSemaphore)
  799. 785 059e 90E0 ldi r25,hi8(hFATSemaphore)
  800. 786 05a0 0E94 0000 call NutEventPost
  801. 787 /* epilogue: frame size=0 */
  802. 788 05a4 0895 ret
  803. 789 /* epilogue end (size=1) */
  804. 790 /* function FATFree size 5 (4) */
  805. 791 .size FATFree, .-FATFree
  806. 792 .global FATLock
  807. 793 .type FATLock, @function
  808. 794 FATLock:
  809. 795 /* prologue: frame size=0 */
  810. 796 /* prologue end (size=0) */
  811. 797 05a6 40E0 ldi r20,lo8(0)
  812. 798 05a8 50E0 ldi r21,hi8(0)
  813. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 15
  814. 799 05aa 60E0 ldi r22,hlo8(0)
  815. 800 05ac 70E0 ldi r23,hhi8(0)
  816. 801 05ae 80E0 ldi r24,lo8(hFATSemaphore)
  817. 802 05b0 90E0 ldi r25,hi8(hFATSemaphore)
  818. 803 05b2 0E94 0000 call NutEventWait
  819. 804 /* epilogue: frame size=0 */
  820. 805 05b6 0895 ret
  821. 806 /* epilogue end (size=1) */
  822. 807 /* function FATLock size 9 (8) */
  823. 808 .size FATLock, .-FATLock
  824. 809 .global FATFileRead
  825. 810 .type FATFileRead, @function
  826. 811 FATFileRead:
  827. 812 /* prologue: frame size=8 */
  828. 813 05b8 2F92 push r2
  829. 814 05ba 3F92 push r3
  830. 815 05bc 4F92 push r4
  831. 816 05be 5F92 push r5
  832. 817 05c0 6F92 push r6
  833. 818 05c2 7F92 push r7
  834. 819 05c4 8F92 push r8
  835. 820 05c6 9F92 push r9
  836. 821 05c8 AF92 push r10
  837. 822 05ca BF92 push r11
  838. 823 05cc CF92 push r12
  839. 824 05ce DF92 push r13
  840. 825 05d0 EF92 push r14
  841. 826 05d2 FF92 push r15
  842. 827 05d4 0F93 push r16
  843. 828 05d6 1F93 push r17
  844. 829 05d8 CF93 push r28
  845. 830 05da DF93 push r29
  846. 831 05dc CDB7 in r28,__SP_L__
  847. 832 05de DEB7 in r29,__SP_H__
  848. 833 05e0 2897 sbiw r28,8
  849. 834 05e2 0FB6 in __tmp_reg__,__SREG__
  850. 835 05e4 F894 cli
  851. 836 05e6 DEBF out __SP_H__,r29
  852. 837 05e8 0FBE out __SREG__,__tmp_reg__
  853. 838 05ea CDBF out __SP_L__,r28
  854. 839 /* prologue end (size=26) */
  855. 840 05ec 8C01 movw r16,r24
  856. 841 05ee 6B01 movw r12,r22
  857. 842 05f0 5E83 std Y+6,r21
  858. 843 05f2 4D83 std Y+5,r20
  859. 844 05f4 0E94 0000 call FATLock
  860. 845 05f8 0115 cp r16,__zero_reg__
  861. 846 05fa 1105 cpc r17,__zero_reg__
  862. 847 05fc 01F4 brne .+2
  863. 848 05fe 00C0 rjmp .L72
  864. 849 0600 F801 movw r30,r16
  865. 850 0602 0481 ldd r16,Z+4
  866. 851 0604 1581 ldd r17,Z+5
  867. 852 0606 1887 std Y+8,r17
  868. 853 0608 0F83 std Y+7,r16
  869. 854 060a 0115 cp r16,__zero_reg__
  870. 855 060c 1105 cpc r17,__zero_reg__
  871. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 16
  872. 856 060e 01F4 brne .+2
  873. 857 0610 00C0 rjmp .L72
  874. 858 0612 6D81 ldd r22,Y+5
  875. 859 0614 7E81 ldd r23,Y+6
  876. 860 0616 6115 cp r22,__zero_reg__
  877. 861 0618 7105 cpc r23,__zero_reg__
  878. 862 061a 01F4 brne .+2
  879. 863 061c 00C0 rjmp .L72
  880. 864 061e F801 movw r30,r16
  881. 865 0620 E484 ldd r14,Z+12
  882. 866 0622 F584 ldd r15,Z+13
  883. 867 0624 0685 ldd r16,Z+14
  884. 868 0626 1785 ldd r17,Z+15
  885. 869 0628 2081 ld r18,Z
  886. 870 062a 3181 ldd r19,Z+1
  887. 871 062c 4281 ldd r20,Z+2
  888. 872 062e 5381 ldd r21,Z+3
  889. 873 0630 E216 cp r14,r18
  890. 874 0632 F306 cpc r15,r19
  891. 875 0634 0407 cpc r16,r20
  892. 876 0636 1507 cpc r17,r21
  893. 877 0638 00F0 brlo .+2
  894. 878 063a 00C0 rjmp .L76
  895. 879 063c CB01 movw r24,r22
  896. 880 063e AA27 clr r26
  897. 881 0640 97FD sbrc r25,7
  898. 882 0642 A095 com r26
  899. 883 0644 BA2F mov r27,r26
  900. 884 0646 8E0D add r24,r14
  901. 885 0648 9F1D adc r25,r15
  902. 886 064a A01F adc r26,r16
  903. 887 064c B11F adc r27,r17
  904. 888 064e 2817 cp r18,r24
  905. 889 0650 3907 cpc r19,r25
  906. 890 0652 4A07 cpc r20,r26
  907. 891 0654 5B07 cpc r21,r27
  908. 892 0656 00F4 brsh .L78
  909. 893 0658 2E19 sub r18,r14
  910. 894 065a 3F09 sbc r19,r15
  911. 895 065c 3E83 std Y+6,r19
  912. 896 065e 2D83 std Y+5,r18
  913. 897 .L78:
  914. 898 0660 EF81 ldd r30,Y+7
  915. 899 0662 F885 ldd r31,Y+8
  916. 900 0664 008C ldd __tmp_reg__,Z+24
  917. 901 0666 F18D ldd r31,Z+25
  918. 902 0668 E02D mov r30,__tmp_reg__
  919. 903 066a FC83 std Y+4,r31
  920. 904 066c EB83 std Y+3,r30
  921. 905 066e DA82 std Y+2,r13
  922. 906 0670 C982 std Y+1,r12
  923. 907 0672 2480 ldd r2,Z+4
  924. 908 0674 3580 ldd r3,Z+5
  925. 909 0676 4D80 ldd r4,Y+5
  926. 910 0678 5E80 ldd r5,Y+6
  927. 911 067a 00C0 rjmp .L80
  928. 912 .L81:
  929. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 17
  930. 913 067c EF81 ldd r30,Y+7
  931. 914 067e F885 ldd r31,Y+8
  932. 915 0680 6088 ldd r6,Z+16
  933. 916 0682 7188 ldd r7,Z+17
  934. 917 0684 8288 ldd r8,Z+18
  935. 918 0686 9388 ldd r9,Z+19
  936. 919 0688 5101 movw r10,r2
  937. 920 068a CC24 clr r12
  938. 921 068c DD24 clr r13
  939. 922 068e 4085 ldd r20,Z+8
  940. 923 0690 5185 ldd r21,Z+9
  941. 924 0692 6285 ldd r22,Z+10
  942. 925 0694 7385 ldd r23,Z+11
  943. 926 0696 8B81 ldd r24,Y+3
  944. 927 0698 9C81 ldd r25,Y+4
  945. 928 069a 0E94 0000 call GetFirstSectorOfCluster
  946. 929 069e 7B01 movw r14,r22
  947. 930 06a0 8C01 movw r16,r24
  948. 931 06a2 C401 movw r24,r8
  949. 932 06a4 B301 movw r22,r6
  950. 933 06a6 A601 movw r20,r12
  951. 934 06a8 9501 movw r18,r10
  952. 935 06aa 0E94 0000 call __udivmodsi4
  953. 936 06ae 4427 clr r20
  954. 937 06b0 37FD sbrc r19,7
  955. 938 06b2 4095 com r20
  956. 939 06b4 542F mov r21,r20
  957. 940 06b6 2E0D add r18,r14
  958. 941 06b8 3F1D adc r19,r15
  959. 942 06ba 401F adc r20,r16
  960. 943 06bc 511F adc r21,r17
  961. 944 06be 6091 0000 lds r22,pSectorBuffer
  962. 945 06c2 7091 0000 lds r23,(pSectorBuffer)+1
  963. 946 06c6 01E0 ldi r16,lo8(1)
  964. 947 06c8 10E0 ldi r17,hi8(1)
  965. 948 06ca EB81 ldd r30,Y+3
  966. 949 06cc FC81 ldd r31,Y+4
  967. 950 06ce 8181 ldd r24,Z+1
  968. 951 06d0 0E94 0000 call MMCReadSectors
  969. 952 06d4 892B or r24,r25
  970. 953 06d6 01F0 breq .+2
  971. 954 06d8 00C0 rjmp .L82
  972. 955 06da C401 movw r24,r8
  973. 956 06dc B301 movw r22,r6
  974. 957 06de A601 movw r20,r12
  975. 958 06e0 9501 movw r18,r10
  976. 959 06e2 0E94 0000 call __udivmodsi4
  977. 960 06e6 6101 movw r12,r2
  978. 961 06e8 4214 cp r4,r2
  979. 962 06ea 5304 cpc r5,r3
  980. 963 06ec 04F4 brge .L84
  981. 964 06ee 6201 movw r12,r4
  982. 965 .L84:
  983. 966 06f0 CB01 movw r24,r22
  984. 967 06f2 8C0D add r24,r12
  985. 968 06f4 9D1D adc r25,r13
  986. 969 06f6 2816 cp r2,r24
  987. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 18
  988. 970 06f8 3906 cpc r3,r25
  989. 971 06fa 04F4 brge .L85
  990. 972 06fc 6101 movw r12,r2
  991. 973 06fe C61A sub r12,r22
  992. 974 0700 D70A sbc r13,r23
  993. 975 .L85:
  994. 976 0702 8091 0000 lds r24,pSectorBuffer
  995. 977 0706 9091 0000 lds r25,(pSectorBuffer)+1
  996. 978 070a 680F add r22,r24
  997. 979 070c 791F adc r23,r25
  998. 980 070e A601 movw r20,r12
  999. 981 0710 8981 ldd r24,Y+1
  1000. 982 0712 9A81 ldd r25,Y+2
  1001. 983 0714 0E94 0000 call memcpy
  1002. 984 0718 7601 movw r14,r12
  1003. 985 071a 0027 clr r16
  1004. 986 071c F7FC sbrc r15,7
  1005. 987 071e 0095 com r16
  1006. 988 0720 102F mov r17,r16
  1007. 989 0722 EF81 ldd r30,Y+7
  1008. 990 0724 F885 ldd r31,Y+8
  1009. 991 0726 2485 ldd r18,Z+12
  1010. 992 0728 3585 ldd r19,Z+13
  1011. 993 072a 4685 ldd r20,Z+14
  1012. 994 072c 5785 ldd r21,Z+15
  1013. 995 072e 2E0D add r18,r14
  1014. 996 0730 3F1D adc r19,r15
  1015. 997 0732 401F adc r20,r16
  1016. 998 0734 511F adc r21,r17
  1017. 999 0736 2487 std Z+12,r18
  1018. 1000 0738 3587 std Z+13,r19
  1019. 1001 073a 4687 std Z+14,r20
  1020. 1002 073c 5787 std Z+15,r21
  1021. 1003 073e 8089 ldd r24,Z+16
  1022. 1004 0740 9189 ldd r25,Z+17
  1023. 1005 0742 A289 ldd r26,Z+18
  1024. 1006 0744 B389 ldd r27,Z+19
  1025. 1007 0746 8E0D add r24,r14
  1026. 1008 0748 9F1D adc r25,r15
  1027. 1009 074a A01F adc r26,r16
  1028. 1010 074c B11F adc r27,r17
  1029. 1011 074e 808B std Z+16,r24
  1030. 1012 0750 918B std Z+17,r25
  1031. 1013 0752 A28B std Z+18,r26
  1032. 1014 0754 B38B std Z+19,r27
  1033. 1015 0756 8081 ld r24,Z
  1034. 1016 0758 9181 ldd r25,Z+1
  1035. 1017 075a A281 ldd r26,Z+2
  1036. 1018 075c B381 ldd r27,Z+3
  1037. 1019 075e 2817 cp r18,r24
  1038. 1020 0760 3907 cpc r19,r25
  1039. 1021 0762 4A07 cpc r20,r26
  1040. 1022 0764 5B07 cpc r21,r27
  1041. 1023 0766 00F0 brlo .L88
  1042. 1024 0768 81E0 ldi r24,lo8(1)
  1043. 1025 076a 90E0 ldi r25,hi8(1)
  1044. 1026 076c 978B std Z+23,r25
  1045. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 19
  1046. 1027 076e 868B std Z+22,r24
  1047. 1028 .L88:
  1048. 1029 0770 EF81 ldd r30,Y+7
  1049. 1030 0772 F885 ldd r31,Y+8
  1050. 1031 0774 2089 ldd r18,Z+16
  1051. 1032 0776 3189 ldd r19,Z+17
  1052. 1033 0778 4289 ldd r20,Z+18
  1053. 1034 077a 5389 ldd r21,Z+19
  1054. 1035 077c EB81 ldd r30,Y+3
  1055. 1036 077e FC81 ldd r31,Y+4
  1056. 1037 0780 868D ldd r24,Z+30
  1057. 1038 0782 978D ldd r25,Z+31
  1058. 1039 0784 A0A1 ldd r26,Z+32
  1059. 1040 0786 B1A1 ldd r27,Z+33
  1060. 1041 0788 2817 cp r18,r24
  1061. 1042 078a 3907 cpc r19,r25
  1062. 1043 078c 4A07 cpc r20,r26
  1063. 1044 078e 5B07 cpc r21,r27
  1064. 1045 0790 00F0 brlo .L90
  1065. 1046 0792 EF81 ldd r30,Y+7
  1066. 1047 0794 F885 ldd r31,Y+8
  1067. 1048 0796 4085 ldd r20,Z+8
  1068. 1049 0798 5185 ldd r21,Z+9
  1069. 1050 079a 6285 ldd r22,Z+10
  1070. 1051 079c 7385 ldd r23,Z+11
  1071. 1052 079e 8B81 ldd r24,Y+3
  1072. 1053 07a0 9C81 ldd r25,Y+4
  1073. 1054 07a2 0E94 0000 call GetNextCluster
  1074. 1055 07a6 EF81 ldd r30,Y+7
  1075. 1056 07a8 F885 ldd r31,Y+8
  1076. 1057 07aa 6087 std Z+8,r22
  1077. 1058 07ac 7187 std Z+9,r23
  1078. 1059 07ae 8287 std Z+10,r24
  1079. 1060 07b0 9387 std Z+11,r25
  1080. 1061 07b2 108A std Z+16,__zero_reg__
  1081. 1062 07b4 118A std Z+17,__zero_reg__
  1082. 1063 07b6 128A std Z+18,__zero_reg__
  1083. 1064 07b8 138A std Z+19,__zero_reg__
  1084. 1065 .L90:
  1085. 1066 07ba 6981 ldd r22,Y+1
  1086. 1067 07bc 7A81 ldd r23,Y+2
  1087. 1068 07be 6C0D add r22,r12
  1088. 1069 07c0 7D1D adc r23,r13
  1089. 1070 07c2 7A83 std Y+2,r23
  1090. 1071 07c4 6983 std Y+1,r22
  1091. 1072 07c6 4C18 sub r4,r12
  1092. 1073 07c8 5D08 sbc r5,r13
  1093. 1074 07ca 00C0 rjmp .L80
  1094. 1075 .L82:
  1095. 1076 07cc 8DEF ldi r24,lo8(-3)
  1096. 1077 07ce 9FEF ldi r25,hi8(-3)
  1097. 1078 07d0 00C0 rjmp .L95
  1098. 1079 .L80:
  1099. 1080 07d2 4114 cp r4,__zero_reg__
  1100. 1081 07d4 5104 cpc r5,__zero_reg__
  1101. 1082 07d6 01F0 breq .+2
  1102. 1083 07d8 00C0 rjmp .L81
  1103. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 20
  1104. 1084 07da 0D81 ldd r16,Y+5
  1105. 1085 07dc 1E81 ldd r17,Y+6
  1106. 1086 07de 00C0 rjmp .L92
  1107. 1087 .L76:
  1108. 1088 07e0 8EEF ldi r24,lo8(-2)
  1109. 1089 07e2 9FEF ldi r25,hi8(-2)
  1110. 1090 .L95:
  1111. 1091 07e4 EF81 ldd r30,Y+7
  1112. 1092 07e6 F885 ldd r31,Y+8
  1113. 1093 07e8 958B std Z+21,r25
  1114. 1094 07ea 848B std Z+20,r24
  1115. 1095 .L72:
  1116. 1096 07ec 00E0 ldi r16,lo8(0)
  1117. 1097 07ee 10E0 ldi r17,hi8(0)
  1118. 1098 .L92:
  1119. 1099 07f0 0E94 0000 call FATFree
  1120. 1100 07f4 C801 movw r24,r16
  1121. 1101 /* epilogue: frame size=8 */
  1122. 1102 07f6 2896 adiw r28,8
  1123. 1103 07f8 0FB6 in __tmp_reg__,__SREG__
  1124. 1104 07fa F894 cli
  1125. 1105 07fc DEBF out __SP_H__,r29
  1126. 1106 07fe 0FBE out __SREG__,__tmp_reg__
  1127. 1107 0800 CDBF out __SP_L__,r28
  1128. 1108 0802 DF91 pop r29
  1129. 1109 0804 CF91 pop r28
  1130. 1110 0806 1F91 pop r17
  1131. 1111 0808 0F91 pop r16
  1132. 1112 080a FF90 pop r15
  1133. 1113 080c EF90 pop r14
  1134. 1114 080e DF90 pop r13
  1135. 1115 0810 CF90 pop r12
  1136. 1116 0812 BF90 pop r11
  1137. 1117 0814 AF90 pop r10
  1138. 1118 0816 9F90 pop r9
  1139. 1119 0818 8F90 pop r8
  1140. 1120 081a 7F90 pop r7
  1141. 1121 081c 6F90 pop r6
  1142. 1122 081e 5F90 pop r5
  1143. 1123 0820 4F90 pop r4
  1144. 1124 0822 3F90 pop r3
  1145. 1125 0824 2F90 pop r2
  1146. 1126 0826 0895 ret
  1147. 1127 /* epilogue end (size=25) */
  1148. 1128 /* function FATFileRead size 312 (261) */
  1149. 1129 .size FATFileRead, .-FATFileRead
  1150. 1130 .global FATFileSize
  1151. 1131 .type FATFileSize, @function
  1152. 1132 FATFileSize:
  1153. 1133 /* prologue: frame size=0 */
  1154. 1134 0828 EF92 push r14
  1155. 1135 082a FF92 push r15
  1156. 1136 082c 0F93 push r16
  1157. 1137 082e 1F93 push r17
  1158. 1138 0830 CF93 push r28
  1159. 1139 0832 DF93 push r29
  1160. 1140 /* prologue end (size=6) */
  1161. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 21
  1162. 1141 0834 EC01 movw r28,r24
  1163. 1142 0836 0E94 0000 call FATLock
  1164. 1143 083a 2097 sbiw r28,0
  1165. 1144 083c 01F0 breq .L97
  1166. 1145 083e EC81 ldd r30,Y+4
  1167. 1146 0840 FD81 ldd r31,Y+5
  1168. 1147 0842 3097 sbiw r30,0
  1169. 1148 0844 01F0 breq .L97
  1170. 1149 0846 E080 ld r14,Z
  1171. 1150 0848 F180 ldd r15,Z+1
  1172. 1151 084a 0281 ldd r16,Z+2
  1173. 1152 084c 1381 ldd r17,Z+3
  1174. 1153 084e 00C0 rjmp .L100
  1175. 1154 .L97:
  1176. 1155 0850 0FEF ldi r16,lo8(-1)
  1177. 1156 0852 E02E mov r14,r16
  1178. 1157 0854 0FEF ldi r16,hi8(-1)
  1179. 1158 0856 F02E mov r15,r16
  1180. 1159 0858 0FEF ldi r16,hlo8(-1)
  1181. 1160 085a 002F mov r16,r16
  1182. 1161 085c 0FEF ldi r16,hhi8(-1)
  1183. 1162 085e 102F mov r17,r16
  1184. 1163 .L100:
  1185. 1164 0860 0E94 0000 call FATFree
  1186. 1165 0864 C801 movw r24,r16
  1187. 1166 0866 B701 movw r22,r14
  1188. 1167 /* epilogue: frame size=0 */
  1189. 1168 0868 DF91 pop r29
  1190. 1169 086a CF91 pop r28
  1191. 1170 086c 1F91 pop r17
  1192. 1171 086e 0F91 pop r16
  1193. 1172 0870 FF90 pop r15
  1194. 1173 0872 EF90 pop r14
  1195. 1174 0874 0895 ret
  1196. 1175 /* epilogue end (size=7) */
  1197. 1176 /* function FATFileSize size 39 (26) */
  1198. 1177 .size FATFileSize, .-FATFileSize
  1199. 1178 .type FATFileClose, @function
  1200. 1179 FATFileClose:
  1201. 1180 /* prologue: frame size=0 */
  1202. 1181 0876 CF93 push r28
  1203. 1182 0878 DF93 push r29
  1204. 1183 /* prologue end (size=2) */
  1205. 1184 087a EC01 movw r28,r24
  1206. 1185 087c 0E94 0000 call FATLock
  1207. 1186 0880 2097 sbiw r28,0
  1208. 1187 0882 01F4 brne .L103
  1209. 1188 0884 CFEF ldi r28,lo8(-1)
  1210. 1189 0886 DFEF ldi r29,hi8(-1)
  1211. 1190 0888 00C0 rjmp .L105
  1212. 1191 .L103:
  1213. 1192 088a 8C81 ldd r24,Y+4
  1214. 1193 088c 9D81 ldd r25,Y+5
  1215. 1194 088e 0097 sbiw r24,0
  1216. 1195 0890 01F0 breq .L106
  1217. 1196 0892 0E94 0000 call NutHeapFree
  1218. 1197 .L106:
  1219. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 22
  1220. 1198 0896 CE01 movw r24,r28
  1221. 1199 0898 0E94 0000 call NutHeapFree
  1222. 1200 089c C0E0 ldi r28,lo8(0)
  1223. 1201 089e D0E0 ldi r29,hi8(0)
  1224. 1202 .L105:
  1225. 1203 08a0 0E94 0000 call FATFree
  1226. 1204 08a4 CE01 movw r24,r28
  1227. 1205 /* epilogue: frame size=0 */
  1228. 1206 08a6 DF91 pop r29
  1229. 1207 08a8 CF91 pop r28
  1230. 1208 08aa 0895 ret
  1231. 1209 /* epilogue end (size=3) */
  1232. 1210 /* function FATFileClose size 27 (22) */
  1233. 1211 .size FATFileClose, .-FATFileClose
  1234. 1212 .type CFUnMount, @function
  1235. 1213 CFUnMount:
  1236. 1214 /* prologue: frame size=0 */
  1237. 1215 08ac 0F93 push r16
  1238. 1216 08ae 1F93 push r17
  1239. 1217 /* prologue end (size=2) */
  1240. 1218 08b0 8C01 movw r16,r24
  1241. 1219 08b2 0E94 0000 call FATLock
  1242. 1220 08b6 012B or r16,r17
  1243. 1221 08b8 01F4 brne .L110
  1244. 1222 08ba 1092 0000 sts sDriveInfo+2,__zero_reg__
  1245. 1223 .L110:
  1246. 1224 08be 0E94 0000 call FATFree
  1247. 1225 /* epilogue: frame size=0 */
  1248. 1226 08c2 1F91 pop r17
  1249. 1227 08c4 0F91 pop r16
  1250. 1228 08c6 0895 ret
  1251. 1229 /* epilogue end (size=3) */
  1252. 1230 /* function CFUnMount size 14 (9) */
  1253. 1231 .size CFUnMount, .-CFUnMount
  1254. 1232 .type MountDrive, @function
  1255. 1233 MountDrive:
  1256. 1234 /* prologue: frame size=4 */
  1257. 1235 08c8 2F92 push r2
  1258. 1236 08ca 3F92 push r3
  1259. 1237 08cc 4F92 push r4
  1260. 1238 08ce 5F92 push r5
  1261. 1239 08d0 6F92 push r6
  1262. 1240 08d2 7F92 push r7
  1263. 1241 08d4 8F92 push r8
  1264. 1242 08d6 9F92 push r9
  1265. 1243 08d8 AF92 push r10
  1266. 1244 08da BF92 push r11
  1267. 1245 08dc CF92 push r12
  1268. 1246 08de DF92 push r13
  1269. 1247 08e0 EF92 push r14
  1270. 1248 08e2 FF92 push r15
  1271. 1249 08e4 0F93 push r16
  1272. 1250 08e6 1F93 push r17
  1273. 1251 08e8 CF93 push r28
  1274. 1252 08ea DF93 push r29
  1275. 1253 08ec CDB7 in r28,__SP_L__
  1276. 1254 08ee DEB7 in r29,__SP_H__
  1277. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 23
  1278. 1255 08f0 2497 sbiw r28,4
  1279. 1256 08f2 0FB6 in __tmp_reg__,__SREG__
  1280. 1257 08f4 F894 cli
  1281. 1258 08f6 DEBF out __SP_H__,r29
  1282. 1259 08f8 0FBE out __SREG__,__tmp_reg__
  1283. 1260 08fa CDBF out __SP_L__,r28
  1284. 1261 /* prologue end (size=26) */
  1285. 1262 08fc 182F mov r17,r24
  1286. 1263 08fe 0E94 0000 call FATLock
  1287. 1264 0902 8091 0000 lds r24,pLongName1
  1288. 1265 0906 9091 0000 lds r25,(pLongName1)+1
  1289. 1266 090a 892B or r24,r25
  1290. 1267 090c 01F4 brne .L114
  1291. 1268 090e 80E4 ldi r24,lo8(64)
  1292. 1269 0910 90E0 ldi r25,hi8(64)
  1293. 1270 0912 0E94 0000 call NutHeapAlloc
  1294. 1271 0916 9093 0000 sts (pLongName1)+1,r25
  1295. 1272 091a 8093 0000 sts pLongName1,r24
  1296. 1273 .L114:
  1297. 1274 091e 8091 0000 lds r24,pLongName2
  1298. 1275 0922 9091 0000 lds r25,(pLongName2)+1
  1299. 1276 0926 892B or r24,r25
  1300. 1277 0928 01F4 brne .L116
  1301. 1278 092a 80E4 ldi r24,lo8(64)
  1302. 1279 092c 90E0 ldi r25,hi8(64)
  1303. 1280 092e 0E94 0000 call NutHeapAlloc
  1304. 1281 0932 9093 0000 sts (pLongName2)+1,r25
  1305. 1282 0936 8093 0000 sts pLongName2,r24
  1306. 1283 .L116:
  1307. 1284 093a 8091 0000 lds r24,pSectorBuffer
  1308. 1285 093e 9091 0000 lds r25,(pSectorBuffer)+1
  1309. 1286 0942 892B or r24,r25
  1310. 1287 0944 01F4 brne .L118
  1311. 1288 0946 80E0 ldi r24,lo8(512)
  1312. 1289 0948 92E0 ldi r25,hi8(512)
  1313. 1290 094a 0E94 0000 call NutHeapAlloc
  1314. 1291 094e 9093 0000 sts (pSectorBuffer)+1,r25
  1315. 1292 0952 8093 0000 sts pSectorBuffer,r24
  1316. 1293 0956 892B or r24,r25
  1317. 1294 0958 01F4 brne .+2
  1318. 1295 095a 00C0 rjmp .L120
  1319. 1296 .L118:
  1320. 1297 095c 8091 0000 lds r24,pLongName1
  1321. 1298 0960 9091 0000 lds r25,(pLongName1)+1
  1322. 1299 0964 892B or r24,r25
  1323. 1300 0966 01F4 brne .+2
  1324. 1301 0968 00C0 rjmp .L120
  1325. 1302 096a 8091 0000 lds r24,pLongName2
  1326. 1303 096e 9091 0000 lds r25,(pLongName2)+1
  1327. 1304 0972 892B or r24,r25
  1328. 1305 0974 01F4 brne .+2
  1329. 1306 0976 00C0 rjmp .L120
  1330. 1307 0978 82E2 ldi r24,lo8(34)
  1331. 1308 097a 189F mul r17,r24
  1332. 1309 097c F001 movw r30,r0
  1333. 1310 097e 1124 clr r1
  1334. 1311 0980 E050 subi r30,lo8(-(sDriveInfo))
  1335. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 24
  1336. 1312 0982 F040 sbci r31,hi8(-(sDriveInfo))
  1337. 1313 0984 1192 st Z+,__zero_reg__
  1338. 1314 0986 8A95 dec r24
  1339. 1315 0988 01F4 brne .-6
  1340. 1316 098a E12E mov r14,r17
  1341. 1317 098c FF24 clr r15
  1342. 1318 098e 2701 movw r4,r14
  1343. 1319 0990 440C lsl r4
  1344. 1320 0992 551C rol r5
  1345. 1321 0994 C701 movw r24,r14
  1346. 1322 0996 35E0 ldi r19,5
  1347. 1323 0998 880F 1: lsl r24
  1348. 1324 099a 991F rol r25
  1349. 1325 099c 3A95 dec r19
  1350. 1326 099e 01F4 brne 1b
  1351. 1327 09a0 480E add r4,r24
  1352. 1328 09a2 591E adc r5,r25
  1353. 1329 09a4 20E0 ldi r18,lo8(sDriveInfo)
  1354. 1330 09a6 30E0 ldi r19,hi8(sDriveInfo)
  1355. 1331 09a8 420E add r4,r18
  1356. 1332 09aa 531E adc r5,r19
  1357. 1333 09ac F201 movw r30,r4
  1358. 1334 09ae 1183 std Z+1,r17
  1359. 1335 09b0 812F mov r24,r17
  1360. 1336 09b2 0E94 0000 call MMCGetSectorSize
  1361. 1337 09b6 F201 movw r30,r4
  1362. 1338 09b8 9583 std Z+5,r25
  1363. 1339 09ba 8483 std Z+4,r24
  1364. 1340 09bc 812F mov r24,r17
  1365. 1341 09be 0E94 0000 call MMCIsCDROMDevice
  1366. 1342 09c2 0197 sbiw r24,1
  1367. 1343 09c4 01F4 brne .L123
  1368. 1344 09c6 F201 movw r30,r4
  1369. 1345 09c8 8381 ldd r24,Z+3
  1370. 1346 09ca 8160 ori r24,lo8(1)
  1371. 1347 09cc 8383 std Z+3,r24
  1372. 1348 .L123:
  1373. 1349 09ce 812F mov r24,r17
  1374. 1350 09d0 0E94 0000 call MMCIsZIPDevice
  1375. 1351 09d4 0197 sbiw r24,1
  1376. 1352 09d6 01F4 brne .L125
  1377. 1353 09d8 F201 movw r30,r4
  1378. 1354 09da 8381 ldd r24,Z+3
  1379. 1355 09dc 8260 ori r24,lo8(2)
  1380. 1356 09de 8383 std Z+3,r24
  1381. 1357 .L125:
  1382. 1358 09e0 F201 movw r30,r4
  1383. 1359 09e2 8481 ldd r24,Z+4
  1384. 1360 09e4 9581 ldd r25,Z+5
  1385. 1361 09e6 8050 subi r24,lo8(512)
  1386. 1362 09e8 9240 sbci r25,hi8(512)
  1387. 1363 09ea 01F0 breq .L128
  1388. 1364 09ec 01E0 ldi r16,lo8(1)
  1389. 1365 09ee 10E0 ldi r17,hi8(1)
  1390. 1366 09f0 00C0 rjmp .L129
  1391. 1367 .L128:
  1392. 1368 09f2 F201 movw r30,r4
  1393. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 25
  1394. 1369 09f4 8381 ldd r24,Z+3
  1395. 1370 09f6 81FF sbrs r24,1
  1396. 1371 09f8 00C0 rjmp .L130
  1397. 1372 09fa 20E2 ldi r18,lo8(32)
  1398. 1373 09fc 30E0 ldi r19,hi8(32)
  1399. 1374 09fe 40E0 ldi r20,hlo8(32)
  1400. 1375 0a00 50E0 ldi r21,hhi8(32)
  1401. 1376 0a02 00C0 rjmp .L132
  1402. 1377 .L130:
  1403. 1378 0a04 6091 0000 lds r22,pSectorBuffer
  1404. 1379 0a08 7091 0000 lds r23,(pSectorBuffer)+1
  1405. 1380 0a0c 01E0 ldi r16,lo8(1)
  1406. 1381 0a0e 10E0 ldi r17,hi8(1)
  1407. 1382 0a10 20E0 ldi r18,lo8(0)
  1408. 1383 0a12 30E0 ldi r19,hi8(0)
  1409. 1384 0a14 40E0 ldi r20,hlo8(0)
  1410. 1385 0a16 50E0 ldi r21,hhi8(0)
  1411. 1386 0a18 8E2D mov r24,r14
  1412. 1387 0a1a 0E94 0000 call MMCReadSectors
  1413. 1388 0a1e 8C01 movw r16,r24
  1414. 1389 0a20 892B or r24,r25
  1415. 1390 0a22 01F0 breq .+2
  1416. 1391 0a24 00C0 rjmp .L129
  1417. 1392 0a26 E091 0000 lds r30,pSectorBuffer
  1418. 1393 0a2a F091 0000 lds r31,(pSectorBuffer)+1
  1419. 1394 0a2e E250 subi r30,lo8(-(510))
  1420. 1395 0a30 FE4F sbci r31,hi8(-(510))
  1421. 1396 0a32 8081 ld r24,Z
  1422. 1397 0a34 9181 ldd r25,Z+1
  1423. 1398 0a36 EE5F subi r30,lo8(-(-510))
  1424. 1399 0a38 F140 sbci r31,hi8(-(-510))
  1425. 1400 0a3a 8555 subi r24,lo8(-21931)
  1426. 1401 0a3c 9A4A sbci r25,hi8(-21931)
  1427. 1402 0a3e 01F0 breq .+2
  1428. 1403 0a40 00C0 rjmp .L129
  1429. 1404 0a42 E653 subi r30,lo8(-(458))
  1430. 1405 0a44 FE4F sbci r31,hi8(-(458))
  1431. 1406 0a46 8081 ld r24,Z
  1432. 1407 0a48 9181 ldd r25,Z+1
  1433. 1408 0a4a A281 ldd r26,Z+2
  1434. 1409 0a4c B381 ldd r27,Z+3
  1435. 1410 0a4e EA5C subi r30,lo8(-(-458))
  1436. 1411 0a50 F140 sbci r31,hi8(-(-458))
  1437. 1412 0a52 0097 sbiw r24,0
  1438. 1413 0a54 A105 cpc r26,__zero_reg__
  1439. 1414 0a56 B105 cpc r27,__zero_reg__
  1440. 1415 0a58 01F4 brne .+2
  1441. 1416 0a5a 00C0 rjmp .L129
  1442. 1417 0a5c EA53 subi r30,lo8(-(454))
  1443. 1418 0a5e FE4F sbci r31,hi8(-(454))
  1444. 1419 0a60 2081 ld r18,Z
  1445. 1420 0a62 3181 ldd r19,Z+1
  1446. 1421 0a64 4281 ldd r20,Z+2
  1447. 1422 0a66 5381 ldd r21,Z+3
  1448. 1423 0a68 2115 cp r18,__zero_reg__
  1449. 1424 0a6a 3105 cpc r19,__zero_reg__
  1450. 1425 0a6c 4105 cpc r20,__zero_reg__
  1451. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 26
  1452. 1426 0a6e 5105 cpc r21,__zero_reg__
  1453. 1427 0a70 01F4 brne .+2
  1454. 1428 0a72 00C0 rjmp .L129
  1455. 1429 .L132:
  1456. 1430 0a74 6091 0000 lds r22,pSectorBuffer
  1457. 1431 0a78 7091 0000 lds r23,(pSectorBuffer)+1
  1458. 1432 0a7c 01E0 ldi r16,lo8(1)
  1459. 1433 0a7e 10E0 ldi r17,hi8(1)
  1460. 1434 0a80 8E2D mov r24,r14
  1461. 1435 0a82 0E94 0000 call MMCReadSectors
  1462. 1436 0a86 2090 0000 lds r2,pSectorBuffer
  1463. 1437 0a8a 3090 0000 lds r3,(pSectorBuffer)+1
  1464. 1438 0a8e 4EEF ldi r20,lo8(510)
  1465. 1439 0a90 51E0 ldi r21,hi8(510)
  1466. 1440 0a92 240E add r2,r20
  1467. 1441 0a94 351E adc r3,r21
  1468. 1442 0a96 D101 movw r26,r2
  1469. 1443 0a98 8D91 ld r24,X+
  1470. 1444 0a9a 9C91 ld r25,X
  1471. 1445 0a9c E2E0 ldi r30,lo8(-510)
  1472. 1446 0a9e FEEF ldi r31,hi8(-510)
  1473. 1447 0aa0 2E0E add r2,r30
  1474. 1448 0aa2 3F1E adc r3,r31
  1475. 1449 0aa4 8555 subi r24,lo8(-21931)
  1476. 1450 0aa6 9A4A sbci r25,hi8(-21931)
  1477. 1451 0aa8 01F0 breq .+2
  1478. 1452 0aaa 00C0 rjmp .L120
  1479. 1453 0aac F101 movw r30,r2
  1480. 1454 0aae 8585 ldd r24,Z+13
  1481. 1455 0ab0 F201 movw r30,r4
  1482. 1456 0ab2 8283 std Z+2,r24
  1483. 1457 0ab4 F101 movw r30,r2
  1484. 1458 0ab6 2689 ldd r18,Z+22
  1485. 1459 0ab8 3789 ldd r19,Z+23
  1486. 1460 0aba 2115 cp r18,__zero_reg__
  1487. 1461 0abc 3105 cpc r19,__zero_reg__
  1488. 1462 0abe 01F0 breq .L137
  1489. 1463 0ac0 C901 movw r24,r18
  1490. 1464 0ac2 AA27 clr r26
  1491. 1465 0ac4 BB27 clr r27
  1492. 1466 0ac6 8983 std Y+1,r24
  1493. 1467 0ac8 9A83 std Y+2,r25
  1494. 1468 0aca AB83 std Y+3,r26
  1495. 1469 0acc BC83 std Y+4,r27
  1496. 1470 0ace D201 movw r26,r4
  1497. 1471 0ad0 1C92 st X,__zero_reg__
  1498. 1472 0ad2 81E0 ldi r24,lo8(1)
  1499. 1473 0ad4 90E0 ldi r25,hi8(1)
  1500. 1474 0ad6 A0E0 ldi r26,hlo8(1)
  1501. 1475 0ad8 B0E0 ldi r27,hhi8(1)
  1502. 1476 0ada 00C0 rjmp .L141
  1503. 1477 .L137:
  1504. 1478 0adc F101 movw r30,r2
  1505. 1479 0ade 24A1 ldd r18,Z+36
  1506. 1480 0ae0 35A1 ldd r19,Z+37
  1507. 1481 0ae2 46A1 ldd r20,Z+38
  1508. 1482 0ae4 57A1 ldd r21,Z+39
  1509. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 27
  1510. 1483 0ae6 2983 std Y+1,r18
  1511. 1484 0ae8 3A83 std Y+2,r19
  1512. 1485 0aea 4B83 std Y+3,r20
  1513. 1486 0aec 5C83 std Y+4,r21
  1514. 1487 0aee 81E0 ldi r24,lo8(1)
  1515. 1488 0af0 D201 movw r26,r4
  1516. 1489 0af2 8C93 st X,r24
  1517. 1490 0af4 84A5 ldd r24,Z+44
  1518. 1491 0af6 95A5 ldd r25,Z+45
  1519. 1492 0af8 A6A5 ldd r26,Z+46
  1520. 1493 0afa B7A5 ldd r27,Z+47
  1521. 1494 .L141:
  1522. 1495 0afc F201 movw r30,r4
  1523. 1496 0afe 8687 std Z+14,r24
  1524. 1497 0b00 9787 std Z+15,r25
  1525. 1498 0b02 A08B std Z+16,r26
  1526. 1499 0b04 B18B std Z+17,r27
  1527. 1500 0b06 F101 movw r30,r2
  1528. 1501 0b08 6385 ldd r22,Z+11
  1529. 1502 0b0a 7485 ldd r23,Z+12
  1530. 1503 0b0c 8189 ldd r24,Z+17
  1531. 1504 0b0e 9289 ldd r25,Z+18
  1532. 1505 0b10 25E0 ldi r18,5
  1533. 1506 0b12 880F 1: lsl r24
  1534. 1507 0b14 991F rol r25
  1535. 1508 0b16 2A95 dec r18
  1536. 1509 0b18 01F4 brne 1b
  1537. 1510 0b1a 860F add r24,r22
  1538. 1511 0b1c 971F adc r25,r23
  1539. 1512 0b1e 0197 sbiw r24,1
  1540. 1513 0b20 0E94 0000 call __udivmodhi4
  1541. 1514 0b24 3B01 movw r6,r22
  1542. 1515 0b26 8824 clr r8
  1543. 1516 0b28 9924 clr r9
  1544. 1517 0b2a E684 ldd r14,Z+14
  1545. 1518 0b2c F784 ldd r15,Z+15
  1546. 1519 0b2e 0027 clr r16
  1547. 1520 0b30 1127 clr r17
  1548. 1521 0b32 A48C ldd r10,Z+28
  1549. 1522 0b34 B58C ldd r11,Z+29
  1550. 1523 0b36 C68C ldd r12,Z+30
  1551. 1524 0b38 D78C ldd r13,Z+31
  1552. 1525 0b3a AE0C add r10,r14
  1553. 1526 0b3c BF1C adc r11,r15
  1554. 1527 0b3e C01E adc r12,r16
  1555. 1528 0b40 D11E adc r13,r17
  1556. 1529 0b42 F201 movw r30,r4
  1557. 1530 0b44 A28A std Z+18,r10
  1558. 1531 0b46 B38A std Z+19,r11
  1559. 1532 0b48 C48A std Z+20,r12
  1560. 1533 0b4a D58A std Z+21,r13
  1561. 1534 0b4c 2981 ldd r18,Y+1
  1562. 1535 0b4e 3A81 ldd r19,Y+2
  1563. 1536 0b50 4B81 ldd r20,Y+3
  1564. 1537 0b52 5C81 ldd r21,Y+4
  1565. 1538 0b54 A20E add r10,r18
  1566. 1539 0b56 B31E adc r11,r19
  1567. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 28
  1568. 1540 0b58 C41E adc r12,r20
  1569. 1541 0b5a D51E adc r13,r21
  1570. 1542 0b5c A68A std Z+22,r10
  1571. 1543 0b5e B78A std Z+23,r11
  1572. 1544 0b60 C08E std Z+24,r12
  1573. 1545 0b62 D18E std Z+25,r13
  1574. 1546 0b64 F101 movw r30,r2
  1575. 1547 0b66 6089 ldd r22,Z+16
  1576. 1548 0b68 7727 clr r23
  1577. 1549 0b6a 8827 clr r24
  1578. 1550 0b6c 9927 clr r25
  1579. 1551 0b6e 0E94 0000 call __mulsi3
  1580. 1552 0b72 F101 movw r30,r2
  1581. 1553 0b74 248D ldd r18,Z+28
  1582. 1554 0b76 358D ldd r19,Z+29
  1583. 1555 0b78 468D ldd r20,Z+30
  1584. 1556 0b7a 578D ldd r21,Z+31
  1585. 1557 0b7c E20E add r14,r18
  1586. 1558 0b7e F31E adc r15,r19
  1587. 1559 0b80 041F adc r16,r20
  1588. 1560 0b82 151F adc r17,r21
  1589. 1561 0b84 E60C add r14,r6
  1590. 1562 0b86 F71C adc r15,r7
  1591. 1563 0b88 081D adc r16,r8
  1592. 1564 0b8a 191D adc r17,r9
  1593. 1565 0b8c E60E add r14,r22
  1594. 1566 0b8e F71E adc r15,r23
  1595. 1567 0b90 081F adc r16,r24
  1596. 1568 0b92 191F adc r17,r25
  1597. 1569 0b94 F201 movw r30,r4
  1598. 1570 0b96 E28E std Z+26,r14
  1599. 1571 0b98 F38E std Z+27,r15
  1600. 1572 0b9a 048F std Z+28,r16
  1601. 1573 0b9c 158F std Z+29,r17
  1602. 1574 0b9e F101 movw r30,r2
  1603. 1575 0ba0 8585 ldd r24,Z+13
  1604. 1576 0ba2 9927 clr r25
  1605. 1577 0ba4 F201 movw r30,r4
  1606. 1578 0ba6 2481 ldd r18,Z+4
  1607. 1579 0ba8 3581 ldd r19,Z+5
  1608. 1580 0baa AC01 movw r20,r24
  1609. 1581 0bac 429F mul r20,r18
  1610. 1582 0bae C001 movw r24,r0
  1611. 1583 0bb0 439F mul r20,r19
  1612. 1584 0bb2 900D add r25,r0
  1613. 1585 0bb4 529F mul r21,r18
  1614. 1586 0bb6 900D add r25,r0
  1615. 1587 0bb8 1124 clr r1
  1616. 1588 0bba AA27 clr r26
  1617. 1589 0bbc BB27 clr r27
  1618. 1590 0bbe 868F std Z+30,r24
  1619. 1591 0bc0 978F std Z+31,r25
  1620. 1592 0bc2 A0A3 std Z+32,r26
  1621. 1593 0bc4 B1A3 std Z+33,r27
  1622. 1594 0bc6 6682 std Z+6,r6
  1623. 1595 0bc8 7782 std Z+7,r7
  1624. 1596 0bca 8086 std Z+8,r8
  1625. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 29
  1626. 1597 0bcc 9186 std Z+9,r9
  1627. 1598 0bce 2981 ldd r18,Y+1
  1628. 1599 0bd0 3A81 ldd r19,Y+2
  1629. 1600 0bd2 4B81 ldd r20,Y+3
  1630. 1601 0bd4 5C81 ldd r21,Y+4
  1631. 1602 0bd6 A20E add r10,r18
  1632. 1603 0bd8 B31E adc r11,r19
  1633. 1604 0bda C41E adc r12,r20
  1634. 1605 0bdc D51E adc r13,r21
  1635. 1606 0bde A286 std Z+10,r10
  1636. 1607 0be0 B386 std Z+11,r11
  1637. 1608 0be2 C486 std Z+12,r12
  1638. 1609 0be4 D586 std Z+13,r13
  1639. 1610 .L120:
  1640. 1611 0be6 00E0 ldi r16,lo8(0)
  1641. 1612 0be8 10E0 ldi r17,hi8(0)
  1642. 1613 .L129:
  1643. 1614 0bea 0E94 0000 call FATFree
  1644. 1615 0bee C801 movw r24,r16
  1645. 1616 /* epilogue: frame size=4 */
  1646. 1617 0bf0 2496 adiw r28,4
  1647. 1618 0bf2 0FB6 in __tmp_reg__,__SREG__
  1648. 1619 0bf4 F894 cli
  1649. 1620 0bf6 DEBF out __SP_H__,r29
  1650. 1621 0bf8 0FBE out __SREG__,__tmp_reg__
  1651. 1622 0bfa CDBF out __SP_L__,r28
  1652. 1623 0bfc DF91 pop r29
  1653. 1624 0bfe CF91 pop r28
  1654. 1625 0c00 1F91 pop r17
  1655. 1626 0c02 0F91 pop r16
  1656. 1627 0c04 FF90 pop r15
  1657. 1628 0c06 EF90 pop r14
  1658. 1629 0c08 DF90 pop r13
  1659. 1630 0c0a CF90 pop r12
  1660. 1631 0c0c BF90 pop r11
  1661. 1632 0c0e AF90 pop r10
  1662. 1633 0c10 9F90 pop r9
  1663. 1634 0c12 8F90 pop r8
  1664. 1635 0c14 7F90 pop r7
  1665. 1636 0c16 6F90 pop r6
  1666. 1637 0c18 5F90 pop r5
  1667. 1638 0c1a 4F90 pop r4
  1668. 1639 0c1c 3F90 pop r3
  1669. 1640 0c1e 2F90 pop r2
  1670. 1641 0c20 0895 ret
  1671. 1642 /* epilogue end (size=25) */
  1672. 1643 /* function MountDrive size 434 (383) */
  1673. 1644 .size MountDrive, .-MountDrive
  1674. 1645 .global FATIOCtl
  1675. 1646 .type FATIOCtl, @function
  1676. 1647 FATIOCtl:
  1677. 1648 /* prologue: frame size=14 */
  1678. 1649 0c22 2F92 push r2
  1679. 1650 0c24 3F92 push r3
  1680. 1651 0c26 4F92 push r4
  1681. 1652 0c28 5F92 push r5
  1682. 1653 0c2a 6F92 push r6
  1683. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 30
  1684. 1654 0c2c 7F92 push r7
  1685. 1655 0c2e 8F92 push r8
  1686. 1656 0c30 9F92 push r9
  1687. 1657 0c32 AF92 push r10
  1688. 1658 0c34 BF92 push r11
  1689. 1659 0c36 CF92 push r12
  1690. 1660 0c38 DF92 push r13
  1691. 1661 0c3a EF92 push r14
  1692. 1662 0c3c FF92 push r15
  1693. 1663 0c3e 0F93 push r16
  1694. 1664 0c40 1F93 push r17
  1695. 1665 0c42 CF93 push r28
  1696. 1666 0c44 DF93 push r29
  1697. 1667 0c46 CDB7 in r28,__SP_L__
  1698. 1668 0c48 DEB7 in r29,__SP_H__
  1699. 1669 0c4a 2E97 sbiw r28,14
  1700. 1670 0c4c 0FB6 in __tmp_reg__,__SREG__
  1701. 1671 0c4e F894 cli
  1702. 1672 0c50 DEBF out __SP_H__,r29
  1703. 1673 0c52 0FBE out __SREG__,__tmp_reg__
  1704. 1674 0c54 CDBF out __SP_L__,r28
  1705. 1675 /* prologue end (size=26) */
  1706. 1676 0c56 FC01 movw r30,r24
  1707. 1677 0c58 892B or r24,r25
  1708. 1678 0c5a 01F4 brne .+2
  1709. 1679 0c5c 00C0 rjmp .L171
  1710. 1680 0c5e 8481 ldd r24,Z+4
  1711. 1681 0c60 8033 cpi r24,lo8(48)
  1712. 1682 0c62 04F4 brge .+2
  1713. 1683 0c64 00C0 rjmp .L171
  1714. 1684 0c66 8233 cpi r24,lo8(50)
  1715. 1685 0c68 04F4 brge .+2
  1716. 1686 0c6a 00C0 rjmp .L145
  1717. 1687 0c6c 8634 cpi r24,lo8(70)
  1718. 1688 0c6e 01F0 breq .+2
  1719. 1689 0c70 00C0 rjmp .L171
  1720. 1690 0c72 00C0 rjmp .L145
  1721. 1691 .L146:
  1722. 1692 0c74 0E94 0000 call FATLock
  1723. 1693 0c78 8091 0000 lds r24,sDriveInfo+4
  1724. 1694 0c7c 9091 0000 lds r25,(sDriveInfo+4)+1
  1725. 1695 0c80 0E94 0000 call NutHeapAlloc
  1726. 1696 0c84 9E87 std Y+14,r25
  1727. 1697 0c86 8D87 std Y+13,r24
  1728. 1698 0c88 892B or r24,r25
  1729. 1699 0c8a 01F4 brne .+2
  1730. 1700 0c8c 00C0 rjmp .L171
  1731. 1701 0c8e 3090 0000 lds r3,sDriveInfo+1
  1732. 1702 0c92 832D mov r24,r3
  1733. 1703 0c94 0E94 0000 call MMCGetTotalSectors
  1734. 1704 0c98 2B01 movw r4,r22
  1735. 1705 0c9a 3C01 movw r6,r24
  1736. 1706 0c9c 80EE ldi r24,lo8(-32)
  1737. 1707 0c9e 9FEF ldi r25,hi8(-32)
  1738. 1708 0ca0 AFEF ldi r26,hlo8(-32)
  1739. 1709 0ca2 BFEF ldi r27,hhi8(-32)
  1740. 1710 0ca4 480E add r4,r24
  1741. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 31
  1742. 1711 0ca6 591E adc r5,r25
  1743. 1712 0ca8 6A1E adc r6,r26
  1744. 1713 0caa 7B1E adc r7,r27
  1745. 1714 0cac E0E0 ldi r30,lo8(DskTableFAT32)
  1746. 1715 0cae F0E0 ldi r31,hi8(DskTableFAT32)
  1747. 1716 0cb0 9F01 movw r18,r30
  1748. 1717 0cb2 2C5F subi r18,lo8(-(4))
  1749. 1718 0cb4 3F4F sbci r19,hi8(-(4))
  1750. 1719 .L148:
  1751. 1720 0cb6 8081 ld r24,Z
  1752. 1721 0cb8 9181 ldd r25,Z+1
  1753. 1722 0cba A281 ldd r26,Z+2
  1754. 1723 0cbc B381 ldd r27,Z+3
  1755. 1724 0cbe 8415 cp r24,r4
  1756. 1725 0cc0 9505 cpc r25,r5
  1757. 1726 0cc2 A605 cpc r26,r6
  1758. 1727 0cc4 B705 cpc r27,r7
  1759. 1728 0cc6 00F0 brlo .L149
  1760. 1729 0cc8 D901 movw r26,r18
  1761. 1730 0cca 8C91 ld r24,X
  1762. 1731 0ccc 9927 clr r25
  1763. 1732 0cce 282E mov r2,r24
  1764. 1733 0cd0 8823 tst r24
  1765. 1734 0cd2 01F0 breq .L151
  1766. 1735 0cd4 00C0 rjmp .L170
  1767. 1736 .L149:
  1768. 1737 0cd6 2B5F subi r18,lo8(-(5))
  1769. 1738 0cd8 3F4F sbci r19,hi8(-(5))
  1770. 1739 0cda 3596 adiw r30,5
  1771. 1740 0cdc B0E0 ldi r27,hi8(DskTableFAT32+34)
  1772. 1741 0cde 2030 cpi r18,lo8(DskTableFAT32+34)
  1773. 1742 0ce0 3B07 cpc r19,r27
  1774. 1743 0ce2 01F4 brne .L148
  1775. 1744 .L151:
  1776. 1745 0ce4 8D85 ldd r24,Y+13
  1777. 1746 0ce6 9E85 ldd r25,Y+14
  1778. 1747 0ce8 0E94 0000 call NutHeapFree
  1779. 1748 0cec 00C0 rjmp .L171
  1780. 1749 .L170:
  1781. 1750 0cee 9927 clr r25
  1782. 1751 0cf0 AA27 clr r26
  1783. 1752 0cf2 BB27 clr r27
  1784. 1753 0cf4 8983 std Y+1,r24
  1785. 1754 0cf6 9A83 std Y+2,r25
  1786. 1755 0cf8 AB83 std Y+3,r26
  1787. 1756 0cfa BC83 std Y+4,r27
  1788. 1757 0cfc C301 movw r24,r6
  1789. 1758 0cfe B201 movw r22,r4
  1790. 1759 0d00 2981 ldd r18,Y+1
  1791. 1760 0d02 3A81 ldd r19,Y+2
  1792. 1761 0d04 4B81 ldd r20,Y+3
  1793. 1762 0d06 5C81 ldd r21,Y+4
  1794. 1763 0d08 0E94 0000 call __udivmodsi4
  1795. 1764 0d0c DA01 movw r26,r20
  1796. 1765 0d0e C901 movw r24,r18
  1797. 1766 0d10 02E0 ldi r16,2
  1798. 1767 0d12 880F 1: lsl r24
  1799. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 32
  1800. 1768 0d14 991F rol r25
  1801. 1769 0d16 AA1F rol r26
  1802. 1770 0d18 BB1F rol r27
  1803. 1771 0d1a 0A95 dec r16
  1804. 1772 0d1c 01F4 brne 1b
  1805. 1773 0d1e 8150 subi r24,lo8(-(511))
  1806. 1774 0d20 9E4F sbci r25,hi8(-(511))
  1807. 1775 0d22 AF4F sbci r26,hlo8(-(511))
  1808. 1776 0d24 BF4F sbci r27,hhi8(-(511))
  1809. 1777 0d26 19E0 ldi r17,9
  1810. 1778 0d28 B695 1: lsr r27
  1811. 1779 0d2a A795 ror r26
  1812. 1780 0d2c 9795 ror r25
  1813. 1781 0d2e 8795 ror r24
  1814. 1782 0d30 1A95 dec r17
  1815. 1783 0d32 01F4 brne 1b
  1816. 1784 0d34 8987 std Y+9,r24
  1817. 1785 0d36 9A87 std Y+10,r25
  1818. 1786 0d38 AB87 std Y+11,r26
  1819. 1787 0d3a BC87 std Y+12,r27
  1820. 1788 0d3c 4C01 movw r8,r24
  1821. 1789 0d3e 5D01 movw r10,r26
  1822. 1790 0d40 880C lsl r8
  1823. 1791 0d42 991C rol r9
  1824. 1792 0d44 AA1C rol r10
  1825. 1793 0d46 BB1C rol r11
  1826. 1794 0d48 8981 ldd r24,Y+1
  1827. 1795 0d4a 9A81 ldd r25,Y+2
  1828. 1796 0d4c AB81 ldd r26,Y+3
  1829. 1797 0d4e BC81 ldd r27,Y+4
  1830. 1798 0d50 815A subi r24,lo8(-(95))
  1831. 1799 0d52 9F4F sbci r25,hi8(-(95))
  1832. 1800 0d54 AF4F sbci r26,hlo8(-(95))
  1833. 1801 0d56 BF4F sbci r27,hhi8(-(95))
  1834. 1802 0d58 880E add r8,r24
  1835. 1803 0d5a 991E adc r9,r25
  1836. 1804 0d5c AA1E adc r10,r26
  1837. 1805 0d5e BB1E adc r11,r27
  1838. 1806 0d60 8F55 subi r24,lo8(-(-95))
  1839. 1807 0d62 9040 sbci r25,hi8(-(-95))
  1840. 1808 0d64 A040 sbci r26,hlo8(-(-95))
  1841. 1809 0d66 B040 sbci r27,hhi8(-(-95))
  1842. 1810 0d68 8983 std Y+1,r24
  1843. 1811 0d6a 9A83 std Y+2,r25
  1844. 1812 0d6c AB83 std Y+3,r26
  1845. 1813 0d6e BC83 std Y+4,r27
  1846. 1814 0d70 4091 0000 lds r20,sDriveInfo+4
  1847. 1815 0d74 5091 0000 lds r21,(sDriveInfo+4)+1
  1848. 1816 0d78 60E0 ldi r22,lo8(0)
  1849. 1817 0d7a 70E0 ldi r23,hi8(0)
  1850. 1818 0d7c 8D85 ldd r24,Y+13
  1851. 1819 0d7e 9E85 ldd r25,Y+14
  1852. 1820 0d80 0E94 0000 call memset
  1853. 1821 0d84 CC24 clr r12
  1854. 1822 0d86 DD24 clr r13
  1855. 1823 0d88 7601 movw r14,r12
  1856. 1824 0d8a 00C0 rjmp .L154
  1857. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 33
  1858. 1825 .L155:
  1859. 1826 0d8c 01E0 ldi r16,lo8(1)
  1860. 1827 0d8e 10E0 ldi r17,hi8(1)
  1861. 1828 0d90 A701 movw r20,r14
  1862. 1829 0d92 9601 movw r18,r12
  1863. 1830 0d94 6D85 ldd r22,Y+13
  1864. 1831 0d96 7E85 ldd r23,Y+14
  1865. 1832 0d98 832D mov r24,r3
  1866. 1833 0d9a 0E94 0000 call MMCWriteSectors
  1867. 1834 0d9e 892B or r24,r25
  1868. 1835 0da0 01F4 brne .L156
  1869. 1836 0da2 0894 sec
  1870. 1837 0da4 C11C adc r12,__zero_reg__
  1871. 1838 0da6 D11C adc r13,__zero_reg__
  1872. 1839 0da8 E11C adc r14,__zero_reg__
  1873. 1840 0daa F11C adc r15,__zero_reg__
  1874. 1841 .L154:
  1875. 1842 0dac C814 cp r12,r8
  1876. 1843 0dae D904 cpc r13,r9
  1877. 1844 0db0 EA04 cpc r14,r10
  1878. 1845 0db2 FB04 cpc r15,r11
  1879. 1846 0db4 01F4 brne .L155
  1880. 1847 .L156:
  1881. 1848 0db6 80E0 ldi r24,lo8(0)
  1882. 1849 0db8 90E0 ldi r25,hi8(0)
  1883. 1850 0dba 0E94 0000 call time
  1884. 1851 0dbe 6D83 std Y+5,r22
  1885. 1852 0dc0 7E83 std Y+6,r23
  1886. 1853 0dc2 8F83 std Y+7,r24
  1887. 1854 0dc4 9887 std Y+8,r25
  1888. 1855 0dc6 4091 0000 lds r20,sDriveInfo+4
  1889. 1856 0dca 5091 0000 lds r21,(sDriveInfo+4)+1
  1890. 1857 0dce 60E0 ldi r22,lo8(0)
  1891. 1858 0dd0 70E0 ldi r23,hi8(0)
  1892. 1859 0dd2 8D85 ldd r24,Y+13
  1893. 1860 0dd4 9E85 ldd r25,Y+14
  1894. 1861 0dd6 0E94 0000 call memset
  1895. 1862 0dda AD85 ldd r26,Y+13
  1896. 1863 0ddc BE85 ldd r27,Y+14
  1897. 1864 0dde A254 subi r26,lo8(-(446))
  1898. 1865 0de0 BE4F sbci r27,hi8(-(446))
  1899. 1866 0de2 1D92 st X+,__zero_reg__
  1900. 1867 0de4 81E0 ldi r24,lo8(1)
  1901. 1868 0de6 8D93 st X+,r24
  1902. 1869 0de8 8D93 st X+,r24
  1903. 1870 0dea 1D92 st X+,__zero_reg__
  1904. 1871 0dec 8BE0 ldi r24,lo8(11)
  1905. 1872 0dee 8D93 st X+,r24
  1906. 1873 0df0 1D92 st X+,__zero_reg__
  1907. 1874 0df2 1C92 st X,__zero_reg__
  1908. 1875 0df4 1296 adiw r26,2
  1909. 1876 0df6 EFE3 ldi r30,lo8(63)
  1910. 1877 0df8 AE2E mov r10,r30
  1911. 1878 0dfa B12C mov r11,__zero_reg__
  1912. 1879 0dfc C12C mov r12,__zero_reg__
  1913. 1880 0dfe D12C mov r13,__zero_reg__
  1914. 1881 0e00 FD01 movw r30,r26
  1915. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 34
  1916. 1882 0e02 A192 st Z+,r10
  1917. 1883 0e04 B192 st Z+,r11
  1918. 1884 0e06 C192 st Z+,r12
  1919. 1885 0e08 D192 st Z+,r13
  1920. 1886 0e0a DF01 movw r26,r30
  1921. 1887 0e0c 4082 st Z,r4
  1922. 1888 0e0e 5182 std Z+1,r5
  1923. 1889 0e10 6282 std Z+2,r6
  1924. 1890 0e12 7382 std Z+3,r7
  1925. 1891 0e14 AA5C subi r26,lo8(-(-458))
  1926. 1892 0e16 B140 sbci r27,hi8(-(-458))
  1927. 1893 0e18 BE87 std Y+14,r27
  1928. 1894 0e1a AD87 std Y+13,r26
  1929. 1895 0e1c 7EEF ldi r23,lo8(510)
  1930. 1896 0e1e E72E mov r14,r23
  1931. 1897 0e20 71E0 ldi r23,hi8(510)
  1932. 1898 0e22 F72E mov r15,r23
  1933. 1899 0e24 EA0E add r14,r26
  1934. 1900 0e26 FB1E adc r15,r27
  1935. 1901 0e28 65E5 ldi r22,lo8(-21931)
  1936. 1902 0e2a 862E mov r8,r22
  1937. 1903 0e2c 6AEA ldi r22,hi8(-21931)
  1938. 1904 0e2e 962E mov r9,r22
  1939. 1905 0e30 F701 movw r30,r14
  1940. 1906 0e32 9182 std Z+1,r9
  1941. 1907 0e34 8082 st Z,r8
  1942. 1908 0e36 01E0 ldi r16,lo8(1)
  1943. 1909 0e38 10E0 ldi r17,hi8(1)
  1944. 1910 0e3a 20E0 ldi r18,lo8(0)
  1945. 1911 0e3c 30E0 ldi r19,hi8(0)
  1946. 1912 0e3e 40E0 ldi r20,hlo8(0)
  1947. 1913 0e40 50E0 ldi r21,hhi8(0)
  1948. 1914 0e42 BD01 movw r22,r26
  1949. 1915 0e44 832D mov r24,r3
  1950. 1916 0e46 0E94 0000 call MMCWriteSectors
  1951. 1917 0e4a 8C01 movw r16,r24
  1952. 1918 0e4c 892B or r24,r25
  1953. 1919 0e4e 01F0 breq .+2
  1954. 1920 0e50 00C0 rjmp .L158
  1955. 1921 0e52 4091 0000 lds r20,sDriveInfo+4
  1956. 1922 0e56 5091 0000 lds r21,(sDriveInfo+4)+1
  1957. 1923 0e5a 60E0 ldi r22,lo8(0)
  1958. 1924 0e5c 70E0 ldi r23,hi8(0)
  1959. 1925 0e5e 8D85 ldd r24,Y+13
  1960. 1926 0e60 9E85 ldd r25,Y+14
  1961. 1927 0e62 0E94 0000 call memset
  1962. 1928 0e66 8BEE ldi r24,lo8(-21)
  1963. 1929 0e68 AD85 ldd r26,Y+13
  1964. 1930 0e6a BE85 ldd r27,Y+14
  1965. 1931 0e6c 8C93 st X,r24
  1966. 1932 0e6e 88E5 ldi r24,lo8(88)
  1967. 1933 0e70 FD01 movw r30,r26
  1968. 1934 0e72 8183 std Z+1,r24
  1969. 1935 0e74 80E9 ldi r24,lo8(-112)
  1970. 1936 0e76 8283 std Z+2,r24
  1971. 1937 0e78 0DE4 ldi r16,lo8(77)
  1972. 1938 0e7a 0383 std Z+3,r16
  1973. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 35
  1974. 1939 0e7c 93E5 ldi r25,lo8(83)
  1975. 1940 0e7e 9483 std Z+4,r25
  1976. 1941 0e80 84E4 ldi r24,lo8(68)
  1977. 1942 0e82 8583 std Z+5,r24
  1978. 1943 0e84 1FE4 ldi r17,lo8(79)
  1979. 1944 0e86 1683 std Z+6,r17
  1980. 1945 0e88 9783 std Z+7,r25
  1981. 1946 0e8a 85E3 ldi r24,lo8(53)
  1982. 1947 0e8c 8087 std Z+8,r24
  1983. 1948 0e8e 8EE2 ldi r24,lo8(46)
  1984. 1949 0e90 8187 std Z+9,r24
  1985. 1950 0e92 80E3 ldi r24,lo8(48)
  1986. 1951 0e94 8287 std Z+10,r24
  1987. 1952 0e96 80E0 ldi r24,lo8(512)
  1988. 1953 0e98 92E0 ldi r25,hi8(512)
  1989. 1954 0e9a 9487 std Z+12,r25
  1990. 1955 0e9c 8387 std Z+11,r24
  1991. 1956 0e9e 2586 std Z+13,r2
  1992. 1957 0ea0 80E2 ldi r24,lo8(32)
  1993. 1958 0ea2 90E0 ldi r25,hi8(32)
  1994. 1959 0ea4 9787 std Z+15,r25
  1995. 1960 0ea6 8687 std Z+14,r24
  1996. 1961 0ea8 82E0 ldi r24,lo8(2)
  1997. 1962 0eaa 808B std Z+16,r24
  1998. 1963 0eac 128A std Z+18,__zero_reg__
  1999. 1964 0eae 118A std Z+17,__zero_reg__
  2000. 1965 0eb0 148A std Z+20,__zero_reg__
  2001. 1966 0eb2 138A std Z+19,__zero_reg__
  2002. 1967 0eb4 88EF ldi r24,lo8(-8)
  2003. 1968 0eb6 858B std Z+21,r24
  2004. 1969 0eb8 178A std Z+23,__zero_reg__
  2005. 1970 0eba 168A std Z+22,__zero_reg__
  2006. 1971 0ebc 8FE3 ldi r24,lo8(63)
  2007. 1972 0ebe 90E0 ldi r25,hi8(63)
  2008. 1973 0ec0 918F std Z+25,r25
  2009. 1974 0ec2 808F std Z+24,r24
  2010. 1975 0ec4 8FEF ldi r24,lo8(255)
  2011. 1976 0ec6 90E0 ldi r25,hi8(255)
  2012. 1977 0ec8 938F std Z+27,r25
  2013. 1978 0eca 828F std Z+26,r24
  2014. 1979 0ecc ED85 ldd r30,Y+13
  2015. 1980 0ece FE85 ldd r31,Y+14
  2016. 1981 0ed0 A48E std Z+28,r10
  2017. 1982 0ed2 B58E std Z+29,r11
  2018. 1983 0ed4 C68E std Z+30,r12
  2019. 1984 0ed6 D78E std Z+31,r13
  2020. 1985 0ed8 40A2 std Z+32,r4
  2021. 1986 0eda 51A2 std Z+33,r5
  2022. 1987 0edc 62A2 std Z+34,r6
  2023. 1988 0ede 73A2 std Z+35,r7
  2024. 1989 0ee0 8985 ldd r24,Y+9
  2025. 1990 0ee2 9A85 ldd r25,Y+10
  2026. 1991 0ee4 AB85 ldd r26,Y+11
  2027. 1992 0ee6 BC85 ldd r27,Y+12
  2028. 1993 0ee8 84A3 std Z+36,r24
  2029. 1994 0eea 95A3 std Z+37,r25
  2030. 1995 0eec A6A3 std Z+38,r26
  2031. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 36
  2032. 1996 0eee B7A3 std Z+39,r27
  2033. 1997 0ef0 11A6 std Z+41,__zero_reg__
  2034. 1998 0ef2 10A6 std Z+40,__zero_reg__
  2035. 1999 0ef4 13A6 std Z+43,__zero_reg__
  2036. 2000 0ef6 12A6 std Z+42,__zero_reg__
  2037. 2001 0ef8 52E0 ldi r21,lo8(2)
  2038. 2002 0efa A52E mov r10,r21
  2039. 2003 0efc B12C mov r11,__zero_reg__
  2040. 2004 0efe C12C mov r12,__zero_reg__
  2041. 2005 0f00 D12C mov r13,__zero_reg__
  2042. 2006 0f02 ED85 ldd r30,Y+13
  2043. 2007 0f04 FE85 ldd r31,Y+14
  2044. 2008 0f06 A4A6 std Z+44,r10
  2045. 2009 0f08 B5A6 std Z+45,r11
  2046. 2010 0f0a C6A6 std Z+46,r12
  2047. 2011 0f0c D7A6 std Z+47,r13
  2048. 2012 0f0e 81E0 ldi r24,lo8(1)
  2049. 2013 0f10 90E0 ldi r25,hi8(1)
  2050. 2014 0f12 91AB std Z+49,r25
  2051. 2015 0f14 80AB std Z+48,r24
  2052. 2016 0f16 86E0 ldi r24,lo8(6)
  2053. 2017 0f18 90E0 ldi r25,hi8(6)
  2054. 2018 0f1a 93AB std Z+51,r25
  2055. 2019 0f1c 82AB std Z+50,r24
  2056. 2020 0f1e E05C subi r30,lo8(-(64))
  2057. 2021 0f20 FF4F sbci r31,hi8(-(64))
  2058. 2022 0f22 1082 st Z,__zero_reg__
  2059. 2023 0f24 3296 adiw r30,2
  2060. 2024 0f26 89E2 ldi r24,lo8(41)
  2061. 2025 0f28 8193 st Z+,r24
  2062. 2026 0f2a FE87 std Y+14,r31
  2063. 2027 0f2c ED87 std Y+13,r30
  2064. 2028 0f2e 6D81 ldd r22,Y+5
  2065. 2029 0f30 7E81 ldd r23,Y+6
  2066. 2030 0f32 8F81 ldd r24,Y+7
  2067. 2031 0f34 9885 ldd r25,Y+8
  2068. 2032 0f36 A301 movw r20,r6
  2069. 2033 0f38 9201 movw r18,r4
  2070. 2034 0f3a 0E94 0000 call __mulsi3
  2071. 2035 0f3e AD85 ldd r26,Y+13
  2072. 2036 0f40 BE85 ldd r27,Y+14
  2073. 2037 0f42 6D93 st X+,r22
  2074. 2038 0f44 7D93 st X+,r23
  2075. 2039 0f46 8D93 st X+,r24
  2076. 2040 0f48 9D93 st X+,r25
  2077. 2041 0f4a 8EE4 ldi r24,lo8(78)
  2078. 2042 0f4c 8D93 st X+,r24
  2079. 2043 0f4e 1D93 st X+,r17
  2080. 2044 0f50 90E2 ldi r25,lo8(32)
  2081. 2045 0f52 9D93 st X+,r25
  2082. 2046 0f54 8D93 st X+,r24
  2083. 2047 0f56 21E4 ldi r18,lo8(65)
  2084. 2048 0f58 2D93 st X+,r18
  2085. 2049 0f5a 0D93 st X+,r16
  2086. 2050 0f5c 85E4 ldi r24,lo8(69)
  2087. 2051 0f5e 8D93 st X+,r24
  2088. 2052 0f60 9D93 st X+,r25
  2089. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 37
  2090. 2053 0f62 9D93 st X+,r25
  2091. 2054 0f64 9D93 st X+,r25
  2092. 2055 0f66 9D93 st X+,r25
  2093. 2056 0f68 86E4 ldi r24,lo8(70)
  2094. 2057 0f6a 8D93 st X+,r24
  2095. 2058 0f6c 2D93 st X+,r18
  2096. 2059 0f6e 84E5 ldi r24,lo8(84)
  2097. 2060 0f70 8D93 st X+,r24
  2098. 2061 0f72 83E3 ldi r24,lo8(51)
  2099. 2062 0f74 8D93 st X+,r24
  2100. 2063 0f76 82E3 ldi r24,lo8(50)
  2101. 2064 0f78 8D93 st X+,r24
  2102. 2065 0f7a 9D93 st X+,r25
  2103. 2066 0f7c 9D93 st X+,r25
  2104. 2067 0f7e 9C93 st X,r25
  2105. 2068 0f80 A955 subi r26,lo8(-(-89))
  2106. 2069 0f82 B040 sbci r27,hi8(-(-89))
  2107. 2070 0f84 BE87 std Y+14,r27
  2108. 2071 0f86 AD87 std Y+13,r26
  2109. 2072 0f88 F701 movw r30,r14
  2110. 2073 0f8a 9182 std Z+1,r9
  2111. 2074 0f8c 8082 st Z,r8
  2112. 2075 0f8e 01E0 ldi r16,lo8(1)
  2113. 2076 0f90 10E0 ldi r17,hi8(1)
  2114. 2077 0f92 2FE3 ldi r18,lo8(63)
  2115. 2078 0f94 30E0 ldi r19,hi8(63)
  2116. 2079 0f96 40E0 ldi r20,hlo8(63)
  2117. 2080 0f98 50E0 ldi r21,hhi8(63)
  2118. 2081 0f9a BD01 movw r22,r26
  2119. 2082 0f9c 832D mov r24,r3
  2120. 2083 0f9e 0E94 0000 call MMCWriteSectors
  2121. 2084 0fa2 8C01 movw r16,r24
  2122. 2085 0fa4 892B or r24,r25
  2123. 2086 0fa6 01F0 breq .+2
  2124. 2087 0fa8 00C0 rjmp .L158
  2125. 2088 0faa 01E0 ldi r16,lo8(1)
  2126. 2089 0fac 10E0 ldi r17,hi8(1)
  2127. 2090 0fae 25E4 ldi r18,lo8(69)
  2128. 2091 0fb0 30E0 ldi r19,hi8(69)
  2129. 2092 0fb2 40E0 ldi r20,hlo8(69)
  2130. 2093 0fb4 50E0 ldi r21,hhi8(69)
  2131. 2094 0fb6 6D85 ldd r22,Y+13
  2132. 2095 0fb8 7E85 ldd r23,Y+14
  2133. 2096 0fba 832D mov r24,r3
  2134. 2097 0fbc 0E94 0000 call MMCWriteSectors
  2135. 2098 0fc0 892B or r24,r25
  2136. 2099 0fc2 01F0 breq .+2
  2137. 2100 0fc4 00C0 rjmp .L161
  2138. 2101 0fc6 4091 0000 lds r20,sDriveInfo+4
  2139. 2102 0fca 5091 0000 lds r21,(sDriveInfo+4)+1
  2140. 2103 0fce 60E0 ldi r22,lo8(0)
  2141. 2104 0fd0 70E0 ldi r23,hi8(0)
  2142. 2105 0fd2 8D85 ldd r24,Y+13
  2143. 2106 0fd4 9E85 ldd r25,Y+14
  2144. 2107 0fd6 0E94 0000 call memset
  2145. 2108 0fda 81EA ldi r24,lo8(-95)
  2146. 2109 0fdc 9FEF ldi r25,hi8(-95)
  2147. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 38
  2148. 2110 0fde AFEF ldi r26,hlo8(-95)
  2149. 2111 0fe0 BFEF ldi r27,hhi8(-95)
  2150. 2112 0fe2 480E add r4,r24
  2151. 2113 0fe4 591E adc r5,r25
  2152. 2114 0fe6 6A1E adc r6,r26
  2153. 2115 0fe8 7B1E adc r7,r27
  2154. 2116 0fea 82E5 ldi r24,lo8(1096897106)
  2155. 2117 0fec 92E5 ldi r25,hi8(1096897106)
  2156. 2118 0fee A1E6 ldi r26,hlo8(1096897106)
  2157. 2119 0ff0 B1E4 ldi r27,hhi8(1096897106)
  2158. 2120 0ff2 ED85 ldd r30,Y+13
  2159. 2121 0ff4 FE85 ldd r31,Y+14
  2160. 2122 0ff6 8083 st Z,r24
  2161. 2123 0ff8 9183 std Z+1,r25
  2162. 2124 0ffa A283 std Z+2,r26
  2163. 2125 0ffc B383 std Z+3,r27
  2164. 2126 0ffe EC51 subi r30,lo8(-(484))
  2165. 2127 1000 FE4F sbci r31,hi8(-(484))
  2166. 2128 1002 82E7 ldi r24,lo8(1631679090)
  2167. 2129 1004 92E7 ldi r25,hi8(1631679090)
  2168. 2130 1006 A1E4 ldi r26,hlo8(1631679090)
  2169. 2131 1008 B1E6 ldi r27,hhi8(1631679090)
  2170. 2132 100a 8193 st Z+,r24
  2171. 2133 100c 9193 st Z+,r25
  2172. 2134 100e A193 st Z+,r26
  2173. 2135 1010 B193 st Z+,r27
  2174. 2136 1012 FE87 std Y+14,r31
  2175. 2137 1014 ED87 std Y+13,r30
  2176. 2138 1016 C301 movw r24,r6
  2177. 2139 1018 B201 movw r22,r4
  2178. 2140 101a 2981 ldd r18,Y+1
  2179. 2141 101c 3A81 ldd r19,Y+2
  2180. 2142 101e 4B81 ldd r20,Y+3
  2181. 2143 1020 5C81 ldd r21,Y+4
  2182. 2144 1022 0E94 0000 call __udivmodsi4
  2183. 2145 1026 AD85 ldd r26,Y+13
  2184. 2146 1028 BE85 ldd r27,Y+14
  2185. 2147 102a 2D93 st X+,r18
  2186. 2148 102c 3D93 st X+,r19
  2187. 2149 102e 4D93 st X+,r20
  2188. 2150 1030 5D93 st X+,r21
  2189. 2151 1032 FD01 movw r30,r26
  2190. 2152 1034 A082 st Z,r10
  2191. 2153 1036 B182 std Z+1,r11
  2192. 2154 1038 C282 std Z+2,r12
  2193. 2155 103a D382 std Z+3,r13
  2194. 2156 103c EC5E subi r30,lo8(-(-492))
  2195. 2157 103e F140 sbci r31,hi8(-(-492))
  2196. 2158 1040 FE87 std Y+14,r31
  2197. 2159 1042 ED87 std Y+13,r30
  2198. 2160 1044 D701 movw r26,r14
  2199. 2161 1046 8D92 st X+,r8
  2200. 2162 1048 9C92 st X,r9
  2201. 2163 104a 20E4 ldi r18,lo8(64)
  2202. 2164 104c 30E0 ldi r19,hi8(64)
  2203. 2165 104e 40E0 ldi r20,hlo8(64)
  2204. 2166 1050 50E0 ldi r21,hhi8(64)
  2205. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 39
  2206. 2167 1052 BF01 movw r22,r30
  2207. 2168 1054 832D mov r24,r3
  2208. 2169 1056 0E94 0000 call MMCWriteSectors
  2209. 2170 105a 8C01 movw r16,r24
  2210. 2171 .L158:
  2211. 2172 105c 0115 cp r16,__zero_reg__
  2212. 2173 105e 1105 cpc r17,__zero_reg__
  2213. 2174 1060 01F0 breq .+2
  2214. 2175 1062 00C0 rjmp .L163
  2215. 2176 1064 4091 0000 lds r20,sDriveInfo+4
  2216. 2177 1068 5091 0000 lds r21,(sDriveInfo+4)+1
  2217. 2178 106c 60E0 ldi r22,lo8(0)
  2218. 2179 106e 70E0 ldi r23,hi8(0)
  2219. 2180 1070 8D85 ldd r24,Y+13
  2220. 2181 1072 9E85 ldd r25,Y+14
  2221. 2182 1074 0E94 0000 call memset
  2222. 2183 1078 2D85 ldd r18,Y+13
  2223. 2184 107a 3E85 ldd r19,Y+14
  2224. 2185 107c 88EF ldi r24,lo8(268435448)
  2225. 2186 107e 9FEF ldi r25,hi8(268435448)
  2226. 2187 1080 AFEF ldi r26,hlo8(268435448)
  2227. 2188 1082 BFE0 ldi r27,hhi8(268435448)
  2228. 2189 1084 F901 movw r30,r18
  2229. 2190 1086 8193 st Z+,r24
  2230. 2191 1088 9193 st Z+,r25
  2231. 2192 108a A193 st Z+,r26
  2232. 2193 108c B193 st Z+,r27
  2233. 2194 108e 9F01 movw r18,r30
  2234. 2195 1090 8FEF ldi r24,lo8(268435455)
  2235. 2196 1092 9FEF ldi r25,hi8(268435455)
  2236. 2197 1094 AFEF ldi r26,hlo8(268435455)
  2237. 2198 1096 BFE0 ldi r27,hhi8(268435455)
  2238. 2199 1098 ED85 ldd r30,Y+13
  2239. 2200 109a FE85 ldd r31,Y+14
  2240. 2201 109c 8483 std Z+4,r24
  2241. 2202 109e 9583 std Z+5,r25
  2242. 2203 10a0 A683 std Z+6,r26
  2243. 2204 10a2 B783 std Z+7,r27
  2244. 2205 10a4 F901 movw r30,r18
  2245. 2206 10a6 8483 std Z+4,r24
  2246. 2207 10a8 9583 std Z+5,r25
  2247. 2208 10aa A683 std Z+6,r26
  2248. 2209 10ac B783 std Z+7,r27
  2249. 2210 10ae 01E0 ldi r16,lo8(1)
  2250. 2211 10b0 10E0 ldi r17,hi8(1)
  2251. 2212 10b2 2FE5 ldi r18,lo8(95)
  2252. 2213 10b4 30E0 ldi r19,hi8(95)
  2253. 2214 10b6 40E0 ldi r20,hlo8(95)
  2254. 2215 10b8 50E0 ldi r21,hhi8(95)
  2255. 2216 10ba 6D85 ldd r22,Y+13
  2256. 2217 10bc 7E85 ldd r23,Y+14
  2257. 2218 10be 832D mov r24,r3
  2258. 2219 10c0 0E94 0000 call MMCWriteSectors
  2259. 2220 10c4 8C01 movw r16,r24
  2260. 2221 10c6 892B or r24,r25
  2261. 2222 10c8 01F0 breq .+2
  2262. 2223 10ca 00C0 rjmp .L163
  2263. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 40
  2264. 2224 10cc C984 ldd r12,Y+9
  2265. 2225 10ce DA84 ldd r13,Y+10
  2266. 2226 10d0 EB84 ldd r14,Y+11
  2267. 2227 10d2 FC84 ldd r15,Y+12
  2268. 2228 10d4 8FE5 ldi r24,lo8(95)
  2269. 2229 10d6 90E0 ldi r25,hi8(95)
  2270. 2230 10d8 A0E0 ldi r26,hlo8(95)
  2271. 2231 10da B0E0 ldi r27,hhi8(95)
  2272. 2232 10dc C80E add r12,r24
  2273. 2233 10de D91E adc r13,r25
  2274. 2234 10e0 EA1E adc r14,r26
  2275. 2235 10e2 FB1E adc r15,r27
  2276. 2236 10e4 01E0 ldi r16,lo8(1)
  2277. 2237 10e6 10E0 ldi r17,hi8(1)
  2278. 2238 10e8 A701 movw r20,r14
  2279. 2239 10ea 9601 movw r18,r12
  2280. 2240 10ec 6D85 ldd r22,Y+13
  2281. 2241 10ee 7E85 ldd r23,Y+14
  2282. 2242 10f0 832D mov r24,r3
  2283. 2243 10f2 0E94 0000 call MMCWriteSectors
  2284. 2244 10f6 892B or r24,r25
  2285. 2245 10f8 01F0 breq .+2
  2286. 2246 10fa 00C0 rjmp .L161
  2287. 2247 10fc 4091 0000 lds r20,sDriveInfo+4
  2288. 2248 1100 5091 0000 lds r21,(sDriveInfo+4)+1
  2289. 2249 1104 60E0 ldi r22,lo8(0)
  2290. 2250 1106 70E0 ldi r23,hi8(0)
  2291. 2251 1108 8D85 ldd r24,Y+13
  2292. 2252 110a 9E85 ldd r25,Y+14
  2293. 2253 110c 0E94 0000 call memset
  2294. 2254 1110 95E4 ldi r25,lo8(69)
  2295. 2255 1112 AD85 ldd r26,Y+13
  2296. 2256 1114 BE85 ldd r27,Y+14
  2297. 2257 1116 9C93 st X,r25
  2298. 2258 1118 24E5 ldi r18,lo8(84)
  2299. 2259 111a FD01 movw r30,r26
  2300. 2260 111c 2183 std Z+1,r18
  2301. 2261 111e 88E4 ldi r24,lo8(72)
  2302. 2262 1120 8283 std Z+2,r24
  2303. 2263 1122 9383 std Z+3,r25
  2304. 2264 1124 82E5 ldi r24,lo8(82)
  2305. 2265 1126 8483 std Z+4,r24
  2306. 2266 1128 8EE4 ldi r24,lo8(78)
  2307. 2267 112a 8583 std Z+5,r24
  2308. 2268 112c 85E5 ldi r24,lo8(85)
  2309. 2269 112e 8683 std Z+6,r24
  2310. 2270 1130 2783 std Z+7,r18
  2311. 2271 1132 80E2 ldi r24,lo8(32)
  2312. 2272 1134 8087 std Z+8,r24
  2313. 2273 1136 8187 std Z+9,r24
  2314. 2274 1138 8287 std Z+10,r24
  2315. 2275 113a 88E0 ldi r24,lo8(8)
  2316. 2276 113c 8387 std Z+11,r24
  2317. 2277 113e 158A std Z+21,__zero_reg__
  2318. 2278 1140 148A std Z+20,__zero_reg__
  2319. 2279 1142 138E std Z+27,__zero_reg__
  2320. 2280 1144 128E std Z+26,__zero_reg__
  2321. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 41
  2322. 2281 1146 ED85 ldd r30,Y+13
  2323. 2282 1148 FE85 ldd r31,Y+14
  2324. 2283 114a 148E std Z+28,__zero_reg__
  2325. 2284 114c 158E std Z+29,__zero_reg__
  2326. 2285 114e 168E std Z+30,__zero_reg__
  2327. 2286 1150 178E std Z+31,__zero_reg__
  2328. 2287 1152 8985 ldd r24,Y+9
  2329. 2288 1154 9A85 ldd r25,Y+10
  2330. 2289 1156 AB85 ldd r26,Y+11
  2331. 2290 1158 BC85 ldd r27,Y+12
  2332. 2291 115a C80E add r12,r24
  2333. 2292 115c D91E adc r13,r25
  2334. 2293 115e EA1E adc r14,r26
  2335. 2294 1160 FB1E adc r15,r27
  2336. 2295 1162 A701 movw r20,r14
  2337. 2296 1164 9601 movw r18,r12
  2338. 2297 1166 BF01 movw r22,r30
  2339. 2298 1168 832D mov r24,r3
  2340. 2299 116a 0E94 0000 call MMCWriteSectors
  2341. 2300 116e 8C01 movw r16,r24
  2342. 2301 .L163:
  2343. 2302 1170 8D85 ldd r24,Y+13
  2344. 2303 1172 9E85 ldd r25,Y+14
  2345. 2304 1174 0E94 0000 call NutHeapFree
  2346. 2305 1178 0E94 0000 call FATFree
  2347. 2306 117c 012B or r16,r17
  2348. 2307 117e 01F4 brne .L171
  2349. 2308 1180 832D mov r24,r3
  2350. 2309 1182 0E94 0000 call MountDrive
  2351. 2310 1186 0097 sbiw r24,0
  2352. 2311 1188 01F0 breq .L153
  2353. 2312 118a 00C0 rjmp .L171
  2354. 2313 .L145:
  2355. 2314 118c 6050 subi r22,lo8(4096)
  2356. 2315 118e 7041 sbci r23,hi8(4096)
  2357. 2316 1190 01F4 brne .L171
  2358. 2317 1192 00C0 rjmp .L146
  2359. 2318 .L161:
  2360. 2319 1194 8D85 ldd r24,Y+13
  2361. 2320 1196 9E85 ldd r25,Y+14
  2362. 2321 1198 0E94 0000 call NutHeapFree
  2363. 2322 119c 0E94 0000 call FATFree
  2364. 2323 .L171:
  2365. 2324 11a0 8FEF ldi r24,lo8(-1)
  2366. 2325 11a2 9FEF ldi r25,hi8(-1)
  2367. 2326 .L153:
  2368. 2327 /* epilogue: frame size=14 */
  2369. 2328 11a4 2E96 adiw r28,14
  2370. 2329 11a6 0FB6 in __tmp_reg__,__SREG__
  2371. 2330 11a8 F894 cli
  2372. 2331 11aa DEBF out __SP_H__,r29
  2373. 2332 11ac 0FBE out __SREG__,__tmp_reg__
  2374. 2333 11ae CDBF out __SP_L__,r28
  2375. 2334 11b0 DF91 pop r29
  2376. 2335 11b2 CF91 pop r28
  2377. 2336 11b4 1F91 pop r17
  2378. 2337 11b6 0F91 pop r16
  2379. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 42
  2380. 2338 11b8 FF90 pop r15
  2381. 2339 11ba EF90 pop r14
  2382. 2340 11bc DF90 pop r13
  2383. 2341 11be CF90 pop r12
  2384. 2342 11c0 BF90 pop r11
  2385. 2343 11c2 AF90 pop r10
  2386. 2344 11c4 9F90 pop r9
  2387. 2345 11c6 8F90 pop r8
  2388. 2346 11c8 7F90 pop r7
  2389. 2347 11ca 6F90 pop r6
  2390. 2348 11cc 5F90 pop r5
  2391. 2349 11ce 4F90 pop r4
  2392. 2350 11d0 3F90 pop r3
  2393. 2351 11d2 2F90 pop r2
  2394. 2352 11d4 0895 ret
  2395. 2353 /* epilogue end (size=25) */
  2396. 2354 /* function FATIOCtl size 731 (680) */
  2397. 2355 .size FATIOCtl, .-FATIOCtl
  2398. 2356 .type CFMount, @function
  2399. 2357 CFMount:
  2400. 2358 /* prologue: frame size=0 */
  2401. 2359 11d6 0F93 push r16
  2402. 2360 11d8 1F93 push r17
  2403. 2361 11da CF93 push r28
  2404. 2362 11dc DF93 push r29
  2405. 2363 /* prologue end (size=4) */
  2406. 2364 11de 8C01 movw r16,r24
  2407. 2365 11e0 80E0 ldi r24,lo8(512)
  2408. 2366 11e2 92E0 ldi r25,hi8(512)
  2409. 2367 11e4 0E94 0000 call NutHeapAlloc
  2410. 2368 11e8 EC01 movw r28,r24
  2411. 2369 11ea 892B or r24,r25
  2412. 2370 11ec 01F0 breq .L175
  2413. 2371 11ee 802F mov r24,r16
  2414. 2372 11f0 0E94 0000 call MountDrive
  2415. 2373 11f4 CE01 movw r24,r28
  2416. 2374 11f6 0E94 0000 call NutHeapFree
  2417. 2375 .L175:
  2418. 2376 /* epilogue: frame size=0 */
  2419. 2377 11fa DF91 pop r29
  2420. 2378 11fc CF91 pop r28
  2421. 2379 11fe 1F91 pop r17
  2422. 2380 1200 0F91 pop r16
  2423. 2381 1202 0895 ret
  2424. 2382 /* epilogue end (size=5) */
  2425. 2383 /* function CFMount size 23 (14) */
  2426. 2384 .size CFMount, .-CFMount
  2427. 2385 .type FATInit, @function
  2428. 2386 FATInit:
  2429. 2387 /* prologue: frame size=0 */
  2430. 2388 1204 EF92 push r14
  2431. 2389 1206 FF92 push r15
  2432. 2390 1208 0F93 push r16
  2433. 2391 120a 1F93 push r17
  2434. 2392 120c CF93 push r28
  2435. 2393 120e DF93 push r29
  2436. 2394 /* prologue end (size=6) */
  2437. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 43
  2438. 2395 1210 FC01 movw r30,r24
  2439. 2396 1212 8091 0000 lds r24,nIsInit
  2440. 2397 1216 9091 0000 lds r25,(nIsInit)+1
  2441. 2398 121a 0097 sbiw r24,0
  2442. 2399 121c 01F4 brne .L177
  2443. 2400 121e 8281 ldd r24,Z+2
  2444. 2401 1220 8634 cpi r24,lo8(70)
  2445. 2402 1222 01F0 breq .+2
  2446. 2403 1224 00C0 rjmp .L179
  2447. 2404 1226 8381 ldd r24,Z+3
  2448. 2405 1228 8134 cpi r24,lo8(65)
  2449. 2406 122a 01F4 brne .L179
  2450. 2407 122c 8481 ldd r24,Z+4
  2451. 2408 122e 8435 cpi r24,lo8(84)
  2452. 2409 1230 01F4 brne .L179
  2453. 2410 1232 8485 ldd r24,Z+12
  2454. 2411 1234 9585 ldd r25,Z+13
  2455. 2412 1236 0797 sbiw r24,7
  2456. 2413 1238 01F4 brne .L179
  2457. 2414 123a 00C0 rjmp .L183
  2458. 2415 .L184:
  2459. 2416 123c 40E0 ldi r20,lo8(gs(CFUnMount))
  2460. 2417 123e 50E0 ldi r21,hi8(gs(CFUnMount))
  2461. 2418 1240 60E0 ldi r22,lo8(gs(CFMount))
  2462. 2419 1242 70E0 ldi r23,hi8(gs(CFMount))
  2463. 2420 1244 80E0 ldi r24,lo8(0)
  2464. 2421 1246 90E0 ldi r25,hi8(0)
  2465. 2422 1248 0E94 0000 call MMCInit
  2466. 2423 124c 8C01 movw r16,r24
  2467. 2424 124e 892B or r24,r25
  2468. 2425 1250 01F0 breq .L185
  2469. 2426 1252 0EEF ldi r16,lo8(-2)
  2470. 2427 1254 1FEF ldi r17,hi8(-2)
  2471. 2428 1256 00C0 rjmp .L187
  2472. 2429 .L185:
  2473. 2430 1258 B701 movw r22,r14
  2474. 2431 125a 80E0 ldi r24,lo8(0)
  2475. 2432 125c 90E0 ldi r25,hi8(0)
  2476. 2433 125e 0E94 0000 call MMCMountAllDevices
  2477. 2434 1262 C0E0 ldi r28,lo8(0)
  2478. 2435 1264 D0E0 ldi r29,hi8(0)
  2479. 2436 .L188:
  2480. 2437 1266 8C2F mov r24,r28
  2481. 2438 1268 0E94 0000 call MountDrive
  2482. 2439 126c 2196 adiw r28,1
  2483. 2440 126e C330 cpi r28,3
  2484. 2441 1270 D105 cpc r29,__zero_reg__
  2485. 2442 1272 01F4 brne .L188
  2486. 2443 1274 81E0 ldi r24,lo8(1)
  2487. 2444 1276 90E0 ldi r25,hi8(1)
  2488. 2445 1278 9093 0000 sts (nIsInit)+1,r25
  2489. 2446 127c 8093 0000 sts nIsInit,r24
  2490. 2447 .L187:
  2491. 2448 1280 C701 movw r24,r14
  2492. 2449 1282 0E94 0000 call NutHeapFree
  2493. 2450 1286 00C0 rjmp .L190
  2494. 2451 .L177:
  2495. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 44
  2496. 2452 1288 0197 sbiw r24,1
  2497. 2453 128a 01F4 brne .L179
  2498. 2454 128c 8281 ldd r24,Z+2
  2499. 2455 128e 8634 cpi r24,lo8(70)
  2500. 2456 1290 01F4 brne .L179
  2501. 2457 1292 8381 ldd r24,Z+3
  2502. 2458 1294 8D34 cpi r24,lo8(77)
  2503. 2459 1296 01F4 brne .L179
  2504. 2460 1298 8481 ldd r24,Z+4
  2505. 2461 129a 8033 cpi r24,lo8(48)
  2506. 2462 129c 01F4 brne .L179
  2507. 2463 .L194:
  2508. 2464 129e 00E0 ldi r16,lo8(0)
  2509. 2465 12a0 10E0 ldi r17,hi8(0)
  2510. 2466 12a2 00C0 rjmp .L190
  2511. 2467 .L179:
  2512. 2468 12a4 0FEF ldi r16,lo8(-1)
  2513. 2469 12a6 1FEF ldi r17,hi8(-1)
  2514. 2470 12a8 00C0 rjmp .L190
  2515. 2471 .L183:
  2516. 2472 12aa 0E94 0000 call FATSemaInit
  2517. 2473 12ae 80E0 ldi r24,lo8(512)
  2518. 2474 12b0 92E0 ldi r25,hi8(512)
  2519. 2475 12b2 0E94 0000 call NutHeapAlloc
  2520. 2476 12b6 7C01 movw r14,r24
  2521. 2477 12b8 892B or r24,r25
  2522. 2478 12ba 01F0 breq .+2
  2523. 2479 12bc 00C0 rjmp .L184
  2524. 2480 12be 00C0 rjmp .L194
  2525. 2481 .L190:
  2526. 2482 12c0 C801 movw r24,r16
  2527. 2483 /* epilogue: frame size=0 */
  2528. 2484 12c2 DF91 pop r29
  2529. 2485 12c4 CF91 pop r28
  2530. 2486 12c6 1F91 pop r17
  2531. 2487 12c8 0F91 pop r16
  2532. 2488 12ca FF90 pop r15
  2533. 2489 12cc EF90 pop r14
  2534. 2490 12ce 0895 ret
  2535. 2491 /* epilogue end (size=7) */
  2536. 2492 /* function FATInit size 104 (91) */
  2537. 2493 .size FATInit, .-FATInit
  2538. 2494 .type FATFileOpen, @function
  2539. 2495 FATFileOpen:
  2540. 2496 /* prologue: frame size=38 */
  2541. 2497 12d0 2F92 push r2
  2542. 2498 12d2 3F92 push r3
  2543. 2499 12d4 4F92 push r4
  2544. 2500 12d6 5F92 push r5
  2545. 2501 12d8 6F92 push r6
  2546. 2502 12da 7F92 push r7
  2547. 2503 12dc 8F92 push r8
  2548. 2504 12de 9F92 push r9
  2549. 2505 12e0 AF92 push r10
  2550. 2506 12e2 BF92 push r11
  2551. 2507 12e4 CF92 push r12
  2552. 2508 12e6 DF92 push r13
  2553. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 45
  2554. 2509 12e8 EF92 push r14
  2555. 2510 12ea FF92 push r15
  2556. 2511 12ec 0F93 push r16
  2557. 2512 12ee 1F93 push r17
  2558. 2513 12f0 CF93 push r28
  2559. 2514 12f2 DF93 push r29
  2560. 2515 12f4 CDB7 in r28,__SP_L__
  2561. 2516 12f6 DEB7 in r29,__SP_H__
  2562. 2517 12f8 A697 sbiw r28,38
  2563. 2518 12fa 0FB6 in __tmp_reg__,__SREG__
  2564. 2519 12fc F894 cli
  2565. 2520 12fe DEBF out __SP_H__,r29
  2566. 2521 1300 0FBE out __SREG__,__tmp_reg__
  2567. 2522 1302 CDBF out __SP_L__,r28
  2568. 2523 /* prologue end (size=26) */
  2569. 2524 1304 9EA3 std Y+38,r25
  2570. 2525 1306 8DA3 std Y+37,r24
  2571. 2526 1308 4B01 movw r8,r22
  2572. 2527 130a 8091 0000 lds r24,nIsInit
  2573. 2528 130e 9091 0000 lds r25,(nIsInit)+1
  2574. 2529 1312 892B or r24,r25
  2575. 2530 1314 01F4 brne .L199
  2576. 2531 1316 8DA1 ldd r24,Y+37
  2577. 2532 1318 9EA1 ldd r25,Y+38
  2578. 2533 131a 0E94 0000 call FATInit
  2579. 2534 .L199:
  2580. 2535 131e 0E94 0000 call FATLock
  2581. 2536 1322 6090 0000 lds r6,pLongName1
  2582. 2537 1326 7090 0000 lds r7,(pLongName1)+1
  2583. 2538 132a 8DA1 ldd r24,Y+37
  2584. 2539 132c 9EA1 ldd r25,Y+38
  2585. 2540 132e 0097 sbiw r24,0
  2586. 2541 1330 01F4 brne .+2
  2587. 2542 1332 00C0 rjmp .L201
  2588. 2543 1334 FC01 movw r30,r24
  2589. 2544 1336 8481 ldd r24,Z+4
  2590. 2545 1338 8033 cpi r24,lo8(48)
  2591. 2546 133a 04F4 brge .+2
  2592. 2547 133c 00C0 rjmp .L201
  2593. 2548 133e 8233 cpi r24,lo8(50)
  2594. 2549 1340 04F4 brge .+2
  2595. 2550 1342 00C0 rjmp .L203
  2596. 2551 1344 8634 cpi r24,lo8(70)
  2597. 2552 1346 01F0 breq .+2
  2598. 2553 1348 00C0 rjmp .L201
  2599. 2554 134a 00C0 rjmp .L203
  2600. 2555 .L204:
  2601. 2556 134c F401 movw r30,r8
  2602. 2557 134e 8081 ld r24,Z
  2603. 2558 1350 8823 tst r24
  2604. 2559 1352 01F4 brne .+2
  2605. 2560 1354 00C0 rjmp .L201
  2606. 2561 1356 8AE1 ldi r24,lo8(26)
  2607. 2562 1358 90E0 ldi r25,hi8(26)
  2608. 2563 135a 0E94 0000 call NutHeapAlloc
  2609. 2564 135e 5C01 movw r10,r24
  2610. 2565 1360 8091 0000 lds r24,sDriveInfo+18
  2611. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 46
  2612. 2566 1364 9091 0000 lds r25,(sDriveInfo+18)+1
  2613. 2567 1368 A091 0000 lds r26,(sDriveInfo+18)+2
  2614. 2568 136c B091 0000 lds r27,(sDriveInfo+18)+3
  2615. 2569 1370 0097 sbiw r24,0
  2616. 2570 1372 A105 cpc r26,__zero_reg__
  2617. 2571 1374 B105 cpc r27,__zero_reg__
  2618. 2572 1376 01F4 brne .+2
  2619. 2573 1378 00C0 rjmp .L206
  2620. 2574 137a A114 cp r10,__zero_reg__
  2621. 2575 137c B104 cpc r11,__zero_reg__
  2622. 2576 137e 01F4 brne .+2
  2623. 2577 1380 00C0 rjmp .L201
  2624. 2578 1382 F401 movw r30,r8
  2625. 2579 1384 8081 ld r24,Z
  2626. 2580 1386 8E32 cpi r24,lo8(46)
  2627. 2581 1388 01F4 brne .+2
  2628. 2582 138a 00C0 rjmp .L209
  2629. 2583 138c 8AE1 ldi r24,lo8(26)
  2630. 2584 138e F501 movw r30,r10
  2631. 2585 1390 1192 st Z+,__zero_reg__
  2632. 2586 1392 8A95 dec r24
  2633. 2587 1394 01F4 brne .-6
  2634. 2588 1396 2090 0000 lds r2,sDriveInfo+14
  2635. 2589 139a 3090 0000 lds r3,(sDriveInfo+14)+1
  2636. 2590 139e 4090 0000 lds r4,(sDriveInfo+14)+2
  2637. 2591 13a2 5090 0000 lds r5,(sDriveInfo+14)+3
  2638. 2592 13a6 F401 movw r30,r8
  2639. 2593 13a8 8081 ld r24,Z
  2640. 2594 13aa 8F32 cpi r24,lo8(47)
  2641. 2595 13ac 01F0 breq .+2
  2642. 2596 13ae 00C0 rjmp .L253
  2643. 2597 13b0 00C0 rjmp .L250
  2644. 2598 .L214:
  2645. 2599 13b2 FFE3 ldi r31,lo8(63)
  2646. 2600 13b4 EF16 cp r14,r31
  2647. 2601 13b6 F104 cpc r15,__zero_reg__
  2648. 2602 13b8 04F0 brlt .+2
  2649. 2603 13ba 00C0 rjmp .L215
  2650. 2604 13bc 8301 movw r16,r6
  2651. 2605 13be 0E0D add r16,r14
  2652. 2606 13c0 1F1D adc r17,r15
  2653. 2607 13c2 9927 clr r25
  2654. 2608 13c4 87FD sbrc r24,7
  2655. 2609 13c6 9095 com r25
  2656. 2610 13c8 0E94 0000 call toupper
  2657. 2611 13cc F801 movw r30,r16
  2658. 2612 13ce 8083 st Z,r24
  2659. 2613 13d0 0894 sec
  2660. 2614 13d2 E11C adc r14,__zero_reg__
  2661. 2615 13d4 F11C adc r15,__zero_reg__
  2662. 2616 13d6 0894 sec
  2663. 2617 13d8 811C adc r8,__zero_reg__
  2664. 2618 13da 911C adc r9,__zero_reg__
  2665. 2619 .L252:
  2666. 2620 13dc F401 movw r30,r8
  2667. 2621 13de 8081 ld r24,Z
  2668. 2622 13e0 8F32 cpi r24,lo8(47)
  2669. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 47
  2670. 2623 13e2 01F4 brne .+2
  2671. 2624 13e4 00C0 rjmp .L217
  2672. 2625 13e6 8C35 cpi r24,lo8(92)
  2673. 2626 13e8 01F4 brne .+2
  2674. 2627 13ea 00C0 rjmp .L217
  2675. 2628 13ec 8823 tst r24
  2676. 2629 13ee 01F4 brne .L214
  2677. 2630 13f0 00C0 rjmp .L217
  2678. 2631 .L220:
  2679. 2632 13f2 6EE2 ldi r22,lo8(46)
  2680. 2633 13f4 70E0 ldi r23,hi8(46)
  2681. 2634 13f6 C301 movw r24,r6
  2682. 2635 13f8 0E94 0000 call strchr
  2683. 2636 13fc 0097 sbiw r24,0
  2684. 2637 13fe 01F4 brne .L221
  2685. 2638 1400 0930 cpi r16,9
  2686. 2639 1402 1105 cpc r17,__zero_reg__
  2687. 2640 1404 00F4 brsh .L223
  2688. 2641 1406 00C0 rjmp .L224
  2689. 2642 .L221:
  2690. 2643 1408 DC01 movw r26,r24
  2691. 2644 140a 1196 adiw r26,1
  2692. 2645 140c FD01 movw r30,r26
  2693. 2646 140e 0190 ld __tmp_reg__,Z+
  2694. 2647 1410 0020 tst __tmp_reg__
  2695. 2648 1412 01F4 brne .-6
  2696. 2649 1414 3197 sbiw r30,1
  2697. 2650 1416 EA1B sub r30,r26
  2698. 2651 1418 FB0B sbc r31,r27
  2699. 2652 141a 3497 sbiw r30,4
  2700. 2653 141c 00F4 brsh .L223
  2701. 2654 .L224:
  2702. 2655 141e 8E01 movw r16,r28
  2703. 2656 1420 0B5F subi r16,lo8(-(5))
  2704. 2657 1422 1F4F sbci r17,hi8(-(5))
  2705. 2658 1424 80E2 ldi r24,lo8(32)
  2706. 2659 1426 F801 movw r30,r16
  2707. 2660 1428 1192 st Z+,__zero_reg__
  2708. 2661 142a 8A95 dec r24
  2709. 2662 142c 01F4 brne .-6
  2710. 2663 142e 48E0 ldi r20,lo8(8)
  2711. 2664 1430 50E0 ldi r21,hi8(8)
  2712. 2665 1432 60E2 ldi r22,lo8(32)
  2713. 2666 1434 70E0 ldi r23,hi8(32)
  2714. 2667 1436 C801 movw r24,r16
  2715. 2668 1438 0E94 0000 call memset
  2716. 2669 143c 43E0 ldi r20,lo8(3)
  2717. 2670 143e 50E0 ldi r21,hi8(3)
  2718. 2671 1440 60E2 ldi r22,lo8(32)
  2719. 2672 1442 70E0 ldi r23,hi8(32)
  2720. 2673 1444 CE01 movw r24,r28
  2721. 2674 1446 0D96 adiw r24,13
  2722. 2675 1448 0E94 0000 call memset
  2723. 2676 144c D801 movw r26,r16
  2724. 2677 144e F301 movw r30,r6
  2725. 2678 1450 9301 movw r18,r6
  2726. 2679 1452 00C0 rjmp .L225
  2727. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 48
  2728. 2680 .L226:
  2729. 2681 1454 8D93 st X+,r24
  2730. 2682 1456 2F5F subi r18,lo8(-(1))
  2731. 2683 1458 3F4F sbci r19,hi8(-(1))
  2732. 2684 145a 3196 adiw r30,1
  2733. 2685 .L225:
  2734. 2686 145c 8081 ld r24,Z
  2735. 2687 145e 8E32 cpi r24,lo8(46)
  2736. 2688 1460 01F0 breq .L227
  2737. 2689 1462 8823 tst r24
  2738. 2690 1464 01F4 brne .L226
  2739. 2691 1466 00C0 rjmp .L229
  2740. 2692 .L227:
  2741. 2693 1468 F901 movw r30,r18
  2742. 2694 146a DE01 movw r26,r28
  2743. 2695 146c 1D96 adiw r26,13
  2744. 2696 146e 00C0 rjmp .L230
  2745. 2697 .L231:
  2746. 2698 1470 8D93 st X+,r24
  2747. 2699 .L230:
  2748. 2700 1472 8181 ldd r24,Z+1
  2749. 2701 1474 3196 adiw r30,1
  2750. 2702 1476 8823 tst r24
  2751. 2703 1478 01F4 brne .L231
  2752. 2704 147a 00C0 rjmp .L229
  2753. 2705 .L223:
  2754. 2706 147c 21E0 ldi r18,lo8(1)
  2755. 2707 147e 30E0 ldi r19,hi8(1)
  2756. 2708 1480 00C0 rjmp .L232
  2757. 2709 .L229:
  2758. 2710 1482 20E0 ldi r18,lo8(0)
  2759. 2711 1484 30E0 ldi r19,hi8(0)
  2760. 2712 .L232:
  2761. 2713 1486 F401 movw r30,r8
  2762. 2714 1488 8081 ld r24,Z
  2763. 2715 148a 8F32 cpi r24,lo8(47)
  2764. 2716 148c 01F4 brne .+2
  2765. 2717 148e 00C0 rjmp .L234
  2766. 2718 1490 8C35 cpi r24,lo8(92)
  2767. 2719 1492 01F4 brne .+2
  2768. 2720 1494 00C0 rjmp .L234
  2769. 2721 1496 8823 tst r24
  2770. 2722 1498 01F0 breq .+2
  2771. 2723 149a 00C0 rjmp .L209
  2772. 2724 149c 80E2 ldi r24,lo8(32)
  2773. 2725 149e 888B std Y+16,r24
  2774. 2726 14a0 8091 0000 lds r24,sDriveInfo+3
  2775. 2727 14a4 80FD sbrc r24,0
  2776. 2728 14a6 00C0 rjmp .L215
  2777. 2729 14a8 80E0 ldi r24,lo8(sDriveInfo)
  2778. 2730 14aa 882E mov r8,r24
  2779. 2731 14ac 80E0 ldi r24,hi8(sDriveInfo)
  2780. 2732 14ae 982E mov r9,r24
  2781. 2733 14b0 6901 movw r12,r18
  2782. 2734 14b2 7E01 movw r14,r28
  2783. 2735 14b4 0894 sec
  2784. 2736 14b6 E11C adc r14,__zero_reg__
  2785. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 49
  2786. 2737 14b8 F11C adc r15,__zero_reg__
  2787. 2738 14ba 9201 movw r18,r4
  2788. 2739 14bc 8101 movw r16,r2
  2789. 2740 14be A301 movw r20,r6
  2790. 2741 14c0 BE01 movw r22,r28
  2791. 2742 14c2 6B5F subi r22,lo8(-(5))
  2792. 2743 14c4 7F4F sbci r23,hi8(-(5))
  2793. 2744 14c6 C401 movw r24,r8
  2794. 2745 14c8 0E94 0000 call FindFile
  2795. 2746 14cc 9B01 movw r18,r22
  2796. 2747 14ce AC01 movw r20,r24
  2797. 2748 14d0 6115 cp r22,__zero_reg__
  2798. 2749 14d2 7105 cpc r23,__zero_reg__
  2799. 2750 14d4 8105 cpc r24,__zero_reg__
  2800. 2751 14d6 9105 cpc r25,__zero_reg__
  2801. 2752 14d8 01F4 brne .+2
  2802. 2753 14da 00C0 rjmp .L215
  2803. 2754 14dc 8981 ldd r24,Y+1
  2804. 2755 14de 9A81 ldd r25,Y+2
  2805. 2756 14e0 AB81 ldd r26,Y+3
  2806. 2757 14e2 BC81 ldd r27,Y+4
  2807. 2758 14e4 F501 movw r30,r10
  2808. 2759 14e6 8083 st Z,r24
  2809. 2760 14e8 9183 std Z+1,r25
  2810. 2761 14ea A283 std Z+2,r26
  2811. 2762 14ec B383 std Z+3,r27
  2812. 2763 14ee 2483 std Z+4,r18
  2813. 2764 14f0 3583 std Z+5,r19
  2814. 2765 14f2 4683 std Z+6,r20
  2815. 2766 14f4 5783 std Z+7,r21
  2816. 2767 14f6 2087 std Z+8,r18
  2817. 2768 14f8 3187 std Z+9,r19
  2818. 2769 14fa 4287 std Z+10,r20
  2819. 2770 14fc 5387 std Z+11,r21
  2820. 2771 14fe 1486 std Z+12,__zero_reg__
  2821. 2772 1500 1586 std Z+13,__zero_reg__
  2822. 2773 1502 1686 std Z+14,__zero_reg__
  2823. 2774 1504 1786 std Z+15,__zero_reg__
  2824. 2775 1506 108A std Z+16,__zero_reg__
  2825. 2776 1508 118A std Z+17,__zero_reg__
  2826. 2777 150a 128A std Z+18,__zero_reg__
  2827. 2778 150c 138A std Z+19,__zero_reg__
  2828. 2779 150e 918E std Z+25,r9
  2829. 2780 1510 808E std Z+24,r8
  2830. 2781 1512 158A std Z+21,__zero_reg__
  2831. 2782 1514 148A std Z+20,__zero_reg__
  2832. 2783 1516 178A std Z+23,__zero_reg__
  2833. 2784 1518 168A std Z+22,__zero_reg__
  2834. 2785 151a 80E0 ldi r24,lo8(0)
  2835. 2786 151c 90E0 ldi r25,hi8(0)
  2836. 2787 151e 00C0 rjmp .L237
  2837. 2788 .L234:
  2838. 2789 1520 80E1 ldi r24,lo8(16)
  2839. 2790 1522 888B std Y+16,r24
  2840. 2791 1524 8091 0000 lds r24,sDriveInfo+3
  2841. 2792 1528 80FD sbrc r24,0
  2842. 2793 152a 00C0 rjmp .L215
  2843. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 50
  2844. 2794 152c 6901 movw r12,r18
  2845. 2795 152e 7E01 movw r14,r28
  2846. 2796 1530 0894 sec
  2847. 2797 1532 E11C adc r14,__zero_reg__
  2848. 2798 1534 F11C adc r15,__zero_reg__
  2849. 2799 1536 9201 movw r18,r4
  2850. 2800 1538 8101 movw r16,r2
  2851. 2801 153a A301 movw r20,r6
  2852. 2802 153c BE01 movw r22,r28
  2853. 2803 153e 6B5F subi r22,lo8(-(5))
  2854. 2804 1540 7F4F sbci r23,hi8(-(5))
  2855. 2805 1542 80E0 ldi r24,lo8(sDriveInfo)
  2856. 2806 1544 90E0 ldi r25,hi8(sDriveInfo)
  2857. 2807 1546 0E94 0000 call FindFile
  2858. 2808 154a 1B01 movw r2,r22
  2859. 2809 154c 2C01 movw r4,r24
  2860. 2810 154e 6115 cp r22,__zero_reg__
  2861. 2811 1550 7105 cpc r23,__zero_reg__
  2862. 2812 1552 8105 cpc r24,__zero_reg__
  2863. 2813 1554 9105 cpc r25,__zero_reg__
  2864. 2814 1556 01F0 breq .L215
  2865. 2815 1558 00C0 rjmp .L250
  2866. 2816 .L209:
  2867. 2817 155a C501 movw r24,r10
  2868. 2818 155c 0E94 0000 call NutHeapFree
  2869. 2819 1560 00C0 rjmp .L201
  2870. 2820 .L251:
  2871. 2821 1562 86E0 ldi r24,lo8(6)
  2872. 2822 1564 90E0 ldi r25,hi8(6)
  2873. 2823 1566 0E94 0000 call NutHeapAlloc
  2874. 2824 156a 8C01 movw r16,r24
  2875. 2825 156c 0097 sbiw r24,0
  2876. 2826 156e 01F4 brne .L246
  2877. 2827 1570 C501 movw r24,r10
  2878. 2828 1572 0E94 0000 call NutHeapFree
  2879. 2829 1576 00C0 rjmp .L240
  2880. 2830 .L201:
  2881. 2831 1578 0FEF ldi r16,lo8(-1)
  2882. 2832 157a 1FEF ldi r17,hi8(-1)
  2883. 2833 157c 00C0 rjmp .L240
  2884. 2834 .L203:
  2885. 2835 157e 8091 0000 lds r24,sDriveInfo+2
  2886. 2836 1582 8823 tst r24
  2887. 2837 1584 01F0 breq .+2
  2888. 2838 1586 00C0 rjmp .L204
  2889. 2839 1588 00C0 rjmp .L201
  2890. 2840 .L217:
  2891. 2841 158a E60C add r14,r6
  2892. 2842 158c F71C adc r15,r7
  2893. 2843 158e F701 movw r30,r14
  2894. 2844 1590 1082 st Z,__zero_reg__
  2895. 2845 1592 F301 movw r30,r6
  2896. 2846 1594 0190 ld __tmp_reg__,Z+
  2897. 2847 1596 0020 tst __tmp_reg__
  2898. 2848 1598 01F4 brne .-6
  2899. 2849 159a 8F01 movw r16,r30
  2900. 2850 159c 0150 subi r16,lo8(-(-1))
  2901. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 51
  2902. 2851 159e 1040 sbci r17,hi8(-(-1))
  2903. 2852 15a0 0619 sub r16,r6
  2904. 2853 15a2 1709 sbc r17,r7
  2905. 2854 15a4 0D30 cpi r16,13
  2906. 2855 15a6 1105 cpc r17,__zero_reg__
  2907. 2856 15a8 00F0 brlo .+2
  2908. 2857 15aa 00C0 rjmp .L223
  2909. 2858 15ac 00C0 rjmp .L220
  2910. 2859 .L206:
  2911. 2860 15ae A114 cp r10,__zero_reg__
  2912. 2861 15b0 B104 cpc r11,__zero_reg__
  2913. 2862 15b2 01F4 brne .L209
  2914. 2863 15b4 00C0 rjmp .L201
  2915. 2864 .L250:
  2916. 2865 15b6 0894 sec
  2917. 2866 15b8 811C adc r8,__zero_reg__
  2918. 2867 15ba 911C adc r9,__zero_reg__
  2919. 2868 .L253:
  2920. 2869 15bc EE24 clr r14
  2921. 2870 15be FF24 clr r15
  2922. 2871 15c0 00C0 rjmp .L252
  2923. 2872 .L215:
  2924. 2873 15c2 81E0 ldi r24,lo8(1)
  2925. 2874 15c4 90E0 ldi r25,hi8(1)
  2926. 2875 .L237:
  2927. 2876 15c6 0197 sbiw r24,1
  2928. 2877 15c8 01F4 brne .L251
  2929. 2878 15ca 00C0 rjmp .L209
  2930. 2879 .L246:
  2931. 2880 15cc FC01 movw r30,r24
  2932. 2881 15ce 1182 std Z+1,__zero_reg__
  2933. 2882 15d0 1082 st Z,__zero_reg__
  2934. 2883 15d2 8DA1 ldd r24,Y+37
  2935. 2884 15d4 9EA1 ldd r25,Y+38
  2936. 2885 15d6 9383 std Z+3,r25
  2937. 2886 15d8 8283 std Z+2,r24
  2938. 2887 15da B582 std Z+5,r11
  2939. 2888 15dc A482 std Z+4,r10
  2940. 2889 .L240:
  2941. 2890 15de 0E94 0000 call FATFree
  2942. 2891 15e2 C801 movw r24,r16
  2943. 2892 /* epilogue: frame size=38 */
  2944. 2893 15e4 A696 adiw r28,38
  2945. 2894 15e6 0FB6 in __tmp_reg__,__SREG__
  2946. 2895 15e8 F894 cli
  2947. 2896 15ea DEBF out __SP_H__,r29
  2948. 2897 15ec 0FBE out __SREG__,__tmp_reg__
  2949. 2898 15ee CDBF out __SP_L__,r28
  2950. 2899 15f0 DF91 pop r29
  2951. 2900 15f2 CF91 pop r28
  2952. 2901 15f4 1F91 pop r17
  2953. 2902 15f6 0F91 pop r16
  2954. 2903 15f8 FF90 pop r15
  2955. 2904 15fa EF90 pop r14
  2956. 2905 15fc DF90 pop r13
  2957. 2906 15fe CF90 pop r12
  2958. 2907 1600 BF90 pop r11
  2959. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 52
  2960. 2908 1602 AF90 pop r10
  2961. 2909 1604 9F90 pop r9
  2962. 2910 1606 8F90 pop r8
  2963. 2911 1608 7F90 pop r7
  2964. 2912 160a 6F90 pop r6
  2965. 2913 160c 5F90 pop r5
  2966. 2914 160e 4F90 pop r4
  2967. 2915 1610 3F90 pop r3
  2968. 2916 1612 2F90 pop r2
  2969. 2917 1614 0895 ret
  2970. 2918 /* epilogue end (size=25) */
  2971. 2919 /* function FATFileOpen size 421 (370) */
  2972. 2920 .size FATFileOpen, .-FATFileOpen
  2973. 2921 .global devFAT
  2974. 2922 .data
  2975. 2923 .type devFAT, @object
  2976. 2924 .size devFAT, 35
  2977. 2925 devFAT:
  2978. 2926 0000 0000 .word 0
  2979. 2927 0002 46 .byte 70
  2980. 2928 0003 41 .byte 65
  2981. 2929 0004 54 .byte 84
  2982. 2930 0005 00 .byte 0
  2983. 2931 0006 00 .byte 0
  2984. 2932 0007 00 .byte 0
  2985. 2933 0008 00 .byte 0
  2986. 2934 0009 00 .byte 0
  2987. 2935 000a 00 .byte 0
  2988. 2936 000b 02 .byte 2
  2989. 2937 000c 0200 .word 2
  2990. 2938 000e 00 .byte 0
  2991. 2939 000f 0000 .word 0
  2992. 2940 0011 0000 .word 0
  2993. 2941 0013 0000 .word gs(FATInit)
  2994. 2942 0015 0000 .word 0
  2995. 2943 0017 0000 .word 0
  2996. 2944 0019 0000 .word 0
  2997. 2945 001b 0000 .word 0
  2998. 2946 001d 0000 .word 0
  2999. 2947 001f 0000 .word 0
  3000. 2948 0021 0000 .word 0
  3001. 2949 .global devFATMMC0
  3002. 2950 .type devFATMMC0, @object
  3003. 2951 .size devFATMMC0, 35
  3004. 2952 devFATMMC0:
  3005. 2953 0023 0000 .word 0
  3006. 2954 0025 46 .byte 70
  3007. 2955 0026 4D .byte 77
  3008. 2956 0027 30 .byte 48
  3009. 2957 0028 00 .byte 0
  3010. 2958 0029 00 .byte 0
  3011. 2959 002a 00 .byte 0
  3012. 2960 002b 00 .byte 0
  3013. 2961 002c 00 .byte 0
  3014. 2962 002d 00 .byte 0
  3015. 2963 002e 02 .byte 2
  3016. 2964 002f 0200 .word 2
  3017. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 53
  3018. 2965 0031 00 .byte 0
  3019. 2966 0032 0000 .word 0
  3020. 2967 0034 0000 .word 0
  3021. 2968 0036 0000 .word gs(FATInit)
  3022. 2969 0038 0000 .word gs(FATIOCtl)
  3023. 2970 003a 0000 .word gs(FATFileRead)
  3024. 2971 003c 0000 .word gs(FATFileWrite)
  3025. 2972 003e 0000 .word gs(FATFileWriteP)
  3026. 2973 0040 0000 .word gs(FATFileOpen)
  3027. 2974 0042 0000 .word gs(FATFileClose)
  3028. 2975 0044 0000 .word gs(FATFileSize)
  3029. 2976 .lcomm nIsInit,2
  3030. 2977 .lcomm pLongName1,2
  3031. 2978 .lcomm pSectorBuffer,2
  3032. 2979 .lcomm pLongName2,2
  3033. 2980 .type DskTableFAT32, @object
  3034. 2981 .size DskTableFAT32, 30
  3035. 2982 DskTableFAT32:
  3036. 2983 0046 28 .byte 40
  3037. 2984 0047 04 .byte 4
  3038. 2985 0048 01 .byte 1
  3039. 2986 0049 00 .byte 0
  3040. 2987 004a 00 .byte 0
  3041. 2988 004b 00 .byte 0
  3042. 2989 004c 20 .byte 32
  3043. 2990 004d 08 .byte 8
  3044. 2991 004e 00 .byte 0
  3045. 2992 004f 01 .byte 1
  3046. 2993 0050 00 .byte 0
  3047. 2994 0051 00 .byte 0
  3048. 2995 0052 00 .byte 0
  3049. 2996 0053 01 .byte 1
  3050. 2997 0054 08 .byte 8
  3051. 2998 0055 00 .byte 0
  3052. 2999 0056 00 .byte 0
  3053. 3000 0057 00 .byte 0
  3054. 3001 0058 02 .byte 2
  3055. 3002 0059 10 .byte 16
  3056. 3003 005a 00 .byte 0
  3057. 3004 005b 00 .byte 0
  3058. 3005 005c 00 .byte 0
  3059. 3006 005d 04 .byte 4
  3060. 3007 005e 20 .byte 32
  3061. 3008 005f FF .byte -1
  3062. 3009 0060 FF .byte -1
  3063. 3010 0061 FF .byte -1
  3064. 3011 0062 FF .byte -1
  3065. 3012 0063 40 .byte 64
  3066. 3013 .lcomm sDriveInfo,102
  3067. 3014 .lcomm hFATSemaphore,2
  3068. 3015 /* File "source/fat.c": code 2839 = 0x0b17 (2498), prologues 166, epilogues 175 */
  3069. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 54
  3070. DEFINED SYMBOLS
  3071. *ABS*:00000000 fat.c
  3072. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:3 *ABS*:0000003f __SREG__
  3073. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:4 *ABS*:0000003e __SP_H__
  3074. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:5 *ABS*:0000003d __SP_L__
  3075. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:6 *ABS*:00000000 __tmp_reg__
  3076. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:7 *ABS*:00000001 __zero_reg__
  3077. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:13 .text:00000000 FATRelease
  3078. .bss:00000000 nIsInit
  3079. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:24 .text:0000000a GetFirstSectorOfCluster
  3080. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:79 .text:00000068 FATFileWrite
  3081. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:90 .text:0000006e FATFileWriteP
  3082. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:101 .text:00000074 GetLongChar
  3083. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:126 .text:00000094 GetNextCluster
  3084. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:2977 .bss:00000004 pSectorBuffer
  3085. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:269 .text:000001aa FindFile
  3086. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:2978 .bss:00000006 pLongName2
  3087. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:768 .text:00000592 FATSemaInit
  3088. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:3013 .bss:0000006e hFATSemaphore
  3089. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:781 .text:0000059c FATFree
  3090. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:794 .text:000005a6 FATLock
  3091. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:811 .text:000005b8 FATFileRead
  3092. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:1132 .text:00000828 FATFileSize
  3093. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:1179 .text:00000876 FATFileClose
  3094. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:1213 .text:000008ac CFUnMount
  3095. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:2979 .bss:00000008 sDriveInfo
  3096. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:1233 .text:000008c8 MountDrive
  3097. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:2976 .bss:00000002 pLongName1
  3098. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:1647 .text:00000c22 FATIOCtl
  3099. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:2982 .data:00000046 DskTableFAT32
  3100. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:2357 .text:000011d6 CFMount
  3101. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:2386 .text:00001204 FATInit
  3102. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:2495 .text:000012d0 FATFileOpen
  3103. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:2925 .data:00000000 devFAT
  3104. C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s:2952 .data:00000023 devFATMMC0
  3105. UNDEFINED SYMBOLS
  3106. __do_copy_data
  3107. __do_clear_bss
  3108. __mulsi3
  3109. toupper
  3110. MMCReadSectors
  3111. __divmodhi4
  3112. memcmp
  3113. NutEventPost
  3114. NutEventWait
  3115. __udivmodsi4
  3116. memcpy
  3117. NutHeapFree
  3118. NutHeapAlloc
  3119. MMCGetSectorSize
  3120. MMCIsCDROMDevice
  3121. MMCIsZIPDevice
  3122. __udivmodhi4
  3123. MMCGetTotalSectors
  3124. memset
  3125. MMCWriteSectors
  3126. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccQg0AFn.s page 55
  3127. time
  3128. MMCInit
  3129. MMCMountAllDevices
  3130. strchr