Subversion Repositories Projects

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
106 mikeljo 1
   1               		.file	"lcd.c"
2
   2               		.arch atmega32
3
   3               	__SREG__ = 0x3f
4
   4               	__SP_H__ = 0x3e
5
   5               	__SP_L__ = 0x3d
6
   6               	__tmp_reg__ = 0
7
   7               	__zero_reg__ = 1
8
   8               		.global __do_copy_data
9
   9               		.global __do_clear_bss
10
  17               	.Ltext0:
11
  18               	.global	send_byte
12
  20               	send_byte:
13
  21               	.LFB8:
14
  22               	.LM1:
15
  23               	/* prologue: frame size=0 */
16
  24               	/* prologue end (size=0) */
17
  25               	.LM2:
18
  26 0000 C498      		cbi 56-0x20,4
19
  27               	.LM3:
20
  28 0002 8FB9      		out 47-0x20,r24
21
  29               	.L2:
22
  30               	.LM4:
23
  31 0004 779B      		sbis 46-0x20,7
24
  32 0006 FECF      		rjmp .L2
25
  33               	.LM5:
26
  34 0008 8EB1      		in r24,46-0x20
27
  35 000a 8EB9      		out 46-0x20,r24
28
  36               	.LM6:
29
  37 000c C49A      		sbi 56-0x20,4
30
  38               	/* epilogue: frame size=0 */
31
  39 000e 0895      		ret
32
  40               	/* epilogue end (size=1) */
33
  41               	/* function send_byte size 8 (7) */
34
  42               	.LFE8:
35
  44               	.global	cls
36
  46               	cls:
37
  47               	.LFB9:
38
  48               	.LM7:
39
  49               	/* prologue: frame size=0 */
40
  50 0010 0F93      		push r16
41
  51 0012 1F93      		push r17
42
  52 0014 CF93      		push r28
43
  53 0016 DF93      		push r29
44
  54               	/* prologue end (size=4) */
45
  55 0018 80E0      		ldi r24,lo8(display_buffer)
46
  56 001a 90E0      		ldi r25,hi8(display_buffer)
47
  57 001c FC01      		movw r30,r24
48
  58               	.L9:
49
  59               	.LM8:
50
  60 001e 1192      		st Z+,__zero_reg__
51
  61 0020 0196      		adiw r24,1
52
  62               	.LM9:
53
  63 0022 20E0      		ldi r18,hi8(display_buffer+1023)
54
  64 0024 8030      		cpi r24,lo8(display_buffer+1023)
55
  65 0026 9207      		cpc r25,r18
56
  66 0028 D1F3      		breq .L9
57
  67 002a C8F3      		brlo .L9
58
  68               	.LM10:
59
  69 002c 00E0      		ldi r16,lo8(0)
60
  70 002e 10E0      		ldi r17,hi8(0)
61
  71               	.L17:
62
  72               	.LM11:
63
  73 0030 C398      		cbi 56-0x20,3
64
  74               	.LM12:
65
  75 0032 802F      		mov r24,r16
66
  76 0034 8055      		subi r24,lo8(-(-80))
67
  77 0036 0E94 0000 		call send_byte
68
  78               	.LM13:
69
  79 003a 80E1      		ldi r24,lo8(16)
70
  80 003c 0E94 0000 		call send_byte
71
  81               	.LM14:
72
  82 0040 84E0      		ldi r24,lo8(4)
73
  83 0042 0E94 0000 		call send_byte
74
  84               	.LM15:
75
  85 0046 C39A      		sbi 56-0x20,3
76
  86 0048 CFE7      		ldi r28,lo8(127)
77
  87 004a D0E0      		ldi r29,hi8(127)
78
  88               	.L16:
79
  89               	.LM16:
80
  90 004c 80E0      		ldi r24,lo8(0)
81
  91 004e 0E94 0000 		call send_byte
82
  92               	.LM17:
83
  93 0052 2197      		sbiw r28,1
84
  94 0054 D7FF      		sbrs r29,7
85
  95 0056 FACF      		rjmp .L16
86
  96               	.LM18:
87
  97 0058 0F5F      		subi r16,lo8(-(1))
88
  98 005a 1F4F      		sbci r17,hi8(-(1))
89
  99 005c 0830      		cpi r16,8
90
 100 005e 1105      		cpc r17,__zero_reg__
91
 101 0060 38F3      		brlo .L17
92
 102               	.LM19:
93
 103 0062 1092 0000 		sts lcd_xpos,__zero_reg__
94
 104               	.LM20:
95
 105 0066 1092 0000 		sts lcd_ypos,__zero_reg__
96
 106               	/* epilogue: frame size=0 */
97
 107 006a DF91      		pop r29
98
 108 006c CF91      		pop r28
99
 109 006e 1F91      		pop r17
100
 110 0070 0F91      		pop r16
101
 111 0072 0895      		ret
102
 112               	/* epilogue end (size=5) */
103
 113               	/* function cls size 50 (41) */
104
 114               	.LFE9:
105
 116               	.global	lcd_cls
106
 118               	lcd_cls:
107
 119               	.LFB10:
108
 120               	.LM21:
109
 121               	/* prologue: frame size=0 */
110
 122               	/* prologue end (size=0) */
111
 123               	.LM22:
112
 124 0074 0E94 0000 		call cls
113
 125               	/* epilogue: frame size=0 */
114
 126 0078 0895      		ret
115
 127               	/* epilogue end (size=1) */
116
 128               	/* function lcd_cls size 3 (2) */
117
 129               	.LFE10:
118
 131               	.global	wait_1ms
119
 133               	wait_1ms:
120
 134               	.LFB11:
121
 135               	.LM23:
122
 136               	/* prologue: frame size=0 */
123
 137               	/* prologue end (size=0) */
124
 138               	.LBB2:
125
 139               	.LBB3:
126
 140               	.LM24:
127
 141 007a 83E3      		ldi r24,lo8(1843)
128
 142 007c 97E0      		ldi r25,hi8(1843)
129
 143               	.LBB4:
130
 144               	.LBB5:
131
 145               	.LM25:
132
 146               	/* #APP */
133
 147 007e 0197      		1: sbiw r24,1
134
 148 0080 F1F7      		brne 1b
135
 149               	/* #NOAPP */
136
 150               	.LBE5:
137
 151               	.LBE4:
138
 152               	.LBE3:
139
 153               	.LBE2:
140
 154               	/* epilogue: frame size=0 */
141
 155 0082 0895      		ret
142
 156               	/* epilogue end (size=1) */
143
 157               	/* function wait_1ms size 7 (6) */
144
 158               	.LFE11:
145
 160               	.global	wait_ms
146
 162               	wait_ms:
147
 163               	.LFB12:
148
 164               	.LM26:
149
 165               	/* prologue: frame size=0 */
150
 166 0084 0F93      		push r16
151
 167 0086 1F93      		push r17
152
 168 0088 CF93      		push r28
153
 169 008a DF93      		push r29
154
 170               	/* prologue end (size=4) */
155
 171 008c 8C01      		movw r16,r24
156
 172               	.LM27:
157
 173 008e C0E0      		ldi r28,lo8(0)
158
 174 0090 D0E0      		ldi r29,hi8(0)
159
 175 0092 C817      		cp r28,r24
160
 176 0094 D907      		cpc r29,r25
161
 177 0096 30F4      		brsh .L40
162
 178               	.L38:
163
 179               	.LM28:
164
 180 0098 0E94 0000 		call wait_1ms
165
 181               	.LM29:
166
 182 009c 2196      		adiw r28,1
167
 183 009e C017      		cp r28,r16
168
 184 00a0 D107      		cpc r29,r17
169
 185 00a2 D0F3      		brlo .L38
170
 186               	.L40:
171
 187               	/* epilogue: frame size=0 */
172
 188 00a4 DF91      		pop r29
173
 189 00a6 CF91      		pop r28
174
 190 00a8 1F91      		pop r17
175
 191 00aa 0F91      		pop r16
176
 192 00ac 0895      		ret
177
 193               	/* epilogue end (size=5) */
178
 194               	/* function wait_ms size 21 (12) */
179
 195               	.LFE12:
180
 197               	.global	lcd_init
181
 199               	lcd_init:
182
 200               	.LFB13:
183
 201               	.LM30:
184
 202               	/* prologue: frame size=0 */
185
 203               	/* prologue end (size=0) */
186
 204               	.LM31:
187
 205 00ae 1092 0000 		sts lcd_xpos,__zero_reg__
188
 206               	.LM32:
189
 207 00b2 1092 0000 		sts lcd_ypos,__zero_reg__
190
 208               	.LM33:
191
 209 00b6 8FEF      		ldi r24,lo8(-1)
192
 210 00b8 87BB      		out 55-0x20,r24
193
 211               	.LM34:
194
 212 00ba 8EE5      		ldi r24,lo8(94)
195
 213 00bc 8DB9      		out 45-0x20,r24
196
 214               	.LM35:
197
 215 00be C49A      		sbi 56-0x20,4
198
 216               	.LM36:
199
 217 00c0 C298      		cbi 56-0x20,2
200
 218               	.LM37:
201
 219 00c2 8AE0      		ldi r24,lo8(10)
202
 220 00c4 90E0      		ldi r25,hi8(10)
203
 221 00c6 0E94 0000 		call wait_ms
204
 222               	.LM38:
205
 223 00ca C29A      		sbi 56-0x20,2
206
 224               	.LM39:
207
 225 00cc C498      		cbi 56-0x20,4
208
 226               	.LM40:
209
 227 00ce C398      		cbi 56-0x20,3
210
 228               	.LM41:
211
 229 00d0 80E4      		ldi r24,lo8(64)
212
 230 00d2 0E94 0000 		call send_byte
213
 231               	.LM42:
214
 232 00d6 80EA      		ldi r24,lo8(-96)
215
 233 00d8 0E94 0000 		call send_byte
216
 234               	.LM43:
217
 235 00dc 88EC      		ldi r24,lo8(-56)
218
 236 00de 0E94 0000 		call send_byte
219
 237               	.LM44:
220
 238 00e2 86EA      		ldi r24,lo8(-90)
221
 239 00e4 0E94 0000 		call send_byte
222
 240               	.LM45:
223
 241 00e8 82EA      		ldi r24,lo8(-94)
224
 242 00ea 0E94 0000 		call send_byte
225
 243               	.LM46:
226
 244 00ee 8FE2      		ldi r24,lo8(47)
227
 245 00f0 0E94 0000 		call send_byte
228
 246               	.LM47:
229
 247 00f4 88EF      		ldi r24,lo8(-8)
230
 248 00f6 0E94 0000 		call send_byte
231
 249               	.LM48:
232
 250 00fa 80E0      		ldi r24,lo8(0)
233
 251 00fc 0E94 0000 		call send_byte
234
 252               	.LM49:
235
 253 0100 87E2      		ldi r24,lo8(39)
236
 254 0102 0E94 0000 		call send_byte
237
 255               	.LM50:
238
 256 0106 81E8      		ldi r24,lo8(-127)
239
 257 0108 0E94 0000 		call send_byte
240
 258               	.LM51:
241
 259 010c 86E1      		ldi r24,lo8(22)
242
 260 010e 0E94 0000 		call send_byte
243
 261               	.LM52:
244
 262 0112 8CEA      		ldi r24,lo8(-84)
245
 263 0114 0E94 0000 		call send_byte
246
 264               	.LM53:
247
 265 0118 80E0      		ldi r24,lo8(0)
248
 266 011a 0E94 0000 		call send_byte
249
 267               	.LM54:
250
 268 011e 8FEA      		ldi r24,lo8(-81)
251
 269 0120 0E94 0000 		call send_byte
252
 270               	.LM55:
253
 271 0124 0E94 0000 		call cls
254
 272               	/* epilogue: frame size=0 */
255
 273 0128 0895      		ret
256
 274               	/* epilogue end (size=1) */
257
 275               	/* function lcd_init size 62 (61) */
258
 276               	.LFE13:
259
 278               	.global	set_adress
260
 280               	set_adress:
261
 281               	.LFB14:
262
 282               	.LM56:
263
 283               	/* prologue: frame size=0 */
264
 284 012a FF92      		push r15
265
 285 012c 0F93      		push r16
266
 286 012e 1F93      		push r17
267
 287               	/* prologue end (size=3) */
268
 288 0130 8C01      		movw r16,r24
269
 289 0132 F62E      		mov r15,r22
270
 290               	.LM57:
271
 291 0134 880F      		lsl r24
272
 292 0136 892F      		mov r24,r25
273
 293 0138 881F      		rol r24
274
 294 013a 990B      		sbc r25,r25
275
 295 013c 9195      		neg r25
276
 296               	.LM58:
277
 297 013e C398      		cbi 56-0x20,3
278
 298               	.LM59:
279
 299 0140 8055      		subi r24,lo8(-(-80))
280
 300 0142 0E94 0000 		call send_byte
281
 301               	.LM60:
282
 302 0146 102F      		mov r17,r16
283
 303 0148 1F77      		andi r17,lo8(127)
284
 304 014a 1C5F      		subi r17,lo8(-(4))
285
 305               	.LM61:
286
 306 014c 812F      		mov r24,r17
287
 307 014e 8295      		swap r24
288
 308 0150 8F70      		andi r24,0x0f
289
 309 0152 805F      		subi r24,lo8(-(16))
290
 310 0154 0E94 0000 		call send_byte
291
 311               	.LM62:
292
 312 0158 812F      		mov r24,r17
293
 313 015a 8F70      		andi r24,lo8(15)
294
 314 015c 0E94 0000 		call send_byte
295
 315               	.LM63:
296
 316 0160 C39A      		sbi 56-0x20,3
297
 317               	.LM64:
298
 318 0162 8F2D      		mov r24,r15
299
 319 0164 0E94 0000 		call send_byte
300
 320               	/* epilogue: frame size=0 */
301
 321 0168 1F91      		pop r17
302
 322 016a 0F91      		pop r16
303
 323 016c FF90      		pop r15
304
 324 016e 0895      		ret
305
 325               	/* epilogue end (size=4) */
306
 326               	/* function set_adress size 35 (28) */
307
 327               	.LFE14:
308
 329               	.global	scroll
309
 331               	scroll:
310
 332               	.LFB15:
311
 333               	.LM65:
312
 334               	/* prologue: frame size=0 */
313
 335 0170 EF92      		push r14
314
 336 0172 FF92      		push r15
315
 337 0174 0F93      		push r16
316
 338 0176 1F93      		push r17
317
 339 0178 CF93      		push r28
318
 340 017a DF93      		push r29
319
 341               	/* prologue end (size=6) */
320
 342               	.LM66:
321
 343 017c C0E0      		ldi r28,lo8(0)
322
 344 017e D0E0      		ldi r29,hi8(0)
323
 345 0180 30E0      		ldi r19,lo8(display_buffer+128)
324
 346 0182 E32E      		mov r14,r19
325
 347 0184 30E0      		ldi r19,hi8(display_buffer+128)
326
 348 0186 F32E      		mov r15,r19
327
 349 0188 8701      		movw r16,r14
328
 350 018a 0058      		subi r16,lo8(-(-128))
329
 351 018c 1040      		sbci r17,hi8(-(-128))
330
 352               	.L47:
331
 353               	.LM67:
332
 354 018e F701      		movw r30,r14
333
 355 0190 8191      		ld r24,Z+
334
 356 0192 7F01      		movw r14,r30
335
 357 0194 F801      		movw r30,r16
336
 358 0196 8083      		st Z,r24
337
 359               	.LM68:
338
 360 0198 6191      		ld r22,Z+
339
 361 019a 8F01      		movw r16,r30
340
 362 019c CE01      		movw r24,r28
341
 363 019e 0E94 0000 		call set_adress
342
 364               	.LM69:
343
 365 01a2 2196      		adiw r28,1
344
 366 01a4 F3E0      		ldi r31,hi8(896)
345
 367 01a6 C038      		cpi r28,lo8(896)
346
 368 01a8 DF07      		cpc r29,r31
347
 369 01aa 88F3      		brlo .L47
348
 370 01ac C0E8      		ldi r28,lo8(896)
349
 371 01ae D3E0      		ldi r29,hi8(896)
350
 372 01b0 00E0      		ldi r16,lo8(display_buffer+896)
351
 373 01b2 10E0      		ldi r17,hi8(display_buffer+896)
352
 374               	.L51:
353
 375               	.LM70:
354
 376 01b4 F801      		movw r30,r16
355
 377 01b6 1192      		st Z+,__zero_reg__
356
 378 01b8 8F01      		movw r16,r30
357
 379               	.LM71:
358
 380 01ba 60E0      		ldi r22,lo8(0)
359
 381 01bc CE01      		movw r24,r28
360
 382 01be 0E94 0000 		call set_adress
361
 383               	.LM72:
362
 384 01c2 2196      		adiw r28,1
363
 385 01c4 F4E0      		ldi r31,hi8(1024)
364
 386 01c6 C030      		cpi r28,lo8(1024)
365
 387 01c8 DF07      		cpc r29,r31
366
 388 01ca A0F3      		brlo .L51
367
 389               	/* epilogue: frame size=0 */
368
 390 01cc DF91      		pop r29
369
 391 01ce CF91      		pop r28
370
 392 01d0 1F91      		pop r17
371
 393 01d2 0F91      		pop r16
372
 394 01d4 FF90      		pop r15
373
 395 01d6 EF90      		pop r14
374
 396 01d8 0895      		ret
375
 397               	/* epilogue end (size=7) */
376
 398               	/* function scroll size 53 (40) */
377
 399               	.LFE15:
378
 401               	.global	put_char
379
 403               	put_char:
380
 404               	.LFB16:
381
 405               	.LM73:
382
 406               	/* prologue: frame size=0 */
383
 407 01da BF92      		push r11
384
 408 01dc CF92      		push r12
385
 409 01de DF92      		push r13
386
 410 01e0 EF92      		push r14
387
 411 01e2 FF92      		push r15
388
 412 01e4 0F93      		push r16
389
 413 01e6 1F93      		push r17
390
 414 01e8 CF93      		push r28
391
 415 01ea DF93      		push r29
392
 416               	/* prologue end (size=9) */
393
 417 01ec 382F      		mov r19,r24
394
 418 01ee F42E      		mov r15,r20
395
 419 01f0 B22E      		mov r11,r18
396
 420               	.LM74:
397
 421 01f2 842F      		mov r24,r20
398
 422 01f4 9927      		clr r25
399
 423 01f6 8F3D      		cpi r24,223
400
 424 01f8 9105      		cpc r25,__zero_reg__
401
 425 01fa 89F1      		breq .L64
402
 426               	.LM75:
403
 427 01fc 803E      		cpi r24,224
404
 428 01fe 9105      		cpc r25,__zero_reg__
405
 429 0200 74F4      		brge .L65
406
 430 0202 863D      		cpi r24,214
407
 431 0204 9105      		cpc r25,__zero_reg__
408
 432 0206 29F1      		breq .L62
409
 433 0208 873D      		cpi r24,215
410
 434 020a 9105      		cpc r25,__zero_reg__
411
 435 020c 24F4      		brge .L66
412
 436 020e 843C      		cpi r24,196
413
 437 0210 9105      		cpc r25,__zero_reg__
414
 438 0212 E1F0      		breq .L61
415
 439 0214 26C0      		rjmp .L57
416
 440               	.L66:
417
 441 0216 8C3D      		cpi r24,220
418
 442 0218 9105      		cpc r25,__zero_reg__
419
 443 021a F1F0      		breq .L63
420
 444 021c 22C0      		rjmp .L57
421
 445               	.L65:
422
 446 021e 863F      		cpi r24,246
423
 447 0220 9105      		cpc r25,__zero_reg__
424
 448 0222 71F0      		breq .L59
425
 449 0224 873F      		cpi r24,247
426
 450 0226 9105      		cpc r25,__zero_reg__
427
 451 0228 24F4      		brge .L67
428
 452 022a 843E      		cpi r24,228
429
 453 022c 9105      		cpc r25,__zero_reg__
430
 454 022e 29F0      		breq .L58
431
 455 0230 18C0      		rjmp .L57
432
 456               	.L67:
433
 457 0232 8C3F      		cpi r24,252
434
 458 0234 9105      		cpc r25,__zero_reg__
435
 459 0236 39F0      		breq .L60
436
 460 0238 14C0      		rjmp .L57
437
 461               	.L58:
438
 462               	.LM76:
439
 463 023a 14E8      		ldi r17,lo8(-124)
440
 464 023c F12E      		mov r15,r17
441
 465               	.LM77:
442
 466 023e 11C0      		rjmp .L57
443
 467               	.L59:
444
 468               	.LM78:
445
 469 0240 C4E9      		ldi r28,lo8(-108)
446
 470 0242 FC2E      		mov r15,r28
447
 471               	.LM79:
448
 472 0244 0EC0      		rjmp .L57
449
 473               	.L60:
450
 474               	.LM80:
451
 475 0246 B1E8      		ldi r27,lo8(-127)
452
 476 0248 FB2E      		mov r15,r27
453
 477               	.LM81:
454
 478 024a 0BC0      		rjmp .L57
455
 479               	.L61:
456
 480               	.LM82:
457
 481 024c AEE8      		ldi r26,lo8(-114)
458
 482 024e FA2E      		mov r15,r26
459
 483               	.LM83:
460
 484 0250 08C0      		rjmp .L57
461
 485               	.L62:
462
 486               	.LM84:
463
 487 0252 F9E9      		ldi r31,lo8(-103)
464
 488 0254 FF2E      		mov r15,r31
465
 489               	.LM85:
466
 490 0256 05C0      		rjmp .L57
467
 491               	.L63:
468
 492               	.LM86:
469
 493 0258 EAE9      		ldi r30,lo8(-102)
470
 494 025a FE2E      		mov r15,r30
471
 495               	.LM87:
472
 496 025c 02C0      		rjmp .L57
473
 497               	.L64:
474
 498               	.LM88:
475
 499 025e 71EE      		ldi r23,lo8(-31)
476
 500 0260 F72E      		mov r15,r23
477
 501               	.L57:
478
 502               	.LM89:
479
 503 0262 C62F      		mov r28,r22
480
 504 0264 DD27      		clr r29
481
 505 0266 D695      		lsr r29
482
 506 0268 DC2F      		mov r29,r28
483
 507 026a CC27      		clr r28
484
 508 026c D795      		ror r29
485
 509 026e C795      		ror r28
486
 510 0270 86E0      		ldi r24,lo8(6)
487
 511 0272 389F      		mul r19,r24
488
 512 0274 C001      		movw r24,r0
489
 513 0276 1124      		clr r1
490
 514 0278 C80F      		add r28,r24
491
 515 027a D91F      		adc r29,r25
492
 516               	.LM90:
493
 517 027c D370      		andi r29,hi8(1023)
494
 518 027e 6E01      		movw r12,r28
495
 519 0280 00E0      		ldi r16,lo8(0)
496
 520 0282 10E0      		ldi r17,hi8(0)
497
 521 0284 45E0      		ldi r20,lo8(5)
498
 522 0286 E42E      		mov r14,r20
499
 523               	.L78:
500
 524               	.LBB6:
501
 525               	.LM91:
502
 526 0288 86E0      		ldi r24,lo8(6)
503
 527 028a F89E      		mul r15,r24
504
 528 028c F001      		movw r30,r0
505
 529 028e 1124      		clr r1
506
 530 0290 E00F      		add r30,r16
507
 531 0292 F11F      		adc r31,r17
508
 532 0294 E050      		subi r30,lo8(-(f8x6))
509
 533 0296 F040      		sbci r31,hi8(-(f8x6))
510
 534               	/* #APP */
511
 535 0298 2491      		lpm r18, Z
512
 536
513
 537               	/* #NOAPP */
514
 538               	.LBE6:
515
 539               	.LM92:
516
 540 029a 8B2D      		mov r24,r11
517
 541 029c 9927      		clr r25
518
 542 029e 8230      		cpi r24,2
519
 543 02a0 9105      		cpc r25,__zero_reg__
520
 544 02a2 E9F0      		breq .L74
521
 545 02a4 8330      		cpi r24,3
522
 546 02a6 9105      		cpc r25,__zero_reg__
523
 547 02a8 2CF4      		brge .L77
524
 548 02aa 0097      		sbiw r24,0
525
 549 02ac 49F0      		breq .L72
526
 550 02ae 0197      		sbiw r24,1
527
 551 02b0 71F0      		breq .L73
528
 552 02b2 2CC0      		rjmp .L71
529
 553               	.L77:
530
 554 02b4 8330      		cpi r24,3
531
 555 02b6 9105      		cpc r25,__zero_reg__
532
 556 02b8 D1F0      		breq .L75
533
 557 02ba 0497      		sbiw r24,4
534
 558 02bc F1F0      		breq .L76
535
 559 02be 26C0      		rjmp .L71
536
 560               	.L72:
537
 561               	.LM93:
538
 562 02c0 FE01      		movw r30,r28
539
 563 02c2 E050      		subi r30,lo8(-(display_buffer))
540
 564 02c4 F040      		sbci r31,hi8(-(display_buffer))
541
 565 02c6 E00F      		add r30,r16
542
 566 02c8 F11F      		adc r31,r17
543
 567 02ca 2083      		st Z,r18
544
 568               	.LM94:
545
 569 02cc 1FC0      		rjmp .L71
546
 570               	.L73:
547
 571               	.LM95:
548
 572 02ce FE01      		movw r30,r28
549
 573 02d0 E050      		subi r30,lo8(-(display_buffer))
550
 574 02d2 F040      		sbci r31,hi8(-(display_buffer))
551
 575 02d4 E00F      		add r30,r16
552
 576 02d6 F11F      		adc r31,r17
553
 577 02d8 8081      		ld r24,Z
554
 578 02da 822B      		or r24,r18
555
 579 02dc 16C0      		rjmp .L82
556
 580               	.L74:
557
 581               	.LM96:
558
 582 02de FE01      		movw r30,r28
559
 583 02e0 E050      		subi r30,lo8(-(display_buffer))
560
 584 02e2 F040      		sbci r31,hi8(-(display_buffer))
561
 585 02e4 E00F      		add r30,r16
562
 586 02e6 F11F      		adc r31,r17
563
 587 02e8 8081      		ld r24,Z
564
 588 02ea 8227      		eor r24,r18
565
 589 02ec 0EC0      		rjmp .L82
566
 590               	.L75:
567
 591               	.LM97:
568
 592 02ee FE01      		movw r30,r28
569
 593 02f0 E050      		subi r30,lo8(-(display_buffer))
570
 594 02f2 F040      		sbci r31,hi8(-(display_buffer))
571
 595 02f4 E00F      		add r30,r16
572
 596 02f6 F11F      		adc r31,r17
573
 597 02f8 06C0      		rjmp .L81
574
 598               	.L76:
575
 599               	.LM98:
576
 600 02fa FE01      		movw r30,r28
577
 601 02fc E050      		subi r30,lo8(-(display_buffer))
578
 602 02fe F040      		sbci r31,hi8(-(display_buffer))
579
 603 0300 E00F      		add r30,r16
580
 604 0302 F11F      		adc r31,r17
581
 605 0304 2095      		com r18
582
 606               	.L81:
583
 607 0306 8081      		ld r24,Z
584
 608 0308 8223      		and r24,r18
585
 609               	.L82:
586
 610 030a 8083      		st Z,r24
587
 611               	.L71:
588
 612               	.LM99:
589
 613 030c FE01      		movw r30,r28
590
 614 030e E050      		subi r30,lo8(-(display_buffer))
591
 615 0310 F040      		sbci r31,hi8(-(display_buffer))
592
 616 0312 E00F      		add r30,r16
593
 617 0314 F11F      		adc r31,r17
594
 618 0316 6081      		ld r22,Z
595
 619 0318 C601      		movw r24,r12
596
 620 031a 0E94 0000 		call set_adress
597
 621               	.LM100:
598
 622 031e EA94      		dec r14
599
 623 0320 0F5F      		subi r16,lo8(-(1))
600
 624 0322 1F4F      		sbci r17,hi8(-(1))
601
 625 0324 0894      		sec
602
 626 0326 C11C      		adc r12,__zero_reg__
603
 627 0328 D11C      		adc r13,__zero_reg__
604
 628 032a E7FE      		sbrs r14,7
605
 629 032c ADCF      		rjmp .L78
606
 630               	/* epilogue: frame size=0 */
607
 631 032e DF91      		pop r29
608
 632 0330 CF91      		pop r28
609
 633 0332 1F91      		pop r17
610
 634 0334 0F91      		pop r16
611
 635 0336 FF90      		pop r15
612
 636 0338 EF90      		pop r14
613
 637 033a DF90      		pop r13
614
 638 033c CF90      		pop r12
615
 639 033e BF90      		pop r11
616
 640 0340 0895      		ret
617
 641               	/* epilogue end (size=10) */
618
 642               	/* function put_char size 186 (167) */
619
 643               	.LFE16:
620
 645               	.global	new_line
621
 647               	new_line:
622
 648               	.LFB17:
623
 649               	.LM101:
624
 650               	/* prologue: frame size=0 */
625
 651               	/* prologue end (size=0) */
626
 652               	.LM102:
627
 653 0342 8091 0000 		lds r24,lcd_ypos
628
 654 0346 8F5F      		subi r24,lo8(-(1))
629
 655 0348 8093 0000 		sts lcd_ypos,r24
630
 656               	.LM103:
631
 657 034c 8830      		cpi r24,lo8(8)
632
 658 034e 28F0      		brlo .L83
633
 659               	.LM104:
634
 660 0350 0E94 0000 		call scroll
635
 661               	.LM105:
636
 662 0354 87E0      		ldi r24,lo8(7)
637
 663 0356 8093 0000 		sts lcd_ypos,r24
638
 664               	.L83:
639
 665 035a 0895      		ret
640
 666               	/* epilogue: frame size=0 */
641
 667               	/* epilogue: noreturn */
642
 668               	/* epilogue end (size=0) */
643
 669               	/* function new_line size 13 (13) */
644
 670               	.LFE17:
645
 672               	.global	lcd_printp
646
 674               	lcd_printp:
647
 675               	.LFB18:
648
 676               	.LM106:
649
 677               	/* prologue: frame size=0 */
650
 678 035c 1F93      		push r17
651
 679 035e CF93      		push r28
652
 680 0360 DF93      		push r29
653
 681               	/* prologue end (size=3) */
654
 682 0362 EC01      		movw r28,r24
655
 683 0364 162F      		mov r17,r22
656
 684               	.LBB7:
657
 685               	.LM107:
658
 686 0366 FC01      		movw r30,r24
659
 687               	/* #APP */
660
 688 0368 8491      		lpm r24, Z
661
 689
662
 690               	/* #NOAPP */
663
 691               	.LBE7:
664
 692 036a 8823      		tst r24
665
 693 036c 51F1      		breq .L96
666
 694               	.L94:
667
 695               	.LBB8:
668
 696               	.LM108:
669
 697 036e FE01      		movw r30,r28
670
 698               	/* #APP */
671
 699 0370 8491      		lpm r24, Z
672
 700
673
 701               	/* #NOAPP */
674
 702               	.LBE8:
675
 703 0372 8032      		cpi r24,lo8(32)
676
 704 0374 B0F0      		brlo .L88
677
 705               	.LBB9:
678
 706               	.LM109:
679
 707 0376 2196      		adiw r28,1
680
 708               	/* #APP */
681
 709 0378 8491      		lpm r24, Z
682
 710
683
 711               	/* #NOAPP */
684
 712               	.LBE9:
685
 713 037a 212F      		mov r18,r17
686
 714 037c 482F      		mov r20,r24
687
 715 037e 6091 0000 		lds r22,lcd_ypos
688
 716 0382 8091 0000 		lds r24,lcd_xpos
689
 717 0386 0E94 0000 		call put_char
690
 718               	.LM110:
691
 719 038a 8091 0000 		lds r24,lcd_xpos
692
 720 038e 8F5F      		subi r24,lo8(-(1))
693
 721 0390 8093 0000 		sts lcd_xpos,r24
694
 722               	.LM111:
695
 723 0394 8531      		cpi r24,lo8(21)
696
 724 0396 88F0      		brlo .L86
697
 725               	.LM112:
698
 726 0398 1092 0000 		sts lcd_xpos,__zero_reg__
699
 727               	.LM113:
700
 728 039c 0E94 0000 		call new_line
701
 729 03a0 0CC0      		rjmp .L86
702
 730               	.L88:
703
 731               	.LM114:
704
 732 03a2 9927      		clr r25
705
 733 03a4 8A30      		cpi r24,10
706
 734 03a6 9105      		cpc r25,__zero_reg__
707
 735 03a8 29F0      		breq .L93
708
 736 03aa 0D97      		sbiw r24,13
709
 737 03ac 29F4      		brne .L91
710
 738               	.LM115:
711
 739 03ae 1092 0000 		sts lcd_xpos,__zero_reg__
712
 740               	.LM116:
713
 741 03b2 02C0      		rjmp .L91
714
 742               	.L93:
715
 743               	.LM117:
716
 744 03b4 0E94 0000 		call new_line
717
 745               	.L91:
718
 746               	.LM118:
719
 747 03b8 2196      		adiw r28,1
720
 748               	.L86:
721
 749               	.LBB10:
722
 750 03ba FE01      		movw r30,r28
723
 751               	/* #APP */
724
 752 03bc 8491      		lpm r24, Z
725
 753
726
 754               	/* #NOAPP */
727
 755               	.LBE10:
728
 756 03be 8823      		tst r24
729
 757 03c0 B1F6      		brne .L94
730
 758               	.L96:
731
 759               	/* epilogue: frame size=0 */
732
 760 03c2 DF91      		pop r29
733
 761 03c4 CF91      		pop r28
734
 762 03c6 1F91      		pop r17
735
 763 03c8 0895      		ret
736
 764               	/* epilogue end (size=4) */
737
 765               	/* function lcd_printp size 68 (61) */
738
 766               	.LFE18:
739
 768               	.global	lcd_print_atp
740
 770               	lcd_print_atp:
741
 771               	.LFB19:
742
 772               	.LM119:
743
 773               	/* prologue: frame size=0 */
744
 774               	/* prologue end (size=0) */
745
 775               	.LM120:
746
 776 03ca 8093 0000 		sts lcd_xpos,r24
747
 777               	.LM121:
748
 778 03ce 6093 0000 		sts lcd_ypos,r22
749
 779               	.LM122:
750
 780 03d2 622F      		mov r22,r18
751
 781 03d4 CA01      		movw r24,r20
752
 782 03d6 0E94 0000 		call lcd_printp
753
 783               	/* epilogue: frame size=0 */
754
 784 03da 0895      		ret
755
 785               	/* epilogue end (size=1) */
756
 786               	/* function lcd_print_atp size 9 (8) */
757
 787               	.LFE19:
758
 789               	.global	lcd_print
759
 791               	lcd_print:
760
 792               	.LFB20:
761
 793               	.LM123:
762
 794               	/* prologue: frame size=0 */
763
 795 03dc 1F93      		push r17
764
 796 03de CF93      		push r28
765
 797 03e0 DF93      		push r29
766
 798               	/* prologue end (size=3) */
767
 799 03e2 EC01      		movw r28,r24
768
 800 03e4 162F      		mov r17,r22
769
 801               	.LM124:
770
 802 03e6 8881      		ld r24,Y
771
 803 03e8 8823      		tst r24
772
 804 03ea 39F1      		breq .L109
773
 805               	.L107:
774
 806               	.LM125:
775
 807 03ec 4881      		ld r20,Y
776
 808 03ee 4032      		cpi r20,lo8(32)
777
 809 03f0 A0F0      		brlo .L101
778
 810               	.LM126:
779
 811 03f2 2196      		adiw r28,1
780
 812 03f4 212F      		mov r18,r17
781
 813 03f6 6091 0000 		lds r22,lcd_ypos
782
 814 03fa 8091 0000 		lds r24,lcd_xpos
783
 815 03fe 0E94 0000 		call put_char
784
 816               	.LM127:
785
 817 0402 8091 0000 		lds r24,lcd_xpos
786
 818 0406 8F5F      		subi r24,lo8(-(1))
787
 819 0408 8093 0000 		sts lcd_xpos,r24
788
 820               	.LM128:
789
 821 040c 8531      		cpi r24,lo8(21)
790
 822 040e 90F0      		brlo .L99
791
 823               	.LM129:
792
 824 0410 1092 0000 		sts lcd_xpos,__zero_reg__
793
 825               	.LM130:
794
 826 0414 0E94 0000 		call new_line
795
 827 0418 0DC0      		rjmp .L99
796
 828               	.L101:
797
 829               	.LM131:
798
 830 041a 5527      		clr r21
799
 831 041c 4A30      		cpi r20,10
800
 832 041e 5105      		cpc r21,__zero_reg__
801
 833 0420 31F0      		breq .L106
802
 834 0422 4D30      		cpi r20,13
803
 835 0424 5105      		cpc r21,__zero_reg__
804
 836 0426 29F4      		brne .L104
805
 837               	.LM132:
806
 838 0428 1092 0000 		sts lcd_xpos,__zero_reg__
807
 839               	.LM133:
808
 840 042c 02C0      		rjmp .L104
809
 841               	.L106:
810
 842               	.LM134:
811
 843 042e 0E94 0000 		call new_line
812
 844               	.L104:
813
 845               	.LM135:
814
 846 0432 2196      		adiw r28,1
815
 847               	.L99:
816
 848 0434 8881      		ld r24,Y
817
 849 0436 8823      		tst r24
818
 850 0438 C9F6      		brne .L107
819
 851               	.L109:
820
 852               	/* epilogue: frame size=0 */
821
 853 043a DF91      		pop r29
822
 854 043c CF91      		pop r28
823
 855 043e 1F91      		pop r17
824
 856 0440 0895      		ret
825
 857               	/* epilogue end (size=4) */
826
 858               	/* function lcd_print size 51 (44) */
827
 859               	.LFE20:
828
 861               	.global	lcd_print_at
829
 863               	lcd_print_at:
830
 864               	.LFB21:
831
 865               	.LM136:
832
 866               	/* prologue: frame size=0 */
833
 867               	/* prologue end (size=0) */
834
 868               	.LM137:
835
 869 0442 8093 0000 		sts lcd_xpos,r24
836
 870               	.LM138:
837
 871 0446 6093 0000 		sts lcd_ypos,r22
838
 872               	.LM139:
839
 873 044a 622F      		mov r22,r18
840
 874 044c CA01      		movw r24,r20
841
 875 044e 0E94 0000 		call lcd_print
842
 876               	/* epilogue: frame size=0 */
843
 877 0452 0895      		ret
844
 878               	/* epilogue end (size=1) */
845
 879               	/* function lcd_print_at size 9 (8) */
846
 880               	.LFE21:
847
 882               	.global	lcd_plot
848
 884               	lcd_plot:
849
 885               	.LFB22:
850
 886               	.LM140:
851
 887               	/* prologue: frame size=0 */
852
 888               	/* prologue end (size=0) */
853
 889 0454 982F      		mov r25,r24
854
 890               	.LM141:
855
 891 0456 87FD      		sbrc r24,7
856
 892 0458 45C0      		rjmp .L111
857
 893               	.LM142:
858
 894 045a 6034      		cpi r22,lo8(64)
859
 895 045c 08F0      		brlo .+2
860
 896 045e 42C0      		rjmp .L111
861
 897               	.LM143:
862
 898 0460 862F      		mov r24,r22
863
 899 0462 8695      		lsr r24
864
 900 0464 8695      		lsr r24
865
 901 0466 8695      		lsr r24
866
 902 0468 A82F      		mov r26,r24
867
 903 046a BB27      		clr r27
868
 904 046c B695      		lsr r27
869
 905 046e BA2F      		mov r27,r26
870
 906 0470 AA27      		clr r26
871
 907 0472 B795      		ror r27
872
 908 0474 A795      		ror r26
873
 909 0476 A90F      		add r26,r25
874
 910 0478 B11D      		adc r27,__zero_reg__
875
 911               	.LM144:
876
 912 047a 262F      		mov r18,r22
877
 913 047c 3327      		clr r19
878
 914 047e 2770      		andi r18,lo8(7)
879
 915 0480 3070      		andi r19,hi8(7)
880
 916 0482 81E0      		ldi r24,lo8(1)
881
 917 0484 90E0      		ldi r25,hi8(1)
882
 918 0486 02C0      		rjmp 2f
883
 919 0488 880F      	1:	lsl r24
884
 920 048a 991F      		rol r25
885
 921 048c 2A95      	2:	dec r18
886
 922 048e E2F7      		brpl 1b
887
 923 0490 982F      		mov r25,r24
888
 924               	.LM145:
889
 925 0492 B370      		andi r27,hi8(1023)
890
 926               	.LM146:
891
 927 0494 5527      		clr r21
892
 928 0496 4130      		cpi r20,1
893
 929 0498 5105      		cpc r21,__zero_reg__
894
 930 049a 89F0      		breq .L115
895
 931 049c 4230      		cpi r20,2
896
 932 049e 5105      		cpc r21,__zero_reg__
897
 933 04a0 1CF4      		brge .L117
898
 934 04a2 452B      		or r20,r21
899
 935 04a4 29F0      		breq .L114
900
 936 04a6 17C0      		rjmp .L113
901
 937               	.L117:
902
 938 04a8 4230      		cpi r20,2
903
 939 04aa 5105      		cpc r21,__zero_reg__
904
 940 04ac 71F0      		breq .L116
905
 941 04ae 13C0      		rjmp .L113
906
 942               	.L114:
907
 943               	.LM147:
908
 944 04b0 FD01      		movw r30,r26
909
 945 04b2 E050      		subi r30,lo8(-(display_buffer))
910
 946 04b4 F040      		sbci r31,hi8(-(display_buffer))
911
 947 04b6 9095      		com r25
912
 948 04b8 8081      		ld r24,Z
913
 949 04ba 8923      		and r24,r25
914
 950 04bc 0BC0      		rjmp .L118
915
 951               	.L115:
916
 952               	.LM148:
917
 953 04be FD01      		movw r30,r26
918
 954 04c0 E050      		subi r30,lo8(-(display_buffer))
919
 955 04c2 F040      		sbci r31,hi8(-(display_buffer))
920
 956 04c4 8081      		ld r24,Z
921
 957 04c6 892B      		or r24,r25
922
 958 04c8 05C0      		rjmp .L118
923
 959               	.L116:
924
 960               	.LM149:
925
 961 04ca FD01      		movw r30,r26
926
 962 04cc E050      		subi r30,lo8(-(display_buffer))
927
 963 04ce F040      		sbci r31,hi8(-(display_buffer))
928
 964 04d0 8081      		ld r24,Z
929
 965 04d2 8927      		eor r24,r25
930
 966               	.L118:
931
 967 04d4 8083      		st Z,r24
932
 968               	.L113:
933
 969               	.LM150:
934
 970 04d6 FD01      		movw r30,r26
935
 971 04d8 E050      		subi r30,lo8(-(display_buffer))
936
 972 04da F040      		sbci r31,hi8(-(display_buffer))
937
 973 04dc 6081      		ld r22,Z
938
 974 04de CD01      		movw r24,r26
939
 975 04e0 0E94 0000 		call set_adress
940
 976               	.L111:
941
 977 04e4 0895      		ret
942
 978               	/* epilogue: frame size=0 */
943
 979               	/* epilogue: noreturn */
944
 980               	/* epilogue end (size=0) */
945
 981               	/* function lcd_plot size 75 (75) */
946
 982               	.LFE22:
947
 984               	.global	lcd_line
948
 986               	lcd_line:
949
 987               	.LFB23:
950
 988               	.LM151:
951
 989               	/* prologue: frame size=3 */
952
 990 04e6 2F92      		push r2
953
 991 04e8 3F92      		push r3
954
 992 04ea 4F92      		push r4
955
 993 04ec 5F92      		push r5
956
 994 04ee 6F92      		push r6
957
 995 04f0 7F92      		push r7
958
 996 04f2 8F92      		push r8
959
 997 04f4 9F92      		push r9
960
 998 04f6 AF92      		push r10
961
 999 04f8 BF92      		push r11
962
 1000 04fa CF92      		push r12
963
 1001 04fc DF92      		push r13
964
 1002 04fe EF92      		push r14
965
 1003 0500 FF92      		push r15
966
 1004 0502 0F93      		push r16
967
 1005 0504 1F93      		push r17
968
 1006 0506 CF93      		push r28
969
 1007 0508 DF93      		push r29
970
 1008 050a CDB7      		in r28,__SP_L__
971
 1009 050c DEB7      		in r29,__SP_H__
972
 1010 050e 2397      		sbiw r28,3
973
 1011 0510 0FB6      		in __tmp_reg__,__SREG__
974
 1012 0512 F894      		cli
975
 1013 0514 DEBF      		out __SP_H__,r29
976
 1014 0516 0FBE      		out __SREG__,__tmp_reg__
977
 1015 0518 CDBF      		out __SP_L__,r28
978
 1016               	/* prologue end (size=26) */
979
 1017 051a 0983      		std Y+1,r16
980
 1018               	.LM152:
981
 1019 051c A82E      		mov r10,r24
982
 1020 051e BB24      		clr r11
983
 1021               	.LM153:
984
 1022 0520 C62E      		mov r12,r22
985
 1023 0522 DD24      		clr r13
986
 1024               	.LM154:
987
 1025 0524 642E      		mov r6,r20
988
 1026 0526 7724      		clr r7
989
 1027 0528 7301      		movw r14,r6
990
 1028 052a EA18      		sub r14,r10
991
 1029 052c FB08      		sbc r15,r11
992
 1030               	.LM155:
993
 1031 052e 822E      		mov r8,r18
994
 1032 0530 9924      		clr r9
995
 1033 0532 8401      		movw r16,r8
996
 1034 0534 0C19      		sub r16,r12
997
 1035 0536 1D09      		sbc r17,r13
998
 1036               	.LM156:
999
 1037 0538 F7FE      		sbrs r15,7
1000
 1038 053a 04C0      		rjmp .L120
1001
 1039               	.LM157:
1002
 1040 053c 7FEF      		ldi r23,lo8(-1)
1003
 1041 053e 272E      		mov r2,r23
1004
 1042 0540 372E      		mov r3,r23
1005
 1043 0542 09C0      		rjmp .L121
1006
 1044               	.L120:
1007
 1045               	.LM158:
1008
 1046 0544 1E14      		cp __zero_reg__,r14
1009
 1047 0546 1F04      		cpc __zero_reg__,r15
1010
 1048 0548 24F4      		brge .L122
1011
 1049               	.LM159:
1012
 1050 054a 61E0      		ldi r22,lo8(1)
1013
 1051 054c 262E      		mov r2,r22
1014
 1052 054e 312C      		mov r3,__zero_reg__
1015
 1053 0550 02C0      		rjmp .L121
1016
 1054               	.L122:
1017
 1055               	.LM160:
1018
 1056 0552 2224      		clr r2
1019
 1057 0554 3324      		clr r3
1020
 1058               	.L121:
1021
 1059               	.LM161:
1022
 1060 0556 17FF      		sbrs r17,7
1023
 1061 0558 04C0      		rjmp .L124
1024
 1062               	.LM162:
1025
 1063 055a 5FEF      		ldi r21,lo8(-1)
1026
 1064 055c 452E      		mov r4,r21
1027
 1065 055e 552E      		mov r5,r21
1028
 1066 0560 09C0      		rjmp .L125
1029
 1067               	.L124:
1030
 1068               	.LM163:
1031
 1069 0562 1016      		cp __zero_reg__,r16
1032
 1070 0564 1106      		cpc __zero_reg__,r17
1033
 1071 0566 24F4      		brge .L126
1034
 1072               	.LM164:
1035
 1073 0568 41E0      		ldi r20,lo8(1)
1036
 1074 056a 442E      		mov r4,r20
1037
 1075 056c 512C      		mov r5,__zero_reg__
1038
 1076 056e 02C0      		rjmp .L125
1039
 1077               	.L126:
1040
 1078               	.LM165:
1041
 1079 0570 4424      		clr r4
1042
 1080 0572 5524      		clr r5
1043
 1081               	.L125:
1044
 1082               	.LM166:
1045
 1083 0574 F7FE      		sbrs r15,7
1046
 1084 0576 04C0      		rjmp .L128
1047
 1085               	.LM167:
1048
 1086 0578 F094      		com r15
1049
 1087 057a E194      		neg r14
1050
 1088 057c F108      		sbc r15,__zero_reg__
1051
 1089 057e F394      		inc r15
1052
 1090               	.L128:
1053
 1091               	.LM168:
1054
 1092 0580 17FF      		sbrs r17,7
1055
 1093 0582 03C0      		rjmp .L129
1056
 1094               	.LM169:
1057
 1095 0584 1095      		com r17
1058
 1096 0586 0195      		neg r16
1059
 1097 0588 1F4F      		sbci r17,lo8(-1)
1060
 1098               	.L129:
1061
 1099               	.LM170:
1062
 1100 058a 4981      		ldd r20,Y+1
1063
 1101 058c 6C2D      		mov r22,r12
1064
 1102 058e 8A2D      		mov r24,r10
1065
 1103 0590 0E94 0000 		call lcd_plot
1066
 1104               	.LM171:
1067
 1105 0594 0E15      		cp r16,r14
1068
 1106 0596 1F05      		cpc r17,r15
1069
 1107 0598 4CF5      		brge .L130
1070
 1108               	.LM172:
1071
 1109 059a C701      		movw r24,r14
1072
 1110 059c F7FC      		sbrc r15,7
1073
 1111 059e 0196      		adiw r24,1
1074
 1112               	.L131:
1075
 1113 05a0 9595      		asr r25
1076
 1114 05a2 8795      		ror r24
1077
 1115 05a4 2227      		clr r18
1078
 1116 05a6 3327      		clr r19
1079
 1117 05a8 281B      		sub r18,r24
1080
 1118 05aa 390B      		sbc r19,r25
1081
 1119 05ac 3B83      		std Y+3,r19
1082
 1120 05ae 2A83      		std Y+2,r18
1083
 1121               	.LM173:
1084
 1122 05b0 A614      		cp r10,r6
1085
 1123 05b2 B704      		cpc r11,r7
1086
 1124 05b4 09F4      		brne .+2
1087
 1125 05b6 41C0      		rjmp .L119
1088
 1126               	.L135:
1089
 1127               	.LM174:
1090
 1128 05b8 8A81      		ldd r24,Y+2
1091
 1129 05ba 9B81      		ldd r25,Y+3
1092
 1130 05bc 800F      		add r24,r16
1093
 1131 05be 911F      		adc r25,r17
1094
 1132 05c0 9B83      		std Y+3,r25
1095
 1133 05c2 8A83      		std Y+2,r24
1096
 1134               	.LM175:
1097
 1135 05c4 A20C      		add r10,r2
1098
 1136 05c6 B31C      		adc r11,r3
1099
 1137               	.LM176:
1100
 1138 05c8 1816      		cp __zero_reg__,r24
1101
 1139 05ca 1906      		cpc __zero_reg__,r25
1102
 1140 05cc 34F4      		brge .L134
1103
 1141               	.LM177:
1104
 1142 05ce C40C      		add r12,r4
1105
 1143 05d0 D51C      		adc r13,r5
1106
 1144               	.LM178:
1107
 1145 05d2 8E19      		sub r24,r14
1108
 1146 05d4 9F09      		sbc r25,r15
1109
 1147 05d6 9B83      		std Y+3,r25
1110
 1148 05d8 8A83      		std Y+2,r24
1111
 1149               	.L134:
1112
 1150               	.LM179:
1113
 1151 05da 4981      		ldd r20,Y+1
1114
 1152 05dc 6C2D      		mov r22,r12
1115
 1153 05de 8A2D      		mov r24,r10
1116
 1154 05e0 0E94 0000 		call lcd_plot
1117
 1155 05e4 A614      		cp r10,r6
1118
 1156 05e6 B704      		cpc r11,r7
1119
 1157 05e8 39F7      		brne .L135
1120
 1158 05ea 27C0      		rjmp .L119
1121
 1159               	.L130:
1122
 1160               	.LM180:
1123
 1161 05ec C801      		movw r24,r16
1124
 1162 05ee 17FD      		sbrc r17,7
1125
 1163 05f0 0196      		adiw r24,1
1126
 1164               	.L137:
1127
 1165 05f2 9595      		asr r25
1128
 1166 05f4 8795      		ror r24
1129
 1167 05f6 EE27      		clr r30
1130
 1168 05f8 FF27      		clr r31
1131
 1169 05fa E81B      		sub r30,r24
1132
 1170 05fc F90B      		sbc r31,r25
1133
 1171 05fe FB83      		std Y+3,r31
1134
 1172 0600 EA83      		std Y+2,r30
1135
 1173               	.LM181:
1136
 1174 0602 C814      		cp r12,r8
1137
 1175 0604 D904      		cpc r13,r9
1138
 1176 0606 C9F0      		breq .L119
1139
 1177               	.L141:
1140
 1178               	.LM182:
1141
 1179 0608 2A81      		ldd r18,Y+2
1142
 1180 060a 3B81      		ldd r19,Y+3
1143
 1181 060c 2E0D      		add r18,r14
1144
 1182 060e 3F1D      		adc r19,r15
1145
 1183 0610 3B83      		std Y+3,r19
1146
 1184 0612 2A83      		std Y+2,r18
1147
 1185               	.LM183:
1148
 1186 0614 C40C      		add r12,r4
1149
 1187 0616 D51C      		adc r13,r5
1150
 1188               	.LM184:
1151
 1189 0618 1216      		cp __zero_reg__,r18
1152
 1190 061a 1306      		cpc __zero_reg__,r19
1153
 1191 061c 34F4      		brge .L140
1154
 1192               	.LM185:
1155
 1193 061e A20C      		add r10,r2
1156
 1194 0620 B31C      		adc r11,r3
1157
 1195               	.LM186:
1158
 1196 0622 201B      		sub r18,r16
1159
 1197 0624 310B      		sbc r19,r17
1160
 1198 0626 3B83      		std Y+3,r19
1161
 1199 0628 2A83      		std Y+2,r18
1162
 1200               	.L140:
1163
 1201               	.LM187:
1164
 1202 062a 4981      		ldd r20,Y+1
1165
 1203 062c 6C2D      		mov r22,r12
1166
 1204 062e 8A2D      		mov r24,r10
1167
 1205 0630 0E94 0000 		call lcd_plot
1168
 1206 0634 C814      		cp r12,r8
1169
 1207 0636 D904      		cpc r13,r9
1170
 1208 0638 39F7      		brne .L141
1171
 1209               	.L119:
1172
 1210               	/* epilogue: frame size=3 */
1173
 1211 063a 2396      		adiw r28,3
1174
 1212 063c 0FB6      		in __tmp_reg__,__SREG__
1175
 1213 063e F894      		cli
1176
 1214 0640 DEBF      		out __SP_H__,r29
1177
 1215 0642 0FBE      		out __SREG__,__tmp_reg__
1178
 1216 0644 CDBF      		out __SP_L__,r28
1179
 1217 0646 DF91      		pop r29
1180
 1218 0648 CF91      		pop r28
1181
 1219 064a 1F91      		pop r17
1182
 1220 064c 0F91      		pop r16
1183
 1221 064e FF90      		pop r15
1184
 1222 0650 EF90      		pop r14
1185
 1223 0652 DF90      		pop r13
1186
 1224 0654 CF90      		pop r12
1187
 1225 0656 BF90      		pop r11
1188
 1226 0658 AF90      		pop r10
1189
 1227 065a 9F90      		pop r9
1190
 1228 065c 8F90      		pop r8
1191
 1229 065e 7F90      		pop r7
1192
 1230 0660 6F90      		pop r6
1193
 1231 0662 5F90      		pop r5
1194
 1232 0664 4F90      		pop r4
1195
 1233 0666 3F90      		pop r3
1196
 1234 0668 2F90      		pop r2
1197
 1235 066a 0895      		ret
1198
 1236               	/* epilogue end (size=25) */
1199
 1237               	/* function lcd_line size 197 (146) */
1200
 1238               	.LFE23:
1201
 1240               	.global	lcd_frect
1202
 1242               	lcd_frect:
1203
 1243               	.LFB24:
1204
 1244               	.LM188:
1205
 1245               	/* prologue: frame size=0 */
1206
 1246 066c BF92      		push r11
1207
 1247 066e CF92      		push r12
1208
 1248 0670 DF92      		push r13
1209
 1249 0672 EF92      		push r14
1210
 1250 0674 FF92      		push r15
1211
 1251 0676 0F93      		push r16
1212
 1252 0678 1F93      		push r17
1213
 1253 067a CF93      		push r28
1214
 1254 067c DF93      		push r29
1215
 1255               	/* prologue end (size=9) */
1216
 1256 067e 182F      		mov r17,r24
1217
 1257 0680 822F      		mov r24,r18
1218
 1258 0682 B02E      		mov r11,r16
1219
 1259               	.LM189:
1220
 1260 0684 17FD      		sbrc r17,7
1221
 1261               	.LM190:
1222
 1262 0686 1FE7      		ldi r17,lo8(127)
1223
 1263               	.L146:
1224
 1264               	.LM191:
1225
 1265 0688 6034      		cpi r22,lo8(64)
1226
 1266 068a 08F0      		brlo .L147
1227
 1267               	.LM192:
1228
 1268 068c 6FE3      		ldi r22,lo8(63)
1229
 1269               	.L147:
1230
 1270               	.LM193:
1231
 1271 068e 212F      		mov r18,r17
1232
 1272 0690 240F      		add r18,r20
1233
 1273 0692 312D      		mov r19,__zero_reg__
1234
 1274 0694 311D      		adc r19,__zero_reg__
1235
 1275 0696 6901      		movw r12,r18
1236
 1276               	.LM194:
1237
 1277 0698 262F      		mov r18,r22
1238
 1278 069a 3327      		clr r19
1239
 1279 069c 7901      		movw r14,r18
1240
 1280 069e E80E      		add r14,r24
1241
 1281 06a0 F11C      		adc r15,__zero_reg__
1242
 1282               	.LM195:
1243
 1283 06a2 81E8      		ldi r24,lo8(129)
1244
 1284 06a4 C816      		cp r12,r24
1245
 1285 06a6 D104      		cpc r13,__zero_reg__
1246
 1286 06a8 18F0      		brlo .L148
1247
 1287               	.LM196:
1248
 1288 06aa F0E8      		ldi r31,lo8(128)
1249
 1289 06ac CF2E      		mov r12,r31
1250
 1290 06ae D12C      		mov r13,__zero_reg__
1251
 1291               	.L148:
1252
 1292               	.LM197:
1253
 1293 06b0 81E4      		ldi r24,lo8(65)
1254
 1294 06b2 E816      		cp r14,r24
1255
 1295 06b4 F104      		cpc r15,__zero_reg__
1256
 1296 06b6 18F0      		brlo .L149
1257
 1297               	.LM198:
1258
 1298 06b8 E0E4      		ldi r30,lo8(64)
1259
 1299 06ba EE2E      		mov r14,r30
1260
 1300 06bc F12C      		mov r15,__zero_reg__
1261
 1301               	.L149:
1262
 1302               	.LM199:
1263
 1303 06be E901      		movw r28,r18
1264
 1304 06c0 E216      		cp r14,r18
1265
 1305 06c2 F306      		cpc r15,r19
1266
 1306 06c4 58F0      		brlo .L155
1267
 1307               	.L153:
1268
 1308               	.LM200:
1269
 1309 06c6 0B2D      		mov r16,r11
1270
 1310 06c8 2C2F      		mov r18,r28
1271
 1311 06ca 4C2D      		mov r20,r12
1272
 1312 06cc 6C2F      		mov r22,r28
1273
 1313 06ce 812F      		mov r24,r17
1274
 1314 06d0 0E94 0000 		call lcd_line
1275
 1315               	.LM201:
1276
 1316 06d4 2196      		adiw r28,1
1277
 1317 06d6 EC16      		cp r14,r28
1278
 1318 06d8 FD06      		cpc r15,r29
1279
 1319 06da A8F7      		brsh .L153
1280
 1320               	.L155:
1281
 1321               	/* epilogue: frame size=0 */
1282
 1322 06dc DF91      		pop r29
1283
 1323 06de CF91      		pop r28
1284
 1324 06e0 1F91      		pop r17
1285
 1325 06e2 0F91      		pop r16
1286
 1326 06e4 FF90      		pop r15
1287
 1327 06e6 EF90      		pop r14
1288
 1328 06e8 DF90      		pop r13
1289
 1329 06ea CF90      		pop r12
1290
 1330 06ec BF90      		pop r11
1291
 1331 06ee 0895      		ret
1292
 1332               	/* epilogue end (size=10) */
1293
 1333               	/* function lcd_frect size 67 (48) */
1294
 1334               	.LFE24:
1295
 1336               	.global	lcd_rect
1296
 1338               	lcd_rect:
1297
 1339               	.LFB25:
1298
 1340               	.LM202:
1299
 1341               	/* prologue: frame size=0 */
1300
 1342 06f0 CF92      		push r12
1301
 1343 06f2 DF92      		push r13
1302
 1344 06f4 EF92      		push r14
1303
 1345 06f6 FF92      		push r15
1304
 1346 06f8 0F93      		push r16
1305
 1347 06fa 1F93      		push r17
1306
 1348 06fc CF93      		push r28
1307
 1349 06fe DF93      		push r29
1308
 1350               	/* prologue end (size=8) */
1309
 1351 0700 D82E      		mov r13,r24
1310
 1352 0702 162F      		mov r17,r22
1311
 1353 0704 C02E      		mov r12,r16
1312
 1354               	.LM203:
1313
 1355 0706 87FF      		sbrs r24,7
1314
 1356 0708 02C0      		rjmp .L157
1315
 1357               	.LM204:
1316
 1358 070a BFE7      		ldi r27,lo8(127)
1317
 1359 070c DB2E      		mov r13,r27
1318
 1360               	.L157:
1319
 1361               	.LM205:
1320
 1362 070e 1034      		cpi r17,lo8(64)
1321
 1363 0710 08F0      		brlo .L158
1322
 1364               	.LM206:
1323
 1365 0712 1FE3      		ldi r17,lo8(63)
1324
 1366               	.L158:
1325
 1367               	.LM207:
1326
 1368 0714 8D2D      		mov r24,r13
1327
 1369 0716 840F      		add r24,r20
1328
 1370 0718 912D      		mov r25,__zero_reg__
1329
 1371 071a 911D      		adc r25,__zero_reg__
1330
 1372 071c EC01      		movw r28,r24
1331
 1373               	.LM208:
1332
 1374 071e 812F      		mov r24,r17
1333
 1375 0720 820F      		add r24,r18
1334
 1376 0722 912D      		mov r25,__zero_reg__
1335
 1377 0724 911D      		adc r25,__zero_reg__
1336
 1378 0726 7C01      		movw r14,r24
1337
 1379               	.LM209:
1338
 1380 0728 C138      		cpi r28,129
1339
 1381 072a D105      		cpc r29,__zero_reg__
1340
 1382 072c 10F0      		brlo .L159
1341
 1383               	.LM210:
1342
 1384 072e C0E8      		ldi r28,lo8(128)
1343
 1385 0730 D0E0      		ldi r29,hi8(128)
1344
 1386               	.L159:
1345
 1387               	.LM211:
1346
 1388 0732 91E4      		ldi r25,lo8(65)
1347
 1389 0734 E916      		cp r14,r25
1348
 1390 0736 F104      		cpc r15,__zero_reg__
1349
 1391 0738 18F0      		brlo .L160
1350
 1392               	.LM212:
1351
 1393 073a A0E4      		ldi r26,lo8(64)
1352
 1394 073c EA2E      		mov r14,r26
1353
 1395 073e F12C      		mov r15,__zero_reg__
1354
 1396               	.L160:
1355
 1397               	.LM213:
1356
 1398 0740 0C2D      		mov r16,r12
1357
 1399 0742 212F      		mov r18,r17
1358
 1400 0744 4C2F      		mov r20,r28
1359
 1401 0746 612F      		mov r22,r17
1360
 1402 0748 8D2D      		mov r24,r13
1361
 1403 074a 0E94 0000 		call lcd_line
1362
 1404               	.LM214:
1363
 1405 074e 2E2D      		mov r18,r14
1364
 1406 0750 4C2F      		mov r20,r28
1365
 1407 0752 612F      		mov r22,r17
1366
 1408 0754 8C2F      		mov r24,r28
1367
 1409 0756 0E94 0000 		call lcd_line
1368
 1410               	.LM215:
1369
 1411 075a 2E2D      		mov r18,r14
1370
 1412 075c 4D2D      		mov r20,r13
1371
 1413 075e 6E2D      		mov r22,r14
1372
 1414 0760 8C2F      		mov r24,r28
1373
 1415 0762 0E94 0000 		call lcd_line
1374
 1416               	.LM216:
1375
 1417 0766 212F      		mov r18,r17
1376
 1418 0768 4D2D      		mov r20,r13
1377
 1419 076a 6E2D      		mov r22,r14
1378
 1420 076c 8D2D      		mov r24,r13
1379
 1421 076e 0E94 0000 		call lcd_line
1380
 1422               	/* epilogue: frame size=0 */
1381
 1423 0772 DF91      		pop r29
1382
 1424 0774 CF91      		pop r28
1383
 1425 0776 1F91      		pop r17
1384
 1426 0778 0F91      		pop r16
1385
 1427 077a FF90      		pop r15
1386
 1428 077c EF90      		pop r14
1387
 1429 077e DF90      		pop r13
1388
 1430 0780 CF90      		pop r12
1389
 1431 0782 0895      		ret
1390
 1432               	/* epilogue end (size=9) */
1391
 1433               	/* function lcd_rect size 74 (57) */
1392
 1434               	.LFE25:
1393
 1436               	.global	draw_circle
1394
 1438               	draw_circle:
1395
 1439               	.LFB26:
1396
 1440               	.LM217:
1397
 1441               	/* prologue: frame size=0 */
1398
 1442 0784 2F92      		push r2
1399
 1443 0786 3F92      		push r3
1400
 1444 0788 4F92      		push r4
1401
 1445 078a 5F92      		push r5
1402
 1446 078c 6F92      		push r6
1403
 1447 078e 7F92      		push r7
1404
 1448 0790 8F92      		push r8
1405
 1449 0792 9F92      		push r9
1406
 1450 0794 AF92      		push r10
1407
 1451 0796 BF92      		push r11
1408
 1452 0798 CF92      		push r12
1409
 1453 079a DF92      		push r13
1410
 1454 079c EF92      		push r14
1411
 1455 079e FF92      		push r15
1412
 1456 07a0 0F93      		push r16
1413
 1457 07a2 1F93      		push r17
1414
 1458 07a4 CF93      		push r28
1415
 1459 07a6 DF93      		push r29
1416
 1460               	/* prologue end (size=18) */
1417
 1461 07a8 5C01      		movw r10,r24
1418
 1462 07aa 6B01      		movw r12,r22
1419
 1463 07ac E22E      		mov r14,r18
1420
 1464               	.LM218:
1421
 1465 07ae C1E0      		ldi r28,lo8(1)
1422
 1466 07b0 8C2E      		mov r8,r28
1423
 1467 07b2 912C      		mov r9,__zero_reg__
1424
 1468 07b4 841A      		sub r8,r20
1425
 1469 07b6 950A      		sbc r9,r21
1426
 1470               	.LM219:
1427
 1471 07b8 2224      		clr r2
1428
 1472 07ba 3324      		clr r3
1429
 1473               	.LM220:
1430
 1474 07bc 8EEF      		ldi r24,lo8(-2)
1431
 1475 07be 9FEF      		ldi r25,hi8(-2)
1432
 1476 07c0 489F      		mul r20,r24
1433
 1477 07c2 2001      		movw r4,r0
1434
 1478 07c4 499F      		mul r20,r25
1435
 1479 07c6 500C      		add r5,r0
1436
 1480 07c8 589F      		mul r21,r24
1437
 1481 07ca 500C      		add r5,r0
1438
 1482 07cc 1124      		clr r1
1439
 1483               	.LM221:
1440
 1484 07ce 3101      		movw r6,r2
1441
 1485               	.LM222:
1442
 1486 07d0 EA01      		movw r28,r20
1443
 1487               	.LM223:
1444
 1488 07d2 862F      		mov r24,r22
1445
 1489 07d4 840F      		add r24,r20
1446
 1490 07d6 422F      		mov r20,r18
1447
 1491 07d8 682F      		mov r22,r24
1448
 1492 07da 8A2D      		mov r24,r10
1449
 1493 07dc 0E94 0000 		call lcd_plot
1450
 1494               	.LM224:
1451
 1495 07e0 8C2D      		mov r24,r12
1452
 1496 07e2 8C1B      		sub r24,r28
1453
 1497 07e4 4E2D      		mov r20,r14
1454
 1498 07e6 682F      		mov r22,r24
1455
 1499 07e8 8A2D      		mov r24,r10
1456
 1500 07ea 0E94 0000 		call lcd_plot
1457
 1501               	.LM225:
1458
 1502 07ee 4E2D      		mov r20,r14
1459
 1503 07f0 6C2D      		mov r22,r12
1460
 1504 07f2 8A2D      		mov r24,r10
1461
 1505 07f4 8C0F      		add r24,r28
1462
 1506 07f6 0E94 0000 		call lcd_plot
1463
 1507               	.LM226:
1464
 1508 07fa 4E2D      		mov r20,r14
1465
 1509 07fc 6C2D      		mov r22,r12
1466
 1510 07fe 8A2D      		mov r24,r10
1467
 1511 0800 8C1B      		sub r24,r28
1468
 1512 0802 0E94 0000 		call lcd_plot
1469
 1513               	.LM227:
1470
 1514 0806 2C16      		cp r2,r28
1471
 1515 0808 3D06      		cpc r3,r29
1472
 1516 080a 0CF0      		brlt .+2
1473
 1517 080c 51C0      		rjmp .L167
1474
 1518               	.L165:
1475
 1519               	.LM228:
1476
 1520 080e 97FC      		sbrc r9,7
1477
 1521 0810 07C0      		rjmp .L164
1478
 1522               	.LM229:
1479
 1523 0812 2197      		sbiw r28,1
1480
 1524               	.LM230:
1481
 1525 0814 82E0      		ldi r24,lo8(2)
1482
 1526 0816 90E0      		ldi r25,hi8(2)
1483
 1527 0818 480E      		add r4,r24
1484
 1528 081a 591E      		adc r5,r25
1485
 1529               	.LM231:
1486
 1530 081c 840C      		add r8,r4
1487
 1531 081e 951C      		adc r9,r5
1488
 1532               	.L164:
1489
 1533               	.LM232:
1490
 1534 0820 0894      		sec
1491
 1535 0822 611C      		adc r6,__zero_reg__
1492
 1536 0824 711C      		adc r7,__zero_reg__
1493
 1537               	.LM233:
1494
 1538 0826 82E0      		ldi r24,lo8(2)
1495
 1539 0828 90E0      		ldi r25,hi8(2)
1496
 1540 082a 280E      		add r2,r24
1497
 1541 082c 391E      		adc r3,r25
1498
 1542               	.LM234:
1499
 1543 082e 820C      		add r8,r2
1500
 1544 0830 931C      		adc r9,r3
1501
 1545 0832 0894      		sec
1502
 1546 0834 811C      		adc r8,__zero_reg__
1503
 1547 0836 911C      		adc r9,__zero_reg__
1504
 1548               	.LM235:
1505
 1549 0838 1C2D      		mov r17,r12
1506
 1550 083a 1C0F      		add r17,r28
1507
 1551 083c FA2C      		mov r15,r10
1508
 1552 083e F60C      		add r15,r6
1509
 1553 0840 4E2D      		mov r20,r14
1510
 1554 0842 612F      		mov r22,r17
1511
 1555 0844 8F2D      		mov r24,r15
1512
 1556 0846 0E94 0000 		call lcd_plot
1513
 1557               	.LM236:
1514
 1558 084a 0A2D      		mov r16,r10
1515
 1559 084c 0619      		sub r16,r6
1516
 1560 084e 4E2D      		mov r20,r14
1517
 1561 0850 612F      		mov r22,r17
1518
 1562 0852 802F      		mov r24,r16
1519
 1563 0854 0E94 0000 		call lcd_plot
1520
 1564               	.LM237:
1521
 1565 0858 1C2D      		mov r17,r12
1522
 1566 085a 1C1B      		sub r17,r28
1523
 1567 085c 4E2D      		mov r20,r14
1524
 1568 085e 612F      		mov r22,r17
1525
 1569 0860 8F2D      		mov r24,r15
1526
 1570 0862 0E94 0000 		call lcd_plot
1527
 1571               	.LM238:
1528
 1572 0866 4E2D      		mov r20,r14
1529
 1573 0868 612F      		mov r22,r17
1530
 1574 086a 802F      		mov r24,r16
1531
 1575 086c 0E94 0000 		call lcd_plot
1532
 1576               	.LM239:
1533
 1577 0870 1C2D      		mov r17,r12
1534
 1578 0872 160D      		add r17,r6
1535
 1579 0874 FA2C      		mov r15,r10
1536
 1580 0876 FC0E      		add r15,r28
1537
 1581 0878 4E2D      		mov r20,r14
1538
 1582 087a 612F      		mov r22,r17
1539
 1583 087c 8F2D      		mov r24,r15
1540
 1584 087e 0E94 0000 		call lcd_plot
1541
 1585               	.LM240:
1542
 1586 0882 0A2D      		mov r16,r10
1543
 1587 0884 0C1B      		sub r16,r28
1544
 1588 0886 4E2D      		mov r20,r14
1545
 1589 0888 612F      		mov r22,r17
1546
 1590 088a 802F      		mov r24,r16
1547
 1591 088c 0E94 0000 		call lcd_plot
1548
 1592               	.LM241:
1549
 1593 0890 1C2D      		mov r17,r12
1550
 1594 0892 1619      		sub r17,r6
1551
 1595 0894 4E2D      		mov r20,r14
1552
 1596 0896 612F      		mov r22,r17
1553
 1597 0898 8F2D      		mov r24,r15
1554
 1598 089a 0E94 0000 		call lcd_plot
1555
 1599               	.LM242:
1556
 1600 089e 4E2D      		mov r20,r14
1557
 1601 08a0 612F      		mov r22,r17
1558
 1602 08a2 802F      		mov r24,r16
1559
 1603 08a4 0E94 0000 		call lcd_plot
1560
 1604 08a8 6C16      		cp r6,r28
1561
 1605 08aa 7D06      		cpc r7,r29
1562
 1606 08ac 0CF4      		brge .+2
1563
 1607 08ae AFCF      		rjmp .L165
1564
 1608               	.L167:
1565
 1609               	/* epilogue: frame size=0 */
1566
 1610 08b0 DF91      		pop r29
1567
 1611 08b2 CF91      		pop r28
1568
 1612 08b4 1F91      		pop r17
1569
 1613 08b6 0F91      		pop r16
1570
 1614 08b8 FF90      		pop r15
1571
 1615 08ba EF90      		pop r14
1572
 1616 08bc DF90      		pop r13
1573
 1617 08be CF90      		pop r12
1574
 1618 08c0 BF90      		pop r11
1575
 1619 08c2 AF90      		pop r10
1576
 1620 08c4 9F90      		pop r9
1577
 1621 08c6 8F90      		pop r8
1578
 1622 08c8 7F90      		pop r7
1579
 1623 08ca 6F90      		pop r6
1580
 1624 08cc 5F90      		pop r5
1581
 1625 08ce 4F90      		pop r4
1582
 1626 08d0 3F90      		pop r3
1583
 1627 08d2 2F90      		pop r2
1584
 1628 08d4 0895      		ret
1585
 1629               	/* epilogue end (size=19) */
1586
 1630               	/* function draw_circle size 169 (132) */
1587
 1631               	.LFE26:
1588
 1633               	.global	draw_fcircle
1589
 1635               	draw_fcircle:
1590
 1636               	.LFB27:
1591
 1637               	.LM243:
1592
 1638               	/* prologue: frame size=0 */
1593
 1639 08d6 2F92      		push r2
1594
 1640 08d8 3F92      		push r3
1595
 1641 08da 4F92      		push r4
1596
 1642 08dc 5F92      		push r5
1597
 1643 08de 6F92      		push r6
1598
 1644 08e0 7F92      		push r7
1599
 1645 08e2 8F92      		push r8
1600
 1646 08e4 9F92      		push r9
1601
 1647 08e6 AF92      		push r10
1602
 1648 08e8 BF92      		push r11
1603
 1649 08ea CF92      		push r12
1604
 1650 08ec DF92      		push r13
1605
 1651 08ee FF92      		push r15
1606
 1652 08f0 0F93      		push r16
1607
 1653 08f2 1F93      		push r17
1608
 1654 08f4 CF93      		push r28
1609
 1655 08f6 DF93      		push r29
1610
 1656               	/* prologue end (size=17) */
1611
 1657 08f8 5C01      		movw r10,r24
1612
 1658 08fa 6B01      		movw r12,r22
1613
 1659               	.LM244:
1614
 1660 08fc 11E0      		ldi r17,lo8(1)
1615
 1661 08fe 612E      		mov r6,r17
1616
 1662 0900 712C      		mov r7,__zero_reg__
1617
 1663 0902 641A      		sub r6,r20
1618
 1664 0904 750A      		sbc r7,r21
1619
 1665               	.LM245:
1620
 1666 0906 2224      		clr r2
1621
 1667 0908 3324      		clr r3
1622
 1668               	.LM246:
1623
 1669 090a 8EEF      		ldi r24,lo8(-2)
1624
 1670 090c 9FEF      		ldi r25,hi8(-2)
1625
 1671 090e 489F      		mul r20,r24
1626
 1672 0910 2001      		movw r4,r0
1627
 1673 0912 499F      		mul r20,r25
1628
 1674 0914 500C      		add r5,r0
1629
 1675 0916 589F      		mul r21,r24
1630
 1676 0918 500C      		add r5,r0
1631
 1677 091a 1124      		clr r1
1632
 1678               	.LM247:
1633
 1679 091c 4101      		movw r8,r2
1634
 1680               	.LM248:
1635
 1681 091e EA01      		movw r28,r20
1636
 1682               	.LM249:
1637
 1683 0920 862F      		mov r24,r22
1638
 1684 0922 841B      		sub r24,r20
1639
 1685 0924 962F      		mov r25,r22
1640
 1686 0926 940F      		add r25,r20
1641
 1687 0928 01E0      		ldi r16,lo8(1)
1642
 1688 092a 282F      		mov r18,r24
1643
 1689 092c 4A2D      		mov r20,r10
1644
 1690 092e 692F      		mov r22,r25
1645
 1691 0930 8A2D      		mov r24,r10
1646
 1692 0932 0E94 0000 		call lcd_line
1647
 1693               	.LM250:
1648
 1694 0936 8A2D      		mov r24,r10
1649
 1695 0938 8C1B      		sub r24,r28
1650
 1696 093a 2C2D      		mov r18,r12
1651
 1697 093c 482F      		mov r20,r24
1652
 1698 093e 6C2D      		mov r22,r12
1653
 1699 0940 8A2D      		mov r24,r10
1654
 1700 0942 8C0F      		add r24,r28
1655
 1701 0944 0E94 0000 		call lcd_line
1656
 1702               	.LM251:
1657
 1703 0948 2C16      		cp r2,r28
1658
 1704 094a 3D06      		cpc r3,r29
1659
 1705 094c 0CF0      		brlt .+2
1660
 1706 094e 42C0      		rjmp .L174
1661
 1707               	.L172:
1662
 1708               	.LM252:
1663
 1709 0950 77FC      		sbrc r7,7
1664
 1710 0952 07C0      		rjmp .L171
1665
 1711               	.LM253:
1666
 1712 0954 2197      		sbiw r28,1
1667
 1713               	.LM254:
1668
 1714 0956 82E0      		ldi r24,lo8(2)
1669
 1715 0958 90E0      		ldi r25,hi8(2)
1670
 1716 095a 480E      		add r4,r24
1671
 1717 095c 591E      		adc r5,r25
1672
 1718               	.LM255:
1673
 1719 095e 640C      		add r6,r4
1674
 1720 0960 751C      		adc r7,r5
1675
 1721               	.L171:
1676
 1722               	.LM256:
1677
 1723 0962 0894      		sec
1678
 1724 0964 811C      		adc r8,__zero_reg__
1679
 1725 0966 911C      		adc r9,__zero_reg__
1680
 1726               	.LM257:
1681
 1727 0968 82E0      		ldi r24,lo8(2)
1682
 1728 096a 90E0      		ldi r25,hi8(2)
1683
 1729 096c 280E      		add r2,r24
1684
 1730 096e 391E      		adc r3,r25
1685
 1731               	.LM258:
1686
 1732 0970 620C      		add r6,r2
1687
 1733 0972 731C      		adc r7,r3
1688
 1734 0974 0894      		sec
1689
 1735 0976 611C      		adc r6,__zero_reg__
1690
 1736 0978 711C      		adc r7,__zero_reg__
1691
 1737               	.LM259:
1692
 1738 097a 8C2D      		mov r24,r12
1693
 1739 097c 8C0F      		add r24,r28
1694
 1740 097e 1A2D      		mov r17,r10
1695
 1741 0980 1819      		sub r17,r8
1696
 1742 0982 FA2C      		mov r15,r10
1697
 1743 0984 F80C      		add r15,r8
1698
 1744 0986 01E0      		ldi r16,lo8(1)
1699
 1745 0988 282F      		mov r18,r24
1700
 1746 098a 412F      		mov r20,r17
1701
 1747 098c 682F      		mov r22,r24
1702
 1748 098e 8F2D      		mov r24,r15
1703
 1749 0990 0E94 0000 		call lcd_line
1704
 1750               	.LM260:
1705
 1751 0994 8C2D      		mov r24,r12
1706
 1752 0996 8C1B      		sub r24,r28
1707
 1753 0998 282F      		mov r18,r24
1708
 1754 099a 412F      		mov r20,r17
1709
 1755 099c 682F      		mov r22,r24
1710
 1756 099e 8F2D      		mov r24,r15
1711
 1757 09a0 0E94 0000 		call lcd_line
1712
 1758               	.LM261:
1713
 1759 09a4 8C2D      		mov r24,r12
1714
 1760 09a6 880D      		add r24,r8
1715
 1761 09a8 1A2D      		mov r17,r10
1716
 1762 09aa 1C1B      		sub r17,r28
1717
 1763 09ac FA2C      		mov r15,r10
1718
 1764 09ae FC0E      		add r15,r28
1719
 1765 09b0 282F      		mov r18,r24
1720
 1766 09b2 412F      		mov r20,r17
1721
 1767 09b4 682F      		mov r22,r24
1722
 1768 09b6 8F2D      		mov r24,r15
1723
 1769 09b8 0E94 0000 		call lcd_line
1724
 1770               	.LM262:
1725
 1771 09bc 8C2D      		mov r24,r12
1726
 1772 09be 8819      		sub r24,r8
1727
 1773 09c0 282F      		mov r18,r24
1728
 1774 09c2 412F      		mov r20,r17
1729
 1775 09c4 682F      		mov r22,r24
1730
 1776 09c6 8F2D      		mov r24,r15
1731
 1777 09c8 0E94 0000 		call lcd_line
1732
 1778 09cc 8C16      		cp r8,r28
1733
 1779 09ce 9D06      		cpc r9,r29
1734
 1780 09d0 0CF4      		brge .+2
1735
 1781 09d2 BECF      		rjmp .L172
1736
 1782               	.L174:
1737
 1783               	/* epilogue: frame size=0 */
1738
 1784 09d4 DF91      		pop r29
1739
 1785 09d6 CF91      		pop r28
1740
 1786 09d8 1F91      		pop r17
1741
 1787 09da 0F91      		pop r16
1742
 1788 09dc FF90      		pop r15
1743
 1789 09de DF90      		pop r13
1744
 1790 09e0 CF90      		pop r12
1745
 1791 09e2 BF90      		pop r11
1746
 1792 09e4 AF90      		pop r10
1747
 1793 09e6 9F90      		pop r9
1748
 1794 09e8 8F90      		pop r8
1749
 1795 09ea 7F90      		pop r7
1750
 1796 09ec 6F90      		pop r6
1751
 1797 09ee 5F90      		pop r5
1752
 1798 09f0 4F90      		pop r4
1753
 1799 09f2 3F90      		pop r3
1754
 1800 09f4 2F90      		pop r2
1755
 1801 09f6 0895      		ret
1756
 1802               	/* epilogue end (size=18) */
1757
 1803               	/* function draw_fcircle size 145 (110) */
1758
 1804               	.LFE27:
1759
 1806               		.comm display_buffer,1024,1
1760
 1807               		.comm display_buffer_pointer,2,1
1761
 1808               		.comm display_buffer_counter,1,1
1762
 1809               		.comm display_page_counter,1,1
1763
 1810               		.comm display_mode,1,1
1764
 1811               		.comm lcd_xpos,1,1
1765
 1812               		.comm lcd_ypos,1,1
1766
 1813               	.Letext0:
1767
DEFINED SYMBOLS
1768
                            *ABS*:00000000 lcd.c
1769
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:3      *ABS*:0000003f __SREG__
1770
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:4      *ABS*:0000003e __SP_H__
1771
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:5      *ABS*:0000003d __SP_L__
1772
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:6      *ABS*:00000000 __tmp_reg__
1773
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:7      *ABS*:00000001 __zero_reg__
1774
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:20     .text:00000000 send_byte
1775
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:46     .text:00000010 cls
1776
                            *COM*:00000400 display_buffer
1777
                            *COM*:00000001 lcd_xpos
1778
                            *COM*:00000001 lcd_ypos
1779
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:118    .text:00000074 lcd_cls
1780
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:133    .text:0000007a wait_1ms
1781
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:162    .text:00000084 wait_ms
1782
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:199    .text:000000ae lcd_init
1783
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:280    .text:0000012a set_adress
1784
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:331    .text:00000170 scroll
1785
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:403    .text:000001da put_char
1786
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:647    .text:00000342 new_line
1787
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:674    .text:0000035c lcd_printp
1788
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:770    .text:000003ca lcd_print_atp
1789
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:791    .text:000003dc lcd_print
1790
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:863    .text:00000442 lcd_print_at
1791
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:884    .text:00000454 lcd_plot
1792
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:986    .text:000004e6 lcd_line
1793
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:1242   .text:0000066c lcd_frect
1794
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:1338   .text:000006f0 lcd_rect
1795
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:1438   .text:00000784 draw_circle
1796
C:\DOKUME~1\thomas\LOKALE~1\Temp/ccUHaaaa.s:1635   .text:000008d6 draw_fcircle
1797
                            *COM*:00000002 display_buffer_pointer
1798
                            *COM*:00000001 display_buffer_counter
1799
                            *COM*:00000001 display_page_counter
1800
                            *COM*:00000001 display_mode
1801
 
1802
UNDEFINED SYMBOLS
1803
__do_copy_data
1804
__do_clear_bss
1805
f8x6