phatfs.lst 99 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972
  1. GAS LISTING /tmp/ccKdzQHI.s page 1
  2. 1 .file "phatfs.c"
  3. 2 __SP_H__ = 0x3e
  4. 3 __SP_L__ = 0x3d
  5. 4 __SREG__ = 0x3f
  6. 5 __RAMPZ__ = 0x3b
  7. 6 __tmp_reg__ = 0
  8. 7 __zero_reg__ = 1
  9. 8 .section .text.PhatFileSize,"ax",@progbits
  10. 9 .type PhatFileSize, @function
  11. 10 PhatFileSize:
  12. 11 /* prologue: function */
  13. 12 /* frame size = 0 */
  14. 13 /* stack size = 0 */
  15. 14 .L__stack_usage = 0
  16. 15 0000 DC01 movw r26,r24
  17. 16 0002 1296 adiw r26,2
  18. 17 0004 ED91 ld r30,X+
  19. 18 0006 FC91 ld r31,X
  20. 19 0008 1397 sbiw r26,2+1
  21. 20 000a 64A9 ldd r22,Z+52
  22. 21 000c 75A9 ldd r23,Z+53
  23. 22 000e 86A9 ldd r24,Z+54
  24. 23 0010 97A9 ldd r25,Z+55
  25. 24 0012 0895 ret
  26. 25 .size PhatFileSize, .-PhatFileSize
  27. 26 .section .text.PhatInit,"ax",@progbits
  28. 27 .type PhatInit, @function
  29. 28 PhatInit:
  30. 29 /* prologue: function */
  31. 30 /* frame size = 0 */
  32. 31 /* stack size = 0 */
  33. 32 .L__stack_usage = 0
  34. 33 0000 80E0 ldi r24,0
  35. 34 0002 90E0 ldi r25,0
  36. 35 0004 0895 ret
  37. 36 .size PhatInit, .-PhatInit
  38. 37 .section .text.SearchFreeCluster,"ax",@progbits
  39. 38 .type SearchFreeCluster, @function
  40. 39 SearchFreeCluster:
  41. 40 0000 4F92 push r4
  42. 41 0002 5F92 push r5
  43. 42 0004 6F92 push r6
  44. 43 0006 7F92 push r7
  45. 44 0008 AF92 push r10
  46. 45 000a BF92 push r11
  47. 46 000c CF92 push r12
  48. 47 000e DF92 push r13
  49. 48 0010 EF92 push r14
  50. 49 0012 FF92 push r15
  51. 50 0014 0F93 push r16
  52. 51 0016 1F93 push r17
  53. 52 0018 CF93 push r28
  54. 53 001a DF93 push r29
  55. 54 001c 00D0 rcall .
  56. 55 001e 1F92 push __zero_reg__
  57. 56 0020 CDB7 in r28,__SP_L__
  58. 57 0022 DEB7 in r29,__SP_H__
  59. GAS LISTING /tmp/ccKdzQHI.s page 2
  60. 58 /* prologue: function */
  61. 59 /* frame size = 4 */
  62. 60 /* stack size = 18 */
  63. 61 .L__stack_usage = 18
  64. 62 0024 5C01 movw r10,r24
  65. 63 0026 6A01 movw r12,r20
  66. 64 0028 7B01 movw r14,r22
  67. 65 002a 2801 movw r4,r16
  68. 66 002c 3901 movw r6,r18
  69. 67 002e 81E0 ldi r24,lo8(1)
  70. 68 0030 90E0 ldi r25,0
  71. 69 0032 A0E0 ldi r26,0
  72. 70 0034 B0E0 ldi r27,0
  73. 71 0036 8983 std Y+1,r24
  74. 72 0038 9A83 std Y+2,r25
  75. 73 003a AB83 std Y+3,r26
  76. 74 003c BC83 std Y+4,r27
  77. 75 003e D501 movw r26,r10
  78. 76 0040 5196 adiw r26,17
  79. 77 0042 ED91 ld r30,X+
  80. 78 0044 FC91 ld r31,X
  81. 79 0046 5297 sbiw r26,17+1
  82. 80 0048 8081 ld r24,Z
  83. 81 004a 9181 ldd r25,Z+1
  84. 82 004c 8032 cpi r24,32
  85. 83 004e 9105 cpc r25,__zero_reg__
  86. 84 0050 01F4 brne .L4
  87. 85 0052 8FEF ldi r24,lo8(-1)
  88. 86 0054 9FEF ldi r25,lo8(-1)
  89. 87 .L5:
  90. 88 0056 C414 cp r12,r4
  91. 89 0058 D504 cpc r13,r5
  92. 90 005a E604 cpc r14,r6
  93. 91 005c F704 cpc r15,r7
  94. 92 005e 00F0 brlo .+2
  95. 93 0060 00C0 rjmp .L9
  96. 94 0062 9E01 movw r18,r28
  97. 95 0064 2F5F subi r18,-1
  98. 96 0066 3F4F sbci r19,-1
  99. 97 0068 B701 movw r22,r14
  100. 98 006a A601 movw r20,r12
  101. 99 006c C501 movw r24,r10
  102. 100 006e 0E94 0000 call Phat32GetClusterLink
  103. 101 0072 97FD sbrc r25,7
  104. 102 0074 00C0 rjmp .L15
  105. 103 0076 4981 ldd r20,Y+1
  106. 104 0078 5A81 ldd r21,Y+2
  107. 105 007a 6B81 ldd r22,Y+3
  108. 106 007c 7C81 ldd r23,Y+4
  109. 107 007e 452B or r20,r21
  110. 108 0080 462B or r20,r22
  111. 109 0082 472B or r20,r23
  112. 110 0084 01F4 brne .+2
  113. 111 0086 00C0 rjmp .L7
  114. 112 0088 BFEF ldi r27,-1
  115. 113 008a CB1A sub r12,r27
  116. 114 008c DB0A sbc r13,r27
  117. GAS LISTING /tmp/ccKdzQHI.s page 3
  118. 115 008e EB0A sbc r14,r27
  119. 116 0090 FB0A sbc r15,r27
  120. 117 0092 00C0 rjmp .L5
  121. 118 .L4:
  122. 119 0094 4097 sbiw r24,16
  123. 120 0096 01F0 breq .L10
  124. 121 0098 8FEF ldi r24,lo8(-1)
  125. 122 009a 9FEF ldi r25,lo8(-1)
  126. 123 009c 00C0 rjmp .L11
  127. 124 .L10:
  128. 125 009e 8FEF ldi r24,lo8(-1)
  129. 126 00a0 9FEF ldi r25,lo8(-1)
  130. 127 .L12:
  131. 128 00a2 C414 cp r12,r4
  132. 129 00a4 D504 cpc r13,r5
  133. 130 00a6 E604 cpc r14,r6
  134. 131 00a8 F704 cpc r15,r7
  135. 132 00aa 00F4 brsh .L9
  136. 133 00ac 9E01 movw r18,r28
  137. 134 00ae 2F5F subi r18,-1
  138. 135 00b0 3F4F sbci r19,-1
  139. 136 00b2 B701 movw r22,r14
  140. 137 00b4 A601 movw r20,r12
  141. 138 00b6 C501 movw r24,r10
  142. 139 00b8 0E94 0000 call Phat16GetClusterLink
  143. 140 00bc 97FD sbrc r25,7
  144. 141 00be 00C0 rjmp .L15
  145. 142 00c0 4981 ldd r20,Y+1
  146. 143 00c2 5A81 ldd r21,Y+2
  147. 144 00c4 6B81 ldd r22,Y+3
  148. 145 00c6 7C81 ldd r23,Y+4
  149. 146 00c8 452B or r20,r21
  150. 147 00ca 462B or r20,r22
  151. 148 00cc 472B or r20,r23
  152. 149 00ce 01F0 breq .L7
  153. 150 00d0 2FEF ldi r18,-1
  154. 151 00d2 C21A sub r12,r18
  155. 152 00d4 D20A sbc r13,r18
  156. 153 00d6 E20A sbc r14,r18
  157. 154 00d8 F20A sbc r15,r18
  158. 155 00da 00C0 rjmp .L12
  159. 156 .L14:
  160. 157 00dc 9E01 movw r18,r28
  161. 158 00de 2F5F subi r18,-1
  162. 159 00e0 3F4F sbci r19,-1
  163. 160 00e2 B701 movw r22,r14
  164. 161 00e4 A601 movw r20,r12
  165. 162 00e6 C501 movw r24,r10
  166. 163 00e8 0E94 0000 call Phat12GetClusterLink
  167. 164 00ec 97FD sbrc r25,7
  168. 165 00ee 00C0 rjmp .L15
  169. 166 00f0 4981 ldd r20,Y+1
  170. 167 00f2 5A81 ldd r21,Y+2
  171. 168 00f4 6B81 ldd r22,Y+3
  172. 169 00f6 7C81 ldd r23,Y+4
  173. 170 00f8 452B or r20,r21
  174. 171 00fa 462B or r20,r22
  175. GAS LISTING /tmp/ccKdzQHI.s page 4
  176. 172 00fc 472B or r20,r23
  177. 173 00fe 01F0 breq .L7
  178. 174 0100 AFEF ldi r26,-1
  179. 175 0102 CA1A sub r12,r26
  180. 176 0104 DA0A sbc r13,r26
  181. 177 0106 EA0A sbc r14,r26
  182. 178 0108 FA0A sbc r15,r26
  183. 179 .L11:
  184. 180 010a C414 cp r12,r4
  185. 181 010c D504 cpc r13,r5
  186. 182 010e E604 cpc r14,r6
  187. 183 0110 F704 cpc r15,r7
  188. 184 0112 00F0 brlo .L14
  189. 185 .L9:
  190. 186 0114 892B or r24,r25
  191. 187 0116 01F4 brne .L15
  192. 188 0118 8981 ldd r24,Y+1
  193. 189 011a 9A81 ldd r25,Y+2
  194. 190 011c AB81 ldd r26,Y+3
  195. 191 011e BC81 ldd r27,Y+4
  196. 192 0120 892B or r24,r25
  197. 193 0122 8A2B or r24,r26
  198. 194 0124 8B2B or r24,r27
  199. 195 0126 01F4 brne .L15
  200. 196 0128 00C0 rjmp .L27
  201. 197 .L7:
  202. 198 012a 892B or r24,r25
  203. 199 012c 01F0 breq .L27
  204. 200 .L15:
  205. 201 012e 60E0 ldi r22,0
  206. 202 0130 70E0 ldi r23,0
  207. 203 0132 80E0 ldi r24,0
  208. 204 0134 90E0 ldi r25,0
  209. 205 0136 00C0 rjmp .L26
  210. 206 .L27:
  211. 207 0138 B601 movw r22,r12
  212. 208 013a C701 movw r24,r14
  213. 209 .L26:
  214. 210 /* epilogue start */
  215. 211 013c 0F90 pop __tmp_reg__
  216. 212 013e 0F90 pop __tmp_reg__
  217. 213 0140 0F90 pop __tmp_reg__
  218. 214 0142 0F90 pop __tmp_reg__
  219. 215 0144 DF91 pop r29
  220. 216 0146 CF91 pop r28
  221. 217 0148 1F91 pop r17
  222. 218 014a 0F91 pop r16
  223. 219 014c FF90 pop r15
  224. 220 014e EF90 pop r14
  225. 221 0150 DF90 pop r13
  226. 222 0152 CF90 pop r12
  227. 223 0154 BF90 pop r11
  228. 224 0156 AF90 pop r10
  229. 225 0158 7F90 pop r7
  230. 226 015a 6F90 pop r6
  231. 227 015c 5F90 pop r5
  232. 228 015e 4F90 pop r4
  233. GAS LISTING /tmp/ccKdzQHI.s page 5
  234. 229 0160 0895 ret
  235. 230 .size SearchFreeCluster, .-SearchFreeCluster
  236. 231 .section .text.AllocCluster,"ax",@progbits
  237. 232 .type AllocCluster, @function
  238. 233 AllocCluster:
  239. 234 0000 EF92 push r14
  240. 235 0002 FF92 push r15
  241. 236 0004 0F93 push r16
  242. 237 0006 1F93 push r17
  243. 238 0008 CF93 push r28
  244. 239 000a DF93 push r29
  245. 240 /* prologue: function */
  246. 241 /* frame size = 0 */
  247. 242 /* stack size = 6 */
  248. 243 .L__stack_usage = 6
  249. 244 000c 7C01 movw r14,r24
  250. 245 000e FC01 movw r30,r24
  251. 246 0010 C189 ldd r28,Z+17
  252. 247 0012 D289 ldd r29,Z+18
  253. 248 0014 8E81 ldd r24,Y+6
  254. 249 0016 9F81 ldd r25,Y+7
  255. 250 0018 A885 ldd r26,Y+8
  256. 251 001a B985 ldd r27,Y+9
  257. 252 001c 0AA9 ldd r16,Y+50
  258. 253 001e 1BA9 ldd r17,Y+51
  259. 254 0020 2CA9 ldd r18,Y+52
  260. 255 0022 3DA9 ldd r19,Y+53
  261. 256 0024 8230 cpi r24,2
  262. 257 0026 9105 cpc r25,__zero_reg__
  263. 258 0028 A105 cpc r26,__zero_reg__
  264. 259 002a B105 cpc r27,__zero_reg__
  265. 260 002c 00F0 brlo .L30
  266. 261 002e 8017 cp r24,r16
  267. 262 0030 9107 cpc r25,r17
  268. 263 0032 A207 cpc r26,r18
  269. 264 0034 B307 cpc r27,r19
  270. 265 0036 00F0 brlo .L31
  271. 266 .L30:
  272. 267 0038 82E0 ldi r24,lo8(2)
  273. 268 003a 90E0 ldi r25,0
  274. 269 003c A0E0 ldi r26,0
  275. 270 003e B0E0 ldi r27,0
  276. 271 0040 8E83 std Y+6,r24
  277. 272 0042 9F83 std Y+7,r25
  278. 273 0044 A887 std Y+8,r26
  279. 274 0046 B987 std Y+9,r27
  280. 275 .L31:
  281. 276 0048 4E81 ldd r20,Y+6
  282. 277 004a 5F81 ldd r21,Y+7
  283. 278 004c 6885 ldd r22,Y+8
  284. 279 004e 7985 ldd r23,Y+9
  285. 280 0050 C701 movw r24,r14
  286. 281 0052 0E94 0000 call SearchFreeCluster
  287. 282 0056 6230 cpi r22,2
  288. 283 0058 7105 cpc r23,__zero_reg__
  289. 284 005a 8105 cpc r24,__zero_reg__
  290. 285 005c 9105 cpc r25,__zero_reg__
  291. GAS LISTING /tmp/ccKdzQHI.s page 6
  292. 286 005e 00F4 brsh .L32
  293. 287 0060 0E81 ldd r16,Y+6
  294. 288 0062 1F81 ldd r17,Y+7
  295. 289 0064 2885 ldd r18,Y+8
  296. 290 0066 3985 ldd r19,Y+9
  297. 291 0068 42E0 ldi r20,lo8(2)
  298. 292 006a 50E0 ldi r21,0
  299. 293 006c 60E0 ldi r22,0
  300. 294 006e 70E0 ldi r23,0
  301. 295 0070 C701 movw r24,r14
  302. 296 0072 0E94 0000 call SearchFreeCluster
  303. 297 0076 6230 cpi r22,2
  304. 298 0078 7105 cpc r23,__zero_reg__
  305. 299 007a 8105 cpc r24,__zero_reg__
  306. 300 007c 9105 cpc r25,__zero_reg__
  307. 301 007e 00F4 brsh .L32
  308. 302 0080 1E82 std Y+6,__zero_reg__
  309. 303 0082 1F82 std Y+7,__zero_reg__
  310. 304 0084 1886 std Y+8,__zero_reg__
  311. 305 0086 1986 std Y+9,__zero_reg__
  312. 306 0088 8CE1 ldi r24,lo8(28)
  313. 307 008a 90E0 ldi r25,0
  314. 308 008c 9093 0000 sts errno+1,r25
  315. 309 0090 8093 0000 sts errno,r24
  316. 310 0094 40E0 ldi r20,0
  317. 311 0096 30E0 ldi r19,0
  318. 312 0098 20E0 ldi r18,0
  319. 313 009a 90E0 ldi r25,0
  320. 314 009c 00C0 rjmp .L33
  321. 315 .L32:
  322. 316 009e 6E83 std Y+6,r22
  323. 317 00a0 7F83 std Y+7,r23
  324. 318 00a2 8887 std Y+8,r24
  325. 319 00a4 9987 std Y+9,r25
  326. 320 00a6 462F mov r20,r22
  327. 321 00a8 372F mov r19,r23
  328. 322 00aa 282F mov r18,r24
  329. 323 .L33:
  330. 324 00ac 642F mov r22,r20
  331. 325 00ae 732F mov r23,r19
  332. 326 00b0 822F mov r24,r18
  333. 327 /* epilogue start */
  334. 328 00b2 DF91 pop r29
  335. 329 00b4 CF91 pop r28
  336. 330 00b6 1F91 pop r17
  337. 331 00b8 0F91 pop r16
  338. 332 00ba FF90 pop r15
  339. 333 00bc EF90 pop r14
  340. 334 00be 0895 ret
  341. 335 .size AllocCluster, .-AllocCluster
  342. 336 .section .text.AllocNextCluster,"ax",@progbits
  343. 337 .type AllocNextCluster, @function
  344. 338 AllocNextCluster:
  345. 339 0000 AF92 push r10
  346. 340 0002 BF92 push r11
  347. 341 0004 CF92 push r12
  348. 342 0006 DF92 push r13
  349. GAS LISTING /tmp/ccKdzQHI.s page 7
  350. 343 0008 EF92 push r14
  351. 344 000a FF92 push r15
  352. 345 000c 0F93 push r16
  353. 346 000e 1F93 push r17
  354. 347 0010 CF93 push r28
  355. 348 0012 DF93 push r29
  356. 349 /* prologue: function */
  357. 350 /* frame size = 0 */
  358. 351 /* stack size = 10 */
  359. 352 .L__stack_usage = 10
  360. 353 0014 FC01 movw r30,r24
  361. 354 0016 C081 ld r28,Z
  362. 355 0018 D181 ldd r29,Z+1
  363. 356 001a 0281 ldd r16,Z+2
  364. 357 001c 1381 ldd r17,Z+3
  365. 358 001e A988 ldd r10,Y+17
  366. 359 0020 BA88 ldd r11,Y+18
  367. 360 0022 CE01 movw r24,r28
  368. 361 0024 0E94 0000 call AllocCluster
  369. 362 0028 6B01 movw r12,r22
  370. 363 002a 7C01 movw r14,r24
  371. 364 002c 6230 cpi r22,2
  372. 365 002e 7105 cpc r23,__zero_reg__
  373. 366 0030 8105 cpc r24,__zero_reg__
  374. 367 0032 9105 cpc r25,__zero_reg__
  375. 368 0034 00F4 brsh .L35
  376. 369 .L38:
  377. 370 0036 60E0 ldi r22,0
  378. 371 0038 70E0 ldi r23,0
  379. 372 003a 80E0 ldi r24,0
  380. 373 003c 90E0 ldi r25,0
  381. 374 003e 00C0 rjmp .L36
  382. 375 .L35:
  383. 376 0040 F501 movw r30,r10
  384. 377 0042 8081 ld r24,Z
  385. 378 0044 9181 ldd r25,Z+1
  386. 379 0046 F801 movw r30,r16
  387. 380 0048 4481 ldd r20,Z+4
  388. 381 004a 5581 ldd r21,Z+5
  389. 382 004c 6681 ldd r22,Z+6
  390. 383 004e 7781 ldd r23,Z+7
  391. 384 0050 9701 movw r18,r14
  392. 385 0052 8601 movw r16,r12
  393. 386 0054 8032 cpi r24,32
  394. 387 0056 9105 cpc r25,__zero_reg__
  395. 388 0058 01F4 brne .L37
  396. 389 005a CE01 movw r24,r28
  397. 390 005c 0E94 0000 call Phat32SetClusterLink
  398. 391 0060 892B or r24,r25
  399. 392 0062 01F4 brne .L38
  400. 393 0064 0FEF ldi r16,lo8(-1)
  401. 394 0066 1FEF ldi r17,lo8(-1)
  402. 395 0068 2FEF ldi r18,lo8(-1)
  403. 396 006a 3FE0 ldi r19,lo8(15)
  404. 397 006c B701 movw r22,r14
  405. 398 006e A601 movw r20,r12
  406. 399 0070 CE01 movw r24,r28
  407. GAS LISTING /tmp/ccKdzQHI.s page 8
  408. 400 0072 0E94 0000 call Phat32SetClusterLink
  409. 401 0076 00C0 rjmp .L43
  410. 402 .L37:
  411. 403 0078 4097 sbiw r24,16
  412. 404 007a 01F4 brne .L39
  413. 405 007c CE01 movw r24,r28
  414. 406 007e 0E94 0000 call Phat16SetClusterLink
  415. 407 0082 892B or r24,r25
  416. 408 0084 01F4 brne .L38
  417. 409 0086 0FEF ldi r16,lo8(-1)
  418. 410 0088 1FEF ldi r17,lo8(-1)
  419. 411 008a 20E0 ldi r18,0
  420. 412 008c 30E0 ldi r19,0
  421. 413 008e B701 movw r22,r14
  422. 414 0090 A601 movw r20,r12
  423. 415 0092 CE01 movw r24,r28
  424. 416 0094 0E94 0000 call Phat16SetClusterLink
  425. 417 0098 00C0 rjmp .L43
  426. 418 .L39:
  427. 419 009a CE01 movw r24,r28
  428. 420 009c 0E94 0000 call Phat12SetClusterLink
  429. 421 00a0 892B or r24,r25
  430. 422 00a2 01F4 brne .L38
  431. 423 00a4 0FEF ldi r16,lo8(-1)
  432. 424 00a6 1FE0 ldi r17,lo8(15)
  433. 425 00a8 20E0 ldi r18,0
  434. 426 00aa 30E0 ldi r19,0
  435. 427 00ac B701 movw r22,r14
  436. 428 00ae A601 movw r20,r12
  437. 429 00b0 CE01 movw r24,r28
  438. 430 00b2 0E94 0000 call Phat12SetClusterLink
  439. 431 .L43:
  440. 432 00b6 892B or r24,r25
  441. 433 00b8 01F0 breq .+2
  442. 434 00ba 00C0 rjmp .L38
  443. 435 00bc F501 movw r30,r10
  444. 436 00be 8281 ldd r24,Z+2
  445. 437 00c0 9381 ldd r25,Z+3
  446. 438 00c2 A481 ldd r26,Z+4
  447. 439 00c4 B581 ldd r27,Z+5
  448. 440 00c6 0197 sbiw r24,1
  449. 441 00c8 A109 sbc r26,__zero_reg__
  450. 442 00ca B109 sbc r27,__zero_reg__
  451. 443 00cc 8283 std Z+2,r24
  452. 444 00ce 9383 std Z+3,r25
  453. 445 00d0 A483 std Z+4,r26
  454. 446 00d2 B583 std Z+5,r27
  455. 447 00d4 B601 movw r22,r12
  456. 448 00d6 C701 movw r24,r14
  457. 449 .L36:
  458. 450 /* epilogue start */
  459. 451 00d8 DF91 pop r29
  460. 452 00da CF91 pop r28
  461. 453 00dc 1F91 pop r17
  462. 454 00de 0F91 pop r16
  463. 455 00e0 FF90 pop r15
  464. 456 00e2 EF90 pop r14
  465. GAS LISTING /tmp/ccKdzQHI.s page 9
  466. 457 00e4 DF90 pop r13
  467. 458 00e6 CF90 pop r12
  468. 459 00e8 BF90 pop r11
  469. 460 00ea AF90 pop r10
  470. 461 00ec 0895 ret
  471. 462 .size AllocNextCluster, .-AllocNextCluster
  472. 463 .section .text.PhatFileFlush,"ax",@progbits
  473. 464 .type PhatFileFlush, @function
  474. 465 PhatFileFlush:
  475. 466 0000 EF92 push r14
  476. 467 0002 FF92 push r15
  477. 468 0004 0F93 push r16
  478. 469 0006 1F93 push r17
  479. 470 0008 CF93 push r28
  480. 471 000a DF93 push r29
  481. 472 /* prologue: function */
  482. 473 /* frame size = 0 */
  483. 474 /* stack size = 6 */
  484. 475 .L__stack_usage = 6
  485. 476 000c 7C01 movw r14,r24
  486. 477 000e DC01 movw r26,r24
  487. 478 0010 ED91 ld r30,X+
  488. 479 0012 FC91 ld r31,X
  489. 480 0014 C189 ldd r28,Z+17
  490. 481 0016 D289 ldd r29,Z+18
  491. 482 0018 0E94 0000 call PhatDirEntryUpdate
  492. 483 001c 8C01 movw r16,r24
  493. 484 001e 892B or r24,r25
  494. 485 0020 01F4 brne .L45
  495. 486 0022 6696 adiw r28,22
  496. 487 0024 40E0 ldi r20,0
  497. 488 0026 50E0 ldi r21,0
  498. 489 0028 BA01 movw r22,r20
  499. 490 002a CE01 movw r24,r28
  500. 491 002c 0E94 0000 call NutEventWait
  501. 492 0030 6FEF ldi r22,lo8(-1)
  502. 493 0032 7FEF ldi r23,lo8(-1)
  503. 494 0034 F701 movw r30,r14
  504. 495 0036 8081 ld r24,Z
  505. 496 0038 9181 ldd r25,Z+1
  506. 497 003a 0E94 0000 call PhatSectorFlush
  507. 498 003e 8C01 movw r16,r24
  508. 499 0040 CE01 movw r24,r28
  509. 500 0042 0E94 0000 call NutEventPost
  510. 501 .L45:
  511. 502 0046 C801 movw r24,r16
  512. 503 /* epilogue start */
  513. 504 0048 DF91 pop r29
  514. 505 004a CF91 pop r28
  515. 506 004c 1F91 pop r17
  516. 507 004e 0F91 pop r16
  517. 508 0050 FF90 pop r15
  518. 509 0052 EF90 pop r14
  519. 510 0054 0895 ret
  520. 511 .size PhatFileFlush, .-PhatFileFlush
  521. 512 .section .text.PhatApiFileWrite_P,"ax",@progbits
  522. 513 .type PhatApiFileWrite_P, @function
  523. GAS LISTING /tmp/ccKdzQHI.s page 10
  524. 514 PhatApiFileWrite_P:
  525. 515 0000 CF93 push r28
  526. 516 0002 DF93 push r29
  527. 517 /* prologue: function */
  528. 518 /* frame size = 0 */
  529. 519 /* stack size = 2 */
  530. 520 .L__stack_usage = 2
  531. 521 0004 DC01 movw r26,r24
  532. 522 0006 ED91 ld r30,X+
  533. 523 0008 FC91 ld r31,X
  534. 524 000a C189 ldd r28,Z+17
  535. 525 000c D289 ldd r29,Z+18
  536. 526 000e 6496 adiw r28,20
  537. 527 0010 40E0 ldi r20,0
  538. 528 0012 50E0 ldi r21,0
  539. 529 0014 BA01 movw r22,r20
  540. 530 0016 CE01 movw r24,r28
  541. 531 0018 0E94 0000 call NutEventWait
  542. 532 001c CE01 movw r24,r28
  543. 533 001e 0E94 0000 call NutEventPost
  544. 534 0022 8FEF ldi r24,lo8(-1)
  545. 535 0024 9FEF ldi r25,lo8(-1)
  546. 536 /* epilogue start */
  547. 537 0026 DF91 pop r29
  548. 538 0028 CF91 pop r28
  549. 539 002a 0895 ret
  550. 540 .size PhatApiFileWrite_P, .-PhatApiFileWrite_P
  551. 541 .section .text.AllocFirstCluster,"ax",@progbits
  552. 542 .global AllocFirstCluster
  553. 543 .type AllocFirstCluster, @function
  554. 544 AllocFirstCluster:
  555. 545 0000 AF92 push r10
  556. 546 0002 BF92 push r11
  557. 547 0004 CF92 push r12
  558. 548 0006 DF92 push r13
  559. 549 0008 EF92 push r14
  560. 550 000a FF92 push r15
  561. 551 000c 0F93 push r16
  562. 552 000e 1F93 push r17
  563. 553 0010 CF93 push r28
  564. 554 0012 DF93 push r29
  565. 555 /* prologue: function */
  566. 556 /* frame size = 0 */
  567. 557 /* stack size = 10 */
  568. 558 .L__stack_usage = 10
  569. 559 0014 FC01 movw r30,r24
  570. 560 0016 C081 ld r28,Z
  571. 561 0018 D181 ldd r29,Z+1
  572. 562 001a A988 ldd r10,Y+17
  573. 563 001c BA88 ldd r11,Y+18
  574. 564 001e 0281 ldd r16,Z+2
  575. 565 0020 1381 ldd r17,Z+3
  576. 566 0022 CE01 movw r24,r28
  577. 567 0024 0E94 0000 call AllocCluster
  578. 568 0028 6B01 movw r12,r22
  579. 569 002a 7C01 movw r14,r24
  580. 570 002c 6230 cpi r22,2
  581. GAS LISTING /tmp/ccKdzQHI.s page 11
  582. 571 002e 7105 cpc r23,__zero_reg__
  583. 572 0030 8105 cpc r24,__zero_reg__
  584. 573 0032 9105 cpc r25,__zero_reg__
  585. 574 0034 00F4 brsh .L48
  586. 575 .L51:
  587. 576 0036 60E0 ldi r22,0
  588. 577 0038 70E0 ldi r23,0
  589. 578 003a 80E0 ldi r24,0
  590. 579 003c 90E0 ldi r25,0
  591. 580 003e 00C0 rjmp .L49
  592. 581 .L48:
  593. 582 0040 F801 movw r30,r16
  594. 583 0042 F5A6 std Z+45,r15
  595. 584 0044 E4A6 std Z+44,r14
  596. 585 0046 73AB std Z+51,r23
  597. 586 0048 62AB std Z+50,r22
  598. 587 004a E05C subi r30,-64
  599. 588 004c FF4F sbci r31,-1
  600. 589 004e 81E0 ldi r24,lo8(1)
  601. 590 0050 90E0 ldi r25,0
  602. 591 0052 9183 std Z+1,r25
  603. 592 0054 8083 st Z,r24
  604. 593 0056 F501 movw r30,r10
  605. 594 0058 8081 ld r24,Z
  606. 595 005a 9181 ldd r25,Z+1
  607. 596 005c 8032 cpi r24,32
  608. 597 005e 9105 cpc r25,__zero_reg__
  609. 598 0060 01F4 brne .L50
  610. 599 0062 0FEF ldi r16,lo8(-1)
  611. 600 0064 1FEF ldi r17,lo8(-1)
  612. 601 0066 2FEF ldi r18,lo8(-1)
  613. 602 0068 3FE0 ldi r19,lo8(15)
  614. 603 006a B701 movw r22,r14
  615. 604 006c A601 movw r20,r12
  616. 605 006e CE01 movw r24,r28
  617. 606 0070 0E94 0000 call Phat32SetClusterLink
  618. 607 0074 00C0 rjmp .L56
  619. 608 .L50:
  620. 609 0076 4097 sbiw r24,16
  621. 610 0078 01F4 brne .L52
  622. 611 007a 0FEF ldi r16,lo8(-1)
  623. 612 007c 1FEF ldi r17,lo8(-1)
  624. 613 007e 20E0 ldi r18,0
  625. 614 0080 30E0 ldi r19,0
  626. 615 0082 B701 movw r22,r14
  627. 616 0084 A601 movw r20,r12
  628. 617 0086 CE01 movw r24,r28
  629. 618 0088 0E94 0000 call Phat16SetClusterLink
  630. 619 008c 00C0 rjmp .L56
  631. 620 .L52:
  632. 621 008e 0FEF ldi r16,lo8(-1)
  633. 622 0090 1FE0 ldi r17,lo8(15)
  634. 623 0092 20E0 ldi r18,0
  635. 624 0094 30E0 ldi r19,0
  636. 625 0096 B701 movw r22,r14
  637. 626 0098 A601 movw r20,r12
  638. 627 009a CE01 movw r24,r28
  639. GAS LISTING /tmp/ccKdzQHI.s page 12
  640. 628 009c 0E94 0000 call Phat12SetClusterLink
  641. 629 .L56:
  642. 630 00a0 892B or r24,r25
  643. 631 00a2 01F4 brne .L51
  644. 632 00a4 F501 movw r30,r10
  645. 633 00a6 8281 ldd r24,Z+2
  646. 634 00a8 9381 ldd r25,Z+3
  647. 635 00aa A481 ldd r26,Z+4
  648. 636 00ac B581 ldd r27,Z+5
  649. 637 00ae 0197 sbiw r24,1
  650. 638 00b0 A109 sbc r26,__zero_reg__
  651. 639 00b2 B109 sbc r27,__zero_reg__
  652. 640 00b4 8283 std Z+2,r24
  653. 641 00b6 9383 std Z+3,r25
  654. 642 00b8 A483 std Z+4,r26
  655. 643 00ba B583 std Z+5,r27
  656. 644 00bc B601 movw r22,r12
  657. 645 00be C701 movw r24,r14
  658. 646 .L49:
  659. 647 /* epilogue start */
  660. 648 00c0 DF91 pop r29
  661. 649 00c2 CF91 pop r28
  662. 650 00c4 1F91 pop r17
  663. 651 00c6 0F91 pop r16
  664. 652 00c8 FF90 pop r15
  665. 653 00ca EF90 pop r14
  666. 654 00cc DF90 pop r13
  667. 655 00ce CF90 pop r12
  668. 656 00d0 BF90 pop r11
  669. 657 00d2 AF90 pop r10
  670. 658 00d4 0895 ret
  671. 659 .size AllocFirstCluster, .-AllocFirstCluster
  672. 660 .section .text.PhatFileClose,"ax",@progbits
  673. 661 .global PhatFileClose
  674. 662 .type PhatFileClose, @function
  675. 663 PhatFileClose:
  676. 664 0000 0F93 push r16
  677. 665 0002 1F93 push r17
  678. 666 0004 CF93 push r28
  679. 667 0006 DF93 push r29
  680. 668 /* prologue: function */
  681. 669 /* frame size = 0 */
  682. 670 /* stack size = 4 */
  683. 671 .L__stack_usage = 4
  684. 672 0008 8C01 movw r16,r24
  685. 673 000a 0197 sbiw r24,1
  686. 674 000c 8E3F cpi r24,-2
  687. 675 000e 9F4F sbci r25,-1
  688. 676 0010 00F0 brlo .L58
  689. 677 0012 89E0 ldi r24,lo8(9)
  690. 678 0014 90E0 ldi r25,0
  691. 679 0016 9093 0000 sts errno+1,r25
  692. 680 001a 8093 0000 sts errno,r24
  693. 681 001e 8FEF ldi r24,lo8(-1)
  694. 682 0020 9FEF ldi r25,lo8(-1)
  695. 683 0022 00C0 rjmp .L59
  696. 684 .L58:
  697. GAS LISTING /tmp/ccKdzQHI.s page 13
  698. 685 0024 C801 movw r24,r16
  699. 686 0026 0E94 0000 call PhatFileFlush
  700. 687 002a D82F mov r29,r24
  701. 688 002c C92F mov r28,r25
  702. 689 002e F801 movw r30,r16
  703. 690 0030 8281 ldd r24,Z+2
  704. 691 0032 9381 ldd r25,Z+3
  705. 692 0034 0097 sbiw r24,0
  706. 693 0036 01F0 breq .L60
  707. 694 0038 0E94 0000 call free
  708. 695 .L60:
  709. 696 003c C801 movw r24,r16
  710. 697 003e 0E94 0000 call free
  711. 698 0042 8D2F mov r24,r29
  712. 699 0044 9C2F mov r25,r28
  713. 700 .L59:
  714. 701 /* epilogue start */
  715. 702 0046 DF91 pop r29
  716. 703 0048 CF91 pop r28
  717. 704 004a 1F91 pop r17
  718. 705 004c 0F91 pop r16
  719. 706 004e 0895 ret
  720. 707 .size PhatFileClose, .-PhatFileClose
  721. 708 .section .text.PhatApiFileClose,"ax",@progbits
  722. 709 .type PhatApiFileClose, @function
  723. 710 PhatApiFileClose:
  724. 711 0000 0F93 push r16
  725. 712 0002 1F93 push r17
  726. 713 0004 CF93 push r28
  727. 714 0006 DF93 push r29
  728. 715 /* prologue: function */
  729. 716 /* frame size = 0 */
  730. 717 /* stack size = 4 */
  731. 718 .L__stack_usage = 4
  732. 719 0008 8C01 movw r16,r24
  733. 720 000a DC01 movw r26,r24
  734. 721 000c ED91 ld r30,X+
  735. 722 000e FC91 ld r31,X
  736. 723 0010 C189 ldd r28,Z+17
  737. 724 0012 D289 ldd r29,Z+18
  738. 725 0014 6496 adiw r28,20
  739. 726 0016 40E0 ldi r20,0
  740. 727 0018 50E0 ldi r21,0
  741. 728 001a BA01 movw r22,r20
  742. 729 001c CE01 movw r24,r28
  743. 730 001e 0E94 0000 call NutEventWait
  744. 731 0022 C801 movw r24,r16
  745. 732 0024 0E94 0000 call PhatFileClose
  746. 733 0028 8C01 movw r16,r24
  747. 734 002a CE01 movw r24,r28
  748. 735 002c 0E94 0000 call NutEventPost
  749. 736 0030 C801 movw r24,r16
  750. 737 /* epilogue start */
  751. 738 0032 DF91 pop r29
  752. 739 0034 CF91 pop r28
  753. 740 0036 1F91 pop r17
  754. 741 0038 0F91 pop r16
  755. GAS LISTING /tmp/ccKdzQHI.s page 14
  756. 742 003a 0895 ret
  757. 743 .size PhatApiFileClose, .-PhatApiFileClose
  758. 744 .section .text.PhatApiIOCtl,"ax",@progbits
  759. 745 .type PhatApiIOCtl, @function
  760. 746 PhatApiIOCtl:
  761. 747 0000 4F92 push r4
  762. 748 0002 5F92 push r5
  763. 749 0004 6F92 push r6
  764. 750 0006 7F92 push r7
  765. 751 0008 AF92 push r10
  766. 752 000a BF92 push r11
  767. 753 000c CF92 push r12
  768. 754 000e DF92 push r13
  769. 755 0010 EF92 push r14
  770. 756 0012 FF92 push r15
  771. 757 0014 0F93 push r16
  772. 758 0016 1F93 push r17
  773. 759 0018 CF93 push r28
  774. 760 001a DF93 push r29
  775. 761 /* prologue: function */
  776. 762 /* frame size = 0 */
  777. 763 /* stack size = 14 */
  778. 764 .L__stack_usage = 14
  779. 765 001c 6C01 movw r12,r24
  780. 766 001e 8B01 movw r16,r22
  781. 767 0020 EA01 movw r28,r20
  782. 768 0022 FC01 movw r30,r24
  783. 769 0024 E188 ldd r14,Z+17
  784. 770 0026 F288 ldd r15,Z+18
  785. 771 0028 6033 cpi r22,48
  786. 772 002a 7141 sbci r23,17
  787. 773 002c 01F4 brne .+2
  788. 774 002e 00C0 rjmp .L66
  789. 775 0030 E114 cp r14,__zero_reg__
  790. 776 0032 F104 cpc r15,__zero_reg__
  791. 777 0034 01F0 breq .L67
  792. 778 0036 40E0 ldi r20,0
  793. 779 0038 50E0 ldi r21,0
  794. 780 003a BA01 movw r22,r20
  795. 781 003c C701 movw r24,r14
  796. 782 003e 4496 adiw r24,20
  797. 783 0040 0E94 0000 call NutEventWait
  798. 784 .L67:
  799. 785 0044 0431 cpi r16,20
  800. 786 0046 21E1 ldi r18,17
  801. 787 0048 1207 cpc r17,r18
  802. 788 004a 01F4 brne .+2
  803. 789 004c 00C0 rjmp .L69
  804. 790 004e 04F4 brge .L70
  805. 791 0050 0131 cpi r16,17
  806. 792 0052 E1E1 ldi r30,17
  807. 793 0054 1E07 cpc r17,r30
  808. 794 0056 01F4 brne .+2
  809. 795 0058 00C0 rjmp .L71
  810. 796 005a 04F4 brge .L72
  811. 797 005c 0130 cpi r16,1
  812. 798 005e 21E1 ldi r18,17
  813. GAS LISTING /tmp/ccKdzQHI.s page 15
  814. 799 0060 1207 cpc r17,r18
  815. 800 0062 01F0 breq .+2
  816. 801 0064 00C0 rjmp .L89
  817. 802 0066 4A81 ldd r20,Y+2
  818. 803 0068 5B81 ldd r21,Y+3
  819. 804 006a 6881 ld r22,Y
  820. 805 006c 7981 ldd r23,Y+1
  821. 806 006e C601 movw r24,r12
  822. 807 0070 0E94 0000 call PhatDirEntryStatus
  823. 808 0074 00C0 rjmp .L103
  824. 809 .L72:
  825. 810 0076 0231 cpi r16,18
  826. 811 0078 81E1 ldi r24,17
  827. 812 007a 1807 cpc r17,r24
  828. 813 007c 01F0 breq .L74
  829. 814 007e 0331 cpi r16,19
  830. 815 0080 E1E1 ldi r30,17
  831. 816 0082 1E07 cpc r17,r30
  832. 817 0084 01F0 breq .L75
  833. 818 0086 00C0 rjmp .L89
  834. 819 .L70:
  835. 820 0088 0332 cpi r16,35
  836. 821 008a F1E1 ldi r31,17
  837. 822 008c 1F07 cpc r17,r31
  838. 823 008e 01F4 brne .+2
  839. 824 0090 00C0 rjmp .L76
  840. 825 0092 04F4 brge .L77
  841. 826 0094 0531 cpi r16,21
  842. 827 0096 81E1 ldi r24,17
  843. 828 0098 1807 cpc r17,r24
  844. 829 009a 01F4 brne .+2
  845. 830 009c 00C0 rjmp .L78
  846. 831 009e 0232 cpi r16,34
  847. 832 00a0 E1E1 ldi r30,17
  848. 833 00a2 1E07 cpc r17,r30
  849. 834 00a4 01F0 breq .+2
  850. 835 00a6 00C0 rjmp .L89
  851. 836 00a8 27E2 ldi r18,lo8(39)
  852. 837 00aa 30E0 ldi r19,0
  853. 838 00ac 40E0 ldi r20,0
  854. 839 00ae 50E0 ldi r21,0
  855. 840 00b0 BE01 movw r22,r28
  856. 841 00b2 C601 movw r24,r12
  857. 842 00b4 0E94 0000 call PhatDirDelEntry
  858. 843 00b8 00C0 rjmp .L103
  859. 844 .L77:
  860. 845 00ba 0133 cpi r16,49
  861. 846 00bc F1E1 ldi r31,17
  862. 847 00be 1F07 cpc r17,r31
  863. 848 00c0 01F4 brne .+2
  864. 849 00c2 00C0 rjmp .L80
  865. 850 00c4 0233 cpi r16,50
  866. 851 00c6 21E1 ldi r18,17
  867. 852 00c8 1207 cpc r17,r18
  868. 853 00ca 01F0 breq .+2
  869. 854 00cc 00C0 rjmp .L89
  870. 855 00ce 4A81 ldd r20,Y+2
  871. GAS LISTING /tmp/ccKdzQHI.s page 16
  872. 856 00d0 5B81 ldd r21,Y+3
  873. 857 00d2 6881 ld r22,Y
  874. 858 00d4 7981 ldd r23,Y+1
  875. 859 00d6 C601 movw r24,r12
  876. 860 00d8 0E94 0000 call PhatDirRenameEntry
  877. 861 00dc 00C0 rjmp .L103
  878. 862 .L71:
  879. 863 00de BE01 movw r22,r28
  880. 864 00e0 C601 movw r24,r12
  881. 865 00e2 0E94 0000 call PhatDirCreate
  882. 866 00e6 00C0 rjmp .L103
  883. 867 .L74:
  884. 868 00e8 BE01 movw r22,r28
  885. 869 00ea C601 movw r24,r12
  886. 870 00ec 0E94 0000 call PhatDirRemove
  887. 871 00f0 00C0 rjmp .L103
  888. 872 .L75:
  889. 873 00f2 6A81 ldd r22,Y+2
  890. 874 00f4 7B81 ldd r23,Y+3
  891. 875 00f6 C601 movw r24,r12
  892. 876 00f8 0E94 0000 call PhatDirOpen
  893. 877 00fc 9983 std Y+1,r25
  894. 878 00fe 8883 st Y,r24
  895. 879 0100 C1E0 ldi r28,lo8(1)
  896. 880 0102 D0E0 ldi r29,0
  897. 881 0104 0196 adiw r24,1
  898. 882 0106 01F0 breq .L82
  899. 883 0108 C0E0 ldi r28,0
  900. 884 010a D0E0 ldi r29,0
  901. 885 .L82:
  902. 886 010c D195 neg r29
  903. 887 010e C195 neg r28
  904. 888 0110 D109 sbc r29,__zero_reg__
  905. 889 0112 00C0 rjmp .L68
  906. 890 .L69:
  907. 891 0114 8881 ld r24,Y
  908. 892 0116 9981 ldd r25,Y+1
  909. 893 0118 0E94 0000 call PhatFileClose
  910. 894 011c 00C0 rjmp .L103
  911. 895 .L78:
  912. 896 011e CE01 movw r24,r28
  913. 897 0120 0E94 0000 call PhatDirRead
  914. 898 0124 00C0 rjmp .L103
  915. 899 .L76:
  916. 900 0126 AA80 ldd r10,Y+2
  917. 901 0128 BB80 ldd r11,Y+3
  918. 902 012a 8881 ld r24,Y
  919. 903 012c 9981 ldd r25,Y+1
  920. 904 012e F501 movw r30,r10
  921. 905 0130 4081 ld r20,Z
  922. 906 0132 5181 ldd r21,Z+1
  923. 907 0134 6281 ldd r22,Z+2
  924. 908 0136 7381 ldd r23,Z+3
  925. 909 0138 FC01 movw r30,r24
  926. 910 013a C280 ldd r12,Z+2
  927. 911 013c D380 ldd r13,Z+3
  928. 912 013e 2C81 ldd r18,Y+4
  929. GAS LISTING /tmp/ccKdzQHI.s page 17
  930. 913 0140 3D81 ldd r19,Y+5
  931. 914 0142 2130 cpi r18,1
  932. 915 0144 3105 cpc r19,__zero_reg__
  933. 916 0146 01F0 breq .L84
  934. 917 0148 2230 cpi r18,2
  935. 918 014a 3105 cpc r19,__zero_reg__
  936. 919 014c 01F4 brne .L83
  937. 920 014e F601 movw r30,r12
  938. 921 0150 44A8 ldd r4,Z+52
  939. 922 0152 55A8 ldd r5,Z+53
  940. 923 0154 66A8 ldd r6,Z+54
  941. 924 0156 77A8 ldd r7,Z+55
  942. 925 0158 00C0 rjmp .L102
  943. 926 .L84:
  944. 927 015a F601 movw r30,r12
  945. 928 015c 4080 ld r4,Z
  946. 929 015e 5180 ldd r5,Z+1
  947. 930 0160 6280 ldd r6,Z+2
  948. 931 0162 7380 ldd r7,Z+3
  949. 932 .L102:
  950. 933 0164 440D add r20,r4
  951. 934 0166 551D adc r21,r5
  952. 935 0168 661D adc r22,r6
  953. 936 016a 771D adc r23,r7
  954. 937 .L83:
  955. 938 016c 77FD sbrc r23,7
  956. 939 016e 00C0 rjmp .L89
  957. 940 0170 F601 movw r30,r12
  958. 941 0172 44A8 ldd r4,Z+52
  959. 942 0174 55A8 ldd r5,Z+53
  960. 943 0176 66A8 ldd r6,Z+54
  961. 944 0178 77A8 ldd r7,Z+55
  962. 945 017a 4416 cp r4,r20
  963. 946 017c 5506 cpc r5,r21
  964. 947 017e 6606 cpc r6,r22
  965. 948 0180 7706 cpc r7,r23
  966. 949 0182 04F0 brlt .L89
  967. 950 0184 0E94 0000 call PhatFilePosSet
  968. 951 0188 F601 movw r30,r12
  969. 952 018a 8081 ld r24,Z
  970. 953 018c 9181 ldd r25,Z+1
  971. 954 018e A281 ldd r26,Z+2
  972. 955 0190 B381 ldd r27,Z+3
  973. 956 0192 F501 movw r30,r10
  974. 957 0194 8083 st Z,r24
  975. 958 0196 9183 std Z+1,r25
  976. 959 0198 A283 std Z+2,r26
  977. 960 019a B383 std Z+3,r27
  978. 961 019c 00C0 rjmp .L89
  979. 962 .L66:
  980. 963 019e 6881 ld r22,Y
  981. 964 01a0 7981 ldd r23,Y+1
  982. 965 01a2 4A81 ldd r20,Y+2
  983. 966 01a4 0E94 0000 call PhatVolMount
  984. 967 01a8 EC01 movw r28,r24
  985. 968 01aa 892B or r24,r25
  986. 969 01ac 01F0 breq .L68
  987. GAS LISTING /tmp/ccKdzQHI.s page 18
  988. 970 01ae C601 movw r24,r12
  989. 971 01b0 0E94 0000 call PhatVolUnmount
  990. 972 01b4 00C0 rjmp .L68
  991. 973 .L80:
  992. 974 01b6 C601 movw r24,r12
  993. 975 01b8 0E94 0000 call PhatVolUnmount
  994. 976 .L103:
  995. 977 01bc EC01 movw r28,r24
  996. 978 01be 00C0 rjmp .L68
  997. 979 .L89:
  998. 980 01c0 CFEF ldi r28,lo8(-1)
  999. 981 01c2 DFEF ldi r29,lo8(-1)
  1000. 982 .L68:
  1001. 983 01c4 0053 subi r16,48
  1002. 984 01c6 1141 sbci r17,17
  1003. 985 01c8 0230 cpi r16,2
  1004. 986 01ca 1105 cpc r17,__zero_reg__
  1005. 987 01cc 00F0 brlo .L86
  1006. 988 01ce E114 cp r14,__zero_reg__
  1007. 989 01d0 F104 cpc r15,__zero_reg__
  1008. 990 01d2 01F0 breq .L86
  1009. 991 01d4 C701 movw r24,r14
  1010. 992 01d6 4496 adiw r24,20
  1011. 993 01d8 0E94 0000 call NutEventPost
  1012. 994 .L86:
  1013. 995 01dc CE01 movw r24,r28
  1014. 996 /* epilogue start */
  1015. 997 01de DF91 pop r29
  1016. 998 01e0 CF91 pop r28
  1017. 999 01e2 1F91 pop r17
  1018. 1000 01e4 0F91 pop r16
  1019. 1001 01e6 FF90 pop r15
  1020. 1002 01e8 EF90 pop r14
  1021. 1003 01ea DF90 pop r13
  1022. 1004 01ec CF90 pop r12
  1023. 1005 01ee BF90 pop r11
  1024. 1006 01f0 AF90 pop r10
  1025. 1007 01f2 7F90 pop r7
  1026. 1008 01f4 6F90 pop r6
  1027. 1009 01f6 5F90 pop r5
  1028. 1010 01f8 4F90 pop r4
  1029. 1011 01fa 0895 ret
  1030. 1012 .size PhatApiIOCtl, .-PhatApiIOCtl
  1031. 1013 .section .text.PhatFileOpen,"ax",@progbits
  1032. 1014 .global PhatFileOpen
  1033. 1015 .type PhatFileOpen, @function
  1034. 1016 PhatFileOpen:
  1035. 1017 0000 2F92 push r2
  1036. 1018 0002 3F92 push r3
  1037. 1019 0004 4F92 push r4
  1038. 1020 0006 5F92 push r5
  1039. 1021 0008 6F92 push r6
  1040. 1022 000a 7F92 push r7
  1041. 1023 000c 8F92 push r8
  1042. 1024 000e 9F92 push r9
  1043. 1025 0010 AF92 push r10
  1044. 1026 0012 BF92 push r11
  1045. GAS LISTING /tmp/ccKdzQHI.s page 19
  1046. 1027 0014 CF92 push r12
  1047. 1028 0016 DF92 push r13
  1048. 1029 0018 EF92 push r14
  1049. 1030 001a FF92 push r15
  1050. 1031 001c 0F93 push r16
  1051. 1032 001e 1F93 push r17
  1052. 1033 0020 CF93 push r28
  1053. 1034 0022 DF93 push r29
  1054. 1035 0024 00D0 rcall .
  1055. 1036 0026 00D0 rcall .
  1056. 1037 0028 CDB7 in r28,__SP_L__
  1057. 1038 002a DEB7 in r29,__SP_H__
  1058. 1039 /* prologue: function */
  1059. 1040 /* frame size = 6 */
  1060. 1041 /* stack size = 24 */
  1061. 1042 .L__stack_usage = 24
  1062. 1043 002c 2C01 movw r4,r24
  1063. 1044 002e 3A01 movw r6,r20
  1064. 1045 0030 3C83 std Y+4,r19
  1065. 1046 0032 2B83 std Y+3,r18
  1066. 1047 0034 AE01 movw r20,r28
  1067. 1048 0036 4F5F subi r20,-1
  1068. 1049 0038 5F4F sbci r21,-1
  1069. 1050 003a 0E94 0000 call PhatDirOpenParent
  1070. 1051 003e 4C01 movw r8,r24
  1071. 1052 0040 8F3F cpi r24,-1
  1072. 1053 0042 2FEF ldi r18,-1
  1073. 1054 0044 9207 cpc r25,r18
  1074. 1055 0046 01F4 brne .+2
  1075. 1056 0048 00C0 rjmp .L139
  1076. 1057 004a FC01 movw r30,r24
  1077. 1058 004c 2280 ldd r2,Z+2
  1078. 1059 004e 3380 ldd r3,Z+3
  1079. 1060 0050 6981 ldd r22,Y+1
  1080. 1061 0052 7A81 ldd r23,Y+2
  1081. 1062 0054 FB01 movw r30,r22
  1082. 1063 0056 8081 ld r24,Z
  1083. 1064 0058 8111 cpse r24,__zero_reg__
  1084. 1065 005a 00C0 rjmp .L107
  1085. 1066 005c C301 movw r24,r6
  1086. 1067 005e 770C lsl r7
  1087. 1068 0060 AA0B sbc r26,r26
  1088. 1069 0062 BB0B sbc r27,r27
  1089. 1070 0064 F101 movw r30,r2
  1090. 1071 0066 848B std Z+20,r24
  1091. 1072 0068 958B std Z+21,r25
  1092. 1073 006a A68B std Z+22,r26
  1093. 1074 006c B78B std Z+23,r27
  1094. 1075 006e C401 movw r24,r8
  1095. 1076 0070 00C0 rjmp .L106
  1096. 1077 .L107:
  1097. 1078 0072 84E0 ldi r24,lo8(4)
  1098. 1079 0074 90E0 ldi r25,0
  1099. 1080 0076 6D83 std Y+5,r22
  1100. 1081 0078 7E83 std Y+6,r23
  1101. 1082 007a 0E94 0000 call malloc
  1102. 1083 007e 6C01 movw r12,r24
  1103. GAS LISTING /tmp/ccKdzQHI.s page 20
  1104. 1084 0080 86E4 ldi r24,lo8(70)
  1105. 1085 0082 90E0 ldi r25,0
  1106. 1086 0084 0E94 0000 call malloc
  1107. 1087 0088 7C01 movw r14,r24
  1108. 1088 008a 85E2 ldi r24,lo8(37)
  1109. 1089 008c 91E0 ldi r25,lo8(1)
  1110. 1090 008e 0E94 0000 call malloc
  1111. 1091 0092 5C01 movw r10,r24
  1112. 1092 0094 6D81 ldd r22,Y+5
  1113. 1093 0096 7E81 ldd r23,Y+6
  1114. 1094 0098 C114 cp r12,__zero_reg__
  1115. 1095 009a D104 cpc r13,__zero_reg__
  1116. 1096 009c 01F0 breq .L108
  1117. 1097 009e E114 cp r14,__zero_reg__
  1118. 1098 00a0 F104 cpc r15,__zero_reg__
  1119. 1099 00a2 01F0 breq .L108
  1120. 1100 00a4 0097 sbiw r24,0
  1121. 1101 00a6 01F4 brne .L109
  1122. 1102 .L108:
  1123. 1103 00a8 C401 movw r24,r8
  1124. 1104 00aa 0E94 0000 call PhatFileClose
  1125. 1105 00ae C114 cp r12,__zero_reg__
  1126. 1106 00b0 D104 cpc r13,__zero_reg__
  1127. 1107 00b2 01F0 breq .L110
  1128. 1108 00b4 C601 movw r24,r12
  1129. 1109 00b6 0E94 0000 call free
  1130. 1110 .L110:
  1131. 1111 00ba E114 cp r14,__zero_reg__
  1132. 1112 00bc F104 cpc r15,__zero_reg__
  1133. 1113 00be 01F0 breq .L111
  1134. 1114 00c0 C701 movw r24,r14
  1135. 1115 00c2 0E94 0000 call free
  1136. 1116 .L111:
  1137. 1117 00c6 A114 cp r10,__zero_reg__
  1138. 1118 00c8 B104 cpc r11,__zero_reg__
  1139. 1119 00ca 01F0 breq .+2
  1140. 1120 00cc 00C0 rjmp .L141
  1141. 1121 00ce 00C0 rjmp .L139
  1142. 1122 .L109:
  1143. 1123 00d0 F701 movw r30,r14
  1144. 1124 00d2 26E4 ldi r18,lo8(70)
  1145. 1125 0:
  1146. 1126 00d4 1192 st Z+,__zero_reg__
  1147. 1127 00d6 2A95 dec r18
  1148. 1128 00d8 01F4 brne 0b
  1149. 1129 00da F601 movw r30,r12
  1150. 1130 00dc 5182 std Z+1,r5
  1151. 1131 00de 4082 st Z,r4
  1152. 1132 00e0 F382 std Z+3,r15
  1153. 1133 00e2 E282 std Z+2,r14
  1154. 1134 00e4 8C01 movw r16,r24
  1155. 1135 00e6 27E3 ldi r18,lo8(55)
  1156. 1136 00e8 30E0 ldi r19,0
  1157. 1137 00ea 40E0 ldi r20,0
  1158. 1138 00ec 50E0 ldi r21,0
  1159. 1139 00ee C401 movw r24,r8
  1160. 1140 00f0 0E94 0000 call PhatDirEntryFind
  1161. GAS LISTING /tmp/ccKdzQHI.s page 21
  1162. 1141 00f4 892B or r24,r25
  1163. 1142 00f6 01F0 breq .L113
  1164. 1143 00f8 70FC sbrc r7,0
  1165. 1144 00fa 00C0 rjmp .L114
  1166. 1145 00fc C501 movw r24,r10
  1167. 1146 00fe 0E94 0000 call free
  1168. 1147 0102 C401 movw r24,r8
  1169. 1148 0104 0E94 0000 call PhatFileClose
  1170. 1149 0108 C601 movw r24,r12
  1171. 1150 010a 0E94 0000 call PhatFileClose
  1172. 1151 010e 82E0 ldi r24,lo8(2)
  1173. 1152 0110 90E0 ldi r25,0
  1174. 1153 0112 00C0 rjmp .L142
  1175. 1154 .L114:
  1176. 1155 0114 6981 ldd r22,Y+1
  1177. 1156 0116 7A81 ldd r23,Y+2
  1178. 1157 0118 9701 movw r18,r14
  1179. 1158 011a 285E subi r18,-24
  1180. 1159 011c 3F4F sbci r19,-1
  1181. 1160 011e 4B81 ldd r20,Y+3
  1182. 1161 0120 5C81 ldd r21,Y+4
  1183. 1162 0122 C401 movw r24,r8
  1184. 1163 0124 0E94 0000 call PhatDirEntryCreate
  1185. 1164 0128 892B or r24,r25
  1186. 1165 012a 01F0 breq .L115
  1187. 1166 012c C501 movw r24,r10
  1188. 1167 012e 0E94 0000 call free
  1189. 1168 0132 C401 movw r24,r8
  1190. 1169 0134 0E94 0000 call PhatFileClose
  1191. 1170 0138 00C0 rjmp .L140
  1192. 1171 .L115:
  1193. 1172 013a 81E0 ldi r24,lo8(1)
  1194. 1173 013c 90E0 ldi r25,0
  1195. 1174 013e F701 movw r30,r14
  1196. 1175 0140 00C0 rjmp .L138
  1197. 1176 .L113:
  1198. 1177 0142 C301 movw r24,r6
  1199. 1178 0144 8827 clr r24
  1200. 1179 0146 9570 andi r25,5
  1201. 1180 0148 8115 cp r24,__zero_reg__
  1202. 1181 014a 9540 sbci r25,5
  1203. 1182 014c 01F4 brne .L117
  1204. 1183 014e C501 movw r24,r10
  1205. 1184 0150 0E94 0000 call free
  1206. 1185 0154 C401 movw r24,r8
  1207. 1186 0156 0E94 0000 call PhatFileClose
  1208. 1187 015a C601 movw r24,r12
  1209. 1188 015c 0E94 0000 call PhatFileClose
  1210. 1189 0160 81E1 ldi r24,lo8(17)
  1211. 1190 0162 90E0 ldi r25,0
  1212. 1191 .L142:
  1213. 1192 0164 9093 0000 sts errno+1,r25
  1214. 1193 0168 8093 0000 sts errno,r24
  1215. 1194 016c 00C0 rjmp .L139
  1216. 1195 .L117:
  1217. 1196 016e 71FE sbrs r7,1
  1218. 1197 0170 00C0 rjmp .L118
  1219. GAS LISTING /tmp/ccKdzQHI.s page 22
  1220. 1198 0172 B501 movw r22,r10
  1221. 1199 0174 C201 movw r24,r4
  1222. 1200 0176 0E94 0000 call PhatDirReleaseChain
  1223. 1201 017a 892B or r24,r25
  1224. 1202 017c 01F0 breq .L119
  1225. 1203 017e C401 movw r24,r8
  1226. 1204 0180 0E94 0000 call PhatFileClose
  1227. 1205 0184 C601 movw r24,r12
  1228. 1206 0186 0E94 0000 call PhatFileClose
  1229. 1207 .L141:
  1230. 1208 018a C501 movw r24,r10
  1231. 1209 018c 0E94 0000 call free
  1232. 1210 0190 00C0 rjmp .L139
  1233. 1211 .L119:
  1234. 1212 0192 F701 movw r30,r14
  1235. 1213 0194 26E4 ldi r18,lo8(70)
  1236. 1214 0:
  1237. 1215 0196 1192 st Z+,__zero_reg__
  1238. 1216 0198 2A95 dec r18
  1239. 1217 019a 01F4 brne 0b
  1240. 1218 019c 8BE0 ldi r24,lo8(11)
  1241. 1219 019e F501 movw r30,r10
  1242. 1220 01a0 D701 movw r26,r14
  1243. 1221 01a2 5896 adiw r26,24
  1244. 1222 0:
  1245. 1223 01a4 0190 ld r0,Z+
  1246. 1224 01a6 0D92 st X+,r0
  1247. 1225 01a8 8A95 dec r24
  1248. 1226 01aa 01F4 brne 0b
  1249. 1227 01ac F501 movw r30,r10
  1250. 1228 01ae 8385 ldd r24,Z+11
  1251. 1229 01b0 F701 movw r30,r14
  1252. 1230 01b2 83A3 std Z+35,r24
  1253. 1231 01b4 F501 movw r30,r10
  1254. 1232 01b6 8485 ldd r24,Z+12
  1255. 1233 01b8 F701 movw r30,r14
  1256. 1234 01ba 84A3 std Z+36,r24
  1257. 1235 01bc F501 movw r30,r10
  1258. 1236 01be 8585 ldd r24,Z+13
  1259. 1237 01c0 F701 movw r30,r14
  1260. 1238 01c2 85A3 std Z+37,r24
  1261. 1239 01c4 F501 movw r30,r10
  1262. 1240 01c6 8685 ldd r24,Z+14
  1263. 1241 01c8 9785 ldd r25,Z+15
  1264. 1242 01ca F701 movw r30,r14
  1265. 1243 01cc 97A3 std Z+39,r25
  1266. 1244 01ce 86A3 std Z+38,r24
  1267. 1245 01d0 F501 movw r30,r10
  1268. 1246 01d2 8089 ldd r24,Z+16
  1269. 1247 01d4 9189 ldd r25,Z+17
  1270. 1248 01d6 F701 movw r30,r14
  1271. 1249 01d8 91A7 std Z+41,r25
  1272. 1250 01da 80A7 std Z+40,r24
  1273. 1251 01dc 81E0 ldi r24,lo8(1)
  1274. 1252 01de 90E0 ldi r25,0
  1275. 1253 .L138:
  1276. 1254 01e0 E05C subi r30,-64
  1277. GAS LISTING /tmp/ccKdzQHI.s page 23
  1278. 1255 01e2 FF4F sbci r31,-1
  1279. 1256 01e4 9183 std Z+1,r25
  1280. 1257 01e6 8083 st Z,r24
  1281. 1258 01e8 00C0 rjmp .L116
  1282. 1259 .L118:
  1283. 1260 01ea 80E2 ldi r24,lo8(32)
  1284. 1261 01ec F501 movw r30,r10
  1285. 1262 01ee D701 movw r26,r14
  1286. 1263 01f0 5896 adiw r26,24
  1287. 1264 0:
  1288. 1265 01f2 0190 ld r0,Z+
  1289. 1266 01f4 0D92 st X+,r0
  1290. 1267 01f6 8A95 dec r24
  1291. 1268 01f8 01F4 brne 0b
  1292. 1269 .L116:
  1293. 1270 01fa C501 movw r24,r10
  1294. 1271 01fc 0E94 0000 call free
  1295. 1272 0200 F101 movw r30,r2
  1296. 1273 0202 4481 ldd r20,Z+4
  1297. 1274 0204 5581 ldd r21,Z+5
  1298. 1275 0206 6681 ldd r22,Z+6
  1299. 1276 0208 7781 ldd r23,Z+7
  1300. 1277 020a C401 movw r24,r8
  1301. 1278 020c 0E94 0000 call PhatClusterSector
  1302. 1279 0210 F101 movw r30,r2
  1303. 1280 0212 0085 ldd r16,Z+8
  1304. 1281 0214 1185 ldd r17,Z+9
  1305. 1282 0216 2285 ldd r18,Z+10
  1306. 1283 0218 3385 ldd r19,Z+11
  1307. 1284 021a DC01 movw r26,r24
  1308. 1285 021c CB01 movw r24,r22
  1309. 1286 021e 800F add r24,r16
  1310. 1287 0220 911F adc r25,r17
  1311. 1288 0222 A21F adc r26,r18
  1312. 1289 0224 B31F adc r27,r19
  1313. 1290 0226 F701 movw r30,r14
  1314. 1291 0228 80AF std Z+56,r24
  1315. 1292 022a 91AF std Z+57,r25
  1316. 1293 022c A2AF std Z+58,r26
  1317. 1294 022e B3AF std Z+59,r27
  1318. 1295 0230 F101 movw r30,r2
  1319. 1296 0232 8485 ldd r24,Z+12
  1320. 1297 0234 9585 ldd r25,Z+13
  1321. 1298 0236 A685 ldd r26,Z+14
  1322. 1299 0238 B785 ldd r27,Z+15
  1323. 1300 023a 8097 sbiw r24,32
  1324. 1301 023c A109 sbc r26,__zero_reg__
  1325. 1302 023e B109 sbc r27,__zero_reg__
  1326. 1303 0240 F701 movw r30,r14
  1327. 1304 0242 84AF std Z+60,r24
  1328. 1305 0244 95AF std Z+61,r25
  1329. 1306 0246 A6AF std Z+62,r26
  1330. 1307 0248 B7AF std Z+63,r27
  1331. 1308 024a F101 movw r30,r2
  1332. 1309 024c 84A5 ldd r24,Z+44
  1333. 1310 024e 95A5 ldd r25,Z+45
  1334. 1311 0250 F701 movw r30,r14
  1335. GAS LISTING /tmp/ccKdzQHI.s page 24
  1336. 1312 0252 EC5B subi r30,-68
  1337. 1313 0254 FF4F sbci r31,-1
  1338. 1314 0256 9183 std Z+1,r25
  1339. 1315 0258 8083 st Z,r24
  1340. 1316 025a F101 movw r30,r2
  1341. 1317 025c 82A9 ldd r24,Z+50
  1342. 1318 025e 93A9 ldd r25,Z+51
  1343. 1319 0260 F701 movw r30,r14
  1344. 1320 0262 EE5B subi r30,-66
  1345. 1321 0264 FF4F sbci r31,-1
  1346. 1322 0266 9183 std Z+1,r25
  1347. 1323 0268 8083 st Z,r24
  1348. 1324 026a F701 movw r30,r14
  1349. 1325 026c 84A5 ldd r24,Z+44
  1350. 1326 026e 95A5 ldd r25,Z+45
  1351. 1327 0270 A0E0 ldi r26,0
  1352. 1328 0272 B0E0 ldi r27,0
  1353. 1329 0274 DC01 movw r26,r24
  1354. 1330 0276 9927 clr r25
  1355. 1331 0278 8827 clr r24
  1356. 1332 027a 22A9 ldd r18,Z+50
  1357. 1333 027c 33A9 ldd r19,Z+51
  1358. 1334 027e 820F add r24,r18
  1359. 1335 0280 931F adc r25,r19
  1360. 1336 0282 A11D adc r26,__zero_reg__
  1361. 1337 0284 B11D adc r27,__zero_reg__
  1362. 1338 0286 8483 std Z+4,r24
  1363. 1339 0288 9583 std Z+5,r25
  1364. 1340 028a A683 std Z+6,r26
  1365. 1341 028c B783 std Z+7,r27
  1366. 1342 028e C301 movw r24,r6
  1367. 1343 0290 770C lsl r7
  1368. 1344 0292 AA0B sbc r26,r26
  1369. 1345 0294 BB0B sbc r27,r27
  1370. 1346 0296 848B std Z+20,r24
  1371. 1347 0298 958B std Z+21,r25
  1372. 1348 029a A68B std Z+22,r26
  1373. 1349 029c B78B std Z+23,r27
  1374. 1350 029e C401 movw r24,r8
  1375. 1351 02a0 0E94 0000 call PhatFileClose
  1376. 1352 02a4 63FE sbrs r6,3
  1377. 1353 02a6 00C0 rjmp .L122
  1378. 1354 02a8 F701 movw r30,r14
  1379. 1355 02aa 44A9 ldd r20,Z+52
  1380. 1356 02ac 55A9 ldd r21,Z+53
  1381. 1357 02ae 66A9 ldd r22,Z+54
  1382. 1358 02b0 77A9 ldd r23,Z+55
  1383. 1359 02b2 4115 cp r20,__zero_reg__
  1384. 1360 02b4 5105 cpc r21,__zero_reg__
  1385. 1361 02b6 6105 cpc r22,__zero_reg__
  1386. 1362 02b8 7105 cpc r23,__zero_reg__
  1387. 1363 02ba 01F0 breq .L122
  1388. 1364 02bc C601 movw r24,r12
  1389. 1365 02be 0E94 0000 call PhatFilePosSet
  1390. 1366 02c2 892B or r24,r25
  1391. 1367 02c4 01F0 breq .L122
  1392. 1368 .L140:
  1393. GAS LISTING /tmp/ccKdzQHI.s page 25
  1394. 1369 02c6 C601 movw r24,r12
  1395. 1370 02c8 0E94 0000 call PhatFileClose
  1396. 1371 .L139:
  1397. 1372 02cc 8FEF ldi r24,lo8(-1)
  1398. 1373 02ce 9FEF ldi r25,lo8(-1)
  1399. 1374 02d0 00C0 rjmp .L106
  1400. 1375 .L122:
  1401. 1376 02d2 C601 movw r24,r12
  1402. 1377 .L106:
  1403. 1378 /* epilogue start */
  1404. 1379 02d4 2696 adiw r28,6
  1405. 1380 02d6 0FB6 in __tmp_reg__,__SREG__
  1406. 1381 02d8 F894 cli
  1407. 1382 02da DEBF out __SP_H__,r29
  1408. 1383 02dc 0FBE out __SREG__,__tmp_reg__
  1409. 1384 02de CDBF out __SP_L__,r28
  1410. 1385 02e0 DF91 pop r29
  1411. 1386 02e2 CF91 pop r28
  1412. 1387 02e4 1F91 pop r17
  1413. 1388 02e6 0F91 pop r16
  1414. 1389 02e8 FF90 pop r15
  1415. 1390 02ea EF90 pop r14
  1416. 1391 02ec DF90 pop r13
  1417. 1392 02ee CF90 pop r12
  1418. 1393 02f0 BF90 pop r11
  1419. 1394 02f2 AF90 pop r10
  1420. 1395 02f4 9F90 pop r9
  1421. 1396 02f6 8F90 pop r8
  1422. 1397 02f8 7F90 pop r7
  1423. 1398 02fa 6F90 pop r6
  1424. 1399 02fc 5F90 pop r5
  1425. 1400 02fe 4F90 pop r4
  1426. 1401 0300 3F90 pop r3
  1427. 1402 0302 2F90 pop r2
  1428. 1403 0304 0895 ret
  1429. 1404 .size PhatFileOpen, .-PhatFileOpen
  1430. 1405 .section .text.PhatApiFileOpen,"ax",@progbits
  1431. 1406 .type PhatApiFileOpen, @function
  1432. 1407 PhatApiFileOpen:
  1433. 1408 0000 AF92 push r10
  1434. 1409 0002 BF92 push r11
  1435. 1410 0004 CF92 push r12
  1436. 1411 0006 DF92 push r13
  1437. 1412 0008 EF92 push r14
  1438. 1413 000a FF92 push r15
  1439. 1414 000c 0F93 push r16
  1440. 1415 000e 1F93 push r17
  1441. 1416 0010 CF93 push r28
  1442. 1417 0012 DF93 push r29
  1443. 1418 0014 1F92 push __zero_reg__
  1444. 1419 0016 1F92 push __zero_reg__
  1445. 1420 0018 CDB7 in r28,__SP_L__
  1446. 1421 001a DEB7 in r29,__SP_H__
  1447. 1422 /* prologue: function */
  1448. 1423 /* frame size = 2 */
  1449. 1424 /* stack size = 12 */
  1450. 1425 .L__stack_usage = 12
  1451. GAS LISTING /tmp/ccKdzQHI.s page 26
  1452. 1426 001c 8C01 movw r16,r24
  1453. 1427 001e 7B01 movw r14,r22
  1454. 1428 0020 6A01 movw r12,r20
  1455. 1429 0022 FC01 movw r30,r24
  1456. 1430 0024 8189 ldd r24,Z+17
  1457. 1431 0026 9289 ldd r25,Z+18
  1458. 1432 0028 0097 sbiw r24,0
  1459. 1433 002a 01F4 brne .L144
  1460. 1434 002c 82E0 ldi r24,lo8(2)
  1461. 1435 002e 90E0 ldi r25,0
  1462. 1436 0030 9093 0000 sts errno+1,r25
  1463. 1437 0034 8093 0000 sts errno,r24
  1464. 1438 0038 8FEF ldi r24,lo8(-1)
  1465. 1439 003a 9FEF ldi r25,lo8(-1)
  1466. 1440 003c 00C0 rjmp .L145
  1467. 1441 .L144:
  1468. 1442 003e 5C01 movw r10,r24
  1469. 1443 0040 F4E1 ldi r31,20
  1470. 1444 0042 AF0E add r10,r31
  1471. 1445 0044 B11C adc r11,__zero_reg__
  1472. 1446 0046 40E0 ldi r20,0
  1473. 1447 0048 50E0 ldi r21,0
  1474. 1448 004a BA01 movw r22,r20
  1475. 1449 004c C501 movw r24,r10
  1476. 1450 004e 2983 std Y+1,r18
  1477. 1451 0050 3A83 std Y+2,r19
  1478. 1452 0052 0E94 0000 call NutEventWait
  1479. 1453 0056 2981 ldd r18,Y+1
  1480. 1454 0058 3A81 ldd r19,Y+2
  1481. 1455 005a A601 movw r20,r12
  1482. 1456 005c B701 movw r22,r14
  1483. 1457 005e C801 movw r24,r16
  1484. 1458 0060 0E94 0000 call PhatFileOpen
  1485. 1459 0064 8C01 movw r16,r24
  1486. 1460 0066 C501 movw r24,r10
  1487. 1461 0068 0E94 0000 call NutEventPost
  1488. 1462 006c C801 movw r24,r16
  1489. 1463 .L145:
  1490. 1464 /* epilogue start */
  1491. 1465 006e 0F90 pop __tmp_reg__
  1492. 1466 0070 0F90 pop __tmp_reg__
  1493. 1467 0072 DF91 pop r29
  1494. 1468 0074 CF91 pop r28
  1495. 1469 0076 1F91 pop r17
  1496. 1470 0078 0F91 pop r16
  1497. 1471 007a FF90 pop r15
  1498. 1472 007c EF90 pop r14
  1499. 1473 007e DF90 pop r13
  1500. 1474 0080 CF90 pop r12
  1501. 1475 0082 BF90 pop r11
  1502. 1476 0084 AF90 pop r10
  1503. 1477 0086 0895 ret
  1504. 1478 .size PhatApiFileOpen, .-PhatApiFileOpen
  1505. 1479 .section .text.PhatFileWrite,"ax",@progbits
  1506. 1480 .global PhatFileWrite
  1507. 1481 .type PhatFileWrite, @function
  1508. 1482 PhatFileWrite:
  1509. GAS LISTING /tmp/ccKdzQHI.s page 27
  1510. 1483 0000 2F92 push r2
  1511. 1484 0002 3F92 push r3
  1512. 1485 0004 4F92 push r4
  1513. 1486 0006 5F92 push r5
  1514. 1487 0008 6F92 push r6
  1515. 1488 000a 7F92 push r7
  1516. 1489 000c 8F92 push r8
  1517. 1490 000e 9F92 push r9
  1518. 1491 0010 AF92 push r10
  1519. 1492 0012 BF92 push r11
  1520. 1493 0014 CF92 push r12
  1521. 1494 0016 DF92 push r13
  1522. 1495 0018 EF92 push r14
  1523. 1496 001a FF92 push r15
  1524. 1497 001c 0F93 push r16
  1525. 1498 001e 1F93 push r17
  1526. 1499 0020 CF93 push r28
  1527. 1500 0022 DF93 push r29
  1528. 1501 0024 CDB7 in r28,__SP_L__
  1529. 1502 0026 DEB7 in r29,__SP_H__
  1530. 1503 0028 6297 sbiw r28,18
  1531. 1504 002a 0FB6 in __tmp_reg__,__SREG__
  1532. 1505 002c F894 cli
  1533. 1506 002e DEBF out __SP_H__,r29
  1534. 1507 0030 0FBE out __SREG__,__tmp_reg__
  1535. 1508 0032 CDBF out __SP_L__,r28
  1536. 1509 /* prologue: function */
  1537. 1510 /* frame size = 18 */
  1538. 1511 /* stack size = 36 */
  1539. 1512 .L__stack_usage = 36
  1540. 1513 0034 5C01 movw r10,r24
  1541. 1514 0036 7E87 std Y+14,r23
  1542. 1515 0038 6D87 std Y+13,r22
  1543. 1516 003a 5C87 std Y+12,r21
  1544. 1517 003c 4B87 std Y+11,r20
  1545. 1518 003e DC01 movw r26,r24
  1546. 1519 0040 1296 adiw r26,2
  1547. 1520 0042 ED90 ld r14,X+
  1548. 1521 0044 FC90 ld r15,X
  1549. 1522 0046 1397 sbiw r26,2+1
  1550. 1523 0048 F701 movw r30,r14
  1551. 1524 004a 83A1 ldd r24,Z+35
  1552. 1525 004c 80FF sbrs r24,0
  1553. 1526 004e 00C0 rjmp .L147
  1554. 1527 0050 8DE0 ldi r24,lo8(13)
  1555. 1528 0052 90E0 ldi r25,0
  1556. 1529 0054 00C0 rjmp .L183
  1557. 1530 .L147:
  1558. 1531 0056 0D85 ldd r16,Y+13
  1559. 1532 0058 1E85 ldd r17,Y+14
  1560. 1533 005a 012B or r16,r17
  1561. 1534 005c 01F0 breq .L149
  1562. 1535 005e 2B85 ldd r18,Y+11
  1563. 1536 0060 3C85 ldd r19,Y+12
  1564. 1537 0062 232B or r18,r19
  1565. 1538 0064 01F4 brne .L150
  1566. 1539 .L149:
  1567. GAS LISTING /tmp/ccKdzQHI.s page 28
  1568. 1540 0066 C501 movw r24,r10
  1569. 1541 0068 0E94 0000 call PhatFileFlush
  1570. 1542 006c 00C0 rjmp .L177
  1571. 1543 .L150:
  1572. 1544 006e D501 movw r26,r10
  1573. 1545 0070 0D90 ld __tmp_reg__,X+
  1574. 1546 0072 BC91 ld r27,X
  1575. 1547 0074 A02D mov r26,__tmp_reg__
  1576. 1548 0076 BA87 std Y+10,r27
  1577. 1549 0078 A987 std Y+9,r26
  1578. 1550 007a 5196 adiw r26,17
  1579. 1551 007c 2D90 ld r2,X+
  1580. 1552 007e 3C90 ld r3,X
  1581. 1553 0080 5297 sbiw r26,17+1
  1582. 1554 0082 84FD sbrc r24,4
  1583. 1555 0084 00C0 rjmp .L151
  1584. 1556 0086 F101 movw r30,r2
  1585. 1557 0088 208D ldd r18,Z+24
  1586. 1558 008a 318D ldd r19,Z+25
  1587. 1559 008c 828D ldd r24,Z+26
  1588. 1560 008e 938D ldd r25,Z+27
  1589. 1561 0090 289F mul r18,r24
  1590. 1562 0092 2001 movw r4,r0
  1591. 1563 0094 299F mul r18,r25
  1592. 1564 0096 500C add r5,r0
  1593. 1565 0098 389F mul r19,r24
  1594. 1566 009a 500C add r5,r0
  1595. 1567 009c 1124 clr r1
  1596. 1568 009e 612C mov r6,__zero_reg__
  1597. 1569 00a0 712C mov r7,__zero_reg__
  1598. 1570 00a2 D701 movw r26,r14
  1599. 1571 00a4 D496 adiw r26,52
  1600. 1572 00a6 0D91 ld r16,X+
  1601. 1573 00a8 1D91 ld r17,X+
  1602. 1574 00aa 2D91 ld r18,X+
  1603. 1575 00ac 3C91 ld r19,X
  1604. 1576 00ae D797 sbiw r26,52+3
  1605. 1577 00b0 0D83 std Y+5,r16
  1606. 1578 00b2 1E83 std Y+6,r17
  1607. 1579 00b4 2F83 std Y+7,r18
  1608. 1580 00b6 3887 std Y+8,r19
  1609. 1581 00b8 D901 movw r26,r18
  1610. 1582 00ba C801 movw r24,r16
  1611. 1583 00bc 0197 sbiw r24,1
  1612. 1584 00be A109 sbc r26,__zero_reg__
  1613. 1585 00c0 B109 sbc r27,__zero_reg__
  1614. 1586 00c2 BC01 movw r22,r24
  1615. 1587 00c4 CD01 movw r24,r26
  1616. 1588 00c6 640D add r22,r4
  1617. 1589 00c8 751D adc r23,r5
  1618. 1590 00ca 861D adc r24,r6
  1619. 1591 00cc 971D adc r25,r7
  1620. 1592 00ce A301 movw r20,r6
  1621. 1593 00d0 9201 movw r18,r4
  1622. 1594 00d2 0E94 0000 call __udivmodsi4
  1623. 1595 00d6 2F87 std Y+15,r18
  1624. 1596 00d8 388B std Y+16,r19
  1625. GAS LISTING /tmp/ccKdzQHI.s page 29
  1626. 1597 00da 498B std Y+17,r20
  1627. 1598 00dc 5A8B std Y+18,r21
  1628. 1599 00de F701 movw r30,r14
  1629. 1600 00e0 8081 ld r24,Z
  1630. 1601 00e2 9181 ldd r25,Z+1
  1631. 1602 00e4 A281 ldd r26,Z+2
  1632. 1603 00e6 B381 ldd r27,Z+3
  1633. 1604 00e8 0197 sbiw r24,1
  1634. 1605 00ea A109 sbc r26,__zero_reg__
  1635. 1606 00ec B109 sbc r27,__zero_reg__
  1636. 1607 00ee 840D add r24,r4
  1637. 1608 00f0 951D adc r25,r5
  1638. 1609 00f2 A61D adc r26,r6
  1639. 1610 00f4 B71D adc r27,r7
  1640. 1611 00f6 0B85 ldd r16,Y+11
  1641. 1612 00f8 1C85 ldd r17,Y+12
  1642. 1613 00fa A801 movw r20,r16
  1643. 1614 00fc 110F lsl r17
  1644. 1615 00fe 660B sbc r22,r22
  1645. 1616 0100 770B sbc r23,r23
  1646. 1617 0102 8C01 movw r16,r24
  1647. 1618 0104 9D01 movw r18,r26
  1648. 1619 0106 040F add r16,r20
  1649. 1620 0108 151F adc r17,r21
  1650. 1621 010a 261F adc r18,r22
  1651. 1622 010c 371F adc r19,r23
  1652. 1623 010e C901 movw r24,r18
  1653. 1624 0110 B801 movw r22,r16
  1654. 1625 0112 A301 movw r20,r6
  1655. 1626 0114 9201 movw r18,r4
  1656. 1627 0116 0E94 0000 call __udivmodsi4
  1657. 1628 011a 8F85 ldd r24,Y+15
  1658. 1629 011c 9889 ldd r25,Y+16
  1659. 1630 011e A989 ldd r26,Y+17
  1660. 1631 0120 BA89 ldd r27,Y+18
  1661. 1632 0122 8217 cp r24,r18
  1662. 1633 0124 9307 cpc r25,r19
  1663. 1634 0126 A407 cpc r26,r20
  1664. 1635 0128 B507 cpc r27,r21
  1665. 1636 012a 00F4 brsh .L152
  1666. 1637 012c BA01 movw r22,r20
  1667. 1638 012e A901 movw r20,r18
  1668. 1639 0130 481B sub r20,r24
  1669. 1640 0132 590B sbc r21,r25
  1670. 1641 0134 6A0B sbc r22,r26
  1671. 1642 0136 7B0B sbc r23,r27
  1672. 1643 0138 F101 movw r30,r2
  1673. 1644 013a 8281 ldd r24,Z+2
  1674. 1645 013c 9381 ldd r25,Z+3
  1675. 1646 013e A481 ldd r26,Z+4
  1676. 1647 0140 B581 ldd r27,Z+5
  1677. 1648 0142 8417 cp r24,r20
  1678. 1649 0144 9507 cpc r25,r21
  1679. 1650 0146 A607 cpc r26,r22
  1680. 1651 0148 B707 cpc r27,r23
  1681. 1652 014a 00F4 brsh .L152
  1682. 1653 014c 8CE1 ldi r24,lo8(28)
  1683. GAS LISTING /tmp/ccKdzQHI.s page 30
  1684. 1654 014e 90E0 ldi r25,0
  1685. 1655 .L183:
  1686. 1656 0150 9093 0000 sts errno+1,r25
  1687. 1657 0154 8093 0000 sts errno,r24
  1688. 1658 0158 00C0 rjmp .L153
  1689. 1659 .L152:
  1690. 1660 015a 0D81 ldd r16,Y+5
  1691. 1661 015c 1E81 ldd r17,Y+6
  1692. 1662 015e 2F81 ldd r18,Y+7
  1693. 1663 0160 3885 ldd r19,Y+8
  1694. 1664 0162 012B or r16,r17
  1695. 1665 0164 022B or r16,r18
  1696. 1666 0166 032B or r16,r19
  1697. 1667 0168 01F4 brne .L151
  1698. 1668 016a C501 movw r24,r10
  1699. 1669 016c 0E94 0000 call AllocFirstCluster
  1700. 1670 0170 6983 std Y+1,r22
  1701. 1671 0172 7A83 std Y+2,r23
  1702. 1672 0174 8B83 std Y+3,r24
  1703. 1673 0176 9C83 std Y+4,r25
  1704. 1674 0178 6230 cpi r22,2
  1705. 1675 017a 7105 cpc r23,__zero_reg__
  1706. 1676 017c 8105 cpc r24,__zero_reg__
  1707. 1677 017e 9105 cpc r25,__zero_reg__
  1708. 1678 0180 00F4 brsh .+2
  1709. 1679 0182 00C0 rjmp .L153
  1710. 1680 0184 D701 movw r26,r14
  1711. 1681 0186 5096 adiw r26,16
  1712. 1682 0188 6D93 st X+,r22
  1713. 1683 018a 7D93 st X+,r23
  1714. 1684 018c 8D93 st X+,r24
  1715. 1685 018e 9C93 st X,r25
  1716. 1686 0190 5397 sbiw r26,16+3
  1717. 1687 0192 F701 movw r30,r14
  1718. 1688 0194 6483 std Z+4,r22
  1719. 1689 0196 7583 std Z+5,r23
  1720. 1690 0198 8683 std Z+6,r24
  1721. 1691 019a 9783 std Z+7,r25
  1722. 1692 .L151:
  1723. 1693 019c C12C mov r12,__zero_reg__
  1724. 1694 019e D12C mov r13,__zero_reg__
  1725. 1695 01a0 4424 clr r4
  1726. 1696 01a2 4394 inc r4
  1727. 1697 01a4 512C mov r5,__zero_reg__
  1728. 1698 .L154:
  1729. 1699 01a6 0B85 ldd r16,Y+11
  1730. 1700 01a8 1C85 ldd r17,Y+12
  1731. 1701 01aa C016 cp r12,r16
  1732. 1702 01ac D106 cpc r13,r17
  1733. 1703 01ae 04F4 brge .L171
  1734. 1704 01b0 D101 movw r26,r2
  1735. 1705 01b2 5896 adiw r26,24
  1736. 1706 01b4 8D91 ld r24,X+
  1737. 1707 01b6 9C91 ld r25,X
  1738. 1708 01b8 5997 sbiw r26,24+1
  1739. 1709 01ba A0E0 ldi r26,0
  1740. 1710 01bc B0E0 ldi r27,0
  1741. GAS LISTING /tmp/ccKdzQHI.s page 31
  1742. 1711 01be F701 movw r30,r14
  1743. 1712 01c0 4485 ldd r20,Z+12
  1744. 1713 01c2 5585 ldd r21,Z+13
  1745. 1714 01c4 6685 ldd r22,Z+14
  1746. 1715 01c6 7785 ldd r23,Z+15
  1747. 1716 01c8 4817 cp r20,r24
  1748. 1717 01ca 5907 cpc r21,r25
  1749. 1718 01cc 6A07 cpc r22,r26
  1750. 1719 01ce 7B07 cpc r23,r27
  1751. 1720 01d0 00F4 brsh .+2
  1752. 1721 01d2 00C0 rjmp .L155
  1753. 1722 01d4 C501 movw r24,r10
  1754. 1723 01d6 0E94 0000 call IsFixedRootDir
  1755. 1724 01da D701 movw r26,r14
  1756. 1725 01dc 1896 adiw r26,8
  1757. 1726 01de 4D91 ld r20,X+
  1758. 1727 01e0 5D91 ld r21,X+
  1759. 1728 01e2 6D91 ld r22,X+
  1760. 1729 01e4 7C91 ld r23,X
  1761. 1730 01e6 1B97 sbiw r26,8+3
  1762. 1731 01e8 4F5F subi r20,-1
  1763. 1732 01ea 5F4F sbci r21,-1
  1764. 1733 01ec 6F4F sbci r22,-1
  1765. 1734 01ee 7F4F sbci r23,-1
  1766. 1735 01f0 F101 movw r30,r2
  1767. 1736 01f2 892B or r24,r25
  1768. 1737 01f4 01F0 breq .L156
  1769. 1738 01f6 80A5 ldd r24,Z+40
  1770. 1739 01f8 91A5 ldd r25,Z+41
  1771. 1740 01fa A0E0 ldi r26,0
  1772. 1741 01fc B0E0 ldi r27,0
  1773. 1742 01fe 4817 cp r20,r24
  1774. 1743 0200 5907 cpc r21,r25
  1775. 1744 0202 6A07 cpc r22,r26
  1776. 1745 0204 7B07 cpc r23,r27
  1777. 1746 0206 00F4 brsh .+2
  1778. 1747 0208 00C0 rjmp .L160
  1779. 1748 .L171:
  1780. 1749 020a 1C14 cp __zero_reg__,r12
  1781. 1750 020c 1D04 cpc __zero_reg__,r13
  1782. 1751 020e 04F4 brge .+2
  1783. 1752 0210 00C0 rjmp .L158
  1784. 1753 0212 00C0 rjmp .L173
  1785. 1754 .L156:
  1786. 1755 0214 828D ldd r24,Z+26
  1787. 1756 0216 938D ldd r25,Z+27
  1788. 1757 0218 A0E0 ldi r26,0
  1789. 1758 021a B0E0 ldi r27,0
  1790. 1759 021c 4817 cp r20,r24
  1791. 1760 021e 5907 cpc r21,r25
  1792. 1761 0220 6A07 cpc r22,r26
  1793. 1762 0222 7B07 cpc r23,r27
  1794. 1763 0224 00F4 brsh .+2
  1795. 1764 0226 00C0 rjmp .L160
  1796. 1765 0228 8081 ld r24,Z
  1797. 1766 022a 9181 ldd r25,Z+1
  1798. 1767 022c D701 movw r26,r14
  1799. GAS LISTING /tmp/ccKdzQHI.s page 32
  1800. 1768 022e 1496 adiw r26,4
  1801. 1769 0230 4D91 ld r20,X+
  1802. 1770 0232 5D91 ld r21,X+
  1803. 1771 0234 6D91 ld r22,X+
  1804. 1772 0236 7C91 ld r23,X
  1805. 1773 0238 1797 sbiw r26,4+3
  1806. 1774 023a 9E01 movw r18,r28
  1807. 1775 023c 2F5F subi r18,-1
  1808. 1776 023e 3F4F sbci r19,-1
  1809. 1777 0240 8032 cpi r24,32
  1810. 1778 0242 9105 cpc r25,__zero_reg__
  1811. 1779 0244 01F4 brne .L161
  1812. 1780 0246 8985 ldd r24,Y+9
  1813. 1781 0248 9A85 ldd r25,Y+10
  1814. 1782 024a 0E94 0000 call Phat32GetClusterLink
  1815. 1783 024e 892B or r24,r25
  1816. 1784 0250 01F0 breq .+2
  1817. 1785 0252 00C0 rjmp .L153
  1818. 1786 0254 8981 ldd r24,Y+1
  1819. 1787 0256 9A81 ldd r25,Y+2
  1820. 1788 0258 AB81 ldd r26,Y+3
  1821. 1789 025a BC81 ldd r27,Y+4
  1822. 1790 025c 883F cpi r24,-8
  1823. 1791 025e 9F4F sbci r25,-1
  1824. 1792 0260 AF4F sbci r26,-1
  1825. 1793 0262 BF40 sbci r27,15
  1826. 1794 0264 00F4 brsh .L182
  1827. 1795 .L164:
  1828. 1796 0266 D701 movw r26,r14
  1829. 1797 0268 1896 adiw r26,8
  1830. 1798 026a 1D92 st X+,__zero_reg__
  1831. 1799 026c 1D92 st X+,__zero_reg__
  1832. 1800 026e 1D92 st X+,__zero_reg__
  1833. 1801 0270 1C92 st X,__zero_reg__
  1834. 1802 0272 1B97 sbiw r26,8+3
  1835. 1803 0274 1496 adiw r26,4
  1836. 1804 0276 8D91 ld r24,X+
  1837. 1805 0278 9D91 ld r25,X+
  1838. 1806 027a 0D90 ld __tmp_reg__,X+
  1839. 1807 027c BC91 ld r27,X
  1840. 1808 027e A02D mov r26,__tmp_reg__
  1841. 1809 0280 F701 movw r30,r14
  1842. 1810 0282 808B std Z+16,r24
  1843. 1811 0284 918B std Z+17,r25
  1844. 1812 0286 A28B std Z+18,r26
  1845. 1813 0288 B38B std Z+19,r27
  1846. 1814 028a 8981 ldd r24,Y+1
  1847. 1815 028c 9A81 ldd r25,Y+2
  1848. 1816 028e AB81 ldd r26,Y+3
  1849. 1817 0290 BC81 ldd r27,Y+4
  1850. 1818 0292 8483 std Z+4,r24
  1851. 1819 0294 9583 std Z+5,r25
  1852. 1820 0296 A683 std Z+6,r26
  1853. 1821 0298 B783 std Z+7,r27
  1854. 1822 029a 00C0 rjmp .L159
  1855. 1823 .L161:
  1856. 1824 029c 4097 sbiw r24,16
  1857. GAS LISTING /tmp/ccKdzQHI.s page 33
  1858. 1825 029e 01F4 brne .L165
  1859. 1826 02a0 8985 ldd r24,Y+9
  1860. 1827 02a2 9A85 ldd r25,Y+10
  1861. 1828 02a4 0E94 0000 call Phat16GetClusterLink
  1862. 1829 02a8 892B or r24,r25
  1863. 1830 02aa 01F0 breq .+2
  1864. 1831 02ac 00C0 rjmp .L153
  1865. 1832 02ae 8981 ldd r24,Y+1
  1866. 1833 02b0 9A81 ldd r25,Y+2
  1867. 1834 02b2 AB81 ldd r26,Y+3
  1868. 1835 02b4 BC81 ldd r27,Y+4
  1869. 1836 02b6 883F cpi r24,-8
  1870. 1837 02b8 9F4F sbci r25,-1
  1871. 1838 02ba A105 cpc r26,__zero_reg__
  1872. 1839 02bc B105 cpc r27,__zero_reg__
  1873. 1840 02be 00F0 brlo .L164
  1874. 1841 02c0 00C0 rjmp .L182
  1875. 1842 .L165:
  1876. 1843 02c2 8985 ldd r24,Y+9
  1877. 1844 02c4 9A85 ldd r25,Y+10
  1878. 1845 02c6 0E94 0000 call Phat12GetClusterLink
  1879. 1846 02ca 892B or r24,r25
  1880. 1847 02cc 01F0 breq .+2
  1881. 1848 02ce 00C0 rjmp .L153
  1882. 1849 02d0 8981 ldd r24,Y+1
  1883. 1850 02d2 9A81 ldd r25,Y+2
  1884. 1851 02d4 AB81 ldd r26,Y+3
  1885. 1852 02d6 BC81 ldd r27,Y+4
  1886. 1853 02d8 883F cpi r24,-8
  1887. 1854 02da 9F40 sbci r25,15
  1888. 1855 02dc A105 cpc r26,__zero_reg__
  1889. 1856 02de B105 cpc r27,__zero_reg__
  1890. 1857 02e0 00F0 brlo .L164
  1891. 1858 .L182:
  1892. 1859 02e2 C501 movw r24,r10
  1893. 1860 02e4 0E94 0000 call AllocNextCluster
  1894. 1861 02e8 6983 std Y+1,r22
  1895. 1862 02ea 7A83 std Y+2,r23
  1896. 1863 02ec 8B83 std Y+3,r24
  1897. 1864 02ee 9C83 std Y+4,r25
  1898. 1865 02f0 6230 cpi r22,2
  1899. 1866 02f2 7105 cpc r23,__zero_reg__
  1900. 1867 02f4 8105 cpc r24,__zero_reg__
  1901. 1868 02f6 9105 cpc r25,__zero_reg__
  1902. 1869 02f8 00F0 brlo .+2
  1903. 1870 02fa 00C0 rjmp .L164
  1904. 1871 02fc 00C0 rjmp .L153
  1905. 1872 .L160:
  1906. 1873 02fe D701 movw r26,r14
  1907. 1874 0300 1896 adiw r26,8
  1908. 1875 0302 4D93 st X+,r20
  1909. 1876 0304 5D93 st X+,r21
  1910. 1877 0306 6D93 st X+,r22
  1911. 1878 0308 7C93 st X,r23
  1912. 1879 030a 1B97 sbiw r26,8+3
  1913. 1880 .L159:
  1914. 1881 030c F701 movw r30,r14
  1915. GAS LISTING /tmp/ccKdzQHI.s page 34
  1916. 1882 030e 1486 std Z+12,__zero_reg__
  1917. 1883 0310 1586 std Z+13,__zero_reg__
  1918. 1884 0312 1686 std Z+14,__zero_reg__
  1919. 1885 0314 1786 std Z+15,__zero_reg__
  1920. 1886 .L155:
  1921. 1887 0316 F701 movw r30,r14
  1922. 1888 0318 8485 ldd r24,Z+12
  1923. 1889 031a 9585 ldd r25,Z+13
  1924. 1890 031c A685 ldd r26,Z+14
  1925. 1891 031e B785 ldd r27,Z+15
  1926. 1892 0320 4481 ldd r20,Z+4
  1927. 1893 0322 5581 ldd r21,Z+5
  1928. 1894 0324 6681 ldd r22,Z+6
  1929. 1895 0326 7781 ldd r23,Z+7
  1930. 1896 0328 892B or r24,r25
  1931. 1897 032a 8A2B or r24,r26
  1932. 1898 032c 8B2B or r24,r27
  1933. 1899 032e 01F0 breq .+2
  1934. 1900 0330 00C0 rjmp .L166
  1935. 1901 0332 8B84 ldd r8,Y+11
  1936. 1902 0334 9C84 ldd r9,Y+12
  1937. 1903 0336 8C18 sub r8,r12
  1938. 1904 0338 9D08 sbc r9,r13
  1939. 1905 033a D101 movw r26,r2
  1940. 1906 033c 5896 adiw r26,24
  1941. 1907 033e 2D91 ld r18,X+
  1942. 1908 0340 3C91 ld r19,X
  1943. 1909 0342 5997 sbiw r26,24+1
  1944. 1910 0344 8216 cp r8,r18
  1945. 1911 0346 9306 cpc r9,r19
  1946. 1912 0348 00F4 brsh .+2
  1947. 1913 034a 00C0 rjmp .L166
  1948. 1914 034c 5A96 adiw r26,26
  1949. 1915 034e ED91 ld r30,X+
  1950. 1916 0350 FC91 ld r31,X
  1951. 1917 0352 5B97 sbiw r26,26+1
  1952. 1918 0354 D701 movw r26,r14
  1953. 1919 0356 1896 adiw r26,8
  1954. 1920 0358 8D91 ld r24,X+
  1955. 1921 035a 9C91 ld r25,X
  1956. 1922 035c 1997 sbiw r26,8+1
  1957. 1923 035e E81B sub r30,r24
  1958. 1924 0360 F90B sbc r31,r25
  1959. 1925 0362 E29F mul r30,r18
  1960. 1926 0364 C001 movw r24,r0
  1961. 1927 0366 E39F mul r30,r19
  1962. 1928 0368 900D add r25,r0
  1963. 1929 036a F29F mul r31,r18
  1964. 1930 036c 900D add r25,r0
  1965. 1931 036e 1124 clr r1
  1966. 1932 0370 8815 cp r24,r8
  1967. 1933 0372 9905 cpc r25,r9
  1968. 1934 0374 04F4 brge .L167
  1969. 1935 0376 4C01 movw r8,r24
  1970. 1936 .L167:
  1971. 1937 0378 C501 movw r24,r10
  1972. 1938 037a 0E94 0000 call PhatClusterSector
  1973. GAS LISTING /tmp/ccKdzQHI.s page 35
  1974. 1939 037e 8B01 movw r16,r22
  1975. 1940 0380 9C01 movw r18,r24
  1976. 1941 0382 D101 movw r26,r2
  1977. 1942 0384 5896 adiw r26,24
  1978. 1943 0386 ED91 ld r30,X+
  1979. 1944 0388 FC91 ld r31,X
  1980. 1945 038a 5997 sbiw r26,24+1
  1981. 1946 038c C401 movw r24,r8
  1982. 1947 038e BF01 movw r22,r30
  1983. 1948 0390 0E94 0000 call __udivmodhi4
  1984. 1949 0394 3B01 movw r6,r22
  1985. 1950 0396 E69F mul r30,r22
  1986. 1951 0398 4001 movw r8,r0
  1987. 1952 039a E79F mul r30,r23
  1988. 1953 039c 900C add r9,r0
  1989. 1954 039e F69F mul r31,r22
  1990. 1955 03a0 900C add r9,r0
  1991. 1956 03a2 1124 clr r1
  1992. 1957 03a4 F701 movw r30,r14
  1993. 1958 03a6 4085 ldd r20,Z+8
  1994. 1959 03a8 5185 ldd r21,Z+9
  1995. 1960 03aa 6285 ldd r22,Z+10
  1996. 1961 03ac 7385 ldd r23,Z+11
  1997. 1962 03ae 400F add r20,r16
  1998. 1963 03b0 511F adc r21,r17
  1999. 1964 03b2 621F adc r22,r18
  2000. 1965 03b4 731F adc r23,r19
  2001. 1966 03b6 8301 movw r16,r6
  2002. 1967 03b8 2D85 ldd r18,Y+13
  2003. 1968 03ba 3E85 ldd r19,Y+14
  2004. 1969 03bc 2C0D add r18,r12
  2005. 1970 03be 3D1D adc r19,r13
  2006. 1971 03c0 D501 movw r26,r10
  2007. 1972 03c2 8D91 ld r24,X+
  2008. 1973 03c4 9C91 ld r25,X
  2009. 1974 03c6 0E94 0000 call PhatSectorWrite
  2010. 1975 03ca 892B or r24,r25
  2011. 1976 03cc 01F0 breq .+2
  2012. 1977 03ce 00C0 rjmp .L153
  2013. 1978 03d0 C301 movw r24,r6
  2014. 1979 03d2 0197 sbiw r24,1
  2015. 1980 03d4 092E mov __tmp_reg__,r25
  2016. 1981 03d6 000C lsl r0
  2017. 1982 03d8 AA0B sbc r26,r26
  2018. 1983 03da BB0B sbc r27,r27
  2019. 1984 03dc F701 movw r30,r14
  2020. 1985 03de 4085 ldd r20,Z+8
  2021. 1986 03e0 5185 ldd r21,Z+9
  2022. 1987 03e2 6285 ldd r22,Z+10
  2023. 1988 03e4 7385 ldd r23,Z+11
  2024. 1989 03e6 840F add r24,r20
  2025. 1990 03e8 951F adc r25,r21
  2026. 1991 03ea A61F adc r26,r22
  2027. 1992 03ec B71F adc r27,r23
  2028. 1993 03ee 8087 std Z+8,r24
  2029. 1994 03f0 9187 std Z+9,r25
  2030. 1995 03f2 A287 std Z+10,r26
  2031. GAS LISTING /tmp/ccKdzQHI.s page 36
  2032. 1996 03f4 B387 std Z+11,r27
  2033. 1997 03f6 4081 ld r20,Z
  2034. 1998 03f8 5181 ldd r21,Z+1
  2035. 1999 03fa 6281 ldd r22,Z+2
  2036. 2000 03fc 7381 ldd r23,Z+3
  2037. 2001 03fe C401 movw r24,r8
  2038. 2002 0400 092C mov __tmp_reg__,r9
  2039. 2003 0402 000C lsl r0
  2040. 2004 0404 AA0B sbc r26,r26
  2041. 2005 0406 BB0B sbc r27,r27
  2042. 2006 0408 840F add r24,r20
  2043. 2007 040a 951F adc r25,r21
  2044. 2008 040c A61F adc r26,r22
  2045. 2009 040e B71F adc r27,r23
  2046. 2010 0410 8083 st Z,r24
  2047. 2011 0412 9183 std Z+1,r25
  2048. 2012 0414 A283 std Z+2,r26
  2049. 2013 0416 B383 std Z+3,r27
  2050. 2014 0418 D101 movw r26,r2
  2051. 2015 041a 5896 adiw r26,24
  2052. 2016 041c 8D91 ld r24,X+
  2053. 2017 041e 9C91 ld r25,X
  2054. 2018 0420 5997 sbiw r26,24+1
  2055. 2019 0422 A0E0 ldi r26,0
  2056. 2020 0424 B0E0 ldi r27,0
  2057. 2021 0426 00C0 rjmp .L178
  2058. 2022 .L166:
  2059. 2023 0428 C501 movw r24,r10
  2060. 2024 042a 0E94 0000 call PhatClusterSector
  2061. 2025 042e D701 movw r26,r14
  2062. 2026 0430 1896 adiw r26,8
  2063. 2027 0432 0D91 ld r16,X+
  2064. 2028 0434 1D91 ld r17,X+
  2065. 2029 0436 2D91 ld r18,X+
  2066. 2030 0438 3C91 ld r19,X
  2067. 2031 043a 1B97 sbiw r26,8+3
  2068. 2032 043c AB01 movw r20,r22
  2069. 2033 043e BC01 movw r22,r24
  2070. 2034 0440 400F add r20,r16
  2071. 2035 0442 511F adc r21,r17
  2072. 2036 0444 621F adc r22,r18
  2073. 2037 0446 731F adc r23,r19
  2074. 2038 0448 F501 movw r30,r10
  2075. 2039 044a 8081 ld r24,Z
  2076. 2040 044c 9181 ldd r25,Z+1
  2077. 2041 044e 0E94 0000 call PhatSectorLoad
  2078. 2042 0452 8C01 movw r16,r24
  2079. 2043 0454 97FD sbrc r25,7
  2080. 2044 0456 00C0 rjmp .L153
  2081. 2045 0458 D701 movw r26,r14
  2082. 2046 045a 1C96 adiw r26,12
  2083. 2047 045c 8D91 ld r24,X+
  2084. 2048 045e 9C91 ld r25,X
  2085. 2049 0460 1D97 sbiw r26,12+1
  2086. 2050 0462 F101 movw r30,r2
  2087. 2051 0464 808C ldd r8,Z+24
  2088. 2052 0466 918C ldd r9,Z+25
  2089. GAS LISTING /tmp/ccKdzQHI.s page 37
  2090. 2053 0468 2B85 ldd r18,Y+11
  2091. 2054 046a 3C85 ldd r19,Y+12
  2092. 2055 046c 2C19 sub r18,r12
  2093. 2056 046e 3D09 sbc r19,r13
  2094. 2057 0470 881A sub r8,r24
  2095. 2058 0472 990A sbc r9,r25
  2096. 2059 0474 2815 cp r18,r8
  2097. 2060 0476 3905 cpc r19,r9
  2098. 2061 0478 04F4 brge .L169
  2099. 2062 047a 4901 movw r8,r18
  2100. 2063 .L169:
  2101. 2064 047c 9801 movw r18,r16
  2102. 2065 047e 2F5F subi r18,-1
  2103. 2066 0480 3F4F sbci r19,-1
  2104. 2067 0482 4AE0 ldi r20,lo8(10)
  2105. 2068 0484 429F mul r20,r18
  2106. 2069 0486 F001 movw r30,r0
  2107. 2070 0488 439F mul r20,r19
  2108. 2071 048a F00D add r31,r0
  2109. 2072 048c 1124 clr __zero_reg__
  2110. 2073 048e E20D add r30,r2
  2111. 2074 0490 F31D adc r31,r3
  2112. 2075 0492 2081 ld r18,Z
  2113. 2076 0494 3181 ldd r19,Z+1
  2114. 2077 0496 A401 movw r20,r8
  2115. 2078 0498 6D85 ldd r22,Y+13
  2116. 2079 049a 7E85 ldd r23,Y+14
  2117. 2080 049c 6C0D add r22,r12
  2118. 2081 049e 7D1D adc r23,r13
  2119. 2082 04a0 820F add r24,r18
  2120. 2083 04a2 931F adc r25,r19
  2121. 2084 04a4 0E94 0000 call memcpy
  2122. 2085 04a8 8AE0 ldi r24,lo8(10)
  2123. 2086 04aa 809F mul r24,r16
  2124. 2087 04ac F001 movw r30,r0
  2125. 2088 04ae 819F mul r24,r17
  2126. 2089 04b0 F00D add r31,r0
  2127. 2090 04b2 1124 clr __zero_reg__
  2128. 2091 04b4 E20D add r30,r2
  2129. 2092 04b6 F31D adc r31,r3
  2130. 2093 04b8 518A std Z+17,r5
  2131. 2094 04ba 408A std Z+16,r4
  2132. 2095 04bc B801 movw r22,r16
  2133. 2096 04be 8985 ldd r24,Y+9
  2134. 2097 04c0 9A85 ldd r25,Y+10
  2135. 2098 04c2 0E94 0000 call PhatSectorBufferRelease
  2136. 2099 04c6 D701 movw r26,r14
  2137. 2100 04c8 4D91 ld r20,X+
  2138. 2101 04ca 5D91 ld r21,X+
  2139. 2102 04cc 6D91 ld r22,X+
  2140. 2103 04ce 7C91 ld r23,X
  2141. 2104 04d0 C401 movw r24,r8
  2142. 2105 04d2 092C mov __tmp_reg__,r9
  2143. 2106 04d4 000C lsl r0
  2144. 2107 04d6 AA0B sbc r26,r26
  2145. 2108 04d8 BB0B sbc r27,r27
  2146. 2109 04da 480F add r20,r24
  2147. GAS LISTING /tmp/ccKdzQHI.s page 38
  2148. 2110 04dc 591F adc r21,r25
  2149. 2111 04de 6A1F adc r22,r26
  2150. 2112 04e0 7B1F adc r23,r27
  2151. 2113 04e2 F701 movw r30,r14
  2152. 2114 04e4 4083 st Z,r20
  2153. 2115 04e6 5183 std Z+1,r21
  2154. 2116 04e8 6283 std Z+2,r22
  2155. 2117 04ea 7383 std Z+3,r23
  2156. 2118 04ec 4485 ldd r20,Z+12
  2157. 2119 04ee 5585 ldd r21,Z+13
  2158. 2120 04f0 6685 ldd r22,Z+14
  2159. 2121 04f2 7785 ldd r23,Z+15
  2160. 2122 04f4 840F add r24,r20
  2161. 2123 04f6 951F adc r25,r21
  2162. 2124 04f8 A61F adc r26,r22
  2163. 2125 04fa B71F adc r27,r23
  2164. 2126 .L178:
  2165. 2127 04fc 8487 std Z+12,r24
  2166. 2128 04fe 9587 std Z+13,r25
  2167. 2129 0500 A687 std Z+14,r26
  2168. 2130 0502 B787 std Z+15,r27
  2169. 2131 0504 C80C add r12,r8
  2170. 2132 0506 D91C adc r13,r9
  2171. 2133 0508 00C0 rjmp .L154
  2172. 2134 .L158:
  2173. 2135 050a D701 movw r26,r14
  2174. 2136 050c 9396 adiw r26,35
  2175. 2137 050e 8C91 ld r24,X
  2176. 2138 0510 84FD sbrc r24,4
  2177. 2139 0512 00C0 rjmp .L173
  2178. 2140 0514 B701 movw r22,r14
  2179. 2141 0516 605D subi r22,-48
  2180. 2142 0518 7F4F sbci r23,-1
  2181. 2143 051a C701 movw r24,r14
  2182. 2144 051c 8E96 adiw r24,46
  2183. 2145 051e 0E94 0000 call GetDosTimeStamp
  2184. 2146 0522 F701 movw r30,r14
  2185. 2147 0524 80A9 ldd r24,Z+48
  2186. 2148 0526 91A9 ldd r25,Z+49
  2187. 2149 0528 93A7 std Z+43,r25
  2188. 2150 052a 82A7 std Z+42,r24
  2189. 2151 052c 83A1 ldd r24,Z+35
  2190. 2152 052e 8062 ori r24,lo8(32)
  2191. 2153 0530 83A3 std Z+35,r24
  2192. 2154 0532 8081 ld r24,Z
  2193. 2155 0534 9181 ldd r25,Z+1
  2194. 2156 0536 A281 ldd r26,Z+2
  2195. 2157 0538 B381 ldd r27,Z+3
  2196. 2158 053a 44A9 ldd r20,Z+52
  2197. 2159 053c 55A9 ldd r21,Z+53
  2198. 2160 053e 66A9 ldd r22,Z+54
  2199. 2161 0540 77A9 ldd r23,Z+55
  2200. 2162 0542 4817 cp r20,r24
  2201. 2163 0544 5907 cpc r21,r25
  2202. 2164 0546 6A07 cpc r22,r26
  2203. 2165 0548 7B07 cpc r23,r27
  2204. 2166 054a 00F4 brsh .L172
  2205. GAS LISTING /tmp/ccKdzQHI.s page 39
  2206. 2167 054c 84AB std Z+52,r24
  2207. 2168 054e 95AB std Z+53,r25
  2208. 2169 0550 A6AB std Z+54,r26
  2209. 2170 0552 B7AB std Z+55,r27
  2210. 2171 .L172:
  2211. 2172 0554 F701 movw r30,r14
  2212. 2173 0556 E05C subi r30,-64
  2213. 2174 0558 FF4F sbci r31,-1
  2214. 2175 055a 81E0 ldi r24,lo8(1)
  2215. 2176 055c 90E0 ldi r25,0
  2216. 2177 055e 9183 std Z+1,r25
  2217. 2178 0560 8083 st Z,r24
  2218. 2179 .L173:
  2219. 2180 0562 C601 movw r24,r12
  2220. 2181 0564 00C0 rjmp .L177
  2221. 2182 .L153:
  2222. 2183 0566 8FEF ldi r24,lo8(-1)
  2223. 2184 0568 9FEF ldi r25,lo8(-1)
  2224. 2185 .L177:
  2225. 2186 /* epilogue start */
  2226. 2187 056a 6296 adiw r28,18
  2227. 2188 056c 0FB6 in __tmp_reg__,__SREG__
  2228. 2189 056e F894 cli
  2229. 2190 0570 DEBF out __SP_H__,r29
  2230. 2191 0572 0FBE out __SREG__,__tmp_reg__
  2231. 2192 0574 CDBF out __SP_L__,r28
  2232. 2193 0576 DF91 pop r29
  2233. 2194 0578 CF91 pop r28
  2234. 2195 057a 1F91 pop r17
  2235. 2196 057c 0F91 pop r16
  2236. 2197 057e FF90 pop r15
  2237. 2198 0580 EF90 pop r14
  2238. 2199 0582 DF90 pop r13
  2239. 2200 0584 CF90 pop r12
  2240. 2201 0586 BF90 pop r11
  2241. 2202 0588 AF90 pop r10
  2242. 2203 058a 9F90 pop r9
  2243. 2204 058c 8F90 pop r8
  2244. 2205 058e 7F90 pop r7
  2245. 2206 0590 6F90 pop r6
  2246. 2207 0592 5F90 pop r5
  2247. 2208 0594 4F90 pop r4
  2248. 2209 0596 3F90 pop r3
  2249. 2210 0598 2F90 pop r2
  2250. 2211 059a 0895 ret
  2251. 2212 .size PhatFileWrite, .-PhatFileWrite
  2252. 2213 .section .text.PhatApiFileWrite,"ax",@progbits
  2253. 2214 .type PhatApiFileWrite, @function
  2254. 2215 PhatApiFileWrite:
  2255. 2216 0000 CF92 push r12
  2256. 2217 0002 DF92 push r13
  2257. 2218 0004 EF92 push r14
  2258. 2219 0006 FF92 push r15
  2259. 2220 0008 0F93 push r16
  2260. 2221 000a 1F93 push r17
  2261. 2222 000c CF93 push r28
  2262. 2223 000e DF93 push r29
  2263. GAS LISTING /tmp/ccKdzQHI.s page 40
  2264. 2224 /* prologue: function */
  2265. 2225 /* frame size = 0 */
  2266. 2226 /* stack size = 8 */
  2267. 2227 .L__stack_usage = 8
  2268. 2228 0010 8C01 movw r16,r24
  2269. 2229 0012 7B01 movw r14,r22
  2270. 2230 0014 6A01 movw r12,r20
  2271. 2231 0016 DC01 movw r26,r24
  2272. 2232 0018 ED91 ld r30,X+
  2273. 2233 001a FC91 ld r31,X
  2274. 2234 001c C189 ldd r28,Z+17
  2275. 2235 001e D289 ldd r29,Z+18
  2276. 2236 0020 6496 adiw r28,20
  2277. 2237 0022 40E0 ldi r20,0
  2278. 2238 0024 50E0 ldi r21,0
  2279. 2239 0026 BA01 movw r22,r20
  2280. 2240 0028 CE01 movw r24,r28
  2281. 2241 002a 0E94 0000 call NutEventWait
  2282. 2242 002e A601 movw r20,r12
  2283. 2243 0030 B701 movw r22,r14
  2284. 2244 0032 C801 movw r24,r16
  2285. 2245 0034 0E94 0000 call PhatFileWrite
  2286. 2246 0038 8C01 movw r16,r24
  2287. 2247 003a CE01 movw r24,r28
  2288. 2248 003c 0E94 0000 call NutEventPost
  2289. 2249 0040 C801 movw r24,r16
  2290. 2250 /* epilogue start */
  2291. 2251 0042 DF91 pop r29
  2292. 2252 0044 CF91 pop r28
  2293. 2253 0046 1F91 pop r17
  2294. 2254 0048 0F91 pop r16
  2295. 2255 004a FF90 pop r15
  2296. 2256 004c EF90 pop r14
  2297. 2257 004e DF90 pop r13
  2298. 2258 0050 CF90 pop r12
  2299. 2259 0052 0895 ret
  2300. 2260 .size PhatApiFileWrite, .-PhatApiFileWrite
  2301. 2261 .section .text.PhatFileWrite_P,"ax",@progbits
  2302. 2262 .global PhatFileWrite_P
  2303. 2263 .type PhatFileWrite_P, @function
  2304. 2264 PhatFileWrite_P:
  2305. 2265 /* prologue: function */
  2306. 2266 /* frame size = 0 */
  2307. 2267 /* stack size = 0 */
  2308. 2268 .L__stack_usage = 0
  2309. 2269 0000 8FEF ldi r24,lo8(-1)
  2310. 2270 0002 9FEF ldi r25,lo8(-1)
  2311. 2271 0004 0895 ret
  2312. 2272 .size PhatFileWrite_P, .-PhatFileWrite_P
  2313. 2273 .section .text.PhatFileRead,"ax",@progbits
  2314. 2274 .global PhatFileRead
  2315. 2275 .type PhatFileRead, @function
  2316. 2276 PhatFileRead:
  2317. 2277 0000 2F92 push r2
  2318. 2278 0002 3F92 push r3
  2319. 2279 0004 4F92 push r4
  2320. 2280 0006 5F92 push r5
  2321. GAS LISTING /tmp/ccKdzQHI.s page 41
  2322. 2281 0008 6F92 push r6
  2323. 2282 000a 7F92 push r7
  2324. 2283 000c 8F92 push r8
  2325. 2284 000e 9F92 push r9
  2326. 2285 0010 AF92 push r10
  2327. 2286 0012 BF92 push r11
  2328. 2287 0014 CF92 push r12
  2329. 2288 0016 DF92 push r13
  2330. 2289 0018 EF92 push r14
  2331. 2290 001a FF92 push r15
  2332. 2291 001c 0F93 push r16
  2333. 2292 001e 1F93 push r17
  2334. 2293 0020 CF93 push r28
  2335. 2294 0022 DF93 push r29
  2336. 2295 0024 00D0 rcall .
  2337. 2296 0026 00D0 rcall .
  2338. 2297 0028 CDB7 in r28,__SP_L__
  2339. 2298 002a DEB7 in r29,__SP_H__
  2340. 2299 /* prologue: function */
  2341. 2300 /* frame size = 6 */
  2342. 2301 /* stack size = 24 */
  2343. 2302 .L__stack_usage = 24
  2344. 2303 002c 4C01 movw r8,r24
  2345. 2304 002e 7E83 std Y+6,r23
  2346. 2305 0030 6D83 std Y+5,r22
  2347. 2306 0032 6A01 movw r12,r20
  2348. 2307 0034 672B or r22,r23
  2349. 2308 0036 01F4 brne .+2
  2350. 2309 0038 00C0 rjmp .L201
  2351. 2310 003a 452B or r20,r21
  2352. 2311 003c 01F4 brne .+2
  2353. 2312 003e 00C0 rjmp .L201
  2354. 2313 0040 FC01 movw r30,r24
  2355. 2314 0042 0281 ldd r16,Z+2
  2356. 2315 0044 1381 ldd r17,Z+3
  2357. 2316 0046 F801 movw r30,r16
  2358. 2317 0048 83A1 ldd r24,Z+35
  2359. 2318 004a 84FD sbrc r24,4
  2360. 2319 004c 00C0 rjmp .L188
  2361. 2320 004e 4081 ld r20,Z
  2362. 2321 0050 5181 ldd r21,Z+1
  2363. 2322 0052 6281 ldd r22,Z+2
  2364. 2323 0054 7381 ldd r23,Z+3
  2365. 2324 0056 44A8 ldd r4,Z+52
  2366. 2325 0058 55A8 ldd r5,Z+53
  2367. 2326 005a 66A8 ldd r6,Z+54
  2368. 2327 005c 77A8 ldd r7,Z+55
  2369. 2328 005e C601 movw r24,r12
  2370. 2329 0060 0D2C mov __tmp_reg__,r13
  2371. 2330 0062 000C lsl r0
  2372. 2331 0064 AA0B sbc r26,r26
  2373. 2332 0066 BB0B sbc r27,r27
  2374. 2333 0068 840F add r24,r20
  2375. 2334 006a 951F adc r25,r21
  2376. 2335 006c A61F adc r26,r22
  2377. 2336 006e B71F adc r27,r23
  2378. 2337 0070 8415 cp r24,r4
  2379. GAS LISTING /tmp/ccKdzQHI.s page 42
  2380. 2338 0072 9505 cpc r25,r5
  2381. 2339 0074 A605 cpc r26,r6
  2382. 2340 0076 B705 cpc r27,r7
  2383. 2341 0078 00F0 brlo .L188
  2384. 2342 007a 6201 movw r12,r4
  2385. 2343 007c C41A sub r12,r20
  2386. 2344 007e D50A sbc r13,r21
  2387. 2345 .L188:
  2388. 2346 0080 F401 movw r30,r8
  2389. 2347 0082 A080 ld r10,Z
  2390. 2348 0084 B180 ldd r11,Z+1
  2391. 2349 0086 F501 movw r30,r10
  2392. 2350 0088 2188 ldd r2,Z+17
  2393. 2351 008a 3288 ldd r3,Z+18
  2394. 2352 008c E12C mov r14,__zero_reg__
  2395. 2353 008e F12C mov r15,__zero_reg__
  2396. 2354 .L189:
  2397. 2355 0090 EC14 cp r14,r12
  2398. 2356 0092 FD04 cpc r15,r13
  2399. 2357 0094 04F0 brlt .+2
  2400. 2358 0096 00C0 rjmp .L202
  2401. 2359 0098 F101 movw r30,r2
  2402. 2360 009a 808D ldd r24,Z+24
  2403. 2361 009c 918D ldd r25,Z+25
  2404. 2362 009e A0E0 ldi r26,0
  2405. 2363 00a0 B0E0 ldi r27,0
  2406. 2364 00a2 F801 movw r30,r16
  2407. 2365 00a4 4485 ldd r20,Z+12
  2408. 2366 00a6 5585 ldd r21,Z+13
  2409. 2367 00a8 6685 ldd r22,Z+14
  2410. 2368 00aa 7785 ldd r23,Z+15
  2411. 2369 00ac 4817 cp r20,r24
  2412. 2370 00ae 5907 cpc r21,r25
  2413. 2371 00b0 6A07 cpc r22,r26
  2414. 2372 00b2 7B07 cpc r23,r27
  2415. 2373 00b4 00F4 brsh .+2
  2416. 2374 00b6 00C0 rjmp .L190
  2417. 2375 00b8 C401 movw r24,r8
  2418. 2376 00ba 0E94 0000 call IsFixedRootDir
  2419. 2377 00be F801 movw r30,r16
  2420. 2378 00c0 4085 ldd r20,Z+8
  2421. 2379 00c2 5185 ldd r21,Z+9
  2422. 2380 00c4 6285 ldd r22,Z+10
  2423. 2381 00c6 7385 ldd r23,Z+11
  2424. 2382 00c8 4F5F subi r20,-1
  2425. 2383 00ca 5F4F sbci r21,-1
  2426. 2384 00cc 6F4F sbci r22,-1
  2427. 2385 00ce 7F4F sbci r23,-1
  2428. 2386 00d0 F101 movw r30,r2
  2429. 2387 00d2 892B or r24,r25
  2430. 2388 00d4 01F0 breq .L191
  2431. 2389 00d6 80A5 ldd r24,Z+40
  2432. 2390 00d8 91A5 ldd r25,Z+41
  2433. 2391 00da A0E0 ldi r26,0
  2434. 2392 00dc B0E0 ldi r27,0
  2435. 2393 00de 4817 cp r20,r24
  2436. 2394 00e0 5907 cpc r21,r25
  2437. GAS LISTING /tmp/ccKdzQHI.s page 43
  2438. 2395 00e2 6A07 cpc r22,r26
  2439. 2396 00e4 7B07 cpc r23,r27
  2440. 2397 00e6 00F4 brsh .+2
  2441. 2398 00e8 00C0 rjmp .L193
  2442. 2399 00ea 00C0 rjmp .L202
  2443. 2400 .L191:
  2444. 2401 00ec 828D ldd r24,Z+26
  2445. 2402 00ee 938D ldd r25,Z+27
  2446. 2403 00f0 A0E0 ldi r26,0
  2447. 2404 00f2 B0E0 ldi r27,0
  2448. 2405 00f4 4817 cp r20,r24
  2449. 2406 00f6 5907 cpc r21,r25
  2450. 2407 00f8 6A07 cpc r22,r26
  2451. 2408 00fa 7B07 cpc r23,r27
  2452. 2409 00fc 00F4 brsh .+2
  2453. 2410 00fe 00C0 rjmp .L193
  2454. 2411 0100 8081 ld r24,Z
  2455. 2412 0102 9181 ldd r25,Z+1
  2456. 2413 0104 F801 movw r30,r16
  2457. 2414 0106 4481 ldd r20,Z+4
  2458. 2415 0108 5581 ldd r21,Z+5
  2459. 2416 010a 6681 ldd r22,Z+6
  2460. 2417 010c 7781 ldd r23,Z+7
  2461. 2418 010e 9E01 movw r18,r28
  2462. 2419 0110 2F5F subi r18,-1
  2463. 2420 0112 3F4F sbci r19,-1
  2464. 2421 0114 8032 cpi r24,32
  2465. 2422 0116 9105 cpc r25,__zero_reg__
  2466. 2423 0118 01F4 brne .L194
  2467. 2424 011a C501 movw r24,r10
  2468. 2425 011c 0E94 0000 call Phat32GetClusterLink
  2469. 2426 0120 892B or r24,r25
  2470. 2427 0122 01F0 breq .+2
  2471. 2428 0124 00C0 rjmp .L202
  2472. 2429 0126 8981 ldd r24,Y+1
  2473. 2430 0128 9A81 ldd r25,Y+2
  2474. 2431 012a AB81 ldd r26,Y+3
  2475. 2432 012c BC81 ldd r27,Y+4
  2476. 2433 012e 883F cpi r24,-8
  2477. 2434 0130 9F4F sbci r25,-1
  2478. 2435 0132 AF4F sbci r26,-1
  2479. 2436 0134 BF40 sbci r27,15
  2480. 2437 0136 00F0 brlo .+2
  2481. 2438 0138 00C0 rjmp .L202
  2482. 2439 .L197:
  2483. 2440 013a F801 movw r30,r16
  2484. 2441 013c 1086 std Z+8,__zero_reg__
  2485. 2442 013e 1186 std Z+9,__zero_reg__
  2486. 2443 0140 1286 std Z+10,__zero_reg__
  2487. 2444 0142 1386 std Z+11,__zero_reg__
  2488. 2445 0144 8481 ldd r24,Z+4
  2489. 2446 0146 9581 ldd r25,Z+5
  2490. 2447 0148 A681 ldd r26,Z+6
  2491. 2448 014a B781 ldd r27,Z+7
  2492. 2449 014c 808B std Z+16,r24
  2493. 2450 014e 918B std Z+17,r25
  2494. 2451 0150 A28B std Z+18,r26
  2495. GAS LISTING /tmp/ccKdzQHI.s page 44
  2496. 2452 0152 B38B std Z+19,r27
  2497. 2453 0154 8981 ldd r24,Y+1
  2498. 2454 0156 9A81 ldd r25,Y+2
  2499. 2455 0158 AB81 ldd r26,Y+3
  2500. 2456 015a BC81 ldd r27,Y+4
  2501. 2457 015c 8483 std Z+4,r24
  2502. 2458 015e 9583 std Z+5,r25
  2503. 2459 0160 A683 std Z+6,r26
  2504. 2460 0162 B783 std Z+7,r27
  2505. 2461 0164 00C0 rjmp .L192
  2506. 2462 .L194:
  2507. 2463 0166 4097 sbiw r24,16
  2508. 2464 0168 01F4 brne .L196
  2509. 2465 016a C501 movw r24,r10
  2510. 2466 016c 0E94 0000 call Phat16GetClusterLink
  2511. 2467 0170 892B or r24,r25
  2512. 2468 0172 01F0 breq .+2
  2513. 2469 0174 00C0 rjmp .L202
  2514. 2470 0176 8981 ldd r24,Y+1
  2515. 2471 0178 9A81 ldd r25,Y+2
  2516. 2472 017a AB81 ldd r26,Y+3
  2517. 2473 017c BC81 ldd r27,Y+4
  2518. 2474 017e 883F cpi r24,-8
  2519. 2475 0180 9F4F sbci r25,-1
  2520. 2476 0182 A105 cpc r26,__zero_reg__
  2521. 2477 0184 B105 cpc r27,__zero_reg__
  2522. 2478 0186 00F0 brlo .L197
  2523. 2479 0188 00C0 rjmp .L202
  2524. 2480 .L196:
  2525. 2481 018a C501 movw r24,r10
  2526. 2482 018c 0E94 0000 call Phat12GetClusterLink
  2527. 2483 0190 892B or r24,r25
  2528. 2484 0192 01F0 breq .+2
  2529. 2485 0194 00C0 rjmp .L202
  2530. 2486 0196 8981 ldd r24,Y+1
  2531. 2487 0198 9A81 ldd r25,Y+2
  2532. 2488 019a AB81 ldd r26,Y+3
  2533. 2489 019c BC81 ldd r27,Y+4
  2534. 2490 019e 883F cpi r24,-8
  2535. 2491 01a0 9F40 sbci r25,15
  2536. 2492 01a2 A105 cpc r26,__zero_reg__
  2537. 2493 01a4 B105 cpc r27,__zero_reg__
  2538. 2494 01a6 00F0 brlo .L197
  2539. 2495 01a8 00C0 rjmp .L202
  2540. 2496 .L193:
  2541. 2497 01aa F801 movw r30,r16
  2542. 2498 01ac 4087 std Z+8,r20
  2543. 2499 01ae 5187 std Z+9,r21
  2544. 2500 01b0 6287 std Z+10,r22
  2545. 2501 01b2 7387 std Z+11,r23
  2546. 2502 .L192:
  2547. 2503 01b4 F801 movw r30,r16
  2548. 2504 01b6 1486 std Z+12,__zero_reg__
  2549. 2505 01b8 1586 std Z+13,__zero_reg__
  2550. 2506 01ba 1686 std Z+14,__zero_reg__
  2551. 2507 01bc 1786 std Z+15,__zero_reg__
  2552. 2508 .L190:
  2553. GAS LISTING /tmp/ccKdzQHI.s page 45
  2554. 2509 01be F801 movw r30,r16
  2555. 2510 01c0 4481 ldd r20,Z+4
  2556. 2511 01c2 5581 ldd r21,Z+5
  2557. 2512 01c4 6681 ldd r22,Z+6
  2558. 2513 01c6 7781 ldd r23,Z+7
  2559. 2514 01c8 C401 movw r24,r8
  2560. 2515 01ca 0E94 0000 call PhatClusterSector
  2561. 2516 01ce F801 movw r30,r16
  2562. 2517 01d0 4084 ldd r4,Z+8
  2563. 2518 01d2 5184 ldd r5,Z+9
  2564. 2519 01d4 6284 ldd r6,Z+10
  2565. 2520 01d6 7384 ldd r7,Z+11
  2566. 2521 01d8 AB01 movw r20,r22
  2567. 2522 01da BC01 movw r22,r24
  2568. 2523 01dc 440D add r20,r4
  2569. 2524 01de 551D adc r21,r5
  2570. 2525 01e0 661D adc r22,r6
  2571. 2526 01e2 771D adc r23,r7
  2572. 2527 01e4 F401 movw r30,r8
  2573. 2528 01e6 8081 ld r24,Z
  2574. 2529 01e8 9181 ldd r25,Z+1
  2575. 2530 01ea 0E94 0000 call PhatSectorLoad
  2576. 2531 01ee 2C01 movw r4,r24
  2577. 2532 01f0 97FD sbrc r25,7
  2578. 2533 01f2 00C0 rjmp .L203
  2579. 2534 01f4 F801 movw r30,r16
  2580. 2535 01f6 6485 ldd r22,Z+12
  2581. 2536 01f8 7585 ldd r23,Z+13
  2582. 2537 01fa F101 movw r30,r2
  2583. 2538 01fc 608C ldd r6,Z+24
  2584. 2539 01fe 718C ldd r7,Z+25
  2585. 2540 0200 C601 movw r24,r12
  2586. 2541 0202 8E19 sub r24,r14
  2587. 2542 0204 9F09 sbc r25,r15
  2588. 2543 0206 661A sub r6,r22
  2589. 2544 0208 770A sbc r7,r23
  2590. 2545 020a 8615 cp r24,r6
  2591. 2546 020c 9705 cpc r25,r7
  2592. 2547 020e 04F4 brge .L198
  2593. 2548 0210 3C01 movw r6,r24
  2594. 2549 .L198:
  2595. 2550 0212 9201 movw r18,r4
  2596. 2551 0214 2F5F subi r18,-1
  2597. 2552 0216 3F4F sbci r19,-1
  2598. 2553 0218 FAE0 ldi r31,lo8(10)
  2599. 2554 021a F29F mul r31,r18
  2600. 2555 021c C001 movw r24,r0
  2601. 2556 021e F39F mul r31,r19
  2602. 2557 0220 900D add r25,r0
  2603. 2558 0222 1124 clr __zero_reg__
  2604. 2559 0224 F101 movw r30,r2
  2605. 2560 0226 E80F add r30,r24
  2606. 2561 0228 F91F adc r31,r25
  2607. 2562 022a 8081 ld r24,Z
  2608. 2563 022c 9181 ldd r25,Z+1
  2609. 2564 022e 680F add r22,r24
  2610. 2565 0230 791F adc r23,r25
  2611. GAS LISTING /tmp/ccKdzQHI.s page 46
  2612. 2566 0232 A301 movw r20,r6
  2613. 2567 0234 8D81 ldd r24,Y+5
  2614. 2568 0236 9E81 ldd r25,Y+6
  2615. 2569 0238 8E0D add r24,r14
  2616. 2570 023a 9F1D adc r25,r15
  2617. 2571 023c 0E94 0000 call memcpy
  2618. 2572 0240 B201 movw r22,r4
  2619. 2573 0242 C501 movw r24,r10
  2620. 2574 0244 0E94 0000 call PhatSectorBufferRelease
  2621. 2575 0248 C301 movw r24,r6
  2622. 2576 024a 072C mov __tmp_reg__,r7
  2623. 2577 024c 000C lsl r0
  2624. 2578 024e AA0B sbc r26,r26
  2625. 2579 0250 BB0B sbc r27,r27
  2626. 2580 0252 F801 movw r30,r16
  2627. 2581 0254 4081 ld r20,Z
  2628. 2582 0256 5181 ldd r21,Z+1
  2629. 2583 0258 6281 ldd r22,Z+2
  2630. 2584 025a 7381 ldd r23,Z+3
  2631. 2585 025c 480F add r20,r24
  2632. 2586 025e 591F adc r21,r25
  2633. 2587 0260 6A1F adc r22,r26
  2634. 2588 0262 7B1F adc r23,r27
  2635. 2589 0264 4083 st Z,r20
  2636. 2590 0266 5183 std Z+1,r21
  2637. 2591 0268 6283 std Z+2,r22
  2638. 2592 026a 7383 std Z+3,r23
  2639. 2593 026c 4485 ldd r20,Z+12
  2640. 2594 026e 5585 ldd r21,Z+13
  2641. 2595 0270 6685 ldd r22,Z+14
  2642. 2596 0272 7785 ldd r23,Z+15
  2643. 2597 0274 840F add r24,r20
  2644. 2598 0276 951F adc r25,r21
  2645. 2599 0278 A61F adc r26,r22
  2646. 2600 027a B71F adc r27,r23
  2647. 2601 027c 8487 std Z+12,r24
  2648. 2602 027e 9587 std Z+13,r25
  2649. 2603 0280 A687 std Z+14,r26
  2650. 2604 0282 B787 std Z+15,r27
  2651. 2605 0284 E60C add r14,r6
  2652. 2606 0286 F71C adc r15,r7
  2653. 2607 0288 00C0 rjmp .L189
  2654. 2608 .L201:
  2655. 2609 028a 80E0 ldi r24,0
  2656. 2610 028c 90E0 ldi r25,0
  2657. 2611 028e 00C0 rjmp .L187
  2658. 2612 .L202:
  2659. 2613 0290 C701 movw r24,r14
  2660. 2614 0292 00C0 rjmp .L187
  2661. 2615 .L203:
  2662. 2616 0294 8FEF ldi r24,lo8(-1)
  2663. 2617 0296 9FEF ldi r25,lo8(-1)
  2664. 2618 .L187:
  2665. 2619 /* epilogue start */
  2666. 2620 0298 2696 adiw r28,6
  2667. 2621 029a 0FB6 in __tmp_reg__,__SREG__
  2668. 2622 029c F894 cli
  2669. GAS LISTING /tmp/ccKdzQHI.s page 47
  2670. 2623 029e DEBF out __SP_H__,r29
  2671. 2624 02a0 0FBE out __SREG__,__tmp_reg__
  2672. 2625 02a2 CDBF out __SP_L__,r28
  2673. 2626 02a4 DF91 pop r29
  2674. 2627 02a6 CF91 pop r28
  2675. 2628 02a8 1F91 pop r17
  2676. 2629 02aa 0F91 pop r16
  2677. 2630 02ac FF90 pop r15
  2678. 2631 02ae EF90 pop r14
  2679. 2632 02b0 DF90 pop r13
  2680. 2633 02b2 CF90 pop r12
  2681. 2634 02b4 BF90 pop r11
  2682. 2635 02b6 AF90 pop r10
  2683. 2636 02b8 9F90 pop r9
  2684. 2637 02ba 8F90 pop r8
  2685. 2638 02bc 7F90 pop r7
  2686. 2639 02be 6F90 pop r6
  2687. 2640 02c0 5F90 pop r5
  2688. 2641 02c2 4F90 pop r4
  2689. 2642 02c4 3F90 pop r3
  2690. 2643 02c6 2F90 pop r2
  2691. 2644 02c8 0895 ret
  2692. 2645 .size PhatFileRead, .-PhatFileRead
  2693. 2646 .section .text.PhatApiFileRead,"ax",@progbits
  2694. 2647 .type PhatApiFileRead, @function
  2695. 2648 PhatApiFileRead:
  2696. 2649 0000 CF92 push r12
  2697. 2650 0002 DF92 push r13
  2698. 2651 0004 EF92 push r14
  2699. 2652 0006 FF92 push r15
  2700. 2653 0008 0F93 push r16
  2701. 2654 000a 1F93 push r17
  2702. 2655 000c CF93 push r28
  2703. 2656 000e DF93 push r29
  2704. 2657 /* prologue: function */
  2705. 2658 /* frame size = 0 */
  2706. 2659 /* stack size = 8 */
  2707. 2660 .L__stack_usage = 8
  2708. 2661 0010 8C01 movw r16,r24
  2709. 2662 0012 7B01 movw r14,r22
  2710. 2663 0014 6A01 movw r12,r20
  2711. 2664 0016 DC01 movw r26,r24
  2712. 2665 0018 ED91 ld r30,X+
  2713. 2666 001a FC91 ld r31,X
  2714. 2667 001c C189 ldd r28,Z+17
  2715. 2668 001e D289 ldd r29,Z+18
  2716. 2669 0020 6496 adiw r28,20
  2717. 2670 0022 40E0 ldi r20,0
  2718. 2671 0024 50E0 ldi r21,0
  2719. 2672 0026 BA01 movw r22,r20
  2720. 2673 0028 CE01 movw r24,r28
  2721. 2674 002a 0E94 0000 call NutEventWait
  2722. 2675 002e A601 movw r20,r12
  2723. 2676 0030 B701 movw r22,r14
  2724. 2677 0032 C801 movw r24,r16
  2725. 2678 0034 0E94 0000 call PhatFileRead
  2726. 2679 0038 8C01 movw r16,r24
  2727. GAS LISTING /tmp/ccKdzQHI.s page 48
  2728. 2680 003a CE01 movw r24,r28
  2729. 2681 003c 0E94 0000 call NutEventPost
  2730. 2682 0040 C801 movw r24,r16
  2731. 2683 /* epilogue start */
  2732. 2684 0042 DF91 pop r29
  2733. 2685 0044 CF91 pop r28
  2734. 2686 0046 1F91 pop r17
  2735. 2687 0048 0F91 pop r16
  2736. 2688 004a FF90 pop r15
  2737. 2689 004c EF90 pop r14
  2738. 2690 004e DF90 pop r13
  2739. 2691 0050 CF90 pop r12
  2740. 2692 0052 0895 ret
  2741. 2693 .size PhatApiFileRead, .-PhatApiFileRead
  2742. 2694 .global devPhat1
  2743. 2695 .data
  2744. 2696 .type devPhat1, @object
  2745. 2697 .size devPhat1, 37
  2746. 2698 devPhat1:
  2747. 2699 0000 0000 .word 0
  2748. 2700 0002 50 .byte 80
  2749. 2701 0003 48 .byte 72
  2750. 2702 0004 41 .byte 65
  2751. 2703 0005 54 .byte 84
  2752. 2704 0006 31 .byte 49
  2753. 2705 0007 00 .byte 0
  2754. 2706 0008 00 .byte 0
  2755. 2707 0009 00 .byte 0
  2756. 2708 000a 00 .byte 0
  2757. 2709 000b 10 .byte 16
  2758. 2710 000c 0000 .word 0
  2759. 2711 000e 00 .byte 0
  2760. 2712 000f 0000 .word 0
  2761. 2713 0011 0000 .word 0
  2762. 2714 0013 0000 .word gs(PhatInit)
  2763. 2715 0015 0000 .word gs(PhatApiIOCtl)
  2764. 2716 0017 0000 .word gs(PhatApiFileRead)
  2765. 2717 0019 0000 .word gs(PhatApiFileWrite)
  2766. 2718 001b 0000 .word gs(PhatApiFileWrite_P)
  2767. 2719 001d 0000 .word gs(PhatApiFileOpen)
  2768. 2720 001f 0000 .word gs(PhatApiFileClose)
  2769. 2721 0021 0000 .word gs(PhatFileSize)
  2770. 2722 0023 0000 .word 0
  2771. 2723 .global devPhat0
  2772. 2724 .type devPhat0, @object
  2773. 2725 .size devPhat0, 37
  2774. 2726 devPhat0:
  2775. 2727 0025 0000 .word 0
  2776. 2728 0027 50 .byte 80
  2777. 2729 0028 48 .byte 72
  2778. 2730 0029 41 .byte 65
  2779. 2731 002a 54 .byte 84
  2780. 2732 002b 30 .byte 48
  2781. 2733 002c 00 .byte 0
  2782. 2734 002d 00 .byte 0
  2783. 2735 002e 00 .byte 0
  2784. 2736 002f 00 .byte 0
  2785. GAS LISTING /tmp/ccKdzQHI.s page 49
  2786. 2737 0030 10 .byte 16
  2787. 2738 0031 0000 .word 0
  2788. 2739 0033 00 .byte 0
  2789. 2740 0034 0000 .word 0
  2790. 2741 0036 0000 .word 0
  2791. 2742 0038 0000 .word gs(PhatInit)
  2792. 2743 003a 0000 .word gs(PhatApiIOCtl)
  2793. 2744 003c 0000 .word gs(PhatApiFileRead)
  2794. 2745 003e 0000 .word gs(PhatApiFileWrite)
  2795. 2746 0040 0000 .word gs(PhatApiFileWrite_P)
  2796. 2747 0042 0000 .word gs(PhatApiFileOpen)
  2797. 2748 0044 0000 .word gs(PhatApiFileClose)
  2798. 2749 0046 0000 .word gs(PhatFileSize)
  2799. 2750 0048 0000 .word 0
  2800. 2751 .ident "GCC: (GNU) 5.3.0"
  2801. 2752 .global __do_copy_data
  2802. GAS LISTING /tmp/ccKdzQHI.s page 50
  2803. DEFINED SYMBOLS
  2804. *ABS*:0000000000000000 phatfs.c
  2805. /tmp/ccKdzQHI.s:2 *ABS*:000000000000003e __SP_H__
  2806. /tmp/ccKdzQHI.s:3 *ABS*:000000000000003d __SP_L__
  2807. /tmp/ccKdzQHI.s:4 *ABS*:000000000000003f __SREG__
  2808. /tmp/ccKdzQHI.s:5 *ABS*:000000000000003b __RAMPZ__
  2809. /tmp/ccKdzQHI.s:6 *ABS*:0000000000000000 __tmp_reg__
  2810. /tmp/ccKdzQHI.s:7 *ABS*:0000000000000001 __zero_reg__
  2811. /tmp/ccKdzQHI.s:10 .text.PhatFileSize:0000000000000000 PhatFileSize
  2812. /tmp/ccKdzQHI.s:28 .text.PhatInit:0000000000000000 PhatInit
  2813. /tmp/ccKdzQHI.s:39 .text.SearchFreeCluster:0000000000000000 SearchFreeCluster
  2814. /tmp/ccKdzQHI.s:233 .text.AllocCluster:0000000000000000 AllocCluster
  2815. /tmp/ccKdzQHI.s:338 .text.AllocNextCluster:0000000000000000 AllocNextCluster
  2816. /tmp/ccKdzQHI.s:465 .text.PhatFileFlush:0000000000000000 PhatFileFlush
  2817. /tmp/ccKdzQHI.s:514 .text.PhatApiFileWrite_P:0000000000000000 PhatApiFileWrite_P
  2818. /tmp/ccKdzQHI.s:544 .text.AllocFirstCluster:0000000000000000 AllocFirstCluster
  2819. /tmp/ccKdzQHI.s:663 .text.PhatFileClose:0000000000000000 PhatFileClose
  2820. /tmp/ccKdzQHI.s:710 .text.PhatApiFileClose:0000000000000000 PhatApiFileClose
  2821. /tmp/ccKdzQHI.s:746 .text.PhatApiIOCtl:0000000000000000 PhatApiIOCtl
  2822. /tmp/ccKdzQHI.s:1016 .text.PhatFileOpen:0000000000000000 PhatFileOpen
  2823. /tmp/ccKdzQHI.s:1407 .text.PhatApiFileOpen:0000000000000000 PhatApiFileOpen
  2824. /tmp/ccKdzQHI.s:1482 .text.PhatFileWrite:0000000000000000 PhatFileWrite
  2825. /tmp/ccKdzQHI.s:2215 .text.PhatApiFileWrite:0000000000000000 PhatApiFileWrite
  2826. /tmp/ccKdzQHI.s:2264 .text.PhatFileWrite_P:0000000000000000 PhatFileWrite_P
  2827. /tmp/ccKdzQHI.s:2276 .text.PhatFileRead:0000000000000000 PhatFileRead
  2828. /tmp/ccKdzQHI.s:2648 .text.PhatApiFileRead:0000000000000000 PhatApiFileRead
  2829. /tmp/ccKdzQHI.s:2698 .data:0000000000000000 devPhat1
  2830. /tmp/ccKdzQHI.s:2726 .data:0000000000000025 devPhat0
  2831. UNDEFINED SYMBOLS
  2832. Phat32GetClusterLink
  2833. Phat16GetClusterLink
  2834. Phat12GetClusterLink
  2835. errno
  2836. Phat32SetClusterLink
  2837. Phat16SetClusterLink
  2838. Phat12SetClusterLink
  2839. PhatDirEntryUpdate
  2840. NutEventWait
  2841. PhatSectorFlush
  2842. NutEventPost
  2843. free
  2844. PhatDirEntryStatus
  2845. PhatDirDelEntry
  2846. PhatDirRenameEntry
  2847. PhatDirCreate
  2848. PhatDirRemove
  2849. PhatDirOpen
  2850. PhatDirRead
  2851. PhatFilePosSet
  2852. PhatVolMount
  2853. PhatVolUnmount
  2854. PhatDirOpenParent
  2855. malloc
  2856. PhatDirEntryFind
  2857. PhatDirEntryCreate
  2858. PhatDirReleaseChain
  2859. GAS LISTING /tmp/ccKdzQHI.s page 51
  2860. PhatClusterSector
  2861. __udivmodsi4
  2862. IsFixedRootDir
  2863. __udivmodhi4
  2864. PhatSectorWrite
  2865. PhatSectorLoad
  2866. memcpy
  2867. PhatSectorBufferRelease
  2868. GetDosTimeStamp
  2869. __do_copy_data