Files
2021-04-06 16:58:14 +02:00

2889 lines
111 KiB
Plaintext

Eindopdracht.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 00000028 00800100 000013b6 0000144a 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 000013b6 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 0000000c 00800128 00800128 00001472 2**0
ALLOC
3 .comment 0000005c 00000000 00000000 00001472 2**0
CONTENTS, READONLY
4 .note.gnu.avr.deviceinfo 0000003c 00000000 00000000 000014d0 2**2
CONTENTS, READONLY
5 .debug_aranges 00000158 00000000 00000000 0000150c 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_info 00001677 00000000 00000000 00001664 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_abbrev 00000d6a 00000000 00000000 00002cdb 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_line 00000b32 00000000 00000000 00003a45 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_frame 000003d8 00000000 00000000 00004578 2**2
CONTENTS, READONLY, DEBUGGING
10 .debug_str 00000794 00000000 00000000 00004950 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_loc 000009a3 00000000 00000000 000050e4 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_ranges 00000118 00000000 00000000 00005a87 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: c2 c0 rjmp .+388 ; 0x186 <__ctors_end>
2: 00 00 nop
4: de c0 rjmp .+444 ; 0x1c2 <__bad_interrupt>
6: 00 00 nop
8: dc c0 rjmp .+440 ; 0x1c2 <__bad_interrupt>
a: 00 00 nop
c: e3 c1 rjmp .+966 ; 0x3d4 <__vector_3>
e: 00 00 nop
10: d8 c0 rjmp .+432 ; 0x1c2 <__bad_interrupt>
12: 00 00 nop
14: d6 c0 rjmp .+428 ; 0x1c2 <__bad_interrupt>
16: 00 00 nop
18: d4 c0 rjmp .+424 ; 0x1c2 <__bad_interrupt>
1a: 00 00 nop
1c: d2 c0 rjmp .+420 ; 0x1c2 <__bad_interrupt>
1e: 00 00 nop
20: d0 c0 rjmp .+416 ; 0x1c2 <__bad_interrupt>
22: 00 00 nop
24: 30 c2 rjmp .+1120 ; 0x486 <__vector_9>
26: 00 00 nop
28: cc c0 rjmp .+408 ; 0x1c2 <__bad_interrupt>
2a: 00 00 nop
2c: ca c0 rjmp .+404 ; 0x1c2 <__bad_interrupt>
2e: 00 00 nop
30: c8 c0 rjmp .+400 ; 0x1c2 <__bad_interrupt>
32: 00 00 nop
34: c6 c0 rjmp .+396 ; 0x1c2 <__bad_interrupt>
36: 00 00 nop
38: c4 c0 rjmp .+392 ; 0x1c2 <__bad_interrupt>
3a: 00 00 nop
3c: c2 c0 rjmp .+388 ; 0x1c2 <__bad_interrupt>
3e: 00 00 nop
40: c0 c0 rjmp .+384 ; 0x1c2 <__bad_interrupt>
42: 00 00 nop
44: be c0 rjmp .+380 ; 0x1c2 <__bad_interrupt>
46: 00 00 nop
48: bc c0 rjmp .+376 ; 0x1c2 <__bad_interrupt>
4a: 00 00 nop
4c: ba c0 rjmp .+372 ; 0x1c2 <__bad_interrupt>
4e: 00 00 nop
50: b8 c0 rjmp .+368 ; 0x1c2 <__bad_interrupt>
52: 00 00 nop
54: b6 c0 rjmp .+364 ; 0x1c2 <__bad_interrupt>
56: 00 00 nop
58: b4 c0 rjmp .+360 ; 0x1c2 <__bad_interrupt>
5a: 00 00 nop
5c: b2 c0 rjmp .+356 ; 0x1c2 <__bad_interrupt>
5e: 00 00 nop
60: b0 c0 rjmp .+352 ; 0x1c2 <__bad_interrupt>
62: 00 00 nop
64: ae c0 rjmp .+348 ; 0x1c2 <__bad_interrupt>
66: 00 00 nop
68: ac c0 rjmp .+344 ; 0x1c2 <__bad_interrupt>
6a: 00 00 nop
6c: aa c0 rjmp .+340 ; 0x1c2 <__bad_interrupt>
6e: 00 00 nop
70: a8 c0 rjmp .+336 ; 0x1c2 <__bad_interrupt>
72: 00 00 nop
74: a6 c0 rjmp .+332 ; 0x1c2 <__bad_interrupt>
76: 00 00 nop
78: a4 c0 rjmp .+328 ; 0x1c2 <__bad_interrupt>
7a: 00 00 nop
7c: a2 c0 rjmp .+324 ; 0x1c2 <__bad_interrupt>
7e: 00 00 nop
80: a0 c0 rjmp .+320 ; 0x1c2 <__bad_interrupt>
82: 00 00 nop
84: 9e c0 rjmp .+316 ; 0x1c2 <__bad_interrupt>
86: 00 00 nop
88: 9c c0 rjmp .+312 ; 0x1c2 <__bad_interrupt>
...
0000008c <__trampolines_end>:
8c: 00 40 sbci r16, 0x00 ; 0
8e: 7a 10 cpse r7, r10
90: f3 5a subi r31, 0xA3 ; 163
92: 00 a0 ldd r0, Z+32 ; 0x20
94: 72 4e sbci r23, 0xE2 ; 226
96: 18 09 sbc r17, r8
98: 00 10 cpse r0, r0
9a: a5 d4 rcall .+2378 ; 0x9e6 <vfprintf+0x2a>
9c: e8 00 .word 0x00e8 ; ????
9e: 00 e8 ldi r16, 0x80 ; 128
a0: 76 48 sbci r23, 0x86 ; 134
a2: 17 00 .word 0x0017 ; ????
a4: 00 e4 ldi r16, 0x40 ; 64
a6: 0b 54 subi r16, 0x4B ; 75
a8: 02 00 .word 0x0002 ; ????
aa: 00 ca rjmp .-3072 ; 0xfffff4ac <__eeprom_end+0xff7ef4ac>
ac: 9a 3b cpi r25, 0xBA ; 186
ae: 00 00 nop
b0: 00 e1 ldi r16, 0x10 ; 16
b2: f5 05 cpc r31, r5
b4: 00 00 nop
b6: 80 96 adiw r24, 0x20 ; 32
b8: 98 00 .word 0x0098 ; ????
ba: 00 00 nop
bc: 40 42 sbci r20, 0x20 ; 32
be: 0f 00 .word 0x000f ; ????
c0: 00 00 nop
c2: a0 86 std Z+8, r10 ; 0x08
c4: 01 00 .word 0x0001 ; ????
c6: 00 00 nop
c8: 10 27 eor r17, r16
ca: 00 00 nop
cc: 00 00 nop
ce: e8 03 fmulsu r22, r16
d0: 00 00 nop
d2: 00 00 nop
d4: 64 00 .word 0x0064 ; ????
d6: 00 00 nop
d8: 00 00 nop
da: 0a 00 .word 0x000a ; ????
dc: 00 00 nop
de: 00 00 nop
e0: 01 00 .word 0x0001 ; ????
e2: 00 00 nop
e4: 00 00 nop
e6: 2c 76 andi r18, 0x6C ; 108
e8: d8 88 ldd r13, Y+16 ; 0x10
ea: dc 67 ori r29, 0x7C ; 124
ec: 4f 08 sbc r4, r15
ee: 23 df rcall .-442 ; 0xffffff36 <__eeprom_end+0xff7eff36>
f0: c1 df rcall .-126 ; 0x74 <__SREG__+0x35>
f2: ae 59 subi r26, 0x9E ; 158
f4: e1 b1 in r30, 0x01 ; 1
f6: b7 96 adiw r30, 0x27 ; 39
f8: e5 e3 ldi r30, 0x35 ; 53
fa: e4 53 subi r30, 0x34 ; 52
fc: c6 3a cpi r28, 0xA6 ; 166
fe: e6 51 subi r30, 0x16 ; 22
100: 99 76 andi r25, 0x69 ; 105
102: 96 e8 ldi r25, 0x86 ; 134
104: e6 c2 rjmp .+1484 ; 0x6d2 <__divsf3_pse+0x60>
106: 84 26 eor r8, r20
108: eb 89 ldd r30, Y+19 ; 0x13
10a: 8c 9b sbis 0x11, 4 ; 17
10c: 62 ed ldi r22, 0xD2 ; 210
10e: 40 7c andi r20, 0xC0 ; 192
110: 6f fc .word 0xfc6f ; ????
112: ef bc out 0x2f, r14 ; 47
114: 9c 9f mul r25, r28
116: 40 f2 brcs .-112 ; 0xa8 <__trampolines_end+0x1c>
118: ba a5 ldd r27, Y+42 ; 0x2a
11a: 6f a5 ldd r22, Y+47 ; 0x2f
11c: f4 90 lpm r15, Z
11e: 05 5a subi r16, 0xA5 ; 165
120: 2a f7 brpl .-54 ; 0xec <__trampolines_end+0x60>
122: 5c 93 st X, r21
124: 6b 6c ori r22, 0xCB ; 203
126: f9 67 ori r31, 0x79 ; 121
128: 6d c1 rjmp .+730 ; 0x404 <__LOCK_REGION_LENGTH__+0x4>
12a: 1b fc .word 0xfc1b ; ????
12c: e0 e4 ldi r30, 0x40 ; 64
12e: 0d 47 sbci r16, 0x7D ; 125
130: fe f5 brtc .+126 ; 0x1b0 <__do_clear_bss+0x4>
132: 20 e6 ldi r18, 0x60 ; 96
134: b5 00 .word 0x00b5 ; ????
136: d0 ed ldi r29, 0xD0 ; 208
138: 90 2e mov r9, r16
13a: 03 00 .word 0x0003 ; ????
13c: 94 35 cpi r25, 0x54 ; 84
13e: 77 05 cpc r23, r7
140: 00 80 ld r0, Z
142: 84 1e adc r8, r20
144: 08 00 .word 0x0008 ; ????
146: 00 20 and r0, r0
148: 4e 0a sbc r4, r30
14a: 00 00 nop
14c: 00 c8 rjmp .-4096 ; 0xfffff14e <__eeprom_end+0xff7ef14e>
14e: 0c 33 cpi r16, 0x3C ; 60
150: 33 33 cpi r19, 0x33 ; 51
152: 33 0f add r19, r19
154: 98 6e ori r25, 0xE8 ; 232
156: 12 83 std Z+2, r17 ; 0x02
158: 11 41 sbci r17, 0x11 ; 17
15a: ef 8d ldd r30, Y+31 ; 0x1f
15c: 21 14 cp r2, r1
15e: 89 3b cpi r24, 0xB9 ; 185
160: e6 55 subi r30, 0x56 ; 86
162: 16 cf rjmp .-468 ; 0xffffff90 <__eeprom_end+0xff7eff90>
164: fe e6 ldi r31, 0x6E ; 110
166: db 18 sub r13, r11
168: d1 84 ldd r13, Z+9 ; 0x09
16a: 4b 38 cpi r20, 0x8B ; 139
16c: 1b f7 brvc .-58 ; 0x134 <__trampolines_end+0xa8>
16e: 7c 1d adc r23, r12
170: 90 1d adc r25, r0
172: a4 bb out 0x14, r26 ; 20
174: e4 24 eor r14, r4
176: 20 32 cpi r18, 0x20 ; 32
178: 84 72 andi r24, 0x24 ; 36
17a: 5e 22 and r5, r30
17c: 81 00 .word 0x0081 ; ????
17e: c9 f1 breq .+114 ; 0x1f2 <lcd_strobe_lcd_e>
180: 24 ec ldi r18, 0xC4 ; 196
182: a1 e5 ldi r26, 0x51 ; 81
184: 3d 27 eor r19, r29
00000186 <__ctors_end>:
186: 11 24 eor r1, r1
188: 1f be out 0x3f, r1 ; 63
18a: cf ef ldi r28, 0xFF ; 255
18c: d0 e1 ldi r29, 0x10 ; 16
18e: de bf out 0x3e, r29 ; 62
190: cd bf out 0x3d, r28 ; 61
00000192 <__do_copy_data>:
192: 11 e0 ldi r17, 0x01 ; 1
194: a0 e0 ldi r26, 0x00 ; 0
196: b1 e0 ldi r27, 0x01 ; 1
198: e6 eb ldi r30, 0xB6 ; 182
19a: f3 e1 ldi r31, 0x13 ; 19
19c: 00 e0 ldi r16, 0x00 ; 0
19e: 0b bf out 0x3b, r16 ; 59
1a0: 02 c0 rjmp .+4 ; 0x1a6 <__do_copy_data+0x14>
1a2: 07 90 elpm r0, Z+
1a4: 0d 92 st X+, r0
1a6: a8 32 cpi r26, 0x28 ; 40
1a8: b1 07 cpc r27, r17
1aa: d9 f7 brne .-10 ; 0x1a2 <__do_copy_data+0x10>
000001ac <__do_clear_bss>:
1ac: 21 e0 ldi r18, 0x01 ; 1
1ae: a8 e2 ldi r26, 0x28 ; 40
1b0: b1 e0 ldi r27, 0x01 ; 1
1b2: 01 c0 rjmp .+2 ; 0x1b6 <.do_clear_bss_start>
000001b4 <.do_clear_bss_loop>:
1b4: 1d 92 st X+, r1
000001b6 <.do_clear_bss_start>:
1b6: a4 33 cpi r26, 0x34 ; 52
1b8: b2 07 cpc r27, r18
1ba: e1 f7 brne .-8 ; 0x1b4 <.do_clear_bss_loop>
1bc: 32 d1 rcall .+612 ; 0x422 <main>
1be: 0c 94 d9 09 jmp 0x13b2 ; 0x13b2 <_exit>
000001c2 <__bad_interrupt>:
1c2: 1e cf rjmp .-452 ; 0x0 <__vectors>
000001c4 <sbi_porta>:
{
int length = snprintf(NULL, 0, "%s: %.3f %s", prefix, number, suffix);
char str[length + 1];
snprintf(str, length + 1, "%s: %.3f %s", prefix, number, suffix);
lcd_write_string(str);
}
1c4: 9b b3 in r25, 0x1b ; 27
1c6: 21 e0 ldi r18, 0x01 ; 1
1c8: 30 e0 ldi r19, 0x00 ; 0
1ca: 02 c0 rjmp .+4 ; 0x1d0 <sbi_porta+0xc>
1cc: 22 0f add r18, r18
1ce: 33 1f adc r19, r19
1d0: 8a 95 dec r24
1d2: e2 f7 brpl .-8 ; 0x1cc <sbi_porta+0x8>
1d4: 29 2b or r18, r25
1d6: 2b bb out 0x1b, r18 ; 27
1d8: 08 95 ret
000001da <cbi_porta>:
1da: 9b b3 in r25, 0x1b ; 27
1dc: 21 e0 ldi r18, 0x01 ; 1
1de: 30 e0 ldi r19, 0x00 ; 0
1e0: 02 c0 rjmp .+4 ; 0x1e6 <cbi_porta+0xc>
1e2: 22 0f add r18, r18
1e4: 33 1f adc r19, r19
1e6: 8a 95 dec r24
1e8: e2 f7 brpl .-8 ; 0x1e2 <cbi_porta+0x8>
1ea: 20 95 com r18
1ec: 29 23 and r18, r25
1ee: 2b bb out 0x1b, r18 ; 27
1f0: 08 95 ret
000001f2 <lcd_strobe_lcd_e>:
1f2: 86 e0 ldi r24, 0x06 ; 6
1f4: 90 e0 ldi r25, 0x00 ; 0
1f6: e6 df rcall .-52 ; 0x1c4 <sbi_porta>
1f8: 83 ec ldi r24, 0xC3 ; 195
1fa: 99 e0 ldi r25, 0x09 ; 9
1fc: 01 97 sbiw r24, 0x01 ; 1
1fe: f1 f7 brne .-4 ; 0x1fc <lcd_strobe_lcd_e+0xa>
200: 00 c0 rjmp .+0 ; 0x202 <lcd_strobe_lcd_e+0x10>
202: 00 00 nop
204: 86 e0 ldi r24, 0x06 ; 6
206: 90 e0 ldi r25, 0x00 ; 0
208: e8 df rcall .-48 ; 0x1da <cbi_porta>
20a: 87 e8 ldi r24, 0x87 ; 135
20c: 93 e1 ldi r25, 0x13 ; 19
20e: 01 97 sbiw r24, 0x01 ; 1
210: f1 f7 brne .-4 ; 0x20e <lcd_strobe_lcd_e+0x1c>
212: 00 c0 rjmp .+0 ; 0x214 <lcd_strobe_lcd_e+0x22>
214: 00 00 nop
216: 08 95 ret
00000218 <lcd_write_character>:
218: cf 93 push r28
21a: c8 2f mov r28, r24
21c: 85 bb out 0x15, r24 ; 21
21e: 84 e0 ldi r24, 0x04 ; 4
220: 90 e0 ldi r25, 0x00 ; 0
222: d0 df rcall .-96 ; 0x1c4 <sbi_porta>
224: e6 df rcall .-52 ; 0x1f2 <lcd_strobe_lcd_e>
226: c2 95 swap r28
228: c0 7f andi r28, 0xF0 ; 240
22a: c5 bb out 0x15, r28 ; 21
22c: 84 e0 ldi r24, 0x04 ; 4
22e: 90 e0 ldi r25, 0x00 ; 0
230: c9 df rcall .-110 ; 0x1c4 <sbi_porta>
232: df df rcall .-66 ; 0x1f2 <lcd_strobe_lcd_e>
234: cf 91 pop r28
236: 08 95 ret
00000238 <lcd_write_command>:
238: cf 93 push r28
23a: c8 2f mov r28, r24
23c: 85 bb out 0x15, r24 ; 21
23e: 84 e0 ldi r24, 0x04 ; 4
240: 90 e0 ldi r25, 0x00 ; 0
242: cb df rcall .-106 ; 0x1da <cbi_porta>
244: d6 df rcall .-84 ; 0x1f2 <lcd_strobe_lcd_e>
246: c2 95 swap r28
248: c0 7f andi r28, 0xF0 ; 240
24a: c5 bb out 0x15, r28 ; 21
24c: 84 e0 ldi r24, 0x04 ; 4
24e: 90 e0 ldi r25, 0x00 ; 0
250: c4 df rcall .-120 ; 0x1da <cbi_porta>
252: cf df rcall .-98 ; 0x1f2 <lcd_strobe_lcd_e>
254: cf 91 pop r28
256: 08 95 ret
00000258 <lcd_clear>:
258: 81 e0 ldi r24, 0x01 ; 1
25a: ee df rcall .-36 ; 0x238 <lcd_write_command>
25c: 87 e8 ldi r24, 0x87 ; 135
25e: 93 e1 ldi r25, 0x13 ; 19
260: 01 97 sbiw r24, 0x01 ; 1
262: f1 f7 brne .-4 ; 0x260 <lcd_clear+0x8>
264: 00 c0 rjmp .+0 ; 0x266 <lcd_clear+0xe>
266: 00 00 nop
268: 80 e8 ldi r24, 0x80 ; 128
26a: e6 cf rjmp .-52 ; 0x238 <lcd_write_command>
26c: 08 95 ret
0000026e <init_4bits_mode>:
26e: cf 93 push r28
270: 8f ef ldi r24, 0xFF ; 255
272: 84 bb out 0x14, r24 ; 20
274: 85 bb out 0x15, r24 ; 21
276: 8a bb out 0x1a, r24 ; 26
278: 15 ba out 0x15, r1 ; 21
27a: 1b ba out 0x1b, r1 ; 27
27c: c0 e2 ldi r28, 0x20 ; 32
27e: c5 bb out 0x15, r28 ; 21
280: b8 df rcall .-144 ; 0x1f2 <lcd_strobe_lcd_e>
282: c5 bb out 0x15, r28 ; 21
284: b6 df rcall .-148 ; 0x1f2 <lcd_strobe_lcd_e>
286: 80 e8 ldi r24, 0x80 ; 128
288: 85 bb out 0x15, r24 ; 21
28a: b3 df rcall .-154 ; 0x1f2 <lcd_strobe_lcd_e>
28c: 15 ba out 0x15, r1 ; 21
28e: b1 df rcall .-158 ; 0x1f2 <lcd_strobe_lcd_e>
290: 80 ef ldi r24, 0xF0 ; 240
292: 85 bb out 0x15, r24 ; 21
294: ae df rcall .-164 ; 0x1f2 <lcd_strobe_lcd_e>
296: 15 ba out 0x15, r1 ; 21
298: ac df rcall .-168 ; 0x1f2 <lcd_strobe_lcd_e>
29a: 80 e6 ldi r24, 0x60 ; 96
29c: 85 bb out 0x15, r24 ; 21
29e: a9 df rcall .-174 ; 0x1f2 <lcd_strobe_lcd_e>
2a0: 82 e0 ldi r24, 0x02 ; 2
2a2: ca df rcall .-108 ; 0x238 <lcd_write_command>
2a4: a6 df rcall .-180 ; 0x1f2 <lcd_strobe_lcd_e>
2a6: cf 91 pop r28
2a8: 08 95 ret
000002aa <lcd_write_string>:
2aa: cf 93 push r28
2ac: df 93 push r29
2ae: ec 01 movw r28, r24
2b0: 02 c0 rjmp .+4 ; 0x2b6 <lcd_write_string+0xc>
2b2: b2 df rcall .-156 ; 0x218 <lcd_write_character>
2b4: 21 96 adiw r28, 0x01 ; 1
2b6: 88 81 ld r24, Y
2b8: 81 11 cpse r24, r1
2ba: fb cf rjmp .-10 ; 0x2b2 <lcd_write_string+0x8>
2bc: df 91 pop r29
2be: cf 91 pop r28
2c0: 08 95 ret
000002c2 <lcd_write_ultrasonic_value>:
void lcd_write_ultrasonic_value(float number)
{
2c2: 4f 92 push r4
2c4: 5f 92 push r5
2c6: 6f 92 push r6
2c8: 7f 92 push r7
2ca: af 92 push r10
2cc: bf 92 push r11
2ce: cf 92 push r12
2d0: df 92 push r13
2d2: ef 92 push r14
2d4: ff 92 push r15
2d6: 0f 93 push r16
2d8: 1f 93 push r17
2da: cf 93 push r28
2dc: df 93 push r29
2de: 00 d0 rcall .+0 ; 0x2e0 <lcd_write_ultrasonic_value+0x1e>
2e0: 00 d0 rcall .+0 ; 0x2e2 <lcd_write_ultrasonic_value+0x20>
2e2: 00 d0 rcall .+0 ; 0x2e4 <lcd_write_ultrasonic_value+0x22>
2e4: cd b7 in r28, 0x3d ; 61
2e6: de b7 in r29, 0x3e ; 62
dtostrf(number , 2, 2, temp);
char str[length + 1];
snprintf(str, length + 7, "%s cm", temp);
lcd_write_string(str);
}
2e8: cd b6 in r12, 0x3d ; 61
2ea: de b6 in r13, 0x3e ; 62
}
void lcd_write_ultrasonic_value(float number)
{
//to cm
number /= 1000;
2ec: 20 e0 ldi r18, 0x00 ; 0
2ee: 30 e0 ldi r19, 0x00 ; 0
2f0: 4a e7 ldi r20, 0x7A ; 122
2f2: 54 e4 ldi r21, 0x44 ; 68
2f4: af d1 rcall .+862 ; 0x654 <__divsf3>
2f6: 2b 01 movw r4, r22
2f8: 3c 01 movw r6, r24
int length = snprintf(NULL, 0, " cm");
2fa: 83 e2 ldi r24, 0x23 ; 35
2fc: 91 e0 ldi r25, 0x01 ; 1
2fe: 9f 93 push r25
300: 8f 93 push r24
302: 1f 92 push r1
304: 1f 92 push r1
306: 1f 92 push r1
308: 1f 92 push r1
30a: 1c d3 rcall .+1592 ; 0x944 <snprintf>
30c: 7c 01 movw r14, r24
char temp[6];
dtostrf(number , 2, 2, temp);
30e: 9e 01 movw r18, r28
310: 2f 5f subi r18, 0xFF ; 255
312: 3f 4f sbci r19, 0xFF ; 255
314: 59 01 movw r10, r18
316: 89 01 movw r16, r18
318: 22 e0 ldi r18, 0x02 ; 2
31a: 42 e0 ldi r20, 0x02 ; 2
31c: c3 01 movw r24, r6
31e: b2 01 movw r22, r4
320: f2 d2 rcall .+1508 ; 0x906 <dtostrf>
char str[length + 1];
322: c7 01 movw r24, r14
324: 01 96 adiw r24, 0x01 ; 1
326: 0f 90 pop r0
328: 0f 90 pop r0
32a: 0f 90 pop r0
32c: 0f 90 pop r0
32e: 0f 90 pop r0
330: 0f 90 pop r0
332: 2d b7 in r18, 0x3d ; 61
334: 3e b7 in r19, 0x3e ; 62
336: 28 1b sub r18, r24
338: 39 0b sbc r19, r25
33a: 0f b6 in r0, 0x3f ; 63
33c: f8 94 cli
33e: 3e bf out 0x3e, r19 ; 62
340: 0f be out 0x3f, r0 ; 63
342: 2d bf out 0x3d, r18 ; 61
344: 0d b7 in r16, 0x3d ; 61
346: 1e b7 in r17, 0x3e ; 62
348: 0f 5f subi r16, 0xFF ; 255
34a: 1f 4f sbci r17, 0xFF ; 255
snprintf(str, length + 7, "%s cm", temp);
34c: 37 e0 ldi r19, 0x07 ; 7
34e: e3 0e add r14, r19
350: f1 1c adc r15, r1
352: bf 92 push r11
354: af 92 push r10
356: 81 e2 ldi r24, 0x21 ; 33
358: 91 e0 ldi r25, 0x01 ; 1
35a: 9f 93 push r25
35c: 8f 93 push r24
35e: ff 92 push r15
360: ef 92 push r14
362: 1f 93 push r17
364: 0f 93 push r16
lcd_write_string(str);
366: ee d2 rcall .+1500 ; 0x944 <snprintf>
368: 80 2f mov r24, r16
36a: 91 2f mov r25, r17
36c: 9e df rcall .-196 ; 0x2aa <lcd_write_string>
}
36e: 8d b7 in r24, 0x3d ; 61
370: 9e b7 in r25, 0x3e ; 62
372: 08 96 adiw r24, 0x08 ; 8
374: 0f b6 in r0, 0x3f ; 63
376: f8 94 cli
378: 9e bf out 0x3e, r25 ; 62
37a: 0f be out 0x3f, r0 ; 63
37c: 8d bf out 0x3d, r24 ; 61
37e: 0f b6 in r0, 0x3f ; 63
380: f8 94 cli
382: de be out 0x3e, r13 ; 62
384: 0f be out 0x3f, r0 ; 63
386: cd be out 0x3d, r12 ; 61
388: 26 96 adiw r28, 0x06 ; 6
38a: 0f b6 in r0, 0x3f ; 63
38c: f8 94 cli
38e: de bf out 0x3e, r29 ; 62
390: 0f be out 0x3f, r0 ; 63
392: cd bf out 0x3d, r28 ; 61
394: df 91 pop r29
396: cf 91 pop r28
398: 1f 91 pop r17
39a: 0f 91 pop r16
39c: ff 90 pop r15
39e: ef 90 pop r14
3a0: df 90 pop r13
3a2: cf 90 pop r12
3a4: bf 90 pop r11
3a6: af 90 pop r10
3a8: 7f 90 pop r7
3aa: 6f 90 pop r6
3ac: 5f 90 pop r5
3ae: 4f 90 pop r4
3b0: 08 95 ret
000003b2 <ultrasoon_value_set_event>:
ultrasonic_send_pulse();
}
static void ultrasoon_value_set_event(uint16_t value){
// if the SODAR is initialising, then look for close start object.
if(initialising){
3b2: 20 91 00 01 lds r18, 0x0100 ; 0x800100 <__DATA_REGION_ORIGIN__>
3b6: 22 23 and r18, r18
3b8: 51 f0 breq .+20 ; 0x3ce <ultrasoon_value_set_event+0x1c>
if(value > 0 && value < MAX_DISTANCE_INIT){
3ba: 01 97 sbiw r24, 0x01 ; 1
3bc: 43 97 sbiw r24, 0x13 ; 19
3be: 38 f4 brcc .+14 ; 0x3ce <ultrasoon_value_set_event+0x1c>
stepper_rotate_stop();
3c0: d1 d0 rcall .+418 ; 0x564 <stepper_rotate_stop>
initialising = false;
3c2: 10 92 00 01 sts 0x0100, r1 ; 0x800100 <__DATA_REGION_ORIGIN__>
// when found, set the initial rotation.
stepper_rotate_angle(ROTAITION_ANGLE, CounterClockWise);
3c6: 61 e0 ldi r22, 0x01 ; 1
3c8: 80 e0 ldi r24, 0x00 ; 0
3ca: 92 e0 ldi r25, 0x02 ; 2
3cc: be c0 rjmp .+380 ; 0x54a <stepper_rotate_angle>
3ce: 08 95 ret
000003d0 <snap_event_trigger>:
ultrasonic_handle_interrupt();
}
static void snap_event_trigger(uint8_t rotation){
// when X amount of steps are taken, do pulse.
ultrasonic_send_pulse();
3d0: 04 c1 rjmp .+520 ; 0x5da <ultrasonic_send_pulse>
3d2: 08 95 ret
000003d4 <__vector_3>:
// if true: in init mode, looking for starting point.
bool initialising = true;
ISR(INT2_vect)
{
3d4: 1f 92 push r1
3d6: 0f 92 push r0
3d8: 0f b6 in r0, 0x3f ; 63
3da: 0f 92 push r0
3dc: 11 24 eor r1, r1
3de: 0b b6 in r0, 0x3b ; 59
3e0: 0f 92 push r0
3e2: 2f 93 push r18
3e4: 3f 93 push r19
3e6: 4f 93 push r20
3e8: 5f 93 push r21
3ea: 6f 93 push r22
3ec: 7f 93 push r23
3ee: 8f 93 push r24
3f0: 9f 93 push r25
3f2: af 93 push r26
3f4: bf 93 push r27
3f6: ef 93 push r30
3f8: ff 93 push r31
ultrasonic_handle_interrupt();
3fa: fc d0 rcall .+504 ; 0x5f4 <ultrasonic_handle_interrupt>
}
3fc: ff 91 pop r31
3fe: ef 91 pop r30
400: bf 91 pop r27
402: af 91 pop r26
404: 9f 91 pop r25
406: 8f 91 pop r24
408: 7f 91 pop r23
40a: 6f 91 pop r22
40c: 5f 91 pop r21
40e: 4f 91 pop r20
410: 3f 91 pop r19
412: 2f 91 pop r18
414: 0f 90 pop r0
416: 0b be out 0x3b, r0 ; 59
418: 0f 90 pop r0
41a: 0f be out 0x3f, r0 ; 63
41c: 0f 90 pop r0
41e: 1f 90 pop r1
420: 18 95 reti
00000422 <main>:
}
int main(void)
{
// initialize ultrasonic sensor driver.
ultrasonic_init();
422: cc d0 rcall .+408 ; 0x5bc <ultrasonic_init>
// initialize LCD display in 4 bit mode.
init_4bits_mode();
424: 24 df rcall .-440 ; 0x26e <init_4bits_mode>
// initialize stepper driver.
init_stepper_driver();
426: a0 d0 rcall .+320 ; 0x568 <init_stepper_driver>
// set the event when a pulse must be sent.
set_snap_event(&snap_event_trigger);
428: 88 ee ldi r24, 0xE8 ; 232
42a: 91 e0 ldi r25, 0x01 ; 1
42c: 27 d0 rcall .+78 ; 0x47c <set_snap_event>
// set a event for when a value has been set from the ultrasonic sensor.
set_value_trigger_event(&ultrasoon_value_set_event);
42e: 89 ed ldi r24, 0xD9 ; 217
430: 91 e0 ldi r25, 0x01 ; 1
432: fe d0 rcall .+508 ; 0x630 <set_value_trigger_event>
434: 87 ea ldi r24, 0xA7 ; 167
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif
__builtin_avr_delay_cycles(__ticks_dc);
436: 91 e6 ldi r25, 0x61 ; 97
438: 01 97 sbiw r24, 0x01 ; 1
43a: f1 f7 brne .-4 ; 0x438 <main+0x16>
43c: 00 c0 rjmp .+0 ; 0x43e <main+0x1c>
43e: 00 00 nop
_delay_ms(10);
lcd_clear();
440: 0b df rcall .-490 ; 0x258 <lcd_clear>
stepper_rotate_angle(INIT_ROTAITION_ANGLE, ClockWise);
442: 60 e0 ldi r22, 0x00 ; 0
444: 88 e5 ldi r24, 0x58 ; 88
446: 92 e0 ldi r25, 0x02 ; 2
while (1)
{
lcd_clear();
448: 80 d0 rcall .+256 ; 0x54a <stepper_rotate_angle>
44a: 06 df rcall .-500 ; 0x258 <lcd_clear>
// set the ultrasonic value to the lcd.
lcd_write_ultrasonic_value(ultrasonic_get_timer_dist());
44c: f6 d0 rcall .+492 ; 0x63a <ultrasonic_get_timer_dist>
44e: 39 df rcall .-398 ; 0x2c2 <lcd_write_ultrasonic_value>
450: 84 e6 ldi r24, 0x64 ; 100
452: 90 e0 ldi r25, 0x00 ; 0
wait_ms(LCD_SET_DELAY);
454: a4 d0 rcall .+328 ; 0x59e <wait_ms>
456: f9 cf rjmp .-14 ; 0x44a <main+0x28>
00000458 <set_stepper_state>:
void stepper_rotate_full_rotation_CW();
void stepper_rotate_full_rotation_CCW();
void set_stepper_state(uint8_t count){
if(rotation == ClockWise){
458: 90 91 2f 01 lds r25, 0x012F ; 0x80012f <rotation>
45c: 91 11 cpse r25, r1
45e: 07 c0 rjmp .+14 ; 0x46e <set_stepper_state+0x16>
PORTE = CW[count];
460: e8 2f mov r30, r24
462: f0 e0 ldi r31, 0x00 ; 0
464: ef 5f subi r30, 0xFF ; 255
466: fe 4f sbci r31, 0xFE ; 254
468: 80 81 ld r24, Z
46a: 83 b9 out 0x03, r24 ; 3
46c: 08 95 ret
} else {
PORTE = CCW[count];
46e: e8 2f mov r30, r24
470: f0 e0 ldi r31, 0x00 ; 0
472: e7 5f subi r30, 0xF7 ; 247
474: fe 4f sbci r31, 0xFE ; 254
476: 80 81 ld r24, Z
478: 83 b9 out 0x03, r24 ; 3
47a: 08 95 ret
0000047c <set_snap_event>:
}
void (*snap_event)(uint8_t);
void set_snap_event(void (*snap_event_p)(uint8_t)){
snap_event = snap_event_p;
47c: 90 93 31 01 sts 0x0131, r25 ; 0x800131 <snap_event+0x1>
480: 80 93 30 01 sts 0x0130, r24 ; 0x800130 <snap_event>
484: 08 95 ret
00000486 <__vector_9>:
}
ISR( TIMER2_COMP_vect ){
486: 1f 92 push r1
488: 0f 92 push r0
48a: 0f b6 in r0, 0x3f ; 63
48c: 0f 92 push r0
48e: 11 24 eor r1, r1
490: 0b b6 in r0, 0x3b ; 59
492: 0f 92 push r0
494: 2f 93 push r18
496: 3f 93 push r19
498: 4f 93 push r20
49a: 5f 93 push r21
49c: 6f 93 push r22
49e: 7f 93 push r23
4a0: 8f 93 push r24
4a2: 9f 93 push r25
4a4: af 93 push r26
4a6: bf 93 push r27
4a8: ef 93 push r30
4aa: ff 93 push r31
TCNT2 = 0;
4ac: 14 bc out 0x24, r1 ; 36
set_stepper_state(stepper_state);
4ae: 80 91 28 01 lds r24, 0x0128 ; 0x800128 <__data_end>
4b2: d2 df rcall .-92 ; 0x458 <set_stepper_state>
if(stepper_state < 7){
4b4: 80 91 28 01 lds r24, 0x0128 ; 0x800128 <__data_end>
4b8: 87 30 cpi r24, 0x07 ; 7
4ba: 20 f4 brcc .+8 ; 0x4c4 <__vector_9+0x3e>
stepper_state++;
4bc: 8f 5f subi r24, 0xFF ; 255
4be: 80 93 28 01 sts 0x0128, r24 ; 0x800128 <__data_end>
4c2: 30 c0 rjmp .+96 ; 0x524 <__vector_9+0x9e>
} else {
stepper_state = 0;
4c4: 10 92 28 01 sts 0x0128, r1 ; 0x800128 <__data_end>
if(steps_to_do == 0){
4c8: 80 91 29 01 lds r24, 0x0129 ; 0x800129 <steps_to_do>
4cc: 90 91 2a 01 lds r25, 0x012A ; 0x80012a <steps_to_do+0x1>
4d0: 00 97 sbiw r24, 0x00 ; 0
4d2: 99 f4 brne .+38 ; 0x4fa <__vector_9+0x74>
// change rotation if the steps todo is 0.
if(rotation == ClockWise){
4d4: 80 91 2f 01 lds r24, 0x012F ; 0x80012f <rotation>
4d8: 81 11 cpse r24, r1
4da: 04 c0 rjmp .+8 ; 0x4e4 <__vector_9+0x5e>
rotation = CounterClockWise;
4dc: 81 e0 ldi r24, 0x01 ; 1
4de: 80 93 2f 01 sts 0x012F, r24 ; 0x80012f <rotation>
4e2: 02 c0 rjmp .+4 ; 0x4e8 <__vector_9+0x62>
} else {
rotation = ClockWise;
4e4: 10 92 2f 01 sts 0x012F, r1 ; 0x80012f <rotation>
}
// set the steps to do again.
steps_to_do = steps_each_turn;
4e8: 80 91 2b 01 lds r24, 0x012B ; 0x80012b <steps_each_turn>
4ec: 90 91 2c 01 lds r25, 0x012C ; 0x80012c <steps_each_turn+0x1>
4f0: 90 93 2a 01 sts 0x012A, r25 ; 0x80012a <steps_to_do+0x1>
4f4: 80 93 29 01 sts 0x0129, r24 ; 0x800129 <steps_to_do>
4f8: 15 c0 rjmp .+42 ; 0x524 <__vector_9+0x9e>
} else {
// if the stepper step value is at a multiplier of 32 then make snap event.
if(steps_to_do % STEPS_EACH_PULSE == 0){
4fa: 9c 01 movw r18, r24
4fc: 2f 71 andi r18, 0x1F ; 31
4fe: 33 27 eor r19, r19
500: 23 2b or r18, r19
502: 39 f4 brne .+14 ; 0x512 <__vector_9+0x8c>
if(snap_event != NULL)
504: e0 91 30 01 lds r30, 0x0130 ; 0x800130 <snap_event>
508: f0 91 31 01 lds r31, 0x0131 ; 0x800131 <snap_event+0x1>
50c: 30 97 sbiw r30, 0x00 ; 0
50e: 09 f0 breq .+2 ; 0x512 <__vector_9+0x8c>
snap_event(steps_to_do);
510: 09 95 icall
}
steps_to_do--;
512: 80 91 29 01 lds r24, 0x0129 ; 0x800129 <steps_to_do>
516: 90 91 2a 01 lds r25, 0x012A ; 0x80012a <steps_to_do+0x1>
51a: 01 97 sbiw r24, 0x01 ; 1
51c: 90 93 2a 01 sts 0x012A, r25 ; 0x80012a <steps_to_do+0x1>
520: 80 93 29 01 sts 0x0129, r24 ; 0x800129 <steps_to_do>
}
}
}
524: ff 91 pop r31
526: ef 91 pop r30
528: bf 91 pop r27
52a: af 91 pop r26
52c: 9f 91 pop r25
52e: 8f 91 pop r24
530: 7f 91 pop r23
532: 6f 91 pop r22
534: 5f 91 pop r21
536: 4f 91 pop r20
538: 3f 91 pop r19
53a: 2f 91 pop r18
53c: 0f 90 pop r0
53e: 0b be out 0x3b, r0 ; 59
540: 0f 90 pop r0
542: 0f be out 0x3f, r0 ; 63
544: 0f 90 pop r0
546: 1f 90 pop r1
548: 18 95 reti
0000054a <stepper_rotate_angle>:
void stepper_rotate_angle(uint16_t steps, enum rotation_wise rot){
steps_to_do = steps;
54a: 90 93 2a 01 sts 0x012A, r25 ; 0x80012a <steps_to_do+0x1>
54e: 80 93 29 01 sts 0x0129, r24 ; 0x800129 <steps_to_do>
steps_each_turn = steps;
552: 90 93 2c 01 sts 0x012C, r25 ; 0x80012c <steps_each_turn+0x1>
556: 80 93 2b 01 sts 0x012B, r24 ; 0x80012b <steps_each_turn>
rotation = rot;
55a: 60 93 2f 01 sts 0x012F, r22 ; 0x80012f <rotation>
TCCR2 = 0b00001100;
55e: 8c e0 ldi r24, 0x0C ; 12
560: 85 bd out 0x25, r24 ; 37
562: 08 95 ret
00000564 <stepper_rotate_stop>:
}
void stepper_rotate_stop(){
TCCR2 = 0b00000000;
564: 15 bc out 0x25, r1 ; 37
566: 08 95 ret
00000568 <init_stepper_driver>:
}
void init_stepper_driver(){
DDRE = 0xff;
568: 8f ef ldi r24, 0xFF ; 255
56a: 82 b9 out 0x02, r24 ; 2
DDRG = 0xff;
56c: 80 93 64 00 sts 0x0064, r24 ; 0x800064 <__TEXT_REGION_LENGTH__+0x7e0064>
PORTG = 0x01;
570: 81 e0 ldi r24, 0x01 ; 1
572: 80 93 65 00 sts 0x0065, r24 ; 0x800065 <__TEXT_REGION_LENGTH__+0x7e0065>
PORTE = 0x00;
576: 13 b8 out 0x03, r1 ; 3
OCR2 = COMPARE_VALUE;
578: 87 e3 ldi r24, 0x37 ; 55
57a: 83 bd out 0x23, r24 ; 35
TIMSK = BIT(7);
57c: 80 e8 ldi r24, 0x80 ; 128
57e: 87 bf out 0x37, r24 ; 55
sei();
580: 78 94 sei
582: 08 95 ret
00000584 <wait_us>:
void (*value_set_event)(uint16_t);
void wait_us(unsigned int us)
{
for(int i = 0; i < us; i++)
584: 20 e0 ldi r18, 0x00 ; 0
586: 30 e0 ldi r19, 0x00 ; 0
588: 06 c0 rjmp .+12 ; 0x596 <wait_us+0x12>
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif
__builtin_avr_delay_cycles(__ticks_dc);
58a: 43 e0 ldi r20, 0x03 ; 3
58c: 4a 95 dec r20
58e: f1 f7 brne .-4 ; 0x58c <wait_us+0x8>
590: 00 00 nop
592: 2f 5f subi r18, 0xFF ; 255
594: 3f 4f sbci r19, 0xFF ; 255
596: 28 17 cp r18, r24
598: 39 07 cpc r19, r25
59a: b8 f3 brcs .-18 ; 0x58a <wait_us+0x6>
{
_delay_us(1);
}
}
59c: 08 95 ret
0000059e <wait_ms>:
void wait_ms(unsigned int ms)
{
for(int i = 0; i < ms; i++)
59e: 20 e0 ldi r18, 0x00 ; 0
5a0: 30 e0 ldi r19, 0x00 ; 0
5a2: 08 c0 rjmp .+16 ; 0x5b4 <wait_ms+0x16>
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif
__builtin_avr_delay_cycles(__ticks_dc);
5a4: e3 ec ldi r30, 0xC3 ; 195
5a6: f9 e0 ldi r31, 0x09 ; 9
5a8: 31 97 sbiw r30, 0x01 ; 1
5aa: f1 f7 brne .-4 ; 0x5a8 <wait_ms+0xa>
5ac: 00 c0 rjmp .+0 ; 0x5ae <wait_ms+0x10>
5ae: 00 00 nop
5b0: 2f 5f subi r18, 0xFF ; 255
5b2: 3f 4f sbci r19, 0xFF ; 255
5b4: 28 17 cp r18, r24
5b6: 39 07 cpc r19, r25
5b8: a8 f3 brcs .-22 ; 0x5a4 <wait_ms+0x6>
{
_delay_ms(1);
}
}
5ba: 08 95 ret
000005bc <ultrasonic_init>:
void ultrasonic_init()
{
DDRG = 0xFF; // port g all output. pin 0 is trig, the rest is for debug
5bc: 8f ef ldi r24, 0xFF ; 255
5be: 80 93 64 00 sts 0x0064, r24 ; 0x800064 <__TEXT_REGION_LENGTH__+0x7e0064>
DDRD = 0x00; // port D pin 0 on input. 0 is echo and also interrupt
5c2: 11 ba out 0x11, r1 ; 17
EICRA = 0x30; // interrupt PORTD on pin 2, rising edge
5c4: 80 e3 ldi r24, 0x30 ; 48
5c6: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a>
EIMSK |= 0x04; // enable interrupt on pin 2 (INT2)
5ca: 89 b7 in r24, 0x39 ; 57
5cc: 84 60 ori r24, 0x04 ; 4
5ce: 89 bf out 0x39, r24 ; 57
TCCR1A = 0b00000000; // initialize timer1, prescaler=256
5d0: 1f bc out 0x2f, r1 ; 47
TCCR1B = 0b00001100; // CTC compare A, RUN
5d2: 8c e0 ldi r24, 0x0C ; 12
5d4: 8e bd out 0x2e, r24 ; 46
sei(); // turn on interrupt system
5d6: 78 94 sei
5d8: 08 95 ret
000005da <ultrasonic_send_pulse>:
}
void ultrasonic_send_pulse()
{
5da: cf 93 push r28
5dc: df 93 push r29
PORTG = 0x00; // 10 us low pulse
5de: c5 e6 ldi r28, 0x65 ; 101
5e0: d0 e0 ldi r29, 0x00 ; 0
5e2: 18 82 st Y, r1
wait_us(10);
5e4: 8a e0 ldi r24, 0x0A ; 10
5e6: 90 e0 ldi r25, 0x00 ; 0
5e8: cd df rcall .-102 ; 0x584 <wait_us>
PORTG = 0x01;
5ea: 81 e0 ldi r24, 0x01 ; 1
5ec: 88 83 st Y, r24
}
5ee: df 91 pop r29
5f0: cf 91 pop r28
5f2: 08 95 ret
000005f4 <ultrasonic_handle_interrupt>:
void ultrasonic_handle_interrupt()
{
// if the interrupt was generated on a rising edge (start sending echo)
if (int_stat == INTERRUPT_RISING)
5f4: 80 91 11 01 lds r24, 0x0111 ; 0x800111 <int_stat>
5f8: 81 30 cpi r24, 0x01 ; 1
5fa: 41 f4 brne .+16 ; 0x60c <ultrasonic_handle_interrupt+0x18>
{
// set interrupt pin 2 on PORTD to falling edge
EICRA = 0x20;
5fc: 80 e2 ldi r24, 0x20 ; 32
5fe: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a>
// reset the time in timer1
TCNT1 = 0x00;
602: 1d bc out 0x2d, r1 ; 45
604: 1c bc out 0x2c, r1 ; 44
// set interrupt status
int_stat = INTERRUPT_FALLING;
606: 10 92 11 01 sts 0x0111, r1 ; 0x800111 <int_stat>
60a: 08 95 ret
} else
// else if it was generated on a falling edge (end sending echo)
{
// set interrupt pin 0 on PORTD to rising edge
EICRA = 0x30; // interrupt PORTD on pin 2, rising edge
60c: 80 e3 ldi r24, 0x30 ; 48
60e: 80 93 6a 00 sts 0x006A, r24 ; 0x80006a <__TEXT_REGION_LENGTH__+0x7e006a>
// read timer1 into time_dist
timer_dist = TCNT1;
612: 8c b5 in r24, 0x2c ; 44
614: 9d b5 in r25, 0x2d ; 45
616: 90 93 2e 01 sts 0x012E, r25 ; 0x80012e <timer_dist+0x1>
61a: 80 93 2d 01 sts 0x012D, r24 ; 0x80012d <timer_dist>
//EVENT
value_set_event(timer_dist);
61e: e0 91 32 01 lds r30, 0x0132 ; 0x800132 <value_set_event>
622: f0 91 33 01 lds r31, 0x0133 ; 0x800133 <value_set_event+0x1>
626: 09 95 icall
// set interrupt status
int_stat = INTERRUPT_RISING;
628: 81 e0 ldi r24, 0x01 ; 1
62a: 80 93 11 01 sts 0x0111, r24 ; 0x800111 <int_stat>
62e: 08 95 ret
00000630 <set_value_trigger_event>:
}
}
void set_value_trigger_event(void (*value_set_event_p)(uint16_t)){
// event that is triggered when a value is set.
value_set_event = value_set_event_p;
630: 90 93 33 01 sts 0x0133, r25 ; 0x800133 <value_set_event+0x1>
634: 80 93 32 01 sts 0x0132, r24 ; 0x800132 <value_set_event>
638: 08 95 ret
0000063a <ultrasonic_get_timer_dist>:
}
float ultrasonic_get_timer_dist()
{
return (float)(timer_dist * (340 / 2.0));
63a: 60 91 2d 01 lds r22, 0x012D ; 0x80012d <timer_dist>
63e: 70 91 2e 01 lds r23, 0x012E ; 0x80012e <timer_dist+0x1>
642: 80 e0 ldi r24, 0x00 ; 0
644: 90 e0 ldi r25, 0x00 ; 0
646: 6e d0 rcall .+220 ; 0x724 <__floatunsisf>
648: 20 e0 ldi r18, 0x00 ; 0
64a: 30 e0 ldi r19, 0x00 ; 0
64c: 4a e2 ldi r20, 0x2A ; 42
64e: 53 e4 ldi r21, 0x43 ; 67
650: f7 c0 rjmp .+494 ; 0x840 <__mulsf3>
}
652: 08 95 ret
00000654 <__divsf3>:
654: 0c d0 rcall .+24 ; 0x66e <__divsf3x>
656: ba c0 rjmp .+372 ; 0x7cc <__fp_round>
658: b2 d0 rcall .+356 ; 0x7be <__fp_pscB>
65a: 40 f0 brcs .+16 ; 0x66c <__divsf3+0x18>
65c: a9 d0 rcall .+338 ; 0x7b0 <__fp_pscA>
65e: 30 f0 brcs .+12 ; 0x66c <__divsf3+0x18>
660: 21 f4 brne .+8 ; 0x66a <__divsf3+0x16>
662: 5f 3f cpi r21, 0xFF ; 255
664: 19 f0 breq .+6 ; 0x66c <__divsf3+0x18>
666: 9b c0 rjmp .+310 ; 0x79e <__fp_inf>
668: 51 11 cpse r21, r1
66a: e4 c0 rjmp .+456 ; 0x834 <__fp_szero>
66c: 9e c0 rjmp .+316 ; 0x7aa <__fp_nan>
0000066e <__divsf3x>:
66e: bf d0 rcall .+382 ; 0x7ee <__fp_split3>
670: 98 f3 brcs .-26 ; 0x658 <__divsf3+0x4>
00000672 <__divsf3_pse>:
672: 99 23 and r25, r25
674: c9 f3 breq .-14 ; 0x668 <__divsf3+0x14>
676: 55 23 and r21, r21
678: b1 f3 breq .-20 ; 0x666 <__divsf3+0x12>
67a: 95 1b sub r25, r21
67c: 55 0b sbc r21, r21
67e: bb 27 eor r27, r27
680: aa 27 eor r26, r26
682: 62 17 cp r22, r18
684: 73 07 cpc r23, r19
686: 84 07 cpc r24, r20
688: 38 f0 brcs .+14 ; 0x698 <__divsf3_pse+0x26>
68a: 9f 5f subi r25, 0xFF ; 255
68c: 5f 4f sbci r21, 0xFF ; 255
68e: 22 0f add r18, r18
690: 33 1f adc r19, r19
692: 44 1f adc r20, r20
694: aa 1f adc r26, r26
696: a9 f3 breq .-22 ; 0x682 <__divsf3_pse+0x10>
698: 33 d0 rcall .+102 ; 0x700 <__divsf3_pse+0x8e>
69a: 0e 2e mov r0, r30
69c: 3a f0 brmi .+14 ; 0x6ac <__divsf3_pse+0x3a>
69e: e0 e8 ldi r30, 0x80 ; 128
6a0: 30 d0 rcall .+96 ; 0x702 <__divsf3_pse+0x90>
6a2: 91 50 subi r25, 0x01 ; 1
6a4: 50 40 sbci r21, 0x00 ; 0
6a6: e6 95 lsr r30
6a8: 00 1c adc r0, r0
6aa: ca f7 brpl .-14 ; 0x69e <__divsf3_pse+0x2c>
6ac: 29 d0 rcall .+82 ; 0x700 <__divsf3_pse+0x8e>
6ae: fe 2f mov r31, r30
6b0: 27 d0 rcall .+78 ; 0x700 <__divsf3_pse+0x8e>
6b2: 66 0f add r22, r22
6b4: 77 1f adc r23, r23
6b6: 88 1f adc r24, r24
6b8: bb 1f adc r27, r27
6ba: 26 17 cp r18, r22
6bc: 37 07 cpc r19, r23
6be: 48 07 cpc r20, r24
6c0: ab 07 cpc r26, r27
6c2: b0 e8 ldi r27, 0x80 ; 128
6c4: 09 f0 breq .+2 ; 0x6c8 <__divsf3_pse+0x56>
6c6: bb 0b sbc r27, r27
6c8: 80 2d mov r24, r0
6ca: bf 01 movw r22, r30
6cc: ff 27 eor r31, r31
6ce: 93 58 subi r25, 0x83 ; 131
6d0: 5f 4f sbci r21, 0xFF ; 255
6d2: 2a f0 brmi .+10 ; 0x6de <__divsf3_pse+0x6c>
6d4: 9e 3f cpi r25, 0xFE ; 254
6d6: 51 05 cpc r21, r1
6d8: 68 f0 brcs .+26 ; 0x6f4 <__divsf3_pse+0x82>
6da: 61 c0 rjmp .+194 ; 0x79e <__fp_inf>
6dc: ab c0 rjmp .+342 ; 0x834 <__fp_szero>
6de: 5f 3f cpi r21, 0xFF ; 255
6e0: ec f3 brlt .-6 ; 0x6dc <__divsf3_pse+0x6a>
6e2: 98 3e cpi r25, 0xE8 ; 232
6e4: dc f3 brlt .-10 ; 0x6dc <__divsf3_pse+0x6a>
6e6: 86 95 lsr r24
6e8: 77 95 ror r23
6ea: 67 95 ror r22
6ec: b7 95 ror r27
6ee: f7 95 ror r31
6f0: 9f 5f subi r25, 0xFF ; 255
6f2: c9 f7 brne .-14 ; 0x6e6 <__divsf3_pse+0x74>
6f4: 88 0f add r24, r24
6f6: 91 1d adc r25, r1
6f8: 96 95 lsr r25
6fa: 87 95 ror r24
6fc: 97 f9 bld r25, 7
6fe: 08 95 ret
700: e1 e0 ldi r30, 0x01 ; 1
702: 66 0f add r22, r22
704: 77 1f adc r23, r23
706: 88 1f adc r24, r24
708: bb 1f adc r27, r27
70a: 62 17 cp r22, r18
70c: 73 07 cpc r23, r19
70e: 84 07 cpc r24, r20
710: ba 07 cpc r27, r26
712: 20 f0 brcs .+8 ; 0x71c <__divsf3_pse+0xaa>
714: 62 1b sub r22, r18
716: 73 0b sbc r23, r19
718: 84 0b sbc r24, r20
71a: ba 0b sbc r27, r26
71c: ee 1f adc r30, r30
71e: 88 f7 brcc .-30 ; 0x702 <__divsf3_pse+0x90>
720: e0 95 com r30
722: 08 95 ret
00000724 <__floatunsisf>:
724: e8 94 clt
726: 09 c0 rjmp .+18 ; 0x73a <__floatsisf+0x12>
00000728 <__floatsisf>:
728: 97 fb bst r25, 7
72a: 3e f4 brtc .+14 ; 0x73a <__floatsisf+0x12>
72c: 90 95 com r25
72e: 80 95 com r24
730: 70 95 com r23
732: 61 95 neg r22
734: 7f 4f sbci r23, 0xFF ; 255
736: 8f 4f sbci r24, 0xFF ; 255
738: 9f 4f sbci r25, 0xFF ; 255
73a: 99 23 and r25, r25
73c: a9 f0 breq .+42 ; 0x768 <__floatsisf+0x40>
73e: f9 2f mov r31, r25
740: 96 e9 ldi r25, 0x96 ; 150
742: bb 27 eor r27, r27
744: 93 95 inc r25
746: f6 95 lsr r31
748: 87 95 ror r24
74a: 77 95 ror r23
74c: 67 95 ror r22
74e: b7 95 ror r27
750: f1 11 cpse r31, r1
752: f8 cf rjmp .-16 ; 0x744 <__floatsisf+0x1c>
754: fa f4 brpl .+62 ; 0x794 <__floatsisf+0x6c>
756: bb 0f add r27, r27
758: 11 f4 brne .+4 ; 0x75e <__floatsisf+0x36>
75a: 60 ff sbrs r22, 0
75c: 1b c0 rjmp .+54 ; 0x794 <__floatsisf+0x6c>
75e: 6f 5f subi r22, 0xFF ; 255
760: 7f 4f sbci r23, 0xFF ; 255
762: 8f 4f sbci r24, 0xFF ; 255
764: 9f 4f sbci r25, 0xFF ; 255
766: 16 c0 rjmp .+44 ; 0x794 <__floatsisf+0x6c>
768: 88 23 and r24, r24
76a: 11 f0 breq .+4 ; 0x770 <__floatsisf+0x48>
76c: 96 e9 ldi r25, 0x96 ; 150
76e: 11 c0 rjmp .+34 ; 0x792 <__floatsisf+0x6a>
770: 77 23 and r23, r23
772: 21 f0 breq .+8 ; 0x77c <__floatsisf+0x54>
774: 9e e8 ldi r25, 0x8E ; 142
776: 87 2f mov r24, r23
778: 76 2f mov r23, r22
77a: 05 c0 rjmp .+10 ; 0x786 <__floatsisf+0x5e>
77c: 66 23 and r22, r22
77e: 71 f0 breq .+28 ; 0x79c <__floatsisf+0x74>
780: 96 e8 ldi r25, 0x86 ; 134
782: 86 2f mov r24, r22
784: 70 e0 ldi r23, 0x00 ; 0
786: 60 e0 ldi r22, 0x00 ; 0
788: 2a f0 brmi .+10 ; 0x794 <__floatsisf+0x6c>
78a: 9a 95 dec r25
78c: 66 0f add r22, r22
78e: 77 1f adc r23, r23
790: 88 1f adc r24, r24
792: da f7 brpl .-10 ; 0x78a <__floatsisf+0x62>
794: 88 0f add r24, r24
796: 96 95 lsr r25
798: 87 95 ror r24
79a: 97 f9 bld r25, 7
79c: 08 95 ret
0000079e <__fp_inf>:
79e: 97 f9 bld r25, 7
7a0: 9f 67 ori r25, 0x7F ; 127
7a2: 80 e8 ldi r24, 0x80 ; 128
7a4: 70 e0 ldi r23, 0x00 ; 0
7a6: 60 e0 ldi r22, 0x00 ; 0
7a8: 08 95 ret
000007aa <__fp_nan>:
7aa: 9f ef ldi r25, 0xFF ; 255
7ac: 80 ec ldi r24, 0xC0 ; 192
7ae: 08 95 ret
000007b0 <__fp_pscA>:
7b0: 00 24 eor r0, r0
7b2: 0a 94 dec r0
7b4: 16 16 cp r1, r22
7b6: 17 06 cpc r1, r23
7b8: 18 06 cpc r1, r24
7ba: 09 06 cpc r0, r25
7bc: 08 95 ret
000007be <__fp_pscB>:
7be: 00 24 eor r0, r0
7c0: 0a 94 dec r0
7c2: 12 16 cp r1, r18
7c4: 13 06 cpc r1, r19
7c6: 14 06 cpc r1, r20
7c8: 05 06 cpc r0, r21
7ca: 08 95 ret
000007cc <__fp_round>:
7cc: 09 2e mov r0, r25
7ce: 03 94 inc r0
7d0: 00 0c add r0, r0
7d2: 11 f4 brne .+4 ; 0x7d8 <__fp_round+0xc>
7d4: 88 23 and r24, r24
7d6: 52 f0 brmi .+20 ; 0x7ec <__fp_round+0x20>
7d8: bb 0f add r27, r27
7da: 40 f4 brcc .+16 ; 0x7ec <__fp_round+0x20>
7dc: bf 2b or r27, r31
7de: 11 f4 brne .+4 ; 0x7e4 <__fp_round+0x18>
7e0: 60 ff sbrs r22, 0
7e2: 04 c0 rjmp .+8 ; 0x7ec <__fp_round+0x20>
7e4: 6f 5f subi r22, 0xFF ; 255
7e6: 7f 4f sbci r23, 0xFF ; 255
7e8: 8f 4f sbci r24, 0xFF ; 255
7ea: 9f 4f sbci r25, 0xFF ; 255
7ec: 08 95 ret
000007ee <__fp_split3>:
7ee: 57 fd sbrc r21, 7
7f0: 90 58 subi r25, 0x80 ; 128
7f2: 44 0f add r20, r20
7f4: 55 1f adc r21, r21
7f6: 59 f0 breq .+22 ; 0x80e <__fp_splitA+0x10>
7f8: 5f 3f cpi r21, 0xFF ; 255
7fa: 71 f0 breq .+28 ; 0x818 <__fp_splitA+0x1a>
7fc: 47 95 ror r20
000007fe <__fp_splitA>:
7fe: 88 0f add r24, r24
800: 97 fb bst r25, 7
802: 99 1f adc r25, r25
804: 61 f0 breq .+24 ; 0x81e <__fp_splitA+0x20>
806: 9f 3f cpi r25, 0xFF ; 255
808: 79 f0 breq .+30 ; 0x828 <__fp_splitA+0x2a>
80a: 87 95 ror r24
80c: 08 95 ret
80e: 12 16 cp r1, r18
810: 13 06 cpc r1, r19
812: 14 06 cpc r1, r20
814: 55 1f adc r21, r21
816: f2 cf rjmp .-28 ; 0x7fc <__fp_split3+0xe>
818: 46 95 lsr r20
81a: f1 df rcall .-30 ; 0x7fe <__fp_splitA>
81c: 08 c0 rjmp .+16 ; 0x82e <__fp_splitA+0x30>
81e: 16 16 cp r1, r22
820: 17 06 cpc r1, r23
822: 18 06 cpc r1, r24
824: 99 1f adc r25, r25
826: f1 cf rjmp .-30 ; 0x80a <__fp_splitA+0xc>
828: 86 95 lsr r24
82a: 71 05 cpc r23, r1
82c: 61 05 cpc r22, r1
82e: 08 94 sec
830: 08 95 ret
00000832 <__fp_zero>:
832: e8 94 clt
00000834 <__fp_szero>:
834: bb 27 eor r27, r27
836: 66 27 eor r22, r22
838: 77 27 eor r23, r23
83a: cb 01 movw r24, r22
83c: 97 f9 bld r25, 7
83e: 08 95 ret
00000840 <__mulsf3>:
840: 0b d0 rcall .+22 ; 0x858 <__mulsf3x>
842: c4 cf rjmp .-120 ; 0x7cc <__fp_round>
844: b5 df rcall .-150 ; 0x7b0 <__fp_pscA>
846: 28 f0 brcs .+10 ; 0x852 <__mulsf3+0x12>
848: ba df rcall .-140 ; 0x7be <__fp_pscB>
84a: 18 f0 brcs .+6 ; 0x852 <__mulsf3+0x12>
84c: 95 23 and r25, r21
84e: 09 f0 breq .+2 ; 0x852 <__mulsf3+0x12>
850: a6 cf rjmp .-180 ; 0x79e <__fp_inf>
852: ab cf rjmp .-170 ; 0x7aa <__fp_nan>
854: 11 24 eor r1, r1
856: ee cf rjmp .-36 ; 0x834 <__fp_szero>
00000858 <__mulsf3x>:
858: ca df rcall .-108 ; 0x7ee <__fp_split3>
85a: a0 f3 brcs .-24 ; 0x844 <__mulsf3+0x4>
0000085c <__mulsf3_pse>:
85c: 95 9f mul r25, r21
85e: d1 f3 breq .-12 ; 0x854 <__mulsf3+0x14>
860: 95 0f add r25, r21
862: 50 e0 ldi r21, 0x00 ; 0
864: 55 1f adc r21, r21
866: 62 9f mul r22, r18
868: f0 01 movw r30, r0
86a: 72 9f mul r23, r18
86c: bb 27 eor r27, r27
86e: f0 0d add r31, r0
870: b1 1d adc r27, r1
872: 63 9f mul r22, r19
874: aa 27 eor r26, r26
876: f0 0d add r31, r0
878: b1 1d adc r27, r1
87a: aa 1f adc r26, r26
87c: 64 9f mul r22, r20
87e: 66 27 eor r22, r22
880: b0 0d add r27, r0
882: a1 1d adc r26, r1
884: 66 1f adc r22, r22
886: 82 9f mul r24, r18
888: 22 27 eor r18, r18
88a: b0 0d add r27, r0
88c: a1 1d adc r26, r1
88e: 62 1f adc r22, r18
890: 73 9f mul r23, r19
892: b0 0d add r27, r0
894: a1 1d adc r26, r1
896: 62 1f adc r22, r18
898: 83 9f mul r24, r19
89a: a0 0d add r26, r0
89c: 61 1d adc r22, r1
89e: 22 1f adc r18, r18
8a0: 74 9f mul r23, r20
8a2: 33 27 eor r19, r19
8a4: a0 0d add r26, r0
8a6: 61 1d adc r22, r1
8a8: 23 1f adc r18, r19
8aa: 84 9f mul r24, r20
8ac: 60 0d add r22, r0
8ae: 21 1d adc r18, r1
8b0: 82 2f mov r24, r18
8b2: 76 2f mov r23, r22
8b4: 6a 2f mov r22, r26
8b6: 11 24 eor r1, r1
8b8: 9f 57 subi r25, 0x7F ; 127
8ba: 50 40 sbci r21, 0x00 ; 0
8bc: 8a f0 brmi .+34 ; 0x8e0 <__mulsf3_pse+0x84>
8be: e1 f0 breq .+56 ; 0x8f8 <__mulsf3_pse+0x9c>
8c0: 88 23 and r24, r24
8c2: 4a f0 brmi .+18 ; 0x8d6 <__mulsf3_pse+0x7a>
8c4: ee 0f add r30, r30
8c6: ff 1f adc r31, r31
8c8: bb 1f adc r27, r27
8ca: 66 1f adc r22, r22
8cc: 77 1f adc r23, r23
8ce: 88 1f adc r24, r24
8d0: 91 50 subi r25, 0x01 ; 1
8d2: 50 40 sbci r21, 0x00 ; 0
8d4: a9 f7 brne .-22 ; 0x8c0 <__mulsf3_pse+0x64>
8d6: 9e 3f cpi r25, 0xFE ; 254
8d8: 51 05 cpc r21, r1
8da: 70 f0 brcs .+28 ; 0x8f8 <__mulsf3_pse+0x9c>
8dc: 60 cf rjmp .-320 ; 0x79e <__fp_inf>
8de: aa cf rjmp .-172 ; 0x834 <__fp_szero>
8e0: 5f 3f cpi r21, 0xFF ; 255
8e2: ec f3 brlt .-6 ; 0x8de <__mulsf3_pse+0x82>
8e4: 98 3e cpi r25, 0xE8 ; 232
8e6: dc f3 brlt .-10 ; 0x8de <__mulsf3_pse+0x82>
8e8: 86 95 lsr r24
8ea: 77 95 ror r23
8ec: 67 95 ror r22
8ee: b7 95 ror r27
8f0: f7 95 ror r31
8f2: e7 95 ror r30
8f4: 9f 5f subi r25, 0xFF ; 255
8f6: c1 f7 brne .-16 ; 0x8e8 <__mulsf3_pse+0x8c>
8f8: fe 2b or r31, r30
8fa: 88 0f add r24, r24
8fc: 91 1d adc r25, r1
8fe: 96 95 lsr r25
900: 87 95 ror r24
902: 97 f9 bld r25, 7
904: 08 95 ret
00000906 <dtostrf>:
906: ef 92 push r14
908: 0f 93 push r16
90a: 1f 93 push r17
90c: cf 93 push r28
90e: df 93 push r29
910: e8 01 movw r28, r16
912: 47 fd sbrc r20, 7
914: 02 c0 rjmp .+4 ; 0x91a <dtostrf+0x14>
916: 34 e0 ldi r19, 0x04 ; 4
918: 01 c0 rjmp .+2 ; 0x91c <dtostrf+0x16>
91a: 34 e1 ldi r19, 0x14 ; 20
91c: 04 2e mov r0, r20
91e: 00 0c add r0, r0
920: 55 0b sbc r21, r21
922: 57 ff sbrs r21, 7
924: 03 c0 rjmp .+6 ; 0x92c <dtostrf+0x26>
926: 51 95 neg r21
928: 41 95 neg r20
92a: 51 09 sbc r21, r1
92c: e3 2e mov r14, r19
92e: 02 2f mov r16, r18
930: 24 2f mov r18, r20
932: ae 01 movw r20, r28
934: 40 d2 rcall .+1152 ; 0xdb6 <dtoa_prf>
936: ce 01 movw r24, r28
938: df 91 pop r29
93a: cf 91 pop r28
93c: 1f 91 pop r17
93e: 0f 91 pop r16
940: ef 90 pop r14
942: 08 95 ret
00000944 <snprintf>:
944: 0f 93 push r16
946: 1f 93 push r17
948: cf 93 push r28
94a: df 93 push r29
94c: cd b7 in r28, 0x3d ; 61
94e: de b7 in r29, 0x3e ; 62
950: 2e 97 sbiw r28, 0x0e ; 14
952: 0f b6 in r0, 0x3f ; 63
954: f8 94 cli
956: de bf out 0x3e, r29 ; 62
958: 0f be out 0x3f, r0 ; 63
95a: cd bf out 0x3d, r28 ; 61
95c: 0d 89 ldd r16, Y+21 ; 0x15
95e: 1e 89 ldd r17, Y+22 ; 0x16
960: 8f 89 ldd r24, Y+23 ; 0x17
962: 98 8d ldd r25, Y+24 ; 0x18
964: 26 e0 ldi r18, 0x06 ; 6
966: 2c 83 std Y+4, r18 ; 0x04
968: 1a 83 std Y+2, r17 ; 0x02
96a: 09 83 std Y+1, r16 ; 0x01
96c: 97 ff sbrs r25, 7
96e: 02 c0 rjmp .+4 ; 0x974 <snprintf+0x30>
970: 80 e0 ldi r24, 0x00 ; 0
972: 90 e8 ldi r25, 0x80 ; 128
974: 01 97 sbiw r24, 0x01 ; 1
976: 9e 83 std Y+6, r25 ; 0x06
978: 8d 83 std Y+5, r24 ; 0x05
97a: ae 01 movw r20, r28
97c: 45 5e subi r20, 0xE5 ; 229
97e: 5f 4f sbci r21, 0xFF ; 255
980: 69 8d ldd r22, Y+25 ; 0x19
982: 7a 8d ldd r23, Y+26 ; 0x1a
984: ce 01 movw r24, r28
986: 01 96 adiw r24, 0x01 ; 1
988: 19 d0 rcall .+50 ; 0x9bc <vfprintf>
98a: 4d 81 ldd r20, Y+5 ; 0x05
98c: 5e 81 ldd r21, Y+6 ; 0x06
98e: 57 fd sbrc r21, 7
990: 0a c0 rjmp .+20 ; 0x9a6 <snprintf+0x62>
992: 2f 81 ldd r18, Y+7 ; 0x07
994: 38 85 ldd r19, Y+8 ; 0x08
996: 42 17 cp r20, r18
998: 53 07 cpc r21, r19
99a: 0c f4 brge .+2 ; 0x99e <snprintf+0x5a>
99c: 9a 01 movw r18, r20
99e: f8 01 movw r30, r16
9a0: e2 0f add r30, r18
9a2: f3 1f adc r31, r19
9a4: 10 82 st Z, r1
9a6: 2e 96 adiw r28, 0x0e ; 14
9a8: 0f b6 in r0, 0x3f ; 63
9aa: f8 94 cli
9ac: de bf out 0x3e, r29 ; 62
9ae: 0f be out 0x3f, r0 ; 63
9b0: cd bf out 0x3d, r28 ; 61
9b2: df 91 pop r29
9b4: cf 91 pop r28
9b6: 1f 91 pop r17
9b8: 0f 91 pop r16
9ba: 08 95 ret
000009bc <vfprintf>:
9bc: 2f 92 push r2
9be: 3f 92 push r3
9c0: 4f 92 push r4
9c2: 5f 92 push r5
9c4: 6f 92 push r6
9c6: 7f 92 push r7
9c8: 8f 92 push r8
9ca: 9f 92 push r9
9cc: af 92 push r10
9ce: bf 92 push r11
9d0: cf 92 push r12
9d2: df 92 push r13
9d4: ef 92 push r14
9d6: ff 92 push r15
9d8: 0f 93 push r16
9da: 1f 93 push r17
9dc: cf 93 push r28
9de: df 93 push r29
9e0: cd b7 in r28, 0x3d ; 61
9e2: de b7 in r29, 0x3e ; 62
9e4: 2b 97 sbiw r28, 0x0b ; 11
9e6: 0f b6 in r0, 0x3f ; 63
9e8: f8 94 cli
9ea: de bf out 0x3e, r29 ; 62
9ec: 0f be out 0x3f, r0 ; 63
9ee: cd bf out 0x3d, r28 ; 61
9f0: 6c 01 movw r12, r24
9f2: 7b 01 movw r14, r22
9f4: 8a 01 movw r16, r20
9f6: fc 01 movw r30, r24
9f8: 17 82 std Z+7, r1 ; 0x07
9fa: 16 82 std Z+6, r1 ; 0x06
9fc: 83 81 ldd r24, Z+3 ; 0x03
9fe: 81 ff sbrs r24, 1
a00: bf c1 rjmp .+894 ; 0xd80 <vfprintf+0x3c4>
a02: ce 01 movw r24, r28
a04: 01 96 adiw r24, 0x01 ; 1
a06: 3c 01 movw r6, r24
a08: f6 01 movw r30, r12
a0a: 93 81 ldd r25, Z+3 ; 0x03
a0c: f7 01 movw r30, r14
a0e: 93 fd sbrc r25, 3
a10: 85 91 lpm r24, Z+
a12: 93 ff sbrs r25, 3
a14: 81 91 ld r24, Z+
a16: 7f 01 movw r14, r30
a18: 88 23 and r24, r24
a1a: 09 f4 brne .+2 ; 0xa1e <vfprintf+0x62>
a1c: ad c1 rjmp .+858 ; 0xd78 <vfprintf+0x3bc>
a1e: 85 32 cpi r24, 0x25 ; 37
a20: 39 f4 brne .+14 ; 0xa30 <vfprintf+0x74>
a22: 93 fd sbrc r25, 3
a24: 85 91 lpm r24, Z+
a26: 93 ff sbrs r25, 3
a28: 81 91 ld r24, Z+
a2a: 7f 01 movw r14, r30
a2c: 85 32 cpi r24, 0x25 ; 37
a2e: 21 f4 brne .+8 ; 0xa38 <vfprintf+0x7c>
a30: b6 01 movw r22, r12
a32: 90 e0 ldi r25, 0x00 ; 0
a34: 24 d4 rcall .+2120 ; 0x127e <fputc>
a36: e8 cf rjmp .-48 ; 0xa08 <vfprintf+0x4c>
a38: 91 2c mov r9, r1
a3a: 21 2c mov r2, r1
a3c: 31 2c mov r3, r1
a3e: ff e1 ldi r31, 0x1F ; 31
a40: f3 15 cp r31, r3
a42: d8 f0 brcs .+54 ; 0xa7a <vfprintf+0xbe>
a44: 8b 32 cpi r24, 0x2B ; 43
a46: 79 f0 breq .+30 ; 0xa66 <vfprintf+0xaa>
a48: 38 f4 brcc .+14 ; 0xa58 <vfprintf+0x9c>
a4a: 80 32 cpi r24, 0x20 ; 32
a4c: 79 f0 breq .+30 ; 0xa6c <vfprintf+0xb0>
a4e: 83 32 cpi r24, 0x23 ; 35
a50: a1 f4 brne .+40 ; 0xa7a <vfprintf+0xbe>
a52: 23 2d mov r18, r3
a54: 20 61 ori r18, 0x10 ; 16
a56: 1d c0 rjmp .+58 ; 0xa92 <vfprintf+0xd6>
a58: 8d 32 cpi r24, 0x2D ; 45
a5a: 61 f0 breq .+24 ; 0xa74 <vfprintf+0xb8>
a5c: 80 33 cpi r24, 0x30 ; 48
a5e: 69 f4 brne .+26 ; 0xa7a <vfprintf+0xbe>
a60: 23 2d mov r18, r3
a62: 21 60 ori r18, 0x01 ; 1
a64: 16 c0 rjmp .+44 ; 0xa92 <vfprintf+0xd6>
a66: 83 2d mov r24, r3
a68: 82 60 ori r24, 0x02 ; 2
a6a: 38 2e mov r3, r24
a6c: e3 2d mov r30, r3
a6e: e4 60 ori r30, 0x04 ; 4
a70: 3e 2e mov r3, r30
a72: 2a c0 rjmp .+84 ; 0xac8 <vfprintf+0x10c>
a74: f3 2d mov r31, r3
a76: f8 60 ori r31, 0x08 ; 8
a78: 1d c0 rjmp .+58 ; 0xab4 <vfprintf+0xf8>
a7a: 37 fc sbrc r3, 7
a7c: 2d c0 rjmp .+90 ; 0xad8 <vfprintf+0x11c>
a7e: 20 ed ldi r18, 0xD0 ; 208
a80: 28 0f add r18, r24
a82: 2a 30 cpi r18, 0x0A ; 10
a84: 40 f0 brcs .+16 ; 0xa96 <vfprintf+0xda>
a86: 8e 32 cpi r24, 0x2E ; 46
a88: b9 f4 brne .+46 ; 0xab8 <vfprintf+0xfc>
a8a: 36 fc sbrc r3, 6
a8c: 75 c1 rjmp .+746 ; 0xd78 <vfprintf+0x3bc>
a8e: 23 2d mov r18, r3
a90: 20 64 ori r18, 0x40 ; 64
a92: 32 2e mov r3, r18
a94: 19 c0 rjmp .+50 ; 0xac8 <vfprintf+0x10c>
a96: 36 fe sbrs r3, 6
a98: 06 c0 rjmp .+12 ; 0xaa6 <vfprintf+0xea>
a9a: 8a e0 ldi r24, 0x0A ; 10
a9c: 98 9e mul r9, r24
a9e: 20 0d add r18, r0
aa0: 11 24 eor r1, r1
aa2: 92 2e mov r9, r18
aa4: 11 c0 rjmp .+34 ; 0xac8 <vfprintf+0x10c>
aa6: ea e0 ldi r30, 0x0A ; 10
aa8: 2e 9e mul r2, r30
aaa: 20 0d add r18, r0
aac: 11 24 eor r1, r1
aae: 22 2e mov r2, r18
ab0: f3 2d mov r31, r3
ab2: f0 62 ori r31, 0x20 ; 32
ab4: 3f 2e mov r3, r31
ab6: 08 c0 rjmp .+16 ; 0xac8 <vfprintf+0x10c>
ab8: 8c 36 cpi r24, 0x6C ; 108
aba: 21 f4 brne .+8 ; 0xac4 <vfprintf+0x108>
abc: 83 2d mov r24, r3
abe: 80 68 ori r24, 0x80 ; 128
ac0: 38 2e mov r3, r24
ac2: 02 c0 rjmp .+4 ; 0xac8 <vfprintf+0x10c>
ac4: 88 36 cpi r24, 0x68 ; 104
ac6: 41 f4 brne .+16 ; 0xad8 <vfprintf+0x11c>
ac8: f7 01 movw r30, r14
aca: 93 fd sbrc r25, 3
acc: 85 91 lpm r24, Z+
ace: 93 ff sbrs r25, 3
ad0: 81 91 ld r24, Z+
ad2: 7f 01 movw r14, r30
ad4: 81 11 cpse r24, r1
ad6: b3 cf rjmp .-154 ; 0xa3e <vfprintf+0x82>
ad8: 98 2f mov r25, r24
ada: 9f 7d andi r25, 0xDF ; 223
adc: 95 54 subi r25, 0x45 ; 69
ade: 93 30 cpi r25, 0x03 ; 3
ae0: 28 f4 brcc .+10 ; 0xaec <vfprintf+0x130>
ae2: 0c 5f subi r16, 0xFC ; 252
ae4: 1f 4f sbci r17, 0xFF ; 255
ae6: 9f e3 ldi r25, 0x3F ; 63
ae8: 99 83 std Y+1, r25 ; 0x01
aea: 0d c0 rjmp .+26 ; 0xb06 <vfprintf+0x14a>
aec: 83 36 cpi r24, 0x63 ; 99
aee: 31 f0 breq .+12 ; 0xafc <vfprintf+0x140>
af0: 83 37 cpi r24, 0x73 ; 115
af2: 71 f0 breq .+28 ; 0xb10 <vfprintf+0x154>
af4: 83 35 cpi r24, 0x53 ; 83
af6: 09 f0 breq .+2 ; 0xafa <vfprintf+0x13e>
af8: 55 c0 rjmp .+170 ; 0xba4 <vfprintf+0x1e8>
afa: 20 c0 rjmp .+64 ; 0xb3c <vfprintf+0x180>
afc: f8 01 movw r30, r16
afe: 80 81 ld r24, Z
b00: 89 83 std Y+1, r24 ; 0x01
b02: 0e 5f subi r16, 0xFE ; 254
b04: 1f 4f sbci r17, 0xFF ; 255
b06: 88 24 eor r8, r8
b08: 83 94 inc r8
b0a: 91 2c mov r9, r1
b0c: 53 01 movw r10, r6
b0e: 12 c0 rjmp .+36 ; 0xb34 <vfprintf+0x178>
b10: 28 01 movw r4, r16
b12: f2 e0 ldi r31, 0x02 ; 2
b14: 4f 0e add r4, r31
b16: 51 1c adc r5, r1
b18: f8 01 movw r30, r16
b1a: a0 80 ld r10, Z
b1c: b1 80 ldd r11, Z+1 ; 0x01
b1e: 36 fe sbrs r3, 6
b20: 03 c0 rjmp .+6 ; 0xb28 <vfprintf+0x16c>
b22: 69 2d mov r22, r9
b24: 70 e0 ldi r23, 0x00 ; 0
b26: 02 c0 rjmp .+4 ; 0xb2c <vfprintf+0x170>
b28: 6f ef ldi r22, 0xFF ; 255
b2a: 7f ef ldi r23, 0xFF ; 255
b2c: c5 01 movw r24, r10
b2e: 9c d3 rcall .+1848 ; 0x1268 <strnlen>
b30: 4c 01 movw r8, r24
b32: 82 01 movw r16, r4
b34: f3 2d mov r31, r3
b36: ff 77 andi r31, 0x7F ; 127
b38: 3f 2e mov r3, r31
b3a: 15 c0 rjmp .+42 ; 0xb66 <vfprintf+0x1aa>
b3c: 28 01 movw r4, r16
b3e: 22 e0 ldi r18, 0x02 ; 2
b40: 42 0e add r4, r18
b42: 51 1c adc r5, r1
b44: f8 01 movw r30, r16
b46: a0 80 ld r10, Z
b48: b1 80 ldd r11, Z+1 ; 0x01
b4a: 36 fe sbrs r3, 6
b4c: 03 c0 rjmp .+6 ; 0xb54 <vfprintf+0x198>
b4e: 69 2d mov r22, r9
b50: 70 e0 ldi r23, 0x00 ; 0
b52: 02 c0 rjmp .+4 ; 0xb58 <vfprintf+0x19c>
b54: 6f ef ldi r22, 0xFF ; 255
b56: 7f ef ldi r23, 0xFF ; 255
b58: c5 01 movw r24, r10
b5a: 7b d3 rcall .+1782 ; 0x1252 <strnlen_P>
b5c: 4c 01 movw r8, r24
b5e: f3 2d mov r31, r3
b60: f0 68 ori r31, 0x80 ; 128
b62: 3f 2e mov r3, r31
b64: 82 01 movw r16, r4
b66: 33 fc sbrc r3, 3
b68: 19 c0 rjmp .+50 ; 0xb9c <vfprintf+0x1e0>
b6a: 82 2d mov r24, r2
b6c: 90 e0 ldi r25, 0x00 ; 0
b6e: 88 16 cp r8, r24
b70: 99 06 cpc r9, r25
b72: a0 f4 brcc .+40 ; 0xb9c <vfprintf+0x1e0>
b74: b6 01 movw r22, r12
b76: 80 e2 ldi r24, 0x20 ; 32
b78: 90 e0 ldi r25, 0x00 ; 0
b7a: 81 d3 rcall .+1794 ; 0x127e <fputc>
b7c: 2a 94 dec r2
b7e: f5 cf rjmp .-22 ; 0xb6a <vfprintf+0x1ae>
b80: f5 01 movw r30, r10
b82: 37 fc sbrc r3, 7
b84: 85 91 lpm r24, Z+
b86: 37 fe sbrs r3, 7
b88: 81 91 ld r24, Z+
b8a: 5f 01 movw r10, r30
b8c: b6 01 movw r22, r12
b8e: 90 e0 ldi r25, 0x00 ; 0
b90: 76 d3 rcall .+1772 ; 0x127e <fputc>
b92: 21 10 cpse r2, r1
b94: 2a 94 dec r2
b96: 21 e0 ldi r18, 0x01 ; 1
b98: 82 1a sub r8, r18
b9a: 91 08 sbc r9, r1
b9c: 81 14 cp r8, r1
b9e: 91 04 cpc r9, r1
ba0: 79 f7 brne .-34 ; 0xb80 <vfprintf+0x1c4>
ba2: e1 c0 rjmp .+450 ; 0xd66 <vfprintf+0x3aa>
ba4: 84 36 cpi r24, 0x64 ; 100
ba6: 11 f0 breq .+4 ; 0xbac <vfprintf+0x1f0>
ba8: 89 36 cpi r24, 0x69 ; 105
baa: 39 f5 brne .+78 ; 0xbfa <vfprintf+0x23e>
bac: f8 01 movw r30, r16
bae: 37 fe sbrs r3, 7
bb0: 07 c0 rjmp .+14 ; 0xbc0 <vfprintf+0x204>
bb2: 60 81 ld r22, Z
bb4: 71 81 ldd r23, Z+1 ; 0x01
bb6: 82 81 ldd r24, Z+2 ; 0x02
bb8: 93 81 ldd r25, Z+3 ; 0x03
bba: 0c 5f subi r16, 0xFC ; 252
bbc: 1f 4f sbci r17, 0xFF ; 255
bbe: 08 c0 rjmp .+16 ; 0xbd0 <vfprintf+0x214>
bc0: 60 81 ld r22, Z
bc2: 71 81 ldd r23, Z+1 ; 0x01
bc4: 07 2e mov r0, r23
bc6: 00 0c add r0, r0
bc8: 88 0b sbc r24, r24
bca: 99 0b sbc r25, r25
bcc: 0e 5f subi r16, 0xFE ; 254
bce: 1f 4f sbci r17, 0xFF ; 255
bd0: f3 2d mov r31, r3
bd2: ff 76 andi r31, 0x6F ; 111
bd4: 3f 2e mov r3, r31
bd6: 97 ff sbrs r25, 7
bd8: 09 c0 rjmp .+18 ; 0xbec <vfprintf+0x230>
bda: 90 95 com r25
bdc: 80 95 com r24
bde: 70 95 com r23
be0: 61 95 neg r22
be2: 7f 4f sbci r23, 0xFF ; 255
be4: 8f 4f sbci r24, 0xFF ; 255
be6: 9f 4f sbci r25, 0xFF ; 255
be8: f0 68 ori r31, 0x80 ; 128
bea: 3f 2e mov r3, r31
bec: 2a e0 ldi r18, 0x0A ; 10
bee: 30 e0 ldi r19, 0x00 ; 0
bf0: a3 01 movw r20, r6
bf2: 81 d3 rcall .+1794 ; 0x12f6 <__ultoa_invert>
bf4: 88 2e mov r8, r24
bf6: 86 18 sub r8, r6
bf8: 44 c0 rjmp .+136 ; 0xc82 <vfprintf+0x2c6>
bfa: 85 37 cpi r24, 0x75 ; 117
bfc: 31 f4 brne .+12 ; 0xc0a <vfprintf+0x24e>
bfe: 23 2d mov r18, r3
c00: 2f 7e andi r18, 0xEF ; 239
c02: b2 2e mov r11, r18
c04: 2a e0 ldi r18, 0x0A ; 10
c06: 30 e0 ldi r19, 0x00 ; 0
c08: 25 c0 rjmp .+74 ; 0xc54 <vfprintf+0x298>
c0a: 93 2d mov r25, r3
c0c: 99 7f andi r25, 0xF9 ; 249
c0e: b9 2e mov r11, r25
c10: 8f 36 cpi r24, 0x6F ; 111
c12: c1 f0 breq .+48 ; 0xc44 <vfprintf+0x288>
c14: 18 f4 brcc .+6 ; 0xc1c <vfprintf+0x260>
c16: 88 35 cpi r24, 0x58 ; 88
c18: 79 f0 breq .+30 ; 0xc38 <vfprintf+0x27c>
c1a: ae c0 rjmp .+348 ; 0xd78 <vfprintf+0x3bc>
c1c: 80 37 cpi r24, 0x70 ; 112
c1e: 19 f0 breq .+6 ; 0xc26 <vfprintf+0x26a>
c20: 88 37 cpi r24, 0x78 ; 120
c22: 21 f0 breq .+8 ; 0xc2c <vfprintf+0x270>
c24: a9 c0 rjmp .+338 ; 0xd78 <vfprintf+0x3bc>
c26: e9 2f mov r30, r25
c28: e0 61 ori r30, 0x10 ; 16
c2a: be 2e mov r11, r30
c2c: b4 fe sbrs r11, 4
c2e: 0d c0 rjmp .+26 ; 0xc4a <vfprintf+0x28e>
c30: fb 2d mov r31, r11
c32: f4 60 ori r31, 0x04 ; 4
c34: bf 2e mov r11, r31
c36: 09 c0 rjmp .+18 ; 0xc4a <vfprintf+0x28e>
c38: 34 fe sbrs r3, 4
c3a: 0a c0 rjmp .+20 ; 0xc50 <vfprintf+0x294>
c3c: 29 2f mov r18, r25
c3e: 26 60 ori r18, 0x06 ; 6
c40: b2 2e mov r11, r18
c42: 06 c0 rjmp .+12 ; 0xc50 <vfprintf+0x294>
c44: 28 e0 ldi r18, 0x08 ; 8
c46: 30 e0 ldi r19, 0x00 ; 0
c48: 05 c0 rjmp .+10 ; 0xc54 <vfprintf+0x298>
c4a: 20 e1 ldi r18, 0x10 ; 16
c4c: 30 e0 ldi r19, 0x00 ; 0
c4e: 02 c0 rjmp .+4 ; 0xc54 <vfprintf+0x298>
c50: 20 e1 ldi r18, 0x10 ; 16
c52: 32 e0 ldi r19, 0x02 ; 2
c54: f8 01 movw r30, r16
c56: b7 fe sbrs r11, 7
c58: 07 c0 rjmp .+14 ; 0xc68 <vfprintf+0x2ac>
c5a: 60 81 ld r22, Z
c5c: 71 81 ldd r23, Z+1 ; 0x01
c5e: 82 81 ldd r24, Z+2 ; 0x02
c60: 93 81 ldd r25, Z+3 ; 0x03
c62: 0c 5f subi r16, 0xFC ; 252
c64: 1f 4f sbci r17, 0xFF ; 255
c66: 06 c0 rjmp .+12 ; 0xc74 <vfprintf+0x2b8>
c68: 60 81 ld r22, Z
c6a: 71 81 ldd r23, Z+1 ; 0x01
c6c: 80 e0 ldi r24, 0x00 ; 0
c6e: 90 e0 ldi r25, 0x00 ; 0
c70: 0e 5f subi r16, 0xFE ; 254
c72: 1f 4f sbci r17, 0xFF ; 255
c74: a3 01 movw r20, r6
c76: 3f d3 rcall .+1662 ; 0x12f6 <__ultoa_invert>
c78: 88 2e mov r8, r24
c7a: 86 18 sub r8, r6
c7c: fb 2d mov r31, r11
c7e: ff 77 andi r31, 0x7F ; 127
c80: 3f 2e mov r3, r31
c82: 36 fe sbrs r3, 6
c84: 0d c0 rjmp .+26 ; 0xca0 <vfprintf+0x2e4>
c86: 23 2d mov r18, r3
c88: 2e 7f andi r18, 0xFE ; 254
c8a: a2 2e mov r10, r18
c8c: 89 14 cp r8, r9
c8e: 58 f4 brcc .+22 ; 0xca6 <vfprintf+0x2ea>
c90: 34 fe sbrs r3, 4
c92: 0b c0 rjmp .+22 ; 0xcaa <vfprintf+0x2ee>
c94: 32 fc sbrc r3, 2
c96: 09 c0 rjmp .+18 ; 0xcaa <vfprintf+0x2ee>
c98: 83 2d mov r24, r3
c9a: 8e 7e andi r24, 0xEE ; 238
c9c: a8 2e mov r10, r24
c9e: 05 c0 rjmp .+10 ; 0xcaa <vfprintf+0x2ee>
ca0: b8 2c mov r11, r8
ca2: a3 2c mov r10, r3
ca4: 03 c0 rjmp .+6 ; 0xcac <vfprintf+0x2f0>
ca6: b8 2c mov r11, r8
ca8: 01 c0 rjmp .+2 ; 0xcac <vfprintf+0x2f0>
caa: b9 2c mov r11, r9
cac: a4 fe sbrs r10, 4
cae: 0f c0 rjmp .+30 ; 0xcce <vfprintf+0x312>
cb0: fe 01 movw r30, r28
cb2: e8 0d add r30, r8
cb4: f1 1d adc r31, r1
cb6: 80 81 ld r24, Z
cb8: 80 33 cpi r24, 0x30 ; 48
cba: 21 f4 brne .+8 ; 0xcc4 <vfprintf+0x308>
cbc: 9a 2d mov r25, r10
cbe: 99 7e andi r25, 0xE9 ; 233
cc0: a9 2e mov r10, r25
cc2: 09 c0 rjmp .+18 ; 0xcd6 <vfprintf+0x31a>
cc4: a2 fe sbrs r10, 2
cc6: 06 c0 rjmp .+12 ; 0xcd4 <vfprintf+0x318>
cc8: b3 94 inc r11
cca: b3 94 inc r11
ccc: 04 c0 rjmp .+8 ; 0xcd6 <vfprintf+0x31a>
cce: 8a 2d mov r24, r10
cd0: 86 78 andi r24, 0x86 ; 134
cd2: 09 f0 breq .+2 ; 0xcd6 <vfprintf+0x31a>
cd4: b3 94 inc r11
cd6: a3 fc sbrc r10, 3
cd8: 10 c0 rjmp .+32 ; 0xcfa <vfprintf+0x33e>
cda: a0 fe sbrs r10, 0
cdc: 06 c0 rjmp .+12 ; 0xcea <vfprintf+0x32e>
cde: b2 14 cp r11, r2
ce0: 80 f4 brcc .+32 ; 0xd02 <vfprintf+0x346>
ce2: 28 0c add r2, r8
ce4: 92 2c mov r9, r2
ce6: 9b 18 sub r9, r11
ce8: 0d c0 rjmp .+26 ; 0xd04 <vfprintf+0x348>
cea: b2 14 cp r11, r2
cec: 58 f4 brcc .+22 ; 0xd04 <vfprintf+0x348>
cee: b6 01 movw r22, r12
cf0: 80 e2 ldi r24, 0x20 ; 32
cf2: 90 e0 ldi r25, 0x00 ; 0
cf4: c4 d2 rcall .+1416 ; 0x127e <fputc>
cf6: b3 94 inc r11
cf8: f8 cf rjmp .-16 ; 0xcea <vfprintf+0x32e>
cfa: b2 14 cp r11, r2
cfc: 18 f4 brcc .+6 ; 0xd04 <vfprintf+0x348>
cfe: 2b 18 sub r2, r11
d00: 02 c0 rjmp .+4 ; 0xd06 <vfprintf+0x34a>
d02: 98 2c mov r9, r8
d04: 21 2c mov r2, r1
d06: a4 fe sbrs r10, 4
d08: 0f c0 rjmp .+30 ; 0xd28 <vfprintf+0x36c>
d0a: b6 01 movw r22, r12
d0c: 80 e3 ldi r24, 0x30 ; 48
d0e: 90 e0 ldi r25, 0x00 ; 0
d10: b6 d2 rcall .+1388 ; 0x127e <fputc>
d12: a2 fe sbrs r10, 2
d14: 16 c0 rjmp .+44 ; 0xd42 <vfprintf+0x386>
d16: a1 fc sbrc r10, 1
d18: 03 c0 rjmp .+6 ; 0xd20 <vfprintf+0x364>
d1a: 88 e7 ldi r24, 0x78 ; 120
d1c: 90 e0 ldi r25, 0x00 ; 0
d1e: 02 c0 rjmp .+4 ; 0xd24 <vfprintf+0x368>
d20: 88 e5 ldi r24, 0x58 ; 88
d22: 90 e0 ldi r25, 0x00 ; 0
d24: b6 01 movw r22, r12
d26: 0c c0 rjmp .+24 ; 0xd40 <vfprintf+0x384>
d28: 8a 2d mov r24, r10
d2a: 86 78 andi r24, 0x86 ; 134
d2c: 51 f0 breq .+20 ; 0xd42 <vfprintf+0x386>
d2e: a1 fe sbrs r10, 1
d30: 02 c0 rjmp .+4 ; 0xd36 <vfprintf+0x37a>
d32: 8b e2 ldi r24, 0x2B ; 43
d34: 01 c0 rjmp .+2 ; 0xd38 <vfprintf+0x37c>
d36: 80 e2 ldi r24, 0x20 ; 32
d38: a7 fc sbrc r10, 7
d3a: 8d e2 ldi r24, 0x2D ; 45
d3c: b6 01 movw r22, r12
d3e: 90 e0 ldi r25, 0x00 ; 0
d40: 9e d2 rcall .+1340 ; 0x127e <fputc>
d42: 89 14 cp r8, r9
d44: 30 f4 brcc .+12 ; 0xd52 <vfprintf+0x396>
d46: b6 01 movw r22, r12
d48: 80 e3 ldi r24, 0x30 ; 48
d4a: 90 e0 ldi r25, 0x00 ; 0
d4c: 98 d2 rcall .+1328 ; 0x127e <fputc>
d4e: 9a 94 dec r9
d50: f8 cf rjmp .-16 ; 0xd42 <vfprintf+0x386>
d52: 8a 94 dec r8
d54: f3 01 movw r30, r6
d56: e8 0d add r30, r8
d58: f1 1d adc r31, r1
d5a: 80 81 ld r24, Z
d5c: b6 01 movw r22, r12
d5e: 90 e0 ldi r25, 0x00 ; 0
d60: 8e d2 rcall .+1308 ; 0x127e <fputc>
d62: 81 10 cpse r8, r1
d64: f6 cf rjmp .-20 ; 0xd52 <vfprintf+0x396>
d66: 22 20 and r2, r2
d68: 09 f4 brne .+2 ; 0xd6c <vfprintf+0x3b0>
d6a: 4e ce rjmp .-868 ; 0xa08 <vfprintf+0x4c>
d6c: b6 01 movw r22, r12
d6e: 80 e2 ldi r24, 0x20 ; 32
d70: 90 e0 ldi r25, 0x00 ; 0
d72: 85 d2 rcall .+1290 ; 0x127e <fputc>
d74: 2a 94 dec r2
d76: f7 cf rjmp .-18 ; 0xd66 <vfprintf+0x3aa>
d78: f6 01 movw r30, r12
d7a: 86 81 ldd r24, Z+6 ; 0x06
d7c: 97 81 ldd r25, Z+7 ; 0x07
d7e: 02 c0 rjmp .+4 ; 0xd84 <vfprintf+0x3c8>
d80: 8f ef ldi r24, 0xFF ; 255
d82: 9f ef ldi r25, 0xFF ; 255
d84: 2b 96 adiw r28, 0x0b ; 11
d86: 0f b6 in r0, 0x3f ; 63
d88: f8 94 cli
d8a: de bf out 0x3e, r29 ; 62
d8c: 0f be out 0x3f, r0 ; 63
d8e: cd bf out 0x3d, r28 ; 61
d90: df 91 pop r29
d92: cf 91 pop r28
d94: 1f 91 pop r17
d96: 0f 91 pop r16
d98: ff 90 pop r15
d9a: ef 90 pop r14
d9c: df 90 pop r13
d9e: cf 90 pop r12
da0: bf 90 pop r11
da2: af 90 pop r10
da4: 9f 90 pop r9
da6: 8f 90 pop r8
da8: 7f 90 pop r7
daa: 6f 90 pop r6
dac: 5f 90 pop r5
dae: 4f 90 pop r4
db0: 3f 90 pop r3
db2: 2f 90 pop r2
db4: 08 95 ret
00000db6 <dtoa_prf>:
db6: 8f 92 push r8
db8: 9f 92 push r9
dba: af 92 push r10
dbc: bf 92 push r11
dbe: cf 92 push r12
dc0: df 92 push r13
dc2: ef 92 push r14
dc4: ff 92 push r15
dc6: 0f 93 push r16
dc8: 1f 93 push r17
dca: cf 93 push r28
dcc: df 93 push r29
dce: cd b7 in r28, 0x3d ; 61
dd0: de b7 in r29, 0x3e ; 62
dd2: 29 97 sbiw r28, 0x09 ; 9
dd4: 0f b6 in r0, 0x3f ; 63
dd6: f8 94 cli
dd8: de bf out 0x3e, r29 ; 62
dda: 0f be out 0x3f, r0 ; 63
ddc: cd bf out 0x3d, r28 ; 61
dde: 6a 01 movw r12, r20
de0: 12 2f mov r17, r18
de2: b0 2e mov r11, r16
de4: 2b e3 ldi r18, 0x3B ; 59
de6: 20 17 cp r18, r16
de8: 20 f0 brcs .+8 ; 0xdf2 <dtoa_prf+0x3c>
dea: ff 24 eor r15, r15
dec: f3 94 inc r15
dee: f0 0e add r15, r16
df0: 02 c0 rjmp .+4 ; 0xdf6 <dtoa_prf+0x40>
df2: 2c e3 ldi r18, 0x3C ; 60
df4: f2 2e mov r15, r18
df6: 0f 2d mov r16, r15
df8: 27 e0 ldi r18, 0x07 ; 7
dfa: ae 01 movw r20, r28
dfc: 4f 5f subi r20, 0xFF ; 255
dfe: 5f 4f sbci r21, 0xFF ; 255
e00: 50 d1 rcall .+672 ; 0x10a2 <__ftoa_engine>
e02: bc 01 movw r22, r24
e04: 49 81 ldd r20, Y+1 ; 0x01
e06: 84 2f mov r24, r20
e08: 89 70 andi r24, 0x09 ; 9
e0a: 81 30 cpi r24, 0x01 ; 1
e0c: 31 f0 breq .+12 ; 0xe1a <dtoa_prf+0x64>
e0e: e1 fc sbrc r14, 1
e10: 06 c0 rjmp .+12 ; 0xe1e <dtoa_prf+0x68>
e12: e0 fe sbrs r14, 0
e14: 06 c0 rjmp .+12 ; 0xe22 <dtoa_prf+0x6c>
e16: 90 e2 ldi r25, 0x20 ; 32
e18: 05 c0 rjmp .+10 ; 0xe24 <dtoa_prf+0x6e>
e1a: 9d e2 ldi r25, 0x2D ; 45
e1c: 03 c0 rjmp .+6 ; 0xe24 <dtoa_prf+0x6e>
e1e: 9b e2 ldi r25, 0x2B ; 43
e20: 01 c0 rjmp .+2 ; 0xe24 <dtoa_prf+0x6e>
e22: 90 e0 ldi r25, 0x00 ; 0
e24: 5e 2d mov r21, r14
e26: 50 71 andi r21, 0x10 ; 16
e28: 43 ff sbrs r20, 3
e2a: 3c c0 rjmp .+120 ; 0xea4 <dtoa_prf+0xee>
e2c: 91 11 cpse r25, r1
e2e: 02 c0 rjmp .+4 ; 0xe34 <dtoa_prf+0x7e>
e30: 83 e0 ldi r24, 0x03 ; 3
e32: 01 c0 rjmp .+2 ; 0xe36 <dtoa_prf+0x80>
e34: 84 e0 ldi r24, 0x04 ; 4
e36: 81 17 cp r24, r17
e38: 18 f4 brcc .+6 ; 0xe40 <dtoa_prf+0x8a>
e3a: 21 2f mov r18, r17
e3c: 28 1b sub r18, r24
e3e: 01 c0 rjmp .+2 ; 0xe42 <dtoa_prf+0x8c>
e40: 20 e0 ldi r18, 0x00 ; 0
e42: 51 11 cpse r21, r1
e44: 0b c0 rjmp .+22 ; 0xe5c <dtoa_prf+0xa6>
e46: f6 01 movw r30, r12
e48: 82 2f mov r24, r18
e4a: 30 e2 ldi r19, 0x20 ; 32
e4c: 88 23 and r24, r24
e4e: 19 f0 breq .+6 ; 0xe56 <dtoa_prf+0xa0>
e50: 31 93 st Z+, r19
e52: 81 50 subi r24, 0x01 ; 1
e54: fb cf rjmp .-10 ; 0xe4c <dtoa_prf+0x96>
e56: c2 0e add r12, r18
e58: d1 1c adc r13, r1
e5a: 20 e0 ldi r18, 0x00 ; 0
e5c: 99 23 and r25, r25
e5e: 29 f0 breq .+10 ; 0xe6a <dtoa_prf+0xb4>
e60: d6 01 movw r26, r12
e62: 9c 93 st X, r25
e64: f6 01 movw r30, r12
e66: 31 96 adiw r30, 0x01 ; 1
e68: 6f 01 movw r12, r30
e6a: c6 01 movw r24, r12
e6c: 03 96 adiw r24, 0x03 ; 3
e6e: e2 fe sbrs r14, 2
e70: 0a c0 rjmp .+20 ; 0xe86 <dtoa_prf+0xd0>
e72: 3e e4 ldi r19, 0x4E ; 78
e74: d6 01 movw r26, r12
e76: 3c 93 st X, r19
e78: 41 e4 ldi r20, 0x41 ; 65
e7a: 11 96 adiw r26, 0x01 ; 1
e7c: 4c 93 st X, r20
e7e: 11 97 sbiw r26, 0x01 ; 1
e80: 12 96 adiw r26, 0x02 ; 2
e82: 3c 93 st X, r19
e84: 06 c0 rjmp .+12 ; 0xe92 <dtoa_prf+0xdc>
e86: 3e e6 ldi r19, 0x6E ; 110
e88: f6 01 movw r30, r12
e8a: 30 83 st Z, r19
e8c: 41 e6 ldi r20, 0x61 ; 97
e8e: 41 83 std Z+1, r20 ; 0x01
e90: 32 83 std Z+2, r19 ; 0x02
e92: fc 01 movw r30, r24
e94: 32 2f mov r19, r18
e96: 40 e2 ldi r20, 0x20 ; 32
e98: 33 23 and r19, r19
e9a: 09 f4 brne .+2 ; 0xe9e <dtoa_prf+0xe8>
e9c: 42 c0 rjmp .+132 ; 0xf22 <dtoa_prf+0x16c>
e9e: 41 93 st Z+, r20
ea0: 31 50 subi r19, 0x01 ; 1
ea2: fa cf rjmp .-12 ; 0xe98 <dtoa_prf+0xe2>
ea4: 42 ff sbrs r20, 2
ea6: 44 c0 rjmp .+136 ; 0xf30 <dtoa_prf+0x17a>
ea8: 91 11 cpse r25, r1
eaa: 02 c0 rjmp .+4 ; 0xeb0 <dtoa_prf+0xfa>
eac: 83 e0 ldi r24, 0x03 ; 3
eae: 01 c0 rjmp .+2 ; 0xeb2 <dtoa_prf+0xfc>
eb0: 84 e0 ldi r24, 0x04 ; 4
eb2: 81 17 cp r24, r17
eb4: 18 f4 brcc .+6 ; 0xebc <dtoa_prf+0x106>
eb6: 21 2f mov r18, r17
eb8: 28 1b sub r18, r24
eba: 01 c0 rjmp .+2 ; 0xebe <dtoa_prf+0x108>
ebc: 20 e0 ldi r18, 0x00 ; 0
ebe: 51 11 cpse r21, r1
ec0: 0b c0 rjmp .+22 ; 0xed8 <dtoa_prf+0x122>
ec2: f6 01 movw r30, r12
ec4: 82 2f mov r24, r18
ec6: 30 e2 ldi r19, 0x20 ; 32
ec8: 88 23 and r24, r24
eca: 19 f0 breq .+6 ; 0xed2 <dtoa_prf+0x11c>
ecc: 31 93 st Z+, r19
ece: 81 50 subi r24, 0x01 ; 1
ed0: fb cf rjmp .-10 ; 0xec8 <dtoa_prf+0x112>
ed2: c2 0e add r12, r18
ed4: d1 1c adc r13, r1
ed6: 20 e0 ldi r18, 0x00 ; 0
ed8: 99 23 and r25, r25
eda: 29 f0 breq .+10 ; 0xee6 <dtoa_prf+0x130>
edc: d6 01 movw r26, r12
ede: 9c 93 st X, r25
ee0: f6 01 movw r30, r12
ee2: 31 96 adiw r30, 0x01 ; 1
ee4: 6f 01 movw r12, r30
ee6: c6 01 movw r24, r12
ee8: 03 96 adiw r24, 0x03 ; 3
eea: e2 fe sbrs r14, 2
eec: 0b c0 rjmp .+22 ; 0xf04 <dtoa_prf+0x14e>
eee: 39 e4 ldi r19, 0x49 ; 73
ef0: d6 01 movw r26, r12
ef2: 3c 93 st X, r19
ef4: 3e e4 ldi r19, 0x4E ; 78
ef6: 11 96 adiw r26, 0x01 ; 1
ef8: 3c 93 st X, r19
efa: 11 97 sbiw r26, 0x01 ; 1
efc: 36 e4 ldi r19, 0x46 ; 70
efe: 12 96 adiw r26, 0x02 ; 2
f00: 3c 93 st X, r19
f02: 07 c0 rjmp .+14 ; 0xf12 <dtoa_prf+0x15c>
f04: 39 e6 ldi r19, 0x69 ; 105
f06: f6 01 movw r30, r12
f08: 30 83 st Z, r19
f0a: 3e e6 ldi r19, 0x6E ; 110
f0c: 31 83 std Z+1, r19 ; 0x01
f0e: 36 e6 ldi r19, 0x66 ; 102
f10: 32 83 std Z+2, r19 ; 0x02
f12: fc 01 movw r30, r24
f14: 32 2f mov r19, r18
f16: 40 e2 ldi r20, 0x20 ; 32
f18: 33 23 and r19, r19
f1a: 19 f0 breq .+6 ; 0xf22 <dtoa_prf+0x16c>
f1c: 41 93 st Z+, r20
f1e: 31 50 subi r19, 0x01 ; 1
f20: fb cf rjmp .-10 ; 0xf18 <dtoa_prf+0x162>
f22: fc 01 movw r30, r24
f24: e2 0f add r30, r18
f26: f1 1d adc r31, r1
f28: 10 82 st Z, r1
f2a: 8e ef ldi r24, 0xFE ; 254
f2c: 9f ef ldi r25, 0xFF ; 255
f2e: a6 c0 rjmp .+332 ; 0x107c <__DATA_REGION_LENGTH__+0x7c>
f30: 21 e0 ldi r18, 0x01 ; 1
f32: 30 e0 ldi r19, 0x00 ; 0
f34: 91 11 cpse r25, r1
f36: 02 c0 rjmp .+4 ; 0xf3c <dtoa_prf+0x186>
f38: 20 e0 ldi r18, 0x00 ; 0
f3a: 30 e0 ldi r19, 0x00 ; 0
f3c: 16 16 cp r1, r22
f3e: 17 06 cpc r1, r23
f40: 1c f4 brge .+6 ; 0xf48 <dtoa_prf+0x192>
f42: fb 01 movw r30, r22
f44: 31 96 adiw r30, 0x01 ; 1
f46: 02 c0 rjmp .+4 ; 0xf4c <dtoa_prf+0x196>
f48: e1 e0 ldi r30, 0x01 ; 1
f4a: f0 e0 ldi r31, 0x00 ; 0
f4c: 2e 0f add r18, r30
f4e: 3f 1f adc r19, r31
f50: bb 20 and r11, r11
f52: 21 f0 breq .+8 ; 0xf5c <dtoa_prf+0x1a6>
f54: eb 2d mov r30, r11
f56: f0 e0 ldi r31, 0x00 ; 0
f58: 31 96 adiw r30, 0x01 ; 1
f5a: 02 c0 rjmp .+4 ; 0xf60 <dtoa_prf+0x1aa>
f5c: e0 e0 ldi r30, 0x00 ; 0
f5e: f0 e0 ldi r31, 0x00 ; 0
f60: 2e 0f add r18, r30
f62: 3f 1f adc r19, r31
f64: e1 2f mov r30, r17
f66: f0 e0 ldi r31, 0x00 ; 0
f68: 2e 17 cp r18, r30
f6a: 3f 07 cpc r19, r31
f6c: 1c f4 brge .+6 ; 0xf74 <dtoa_prf+0x1be>
f6e: 12 1b sub r17, r18
f70: 21 2f mov r18, r17
f72: 01 c0 rjmp .+2 ; 0xf76 <dtoa_prf+0x1c0>
f74: 20 e0 ldi r18, 0x00 ; 0
f76: 8e 2d mov r24, r14
f78: 88 71 andi r24, 0x18 ; 24
f7a: 59 f4 brne .+22 ; 0xf92 <dtoa_prf+0x1dc>
f7c: f6 01 movw r30, r12
f7e: 82 2f mov r24, r18
f80: 30 e2 ldi r19, 0x20 ; 32
f82: 88 23 and r24, r24
f84: 19 f0 breq .+6 ; 0xf8c <dtoa_prf+0x1d6>
f86: 31 93 st Z+, r19
f88: 81 50 subi r24, 0x01 ; 1
f8a: fb cf rjmp .-10 ; 0xf82 <dtoa_prf+0x1cc>
f8c: c2 0e add r12, r18
f8e: d1 1c adc r13, r1
f90: 20 e0 ldi r18, 0x00 ; 0
f92: 99 23 and r25, r25
f94: 29 f0 breq .+10 ; 0xfa0 <dtoa_prf+0x1ea>
f96: d6 01 movw r26, r12
f98: 9c 93 st X, r25
f9a: f6 01 movw r30, r12
f9c: 31 96 adiw r30, 0x01 ; 1
f9e: 6f 01 movw r12, r30
fa0: 51 11 cpse r21, r1
fa2: 0b c0 rjmp .+22 ; 0xfba <dtoa_prf+0x204>
fa4: f6 01 movw r30, r12
fa6: 82 2f mov r24, r18
fa8: 90 e3 ldi r25, 0x30 ; 48
faa: 88 23 and r24, r24
fac: 19 f0 breq .+6 ; 0xfb4 <dtoa_prf+0x1fe>
fae: 91 93 st Z+, r25
fb0: 81 50 subi r24, 0x01 ; 1
fb2: fb cf rjmp .-10 ; 0xfaa <dtoa_prf+0x1f4>
fb4: c2 0e add r12, r18
fb6: d1 1c adc r13, r1
fb8: 20 e0 ldi r18, 0x00 ; 0
fba: 0f 2d mov r16, r15
fbc: 06 0f add r16, r22
fbe: 9a 81 ldd r25, Y+2 ; 0x02
fc0: 34 2f mov r19, r20
fc2: 30 71 andi r19, 0x10 ; 16
fc4: 44 ff sbrs r20, 4
fc6: 03 c0 rjmp .+6 ; 0xfce <dtoa_prf+0x218>
fc8: 91 33 cpi r25, 0x31 ; 49
fca: 09 f4 brne .+2 ; 0xfce <dtoa_prf+0x218>
fcc: 01 50 subi r16, 0x01 ; 1
fce: 10 16 cp r1, r16
fd0: 24 f4 brge .+8 ; 0xfda <dtoa_prf+0x224>
fd2: 09 30 cpi r16, 0x09 ; 9
fd4: 18 f0 brcs .+6 ; 0xfdc <dtoa_prf+0x226>
fd6: 08 e0 ldi r16, 0x08 ; 8
fd8: 01 c0 rjmp .+2 ; 0xfdc <dtoa_prf+0x226>
fda: 01 e0 ldi r16, 0x01 ; 1
fdc: ab 01 movw r20, r22
fde: 77 ff sbrs r23, 7
fe0: 02 c0 rjmp .+4 ; 0xfe6 <dtoa_prf+0x230>
fe2: 40 e0 ldi r20, 0x00 ; 0
fe4: 50 e0 ldi r21, 0x00 ; 0
fe6: fb 01 movw r30, r22
fe8: e4 1b sub r30, r20
fea: f5 0b sbc r31, r21
fec: a1 e0 ldi r26, 0x01 ; 1
fee: b0 e0 ldi r27, 0x00 ; 0
ff0: ac 0f add r26, r28
ff2: bd 1f adc r27, r29
ff4: ea 0f add r30, r26
ff6: fb 1f adc r31, r27
ff8: 8e e2 ldi r24, 0x2E ; 46
ffa: a8 2e mov r10, r24
ffc: 4b 01 movw r8, r22
ffe: 80 1a sub r8, r16
1000: 91 08 sbc r9, r1
1002: 0b 2d mov r16, r11
1004: 10 e0 ldi r17, 0x00 ; 0
1006: 11 95 neg r17
1008: 01 95 neg r16
100a: 11 09 sbc r17, r1
100c: 4f 3f cpi r20, 0xFF ; 255
100e: bf ef ldi r27, 0xFF ; 255
1010: 5b 07 cpc r21, r27
1012: 21 f4 brne .+8 ; 0x101c <__DATA_REGION_LENGTH__+0x1c>
1014: d6 01 movw r26, r12
1016: ac 92 st X, r10
1018: 11 96 adiw r26, 0x01 ; 1
101a: 6d 01 movw r12, r26
101c: 64 17 cp r22, r20
101e: 75 07 cpc r23, r21
1020: 2c f0 brlt .+10 ; 0x102c <__DATA_REGION_LENGTH__+0x2c>
1022: 84 16 cp r8, r20
1024: 95 06 cpc r9, r21
1026: 14 f4 brge .+4 ; 0x102c <__DATA_REGION_LENGTH__+0x2c>
1028: 81 81 ldd r24, Z+1 ; 0x01
102a: 01 c0 rjmp .+2 ; 0x102e <__DATA_REGION_LENGTH__+0x2e>
102c: 80 e3 ldi r24, 0x30 ; 48
102e: 41 50 subi r20, 0x01 ; 1
1030: 51 09 sbc r21, r1
1032: 31 96 adiw r30, 0x01 ; 1
1034: d6 01 movw r26, r12
1036: 11 96 adiw r26, 0x01 ; 1
1038: 7d 01 movw r14, r26
103a: 40 17 cp r20, r16
103c: 51 07 cpc r21, r17
103e: 24 f0 brlt .+8 ; 0x1048 <__DATA_REGION_LENGTH__+0x48>
1040: d6 01 movw r26, r12
1042: 8c 93 st X, r24
1044: 67 01 movw r12, r14
1046: e2 cf rjmp .-60 ; 0x100c <__DATA_REGION_LENGTH__+0xc>
1048: 64 17 cp r22, r20
104a: 75 07 cpc r23, r21
104c: 39 f4 brne .+14 ; 0x105c <__DATA_REGION_LENGTH__+0x5c>
104e: 96 33 cpi r25, 0x36 ; 54
1050: 20 f4 brcc .+8 ; 0x105a <__DATA_REGION_LENGTH__+0x5a>
1052: 95 33 cpi r25, 0x35 ; 53
1054: 19 f4 brne .+6 ; 0x105c <__DATA_REGION_LENGTH__+0x5c>
1056: 31 11 cpse r19, r1
1058: 01 c0 rjmp .+2 ; 0x105c <__DATA_REGION_LENGTH__+0x5c>
105a: 81 e3 ldi r24, 0x31 ; 49
105c: f6 01 movw r30, r12
105e: 80 83 st Z, r24
1060: f7 01 movw r30, r14
1062: 82 2f mov r24, r18
1064: 90 e2 ldi r25, 0x20 ; 32
1066: 88 23 and r24, r24
1068: 19 f0 breq .+6 ; 0x1070 <__DATA_REGION_LENGTH__+0x70>
106a: 91 93 st Z+, r25
106c: 81 50 subi r24, 0x01 ; 1
106e: fb cf rjmp .-10 ; 0x1066 <__DATA_REGION_LENGTH__+0x66>
1070: f7 01 movw r30, r14
1072: e2 0f add r30, r18
1074: f1 1d adc r31, r1
1076: 10 82 st Z, r1
1078: 80 e0 ldi r24, 0x00 ; 0
107a: 90 e0 ldi r25, 0x00 ; 0
107c: 29 96 adiw r28, 0x09 ; 9
107e: 0f b6 in r0, 0x3f ; 63
1080: f8 94 cli
1082: de bf out 0x3e, r29 ; 62
1084: 0f be out 0x3f, r0 ; 63
1086: cd bf out 0x3d, r28 ; 61
1088: df 91 pop r29
108a: cf 91 pop r28
108c: 1f 91 pop r17
108e: 0f 91 pop r16
1090: ff 90 pop r15
1092: ef 90 pop r14
1094: df 90 pop r13
1096: cf 90 pop r12
1098: bf 90 pop r11
109a: af 90 pop r10
109c: 9f 90 pop r9
109e: 8f 90 pop r8
10a0: 08 95 ret
000010a2 <__ftoa_engine>:
10a2: 28 30 cpi r18, 0x08 ; 8
10a4: 08 f0 brcs .+2 ; 0x10a8 <__ftoa_engine+0x6>
10a6: 27 e0 ldi r18, 0x07 ; 7
10a8: 33 27 eor r19, r19
10aa: da 01 movw r26, r20
10ac: 99 0f add r25, r25
10ae: 31 1d adc r19, r1
10b0: 87 fd sbrc r24, 7
10b2: 91 60 ori r25, 0x01 ; 1
10b4: 00 96 adiw r24, 0x00 ; 0
10b6: 61 05 cpc r22, r1
10b8: 71 05 cpc r23, r1
10ba: 39 f4 brne .+14 ; 0x10ca <__ftoa_engine+0x28>
10bc: 32 60 ori r19, 0x02 ; 2
10be: 2e 5f subi r18, 0xFE ; 254
10c0: 3d 93 st X+, r19
10c2: 30 e3 ldi r19, 0x30 ; 48
10c4: 2a 95 dec r18
10c6: e1 f7 brne .-8 ; 0x10c0 <__ftoa_engine+0x1e>
10c8: 08 95 ret
10ca: 9f 3f cpi r25, 0xFF ; 255
10cc: 30 f0 brcs .+12 ; 0x10da <__ftoa_engine+0x38>
10ce: 80 38 cpi r24, 0x80 ; 128
10d0: 71 05 cpc r23, r1
10d2: 61 05 cpc r22, r1
10d4: 09 f0 breq .+2 ; 0x10d8 <__ftoa_engine+0x36>
10d6: 3c 5f subi r19, 0xFC ; 252
10d8: 3c 5f subi r19, 0xFC ; 252
10da: 3d 93 st X+, r19
10dc: 91 30 cpi r25, 0x01 ; 1
10de: 08 f0 brcs .+2 ; 0x10e2 <__ftoa_engine+0x40>
10e0: 80 68 ori r24, 0x80 ; 128
10e2: 91 1d adc r25, r1
10e4: df 93 push r29
10e6: cf 93 push r28
10e8: 1f 93 push r17
10ea: 0f 93 push r16
10ec: ff 92 push r15
10ee: ef 92 push r14
10f0: 19 2f mov r17, r25
10f2: 98 7f andi r25, 0xF8 ; 248
10f4: 96 95 lsr r25
10f6: e9 2f mov r30, r25
10f8: 96 95 lsr r25
10fa: 96 95 lsr r25
10fc: e9 0f add r30, r25
10fe: ff 27 eor r31, r31
1100: ea 51 subi r30, 0x1A ; 26
1102: ff 4f sbci r31, 0xFF ; 255
1104: 99 27 eor r25, r25
1106: 33 27 eor r19, r19
1108: ee 24 eor r14, r14
110a: ff 24 eor r15, r15
110c: a7 01 movw r20, r14
110e: e7 01 movw r28, r14
1110: 05 90 lpm r0, Z+
1112: 08 94 sec
1114: 07 94 ror r0
1116: 28 f4 brcc .+10 ; 0x1122 <__stack+0x23>
1118: 36 0f add r19, r22
111a: e7 1e adc r14, r23
111c: f8 1e adc r15, r24
111e: 49 1f adc r20, r25
1120: 51 1d adc r21, r1
1122: 66 0f add r22, r22
1124: 77 1f adc r23, r23
1126: 88 1f adc r24, r24
1128: 99 1f adc r25, r25
112a: 06 94 lsr r0
112c: a1 f7 brne .-24 ; 0x1116 <__stack+0x17>
112e: 05 90 lpm r0, Z+
1130: 07 94 ror r0
1132: 28 f4 brcc .+10 ; 0x113e <__stack+0x3f>
1134: e7 0e add r14, r23
1136: f8 1e adc r15, r24
1138: 49 1f adc r20, r25
113a: 56 1f adc r21, r22
113c: c1 1d adc r28, r1
113e: 77 0f add r23, r23
1140: 88 1f adc r24, r24
1142: 99 1f adc r25, r25
1144: 66 1f adc r22, r22
1146: 06 94 lsr r0
1148: a1 f7 brne .-24 ; 0x1132 <__stack+0x33>
114a: 05 90 lpm r0, Z+
114c: 07 94 ror r0
114e: 28 f4 brcc .+10 ; 0x115a <__stack+0x5b>
1150: f8 0e add r15, r24
1152: 49 1f adc r20, r25
1154: 56 1f adc r21, r22
1156: c7 1f adc r28, r23
1158: d1 1d adc r29, r1
115a: 88 0f add r24, r24
115c: 99 1f adc r25, r25
115e: 66 1f adc r22, r22
1160: 77 1f adc r23, r23
1162: 06 94 lsr r0
1164: a1 f7 brne .-24 ; 0x114e <__stack+0x4f>
1166: 05 90 lpm r0, Z+
1168: 07 94 ror r0
116a: 20 f4 brcc .+8 ; 0x1174 <__stack+0x75>
116c: 49 0f add r20, r25
116e: 56 1f adc r21, r22
1170: c7 1f adc r28, r23
1172: d8 1f adc r29, r24
1174: 99 0f add r25, r25
1176: 66 1f adc r22, r22
1178: 77 1f adc r23, r23
117a: 88 1f adc r24, r24
117c: 06 94 lsr r0
117e: a9 f7 brne .-22 ; 0x116a <__stack+0x6b>
1180: 84 91 lpm r24, Z
1182: 10 95 com r17
1184: 17 70 andi r17, 0x07 ; 7
1186: 41 f0 breq .+16 ; 0x1198 <__stack+0x99>
1188: d6 95 lsr r29
118a: c7 95 ror r28
118c: 57 95 ror r21
118e: 47 95 ror r20
1190: f7 94 ror r15
1192: e7 94 ror r14
1194: 1a 95 dec r17
1196: c1 f7 brne .-16 ; 0x1188 <__stack+0x89>
1198: ec e8 ldi r30, 0x8C ; 140
119a: f0 e0 ldi r31, 0x00 ; 0
119c: 68 94 set
119e: 15 90 lpm r1, Z+
11a0: 15 91 lpm r17, Z+
11a2: 35 91 lpm r19, Z+
11a4: 65 91 lpm r22, Z+
11a6: 95 91 lpm r25, Z+
11a8: 05 90 lpm r0, Z+
11aa: 7f e2 ldi r23, 0x2F ; 47
11ac: 73 95 inc r23
11ae: e1 18 sub r14, r1
11b0: f1 0a sbc r15, r17
11b2: 43 0b sbc r20, r19
11b4: 56 0b sbc r21, r22
11b6: c9 0b sbc r28, r25
11b8: d0 09 sbc r29, r0
11ba: c0 f7 brcc .-16 ; 0x11ac <__stack+0xad>
11bc: e1 0c add r14, r1
11be: f1 1e adc r15, r17
11c0: 43 1f adc r20, r19
11c2: 56 1f adc r21, r22
11c4: c9 1f adc r28, r25
11c6: d0 1d adc r29, r0
11c8: 7e f4 brtc .+30 ; 0x11e8 <__stack+0xe9>
11ca: 70 33 cpi r23, 0x30 ; 48
11cc: 11 f4 brne .+4 ; 0x11d2 <__stack+0xd3>
11ce: 8a 95 dec r24
11d0: e6 cf rjmp .-52 ; 0x119e <__stack+0x9f>
11d2: e8 94 clt
11d4: 01 50 subi r16, 0x01 ; 1
11d6: 30 f0 brcs .+12 ; 0x11e4 <__stack+0xe5>
11d8: 08 0f add r16, r24
11da: 0a f4 brpl .+2 ; 0x11de <__stack+0xdf>
11dc: 00 27 eor r16, r16
11de: 02 17 cp r16, r18
11e0: 08 f4 brcc .+2 ; 0x11e4 <__stack+0xe5>
11e2: 20 2f mov r18, r16
11e4: 23 95 inc r18
11e6: 02 2f mov r16, r18
11e8: 7a 33 cpi r23, 0x3A ; 58
11ea: 28 f0 brcs .+10 ; 0x11f6 <__stack+0xf7>
11ec: 79 e3 ldi r23, 0x39 ; 57
11ee: 7d 93 st X+, r23
11f0: 2a 95 dec r18
11f2: e9 f7 brne .-6 ; 0x11ee <__stack+0xef>
11f4: 10 c0 rjmp .+32 ; 0x1216 <__stack+0x117>
11f6: 7d 93 st X+, r23
11f8: 2a 95 dec r18
11fa: 89 f6 brne .-94 ; 0x119e <__stack+0x9f>
11fc: 06 94 lsr r0
11fe: 97 95 ror r25
1200: 67 95 ror r22
1202: 37 95 ror r19
1204: 17 95 ror r17
1206: 17 94 ror r1
1208: e1 18 sub r14, r1
120a: f1 0a sbc r15, r17
120c: 43 0b sbc r20, r19
120e: 56 0b sbc r21, r22
1210: c9 0b sbc r28, r25
1212: d0 09 sbc r29, r0
1214: 98 f0 brcs .+38 ; 0x123c <__stack+0x13d>
1216: 23 95 inc r18
1218: 7e 91 ld r23, -X
121a: 73 95 inc r23
121c: 7a 33 cpi r23, 0x3A ; 58
121e: 08 f0 brcs .+2 ; 0x1222 <__stack+0x123>
1220: 70 e3 ldi r23, 0x30 ; 48
1222: 7c 93 st X, r23
1224: 20 13 cpse r18, r16
1226: b8 f7 brcc .-18 ; 0x1216 <__stack+0x117>
1228: 7e 91 ld r23, -X
122a: 70 61 ori r23, 0x10 ; 16
122c: 7d 93 st X+, r23
122e: 30 f0 brcs .+12 ; 0x123c <__stack+0x13d>
1230: 83 95 inc r24
1232: 71 e3 ldi r23, 0x31 ; 49
1234: 7d 93 st X+, r23
1236: 70 e3 ldi r23, 0x30 ; 48
1238: 2a 95 dec r18
123a: e1 f7 brne .-8 ; 0x1234 <__stack+0x135>
123c: 11 24 eor r1, r1
123e: ef 90 pop r14
1240: ff 90 pop r15
1242: 0f 91 pop r16
1244: 1f 91 pop r17
1246: cf 91 pop r28
1248: df 91 pop r29
124a: 99 27 eor r25, r25
124c: 87 fd sbrc r24, 7
124e: 90 95 com r25
1250: 08 95 ret
00001252 <strnlen_P>:
1252: fc 01 movw r30, r24
1254: 05 90 lpm r0, Z+
1256: 61 50 subi r22, 0x01 ; 1
1258: 70 40 sbci r23, 0x00 ; 0
125a: 01 10 cpse r0, r1
125c: d8 f7 brcc .-10 ; 0x1254 <strnlen_P+0x2>
125e: 80 95 com r24
1260: 90 95 com r25
1262: 8e 0f add r24, r30
1264: 9f 1f adc r25, r31
1266: 08 95 ret
00001268 <strnlen>:
1268: fc 01 movw r30, r24
126a: 61 50 subi r22, 0x01 ; 1
126c: 70 40 sbci r23, 0x00 ; 0
126e: 01 90 ld r0, Z+
1270: 01 10 cpse r0, r1
1272: d8 f7 brcc .-10 ; 0x126a <strnlen+0x2>
1274: 80 95 com r24
1276: 90 95 com r25
1278: 8e 0f add r24, r30
127a: 9f 1f adc r25, r31
127c: 08 95 ret
0000127e <fputc>:
127e: 0f 93 push r16
1280: 1f 93 push r17
1282: cf 93 push r28
1284: df 93 push r29
1286: fb 01 movw r30, r22
1288: 23 81 ldd r18, Z+3 ; 0x03
128a: 21 fd sbrc r18, 1
128c: 03 c0 rjmp .+6 ; 0x1294 <fputc+0x16>
128e: 8f ef ldi r24, 0xFF ; 255
1290: 9f ef ldi r25, 0xFF ; 255
1292: 2c c0 rjmp .+88 ; 0x12ec <fputc+0x6e>
1294: 22 ff sbrs r18, 2
1296: 16 c0 rjmp .+44 ; 0x12c4 <fputc+0x46>
1298: 46 81 ldd r20, Z+6 ; 0x06
129a: 57 81 ldd r21, Z+7 ; 0x07
129c: 24 81 ldd r18, Z+4 ; 0x04
129e: 35 81 ldd r19, Z+5 ; 0x05
12a0: 42 17 cp r20, r18
12a2: 53 07 cpc r21, r19
12a4: 44 f4 brge .+16 ; 0x12b6 <fputc+0x38>
12a6: a0 81 ld r26, Z
12a8: b1 81 ldd r27, Z+1 ; 0x01
12aa: 9d 01 movw r18, r26
12ac: 2f 5f subi r18, 0xFF ; 255
12ae: 3f 4f sbci r19, 0xFF ; 255
12b0: 31 83 std Z+1, r19 ; 0x01
12b2: 20 83 st Z, r18
12b4: 8c 93 st X, r24
12b6: 26 81 ldd r18, Z+6 ; 0x06
12b8: 37 81 ldd r19, Z+7 ; 0x07
12ba: 2f 5f subi r18, 0xFF ; 255
12bc: 3f 4f sbci r19, 0xFF ; 255
12be: 37 83 std Z+7, r19 ; 0x07
12c0: 26 83 std Z+6, r18 ; 0x06
12c2: 14 c0 rjmp .+40 ; 0x12ec <fputc+0x6e>
12c4: 8b 01 movw r16, r22
12c6: ec 01 movw r28, r24
12c8: fb 01 movw r30, r22
12ca: 00 84 ldd r0, Z+8 ; 0x08
12cc: f1 85 ldd r31, Z+9 ; 0x09
12ce: e0 2d mov r30, r0
12d0: 09 95 icall
12d2: 89 2b or r24, r25
12d4: e1 f6 brne .-72 ; 0x128e <fputc+0x10>
12d6: d8 01 movw r26, r16
12d8: 16 96 adiw r26, 0x06 ; 6
12da: 8d 91 ld r24, X+
12dc: 9c 91 ld r25, X
12de: 17 97 sbiw r26, 0x07 ; 7
12e0: 01 96 adiw r24, 0x01 ; 1
12e2: 17 96 adiw r26, 0x07 ; 7
12e4: 9c 93 st X, r25
12e6: 8e 93 st -X, r24
12e8: 16 97 sbiw r26, 0x06 ; 6
12ea: ce 01 movw r24, r28
12ec: df 91 pop r29
12ee: cf 91 pop r28
12f0: 1f 91 pop r17
12f2: 0f 91 pop r16
12f4: 08 95 ret
000012f6 <__ultoa_invert>:
12f6: fa 01 movw r30, r20
12f8: aa 27 eor r26, r26
12fa: 28 30 cpi r18, 0x08 ; 8
12fc: 51 f1 breq .+84 ; 0x1352 <__ultoa_invert+0x5c>
12fe: 20 31 cpi r18, 0x10 ; 16
1300: 81 f1 breq .+96 ; 0x1362 <__ultoa_invert+0x6c>
1302: e8 94 clt
1304: 6f 93 push r22
1306: 6e 7f andi r22, 0xFE ; 254
1308: 6e 5f subi r22, 0xFE ; 254
130a: 7f 4f sbci r23, 0xFF ; 255
130c: 8f 4f sbci r24, 0xFF ; 255
130e: 9f 4f sbci r25, 0xFF ; 255
1310: af 4f sbci r26, 0xFF ; 255
1312: b1 e0 ldi r27, 0x01 ; 1
1314: 3e d0 rcall .+124 ; 0x1392 <__ultoa_invert+0x9c>
1316: b4 e0 ldi r27, 0x04 ; 4
1318: 3c d0 rcall .+120 ; 0x1392 <__ultoa_invert+0x9c>
131a: 67 0f add r22, r23
131c: 78 1f adc r23, r24
131e: 89 1f adc r24, r25
1320: 9a 1f adc r25, r26
1322: a1 1d adc r26, r1
1324: 68 0f add r22, r24
1326: 79 1f adc r23, r25
1328: 8a 1f adc r24, r26
132a: 91 1d adc r25, r1
132c: a1 1d adc r26, r1
132e: 6a 0f add r22, r26
1330: 71 1d adc r23, r1
1332: 81 1d adc r24, r1
1334: 91 1d adc r25, r1
1336: a1 1d adc r26, r1
1338: 20 d0 rcall .+64 ; 0x137a <__ultoa_invert+0x84>
133a: 09 f4 brne .+2 ; 0x133e <__ultoa_invert+0x48>
133c: 68 94 set
133e: 3f 91 pop r19
1340: 2a e0 ldi r18, 0x0A ; 10
1342: 26 9f mul r18, r22
1344: 11 24 eor r1, r1
1346: 30 19 sub r19, r0
1348: 30 5d subi r19, 0xD0 ; 208
134a: 31 93 st Z+, r19
134c: de f6 brtc .-74 ; 0x1304 <__ultoa_invert+0xe>
134e: cf 01 movw r24, r30
1350: 08 95 ret
1352: 46 2f mov r20, r22
1354: 47 70 andi r20, 0x07 ; 7
1356: 40 5d subi r20, 0xD0 ; 208
1358: 41 93 st Z+, r20
135a: b3 e0 ldi r27, 0x03 ; 3
135c: 0f d0 rcall .+30 ; 0x137c <__ultoa_invert+0x86>
135e: c9 f7 brne .-14 ; 0x1352 <__ultoa_invert+0x5c>
1360: f6 cf rjmp .-20 ; 0x134e <__ultoa_invert+0x58>
1362: 46 2f mov r20, r22
1364: 4f 70 andi r20, 0x0F ; 15
1366: 40 5d subi r20, 0xD0 ; 208
1368: 4a 33 cpi r20, 0x3A ; 58
136a: 18 f0 brcs .+6 ; 0x1372 <__ultoa_invert+0x7c>
136c: 49 5d subi r20, 0xD9 ; 217
136e: 31 fd sbrc r19, 1
1370: 40 52 subi r20, 0x20 ; 32
1372: 41 93 st Z+, r20
1374: 02 d0 rcall .+4 ; 0x137a <__ultoa_invert+0x84>
1376: a9 f7 brne .-22 ; 0x1362 <__ultoa_invert+0x6c>
1378: ea cf rjmp .-44 ; 0x134e <__ultoa_invert+0x58>
137a: b4 e0 ldi r27, 0x04 ; 4
137c: a6 95 lsr r26
137e: 97 95 ror r25
1380: 87 95 ror r24
1382: 77 95 ror r23
1384: 67 95 ror r22
1386: ba 95 dec r27
1388: c9 f7 brne .-14 ; 0x137c <__ultoa_invert+0x86>
138a: 00 97 sbiw r24, 0x00 ; 0
138c: 61 05 cpc r22, r1
138e: 71 05 cpc r23, r1
1390: 08 95 ret
1392: 9b 01 movw r18, r22
1394: ac 01 movw r20, r24
1396: 0a 2e mov r0, r26
1398: 06 94 lsr r0
139a: 57 95 ror r21
139c: 47 95 ror r20
139e: 37 95 ror r19
13a0: 27 95 ror r18
13a2: ba 95 dec r27
13a4: c9 f7 brne .-14 ; 0x1398 <__ultoa_invert+0xa2>
13a6: 62 0f add r22, r18
13a8: 73 1f adc r23, r19
13aa: 84 1f adc r24, r20
13ac: 95 1f adc r25, r21
13ae: a0 1d adc r26, r0
13b0: 08 95 ret
000013b2 <_exit>:
13b2: f8 94 cli
000013b4 <__stop_program>:
13b4: ff cf rjmp .-2 ; 0x13b4 <__stop_program>