From db086fffb3049a6f6fa0f34e6e3b9cfb6df21bb3 Mon Sep 17 00:00:00 2001 From: EspoTek Date: Mon, 3 Jul 2017 13:35:45 +1000 Subject: [PATCH] But does run existant endpoints! --- .../USB_BULK_TEST/Debug/USB_BULK_TEST.elf | Bin 404020 -> 403612 bytes .../USB_BULK_TEST/Debug/USB_BULK_TEST.hex | 1317 ++- .../USB_BULK_TEST/Debug/USB_BULK_TEST.lss | 9258 ++++++++--------- .../USB_BULK_TEST/Debug/USB_BULK_TEST.map | 390 +- .../USB_BULK_TEST/Debug/USB_BULK_TEST.srec | 1317 ++- AVR Code/USB_BULK_TEST/Debug/src/main.o | Bin 304512 -> 303736 bytes AVR Code/USB_BULK_TEST/src/main.c | 2 +- Desktop_Interface/bin/Labrador.exe | Bin 736256 -> 736256 bytes 8 files changed, 6119 insertions(+), 6165 deletions(-) diff --git a/AVR Code/USB_BULK_TEST/Debug/USB_BULK_TEST.elf b/AVR Code/USB_BULK_TEST/Debug/USB_BULK_TEST.elf index 9fb7faf69df54e70cb52af779d22caa441e9428d..20c775bf734640c0d6aca21fbcf2e3da944aa247 100644 GIT binary patch delta 19944 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 16: 00 00 nop - 18: 0c 94 4a 09 jmp 0x1294 ; 0x1294 <__vector_6> - 1c: 0c 94 74 09 jmp 0x12e8 ; 0x12e8 <__vector_7> + 18: 0c 94 21 09 jmp 0x1242 ; 0x1242 <__vector_6> + 1c: 0c 94 4b 09 jmp 0x1296 ; 0x1296 <__vector_7> 20: 29 c1 rjmp .+594 ; 0x274 <__bad_interrupt> 22: 00 00 nop 24: 27 c1 rjmp .+590 ; 0x274 <__bad_interrupt> @@ -81,8 +81,8 @@ Disassembly of section .text: 5a: 00 00 nop 5c: 0b c1 rjmp .+534 ; 0x274 <__bad_interrupt> 5e: 00 00 nop - 60: 0c 94 82 0a jmp 0x1504 ; 0x1504 <__vector_24> - 64: 0c 94 8d 0a jmp 0x151a ; 0x151a <__vector_25> + 60: 0c 94 59 0a jmp 0x14b2 ; 0x14b2 <__vector_24> + 64: 0c 94 64 0a jmp 0x14c8 ; 0x14c8 <__vector_25> 68: 05 c1 rjmp .+522 ; 0x274 <__bad_interrupt> 6a: 00 00 nop 6c: 03 c1 rjmp .+518 ; 0x274 <__bad_interrupt> @@ -173,7 +173,7 @@ Disassembly of section .text: 116: 00 00 nop 118: ad c0 rjmp .+346 ; 0x274 <__bad_interrupt> 11a: 00 00 nop - 11c: d9 c4 rjmp .+2482 ; 0xad0 <__vector_71> + 11c: b0 c4 rjmp .+2400 ; 0xa7e <__vector_71> 11e: 00 00 nop 120: a9 c0 rjmp .+338 ; 0x274 <__bad_interrupt> 122: 00 00 nop @@ -197,7 +197,7 @@ Disassembly of section .text: 146: 00 00 nop 148: 95 c0 rjmp .+298 ; 0x274 <__bad_interrupt> 14a: 00 00 nop - 14c: 0c 94 e0 09 jmp 0x13c0 ; 0x13c0 <__vector_83> + 14c: 0c 94 b7 09 jmp 0x136e ; 0x136e <__vector_83> 150: 91 c0 rjmp .+290 ; 0x274 <__bad_interrupt> 152: 00 00 nop 154: 8f c0 rjmp .+286 ; 0x274 <__bad_interrupt> @@ -280,40 +280,40 @@ Disassembly of section .text: 1ee: 00 00 nop 1f0: 41 c0 rjmp .+130 ; 0x274 <__bad_interrupt> 1f2: 00 00 nop - 1f4: 0c 94 f4 15 jmp 0x2be8 ; 0x2be8 <__vector_125> - 1f8: 0c 94 a6 16 jmp 0x2d4c ; 0x2d4c <__vector_126> - 1fc: 31 04 cpc r3, r1 - 1fe: 33 04 cpc r3, r3 - 200: 35 04 cpc r3, r5 - 202: 37 04 cpc r3, r7 - 204: 39 04 cpc r3, r9 - 206: 3b 04 cpc r3, r11 - 208: 3d 04 cpc r3, r13 - 20a: 3f 04 cpc r3, r15 - 20c: 8b 0c add r8, r11 - 20e: b0 0c add r11, r0 - 210: d3 0c add r13, r3 - 212: f6 0c add r15, r6 - 214: ff 0c add r15, r15 - 216: 04 0d add r16, r4 - 218: 5a 0d add r21, r10 - 21a: 5f 0d add r21, r15 - 21c: 7e 0d add r23, r14 - 21e: 10 0d add r17, r0 - 220: 1a 0d add r17, r10 - 222: 24 0d add r18, r4 - 224: 32 0d add r19, r2 - 226: 35 0d add r19, r5 - 228: 38 0d add r19, r8 - 22a: 43 0d add r20, r3 - 22c: 4e 0d add r20, r14 - 22e: 50 11 cpse r21, r0 - 230: 53 11 cpse r21, r3 - 232: 56 11 cpse r21, r6 - 234: 59 11 cpse r21, r9 - 236: 5c 11 cpse r21, r12 - 238: 5f 11 cpse r21, r15 - 23a: 62 11 cpse r22, r2 + 1f4: 0c 94 cb 15 jmp 0x2b96 ; 0x2b96 <__vector_125> + 1f8: 0c 94 7d 16 jmp 0x2cfa ; 0x2cfa <__vector_126> + 1fc: 30 04 cpc r3, r0 + 1fe: 32 04 cpc r3, r2 + 200: 34 04 cpc r3, r4 + 202: 36 04 cpc r3, r6 + 204: 38 04 cpc r3, r8 + 206: 3a 04 cpc r3, r10 + 208: 3c 04 cpc r3, r12 + 20a: 3e 04 cpc r3, r14 + 20c: 62 0c add r6, r2 + 20e: 87 0c add r8, r7 + 210: aa 0c add r10, r10 + 212: cd 0c add r12, r13 + 214: d6 0c add r13, r6 + 216: db 0c add r13, r11 + 218: 31 0d add r19, r1 + 21a: 36 0d add r19, r6 + 21c: 55 0d add r21, r5 + 21e: e7 0c add r14, r7 + 220: f1 0c add r15, r1 + 222: fb 0c add r15, r11 + 224: 09 0d add r16, r9 + 226: 0c 0d add r16, r12 + 228: 0f 0d add r16, r15 + 22a: 1a 0d add r17, r10 + 22c: 25 0d add r18, r5 + 22e: 27 11 cpse r18, r7 + 230: 2a 11 cpse r18, r10 + 232: 2d 11 cpse r18, r13 + 234: 30 11 cpse r19, r0 + 236: 33 11 cpse r19, r3 + 238: 36 11 cpse r19, r6 + 23a: 39 11 cpse r19, r9 0000023c <__ctors_end>: 23c: 11 24 eor r1, r1 @@ -327,7 +327,7 @@ Disassembly of section .text: 248: 10 e2 ldi r17, 0x20 ; 32 24a: a0 e0 ldi r26, 0x00 ; 0 24c: b0 e2 ldi r27, 0x20 ; 32 - 24e: e0 e9 ldi r30, 0x90 ; 144 + 24e: ee e3 ldi r30, 0x3E ; 62 250: ff e2 ldi r31, 0x2F ; 47 252: 02 c0 rjmp .+4 ; 0x258 <__do_copy_data+0x10> 254: 05 90 lpm r0, Z+ @@ -350,7 +350,7 @@ Disassembly of section .text: 26a: b2 07 cpc r27, r18 26c: e1 f7 brne .-8 ; 0x266 <.do_clear_bss_loop> 26e: ac d2 rcall .+1368 ; 0x7c8
- 270: 0c 94 c6 17 jmp 0x2f8c ; 0x2f8c <_exit> + 270: 0c 94 9d 17 jmp 0x2f3a ; 0x2f3a <_exit> 00000274 <__bad_interrupt>: 274: c5 ce rjmp .-630 ; 0x0 <__vectors> @@ -369,7 +369,7 @@ int tiny_distance_from_centre(unsigned int point){ 27e: 84 e0 ldi r24, 0x04 ; 4 280: 8e 83 std Y+6, r24 ; 0x06 282: 8c e1 ldi r24, 0x1C ; 28 - 284: df d3 rcall .+1982 ; 0xa44 + 284: b6 d3 rcall .+1900 ; 0x9f2 286: e0 e6 ldi r30, 0x60 ; 96 288: f0 e0 ldi r31, 0x00 ; 0 28a: 83 83 std Z+3, r24 ; 0x03 @@ -674,7 +674,7 @@ void tiny_calibration_find_values(){ 55c: 30 91 6e 21 lds r19, 0x216E ; 0x80216e 560: 60 e3 ldi r22, 0x30 ; 48 562: 70 e0 ldi r23, 0x00 ; 0 - 564: 0e 94 a4 17 call 0x2f48 ; 0x2f48 <__divmodhi4> + 564: 0e 94 7b 17 call 0x2ef6 ; 0x2ef6 <__divmodhi4> 568: 26 1b sub r18, r22 56a: 37 0b sbc r19, r23 56c: 20 93 6d 21 sts 0x216D, r18 ; 0x80216d @@ -831,7 +831,7 @@ void tiny_calibration_layer2(){ 662: 02 c0 rjmp .+4 ; 0x668 664: 6e ee ldi r22, 0xEE ; 238 666: 72 e0 ldi r23, 0x02 ; 2 - 668: 0e 94 90 17 call 0x2f20 ; 0x2f20 <__udivmodhi4> + 668: 0e 94 67 17 call 0x2ece ; 0x2ece <__udivmodhi4> 66c: 08 2f mov r16, r24 66e: 19 2f mov r17, r25 670: c8 2f mov r28, r24 @@ -955,7 +955,7 @@ void eeprom_safe_read(){ 720: 7b e2 ldi r23, 0x2B ; 43 722: 80 e2 ldi r24, 0x20 ; 32 724: 90 e0 ldi r25, 0x00 ; 0 - 726: 0e 94 f2 0f call 0x1fe4 ; 0x1fe4 + 726: 0e 94 c9 0f call 0x1f92 ; 0x1f92 CLK.PSCTRL = previous_clk_settings; 72a: 19 83 std Y+1, r17 ; 0x01 return; @@ -981,10 +981,10 @@ void eeprom_safe_write(){ nvm_eeprom_load_page_to_buffer(eeprom_buffer_write); 744: 8b ea ldi r24, 0xAB ; 171 746: 95 e2 ldi r25, 0x25 ; 37 - 748: 0e 94 1c 10 call 0x2038 ; 0x2038 + 748: 0e 94 f3 0f call 0x1fe6 ; 0x1fe6 nvm_eeprom_atomic_write_page(EEPROM_CURRENT_PAGE); 74c: 81 e0 ldi r24, 0x01 ; 1 - 74e: 0e 94 3b 10 call 0x2076 ; 0x2076 + 74e: 0e 94 12 10 call 0x2024 ; 0x2024 CLK.PSCTRL = previous_clk_settings; 752: 19 83 std Y+1, r17 ; 0x01 return; @@ -1038,7 +1038,7 @@ void iso_callback(udd_ep_status_t status, iram_size_t nb_transfered, udd_ep_id_t 786: 32 e0 ldi r19, 0x02 ; 2 788: 60 e0 ldi r22, 0x00 ; 0 78a: 81 e8 ldi r24, 0x81 ; 129 - 78c: 0e 94 a8 14 call 0x2950 ; 0x2950 + 78c: 0e 94 7f 14 call 0x28fe ; 0x28fe 790: 13 c0 rjmp .+38 ; 0x7b8 } else{ @@ -1059,7 +1059,7 @@ void iso_callback(udd_ep_status_t status, iram_size_t nb_transfered, udd_ep_id_t 7ae: 32 e0 ldi r19, 0x02 ; 2 7b0: 60 e0 ldi r22, 0x00 ; 0 7b2: 81 e8 ldi r24, 0x81 ; 129 - 7b4: 0e 94 a8 14 call 0x2950 ; 0x2950 + 7b4: 0e 94 7f 14 call 0x28fe ; 0x28fe } #endif @@ -1123,43 +1123,43 @@ int main(void){ board_init(); 7f6: b2 df rcall .-156 ; 0x75c udc_start(); - 7f8: 0e 94 09 0c call 0x1812 ; 0x1812 + 7f8: e3 d7 rcall .+4038 ; 0x17c0 tiny_dac_setup(); - 7fc: 7c d1 rcall .+760 ; 0xaf6 + 7fa: 54 d1 rcall .+680 ; 0xaa4 tiny_dma_setup(); - 7fe: 9f d1 rcall .+830 ; 0xb3e + 7fc: 77 d1 rcall .+750 ; 0xaec tiny_adc_setup(0, 0); - 800: 60 e0 ldi r22, 0x00 ; 0 - 802: 80 e0 ldi r24, 0x00 ; 0 - 804: 28 d1 rcall .+592 ; 0xa56 + 7fe: 60 e0 ldi r22, 0x00 ; 0 + 800: 80 e0 ldi r24, 0x00 ; 0 + 802: 00 d1 rcall .+512 ; 0xa04 tiny_adc_pid_setup(); - 806: 14 d1 rcall .+552 ; 0xa30 + 804: ec d0 rcall .+472 ; 0x9de tiny_adc_ch1setup(12); - 808: 8c e0 ldi r24, 0x0C ; 12 - 80a: 08 d1 rcall .+528 ; 0xa1c + 806: 8c e0 ldi r24, 0x0C ; 12 + 808: e0 d0 rcall .+448 ; 0x9ca tiny_timer_setup(); - 80c: 97 d5 rcall .+2862 ; 0x133c + 80a: 6f d5 rcall .+2782 ; 0x12ea tiny_uart_setup(); - 80e: 52 d6 rcall .+3236 ; 0x14b4 + 80c: 2a d6 rcall .+3156 ; 0x1462 tiny_spi_setup(); - 810: 6b d6 rcall .+3286 ; 0x14e8 + 80e: 43 d6 rcall .+3206 ; 0x1496 tiny_dig_setup(); - 812: 74 df rcall .-280 ; 0x6fc + 810: 75 df rcall .-278 ; 0x6fc //USARTC0.DATA = 0x55; //asm("nop"); strcpy(uds.header, "debug123"); - 814: 89 e0 ldi r24, 0x09 ; 9 - 816: e0 e8 ldi r30, 0x80 ; 128 - 818: f0 e2 ldi r31, 0x20 ; 32 - 81a: ae e7 ldi r26, 0x7E ; 126 - 81c: b1 e2 ldi r27, 0x21 ; 33 - 81e: 01 90 ld r0, Z+ - 820: 0d 92 st X+, r0 - 822: 8a 95 dec r24 - 824: e1 f7 brne .-8 ; 0x81e + 812: 89 e0 ldi r24, 0x09 ; 9 + 814: e0 e8 ldi r30, 0x80 ; 128 + 816: f0 e2 ldi r31, 0x20 ; 32 + 818: ae e7 ldi r26, 0x7E ; 126 + 81a: b1 e2 ldi r27, 0x21 ; 33 + 81c: 01 90 ld r0, Z+ + 81e: 0d 92 st X+, r0 + 820: 8a 95 dec r24 + 822: e1 f7 brne .-8 ; 0x81c ... asm("nop"); asm("nop"); @@ -1167,6269 +1167,6233 @@ int main(void){ asm("nop"); asm("nop"); if(modeChanged){ - 842: 80 91 91 20 lds r24, 0x2091 ; 0x802091 - 846: 88 23 and r24, r24 - 848: 71 f3 breq .-36 ; 0x826 + 840: 80 91 91 20 lds r24, 0x2091 ; 0x802091 + 844: 88 23 and r24, r24 + 846: 71 f3 breq .-36 ; 0x824 switch(futureMode){ - 84a: e0 91 aa 23 lds r30, 0x23AA ; 0x8023aa - 84e: 8e 2f mov r24, r30 - 850: 90 e0 ldi r25, 0x00 ; 0 - 852: 88 30 cpi r24, 0x08 ; 8 - 854: 91 05 cpc r25, r1 - 856: a0 f4 brcc .+40 ; 0x880 - 858: fc 01 movw r30, r24 - 85a: e2 50 subi r30, 0x02 ; 2 - 85c: ff 4f sbci r31, 0xFF ; 255 - 85e: 0c 94 b7 17 jmp 0x2f6e ; 0x2f6e <__tablejump2__> + 848: e0 91 aa 23 lds r30, 0x23AA ; 0x8023aa + 84c: 8e 2f mov r24, r30 + 84e: 90 e0 ldi r25, 0x00 ; 0 + 850: 88 30 cpi r24, 0x08 ; 8 + 852: 91 05 cpc r25, r1 + 854: a0 f4 brcc .+40 ; 0x87e + 856: fc 01 movw r30, r24 + 858: e2 50 subi r30, 0x02 ; 2 + 85a: ff 4f sbci r31, 0xFF ; 255 + 85c: 0c 94 8e 17 jmp 0x2f1c ; 0x2f1c <__tablejump2__> case 0: tiny_dma_set_mode_0(); - 862: 99 d1 rcall .+818 ; 0xb96 + 860: 71 d1 rcall .+738 ; 0xb44 break; - 864: 0d c0 rjmp .+26 ; 0x880 + 862: 0d c0 rjmp .+26 ; 0x87e case 1: tiny_dma_set_mode_1(); - 866: 09 d2 rcall .+1042 ; 0xc7a + 864: e1 d1 rcall .+962 ; 0xc28 break; - 868: 0b c0 rjmp .+22 ; 0x880 + 866: 0b c0 rjmp .+22 ; 0x87e case 2: tiny_dma_set_mode_2(); - 86a: 90 d2 rcall .+1312 ; 0xd8c + 868: 68 d2 rcall .+1232 ; 0xd3a break; - 86c: 09 c0 rjmp .+18 ; 0x880 + 86a: 09 c0 rjmp .+18 ; 0x87e case 3: tiny_dma_set_mode_3(); - 86e: 14 d3 rcall .+1576 ; 0xe98 + 86c: ec d2 rcall .+1496 ; 0xe46 break; - 870: 07 c0 rjmp .+14 ; 0x880 + 86e: 07 c0 rjmp .+14 ; 0x87e case 4: tiny_dma_set_mode_4(); - 872: a0 d3 rcall .+1856 ; 0xfb4 + 870: 78 d3 rcall .+1776 ; 0xf62 break; - 874: 05 c0 rjmp .+10 ; 0x880 + 872: 05 c0 rjmp .+10 ; 0x87e case 5: tiny_dma_set_mode_5(); - 876: 26 d4 rcall .+2124 ; 0x10c4 + 874: fe d3 rcall .+2044 ; 0x1072 break; - 878: 03 c0 rjmp .+6 ; 0x880 + 876: 03 c0 rjmp .+6 ; 0x87e case 6: tiny_dma_set_mode_6(); - 87a: 25 d4 rcall .+2122 ; 0x10c6 + 878: fd d3 rcall .+2042 ; 0x1074 break; - 87c: 01 c0 rjmp .+2 ; 0x880 + 87a: 01 c0 rjmp .+2 ; 0x87e case 7: tiny_dma_set_mode_7(); - 87e: 96 d4 rcall .+2348 ; 0x11ac + 87c: 6e d4 rcall .+2268 ; 0x115a break; } modeChanged = 0; - 880: 10 92 91 20 sts 0x2091, r1 ; 0x802091 - 884: d0 cf rjmp .-96 ; 0x826 + 87e: 10 92 91 20 sts 0x2091, r1 ; 0x802091 + 882: d0 cf rjmp .-96 ; 0x824 -00000886 : +00000884 : //! Global variable to give and record information about setup request management udd_ctrl_request_t udd_g_ctrlreq; //CALLBACKS: void main_suspend_action(void) { - 886: 08 95 ret + 884: 08 95 ret -00000888 : +00000886 : return; } void main_resume_action(void) { - 888: 08 95 ret + 886: 08 95 ret -0000088a : +00000888 : return; } void main_sof_action(void) { - 88a: cf 93 push r28 - 88c: df 93 push r29 + 888: cf 93 push r28 + 88a: df 93 push r29 uds.trfcntL0 = DMA.CH0.TRFCNTL; - 88e: a0 e0 ldi r26, 0x00 ; 0 - 890: b1 e0 ldi r27, 0x01 ; 1 - 892: 54 96 adiw r26, 0x14 ; 20 - 894: 8c 91 ld r24, X - 896: 54 97 sbiw r26, 0x14 ; 20 - 898: ee e7 ldi r30, 0x7E ; 126 - 89a: f1 e2 ldi r31, 0x21 ; 33 - 89c: 81 87 std Z+9, r24 ; 0x09 + 88c: a0 e0 ldi r26, 0x00 ; 0 + 88e: b1 e0 ldi r27, 0x01 ; 1 + 890: 54 96 adiw r26, 0x14 ; 20 + 892: 8c 91 ld r24, X + 894: 54 97 sbiw r26, 0x14 ; 20 + 896: ee e7 ldi r30, 0x7E ; 126 + 898: f1 e2 ldi r31, 0x21 ; 33 + 89a: 81 87 std Z+9, r24 ; 0x09 uds.trfcntH0 = DMA.CH0.TRFCNTH; - 89e: 55 96 adiw r26, 0x15 ; 21 - 8a0: 8c 91 ld r24, X - 8a2: 55 97 sbiw r26, 0x15 ; 21 - 8a4: 82 87 std Z+10, r24 ; 0x0a + 89c: 55 96 adiw r26, 0x15 ; 21 + 89e: 8c 91 ld r24, X + 8a0: 55 97 sbiw r26, 0x15 ; 21 + 8a2: 82 87 std Z+10, r24 ; 0x0a uds.trfcntL1 = DMA.CH1.TRFCNTL; - 8a6: 94 96 adiw r26, 0x24 ; 36 - 8a8: 8c 91 ld r24, X - 8aa: 94 97 sbiw r26, 0x24 ; 36 - 8ac: 83 87 std Z+11, r24 ; 0x0b + 8a4: 94 96 adiw r26, 0x24 ; 36 + 8a6: 8c 91 ld r24, X + 8a8: 94 97 sbiw r26, 0x24 ; 36 + 8aa: 83 87 std Z+11, r24 ; 0x0b uds.trfcntH1 = DMA.CH1.TRFCNTH; - 8ae: 95 96 adiw r26, 0x25 ; 37 - 8b0: 8c 91 ld r24, X - 8b2: 95 97 sbiw r26, 0x25 ; 37 - 8b4: 84 87 std Z+12, r24 ; 0x0c + 8ac: 95 96 adiw r26, 0x25 ; 37 + 8ae: 8c 91 ld r24, X + 8b0: 95 97 sbiw r26, 0x25 ; 37 + 8b2: 84 87 std Z+12, r24 ; 0x0c uds.counterL = TC_CALI.CNTL; - 8b6: c0 e0 ldi r28, 0x00 ; 0 - 8b8: da e0 ldi r29, 0x0A ; 10 - 8ba: 88 a1 ldd r24, Y+32 ; 0x20 - 8bc: 85 8b std Z+21, r24 ; 0x15 + 8b4: c0 e0 ldi r28, 0x00 ; 0 + 8b6: da e0 ldi r29, 0x0A ; 10 + 8b8: 88 a1 ldd r24, Y+32 ; 0x20 + 8ba: 85 8b std Z+21, r24 ; 0x15 uds.counterH = TC_CALI.CNTH; - 8be: 89 a1 ldd r24, Y+33 ; 0x21 - 8c0: 86 8b std Z+22, r24 ; 0x16 + 8bc: 89 a1 ldd r24, Y+33 ; 0x21 + 8be: 86 8b std Z+22, r24 ; 0x16 if((DMA.CH0.TRFCNT > 325) && (DMA.CH0.TRFCNT < 425)){ - 8c2: 54 96 adiw r26, 0x14 ; 20 - 8c4: 8d 91 ld r24, X+ - 8c6: 9c 91 ld r25, X - 8c8: 55 97 sbiw r26, 0x15 ; 21 - 8ca: 86 34 cpi r24, 0x46 ; 70 - 8cc: 91 40 sbci r25, 0x01 ; 1 - 8ce: 80 f0 brcs .+32 ; 0x8f0 - 8d0: 80 91 14 01 lds r24, 0x0114 ; 0x800114 <__TEXT_REGION_LENGTH__+0x700114> - 8d4: 90 91 15 01 lds r25, 0x0115 ; 0x800115 <__TEXT_REGION_LENGTH__+0x700115> - 8d8: 89 3a cpi r24, 0xA9 ; 169 - 8da: 91 40 sbci r25, 0x01 ; 1 - 8dc: 48 f4 brcc .+18 ; 0x8f0 + 8c0: 54 96 adiw r26, 0x14 ; 20 + 8c2: 8d 91 ld r24, X+ + 8c4: 9c 91 ld r25, X + 8c6: 55 97 sbiw r26, 0x15 ; 21 + 8c8: 86 34 cpi r24, 0x46 ; 70 + 8ca: 91 40 sbci r25, 0x01 ; 1 + 8cc: 80 f0 brcs .+32 ; 0x8ee + 8ce: 80 91 14 01 lds r24, 0x0114 ; 0x800114 <__TEXT_REGION_LENGTH__+0x700114> + 8d2: 90 91 15 01 lds r25, 0x0115 ; 0x800115 <__TEXT_REGION_LENGTH__+0x700115> + 8d6: 89 3a cpi r24, 0xA9 ; 169 + 8d8: 91 40 sbci r25, 0x01 ; 1 + 8da: 48 f4 brcc .+18 ; 0x8ee currentTrfcnt = DMA.CH0.TRFCNT; - 8de: 80 91 14 01 lds r24, 0x0114 ; 0x800114 <__TEXT_REGION_LENGTH__+0x700114> - 8e2: 90 91 15 01 lds r25, 0x0115 ; 0x800115 <__TEXT_REGION_LENGTH__+0x700115> - 8e6: 80 93 c8 2b sts 0x2BC8, r24 ; 0x802bc8 - 8ea: 90 93 c9 2b sts 0x2BC9, r25 ; 0x802bc9 + 8dc: 80 91 14 01 lds r24, 0x0114 ; 0x800114 <__TEXT_REGION_LENGTH__+0x700114> + 8e0: 90 91 15 01 lds r25, 0x0115 ; 0x800115 <__TEXT_REGION_LENGTH__+0x700115> + 8e4: 80 93 c8 2b sts 0x2BC8, r24 ; 0x802bc8 + 8e8: 90 93 c9 2b sts 0x2BC9, r25 ; 0x802bc9 asm("nop"); - 8ee: 00 00 nop + 8ec: 00 00 nop } if(firstFrame){ - 8f0: 80 91 94 20 lds r24, 0x2094 ; 0x802094 - 8f4: 88 23 and r24, r24 - 8f6: 39 f0 breq .+14 ; 0x906 + 8ee: 80 91 94 20 lds r24, 0x2094 ; 0x802094 + 8f2: 88 23 and r24, r24 + 8f4: 39 f0 breq .+14 ; 0x904 tiny_calibration_first_sof(); - 8f8: f4 dc rcall .-1560 ; 0x2e2 + 8f6: f5 dc rcall .-1558 ; 0x2e2 firstFrame = 0; - 8fa: 10 92 94 20 sts 0x2094, r1 ; 0x802094 + 8f8: 10 92 94 20 sts 0x2094, r1 ; 0x802094 tcinit = 1; - 8fe: 81 e0 ldi r24, 0x01 ; 1 - 900: 80 93 93 20 sts 0x2093, r24 ; 0x802093 + 8fc: 81 e0 ldi r24, 0x01 ; 1 + 8fe: 80 93 93 20 sts 0x2093, r24 ; 0x802093 return; - 904: 35 c0 rjmp .+106 ; 0x970 + 902: 35 c0 rjmp .+106 ; 0x96e } else{ if(tcinit){ - 906: 80 91 93 20 lds r24, 0x2093 ; 0x802093 - 90a: 88 23 and r24, r24 - 90c: 41 f0 breq .+16 ; 0x91e + 904: 80 91 93 20 lds r24, 0x2093 ; 0x802093 + 908: 88 23 and r24, r24 + 90a: 41 f0 breq .+16 ; 0x91c if(calibration_values_found == 0x03){ - 90e: 80 91 8c 20 lds r24, 0x208C ; 0x80208c <__data_end> - 912: 83 30 cpi r24, 0x03 ; 3 - 914: 19 f4 brne .+6 ; 0x91c + 90c: 80 91 8c 20 lds r24, 0x208C ; 0x80208c <__data_end> + 910: 83 30 cpi r24, 0x03 ; 3 + 912: 19 f4 brne .+6 ; 0x91a tiny_calibration_maintain(); - 916: f7 dc rcall .-1554 ; 0x306 + 914: f8 dc rcall .-1552 ; 0x306 tiny_calibration_layer2(); - 918: 79 de rcall .-782 ; 0x60c - 91a: 01 c0 rjmp .+2 ; 0x91e + 916: 7a de rcall .-780 ; 0x60c + 918: 01 c0 rjmp .+2 ; 0x91c } else tiny_calibration_find_values(); - 91c: ce dd rcall .-1124 ; 0x4ba + 91a: cf dd rcall .-1122 ; 0x4ba } else debug_divider++;*/ } } if(debugOnNextEnd){ - 91e: 80 91 92 20 lds r24, 0x2092 ; 0x802092 - 922: 88 23 and r24, r24 - 924: 51 f0 breq .+20 ; 0x93a + 91c: 80 91 92 20 lds r24, 0x2092 ; 0x802092 + 920: 88 23 and r24, r24 + 922: 51 f0 breq .+20 ; 0x938 currentTrfcnt = DMA.CH0.TRFCNT; - 926: 80 91 14 01 lds r24, 0x0114 ; 0x800114 <__TEXT_REGION_LENGTH__+0x700114> - 92a: 90 91 15 01 lds r25, 0x0115 ; 0x800115 <__TEXT_REGION_LENGTH__+0x700115> - 92e: 80 93 c8 2b sts 0x2BC8, r24 ; 0x802bc8 - 932: 90 93 c9 2b sts 0x2BC9, r25 ; 0x802bc9 + 924: 80 91 14 01 lds r24, 0x0114 ; 0x800114 <__TEXT_REGION_LENGTH__+0x700114> + 928: 90 91 15 01 lds r25, 0x0115 ; 0x800115 <__TEXT_REGION_LENGTH__+0x700115> + 92c: 80 93 c8 2b sts 0x2BC8, r24 ; 0x802bc8 + 930: 90 93 c9 2b sts 0x2BC9, r25 ; 0x802bc9 debugOnNextEnd = 0; - 936: 10 92 92 20 sts 0x2092, r1 ; 0x802092 + 934: 10 92 92 20 sts 0x2092, r1 ; 0x802092 } if(global_mode < 5){ - 93a: 80 91 09 20 lds r24, 0x2009 ; 0x802009 - 93e: 85 30 cpi r24, 0x05 ; 5 - 940: 60 f4 brcc .+24 ; 0x95a + 938: 80 91 09 20 lds r24, 0x2009 ; 0x802009 + 93c: 85 30 cpi r24, 0x05 ; 5 + 93e: 60 f4 brcc .+24 ; 0x958 usb_state = (DMA.CH0.TRFCNT < 375) ? 1 : 0; - 942: 20 91 14 01 lds r18, 0x0114 ; 0x800114 <__TEXT_REGION_LENGTH__+0x700114> - 946: 30 91 15 01 lds r19, 0x0115 ; 0x800115 <__TEXT_REGION_LENGTH__+0x700115> - 94a: 81 e0 ldi r24, 0x01 ; 1 - 94c: 27 37 cpi r18, 0x77 ; 119 - 94e: 31 40 sbci r19, 0x01 ; 1 - 950: 08 f0 brcs .+2 ; 0x954 - 952: 80 e0 ldi r24, 0x00 ; 0 - 954: 80 93 96 20 sts 0x2096, r24 ; 0x802096 - 958: 0b c0 rjmp .+22 ; 0x970 + 940: 20 91 14 01 lds r18, 0x0114 ; 0x800114 <__TEXT_REGION_LENGTH__+0x700114> + 944: 30 91 15 01 lds r19, 0x0115 ; 0x800115 <__TEXT_REGION_LENGTH__+0x700115> + 948: 81 e0 ldi r24, 0x01 ; 1 + 94a: 27 37 cpi r18, 0x77 ; 119 + 94c: 31 40 sbci r19, 0x01 ; 1 + 94e: 08 f0 brcs .+2 ; 0x952 + 950: 80 e0 ldi r24, 0x00 ; 0 + 952: 80 93 96 20 sts 0x2096, r24 ; 0x802096 + 956: 0b c0 rjmp .+22 ; 0x96e } else{ usb_state = (DMA.CH0.TRFCNT < 750) ? 1 : 0; - 95a: 20 91 14 01 lds r18, 0x0114 ; 0x800114 <__TEXT_REGION_LENGTH__+0x700114> - 95e: 30 91 15 01 lds r19, 0x0115 ; 0x800115 <__TEXT_REGION_LENGTH__+0x700115> - 962: 81 e0 ldi r24, 0x01 ; 1 - 964: 2e 3e cpi r18, 0xEE ; 238 - 966: 32 40 sbci r19, 0x02 ; 2 - 968: 08 f0 brcs .+2 ; 0x96c - 96a: 80 e0 ldi r24, 0x00 ; 0 - 96c: 80 93 96 20 sts 0x2096, r24 ; 0x802096 + 958: 20 91 14 01 lds r18, 0x0114 ; 0x800114 <__TEXT_REGION_LENGTH__+0x700114> + 95c: 30 91 15 01 lds r19, 0x0115 ; 0x800115 <__TEXT_REGION_LENGTH__+0x700115> + 960: 81 e0 ldi r24, 0x01 ; 1 + 962: 2e 3e cpi r18, 0xEE ; 238 + 964: 32 40 sbci r19, 0x02 ; 2 + 966: 08 f0 brcs .+2 ; 0x96a + 968: 80 e0 ldi r24, 0x00 ; 0 + 96a: 80 93 96 20 sts 0x2096, r24 ; 0x802096 } return; } - 970: df 91 pop r29 - 972: cf 91 pop r28 - 974: 08 95 ret + 96e: df 91 pop r29 + 970: cf 91 pop r28 + 972: 08 95 ret -00000976 : +00000974 : bool main_vendor_enable(void) { - 976: 0f 93 push r16 - 978: 1f 93 push r17 + 974: 0f 93 push r16 + 976: 1f 93 push r17 main_b_vendor_enable = true; - 97a: 81 e0 ldi r24, 0x01 ; 1 - 97c: 80 93 99 20 sts 0x2099, r24 ; 0x802099 + 978: 81 e0 ldi r24, 0x01 ; 1 + 97a: 80 93 99 20 sts 0x2099, r24 ; 0x802099 firstFrame = 1; - 980: 80 93 94 20 sts 0x2094, r24 ; 0x802094 + 97e: 80 93 94 20 sts 0x2094, r24 ; 0x802094 udd_ep_run(0x81, false, (uint8_t *)&isoBuf[0], 125, iso_callback); - 984: 0f ea ldi r16, 0xAF ; 175 - 986: 13 e0 ldi r17, 0x03 ; 3 - 988: 2d e7 ldi r18, 0x7D ; 125 - 98a: 30 e0 ldi r19, 0x00 ; 0 - 98c: 4c ec ldi r20, 0xCC ; 204 - 98e: 55 e2 ldi r21, 0x25 ; 37 - 990: 60 e0 ldi r22, 0x00 ; 0 - 992: 81 e8 ldi r24, 0x81 ; 129 - 994: 0e 94 a8 14 call 0x2950 ; 0x2950 - udd_ep_run(0x82, false, (uint8_t *)&isoBuf[125], 125, iso_callback); - 998: 2d e7 ldi r18, 0x7D ; 125 - 99a: 30 e0 ldi r19, 0x00 ; 0 - 99c: 49 e4 ldi r20, 0x49 ; 73 - 99e: 56 e2 ldi r21, 0x26 ; 38 - 9a0: 60 e0 ldi r22, 0x00 ; 0 - 9a2: 82 e8 ldi r24, 0x82 ; 130 - 9a4: 0e 94 a8 14 call 0x2950 ; 0x2950 - udd_ep_run(0x83, false, (uint8_t *)&isoBuf[250], 125, iso_callback); - 9a8: 2d e7 ldi r18, 0x7D ; 125 - 9aa: 30 e0 ldi r19, 0x00 ; 0 - 9ac: 46 ec ldi r20, 0xC6 ; 198 - 9ae: 56 e2 ldi r21, 0x26 ; 38 - 9b0: 60 e0 ldi r22, 0x00 ; 0 - 9b2: 83 e8 ldi r24, 0x83 ; 131 - 9b4: 0e 94 a8 14 call 0x2950 ; 0x2950 + 982: 0f ea ldi r16, 0xAF ; 175 + 984: 13 e0 ldi r17, 0x03 ; 3 + 986: 2d e7 ldi r18, 0x7D ; 125 + 988: 30 e0 ldi r19, 0x00 ; 0 + 98a: 4c ec ldi r20, 0xCC ; 204 + 98c: 55 e2 ldi r21, 0x25 ; 37 + 98e: 60 e0 ldi r22, 0x00 ; 0 + 990: 81 e8 ldi r24, 0x81 ; 129 + 992: 0e 94 7f 14 call 0x28fe ; 0x28fe udd_ep_run(0x84, false, (uint8_t *)&isoBuf[375], 125, iso_callback); - 9b8: 2d e7 ldi r18, 0x7D ; 125 - 9ba: 30 e0 ldi r19, 0x00 ; 0 - 9bc: 43 e4 ldi r20, 0x43 ; 67 - 9be: 57 e2 ldi r21, 0x27 ; 39 - 9c0: 60 e0 ldi r22, 0x00 ; 0 - 9c2: 84 e8 ldi r24, 0x84 ; 132 - 9c4: 0e 94 a8 14 call 0x2950 ; 0x2950 udd_ep_run(0x85, false, (uint8_t *)&isoBuf[500], 125, iso_callback); - 9c8: 2d e7 ldi r18, 0x7D ; 125 - 9ca: 30 e0 ldi r19, 0x00 ; 0 - 9cc: 40 ec ldi r20, 0xC0 ; 192 - 9ce: 57 e2 ldi r21, 0x27 ; 39 - 9d0: 60 e0 ldi r22, 0x00 ; 0 - 9d2: 85 e8 ldi r24, 0x85 ; 133 - 9d4: 0e 94 a8 14 call 0x2950 ; 0x2950 udd_ep_run(0x86, false, (uint8_t *)&isoBuf[625], 125, iso_callback); - 9d8: 2d e7 ldi r18, 0x7D ; 125 - 9da: 30 e0 ldi r19, 0x00 ; 0 - 9dc: 4d e3 ldi r20, 0x3D ; 61 - 9de: 58 e2 ldi r21, 0x28 ; 40 - 9e0: 60 e0 ldi r22, 0x00 ; 0 - 9e2: 86 e8 ldi r24, 0x86 ; 134 - 9e4: 0e 94 a8 14 call 0x2950 ; 0x2950 + #endif return true; } - 9e8: 81 e0 ldi r24, 0x01 ; 1 - 9ea: 1f 91 pop r17 - 9ec: 0f 91 pop r16 - 9ee: 08 95 ret + 996: 81 e0 ldi r24, 0x01 ; 1 + 998: 1f 91 pop r17 + 99a: 0f 91 pop r16 + 99c: 08 95 ret -000009f0 : +0000099e : void main_vendor_disable(void) { main_b_vendor_enable = false; - 9f0: 10 92 99 20 sts 0x2099, r1 ; 0x802099 - 9f4: 08 95 ret + 99e: 10 92 99 20 sts 0x2099, r1 ; 0x802099 + 9a2: 08 95 ret -000009f6 : +000009a4 : } bool main_setup_out_received(void) { return 1; } - 9f6: 81 e0 ldi r24, 0x01 ; 1 - 9f8: 08 95 ret + 9a4: 81 e0 ldi r24, 0x01 ; 1 + 9a6: 08 95 ret -000009fa : +000009a8 : bool main_setup_in_received(void) { return true; } - 9fa: 81 e0 ldi r24, 0x01 ; 1 - 9fc: 08 95 ret + 9a8: 81 e0 ldi r24, 0x01 ; 1 + 9aa: 08 95 ret -000009fe : +000009ac : return; } void tiny_adc_ch0setup(unsigned char gain_mask){ ADCA.CH0.CTRL = 0x00; //Reset - 9fe: e0 e0 ldi r30, 0x00 ; 0 - a00: f2 e0 ldi r31, 0x02 ; 2 - a02: 10 a2 std Z+32, r1 ; 0x20 + 9ac: e0 e0 ldi r30, 0x00 ; 0 + 9ae: f2 e0 ldi r31, 0x02 ; 2 + 9b0: 10 a2 std Z+32, r1 ; 0x20 ADCA.CH0.CTRL = ADC_CH_START_bm | (gain_mask&0x1c) | ADC_CH_INPUTMODE_DIFFWGAIN_gc; - a04: 98 2f mov r25, r24 - a06: 9c 71 andi r25, 0x1C ; 28 - a08: 93 68 ori r25, 0x83 ; 131 - a0a: 90 a3 std Z+32, r25 ; 0x20 + 9b2: 98 2f mov r25, r24 + 9b4: 9c 71 andi r25, 0x1C ; 28 + 9b6: 93 68 ori r25, 0x83 ; 131 + 9b8: 90 a3 std Z+32, r25 ; 0x20 #ifdef VERO ADCA.CH0.MUXCTRL = ADC_CH_MUXPOS_PIN0_gc | ((gain_mask&0x80) ? ADC_CH_MUXNEG_PIN6_gc : ADC_CH_MUXNEG_PIN4_gc); - a0c: 88 1f adc r24, r24 - a0e: 88 27 eor r24, r24 - a10: 88 1f adc r24, r24 - a12: 88 0f add r24, r24 - a14: 81 a3 std Z+33, r24 ; 0x21 + 9ba: 88 1f adc r24, r24 + 9bc: 88 27 eor r24, r24 + 9be: 88 1f adc r24, r24 + 9c0: 88 0f add r24, r24 + 9c2: 81 a3 std Z+33, r24 ; 0x21 #else ADCA.CH0.MUXCTRL = ((gain_mask&0x80) ? ADC_CH_MUXPOS_PIN2_gc : ADC_CH_MUXPOS_PIN0_gc) | ((gain_mask&0x80) ? ADC_CH_MUXNEG_PIN6_gc : ADC_CH_MUXNEG_PIN4_gc); #endif ADCA.CH0.INTCTRL = ADC_CH_INTLVL_OFF_gc; - a16: 12 a2 std Z+34, r1 ; 0x22 + 9c4: 12 a2 std Z+34, r1 ; 0x22 ADCA.CH0.SCAN = 0x00; //Disable scanning - a18: 16 a2 std Z+38, r1 ; 0x26 - a1a: 08 95 ret + 9c6: 16 a2 std Z+38, r1 ; 0x26 + 9c8: 08 95 ret -00000a1c : +000009ca : } void tiny_adc_ch1setup(unsigned char gain_mask){ ADCA.CH2.CTRL = 0x00; //Reset - a1c: e0 e0 ldi r30, 0x00 ; 0 - a1e: f2 e0 ldi r31, 0x02 ; 2 - a20: 10 aa std Z+48, r1 ; 0x30 + 9ca: e0 e0 ldi r30, 0x00 ; 0 + 9cc: f2 e0 ldi r31, 0x02 ; 2 + 9ce: 10 aa std Z+48, r1 ; 0x30 ADCA.CH2.CTRL = ADC_CH_START_bm | gain_mask | ADC_CH_INPUTMODE_DIFFWGAIN_gc; - a22: 83 68 ori r24, 0x83 ; 131 - a24: 80 ab std Z+48, r24 ; 0x30 + 9d0: 83 68 ori r24, 0x83 ; 131 + 9d2: 80 ab std Z+48, r24 ; 0x30 ADCA.CH2.MUXCTRL = ADC_CH_MUXPOS_PIN2_gc | ADC_CH_MUXNEG_PIN4_gc; - a26: 80 e1 ldi r24, 0x10 ; 16 - a28: 81 ab std Z+49, r24 ; 0x31 + 9d4: 80 e1 ldi r24, 0x10 ; 16 + 9d6: 81 ab std Z+49, r24 ; 0x31 ADCA.CH2.INTCTRL = ADC_CH_INTLVL_OFF_gc; - a2a: 12 aa std Z+50, r1 ; 0x32 + 9d8: 12 aa std Z+50, r1 ; 0x32 ADCA.CH2.SCAN = 0x00; //Disable scanning - a2c: 16 aa std Z+54, r1 ; 0x36 - a2e: 08 95 ret + 9da: 16 aa std Z+54, r1 ; 0x36 + 9dc: 08 95 ret -00000a30 : +000009de : } void tiny_adc_pid_setup(void){ ADCA.CH1.CTRL = 0x00; //Reset - a30: e0 e0 ldi r30, 0x00 ; 0 - a32: f2 e0 ldi r31, 0x02 ; 2 - a34: 10 a6 std Z+40, r1 ; 0x28 + 9de: e0 e0 ldi r30, 0x00 ; 0 + 9e0: f2 e0 ldi r31, 0x02 ; 2 + 9e2: 10 a6 std Z+40, r1 ; 0x28 ADCA.CH1.CTRL = ADC_CH_START_bm | ADC_CH_GAIN_1X_gc | ADC_CH_INPUTMODE_DIFFWGAIN_gc; - a36: 83 e8 ldi r24, 0x83 ; 131 - a38: 80 a7 std Z+40, r24 ; 0x28 + 9e4: 83 e8 ldi r24, 0x83 ; 131 + 9e6: 80 a7 std Z+40, r24 ; 0x28 ADCA.CH1.MUXCTRL = ADC_CH_MUXPOS_PIN5_gc | 0b00000111; - a3a: 8f e2 ldi r24, 0x2F ; 47 - a3c: 81 a7 std Z+41, r24 ; 0x29 + 9e8: 8f e2 ldi r24, 0x2F ; 47 + 9ea: 81 a7 std Z+41, r24 ; 0x29 ADCA.CH1.INTCTRL = ADC_CH_INTLVL_OFF_gc; - a3e: 12 a6 std Z+42, r1 ; 0x2a + 9ec: 12 a6 std Z+42, r1 ; 0x2a ADCA.CH1.SCAN = 0x00; //Disable scanning - a40: 16 a6 std Z+46, r1 ; 0x2e - a42: 08 95 ret + 9ee: 16 a6 std Z+46, r1 ; 0x2e + 9f0: 08 95 ret -00000a44 : +000009f2 : //FROM: http://www.avrfreaks.net/forum/xmega-production-signature-row uint8_t ReadCalibrationByte(uint8_t index){ uint8_t result; /* Load the NVM Command register to read the calibration row. */ NVM_CMD = NVM_CMD_READ_CALIB_ROW_gc; - a44: aa ec ldi r26, 0xCA ; 202 - a46: b1 e0 ldi r27, 0x01 ; 1 - a48: 92 e0 ldi r25, 0x02 ; 2 - a4a: 9c 93 st X, r25 + 9f2: aa ec ldi r26, 0xCA ; 202 + 9f4: b1 e0 ldi r27, 0x01 ; 1 + 9f6: 92 e0 ldi r25, 0x02 ; 2 + 9f8: 9c 93 st X, r25 result = pgm_read_byte(index); - a4c: e8 2f mov r30, r24 - a4e: f0 e0 ldi r31, 0x00 ; 0 - a50: 84 91 lpm r24, Z + 9fa: e8 2f mov r30, r24 + 9fc: f0 e0 ldi r31, 0x00 ; 0 + 9fe: 84 91 lpm r24, Z /* Clean up NVM Command register. */ NVM_CMD = NVM_CMD_NO_OPERATION_gc; - a52: 1c 92 st X, r1 + a00: 1c 92 st X, r1 return( result ); } - a54: 08 95 ret + a02: 08 95 ret -00000a56 : +00000a04 : // These 2 files need to be included in order to read // the production calibration values from EEPROM #include #include void tiny_adc_setup(unsigned char ch2_enable, unsigned char seven_fiddy_ksps){ - a56: cf 93 push r28 - a58: df 93 push r29 + a04: cf 93 push r28 + a06: df 93 push r29 PR.PRPA &=0b11111101; - a5a: e0 e7 ldi r30, 0x70 ; 112 - a5c: f0 e0 ldi r31, 0x00 ; 0 - a5e: 91 81 ldd r25, Z+1 ; 0x01 - a60: 9d 7f andi r25, 0xFD ; 253 - a62: 91 83 std Z+1, r25 ; 0x01 + a08: e0 e7 ldi r30, 0x70 ; 112 + a0a: f0 e0 ldi r31, 0x00 ; 0 + a0c: 91 81 ldd r25, Z+1 ; 0x01 + a0e: 9d 7f andi r25, 0xFD ; 253 + a10: 91 83 std Z+1, r25 ; 0x01 ADCA.CTRLA = 0x00; //Turn off - a64: 10 92 00 02 sts 0x0200, r1 ; 0x800200 <__TEXT_REGION_LENGTH__+0x700200> + a12: 10 92 00 02 sts 0x0200, r1 ; 0x800200 <__TEXT_REGION_LENGTH__+0x700200> ADCA.CTRLB = ADC_FREERUN_bm | (seven_fiddy_ksps == 2 ? ADC_RESOLUTION_LEFT12BIT_gc : ADC_RESOLUTION_8BIT_gc) | ADC_CONMODE_bm ; - a68: 62 30 cpi r22, 0x02 ; 2 - a6a: 31 f1 breq .+76 ; 0xab8 - a6c: e0 e0 ldi r30, 0x00 ; 0 - a6e: f2 e0 ldi r31, 0x02 ; 2 - a70: 9c e1 ldi r25, 0x1C ; 28 - a72: 91 83 std Z+1, r25 ; 0x01 + a16: 62 30 cpi r22, 0x02 ; 2 + a18: 31 f1 breq .+76 ; 0xa66 + a1a: e0 e0 ldi r30, 0x00 ; 0 + a1c: f2 e0 ldi r31, 0x02 ; 2 + a1e: 9c e1 ldi r25, 0x1C ; 28 + a20: 91 83 std Z+1, r25 ; 0x01 ADCA.REFCTRL = ADC_REFSEL_INTVCC2_gc; - a74: 90 e4 ldi r25, 0x40 ; 64 - a76: 92 83 std Z+2, r25 ; 0x02 + a22: 90 e4 ldi r25, 0x40 ; 64 + a24: 92 83 std Z+2, r25 ; 0x02 ADCA.EVCTRL = ch2_enable ? ADC_SWEEP_0123_gc : ADC_SWEEP_01_gc; //Non-zero causes issues with interrupts! ;.; - a78: 81 11 cpse r24, r1 - a7a: 02 c0 rjmp .+4 ; 0xa80 - a7c: 80 e4 ldi r24, 0x40 ; 64 - a7e: 01 c0 rjmp .+2 ; 0xa82 - a80: 80 ec ldi r24, 0xC0 ; 192 - a82: 80 93 03 02 sts 0x0203, r24 ; 0x800203 <__TEXT_REGION_LENGTH__+0x700203> + a26: 81 11 cpse r24, r1 + a28: 02 c0 rjmp .+4 ; 0xa2e + a2a: 80 e4 ldi r24, 0x40 ; 64 + a2c: 01 c0 rjmp .+2 ; 0xa30 + a2e: 80 ec ldi r24, 0xC0 ; 192 + a30: 80 93 03 02 sts 0x0203, r24 ; 0x800203 <__TEXT_REGION_LENGTH__+0x700203> #if OVERCLOCK == 48 ADCA.PRESCALER = seven_fiddy_ksps == 1 ? ADC_PRESCALER_DIV32_gc : ADC_PRESCALER_DIV64_gc; //ADC Clock = Sysclock/128 - a86: 61 30 cpi r22, 0x01 ; 1 - a88: 11 f0 breq .+4 ; 0xa8e - a8a: 84 e0 ldi r24, 0x04 ; 4 - a8c: 01 c0 rjmp .+2 ; 0xa90 - a8e: 83 e0 ldi r24, 0x03 ; 3 - a90: c0 e0 ldi r28, 0x00 ; 0 - a92: d2 e0 ldi r29, 0x02 ; 2 - a94: 8c 83 std Y+4, r24 ; 0x04 + a34: 61 30 cpi r22, 0x01 ; 1 + a36: 11 f0 breq .+4 ; 0xa3c + a38: 84 e0 ldi r24, 0x04 ; 4 + a3a: 01 c0 rjmp .+2 ; 0xa3e + a3c: 83 e0 ldi r24, 0x03 ; 3 + a3e: c0 e0 ldi r28, 0x00 ; 0 + a40: d2 e0 ldi r29, 0x02 ; 2 + a42: 8c 83 std Y+4, r24 ; 0x04 #else ADCA.PRESCALER = seven_fiddy_ksps == 1 ? ADC_PRESCALER_DIV16_gc : ADC_PRESCALER_DIV32_gc; //ADC Clock = Sysclock/128 #endif ADCA.CALL = ReadCalibrationByte(offsetof(NVM_PROD_SIGNATURES_t, ADCACAL0)); //Load calibration bytes from production row. - a96: 80 e2 ldi r24, 0x20 ; 32 - a98: d5 df rcall .-86 ; 0xa44 - a9a: 8c 87 std Y+12, r24 ; 0x0c + a44: 80 e2 ldi r24, 0x20 ; 32 + a46: d5 df rcall .-86 ; 0x9f2 + a48: 8c 87 std Y+12, r24 ; 0x0c ADCA.CALH = ReadCalibrationByte(offsetof(NVM_PROD_SIGNATURES_t, ADCACAL1)); //Load calibration bytes from production row. - a9c: 81 e2 ldi r24, 0x21 ; 33 - a9e: d2 df rcall .-92 ; 0xa44 - aa0: 8d 87 std Y+13, r24 ; 0x0d + a4a: 81 e2 ldi r24, 0x21 ; 33 + a4c: d2 df rcall .-92 ; 0x9f2 + a4e: 8d 87 std Y+13, r24 ; 0x0d ADCA.CMP = 0x0000; //No compare used - aa2: 18 8e std Y+24, r1 ; 0x18 - aa4: 19 8e std Y+25, r1 ; 0x19 + a50: 18 8e std Y+24, r1 ; 0x18 + a52: 19 8e std Y+25, r1 ; 0x19 ADCA.CTRLA = ADC_ENABLE_bm; - aa6: 81 e0 ldi r24, 0x01 ; 1 - aa8: 88 83 st Y, r24 + a54: 81 e0 ldi r24, 0x01 ; 1 + a56: 88 83 st Y, r24 tiny_adc_pid_setup(); - aaa: c2 df rcall .-124 ; 0xa30 - aac: 0e c0 rjmp .+28 ; 0xaca + a58: c2 df rcall .-124 ; 0x9de + a5a: 0e c0 rjmp .+28 ; 0xa78 PR.PRPA &=0b11111101; ADCA.CTRLA = 0x00; //Turn off ADCA.CTRLB = ADC_FREERUN_bm | (seven_fiddy_ksps == 2 ? ADC_RESOLUTION_LEFT12BIT_gc : ADC_RESOLUTION_8BIT_gc) | ADC_CONMODE_bm ; ADCA.REFCTRL = ADC_REFSEL_INTVCC2_gc; ADCA.EVCTRL = ch2_enable ? ADC_SWEEP_0123_gc : ADC_SWEEP_01_gc; //Non-zero causes issues with interrupts! ;.; - aae: 80 ec ldi r24, 0xC0 ; 192 - ab0: 80 93 03 02 sts 0x0203, r24 ; 0x800203 <__TEXT_REGION_LENGTH__+0x700203> + a5c: 80 ec ldi r24, 0xC0 ; 192 + a5e: 80 93 03 02 sts 0x0203, r24 ; 0x800203 <__TEXT_REGION_LENGTH__+0x700203> #if OVERCLOCK == 48 ADCA.PRESCALER = seven_fiddy_ksps == 1 ? ADC_PRESCALER_DIV32_gc : ADC_PRESCALER_DIV64_gc; //ADC Clock = Sysclock/128 - ab4: 84 e0 ldi r24, 0x04 ; 4 - ab6: ec cf rjmp .-40 ; 0xa90 + a62: 84 e0 ldi r24, 0x04 ; 4 + a64: ec cf rjmp .-40 ; 0xa3e void tiny_adc_setup(unsigned char ch2_enable, unsigned char seven_fiddy_ksps){ PR.PRPA &=0b11111101; ADCA.CTRLA = 0x00; //Turn off ADCA.CTRLB = ADC_FREERUN_bm | (seven_fiddy_ksps == 2 ? ADC_RESOLUTION_LEFT12BIT_gc : ADC_RESOLUTION_8BIT_gc) | ADC_CONMODE_bm ; - ab8: e0 e0 ldi r30, 0x00 ; 0 - aba: f2 e0 ldi r31, 0x02 ; 2 - abc: 9e e1 ldi r25, 0x1E ; 30 - abe: 91 83 std Z+1, r25 ; 0x01 + a66: e0 e0 ldi r30, 0x00 ; 0 + a68: f2 e0 ldi r31, 0x02 ; 2 + a6a: 9e e1 ldi r25, 0x1E ; 30 + a6c: 91 83 std Z+1, r25 ; 0x01 ADCA.REFCTRL = ADC_REFSEL_INTVCC2_gc; - ac0: 90 e4 ldi r25, 0x40 ; 64 - ac2: 92 83 std Z+2, r25 ; 0x02 + a6e: 90 e4 ldi r25, 0x40 ; 64 + a70: 92 83 std Z+2, r25 ; 0x02 ADCA.EVCTRL = ch2_enable ? ADC_SWEEP_0123_gc : ADC_SWEEP_01_gc; //Non-zero causes issues with interrupts! ;.; - ac4: 81 11 cpse r24, r1 - ac6: f3 cf rjmp .-26 ; 0xaae - ac8: d9 cf rjmp .-78 ; 0xa7c + a72: 81 11 cpse r24, r1 + a74: f3 cf rjmp .-26 ; 0xa5c + a76: d9 cf rjmp .-78 ; 0xa2a ADCA.CTRLA = ADC_ENABLE_bm; tiny_adc_pid_setup(); return; } - aca: df 91 pop r29 - acc: cf 91 pop r28 - ace: 08 95 ret + a78: df 91 pop r29 + a7a: cf 91 pop r28 + a7c: 08 95 ret -00000ad0 <__vector_71>: +00000a7e <__vector_71>: NVM_CMD = NVM_CMD_NO_OPERATION_gc; return( result ); } ISR(ADCA_CH0_vect){ - ad0: 1f 92 push r1 - ad2: 0f 92 push r0 - ad4: 0f b6 in r0, 0x3f ; 63 - ad6: 0f 92 push r0 - ad8: 11 24 eor r1, r1 - ada: 8f 93 push r24 + a7e: 1f 92 push r1 + a80: 0f 92 push r0 + a82: 0f b6 in r0, 0x3f ; 63 + a84: 0f 92 push r0 + a86: 11 24 eor r1, r1 + a88: 8f 93 push r24 ... asm("nop"); asm("nop"); asm("nop"); asm("nop"); ADCA.CH0.INTFLAGS = 0x01; - ae4: 81 e0 ldi r24, 0x01 ; 1 - ae6: 80 93 23 02 sts 0x0223, r24 ; 0x800223 <__TEXT_REGION_LENGTH__+0x700223> - aea: 8f 91 pop r24 - aec: 0f 90 pop r0 - aee: 0f be out 0x3f, r0 ; 63 - af0: 0f 90 pop r0 - af2: 1f 90 pop r1 - af4: 18 95 reti + a92: 81 e0 ldi r24, 0x01 ; 1 + a94: 80 93 23 02 sts 0x0223, r24 ; 0x800223 <__TEXT_REGION_LENGTH__+0x700223> + a98: 8f 91 pop r24 + a9a: 0f 90 pop r0 + a9c: 0f be out 0x3f, r0 ; 63 + a9e: 0f 90 pop r0 + aa0: 1f 90 pop r1 + aa2: 18 95 reti -00000af6 : +00000aa4 : #include "tiny_adc.h" #include #include void tiny_dac_setup(void){ - af6: cf 93 push r28 - af8: df 93 push r29 + aa4: cf 93 push r28 + aa6: df 93 push r29 //Turn on in PR PR.PRPB &=0b11111011; - afa: e0 e7 ldi r30, 0x70 ; 112 - afc: f0 e0 ldi r31, 0x00 ; 0 - afe: 82 81 ldd r24, Z+2 ; 0x02 - b00: 8b 7f andi r24, 0xFB ; 251 - b02: 82 83 std Z+2, r24 ; 0x02 + aa8: e0 e7 ldi r30, 0x70 ; 112 + aaa: f0 e0 ldi r31, 0x00 ; 0 + aac: 82 81 ldd r24, Z+2 ; 0x02 + aae: 8b 7f andi r24, 0xFB ; 251 + ab0: 82 83 std Z+2, r24 ; 0x02 DACB.CTRLA = DAC_CH1EN_bm | DAC_CH0EN_bm | DAC_ENABLE_bm; - b04: c0 e2 ldi r28, 0x20 ; 32 - b06: d3 e0 ldi r29, 0x03 ; 3 - b08: 8d e0 ldi r24, 0x0D ; 13 - b0a: 88 83 st Y, r24 + ab2: c0 e2 ldi r28, 0x20 ; 32 + ab4: d3 e0 ldi r29, 0x03 ; 3 + ab6: 8d e0 ldi r24, 0x0D ; 13 + ab8: 88 83 st Y, r24 DACB.CTRLB = DAC_CHSEL_DUAL_gc; - b0c: 80 e4 ldi r24, 0x40 ; 64 - b0e: 89 83 std Y+1, r24 ; 0x01 + aba: 80 e4 ldi r24, 0x40 ; 64 + abc: 89 83 std Y+1, r24 ; 0x01 DACB.CTRLC = DAC_REFSEL_AVCC_gc | DAC_LEFTADJ_bm; - b10: 89 e0 ldi r24, 0x09 ; 9 - b12: 8a 83 std Y+2, r24 ; 0x02 + abe: 89 e0 ldi r24, 0x09 ; 9 + ac0: 8a 83 std Y+2, r24 ; 0x02 //EVCTRL unset //DACB.CH0DATAH = 127;//contains (8-bit) sample, assuming left adjust! //TODO: Calibrate DACB.CH0GAINCAL = ReadCalibrationByte(offsetof(NVM_PROD_SIGNATURES_t, DACB0GAINCAL)); //Load calibration bytes from production row. - b14: 83 e3 ldi r24, 0x33 ; 51 - b16: 96 df rcall .-212 ; 0xa44 - b18: 88 87 std Y+8, r24 ; 0x08 + ac2: 83 e3 ldi r24, 0x33 ; 51 + ac4: 96 df rcall .-212 ; 0x9f2 + ac6: 88 87 std Y+8, r24 ; 0x08 DACB.CH0OFFSETCAL = ReadCalibrationByte(offsetof(NVM_PROD_SIGNATURES_t, DACB0OFFCAL)); //Load calibration bytes from production row. - b1a: 82 e3 ldi r24, 0x32 ; 50 - b1c: 93 df rcall .-218 ; 0xa44 - b1e: 89 87 std Y+9, r24 ; 0x09 + ac8: 82 e3 ldi r24, 0x32 ; 50 + aca: 93 df rcall .-218 ; 0x9f2 + acc: 89 87 std Y+9, r24 ; 0x09 DACB.CH1GAINCAL = ReadCalibrationByte(offsetof(NVM_PROD_SIGNATURES_t, DACB1GAINCAL)); //Load calibration bytes from production row. - b20: 87 e3 ldi r24, 0x37 ; 55 - b22: 90 df rcall .-224 ; 0xa44 - b24: 8a 87 std Y+10, r24 ; 0x0a + ace: 87 e3 ldi r24, 0x37 ; 55 + ad0: 90 df rcall .-224 ; 0x9f2 + ad2: 8a 87 std Y+10, r24 ; 0x0a DACB.CH1OFFSETCAL = ReadCalibrationByte(offsetof(NVM_PROD_SIGNATURES_t, DACB1OFFCAL)); //Load calibration bytes from production row. - b26: 86 e3 ldi r24, 0x36 ; 54 - b28: 8d df rcall .-230 ; 0xa44 - b2a: 8b 87 std Y+11, r24 ; 0x0b + ad4: 86 e3 ldi r24, 0x36 ; 54 + ad6: 8d df rcall .-230 ; 0x9f2 + ad8: 8b 87 std Y+11, r24 ; 0x0b //Set up for triple mode! PORTB.DIR |= 0x03; - b2c: e0 e2 ldi r30, 0x20 ; 32 - b2e: f6 e0 ldi r31, 0x06 ; 6 - b30: 80 81 ld r24, Z - b32: 83 60 ori r24, 0x03 ; 3 - b34: 80 83 st Z, r24 + ada: e0 e2 ldi r30, 0x20 ; 32 + adc: f6 e0 ldi r31, 0x06 ; 6 + ade: 80 81 ld r24, Z + ae0: 83 60 ori r24, 0x03 ; 3 + ae2: 80 83 st Z, r24 PORTB.OUT = 0x00; - b36: 14 82 std Z+4, r1 ; 0x04 - b38: df 91 pop r29 - b3a: cf 91 pop r28 - b3c: 08 95 ret + ae4: 14 82 std Z+4, r1 ; 0x04 + ae6: df 91 pop r29 + ae8: cf 91 pop r28 + aea: 08 95 ret -00000b3e : +00000aec : median_TRFCNT_delay = 1; //Wait a few frames before actually setting median_TRFCNT, in case a SOF interrupt was queued during tiny_dma_set_mode_xxx. DMA.CH0.CTRLA |= DMA_CH_ENABLE_bm; //Enable! } void tiny_dma_loop_mode_7(void){ - b3e: e0 e7 ldi r30, 0x70 ; 112 - b40: f0 e0 ldi r31, 0x00 ; 0 - b42: 80 81 ld r24, Z - b44: 8e 7f andi r24, 0xFE ; 254 - b46: 80 83 st Z, r24 - b48: 83 e8 ldi r24, 0x83 ; 131 - b4a: 80 93 00 01 sts 0x0100, r24 ; 0x800100 <__TEXT_REGION_LENGTH__+0x700100> - b4e: 08 95 ret + aec: e0 e7 ldi r30, 0x70 ; 112 + aee: f0 e0 ldi r31, 0x00 ; 0 + af0: 80 81 ld r24, Z + af2: 8e 7f andi r24, 0xFE ; 254 + af4: 80 83 st Z, r24 + af6: 83 e8 ldi r24, 0x83 ; 131 + af8: 80 93 00 01 sts 0x0100, r24 ; 0x800100 <__TEXT_REGION_LENGTH__+0x700100> + afc: 08 95 ret -00000b50 : - b50: e0 e0 ldi r30, 0x00 ; 0 - b52: f1 e0 ldi r31, 0x01 ; 1 - b54: 10 8a std Z+16, r1 ; 0x10 - b56: 80 e4 ldi r24, 0x40 ; 64 - b58: 80 8b std Z+16, r24 ; 0x10 - b5a: 10 a2 std Z+32, r1 ; 0x20 - b5c: 80 a3 std Z+32, r24 ; 0x20 - b5e: 10 aa std Z+48, r1 ; 0x30 - b60: 80 ab std Z+48, r24 ; 0x30 - b62: e0 e4 ldi r30, 0x40 ; 64 - b64: f1 e0 ldi r31, 0x01 ; 1 - b66: 10 82 st Z, r1 - b68: 80 83 st Z, r24 - b6a: 10 92 98 20 sts 0x2098, r1 ; 0x802098 - b6e: 10 92 97 20 sts 0x2097, r1 ; 0x802097 - b72: 81 e0 ldi r24, 0x01 ; 1 - b74: 80 93 96 20 sts 0x2096, r24 ; 0x802096 - b78: 10 92 7c 21 sts 0x217C, r1 ; 0x80217c - b7c: 10 92 7d 21 sts 0x217D, r1 ; 0x80217d - b80: 10 92 7a 21 sts 0x217A, r1 ; 0x80217a - b84: 10 92 7b 21 sts 0x217B, r1 ; 0x80217b - b88: 08 95 ret +00000afe : + afe: e0 e0 ldi r30, 0x00 ; 0 + b00: f1 e0 ldi r31, 0x01 ; 1 + b02: 10 8a std Z+16, r1 ; 0x10 + b04: 80 e4 ldi r24, 0x40 ; 64 + b06: 80 8b std Z+16, r24 ; 0x10 + b08: 10 a2 std Z+32, r1 ; 0x20 + b0a: 80 a3 std Z+32, r24 ; 0x20 + b0c: 10 aa std Z+48, r1 ; 0x30 + b0e: 80 ab std Z+48, r24 ; 0x30 + b10: e0 e4 ldi r30, 0x40 ; 64 + b12: f1 e0 ldi r31, 0x01 ; 1 + b14: 10 82 st Z, r1 + b16: 80 83 st Z, r24 + b18: 10 92 98 20 sts 0x2098, r1 ; 0x802098 + b1c: 10 92 97 20 sts 0x2097, r1 ; 0x802097 + b20: 81 e0 ldi r24, 0x01 ; 1 + b22: 80 93 96 20 sts 0x2096, r24 ; 0x802096 + b26: 10 92 7c 21 sts 0x217C, r1 ; 0x80217c + b2a: 10 92 7d 21 sts 0x217D, r1 ; 0x80217d + b2e: 10 92 7a 21 sts 0x217A, r1 ; 0x80217a + b32: 10 92 7b 21 sts 0x217B, r1 ; 0x80217b + b36: 08 95 ret -00000b8a : - b8a: 80 93 aa 23 sts 0x23AA, r24 ; 0x8023aa - b8e: 81 e0 ldi r24, 0x01 ; 1 - b90: 80 93 91 20 sts 0x2091, r24 ; 0x802091 - b94: 08 95 ret +00000b38 : + b38: 80 93 aa 23 sts 0x23AA, r24 ; 0x8023aa + b3c: 81 e0 ldi r24, 0x01 ; 1 + b3e: 80 93 91 20 sts 0x2091, r24 ; 0x802091 + b42: 08 95 ret -00000b96 : - b96: cf 93 push r28 - b98: df 93 push r29 - b9a: 10 92 09 20 sts 0x2009, r1 ; 0x802009 - b9e: d8 df rcall .-80 ; 0xb50 - ba0: c0 e0 ldi r28, 0x00 ; 0 - ba2: d1 e0 ldi r29, 0x01 ; 1 - ba4: 1e aa std Y+54, r1 ; 0x36 - ba6: 84 e2 ldi r24, 0x24 ; 36 - ba8: 88 ab std Y+48, r24 ; 0x30 - baa: 19 aa std Y+49, r1 ; 0x31 - bac: 49 e5 ldi r20, 0x59 ; 89 - bae: 4a ab std Y+50, r20 ; 0x32 - bb0: 32 e0 ldi r19, 0x02 ; 2 - bb2: 3b ab std Y+51, r19 ; 0x33 - bb4: 60 91 0b 20 lds r22, 0x200B ; 0x80200b - bb8: 70 91 0c 20 lds r23, 0x200C ; 0x80200c - bbc: 6c ab std Y+52, r22 ; 0x34 - bbe: 7d ab std Y+53, r23 ; 0x35 - bc0: 6b ea ldi r22, 0xAB ; 171 - bc2: 73 e2 ldi r23, 0x23 ; 35 - bc4: 68 af std Y+56, r22 ; 0x38 - bc6: 79 af std Y+57, r23 ; 0x39 - bc8: 1a ae std Y+58, r1 ; 0x3a - bca: 9b e3 ldi r25, 0x3B ; 59 - bcc: 9c af std Y+60, r25 ; 0x3c - bce: 93 e0 ldi r25, 0x03 ; 3 - bd0: 90 93 3d 01 sts 0x013D, r25 ; 0x80013d <__TEXT_REGION_LENGTH__+0x70013d> - bd4: 10 92 3e 01 sts 0x013E, r1 ; 0x80013e <__TEXT_REGION_LENGTH__+0x70013e> - bd8: 28 a9 ldd r18, Y+48 ; 0x30 - bda: 20 68 ori r18, 0x80 ; 128 - bdc: 28 ab std Y+48, r18 ; 0x30 - bde: 10 92 46 01 sts 0x0146, r1 ; 0x800146 <__TEXT_REGION_LENGTH__+0x700146> - be2: e0 e4 ldi r30, 0x40 ; 64 - be4: f1 e0 ldi r31, 0x01 ; 1 - be6: 80 83 st Z, r24 - be8: 10 92 41 01 sts 0x0141, r1 ; 0x800141 <__TEXT_REGION_LENGTH__+0x700141> - bec: 40 93 42 01 sts 0x0142, r20 ; 0x800142 <__TEXT_REGION_LENGTH__+0x700142> - bf0: 90 93 43 01 sts 0x0143, r25 ; 0x800143 <__TEXT_REGION_LENGTH__+0x700143> - bf4: 40 91 0d 20 lds r20, 0x200D ; 0x80200d - bf8: 50 91 0e 20 lds r21, 0x200E ; 0x80200e - bfc: 40 93 44 01 sts 0x0144, r20 ; 0x800144 <__TEXT_REGION_LENGTH__+0x700144> - c00: 50 93 45 01 sts 0x0145, r21 ; 0x800145 <__TEXT_REGION_LENGTH__+0x700145> - c04: 4a e9 ldi r20, 0x9A ; 154 - c06: 51 e2 ldi r21, 0x21 ; 33 - c08: 40 93 48 01 sts 0x0148, r20 ; 0x800148 <__TEXT_REGION_LENGTH__+0x700148> - c0c: 50 93 49 01 sts 0x0149, r21 ; 0x800149 <__TEXT_REGION_LENGTH__+0x700149> - c10: 10 92 4a 01 sts 0x014A, r1 ; 0x80014a <__TEXT_REGION_LENGTH__+0x70014a> - c14: 29 e3 ldi r18, 0x39 ; 57 - c16: 20 93 4c 01 sts 0x014C, r18 ; 0x80014c <__TEXT_REGION_LENGTH__+0x70014c> - c1a: 90 93 4d 01 sts 0x014D, r25 ; 0x80014d <__TEXT_REGION_LENGTH__+0x70014d> - c1e: 10 92 4e 01 sts 0x014E, r1 ; 0x80014e <__TEXT_REGION_LENGTH__+0x70014e> - c22: 90 81 ld r25, Z - c24: 90 68 ori r25, 0x80 ; 128 - c26: 90 83 st Z, r25 - c28: 18 8a std Y+16, r1 ; 0x10 - c2a: 90 e4 ldi r25, 0x40 ; 64 - c2c: 98 8b std Y+16, r25 ; 0x10 - c2e: 88 8b std Y+16, r24 ; 0x10 - c30: 19 8a std Y+17, r1 ; 0x11 - c32: 95 e9 ldi r25, 0x95 ; 149 - c34: 9a 8b std Y+18, r25 ; 0x12 - c36: 90 e1 ldi r25, 0x10 ; 16 - c38: 9b 8b std Y+19, r25 ; 0x13 - c3a: 4e ee ldi r20, 0xEE ; 238 - c3c: 52 e0 ldi r21, 0x02 ; 2 - c3e: 4c 8b std Y+20, r20 ; 0x14 - c40: 5d 8b std Y+21, r21 ; 0x15 - c42: 88 8f std Y+24, r24 ; 0x18 - c44: 39 8f std Y+25, r19 ; 0x19 - c46: 1a 8e std Y+26, r1 ; 0x1a - c48: 8c ec ldi r24, 0xCC ; 204 - c4a: 95 e2 ldi r25, 0x25 ; 37 - c4c: 8c 8f std Y+28, r24 ; 0x1c - c4e: 9d 8f std Y+29, r25 ; 0x1d - c50: 1e 8e std Y+30, r1 ; 0x1e - c52: 68 ec ldi r22, 0xC8 ; 200 - c54: 70 e0 ldi r23, 0x00 ; 0 - c56: 84 ef ldi r24, 0xF4 ; 244 - c58: 91 e0 ldi r25, 0x01 ; 1 - c5a: 3e dd rcall .-1412 ; 0x6d8 - c5c: 88 ec ldi r24, 0xC8 ; 200 - c5e: 90 e0 ldi r25, 0x00 ; 0 - c60: 80 93 07 20 sts 0x2007, r24 ; 0x802007 - c64: 90 93 08 20 sts 0x2008, r25 ; 0x802008 - c68: 81 e0 ldi r24, 0x01 ; 1 - c6a: 80 93 06 20 sts 0x2006, r24 ; 0x802006 - c6e: 88 89 ldd r24, Y+16 ; 0x10 - c70: 80 68 ori r24, 0x80 ; 128 - c72: 88 8b std Y+16, r24 ; 0x10 - c74: df 91 pop r29 - c76: cf 91 pop r28 - c78: 08 95 ret +00000b44 : + b44: cf 93 push r28 + b46: df 93 push r29 + b48: 10 92 09 20 sts 0x2009, r1 ; 0x802009 + b4c: d8 df rcall .-80 ; 0xafe + b4e: c0 e0 ldi r28, 0x00 ; 0 + b50: d1 e0 ldi r29, 0x01 ; 1 + b52: 1e aa std Y+54, r1 ; 0x36 + b54: 84 e2 ldi r24, 0x24 ; 36 + b56: 88 ab std Y+48, r24 ; 0x30 + b58: 19 aa std Y+49, r1 ; 0x31 + b5a: 49 e5 ldi r20, 0x59 ; 89 + b5c: 4a ab std Y+50, r20 ; 0x32 + b5e: 32 e0 ldi r19, 0x02 ; 2 + b60: 3b ab std Y+51, r19 ; 0x33 + b62: 60 91 0b 20 lds r22, 0x200B ; 0x80200b + b66: 70 91 0c 20 lds r23, 0x200C ; 0x80200c + b6a: 6c ab std Y+52, r22 ; 0x34 + b6c: 7d ab std Y+53, r23 ; 0x35 + b6e: 6b ea ldi r22, 0xAB ; 171 + b70: 73 e2 ldi r23, 0x23 ; 35 + b72: 68 af std Y+56, r22 ; 0x38 + b74: 79 af std Y+57, r23 ; 0x39 + b76: 1a ae std Y+58, r1 ; 0x3a + b78: 9b e3 ldi r25, 0x3B ; 59 + b7a: 9c af std Y+60, r25 ; 0x3c + b7c: 93 e0 ldi r25, 0x03 ; 3 + b7e: 90 93 3d 01 sts 0x013D, r25 ; 0x80013d <__TEXT_REGION_LENGTH__+0x70013d> + b82: 10 92 3e 01 sts 0x013E, r1 ; 0x80013e <__TEXT_REGION_LENGTH__+0x70013e> + b86: 28 a9 ldd r18, Y+48 ; 0x30 + b88: 20 68 ori r18, 0x80 ; 128 + b8a: 28 ab std Y+48, r18 ; 0x30 + b8c: 10 92 46 01 sts 0x0146, r1 ; 0x800146 <__TEXT_REGION_LENGTH__+0x700146> + b90: e0 e4 ldi r30, 0x40 ; 64 + b92: f1 e0 ldi r31, 0x01 ; 1 + b94: 80 83 st Z, r24 + b96: 10 92 41 01 sts 0x0141, r1 ; 0x800141 <__TEXT_REGION_LENGTH__+0x700141> + b9a: 40 93 42 01 sts 0x0142, r20 ; 0x800142 <__TEXT_REGION_LENGTH__+0x700142> + b9e: 90 93 43 01 sts 0x0143, r25 ; 0x800143 <__TEXT_REGION_LENGTH__+0x700143> + ba2: 40 91 0d 20 lds r20, 0x200D ; 0x80200d + ba6: 50 91 0e 20 lds r21, 0x200E ; 0x80200e + baa: 40 93 44 01 sts 0x0144, r20 ; 0x800144 <__TEXT_REGION_LENGTH__+0x700144> + bae: 50 93 45 01 sts 0x0145, r21 ; 0x800145 <__TEXT_REGION_LENGTH__+0x700145> + bb2: 4a e9 ldi r20, 0x9A ; 154 + bb4: 51 e2 ldi r21, 0x21 ; 33 + bb6: 40 93 48 01 sts 0x0148, r20 ; 0x800148 <__TEXT_REGION_LENGTH__+0x700148> + bba: 50 93 49 01 sts 0x0149, r21 ; 0x800149 <__TEXT_REGION_LENGTH__+0x700149> + bbe: 10 92 4a 01 sts 0x014A, r1 ; 0x80014a <__TEXT_REGION_LENGTH__+0x70014a> + bc2: 29 e3 ldi r18, 0x39 ; 57 + bc4: 20 93 4c 01 sts 0x014C, r18 ; 0x80014c <__TEXT_REGION_LENGTH__+0x70014c> + bc8: 90 93 4d 01 sts 0x014D, r25 ; 0x80014d <__TEXT_REGION_LENGTH__+0x70014d> + bcc: 10 92 4e 01 sts 0x014E, r1 ; 0x80014e <__TEXT_REGION_LENGTH__+0x70014e> + bd0: 90 81 ld r25, Z + bd2: 90 68 ori r25, 0x80 ; 128 + bd4: 90 83 st Z, r25 + bd6: 18 8a std Y+16, r1 ; 0x10 + bd8: 90 e4 ldi r25, 0x40 ; 64 + bda: 98 8b std Y+16, r25 ; 0x10 + bdc: 88 8b std Y+16, r24 ; 0x10 + bde: 19 8a std Y+17, r1 ; 0x11 + be0: 95 e9 ldi r25, 0x95 ; 149 + be2: 9a 8b std Y+18, r25 ; 0x12 + be4: 90 e1 ldi r25, 0x10 ; 16 + be6: 9b 8b std Y+19, r25 ; 0x13 + be8: 4e ee ldi r20, 0xEE ; 238 + bea: 52 e0 ldi r21, 0x02 ; 2 + bec: 4c 8b std Y+20, r20 ; 0x14 + bee: 5d 8b std Y+21, r21 ; 0x15 + bf0: 88 8f std Y+24, r24 ; 0x18 + bf2: 39 8f std Y+25, r19 ; 0x19 + bf4: 1a 8e std Y+26, r1 ; 0x1a + bf6: 8c ec ldi r24, 0xCC ; 204 + bf8: 95 e2 ldi r25, 0x25 ; 37 + bfa: 8c 8f std Y+28, r24 ; 0x1c + bfc: 9d 8f std Y+29, r25 ; 0x1d + bfe: 1e 8e std Y+30, r1 ; 0x1e + c00: 68 ec ldi r22, 0xC8 ; 200 + c02: 70 e0 ldi r23, 0x00 ; 0 + c04: 84 ef ldi r24, 0xF4 ; 244 + c06: 91 e0 ldi r25, 0x01 ; 1 + c08: 67 dd rcall .-1330 ; 0x6d8 + c0a: 88 ec ldi r24, 0xC8 ; 200 + c0c: 90 e0 ldi r25, 0x00 ; 0 + c0e: 80 93 07 20 sts 0x2007, r24 ; 0x802007 + c12: 90 93 08 20 sts 0x2008, r25 ; 0x802008 + c16: 81 e0 ldi r24, 0x01 ; 1 + c18: 80 93 06 20 sts 0x2006, r24 ; 0x802006 + c1c: 88 89 ldd r24, Y+16 ; 0x10 + c1e: 80 68 ori r24, 0x80 ; 128 + c20: 88 8b std Y+16, r24 ; 0x10 + c22: df 91 pop r29 + c24: cf 91 pop r28 + c26: 08 95 ret -00000c7a : - c7a: 1f 93 push r17 - c7c: cf 93 push r28 - c7e: df 93 push r29 - c80: 11 e0 ldi r17, 0x01 ; 1 - c82: 10 93 09 20 sts 0x2009, r17 ; 0x802009 - c86: 64 df rcall .-312 ; 0xb50 - c88: c0 e0 ldi r28, 0x00 ; 0 - c8a: d1 e0 ldi r29, 0x01 ; 1 - c8c: 18 aa std Y+48, r1 ; 0x30 - c8e: 80 e4 ldi r24, 0x40 ; 64 - c90: 88 ab std Y+48, r24 ; 0x30 - c92: 84 e0 ldi r24, 0x04 ; 4 - c94: 88 ab std Y+48, r24 ; 0x30 - c96: 19 aa std Y+49, r1 ; 0x31 - c98: 1a aa std Y+50, r1 ; 0x32 - c9a: 4b e4 ldi r20, 0x4B ; 75 - c9c: 4b ab std Y+51, r20 ; 0x33 - c9e: 1c aa std Y+52, r1 ; 0x34 - ca0: 1d aa std Y+53, r1 ; 0x35 - ca2: 1e aa std Y+54, r1 ; 0x36 - ca4: 8a e0 ldi r24, 0x0A ; 10 - ca6: 90 e2 ldi r25, 0x20 ; 32 - ca8: 88 af std Y+56, r24 ; 0x38 - caa: 99 af std Y+57, r25 ; 0x39 - cac: 1a ae std Y+58, r1 ; 0x3a - cae: 70 ea ldi r23, 0xA0 ; 160 - cb0: 7c af std Y+60, r23 ; 0x3c - cb2: 68 e0 ldi r22, 0x08 ; 8 - cb4: 60 93 3d 01 sts 0x013D, r22 ; 0x80013d <__TEXT_REGION_LENGTH__+0x70013d> - cb8: 10 92 3e 01 sts 0x013E, r1 ; 0x80013e <__TEXT_REGION_LENGTH__+0x70013e> - cbc: 88 a9 ldd r24, Y+48 ; 0x30 - cbe: 80 6a ori r24, 0xA0 ; 160 - cc0: 88 ab std Y+48, r24 ; 0x30 - cc2: e0 ea ldi r30, 0xA0 ; 160 - cc4: f8 e0 ldi r31, 0x08 ; 8 - cc6: 85 e5 ldi r24, 0x55 ; 85 - cc8: 80 83 st Z, r24 - cca: 80 83 st Z, r24 - ccc: 10 92 46 01 sts 0x0146, r1 ; 0x800146 <__TEXT_REGION_LENGTH__+0x700146> - cd0: e0 e4 ldi r30, 0x40 ; 64 - cd2: f1 e0 ldi r31, 0x01 ; 1 - cd4: 84 e2 ldi r24, 0x24 ; 36 - cd6: 80 83 st Z, r24 - cd8: 10 92 41 01 sts 0x0141, r1 ; 0x800141 <__TEXT_REGION_LENGTH__+0x700141> - cdc: 99 e5 ldi r25, 0x59 ; 89 - cde: 90 93 42 01 sts 0x0142, r25 ; 0x800142 <__TEXT_REGION_LENGTH__+0x700142> - ce2: 32 e0 ldi r19, 0x02 ; 2 - ce4: 30 93 43 01 sts 0x0143, r19 ; 0x800143 <__TEXT_REGION_LENGTH__+0x700143> - ce8: a0 91 0b 20 lds r26, 0x200B ; 0x80200b - cec: b0 91 0c 20 lds r27, 0x200C ; 0x80200c - cf0: a0 93 44 01 sts 0x0144, r26 ; 0x800144 <__TEXT_REGION_LENGTH__+0x700144> - cf4: b0 93 45 01 sts 0x0145, r27 ; 0x800145 <__TEXT_REGION_LENGTH__+0x700145> - cf8: ab ea ldi r26, 0xAB ; 171 - cfa: b3 e2 ldi r27, 0x23 ; 35 - cfc: a0 93 48 01 sts 0x0148, r26 ; 0x800148 <__TEXT_REGION_LENGTH__+0x700148> - d00: b0 93 49 01 sts 0x0149, r27 ; 0x800149 <__TEXT_REGION_LENGTH__+0x700149> - d04: 10 92 4a 01 sts 0x014A, r1 ; 0x80014a <__TEXT_REGION_LENGTH__+0x70014a> - d08: 9b e3 ldi r25, 0x3B ; 59 - d0a: 90 93 4c 01 sts 0x014C, r25 ; 0x80014c <__TEXT_REGION_LENGTH__+0x70014c> - d0e: 93 e0 ldi r25, 0x03 ; 3 - d10: 90 93 4d 01 sts 0x014D, r25 ; 0x80014d <__TEXT_REGION_LENGTH__+0x70014d> - d14: 10 92 4e 01 sts 0x014E, r1 ; 0x80014e <__TEXT_REGION_LENGTH__+0x70014e> - d18: 20 81 ld r18, Z - d1a: 20 68 ori r18, 0x80 ; 128 - d1c: 20 83 st Z, r18 - d1e: 88 a3 std Y+32, r24 ; 0x20 - d20: 99 a3 std Y+33, r25 ; 0x21 - d22: 25 e9 ldi r18, 0x95 ; 149 - d24: 2a a3 std Y+34, r18 ; 0x22 - d26: 4b a3 std Y+35, r20 ; 0x23 - d28: 4e ee ldi r20, 0xEE ; 238 - d2a: 52 e0 ldi r21, 0x02 ; 2 - d2c: 4c a3 std Y+36, r20 ; 0x24 - d2e: 5d a3 std Y+37, r21 ; 0x25 - d30: 78 a7 std Y+40, r23 ; 0x28 - d32: 69 a7 std Y+41, r22 ; 0x29 - d34: 1a a6 std Y+42, r1 ; 0x2a - d36: 6a eb ldi r22, 0xBA ; 186 - d38: 78 e2 ldi r23, 0x28 ; 40 - d3a: 6c a7 std Y+44, r22 ; 0x2c - d3c: 7d a7 std Y+45, r23 ; 0x2d - d3e: 1e a6 std Y+46, r1 ; 0x2e - d40: 88 8b std Y+16, r24 ; 0x10 - d42: 99 8b std Y+17, r25 ; 0x11 - d44: 2a 8b std Y+18, r18 ; 0x12 - d46: 90 e1 ldi r25, 0x10 ; 16 - d48: 9b 8b std Y+19, r25 ; 0x13 - d4a: 4c 8b std Y+20, r20 ; 0x14 - d4c: 5d 8b std Y+21, r21 ; 0x15 - d4e: 88 8f std Y+24, r24 ; 0x18 - d50: 39 8f std Y+25, r19 ; 0x19 - d52: 1a 8e std Y+26, r1 ; 0x1a - d54: 8c ec ldi r24, 0xCC ; 204 - d56: 95 e2 ldi r25, 0x25 ; 37 - d58: 8c 8f std Y+28, r24 ; 0x1c - d5a: 9d 8f std Y+29, r25 ; 0x1d - d5c: 1e 8e std Y+30, r1 ; 0x1e - d5e: 68 ec ldi r22, 0xC8 ; 200 - d60: 70 e0 ldi r23, 0x00 ; 0 - d62: 84 ef ldi r24, 0xF4 ; 244 - d64: 91 e0 ldi r25, 0x01 ; 1 - d66: b8 dc rcall .-1680 ; 0x6d8 - d68: 88 ec ldi r24, 0xC8 ; 200 - d6a: 90 e0 ldi r25, 0x00 ; 0 - d6c: 80 93 07 20 sts 0x2007, r24 ; 0x802007 - d70: 90 93 08 20 sts 0x2008, r25 ; 0x802008 - d74: 10 93 06 20 sts 0x2006, r17 ; 0x802006 - d78: 88 a1 ldd r24, Y+32 ; 0x20 - d7a: 80 68 ori r24, 0x80 ; 128 - d7c: 88 a3 std Y+32, r24 ; 0x20 - d7e: 88 89 ldd r24, Y+16 ; 0x10 - d80: 80 68 ori r24, 0x80 ; 128 - d82: 88 8b std Y+16, r24 ; 0x10 - d84: df 91 pop r29 - d86: cf 91 pop r28 - d88: 1f 91 pop r17 - d8a: 08 95 ret +00000c28 : + c28: 1f 93 push r17 + c2a: cf 93 push r28 + c2c: df 93 push r29 + c2e: 11 e0 ldi r17, 0x01 ; 1 + c30: 10 93 09 20 sts 0x2009, r17 ; 0x802009 + c34: 64 df rcall .-312 ; 0xafe + c36: c0 e0 ldi r28, 0x00 ; 0 + c38: d1 e0 ldi r29, 0x01 ; 1 + c3a: 18 aa std Y+48, r1 ; 0x30 + c3c: 80 e4 ldi r24, 0x40 ; 64 + c3e: 88 ab std Y+48, r24 ; 0x30 + c40: 84 e0 ldi r24, 0x04 ; 4 + c42: 88 ab std Y+48, r24 ; 0x30 + c44: 19 aa std Y+49, r1 ; 0x31 + c46: 1a aa std Y+50, r1 ; 0x32 + c48: 4b e4 ldi r20, 0x4B ; 75 + c4a: 4b ab std Y+51, r20 ; 0x33 + c4c: 1c aa std Y+52, r1 ; 0x34 + c4e: 1d aa std Y+53, r1 ; 0x35 + c50: 1e aa std Y+54, r1 ; 0x36 + c52: 8a e0 ldi r24, 0x0A ; 10 + c54: 90 e2 ldi r25, 0x20 ; 32 + c56: 88 af std Y+56, r24 ; 0x38 + c58: 99 af std Y+57, r25 ; 0x39 + c5a: 1a ae std Y+58, r1 ; 0x3a + c5c: 70 ea ldi r23, 0xA0 ; 160 + c5e: 7c af std Y+60, r23 ; 0x3c + c60: 68 e0 ldi r22, 0x08 ; 8 + c62: 60 93 3d 01 sts 0x013D, r22 ; 0x80013d <__TEXT_REGION_LENGTH__+0x70013d> + c66: 10 92 3e 01 sts 0x013E, r1 ; 0x80013e <__TEXT_REGION_LENGTH__+0x70013e> + c6a: 88 a9 ldd r24, Y+48 ; 0x30 + c6c: 80 6a ori r24, 0xA0 ; 160 + c6e: 88 ab std Y+48, r24 ; 0x30 + c70: e0 ea ldi r30, 0xA0 ; 160 + c72: f8 e0 ldi r31, 0x08 ; 8 + c74: 85 e5 ldi r24, 0x55 ; 85 + c76: 80 83 st Z, r24 + c78: 80 83 st Z, r24 + c7a: 10 92 46 01 sts 0x0146, r1 ; 0x800146 <__TEXT_REGION_LENGTH__+0x700146> + c7e: e0 e4 ldi r30, 0x40 ; 64 + c80: f1 e0 ldi r31, 0x01 ; 1 + c82: 84 e2 ldi r24, 0x24 ; 36 + c84: 80 83 st Z, r24 + c86: 10 92 41 01 sts 0x0141, r1 ; 0x800141 <__TEXT_REGION_LENGTH__+0x700141> + c8a: 99 e5 ldi r25, 0x59 ; 89 + c8c: 90 93 42 01 sts 0x0142, r25 ; 0x800142 <__TEXT_REGION_LENGTH__+0x700142> + c90: 32 e0 ldi r19, 0x02 ; 2 + c92: 30 93 43 01 sts 0x0143, r19 ; 0x800143 <__TEXT_REGION_LENGTH__+0x700143> + c96: a0 91 0b 20 lds r26, 0x200B ; 0x80200b + c9a: b0 91 0c 20 lds r27, 0x200C ; 0x80200c + c9e: a0 93 44 01 sts 0x0144, r26 ; 0x800144 <__TEXT_REGION_LENGTH__+0x700144> + ca2: b0 93 45 01 sts 0x0145, r27 ; 0x800145 <__TEXT_REGION_LENGTH__+0x700145> + ca6: ab ea ldi r26, 0xAB ; 171 + ca8: b3 e2 ldi r27, 0x23 ; 35 + caa: a0 93 48 01 sts 0x0148, r26 ; 0x800148 <__TEXT_REGION_LENGTH__+0x700148> + cae: b0 93 49 01 sts 0x0149, r27 ; 0x800149 <__TEXT_REGION_LENGTH__+0x700149> + cb2: 10 92 4a 01 sts 0x014A, r1 ; 0x80014a <__TEXT_REGION_LENGTH__+0x70014a> + cb6: 9b e3 ldi r25, 0x3B ; 59 + cb8: 90 93 4c 01 sts 0x014C, r25 ; 0x80014c <__TEXT_REGION_LENGTH__+0x70014c> + cbc: 93 e0 ldi r25, 0x03 ; 3 + cbe: 90 93 4d 01 sts 0x014D, r25 ; 0x80014d <__TEXT_REGION_LENGTH__+0x70014d> + cc2: 10 92 4e 01 sts 0x014E, r1 ; 0x80014e <__TEXT_REGION_LENGTH__+0x70014e> + cc6: 20 81 ld r18, Z + cc8: 20 68 ori r18, 0x80 ; 128 + cca: 20 83 st Z, r18 + ccc: 88 a3 std Y+32, r24 ; 0x20 + cce: 99 a3 std Y+33, r25 ; 0x21 + cd0: 25 e9 ldi r18, 0x95 ; 149 + cd2: 2a a3 std Y+34, r18 ; 0x22 + cd4: 4b a3 std Y+35, r20 ; 0x23 + cd6: 4e ee ldi r20, 0xEE ; 238 + cd8: 52 e0 ldi r21, 0x02 ; 2 + cda: 4c a3 std Y+36, r20 ; 0x24 + cdc: 5d a3 std Y+37, r21 ; 0x25 + cde: 78 a7 std Y+40, r23 ; 0x28 + ce0: 69 a7 std Y+41, r22 ; 0x29 + ce2: 1a a6 std Y+42, r1 ; 0x2a + ce4: 6a eb ldi r22, 0xBA ; 186 + ce6: 78 e2 ldi r23, 0x28 ; 40 + ce8: 6c a7 std Y+44, r22 ; 0x2c + cea: 7d a7 std Y+45, r23 ; 0x2d + cec: 1e a6 std Y+46, r1 ; 0x2e + cee: 88 8b std Y+16, r24 ; 0x10 + cf0: 99 8b std Y+17, r25 ; 0x11 + cf2: 2a 8b std Y+18, r18 ; 0x12 + cf4: 90 e1 ldi r25, 0x10 ; 16 + cf6: 9b 8b std Y+19, r25 ; 0x13 + cf8: 4c 8b std Y+20, r20 ; 0x14 + cfa: 5d 8b std Y+21, r21 ; 0x15 + cfc: 88 8f std Y+24, r24 ; 0x18 + cfe: 39 8f std Y+25, r19 ; 0x19 + d00: 1a 8e std Y+26, r1 ; 0x1a + d02: 8c ec ldi r24, 0xCC ; 204 + d04: 95 e2 ldi r25, 0x25 ; 37 + d06: 8c 8f std Y+28, r24 ; 0x1c + d08: 9d 8f std Y+29, r25 ; 0x1d + d0a: 1e 8e std Y+30, r1 ; 0x1e + d0c: 68 ec ldi r22, 0xC8 ; 200 + d0e: 70 e0 ldi r23, 0x00 ; 0 + d10: 84 ef ldi r24, 0xF4 ; 244 + d12: 91 e0 ldi r25, 0x01 ; 1 + d14: e1 dc rcall .-1598 ; 0x6d8 + d16: 88 ec ldi r24, 0xC8 ; 200 + d18: 90 e0 ldi r25, 0x00 ; 0 + d1a: 80 93 07 20 sts 0x2007, r24 ; 0x802007 + d1e: 90 93 08 20 sts 0x2008, r25 ; 0x802008 + d22: 10 93 06 20 sts 0x2006, r17 ; 0x802006 + d26: 88 a1 ldd r24, Y+32 ; 0x20 + d28: 80 68 ori r24, 0x80 ; 128 + d2a: 88 a3 std Y+32, r24 ; 0x20 + d2c: 88 89 ldd r24, Y+16 ; 0x10 + d2e: 80 68 ori r24, 0x80 ; 128 + d30: 88 8b std Y+16, r24 ; 0x10 + d32: df 91 pop r29 + d34: cf 91 pop r28 + d36: 1f 91 pop r17 + d38: 08 95 ret -00000d8c : - d8c: 1f 93 push r17 - d8e: cf 93 push r28 - d90: df 93 push r29 - d92: 12 e0 ldi r17, 0x02 ; 2 - d94: 10 93 09 20 sts 0x2009, r17 ; 0x802009 - d98: db de rcall .-586 ; 0xb50 - d9a: c0 e0 ldi r28, 0x00 ; 0 - d9c: d1 e0 ldi r29, 0x01 ; 1 - d9e: 1e aa std Y+54, r1 ; 0x36 - da0: 84 e2 ldi r24, 0x24 ; 36 - da2: 88 ab std Y+48, r24 ; 0x30 - da4: 19 aa std Y+49, r1 ; 0x31 - da6: 39 e5 ldi r19, 0x59 ; 89 - da8: 3a ab std Y+50, r19 ; 0x32 - daa: 1b ab std Y+51, r17 ; 0x33 - dac: 40 91 0b 20 lds r20, 0x200B ; 0x80200b - db0: 50 91 0c 20 lds r21, 0x200C ; 0x80200c - db4: 4c ab std Y+52, r20 ; 0x34 - db6: 5d ab std Y+53, r21 ; 0x35 - db8: 4b ea ldi r20, 0xAB ; 171 - dba: 53 e2 ldi r21, 0x23 ; 35 - dbc: 48 af std Y+56, r20 ; 0x38 - dbe: 59 af std Y+57, r21 ; 0x39 - dc0: 1a ae std Y+58, r1 ; 0x3a - dc2: 9b e3 ldi r25, 0x3B ; 59 - dc4: 9c af std Y+60, r25 ; 0x3c - dc6: 93 e0 ldi r25, 0x03 ; 3 - dc8: 90 93 3d 01 sts 0x013D, r25 ; 0x80013d <__TEXT_REGION_LENGTH__+0x70013d> - dcc: 10 92 3e 01 sts 0x013E, r1 ; 0x80013e <__TEXT_REGION_LENGTH__+0x70013e> - dd0: 28 a9 ldd r18, Y+48 ; 0x30 - dd2: 20 68 ori r18, 0x80 ; 128 - dd4: 28 ab std Y+48, r18 ; 0x30 - dd6: 10 92 46 01 sts 0x0146, r1 ; 0x800146 <__TEXT_REGION_LENGTH__+0x700146> - dda: e0 e4 ldi r30, 0x40 ; 64 - ddc: f1 e0 ldi r31, 0x01 ; 1 - dde: 80 83 st Z, r24 - de0: 10 92 41 01 sts 0x0141, r1 ; 0x800141 <__TEXT_REGION_LENGTH__+0x700141> - de4: 30 93 42 01 sts 0x0142, r19 ; 0x800142 <__TEXT_REGION_LENGTH__+0x700142> - de8: 90 93 43 01 sts 0x0143, r25 ; 0x800143 <__TEXT_REGION_LENGTH__+0x700143> - dec: 20 91 0d 20 lds r18, 0x200D ; 0x80200d - df0: 30 91 0e 20 lds r19, 0x200E ; 0x80200e - df4: 20 93 44 01 sts 0x0144, r18 ; 0x800144 <__TEXT_REGION_LENGTH__+0x700144> - df8: 30 93 45 01 sts 0x0145, r19 ; 0x800145 <__TEXT_REGION_LENGTH__+0x700145> - dfc: 2a e9 ldi r18, 0x9A ; 154 - dfe: 31 e2 ldi r19, 0x21 ; 33 - e00: 20 93 48 01 sts 0x0148, r18 ; 0x800148 <__TEXT_REGION_LENGTH__+0x700148> - e04: 30 93 49 01 sts 0x0149, r19 ; 0x800149 <__TEXT_REGION_LENGTH__+0x700149> - e08: 10 92 4a 01 sts 0x014A, r1 ; 0x80014a <__TEXT_REGION_LENGTH__+0x70014a> - e0c: 29 e3 ldi r18, 0x39 ; 57 - e0e: 20 93 4c 01 sts 0x014C, r18 ; 0x80014c <__TEXT_REGION_LENGTH__+0x70014c> - e12: 90 93 4d 01 sts 0x014D, r25 ; 0x80014d <__TEXT_REGION_LENGTH__+0x70014d> - e16: 10 92 4e 01 sts 0x014E, r1 ; 0x80014e <__TEXT_REGION_LENGTH__+0x70014e> - e1a: 90 81 ld r25, Z - e1c: 90 68 ori r25, 0x80 ; 128 - e1e: 90 83 st Z, r25 - e20: 18 8a std Y+16, r1 ; 0x10 - e22: 90 e4 ldi r25, 0x40 ; 64 - e24: 98 8b std Y+16, r25 ; 0x10 - e26: 88 8b std Y+16, r24 ; 0x10 - e28: 19 8a std Y+17, r1 ; 0x11 - e2a: 45 e9 ldi r20, 0x95 ; 149 - e2c: 4a 8b std Y+18, r20 ; 0x12 - e2e: 90 e1 ldi r25, 0x10 ; 16 - e30: 9b 8b std Y+19, r25 ; 0x13 - e32: 2e ee ldi r18, 0xEE ; 238 - e34: 32 e0 ldi r19, 0x02 ; 2 - e36: 2c 8b std Y+20, r18 ; 0x14 - e38: 3d 8b std Y+21, r19 ; 0x15 - e3a: 88 8f std Y+24, r24 ; 0x18 - e3c: 19 8f std Y+25, r17 ; 0x19 - e3e: 1a 8e std Y+26, r1 ; 0x1a - e40: 6c ec ldi r22, 0xCC ; 204 - e42: 75 e2 ldi r23, 0x25 ; 37 - e44: 6c 8f std Y+28, r22 ; 0x1c - e46: 7d 8f std Y+29, r23 ; 0x1d - e48: 1e 8e std Y+30, r1 ; 0x1e - e4a: 88 a3 std Y+32, r24 ; 0x20 - e4c: 19 a2 std Y+33, r1 ; 0x21 - e4e: 4a a3 std Y+34, r20 ; 0x22 - e50: 9b a3 std Y+35, r25 ; 0x23 - e52: 2c a3 std Y+36, r18 ; 0x24 - e54: 3d a3 std Y+37, r19 ; 0x25 - e56: 84 e3 ldi r24, 0x34 ; 52 - e58: 88 a7 std Y+40, r24 ; 0x28 - e5a: 19 a7 std Y+41, r17 ; 0x29 - e5c: 1a a6 std Y+42, r1 ; 0x2a - e5e: 8a eb ldi r24, 0xBA ; 186 - e60: 98 e2 ldi r25, 0x28 ; 40 - e62: 8c a7 std Y+44, r24 ; 0x2c - e64: 9d a7 std Y+45, r25 ; 0x2d - e66: 1e a6 std Y+46, r1 ; 0x2e - e68: 68 ec ldi r22, 0xC8 ; 200 - e6a: 70 e0 ldi r23, 0x00 ; 0 - e6c: 84 ef ldi r24, 0xF4 ; 244 - e6e: 91 e0 ldi r25, 0x01 ; 1 - e70: 33 dc rcall .-1946 ; 0x6d8 - e72: 88 ec ldi r24, 0xC8 ; 200 - e74: 90 e0 ldi r25, 0x00 ; 0 - e76: 80 93 07 20 sts 0x2007, r24 ; 0x802007 - e7a: 90 93 08 20 sts 0x2008, r25 ; 0x802008 - e7e: 81 e0 ldi r24, 0x01 ; 1 - e80: 80 93 06 20 sts 0x2006, r24 ; 0x802006 - e84: 88 89 ldd r24, Y+16 ; 0x10 - e86: 80 68 ori r24, 0x80 ; 128 - e88: 88 8b std Y+16, r24 ; 0x10 - e8a: 88 a1 ldd r24, Y+32 ; 0x20 - e8c: 80 68 ori r24, 0x80 ; 128 - e8e: 88 a3 std Y+32, r24 ; 0x20 - e90: df 91 pop r29 - e92: cf 91 pop r28 - e94: 1f 91 pop r17 - e96: 08 95 ret +00000d3a : + d3a: 1f 93 push r17 + d3c: cf 93 push r28 + d3e: df 93 push r29 + d40: 12 e0 ldi r17, 0x02 ; 2 + d42: 10 93 09 20 sts 0x2009, r17 ; 0x802009 + d46: db de rcall .-586 ; 0xafe + d48: c0 e0 ldi r28, 0x00 ; 0 + d4a: d1 e0 ldi r29, 0x01 ; 1 + d4c: 1e aa std Y+54, r1 ; 0x36 + d4e: 84 e2 ldi r24, 0x24 ; 36 + d50: 88 ab std Y+48, r24 ; 0x30 + d52: 19 aa std Y+49, r1 ; 0x31 + d54: 39 e5 ldi r19, 0x59 ; 89 + d56: 3a ab std Y+50, r19 ; 0x32 + d58: 1b ab std Y+51, r17 ; 0x33 + d5a: 40 91 0b 20 lds r20, 0x200B ; 0x80200b + d5e: 50 91 0c 20 lds r21, 0x200C ; 0x80200c + d62: 4c ab std Y+52, r20 ; 0x34 + d64: 5d ab std Y+53, r21 ; 0x35 + d66: 4b ea ldi r20, 0xAB ; 171 + d68: 53 e2 ldi r21, 0x23 ; 35 + d6a: 48 af std Y+56, r20 ; 0x38 + d6c: 59 af std Y+57, r21 ; 0x39 + d6e: 1a ae std Y+58, r1 ; 0x3a + d70: 9b e3 ldi r25, 0x3B ; 59 + d72: 9c af std Y+60, r25 ; 0x3c + d74: 93 e0 ldi r25, 0x03 ; 3 + d76: 90 93 3d 01 sts 0x013D, r25 ; 0x80013d <__TEXT_REGION_LENGTH__+0x70013d> + d7a: 10 92 3e 01 sts 0x013E, r1 ; 0x80013e <__TEXT_REGION_LENGTH__+0x70013e> + d7e: 28 a9 ldd r18, Y+48 ; 0x30 + d80: 20 68 ori r18, 0x80 ; 128 + d82: 28 ab std Y+48, r18 ; 0x30 + d84: 10 92 46 01 sts 0x0146, r1 ; 0x800146 <__TEXT_REGION_LENGTH__+0x700146> + d88: e0 e4 ldi r30, 0x40 ; 64 + d8a: f1 e0 ldi r31, 0x01 ; 1 + d8c: 80 83 st Z, r24 + d8e: 10 92 41 01 sts 0x0141, r1 ; 0x800141 <__TEXT_REGION_LENGTH__+0x700141> + d92: 30 93 42 01 sts 0x0142, r19 ; 0x800142 <__TEXT_REGION_LENGTH__+0x700142> + d96: 90 93 43 01 sts 0x0143, r25 ; 0x800143 <__TEXT_REGION_LENGTH__+0x700143> + d9a: 20 91 0d 20 lds r18, 0x200D ; 0x80200d + d9e: 30 91 0e 20 lds r19, 0x200E ; 0x80200e + da2: 20 93 44 01 sts 0x0144, r18 ; 0x800144 <__TEXT_REGION_LENGTH__+0x700144> + da6: 30 93 45 01 sts 0x0145, r19 ; 0x800145 <__TEXT_REGION_LENGTH__+0x700145> + daa: 2a e9 ldi r18, 0x9A ; 154 + dac: 31 e2 ldi r19, 0x21 ; 33 + dae: 20 93 48 01 sts 0x0148, r18 ; 0x800148 <__TEXT_REGION_LENGTH__+0x700148> + db2: 30 93 49 01 sts 0x0149, r19 ; 0x800149 <__TEXT_REGION_LENGTH__+0x700149> + db6: 10 92 4a 01 sts 0x014A, r1 ; 0x80014a <__TEXT_REGION_LENGTH__+0x70014a> + dba: 29 e3 ldi r18, 0x39 ; 57 + dbc: 20 93 4c 01 sts 0x014C, r18 ; 0x80014c <__TEXT_REGION_LENGTH__+0x70014c> + dc0: 90 93 4d 01 sts 0x014D, r25 ; 0x80014d <__TEXT_REGION_LENGTH__+0x70014d> + dc4: 10 92 4e 01 sts 0x014E, r1 ; 0x80014e <__TEXT_REGION_LENGTH__+0x70014e> + dc8: 90 81 ld r25, Z + dca: 90 68 ori r25, 0x80 ; 128 + dcc: 90 83 st Z, r25 + dce: 18 8a std Y+16, r1 ; 0x10 + dd0: 90 e4 ldi r25, 0x40 ; 64 + dd2: 98 8b std Y+16, r25 ; 0x10 + dd4: 88 8b std Y+16, r24 ; 0x10 + dd6: 19 8a std Y+17, r1 ; 0x11 + dd8: 45 e9 ldi r20, 0x95 ; 149 + dda: 4a 8b std Y+18, r20 ; 0x12 + ddc: 90 e1 ldi r25, 0x10 ; 16 + dde: 9b 8b std Y+19, r25 ; 0x13 + de0: 2e ee ldi r18, 0xEE ; 238 + de2: 32 e0 ldi r19, 0x02 ; 2 + de4: 2c 8b std Y+20, r18 ; 0x14 + de6: 3d 8b std Y+21, r19 ; 0x15 + de8: 88 8f std Y+24, r24 ; 0x18 + dea: 19 8f std Y+25, r17 ; 0x19 + dec: 1a 8e std Y+26, r1 ; 0x1a + dee: 6c ec ldi r22, 0xCC ; 204 + df0: 75 e2 ldi r23, 0x25 ; 37 + df2: 6c 8f std Y+28, r22 ; 0x1c + df4: 7d 8f std Y+29, r23 ; 0x1d + df6: 1e 8e std Y+30, r1 ; 0x1e + df8: 88 a3 std Y+32, r24 ; 0x20 + dfa: 19 a2 std Y+33, r1 ; 0x21 + dfc: 4a a3 std Y+34, r20 ; 0x22 + dfe: 9b a3 std Y+35, r25 ; 0x23 + e00: 2c a3 std Y+36, r18 ; 0x24 + e02: 3d a3 std Y+37, r19 ; 0x25 + e04: 84 e3 ldi r24, 0x34 ; 52 + e06: 88 a7 std Y+40, r24 ; 0x28 + e08: 19 a7 std Y+41, r17 ; 0x29 + e0a: 1a a6 std Y+42, r1 ; 0x2a + e0c: 8a eb ldi r24, 0xBA ; 186 + e0e: 98 e2 ldi r25, 0x28 ; 40 + e10: 8c a7 std Y+44, r24 ; 0x2c + e12: 9d a7 std Y+45, r25 ; 0x2d + e14: 1e a6 std Y+46, r1 ; 0x2e + e16: 68 ec ldi r22, 0xC8 ; 200 + e18: 70 e0 ldi r23, 0x00 ; 0 + e1a: 84 ef ldi r24, 0xF4 ; 244 + e1c: 91 e0 ldi r25, 0x01 ; 1 + e1e: 5c dc rcall .-1864 ; 0x6d8 + e20: 88 ec ldi r24, 0xC8 ; 200 + e22: 90 e0 ldi r25, 0x00 ; 0 + e24: 80 93 07 20 sts 0x2007, r24 ; 0x802007 + e28: 90 93 08 20 sts 0x2008, r25 ; 0x802008 + e2c: 81 e0 ldi r24, 0x01 ; 1 + e2e: 80 93 06 20 sts 0x2006, r24 ; 0x802006 + e32: 88 89 ldd r24, Y+16 ; 0x10 + e34: 80 68 ori r24, 0x80 ; 128 + e36: 88 8b std Y+16, r24 ; 0x10 + e38: 88 a1 ldd r24, Y+32 ; 0x20 + e3a: 80 68 ori r24, 0x80 ; 128 + e3c: 88 a3 std Y+32, r24 ; 0x20 + e3e: df 91 pop r29 + e40: cf 91 pop r28 + e42: 1f 91 pop r17 + e44: 08 95 ret -00000e98 : - e98: 1f 93 push r17 - e9a: cf 93 push r28 - e9c: df 93 push r29 - e9e: 13 e0 ldi r17, 0x03 ; 3 - ea0: 10 93 09 20 sts 0x2009, r17 ; 0x802009 - ea4: 55 de rcall .-854 ; 0xb50 - ea6: c0 e0 ldi r28, 0x00 ; 0 - ea8: d1 e0 ldi r29, 0x01 ; 1 - eaa: 18 a2 std Y+32, r1 ; 0x20 - eac: 50 e4 ldi r21, 0x40 ; 64 - eae: 58 a3 std Y+32, r21 ; 0x20 - eb0: 84 e0 ldi r24, 0x04 ; 4 - eb2: 88 a3 std Y+32, r24 ; 0x20 - eb4: 19 a2 std Y+33, r1 ; 0x21 - eb6: 1a a2 std Y+34, r1 ; 0x22 - eb8: 4b e4 ldi r20, 0x4B ; 75 - eba: 4b a3 std Y+35, r20 ; 0x23 - ebc: 1c a2 std Y+36, r1 ; 0x24 - ebe: 1d a2 std Y+37, r1 ; 0x25 - ec0: 1e a2 std Y+38, r1 ; 0x26 - ec2: 8a e0 ldi r24, 0x0A ; 10 - ec4: 90 e2 ldi r25, 0x20 ; 32 - ec6: 88 a7 std Y+40, r24 ; 0x28 - ec8: 99 a7 std Y+41, r25 ; 0x29 - eca: 1a a6 std Y+42, r1 ; 0x2a - ecc: 30 ea ldi r19, 0xA0 ; 160 - ece: 3c a7 std Y+44, r19 ; 0x2c - ed0: 28 e0 ldi r18, 0x08 ; 8 - ed2: 2d a7 std Y+45, r18 ; 0x2d - ed4: 1e a6 std Y+46, r1 ; 0x2e - ed6: 88 a1 ldd r24, Y+32 ; 0x20 - ed8: 80 6a ori r24, 0xA0 ; 160 - eda: 88 a3 std Y+32, r24 ; 0x20 - edc: 85 e5 ldi r24, 0x55 ; 85 - ede: 80 93 a0 08 sts 0x08A0, r24 ; 0x8008a0 <__TEXT_REGION_LENGTH__+0x7008a0> - ee2: 1e aa std Y+54, r1 ; 0x36 - ee4: 84 e2 ldi r24, 0x24 ; 36 - ee6: 88 ab std Y+48, r24 ; 0x30 - ee8: 19 aa std Y+49, r1 ; 0x31 - eea: 69 e5 ldi r22, 0x59 ; 89 - eec: 6a ab std Y+50, r22 ; 0x32 - eee: 1b ab std Y+51, r17 ; 0x33 - ef0: e0 91 0d 20 lds r30, 0x200D ; 0x80200d - ef4: f0 91 0e 20 lds r31, 0x200E ; 0x80200e - ef8: ec ab std Y+52, r30 ; 0x34 - efa: fd ab std Y+53, r31 ; 0x35 - efc: ea e9 ldi r30, 0x9A ; 154 - efe: f1 e2 ldi r31, 0x21 ; 33 - f00: e8 af std Y+56, r30 ; 0x38 - f02: f9 af std Y+57, r31 ; 0x39 - f04: 1a ae std Y+58, r1 ; 0x3a - f06: 99 e3 ldi r25, 0x39 ; 57 - f08: 9c af std Y+60, r25 ; 0x3c - f0a: 10 93 3d 01 sts 0x013D, r17 ; 0x80013d <__TEXT_REGION_LENGTH__+0x70013d> - f0e: 10 92 3e 01 sts 0x013E, r1 ; 0x80013e <__TEXT_REGION_LENGTH__+0x70013e> - f12: 98 a9 ldd r25, Y+48 ; 0x30 - f14: 90 68 ori r25, 0x80 ; 128 - f16: 98 ab std Y+48, r25 ; 0x30 - f18: 10 92 46 01 sts 0x0146, r1 ; 0x800146 <__TEXT_REGION_LENGTH__+0x700146> - f1c: e0 e4 ldi r30, 0x40 ; 64 - f1e: f1 e0 ldi r31, 0x01 ; 1 - f20: 80 83 st Z, r24 - f22: 10 92 41 01 sts 0x0141, r1 ; 0x800141 <__TEXT_REGION_LENGTH__+0x700141> - f26: 60 93 42 01 sts 0x0142, r22 ; 0x800142 <__TEXT_REGION_LENGTH__+0x700142> - f2a: 92 e0 ldi r25, 0x02 ; 2 - f2c: 90 93 43 01 sts 0x0143, r25 ; 0x800143 <__TEXT_REGION_LENGTH__+0x700143> - f30: 60 91 0b 20 lds r22, 0x200B ; 0x80200b - f34: 70 91 0c 20 lds r23, 0x200C ; 0x80200c - f38: 60 93 44 01 sts 0x0144, r22 ; 0x800144 <__TEXT_REGION_LENGTH__+0x700144> - f3c: 70 93 45 01 sts 0x0145, r23 ; 0x800145 <__TEXT_REGION_LENGTH__+0x700145> - f40: 6b ea ldi r22, 0xAB ; 171 - f42: 73 e2 ldi r23, 0x23 ; 35 - f44: 60 93 48 01 sts 0x0148, r22 ; 0x800148 <__TEXT_REGION_LENGTH__+0x700148> - f48: 70 93 49 01 sts 0x0149, r23 ; 0x800149 <__TEXT_REGION_LENGTH__+0x700149> - f4c: 10 92 4a 01 sts 0x014A, r1 ; 0x80014a <__TEXT_REGION_LENGTH__+0x70014a> - f50: 9b e3 ldi r25, 0x3B ; 59 - f52: 90 93 4c 01 sts 0x014C, r25 ; 0x80014c <__TEXT_REGION_LENGTH__+0x70014c> - f56: 10 93 4d 01 sts 0x014D, r17 ; 0x80014d <__TEXT_REGION_LENGTH__+0x70014d> - f5a: 10 92 4e 01 sts 0x014E, r1 ; 0x80014e <__TEXT_REGION_LENGTH__+0x70014e> - f5e: 90 81 ld r25, Z - f60: 90 68 ori r25, 0x80 ; 128 - f62: 90 83 st Z, r25 - f64: 18 8a std Y+16, r1 ; 0x10 - f66: 58 8b std Y+16, r21 ; 0x10 - f68: 88 8b std Y+16, r24 ; 0x10 - f6a: 19 8a std Y+17, r1 ; 0x11 - f6c: 85 e9 ldi r24, 0x95 ; 149 - f6e: 8a 8b std Y+18, r24 ; 0x12 - f70: 4b 8b std Y+19, r20 ; 0x13 - f72: 8e ee ldi r24, 0xEE ; 238 - f74: 92 e0 ldi r25, 0x02 ; 2 - f76: 8c 8b std Y+20, r24 ; 0x14 - f78: 9d 8b std Y+21, r25 ; 0x15 - f7a: 38 8f std Y+24, r19 ; 0x18 - f7c: 29 8f std Y+25, r18 ; 0x19 - f7e: 1a 8e std Y+26, r1 ; 0x1a - f80: 8c ec ldi r24, 0xCC ; 204 - f82: 95 e2 ldi r25, 0x25 ; 37 - f84: 8c 8f std Y+28, r24 ; 0x1c - f86: 9d 8f std Y+29, r25 ; 0x1d - f88: 1e 8e std Y+30, r1 ; 0x1e - f8a: 68 ec ldi r22, 0xC8 ; 200 - f8c: 70 e0 ldi r23, 0x00 ; 0 - f8e: 84 ef ldi r24, 0xF4 ; 244 - f90: 91 e0 ldi r25, 0x01 ; 1 - f92: a2 db rcall .-2236 ; 0x6d8 - f94: 88 ec ldi r24, 0xC8 ; 200 - f96: 90 e0 ldi r25, 0x00 ; 0 - f98: 80 93 07 20 sts 0x2007, r24 ; 0x802007 - f9c: 90 93 08 20 sts 0x2008, r25 ; 0x802008 - fa0: 81 e0 ldi r24, 0x01 ; 1 - fa2: 80 93 06 20 sts 0x2006, r24 ; 0x802006 - fa6: 88 89 ldd r24, Y+16 ; 0x10 - fa8: 80 68 ori r24, 0x80 ; 128 - faa: 88 8b std Y+16, r24 ; 0x10 - fac: df 91 pop r29 - fae: cf 91 pop r28 - fb0: 1f 91 pop r17 - fb2: 08 95 ret +00000e46 : + e46: 1f 93 push r17 + e48: cf 93 push r28 + e4a: df 93 push r29 + e4c: 13 e0 ldi r17, 0x03 ; 3 + e4e: 10 93 09 20 sts 0x2009, r17 ; 0x802009 + e52: 55 de rcall .-854 ; 0xafe + e54: c0 e0 ldi r28, 0x00 ; 0 + e56: d1 e0 ldi r29, 0x01 ; 1 + e58: 18 a2 std Y+32, r1 ; 0x20 + e5a: 50 e4 ldi r21, 0x40 ; 64 + e5c: 58 a3 std Y+32, r21 ; 0x20 + e5e: 84 e0 ldi r24, 0x04 ; 4 + e60: 88 a3 std Y+32, r24 ; 0x20 + e62: 19 a2 std Y+33, r1 ; 0x21 + e64: 1a a2 std Y+34, r1 ; 0x22 + e66: 4b e4 ldi r20, 0x4B ; 75 + e68: 4b a3 std Y+35, r20 ; 0x23 + e6a: 1c a2 std Y+36, r1 ; 0x24 + e6c: 1d a2 std Y+37, r1 ; 0x25 + e6e: 1e a2 std Y+38, r1 ; 0x26 + e70: 8a e0 ldi r24, 0x0A ; 10 + e72: 90 e2 ldi r25, 0x20 ; 32 + e74: 88 a7 std Y+40, r24 ; 0x28 + e76: 99 a7 std Y+41, r25 ; 0x29 + e78: 1a a6 std Y+42, r1 ; 0x2a + e7a: 30 ea ldi r19, 0xA0 ; 160 + e7c: 3c a7 std Y+44, r19 ; 0x2c + e7e: 28 e0 ldi r18, 0x08 ; 8 + e80: 2d a7 std Y+45, r18 ; 0x2d + e82: 1e a6 std Y+46, r1 ; 0x2e + e84: 88 a1 ldd r24, Y+32 ; 0x20 + e86: 80 6a ori r24, 0xA0 ; 160 + e88: 88 a3 std Y+32, r24 ; 0x20 + e8a: 85 e5 ldi r24, 0x55 ; 85 + e8c: 80 93 a0 08 sts 0x08A0, r24 ; 0x8008a0 <__TEXT_REGION_LENGTH__+0x7008a0> + e90: 1e aa std Y+54, r1 ; 0x36 + e92: 84 e2 ldi r24, 0x24 ; 36 + e94: 88 ab std Y+48, r24 ; 0x30 + e96: 19 aa std Y+49, r1 ; 0x31 + e98: 69 e5 ldi r22, 0x59 ; 89 + e9a: 6a ab std Y+50, r22 ; 0x32 + e9c: 1b ab std Y+51, r17 ; 0x33 + e9e: e0 91 0d 20 lds r30, 0x200D ; 0x80200d + ea2: f0 91 0e 20 lds r31, 0x200E ; 0x80200e + ea6: ec ab std Y+52, r30 ; 0x34 + ea8: fd ab std Y+53, r31 ; 0x35 + eaa: ea e9 ldi r30, 0x9A ; 154 + eac: f1 e2 ldi r31, 0x21 ; 33 + eae: e8 af std Y+56, r30 ; 0x38 + eb0: f9 af std Y+57, r31 ; 0x39 + eb2: 1a ae std Y+58, r1 ; 0x3a + eb4: 99 e3 ldi r25, 0x39 ; 57 + eb6: 9c af std Y+60, r25 ; 0x3c + eb8: 10 93 3d 01 sts 0x013D, r17 ; 0x80013d <__TEXT_REGION_LENGTH__+0x70013d> + ebc: 10 92 3e 01 sts 0x013E, r1 ; 0x80013e <__TEXT_REGION_LENGTH__+0x70013e> + ec0: 98 a9 ldd r25, Y+48 ; 0x30 + ec2: 90 68 ori r25, 0x80 ; 128 + ec4: 98 ab std Y+48, r25 ; 0x30 + ec6: 10 92 46 01 sts 0x0146, r1 ; 0x800146 <__TEXT_REGION_LENGTH__+0x700146> + eca: e0 e4 ldi r30, 0x40 ; 64 + ecc: f1 e0 ldi r31, 0x01 ; 1 + ece: 80 83 st Z, r24 + ed0: 10 92 41 01 sts 0x0141, r1 ; 0x800141 <__TEXT_REGION_LENGTH__+0x700141> + ed4: 60 93 42 01 sts 0x0142, r22 ; 0x800142 <__TEXT_REGION_LENGTH__+0x700142> + ed8: 92 e0 ldi r25, 0x02 ; 2 + eda: 90 93 43 01 sts 0x0143, r25 ; 0x800143 <__TEXT_REGION_LENGTH__+0x700143> + ede: 60 91 0b 20 lds r22, 0x200B ; 0x80200b + ee2: 70 91 0c 20 lds r23, 0x200C ; 0x80200c + ee6: 60 93 44 01 sts 0x0144, r22 ; 0x800144 <__TEXT_REGION_LENGTH__+0x700144> + eea: 70 93 45 01 sts 0x0145, r23 ; 0x800145 <__TEXT_REGION_LENGTH__+0x700145> + eee: 6b ea ldi r22, 0xAB ; 171 + ef0: 73 e2 ldi r23, 0x23 ; 35 + ef2: 60 93 48 01 sts 0x0148, r22 ; 0x800148 <__TEXT_REGION_LENGTH__+0x700148> + ef6: 70 93 49 01 sts 0x0149, r23 ; 0x800149 <__TEXT_REGION_LENGTH__+0x700149> + efa: 10 92 4a 01 sts 0x014A, r1 ; 0x80014a <__TEXT_REGION_LENGTH__+0x70014a> + efe: 9b e3 ldi r25, 0x3B ; 59 + f00: 90 93 4c 01 sts 0x014C, r25 ; 0x80014c <__TEXT_REGION_LENGTH__+0x70014c> + f04: 10 93 4d 01 sts 0x014D, r17 ; 0x80014d <__TEXT_REGION_LENGTH__+0x70014d> + f08: 10 92 4e 01 sts 0x014E, r1 ; 0x80014e <__TEXT_REGION_LENGTH__+0x70014e> + f0c: 90 81 ld r25, Z + f0e: 90 68 ori r25, 0x80 ; 128 + f10: 90 83 st Z, r25 + f12: 18 8a std Y+16, r1 ; 0x10 + f14: 58 8b std Y+16, r21 ; 0x10 + f16: 88 8b std Y+16, r24 ; 0x10 + f18: 19 8a std Y+17, r1 ; 0x11 + f1a: 85 e9 ldi r24, 0x95 ; 149 + f1c: 8a 8b std Y+18, r24 ; 0x12 + f1e: 4b 8b std Y+19, r20 ; 0x13 + f20: 8e ee ldi r24, 0xEE ; 238 + f22: 92 e0 ldi r25, 0x02 ; 2 + f24: 8c 8b std Y+20, r24 ; 0x14 + f26: 9d 8b std Y+21, r25 ; 0x15 + f28: 38 8f std Y+24, r19 ; 0x18 + f2a: 29 8f std Y+25, r18 ; 0x19 + f2c: 1a 8e std Y+26, r1 ; 0x1a + f2e: 8c ec ldi r24, 0xCC ; 204 + f30: 95 e2 ldi r25, 0x25 ; 37 + f32: 8c 8f std Y+28, r24 ; 0x1c + f34: 9d 8f std Y+29, r25 ; 0x1d + f36: 1e 8e std Y+30, r1 ; 0x1e + f38: 68 ec ldi r22, 0xC8 ; 200 + f3a: 70 e0 ldi r23, 0x00 ; 0 + f3c: 84 ef ldi r24, 0xF4 ; 244 + f3e: 91 e0 ldi r25, 0x01 ; 1 + f40: cb db rcall .-2154 ; 0x6d8 + f42: 88 ec ldi r24, 0xC8 ; 200 + f44: 90 e0 ldi r25, 0x00 ; 0 + f46: 80 93 07 20 sts 0x2007, r24 ; 0x802007 + f4a: 90 93 08 20 sts 0x2008, r25 ; 0x802008 + f4e: 81 e0 ldi r24, 0x01 ; 1 + f50: 80 93 06 20 sts 0x2006, r24 ; 0x802006 + f54: 88 89 ldd r24, Y+16 ; 0x10 + f56: 80 68 ori r24, 0x80 ; 128 + f58: 88 8b std Y+16, r24 ; 0x10 + f5a: df 91 pop r29 + f5c: cf 91 pop r28 + f5e: 1f 91 pop r17 + f60: 08 95 ret -00000fb4 : - fb4: 1f 93 push r17 - fb6: cf 93 push r28 - fb8: df 93 push r29 - fba: 14 e0 ldi r17, 0x04 ; 4 - fbc: 10 93 09 20 sts 0x2009, r17 ; 0x802009 - fc0: c7 dd rcall .-1138 ; 0xb50 - fc2: c0 e0 ldi r28, 0x00 ; 0 - fc4: d1 e0 ldi r29, 0x01 ; 1 - fc6: 18 aa std Y+48, r1 ; 0x30 - fc8: 80 e4 ldi r24, 0x40 ; 64 - fca: 88 ab std Y+48, r24 ; 0x30 - fcc: 18 ab std Y+48, r17 ; 0x30 - fce: 19 aa std Y+49, r1 ; 0x31 - fd0: 1a aa std Y+50, r1 ; 0x32 - fd2: 3b e4 ldi r19, 0x4B ; 75 - fd4: 3b ab std Y+51, r19 ; 0x33 - fd6: 1c aa std Y+52, r1 ; 0x34 - fd8: 1d aa std Y+53, r1 ; 0x35 - fda: 1e aa std Y+54, r1 ; 0x36 - fdc: 8a e0 ldi r24, 0x0A ; 10 - fde: 90 e2 ldi r25, 0x20 ; 32 - fe0: 88 af std Y+56, r24 ; 0x38 - fe2: 99 af std Y+57, r25 ; 0x39 - fe4: 1a ae std Y+58, r1 ; 0x3a - fe6: 50 ea ldi r21, 0xA0 ; 160 - fe8: 5c af std Y+60, r21 ; 0x3c - fea: 88 e0 ldi r24, 0x08 ; 8 - fec: 80 93 3d 01 sts 0x013D, r24 ; 0x80013d <__TEXT_REGION_LENGTH__+0x70013d> - ff0: 10 92 3e 01 sts 0x013E, r1 ; 0x80013e <__TEXT_REGION_LENGTH__+0x70013e> - ff4: 98 a9 ldd r25, Y+48 ; 0x30 - ff6: 90 6a ori r25, 0xA0 ; 160 - ff8: 98 ab std Y+48, r25 ; 0x30 - ffa: 95 e5 ldi r25, 0x55 ; 85 - ffc: 90 93 a0 08 sts 0x08A0, r25 ; 0x8008a0 <__TEXT_REGION_LENGTH__+0x7008a0> - 1000: 10 92 46 01 sts 0x0146, r1 ; 0x800146 <__TEXT_REGION_LENGTH__+0x700146> - 1004: e0 e4 ldi r30, 0x40 ; 64 - 1006: f1 e0 ldi r31, 0x01 ; 1 - 1008: 94 e2 ldi r25, 0x24 ; 36 - 100a: 90 83 st Z, r25 - 100c: 10 92 41 01 sts 0x0141, r1 ; 0x800141 <__TEXT_REGION_LENGTH__+0x700141> - 1010: 29 e5 ldi r18, 0x59 ; 89 - 1012: 20 93 42 01 sts 0x0142, r18 ; 0x800142 <__TEXT_REGION_LENGTH__+0x700142> - 1016: 22 e0 ldi r18, 0x02 ; 2 - 1018: 20 93 43 01 sts 0x0143, r18 ; 0x800143 <__TEXT_REGION_LENGTH__+0x700143> - 101c: 60 91 0b 20 lds r22, 0x200B ; 0x80200b - 1020: 70 91 0c 20 lds r23, 0x200C ; 0x80200c - 1024: 60 93 44 01 sts 0x0144, r22 ; 0x800144 <__TEXT_REGION_LENGTH__+0x700144> - 1028: 70 93 45 01 sts 0x0145, r23 ; 0x800145 <__TEXT_REGION_LENGTH__+0x700145> - 102c: 6b ea ldi r22, 0xAB ; 171 - 102e: 73 e2 ldi r23, 0x23 ; 35 - 1030: 60 93 48 01 sts 0x0148, r22 ; 0x800148 <__TEXT_REGION_LENGTH__+0x700148> - 1034: 70 93 49 01 sts 0x0149, r23 ; 0x800149 <__TEXT_REGION_LENGTH__+0x700149> - 1038: 10 92 4a 01 sts 0x014A, r1 ; 0x80014a <__TEXT_REGION_LENGTH__+0x70014a> - 103c: 2b e3 ldi r18, 0x3B ; 59 - 103e: 20 93 4c 01 sts 0x014C, r18 ; 0x80014c <__TEXT_REGION_LENGTH__+0x70014c> - 1042: 23 e0 ldi r18, 0x03 ; 3 - 1044: 20 93 4d 01 sts 0x014D, r18 ; 0x80014d <__TEXT_REGION_LENGTH__+0x70014d> - 1048: 10 92 4e 01 sts 0x014E, r1 ; 0x80014e <__TEXT_REGION_LENGTH__+0x70014e> - 104c: 20 81 ld r18, Z - 104e: 20 68 ori r18, 0x80 ; 128 - 1050: 20 83 st Z, r18 - 1052: 98 8b std Y+16, r25 ; 0x10 - 1054: 19 8a std Y+17, r1 ; 0x11 - 1056: 45 e9 ldi r20, 0x95 ; 149 - 1058: 4a 8b std Y+18, r20 ; 0x12 - 105a: 3b 8b std Y+19, r19 ; 0x13 - 105c: 2e ee ldi r18, 0xEE ; 238 - 105e: 32 e0 ldi r19, 0x02 ; 2 - 1060: 2c 8b std Y+20, r18 ; 0x14 - 1062: 3d 8b std Y+21, r19 ; 0x15 - 1064: 58 8f std Y+24, r21 ; 0x18 - 1066: 89 8f std Y+25, r24 ; 0x19 - 1068: 1a 8e std Y+26, r1 ; 0x1a - 106a: 6c ec ldi r22, 0xCC ; 204 - 106c: 75 e2 ldi r23, 0x25 ; 37 - 106e: 6c 8f std Y+28, r22 ; 0x1c - 1070: 7d 8f std Y+29, r23 ; 0x1d - 1072: 1e 8e std Y+30, r1 ; 0x1e - 1074: 98 a3 std Y+32, r25 ; 0x20 - 1076: 19 a2 std Y+33, r1 ; 0x21 - 1078: 4a a3 std Y+34, r20 ; 0x22 - 107a: 9a e4 ldi r25, 0x4A ; 74 - 107c: 9b a3 std Y+35, r25 ; 0x23 - 107e: 2c a3 std Y+36, r18 ; 0x24 - 1080: 3d a3 std Y+37, r19 ; 0x25 - 1082: 93 ec ldi r25, 0xC3 ; 195 - 1084: 98 a7 std Y+40, r25 ; 0x28 - 1086: 89 a7 std Y+41, r24 ; 0x29 - 1088: 1a a6 std Y+42, r1 ; 0x2a - 108a: 8a eb ldi r24, 0xBA ; 186 - 108c: 98 e2 ldi r25, 0x28 ; 40 - 108e: 8c a7 std Y+44, r24 ; 0x2c - 1090: 9d a7 std Y+45, r25 ; 0x2d - 1092: 1e a6 std Y+46, r1 ; 0x2e - 1094: 68 ec ldi r22, 0xC8 ; 200 - 1096: 70 e0 ldi r23, 0x00 ; 0 - 1098: 84 ef ldi r24, 0xF4 ; 244 - 109a: 91 e0 ldi r25, 0x01 ; 1 - 109c: 1d db rcall .-2502 ; 0x6d8 - 109e: 88 ec ldi r24, 0xC8 ; 200 - 10a0: 90 e0 ldi r25, 0x00 ; 0 - 10a2: 80 93 07 20 sts 0x2007, r24 ; 0x802007 - 10a6: 90 93 08 20 sts 0x2008, r25 ; 0x802008 - 10aa: 81 e0 ldi r24, 0x01 ; 1 - 10ac: 80 93 06 20 sts 0x2006, r24 ; 0x802006 - 10b0: 88 89 ldd r24, Y+16 ; 0x10 - 10b2: 80 68 ori r24, 0x80 ; 128 - 10b4: 88 8b std Y+16, r24 ; 0x10 - 10b6: 88 a1 ldd r24, Y+32 ; 0x20 - 10b8: 80 68 ori r24, 0x80 ; 128 - 10ba: 88 a3 std Y+32, r24 ; 0x20 - 10bc: df 91 pop r29 - 10be: cf 91 pop r28 - 10c0: 1f 91 pop r17 - 10c2: 08 95 ret +00000f62 : + f62: 1f 93 push r17 + f64: cf 93 push r28 + f66: df 93 push r29 + f68: 14 e0 ldi r17, 0x04 ; 4 + f6a: 10 93 09 20 sts 0x2009, r17 ; 0x802009 + f6e: c7 dd rcall .-1138 ; 0xafe + f70: c0 e0 ldi r28, 0x00 ; 0 + f72: d1 e0 ldi r29, 0x01 ; 1 + f74: 18 aa std Y+48, r1 ; 0x30 + f76: 80 e4 ldi r24, 0x40 ; 64 + f78: 88 ab std Y+48, r24 ; 0x30 + f7a: 18 ab std Y+48, r17 ; 0x30 + f7c: 19 aa std Y+49, r1 ; 0x31 + f7e: 1a aa std Y+50, r1 ; 0x32 + f80: 3b e4 ldi r19, 0x4B ; 75 + f82: 3b ab std Y+51, r19 ; 0x33 + f84: 1c aa std Y+52, r1 ; 0x34 + f86: 1d aa std Y+53, r1 ; 0x35 + f88: 1e aa std Y+54, r1 ; 0x36 + f8a: 8a e0 ldi r24, 0x0A ; 10 + f8c: 90 e2 ldi r25, 0x20 ; 32 + f8e: 88 af std Y+56, r24 ; 0x38 + f90: 99 af std Y+57, r25 ; 0x39 + f92: 1a ae std Y+58, r1 ; 0x3a + f94: 50 ea ldi r21, 0xA0 ; 160 + f96: 5c af std Y+60, r21 ; 0x3c + f98: 88 e0 ldi r24, 0x08 ; 8 + f9a: 80 93 3d 01 sts 0x013D, r24 ; 0x80013d <__TEXT_REGION_LENGTH__+0x70013d> + f9e: 10 92 3e 01 sts 0x013E, r1 ; 0x80013e <__TEXT_REGION_LENGTH__+0x70013e> + fa2: 98 a9 ldd r25, Y+48 ; 0x30 + fa4: 90 6a ori r25, 0xA0 ; 160 + fa6: 98 ab std Y+48, r25 ; 0x30 + fa8: 95 e5 ldi r25, 0x55 ; 85 + faa: 90 93 a0 08 sts 0x08A0, r25 ; 0x8008a0 <__TEXT_REGION_LENGTH__+0x7008a0> + fae: 10 92 46 01 sts 0x0146, r1 ; 0x800146 <__TEXT_REGION_LENGTH__+0x700146> + fb2: e0 e4 ldi r30, 0x40 ; 64 + fb4: f1 e0 ldi r31, 0x01 ; 1 + fb6: 94 e2 ldi r25, 0x24 ; 36 + fb8: 90 83 st Z, r25 + fba: 10 92 41 01 sts 0x0141, r1 ; 0x800141 <__TEXT_REGION_LENGTH__+0x700141> + fbe: 29 e5 ldi r18, 0x59 ; 89 + fc0: 20 93 42 01 sts 0x0142, r18 ; 0x800142 <__TEXT_REGION_LENGTH__+0x700142> + fc4: 22 e0 ldi r18, 0x02 ; 2 + fc6: 20 93 43 01 sts 0x0143, r18 ; 0x800143 <__TEXT_REGION_LENGTH__+0x700143> + fca: 60 91 0b 20 lds r22, 0x200B ; 0x80200b + fce: 70 91 0c 20 lds r23, 0x200C ; 0x80200c + fd2: 60 93 44 01 sts 0x0144, r22 ; 0x800144 <__TEXT_REGION_LENGTH__+0x700144> + fd6: 70 93 45 01 sts 0x0145, r23 ; 0x800145 <__TEXT_REGION_LENGTH__+0x700145> + fda: 6b ea ldi r22, 0xAB ; 171 + fdc: 73 e2 ldi r23, 0x23 ; 35 + fde: 60 93 48 01 sts 0x0148, r22 ; 0x800148 <__TEXT_REGION_LENGTH__+0x700148> + fe2: 70 93 49 01 sts 0x0149, r23 ; 0x800149 <__TEXT_REGION_LENGTH__+0x700149> + fe6: 10 92 4a 01 sts 0x014A, r1 ; 0x80014a <__TEXT_REGION_LENGTH__+0x70014a> + fea: 2b e3 ldi r18, 0x3B ; 59 + fec: 20 93 4c 01 sts 0x014C, r18 ; 0x80014c <__TEXT_REGION_LENGTH__+0x70014c> + ff0: 23 e0 ldi r18, 0x03 ; 3 + ff2: 20 93 4d 01 sts 0x014D, r18 ; 0x80014d <__TEXT_REGION_LENGTH__+0x70014d> + ff6: 10 92 4e 01 sts 0x014E, r1 ; 0x80014e <__TEXT_REGION_LENGTH__+0x70014e> + ffa: 20 81 ld r18, Z + ffc: 20 68 ori r18, 0x80 ; 128 + ffe: 20 83 st Z, r18 + 1000: 98 8b std Y+16, r25 ; 0x10 + 1002: 19 8a std Y+17, r1 ; 0x11 + 1004: 45 e9 ldi r20, 0x95 ; 149 + 1006: 4a 8b std Y+18, r20 ; 0x12 + 1008: 3b 8b std Y+19, r19 ; 0x13 + 100a: 2e ee ldi r18, 0xEE ; 238 + 100c: 32 e0 ldi r19, 0x02 ; 2 + 100e: 2c 8b std Y+20, r18 ; 0x14 + 1010: 3d 8b std Y+21, r19 ; 0x15 + 1012: 58 8f std Y+24, r21 ; 0x18 + 1014: 89 8f std Y+25, r24 ; 0x19 + 1016: 1a 8e std Y+26, r1 ; 0x1a + 1018: 6c ec ldi r22, 0xCC ; 204 + 101a: 75 e2 ldi r23, 0x25 ; 37 + 101c: 6c 8f std Y+28, r22 ; 0x1c + 101e: 7d 8f std Y+29, r23 ; 0x1d + 1020: 1e 8e std Y+30, r1 ; 0x1e + 1022: 98 a3 std Y+32, r25 ; 0x20 + 1024: 19 a2 std Y+33, r1 ; 0x21 + 1026: 4a a3 std Y+34, r20 ; 0x22 + 1028: 9a e4 ldi r25, 0x4A ; 74 + 102a: 9b a3 std Y+35, r25 ; 0x23 + 102c: 2c a3 std Y+36, r18 ; 0x24 + 102e: 3d a3 std Y+37, r19 ; 0x25 + 1030: 93 ec ldi r25, 0xC3 ; 195 + 1032: 98 a7 std Y+40, r25 ; 0x28 + 1034: 89 a7 std Y+41, r24 ; 0x29 + 1036: 1a a6 std Y+42, r1 ; 0x2a + 1038: 8a eb ldi r24, 0xBA ; 186 + 103a: 98 e2 ldi r25, 0x28 ; 40 + 103c: 8c a7 std Y+44, r24 ; 0x2c + 103e: 9d a7 std Y+45, r25 ; 0x2d + 1040: 1e a6 std Y+46, r1 ; 0x2e + 1042: 68 ec ldi r22, 0xC8 ; 200 + 1044: 70 e0 ldi r23, 0x00 ; 0 + 1046: 84 ef ldi r24, 0xF4 ; 244 + 1048: 91 e0 ldi r25, 0x01 ; 1 + 104a: 46 db rcall .-2420 ; 0x6d8 + 104c: 88 ec ldi r24, 0xC8 ; 200 + 104e: 90 e0 ldi r25, 0x00 ; 0 + 1050: 80 93 07 20 sts 0x2007, r24 ; 0x802007 + 1054: 90 93 08 20 sts 0x2008, r25 ; 0x802008 + 1058: 81 e0 ldi r24, 0x01 ; 1 + 105a: 80 93 06 20 sts 0x2006, r24 ; 0x802006 + 105e: 88 89 ldd r24, Y+16 ; 0x10 + 1060: 80 68 ori r24, 0x80 ; 128 + 1062: 88 8b std Y+16, r24 ; 0x10 + 1064: 88 a1 ldd r24, Y+32 ; 0x20 + 1066: 80 68 ori r24, 0x80 ; 128 + 1068: 88 a3 std Y+32, r24 ; 0x20 + 106a: df 91 pop r29 + 106c: cf 91 pop r28 + 106e: 1f 91 pop r17 + 1070: 08 95 ret -000010c4 : - 10c4: ff cf rjmp .-2 ; 0x10c4 +00001072 : + 1072: ff cf rjmp .-2 ; 0x1072 -000010c6 : - 10c6: cf 93 push r28 - 10c8: df 93 push r29 - 10ca: 86 e0 ldi r24, 0x06 ; 6 - 10cc: 80 93 09 20 sts 0x2009, r24 ; 0x802009 - 10d0: 3f dd rcall .-1410 ; 0xb50 - 10d2: c0 e0 ldi r28, 0x00 ; 0 - 10d4: d1 e0 ldi r29, 0x01 ; 1 - 10d6: 1e aa std Y+54, r1 ; 0x36 - 10d8: 84 e2 ldi r24, 0x24 ; 36 - 10da: 88 ab std Y+48, r24 ; 0x30 - 10dc: 19 aa std Y+49, r1 ; 0x31 - 10de: 39 e5 ldi r19, 0x59 ; 89 - 10e0: 3a ab std Y+50, r19 ; 0x32 - 10e2: 93 e0 ldi r25, 0x03 ; 3 - 10e4: 9b ab std Y+51, r25 ; 0x33 - 10e6: 40 91 0d 20 lds r20, 0x200D ; 0x80200d - 10ea: 50 91 0e 20 lds r21, 0x200E ; 0x80200e - 10ee: 4c ab std Y+52, r20 ; 0x34 - 10f0: 5d ab std Y+53, r21 ; 0x35 - 10f2: 4a e9 ldi r20, 0x9A ; 154 - 10f4: 51 e2 ldi r21, 0x21 ; 33 - 10f6: 48 af std Y+56, r20 ; 0x38 - 10f8: 59 af std Y+57, r21 ; 0x39 - 10fa: 1a ae std Y+58, r1 ; 0x3a - 10fc: 29 e3 ldi r18, 0x39 ; 57 - 10fe: 2c af std Y+60, r18 ; 0x3c - 1100: 90 93 3d 01 sts 0x013D, r25 ; 0x80013d <__TEXT_REGION_LENGTH__+0x70013d> - 1104: 10 92 3e 01 sts 0x013E, r1 ; 0x80013e <__TEXT_REGION_LENGTH__+0x70013e> - 1108: 28 a9 ldd r18, Y+48 ; 0x30 - 110a: 20 68 ori r18, 0x80 ; 128 - 110c: 28 ab std Y+48, r18 ; 0x30 - 110e: 10 92 46 01 sts 0x0146, r1 ; 0x800146 <__TEXT_REGION_LENGTH__+0x700146> - 1112: e0 e4 ldi r30, 0x40 ; 64 - 1114: f1 e0 ldi r31, 0x01 ; 1 - 1116: 80 83 st Z, r24 - 1118: 10 92 41 01 sts 0x0141, r1 ; 0x800141 <__TEXT_REGION_LENGTH__+0x700141> - 111c: 30 93 42 01 sts 0x0142, r19 ; 0x800142 <__TEXT_REGION_LENGTH__+0x700142> - 1120: 32 e0 ldi r19, 0x02 ; 2 - 1122: 30 93 43 01 sts 0x0143, r19 ; 0x800143 <__TEXT_REGION_LENGTH__+0x700143> - 1126: 40 91 0b 20 lds r20, 0x200B ; 0x80200b - 112a: 50 91 0c 20 lds r21, 0x200C ; 0x80200c - 112e: 40 93 44 01 sts 0x0144, r20 ; 0x800144 <__TEXT_REGION_LENGTH__+0x700144> - 1132: 50 93 45 01 sts 0x0145, r21 ; 0x800145 <__TEXT_REGION_LENGTH__+0x700145> - 1136: 4b ea ldi r20, 0xAB ; 171 - 1138: 53 e2 ldi r21, 0x23 ; 35 - 113a: 40 93 48 01 sts 0x0148, r20 ; 0x800148 <__TEXT_REGION_LENGTH__+0x700148> - 113e: 50 93 49 01 sts 0x0149, r21 ; 0x800149 <__TEXT_REGION_LENGTH__+0x700149> - 1142: 10 92 4a 01 sts 0x014A, r1 ; 0x80014a <__TEXT_REGION_LENGTH__+0x70014a> - 1146: 2b e3 ldi r18, 0x3B ; 59 - 1148: 20 93 4c 01 sts 0x014C, r18 ; 0x80014c <__TEXT_REGION_LENGTH__+0x70014c> - 114c: 90 93 4d 01 sts 0x014D, r25 ; 0x80014d <__TEXT_REGION_LENGTH__+0x70014d> - 1150: 10 92 4e 01 sts 0x014E, r1 ; 0x80014e <__TEXT_REGION_LENGTH__+0x70014e> - 1154: 20 81 ld r18, Z - 1156: 20 68 ori r18, 0x80 ; 128 - 1158: 20 83 st Z, r18 - 115a: 18 8a std Y+16, r1 ; 0x10 - 115c: 20 e4 ldi r18, 0x40 ; 64 - 115e: 28 8b std Y+16, r18 ; 0x10 - 1160: 88 8b std Y+16, r24 ; 0x10 - 1162: 99 8b std Y+17, r25 ; 0x11 - 1164: 95 e9 ldi r25, 0x95 ; 149 - 1166: 9a 8b std Y+18, r25 ; 0x12 - 1168: 90 e1 ldi r25, 0x10 ; 16 - 116a: 9b 8b std Y+19, r25 ; 0x13 - 116c: 4c ed ldi r20, 0xDC ; 220 - 116e: 55 e0 ldi r21, 0x05 ; 5 - 1170: 4c 8b std Y+20, r20 ; 0x14 - 1172: 5d 8b std Y+21, r21 ; 0x15 - 1174: 88 8f std Y+24, r24 ; 0x18 - 1176: 39 8f std Y+25, r19 ; 0x19 - 1178: 1a 8e std Y+26, r1 ; 0x1a - 117a: 8c ec ldi r24, 0xCC ; 204 - 117c: 95 e2 ldi r25, 0x25 ; 37 - 117e: 8c 8f std Y+28, r24 ; 0x1c - 1180: 9d 8f std Y+29, r25 ; 0x1d - 1182: 1e 8e std Y+30, r1 ; 0x1e - 1184: 68 ec ldi r22, 0xC8 ; 200 - 1186: 70 e0 ldi r23, 0x00 ; 0 - 1188: 84 ef ldi r24, 0xF4 ; 244 - 118a: 91 e0 ldi r25, 0x01 ; 1 - 118c: a5 da rcall .-2742 ; 0x6d8 - 118e: 80 e9 ldi r24, 0x90 ; 144 - 1190: 91 e0 ldi r25, 0x01 ; 1 - 1192: 80 93 07 20 sts 0x2007, r24 ; 0x802007 - 1196: 90 93 08 20 sts 0x2008, r25 ; 0x802008 - 119a: 81 e0 ldi r24, 0x01 ; 1 - 119c: 80 93 06 20 sts 0x2006, r24 ; 0x802006 - 11a0: 88 89 ldd r24, Y+16 ; 0x10 - 11a2: 80 68 ori r24, 0x80 ; 128 - 11a4: 88 8b std Y+16, r24 ; 0x10 - 11a6: df 91 pop r29 - 11a8: cf 91 pop r28 - 11aa: 08 95 ret +00001074 : + 1074: cf 93 push r28 + 1076: df 93 push r29 + 1078: 86 e0 ldi r24, 0x06 ; 6 + 107a: 80 93 09 20 sts 0x2009, r24 ; 0x802009 + 107e: 3f dd rcall .-1410 ; 0xafe + 1080: c0 e0 ldi r28, 0x00 ; 0 + 1082: d1 e0 ldi r29, 0x01 ; 1 + 1084: 1e aa std Y+54, r1 ; 0x36 + 1086: 84 e2 ldi r24, 0x24 ; 36 + 1088: 88 ab std Y+48, r24 ; 0x30 + 108a: 19 aa std Y+49, r1 ; 0x31 + 108c: 39 e5 ldi r19, 0x59 ; 89 + 108e: 3a ab std Y+50, r19 ; 0x32 + 1090: 93 e0 ldi r25, 0x03 ; 3 + 1092: 9b ab std Y+51, r25 ; 0x33 + 1094: 40 91 0d 20 lds r20, 0x200D ; 0x80200d + 1098: 50 91 0e 20 lds r21, 0x200E ; 0x80200e + 109c: 4c ab std Y+52, r20 ; 0x34 + 109e: 5d ab std Y+53, r21 ; 0x35 + 10a0: 4a e9 ldi r20, 0x9A ; 154 + 10a2: 51 e2 ldi r21, 0x21 ; 33 + 10a4: 48 af std Y+56, r20 ; 0x38 + 10a6: 59 af std Y+57, r21 ; 0x39 + 10a8: 1a ae std Y+58, r1 ; 0x3a + 10aa: 29 e3 ldi r18, 0x39 ; 57 + 10ac: 2c af std Y+60, r18 ; 0x3c + 10ae: 90 93 3d 01 sts 0x013D, r25 ; 0x80013d <__TEXT_REGION_LENGTH__+0x70013d> + 10b2: 10 92 3e 01 sts 0x013E, r1 ; 0x80013e <__TEXT_REGION_LENGTH__+0x70013e> + 10b6: 28 a9 ldd r18, Y+48 ; 0x30 + 10b8: 20 68 ori r18, 0x80 ; 128 + 10ba: 28 ab std Y+48, r18 ; 0x30 + 10bc: 10 92 46 01 sts 0x0146, r1 ; 0x800146 <__TEXT_REGION_LENGTH__+0x700146> + 10c0: e0 e4 ldi r30, 0x40 ; 64 + 10c2: f1 e0 ldi r31, 0x01 ; 1 + 10c4: 80 83 st Z, r24 + 10c6: 10 92 41 01 sts 0x0141, r1 ; 0x800141 <__TEXT_REGION_LENGTH__+0x700141> + 10ca: 30 93 42 01 sts 0x0142, r19 ; 0x800142 <__TEXT_REGION_LENGTH__+0x700142> + 10ce: 32 e0 ldi r19, 0x02 ; 2 + 10d0: 30 93 43 01 sts 0x0143, r19 ; 0x800143 <__TEXT_REGION_LENGTH__+0x700143> + 10d4: 40 91 0b 20 lds r20, 0x200B ; 0x80200b + 10d8: 50 91 0c 20 lds r21, 0x200C ; 0x80200c + 10dc: 40 93 44 01 sts 0x0144, r20 ; 0x800144 <__TEXT_REGION_LENGTH__+0x700144> + 10e0: 50 93 45 01 sts 0x0145, r21 ; 0x800145 <__TEXT_REGION_LENGTH__+0x700145> + 10e4: 4b ea ldi r20, 0xAB ; 171 + 10e6: 53 e2 ldi r21, 0x23 ; 35 + 10e8: 40 93 48 01 sts 0x0148, r20 ; 0x800148 <__TEXT_REGION_LENGTH__+0x700148> + 10ec: 50 93 49 01 sts 0x0149, r21 ; 0x800149 <__TEXT_REGION_LENGTH__+0x700149> + 10f0: 10 92 4a 01 sts 0x014A, r1 ; 0x80014a <__TEXT_REGION_LENGTH__+0x70014a> + 10f4: 2b e3 ldi r18, 0x3B ; 59 + 10f6: 20 93 4c 01 sts 0x014C, r18 ; 0x80014c <__TEXT_REGION_LENGTH__+0x70014c> + 10fa: 90 93 4d 01 sts 0x014D, r25 ; 0x80014d <__TEXT_REGION_LENGTH__+0x70014d> + 10fe: 10 92 4e 01 sts 0x014E, r1 ; 0x80014e <__TEXT_REGION_LENGTH__+0x70014e> + 1102: 20 81 ld r18, Z + 1104: 20 68 ori r18, 0x80 ; 128 + 1106: 20 83 st Z, r18 + 1108: 18 8a std Y+16, r1 ; 0x10 + 110a: 20 e4 ldi r18, 0x40 ; 64 + 110c: 28 8b std Y+16, r18 ; 0x10 + 110e: 88 8b std Y+16, r24 ; 0x10 + 1110: 99 8b std Y+17, r25 ; 0x11 + 1112: 95 e9 ldi r25, 0x95 ; 149 + 1114: 9a 8b std Y+18, r25 ; 0x12 + 1116: 90 e1 ldi r25, 0x10 ; 16 + 1118: 9b 8b std Y+19, r25 ; 0x13 + 111a: 4c ed ldi r20, 0xDC ; 220 + 111c: 55 e0 ldi r21, 0x05 ; 5 + 111e: 4c 8b std Y+20, r20 ; 0x14 + 1120: 5d 8b std Y+21, r21 ; 0x15 + 1122: 88 8f std Y+24, r24 ; 0x18 + 1124: 39 8f std Y+25, r19 ; 0x19 + 1126: 1a 8e std Y+26, r1 ; 0x1a + 1128: 8c ec ldi r24, 0xCC ; 204 + 112a: 95 e2 ldi r25, 0x25 ; 37 + 112c: 8c 8f std Y+28, r24 ; 0x1c + 112e: 9d 8f std Y+29, r25 ; 0x1d + 1130: 1e 8e std Y+30, r1 ; 0x1e + 1132: 68 ec ldi r22, 0xC8 ; 200 + 1134: 70 e0 ldi r23, 0x00 ; 0 + 1136: 84 ef ldi r24, 0xF4 ; 244 + 1138: 91 e0 ldi r25, 0x01 ; 1 + 113a: ce da rcall .-2660 ; 0x6d8 + 113c: 80 e9 ldi r24, 0x90 ; 144 + 113e: 91 e0 ldi r25, 0x01 ; 1 + 1140: 80 93 07 20 sts 0x2007, r24 ; 0x802007 + 1144: 90 93 08 20 sts 0x2008, r25 ; 0x802008 + 1148: 81 e0 ldi r24, 0x01 ; 1 + 114a: 80 93 06 20 sts 0x2006, r24 ; 0x802006 + 114e: 88 89 ldd r24, Y+16 ; 0x10 + 1150: 80 68 ori r24, 0x80 ; 128 + 1152: 88 8b std Y+16, r24 ; 0x10 + 1154: df 91 pop r29 + 1156: cf 91 pop r28 + 1158: 08 95 ret -000011ac : - 11ac: cf 93 push r28 - 11ae: df 93 push r29 - 11b0: 87 e0 ldi r24, 0x07 ; 7 - 11b2: 80 93 09 20 sts 0x2009, r24 ; 0x802009 - 11b6: cc dc rcall .-1640 ; 0xb50 - 11b8: c0 e0 ldi r28, 0x00 ; 0 - 11ba: d1 e0 ldi r29, 0x01 ; 1 - 11bc: 1e aa std Y+54, r1 ; 0x36 - 11be: 94 e2 ldi r25, 0x24 ; 36 - 11c0: 98 ab std Y+48, r25 ; 0x30 - 11c2: 19 aa std Y+49, r1 ; 0x31 - 11c4: 39 e5 ldi r19, 0x59 ; 89 - 11c6: 3a ab std Y+50, r19 ; 0x32 - 11c8: 83 e0 ldi r24, 0x03 ; 3 - 11ca: 8b ab std Y+51, r24 ; 0x33 - 11cc: 40 91 0d 20 lds r20, 0x200D ; 0x80200d - 11d0: 50 91 0e 20 lds r21, 0x200E ; 0x80200e - 11d4: 4c ab std Y+52, r20 ; 0x34 - 11d6: 5d ab std Y+53, r21 ; 0x35 - 11d8: 4a e9 ldi r20, 0x9A ; 154 - 11da: 51 e2 ldi r21, 0x21 ; 33 - 11dc: 48 af std Y+56, r20 ; 0x38 - 11de: 59 af std Y+57, r21 ; 0x39 - 11e0: 1a ae std Y+58, r1 ; 0x3a - 11e2: 29 e3 ldi r18, 0x39 ; 57 - 11e4: 2c af std Y+60, r18 ; 0x3c - 11e6: 80 93 3d 01 sts 0x013D, r24 ; 0x80013d <__TEXT_REGION_LENGTH__+0x70013d> - 11ea: 10 92 3e 01 sts 0x013E, r1 ; 0x80013e <__TEXT_REGION_LENGTH__+0x70013e> - 11ee: 28 a9 ldd r18, Y+48 ; 0x30 - 11f0: 20 68 ori r18, 0x80 ; 128 - 11f2: 28 ab std Y+48, r18 ; 0x30 - 11f4: 10 92 46 01 sts 0x0146, r1 ; 0x800146 <__TEXT_REGION_LENGTH__+0x700146> - 11f8: e0 e4 ldi r30, 0x40 ; 64 - 11fa: f1 e0 ldi r31, 0x01 ; 1 - 11fc: 90 83 st Z, r25 - 11fe: 10 92 41 01 sts 0x0141, r1 ; 0x800141 <__TEXT_REGION_LENGTH__+0x700141> - 1202: 30 93 42 01 sts 0x0142, r19 ; 0x800142 <__TEXT_REGION_LENGTH__+0x700142> - 1206: 32 e0 ldi r19, 0x02 ; 2 - 1208: 30 93 43 01 sts 0x0143, r19 ; 0x800143 <__TEXT_REGION_LENGTH__+0x700143> - 120c: 40 91 0b 20 lds r20, 0x200B ; 0x80200b - 1210: 50 91 0c 20 lds r21, 0x200C ; 0x80200c - 1214: 40 93 44 01 sts 0x0144, r20 ; 0x800144 <__TEXT_REGION_LENGTH__+0x700144> - 1218: 50 93 45 01 sts 0x0145, r21 ; 0x800145 <__TEXT_REGION_LENGTH__+0x700145> - 121c: 4b ea ldi r20, 0xAB ; 171 - 121e: 53 e2 ldi r21, 0x23 ; 35 - 1220: 40 93 48 01 sts 0x0148, r20 ; 0x800148 <__TEXT_REGION_LENGTH__+0x700148> - 1224: 50 93 49 01 sts 0x0149, r21 ; 0x800149 <__TEXT_REGION_LENGTH__+0x700149> - 1228: 10 92 4a 01 sts 0x014A, r1 ; 0x80014a <__TEXT_REGION_LENGTH__+0x70014a> - 122c: 2b e3 ldi r18, 0x3B ; 59 - 122e: 20 93 4c 01 sts 0x014C, r18 ; 0x80014c <__TEXT_REGION_LENGTH__+0x70014c> - 1232: 80 93 4d 01 sts 0x014D, r24 ; 0x80014d <__TEXT_REGION_LENGTH__+0x70014d> - 1236: 10 92 4e 01 sts 0x014E, r1 ; 0x80014e <__TEXT_REGION_LENGTH__+0x70014e> - 123a: 20 81 ld r18, Z - 123c: 20 68 ori r18, 0x80 ; 128 - 123e: 20 83 st Z, r18 - 1240: 18 8a std Y+16, r1 ; 0x10 - 1242: 20 e4 ldi r18, 0x40 ; 64 - 1244: 28 8b std Y+16, r18 ; 0x10 - 1246: 25 e2 ldi r18, 0x25 ; 37 - 1248: 28 8b std Y+16, r18 ; 0x10 - 124a: 89 8b std Y+17, r24 ; 0x11 - 124c: 85 e9 ldi r24, 0x95 ; 149 - 124e: 8a 8b std Y+18, r24 ; 0x12 - 1250: 80 e1 ldi r24, 0x10 ; 16 - 1252: 8b 8b std Y+19, r24 ; 0x13 - 1254: 4c ed ldi r20, 0xDC ; 220 - 1256: 55 e0 ldi r21, 0x05 ; 5 - 1258: 4c 8b std Y+20, r20 ; 0x14 - 125a: 5d 8b std Y+21, r21 ; 0x15 - 125c: 98 8f std Y+24, r25 ; 0x18 - 125e: 39 8f std Y+25, r19 ; 0x19 - 1260: 1a 8e std Y+26, r1 ; 0x1a - 1262: 8c ec ldi r24, 0xCC ; 204 - 1264: 95 e2 ldi r25, 0x25 ; 37 - 1266: 8c 8f std Y+28, r24 ; 0x1c - 1268: 9d 8f std Y+29, r25 ; 0x1d - 126a: 1e 8e std Y+30, r1 ; 0x1e - 126c: 68 ec ldi r22, 0xC8 ; 200 - 126e: 70 e0 ldi r23, 0x00 ; 0 - 1270: 84 ef ldi r24, 0xF4 ; 244 - 1272: 91 e0 ldi r25, 0x01 ; 1 - 1274: 31 da rcall .-2974 ; 0x6d8 - 1276: 80 e9 ldi r24, 0x90 ; 144 - 1278: 91 e0 ldi r25, 0x01 ; 1 - 127a: 80 93 07 20 sts 0x2007, r24 ; 0x802007 - 127e: 90 93 08 20 sts 0x2008, r25 ; 0x802008 - 1282: 81 e0 ldi r24, 0x01 ; 1 - 1284: 80 93 06 20 sts 0x2006, r24 ; 0x802006 - 1288: 88 89 ldd r24, Y+16 ; 0x10 - 128a: 80 68 ori r24, 0x80 ; 128 - 128c: 88 8b std Y+16, r24 ; 0x10 - 128e: df 91 pop r29 - 1290: cf 91 pop r28 - 1292: 08 95 ret +0000115a : + 115a: cf 93 push r28 + 115c: df 93 push r29 + 115e: 87 e0 ldi r24, 0x07 ; 7 + 1160: 80 93 09 20 sts 0x2009, r24 ; 0x802009 + 1164: cc dc rcall .-1640 ; 0xafe + 1166: c0 e0 ldi r28, 0x00 ; 0 + 1168: d1 e0 ldi r29, 0x01 ; 1 + 116a: 1e aa std Y+54, r1 ; 0x36 + 116c: 94 e2 ldi r25, 0x24 ; 36 + 116e: 98 ab std Y+48, r25 ; 0x30 + 1170: 19 aa std Y+49, r1 ; 0x31 + 1172: 39 e5 ldi r19, 0x59 ; 89 + 1174: 3a ab std Y+50, r19 ; 0x32 + 1176: 83 e0 ldi r24, 0x03 ; 3 + 1178: 8b ab std Y+51, r24 ; 0x33 + 117a: 40 91 0d 20 lds r20, 0x200D ; 0x80200d + 117e: 50 91 0e 20 lds r21, 0x200E ; 0x80200e + 1182: 4c ab std Y+52, r20 ; 0x34 + 1184: 5d ab std Y+53, r21 ; 0x35 + 1186: 4a e9 ldi r20, 0x9A ; 154 + 1188: 51 e2 ldi r21, 0x21 ; 33 + 118a: 48 af std Y+56, r20 ; 0x38 + 118c: 59 af std Y+57, r21 ; 0x39 + 118e: 1a ae std Y+58, r1 ; 0x3a + 1190: 29 e3 ldi r18, 0x39 ; 57 + 1192: 2c af std Y+60, r18 ; 0x3c + 1194: 80 93 3d 01 sts 0x013D, r24 ; 0x80013d <__TEXT_REGION_LENGTH__+0x70013d> + 1198: 10 92 3e 01 sts 0x013E, r1 ; 0x80013e <__TEXT_REGION_LENGTH__+0x70013e> + 119c: 28 a9 ldd r18, Y+48 ; 0x30 + 119e: 20 68 ori r18, 0x80 ; 128 + 11a0: 28 ab std Y+48, r18 ; 0x30 + 11a2: 10 92 46 01 sts 0x0146, r1 ; 0x800146 <__TEXT_REGION_LENGTH__+0x700146> + 11a6: e0 e4 ldi r30, 0x40 ; 64 + 11a8: f1 e0 ldi r31, 0x01 ; 1 + 11aa: 90 83 st Z, r25 + 11ac: 10 92 41 01 sts 0x0141, r1 ; 0x800141 <__TEXT_REGION_LENGTH__+0x700141> + 11b0: 30 93 42 01 sts 0x0142, r19 ; 0x800142 <__TEXT_REGION_LENGTH__+0x700142> + 11b4: 32 e0 ldi r19, 0x02 ; 2 + 11b6: 30 93 43 01 sts 0x0143, r19 ; 0x800143 <__TEXT_REGION_LENGTH__+0x700143> + 11ba: 40 91 0b 20 lds r20, 0x200B ; 0x80200b + 11be: 50 91 0c 20 lds r21, 0x200C ; 0x80200c + 11c2: 40 93 44 01 sts 0x0144, r20 ; 0x800144 <__TEXT_REGION_LENGTH__+0x700144> + 11c6: 50 93 45 01 sts 0x0145, r21 ; 0x800145 <__TEXT_REGION_LENGTH__+0x700145> + 11ca: 4b ea ldi r20, 0xAB ; 171 + 11cc: 53 e2 ldi r21, 0x23 ; 35 + 11ce: 40 93 48 01 sts 0x0148, r20 ; 0x800148 <__TEXT_REGION_LENGTH__+0x700148> + 11d2: 50 93 49 01 sts 0x0149, r21 ; 0x800149 <__TEXT_REGION_LENGTH__+0x700149> + 11d6: 10 92 4a 01 sts 0x014A, r1 ; 0x80014a <__TEXT_REGION_LENGTH__+0x70014a> + 11da: 2b e3 ldi r18, 0x3B ; 59 + 11dc: 20 93 4c 01 sts 0x014C, r18 ; 0x80014c <__TEXT_REGION_LENGTH__+0x70014c> + 11e0: 80 93 4d 01 sts 0x014D, r24 ; 0x80014d <__TEXT_REGION_LENGTH__+0x70014d> + 11e4: 10 92 4e 01 sts 0x014E, r1 ; 0x80014e <__TEXT_REGION_LENGTH__+0x70014e> + 11e8: 20 81 ld r18, Z + 11ea: 20 68 ori r18, 0x80 ; 128 + 11ec: 20 83 st Z, r18 + 11ee: 18 8a std Y+16, r1 ; 0x10 + 11f0: 20 e4 ldi r18, 0x40 ; 64 + 11f2: 28 8b std Y+16, r18 ; 0x10 + 11f4: 25 e2 ldi r18, 0x25 ; 37 + 11f6: 28 8b std Y+16, r18 ; 0x10 + 11f8: 89 8b std Y+17, r24 ; 0x11 + 11fa: 85 e9 ldi r24, 0x95 ; 149 + 11fc: 8a 8b std Y+18, r24 ; 0x12 + 11fe: 80 e1 ldi r24, 0x10 ; 16 + 1200: 8b 8b std Y+19, r24 ; 0x13 + 1202: 4c ed ldi r20, 0xDC ; 220 + 1204: 55 e0 ldi r21, 0x05 ; 5 + 1206: 4c 8b std Y+20, r20 ; 0x14 + 1208: 5d 8b std Y+21, r21 ; 0x15 + 120a: 98 8f std Y+24, r25 ; 0x18 + 120c: 39 8f std Y+25, r19 ; 0x19 + 120e: 1a 8e std Y+26, r1 ; 0x1a + 1210: 8c ec ldi r24, 0xCC ; 204 + 1212: 95 e2 ldi r25, 0x25 ; 37 + 1214: 8c 8f std Y+28, r24 ; 0x1c + 1216: 9d 8f std Y+29, r25 ; 0x1d + 1218: 1e 8e std Y+30, r1 ; 0x1e + 121a: 68 ec ldi r22, 0xC8 ; 200 + 121c: 70 e0 ldi r23, 0x00 ; 0 + 121e: 84 ef ldi r24, 0xF4 ; 244 + 1220: 91 e0 ldi r25, 0x01 ; 1 + 1222: 5a da rcall .-2892 ; 0x6d8 + 1224: 80 e9 ldi r24, 0x90 ; 144 + 1226: 91 e0 ldi r25, 0x01 ; 1 + 1228: 80 93 07 20 sts 0x2007, r24 ; 0x802007 + 122c: 90 93 08 20 sts 0x2008, r25 ; 0x802008 + 1230: 81 e0 ldi r24, 0x01 ; 1 + 1232: 80 93 06 20 sts 0x2006, r24 ; 0x802006 + 1236: 88 89 ldd r24, Y+16 ; 0x10 + 1238: 80 68 ori r24, 0x80 ; 128 + 123a: 88 8b std Y+16, r24 ; 0x10 + 123c: df 91 pop r29 + 123e: cf 91 pop r28 + 1240: 08 95 ret -00001294 <__vector_6>: +00001242 <__vector_6>: } ISR(DMA_CH0_vect){ - 1294: 1f 92 push r1 - 1296: 0f 92 push r0 - 1298: 0f b6 in r0, 0x3f ; 63 - 129a: 0f 92 push r0 - 129c: 11 24 eor r1, r1 - 129e: 8f 93 push r24 - 12a0: 9f 93 push r25 - 12a2: ef 93 push r30 - 12a4: ff 93 push r31 + 1242: 1f 92 push r1 + 1244: 0f 92 push r0 + 1246: 0f b6 in r0, 0x3f ; 63 + 1248: 0f 92 push r0 + 124a: 11 24 eor r1, r1 + 124c: 8f 93 push r24 + 124e: 9f 93 push r25 + 1250: ef 93 push r30 + 1252: ff 93 push r31 DMA.INTFLAGS = 0x01; - 12a6: 81 e0 ldi r24, 0x01 ; 1 - 12a8: 80 93 03 01 sts 0x0103, r24 ; 0x800103 <__TEXT_REGION_LENGTH__+0x700103> + 1254: 81 e0 ldi r24, 0x01 ; 1 + 1256: 80 93 03 01 sts 0x0103, r24 ; 0x800103 <__TEXT_REGION_LENGTH__+0x700103> dma_ch0_ran++; - 12ac: 80 91 7c 21 lds r24, 0x217C ; 0x80217c - 12b0: 90 91 7d 21 lds r25, 0x217D ; 0x80217d - 12b4: 01 96 adiw r24, 0x01 ; 1 - 12b6: 80 93 7c 21 sts 0x217C, r24 ; 0x80217c - 12ba: 90 93 7d 21 sts 0x217D, r25 ; 0x80217d + 125a: 80 91 7c 21 lds r24, 0x217C ; 0x80217c + 125e: 90 91 7d 21 lds r25, 0x217D ; 0x80217d + 1262: 01 96 adiw r24, 0x01 ; 1 + 1264: 80 93 7c 21 sts 0x217C, r24 ; 0x80217c + 1268: 90 93 7d 21 sts 0x217D, r25 ; 0x80217d uds.dma_ch0_cntL = dma_ch0_ran & 0xff; - 12be: 80 91 7c 21 lds r24, 0x217C ; 0x80217c - 12c2: 90 91 7d 21 lds r25, 0x217D ; 0x80217d - 12c6: ee e7 ldi r30, 0x7E ; 126 - 12c8: f1 e2 ldi r31, 0x21 ; 33 - 12ca: 87 8b std Z+23, r24 ; 0x17 + 126c: 80 91 7c 21 lds r24, 0x217C ; 0x80217c + 1270: 90 91 7d 21 lds r25, 0x217D ; 0x80217d + 1274: ee e7 ldi r30, 0x7E ; 126 + 1276: f1 e2 ldi r31, 0x21 ; 33 + 1278: 87 8b std Z+23, r24 ; 0x17 uds.dma_ch0_cntH = (dma_ch0_ran >> 8) & 0xff; - 12cc: 80 91 7c 21 lds r24, 0x217C ; 0x80217c - 12d0: 90 91 7d 21 lds r25, 0x217D ; 0x80217d - 12d4: 90 8f std Z+24, r25 ; 0x18 + 127a: 80 91 7c 21 lds r24, 0x217C ; 0x80217c + 127e: 90 91 7d 21 lds r25, 0x217D ; 0x80217d + 1282: 90 8f std Z+24, r25 ; 0x18 } - 12d6: ff 91 pop r31 - 12d8: ef 91 pop r30 - 12da: 9f 91 pop r25 - 12dc: 8f 91 pop r24 - 12de: 0f 90 pop r0 - 12e0: 0f be out 0x3f, r0 ; 63 - 12e2: 0f 90 pop r0 - 12e4: 1f 90 pop r1 - 12e6: 18 95 reti + 1284: ff 91 pop r31 + 1286: ef 91 pop r30 + 1288: 9f 91 pop r25 + 128a: 8f 91 pop r24 + 128c: 0f 90 pop r0 + 128e: 0f be out 0x3f, r0 ; 63 + 1290: 0f 90 pop r0 + 1292: 1f 90 pop r1 + 1294: 18 95 reti -000012e8 <__vector_7>: +00001296 <__vector_7>: ISR(DMA_CH1_vect){ - 12e8: 1f 92 push r1 - 12ea: 0f 92 push r0 - 12ec: 0f b6 in r0, 0x3f ; 63 - 12ee: 0f 92 push r0 - 12f0: 11 24 eor r1, r1 - 12f2: 8f 93 push r24 - 12f4: 9f 93 push r25 - 12f6: ef 93 push r30 - 12f8: ff 93 push r31 + 1296: 1f 92 push r1 + 1298: 0f 92 push r0 + 129a: 0f b6 in r0, 0x3f ; 63 + 129c: 0f 92 push r0 + 129e: 11 24 eor r1, r1 + 12a0: 8f 93 push r24 + 12a2: 9f 93 push r25 + 12a4: ef 93 push r30 + 12a6: ff 93 push r31 DMA.INTFLAGS = 0x02; - 12fa: 82 e0 ldi r24, 0x02 ; 2 - 12fc: 80 93 03 01 sts 0x0103, r24 ; 0x800103 <__TEXT_REGION_LENGTH__+0x700103> + 12a8: 82 e0 ldi r24, 0x02 ; 2 + 12aa: 80 93 03 01 sts 0x0103, r24 ; 0x800103 <__TEXT_REGION_LENGTH__+0x700103> dma_ch1_ran++; - 1300: 80 91 7a 21 lds r24, 0x217A ; 0x80217a - 1304: 90 91 7b 21 lds r25, 0x217B ; 0x80217b - 1308: 01 96 adiw r24, 0x01 ; 1 - 130a: 80 93 7a 21 sts 0x217A, r24 ; 0x80217a - 130e: 90 93 7b 21 sts 0x217B, r25 ; 0x80217b + 12ae: 80 91 7a 21 lds r24, 0x217A ; 0x80217a + 12b2: 90 91 7b 21 lds r25, 0x217B ; 0x80217b + 12b6: 01 96 adiw r24, 0x01 ; 1 + 12b8: 80 93 7a 21 sts 0x217A, r24 ; 0x80217a + 12bc: 90 93 7b 21 sts 0x217B, r25 ; 0x80217b uds.dma_ch1_cntL = dma_ch1_ran & 0xff; - 1312: 80 91 7a 21 lds r24, 0x217A ; 0x80217a - 1316: 90 91 7b 21 lds r25, 0x217B ; 0x80217b - 131a: ee e7 ldi r30, 0x7E ; 126 - 131c: f1 e2 ldi r31, 0x21 ; 33 - 131e: 81 8f std Z+25, r24 ; 0x19 + 12c0: 80 91 7a 21 lds r24, 0x217A ; 0x80217a + 12c4: 90 91 7b 21 lds r25, 0x217B ; 0x80217b + 12c8: ee e7 ldi r30, 0x7E ; 126 + 12ca: f1 e2 ldi r31, 0x21 ; 33 + 12cc: 81 8f std Z+25, r24 ; 0x19 uds.dma_ch1_cntH = (dma_ch1_ran >> 8) & 0xff; - 1320: 80 91 7a 21 lds r24, 0x217A ; 0x80217a - 1324: 90 91 7b 21 lds r25, 0x217B ; 0x80217b - 1328: 92 8f std Z+26, r25 ; 0x1a + 12ce: 80 91 7a 21 lds r24, 0x217A ; 0x80217a + 12d2: 90 91 7b 21 lds r25, 0x217B ; 0x80217b + 12d6: 92 8f std Z+26, r25 ; 0x1a } - 132a: ff 91 pop r31 - 132c: ef 91 pop r30 - 132e: 9f 91 pop r25 - 1330: 8f 91 pop r24 - 1332: 0f 90 pop r0 - 1334: 0f be out 0x3f, r0 ; 63 - 1336: 0f 90 pop r0 - 1338: 1f 90 pop r1 - 133a: 18 95 reti + 12d8: ff 91 pop r31 + 12da: ef 91 pop r30 + 12dc: 9f 91 pop r25 + 12de: 8f 91 pop r24 + 12e0: 0f 90 pop r0 + 12e2: 0f be out 0x3f, r0 ; 63 + 12e4: 0f 90 pop r0 + 12e6: 1f 90 pop r1 + 12e8: 18 95 reti -0000133c : +000012ea : #define PSU_PER 2048 #define jump 6 void tiny_timer_setup(void){ //Turn everything on! PR.PRPC &= 0b11111100; //Enable TCC0, TCC1 - 133c: e0 e7 ldi r30, 0x70 ; 112 - 133e: f0 e0 ldi r31, 0x00 ; 0 - 1340: 83 81 ldd r24, Z+3 ; 0x03 - 1342: 8c 7f andi r24, 0xFC ; 252 - 1344: 83 83 std Z+3, r24 ; 0x03 + 12ea: e0 e7 ldi r30, 0x70 ; 112 + 12ec: f0 e0 ldi r31, 0x00 ; 0 + 12ee: 83 81 ldd r24, Z+3 ; 0x03 + 12f0: 8c 7f andi r24, 0xFC ; 252 + 12f2: 83 83 std Z+3, r24 ; 0x03 PR.PRPD &= 0b11111100; //Enable TCD0, TCD1 - 1346: 84 81 ldd r24, Z+4 ; 0x04 - 1348: 8c 7f andi r24, 0xFC ; 252 - 134a: 84 83 std Z+4, r24 ; 0x04 + 12f4: 84 81 ldd r24, Z+4 ; 0x04 + 12f6: 8c 7f andi r24, 0xFC ; 252 + 12f8: 84 83 std Z+4, r24 ; 0x04 PR.PRGEN &= 0b11111101; //Enable EVSYS - 134c: 80 81 ld r24, Z - 134e: 8d 7f andi r24, 0xFD ; 253 - 1350: 80 83 st Z, r24 + 12fa: 80 81 ld r24, Z + 12fc: 8d 7f andi r24, 0xFD ; 253 + 12fe: 80 83 st Z, r24 //Set up EVSYS EVSYS.CH2MUX = TCDAC_OVF; - 1352: e0 e8 ldi r30, 0x80 ; 128 - 1354: f1 e0 ldi r31, 0x01 ; 1 - 1356: 80 ec ldi r24, 0xC0 ; 192 - 1358: 82 83 std Z+2, r24 ; 0x02 + 1300: e0 e8 ldi r30, 0x80 ; 128 + 1302: f1 e0 ldi r31, 0x01 ; 1 + 1304: 80 ec ldi r24, 0xC0 ; 192 + 1306: 82 83 std Z+2, r24 ; 0x02 EVSYS.CH2CTRL = 0x00; //No filtering or Quadrature stuff - 135a: 12 86 std Z+10, r1 ; 0x0a + 1308: 12 86 std Z+10, r1 ; 0x0a EVSYS.CH1MUX = TCDAC_AUX_OVF; - 135c: 88 ec ldi r24, 0xC8 ; 200 - 135e: 81 83 std Z+1, r24 ; 0x01 + 130a: 88 ec ldi r24, 0xC8 ; 200 + 130c: 81 83 std Z+1, r24 ; 0x01 EVSYS.CH1CTRL = 0x00; //No filtering or Quadrature stuff - 1360: 11 86 std Z+9, r1 ; 0x09 + 130e: 11 86 std Z+9, r1 ; 0x09 //Waveform (50Hz sin wave) TC_DAC.CTRLA = 0x04; //Some clk setting - not 100% sure since it was SW generated - 1362: a0 e0 ldi r26, 0x00 ; 0 - 1364: b8 e0 ldi r27, 0x08 ; 8 - 1366: 34 e0 ldi r19, 0x04 ; 4 - 1368: 3c 93 st X, r19 + 1310: a0 e0 ldi r26, 0x00 ; 0 + 1312: b8 e0 ldi r27, 0x08 ; 8 + 1314: 34 e0 ldi r19, 0x04 ; 4 + 1316: 3c 93 st X, r19 TC_DAC.CTRLB = TC_WGMODE_SINGLESLOPE_gc; //No enable is set - 136a: 23 e0 ldi r18, 0x03 ; 3 - 136c: 11 96 adiw r26, 0x01 ; 1 - 136e: 2c 93 st X, r18 - 1370: 11 97 sbiw r26, 0x01 ; 1 + 1318: 23 e0 ldi r18, 0x03 ; 3 + 131a: 11 96 adiw r26, 0x01 ; 1 + 131c: 2c 93 st X, r18 + 131e: 11 97 sbiw r26, 0x01 ; 1 TC_DAC.CTRLE = TC_BYTEM_NORMAL_gc; - 1372: 14 96 adiw r26, 0x04 ; 4 - 1374: 1c 92 st X, r1 - 1376: 14 97 sbiw r26, 0x04 ; 4 + 1320: 14 96 adiw r26, 0x04 ; 4 + 1322: 1c 92 st X, r1 + 1324: 14 97 sbiw r26, 0x04 ; 4 TC_DAC.PER = 469; - 1378: 85 ed ldi r24, 0xD5 ; 213 - 137a: 91 e0 ldi r25, 0x01 ; 1 - 137c: 96 96 adiw r26, 0x26 ; 38 - 137e: 8d 93 st X+, r24 - 1380: 9c 93 st X, r25 - 1382: 97 97 sbiw r26, 0x27 ; 39 + 1326: 85 ed ldi r24, 0xD5 ; 213 + 1328: 91 e0 ldi r25, 0x01 ; 1 + 132a: 96 96 adiw r26, 0x26 ; 38 + 132c: 8d 93 st X+, r24 + 132e: 9c 93 st X, r25 + 1330: 97 97 sbiw r26, 0x27 ; 39 TC_DAC.INTCTRLA = 0x00; - 1384: 16 96 adiw r26, 0x06 ; 6 - 1386: 1c 92 st X, r1 - 1388: 16 97 sbiw r26, 0x06 ; 6 + 1332: 16 96 adiw r26, 0x06 ; 6 + 1334: 1c 92 st X, r1 + 1336: 16 97 sbiw r26, 0x06 ; 6 //Aux channel (blank 50Hz) TC_AUXDAC.CTRLA = 0x04; //Some clk setting - not 100% sure since it was SW generated - 138a: e0 e4 ldi r30, 0x40 ; 64 - 138c: f8 e0 ldi r31, 0x08 ; 8 - 138e: 30 83 st Z, r19 + 1338: e0 e4 ldi r30, 0x40 ; 64 + 133a: f8 e0 ldi r31, 0x08 ; 8 + 133c: 30 83 st Z, r19 TC_AUXDAC.CTRLB = TC_WGMODE_SINGLESLOPE_gc; //No enable is set - 1390: 21 83 std Z+1, r18 ; 0x01 + 133e: 21 83 std Z+1, r18 ; 0x01 TC_AUXDAC.CTRLE = TC_BYTEM_NORMAL_gc; - 1392: 14 82 std Z+4, r1 ; 0x04 + 1340: 14 82 std Z+4, r1 ; 0x04 TC_AUXDAC.PER = 469; - 1394: 86 a3 std Z+38, r24 ; 0x26 - 1396: 97 a3 std Z+39, r25 ; 0x27 + 1342: 86 a3 std Z+38, r24 ; 0x26 + 1344: 97 a3 std Z+39, r25 ; 0x27 TC_AUXDAC.INTCTRLA = 0x00; - 1398: 16 82 std Z+6, r1 ; 0x06 + 1346: 16 82 std Z+6, r1 ; 0x06 //PSU PORTD.DIR |= 0b00010000; - 139a: e0 e6 ldi r30, 0x60 ; 96 - 139c: f6 e0 ldi r31, 0x06 ; 6 - 139e: 80 81 ld r24, Z - 13a0: 80 61 ori r24, 0x10 ; 16 - 13a2: 80 83 st Z, r24 + 1348: e0 e6 ldi r30, 0x60 ; 96 + 134a: f6 e0 ldi r31, 0x06 ; 6 + 134c: 80 81 ld r24, Z + 134e: 80 61 ori r24, 0x10 ; 16 + 1350: 80 83 st Z, r24 TC_PSU.CTRLB = 0x10 | TC_WGMODE_SINGLESLOPE_gc; //CCAEN is set - 13a4: e0 e4 ldi r30, 0x40 ; 64 - 13a6: f9 e0 ldi r31, 0x09 ; 9 - 13a8: 83 e1 ldi r24, 0x13 ; 19 - 13aa: 81 83 std Z+1, r24 ; 0x01 + 1352: e0 e4 ldi r30, 0x40 ; 64 + 1354: f9 e0 ldi r31, 0x09 ; 9 + 1356: 83 e1 ldi r24, 0x13 ; 19 + 1358: 81 83 std Z+1, r24 ; 0x01 TC_PSU.CTRLE = TC_BYTEM_NORMAL_gc; - 13ac: 14 82 std Z+4, r1 ; 0x04 + 135a: 14 82 std Z+4, r1 ; 0x04 TC_PSU.INTCTRLA = TC_OVFINTLVL_MED_gc; - 13ae: 82 e0 ldi r24, 0x02 ; 2 - 13b0: 86 83 std Z+6, r24 ; 0x06 + 135c: 82 e0 ldi r24, 0x02 ; 2 + 135e: 86 83 std Z+6, r24 ; 0x06 TC_PSU.PER = PSU_PER; // Max value of CNT - 13b2: a6 a3 std Z+38, r26 ; 0x26 - 13b4: b7 a3 std Z+39, r27 ; 0x27 + 1360: a6 a3 std Z+38, r26 ; 0x26 + 1362: b7 a3 std Z+39, r27 ; 0x27 TC_PSU.CCA = 0; //Initial Duty cycle of 0% - 13b6: 10 a6 std Z+40, r1 ; 0x28 - 13b8: 11 a6 std Z+41, r1 ; 0x29 + 1364: 10 a6 std Z+40, r1 ; 0x28 + 1366: 11 a6 std Z+41, r1 ; 0x29 TC_PSU.CTRLA = TC_CLKSEL_DIV1_gc; - 13ba: 81 e0 ldi r24, 0x01 ; 1 - 13bc: 80 83 st Z, r24 - 13be: 08 95 ret + 1368: 81 e0 ldi r24, 0x01 ; 1 + 136a: 80 83 st Z, r24 + 136c: 08 95 ret -000013c0 <__vector_83>: +0000136e <__vector_83>: TCC1.PER = 1800; // Max value of CNT TCC1.CTRLA = TC_CLKSEL_DIV1_gc; */ } ISR(TC_PSU_OVF){ - 13c0: 1f 92 push r1 - 13c2: 0f 92 push r0 - 13c4: 0f b6 in r0, 0x3f ; 63 - 13c6: 0f 92 push r0 - 13c8: 11 24 eor r1, r1 - 13ca: 2f 93 push r18 - 13cc: 3f 93 push r19 - 13ce: 4f 93 push r20 - 13d0: 5f 93 push r21 - 13d2: 8f 93 push r24 - 13d4: 9f 93 push r25 - 13d6: ef 93 push r30 - 13d8: ff 93 push r31 - 13da: cf 93 push r28 - 13dc: df 93 push r29 - 13de: 1f 92 push r1 - 13e0: cd b7 in r28, 0x3d ; 61 - 13e2: de b7 in r29, 0x3e ; 62 + 136e: 1f 92 push r1 + 1370: 0f 92 push r0 + 1372: 0f b6 in r0, 0x3f ; 63 + 1374: 0f 92 push r0 + 1376: 11 24 eor r1, r1 + 1378: 2f 93 push r18 + 137a: 3f 93 push r19 + 137c: 4f 93 push r20 + 137e: 5f 93 push r21 + 1380: 8f 93 push r24 + 1382: 9f 93 push r25 + 1384: ef 93 push r30 + 1386: ff 93 push r31 + 1388: cf 93 push r28 + 138a: df 93 push r29 + 138c: 1f 92 push r1 + 138e: cd b7 in r28, 0x3d ; 61 + 1390: de b7 in r29, 0x3e ; 62 char tempvar; char err; volatile char nothing; TC_PSU.INTFLAGS = 0xff; - 13e4: 8f ef ldi r24, 0xFF ; 255 - 13e6: 80 93 4c 09 sts 0x094C, r24 ; 0x80094c <__TEXT_REGION_LENGTH__+0x70094c> + 1392: 8f ef ldi r24, 0xFF ; 255 + 1394: 80 93 4c 09 sts 0x094C, r24 ; 0x80094c <__TEXT_REGION_LENGTH__+0x70094c> if (global_mode == 7){ - 13ea: 80 91 09 20 lds r24, 0x2009 ; 0x802009 - 13ee: 87 30 cpi r24, 0x07 ; 7 - 13f0: 31 f4 brne .+12 ; 0x13fe <__vector_83+0x3e> + 1398: 80 91 09 20 lds r24, 0x2009 ; 0x802009 + 139c: 87 30 cpi r24, 0x07 ; 7 + 139e: 31 f4 brne .+12 ; 0x13ac <__vector_83+0x3e> nothing = ADCA.CH1.RESL; - 13f2: e0 e0 ldi r30, 0x00 ; 0 - 13f4: f2 e0 ldi r31, 0x02 ; 2 - 13f6: 84 a5 ldd r24, Z+44 ; 0x2c - 13f8: 89 83 std Y+1, r24 ; 0x01 + 13a0: e0 e0 ldi r30, 0x00 ; 0 + 13a2: f2 e0 ldi r31, 0x02 ; 2 + 13a4: 84 a5 ldd r24, Z+44 ; 0x2c + 13a6: 89 83 std Y+1, r24 ; 0x01 tempvar = ADCA.CH1.RESH; - 13fa: 95 a5 ldd r25, Z+45 ; 0x2d - 13fc: 02 c0 rjmp .+4 ; 0x1402 <__vector_83+0x42> + 13a8: 95 a5 ldd r25, Z+45 ; 0x2d + 13aa: 02 c0 rjmp .+4 ; 0x13b0 <__vector_83+0x42> } else{ tempvar = ADCA.CH1.RESL; - 13fe: 90 91 2c 02 lds r25, 0x022C ; 0x80022c <__TEXT_REGION_LENGTH__+0x70022c> + 13ac: 90 91 2c 02 lds r25, 0x022C ; 0x80022c <__TEXT_REGION_LENGTH__+0x70022c> } //tempvar = (global_mode == 7 ? (char) ADCA.CH1.RESH : (char) ADCA.CH1.RESL); //test_byte = tempvar; err = (char) (PSU_target - tempvar); - 1402: 80 91 95 20 lds r24, 0x2095 ; 0x802095 - 1406: 89 1b sub r24, r25 + 13b0: 80 91 95 20 lds r24, 0x2095 ; 0x802095 + 13b4: 89 1b sub r24, r25 if ((err > 1) & ((unsigned short) TC_PSU.CCA < PSU_PER - jump) ){ - 1408: 20 91 68 09 lds r18, 0x0968 ; 0x800968 <__TEXT_REGION_LENGTH__+0x700968> - 140c: 30 91 69 09 lds r19, 0x0969 ; 0x800969 <__TEXT_REGION_LENGTH__+0x700969> - 1410: 91 e0 ldi r25, 0x01 ; 1 - 1412: 82 30 cpi r24, 0x02 ; 2 - 1414: 0c f4 brge .+2 ; 0x1418 <__vector_83+0x58> - 1416: 90 e0 ldi r25, 0x00 ; 0 - 1418: 99 23 and r25, r25 - 141a: c9 f0 breq .+50 ; 0x144e <__vector_83+0x8e> - 141c: 91 e0 ldi r25, 0x01 ; 1 - 141e: 2a 3f cpi r18, 0xFA ; 250 - 1420: 37 40 sbci r19, 0x07 ; 7 - 1422: 08 f0 brcs .+2 ; 0x1426 <__vector_83+0x66> - 1424: 90 e0 ldi r25, 0x00 ; 0 - 1426: 99 23 and r25, r25 - 1428: 91 f0 breq .+36 ; 0x144e <__vector_83+0x8e> + 13b6: 20 91 68 09 lds r18, 0x0968 ; 0x800968 <__TEXT_REGION_LENGTH__+0x700968> + 13ba: 30 91 69 09 lds r19, 0x0969 ; 0x800969 <__TEXT_REGION_LENGTH__+0x700969> + 13be: 91 e0 ldi r25, 0x01 ; 1 + 13c0: 82 30 cpi r24, 0x02 ; 2 + 13c2: 0c f4 brge .+2 ; 0x13c6 <__vector_83+0x58> + 13c4: 90 e0 ldi r25, 0x00 ; 0 + 13c6: 99 23 and r25, r25 + 13c8: c9 f0 breq .+50 ; 0x13fc <__vector_83+0x8e> + 13ca: 91 e0 ldi r25, 0x01 ; 1 + 13cc: 2a 3f cpi r18, 0xFA ; 250 + 13ce: 37 40 sbci r19, 0x07 ; 7 + 13d0: 08 f0 brcs .+2 ; 0x13d4 <__vector_83+0x66> + 13d2: 90 e0 ldi r25, 0x00 ; 0 + 13d4: 99 23 and r25, r25 + 13d6: 91 f0 breq .+36 ; 0x13fc <__vector_83+0x8e> TC_PSU.CCABUF = TC_PSU.CCA + ((err > 8) ? jump : 1); - 142a: 20 91 68 09 lds r18, 0x0968 ; 0x800968 <__TEXT_REGION_LENGTH__+0x700968> - 142e: 30 91 69 09 lds r19, 0x0969 ; 0x800969 <__TEXT_REGION_LENGTH__+0x700969> - 1432: 89 30 cpi r24, 0x09 ; 9 - 1434: 1c f4 brge .+6 ; 0x143c <__vector_83+0x7c> - 1436: 81 e0 ldi r24, 0x01 ; 1 - 1438: 90 e0 ldi r25, 0x00 ; 0 - 143a: 02 c0 rjmp .+4 ; 0x1440 <__vector_83+0x80> - 143c: 86 e0 ldi r24, 0x06 ; 6 - 143e: 90 e0 ldi r25, 0x00 ; 0 - 1440: 82 0f add r24, r18 - 1442: 93 1f adc r25, r19 - 1444: 80 93 78 09 sts 0x0978, r24 ; 0x800978 <__TEXT_REGION_LENGTH__+0x700978> - 1448: 90 93 79 09 sts 0x0979, r25 ; 0x800979 <__TEXT_REGION_LENGTH__+0x700979> - 144c: 23 c0 rjmp .+70 ; 0x1494 <__vector_83+0xd4> + 13d8: 20 91 68 09 lds r18, 0x0968 ; 0x800968 <__TEXT_REGION_LENGTH__+0x700968> + 13dc: 30 91 69 09 lds r19, 0x0969 ; 0x800969 <__TEXT_REGION_LENGTH__+0x700969> + 13e0: 89 30 cpi r24, 0x09 ; 9 + 13e2: 1c f4 brge .+6 ; 0x13ea <__vector_83+0x7c> + 13e4: 81 e0 ldi r24, 0x01 ; 1 + 13e6: 90 e0 ldi r25, 0x00 ; 0 + 13e8: 02 c0 rjmp .+4 ; 0x13ee <__vector_83+0x80> + 13ea: 86 e0 ldi r24, 0x06 ; 6 + 13ec: 90 e0 ldi r25, 0x00 ; 0 + 13ee: 82 0f add r24, r18 + 13f0: 93 1f adc r25, r19 + 13f2: 80 93 78 09 sts 0x0978, r24 ; 0x800978 <__TEXT_REGION_LENGTH__+0x700978> + 13f6: 90 93 79 09 sts 0x0979, r25 ; 0x800979 <__TEXT_REGION_LENGTH__+0x700979> + 13fa: 23 c0 rjmp .+70 ; 0x1442 <__vector_83+0xd4> } else if ((err < -1) & ((unsigned short) TC_PSU.CCA > jump)){ - 144e: 20 91 68 09 lds r18, 0x0968 ; 0x800968 <__TEXT_REGION_LENGTH__+0x700968> - 1452: 30 91 69 09 lds r19, 0x0969 ; 0x800969 <__TEXT_REGION_LENGTH__+0x700969> - 1456: 91 e0 ldi r25, 0x01 ; 1 - 1458: 8f 3f cpi r24, 0xFF ; 255 - 145a: 0c f0 brlt .+2 ; 0x145e <__vector_83+0x9e> - 145c: 90 e0 ldi r25, 0x00 ; 0 - 145e: 99 23 and r25, r25 - 1460: c9 f0 breq .+50 ; 0x1494 <__vector_83+0xd4> - 1462: 91 e0 ldi r25, 0x01 ; 1 - 1464: 27 30 cpi r18, 0x07 ; 7 - 1466: 31 05 cpc r19, r1 - 1468: 08 f4 brcc .+2 ; 0x146c <__vector_83+0xac> - 146a: 90 e0 ldi r25, 0x00 ; 0 - 146c: 99 23 and r25, r25 - 146e: 91 f0 breq .+36 ; 0x1494 <__vector_83+0xd4> + 13fc: 20 91 68 09 lds r18, 0x0968 ; 0x800968 <__TEXT_REGION_LENGTH__+0x700968> + 1400: 30 91 69 09 lds r19, 0x0969 ; 0x800969 <__TEXT_REGION_LENGTH__+0x700969> + 1404: 91 e0 ldi r25, 0x01 ; 1 + 1406: 8f 3f cpi r24, 0xFF ; 255 + 1408: 0c f0 brlt .+2 ; 0x140c <__vector_83+0x9e> + 140a: 90 e0 ldi r25, 0x00 ; 0 + 140c: 99 23 and r25, r25 + 140e: c9 f0 breq .+50 ; 0x1442 <__vector_83+0xd4> + 1410: 91 e0 ldi r25, 0x01 ; 1 + 1412: 27 30 cpi r18, 0x07 ; 7 + 1414: 31 05 cpc r19, r1 + 1416: 08 f4 brcc .+2 ; 0x141a <__vector_83+0xac> + 1418: 90 e0 ldi r25, 0x00 ; 0 + 141a: 99 23 and r25, r25 + 141c: 91 f0 breq .+36 ; 0x1442 <__vector_83+0xd4> TC_PSU.CCABUF = TC_PSU.CCA - ((err < -8) ? jump : 1); - 1470: 20 91 68 09 lds r18, 0x0968 ; 0x800968 <__TEXT_REGION_LENGTH__+0x700968> - 1474: 30 91 69 09 lds r19, 0x0969 ; 0x800969 <__TEXT_REGION_LENGTH__+0x700969> - 1478: 88 3f cpi r24, 0xF8 ; 248 - 147a: 1c f0 brlt .+6 ; 0x1482 <__vector_83+0xc2> - 147c: 81 e0 ldi r24, 0x01 ; 1 - 147e: 90 e0 ldi r25, 0x00 ; 0 - 1480: 02 c0 rjmp .+4 ; 0x1486 <__vector_83+0xc6> - 1482: 86 e0 ldi r24, 0x06 ; 6 - 1484: 90 e0 ldi r25, 0x00 ; 0 - 1486: a9 01 movw r20, r18 - 1488: 48 1b sub r20, r24 - 148a: 59 0b sbc r21, r25 - 148c: 40 93 78 09 sts 0x0978, r20 ; 0x800978 <__TEXT_REGION_LENGTH__+0x700978> - 1490: 50 93 79 09 sts 0x0979, r21 ; 0x800979 <__TEXT_REGION_LENGTH__+0x700979> + 141e: 20 91 68 09 lds r18, 0x0968 ; 0x800968 <__TEXT_REGION_LENGTH__+0x700968> + 1422: 30 91 69 09 lds r19, 0x0969 ; 0x800969 <__TEXT_REGION_LENGTH__+0x700969> + 1426: 88 3f cpi r24, 0xF8 ; 248 + 1428: 1c f0 brlt .+6 ; 0x1430 <__vector_83+0xc2> + 142a: 81 e0 ldi r24, 0x01 ; 1 + 142c: 90 e0 ldi r25, 0x00 ; 0 + 142e: 02 c0 rjmp .+4 ; 0x1434 <__vector_83+0xc6> + 1430: 86 e0 ldi r24, 0x06 ; 6 + 1432: 90 e0 ldi r25, 0x00 ; 0 + 1434: a9 01 movw r20, r18 + 1436: 48 1b sub r20, r24 + 1438: 59 0b sbc r21, r25 + 143a: 40 93 78 09 sts 0x0978, r20 ; 0x800978 <__TEXT_REGION_LENGTH__+0x700978> + 143e: 50 93 79 09 sts 0x0979, r21 ; 0x800979 <__TEXT_REGION_LENGTH__+0x700979> } - 1494: 0f 90 pop r0 - 1496: df 91 pop r29 - 1498: cf 91 pop r28 - 149a: ff 91 pop r31 - 149c: ef 91 pop r30 - 149e: 9f 91 pop r25 - 14a0: 8f 91 pop r24 - 14a2: 5f 91 pop r21 - 14a4: 4f 91 pop r20 - 14a6: 3f 91 pop r19 - 14a8: 2f 91 pop r18 - 14aa: 0f 90 pop r0 - 14ac: 0f be out 0x3f, r0 ; 63 - 14ae: 0f 90 pop r0 - 14b0: 1f 90 pop r1 - 14b2: 18 95 reti + 1442: 0f 90 pop r0 + 1444: df 91 pop r29 + 1446: cf 91 pop r28 + 1448: ff 91 pop r31 + 144a: ef 91 pop r30 + 144c: 9f 91 pop r25 + 144e: 8f 91 pop r24 + 1450: 5f 91 pop r21 + 1452: 4f 91 pop r20 + 1454: 3f 91 pop r19 + 1456: 2f 91 pop r18 + 1458: 0f 90 pop r0 + 145a: 0f be out 0x3f, r0 ; 63 + 145c: 0f 90 pop r0 + 145e: 1f 90 pop r1 + 1460: 18 95 reti -000014b4 : +00001462 : #include "tiny_uart.h" #include "globals.h" void tiny_uart_setup(void){ PR.PRPC &= 0b11101111; - 14b4: e0 e7 ldi r30, 0x70 ; 112 - 14b6: f0 e0 ldi r31, 0x00 ; 0 - 14b8: 83 81 ldd r24, Z+3 ; 0x03 - 14ba: 8f 7e andi r24, 0xEF ; 239 - 14bc: 83 83 std Z+3, r24 ; 0x03 + 1462: e0 e7 ldi r30, 0x70 ; 112 + 1464: f0 e0 ldi r31, 0x00 ; 0 + 1466: 83 81 ldd r24, Z+3 ; 0x03 + 1468: 8f 7e andi r24, 0xEF ; 239 + 146a: 83 83 std Z+3, r24 ; 0x03 //PR.PRPE &= 0b11111110; ??? PORTC.DIR |= 0b10101010; - 14be: e0 e4 ldi r30, 0x40 ; 64 - 14c0: f6 e0 ldi r31, 0x06 ; 6 - 14c2: 80 81 ld r24, Z - 14c4: 8a 6a ori r24, 0xAA ; 170 - 14c6: 80 83 st Z, r24 + 146c: e0 e4 ldi r30, 0x40 ; 64 + 146e: f6 e0 ldi r31, 0x06 ; 6 + 1470: 80 81 ld r24, Z + 1472: 8a 6a ori r24, 0xAA ; 170 + 1474: 80 83 st Z, r24 PORTC.OUT = 0xff; - 14c8: 8f ef ldi r24, 0xFF ; 255 - 14ca: 84 83 std Z+4, r24 ; 0x04 + 1476: 8f ef ldi r24, 0xFF ; 255 + 1478: 84 83 std Z+4, r24 ; 0x04 PORTC.PIN2CTRL = PORT_INVEN_bm | PORT_OPC_PULLUP_gc; - 14cc: 88 e5 ldi r24, 0x58 ; 88 - 14ce: 82 8b std Z+18, r24 ; 0x12 + 147a: 88 e5 ldi r24, 0x58 ; 88 + 147c: 82 8b std Z+18, r24 ; 0x12 //PORTC.REMAP = 0x10; //Remap USART to [7:4] //#ifndef VERO // PORTC.REMAP = 0x20; //Swap MOSI and SCK - for small boards only!!! //#endif USARTC0.CTRLA = USART_RXCINTLVL_HI_gc; - 14d0: e0 ea ldi r30, 0xA0 ; 160 - 14d2: f8 e0 ldi r31, 0x08 ; 8 - 14d4: 80 e3 ldi r24, 0x30 ; 48 - 14d6: 83 83 std Z+3, r24 ; 0x03 + 147e: e0 ea ldi r30, 0xA0 ; 160 + 1480: f8 e0 ldi r31, 0x08 ; 8 + 1482: 80 e3 ldi r24, 0x30 ; 48 + 1484: 83 83 std Z+3, r24 ; 0x03 USARTC0.CTRLC = USART_CMODE_MSPI_gc | 0b00000100; //LSB received first, UPCHA disabled - 14d8: 84 ec ldi r24, 0xC4 ; 196 - 14da: 85 83 std Z+5, r24 ; 0x05 + 1486: 84 ec ldi r24, 0xC4 ; 196 + 1488: 85 83 std Z+5, r24 ; 0x05 #if OVERCLOCK == 48 USARTC0.BAUDCTRLA = 7; //BSEL = fper/(2fbaud) -1; 48/(2*3) - 1 = 7 - 14dc: 87 e0 ldi r24, 0x07 ; 7 - 14de: 86 83 std Z+6, r24 ; 0x06 + 148a: 87 e0 ldi r24, 0x07 ; 7 + 148c: 86 83 std Z+6, r24 ; 0x06 #else USARTC0.BAUDCTRLA = 3; //BSEL = fper/(2fbaud) -1; 24/(2*3) - 1 = 3 #endif USARTC0.BAUDCTRLB = 0x00;// USART_BSCALE0_bm goes to 1.5MHz for some reason; - 14e0: 17 82 std Z+7, r1 ; 0x07 + 148e: 17 82 std Z+7, r1 ; 0x07 USARTC0.CTRLB = USART_RXEN_bm | USART_TXEN_bm; - 14e2: 88 e1 ldi r24, 0x18 ; 24 - 14e4: 84 83 std Z+4, r24 ; 0x04 - 14e6: 08 95 ret + 1490: 88 e1 ldi r24, 0x18 ; 24 + 1492: 84 83 std Z+4, r24 ; 0x04 + 1494: 08 95 ret -000014e8 : +00001496 : } void tiny_spi_setup(void){ //Power Reduction disable PR.PRPC &= 0b11110111; - 14e8: e0 e7 ldi r30, 0x70 ; 112 - 14ea: f0 e0 ldi r31, 0x00 ; 0 - 14ec: 83 81 ldd r24, Z+3 ; 0x03 - 14ee: 87 7f andi r24, 0xF7 ; 247 - 14f0: 83 83 std Z+3, r24 ; 0x03 + 1496: e0 e7 ldi r30, 0x70 ; 112 + 1498: f0 e0 ldi r31, 0x00 ; 0 + 149a: 83 81 ldd r24, Z+3 ; 0x03 + 149c: 87 7f andi r24, 0xF7 ; 247 + 149e: 83 83 std Z+3, r24 ; 0x03 //SPI enable SPIC.CTRL = SPI_ENABLE_bm; //Slave mode - 14f2: e0 ec ldi r30, 0xC0 ; 192 - 14f4: f8 e0 ldi r31, 0x08 ; 8 - 14f6: 80 e4 ldi r24, 0x40 ; 64 - 14f8: 80 83 st Z, r24 + 14a0: e0 ec ldi r30, 0xC0 ; 192 + 14a2: f8 e0 ldi r31, 0x08 ; 8 + 14a4: 80 e4 ldi r24, 0x40 ; 64 + 14a6: 80 83 st Z, r24 SPIC.INTCTRL = SPI_INTLVL_OFF_gc; - 14fa: 11 82 std Z+1, r1 ; 0x01 + 14a8: 11 82 std Z+1, r1 ; 0x01 //#ifdef VERO PORTC.PIN5CTRL = PORT_INVEN_bm | PORT_OPC_PULLUP_gc; - 14fc: 88 e5 ldi r24, 0x58 ; 88 - 14fe: 80 93 55 06 sts 0x0655, r24 ; 0x800655 <__TEXT_REGION_LENGTH__+0x700655> - 1502: 08 95 ret + 14aa: 88 e5 ldi r24, 0x58 ; 88 + 14ac: 80 93 55 06 sts 0x0655, r24 ; 0x800655 <__TEXT_REGION_LENGTH__+0x700655> + 14b0: 08 95 ret -00001504 <__vector_24>: +000014b2 <__vector_24>: //#endif return; } ISR(SPIC_INT_vect){ - 1504: 1f 92 push r1 - 1506: 0f 92 push r0 - 1508: 0f b6 in r0, 0x3f ; 63 - 150a: 0f 92 push r0 - 150c: 11 24 eor r1, r1 + 14b2: 1f 92 push r1 + 14b4: 0f 92 push r0 + 14b6: 0f b6 in r0, 0x3f ; 63 + 14b8: 0f 92 push r0 + 14ba: 11 24 eor r1, r1 asm("nop"); - 150e: 00 00 nop + 14bc: 00 00 nop } - 1510: 0f 90 pop r0 - 1512: 0f be out 0x3f, r0 ; 63 - 1514: 0f 90 pop r0 - 1516: 1f 90 pop r1 - 1518: 18 95 reti + 14be: 0f 90 pop r0 + 14c0: 0f be out 0x3f, r0 ; 63 + 14c2: 0f 90 pop r0 + 14c4: 1f 90 pop r1 + 14c6: 18 95 reti -0000151a <__vector_25>: +000014c8 <__vector_25>: ISR(USARTC0_RXC_vect){ - 151a: 1f 92 push r1 - 151c: 0f 92 push r0 - 151e: 0f b6 in r0, 0x3f ; 63 - 1520: 0f 92 push r0 - 1522: 11 24 eor r1, r1 - 1524: 8f 93 push r24 - 1526: ef 93 push r30 - 1528: ff 93 push r31 + 14c8: 1f 92 push r1 + 14ca: 0f 92 push r0 + 14cc: 0f b6 in r0, 0x3f ; 63 + 14ce: 0f 92 push r0 + 14d0: 11 24 eor r1, r1 + 14d2: 8f 93 push r24 + 14d4: ef 93 push r30 + 14d6: ff 93 push r31 unsigned char temp = USARTC0.DATA; - 152a: e0 ea ldi r30, 0xA0 ; 160 - 152c: f8 e0 ldi r31, 0x08 ; 8 - 152e: 80 81 ld r24, Z + 14d8: e0 ea ldi r30, 0xA0 ; 160 + 14da: f8 e0 ldi r31, 0x08 ; 8 + 14dc: 80 81 ld r24, Z USARTC0.DATA = temp; - 1530: 80 83 st Z, r24 - 1532: ff 91 pop r31 - 1534: ef 91 pop r30 - 1536: 8f 91 pop r24 - 1538: 0f 90 pop r0 - 153a: 0f be out 0x3f, r0 ; 63 - 153c: 0f 90 pop r0 - 153e: 1f 90 pop r1 - 1540: 18 95 reti + 14de: 80 83 st Z, r24 + 14e0: ff 91 pop r31 + 14e2: ef 91 pop r30 + 14e4: 8f 91 pop r24 + 14e6: 0f 90 pop r0 + 14e8: 0f be out 0x3f, r0 ; 63 + 14ea: 0f 90 pop r0 + 14ec: 1f 90 pop r1 + 14ee: 18 95 reti -00001542 : +000014f0 : } static inline void cpu_irq_restore(irqflags_t flags) { barrier(); SREG = flags; - 1542: 9f b7 in r25, 0x3f ; 63 - 1544: f8 94 cli - 1546: e8 2f mov r30, r24 - 1548: f0 e0 ldi r31, 0x00 ; 0 - 154a: e0 59 subi r30, 0x90 ; 144 - 154c: ff 4f sbci r31, 0xFF ; 255 - 154e: 60 95 com r22 - 1550: 80 81 ld r24, Z - 1552: 68 23 and r22, r24 - 1554: 60 83 st Z, r22 - 1556: 9f bf out 0x3f, r25 ; 63 - 1558: 08 95 ret + 14f0: 9f b7 in r25, 0x3f ; 63 + 14f2: f8 94 cli + 14f4: e8 2f mov r30, r24 + 14f6: f0 e0 ldi r31, 0x00 ; 0 + 14f8: e0 59 subi r30, 0x90 ; 144 + 14fa: ff 4f sbci r31, 0xFF ; 255 + 14fc: 60 95 com r22 + 14fe: 80 81 ld r24, Z + 1500: 68 23 and r22, r24 + 1502: 60 83 st Z, r22 + 1504: 9f bf out 0x3f, r25 ; 63 + 1506: 08 95 ret -0000155a : +00001508 : /* * Enable or disable prescaler depending on if the USB frequency is 6 * MHz or 48 MHz. Only 6 MHz USB frequency requires prescaling. */ if (frequency == 6) { - 155a: 86 30 cpi r24, 0x06 ; 6 - 155c: 11 f0 breq .+4 ; 0x1562 + 1508: 86 30 cpi r24, 0x06 ; 6 + 150a: 11 f0 breq .+4 ; 0x1510 prescaler = CLK_USBPSDIV_8_gc; } else { prescaler = 0; - 155e: 60 e0 ldi r22, 0x00 ; 0 - 1560: 01 c0 rjmp .+2 ; 0x1564 + 150c: 60 e0 ldi r22, 0x00 ; 0 + 150e: 01 c0 rjmp .+2 ; 0x1512 /* * Enable or disable prescaler depending on if the USB frequency is 6 * MHz or 48 MHz. Only 6 MHz USB frequency requires prescaling. */ if (frequency == 6) { prescaler = CLK_USBPSDIV_8_gc; - 1562: 68 e1 ldi r22, 0x18 ; 24 + 1510: 68 e1 ldi r22, 0x18 ; 24 static inline bool osc_is_ready(uint8_t id) { Assert(id != OSC_ID_USBSOF); return OSC.STATUS & id; - 1564: 80 91 51 00 lds r24, 0x0051 ; 0x800051 <__TEXT_REGION_LENGTH__+0x700051> + 1512: 80 91 51 00 lds r24, 0x0051 ; 0x800051 <__TEXT_REGION_LENGTH__+0x700051> /* * Switch to the system clock selected by the user. */ switch (CONFIG_USBCLK_SOURCE) { case USBCLK_SRC_RCOSC: if (!osc_is_ready(OSC_ID_RC32MHZ)) { - 1568: 81 fd sbrc r24, 1 - 156a: 26 c0 rjmp .+76 ; 0x15b8 + 1516: 81 fd sbrc r24, 1 + 1518: 26 c0 rjmp .+76 ; 0x1566 typedef uint8_t irqflags_t; static inline irqflags_t cpu_irq_save(void) { irqflags_t flags = SREG; - 156c: 9f b7 in r25, 0x3f ; 63 + 151a: 9f b7 in r25, 0x3f ; 63 cpu_irq_disable(); - 156e: f8 94 cli + 151c: f8 94 cli irqflags_t flags; Assert(id != OSC_ID_USBSOF); flags = cpu_irq_save(); OSC.CTRL |= id; - 1570: e0 e5 ldi r30, 0x50 ; 80 - 1572: f0 e0 ldi r31, 0x00 ; 0 - 1574: 80 81 ld r24, Z - 1576: 82 60 ori r24, 0x02 ; 2 - 1578: 80 83 st Z, r24 + 151e: e0 e5 ldi r30, 0x50 ; 80 + 1520: f0 e0 ldi r31, 0x00 ; 0 + 1522: 80 81 ld r24, Z + 1524: 82 60 ori r24, 0x02 ; 2 + 1526: 80 83 st Z, r24 } static inline void cpu_irq_restore(irqflags_t flags) { barrier(); SREG = flags; - 157a: 9f bf out 0x3f, r25 ; 63 + 1528: 9f bf out 0x3f, r25 ; 63 static inline bool osc_is_ready(uint8_t id) { Assert(id != OSC_ID_USBSOF); return OSC.STATUS & id; - 157c: 81 81 ldd r24, Z+1 ; 0x01 + 152a: 81 81 ldd r24, Z+1 ; 0x01 * * \param id A number identifying the oscillator to wait for. */ static inline void osc_wait_ready(uint8_t id) { while (!osc_is_ready(id)) { - 157e: 81 ff sbrs r24, 1 - 1580: fd cf rjmp .-6 ; 0x157c + 152c: 81 ff sbrs r24, 1 + 152e: fd cf rjmp .-6 ; 0x152a typedef uint8_t irqflags_t; static inline irqflags_t cpu_irq_save(void) { irqflags_t flags = SREG; - 1582: 9f b7 in r25, 0x3f ; 63 + 1530: 9f b7 in r25, 0x3f ; 63 cpu_irq_disable(); - 1584: f8 94 cli + 1532: f8 94 cli # if !XMEGA_E || (ref_id == OSC_ID_USBSOF) #endif ); OSC.DFLLCTRL &= ~(OSC_RC32MCREF_gm); - 1586: a0 e5 ldi r26, 0x50 ; 80 - 1588: b0 e0 ldi r27, 0x00 ; 0 - 158a: 16 96 adiw r26, 0x06 ; 6 - 158c: 8c 91 ld r24, X - 158e: 16 97 sbiw r26, 0x06 ; 6 - 1590: 89 7f andi r24, 0xF9 ; 249 - 1592: 16 96 adiw r26, 0x06 ; 6 - 1594: 8c 93 st X, r24 - 1596: 16 97 sbiw r26, 0x06 ; 6 + 1534: a0 e5 ldi r26, 0x50 ; 80 + 1536: b0 e0 ldi r27, 0x00 ; 0 + 1538: 16 96 adiw r26, 0x06 ; 6 + 153a: 8c 91 ld r24, X + 153c: 16 97 sbiw r26, 0x06 ; 6 + 153e: 89 7f andi r24, 0xF9 ; 249 + 1540: 16 96 adiw r26, 0x06 ; 6 + 1542: 8c 93 st X, r24 + 1544: 16 97 sbiw r26, 0x06 ; 6 else if (ref_id == OSC_ID_USBSOF) { /* * Calibrate 32MRC at 48MHz using USB SOF * 48MHz / 1kHz = 0xBB80 */ DFLLRC32M.COMP1 = 0x80; - 1598: e0 e6 ldi r30, 0x60 ; 96 - 159a: f0 e0 ldi r31, 0x00 ; 0 - 159c: 80 e8 ldi r24, 0x80 ; 128 - 159e: 85 83 std Z+5, r24 ; 0x05 + 1546: e0 e6 ldi r30, 0x60 ; 96 + 1548: f0 e0 ldi r31, 0x00 ; 0 + 154a: 80 e8 ldi r24, 0x80 ; 128 + 154c: 85 83 std Z+5, r24 ; 0x05 DFLLRC32M.COMP2 = 0xBB; - 15a0: 8b eb ldi r24, 0xBB ; 187 - 15a2: 86 83 std Z+6, r24 ; 0x06 + 154e: 8b eb ldi r24, 0xBB ; 187 + 1550: 86 83 std Z+6, r24 ; 0x06 OSC.DFLLCTRL |= OSC_RC32MCREF_USBSOF_gc; - 15a4: 16 96 adiw r26, 0x06 ; 6 - 15a6: 8c 91 ld r24, X - 15a8: 16 97 sbiw r26, 0x06 ; 6 - 15aa: 84 60 ori r24, 0x04 ; 4 - 15ac: 16 96 adiw r26, 0x06 ; 6 - 15ae: 8c 93 st X, r24 + 1552: 16 96 adiw r26, 0x06 ; 6 + 1554: 8c 91 ld r24, X + 1556: 16 97 sbiw r26, 0x06 ; 6 + 1558: 84 60 ori r24, 0x04 ; 4 + 155a: 16 96 adiw r26, 0x06 ; 6 + 155c: 8c 93 st X, r24 OSC.DFLLCTRL &= ~(OSC_RC32MCREF_bm); # endif } #endif DFLLRC32M.CTRL |= DFLL_ENABLE_bm; - 15b0: 80 81 ld r24, Z - 15b2: 81 60 ori r24, 0x01 ; 1 - 15b4: 80 83 st Z, r24 + 155e: 80 81 ld r24, Z + 1560: 81 60 ori r24, 0x01 ; 1 + 1562: 80 83 st Z, r24 } static inline void cpu_irq_restore(irqflags_t flags) { barrier(); SREG = flags; - 15b6: 9f bf out 0x3f, r25 ; 63 + 1564: 9f bf out 0x3f, r25 ; 63 } osc_enable_autocalibration(OSC_ID_RC32MHZ, CONFIG_OSC_AUTOCAL_RC32MHZ_REF_OSC); #endif } ccp_write_io((uint8_t *)&CLK.USBCTRL, (prescaler) - 15b8: 63 60 ori r22, 0x03 ; 3 - 15ba: 84 e4 ldi r24, 0x44 ; 68 - 15bc: 90 e0 ldi r25, 0x00 ; 0 - 15be: 0c d5 rcall .+2584 ; 0x1fd8 + 1566: 63 60 ori r22, 0x03 ; 3 + 1568: 84 e4 ldi r24, 0x44 ; 68 + 156a: 90 e0 ldi r25, 0x00 ; 0 + 156c: 0c d5 rcall .+2584 ; 0x1f86 default: Assert(false); break; } sysclk_enable_module(SYSCLK_PORT_GEN, SYSCLK_USB); - 15c0: 60 e4 ldi r22, 0x40 ; 64 - 15c2: 80 e0 ldi r24, 0x00 ; 0 - 15c4: be cf rjmp .-132 ; 0x1542 - 15c6: 08 95 ret + 156e: 60 e4 ldi r22, 0x40 ; 64 + 1570: 80 e0 ldi r24, 0x00 ; 0 + 1572: be cf rjmp .-132 ; 0x14f0 + 1574: 08 95 ret -000015c8 : +00001576 : } uint8_t udi_vendor_getsetting(void) { return udi_vendor_alternate_setting; } - 15c8: 80 91 9a 20 lds r24, 0x209A ; 0x80209a - 15cc: 08 95 ret + 1576: 80 91 9a 20 lds r24, 0x209A ; 0x80209a + 157a: 08 95 ret -000015ce : +0000157c : * \name Internal routines */ //@{ bool udi_vendor_enable(void) { udi_vendor_alternate_setting = udc_get_interface_desc()->bAlternateSetting; - 15ce: 1c d1 rcall .+568 ; 0x1808 - 15d0: fc 01 movw r30, r24 - 15d2: 83 81 ldd r24, Z+3 ; 0x03 - 15d4: 80 93 9a 20 sts 0x209A, r24 ; 0x80209a + 157c: 1c d1 rcall .+568 ; 0x17b6 + 157e: fc 01 movw r30, r24 + 1580: 83 81 ldd r24, Z+3 ; 0x03 + 1582: 80 93 9a 20 sts 0x209A, r24 ; 0x80209a if (0 == udi_vendor_alternate_setting) { - 15d8: 81 11 cpse r24, r1 - 15da: 02 c0 rjmp .+4 ; 0x15e0 + 1586: 81 11 cpse r24, r1 + 1588: 02 c0 rjmp .+4 ; 0x158e // Call application callback // to notify that interface is enabled if (!UDI_VENDOR_ENABLE_EXT()) { - 15dc: cc c9 rjmp .-3176 ; 0x976 - 15de: 08 95 ret + 158a: f4 c9 rjmp .-3096 ; 0x974 + 158c: 08 95 ret return false; } } return true; - 15e0: 81 e0 ldi r24, 0x01 ; 1 + 158e: 81 e0 ldi r24, 0x01 ; 1 } - 15e2: 08 95 ret + 1590: 08 95 ret -000015e4 : +00001592 : void udi_vendor_disable(void) { if (1 == udi_vendor_alternate_setting) { - 15e4: 80 91 9a 20 lds r24, 0x209A ; 0x80209a - 15e8: 81 30 cpi r24, 0x01 ; 1 - 15ea: 09 f4 brne .+2 ; 0x15ee + 1592: 80 91 9a 20 lds r24, 0x209A ; 0x80209a + 1596: 81 30 cpi r24, 0x01 ; 1 + 1598: 09 f4 brne .+2 ; 0x159c UDI_VENDOR_DISABLE_EXT(); - 15ec: 01 ca rjmp .-3070 ; 0x9f0 - 15ee: 08 95 ret + 159a: 01 ca rjmp .-3070 ; 0x99e + 159c: 08 95 ret -000015f0 : +0000159e : } bool udi_vendor_setup(void) { if (Udd_setup_is_in()) { - 15f0: 80 91 9a 23 lds r24, 0x239A ; 0x80239a - 15f4: 88 23 and r24, r24 - 15f6: 4c f4 brge .+18 ; 0x160a + 159e: 80 91 9a 23 lds r24, 0x239A ; 0x80239a + 15a2: 88 23 and r24, r24 + 15a4: 4c f4 brge .+18 ; 0x15b8 if ((Udd_setup_type() == USB_REQ_TYPE_VENDOR) - 15f8: 80 76 andi r24, 0x60 ; 96 - 15fa: 80 34 cpi r24, 0x40 ; 64 - 15fc: a9 f4 brne .+42 ; 0x1628 + 15a6: 80 76 andi r24, 0x60 ; 96 + 15a8: 80 34 cpi r24, 0x40 ; 64 + 15aa: a9 f4 brne .+42 ; 0x15d6 && (udd_g_ctrlreq.req.bRequest == 0)) { - 15fe: 80 91 9b 23 lds r24, 0x239B ; 0x80239b - 1602: 81 11 cpse r24, r1 - 1604: 13 c0 rjmp .+38 ; 0x162c + 15ac: 80 91 9b 23 lds r24, 0x239B ; 0x80239b + 15b0: 81 11 cpse r24, r1 + 15b2: 13 c0 rjmp .+38 ; 0x15da return UDI_VENDOR_SETUP_IN_RECEIVED(); - 1606: f9 c9 rjmp .-3086 ; 0x9fa - 1608: 08 95 ret + 15b4: f9 c9 rjmp .-3086 ; 0x9a8 + 15b6: 08 95 ret } } if (Udd_setup_is_out()) { if ((Udd_setup_type() == USB_REQ_TYPE_VENDOR) - 160a: 80 76 andi r24, 0x60 ; 96 - 160c: 80 34 cpi r24, 0x40 ; 64 - 160e: 81 f4 brne .+32 ; 0x1630 + 15b8: 80 76 andi r24, 0x60 ; 96 + 15ba: 80 34 cpi r24, 0x40 ; 64 + 15bc: 81 f4 brne .+32 ; 0x15de && (udd_g_ctrlreq.req.bRequest == 0) - 1610: 80 91 9b 23 lds r24, 0x239B ; 0x80239b - 1614: 81 11 cpse r24, r1 - 1616: 0e c0 rjmp .+28 ; 0x1634 + 15be: 80 91 9b 23 lds r24, 0x239B ; 0x80239b + 15c2: 81 11 cpse r24, r1 + 15c4: 0e c0 rjmp .+28 ; 0x15e2 && (0 != udd_g_ctrlreq.req.wLength)) { - 1618: 80 91 a0 23 lds r24, 0x23A0 ; 0x8023a0 - 161c: 90 91 a1 23 lds r25, 0x23A1 ; 0x8023a1 - 1620: 89 2b or r24, r25 - 1622: 51 f0 breq .+20 ; 0x1638 + 15c6: 80 91 a0 23 lds r24, 0x23A0 ; 0x8023a0 + 15ca: 90 91 a1 23 lds r25, 0x23A1 ; 0x8023a1 + 15ce: 89 2b or r24, r25 + 15d0: 51 f0 breq .+20 ; 0x15e6 return UDI_VENDOR_SETUP_OUT_RECEIVED(); - 1624: e8 c9 rjmp .-3120 ; 0x9f6 - 1626: 08 95 ret + 15d2: e8 c9 rjmp .-3120 ; 0x9a4 + 15d4: 08 95 ret } } return false; // Not supported request - 1628: 80 e0 ldi r24, 0x00 ; 0 - 162a: 08 95 ret - 162c: 80 e0 ldi r24, 0x00 ; 0 - 162e: 08 95 ret - 1630: 80 e0 ldi r24, 0x00 ; 0 - 1632: 08 95 ret - 1634: 80 e0 ldi r24, 0x00 ; 0 - 1636: 08 95 ret - 1638: 80 e0 ldi r24, 0x00 ; 0 + 15d6: 80 e0 ldi r24, 0x00 ; 0 + 15d8: 08 95 ret + 15da: 80 e0 ldi r24, 0x00 ; 0 + 15dc: 08 95 ret + 15de: 80 e0 ldi r24, 0x00 ; 0 + 15e0: 08 95 ret + 15e2: 80 e0 ldi r24, 0x00 ; 0 + 15e4: 08 95 ret + 15e6: 80 e0 ldi r24, 0x00 ; 0 } - 163a: 08 95 ret + 15e8: 08 95 ret -0000163c : +000015ea : /*! \brief Stop the USB Device stack */ void udc_stop(void) { udd_disable(); udc_reset(); - 163c: e0 91 9f 20 lds r30, 0x209F ; 0x80209f - 1640: f0 91 a0 20 lds r31, 0x20A0 ; 0x8020a0 - 1644: 01 90 ld r0, Z+ - 1646: f0 81 ld r31, Z - 1648: e0 2d mov r30, r0 - 164a: 22 81 ldd r18, Z+2 ; 0x02 - 164c: 33 81 ldd r19, Z+3 ; 0x03 - 164e: 2e 0f add r18, r30 - 1650: 3f 1f adc r19, r31 - 1652: fc 01 movw r30, r24 - 1654: 40 81 ld r20, Z - 1656: e4 0f add r30, r20 - 1658: f1 1d adc r31, r1 - 165a: e2 17 cp r30, r18 - 165c: f3 07 cpc r31, r19 - 165e: b8 f4 brcc .+46 ; 0x168e - 1660: 81 81 ldd r24, Z+1 ; 0x01 - 1662: 84 30 cpi r24, 0x04 ; 4 - 1664: b9 f0 breq .+46 ; 0x1694 - 1666: 86 13 cpse r24, r22 - 1668: 09 c0 rjmp .+18 ; 0x167c - 166a: 05 c0 rjmp .+10 ; 0x1676 - 166c: 81 81 ldd r24, Z+1 ; 0x01 - 166e: 84 30 cpi r24, 0x04 ; 4 - 1670: a1 f0 breq .+40 ; 0x169a - 1672: 86 13 cpse r24, r22 - 1674: 03 c0 rjmp .+6 ; 0x167c - 1676: 8e 2f mov r24, r30 - 1678: 9f 2f mov r25, r31 - 167a: 08 95 ret - 167c: 80 81 ld r24, Z - 167e: e8 0f add r30, r24 - 1680: f1 1d adc r31, r1 - 1682: e2 17 cp r30, r18 - 1684: f3 07 cpc r31, r19 - 1686: 90 f3 brcs .-28 ; 0x166c - 1688: 80 e0 ldi r24, 0x00 ; 0 - 168a: 90 e0 ldi r25, 0x00 ; 0 - 168c: 08 95 ret - 168e: 80 e0 ldi r24, 0x00 ; 0 - 1690: 90 e0 ldi r25, 0x00 ; 0 - 1692: 08 95 ret - 1694: 80 e0 ldi r24, 0x00 ; 0 - 1696: 90 e0 ldi r25, 0x00 ; 0 - 1698: 08 95 ret - 169a: 80 e0 ldi r24, 0x00 ; 0 - 169c: 90 e0 ldi r25, 0x00 ; 0 - 169e: 08 95 ret + 15ea: e0 91 9f 20 lds r30, 0x209F ; 0x80209f + 15ee: f0 91 a0 20 lds r31, 0x20A0 ; 0x8020a0 + 15f2: 01 90 ld r0, Z+ + 15f4: f0 81 ld r31, Z + 15f6: e0 2d mov r30, r0 + 15f8: 22 81 ldd r18, Z+2 ; 0x02 + 15fa: 33 81 ldd r19, Z+3 ; 0x03 + 15fc: 2e 0f add r18, r30 + 15fe: 3f 1f adc r19, r31 + 1600: fc 01 movw r30, r24 + 1602: 40 81 ld r20, Z + 1604: e4 0f add r30, r20 + 1606: f1 1d adc r31, r1 + 1608: e2 17 cp r30, r18 + 160a: f3 07 cpc r31, r19 + 160c: b8 f4 brcc .+46 ; 0x163c + 160e: 81 81 ldd r24, Z+1 ; 0x01 + 1610: 84 30 cpi r24, 0x04 ; 4 + 1612: b9 f0 breq .+46 ; 0x1642 + 1614: 86 13 cpse r24, r22 + 1616: 09 c0 rjmp .+18 ; 0x162a + 1618: 05 c0 rjmp .+10 ; 0x1624 + 161a: 81 81 ldd r24, Z+1 ; 0x01 + 161c: 84 30 cpi r24, 0x04 ; 4 + 161e: a1 f0 breq .+40 ; 0x1648 + 1620: 86 13 cpse r24, r22 + 1622: 03 c0 rjmp .+6 ; 0x162a + 1624: 8e 2f mov r24, r30 + 1626: 9f 2f mov r25, r31 + 1628: 08 95 ret + 162a: 80 81 ld r24, Z + 162c: e8 0f add r30, r24 + 162e: f1 1d adc r31, r1 + 1630: e2 17 cp r30, r18 + 1632: f3 07 cpc r31, r19 + 1634: 90 f3 brcs .-28 ; 0x161a + 1636: 80 e0 ldi r24, 0x00 ; 0 + 1638: 90 e0 ldi r25, 0x00 ; 0 + 163a: 08 95 ret + 163c: 80 e0 ldi r24, 0x00 ; 0 + 163e: 90 e0 ldi r25, 0x00 ; 0 + 1640: 08 95 ret + 1642: 80 e0 ldi r24, 0x00 ; 0 + 1644: 90 e0 ldi r25, 0x00 ; 0 + 1646: 08 95 ret + 1648: 80 e0 ldi r24, 0x00 ; 0 + 164a: 90 e0 ldi r25, 0x00 ; 0 + 164c: 08 95 ret -000016a0 : - 16a0: 80 91 9c 23 lds r24, 0x239C ; 0x80239c - 16a4: 8f 77 andi r24, 0x7F ; 127 - 16a6: 0c 94 d6 13 jmp 0x27ac ; 0x27ac - 16aa: 08 95 ret +0000164e : + 164e: 80 91 9c 23 lds r24, 0x239C ; 0x80239c + 1652: 8f 77 andi r24, 0x7F ; 127 + 1654: 0c 94 ad 13 jmp 0x275a ; 0x275a + 1658: 08 95 ret -000016ac : - 16ac: 90 91 a2 20 lds r25, 0x20A2 ; 0x8020a2 - 16b0: 99 23 and r25, r25 - 16b2: 81 f1 breq .+96 ; 0x1714 - 16b4: e0 91 9f 20 lds r30, 0x209F ; 0x80209f - 16b8: f0 91 a0 20 lds r31, 0x20A0 ; 0x8020a0 - 16bc: 01 90 ld r0, Z+ - 16be: f0 81 ld r31, Z - 16c0: e0 2d mov r30, r0 - 16c2: 94 81 ldd r25, Z+4 ; 0x04 - 16c4: 89 17 cp r24, r25 - 16c6: 40 f5 brcc .+80 ; 0x1718 - 16c8: e0 93 9d 20 sts 0x209D, r30 ; 0x80209d - 16cc: f0 93 9e 20 sts 0x209E, r31 ; 0x80209e - 16d0: 22 81 ldd r18, Z+2 ; 0x02 - 16d2: 33 81 ldd r19, Z+3 ; 0x03 - 16d4: 2e 0f add r18, r30 - 16d6: 3f 1f adc r19, r31 - 16d8: e2 17 cp r30, r18 - 16da: f3 07 cpc r31, r19 - 16dc: f8 f4 brcc .+62 ; 0x171c - 16de: 91 81 ldd r25, Z+1 ; 0x01 - 16e0: 94 30 cpi r25, 0x04 ; 4 - 16e2: 61 f4 brne .+24 ; 0x16fc - 16e4: 92 81 ldd r25, Z+2 ; 0x02 - 16e6: 98 13 cpse r25, r24 - 16e8: 09 c0 rjmp .+18 ; 0x16fc - 16ea: 93 81 ldd r25, Z+3 ; 0x03 - 16ec: 96 13 cpse r25, r22 - 16ee: 06 c0 rjmp .+12 ; 0x16fc - 16f0: e0 93 9d 20 sts 0x209D, r30 ; 0x80209d - 16f4: f0 93 9e 20 sts 0x209E, r31 ; 0x80209e - 16f8: 81 e0 ldi r24, 0x01 ; 1 - 16fa: 08 95 ret - 16fc: 90 81 ld r25, Z - 16fe: e9 0f add r30, r25 - 1700: f1 1d adc r31, r1 - 1702: e2 17 cp r30, r18 - 1704: f3 07 cpc r31, r19 - 1706: 58 f3 brcs .-42 ; 0x16de - 1708: e0 93 9d 20 sts 0x209D, r30 ; 0x80209d - 170c: f0 93 9e 20 sts 0x209E, r31 ; 0x80209e - 1710: 80 e0 ldi r24, 0x00 ; 0 - 1712: 08 95 ret - 1714: 80 e0 ldi r24, 0x00 ; 0 - 1716: 08 95 ret - 1718: 80 e0 ldi r24, 0x00 ; 0 - 171a: 08 95 ret - 171c: 80 e0 ldi r24, 0x00 ; 0 - 171e: 08 95 ret +0000165a : + 165a: 90 91 a2 20 lds r25, 0x20A2 ; 0x8020a2 + 165e: 99 23 and r25, r25 + 1660: 81 f1 breq .+96 ; 0x16c2 + 1662: e0 91 9f 20 lds r30, 0x209F ; 0x80209f + 1666: f0 91 a0 20 lds r31, 0x20A0 ; 0x8020a0 + 166a: 01 90 ld r0, Z+ + 166c: f0 81 ld r31, Z + 166e: e0 2d mov r30, r0 + 1670: 94 81 ldd r25, Z+4 ; 0x04 + 1672: 89 17 cp r24, r25 + 1674: 40 f5 brcc .+80 ; 0x16c6 + 1676: e0 93 9d 20 sts 0x209D, r30 ; 0x80209d + 167a: f0 93 9e 20 sts 0x209E, r31 ; 0x80209e + 167e: 22 81 ldd r18, Z+2 ; 0x02 + 1680: 33 81 ldd r19, Z+3 ; 0x03 + 1682: 2e 0f add r18, r30 + 1684: 3f 1f adc r19, r31 + 1686: e2 17 cp r30, r18 + 1688: f3 07 cpc r31, r19 + 168a: f8 f4 brcc .+62 ; 0x16ca + 168c: 91 81 ldd r25, Z+1 ; 0x01 + 168e: 94 30 cpi r25, 0x04 ; 4 + 1690: 61 f4 brne .+24 ; 0x16aa + 1692: 92 81 ldd r25, Z+2 ; 0x02 + 1694: 98 13 cpse r25, r24 + 1696: 09 c0 rjmp .+18 ; 0x16aa + 1698: 93 81 ldd r25, Z+3 ; 0x03 + 169a: 96 13 cpse r25, r22 + 169c: 06 c0 rjmp .+12 ; 0x16aa + 169e: e0 93 9d 20 sts 0x209D, r30 ; 0x80209d + 16a2: f0 93 9e 20 sts 0x209E, r31 ; 0x80209e + 16a6: 81 e0 ldi r24, 0x01 ; 1 + 16a8: 08 95 ret + 16aa: 90 81 ld r25, Z + 16ac: e9 0f add r30, r25 + 16ae: f1 1d adc r31, r1 + 16b0: e2 17 cp r30, r18 + 16b2: f3 07 cpc r31, r19 + 16b4: 58 f3 brcs .-42 ; 0x168c + 16b6: e0 93 9d 20 sts 0x209D, r30 ; 0x80209d + 16ba: f0 93 9e 20 sts 0x209E, r31 ; 0x80209e + 16be: 80 e0 ldi r24, 0x00 ; 0 + 16c0: 08 95 ret + 16c2: 80 e0 ldi r24, 0x00 ; 0 + 16c4: 08 95 ret + 16c6: 80 e0 ldi r24, 0x00 ; 0 + 16c8: 08 95 ret + 16ca: 80 e0 ldi r24, 0x00 ; 0 + 16cc: 08 95 ret -00001720 : - 1720: ef 92 push r14 - 1722: ff 92 push r15 - 1724: 1f 93 push r17 - 1726: cf 93 push r28 - 1728: df 93 push r29 - 172a: c8 2f mov r28, r24 - 172c: 60 e0 ldi r22, 0x00 ; 0 - 172e: be df rcall .-132 ; 0x16ac - 1730: 18 2f mov r17, r24 - 1732: 88 23 and r24, r24 - 1734: 81 f1 breq .+96 ; 0x1796 - 1736: a0 91 9f 20 lds r26, 0x209F ; 0x80209f - 173a: b0 91 a0 20 lds r27, 0x20A0 ; 0x8020a0 - 173e: ec 2f mov r30, r28 - 1740: f0 e0 ldi r31, 0x00 ; 0 - 1742: ee 0f add r30, r30 - 1744: ff 1f adc r31, r31 - 1746: 12 96 adiw r26, 0x02 ; 2 - 1748: 8d 91 ld r24, X+ - 174a: 9c 91 ld r25, X - 174c: 13 97 sbiw r26, 0x03 ; 3 - 174e: e8 0f add r30, r24 - 1750: f9 1f adc r31, r25 - 1752: e0 80 ld r14, Z - 1754: f1 80 ldd r15, Z+1 ; 0x01 - 1756: d7 01 movw r26, r14 - 1758: 16 96 adiw r26, 0x06 ; 6 - 175a: ed 91 ld r30, X+ - 175c: fc 91 ld r31, X - 175e: 17 97 sbiw r26, 0x07 ; 7 - 1760: 09 95 icall - 1762: 68 2f mov r22, r24 - 1764: 8c 2f mov r24, r28 - 1766: a2 df rcall .-188 ; 0x16ac - 1768: 18 2f mov r17, r24 - 176a: 88 23 and r24, r24 - 176c: a1 f0 breq .+40 ; 0x1796 - 176e: c0 91 9d 20 lds r28, 0x209D ; 0x80209d - 1772: d0 91 9e 20 lds r29, 0x209E ; 0x80209e - 1776: 65 e0 ldi r22, 0x05 ; 5 - 1778: ce 01 movw r24, r28 - 177a: 60 df rcall .-320 ; 0x163c - 177c: ec 01 movw r28, r24 - 177e: 89 2b or r24, r25 - 1780: 21 f0 breq .+8 ; 0x178a - 1782: 8a 81 ldd r24, Y+2 ; 0x02 - 1784: 0e 94 ab 15 call 0x2b56 ; 0x2b56 - 1788: f6 cf rjmp .-20 ; 0x1776 - 178a: d7 01 movw r26, r14 - 178c: 12 96 adiw r26, 0x02 ; 2 - 178e: ed 91 ld r30, X+ - 1790: fc 91 ld r31, X - 1792: 13 97 sbiw r26, 0x03 ; 3 - 1794: 09 95 icall - 1796: 81 2f mov r24, r17 - 1798: df 91 pop r29 - 179a: cf 91 pop r28 - 179c: 1f 91 pop r17 - 179e: ff 90 pop r15 - 17a0: ef 90 pop r14 - 17a2: 08 95 ret +000016ce : + 16ce: ef 92 push r14 + 16d0: ff 92 push r15 + 16d2: 1f 93 push r17 + 16d4: cf 93 push r28 + 16d6: df 93 push r29 + 16d8: c8 2f mov r28, r24 + 16da: 60 e0 ldi r22, 0x00 ; 0 + 16dc: be df rcall .-132 ; 0x165a + 16de: 18 2f mov r17, r24 + 16e0: 88 23 and r24, r24 + 16e2: 81 f1 breq .+96 ; 0x1744 + 16e4: a0 91 9f 20 lds r26, 0x209F ; 0x80209f + 16e8: b0 91 a0 20 lds r27, 0x20A0 ; 0x8020a0 + 16ec: ec 2f mov r30, r28 + 16ee: f0 e0 ldi r31, 0x00 ; 0 + 16f0: ee 0f add r30, r30 + 16f2: ff 1f adc r31, r31 + 16f4: 12 96 adiw r26, 0x02 ; 2 + 16f6: 8d 91 ld r24, X+ + 16f8: 9c 91 ld r25, X + 16fa: 13 97 sbiw r26, 0x03 ; 3 + 16fc: e8 0f add r30, r24 + 16fe: f9 1f adc r31, r25 + 1700: e0 80 ld r14, Z + 1702: f1 80 ldd r15, Z+1 ; 0x01 + 1704: d7 01 movw r26, r14 + 1706: 16 96 adiw r26, 0x06 ; 6 + 1708: ed 91 ld r30, X+ + 170a: fc 91 ld r31, X + 170c: 17 97 sbiw r26, 0x07 ; 7 + 170e: 09 95 icall + 1710: 68 2f mov r22, r24 + 1712: 8c 2f mov r24, r28 + 1714: a2 df rcall .-188 ; 0x165a + 1716: 18 2f mov r17, r24 + 1718: 88 23 and r24, r24 + 171a: a1 f0 breq .+40 ; 0x1744 + 171c: c0 91 9d 20 lds r28, 0x209D ; 0x80209d + 1720: d0 91 9e 20 lds r29, 0x209E ; 0x80209e + 1724: 65 e0 ldi r22, 0x05 ; 5 + 1726: ce 01 movw r24, r28 + 1728: 60 df rcall .-320 ; 0x15ea + 172a: ec 01 movw r28, r24 + 172c: 89 2b or r24, r25 + 172e: 21 f0 breq .+8 ; 0x1738 + 1730: 8a 81 ldd r24, Y+2 ; 0x02 + 1732: 0e 94 82 15 call 0x2b04 ; 0x2b04 + 1736: f6 cf rjmp .-20 ; 0x1724 + 1738: d7 01 movw r26, r14 + 173a: 12 96 adiw r26, 0x02 ; 2 + 173c: ed 91 ld r30, X+ + 173e: fc 91 ld r31, X + 1740: 13 97 sbiw r26, 0x03 ; 3 + 1742: 09 95 icall + 1744: 81 2f mov r24, r17 + 1746: df 91 pop r29 + 1748: cf 91 pop r28 + 174a: 1f 91 pop r17 + 174c: ff 90 pop r15 + 174e: ef 90 pop r14 + 1750: 08 95 ret -000017a4 : - 17a4: 1f 93 push r17 - 17a6: cf 93 push r28 - 17a8: df 93 push r29 - 17aa: 18 2f mov r17, r24 - 17ac: 7f df rcall .-258 ; 0x16ac - 17ae: 88 23 and r24, r24 - 17b0: 39 f1 breq .+78 ; 0x1800 - 17b2: c0 91 9d 20 lds r28, 0x209D ; 0x80209d - 17b6: d0 91 9e 20 lds r29, 0x209E ; 0x80209e - 17ba: 65 e0 ldi r22, 0x05 ; 5 - 17bc: ce 01 movw r24, r28 - 17be: 3e df rcall .-388 ; 0x163c - 17c0: ec 01 movw r28, r24 - 17c2: 89 2b or r24, r25 - 17c4: 41 f0 breq .+16 ; 0x17d6 - 17c6: 4c 81 ldd r20, Y+4 ; 0x04 - 17c8: 5d 81 ldd r21, Y+5 ; 0x05 - 17ca: 6b 81 ldd r22, Y+3 ; 0x03 - 17cc: 8a 81 ldd r24, Y+2 ; 0x02 - 17ce: fb d7 rcall .+4086 ; 0x27c6 - 17d0: 81 11 cpse r24, r1 - 17d2: f3 cf rjmp .-26 ; 0x17ba - 17d4: 15 c0 rjmp .+42 ; 0x1800 - 17d6: a0 91 9f 20 lds r26, 0x209F ; 0x80209f - 17da: b0 91 a0 20 lds r27, 0x20A0 ; 0x8020a0 - 17de: e1 2f mov r30, r17 - 17e0: f0 e0 ldi r31, 0x00 ; 0 - 17e2: ee 0f add r30, r30 - 17e4: ff 1f adc r31, r31 - 17e6: 12 96 adiw r26, 0x02 ; 2 - 17e8: 8d 91 ld r24, X+ - 17ea: 9c 91 ld r25, X - 17ec: 13 97 sbiw r26, 0x03 ; 3 - 17ee: e8 0f add r30, r24 - 17f0: f9 1f adc r31, r25 +00001752 : + 1752: 1f 93 push r17 + 1754: cf 93 push r28 + 1756: df 93 push r29 + 1758: 18 2f mov r17, r24 + 175a: 7f df rcall .-258 ; 0x165a + 175c: 88 23 and r24, r24 + 175e: 39 f1 breq .+78 ; 0x17ae + 1760: c0 91 9d 20 lds r28, 0x209D ; 0x80209d + 1764: d0 91 9e 20 lds r29, 0x209E ; 0x80209e + 1768: 65 e0 ldi r22, 0x05 ; 5 + 176a: ce 01 movw r24, r28 + 176c: 3e df rcall .-388 ; 0x15ea + 176e: ec 01 movw r28, r24 + 1770: 89 2b or r24, r25 + 1772: 41 f0 breq .+16 ; 0x1784 + 1774: 4c 81 ldd r20, Y+4 ; 0x04 + 1776: 5d 81 ldd r21, Y+5 ; 0x05 + 1778: 6b 81 ldd r22, Y+3 ; 0x03 + 177a: 8a 81 ldd r24, Y+2 ; 0x02 + 177c: fb d7 rcall .+4086 ; 0x2774 + 177e: 81 11 cpse r24, r1 + 1780: f3 cf rjmp .-26 ; 0x1768 + 1782: 15 c0 rjmp .+42 ; 0x17ae + 1784: a0 91 9f 20 lds r26, 0x209F ; 0x80209f + 1788: b0 91 a0 20 lds r27, 0x20A0 ; 0x8020a0 + 178c: e1 2f mov r30, r17 + 178e: f0 e0 ldi r31, 0x00 ; 0 + 1790: ee 0f add r30, r30 + 1792: ff 1f adc r31, r31 + 1794: 12 96 adiw r26, 0x02 ; 2 + 1796: 8d 91 ld r24, X+ + 1798: 9c 91 ld r25, X + 179a: 13 97 sbiw r26, 0x03 ; 3 + 179c: e8 0f add r30, r24 + 179e: f9 1f adc r31, r25 + 17a0: 01 90 ld r0, Z+ + 17a2: f0 81 ld r31, Z + 17a4: e0 2d mov r30, r0 + 17a6: 01 90 ld r0, Z+ + 17a8: f0 81 ld r31, Z + 17aa: e0 2d mov r30, r0 + 17ac: 09 95 icall + 17ae: df 91 pop r29 + 17b0: cf 91 pop r28 + 17b2: 1f 91 pop r17 + 17b4: 08 95 ret + +000017b6 : + 17b6: 80 91 9d 20 lds r24, 0x209D ; 0x80209d + 17ba: 90 91 9e 20 lds r25, 0x209E ; 0x80209e + 17be: 08 95 ret + +000017c0 : + 17c0: 65 c7 rjmp .+3786 ; 0x268c + 17c2: 08 95 ret + +000017c4 : + 17c4: cf 93 push r28 + 17c6: 80 91 a2 20 lds r24, 0x20A2 ; 0x8020a2 + 17ca: 88 23 and r24, r24 + 17cc: c1 f0 breq .+48 ; 0x17fe + 17ce: e0 91 9f 20 lds r30, 0x209F ; 0x80209f + 17d2: f0 91 a0 20 lds r31, 0x20A0 ; 0x8020a0 + 17d6: 01 90 ld r0, Z+ + 17d8: f0 81 ld r31, Z + 17da: e0 2d mov r30, r0 + 17dc: 84 81 ldd r24, Z+4 ; 0x04 + 17de: 88 23 and r24, r24 + 17e0: 71 f0 breq .+28 ; 0x17fe + 17e2: c0 e0 ldi r28, 0x00 ; 0 + 17e4: 8c 2f mov r24, r28 + 17e6: 73 df rcall .-282 ; 0x16ce + 17e8: cf 5f subi r28, 0xFF ; 255 + 17ea: e0 91 9f 20 lds r30, 0x209F ; 0x80209f + 17ee: f0 91 a0 20 lds r31, 0x20A0 ; 0x8020a0 17f2: 01 90 ld r0, Z+ 17f4: f0 81 ld r31, Z 17f6: e0 2d mov r30, r0 - 17f8: 01 90 ld r0, Z+ - 17fa: f0 81 ld r31, Z - 17fc: e0 2d mov r30, r0 - 17fe: 09 95 icall - 1800: df 91 pop r29 - 1802: cf 91 pop r28 - 1804: 1f 91 pop r17 - 1806: 08 95 ret + 17f8: 84 81 ldd r24, Z+4 ; 0x04 + 17fa: c8 17 cp r28, r24 + 17fc: 98 f3 brcs .-26 ; 0x17e4 + 17fe: 10 92 a2 20 sts 0x20A2, r1 ; 0x8020a2 + 1802: 10 92 a6 20 sts 0x20A6, r1 ; 0x8020a6 + 1806: 10 92 a7 20 sts 0x20A7, r1 ; 0x8020a7 + 180a: cf 91 pop r28 + 180c: 08 95 ret -00001808 : - 1808: 80 91 9d 20 lds r24, 0x209D ; 0x80209d - 180c: 90 91 9e 20 lds r25, 0x209E ; 0x80209e - 1810: 08 95 ret - -00001812 : - 1812: 65 c7 rjmp .+3786 ; 0x26de - 1814: 08 95 ret - -00001816 : - 1816: cf 93 push r28 - 1818: 80 91 a2 20 lds r24, 0x20A2 ; 0x8020a2 - 181c: 88 23 and r24, r24 - 181e: c1 f0 breq .+48 ; 0x1850 - 1820: e0 91 9f 20 lds r30, 0x209F ; 0x80209f - 1824: f0 91 a0 20 lds r31, 0x20A0 ; 0x8020a0 - 1828: 01 90 ld r0, Z+ - 182a: f0 81 ld r31, Z - 182c: e0 2d mov r30, r0 - 182e: 84 81 ldd r24, Z+4 ; 0x04 - 1830: 88 23 and r24, r24 - 1832: 71 f0 breq .+28 ; 0x1850 - 1834: c0 e0 ldi r28, 0x00 ; 0 - 1836: 8c 2f mov r24, r28 - 1838: 73 df rcall .-282 ; 0x1720 - 183a: cf 5f subi r28, 0xFF ; 255 - 183c: e0 91 9f 20 lds r30, 0x209F ; 0x80209f - 1840: f0 91 a0 20 lds r31, 0x20A0 ; 0x8020a0 - 1844: 01 90 ld r0, Z+ - 1846: f0 81 ld r31, Z - 1848: e0 2d mov r30, r0 - 184a: 84 81 ldd r24, Z+4 ; 0x04 - 184c: c8 17 cp r28, r24 - 184e: 98 f3 brcs .-26 ; 0x1836 - 1850: 10 92 a2 20 sts 0x20A2, r1 ; 0x8020a2 - 1854: 10 92 a6 20 sts 0x20A6, r1 ; 0x8020a6 - 1858: 10 92 a7 20 sts 0x20A7, r1 ; 0x8020a7 - 185c: cf 91 pop r28 - 185e: 08 95 ret - -00001860 : +0000180e : CPU_TO_LE16(USB_DEV_STATUS_BUS_POWERED); #endif } void udc_sof_notify(void) { - 1860: cf 93 push r28 + 180e: cf 93 push r28 uint8_t iface_num; if (udc_num_configuration) { - 1862: 80 91 a2 20 lds r24, 0x20A2 ; 0x8020a2 - 1866: 88 23 and r24, r24 - 1868: 49 f1 breq .+82 ; 0x18bc + 1810: 80 91 a2 20 lds r24, 0x20A2 ; 0x8020a2 + 1814: 88 23 and r24, r24 + 1816: 49 f1 breq .+82 ; 0x186a for (iface_num = 0; iface_num < udc_ptr_conf->desc->bNumInterfaces; - 186a: a0 91 9f 20 lds r26, 0x209F ; 0x80209f - 186e: b0 91 a0 20 lds r27, 0x20A0 ; 0x8020a0 - 1872: ed 91 ld r30, X+ - 1874: fc 91 ld r31, X - 1876: 11 97 sbiw r26, 0x01 ; 1 + 1818: a0 91 9f 20 lds r26, 0x209F ; 0x80209f + 181c: b0 91 a0 20 lds r27, 0x20A0 ; 0x8020a0 + 1820: ed 91 ld r30, X+ + 1822: fc 91 ld r31, X + 1824: 11 97 sbiw r26, 0x01 ; 1 void udc_sof_notify(void) { uint8_t iface_num; if (udc_num_configuration) { for (iface_num = 0; - 1878: 84 81 ldd r24, Z+4 ; 0x04 - 187a: 88 23 and r24, r24 - 187c: f9 f0 breq .+62 ; 0x18bc - 187e: c0 e0 ldi r28, 0x00 ; 0 + 1826: 84 81 ldd r24, Z+4 ; 0x04 + 1828: 88 23 and r24, r24 + 182a: f9 f0 breq .+62 ; 0x186a + 182c: c0 e0 ldi r28, 0x00 ; 0 iface_num < udc_ptr_conf->desc->bNumInterfaces; iface_num++) { if (udc_ptr_conf->udi_apis[iface_num]->sof_notify != NULL) { - 1880: ec 2f mov r30, r28 - 1882: f0 e0 ldi r31, 0x00 ; 0 - 1884: ee 0f add r30, r30 - 1886: ff 1f adc r31, r31 - 1888: 12 96 adiw r26, 0x02 ; 2 - 188a: 8d 91 ld r24, X+ - 188c: 9c 91 ld r25, X - 188e: 13 97 sbiw r26, 0x03 ; 3 - 1890: e8 0f add r30, r24 - 1892: f9 1f adc r31, r25 - 1894: 01 90 ld r0, Z+ - 1896: f0 81 ld r31, Z - 1898: e0 2d mov r30, r0 - 189a: 00 84 ldd r0, Z+8 ; 0x08 - 189c: f1 85 ldd r31, Z+9 ; 0x09 - 189e: e0 2d mov r30, r0 - 18a0: 30 97 sbiw r30, 0x00 ; 0 - 18a2: 09 f0 breq .+2 ; 0x18a6 + 182e: ec 2f mov r30, r28 + 1830: f0 e0 ldi r31, 0x00 ; 0 + 1832: ee 0f add r30, r30 + 1834: ff 1f adc r31, r31 + 1836: 12 96 adiw r26, 0x02 ; 2 + 1838: 8d 91 ld r24, X+ + 183a: 9c 91 ld r25, X + 183c: 13 97 sbiw r26, 0x03 ; 3 + 183e: e8 0f add r30, r24 + 1840: f9 1f adc r31, r25 + 1842: 01 90 ld r0, Z+ + 1844: f0 81 ld r31, Z + 1846: e0 2d mov r30, r0 + 1848: 00 84 ldd r0, Z+8 ; 0x08 + 184a: f1 85 ldd r31, Z+9 ; 0x09 + 184c: e0 2d mov r30, r0 + 184e: 30 97 sbiw r30, 0x00 ; 0 + 1850: 09 f0 breq .+2 ; 0x1854 udc_ptr_conf->udi_apis[iface_num]->sof_notify(); - 18a4: 09 95 icall + 1852: 09 95 icall uint8_t iface_num; if (udc_num_configuration) { for (iface_num = 0; iface_num < udc_ptr_conf->desc->bNumInterfaces; iface_num++) { - 18a6: cf 5f subi r28, 0xFF ; 255 + 1854: cf 5f subi r28, 0xFF ; 255 { uint8_t iface_num; if (udc_num_configuration) { for (iface_num = 0; iface_num < udc_ptr_conf->desc->bNumInterfaces; - 18a8: a0 91 9f 20 lds r26, 0x209F ; 0x80209f - 18ac: b0 91 a0 20 lds r27, 0x20A0 ; 0x8020a0 - 18b0: ed 91 ld r30, X+ - 18b2: fc 91 ld r31, X - 18b4: 11 97 sbiw r26, 0x01 ; 1 + 1856: a0 91 9f 20 lds r26, 0x209F ; 0x80209f + 185a: b0 91 a0 20 lds r27, 0x20A0 ; 0x8020a0 + 185e: ed 91 ld r30, X+ + 1860: fc 91 ld r31, X + 1862: 11 97 sbiw r26, 0x01 ; 1 void udc_sof_notify(void) { uint8_t iface_num; if (udc_num_configuration) { for (iface_num = 0; - 18b6: 84 81 ldd r24, Z+4 ; 0x04 - 18b8: c8 17 cp r28, r24 - 18ba: 10 f3 brcs .-60 ; 0x1880 + 1864: 84 81 ldd r24, Z+4 ; 0x04 + 1866: c8 17 cp r28, r24 + 1868: 10 f3 brcs .-60 ; 0x182e if (udc_ptr_conf->udi_apis[iface_num]->sof_notify != NULL) { udc_ptr_conf->udi_apis[iface_num]->sof_notify(); } } } } - 18bc: cf 91 pop r28 - 18be: 08 95 ret + 186a: cf 91 pop r28 + 186c: 08 95 ret -000018c0 : +0000186e : * sent to a specific application callback. * * \return true if the request is supported, else the request is stalled by UDD */ bool udc_process_setup(void) { - 18c0: 0f 93 push r16 - 18c2: 1f 93 push r17 - 18c4: cf 93 push r28 - 18c6: df 93 push r29 + 186e: 0f 93 push r16 + 1870: 1f 93 push r17 + 1872: cf 93 push r28 + 1874: df 93 push r29 // By default no data (receive/send) and no callbacks registered udd_g_ctrlreq.payload_size = 0; - 18c8: ea e9 ldi r30, 0x9A ; 154 - 18ca: f3 e2 ldi r31, 0x23 ; 35 - 18cc: 12 86 std Z+10, r1 ; 0x0a - 18ce: 13 86 std Z+11, r1 ; 0x0b + 1876: ea e9 ldi r30, 0x9A ; 154 + 1878: f3 e2 ldi r31, 0x23 ; 35 + 187a: 12 86 std Z+10, r1 ; 0x0a + 187c: 13 86 std Z+11, r1 ; 0x0b udd_g_ctrlreq.callback = NULL; - 18d0: 14 86 std Z+12, r1 ; 0x0c - 18d2: 15 86 std Z+13, r1 ; 0x0d + 187e: 14 86 std Z+12, r1 ; 0x0c + 1880: 15 86 std Z+13, r1 ; 0x0d udd_g_ctrlreq.over_under_run = NULL; - 18d4: 16 86 std Z+14, r1 ; 0x0e - 18d6: 17 86 std Z+15, r1 ; 0x0f + 1882: 16 86 std Z+14, r1 ; 0x0e + 1884: 17 86 std Z+15, r1 ; 0x0f if (Udd_setup_is_in()) { - 18d8: 80 81 ld r24, Z - 18da: 28 2f mov r18, r24 - 18dc: 88 23 and r24, r24 - 18de: 3c f4 brge .+14 ; 0x18ee + 1886: 80 81 ld r24, Z + 1888: 28 2f mov r18, r24 + 188a: 88 23 and r24, r24 + 188c: 3c f4 brge .+14 ; 0x189c if (udd_g_ctrlreq.req.wLength == 0) { - 18e0: 40 91 a0 23 lds r20, 0x23A0 ; 0x8023a0 - 18e4: 50 91 a1 23 lds r21, 0x23A1 ; 0x8023a1 - 18e8: 45 2b or r20, r21 - 18ea: 09 f4 brne .+2 ; 0x18ee - 18ec: 69 c3 rjmp .+1746 ; 0x1fc0 + 188e: 40 91 a0 23 lds r20, 0x23A0 ; 0x8023a0 + 1892: 50 91 a1 23 lds r21, 0x23A1 ; 0x8023a1 + 1896: 45 2b or r20, r21 + 1898: 09 f4 brne .+2 ; 0x189c + 189a: 69 c3 rjmp .+1746 ; 0x1f6e return false; // Error from USB host } } if (Udd_setup_type() == USB_REQ_TYPE_VENDOR){ - 18ee: 98 2f mov r25, r24 - 18f0: 90 76 andi r25, 0x60 ; 96 - 18f2: 90 34 cpi r25, 0x40 ; 64 - 18f4: 09 f0 breq .+2 ; 0x18f8 - 18f6: 0a c1 rjmp .+532 ; 0x1b0c + 189c: 98 2f mov r25, r24 + 189e: 90 76 andi r25, 0x60 ; 96 + 18a0: 90 34 cpi r25, 0x40 ; 64 + 18a2: 09 f0 breq .+2 ; 0x18a6 + 18a4: 0a c1 rjmp .+532 ; 0x1aba } return false; } static bool udc_reqvend(void){ switch (udd_g_ctrlreq.req.bRequest){ - 18f8: e0 91 9b 23 lds r30, 0x239B ; 0x80239b - 18fc: 4e 2f mov r20, r30 - 18fe: 50 e0 ldi r21, 0x00 ; 0 - 1900: fa 01 movw r30, r20 - 1902: e0 5a subi r30, 0xA0 ; 160 - 1904: f1 09 sbc r31, r1 - 1906: e9 30 cpi r30, 0x09 ; 9 - 1908: f1 05 cpc r31, r1 - 190a: 08 f0 brcs .+2 ; 0x190e - 190c: ff c0 rjmp .+510 ; 0x1b0c - 190e: ea 5f subi r30, 0xFA ; 250 - 1910: fe 4f sbci r31, 0xFE ; 254 - 1912: 0c 94 b7 17 jmp 0x2f6e ; 0x2f6e <__tablejump2__> + 18a6: e0 91 9b 23 lds r30, 0x239B ; 0x80239b + 18aa: 4e 2f mov r20, r30 + 18ac: 50 e0 ldi r21, 0x00 ; 0 + 18ae: fa 01 movw r30, r20 + 18b0: e0 5a subi r30, 0xA0 ; 160 + 18b2: f1 09 sbc r31, r1 + 18b4: e9 30 cpi r30, 0x09 ; 9 + 18b6: f1 05 cpc r31, r1 + 18b8: 08 f0 brcs .+2 ; 0x18bc + 18ba: ff c0 rjmp .+510 ; 0x1aba + 18bc: ea 5f subi r30, 0xFA ; 250 + 18be: fe 4f sbci r31, 0xFE ; 254 + 18c0: 0c 94 8e 17 jmp 0x2f1c ; 0x2f1c <__tablejump2__> case 0xa0: //Break! (Debug command) debugOnNextEnd = 1; - 1916: 81 e0 ldi r24, 0x01 ; 1 - 1918: 80 93 92 20 sts 0x2092, r24 ; 0x802092 + 18c4: 81 e0 ldi r24, 0x01 ; 1 + 18c6: 80 93 92 20 sts 0x2092, r24 ; 0x802092 uds.medianTrfcntL = median_TRFCNT & 0xff; - 191c: 80 91 07 20 lds r24, 0x2007 ; 0x802007 - 1920: 90 91 08 20 lds r25, 0x2008 ; 0x802008 - 1924: ee e7 ldi r30, 0x7E ; 126 - 1926: f1 e2 ldi r31, 0x21 ; 33 - 1928: 85 87 std Z+13, r24 ; 0x0d + 18ca: 80 91 07 20 lds r24, 0x2007 ; 0x802007 + 18ce: 90 91 08 20 lds r25, 0x2008 ; 0x802008 + 18d2: ee e7 ldi r30, 0x7E ; 126 + 18d4: f1 e2 ldi r31, 0x21 ; 33 + 18d6: 85 87 std Z+13, r24 ; 0x0d uds.medianTrfcntH = (median_TRFCNT >> 8) & 0xff; - 192a: 80 91 07 20 lds r24, 0x2007 ; 0x802007 - 192e: 90 91 08 20 lds r25, 0x2008 ; 0x802008 - 1932: 96 87 std Z+14, r25 ; 0x0e + 18d8: 80 91 07 20 lds r24, 0x2007 ; 0x802007 + 18dc: 90 91 08 20 lds r25, 0x2008 ; 0x802008 + 18e0: 96 87 std Z+14, r25 ; 0x0e uds.calValNeg = cali_value_negative_gradient; - 1934: 80 91 72 21 lds r24, 0x2172 ; 0x802172 - 1938: 87 87 std Z+15, r24 ; 0x0f + 18e2: 80 91 72 21 lds r24, 0x2172 ; 0x802172 + 18e6: 87 87 std Z+15, r24 ; 0x0f uds.calValPos = cali_value_positive_gradient; - 193a: 80 91 6f 21 lds r24, 0x216F ; 0x80216f - 193e: 80 8b std Z+16, r24 ; 0x10 + 18e8: 80 91 6f 21 lds r24, 0x216F ; 0x80216f + 18ec: 80 8b std Z+16, r24 ; 0x10 uds.CALA = DFLLRC2M.CALA; - 1940: a8 e6 ldi r26, 0x68 ; 104 - 1942: b0 e0 ldi r27, 0x00 ; 0 - 1944: 12 96 adiw r26, 0x02 ; 2 - 1946: 8c 91 ld r24, X - 1948: 12 97 sbiw r26, 0x02 ; 2 - 194a: 81 8b std Z+17, r24 ; 0x11 + 18ee: a8 e6 ldi r26, 0x68 ; 104 + 18f0: b0 e0 ldi r27, 0x00 ; 0 + 18f2: 12 96 adiw r26, 0x02 ; 2 + 18f4: 8c 91 ld r24, X + 18f6: 12 97 sbiw r26, 0x02 ; 2 + 18f8: 81 8b std Z+17, r24 ; 0x11 uds.CALB = DFLLRC2M.CALB; - 194c: 13 96 adiw r26, 0x03 ; 3 - 194e: 8c 91 ld r24, X - 1950: 82 8b std Z+18, r24 ; 0x12 + 18fa: 13 96 adiw r26, 0x03 ; 3 + 18fc: 8c 91 ld r24, X + 18fe: 82 8b std Z+18, r24 ; 0x12 udd_set_setup_payload(&uds, udd_g_ctrlreq.req.wLength); - 1952: 60 91 a0 23 lds r22, 0x23A0 ; 0x8023a0 - 1956: 70 91 a1 23 lds r23, 0x23A1 ; 0x8023a1 - 195a: cf 01 movw r24, r30 - 195c: 2d d7 rcall .+3674 ; 0x27b8 - 195e: 34 c3 rjmp .+1640 ; 0x1fc8 + 1900: 60 91 a0 23 lds r22, 0x23A0 ; 0x8023a0 + 1904: 70 91 a1 23 lds r23, 0x23A1 ; 0x8023a1 + 1908: cf 01 movw r24, r30 + 190a: 2d d7 rcall .+3674 ; 0x2766 + 190c: 34 c3 rjmp .+1640 ; 0x1f76 //asm("nop"); return 1; case 0xa1: //Receive waveform for signal gen TC_DAC.CTRLA = 0x00; - 1960: e0 e0 ldi r30, 0x00 ; 0 - 1962: f8 e0 ldi r31, 0x08 ; 8 - 1964: 10 82 st Z, r1 + 190e: e0 e0 ldi r30, 0x00 ; 0 + 1910: f8 e0 ldi r31, 0x08 ; 8 + 1912: 10 82 st Z, r1 TC_DAC.PERBUF = udd_g_ctrlreq.req.wValue; - 1966: ca e9 ldi r28, 0x9A ; 154 - 1968: d3 e2 ldi r29, 0x23 ; 35 - 196a: 8a 81 ldd r24, Y+2 ; 0x02 - 196c: 9b 81 ldd r25, Y+3 ; 0x03 - 196e: 86 ab std Z+54, r24 ; 0x36 - 1970: 97 ab std Z+55, r25 ; 0x37 + 1914: ca e9 ldi r28, 0x9A ; 154 + 1916: d3 e2 ldi r29, 0x23 ; 35 + 1918: 8a 81 ldd r24, Y+2 ; 0x02 + 191a: 9b 81 ldd r25, Y+3 ; 0x03 + 191c: 86 ab std Z+54, r24 ; 0x36 + 191e: 97 ab std Z+55, r25 ; 0x37 TC_DAC.CTRLA = (unsigned char) udd_g_ctrlreq.req.wIndex & 0x0F; - 1972: 8c 81 ldd r24, Y+4 ; 0x04 - 1974: 8f 70 andi r24, 0x0F ; 15 - 1976: 80 83 st Z, r24 + 1920: 8c 81 ldd r24, Y+4 ; 0x04 + 1922: 8f 70 andi r24, 0x0F ; 15 + 1924: 80 83 st Z, r24 udd_set_setup_payload(dacBuf_CH1, udd_g_ctrlreq.req.wLength); - 1978: 6e 81 ldd r22, Y+6 ; 0x06 - 197a: 7f 81 ldd r23, Y+7 ; 0x07 - 197c: 8a e9 ldi r24, 0x9A ; 154 - 197e: 91 e2 ldi r25, 0x21 ; 33 - 1980: 1b d7 rcall .+3638 ; 0x27b8 + 1926: 6e 81 ldd r22, Y+6 ; 0x06 + 1928: 7f 81 ldd r23, Y+7 ; 0x07 + 192a: 8a e9 ldi r24, 0x9A ; 154 + 192c: 91 e2 ldi r25, 0x21 ; 33 + 192e: 1b d7 rcall .+3638 ; 0x2766 if(dacBuf_len != udd_g_ctrlreq.req.wLength){ - 1982: 8e 81 ldd r24, Y+6 ; 0x06 - 1984: 9f 81 ldd r25, Y+7 ; 0x07 - 1986: 20 91 0d 20 lds r18, 0x200D ; 0x80200d - 198a: 30 91 0e 20 lds r19, 0x200E ; 0x80200e - 198e: 82 17 cp r24, r18 - 1990: 93 07 cpc r25, r19 - 1992: 09 f4 brne .+2 ; 0x1996 - 1994: 19 c3 rjmp .+1586 ; 0x1fc8 + 1930: 8e 81 ldd r24, Y+6 ; 0x06 + 1932: 9f 81 ldd r25, Y+7 ; 0x07 + 1934: 20 91 0d 20 lds r18, 0x200D ; 0x80200d + 1938: 30 91 0e 20 lds r19, 0x200E ; 0x80200e + 193c: 82 17 cp r24, r18 + 193e: 93 07 cpc r25, r19 + 1940: 09 f4 brne .+2 ; 0x1944 + 1942: 19 c3 rjmp .+1586 ; 0x1f76 dacBuf_len = udd_g_ctrlreq.req.wLength; - 1996: 80 93 0d 20 sts 0x200D, r24 ; 0x80200d - 199a: 90 93 0e 20 sts 0x200E, r25 ; 0x80200e + 1944: 80 93 0d 20 sts 0x200D, r24 ; 0x80200d + 1948: 90 93 0e 20 sts 0x200E, r25 ; 0x80200e tiny_dma_delayed_set(global_mode); - 199e: 80 91 09 20 lds r24, 0x2009 ; 0x802009 - 19a2: f3 d8 rcall .-3610 ; 0xb8a - 19a4: 11 c3 rjmp .+1570 ; 0x1fc8 + 194c: 80 91 09 20 lds r24, 0x2009 ; 0x802009 + 1950: f3 d8 rcall .-3610 ; 0xb38 + 1952: 11 c3 rjmp .+1570 ; 0x1f76 } return 1; case 0xa2: //CH2 waveform TC_AUXDAC.CTRLA = 0x00; - 19a6: e0 e4 ldi r30, 0x40 ; 64 - 19a8: f8 e0 ldi r31, 0x08 ; 8 - 19aa: 10 82 st Z, r1 + 1954: e0 e4 ldi r30, 0x40 ; 64 + 1956: f8 e0 ldi r31, 0x08 ; 8 + 1958: 10 82 st Z, r1 TC_AUXDAC.PERBUF = udd_g_ctrlreq.req.wValue; - 19ac: ca e9 ldi r28, 0x9A ; 154 - 19ae: d3 e2 ldi r29, 0x23 ; 35 - 19b0: 8a 81 ldd r24, Y+2 ; 0x02 - 19b2: 9b 81 ldd r25, Y+3 ; 0x03 - 19b4: 86 ab std Z+54, r24 ; 0x36 - 19b6: 97 ab std Z+55, r25 ; 0x37 + 195a: ca e9 ldi r28, 0x9A ; 154 + 195c: d3 e2 ldi r29, 0x23 ; 35 + 195e: 8a 81 ldd r24, Y+2 ; 0x02 + 1960: 9b 81 ldd r25, Y+3 ; 0x03 + 1962: 86 ab std Z+54, r24 ; 0x36 + 1964: 97 ab std Z+55, r25 ; 0x37 TC_AUXDAC.CTRLA = (unsigned char) udd_g_ctrlreq.req.wIndex & 0x0F; - 19b8: 8c 81 ldd r24, Y+4 ; 0x04 - 19ba: 8f 70 andi r24, 0x0F ; 15 - 19bc: 80 83 st Z, r24 + 1966: 8c 81 ldd r24, Y+4 ; 0x04 + 1968: 8f 70 andi r24, 0x0F ; 15 + 196a: 80 83 st Z, r24 udd_set_setup_payload(dacBuf_CH2, udd_g_ctrlreq.req.wLength); - 19be: 6e 81 ldd r22, Y+6 ; 0x06 - 19c0: 7f 81 ldd r23, Y+7 ; 0x07 - 19c2: 8b ea ldi r24, 0xAB ; 171 - 19c4: 93 e2 ldi r25, 0x23 ; 35 - 19c6: f8 d6 rcall .+3568 ; 0x27b8 + 196c: 6e 81 ldd r22, Y+6 ; 0x06 + 196e: 7f 81 ldd r23, Y+7 ; 0x07 + 1970: 8b ea ldi r24, 0xAB ; 171 + 1972: 93 e2 ldi r25, 0x23 ; 35 + 1974: f8 d6 rcall .+3568 ; 0x2766 if(auxDacBufLen != udd_g_ctrlreq.req.wLength){ - 19c8: 8e 81 ldd r24, Y+6 ; 0x06 - 19ca: 9f 81 ldd r25, Y+7 ; 0x07 - 19cc: 20 91 0b 20 lds r18, 0x200B ; 0x80200b - 19d0: 30 91 0c 20 lds r19, 0x200C ; 0x80200c - 19d4: 82 17 cp r24, r18 - 19d6: 93 07 cpc r25, r19 - 19d8: 09 f4 brne .+2 ; 0x19dc - 19da: f6 c2 rjmp .+1516 ; 0x1fc8 + 1976: 8e 81 ldd r24, Y+6 ; 0x06 + 1978: 9f 81 ldd r25, Y+7 ; 0x07 + 197a: 20 91 0b 20 lds r18, 0x200B ; 0x80200b + 197e: 30 91 0c 20 lds r19, 0x200C ; 0x80200c + 1982: 82 17 cp r24, r18 + 1984: 93 07 cpc r25, r19 + 1986: 09 f4 brne .+2 ; 0x198a + 1988: f6 c2 rjmp .+1516 ; 0x1f76 auxDacBufLen = udd_g_ctrlreq.req.wLength; - 19dc: 80 93 0b 20 sts 0x200B, r24 ; 0x80200b - 19e0: 90 93 0c 20 sts 0x200C, r25 ; 0x80200c + 198a: 80 93 0b 20 sts 0x200B, r24 ; 0x80200b + 198e: 90 93 0c 20 sts 0x200C, r25 ; 0x80200c tiny_dma_delayed_set(global_mode); - 19e4: 80 91 09 20 lds r24, 0x2009 ; 0x802009 - 19e8: d0 d8 rcall .-3680 ; 0xb8a - 19ea: ee c2 rjmp .+1500 ; 0x1fc8 + 1992: 80 91 09 20 lds r24, 0x2009 ; 0x802009 + 1996: d0 d8 rcall .-3680 ; 0xb38 + 1998: ee c2 rjmp .+1500 ; 0x1f76 } return 1; case 0xa3: //PSU voltage control TC_PSU.CCA = 0; - 19ec: 10 92 68 09 sts 0x0968, r1 ; 0x800968 <__TEXT_REGION_LENGTH__+0x700968> - 19f0: 10 92 69 09 sts 0x0969, r1 ; 0x800969 <__TEXT_REGION_LENGTH__+0x700969> + 199a: 10 92 68 09 sts 0x0968, r1 ; 0x800968 <__TEXT_REGION_LENGTH__+0x700968> + 199e: 10 92 69 09 sts 0x0969, r1 ; 0x800969 <__TEXT_REGION_LENGTH__+0x700969> PSU_target = udd_g_ctrlreq.req.wValue; - 19f4: 80 91 9c 23 lds r24, 0x239C ; 0x80239c - 19f8: 80 93 95 20 sts 0x2095, r24 ; 0x802095 - 19fc: e5 c2 rjmp .+1482 ; 0x1fc8 + 19a2: 80 91 9c 23 lds r24, 0x239C ; 0x80239c + 19a6: 80 93 95 20 sts 0x2095, r24 ; 0x802095 + 19aa: e5 c2 rjmp .+1482 ; 0x1f76 return 1; case 0xa4: //Triple mode PORTB.OUT = udd_g_ctrlreq.req.wValue; - 19fe: 80 91 9c 23 lds r24, 0x239C ; 0x80239c - 1a02: 80 93 24 06 sts 0x0624, r24 ; 0x800624 <__TEXT_REGION_LENGTH__+0x700624> - 1a06: e0 c2 rjmp .+1472 ; 0x1fc8 + 19ac: 80 91 9c 23 lds r24, 0x239C ; 0x80239c + 19b0: 80 93 24 06 sts 0x0624, r24 ; 0x800624 <__TEXT_REGION_LENGTH__+0x700624> + 19b4: e0 c2 rjmp .+1472 ; 0x1f76 return 1; case 0xa5: //Control Gain and Scope modes switch(udd_g_ctrlreq.req.wValue){ - 1a08: e0 91 9c 23 lds r30, 0x239C ; 0x80239c - 1a0c: f0 91 9d 23 lds r31, 0x239D ; 0x80239d - 1a10: e8 30 cpi r30, 0x08 ; 8 - 1a12: f1 05 cpc r31, r1 - 1a14: 08 f0 brcs .+2 ; 0x1a18 - 1a16: 7a c0 rjmp .+244 ; 0x1b0c - 1a18: e1 5f subi r30, 0xF1 ; 241 - 1a1a: fe 4f sbci r31, 0xFE ; 254 - 1a1c: 0c 94 b7 17 jmp 0x2f6e ; 0x2f6e <__tablejump2__> + 19b6: e0 91 9c 23 lds r30, 0x239C ; 0x80239c + 19ba: f0 91 9d 23 lds r31, 0x239D ; 0x80239d + 19be: e8 30 cpi r30, 0x08 ; 8 + 19c0: f1 05 cpc r31, r1 + 19c2: 08 f0 brcs .+2 ; 0x19c6 + 19c4: 7a c0 rjmp .+244 ; 0x1aba + 19c6: e1 5f subi r30, 0xF1 ; 241 + 19c8: fe 4f sbci r31, 0xFE ; 254 + 19ca: 0c 94 8e 17 jmp 0x2f1c ; 0x2f1c <__tablejump2__> case 0: //Mode 0 tiny_adc_setup(0, 0); - 1a20: 60 e0 ldi r22, 0x00 ; 0 - 1a22: 80 e0 ldi r24, 0x00 ; 0 - 1a24: 18 d8 rcall .-4048 ; 0xa56 + 19ce: 60 e0 ldi r22, 0x00 ; 0 + 19d0: 80 e0 ldi r24, 0x00 ; 0 + 19d2: 18 d8 rcall .-4048 ; 0xa04 tiny_adc_ch0setup(udd_g_ctrlreq.req.wIndex); - 1a26: 80 91 9e 23 lds r24, 0x239E ; 0x80239e - 1a2a: 0e 94 ff 04 call 0x9fe ; 0x9fe + 19d4: 80 91 9e 23 lds r24, 0x239E ; 0x80239e + 19d8: 0e 94 d6 04 call 0x9ac ; 0x9ac tiny_dma_delayed_set(0); - 1a2e: 80 e0 ldi r24, 0x00 ; 0 - 1a30: ac d8 rcall .-3752 ; 0xb8a - 1a32: ca c2 rjmp .+1428 ; 0x1fc8 + 19dc: 80 e0 ldi r24, 0x00 ; 0 + 19de: ac d8 rcall .-3752 ; 0xb38 + 19e0: ca c2 rjmp .+1428 ; 0x1f76 break; case 1: //Mode 1 tiny_adc_setup(0, 0); - 1a34: 60 e0 ldi r22, 0x00 ; 0 - 1a36: 80 e0 ldi r24, 0x00 ; 0 - 1a38: 0e d8 rcall .-4068 ; 0xa56 + 19e2: 60 e0 ldi r22, 0x00 ; 0 + 19e4: 80 e0 ldi r24, 0x00 ; 0 + 19e6: 0e d8 rcall .-4068 ; 0xa04 tiny_adc_ch0setup(udd_g_ctrlreq.req.wIndex); - 1a3a: 80 91 9e 23 lds r24, 0x239E ; 0x80239e - 1a3e: 0e 94 ff 04 call 0x9fe ; 0x9fe + 19e8: 80 91 9e 23 lds r24, 0x239E ; 0x80239e + 19ec: 0e 94 d6 04 call 0x9ac ; 0x9ac tiny_dma_delayed_set(1); - 1a42: 81 e0 ldi r24, 0x01 ; 1 - 1a44: a2 d8 rcall .-3772 ; 0xb8a - 1a46: c0 c2 rjmp .+1408 ; 0x1fc8 + 19f0: 81 e0 ldi r24, 0x01 ; 1 + 19f2: a2 d8 rcall .-3772 ; 0xb38 + 19f4: c0 c2 rjmp .+1408 ; 0x1f76 break; case 2: //Mode 2 tiny_adc_setup(1, 1); - 1a48: 61 e0 ldi r22, 0x01 ; 1 - 1a4a: 81 e0 ldi r24, 0x01 ; 1 - 1a4c: 04 d8 rcall .-4088 ; 0xa56 + 19f6: 61 e0 ldi r22, 0x01 ; 1 + 19f8: 81 e0 ldi r24, 0x01 ; 1 + 19fa: 04 d8 rcall .-4088 ; 0xa04 tiny_adc_ch0setup(udd_g_ctrlreq.req.wIndex); - 1a4e: ca e9 ldi r28, 0x9A ; 154 - 1a50: d3 e2 ldi r29, 0x23 ; 35 - 1a52: 8c 81 ldd r24, Y+4 ; 0x04 - 1a54: 0e 94 ff 04 call 0x9fe ; 0x9fe + 19fc: ca e9 ldi r28, 0x9A ; 154 + 19fe: d3 e2 ldi r29, 0x23 ; 35 + 1a00: 8c 81 ldd r24, Y+4 ; 0x04 + 1a02: 0e 94 d6 04 call 0x9ac ; 0x9ac tiny_adc_ch1setup(udd_g_ctrlreq.req.wIndex>>8); - 1a58: 8d 81 ldd r24, Y+5 ; 0x05 - 1a5a: 0e 94 0e 05 call 0xa1c ; 0xa1c + 1a06: 8d 81 ldd r24, Y+5 ; 0x05 + 1a08: 0e 94 e5 04 call 0x9ca ; 0x9ca tiny_dma_delayed_set(2); - 1a5e: 82 e0 ldi r24, 0x02 ; 2 - 1a60: 94 d8 rcall .-3800 ; 0xb8a - 1a62: b2 c2 rjmp .+1380 ; 0x1fc8 + 1a0c: 82 e0 ldi r24, 0x02 ; 2 + 1a0e: 94 d8 rcall .-3800 ; 0xb38 + 1a10: b2 c2 rjmp .+1380 ; 0x1f76 break; case 3: //Mode 3 tiny_dma_delayed_set(3); - 1a64: 83 e0 ldi r24, 0x03 ; 3 - 1a66: 91 d8 rcall .-3806 ; 0xb8a - 1a68: af c2 rjmp .+1374 ; 0x1fc8 + 1a12: 83 e0 ldi r24, 0x03 ; 3 + 1a14: 91 d8 rcall .-3806 ; 0xb38 + 1a16: af c2 rjmp .+1374 ; 0x1f76 break; case 4: //Mode 4 tiny_dma_delayed_set(4); - 1a6a: 84 e0 ldi r24, 0x04 ; 4 - 1a6c: 8e d8 rcall .-3812 ; 0xb8a - 1a6e: ac c2 rjmp .+1368 ; 0x1fc8 + 1a18: 84 e0 ldi r24, 0x04 ; 4 + 1a1a: 8e d8 rcall .-3812 ; 0xb38 + 1a1c: ac c2 rjmp .+1368 ; 0x1f76 break; case 5: //Mode 5 tiny_adc_setup(0, 0); - 1a70: 60 e0 ldi r22, 0x00 ; 0 - 1a72: 80 e0 ldi r24, 0x00 ; 0 - 1a74: 0e 94 2b 05 call 0xa56 ; 0xa56 + 1a1e: 60 e0 ldi r22, 0x00 ; 0 + 1a20: 80 e0 ldi r24, 0x00 ; 0 + 1a22: 0e 94 02 05 call 0xa04 ; 0xa04 tiny_adc_ch0setup(udd_g_ctrlreq.req.wIndex); - 1a78: 80 91 9e 23 lds r24, 0x239E ; 0x80239e - 1a7c: 0e 94 ff 04 call 0x9fe ; 0x9fe + 1a26: 80 91 9e 23 lds r24, 0x239E ; 0x80239e + 1a2a: 0e 94 d6 04 call 0x9ac ; 0x9ac tiny_dma_delayed_set(5); - 1a80: 85 e0 ldi r24, 0x05 ; 5 - 1a82: 83 d8 rcall .-3834 ; 0xb8a - 1a84: a1 c2 rjmp .+1346 ; 0x1fc8 + 1a2e: 85 e0 ldi r24, 0x05 ; 5 + 1a30: 83 d8 rcall .-3834 ; 0xb38 + 1a32: a1 c2 rjmp .+1346 ; 0x1f76 break; case 6: //Mode 6 tiny_adc_setup(0, 1); - 1a86: 61 e0 ldi r22, 0x01 ; 1 - 1a88: 80 e0 ldi r24, 0x00 ; 0 - 1a8a: 0e 94 2b 05 call 0xa56 ; 0xa56 + 1a34: 61 e0 ldi r22, 0x01 ; 1 + 1a36: 80 e0 ldi r24, 0x00 ; 0 + 1a38: 0e 94 02 05 call 0xa04 ; 0xa04 tiny_adc_ch0setup(udd_g_ctrlreq.req.wIndex); - 1a8e: 80 91 9e 23 lds r24, 0x239E ; 0x80239e - 1a92: 0e 94 ff 04 call 0x9fe ; 0x9fe + 1a3c: 80 91 9e 23 lds r24, 0x239E ; 0x80239e + 1a40: 0e 94 d6 04 call 0x9ac ; 0x9ac tiny_dma_delayed_set(6); - 1a96: 86 e0 ldi r24, 0x06 ; 6 - 1a98: 78 d8 rcall .-3856 ; 0xb8a - 1a9a: 96 c2 rjmp .+1324 ; 0x1fc8 + 1a44: 86 e0 ldi r24, 0x06 ; 6 + 1a46: 78 d8 rcall .-3856 ; 0xb38 + 1a48: 96 c2 rjmp .+1324 ; 0x1f76 break; case 7: //Mode 7 tiny_adc_setup(0, 2); - 1a9c: 62 e0 ldi r22, 0x02 ; 2 - 1a9e: 80 e0 ldi r24, 0x00 ; 0 - 1aa0: 0e 94 2b 05 call 0xa56 ; 0xa56 + 1a4a: 62 e0 ldi r22, 0x02 ; 2 + 1a4c: 80 e0 ldi r24, 0x00 ; 0 + 1a4e: 0e 94 02 05 call 0xa04 ; 0xa04 tiny_adc_ch0setup(udd_g_ctrlreq.req.wIndex | 0x80); - 1aa4: 80 91 9e 23 lds r24, 0x239E ; 0x80239e - 1aa8: 80 68 ori r24, 0x80 ; 128 - 1aaa: 0e 94 ff 04 call 0x9fe ; 0x9fe + 1a52: 80 91 9e 23 lds r24, 0x239E ; 0x80239e + 1a56: 80 68 ori r24, 0x80 ; 128 + 1a58: 0e 94 d6 04 call 0x9ac ; 0x9ac tiny_dma_delayed_set(7); - 1aae: 87 e0 ldi r24, 0x07 ; 7 - 1ab0: 6c d8 rcall .-3880 ; 0xb8a - 1ab2: 8a c2 rjmp .+1300 ; 0x1fc8 + 1a5c: 87 e0 ldi r24, 0x07 ; 7 + 1a5e: 6c d8 rcall .-3880 ; 0xb38 + 1a60: 8a c2 rjmp .+1300 ; 0x1f76 default: return 0; } return 1; case 0xa6: //Digital out??? PORTE.OUT = udd_g_ctrlreq.req.wValue; - 1ab4: 80 91 9c 23 lds r24, 0x239C ; 0x80239c - 1ab8: 80 93 84 06 sts 0x0684, r24 ; 0x800684 <__TEXT_REGION_LENGTH__+0x700684> - 1abc: 85 c2 rjmp .+1290 ; 0x1fc8 + 1a62: 80 91 9c 23 lds r24, 0x239C ; 0x80239c + 1a66: 80 93 84 06 sts 0x0684, r24 ; 0x800684 <__TEXT_REGION_LENGTH__+0x700684> + 1a6a: 85 c2 rjmp .+1290 ; 0x1f76 return 1; case 0xa7: //Soft Reset //Fill EEPROM buffer with value if(udd_g_ctrlreq.req.wValue){ - 1abe: 80 91 9c 23 lds r24, 0x239C ; 0x80239c - 1ac2: 90 91 9d 23 lds r25, 0x239D ; 0x80239d - 1ac6: 89 2b or r24, r25 - 1ac8: 91 f0 breq .+36 ; 0x1aee + 1a6c: 80 91 9c 23 lds r24, 0x239C ; 0x80239c + 1a70: 90 91 9d 23 lds r25, 0x239D ; 0x80239d + 1a74: 89 2b or r24, r25 + 1a76: 91 f0 breq .+36 ; 0x1a9c eeprom_safe_read(); - 1aca: 0e 94 85 03 call 0x70a ; 0x70a + 1a78: 0e 94 85 03 call 0x70a ; 0x70a memcpy(eeprom_buffer_write, eeprom_buffer_read, EEPROM_PAGE_SIZE); - 1ace: 80 e2 ldi r24, 0x20 ; 32 - 1ad0: e8 ea ldi r30, 0xA8 ; 168 - 1ad2: fb e2 ldi r31, 0x2B ; 43 - 1ad4: ab ea ldi r26, 0xAB ; 171 - 1ad6: b5 e2 ldi r27, 0x25 ; 37 - 1ad8: 01 90 ld r0, Z+ - 1ada: 0d 92 st X+, r0 - 1adc: 8a 95 dec r24 - 1ade: e1 f7 brne .-8 ; 0x1ad8 + 1a7c: 80 e2 ldi r24, 0x20 ; 32 + 1a7e: e8 ea ldi r30, 0xA8 ; 168 + 1a80: fb e2 ldi r31, 0x2B ; 43 + 1a82: ab ea ldi r26, 0xAB ; 171 + 1a84: b5 e2 ldi r27, 0x25 ; 37 + 1a86: 01 90 ld r0, Z+ + 1a88: 0d 92 st X+, r0 + 1a8a: 8a 95 dec r24 + 1a8c: e1 f7 brne .-8 ; 0x1a86 eeprom_buffer_write[0] = 1; - 1ae0: 81 e0 ldi r24, 0x01 ; 1 - 1ae2: 80 93 ab 25 sts 0x25AB, r24 ; 0x8025ab + 1a8e: 81 e0 ldi r24, 0x01 ; 1 + 1a90: 80 93 ab 25 sts 0x25AB, r24 ; 0x8025ab eeprom_safe_write(); - 1ae6: 0e 94 9a 03 call 0x734 ; 0x734 + 1a94: 0e 94 9a 03 call 0x734 ; 0x734 eeprom_safe_read(); - 1aea: 0e 94 85 03 call 0x70a ; 0x70a + 1a98: 0e 94 85 03 call 0x70a ; 0x70a } //Code here from SprinterSB //http://www.avrfreaks.net/comment/872674 //I don't understand it, but it seems to do the job __asm volatile ("cli" "\n\t" - 1aee: e9 e7 ldi r30, 0x79 ; 121 - 1af0: f0 e0 ldi r31, 0x00 ; 0 - 1af2: 91 e0 ldi r25, 0x01 ; 1 - 1af4: 88 ed ldi r24, 0xD8 ; 216 - 1af6: f8 94 cli - 1af8: 84 bf out 0x34, r24 ; 52 - 1afa: 90 83 st Z, r25 + 1a9c: e9 e7 ldi r30, 0x79 ; 121 + 1a9e: f0 e0 ldi r31, 0x00 ; 0 + 1aa0: 91 e0 ldi r25, 0x01 ; 1 + 1aa2: 88 ed ldi r24, 0xD8 ; 216 + 1aa4: f8 94 cli + 1aa6: 84 bf out 0x34, r24 ; 52 + 1aa8: 90 83 st Z, r25 [swrst] "r" ((uint8_t) RST_SWRST_bm), [rst] "e" (&RST.CTRL) : "memory"); __builtin_unreachable(); case 0xa8: //Firmware Version Request udd_set_setup_payload(&firmver, udd_g_ctrlreq.req.wLength); - 1afc: 60 91 a0 23 lds r22, 0x23A0 ; 0x8023a0 - 1b00: 70 91 a1 23 lds r23, 0x23A1 ; 0x8023a1 - 1b04: 8a e8 ldi r24, 0x8A ; 138 - 1b06: 90 e2 ldi r25, 0x20 ; 32 - 1b08: 57 d6 rcall .+3246 ; 0x27b8 - 1b0a: 5e c2 rjmp .+1212 ; 0x1fc8 + 1aaa: 60 91 a0 23 lds r22, 0x23A0 ; 0x8023a0 + 1aae: 70 91 a1 23 lds r23, 0x23A1 ; 0x8023a1 + 1ab2: 8a e8 ldi r24, 0x8A ; 138 + 1ab4: 90 e2 ldi r25, 0x20 ; 32 + 1ab6: 57 d6 rcall .+3246 ; 0x2766 + 1ab8: 5e c2 rjmp .+1212 ; 0x1f76 return true; } } // If standard request then try to decode it in UDC if (Udd_setup_type() == USB_REQ_TYPE_STANDARD) { - 1b0c: 91 11 cpse r25, r1 - 1b0e: e1 c1 rjmp .+962 ; 0x1ed2 + 1aba: 91 11 cpse r25, r1 + 1abc: e1 c1 rjmp .+962 ; 0x1e80 * * \return true if the request is supported */ static bool udc_reqstd(void) { if (Udd_setup_is_in()) { - 1b10: 22 23 and r18, r18 - 1b12: 0c f0 brlt .+2 ; 0x1b16 - 1b14: 05 c1 rjmp .+522 ; 0x1d20 + 1abe: 22 23 and r18, r18 + 1ac0: 0c f0 brlt .+2 ; 0x1ac4 + 1ac2: 05 c1 rjmp .+522 ; 0x1cce // GET Standard Requests if (udd_g_ctrlreq.req.wLength == 0) { - 1b16: 20 91 a0 23 lds r18, 0x23A0 ; 0x8023a0 - 1b1a: 30 91 a1 23 lds r19, 0x23A1 ; 0x8023a1 - 1b1e: 21 15 cp r18, r1 - 1b20: 31 05 cpc r19, r1 - 1b22: 09 f4 brne .+2 ; 0x1b26 - 1b24: d6 c1 rjmp .+940 ; 0x1ed2 + 1ac4: 20 91 a0 23 lds r18, 0x23A0 ; 0x8023a0 + 1ac8: 30 91 a1 23 lds r19, 0x23A1 ; 0x8023a1 + 1acc: 21 15 cp r18, r1 + 1ace: 31 05 cpc r19, r1 + 1ad0: 09 f4 brne .+2 ; 0x1ad4 + 1ad2: d6 c1 rjmp .+940 ; 0x1e80 return false; // Error for USB host } if (USB_REQ_RECIP_DEVICE == Udd_setup_recipient()) { - 1b26: 8f 71 andi r24, 0x1F ; 31 - 1b28: 09 f0 breq .+2 ; 0x1b2c - 1b2a: a3 c0 rjmp .+326 ; 0x1c72 + 1ad4: 8f 71 andi r24, 0x1F ; 31 + 1ad6: 09 f0 breq .+2 ; 0x1ada + 1ad8: a3 c0 rjmp .+326 ; 0x1c20 // Standard Get Device request switch (udd_g_ctrlreq.req.bRequest) { - 1b2c: 90 91 9b 23 lds r25, 0x239B ; 0x80239b - 1b30: 96 30 cpi r25, 0x06 ; 6 - 1b32: 79 f0 breq .+30 ; 0x1b52 - 1b34: 98 30 cpi r25, 0x08 ; 8 - 1b36: 09 f4 brne .+2 ; 0x1b3a - 1b38: 92 c0 rjmp .+292 ; 0x1c5e - 1b3a: 91 11 cpse r25, r1 - 1b3c: 9a c0 rjmp .+308 ; 0x1c72 + 1ada: 90 91 9b 23 lds r25, 0x239B ; 0x80239b + 1ade: 96 30 cpi r25, 0x06 ; 6 + 1ae0: 79 f0 breq .+30 ; 0x1b00 + 1ae2: 98 30 cpi r25, 0x08 ; 8 + 1ae4: 09 f4 brne .+2 ; 0x1ae8 + 1ae6: 92 c0 rjmp .+292 ; 0x1c0c + 1ae8: 91 11 cpse r25, r1 + 1aea: 9a c0 rjmp .+308 ; 0x1c20 * * \return true if success */ static bool udc_req_std_dev_get_status(void) { if (udd_g_ctrlreq.req.wLength != sizeof(udc_device_status)) { - 1b3e: 22 30 cpi r18, 0x02 ; 2 - 1b40: 31 05 cpc r19, r1 - 1b42: 09 f0 breq .+2 ; 0x1b46 - 1b44: c6 c1 rjmp .+908 ; 0x1ed2 + 1aec: 22 30 cpi r18, 0x02 ; 2 + 1aee: 31 05 cpc r19, r1 + 1af0: 09 f0 breq .+2 ; 0x1af4 + 1af2: c6 c1 rjmp .+908 ; 0x1e80 return false; } udd_set_setup_payload( (uint8_t *) & udc_device_status, - 1b46: 62 e0 ldi r22, 0x02 ; 2 - 1b48: 70 e0 ldi r23, 0x00 ; 0 - 1b4a: 86 ea ldi r24, 0xA6 ; 166 - 1b4c: 90 e2 ldi r25, 0x20 ; 32 - 1b4e: 34 d6 rcall .+3176 ; 0x27b8 - 1b50: 3d c2 rjmp .+1146 ; 0x1fcc + 1af4: 62 e0 ldi r22, 0x02 ; 2 + 1af6: 70 e0 ldi r23, 0x00 ; 0 + 1af8: 86 ea ldi r24, 0xA6 ; 166 + 1afa: 90 e2 ldi r25, 0x20 ; 32 + 1afc: 34 d6 rcall .+3176 ; 0x2766 + 1afe: 3d c2 rjmp .+1146 ; 0x1f7a */ static bool udc_req_std_dev_get_descriptor(void) { uint8_t conf_num; conf_num = udd_g_ctrlreq.req.wValue & 0xff; - 1b52: 80 91 9c 23 lds r24, 0x239C ; 0x80239c - 1b56: 90 91 9d 23 lds r25, 0x239D ; 0x80239d + 1b00: 80 91 9c 23 lds r24, 0x239C ; 0x80239c + 1b04: 90 91 9d 23 lds r25, 0x239D ; 0x80239d // Check descriptor ID switch ((uint8_t) (udd_g_ctrlreq.req.wValue >> 8)) { - 1b5a: 29 2f mov r18, r25 - 1b5c: 33 27 eor r19, r19 - 1b5e: 22 30 cpi r18, 0x02 ; 2 - 1b60: 31 05 cpc r19, r1 - 1b62: a9 f0 breq .+42 ; 0x1b8e - 1b64: 24 f4 brge .+8 ; 0x1b6e - 1b66: 21 30 cpi r18, 0x01 ; 1 - 1b68: 31 05 cpc r19, r1 - 1b6a: 41 f0 breq .+16 ; 0x1b7c - 1b6c: a9 c1 rjmp .+850 ; 0x1ec0 - 1b6e: 23 30 cpi r18, 0x03 ; 3 - 1b70: 31 05 cpc r19, r1 - 1b72: d9 f1 breq .+118 ; 0x1bea - 1b74: 2f 30 cpi r18, 0x0F ; 15 - 1b76: 31 05 cpc r19, r1 - 1b78: 51 f1 breq .+84 ; 0x1bce - 1b7a: a2 c1 rjmp .+836 ; 0x1ec0 + 1b08: 29 2f mov r18, r25 + 1b0a: 33 27 eor r19, r19 + 1b0c: 22 30 cpi r18, 0x02 ; 2 + 1b0e: 31 05 cpc r19, r1 + 1b10: a9 f0 breq .+42 ; 0x1b3c + 1b12: 24 f4 brge .+8 ; 0x1b1c + 1b14: 21 30 cpi r18, 0x01 ; 1 + 1b16: 31 05 cpc r19, r1 + 1b18: 41 f0 breq .+16 ; 0x1b2a + 1b1a: a9 c1 rjmp .+850 ; 0x1e6e + 1b1c: 23 30 cpi r18, 0x03 ; 3 + 1b1e: 31 05 cpc r19, r1 + 1b20: d9 f1 breq .+118 ; 0x1b98 + 1b22: 2f 30 cpi r18, 0x0F ; 15 + 1b24: 31 05 cpc r19, r1 + 1b26: 51 f1 breq .+84 ; 0x1b7c + 1b28: a2 c1 rjmp .+836 ; 0x1e6e } else #endif { udd_set_setup_payload( (uint8_t *) udc_config.confdev_lsfs, udc_config.confdev_lsfs->bLength); - 1b7c: 80 91 19 20 lds r24, 0x2019 ; 0x802019 - 1b80: 90 91 1a 20 lds r25, 0x201A ; 0x80201a + 1b2a: 80 91 19 20 lds r24, 0x2019 ; 0x802019 + 1b2e: 90 91 1a 20 lds r25, 0x201A ; 0x80201a (uint8_t *) udc_config.confdev_hs, udc_config.confdev_hs->bLength); } else #endif { udd_set_setup_payload( - 1b84: dc 01 movw r26, r24 - 1b86: 6c 91 ld r22, X - 1b88: 70 e0 ldi r23, 0x00 ; 0 - 1b8a: 16 d6 rcall .+3116 ; 0x27b8 - 1b8c: 59 c0 rjmp .+178 ; 0x1c40 + 1b32: dc 01 movw r26, r24 + 1b34: 6c 91 ld r22, X + 1b36: 70 e0 ldi r23, 0x00 ; 0 + 1b38: 16 d6 rcall .+3116 ; 0x2766 + 1b3a: 59 c0 rjmp .+178 ; 0x1bee le16_to_cpu(udc_config.conf_hs[conf_num].desc->wTotalLength)); } else #endif { // FS descriptor if (conf_num >= udc_config.confdev_lsfs-> - 1b8e: e0 91 19 20 lds r30, 0x2019 ; 0x802019 - 1b92: f0 91 1a 20 lds r31, 0x201A ; 0x80201a - 1b96: 21 89 ldd r18, Z+17 ; 0x11 - 1b98: 82 17 cp r24, r18 - 1b9a: 08 f0 brcs .+2 ; 0x1b9e - 1b9c: 9a c1 rjmp .+820 ; 0x1ed2 + 1b3c: e0 91 19 20 lds r30, 0x2019 ; 0x802019 + 1b40: f0 91 1a 20 lds r31, 0x201A ; 0x80201a + 1b44: 21 89 ldd r18, Z+17 ; 0x11 + 1b46: 82 17 cp r24, r18 + 1b48: 08 f0 brcs .+2 ; 0x1b4c + 1b4a: 9a c1 rjmp .+820 ; 0x1e80 bNumConfigurations) { return false; } udd_set_setup_payload( (uint8_t *)udc_config.conf_lsfs[conf_num].desc, le16_to_cpu(udc_config.conf_lsfs[conf_num].desc->wTotalLength)); - 1b9e: 99 27 eor r25, r25 - 1ba0: 88 0f add r24, r24 - 1ba2: 99 1f adc r25, r25 - 1ba4: 88 0f add r24, r24 - 1ba6: 99 1f adc r25, r25 - 1ba8: e0 91 1b 20 lds r30, 0x201B ; 0x80201b - 1bac: f0 91 1c 20 lds r31, 0x201C ; 0x80201c - 1bb0: e8 0f add r30, r24 - 1bb2: f9 1f adc r31, r25 - 1bb4: 80 81 ld r24, Z - 1bb6: 91 81 ldd r25, Z+1 ; 0x01 + 1b4c: 99 27 eor r25, r25 + 1b4e: 88 0f add r24, r24 + 1b50: 99 1f adc r25, r25 + 1b52: 88 0f add r24, r24 + 1b54: 99 1f adc r25, r25 + 1b56: e0 91 1b 20 lds r30, 0x201B ; 0x80201b + 1b5a: f0 91 1c 20 lds r31, 0x201C ; 0x80201c + 1b5e: e8 0f add r30, r24 + 1b60: f9 1f adc r31, r25 + 1b62: 80 81 ld r24, Z + 1b64: 91 81 ldd r25, Z+1 ; 0x01 // FS descriptor if (conf_num >= udc_config.confdev_lsfs-> bNumConfigurations) { return false; } udd_set_setup_payload( - 1bb8: fc 01 movw r30, r24 - 1bba: 62 81 ldd r22, Z+2 ; 0x02 - 1bbc: 73 81 ldd r23, Z+3 ; 0x03 - 1bbe: fc d5 rcall .+3064 ; 0x27b8 + 1b66: fc 01 movw r30, r24 + 1b68: 62 81 ldd r22, Z+2 ; 0x02 + 1b6a: 73 81 ldd r23, Z+3 ; 0x03 + 1b6c: fc d5 rcall .+3064 ; 0x2766 (uint8_t *)udc_config.conf_lsfs[conf_num].desc, le16_to_cpu(udc_config.conf_lsfs[conf_num].desc->wTotalLength)); } ((usb_conf_desc_t *) udd_g_ctrlreq.payload)->bDescriptorType = - 1bc0: e0 91 a2 23 lds r30, 0x23A2 ; 0x8023a2 - 1bc4: f0 91 a3 23 lds r31, 0x23A3 ; 0x8023a3 - 1bc8: 82 e0 ldi r24, 0x02 ; 2 - 1bca: 81 83 std Z+1, r24 ; 0x01 - 1bcc: 39 c0 rjmp .+114 ; 0x1c40 + 1b6e: e0 91 a2 23 lds r30, 0x23A2 ; 0x8023a2 + 1b72: f0 91 a3 23 lds r31, 0x23A3 ; 0x8023a3 + 1b76: 82 e0 ldi r24, 0x02 ; 2 + 1b78: 81 83 std Z+1, r24 ; 0x01 + 1b7a: 39 c0 rjmp .+114 ; 0x1bee break; #endif case USB_DT_BOS: // Device BOS descriptor requested if (udc_config.conf_bos == NULL) { - 1bce: 80 91 1d 20 lds r24, 0x201D ; 0x80201d - 1bd2: 90 91 1e 20 lds r25, 0x201E ; 0x80201e - 1bd6: 00 97 sbiw r24, 0x00 ; 0 - 1bd8: 09 f4 brne .+2 ; 0x1bdc - 1bda: 7b c1 rjmp .+758 ; 0x1ed2 + 1b7c: 80 91 1d 20 lds r24, 0x201D ; 0x80201d + 1b80: 90 91 1e 20 lds r25, 0x201E ; 0x80201e + 1b84: 00 97 sbiw r24, 0x00 ; 0 + 1b86: 09 f4 brne .+2 ; 0x1b8a + 1b88: 7b c1 rjmp .+758 ; 0x1e80 return false; } udd_set_setup_payload( (uint8_t *) udc_config.conf_bos, - 1bdc: dc 01 movw r26, r24 - 1bde: 12 96 adiw r26, 0x02 ; 2 - 1be0: 6d 91 ld r22, X+ - 1be2: 7c 91 ld r23, X - 1be4: 13 97 sbiw r26, 0x03 ; 3 - 1be6: e8 d5 rcall .+3024 ; 0x27b8 - 1be8: 2b c0 rjmp .+86 ; 0x1c40 + 1b8a: dc 01 movw r26, r24 + 1b8c: 12 96 adiw r26, 0x02 ; 2 + 1b8e: 6d 91 ld r22, X+ + 1b90: 7c 91 ld r23, X + 1b92: 13 97 sbiw r26, 0x03 ; 3 + 1b94: e8 d5 rcall .+3024 ; 0x2766 + 1b96: 2b c0 rjmp .+86 ; 0x1bee uint8_t i; const uint8_t *str; uint8_t str_length = 0; // Link payload pointer to the string corresponding at request switch (udd_g_ctrlreq.req.wValue & 0xff) { - 1bea: 99 27 eor r25, r25 - 1bec: 81 30 cpi r24, 0x01 ; 1 - 1bee: 91 05 cpc r25, r1 - 1bf0: 71 f0 breq .+28 ; 0x1c0e - 1bf2: 38 f0 brcs .+14 ; 0x1c02 - 1bf4: 02 97 sbiw r24, 0x02 ; 2 - 1bf6: 09 f0 breq .+2 ; 0x1bfa - 1bf8: 6c c1 rjmp .+728 ; 0x1ed2 + 1b98: 99 27 eor r25, r25 + 1b9a: 81 30 cpi r24, 0x01 ; 1 + 1b9c: 91 05 cpc r25, r1 + 1b9e: 71 f0 breq .+28 ; 0x1bbc + 1ba0: 38 f0 brcs .+14 ; 0x1bb0 + 1ba2: 02 97 sbiw r24, 0x02 ; 2 + 1ba4: 09 f0 breq .+2 ; 0x1ba8 + 1ba6: 6c c1 rjmp .+728 ; 0x1e80 break; #endif #ifdef USB_DEVICE_PRODUCT_NAME case 2: str_length = USB_DEVICE_PRODUCT_NAME_SIZE; str = udc_string_product_name; - 1bfa: 2a e6 ldi r18, 0x6A ; 106 - 1bfc: 30 e2 ldi r19, 0x20 ; 32 + 1ba8: 2a e6 ldi r18, 0x6A ; 106 + 1baa: 30 e2 ldi r19, 0x20 ; 32 str = udc_string_manufacturer_name; break; #endif #ifdef USB_DEVICE_PRODUCT_NAME case 2: str_length = USB_DEVICE_PRODUCT_NAME_SIZE; - 1bfe: 88 e0 ldi r24, 0x08 ; 8 - 1c00: 09 c0 rjmp .+18 ; 0x1c14 + 1bac: 88 e0 ldi r24, 0x08 ; 8 + 1bae: 09 c0 rjmp .+18 ; 0x1bc2 uint8_t str_length = 0; // Link payload pointer to the string corresponding at request switch (udd_g_ctrlreq.req.wValue & 0xff) { case 0: udd_set_setup_payload((uint8_t *) &udc_string_desc_languageid, - 1c02: 64 e0 ldi r22, 0x04 ; 4 - 1c04: 70 e0 ldi r23, 0x00 ; 0 - 1c06: 8c e7 ldi r24, 0x7C ; 124 - 1c08: 90 e2 ldi r25, 0x20 ; 32 - 1c0a: d6 d5 rcall .+2988 ; 0x27b8 - 1c0c: 19 c0 rjmp .+50 ; 0x1c40 + 1bb0: 64 e0 ldi r22, 0x04 ; 4 + 1bb2: 70 e0 ldi r23, 0x00 ; 0 + 1bb4: 8c e7 ldi r24, 0x7C ; 124 + 1bb6: 90 e2 ldi r25, 0x20 ; 32 + 1bb8: d6 d5 rcall .+2988 ; 0x2766 + 1bba: 19 c0 rjmp .+50 ; 0x1bee break; #ifdef USB_DEVICE_MANUFACTURE_NAME case 1: str_length = USB_DEVICE_MANUFACTURE_NAME_SIZE; str = udc_string_manufacturer_name; - 1c0e: 23 e7 ldi r18, 0x73 ; 115 - 1c10: 30 e2 ldi r19, 0x20 ; 32 + 1bbc: 23 e7 ldi r18, 0x73 ; 115 + 1bbe: 30 e2 ldi r19, 0x20 ; 32 sizeof(udc_string_desc_languageid)); break; #ifdef USB_DEVICE_MANUFACTURE_NAME case 1: str_length = USB_DEVICE_MANUFACTURE_NAME_SIZE; - 1c12: 87 e0 ldi r24, 0x07 ; 7 - 1c14: 42 2f mov r20, r18 - 1c16: aa e5 ldi r26, 0x5A ; 90 - 1c18: b0 e2 ldi r27, 0x20 ; 32 + 1bc0: 87 e0 ldi r24, 0x07 ; 7 + 1bc2: 42 2f mov r20, r18 + 1bc4: aa e5 ldi r26, 0x5A ; 90 + 1bc6: b0 e2 ldi r27, 0x20 ; 32 str = udc_string_manufacturer_name; break; #endif #ifdef USB_DEVICE_PRODUCT_NAME case 2: str_length = USB_DEVICE_PRODUCT_NAME_SIZE; - 1c1a: e2 2f mov r30, r18 - 1c1c: f3 2f mov r31, r19 + 1bc8: e2 2f mov r30, r18 + 1bca: f3 2f mov r31, r19 return false; } if (str_length) { for(i = 0; i < str_length; i++) { udc_string_desc.string[i] = cpu_to_le16((le16_t)str[i]); - 1c1e: 21 91 ld r18, Z+ - 1c20: 30 e0 ldi r19, 0x00 ; 0 - 1c22: 2d 93 st X+, r18 - 1c24: 3d 93 st X+, r19 - 1c26: 9e 2f mov r25, r30 - 1c28: 94 1b sub r25, r20 + 1bcc: 21 91 ld r18, Z+ + 1bce: 30 e0 ldi r19, 0x00 ; 0 + 1bd0: 2d 93 st X+, r18 + 1bd2: 3d 93 st X+, r19 + 1bd4: 9e 2f mov r25, r30 + 1bd6: 94 1b sub r25, r20 #endif return false; } if (str_length) { for(i = 0; i < str_length; i++) { - 1c2a: 98 17 cp r25, r24 - 1c2c: c0 f3 brcs .-16 ; 0x1c1e + 1bd8: 98 17 cp r25, r24 + 1bda: c0 f3 brcs .-16 ; 0x1bcc udc_string_desc.string[i] = cpu_to_le16((le16_t)str[i]); } udc_string_desc.header.bLength = 2 + (str_length) * 2; - 1c2e: 68 2f mov r22, r24 - 1c30: 66 0f add r22, r22 - 1c32: 6e 5f subi r22, 0xFE ; 254 - 1c34: 60 93 58 20 sts 0x2058, r22 ; 0x802058 + 1bdc: 68 2f mov r22, r24 + 1bde: 66 0f add r22, r22 + 1be0: 6e 5f subi r22, 0xFE ; 254 + 1be2: 60 93 58 20 sts 0x2058, r22 ; 0x802058 udd_set_setup_payload( - 1c38: 70 e0 ldi r23, 0x00 ; 0 - 1c3a: 88 e5 ldi r24, 0x58 ; 88 - 1c3c: 90 e2 ldi r25, 0x20 ; 32 - 1c3e: bc d5 rcall .+2936 ; 0x27b8 + 1be6: 70 e0 ldi r23, 0x00 ; 0 + 1be8: 88 e5 ldi r24, 0x58 ; 88 + 1bea: 90 e2 ldi r25, 0x20 ; 32 + 1bec: bc d5 rcall .+2936 ; 0x2766 default: // Unknown descriptor requested return false; } // if the descriptor is larger than length requested, then reduce it if (udd_g_ctrlreq.req.wLength < udd_g_ctrlreq.payload_size) { - 1c40: ea e9 ldi r30, 0x9A ; 154 - 1c42: f3 e2 ldi r31, 0x23 ; 35 - 1c44: 86 81 ldd r24, Z+6 ; 0x06 - 1c46: 97 81 ldd r25, Z+7 ; 0x07 - 1c48: 22 85 ldd r18, Z+10 ; 0x0a - 1c4a: 33 85 ldd r19, Z+11 ; 0x0b - 1c4c: 82 17 cp r24, r18 - 1c4e: 93 07 cpc r25, r19 - 1c50: 08 f0 brcs .+2 ; 0x1c54 - 1c52: bc c1 rjmp .+888 ; 0x1fcc + 1bee: ea e9 ldi r30, 0x9A ; 154 + 1bf0: f3 e2 ldi r31, 0x23 ; 35 + 1bf2: 86 81 ldd r24, Z+6 ; 0x06 + 1bf4: 97 81 ldd r25, Z+7 ; 0x07 + 1bf6: 22 85 ldd r18, Z+10 ; 0x0a + 1bf8: 33 85 ldd r19, Z+11 ; 0x0b + 1bfa: 82 17 cp r24, r18 + 1bfc: 93 07 cpc r25, r19 + 1bfe: 08 f0 brcs .+2 ; 0x1c02 + 1c00: bc c1 rjmp .+888 ; 0x1f7a udd_g_ctrlreq.payload_size = udd_g_ctrlreq.req.wLength; - 1c54: 80 93 a4 23 sts 0x23A4, r24 ; 0x8023a4 - 1c58: 90 93 a5 23 sts 0x23A5, r25 ; 0x8023a5 - 1c5c: b7 c1 rjmp .+878 ; 0x1fcc + 1c02: 80 93 a4 23 sts 0x23A4, r24 ; 0x8023a4 + 1c06: 90 93 a5 23 sts 0x23A5, r25 ; 0x8023a5 + 1c0a: b7 c1 rjmp .+878 ; 0x1f7a * * \return true if success */ static bool udc_req_std_dev_get_configuration(void) { if (udd_g_ctrlreq.req.wLength != 1) { - 1c5e: 21 30 cpi r18, 0x01 ; 1 - 1c60: 31 05 cpc r19, r1 - 1c62: 09 f0 breq .+2 ; 0x1c66 - 1c64: 36 c1 rjmp .+620 ; 0x1ed2 + 1c0c: 21 30 cpi r18, 0x01 ; 1 + 1c0e: 31 05 cpc r19, r1 + 1c10: 09 f0 breq .+2 ; 0x1c14 + 1c12: 36 c1 rjmp .+620 ; 0x1e80 return false; } udd_set_setup_payload(&udc_num_configuration,1); - 1c66: 61 e0 ldi r22, 0x01 ; 1 - 1c68: 70 e0 ldi r23, 0x00 ; 0 - 1c6a: 82 ea ldi r24, 0xA2 ; 162 - 1c6c: 90 e2 ldi r25, 0x20 ; 32 - 1c6e: a4 d5 rcall .+2888 ; 0x27b8 - 1c70: ad c1 rjmp .+858 ; 0x1fcc + 1c14: 61 e0 ldi r22, 0x01 ; 1 + 1c16: 70 e0 ldi r23, 0x00 ; 0 + 1c18: 82 ea ldi r24, 0xA2 ; 162 + 1c1a: 90 e2 ldi r25, 0x20 ; 32 + 1c1c: a4 d5 rcall .+2888 ; 0x2766 + 1c1e: ad c1 rjmp .+858 ; 0x1f7a default: break; } } if (USB_REQ_RECIP_INTERFACE == Udd_setup_recipient()) { - 1c72: 81 30 cpi r24, 0x01 ; 1 - 1c74: e1 f5 brne .+120 ; 0x1cee + 1c20: 81 30 cpi r24, 0x01 ; 1 + 1c22: e1 f5 brne .+120 ; 0x1c9c // Standard Get Interface request switch (udd_g_ctrlreq.req.bRequest) { - 1c76: 90 91 9b 23 lds r25, 0x239B ; 0x80239b - 1c7a: 9a 30 cpi r25, 0x0A ; 10 - 1c7c: c1 f5 brne .+112 ; 0x1cee + 1c24: 90 91 9b 23 lds r25, 0x239B ; 0x80239b + 1c28: 9a 30 cpi r25, 0x0A ; 10 + 1c2a: c1 f5 brne .+112 ; 0x1c9c static bool udc_req_std_iface_get_setting(void) { uint8_t iface_num; udi_api_t UDC_DESC_STORAGE *udi_api; if (udd_g_ctrlreq.req.wLength != 1) { - 1c7e: 21 30 cpi r18, 0x01 ; 1 - 1c80: 31 05 cpc r19, r1 - 1c82: 09 f0 breq .+2 ; 0x1c86 - 1c84: 26 c1 rjmp .+588 ; 0x1ed2 + 1c2c: 21 30 cpi r18, 0x01 ; 1 + 1c2e: 31 05 cpc r19, r1 + 1c30: 09 f0 breq .+2 ; 0x1c34 + 1c32: 26 c1 rjmp .+588 ; 0x1e80 return false; // Error in request } if (!udc_num_configuration) { - 1c86: 80 91 a2 20 lds r24, 0x20A2 ; 0x8020a2 - 1c8a: 88 23 and r24, r24 - 1c8c: 09 f4 brne .+2 ; 0x1c90 - 1c8e: 21 c1 rjmp .+578 ; 0x1ed2 + 1c34: 80 91 a2 20 lds r24, 0x20A2 ; 0x8020a2 + 1c38: 88 23 and r24, r24 + 1c3a: 09 f4 brne .+2 ; 0x1c3e + 1c3c: 21 c1 rjmp .+578 ; 0x1e80 return false; // The device is not is configured state yet } // Check the interface number included in the request iface_num = udd_g_ctrlreq.req.wIndex & 0xFF; - 1c90: c0 91 9e 23 lds r28, 0x239E ; 0x80239e - 1c94: d0 91 9f 23 lds r29, 0x239F ; 0x80239f + 1c3e: c0 91 9e 23 lds r28, 0x239E ; 0x80239e + 1c42: d0 91 9f 23 lds r29, 0x239F ; 0x80239f if (iface_num >= udc_ptr_conf->desc->bNumInterfaces) { - 1c98: 00 91 9f 20 lds r16, 0x209F ; 0x80209f - 1c9c: 10 91 a0 20 lds r17, 0x20A0 ; 0x8020a0 - 1ca0: d8 01 movw r26, r16 - 1ca2: ed 91 ld r30, X+ - 1ca4: fc 91 ld r31, X - 1ca6: 84 81 ldd r24, Z+4 ; 0x04 - 1ca8: c8 17 cp r28, r24 - 1caa: 08 f0 brcs .+2 ; 0x1cae - 1cac: 12 c1 rjmp .+548 ; 0x1ed2 + 1c46: 00 91 9f 20 lds r16, 0x209F ; 0x80209f + 1c4a: 10 91 a0 20 lds r17, 0x20A0 ; 0x8020a0 + 1c4e: d8 01 movw r26, r16 + 1c50: ed 91 ld r30, X+ + 1c52: fc 91 ld r31, X + 1c54: 84 81 ldd r24, Z+4 ; 0x04 + 1c56: c8 17 cp r28, r24 + 1c58: 08 f0 brcs .+2 ; 0x1c5c + 1c5a: 12 c1 rjmp .+548 ; 0x1e80 return false; } // Select first alternate setting of the interface to update udc_ptr_iface // before call iface->getsetting() if (!udc_update_iface_desc(iface_num, 0)) { - 1cae: 60 e0 ldi r22, 0x00 ; 0 - 1cb0: 8c 2f mov r24, r28 - 1cb2: fc dc rcall .-1544 ; 0x16ac - 1cb4: 88 23 and r24, r24 - 1cb6: 09 f4 brne .+2 ; 0x1cba - 1cb8: 0c c1 rjmp .+536 ; 0x1ed2 + 1c5c: 60 e0 ldi r22, 0x00 ; 0 + 1c5e: 8c 2f mov r24, r28 + 1c60: fc dc rcall .-1544 ; 0x165a + 1c62: 88 23 and r24, r24 + 1c64: 09 f4 brne .+2 ; 0x1c68 + 1c66: 0c c1 rjmp .+536 ; 0x1e80 return false; } // Get alternate setting from UDI udi_api = udc_ptr_conf->udi_apis[iface_num]; - 1cba: ce 01 movw r24, r28 - 1cbc: 99 27 eor r25, r25 - 1cbe: 88 0f add r24, r24 - 1cc0: 99 1f adc r25, r25 - 1cc2: d8 01 movw r26, r16 - 1cc4: 12 96 adiw r26, 0x02 ; 2 - 1cc6: ed 91 ld r30, X+ - 1cc8: fc 91 ld r31, X - 1cca: 13 97 sbiw r26, 0x03 ; 3 - 1ccc: e8 0f add r30, r24 - 1cce: f9 1f adc r31, r25 + 1c68: ce 01 movw r24, r28 + 1c6a: 99 27 eor r25, r25 + 1c6c: 88 0f add r24, r24 + 1c6e: 99 1f adc r25, r25 + 1c70: d8 01 movw r26, r16 + 1c72: 12 96 adiw r26, 0x02 ; 2 + 1c74: ed 91 ld r30, X+ + 1c76: fc 91 ld r31, X + 1c78: 13 97 sbiw r26, 0x03 ; 3 + 1c7a: e8 0f add r30, r24 + 1c7c: f9 1f adc r31, r25 udc_iface_setting = udi_api->getsetting(); - 1cd0: 01 90 ld r0, Z+ - 1cd2: f0 81 ld r31, Z - 1cd4: e0 2d mov r30, r0 - 1cd6: 86 81 ldd r24, Z+6 ; 0x06 - 1cd8: 97 81 ldd r25, Z+7 ; 0x07 - 1cda: fc 01 movw r30, r24 - 1cdc: 09 95 icall - 1cde: 80 93 a4 20 sts 0x20A4, r24 ; 0x8020a4 + 1c7e: 01 90 ld r0, Z+ + 1c80: f0 81 ld r31, Z + 1c82: e0 2d mov r30, r0 + 1c84: 86 81 ldd r24, Z+6 ; 0x06 + 1c86: 97 81 ldd r25, Z+7 ; 0x07 + 1c88: fc 01 movw r30, r24 + 1c8a: 09 95 icall + 1c8c: 80 93 a4 20 sts 0x20A4, r24 ; 0x8020a4 // Link value to payload pointer of request udd_set_setup_payload(&udc_iface_setting,1); - 1ce2: 61 e0 ldi r22, 0x01 ; 1 - 1ce4: 70 e0 ldi r23, 0x00 ; 0 - 1ce6: 84 ea ldi r24, 0xA4 ; 164 - 1ce8: 90 e2 ldi r25, 0x20 ; 32 - 1cea: 66 d5 rcall .+2764 ; 0x27b8 - 1cec: 6f c1 rjmp .+734 ; 0x1fcc + 1c90: 61 e0 ldi r22, 0x01 ; 1 + 1c92: 70 e0 ldi r23, 0x00 ; 0 + 1c94: 84 ea ldi r24, 0xA4 ; 164 + 1c96: 90 e2 ldi r25, 0x20 ; 32 + 1c98: 66 d5 rcall .+2764 ; 0x2766 + 1c9a: 6f c1 rjmp .+734 ; 0x1f7a default: break; } } #if (0!=USB_DEVICE_MAX_EP) if (USB_REQ_RECIP_ENDPOINT == Udd_setup_recipient()) { - 1cee: 82 30 cpi r24, 0x02 ; 2 - 1cf0: 09 f0 breq .+2 ; 0x1cf4 - 1cf2: ef c0 rjmp .+478 ; 0x1ed2 + 1c9c: 82 30 cpi r24, 0x02 ; 2 + 1c9e: 09 f0 breq .+2 ; 0x1ca2 + 1ca0: ef c0 rjmp .+478 ; 0x1e80 // Standard Get Endpoint request switch (udd_g_ctrlreq.req.bRequest) { - 1cf4: 80 91 9b 23 lds r24, 0x239B ; 0x80239b - 1cf8: 81 11 cpse r24, r1 - 1cfa: e4 c0 rjmp .+456 ; 0x1ec4 + 1ca2: 80 91 9b 23 lds r24, 0x239B ; 0x80239b + 1ca6: 81 11 cpse r24, r1 + 1ca8: e4 c0 rjmp .+456 ; 0x1e72 */ static bool udc_req_std_ep_get_status(void) { static le16_t udc_ep_status; if (udd_g_ctrlreq.req.wLength != sizeof(udc_ep_status)) { - 1cfc: 22 30 cpi r18, 0x02 ; 2 - 1cfe: 31 05 cpc r19, r1 - 1d00: 09 f0 breq .+2 ; 0x1d04 - 1d02: e7 c0 rjmp .+462 ; 0x1ed2 + 1caa: 22 30 cpi r18, 0x02 ; 2 + 1cac: 31 05 cpc r19, r1 + 1cae: 09 f0 breq .+2 ; 0x1cb2 + 1cb0: e7 c0 rjmp .+462 ; 0x1e80 return false; } udc_ep_status = udd_ep_is_halted(udd_g_ctrlreq.req. - 1d04: 80 91 9e 23 lds r24, 0x239E ; 0x80239e - 1d08: d3 d5 rcall .+2982 ; 0x28b0 - 1d0a: 90 e0 ldi r25, 0x00 ; 0 - 1d0c: 80 93 9b 20 sts 0x209B, r24 ; 0x80209b - 1d10: 90 93 9c 20 sts 0x209C, r25 ; 0x80209c + 1cb2: 80 91 9e 23 lds r24, 0x239E ; 0x80239e + 1cb6: d3 d5 rcall .+2982 ; 0x285e + 1cb8: 90 e0 ldi r25, 0x00 ; 0 + 1cba: 80 93 9b 20 sts 0x209B, r24 ; 0x80209b + 1cbe: 90 93 9c 20 sts 0x209C, r25 ; 0x80209c wIndex & 0xFF) ? CPU_TO_LE16(USB_EP_STATUS_HALTED) : 0; udd_set_setup_payload( (uint8_t *) & udc_ep_status, - 1d14: 62 e0 ldi r22, 0x02 ; 2 - 1d16: 70 e0 ldi r23, 0x00 ; 0 - 1d18: 8b e9 ldi r24, 0x9B ; 155 - 1d1a: 90 e2 ldi r25, 0x20 ; 32 - 1d1c: 4d d5 rcall .+2714 ; 0x27b8 - 1d1e: 56 c1 rjmp .+684 ; 0x1fcc + 1cc2: 62 e0 ldi r22, 0x02 ; 2 + 1cc4: 70 e0 ldi r23, 0x00 ; 0 + 1cc6: 8b e9 ldi r24, 0x9B ; 155 + 1cc8: 90 e2 ldi r25, 0x20 ; 32 + 1cca: 4d d5 rcall .+2714 ; 0x2766 + 1ccc: 56 c1 rjmp .+684 ; 0x1f7a } } #endif } else { // SET Standard Requests if (USB_REQ_RECIP_DEVICE == Udd_setup_recipient()) { - 1d20: 8f 71 andi r24, 0x1F ; 31 - 1d22: 09 f0 breq .+2 ; 0x1d26 - 1d24: 83 c0 rjmp .+262 ; 0x1e2c + 1cce: 8f 71 andi r24, 0x1F ; 31 + 1cd0: 09 f0 breq .+2 ; 0x1cd4 + 1cd2: 83 c0 rjmp .+262 ; 0x1dda // Standard Set Device request switch (udd_g_ctrlreq.req.bRequest) { - 1d26: 90 91 9b 23 lds r25, 0x239B ; 0x80239b - 1d2a: 93 30 cpi r25, 0x03 ; 3 - 1d2c: 09 f4 brne .+2 ; 0x1d30 - 1d2e: cc c0 rjmp .+408 ; 0x1ec8 - 1d30: 18 f4 brcc .+6 ; 0x1d38 - 1d32: 91 30 cpi r25, 0x01 ; 1 - 1d34: a1 f0 breq .+40 ; 0x1d5e - 1d36: 7a c0 rjmp .+244 ; 0x1e2c - 1d38: 95 30 cpi r25, 0x05 ; 5 - 1d3a: 19 f0 breq .+6 ; 0x1d42 - 1d3c: 99 30 cpi r25, 0x09 ; 9 - 1d3e: 39 f1 breq .+78 ; 0x1d8e - 1d40: 75 c0 rjmp .+234 ; 0x1e2c + 1cd4: 90 91 9b 23 lds r25, 0x239B ; 0x80239b + 1cd8: 93 30 cpi r25, 0x03 ; 3 + 1cda: 09 f4 brne .+2 ; 0x1cde + 1cdc: cc c0 rjmp .+408 ; 0x1e76 + 1cde: 18 f4 brcc .+6 ; 0x1ce6 + 1ce0: 91 30 cpi r25, 0x01 ; 1 + 1ce2: a1 f0 breq .+40 ; 0x1d0c + 1ce4: 7a c0 rjmp .+244 ; 0x1dda + 1ce6: 95 30 cpi r25, 0x05 ; 5 + 1ce8: 19 f0 breq .+6 ; 0x1cf0 + 1cea: 99 30 cpi r25, 0x09 ; 9 + 1cec: 39 f1 breq .+78 ; 0x1d3c + 1cee: 75 c0 rjmp .+234 ; 0x1dda * * \return true if success */ static bool udc_req_std_dev_set_address(void) { if (udd_g_ctrlreq.req.wLength) { - 1d42: 80 91 a0 23 lds r24, 0x23A0 ; 0x8023a0 - 1d46: 90 91 a1 23 lds r25, 0x23A1 ; 0x8023a1 - 1d4a: 89 2b or r24, r25 - 1d4c: 09 f0 breq .+2 ; 0x1d50 - 1d4e: c1 c0 rjmp .+386 ; 0x1ed2 + 1cf0: 80 91 a0 23 lds r24, 0x23A0 ; 0x8023a0 + 1cf4: 90 91 a1 23 lds r25, 0x23A1 ; 0x8023a1 + 1cf8: 89 2b or r24, r25 + 1cfa: 09 f0 breq .+2 ; 0x1cfe + 1cfc: c1 c0 rjmp .+386 ; 0x1e80 return false; } // The address must be changed at the end of setup request after the handshake // then we use a callback to change address udd_g_ctrlreq.callback = udc_valid_address; - 1d50: 80 e5 ldi r24, 0x50 ; 80 - 1d52: 9b e0 ldi r25, 0x0B ; 11 - 1d54: 80 93 a6 23 sts 0x23A6, r24 ; 0x8023a6 - 1d58: 90 93 a7 23 sts 0x23A7, r25 ; 0x8023a7 - 1d5c: 37 c1 rjmp .+622 ; 0x1fcc + 1cfe: 87 e2 ldi r24, 0x27 ; 39 + 1d00: 9b e0 ldi r25, 0x0B ; 11 + 1d02: 80 93 a6 23 sts 0x23A6, r24 ; 0x8023a6 + 1d06: 90 93 a7 23 sts 0x23A7, r25 ; 0x8023a7 + 1d0a: 37 c1 rjmp .+622 ; 0x1f7a * * \return true if success */ static bool udc_req_std_dev_clear_feature(void) { if (udd_g_ctrlreq.req.wLength) { - 1d5e: 80 91 a0 23 lds r24, 0x23A0 ; 0x8023a0 - 1d62: 90 91 a1 23 lds r25, 0x23A1 ; 0x8023a1 - 1d66: 89 2b or r24, r25 - 1d68: 09 f0 breq .+2 ; 0x1d6c - 1d6a: b3 c0 rjmp .+358 ; 0x1ed2 + 1d0c: 80 91 a0 23 lds r24, 0x23A0 ; 0x8023a0 + 1d10: 90 91 a1 23 lds r25, 0x23A1 ; 0x8023a1 + 1d14: 89 2b or r24, r25 + 1d16: 09 f0 breq .+2 ; 0x1d1a + 1d18: b3 c0 rjmp .+358 ; 0x1e80 return false; } if (udd_g_ctrlreq.req.wValue == USB_DEV_FEATURE_REMOTE_WAKEUP) { - 1d6c: 80 91 9c 23 lds r24, 0x239C ; 0x80239c - 1d70: 90 91 9d 23 lds r25, 0x239D ; 0x80239d - 1d74: 01 97 sbiw r24, 0x01 ; 1 - 1d76: 09 f0 breq .+2 ; 0x1d7a - 1d78: ac c0 rjmp .+344 ; 0x1ed2 + 1d1a: 80 91 9c 23 lds r24, 0x239C ; 0x80239c + 1d1e: 90 91 9d 23 lds r25, 0x239D ; 0x80239d + 1d22: 01 97 sbiw r24, 0x01 ; 1 + 1d24: 09 f0 breq .+2 ; 0x1d28 + 1d26: ac c0 rjmp .+344 ; 0x1e80 udc_device_status &= CPU_TO_LE16(~(uint32_t)USB_DEV_STATUS_REMOTEWAKEUP); - 1d7a: 80 91 a6 20 lds r24, 0x20A6 ; 0x8020a6 - 1d7e: 90 91 a7 20 lds r25, 0x20A7 ; 0x8020a7 - 1d82: 8d 7f andi r24, 0xFD ; 253 - 1d84: 80 93 a6 20 sts 0x20A6, r24 ; 0x8020a6 - 1d88: 90 93 a7 20 sts 0x20A7, r25 ; 0x8020a7 - 1d8c: 1f c1 rjmp .+574 ; 0x1fcc + 1d28: 80 91 a6 20 lds r24, 0x20A6 ; 0x8020a6 + 1d2c: 90 91 a7 20 lds r25, 0x20A7 ; 0x8020a7 + 1d30: 8d 7f andi r24, 0xFD ; 253 + 1d32: 80 93 a6 20 sts 0x20A6, r24 ; 0x8020a6 + 1d36: 90 93 a7 20 sts 0x20A7, r25 ; 0x8020a7 + 1d3a: 1f c1 rjmp .+574 ; 0x1f7a static bool udc_req_std_dev_set_configuration(void) { uint8_t iface_num; // Check request length if (udd_g_ctrlreq.req.wLength) { - 1d8e: 80 91 a0 23 lds r24, 0x23A0 ; 0x8023a0 - 1d92: 90 91 a1 23 lds r25, 0x23A1 ; 0x8023a1 - 1d96: 89 2b or r24, r25 - 1d98: 09 f0 breq .+2 ; 0x1d9c - 1d9a: 9b c0 rjmp .+310 ; 0x1ed2 + 1d3c: 80 91 a0 23 lds r24, 0x23A0 ; 0x8023a0 + 1d40: 90 91 a1 23 lds r25, 0x23A1 ; 0x8023a1 + 1d44: 89 2b or r24, r25 + 1d46: 09 f0 breq .+2 ; 0x1d4a + 1d48: 9b c0 rjmp .+310 ; 0x1e80 return false; } // Authorize configuration only if the address is valid if (!udd_getaddress()) { - 1d9c: 0a d5 rcall .+2580 ; 0x27b2 - 1d9e: 88 23 and r24, r24 - 1da0: 09 f4 brne .+2 ; 0x1da4 - 1da2: 97 c0 rjmp .+302 ; 0x1ed2 + 1d4a: 0a d5 rcall .+2580 ; 0x2760 + 1d4c: 88 23 and r24, r24 + 1d4e: 09 f4 brne .+2 ; 0x1d52 + 1d50: 97 c0 rjmp .+302 ; 0x1e80 } } else #endif { // FS descriptor if ((udd_g_ctrlreq.req.wValue & 0xFF) > - 1da4: 20 91 9c 23 lds r18, 0x239C ; 0x80239c - 1da8: 30 91 9d 23 lds r19, 0x239D ; 0x80239d - 1dac: 33 27 eor r19, r19 + 1d52: 20 91 9c 23 lds r18, 0x239C ; 0x80239c + 1d56: 30 91 9d 23 lds r19, 0x239D ; 0x80239d + 1d5a: 33 27 eor r19, r19 udc_config.confdev_lsfs->bNumConfigurations) { - 1dae: e0 91 19 20 lds r30, 0x2019 ; 0x802019 - 1db2: f0 91 1a 20 lds r31, 0x201A ; 0x80201a + 1d5c: e0 91 19 20 lds r30, 0x2019 ; 0x802019 + 1d60: f0 91 1a 20 lds r31, 0x201A ; 0x80201a } } else #endif { // FS descriptor if ((udd_g_ctrlreq.req.wValue & 0xFF) > - 1db6: 81 89 ldd r24, Z+17 ; 0x11 - 1db8: 90 e0 ldi r25, 0x00 ; 0 - 1dba: 82 17 cp r24, r18 - 1dbc: 93 07 cpc r25, r19 - 1dbe: 08 f4 brcc .+2 ; 0x1dc2 - 1dc0: 88 c0 rjmp .+272 ; 0x1ed2 + 1d64: 81 89 ldd r24, Z+17 ; 0x11 + 1d66: 90 e0 ldi r25, 0x00 ; 0 + 1d68: 82 17 cp r24, r18 + 1d6a: 93 07 cpc r25, r19 + 1d6c: 08 f4 brcc .+2 ; 0x1d70 + 1d6e: 88 c0 rjmp .+272 ; 0x1e80 return false; } } // Reset current configuration udc_reset(); - 1dc2: 29 dd rcall .-1454 ; 0x1816 + 1d70: 29 dd rcall .-1454 ; 0x17c4 // Enable new configuration udc_num_configuration = udd_g_ctrlreq.req.wValue & 0xFF; - 1dc4: 80 91 9c 23 lds r24, 0x239C ; 0x80239c - 1dc8: 90 91 9d 23 lds r25, 0x239D ; 0x80239d - 1dcc: 80 93 a2 20 sts 0x20A2, r24 ; 0x8020a2 + 1d72: 80 91 9c 23 lds r24, 0x239C ; 0x80239c + 1d76: 90 91 9d 23 lds r25, 0x239D ; 0x80239d + 1d7a: 80 93 a2 20 sts 0x20A2, r24 ; 0x8020a2 if (udc_num_configuration == 0) { - 1dd0: 88 23 and r24, r24 - 1dd2: 09 f4 brne .+2 ; 0x1dd6 - 1dd4: fb c0 rjmp .+502 ; 0x1fcc + 1d7e: 88 23 and r24, r24 + 1d80: 09 f4 brne .+2 ; 0x1d84 + 1d82: fb c0 rjmp .+502 ; 0x1f7a udc_ptr_conf = &udc_config.conf_hs[udc_num_configuration - 1]; } else #endif { // FS descriptor udc_ptr_conf = &udc_config.conf_lsfs[udc_num_configuration - 1]; - 1dd6: 99 27 eor r25, r25 - 1dd8: 81 50 subi r24, 0x01 ; 1 - 1dda: 90 4c sbci r25, 0xC0 ; 192 - 1ddc: 88 0f add r24, r24 - 1dde: 99 1f adc r25, r25 - 1de0: 88 0f add r24, r24 - 1de2: 99 1f adc r25, r25 - 1de4: e0 91 1b 20 lds r30, 0x201B ; 0x80201b - 1de8: f0 91 1c 20 lds r31, 0x201C ; 0x80201c - 1dec: e8 0f add r30, r24 - 1dee: f9 1f adc r31, r25 - 1df0: e0 93 9f 20 sts 0x209F, r30 ; 0x80209f - 1df4: f0 93 a0 20 sts 0x20A0, r31 ; 0x8020a0 + 1d84: 99 27 eor r25, r25 + 1d86: 81 50 subi r24, 0x01 ; 1 + 1d88: 90 4c sbci r25, 0xC0 ; 192 + 1d8a: 88 0f add r24, r24 + 1d8c: 99 1f adc r25, r25 + 1d8e: 88 0f add r24, r24 + 1d90: 99 1f adc r25, r25 + 1d92: e0 91 1b 20 lds r30, 0x201B ; 0x80201b + 1d96: f0 91 1c 20 lds r31, 0x201C ; 0x80201c + 1d9a: e8 0f add r30, r24 + 1d9c: f9 1f adc r31, r25 + 1d9e: e0 93 9f 20 sts 0x209F, r30 ; 0x80209f + 1da2: f0 93 a0 20 sts 0x20A0, r31 ; 0x8020a0 } // Enable all interfaces of the selected configuration for (iface_num = 0; iface_num < udc_ptr_conf->desc->bNumInterfaces; - 1df8: 01 90 ld r0, Z+ - 1dfa: f0 81 ld r31, Z - 1dfc: e0 2d mov r30, r0 - 1dfe: 84 81 ldd r24, Z+4 ; 0x04 - 1e00: 88 23 and r24, r24 - 1e02: 09 f4 brne .+2 ; 0x1e06 - 1e04: e3 c0 rjmp .+454 ; 0x1fcc - 1e06: c0 e0 ldi r28, 0x00 ; 0 + 1da6: 01 90 ld r0, Z+ + 1da8: f0 81 ld r31, Z + 1daa: e0 2d mov r30, r0 + 1dac: 84 81 ldd r24, Z+4 ; 0x04 + 1dae: 88 23 and r24, r24 + 1db0: 09 f4 brne .+2 ; 0x1db4 + 1db2: e3 c0 rjmp .+454 ; 0x1f7a + 1db4: c0 e0 ldi r28, 0x00 ; 0 iface_num++) { if (!udc_iface_enable(iface_num, 0)) { - 1e08: 60 e0 ldi r22, 0x00 ; 0 - 1e0a: 8c 2f mov r24, r28 - 1e0c: cb dc rcall .-1642 ; 0x17a4 - 1e0e: 88 23 and r24, r24 - 1e10: 09 f4 brne .+2 ; 0x1e14 - 1e12: 5f c0 rjmp .+190 ; 0x1ed2 + 1db6: 60 e0 ldi r22, 0x00 ; 0 + 1db8: 8c 2f mov r24, r28 + 1dba: cb dc rcall .-1642 ; 0x1752 + 1dbc: 88 23 and r24, r24 + 1dbe: 09 f4 brne .+2 ; 0x1dc2 + 1dc0: 5f c0 rjmp .+190 ; 0x1e80 // FS descriptor udc_ptr_conf = &udc_config.conf_lsfs[udc_num_configuration - 1]; } // Enable all interfaces of the selected configuration for (iface_num = 0; iface_num < udc_ptr_conf->desc->bNumInterfaces; iface_num++) { - 1e14: cf 5f subi r28, 0xFF ; 255 + 1dc2: cf 5f subi r28, 0xFF ; 255 { // FS descriptor udc_ptr_conf = &udc_config.conf_lsfs[udc_num_configuration - 1]; } // Enable all interfaces of the selected configuration for (iface_num = 0; iface_num < udc_ptr_conf->desc->bNumInterfaces; - 1e16: e0 91 9f 20 lds r30, 0x209F ; 0x80209f - 1e1a: f0 91 a0 20 lds r31, 0x20A0 ; 0x8020a0 - 1e1e: 01 90 ld r0, Z+ - 1e20: f0 81 ld r31, Z - 1e22: e0 2d mov r30, r0 - 1e24: 84 81 ldd r24, Z+4 ; 0x04 - 1e26: c8 17 cp r28, r24 - 1e28: 78 f3 brcs .-34 ; 0x1e08 - 1e2a: d0 c0 rjmp .+416 ; 0x1fcc + 1dc4: e0 91 9f 20 lds r30, 0x209F ; 0x80209f + 1dc8: f0 91 a0 20 lds r31, 0x20A0 ; 0x8020a0 + 1dcc: 01 90 ld r0, Z+ + 1dce: f0 81 ld r31, Z + 1dd0: e0 2d mov r30, r0 + 1dd2: 84 81 ldd r24, Z+4 ; 0x04 + 1dd4: c8 17 cp r28, r24 + 1dd6: 78 f3 brcs .-34 ; 0x1db6 + 1dd8: d0 c0 rjmp .+416 ; 0x1f7a default: break; } } if (USB_REQ_RECIP_INTERFACE == Udd_setup_recipient()) { - 1e2c: 81 30 cpi r24, 0x01 ; 1 - 1e2e: e1 f4 brne .+56 ; 0x1e68 + 1dda: 81 30 cpi r24, 0x01 ; 1 + 1ddc: e1 f4 brne .+56 ; 0x1e16 // Standard Set Interface request switch (udd_g_ctrlreq.req.bRequest) { - 1e30: 90 91 9b 23 lds r25, 0x239B ; 0x80239b - 1e34: 9b 30 cpi r25, 0x0B ; 11 - 1e36: c1 f4 brne .+48 ; 0x1e68 + 1dde: 90 91 9b 23 lds r25, 0x239B ; 0x80239b + 1de2: 9b 30 cpi r25, 0x0B ; 11 + 1de4: c1 f4 brne .+48 ; 0x1e16 */ static bool udc_req_std_iface_set_setting(void) { uint8_t iface_num, setting_num; if (udd_g_ctrlreq.req.wLength) { - 1e38: 80 91 a0 23 lds r24, 0x23A0 ; 0x8023a0 - 1e3c: 90 91 a1 23 lds r25, 0x23A1 ; 0x8023a1 - 1e40: 89 2b or r24, r25 - 1e42: 09 f0 breq .+2 ; 0x1e46 - 1e44: 46 c0 rjmp .+140 ; 0x1ed2 + 1de6: 80 91 a0 23 lds r24, 0x23A0 ; 0x8023a0 + 1dea: 90 91 a1 23 lds r25, 0x23A1 ; 0x8023a1 + 1dee: 89 2b or r24, r25 + 1df0: 09 f0 breq .+2 ; 0x1df4 + 1df2: 46 c0 rjmp .+140 ; 0x1e80 return false; // Error in request } if (!udc_num_configuration) { - 1e46: 80 91 a2 20 lds r24, 0x20A2 ; 0x8020a2 - 1e4a: 88 23 and r24, r24 - 1e4c: 09 f4 brne .+2 ; 0x1e50 - 1e4e: 41 c0 rjmp .+130 ; 0x1ed2 + 1df4: 80 91 a2 20 lds r24, 0x20A2 ; 0x8020a2 + 1df8: 88 23 and r24, r24 + 1dfa: 09 f4 brne .+2 ; 0x1dfe + 1dfc: 41 c0 rjmp .+130 ; 0x1e80 return false; // The device is not is configured state yet } iface_num = udd_g_ctrlreq.req.wIndex & 0xFF; - 1e50: ea e9 ldi r30, 0x9A ; 154 - 1e52: f3 e2 ldi r31, 0x23 ; 35 - 1e54: c4 81 ldd r28, Z+4 ; 0x04 + 1dfe: ea e9 ldi r30, 0x9A ; 154 + 1e00: f3 e2 ldi r31, 0x23 ; 35 + 1e02: c4 81 ldd r28, Z+4 ; 0x04 setting_num = udd_g_ctrlreq.req.wValue & 0xFF; - 1e56: d2 81 ldd r29, Z+2 ; 0x02 + 1e04: d2 81 ldd r29, Z+2 ; 0x02 // Disable current setting if (!udc_iface_disable(iface_num)) { - 1e58: 8c 2f mov r24, r28 - 1e5a: 62 dc rcall .-1852 ; 0x1720 - 1e5c: 88 23 and r24, r24 - 1e5e: c9 f1 breq .+114 ; 0x1ed2 + 1e06: 8c 2f mov r24, r28 + 1e08: 62 dc rcall .-1852 ; 0x16ce + 1e0a: 88 23 and r24, r24 + 1e0c: c9 f1 breq .+114 ; 0x1e80 return false; } // Enable new setting return udc_iface_enable(iface_num, setting_num); - 1e60: 6d 2f mov r22, r29 - 1e62: 8c 2f mov r24, r28 - 1e64: 9f dc rcall .-1730 ; 0x17a4 - 1e66: 33 c0 rjmp .+102 ; 0x1ece + 1e0e: 6d 2f mov r22, r29 + 1e10: 8c 2f mov r24, r28 + 1e12: 9f dc rcall .-1730 ; 0x1752 + 1e14: 33 c0 rjmp .+102 ; 0x1e7c default: break; } } #if (0!=USB_DEVICE_MAX_EP) if (USB_REQ_RECIP_ENDPOINT == Udd_setup_recipient()) { - 1e68: 82 30 cpi r24, 0x02 ; 2 - 1e6a: 99 f5 brne .+102 ; 0x1ed2 + 1e16: 82 30 cpi r24, 0x02 ; 2 + 1e18: 99 f5 brne .+102 ; 0x1e80 // Standard Set Endpoint request switch (udd_g_ctrlreq.req.bRequest) { - 1e6c: 80 91 9b 23 lds r24, 0x239B ; 0x80239b - 1e70: 81 30 cpi r24, 0x01 ; 1 - 1e72: 19 f0 breq .+6 ; 0x1e7a - 1e74: 83 30 cpi r24, 0x03 ; 3 - 1e76: 89 f0 breq .+34 ; 0x1e9a - 1e78: 29 c0 rjmp .+82 ; 0x1ecc + 1e1a: 80 91 9b 23 lds r24, 0x239B ; 0x80239b + 1e1e: 81 30 cpi r24, 0x01 ; 1 + 1e20: 19 f0 breq .+6 ; 0x1e28 + 1e22: 83 30 cpi r24, 0x03 ; 3 + 1e24: 89 f0 breq .+34 ; 0x1e48 + 1e26: 29 c0 rjmp .+82 ; 0x1e7a * * \return true if success */ static bool udc_req_std_ep_clear_feature(void) { if (udd_g_ctrlreq.req.wLength) { - 1e7a: 80 91 a0 23 lds r24, 0x23A0 ; 0x8023a0 - 1e7e: 90 91 a1 23 lds r25, 0x23A1 ; 0x8023a1 - 1e82: 89 2b or r24, r25 - 1e84: 31 f5 brne .+76 ; 0x1ed2 + 1e28: 80 91 a0 23 lds r24, 0x23A0 ; 0x8023a0 + 1e2c: 90 91 a1 23 lds r25, 0x23A1 ; 0x8023a1 + 1e30: 89 2b or r24, r25 + 1e32: 31 f5 brne .+76 ; 0x1e80 return false; } if (udd_g_ctrlreq.req.wValue == USB_EP_FEATURE_HALT) { - 1e86: 80 91 9c 23 lds r24, 0x239C ; 0x80239c - 1e8a: 90 91 9d 23 lds r25, 0x239D ; 0x80239d - 1e8e: 89 2b or r24, r25 - 1e90: 01 f5 brne .+64 ; 0x1ed2 + 1e34: 80 91 9c 23 lds r24, 0x239C ; 0x80239c + 1e38: 90 91 9d 23 lds r25, 0x239D ; 0x80239d + 1e3c: 89 2b or r24, r25 + 1e3e: 01 f5 brne .+64 ; 0x1e80 return udd_ep_clear_halt(udd_g_ctrlreq.req.wIndex & 0xFF); - 1e92: 80 91 9e 23 lds r24, 0x239E ; 0x80239e - 1e96: 27 d5 rcall .+2638 ; 0x28e6 - 1e98: 1a c0 rjmp .+52 ; 0x1ece + 1e40: 80 91 9e 23 lds r24, 0x239E ; 0x80239e + 1e44: 27 d5 rcall .+2638 ; 0x2894 + 1e46: 1a c0 rjmp .+52 ; 0x1e7c * \return true if success */ #if (0!=USB_DEVICE_MAX_EP) static bool udc_req_std_ep_set_feature(void) { if (udd_g_ctrlreq.req.wLength) { - 1e9a: 80 91 a0 23 lds r24, 0x23A0 ; 0x8023a0 - 1e9e: 90 91 a1 23 lds r25, 0x23A1 ; 0x8023a1 - 1ea2: 89 2b or r24, r25 - 1ea4: b1 f4 brne .+44 ; 0x1ed2 + 1e48: 80 91 a0 23 lds r24, 0x23A0 ; 0x8023a0 + 1e4c: 90 91 a1 23 lds r25, 0x23A1 ; 0x8023a1 + 1e50: 89 2b or r24, r25 + 1e52: b1 f4 brne .+44 ; 0x1e80 return false; } if (udd_g_ctrlreq.req.wValue == USB_EP_FEATURE_HALT) { - 1ea6: 80 91 9c 23 lds r24, 0x239C ; 0x80239c - 1eaa: 90 91 9d 23 lds r25, 0x239D ; 0x80239d - 1eae: 89 2b or r24, r25 - 1eb0: 81 f4 brne .+32 ; 0x1ed2 + 1e54: 80 91 9c 23 lds r24, 0x239C ; 0x80239c + 1e58: 90 91 9d 23 lds r25, 0x239D ; 0x80239d + 1e5c: 89 2b or r24, r25 + 1e5e: 81 f4 brne .+32 ; 0x1e80 udd_ep_abort(udd_g_ctrlreq.req.wIndex & 0xFF); - 1eb2: ca e9 ldi r28, 0x9A ; 154 - 1eb4: d3 e2 ldi r29, 0x23 ; 35 - 1eb6: 8c 81 ldd r24, Y+4 ; 0x04 - 1eb8: 05 d6 rcall .+3082 ; 0x2ac4 + 1e60: ca e9 ldi r28, 0x9A ; 154 + 1e62: d3 e2 ldi r29, 0x23 ; 35 + 1e64: 8c 81 ldd r24, Y+4 ; 0x04 + 1e66: 05 d6 rcall .+3082 ; 0x2a72 return udd_ep_set_halt(udd_g_ctrlreq.req.wIndex & 0xFF); - 1eba: 8c 81 ldd r24, Y+4 ; 0x04 - 1ebc: 68 d6 rcall .+3280 ; 0x2b8e - 1ebe: 07 c0 rjmp .+14 ; 0x1ece + 1e68: 8c 81 ldd r24, Y+4 ; 0x04 + 1e6a: 68 d6 rcall .+3280 ; 0x2b3c + 1e6c: 07 c0 rjmp .+14 ; 0x1e7c } break; default: // Unknown descriptor requested return false; - 1ec0: 80 e0 ldi r24, 0x00 ; 0 - 1ec2: 05 c0 rjmp .+10 ; 0x1ece + 1e6e: 80 e0 ldi r24, 0x00 ; 0 + 1e70: 05 c0 rjmp .+10 ; 0x1e7c break; } } #endif } return false; - 1ec4: 80 e0 ldi r24, 0x00 ; 0 - 1ec6: 03 c0 rjmp .+6 ; 0x1ece + 1e72: 80 e0 ldi r24, 0x00 ; 0 + 1e74: 03 c0 rjmp .+6 ; 0x1e7c case USB_REQ_SET_ADDRESS: return udc_req_std_dev_set_address(); case USB_REQ_CLEAR_FEATURE: return udc_req_std_dev_clear_feature(); case USB_REQ_SET_FEATURE: return udc_req_std_dev_set_feature(); - 1ec8: 80 e0 ldi r24, 0x00 ; 0 - 1eca: 01 c0 rjmp .+2 ; 0x1ece + 1e76: 80 e0 ldi r24, 0x00 ; 0 + 1e78: 01 c0 rjmp .+2 ; 0x1e7c break; } } #endif } return false; - 1ecc: 80 e0 ldi r24, 0x00 ; 0 + 1e7a: 80 e0 ldi r24, 0x00 ; 0 } } // If standard request then try to decode it in UDC if (Udd_setup_type() == USB_REQ_TYPE_STANDARD) { if (udc_reqstd()) { - 1ece: 81 11 cpse r24, r1 - 1ed0: 7e c0 rjmp .+252 ; 0x1fce + 1e7c: 81 11 cpse r24, r1 + 1e7e: 7e c0 rjmp .+252 ; 0x1f7c return true; } } // If interface request then try to decode it in UDI if (Udd_setup_recipient() == USB_REQ_RECIP_INTERFACE) { - 1ed2: 80 91 9a 23 lds r24, 0x239A ; 0x80239a - 1ed6: 8f 71 andi r24, 0x1F ; 31 - 1ed8: 81 30 cpi r24, 0x01 ; 1 - 1eda: 71 f5 brne .+92 ; 0x1f38 + 1e80: 80 91 9a 23 lds r24, 0x239A ; 0x80239a + 1e84: 8f 71 andi r24, 0x1F ; 31 + 1e86: 81 30 cpi r24, 0x01 ; 1 + 1e88: 71 f5 brne .+92 ; 0x1ee6 static bool udc_req_iface(void) { uint8_t iface_num; udi_api_t UDC_DESC_STORAGE *udi_api; if (0 == udc_num_configuration) { - 1edc: 80 91 a2 20 lds r24, 0x20A2 ; 0x8020a2 - 1ee0: 88 23 and r24, r24 - 1ee2: 51 f1 breq .+84 ; 0x1f38 + 1e8a: 80 91 a2 20 lds r24, 0x20A2 ; 0x8020a2 + 1e8e: 88 23 and r24, r24 + 1e90: 51 f1 breq .+84 ; 0x1ee6 return false; // The device is not is configured state yet } // Check interface number iface_num = udd_g_ctrlreq.req.wIndex & 0xFF; - 1ee4: 00 91 9e 23 lds r16, 0x239E ; 0x80239e - 1ee8: 10 91 9f 23 lds r17, 0x239F ; 0x80239f + 1e92: 00 91 9e 23 lds r16, 0x239E ; 0x80239e + 1e96: 10 91 9f 23 lds r17, 0x239F ; 0x80239f if (iface_num >= udc_ptr_conf->desc->bNumInterfaces) { - 1eec: c0 91 9f 20 lds r28, 0x209F ; 0x80209f - 1ef0: d0 91 a0 20 lds r29, 0x20A0 ; 0x8020a0 - 1ef4: e8 81 ld r30, Y - 1ef6: f9 81 ldd r31, Y+1 ; 0x01 - 1ef8: 84 81 ldd r24, Z+4 ; 0x04 - 1efa: 08 17 cp r16, r24 - 1efc: e8 f4 brcc .+58 ; 0x1f38 + 1e9a: c0 91 9f 20 lds r28, 0x209F ; 0x80209f + 1e9e: d0 91 a0 20 lds r29, 0x20A0 ; 0x8020a0 + 1ea2: e8 81 ld r30, Y + 1ea4: f9 81 ldd r31, Y+1 ; 0x01 + 1ea6: 84 81 ldd r24, Z+4 ; 0x04 + 1ea8: 08 17 cp r16, r24 + 1eaa: e8 f4 brcc .+58 ; 0x1ee6 } //* To update udc_ptr_iface with the selected interface in request // Select first alternate setting of interface to update udc_ptr_iface // before calling udi_api->getsetting() if (!udc_update_iface_desc(iface_num, 0)) { - 1efe: 60 e0 ldi r22, 0x00 ; 0 - 1f00: 80 2f mov r24, r16 - 1f02: d4 db rcall .-2136 ; 0x16ac - 1f04: 88 23 and r24, r24 - 1f06: c1 f0 breq .+48 ; 0x1f38 + 1eac: 60 e0 ldi r22, 0x00 ; 0 + 1eae: 80 2f mov r24, r16 + 1eb0: d4 db rcall .-2136 ; 0x165a + 1eb2: 88 23 and r24, r24 + 1eb4: c1 f0 breq .+48 ; 0x1ee6 return false; } // Select the interface with the current alternate setting udi_api = udc_ptr_conf->udi_apis[iface_num]; - 1f08: f8 01 movw r30, r16 - 1f0a: ff 27 eor r31, r31 - 1f0c: cf 01 movw r24, r30 - 1f0e: 88 0f add r24, r24 - 1f10: 99 1f adc r25, r25 - 1f12: ea 81 ldd r30, Y+2 ; 0x02 - 1f14: fb 81 ldd r31, Y+3 ; 0x03 - 1f16: e8 0f add r30, r24 - 1f18: f9 1f adc r31, r25 - 1f1a: c0 81 ld r28, Z - 1f1c: d1 81 ldd r29, Z+1 ; 0x01 + 1eb6: f8 01 movw r30, r16 + 1eb8: ff 27 eor r31, r31 + 1eba: cf 01 movw r24, r30 + 1ebc: 88 0f add r24, r24 + 1ebe: 99 1f adc r25, r25 + 1ec0: ea 81 ldd r30, Y+2 ; 0x02 + 1ec2: fb 81 ldd r31, Y+3 ; 0x03 + 1ec4: e8 0f add r30, r24 + 1ec6: f9 1f adc r31, r25 + 1ec8: c0 81 ld r28, Z + 1eca: d1 81 ldd r29, Z+1 ; 0x01 if (!udc_update_iface_desc(iface_num, udi_api->getsetting())) { - 1f1e: ee 81 ldd r30, Y+6 ; 0x06 - 1f20: ff 81 ldd r31, Y+7 ; 0x07 - 1f22: 09 95 icall - 1f24: 68 2f mov r22, r24 - 1f26: 80 2f mov r24, r16 - 1f28: c1 db rcall .-2174 ; 0x16ac - 1f2a: 88 23 and r24, r24 - 1f2c: 29 f0 breq .+10 ; 0x1f38 + 1ecc: ee 81 ldd r30, Y+6 ; 0x06 + 1ece: ff 81 ldd r31, Y+7 ; 0x07 + 1ed0: 09 95 icall + 1ed2: 68 2f mov r22, r24 + 1ed4: 80 2f mov r24, r16 + 1ed6: c1 db rcall .-2174 ; 0x165a + 1ed8: 88 23 and r24, r24 + 1eda: 29 f0 breq .+10 ; 0x1ee6 return false; } // Send the SETUP request to the UDI corresponding to the interface number return udi_api->setup(); - 1f2e: ec 81 ldd r30, Y+4 ; 0x04 - 1f30: fd 81 ldd r31, Y+5 ; 0x05 - 1f32: 09 95 icall + 1edc: ec 81 ldd r30, Y+4 ; 0x04 + 1ede: fd 81 ldd r31, Y+5 ; 0x05 + 1ee0: 09 95 icall } } // If interface request then try to decode it in UDI if (Udd_setup_recipient() == USB_REQ_RECIP_INTERFACE) { if (udc_req_iface()) { - 1f34: 81 11 cpse r24, r1 - 1f36: 4b c0 rjmp .+150 ; 0x1fce + 1ee2: 81 11 cpse r24, r1 + 1ee4: 4b c0 rjmp .+150 ; 0x1f7c return true; } } // If endpoint request then try to decode it in UDI if (Udd_setup_recipient() == USB_REQ_RECIP_ENDPOINT) { - 1f38: 80 91 9a 23 lds r24, 0x239A ; 0x80239a - 1f3c: 8f 71 andi r24, 0x1F ; 31 - 1f3e: 82 30 cpi r24, 0x02 ; 2 - 1f40: 09 f0 breq .+2 ; 0x1f44 - 1f42: 40 c0 rjmp .+128 ; 0x1fc4 + 1ee6: 80 91 9a 23 lds r24, 0x239A ; 0x80239a + 1eea: 8f 71 andi r24, 0x1F ; 31 + 1eec: 82 30 cpi r24, 0x02 ; 2 + 1eee: 09 f0 breq .+2 ; 0x1ef2 + 1ef0: 40 c0 rjmp .+128 ; 0x1f72 static bool udc_req_ep(void) { uint8_t iface_num; udi_api_t UDC_DESC_STORAGE *udi_api; if (0 == udc_num_configuration) { - 1f44: 80 91 a2 20 lds r24, 0x20A2 ; 0x8020a2 - 1f48: 88 23 and r24, r24 - 1f4a: b1 f1 breq .+108 ; 0x1fb8 + 1ef2: 80 91 a2 20 lds r24, 0x20A2 ; 0x8020a2 + 1ef6: 88 23 and r24, r24 + 1ef8: b1 f1 breq .+108 ; 0x1f66 return false; // The device is not is configured state yet } // Send this request on all enabled interfaces iface_num = udd_g_ctrlreq.req.wIndex & 0xFF; for (iface_num = 0; iface_num < udc_ptr_conf->desc->bNumInterfaces; - 1f4c: a0 91 9f 20 lds r26, 0x209F ; 0x80209f - 1f50: b0 91 a0 20 lds r27, 0x20A0 ; 0x8020a0 - 1f54: ed 91 ld r30, X+ - 1f56: fc 91 ld r31, X - 1f58: 11 97 sbiw r26, 0x01 ; 1 - 1f5a: 84 81 ldd r24, Z+4 ; 0x04 - 1f5c: 88 23 and r24, r24 - 1f5e: 71 f1 breq .+92 ; 0x1fbc - 1f60: c0 e0 ldi r28, 0x00 ; 0 + 1efa: a0 91 9f 20 lds r26, 0x209F ; 0x80209f + 1efe: b0 91 a0 20 lds r27, 0x20A0 ; 0x8020a0 + 1f02: ed 91 ld r30, X+ + 1f04: fc 91 ld r31, X + 1f06: 11 97 sbiw r26, 0x01 ; 1 + 1f08: 84 81 ldd r24, Z+4 ; 0x04 + 1f0a: 88 23 and r24, r24 + 1f0c: 71 f1 breq .+92 ; 0x1f6a + 1f0e: c0 e0 ldi r28, 0x00 ; 0 iface_num++) { // Select the interface with the current alternate setting udi_api = udc_ptr_conf->udi_apis[iface_num]; - 1f62: ec 2f mov r30, r28 - 1f64: f0 e0 ldi r31, 0x00 ; 0 - 1f66: ee 0f add r30, r30 - 1f68: ff 1f adc r31, r31 - 1f6a: 12 96 adiw r26, 0x02 ; 2 - 1f6c: 8d 91 ld r24, X+ - 1f6e: 9c 91 ld r25, X - 1f70: 13 97 sbiw r26, 0x03 ; 3 - 1f72: e8 0f add r30, r24 - 1f74: f9 1f adc r31, r25 - 1f76: 00 81 ld r16, Z - 1f78: 11 81 ldd r17, Z+1 ; 0x01 + 1f10: ec 2f mov r30, r28 + 1f12: f0 e0 ldi r31, 0x00 ; 0 + 1f14: ee 0f add r30, r30 + 1f16: ff 1f adc r31, r31 + 1f18: 12 96 adiw r26, 0x02 ; 2 + 1f1a: 8d 91 ld r24, X+ + 1f1c: 9c 91 ld r25, X + 1f1e: 13 97 sbiw r26, 0x03 ; 3 + 1f20: e8 0f add r30, r24 + 1f22: f9 1f adc r31, r25 + 1f24: 00 81 ld r16, Z + 1f26: 11 81 ldd r17, Z+1 ; 0x01 if (!udc_update_iface_desc(iface_num, udi_api->getsetting())) { - 1f7a: d8 01 movw r26, r16 - 1f7c: 16 96 adiw r26, 0x06 ; 6 - 1f7e: ed 91 ld r30, X+ - 1f80: fc 91 ld r31, X - 1f82: 17 97 sbiw r26, 0x07 ; 7 - 1f84: 09 95 icall - 1f86: 68 2f mov r22, r24 - 1f88: 8c 2f mov r24, r28 - 1f8a: 90 db rcall .-2272 ; 0x16ac - 1f8c: 88 23 and r24, r24 - 1f8e: f9 f0 breq .+62 ; 0x1fce + 1f28: d8 01 movw r26, r16 + 1f2a: 16 96 adiw r26, 0x06 ; 6 + 1f2c: ed 91 ld r30, X+ + 1f2e: fc 91 ld r31, X + 1f30: 17 97 sbiw r26, 0x07 ; 7 + 1f32: 09 95 icall + 1f34: 68 2f mov r22, r24 + 1f36: 8c 2f mov r24, r28 + 1f38: 90 db rcall .-2272 ; 0x165a + 1f3a: 88 23 and r24, r24 + 1f3c: f9 f0 breq .+62 ; 0x1f7c return false; } // Send the SETUP request to the UDI if (udi_api->setup()) { - 1f90: d8 01 movw r26, r16 - 1f92: 14 96 adiw r26, 0x04 ; 4 - 1f94: ed 91 ld r30, X+ - 1f96: fc 91 ld r31, X - 1f98: 15 97 sbiw r26, 0x05 ; 5 - 1f9a: 09 95 icall - 1f9c: 81 11 cpse r24, r1 - 1f9e: 17 c0 rjmp .+46 ; 0x1fce + 1f3e: d8 01 movw r26, r16 + 1f40: 14 96 adiw r26, 0x04 ; 4 + 1f42: ed 91 ld r30, X+ + 1f44: fc 91 ld r31, X + 1f46: 15 97 sbiw r26, 0x05 ; 5 + 1f48: 09 95 icall + 1f4a: 81 11 cpse r24, r1 + 1f4c: 17 c0 rjmp .+46 ; 0x1f7c return false; // The device is not is configured state yet } // Send this request on all enabled interfaces iface_num = udd_g_ctrlreq.req.wIndex & 0xFF; for (iface_num = 0; iface_num < udc_ptr_conf->desc->bNumInterfaces; iface_num++) { - 1fa0: cf 5f subi r28, 0xFF ; 255 + 1f4e: cf 5f subi r28, 0xFF ; 255 if (0 == udc_num_configuration) { return false; // The device is not is configured state yet } // Send this request on all enabled interfaces iface_num = udd_g_ctrlreq.req.wIndex & 0xFF; for (iface_num = 0; iface_num < udc_ptr_conf->desc->bNumInterfaces; - 1fa2: a0 91 9f 20 lds r26, 0x209F ; 0x80209f - 1fa6: b0 91 a0 20 lds r27, 0x20A0 ; 0x8020a0 - 1faa: ed 91 ld r30, X+ - 1fac: fc 91 ld r31, X - 1fae: 11 97 sbiw r26, 0x01 ; 1 - 1fb0: 94 81 ldd r25, Z+4 ; 0x04 - 1fb2: c9 17 cp r28, r25 - 1fb4: b0 f2 brcs .-84 ; 0x1f62 - 1fb6: 0b c0 rjmp .+22 ; 0x1fce + 1f50: a0 91 9f 20 lds r26, 0x209F ; 0x80209f + 1f54: b0 91 a0 20 lds r27, 0x20A0 ; 0x8020a0 + 1f58: ed 91 ld r30, X+ + 1f5a: fc 91 ld r31, X + 1f5c: 11 97 sbiw r26, 0x01 ; 1 + 1f5e: 94 81 ldd r25, Z+4 ; 0x04 + 1f60: c9 17 cp r28, r25 + 1f62: b0 f2 brcs .-84 ; 0x1f10 + 1f64: 0b c0 rjmp .+22 ; 0x1f7c { uint8_t iface_num; udi_api_t UDC_DESC_STORAGE *udi_api; if (0 == udc_num_configuration) { return false; // The device is not is configured state yet - 1fb8: 80 e0 ldi r24, 0x00 ; 0 - 1fba: 09 c0 rjmp .+18 ; 0x1fce + 1f66: 80 e0 ldi r24, 0x00 ; 0 + 1f68: 09 c0 rjmp .+18 ; 0x1f7c // Send the SETUP request to the UDI if (udi_api->setup()) { return true; } } return false; - 1fbc: 80 e0 ldi r24, 0x00 ; 0 - 1fbe: 07 c0 rjmp .+14 ; 0x1fce + 1f6a: 80 e0 ldi r24, 0x00 ; 0 + 1f6c: 07 c0 rjmp .+14 ; 0x1f7c udd_g_ctrlreq.callback = NULL; udd_g_ctrlreq.over_under_run = NULL; if (Udd_setup_is_in()) { if (udd_g_ctrlreq.req.wLength == 0) { return false; // Error from USB host - 1fc0: 80 e0 ldi r24, 0x00 ; 0 - 1fc2: 05 c0 rjmp .+10 ; 0x1fce + 1f6e: 80 e0 ldi r24, 0x00 ; 0 + 1f70: 05 c0 rjmp .+10 ; 0x1f7c // Here SETUP request unknown by UDC and UDIs #ifdef USB_DEVICE_SPECIFIC_REQUEST // Try to decode it in specific callback return USB_DEVICE_SPECIFIC_REQUEST(); // Ex: Vendor request,... #else return false; - 1fc4: 80 e0 ldi r24, 0x00 ; 0 - 1fc6: 03 c0 rjmp .+6 ; 0x1fce + 1f72: 80 e0 ldi r24, 0x00 ; 0 + 1f74: 03 c0 rjmp .+6 ; 0x1f7c } } if (Udd_setup_type() == USB_REQ_TYPE_VENDOR){ if (udc_reqvend()) { return true; - 1fc8: 81 e0 ldi r24, 0x01 ; 1 - 1fca: 01 c0 rjmp .+2 ; 0x1fce + 1f76: 81 e0 ldi r24, 0x01 ; 1 + 1f78: 01 c0 rjmp .+2 ; 0x1f7c } // If standard request then try to decode it in UDC if (Udd_setup_type() == USB_REQ_TYPE_STANDARD) { if (udc_reqstd()) { return true; - 1fcc: 81 e0 ldi r24, 0x01 ; 1 + 1f7a: 81 e0 ldi r24, 0x01 ; 1 // Try to decode it in specific callback return USB_DEVICE_SPECIFIC_REQUEST(); // Ex: Vendor request,... #else return false; #endif } - 1fce: df 91 pop r29 - 1fd0: cf 91 pop r28 - 1fd2: 1f 91 pop r17 - 1fd4: 0f 91 pop r16 - 1fd6: 08 95 ret + 1f7c: df 91 pop r29 + 1f7e: cf 91 pop r28 + 1f80: 1f 91 pop r17 + 1f82: 0f 91 pop r16 + 1f84: 08 95 ret -00001fd8 : +00001f86 : PUBLIC_FUNCTION(ccp_write_io) #if defined(__GNUC__) out RAMPZ, r1 // Reset bits 23:16 of Z - 1fd8: 1b be out 0x3b, r1 ; 59 + 1f86: 1b be out 0x3b, r1 ; 59 movw r30, r24 // Load addr into Z - 1fda: fc 01 movw r30, r24 + 1f88: fc 01 movw r30, r24 ldi r18, CCP_IOREG // Load magic CCP value - 1fdc: 28 ed ldi r18, 0xD8 ; 216 + 1f8a: 28 ed ldi r18, 0xD8 ; 216 out CCP, r18 // Start CCP handshake - 1fde: 24 bf out 0x34, r18 ; 52 + 1f8c: 24 bf out 0x34, r18 ; 52 st Z, r22 // Write value to I/O register - 1fe0: 60 83 st Z, r22 + 1f8e: 60 83 st Z, r22 ret // Return to caller - 1fe2: 08 95 ret + 1f90: 08 95 ret -00001fe4 : +00001f92 : * the protection signature and execute command. */ NVM.CMD = NVM_CMD_ERASE_WRITE_EEPROM_PAGE_gc; nvm_exec(); NVM.CMD = old_cmd; } - 1fe4: cf 93 push r28 - 1fe6: df 93 push r29 - 1fe8: 9c 01 movw r18, r24 - 1fea: db 01 movw r26, r22 - 1fec: e0 ec ldi r30, 0xC0 ; 192 - 1fee: f1 e0 ldi r31, 0x01 ; 1 - 1ff0: 97 85 ldd r25, Z+15 ; 0x0f - 1ff2: 99 23 and r25, r25 - 1ff4: ec f3 brlt .-6 ; 0x1ff0 - 1ff6: cc ec ldi r28, 0xCC ; 204 - 1ff8: d1 e0 ldi r29, 0x01 ; 1 - 1ffa: 98 81 ld r25, Y - 1ffc: 98 60 ori r25, 0x08 ; 8 - 1ffe: 98 83 st Y, r25 - 2000: b9 01 movw r22, r18 - 2002: 70 5f subi r23, 0xF0 ; 240 - 2004: cd 01 movw r24, r26 - 2006: b9 d7 rcall .+3954 ; 0x2f7a - 2008: 88 81 ld r24, Y - 200a: 87 7f andi r24, 0xF7 ; 247 - 200c: 88 83 st Y, r24 - 200e: df 91 pop r29 - 2010: cf 91 pop r28 - 2012: 08 95 ret + 1f92: cf 93 push r28 + 1f94: df 93 push r29 + 1f96: 9c 01 movw r18, r24 + 1f98: db 01 movw r26, r22 + 1f9a: e0 ec ldi r30, 0xC0 ; 192 + 1f9c: f1 e0 ldi r31, 0x01 ; 1 + 1f9e: 97 85 ldd r25, Z+15 ; 0x0f + 1fa0: 99 23 and r25, r25 + 1fa2: ec f3 brlt .-6 ; 0x1f9e + 1fa4: cc ec ldi r28, 0xCC ; 204 + 1fa6: d1 e0 ldi r29, 0x01 ; 1 + 1fa8: 98 81 ld r25, Y + 1faa: 98 60 ori r25, 0x08 ; 8 + 1fac: 98 83 st Y, r25 + 1fae: b9 01 movw r22, r18 + 1fb0: 70 5f subi r23, 0xF0 ; 240 + 1fb2: cd 01 movw r24, r26 + 1fb4: b9 d7 rcall .+3954 ; 0x2f28 + 1fb6: 88 81 ld r24, Y + 1fb8: 87 7f andi r24, 0xF7 ; 247 + 1fba: 88 83 st Y, r24 + 1fbc: df 91 pop r29 + 1fbe: cf 91 pop r28 + 1fc0: 08 95 ret -00002014 : - 2014: e0 ec ldi r30, 0xC0 ; 192 - 2016: f1 e0 ldi r31, 0x01 ; 1 - 2018: 97 85 ldd r25, Z+15 ; 0x0f - 201a: 99 23 and r25, r25 - 201c: ec f3 brlt .-6 ; 0x2018 - 201e: ac ec ldi r26, 0xCC ; 204 - 2020: b1 e0 ldi r27, 0x01 ; 1 - 2022: 9c 91 ld r25, X - 2024: 98 60 ori r25, 0x08 ; 8 - 2026: 9c 93 st X, r25 - 2028: e8 2f mov r30, r24 - 202a: f0 e0 ldi r31, 0x00 ; 0 - 202c: f0 5f subi r31, 0xF0 ; 240 - 202e: 60 83 st Z, r22 - 2030: 8c 91 ld r24, X - 2032: 87 7f andi r24, 0xF7 ; 247 - 2034: 8c 93 st X, r24 - 2036: 08 95 ret +00001fc2 : + 1fc2: e0 ec ldi r30, 0xC0 ; 192 + 1fc4: f1 e0 ldi r31, 0x01 ; 1 + 1fc6: 97 85 ldd r25, Z+15 ; 0x0f + 1fc8: 99 23 and r25, r25 + 1fca: ec f3 brlt .-6 ; 0x1fc6 + 1fcc: ac ec ldi r26, 0xCC ; 204 + 1fce: b1 e0 ldi r27, 0x01 ; 1 + 1fd0: 9c 91 ld r25, X + 1fd2: 98 60 ori r25, 0x08 ; 8 + 1fd4: 9c 93 st X, r25 + 1fd6: e8 2f mov r30, r24 + 1fd8: f0 e0 ldi r31, 0x00 ; 0 + 1fda: f0 5f subi r31, 0xF0 ; 240 + 1fdc: 60 83 st Z, r22 + 1fde: 8c 91 ld r24, X + 1fe0: 87 7f andi r24, 0xF7 ; 247 + 1fe2: 8c 93 st X, r24 + 1fe4: 08 95 ret -00002038 : +00001fe6 : * EEPROM write page operation. * * \param values Pointer to SRAM buffer containing an entire page. */ void nvm_eeprom_load_page_to_buffer(const uint8_t *values) { - 2038: ef 92 push r14 - 203a: ff 92 push r15 - 203c: 0f 93 push r16 - 203e: 1f 93 push r17 - 2040: cf 93 push r28 - 2042: df 93 push r29 - 2044: 8c 01 movw r16, r24 + 1fe6: ef 92 push r14 + 1fe8: ff 92 push r15 + 1fea: 0f 93 push r16 + 1fec: 1f 93 push r17 + 1fee: cf 93 push r28 + 1ff0: df 93 push r29 + 1ff2: 8c 01 movw r16, r24 */ static inline void nvm_wait_until_ready( void ) { do { // Block execution while waiting for the NVM to be ready } while ((NVM.STATUS & NVM_NVMBUSY_bm) == NVM_NVMBUSY_bm); - 2046: e0 ec ldi r30, 0xC0 ; 192 - 2048: f1 e0 ldi r31, 0x01 ; 1 - 204a: 87 85 ldd r24, Z+15 ; 0x0f - 204c: 88 23 and r24, r24 - 204e: ec f3 brlt .-6 ; 0x204a - 2050: 78 01 movw r14, r16 - 2052: 80 e2 ldi r24, 0x20 ; 32 - 2054: e8 0e add r14, r24 - 2056: f1 1c adc r15, r1 - 2058: e8 01 movw r28, r16 - 205a: 8c 2f mov r24, r28 - 205c: 80 1b sub r24, r16 + 1ff4: e0 ec ldi r30, 0xC0 ; 192 + 1ff6: f1 e0 ldi r31, 0x01 ; 1 + 1ff8: 87 85 ldd r24, Z+15 ; 0x0f + 1ffa: 88 23 and r24, r24 + 1ffc: ec f3 brlt .-6 ; 0x1ff8 + 1ffe: 78 01 movw r14, r16 + 2000: 80 e2 ldi r24, 0x20 ; 32 + 2002: e8 0e add r14, r24 + 2004: f1 1c adc r15, r1 + 2006: e8 01 movw r28, r16 + 2008: 8c 2f mov r24, r28 + 200a: 80 1b sub r24, r16 nvm_wait_until_ready(); // Load multiple bytes into page buffer uint8_t i; for (i = 0; i < EEPROM_PAGE_SIZE; ++i) { nvm_eeprom_load_byte_to_buffer(i, *values); - 205e: 69 91 ld r22, Y+ - 2060: d9 df rcall .-78 ; 0x2014 + 200c: 69 91 ld r22, Y+ + 200e: d9 df rcall .-78 ; 0x1fc2 // Wait until NVM is ready nvm_wait_until_ready(); // Load multiple bytes into page buffer uint8_t i; for (i = 0; i < EEPROM_PAGE_SIZE; ++i) { - 2062: ce 15 cp r28, r14 - 2064: df 05 cpc r29, r15 - 2066: c9 f7 brne .-14 ; 0x205a + 2010: ce 15 cp r28, r14 + 2012: df 05 cpc r29, r15 + 2014: c9 f7 brne .-14 ; 0x2008 nvm_eeprom_load_byte_to_buffer(i, *values); ++values; } } - 2068: df 91 pop r29 - 206a: cf 91 pop r28 - 206c: 1f 91 pop r17 - 206e: 0f 91 pop r16 - 2070: ff 90 pop r15 - 2072: ef 90 pop r14 - 2074: 08 95 ret + 2016: df 91 pop r29 + 2018: cf 91 pop r28 + 201a: 1f 91 pop r17 + 201c: 0f 91 pop r16 + 201e: ff 90 pop r15 + 2020: ef 90 pop r14 + 2022: 08 95 ret -00002076 : +00002024 : * locations that have not been loaded will be left untouched in EEPROM. * * \param page_addr EEPROM Page address, between 0 and EEPROM_SIZE/EEPROM_PAGE_SIZE */ void nvm_eeprom_atomic_write_page(uint8_t page_addr) { - 2076: 1f 93 push r17 - 2078: cf 93 push r28 - 207a: df 93 push r29 - 207c: e0 ec ldi r30, 0xC0 ; 192 - 207e: f1 e0 ldi r31, 0x01 ; 1 - 2080: 97 85 ldd r25, Z+15 ; 0x0f - 2082: 99 23 and r25, r25 - 2084: ec f3 brlt .-6 ; 0x2080 + 2024: 1f 93 push r17 + 2026: cf 93 push r28 + 2028: df 93 push r29 + 202a: e0 ec ldi r30, 0xC0 ; 192 + 202c: f1 e0 ldi r31, 0x01 ; 1 + 202e: 97 85 ldd r25, Z+15 ; 0x0f + 2030: 99 23 and r25, r25 + 2032: ec f3 brlt .-6 ; 0x202e // Wait until NVM is ready nvm_wait_until_ready(); // Calculate page address uint16_t address = (uint16_t)(page_addr * EEPROM_PAGE_SIZE); - 2086: 20 e2 ldi r18, 0x20 ; 32 - 2088: 82 9f mul r24, r18 - 208a: c0 01 movw r24, r0 - 208c: 11 24 eor r1, r1 + 2034: 20 e2 ldi r18, 0x20 ; 32 + 2036: 82 9f mul r24, r18 + 2038: c0 01 movw r24, r0 + 203a: 11 24 eor r1, r1 Assert(address <= EEPROM_SIZE); // Set address NVM.ADDR2 = 0x00; - 208e: c0 ec ldi r28, 0xC0 ; 192 - 2090: d1 e0 ldi r29, 0x01 ; 1 - 2092: 1a 82 std Y+2, r1 ; 0x02 + 203c: c0 ec ldi r28, 0xC0 ; 192 + 203e: d1 e0 ldi r29, 0x01 ; 1 + 2040: 1a 82 std Y+2, r1 ; 0x02 NVM.ADDR1 = (address >> 8) & 0xFF; - 2094: 99 83 std Y+1, r25 ; 0x01 + 2042: 99 83 std Y+1, r25 ; 0x01 NVM.ADDR0 = address & 0xFF; - 2096: 88 83 st Y, r24 + 2044: 88 83 st Y, r24 */ static inline void nvm_issue_command(NVM_CMD_t nvm_command) { uint8_t old_cmd; old_cmd = NVM.CMD; - 2098: 1a 85 ldd r17, Y+10 ; 0x0a + 2046: 1a 85 ldd r17, Y+10 ; 0x0a NVM.CMD = nvm_command; - 209a: 85 e3 ldi r24, 0x35 ; 53 - 209c: 8a 87 std Y+10, r24 ; 0x0a + 2048: 85 e3 ldi r24, 0x35 ; 53 + 204a: 8a 87 std Y+10, r24 ; 0x0a ccp_write_io((uint8_t *)&NVM.CTRLA, NVM_CMDEX_bm); - 209e: 61 e0 ldi r22, 0x01 ; 1 - 20a0: 8b ec ldi r24, 0xCB ; 203 - 20a2: 91 e0 ldi r25, 0x01 ; 1 - 20a4: 99 df rcall .-206 ; 0x1fd8 + 204c: 61 e0 ldi r22, 0x01 ; 1 + 204e: 8b ec ldi r24, 0xCB ; 203 + 2050: 91 e0 ldi r25, 0x01 ; 1 + 2052: 99 df rcall .-206 ; 0x1f86 NVM.CMD = old_cmd; - 20a6: 1a 87 std Y+10, r17 ; 0x0a + 2054: 1a 87 std Y+10, r17 ; 0x0a // Issue EEPROM Atomic Write (Erase&Write) command nvm_issue_command(NVM_CMD_ERASE_WRITE_EEPROM_PAGE_gc); } - 20a8: df 91 pop r29 - 20aa: cf 91 pop r28 - 20ac: 1f 91 pop r17 - 20ae: 08 95 ret + 2056: df 91 pop r29 + 2058: cf 91 pop r28 + 205a: 1f 91 pop r17 + 205c: 08 95 ret -000020b0 : +0000205e : #endif #ifndef __DOXYGEN__ PUBLIC_FUNCTION(nvm_read_byte) #if defined(__GNUC__) lds r20, NVM_CMD ; Store NVM command register - 20b0: 40 91 ca 01 lds r20, 0x01CA ; 0x8001ca <__TEXT_REGION_LENGTH__+0x7001ca> + 205e: 40 91 ca 01 lds r20, 0x01CA ; 0x8001ca <__TEXT_REGION_LENGTH__+0x7001ca> mov ZL, r22 ; Load byte index into low byte of Z. - 20b4: e6 2f mov r30, r22 + 2062: e6 2f mov r30, r22 mov ZH, r23 ; Load high byte into Z. - 20b6: f7 2f mov r31, r23 + 2064: f7 2f mov r31, r23 sts NVM_CMD, r24 ; Load prepared command into NVM Command register. - 20b8: 80 93 ca 01 sts 0x01CA, r24 ; 0x8001ca <__TEXT_REGION_LENGTH__+0x7001ca> + 2066: 80 93 ca 01 sts 0x01CA, r24 ; 0x8001ca <__TEXT_REGION_LENGTH__+0x7001ca> lpm r24, Z ; Perform an LPM to read out byte - 20bc: 84 91 lpm r24, Z + 206a: 84 91 lpm r24, Z sts NVM_CMD, r20 ; Restore NVM command register - 20be: 40 93 ca 01 sts 0x01CA, r20 ; 0x8001ca <__TEXT_REGION_LENGTH__+0x7001ca> + 206c: 40 93 ca 01 sts 0x01CA, r20 ; 0x8001ca <__TEXT_REGION_LENGTH__+0x7001ca> sts NVM_CMD, r16 ; Load prepared command into NVM Command register. lpm r16, Z ; Perform an LPM to read out byte sts NVM_CMD, r20 ; Restore NVM command register #endif ret - 20c2: 08 95 ret + 2070: 08 95 ret -000020c4 : +00002072 : } else { // endpoint not halted then call directly callback callback(); } return true; } - 20c4: 81 11 cpse r24, r1 - 20c6: 22 c0 rjmp .+68 ; 0x210c - 20c8: 90 91 6c 21 lds r25, 0x216C ; 0x80216c - 20cc: 99 23 and r25, r25 - 20ce: d9 f0 breq .+54 ; 0x2106 - 20d0: 90 91 cb 2b lds r25, 0x2BCB ; 0x802bcb - 20d4: 91 11 cpse r25, r1 - 20d6: 01 c0 rjmp .+2 ; 0x20da - 20d8: ff cf rjmp .-2 ; 0x20d8 - 20da: 2f b7 in r18, 0x3f ; 63 - 20dc: f8 94 cli - 20de: ea ec ldi r30, 0xCA ; 202 - 20e0: fb e2 ldi r31, 0x2B ; 43 - 20e2: 91 81 ldd r25, Z+1 ; 0x01 - 20e4: 91 50 subi r25, 0x01 ; 1 - 20e6: 91 83 std Z+1, r25 ; 0x01 - 20e8: 2f bf out 0x3f, r18 ; 63 - 20ea: 0d c0 rjmp .+26 ; 0x2106 - 20ec: 90 91 cb 2b lds r25, 0x2BCB ; 0x802bcb - 20f0: 9f 3f cpi r25, 0xFF ; 255 - 20f2: 09 f4 brne .+2 ; 0x20f6 - 20f4: ff cf rjmp .-2 ; 0x20f4 - 20f6: 2f b7 in r18, 0x3f ; 63 - 20f8: f8 94 cli - 20fa: ea ec ldi r30, 0xCA ; 202 - 20fc: fb e2 ldi r31, 0x2B ; 43 - 20fe: 91 81 ldd r25, Z+1 ; 0x01 - 2100: 9f 5f subi r25, 0xFF ; 255 - 2102: 91 83 std Z+1, r25 ; 0x01 - 2104: 2f bf out 0x3f, r18 ; 63 - 2106: 80 93 6c 21 sts 0x216C, r24 ; 0x80216c - 210a: 08 95 ret - 210c: 90 91 6c 21 lds r25, 0x216C ; 0x80216c - 2110: 99 23 and r25, r25 - 2112: 61 f3 breq .-40 ; 0x20ec - 2114: f8 cf rjmp .-16 ; 0x2106 + 2072: 81 11 cpse r24, r1 + 2074: 22 c0 rjmp .+68 ; 0x20ba + 2076: 90 91 6c 21 lds r25, 0x216C ; 0x80216c + 207a: 99 23 and r25, r25 + 207c: d9 f0 breq .+54 ; 0x20b4 + 207e: 90 91 cb 2b lds r25, 0x2BCB ; 0x802bcb + 2082: 91 11 cpse r25, r1 + 2084: 01 c0 rjmp .+2 ; 0x2088 + 2086: ff cf rjmp .-2 ; 0x2086 + 2088: 2f b7 in r18, 0x3f ; 63 + 208a: f8 94 cli + 208c: ea ec ldi r30, 0xCA ; 202 + 208e: fb e2 ldi r31, 0x2B ; 43 + 2090: 91 81 ldd r25, Z+1 ; 0x01 + 2092: 91 50 subi r25, 0x01 ; 1 + 2094: 91 83 std Z+1, r25 ; 0x01 + 2096: 2f bf out 0x3f, r18 ; 63 + 2098: 0d c0 rjmp .+26 ; 0x20b4 + 209a: 90 91 cb 2b lds r25, 0x2BCB ; 0x802bcb + 209e: 9f 3f cpi r25, 0xFF ; 255 + 20a0: 09 f4 brne .+2 ; 0x20a4 + 20a2: ff cf rjmp .-2 ; 0x20a2 + 20a4: 2f b7 in r18, 0x3f ; 63 + 20a6: f8 94 cli + 20a8: ea ec ldi r30, 0xCA ; 202 + 20aa: fb e2 ldi r31, 0x2B ; 43 + 20ac: 91 81 ldd r25, Z+1 ; 0x01 + 20ae: 9f 5f subi r25, 0xFF ; 255 + 20b0: 91 83 std Z+1, r25 ; 0x01 + 20b2: 2f bf out 0x3f, r18 ; 63 + 20b4: 80 93 6c 21 sts 0x216C, r24 ; 0x80216c + 20b8: 08 95 ret + 20ba: 90 91 6c 21 lds r25, 0x216C ; 0x80216c + 20be: 99 23 and r25, r25 + 20c0: 61 f3 breq .-40 ; 0x209a + 20c2: f8 cf rjmp .-16 ; 0x20b4 -00002116 : - 2116: 0f 93 push r16 - 2118: e8 ec ldi r30, 0xC8 ; 200 - 211a: f4 e0 ldi r31, 0x04 ; 4 - 211c: 80 81 ld r24, Z - 211e: 8f 7d andi r24, 0xDF ; 223 - 2120: 80 83 st Z, r24 - 2122: 80 81 ld r24, Z - 2124: 8f 7d andi r24, 0xDF ; 223 - 2126: 80 83 st Z, r24 - 2128: e0 e5 ldi r30, 0x50 ; 80 - 212a: f1 e2 ldi r31, 0x21 ; 33 - 212c: 02 e0 ldi r16, 0x02 ; 2 - 212e: 05 93 las Z, r16 - 2130: 10 92 52 21 sts 0x2152, r1 ; 0x802152 - 2134: 10 92 53 21 sts 0x2153, r1 ; 0x802153 - 2138: 00 e2 ldi r16, 0x20 ; 32 - 213a: 06 93 lac Z, r16 - 213c: 00 e4 ldi r16, 0x40 ; 64 - 213e: 06 93 lac Z, r16 - 2140: e8 e4 ldi r30, 0x48 ; 72 - 2142: f1 e2 ldi r31, 0x21 ; 33 - 2144: 00 e2 ldi r16, 0x20 ; 32 - 2146: 06 93 lac Z, r16 - 2148: 00 e4 ldi r16, 0x40 ; 64 - 214a: 06 93 lac Z, r16 - 214c: ea e9 ldi r30, 0x9A ; 154 - 214e: f3 e2 ldi r31, 0x23 ; 35 - 2150: 14 86 std Z+12, r1 ; 0x0c - 2152: 15 86 std Z+13, r1 ; 0x0d - 2154: 16 86 std Z+14, r1 ; 0x0e - 2156: 17 86 std Z+15, r1 ; 0x0f - 2158: 12 86 std Z+10, r1 ; 0x0a - 215a: 13 86 std Z+11, r1 ; 0x0b - 215c: 10 92 3f 21 sts 0x213F, r1 ; 0x80213f - 2160: 0f 91 pop r16 - 2162: 08 95 ret +000020c4 : + 20c4: 0f 93 push r16 + 20c6: e8 ec ldi r30, 0xC8 ; 200 + 20c8: f4 e0 ldi r31, 0x04 ; 4 + 20ca: 80 81 ld r24, Z + 20cc: 8f 7d andi r24, 0xDF ; 223 + 20ce: 80 83 st Z, r24 + 20d0: 80 81 ld r24, Z + 20d2: 8f 7d andi r24, 0xDF ; 223 + 20d4: 80 83 st Z, r24 + 20d6: e0 e5 ldi r30, 0x50 ; 80 + 20d8: f1 e2 ldi r31, 0x21 ; 33 + 20da: 02 e0 ldi r16, 0x02 ; 2 + 20dc: 05 93 las Z, r16 + 20de: 10 92 52 21 sts 0x2152, r1 ; 0x802152 + 20e2: 10 92 53 21 sts 0x2153, r1 ; 0x802153 + 20e6: 00 e2 ldi r16, 0x20 ; 32 + 20e8: 06 93 lac Z, r16 + 20ea: 00 e4 ldi r16, 0x40 ; 64 + 20ec: 06 93 lac Z, r16 + 20ee: e8 e4 ldi r30, 0x48 ; 72 + 20f0: f1 e2 ldi r31, 0x21 ; 33 + 20f2: 00 e2 ldi r16, 0x20 ; 32 + 20f4: 06 93 lac Z, r16 + 20f6: 00 e4 ldi r16, 0x40 ; 64 + 20f8: 06 93 lac Z, r16 + 20fa: ea e9 ldi r30, 0x9A ; 154 + 20fc: f3 e2 ldi r31, 0x23 ; 35 + 20fe: 14 86 std Z+12, r1 ; 0x0c + 2100: 15 86 std Z+13, r1 ; 0x0d + 2102: 16 86 std Z+14, r1 ; 0x0e + 2104: 17 86 std Z+15, r1 ; 0x0f + 2106: 12 86 std Z+10, r1 ; 0x0a + 2108: 13 86 std Z+11, r1 ; 0x0b + 210a: 10 92 3f 21 sts 0x213F, r1 ; 0x80213f + 210e: 0f 91 pop r16 + 2110: 08 95 ret -00002164 : - 2164: 0f 93 push r16 - 2166: 85 e0 ldi r24, 0x05 ; 5 - 2168: 80 93 3f 21 sts 0x213F, r24 ; 0x80213f - 216c: e1 e5 ldi r30, 0x51 ; 81 - 216e: f1 e2 ldi r31, 0x21 ; 33 - 2170: 04 e0 ldi r16, 0x04 ; 4 - 2172: 05 93 las Z, r16 - 2174: e9 e4 ldi r30, 0x49 ; 73 - 2176: f1 e2 ldi r31, 0x21 ; 33 - 2178: 04 e0 ldi r16, 0x04 ; 4 - 217a: 05 93 las Z, r16 - 217c: 0f 91 pop r16 - 217e: 08 95 ret +00002112 : + 2112: 0f 93 push r16 + 2114: 85 e0 ldi r24, 0x05 ; 5 + 2116: 80 93 3f 21 sts 0x213F, r24 ; 0x80213f + 211a: e1 e5 ldi r30, 0x51 ; 81 + 211c: f1 e2 ldi r31, 0x21 ; 33 + 211e: 04 e0 ldi r16, 0x04 ; 4 + 2120: 05 93 las Z, r16 + 2122: e9 e4 ldi r30, 0x49 ; 73 + 2124: f1 e2 ldi r31, 0x21 ; 33 + 2126: 04 e0 ldi r16, 0x04 ; 4 + 2128: 05 93 las Z, r16 + 212a: 0f 91 pop r16 + 212c: 08 95 ret -00002180 : - 2180: 0f 93 push r16 - 2182: 83 e0 ldi r24, 0x03 ; 3 - 2184: 80 93 3f 21 sts 0x213F, r24 ; 0x80213f - 2188: 10 92 52 21 sts 0x2152, r1 ; 0x802152 - 218c: 10 92 53 21 sts 0x2153, r1 ; 0x802153 - 2190: e0 e5 ldi r30, 0x50 ; 80 - 2192: f1 e2 ldi r31, 0x21 ; 33 - 2194: 02 e0 ldi r16, 0x02 ; 2 - 2196: 06 93 lac Z, r16 - 2198: 0f 91 pop r16 - 219a: 08 95 ret +0000212e : + 212e: 0f 93 push r16 + 2130: 83 e0 ldi r24, 0x03 ; 3 + 2132: 80 93 3f 21 sts 0x213F, r24 ; 0x80213f + 2136: 10 92 52 21 sts 0x2152, r1 ; 0x802152 + 213a: 10 92 53 21 sts 0x2153, r1 ; 0x802153 + 213e: e0 e5 ldi r30, 0x50 ; 80 + 2140: f1 e2 ldi r31, 0x21 ; 33 + 2142: 02 e0 ldi r16, 0x02 ; 2 + 2144: 06 93 lac Z, r16 + 2146: 0f 91 pop r16 + 2148: 08 95 ret -0000219c : - 219c: e0 91 a6 23 lds r30, 0x23A6 ; 0x8023a6 - 21a0: f0 91 a7 23 lds r31, 0x23A7 ; 0x8023a7 - 21a4: 30 97 sbiw r30, 0x00 ; 0 - 21a6: 09 f0 breq .+2 ; 0x21aa - 21a8: 09 95 icall - 21aa: 08 95 ret +0000214a : + 214a: e0 91 a6 23 lds r30, 0x23A6 ; 0x8023a6 + 214e: f0 91 a7 23 lds r31, 0x23A7 ; 0x8023a7 + 2152: 30 97 sbiw r30, 0x00 ; 0 + 2154: 09 f0 breq .+2 ; 0x2158 + 2156: 09 95 icall + 2158: 08 95 ret -000021ac : - 21ac: 0f 93 push r16 - 21ae: cf 93 push r28 - 21b0: df 93 push r29 - 21b2: 80 91 3f 21 lds r24, 0x213F ; 0x80213f - 21b6: 83 30 cpi r24, 0x03 ; 3 - 21b8: 19 f4 brne .+6 ; 0x21c0 - 21ba: f0 df rcall .-32 ; 0x219c - 21bc: ac df rcall .-168 ; 0x2116 - 21be: 5e c0 rjmp .+188 ; 0x227c - 21c0: 80 91 3b 21 lds r24, 0x213B ; 0x80213b - 21c4: 90 91 3c 21 lds r25, 0x213C ; 0x80213c - 21c8: c0 91 a4 23 lds r28, 0x23A4 ; 0x8023a4 - 21cc: d0 91 a5 23 lds r29, 0x23A5 ; 0x8023a5 - 21d0: c8 1b sub r28, r24 - 21d2: d9 0b sbc r29, r25 - 21d4: 71 f5 brne .+92 ; 0x2232 - 21d6: 20 91 3d 21 lds r18, 0x213D ; 0x80213d - 21da: 30 91 3e 21 lds r19, 0x213E ; 0x80213e - 21de: 82 0f add r24, r18 - 21e0: 93 1f adc r25, r19 - 21e2: 80 93 3d 21 sts 0x213D, r24 ; 0x80213d - 21e6: 90 93 3e 21 sts 0x213E, r25 ; 0x80213e - 21ea: 20 91 a0 23 lds r18, 0x23A0 ; 0x8023a0 - 21ee: 30 91 a1 23 lds r19, 0x23A1 ; 0x8023a1 - 21f2: 82 17 cp r24, r18 - 21f4: 93 07 cpc r25, r19 - 21f6: 21 f0 breq .+8 ; 0x2200 - 21f8: 80 91 a8 20 lds r24, 0x20A8 ; 0x8020a8 - 21fc: 88 23 and r24, r24 - 21fe: 41 f0 breq .+16 ; 0x2210 - 2200: 84 e0 ldi r24, 0x04 ; 4 - 2202: 80 93 3f 21 sts 0x213F, r24 ; 0x80213f - 2206: e8 e4 ldi r30, 0x48 ; 72 - 2208: f1 e2 ldi r31, 0x21 ; 33 - 220a: 02 e0 ldi r16, 0x02 ; 2 - 220c: 06 93 lac Z, r16 - 220e: 36 c0 rjmp .+108 ; 0x227c - 2210: e0 91 a8 23 lds r30, 0x23A8 ; 0x8023a8 - 2214: f0 91 a9 23 lds r31, 0x23A9 ; 0x8023a9 - 2218: 30 97 sbiw r30, 0x00 ; 0 - 221a: 99 f0 breq .+38 ; 0x2242 - 221c: 09 95 icall - 221e: 88 23 and r24, r24 - 2220: 81 f0 breq .+32 ; 0x2242 - 2222: 10 92 3b 21 sts 0x213B, r1 ; 0x80213b - 2226: 10 92 3c 21 sts 0x213C, r1 ; 0x80213c - 222a: c0 91 a4 23 lds r28, 0x23A4 ; 0x8023a4 - 222e: d0 91 a5 23 lds r29, 0x23A5 ; 0x8023a5 - 2232: c0 34 cpi r28, 0x40 ; 64 - 2234: d1 05 cpc r29, r1 - 2236: 28 f0 brcs .+10 ; 0x2242 - 2238: 10 92 a8 20 sts 0x20A8, r1 ; 0x8020a8 - 223c: c0 e4 ldi r28, 0x40 ; 64 - 223e: d0 e0 ldi r29, 0x00 ; 0 - 2240: 03 c0 rjmp .+6 ; 0x2248 - 2242: 81 e0 ldi r24, 0x01 ; 1 - 2244: 80 93 a8 20 sts 0x20A8, r24 ; 0x8020a8 - 2248: e0 e4 ldi r30, 0x40 ; 64 - 224a: f1 e2 ldi r31, 0x21 ; 33 - 224c: c2 8b std Z+18, r28 ; 0x12 - 224e: d3 8b std Z+19, r29 ; 0x13 - 2250: 80 91 3b 21 lds r24, 0x213B ; 0x80213b - 2254: 90 91 3c 21 lds r25, 0x213C ; 0x80213c - 2258: 20 91 a2 23 lds r18, 0x23A2 ; 0x8023a2 - 225c: 30 91 a3 23 lds r19, 0x23A3 ; 0x8023a3 - 2260: 28 0f add r18, r24 - 2262: 39 1f adc r19, r25 - 2264: 24 8b std Z+20, r18 ; 0x14 - 2266: 35 8b std Z+21, r19 ; 0x15 - 2268: c8 0f add r28, r24 - 226a: d9 1f adc r29, r25 - 226c: c0 93 3b 21 sts 0x213B, r28 ; 0x80213b - 2270: d0 93 3c 21 sts 0x213C, r29 ; 0x80213c - 2274: e0 e5 ldi r30, 0x50 ; 80 - 2276: f1 e2 ldi r31, 0x21 ; 33 - 2278: 02 e0 ldi r16, 0x02 ; 2 - 227a: 06 93 lac Z, r16 - 227c: df 91 pop r29 - 227e: cf 91 pop r28 - 2280: 0f 91 pop r16 - 2282: 08 95 ret +0000215a : + 215a: 0f 93 push r16 + 215c: cf 93 push r28 + 215e: df 93 push r29 + 2160: 80 91 3f 21 lds r24, 0x213F ; 0x80213f + 2164: 83 30 cpi r24, 0x03 ; 3 + 2166: 19 f4 brne .+6 ; 0x216e + 2168: f0 df rcall .-32 ; 0x214a + 216a: ac df rcall .-168 ; 0x20c4 + 216c: 5e c0 rjmp .+188 ; 0x222a + 216e: 80 91 3b 21 lds r24, 0x213B ; 0x80213b + 2172: 90 91 3c 21 lds r25, 0x213C ; 0x80213c + 2176: c0 91 a4 23 lds r28, 0x23A4 ; 0x8023a4 + 217a: d0 91 a5 23 lds r29, 0x23A5 ; 0x8023a5 + 217e: c8 1b sub r28, r24 + 2180: d9 0b sbc r29, r25 + 2182: 71 f5 brne .+92 ; 0x21e0 + 2184: 20 91 3d 21 lds r18, 0x213D ; 0x80213d + 2188: 30 91 3e 21 lds r19, 0x213E ; 0x80213e + 218c: 82 0f add r24, r18 + 218e: 93 1f adc r25, r19 + 2190: 80 93 3d 21 sts 0x213D, r24 ; 0x80213d + 2194: 90 93 3e 21 sts 0x213E, r25 ; 0x80213e + 2198: 20 91 a0 23 lds r18, 0x23A0 ; 0x8023a0 + 219c: 30 91 a1 23 lds r19, 0x23A1 ; 0x8023a1 + 21a0: 82 17 cp r24, r18 + 21a2: 93 07 cpc r25, r19 + 21a4: 21 f0 breq .+8 ; 0x21ae + 21a6: 80 91 a8 20 lds r24, 0x20A8 ; 0x8020a8 + 21aa: 88 23 and r24, r24 + 21ac: 41 f0 breq .+16 ; 0x21be + 21ae: 84 e0 ldi r24, 0x04 ; 4 + 21b0: 80 93 3f 21 sts 0x213F, r24 ; 0x80213f + 21b4: e8 e4 ldi r30, 0x48 ; 72 + 21b6: f1 e2 ldi r31, 0x21 ; 33 + 21b8: 02 e0 ldi r16, 0x02 ; 2 + 21ba: 06 93 lac Z, r16 + 21bc: 36 c0 rjmp .+108 ; 0x222a + 21be: e0 91 a8 23 lds r30, 0x23A8 ; 0x8023a8 + 21c2: f0 91 a9 23 lds r31, 0x23A9 ; 0x8023a9 + 21c6: 30 97 sbiw r30, 0x00 ; 0 + 21c8: 99 f0 breq .+38 ; 0x21f0 + 21ca: 09 95 icall + 21cc: 88 23 and r24, r24 + 21ce: 81 f0 breq .+32 ; 0x21f0 + 21d0: 10 92 3b 21 sts 0x213B, r1 ; 0x80213b + 21d4: 10 92 3c 21 sts 0x213C, r1 ; 0x80213c + 21d8: c0 91 a4 23 lds r28, 0x23A4 ; 0x8023a4 + 21dc: d0 91 a5 23 lds r29, 0x23A5 ; 0x8023a5 + 21e0: c0 34 cpi r28, 0x40 ; 64 + 21e2: d1 05 cpc r29, r1 + 21e4: 28 f0 brcs .+10 ; 0x21f0 + 21e6: 10 92 a8 20 sts 0x20A8, r1 ; 0x8020a8 + 21ea: c0 e4 ldi r28, 0x40 ; 64 + 21ec: d0 e0 ldi r29, 0x00 ; 0 + 21ee: 03 c0 rjmp .+6 ; 0x21f6 + 21f0: 81 e0 ldi r24, 0x01 ; 1 + 21f2: 80 93 a8 20 sts 0x20A8, r24 ; 0x8020a8 + 21f6: e0 e4 ldi r30, 0x40 ; 64 + 21f8: f1 e2 ldi r31, 0x21 ; 33 + 21fa: c2 8b std Z+18, r28 ; 0x12 + 21fc: d3 8b std Z+19, r29 ; 0x13 + 21fe: 80 91 3b 21 lds r24, 0x213B ; 0x80213b + 2202: 90 91 3c 21 lds r25, 0x213C ; 0x80213c + 2206: 20 91 a2 23 lds r18, 0x23A2 ; 0x8023a2 + 220a: 30 91 a3 23 lds r19, 0x23A3 ; 0x8023a3 + 220e: 28 0f add r18, r24 + 2210: 39 1f adc r19, r25 + 2212: 24 8b std Z+20, r18 ; 0x14 + 2214: 35 8b std Z+21, r19 ; 0x15 + 2216: c8 0f add r28, r24 + 2218: d9 1f adc r29, r25 + 221a: c0 93 3b 21 sts 0x213B, r28 ; 0x80213b + 221e: d0 93 3c 21 sts 0x213C, r29 ; 0x80213c + 2222: e0 e5 ldi r30, 0x50 ; 80 + 2224: f1 e2 ldi r31, 0x21 ; 33 + 2226: 02 e0 ldi r16, 0x02 ; 2 + 2228: 06 93 lac Z, r16 + 222a: df 91 pop r29 + 222c: cf 91 pop r28 + 222e: 0f 91 pop r16 + 2230: 08 95 ret -00002284 : - 2284: fc 01 movw r30, r24 - 2286: 81 81 ldd r24, Z+1 ; 0x01 - 2288: e8 2f mov r30, r24 - 228a: e7 70 andi r30, 0x07 ; 7 - 228c: 8e 2f mov r24, r30 - 228e: 90 e0 ldi r25, 0x00 ; 0 - 2290: fc 01 movw r30, r24 - 2292: 31 97 sbiw r30, 0x01 ; 1 - 2294: e7 30 cpi r30, 0x07 ; 7 - 2296: f1 05 cpc r31, r1 - 2298: c0 f4 brcc .+48 ; 0x22ca - 229a: e9 5e subi r30, 0xE9 ; 233 - 229c: fe 4f sbci r31, 0xFE ; 254 - 229e: 67 c6 rjmp .+3278 ; 0x2f6e <__tablejump2__> - 22a0: 80 e1 ldi r24, 0x10 ; 16 - 22a2: 90 e0 ldi r25, 0x00 ; 0 - 22a4: 08 95 ret - 22a6: 80 e2 ldi r24, 0x20 ; 32 - 22a8: 90 e0 ldi r25, 0x00 ; 0 - 22aa: 08 95 ret - 22ac: 80 e4 ldi r24, 0x40 ; 64 - 22ae: 90 e0 ldi r25, 0x00 ; 0 - 22b0: 08 95 ret - 22b2: 80 e8 ldi r24, 0x80 ; 128 - 22b4: 90 e0 ldi r25, 0x00 ; 0 - 22b6: 08 95 ret - 22b8: 80 e0 ldi r24, 0x00 ; 0 - 22ba: 91 e0 ldi r25, 0x01 ; 1 - 22bc: 08 95 ret - 22be: 80 e0 ldi r24, 0x00 ; 0 - 22c0: 92 e0 ldi r25, 0x02 ; 2 - 22c2: 08 95 ret - 22c4: 8f ef ldi r24, 0xFF ; 255 - 22c6: 93 e0 ldi r25, 0x03 ; 3 - 22c8: 08 95 ret - 22ca: 88 e0 ldi r24, 0x08 ; 8 - 22cc: 90 e0 ldi r25, 0x00 ; 0 - 22ce: 08 95 ret +00002232 : + 2232: fc 01 movw r30, r24 + 2234: 81 81 ldd r24, Z+1 ; 0x01 + 2236: e8 2f mov r30, r24 + 2238: e7 70 andi r30, 0x07 ; 7 + 223a: 8e 2f mov r24, r30 + 223c: 90 e0 ldi r25, 0x00 ; 0 + 223e: fc 01 movw r30, r24 + 2240: 31 97 sbiw r30, 0x01 ; 1 + 2242: e7 30 cpi r30, 0x07 ; 7 + 2244: f1 05 cpc r31, r1 + 2246: c0 f4 brcc .+48 ; 0x2278 + 2248: e9 5e subi r30, 0xE9 ; 233 + 224a: fe 4f sbci r31, 0xFE ; 254 + 224c: 67 c6 rjmp .+3278 ; 0x2f1c <__tablejump2__> + 224e: 80 e1 ldi r24, 0x10 ; 16 + 2250: 90 e0 ldi r25, 0x00 ; 0 + 2252: 08 95 ret + 2254: 80 e2 ldi r24, 0x20 ; 32 + 2256: 90 e0 ldi r25, 0x00 ; 0 + 2258: 08 95 ret + 225a: 80 e4 ldi r24, 0x40 ; 64 + 225c: 90 e0 ldi r25, 0x00 ; 0 + 225e: 08 95 ret + 2260: 80 e8 ldi r24, 0x80 ; 128 + 2262: 90 e0 ldi r25, 0x00 ; 0 + 2264: 08 95 ret + 2266: 80 e0 ldi r24, 0x00 ; 0 + 2268: 91 e0 ldi r25, 0x01 ; 1 + 226a: 08 95 ret + 226c: 80 e0 ldi r24, 0x00 ; 0 + 226e: 92 e0 ldi r25, 0x02 ; 2 + 2270: 08 95 ret + 2272: 8f ef ldi r24, 0xFF ; 255 + 2274: 93 e0 ldi r25, 0x03 ; 3 + 2276: 08 95 ret + 2278: 88 e0 ldi r24, 0x08 ; 8 + 227a: 90 e0 ldi r25, 0x00 ; 0 + 227c: 08 95 ret -000022d0 : - 22d0: 28 2f mov r18, r24 - 22d2: 2f 70 andi r18, 0x0F ; 15 - 22d4: 30 e0 ldi r19, 0x00 ; 0 - 22d6: 22 0f add r18, r18 - 22d8: 33 1f adc r19, r19 - 22da: 08 2e mov r0, r24 - 22dc: 00 0c add r0, r0 - 22de: 99 0b sbc r25, r25 - 22e0: 88 27 eor r24, r24 - 22e2: 99 0f add r25, r25 - 22e4: 88 1f adc r24, r24 - 22e6: 99 27 eor r25, r25 - 22e8: 82 0f add r24, r18 - 22ea: 93 1f adc r25, r19 - 22ec: 02 97 sbiw r24, 0x02 ; 2 - 22ee: 9c 01 movw r18, r24 - 22f0: 22 0f add r18, r18 - 22f2: 33 1f adc r19, r19 - 22f4: 22 0f add r18, r18 - 22f6: 33 1f adc r19, r19 - 22f8: 22 0f add r18, r18 - 22fa: 33 1f adc r19, r19 - 22fc: 82 0f add r24, r18 - 22fe: 93 1f adc r25, r19 - 2300: 87 51 subi r24, 0x17 ; 23 - 2302: 9f 4d sbci r25, 0xDF ; 223 - 2304: 08 95 ret +0000227e : + 227e: 28 2f mov r18, r24 + 2280: 2f 70 andi r18, 0x0F ; 15 + 2282: 30 e0 ldi r19, 0x00 ; 0 + 2284: 22 0f add r18, r18 + 2286: 33 1f adc r19, r19 + 2288: 08 2e mov r0, r24 + 228a: 00 0c add r0, r0 + 228c: 99 0b sbc r25, r25 + 228e: 88 27 eor r24, r24 + 2290: 99 0f add r25, r25 + 2292: 88 1f adc r24, r24 + 2294: 99 27 eor r25, r25 + 2296: 82 0f add r24, r18 + 2298: 93 1f adc r25, r19 + 229a: 02 97 sbiw r24, 0x02 ; 2 + 229c: 9c 01 movw r18, r24 + 229e: 22 0f add r18, r18 + 22a0: 33 1f adc r19, r19 + 22a2: 22 0f add r18, r18 + 22a4: 33 1f adc r19, r19 + 22a6: 22 0f add r18, r18 + 22a8: 33 1f adc r19, r19 + 22aa: 82 0f add r24, r18 + 22ac: 93 1f adc r25, r19 + 22ae: 87 51 subi r24, 0x17 ; 23 + 22b0: 9f 4d sbci r25, 0xDF ; 223 + 22b2: 08 95 ret -00002306 : - 2306: 0f 93 push r16 - 2308: cf 93 push r28 - 230a: 80 91 cc 04 lds r24, 0x04CC ; 0x8004cc <__TEXT_REGION_LENGTH__+0x7004cc> - 230e: 80 ff sbrs r24, 0 - 2310: 62 c0 rjmp .+196 ; 0x23d6 - 2312: 81 e0 ldi r24, 0x01 ; 1 - 2314: 80 93 cc 04 sts 0x04CC, r24 ; 0x8004cc <__TEXT_REGION_LENGTH__+0x7004cc> - 2318: e8 e4 ldi r30, 0x48 ; 72 - 231a: f1 e2 ldi r31, 0x21 ; 33 - 231c: 00 e8 ldi r16, 0x80 ; 128 - 231e: 06 93 lac Z, r16 - 2320: e0 e5 ldi r30, 0x50 ; 80 - 2322: f1 e2 ldi r31, 0x21 ; 33 - 2324: 00 e8 ldi r16, 0x80 ; 128 - 2326: 06 93 lac Z, r16 - 2328: 80 93 ca 04 sts 0x04CA, r24 ; 0x8004ca <__TEXT_REGION_LENGTH__+0x7004ca> - 232c: e8 e4 ldi r30, 0x48 ; 72 - 232e: f1 e2 ldi r31, 0x21 ; 33 - 2330: 00 e1 ldi r16, 0x10 ; 16 - 2332: 06 93 lac Z, r16 - 2334: 80 91 3f 21 lds r24, 0x213F ; 0x80213f - 2338: 88 23 and r24, r24 - 233a: 29 f0 breq .+10 ; 0x2346 - 233c: 83 50 subi r24, 0x03 ; 3 - 233e: 82 30 cpi r24, 0x02 ; 2 - 2340: 08 f4 brcc .+2 ; 0x2344 - 2342: 2c df rcall .-424 ; 0x219c - 2344: e8 de rcall .-560 ; 0x2116 - 2346: 80 91 4a 21 lds r24, 0x214A ; 0x80214a - 234a: 90 91 4b 21 lds r25, 0x214B ; 0x80214b - 234e: 08 97 sbiw r24, 0x08 ; 8 - 2350: 09 f0 breq .+2 ; 0x2354 - 2352: 43 c0 rjmp .+134 ; 0x23da - 2354: 88 e0 ldi r24, 0x08 ; 8 - 2356: eb ef ldi r30, 0xFB ; 251 - 2358: f0 e2 ldi r31, 0x20 ; 32 - 235a: aa e9 ldi r26, 0x9A ; 154 - 235c: b3 e2 ldi r27, 0x23 ; 35 - 235e: 01 90 ld r0, Z+ - 2360: 0d 92 st X+, r0 - 2362: 8a 95 dec r24 - 2364: e1 f7 brne .-8 ; 0x235e - 2366: e8 ec ldi r30, 0xC8 ; 200 - 2368: f4 e0 ldi r31, 0x04 ; 4 - 236a: 80 81 ld r24, Z - 236c: 80 62 ori r24, 0x20 ; 32 - 236e: 80 83 st Z, r24 - 2370: 80 81 ld r24, Z - 2372: 80 62 ori r24, 0x20 ; 32 - 2374: 80 83 st Z, r24 - 2376: a4 da rcall .-2744 ; 0x18c0 - 2378: c8 2f mov r28, r24 - 237a: 81 11 cpse r24, r1 - 237c: 03 c0 rjmp .+6 ; 0x2384 - 237e: f2 de rcall .-540 ; 0x2164 - 2380: c1 e0 ldi r28, 0x01 ; 1 - 2382: 2c c0 rjmp .+88 ; 0x23dc - 2384: 80 91 9a 23 lds r24, 0x239A ; 0x80239a - 2388: 88 23 and r24, r24 - 238a: 6c f4 brge .+26 ; 0x23a6 - 238c: 10 92 3d 21 sts 0x213D, r1 ; 0x80213d - 2390: 10 92 3e 21 sts 0x213E, r1 ; 0x80213e - 2394: 10 92 3b 21 sts 0x213B, r1 ; 0x80213b - 2398: 10 92 3c 21 sts 0x213C, r1 ; 0x80213c - 239c: 82 e0 ldi r24, 0x02 ; 2 - 239e: 80 93 3f 21 sts 0x213F, r24 ; 0x80213f - 23a2: 04 df rcall .-504 ; 0x21ac - 23a4: 1b c0 rjmp .+54 ; 0x23dc - 23a6: 80 91 a0 23 lds r24, 0x23A0 ; 0x8023a0 - 23aa: 90 91 a1 23 lds r25, 0x23A1 ; 0x8023a1 - 23ae: 89 2b or r24, r25 - 23b0: 11 f4 brne .+4 ; 0x23b6 - 23b2: e6 de rcall .-564 ; 0x2180 - 23b4: 13 c0 rjmp .+38 ; 0x23dc - 23b6: 10 92 3d 21 sts 0x213D, r1 ; 0x80213d - 23ba: 10 92 3e 21 sts 0x213E, r1 ; 0x80213e - 23be: 10 92 3b 21 sts 0x213B, r1 ; 0x80213b - 23c2: 10 92 3c 21 sts 0x213C, r1 ; 0x80213c - 23c6: 81 e0 ldi r24, 0x01 ; 1 - 23c8: 80 93 3f 21 sts 0x213F, r24 ; 0x80213f - 23cc: e8 e4 ldi r30, 0x48 ; 72 - 23ce: f1 e2 ldi r31, 0x21 ; 33 - 23d0: 02 e0 ldi r16, 0x02 ; 2 - 23d2: 06 93 lac Z, r16 - 23d4: 03 c0 rjmp .+6 ; 0x23dc - 23d6: c0 e0 ldi r28, 0x00 ; 0 - 23d8: 01 c0 rjmp .+2 ; 0x23dc - 23da: c1 e0 ldi r28, 0x01 ; 1 - 23dc: 8c 2f mov r24, r28 - 23de: cf 91 pop r28 - 23e0: 0f 91 pop r16 - 23e2: 08 95 ret +000022b4 : + 22b4: 0f 93 push r16 + 22b6: cf 93 push r28 + 22b8: 80 91 cc 04 lds r24, 0x04CC ; 0x8004cc <__TEXT_REGION_LENGTH__+0x7004cc> + 22bc: 80 ff sbrs r24, 0 + 22be: 62 c0 rjmp .+196 ; 0x2384 + 22c0: 81 e0 ldi r24, 0x01 ; 1 + 22c2: 80 93 cc 04 sts 0x04CC, r24 ; 0x8004cc <__TEXT_REGION_LENGTH__+0x7004cc> + 22c6: e8 e4 ldi r30, 0x48 ; 72 + 22c8: f1 e2 ldi r31, 0x21 ; 33 + 22ca: 00 e8 ldi r16, 0x80 ; 128 + 22cc: 06 93 lac Z, r16 + 22ce: e0 e5 ldi r30, 0x50 ; 80 + 22d0: f1 e2 ldi r31, 0x21 ; 33 + 22d2: 00 e8 ldi r16, 0x80 ; 128 + 22d4: 06 93 lac Z, r16 + 22d6: 80 93 ca 04 sts 0x04CA, r24 ; 0x8004ca <__TEXT_REGION_LENGTH__+0x7004ca> + 22da: e8 e4 ldi r30, 0x48 ; 72 + 22dc: f1 e2 ldi r31, 0x21 ; 33 + 22de: 00 e1 ldi r16, 0x10 ; 16 + 22e0: 06 93 lac Z, r16 + 22e2: 80 91 3f 21 lds r24, 0x213F ; 0x80213f + 22e6: 88 23 and r24, r24 + 22e8: 29 f0 breq .+10 ; 0x22f4 + 22ea: 83 50 subi r24, 0x03 ; 3 + 22ec: 82 30 cpi r24, 0x02 ; 2 + 22ee: 08 f4 brcc .+2 ; 0x22f2 + 22f0: 2c df rcall .-424 ; 0x214a + 22f2: e8 de rcall .-560 ; 0x20c4 + 22f4: 80 91 4a 21 lds r24, 0x214A ; 0x80214a + 22f8: 90 91 4b 21 lds r25, 0x214B ; 0x80214b + 22fc: 08 97 sbiw r24, 0x08 ; 8 + 22fe: 09 f0 breq .+2 ; 0x2302 + 2300: 43 c0 rjmp .+134 ; 0x2388 + 2302: 88 e0 ldi r24, 0x08 ; 8 + 2304: eb ef ldi r30, 0xFB ; 251 + 2306: f0 e2 ldi r31, 0x20 ; 32 + 2308: aa e9 ldi r26, 0x9A ; 154 + 230a: b3 e2 ldi r27, 0x23 ; 35 + 230c: 01 90 ld r0, Z+ + 230e: 0d 92 st X+, r0 + 2310: 8a 95 dec r24 + 2312: e1 f7 brne .-8 ; 0x230c + 2314: e8 ec ldi r30, 0xC8 ; 200 + 2316: f4 e0 ldi r31, 0x04 ; 4 + 2318: 80 81 ld r24, Z + 231a: 80 62 ori r24, 0x20 ; 32 + 231c: 80 83 st Z, r24 + 231e: 80 81 ld r24, Z + 2320: 80 62 ori r24, 0x20 ; 32 + 2322: 80 83 st Z, r24 + 2324: a4 da rcall .-2744 ; 0x186e + 2326: c8 2f mov r28, r24 + 2328: 81 11 cpse r24, r1 + 232a: 03 c0 rjmp .+6 ; 0x2332 + 232c: f2 de rcall .-540 ; 0x2112 + 232e: c1 e0 ldi r28, 0x01 ; 1 + 2330: 2c c0 rjmp .+88 ; 0x238a + 2332: 80 91 9a 23 lds r24, 0x239A ; 0x80239a + 2336: 88 23 and r24, r24 + 2338: 6c f4 brge .+26 ; 0x2354 + 233a: 10 92 3d 21 sts 0x213D, r1 ; 0x80213d + 233e: 10 92 3e 21 sts 0x213E, r1 ; 0x80213e + 2342: 10 92 3b 21 sts 0x213B, r1 ; 0x80213b + 2346: 10 92 3c 21 sts 0x213C, r1 ; 0x80213c + 234a: 82 e0 ldi r24, 0x02 ; 2 + 234c: 80 93 3f 21 sts 0x213F, r24 ; 0x80213f + 2350: 04 df rcall .-504 ; 0x215a + 2352: 1b c0 rjmp .+54 ; 0x238a + 2354: 80 91 a0 23 lds r24, 0x23A0 ; 0x8023a0 + 2358: 90 91 a1 23 lds r25, 0x23A1 ; 0x8023a1 + 235c: 89 2b or r24, r25 + 235e: 11 f4 brne .+4 ; 0x2364 + 2360: e6 de rcall .-564 ; 0x212e + 2362: 13 c0 rjmp .+38 ; 0x238a + 2364: 10 92 3d 21 sts 0x213D, r1 ; 0x80213d + 2368: 10 92 3e 21 sts 0x213E, r1 ; 0x80213e + 236c: 10 92 3b 21 sts 0x213B, r1 ; 0x80213b + 2370: 10 92 3c 21 sts 0x213C, r1 ; 0x80213c + 2374: 81 e0 ldi r24, 0x01 ; 1 + 2376: 80 93 3f 21 sts 0x213F, r24 ; 0x80213f + 237a: e8 e4 ldi r30, 0x48 ; 72 + 237c: f1 e2 ldi r31, 0x21 ; 33 + 237e: 02 e0 ldi r16, 0x02 ; 2 + 2380: 06 93 lac Z, r16 + 2382: 03 c0 rjmp .+6 ; 0x238a + 2384: c0 e0 ldi r28, 0x00 ; 0 + 2386: 01 c0 rjmp .+2 ; 0x238a + 2388: c1 e0 ldi r28, 0x01 ; 1 + 238a: 8c 2f mov r24, r28 + 238c: cf 91 pop r28 + 238e: 0f 91 pop r16 + 2390: 08 95 ret -000023e4 : - 23e4: 8f 92 push r8 - 23e6: 9f 92 push r9 - 23e8: af 92 push r10 - 23ea: bf 92 push r11 - 23ec: df 92 push r13 - 23ee: ef 92 push r14 - 23f0: ff 92 push r15 - 23f2: 0f 93 push r16 - 23f4: 1f 93 push r17 - 23f6: cf 93 push r28 - 23f8: df 93 push r29 - 23fa: d8 2e mov r13, r24 - 23fc: 69 df rcall .-302 ; 0x22d0 - 23fe: 8c 01 movw r16, r24 - 2400: bd 2c mov r11, r13 - 2402: bb 1c adc r11, r11 - 2404: bb 24 eor r11, r11 - 2406: bb 1c adc r11, r11 - 2408: cd 2d mov r28, r13 - 240a: cf 70 andi r28, 0x0F ; 15 - 240c: d0 e0 ldi r29, 0x00 ; 0 - 240e: cc 0f add r28, r28 - 2410: dd 1f adc r29, r29 - 2412: cb 0d add r28, r11 - 2414: d1 1d adc r29, r1 - 2416: ce 01 movw r24, r28 - 2418: 88 0f add r24, r24 - 241a: 99 1f adc r25, r25 - 241c: 88 0f add r24, r24 - 241e: 99 1f adc r25, r25 - 2420: 88 0f add r24, r24 - 2422: 99 1f adc r25, r25 - 2424: 9c 01 movw r18, r24 - 2426: 28 5b subi r18, 0xB8 ; 184 - 2428: 3e 4d sbci r19, 0xDE ; 222 - 242a: 79 01 movw r14, r18 - 242c: c9 01 movw r24, r18 - 242e: 2a df rcall .-428 ; 0x2284 - 2430: 4c 01 movw r8, r24 - 2432: bb 20 and r11, r11 - 2434: 09 f4 brne .+2 ; 0x2438 - 2436: 70 c0 rjmp .+224 ; 0x2518 - 2438: fe 01 movw r30, r28 - 243a: ee 0f add r30, r30 - 243c: ff 1f adc r31, r31 - 243e: ee 0f add r30, r30 - 2440: ff 1f adc r31, r31 - 2442: ee 0f add r30, r30 - 2444: ff 1f adc r31, r31 - 2446: e0 5c subi r30, 0xC0 ; 192 - 2448: fe 4d sbci r31, 0xDE ; 222 - 244a: 26 85 ldd r18, Z+14 ; 0x0e - 244c: 37 85 ldd r19, Z+15 ; 0x0f - 244e: d8 01 movw r26, r16 - 2450: 15 96 adiw r26, 0x05 ; 5 - 2452: 8d 91 ld r24, X+ - 2454: 9c 91 ld r25, X - 2456: 16 97 sbiw r26, 0x06 ; 6 - 2458: 82 0f add r24, r18 - 245a: 93 1f adc r25, r19 - 245c: 15 96 adiw r26, 0x05 ; 5 - 245e: 8d 93 st X+, r24 +00002392 : + 2392: 8f 92 push r8 + 2394: 9f 92 push r9 + 2396: af 92 push r10 + 2398: bf 92 push r11 + 239a: df 92 push r13 + 239c: ef 92 push r14 + 239e: ff 92 push r15 + 23a0: 0f 93 push r16 + 23a2: 1f 93 push r17 + 23a4: cf 93 push r28 + 23a6: df 93 push r29 + 23a8: d8 2e mov r13, r24 + 23aa: 69 df rcall .-302 ; 0x227e + 23ac: 8c 01 movw r16, r24 + 23ae: bd 2c mov r11, r13 + 23b0: bb 1c adc r11, r11 + 23b2: bb 24 eor r11, r11 + 23b4: bb 1c adc r11, r11 + 23b6: cd 2d mov r28, r13 + 23b8: cf 70 andi r28, 0x0F ; 15 + 23ba: d0 e0 ldi r29, 0x00 ; 0 + 23bc: cc 0f add r28, r28 + 23be: dd 1f adc r29, r29 + 23c0: cb 0d add r28, r11 + 23c2: d1 1d adc r29, r1 + 23c4: ce 01 movw r24, r28 + 23c6: 88 0f add r24, r24 + 23c8: 99 1f adc r25, r25 + 23ca: 88 0f add r24, r24 + 23cc: 99 1f adc r25, r25 + 23ce: 88 0f add r24, r24 + 23d0: 99 1f adc r25, r25 + 23d2: 9c 01 movw r18, r24 + 23d4: 28 5b subi r18, 0xB8 ; 184 + 23d6: 3e 4d sbci r19, 0xDE ; 222 + 23d8: 79 01 movw r14, r18 + 23da: c9 01 movw r24, r18 + 23dc: 2a df rcall .-428 ; 0x2232 + 23de: 4c 01 movw r8, r24 + 23e0: bb 20 and r11, r11 + 23e2: 09 f4 brne .+2 ; 0x23e6 + 23e4: 70 c0 rjmp .+224 ; 0x24c6 + 23e6: fe 01 movw r30, r28 + 23e8: ee 0f add r30, r30 + 23ea: ff 1f adc r31, r31 + 23ec: ee 0f add r30, r30 + 23ee: ff 1f adc r31, r31 + 23f0: ee 0f add r30, r30 + 23f2: ff 1f adc r31, r31 + 23f4: e0 5c subi r30, 0xC0 ; 192 + 23f6: fe 4d sbci r31, 0xDE ; 222 + 23f8: 26 85 ldd r18, Z+14 ; 0x0e + 23fa: 37 85 ldd r19, Z+15 ; 0x0f + 23fc: d8 01 movw r26, r16 + 23fe: 15 96 adiw r26, 0x05 ; 5 + 2400: 8d 91 ld r24, X+ + 2402: 9c 91 ld r25, X + 2404: 16 97 sbiw r26, 0x06 ; 6 + 2406: 82 0f add r24, r18 + 2408: 93 1f adc r25, r19 + 240a: 15 96 adiw r26, 0x05 ; 5 + 240c: 8d 93 st X+, r24 + 240e: 9c 93 st X, r25 + 2410: 16 97 sbiw r26, 0x06 ; 6 + 2412: 13 96 adiw r26, 0x03 ; 3 + 2414: 2d 91 ld r18, X+ + 2416: 3c 91 ld r19, X + 2418: 14 97 sbiw r26, 0x04 ; 4 + 241a: 82 17 cp r24, r18 + 241c: 93 07 cpc r25, r19 + 241e: 09 f4 brne .+2 ; 0x2422 + 2420: 3c c0 rjmp .+120 ; 0x249a + 2422: 28 1b sub r18, r24 + 2424: 39 0b sbc r19, r25 + 2426: 21 15 cp r18, r1 + 2428: b4 e0 ldi r27, 0x04 ; 4 + 242a: 3b 07 cpc r19, r27 + 242c: 38 f0 brcs .+14 ; 0x243c + 242e: 2f ef ldi r18, 0xFF ; 255 + 2430: 33 e0 ldi r19, 0x03 ; 3 + 2432: c9 01 movw r24, r18 + 2434: b4 01 movw r22, r8 + 2436: 4b d5 rcall .+2710 ; 0x2ece <__udivmodhi4> + 2438: 28 1b sub r18, r24 + 243a: 39 0b sbc r19, r25 + 243c: f8 01 movw r30, r16 + 243e: 80 81 ld r24, Z + 2440: 81 ff sbrs r24, 1 + 2442: 09 c0 rjmp .+18 ; 0x2456 + 2444: c9 01 movw r24, r18 + 2446: b4 01 movw r22, r8 + 2448: 42 d5 rcall .+2692 ; 0x2ece <__udivmodhi4> + 244a: 41 e0 ldi r20, 0x01 ; 1 + 244c: 89 2b or r24, r25 + 244e: 09 f0 breq .+2 ; 0x2452 + 2450: 40 e0 ldi r20, 0x00 ; 0 + 2452: 84 2f mov r24, r20 + 2454: 01 c0 rjmp .+2 ; 0x2458 + 2456: 80 e0 ldi r24, 0x00 ; 0 + 2458: d8 01 movw r26, r16 + 245a: 9c 91 ld r25, X + 245c: 80 fb bst r24, 0 + 245e: 91 f9 bld r25, 1 2460: 9c 93 st X, r25 - 2462: 16 97 sbiw r26, 0x06 ; 6 - 2464: 13 96 adiw r26, 0x03 ; 3 - 2466: 2d 91 ld r18, X+ - 2468: 3c 91 ld r19, X - 246a: 14 97 sbiw r26, 0x04 ; 4 - 246c: 82 17 cp r24, r18 - 246e: 93 07 cpc r25, r19 - 2470: 09 f4 brne .+2 ; 0x2474 - 2472: 3c c0 rjmp .+120 ; 0x24ec - 2474: 28 1b sub r18, r24 - 2476: 39 0b sbc r19, r25 - 2478: 21 15 cp r18, r1 - 247a: b4 e0 ldi r27, 0x04 ; 4 - 247c: 3b 07 cpc r19, r27 - 247e: 38 f0 brcs .+14 ; 0x248e - 2480: 2f ef ldi r18, 0xFF ; 255 - 2482: 33 e0 ldi r19, 0x03 ; 3 - 2484: c9 01 movw r24, r18 - 2486: b4 01 movw r22, r8 - 2488: 4b d5 rcall .+2710 ; 0x2f20 <__udivmodhi4> - 248a: 28 1b sub r18, r24 - 248c: 39 0b sbc r19, r25 - 248e: f8 01 movw r30, r16 - 2490: 80 81 ld r24, Z - 2492: 81 ff sbrs r24, 1 - 2494: 09 c0 rjmp .+18 ; 0x24a8 - 2496: c9 01 movw r24, r18 - 2498: b4 01 movw r22, r8 - 249a: 42 d5 rcall .+2692 ; 0x2f20 <__udivmodhi4> - 249c: 41 e0 ldi r20, 0x01 ; 1 - 249e: 89 2b or r24, r25 - 24a0: 09 f0 breq .+2 ; 0x24a4 - 24a2: 40 e0 ldi r20, 0x00 ; 0 - 24a4: 84 2f mov r24, r20 - 24a6: 01 c0 rjmp .+2 ; 0x24aa - 24a8: 80 e0 ldi r24, 0x00 ; 0 - 24aa: d8 01 movw r26, r16 - 24ac: 9c 91 ld r25, X - 24ae: 80 fb bst r24, 0 - 24b0: 91 f9 bld r25, 1 - 24b2: 9c 93 st X, r25 - 24b4: cc 0f add r28, r28 - 24b6: dd 1f adc r29, r29 - 24b8: cc 0f add r28, r28 - 24ba: dd 1f adc r29, r29 - 24bc: cc 0f add r28, r28 - 24be: dd 1f adc r29, r29 - 24c0: c0 5c subi r28, 0xC0 ; 192 - 24c2: de 4d sbci r29, 0xDE ; 222 - 24c4: 1e 86 std Y+14, r1 ; 0x0e - 24c6: 1f 86 std Y+15, r1 ; 0x0f - 24c8: 2a 87 std Y+10, r18 ; 0x0a - 24ca: 3b 87 std Y+11, r19 ; 0x0b - 24cc: 11 96 adiw r26, 0x01 ; 1 - 24ce: 2d 91 ld r18, X+ - 24d0: 3c 91 ld r19, X - 24d2: 12 97 sbiw r26, 0x02 ; 2 - 24d4: 15 96 adiw r26, 0x05 ; 5 - 24d6: 8d 91 ld r24, X+ - 24d8: 9c 91 ld r25, X - 24da: 16 97 sbiw r26, 0x06 ; 6 - 24dc: 82 0f add r24, r18 - 24de: 93 1f adc r25, r19 - 24e0: 8c 87 std Y+12, r24 ; 0x0c - 24e2: 9d 87 std Y+13, r25 ; 0x0d - 24e4: f7 01 movw r30, r14 - 24e6: 02 e0 ldi r16, 0x02 ; 2 - 24e8: 06 93 lac Z, r16 - 24ea: ca c0 rjmp .+404 ; 0x2680 - 24ec: d8 01 movw r26, r16 - 24ee: 8c 91 ld r24, X - 24f0: 81 ff sbrs r24, 1 - 24f2: b3 c0 rjmp .+358 ; 0x265a - 24f4: 8d 7f andi r24, 0xFD ; 253 - 24f6: 8c 93 st X, r24 - 24f8: cc 0f add r28, r28 - 24fa: dd 1f adc r29, r29 - 24fc: cc 0f add r28, r28 - 24fe: dd 1f adc r29, r29 - 2500: cc 0f add r28, r28 - 2502: dd 1f adc r29, r29 - 2504: c0 5c subi r28, 0xC0 ; 192 - 2506: de 4d sbci r29, 0xDE ; 222 - 2508: 1e 86 std Y+14, r1 ; 0x0e - 250a: 1f 86 std Y+15, r1 ; 0x0f - 250c: 1a 86 std Y+10, r1 ; 0x0a - 250e: 1b 86 std Y+11, r1 ; 0x0b - 2510: f7 01 movw r30, r14 - 2512: 02 e0 ldi r16, 0x02 ; 2 - 2514: 06 93 lac Z, r16 - 2516: b4 c0 rjmp .+360 ; 0x2680 - 2518: fe 01 movw r30, r28 - 251a: ee 0f add r30, r30 - 251c: ff 1f adc r31, r31 - 251e: ee 0f add r30, r30 - 2520: ff 1f adc r31, r31 - 2522: ee 0f add r30, r30 - 2524: ff 1f adc r31, r31 - 2526: e0 5c subi r30, 0xC0 ; 192 - 2528: fe 4d sbci r31, 0xDE ; 222 - 252a: a2 84 ldd r10, Z+10 ; 0x0a - 252c: b3 84 ldd r11, Z+11 ; 0x0b - 252e: d8 01 movw r26, r16 - 2530: 8c 91 ld r24, X - 2532: 82 ff sbrs r24, 2 - 2534: 19 c0 rjmp .+50 ; 0x2568 - 2536: 11 96 adiw r26, 0x01 ; 1 - 2538: ed 91 ld r30, X+ - 253a: fc 91 ld r31, X - 253c: 12 97 sbiw r26, 0x02 ; 2 - 253e: 15 96 adiw r26, 0x05 ; 5 - 2540: 2d 91 ld r18, X+ - 2542: 3c 91 ld r19, X - 2544: 16 97 sbiw r26, 0x06 ; 6 - 2546: 13 96 adiw r26, 0x03 ; 3 - 2548: 8d 91 ld r24, X+ - 254a: 9c 91 ld r25, X - 254c: 14 97 sbiw r26, 0x04 ; 4 - 254e: b4 01 movw r22, r8 - 2550: e7 d4 rcall .+2510 ; 0x2f20 <__udivmodhi4> - 2552: b0 e4 ldi r27, 0x40 ; 64 - 2554: db 9e mul r13, r27 - 2556: b0 01 movw r22, r0 - 2558: 11 24 eor r1, r1 - 255a: 67 59 subi r22, 0x97 ; 151 - 255c: 7f 4d sbci r23, 0xDF ; 223 - 255e: ac 01 movw r20, r24 - 2560: cf 01 movw r24, r30 - 2562: 82 0f add r24, r18 - 2564: 93 1f adc r25, r19 - 2566: 09 d5 rcall .+2578 ; 0x2f7a - 2568: f8 01 movw r30, r16 - 256a: 25 81 ldd r18, Z+5 ; 0x05 - 256c: 36 81 ldd r19, Z+6 ; 0x06 - 256e: 2a 0d add r18, r10 - 2570: 3b 1d adc r19, r11 - 2572: 25 83 std Z+5, r18 ; 0x05 - 2574: 36 83 std Z+6, r19 ; 0x06 - 2576: 83 81 ldd r24, Z+3 ; 0x03 - 2578: 94 81 ldd r25, Z+4 ; 0x04 - 257a: 82 17 cp r24, r18 - 257c: 93 07 cpc r25, r19 - 257e: 68 f4 brcc .+26 ; 0x259a - 2580: 85 83 std Z+5, r24 ; 0x05 - 2582: 96 83 std Z+6, r25 ; 0x06 - 2584: cc 0f add r28, r28 - 2586: dd 1f adc r29, r29 - 2588: cc 0f add r28, r28 - 258a: dd 1f adc r29, r29 - 258c: cc 0f add r28, r28 - 258e: dd 1f adc r29, r29 - 2590: c0 5c subi r28, 0xC0 ; 192 - 2592: de 4d sbci r29, 0xDE ; 222 - 2594: 8e 85 ldd r24, Y+14 ; 0x0e - 2596: 9f 85 ldd r25, Y+15 ; 0x0f - 2598: 60 c0 rjmp .+192 ; 0x265a - 259a: fe 01 movw r30, r28 - 259c: ee 0f add r30, r30 - 259e: ff 1f adc r31, r31 - 25a0: ee 0f add r30, r30 - 25a2: ff 1f adc r31, r31 - 25a4: ee 0f add r30, r30 - 25a6: ff 1f adc r31, r31 - 25a8: e0 5c subi r30, 0xC0 ; 192 - 25aa: fe 4d sbci r31, 0xDE ; 222 - 25ac: 46 85 ldd r20, Z+14 ; 0x0e - 25ae: 57 85 ldd r21, Z+15 ; 0x0f - 25b0: 4a 15 cp r20, r10 - 25b2: 5b 05 cpc r21, r11 - 25b4: 09 f0 breq .+2 ; 0x25b8 - 25b6: 51 c0 rjmp .+162 ; 0x265a - 25b8: 28 17 cp r18, r24 - 25ba: 39 07 cpc r19, r25 - 25bc: 09 f4 brne .+2 ; 0x25c0 - 25be: 4d c0 rjmp .+154 ; 0x265a - 25c0: ac 01 movw r20, r24 - 25c2: 42 1b sub r20, r18 - 25c4: 53 0b sbc r21, r19 - 25c6: 9a 01 movw r18, r20 - 25c8: 21 15 cp r18, r1 - 25ca: 54 e0 ldi r21, 0x04 ; 4 - 25cc: 35 07 cpc r19, r21 - 25ce: 50 f0 brcs .+20 ; 0x25e4 - 25d0: 2f ef ldi r18, 0xFF ; 255 - 25d2: 33 e0 ldi r19, 0x03 ; 3 - 25d4: c9 01 movw r24, r18 - 25d6: b4 01 movw r22, r8 - 25d8: a3 d4 rcall .+2374 ; 0x2f20 <__udivmodhi4> - 25da: d9 01 movw r26, r18 - 25dc: a8 1b sub r26, r24 - 25de: b9 0b sbc r27, r25 - 25e0: cd 01 movw r24, r26 - 25e2: 07 c0 rjmp .+14 ; 0x25f2 - 25e4: c9 01 movw r24, r18 - 25e6: b4 01 movw r22, r8 - 25e8: 9b d4 rcall .+2358 ; 0x2f20 <__udivmodhi4> - 25ea: f9 01 movw r30, r18 - 25ec: e8 1b sub r30, r24 - 25ee: f9 0b sbc r31, r25 - 25f0: cf 01 movw r24, r30 - 25f2: fe 01 movw r30, r28 - 25f4: ee 0f add r30, r30 - 25f6: ff 1f adc r31, r31 - 25f8: ee 0f add r30, r30 - 25fa: ff 1f adc r31, r31 - 25fc: ee 0f add r30, r30 - 25fe: ff 1f adc r31, r31 - 2600: e0 5c subi r30, 0xC0 ; 192 - 2602: fe 4d sbci r31, 0xDE ; 222 - 2604: 12 86 std Z+10, r1 ; 0x0a - 2606: 13 86 std Z+11, r1 ; 0x0b - 2608: 88 15 cp r24, r8 - 260a: 99 05 cpc r25, r9 - 260c: 78 f4 brcc .+30 ; 0x262c - 260e: d8 01 movw r26, r16 - 2610: 8c 91 ld r24, X - 2612: 84 60 ori r24, 0x04 ; 4 - 2614: 8c 93 st X, r24 - 2616: b0 e4 ldi r27, 0x40 ; 64 - 2618: db 9e mul r13, r27 - 261a: c0 01 movw r24, r0 - 261c: 11 24 eor r1, r1 - 261e: 87 59 subi r24, 0x97 ; 151 - 2620: 9f 4d sbci r25, 0xDF ; 223 - 2622: 84 87 std Z+12, r24 ; 0x0c - 2624: 95 87 std Z+13, r25 ; 0x0d - 2626: 86 86 std Z+14, r8 ; 0x0e - 2628: 97 86 std Z+15, r9 ; 0x0f - 262a: 13 c0 rjmp .+38 ; 0x2652 - 262c: f8 01 movw r30, r16 - 262e: 41 81 ldd r20, Z+1 ; 0x01 - 2630: 52 81 ldd r21, Z+2 ; 0x02 - 2632: 25 81 ldd r18, Z+5 ; 0x05 - 2634: 36 81 ldd r19, Z+6 ; 0x06 - 2636: 24 0f add r18, r20 - 2638: 35 1f adc r19, r21 - 263a: cc 0f add r28, r28 - 263c: dd 1f adc r29, r29 - 263e: cc 0f add r28, r28 - 2640: dd 1f adc r29, r29 - 2642: cc 0f add r28, r28 - 2644: dd 1f adc r29, r29 - 2646: c0 5c subi r28, 0xC0 ; 192 - 2648: de 4d sbci r29, 0xDE ; 222 - 264a: 2c 87 std Y+12, r18 ; 0x0c - 264c: 3d 87 std Y+13, r19 ; 0x0d - 264e: 8e 87 std Y+14, r24 ; 0x0e - 2650: 9f 87 std Y+15, r25 ; 0x0f - 2652: f7 01 movw r30, r14 - 2654: 02 e0 ldi r16, 0x02 ; 2 - 2656: 06 93 lac Z, r16 - 2658: 13 c0 rjmp .+38 ; 0x2680 - 265a: d8 01 movw r26, r16 - 265c: 8c 91 ld r24, X - 265e: 80 ff sbrs r24, 0 - 2660: 0f c0 rjmp .+30 ; 0x2680 - 2662: 8e 7f andi r24, 0xFE ; 254 - 2664: 8c 93 st X, r24 - 2666: 17 96 adiw r26, 0x07 ; 7 - 2668: ed 91 ld r30, X+ - 266a: fc 91 ld r31, X - 266c: 18 97 sbiw r26, 0x08 ; 8 - 266e: 30 97 sbiw r30, 0x00 ; 0 - 2670: 39 f0 breq .+14 ; 0x2680 - 2672: 15 96 adiw r26, 0x05 ; 5 - 2674: 6d 91 ld r22, X+ - 2676: 7c 91 ld r23, X - 2678: 16 97 sbiw r26, 0x06 ; 6 - 267a: 4d 2d mov r20, r13 - 267c: 80 e0 ldi r24, 0x00 ; 0 - 267e: 09 95 icall - 2680: df 91 pop r29 - 2682: cf 91 pop r28 - 2684: 1f 91 pop r17 - 2686: 0f 91 pop r16 - 2688: ff 90 pop r15 - 268a: ef 90 pop r14 - 268c: df 90 pop r13 - 268e: bf 90 pop r11 - 2690: af 90 pop r10 - 2692: 9f 90 pop r9 - 2694: 8f 90 pop r8 - 2696: 08 95 ret + 2462: cc 0f add r28, r28 + 2464: dd 1f adc r29, r29 + 2466: cc 0f add r28, r28 + 2468: dd 1f adc r29, r29 + 246a: cc 0f add r28, r28 + 246c: dd 1f adc r29, r29 + 246e: c0 5c subi r28, 0xC0 ; 192 + 2470: de 4d sbci r29, 0xDE ; 222 + 2472: 1e 86 std Y+14, r1 ; 0x0e + 2474: 1f 86 std Y+15, r1 ; 0x0f + 2476: 2a 87 std Y+10, r18 ; 0x0a + 2478: 3b 87 std Y+11, r19 ; 0x0b + 247a: 11 96 adiw r26, 0x01 ; 1 + 247c: 2d 91 ld r18, X+ + 247e: 3c 91 ld r19, X + 2480: 12 97 sbiw r26, 0x02 ; 2 + 2482: 15 96 adiw r26, 0x05 ; 5 + 2484: 8d 91 ld r24, X+ + 2486: 9c 91 ld r25, X + 2488: 16 97 sbiw r26, 0x06 ; 6 + 248a: 82 0f add r24, r18 + 248c: 93 1f adc r25, r19 + 248e: 8c 87 std Y+12, r24 ; 0x0c + 2490: 9d 87 std Y+13, r25 ; 0x0d + 2492: f7 01 movw r30, r14 + 2494: 02 e0 ldi r16, 0x02 ; 2 + 2496: 06 93 lac Z, r16 + 2498: ca c0 rjmp .+404 ; 0x262e + 249a: d8 01 movw r26, r16 + 249c: 8c 91 ld r24, X + 249e: 81 ff sbrs r24, 1 + 24a0: b3 c0 rjmp .+358 ; 0x2608 + 24a2: 8d 7f andi r24, 0xFD ; 253 + 24a4: 8c 93 st X, r24 + 24a6: cc 0f add r28, r28 + 24a8: dd 1f adc r29, r29 + 24aa: cc 0f add r28, r28 + 24ac: dd 1f adc r29, r29 + 24ae: cc 0f add r28, r28 + 24b0: dd 1f adc r29, r29 + 24b2: c0 5c subi r28, 0xC0 ; 192 + 24b4: de 4d sbci r29, 0xDE ; 222 + 24b6: 1e 86 std Y+14, r1 ; 0x0e + 24b8: 1f 86 std Y+15, r1 ; 0x0f + 24ba: 1a 86 std Y+10, r1 ; 0x0a + 24bc: 1b 86 std Y+11, r1 ; 0x0b + 24be: f7 01 movw r30, r14 + 24c0: 02 e0 ldi r16, 0x02 ; 2 + 24c2: 06 93 lac Z, r16 + 24c4: b4 c0 rjmp .+360 ; 0x262e + 24c6: fe 01 movw r30, r28 + 24c8: ee 0f add r30, r30 + 24ca: ff 1f adc r31, r31 + 24cc: ee 0f add r30, r30 + 24ce: ff 1f adc r31, r31 + 24d0: ee 0f add r30, r30 + 24d2: ff 1f adc r31, r31 + 24d4: e0 5c subi r30, 0xC0 ; 192 + 24d6: fe 4d sbci r31, 0xDE ; 222 + 24d8: a2 84 ldd r10, Z+10 ; 0x0a + 24da: b3 84 ldd r11, Z+11 ; 0x0b + 24dc: d8 01 movw r26, r16 + 24de: 8c 91 ld r24, X + 24e0: 82 ff sbrs r24, 2 + 24e2: 19 c0 rjmp .+50 ; 0x2516 + 24e4: 11 96 adiw r26, 0x01 ; 1 + 24e6: ed 91 ld r30, X+ + 24e8: fc 91 ld r31, X + 24ea: 12 97 sbiw r26, 0x02 ; 2 + 24ec: 15 96 adiw r26, 0x05 ; 5 + 24ee: 2d 91 ld r18, X+ + 24f0: 3c 91 ld r19, X + 24f2: 16 97 sbiw r26, 0x06 ; 6 + 24f4: 13 96 adiw r26, 0x03 ; 3 + 24f6: 8d 91 ld r24, X+ + 24f8: 9c 91 ld r25, X + 24fa: 14 97 sbiw r26, 0x04 ; 4 + 24fc: b4 01 movw r22, r8 + 24fe: e7 d4 rcall .+2510 ; 0x2ece <__udivmodhi4> + 2500: b0 e4 ldi r27, 0x40 ; 64 + 2502: db 9e mul r13, r27 + 2504: b0 01 movw r22, r0 + 2506: 11 24 eor r1, r1 + 2508: 67 59 subi r22, 0x97 ; 151 + 250a: 7f 4d sbci r23, 0xDF ; 223 + 250c: ac 01 movw r20, r24 + 250e: cf 01 movw r24, r30 + 2510: 82 0f add r24, r18 + 2512: 93 1f adc r25, r19 + 2514: 09 d5 rcall .+2578 ; 0x2f28 + 2516: f8 01 movw r30, r16 + 2518: 25 81 ldd r18, Z+5 ; 0x05 + 251a: 36 81 ldd r19, Z+6 ; 0x06 + 251c: 2a 0d add r18, r10 + 251e: 3b 1d adc r19, r11 + 2520: 25 83 std Z+5, r18 ; 0x05 + 2522: 36 83 std Z+6, r19 ; 0x06 + 2524: 83 81 ldd r24, Z+3 ; 0x03 + 2526: 94 81 ldd r25, Z+4 ; 0x04 + 2528: 82 17 cp r24, r18 + 252a: 93 07 cpc r25, r19 + 252c: 68 f4 brcc .+26 ; 0x2548 + 252e: 85 83 std Z+5, r24 ; 0x05 + 2530: 96 83 std Z+6, r25 ; 0x06 + 2532: cc 0f add r28, r28 + 2534: dd 1f adc r29, r29 + 2536: cc 0f add r28, r28 + 2538: dd 1f adc r29, r29 + 253a: cc 0f add r28, r28 + 253c: dd 1f adc r29, r29 + 253e: c0 5c subi r28, 0xC0 ; 192 + 2540: de 4d sbci r29, 0xDE ; 222 + 2542: 8e 85 ldd r24, Y+14 ; 0x0e + 2544: 9f 85 ldd r25, Y+15 ; 0x0f + 2546: 60 c0 rjmp .+192 ; 0x2608 + 2548: fe 01 movw r30, r28 + 254a: ee 0f add r30, r30 + 254c: ff 1f adc r31, r31 + 254e: ee 0f add r30, r30 + 2550: ff 1f adc r31, r31 + 2552: ee 0f add r30, r30 + 2554: ff 1f adc r31, r31 + 2556: e0 5c subi r30, 0xC0 ; 192 + 2558: fe 4d sbci r31, 0xDE ; 222 + 255a: 46 85 ldd r20, Z+14 ; 0x0e + 255c: 57 85 ldd r21, Z+15 ; 0x0f + 255e: 4a 15 cp r20, r10 + 2560: 5b 05 cpc r21, r11 + 2562: 09 f0 breq .+2 ; 0x2566 + 2564: 51 c0 rjmp .+162 ; 0x2608 + 2566: 28 17 cp r18, r24 + 2568: 39 07 cpc r19, r25 + 256a: 09 f4 brne .+2 ; 0x256e + 256c: 4d c0 rjmp .+154 ; 0x2608 + 256e: ac 01 movw r20, r24 + 2570: 42 1b sub r20, r18 + 2572: 53 0b sbc r21, r19 + 2574: 9a 01 movw r18, r20 + 2576: 21 15 cp r18, r1 + 2578: 54 e0 ldi r21, 0x04 ; 4 + 257a: 35 07 cpc r19, r21 + 257c: 50 f0 brcs .+20 ; 0x2592 + 257e: 2f ef ldi r18, 0xFF ; 255 + 2580: 33 e0 ldi r19, 0x03 ; 3 + 2582: c9 01 movw r24, r18 + 2584: b4 01 movw r22, r8 + 2586: a3 d4 rcall .+2374 ; 0x2ece <__udivmodhi4> + 2588: d9 01 movw r26, r18 + 258a: a8 1b sub r26, r24 + 258c: b9 0b sbc r27, r25 + 258e: cd 01 movw r24, r26 + 2590: 07 c0 rjmp .+14 ; 0x25a0 + 2592: c9 01 movw r24, r18 + 2594: b4 01 movw r22, r8 + 2596: 9b d4 rcall .+2358 ; 0x2ece <__udivmodhi4> + 2598: f9 01 movw r30, r18 + 259a: e8 1b sub r30, r24 + 259c: f9 0b sbc r31, r25 + 259e: cf 01 movw r24, r30 + 25a0: fe 01 movw r30, r28 + 25a2: ee 0f add r30, r30 + 25a4: ff 1f adc r31, r31 + 25a6: ee 0f add r30, r30 + 25a8: ff 1f adc r31, r31 + 25aa: ee 0f add r30, r30 + 25ac: ff 1f adc r31, r31 + 25ae: e0 5c subi r30, 0xC0 ; 192 + 25b0: fe 4d sbci r31, 0xDE ; 222 + 25b2: 12 86 std Z+10, r1 ; 0x0a + 25b4: 13 86 std Z+11, r1 ; 0x0b + 25b6: 88 15 cp r24, r8 + 25b8: 99 05 cpc r25, r9 + 25ba: 78 f4 brcc .+30 ; 0x25da + 25bc: d8 01 movw r26, r16 + 25be: 8c 91 ld r24, X + 25c0: 84 60 ori r24, 0x04 ; 4 + 25c2: 8c 93 st X, r24 + 25c4: b0 e4 ldi r27, 0x40 ; 64 + 25c6: db 9e mul r13, r27 + 25c8: c0 01 movw r24, r0 + 25ca: 11 24 eor r1, r1 + 25cc: 87 59 subi r24, 0x97 ; 151 + 25ce: 9f 4d sbci r25, 0xDF ; 223 + 25d0: 84 87 std Z+12, r24 ; 0x0c + 25d2: 95 87 std Z+13, r25 ; 0x0d + 25d4: 86 86 std Z+14, r8 ; 0x0e + 25d6: 97 86 std Z+15, r9 ; 0x0f + 25d8: 13 c0 rjmp .+38 ; 0x2600 + 25da: f8 01 movw r30, r16 + 25dc: 41 81 ldd r20, Z+1 ; 0x01 + 25de: 52 81 ldd r21, Z+2 ; 0x02 + 25e0: 25 81 ldd r18, Z+5 ; 0x05 + 25e2: 36 81 ldd r19, Z+6 ; 0x06 + 25e4: 24 0f add r18, r20 + 25e6: 35 1f adc r19, r21 + 25e8: cc 0f add r28, r28 + 25ea: dd 1f adc r29, r29 + 25ec: cc 0f add r28, r28 + 25ee: dd 1f adc r29, r29 + 25f0: cc 0f add r28, r28 + 25f2: dd 1f adc r29, r29 + 25f4: c0 5c subi r28, 0xC0 ; 192 + 25f6: de 4d sbci r29, 0xDE ; 222 + 25f8: 2c 87 std Y+12, r18 ; 0x0c + 25fa: 3d 87 std Y+13, r19 ; 0x0d + 25fc: 8e 87 std Y+14, r24 ; 0x0e + 25fe: 9f 87 std Y+15, r25 ; 0x0f + 2600: f7 01 movw r30, r14 + 2602: 02 e0 ldi r16, 0x02 ; 2 + 2604: 06 93 lac Z, r16 + 2606: 13 c0 rjmp .+38 ; 0x262e + 2608: d8 01 movw r26, r16 + 260a: 8c 91 ld r24, X + 260c: 80 ff sbrs r24, 0 + 260e: 0f c0 rjmp .+30 ; 0x262e + 2610: 8e 7f andi r24, 0xFE ; 254 + 2612: 8c 93 st X, r24 + 2614: 17 96 adiw r26, 0x07 ; 7 + 2616: ed 91 ld r30, X+ + 2618: fc 91 ld r31, X + 261a: 18 97 sbiw r26, 0x08 ; 8 + 261c: 30 97 sbiw r30, 0x00 ; 0 + 261e: 39 f0 breq .+14 ; 0x262e + 2620: 15 96 adiw r26, 0x05 ; 5 + 2622: 6d 91 ld r22, X+ + 2624: 7c 91 ld r23, X + 2626: 16 97 sbiw r26, 0x06 ; 6 + 2628: 4d 2d mov r20, r13 + 262a: 80 e0 ldi r24, 0x00 ; 0 + 262c: 09 95 icall + 262e: df 91 pop r29 + 2630: cf 91 pop r28 + 2632: 1f 91 pop r17 + 2634: 0f 91 pop r16 + 2636: ff 90 pop r15 + 2638: ef 90 pop r14 + 263a: df 90 pop r13 + 263c: bf 90 pop r11 + 263e: af 90 pop r10 + 2640: 9f 90 pop r9 + 2642: 8f 90 pop r8 + 2644: 08 95 ret -00002698 : - 2698: cf 93 push r28 - 269a: cf b7 in r28, 0x3f ; 63 - 269c: f8 94 cli - 269e: 81 e0 ldi r24, 0x01 ; 1 - 26a0: 11 dd rcall .-1502 ; 0x20c4 - 26a2: ea ec ldi r30, 0xCA ; 202 - 26a4: f4 e0 ldi r31, 0x04 ; 4 - 26a6: 80 e4 ldi r24, 0x40 ; 64 - 26a8: 80 83 st Z, r24 - 26aa: 80 e2 ldi r24, 0x20 ; 32 - 26ac: 80 83 st Z, r24 - 26ae: e1 ec ldi r30, 0xC1 ; 193 - 26b0: f4 e0 ldi r31, 0x04 ; 4 - 26b2: 80 81 ld r24, Z - 26b4: 81 60 ori r24, 0x01 ; 1 - 26b6: 80 83 st Z, r24 - 26b8: a9 ec ldi r26, 0xC9 ; 201 - 26ba: b4 e0 ldi r27, 0x04 ; 4 - 26bc: 8c 91 ld r24, X - 26be: 82 60 ori r24, 0x02 ; 2 - 26c0: 8c 93 st X, r24 - 26c2: e8 ec ldi r30, 0xC8 ; 200 - 26c4: f4 e0 ldi r31, 0x04 ; 4 - 26c6: 80 81 ld r24, Z - 26c8: 80 64 ori r24, 0x40 ; 64 - 26ca: 80 83 st Z, r24 - 26cc: 8c 91 ld r24, X - 26ce: 81 60 ori r24, 0x01 ; 1 - 26d0: 8c 93 st X, r24 - 26d2: 80 81 ld r24, Z - 26d4: 80 68 ori r24, 0x80 ; 128 - 26d6: 80 83 st Z, r24 - 26d8: cf bf out 0x3f, r28 ; 63 - 26da: cf 91 pop r28 - 26dc: 08 95 ret +00002646 : + 2646: cf 93 push r28 + 2648: cf b7 in r28, 0x3f ; 63 + 264a: f8 94 cli + 264c: 81 e0 ldi r24, 0x01 ; 1 + 264e: 11 dd rcall .-1502 ; 0x2072 + 2650: ea ec ldi r30, 0xCA ; 202 + 2652: f4 e0 ldi r31, 0x04 ; 4 + 2654: 80 e4 ldi r24, 0x40 ; 64 + 2656: 80 83 st Z, r24 + 2658: 80 e2 ldi r24, 0x20 ; 32 + 265a: 80 83 st Z, r24 + 265c: e1 ec ldi r30, 0xC1 ; 193 + 265e: f4 e0 ldi r31, 0x04 ; 4 + 2660: 80 81 ld r24, Z + 2662: 81 60 ori r24, 0x01 ; 1 + 2664: 80 83 st Z, r24 + 2666: a9 ec ldi r26, 0xC9 ; 201 + 2668: b4 e0 ldi r27, 0x04 ; 4 + 266a: 8c 91 ld r24, X + 266c: 82 60 ori r24, 0x02 ; 2 + 266e: 8c 93 st X, r24 + 2670: e8 ec ldi r30, 0xC8 ; 200 + 2672: f4 e0 ldi r31, 0x04 ; 4 + 2674: 80 81 ld r24, Z + 2676: 80 64 ori r24, 0x40 ; 64 + 2678: 80 83 st Z, r24 + 267a: 8c 91 ld r24, X + 267c: 81 60 ori r24, 0x01 ; 1 + 267e: 8c 93 st X, r24 + 2680: 80 81 ld r24, Z + 2682: 80 68 ori r24, 0x80 ; 128 + 2684: 80 83 st Z, r24 + 2686: cf bf out 0x3f, r28 ; 63 + 2688: cf 91 pop r28 + 268a: 08 95 ret -000026de : - 26de: cf 93 push r28 - 26e0: df 93 push r29 - 26e2: c0 e6 ldi r28, 0x60 ; 96 - 26e4: d0 e0 ldi r29, 0x00 ; 0 - 26e6: 18 82 st Y, r1 - 26e8: 80 e3 ldi r24, 0x30 ; 48 - 26ea: 0e 94 ad 0a call 0x155a ; 0x155a - 26ee: e0 ec ldi r30, 0xC0 ; 192 - 26f0: f4 e0 ldi r31, 0x04 ; 4 - 26f2: 80 81 ld r24, Z - 26f4: 80 64 ori r24, 0x40 ; 64 - 26f6: 80 83 st Z, r24 - 26f8: 81 e0 ldi r24, 0x01 ; 1 - 26fa: 88 83 st Y, r24 - 26fc: cf b7 in r28, 0x3f ; 63 - 26fe: f8 94 cli - 2700: e0 e4 ldi r30, 0x40 ; 64 - 2702: f1 e2 ldi r31, 0x21 ; 33 - 2704: 11 86 std Z+9, r1 ; 0x09 - 2706: 11 8a std Z+17, r1 ; 0x11 - 2708: 11 8e std Z+25, r1 ; 0x19 - 270a: 11 a2 std Z+33, r1 ; 0x21 - 270c: e9 ee ldi r30, 0xE9 ; 233 - 270e: f0 e2 ldi r31, 0x20 ; 32 - 2710: 80 81 ld r24, Z - 2712: 8e 7f andi r24, 0xFE ; 254 - 2714: 80 83 st Z, r24 - 2716: e2 ef ldi r30, 0xF2 ; 242 - 2718: f0 e2 ldi r31, 0x20 ; 32 - 271a: 80 81 ld r24, Z - 271c: 8e 7f andi r24, 0xFE ; 254 - 271e: 80 83 st Z, r24 - 2720: 6a e1 ldi r22, 0x1A ; 26 - 2722: 70 e0 ldi r23, 0x00 ; 0 - 2724: 82 e0 ldi r24, 0x02 ; 2 - 2726: c4 dc rcall .-1656 ; 0x20b0 - 2728: 8f 3f cpi r24, 0xFF ; 255 - 272a: 19 f0 breq .+6 ; 0x2732 - 272c: 80 93 fa 04 sts 0x04FA, r24 ; 0x8004fa <__TEXT_REGION_LENGTH__+0x7004fa> - 2730: 03 c0 rjmp .+6 ; 0x2738 - 2732: 8f e1 ldi r24, 0x1F ; 31 - 2734: 80 93 fa 04 sts 0x04FA, r24 ; 0x8004fa <__TEXT_REGION_LENGTH__+0x7004fa> - 2738: 6b e1 ldi r22, 0x1B ; 27 - 273a: 70 e0 ldi r23, 0x00 ; 0 - 273c: 82 e0 ldi r24, 0x02 ; 2 - 273e: b8 dc rcall .-1680 ; 0x20b0 - 2740: 8f 3f cpi r24, 0xFF ; 255 - 2742: 19 f0 breq .+6 ; 0x274a - 2744: 80 93 fb 04 sts 0x04FB, r24 ; 0x8004fb <__TEXT_REGION_LENGTH__+0x7004fb> - 2748: 03 c0 rjmp .+6 ; 0x2750 - 274a: 8f e1 ldi r24, 0x1F ; 31 - 274c: 80 93 fb 04 sts 0x04FB, r24 ; 0x8004fb <__TEXT_REGION_LENGTH__+0x7004fb> - 2750: e0 ec ldi r30, 0xC0 ; 192 - 2752: f4 e0 ldi r31, 0x04 ; 4 - 2754: 80 81 ld r24, Z - 2756: 81 60 ori r24, 0x01 ; 1 - 2758: 80 83 st Z, r24 - 275a: 80 81 ld r24, Z - 275c: 80 68 ori r24, 0x80 ; 128 - 275e: 80 83 st Z, r24 - 2760: 80 81 ld r24, Z - 2762: 80 61 ori r24, 0x10 ; 16 - 2764: 80 83 st Z, r24 - 2766: 88 e4 ldi r24, 0x48 ; 72 - 2768: 91 e2 ldi r25, 0x21 ; 33 - 276a: 86 83 std Z+6, r24 ; 0x06 - 276c: 97 83 std Z+7, r25 ; 0x07 - 276e: 80 81 ld r24, Z - 2770: 80 62 ori r24, 0x20 ; 32 - 2772: 80 83 st Z, r24 - 2774: 8f ef ldi r24, 0xFF ; 255 - 2776: 80 93 c5 04 sts 0x04C5, r24 ; 0x8004c5 <__TEXT_REGION_LENGTH__+0x7004c5> - 277a: e8 ec ldi r30, 0xC8 ; 200 - 277c: f4 e0 ldi r31, 0x04 ; 4 - 277e: 80 81 ld r24, Z - 2780: 82 60 ori r24, 0x02 ; 2 - 2782: 80 83 st Z, r24 - 2784: 10 92 6c 21 sts 0x216C, r1 ; 0x80216c - 2788: 80 91 cf 2b lds r24, 0x2BCF ; 0x802bcf - 278c: 8f 3f cpi r24, 0xFF ; 255 - 278e: 09 f4 brne .+2 ; 0x2792 - 2790: ff cf rjmp .-2 ; 0x2790 - 2792: 9f b7 in r25, 0x3f ; 63 - 2794: f8 94 cli - 2796: ea ec ldi r30, 0xCA ; 202 - 2798: fb e2 ldi r31, 0x2B ; 43 - 279a: 85 81 ldd r24, Z+5 ; 0x05 - 279c: 8f 5f subi r24, 0xFF ; 255 - 279e: 85 83 std Z+5, r24 ; 0x05 - 27a0: 9f bf out 0x3f, r25 ; 63 - 27a2: 7a df rcall .-268 ; 0x2698 - 27a4: cf bf out 0x3f, r28 ; 63 - 27a6: df 91 pop r29 - 27a8: cf 91 pop r28 - 27aa: 08 95 ret +0000268c : + 268c: cf 93 push r28 + 268e: df 93 push r29 + 2690: c0 e6 ldi r28, 0x60 ; 96 + 2692: d0 e0 ldi r29, 0x00 ; 0 + 2694: 18 82 st Y, r1 + 2696: 80 e3 ldi r24, 0x30 ; 48 + 2698: 0e 94 84 0a call 0x1508 ; 0x1508 + 269c: e0 ec ldi r30, 0xC0 ; 192 + 269e: f4 e0 ldi r31, 0x04 ; 4 + 26a0: 80 81 ld r24, Z + 26a2: 80 64 ori r24, 0x40 ; 64 + 26a4: 80 83 st Z, r24 + 26a6: 81 e0 ldi r24, 0x01 ; 1 + 26a8: 88 83 st Y, r24 + 26aa: cf b7 in r28, 0x3f ; 63 + 26ac: f8 94 cli + 26ae: e0 e4 ldi r30, 0x40 ; 64 + 26b0: f1 e2 ldi r31, 0x21 ; 33 + 26b2: 11 86 std Z+9, r1 ; 0x09 + 26b4: 11 8a std Z+17, r1 ; 0x11 + 26b6: 11 8e std Z+25, r1 ; 0x19 + 26b8: 11 a2 std Z+33, r1 ; 0x21 + 26ba: e9 ee ldi r30, 0xE9 ; 233 + 26bc: f0 e2 ldi r31, 0x20 ; 32 + 26be: 80 81 ld r24, Z + 26c0: 8e 7f andi r24, 0xFE ; 254 + 26c2: 80 83 st Z, r24 + 26c4: e2 ef ldi r30, 0xF2 ; 242 + 26c6: f0 e2 ldi r31, 0x20 ; 32 + 26c8: 80 81 ld r24, Z + 26ca: 8e 7f andi r24, 0xFE ; 254 + 26cc: 80 83 st Z, r24 + 26ce: 6a e1 ldi r22, 0x1A ; 26 + 26d0: 70 e0 ldi r23, 0x00 ; 0 + 26d2: 82 e0 ldi r24, 0x02 ; 2 + 26d4: c4 dc rcall .-1656 ; 0x205e + 26d6: 8f 3f cpi r24, 0xFF ; 255 + 26d8: 19 f0 breq .+6 ; 0x26e0 + 26da: 80 93 fa 04 sts 0x04FA, r24 ; 0x8004fa <__TEXT_REGION_LENGTH__+0x7004fa> + 26de: 03 c0 rjmp .+6 ; 0x26e6 + 26e0: 8f e1 ldi r24, 0x1F ; 31 + 26e2: 80 93 fa 04 sts 0x04FA, r24 ; 0x8004fa <__TEXT_REGION_LENGTH__+0x7004fa> + 26e6: 6b e1 ldi r22, 0x1B ; 27 + 26e8: 70 e0 ldi r23, 0x00 ; 0 + 26ea: 82 e0 ldi r24, 0x02 ; 2 + 26ec: b8 dc rcall .-1680 ; 0x205e + 26ee: 8f 3f cpi r24, 0xFF ; 255 + 26f0: 19 f0 breq .+6 ; 0x26f8 + 26f2: 80 93 fb 04 sts 0x04FB, r24 ; 0x8004fb <__TEXT_REGION_LENGTH__+0x7004fb> + 26f6: 03 c0 rjmp .+6 ; 0x26fe + 26f8: 8f e1 ldi r24, 0x1F ; 31 + 26fa: 80 93 fb 04 sts 0x04FB, r24 ; 0x8004fb <__TEXT_REGION_LENGTH__+0x7004fb> + 26fe: e0 ec ldi r30, 0xC0 ; 192 + 2700: f4 e0 ldi r31, 0x04 ; 4 + 2702: 80 81 ld r24, Z + 2704: 81 60 ori r24, 0x01 ; 1 + 2706: 80 83 st Z, r24 + 2708: 80 81 ld r24, Z + 270a: 80 68 ori r24, 0x80 ; 128 + 270c: 80 83 st Z, r24 + 270e: 80 81 ld r24, Z + 2710: 80 61 ori r24, 0x10 ; 16 + 2712: 80 83 st Z, r24 + 2714: 88 e4 ldi r24, 0x48 ; 72 + 2716: 91 e2 ldi r25, 0x21 ; 33 + 2718: 86 83 std Z+6, r24 ; 0x06 + 271a: 97 83 std Z+7, r25 ; 0x07 + 271c: 80 81 ld r24, Z + 271e: 80 62 ori r24, 0x20 ; 32 + 2720: 80 83 st Z, r24 + 2722: 8f ef ldi r24, 0xFF ; 255 + 2724: 80 93 c5 04 sts 0x04C5, r24 ; 0x8004c5 <__TEXT_REGION_LENGTH__+0x7004c5> + 2728: e8 ec ldi r30, 0xC8 ; 200 + 272a: f4 e0 ldi r31, 0x04 ; 4 + 272c: 80 81 ld r24, Z + 272e: 82 60 ori r24, 0x02 ; 2 + 2730: 80 83 st Z, r24 + 2732: 10 92 6c 21 sts 0x216C, r1 ; 0x80216c + 2736: 80 91 cf 2b lds r24, 0x2BCF ; 0x802bcf + 273a: 8f 3f cpi r24, 0xFF ; 255 + 273c: 09 f4 brne .+2 ; 0x2740 + 273e: ff cf rjmp .-2 ; 0x273e + 2740: 9f b7 in r25, 0x3f ; 63 + 2742: f8 94 cli + 2744: ea ec ldi r30, 0xCA ; 202 + 2746: fb e2 ldi r31, 0x2B ; 43 + 2748: 85 81 ldd r24, Z+5 ; 0x05 + 274a: 8f 5f subi r24, 0xFF ; 255 + 274c: 85 83 std Z+5, r24 ; 0x05 + 274e: 9f bf out 0x3f, r25 ; 63 + 2750: 7a df rcall .-268 ; 0x2646 + 2752: cf bf out 0x3f, r28 ; 63 + 2754: df 91 pop r29 + 2756: cf 91 pop r28 + 2758: 08 95 ret -000027ac : - 27ac: 80 93 c3 04 sts 0x04C3, r24 ; 0x8004c3 <__TEXT_REGION_LENGTH__+0x7004c3> - 27b0: 08 95 ret +0000275a : + 275a: 80 93 c3 04 sts 0x04C3, r24 ; 0x8004c3 <__TEXT_REGION_LENGTH__+0x7004c3> + 275e: 08 95 ret -000027b2 : - 27b2: 80 91 c3 04 lds r24, 0x04C3 ; 0x8004c3 <__TEXT_REGION_LENGTH__+0x7004c3> - 27b6: 08 95 ret +00002760 : + 2760: 80 91 c3 04 lds r24, 0x04C3 ; 0x8004c3 <__TEXT_REGION_LENGTH__+0x7004c3> + 2764: 08 95 ret -000027b8 : - 27b8: ea e9 ldi r30, 0x9A ; 154 - 27ba: f3 e2 ldi r31, 0x23 ; 35 - 27bc: 80 87 std Z+8, r24 ; 0x08 - 27be: 91 87 std Z+9, r25 ; 0x09 - 27c0: 62 87 std Z+10, r22 ; 0x0a - 27c2: 73 87 std Z+11, r23 ; 0x0b - 27c4: 08 95 ret +00002766 : + 2766: ea e9 ldi r30, 0x9A ; 154 + 2768: f3 e2 ldi r31, 0x23 ; 35 + 276a: 80 87 std Z+8, r24 ; 0x08 + 276c: 91 87 std Z+9, r25 ; 0x09 + 276e: 62 87 std Z+10, r22 ; 0x0a + 2770: 73 87 std Z+11, r23 ; 0x0b + 2772: 08 95 ret -000027c6 : - 27c6: 28 2f mov r18, r24 - 27c8: 2f 70 andi r18, 0x0F ; 15 - 27ca: 30 e0 ldi r19, 0x00 ; 0 - 27cc: 22 0f add r18, r18 - 27ce: 33 1f adc r19, r19 - 27d0: 08 2e mov r0, r24 - 27d2: 00 0c add r0, r0 - 27d4: 99 0b sbc r25, r25 - 27d6: 88 27 eor r24, r24 - 27d8: 99 0f add r25, r25 - 27da: 88 1f adc r24, r24 - 27dc: 99 27 eor r25, r25 - 27de: 82 0f add r24, r18 - 27e0: 93 1f adc r25, r19 - 27e2: fc 01 movw r30, r24 - 27e4: ee 0f add r30, r30 - 27e6: ff 1f adc r31, r31 - 27e8: ee 0f add r30, r30 - 27ea: ff 1f adc r31, r31 - 27ec: ee 0f add r30, r30 - 27ee: ff 1f adc r31, r31 - 27f0: e0 5c subi r30, 0xC0 ; 192 - 27f2: fe 4d sbci r31, 0xDE ; 222 - 27f4: 21 85 ldd r18, Z+9 ; 0x09 - 27f6: 20 7c andi r18, 0xC0 ; 192 - 27f8: 09 f0 breq .+2 ; 0x27fc - 27fa: 58 c0 rjmp .+176 ; 0x28ac - 27fc: 63 70 andi r22, 0x03 ; 3 - 27fe: 61 30 cpi r22, 0x01 ; 1 - 2800: 11 f0 breq .+4 ; 0x2806 - 2802: 18 f4 brcc .+6 ; 0x280a - 2804: 04 c0 rjmp .+8 ; 0x280e - 2806: 20 ec ldi r18, 0xC0 ; 192 - 2808: 03 c0 rjmp .+6 ; 0x2810 - 280a: 20 e8 ldi r18, 0x80 ; 128 - 280c: 01 c0 rjmp .+2 ; 0x2810 - 280e: 20 e4 ldi r18, 0x40 ; 64 - 2810: 40 38 cpi r20, 0x80 ; 128 - 2812: 51 05 cpc r21, r1 - 2814: e9 f0 breq .+58 ; 0x2850 - 2816: 50 f4 brcc .+20 ; 0x282c - 2818: 40 32 cpi r20, 0x20 ; 32 - 281a: 51 05 cpc r21, r1 - 281c: a9 f0 breq .+42 ; 0x2848 - 281e: 40 34 cpi r20, 0x40 ; 64 - 2820: 51 05 cpc r21, r1 - 2822: a1 f0 breq .+40 ; 0x284c - 2824: 40 31 cpi r20, 0x10 ; 16 - 2826: 51 05 cpc r21, r1 - 2828: d9 f4 brne .+54 ; 0x2860 - 282a: 0c c0 rjmp .+24 ; 0x2844 - 282c: 41 15 cp r20, r1 - 282e: 32 e0 ldi r19, 0x02 ; 2 - 2830: 53 07 cpc r21, r19 - 2832: 91 f0 breq .+36 ; 0x2858 - 2834: 4f 3f cpi r20, 0xFF ; 255 - 2836: 33 e0 ldi r19, 0x03 ; 3 - 2838: 53 07 cpc r21, r19 - 283a: 81 f0 breq .+32 ; 0x285c - 283c: 41 15 cp r20, r1 - 283e: 51 40 sbci r21, 0x01 ; 1 - 2840: 79 f4 brne .+30 ; 0x2860 - 2842: 08 c0 rjmp .+16 ; 0x2854 - 2844: 41 e0 ldi r20, 0x01 ; 1 - 2846: 0d c0 rjmp .+26 ; 0x2862 - 2848: 42 e0 ldi r20, 0x02 ; 2 - 284a: 0b c0 rjmp .+22 ; 0x2862 - 284c: 43 e0 ldi r20, 0x03 ; 3 - 284e: 09 c0 rjmp .+18 ; 0x2862 - 2850: 44 e0 ldi r20, 0x04 ; 4 - 2852: 07 c0 rjmp .+14 ; 0x2862 - 2854: 45 e0 ldi r20, 0x05 ; 5 - 2856: 05 c0 rjmp .+10 ; 0x2862 - 2858: 46 e0 ldi r20, 0x06 ; 6 - 285a: 03 c0 rjmp .+6 ; 0x2862 - 285c: 47 e0 ldi r20, 0x07 ; 7 - 285e: 01 c0 rjmp .+2 ; 0x2862 - 2860: 40 e0 ldi r20, 0x00 ; 0 - 2862: fc 01 movw r30, r24 +00002774 : + 2774: 28 2f mov r18, r24 + 2776: 2f 70 andi r18, 0x0F ; 15 + 2778: 30 e0 ldi r19, 0x00 ; 0 + 277a: 22 0f add r18, r18 + 277c: 33 1f adc r19, r19 + 277e: 08 2e mov r0, r24 + 2780: 00 0c add r0, r0 + 2782: 99 0b sbc r25, r25 + 2784: 88 27 eor r24, r24 + 2786: 99 0f add r25, r25 + 2788: 88 1f adc r24, r24 + 278a: 99 27 eor r25, r25 + 278c: 82 0f add r24, r18 + 278e: 93 1f adc r25, r19 + 2790: fc 01 movw r30, r24 + 2792: ee 0f add r30, r30 + 2794: ff 1f adc r31, r31 + 2796: ee 0f add r30, r30 + 2798: ff 1f adc r31, r31 + 279a: ee 0f add r30, r30 + 279c: ff 1f adc r31, r31 + 279e: e0 5c subi r30, 0xC0 ; 192 + 27a0: fe 4d sbci r31, 0xDE ; 222 + 27a2: 21 85 ldd r18, Z+9 ; 0x09 + 27a4: 20 7c andi r18, 0xC0 ; 192 + 27a6: 09 f0 breq .+2 ; 0x27aa + 27a8: 58 c0 rjmp .+176 ; 0x285a + 27aa: 63 70 andi r22, 0x03 ; 3 + 27ac: 61 30 cpi r22, 0x01 ; 1 + 27ae: 11 f0 breq .+4 ; 0x27b4 + 27b0: 18 f4 brcc .+6 ; 0x27b8 + 27b2: 04 c0 rjmp .+8 ; 0x27bc + 27b4: 20 ec ldi r18, 0xC0 ; 192 + 27b6: 03 c0 rjmp .+6 ; 0x27be + 27b8: 20 e8 ldi r18, 0x80 ; 128 + 27ba: 01 c0 rjmp .+2 ; 0x27be + 27bc: 20 e4 ldi r18, 0x40 ; 64 + 27be: 40 38 cpi r20, 0x80 ; 128 + 27c0: 51 05 cpc r21, r1 + 27c2: e9 f0 breq .+58 ; 0x27fe + 27c4: 50 f4 brcc .+20 ; 0x27da + 27c6: 40 32 cpi r20, 0x20 ; 32 + 27c8: 51 05 cpc r21, r1 + 27ca: a9 f0 breq .+42 ; 0x27f6 + 27cc: 40 34 cpi r20, 0x40 ; 64 + 27ce: 51 05 cpc r21, r1 + 27d0: a1 f0 breq .+40 ; 0x27fa + 27d2: 40 31 cpi r20, 0x10 ; 16 + 27d4: 51 05 cpc r21, r1 + 27d6: d9 f4 brne .+54 ; 0x280e + 27d8: 0c c0 rjmp .+24 ; 0x27f2 + 27da: 41 15 cp r20, r1 + 27dc: 32 e0 ldi r19, 0x02 ; 2 + 27de: 53 07 cpc r21, r19 + 27e0: 91 f0 breq .+36 ; 0x2806 + 27e2: 4f 3f cpi r20, 0xFF ; 255 + 27e4: 33 e0 ldi r19, 0x03 ; 3 + 27e6: 53 07 cpc r21, r19 + 27e8: 81 f0 breq .+32 ; 0x280a + 27ea: 41 15 cp r20, r1 + 27ec: 51 40 sbci r21, 0x01 ; 1 + 27ee: 79 f4 brne .+30 ; 0x280e + 27f0: 08 c0 rjmp .+16 ; 0x2802 + 27f2: 41 e0 ldi r20, 0x01 ; 1 + 27f4: 0d c0 rjmp .+26 ; 0x2810 + 27f6: 42 e0 ldi r20, 0x02 ; 2 + 27f8: 0b c0 rjmp .+22 ; 0x2810 + 27fa: 43 e0 ldi r20, 0x03 ; 3 + 27fc: 09 c0 rjmp .+18 ; 0x2810 + 27fe: 44 e0 ldi r20, 0x04 ; 4 + 2800: 07 c0 rjmp .+14 ; 0x2810 + 2802: 45 e0 ldi r20, 0x05 ; 5 + 2804: 05 c0 rjmp .+10 ; 0x2810 + 2806: 46 e0 ldi r20, 0x06 ; 6 + 2808: 03 c0 rjmp .+6 ; 0x2810 + 280a: 47 e0 ldi r20, 0x07 ; 7 + 280c: 01 c0 rjmp .+2 ; 0x2810 + 280e: 40 e0 ldi r20, 0x00 ; 0 + 2810: fc 01 movw r30, r24 + 2812: ee 0f add r30, r30 + 2814: ff 1f adc r31, r31 + 2816: ee 0f add r30, r30 + 2818: ff 1f adc r31, r31 + 281a: ee 0f add r30, r30 + 281c: ff 1f adc r31, r31 + 281e: e0 5c subi r30, 0xC0 ; 192 + 2820: fe 4d sbci r31, 0xDE ; 222 + 2822: 11 86 std Z+9, r1 ; 0x09 + 2824: dc 01 movw r26, r24 + 2826: aa 0f add r26, r26 + 2828: bb 1f adc r27, r27 + 282a: aa 0f add r26, r26 + 282c: bb 1f adc r27, r27 + 282e: aa 0f add r26, r26 + 2830: bb 1f adc r27, r27 + 2832: a8 5b subi r26, 0xB8 ; 184 + 2834: be 4d sbci r27, 0xDE ; 222 + 2836: 36 e0 ldi r19, 0x06 ; 6 + 2838: 3c 93 st X, r19 + 283a: 24 2b or r18, r20 + 283c: 21 87 std Z+9, r18 ; 0x09 + 283e: 88 0f add r24, r24 + 2840: 99 1f adc r25, r25 + 2842: 88 0f add r24, r24 + 2844: 99 1f adc r25, r25 + 2846: 88 0f add r24, r24 + 2848: 99 1f adc r25, r25 + 284a: fc 01 movw r30, r24 + 284c: e0 5c subi r30, 0xC0 ; 192 + 284e: fe 4d sbci r31, 0xDE ; 222 + 2850: 81 85 ldd r24, Z+9 ; 0x09 + 2852: 80 62 ori r24, 0x20 ; 32 + 2854: 81 87 std Z+9, r24 ; 0x09 + 2856: 81 e0 ldi r24, 0x01 ; 1 + 2858: 08 95 ret + 285a: 80 e0 ldi r24, 0x00 ; 0 + 285c: 08 95 ret + +0000285e : + 285e: e8 2f mov r30, r24 + 2860: ef 70 andi r30, 0x0F ; 15 + 2862: f0 e0 ldi r31, 0x00 ; 0 2864: ee 0f add r30, r30 2866: ff 1f adc r31, r31 - 2868: ee 0f add r30, r30 - 286a: ff 1f adc r31, r31 - 286c: ee 0f add r30, r30 - 286e: ff 1f adc r31, r31 - 2870: e0 5c subi r30, 0xC0 ; 192 - 2872: fe 4d sbci r31, 0xDE ; 222 - 2874: 11 86 std Z+9, r1 ; 0x09 - 2876: dc 01 movw r26, r24 - 2878: aa 0f add r26, r26 - 287a: bb 1f adc r27, r27 - 287c: aa 0f add r26, r26 - 287e: bb 1f adc r27, r27 - 2880: aa 0f add r26, r26 - 2882: bb 1f adc r27, r27 - 2884: a8 5b subi r26, 0xB8 ; 184 - 2886: be 4d sbci r27, 0xDE ; 222 - 2888: 36 e0 ldi r19, 0x06 ; 6 - 288a: 3c 93 st X, r19 - 288c: 24 2b or r18, r20 - 288e: 21 87 std Z+9, r18 ; 0x09 - 2890: 88 0f add r24, r24 - 2892: 99 1f adc r25, r25 - 2894: 88 0f add r24, r24 - 2896: 99 1f adc r25, r25 - 2898: 88 0f add r24, r24 - 289a: 99 1f adc r25, r25 - 289c: fc 01 movw r30, r24 - 289e: e0 5c subi r30, 0xC0 ; 192 - 28a0: fe 4d sbci r31, 0xDE ; 222 - 28a2: 81 85 ldd r24, Z+9 ; 0x09 - 28a4: 80 62 ori r24, 0x20 ; 32 - 28a6: 81 87 std Z+9, r24 ; 0x09 - 28a8: 81 e0 ldi r24, 0x01 ; 1 - 28aa: 08 95 ret - 28ac: 80 e0 ldi r24, 0x00 ; 0 - 28ae: 08 95 ret + 2868: 08 2e mov r0, r24 + 286a: 00 0c add r0, r0 + 286c: 99 0b sbc r25, r25 + 286e: 88 27 eor r24, r24 + 2870: 99 0f add r25, r25 + 2872: 88 1f adc r24, r24 + 2874: 99 27 eor r25, r25 + 2876: e8 0f add r30, r24 + 2878: f9 1f adc r31, r25 + 287a: ee 0f add r30, r30 + 287c: ff 1f adc r31, r31 + 287e: ee 0f add r30, r30 + 2880: ff 1f adc r31, r31 + 2882: ee 0f add r30, r30 + 2884: ff 1f adc r31, r31 + 2886: e0 5c subi r30, 0xC0 ; 192 + 2888: fe 4d sbci r31, 0xDE ; 222 + 288a: 81 85 ldd r24, Z+9 ; 0x09 + 288c: 82 fb bst r24, 2 + 288e: 88 27 eor r24, r24 + 2890: 80 f9 bld r24, 0 + 2892: 08 95 ret -000028b0 : - 28b0: e8 2f mov r30, r24 - 28b2: ef 70 andi r30, 0x0F ; 15 - 28b4: f0 e0 ldi r31, 0x00 ; 0 +00002894 : + 2894: 28 2f mov r18, r24 + 2896: 2f 70 andi r18, 0x0F ; 15 + 2898: 30 e0 ldi r19, 0x00 ; 0 + 289a: a9 01 movw r20, r18 + 289c: 44 0f add r20, r20 + 289e: 55 1f adc r21, r21 + 28a0: 28 2f mov r18, r24 + 28a2: 08 2e mov r0, r24 + 28a4: 00 0c add r0, r0 + 28a6: 33 0b sbc r19, r19 + 28a8: 22 27 eor r18, r18 + 28aa: 33 0f add r19, r19 + 28ac: 22 1f adc r18, r18 + 28ae: 33 27 eor r19, r19 + 28b0: 24 0f add r18, r20 + 28b2: 35 1f adc r19, r21 + 28b4: f9 01 movw r30, r18 28b6: ee 0f add r30, r30 28b8: ff 1f adc r31, r31 - 28ba: 08 2e mov r0, r24 - 28bc: 00 0c add r0, r0 - 28be: 99 0b sbc r25, r25 - 28c0: 88 27 eor r24, r24 - 28c2: 99 0f add r25, r25 - 28c4: 88 1f adc r24, r24 - 28c6: 99 27 eor r25, r25 - 28c8: e8 0f add r30, r24 - 28ca: f9 1f adc r31, r25 - 28cc: ee 0f add r30, r30 - 28ce: ff 1f adc r31, r31 - 28d0: ee 0f add r30, r30 - 28d2: ff 1f adc r31, r31 - 28d4: ee 0f add r30, r30 - 28d6: ff 1f adc r31, r31 - 28d8: e0 5c subi r30, 0xC0 ; 192 - 28da: fe 4d sbci r31, 0xDE ; 222 - 28dc: 81 85 ldd r24, Z+9 ; 0x09 - 28de: 82 fb bst r24, 2 - 28e0: 88 27 eor r24, r24 - 28e2: 80 f9 bld r24, 0 - 28e4: 08 95 ret + 28ba: ee 0f add r30, r30 + 28bc: ff 1f adc r31, r31 + 28be: ee 0f add r30, r30 + 28c0: ff 1f adc r31, r31 + 28c2: e0 5c subi r30, 0xC0 ; 192 + 28c4: fe 4d sbci r31, 0xDE ; 222 + 28c6: 91 85 ldd r25, Z+9 ; 0x09 + 28c8: 92 ff sbrs r25, 2 + 28ca: 17 c0 rjmp .+46 ; 0x28fa + 28cc: 22 0f add r18, r18 + 28ce: 33 1f adc r19, r19 + 28d0: 22 0f add r18, r18 + 28d2: 33 1f adc r19, r19 + 28d4: 22 0f add r18, r18 + 28d6: 33 1f adc r19, r19 + 28d8: f9 01 movw r30, r18 + 28da: e0 5c subi r30, 0xC0 ; 192 + 28dc: fe 4d sbci r31, 0xDE ; 222 + 28de: 91 85 ldd r25, Z+9 ; 0x09 + 28e0: 9b 7f andi r25, 0xFB ; 251 + 28e2: 91 87 std Z+9, r25 ; 0x09 + 28e4: cc dc rcall .-1640 ; 0x227e + 28e6: fc 01 movw r30, r24 + 28e8: 80 81 ld r24, Z + 28ea: 80 ff sbrs r24, 0 + 28ec: 06 c0 rjmp .+12 ; 0x28fa + 28ee: 8e 7f andi r24, 0xFE ; 254 + 28f0: 80 83 st Z, r24 + 28f2: 07 80 ldd r0, Z+7 ; 0x07 + 28f4: f0 85 ldd r31, Z+8 ; 0x08 + 28f6: e0 2d mov r30, r0 + 28f8: 09 95 icall + 28fa: 81 e0 ldi r24, 0x01 ; 1 + 28fc: 08 95 ret -000028e6 : - 28e6: 28 2f mov r18, r24 - 28e8: 2f 70 andi r18, 0x0F ; 15 - 28ea: 30 e0 ldi r19, 0x00 ; 0 - 28ec: a9 01 movw r20, r18 - 28ee: 44 0f add r20, r20 - 28f0: 55 1f adc r21, r21 - 28f2: 28 2f mov r18, r24 - 28f4: 08 2e mov r0, r24 - 28f6: 00 0c add r0, r0 - 28f8: 33 0b sbc r19, r19 - 28fa: 22 27 eor r18, r18 - 28fc: 33 0f add r19, r19 - 28fe: 22 1f adc r18, r18 - 2900: 33 27 eor r19, r19 - 2902: 24 0f add r18, r20 - 2904: 35 1f adc r19, r21 - 2906: f9 01 movw r30, r18 - 2908: ee 0f add r30, r30 - 290a: ff 1f adc r31, r31 - 290c: ee 0f add r30, r30 - 290e: ff 1f adc r31, r31 - 2910: ee 0f add r30, r30 - 2912: ff 1f adc r31, r31 - 2914: e0 5c subi r30, 0xC0 ; 192 - 2916: fe 4d sbci r31, 0xDE ; 222 - 2918: 91 85 ldd r25, Z+9 ; 0x09 - 291a: 92 ff sbrs r25, 2 - 291c: 17 c0 rjmp .+46 ; 0x294c - 291e: 22 0f add r18, r18 - 2920: 33 1f adc r19, r19 - 2922: 22 0f add r18, r18 - 2924: 33 1f adc r19, r19 - 2926: 22 0f add r18, r18 - 2928: 33 1f adc r19, r19 - 292a: f9 01 movw r30, r18 - 292c: e0 5c subi r30, 0xC0 ; 192 - 292e: fe 4d sbci r31, 0xDE ; 222 - 2930: 91 85 ldd r25, Z+9 ; 0x09 - 2932: 9b 7f andi r25, 0xFB ; 251 - 2934: 91 87 std Z+9, r25 ; 0x09 - 2936: cc dc rcall .-1640 ; 0x22d0 - 2938: fc 01 movw r30, r24 - 293a: 80 81 ld r24, Z - 293c: 80 ff sbrs r24, 0 - 293e: 06 c0 rjmp .+12 ; 0x294c - 2940: 8e 7f andi r24, 0xFE ; 254 - 2942: 80 83 st Z, r24 - 2944: 07 80 ldd r0, Z+7 ; 0x07 - 2946: f0 85 ldd r31, Z+8 ; 0x08 - 2948: e0 2d mov r30, r0 - 294a: 09 95 icall - 294c: 81 e0 ldi r24, 0x01 ; 1 - 294e: 08 95 ret +000028fe : + 28fe: 7f 92 push r7 + 2900: 8f 92 push r8 + 2902: 9f 92 push r9 + 2904: af 92 push r10 + 2906: bf 92 push r11 + 2908: cf 92 push r12 + 290a: df 92 push r13 + 290c: ef 92 push r14 + 290e: ff 92 push r15 + 2910: 0f 93 push r16 + 2912: 1f 93 push r17 + 2914: cf 93 push r28 + 2916: df 93 push r29 + 2918: 98 2e mov r9, r24 + 291a: 86 2e mov r8, r22 + 291c: 6a 01 movw r12, r20 + 291e: 79 01 movw r14, r18 + 2920: ae dc rcall .-1700 ; 0x227e + 2922: 5c 01 movw r10, r24 + 2924: 79 2c mov r7, r9 + 2926: 77 1c adc r7, r7 + 2928: 77 24 eor r7, r7 + 292a: 77 1c adc r7, r7 + 292c: c9 2d mov r28, r9 + 292e: cf 70 andi r28, 0x0F ; 15 + 2930: d0 e0 ldi r29, 0x00 ; 0 + 2932: cc 0f add r28, r28 + 2934: dd 1f adc r29, r29 + 2936: c7 0d add r28, r7 + 2938: d1 1d adc r29, r1 + 293a: fe 01 movw r30, r28 + 293c: ee 0f add r30, r30 + 293e: ff 1f adc r31, r31 + 2940: ee 0f add r30, r30 + 2942: ff 1f adc r31, r31 + 2944: ee 0f add r30, r30 + 2946: ff 1f adc r31, r31 + 2948: e0 5c subi r30, 0xC0 ; 192 + 294a: fe 4d sbci r31, 0xDE ; 222 + 294c: 81 85 ldd r24, Z+9 ; 0x09 + 294e: 80 7c andi r24, 0xC0 ; 192 + 2950: 09 f4 brne .+2 ; 0x2954 + 2952: 7d c0 rjmp .+250 ; 0x2a4e + 2954: fe 01 movw r30, r28 + 2956: ee 0f add r30, r30 + 2958: ff 1f adc r31, r31 + 295a: ee 0f add r30, r30 + 295c: ff 1f adc r31, r31 + 295e: ee 0f add r30, r30 + 2960: ff 1f adc r31, r31 + 2962: e0 5c subi r30, 0xC0 ; 192 + 2964: fe 4d sbci r31, 0xDE ; 222 + 2966: 81 85 ldd r24, Z+9 ; 0x09 + 2968: 80 7c andi r24, 0xC0 ; 192 + 296a: 80 3c cpi r24, 0xC0 ; 192 + 296c: 61 f0 breq .+24 ; 0x2986 + 296e: fe 01 movw r30, r28 + 2970: ee 0f add r30, r30 + 2972: ff 1f adc r31, r31 + 2974: ee 0f add r30, r30 + 2976: ff 1f adc r31, r31 + 2978: ee 0f add r30, r30 + 297a: ff 1f adc r31, r31 + 297c: e0 5c subi r30, 0xC0 ; 192 + 297e: fe 4d sbci r31, 0xDE ; 222 + 2980: 81 85 ldd r24, Z+9 ; 0x09 + 2982: 82 fd sbrc r24, 2 + 2984: 66 c0 rjmp .+204 ; 0x2a52 + 2986: 8f b7 in r24, 0x3f ; 63 + 2988: f8 94 cli + 298a: f5 01 movw r30, r10 + 298c: 90 81 ld r25, Z + 298e: 90 ff sbrs r25, 0 + 2990: 03 c0 rjmp .+6 ; 0x2998 + 2992: 8f bf out 0x3f, r24 ; 63 + 2994: 71 2c mov r7, r1 + 2996: 5e c0 rjmp .+188 ; 0x2a54 + 2998: f5 01 movw r30, r10 + 299a: 90 81 ld r25, Z + 299c: 91 60 ori r25, 0x01 ; 1 + 299e: 90 83 st Z, r25 + 29a0: 8f bf out 0x3f, r24 ; 63 + 29a2: c1 82 std Z+1, r12 ; 0x01 + 29a4: d2 82 std Z+2, r13 ; 0x02 + 29a6: e3 82 std Z+3, r14 ; 0x03 + 29a8: f4 82 std Z+4, r15 ; 0x04 + 29aa: 15 82 std Z+5, r1 ; 0x05 + 29ac: 16 82 std Z+6, r1 ; 0x06 + 29ae: 07 83 std Z+7, r16 ; 0x07 + 29b0: 10 87 std Z+8, r17 ; 0x08 + 29b2: 81 10 cpse r8, r1 + 29b4: 06 c0 rjmp .+12 ; 0x29c2 + 29b6: 91 e0 ldi r25, 0x01 ; 1 + 29b8: e1 14 cp r14, r1 + 29ba: f1 04 cpc r15, r1 + 29bc: 19 f0 breq .+6 ; 0x29c4 + 29be: 90 e0 ldi r25, 0x00 ; 0 + 29c0: 01 c0 rjmp .+2 ; 0x29c4 + 29c2: 91 e0 ldi r25, 0x01 ; 1 + 29c4: f5 01 movw r30, r10 + 29c6: 80 81 ld r24, Z + 29c8: 90 fb bst r25, 0 + 29ca: 81 f9 bld r24, 1 + 29cc: 8b 7f andi r24, 0xFB ; 251 + 29ce: 80 83 st Z, r24 + 29d0: 77 20 and r7, r7 + 29d2: 59 f0 breq .+22 ; 0x29ea + 29d4: cc 0f add r28, r28 + 29d6: dd 1f adc r29, r29 + 29d8: cc 0f add r28, r28 + 29da: dd 1f adc r29, r29 + 29dc: cc 0f add r28, r28 + 29de: dd 1f adc r29, r29 + 29e0: c0 5c subi r28, 0xC0 ; 192 + 29e2: de 4d sbci r29, 0xDE ; 222 + 29e4: 1e 86 std Y+14, r1 ; 0x0e + 29e6: 1f 86 std Y+15, r1 ; 0x0f + 29e8: 2d c0 rjmp .+90 ; 0x2a44 + 29ea: fe 01 movw r30, r28 + 29ec: ee 0f add r30, r30 + 29ee: ff 1f adc r31, r31 + 29f0: ee 0f add r30, r30 + 29f2: ff 1f adc r31, r31 + 29f4: ee 0f add r30, r30 + 29f6: ff 1f adc r31, r31 + 29f8: e0 5c subi r30, 0xC0 ; 192 + 29fa: fe 4d sbci r31, 0xDE ; 222 + 29fc: 81 85 ldd r24, Z+9 ; 0x09 + 29fe: 80 7c andi r24, 0xC0 ; 192 + 2a00: 80 3c cpi r24, 0xC0 ; 192 + 2a02: a1 f4 brne .+40 ; 0x2a2c + 2a04: ce 01 movw r24, r28 + 2a06: 88 0f add r24, r24 + 2a08: 99 1f adc r25, r25 + 2a0a: 88 0f add r24, r24 + 2a0c: 99 1f adc r25, r25 + 2a0e: 88 0f add r24, r24 + 2a10: 99 1f adc r25, r25 + 2a12: 88 5b subi r24, 0xB8 ; 184 + 2a14: 9e 4d sbci r25, 0xDE ; 222 + 2a16: 0d dc rcall .-2022 ; 0x2232 + 2a18: bc 01 movw r22, r24 + 2a1a: c7 01 movw r24, r14 + 2a1c: 58 d2 rcall .+1200 ; 0x2ece <__udivmodhi4> + 2a1e: 89 2b or r24, r25 + 2a20: 29 f0 breq .+10 ; 0x2a2c + 2a22: f5 01 movw r30, r10 + 2a24: 80 81 ld r24, Z + 2a26: 8e 7f andi r24, 0xFE ; 254 + 2a28: 80 83 st Z, r24 + 2a2a: 14 c0 rjmp .+40 ; 0x2a54 + 2a2c: cc 0f add r28, r28 + 2a2e: dd 1f adc r29, r29 + 2a30: cc 0f add r28, r28 + 2a32: dd 1f adc r29, r29 + 2a34: cc 0f add r28, r28 + 2a36: dd 1f adc r29, r29 + 2a38: c0 5c subi r28, 0xC0 ; 192 + 2a3a: de 4d sbci r29, 0xDE ; 222 + 2a3c: 1a 86 std Y+10, r1 ; 0x0a + 2a3e: 1b 86 std Y+11, r1 ; 0x0b + 2a40: 1e 86 std Y+14, r1 ; 0x0e + 2a42: 1f 86 std Y+15, r1 ; 0x0f + 2a44: 89 2d mov r24, r9 + 2a46: a5 dc rcall .-1718 ; 0x2392 + 2a48: 77 24 eor r7, r7 + 2a4a: 73 94 inc r7 + 2a4c: 03 c0 rjmp .+6 ; 0x2a54 + 2a4e: 71 2c mov r7, r1 + 2a50: 01 c0 rjmp .+2 ; 0x2a54 + 2a52: 71 2c mov r7, r1 + 2a54: 87 2d mov r24, r7 + 2a56: df 91 pop r29 + 2a58: cf 91 pop r28 + 2a5a: 1f 91 pop r17 + 2a5c: 0f 91 pop r16 + 2a5e: ff 90 pop r15 + 2a60: ef 90 pop r14 + 2a62: df 90 pop r13 + 2a64: cf 90 pop r12 + 2a66: bf 90 pop r11 + 2a68: af 90 pop r10 + 2a6a: 9f 90 pop r9 + 2a6c: 8f 90 pop r8 + 2a6e: 7f 90 pop r7 + 2a70: 08 95 ret -00002950 : - 2950: 7f 92 push r7 - 2952: 8f 92 push r8 - 2954: 9f 92 push r9 - 2956: af 92 push r10 - 2958: bf 92 push r11 - 295a: cf 92 push r12 - 295c: df 92 push r13 - 295e: ef 92 push r14 - 2960: ff 92 push r15 - 2962: 0f 93 push r16 - 2964: 1f 93 push r17 - 2966: cf 93 push r28 - 2968: df 93 push r29 - 296a: 98 2e mov r9, r24 - 296c: 86 2e mov r8, r22 - 296e: 6a 01 movw r12, r20 - 2970: 79 01 movw r14, r18 - 2972: ae dc rcall .-1700 ; 0x22d0 - 2974: 5c 01 movw r10, r24 - 2976: 79 2c mov r7, r9 - 2978: 77 1c adc r7, r7 - 297a: 77 24 eor r7, r7 - 297c: 77 1c adc r7, r7 - 297e: c9 2d mov r28, r9 - 2980: cf 70 andi r28, 0x0F ; 15 - 2982: d0 e0 ldi r29, 0x00 ; 0 - 2984: cc 0f add r28, r28 - 2986: dd 1f adc r29, r29 - 2988: c7 0d add r28, r7 - 298a: d1 1d adc r29, r1 - 298c: fe 01 movw r30, r28 - 298e: ee 0f add r30, r30 - 2990: ff 1f adc r31, r31 - 2992: ee 0f add r30, r30 - 2994: ff 1f adc r31, r31 - 2996: ee 0f add r30, r30 - 2998: ff 1f adc r31, r31 - 299a: e0 5c subi r30, 0xC0 ; 192 - 299c: fe 4d sbci r31, 0xDE ; 222 - 299e: 81 85 ldd r24, Z+9 ; 0x09 - 29a0: 80 7c andi r24, 0xC0 ; 192 - 29a2: 09 f4 brne .+2 ; 0x29a6 - 29a4: 7d c0 rjmp .+250 ; 0x2aa0 - 29a6: fe 01 movw r30, r28 - 29a8: ee 0f add r30, r30 - 29aa: ff 1f adc r31, r31 - 29ac: ee 0f add r30, r30 - 29ae: ff 1f adc r31, r31 - 29b0: ee 0f add r30, r30 - 29b2: ff 1f adc r31, r31 - 29b4: e0 5c subi r30, 0xC0 ; 192 - 29b6: fe 4d sbci r31, 0xDE ; 222 - 29b8: 81 85 ldd r24, Z+9 ; 0x09 - 29ba: 80 7c andi r24, 0xC0 ; 192 - 29bc: 80 3c cpi r24, 0xC0 ; 192 - 29be: 61 f0 breq .+24 ; 0x29d8 - 29c0: fe 01 movw r30, r28 - 29c2: ee 0f add r30, r30 - 29c4: ff 1f adc r31, r31 - 29c6: ee 0f add r30, r30 - 29c8: ff 1f adc r31, r31 - 29ca: ee 0f add r30, r30 - 29cc: ff 1f adc r31, r31 - 29ce: e0 5c subi r30, 0xC0 ; 192 - 29d0: fe 4d sbci r31, 0xDE ; 222 - 29d2: 81 85 ldd r24, Z+9 ; 0x09 - 29d4: 82 fd sbrc r24, 2 - 29d6: 66 c0 rjmp .+204 ; 0x2aa4 - 29d8: 8f b7 in r24, 0x3f ; 63 - 29da: f8 94 cli - 29dc: f5 01 movw r30, r10 - 29de: 90 81 ld r25, Z - 29e0: 90 ff sbrs r25, 0 - 29e2: 03 c0 rjmp .+6 ; 0x29ea - 29e4: 8f bf out 0x3f, r24 ; 63 - 29e6: 71 2c mov r7, r1 - 29e8: 5e c0 rjmp .+188 ; 0x2aa6 - 29ea: f5 01 movw r30, r10 - 29ec: 90 81 ld r25, Z - 29ee: 91 60 ori r25, 0x01 ; 1 - 29f0: 90 83 st Z, r25 - 29f2: 8f bf out 0x3f, r24 ; 63 - 29f4: c1 82 std Z+1, r12 ; 0x01 - 29f6: d2 82 std Z+2, r13 ; 0x02 - 29f8: e3 82 std Z+3, r14 ; 0x03 - 29fa: f4 82 std Z+4, r15 ; 0x04 - 29fc: 15 82 std Z+5, r1 ; 0x05 - 29fe: 16 82 std Z+6, r1 ; 0x06 - 2a00: 07 83 std Z+7, r16 ; 0x07 - 2a02: 10 87 std Z+8, r17 ; 0x08 - 2a04: 81 10 cpse r8, r1 - 2a06: 06 c0 rjmp .+12 ; 0x2a14 - 2a08: 91 e0 ldi r25, 0x01 ; 1 - 2a0a: e1 14 cp r14, r1 - 2a0c: f1 04 cpc r15, r1 - 2a0e: 19 f0 breq .+6 ; 0x2a16 - 2a10: 90 e0 ldi r25, 0x00 ; 0 - 2a12: 01 c0 rjmp .+2 ; 0x2a16 - 2a14: 91 e0 ldi r25, 0x01 ; 1 - 2a16: f5 01 movw r30, r10 - 2a18: 80 81 ld r24, Z - 2a1a: 90 fb bst r25, 0 - 2a1c: 81 f9 bld r24, 1 - 2a1e: 8b 7f andi r24, 0xFB ; 251 - 2a20: 80 83 st Z, r24 - 2a22: 77 20 and r7, r7 - 2a24: 59 f0 breq .+22 ; 0x2a3c - 2a26: cc 0f add r28, r28 - 2a28: dd 1f adc r29, r29 - 2a2a: cc 0f add r28, r28 - 2a2c: dd 1f adc r29, r29 - 2a2e: cc 0f add r28, r28 - 2a30: dd 1f adc r29, r29 - 2a32: c0 5c subi r28, 0xC0 ; 192 - 2a34: de 4d sbci r29, 0xDE ; 222 - 2a36: 1e 86 std Y+14, r1 ; 0x0e - 2a38: 1f 86 std Y+15, r1 ; 0x0f - 2a3a: 2d c0 rjmp .+90 ; 0x2a96 - 2a3c: fe 01 movw r30, r28 - 2a3e: ee 0f add r30, r30 - 2a40: ff 1f adc r31, r31 - 2a42: ee 0f add r30, r30 - 2a44: ff 1f adc r31, r31 - 2a46: ee 0f add r30, r30 - 2a48: ff 1f adc r31, r31 - 2a4a: e0 5c subi r30, 0xC0 ; 192 - 2a4c: fe 4d sbci r31, 0xDE ; 222 - 2a4e: 81 85 ldd r24, Z+9 ; 0x09 - 2a50: 80 7c andi r24, 0xC0 ; 192 - 2a52: 80 3c cpi r24, 0xC0 ; 192 - 2a54: a1 f4 brne .+40 ; 0x2a7e - 2a56: ce 01 movw r24, r28 - 2a58: 88 0f add r24, r24 - 2a5a: 99 1f adc r25, r25 - 2a5c: 88 0f add r24, r24 - 2a5e: 99 1f adc r25, r25 - 2a60: 88 0f add r24, r24 - 2a62: 99 1f adc r25, r25 - 2a64: 88 5b subi r24, 0xB8 ; 184 - 2a66: 9e 4d sbci r25, 0xDE ; 222 - 2a68: 0d dc rcall .-2022 ; 0x2284 - 2a6a: bc 01 movw r22, r24 - 2a6c: c7 01 movw r24, r14 - 2a6e: 58 d2 rcall .+1200 ; 0x2f20 <__udivmodhi4> - 2a70: 89 2b or r24, r25 - 2a72: 29 f0 breq .+10 ; 0x2a7e - 2a74: f5 01 movw r30, r10 - 2a76: 80 81 ld r24, Z - 2a78: 8e 7f andi r24, 0xFE ; 254 - 2a7a: 80 83 st Z, r24 - 2a7c: 14 c0 rjmp .+40 ; 0x2aa6 - 2a7e: cc 0f add r28, r28 - 2a80: dd 1f adc r29, r29 - 2a82: cc 0f add r28, r28 - 2a84: dd 1f adc r29, r29 - 2a86: cc 0f add r28, r28 - 2a88: dd 1f adc r29, r29 - 2a8a: c0 5c subi r28, 0xC0 ; 192 - 2a8c: de 4d sbci r29, 0xDE ; 222 - 2a8e: 1a 86 std Y+10, r1 ; 0x0a - 2a90: 1b 86 std Y+11, r1 ; 0x0b - 2a92: 1e 86 std Y+14, r1 ; 0x0e - 2a94: 1f 86 std Y+15, r1 ; 0x0f - 2a96: 89 2d mov r24, r9 - 2a98: a5 dc rcall .-1718 ; 0x23e4 - 2a9a: 77 24 eor r7, r7 - 2a9c: 73 94 inc r7 - 2a9e: 03 c0 rjmp .+6 ; 0x2aa6 - 2aa0: 71 2c mov r7, r1 - 2aa2: 01 c0 rjmp .+2 ; 0x2aa6 - 2aa4: 71 2c mov r7, r1 - 2aa6: 87 2d mov r24, r7 - 2aa8: df 91 pop r29 - 2aaa: cf 91 pop r28 - 2aac: 1f 91 pop r17 - 2aae: 0f 91 pop r16 - 2ab0: ff 90 pop r15 - 2ab2: ef 90 pop r14 - 2ab4: df 90 pop r13 - 2ab6: cf 90 pop r12 - 2ab8: bf 90 pop r11 - 2aba: af 90 pop r10 - 2abc: 9f 90 pop r9 - 2abe: 8f 90 pop r8 - 2ac0: 7f 90 pop r7 - 2ac2: 08 95 ret - -00002ac4 : - 2ac4: ff 92 push r15 - 2ac6: 0f 93 push r16 - 2ac8: 1f 93 push r17 - 2aca: cf 93 push r28 - 2acc: df 93 push r29 - 2ace: 18 2f mov r17, r24 - 2ad0: f8 2e mov r15, r24 - 2ad2: ff 1c adc r15, r15 - 2ad4: ff 24 eor r15, r15 - 2ad6: ff 1c adc r15, r15 - 2ad8: c8 2f mov r28, r24 - 2ada: cf 70 andi r28, 0x0F ; 15 - 2adc: d0 e0 ldi r29, 0x00 ; 0 +00002a72 : + 2a72: ff 92 push r15 + 2a74: 0f 93 push r16 + 2a76: 1f 93 push r17 + 2a78: cf 93 push r28 + 2a7a: df 93 push r29 + 2a7c: 18 2f mov r17, r24 + 2a7e: f8 2e mov r15, r24 + 2a80: ff 1c adc r15, r15 + 2a82: ff 24 eor r15, r15 + 2a84: ff 1c adc r15, r15 + 2a86: c8 2f mov r28, r24 + 2a88: cf 70 andi r28, 0x0F ; 15 + 2a8a: d0 e0 ldi r29, 0x00 ; 0 + 2a8c: cc 0f add r28, r28 + 2a8e: dd 1f adc r29, r29 + 2a90: cf 0d add r28, r15 + 2a92: d1 1d adc r29, r1 + 2a94: f4 db rcall .-2072 ; 0x227e + 2a96: dc 01 movw r26, r24 + 2a98: fe 01 movw r30, r28 + 2a9a: ee 0f add r30, r30 + 2a9c: ff 1f adc r31, r31 + 2a9e: ee 0f add r30, r30 + 2aa0: ff 1f adc r31, r31 + 2aa2: ee 0f add r30, r30 + 2aa4: ff 1f adc r31, r31 + 2aa6: e8 5b subi r30, 0xB8 ; 184 + 2aa8: fe 4d sbci r31, 0xDE ; 222 + 2aaa: 02 e0 ldi r16, 0x02 ; 2 + 2aac: 05 93 las Z, r16 + 2aae: 8c 91 ld r24, X + 2ab0: 80 ff sbrs r24, 0 + 2ab2: 22 c0 rjmp .+68 ; 0x2af8 + 2ab4: 8e 7f andi r24, 0xFE ; 254 + 2ab6: 8c 93 st X, r24 + 2ab8: 17 96 adiw r26, 0x07 ; 7 + 2aba: ed 91 ld r30, X+ + 2abc: fc 91 ld r31, X + 2abe: 18 97 sbiw r26, 0x08 ; 8 + 2ac0: 30 97 sbiw r30, 0x00 ; 0 + 2ac2: d1 f0 breq .+52 ; 0x2af8 + 2ac4: ff 20 and r15, r15 + 2ac6: 59 f0 breq .+22 ; 0x2ade + 2ac8: cc 0f add r28, r28 + 2aca: dd 1f adc r29, r29 + 2acc: cc 0f add r28, r28 + 2ace: dd 1f adc r29, r29 + 2ad0: cc 0f add r28, r28 + 2ad2: dd 1f adc r29, r29 + 2ad4: c0 5c subi r28, 0xC0 ; 192 + 2ad6: de 4d sbci r29, 0xDE ; 222 + 2ad8: 6e 85 ldd r22, Y+14 ; 0x0e + 2ada: 7f 85 ldd r23, Y+15 ; 0x0f + 2adc: 0a c0 rjmp .+20 ; 0x2af2 2ade: cc 0f add r28, r28 2ae0: dd 1f adc r29, r29 - 2ae2: cf 0d add r28, r15 - 2ae4: d1 1d adc r29, r1 - 2ae6: f4 db rcall .-2072 ; 0x22d0 - 2ae8: dc 01 movw r26, r24 - 2aea: fe 01 movw r30, r28 - 2aec: ee 0f add r30, r30 - 2aee: ff 1f adc r31, r31 - 2af0: ee 0f add r30, r30 - 2af2: ff 1f adc r31, r31 - 2af4: ee 0f add r30, r30 - 2af6: ff 1f adc r31, r31 - 2af8: e8 5b subi r30, 0xB8 ; 184 - 2afa: fe 4d sbci r31, 0xDE ; 222 - 2afc: 02 e0 ldi r16, 0x02 ; 2 - 2afe: 05 93 las Z, r16 - 2b00: 8c 91 ld r24, X - 2b02: 80 ff sbrs r24, 0 - 2b04: 22 c0 rjmp .+68 ; 0x2b4a - 2b06: 8e 7f andi r24, 0xFE ; 254 - 2b08: 8c 93 st X, r24 - 2b0a: 17 96 adiw r26, 0x07 ; 7 - 2b0c: ed 91 ld r30, X+ - 2b0e: fc 91 ld r31, X - 2b10: 18 97 sbiw r26, 0x08 ; 8 - 2b12: 30 97 sbiw r30, 0x00 ; 0 - 2b14: d1 f0 breq .+52 ; 0x2b4a - 2b16: ff 20 and r15, r15 - 2b18: 59 f0 breq .+22 ; 0x2b30 - 2b1a: cc 0f add r28, r28 - 2b1c: dd 1f adc r29, r29 - 2b1e: cc 0f add r28, r28 - 2b20: dd 1f adc r29, r29 - 2b22: cc 0f add r28, r28 - 2b24: dd 1f adc r29, r29 - 2b26: c0 5c subi r28, 0xC0 ; 192 - 2b28: de 4d sbci r29, 0xDE ; 222 - 2b2a: 6e 85 ldd r22, Y+14 ; 0x0e - 2b2c: 7f 85 ldd r23, Y+15 ; 0x0f - 2b2e: 0a c0 rjmp .+20 ; 0x2b44 - 2b30: cc 0f add r28, r28 - 2b32: dd 1f adc r29, r29 - 2b34: cc 0f add r28, r28 - 2b36: dd 1f adc r29, r29 - 2b38: cc 0f add r28, r28 - 2b3a: dd 1f adc r29, r29 - 2b3c: c0 5c subi r28, 0xC0 ; 192 - 2b3e: de 4d sbci r29, 0xDE ; 222 - 2b40: 6a 85 ldd r22, Y+10 ; 0x0a - 2b42: 7b 85 ldd r23, Y+11 ; 0x0b - 2b44: 41 2f mov r20, r17 - 2b46: 81 e0 ldi r24, 0x01 ; 1 - 2b48: 09 95 icall - 2b4a: df 91 pop r29 - 2b4c: cf 91 pop r28 - 2b4e: 1f 91 pop r17 - 2b50: 0f 91 pop r16 - 2b52: ff 90 pop r15 - 2b54: 08 95 ret + 2ae2: cc 0f add r28, r28 + 2ae4: dd 1f adc r29, r29 + 2ae6: cc 0f add r28, r28 + 2ae8: dd 1f adc r29, r29 + 2aea: c0 5c subi r28, 0xC0 ; 192 + 2aec: de 4d sbci r29, 0xDE ; 222 + 2aee: 6a 85 ldd r22, Y+10 ; 0x0a + 2af0: 7b 85 ldd r23, Y+11 ; 0x0b + 2af2: 41 2f mov r20, r17 + 2af4: 81 e0 ldi r24, 0x01 ; 1 + 2af6: 09 95 icall + 2af8: df 91 pop r29 + 2afa: cf 91 pop r28 + 2afc: 1f 91 pop r17 + 2afe: 0f 91 pop r16 + 2b00: ff 90 pop r15 + 2b02: 08 95 ret -00002b56 : - 2b56: cf 93 push r28 - 2b58: c8 2f mov r28, r24 - 2b5a: b4 df rcall .-152 ; 0x2ac4 - 2b5c: ec 2f mov r30, r28 - 2b5e: ef 70 andi r30, 0x0F ; 15 - 2b60: f0 e0 ldi r31, 0x00 ; 0 - 2b62: ee 0f add r30, r30 - 2b64: ff 1f adc r31, r31 - 2b66: 8c 2f mov r24, r28 - 2b68: cc 0f add r28, r28 - 2b6a: 99 0b sbc r25, r25 - 2b6c: 88 27 eor r24, r24 - 2b6e: 99 0f add r25, r25 - 2b70: 88 1f adc r24, r24 - 2b72: 99 27 eor r25, r25 - 2b74: e8 0f add r30, r24 - 2b76: f9 1f adc r31, r25 - 2b78: ee 0f add r30, r30 - 2b7a: ff 1f adc r31, r31 - 2b7c: ee 0f add r30, r30 - 2b7e: ff 1f adc r31, r31 - 2b80: ee 0f add r30, r30 - 2b82: ff 1f adc r31, r31 - 2b84: e0 5c subi r30, 0xC0 ; 192 - 2b86: fe 4d sbci r31, 0xDE ; 222 - 2b88: 11 86 std Z+9, r1 ; 0x09 - 2b8a: cf 91 pop r28 - 2b8c: 08 95 ret +00002b04 : + 2b04: cf 93 push r28 + 2b06: c8 2f mov r28, r24 + 2b08: b4 df rcall .-152 ; 0x2a72 + 2b0a: ec 2f mov r30, r28 + 2b0c: ef 70 andi r30, 0x0F ; 15 + 2b0e: f0 e0 ldi r31, 0x00 ; 0 + 2b10: ee 0f add r30, r30 + 2b12: ff 1f adc r31, r31 + 2b14: 8c 2f mov r24, r28 + 2b16: cc 0f add r28, r28 + 2b18: 99 0b sbc r25, r25 + 2b1a: 88 27 eor r24, r24 + 2b1c: 99 0f add r25, r25 + 2b1e: 88 1f adc r24, r24 + 2b20: 99 27 eor r25, r25 + 2b22: e8 0f add r30, r24 + 2b24: f9 1f adc r31, r25 + 2b26: ee 0f add r30, r30 + 2b28: ff 1f adc r31, r31 + 2b2a: ee 0f add r30, r30 + 2b2c: ff 1f adc r31, r31 + 2b2e: ee 0f add r30, r30 + 2b30: ff 1f adc r31, r31 + 2b32: e0 5c subi r30, 0xC0 ; 192 + 2b34: fe 4d sbci r31, 0xDE ; 222 + 2b36: 11 86 std Z+9, r1 ; 0x09 + 2b38: cf 91 pop r28 + 2b3a: 08 95 ret -00002b8e : - 2b8e: 0f 93 push r16 - 2b90: e8 2f mov r30, r24 - 2b92: ef 70 andi r30, 0x0F ; 15 - 2b94: f0 e0 ldi r31, 0x00 ; 0 - 2b96: ee 0f add r30, r30 - 2b98: ff 1f adc r31, r31 - 2b9a: 28 2f mov r18, r24 - 2b9c: 08 2e mov r0, r24 - 2b9e: 00 0c add r0, r0 - 2ba0: 33 0b sbc r19, r19 - 2ba2: 22 27 eor r18, r18 - 2ba4: 33 0f add r19, r19 - 2ba6: 22 1f adc r18, r18 - 2ba8: 33 27 eor r19, r19 - 2baa: e2 0f add r30, r18 - 2bac: f3 1f adc r31, r19 - 2bae: df 01 movw r26, r30 - 2bb0: aa 0f add r26, r26 - 2bb2: bb 1f adc r27, r27 - 2bb4: aa 0f add r26, r26 - 2bb6: bb 1f adc r27, r27 - 2bb8: aa 0f add r26, r26 - 2bba: bb 1f adc r27, r27 - 2bbc: a0 5c subi r26, 0xC0 ; 192 - 2bbe: be 4d sbci r27, 0xDE ; 222 - 2bc0: 19 96 adiw r26, 0x09 ; 9 - 2bc2: 9c 91 ld r25, X - 2bc4: 19 97 sbiw r26, 0x09 ; 9 - 2bc6: 94 60 ori r25, 0x04 ; 4 - 2bc8: 19 96 adiw r26, 0x09 ; 9 - 2bca: 9c 93 st X, r25 - 2bcc: ee 0f add r30, r30 - 2bce: ff 1f adc r31, r31 - 2bd0: ee 0f add r30, r30 - 2bd2: ff 1f adc r31, r31 - 2bd4: ee 0f add r30, r30 - 2bd6: ff 1f adc r31, r31 - 2bd8: e8 5b subi r30, 0xB8 ; 184 - 2bda: fe 4d sbci r31, 0xDE ; 222 - 2bdc: 01 e0 ldi r16, 0x01 ; 1 - 2bde: 06 93 lac Z, r16 - 2be0: 71 df rcall .-286 ; 0x2ac4 - 2be2: 81 e0 ldi r24, 0x01 ; 1 - 2be4: 0f 91 pop r16 - 2be6: 08 95 ret +00002b3c : + 2b3c: 0f 93 push r16 + 2b3e: e8 2f mov r30, r24 + 2b40: ef 70 andi r30, 0x0F ; 15 + 2b42: f0 e0 ldi r31, 0x00 ; 0 + 2b44: ee 0f add r30, r30 + 2b46: ff 1f adc r31, r31 + 2b48: 28 2f mov r18, r24 + 2b4a: 08 2e mov r0, r24 + 2b4c: 00 0c add r0, r0 + 2b4e: 33 0b sbc r19, r19 + 2b50: 22 27 eor r18, r18 + 2b52: 33 0f add r19, r19 + 2b54: 22 1f adc r18, r18 + 2b56: 33 27 eor r19, r19 + 2b58: e2 0f add r30, r18 + 2b5a: f3 1f adc r31, r19 + 2b5c: df 01 movw r26, r30 + 2b5e: aa 0f add r26, r26 + 2b60: bb 1f adc r27, r27 + 2b62: aa 0f add r26, r26 + 2b64: bb 1f adc r27, r27 + 2b66: aa 0f add r26, r26 + 2b68: bb 1f adc r27, r27 + 2b6a: a0 5c subi r26, 0xC0 ; 192 + 2b6c: be 4d sbci r27, 0xDE ; 222 + 2b6e: 19 96 adiw r26, 0x09 ; 9 + 2b70: 9c 91 ld r25, X + 2b72: 19 97 sbiw r26, 0x09 ; 9 + 2b74: 94 60 ori r25, 0x04 ; 4 + 2b76: 19 96 adiw r26, 0x09 ; 9 + 2b78: 9c 93 st X, r25 + 2b7a: ee 0f add r30, r30 + 2b7c: ff 1f adc r31, r31 + 2b7e: ee 0f add r30, r30 + 2b80: ff 1f adc r31, r31 + 2b82: ee 0f add r30, r30 + 2b84: ff 1f adc r31, r31 + 2b86: e8 5b subi r30, 0xB8 ; 184 + 2b88: fe 4d sbci r31, 0xDE ; 222 + 2b8a: 01 e0 ldi r16, 0x01 ; 1 + 2b8c: 06 93 lac Z, r16 + 2b8e: 71 df rcall .-286 ; 0x2a72 + 2b90: 81 e0 ldi r24, 0x01 ; 1 + 2b92: 0f 91 pop r16 + 2b94: 08 95 ret -00002be8 <__vector_125>: +00002b96 <__vector_125>: * USB bus event interrupt includes : * - USB line events SOF, reset, suspend, resume, wakeup * - endpoint control errors underflow, overflow, stall */ ISR(USB_BUSEVENT_vect) { - 2be8: 1f 92 push r1 - 2bea: 0f 92 push r0 - 2bec: 0f b6 in r0, 0x3f ; 63 - 2bee: 0f 92 push r0 - 2bf0: 11 24 eor r1, r1 - 2bf2: 0f 93 push r16 - 2bf4: 2f 93 push r18 - 2bf6: 3f 93 push r19 - 2bf8: 4f 93 push r20 - 2bfa: 5f 93 push r21 - 2bfc: 6f 93 push r22 - 2bfe: 7f 93 push r23 - 2c00: 8f 93 push r24 - 2c02: 9f 93 push r25 - 2c04: af 93 push r26 - 2c06: bf 93 push r27 - 2c08: ef 93 push r30 - 2c0a: ff 93 push r31 + 2b96: 1f 92 push r1 + 2b98: 0f 92 push r0 + 2b9a: 0f b6 in r0, 0x3f ; 63 + 2b9c: 0f 92 push r0 + 2b9e: 11 24 eor r1, r1 + 2ba0: 0f 93 push r16 + 2ba2: 2f 93 push r18 + 2ba4: 3f 93 push r19 + 2ba6: 4f 93 push r20 + 2ba8: 5f 93 push r21 + 2baa: 6f 93 push r22 + 2bac: 7f 93 push r23 + 2bae: 8f 93 push r24 + 2bb0: 9f 93 push r25 + 2bb2: af 93 push r26 + 2bb4: bf 93 push r27 + 2bb6: ef 93 push r30 + 2bb8: ff 93 push r31 if (udd_is_start_of_frame_event()) { - 2c0c: 80 91 cb 04 lds r24, 0x04CB ; 0x8004cb <__TEXT_REGION_LENGTH__+0x7004cb> - 2c10: 88 23 and r24, r24 - 2c12: 44 f4 brge .+16 ; 0x2c24 <__vector_125+0x3c> + 2bba: 80 91 cb 04 lds r24, 0x04CB ; 0x8004cb <__TEXT_REGION_LENGTH__+0x7004cb> + 2bbe: 88 23 and r24, r24 + 2bc0: 44 f4 brge .+16 ; 0x2bd2 <__vector_125+0x3c> udd_ack_start_of_frame_event(); - 2c14: 80 e8 ldi r24, 0x80 ; 128 - 2c16: 80 93 ca 04 sts 0x04CA, r24 ; 0x8004ca <__TEXT_REGION_LENGTH__+0x7004ca> + 2bc2: 80 e8 ldi r24, 0x80 ; 128 + 2bc4: 80 93 ca 04 sts 0x04CA, r24 ; 0x8004ca <__TEXT_REGION_LENGTH__+0x7004ca> udc_sof_notify(); - 2c1a: 0e 94 30 0c call 0x1860 ; 0x1860 + 2bc8: 0e 94 07 0c call 0x180e ; 0x180e #ifdef UDC_SOF_EVENT UDC_SOF_EVENT(); - 2c1e: 0e 94 45 04 call 0x88a ; 0x88a + 2bcc: 0e 94 44 04 call 0x888 ; 0x888 #endif goto udd_interrupt_bus_event_end; - 2c22: 82 c0 rjmp .+260 ; 0x2d28 <__vector_125+0x140> + 2bd0: 82 c0 rjmp .+260 ; 0x2cd6 <__vector_125+0x140> } static bool udd_ctrl_interrupt_error(void) { // Underflow only managed for control endpoint if (udd_is_underflow_event()) { - 2c24: 80 91 cb 04 lds r24, 0x04CB ; 0x8004cb <__TEXT_REGION_LENGTH__+0x7004cb> - 2c28: 82 ff sbrs r24, 2 - 2c2a: 20 c0 rjmp .+64 ; 0x2c6c <__vector_125+0x84> + 2bd2: 80 91 cb 04 lds r24, 0x04CB ; 0x8004cb <__TEXT_REGION_LENGTH__+0x7004cb> + 2bd6: 82 ff sbrs r24, 2 + 2bd8: 20 c0 rjmp .+64 ; 0x2c1a <__vector_125+0x84> udd_ack_underflow_event(); - 2c2c: 84 e0 ldi r24, 0x04 ; 4 - 2c2e: 80 93 ca 04 sts 0x04CA, r24 ; 0x8004ca <__TEXT_REGION_LENGTH__+0x7004ca> + 2bda: 84 e0 ldi r24, 0x04 ; 4 + 2bdc: 80 93 ca 04 sts 0x04CA, r24 ; 0x8004ca <__TEXT_REGION_LENGTH__+0x7004ca> if (udd_control_in_underflow()) { - 2c32: 80 91 50 21 lds r24, 0x2150 ; 0x802150 - 2c36: 86 ff sbrs r24, 6 - 2c38: 77 c0 rjmp .+238 ; 0x2d28 <__vector_125+0x140> + 2be0: 80 91 50 21 lds r24, 0x2150 ; 0x802150 + 2be4: 86 ff sbrs r24, 6 + 2be6: 77 c0 rjmp .+238 ; 0x2cd6 <__vector_125+0x140> udd_control_out_clear_NACK0(); } static void udd_ctrl_underflow(void) { if (udd_is_tc_event() || udd_ctrl_interrupt_tc_setup()) { - 2c3a: 80 91 cc 04 lds r24, 0x04CC ; 0x8004cc <__TEXT_REGION_LENGTH__+0x7004cc> - 2c3e: 81 fd sbrc r24, 1 - 2c40: 73 c0 rjmp .+230 ; 0x2d28 <__vector_125+0x140> - 2c42: 61 db rcall .-2366 ; 0x2306 - 2c44: 81 11 cpse r24, r1 - 2c46: 70 c0 rjmp .+224 ; 0x2d28 <__vector_125+0x140> + 2be8: 80 91 cc 04 lds r24, 0x04CC ; 0x8004cc <__TEXT_REGION_LENGTH__+0x7004cc> + 2bec: 81 fd sbrc r24, 1 + 2bee: 73 c0 rjmp .+230 ; 0x2cd6 <__vector_125+0x140> + 2bf0: 61 db rcall .-2366 ; 0x22b4 + 2bf2: 81 11 cpse r24, r1 + 2bf4: 70 c0 rjmp .+224 ; 0x2cd6 <__vector_125+0x140> return; // underflow ignored if a transfer complete has been no processed } if (UDD_EPCTRL_DATA_OUT == udd_ep_control_state) { - 2c48: 80 91 3f 21 lds r24, 0x213F ; 0x80213f - 2c4c: 81 30 cpi r24, 0x01 ; 1 - 2c4e: 11 f4 brne .+4 ; 0x2c54 <__vector_125+0x6c> + 2bf6: 80 91 3f 21 lds r24, 0x213F ; 0x80213f + 2bfa: 81 30 cpi r24, 0x01 ; 1 + 2bfc: 11 f4 brne .+4 ; 0x2c02 <__vector_125+0x6c> // Host want to stop OUT transaction // then stop to wait OUT data phase and wait IN ZLP handshake udd_ctrl_send_zlp_in(); - 2c50: 97 da rcall .-2770 ; 0x2180 - 2c52: 6a c0 rjmp .+212 ; 0x2d28 <__vector_125+0x140> + 2bfe: 97 da rcall .-2770 ; 0x212e + 2c00: 6a c0 rjmp .+212 ; 0x2cd6 <__vector_125+0x140> } else if (UDD_EPCTRL_HANDSHAKE_WAIT_OUT_ZLP == udd_ep_control_state) { - 2c54: 84 30 cpi r24, 0x04 ; 4 - 2c56: 09 f0 breq .+2 ; 0x2c5a <__vector_125+0x72> - 2c58: 67 c0 rjmp .+206 ; 0x2d28 <__vector_125+0x140> + 2c02: 84 30 cpi r24, 0x04 ; 4 + 2c04: 09 f0 breq .+2 ; 0x2c08 <__vector_125+0x72> + 2c06: 67 c0 rjmp .+206 ; 0x2cd6 <__vector_125+0x140> // A OUT handshake is waiting by device, // but host want extra IN data then stall extra IN data and following status stage udd_control_in_enable_stall(); - 2c5a: e1 e5 ldi r30, 0x51 ; 81 - 2c5c: f1 e2 ldi r31, 0x21 ; 33 - 2c5e: 04 e0 ldi r16, 0x04 ; 4 - 2c60: 05 93 las Z, r16 + 2c08: e1 e5 ldi r30, 0x51 ; 81 + 2c0a: f1 e2 ldi r31, 0x21 ; 33 + 2c0c: 04 e0 ldi r16, 0x04 ; 4 + 2c0e: 05 93 las Z, r16 udd_control_out_enable_stall(); - 2c62: e9 e4 ldi r30, 0x49 ; 73 - 2c64: f1 e2 ldi r31, 0x21 ; 33 - 2c66: 04 e0 ldi r16, 0x04 ; 4 - 2c68: 05 93 las Z, r16 - 2c6a: 5e c0 rjmp .+188 ; 0x2d28 <__vector_125+0x140> + 2c10: e9 e4 ldi r30, 0x49 ; 73 + 2c12: f1 e2 ldi r31, 0x21 ; 33 + 2c14: 04 e0 ldi r16, 0x04 ; 4 + 2c16: 05 93 las Z, r16 + 2c18: 5e c0 rjmp .+188 ; 0x2cd6 <__vector_125+0x140> udd_ctrl_underflow(); } return true; } // Overflow only managed for control endpoint if (udd_is_overflow_event()) { - 2c6c: 80 91 cb 04 lds r24, 0x04CB ; 0x8004cb <__TEXT_REGION_LENGTH__+0x7004cb> - 2c70: 81 ff sbrs r24, 1 - 2c72: 55 c0 rjmp .+170 ; 0x2d1e <__vector_125+0x136> + 2c1a: 80 91 cb 04 lds r24, 0x04CB ; 0x8004cb <__TEXT_REGION_LENGTH__+0x7004cb> + 2c1e: 81 ff sbrs r24, 1 + 2c20: 55 c0 rjmp .+170 ; 0x2ccc <__vector_125+0x136> udd_ack_overflow_event(); - 2c74: 82 e0 ldi r24, 0x02 ; 2 - 2c76: 80 93 ca 04 sts 0x04CA, r24 ; 0x8004ca <__TEXT_REGION_LENGTH__+0x7004ca> + 2c22: 82 e0 ldi r24, 0x02 ; 2 + 2c24: 80 93 ca 04 sts 0x04CA, r24 ; 0x8004ca <__TEXT_REGION_LENGTH__+0x7004ca> if (udd_control_out_overflow()) { - 2c7a: 80 91 48 21 lds r24, 0x2148 ; 0x802148 - 2c7e: 86 ff sbrs r24, 6 - 2c80: 53 c0 rjmp .+166 ; 0x2d28 <__vector_125+0x140> + 2c28: 80 91 48 21 lds r24, 0x2148 ; 0x802148 + 2c2c: 86 ff sbrs r24, 6 + 2c2e: 53 c0 rjmp .+166 ; 0x2cd6 <__vector_125+0x140> } } static void udd_ctrl_overflow(void) { if (udd_is_tc_event() || udd_ctrl_interrupt_tc_setup()) { - 2c82: 80 91 cc 04 lds r24, 0x04CC ; 0x8004cc <__TEXT_REGION_LENGTH__+0x7004cc> - 2c86: 81 fd sbrc r24, 1 - 2c88: 4f c0 rjmp .+158 ; 0x2d28 <__vector_125+0x140> - 2c8a: 3d db rcall .-2438 ; 0x2306 - 2c8c: 81 11 cpse r24, r1 - 2c8e: 4c c0 rjmp .+152 ; 0x2d28 <__vector_125+0x140> + 2c30: 80 91 cc 04 lds r24, 0x04CC ; 0x8004cc <__TEXT_REGION_LENGTH__+0x7004cc> + 2c34: 81 fd sbrc r24, 1 + 2c36: 4f c0 rjmp .+158 ; 0x2cd6 <__vector_125+0x140> + 2c38: 3d db rcall .-2438 ; 0x22b4 + 2c3a: 81 11 cpse r24, r1 + 2c3c: 4c c0 rjmp .+152 ; 0x2cd6 <__vector_125+0x140> return; // overflow ignored if a transfer complete has been no processed } if (UDD_EPCTRL_DATA_IN == udd_ep_control_state) { - 2c90: 80 91 3f 21 lds r24, 0x213F ; 0x80213f - 2c94: 82 30 cpi r24, 0x02 ; 2 - 2c96: 41 f4 brne .+16 ; 0x2ca8 <__vector_125+0xc0> + 2c3e: 80 91 3f 21 lds r24, 0x213F ; 0x80213f + 2c42: 82 30 cpi r24, 0x02 ; 2 + 2c44: 41 f4 brne .+16 ; 0x2c56 <__vector_125+0xc0> udd_control_in_clear_NACK0(); } static void udd_ctrl_send_zlp_out(void) { udd_ep_control_state = UDD_EPCTRL_HANDSHAKE_WAIT_OUT_ZLP; - 2c98: 84 e0 ldi r24, 0x04 ; 4 - 2c9a: 80 93 3f 21 sts 0x213F, r24 ; 0x80213f + 2c46: 84 e0 ldi r24, 0x04 ; 4 + 2c48: 80 93 3f 21 sts 0x213F, r24 ; 0x80213f // Valid reception of OUT packet on control endpoint udd_control_out_clear_NACK0(); - 2c9e: e8 e4 ldi r30, 0x48 ; 72 - 2ca0: f1 e2 ldi r31, 0x21 ; 33 - 2ca2: 02 e0 ldi r16, 0x02 ; 2 - 2ca4: 06 93 lac Z, r16 - 2ca6: 40 c0 rjmp .+128 ; 0x2d28 <__vector_125+0x140> + 2c4c: e8 e4 ldi r30, 0x48 ; 72 + 2c4e: f1 e2 ldi r31, 0x21 ; 33 + 2c50: 02 e0 ldi r16, 0x02 ; 2 + 2c52: 06 93 lac Z, r16 + 2c54: 40 c0 rjmp .+128 ; 0x2cd6 <__vector_125+0x140> } if (UDD_EPCTRL_DATA_IN == udd_ep_control_state) { // Host want to stop IN transaction // then stop to wait IN data phase and wait OUT ZLP handshake udd_ctrl_send_zlp_out(); } else if (UDD_EPCTRL_HANDSHAKE_WAIT_IN_ZLP == udd_ep_control_state) { - 2ca8: 83 30 cpi r24, 0x03 ; 3 - 2caa: 09 f0 breq .+2 ; 0x2cae <__vector_125+0xc6> - 2cac: 3d c0 rjmp .+122 ; 0x2d28 <__vector_125+0x140> + 2c56: 83 30 cpi r24, 0x03 ; 3 + 2c58: 09 f0 breq .+2 ; 0x2c5c <__vector_125+0xc6> + 2c5a: 3d c0 rjmp .+122 ; 0x2cd6 <__vector_125+0x140> // A IN handshake is waiting by device, // but host want extra OUT data then stall extra OUT data and following status stage udd_control_in_enable_stall(); - 2cae: e1 e5 ldi r30, 0x51 ; 81 - 2cb0: f1 e2 ldi r31, 0x21 ; 33 - 2cb2: 04 e0 ldi r16, 0x04 ; 4 - 2cb4: 05 93 las Z, r16 + 2c5c: e1 e5 ldi r30, 0x51 ; 81 + 2c5e: f1 e2 ldi r31, 0x21 ; 33 + 2c60: 04 e0 ldi r16, 0x04 ; 4 + 2c62: 05 93 las Z, r16 udd_control_out_enable_stall(); - 2cb6: e9 e4 ldi r30, 0x49 ; 73 - 2cb8: f1 e2 ldi r31, 0x21 ; 33 - 2cba: 04 e0 ldi r16, 0x04 ; 4 - 2cbc: 05 93 las Z, r16 - 2cbe: 34 c0 rjmp .+104 ; 0x2d28 <__vector_125+0x140> + 2c64: e9 e4 ldi r30, 0x49 ; 73 + 2c66: f1 e2 ldi r31, 0x21 ; 33 + 2c68: 04 e0 ldi r16, 0x04 ; 4 + 2c6a: 05 93 las Z, r16 + 2c6c: 34 c0 rjmp .+104 ; 0x2cd6 <__vector_125+0x140> if (udd_ctrl_interrupt_error()) { goto udd_interrupt_bus_event_end; } if (udd_is_reset_event()) { udd_ack_reset_event(); - 2cc0: 80 e1 ldi r24, 0x10 ; 16 - 2cc2: 80 93 ca 04 sts 0x04CA, r24 ; 0x8004ca <__TEXT_REGION_LENGTH__+0x7004ca> + 2c6e: 80 e1 ldi r24, 0x10 ; 16 + 2c70: 80 93 ca 04 sts 0x04CA, r24 ; 0x8004ca <__TEXT_REGION_LENGTH__+0x7004ca> for (i = 1; i < USB_DEVICE_MAX_EP; i++) { udd_ep_abort(i); udd_ep_abort(i | USB_EP_DIR_IN); } #endif udc_reset(); - 2cc6: 0e 94 0b 0c call 0x1816 ; 0x1816 + 2c74: 0e 94 e2 0b call 0x17c4 ; 0x17c4 // Reset USB address to 0 udd_set_device_address(0); - 2cca: 10 92 c3 04 sts 0x04C3, r1 ; 0x8004c3 <__TEXT_REGION_LENGTH__+0x7004c3> + 2c78: 10 92 c3 04 sts 0x04C3, r1 ; 0x8004c3 <__TEXT_REGION_LENGTH__+0x7004c3> #endif } // Enable endpoint ep_ctrl = udd_ep_get_ctrl(ep); udd_endpoint_disable(ep_ctrl); - 2cce: e0 e4 ldi r30, 0x40 ; 64 - 2cd0: f1 e2 ldi r31, 0x21 ; 33 - 2cd2: 11 86 std Z+9, r1 ; 0x09 + 2c7c: e0 e4 ldi r30, 0x40 ; 64 + 2c7e: f1 e2 ldi r31, 0x21 ; 33 + 2c80: 11 86 std Z+9, r1 ; 0x09 udd_endpoint_clear_status(ep_ctrl); - 2cd4: 96 e0 ldi r25, 0x06 ; 6 - 2cd6: 90 87 std Z+8, r25 ; 0x08 + 2c82: 96 e0 ldi r25, 0x06 ; 6 + 2c84: 90 87 std Z+8, r25 ; 0x08 udd_endpoint_set_control(ep_ctrl, (uint8_t) type | (uint8_t) size); - 2cd8: 83 e4 ldi r24, 0x43 ; 67 - 2cda: 81 87 std Z+9, r24 ; 0x09 + 2c86: 83 e4 ldi r24, 0x43 ; 67 + 2c88: 81 87 std Z+9, r24 ; 0x09 #endif } // Enable endpoint ep_ctrl = udd_ep_get_ctrl(ep); udd_endpoint_disable(ep_ctrl); - 2cdc: 11 8a std Z+17, r1 ; 0x11 + 2c8a: 11 8a std Z+17, r1 ; 0x11 udd_endpoint_clear_status(ep_ctrl); - 2cde: 90 8b std Z+16, r25 ; 0x10 + 2c8c: 90 8b std Z+16, r25 ; 0x10 udd_endpoint_set_control(ep_ctrl, (uint8_t) type | (uint8_t) size); - 2ce0: 81 8b std Z+17, r24 ; 0x11 + 2c8e: 81 8b std Z+17, r24 ; 0x11 udd_set_device_address(0); // Alloc and configure control endpoint udd_ep_init(0, USB_EP_TYPE_CONTROL, USB_DEVICE_EP_CTRL_SIZE); udd_ep_init(0 | USB_EP_DIR_IN, USB_EP_TYPE_CONTROL, USB_DEVICE_EP_CTRL_SIZE); udd_control_out_set_buf(&udd_ctrl_buffer); - 2ce2: 8b ef ldi r24, 0xFB ; 251 - 2ce4: 90 e2 ldi r25, 0x20 ; 32 - 2ce6: 84 87 std Z+12, r24 ; 0x0c - 2ce8: 95 87 std Z+13, r25 ; 0x0d + 2c90: 8b ef ldi r24, 0xFB ; 251 + 2c92: 90 e2 ldi r25, 0x20 ; 32 + 2c94: 84 87 std Z+12, r24 ; 0x0c + 2c96: 95 87 std Z+13, r25 ; 0x0d // Reset endpoint control management udd_ctrl_init(); - 2cea: 15 da rcall .-3030 ; 0x2116 + 2c98: 15 da rcall .-3030 ; 0x20c4 goto udd_interrupt_bus_event_end; - 2cec: 1d c0 rjmp .+58 ; 0x2d28 <__vector_125+0x140> + 2c9a: 1d c0 rjmp .+58 ; 0x2cd6 <__vector_125+0x140> } if (udd_is_suspend_event()) { - 2cee: 80 91 cb 04 lds r24, 0x04CB ; 0x8004cb <__TEXT_REGION_LENGTH__+0x7004cb> - 2cf2: 86 ff sbrs r24, 6 - 2cf4: 08 c0 rjmp .+16 ; 0x2d06 <__vector_125+0x11e> + 2c9c: 80 91 cb 04 lds r24, 0x04CB ; 0x8004cb <__TEXT_REGION_LENGTH__+0x7004cb> + 2ca0: 86 ff sbrs r24, 6 + 2ca2: 08 c0 rjmp .+16 ; 0x2cb4 <__vector_125+0x11e> udd_ack_suspend_event(); - 2cf6: 80 e4 ldi r24, 0x40 ; 64 - 2cf8: 80 93 ca 04 sts 0x04CA, r24 ; 0x8004ca <__TEXT_REGION_LENGTH__+0x7004ca> + 2ca4: 80 e4 ldi r24, 0x40 ; 64 + 2ca6: 80 93 ca 04 sts 0x04CA, r24 ; 0x8004ca <__TEXT_REGION_LENGTH__+0x7004ca> udd_sleep_mode(false); // Enter in SUSPEND mode - 2cfc: 80 e0 ldi r24, 0x00 ; 0 - 2cfe: e2 d9 rcall .-3132 ; 0x20c4 + 2caa: 80 e0 ldi r24, 0x00 ; 0 + 2cac: e2 d9 rcall .-3132 ; 0x2072 #ifdef UDC_SUSPEND_EVENT UDC_SUSPEND_EVENT(); - 2d00: 0e 94 43 04 call 0x886 ; 0x886 + 2cae: 0e 94 42 04 call 0x884 ; 0x884 #endif goto udd_interrupt_bus_event_end; - 2d04: 11 c0 rjmp .+34 ; 0x2d28 <__vector_125+0x140> + 2cb2: 11 c0 rjmp .+34 ; 0x2cd6 <__vector_125+0x140> } if (udd_is_resume_event()) { - 2d06: 80 91 cb 04 lds r24, 0x04CB ; 0x8004cb <__TEXT_REGION_LENGTH__+0x7004cb> - 2d0a: 85 ff sbrs r24, 5 - 2d0c: 0d c0 rjmp .+26 ; 0x2d28 <__vector_125+0x140> + 2cb4: 80 91 cb 04 lds r24, 0x04CB ; 0x8004cb <__TEXT_REGION_LENGTH__+0x7004cb> + 2cb8: 85 ff sbrs r24, 5 + 2cba: 0d c0 rjmp .+26 ; 0x2cd6 <__vector_125+0x140> udd_ack_resume_event(); - 2d0e: 80 e2 ldi r24, 0x20 ; 32 - 2d10: 80 93 ca 04 sts 0x04CA, r24 ; 0x8004ca <__TEXT_REGION_LENGTH__+0x7004ca> + 2cbc: 80 e2 ldi r24, 0x20 ; 32 + 2cbe: 80 93 ca 04 sts 0x04CA, r24 ; 0x8004ca <__TEXT_REGION_LENGTH__+0x7004ca> udd_sleep_mode(true); // Enter in power reduction mode - 2d14: 81 e0 ldi r24, 0x01 ; 1 - 2d16: d6 d9 rcall .-3156 ; 0x20c4 + 2cc2: 81 e0 ldi r24, 0x01 ; 1 + 2cc4: d6 d9 rcall .-3156 ; 0x2072 #ifdef UDC_RESUME_EVENT UDC_RESUME_EVENT(); - 2d18: 0e 94 44 04 call 0x888 ; 0x888 + 2cc6: 0e 94 43 04 call 0x886 ; 0x886 #endif goto udd_interrupt_bus_event_end; - 2d1c: 05 c0 rjmp .+10 ; 0x2d28 <__vector_125+0x140> + 2cca: 05 c0 rjmp .+10 ; 0x2cd6 <__vector_125+0x140> } if (udd_ctrl_interrupt_error()) { goto udd_interrupt_bus_event_end; } if (udd_is_reset_event()) { - 2d1e: 80 91 cb 04 lds r24, 0x04CB ; 0x8004cb <__TEXT_REGION_LENGTH__+0x7004cb> - 2d22: 84 ff sbrs r24, 4 - 2d24: e4 cf rjmp .-56 ; 0x2cee <__vector_125+0x106> - 2d26: cc cf rjmp .-104 ; 0x2cc0 <__vector_125+0xd8> + 2ccc: 80 91 cb 04 lds r24, 0x04CB ; 0x8004cb <__TEXT_REGION_LENGTH__+0x7004cb> + 2cd0: 84 ff sbrs r24, 4 + 2cd2: e4 cf rjmp .-56 ; 0x2c9c <__vector_125+0x106> + 2cd4: cc cf rjmp .-104 ; 0x2c6e <__vector_125+0xd8> goto udd_interrupt_bus_event_end; } udd_interrupt_bus_event_end: return; } - 2d28: ff 91 pop r31 - 2d2a: ef 91 pop r30 - 2d2c: bf 91 pop r27 - 2d2e: af 91 pop r26 - 2d30: 9f 91 pop r25 - 2d32: 8f 91 pop r24 - 2d34: 7f 91 pop r23 - 2d36: 6f 91 pop r22 - 2d38: 5f 91 pop r21 - 2d3a: 4f 91 pop r20 - 2d3c: 3f 91 pop r19 - 2d3e: 2f 91 pop r18 - 2d40: 0f 91 pop r16 - 2d42: 0f 90 pop r0 - 2d44: 0f be out 0x3f, r0 ; 63 - 2d46: 0f 90 pop r0 - 2d48: 1f 90 pop r1 - 2d4a: 18 95 reti + 2cd6: ff 91 pop r31 + 2cd8: ef 91 pop r30 + 2cda: bf 91 pop r27 + 2cdc: af 91 pop r26 + 2cde: 9f 91 pop r25 + 2ce0: 8f 91 pop r24 + 2ce2: 7f 91 pop r23 + 2ce4: 6f 91 pop r22 + 2ce6: 5f 91 pop r21 + 2ce8: 4f 91 pop r20 + 2cea: 3f 91 pop r19 + 2cec: 2f 91 pop r18 + 2cee: 0f 91 pop r16 + 2cf0: 0f 90 pop r0 + 2cf2: 0f be out 0x3f, r0 ; 63 + 2cf4: 0f 90 pop r0 + 2cf6: 1f 90 pop r1 + 2cf8: 18 95 reti -00002d4c <__vector_126>: +00002cfa <__vector_126>: * \brief Function called by USB transfer complete interrupt * * USB transfer complete interrupt includes events about endpoint transfer on all endpoints. */ ISR(USB_TRNCOMPL_vect) { - 2d4c: 1f 92 push r1 - 2d4e: 0f 92 push r0 - 2d50: 0f b6 in r0, 0x3f ; 63 - 2d52: 0f 92 push r0 - 2d54: 11 24 eor r1, r1 - 2d56: 0f 93 push r16 - 2d58: 1f 93 push r17 - 2d5a: 2f 93 push r18 - 2d5c: 3f 93 push r19 - 2d5e: 4f 93 push r20 - 2d60: 5f 93 push r21 - 2d62: 6f 93 push r22 - 2d64: 7f 93 push r23 - 2d66: 8f 93 push r24 - 2d68: 9f 93 push r25 - 2d6a: af 93 push r26 - 2d6c: bf 93 push r27 - 2d6e: cf 93 push r28 - 2d70: df 93 push r29 - 2d72: ef 93 push r30 - 2d74: ff 93 push r31 + 2cfa: 1f 92 push r1 + 2cfc: 0f 92 push r0 + 2cfe: 0f b6 in r0, 0x3f ; 63 + 2d00: 0f 92 push r0 + 2d02: 11 24 eor r1, r1 + 2d04: 0f 93 push r16 + 2d06: 1f 93 push r17 + 2d08: 2f 93 push r18 + 2d0a: 3f 93 push r19 + 2d0c: 4f 93 push r20 + 2d0e: 5f 93 push r21 + 2d10: 6f 93 push r22 + 2d12: 7f 93 push r23 + 2d14: 8f 93 push r24 + 2d16: 9f 93 push r25 + 2d18: af 93 push r26 + 2d1a: bf 93 push r27 + 2d1c: cf 93 push r28 + 2d1e: df 93 push r29 + 2d20: ef 93 push r30 + 2d22: ff 93 push r31 int8_t rp; UDD_EP_t *ep_ctrl; udd_ep_id_t ep; #endif if (!udd_is_tc_event()) { - 2d76: 80 91 cc 04 lds r24, 0x04CC ; 0x8004cc <__TEXT_REGION_LENGTH__+0x7004cc> - 2d7a: 81 fd sbrc r24, 1 - 2d7c: 03 c0 rjmp .+6 ; 0x2d84 <__vector_126+0x38> + 2d24: 80 91 cc 04 lds r24, 0x04CC ; 0x8004cc <__TEXT_REGION_LENGTH__+0x7004cc> + 2d28: 81 fd sbrc r24, 1 + 2d2a: 03 c0 rjmp .+6 ; 0x2d32 <__vector_126+0x38> // If no other transfer complete // then check reception of SETUP packet on control endpoint if (udd_ctrl_interrupt_tc_setup()) { - 2d7e: c3 da rcall .-2682 ; 0x2306 - 2d80: 81 11 cpse r24, r1 - 2d82: b9 c0 rjmp .+370 ; 0x2ef6 <__vector_126+0x1aa> + 2d2c: c3 da rcall .-2682 ; 0x22b4 + 2d2e: 81 11 cpse r24, r1 + 2d30: b9 c0 rjmp .+370 ; 0x2ea4 <__vector_126+0x1aa> goto udd_interrupt_tc_end; } Assert(false); } // Check IN/OUT transfer complete on all endpoints udd_ack_tc_event(); - 2d84: 82 e0 ldi r24, 0x02 ; 2 - 2d86: 80 93 cc 04 sts 0x04CC, r24 ; 0x8004cc <__TEXT_REGION_LENGTH__+0x7004cc> + 2d32: 82 e0 ldi r24, 0x02 ; 2 + 2d34: 80 93 cc 04 sts 0x04CC, r24 ; 0x8004cc <__TEXT_REGION_LENGTH__+0x7004cc> #if (0!=USB_DEVICE_MAX_EP) //** Decode TC FIFO // Compute ep addr rp = udd_get_fifo_rp(); - 2d8a: 80 91 c5 04 lds r24, 0x04C5 ; 0x8004c5 <__TEXT_REGION_LENGTH__+0x7004c5> + 2d38: 80 91 c5 04 lds r24, 0x04C5 ; 0x8004c5 <__TEXT_REGION_LENGTH__+0x7004c5> i_fifo = 2 * (1 + ~rp); - 2d8e: 81 95 neg r24 - 2d90: 88 0f add r24, r24 + 2d3c: 81 95 neg r24 + 2d3e: 88 0f add r24, r24 ad = ((uint16_t) udd_sram.ep_ctrl) - i_fifo; - 2d92: e8 e4 ldi r30, 0x48 ; 72 - 2d94: f1 e2 ldi r31, 0x21 ; 33 - 2d96: e8 1b sub r30, r24 - 2d98: f1 09 sbc r31, r1 + 2d40: e8 e4 ldi r30, 0x48 ; 72 + 2d42: f1 e2 ldi r31, 0x21 ; 33 + 2d44: e8 1b sub r30, r24 + 2d46: f1 09 sbc r31, r1 p_ad = (uint16_t *) ad; // Compute ep ep_index = (((uint16_t) * p_ad - ((uint16_t) udd_sram.ep_ctrl)) >> 3); - 2d9a: 20 81 ld r18, Z - 2d9c: 31 81 ldd r19, Z+1 ; 0x01 - 2d9e: 28 54 subi r18, 0x48 ; 72 - 2da0: 31 42 sbci r19, 0x21 ; 33 - 2da2: 36 95 lsr r19 - 2da4: 27 95 ror r18 - 2da6: 36 95 lsr r19 - 2da8: 27 95 ror r18 - 2daa: 36 95 lsr r19 - 2dac: 27 95 ror r18 + 2d48: 20 81 ld r18, Z + 2d4a: 31 81 ldd r19, Z+1 ; 0x01 + 2d4c: 28 54 subi r18, 0x48 ; 72 + 2d4e: 31 42 sbci r19, 0x21 ; 33 + 2d50: 36 95 lsr r19 + 2d52: 27 95 ror r18 + 2d54: 36 95 lsr r19 + 2d56: 27 95 ror r18 + 2d58: 36 95 lsr r19 + 2d5a: 27 95 ror r18 ep = (ep_index / 2) + ((ep_index & 1) ? USB_EP_DIR_IN : 0); - 2dae: 82 2f mov r24, r18 - 2db0: 86 95 lsr r24 - 2db2: 20 fd sbrc r18, 0 - 2db4: 02 c0 rjmp .+4 ; 0x2dba <__vector_126+0x6e> - 2db6: 90 e0 ldi r25, 0x00 ; 0 - 2db8: 01 c0 rjmp .+2 ; 0x2dbc <__vector_126+0x70> - 2dba: 90 e8 ldi r25, 0x80 ; 128 - 2dbc: 89 0f add r24, r25 + 2d5c: 82 2f mov r24, r18 + 2d5e: 86 95 lsr r24 + 2d60: 20 fd sbrc r18, 0 + 2d62: 02 c0 rjmp .+4 ; 0x2d68 <__vector_126+0x6e> + 2d64: 90 e0 ldi r25, 0x00 ; 0 + 2d66: 01 c0 rjmp .+2 ; 0x2d6a <__vector_126+0x70> + 2d68: 90 e8 ldi r25, 0x80 ; 128 + 2d6a: 89 0f add r24, r25 udd_endpoint_set_control(ep_ctrl, (uint8_t) type | (uint8_t) size); } static UDD_EP_t *udd_ep_get_ctrl(udd_ep_id_t ep) { return &udd_sram.ep_ctrl[(2 * (ep & USB_EP_ADDR_MASK) + - 2dbe: e8 2f mov r30, r24 - 2dc0: ef 70 andi r30, 0x0F ; 15 - 2dc2: f0 e0 ldi r31, 0x00 ; 0 - 2dc4: ee 0f add r30, r30 - 2dc6: ff 1f adc r31, r31 + 2d6c: e8 2f mov r30, r24 + 2d6e: ef 70 andi r30, 0x0F ; 15 + 2d70: f0 e0 ldi r31, 0x00 ; 0 + 2d72: ee 0f add r30, r30 + 2d74: ff 1f adc r31, r31 ((ep & USB_EP_DIR_IN) ? 1 : 0))]; - 2dc8: 28 2f mov r18, r24 - 2dca: 08 2e mov r0, r24 - 2dcc: 00 0c add r0, r0 - 2dce: 33 0b sbc r19, r19 - 2dd0: 22 27 eor r18, r18 - 2dd2: 33 0f add r19, r19 - 2dd4: 22 1f adc r18, r18 - 2dd6: 33 27 eor r19, r19 + 2d76: 28 2f mov r18, r24 + 2d78: 08 2e mov r0, r24 + 2d7a: 00 0c add r0, r0 + 2d7c: 33 0b sbc r19, r19 + 2d7e: 22 27 eor r18, r18 + 2d80: 33 0f add r19, r19 + 2d82: 22 1f adc r18, r18 + 2d84: 33 27 eor r19, r19 udd_endpoint_set_control(ep_ctrl, (uint8_t) type | (uint8_t) size); } static UDD_EP_t *udd_ep_get_ctrl(udd_ep_id_t ep) { return &udd_sram.ep_ctrl[(2 * (ep & USB_EP_ADDR_MASK) + - 2dd8: e2 0f add r30, r18 - 2dda: f3 1f adc r31, r19 + 2d86: e2 0f add r30, r18 + 2d88: f3 1f adc r31, r19 ep = (ep_index / 2) + ((ep_index & 1) ? USB_EP_DIR_IN : 0); Assert(USB_DEVICE_MAX_EP >= (ep & USB_EP_ADDR_MASK)); // Ack IT TC of endpoint ep_ctrl = udd_ep_get_ctrl(ep); if (!udd_endpoint_transfer_complete(ep_ctrl)) { - 2ddc: df 01 movw r26, r30 - 2dde: aa 0f add r26, r26 - 2de0: bb 1f adc r27, r27 - 2de2: aa 0f add r26, r26 - 2de4: bb 1f adc r27, r27 - 2de6: aa 0f add r26, r26 - 2de8: bb 1f adc r27, r27 - 2dea: a8 5b subi r26, 0xB8 ; 184 - 2dec: be 4d sbci r27, 0xDE ; 222 - 2dee: 9c 91 ld r25, X - 2df0: 95 ff sbrs r25, 5 - 2df2: 81 c0 rjmp .+258 ; 0x2ef6 <__vector_126+0x1aa> + 2d8a: df 01 movw r26, r30 + 2d8c: aa 0f add r26, r26 + 2d8e: bb 1f adc r27, r27 + 2d90: aa 0f add r26, r26 + 2d92: bb 1f adc r27, r27 + 2d94: aa 0f add r26, r26 + 2d96: bb 1f adc r27, r27 + 2d98: a8 5b subi r26, 0xB8 ; 184 + 2d9a: be 4d sbci r27, 0xDE ; 222 + 2d9c: 9c 91 ld r25, X + 2d9e: 95 ff sbrs r25, 5 + 2da0: 81 c0 rjmp .+258 ; 0x2ea4 <__vector_126+0x1aa> return; // Error, TC is generated by Multipacket transfer } udd_endpoint_ack_transfer_complete(ep_ctrl); - 2df4: fd 01 movw r30, r26 - 2df6: 00 e2 ldi r16, 0x20 ; 32 - 2df8: 06 93 lac Z, r16 + 2da2: fd 01 movw r30, r26 + 2da4: 00 e2 ldi r16, 0x20 ; 32 + 2da6: 06 93 lac Z, r16 // Check status on control endpoint if (ep == 0) { - 2dfa: 81 11 cpse r24, r1 - 2dfc: 77 c0 rjmp .+238 ; 0x2eec <__vector_126+0x1a0> + 2da8: 81 11 cpse r24, r1 + 2daa: 77 c0 rjmp .+238 ; 0x2e9a <__vector_126+0x1a0> static void udd_ctrl_out_received(void) { uint16_t nb_data; if (UDD_EPCTRL_HANDSHAKE_WAIT_OUT_ZLP == udd_ep_control_state) { - 2dfe: 80 91 3f 21 lds r24, 0x213F ; 0x80213f - 2e02: 84 30 cpi r24, 0x04 ; 4 - 2e04: 19 f4 brne .+6 ; 0x2e0c <__vector_126+0xc0> + 2dac: 80 91 3f 21 lds r24, 0x213F ; 0x80213f + 2db0: 84 30 cpi r24, 0x04 ; 4 + 2db2: 19 f4 brne .+6 ; 0x2dba <__vector_126+0xc0> // Valid end of setup request udd_ctrl_endofrequest(); - 2e06: ca d9 rcall .-3180 ; 0x219c + 2db4: ca d9 rcall .-3180 ; 0x214a // Reinitializes control endpoint management udd_ctrl_init(); - 2e08: 86 d9 rcall .-3316 ; 0x2116 - 2e0a: 75 c0 rjmp .+234 ; 0x2ef6 <__vector_126+0x1aa> + 2db6: 86 d9 rcall .-3316 ; 0x20c4 + 2db8: 75 c0 rjmp .+234 ; 0x2ea4 <__vector_126+0x1aa> return; } Assert(udd_ep_control_state == UDD_EPCTRL_DATA_OUT); // Read data received during OUT phase nb_data = udd_control_out_get_bytecnt(); - 2e0c: 00 91 4a 21 lds r16, 0x214A ; 0x80214a - 2e10: 10 91 4b 21 lds r17, 0x214B ; 0x80214b + 2dba: 00 91 4a 21 lds r16, 0x214A ; 0x80214a + 2dbe: 10 91 4b 21 lds r17, 0x214B ; 0x80214b if (udd_g_ctrlreq.payload_size < (udd_ctrl_payload_nb_trans + nb_data)) { - 2e14: 80 91 a4 23 lds r24, 0x23A4 ; 0x8023a4 - 2e18: 90 91 a5 23 lds r25, 0x23A5 ; 0x8023a5 - 2e1c: c0 91 3b 21 lds r28, 0x213B ; 0x80213b - 2e20: d0 91 3c 21 lds r29, 0x213C ; 0x80213c - 2e24: 9e 01 movw r18, r28 - 2e26: 20 0f add r18, r16 - 2e28: 31 1f adc r19, r17 - 2e2a: 82 17 cp r24, r18 - 2e2c: 93 07 cpc r25, r19 - 2e2e: 18 f4 brcc .+6 ; 0x2e36 <__vector_126+0xea> + 2dc2: 80 91 a4 23 lds r24, 0x23A4 ; 0x8023a4 + 2dc6: 90 91 a5 23 lds r25, 0x23A5 ; 0x8023a5 + 2dca: c0 91 3b 21 lds r28, 0x213B ; 0x80213b + 2dce: d0 91 3c 21 lds r29, 0x213C ; 0x80213c + 2dd2: 9e 01 movw r18, r28 + 2dd4: 20 0f add r18, r16 + 2dd6: 31 1f adc r19, r17 + 2dd8: 82 17 cp r24, r18 + 2dda: 93 07 cpc r25, r19 + 2ddc: 18 f4 brcc .+6 ; 0x2de4 <__vector_126+0xea> // Payload buffer too small, ignore data remaining nb_data = udd_g_ctrlreq.payload_size - udd_ctrl_payload_nb_trans; - 2e30: 8c 01 movw r16, r24 - 2e32: 0c 1b sub r16, r28 - 2e34: 1d 0b sbc r17, r29 + 2dde: 8c 01 movw r16, r24 + 2de0: 0c 1b sub r16, r28 + 2de2: 1d 0b sbc r17, r29 } memcpy((uint8_t *) (udd_g_ctrlreq.payload + udd_ctrl_payload_nb_trans), - 2e36: 80 91 a2 23 lds r24, 0x23A2 ; 0x8023a2 - 2e3a: 90 91 a3 23 lds r25, 0x23A3 ; 0x8023a3 - 2e3e: a8 01 movw r20, r16 - 2e40: 6b ef ldi r22, 0xFB ; 251 - 2e42: 70 e2 ldi r23, 0x20 ; 32 - 2e44: 8c 0f add r24, r28 - 2e46: 9d 1f adc r25, r29 - 2e48: 98 d0 rcall .+304 ; 0x2f7a + 2de4: 80 91 a2 23 lds r24, 0x23A2 ; 0x8023a2 + 2de8: 90 91 a3 23 lds r25, 0x23A3 ; 0x8023a3 + 2dec: a8 01 movw r20, r16 + 2dee: 6b ef ldi r22, 0xFB ; 251 + 2df0: 70 e2 ldi r23, 0x20 ; 32 + 2df2: 8c 0f add r24, r28 + 2df4: 9d 1f adc r25, r29 + 2df6: 98 d0 rcall .+304 ; 0x2f28 udd_ctrl_buffer, nb_data); udd_ctrl_payload_nb_trans += nb_data; - 2e4a: c0 0f add r28, r16 - 2e4c: d1 1f adc r29, r17 - 2e4e: c0 93 3b 21 sts 0x213B, r28 ; 0x80213b - 2e52: d0 93 3c 21 sts 0x213C, r29 ; 0x80213c + 2df8: c0 0f add r28, r16 + 2dfa: d1 1f adc r29, r17 + 2dfc: c0 93 3b 21 sts 0x213B, r28 ; 0x80213b + 2e00: d0 93 3c 21 sts 0x213C, r29 ; 0x80213c if ((USB_DEVICE_EP_CTRL_SIZE != nb_data) || (udd_g_ctrlreq.req.wLength - 2e56: 00 34 cpi r16, 0x40 ; 64 - 2e58: 11 05 cpc r17, r1 - 2e5a: 69 f4 brne .+26 ; 0x2e76 <__vector_126+0x12a> + 2e04: 00 34 cpi r16, 0x40 ; 64 + 2e06: 11 05 cpc r17, r1 + 2e08: 69 f4 brne .+26 ; 0x2e24 <__vector_126+0x12a> <= (udd_ctrl_prev_payload_nb_trans + udd_ctrl_payload_nb_trans))) { - 2e5c: 80 91 3d 21 lds r24, 0x213D ; 0x80213d - 2e60: 90 91 3e 21 lds r25, 0x213E ; 0x80213e - 2e64: 8c 0f add r24, r28 - 2e66: 9d 1f adc r25, r29 + 2e0a: 80 91 3d 21 lds r24, 0x213D ; 0x80213d + 2e0e: 90 91 3e 21 lds r25, 0x213E ; 0x80213e + 2e12: 8c 0f add r24, r28 + 2e14: 9d 1f adc r25, r29 memcpy((uint8_t *) (udd_g_ctrlreq.payload + udd_ctrl_payload_nb_trans), udd_ctrl_buffer, nb_data); udd_ctrl_payload_nb_trans += nb_data; if ((USB_DEVICE_EP_CTRL_SIZE != nb_data) || (udd_g_ctrlreq.req.wLength - 2e68: 20 91 a0 23 lds r18, 0x23A0 ; 0x8023a0 - 2e6c: 30 91 a1 23 lds r19, 0x23A1 ; 0x8023a1 - 2e70: 82 17 cp r24, r18 - 2e72: 93 07 cpc r25, r19 - 2e74: 80 f0 brcs .+32 ; 0x2e96 <__vector_126+0x14a> + 2e16: 20 91 a0 23 lds r18, 0x23A0 ; 0x8023a0 + 2e1a: 30 91 a1 23 lds r19, 0x23A1 ; 0x8023a1 + 2e1e: 82 17 cp r24, r18 + 2e20: 93 07 cpc r25, r19 + 2e22: 80 f0 brcs .+32 ; 0x2e44 <__vector_126+0x14a> // End of reception because it is a short packet // or all data are transfered // Before send ZLP, call intermediate callback // in case of data receive generate a stall udd_g_ctrlreq.payload_size = udd_ctrl_payload_nb_trans; - 2e76: ea e9 ldi r30, 0x9A ; 154 - 2e78: f3 e2 ldi r31, 0x23 ; 35 - 2e7a: c2 87 std Z+10, r28 ; 0x0a - 2e7c: d3 87 std Z+11, r29 ; 0x0b + 2e24: ea e9 ldi r30, 0x9A ; 154 + 2e26: f3 e2 ldi r31, 0x23 ; 35 + 2e28: c2 87 std Z+10, r28 ; 0x0a + 2e2a: d3 87 std Z+11, r29 ; 0x0b if (NULL != udd_g_ctrlreq.over_under_run) { - 2e7e: 06 84 ldd r0, Z+14 ; 0x0e - 2e80: f7 85 ldd r31, Z+15 ; 0x0f - 2e82: e0 2d mov r30, r0 - 2e84: 30 97 sbiw r30, 0x00 ; 0 - 2e86: 29 f0 breq .+10 ; 0x2e92 <__vector_126+0x146> + 2e2c: 06 84 ldd r0, Z+14 ; 0x0e + 2e2e: f7 85 ldd r31, Z+15 ; 0x0f + 2e30: e0 2d mov r30, r0 + 2e32: 30 97 sbiw r30, 0x00 ; 0 + 2e34: 29 f0 breq .+10 ; 0x2e40 <__vector_126+0x146> if (!udd_g_ctrlreq.over_under_run()) { - 2e88: 09 95 icall - 2e8a: 81 11 cpse r24, r1 - 2e8c: 02 c0 rjmp .+4 ; 0x2e92 <__vector_126+0x146> + 2e36: 09 95 icall + 2e38: 81 11 cpse r24, r1 + 2e3a: 02 c0 rjmp .+4 ; 0x2e40 <__vector_126+0x146> // Stall ZLP udd_ctrl_stall_data(); - 2e8e: 6a d9 rcall .-3372 ; 0x2164 - 2e90: 32 c0 rjmp .+100 ; 0x2ef6 <__vector_126+0x1aa> + 2e3c: 6a d9 rcall .-3372 ; 0x2112 + 2e3e: 32 c0 rjmp .+100 ; 0x2ea4 <__vector_126+0x1aa> return; } } // Send IN ZLP to ACK setup request udd_ctrl_send_zlp_in(); - 2e92: 76 d9 rcall .-3348 ; 0x2180 - 2e94: 30 c0 rjmp .+96 ; 0x2ef6 <__vector_126+0x1aa> + 2e40: 76 d9 rcall .-3348 ; 0x212e + 2e42: 30 c0 rjmp .+96 ; 0x2ea4 <__vector_126+0x1aa> return; } if (udd_g_ctrlreq.payload_size == udd_ctrl_payload_nb_trans) { - 2e96: 80 91 a4 23 lds r24, 0x23A4 ; 0x8023a4 - 2e9a: 90 91 a5 23 lds r25, 0x23A5 ; 0x8023a5 - 2e9e: c8 17 cp r28, r24 - 2ea0: d9 07 cpc r29, r25 - 2ea2: f9 f4 brne .+62 ; 0x2ee2 <__vector_126+0x196> + 2e44: 80 91 a4 23 lds r24, 0x23A4 ; 0x8023a4 + 2e48: 90 91 a5 23 lds r25, 0x23A5 ; 0x8023a5 + 2e4c: c8 17 cp r28, r24 + 2e4e: d9 07 cpc r29, r25 + 2e50: f9 f4 brne .+62 ; 0x2e90 <__vector_126+0x196> // Overrun then request a new payload buffer if (!udd_g_ctrlreq.over_under_run) { - 2ea4: e0 91 a8 23 lds r30, 0x23A8 ; 0x8023a8 - 2ea8: f0 91 a9 23 lds r31, 0x23A9 ; 0x8023a9 - 2eac: 30 97 sbiw r30, 0x00 ; 0 - 2eae: 11 f4 brne .+4 ; 0x2eb4 <__vector_126+0x168> + 2e52: e0 91 a8 23 lds r30, 0x23A8 ; 0x8023a8 + 2e56: f0 91 a9 23 lds r31, 0x23A9 ; 0x8023a9 + 2e5a: 30 97 sbiw r30, 0x00 ; 0 + 2e5c: 11 f4 brne .+4 ; 0x2e62 <__vector_126+0x168> // No callback available to request a new payload buffer udd_ctrl_stall_data(); - 2eb0: 59 d9 rcall .-3406 ; 0x2164 - 2eb2: 21 c0 rjmp .+66 ; 0x2ef6 <__vector_126+0x1aa> + 2e5e: 59 d9 rcall .-3406 ; 0x2112 + 2e60: 21 c0 rjmp .+66 ; 0x2ea4 <__vector_126+0x1aa> return; } if (!udd_g_ctrlreq.over_under_run()) { - 2eb4: 09 95 icall - 2eb6: 81 11 cpse r24, r1 - 2eb8: 02 c0 rjmp .+4 ; 0x2ebe <__vector_126+0x172> + 2e62: 09 95 icall + 2e64: 81 11 cpse r24, r1 + 2e66: 02 c0 rjmp .+4 ; 0x2e6c <__vector_126+0x172> // No new payload buffer delivered udd_ctrl_stall_data(); - 2eba: 54 d9 rcall .-3416 ; 0x2164 - 2ebc: 1c c0 rjmp .+56 ; 0x2ef6 <__vector_126+0x1aa> + 2e68: 54 d9 rcall .-3416 ; 0x2112 + 2e6a: 1c c0 rjmp .+56 ; 0x2ea4 <__vector_126+0x1aa> return; } // New payload buffer available // Update number of total data received udd_ctrl_prev_payload_nb_trans += udd_ctrl_payload_nb_trans; - 2ebe: 20 91 3d 21 lds r18, 0x213D ; 0x80213d - 2ec2: 30 91 3e 21 lds r19, 0x213E ; 0x80213e - 2ec6: 80 91 3b 21 lds r24, 0x213B ; 0x80213b - 2eca: 90 91 3c 21 lds r25, 0x213C ; 0x80213c - 2ece: 82 0f add r24, r18 - 2ed0: 93 1f adc r25, r19 - 2ed2: 80 93 3d 21 sts 0x213D, r24 ; 0x80213d - 2ed6: 90 93 3e 21 sts 0x213E, r25 ; 0x80213e + 2e6c: 20 91 3d 21 lds r18, 0x213D ; 0x80213d + 2e70: 30 91 3e 21 lds r19, 0x213E ; 0x80213e + 2e74: 80 91 3b 21 lds r24, 0x213B ; 0x80213b + 2e78: 90 91 3c 21 lds r25, 0x213C ; 0x80213c + 2e7c: 82 0f add r24, r18 + 2e7e: 93 1f adc r25, r19 + 2e80: 80 93 3d 21 sts 0x213D, r24 ; 0x80213d + 2e84: 90 93 3e 21 sts 0x213E, r25 ; 0x80213e // Reinit reception on payload buffer udd_ctrl_payload_nb_trans = 0; - 2eda: 10 92 3b 21 sts 0x213B, r1 ; 0x80213b - 2ede: 10 92 3c 21 sts 0x213C, r1 ; 0x80213c + 2e88: 10 92 3b 21 sts 0x213B, r1 ; 0x80213b + 2e8c: 10 92 3c 21 sts 0x213C, r1 ; 0x80213c } // Free buffer of OUT control endpoint to authorize next reception udd_control_out_clear_NACK0(); - 2ee2: e8 e4 ldi r30, 0x48 ; 72 - 2ee4: f1 e2 ldi r31, 0x21 ; 33 - 2ee6: 02 e0 ldi r16, 0x02 ; 2 - 2ee8: 06 93 lac Z, r16 - 2eea: 05 c0 rjmp .+10 ; 0x2ef6 <__vector_126+0x1aa> + 2e90: e8 e4 ldi r30, 0x48 ; 72 + 2e92: f1 e2 ldi r31, 0x21 ; 33 + 2e94: 02 e0 ldi r16, 0x02 ; 2 + 2e96: 06 93 lac Z, r16 + 2e98: 05 c0 rjmp .+10 ; 0x2ea4 <__vector_126+0x1aa> // Check status on control endpoint if (ep == 0) { udd_ctrl_out_received(); goto udd_interrupt_tc_end; // Interrupt acked by control endpoint managed } if (ep == (0 | USB_EP_DIR_IN)) { - 2eec: 80 38 cpi r24, 0x80 ; 128 - 2eee: 11 f4 brne .+4 ; 0x2ef4 <__vector_126+0x1a8> + 2e9a: 80 38 cpi r24, 0x80 ; 128 + 2e9c: 11 f4 brne .+4 ; 0x2ea2 <__vector_126+0x1a8> udd_ctrl_in_sent(); - 2ef0: 5d d9 rcall .-3398 ; 0x21ac + 2e9e: 5d d9 rcall .-3398 ; 0x215a goto udd_interrupt_tc_end; // Interrupt acked by control endpoint managed - 2ef2: 01 c0 rjmp .+2 ; 0x2ef6 <__vector_126+0x1aa> + 2ea0: 01 c0 rjmp .+2 ; 0x2ea4 <__vector_126+0x1aa> } Assert(udd_ep_is_valid(ep)); // Manage end of transfer on endpoint bulk/interrupt/isochronous udd_ep_trans_complet(ep); - 2ef4: 77 da rcall .-2834 ; 0x23e4 + 2ea2: 77 da rcall .-2834 ; 0x2392 } #endif udd_interrupt_tc_end: return; } - 2ef6: ff 91 pop r31 - 2ef8: ef 91 pop r30 - 2efa: df 91 pop r29 - 2efc: cf 91 pop r28 - 2efe: bf 91 pop r27 - 2f00: af 91 pop r26 - 2f02: 9f 91 pop r25 - 2f04: 8f 91 pop r24 - 2f06: 7f 91 pop r23 - 2f08: 6f 91 pop r22 - 2f0a: 5f 91 pop r21 - 2f0c: 4f 91 pop r20 - 2f0e: 3f 91 pop r19 - 2f10: 2f 91 pop r18 - 2f12: 1f 91 pop r17 - 2f14: 0f 91 pop r16 - 2f16: 0f 90 pop r0 - 2f18: 0f be out 0x3f, r0 ; 63 - 2f1a: 0f 90 pop r0 - 2f1c: 1f 90 pop r1 - 2f1e: 18 95 reti + 2ea4: ff 91 pop r31 + 2ea6: ef 91 pop r30 + 2ea8: df 91 pop r29 + 2eaa: cf 91 pop r28 + 2eac: bf 91 pop r27 + 2eae: af 91 pop r26 + 2eb0: 9f 91 pop r25 + 2eb2: 8f 91 pop r24 + 2eb4: 7f 91 pop r23 + 2eb6: 6f 91 pop r22 + 2eb8: 5f 91 pop r21 + 2eba: 4f 91 pop r20 + 2ebc: 3f 91 pop r19 + 2ebe: 2f 91 pop r18 + 2ec0: 1f 91 pop r17 + 2ec2: 0f 91 pop r16 + 2ec4: 0f 90 pop r0 + 2ec6: 0f be out 0x3f, r0 ; 63 + 2ec8: 0f 90 pop r0 + 2eca: 1f 90 pop r1 + 2ecc: 18 95 reti -00002f20 <__udivmodhi4>: - 2f20: aa 1b sub r26, r26 - 2f22: bb 1b sub r27, r27 - 2f24: 51 e1 ldi r21, 0x11 ; 17 - 2f26: 07 c0 rjmp .+14 ; 0x2f36 <__udivmodhi4_ep> +00002ece <__udivmodhi4>: + 2ece: aa 1b sub r26, r26 + 2ed0: bb 1b sub r27, r27 + 2ed2: 51 e1 ldi r21, 0x11 ; 17 + 2ed4: 07 c0 rjmp .+14 ; 0x2ee4 <__udivmodhi4_ep> -00002f28 <__udivmodhi4_loop>: - 2f28: aa 1f adc r26, r26 - 2f2a: bb 1f adc r27, r27 - 2f2c: a6 17 cp r26, r22 - 2f2e: b7 07 cpc r27, r23 - 2f30: 10 f0 brcs .+4 ; 0x2f36 <__udivmodhi4_ep> - 2f32: a6 1b sub r26, r22 - 2f34: b7 0b sbc r27, r23 +00002ed6 <__udivmodhi4_loop>: + 2ed6: aa 1f adc r26, r26 + 2ed8: bb 1f adc r27, r27 + 2eda: a6 17 cp r26, r22 + 2edc: b7 07 cpc r27, r23 + 2ede: 10 f0 brcs .+4 ; 0x2ee4 <__udivmodhi4_ep> + 2ee0: a6 1b sub r26, r22 + 2ee2: b7 0b sbc r27, r23 -00002f36 <__udivmodhi4_ep>: - 2f36: 88 1f adc r24, r24 - 2f38: 99 1f adc r25, r25 - 2f3a: 5a 95 dec r21 - 2f3c: a9 f7 brne .-22 ; 0x2f28 <__udivmodhi4_loop> - 2f3e: 80 95 com r24 - 2f40: 90 95 com r25 - 2f42: bc 01 movw r22, r24 - 2f44: cd 01 movw r24, r26 - 2f46: 08 95 ret +00002ee4 <__udivmodhi4_ep>: + 2ee4: 88 1f adc r24, r24 + 2ee6: 99 1f adc r25, r25 + 2ee8: 5a 95 dec r21 + 2eea: a9 f7 brne .-22 ; 0x2ed6 <__udivmodhi4_loop> + 2eec: 80 95 com r24 + 2eee: 90 95 com r25 + 2ef0: bc 01 movw r22, r24 + 2ef2: cd 01 movw r24, r26 + 2ef4: 08 95 ret -00002f48 <__divmodhi4>: - 2f48: 97 fb bst r25, 7 - 2f4a: 07 2e mov r0, r23 - 2f4c: 16 f4 brtc .+4 ; 0x2f52 <__divmodhi4+0xa> - 2f4e: 00 94 com r0 - 2f50: 06 d0 rcall .+12 ; 0x2f5e <__divmodhi4_neg1> - 2f52: 77 fd sbrc r23, 7 - 2f54: 08 d0 rcall .+16 ; 0x2f66 <__divmodhi4_neg2> - 2f56: e4 df rcall .-56 ; 0x2f20 <__udivmodhi4> - 2f58: 07 fc sbrc r0, 7 - 2f5a: 05 d0 rcall .+10 ; 0x2f66 <__divmodhi4_neg2> - 2f5c: 3e f4 brtc .+14 ; 0x2f6c <__divmodhi4_exit> +00002ef6 <__divmodhi4>: + 2ef6: 97 fb bst r25, 7 + 2ef8: 07 2e mov r0, r23 + 2efa: 16 f4 brtc .+4 ; 0x2f00 <__divmodhi4+0xa> + 2efc: 00 94 com r0 + 2efe: 06 d0 rcall .+12 ; 0x2f0c <__divmodhi4_neg1> + 2f00: 77 fd sbrc r23, 7 + 2f02: 08 d0 rcall .+16 ; 0x2f14 <__divmodhi4_neg2> + 2f04: e4 df rcall .-56 ; 0x2ece <__udivmodhi4> + 2f06: 07 fc sbrc r0, 7 + 2f08: 05 d0 rcall .+10 ; 0x2f14 <__divmodhi4_neg2> + 2f0a: 3e f4 brtc .+14 ; 0x2f1a <__divmodhi4_exit> -00002f5e <__divmodhi4_neg1>: - 2f5e: 90 95 com r25 - 2f60: 81 95 neg r24 - 2f62: 9f 4f sbci r25, 0xFF ; 255 - 2f64: 08 95 ret +00002f0c <__divmodhi4_neg1>: + 2f0c: 90 95 com r25 + 2f0e: 81 95 neg r24 + 2f10: 9f 4f sbci r25, 0xFF ; 255 + 2f12: 08 95 ret -00002f66 <__divmodhi4_neg2>: - 2f66: 70 95 com r23 - 2f68: 61 95 neg r22 - 2f6a: 7f 4f sbci r23, 0xFF ; 255 +00002f14 <__divmodhi4_neg2>: + 2f14: 70 95 com r23 + 2f16: 61 95 neg r22 + 2f18: 7f 4f sbci r23, 0xFF ; 255 -00002f6c <__divmodhi4_exit>: - 2f6c: 08 95 ret +00002f1a <__divmodhi4_exit>: + 2f1a: 08 95 ret -00002f6e <__tablejump2__>: - 2f6e: ee 0f add r30, r30 - 2f70: ff 1f adc r31, r31 - 2f72: 05 90 lpm r0, Z+ - 2f74: f4 91 lpm r31, Z - 2f76: e0 2d mov r30, r0 - 2f78: 09 94 ijmp +00002f1c <__tablejump2__>: + 2f1c: ee 0f add r30, r30 + 2f1e: ff 1f adc r31, r31 + 2f20: 05 90 lpm r0, Z+ + 2f22: f4 91 lpm r31, Z + 2f24: e0 2d mov r30, r0 + 2f26: 09 94 ijmp -00002f7a : - 2f7a: fb 01 movw r30, r22 - 2f7c: dc 01 movw r26, r24 - 2f7e: 02 c0 rjmp .+4 ; 0x2f84 - 2f80: 01 90 ld r0, Z+ - 2f82: 0d 92 st X+, r0 - 2f84: 41 50 subi r20, 0x01 ; 1 - 2f86: 50 40 sbci r21, 0x00 ; 0 - 2f88: d8 f7 brcc .-10 ; 0x2f80 - 2f8a: 08 95 ret +00002f28 : + 2f28: fb 01 movw r30, r22 + 2f2a: dc 01 movw r26, r24 + 2f2c: 02 c0 rjmp .+4 ; 0x2f32 + 2f2e: 01 90 ld r0, Z+ + 2f30: 0d 92 st X+, r0 + 2f32: 41 50 subi r20, 0x01 ; 1 + 2f34: 50 40 sbci r21, 0x00 ; 0 + 2f36: d8 f7 brcc .-10 ; 0x2f2e + 2f38: 08 95 ret -00002f8c <_exit>: - 2f8c: f8 94 cli +00002f3a <_exit>: + 2f3a: f8 94 cli -00002f8e <__stop_program>: - 2f8e: ff cf rjmp .-2 ; 0x2f8e <__stop_program> +00002f3c <__stop_program>: + 2f3c: ff cf rjmp .-2 ; 0x2f3c <__stop_program> diff --git a/AVR Code/USB_BULK_TEST/Debug/USB_BULK_TEST.map b/AVR Code/USB_BULK_TEST/Debug/USB_BULK_TEST.map index 65c7069d..847e1408 100644 --- a/AVR Code/USB_BULK_TEST/Debug/USB_BULK_TEST.map +++ b/AVR Code/USB_BULK_TEST/Debug/USB_BULK_TEST.map @@ -2200,7 +2200,7 @@ END GROUP .rela.plt *(.rela.plt) -.text 0x00000000 0x2f90 +.text 0x00000000 0x2f3e *(.vectors) .vectors 0x00000000 0x1fc C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/XMEGAA_DFP/1.0.39/gcc/dev/atxmega32a4u/avrxmega2/crtatxmega32a4u.o 0x00000000 __vector_default @@ -2428,247 +2428,247 @@ END GROUP .text.jump_to_bootloader 0x000007be 0xa src/main.o 0x000007be jump_to_bootloader - .text.main 0x000007c8 0xbe src/main.o + .text.main 0x000007c8 0xbc src/main.o 0x000007c8 main .text.main_suspend_action - 0x00000886 0x2 src/main.o - 0x00000886 main_suspend_action + 0x00000884 0x2 src/main.o + 0x00000884 main_suspend_action .text.main_resume_action - 0x00000888 0x2 src/main.o - 0x00000888 main_resume_action + 0x00000886 0x2 src/main.o + 0x00000886 main_resume_action .text.main_sof_action - 0x0000088a 0xec src/main.o - 0x0000088a main_sof_action + 0x00000888 0xec src/main.o + 0x00000888 main_sof_action .text.main_vendor_enable - 0x00000976 0x7a src/main.o - 0x00000976 main_vendor_enable + 0x00000974 0x2a src/main.o + 0x00000974 main_vendor_enable .text.main_vendor_disable - 0x000009f0 0x6 src/main.o - 0x000009f0 main_vendor_disable + 0x0000099e 0x6 src/main.o + 0x0000099e main_vendor_disable .text.main_setup_out_received - 0x000009f6 0x4 src/main.o - 0x000009f6 main_setup_out_received + 0x000009a4 0x4 src/main.o + 0x000009a4 main_setup_out_received .text.main_setup_in_received - 0x000009fa 0x4 src/main.o - 0x000009fa main_setup_in_received + 0x000009a8 0x4 src/main.o + 0x000009a8 main_setup_in_received .text.tiny_adc_ch0setup - 0x000009fe 0x1e src/tiny_adc.o - 0x000009fe tiny_adc_ch0setup + 0x000009ac 0x1e src/tiny_adc.o + 0x000009ac tiny_adc_ch0setup .text.tiny_adc_ch1setup - 0x00000a1c 0x14 src/tiny_adc.o - 0x00000a1c tiny_adc_ch1setup + 0x000009ca 0x14 src/tiny_adc.o + 0x000009ca tiny_adc_ch1setup .text.tiny_adc_pid_setup - 0x00000a30 0x14 src/tiny_adc.o - 0x00000a30 tiny_adc_pid_setup + 0x000009de 0x14 src/tiny_adc.o + 0x000009de tiny_adc_pid_setup .text.ReadCalibrationByte - 0x00000a44 0x12 src/tiny_adc.o - 0x00000a44 ReadCalibrationByte + 0x000009f2 0x12 src/tiny_adc.o + 0x000009f2 ReadCalibrationByte .text.tiny_adc_setup - 0x00000a56 0x7a src/tiny_adc.o - 0x00000a56 tiny_adc_setup + 0x00000a04 0x7a src/tiny_adc.o + 0x00000a04 tiny_adc_setup .text.__vector_71 - 0x00000ad0 0x26 src/tiny_adc.o - 0x00000ad0 __vector_71 + 0x00000a7e 0x26 src/tiny_adc.o + 0x00000a7e __vector_71 .text.tiny_dac_setup - 0x00000af6 0x48 src/tiny_dac.o - 0x00000af6 tiny_dac_setup + 0x00000aa4 0x48 src/tiny_dac.o + 0x00000aa4 tiny_dac_setup .text.tiny_dma_setup - 0x00000b3e 0x12 src/tiny_dma.o - 0x00000b3e tiny_dma_setup + 0x00000aec 0x12 src/tiny_dma.o + 0x00000aec tiny_dma_setup .text.tiny_dma_flush - 0x00000b50 0x3a src/tiny_dma.o - 0x00000b50 tiny_dma_flush + 0x00000afe 0x3a src/tiny_dma.o + 0x00000afe tiny_dma_flush .text.tiny_dma_delayed_set - 0x00000b8a 0xc src/tiny_dma.o - 0x00000b8a tiny_dma_delayed_set + 0x00000b38 0xc src/tiny_dma.o + 0x00000b38 tiny_dma_delayed_set .text.tiny_dma_set_mode_0 - 0x00000b96 0xe4 src/tiny_dma.o - 0x00000b96 tiny_dma_set_mode_0 + 0x00000b44 0xe4 src/tiny_dma.o + 0x00000b44 tiny_dma_set_mode_0 .text.tiny_dma_set_mode_1 - 0x00000c7a 0x112 src/tiny_dma.o - 0x00000c7a tiny_dma_set_mode_1 + 0x00000c28 0x112 src/tiny_dma.o + 0x00000c28 tiny_dma_set_mode_1 .text.tiny_dma_set_mode_2 - 0x00000d8c 0x10c src/tiny_dma.o - 0x00000d8c tiny_dma_set_mode_2 + 0x00000d3a 0x10c src/tiny_dma.o + 0x00000d3a tiny_dma_set_mode_2 .text.tiny_dma_set_mode_3 - 0x00000e98 0x11c src/tiny_dma.o - 0x00000e98 tiny_dma_set_mode_3 + 0x00000e46 0x11c src/tiny_dma.o + 0x00000e46 tiny_dma_set_mode_3 .text.tiny_dma_set_mode_4 - 0x00000fb4 0x110 src/tiny_dma.o - 0x00000fb4 tiny_dma_set_mode_4 + 0x00000f62 0x110 src/tiny_dma.o + 0x00000f62 tiny_dma_set_mode_4 .text.tiny_dma_set_mode_5 - 0x000010c4 0x2 src/tiny_dma.o - 0x000010c4 tiny_dma_set_mode_5 + 0x00001072 0x2 src/tiny_dma.o + 0x00001072 tiny_dma_set_mode_5 .text.tiny_dma_set_mode_6 - 0x000010c6 0xe6 src/tiny_dma.o - 0x000010c6 tiny_dma_set_mode_6 + 0x00001074 0xe6 src/tiny_dma.o + 0x00001074 tiny_dma_set_mode_6 .text.tiny_dma_set_mode_7 - 0x000011ac 0xe8 src/tiny_dma.o - 0x000011ac tiny_dma_set_mode_7 + 0x0000115a 0xe8 src/tiny_dma.o + 0x0000115a tiny_dma_set_mode_7 .text.__vector_6 - 0x00001294 0x54 src/tiny_dma.o - 0x00001294 __vector_6 + 0x00001242 0x54 src/tiny_dma.o + 0x00001242 __vector_6 .text.__vector_7 - 0x000012e8 0x54 src/tiny_dma.o - 0x000012e8 __vector_7 + 0x00001296 0x54 src/tiny_dma.o + 0x00001296 __vector_7 .text.tiny_timer_setup - 0x0000133c 0x84 src/tiny_timer.o - 0x0000133c tiny_timer_setup + 0x000012ea 0x84 src/tiny_timer.o + 0x000012ea tiny_timer_setup .text.__vector_83 - 0x000013c0 0xf4 src/tiny_timer.o - 0x000013c0 __vector_83 + 0x0000136e 0xf4 src/tiny_timer.o + 0x0000136e __vector_83 .text.tiny_uart_setup - 0x000014b4 0x34 src/tiny_uart.o - 0x000014b4 tiny_uart_setup + 0x00001462 0x34 src/tiny_uart.o + 0x00001462 tiny_uart_setup .text.tiny_spi_setup - 0x000014e8 0x1c src/tiny_uart.o - 0x000014e8 tiny_spi_setup + 0x00001496 0x1c src/tiny_uart.o + 0x00001496 tiny_spi_setup .text.__vector_24 - 0x00001504 0x16 src/tiny_uart.o - 0x00001504 __vector_24 + 0x000014b2 0x16 src/tiny_uart.o + 0x000014b2 __vector_24 .text.__vector_25 - 0x0000151a 0x28 src/tiny_uart.o - 0x0000151a __vector_25 + 0x000014c8 0x28 src/tiny_uart.o + 0x000014c8 __vector_25 .text.sysclk_enable_module - 0x00001542 0x18 src/ASF/common/services/clock/xmega/sysclk.o - 0x00001542 sysclk_enable_module + 0x000014f0 0x18 src/ASF/common/services/clock/xmega/sysclk.o + 0x000014f0 sysclk_enable_module .text.sysclk_enable_usb - 0x0000155a 0x6e src/ASF/common/services/clock/xmega/sysclk.o - 0x0000155a sysclk_enable_usb + 0x00001508 0x6e src/ASF/common/services/clock/xmega/sysclk.o + 0x00001508 sysclk_enable_usb .text.udi_vendor_getsetting - 0x000015c8 0x6 src/ASF/common/services/usb/class/vendor/device/udi_vendor.o - 0x000015c8 udi_vendor_getsetting + 0x00001576 0x6 src/ASF/common/services/usb/class/vendor/device/udi_vendor.o + 0x00001576 udi_vendor_getsetting .text.udi_vendor_enable - 0x000015ce 0x16 src/ASF/common/services/usb/class/vendor/device/udi_vendor.o - 0x000015ce udi_vendor_enable + 0x0000157c 0x16 src/ASF/common/services/usb/class/vendor/device/udi_vendor.o + 0x0000157c udi_vendor_enable .text.udi_vendor_disable - 0x000015e4 0xc src/ASF/common/services/usb/class/vendor/device/udi_vendor.o - 0x000015e4 udi_vendor_disable + 0x00001592 0xc src/ASF/common/services/usb/class/vendor/device/udi_vendor.o + 0x00001592 udi_vendor_disable .text.udi_vendor_setup - 0x000015f0 0x4c src/ASF/common/services/usb/class/vendor/device/udi_vendor.o - 0x000015f0 udi_vendor_setup + 0x0000159e 0x4c src/ASF/common/services/usb/class/vendor/device/udi_vendor.o + 0x0000159e udi_vendor_setup .text.udc_next_desc_in_iface - 0x0000163c 0x64 src/ASF/common/services/usb/udc/udc.o + 0x000015ea 0x64 src/ASF/common/services/usb/udc/udc.o .text.udc_valid_address - 0x000016a0 0xc src/ASF/common/services/usb/udc/udc.o + 0x0000164e 0xc src/ASF/common/services/usb/udc/udc.o .text.udc_update_iface_desc - 0x000016ac 0x74 src/ASF/common/services/usb/udc/udc.o + 0x0000165a 0x74 src/ASF/common/services/usb/udc/udc.o .text.udc_iface_disable - 0x00001720 0x84 src/ASF/common/services/usb/udc/udc.o + 0x000016ce 0x84 src/ASF/common/services/usb/udc/udc.o .text.udc_iface_enable - 0x000017a4 0x64 src/ASF/common/services/usb/udc/udc.o + 0x00001752 0x64 src/ASF/common/services/usb/udc/udc.o .text.udc_get_interface_desc - 0x00001808 0xa src/ASF/common/services/usb/udc/udc.o - 0x00001808 udc_get_interface_desc + 0x000017b6 0xa src/ASF/common/services/usb/udc/udc.o + 0x000017b6 udc_get_interface_desc .text.udc_start - 0x00001812 0x4 src/ASF/common/services/usb/udc/udc.o - 0x00001812 udc_start + 0x000017c0 0x4 src/ASF/common/services/usb/udc/udc.o + 0x000017c0 udc_start .text.udc_reset - 0x00001816 0x4a src/ASF/common/services/usb/udc/udc.o - 0x00001816 udc_reset + 0x000017c4 0x4a src/ASF/common/services/usb/udc/udc.o + 0x000017c4 udc_reset .text.udc_sof_notify - 0x00001860 0x60 src/ASF/common/services/usb/udc/udc.o - 0x00001860 udc_sof_notify + 0x0000180e 0x60 src/ASF/common/services/usb/udc/udc.o + 0x0000180e udc_sof_notify .text.udc_process_setup - 0x000018c0 0x718 src/ASF/common/services/usb/udc/udc.o - 0x000018c0 udc_process_setup + 0x0000186e 0x718 src/ASF/common/services/usb/udc/udc.o + 0x0000186e udc_process_setup .text.ccp_write_io - 0x00001fd8 0xc src/ASF/xmega/drivers/cpu/ccp.o - 0x00001fd8 ccp_write_io + 0x00001f86 0xc src/ASF/xmega/drivers/cpu/ccp.o + 0x00001f86 ccp_write_io .text.nvm_eeprom_read_buffer - 0x00001fe4 0x30 src/ASF/xmega/drivers/nvm/nvm.o - 0x00001fe4 nvm_eeprom_read_buffer + 0x00001f92 0x30 src/ASF/xmega/drivers/nvm/nvm.o + 0x00001f92 nvm_eeprom_read_buffer .text.nvm_eeprom_load_byte_to_buffer - 0x00002014 0x24 src/ASF/xmega/drivers/nvm/nvm.o - 0x00002014 nvm_eeprom_load_byte_to_buffer + 0x00001fc2 0x24 src/ASF/xmega/drivers/nvm/nvm.o + 0x00001fc2 nvm_eeprom_load_byte_to_buffer .text.nvm_eeprom_load_page_to_buffer - 0x00002038 0x3e src/ASF/xmega/drivers/nvm/nvm.o - 0x00002038 nvm_eeprom_load_page_to_buffer + 0x00001fe6 0x3e src/ASF/xmega/drivers/nvm/nvm.o + 0x00001fe6 nvm_eeprom_load_page_to_buffer .text.nvm_eeprom_atomic_write_page - 0x00002076 0x3a src/ASF/xmega/drivers/nvm/nvm.o - 0x00002076 nvm_eeprom_atomic_write_page + 0x00002024 0x3a src/ASF/xmega/drivers/nvm/nvm.o + 0x00002024 nvm_eeprom_atomic_write_page .text.nvm_read_byte - 0x000020b0 0x14 src/ASF/xmega/drivers/nvm/nvm_asm.o - 0x000020b0 nvm_read_byte + 0x0000205e 0x14 src/ASF/xmega/drivers/nvm/nvm_asm.o + 0x0000205e nvm_read_byte .text.udd_sleep_mode - 0x000020c4 0x52 src/ASF/xmega/drivers/usb/usb_device.o + 0x00002072 0x52 src/ASF/xmega/drivers/usb/usb_device.o .text.udd_ctrl_init - 0x00002116 0x4e src/ASF/xmega/drivers/usb/usb_device.o + 0x000020c4 0x4e src/ASF/xmega/drivers/usb/usb_device.o .text.udd_ctrl_stall_data - 0x00002164 0x1c src/ASF/xmega/drivers/usb/usb_device.o + 0x00002112 0x1c src/ASF/xmega/drivers/usb/usb_device.o .text.udd_ctrl_send_zlp_in - 0x00002180 0x1c src/ASF/xmega/drivers/usb/usb_device.o + 0x0000212e 0x1c src/ASF/xmega/drivers/usb/usb_device.o .text.udd_ctrl_endofrequest - 0x0000219c 0x10 src/ASF/xmega/drivers/usb/usb_device.o + 0x0000214a 0x10 src/ASF/xmega/drivers/usb/usb_device.o .text.udd_ctrl_in_sent - 0x000021ac 0xd8 src/ASF/xmega/drivers/usb/usb_device.o + 0x0000215a 0xd8 src/ASF/xmega/drivers/usb/usb_device.o .text.udd_ep_get_size - 0x00002284 0x4c src/ASF/xmega/drivers/usb/usb_device.o + 0x00002232 0x4c src/ASF/xmega/drivers/usb/usb_device.o .text.udd_ep_get_job - 0x000022d0 0x36 src/ASF/xmega/drivers/usb/usb_device.o + 0x0000227e 0x36 src/ASF/xmega/drivers/usb/usb_device.o .text.udd_ctrl_interrupt_tc_setup - 0x00002306 0xde src/ASF/xmega/drivers/usb/usb_device.o + 0x000022b4 0xde src/ASF/xmega/drivers/usb/usb_device.o .text.udd_ep_trans_complet - 0x000023e4 0x2b4 src/ASF/xmega/drivers/usb/usb_device.o + 0x00002392 0x2b4 src/ASF/xmega/drivers/usb/usb_device.o .text.udd_attach - 0x00002698 0x46 src/ASF/xmega/drivers/usb/usb_device.o - 0x00002698 udd_attach + 0x00002646 0x46 src/ASF/xmega/drivers/usb/usb_device.o + 0x00002646 udd_attach .text.udd_enable - 0x000026de 0xce src/ASF/xmega/drivers/usb/usb_device.o - 0x000026de udd_enable + 0x0000268c 0xce src/ASF/xmega/drivers/usb/usb_device.o + 0x0000268c udd_enable .text.udd_set_address - 0x000027ac 0x6 src/ASF/xmega/drivers/usb/usb_device.o - 0x000027ac udd_set_address + 0x0000275a 0x6 src/ASF/xmega/drivers/usb/usb_device.o + 0x0000275a udd_set_address .text.udd_getaddress - 0x000027b2 0x6 src/ASF/xmega/drivers/usb/usb_device.o - 0x000027b2 udd_getaddress + 0x00002760 0x6 src/ASF/xmega/drivers/usb/usb_device.o + 0x00002760 udd_getaddress .text.udd_set_setup_payload - 0x000027b8 0xe src/ASF/xmega/drivers/usb/usb_device.o - 0x000027b8 udd_set_setup_payload + 0x00002766 0xe src/ASF/xmega/drivers/usb/usb_device.o + 0x00002766 udd_set_setup_payload .text.udd_ep_alloc - 0x000027c6 0xea src/ASF/xmega/drivers/usb/usb_device.o - 0x000027c6 udd_ep_alloc + 0x00002774 0xea src/ASF/xmega/drivers/usb/usb_device.o + 0x00002774 udd_ep_alloc .text.udd_ep_is_halted - 0x000028b0 0x36 src/ASF/xmega/drivers/usb/usb_device.o - 0x000028b0 udd_ep_is_halted + 0x0000285e 0x36 src/ASF/xmega/drivers/usb/usb_device.o + 0x0000285e udd_ep_is_halted .text.udd_ep_clear_halt - 0x000028e6 0x6a src/ASF/xmega/drivers/usb/usb_device.o - 0x000028e6 udd_ep_clear_halt + 0x00002894 0x6a src/ASF/xmega/drivers/usb/usb_device.o + 0x00002894 udd_ep_clear_halt .text.udd_ep_run - 0x00002950 0x174 src/ASF/xmega/drivers/usb/usb_device.o - 0x00002950 udd_ep_run + 0x000028fe 0x174 src/ASF/xmega/drivers/usb/usb_device.o + 0x000028fe udd_ep_run .text.udd_ep_abort - 0x00002ac4 0x92 src/ASF/xmega/drivers/usb/usb_device.o - 0x00002ac4 udd_ep_abort + 0x00002a72 0x92 src/ASF/xmega/drivers/usb/usb_device.o + 0x00002a72 udd_ep_abort .text.udd_ep_free - 0x00002b56 0x38 src/ASF/xmega/drivers/usb/usb_device.o - 0x00002b56 udd_ep_free + 0x00002b04 0x38 src/ASF/xmega/drivers/usb/usb_device.o + 0x00002b04 udd_ep_free .text.udd_ep_set_halt - 0x00002b8e 0x5a src/ASF/xmega/drivers/usb/usb_device.o - 0x00002b8e udd_ep_set_halt + 0x00002b3c 0x5a src/ASF/xmega/drivers/usb/usb_device.o + 0x00002b3c udd_ep_set_halt .text.__vector_125 - 0x00002be8 0x164 src/ASF/xmega/drivers/usb/usb_device.o - 0x00002be8 __vector_125 + 0x00002b96 0x164 src/ASF/xmega/drivers/usb/usb_device.o + 0x00002b96 __vector_125 .text.__vector_126 - 0x00002d4c 0x1d4 src/ASF/xmega/drivers/usb/usb_device.o - 0x00002d4c __vector_126 + 0x00002cfa 0x1d4 src/ASF/xmega/drivers/usb/usb_device.o + 0x00002cfa __vector_126 .text.libgcc.div - 0x00002f20 0x28 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avrxmega2\libgcc.a(_udivmodhi4.o) - 0x00002f20 __udivmodhi4 + 0x00002ece 0x28 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avrxmega2\libgcc.a(_udivmodhi4.o) + 0x00002ece __udivmodhi4 .text.libgcc.div - 0x00002f48 0x26 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avrxmega2\libgcc.a(_divmodhi4.o) - 0x00002f48 _div - 0x00002f48 __divmodhi4 - .text.libgcc 0x00002f6e 0xc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avrxmega2\libgcc.a(_tablejump2.o) - 0x00002f6e __tablejump2__ + 0x00002ef6 0x26 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avrxmega2\libgcc.a(_divmodhi4.o) + 0x00002ef6 _div + 0x00002ef6 __divmodhi4 + .text.libgcc 0x00002f1c 0xc c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avrxmega2\libgcc.a(_tablejump2.o) + 0x00002f1c __tablejump2__ .text.avr-libc - 0x00002f7a 0x12 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avrxmega2\libc.a(memcpy.o) - 0x00002f7a memcpy - 0x00002f8c . = ALIGN (0x2) + 0x00002f28 0x12 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avrxmega2\libc.a(memcpy.o) + 0x00002f28 memcpy + 0x00002f3a . = ALIGN (0x2) *(.fini9) - .fini9 0x00002f8c 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avrxmega2\libgcc.a(_exit.o) - 0x00002f8c _exit - 0x00002f8c exit + .fini9 0x00002f3a 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avrxmega2\libgcc.a(_exit.o) + 0x00002f3a _exit + 0x00002f3a exit *(.fini9) *(.fini8) *(.fini8) @@ -2687,11 +2687,11 @@ END GROUP *(.fini1) *(.fini1) *(.fini0) - .fini0 0x00002f8c 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avrxmega2\libgcc.a(_exit.o) + .fini0 0x00002f3a 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.9.2/avrxmega2\libgcc.a(_exit.o) *(.fini0) - 0x00002f90 _etext = . + 0x00002f3e _etext = . -.data 0x00802000 0x8c load address 0x00002f90 +.data 0x00802000 0x8c load address 0x00002f3e 0x00802000 PROVIDE (__data_start, .) *(.data) *(.data*) @@ -2853,8 +2853,8 @@ END GROUP COMMON 0x00802bca 0x6 src/ASF/common/services/sleepmgr/xmega/sleepmgr.o 0x00802bca sleepmgr_locks 0x00802bd0 PROVIDE (__bss_end, .) - 0x00002f90 __data_load_start = LOADADDR (.data) - 0x0000301c __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x00002f3e __data_load_start = LOADADDR (.data) + 0x00002fca __data_load_end = (__data_load_start + SIZEOF (.data)) .noinit 0x00802bd0 0x0 [!provide] PROVIDE (__noinit_start, .) @@ -2985,27 +2985,27 @@ END GROUP .debug_pubnames *(.debug_pubnames) -.debug_info 0x00000000 0xdc49 +.debug_info 0x00000000 0xdb18 *(.debug_info .gnu.linkonce.wi.*) .debug_info 0x00000000 0x114b src/tiny_calibration.o .debug_info 0x0000114b 0x297 src/tiny_dig.o .debug_info 0x000013e2 0x285 src/tiny_eeprom.o .debug_info 0x00001667 0x106 src/ASF/common/boards/user_board/init.o - .debug_info 0x0000176d 0x158d src/main.o - .debug_info 0x00002cfa 0x9cc src/tiny_adc.o - .debug_info 0x000036c6 0x5f0 src/tiny_dac.o - .debug_info 0x00003cb6 0x1412 src/tiny_dma.o - .debug_info 0x000050c8 0x17b4 src/tiny_timer.o - .debug_info 0x0000687c 0x502 src/tiny_uart.o - .debug_info 0x00006d7e 0xc3d src/ASF/common/services/clock/xmega/sysclk.o - .debug_info 0x000079bb 0x121 src/ASF/common/services/sleepmgr/xmega/sleepmgr.o - .debug_info 0x00007adc 0x52f src/ASF/common/services/usb/class/vendor/device/udi_vendor.o - .debug_info 0x0000800b 0x5e9 src/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.o - .debug_info 0x000085f4 0x2395 src/ASF/common/services/usb/udc/udc.o - .debug_info 0x0000a989 0x91 src/ASF/xmega/drivers/cpu/ccp.o - .debug_info 0x0000aa1a 0x13a6 src/ASF/xmega/drivers/nvm/nvm.o - .debug_info 0x0000bdc0 0x91 src/ASF/xmega/drivers/nvm/nvm_asm.o - .debug_info 0x0000be51 0x1df8 src/ASF/xmega/drivers/usb/usb_device.o + .debug_info 0x0000176d 0x145c src/main.o + .debug_info 0x00002bc9 0x9cc src/tiny_adc.o + .debug_info 0x00003595 0x5f0 src/tiny_dac.o + .debug_info 0x00003b85 0x1412 src/tiny_dma.o + .debug_info 0x00004f97 0x17b4 src/tiny_timer.o + .debug_info 0x0000674b 0x502 src/tiny_uart.o + .debug_info 0x00006c4d 0xc3d src/ASF/common/services/clock/xmega/sysclk.o + .debug_info 0x0000788a 0x121 src/ASF/common/services/sleepmgr/xmega/sleepmgr.o + .debug_info 0x000079ab 0x52f src/ASF/common/services/usb/class/vendor/device/udi_vendor.o + .debug_info 0x00007eda 0x5e9 src/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.o + .debug_info 0x000084c3 0x2395 src/ASF/common/services/usb/udc/udc.o + .debug_info 0x0000a858 0x91 src/ASF/xmega/drivers/cpu/ccp.o + .debug_info 0x0000a8e9 0x13a6 src/ASF/xmega/drivers/nvm/nvm.o + .debug_info 0x0000bc8f 0x91 src/ASF/xmega/drivers/nvm/nvm_asm.o + .debug_info 0x0000bd20 0x1df8 src/ASF/xmega/drivers/usb/usb_device.o .debug_abbrev 0x00000000 0x24be *(.debug_abbrev) @@ -3029,27 +3029,27 @@ END GROUP .debug_abbrev 0x00001ed8 0x12 src/ASF/xmega/drivers/nvm/nvm_asm.o .debug_abbrev 0x00001eea 0x5d4 src/ASF/xmega/drivers/usb/usb_device.o -.debug_line 0x00000000 0xac81 +.debug_line 0x00000000 0xac63 *(.debug_line .debug_line.* .debug_line_end) .debug_line 0x00000000 0xb9d src/tiny_calibration.o .debug_line 0x00000b9d 0x7d5 src/tiny_dig.o .debug_line 0x00001372 0x821 src/tiny_eeprom.o .debug_line 0x00001b93 0x7b7 src/ASF/common/boards/user_board/init.o - .debug_line 0x0000234a 0xb4a src/main.o - .debug_line 0x00002e94 0x994 src/tiny_adc.o - .debug_line 0x00003828 0x830 src/tiny_dac.o - .debug_line 0x00004058 0x137a src/tiny_dma.o - .debug_line 0x000053d2 0x8de src/tiny_timer.o - .debug_line 0x00005cb0 0x87e src/tiny_uart.o - .debug_line 0x0000652e 0x738 src/ASF/common/services/clock/xmega/sysclk.o - .debug_line 0x00006c66 0x455 src/ASF/common/services/sleepmgr/xmega/sleepmgr.o - .debug_line 0x000070bb 0x615 src/ASF/common/services/usb/class/vendor/device/udi_vendor.o - .debug_line 0x000076d0 0x51b src/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.o - .debug_line 0x00007beb 0xecd src/ASF/common/services/usb/udc/udc.o - .debug_line 0x00008ab8 0x6e src/ASF/xmega/drivers/cpu/ccp.o - .debug_line 0x00008b26 0xb42 src/ASF/xmega/drivers/nvm/nvm.o - .debug_line 0x00009668 0x11f src/ASF/xmega/drivers/nvm/nvm_asm.o - .debug_line 0x00009787 0x14fa src/ASF/xmega/drivers/usb/usb_device.o + .debug_line 0x0000234a 0xb2c src/main.o + .debug_line 0x00002e76 0x994 src/tiny_adc.o + .debug_line 0x0000380a 0x830 src/tiny_dac.o + .debug_line 0x0000403a 0x137a src/tiny_dma.o + .debug_line 0x000053b4 0x8de src/tiny_timer.o + .debug_line 0x00005c92 0x87e src/tiny_uart.o + .debug_line 0x00006510 0x738 src/ASF/common/services/clock/xmega/sysclk.o + .debug_line 0x00006c48 0x455 src/ASF/common/services/sleepmgr/xmega/sleepmgr.o + .debug_line 0x0000709d 0x615 src/ASF/common/services/usb/class/vendor/device/udi_vendor.o + .debug_line 0x000076b2 0x51b src/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.o + .debug_line 0x00007bcd 0xecd src/ASF/common/services/usb/udc/udc.o + .debug_line 0x00008a9a 0x6e src/ASF/xmega/drivers/cpu/ccp.o + .debug_line 0x00008b08 0xb42 src/ASF/xmega/drivers/nvm/nvm.o + .debug_line 0x0000964a 0x11f src/ASF/xmega/drivers/nvm/nvm_asm.o + .debug_line 0x00009769 0x14fa src/ASF/xmega/drivers/usb/usb_device.o .debug_frame 0x00000000 0xf28 *(.debug_frame) diff --git a/AVR Code/USB_BULK_TEST/Debug/USB_BULK_TEST.srec b/AVR Code/USB_BULK_TEST/Debug/USB_BULK_TEST.srec index eca05b26..d0c93195 100644 --- a/AVR Code/USB_BULK_TEST/Debug/USB_BULK_TEST.srec +++ b/AVR Code/USB_BULK_TEST/Debug/USB_BULK_TEST.srec @@ -1,11 +1,11 @@ S01500005553425F42554C4B5F544553542E73726563F9 S11300001DC1000037C1000035C1000033C100002C -S113001031C100002FC100000C944A090C947409EA +S113001031C100002FC100000C9421090C944B093C S113002029C1000027C1000025C1000023C1000030 S113003021C100001FC100001DC100001BC1000040 S113004019C1000017C1000015C1000013C1000050 S113005011C100000FC100000DC100000BC1000060 -S11300600C94820A0C948D0A05C1000003C100009F +S11300600C94590A0C94640A05C1000003C10000F1 S113007001C10000FFC00000FDC00000FBC0000083 S1130080F9C00000F7C00000F5C00000F3C0000094 S1130090F1C00000EFC00000EDC00000EBC00000A4 @@ -16,10 +16,10 @@ S11300D0D1C00000CFC00000CDC00000CBC00000E4 S11300E0C9C00000C7C00000C5C00000C3C00000F4 S11300F0C1C00000BFC00000BDC00000BBC0000004 S1130100B9C00000B7C00000B5C00000B3C0000013 -S1130110B1C00000AFC00000ADC00000D9C40000F1 +S1130110B1C00000AFC00000ADC00000B0C400001A S1130120A9C00000A7C00000A5C00000A3C0000033 S1130130A1C000009FC000009DC000009BC0000043 -S113014099C0000097C0000095C000000C94E0091D +S113014099C0000097C0000095C000000C94B70946 S113015091C000008FC000008DC000008BC0000063 S113016089C0000087C0000085C0000083C0000073 S113017081C000007FC000007DC000007BC0000083 @@ -30,16 +30,16 @@ S11301B061C000005FC000005DC000005BC00000C3 S11301C059C0000057C0000055C0000053C00000D3 S11301D051C000004FC000004DC000004BC00000E3 S11301E049C0000047C0000045C0000043C00000F3 -S11301F041C000000C94F4150C94A6163104330489 -S11302003504370439043B043D043F048B0CB00C23 -S1130210D30CF60CFF0C040D5A0D5F0D7E0D100D62 -S11302201A0D240D320D350D380D430D4E0D5011A0 -S11302305311561159115C115F11621111241FBE23 -S1130240CFEFCDBFDFE2DEBF10E2A0E0B0E2E0E935 +S11301F041C000000C94CB150C947D1630043204DD +S11302003404360438043A043C043E04620C870C7B +S1130210AA0CCD0CD60CDB0C310D360D550DE70CAC +S1130220F10CFB0C090D0C0D0F0D1A0D250D2711EA +S11302302A112D11301133113611391111241FBE19 +S1130240CFEFCDBFDFE2DEBF10E2A0E0B0E2EEE32D S1130250FFE202C005900D92AC38B107D9F72BE24A S1130260ACE8B0E201C01D92A03DB207E1F7ACD208 -S11302700C94C617C5CECF93DF93C0E5D0E084E0DD -S11302808E838CE1DFD3E0E6F0E083838BEB86831F +S11302700C949D17C5CECF93DF93C0E5D0E084E006 +S11302808E838CE1B6D3E0E6F0E083838BEB868348 S113029080E8858381E0808388ED84BF10924100EB S11302A083E08883E0E5F0E081818330E9F7E0E5ED S11302B0F0E080818160808388E18583818180FF93 @@ -85,7 +85,7 @@ S11305208C208CE0809302202AC08CE080930220EF S113053080917321909174218A369F4F1CF08FEF24 S11305409FEF02C081E090E080936D2190936E2133 S1130550809173219091742120916D2130916E21AD -S113056060E370E00E94A417261B370B20936D21D3 +S113056060E370E00E947B17261B370B20936D21FC S113057030936E2180916D2190916E2134DF8091B2 S11305808C20813029F58091732190917421C39737 S113059094F080910220882331F0809102208150D0 @@ -101,7 +101,7 @@ S11306208091002090910120019780930020909365 S113063001204DC080E490E080930020909301203D S11306408091072090910820019609F440C0809180 S113065014019091150120910920263018F467E7C0 -S113066071E002C06EEE72E00E949017082F192FFD +S113066071E002C06EEE72E00E946717082F192F26 S1130670C82FD12F80910720909108208C179D07B7 S113068080F46091072070910820802F912FA7DFBC S1130690029738F080EC9DE58093360A9093370AF0 @@ -113,660 +113,655 @@ S11306E0970BE0E0FAE020A131A124173507D8F7F1 S11306F020A131A182179307B0F70895E0E8F6E04E S11307008FE0808385E0848308951F93CF93DF93E4 S1130710C0E4D0E0198180E4898340E250E068EAD3 -S11307207BE280E290E00E94F20F1983DF91CF9187 +S11307207BE280E290E00E94C90F1983DF91CF91B0 S11307301F9108951F93CF93DF93C0E4D0E01981F4 -S113074080E489838BEA95E20E941C1081E00E9478 -S11307503B101983DF91CF911F91089508950F9352 +S113074080E489838BEA95E20E94F30F81E00E94A2 +S113075012101983DF91CF911F91089508950F937B S11307601F9380910920811114C02091962087E75E S113077091E0289FA001299F500D112444535A4D04 -S11307800FEA13E02EEE32E060E081E80E94A81444 +S11307800FEA13E02EEE32E060E081E80E947F146D S113079013C0209196208EEE92E0289FA001299FFD S11307A0500D112444535A4D0FEA13E02EEE32E05B -S11307B060E081E80E94A8141F910F9108951CBE67 +S11307B060E081E80E947F141F910F9108951CBE90 S11307C0EEEFF0E409950895A0DF8091A82B88232B S11307D069F080E2E8EAFBE2ABEAB5E201900D924F S11307E08A95E1F71092AB25A5DFE9DF87E08093D6 -S11307F0A200789440DDB2DF0E94090C7CD19FD125 -S113080060E080E028D114D18CE008D197D552D68D -S11308106BD674DF89E0E0E8F0E2AEE7B1E2019084 -S11308200D928A95E1F7000000000000000000002E +S11307F0A200789440DDB2DFE3D754D177D160E032 +S113080080E000D1ECD08CE0E0D06FD52AD643D67E +S113081075DF89E0E0E8F0E2AEE7B1E201900D9225 +S11308208A95E1F7000000000000000000000000CD S113083000000000000000000000000000000000B4 -S1130840000080919120882371F3E091AA238E2FD8 -S113085090E088309105A0F4FC01E250FF4F0C9425 -S1130860B71799D10DC009D20BC090D209C014D3C7 -S113087007C0A0D305C026D403C025D401C096D494 -S113088010929120D0CF08950895CF93DF93A0E0E4 -S1130890B1E054968C915497EEE7F1E28187559636 -S11308A08C915597828794968C919497838795968B -S11308B08C9195978487C0E0DAE088A1858B89A123 -S11308C0868B54968D919C9155978634914080F0F7 -S11308D08091140190911501893A914048F48091D6 -S11308E01401909115018093C82B9093C92B00009B -S11308F080919420882339F0F4DC1092942081E0D4 -S11309008093932035C080919320882341F0809177 -S11309108C20833019F4F7DC79DE01C0CEDD8091C0 -S11309209220882351F080911401909115018093B5 -S1130930C82B9093C92B1092922080910920853066 -S113094060F4209114013091150181E02737314082 -S113095008F080E0809396200BC020911401309120 -S1130960150181E02E3E324008F080E0809396200D -S1130970DF91CF9108950F931F9381E08093992085 -S1130980809394200FEA13E02DE730E04CEC55E21D -S113099060E081E80E94A8142DE730E049E456E2C3 -S11309A060E082E80E94A8142DE730E046EC56E2AD -S11309B060E083E80E94A8142DE730E043E457E2A6 -S11309C060E084E80E94A8142DE730E040EC57E290 -S11309D060E085E80E94A8142DE730E04DE358E27A -S11309E060E086E80E94A81481E01F910F910895A9 -S11309F010929920089581E0089581E00895E0E03F -S1130A00F2E010A2982F9C71936890A3881F882706 -S1130A10881F880F81A312A216A20895E0E0F2E0D5 -S1130A2010AA836880AB80E181AB12AA16AA08954C -S1130A30E0E0F2E010A683E880A78FE281A712A687 -S1130A4016A60895AAECB1E092E09C93E82FF0E09A -S1130A5084911C920895CF93DF93E0E7F0E09181B5 -S1130A609D7F918310920002623031F1E0E0F2E068 -S1130A709CE1918390E49283811102C080E401C0DF -S1130A8080EC80930302613011F084E001C083E0C4 -S1130A90C0E0D2E08C8380E2D5DF8C8781E2D2DFB4 -S1130AA08D87188E198E81E08883C2DF0EC080EC9A -S1130AB08093030284E0ECCFE0E0F2E09EE19183D6 -S1130AC090E492838111F3CFD9CFDF91CF91089530 -S1130AD01F920F920FB60F9211248F930000000003 -S1130AE00000000081E0809323028F910F900FBEDD -S1130AF00F901F901895CF93DF93E0E7F0E0828189 -S1130B008B7F8283C0E2D3E08DE0888380E4898395 -S1130B1089E08A8383E396DF888782E393DF89878A -S1130B2087E390DF8A8786E38DDF8B87E0E2F6E058 -S1130B308081836080831482DF91CF910895E0E700 -S1130B40F0E080818E7F808383E8809300010895A4 -S1130B50E0E0F1E0108A80E4808B10A280A310AA68 -S1130B6080ABE0E4F1E01082808310929820109230 -S1130B70972081E08093962010927C2110927D2111 -S1130B8010927A2110927B2108958093AA2381E008 -S1130B90809391200895CF93DF9310920920D8DF9A -S1130BA0C0E0D1E01EAA84E288AB19AA49E54AABA9 -S1130BB032E03BAB60910B2070910C206CAB7DABB1 -S1130BC06BEA73E268AF79AF1AAE9BE39CAF93E034 -S1130BD090933D0110923E0128A9206828AB109201 -S1130BE04601E0E4F1E08083109241014093420128 -S1130BF09093430140910D2050910E204093440165 -S1130C00509345014AE951E2409348015093490108 -S1130C1010924A0129E320934C0190934D011092C4 -S1130C204E01908190689083188A90E4988B888B09 -S1130C30198A95E99A8B90E19B8B4EEE52E04C8B8E -S1130C405D8B888F398F1A8E8CEC95E28C8F9D8FFB -S1130C501E8E68EC70E084EF91E03EDD88EC90E05D -S1130C60809307209093082081E080930620888950 -S1130C708068888BDF91CF9108951F93CF93DF9382 -S1130C8011E01093092064DFC0E0D1E018AA80E4E9 -S1130C9088AB84E088AB19AA1AAA4BE44BAB1CAA14 -S1130CA01DAA1EAA8AE090E288AF99AF1AAE70EA34 -S1130CB07CAF68E060933D0110923E0188A9806A90 -S1130CC088ABE0EAF8E085E58083808310924601F2 -S1130CD0E0E4F1E084E280831092410199E590938D -S1130CE0420132E030934301A0910B20B0910C20DB -S1130CF0A0934401B0934501ABEAB3E2A093480149 -S1130D00B093490110924A019BE390934C0193E004 -S1130D1090934D0110924E0120812068208388A376 -S1130D2099A325E92AA34BA34EEE52E04CA35DA35D -S1130D3078A769A71AA66AEB78E26CA77DA71EA616 -S1130D40888B998B2A8B90E19B8B4C8B5D8B888F46 -S1130D50398F1A8E8CEC95E28C8F9D8F1E8E68ECE9 -S1130D6070E084EF91E0B8DC88EC90E08093072099 -S1130D70909308201093062088A1806888A388890E -S1130D808068888BDF91CF911F9108951F93CF9333 -S1130D90DF9312E010930920DBDEC0E0D1E01EAA4D -S1130DA084E288AB19AA39E53AAB1BAB40910B201E -S1130DB050910C204CAB5DAB4BEA53E248AF59AFBA -S1130DC01AAE9BE39CAF93E090933D0110923E01D9 -S1130DD028A9206828AB10924601E0E4F1E0808362 -S1130DE010924101309342019093430120910D20D0 -S1130DF030910E2020934401309345012AE931E2D9 -S1130E00209348013093490110924A0129E3209329 -S1130E104C0190934D0110924E0190819068908303 -S1130E20188A90E4988B888B198A45E94A8B90E15B -S1130E309B8B2EEE32E02C8B3D8B888F198F1A8E74 -S1130E406CEC75E26C8F7D8F1E8E88A319A24AA369 -S1130E509BA32CA33DA384E388A719A71AA68AEB16 -S1130E6098E28CA79DA71EA668EC70E084EF91E041 -S1130E7033DC88EC90E0809307209093082081E095 -S1130E808093062088898068888B88A1806888A3DD -S1130E90DF91CF911F9108951F93CF93DF9313E0B8 -S1130EA01093092055DEC0E0D1E018A250E458A305 -S1130EB084E088A319A21AA24BE44BA31CA21DA28E -S1130EC01EA28AE090E288A799A71AA630EA3CA756 -S1130ED028E02DA71EA688A1806A88A385E58093B3 -S1130EE0A0081EAA84E288AB19AA69E56AAB1BAB09 -S1130EF0E0910D20F0910E20ECABFDABEAE9F1E2BC -S1130F00E8AFF9AF1AAE99E39CAF10933D0110928C -S1130F103E0198A9906898AB10924601E0E4F1E094 -S1130F208083109241016093420192E090934301C7 -S1130F3060910B2070910C206093440170934501E3 -S1130F406BEA73E2609348017093490110924A017D -S1130F509BE390934C0110934D0110924E019081AC -S1130F6090689083188A588B888B198A85E98A8BB4 -S1130F704B8B8EEE92E08C8B9D8B388F298F1A8E43 -S1130F808CEC95E28C8F9D8F1E8E68EC70E084EF64 -S1130F9091E0A2DB88EC90E08093072090930820F6 -S1130FA081E08093062088898068888BDF91CF91C7 -S1130FB01F9108951F93CF93DF9314E0109309209A -S1130FC0C7DDC0E0D1E018AA80E488AB18AB19AA49 -S1130FD01AAA3BE43BAB1CAA1DAA1EAA8AE090E213 -S1130FE088AF99AF1AAE50EA5CAF88E080933D01B8 -S1130FF010923E0198A9906A98AB95E59093A00849 -S113100010924601E0E4F1E094E2908310924101F1 -S113101029E52093420122E02093430160910B20B3 -S113102070910C2060934401709345016BEA73E264 -S1131030609348017093490110924A012BE3209375 -S11310404C0123E020934D0110924E012081206831 -S11310502083988B198A45E94A8B3B8B2EEE32E02C -S11310602C8B3D8B588F898F1A8E6CEC75E26C8FAC -S11310707D8F1E8E98A319A24AA39AE49BA32CA346 -S11310803DA393EC98A789A71AA68AEB98E28CA7AC -S11310909DA71EA668EC70E084EF91E01DDB88EC50 -S11310A090E0809307209093082081E080930620AD -S11310B088898068888B88A1806888A3DF91CF9114 -S11310C01F910895FFCFCF93DF9386E0809309208B -S11310D03FDDC0E0D1E01EAA84E288AB19AA39E55D -S11310E03AAB93E09BAB40910D2050910E204CAB5A -S11310F05DAB4AE951E248AF59AF1AAE29E32CAFD0 -S113110090933D0110923E0128A9206828AB1092CB -S11311104601E0E4F1E08083109241013093420102 -S113112032E03093430140910B2050910C204093C6 -S11311304401509345014BEA53E2409348015093D4 -S1131140490110924A012BE320934C0190934D01E5 -S113115010924E01208120682083188A20E4288B75 -S1131160888B998B95E99A8B90E19B8B4CED55E09C -S11311704C8B5D8B888F398F1A8E8CEC95E28C8F1B -S11311809D8F1E8E68EC70E084EF91E0A5DA80E913 -S113119091E0809307209093082081E080930620BB -S11311A088898068888BDF91CF910895CF93DF93EE -S11311B087E080930920CCDCC0E0D1E01EAA94E251 -S11311C098AB19AA39E53AAB83E08BAB40910D207B -S11311D050910E204CAB5DAB4AE951E248AF59AF98 -S11311E01AAE29E32CAF80933D0110923E0128A949 -S11311F0206828AB10924601E0E4F1E0908310925D -S113120041013093420132E03093430140910B207D -S113121050910C2040934401509345014BEA53E212 -S1131220409348015093490110924A012BE32093C3 -S11312304C0180934D0110924E012081206820833F -S1131240188A20E4288B25E2288B898B85E98A8BF0 -S113125080E18B8B4CED55E04C8B5D8B988F398FF7 -S11312601A8E8CEC95E28C8F9D8F1E8E68EC70E04C -S113127084EF91E031DA80E991E080930720909344 -S1131280082081E08093062088898068888BDF911C -S1131290CF9108951F920F920FB60F9211248F933E -S11312A09F93EF93FF9381E08093030180917C21CE -S11312B090917D21019680937C2190937D21809152 -S11312C07C2190917D21EEE7F1E2878B80917C2156 -S11312D090917D21908FFF91EF919F918F910F902D -S11312E00FBE0F901F9018951F920F920FB60F927A -S11312F011248F939F93EF93FF9382E080930301D4 -S113130080917A2190917B21019680937A21909308 -S11313107B2180917A2190917B21EEE7F1E2818F0C -S113132080917A2190917B21928FFF91EF919F91EF -S11313308F910F900FBE0F901F901895E0E7F0E08B -S113134083818C7F838384818C7F848380818D7F60 -S11313508083E0E8F1E080EC8283128688EC81836C -S11313601186A0E0B8E034E03C9323E011962C937E -S1131370119714961C92149785ED91E096968D938F -S11313809C93979716961C921697E0E4F8E03083A6 -S11313902183148286A397A31682E0E6F6E0808177 -S11313A080618083E0E4F9E083E18183148282E058 -S11313B08683A6A3B7A310A611A681E0808308950F -S11313C01F920F920FB60F9211242F933F934F93B6 -S11313D05F938F939F93EF93FF93CF93DF931F922A -S11313E0CDB7DEB78FEF80934C0980910920873009 -S11313F031F4E0E0F2E084A5898395A502C09091E0 -S11314002C0280919520891B2091680930916909EB -S113141091E082300CF490E09923C9F091E02A3FE6 -S1131420374008F090E0992391F0209168093091B9 -S1131430690989301CF481E090E002C086E090E004 -S1131440820F931F809378099093790923C0209188 -S113145068093091690991E08F3F0CF090E099237D -S1131460C9F091E02730310508F490E0992391F018 -S11314702091680930916909883F1CF081E090E06F -S113148002C086E090E0A901481B590B40937809FB -S1131490509379090F90DF91CF91FF91EF919F9134 -S11314A08F915F914F913F912F910F900FBE0F90AD -S11314B01F901895E0E7F0E083818F7E8383E0E45A -S11314C0F6E080818A6A80838FEF848388E5828B4B -S11314D0E0EAF8E080E3838384EC858387E0868315 -S11314E0178288E184830895E0E7F0E08381877FB1 -S11314F08383E0ECF8E080E48083118288E58093C4 -S1131500550608951F920F920FB60F9211240000F2 -S11315100F900FBE0F901F9018951F920F920FB649 -S11315200F9211248F93EF93FF93E0EAF8E0808108 -S11315308083FF91EF918F910F900FBE0F901F90BA -S113154018959FB7F894E82FF0E0E059FF4F6095A5 -S11315508081682360839FBF0895863011F060E026 -S113156001C068E18091510081FD26C09FB7F894C5 -S1131570E0E5F0E08081826080839FBF818181FF0C -S1131580FDCF9FB7F894A0E5B0E016968C9116971E -S1131590897F16968C931697E0E6F0E080E88583C1 -S11315A08BEB868316968C911697846016968C9393 -S11315B08081816080839FBF636084E490E00CD568 -S11315C060E480E0BECF089580919A2008951CD1F4 -S11315D0FC01838180939A20811102C0CCC90895B3 -S11315E081E0089580919A20813009F401CA089518 -S11315F080919A2388234CF480768034A9F48091D6 -S11316009B23811113C0F9C908958076803481F435 -S113161080919B2381110EC08091A0239091A123DE -S1131620892B51F0E8C9089580E0089580E0089579 -S113163080E0089580E0089580E00895E0919F207F -S1131640F091A0200190F081E02D228133812E0FB2 -S11316503F1FFC014081E40FF11DE217F307B8F4CA -S113166081818430B9F0861309C005C0818184303A -S1131670A1F0861303C08E2F9F2F08958081E80F59 -S1131680F11DE217F30790F380E090E0089580E005 -S113169090E0089580E090E0089580E090E008955F -S11316A080919C238F770C94D61308959091A22057 -S11316B0992381F1E0919F20F091A0200190F08185 -S11316C0E02D9481891740F5E0939D20F0939E20AE -S11316D0228133812E0F3F1FE217F307F8F4918123 -S11316E0943061F49281981309C09381961306C0D3 -S11316F0E0939D20F0939E2081E008959081E90F6E -S1131700F11DE217F30758F3E0939D20F0939E2018 -S113171080E0089580E0089580E0089580E00895D1 -S1131720EF92FF921F93CF93DF93C82F60E0BEDF49 -S1131730182F882381F1A0919F20B091A020EC2F35 -S1131740F0E0EE0FFF1F12968D919C911397E80F16 -S1131750F91FE080F180D7011696ED91FC9117975F -S11317600995682F8C2FA2DF182F8823A1F0C09130 -S11317709D20D0919E2065E0CE0160DFEC01892B95 -S113178021F08A810E94AB15F6CFD7011296ED9114 -S1131790FC9113970995812FDF91CF911F91FF90B1 -S11317A0EF9008951F93CF93DF93182F7FDF882343 -S11317B039F1C0919D20D0919E2065E0CE013EDF9D -S11317C0EC01892B41F04C815D816B818A81FBD7CF -S11317D08111F3CF15C0A0919F20B091A020E12FDB -S11317E0F0E0EE0FFF1F12968D919C911397E80F76 -S11317F0F91F0190F081E02D0190F081E02D099511 -S1131800DF91CF911F91089580919D2090919E200A -S1131810089565C70895CF938091A2208823C1F0CD -S1131820E0919F20F091A0200190F081E02D84812F -S1131830882371F0C0E08C2F73DFCF5FE0919F208D -S1131840F091A0200190F081E02D8481C81798F3D5 -S11318501092A2201092A6201092A720CF91089552 -S1131860CF938091A220882349F1A0919F20B09129 -S1131870A020ED91FC91119784818823F9F0C0E0B8 -S1131880EC2FF0E0EE0FFF1F12968D919C911397B1 -S1131890E80FF91F0190F081E02D0084F185E02D1F -S11318A0309709F00995CF5FA0919F20B091A020B7 -S11318B0ED91FC9111978481C81710F3CF9108958D -S11318C00F931F93CF93DF93EAE9F3E21286138613 -S11318D014861586168617868081282F88233CF463 -S11318E04091A0235091A123452B09F469C3982F5B -S11318F09076903409F00AC1E0919B234E2F50E07A -S1131900FA01E05AF109E930F10508F0FFC0EA5F95 -S1131910FE4F0C94B71781E08093922080910720AA -S113192090910820EEE7F1E285878091072090915D -S11319300820968780917221878780916F21808B00 -S1131940A8E6B0E012968C911297818B13968C9135 -S1131950828B6091A0237091A123CF012DD734C332 -S1131960E0E0F8E01082CAE9D3E28A819B8186AB89 -S113197097AB8C818F7080836E817F818AE991E23D -S11319801BD78E819F8120910D2030910E208217CC -S1131990930709F419C380930D2090930E2080912E -S11319A00920F3D811C3E0E4F8E01082CAE9D3E2D5 -S11319B08A819B8186AB97AB8C818F7080836E818B -S11319C07F818BEA93E2F8D68E819F8120910B2050 -S11319D030910C208217930709F4F6C280930B20F0 -S11319E090930C2080910920D0D8EEC210926809FF -S11319F01092690980919C2380939520E5C280917F -S1131A009C2380932406E0C2E0919C23F0919D23C3 -S1131A10E830F10508F07AC0E15FFE4F0C94B71787 -S1131A2060E080E018D880919E230E94FF0480E04B -S1131A30ACD8CAC260E080E00ED880919E230E9498 -S1131A40FF0481E0A2D8C0C261E081E004D8CAE901 -S1131A50D3E28C810E94FF048D810E940E0582E0F6 -S1131A6094D8B2C283E091D8AFC284E08ED8ACC21D -S1131A7060E080E00E942B0580919E230E94FF0479 -S1131A8085E083D8A1C261E080E00E942B058091AB -S1131A909E230E94FF0486E078D896C262E080E02C -S1131AA00E942B0580919E2380680E94FF0487E09A -S1131AB06CD88AC280919C238093840685C28091CD -S1131AC09C2390919D23892B91F00E94850380E2B1 -S1131AD0E8EAFBE2ABEAB5E201900D928A95E1F700 -S1131AE081E08093AB250E949A030E948503E9E775 -S1131AF0F0E091E088EDF89484BF90836091A02396 -S1131B007091A1238AE890E257D65EC29111E1C197 -S1131B1022230CF005C12091A0233091A12321158B -S1131B20310509F4D6C18F7109F0A3C090919B23AC -S1131B30963079F0983009F492C091119AC022300D -S1131B40310509F0C6C162E070E086EA90E234D65D -S1131B503DC280919C2390919D23292F33272230CD -S1131B603105A9F024F42130310541F0A9C1233015 -S1131B703105D9F12F30310551F1A2C180911920DD -S1131B8090911A20DC016C9170E016D659C0E09156 -S1131B901920F0911A202189821708F09AC19927F7 -S1131BA0880F991F880F991FE0911B20F0911C202A -S1131BB0E80FF91F80819181FC0162817381FCD55A -S1131BC0E091A223F091A32382E0818339C0809124 -S1131BD01D2090911E20009709F47BC1DC01129610 -S1131BE06D917C911397E8D52BC09927813091058D -S1131BF071F038F0029709F06CC12AE630E288E00F -S1131C0009C064E070E08CE790E2D6D519C023E700 -S1131C1030E287E0422FAAE5B0E2E22FF32F2191D0 -S1131C2030E02D933D939E2F941B9817C0F3682F9B -S1131C30660F6E5F6093582070E088E590E2BCD533 -S1131C40EAE9F3E286819781228533858217930737 -S1131C5008F0BCC18093A4239093A523B7C121307D -S1131C60310509F036C161E070E082EA90E2A4D562 -S1131C70ADC18130E1F590919B239A30C1F52130BB -S1131C80310509F026C18091A220882309F421C1DD -S1131C90C0919E23D0919F2300919F201091A0205A -S1131CA0D801ED91FC918481C81708F012C160E05D -S1131CB08C2FFCDC882309F40CC1CE019927880FF2 -S1131CC0991FD8011296ED91FC911397E80FF91F13 -S1131CD00190F081E02D86819781FC010995809324 -S1131CE0A42061E070E084EA90E266D56FC182309E -S1131CF009F0EFC080919B238111E4C022303105AB -S1131D0009F0E7C080919E23D3D590E080939B2077 -S1131D1090939C2062E070E08BE990E24DD556C12F -S1131D208F7109F083C090919B23933009F4CCC048 -S1131D3018F49130A1F07AC0953019F0993039F146 -S1131D4075C08091A0239091A123892B09F0C1C073 -S1131D5080E59BE08093A6239093A72337C18091CD -S1131D60A0239091A123892B09F0B3C080919C23D7 -S1131D7090919D23019709F0ACC08091A620909189 -S1131D80A7208D7F8093A6209093A7201FC18091C8 -S1131D90A0239091A123892B09F09BC00AD5882305 -S1131DA009F497C020919C2330919D233327E0911F -S1131DB01920F0911A20818990E08217930708F482 -S1131DC088C029DD80919C2390919D238093A2203B -S1131DD0882309F4FBC099278150904C880F991FE0 -S1131DE0880F991FE0911B20F0911C20E80FF91F28 -S1131DF0E0939F20F093A0200190F081E02D848156 -S1131E00882309F4E3C0C0E060E08C2FCBDC882396 -S1131E1009F45FC0CF5FE0919F20F091A020019072 -S1131E20F081E02D8481C81778F3D0C08130E1F4CB -S1131E3090919B239B30C1F48091A0239091A12386 -S1131E40892B09F046C08091A220882309F441C05F -S1131E50EAE9F3E2C481D2818C2F62DC8823C9F1E0 -S1131E606D2F8C2F9FDC33C0823099F580919B239A -S1131E70813019F0833089F029C08091A02390919A -S1131E80A123892B31F580919C2390919D23892B4B -S1131E9001F580919E2327D51AC08091A0239091AB -S1131EA0A123892BB1F480919C2390919D23892BAC -S1131EB081F4CAE9D3E28C8105D68C8168D607C047 -S1131EC080E005C080E003C080E001C080E08111B3 -S1131ED07EC080919A238F71813071F58091A22008 -S1131EE0882351F100919E2310919F23C0919F203C -S1131EF0D091A020E881F98184810817E8F460E09A -S1131F00802FD4DB8823C1F0F801FF27CF01880F8D -S1131F10991FEA81FB81E80FF91FC081D181EE810D -S1131F20FF810995682F802FC1DB882329F0EC817C -S1131F30FD81099581114BC080919A238F71823064 -S1131F4009F040C08091A2208823B1F1A0919F2084 -S1131F50B091A020ED91FC9111978481882371F1B7 -S1131F60C0E0EC2FF0E0EE0FFF1F12968D919C91D4 -S1131F701397E80FF91F00811181D8011696ED918E -S1131F80FC9117970995682F8C2F90DB8823F9F023 -S1131F90D8011496ED91FC9115970995811117C0FC -S1131FA0CF5FA0919F20B091A020ED91FC9111975B -S1131FB09481C917B0F20BC080E009C080E007C06B -S1131FC080E005C080E003C081E001C081E0DF91D2 -S1131FD0CF911F910F9108951BBEFC0128ED24BFE2 -S1131FE060830895CF93DF939C01DB01E0ECF1E083 -S1131FF097859923ECF3CCECD1E098819860988391 -S1132000B901705FCD01B9D78881877F8883DF915B -S1132010CF910895E0ECF1E097859923ECF3ACECD3 -S1132020B1E09C9198609C93E82FF0E0F05F6083AE -S11320308C91877F8C930895EF92FF920F931F9357 -S1132040CF93DF938C01E0ECF1E087858823ECF3F8 -S1132050780180E2E80EF11CE8018C2F801B699165 -S1132060D9DFCE15DF05C9F7DF91CF911F910F910D -S1132070FF90EF9008951F93CF93DF93E0ECF1E08E -S113208097859923ECF320E2829FC0011124C0ECD0 -S1132090D1E01A82998388831A8585E38A8761E06F -S11320A08BEC91E099DF1A87DF91CF911F9108950E -S11320B04091CA01E62FF72F8093CA01849140937F -S11320C0CA010895811122C090916C219923D9F0FD -S11320D09091CB2B911101C0FFCF2FB7F894EAEC6C -S11320E0FBE29181915091832FBF0DC09091CB2B36 -S11320F09F3F09F4FFCF2FB7F894EAECFBE29181FC -S11321009F5F91832FBF80936C21089590916C21E0 -S1132110992361F3F8CF0F93E8ECF4E080818F7D8D -S1132120808380818F7D8083E0E5F1E202E0059386 -S1132130109252211092532100E2069300E4069378 -S1132140E8E4F1E200E2069300E40693EAE9F3E24C -S113215014861586168617861286138610923F21DA -S11321600F9108950F9385E080933F21E1E5F1E21B -S113217004E00593E9E4F1E204E005930F91089586 -S11321800F9383E080933F211092522110925321A8 -S1132190E0E5F1E202E006930F910895E091A623B1 -S11321A0F091A723309709F0099508950F93CF93E1 -S11321B0DF9380913F21833019F4F0DFACDF5EC000 -S11321C080913B2190913C21C091A423D091A523DF -S11321D0C81BD90B71F520913D2130913E21820F0E -S11321E0931F80933D2190933E212091A023309111 -S11321F0A1238217930721F08091A820882341F01E -S113220084E080933F21E8E4F1E202E0069336C0E3 -S1132210E091A823F091A923309799F00995882398 -S113222081F010923B2110923C21C091A423D091C3 -S1132230A523C034D10528F01092A820C0E4D0E032 -S113224003C081E08093A820E0E4F1E2C28BD38B49 -S113225080913B2190913C212091A2233091A32392 -S1132260280F391F248B358BC80FD91FC0933B21EE -S1132270D0933C21E0E5F1E202E00693DF91CF91B7 -S11322800F910895FC018181E82FE7708E2F90E073 -S1132290FC013197E730F105C0F4E95EFE4F67C6F3 -S11322A080E190E0089580E290E0089580E490E079 -S11322B0089580E890E0089580E091E0089580E03A -S11322C092E008958FEF93E0089588E090E00895F8 -S11322D0282F2F7030E0220F331F082E000C990B8B -S11322E08827990F881F9927820F931F02979C01B3 -S11322F0220F331F220F331F220F331F820F931F0E -S113230087519F4D08950F93CF938091CC0480FF04 -S113231062C081E08093CC04E8E4F1E200E8069333 -S1132320E0E5F1E200E806938093CA04E8E4F1E210 -S113233000E1069380913F21882329F08350823065 -S113234008F42CDFE8DE80914A2190914B21089714 -S113235009F043C088E0EBEFF0E2AAE9B3E20190B0 -S11323600D928A95E1F7E8ECF4E080818062808345 -S1132370808180628083A4DAC82F811103C0F2DED9 -S1132380C1E02CC080919A2388236CF410923D21E3 -S113239010923E2110923B2110923C2182E08093C6 -S11323A03F2104DF1BC08091A0239091A123892B9E -S11323B011F4E6DE13C010923D2110923E211092DA -S11323C03B2110923C2181E080933F21E8E4F1E23B -S11323D002E0069303C0C0E001C0C1E08C2FCF919E -S11323E00F9108958F929F92AF92BF92DF92EF92D6 -S11323F0FF920F931F93CF93DF93D82E69DF8C0145 -S1132400BD2CBB1CBB24BB1CCD2DCF70D0E0CC0F8E -S1132410DD1FCB0DD11DCE01880F991F880F991F89 -S1132420880F991F9C01285B3E4D7901C9012ADF61 -S11324304C01BB2009F470C0FE01EE0FFF1FEE0F2C -S1132440FF1FEE0FFF1FE05CFE4D26853785D80188 -S113245015968D919C911697820F931F15968D93C7 -S11324609C93169713962D913C911497821793077A -S113247009F43CC0281B390B2115B4E03B0738F0A4 -S11324802FEF33E0C901B4014BD5281B390BF801F8 -S1132490808181FF09C0C901B40142D541E0892B83 -S11324A009F040E0842F01C080E0D8019C9180FBBA -S11324B091F99C93CC0FDD1FCC0FDD1FCC0FDD1FDA -S11324C0C05CDE4D1E861F862A873B8711962D91A0 -S11324D03C91129715968D919C911697820F931F9C -S11324E08C879D87F70102E00693CAC0D8018C91BE -S11324F081FFB3C08D7F8C93CC0FDD1FCC0FDD1F0C -S1132500CC0FDD1FC05CDE4D1E861F861A861B861F -S1132510F70102E00693B4C0FE01EE0FFF1FEE0FB9 -S1132520FF1FEE0FFF1FE05CFE4DA284B384D801B1 -S11325308C9182FF19C01196ED91FC91129715961A -S11325402D913C91169713968D919C911497B401FB -S1132550E7D4B0E4DB9EB001112467597F4DAC0190 -S1132560CF01820F931F09D5F801258136812A0DE9 -S11325703B1D25833683838194818217930768F4F6 -S113258085839683CC0FDD1FCC0FDD1FCC0FDD1FA1 -S1132590C05CDE4D8E859F8560C0FE01EE0FFF1F7F -S11325A0EE0FFF1FEE0FFF1FE05CFE4D46855785C3 -S11325B04A155B0509F051C02817390709F44DC0C5 -S11325C0AC01421B530B9A01211554E0350750F01E -S11325D02FEF33E0C901B401A3D4D901A81BB90B6F -S11325E0CD0107C0C901B4019BD4F901E81BF90B63 -S11325F0CF01FE01EE0FFF1FEE0FFF1FEE0FFF1FB7 -S1132600E05CFE4D128613868815990578F4D8018E -S11326108C9184608C93B0E4DB9EC00111248759B3 -S11326209F4D848795878686978613C0F8014181DC -S1132630528125813681240F351FCC0FDD1FCC0F2D -S1132640DD1FCC0FDD1FC05CDE4D2C873D878E87E0 -S11326509F87F70102E0069313C0D8018C9180FF95 -S11326600FC08E7F8C931796ED91FC91189730973D -S113267039F015966D917C9116974D2D80E0099552 -S1132680DF91CF911F910F91FF90EF90DF90BF905A -S1132690AF909F908F900895CF93CFB7F89481E037 -S11326A011DDEAECF4E080E4808380E28083E1ECF5 -S11326B0F4E0808181608083A9ECB4E08C91826035 -S11326C08C93E8ECF4E08081806480838C91816059 -S11326D08C93808180688083CFBFCF910895CF93FE -S11326E0DF93C0E6D0E0188280E30E94AD0AE0ECFC -S11326F0F4E080818064808381E08883CFB7F8949C -S1132700E0E4F1E21186118A118E11A2E9EEF0E201 -S113271080818E7F8083E2EFF0E280818E7F8083F0 -S11327206AE170E082E0C4DC8F3F19F08093FA0420 -S113273003C08FE18093FA046BE170E082E0B8DCBF -S11327408F3F19F08093FB0403C08FE18093FB0457 -S1132750E0ECF4E080818160808380818068808304 -S113276080818061808388E491E28683978380817D -S1132770806280838FEF8093C504E8ECF4E080816D -S11327808260808310926C218091CF2B8F3F09F45B -S1132790FFCF9FB7F894EAECFBE285818F5F8583D6 -S11327A09FBF7ADFCFBFDF91CF9108958093C30499 -S11327B008958091C3040895EAE9F3E2808791873C -S11327C0628773870895282F2F7030E0220F331FFC -S11327D0082E000C990B8827990F881F9927820FC0 -S11327E0931FFC01EE0FFF1FEE0FFF1FEE0FFF1FE5 -S11327F0E05CFE4D2185207C09F058C06370613097 -S113280011F018F404C020EC03C020E801C020E457 -S113281040385105E9F050F440325105A9F04034F4 -S11328205105A1F040315105D9F40CC0411532E0F5 -S1132830530791F04F3F33E0530781F04115514066 -S113284079F408C041E00DC042E00BC043E009C088 -S113285044E007C045E005C046E003C047E001C0CE -S113286040E0FC01EE0FFF1FEE0FFF1FEE0FFF1FF6 -S1132870E05CFE4D1186DC01AA0FBB1FAA0FBB1F33 -S1132880AA0FBB1FA85BBE4D36E03C93242B2187C7 -S1132890880F991F880F991F880F991FFC01E05C0E -S11328A0FE4D81858062818781E0089580E00895EE -S11328B0E82FEF70F0E0EE0FFF1F082E000C990BCD -S11328C08827990F881F9927E80FF91FEE0FFF1F1C -S11328D0EE0FFF1FEE0FFF1FE05CFE4D818582FBB4 -S11328E0882780F90895282F2F7030E0A901440F1C -S11328F0551F282F082E000C330B2227330F221FBD -S11329003327240F351FF901EE0FFF1FEE0FFF1FB2 -S1132910EE0FFF1FE05CFE4D918592FF17C0220F62 -S1132920331F220F331F220F331FF901E05CFE4DCA -S113293091859B7F9187CCDCFC01808180FF06C060 -S11329408E7F80830780F085E02D099581E00895CE -S11329507F928F929F92AF92BF92CF92DF92EF922B -S1132960FF920F931F93CF93DF93982E862E6A01C5 -S11329707901AEDC5C01792C771C7724771CC92D96 -S1132980CF70D0E0CC0FDD1FC70DD11DFE01EE0FBF -S1132990FF1FEE0FFF1FEE0FFF1FE05CFE4D818552 -S11329A0807C09F47DC0FE01EE0FFF1FEE0FFF1FB8 -S11329B0EE0FFF1FE05CFE4D8185807C803C61F062 -S11329C0FE01EE0FFF1FEE0FFF1FEE0FFF1FE05C77 -S11329D0FE4D818582FD66C08FB7F894F501908124 -S11329E090FF03C08FBF712C5EC0F5019081916090 -S11329F090838FBFC182D282E382F48215821682D1 -S1132A0007831087811006C091E0E114F10419F0E6 -S1132A1090E001C091E0F501808190FB81F98B7F0A -S1132A208083772059F0CC0FDD1FCC0FDD1FCC0F36 -S1132A30DD1FC05CDE4D1E861F862DC0FE01EE0F1D -S1132A40FF1FEE0FFF1FEE0FFF1FE05CFE4D8185A1 -S1132A50807C803CA1F4CE01880F991F880F991FB8 -S1132A60880F991F885B9E4D0DDCBC01C70158D2AD -S1132A70892B29F0F50180818E7F808314C0CC0FCF -S1132A80DD1FCC0FDD1FCC0FDD1FC05CDE4D1A86B1 -S1132A901B861E861F86892DA5DC7724739403C0AC -S1132AA0712C01C0712C872DDF91CF911F910F9153 -S1132AB0FF90EF90DF90CF90BF90AF909F908F905A -S1132AC07F900895FF920F931F93CF93DF93182F56 -S1132AD0F82EFF1CFF24FF1CC82FCF70D0E0CC0FB2 -S1132AE0DD1FCF0DD11DF4DBDC01FE01EE0FFF1F56 -S1132AF0EE0FFF1FEE0FFF1FE85BFE4D02E0059394 -S1132B008C9180FF22C08E7F8C931796ED91FC915F -S1132B1018973097D1F0FF2059F0CC0FDD1FCC0F60 -S1132B20DD1FCC0FDD1FC05CDE4D6E857F850AC0C6 -S1132B30CC0FDD1FCC0FDD1FCC0FDD1FC05CDE4DC5 -S1132B406A857B85412F81E00995DF91CF911F91A3 -S1132B500F91FF900895CF93C82FB4DFEC2FEF703F -S1132B60F0E0EE0FFF1F8C2FCC0F990B8827990FE5 -S1132B70881F9927E80FF91FEE0FFF1FEE0FFF1FA5 -S1132B80EE0FFF1FE05CFE4D1186CF9108950F9369 -S1132B90E82FEF70F0E0EE0FFF1F282F082E000C37 -S1132BA0330B2227330F221F3327E20FF31FDF01DA -S1132BB0AA0FBB1FAA0FBB1FAA0FBB1FA05CBE4D51 -S1132BC019969C911997946019969C93EE0FFF1F88 -S1132BD0EE0FFF1FEE0FFF1FE85BFE4D01E00693B3 -S1132BE071DF81E00F9108951F920F920FB60F923B -S1132BF011240F932F933F934F935F936F937F937E -S1132C008F939F93AF93BF93EF93FF938091CB04E4 -S1132C10882344F480E88093CA040E94300C0E9404 -S1132C20450482C08091CB0482FF20C084E080935D -S1132C30CA048091502186FF77C08091CC0481FD25 -S1132C4073C061DB811170C080913F21813011F428 -S1132C5097DA6AC0843009F067C0E1E5F1E204E084 -S1132C600593E9E4F1E204E005935EC08091CB04AE -S1132C7081FF55C082E08093CA048091482186FF79 -S1132C8053C08091CC0481FD4FC03DDB81114CC009 -S1132C9080913F21823041F484E080933F21E8E435 -S1132CA0F1E202E0069340C0833009F03DC0E1E563 -S1132CB0F1E204E00593E9E4F1E204E0059334C0B1 -S1132CC080E18093CA040E940B0C1092C304E0E4D8 -S1132CD0F1E2118696E0908783E48187118A908BD4 -S1132CE0818B8BEF90E28487958715DA1DC08091E4 -S1132CF0CB0486FF08C080E48093CA0480E0E2D954 -S1132D000E94430411C08091CB0485FF0DC080E272 -S1132D108093CA0481E0D6D90E94440405C08091FE -S1132D20CB0484FFE4CFCCCFFF91EF91BF91AF915F -S1132D309F918F917F916F915F914F913F912F91CF -S1132D400F910F900FBE0F901F9018951F920F9226 -S1132D500FB60F9211240F931F932F933F934F930A -S1132D605F936F937F938F939F93AF93BF93CF930F -S1132D70DF93EF93FF938091CC0481FD03C0C3DA0A -S1132D808111B9C082E08093CC048091C5048195FF -S1132D90880FE8E4F1E2E81BF1092081318128542D -S1132DA03142369527953695279536952795822F66 -S1132DB0869520FD02C090E001C090E8890FE82FBD -S1132DC0EF70F0E0EE0FFF1F282F082E000C330BDE -S1132DD02227330F221F3327E20FF31FDF01AA0F2D -S1132DE0BB1FAA0FBB1FAA0FBB1FA85BBE4D9C91A4 -S1132DF095FF81C0FD0100E20693811177C08091A7 -S1132E003F21843019F4CAD986D975C000914A216A -S1132E1010914B218091A4239091A523C0913B2133 -S1132E20D0913C219E01200F311F8217930718F483 -S1132E308C010C1B1D0B8091A2239091A323A8014C -S1132E406BEF70E28C0F9D1F98D0C00FD11FC09301 -S1132E503B21D0933C210034110569F480913D213C -S1132E6090913E218C0F9D1F2091A0233091A1238E -S1132E708217930780F0EAE9F3E2C287D3870684D6 -S1132E80F785E02D309729F00995811102C06AD9A0 -S1132E9032C076D930C08091A4239091A523C8175D -S1132EA0D907F9F4E091A823F091A923309711F4FC -S1132EB059D921C00995811102C054D91CC020914F -S1132EC03D2130913E2180913B2190913C21820F04 -S1132ED0931F80933D2190933E2110923B211092A9 -S1132EE03C21E8E4F1E202E0069305C0803811F4E5 -S1132EF05DD901C077DAFF91EF91DF91CF91BF9156 -S1132F00AF919F918F917F916F915F914F913F917D -S1132F102F911F910F910F900FBE0F901F90189536 -S1132F20AA1BBB1B51E107C0AA1FBB1FA617B707EB -S1132F3010F0A61BB70B881F991F5A95A9F7809507 -S1132F409095BC01CD01089597FB072E16F40094CB -S1132F5006D077FD08D0E4DF07FC05D03EF4909559 -S1132F6081959F4F0895709561957F4F0895EE0F59 -S1132F70FF1F0590F491E02D0994FB01DC0102C0D0 -S1132F8001900D9241505040D8F70895F894FFCF26 -S1132F9040000CE02E0AFFFFFFFF5580008000E791 -S1132FA00AF20AF80AE40A000044201F200000285C -S1132FB02023200F200000000902190001010080D5 -S1132FC0FA0904000001FFFFFF0007058101FF0368 -S1132FD0010000001201000200000040EB0394BA5B -S1132FE000020102000100000003000000000000D4 -S1132FF0000000000000000000004C616272616487 -S11330006F72004573706F54656B0000040309040C -S10F301064656275673132330000020011 +S113084080919120882371F3E091AA238E2F90E068 +S113085088309105A0F4FC01E250FF4F0C948E17F0 +S113086071D10DC0E1D10BC068D209C0ECD207C070 +S113087078D305C0FED303C0FDD301C06ED410925B +S11308809120D0CF08950895CF93DF93A0E0B1E0F5 +S113089054968C915497EEE7F1E2818755968C91AA +S11308A05597828794968C919497838795968C918B +S11308B095978487C0E0DAE088A1858B89A1868B2F +S11308C054968D919C9155978634914080F08091F7 +S11308D0140190911501893A914048F480911401D2 +S11308E0909115018093C82B9093C92B000080919F +S11308F09420882339F0F5DC1092942081E08093D1 +S1130900932035C080919320882341F080918C20DE +S1130910833019F4F8DC7ADE01C0CFDD80919220B7 +S1130920882351F080911401909115018093C82B74 +S11309309093C92B1092922080910920853060F405 +S1130940209114013091150181E02737314008F0DE +S113095080E0809396200BC0209114013091150102 +S113096081E02E3E324008F080E080939620DF91B3 +S1130970CF9108950F931F9381E0809399208093E2 +S113098094200FEA13E02DE730E04CEC55E260E0F0 +S113099081E80E947F1481E01F910F9108951092C5 +S11309A09920089581E0089581E00895E0E0F2E05F +S11309B010A2982F9C71936890A3881F8827881F82 +S11309C0880F81A312A216A20895E0E0F2E010AA13 +S11309D0836880AB80E181AB12AA16AA0895E0E097 +S11309E0F2E010A683E880A78FE281A712A616A6DC +S11309F00895AAECB1E092E09C93E82FF0E0849192 +S1130A001C920895CF93DF93E0E7F0E091819D7FFE +S1130A10918310920002623031F1E0E0F2E09CE157 +S1130A20918390E49283811102C080E401C080EC40 +S1130A3080930302613011F084E001C083E0C0E0E0 +S1130A40D2E08C8380E2D5DF8C8781E2D2DF8D8790 +S1130A50188E198E81E08883C2DF0EC080EC8093EB +S1130A60030284E0ECCFE0E0F2E09EE1918390E4C5 +S1130A7092838111F3CFD9CFDF91CF9108951F9243 +S1130A800F920FB60F9211248F9300000000000004 +S1130A90000081E0809323028F910F900FBE0F908E +S1130AA01F901895CF93DF93E0E7F0E082818B7F6E +S1130AB08283C0E2D3E08DE0888380E4898389E087 +S1130AC08A8383E396DF888782E393DF898787E3DA +S1130AD090DF8A8786E38DDF8B87E0E2F6E0808112 +S1130AE0836080831482DF91CF910895E0E7F0E082 +S1130AF080818E7F808383E8809300010895E0E005 +S1130B00F1E0108A80E4808B10A280A310AA80AB4D +S1130B10E0E4F1E0108280831092982010929720F4 +S1130B2081E08093962010927C2110927D21109276 +S1130B307A2110927B2108958093AA2381E08093E7 +S1130B4091200895CF93DF9310920920D8DFC0E05D +S1130B50D1E01EAA84E288AB19AA49E54AAB32E087 +S1130B603BAB60910B2070910C206CAB7DAB6BEABE +S1130B7073E268AF79AF1AAE9BE39CAF93E09093B6 +S1130B803D0110923E0128A9206828AB109246012D +S1130B90E0E4F1E08083109241014093420190939C +S1130BA0430140910D2050910E20409344015093F5 +S1130BB045014AE951E2409348015093490110929A +S1130BC04A0129E320934C0190934D0110924E0168 +S1130BD0908190689083188A90E4988B888B198A06 +S1130BE095E99A8B90E19B8B4EEE52E04C8B5D8B9A +S1130BF0888F398F1A8E8CEC95E28C8F9D8F1E8E88 +S1130C0068EC70E084EF91E067DD88EC90E080931D +S1130C1007209093082081E08093062088898068CB +S1130C20888BDF91CF9108951F93CF93DF9311E0C9 +S1130C301093092064DFC0E0D1E018AA80E488ABF7 +S1130C4084E088AB19AA1AAA4BE44BAB1CAA1DAAD0 +S1130C501EAA8AE090E288AF99AF1AAE70EA7CAF20 +S1130C6068E060933D0110923E0188A9806A88ABD8 +S1130C70E0EAF8E085E58083808310924601E0E4B1 +S1130C80F1E084E280831092410199E5909342015E +S1130C9032E030934301A0910B20B0910C20A0933B +S1130CA04401B0934501ABEAB3E2A0934801B09389 +S1130CB0490110924A019BE390934C0193E0909375 +S1130CC04D0110924E0120812068208388A399A3AE +S1130CD025E92AA34BA34EEE52E04CA35DA378A7CB +S1130CE069A71AA66AEB78E26CA77DA71EA6888B73 +S1130CF0998B2A8B90E19B8B4C8B5D8B888F398FE2 +S1130D001A8E8CEC95E28C8F9D8F1E8E68EC70E0B1 +S1130D1084EF91E0E1DC88EC90E0809307209093ED +S1130D2008201093062088A1806888A38889806899 +S1130D30888BDF91CF911F9108951F93CF93DF93F9 +S1130D4012E010930920DBDEC0E0D1E01EAA84E2A9 +S1130D5088AB19AA39E53AAB1BAB40910B205091F3 +S1130D600C204CAB5DAB4BEA53E248AF59AF1AAE23 +S1130D709BE39CAF93E090933D0110923E0128A920 +S1130D80206828AB10924601E0E4F1E080831092E1 +S1130D904101309342019093430120910D20309101 +S1130DA00E2020934401309345012AE931E2209337 +S1130DB048013093490110924A0129E320934C01E0 +S1130DC090934D0110924E01908190689083188AFF +S1130DD090E4988B888B198A45E94A8B90E19B8B28 +S1130DE02EEE32E02C8B3D8B888F198F1A8E6CEC93 +S1130DF075E26C8F7D8F1E8E88A319A24AA39BA3D4 +S1130E002CA33DA384E388A719A71AA68AEB98E22A +S1130E108CA79DA71EA668EC70E084EF91E05CDCD3 +S1130E2088EC90E0809307209093082081E08093E1 +S1130E30062088898068888B88A1806888A3DF91D0 +S1130E40CF911F9108951F93CF93DF9313E01093D5 +S1130E50092055DEC0E0D1E018A250E458A384E094 +S1130E6088A319A21AA24BE44BA31CA21DA21EA282 +S1130E708AE090E288A799A71AA630EA3CA728E05E +S1130E802DA71EA688A1806A88A385E58093A00863 +S1130E901EAA84E288AB19AA69E56AAB1BABE09190 +S1130EA00D20F0910E20ECABFDABEAE9F1E2E8AFE6 +S1130EB0F9AF1AAE99E39CAF10933D0110923E0135 +S1130EC098A9906898AB10924601E0E4F1E0808321 +S1130ED0109241016093420192E09093430160912A +S1130EE00B2070910C2060934401709345016BEAD0 +S1130EF073E2609348017093490110924A019BE3A5 +S1130F0090934C0110934D0110924E019081906882 +S1130F109083188A588B888B198A85E98A8B4B8B26 +S1130F208EEE92E08C8B9D8B388F298F1A8E8CECF1 +S1130F3095E28C8F9D8F1E8E68EC70E084EF91E0BB +S1130F40CBDB88EC90E0809307209093082081E02D +S1130F508093062088898068888BDF91CF911F91C8 +S1130F6008951F93CF93DF9314E010930920C7DDF6 +S1130F70C0E0D1E018AA80E488AB18AB19AA1AAA79 +S1130F803BE43BAB1CAA1DAA1EAA8AE090E288AFF0 +S1130F9099AF1AAE50EA5CAF88E080933D0110929D +S1130FA03E0198A9906A98AB95E59093A008109299 +S1130FB04601E0E4F1E094E290831092410129E5D6 +S1130FC02093420122E02093430160910B20709111 +S1130FD00C2060934401709345016BEA73E26093C3 +S1130FE048017093490110924A012BE320934C016C +S1130FF023E020934D0110924E012081206820832C +S1131000988B198A45E94A8B3B8B2EEE32E02C8B68 +S11310103D8B588F898F1A8E6CEC75E26C8F7D8FA7 +S11310201E8E98A319A24AA39AE49BA32CA33DA3C2 +S113103093EC98A789A71AA68AEB98E28CA79DA798 +S11310401EA668EC70E084EF91E046DB88EC90E04B +S1131050809307209093082081E08093062088895C +S11310608068888B88A1806888A3DF91CF911F91C5 +S11310700895FFCFCF93DF9386E0809309203FDD6F +S1131080C0E0D1E01EAA84E288AB19AA39E53AABE4 +S113109093E09BAB40910D2050910E204CAB5DAB87 +S11310A04AE951E248AF59AF1AAE29E32CAF909305 +S11310B03D0110923E0128A9206828AB10924601F8 +S11310C0E0E4F1E08083109241013093420132E088 +S11310D03093430140910B2050910C2040934401E4 +S11310E0509345014BEA53E2409348015093490120 +S11310F010924A012BE320934C0190934D011092DE +S11311004E01208120682083188A20E4288B888B54 +S1131110998B95E99A8B90E19B8B4CED55E04C8B28 +S11311205D8B888F398F1A8E8CEC95E28C8F9D8F16 +S11311301E8E68EC70E084EF91E0CEDA80E991E0F5 +S1131140809307209093082081E08093062088896B +S11311508068888BDF91CF910895CF93DF9387E0E8 +S113116080930920CCDCC0E0D1E01EAA94E298ABC5 +S113117019AA39E53AAB83E08BAB40910D2050912D +S11311800E204CAB5DAB4AE951E248AF59AF1AAE01 +S113119029E32CAF80933D0110923E0128A92068D9 +S11311A028AB10924601E0E4F1E0908310924101F3 +S11311B03093420132E03093430140910B2050912F +S11311C00C2040934401509345014BEA53E2409371 +S11311D048015093490110924A012BE320934C019A +S11311E080934D0110924E01208120682083188A3B +S11311F020E4288B25E2288B898B85E98A8B80E182 +S11312008B8B4CED55E04C8B5D8B988F398F1A8E00 +S11312108CEC95E28C8F9D8F1E8E68EC70E084EFD1 +S113122091E05ADA80E991E08093072090930820B6 +S113123081E08093062088898068888BDF91CF9134 +S113124008951F920F920FB60F9211248F939F93BC +S1131250EF93FF9381E08093030180917C2190912F +S11312607D21019680937C2190937D2180917C2126 +S113127090917D21EEE7F1E2878B80917C21909122 +S11312807D21908FFF91EF919F918F910F900FBED1 +S11312900F901F9018951F920F920FB60F92112462 +S11312A08F939F93EF93FF9382E080930301809148 +S11312B07A2190917B21019680937A2190937B21CE +S11312C080917A2190917B21EEE7F1E2818F8091E8 +S11312D07A2190917B21928FFF91EF919F918F9131 +S11312E00F900FBE0F901F901895E0E7F0E08381F8 +S11312F08C7F838384818C7F848380818D7F8083B2 +S1131300E0E8F1E080EC8283128688EC8183118628 +S1131310A0E0B8E034E03C9323E011962C931197BD +S113132014961C92149785ED91E096968D939C9358 +S1131330979716961C921697E0E4F8E03083218381 +S1131340148286A397A31682E0E6F6E0808180618A +S11313508083E0E4F9E083E18183148282E0868380 +S1131360A6A3B7A310A611A681E0808308951F92B7 +S11313700F920FB60F9211242F933F934F935F93C5 +S11313808F939F93EF93FF93CF93DF931F92CDB7E8 +S1131390DEB78FEF80934C0980910920873031F4B8 +S11313A0E0E0F2E084A5898395A502C090912C0227 +S11313B080919520891B209168093091690991E0F9 +S11313C082300CF490E09923C9F091E02A3F374031 +S11313D008F090E0992391F020916809309169090F +S11313E089301CF481E090E002C086E090E0820F36 +S11313F0931F809378099093790923C020916809F9 +S11314003091690991E08F3F0CF090E09923C9F085 +S113141091E02730310508F490E0992391F0209170 +S1131420680930916909883F1CF081E090E002C0AE +S113143086E090E0A901481B590B4093780950932A +S113144079090F90DF91CF91FF91EF919F918F9147 +S11314505F914F913F912F910F900FBE0F901F906E +S11314601895E0E7F0E083818F7E8383E0E4F6E083 +S113147080818A6A80838FEF848388E5828BE0EAA7 +S1131480F8E080E3838384EC858387E08683178296 +S113149088E184830895E0E7F0E08381877F838394 +S11314A0E0ECF8E080E48083118288E580935506BF +S11314B008951F920F920FB60F92112400000F90FF +S11314C00FBE0F901F9018951F920F920FB60F9298 +S11314D011248F93EF93FF93E0EAF8E080818083F7 +S11314E0FF91EF918F910F900FBE0F901F90189561 +S11314F09FB7F894E82FF0E0E059FF4F60958081A2 +S1131500682360839FBF0895863011F060E001C0B6 +S113151068E18091510081FD26C09FB7F894E0E511 +S1131520F0E08081826080839FBF818181FFFDCF55 +S11315309FB7F894A0E5B0E016968C911697897F32 +S113154016968C931697E0E6F0E080E885838BEBA3 +S1131550868316968C911697846016968C93808158 +S1131560816080839FBF636084E490E00CD560E475 +S113157080E0BECF089580919A2008951CD1FC018B +S1131580838180939A20811102C0F4C9089581E077 +S1131590089580919A20813009F401CA08958091B8 +S11315A09A2388234CF480768034A9F480919B2379 +S11315B0811113C0F9C908958076803481F4809133 +S11315C09B2381110EC08091A0239091A123892B8C +S11315D051F0E8C9089580E0089580E0089580E01E +S11315E0089580E0089580E00895E0919F20F091AF +S11315F0A0200190F081E02D228133812E0F3F1F26 +S1131600FC014081E40FF11DE217F307B8F4818176 +S11316108430B9F0861309C005C081818430A1F0FB +S1131620861303C08E2F9F2F08958081E80FF11D2C +S1131630E217F30790F380E090E0089580E090E0F3 +S1131640089580E090E0089580E090E0089580910E +S11316509C238F770C94AD1308959091A220992325 +S113166081F1E0919F20F091A0200190F081E02D84 +S11316709481891740F5E0939D20F0939E20228168 +S113168033812E0F3F1FE217F307F8F49181943052 +S113169061F49281981309C09381961306C0E09374 +S11316A09D20F0939E2081E008959081E90FF11D23 +S11316B0E217F30758F3E0939D20F0939E2080E017 +S11316C0089580E0089580E0089580E00895EF9201 +S11316D0FF921F93CF93DF93C82F60E0BEDF182FD4 +S11316E0882381F1A0919F20B091A020EC2FF0E0FD +S11316F0EE0FFF1F12968D919C911397E80FF91F1F +S1131700E080F180D7011696ED91FC911797099529 +S1131710682F8C2FA2DF182F8823A1F0C0919D2061 +S1131720D0919E2065E0CE0160DFEC01892B21F091 +S11317308A810E948215F6CFD7011296ED91FC9111 +S113174013970995812FDF91CF911F91FF90EF900F +S113175008951F93CF93DF93182F7FDF882339F1E8 +S1131760C0919D20D0919E2065E0CE013EDFEC012A +S1131770892B41F04C815D816B818A81FBD781117A +S1131780F3CF15C0A0919F20B091A020E12FF0E0ED +S1131790EE0FFF1F12968D919C911397E80FF91F7E +S11317A00190F081E02D0190F081E02D0995DF9109 +S11317B0CF911F91089580919D2090919E2008952E +S11317C065C70895CF938091A2208823C1F0E0914A +S11317D09F20F091A0200190F081E02D8481882346 +S11317E071F0C0E08C2F73DFCF5FE0919F20F09108 +S11317F0A0200190F081E02D8481C81798F3109205 +S1131800A2201092A6201092A720CF910895CF93E2 +S11318108091A220882349F1A0919F20B091A0201B +S1131820ED91FC91119784818823F9F0C0E0EC2FAD +S1131830F0E0EE0FFF1F12968D919C911397E80F25 +S1131840F91F0190F081E02D0084F185E02D30979F +S113185009F00995CF5FA0919F20B091A020ED9150 +S1131860FC9111978481C81710F3CF9108950F93B9 +S11318701F93CF93DF93EAE9F3E21286138614866B +S11318801586168617868081282F88233CF440917C +S1131890A0235091A123452B09F469C3982F907676 +S11318A0903409F00AC1E0919B234E2F50E0FA01D5 +S11318B0E05AF109E930F10508F0FFC0EA5FFE4F94 +S11318C00C948E1781E08093922080910720909150 +S11318D00820EEE7F1E285878091072090910820A7 +S11318E0968780917221878780916F21808BA8E6EB +S11318F0B0E012968C911297818B13968C91828B07 +S11319006091A0237091A123CF012DD734C3E0E0CF +S1131910F8E01082CAE9D3E28A819B8186AB97AB57 +S11319208C818F7080836E817F818AE991E21BD7DD +S11319308E819F8120910D2030910E208217930774 +S113194009F419C380930D2090930E2080910920EF +S1131950F3D811C3E0E4F8E01082CAE9D3E28A8143 +S11319609B8186AB97AB8C818F7080836E817F81E6 +S11319708BEA93E2F8D68E819F8120910B203091DF +S11319800C208217930709F4F6C280930B209093DE +S11319900C2080910920D0D8EEC2109268091092D0 +S11319A0690980919C2380939520E5C280919C23B2 +S11319B080932406E0C2E0919C23F0919D23E830BB +S11319C0F10508F07AC0E15FFE4F0C948E1760E0D9 +S11319D080E018D880919E230E94D60480E0ACD881 +S11319E0CAC260E080E00ED880919E230E94D60493 +S11319F081E0A2D8C0C261E081E004D8CAE9D3E2A0 +S1131A008C810E94D6048D810E94E50482E094D8E2 +S1131A10B2C283E091D8AFC284E08ED8ACC260E099 +S1131A2080E00E94020580919E230E94D60485E0F6 +S1131A3083D8A1C261E080E00E94020580919E23C8 +S1131A400E94D60486E078D896C262E080E00E94C4 +S1131A50020580919E2380680E94D60487E06CD89A +S1131A608AC280919C238093840685C280919C23A2 +S1131A7090919D23892B91F00E94850380E2E8EAEE +S1131A80FBE2ABEAB5E201900D928A95E1F781E0C1 +S1131A908093AB250E949A030E948503E9E7F0E056 +S1131AA091E088EDF89484BF90836091A0237091B5 +S1131AB0A1238AE890E257D65EC29111E1C12223A4 +S1131AC00CF005C12091A0233091A12321153105EB +S1131AD009F4D6C18F7109F0A3C090919B2396306D +S1131AE079F0983009F492C091119AC022303105EE +S1131AF009F0C6C162E070E086EA90E234D63DC2E5 +S1131B0080919C2390919D23292F332722303105E6 +S1131B10A9F024F42130310541F0A9C12330310565 +S1131B20D9F12F30310551F1A2C180911920909142 +S1131B301A20DC016C9170E016D659C0E09119208E +S1131B40F0911A202189821708F09AC19927880FE9 +S1131B50991F880F991FE0911B20F0911C20E80F1A +S1131B60F91F80819181FC0162817381FCD5E09130 +S1131B70A223F091A32382E0818339C080911D20A8 +S1131B8090911E20009709F47BC1DC0112966D919F +S1131B907C911397E8D52BC099278130910571F07A +S1131BA038F0029709F06CC12AE630E288E009C0F7 +S1131BB064E070E08CE790E2D6D519C023E730E208 +S1131BC087E0422FAAE5B0E2E22FF32F219130E023 +S1131BD02D933D939E2F941B9817C0F3682F660F87 +S1131BE06E5F6093582070E088E590E2BCD5EAE926 +S1131BF0F3E286819781228533858217930708F063 +S1131C00BCC18093A4239093A523B7C1213031058F +S1131C1009F036C161E070E082EA90E2A4D5ADC17A +S1131C208130E1F590919B239A30C1F52130310543 +S1131C3009F026C18091A220882309F421C1C09112 +S1131C409E23D0919F2300919F201091A020D80122 +S1131C50ED91FC918481C81708F012C160E08C2FCB +S1131C60FCDC882309F40CC1CE019927880F991F45 +S1131C70D8011296ED91FC911397E80FF91F01908A +S1131C80F081E02D86819781FC0109958093A42041 +S1131C9061E070E084EA90E266D56FC1823009F0B9 +S1131CA0EFC080919B238111E4C02230310509F0FB +S1131CB0E7C080919E23D3D590E080939B2090939E +S1131CC09C2062E070E08BE990E24DD556C18F71A3 +S1131CD009F083C090919B23933009F4CCC018F48D +S1131CE09130A1F07AC0953019F0993039F175C06E +S1131CF08091A0239091A123892B09F0C1C087E290 +S1131D009BE08093A6239093A72337C18091A023BF +S1131D109091A123892B09F0B3C080919C239091C9 +S1131D209D23019709F0ACC08091A6209091A72033 +S1131D308D7F8093A6209093A7201FC18091A0231C +S1131D409091A123892B09F09BC00AD5882309F41B +S1131D5097C020919C2330919D233327E091192033 +S1131D60F0911A20818990E08217930708F488C0C3 +S1131D7029DD80919C2390919D238093A220882328 +S1131D8009F4FBC099278150904C880F991F880F44 +S1131D90991FE0911B20F0911C20E80FF91FE0939C +S1131DA09F20F093A0200190F081E02D848188236E +S1131DB009F4E3C0C0E060E08C2FCBDC882309F495 +S1131DC05FC0CF5FE0919F20F091A0200190F0814F +S1131DD0E02D8481C81778F3D0C08130E1F490916C +S1131DE09B239B30C1F48091A0239091A123892B44 +S1131DF009F046C08091A220882309F441C0EAE991 +S1131E00F3E2C481D2818C2F62DC8823C9F16D2F67 +S1131E108C2F9FDC33C0823099F580919B238130D5 +S1131E2019F0833089F029C08091A0239091A123D7 +S1131E30892B31F580919C2390919D23892B01F569 +S1131E4080919E2327D51AC08091A0239091A1232D +S1131E50892BB1F480919C2390919D23892B81F44B +S1131E60CAE9D3E28C8105D68C8168D607C080E0AC +S1131E7005C080E003C080E001C080E081117EC025 +S1131E8080919A238F71813071F58091A2208823EB +S1131E9051F100919E2310919F23C0919F20D091D6 +S1131EA0A020E881F98184810817E8F460E0802F9C +S1131EB0D4DB8823C1F0F801FF27CF01880F991FD5 +S1131EC0EA81FB81E80FF91FC081D181EE81FF8196 +S1131ED00995682F802FC1DB882329F0EC81FD81CF +S1131EE0099581114BC080919A238F71823009F03A +S1131EF040C08091A2208823B1F1A0919F20B0918D +S1131F00A020ED91FC9111978481882371F1C0E0A8 +S1131F10EC2FF0E0EE0FFF1F12968D919C9113971A +S1131F20E80FF91F00811181D8011696ED91FC91FB +S1131F3017970995682F8C2F90DB8823F9F0D80127 +S1131F401496ED91FC9115970995811117C0CF5FF7 +S1131F50A0919F20B091A020ED91FC9111979481C4 +S1131F60C917B0F20BC080E009C080E007C080E070 +S1131F7005C080E003C081E001C081E0DF91CF9122 +S1131F801F910F9108951BBEFC0128ED24BF6083AF +S1131F900895CF93DF939C01DB01E0ECF1E097859A +S1131FA09923ECF3CCECD1E0988198609883B90143 +S1131FB0705FCD01B9D78881877F8883DF91CF9106 +S1131FC00895E0ECF1E097859923ECF3ACECB1E0F3 +S1131FD09C9198609C93E82FF0E0F05F60838C9173 +S1131FE0877F8C930895EF92FF920F931F93CF9363 +S1131FF0DF938C01E0ECF1E087858823ECF3780132 +S113200080E2E80EF11CE8018C2F801B6991D9DF76 +S1132010CE15DF05C9F7DF91CF911F910F91FF9086 +S1132020EF9008951F93CF93DF93E0ECF1E0978551 +S11320309923ECF320E2829FC0011124C0ECD1E08B +S11320401A82998388831A8585E38A8761E08BECF9 +S113205091E099DF1A87DF91CF911F910895409104 +S1132060CA01E62FF72F8093CA0184914093CA01D5 +S11320700895811122C090916C219923D9F09091F7 +S1132080CB2B911101C0FFCF2FB7F894EAECFBE200 +S11320909181915091832FBF0DC09091CB2B9F3F85 +S11320A009F4FFCF2FB7F894EAECFBE291819F5F2C +S11320B091832FBF80936C21089590916C21992373 +S11320C061F3F8CF0F93E8ECF4E080818F7D808397 +S11320D080818F7D8083E0E5F1E202E00593109238 +S11320E052211092532100E2069300E40693E8E49F +S11320F0F1E200E2069300E40693EAE9F3E21486CF +S11321001586168617861286138610923F210F9124 +S113211008950F9385E080933F21E1E5F1E204E027 +S11321200593E9E4F1E204E005930F9108950F9318 +S113213083E080933F211092522110925321E0E5D5 +S1132140F1E202E006930F910895E091A623F09145 +S1132150A723309709F0099508950F93CF93DF9340 +S113216080913F21833019F4F0DFACDF5EC08091B1 +S11321703B2190913C21C091A423D091A523C81B5D +S1132180D90B71F520913D2130913E21820F931F8F +S113219080933D2190933E212091A0233091A1234F +S11321A08217930721F08091A820882341F084E0CE +S11321B080933F21E8E4F1E202E0069336C0E09127 +S11321C0A823F091A923309799F00995882381F0E9 +S11321D010923B2110923C21C091A423D091A523BD +S11321E0C034D10528F01092A820C0E4D0E003C088 +S11321F081E08093A820E0E4F1E2C28BD38B80914C +S11322003B2190913C212091A2233091A323280FBC +S1132210391F248B358BC80FD91FC0933B21D09312 +S11322203C21E0E5F1E202E00693DF91CF910F91CA +S11322300895FC018181E82FE7708E2F90E0FC0166 +S11322403197E730F105C0F4E95EFE4F67C680E1DF +S113225090E0089580E290E0089580E490E008958D +S113226080E890E0089580E091E0089580E092E0B5 +S113227008958FEF93E0089588E090E00895282F63 +S11322802F7030E0220F331F082E000C990B882783 +S1132290990F881F9927820F931F02979C01220F81 +S11322A0331F220F331F220F331F820F931F8751B7 +S11322B09F4D08950F93CF938091CC0480FF62C00B +S11322C081E08093CC04E8E4F1E200E80693E0E5E1 +S11322D0F1E200E806938093CA04E8E4F1E200E145 +S11322E0069380913F21882329F08350823008F49B +S11322F02CDFE8DE80914A2190914B21089709F068 +S113230043C088E0EBEFF0E2AAE9B3E201900D925A +S11323108A95E1F7E8ECF4E0808180628083808133 +S113232080628083A4DAC82F811103C0F2DEC1E089 +S11323302CC080919A2388236CF410923D21109232 +S11323403E2110923B2110923C2182E080933F2158 +S113235004DF1BC08091A0239091A123892B11F449 +S1132360E6DE13C010923D2110923E2110923B21D3 +S113237010923C2181E080933F21E8E4F1E202E005 +S1132380069303C0C0E001C0C1E08C2FCF910F9130 +S113239008958F929F92AF92BF92DF92EF92FF9235 +S11323A00F931F93CF93DF93D82E69DF8C01BD2C3D +S11323B0BB1CBB24BB1CCD2DCF70D0E0CC0FDD1FCC +S11323C0CB0DD11DCE01880F991F880F991F880F3F +S11323D0991F9C01285B3E4D7901C9012ADF4C01FC +S11323E0BB2009F470C0FE01EE0FFF1FEE0FFF1FAC +S11323F0EE0FFF1FE05CFE4D26853785D80115964C +S11324008D919C911697820F931F15968D939C9393 +S1132410169713962D913C9114978217930709F4FC +S11324203CC0281B390B2115B4E03B0738F02FEFD3 +S113243033E0C901B4014BD5281B390BF801808165 +S113244081FF09C0C901B40142D541E0892B09F0DB +S113245040E0842F01C080E0D8019C9180FB91F979 +S11324609C93CC0FDD1FCC0FDD1FCC0FDD1FC05C98 +S1132470DE4D1E861F862A873B8711962D913C913F +S1132480129715968D919C911697820F931F8C87A6 +S11324909D87F70102E00693CAC0D8018C9181FFA1 +S11324A0B3C08D7F8C93CC0FDD1FCC0FDD1FCC0F01 +S11324B0DD1FC05CDE4D1E861F861A861B86F70153 +S11324C002E00693B4C0FE01EE0FFF1FEE0FFF1FE4 +S11324D0EE0FFF1FE05CFE4DA284B384D8018C9103 +S11324E082FF19C01196ED91FC91129715962D91CA +S11324F03C91169713968D919C911497B401E7D44F +S1132500B0E4DB9EB001112467597F4DAC01CF01CB +S1132510820F931F09D5F801258136812A0D3B1DB1 +S113252025833683838194818217930768F4858396 +S11325309683CC0FDD1FCC0FDD1FCC0FDD1FC05CDD +S1132540DE4D8E859F8560C0FE01EE0FFF1FEE0FEE +S1132550FF1FEE0FFF1FE05CFE4D468557854A15B1 +S11325605B0509F051C02817390709F44DC0AC01C7 +S1132570421B530B9A01211554E0350750F02FEFFD +S113258033E0C901B401A3D4D901A81BB90BCD010F +S113259007C0C901B4019BD4F901E81BF90BCF01B1 +S11325A0FE01EE0FFF1FEE0FFF1FEE0FFF1FE05C9B +S11325B0FE4D128613868815990578F4D8018C91FE +S11325C084608C93B0E4DB9EC001112487599F4D35 +S11325D0848795878686978613C0F8014181528146 +S11325E025813681240F351FCC0FDD1FCC0FDD1F55 +S11325F0CC0FDD1FC05CDE4D2C873D878E879F8707 +S1132600F70102E0069313C0D8018C9180FF0FC03C +S11326108E7F8C931796ED91FC911897309739F033 +S113262015966D917C9116974D2D80E00995DF915B +S1132630CF911F910F91FF90EF90DF90BF90AF90DB +S11326409F908F900895CF93CFB7F89481E011DDD8 +S1132650EAECF4E080E4808380E28083E1ECF4E05F +S1132660808181608083A9ECB4E08C9182608C933A +S1132670E8ECF4E08081806480838C9181608C93A9 +S1132680808180688083CFBFCF910895CF93DF93FB +S1132690C0E6D0E0188280E30E94840AE0ECF4E013 +S11326A080818064808381E08883CFB7F894E0E4FC +S11326B0F1E21186118A118E11A2E9EEF0E2808115 +S11326C08E7F8083E2EFF0E280818E7F80836AE1F7 +S11326D070E082E0C4DC8F3F19F08093FA0403C0F9 +S11326E08FE18093FA046BE170E082E0B8DC8F3F05 +S11326F019F08093FB0403C08FE18093FB04E0ECAA +S1132700F4E080818160808380818068808380811F +S11327108061808388E491E28683978380818062EC +S113272080838FEF8093C504E8ECF4E080818260BD +S1132730808310926C218091CF2B8F3F09F4FFCFBF +S11327409FB7F894EAECFBE285818F5F85839FBF96 +S11327507ADFCFBFDF91CF9108958093C3040895AA +S11327608091C3040895EAE9F3E280879187628740 +S113277073870895282F2F7030E0220F331F082EFF +S1132780000C990B8827990F881F9927820F931F94 +S1132790FC01EE0FFF1FEE0FFF1FEE0FFF1FE05CAB +S11327A0FE4D2185207C09F058C06370613011F022 +S11327B018F404C020EC03C020E801C020E4403831 +S11327C05105E9F050F440325105A9F04034510567 +S11327D0A1F040315105D9F40CC0411532E0530742 +S11327E091F04F3F33E0530781F04115514079F4A4 +S11327F008C041E00DC042E00BC043E009C044E022 +S113280007C045E005C046E003C047E001C040E022 +S1132810FC01EE0FFF1FEE0FFF1FEE0FFF1FE05C2A +S1132820FE4D1186DC01AA0FBB1FAA0FBB1FAA0F06 +S1132830BB1FA85BBE4D36E03C93242B2187880F39 +S1132840991F880F991F880F991FFC01E05CFE4DAA +S113285081858062818781E0089580E00895E82F72 +S1132860EF70F0E0EE0FFF1F082E000C990B882785 +S1132870990F881F9927E80FF91FEE0FFF1FEE0F1E +S1132880FF1FEE0FFF1FE05CFE4D818582FB882752 +S113289080F90895282F2F7030E0A901440F551FA7 +S11328A0282F082E000C330B2227330F221F332727 +S11328B0240F351FF901EE0FFF1FEE0FFF1FEE0F60 +S11328C0FF1FE05CFE4D918592FF17C0220F331F5E +S11328D0220F331F220F331FF901E05CFE4D918557 +S11328E09B7F9187CCDCFC01808180FF06C08E7FBA +S11328F080830780F085E02D099581E008957F921B +S11329008F929F92AF92BF92CF92DF92EF92FF92FB +S11329100F931F93CF93DF93982E862E6A0179012C +S1132920AEDC5C01792C771C7724771CC92DCF7021 +S1132930D0E0CC0FDD1FC70DD11DFE01EE0FFF1F30 +S1132940EE0FFF1FEE0FFF1FE05CFE4D8185807CC4 +S113295009F47DC0FE01EE0FFF1FEE0FFF1FEE0F07 +S1132960FF1FE05CFE4D8185807C803C61F0FE01B0 +S1132970EE0FFF1FEE0FFF1FEE0FFF1FE05CFE4D7B +S1132980818582FD66C08FB7F894F501908190FF30 +S113299003C08FBF712C5EC0F5019081916090835C +S11329A08FBFC182D282E382F482158216820783AA +S11329B01087811006C091E0E114F10419F090E051 +S11329C001C091E0F501808190FB81F98B7F8083C8 +S11329D0772059F0CC0FDD1FCC0FDD1FCC0FDD1F8E +S11329E0C05CDE4D1E861F862DC0FE01EE0FFF1F4C +S11329F0EE0FFF1FEE0FFF1FE05CFE4D8185807C14 +S1132A00803CA1F4CE01880F991F880F991F880F6D +S1132A10991F885B9E4D0DDCBC01C70158D2892BE0 +S1132A2029F0F50180818E7F808314C0CC0FDD1FD7 +S1132A30CC0FDD1FCC0FDD1FC05CDE4D1A861B865C +S1132A401E861F86892DA5DC7724739403C0712C00 +S1132A5001C0712C872DDF91CF911F910F91FF90B1 +S1132A60EF90DF90CF90BF90AF909F908F907F902A +S1132A700895FF920F931F93CF93DF93182FF82E8F +S1132A80FF1CFF24FF1CC82FCF70D0E0CC0FDD1F2C +S1132A90CF0DD11DF4DBDC01FE01EE0FFF1FEE0FA5 +S1132AA0FF1FEE0FFF1FE85BFE4D02E005938C91C4 +S1132AB080FF22C08E7F8C931796ED91FC9118971E +S1132AC03097D1F0FF2059F0CC0FDD1FCC0FDD1F64 +S1132AD0CC0FDD1FC05CDE4D6E857F850AC0CC0F38 +S1132AE0DD1FCC0FDD1FCC0FDD1FC05CDE4D6A8502 +S1132AF07B85412F81E00995DF91CF911F910F9143 +S1132B00FF900895CF93C82FB4DFEC2FEF70F0E05F +S1132B10EE0FFF1F8C2FCC0F990B8827990F881F5E +S1132B209927E80FF91FEE0FFF1FEE0FFF1FEE0F9F +S1132B30FF1FE05CFE4D1186CF9108950F93E82F9F +S1132B40EF70F0E0EE0FFF1F282F082E000C330B60 +S1132B502227330F221F3327E20FF31FDF01AA0FAF +S1132B60BB1FAA0FBB1FAA0FBB1FA05CBE4D1996AB +S1132B709C911997946019969C93EE0FFF1FEE0F8A +S1132B80FF1FEE0FFF1FE85BFE4D01E0069371DFB0 +S1132B9081E00F9108951F920F920FB60F921124A6 +S1132BA00F932F933F934F935F936F937F938F93E1 +S1132BB09F93AF93BF93EF93FF938091CB048823AC +S1132BC044F480E88093CA040E94070C0E944404E1 +S1132BD082C08091CB0482FF20C084E08093CA0429 +S1132BE08091502186FF77C08091CC0481FD73C011 +S1132BF061DB811170C080913F21813011F497DA3B +S1132C006AC0843009F067C0E1E5F1E204E00593AD +S1132C10E9E4F1E204E005935EC08091CB0481FF16 +S1132C2055C082E08093CA048091482186FF53C036 +S1132C308091CC0481FD4FC03DDB81114CC080915B +S1132C403F21823041F484E080933F21E8E4F1E2C3 +S1132C5002E0069340C0833009F03DC0E1E5F1E2B3 +S1132C6004E00593E9E4F1E204E0059334C080E173 +S1132C708093CA040E94E20B1092C304E0E4F1E2E0 +S1132C80118696E0908783E48187118A908B818BEB +S1132C908BEF90E28487958715DA1DC08091CB0471 +S1132CA086FF08C080E48093CA0480E0E2D90E94D1 +S1132CB0420411C08091CB0485FF0DC080E2809353 +S1132CC0CA0481E0D6D90E94430405C08091CB0494 +S1132CD084FFE4CFCCCFFF91EF91BF91AF919F914F +S1132CE08F917F916F915F914F913F912F910F91B0 +S1132CF00F900FBE0F901F9018951F920F920FB652 +S1132D000F9211240F931F932F933F934F935F932D +S1132D106F937F938F939F93AF93BF93CF93DF93DF +S1132D20EF93FF938091CC0481FD03C0C3DA81113A +S1132D30B9C082E08093CC048091C5048195880F4A +S1132D40E8E4F1E2E81BF1092081318128543142A1 +S1132D50369527953695279536952795822F86950E +S1132D6020FD02C090E001C090E8890FE82FEF70C9 +S1132D70F0E0EE0FFF1F282F082E000C330B222744 +S1132D80330F221F3327E20FF31FDF01AA0FBB1FEC +S1132D90AA0FBB1FAA0FBB1FA85BBE4D9C9195FF3A +S1132DA081C0FD0100E20693811177C080913F212B +S1132DB0843019F4CAD986D975C000914A2110917A +S1132DC04B218091A4239091A523C0913B21D091C4 +S1132DD03C219E01200F311F8217930718F48C01A8 +S1132DE00C1B1D0B8091A2239091A323A8016BEFD0 +S1132DF070E28C0F9D1F98D0C00FD11FC0933B2150 +S1132E00D0933C210034110569F480913D219091C7 +S1132E103E218C0F9D1F2091A0233091A123821766 +S1132E20930780F0EAE9F3E2C287D3870684F78543 +S1132E30E02D309729F00995811102C06AD932C07A +S1132E4076D930C08091A4239091A523C817D907BF +S1132E50F9F4E091A823F091A923309711F459D9FA +S1132E6021C00995811102C054D91CC020913D2173 +S1132E7030913E2180913B2190913C21820F931F00 +S1132E8080933D2190933E2110923B2110923C214E +S1132E90E8E4F1E202E0069305C0803811F45DD95C +S1132EA001C077DAFF91EF91DF91CF91BF91AF919C +S1132EB09F918F917F916F915F914F913F912F914E +S1132EC01F910F910F900FBE0F901F901895AA1B82 +S1132ED0BB1B51E107C0AA1FBB1FA617B70710F001 +S1132EE0A61BB70B881F991F5A95A9F78095909533 +S1132EF0BC01CD01089597FB072E16F4009406D06B +S1132F0077FD08D0E4DF07FC05D03EF49095819569 +S1132F109F4F0895709561957F4F0895EE0FFF1FA1 +S1132F200590F491E02D0994FB01DC0102C00190AD +S1112F300D9241505040D8F70895F894FFCF09 +S1132F3E40000CE02E0AFFFFFFFF5580008000BE0C +S1132F4E0AC90ACF0ABB0A000044201F2000002829 +S1132F5E2023200F20000000090219000101008027 +S1132F6EFA0904000001FFFFFF0007058101FF03BA +S1132F7E010000001201000200000040EB0394BAAD +S1132F8E0002010200010000000300000000000026 +S1132F9E000000000000000000004C6162726164D9 +S1132FAE6F72004573706F54656B0000040309045F +S10F2FBE64656275673132330000020064 S9030000FC diff --git a/AVR Code/USB_BULK_TEST/Debug/src/main.o b/AVR Code/USB_BULK_TEST/Debug/src/main.o index 8265bd250556f79968f0696faa95d48b7fcd1103..e6d63942cbd11f5e33ea76e524afcdf167c5d493 100644 GIT binary patch delta 4848 zcmZvfd306P6~_0u_XG${NJt(TNCFvvKp-&&Tq1_S5D^q;$_f-xz{rv*5{e3x6(NtQ zSRjFr2b?g45auB)MuV(Ufl{l8wkmC@$dbXLAfqf5gxKzV_r7`0mA*f6zx(~p-sjwX zhI=#jgNXa5A}SKCJn#PGVcK^}cd_jN%orxTpkmBBFx#AgDO`q$W;ER%`#mENbkvW0QuDHF0_t2ZWAn49#BX+M}>Oi}A*? znj@9x>D`E3r*D(Y{hBzr=iH^4a2hG6Cc#Z=5}Xi_!erEg1V$vrD+}=A{fPGWJWYTRJye|IS ztpIaLhjHo3#Q!PSf)%2dhAOBg-HO|67JuwjfPJLza?Zoz4;iK4B?YK>n`0owD*9PeX_WMWB z8v%pQeFcz5;1YLMAOTOjtzaVQi|oHD{>j%YC?y@qi59p%zPBq#x8wG!#D6m1f?CoE z>~9zU2k&?b4$)0KgSQ3L)+>0I^iS-c7vC# zai@sR8x1f-^w?a0k*K{CaO4J_0RnE0vtWwoYppDpDf-G71dR+oqX%84_ZAL~&d~2jV@mox5KU)d2*$OSxNy;Q#HEmyqc637 z=NxV0DC+A*fSgK-ch6Gas+b9^#(cZkwq!Iz@TSCuG$o0Ti?}8LM5jQb!C7o44~8=rVS;3EZDW?<~r|OUAX$%-Nvh zHPXrE!&O*kWNsyQaA=E-_?a%%80(*fT@DTEh4f2PXD}4uTq)!p4sBQCU$KRS{uR5I z@i4?AEMCyZ5s${Bh@N*Jr`}NuFx&K|*&narj*R#K$9C8Z&`BOBWP%2F*&Sm1JmMU| z0})S==(iY`A$Ir5A;j+KaD*2R(hMg!g;Klg?kErIG}1{Xl%9B^hU1d>j|{W6;MV|` z1ECxFC+_tng!wo{bTmxT&`+l5IENm_Z@-!5rVsNL`4`SfhF!M-tTO3q5x$}U-~3LY zPBA==aIpE1;1mrNGNO06(~#`|xt6(Ag`FZzlp4RsG;b$Bsp8Y>RSkP&NT)gRN4s!$ znsizhulqOW8HU#pMwtex1Hul{>qn+;6)vdV6zELdbbsLAxzBinZ-A+$6CddriTs4q z8l+LC_hw8x!=Lsnht?sKd9$)-7;B5}6m$%|ZYF(;P6^7#h>>PEO6%HNrUa=KonvaL y)xaDZ&YAtWcBHwuMTc8^O3b&!J+n>Qt$0oBZ*uS&lR4amZTJt7`@>2*zyAS?PlJj8 delta 4789 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