edline.lst 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952
  1. GAS LISTING /tmp/ccdIDRX3.s page 1
  2. 1 .file "edline.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.PrintString,"ax",@progbits
  10. 9 .type PrintString, @function
  11. 10 PrintString:
  12. 11 0000 0F93 push r16
  13. 12 0002 1F93 push r17
  14. 13 0004 CF93 push r28
  15. 14 0006 DF93 push r29
  16. 15 /* prologue: function */
  17. 16 /* frame size = 0 */
  18. 17 /* stack size = 4 */
  19. 18 .L__stack_usage = 4
  20. 19 0008 8C01 movw r16,r24
  21. 20 000a EB01 movw r28,r22
  22. 21 .L2:
  23. 22 000c 6991 ld r22,Y+
  24. 23 000e 6623 tst r22
  25. 24 0010 01F0 breq .L5
  26. 25 0012 062E mov __tmp_reg__,r22
  27. 26 0014 000C lsl r0
  28. 27 0016 770B sbc r23,r23
  29. 28 0018 D801 movw r26,r16
  30. 29 001a 1496 adiw r26,4
  31. 30 001c ED91 ld r30,X+
  32. 31 001e FC91 ld r31,X
  33. 32 0020 1597 sbiw r26,4+1
  34. 33 0022 1696 adiw r26,6
  35. 34 0024 8D91 ld r24,X+
  36. 35 0026 9C91 ld r25,X
  37. 36 0028 1797 sbiw r26,6+1
  38. 37 002a 1995 eicall
  39. 38 002c 00C0 rjmp .L2
  40. 39 .L5:
  41. 40 002e 80E0 ldi r24,0
  42. 41 0030 90E0 ldi r25,0
  43. 42 /* epilogue start */
  44. 43 0032 DF91 pop r29
  45. 44 0034 CF91 pop r28
  46. 45 0036 1F91 pop r17
  47. 46 0038 0F91 pop r16
  48. 47 003a 0895 ret
  49. 48 .size PrintString, .-PrintString
  50. 49 .section .text.PrintCharacter,"ax",@progbits
  51. 50 .type PrintCharacter, @function
  52. 51 PrintCharacter:
  53. 52 0000 EF92 push r14
  54. 53 0002 FF92 push r15
  55. 54 0004 0F93 push r16
  56. 55 0006 1F93 push r17
  57. 56 0008 CF93 push r28
  58. 57 000a DF93 push r29
  59. GAS LISTING /tmp/ccdIDRX3.s page 2
  60. 58 /* prologue: function */
  61. 59 /* frame size = 0 */
  62. 60 /* stack size = 6 */
  63. 61 .L__stack_usage = 6
  64. 62 000c 8C01 movw r16,r24
  65. 63 000e 7B01 movw r14,r22
  66. 64 0010 EA01 movw r28,r20
  67. 65 .L7:
  68. 66 0012 1C16 cp __zero_reg__,r28
  69. 67 0014 1D06 cpc __zero_reg__,r29
  70. 68 0016 04F4 brge .L9
  71. 69 0018 D801 movw r26,r16
  72. 70 001a 1496 adiw r26,4
  73. 71 001c ED91 ld r30,X+
  74. 72 001e FC91 ld r31,X
  75. 73 0020 1597 sbiw r26,4+1
  76. 74 0022 B701 movw r22,r14
  77. 75 0024 1696 adiw r26,6
  78. 76 0026 8D91 ld r24,X+
  79. 77 0028 9C91 ld r25,X
  80. 78 002a 1797 sbiw r26,6+1
  81. 79 002c 1995 eicall
  82. 80 002e 2197 sbiw r28,1
  83. 81 0030 00C0 rjmp .L7
  84. 82 .L9:
  85. 83 /* epilogue start */
  86. 84 0032 DF91 pop r29
  87. 85 0034 CF91 pop r28
  88. 86 0036 1F91 pop r17
  89. 87 0038 0F91 pop r16
  90. 88 003a FF90 pop r15
  91. 89 003c EF90 pop r14
  92. 90 003e 0895 ret
  93. 91 .size PrintCharacter, .-PrintCharacter
  94. 92 .section .text.EdLineGetChar,"ax",@progbits
  95. 93 .type EdLineGetChar, @function
  96. 94 EdLineGetChar:
  97. 95 /* prologue: function */
  98. 96 /* frame size = 0 */
  99. 97 /* stack size = 0 */
  100. 98 .L__stack_usage = 0
  101. 99 0000 0C94 0000 jmp getchar
  102. 100 .size EdLineGetChar, .-EdLineGetChar
  103. 101 .section .text.EdLinePutChar,"ax",@progbits
  104. 102 .type EdLinePutChar, @function
  105. 103 EdLinePutChar:
  106. 104 /* prologue: function */
  107. 105 /* frame size = 0 */
  108. 106 /* stack size = 0 */
  109. 107 .L__stack_usage = 0
  110. 108 0000 CB01 movw r24,r22
  111. 109 0002 0C94 0000 jmp putchar
  112. 110 .size EdLinePutChar, .-EdLinePutChar
  113. 111 .section .text.EdLineKeyMap,"ax",@progbits
  114. 112 .global EdLineKeyMap
  115. 113 .type EdLineKeyMap, @function
  116. 114 EdLineKeyMap:
  117. GAS LISTING /tmp/ccdIDRX3.s page 3
  118. 115 /* prologue: function */
  119. 116 /* frame size = 0 */
  120. 117 /* stack size = 0 */
  121. 118 .L__stack_usage = 0
  122. 119 0000 FB01 movw r30,r22
  123. 120 0002 8D30 cpi r24,13
  124. 121 0004 9105 cpc r25,__zero_reg__
  125. 122 0006 01F4 brne .L13
  126. 123 0008 8FEF ldi r24,lo8(-1)
  127. 124 000a 9FEF ldi r25,lo8(-1)
  128. 125 000c 9183 std Z+1,r25
  129. 126 000e 8083 st Z,r24
  130. 127 0010 8AE0 ldi r24,lo8(10)
  131. 128 0012 90E0 ldi r25,0
  132. 129 0014 0895 ret
  133. 130 .L13:
  134. 131 0016 8A30 cpi r24,10
  135. 132 0018 9105 cpc r25,__zero_reg__
  136. 133 001a 01F4 brne .L15
  137. 134 001c 2081 ld r18,Z
  138. 135 001e 3181 ldd r19,Z+1
  139. 136 0020 37FF sbrs r19,7
  140. 137 0022 00C0 rjmp .L15
  141. 138 0024 80E0 ldi r24,0
  142. 139 0026 90E0 ldi r25,0
  143. 140 .L15:
  144. 141 0028 1182 std Z+1,__zero_reg__
  145. 142 002a 1082 st Z,__zero_reg__
  146. 143 002c 0895 ret
  147. 144 .size EdLineKeyMap, .-EdLineKeyMap
  148. 145 .section .text.EdLineRegisterInput,"ax",@progbits
  149. 146 .global EdLineRegisterInput
  150. 147 .type EdLineRegisterInput, @function
  151. 148 EdLineRegisterInput:
  152. 149 /* prologue: function */
  153. 150 /* frame size = 0 */
  154. 151 /* stack size = 0 */
  155. 152 .L__stack_usage = 0
  156. 153 0000 FC01 movw r30,r24
  157. 154 0002 6115 cp r22,__zero_reg__
  158. 155 0004 7105 cpc r23,__zero_reg__
  159. 156 0006 01F0 breq .L18
  160. 157 0008 7183 std Z+1,r23
  161. 158 000a 6083 st Z,r22
  162. 159 000c 00C0 rjmp .L19
  163. 160 .L18:
  164. 161 000e 80E0 ldi r24,lo8(gs(EdLineGetChar))
  165. 162 0010 90E0 ldi r25,hi8(gs(EdLineGetChar))
  166. 163 0012 9183 std Z+1,r25
  167. 164 0014 8083 st Z,r24
  168. 165 .L19:
  169. 166 0016 5383 std Z+3,r21
  170. 167 0018 4283 std Z+2,r20
  171. 168 001a 0895 ret
  172. 169 .size EdLineRegisterInput, .-EdLineRegisterInput
  173. 170 .section .text.EdLineRegisterOutput,"ax",@progbits
  174. 171 .global EdLineRegisterOutput
  175. GAS LISTING /tmp/ccdIDRX3.s page 4
  176. 172 .type EdLineRegisterOutput, @function
  177. 173 EdLineRegisterOutput:
  178. 174 /* prologue: function */
  179. 175 /* frame size = 0 */
  180. 176 /* stack size = 0 */
  181. 177 .L__stack_usage = 0
  182. 178 0000 FC01 movw r30,r24
  183. 179 0002 6115 cp r22,__zero_reg__
  184. 180 0004 7105 cpc r23,__zero_reg__
  185. 181 0006 01F0 breq .L21
  186. 182 0008 7583 std Z+5,r23
  187. 183 000a 6483 std Z+4,r22
  188. 184 000c 00C0 rjmp .L22
  189. 185 .L21:
  190. 186 000e 80E0 ldi r24,lo8(gs(EdLinePutChar))
  191. 187 0010 90E0 ldi r25,hi8(gs(EdLinePutChar))
  192. 188 0012 9583 std Z+5,r25
  193. 189 0014 8483 std Z+4,r24
  194. 190 .L22:
  195. 191 0016 5783 std Z+7,r21
  196. 192 0018 4683 std Z+6,r20
  197. 193 001a 0895 ret
  198. 194 .size EdLineRegisterOutput, .-EdLineRegisterOutput
  199. 195 .section .text.EdLineRegisterKeymap,"ax",@progbits
  200. 196 .global EdLineRegisterKeymap
  201. 197 .type EdLineRegisterKeymap, @function
  202. 198 EdLineRegisterKeymap:
  203. 199 /* prologue: function */
  204. 200 /* frame size = 0 */
  205. 201 /* stack size = 0 */
  206. 202 .L__stack_usage = 0
  207. 203 0000 6115 cp r22,__zero_reg__
  208. 204 0002 7105 cpc r23,__zero_reg__
  209. 205 0004 01F0 breq .L24
  210. 206 0006 FC01 movw r30,r24
  211. 207 0008 7187 std Z+9,r23
  212. 208 000a 6087 std Z+8,r22
  213. 209 000c 0895 ret
  214. 210 .L24:
  215. 211 000e 20E0 ldi r18,lo8(gs(EdLineKeyMap))
  216. 212 0010 30E0 ldi r19,hi8(gs(EdLineKeyMap))
  217. 213 0012 FC01 movw r30,r24
  218. 214 0014 3187 std Z+9,r19
  219. 215 0016 2087 std Z+8,r18
  220. 216 0018 0895 ret
  221. 217 .size EdLineRegisterKeymap, .-EdLineRegisterKeymap
  222. 218 .section .text.EdLineOpen,"ax",@progbits
  223. 219 .global EdLineOpen
  224. 220 .type EdLineOpen, @function
  225. 221 EdLineOpen:
  226. 222 0000 0F93 push r16
  227. 223 0002 1F93 push r17
  228. 224 0004 CF93 push r28
  229. 225 0006 DF93 push r29
  230. 226 /* prologue: function */
  231. 227 /* frame size = 0 */
  232. 228 /* stack size = 4 */
  233. GAS LISTING /tmp/ccdIDRX3.s page 5
  234. 229 .L__stack_usage = 4
  235. 230 0008 182F mov r17,r24
  236. 231 000a 092F mov r16,r25
  237. 232 000c 60E1 ldi r22,lo8(16)
  238. 233 000e 70E0 ldi r23,0
  239. 234 0010 81E0 ldi r24,lo8(1)
  240. 235 0012 90E0 ldi r25,0
  241. 236 0014 0E94 0000 call calloc
  242. 237 0018 EC01 movw r28,r24
  243. 238 001a 892B or r24,r25
  244. 239 001c 01F0 breq .L28
  245. 240 001e 1A87 std Y+10,r17
  246. 241 0020 0B87 std Y+11,r16
  247. 242 0022 8091 0000 lds r24,__iob
  248. 243 0026 9091 0000 lds r25,__iob+1
  249. 244 002a 20E0 ldi r18,lo8(gs(EdLineGetChar))
  250. 245 002c 30E0 ldi r19,hi8(gs(EdLineGetChar))
  251. 246 002e 3983 std Y+1,r19
  252. 247 0030 2883 st Y,r18
  253. 248 0032 9B83 std Y+3,r25
  254. 249 0034 8A83 std Y+2,r24
  255. 250 0036 8091 0000 lds r24,__iob+2
  256. 251 003a 9091 0000 lds r25,__iob+2+1
  257. 252 003e 20E0 ldi r18,lo8(gs(EdLinePutChar))
  258. 253 0040 30E0 ldi r19,hi8(gs(EdLinePutChar))
  259. 254 0042 3D83 std Y+5,r19
  260. 255 0044 2C83 std Y+4,r18
  261. 256 0046 9F83 std Y+7,r25
  262. 257 0048 8E83 std Y+6,r24
  263. 258 004a 80E0 ldi r24,lo8(gs(EdLineKeyMap))
  264. 259 004c 90E0 ldi r25,hi8(gs(EdLineKeyMap))
  265. 260 004e 9987 std Y+9,r25
  266. 261 0050 8887 std Y+8,r24
  267. 262 0052 12FF sbrs r17,2
  268. 263 0054 00C0 rjmp .L28
  269. 264 0056 80E1 ldi r24,lo8(16)
  270. 265 0058 90E0 ldi r25,0
  271. 266 005a 0E94 0000 call EditHistoryCreate
  272. 267 005e 9F87 std Y+15,r25
  273. 268 0060 8E87 std Y+14,r24
  274. 269 .L28:
  275. 270 0062 CE01 movw r24,r28
  276. 271 /* epilogue start */
  277. 272 0064 DF91 pop r29
  278. 273 0066 CF91 pop r28
  279. 274 0068 1F91 pop r17
  280. 275 006a 0F91 pop r16
  281. 276 006c 0895 ret
  282. 277 .size EdLineOpen, .-EdLineOpen
  283. 278 .section .text.EdLineClose,"ax",@progbits
  284. 279 .global EdLineClose
  285. 280 .type EdLineClose, @function
  286. 281 EdLineClose:
  287. 282 0000 CF93 push r28
  288. 283 0002 DF93 push r29
  289. 284 /* prologue: function */
  290. 285 /* frame size = 0 */
  291. GAS LISTING /tmp/ccdIDRX3.s page 6
  292. 286 /* stack size = 2 */
  293. 287 .L__stack_usage = 2
  294. 288 0004 EC01 movw r28,r24
  295. 289 0006 892B or r24,r25
  296. 290 0008 01F0 breq .L33
  297. 291 000a 8E85 ldd r24,Y+14
  298. 292 000c 9F85 ldd r25,Y+15
  299. 293 000e 0E94 0000 call EditHistoryDestroy
  300. 294 0012 CE01 movw r24,r28
  301. 295 /* epilogue start */
  302. 296 0014 DF91 pop r29
  303. 297 0016 CF91 pop r28
  304. 298 0018 0C94 0000 jmp free
  305. 299 .L33:
  306. 300 /* epilogue start */
  307. 301 001c DF91 pop r29
  308. 302 001e CF91 pop r28
  309. 303 0020 0895 ret
  310. 304 .size EdLineClose, .-EdLineClose
  311. 305 .section .rodata.str1.1,"aMS",@progbits,1
  312. 306 .LC0:
  313. 307 0000 0D0A 00 .string "\r\n"
  314. 308 .section .text.EdLineRead,"ax",@progbits
  315. 309 .global EdLineRead
  316. 310 .type EdLineRead, @function
  317. 311 EdLineRead:
  318. 312 0000 2F92 push r2
  319. 313 0002 3F92 push r3
  320. 314 0004 4F92 push r4
  321. 315 0006 5F92 push r5
  322. 316 0008 6F92 push r6
  323. 317 000a 7F92 push r7
  324. 318 000c 8F92 push r8
  325. 319 000e 9F92 push r9
  326. 320 0010 AF92 push r10
  327. 321 0012 BF92 push r11
  328. 322 0014 CF92 push r12
  329. 323 0016 DF92 push r13
  330. 324 0018 EF92 push r14
  331. 325 001a FF92 push r15
  332. 326 001c 0F93 push r16
  333. 327 001e 1F93 push r17
  334. 328 0020 CF93 push r28
  335. 329 0022 DF93 push r29
  336. 330 0024 00D0 rcall .
  337. 331 0026 00D0 rcall .
  338. 332 0028 CDB7 in r28,__SP_L__
  339. 333 002a DEB7 in r29,__SP_H__
  340. 334 /* prologue: function */
  341. 335 /* frame size = 6 */
  342. 336 /* stack size = 24 */
  343. 337 .L__stack_usage = 24
  344. 338 002c 8C01 movw r16,r24
  345. 339 002e 7B01 movw r14,r22
  346. 340 0030 4A01 movw r8,r20
  347. 341 0032 1B01 movw r2,r22
  348. 342 0034 240E add r2,r20
  349. GAS LISTING /tmp/ccdIDRX3.s page 7
  350. 343 0036 351E adc r3,r21
  351. 344 0038 F101 movw r30,r2
  352. 345 003a 3197 sbiw r30,1
  353. 346 003c 1082 st Z,__zero_reg__
  354. 347 003e AB01 movw r20,r22
  355. 348 0040 60E0 ldi r22,0
  356. 349 0042 70E0 ldi r23,0
  357. 350 0044 DC01 movw r26,r24
  358. 351 0046 1E96 adiw r26,14
  359. 352 0048 8D91 ld r24,X+
  360. 353 004a 9C91 ld r25,X
  361. 354 004c 1F97 sbiw r26,14+1
  362. 355 004e 0E94 0000 call EditHistorySet
  363. 356 0052 B701 movw r22,r14
  364. 357 0054 C801 movw r24,r16
  365. 358 0056 0E94 0000 call PrintString
  366. 359 005a F701 movw r30,r14
  367. 360 0:
  368. 361 005c 0190 ld __tmp_reg__,Z+
  369. 362 005e 0020 tst __tmp_reg__
  370. 363 0060 01F4 brne 0b
  371. 364 0062 3197 sbiw r30,1
  372. 365 0064 9F01 movw r18,r30
  373. 366 0066 2E19 sub r18,r14
  374. 367 0068 3F09 sbc r19,r15
  375. 368 006a 3E83 std Y+6,r19
  376. 369 006c 2D83 std Y+5,r18
  377. 370 006e 612C mov r6,__zero_reg__
  378. 371 0070 712C mov r7,__zero_reg__
  379. 372 0072 C12C mov r12,__zero_reg__
  380. 373 0074 D12C mov r13,__zero_reg__
  381. 374 0076 C801 movw r24,r16
  382. 375 0078 0C96 adiw r24,12
  383. 376 007a 9A83 std Y+2,r25
  384. 377 007c 8983 std Y+1,r24
  385. 378 007e 2401 movw r4,r8
  386. 379 0080 91E0 ldi r25,1
  387. 380 0082 491A sub r4,r25
  388. 381 0084 5108 sbc r5,__zero_reg__
  389. 382 .L36:
  390. 383 0086 D801 movw r26,r16
  391. 384 0088 ED91 ld r30,X+
  392. 385 008a FC91 ld r31,X
  393. 386 008c 1197 sbiw r26,1
  394. 387 008e 1296 adiw r26,2
  395. 388 0090 8D91 ld r24,X+
  396. 389 0092 9C91 ld r25,X
  397. 390 0094 1397 sbiw r26,2+1
  398. 391 0096 1995 eicall
  399. 392 0098 8F3F cpi r24,-1
  400. 393 009a BFEF ldi r27,-1
  401. 394 009c 9B07 cpc r25,r27
  402. 395 009e 01F4 brne .+2
  403. 396 00a0 00C0 rjmp .L59
  404. 397 00a2 D801 movw r26,r16
  405. 398 00a4 1896 adiw r26,8
  406. 399 00a6 ED91 ld r30,X+
  407. GAS LISTING /tmp/ccdIDRX3.s page 8
  408. 400 00a8 FC91 ld r31,X
  409. 401 00aa 1997 sbiw r26,8+1
  410. 402 00ac 6981 ldd r22,Y+1
  411. 403 00ae 7A81 ldd r23,Y+2
  412. 404 00b0 1995 eicall
  413. 405 00b2 BC01 movw r22,r24
  414. 406 00b4 8A30 cpi r24,10
  415. 407 00b6 9105 cpc r25,__zero_reg__
  416. 408 00b8 01F4 brne .+2
  417. 409 00ba 00C0 rjmp .L38
  418. 410 00bc 8830 cpi r24,8
  419. 411 00be 9105 cpc r25,__zero_reg__
  420. 412 00c0 01F0 breq .+2
  421. 413 00c2 00C0 rjmp .L39
  422. 414 00c4 ED81 ldd r30,Y+5
  423. 415 00c6 FE81 ldd r31,Y+6
  424. 416 00c8 3097 sbiw r30,0
  425. 417 00ca 01F4 brne .+2
  426. 418 00cc 00C0 rjmp .L40
  427. 419 00ce 5F01 movw r10,r30
  428. 420 00d0 F1E0 ldi r31,1
  429. 421 00d2 AF1A sub r10,r31
  430. 422 00d4 B108 sbc r11,__zero_reg__
  431. 423 00d6 AD81 ldd r26,Y+5
  432. 424 00d8 BE81 ldd r27,Y+6
  433. 425 00da AE0D add r26,r14
  434. 426 00dc BF1D adc r27,r15
  435. 427 00de C501 movw r24,r10
  436. 428 .L41:
  437. 429 00e0 8415 cp r24,r4
  438. 430 00e2 9505 cpc r25,r5
  439. 431 00e4 04F4 brge .L92
  440. 432 00e6 2D91 ld r18,X+
  441. 433 00e8 FD01 movw r30,r26
  442. 434 00ea 3297 sbiw r30,2
  443. 435 00ec 2083 st Z,r18
  444. 436 00ee 0196 adiw r24,1
  445. 437 00f0 00C0 rjmp .L41
  446. 438 .L92:
  447. 439 00f2 D801 movw r26,r16
  448. 440 00f4 1A96 adiw r26,10
  449. 441 00f6 8C91 ld r24,X
  450. 442 00f8 1A97 sbiw r26,10
  451. 443 00fa 80FF sbrs r24,0
  452. 444 00fc 00C0 rjmp .L43
  453. 445 00fe 1496 adiw r26,4
  454. 446 0100 ED91 ld r30,X+
  455. 447 0102 FC91 ld r31,X
  456. 448 0104 1597 sbiw r26,4+1
  457. 449 0106 68E0 ldi r22,lo8(8)
  458. 450 0108 70E0 ldi r23,0
  459. 451 010a 1696 adiw r26,6
  460. 452 010c 8D91 ld r24,X+
  461. 453 010e 9C91 ld r25,X
  462. 454 0110 1797 sbiw r26,6+1
  463. 455 0112 1995 eicall
  464. 456 .L43:
  465. GAS LISTING /tmp/ccdIDRX3.s page 9
  466. 457 0114 B701 movw r22,r14
  467. 458 0116 6A0D add r22,r10
  468. 459 0118 7B1D adc r23,r11
  469. 460 011a C801 movw r24,r16
  470. 461 011c 0E94 0000 call PrintString
  471. 462 0120 D801 movw r26,r16
  472. 463 0122 1496 adiw r26,4
  473. 464 0124 ED91 ld r30,X+
  474. 465 0126 FC91 ld r31,X
  475. 466 0128 1597 sbiw r26,4+1
  476. 467 012a 60E2 ldi r22,lo8(32)
  477. 468 012c 70E0 ldi r23,0
  478. 469 012e 1696 adiw r26,6
  479. 470 0130 8D91 ld r24,X+
  480. 471 0132 9C91 ld r25,X
  481. 472 0134 1797 sbiw r26,6+1
  482. 473 0136 1995 eicall
  483. 474 0138 F701 movw r30,r14
  484. 475 0:
  485. 476 013a 0190 ld __tmp_reg__,Z+
  486. 477 013c 0020 tst __tmp_reg__
  487. 478 013e 01F4 brne 0b
  488. 479 0140 3197 sbiw r30,1
  489. 480 0142 EE19 sub r30,r14
  490. 481 0144 FF09 sbc r31,r15
  491. 482 0146 41E0 ldi r20,lo8(1)
  492. 483 0148 50E0 ldi r21,0
  493. 484 014a 4A19 sub r20,r10
  494. 485 014c 5B09 sbc r21,r11
  495. 486 014e 4E0F add r20,r30
  496. 487 0150 5F1F adc r21,r31
  497. 488 0152 00C0 rjmp .L90
  498. 489 .L39:
  499. 490 0154 8B31 cpi r24,27
  500. 491 0156 9105 cpc r25,__zero_reg__
  501. 492 0158 01F4 brne .+2
  502. 493 015a 00C0 rjmp .L60
  503. 494 015c 8231 cpi r24,18
  504. 495 015e 9105 cpc r25,__zero_reg__
  505. 496 0160 01F4 brne .L45
  506. 497 0162 5601 movw r10,r12
  507. 498 0164 BFEF ldi r27,-1
  508. 499 0166 AB1A sub r10,r27
  509. 500 0168 BB0A sbc r11,r27
  510. 501 016a 20E0 ldi r18,0
  511. 502 016c 30E0 ldi r19,0
  512. 503 016e 40E0 ldi r20,0
  513. 504 0170 50E0 ldi r21,0
  514. 505 0172 B501 movw r22,r10
  515. 506 0174 F801 movw r30,r16
  516. 507 0176 8685 ldd r24,Z+14
  517. 508 0178 9785 ldd r25,Z+15
  518. 509 017a 0E94 0000 call EditHistoryGet
  519. 510 017e 97FF sbrs r25,7
  520. 511 0180 00C0 rjmp .L44
  521. 512 0182 00C0 rjmp .L40
  522. 513 .L45:
  523. GAS LISTING /tmp/ccdIDRX3.s page 10
  524. 514 0184 8631 cpi r24,22
  525. 515 0186 9105 cpc r25,__zero_reg__
  526. 516 0188 01F4 brne .L46
  527. 517 018a C114 cp r12,__zero_reg__
  528. 518 018c D104 cpc r13,__zero_reg__
  529. 519 018e 01F4 brne .+2
  530. 520 0190 00C0 rjmp .L40
  531. 521 0192 5601 movw r10,r12
  532. 522 0194 F1E0 ldi r31,1
  533. 523 0196 AF1A sub r10,r31
  534. 524 0198 B108 sbc r11,__zero_reg__
  535. 525 019a 00C0 rjmp .L44
  536. 526 .L46:
  537. 527 019c 8630 cpi r24,6
  538. 528 019e 9105 cpc r25,__zero_reg__
  539. 529 01a0 01F4 brne .L47
  540. 530 01a2 F701 movw r30,r14
  541. 531 0:
  542. 532 01a4 0190 ld __tmp_reg__,Z+
  543. 533 01a6 0020 tst __tmp_reg__
  544. 534 01a8 01F4 brne 0b
  545. 535 01aa 3197 sbiw r30,1
  546. 536 01ac EE19 sub r30,r14
  547. 537 01ae FF09 sbc r31,r15
  548. 538 01b0 2D81 ldd r18,Y+5
  549. 539 01b2 3E81 ldd r19,Y+6
  550. 540 01b4 2E17 cp r18,r30
  551. 541 01b6 3F07 cpc r19,r31
  552. 542 01b8 00F0 brlo .+2
  553. 543 01ba 00C0 rjmp .L40
  554. 544 01bc D801 movw r26,r16
  555. 545 01be 1A96 adiw r26,10
  556. 546 01c0 8C91 ld r24,X
  557. 547 01c2 1A97 sbiw r26,10
  558. 548 01c4 80FF sbrs r24,0
  559. 549 01c6 00C0 rjmp .L48
  560. 550 01c8 F901 movw r30,r18
  561. 551 01ca EE0D add r30,r14
  562. 552 01cc FF1D adc r31,r15
  563. 553 01ce 6081 ld r22,Z
  564. 554 01d0 062E mov __tmp_reg__,r22
  565. 555 01d2 000C lsl r0
  566. 556 01d4 770B sbc r23,r23
  567. 557 01d6 1496 adiw r26,4
  568. 558 01d8 ED91 ld r30,X+
  569. 559 01da FC91 ld r31,X
  570. 560 01dc 1597 sbiw r26,4+1
  571. 561 01de 1696 adiw r26,6
  572. 562 01e0 8D91 ld r24,X+
  573. 563 01e2 9C91 ld r25,X
  574. 564 01e4 1797 sbiw r26,6+1
  575. 565 01e6 1995 eicall
  576. 566 .L48:
  577. 567 01e8 ED81 ldd r30,Y+5
  578. 568 01ea FE81 ldd r31,Y+6
  579. 569 01ec 3196 adiw r30,1
  580. 570 01ee 00C0 rjmp .L91
  581. GAS LISTING /tmp/ccdIDRX3.s page 11
  582. 571 .L47:
  583. 572 01f0 8230 cpi r24,2
  584. 573 01f2 9105 cpc r25,__zero_reg__
  585. 574 01f4 01F4 brne .L49
  586. 575 01f6 2D81 ldd r18,Y+5
  587. 576 01f8 3E81 ldd r19,Y+6
  588. 577 01fa 232B or r18,r19
  589. 578 01fc 01F4 brne .+2
  590. 579 01fe 00C0 rjmp .L40
  591. 580 0200 D801 movw r26,r16
  592. 581 0202 1A96 adiw r26,10
  593. 582 0204 8C91 ld r24,X
  594. 583 0206 1A97 sbiw r26,10
  595. 584 0208 80FF sbrs r24,0
  596. 585 020a 00C0 rjmp .L50
  597. 586 020c 1496 adiw r26,4
  598. 587 020e ED91 ld r30,X+
  599. 588 0210 FC91 ld r31,X
  600. 589 0212 1597 sbiw r26,4+1
  601. 590 0214 68E0 ldi r22,lo8(8)
  602. 591 0216 70E0 ldi r23,0
  603. 592 0218 1696 adiw r26,6
  604. 593 021a 8D91 ld r24,X+
  605. 594 021c 9C91 ld r25,X
  606. 595 021e 1797 sbiw r26,6+1
  607. 596 0220 1995 eicall
  608. 597 .L50:
  609. 598 0222 ED81 ldd r30,Y+5
  610. 599 0224 FE81 ldd r31,Y+6
  611. 600 0226 3197 sbiw r30,1
  612. 601 .L91:
  613. 602 0228 FE83 std Y+6,r31
  614. 603 022a ED83 std Y+5,r30
  615. 604 022c 00C0 rjmp .L40
  616. 605 .L49:
  617. 606 022e 8130 cpi r24,1
  618. 607 0230 9105 cpc r25,__zero_reg__
  619. 608 0232 01F4 brne .L51
  620. 609 0234 4D81 ldd r20,Y+5
  621. 610 0236 5E81 ldd r21,Y+6
  622. 611 0238 68E0 ldi r22,lo8(8)
  623. 612 023a 70E0 ldi r23,0
  624. 613 023c C801 movw r24,r16
  625. 614 023e 0E94 0000 call PrintCharacter
  626. 615 0242 1E82 std Y+6,__zero_reg__
  627. 616 0244 1D82 std Y+5,__zero_reg__
  628. 617 0246 00C0 rjmp .L40
  629. 618 .L51:
  630. 619 0248 8530 cpi r24,5
  631. 620 024a 9105 cpc r25,__zero_reg__
  632. 621 024c 01F4 brne .L52
  633. 622 024e 6D81 ldd r22,Y+5
  634. 623 0250 7E81 ldd r23,Y+6
  635. 624 0252 6E0D add r22,r14
  636. 625 0254 7F1D adc r23,r15
  637. 626 0256 C801 movw r24,r16
  638. 627 0258 0E94 0000 call PrintString
  639. GAS LISTING /tmp/ccdIDRX3.s page 12
  640. 628 025c F701 movw r30,r14
  641. 629 0:
  642. 630 025e 0190 ld __tmp_reg__,Z+
  643. 631 0260 0020 tst __tmp_reg__
  644. 632 0262 01F4 brne 0b
  645. 633 0264 3197 sbiw r30,1
  646. 634 0266 9F01 movw r18,r30
  647. 635 0268 2E19 sub r18,r14
  648. 636 026a 3F09 sbc r19,r15
  649. 637 026c 3E83 std Y+6,r19
  650. 638 026e 2D83 std Y+5,r18
  651. 639 0270 00C0 rjmp .L40
  652. 640 .L52:
  653. 641 0272 8B83 std Y+3,r24
  654. 642 0274 7C83 std Y+4,r23
  655. 643 0276 0E94 0000 call isprint
  656. 644 027a 6B81 ldd r22,Y+3
  657. 645 027c 7C81 ldd r23,Y+4
  658. 646 027e 892B or r24,r25
  659. 647 0280 01F4 brne .+2
  660. 648 0282 00C0 rjmp .L53
  661. 649 0284 F701 movw r30,r14
  662. 650 0:
  663. 651 0286 0190 ld __tmp_reg__,Z+
  664. 652 0288 0020 tst __tmp_reg__
  665. 653 028a 01F4 brne 0b
  666. 654 028c 3197 sbiw r30,1
  667. 655 028e EE19 sub r30,r14
  668. 656 0290 FF09 sbc r31,r15
  669. 657 0292 E415 cp r30,r4
  670. 658 0294 F505 cpc r31,r5
  671. 659 0296 00F4 brsh .L53
  672. 660 0298 F101 movw r30,r2
  673. 661 029a C401 movw r24,r8
  674. 662 .L54:
  675. 663 029c 0197 sbiw r24,1
  676. 664 029e AD81 ldd r26,Y+5
  677. 665 02a0 BE81 ldd r27,Y+6
  678. 666 02a2 A817 cp r26,r24
  679. 667 02a4 B907 cpc r27,r25
  680. 668 02a6 04F4 brge .L93
  681. 669 02a8 DF01 movw r26,r30
  682. 670 02aa 1297 sbiw r26,2
  683. 671 02ac 2C91 ld r18,X
  684. 672 02ae 2293 st -Z,r18
  685. 673 02b0 00C0 rjmp .L54
  686. 674 .L93:
  687. 675 02b2 5D01 movw r10,r26
  688. 676 02b4 BFEF ldi r27,-1
  689. 677 02b6 AB1A sub r10,r27
  690. 678 02b8 BB0A sbc r11,r27
  691. 679 02ba ED81 ldd r30,Y+5
  692. 680 02bc FE81 ldd r31,Y+6
  693. 681 02be EE0D add r30,r14
  694. 682 02c0 FF1D adc r31,r15
  695. 683 02c2 6083 st Z,r22
  696. 684 02c4 F801 movw r30,r16
  697. GAS LISTING /tmp/ccdIDRX3.s page 13
  698. 685 02c6 8285 ldd r24,Z+10
  699. 686 02c8 80FF sbrs r24,0
  700. 687 02ca 00C0 rjmp .L56
  701. 688 02cc 0480 ldd __tmp_reg__,Z+4
  702. 689 02ce F581 ldd r31,Z+5
  703. 690 02d0 E02D mov r30,__tmp_reg__
  704. 691 02d2 D801 movw r26,r16
  705. 692 02d4 1696 adiw r26,6
  706. 693 02d6 8D91 ld r24,X+
  707. 694 02d8 9C91 ld r25,X
  708. 695 02da 1797 sbiw r26,6+1
  709. 696 02dc 1995 eicall
  710. 697 .L56:
  711. 698 02de B701 movw r22,r14
  712. 699 02e0 6A0D add r22,r10
  713. 700 02e2 7B1D adc r23,r11
  714. 701 02e4 C801 movw r24,r16
  715. 702 02e6 0E94 0000 call PrintString
  716. 703 02ea F701 movw r30,r14
  717. 704 0:
  718. 705 02ec 0190 ld __tmp_reg__,Z+
  719. 706 02ee 0020 tst __tmp_reg__
  720. 707 02f0 01F4 brne 0b
  721. 708 02f2 3197 sbiw r30,1
  722. 709 02f4 AF01 movw r20,r30
  723. 710 02f6 4E19 sub r20,r14
  724. 711 02f8 5F09 sbc r21,r15
  725. 712 02fa 4A19 sub r20,r10
  726. 713 02fc 5B09 sbc r21,r11
  727. 714 .L90:
  728. 715 02fe 68E0 ldi r22,lo8(8)
  729. 716 0300 70E0 ldi r23,0
  730. 717 0302 C801 movw r24,r16
  731. 718 0304 0E94 0000 call PrintCharacter
  732. 719 0308 BE82 std Y+6,r11
  733. 720 030a AD82 std Y+5,r10
  734. 721 030c 00C0 rjmp .L40
  735. 722 .L53:
  736. 723 030e D801 movw r26,r16
  737. 724 0310 1496 adiw r26,4
  738. 725 0312 ED91 ld r30,X+
  739. 726 0314 FC91 ld r31,X
  740. 727 0316 1597 sbiw r26,4+1
  741. 728 0318 67E0 ldi r22,lo8(7)
  742. 729 031a 70E0 ldi r23,0
  743. 730 031c 1696 adiw r26,6
  744. 731 031e 8D91 ld r24,X+
  745. 732 0320 9C91 ld r25,X
  746. 733 0322 1797 sbiw r26,6+1
  747. 734 0324 1995 eicall
  748. 735 .L40:
  749. 736 0326 6114 cp r6,__zero_reg__
  750. 737 0328 7104 cpc r7,__zero_reg__
  751. 738 032a 01F4 brne .+2
  752. 739 032c 00C0 rjmp .L36
  753. 740 .L58:
  754. 741 032e F801 movw r30,r16
  755. GAS LISTING /tmp/ccdIDRX3.s page 14
  756. 742 0330 8285 ldd r24,Z+10
  757. 743 0332 82FD sbrc r24,2
  758. 744 0334 00C0 rjmp .L94
  759. 745 0336 6624 clr r6
  760. 746 0338 6394 inc r6
  761. 747 033a 712C mov r7,__zero_reg__
  762. 748 033c 00C0 rjmp .L36
  763. 749 .L94:
  764. 750 033e 4D81 ldd r20,Y+5
  765. 751 0340 5E81 ldd r21,Y+6
  766. 752 0342 68E0 ldi r22,lo8(8)
  767. 753 0344 70E0 ldi r23,0
  768. 754 0346 C801 movw r24,r16
  769. 755 0348 0E94 0000 call PrintCharacter
  770. 756 034c F701 movw r30,r14
  771. 757 0:
  772. 758 034e 0190 ld __tmp_reg__,Z+
  773. 759 0350 0020 tst __tmp_reg__
  774. 760 0352 01F4 brne 0b
  775. 761 0354 3197 sbiw r30,1
  776. 762 0356 5F01 movw r10,r30
  777. 763 0358 AE18 sub r10,r14
  778. 764 035a BF08 sbc r11,r15
  779. 765 035c 9401 movw r18,r8
  780. 766 035e A701 movw r20,r14
  781. 767 0360 B601 movw r22,r12
  782. 768 0362 D801 movw r26,r16
  783. 769 0364 1E96 adiw r26,14
  784. 770 0366 8D91 ld r24,X+
  785. 771 0368 9C91 ld r25,X
  786. 772 036a 1F97 sbiw r26,14+1
  787. 773 036c 0E94 0000 call EditHistoryGet
  788. 774 0370 F701 movw r30,r14
  789. 775 0:
  790. 776 0372 0190 ld __tmp_reg__,Z+
  791. 777 0374 0020 tst __tmp_reg__
  792. 778 0376 01F4 brne 0b
  793. 779 0378 3197 sbiw r30,1
  794. 780 037a 9F01 movw r18,r30
  795. 781 037c 2E19 sub r18,r14
  796. 782 037e 3F09 sbc r19,r15
  797. 783 0380 3E83 std Y+6,r19
  798. 784 0382 2D83 std Y+5,r18
  799. 785 0384 B701 movw r22,r14
  800. 786 0386 C801 movw r24,r16
  801. 787 0388 0E94 0000 call PrintString
  802. 788 038c 8D81 ldd r24,Y+5
  803. 789 038e 9E81 ldd r25,Y+6
  804. 790 0390 A81A sub r10,r24
  805. 791 0392 B90A sbc r11,r25
  806. 792 0394 A501 movw r20,r10
  807. 793 0396 60E2 ldi r22,lo8(32)
  808. 794 0398 70E0 ldi r23,0
  809. 795 039a C801 movw r24,r16
  810. 796 039c 0E94 0000 call PrintCharacter
  811. 797 03a0 A501 movw r20,r10
  812. 798 03a2 68E0 ldi r22,lo8(8)
  813. GAS LISTING /tmp/ccdIDRX3.s page 15
  814. 799 03a4 70E0 ldi r23,0
  815. 800 03a6 C801 movw r24,r16
  816. 801 03a8 0E94 0000 call PrintCharacter
  817. 802 03ac 612C mov r6,__zero_reg__
  818. 803 03ae 712C mov r7,__zero_reg__
  819. 804 03b0 00C0 rjmp .L36
  820. 805 .L38:
  821. 806 03b2 60E0 ldi r22,lo8(.LC0)
  822. 807 03b4 70E0 ldi r23,hi8(.LC0)
  823. 808 03b6 C801 movw r24,r16
  824. 809 03b8 0E94 0000 call PrintString
  825. 810 03bc A701 movw r20,r14
  826. 811 03be 61E0 ldi r22,lo8(1)
  827. 812 03c0 70E0 ldi r23,0
  828. 813 03c2 D801 movw r26,r16
  829. 814 03c4 1E96 adiw r26,14
  830. 815 03c6 8D91 ld r24,X+
  831. 816 03c8 9C91 ld r25,X
  832. 817 03ca 1F97 sbiw r26,14+1
  833. 818 03cc 0E94 0000 call EditHistoryInsert
  834. 819 03d0 F701 movw r30,r14
  835. 820 0:
  836. 821 03d2 0190 ld __tmp_reg__,Z+
  837. 822 03d4 0020 tst __tmp_reg__
  838. 823 03d6 01F4 brne 0b
  839. 824 03d8 3197 sbiw r30,1
  840. 825 03da CF01 movw r24,r30
  841. 826 03dc 8E19 sub r24,r14
  842. 827 03de 9F09 sbc r25,r15
  843. 828 03e0 00C0 rjmp .L89
  844. 829 .L59:
  845. 830 03e2 8FEF ldi r24,lo8(-1)
  846. 831 03e4 9FEF ldi r25,lo8(-1)
  847. 832 03e6 00C0 rjmp .L89
  848. 833 .L60:
  849. 834 03e8 A12C mov r10,__zero_reg__
  850. 835 03ea B12C mov r11,__zero_reg__
  851. 836 .L44:
  852. 837 03ec 6501 movw r12,r10
  853. 838 03ee 00C0 rjmp .L58
  854. 839 .L89:
  855. 840 /* epilogue start */
  856. 841 03f0 2696 adiw r28,6
  857. 842 03f2 0FB6 in __tmp_reg__,__SREG__
  858. 843 03f4 F894 cli
  859. 844 03f6 DEBF out __SP_H__,r29
  860. 845 03f8 0FBE out __SREG__,__tmp_reg__
  861. 846 03fa CDBF out __SP_L__,r28
  862. 847 03fc DF91 pop r29
  863. 848 03fe CF91 pop r28
  864. 849 0400 1F91 pop r17
  865. 850 0402 0F91 pop r16
  866. 851 0404 FF90 pop r15
  867. 852 0406 EF90 pop r14
  868. 853 0408 DF90 pop r13
  869. 854 040a CF90 pop r12
  870. 855 040c BF90 pop r11
  871. GAS LISTING /tmp/ccdIDRX3.s page 16
  872. 856 040e AF90 pop r10
  873. 857 0410 9F90 pop r9
  874. 858 0412 8F90 pop r8
  875. 859 0414 7F90 pop r7
  876. 860 0416 6F90 pop r6
  877. 861 0418 5F90 pop r5
  878. 862 041a 4F90 pop r4
  879. 863 041c 3F90 pop r3
  880. 864 041e 2F90 pop r2
  881. 865 0420 0895 ret
  882. 866 .size EdLineRead, .-EdLineRead
  883. 867 .ident "GCC: (GNU) 5.3.0"
  884. 868 .global __do_copy_data
  885. GAS LISTING /tmp/ccdIDRX3.s page 17
  886. DEFINED SYMBOLS
  887. *ABS*:0000000000000000 edline.c
  888. /tmp/ccdIDRX3.s:2 *ABS*:000000000000003e __SP_H__
  889. /tmp/ccdIDRX3.s:3 *ABS*:000000000000003d __SP_L__
  890. /tmp/ccdIDRX3.s:4 *ABS*:000000000000003f __SREG__
  891. /tmp/ccdIDRX3.s:5 *ABS*:000000000000003b __RAMPZ__
  892. /tmp/ccdIDRX3.s:6 *ABS*:0000000000000000 __tmp_reg__
  893. /tmp/ccdIDRX3.s:7 *ABS*:0000000000000001 __zero_reg__
  894. /tmp/ccdIDRX3.s:10 .text.PrintString:0000000000000000 PrintString
  895. /tmp/ccdIDRX3.s:51 .text.PrintCharacter:0000000000000000 PrintCharacter
  896. /tmp/ccdIDRX3.s:94 .text.EdLineGetChar:0000000000000000 EdLineGetChar
  897. /tmp/ccdIDRX3.s:103 .text.EdLinePutChar:0000000000000000 EdLinePutChar
  898. /tmp/ccdIDRX3.s:114 .text.EdLineKeyMap:0000000000000000 EdLineKeyMap
  899. /tmp/ccdIDRX3.s:148 .text.EdLineRegisterInput:0000000000000000 EdLineRegisterInput
  900. /tmp/ccdIDRX3.s:173 .text.EdLineRegisterOutput:0000000000000000 EdLineRegisterOutput
  901. /tmp/ccdIDRX3.s:198 .text.EdLineRegisterKeymap:0000000000000000 EdLineRegisterKeymap
  902. /tmp/ccdIDRX3.s:221 .text.EdLineOpen:0000000000000000 EdLineOpen
  903. /tmp/ccdIDRX3.s:281 .text.EdLineClose:0000000000000000 EdLineClose
  904. /tmp/ccdIDRX3.s:311 .text.EdLineRead:0000000000000000 EdLineRead
  905. UNDEFINED SYMBOLS
  906. getchar
  907. putchar
  908. calloc
  909. __iob
  910. EditHistoryCreate
  911. EditHistoryDestroy
  912. free
  913. EditHistorySet
  914. EditHistoryGet
  915. isprint
  916. EditHistoryInsert
  917. __do_copy_data