rtc.lst 53 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504
  1. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 1
  2. 1 .file "rtc.c"
  3. 2 .arch atmega2561
  4. 3 __SREG__ = 0x3f
  5. 4 __SP_H__ = 0x3e
  6. 5 __SP_L__ = 0x3d
  7. 6 __tmp_reg__ = 0
  8. 7 __zero_reg__ = 1
  9. 8 .global __do_copy_data
  10. 9 .global __do_clear_bss
  11. 10 .text
  12. 11 .global X12RtcClearStatus
  13. 12 .type X12RtcClearStatus, @function
  14. 13 X12RtcClearStatus:
  15. 14 /* prologue: frame size=0 */
  16. 15 /* prologue end (size=0) */
  17. 16 0000 6095 com r22
  18. 17 0002 7095 com r23
  19. 18 0004 8095 com r24
  20. 19 0006 9095 com r25
  21. 20 0008 2091 0000 lds r18,rtc_status
  22. 21 000c 3091 0000 lds r19,(rtc_status)+1
  23. 22 0010 4091 0000 lds r20,(rtc_status)+2
  24. 23 0014 5091 0000 lds r21,(rtc_status)+3
  25. 24 0018 2623 and r18,r22
  26. 25 001a 3723 and r19,r23
  27. 26 001c 4823 and r20,r24
  28. 27 001e 5923 and r21,r25
  29. 28 0020 2093 0000 sts rtc_status,r18
  30. 29 0024 3093 0000 sts (rtc_status)+1,r19
  31. 30 0028 4093 0000 sts (rtc_status)+2,r20
  32. 31 002c 5093 0000 sts (rtc_status)+3,r21
  33. 32 0030 80E0 ldi r24,lo8(0)
  34. 33 0032 90E0 ldi r25,hi8(0)
  35. 34 /* epilogue: frame size=0 */
  36. 35 0034 0895 ret
  37. 36 /* epilogue end (size=1) */
  38. 37 /* function X12RtcClearStatus size 27 (26) */
  39. 38 .size X12RtcClearStatus, .-X12RtcClearStatus
  40. 39 .global X12EepromRead
  41. 40 .type X12EepromRead, @function
  42. 41 X12EepromRead:
  43. 42 /* prologue: frame size=2 */
  44. 43 0036 AF92 push r10
  45. 44 0038 BF92 push r11
  46. 45 003a CF92 push r12
  47. 46 003c DF92 push r13
  48. 47 003e EF92 push r14
  49. 48 0040 FF92 push r15
  50. 49 0042 0F93 push r16
  51. 50 0044 1F93 push r17
  52. 51 0046 CF93 push r28
  53. 52 0048 DF93 push r29
  54. 53 004a CDB7 in r28,__SP_L__
  55. 54 004c DEB7 in r29,__SP_H__
  56. 55 004e 2297 sbiw r28,2
  57. 56 0050 0FB6 in __tmp_reg__,__SREG__
  58. 57 0052 F894 cli
  59. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 2
  60. 58 0054 DEBF out __SP_H__,r29
  61. 59 0056 0FBE out __SREG__,__tmp_reg__
  62. 60 0058 CDBF out __SP_L__,r28
  63. 61 /* prologue end (size=18) */
  64. 62 005a 9B01 movw r18,r22
  65. 63 005c 5A01 movw r10,r20
  66. 64 005e 492F mov r20,r25
  67. 65 0060 5527 clr r21
  68. 66 0062 4983 std Y+1,r20
  69. 67 0064 8A83 std Y+2,r24
  70. 68 0066 CC24 clr r12
  71. 69 0068 DD24 clr r13
  72. 70 006a 7601 movw r14,r12
  73. 71 006c 8501 movw r16,r10
  74. 72 006e 42E0 ldi r20,lo8(2)
  75. 73 0070 50E0 ldi r21,hi8(2)
  76. 74 0072 BE01 movw r22,r28
  77. 75 0074 6F5F subi r22,lo8(-(1))
  78. 76 0076 7F4F sbci r23,hi8(-(1))
  79. 77 0078 87E5 ldi r24,lo8(87)
  80. 78 007a 0E94 0000 call TwMasterTransact
  81. 79 007e 8A15 cp r24,r10
  82. 80 0080 9B05 cpc r25,r11
  83. 81 0082 01F4 brne .L4
  84. 82 0084 80E0 ldi r24,lo8(0)
  85. 83 0086 90E0 ldi r25,hi8(0)
  86. 84 0088 00C0 rjmp .L6
  87. 85 .L4:
  88. 86 008a 8FEF ldi r24,lo8(-1)
  89. 87 008c 9FEF ldi r25,hi8(-1)
  90. 88 .L6:
  91. 89 /* epilogue: frame size=2 */
  92. 90 008e 2296 adiw r28,2
  93. 91 0090 0FB6 in __tmp_reg__,__SREG__
  94. 92 0092 F894 cli
  95. 93 0094 DEBF out __SP_H__,r29
  96. 94 0096 0FBE out __SREG__,__tmp_reg__
  97. 95 0098 CDBF out __SP_L__,r28
  98. 96 009a DF91 pop r29
  99. 97 009c CF91 pop r28
  100. 98 009e 1F91 pop r17
  101. 99 00a0 0F91 pop r16
  102. 100 00a2 FF90 pop r15
  103. 101 00a4 EF90 pop r14
  104. 102 00a6 DF90 pop r13
  105. 103 00a8 CF90 pop r12
  106. 104 00aa BF90 pop r11
  107. 105 00ac AF90 pop r10
  108. 106 00ae 0895 ret
  109. 107 /* epilogue end (size=17) */
  110. 108 /* function X12EepromRead size 61 (26) */
  111. 109 .size X12EepromRead, .-X12EepromRead
  112. 110 .global X12RtcReadRegs
  113. 111 .type X12RtcReadRegs, @function
  114. 112 X12RtcReadRegs:
  115. 113 /* prologue: frame size=2 */
  116. 114 00b0 AF92 push r10
  117. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 3
  118. 115 00b2 BF92 push r11
  119. 116 00b4 CF92 push r12
  120. 117 00b6 DF92 push r13
  121. 118 00b8 EF92 push r14
  122. 119 00ba FF92 push r15
  123. 120 00bc 0F93 push r16
  124. 121 00be 1F93 push r17
  125. 122 00c0 CF93 push r28
  126. 123 00c2 DF93 push r29
  127. 124 00c4 CDB7 in r28,__SP_L__
  128. 125 00c6 DEB7 in r29,__SP_H__
  129. 126 00c8 2297 sbiw r28,2
  130. 127 00ca 0FB6 in __tmp_reg__,__SREG__
  131. 128 00cc F894 cli
  132. 129 00ce DEBF out __SP_H__,r29
  133. 130 00d0 0FBE out __SREG__,__tmp_reg__
  134. 131 00d2 CDBF out __SP_L__,r28
  135. 132 /* prologue end (size=18) */
  136. 133 00d4 9B01 movw r18,r22
  137. 134 00d6 5A01 movw r10,r20
  138. 135 00d8 1982 std Y+1,__zero_reg__
  139. 136 00da 8A83 std Y+2,r24
  140. 137 00dc CC24 clr r12
  141. 138 00de DD24 clr r13
  142. 139 00e0 7601 movw r14,r12
  143. 140 00e2 8A01 movw r16,r20
  144. 141 00e4 42E0 ldi r20,lo8(2)
  145. 142 00e6 50E0 ldi r21,hi8(2)
  146. 143 00e8 BE01 movw r22,r28
  147. 144 00ea 6F5F subi r22,lo8(-(1))
  148. 145 00ec 7F4F sbci r23,hi8(-(1))
  149. 146 00ee 8FE6 ldi r24,lo8(111)
  150. 147 00f0 0E94 0000 call TwMasterTransact
  151. 148 00f4 8A15 cp r24,r10
  152. 149 00f6 9B05 cpc r25,r11
  153. 150 00f8 01F4 brne .L9
  154. 151 00fa 80E0 ldi r24,lo8(0)
  155. 152 00fc 90E0 ldi r25,hi8(0)
  156. 153 00fe 00C0 rjmp .L11
  157. 154 .L9:
  158. 155 0100 8FEF ldi r24,lo8(-1)
  159. 156 0102 9FEF ldi r25,hi8(-1)
  160. 157 .L11:
  161. 158 /* epilogue: frame size=2 */
  162. 159 0104 2296 adiw r28,2
  163. 160 0106 0FB6 in __tmp_reg__,__SREG__
  164. 161 0108 F894 cli
  165. 162 010a DEBF out __SP_H__,r29
  166. 163 010c 0FBE out __SREG__,__tmp_reg__
  167. 164 010e CDBF out __SP_L__,r28
  168. 165 0110 DF91 pop r29
  169. 166 0112 CF91 pop r28
  170. 167 0114 1F91 pop r17
  171. 168 0116 0F91 pop r16
  172. 169 0118 FF90 pop r15
  173. 170 011a EF90 pop r14
  174. 171 011c DF90 pop r13
  175. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 4
  176. 172 011e CF90 pop r12
  177. 173 0120 BF90 pop r11
  178. 174 0122 AF90 pop r10
  179. 175 0124 0895 ret
  180. 176 /* epilogue end (size=17) */
  181. 177 /* function X12RtcReadRegs size 59 (24) */
  182. 178 .size X12RtcReadRegs, .-X12RtcReadRegs
  183. 179 .global X12RtcGetStatus
  184. 180 .type X12RtcGetStatus, @function
  185. 181 X12RtcGetStatus:
  186. 182 /* prologue: frame size=1 */
  187. 183 0126 0F93 push r16
  188. 184 0128 1F93 push r17
  189. 185 012a CF93 push r28
  190. 186 012c DF93 push r29
  191. 187 012e CDB7 in r28,__SP_L__
  192. 188 0130 DEB7 in r29,__SP_H__
  193. 189 0132 2197 sbiw r28,1
  194. 190 0134 0FB6 in __tmp_reg__,__SREG__
  195. 191 0136 F894 cli
  196. 192 0138 DEBF out __SP_H__,r29
  197. 193 013a 0FBE out __SREG__,__tmp_reg__
  198. 194 013c CDBF out __SP_L__,r28
  199. 195 /* prologue end (size=12) */
  200. 196 013e 8C01 movw r16,r24
  201. 197 0140 41E0 ldi r20,lo8(1)
  202. 198 0142 50E0 ldi r21,hi8(1)
  203. 199 0144 BE01 movw r22,r28
  204. 200 0146 6F5F subi r22,lo8(-(1))
  205. 201 0148 7F4F sbci r23,hi8(-(1))
  206. 202 014a 8FE3 ldi r24,lo8(63)
  207. 203 014c 0E94 0000 call X12RtcReadRegs
  208. 204 0150 892B or r24,r25
  209. 205 0152 01F4 brne .L14
  210. 206 0154 8981 ldd r24,Y+1
  211. 207 0156 9927 clr r25
  212. 208 0158 AA27 clr r26
  213. 209 015a BB27 clr r27
  214. 210 015c 2091 0000 lds r18,rtc_status
  215. 211 0160 3091 0000 lds r19,(rtc_status)+1
  216. 212 0164 4091 0000 lds r20,(rtc_status)+2
  217. 213 0168 5091 0000 lds r21,(rtc_status)+3
  218. 214 016c 822B or r24,r18
  219. 215 016e 932B or r25,r19
  220. 216 0170 A42B or r26,r20
  221. 217 0172 B52B or r27,r21
  222. 218 0174 8093 0000 sts rtc_status,r24
  223. 219 0178 9093 0000 sts (rtc_status)+1,r25
  224. 220 017c A093 0000 sts (rtc_status)+2,r26
  225. 221 0180 B093 0000 sts (rtc_status)+3,r27
  226. 222 0184 F801 movw r30,r16
  227. 223 0186 8083 st Z,r24
  228. 224 0188 9183 std Z+1,r25
  229. 225 018a A283 std Z+2,r26
  230. 226 018c B383 std Z+3,r27
  231. 227 .L14:
  232. 228 018e 8091 0000 lds r24,rtc_status
  233. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 5
  234. 229 0192 9091 0000 lds r25,(rtc_status)+1
  235. 230 /* epilogue: frame size=1 */
  236. 231 0196 2196 adiw r28,1
  237. 232 0198 0FB6 in __tmp_reg__,__SREG__
  238. 233 019a F894 cli
  239. 234 019c DEBF out __SP_H__,r29
  240. 235 019e 0FBE out __SREG__,__tmp_reg__
  241. 236 01a0 CDBF out __SP_L__,r28
  242. 237 01a2 DF91 pop r29
  243. 238 01a4 CF91 pop r28
  244. 239 01a6 1F91 pop r17
  245. 240 01a8 0F91 pop r16
  246. 241 01aa 0895 ret
  247. 242 /* epilogue end (size=11) */
  248. 243 /* function X12RtcGetStatus size 67 (44) */
  249. 244 .size X12RtcGetStatus, .-X12RtcGetStatus
  250. 245 .global X12Init
  251. 246 .type X12Init, @function
  252. 247 X12Init:
  253. 248 /* prologue: frame size=4 */
  254. 249 01ac CF93 push r28
  255. 250 01ae DF93 push r29
  256. 251 01b0 CDB7 in r28,__SP_L__
  257. 252 01b2 DEB7 in r29,__SP_H__
  258. 253 01b4 2497 sbiw r28,4
  259. 254 01b6 0FB6 in __tmp_reg__,__SREG__
  260. 255 01b8 F894 cli
  261. 256 01ba DEBF out __SP_H__,r29
  262. 257 01bc 0FBE out __SREG__,__tmp_reg__
  263. 258 01be CDBF out __SP_L__,r28
  264. 259 /* prologue end (size=10) */
  265. 260 01c0 80E0 ldi r24,lo8(0)
  266. 261 01c2 0E94 0000 call TwInit
  267. 262 01c6 0097 sbiw r24,0
  268. 263 01c8 01F4 brne .L18
  269. 264 01ca CE01 movw r24,r28
  270. 265 01cc 0196 adiw r24,1
  271. 266 01ce 0E94 0000 call X12RtcGetStatus
  272. 267 .L18:
  273. 268 /* epilogue: frame size=4 */
  274. 269 01d2 2496 adiw r28,4
  275. 270 01d4 0FB6 in __tmp_reg__,__SREG__
  276. 271 01d6 F894 cli
  277. 272 01d8 DEBF out __SP_H__,r29
  278. 273 01da 0FBE out __SREG__,__tmp_reg__
  279. 274 01dc CDBF out __SP_L__,r28
  280. 275 01de DF91 pop r29
  281. 276 01e0 CF91 pop r28
  282. 277 01e2 0895 ret
  283. 278 /* epilogue end (size=9) */
  284. 279 /* function X12Init size 28 (9) */
  285. 280 .size X12Init, .-X12Init
  286. 281 .global X12RtcGetClock
  287. 282 .type X12RtcGetClock, @function
  288. 283 X12RtcGetClock:
  289. 284 /* prologue: frame size=8 */
  290. 285 01e4 EF92 push r14
  291. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 6
  292. 286 01e6 FF92 push r15
  293. 287 01e8 0F93 push r16
  294. 288 01ea 1F93 push r17
  295. 289 01ec CF93 push r28
  296. 290 01ee DF93 push r29
  297. 291 01f0 CDB7 in r28,__SP_L__
  298. 292 01f2 DEB7 in r29,__SP_H__
  299. 293 01f4 2897 sbiw r28,8
  300. 294 01f6 0FB6 in __tmp_reg__,__SREG__
  301. 295 01f8 F894 cli
  302. 296 01fa DEBF out __SP_H__,r29
  303. 297 01fc 0FBE out __SREG__,__tmp_reg__
  304. 298 01fe CDBF out __SP_L__,r28
  305. 299 /* prologue end (size=14) */
  306. 300 0200 8C01 movw r16,r24
  307. 301 0202 48E0 ldi r20,lo8(8)
  308. 302 0204 50E0 ldi r21,hi8(8)
  309. 303 0206 BE01 movw r22,r28
  310. 304 0208 6F5F subi r22,lo8(-(1))
  311. 305 020a 7F4F sbci r23,hi8(-(1))
  312. 306 020c 80E3 ldi r24,lo8(48)
  313. 307 020e 0E94 0000 call X12RtcReadRegs
  314. 308 0212 7C01 movw r14,r24
  315. 309 0214 892B or r24,r25
  316. 310 0216 01F0 breq .+2
  317. 311 0218 00C0 rjmp .L22
  318. 312 021a 2981 ldd r18,Y+1
  319. 313 021c 822F mov r24,r18
  320. 314 021e 8295 swap r24
  321. 315 0220 8F70 andi r24,0x0f
  322. 316 0222 6AE0 ldi r22,lo8(10)
  323. 317 0224 869F mul r24,r22
  324. 318 0226 C001 movw r24,r0
  325. 319 0228 1124 clr r1
  326. 320 022a 2F70 andi r18,lo8(15)
  327. 321 022c 820F add r24,r18
  328. 322 022e 911D adc r25,__zero_reg__
  329. 323 0230 D801 movw r26,r16
  330. 324 0232 8D93 st X+,r24
  331. 325 0234 9C93 st X,r25
  332. 326 0236 2A81 ldd r18,Y+2
  333. 327 0238 822F mov r24,r18
  334. 328 023a 8295 swap r24
  335. 329 023c 8F70 andi r24,0x0f
  336. 330 023e 869F mul r24,r22
  337. 331 0240 C001 movw r24,r0
  338. 332 0242 1124 clr r1
  339. 333 0244 2F70 andi r18,lo8(15)
  340. 334 0246 820F add r24,r18
  341. 335 0248 911D adc r25,__zero_reg__
  342. 336 024a F801 movw r30,r16
  343. 337 024c 9383 std Z+3,r25
  344. 338 024e 8283 std Z+2,r24
  345. 339 0250 2B81 ldd r18,Y+3
  346. 340 0252 3327 clr r19
  347. 341 0254 C901 movw r24,r18
  348. 342 0256 8F73 andi r24,lo8(63)
  349. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 7
  350. 343 0258 9070 andi r25,hi8(63)
  351. 344 025a B4E0 ldi r27,4
  352. 345 025c 9595 1: asr r25
  353. 346 025e 8795 ror r24
  354. 347 0260 BA95 dec r27
  355. 348 0262 01F4 brne 1b
  356. 349 0264 AC01 movw r20,r24
  357. 350 0266 A3E0 ldi r26,3
  358. 351 0268 440F 1: lsl r20
  359. 352 026a 551F rol r21
  360. 353 026c AA95 dec r26
  361. 354 026e 01F4 brne 1b
  362. 355 0270 880F lsl r24
  363. 356 0272 991F rol r25
  364. 357 0274 840F add r24,r20
  365. 358 0276 951F adc r25,r21
  366. 359 0278 2F70 andi r18,lo8(15)
  367. 360 027a 3070 andi r19,hi8(15)
  368. 361 027c 820F add r24,r18
  369. 362 027e 931F adc r25,r19
  370. 363 0280 9583 std Z+5,r25
  371. 364 0282 8483 std Z+4,r24
  372. 365 0284 2C81 ldd r18,Y+4
  373. 366 0286 822F mov r24,r18
  374. 367 0288 8295 swap r24
  375. 368 028a 8F70 andi r24,0x0f
  376. 369 028c 869F mul r24,r22
  377. 370 028e C001 movw r24,r0
  378. 371 0290 1124 clr r1
  379. 372 0292 2F70 andi r18,lo8(15)
  380. 373 0294 820F add r24,r18
  381. 374 0296 911D adc r25,__zero_reg__
  382. 375 0298 9783 std Z+7,r25
  383. 376 029a 8683 std Z+6,r24
  384. 377 029c 2D81 ldd r18,Y+5
  385. 378 029e 822F mov r24,r18
  386. 379 02a0 8295 swap r24
  387. 380 02a2 8F70 andi r24,0x0f
  388. 381 02a4 869F mul r24,r22
  389. 382 02a6 C001 movw r24,r0
  390. 383 02a8 1124 clr r1
  391. 384 02aa 2F70 andi r18,lo8(15)
  392. 385 02ac 820F add r24,r18
  393. 386 02ae 911D adc r25,__zero_reg__
  394. 387 02b0 0197 sbiw r24,1
  395. 388 02b2 9187 std Z+9,r25
  396. 389 02b4 8087 std Z+8,r24
  397. 390 02b6 8E81 ldd r24,Y+6
  398. 391 02b8 282F mov r18,r24
  399. 392 02ba 2295 swap r18
  400. 393 02bc 2F70 andi r18,0x0f
  401. 394 02be 269F mul r18,r22
  402. 395 02c0 A001 movw r20,r0
  403. 396 02c2 1124 clr r1
  404. 397 02c4 9927 clr r25
  405. 398 02c6 8F70 andi r24,lo8(15)
  406. 399 02c8 9070 andi r25,hi8(15)
  407. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 8
  408. 400 02ca 8C59 subi r24,lo8(-(100))
  409. 401 02cc 9F4F sbci r25,hi8(-(100))
  410. 402 02ce 480F add r20,r24
  411. 403 02d0 591F adc r21,r25
  412. 404 02d2 5387 std Z+11,r21
  413. 405 02d4 4287 std Z+10,r20
  414. 406 02d6 2885 ldd r18,Y+8
  415. 407 02d8 822F mov r24,r18
  416. 408 02da 8295 swap r24
  417. 409 02dc 8F70 andi r24,0x0f
  418. 410 02de 869F mul r24,r22
  419. 411 02e0 C001 movw r24,r0
  420. 412 02e2 1124 clr r1
  421. 413 02e4 2F70 andi r18,lo8(15)
  422. 414 02e6 820F add r24,r18
  423. 415 02e8 911D adc r25,__zero_reg__
  424. 416 02ea 4A97 sbiw r24,26
  425. 417 02ec 04F0 brlt .L24
  426. 418 02ee 4C59 subi r20,lo8(-(100))
  427. 419 02f0 5F4F sbci r21,hi8(-(100))
  428. 420 02f2 5387 std Z+11,r21
  429. 421 02f4 4287 std Z+10,r20
  430. 422 .L24:
  431. 423 02f6 8F81 ldd r24,Y+7
  432. 424 02f8 9927 clr r25
  433. 425 02fa F801 movw r30,r16
  434. 426 02fc 9587 std Z+13,r25
  435. 427 02fe 8487 std Z+12,r24
  436. 428 .L22:
  437. 429 0300 C701 movw r24,r14
  438. 430 /* epilogue: frame size=8 */
  439. 431 0302 2896 adiw r28,8
  440. 432 0304 0FB6 in __tmp_reg__,__SREG__
  441. 433 0306 F894 cli
  442. 434 0308 DEBF out __SP_H__,r29
  443. 435 030a 0FBE out __SREG__,__tmp_reg__
  444. 436 030c CDBF out __SP_L__,r28
  445. 437 030e DF91 pop r29
  446. 438 0310 CF91 pop r28
  447. 439 0312 1F91 pop r17
  448. 440 0314 0F91 pop r16
  449. 441 0316 FF90 pop r15
  450. 442 0318 EF90 pop r14
  451. 443 031a 0895 ret
  452. 444 /* epilogue end (size=13) */
  453. 445 /* function X12RtcGetClock size 157 (130) */
  454. 446 .size X12RtcGetClock, .-X12RtcGetClock
  455. 447 .type X12WriteEnable, @function
  456. 448 X12WriteEnable:
  457. 449 /* prologue: frame size=3 */
  458. 450 031c AF92 push r10
  459. 451 031e BF92 push r11
  460. 452 0320 CF92 push r12
  461. 453 0322 DF92 push r13
  462. 454 0324 EF92 push r14
  463. 455 0326 FF92 push r15
  464. 456 0328 0F93 push r16
  465. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 9
  466. 457 032a 1F93 push r17
  467. 458 032c CF93 push r28
  468. 459 032e DF93 push r29
  469. 460 0330 CDB7 in r28,__SP_L__
  470. 461 0332 DEB7 in r29,__SP_H__
  471. 462 0334 2397 sbiw r28,3
  472. 463 0336 0FB6 in __tmp_reg__,__SREG__
  473. 464 0338 F894 cli
  474. 465 033a DEBF out __SP_H__,r29
  475. 466 033c 0FBE out __SREG__,__tmp_reg__
  476. 467 033e CDBF out __SP_L__,r28
  477. 468 /* prologue end (size=18) */
  478. 469 0340 1982 std Y+1,__zero_reg__
  479. 470 0342 2FE3 ldi r18,lo8(63)
  480. 471 0344 2A83 std Y+2,r18
  481. 472 0346 5E01 movw r10,r28
  482. 473 0348 0894 sec
  483. 474 034a A11C adc r10,__zero_reg__
  484. 475 034c B11C adc r11,__zero_reg__
  485. 476 034e 892B or r24,r25
  486. 477 0350 01F0 breq .L28
  487. 478 0352 82E0 ldi r24,lo8(2)
  488. 479 0354 8B83 std Y+3,r24
  489. 480 0356 CC24 clr r12
  490. 481 0358 DD24 clr r13
  491. 482 035a 7601 movw r14,r12
  492. 483 035c 00E0 ldi r16,lo8(0)
  493. 484 035e 10E0 ldi r17,hi8(0)
  494. 485 0360 20E0 ldi r18,lo8(0)
  495. 486 0362 30E0 ldi r19,hi8(0)
  496. 487 0364 43E0 ldi r20,lo8(3)
  497. 488 0366 50E0 ldi r21,hi8(3)
  498. 489 0368 B501 movw r22,r10
  499. 490 036a 8FE6 ldi r24,lo8(111)
  500. 491 036c 0E94 0000 call TwMasterTransact
  501. 492 0370 0097 sbiw r24,0
  502. 493 0372 01F4 brne .L30
  503. 494 0374 86E0 ldi r24,lo8(6)
  504. 495 0376 8B83 std Y+3,r24
  505. 496 0378 00C0 rjmp .L33
  506. 497 .L28:
  507. 498 037a 1B82 std Y+3,__zero_reg__
  508. 499 037c CC24 clr r12
  509. 500 037e DD24 clr r13
  510. 501 0380 7601 movw r14,r12
  511. 502 0382 00E0 ldi r16,lo8(0)
  512. 503 0384 10E0 ldi r17,hi8(0)
  513. 504 .L33:
  514. 505 0386 20E0 ldi r18,lo8(0)
  515. 506 0388 30E0 ldi r19,hi8(0)
  516. 507 038a 43E0 ldi r20,lo8(3)
  517. 508 038c 50E0 ldi r21,hi8(3)
  518. 509 038e B501 movw r22,r10
  519. 510 0390 8FE6 ldi r24,lo8(111)
  520. 511 0392 0E94 0000 call TwMasterTransact
  521. 512 .L30:
  522. 513 /* epilogue: frame size=3 */
  523. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 10
  524. 514 0396 2396 adiw r28,3
  525. 515 0398 0FB6 in __tmp_reg__,__SREG__
  526. 516 039a F894 cli
  527. 517 039c DEBF out __SP_H__,r29
  528. 518 039e 0FBE out __SREG__,__tmp_reg__
  529. 519 03a0 CDBF out __SP_L__,r28
  530. 520 03a2 DF91 pop r29
  531. 521 03a4 CF91 pop r28
  532. 522 03a6 1F91 pop r17
  533. 523 03a8 0F91 pop r16
  534. 524 03aa FF90 pop r15
  535. 525 03ac EF90 pop r14
  536. 526 03ae DF90 pop r13
  537. 527 03b0 CF90 pop r12
  538. 528 03b2 BF90 pop r11
  539. 529 03b4 AF90 pop r10
  540. 530 03b6 0895 ret
  541. 531 /* epilogue end (size=17) */
  542. 532 /* function X12WriteEnable size 78 (43) */
  543. 533 .size X12WriteEnable, .-X12WriteEnable
  544. 534 .type X12WaitReady, @function
  545. 535 X12WaitReady:
  546. 536 /* prologue: frame size=1 */
  547. 537 03b8 AF92 push r10
  548. 538 03ba BF92 push r11
  549. 539 03bc CF92 push r12
  550. 540 03be DF92 push r13
  551. 541 03c0 EF92 push r14
  552. 542 03c2 FF92 push r15
  553. 543 03c4 0F93 push r16
  554. 544 03c6 1F93 push r17
  555. 545 03c8 CF93 push r28
  556. 546 03ca DF93 push r29
  557. 547 03cc CDB7 in r28,__SP_L__
  558. 548 03ce DEB7 in r29,__SP_H__
  559. 549 03d0 2197 sbiw r28,1
  560. 550 03d2 0FB6 in __tmp_reg__,__SREG__
  561. 551 03d4 F894 cli
  562. 552 03d6 DEBF out __SP_H__,r29
  563. 553 03d8 0FBE out __SREG__,__tmp_reg__
  564. 554 03da CDBF out __SP_L__,r28
  565. 555 /* prologue end (size=18) */
  566. 556 03dc 13E1 ldi r17,lo8(19)
  567. 557 03de A12E mov r10,r17
  568. 558 03e0 B12C mov r11,__zero_reg__
  569. 559 03e2 00C0 rjmp .L35
  570. 560 .L36:
  571. 561 03e4 61E0 ldi r22,lo8(1)
  572. 562 03e6 70E0 ldi r23,hi8(1)
  573. 563 03e8 80E0 ldi r24,hlo8(1)
  574. 564 03ea 90E0 ldi r25,hhi8(1)
  575. 565 03ec 0E94 0000 call NutSleep
  576. 566 03f0 0894 sec
  577. 567 03f2 A108 sbc r10,__zero_reg__
  578. 568 03f4 B108 sbc r11,__zero_reg__
  579. 569 03f6 A114 cp r10,__zero_reg__
  580. 570 03f8 B104 cpc r11,__zero_reg__
  581. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 11
  582. 571 03fa 01F4 brne .L35
  583. 572 03fc 8FEF ldi r24,lo8(-1)
  584. 573 03fe 9FEF ldi r25,hi8(-1)
  585. 574 0400 00C0 rjmp .L38
  586. 575 .L35:
  587. 576 0402 CC24 clr r12
  588. 577 0404 DD24 clr r13
  589. 578 0406 7601 movw r14,r12
  590. 579 0408 01E0 ldi r16,lo8(1)
  591. 580 040a 10E0 ldi r17,hi8(1)
  592. 581 040c 9E01 movw r18,r28
  593. 582 040e 2F5F subi r18,lo8(-(1))
  594. 583 0410 3F4F sbci r19,hi8(-(1))
  595. 584 0412 40E0 ldi r20,lo8(0)
  596. 585 0414 50E0 ldi r21,hi8(0)
  597. 586 0416 60E0 ldi r22,lo8(0)
  598. 587 0418 70E0 ldi r23,hi8(0)
  599. 588 041a 87E5 ldi r24,lo8(87)
  600. 589 041c 0E94 0000 call TwMasterTransact
  601. 590 0420 8F5F subi r24,lo8(-1)
  602. 591 0422 9F4F sbci r25,hi8(-1)
  603. 592 0424 01F0 breq .L36
  604. 593 0426 80E0 ldi r24,lo8(0)
  605. 594 0428 90E0 ldi r25,hi8(0)
  606. 595 .L38:
  607. 596 /* epilogue: frame size=1 */
  608. 597 042a 2196 adiw r28,1
  609. 598 042c 0FB6 in __tmp_reg__,__SREG__
  610. 599 042e F894 cli
  611. 600 0430 DEBF out __SP_H__,r29
  612. 601 0432 0FBE out __SREG__,__tmp_reg__
  613. 602 0434 CDBF out __SP_L__,r28
  614. 603 0436 DF91 pop r29
  615. 604 0438 CF91 pop r28
  616. 605 043a 1F91 pop r17
  617. 606 043c 0F91 pop r16
  618. 607 043e FF90 pop r15
  619. 608 0440 EF90 pop r14
  620. 609 0442 DF90 pop r13
  621. 610 0444 CF90 pop r12
  622. 611 0446 BF90 pop r11
  623. 612 0448 AF90 pop r10
  624. 613 044a 0895 ret
  625. 614 /* epilogue end (size=17) */
  626. 615 /* function X12WaitReady size 75 (40) */
  627. 616 .size X12WaitReady, .-X12WaitReady
  628. 617 .global X12EepromWrite
  629. 618 .type X12EepromWrite, @function
  630. 619 X12EepromWrite:
  631. 620 /* prologue: frame size=0 */
  632. 621 044c 2F92 push r2
  633. 622 044e 3F92 push r3
  634. 623 0450 4F92 push r4
  635. 624 0452 5F92 push r5
  636. 625 0454 6F92 push r6
  637. 626 0456 7F92 push r7
  638. 627 0458 8F92 push r8
  639. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 12
  640. 628 045a 9F92 push r9
  641. 629 045c AF92 push r10
  642. 630 045e BF92 push r11
  643. 631 0460 CF92 push r12
  644. 632 0462 DF92 push r13
  645. 633 0464 EF92 push r14
  646. 634 0466 FF92 push r15
  647. 635 0468 0F93 push r16
  648. 636 046a 1F93 push r17
  649. 637 046c CF93 push r28
  650. 638 046e DF93 push r29
  651. 639 /* prologue end (size=18) */
  652. 640 0470 3C01 movw r6,r24
  653. 641 0472 4A01 movw r8,r20
  654. 642 0474 2B01 movw r4,r22
  655. 643 0476 00E0 ldi r16,lo8(0)
  656. 644 0478 10E0 ldi r17,hi8(0)
  657. 645 047a 00C0 rjmp .L44
  658. 646 .L45:
  659. 647 047c C301 movw r24,r6
  660. 648 047e 8F73 andi r24,lo8(63)
  661. 649 0480 9070 andi r25,hi8(63)
  662. 650 0482 20E4 ldi r18,lo8(64)
  663. 651 0484 30E0 ldi r19,hi8(64)
  664. 652 0486 281B sub r18,r24
  665. 653 0488 390B sbc r19,r25
  666. 654 048a 5401 movw r10,r8
  667. 655 048c 2815 cp r18,r8
  668. 656 048e 3905 cpc r19,r9
  669. 657 0490 00F4 brsh .L46
  670. 658 0492 5901 movw r10,r18
  671. 659 .L46:
  672. 660 0494 82E0 ldi r24,lo8(2)
  673. 661 0496 282E mov r2,r24
  674. 662 0498 312C mov r3,__zero_reg__
  675. 663 049a 2A0C add r2,r10
  676. 664 049c 3B1C adc r3,r11
  677. 665 049e C101 movw r24,r2
  678. 666 04a0 0E94 0000 call malloc
  679. 667 04a4 EC01 movw r28,r24
  680. 668 04a6 892B or r24,r25
  681. 669 04a8 01F0 breq .L56
  682. 670 04aa 872D mov r24,r7
  683. 671 04ac 9927 clr r25
  684. 672 04ae 8883 st Y,r24
  685. 673 04b0 6982 std Y+1,r6
  686. 674 04b2 A501 movw r20,r10
  687. 675 04b4 B201 movw r22,r4
  688. 676 04b6 CE01 movw r24,r28
  689. 677 04b8 0296 adiw r24,2
  690. 678 04ba 0E94 0000 call memcpy
  691. 679 04be 81E0 ldi r24,lo8(1)
  692. 680 04c0 90E0 ldi r25,hi8(1)
  693. 681 04c2 0E94 0000 call X12WriteEnable
  694. 682 04c6 8C01 movw r16,r24
  695. 683 04c8 892B or r24,r25
  696. 684 04ca 01F4 brne .L51
  697. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 13
  698. 685 04cc CC24 clr r12
  699. 686 04ce DD24 clr r13
  700. 687 04d0 7601 movw r14,r12
  701. 688 04d2 00E0 ldi r16,lo8(0)
  702. 689 04d4 10E0 ldi r17,hi8(0)
  703. 690 04d6 20E0 ldi r18,lo8(0)
  704. 691 04d8 30E0 ldi r19,hi8(0)
  705. 692 04da A101 movw r20,r2
  706. 693 04dc BE01 movw r22,r28
  707. 694 04de 87E5 ldi r24,lo8(87)
  708. 695 04e0 0E94 0000 call TwMasterTransact
  709. 696 04e4 8C01 movw r16,r24
  710. 697 04e6 CE01 movw r24,r28
  711. 698 04e8 0E94 0000 call free
  712. 699 04ec 0115 cp r16,__zero_reg__
  713. 700 04ee 1105 cpc r17,__zero_reg__
  714. 701 04f0 01F4 brne .L49
  715. 702 04f2 0E94 0000 call X12WaitReady
  716. 703 04f6 8C01 movw r16,r24
  717. 704 04f8 892B or r24,r25
  718. 705 04fa 01F4 brne .L49
  719. 706 04fc 8A18 sub r8,r10
  720. 707 04fe 9B08 sbc r9,r11
  721. 708 0500 6A0C add r6,r10
  722. 709 0502 7B1C adc r7,r11
  723. 710 0504 4A0C add r4,r10
  724. 711 0506 5B1C adc r5,r11
  725. 712 .L44:
  726. 713 0508 8114 cp r8,__zero_reg__
  727. 714 050a 9104 cpc r9,__zero_reg__
  728. 715 050c 01F0 breq .+2
  729. 716 050e 00C0 rjmp .L45
  730. 717 0510 00C0 rjmp .L49
  731. 718 .L56:
  732. 719 0512 0FEF ldi r16,lo8(-1)
  733. 720 0514 1FEF ldi r17,hi8(-1)
  734. 721 0516 00C0 rjmp .L49
  735. 722 .L51:
  736. 723 0518 CE01 movw r24,r28
  737. 724 051a 0E94 0000 call free
  738. 725 .L49:
  739. 726 051e 80E0 ldi r24,lo8(0)
  740. 727 0520 90E0 ldi r25,hi8(0)
  741. 728 0522 0E94 0000 call X12WriteEnable
  742. 729 0526 C801 movw r24,r16
  743. 730 /* epilogue: frame size=0 */
  744. 731 0528 DF91 pop r29
  745. 732 052a CF91 pop r28
  746. 733 052c 1F91 pop r17
  747. 734 052e 0F91 pop r16
  748. 735 0530 FF90 pop r15
  749. 736 0532 EF90 pop r14
  750. 737 0534 DF90 pop r13
  751. 738 0536 CF90 pop r12
  752. 739 0538 BF90 pop r11
  753. 740 053a AF90 pop r10
  754. 741 053c 9F90 pop r9
  755. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 14
  756. 742 053e 8F90 pop r8
  757. 743 0540 7F90 pop r7
  758. 744 0542 6F90 pop r6
  759. 745 0544 5F90 pop r5
  760. 746 0546 4F90 pop r4
  761. 747 0548 3F90 pop r3
  762. 748 054a 2F90 pop r2
  763. 749 054c 0895 ret
  764. 750 /* epilogue end (size=19) */
  765. 751 /* function X12EepromWrite size 129 (92) */
  766. 752 .size X12EepromWrite, .-X12EepromWrite
  767. 753 .global X12RtcWrite
  768. 754 .type X12RtcWrite, @function
  769. 755 X12RtcWrite:
  770. 756 /* prologue: frame size=0 */
  771. 757 054e 8F92 push r8
  772. 758 0550 9F92 push r9
  773. 759 0552 AF92 push r10
  774. 760 0554 BF92 push r11
  775. 761 0556 CF92 push r12
  776. 762 0558 DF92 push r13
  777. 763 055a EF92 push r14
  778. 764 055c FF92 push r15
  779. 765 055e 0F93 push r16
  780. 766 0560 1F93 push r17
  781. 767 0562 CF93 push r28
  782. 768 0564 DF93 push r29
  783. 769 /* prologue end (size=12) */
  784. 770 0566 4C01 movw r8,r24
  785. 771 0568 5B01 movw r10,r22
  786. 772 056a EA01 movw r28,r20
  787. 773 056c 81E0 ldi r24,lo8(1)
  788. 774 056e 90E0 ldi r25,hi8(1)
  789. 775 0570 0E94 0000 call X12WriteEnable
  790. 776 0574 8C01 movw r16,r24
  791. 777 0576 892B or r24,r25
  792. 778 0578 01F4 brne .L58
  793. 779 057a CC24 clr r12
  794. 780 057c DD24 clr r13
  795. 781 057e 7601 movw r14,r12
  796. 782 0580 00E0 ldi r16,lo8(0)
  797. 783 0582 10E0 ldi r17,hi8(0)
  798. 784 0584 20E0 ldi r18,lo8(0)
  799. 785 0586 30E0 ldi r19,hi8(0)
  800. 786 0588 AE01 movw r20,r28
  801. 787 058a B501 movw r22,r10
  802. 788 058c 8FE6 ldi r24,lo8(111)
  803. 789 058e 0E94 0000 call TwMasterTransact
  804. 790 0592 8C01 movw r16,r24
  805. 791 0594 892B or r24,r25
  806. 792 0596 01F4 brne .L60
  807. 793 0598 8928 or r8,r9
  808. 794 059a 01F0 breq .L60
  809. 795 059c 0E94 0000 call X12WaitReady
  810. 796 05a0 8C01 movw r16,r24
  811. 797 .L60:
  812. 798 05a2 80E0 ldi r24,lo8(0)
  813. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 15
  814. 799 05a4 90E0 ldi r25,hi8(0)
  815. 800 05a6 0E94 0000 call X12WriteEnable
  816. 801 .L58:
  817. 802 05aa C801 movw r24,r16
  818. 803 /* epilogue: frame size=0 */
  819. 804 05ac DF91 pop r29
  820. 805 05ae CF91 pop r28
  821. 806 05b0 1F91 pop r17
  822. 807 05b2 0F91 pop r16
  823. 808 05b4 FF90 pop r15
  824. 809 05b6 EF90 pop r14
  825. 810 05b8 DF90 pop r13
  826. 811 05ba CF90 pop r12
  827. 812 05bc BF90 pop r11
  828. 813 05be AF90 pop r10
  829. 814 05c0 9F90 pop r9
  830. 815 05c2 8F90 pop r8
  831. 816 05c4 0895 ret
  832. 817 /* epilogue end (size=13) */
  833. 818 /* function X12RtcWrite size 60 (35) */
  834. 819 .size X12RtcWrite, .-X12RtcWrite
  835. 820 .global X12RtcSetAlarm
  836. 821 .type X12RtcSetAlarm, @function
  837. 822 X12RtcSetAlarm:
  838. 823 /* prologue: frame size=10 */
  839. 824 05c6 EF92 push r14
  840. 825 05c8 FF92 push r15
  841. 826 05ca 0F93 push r16
  842. 827 05cc 1F93 push r17
  843. 828 05ce CF93 push r28
  844. 829 05d0 DF93 push r29
  845. 830 05d2 CDB7 in r28,__SP_L__
  846. 831 05d4 DEB7 in r29,__SP_H__
  847. 832 05d6 2A97 sbiw r28,10
  848. 833 05d8 0FB6 in __tmp_reg__,__SREG__
  849. 834 05da F894 cli
  850. 835 05dc DEBF out __SP_H__,r29
  851. 836 05de 0FBE out __SREG__,__tmp_reg__
  852. 837 05e0 CDBF out __SP_L__,r28
  853. 838 /* prologue end (size=14) */
  854. 839 05e2 8B01 movw r16,r22
  855. 840 05e4 7A01 movw r14,r20
  856. 841 05e6 2AE0 ldi r18,lo8(10)
  857. 842 05e8 FE01 movw r30,r28
  858. 843 05ea 3196 adiw r30,1
  859. 844 05ec 1192 st Z+,__zero_reg__
  860. 845 05ee 2A95 dec r18
  861. 846 05f0 01F4 brne .-6
  862. 847 05f2 23E0 ldi r18,3
  863. 848 05f4 880F 1: lsl r24
  864. 849 05f6 991F rol r25
  865. 850 05f8 2A95 dec r18
  866. 851 05fa 01F4 brne 1b
  867. 852 05fc 8A83 std Y+2,r24
  868. 853 05fe 6115 cp r22,__zero_reg__
  869. 854 0600 7105 cpc r23,__zero_reg__
  870. 855 0602 01F4 brne .+2
  871. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 16
  872. 856 0604 00C0 rjmp .L65
  873. 857 0606 40FF sbrs r20,0
  874. 858 0608 00C0 rjmp .L67
  875. 859 060a FB01 movw r30,r22
  876. 860 060c 4081 ld r20,Z
  877. 861 060e 5181 ldd r21,Z+1
  878. 862 0610 842F mov r24,r20
  879. 863 0612 6AE0 ldi r22,lo8(10)
  880. 864 0614 0E94 0000 call __udivmodqi4
  881. 865 0618 282F mov r18,r24
  882. 866 061a 2295 swap r18
  883. 867 061c 207F andi r18,0xf0
  884. 868 061e CA01 movw r24,r20
  885. 869 0620 6AE0 ldi r22,lo8(10)
  886. 870 0622 70E0 ldi r23,hi8(10)
  887. 871 0624 0E94 0000 call __divmodhi4
  888. 872 0628 280F add r18,r24
  889. 873 062a 2068 ori r18,lo8(-128)
  890. 874 062c 2B83 std Y+3,r18
  891. 875 .L67:
  892. 876 062e E1FE sbrs r14,1
  893. 877 0630 00C0 rjmp .L69
  894. 878 0632 F801 movw r30,r16
  895. 879 0634 4281 ldd r20,Z+2
  896. 880 0636 5381 ldd r21,Z+3
  897. 881 0638 842F mov r24,r20
  898. 882 063a 6AE0 ldi r22,lo8(10)
  899. 883 063c 0E94 0000 call __udivmodqi4
  900. 884 0640 282F mov r18,r24
  901. 885 0642 2295 swap r18
  902. 886 0644 207F andi r18,0xf0
  903. 887 0646 CA01 movw r24,r20
  904. 888 0648 6AE0 ldi r22,lo8(10)
  905. 889 064a 70E0 ldi r23,hi8(10)
  906. 890 064c 0E94 0000 call __divmodhi4
  907. 891 0650 280F add r18,r24
  908. 892 0652 2068 ori r18,lo8(-128)
  909. 893 0654 2C83 std Y+4,r18
  910. 894 .L69:
  911. 895 0656 E2FE sbrs r14,2
  912. 896 0658 00C0 rjmp .L71
  913. 897 065a F801 movw r30,r16
  914. 898 065c 4481 ldd r20,Z+4
  915. 899 065e 5581 ldd r21,Z+5
  916. 900 0660 842F mov r24,r20
  917. 901 0662 6AE0 ldi r22,lo8(10)
  918. 902 0664 0E94 0000 call __udivmodqi4
  919. 903 0668 282F mov r18,r24
  920. 904 066a 2295 swap r18
  921. 905 066c 207F andi r18,0xf0
  922. 906 066e CA01 movw r24,r20
  923. 907 0670 6AE0 ldi r22,lo8(10)
  924. 908 0672 70E0 ldi r23,hi8(10)
  925. 909 0674 0E94 0000 call __divmodhi4
  926. 910 0678 280F add r18,r24
  927. 911 067a 2068 ori r18,lo8(-128)
  928. 912 067c 2D83 std Y+5,r18
  929. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 17
  930. 913 .L71:
  931. 914 067e E3FE sbrs r14,3
  932. 915 0680 00C0 rjmp .L73
  933. 916 0682 F801 movw r30,r16
  934. 917 0684 4681 ldd r20,Z+6
  935. 918 0686 5781 ldd r21,Z+7
  936. 919 0688 842F mov r24,r20
  937. 920 068a 6AE0 ldi r22,lo8(10)
  938. 921 068c 0E94 0000 call __udivmodqi4
  939. 922 0690 282F mov r18,r24
  940. 923 0692 2295 swap r18
  941. 924 0694 207F andi r18,0xf0
  942. 925 0696 CA01 movw r24,r20
  943. 926 0698 6AE0 ldi r22,lo8(10)
  944. 927 069a 70E0 ldi r23,hi8(10)
  945. 928 069c 0E94 0000 call __divmodhi4
  946. 929 06a0 280F add r18,r24
  947. 930 06a2 2068 ori r18,lo8(-128)
  948. 931 06a4 2E83 std Y+6,r18
  949. 932 .L73:
  950. 933 06a6 E4FE sbrs r14,4
  951. 934 06a8 00C0 rjmp .L75
  952. 935 06aa F801 movw r30,r16
  953. 936 06ac 4085 ldd r20,Z+8
  954. 937 06ae 5185 ldd r21,Z+9
  955. 938 06b0 842F mov r24,r20
  956. 939 06b2 8F5F subi r24,lo8(-(1))
  957. 940 06b4 6AE0 ldi r22,lo8(10)
  958. 941 06b6 0E94 0000 call __udivmodqi4
  959. 942 06ba 282F mov r18,r24
  960. 943 06bc 2295 swap r18
  961. 944 06be 207F andi r18,0xf0
  962. 945 06c0 CA01 movw r24,r20
  963. 946 06c2 0196 adiw r24,1
  964. 947 06c4 6AE0 ldi r22,lo8(10)
  965. 948 06c6 70E0 ldi r23,hi8(10)
  966. 949 06c8 0E94 0000 call __divmodhi4
  967. 950 06cc 280F add r18,r24
  968. 951 06ce 2068 ori r18,lo8(-128)
  969. 952 06d0 2F83 std Y+7,r18
  970. 953 .L75:
  971. 954 06d2 E7FE sbrs r14,7
  972. 955 06d4 00C0 rjmp .L65
  973. 956 06d6 F801 movw r30,r16
  974. 957 06d8 4485 ldd r20,Z+12
  975. 958 06da 5585 ldd r21,Z+13
  976. 959 06dc 842F mov r24,r20
  977. 960 06de 6AE0 ldi r22,lo8(10)
  978. 961 06e0 0E94 0000 call __udivmodqi4
  979. 962 06e4 282F mov r18,r24
  980. 963 06e6 2295 swap r18
  981. 964 06e8 207F andi r18,0xf0
  982. 965 06ea CA01 movw r24,r20
  983. 966 06ec 6AE0 ldi r22,lo8(10)
  984. 967 06ee 70E0 ldi r23,hi8(10)
  985. 968 06f0 0E94 0000 call __divmodhi4
  986. 969 06f4 280F add r18,r24
  987. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 18
  988. 970 06f6 2068 ori r18,lo8(-128)
  989. 971 06f8 2987 std Y+9,r18
  990. 972 .L65:
  991. 973 06fa 4AE0 ldi r20,lo8(10)
  992. 974 06fc 50E0 ldi r21,hi8(10)
  993. 975 06fe BE01 movw r22,r28
  994. 976 0700 6F5F subi r22,lo8(-(1))
  995. 977 0702 7F4F sbci r23,hi8(-(1))
  996. 978 0704 81E0 ldi r24,lo8(1)
  997. 979 0706 90E0 ldi r25,hi8(1)
  998. 980 0708 0E94 0000 call X12RtcWrite
  999. 981 /* epilogue: frame size=10 */
  1000. 982 070c 2A96 adiw r28,10
  1001. 983 070e 0FB6 in __tmp_reg__,__SREG__
  1002. 984 0710 F894 cli
  1003. 985 0712 DEBF out __SP_H__,r29
  1004. 986 0714 0FBE out __SREG__,__tmp_reg__
  1005. 987 0716 CDBF out __SP_L__,r28
  1006. 988 0718 DF91 pop r29
  1007. 989 071a CF91 pop r28
  1008. 990 071c 1F91 pop r17
  1009. 991 071e 0F91 pop r16
  1010. 992 0720 FF90 pop r15
  1011. 993 0722 EF90 pop r14
  1012. 994 0724 0895 ret
  1013. 995 /* epilogue end (size=13) */
  1014. 996 /* function X12RtcSetAlarm size 176 (149) */
  1015. 997 .size X12RtcSetAlarm, .-X12RtcSetAlarm
  1016. 998 .global X12RtcGetAlarm
  1017. 999 .type X12RtcGetAlarm, @function
  1018. 1000 X12RtcGetAlarm:
  1019. 1001 /* prologue: frame size=8 */
  1020. 1002 0726 EF92 push r14
  1021. 1003 0728 FF92 push r15
  1022. 1004 072a 0F93 push r16
  1023. 1005 072c 1F93 push r17
  1024. 1006 072e CF93 push r28
  1025. 1007 0730 DF93 push r29
  1026. 1008 0732 CDB7 in r28,__SP_L__
  1027. 1009 0734 DEB7 in r29,__SP_H__
  1028. 1010 0736 2897 sbiw r28,8
  1029. 1011 0738 0FB6 in __tmp_reg__,__SREG__
  1030. 1012 073a F894 cli
  1031. 1013 073c DEBF out __SP_H__,r29
  1032. 1014 073e 0FBE out __SREG__,__tmp_reg__
  1033. 1015 0740 CDBF out __SP_L__,r28
  1034. 1016 /* prologue end (size=14) */
  1035. 1017 0742 7B01 movw r14,r22
  1036. 1018 0744 8A01 movw r16,r20
  1037. 1019 0746 FA01 movw r30,r20
  1038. 1020 0748 1182 std Z+1,__zero_reg__
  1039. 1021 074a 1082 st Z,__zero_reg__
  1040. 1022 074c 92E1 ldi r25,lo8(18)
  1041. 1023 074e FB01 movw r30,r22
  1042. 1024 0750 1192 st Z+,__zero_reg__
  1043. 1025 0752 9A95 dec r25
  1044. 1026 0754 01F4 brne .-6
  1045. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 19
  1046. 1027 0756 48E0 ldi r20,lo8(8)
  1047. 1028 0758 50E0 ldi r21,hi8(8)
  1048. 1029 075a BE01 movw r22,r28
  1049. 1030 075c 6F5F subi r22,lo8(-(1))
  1050. 1031 075e 7F4F sbci r23,hi8(-(1))
  1051. 1032 0760 880F lsl r24
  1052. 1033 0762 880F lsl r24
  1053. 1034 0764 880F lsl r24
  1054. 1035 0766 0E94 0000 call X12RtcReadRegs
  1055. 1036 076a BC01 movw r22,r24
  1056. 1037 076c 892B or r24,r25
  1057. 1038 076e 01F0 breq .+2
  1058. 1039 0770 00C0 rjmp .L80
  1059. 1040 0772 2981 ldd r18,Y+1
  1060. 1041 0774 27FF sbrs r18,7
  1061. 1042 0776 00C0 rjmp .L82
  1062. 1043 0778 F801 movw r30,r16
  1063. 1044 077a 8081 ld r24,Z
  1064. 1045 077c 9181 ldd r25,Z+1
  1065. 1046 077e 8160 ori r24,lo8(1)
  1066. 1047 0780 9183 std Z+1,r25
  1067. 1048 0782 8083 st Z,r24
  1068. 1049 0784 3327 clr r19
  1069. 1050 0786 C901 movw r24,r18
  1070. 1051 0788 8F77 andi r24,lo8(127)
  1071. 1052 078a 9070 andi r25,hi8(127)
  1072. 1053 078c F4E0 ldi r31,4
  1073. 1054 078e 9595 1: asr r25
  1074. 1055 0790 8795 ror r24
  1075. 1056 0792 FA95 dec r31
  1076. 1057 0794 01F4 brne 1b
  1077. 1058 0796 AC01 movw r20,r24
  1078. 1059 0798 E3E0 ldi r30,3
  1079. 1060 079a 440F 1: lsl r20
  1080. 1061 079c 551F rol r21
  1081. 1062 079e EA95 dec r30
  1082. 1063 07a0 01F4 brne 1b
  1083. 1064 07a2 880F lsl r24
  1084. 1065 07a4 991F rol r25
  1085. 1066 07a6 840F add r24,r20
  1086. 1067 07a8 951F adc r25,r21
  1087. 1068 07aa 2F70 andi r18,lo8(15)
  1088. 1069 07ac 3070 andi r19,hi8(15)
  1089. 1070 07ae 820F add r24,r18
  1090. 1071 07b0 931F adc r25,r19
  1091. 1072 07b2 F701 movw r30,r14
  1092. 1073 07b4 9183 std Z+1,r25
  1093. 1074 07b6 8083 st Z,r24
  1094. 1075 .L82:
  1095. 1076 07b8 3A81 ldd r19,Y+2
  1096. 1077 07ba 37FF sbrs r19,7
  1097. 1078 07bc 00C0 rjmp .L84
  1098. 1079 07be F801 movw r30,r16
  1099. 1080 07c0 8081 ld r24,Z
  1100. 1081 07c2 9181 ldd r25,Z+1
  1101. 1082 07c4 8260 ori r24,lo8(2)
  1102. 1083 07c6 9183 std Z+1,r25
  1103. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 20
  1104. 1084 07c8 8083 st Z,r24
  1105. 1085 07ca 832F mov r24,r19
  1106. 1086 07cc 8295 swap r24
  1107. 1087 07ce 8F70 andi r24,0x0f
  1108. 1088 07d0 2AE0 ldi r18,lo8(10)
  1109. 1089 07d2 829F mul r24,r18
  1110. 1090 07d4 C001 movw r24,r0
  1111. 1091 07d6 1124 clr r1
  1112. 1092 07d8 3F70 andi r19,lo8(15)
  1113. 1093 07da 830F add r24,r19
  1114. 1094 07dc 911D adc r25,__zero_reg__
  1115. 1095 07de F701 movw r30,r14
  1116. 1096 07e0 9383 std Z+3,r25
  1117. 1097 07e2 8283 std Z+2,r24
  1118. 1098 .L84:
  1119. 1099 07e4 2B81 ldd r18,Y+3
  1120. 1100 07e6 27FF sbrs r18,7
  1121. 1101 07e8 00C0 rjmp .L86
  1122. 1102 07ea F801 movw r30,r16
  1123. 1103 07ec 8081 ld r24,Z
  1124. 1104 07ee 9181 ldd r25,Z+1
  1125. 1105 07f0 8460 ori r24,lo8(4)
  1126. 1106 07f2 9183 std Z+1,r25
  1127. 1107 07f4 8083 st Z,r24
  1128. 1108 07f6 3327 clr r19
  1129. 1109 07f8 C901 movw r24,r18
  1130. 1110 07fa 8F77 andi r24,lo8(127)
  1131. 1111 07fc 9070 andi r25,hi8(127)
  1132. 1112 07fe A4E0 ldi r26,4
  1133. 1113 0800 9595 1: asr r25
  1134. 1114 0802 8795 ror r24
  1135. 1115 0804 AA95 dec r26
  1136. 1116 0806 01F4 brne 1b
  1137. 1117 0808 AC01 movw r20,r24
  1138. 1118 080a F3E0 ldi r31,3
  1139. 1119 080c 440F 1: lsl r20
  1140. 1120 080e 551F rol r21
  1141. 1121 0810 FA95 dec r31
  1142. 1122 0812 01F4 brne 1b
  1143. 1123 0814 880F lsl r24
  1144. 1124 0816 991F rol r25
  1145. 1125 0818 840F add r24,r20
  1146. 1126 081a 951F adc r25,r21
  1147. 1127 081c 2F70 andi r18,lo8(15)
  1148. 1128 081e 3070 andi r19,hi8(15)
  1149. 1129 0820 820F add r24,r18
  1150. 1130 0822 931F adc r25,r19
  1151. 1131 0824 F701 movw r30,r14
  1152. 1132 0826 9583 std Z+5,r25
  1153. 1133 0828 8483 std Z+4,r24
  1154. 1134 .L86:
  1155. 1135 082a 3C81 ldd r19,Y+4
  1156. 1136 082c 37FF sbrs r19,7
  1157. 1137 082e 00C0 rjmp .L88
  1158. 1138 0830 F801 movw r30,r16
  1159. 1139 0832 8081 ld r24,Z
  1160. 1140 0834 9181 ldd r25,Z+1
  1161. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 21
  1162. 1141 0836 8860 ori r24,lo8(8)
  1163. 1142 0838 9183 std Z+1,r25
  1164. 1143 083a 8083 st Z,r24
  1165. 1144 083c 832F mov r24,r19
  1166. 1145 083e 8295 swap r24
  1167. 1146 0840 8F70 andi r24,0x0f
  1168. 1147 0842 2AE0 ldi r18,lo8(10)
  1169. 1148 0844 829F mul r24,r18
  1170. 1149 0846 C001 movw r24,r0
  1171. 1150 0848 1124 clr r1
  1172. 1151 084a 3F70 andi r19,lo8(15)
  1173. 1152 084c 830F add r24,r19
  1174. 1153 084e 911D adc r25,__zero_reg__
  1175. 1154 0850 F701 movw r30,r14
  1176. 1155 0852 9783 std Z+7,r25
  1177. 1156 0854 8683 std Z+6,r24
  1178. 1157 .L88:
  1179. 1158 0856 3D81 ldd r19,Y+5
  1180. 1159 0858 37FF sbrs r19,7
  1181. 1160 085a 00C0 rjmp .L90
  1182. 1161 085c F801 movw r30,r16
  1183. 1162 085e 8081 ld r24,Z
  1184. 1163 0860 9181 ldd r25,Z+1
  1185. 1164 0862 8061 ori r24,lo8(16)
  1186. 1165 0864 9183 std Z+1,r25
  1187. 1166 0866 8083 st Z,r24
  1188. 1167 0868 832F mov r24,r19
  1189. 1168 086a 8295 swap r24
  1190. 1169 086c 8F70 andi r24,0x0f
  1191. 1170 086e 2AE0 ldi r18,lo8(10)
  1192. 1171 0870 829F mul r24,r18
  1193. 1172 0872 C001 movw r24,r0
  1194. 1173 0874 1124 clr r1
  1195. 1174 0876 3F70 andi r19,lo8(15)
  1196. 1175 0878 830F add r24,r19
  1197. 1176 087a 911D adc r25,__zero_reg__
  1198. 1177 087c 0197 sbiw r24,1
  1199. 1178 087e F701 movw r30,r14
  1200. 1179 0880 9187 std Z+9,r25
  1201. 1180 0882 8087 std Z+8,r24
  1202. 1181 .L90:
  1203. 1182 0884 3F81 ldd r19,Y+7
  1204. 1183 0886 37FF sbrs r19,7
  1205. 1184 0888 00C0 rjmp .L80
  1206. 1185 088a F801 movw r30,r16
  1207. 1186 088c 8081 ld r24,Z
  1208. 1187 088e 9181 ldd r25,Z+1
  1209. 1188 0890 8068 ori r24,lo8(128)
  1210. 1189 0892 9183 std Z+1,r25
  1211. 1190 0894 8083 st Z,r24
  1212. 1191 0896 832F mov r24,r19
  1213. 1192 0898 8295 swap r24
  1214. 1193 089a 8F70 andi r24,0x0f
  1215. 1194 089c 2AE0 ldi r18,lo8(10)
  1216. 1195 089e 829F mul r24,r18
  1217. 1196 08a0 C001 movw r24,r0
  1218. 1197 08a2 1124 clr r1
  1219. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 22
  1220. 1198 08a4 3F70 andi r19,lo8(15)
  1221. 1199 08a6 830F add r24,r19
  1222. 1200 08a8 911D adc r25,__zero_reg__
  1223. 1201 08aa F701 movw r30,r14
  1224. 1202 08ac 9587 std Z+13,r25
  1225. 1203 08ae 8487 std Z+12,r24
  1226. 1204 .L80:
  1227. 1205 08b0 CB01 movw r24,r22
  1228. 1206 /* epilogue: frame size=8 */
  1229. 1207 08b2 2896 adiw r28,8
  1230. 1208 08b4 0FB6 in __tmp_reg__,__SREG__
  1231. 1209 08b6 F894 cli
  1232. 1210 08b8 DEBF out __SP_H__,r29
  1233. 1211 08ba 0FBE out __SREG__,__tmp_reg__
  1234. 1212 08bc CDBF out __SP_L__,r28
  1235. 1213 08be DF91 pop r29
  1236. 1214 08c0 CF91 pop r28
  1237. 1215 08c2 1F91 pop r17
  1238. 1216 08c4 0F91 pop r16
  1239. 1217 08c6 FF90 pop r15
  1240. 1218 08c8 EF90 pop r14
  1241. 1219 08ca 0895 ret
  1242. 1220 /* epilogue end (size=13) */
  1243. 1221 /* function X12RtcGetAlarm size 211 (184) */
  1244. 1222 .size X12RtcGetAlarm, .-X12RtcGetAlarm
  1245. 1223 .global X12RtcSetClock
  1246. 1224 .type X12RtcSetClock, @function
  1247. 1225 X12RtcSetClock:
  1248. 1226 /* prologue: frame size=10 */
  1249. 1227 08cc 0F93 push r16
  1250. 1228 08ce 1F93 push r17
  1251. 1229 08d0 CF93 push r28
  1252. 1230 08d2 DF93 push r29
  1253. 1231 08d4 CDB7 in r28,__SP_L__
  1254. 1232 08d6 DEB7 in r29,__SP_H__
  1255. 1233 08d8 2A97 sbiw r28,10
  1256. 1234 08da 0FB6 in __tmp_reg__,__SREG__
  1257. 1235 08dc F894 cli
  1258. 1236 08de DEBF out __SP_H__,r29
  1259. 1237 08e0 0FBE out __SREG__,__tmp_reg__
  1260. 1238 08e2 CDBF out __SP_L__,r28
  1261. 1239 /* prologue end (size=12) */
  1262. 1240 08e4 8C01 movw r16,r24
  1263. 1241 08e6 8AE0 ldi r24,lo8(10)
  1264. 1242 08e8 FE01 movw r30,r28
  1265. 1243 08ea 3196 adiw r30,1
  1266. 1244 08ec 1192 st Z+,__zero_reg__
  1267. 1245 08ee 8A95 dec r24
  1268. 1246 08f0 01F4 brne .-6
  1269. 1247 08f2 0115 cp r16,__zero_reg__
  1270. 1248 08f4 1105 cpc r17,__zero_reg__
  1271. 1249 08f6 01F4 brne .+2
  1272. 1250 08f8 00C0 rjmp .L95
  1273. 1251 08fa 80E3 ldi r24,lo8(48)
  1274. 1252 08fc 8A83 std Y+2,r24
  1275. 1253 08fe F801 movw r30,r16
  1276. 1254 0900 4081 ld r20,Z
  1277. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 23
  1278. 1255 0902 5181 ldd r21,Z+1
  1279. 1256 0904 842F mov r24,r20
  1280. 1257 0906 6AE0 ldi r22,lo8(10)
  1281. 1258 0908 0E94 0000 call __udivmodqi4
  1282. 1259 090c 282F mov r18,r24
  1283. 1260 090e 2295 swap r18
  1284. 1261 0910 207F andi r18,0xf0
  1285. 1262 0912 CA01 movw r24,r20
  1286. 1263 0914 6AE0 ldi r22,lo8(10)
  1287. 1264 0916 70E0 ldi r23,hi8(10)
  1288. 1265 0918 0E94 0000 call __divmodhi4
  1289. 1266 091c 280F add r18,r24
  1290. 1267 091e 2B83 std Y+3,r18
  1291. 1268 0920 4281 ldd r20,Z+2
  1292. 1269 0922 5381 ldd r21,Z+3
  1293. 1270 0924 842F mov r24,r20
  1294. 1271 0926 6AE0 ldi r22,lo8(10)
  1295. 1272 0928 0E94 0000 call __udivmodqi4
  1296. 1273 092c 282F mov r18,r24
  1297. 1274 092e 2295 swap r18
  1298. 1275 0930 207F andi r18,0xf0
  1299. 1276 0932 CA01 movw r24,r20
  1300. 1277 0934 6AE0 ldi r22,lo8(10)
  1301. 1278 0936 70E0 ldi r23,hi8(10)
  1302. 1279 0938 0E94 0000 call __divmodhi4
  1303. 1280 093c 280F add r18,r24
  1304. 1281 093e 2C83 std Y+4,r18
  1305. 1282 0940 4481 ldd r20,Z+4
  1306. 1283 0942 5581 ldd r21,Z+5
  1307. 1284 0944 842F mov r24,r20
  1308. 1285 0946 6AE0 ldi r22,lo8(10)
  1309. 1286 0948 0E94 0000 call __udivmodqi4
  1310. 1287 094c 282F mov r18,r24
  1311. 1288 094e 2295 swap r18
  1312. 1289 0950 207F andi r18,0xf0
  1313. 1290 0952 CA01 movw r24,r20
  1314. 1291 0954 6AE0 ldi r22,lo8(10)
  1315. 1292 0956 70E0 ldi r23,hi8(10)
  1316. 1293 0958 0E94 0000 call __divmodhi4
  1317. 1294 095c 280F add r18,r24
  1318. 1295 095e 2068 ori r18,lo8(-128)
  1319. 1296 0960 2D83 std Y+5,r18
  1320. 1297 0962 4681 ldd r20,Z+6
  1321. 1298 0964 5781 ldd r21,Z+7
  1322. 1299 0966 842F mov r24,r20
  1323. 1300 0968 6AE0 ldi r22,lo8(10)
  1324. 1301 096a 0E94 0000 call __udivmodqi4
  1325. 1302 096e 282F mov r18,r24
  1326. 1303 0970 2295 swap r18
  1327. 1304 0972 207F andi r18,0xf0
  1328. 1305 0974 CA01 movw r24,r20
  1329. 1306 0976 6AE0 ldi r22,lo8(10)
  1330. 1307 0978 70E0 ldi r23,hi8(10)
  1331. 1308 097a 0E94 0000 call __divmodhi4
  1332. 1309 097e 280F add r18,r24
  1333. 1310 0980 2E83 std Y+6,r18
  1334. 1311 0982 4085 ldd r20,Z+8
  1335. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 24
  1336. 1312 0984 5185 ldd r21,Z+9
  1337. 1313 0986 842F mov r24,r20
  1338. 1314 0988 8F5F subi r24,lo8(-(1))
  1339. 1315 098a 6AE0 ldi r22,lo8(10)
  1340. 1316 098c 0E94 0000 call __udivmodqi4
  1341. 1317 0990 282F mov r18,r24
  1342. 1318 0992 2295 swap r18
  1343. 1319 0994 207F andi r18,0xf0
  1344. 1320 0996 CA01 movw r24,r20
  1345. 1321 0998 0196 adiw r24,1
  1346. 1322 099a 6AE0 ldi r22,lo8(10)
  1347. 1323 099c 70E0 ldi r23,hi8(10)
  1348. 1324 099e 0E94 0000 call __divmodhi4
  1349. 1325 09a2 280F add r18,r24
  1350. 1326 09a4 2F83 std Y+7,r18
  1351. 1327 09a6 4285 ldd r20,Z+10
  1352. 1328 09a8 5385 ldd r21,Z+11
  1353. 1329 09aa 4436 cpi r20,100
  1354. 1330 09ac 5105 cpc r21,__zero_reg__
  1355. 1331 09ae 04F0 brlt .L97
  1356. 1332 09b0 842F mov r24,r20
  1357. 1333 09b2 8456 subi r24,lo8(-(-100))
  1358. 1334 09b4 6AE0 ldi r22,lo8(10)
  1359. 1335 09b6 0E94 0000 call __udivmodqi4
  1360. 1336 09ba 282F mov r18,r24
  1361. 1337 09bc 2295 swap r18
  1362. 1338 09be 207F andi r18,0xf0
  1363. 1339 09c0 CA01 movw r24,r20
  1364. 1340 09c2 8456 subi r24,lo8(-(-100))
  1365. 1341 09c4 9040 sbci r25,hi8(-(-100))
  1366. 1342 09c6 6AE0 ldi r22,lo8(10)
  1367. 1343 09c8 70E0 ldi r23,hi8(10)
  1368. 1344 09ca 0E94 0000 call __divmodhi4
  1369. 1345 09ce 280F add r18,r24
  1370. 1346 09d0 2887 std Y+8,r18
  1371. 1347 09d2 80E2 ldi r24,lo8(32)
  1372. 1348 09d4 00C0 rjmp .L101
  1373. 1349 .L97:
  1374. 1350 09d6 842F mov r24,r20
  1375. 1351 09d8 6AE0 ldi r22,lo8(10)
  1376. 1352 09da 0E94 0000 call __udivmodqi4
  1377. 1353 09de 282F mov r18,r24
  1378. 1354 09e0 2295 swap r18
  1379. 1355 09e2 207F andi r18,0xf0
  1380. 1356 09e4 CA01 movw r24,r20
  1381. 1357 09e6 6AE0 ldi r22,lo8(10)
  1382. 1358 09e8 70E0 ldi r23,hi8(10)
  1383. 1359 09ea 0E94 0000 call __divmodhi4
  1384. 1360 09ee 280F add r18,r24
  1385. 1361 09f0 2887 std Y+8,r18
  1386. 1362 09f2 89E1 ldi r24,lo8(25)
  1387. 1363 .L101:
  1388. 1364 09f4 8A87 std Y+10,r24
  1389. 1365 09f6 F801 movw r30,r16
  1390. 1366 09f8 8485 ldd r24,Z+12
  1391. 1367 09fa 8987 std Y+9,r24
  1392. 1368 .L95:
  1393. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 25
  1394. 1369 09fc 4AE0 ldi r20,lo8(10)
  1395. 1370 09fe 50E0 ldi r21,hi8(10)
  1396. 1371 0a00 BE01 movw r22,r28
  1397. 1372 0a02 6F5F subi r22,lo8(-(1))
  1398. 1373 0a04 7F4F sbci r23,hi8(-(1))
  1399. 1374 0a06 80E0 ldi r24,lo8(0)
  1400. 1375 0a08 90E0 ldi r25,hi8(0)
  1401. 1376 0a0a 0E94 0000 call X12RtcWrite
  1402. 1377 /* epilogue: frame size=10 */
  1403. 1378 0a0e 2A96 adiw r28,10
  1404. 1379 0a10 0FB6 in __tmp_reg__,__SREG__
  1405. 1380 0a12 F894 cli
  1406. 1381 0a14 DEBF out __SP_H__,r29
  1407. 1382 0a16 0FBE out __SREG__,__tmp_reg__
  1408. 1383 0a18 CDBF out __SP_L__,r28
  1409. 1384 0a1a DF91 pop r29
  1410. 1385 0a1c CF91 pop r28
  1411. 1386 0a1e 1F91 pop r17
  1412. 1387 0a20 0F91 pop r16
  1413. 1388 0a22 0895 ret
  1414. 1389 /* epilogue end (size=11) */
  1415. 1390 /* function X12RtcSetClock size 172 (149) */
  1416. 1391 .size X12RtcSetClock, .-X12RtcSetClock
  1417. 1392 .lcomm rtc_status,4
  1418. 1393 /* File "source/rtc.c": code 1300 = 0x0514 ( 951), prologues 178, epilogues 171 */
  1419. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s page 26
  1420. DEFINED SYMBOLS
  1421. *ABS*:00000000 rtc.c
  1422. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:3 *ABS*:0000003f __SREG__
  1423. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:4 *ABS*:0000003e __SP_H__
  1424. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:5 *ABS*:0000003d __SP_L__
  1425. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:6 *ABS*:00000000 __tmp_reg__
  1426. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:7 *ABS*:00000001 __zero_reg__
  1427. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:13 .text:00000000 X12RtcClearStatus
  1428. .bss:00000000 rtc_status
  1429. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:41 .text:00000036 X12EepromRead
  1430. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:112 .text:000000b0 X12RtcReadRegs
  1431. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:181 .text:00000126 X12RtcGetStatus
  1432. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:247 .text:000001ac X12Init
  1433. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:283 .text:000001e4 X12RtcGetClock
  1434. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:448 .text:0000031c X12WriteEnable
  1435. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:535 .text:000003b8 X12WaitReady
  1436. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:619 .text:0000044c X12EepromWrite
  1437. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:755 .text:0000054e X12RtcWrite
  1438. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:822 .text:000005c6 X12RtcSetAlarm
  1439. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:1000 .text:00000726 X12RtcGetAlarm
  1440. C:\Users\GUUSV_~1\AppData\Local\Temp/cc97gVnX.s:1225 .text:000008cc X12RtcSetClock
  1441. UNDEFINED SYMBOLS
  1442. __do_copy_data
  1443. __do_clear_bss
  1444. TwMasterTransact
  1445. TwInit
  1446. NutSleep
  1447. malloc
  1448. memcpy
  1449. free
  1450. __udivmodqi4
  1451. __divmodhi4