]> jspc29.x-matter.uni-frankfurt.de Git - coral.git/commitdiff
keypad mode working
authorMichael Wiebusch <stratomaster@gmx.net>
Sat, 5 Oct 2013 21:31:41 +0000 (23:31 +0200)
committerMichael Wiebusch <stratomaster@gmx.net>
Sat, 5 Oct 2013 21:31:41 +0000 (23:31 +0200)
firmware/TM1001A.c
firmware/TM1001A.c~
firmware/USBtoSerial.c
firmware/USBtoSerial.c~
firmware/USBtoSerial.elf
firmware/USBtoSerial.hex
firmware/USBtoSerial.lss
firmware/USBtoSerial.map
firmware/USBtoSerial.o
firmware/USBtoSerial.sym

index fa5d2c09820e07f5d132b85994b20167eb7b3762..f3819a7b4b1a84a8ba0848ba084defa3a530601d 100644 (file)
@@ -247,6 +247,7 @@ void touchpad_set_abs_mode(void) {
        adb_werte[0] = COM_LISTEN1;
        adb_werte[7] = 0x00; //Absolutmodus
        adb();
+  _delay_ms(100);
 }
 
 void touchpad_set_rel_mode_100dpi(void) {
@@ -255,6 +256,7 @@ void touchpad_set_rel_mode_100dpi(void) {
        adb_werte[1] = BITS(0110,0011);
        adb_werte[2] = 1; //default modus: 100 dpi mouse
        adb();
+  _delay_ms(100);
 
 }
 
@@ -264,6 +266,7 @@ void touchpad_set_rel_mode_200dpi(void) {
        adb_werte[1] = BITS(0110,0011);
        adb_werte[2] = 2; //200 dpi mouse
        adb();
+  _delay_ms(100);
 
 }
 
index 2436f675bc6015b1c2aa3fd8565a11e54968bf44..fa5d2c09820e07f5d132b85994b20167eb7b3762 100644 (file)
@@ -80,7 +80,7 @@ u08 t0ovfcount;
 volatile u08 adb_data_length;
 
 
-ISR( TIMER3_OVF_vect) {
+ISR( TIMER0_OVF_vect) {
        t0ovfcount++;
 }
 
index 9dc597addc84d2ee55f47a2ecb83b995469d0bea..486b6883d69f68877bd220d14f4acb9cae9bf4ff 100644 (file)
@@ -314,7 +314,7 @@ int main(void)
 \r
 // end\r
   \r
-  uint8_t loopcounter=0;\r
+  uint16_t loopcounter=0;\r
 \r
   char stringbuffer[16];\r
 //   for (;;) { // the eternal loop\r
@@ -337,80 +337,81 @@ int main(void)
 \r
     \r
     \r
-// //######################################################################\r
-// // uncomment desired demo mode here!\r
-// \r
-// // #define DEMO_MODE KEYPAD_MODE\r
-// //#define DEMO_MODE ABSOLUTE_MODE\r
+//######################################################################\r
+// uncomment desired demo mode here!\r
+\r
+// #define DEMO_MODE KEYPAD_MODE\r
+//#define DEMO_MODE ABSOLUTE_MODE\r
 // #define DEMO_MODE RELATIVE_MODE\r
-// //######################################################################\r
-// \r
+//######################################################################\r
+\r
 // #if DEMO_MODE == KEYPAD_MODE\r
-//   // begin of keypad mode demo block\r
-//   // current configuration is: 3 colums, 2 rows => 6 touch buttons\r
-//   // this can be changed by the PAD_ROWS/PAD_COLS defines in the TM1001A.c file\r
-// \r
-//   //   -------------------------\r
-//   //   | back  |  up   | enter |\r
-//   //   -------------------------\r
-//   //   | left  |  down | right |\r
-//   //   -------------------------\r
-// \r
-// //   uart_puts("you selected the keypad demo modus:\n\r");\r
-//   touchpad_set_abs_mode(); // keypad functionality uses the "absolute mode"\r
-//   while (1) {\r
-//     \r
-//     \r
-//     Usb2SerialTask();\r
-//     loopcounter++;\r
-//     if(loopcounter) {\r
-//       continue;\r
-//     }\r
-// \r
-//     touchpad_read(); // read values from the touchpad\r
-// \r
-//     field_val = decode_field(); // decode_field returns the number of the\r
-//     // touch button that was pressed last. or zero if nothing happened\r
-// \r
-//     switch (field_val) {\r
-// \r
-//     case 4:\r
-//       uart_puts("left\n\r");\r
-//       break;\r
-//     case 6:\r
-//       uart_puts("right\n\r");\r
-//       break;\r
-//     case 2:\r
-//       uart_puts("up\n\r");\r
-//       break;\r
-//     case 5:\r
-//       uart_puts("down\n\r");\r
-//       break;\r
-//     case 1:\r
-//       uart_puts("back\n\r");\r
-//       break;\r
-//     case 3:\r
-//       uart_puts("enter\n\r");\r
-//       break;\r
-//     default:\r
-//       break;\r
-//     }\r
-// \r
-//   }\r
-//   // end of keypad mode demo block\r
+  // begin of keypad mode demo block\r
+  // current configuration is: 3 colums, 2 rows => 6 touch buttons\r
+  // this can be changed by the PAD_ROWS/PAD_COLS defines in the TM1001A.c file\r
+\r
+  //   -------------------------\r
+  //   | back  |  up   | enter |\r
+  //   -------------------------\r
+  //   | left  |  down | right |\r
+  //   -------------------------\r
+\r
+//   uart_puts("you selected the keypad demo modus:\n\r");\r
+  touchpad_set_abs_mode(); // keypad functionality uses the "absolute mode"\r
+  while (1) {\r
+    \r
+    \r
+    Usb2SerialTask();\r
+    loopcounter++;\r
+    if(loopcounter<2000) {\r
+      continue;\r
+    }\r
+  loopcounter=0;\r
+\r
+    touchpad_read(); // read values from the touchpad\r
+\r
+    field_val = decode_field(); // decode_field returns the number of the\r
+    // touch button that was pressed last. or zero if nothing happened\r
+\r
+    switch (field_val) {\r
+\r
+    case 4:\r
+      uart_puts("left\n\r");\r
+      break;\r
+    case 6:\r
+      uart_puts("right\n\r");\r
+      break;\r
+    case 2:\r
+      uart_puts("up\n\r");\r
+      break;\r
+    case 5:\r
+      uart_puts("down\n\r");\r
+      break;\r
+    case 1:\r
+      uart_puts("back\n\r");\r
+      break;\r
+    case 3:\r
+      uart_puts("enter\n\r");\r
+      break;\r
+    default:\r
+      break;\r
+    }\r
+\r
+  }\r
+  // end of keypad mode demo block\r
 // \r
 // #elif DEMO_MODE == ABSOLUTE_MODE\r
   // begin of keypad mode demo block\r
 //   uart_puts("you selected the absolute position demo modus:\n\r");\r
-  touchpad_set_abs_mode();// tell the touchpad you want to use it in the "absolute mode"\r
-  _delay_ms(500);\r
+/*  touchpad_set_abs_mode();// tell the touchpad you want to use it in the "absolute mode"\r
   while (1) {\r
 \r
     Usb2SerialTask();\r
     loopcounter++;\r
-    if(loopcounter) {\r
+    if(loopcounter< 2000) {\r
       continue;\r
     }\r
+    loopcounter=0;\r
 \r
     touchpad_read(); // read data from the touchpad\r
     uart_puts("x_pos: ");\r
@@ -425,7 +426,7 @@ int main(void)
     uart_puts("\r");\r
 \r
   }\r
-  // end of absolute mode demo block\r
+  // end of absolute mode demo block */\r
 // \r
 // #elif DEMO_MODE == RELATIVE_MODE\r
   // begin of relative mode demo block\r
@@ -440,9 +441,10 @@ int main(void)
 // \r
 //     Usb2SerialTask();\r
 //     loopcounter++;\r
-//     if(loopcounter) {\r
+//     if(loopcounter<2000) {\r
 //       continue;\r
 //     }\r
+//     loopcounter=0;\r
 // \r
 //     touchpad_read(); // read data from touchpad\r
 // \r
index f545a0896473eb412406a2ea5bc21bdab162427e..f151993821d5ecf740e3b3b370e22b70fbd176f4 100644 (file)
@@ -314,7 +314,7 @@ int main(void)
 \r
 // end\r
   \r
-  uint8_t loopcounter=0;\r
+  uint16_t loopcounter=0;\r
 \r
   char stringbuffer[16];\r
 //   for (;;) { // the eternal loop\r
@@ -337,79 +337,81 @@ int main(void)
 \r
     \r
     \r
-// //######################################################################\r
-// // uncomment desired demo mode here!\r
-// \r
-// // #define DEMO_MODE KEYPAD_MODE\r
-// //#define DEMO_MODE ABSOLUTE_MODE\r
-// #define DEMO_MODE RELATIVE_MODE\r
-// //######################################################################\r
-// \r
-// #if DEMO_MODE == KEYPAD_MODE\r
-//   // begin of keypad mode demo block\r
-//   // current configuration is: 3 colums, 2 rows => 6 touch buttons\r
-//   // this can be changed by the PAD_ROWS/PAD_COLS defines in the TM1001A.c file\r
-// \r
-//   //   -------------------------\r
-//   //   | back  |  up   | enter |\r
-//   //   -------------------------\r
-//   //   | left  |  down | right |\r
-//   //   -------------------------\r
-// \r
-// //   uart_puts("you selected the keypad demo modus:\n\r");\r
-//   touchpad_set_abs_mode(); // keypad functionality uses the "absolute mode"\r
-//   while (1) {\r
-//     \r
-//     \r
-//     Usb2SerialTask();\r
-//     loopcounter++;\r
-//     if(loopcounter) {\r
-//       continue;\r
-//     }\r
-// \r
-//     touchpad_read(); // read values from the touchpad\r
-// \r
-//     field_val = decode_field(); // decode_field returns the number of the\r
-//     // touch button that was pressed last. or zero if nothing happened\r
-// \r
-//     switch (field_val) {\r
-// \r
-//     case 4:\r
-//       uart_puts("left\n\r");\r
-//       break;\r
-//     case 6:\r
-//       uart_puts("right\n\r");\r
-//       break;\r
-//     case 2:\r
-//       uart_puts("up\n\r");\r
-//       break;\r
-//     case 5:\r
-//       uart_puts("down\n\r");\r
-//       break;\r
-//     case 1:\r
-//       uart_puts("back\n\r");\r
-//       break;\r
-//     case 3:\r
-//       uart_puts("enter\n\r");\r
-//       break;\r
-//     default:\r
-//       break;\r
-//     }\r
-// \r
-//   }\r
-//   // end of keypad mode demo block\r
+//######################################################################\r
+// uncomment desired demo mode here!\r
+\r
+// #define DEMO_MODE KEYPAD_MODE\r
+//#define DEMO_MODE ABSOLUTE_MODE\r
+#define DEMO_MODE RELATIVE_MODE\r
+//######################################################################\r
+\r
+#if DEMO_MODE == KEYPAD_MODE\r
+  // begin of keypad mode demo block\r
+  // current configuration is: 3 colums, 2 rows => 6 touch buttons\r
+  // this can be changed by the PAD_ROWS/PAD_COLS defines in the TM1001A.c file\r
+\r
+  //   -------------------------\r
+  //   | back  |  up   | enter |\r
+  //   -------------------------\r
+  //   | left  |  down | right |\r
+  //   -------------------------\r
+\r
+//   uart_puts("you selected the keypad demo modus:\n\r");\r
+  touchpad_set_abs_mode(); // keypad functionality uses the "absolute mode"\r
+  while (1) {\r
+    \r
+    \r
+    Usb2SerialTask();\r
+    loopcounter++;\r
+    if(loopcounter<2000) {\r
+      continue;\r
+    }\r
+  loopcounter=0;\r
+\r
+    touchpad_read(); // read values from the touchpad\r
+\r
+    field_val = decode_field(); // decode_field returns the number of the\r
+    // touch button that was pressed last. or zero if nothing happened\r
+\r
+    switch (field_val) {\r
+\r
+    case 4:\r
+      uart_puts("left\n\r");\r
+      break;\r
+    case 6:\r
+      uart_puts("right\n\r");\r
+      break;\r
+    case 2:\r
+      uart_puts("up\n\r");\r
+      break;\r
+    case 5:\r
+      uart_puts("down\n\r");\r
+      break;\r
+    case 1:\r
+      uart_puts("back\n\r");\r
+      break;\r
+    case 3:\r
+      uart_puts("enter\n\r");\r
+      break;\r
+    default:\r
+      break;\r
+    }\r
+\r
+  }\r
+  // end of keypad mode demo block\r
 // \r
 // #elif DEMO_MODE == ABSOLUTE_MODE\r
   // begin of keypad mode demo block\r
 //   uart_puts("you selected the absolute position demo modus:\n\r");\r
-  touchpad_set_abs_mode();// tell the touchpad you want to use it in the "absolute mode"\r
+/*  touchpad_set_abs_mode();// tell the touchpad you want to use it in the "absolute mode"\r
   while (1) {\r
 \r
     Usb2SerialTask();\r
     loopcounter++;\r
-    if(loopcounter) {\r
+    if(loopcounter< 2000) {\r
       continue;\r
     }\r
+    loopcounter=0;\r
 \r
     touchpad_read(); // read data from the touchpad\r
     uart_puts("x_pos: ");\r
@@ -424,7 +426,7 @@ int main(void)
     uart_puts("\r");\r
 \r
   }\r
-  // end of absolute mode demo block\r
+  // end of absolute mode demo block */\r
 // \r
 // #elif DEMO_MODE == RELATIVE_MODE\r
   // begin of relative mode demo block\r
@@ -439,9 +441,10 @@ int main(void)
 // \r
 //     Usb2SerialTask();\r
 //     loopcounter++;\r
-//     if(loopcounter) {\r
+//     if(loopcounter<2000) {\r
 //       continue;\r
 //     }\r
+//     loopcounter=0;\r
 // \r
 //     touchpad_read(); // read data from touchpad\r
 // \r
index 30b40f5b20a9814d20fdd7006bd86b6f0e11a44e..a85c51877a8055b0e8303f5c7d2c7d5603a36925 100755 (executable)
Binary files a/firmware/USBtoSerial.elf and b/firmware/USBtoSerial.elf differ
index 1746c77c0aa1fec0db8a98a26640dcdc21ed3ba4..cc2932884adc28f4356262b8fb75361387ddc276 100644 (file)
@@ -1,9 +1,9 @@
 :100000009AC00000B4C00000B2C00000B0C0000040\r
 :10001000AEC00000ACC00000AAC00000A8C0000034\r
-:10002000A6C00000A4C00000A2C000005AC6000084\r
-:10003000FCC600009CC000009AC0000098C00000F0\r
+:10002000A6C00000A4C00000A2C0000029C60000B5\r
+:10003000CBC600009CC000009AC0000098C0000021\r
 :1000400096C0000094C0000092C0000090C0000064\r
-:100050008EC00000D6C000008AC00000E2C20000CE\r
+:100050008EC00000D6C000008AC000002FC3000080\r
 :1000600086C0000084C0000082C0000080C0000084\r
 :100070007EC000007CC000007AC0000078C0000094\r
 :1000800076C0000074C0000072C0000070C00000A4\r
@@ -18,9 +18,9 @@
 :1001100020005500530042002D00520053003200D1\r
 :100120003300320020004100640061007000740060\r
 :1001300065007200000011241FBECFEFD4E0DEBFC7\r
-:10014000CDBF11E0A0E0B1E0E6E2F8E102C0059029\r
-:100150000D92A234B107D9F712E0A2E4B1E001C0D8\r
-:100160001D92A637B107E1F767D30C94110C48CF65\r
+:10014000CDBF11E0A0E0B1E0E8EAF7E102C0059020\r
+:100150000D92A834B107D9F712E0A8E4B1E001C0CC\r
+:100160001D92AC37B107E1F74ED30C94D20B48CFB8\r
 :10017000FC01A081B1816C93808191810196918372\r
 :100180008083268137818217930721F484819581AA\r
 :10019000918380832FB7F894828593850196938706\r
 :1001E0006083738362837583648360587F4F7783F2\r
 :1001F000668380E890E091878087138612862FBF00\r
 :1002000008951F920F920FB60F9211248F93809131\r
-:1002100068028F5F809368028F910F900FBE0F90DE\r
-:100220001F90189586B53091680220E0280F311D87\r
-:10023000C901089516BC109268020895DF92EF92EA\r
+:100210006E028F5F80936E028F910F900FBE0F90D2\r
+:100220001F90189586B530916E0220E0280F311D81\r
+:10023000C901089516BC10926E020895DF92EF92E4\r
 :10024000FF920F931F93CF93DF9383E085BDF2DF7F\r
-:10025000509A5898E7DFBC0180E090E00E94390B8B\r
-:1002600020E030E84EE053E40E94A10A87FDF2CF7F\r
+:10025000509A5898E7DFBC0180E090E00E94080BBC\r
+:1002600020E030E84EE053E40E94700A87FDF2CFB0\r
 :1002700082E085BDDD24D39410E0DCDF509A5898ED\r
-:10028000D1DFBC0180E090E00E94390B20E030E03B\r
-:100290004CE852E40E94A10A87FDF2CF5098589A88\r
-:1002A000C1DFBC0180E090E00E94390B20E030E02B\r
-:1002B00048E453E40E94A10A87FDF2CF41C0C8E0A0\r
-:1002C000D0E000E8E12EFF248FE592E0E80EF91E71\r
+:10028000D1DFBC0180E090E00E94080B20E030E06C\r
+:100290004CE852E40E94700A87FDF2CF5098589AB9\r
+:1002A000C1DFBC0180E090E00E94080B20E030E05C\r
+:1002B00048E453E40E94700A87FDF2CF41C0C8E0D1\r
+:1002C000D0E000E8E12EFF2485E692E0E80EF91E7A\r
 :1002D000B1DF509A5898F7018081802379F0A2DF2E\r
-:1002E000BC0180E090E00E94390B20E030E04CE857\r
-:1002F00052E40E94A10A87FDF2CF0EC093DFBC0139\r
-:1003000080E090E00E94390B20E030E042E053E4CE\r
-:100310000E94A10A87FDF2CF5098589A83DFBC0152\r
-:1003200080E090E00E94390B20E030E048E453E4A4\r
-:100330000E94A10A87FDF2CF0695219749F61F5F1B\r
+:1002E000BC0180E090E00E94080B20E030E04CE888\r
+:1002F00052E40E94700A87FDF2CF0EC093DFBC016A\r
+:1003000080E090E00E94080B20E030E042E053E4FF\r
+:100310000E94700A87FDF2CF5098589A83DFBC0183\r
+:1003200080E090E00E94080B20E030E048E453E4D5\r
+:100330000E94700A87FDF2CF0695219749F61F5F4C\r
 :100340001D1508F4BCCF76DF509A58986BDFBC01BE\r
-:1003500080E090E00E94390B20E030E042E053E47E\r
-:100360000E94A10A87FDF2CF5098589A5BDFBC012A\r
-:1003700080E090E00E94390B20E030E048E453E454\r
-:100380000E94A10A87FDF2CF80915F028B3329F092\r
+:1003500080E090E00E94080B20E030E042E053E4AF\r
+:100360000E94700A87FDF2CF5098589A5BDFBC015B\r
+:1003700080E090E00E94080B20E030E048E453E485\r
+:100380000E94700A87FDF2CF809165028B3329F0BD\r
 :10039000893341F429E0D22E02C093E0D92E1130E6\r
 :1003A00009F46BCF47DF3EDFBC0180E090E00E94A4\r
-:1003B000390B20E030E04AEF53E40E94EB0B1816B3\r
-:1003C0000CF442C04899EFCF489BFECFC0E6D2E084\r
+:1003B000080B20E030E04AEF53E40E94BA0B181615\r
+:1003C0000CF442C04899EFCF489BFECFC6E6D2E07E\r
 :1003D00011E001C0182F188288E0E82EF12C00E807\r
-:1003E00029DF20DFBC0180E090E00E94390B20E093\r
-:1003F00030E048E453E40E94EB0B181614F411505B\r
+:1003E00029DF20DFBC0180E090E00E94080B20E0C4\r
+:1003F00030E048E453E40E94BA0B181614F411508C\r
 :1004000024C04899EECF16DF489BFECF0BDFBC011E\r
-:1004100080E090E00E94390B20E030E048EC52E4AC\r
-:100420000E94A10A87FF03C08881800F88830695F8\r
+:1004100080E090E00E94080B20E030E048EC52E4DD\r
+:100420000E94700A87FF03C08881800F8883069529\r
 :100430000894E108F108E114F10491F6812F8F5F2F\r
 :100440002196893039F601C010E0812FDF91CF91DC\r
 :100450001F910F91FF90EF90DF9008955098589A58\r
 :10046000EEE6F0E080818160808308958CE38093E4\r
-:100470005F02E4DE809369028091690208958BE354\r
-:1004800080935F0283E68093600284E08093610240\r
-:10049000D5DE8DE380935F02D1DE89E380935F0236\r
-:1004A00010926602CBCE80916402282F30E0207734\r
-:1004B0003070359527958770822B089520916302BF\r
-:1004C00030E027703070322F2227330F330F8091A6\r
-:1004D000620290E0877090709695982F8827979584\r
-:1004E0008795282B392B8091610290E08F7790704F\r
-:1004F000282B392BC90108952091630230E0207721\r
-:100500003070E6E0220F331FEA95E1F78091620236\r
-:1005100090E08077907073E0880F991F7A95E1F7EB\r
-:10052000282B392B8091600290E08F779070282BD8\r
-:10053000392BC90108951F938FB7F89420914C016E\r
-:1005400030914D018FBF80914A0190914B01281746\r
-:10055000390749F085E291E061D7BC0197FD03C0FE\r
-:1005600082E491E005DE2FB7F8948091D801909154\r
-:10057000D9012FBF009701F1209126012F70209300\r
-:10058000E9002091E80020FF17C08031910510F0AC\r
-:100590008FE090E0182F0EC0E091D001F091D101D2\r
-:1005A00085E291E06081C9D61150882329F48EEC50\r
-:1005B00091E0F9DD112381F72FB7F89480914C0178\r
-:1005C00090914D012FBF009749F082E491E0EBDD5F\r
-:1005D0009091C80095FFFCCF8093CE0085E291E01A\r
-:1005E00006D7C0D51F91089584B7877F84BF88E15F\r
-:1005F0000FB6F89480936000109260000FBE90E0F8\r
-:1006000080E80FB6F89480936100909361000FBE6C\r
-:1006100059C30895089585E291E06BC685E291E0A3\r
-:10062000BCC51F920F920FB60F9211242F933F93C8\r
-:100630004F935F936F937F938F939F93AF93BF93EA\r
-:10064000EF93FF936091CE008EB3843019F48EEC5B\r
-:1006500091E08EDDFF91EF91BF91AF919F918F91CE\r
-:100660007F916F915F914F913F912F910F900FBEAE\r
-:100670000F901F9018958F929F92AF92BF92CF923A\r
-:10068000DF92EF92FF921F93FC01A18DA150A23047\r
-:1006900028F4B0E0A05CBE4F1C9101C010E0808D3A\r
-:1006A000823009F41860828D873031F0883031F063\r
-:1006B000863029F4126003C0146001C016601092E5\r
-:1006C000C9001092C8001092CA00C488D588E68874\r
-:1006D000F788C701B6019695879577956795C9D72D\r
-:1006E00020E034E244EF59E4C8D64B015C01C70175\r
-:1006F000B601BFD79B01AC01C501B40126D720E0EC\r
-:1007000030E040E85FE3B8D688D77093CD006093BF\r
-:10071000CC001093CA0082E08093C80088E98093DF\r
-:10072000C9001F91FF90EF90DF90CF90BF90AF90E6\r
-:100730009F908F900895682F8EB3843019F48EECBB\r
-:1007400091E016CD0895EF92FF92CF93DF93E82EBC\r
-:10075000E7017E01F92EE70101C0EDDF89918823D1\r
-:10076000E1F7DF91CF91FF90EF9008952F923F92A4\r
-:100770004F925F926F927F928F929F92AF92BF92B1\r
-:10078000CF92DF92EF92FF920F931F93CF93DF935D\r
-:100790007B018C01822F90E0FA01E80FF91F108293\r
-:1007A000D22EDA944D2C552447FC5094EA01C40D06\r
-:1007B000D51DAA24BB24BAE06B2E712C812C912C60\r
-:1007C0001C01089421083108A0E2CA2E20C0E114BF\r
-:1007D000F1040105110541F4C501840D951D821533\r
-:1007E000930514F4C88207C0C801B701A40193019E\r
-:1007F000F6D7605D6883C801B701A4019301EFD704\r
-:1008000079018A01DA9421970894A108B108D7FEEA\r
-:10081000DECFDF91CF911F910F91FF90EF90DF908E\r
-:10082000CF90BF90AF909F908F907F906F905F9090\r
-:100830004F903F902F900895FF920F931F93DF9357\r
-:10084000CF93CDB7DEB760970FB6F894DEBF0FBE7B\r
-:10085000CDBFCADE82E491E06EE471E0BDDC8EECD7\r
-:1008600091E06AED71E0B8DC7894F8DD8FEF99E6FD\r
-:10087000A8E181509040A040E1F700C000007894CA\r
-:10088000FEDD8FEF99E6A8E181509040A040E1F7AE\r
-:1008900000C00000FF248E010F5F1F4F4CDEF39459\r
-:1008A000E9F7E4DD80E091E04EDF08DEBC0180E0A6\r
-:1008B00090E0A80124E05ADFC80145DF88E091E01C\r
-:1008C00042DF1ADEBC0180E090E0A80124E04EDFA8\r
-:1008D000C80139DF83E191E036DFE5DD682F70E0A4\r
-:1008E00080E090E0A80124E041DFC8012CDF83E232\r
-:1008F00091E029DFD3CF923029F0933041F091304D\r
-:10090000E9F417C02EE330E0EAEAF0E01BC08130E2\r
-:1009100041F0813018F0823089F406C0E8EEF0E052\r
-:1009200005C0ECEEF0E002C0E6E0F1E0249130E03A\r
-:1009300009C022E130E0E8E9F0E004C020E030E066\r
-:10094000E0E0F0E0DA011196FC93EE93C90108951E\r
-:10095000282F392FF9018091740290917502861722\r
-:10096000970718F4BC0120E034C061157105D9F770\r
-:100970008091E8008E778093E800F5CF8EB38823CE\r
-:10098000E9F18530B9F18091E80083FD35C08091AF\r
-:10099000E80082FD29C08091E80080FF1AC08091A4\r
-:1009A000F20090E006C021912093F1006150704068\r
-:1009B00001966115710519F088309105A0F321E0C9\r
-:1009C0008830910509F020E08091E8008E778093CF\r
-:1009D000E8006115710591F6222381F605C08EB3FA\r
-:1009E000882361F0853061F08091E80082FFF7CFC5\r
-:1009F00080E0089583E0089581E0089582E00895FD\r
-:100A000083E00895E82FF92F809174029091750288\r
-:100A10008617970718F4BC0120E036C061157105F0\r
-:100A2000D9F78091E8008E778093E800F5CF8EB3F8\r
-:100A3000882309F43EC08530C1F18091E80083FD30\r
-:100A400036C08091E80082FD2AC08091E80080FFD6\r
-:100A50001BC08091F20090E007C024912093F10028\r
-:100A600031966150704001966115710519F088301A\r
-:100A7000910598F321E08830910509F020E08091FC\r
-:100A8000E8008E778093E8006115710581F62223D6\r
-:100A900071F605C08EB3882361F0853061F08091D6\r
-:100AA000E80082FFF7CF80E0089583E0089581E0B9\r
-:100AB000089582E0089583E00895982F2CC0292F8F\r
-:100AC0002F702093E900981739F07091EC00209175\r
-:100AD000ED005091F00003C0242F762F50E021FF4D\r
-:100AE00019C03091EB003E7F3093EB003091ED0068\r
-:100AF0003D7F3093ED003091EB0031603093EB009F\r
-:100B00007093EC002093ED005093F0002091EE00E4\r
-:100B100027FF08C09F5F953090F28F708093E900A7\r
-:100B200081E0089580E00895EF92FF920F931F9364\r
-:100B3000CF93DF93162FE82EE7017E01F92EE70110\r
-:100B400000E02AC09881992329F16B81E981FA811B\r
-:100B50002C81892F8F70853018F56295660F660F8E\r
-:100B6000607C991F9927991F692B223010F096E01D\r
-:100B700001C092E028E030E040E003C04F5F220F68\r
-:100B8000331F2E173F07D0F34295407F492B95DF47\r
-:100B9000882331F00F5F25960117A0F281E001C094\r
-:100BA00080E0DF91CF911F910F91FF90EF9008951A\r
-:100BB00080916E0287FF11C003C08EB38823B1F00D\r
-:100BC0008091E80082FFF9CF8091E8008B778093D5\r
-:100BD000E80008958EB3882349F08091E80080FFF3\r
-:100BE000F9CF8091E8008E778093E8000895809196\r
-:100BF000E4009091E50044E62091EC0020FF25C040\r
-:100C00002091E80020FD15C02EB32223A1F025304D\r
-:100C1000A1F02091EB0025FD12C02091E40030915D\r
-:100C2000E5002817390741F3442359F04150C90121\r
-:100C3000E3CF80E0089582E0089583E0089581E0A5\r
-:100C4000089584E0089580E008952091E80022FF4F\r
-:100C5000DBCFF9CF40D042D08091D8008F778093FE\r
-:100C6000D8008091D80080688093D8008091D80007\r
-:100C70008F7D8093D80084E089BD86E089BD09B46A\r
-:100C800000FEFDCF1EBA10926A0210926C02109202\r
-:100C90006B0280E060E042E010DF8091E1008E7F37\r
-:100CA0008093E1008091E20081608093E200809176\r
-:100CB000E20088608093E2008091E0008E7F809364\r
-:100CC000E0000895E3E6F0E080818E7F808381E09C\r
-:100CD00080936D02BFCF1092E20008951092E10060\r
-:100CE00008951F920F920FB60F9211242F933F93E6\r
-:100CF0004F935F936F937F938F939F93AF93BF9324\r
-:100D0000EF93FF938091E10082FF0AC08091E2009F\r
-:100D100082FF06C08091E1008B7F8093E10021D2A9\r
-:100D20008091E10080FF16C08091E20080FF12C038\r
-:100D30008091E2008E7F8093E2008091E2008061EA\r
-:100D40008093E2008091D80080628093D80019BC23\r
-:100D50001EBA60DC8091E10084FF2CC08091E2002B\r
-:100D600084FF28C084E089BD86E089BD09B400FE07\r
-:100D7000FDCF8091D8008F7D8093D8008091E100D5\r
-:100D80008F7E8093E1008091E2008F7E8093E2006D\r
-:100D90008091E20081608093E20080916A02882362\r
-:100DA00021F48091E30087FF02C084E001C081E06C\r
-:100DB0008EBB2FDC8091E10083FF26C08091E20092\r
-:100DC00083FF22C08091E100877F8093E10082E071\r
-:100DD0008EBB10926A028091E1008E7F8093E100C9\r
-:100DE0008091E2008E7F8093E2008091E20080613A\r
-:100DF0008093E20080E060E042E05FDE8091F000FE\r
-:100E000088608093F000ADD1FF91EF91BF91AF91D9\r
-:100E10009F918F917F916F915F914F913F912F9112\r
-:100E20000F900FBE0F901F9018951F920F920FB644\r
-:100E30000F9211241F932F933F934F935F936F93C0\r
-:100E40007F938F939F93AF93BF93EF93FF931091F3\r
-:100E5000E9001F708091EC001092E9008091F00091\r
-:100E6000877F8093F00078941BD01092E9008091E6\r
-:100E7000F00088608093F0001093E900FF91EF91FB\r
-:100E8000BF91AF919F918F917F916F915F914F91A2\r
-:100E90003F912F911F910F900FBE0F901F901895AB\r
-:100EA0001F93DF93CF93CDB7DEB7AC970FB6F8940F\r
-:100EB000DEBF0FBECDBFEEE6F2E08091F100819380\r
-:100EC00022E0E637F207C9F7A9DB8091E80083FF4B\r
-:100ED00030C180916E0220916F02253009F484C0E8\r
-:100EE000263040F42130A1F1213070F0233009F098\r
-:100EF00020C12EC0283009F4EFC0293009F4FEC00B\r
-:100F0000263009F016C192C0803821F0823809F0ED\r
-:100F100010C108C080916B0290916C02992371F00E\r
-:100F200082600CC0809172028F708093E900909172\r
-:100F3000EB0081E095FF80E01092E9009091E800DD\r
-:100F4000977F9093E8008093F1001092F100CFC05A\r
-:100F5000882319F0823009F0ECC090E08F71907016\r
-:100F6000009729F08230910509F0E3C00BC0809111\r
-:100F70007002813009F0DDC0233009F080E08093F9\r
-:100F80006C022CC080917002882341F5209172027E\r
-:100F90002F7009F4CEC02093E9008091EB0080FF10\r
-:100FA0001DC080916F02833021F48091EB0080623C\r
-:100FB00013C08091EB0080618093EB0081E090E0B2\r
-:100FC00002C0880F991F2A95E2F78093EA001092D9\r
-:100FD000EA008091EB0088608093EB001092E900BA\r
-:100FE0008091E800877F86C0882309F0A2C0109115\r
-:100FF00070021F778091E3008078812B8093E3005B\r
-:101000008091E800877F8093E800D2DD8091E8003E\r
-:1010100080FFFCCF8091E30080688093E300112380\r
-:1010200011F083E001C082E08EBB83C08058823023\r
-:1010300008F07FC0809170029091710223E08C3D96\r
-:10104000920791F583E08C838AE28B835FB7F894F3\r
-:10105000DE01159680E090E04EE061E2E42FF0E0E2\r
-:1010600060935700E49180FF03C0E295EF704F5FFB\r
-:10107000EF702E2F30E0EA3018F0295C3F4F02C0AD\r
-:10108000205D3F4F2D933D9301968431910531F7BB\r
-:101090005FBF8091E800877F8093E800CE010396D0\r
-:1010A0006AE270E055DC12C060917202AE014F5FDF\r
-:1010B0005F4F21DCBC01009709F43BC08091E80040\r
-:1010C000877F8093E80089819A819CDC8091E80089\r
-:1010D0008B778093E8002DC0803859F58091E80027\r
-:1010E000877F8093E80080916A028093F10080916D\r
-:1010F000E8008E778093E8005BDD1BC08823C9F48D\r
-:10110000909170029230A8F48091E800877F8093DC\r
-:10111000E80090936A024CDD80916A02882321F4F2\r
-:101120008091E30087FF02C084E001C081E08EBBB4\r
-:1011300072DA8091E80083FF0AC08091E800877F1F\r
-:101140008093E8008091EB0080628093EB00AC9686\r
-:101150000FB6F894DEBF0FBECDBFCF91DF911F91C8\r
-:10116000089508951F938EB38823A9F08091E90014\r
-:101170008F709091EC0090FF02C010E801C010E069\r
-:10118000182B1092E9008091E80083FF01C088DEEF\r
-:101190001F701093E9001F910895CF93DF93EC0126\r
-:1011A0008091E80083FFA2C0888190E020917202C4\r
-:1011B000309173022817390709F098C080916F02A7\r
-:1011C000813269F0823220F4803209F08FC03CC055\r
-:1011D000823209F46AC0833209F088C079C08091F4\r
-:1011E0006E02813A09F082C08091E800877F809387\r
-:1011F000E8008091E80080FFFCCF8C899D89AE8952\r
-:10120000BF898093F100292F3A2F4B2F5527209328\r
-:10121000F1009D01442755272093F1008B2F99273A\r
-:10122000AA27BB278093F100888D8093F100898DD8\r
-:101230008093F1008A8D8093F1008091E8008E7791\r
-:101240008093E800B5DC52C080916E02813209F0D3\r
-:101250004DC08091E800877F8093E80004C08EB382\r
-:10126000882309F443C08091E80082FFF8CF3091D1\r
-:10127000F1002091F1009091F1008091F1003C8B00\r
-:101280002D8B9E8B8F8B8091F100888F8091F10048\r
-:10129000898F8091F1008A8F8091E8008B7780930D\r
-:1012A000E80086DCCE01E7D921C080916E02813250\r
-:1012B000E9F48091E800877F8093E80079DC8091F1\r
-:1012C000700290917102998B888BCE01D4D00EC0A0\r
-:1012D00080916E02813251F48091E800877F809383\r
-:1012E000E80066DCCE0160917002C5D0DF91CF913D\r
-:1012F0000895CF93DF93EC014096FC018BE0DF0172\r
-:101300001D928A95E9F782E08C83898783E08E8736\r
-:10131000CE01019661E008DC882359F0CE010696E3\r
-:1013200061E002DC882329F0CE010B9661E0FCDB52\r
-:1013300001C080E0DF91CF910895DF93CF930F92AA\r
-:10134000CDB7DEB7FC018EB38430F9F4248935893A\r
-:10135000468957892115310541055105B1F0818133\r
-:101360008F708093E9008091E80085FD0AC080912C\r
-:10137000E8008E778093E800698339DC69818823EF\r
-:1013800029F46093F10080E001C082E00F90CF91DA\r
-:10139000DF910895FC018EB3843019F524893589D5\r
-:1013A000468957892115310541055105D1F08181C3\r
-:1013B0008F708093E9008091F2008823A1F09091D2\r
-:1013C000E8008091E8008E778093E80095FD0DC0DD\r
-:1013D0000EDC882359F49091E8009E779093E80002\r
-:1013E000089582E0089580E0089580E008952EB386\r
-:1013F000243099F4FC0124893589468957892115BF\r
-:1014000031054105510549F021812F702093E900F4\r
-:101410002091E80020FF01C0BDCF0895FC018EB3EC\r
-:10142000843029F524893589468957892115310564\r
-:1014300041055105E1F086818F708093E90080912C\r
-:10144000E80082FF14C08091F200882321F02091EF\r
-:10145000F10030E002C02FEF3FEF8091F2008823CF\r
-:1014600041F48091E8008B778093E80002C02FEF71\r
-:101470003FEFC901089508955058BB27AA270ED001\r
-:1014800070C161D130F066D120F031F49F3F11F48A\r
-:101490001EF456C10EF4E095E7FB4CC1E92F72D162\r
-:1014A00080F3BA17620773078407950718F071F481\r
-:1014B0009EF58AC10EF4E0950B2EBA2FA02D0B01DC\r
-:1014C000B90190010C01CA01A0011124FF27591B89\r
-:1014D00099F0593F50F4503E68F11A16F040A22F8F\r
-:1014E000232F342F4427585FF3CF46953795279500\r
-:1014F000A795F0405395C9F77EF41F16BA0B620BFF\r
-:10150000730B840BBAF09150A1F0FF0FBB1F661F45\r
-:10151000771F881FC2F70EC0BA0F621F731F841F88\r
-:1015200048F4879577956795B795F7959E3F08F0AE\r
-:10153000B3CF9395880F08F09927EE0F979587956D\r
-:101540000895D4D008F481E008950CD00AC102D1E6\r
-:1015500040F0F9D030F021F45F3F19F0EBC05111A9\r
-:1015600034C1EEC00FD198F39923C9F35523B1F3D9\r
-:10157000951B550BBB27AA2762177307840738F002\r
-:101580009F5F5F4F220F331F441FAA1FA9F333D061\r
-:101590000E2E3AF0E0E830D091505040E695001C15\r
-:1015A000CAF729D0FE2F27D0660F771F881FBB1FD1\r
-:1015B000261737074807AB07B0E809F0BB0B802DAB\r
-:1015C000BF01FF2793585F4F2AF09E3F510568F0F7\r
-:1015D000B1C0FBC05F3FECF3983EDCF38695779596\r
-:1015E0006795B795F7959F5FC9F7880F911D9695F9\r
-:1015F000879597F90895E1E0660F771F881FBB1F55\r
-:10160000621773078407BA0720F0621B730B840B01\r
-:10161000BA0BEE1F88F7E0950895BCD088F09F576D\r
-:1016200090F0B92F9927B751A0F0D1F0660F771F2E\r
-:10163000881F991F1AF0BA95C9F712C0B13081F00E\r
-:10164000C3D0B1E00895C0C0672F782F8827B85F56\r
-:1016500039F0B93FCCF3869577956795B395D9F76F\r
-:101660003EF490958095709561957F4F8F4F9F4F79\r
-:101670000895E89409C097FB3EF490958095709585\r
-:1016800061957F4F8F4F9F4F9923A9F0F92F96E9CE\r
-:10169000BB279395F695879577956795B795F11143\r
-:1016A000F8CFFAF4BB0F11F460FF1BC06F5F7F4FE0\r
-:1016B0008F4F9F4F16C0882311F096E911C07723F2\r
-:1016C00021F09EE8872F762F05C0662371F096E8FB\r
-:1016D000862F70E060E02AF09A95660F771F881FCA\r
-:1016E000DAF7880F9695879597F90895990F00086E\r
-:1016F000550FAA0BE0E8FEEF16161706E807F907E4\r
-:10170000C0F012161306E407F50798F0621B730B7E\r
-:10171000840B950B39F40A2661F0232B242B252BFF\r
-:1017200021F408950A2609F4A140A6958FEF811DA2\r
-:10173000811D089597F99F6780E870E060E0089543\r
-:101740009FEF80EC089500240A94161617061806D9\r
-:101750000906089500240A941216130614060506B5\r
-:101760000895092E0394000C11F4882352F0BB0F46\r
-:1017700040F4BF2B11F460FF04C06F5F7F4F8F4FA9\r
-:101780009F4F089557FD9058440F551F59F05F3FE4\r
-:1017900071F04795880F97FB991F61F09F3F79F093\r
-:1017A00087950895121613061406551FF2CF469515\r
-:1017B000F1DF08C0161617061806991FF1CF869597\r
-:1017C0007105610508940895E894BB27662777277B\r
-:1017D000CB0197F908958ADF08F48FEF0895A1E20D\r
-:1017E0001A2EAA1BBB1BFD010DC0AA1FBB1FEE1F9B\r
-:1017F000FF1FA217B307E407F50720F0A21BB30BE6\r
-:10180000E40BF50B661F771F881F991F1A9469F761\r
-:1018100060957095809590959B01AC01BD01CF01BD\r
-:061820000895F894FFCFCB\r
-:10182600785F706F733A2000202020795F706F73A5\r
-:101836003A20002020207A5F707265737375726596\r
-:101846003A20000D00008310000001041000000182\r
-:1018560082080000010000000000000000000000F7\r
-:02186600302030\r
+:100470006502E4DE80936F0280916F0208958BE342\r
+:100480008093650283E68093660284E0809367022E\r
+:10049000D5DE8DE380936502D1DE89E3809365022A\r
+:1004A00010926C02CBDE8FEF91EEA4E08150904071\r
+:1004B000A040E1F700C00000089580916A02282F53\r
+:1004C00030E020773070359527958770822B08951E\r
+:1004D0002091690230E027703070322F2227330FCD\r
+:1004E000330F8091680290E0877090709695982FF6\r
+:1004F000882797958795282B392B8091670290E064\r
+:100500008F779070282B392BC901089520916902AB\r
+:1005100030E020773070E6E0220F331FEA95E1F7F4\r
+:100520008091680290E08077907073E0880F991F47\r
+:100530007A95E1F7282B392B8091660290E08F772E\r
+:100540009070282B392BC90108951F93CF93DF9307\r
+:10055000B4DF182FBDDFEC01D9DF9C01209729F013\r
+:10056000D0936302C093620204C0C0916202D09132\r
+:1005700063022115310529F0309361022093600256\r
+:1005800004C020916002309161021123C9F480916E\r
+:1005900064028823A9F0C659D040CE0161EB71E016\r
+:1005A0000E94BE0B462F4F5F225D3040C9016CECAC\r
+:1005B00071E00E94BE0B862F880F860F480F01C086\r
+:1005C00040E010936402842FDF91CF911F91089532\r
+:1005D0001F938FB7F89420915201309153018FBF30\r
+:1005E00080915001909151012817390749F08AE212\r
+:1005F00091E0E3D6BC0197FD03C088E491E0B8DD4B\r
+:100600002FB7F8948091DE019091DF012FBF009702\r
+:1006100001F120912B012F702093E9002091E80037\r
+:1006200020FF17C08031910510F08FE090E0182F67\r
+:100630000EC0E091D601F091D7018AE291E060818D\r
+:100640004BD61150882329F484ED91E0ACDD1123C1\r
+:1006500081F72FB7F89480915201909153012FBFE9\r
+:10066000009749F088E491E09EDD9091C80095FFE5\r
+:10067000FCCF8093CE008AE291E088D642D51F91CC\r
+:10068000089584B7877F84BF88E10FB6F89480937C\r
+:100690006000109260000FBE90E080E80FB6F89402\r
+:1006A00080936100909361000FBEDBC208950895AE\r
+:1006B0008AE291E0EDC58AE291E03EC51F920F9279\r
+:1006C0000FB60F9211242F933F934F935F936F9325\r
+:1006D0007F938F939F93AF93BF93EF93FF9360911B\r
+:1006E000CE008EB3843019F484ED91E041DDFF91AA\r
+:1006F000EF91BF91AF919F918F917F916F915F919A\r
+:100700004F913F912F910F900FBE0F901F90189512\r
+:100710008F929F92AF92BF92CF92DF92EF92FF9211\r
+:100720001F93FC01A18DA150A23028F4B0E0AB5B77\r
+:10073000BE4F1C9101C010E0808D823009F418601A\r
+:10074000828D873031F0883031F0863029F41260A4\r
+:1007500003C0146001C016601092C9001092C80056\r
+:100760001092CA00C488D588E688F788C701B60108\r
+:1007700096958795779567954BD720E034E244EFBF\r
+:1007800059E44AD64B015C01C701B60141D79B0130\r
+:10079000AC01C501B401A8D620E030E040E85FE339\r
+:1007A0003AD60AD77093CD006093CC001093CA005C\r
+:1007B00082E08093C80088E98093C9001F91FF9070\r
+:1007C000EF90DF90CF90BF90AF909F908F90089563\r
+:1007D000682F8EB3843019F484ED91E0C9CC08956C\r
+:1007E000EF92FF92CF93DF93E82EE7017E01F92E7F\r
+:1007F000E70101C0EDDF89918823E1F7DF91CF9117\r
+:10080000FF90EF900895CF93DF933BDF88E491E072\r
+:1008100064E571E0E1DC84ED91E060EE71E0DCDC48\r
+:1008200078941CDE8FEF99E6A8E181509040A040BB\r
+:10083000E1F700C00000789422DEC0E0D0E0C8DE1E\r
+:10084000219697E0C03DD907D1F710DE7EDE8330D8\r
+:10085000E9F0843028F48130B1F0823071F70DC0B6\r
+:10086000853071F0853018F0863039F703C080E0AC\r
+:1008700091E00EC087E091E00BC08FE091E008C0EE\r
+:1008800084E191E005C08BE191E002C082E291E059\r
+:10089000A7DFD3CF923029F0933041F09130E9F4C3\r
+:1008A00017C02EE330E0EAEAF0E01BC0813041F0EF\r
+:1008B000813018F0823089F406C0E8EEF0E005C01F\r
+:1008C000ECEEF0E002C0E6E0F1E0249130E009C097\r
+:1008D00022E130E0E8E9F0E004C020E030E0E0E0D0\r
+:1008E000F0E0DA011196FC93EE93C9010895282FE8\r
+:1008F000392FF90180917A0290917B028617970730\r
+:1009000018F4BC0120E034C061157105D9F780915D\r
+:10091000E8008E778093E800F5CF8EB38823E9F165\r
+:100920008530B9F18091E80083FD35C08091E80001\r
+:1009300082FD29C08091E80080FF1AC08091F200FA\r
+:1009400090E006C021912093F10061507040019623\r
+:100950006115710519F088309105A0F321E0883008\r
+:10096000910509F020E08091E8008E778093E800FF\r
+:100970006115710591F6222381F605C08EB3882397\r
+:1009800061F0853061F08091E80082FFF7CF80E070\r
+:10099000089583E0089581E0089582E0089583E05A\r
+:1009A0000895E82FF92F80917A0290917B028617A3\r
+:1009B000970718F4BC0120E036C061157105D9F71E\r
+:1009C0008091E8008E778093E800F5CF8EB388237E\r
+:1009D00009F43EC08530C1F18091E80083FD36C046\r
+:1009E0008091E80082FD2AC08091E80080FF1BC052\r
+:1009F0008091F20090E007C024912093F10031969D\r
+:100A00006150704001966115710519F088309105AB\r
+:100A100098F321E08830910509F020E08091E8000A\r
+:100A20008E778093E8006115710581F6222371F6B7\r
+:100A300005C08EB3882361F0853061F08091E800B5\r
+:100A400082FFF7CF80E0089583E0089581E0089564\r
+:100A500082E0089583E00895982F2CC0292F2F70ED\r
+:100A60002093E900981739F07091EC002091ED0087\r
+:100A70005091F00003C0242F762F50E021FF19C0C1\r
+:100A80003091EB003E7F3093EB003091ED003D7FE5\r
+:100A90003093ED003091EB0031603093EB007093B8\r
+:100AA000EC002093ED005093F0002091EE0027FF22\r
+:100AB00008C09F5F953090F28F708093E90081E0CD\r
+:100AC000089580E00895EF92FF920F931F93CF93C4\r
+:100AD000DF93162FE82EE7017E01F92EE70100E0F3\r
+:100AE0002AC09881992329F16B81E981FA812C81AF\r
+:100AF000892F8F70853018F56295660F660F607CC0\r
+:100B0000991F9927991F692B223010F096E001C098\r
+:100B100092E028E030E040E003C04F5F220F331F37\r
+:100B20002E173F07D0F34295407F492B95DF88234E\r
+:100B300031F00F5F25960117A0F281E001C080E03F\r
+:100B4000DF91CF911F910F91FF90EF9008958091C9\r
+:100B5000740287FF11C003C08EB38823B1F0809167\r
+:100B6000E80082FFF9CF8091E8008B778093E8005E\r
+:100B700008958EB3882349F08091E80080FFF9CF73\r
+:100B80008091E8008E778093E80008958091E400DA\r
+:100B90009091E50044E62091EC0020FF25C02091D3\r
+:100BA000E80020FD15C02EB32223A1F02530A1F0CE\r
+:100BB0002091EB0025FD12C02091E4003091E5006A\r
+:100BC0002817390741F3442359F04150C901E3CFB5\r
+:100BD00080E0089582E0089583E0089581E008951B\r
+:100BE00084E0089580E008952091E80022FFDBCFA3\r
+:100BF000F9CF40D042D08091D8008F778093D80031\r
+:100C00008091D80080688093D8008091D8008F7D33\r
+:100C10008093D80084E089BD86E089BD09B400FED8\r
+:100C2000FDCF1EBA109270021092720210927102E1\r
+:100C300080E060E042E010DF8091E1008E7F8093F1\r
+:100C4000E1008091E20081608093E2008091E20007\r
+:100C500088608093E2008091E0008E7F8093E000C6\r
+:100C60000895E3E6F0E080818E7F808381E08093C9\r
+:100C70007302BFCF1092E20008951092E100089530\r
+:100C80001F920F920FB60F9211242F933F934F9301\r
+:100C90005F936F937F938F939F93AF93BF93EF93E4\r
+:100CA000FF938091E10082FF0AC08091E20082FF01\r
+:100CB00006C08091E1008B7F8093E10021D280917A\r
+:100CC000E10080FF16C08091E20080FF12C0809199\r
+:100CD000E2008E7F8093E2008091E2008061809349\r
+:100CE000E2008091D80080628093D80019BC1EBABF\r
+:100CF000DEDC8091E10084FF2CC08091E20084FF63\r
+:100D000028C084E089BD86E089BD09B400FEFDCF1E\r
+:100D10008091D8008F7D8093D8008091E1008F7EF4\r
+:100D20008093E1008091E2008F7E8093E2008091C9\r
+:100D3000E20081608093E20080917002882321F4B8\r
+:100D40008091E30087FF02C084E001C081E08EBB98\r
+:100D5000ADDC8091E10083FF26C08091E20083FF3B\r
+:100D600022C08091E100877F8093E10082E08EBB0A\r
+:100D7000109270028091E1008E7F8093E10080915B\r
+:100D8000E2008E7F8093E2008091E2008061809398\r
+:100D9000E20080E060E042E05FDE8091F000886089\r
+:100DA0008093F000ADD1FF91EF91BF91AF919F91F2\r
+:100DB0008F917F916F915F914F913F912F910F9004\r
+:100DC0000FBE0F901F9018951F920F920FB60F92A3\r
+:100DD00011241F932F933F934F935F936F937F93B0\r
+:100DE0008F939F93AF93BF93EF93FF931091E9007D\r
+:100DF0001F708091EC001092E9008091F000877FD5\r
+:100E00008093F00078941BD01092E9008091F0005C\r
+:100E100088608093F0001093E900FF91EF91BF91FB\r
+:100E2000AF919F918F917F916F915F914F913F9182\r
+:100E30002F911F910F900FBE0F901F9018951F9329\r
+:100E4000DF93CF93CDB7DEB7AC970FB6F894DEBF84\r
+:100E50000FBECDBFE4E7F2E08091F100819322E084\r
+:100E6000EC37F207C9F727DC8091E80083FF30C137\r
+:100E70008091740220917502253009F484C02630D7\r
+:100E800040F42130A1F1213070F0233009F020C16D\r
+:100E90002EC0283009F4EFC0293009F4FEC02630F6\r
+:100EA00009F016C192C0803821F0823809F010C1D3\r
+:100EB00008C08091710290917202992371F0826052\r
+:100EC0000CC0809178028F708093E9009091EB00C4\r
+:100ED00081E095FF80E01092E9009091E800977F13\r
+:100EE0009093E8008093F1001092F100CFC0882326\r
+:100EF00019F0823009F0ECC090E08F71907000978B\r
+:100F000029F08230910509F0E3C00BC08091760290\r
+:100F1000813009F0DDC0233009F080E08093720257\r
+:100F20002CC080917602882341F5209178022F70A1\r
+:100F300009F4CEC02093E9008091EB0080FF1DC032\r
+:100F400080917502833021F48091EB00806213C0A0\r
+:100F50008091EB0080618093EB0081E090E002C023\r
+:100F6000880F991F2A95E2F78093EA001092EA0011\r
+:100F70008091EB0088608093EB001092E9008091F3\r
+:100F8000E800877F86C0882309F0A2C0109176020E\r
+:100F90001F778091E3008078812B8093E30080911C\r
+:100FA000E800877F8093E800D2DD8091E80080FF31\r
+:100FB000FCCF8091E30080688093E300112311F05F\r
+:100FC00083E001C082E08EBB83C08058823008F08D\r
+:100FD0007FC0809176029091770223E08C3D92074A\r
+:100FE00091F583E08C838AE28B835FB7F894DE010E\r
+:100FF000159680E090E04EE061E2E42FF0E060932F\r
+:101000005700E49180FF03C0E295EF704F5FEF70EF\r
+:101010002E2F30E0EA3018F0295C3F4F02C0205DEF\r
+:101020003F4F2D933D9301968431910531F75FBF7A\r
+:101030008091E800877F8093E800CE0103966AE202\r
+:1010400070E055DC12C060917802AE014F5F5F4FD7\r
+:1010500021DCBC01009709F43BC08091E800877F48\r
+:101060008093E80089819A819CDC8091E8008B77ED\r
+:101070008093E8002DC0803859F58091E800877F83\r
+:101080008093E800809170028093F1008091E800E5\r
+:101090008E778093E8005BDD1BC08823C9F49091B4\r
+:1010A00076029230A8F48091E800877F8093E80070\r
+:1010B000909370024CDD80917002882321F480911E\r
+:1010C000E30087FF02C084E001C081E08EBBF0DA5C\r
+:1010D0008091E80083FF0AC08091E800877F8093B9\r
+:1010E000E8008091EB0080628093EB00AC960FB635\r
+:1010F000F894DEBF0FBECDBFCF91DF911F91089551\r
+:1011000008951F938EB38823A9F08091E9008F7012\r
+:101110009091EC0090FF02C010E801C010E0182B85\r
+:101120001092E9008091E80083FF01C088DE1F7003\r
+:101130001093E9001F910895CF93DF93EC01809104\r
+:10114000E80083FFA2C0888190E02091780230916E\r
+:1011500079022817390709F098C080917502813209\r
+:1011600069F0823220F4803209F08FC03CC08232B4\r
+:1011700009F46AC0833209F088C079C08091740292\r
+:10118000813A09F082C08091E800877F8093E8006F\r
+:101190008091E80080FFFCCF8C899D89AE89BF8952\r
+:1011A0008093F100292F3A2F4B2F55272093F100E0\r
+:1011B0009D01442755272093F1008B2F9927AA27BB\r
+:1011C000BB278093F100888D8093F100898D8093F7\r
+:1011D000F1008A8D8093F1008091E8008E778093F2\r
+:1011E000E800B5DC52C080917402813209F04DC034\r
+:1011F0008091E800877F8093E80004C08EB3882345\r
+:1012000009F443C08091E80082FFF8CF3091F100EB\r
+:101210002091F1009091F1008091F1003C8B2D8B99\r
+:101220009E8B8F8B8091F100888F8091F100898F48\r
+:101230008091F1008A8F8091E8008B778093E8009D\r
+:1012400086DCCE0165DA21C0809174028132E9F436\r
+:101250008091E800877F8093E80079DC80917602B6\r
+:1012600090917702998B888BCE01D4D00EC080915B\r
+:101270007402813251F48091E800877F8093E80006\r
+:1012800066DCCE0160917602C5D0DF91CF910895E2\r
+:10129000CF93DF93EC014096FC018BE0DF011D92C0\r
+:1012A0008A95E9F782E08C83898783E08E87CE0177\r
+:1012B000019661E008DC882359F0CE01069661E0D2\r
+:1012C00002DC882329F0CE010B9661E0FCDB01C033\r
+:1012D00080E0DF91CF910895DF93CF930F92CDB748\r
+:1012E000DEB7FC018EB38430F9F424893589468950\r
+:1012F00057892115310541055105B1F081818F7064\r
+:101300008093E9008091E80085FD0AC08091E800A3\r
+:101310008E778093E800698339DC6981882329F41A\r
+:101320006093F10080E001C082E00F90CF91DF91E7\r
+:101330000895FC018EB3843019F5248935894689D6\r
+:1013400057892115310541055105D1F081818F70F3\r
+:101350008093E9008091F2008823A1F09091E80049\r
+:101360008091E8008E778093E80095FD0DC00EDC3B\r
+:10137000882359F49091E8009E779093E8000895AF\r
+:1013800082E0089580E0089580E008952EB324302F\r
+:1013900099F4FC012489358946895789211531053D\r
+:1013A0004105510549F021812F702093E9002091DA\r
+:1013B000E80020FF01C0BDCF0895FC018EB384304A\r
+:1013C00029F5248935894689578921153105410533\r
+:1013D0005105E1F086818F708093E9008091E800EB\r
+:1013E00082FF14C08091F200882321F02091F10047\r
+:1013F00030E002C02FEF3FEF8091F200882341F4EC\r
+:101400008091E8008B778093E80002C02FEF3FEFD8\r
+:10141000C901089508955058BB27AA270ED070C15E\r
+:1014200061D130F066D120F031F49F3F11F41EF409\r
+:1014300056C10EF4E095E7FB4CC1E92F72D180F361\r
+:10144000BA17620773078407950718F071F49EF5C1\r
+:101450008AC10EF4E0950B2EBA2FA02D0B01B90115\r
+:1014600090010C01CA01A0011124FF27591B99F01A\r
+:10147000593F50F4503E68F11A16F040A22F232F26\r
+:10148000342F4427585FF3CF469537952795A79576\r
+:10149000F0405395C9F77EF41F16BA0B620B730B1D\r
+:1014A000840BBAF09150A1F0FF0FBB1F661F771F8E\r
+:1014B000881FC2F70EC0BA0F621F731F841F48F443\r
+:1014C000879577956795B795F7959E3F08F0B3CFC9\r
+:1014D0009395880F08F09927EE0F979587950895B3\r
+:1014E000D4D008F481E008950CD00AC102D140F0B4\r
+:1014F000F9D030F021F45F3F19F0EBC0511134C145\r
+:10150000EEC00FD198F39923C9F35523B1F3951B7E\r
+:10151000550BBB27AA2762177307840738F09F5F14\r
+:101520005F4F220F331F441FAA1FA9F333D00E2E83\r
+:101530003AF0E0E830D091505040E695001CCAF7F0\r
+:1015400029D0FE2F27D0660F771F881FBB1F2617B5\r
+:1015500037074807AB07B0E809F0BB0B802DBF0188\r
+:10156000FF2793585F4F2AF09E3F510568F0B1C0A6\r
+:10157000FBC05F3FECF3983EDCF38695779567956B\r
+:10158000B795F7959F5FC9F7880F911D9695879539\r
+:1015900097F90895E1E0660F771F881FBB1F621758\r
+:1015A00073078407BA0720F0621B730B840BBA0B16\r
+:1015B000EE1F88F7E0950895BCD088F09F5790F013\r
+:1015C000B92F9927B751A0F0D1F0660F771F881F68\r
+:1015D000991F1AF0BA95C9F712C0B13081F0C3D083\r
+:1015E000B1E00895C0C0672F782F8827B85F39F021\r
+:1015F000B93FCCF3869577956795B395D9F73EF4C7\r
+:1016000090958095709561957F4F8F4F9F4F08956E\r
+:10161000E89409C097FB3EF490958095709561958C\r
+:101620007F4F8F4F9F4F9923A9F0F92F96E9BB2742\r
+:101630009395F695879577956795B795F111F8CFBE\r
+:10164000FAF4BB0F11F460FF1BC06F5F7F4F8F4F29\r
+:101650009F4F16C0882311F096E911C0772321F01F\r
+:101660009EE8872F762F05C0662371F096E8862FB7\r
+:1016700070E060E02AF09A95660F771F881FDAF70E\r
+:10168000880F9695879597F90895990F0008550F3B\r
+:10169000AA0BE0E8FEEF16161706E807F907C0F0F8\r
+:1016A00012161306E407F50798F0621B730B840B00\r
+:1016B000950B39F40A2661F0232B242B252B21F4DA\r
+:1016C00008950A2609F4A140A6958FEF811D811D7A\r
+:1016D000089597F99F6780E870E060E008959FEFB4\r
+:1016E00080EC089500240A941616170618060906B9\r
+:1016F000089500240A941216130614060506089588\r
+:10170000092E0394000C11F4882352F0BB0F40F40F\r
+:10171000BF2B11F460FF04C06F5F7F4F8F4F9F4F4F\r
+:10172000089557FD9058440F551F59F05F3F71F0D1\r
+:101730004795880F97FB991F61F09F3F79F0879538\r
+:101740000895121613061406551FF2CF4695F1DFC1\r
+:1017500008C0161617061806991FF1CF8695710551\r
+:10176000610508940895E894BB2766277727CB0185\r
+:1017700097F908958ADF08F48FEF0895AA1BBB1B21\r
+:1017800051E107C0AA1FBB1FA617B70710F0A61B81\r
+:10179000B70B881F991F5A95A9F780959095BC01A2\r
+:0817A000CD010895F894FFCF7C\r
+:1017A8006C6566740A0D0072696768740A0D0075C5\r
+:1017B800700A0D00646F776E0A0D006261636B0A30\r
+:1017C8000D00656E7465720A0D000083100000013B\r
+:1017D8000410000001820800000100000000000061\r
+:0817E8000000000000302000A9\r
 :00000001FF\r
index e1da980a8f98fa0ff578f761a8da800cb411984d..173245ae9df17214210d6c1c122a9e526a174a8f 100644 (file)
@@ -3,35 +3,35 @@ USBtoSerial.elf:     file format elf32-avr
 
 Sections:
 Idx Name          Size      VMA       LMA       File off  Algn
-  0 .data         00000042  00800100  00001826  000018ba  2**0
+  0 .data         00000048  00800100  000017a8  0000183c  2**0
                   CONTENTS, ALLOC, LOAD, DATA
-  1 .text         00001826  00000000  00000000  00000094  2**1
+  1 .text         000017a8  00000000  00000000  00000094  2**1
                   CONTENTS, ALLOC, LOAD, READONLY, CODE
-  2 .bss          00000134  00800142  00800142  000018fc  2**0
+  2 .bss          00000134  00800148  00800148  00001884  2**0
                   ALLOC
-  3 .stab         0000228c  00000000  00000000  000018fc  2**2
+  3 .stab         0000228c  00000000  00000000  00001884  2**2
                   CONTENTS, READONLY, DEBUGGING
-  4 .stabstr      0000044f  00000000  00000000  00003b88  2**0
+  4 .stabstr      0000044f  00000000  00000000  00003b10  2**0
                   CONTENTS, READONLY, DEBUGGING
-  5 .debug_aranges 00000538  00000000  00000000  00003fd7  2**0
+  5 .debug_aranges 00000538  00000000  00000000  00003f5f  2**0
                   CONTENTS, READONLY, DEBUGGING
-  6 .debug_pubnames 00000e11  00000000  00000000  0000450f  2**0
+  6 .debug_pubnames 00000e11  00000000  00000000  00004497  2**0
                   CONTENTS, READONLY, DEBUGGING
-  7 .debug_info   00008cb1  00000000  00000000  00005320  2**0
+  7 .debug_info   00008d35  00000000  00000000  000052a8  2**0
                   CONTENTS, READONLY, DEBUGGING
-  8 .debug_abbrev 000021ca  00000000  00000000  0000dfd1  2**0
+  8 .debug_abbrev 00002195  00000000  00000000  0000dfdd  2**0
                   CONTENTS, READONLY, DEBUGGING
-  9 .debug_line   0000757d  00000000  00000000  0001019b  2**0
+  9 .debug_line   00007586  00000000  00000000  00010172  2**0
                   CONTENTS, READONLY, DEBUGGING
- 10 .debug_frame  00000830  00000000  00000000  00017718  2**2
+ 10 .debug_frame  00000830  00000000  00000000  000176f8  2**2
                   CONTENTS, READONLY, DEBUGGING
- 11 .debug_str    00003bf7  00000000  00000000  00017f48  2**0
+ 11 .debug_str    00003bf7  00000000  00000000  00017f28  2**0
                   CONTENTS, READONLY, DEBUGGING
- 12 .debug_loc    0000457e  00000000  00000000  0001bb3f  2**0
+ 12 .debug_loc    000045ea  00000000  00000000  0001bb1f  2**0
                   CONTENTS, READONLY, DEBUGGING
- 13 .debug_pubtypes 00001111  00000000  00000000  000200bd  2**0
+ 13 .debug_pubtypes 00001111  00000000  00000000  00020109  2**0
                   CONTENTS, READONLY, DEBUGGING
- 14 .debug_ranges 00000790  00000000  00000000  000211ce  2**0
+ 14 .debug_ranges 00000790  00000000  00000000  0002121a  2**0
                   CONTENTS, READONLY, DEBUGGING
 
 Disassembly of section .text:
@@ -71,9 +71,9 @@ Disassembly of section .text:
       26:      00 00           nop
       28:      a2 c0           rjmp    .+324           ; 0x16e <__bad_interrupt>
       2a:      00 00           nop
-      2c:      5a c6           rjmp    .+3252          ; 0xce2 <__vector_11>
+      2c:      29 c6           rjmp    .+3154          ; 0xc80 <__vector_11>
       2e:      00 00           nop
-      30:      fc c6           rjmp    .+3576          ; 0xe2a <__vector_12>
+      30:      cb c6           rjmp    .+3478          ; 0xdc8 <__vector_12>
       32:      00 00           nop
       34:      9c c0           rjmp    .+312           ; 0x16e <__bad_interrupt>
       36:      00 00           nop
@@ -95,7 +95,7 @@ Disassembly of section .text:
       56:      00 00           nop
       58:      8a c0           rjmp    .+276           ; 0x16e <__bad_interrupt>
       5a:      00 00           nop
-      5c:      e2 c2           rjmp    .+1476          ; 0x622 <__vector_23>
+      5c:      2f c3           rjmp    .+1630          ; 0x6bc <__vector_23>
       5e:      00 00           nop
       60:      86 c0           rjmp    .+268           ; 0x16e <__bad_interrupt>
       62:      00 00           nop
@@ -160,18 +160,18 @@ Disassembly of section .text:
      142:      11 e0           ldi     r17, 0x01       ; 1
      144:      a0 e0           ldi     r26, 0x00       ; 0
      146:      b1 e0           ldi     r27, 0x01       ; 1
-     148:      e6 e2           ldi     r30, 0x26       ; 38
-     14a:      f8 e1           ldi     r31, 0x18       ; 24
+     148:      e8 ea           ldi     r30, 0xA8       ; 168
+     14a:      f7 e1           ldi     r31, 0x17       ; 23
      14c:      02 c0           rjmp    .+4             ; 0x152 <__do_copy_data+0x10>
      14e:      05 90           lpm     r0, Z+
      150:      0d 92           st      X+, r0
-     152:      a2 34           cpi     r26, 0x42       ; 66
+     152:      a8 34           cpi     r26, 0x48       ; 72
      154:      b1 07           cpc     r27, r17
      156:      d9 f7           brne    .-10            ; 0x14e <__do_copy_data+0xc>
 
 00000158 <__do_clear_bss>:
      158:      12 e0           ldi     r17, 0x02       ; 2
-     15a:      a2 e4           ldi     r26, 0x42       ; 66
+     15a:      a8 e4           ldi     r26, 0x48       ; 72
      15c:      b1 e0           ldi     r27, 0x01       ; 1
      15e:      01 c0           rjmp    .+2             ; 0x162 <.do_clear_bss_start>
 
@@ -179,11 +179,11 @@ Disassembly of section .text:
      160:      1d 92           st      X+, r1
 
 00000162 <.do_clear_bss_start>:
-     162:      a6 37           cpi     r26, 0x76       ; 118
+     162:      ac 37           cpi     r26, 0x7C       ; 124
      164:      b1 07           cpc     r27, r17
      166:      e1 f7           brne    .-8             ; 0x160 <.do_clear_bss_loop>
-     168:      67 d3           rcall   .+1742          ; 0x838 <main>
-     16a:      0c 94 11 0c     jmp     0x1822  ; 0x1822 <_exit>
+     168:      4e d3           rcall   .+1692          ; 0x806 <main>
+     16a:      0c 94 d2 0b     jmp     0x17a4  ; 0x17a4 <_exit>
 
 0000016e <__bad_interrupt>:
      16e:      48 cf           rjmp    .-368           ; 0x0 <__vectors>
@@ -394,9 +394,9 @@ ISR( TIMER0_OVF_vect) {
      20a:      11 24           eor     r1, r1
      20c:      8f 93           push    r24
        t0ovfcount++;
-     20e:      80 91 68 02     lds     r24, 0x0268
+     20e:      80 91 6e 02     lds     r24, 0x026E
      212:      8f 5f           subi    r24, 0xFF       ; 255
-     214:      80 93 68 02     sts     0x0268, r24
+     214:      80 93 6e 02     sts     0x026E, r24
 }
      218:      8f 91           pop     r24
      21a:      0f 90           pop     r0
@@ -410,7 +410,7 @@ ISR( TIMER0_OVF_vect) {
 uint16_t t0ext(void) {
        return (t0ovfcount * 256 + (u16) TCNT0); // return current counter value
      224:      86 b5           in      r24, 0x26       ; 38
-     226:      30 91 68 02     lds     r19, 0x0268
+     226:      30 91 6e 02     lds     r19, 0x026E
      22a:      20 e0           ldi     r18, 0x00       ; 0
      22c:      28 0f           add     r18, r24
      22e:      31 1d           adc     r19, r1
@@ -425,7 +425,7 @@ void t0rst(void) {
        TCNT0 = 0; // set counter to zero
      234:      16 bc           out     0x26, r1        ; 38
        t0ovfcount = 0; // set overflow counter to zero
-     236:      10 92 68 02     sts     0x0268, r1
+     236:      10 92 6e 02     sts     0x026E, r1
 
 }
      23a:      08 95           ret
@@ -463,12 +463,12 @@ u08 adb(void) {
      256:      bc 01           movw    r22, r24
      258:      80 e0           ldi     r24, 0x00       ; 0
      25a:      90 e0           ldi     r25, 0x00       ; 0
-     25c:      0e 94 39 0b     call    0x1672  ; 0x1672 <__floatunsisf>
+     25c:      0e 94 08 0b     call    0x1610  ; 0x1610 <__floatunsisf>
      260:      20 e0           ldi     r18, 0x00       ; 0
      262:      30 e8           ldi     r19, 0x80       ; 128
      264:      4e e0           ldi     r20, 0x0E       ; 14
      266:      53 e4           ldi     r21, 0x43       ; 67
-     268:      0e 94 a1 0a     call    0x1542  ; 0x1542 <__cmpsf2>
+     268:      0e 94 70 0a     call    0x14e0  ; 0x14e0 <__cmpsf2>
      26c:      87 fd           sbrc    r24, 7
      26e:      f2 cf           rjmp    .-28            ; 0x254 <adb+0x18>
                ; // Warteschleife
@@ -495,12 +495,12 @@ u08 adb(void) {
      282:      bc 01           movw    r22, r24
      284:      80 e0           ldi     r24, 0x00       ; 0
      286:      90 e0           ldi     r25, 0x00       ; 0
-     288:      0e 94 39 0b     call    0x1672  ; 0x1672 <__floatunsisf>
+     288:      0e 94 08 0b     call    0x1610  ; 0x1610 <__floatunsisf>
      28c:      20 e0           ldi     r18, 0x00       ; 0
      28e:      30 e0           ldi     r19, 0x00       ; 0
      290:      4c e8           ldi     r20, 0x8C       ; 140
      292:      52 e4           ldi     r21, 0x42       ; 66
-     294:      0e 94 a1 0a     call    0x1542  ; 0x1542 <__cmpsf2>
+     294:      0e 94 70 0a     call    0x14e0  ; 0x14e0 <__cmpsf2>
      298:      87 fd           sbrc    r24, 7
      29a:      f2 cf           rjmp    .-28            ; 0x280 <adb+0x44>
                        ;
@@ -513,12 +513,12 @@ u08 adb(void) {
      2a2:      bc 01           movw    r22, r24
      2a4:      80 e0           ldi     r24, 0x00       ; 0
      2a6:      90 e0           ldi     r25, 0x00       ; 0
-     2a8:      0e 94 39 0b     call    0x1672  ; 0x1672 <__floatunsisf>
+     2a8:      0e 94 08 0b     call    0x1610  ; 0x1610 <__floatunsisf>
      2ac:      20 e0           ldi     r18, 0x00       ; 0
      2ae:      30 e0           ldi     r19, 0x00       ; 0
      2b0:      48 e4           ldi     r20, 0x48       ; 72
      2b2:      53 e4           ldi     r21, 0x43       ; 67
-     2b4:      0e 94 a1 0a     call    0x1542  ; 0x1542 <__cmpsf2>
+     2b4:      0e 94 70 0a     call    0x14e0  ; 0x14e0 <__cmpsf2>
      2b8:      87 fd           sbrc    r24, 7
      2ba:      f2 cf           rjmp    .-28            ; 0x2a0 <adb+0x64>
      2bc:      41 c0           rjmp    .+130           ; 0x340 <adb+0x104>
@@ -535,7 +535,7 @@ u08 adb(void) {
                                if (adb_werte[z_byte] & bitpos)
      2c4:      e1 2e           mov     r14, r17
      2c6:      ff 24           eor     r15, r15
-     2c8:      8f e5           ldi     r24, 0x5F       ; 95
+     2c8:      85 e6           ldi     r24, 0x65       ; 101
      2ca:      92 e0           ldi     r25, 0x02       ; 2
      2cc:      e8 0e           add     r14, r24
      2ce:      f9 1e           adc     r15, r25
@@ -560,12 +560,12 @@ u08 adb(void) {
      2e0:      bc 01           movw    r22, r24
      2e2:      80 e0           ldi     r24, 0x00       ; 0
      2e4:      90 e0           ldi     r25, 0x00       ; 0
-     2e6:      0e 94 39 0b     call    0x1672  ; 0x1672 <__floatunsisf>
+     2e6:      0e 94 08 0b     call    0x1610  ; 0x1610 <__floatunsisf>
      2ea:      20 e0           ldi     r18, 0x00       ; 0
      2ec:      30 e0           ldi     r19, 0x00       ; 0
      2ee:      4c e8           ldi     r20, 0x8C       ; 140
      2f0:      52 e4           ldi     r21, 0x42       ; 66
-     2f2:      0e 94 a1 0a     call    0x1542  ; 0x1542 <__cmpsf2>
+     2f2:      0e 94 70 0a     call    0x14e0  ; 0x14e0 <__cmpsf2>
      2f6:      87 fd           sbrc    r24, 7
      2f8:      f2 cf           rjmp    .-28            ; 0x2de <adb+0xa2>
      2fa:      0e c0           rjmp    .+28            ; 0x318 <adb+0xdc>
@@ -576,12 +576,12 @@ u08 adb(void) {
      2fe:      bc 01           movw    r22, r24
      300:      80 e0           ldi     r24, 0x00       ; 0
      302:      90 e0           ldi     r25, 0x00       ; 0
-     304:      0e 94 39 0b     call    0x1672  ; 0x1672 <__floatunsisf>
+     304:      0e 94 08 0b     call    0x1610  ; 0x1610 <__floatunsisf>
      308:      20 e0           ldi     r18, 0x00       ; 0
      30a:      30 e0           ldi     r19, 0x00       ; 0
      30c:      42 e0           ldi     r20, 0x02       ; 2
      30e:      53 e4           ldi     r21, 0x43       ; 67
-     310:      0e 94 a1 0a     call    0x1542  ; 0x1542 <__cmpsf2>
+     310:      0e 94 70 0a     call    0x14e0  ; 0x14e0 <__cmpsf2>
      314:      87 fd           sbrc    r24, 7
      316:      f2 cf           rjmp    .-28            ; 0x2fc <adb+0xc0>
                                                ;
@@ -594,12 +594,12 @@ u08 adb(void) {
      31e:      bc 01           movw    r22, r24
      320:      80 e0           ldi     r24, 0x00       ; 0
      322:      90 e0           ldi     r25, 0x00       ; 0
-     324:      0e 94 39 0b     call    0x1672  ; 0x1672 <__floatunsisf>
+     324:      0e 94 08 0b     call    0x1610  ; 0x1610 <__floatunsisf>
      328:      20 e0           ldi     r18, 0x00       ; 0
      32a:      30 e0           ldi     r19, 0x00       ; 0
      32c:      48 e4           ldi     r20, 0x48       ; 72
      32e:      53 e4           ldi     r21, 0x43       ; 67
-     330:      0e 94 a1 0a     call    0x1542  ; 0x1542 <__cmpsf2>
+     330:      0e 94 70 0a     call    0x14e0  ; 0x14e0 <__cmpsf2>
      334:      87 fd           sbrc    r24, 7
      336:      f2 cf           rjmp    .-28            ; 0x31c <adb+0xe0>
                ADB_POUT |= ADB_BIT;
@@ -637,12 +637,12 @@ u08 adb(void) {
      34e:      bc 01           movw    r22, r24
      350:      80 e0           ldi     r24, 0x00       ; 0
      352:      90 e0           ldi     r25, 0x00       ; 0
-     354:      0e 94 39 0b     call    0x1672  ; 0x1672 <__floatunsisf>
+     354:      0e 94 08 0b     call    0x1610  ; 0x1610 <__floatunsisf>
      358:      20 e0           ldi     r18, 0x00       ; 0
      35a:      30 e0           ldi     r19, 0x00       ; 0
      35c:      42 e0           ldi     r20, 0x02       ; 2
      35e:      53 e4           ldi     r21, 0x43       ; 67
-     360:      0e 94 a1 0a     call    0x1542  ; 0x1542 <__cmpsf2>
+     360:      0e 94 70 0a     call    0x14e0  ; 0x14e0 <__cmpsf2>
      364:      87 fd           sbrc    r24, 7
      366:      f2 cf           rjmp    .-28            ; 0x34c <adb+0x110>
                        ;
@@ -655,19 +655,19 @@ u08 adb(void) {
      36e:      bc 01           movw    r22, r24
      370:      80 e0           ldi     r24, 0x00       ; 0
      372:      90 e0           ldi     r25, 0x00       ; 0
-     374:      0e 94 39 0b     call    0x1672  ; 0x1672 <__floatunsisf>
+     374:      0e 94 08 0b     call    0x1610  ; 0x1610 <__floatunsisf>
      378:      20 e0           ldi     r18, 0x00       ; 0
      37a:      30 e0           ldi     r19, 0x00       ; 0
      37c:      48 e4           ldi     r20, 0x48       ; 72
      37e:      53 e4           ldi     r21, 0x43       ; 67
-     380:      0e 94 a1 0a     call    0x1542  ; 0x1542 <__cmpsf2>
+     380:      0e 94 70 0a     call    0x14e0  ; 0x14e0 <__cmpsf2>
      384:      87 fd           sbrc    r24, 7
      386:      f2 cf           rjmp    .-28            ; 0x36c <adb+0x130>
                        ;
 
                // Entscheidung, ob noch weitere Daten Ã¼bertragen werden
                if (adb_werte[0] == COM_LISTEN3)
-     388:      80 91 5f 02     lds     r24, 0x025F
+     388:      80 91 65 02     lds     r24, 0x0265
      38c:      8b 33           cpi     r24, 0x3B       ; 59
      38e:      29 f0           breq    .+10            ; 0x39a <adb+0x15e>
                        anzahl_out = 2 + 1;
@@ -706,12 +706,12 @@ u08 adb(void) {
      3a8:      bc 01           movw    r22, r24
      3aa:      80 e0           ldi     r24, 0x00       ; 0
      3ac:      90 e0           ldi     r25, 0x00       ; 0
-     3ae:      0e 94 39 0b     call    0x1672  ; 0x1672 <__floatunsisf>
+     3ae:      0e 94 08 0b     call    0x1610  ; 0x1610 <__floatunsisf>
      3b2:      20 e0           ldi     r18, 0x00       ; 0
      3b4:      30 e0           ldi     r19, 0x00       ; 0
      3b6:      4a ef           ldi     r20, 0xFA       ; 250
      3b8:      53 e4           ldi     r21, 0x43       ; 67
-     3ba:      0e 94 eb 0b     call    0x17d6  ; 0x17d6 <__gesf2>
+     3ba:      0e 94 ba 0b     call    0x1774  ; 0x1774 <__gesf2>
      3be:      18 16           cp      r1, r24
      3c0:      0c f4           brge    .+2             ; 0x3c4 <adb+0x188>
      3c2:      42 c0           rjmp    .+132           ; 0x448 <adb+0x20c>
@@ -723,7 +723,7 @@ u08 adb(void) {
        while (!(ADB_PIN & ADB_BIT))
      3c8:      48 9b           sbis    0x09, 0 ; 9
      3ca:      fe cf           rjmp    .-4             ; 0x3c8 <adb+0x18c>
-     3cc:      c0 e6           ldi     r28, 0x60       ; 96
+     3cc:      c6 e6           ldi     r28, 0x66       ; 102
      3ce:      d2 e0           ldi     r29, 0x02       ; 2
      3d0:      11 e0           ldi     r17, 0x01       ; 1
      3d2:      01 c0           rjmp    .+2             ; 0x3d6 <adb+0x19a>
@@ -756,12 +756,12 @@ u08 adb(void) {
      3e4:      bc 01           movw    r22, r24
      3e6:      80 e0           ldi     r24, 0x00       ; 0
      3e8:      90 e0           ldi     r25, 0x00       ; 0
-     3ea:      0e 94 39 0b     call    0x1672  ; 0x1672 <__floatunsisf>
+     3ea:      0e 94 08 0b     call    0x1610  ; 0x1610 <__floatunsisf>
      3ee:      20 e0           ldi     r18, 0x00       ; 0
      3f0:      30 e0           ldi     r19, 0x00       ; 0
      3f2:      48 e4           ldi     r20, 0x48       ; 72
      3f4:      53 e4           ldi     r21, 0x43       ; 67
-     3f6:      0e 94 eb 0b     call    0x17d6  ; 0x17d6 <__gesf2>
+     3f6:      0e 94 ba 0b     call    0x1774  ; 0x1774 <__gesf2>
      3fa:      18 16           cp      r1, r24
      3fc:      14 f4           brge    .+4             ; 0x402 <adb+0x1c6>
                                        return (z_byte - 1);
@@ -782,12 +782,12 @@ u08 adb(void) {
      40e:      bc 01           movw    r22, r24
      410:      80 e0           ldi     r24, 0x00       ; 0
      412:      90 e0           ldi     r25, 0x00       ; 0
-     414:      0e 94 39 0b     call    0x1672  ; 0x1672 <__floatunsisf>
+     414:      0e 94 08 0b     call    0x1610  ; 0x1610 <__floatunsisf>
      418:      20 e0           ldi     r18, 0x00       ; 0
      41a:      30 e0           ldi     r19, 0x00       ; 0
      41c:      48 ec           ldi     r20, 0xC8       ; 200
      41e:      52 e4           ldi     r21, 0x42       ; 66
-     420:      0e 94 a1 0a     call    0x1542  ; 0x1542 <__cmpsf2>
+     420:      0e 94 70 0a     call    0x14e0  ; 0x14e0 <__cmpsf2>
      424:      87 ff           sbrs    r24, 7
      426:      03 c0           rjmp    .+6             ; 0x42e <adb+0x1f2>
                                adb_werte[z_byte] += bitpos;
@@ -874,12 +874,12 @@ void touchpad_init(void) {
 uint8_t touchpad_read(void) {
        adb_werte[0] = COM_TALK0;
      46c:      8c e3           ldi     r24, 0x3C       ; 60
-     46e:      80 93 5f 02     sts     0x025F, r24
+     46e:      80 93 65 02     sts     0x0265, r24
        adb_data_length = adb();
      472:      e4 de           rcall   .-568           ; 0x23c <adb>
-     474:      80 93 69 02     sts     0x0269, r24
+     474:      80 93 6f 02     sts     0x026F, r24
        return adb_data_length;
-     478:      80 91 69 02     lds     r24, 0x0269
+     478:      80 91 6f 02     lds     r24, 0x026F
 }
      47c:      08 95           ret
 
@@ -889,4802 +889,4728 @@ void touchpad_set_abs_mode(void) {
        // Auf Absolutmodus umschalten
        adb_werte[0] = COM_LISTEN3;
      47e:      8b e3           ldi     r24, 0x3B       ; 59
-     480:      80 93 5f 02     sts     0x025F, r24
+     480:      80 93 65 02     sts     0x0265, r24
        adb_werte[1] = BITS(0110,0011);
      484:      83 e6           ldi     r24, 0x63       ; 99
-     486:      80 93 60 02     sts     0x0260, r24
+     486:      80 93 66 02     sts     0x0266, r24
        adb_werte[2] = 4; //CDM Modus
      48a:      84 e0           ldi     r24, 0x04       ; 4
-     48c:      80 93 61 02     sts     0x0261, r24
+     48c:      80 93 67 02     sts     0x0267, r24
        adb();
      490:      d5 de           rcall   .-598           ; 0x23c <adb>
 
        adb_werte[0] = COM_TALK1;
      492:      8d e3           ldi     r24, 0x3D       ; 61
-     494:      80 93 5f 02     sts     0x025F, r24
+     494:      80 93 65 02     sts     0x0265, r24
        adb(); // Werte holen
      498:      d1 de           rcall   .-606           ; 0x23c <adb>
 
        adb_werte[0] = COM_LISTEN1;
      49a:      89 e3           ldi     r24, 0x39       ; 57
-     49c:      80 93 5f 02     sts     0x025F, r24
+     49c:      80 93 65 02     sts     0x0265, r24
        adb_werte[7] = 0x00; //Absolutmodus
-     4a0:      10 92 66 02     sts     0x0266, r1
+     4a0:      10 92 6c 02     sts     0x026C, r1
        adb();
+     4a4:      cb de           rcall   .-618           ; 0x23c <adb>
+       #else
+               //round up by default
+               __ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
+       #endif
+
+       __builtin_avr_delay_cycles(__ticks_dc);
+     4a6:      8f ef           ldi     r24, 0xFF       ; 255
+     4a8:      91 ee           ldi     r25, 0xE1       ; 225
+     4aa:      a4 e0           ldi     r26, 0x04       ; 4
+     4ac:      81 50           subi    r24, 0x01       ; 1
+     4ae:      90 40           sbci    r25, 0x00       ; 0
+     4b0:      a0 40           sbci    r26, 0x00       ; 0
+     4b2:      e1 f7           brne    .-8             ; 0x4ac <touchpad_set_abs_mode+0x2e>
+     4b4:      00 c0           rjmp    .+0             ; 0x4b6 <touchpad_set_abs_mode+0x38>
+     4b6:      00 00           nop
+  _delay_ms(100);
 }
-     4a4:      cb ce           rjmp    .-618           ; 0x23c <adb>
+     4b8:      08 95           ret
 
-000004a6 <z_pressure>:
-       adb();
+000004ba <z_pressure>:
+  _delay_ms(100);
 
 }
 
 uint8_t z_pressure(void) {
        return ((adb_werte[5] & 0b01110000) >> 1) | (adb_werte[5] & 0b00000111);
-     4a6:      80 91 64 02     lds     r24, 0x0264
-     4aa:      28 2f           mov     r18, r24
-     4ac:      30 e0           ldi     r19, 0x00       ; 0
-     4ae:      20 77           andi    r18, 0x70       ; 112
-     4b0:      30 70           andi    r19, 0x00       ; 0
-     4b2:      35 95           asr     r19
-     4b4:      27 95           ror     r18
-     4b6:      87 70           andi    r24, 0x07       ; 7
+     4ba:      80 91 6a 02     lds     r24, 0x026A
+     4be:      28 2f           mov     r18, r24
+     4c0:      30 e0           ldi     r19, 0x00       ; 0
+     4c2:      20 77           andi    r18, 0x70       ; 112
+     4c4:      30 70           andi    r19, 0x00       ; 0
+     4c6:      35 95           asr     r19
+     4c8:      27 95           ror     r18
+     4ca:      87 70           andi    r24, 0x07       ; 7
 }
-     4b8:      82 2b           or      r24, r18
-     4ba:      08 95           ret
+     4cc:      82 2b           or      r24, r18
+     4ce:      08 95           ret
 
-000004bc <x_abs>:
+000004d0 <x_abs>:
 
 uint16_t x_abs(void) {
        return ((adb_werte[4] & 0b111) << 10) | ((adb_werte[3] & 0b111) << 7)
-     4bc:      20 91 63 02     lds     r18, 0x0263
-     4c0:      30 e0           ldi     r19, 0x00       ; 0
-     4c2:      27 70           andi    r18, 0x07       ; 7
-     4c4:      30 70           andi    r19, 0x00       ; 0
-     4c6:      32 2f           mov     r19, r18
-     4c8:      22 27           eor     r18, r18
-     4ca:      33 0f           add     r19, r19
-     4cc:      33 0f           add     r19, r19
-     4ce:      80 91 62 02     lds     r24, 0x0262
-     4d2:      90 e0           ldi     r25, 0x00       ; 0
-     4d4:      87 70           andi    r24, 0x07       ; 7
-     4d6:      90 70           andi    r25, 0x00       ; 0
-     4d8:      96 95           lsr     r25
-     4da:      98 2f           mov     r25, r24
-     4dc:      88 27           eor     r24, r24
-     4de:      97 95           ror     r25
-     4e0:      87 95           ror     r24
-     4e2:      28 2b           or      r18, r24
-     4e4:      39 2b           or      r19, r25
+     4d0:      20 91 69 02     lds     r18, 0x0269
+     4d4:      30 e0           ldi     r19, 0x00       ; 0
+     4d6:      27 70           andi    r18, 0x07       ; 7
+     4d8:      30 70           andi    r19, 0x00       ; 0
+     4da:      32 2f           mov     r19, r18
+     4dc:      22 27           eor     r18, r18
+     4de:      33 0f           add     r19, r19
+     4e0:      33 0f           add     r19, r19
+     4e2:      80 91 68 02     lds     r24, 0x0268
+     4e6:      90 e0           ldi     r25, 0x00       ; 0
+     4e8:      87 70           andi    r24, 0x07       ; 7
+     4ea:      90 70           andi    r25, 0x00       ; 0
+     4ec:      96 95           lsr     r25
+     4ee:      98 2f           mov     r25, r24
+     4f0:      88 27           eor     r24, r24
+     4f2:      97 95           ror     r25
+     4f4:      87 95           ror     r24
+     4f6:      28 2b           or      r18, r24
+     4f8:      39 2b           or      r19, r25
                        | (adb_werte[2] & 0b01111111);
-     4e6:      80 91 61 02     lds     r24, 0x0261
-     4ea:      90 e0           ldi     r25, 0x00       ; 0
-     4ec:      8f 77           andi    r24, 0x7F       ; 127
-     4ee:      90 70           andi    r25, 0x00       ; 0
-     4f0:      28 2b           or      r18, r24
-     4f2:      39 2b           or      r19, r25
+     4fa:      80 91 67 02     lds     r24, 0x0267
+     4fe:      90 e0           ldi     r25, 0x00       ; 0
+     500:      8f 77           andi    r24, 0x7F       ; 127
+     502:      90 70           andi    r25, 0x00       ; 0
+     504:      28 2b           or      r18, r24
+     506:      39 2b           or      r19, r25
 }
-     4f4:      c9 01           movw    r24, r18
-     4f6:      08 95           ret
+     508:      c9 01           movw    r24, r18
+     50a:      08 95           ret
 
-000004f8 <y_abs>:
+0000050c <y_abs>:
 
 uint16_t y_abs(void) {
        return ((adb_werte[4] & 0b01110000) << 6)
-     4f8:      20 91 63 02     lds     r18, 0x0263
-     4fc:      30 e0           ldi     r19, 0x00       ; 0
-     4fe:      20 77           andi    r18, 0x70       ; 112
-     500:      30 70           andi    r19, 0x00       ; 0
-     502:      e6 e0           ldi     r30, 0x06       ; 6
-     504:      22 0f           add     r18, r18
-     506:      33 1f           adc     r19, r19
-     508:      ea 95           dec     r30
-     50a:      e1 f7           brne    .-8             ; 0x504 <__stack+0x5>
+     50c:      20 91 69 02     lds     r18, 0x0269
+     510:      30 e0           ldi     r19, 0x00       ; 0
+     512:      20 77           andi    r18, 0x70       ; 112
+     514:      30 70           andi    r19, 0x00       ; 0
+     516:      e6 e0           ldi     r30, 0x06       ; 6
+     518:      22 0f           add     r18, r18
+     51a:      33 1f           adc     r19, r19
+     51c:      ea 95           dec     r30
+     51e:      e1 f7           brne    .-8             ; 0x518 <y_abs+0xc>
                        | ((adb_werte[3] & 0b01110000) << 3) | (adb_werte[1] & 0b01111111);
-     50c:      80 91 62 02     lds     r24, 0x0262
-     510:      90 e0           ldi     r25, 0x00       ; 0
-     512:      80 77           andi    r24, 0x70       ; 112
-     514:      90 70           andi    r25, 0x00       ; 0
-     516:      73 e0           ldi     r23, 0x03       ; 3
-     518:      88 0f           add     r24, r24
-     51a:      99 1f           adc     r25, r25
-     51c:      7a 95           dec     r23
-     51e:      e1 f7           brne    .-8             ; 0x518 <__stack+0x19>
-     520:      28 2b           or      r18, r24
-     522:      39 2b           or      r19, r25
-     524:      80 91 60 02     lds     r24, 0x0260
-     528:      90 e0           ldi     r25, 0x00       ; 0
-     52a:      8f 77           andi    r24, 0x7F       ; 127
-     52c:      90 70           andi    r25, 0x00       ; 0
-     52e:      28 2b           or      r18, r24
-     530:      39 2b           or      r19, r25
+     520:      80 91 68 02     lds     r24, 0x0268
+     524:      90 e0           ldi     r25, 0x00       ; 0
+     526:      80 77           andi    r24, 0x70       ; 112
+     528:      90 70           andi    r25, 0x00       ; 0
+     52a:      73 e0           ldi     r23, 0x03       ; 3
+     52c:      88 0f           add     r24, r24
+     52e:      99 1f           adc     r25, r25
+     530:      7a 95           dec     r23
+     532:      e1 f7           brne    .-8             ; 0x52c <y_abs+0x20>
+     534:      28 2b           or      r18, r24
+     536:      39 2b           or      r19, r25
+     538:      80 91 66 02     lds     r24, 0x0266
+     53c:      90 e0           ldi     r25, 0x00       ; 0
+     53e:      8f 77           andi    r24, 0x7F       ; 127
+     540:      90 70           andi    r25, 0x00       ; 0
+     542:      28 2b           or      r18, r24
+     544:      39 2b           or      r19, r25
+}
+     546:      c9 01           movw    r24, r18
+     548:      08 95           ret
+
+0000054a <decode_field>:
+       }
+
+}
+*/
+
+uint8_t decode_field(void) {
+     54a:      1f 93           push    r17
+     54c:      cf 93           push    r28
+     54e:      df 93           push    r29
+       uint8_t pressure, i, j;
+       uint8_t return_val = 0;
+       static uint16_t x_mem, y_mem;
+       uint16_t x, y;
+
+       pressure = z_pressure();
+     550:      b4 df           rcall   .-152           ; 0x4ba <z_pressure>
+     552:      18 2f           mov     r17, r24
+       x = x_abs();
+     554:      bd df           rcall   .-134           ; 0x4d0 <x_abs>
+     556:      ec 01           movw    r28, r24
+       y = y_abs();
+     558:      d9 df           rcall   .-78            ; 0x50c <y_abs>
+     55a:      9c 01           movw    r18, r24
+
+       if (x) {
+     55c:      20 97           sbiw    r28, 0x00       ; 0
+     55e:      29 f0           breq    .+10            ; 0x56a <decode_field+0x20>
+               x_mem = x;
+     560:      d0 93 63 02     sts     0x0263, r29
+     564:      c0 93 62 02     sts     0x0262, r28
+     568:      04 c0           rjmp    .+8             ; 0x572 <decode_field+0x28>
+       } else {
+               x = x_mem;
+     56a:      c0 91 62 02     lds     r28, 0x0262
+     56e:      d0 91 63 02     lds     r29, 0x0263
+       }
+
+       if (y) {
+     572:      21 15           cp      r18, r1
+     574:      31 05           cpc     r19, r1
+     576:      29 f0           breq    .+10            ; 0x582 <decode_field+0x38>
+               y_mem = y;
+     578:      30 93 61 02     sts     0x0261, r19
+     57c:      20 93 60 02     sts     0x0260, r18
+     580:      04 c0           rjmp    .+8             ; 0x58a <decode_field+0x40>
+       } else {
+               y = y_mem;
+     582:      20 91 60 02     lds     r18, 0x0260
+     586:      30 91 61 02     lds     r19, 0x0261
+       }
+
+       if ((pressure == 0) && (last_pressure > 0)) {
+     58a:      11 23           and     r17, r17
+     58c:      c9 f4           brne    .+50            ; 0x5c0 <decode_field+0x76>
+     58e:      80 91 64 02     lds     r24, 0x0264
+     592:      88 23           and     r24, r24
+     594:      a9 f0           breq    .+42            ; 0x5c0 <decode_field+0x76>
+
+               i = (y - MIN_ABS_Y) / PAD_ROW_HEIGHT;
+               j = (x - MIN_ABS_X) / PAD_COL_WIDTH;
+     596:      c6 59           subi    r28, 0x96       ; 150
+     598:      d0 40           sbci    r29, 0x00       ; 0
+     59a:      ce 01           movw    r24, r28
+     59c:      61 eb           ldi     r22, 0xB1       ; 177
+     59e:      71 e0           ldi     r23, 0x01       ; 1
+     5a0:      0e 94 be 0b     call    0x177c  ; 0x177c <__udivmodhi4>
+
+               return_val = i * PAD_COLS + j + 1;
+     5a4:      46 2f           mov     r20, r22
+     5a6:      4f 5f           subi    r20, 0xFF       ; 255
+               y = y_mem;
+       }
+
+       if ((pressure == 0) && (last_pressure > 0)) {
+
+               i = (y - MIN_ABS_Y) / PAD_ROW_HEIGHT;
+     5a8:      22 5d           subi    r18, 0xD2       ; 210
+     5aa:      30 40           sbci    r19, 0x00       ; 0
+     5ac:      c9 01           movw    r24, r18
+     5ae:      6c ec           ldi     r22, 0xCC       ; 204
+     5b0:      71 e0           ldi     r23, 0x01       ; 1
+     5b2:      0e 94 be 0b     call    0x177c  ; 0x177c <__udivmodhi4>
+               j = (x - MIN_ABS_X) / PAD_COL_WIDTH;
+
+               return_val = i * PAD_COLS + j + 1;
+     5b6:      86 2f           mov     r24, r22
+     5b8:      88 0f           add     r24, r24
+     5ba:      86 0f           add     r24, r22
+     5bc:      48 0f           add     r20, r24
+     5be:      01 c0           rjmp    .+2             ; 0x5c2 <decode_field+0x78>
+*/
+
+uint8_t decode_field(void) {
+       static uint8_t last_pressure = 0;
+       uint8_t pressure, i, j;
+       uint8_t return_val = 0;
+     5c0:      40 e0           ldi     r20, 0x00       ; 0
+
+               return_val = i * PAD_COLS + j + 1;
+
+       }
+
+       last_pressure = pressure;
+     5c2:      10 93 64 02     sts     0x0264, r17
+       return return_val;
 }
-     532:      c9 01           movw    r24, r18
-     534:      08 95           ret
+     5c6:      84 2f           mov     r24, r20
+     5c8:      df 91           pop     r29
+     5ca:      cf 91           pop     r28
+     5cc:      1f 91           pop     r17
+     5ce:      08 95           ret
 
-00000536 <Usb2SerialTask>:
+000005d0 <Usb2SerialTask>:
 
 
 
 
 
 void Usb2SerialTask(void) {
-     536:      1f 93           push    r17
+     5d0:      1f 93           push    r17
                        static inline uint_reg_t GetGlobalInterruptMask(void)
                        {
                                GCC_MEMORY_BARRIER();
 
                                #if (ARCH == ARCH_AVR8)
                                return SREG;
-     538:      8f b7           in      r24, 0x3f       ; 63
+     5d2:      8f b7           in      r24, 0x3f       ; 63
                        static inline void GlobalInterruptDisable(void)
                        {
                                GCC_MEMORY_BARRIER();
 
                                #if (ARCH == ARCH_AVR8)
                                cli();
-     53a:      f8 94           cli
+     5d4:      f8 94           cli
                        uint16_t Count;
 
                        uint_reg_t CurrentGlobalInt = GetGlobalInterruptMask();
                        GlobalInterruptDisable();
 
                        Count = Buffer->Count;
-     53c:      20 91 4c 01     lds     r18, 0x014C
-     540:      30 91 4d 01     lds     r19, 0x014D
+     5d6:      20 91 52 01     lds     r18, 0x0152
+     5da:      30 91 53 01     lds     r19, 0x0153
                        static inline void SetGlobalInterruptMask(const uint_reg_t GlobalIntState)
                        {
                                GCC_MEMORY_BARRIER();
 
                                #if (ARCH == ARCH_AVR8)
                                SREG = GlobalIntState;
-     544:      8f bf           out     0x3f, r24       ; 63
+     5de:      8f bf           out     0x3f, r24       ; 63
   
     /* Only try to read in bytes from the CDC interface if the transmit buffer is not full */
     if (!(RingBuffer_IsFull(&USBtoUSART_Buffer)))
-     546:      80 91 4a 01     lds     r24, 0x014A
-     54a:      90 91 4b 01     lds     r25, 0x014B
-     54e:      28 17           cp      r18, r24
-     550:      39 07           cpc     r19, r25
-     552:      49 f0           breq    .+18            ; 0x566 <Usb2SerialTask+0x30>
+     5e0:      80 91 50 01     lds     r24, 0x0150
+     5e4:      90 91 51 01     lds     r25, 0x0151
+     5e8:      28 17           cp      r18, r24
+     5ea:      39 07           cpc     r19, r25
+     5ec:      49 f0           breq    .+18            ; 0x600 <Usb2SerialTask+0x30>
     {
       int16_t ReceivedByte = CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface);
-     554:      85 e2           ldi     r24, 0x25       ; 37
-     556:      91 e0           ldi     r25, 0x01       ; 1
-     558:      61 d7           rcall   .+3778          ; 0x141c <CDC_Device_ReceiveByte>
-     55a:      bc 01           movw    r22, r24
+     5ee:      8a e2           ldi     r24, 0x2A       ; 42
+     5f0:      91 e0           ldi     r25, 0x01       ; 1
+     5f2:      e3 d6           rcall   .+3526          ; 0x13ba <CDC_Device_ReceiveByte>
+     5f4:      bc 01           movw    r22, r24
 
       /* Read bytes from the USB OUT endpoint into the USART transmit buffer */
       if (!(ReceivedByte < 0))
-     55c:      97 fd           sbrc    r25, 7
-     55e:      03 c0           rjmp    .+6             ; 0x566 <Usb2SerialTask+0x30>
+     5f6:      97 fd           sbrc    r25, 7
+     5f8:      03 c0           rjmp    .+6             ; 0x600 <Usb2SerialTask+0x30>
         RingBuffer_Insert(&USBtoUSART_Buffer, ReceivedByte);
-     560:      82 e4           ldi     r24, 0x42       ; 66
-     562:      91 e0           ldi     r25, 0x01       ; 1
-     564:      05 de           rcall   .-1014          ; 0x170 <RingBuffer_Insert>
+     5fa:      88 e4           ldi     r24, 0x48       ; 72
+     5fc:      91 e0           ldi     r25, 0x01       ; 1
+     5fe:      b8 dd           rcall   .-1168          ; 0x170 <RingBuffer_Insert>
                        static inline uint_reg_t GetGlobalInterruptMask(void)
                        {
                                GCC_MEMORY_BARRIER();
 
                                #if (ARCH == ARCH_AVR8)
                                return SREG;
-     566:      2f b7           in      r18, 0x3f       ; 63
+     600:      2f b7           in      r18, 0x3f       ; 63
                        static inline void GlobalInterruptDisable(void)
                        {
                                GCC_MEMORY_BARRIER();
 
                                #if (ARCH == ARCH_AVR8)
                                cli();
-     568:      f8 94           cli
-     56a:      80 91 d8 01     lds     r24, 0x01D8
-     56e:      90 91 d9 01     lds     r25, 0x01D9
+     602:      f8 94           cli
+     604:      80 91 de 01     lds     r24, 0x01DE
+     608:      90 91 df 01     lds     r25, 0x01DF
                        static inline void SetGlobalInterruptMask(const uint_reg_t GlobalIntState)
                        {
                                GCC_MEMORY_BARRIER();
 
                                #if (ARCH == ARCH_AVR8)
                                SREG = GlobalIntState;
-     572:      2f bf           out     0x3f, r18       ; 63
+     60c:      2f bf           out     0x3f, r18       ; 63
     }
 
     /* Check if the UART receive buffer flush timer has expired or the buffer is nearly full */
     uint16_t BufferCount = RingBuffer_GetCount(&USARTtoUSB_Buffer);
     if (BufferCount)
-     574:      00 97           sbiw    r24, 0x00       ; 0
-     576:      01 f1           breq    .+64            ; 0x5b8 <Usb2SerialTask+0x82>
+     60e:      00 97           sbiw    r24, 0x00       ; 0
+     610:      01 f1           breq    .+64            ; 0x652 <Usb2SerialTask+0x82>
                         */
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UENUM = (Address & ENDPOINT_EPNUM_MASK);
-     578:      20 91 26 01     lds     r18, 0x0126
-     57c:      2f 70           andi    r18, 0x0F       ; 15
-     57e:      20 93 e9 00     sts     0x00E9, r18
+     612:      20 91 2b 01     lds     r18, 0x012B
+     616:      2f 70           andi    r18, 0x0F       ; 15
+     618:      20 93 e9 00     sts     0x00E9, r18
                         *  \return Boolean \c true if the current endpoint is ready for an IN packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsINReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsINReady(void)
                        {
                                return ((UEINTX & (1 << TXINI)) ? true : false);
-     582:      20 91 e8 00     lds     r18, 0x00E8
+     61c:      20 91 e8 00     lds     r18, 0x00E8
     {
       Endpoint_SelectEndpoint(VirtualSerial_CDC_Interface.Config.DataINEndpoint.Address);
 
       /* Check if a packet is already enqueued to the host - if so, we shouldn't try to send more data
        * until it completes as there is a chance nothing is listening and a lengthy timeout could occur */
       if (Endpoint_IsINReady())
-     586:      20 ff           sbrs    r18, 0
-     588:      17 c0           rjmp    .+46            ; 0x5b8 <Usb2SerialTask+0x82>
+     620:      20 ff           sbrs    r18, 0
+     622:      17 c0           rjmp    .+46            ; 0x652 <Usb2SerialTask+0x82>
       {
         /* Never send more than one bank size less one byte to the host at a time, so that we don't block
          * while a Zero Length Packet (ZLP) to terminate the transfer is sent if the host isn't listening */
         uint8_t BytesToSend = MIN(BufferCount, (CDC_TXRX_EPSIZE - 1));
-     58a:      80 31           cpi     r24, 0x10       ; 16
-     58c:      91 05           cpc     r25, r1
-     58e:      10 f0           brcs    .+4             ; 0x594 <Usb2SerialTask+0x5e>
-     590:      8f e0           ldi     r24, 0x0F       ; 15
-     592:      90 e0           ldi     r25, 0x00       ; 0
-     594:      18 2f           mov     r17, r24
+     624:      80 31           cpi     r24, 0x10       ; 16
+     626:      91 05           cpc     r25, r1
+     628:      10 f0           brcs    .+4             ; 0x62e <Usb2SerialTask+0x5e>
+     62a:      8f e0           ldi     r24, 0x0F       ; 15
+     62c:      90 e0           ldi     r25, 0x00       ; 0
+     62e:      18 2f           mov     r17, r24
 
         /* Read bytes from the USART receive buffer into the USB IN endpoint */
         while (BytesToSend--)
-     596:      0e c0           rjmp    .+28            ; 0x5b4 <Usb2SerialTask+0x7e>
+     630:      0e c0           rjmp    .+28            ; 0x64e <Usb2SerialTask+0x7e>
                 *  \return Next data element stored in the buffer.
                 */
                static inline uint8_t RingBuffer_Peek(RingBuffer_t* const Buffer) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(1);
                static inline uint8_t RingBuffer_Peek(RingBuffer_t* const Buffer)
                {
                        return *Buffer->Out;
-     598:      e0 91 d0 01     lds     r30, 0x01D0
-     59c:      f0 91 d1 01     lds     r31, 0x01D1
+     632:      e0 91 d6 01     lds     r30, 0x01D6
+     636:      f0 91 d7 01     lds     r31, 0x01D7
         {
           /* Try to send the next byte of data to the host, abort if there is an error without dequeuing */
           if (CDC_Device_SendByte(&VirtualSerial_CDC_Interface,
-     5a0:      85 e2           ldi     r24, 0x25       ; 37
-     5a2:      91 e0           ldi     r25, 0x01       ; 1
-     5a4:      60 81           ld      r22, Z
-     5a6:      c9 d6           rcall   .+3474          ; 0x133a <CDC_Device_SendByte>
-     5a8:      11 50           subi    r17, 0x01       ; 1
-     5aa:      88 23           and     r24, r24
-     5ac:      29 f4           brne    .+10            ; 0x5b8 <Usb2SerialTask+0x82>
+     63a:      8a e2           ldi     r24, 0x2A       ; 42
+     63c:      91 e0           ldi     r25, 0x01       ; 1
+     63e:      60 81           ld      r22, Z
+     640:      4b d6           rcall   .+3222          ; 0x12d8 <CDC_Device_SendByte>
+     642:      11 50           subi    r17, 0x01       ; 1
+     644:      88 23           and     r24, r24
+     646:      29 f4           brne    .+10            ; 0x652 <Usb2SerialTask+0x82>
           {
             break;
           }
 
           /* Dequeue the already sent byte from the buffer now we have confirmed that no transmission error occurred */
           RingBuffer_Remove(&USARTtoUSB_Buffer);
-     5ae:      8e ec           ldi     r24, 0xCE       ; 206
-     5b0:      91 e0           ldi     r25, 0x01       ; 1
-     5b2:      f9 dd           rcall   .-1038          ; 0x1a6 <RingBuffer_Remove>
+     648:      84 ed           ldi     r24, 0xD4       ; 212
+     64a:      91 e0           ldi     r25, 0x01       ; 1
+     64c:      ac dd           rcall   .-1192          ; 0x1a6 <RingBuffer_Remove>
         /* Never send more than one bank size less one byte to the host at a time, so that we don't block
          * while a Zero Length Packet (ZLP) to terminate the transfer is sent if the host isn't listening */
         uint8_t BytesToSend = MIN(BufferCount, (CDC_TXRX_EPSIZE - 1));
 
         /* Read bytes from the USART receive buffer into the USB IN endpoint */
         while (BytesToSend--)
-     5b4:      11 23           and     r17, r17
-     5b6:      81 f7           brne    .-32            ; 0x598 <Usb2SerialTask+0x62>
+     64e:      11 23           and     r17, r17
+     650:      81 f7           brne    .-32            ; 0x632 <Usb2SerialTask+0x62>
                        static inline uint_reg_t GetGlobalInterruptMask(void)
                        {
                                GCC_MEMORY_BARRIER();
 
                                #if (ARCH == ARCH_AVR8)
                                return SREG;
-     5b8:      2f b7           in      r18, 0x3f       ; 63
+     652:      2f b7           in      r18, 0x3f       ; 63
                        static inline void GlobalInterruptDisable(void)
                        {
                                GCC_MEMORY_BARRIER();
 
                                #if (ARCH == ARCH_AVR8)
                                cli();
-     5ba:      f8 94           cli
+     654:      f8 94           cli
                        uint16_t Count;
 
                        uint_reg_t CurrentGlobalInt = GetGlobalInterruptMask();
                        GlobalInterruptDisable();
 
                        Count = Buffer->Count;
-     5bc:      80 91 4c 01     lds     r24, 0x014C
-     5c0:      90 91 4d 01     lds     r25, 0x014D
+     656:      80 91 52 01     lds     r24, 0x0152
+     65a:      90 91 53 01     lds     r25, 0x0153
                        static inline void SetGlobalInterruptMask(const uint_reg_t GlobalIntState)
                        {
                                GCC_MEMORY_BARRIER();
 
                                #if (ARCH == ARCH_AVR8)
                                SREG = GlobalIntState;
-     5c4:      2f bf           out     0x3f, r18       ; 63
+     65e:      2f bf           out     0x3f, r18       ; 63
         }
       }
     }
 
     /* Load the next byte from the USART transmit buffer into the USART */
     if (!(RingBuffer_IsEmpty(&USBtoUSART_Buffer))) {
-     5c6:      00 97           sbiw    r24, 0x00       ; 0
-     5c8:      49 f0           breq    .+18            ; 0x5dc <Usb2SerialTask+0xa6>
+     660:      00 97           sbiw    r24, 0x00       ; 0
+     662:      49 f0           breq    .+18            ; 0x676 <Usb2SerialTask+0xa6>
       Serial_SendByte(RingBuffer_Remove(&USBtoUSART_Buffer));
-     5ca:      82 e4           ldi     r24, 0x42       ; 66
-     5cc:      91 e0           ldi     r25, 0x01       ; 1
-     5ce:      eb dd           rcall   .-1066          ; 0x1a6 <RingBuffer_Remove>
+     664:      88 e4           ldi     r24, 0x48       ; 72
+     666:      91 e0           ldi     r25, 0x01       ; 1
+     668:      9e dd           rcall   .-1220          ; 0x1a6 <RingBuffer_Remove>
                         *  \param[in] DataByte  Byte to transmit through the USART.
                         */
                        static inline void Serial_SendByte(const char DataByte) ATTR_ALWAYS_INLINE;
                        static inline void Serial_SendByte(const char DataByte)
                        {
                                while (!(UCSR1A & (1 << UDRE1)));
-     5d0:      90 91 c8 00     lds     r25, 0x00C8
-     5d4:      95 ff           sbrs    r25, 5
-     5d6:      fc cf           rjmp    .-8             ; 0x5d0 <Usb2SerialTask+0x9a>
+     66a:      90 91 c8 00     lds     r25, 0x00C8
+     66e:      95 ff           sbrs    r25, 5
+     670:      fc cf           rjmp    .-8             ; 0x66a <Usb2SerialTask+0x9a>
                                UDR1 = DataByte;
-     5d8:      80 93 ce 00     sts     0x00CE, r24
+     672:      80 93 ce 00     sts     0x00CE, r24
 //      dummy = RingBuffer_Remove(&USBtoUSART_Buffer);
 //      sendPayload(&dummy,1,0);
     }
     CDC_Device_USBTask(&VirtualSerial_CDC_Interface);
-     5dc:      85 e2           ldi     r24, 0x25       ; 37
-     5de:      91 e0           ldi     r25, 0x01       ; 1
-     5e0:      06 d7           rcall   .+3596          ; 0x13ee <CDC_Device_USBTask>
+     676:      8a e2           ldi     r24, 0x2A       ; 42
+     678:      91 e0           ldi     r25, 0x01       ; 1
+     67a:      88 d6           rcall   .+3344          ; 0x138c <CDC_Device_USBTask>
     USB_USBTask();
-     5e2:      c0 d5           rcall   .+2944          ; 0x1164 <USB_USBTask>
+     67c:      42 d5           rcall   .+2692          ; 0x1102 <USB_USBTask>
   
 }
-     5e4:      1f 91           pop     r17
-     5e6:      08 95           ret
+     67e:      1f 91           pop     r17
+     680:      08 95           ret
 
-000005e8 <SetupHardware>:
+00000682 <SetupHardware>:
 
 /** Configures the board hardware and chip peripherals for the demo's functionality. */
 void SetupHardware(void)
 {
        /* Disable watchdog if enabled by bootloader/fuses */
        MCUSR &= ~(1 << WDRF);
-     5e8:      84 b7           in      r24, 0x34       ; 52
-     5ea:      87 7f           andi    r24, 0xF7       ; 247
-     5ec:      84 bf           out     0x34, r24       ; 52
+     682:      84 b7           in      r24, 0x34       ; 52
+     684:      87 7f           andi    r24, 0xF7       ; 247
+     686:      84 bf           out     0x34, r24       ; 52
        wdt_disable();
-     5ee:      88 e1           ldi     r24, 0x18       ; 24
-     5f0:      0f b6           in      r0, 0x3f        ; 63
-     5f2:      f8 94           cli
-     5f4:      80 93 60 00     sts     0x0060, r24
-     5f8:      10 92 60 00     sts     0x0060, r1
-     5fc:      0f be           out     0x3f, r0        ; 63
+     688:      88 e1           ldi     r24, 0x18       ; 24
+     68a:      0f b6           in      r0, 0x3f        ; 63
+     68c:      f8 94           cli
+     68e:      80 93 60 00     sts     0x0060, r24
+     692:      10 92 60 00     sts     0x0060, r1
+     696:      0f be           out     0x3f, r0        ; 63
 The type of x is clock_div_t.
 */
 void clock_prescale_set(clock_div_t __x)
 {
     uint8_t __tmp = _BV(CLKPCE);
     __asm__ __volatile__ (
-     5fe:      90 e0           ldi     r25, 0x00       ; 0
-     600:      80 e8           ldi     r24, 0x80       ; 128
-     602:      0f b6           in      r0, 0x3f        ; 63
-     604:      f8 94           cli
-     606:      80 93 61 00     sts     0x0061, r24
-     60a:      90 93 61 00     sts     0x0061, r25
-     60e:      0f be           out     0x3f, r0        ; 63
+     698:      90 e0           ldi     r25, 0x00       ; 0
+     69a:      80 e8           ldi     r24, 0x80       ; 128
+     69c:      0f b6           in      r0, 0x3f        ; 63
+     69e:      f8 94           cli
+     6a0:      80 93 61 00     sts     0x0061, r24
+     6a4:      90 93 61 00     sts     0x0061, r25
+     6a8:      0f be           out     0x3f, r0        ; 63
        clock_prescale_set(clock_div_1);
 
        /* Hardware Initialization */
 //     LEDs_Init();
        USB_Init();
 }
-     610:      59 c3           rjmp    .+1714          ; 0xcc4 <USB_Init>
+     6aa:      db c2           rjmp    .+1462          ; 0xc62 <USB_Init>
 
-00000612 <EVENT_USB_Device_Connect>:
+000006ac <EVENT_USB_Device_Connect>:
 
 /** Event handler for the library USB Connection event. */
 void EVENT_USB_Device_Connect(void)
 {
 //     LEDs_SetAllLEDs(LEDMASK_USB_ENUMERATING);
 }
-     612:      08 95           ret
+     6ac:      08 95           ret
 
-00000614 <EVENT_USB_Device_Disconnect>:
+000006ae <EVENT_USB_Device_Disconnect>:
 
 /** Event handler for the library USB Disconnection event. */
 void EVENT_USB_Device_Disconnect(void)
 {
 //     LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
 }
-     614:      08 95           ret
+     6ae:      08 95           ret
 
-00000616 <EVENT_USB_Device_ConfigurationChanged>:
+000006b0 <EVENT_USB_Device_ConfigurationChanged>:
 /** Event handler for the library USB Configuration Changed event. */
 void EVENT_USB_Device_ConfigurationChanged(void)
 {
        bool ConfigSuccess = true;
 
        ConfigSuccess &= CDC_Device_ConfigureEndpoints(&VirtualSerial_CDC_Interface);
-     616:      85 e2           ldi     r24, 0x25       ; 37
-     618:      91 e0           ldi     r25, 0x01       ; 1
+     6b0:      8a e2           ldi     r24, 0x2A       ; 42
+     6b2:      91 e0           ldi     r25, 0x01       ; 1
 
 //     LEDs_SetAllLEDs(ConfigSuccess ? LEDMASK_USB_READY : LEDMASK_USB_ERROR);
 }
-     61a:      6b c6           rjmp    .+3286          ; 0x12f2 <CDC_Device_ConfigureEndpoints>
+     6b4:      ed c5           rjmp    .+3034          ; 0x1290 <CDC_Device_ConfigureEndpoints>
 
-0000061c <EVENT_USB_Device_ControlRequest>:
+000006b6 <EVENT_USB_Device_ControlRequest>:
 
 /** Event handler for the library USB Control Request reception event. */
 void EVENT_USB_Device_ControlRequest(void)
 {
        CDC_Device_ProcessControlRequest(&VirtualSerial_CDC_Interface);
-     61c:      85 e2           ldi     r24, 0x25       ; 37
-     61e:      91 e0           ldi     r25, 0x01       ; 1
+     6b6:      8a e2           ldi     r24, 0x2A       ; 42
+     6b8:      91 e0           ldi     r25, 0x01       ; 1
 }
-     620:      bc c5           rjmp    .+2936          ; 0x119a <CDC_Device_ProcessControlRequest>
+     6ba:      3e c5           rjmp    .+2684          ; 0x1138 <CDC_Device_ProcessControlRequest>
 
-00000622 <__vector_23>:
+000006bc <__vector_23>:
 
 /** ISR to manage the reception of data from the serial port, placing received bytes into a circular buffer
  *  for later transmission to the host.
  */
 ISR(USART1_RX_vect, ISR_BLOCK)
 {
-     622:      1f 92           push    r1
-     624:      0f 92           push    r0
-     626:      0f b6           in      r0, 0x3f        ; 63
-     628:      0f 92           push    r0
-     62a:      11 24           eor     r1, r1
-     62c:      2f 93           push    r18
-     62e:      3f 93           push    r19
-     630:      4f 93           push    r20
-     632:      5f 93           push    r21
-     634:      6f 93           push    r22
-     636:      7f 93           push    r23
-     638:      8f 93           push    r24
-     63a:      9f 93           push    r25
-     63c:      af 93           push    r26
-     63e:      bf 93           push    r27
-     640:      ef 93           push    r30
-     642:      ff 93           push    r31
+     6bc:      1f 92           push    r1
+     6be:      0f 92           push    r0
+     6c0:      0f b6           in      r0, 0x3f        ; 63
+     6c2:      0f 92           push    r0
+     6c4:      11 24           eor     r1, r1
+     6c6:      2f 93           push    r18
+     6c8:      3f 93           push    r19
+     6ca:      4f 93           push    r20
+     6cc:      5f 93           push    r21
+     6ce:      6f 93           push    r22
+     6d0:      7f 93           push    r23
+     6d2:      8f 93           push    r24
+     6d4:      9f 93           push    r25
+     6d6:      af 93           push    r26
+     6d8:      bf 93           push    r27
+     6da:      ef 93           push    r30
+     6dc:      ff 93           push    r31
        uint8_t ReceivedByte = UDR1;
-     644:      60 91 ce 00     lds     r22, 0x00CE
+     6de:      60 91 ce 00     lds     r22, 0x00CE
 
        if (USB_DeviceState == DEVICE_STATE_Configured)
-     648:      8e b3           in      r24, 0x1e       ; 30
-     64a:      84 30           cpi     r24, 0x04       ; 4
-     64c:      19 f4           brne    .+6             ; 0x654 <__vector_23+0x32>
+     6e2:      8e b3           in      r24, 0x1e       ; 30
+     6e4:      84 30           cpi     r24, 0x04       ; 4
+     6e6:      19 f4           brne    .+6             ; 0x6ee <__vector_23+0x32>
          RingBuffer_Insert(&USARTtoUSB_Buffer, ReceivedByte);
-     64e:      8e ec           ldi     r24, 0xCE       ; 206
-     650:      91 e0           ldi     r25, 0x01       ; 1
-     652:      8e dd           rcall   .-1252          ; 0x170 <RingBuffer_Insert>
+     6e8:      84 ed           ldi     r24, 0xD4       ; 212
+     6ea:      91 e0           ldi     r25, 0x01       ; 1
+     6ec:      41 dd           rcall   .-1406          ; 0x170 <RingBuffer_Insert>
 }
-     654:      ff 91           pop     r31
-     656:      ef 91           pop     r30
-     658:      bf 91           pop     r27
-     65a:      af 91           pop     r26
-     65c:      9f 91           pop     r25
-     65e:      8f 91           pop     r24
-     660:      7f 91           pop     r23
-     662:      6f 91           pop     r22
-     664:      5f 91           pop     r21
-     666:      4f 91           pop     r20
-     668:      3f 91           pop     r19
-     66a:      2f 91           pop     r18
-     66c:      0f 90           pop     r0
-     66e:      0f be           out     0x3f, r0        ; 63
-     670:      0f 90           pop     r0
-     672:      1f 90           pop     r1
-     674:      18 95           reti
-
-00000676 <EVENT_CDC_Device_LineEncodingChanged>:
+     6ee:      ff 91           pop     r31
+     6f0:      ef 91           pop     r30
+     6f2:      bf 91           pop     r27
+     6f4:      af 91           pop     r26
+     6f6:      9f 91           pop     r25
+     6f8:      8f 91           pop     r24
+     6fa:      7f 91           pop     r23
+     6fc:      6f 91           pop     r22
+     6fe:      5f 91           pop     r21
+     700:      4f 91           pop     r20
+     702:      3f 91           pop     r19
+     704:      2f 91           pop     r18
+     706:      0f 90           pop     r0
+     708:      0f be           out     0x3f, r0        ; 63
+     70a:      0f 90           pop     r0
+     70c:      1f 90           pop     r1
+     70e:      18 95           reti
+
+00000710 <EVENT_CDC_Device_LineEncodingChanged>:
 /** Event handler for the CDC Class driver Line Encoding Changed event.
  *
  *  \param[in] CDCInterfaceInfo  Pointer to the CDC class interface configuration structure being referenced
  */
 void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
 {
-     676:      8f 92           push    r8
-     678:      9f 92           push    r9
-     67a:      af 92           push    r10
-     67c:      bf 92           push    r11
-     67e:      cf 92           push    r12
-     680:      df 92           push    r13
-     682:      ef 92           push    r14
-     684:      ff 92           push    r15
-     686:      1f 93           push    r17
-     688:      fc 01           movw    r30, r24
+     710:      8f 92           push    r8
+     712:      9f 92           push    r9
+     714:      af 92           push    r10
+     716:      bf 92           push    r11
+     718:      cf 92           push    r12
+     71a:      df 92           push    r13
+     71c:      ef 92           push    r14
+     71e:      ff 92           push    r15
+     720:      1f 93           push    r17
+     722:      fc 01           movw    r30, r24
        uint8_t ConfigMask = 0;
 
        switch (CDCInterfaceInfo->State.LineEncoding.ParityType)
-     68a:      a1 8d           ldd     r26, Z+25       ; 0x19
-     68c:      a1 50           subi    r26, 0x01       ; 1
-     68e:      a2 30           cpi     r26, 0x02       ; 2
-     690:      28 f4           brcc    .+10            ; 0x69c <EVENT_CDC_Device_LineEncodingChanged+0x26>
-     692:      b0 e0           ldi     r27, 0x00       ; 0
-     694:      a0 5c           subi    r26, 0xC0       ; 192
-     696:      be 4f           sbci    r27, 0xFE       ; 254
-     698:      1c 91           ld      r17, X
-     69a:      01 c0           rjmp    .+2             ; 0x69e <EVENT_CDC_Device_LineEncodingChanged+0x28>
-     69c:      10 e0           ldi     r17, 0x00       ; 0
+     724:      a1 8d           ldd     r26, Z+25       ; 0x19
+     726:      a1 50           subi    r26, 0x01       ; 1
+     728:      a2 30           cpi     r26, 0x02       ; 2
+     72a:      28 f4           brcc    .+10            ; 0x736 <EVENT_CDC_Device_LineEncodingChanged+0x26>
+     72c:      b0 e0           ldi     r27, 0x00       ; 0
+     72e:      ab 5b           subi    r26, 0xBB       ; 187
+     730:      be 4f           sbci    r27, 0xFE       ; 254
+     732:      1c 91           ld      r17, X
+     734:      01 c0           rjmp    .+2             ; 0x738 <EVENT_CDC_Device_LineEncodingChanged+0x28>
+     736:      10 e0           ldi     r17, 0x00       ; 0
                case CDC_PARITY_Even:
                        ConfigMask = (1 << UPM11);
                        break;
        }
 
        if (CDCInterfaceInfo->State.LineEncoding.CharFormat == CDC_LINEENCODING_TwoStopBits)
-     69e:      80 8d           ldd     r24, Z+24       ; 0x18
-     6a0:      82 30           cpi     r24, 0x02       ; 2
-     6a2:      09 f4           brne    .+2             ; 0x6a6 <EVENT_CDC_Device_LineEncodingChanged+0x30>
+     738:      80 8d           ldd     r24, Z+24       ; 0x18
+     73a:      82 30           cpi     r24, 0x02       ; 2
+     73c:      09 f4           brne    .+2             ; 0x740 <EVENT_CDC_Device_LineEncodingChanged+0x30>
          ConfigMask |= (1 << USBS1);
-     6a4:      18 60           ori     r17, 0x08       ; 8
+     73e:      18 60           ori     r17, 0x08       ; 8
 
        switch (CDCInterfaceInfo->State.LineEncoding.DataBits)
-     6a6:      82 8d           ldd     r24, Z+26       ; 0x1a
-     6a8:      87 30           cpi     r24, 0x07       ; 7
-     6aa:      31 f0           breq    .+12            ; 0x6b8 <EVENT_CDC_Device_LineEncodingChanged+0x42>
-     6ac:      88 30           cpi     r24, 0x08       ; 8
-     6ae:      31 f0           breq    .+12            ; 0x6bc <EVENT_CDC_Device_LineEncodingChanged+0x46>
-     6b0:      86 30           cpi     r24, 0x06       ; 6
-     6b2:      29 f4           brne    .+10            ; 0x6be <EVENT_CDC_Device_LineEncodingChanged+0x48>
+     740:      82 8d           ldd     r24, Z+26       ; 0x1a
+     742:      87 30           cpi     r24, 0x07       ; 7
+     744:      31 f0           breq    .+12            ; 0x752 <EVENT_CDC_Device_LineEncodingChanged+0x42>
+     746:      88 30           cpi     r24, 0x08       ; 8
+     748:      31 f0           breq    .+12            ; 0x756 <EVENT_CDC_Device_LineEncodingChanged+0x46>
+     74a:      86 30           cpi     r24, 0x06       ; 6
+     74c:      29 f4           brne    .+10            ; 0x758 <EVENT_CDC_Device_LineEncodingChanged+0x48>
        {
                case 6:
                        ConfigMask |= (1 << UCSZ10);
-     6b4:      12 60           ori     r17, 0x02       ; 2
+     74e:      12 60           ori     r17, 0x02       ; 2
                        break;
-     6b6:      03 c0           rjmp    .+6             ; 0x6be <EVENT_CDC_Device_LineEncodingChanged+0x48>
+     750:      03 c0           rjmp    .+6             ; 0x758 <EVENT_CDC_Device_LineEncodingChanged+0x48>
                case 7:
                        ConfigMask |= (1 << UCSZ11);
-     6b8:      14 60           ori     r17, 0x04       ; 4
+     752:      14 60           ori     r17, 0x04       ; 4
                        break;
-     6ba:      01 c0           rjmp    .+2             ; 0x6be <EVENT_CDC_Device_LineEncodingChanged+0x48>
+     754:      01 c0           rjmp    .+2             ; 0x758 <EVENT_CDC_Device_LineEncodingChanged+0x48>
                case 8:
                        ConfigMask |= ((1 << UCSZ11) | (1 << UCSZ10));
-     6bc:      16 60           ori     r17, 0x06       ; 6
+     756:      16 60           ori     r17, 0x06       ; 6
                        break;
        }
 
        /* Must turn off USART before reconfiguring it, otherwise incorrect operation may occur */
        UCSR1B = 0;
-     6be:      10 92 c9 00     sts     0x00C9, r1
+     758:      10 92 c9 00     sts     0x00C9, r1
        UCSR1A = 0;
-     6c2:      10 92 c8 00     sts     0x00C8, r1
+     75c:      10 92 c8 00     sts     0x00C8, r1
        UCSR1C = 0;
-     6c6:      10 92 ca 00     sts     0x00CA, r1
+     760:      10 92 ca 00     sts     0x00CA, r1
 
        /* Set the new baud rate before configuring the USART */
        UBRR1  = SERIAL_2X_UBBRVAL(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS);
-     6ca:      c4 88           ldd     r12, Z+20       ; 0x14
-     6cc:      d5 88           ldd     r13, Z+21       ; 0x15
-     6ce:      e6 88           ldd     r14, Z+22       ; 0x16
-     6d0:      f7 88           ldd     r15, Z+23       ; 0x17
-     6d2:      c7 01           movw    r24, r14
-     6d4:      b6 01           movw    r22, r12
-     6d6:      96 95           lsr     r25
-     6d8:      87 95           ror     r24
-     6da:      77 95           ror     r23
-     6dc:      67 95           ror     r22
-     6de:      c9 d7           rcall   .+3986          ; 0x1672 <__floatunsisf>
-     6e0:      20 e0           ldi     r18, 0x00       ; 0
-     6e2:      34 e2           ldi     r19, 0x24       ; 36
-     6e4:      44 ef           ldi     r20, 0xF4       ; 244
-     6e6:      59 e4           ldi     r21, 0x49       ; 73
-     6e8:      c8 d6           rcall   .+3472          ; 0x147a <__addsf3>
-     6ea:      4b 01           movw    r8, r22
-     6ec:      5c 01           movw    r10, r24
-     6ee:      c7 01           movw    r24, r14
-     6f0:      b6 01           movw    r22, r12
-     6f2:      bf d7           rcall   .+3966          ; 0x1672 <__floatunsisf>
-     6f4:      9b 01           movw    r18, r22
-     6f6:      ac 01           movw    r20, r24
-     6f8:      c5 01           movw    r24, r10
-     6fa:      b4 01           movw    r22, r8
-     6fc:      26 d7           rcall   .+3660          ; 0x154a <__divsf3>
-     6fe:      20 e0           ldi     r18, 0x00       ; 0
-     700:      30 e0           ldi     r19, 0x00       ; 0
-     702:      40 e8           ldi     r20, 0x80       ; 128
-     704:      5f e3           ldi     r21, 0x3F       ; 63
-     706:      b8 d6           rcall   .+3440          ; 0x1478 <__subsf3>
-     708:      88 d7           rcall   .+3856          ; 0x161a <__fixunssfsi>
-     70a:      70 93 cd 00     sts     0x00CD, r23
-     70e:      60 93 cc 00     sts     0x00CC, r22
+     764:      c4 88           ldd     r12, Z+20       ; 0x14
+     766:      d5 88           ldd     r13, Z+21       ; 0x15
+     768:      e6 88           ldd     r14, Z+22       ; 0x16
+     76a:      f7 88           ldd     r15, Z+23       ; 0x17
+     76c:      c7 01           movw    r24, r14
+     76e:      b6 01           movw    r22, r12
+     770:      96 95           lsr     r25
+     772:      87 95           ror     r24
+     774:      77 95           ror     r23
+     776:      67 95           ror     r22
+     778:      4b d7           rcall   .+3734          ; 0x1610 <__floatunsisf>
+     77a:      20 e0           ldi     r18, 0x00       ; 0
+     77c:      34 e2           ldi     r19, 0x24       ; 36
+     77e:      44 ef           ldi     r20, 0xF4       ; 244
+     780:      59 e4           ldi     r21, 0x49       ; 73
+     782:      4a d6           rcall   .+3220          ; 0x1418 <__addsf3>
+     784:      4b 01           movw    r8, r22
+     786:      5c 01           movw    r10, r24
+     788:      c7 01           movw    r24, r14
+     78a:      b6 01           movw    r22, r12
+     78c:      41 d7           rcall   .+3714          ; 0x1610 <__floatunsisf>
+     78e:      9b 01           movw    r18, r22
+     790:      ac 01           movw    r20, r24
+     792:      c5 01           movw    r24, r10
+     794:      b4 01           movw    r22, r8
+     796:      a8 d6           rcall   .+3408          ; 0x14e8 <__divsf3>
+     798:      20 e0           ldi     r18, 0x00       ; 0
+     79a:      30 e0           ldi     r19, 0x00       ; 0
+     79c:      40 e8           ldi     r20, 0x80       ; 128
+     79e:      5f e3           ldi     r21, 0x3F       ; 63
+     7a0:      3a d6           rcall   .+3188          ; 0x1416 <__subsf3>
+     7a2:      0a d7           rcall   .+3604          ; 0x15b8 <__fixunssfsi>
+     7a4:      70 93 cd 00     sts     0x00CD, r23
+     7a8:      60 93 cc 00     sts     0x00CC, r22
 
        /* Reconfigure the USART in double speed mode for a wider baud rate range at the expense of accuracy */
        UCSR1C = ConfigMask;
-     712:      10 93 ca 00     sts     0x00CA, r17
+     7ac:      10 93 ca 00     sts     0x00CA, r17
        UCSR1A = (1 << U2X1);
-     716:      82 e0           ldi     r24, 0x02       ; 2
-     718:      80 93 c8 00     sts     0x00C8, r24
+     7b0:      82 e0           ldi     r24, 0x02       ; 2
+     7b2:      80 93 c8 00     sts     0x00C8, r24
        UCSR1B = ((1 << RXCIE1) | (1 << TXEN1) | (1 << RXEN1));
-     71c:      88 e9           ldi     r24, 0x98       ; 152
-     71e:      80 93 c9 00     sts     0x00C9, r24
+     7b6:      88 e9           ldi     r24, 0x98       ; 152
+     7b8:      80 93 c9 00     sts     0x00C9, r24
 }
-     722:      1f 91           pop     r17
-     724:      ff 90           pop     r15
-     726:      ef 90           pop     r14
-     728:      df 90           pop     r13
-     72a:      cf 90           pop     r12
-     72c:      bf 90           pop     r11
-     72e:      af 90           pop     r10
-     730:      9f 90           pop     r9
-     732:      8f 90           pop     r8
-     734:      08 95           ret
+     7bc:      1f 91           pop     r17
+     7be:      ff 90           pop     r15
+     7c0:      ef 90           pop     r14
+     7c2:      df 90           pop     r13
+     7c4:      cf 90           pop     r12
+     7c6:      bf 90           pop     r11
+     7c8:      af 90           pop     r10
+     7ca:      9f 90           pop     r9
+     7cc:      8f 90           pop     r8
+     7ce:      08 95           ret
 
-00000736 <uart_putc>:
+000007d0 <uart_putc>:
 
 
 
 
 void uart_putc(unsigned char data)
 {
-     736:      68 2f           mov     r22, r24
+     7d0:      68 2f           mov     r22, r24
 
       if (USB_DeviceState == DEVICE_STATE_Configured){
-     738:      8e b3           in      r24, 0x1e       ; 30
-     73a:      84 30           cpi     r24, 0x04       ; 4
-     73c:      19 f4           brne    .+6             ; 0x744 <uart_putc+0xe>
+     7d2:      8e b3           in      r24, 0x1e       ; 30
+     7d4:      84 30           cpi     r24, 0x04       ; 4
+     7d6:      19 f4           brne    .+6             ; 0x7de <uart_putc+0xe>
         RingBuffer_Insert(&USARTtoUSB_Buffer, data);
-     73e:      8e ec           ldi     r24, 0xCE       ; 206
-     740:      91 e0           ldi     r25, 0x01       ; 1
-     742:      16 cd           rjmp    .-1492          ; 0x170 <RingBuffer_Insert>
-     744:      08 95           ret
+     7d8:      84 ed           ldi     r24, 0xD4       ; 212
+     7da:      91 e0           ldi     r25, 0x01       ; 1
+     7dc:      c9 cc           rjmp    .-1646          ; 0x170 <RingBuffer_Insert>
+     7de:      08 95           ret
 
-00000746 <uart_puts>:
+000007e0 <uart_puts>:
       }
   
 }
 
 void uart_puts(const char *s )
 {
-     746:      ef 92           push    r14
-     748:      ff 92           push    r15
-     74a:      cf 93           push    r28
-     74c:      df 93           push    r29
-     74e:      e8 2e           mov     r14, r24
-     750:      e7 01           movw    r28, r14
-     752:      7e 01           movw    r14, r28
-     754:      f9 2e           mov     r15, r25
-     756:      e7 01           movw    r28, r14
+     7e0:      ef 92           push    r14
+     7e2:      ff 92           push    r15
+     7e4:      cf 93           push    r28
+     7e6:      df 93           push    r29
+     7e8:      e8 2e           mov     r14, r24
+     7ea:      e7 01           movw    r28, r14
+     7ec:      7e 01           movw    r14, r28
+     7ee:      f9 2e           mov     r15, r25
+     7f0:      e7 01           movw    r28, r14
     while (*s) 
-     758:      01 c0           rjmp    .+2             ; 0x75c <uart_puts+0x16>
+     7f2:      01 c0           rjmp    .+2             ; 0x7f6 <uart_puts+0x16>
       uart_putc(*s++);
-     75a:      ed df           rcall   .-38            ; 0x736 <uart_putc>
+     7f4:      ed df           rcall   .-38            ; 0x7d0 <uart_putc>
   
 }
 
 void uart_puts(const char *s )
 {
     while (*s) 
-     75c:      89 91           ld      r24, Y+
-     75e:      88 23           and     r24, r24
-     760:      e1 f7           brne    .-8             ; 0x75a <uart_puts+0x14>
+     7f6:      89 91           ld      r24, Y+
+     7f8:      88 23           and     r24, r24
+     7fa:      e1 f7           brne    .-8             ; 0x7f4 <uart_puts+0x14>
       uart_putc(*s++);
 
 }/* uart_puts */
-     762:      df 91           pop     r29
-     764:      cf 91           pop     r28
-     766:      ff 90           pop     r15
-     768:      ef 90           pop     r14
-     76a:      08 95           ret
-
-0000076c <my_uitoa>:
-
-
-// convert an unsigned integer to string
-void my_uitoa(uint32_t zahl, char* string, uint8_t no_digits) {
-     76c:      2f 92           push    r2
-     76e:      3f 92           push    r3
-     770:      4f 92           push    r4
-     772:      5f 92           push    r5
-     774:      6f 92           push    r6
-     776:      7f 92           push    r7
-     778:      8f 92           push    r8
-     77a:      9f 92           push    r9
-     77c:      af 92           push    r10
-     77e:      bf 92           push    r11
-     780:      cf 92           push    r12
-     782:      df 92           push    r13
-     784:      ef 92           push    r14
-     786:      ff 92           push    r15
-     788:      0f 93           push    r16
-     78a:      1f 93           push    r17
-     78c:      cf 93           push    r28
-     78e:      df 93           push    r29
-     790:      7b 01           movw    r14, r22
-     792:      8c 01           movw    r16, r24
-  int8_t i; // schleifenzähler
-
-  string[no_digits] = '\0'; // String Terminator
-     794:      82 2f           mov     r24, r18
-     796:      90 e0           ldi     r25, 0x00       ; 0
-     798:      fa 01           movw    r30, r20
-     79a:      e8 0f           add     r30, r24
-     79c:      f9 1f           adc     r31, r25
-     79e:      10 82           st      Z, r1
-  for (i = (no_digits - 1); i >= 0; i--) {
-     7a0:      d2 2e           mov     r13, r18
-     7a2:      da 94           dec     r13
-
-}/* uart_puts */
+     7fc:      df 91           pop     r29
+     7fe:      cf 91           pop     r28
+     800:      ff 90           pop     r15
+     802:      ef 90           pop     r14
+     804:      08 95           ret
 
-
-// convert an unsigned integer to string
-void my_uitoa(uint32_t zahl, char* string, uint8_t no_digits) {
-     7a4:      4d 2c           mov     r4, r13
-     7a6:      55 24           eor     r5, r5
-     7a8:      47 fc           sbrc    r4, 7
-     7aa:      50 94           com     r5
-     7ac:      ea 01           movw    r28, r20
-     7ae:      c4 0d           add     r28, r4
-     7b0:      d5 1d           adc     r29, r5
-  int8_t i; // schleifenzähler
-
-  string[no_digits] = '\0'; // String Terminator
-  for (i = (no_digits - 1); i >= 0; i--) {
-     7b2:      aa 24           eor     r10, r10
-     7b4:      bb 24           eor     r11, r11
-    if (zahl == 0 && i < (no_digits - 1)) {
-      string[i] = ' ';
-    } else {
-      string[i] = (zahl % 10) + '0';
-     7b6:      ba e0           ldi     r27, 0x0A       ; 10
-     7b8:      6b 2e           mov     r6, r27
-     7ba:      71 2c           mov     r7, r1
-     7bc:      81 2c           mov     r8, r1
-     7be:      91 2c           mov     r9, r1
-void my_uitoa(uint32_t zahl, char* string, uint8_t no_digits) {
-  int8_t i; // schleifenzähler
-
-  string[no_digits] = '\0'; // String Terminator
-  for (i = (no_digits - 1); i >= 0; i--) {
-    if (zahl == 0 && i < (no_digits - 1)) {
-     7c0:      1c 01           movw    r2, r24
-     7c2:      08 94           sec
-     7c4:      21 08           sbc     r2, r1
-     7c6:      31 08           sbc     r3, r1
-      string[i] = ' ';
-     7c8:      a0 e2           ldi     r26, 0x20       ; 32
-     7ca:      ca 2e           mov     r12, r26
-// convert an unsigned integer to string
-void my_uitoa(uint32_t zahl, char* string, uint8_t no_digits) {
-  int8_t i; // schleifenzähler
-
-  string[no_digits] = '\0'; // String Terminator
-  for (i = (no_digits - 1); i >= 0; i--) {
-     7cc:      20 c0           rjmp    .+64            ; 0x80e <my_uitoa+0xa2>
-    if (zahl == 0 && i < (no_digits - 1)) {
-     7ce:      e1 14           cp      r14, r1
-     7d0:      f1 04           cpc     r15, r1
-     7d2:      01 05           cpc     r16, r1
-     7d4:      11 05           cpc     r17, r1
-     7d6:      41 f4           brne    .+16            ; 0x7e8 <my_uitoa+0x7c>
-
-}/* uart_puts */
-
-
-// convert an unsigned integer to string
-void my_uitoa(uint32_t zahl, char* string, uint8_t no_digits) {
-     7d8:      c5 01           movw    r24, r10
-     7da:      84 0d           add     r24, r4
-     7dc:      95 1d           adc     r25, r5
-  int8_t i; // schleifenzähler
-
-  string[no_digits] = '\0'; // String Terminator
-  for (i = (no_digits - 1); i >= 0; i--) {
-    if (zahl == 0 && i < (no_digits - 1)) {
-     7de:      82 15           cp      r24, r2
-     7e0:      93 05           cpc     r25, r3
-     7e2:      14 f4           brge    .+4             ; 0x7e8 <my_uitoa+0x7c>
-      string[i] = ' ';
-     7e4:      c8 82           st      Y, r12
-     7e6:      07 c0           rjmp    .+14            ; 0x7f6 <my_uitoa+0x8a>
-    } else {
-      string[i] = (zahl % 10) + '0';
-     7e8:      c8 01           movw    r24, r16
-     7ea:      b7 01           movw    r22, r14
-     7ec:      a4 01           movw    r20, r8
-     7ee:      93 01           movw    r18, r6
-     7f0:      f6 d7           rcall   .+4076          ; 0x17de <__udivmodsi4>
-     7f2:      60 5d           subi    r22, 0xD0       ; 208
-     7f4:      68 83           st      Y, r22
-    } // Modulo rechnen, dann den ASCII-Code von '0' addieren
-    zahl /= 10;
-     7f6:      c8 01           movw    r24, r16
-     7f8:      b7 01           movw    r22, r14
-     7fa:      a4 01           movw    r20, r8
-     7fc:      93 01           movw    r18, r6
-     7fe:      ef d7           rcall   .+4062          ; 0x17de <__udivmodsi4>
-     800:      79 01           movw    r14, r18
-     802:      8a 01           movw    r16, r20
-// convert an unsigned integer to string
-void my_uitoa(uint32_t zahl, char* string, uint8_t no_digits) {
-  int8_t i; // schleifenzähler
-
-  string[no_digits] = '\0'; // String Terminator
-  for (i = (no_digits - 1); i >= 0; i--) {
-     804:      da 94           dec     r13
-     806:      21 97           sbiw    r28, 0x01       ; 1
-     808:      08 94           sec
-     80a:      a1 08           sbc     r10, r1
-     80c:      b1 08           sbc     r11, r1
-     80e:      d7 fe           sbrs    r13, 7
-     810:      de cf           rjmp    .-68            ; 0x7ce <my_uitoa+0x62>
-      string[i] = (zahl % 10) + '0';
-    } // Modulo rechnen, dann den ASCII-Code von '0' addieren
-    zahl /= 10;
-  }
-
-}
-     812:      df 91           pop     r29
-     814:      cf 91           pop     r28
-     816:      1f 91           pop     r17
-     818:      0f 91           pop     r16
-     81a:      ff 90           pop     r15
-     81c:      ef 90           pop     r14
-     81e:      df 90           pop     r13
-     820:      cf 90           pop     r12
-     822:      bf 90           pop     r11
-     824:      af 90           pop     r10
-     826:      9f 90           pop     r9
-     828:      8f 90           pop     r8
-     82a:      7f 90           pop     r7
-     82c:      6f 90           pop     r6
-     82e:      5f 90           pop     r5
-     830:      4f 90           pop     r4
-     832:      3f 90           pop     r3
-     834:      2f 90           pop     r2
-     836:      08 95           ret
-
-00000838 <main>:
+00000806 <main>:
 
 /** Main program entry point. This routine contains the overall program flow, including initial
  *  setup of all components and the main program loop.
  */
 int main(void)
 {
-     838:      ff 92           push    r15
-     83a:      0f 93           push    r16
-     83c:      1f 93           push    r17
-     83e:      df 93           push    r29
-     840:      cf 93           push    r28
-     842:      cd b7           in      r28, 0x3d       ; 61
-     844:      de b7           in      r29, 0x3e       ; 62
-     846:      60 97           sbiw    r28, 0x10       ; 16
-     848:      0f b6           in      r0, 0x3f        ; 63
-     84a:      f8 94           cli
-     84c:      de bf           out     0x3e, r29       ; 62
-     84e:      0f be           out     0x3f, r0        ; 63
-     850:      cd bf           out     0x3d, r28       ; 61
+     806:      cf 93           push    r28
+     808:      df 93           push    r29
   char dummy;
   uint8_t field_val = 0;
   SetupHardware();
-     852:      ca de           rcall   .-620           ; 0x5e8 <SetupHardware>
+     80a:      3b df           rcall   .-394           ; 0x682 <SetupHardware>
 
 
 
   RingBuffer_InitBuffer(&USBtoUSART_Buffer, USBtoUSART_Buffer_Data, sizeof(USBtoUSART_Buffer_Data));
-     854:      82 e4           ldi     r24, 0x42       ; 66
-     856:      91 e0           ldi     r25, 0x01       ; 1
-     858:      6e e4           ldi     r22, 0x4E       ; 78
-     85a:      71 e0           ldi     r23, 0x01       ; 1
-     85c:      bd dc           rcall   .-1670          ; 0x1d8 <RingBuffer_InitBuffer.clone.0>
+     80c:      88 e4           ldi     r24, 0x48       ; 72
+     80e:      91 e0           ldi     r25, 0x01       ; 1
+     810:      64 e5           ldi     r22, 0x54       ; 84
+     812:      71 e0           ldi     r23, 0x01       ; 1
+     814:      e1 dc           rcall   .-1598          ; 0x1d8 <RingBuffer_InitBuffer.clone.0>
   RingBuffer_InitBuffer(&USARTtoUSB_Buffer, USARTtoUSB_Buffer_Data, sizeof(USARTtoUSB_Buffer_Data));
-     85e:      8e ec           ldi     r24, 0xCE       ; 206
-     860:      91 e0           ldi     r25, 0x01       ; 1
-     862:      6a ed           ldi     r22, 0xDA       ; 218
-     864:      71 e0           ldi     r23, 0x01       ; 1
-     866:      b8 dc           rcall   .-1680          ; 0x1d8 <RingBuffer_InitBuffer.clone.0>
+     816:      84 ed           ldi     r24, 0xD4       ; 212
+     818:      91 e0           ldi     r25, 0x01       ; 1
+     81a:      60 ee           ldi     r22, 0xE0       ; 224
+     81c:      71 e0           ldi     r23, 0x01       ; 1
+     81e:      dc dc           rcall   .-1608          ; 0x1d8 <RingBuffer_InitBuffer.clone.0>
                        static inline void GlobalInterruptEnable(void)
                        {
                                GCC_MEMORY_BARRIER();
 
                                #if (ARCH == ARCH_AVR8)
                                sei();
-     868:      78 94           sei
+     820:      78 94           sei
 
 //   LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
   GlobalInterruptEnable();
 
   touchpad_init(); // you need to call this to setup the I/O pin!
-     86a:      f8 dd           rcall   .-1040          ; 0x45c <touchpad_init>
-       #else
-               //round up by default
-               __ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
-       #endif
-
-       __builtin_avr_delay_cycles(__ticks_dc);
-     86c:      8f ef           ldi     r24, 0xFF       ; 255
-     86e:      99 e6           ldi     r25, 0x69       ; 105
-     870:      a8 e1           ldi     r26, 0x18       ; 24
-     872:      81 50           subi    r24, 0x01       ; 1
-     874:      90 40           sbci    r25, 0x00       ; 0
-     876:      a0 40           sbci    r26, 0x00       ; 0
-     878:      e1 f7           brne    .-8             ; 0x872 <main+0x3a>
-     87a:      00 c0           rjmp    .+0             ; 0x87c <main+0x44>
-     87c:      00 00           nop
+     822:      1c de           rcall   .-968           ; 0x45c <touchpad_init>
+     824:      8f ef           ldi     r24, 0xFF       ; 255
+     826:      99 e6           ldi     r25, 0x69       ; 105
+     828:      a8 e1           ldi     r26, 0x18       ; 24
+     82a:      81 50           subi    r24, 0x01       ; 1
+     82c:      90 40           sbci    r25, 0x00       ; 0
+     82e:      a0 40           sbci    r26, 0x00       ; 0
+     830:      e1 f7           brne    .-8             ; 0x82a <main+0x24>
+     832:      00 c0           rjmp    .+0             ; 0x834 <main+0x2e>
+     834:      00 00           nop
   _delay_ms(500);
   sei();
-     87e:      78 94           sei
-//   // end of keypad mode demo block
-// 
-// #elif DEMO_MODE == ABSOLUTE_MODE
-  // begin of keypad mode demo block
-//   uart_puts("you selected the absolute position demo modus:\n\r");
-  touchpad_set_abs_mode();// tell the touchpad you want to use it in the "absolute mode"
-     880:      fe dd           rcall   .-1028          ; 0x47e <touchpad_set_abs_mode>
-     882:      8f ef           ldi     r24, 0xFF       ; 255
-     884:      99 e6           ldi     r25, 0x69       ; 105
-     886:      a8 e1           ldi     r26, 0x18       ; 24
-     888:      81 50           subi    r24, 0x01       ; 1
-     88a:      90 40           sbci    r25, 0x00       ; 0
-     88c:      a0 40           sbci    r26, 0x00       ; 0
-     88e:      e1 f7           brne    .-8             ; 0x888 <main+0x50>
-     890:      00 c0           rjmp    .+0             ; 0x892 <main+0x5a>
-     892:      00 00           nop
-//  _delay_ms(1000);
-
-
-// end
-  
-  uint8_t loopcounter=0;
-     894:      ff 24           eor     r15, r15
-      continue;
-    }
+     836:      78 94           sei
+  //   -------------------------
+  //   | left  |  down | right |
+  //   -------------------------
 
-    touchpad_read(); // read data from the touchpad
-    uart_puts("x_pos: ");
-    my_uitoa(x_abs(),stringbuffer,4);// x_abs returns current x position of your finger
-     896:      8e 01           movw    r16, r28
-     898:      0f 5f           subi    r16, 0xFF       ; 255
-     89a:      1f 4f           sbci    r17, 0xFF       ; 255
-//   uart_puts("you selected the absolute position demo modus:\n\r");
-  touchpad_set_abs_mode();// tell the touchpad you want to use it in the "absolute mode"
-  _delay_ms(500);
-  while (1) {
+//   uart_puts("you selected the keypad demo modus:\n\r");
+  touchpad_set_abs_mode(); // keypad functionality uses the "absolute mode"
+     838:      22 de           rcall   .-956           ; 0x47e <touchpad_set_abs_mode>
 
+/** Main program entry point. This routine contains the overall program flow, including initial
+ *  setup of all components and the main program loop.
+ */
+int main(void)
+{
+     83a:      c0 e0           ldi     r28, 0x00       ; 0
+     83c:      d0 e0           ldi     r29, 0x00       ; 0
+//   uart_puts("you selected the keypad demo modus:\n\r");
+  touchpad_set_abs_mode(); // keypad functionality uses the "absolute mode"
+  while (1) {
+    
+    
     Usb2SerialTask();
-     89c:      4c de           rcall   .-872           ; 0x536 <Usb2SerialTask>
+     83e:      c8 de           rcall   .-624           ; 0x5d0 <Usb2SerialTask>
     loopcounter++;
-     89e:      f3 94           inc     r15
-    if(loopcounter) {
-     8a0:      e9 f7           brne    .-6             ; 0x89c <main+0x64>
+     840:      21 96           adiw    r28, 0x01       ; 1
+    if(loopcounter<2000) {
+     842:      97 e0           ldi     r25, 0x07       ; 7
+     844:      c0 3d           cpi     r28, 0xD0       ; 208
+     846:      d9 07           cpc     r29, r25
+     848:      d1 f7           brne    .-12            ; 0x83e <main+0x38>
       continue;
     }
-
-    touchpad_read(); // read data from the touchpad
-     8a2:      e4 dd           rcall   .-1080          ; 0x46c <touchpad_read>
-    uart_puts("x_pos: ");
-     8a4:      80 e0           ldi     r24, 0x00       ; 0
-     8a6:      91 e0           ldi     r25, 0x01       ; 1
-     8a8:      4e df           rcall   .-356           ; 0x746 <uart_puts>
-    my_uitoa(x_abs(),stringbuffer,4);// x_abs returns current x position of your finger
-     8aa:      08 de           rcall   .-1008          ; 0x4bc <x_abs>
-     8ac:      bc 01           movw    r22, r24
-     8ae:      80 e0           ldi     r24, 0x00       ; 0
-     8b0:      90 e0           ldi     r25, 0x00       ; 0
-     8b2:      a8 01           movw    r20, r16
-     8b4:      24 e0           ldi     r18, 0x04       ; 4
-     8b6:      5a df           rcall   .-332           ; 0x76c <my_uitoa>
-    uart_puts(stringbuffer);
-     8b8:      c8 01           movw    r24, r16
-     8ba:      45 df           rcall   .-374           ; 0x746 <uart_puts>
-    uart_puts("   y_pos: ");
-     8bc:      88 e0           ldi     r24, 0x08       ; 8
-     8be:      91 e0           ldi     r25, 0x01       ; 1
-     8c0:      42 df           rcall   .-380           ; 0x746 <uart_puts>
-    my_uitoa(y_abs(),stringbuffer,4);// y_abs returns current y position of your finger
-     8c2:      1a de           rcall   .-972           ; 0x4f8 <y_abs>
-     8c4:      bc 01           movw    r22, r24
-     8c6:      80 e0           ldi     r24, 0x00       ; 0
-     8c8:      90 e0           ldi     r25, 0x00       ; 0
-     8ca:      a8 01           movw    r20, r16
-     8cc:      24 e0           ldi     r18, 0x04       ; 4
-     8ce:      4e df           rcall   .-356           ; 0x76c <my_uitoa>
-    uart_puts(stringbuffer);
-     8d0:      c8 01           movw    r24, r16
-     8d2:      39 df           rcall   .-398           ; 0x746 <uart_puts>
-    uart_puts("   z_pressure: ");// z_pressure returns current "pressure" (contact area) of your finger
-     8d4:      83 e1           ldi     r24, 0x13       ; 19
-     8d6:      91 e0           ldi     r25, 0x01       ; 1
-     8d8:      36 df           rcall   .-404           ; 0x746 <uart_puts>
-    my_uitoa(z_pressure(),stringbuffer,4);
-     8da:      e5 dd           rcall   .-1078          ; 0x4a6 <z_pressure>
-     8dc:      68 2f           mov     r22, r24
-     8de:      70 e0           ldi     r23, 0x00       ; 0
-     8e0:      80 e0           ldi     r24, 0x00       ; 0
-     8e2:      90 e0           ldi     r25, 0x00       ; 0
-     8e4:      a8 01           movw    r20, r16
-     8e6:      24 e0           ldi     r18, 0x04       ; 4
-     8e8:      41 df           rcall   .-382           ; 0x76c <my_uitoa>
-    uart_puts(stringbuffer);
-     8ea:      c8 01           movw    r24, r16
-     8ec:      2c df           rcall   .-424           ; 0x746 <uart_puts>
-    uart_puts("\r");
-     8ee:      83 e2           ldi     r24, 0x23       ; 35
-     8f0:      91 e0           ldi     r25, 0x01       ; 1
-     8f2:      29 df           rcall   .-430           ; 0x746 <uart_puts>
-     8f4:      d3 cf           rjmp    .-90            ; 0x89c <main+0x64>
-
-000008f6 <CALLBACK_USB_GetDescriptor>:
+  loopcounter=0;
+
+    touchpad_read(); // read values from the touchpad
+     84a:      10 de           rcall   .-992           ; 0x46c <touchpad_read>
+
+    field_val = decode_field(); // decode_field returns the number of the
+     84c:      7e de           rcall   .-772           ; 0x54a <decode_field>
+    // touch button that was pressed last. or zero if nothing happened
+
+    switch (field_val) {
+     84e:      83 30           cpi     r24, 0x03       ; 3
+     850:      e9 f0           breq    .+58            ; 0x88c <main+0x86>
+     852:      84 30           cpi     r24, 0x04       ; 4
+     854:      28 f4           brcc    .+10            ; 0x860 <main+0x5a>
+     856:      81 30           cpi     r24, 0x01       ; 1
+     858:      b1 f0           breq    .+44            ; 0x886 <main+0x80>
+     85a:      82 30           cpi     r24, 0x02       ; 2
+     85c:      71 f7           brne    .-36            ; 0x83a <main+0x34>
+     85e:      0d c0           rjmp    .+26            ; 0x87a <main+0x74>
+     860:      85 30           cpi     r24, 0x05       ; 5
+     862:      71 f0           breq    .+28            ; 0x880 <main+0x7a>
+     864:      85 30           cpi     r24, 0x05       ; 5
+     866:      18 f0           brcs    .+6             ; 0x86e <main+0x68>
+     868:      86 30           cpi     r24, 0x06       ; 6
+     86a:      39 f7           brne    .-50            ; 0x83a <main+0x34>
+     86c:      03 c0           rjmp    .+6             ; 0x874 <main+0x6e>
+
+    case 4:
+      uart_puts("left\n\r");
+     86e:      80 e0           ldi     r24, 0x00       ; 0
+     870:      91 e0           ldi     r25, 0x01       ; 1
+     872:      0e c0           rjmp    .+28            ; 0x890 <main+0x8a>
+      break;
+    case 6:
+      uart_puts("right\n\r");
+     874:      87 e0           ldi     r24, 0x07       ; 7
+     876:      91 e0           ldi     r25, 0x01       ; 1
+     878:      0b c0           rjmp    .+22            ; 0x890 <main+0x8a>
+      break;
+    case 2:
+      uart_puts("up\n\r");
+     87a:      8f e0           ldi     r24, 0x0F       ; 15
+     87c:      91 e0           ldi     r25, 0x01       ; 1
+     87e:      08 c0           rjmp    .+16            ; 0x890 <main+0x8a>
+      break;
+    case 5:
+      uart_puts("down\n\r");
+     880:      84 e1           ldi     r24, 0x14       ; 20
+     882:      91 e0           ldi     r25, 0x01       ; 1
+     884:      05 c0           rjmp    .+10            ; 0x890 <main+0x8a>
+      break;
+    case 1:
+      uart_puts("back\n\r");
+     886:      8b e1           ldi     r24, 0x1B       ; 27
+     888:      91 e0           ldi     r25, 0x01       ; 1
+     88a:      02 c0           rjmp    .+4             ; 0x890 <main+0x8a>
+      break;
+    case 3:
+      uart_puts("enter\n\r");
+     88c:      82 e2           ldi     r24, 0x22       ; 34
+     88e:      91 e0           ldi     r25, 0x01       ; 1
+     890:      a7 df           rcall   .-178           ; 0x7e0 <uart_puts>
+     892:      d3 cf           rjmp    .-90            ; 0x83a <main+0x34>
+
+00000894 <CALLBACK_USB_GetDescriptor>:
        const uint8_t  DescriptorNumber = (wValue & 0xFF);
 
        const void* Address = NULL;
        uint16_t    Size    = NO_DESCRIPTOR;
 
        switch (DescriptorType)
-     8f6:      92 30           cpi     r25, 0x02       ; 2
-     8f8:      29 f0           breq    .+10            ; 0x904 <CALLBACK_USB_GetDescriptor+0xe>
-     8fa:      93 30           cpi     r25, 0x03       ; 3
-     8fc:      41 f0           breq    .+16            ; 0x90e <CALLBACK_USB_GetDescriptor+0x18>
-     8fe:      91 30           cpi     r25, 0x01       ; 1
-     900:      e9 f4           brne    .+58            ; 0x93c <CALLBACK_USB_GetDescriptor+0x46>
-     902:      17 c0           rjmp    .+46            ; 0x932 <CALLBACK_USB_GetDescriptor+0x3c>
+     894:      92 30           cpi     r25, 0x02       ; 2
+     896:      29 f0           breq    .+10            ; 0x8a2 <CALLBACK_USB_GetDescriptor+0xe>
+     898:      93 30           cpi     r25, 0x03       ; 3
+     89a:      41 f0           breq    .+16            ; 0x8ac <CALLBACK_USB_GetDescriptor+0x18>
+     89c:      91 30           cpi     r25, 0x01       ; 1
+     89e:      e9 f4           brne    .+58            ; 0x8da <CALLBACK_USB_GetDescriptor+0x46>
+     8a0:      17 c0           rjmp    .+46            ; 0x8d0 <CALLBACK_USB_GetDescriptor+0x3c>
                        Address = &DeviceDescriptor;
                        Size    = sizeof(USB_Descriptor_Device_t);
                        break;
                case DTYPE_Configuration:
                        Address = &ConfigurationDescriptor;
                        Size    = sizeof(USB_Descriptor_Configuration_t);
-     904:      2e e3           ldi     r18, 0x3E       ; 62
-     906:      30 e0           ldi     r19, 0x00       ; 0
+     8a2:      2e e3           ldi     r18, 0x3E       ; 62
+     8a4:      30 e0           ldi     r19, 0x00       ; 0
                case DTYPE_Device:
                        Address = &DeviceDescriptor;
                        Size    = sizeof(USB_Descriptor_Device_t);
                        break;
                case DTYPE_Configuration:
                        Address = &ConfigurationDescriptor;
-     908:      ea ea           ldi     r30, 0xAA       ; 170
-     90a:      f0 e0           ldi     r31, 0x00       ; 0
+     8a6:      ea ea           ldi     r30, 0xAA       ; 170
+     8a8:      f0 e0           ldi     r31, 0x00       ; 0
                        Size    = sizeof(USB_Descriptor_Configuration_t);
                        break;
-     90c:      1b c0           rjmp    .+54            ; 0x944 <CALLBACK_USB_GetDescriptor+0x4e>
+     8aa:      1b c0           rjmp    .+54            ; 0x8e2 <CALLBACK_USB_GetDescriptor+0x4e>
                case DTYPE_String:
                        switch (DescriptorNumber)
-     90e:      81 30           cpi     r24, 0x01       ; 1
-     910:      41 f0           breq    .+16            ; 0x922 <CALLBACK_USB_GetDescriptor+0x2c>
-     912:      81 30           cpi     r24, 0x01       ; 1
-     914:      18 f0           brcs    .+6             ; 0x91c <CALLBACK_USB_GetDescriptor+0x26>
-     916:      82 30           cpi     r24, 0x02       ; 2
-     918:      89 f4           brne    .+34            ; 0x93c <CALLBACK_USB_GetDescriptor+0x46>
-     91a:      06 c0           rjmp    .+12            ; 0x928 <CALLBACK_USB_GetDescriptor+0x32>
+     8ac:      81 30           cpi     r24, 0x01       ; 1
+     8ae:      41 f0           breq    .+16            ; 0x8c0 <CALLBACK_USB_GetDescriptor+0x2c>
+     8b0:      81 30           cpi     r24, 0x01       ; 1
+     8b2:      18 f0           brcs    .+6             ; 0x8ba <CALLBACK_USB_GetDescriptor+0x26>
+     8b4:      82 30           cpi     r24, 0x02       ; 2
+     8b6:      89 f4           brne    .+34            ; 0x8da <CALLBACK_USB_GetDescriptor+0x46>
+     8b8:      06 c0           rjmp    .+12            ; 0x8c6 <CALLBACK_USB_GetDescriptor+0x32>
                        {
                                case 0x00:
                                        Address = &LanguageString;
                                        Size    = pgm_read_byte(&LanguageString.Header.Size);
-     91c:      e8 ee           ldi     r30, 0xE8       ; 232
-     91e:      f0 e0           ldi     r31, 0x00       ; 0
-     920:      05 c0           rjmp    .+10            ; 0x92c <CALLBACK_USB_GetDescriptor+0x36>
+     8ba:      e8 ee           ldi     r30, 0xE8       ; 232
+     8bc:      f0 e0           ldi     r31, 0x00       ; 0
+     8be:      05 c0           rjmp    .+10            ; 0x8ca <CALLBACK_USB_GetDescriptor+0x36>
                                        break;
                                case 0x01:
                                        Address = &ManufacturerString;
                                        Size    = pgm_read_byte(&ManufacturerString.Header.Size);
-     922:      ec ee           ldi     r30, 0xEC       ; 236
-     924:      f0 e0           ldi     r31, 0x00       ; 0
-     926:      02 c0           rjmp    .+4             ; 0x92c <CALLBACK_USB_GetDescriptor+0x36>
+     8c0:      ec ee           ldi     r30, 0xEC       ; 236
+     8c2:      f0 e0           ldi     r31, 0x00       ; 0
+     8c4:      02 c0           rjmp    .+4             ; 0x8ca <CALLBACK_USB_GetDescriptor+0x36>
                                        break;
                                case 0x02:
                                        Address = &ProductString;
                                        Size    = pgm_read_byte(&ProductString.Header.Size);
-     928:      e6 e0           ldi     r30, 0x06       ; 6
-     92a:      f1 e0           ldi     r31, 0x01       ; 1
-     92c:      24 91           lpm     r18, Z+
-     92e:      30 e0           ldi     r19, 0x00       ; 0
+     8c6:      e6 e0           ldi     r30, 0x06       ; 6
+     8c8:      f1 e0           ldi     r31, 0x01       ; 1
+     8ca:      24 91           lpm     r18, Z+
+     8cc:      30 e0           ldi     r19, 0x00       ; 0
                                        break;
-     930:      09 c0           rjmp    .+18            ; 0x944 <CALLBACK_USB_GetDescriptor+0x4e>
+     8ce:      09 c0           rjmp    .+18            ; 0x8e2 <CALLBACK_USB_GetDescriptor+0x4e>
 
        switch (DescriptorType)
        {
                case DTYPE_Device:
                        Address = &DeviceDescriptor;
                        Size    = sizeof(USB_Descriptor_Device_t);
-     932:      22 e1           ldi     r18, 0x12       ; 18
-     934:      30 e0           ldi     r19, 0x00       ; 0
+     8d0:      22 e1           ldi     r18, 0x12       ; 18
+     8d2:      30 e0           ldi     r19, 0x00       ; 0
        uint16_t    Size    = NO_DESCRIPTOR;
 
        switch (DescriptorType)
        {
                case DTYPE_Device:
                        Address = &DeviceDescriptor;
-     936:      e8 e9           ldi     r30, 0x98       ; 152
-     938:      f0 e0           ldi     r31, 0x00       ; 0
-     93a:      04 c0           rjmp    .+8             ; 0x944 <CALLBACK_USB_GetDescriptor+0x4e>
+     8d4:      e8 e9           ldi     r30, 0x98       ; 152
+     8d6:      f0 e0           ldi     r31, 0x00       ; 0
+     8d8:      04 c0           rjmp    .+8             ; 0x8e2 <CALLBACK_USB_GetDescriptor+0x4e>
 {
        const uint8_t  DescriptorType   = (wValue >> 8);
        const uint8_t  DescriptorNumber = (wValue & 0xFF);
 
        const void* Address = NULL;
        uint16_t    Size    = NO_DESCRIPTOR;
-     93c:      20 e0           ldi     r18, 0x00       ; 0
-     93e:      30 e0           ldi     r19, 0x00       ; 0
+     8da:      20 e0           ldi     r18, 0x00       ; 0
+     8dc:      30 e0           ldi     r19, 0x00       ; 0
                                     const void** const DescriptorAddress)
 {
        const uint8_t  DescriptorType   = (wValue >> 8);
        const uint8_t  DescriptorNumber = (wValue & 0xFF);
 
        const void* Address = NULL;
-     940:      e0 e0           ldi     r30, 0x00       ; 0
-     942:      f0 e0           ldi     r31, 0x00       ; 0
+     8de:      e0 e0           ldi     r30, 0x00       ; 0
+     8e0:      f0 e0           ldi     r31, 0x00       ; 0
                        }
 
                        break;
        }
 
        *DescriptorAddress = Address;
-     944:      da 01           movw    r26, r20
-     946:      11 96           adiw    r26, 0x01       ; 1
-     948:      fc 93           st      X, r31
-     94a:      ee 93           st      -X, r30
+     8e2:      da 01           movw    r26, r20
+     8e4:      11 96           adiw    r26, 0x01       ; 1
+     8e6:      fc 93           st      X, r31
+     8e8:      ee 93           st      -X, r30
        return Size;
 }
-     94c:      c9 01           movw    r24, r18
-     94e:      08 95           ret
+     8ea:      c9 01           movw    r24, r18
+     8ec:      08 95           ret
 
-00000950 <Endpoint_Write_Control_Stream_LE>:
+000008ee <Endpoint_Write_Control_Stream_LE>:
 #if defined(TEMPLATE_FUNC_NAME)
 
 uint8_t TEMPLATE_FUNC_NAME (const void* const Buffer,
                             uint16_t Length)
 {
        uint8_t* DataStream     = ((uint8_t*)Buffer + TEMPLATE_BUFFER_OFFSET(Length));
-     950:      28 2f           mov     r18, r24
-     952:      39 2f           mov     r19, r25
-     954:      f9 01           movw    r30, r18
+     8ee:      28 2f           mov     r18, r24
+     8f0:      39 2f           mov     r19, r25
+     8f2:      f9 01           movw    r30, r18
        bool     LastPacketFull = false;
 
        if (Length > USB_ControlRequest.wLength)
-     956:      80 91 74 02     lds     r24, 0x0274
-     95a:      90 91 75 02     lds     r25, 0x0275
-     95e:      86 17           cp      r24, r22
-     960:      97 07           cpc     r25, r23
-     962:      18 f4           brcc    .+6             ; 0x96a <Endpoint_Write_Control_Stream_LE+0x1a>
-     964:      bc 01           movw    r22, r24
-     966:      20 e0           ldi     r18, 0x00       ; 0
-     968:      34 c0           rjmp    .+104           ; 0x9d2 <Endpoint_Write_Control_Stream_LE+0x82>
+     8f4:      80 91 7a 02     lds     r24, 0x027A
+     8f8:      90 91 7b 02     lds     r25, 0x027B
+     8fc:      86 17           cp      r24, r22
+     8fe:      97 07           cpc     r25, r23
+     900:      18 f4           brcc    .+6             ; 0x908 <Endpoint_Write_Control_Stream_LE+0x1a>
+     902:      bc 01           movw    r22, r24
+     904:      20 e0           ldi     r18, 0x00       ; 0
+     906:      34 c0           rjmp    .+104           ; 0x970 <Endpoint_Write_Control_Stream_LE+0x82>
          Length = USB_ControlRequest.wLength;
        else if (!(Length))
-     96a:      61 15           cp      r22, r1
-     96c:      71 05           cpc     r23, r1
-     96e:      d9 f7           brne    .-10            ; 0x966 <Endpoint_Write_Control_Stream_LE+0x16>
+     908:      61 15           cp      r22, r1
+     90a:      71 05           cpc     r23, r1
+     90c:      d9 f7           brne    .-10            ; 0x904 <Endpoint_Write_Control_Stream_LE+0x16>
                         */
                        static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearIN(void)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
-     970:      80 91 e8 00     lds     r24, 0x00E8
-     974:      8e 77           andi    r24, 0x7E       ; 126
-     976:      80 93 e8 00     sts     0x00E8, r24
-     97a:      f5 cf           rjmp    .-22            ; 0x966 <Endpoint_Write_Control_Stream_LE+0x16>
+     90e:      80 91 e8 00     lds     r24, 0x00E8
+     912:      8e 77           andi    r24, 0x7E       ; 126
+     914:      80 93 e8 00     sts     0x00E8, r24
+     918:      f5 cf           rjmp    .-22            ; 0x904 <Endpoint_Write_Control_Stream_LE+0x16>
          Endpoint_ClearIN();
 
        while (Length || LastPacketFull)
        {
                uint8_t USB_DeviceState_LCL = USB_DeviceState;
-     97c:      8e b3           in      r24, 0x1e       ; 30
+     91a:      8e b3           in      r24, 0x1e       ; 30
 
                if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
-     97e:      88 23           and     r24, r24
-     980:      e9 f1           breq    .+122           ; 0x9fc <Endpoint_Write_Control_Stream_LE+0xac>
+     91c:      88 23           and     r24, r24
+     91e:      e9 f1           breq    .+122           ; 0x99a <Endpoint_Write_Control_Stream_LE+0xac>
                  return ENDPOINT_RWCSTREAM_DeviceDisconnected;
                else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
-     982:      85 30           cpi     r24, 0x05       ; 5
-     984:      b9 f1           breq    .+110           ; 0x9f4 <Endpoint_Write_Control_Stream_LE+0xa4>
+     920:      85 30           cpi     r24, 0x05       ; 5
+     922:      b9 f1           breq    .+110           ; 0x992 <Endpoint_Write_Control_Stream_LE+0xa4>
                         *  \return Boolean \c true if the selected endpoint has received a SETUP packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsSETUPReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsSETUPReceived(void)
                        {
                                return ((UEINTX & (1 << RXSTPI)) ? true : false);
-     986:      80 91 e8 00     lds     r24, 0x00E8
+     924:      80 91 e8 00     lds     r24, 0x00E8
                  return ENDPOINT_RWCSTREAM_BusSuspended;
                else if (Endpoint_IsSETUPReceived())
-     98a:      83 fd           sbrc    r24, 3
-     98c:      35 c0           rjmp    .+106           ; 0x9f8 <Endpoint_Write_Control_Stream_LE+0xa8>
+     928:      83 fd           sbrc    r24, 3
+     92a:      35 c0           rjmp    .+106           ; 0x996 <Endpoint_Write_Control_Stream_LE+0xa8>
                         *  \return Boolean \c true if current endpoint is has received an OUT packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsOUTReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsOUTReceived(void)
                        {
                                return ((UEINTX & (1 << RXOUTI)) ? true : false);
-     98e:      80 91 e8 00     lds     r24, 0x00E8
+     92c:      80 91 e8 00     lds     r24, 0x00E8
                  return ENDPOINT_RWCSTREAM_HostAborted;
                else if (Endpoint_IsOUTReceived())
-     992:      82 fd           sbrc    r24, 2
-     994:      29 c0           rjmp    .+82            ; 0x9e8 <Endpoint_Write_Control_Stream_LE+0x98>
+     930:      82 fd           sbrc    r24, 2
+     932:      29 c0           rjmp    .+82            ; 0x986 <Endpoint_Write_Control_Stream_LE+0x98>
                         *  \return Boolean \c true if the current endpoint is ready for an IN packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsINReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsINReady(void)
                        {
                                return ((UEINTX & (1 << TXINI)) ? true : false);
-     996:      80 91 e8 00     lds     r24, 0x00E8
+     934:      80 91 e8 00     lds     r24, 0x00E8
                  break;
 
                if (Endpoint_IsINReady())
-     99a:      80 ff           sbrs    r24, 0
-     99c:      1a c0           rjmp    .+52            ; 0x9d2 <Endpoint_Write_Control_Stream_LE+0x82>
+     938:      80 ff           sbrs    r24, 0
+     93a:      1a c0           rjmp    .+52            ; 0x970 <Endpoint_Write_Control_Stream_LE+0x82>
                                #if (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
                                        return UEBCX;
                                #elif defined(USB_SERIES_4_AVR)
                                        return (((uint16_t)UEBCHX << 8) | UEBCLX);
                                #elif defined(USB_SERIES_2_AVR)
                                        return UEBCLX;
-     99e:      80 91 f2 00     lds     r24, 0x00F2
-     9a2:      90 e0           ldi     r25, 0x00       ; 0
+     93c:      80 91 f2 00     lds     r24, 0x00F2
+     940:      90 e0           ldi     r25, 0x00       ; 0
                {
                        uint16_t BytesInEndpoint = Endpoint_BytesInEndpoint();
 
                        while (Length && (BytesInEndpoint < USB_Device_ControlEndpointSize))
-     9a4:      06 c0           rjmp    .+12            ; 0x9b2 <Endpoint_Write_Control_Stream_LE+0x62>
+     942:      06 c0           rjmp    .+12            ; 0x950 <Endpoint_Write_Control_Stream_LE+0x62>
                        {
                                TEMPLATE_TRANSFER_BYTE(DataStream);
-     9a6:      21 91           ld      r18, Z+
+     944:      21 91           ld      r18, Z+
                         *  \param[in] Data  Data to write into the the currently selected endpoint's FIFO buffer.
                         */
                        static inline void Endpoint_Write_8(const uint8_t Data) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_Write_8(const uint8_t Data)
                        {
                                UEDATX = Data;
-     9a8:      20 93 f1 00     sts     0x00F1, r18
+     946:      20 93 f1 00     sts     0x00F1, r18
                                TEMPLATE_BUFFER_MOVE(DataStream, 1);
                                Length--;
-     9ac:      61 50           subi    r22, 0x01       ; 1
-     9ae:      70 40           sbci    r23, 0x00       ; 0
+     94a:      61 50           subi    r22, 0x01       ; 1
+     94c:      70 40           sbci    r23, 0x00       ; 0
                                BytesInEndpoint++;
-     9b0:      01 96           adiw    r24, 0x01       ; 1
+     94e:      01 96           adiw    r24, 0x01       ; 1
 
                if (Endpoint_IsINReady())
                {
                        uint16_t BytesInEndpoint = Endpoint_BytesInEndpoint();
 
                        while (Length && (BytesInEndpoint < USB_Device_ControlEndpointSize))
-     9b2:      61 15           cp      r22, r1
-     9b4:      71 05           cpc     r23, r1
-     9b6:      19 f0           breq    .+6             ; 0x9be <Endpoint_Write_Control_Stream_LE+0x6e>
-     9b8:      88 30           cpi     r24, 0x08       ; 8
-     9ba:      91 05           cpc     r25, r1
-     9bc:      a0 f3           brcs    .-24            ; 0x9a6 <Endpoint_Write_Control_Stream_LE+0x56>
+     950:      61 15           cp      r22, r1
+     952:      71 05           cpc     r23, r1
+     954:      19 f0           breq    .+6             ; 0x95c <Endpoint_Write_Control_Stream_LE+0x6e>
+     956:      88 30           cpi     r24, 0x08       ; 8
+     958:      91 05           cpc     r25, r1
+     95a:      a0 f3           brcs    .-24            ; 0x944 <Endpoint_Write_Control_Stream_LE+0x56>
                                TEMPLATE_BUFFER_MOVE(DataStream, 1);
                                Length--;
                                BytesInEndpoint++;
                        }
 
                        LastPacketFull = (BytesInEndpoint == USB_Device_ControlEndpointSize);
-     9be:      21 e0           ldi     r18, 0x01       ; 1
-     9c0:      88 30           cpi     r24, 0x08       ; 8
-     9c2:      91 05           cpc     r25, r1
-     9c4:      09 f0           breq    .+2             ; 0x9c8 <Endpoint_Write_Control_Stream_LE+0x78>
-     9c6:      20 e0           ldi     r18, 0x00       ; 0
+     95c:      21 e0           ldi     r18, 0x01       ; 1
+     95e:      88 30           cpi     r24, 0x08       ; 8
+     960:      91 05           cpc     r25, r1
+     962:      09 f0           breq    .+2             ; 0x966 <Endpoint_Write_Control_Stream_LE+0x78>
+     964:      20 e0           ldi     r18, 0x00       ; 0
                         */
                        static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearIN(void)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
-     9c8:      80 91 e8 00     lds     r24, 0x00E8
-     9cc:      8e 77           andi    r24, 0x7E       ; 126
-     9ce:      80 93 e8 00     sts     0x00E8, r24
+     966:      80 91 e8 00     lds     r24, 0x00E8
+     96a:      8e 77           andi    r24, 0x7E       ; 126
+     96c:      80 93 e8 00     sts     0x00E8, r24
        if (Length > USB_ControlRequest.wLength)
          Length = USB_ControlRequest.wLength;
        else if (!(Length))
          Endpoint_ClearIN();
 
        while (Length || LastPacketFull)
-     9d2:      61 15           cp      r22, r1
-     9d4:      71 05           cpc     r23, r1
-     9d6:      91 f6           brne    .-92            ; 0x97c <Endpoint_Write_Control_Stream_LE+0x2c>
-     9d8:      22 23           and     r18, r18
-     9da:      81 f6           brne    .-96            ; 0x97c <Endpoint_Write_Control_Stream_LE+0x2c>
-     9dc:      05 c0           rjmp    .+10            ; 0x9e8 <Endpoint_Write_Control_Stream_LE+0x98>
+     970:      61 15           cp      r22, r1
+     972:      71 05           cpc     r23, r1
+     974:      91 f6           brne    .-92            ; 0x91a <Endpoint_Write_Control_Stream_LE+0x2c>
+     976:      22 23           and     r18, r18
+     978:      81 f6           brne    .-96            ; 0x91a <Endpoint_Write_Control_Stream_LE+0x2c>
+     97a:      05 c0           rjmp    .+10            ; 0x986 <Endpoint_Write_Control_Stream_LE+0x98>
                }
        }
 
        while (!(Endpoint_IsOUTReceived()))
        {
                uint8_t USB_DeviceState_LCL = USB_DeviceState;
-     9de:      8e b3           in      r24, 0x1e       ; 30
+     97c:      8e b3           in      r24, 0x1e       ; 30
 
                if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
-     9e0:      88 23           and     r24, r24
-     9e2:      61 f0           breq    .+24            ; 0x9fc <Endpoint_Write_Control_Stream_LE+0xac>
+     97e:      88 23           and     r24, r24
+     980:      61 f0           breq    .+24            ; 0x99a <Endpoint_Write_Control_Stream_LE+0xac>
                  return ENDPOINT_RWCSTREAM_DeviceDisconnected;
                else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
-     9e4:      85 30           cpi     r24, 0x05       ; 5
-     9e6:      61 f0           breq    .+24            ; 0xa00 <Endpoint_Write_Control_Stream_LE+0xb0>
+     982:      85 30           cpi     r24, 0x05       ; 5
+     984:      61 f0           breq    .+24            ; 0x99e <Endpoint_Write_Control_Stream_LE+0xb0>
                         *  \return Boolean \c true if current endpoint is has received an OUT packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsOUTReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsOUTReceived(void)
                        {
                                return ((UEINTX & (1 << RXOUTI)) ? true : false);
-     9e8:      80 91 e8 00     lds     r24, 0x00E8
+     986:      80 91 e8 00     lds     r24, 0x00E8
                        LastPacketFull = (BytesInEndpoint == USB_Device_ControlEndpointSize);
                        Endpoint_ClearIN();
                }
        }
 
        while (!(Endpoint_IsOUTReceived()))
-     9ec:      82 ff           sbrs    r24, 2
-     9ee:      f7 cf           rjmp    .-18            ; 0x9de <Endpoint_Write_Control_Stream_LE+0x8e>
+     98a:      82 ff           sbrs    r24, 2
+     98c:      f7 cf           rjmp    .-18            ; 0x97c <Endpoint_Write_Control_Stream_LE+0x8e>
                  return ENDPOINT_RWCSTREAM_DeviceDisconnected;
                else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
                  return ENDPOINT_RWCSTREAM_BusSuspended;
        }
 
        return ENDPOINT_RWCSTREAM_NoError;
-     9f0:      80 e0           ldi     r24, 0x00       ; 0
-     9f2:      08 95           ret
+     98e:      80 e0           ldi     r24, 0x00       ; 0
+     990:      08 95           ret
                uint8_t USB_DeviceState_LCL = USB_DeviceState;
 
                if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
                  return ENDPOINT_RWCSTREAM_DeviceDisconnected;
                else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
                  return ENDPOINT_RWCSTREAM_BusSuspended;
-     9f4:      83 e0           ldi     r24, 0x03       ; 3
-     9f6:      08 95           ret
+     992:      83 e0           ldi     r24, 0x03       ; 3
+     994:      08 95           ret
                else if (Endpoint_IsSETUPReceived())
                  return ENDPOINT_RWCSTREAM_HostAborted;
-     9f8:      81 e0           ldi     r24, 0x01       ; 1
-     9fa:      08 95           ret
+     996:      81 e0           ldi     r24, 0x01       ; 1
+     998:      08 95           ret
        while (!(Endpoint_IsOUTReceived()))
        {
                uint8_t USB_DeviceState_LCL = USB_DeviceState;
 
                if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
                  return ENDPOINT_RWCSTREAM_DeviceDisconnected;
-     9fc:      82 e0           ldi     r24, 0x02       ; 2
-     9fe:      08 95           ret
+     99a:      82 e0           ldi     r24, 0x02       ; 2
+     99c:      08 95           ret
                else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
                  return ENDPOINT_RWCSTREAM_BusSuspended;
-     a00:      83 e0           ldi     r24, 0x03       ; 3
+     99e:      83 e0           ldi     r24, 0x03       ; 3
        }
 
        return ENDPOINT_RWCSTREAM_NoError;
 }
-     a02:      08 95           ret
+     9a0:      08 95           ret
 
-00000a04 <Endpoint_Write_Control_PStream_LE>:
+000009a2 <Endpoint_Write_Control_PStream_LE>:
 #if defined(TEMPLATE_FUNC_NAME)
 
 uint8_t TEMPLATE_FUNC_NAME (const void* const Buffer,
                             uint16_t Length)
 {
        uint8_t* DataStream     = ((uint8_t*)Buffer + TEMPLATE_BUFFER_OFFSET(Length));
-     a04:      e8 2f           mov     r30, r24
-     a06:      f9 2f           mov     r31, r25
+     9a2:      e8 2f           mov     r30, r24
+     9a4:      f9 2f           mov     r31, r25
        bool     LastPacketFull = false;
 
        if (Length > USB_ControlRequest.wLength)
-     a08:      80 91 74 02     lds     r24, 0x0274
-     a0c:      90 91 75 02     lds     r25, 0x0275
-     a10:      86 17           cp      r24, r22
-     a12:      97 07           cpc     r25, r23
-     a14:      18 f4           brcc    .+6             ; 0xa1c <Endpoint_Write_Control_PStream_LE+0x18>
-     a16:      bc 01           movw    r22, r24
-     a18:      20 e0           ldi     r18, 0x00       ; 0
-     a1a:      36 c0           rjmp    .+108           ; 0xa88 <Endpoint_Write_Control_PStream_LE+0x84>
+     9a6:      80 91 7a 02     lds     r24, 0x027A
+     9aa:      90 91 7b 02     lds     r25, 0x027B
+     9ae:      86 17           cp      r24, r22
+     9b0:      97 07           cpc     r25, r23
+     9b2:      18 f4           brcc    .+6             ; 0x9ba <Endpoint_Write_Control_PStream_LE+0x18>
+     9b4:      bc 01           movw    r22, r24
+     9b6:      20 e0           ldi     r18, 0x00       ; 0
+     9b8:      36 c0           rjmp    .+108           ; 0xa26 <Endpoint_Write_Control_PStream_LE+0x84>
          Length = USB_ControlRequest.wLength;
        else if (!(Length))
-     a1c:      61 15           cp      r22, r1
-     a1e:      71 05           cpc     r23, r1
-     a20:      d9 f7           brne    .-10            ; 0xa18 <Endpoint_Write_Control_PStream_LE+0x14>
+     9ba:      61 15           cp      r22, r1
+     9bc:      71 05           cpc     r23, r1
+     9be:      d9 f7           brne    .-10            ; 0x9b6 <Endpoint_Write_Control_PStream_LE+0x14>
                         */
                        static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearIN(void)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
-     a22:      80 91 e8 00     lds     r24, 0x00E8
-     a26:      8e 77           andi    r24, 0x7E       ; 126
-     a28:      80 93 e8 00     sts     0x00E8, r24
-     a2c:      f5 cf           rjmp    .-22            ; 0xa18 <Endpoint_Write_Control_PStream_LE+0x14>
+     9c0:      80 91 e8 00     lds     r24, 0x00E8
+     9c4:      8e 77           andi    r24, 0x7E       ; 126
+     9c6:      80 93 e8 00     sts     0x00E8, r24
+     9ca:      f5 cf           rjmp    .-22            ; 0x9b6 <Endpoint_Write_Control_PStream_LE+0x14>
          Endpoint_ClearIN();
 
        while (Length || LastPacketFull)
        {
                uint8_t USB_DeviceState_LCL = USB_DeviceState;
-     a2e:      8e b3           in      r24, 0x1e       ; 30
+     9cc:      8e b3           in      r24, 0x1e       ; 30
 
                if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
-     a30:      88 23           and     r24, r24
-     a32:      09 f4           brne    .+2             ; 0xa36 <Endpoint_Write_Control_PStream_LE+0x32>
-     a34:      3e c0           rjmp    .+124           ; 0xab2 <Endpoint_Write_Control_PStream_LE+0xae>
+     9ce:      88 23           and     r24, r24
+     9d0:      09 f4           brne    .+2             ; 0x9d4 <Endpoint_Write_Control_PStream_LE+0x32>
+     9d2:      3e c0           rjmp    .+124           ; 0xa50 <Endpoint_Write_Control_PStream_LE+0xae>
                  return ENDPOINT_RWCSTREAM_DeviceDisconnected;
                else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
-     a36:      85 30           cpi     r24, 0x05       ; 5
-     a38:      c1 f1           breq    .+112           ; 0xaaa <Endpoint_Write_Control_PStream_LE+0xa6>
+     9d4:      85 30           cpi     r24, 0x05       ; 5
+     9d6:      c1 f1           breq    .+112           ; 0xa48 <Endpoint_Write_Control_PStream_LE+0xa6>
                         *  \return Boolean \c true if the selected endpoint has received a SETUP packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsSETUPReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsSETUPReceived(void)
                        {
                                return ((UEINTX & (1 << RXSTPI)) ? true : false);
-     a3a:      80 91 e8 00     lds     r24, 0x00E8
+     9d8:      80 91 e8 00     lds     r24, 0x00E8
                  return ENDPOINT_RWCSTREAM_BusSuspended;
                else if (Endpoint_IsSETUPReceived())
-     a3e:      83 fd           sbrc    r24, 3
-     a40:      36 c0           rjmp    .+108           ; 0xaae <Endpoint_Write_Control_PStream_LE+0xaa>
+     9dc:      83 fd           sbrc    r24, 3
+     9de:      36 c0           rjmp    .+108           ; 0xa4c <Endpoint_Write_Control_PStream_LE+0xaa>
                         *  \return Boolean \c true if current endpoint is has received an OUT packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsOUTReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsOUTReceived(void)
                        {
                                return ((UEINTX & (1 << RXOUTI)) ? true : false);
-     a42:      80 91 e8 00     lds     r24, 0x00E8
+     9e0:      80 91 e8 00     lds     r24, 0x00E8
                  return ENDPOINT_RWCSTREAM_HostAborted;
                else if (Endpoint_IsOUTReceived())
-     a46:      82 fd           sbrc    r24, 2
-     a48:      2a c0           rjmp    .+84            ; 0xa9e <Endpoint_Write_Control_PStream_LE+0x9a>
+     9e4:      82 fd           sbrc    r24, 2
+     9e6:      2a c0           rjmp    .+84            ; 0xa3c <Endpoint_Write_Control_PStream_LE+0x9a>
                         *  \return Boolean \c true if the current endpoint is ready for an IN packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsINReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsINReady(void)
                        {
                                return ((UEINTX & (1 << TXINI)) ? true : false);
-     a4a:      80 91 e8 00     lds     r24, 0x00E8
+     9e8:      80 91 e8 00     lds     r24, 0x00E8
                  break;
 
                if (Endpoint_IsINReady())
-     a4e:      80 ff           sbrs    r24, 0
-     a50:      1b c0           rjmp    .+54            ; 0xa88 <Endpoint_Write_Control_PStream_LE+0x84>
+     9ec:      80 ff           sbrs    r24, 0
+     9ee:      1b c0           rjmp    .+54            ; 0xa26 <Endpoint_Write_Control_PStream_LE+0x84>
                                #if (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
                                        return UEBCX;
                                #elif defined(USB_SERIES_4_AVR)
                                        return (((uint16_t)UEBCHX << 8) | UEBCLX);
                                #elif defined(USB_SERIES_2_AVR)
                                        return UEBCLX;
-     a52:      80 91 f2 00     lds     r24, 0x00F2
-     a56:      90 e0           ldi     r25, 0x00       ; 0
+     9f0:      80 91 f2 00     lds     r24, 0x00F2
+     9f4:      90 e0           ldi     r25, 0x00       ; 0
                {
                        uint16_t BytesInEndpoint = Endpoint_BytesInEndpoint();
 
                        while (Length && (BytesInEndpoint < USB_Device_ControlEndpointSize))
-     a58:      07 c0           rjmp    .+14            ; 0xa68 <Endpoint_Write_Control_PStream_LE+0x64>
+     9f6:      07 c0           rjmp    .+14            ; 0xa06 <Endpoint_Write_Control_PStream_LE+0x64>
                        {
                                TEMPLATE_TRANSFER_BYTE(DataStream);
-     a5a:      24 91           lpm     r18, Z+
+     9f8:      24 91           lpm     r18, Z+
                         *  \param[in] Data  Data to write into the the currently selected endpoint's FIFO buffer.
                         */
                        static inline void Endpoint_Write_8(const uint8_t Data) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_Write_8(const uint8_t Data)
                        {
                                UEDATX = Data;
-     a5c:      20 93 f1 00     sts     0x00F1, r18
+     9fa:      20 93 f1 00     sts     0x00F1, r18
                                TEMPLATE_BUFFER_MOVE(DataStream, 1);
-     a60:      31 96           adiw    r30, 0x01       ; 1
+     9fe:      31 96           adiw    r30, 0x01       ; 1
                                Length--;
-     a62:      61 50           subi    r22, 0x01       ; 1
-     a64:      70 40           sbci    r23, 0x00       ; 0
+     a00:      61 50           subi    r22, 0x01       ; 1
+     a02:      70 40           sbci    r23, 0x00       ; 0
                                BytesInEndpoint++;
-     a66:      01 96           adiw    r24, 0x01       ; 1
+     a04:      01 96           adiw    r24, 0x01       ; 1
 
                if (Endpoint_IsINReady())
                {
                        uint16_t BytesInEndpoint = Endpoint_BytesInEndpoint();
 
                        while (Length && (BytesInEndpoint < USB_Device_ControlEndpointSize))
-     a68:      61 15           cp      r22, r1
-     a6a:      71 05           cpc     r23, r1
-     a6c:      19 f0           breq    .+6             ; 0xa74 <Endpoint_Write_Control_PStream_LE+0x70>
-     a6e:      88 30           cpi     r24, 0x08       ; 8
-     a70:      91 05           cpc     r25, r1
-     a72:      98 f3           brcs    .-26            ; 0xa5a <Endpoint_Write_Control_PStream_LE+0x56>
+     a06:      61 15           cp      r22, r1
+     a08:      71 05           cpc     r23, r1
+     a0a:      19 f0           breq    .+6             ; 0xa12 <Endpoint_Write_Control_PStream_LE+0x70>
+     a0c:      88 30           cpi     r24, 0x08       ; 8
+     a0e:      91 05           cpc     r25, r1
+     a10:      98 f3           brcs    .-26            ; 0x9f8 <Endpoint_Write_Control_PStream_LE+0x56>
                                TEMPLATE_BUFFER_MOVE(DataStream, 1);
                                Length--;
                                BytesInEndpoint++;
                        }
 
                        LastPacketFull = (BytesInEndpoint == USB_Device_ControlEndpointSize);
-     a74:      21 e0           ldi     r18, 0x01       ; 1
-     a76:      88 30           cpi     r24, 0x08       ; 8
-     a78:      91 05           cpc     r25, r1
-     a7a:      09 f0           breq    .+2             ; 0xa7e <Endpoint_Write_Control_PStream_LE+0x7a>
-     a7c:      20 e0           ldi     r18, 0x00       ; 0
+     a12:      21 e0           ldi     r18, 0x01       ; 1
+     a14:      88 30           cpi     r24, 0x08       ; 8
+     a16:      91 05           cpc     r25, r1
+     a18:      09 f0           breq    .+2             ; 0xa1c <Endpoint_Write_Control_PStream_LE+0x7a>
+     a1a:      20 e0           ldi     r18, 0x00       ; 0
                         */
                        static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearIN(void)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
-     a7e:      80 91 e8 00     lds     r24, 0x00E8
-     a82:      8e 77           andi    r24, 0x7E       ; 126
-     a84:      80 93 e8 00     sts     0x00E8, r24
+     a1c:      80 91 e8 00     lds     r24, 0x00E8
+     a20:      8e 77           andi    r24, 0x7E       ; 126
+     a22:      80 93 e8 00     sts     0x00E8, r24
        if (Length > USB_ControlRequest.wLength)
          Length = USB_ControlRequest.wLength;
        else if (!(Length))
          Endpoint_ClearIN();
 
        while (Length || LastPacketFull)
-     a88:      61 15           cp      r22, r1
-     a8a:      71 05           cpc     r23, r1
-     a8c:      81 f6           brne    .-96            ; 0xa2e <Endpoint_Write_Control_PStream_LE+0x2a>
-     a8e:      22 23           and     r18, r18
-     a90:      71 f6           brne    .-100           ; 0xa2e <Endpoint_Write_Control_PStream_LE+0x2a>
-     a92:      05 c0           rjmp    .+10            ; 0xa9e <Endpoint_Write_Control_PStream_LE+0x9a>
+     a26:      61 15           cp      r22, r1
+     a28:      71 05           cpc     r23, r1
+     a2a:      81 f6           brne    .-96            ; 0x9cc <Endpoint_Write_Control_PStream_LE+0x2a>
+     a2c:      22 23           and     r18, r18
+     a2e:      71 f6           brne    .-100           ; 0x9cc <Endpoint_Write_Control_PStream_LE+0x2a>
+     a30:      05 c0           rjmp    .+10            ; 0xa3c <Endpoint_Write_Control_PStream_LE+0x9a>
                }
        }
 
        while (!(Endpoint_IsOUTReceived()))
        {
                uint8_t USB_DeviceState_LCL = USB_DeviceState;
-     a94:      8e b3           in      r24, 0x1e       ; 30
+     a32:      8e b3           in      r24, 0x1e       ; 30
 
                if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
-     a96:      88 23           and     r24, r24
-     a98:      61 f0           breq    .+24            ; 0xab2 <Endpoint_Write_Control_PStream_LE+0xae>
+     a34:      88 23           and     r24, r24
+     a36:      61 f0           breq    .+24            ; 0xa50 <Endpoint_Write_Control_PStream_LE+0xae>
                  return ENDPOINT_RWCSTREAM_DeviceDisconnected;
                else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
-     a9a:      85 30           cpi     r24, 0x05       ; 5
-     a9c:      61 f0           breq    .+24            ; 0xab6 <Endpoint_Write_Control_PStream_LE+0xb2>
+     a38:      85 30           cpi     r24, 0x05       ; 5
+     a3a:      61 f0           breq    .+24            ; 0xa54 <Endpoint_Write_Control_PStream_LE+0xb2>
                         *  \return Boolean \c true if current endpoint is has received an OUT packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsOUTReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsOUTReceived(void)
                        {
                                return ((UEINTX & (1 << RXOUTI)) ? true : false);
-     a9e:      80 91 e8 00     lds     r24, 0x00E8
+     a3c:      80 91 e8 00     lds     r24, 0x00E8
                        LastPacketFull = (BytesInEndpoint == USB_Device_ControlEndpointSize);
                        Endpoint_ClearIN();
                }
        }
 
        while (!(Endpoint_IsOUTReceived()))
-     aa2:      82 ff           sbrs    r24, 2
-     aa4:      f7 cf           rjmp    .-18            ; 0xa94 <Endpoint_Write_Control_PStream_LE+0x90>
+     a40:      82 ff           sbrs    r24, 2
+     a42:      f7 cf           rjmp    .-18            ; 0xa32 <Endpoint_Write_Control_PStream_LE+0x90>
                  return ENDPOINT_RWCSTREAM_DeviceDisconnected;
                else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
                  return ENDPOINT_RWCSTREAM_BusSuspended;
        }
 
        return ENDPOINT_RWCSTREAM_NoError;
-     aa6:      80 e0           ldi     r24, 0x00       ; 0
-     aa8:      08 95           ret
+     a44:      80 e0           ldi     r24, 0x00       ; 0
+     a46:      08 95           ret
                uint8_t USB_DeviceState_LCL = USB_DeviceState;
 
                if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
                  return ENDPOINT_RWCSTREAM_DeviceDisconnected;
                else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
                  return ENDPOINT_RWCSTREAM_BusSuspended;
-     aaa:      83 e0           ldi     r24, 0x03       ; 3
-     aac:      08 95           ret
+     a48:      83 e0           ldi     r24, 0x03       ; 3
+     a4a:      08 95           ret
                else if (Endpoint_IsSETUPReceived())
                  return ENDPOINT_RWCSTREAM_HostAborted;
-     aae:      81 e0           ldi     r24, 0x01       ; 1
-     ab0:      08 95           ret
+     a4c:      81 e0           ldi     r24, 0x01       ; 1
+     a4e:      08 95           ret
        while (!(Endpoint_IsOUTReceived()))
        {
                uint8_t USB_DeviceState_LCL = USB_DeviceState;
 
                if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
                  return ENDPOINT_RWCSTREAM_DeviceDisconnected;
-     ab2:      82 e0           ldi     r24, 0x02       ; 2
-     ab4:      08 95           ret
+     a50:      82 e0           ldi     r24, 0x02       ; 2
+     a52:      08 95           ret
                else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
                  return ENDPOINT_RWCSTREAM_BusSuspended;
-     ab6:      83 e0           ldi     r24, 0x03       ; 3
+     a54:      83 e0           ldi     r24, 0x03       ; 3
        }
 
        return ENDPOINT_RWCSTREAM_NoError;
 }
-     ab8:      08 95           ret
+     a56:      08 95           ret
 
-00000aba <Endpoint_ConfigureEndpoint_Prv>:
+00000a58 <Endpoint_ConfigureEndpoint_Prv>:
        UECFG0X = UECFG0XData;
        UECFG1X = UECFG1XData;
 
        return Endpoint_IsConfigured();
 #else
        for (uint8_t EPNum = Number; EPNum < ENDPOINT_TOTAL_ENDPOINTS; EPNum++)
-     aba:      98 2f           mov     r25, r24
-     abc:      2c c0           rjmp    .+88            ; 0xb16 <Endpoint_ConfigureEndpoint_Prv+0x5c>
+     a58:      98 2f           mov     r25, r24
+     a5a:      2c c0           rjmp    .+88            ; 0xab4 <Endpoint_ConfigureEndpoint_Prv+0x5c>
                         */
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UENUM = (Address & ENDPOINT_EPNUM_MASK);
-     abe:      29 2f           mov     r18, r25
-     ac0:      2f 70           andi    r18, 0x0F       ; 15
-     ac2:      20 93 e9 00     sts     0x00E9, r18
+     a5c:      29 2f           mov     r18, r25
+     a5e:      2f 70           andi    r18, 0x0F       ; 15
+     a60:      20 93 e9 00     sts     0x00E9, r18
                uint8_t UECFG1XTemp;
                uint8_t UEIENXTemp;
 
                Endpoint_SelectEndpoint(EPNum);
 
                if (EPNum == Number)
-     ac6:      98 17           cp      r25, r24
-     ac8:      39 f0           breq    .+14            ; 0xad8 <Endpoint_ConfigureEndpoint_Prv+0x1e>
+     a64:      98 17           cp      r25, r24
+     a66:      39 f0           breq    .+14            ; 0xa76 <Endpoint_ConfigureEndpoint_Prv+0x1e>
                        UECFG1XTemp = UECFG1XData;
                        UEIENXTemp  = 0;
                }
                else
                {
                        UECFG0XTemp = UECFG0X;
-     aca:      70 91 ec 00     lds     r23, 0x00EC
+     a68:      70 91 ec 00     lds     r23, 0x00EC
                        UECFG1XTemp = UECFG1X;
-     ace:      20 91 ed 00     lds     r18, 0x00ED
+     a6c:      20 91 ed 00     lds     r18, 0x00ED
                        UEIENXTemp  = UEIENX;
-     ad2:      50 91 f0 00     lds     r21, 0x00F0
-     ad6:      03 c0           rjmp    .+6             ; 0xade <Endpoint_ConfigureEndpoint_Prv+0x24>
+     a70:      50 91 f0 00     lds     r21, 0x00F0
+     a74:      03 c0           rjmp    .+6             ; 0xa7c <Endpoint_ConfigureEndpoint_Prv+0x24>
                Endpoint_SelectEndpoint(EPNum);
 
                if (EPNum == Number)
                {
                        UECFG0XTemp = UECFG0XData;
                        UECFG1XTemp = UECFG1XData;
-     ad8:      24 2f           mov     r18, r20
+     a76:      24 2f           mov     r18, r20
 
                Endpoint_SelectEndpoint(EPNum);
 
                if (EPNum == Number)
                {
                        UECFG0XTemp = UECFG0XData;
-     ada:      76 2f           mov     r23, r22
+     a78:      76 2f           mov     r23, r22
                        UECFG1XTemp = UECFG1XData;
                        UEIENXTemp  = 0;
-     adc:      50 e0           ldi     r21, 0x00       ; 0
+     a7a:      50 e0           ldi     r21, 0x00       ; 0
                        UECFG0XTemp = UECFG0X;
                        UECFG1XTemp = UECFG1X;
                        UEIENXTemp  = UEIENX;
                }
 
                if (!(UECFG1XTemp & (1 << ALLOC)))
-     ade:      21 ff           sbrs    r18, 1
-     ae0:      19 c0           rjmp    .+50            ; 0xb14 <Endpoint_ConfigureEndpoint_Prv+0x5a>
+     a7c:      21 ff           sbrs    r18, 1
+     a7e:      19 c0           rjmp    .+50            ; 0xab2 <Endpoint_ConfigureEndpoint_Prv+0x5a>
                         *  to and from a host.
                         */
                        static inline void Endpoint_DisableEndpoint(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_DisableEndpoint(void)
                        {
                                UECONX &= ~(1 << EPEN);
-     ae2:      30 91 eb 00     lds     r19, 0x00EB
-     ae6:      3e 7f           andi    r19, 0xFE       ; 254
-     ae8:      30 93 eb 00     sts     0x00EB, r19
+     a80:      30 91 eb 00     lds     r19, 0x00EB
+     a84:      3e 7f           andi    r19, 0xFE       ; 254
+     a86:      30 93 eb 00     sts     0x00EB, r19
                  continue;
 
                Endpoint_DisableEndpoint();
                UECFG1X &= ~(1 << ALLOC);
-     aec:      30 91 ed 00     lds     r19, 0x00ED
-     af0:      3d 7f           andi    r19, 0xFD       ; 253
-     af2:      30 93 ed 00     sts     0x00ED, r19
+     a8a:      30 91 ed 00     lds     r19, 0x00ED
+     a8e:      3d 7f           andi    r19, 0xFD       ; 253
+     a90:      30 93 ed 00     sts     0x00ED, r19
                         *  \note Endpoints must first be configured properly via \ref Endpoint_ConfigureEndpoint().
                         */
                        static inline void Endpoint_EnableEndpoint(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_EnableEndpoint(void)
                        {
                                UECONX |= (1 << EPEN);
-     af6:      30 91 eb 00     lds     r19, 0x00EB
-     afa:      31 60           ori     r19, 0x01       ; 1
-     afc:      30 93 eb 00     sts     0x00EB, r19
+     a94:      30 91 eb 00     lds     r19, 0x00EB
+     a98:      31 60           ori     r19, 0x01       ; 1
+     a9a:      30 93 eb 00     sts     0x00EB, r19
 
                Endpoint_EnableEndpoint();
                UECFG0X = UECFG0XTemp;
-     b00:      70 93 ec 00     sts     0x00EC, r23
+     a9e:      70 93 ec 00     sts     0x00EC, r23
                UECFG1X = UECFG1XTemp;
-     b04:      20 93 ed 00     sts     0x00ED, r18
+     aa2:      20 93 ed 00     sts     0x00ED, r18
                UEIENX  = UEIENXTemp;
-     b08:      50 93 f0 00     sts     0x00F0, r21
+     aa6:      50 93 f0 00     sts     0x00F0, r21
                         *  \return Boolean \c true if the currently selected endpoint has been configured, \c false otherwise.
                         */
                        static inline bool Endpoint_IsConfigured(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsConfigured(void)
                        {
                                return ((UESTA0X & (1 << CFGOK)) ? true : false);
-     b0c:      20 91 ee 00     lds     r18, 0x00EE
+     aaa:      20 91 ee 00     lds     r18, 0x00EE
 
                if (!(Endpoint_IsConfigured()))
-     b10:      27 ff           sbrs    r18, 7
-     b12:      08 c0           rjmp    .+16            ; 0xb24 <Endpoint_ConfigureEndpoint_Prv+0x6a>
+     aae:      27 ff           sbrs    r18, 7
+     ab0:      08 c0           rjmp    .+16            ; 0xac2 <Endpoint_ConfigureEndpoint_Prv+0x6a>
        UECFG0X = UECFG0XData;
        UECFG1X = UECFG1XData;
 
        return Endpoint_IsConfigured();
 #else
        for (uint8_t EPNum = Number; EPNum < ENDPOINT_TOTAL_ENDPOINTS; EPNum++)
-     b14:      9f 5f           subi    r25, 0xFF       ; 255
-     b16:      95 30           cpi     r25, 0x05       ; 5
-     b18:      90 f2           brcs    .-92            ; 0xabe <Endpoint_ConfigureEndpoint_Prv+0x4>
+     ab2:      9f 5f           subi    r25, 0xFF       ; 255
+     ab4:      95 30           cpi     r25, 0x05       ; 5
+     ab6:      90 f2           brcs    .-92            ; 0xa5c <Endpoint_ConfigureEndpoint_Prv+0x4>
                         */
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UENUM = (Address & ENDPOINT_EPNUM_MASK);
-     b1a:      8f 70           andi    r24, 0x0F       ; 15
-     b1c:      80 93 e9 00     sts     0x00E9, r24
+     ab8:      8f 70           andi    r24, 0x0F       ; 15
+     aba:      80 93 e9 00     sts     0x00E9, r24
                if (!(Endpoint_IsConfigured()))
                  return false;
        }
 
        Endpoint_SelectEndpoint(Number);
        return true;
-     b20:      81 e0           ldi     r24, 0x01       ; 1
-     b22:      08 95           ret
+     abe:      81 e0           ldi     r24, 0x01       ; 1
+     ac0:      08 95           ret
                UECFG0X = UECFG0XTemp;
                UECFG1X = UECFG1XTemp;
                UEIENX  = UEIENXTemp;
 
                if (!(Endpoint_IsConfigured()))
                  return false;
-     b24:      80 e0           ldi     r24, 0x00       ; 0
+     ac2:      80 e0           ldi     r24, 0x00       ; 0
        }
 
        Endpoint_SelectEndpoint(Number);
        return true;
 #endif
 }
-     b26:      08 95           ret
+     ac4:      08 95           ret
 
-00000b28 <Endpoint_ConfigureEndpointTable>:
+00000ac6 <Endpoint_ConfigureEndpointTable>:
 uint8_t USB_Device_ControlEndpointSize = ENDPOINT_CONTROLEP_DEFAULT_SIZE;
 #endif
 
 bool Endpoint_ConfigureEndpointTable(const USB_Endpoint_Table_t* const Table,
                                      const uint8_t Entries)
 {
-     b28:      ef 92           push    r14
-     b2a:      ff 92           push    r15
-     b2c:      0f 93           push    r16
-     b2e:      1f 93           push    r17
-     b30:      cf 93           push    r28
-     b32:      df 93           push    r29
-     b34:      16 2f           mov     r17, r22
+     ac6:      ef 92           push    r14
+     ac8:      ff 92           push    r15
+     aca:      0f 93           push    r16
+     acc:      1f 93           push    r17
+     ace:      cf 93           push    r28
+     ad0:      df 93           push    r29
+     ad2:      16 2f           mov     r17, r22
        {
                if (!(Table[i].Address))
                  continue;
        
                if (!(Endpoint_ConfigureEndpoint(Table[i].Address, Table[i].Type, Table[i].Size, Table[i].Banks)))
                  return false;
-     b36:      e8 2e           mov     r14, r24
-     b38:      e7 01           movw    r28, r14
-     b3a:      7e 01           movw    r14, r28
-     b3c:      f9 2e           mov     r15, r25
-     b3e:      e7 01           movw    r28, r14
+     ad4:      e8 2e           mov     r14, r24
+     ad6:      e7 01           movw    r28, r14
+     ad8:      7e 01           movw    r14, r28
+     ada:      f9 2e           mov     r15, r25
+     adc:      e7 01           movw    r28, r14
 #endif
 
 bool Endpoint_ConfigureEndpointTable(const USB_Endpoint_Table_t* const Table,
                                      const uint8_t Entries)
 {
        for (uint8_t i = 0; i < Entries; i++)
-     b40:      00 e0           ldi     r16, 0x00       ; 0
-     b42:      2a c0           rjmp    .+84            ; 0xb98 <Endpoint_ConfigureEndpointTable+0x70>
+     ade:      00 e0           ldi     r16, 0x00       ; 0
+     ae0:      2a c0           rjmp    .+84            ; 0xb36 <Endpoint_ConfigureEndpointTable+0x70>
        {
                if (!(Table[i].Address))
-     b44:      98 81           ld      r25, Y
-     b46:      99 23           and     r25, r25
-     b48:      29 f1           breq    .+74            ; 0xb94 <Endpoint_ConfigureEndpointTable+0x6c>
+     ae2:      98 81           ld      r25, Y
+     ae4:      99 23           and     r25, r25
+     ae6:      29 f1           breq    .+74            ; 0xb32 <Endpoint_ConfigureEndpointTable+0x6c>
                  continue;
        
                if (!(Endpoint_ConfigureEndpoint(Table[i].Address, Table[i].Type, Table[i].Size, Table[i].Banks)))
-     b4a:      6b 81           ldd     r22, Y+3        ; 0x03
-     b4c:      e9 81           ldd     r30, Y+1        ; 0x01
-     b4e:      fa 81           ldd     r31, Y+2        ; 0x02
-     b50:      2c 81           ldd     r18, Y+4        ; 0x04
+     ae8:      6b 81           ldd     r22, Y+3        ; 0x03
+     aea:      e9 81           ldd     r30, Y+1        ; 0x01
+     aec:      fa 81           ldd     r31, Y+2        ; 0x02
+     aee:      2c 81           ldd     r18, Y+4        ; 0x04
                        static inline bool Endpoint_ConfigureEndpoint(const uint8_t Address,
                                                                      const uint8_t Type,
                                                                      const uint16_t Size,
                                                                      const uint8_t Banks)
                        {
                                uint8_t Number = (Address & ENDPOINT_EPNUM_MASK);
-     b52:      89 2f           mov     r24, r25
-     b54:      8f 70           andi    r24, 0x0F       ; 15
+     af0:      89 2f           mov     r24, r25
+     af2:      8f 70           andi    r24, 0x0F       ; 15
 
                                if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
-     b56:      85 30           cpi     r24, 0x05       ; 5
-     b58:      18 f5           brcc    .+70            ; 0xba0 <Endpoint_ConfigureEndpointTable+0x78>
+     af4:      85 30           cpi     r24, 0x05       ; 5
+     af6:      18 f5           brcc    .+70            ; 0xb3e <Endpoint_ConfigureEndpointTable+0x78>
                                  return false;
 
                                return Endpoint_ConfigureEndpoint_Prv(Number,
                                                                      ((Type << EPTYPE0) | ((Address & ENDPOINT_DIR_IN) ? (1 << EPDIR) : 0)),
-     b5a:      62 95           swap    r22
-     b5c:      66 0f           add     r22, r22
-     b5e:      66 0f           add     r22, r22
-     b60:      60 7c           andi    r22, 0xC0       ; 192
-     b62:      99 1f           adc     r25, r25
-     b64:      99 27           eor     r25, r25
-     b66:      99 1f           adc     r25, r25
+     af8:      62 95           swap    r22
+     afa:      66 0f           add     r22, r22
+     afc:      66 0f           add     r22, r22
+     afe:      60 7c           andi    r22, 0xC0       ; 192
+     b00:      99 1f           adc     r25, r25
+     b02:      99 27           eor     r25, r25
+     b04:      99 1f           adc     r25, r25
                                uint8_t Number = (Address & ENDPOINT_EPNUM_MASK);
 
                                if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
                                  return false;
 
                                return Endpoint_ConfigureEndpoint_Prv(Number,
-     b68:      69 2b           or      r22, r25
-     b6a:      22 30           cpi     r18, 0x02       ; 2
-     b6c:      10 f0           brcs    .+4             ; 0xb72 <Endpoint_ConfigureEndpointTable+0x4a>
-     b6e:      96 e0           ldi     r25, 0x06       ; 6
-     b70:      01 c0           rjmp    .+2             ; 0xb74 <Endpoint_ConfigureEndpointTable+0x4c>
-     b72:      92 e0           ldi     r25, 0x02       ; 2
+     b06:      69 2b           or      r22, r25
+     b08:      22 30           cpi     r18, 0x02       ; 2
+     b0a:      10 f0           brcs    .+4             ; 0xb10 <Endpoint_ConfigureEndpointTable+0x4a>
+     b0c:      96 e0           ldi     r25, 0x06       ; 6
+     b0e:      01 c0           rjmp    .+2             ; 0xb12 <Endpoint_ConfigureEndpointTable+0x4c>
+     b10:      92 e0           ldi     r25, 0x02       ; 2
                        static inline uint8_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes) ATTR_WARN_UNUSED_RESULT ATTR_CONST
                                                                                               ATTR_ALWAYS_INLINE;
                        static inline uint8_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes)
                        {
                                uint8_t  MaskVal    = 0;
                                uint16_t CheckBytes = 8;
-     b74:      28 e0           ldi     r18, 0x08       ; 8
-     b76:      30 e0           ldi     r19, 0x00       ; 0
+     b12:      28 e0           ldi     r18, 0x08       ; 8
+     b14:      30 e0           ldi     r19, 0x00       ; 0
                /* Inline Functions: */
                        static inline uint8_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes) ATTR_WARN_UNUSED_RESULT ATTR_CONST
                                                                                               ATTR_ALWAYS_INLINE;
                        static inline uint8_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes)
                        {
                                uint8_t  MaskVal    = 0;
-     b78:      40 e0           ldi     r20, 0x00       ; 0
-     b7a:      03 c0           rjmp    .+6             ; 0xb82 <Endpoint_ConfigureEndpointTable+0x5a>
+     b16:      40 e0           ldi     r20, 0x00       ; 0
+     b18:      03 c0           rjmp    .+6             ; 0xb20 <Endpoint_ConfigureEndpointTable+0x5a>
                                uint16_t CheckBytes = 8;
 
                                while (CheckBytes < Bytes)
                                {
                                        MaskVal++;
-     b7c:      4f 5f           subi    r20, 0xFF       ; 255
+     b1a:      4f 5f           subi    r20, 0xFF       ; 255
                                        CheckBytes <<= 1;
-     b7e:      22 0f           add     r18, r18
-     b80:      33 1f           adc     r19, r19
+     b1c:      22 0f           add     r18, r18
+     b1e:      33 1f           adc     r19, r19
                        static inline uint8_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes)
                        {
                                uint8_t  MaskVal    = 0;
                                uint16_t CheckBytes = 8;
 
                                while (CheckBytes < Bytes)
-     b82:      2e 17           cp      r18, r30
-     b84:      3f 07           cpc     r19, r31
-     b86:      d0 f3           brcs    .-12            ; 0xb7c <Endpoint_ConfigureEndpointTable+0x54>
+     b20:      2e 17           cp      r18, r30
+     b22:      3f 07           cpc     r19, r31
+     b24:      d0 f3           brcs    .-12            ; 0xb1a <Endpoint_ConfigureEndpointTable+0x54>
                                {
                                        MaskVal++;
                                        CheckBytes <<= 1;
                                }
 
                                return (MaskVal << EPSIZE0);
-     b88:      42 95           swap    r20
-     b8a:      40 7f           andi    r20, 0xF0       ; 240
+     b26:      42 95           swap    r20
+     b28:      40 7f           andi    r20, 0xF0       ; 240
                                uint8_t Number = (Address & ENDPOINT_EPNUM_MASK);
 
                                if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
                                  return false;
 
                                return Endpoint_ConfigureEndpoint_Prv(Number,
-     b8c:      49 2b           or      r20, r25
-     b8e:      95 df           rcall   .-214           ; 0xaba <Endpoint_ConfigureEndpoint_Prv>
-     b90:      88 23           and     r24, r24
-     b92:      31 f0           breq    .+12            ; 0xba0 <Endpoint_ConfigureEndpointTable+0x78>
+     b2a:      49 2b           or      r20, r25
+     b2c:      95 df           rcall   .-214           ; 0xa58 <Endpoint_ConfigureEndpoint_Prv>
+     b2e:      88 23           and     r24, r24
+     b30:      31 f0           breq    .+12            ; 0xb3e <Endpoint_ConfigureEndpointTable+0x78>
 #endif
 
 bool Endpoint_ConfigureEndpointTable(const USB_Endpoint_Table_t* const Table,
                                      const uint8_t Entries)
 {
        for (uint8_t i = 0; i < Entries; i++)
-     b94:      0f 5f           subi    r16, 0xFF       ; 255
-     b96:      25 96           adiw    r28, 0x05       ; 5
-     b98:      01 17           cp      r16, r17
-     b9a:      a0 f2           brcs    .-88            ; 0xb44 <Endpoint_ConfigureEndpointTable+0x1c>
+     b32:      0f 5f           subi    r16, 0xFF       ; 255
+     b34:      25 96           adiw    r28, 0x05       ; 5
+     b36:      01 17           cp      r16, r17
+     b38:      a0 f2           brcs    .-88            ; 0xae2 <Endpoint_ConfigureEndpointTable+0x1c>
        
                if (!(Endpoint_ConfigureEndpoint(Table[i].Address, Table[i].Type, Table[i].Size, Table[i].Banks)))
                  return false;
        }
        
        return true;
-     b9c:      81 e0           ldi     r24, 0x01       ; 1
-     b9e:      01 c0           rjmp    .+2             ; 0xba2 <Endpoint_ConfigureEndpointTable+0x7a>
+     b3a:      81 e0           ldi     r24, 0x01       ; 1
+     b3c:      01 c0           rjmp    .+2             ; 0xb40 <Endpoint_ConfigureEndpointTable+0x7a>
        {
                if (!(Table[i].Address))
                  continue;
        
                if (!(Endpoint_ConfigureEndpoint(Table[i].Address, Table[i].Type, Table[i].Size, Table[i].Banks)))
                  return false;
-     ba0:      80 e0           ldi     r24, 0x00       ; 0
+     b3e:      80 e0           ldi     r24, 0x00       ; 0
        }
        
        return true;
 }
-     ba2:      df 91           pop     r29
-     ba4:      cf 91           pop     r28
-     ba6:      1f 91           pop     r17
-     ba8:      0f 91           pop     r16
-     baa:      ff 90           pop     r15
-     bac:      ef 90           pop     r14
-     bae:      08 95           ret
-
-00000bb0 <Endpoint_ClearStatusStage>:
+     b40:      df 91           pop     r29
+     b42:      cf 91           pop     r28
+     b44:      1f 91           pop     r17
+     b46:      0f 91           pop     r16
+     b48:      ff 90           pop     r15
+     b4a:      ef 90           pop     r14
+     b4c:      08 95           ret
+
+00000b4e <Endpoint_ClearStatusStage>:
        }
 }
 
 void Endpoint_ClearStatusStage(void)
 {
        if (USB_ControlRequest.bmRequestType & REQDIR_DEVICETOHOST)
-     bb0:      80 91 6e 02     lds     r24, 0x026E
-     bb4:      87 ff           sbrs    r24, 7
-     bb6:      11 c0           rjmp    .+34            ; 0xbda <Endpoint_ClearStatusStage+0x2a>
-     bb8:      03 c0           rjmp    .+6             ; 0xbc0 <Endpoint_ClearStatusStage+0x10>
+     b4e:      80 91 74 02     lds     r24, 0x0274
+     b52:      87 ff           sbrs    r24, 7
+     b54:      11 c0           rjmp    .+34            ; 0xb78 <Endpoint_ClearStatusStage+0x2a>
+     b56:      03 c0           rjmp    .+6             ; 0xb5e <Endpoint_ClearStatusStage+0x10>
        {
                while (!(Endpoint_IsOUTReceived()))
                {
                        if (USB_DeviceState == DEVICE_STATE_Unattached)
-     bba:      8e b3           in      r24, 0x1e       ; 30
-     bbc:      88 23           and     r24, r24
-     bbe:      b1 f0           breq    .+44            ; 0xbec <Endpoint_ClearStatusStage+0x3c>
+     b58:      8e b3           in      r24, 0x1e       ; 30
+     b5a:      88 23           and     r24, r24
+     b5c:      b1 f0           breq    .+44            ; 0xb8a <Endpoint_ClearStatusStage+0x3c>
                         *  \return Boolean \c true if current endpoint is has received an OUT packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsOUTReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsOUTReceived(void)
                        {
                                return ((UEINTX & (1 << RXOUTI)) ? true : false);
-     bc0:      80 91 e8 00     lds     r24, 0x00E8
+     b5e:      80 91 e8 00     lds     r24, 0x00E8
 
 void Endpoint_ClearStatusStage(void)
 {
        if (USB_ControlRequest.bmRequestType & REQDIR_DEVICETOHOST)
        {
                while (!(Endpoint_IsOUTReceived()))
-     bc4:      82 ff           sbrs    r24, 2
-     bc6:      f9 cf           rjmp    .-14            ; 0xbba <Endpoint_ClearStatusStage+0xa>
+     b62:      82 ff           sbrs    r24, 2
+     b64:      f9 cf           rjmp    .-14            ; 0xb58 <Endpoint_ClearStatusStage+0xa>
                         */
                        static inline void Endpoint_ClearOUT(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearOUT(void)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UEINTX &= ~((1 << RXOUTI) | (1 << FIFOCON));
-     bc8:      80 91 e8 00     lds     r24, 0x00E8
-     bcc:      8b 77           andi    r24, 0x7B       ; 123
-     bce:      80 93 e8 00     sts     0x00E8, r24
-     bd2:      08 95           ret
+     b66:      80 91 e8 00     lds     r24, 0x00E8
+     b6a:      8b 77           andi    r24, 0x7B       ; 123
+     b6c:      80 93 e8 00     sts     0x00E8, r24
+     b70:      08 95           ret
        }
        else
        {
                while (!(Endpoint_IsINReady()))
                {
                        if (USB_DeviceState == DEVICE_STATE_Unattached)
-     bd4:      8e b3           in      r24, 0x1e       ; 30
-     bd6:      88 23           and     r24, r24
-     bd8:      49 f0           breq    .+18            ; 0xbec <Endpoint_ClearStatusStage+0x3c>
+     b72:      8e b3           in      r24, 0x1e       ; 30
+     b74:      88 23           and     r24, r24
+     b76:      49 f0           breq    .+18            ; 0xb8a <Endpoint_ClearStatusStage+0x3c>
                         *  \return Boolean \c true if the current endpoint is ready for an IN packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsINReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsINReady(void)
                        {
                                return ((UEINTX & (1 << TXINI)) ? true : false);
-     bda:      80 91 e8 00     lds     r24, 0x00E8
+     b78:      80 91 e8 00     lds     r24, 0x00E8
 
                Endpoint_ClearOUT();
        }
        else
        {
                while (!(Endpoint_IsINReady()))
-     bde:      80 ff           sbrs    r24, 0
-     be0:      f9 cf           rjmp    .-14            ; 0xbd4 <Endpoint_ClearStatusStage+0x24>
+     b7c:      80 ff           sbrs    r24, 0
+     b7e:      f9 cf           rjmp    .-14            ; 0xb72 <Endpoint_ClearStatusStage+0x24>
                         */
                        static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearIN(void)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
-     be2:      80 91 e8 00     lds     r24, 0x00E8
-     be6:      8e 77           andi    r24, 0x7E       ; 126
-     be8:      80 93 e8 00     sts     0x00E8, r24
-     bec:      08 95           ret
+     b80:      80 91 e8 00     lds     r24, 0x00E8
+     b84:      8e 77           andi    r24, 0x7E       ; 126
+     b86:      80 93 e8 00     sts     0x00E8, r24
+     b8a:      08 95           ret
 
-00000bee <Endpoint_WaitUntilReady>:
+00000b8c <Endpoint_WaitUntilReady>:
                         *  \return Current USB frame number from the USB controller.
                         */
                        static inline uint16_t USB_Device_GetFrameNumber(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
                        static inline uint16_t USB_Device_GetFrameNumber(void)
                        {
                                return UDFNUM;
-     bee:      80 91 e4 00     lds     r24, 0x00E4
-     bf2:      90 91 e5 00     lds     r25, 0x00E5
+     b8c:      80 91 e4 00     lds     r24, 0x00E4
+     b90:      90 91 e5 00     lds     r25, 0x00E5
 
 #if !defined(CONTROL_ONLY_DEVICE)
 uint8_t Endpoint_WaitUntilReady(void)
 {
        #if (USB_STREAM_TIMEOUT_MS < 0xFF)
        uint8_t  TimeoutMSRem = USB_STREAM_TIMEOUT_MS;
-     bf6:      44 e6           ldi     r20, 0x64       ; 100
+     b94:      44 e6           ldi     r20, 0x64       ; 100
                         *  \return The currently selected endpoint's direction, as a \c ENDPOINT_DIR_* mask.
                         */
                        static inline uint8_t Endpoint_GetEndpointDirection(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline uint8_t Endpoint_GetEndpointDirection(void)
                        {
                                return (UECFG0X & (1 << EPDIR)) ? ENDPOINT_DIR_IN : ENDPOINT_DIR_OUT;
-     bf8:      20 91 ec 00     lds     r18, 0x00EC
-     bfc:      20 ff           sbrs    r18, 0
-     bfe:      25 c0           rjmp    .+74            ; 0xc4a <Endpoint_WaitUntilReady+0x5c>
+     b96:      20 91 ec 00     lds     r18, 0x00EC
+     b9a:      20 ff           sbrs    r18, 0
+     b9c:      25 c0           rjmp    .+74            ; 0xbe8 <Endpoint_WaitUntilReady+0x5c>
                         *  \return Boolean \c true if the current endpoint is ready for an IN packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsINReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsINReady(void)
                        {
                                return ((UEINTX & (1 << TXINI)) ? true : false);
-     c00:      20 91 e8 00     lds     r18, 0x00E8
+     b9e:      20 91 e8 00     lds     r18, 0x00E8
 
        for (;;)
        {
                if (Endpoint_GetEndpointDirection() == ENDPOINT_DIR_IN)
                {
                        if (Endpoint_IsINReady())
-     c04:      20 fd           sbrc    r18, 0
-     c06:      15 c0           rjmp    .+42            ; 0xc32 <Endpoint_WaitUntilReady+0x44>
+     ba2:      20 fd           sbrc    r18, 0
+     ba4:      15 c0           rjmp    .+42            ; 0xbd0 <Endpoint_WaitUntilReady+0x44>
                {
                        if (Endpoint_IsOUTReceived())
                          return ENDPOINT_READYWAIT_NoError;
                }
 
                uint8_t USB_DeviceState_LCL = USB_DeviceState;
-     c08:      2e b3           in      r18, 0x1e       ; 30
+     ba6:      2e b3           in      r18, 0x1e       ; 30
 
                if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
-     c0a:      22 23           and     r18, r18
-     c0c:      a1 f0           breq    .+40            ; 0xc36 <Endpoint_WaitUntilReady+0x48>
+     ba8:      22 23           and     r18, r18
+     baa:      a1 f0           breq    .+40            ; 0xbd4 <Endpoint_WaitUntilReady+0x48>
                  return ENDPOINT_READYWAIT_DeviceDisconnected;
                else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
-     c0e:      25 30           cpi     r18, 0x05       ; 5
-     c10:      a1 f0           breq    .+40            ; 0xc3a <Endpoint_WaitUntilReady+0x4c>
+     bac:      25 30           cpi     r18, 0x05       ; 5
+     bae:      a1 f0           breq    .+40            ; 0xbd8 <Endpoint_WaitUntilReady+0x4c>
                         *  \return Boolean \c true if the currently selected endpoint is stalled, \c false otherwise.
                         */
                        static inline bool Endpoint_IsStalled(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsStalled(void)
                        {
                                return ((UECONX & (1 << STALLRQ)) ? true : false);
-     c12:      20 91 eb 00     lds     r18, 0x00EB
+     bb0:      20 91 eb 00     lds     r18, 0x00EB
                  return ENDPOINT_READYWAIT_BusSuspended;
                else if (Endpoint_IsStalled())
-     c16:      25 fd           sbrc    r18, 5
-     c18:      12 c0           rjmp    .+36            ; 0xc3e <Endpoint_WaitUntilReady+0x50>
-     c1a:      20 91 e4 00     lds     r18, 0x00E4
-     c1e:      30 91 e5 00     lds     r19, 0x00E5
+     bb4:      25 fd           sbrc    r18, 5
+     bb6:      12 c0           rjmp    .+36            ; 0xbdc <Endpoint_WaitUntilReady+0x50>
+     bb8:      20 91 e4 00     lds     r18, 0x00E4
+     bbc:      30 91 e5 00     lds     r19, 0x00E5
                  return ENDPOINT_READYWAIT_EndpointStalled;
 
                uint16_t CurrentFrameNumber = USB_Device_GetFrameNumber();
 
                if (CurrentFrameNumber != PreviousFrameNumber)
-     c22:      28 17           cp      r18, r24
-     c24:      39 07           cpc     r19, r25
-     c26:      41 f3           breq    .-48            ; 0xbf8 <Endpoint_WaitUntilReady+0xa>
+     bc0:      28 17           cp      r18, r24
+     bc2:      39 07           cpc     r19, r25
+     bc4:      41 f3           breq    .-48            ; 0xb96 <Endpoint_WaitUntilReady+0xa>
                {
                        PreviousFrameNumber = CurrentFrameNumber;
 
                        if (!(TimeoutMSRem--))
-     c28:      44 23           and     r20, r20
-     c2a:      59 f0           breq    .+22            ; 0xc42 <Endpoint_WaitUntilReady+0x54>
-     c2c:      41 50           subi    r20, 0x01       ; 1
-     c2e:      c9 01           movw    r24, r18
-     c30:      e3 cf           rjmp    .-58            ; 0xbf8 <Endpoint_WaitUntilReady+0xa>
+     bc6:      44 23           and     r20, r20
+     bc8:      59 f0           breq    .+22            ; 0xbe0 <Endpoint_WaitUntilReady+0x54>
+     bca:      41 50           subi    r20, 0x01       ; 1
+     bcc:      c9 01           movw    r24, r18
+     bce:      e3 cf           rjmp    .-58            ; 0xb96 <Endpoint_WaitUntilReady+0xa>
        for (;;)
        {
                if (Endpoint_GetEndpointDirection() == ENDPOINT_DIR_IN)
                {
                        if (Endpoint_IsINReady())
                          return ENDPOINT_READYWAIT_NoError;
-     c32:      80 e0           ldi     r24, 0x00       ; 0
-     c34:      08 95           ret
+     bd0:      80 e0           ldi     r24, 0x00       ; 0
+     bd2:      08 95           ret
                }
 
                uint8_t USB_DeviceState_LCL = USB_DeviceState;
 
                if (USB_DeviceState_LCL == DEVICE_STATE_Unattached)
                  return ENDPOINT_READYWAIT_DeviceDisconnected;
-     c36:      82 e0           ldi     r24, 0x02       ; 2
-     c38:      08 95           ret
+     bd4:      82 e0           ldi     r24, 0x02       ; 2
+     bd6:      08 95           ret
                else if (USB_DeviceState_LCL == DEVICE_STATE_Suspended)
                  return ENDPOINT_READYWAIT_BusSuspended;
-     c3a:      83 e0           ldi     r24, 0x03       ; 3
-     c3c:      08 95           ret
+     bd8:      83 e0           ldi     r24, 0x03       ; 3
+     bda:      08 95           ret
                else if (Endpoint_IsStalled())
                  return ENDPOINT_READYWAIT_EndpointStalled;
-     c3e:      81 e0           ldi     r24, 0x01       ; 1
-     c40:      08 95           ret
+     bdc:      81 e0           ldi     r24, 0x01       ; 1
+     bde:      08 95           ret
                if (CurrentFrameNumber != PreviousFrameNumber)
                {
                        PreviousFrameNumber = CurrentFrameNumber;
 
                        if (!(TimeoutMSRem--))
                          return ENDPOINT_READYWAIT_Timeout;
-     c42:      84 e0           ldi     r24, 0x04       ; 4
-     c44:      08 95           ret
+     be0:      84 e0           ldi     r24, 0x04       ; 4
+     be2:      08 95           ret
                          return ENDPOINT_READYWAIT_NoError;
                }
                else
                {
                        if (Endpoint_IsOUTReceived())
                          return ENDPOINT_READYWAIT_NoError;
-     c46:      80 e0           ldi     r24, 0x00       ; 0
+     be4:      80 e0           ldi     r24, 0x00       ; 0
 
                        if (!(TimeoutMSRem--))
                          return ENDPOINT_READYWAIT_Timeout;
                }
        }
 }
-     c48:      08 95           ret
+     be6:      08 95           ret
                         *  \return Boolean \c true if current endpoint is has received an OUT packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsOUTReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsOUTReceived(void)
                        {
                                return ((UEINTX & (1 << RXOUTI)) ? true : false);
-     c4a:      20 91 e8 00     lds     r18, 0x00E8
+     be8:      20 91 e8 00     lds     r18, 0x00E8
                        if (Endpoint_IsINReady())
                          return ENDPOINT_READYWAIT_NoError;
                }
                else
                {
                        if (Endpoint_IsOUTReceived())
-     c4e:      22 ff           sbrs    r18, 2
-     c50:      db cf           rjmp    .-74            ; 0xc08 <Endpoint_WaitUntilReady+0x1a>
-     c52:      f9 cf           rjmp    .-14            ; 0xc46 <Endpoint_WaitUntilReady+0x58>
+     bec:      22 ff           sbrs    r18, 2
+     bee:      db cf           rjmp    .-74            ; 0xba6 <Endpoint_WaitUntilReady+0x1a>
+     bf0:      f9 cf           rjmp    .-14            ; 0xbe4 <Endpoint_WaitUntilReady+0x58>
 
-00000c54 <USB_ResetInterface>:
+00000bf2 <USB_ResetInterface>:
 {
        #if defined(USB_CAN_BE_BOTH)
        bool UIDModeSelectEnabled = ((UHWCON & (1 << UIDE)) != 0);
        #endif
 
        USB_INT_DisableAllInterrupts();
-     c54:      40 d0           rcall   .+128           ; 0xcd6 <USB_INT_DisableAllInterrupts>
+     bf2:      40 d0           rcall   .+128           ; 0xc74 <USB_INT_DisableAllInterrupts>
        USB_INT_ClearAllInterrupts();
-     c56:      42 d0           rcall   .+132           ; 0xcdc <USB_INT_ClearAllInterrupts>
+     bf4:      42 d0           rcall   .+132           ; 0xc7a <USB_INT_ClearAllInterrupts>
                        }
 
                        static inline void USB_Controller_Reset(void) ATTR_ALWAYS_INLINE;
                        static inline void USB_Controller_Reset(void)
                        {
                                USBCON &= ~(1 << USBE);
-     c58:      80 91 d8 00     lds     r24, 0x00D8
-     c5c:      8f 77           andi    r24, 0x7F       ; 127
-     c5e:      80 93 d8 00     sts     0x00D8, r24
+     bf6:      80 91 d8 00     lds     r24, 0x00D8
+     bfa:      8f 77           andi    r24, 0x7F       ; 127
+     bfc:      80 93 d8 00     sts     0x00D8, r24
                                USBCON |=  (1 << USBE);
-     c62:      80 91 d8 00     lds     r24, 0x00D8
-     c66:      80 68           ori     r24, 0x80       ; 128
-     c68:      80 93 d8 00     sts     0x00D8, r24
+     c00:      80 91 d8 00     lds     r24, 0x00D8
+     c04:      80 68           ori     r24, 0x80       ; 128
+     c06:      80 93 d8 00     sts     0x00D8, r24
                        }
 
                        static inline void USB_CLK_Unfreeze(void) ATTR_ALWAYS_INLINE;
                        static inline void USB_CLK_Unfreeze(void)
                        {
                                USBCON &= ~(1 << FRZCLK);
-     c6c:      80 91 d8 00     lds     r24, 0x00D8
-     c70:      8f 7d           andi    r24, 0xDF       ; 223
-     c72:      80 93 d8 00     sts     0x00D8, r24
+     c0a:      80 91 d8 00     lds     r24, 0x00D8
+     c0e:      8f 7d           andi    r24, 0xDF       ; 223
+     c10:      80 93 d8 00     sts     0x00D8, r24
 
                /* Inline Functions: */
                        static inline void USB_PLL_On(void) ATTR_ALWAYS_INLINE;
                        static inline void USB_PLL_On(void)
                        {
                                PLLCSR = USB_PLL_PSC;
-     c76:      84 e0           ldi     r24, 0x04       ; 4
-     c78:      89 bd           out     0x29, r24       ; 41
+     c14:      84 e0           ldi     r24, 0x04       ; 4
+     c16:      89 bd           out     0x29, r24       ; 41
                                PLLCSR = (USB_PLL_PSC | (1 << PLLE));
-     c7a:      86 e0           ldi     r24, 0x06       ; 6
-     c7c:      89 bd           out     0x29, r24       ; 41
+     c18:      86 e0           ldi     r24, 0x06       ; 6
+     c1a:      89 bd           out     0x29, r24       ; 41
 
                if (!(USB_Options & USB_OPT_MANUAL_PLL))
                {
                        #if defined(USB_SERIES_2_AVR)
                        USB_PLL_On();
                        while (!(USB_PLL_IsReady()));
-     c7e:      09 b4           in      r0, 0x29        ; 41
-     c80:      00 fe           sbrs    r0, 0
-     c82:      fd cf           rjmp    .-6             ; 0xc7e <USB_ResetInterface+0x2a>
+     c1c:      09 b4           in      r0, 0x29        ; 41
+     c1e:      00 fe           sbrs    r0, 0
+     c20:      fd cf           rjmp    .-6             ; 0xc1c <USB_ResetInterface+0x2a>
 }
 
 #if defined(USB_CAN_BE_DEVICE)
 static void USB_Init_Device(void)
 {
        USB_DeviceState                 = DEVICE_STATE_Unattached;
-     c84:      1e ba           out     0x1e, r1        ; 30
+     c22:      1e ba           out     0x1e, r1        ; 30
        USB_Device_ConfigurationNumber  = 0;
-     c86:      10 92 6a 02     sts     0x026A, r1
+     c24:      10 92 70 02     sts     0x0270, r1
 
        #if !defined(NO_DEVICE_REMOTE_WAKEUP)
        USB_Device_RemoteWakeupEnabled  = false;
-     c8a:      10 92 6c 02     sts     0x026C, r1
+     c28:      10 92 72 02     sts     0x0272, r1
        #endif
 
        #if !defined(NO_DEVICE_SELF_POWER)
        USB_Device_CurrentlySelfPowered = false;
-     c8e:      10 92 6b 02     sts     0x026B, r1
+     c2c:      10 92 71 02     sts     0x0271, r1
                                uint8_t Number = (Address & ENDPOINT_EPNUM_MASK);
 
                                if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
                                  return false;
 
                                return Endpoint_ConfigureEndpoint_Prv(Number,
-     c92:      80 e0           ldi     r24, 0x00       ; 0
-     c94:      60 e0           ldi     r22, 0x00       ; 0
-     c96:      42 e0           ldi     r20, 0x02       ; 2
-     c98:      10 df           rcall   .-480           ; 0xaba <Endpoint_ConfigureEndpoint_Prv>
+     c30:      80 e0           ldi     r24, 0x00       ; 0
+     c32:      60 e0           ldi     r22, 0x00       ; 0
+     c34:      42 e0           ldi     r20, 0x02       ; 2
+     c36:      10 df           rcall   .-480           ; 0xa58 <Endpoint_ConfigureEndpoint_Prv>
                                        #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                UDINT  &= ~(1 << WAKEUPI);
                                                break;
                                        case USB_INT_SUSPI:
                                                UDINT  &= ~(1 << SUSPI);
-     c9a:      80 91 e1 00     lds     r24, 0x00E1
-     c9e:      8e 7f           andi    r24, 0xFE       ; 254
-     ca0:      80 93 e1 00     sts     0x00E1, r24
+     c38:      80 91 e1 00     lds     r24, 0x00E1
+     c3c:      8e 7f           andi    r24, 0xFE       ; 254
+     c3e:      80 93 e1 00     sts     0x00E1, r24
                                        #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                UDIEN  |= (1 << WAKEUPE);
                                                break;
                                        case USB_INT_SUSPI:
                                                UDIEN  |= (1 << SUSPE);
-     ca4:      80 91 e2 00     lds     r24, 0x00E2
-     ca8:      81 60           ori     r24, 0x01       ; 1
-     caa:      80 93 e2 00     sts     0x00E2, r24
+     c42:      80 91 e2 00     lds     r24, 0x00E2
+     c46:      81 60           ori     r24, 0x01       ; 1
+     c48:      80 93 e2 00     sts     0x00E2, r24
                                                break;
                                        case USB_INT_EORSTI:
                                                UDIEN  |= (1 << EORSTE);
-     cae:      80 91 e2 00     lds     r24, 0x00E2
-     cb2:      88 60           ori     r24, 0x08       ; 8
-     cb4:      80 93 e2 00     sts     0x00E2, r24
+     c4c:      80 91 e2 00     lds     r24, 0x00E2
+     c50:      88 60           ori     r24, 0x08       ; 8
+     c52:      80 93 e2 00     sts     0x00E2, r24
                         *  register and despite the datasheet making no mention of its requirement in host mode.
                         */
                        static inline void USB_Attach(void) ATTR_ALWAYS_INLINE;
                        static inline void USB_Attach(void)
                        {
                                UDCON  &= ~(1 << DETACH);
-     cb8:      80 91 e0 00     lds     r24, 0x00E0
-     cbc:      8e 7f           andi    r24, 0xFE       ; 254
-     cbe:      80 93 e0 00     sts     0x00E0, r24
+     c56:      80 91 e0 00     lds     r24, 0x00E0
+     c5a:      8e 7f           andi    r24, 0xFE       ; 254
+     c5c:      80 93 e0 00     sts     0x00E0, r24
        }
 
        #if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
        USB_OTGPAD_On();
        #endif
 }
-     cc2:      08 95           ret
+     c60:      08 95           ret
 
-00000cc4 <USB_Init>:
+00000c62 <USB_Init>:
                        static inline void USB_REG_On(void)
                        {
                        #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)
                                UHWCON |=  (1 << UVREGE);
                        #else
                                REGCR  &= ~(1 << REGDIS);
-     cc4:      e3 e6           ldi     r30, 0x63       ; 99
-     cc6:      f0 e0           ldi     r31, 0x00       ; 0
-     cc8:      80 81           ld      r24, Z
-     cca:      8e 7f           andi    r24, 0xFE       ; 254
-     ccc:      80 83           st      Z, r24
+     c62:      e3 e6           ldi     r30, 0x63       ; 99
+     c64:      f0 e0           ldi     r31, 0x00       ; 0
+     c66:      80 81           ld      r24, Z
+     c68:      8e 7f           andi    r24, 0xFE       ; 254
+     c6a:      80 83           st      Z, r24
                UHWCON &= ~(1 << UIDE);
                USB_CurrentMode = Mode;
        }
        #endif
 
        USB_IsInitialized = true;
-     cce:      81 e0           ldi     r24, 0x01       ; 1
-     cd0:      80 93 6d 02     sts     0x026D, r24
+     c6c:      81 e0           ldi     r24, 0x01       ; 1
+     c6e:      80 93 73 02     sts     0x0273, r24
 
        USB_ResetInterface();
 }
-     cd4:      bf cf           rjmp    .-130           ; 0xc54 <USB_ResetInterface>
+     c72:      bf cf           rjmp    .-130           ; 0xbf2 <USB_ResetInterface>
 
-00000cd6 <USB_INT_DisableAllInterrupts>:
+00000c74 <USB_INT_DisableAllInterrupts>:
        #if defined(USB_CAN_BE_HOST)
        UHIEN   = 0;
        #endif
 
        #if defined(USB_CAN_BE_DEVICE)
        UDIEN   = 0;
-     cd6:      10 92 e2 00     sts     0x00E2, r1
+     c74:      10 92 e2 00     sts     0x00E2, r1
        #endif
 }
-     cda:      08 95           ret
+     c78:      08 95           ret
 
-00000cdc <USB_INT_ClearAllInterrupts>:
+00000c7a <USB_INT_ClearAllInterrupts>:
        #if defined(USB_CAN_BE_HOST)
        UHINT  = 0;
        #endif
 
        #if defined(USB_CAN_BE_DEVICE)
        UDINT  = 0;
-     cdc:      10 92 e1 00     sts     0x00E1, r1
+     c7a:      10 92 e1 00     sts     0x00E1, r1
        #endif
 }
-     ce0:      08 95           ret
+     c7e:      08 95           ret
 
-00000ce2 <__vector_11>:
+00000c80 <__vector_11>:
 
 ISR(USB_GEN_vect, ISR_BLOCK)
 {
-     ce2:      1f 92           push    r1
-     ce4:      0f 92           push    r0
-     ce6:      0f b6           in      r0, 0x3f        ; 63
-     ce8:      0f 92           push    r0
-     cea:      11 24           eor     r1, r1
-     cec:      2f 93           push    r18
-     cee:      3f 93           push    r19
-     cf0:      4f 93           push    r20
-     cf2:      5f 93           push    r21
-     cf4:      6f 93           push    r22
-     cf6:      7f 93           push    r23
-     cf8:      8f 93           push    r24
-     cfa:      9f 93           push    r25
-     cfc:      af 93           push    r26
-     cfe:      bf 93           push    r27
-     d00:      ef 93           push    r30
-     d02:      ff 93           push    r31
+     c80:      1f 92           push    r1
+     c82:      0f 92           push    r0
+     c84:      0f b6           in      r0, 0x3f        ; 63
+     c86:      0f 92           push    r0
+     c88:      11 24           eor     r1, r1
+     c8a:      2f 93           push    r18
+     c8c:      3f 93           push    r19
+     c8e:      4f 93           push    r20
+     c90:      5f 93           push    r21
+     c92:      6f 93           push    r22
+     c94:      7f 93           push    r23
+     c96:      8f 93           push    r24
+     c98:      9f 93           push    r25
+     c9a:      af 93           push    r26
+     c9c:      bf 93           push    r27
+     c9e:      ef 93           push    r30
+     ca0:      ff 93           push    r31
                                        case USB_INT_SUSPI:
                                                return (UDINT  & (1 << SUSPI));
                                        case USB_INT_EORSTI:
                                                return (UDINT  & (1 << EORSTI));
                                        case USB_INT_SOFI:
                                                return (UDINT  & (1 << SOFI));
-     d04:      80 91 e1 00     lds     r24, 0x00E1
+     ca2:      80 91 e1 00     lds     r24, 0x00E1
        #if defined(USB_CAN_BE_DEVICE)
        #if !defined(NO_SOF_EVENTS)
        if (USB_INT_HasOccurred(USB_INT_SOFI) && USB_INT_IsEnabled(USB_INT_SOFI))
-     d08:      82 ff           sbrs    r24, 2
-     d0a:      0a c0           rjmp    .+20            ; 0xd20 <__vector_11+0x3e>
+     ca6:      82 ff           sbrs    r24, 2
+     ca8:      0a c0           rjmp    .+20            ; 0xcbe <__vector_11+0x3e>
                                        case USB_INT_SUSPI:
                                                return (UDIEN  & (1 << SUSPE));
                                        case USB_INT_EORSTI:
                                                return (UDIEN  & (1 << EORSTE));
                                        case USB_INT_SOFI:
                                                return (UDIEN  & (1 << SOFE));
-     d0c:      80 91 e2 00     lds     r24, 0x00E2
-     d10:      82 ff           sbrs    r24, 2
-     d12:      06 c0           rjmp    .+12            ; 0xd20 <__vector_11+0x3e>
+     caa:      80 91 e2 00     lds     r24, 0x00E2
+     cae:      82 ff           sbrs    r24, 2
+     cb0:      06 c0           rjmp    .+12            ; 0xcbe <__vector_11+0x3e>
                                                break;
                                        case USB_INT_EORSTI:
                                                UDINT  &= ~(1 << EORSTI);
                                                break;
                                        case USB_INT_SOFI:
                                                UDINT  &= ~(1 << SOFI);
-     d14:      80 91 e1 00     lds     r24, 0x00E1
-     d18:      8b 7f           andi    r24, 0xFB       ; 251
-     d1a:      80 93 e1 00     sts     0x00E1, r24
+     cb2:      80 91 e1 00     lds     r24, 0x00E1
+     cb6:      8b 7f           andi    r24, 0xFB       ; 251
+     cb8:      80 93 e1 00     sts     0x00E1, r24
        {
                USB_INT_Clear(USB_INT_SOFI);
 
                EVENT_USB_Device_StartOfFrame();
-     d1e:      21 d2           rcall   .+1090          ; 0x1162 <USB_Event_Stub>
+     cbc:      21 d2           rcall   .+1090          ; 0x1100 <USB_Event_Stub>
                                        #endif
                                        #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                return (UDINT  & (1 << WAKEUPI));
                                        case USB_INT_SUSPI:
                                                return (UDINT  & (1 << SUSPI));
-     d20:      80 91 e1 00     lds     r24, 0x00E1
+     cbe:      80 91 e1 00     lds     r24, 0x00E1
                        EVENT_USB_Device_Disconnect();
                }
        }
        #endif
 
        if (USB_INT_HasOccurred(USB_INT_SUSPI) && USB_INT_IsEnabled(USB_INT_SUSPI))
-     d24:      80 ff           sbrs    r24, 0
-     d26:      16 c0           rjmp    .+44            ; 0xd54 <__vector_11+0x72>
+     cc2:      80 ff           sbrs    r24, 0
+     cc4:      16 c0           rjmp    .+44            ; 0xcf2 <__vector_11+0x72>
                                        #endif
                                        #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                return (UDIEN  & (1 << WAKEUPE));
                                        case USB_INT_SUSPI:
                                                return (UDIEN  & (1 << SUSPE));
-     d28:      80 91 e2 00     lds     r24, 0x00E2
-     d2c:      80 ff           sbrs    r24, 0
-     d2e:      12 c0           rjmp    .+36            ; 0xd54 <__vector_11+0x72>
+     cc6:      80 91 e2 00     lds     r24, 0x00E2
+     cca:      80 ff           sbrs    r24, 0
+     ccc:      12 c0           rjmp    .+36            ; 0xcf2 <__vector_11+0x72>
                                        #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                UDIEN  &= ~(1 << WAKEUPE);
                                                break;
                                        case USB_INT_SUSPI:
                                                UDIEN  &= ~(1 << SUSPE);
-     d30:      80 91 e2 00     lds     r24, 0x00E2
-     d34:      8e 7f           andi    r24, 0xFE       ; 254
-     d36:      80 93 e2 00     sts     0x00E2, r24
+     cce:      80 91 e2 00     lds     r24, 0x00E2
+     cd2:      8e 7f           andi    r24, 0xFE       ; 254
+     cd4:      80 93 e2 00     sts     0x00E2, r24
                                                USBCON |= (1 << IDTE);
                                                break;
                                        #endif
                                        #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                UDIEN  |= (1 << WAKEUPE);
-     d3a:      80 91 e2 00     lds     r24, 0x00E2
-     d3e:      80 61           ori     r24, 0x10       ; 16
-     d40:      80 93 e2 00     sts     0x00E2, r24
+     cd8:      80 91 e2 00     lds     r24, 0x00E2
+     cdc:      80 61           ori     r24, 0x10       ; 16
+     cde:      80 93 e2 00     sts     0x00E2, r24
                        #endif
 
                        static inline void USB_CLK_Freeze(void) ATTR_ALWAYS_INLINE;
                        static inline void USB_CLK_Freeze(void)
                        {
                                USBCON |=  (1 << FRZCLK);
-     d44:      80 91 d8 00     lds     r24, 0x00D8
-     d48:      80 62           ori     r24, 0x20       ; 32
-     d4a:      80 93 d8 00     sts     0x00D8, r24
+     ce2:      80 91 d8 00     lds     r24, 0x00D8
+     ce6:      80 62           ori     r24, 0x20       ; 32
+     ce8:      80 93 d8 00     sts     0x00D8, r24
                        }
 
                        static inline void USB_PLL_Off(void) ATTR_ALWAYS_INLINE;
                        static inline void USB_PLL_Off(void)
                        {
                                PLLCSR = 0;
-     d4e:      19 bc           out     0x29, r1        ; 41
+     cec:      19 bc           out     0x29, r1        ; 41
 
                if (!(USB_Options & USB_OPT_MANUAL_PLL))
                  USB_PLL_Off();
 
                #if defined(USB_SERIES_2_AVR) && !defined(NO_LIMITED_CONTROLLER_CONNECT)
                USB_DeviceState = DEVICE_STATE_Unattached;
-     d50:      1e ba           out     0x1e, r1        ; 30
+     cee:      1e ba           out     0x1e, r1        ; 30
                EVENT_USB_Device_Disconnect();
-     d52:      60 dc           rcall   .-1856          ; 0x614 <EVENT_USB_Device_Disconnect>
+     cf0:      de dc           rcall   .-1604          ; 0x6ae <EVENT_USB_Device_Disconnect>
                                        case USB_INT_IDTI:
                                                return (USBINT & (1 << IDTI));
                                        #endif
                                        #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                return (UDINT  & (1 << WAKEUPI));
-     d54:      80 91 e1 00     lds     r24, 0x00E1
+     cf2:      80 91 e1 00     lds     r24, 0x00E1
                USB_DeviceState = DEVICE_STATE_Suspended;
                EVENT_USB_Device_Suspend();
                #endif
        }
 
        if (USB_INT_HasOccurred(USB_INT_WAKEUPI) && USB_INT_IsEnabled(USB_INT_WAKEUPI))
-     d58:      84 ff           sbrs    r24, 4
-     d5a:      2c c0           rjmp    .+88            ; 0xdb4 <__vector_11+0xd2>
+     cf6:      84 ff           sbrs    r24, 4
+     cf8:      2c c0           rjmp    .+88            ; 0xd52 <__vector_11+0xd2>
                                        case USB_INT_IDTI:
                                                return (USBCON & (1 << IDTE));
                                        #endif
                                        #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                return (UDIEN  & (1 << WAKEUPE));
-     d5c:      80 91 e2 00     lds     r24, 0x00E2
-     d60:      84 ff           sbrs    r24, 4
-     d62:      28 c0           rjmp    .+80            ; 0xdb4 <__vector_11+0xd2>
+     cfa:      80 91 e2 00     lds     r24, 0x00E2
+     cfe:      84 ff           sbrs    r24, 4
+     d00:      28 c0           rjmp    .+80            ; 0xd52 <__vector_11+0xd2>
 
                /* Inline Functions: */
                        static inline void USB_PLL_On(void) ATTR_ALWAYS_INLINE;
                        static inline void USB_PLL_On(void)
                        {
                                PLLCSR = USB_PLL_PSC;
-     d64:      84 e0           ldi     r24, 0x04       ; 4
-     d66:      89 bd           out     0x29, r24       ; 41
+     d02:      84 e0           ldi     r24, 0x04       ; 4
+     d04:      89 bd           out     0x29, r24       ; 41
                                PLLCSR = (USB_PLL_PSC | (1 << PLLE));
-     d68:      86 e0           ldi     r24, 0x06       ; 6
-     d6a:      89 bd           out     0x29, r24       ; 41
+     d06:      86 e0           ldi     r24, 0x06       ; 6
+     d08:      89 bd           out     0x29, r24       ; 41
        {
                if (!(USB_Options & USB_OPT_MANUAL_PLL))
                {
                        USB_PLL_On();
                        while (!(USB_PLL_IsReady()));
-     d6c:      09 b4           in      r0, 0x29        ; 41
-     d6e:      00 fe           sbrs    r0, 0
-     d70:      fd cf           rjmp    .-6             ; 0xd6c <__vector_11+0x8a>
+     d0a:      09 b4           in      r0, 0x29        ; 41
+     d0c:      00 fe           sbrs    r0, 0
+     d0e:      fd cf           rjmp    .-6             ; 0xd0a <__vector_11+0x8a>
                        }
 
                        static inline void USB_CLK_Unfreeze(void) ATTR_ALWAYS_INLINE;
                        static inline void USB_CLK_Unfreeze(void)
                        {
                                USBCON &= ~(1 << FRZCLK);
-     d72:      80 91 d8 00     lds     r24, 0x00D8
-     d76:      8f 7d           andi    r24, 0xDF       ; 223
-     d78:      80 93 d8 00     sts     0x00D8, r24
+     d10:      80 91 d8 00     lds     r24, 0x00D8
+     d14:      8f 7d           andi    r24, 0xDF       ; 223
+     d16:      80 93 d8 00     sts     0x00D8, r24
                                                USBINT &= ~(1 << IDTI);
                                                break;
                                        #endif
                                        #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                UDINT  &= ~(1 << WAKEUPI);
-     d7c:      80 91 e1 00     lds     r24, 0x00E1
-     d80:      8f 7e           andi    r24, 0xEF       ; 239
-     d82:      80 93 e1 00     sts     0x00E1, r24
+     d1a:      80 91 e1 00     lds     r24, 0x00E1
+     d1e:      8f 7e           andi    r24, 0xEF       ; 239
+     d20:      80 93 e1 00     sts     0x00E1, r24
                                                USBCON &= ~(1 << IDTE);
                                                break;
                                        #endif
                                        #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                UDIEN  &= ~(1 << WAKEUPE);
-     d86:      80 91 e2 00     lds     r24, 0x00E2
-     d8a:      8f 7e           andi    r24, 0xEF       ; 239
-     d8c:      80 93 e2 00     sts     0x00E2, r24
+     d24:      80 91 e2 00     lds     r24, 0x00E2
+     d28:      8f 7e           andi    r24, 0xEF       ; 239
+     d2a:      80 93 e2 00     sts     0x00E2, r24
                                        #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                UDIEN  |= (1 << WAKEUPE);
                                                break;
                                        case USB_INT_SUSPI:
                                                UDIEN  |= (1 << SUSPE);
-     d90:      80 91 e2 00     lds     r24, 0x00E2
-     d94:      81 60           ori     r24, 0x01       ; 1
-     d96:      80 93 e2 00     sts     0x00E2, r24
+     d2e:      80 91 e2 00     lds     r24, 0x00E2
+     d32:      81 60           ori     r24, 0x01       ; 1
+     d34:      80 93 e2 00     sts     0x00E2, r24
                USB_INT_Clear(USB_INT_WAKEUPI);
 
                USB_INT_Disable(USB_INT_WAKEUPI);
                USB_INT_Enable(USB_INT_SUSPI);
 
                if (USB_Device_ConfigurationNumber)
-     d9a:      80 91 6a 02     lds     r24, 0x026A
-     d9e:      88 23           and     r24, r24
-     da0:      21 f4           brne    .+8             ; 0xdaa <__vector_11+0xc8>
+     d38:      80 91 70 02     lds     r24, 0x0270
+     d3c:      88 23           and     r24, r24
+     d3e:      21 f4           brne    .+8             ; 0xd48 <__vector_11+0xc8>
                        }
 
                        static inline bool USB_Device_IsAddressSet(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
                        static inline bool USB_Device_IsAddressSet(void)
                        {
                                return (UDADDR & (1 << ADDEN));
-     da2:      80 91 e3 00     lds     r24, 0x00E3
+     d40:      80 91 e3 00     lds     r24, 0x00E3
                  USB_DeviceState = DEVICE_STATE_Configured;
                else
                  USB_DeviceState = (USB_Device_IsAddressSet()) ? DEVICE_STATE_Configured : DEVICE_STATE_Powered;
-     da6:      87 ff           sbrs    r24, 7
-     da8:      02 c0           rjmp    .+4             ; 0xdae <__vector_11+0xcc>
-     daa:      84 e0           ldi     r24, 0x04       ; 4
-     dac:      01 c0           rjmp    .+2             ; 0xdb0 <__vector_11+0xce>
-     dae:      81 e0           ldi     r24, 0x01       ; 1
-     db0:      8e bb           out     0x1e, r24       ; 30
+     d44:      87 ff           sbrs    r24, 7
+     d46:      02 c0           rjmp    .+4             ; 0xd4c <__vector_11+0xcc>
+     d48:      84 e0           ldi     r24, 0x04       ; 4
+     d4a:      01 c0           rjmp    .+2             ; 0xd4e <__vector_11+0xce>
+     d4c:      81 e0           ldi     r24, 0x01       ; 1
+     d4e:      8e bb           out     0x1e, r24       ; 30
 
                #if defined(USB_SERIES_2_AVR) && !defined(NO_LIMITED_CONTROLLER_CONNECT)
                EVENT_USB_Device_Connect();
-     db2:      2f dc           rcall   .-1954          ; 0x612 <EVENT_USB_Device_Connect>
+     d50:      ad dc           rcall   .-1702          ; 0x6ac <EVENT_USB_Device_Connect>
                                        case USB_INT_WAKEUPI:
                                                return (UDINT  & (1 << WAKEUPI));
                                        case USB_INT_SUSPI:
                                                return (UDINT  & (1 << SUSPI));
                                        case USB_INT_EORSTI:
                                                return (UDINT  & (1 << EORSTI));
-     db4:      80 91 e1 00     lds     r24, 0x00E1
+     d52:      80 91 e1 00     lds     r24, 0x00E1
                #else
                EVENT_USB_Device_WakeUp();
                #endif
        }
 
        if (USB_INT_HasOccurred(USB_INT_EORSTI) && USB_INT_IsEnabled(USB_INT_EORSTI))
-     db8:      83 ff           sbrs    r24, 3
-     dba:      26 c0           rjmp    .+76            ; 0xe08 <__vector_11+0x126>
+     d56:      83 ff           sbrs    r24, 3
+     d58:      26 c0           rjmp    .+76            ; 0xda6 <__vector_11+0x126>
                                        case USB_INT_WAKEUPI:
                                                return (UDIEN  & (1 << WAKEUPE));
                                        case USB_INT_SUSPI:
                                                return (UDIEN  & (1 << SUSPE));
                                        case USB_INT_EORSTI:
                                                return (UDIEN  & (1 << EORSTE));
-     dbc:      80 91 e2 00     lds     r24, 0x00E2
-     dc0:      83 ff           sbrs    r24, 3
-     dc2:      22 c0           rjmp    .+68            ; 0xe08 <__vector_11+0x126>
+     d5a:      80 91 e2 00     lds     r24, 0x00E2
+     d5e:      83 ff           sbrs    r24, 3
+     d60:      22 c0           rjmp    .+68            ; 0xda6 <__vector_11+0x126>
                                                break;
                                        case USB_INT_SUSPI:
                                                UDINT  &= ~(1 << SUSPI);
                                                break;
                                        case USB_INT_EORSTI:
                                                UDINT  &= ~(1 << EORSTI);
-     dc4:      80 91 e1 00     lds     r24, 0x00E1
-     dc8:      87 7f           andi    r24, 0xF7       ; 247
-     dca:      80 93 e1 00     sts     0x00E1, r24
+     d62:      80 91 e1 00     lds     r24, 0x00E1
+     d66:      87 7f           andi    r24, 0xF7       ; 247
+     d68:      80 93 e1 00     sts     0x00E1, r24
        {
                USB_INT_Clear(USB_INT_EORSTI);
 
                USB_DeviceState                = DEVICE_STATE_Default;
-     dce:      82 e0           ldi     r24, 0x02       ; 2
-     dd0:      8e bb           out     0x1e, r24       ; 30
+     d6c:      82 e0           ldi     r24, 0x02       ; 2
+     d6e:      8e bb           out     0x1e, r24       ; 30
                USB_Device_ConfigurationNumber = 0;
-     dd2:      10 92 6a 02     sts     0x026A, r1
+     d70:      10 92 70 02     sts     0x0270, r1
                                        #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                UDINT  &= ~(1 << WAKEUPI);
                                                break;
                                        case USB_INT_SUSPI:
                                                UDINT  &= ~(1 << SUSPI);
-     dd6:      80 91 e1 00     lds     r24, 0x00E1
-     dda:      8e 7f           andi    r24, 0xFE       ; 254
-     ddc:      80 93 e1 00     sts     0x00E1, r24
+     d74:      80 91 e1 00     lds     r24, 0x00E1
+     d78:      8e 7f           andi    r24, 0xFE       ; 254
+     d7a:      80 93 e1 00     sts     0x00E1, r24
                                        #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                UDIEN  &= ~(1 << WAKEUPE);
                                                break;
                                        case USB_INT_SUSPI:
                                                UDIEN  &= ~(1 << SUSPE);
-     de0:      80 91 e2 00     lds     r24, 0x00E2
-     de4:      8e 7f           andi    r24, 0xFE       ; 254
-     de6:      80 93 e2 00     sts     0x00E2, r24
+     d7e:      80 91 e2 00     lds     r24, 0x00E2
+     d82:      8e 7f           andi    r24, 0xFE       ; 254
+     d84:      80 93 e2 00     sts     0x00E2, r24
                                                USBCON |= (1 << IDTE);
                                                break;
                                        #endif
                                        #if defined(USB_CAN_BE_DEVICE)
                                        case USB_INT_WAKEUPI:
                                                UDIEN  |= (1 << WAKEUPE);
-     dea:      80 91 e2 00     lds     r24, 0x00E2
-     dee:      80 61           ori     r24, 0x10       ; 16
-     df0:      80 93 e2 00     sts     0x00E2, r24
+     d88:      80 91 e2 00     lds     r24, 0x00E2
+     d8c:      80 61           ori     r24, 0x10       ; 16
+     d8e:      80 93 e2 00     sts     0x00E2, r24
                                uint8_t Number = (Address & ENDPOINT_EPNUM_MASK);
 
                                if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
                                  return false;
 
                                return Endpoint_ConfigureEndpoint_Prv(Number,
-     df4:      80 e0           ldi     r24, 0x00       ; 0
-     df6:      60 e0           ldi     r22, 0x00       ; 0
-     df8:      42 e0           ldi     r20, 0x02       ; 2
-     dfa:      5f de           rcall   .-834           ; 0xaba <Endpoint_ConfigureEndpoint_Prv>
+     d92:      80 e0           ldi     r24, 0x00       ; 0
+     d94:      60 e0           ldi     r22, 0x00       ; 0
+     d96:      42 e0           ldi     r20, 0x02       ; 2
+     d98:      5f de           rcall   .-834           ; 0xa58 <Endpoint_ConfigureEndpoint_Prv>
                                                break;
                                        case USB_INT_SOFI:
                                                UDIEN  |= (1 << SOFE);
                                                break;
                                        case USB_INT_RXSTPI:
                                                UEIENX |= (1 << RXSTPE);
-     dfc:      80 91 f0 00     lds     r24, 0x00F0
-     e00:      88 60           ori     r24, 0x08       ; 8
-     e02:      80 93 f0 00     sts     0x00F0, r24
+     d9a:      80 91 f0 00     lds     r24, 0x00F0
+     d9e:      88 60           ori     r24, 0x08       ; 8
+     da0:      80 93 f0 00     sts     0x00F0, r24
 
                #if defined(INTERRUPT_CONTROL_ENDPOINT)
                USB_INT_Enable(USB_INT_RXSTPI);
                #endif
 
                EVENT_USB_Device_Reset();
-     e06:      ad d1           rcall   .+858           ; 0x1162 <USB_Event_Stub>
+     da4:      ad d1           rcall   .+858           ; 0x1100 <USB_Event_Stub>
                USB_ResetInterface();
 
                EVENT_USB_UIDChange();
        }
        #endif
 }
-     e08:      ff 91           pop     r31
-     e0a:      ef 91           pop     r30
-     e0c:      bf 91           pop     r27
-     e0e:      af 91           pop     r26
-     e10:      9f 91           pop     r25
-     e12:      8f 91           pop     r24
-     e14:      7f 91           pop     r23
-     e16:      6f 91           pop     r22
-     e18:      5f 91           pop     r21
-     e1a:      4f 91           pop     r20
-     e1c:      3f 91           pop     r19
-     e1e:      2f 91           pop     r18
-     e20:      0f 90           pop     r0
-     e22:      0f be           out     0x3f, r0        ; 63
-     e24:      0f 90           pop     r0
-     e26:      1f 90           pop     r1
-     e28:      18 95           reti
-
-00000e2a <__vector_12>:
+     da6:      ff 91           pop     r31
+     da8:      ef 91           pop     r30
+     daa:      bf 91           pop     r27
+     dac:      af 91           pop     r26
+     dae:      9f 91           pop     r25
+     db0:      8f 91           pop     r24
+     db2:      7f 91           pop     r23
+     db4:      6f 91           pop     r22
+     db6:      5f 91           pop     r21
+     db8:      4f 91           pop     r20
+     dba:      3f 91           pop     r19
+     dbc:      2f 91           pop     r18
+     dbe:      0f 90           pop     r0
+     dc0:      0f be           out     0x3f, r0        ; 63
+     dc2:      0f 90           pop     r0
+     dc4:      1f 90           pop     r1
+     dc6:      18 95           reti
+
+00000dc8 <__vector_12>:
 
 #if defined(INTERRUPT_CONTROL_ENDPOINT) && defined(USB_CAN_BE_DEVICE)
 ISR(USB_COM_vect, ISR_BLOCK)
 {
-     e2a:      1f 92           push    r1
-     e2c:      0f 92           push    r0
-     e2e:      0f b6           in      r0, 0x3f        ; 63
-     e30:      0f 92           push    r0
-     e32:      11 24           eor     r1, r1
-     e34:      1f 93           push    r17
-     e36:      2f 93           push    r18
-     e38:      3f 93           push    r19
-     e3a:      4f 93           push    r20
-     e3c:      5f 93           push    r21
-     e3e:      6f 93           push    r22
-     e40:      7f 93           push    r23
-     e42:      8f 93           push    r24
-     e44:      9f 93           push    r25
-     e46:      af 93           push    r26
-     e48:      bf 93           push    r27
-     e4a:      ef 93           push    r30
-     e4c:      ff 93           push    r31
+     dc8:      1f 92           push    r1
+     dca:      0f 92           push    r0
+     dcc:      0f b6           in      r0, 0x3f        ; 63
+     dce:      0f 92           push    r0
+     dd0:      11 24           eor     r1, r1
+     dd2:      1f 93           push    r17
+     dd4:      2f 93           push    r18
+     dd6:      3f 93           push    r19
+     dd8:      4f 93           push    r20
+     dda:      5f 93           push    r21
+     ddc:      6f 93           push    r22
+     dde:      7f 93           push    r23
+     de0:      8f 93           push    r24
+     de2:      9f 93           push    r25
+     de4:      af 93           push    r26
+     de6:      bf 93           push    r27
+     de8:      ef 93           push    r30
+     dea:      ff 93           push    r31
                         */
                        static inline uint8_t Endpoint_GetCurrentEndpoint(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline uint8_t Endpoint_GetCurrentEndpoint(void)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        return ((UENUM & ENDPOINT_EPNUM_MASK) | Endpoint_GetEndpointDirection());
-     e4e:      10 91 e9 00     lds     r17, 0x00E9
-     e52:      1f 70           andi    r17, 0x0F       ; 15
+     dec:      10 91 e9 00     lds     r17, 0x00E9
+     df0:      1f 70           andi    r17, 0x0F       ; 15
                         *  \return The currently selected endpoint's direction, as a \c ENDPOINT_DIR_* mask.
                         */
                        static inline uint8_t Endpoint_GetEndpointDirection(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline uint8_t Endpoint_GetEndpointDirection(void)
                        {
                                return (UECFG0X & (1 << EPDIR)) ? ENDPOINT_DIR_IN : ENDPOINT_DIR_OUT;
-     e54:      80 91 ec 00     lds     r24, 0x00EC
+     df2:      80 91 ec 00     lds     r24, 0x00EC
                         */
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UENUM = (Address & ENDPOINT_EPNUM_MASK);
-     e58:      10 92 e9 00     sts     0x00E9, r1
+     df6:      10 92 e9 00     sts     0x00E9, r1
                                                break;
                                        case USB_INT_SOFI:
                                                UDIEN  &= ~(1 << SOFE);
                                                break;
                                        case USB_INT_RXSTPI:
                                                UEIENX &= ~(1 << RXSTPE);
-     e5c:      80 91 f0 00     lds     r24, 0x00F0
-     e60:      87 7f           andi    r24, 0xF7       ; 247
-     e62:      80 93 f0 00     sts     0x00F0, r24
+     dfa:      80 91 f0 00     lds     r24, 0x00F0
+     dfe:      87 7f           andi    r24, 0xF7       ; 247
+     e00:      80 93 f0 00     sts     0x00F0, r24
                        static inline void GlobalInterruptEnable(void)
                        {
                                GCC_MEMORY_BARRIER();
 
                                #if (ARCH == ARCH_AVR8)
                                sei();
-     e66:      78 94           sei
+     e04:      78 94           sei
        Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
        USB_INT_Disable(USB_INT_RXSTPI);
 
        GlobalInterruptEnable();
 
        USB_Device_ProcessControlRequest();
-     e68:      1b d0           rcall   .+54            ; 0xea0 <USB_Device_ProcessControlRequest>
-     e6a:      10 92 e9 00     sts     0x00E9, r1
+     e06:      1b d0           rcall   .+54            ; 0xe3e <USB_Device_ProcessControlRequest>
+     e08:      10 92 e9 00     sts     0x00E9, r1
                                                break;
                                        case USB_INT_SOFI:
                                                UDIEN  |= (1 << SOFE);
                                                break;
                                        case USB_INT_RXSTPI:
                                                UEIENX |= (1 << RXSTPE);
-     e6e:      80 91 f0 00     lds     r24, 0x00F0
-     e72:      88 60           ori     r24, 0x08       ; 8
-     e74:      80 93 f0 00     sts     0x00F0, r24
-     e78:      10 93 e9 00     sts     0x00E9, r17
+     e0c:      80 91 f0 00     lds     r24, 0x00F0
+     e10:      88 60           ori     r24, 0x08       ; 8
+     e12:      80 93 f0 00     sts     0x00F0, r24
+     e16:      10 93 e9 00     sts     0x00E9, r17
 
        Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
        USB_INT_Enable(USB_INT_RXSTPI);
        Endpoint_SelectEndpoint(PrevSelectedEndpoint);
 }
-     e7c:      ff 91           pop     r31
-     e7e:      ef 91           pop     r30
-     e80:      bf 91           pop     r27
-     e82:      af 91           pop     r26
-     e84:      9f 91           pop     r25
-     e86:      8f 91           pop     r24
-     e88:      7f 91           pop     r23
-     e8a:      6f 91           pop     r22
-     e8c:      5f 91           pop     r21
-     e8e:      4f 91           pop     r20
-     e90:      3f 91           pop     r19
-     e92:      2f 91           pop     r18
-     e94:      1f 91           pop     r17
-     e96:      0f 90           pop     r0
-     e98:      0f be           out     0x3f, r0        ; 63
-     e9a:      0f 90           pop     r0
-     e9c:      1f 90           pop     r1
-     e9e:      18 95           reti
-
-00000ea0 <USB_Device_ProcessControlRequest>:
+     e1a:      ff 91           pop     r31
+     e1c:      ef 91           pop     r30
+     e1e:      bf 91           pop     r27
+     e20:      af 91           pop     r26
+     e22:      9f 91           pop     r25
+     e24:      8f 91           pop     r24
+     e26:      7f 91           pop     r23
+     e28:      6f 91           pop     r22
+     e2a:      5f 91           pop     r21
+     e2c:      4f 91           pop     r20
+     e2e:      3f 91           pop     r19
+     e30:      2f 91           pop     r18
+     e32:      1f 91           pop     r17
+     e34:      0f 90           pop     r0
+     e36:      0f be           out     0x3f, r0        ; 63
+     e38:      0f 90           pop     r0
+     e3a:      1f 90           pop     r1
+     e3c:      18 95           reti
+
+00000e3e <USB_Device_ProcessControlRequest>:
 #if !defined(NO_DEVICE_REMOTE_WAKEUP)
 bool    USB_Device_RemoteWakeupEnabled;
 #endif
 
 void USB_Device_ProcessControlRequest(void)
 {
-     ea0:      1f 93           push    r17
-     ea2:      df 93           push    r29
-     ea4:      cf 93           push    r28
-     ea6:      cd b7           in      r28, 0x3d       ; 61
-     ea8:      de b7           in      r29, 0x3e       ; 62
-     eaa:      ac 97           sbiw    r28, 0x2c       ; 44
-     eac:      0f b6           in      r0, 0x3f        ; 63
-     eae:      f8 94           cli
-     eb0:      de bf           out     0x3e, r29       ; 62
-     eb2:      0f be           out     0x3f, r0        ; 63
-     eb4:      cd bf           out     0x3d, r28       ; 61
+     e3e:      1f 93           push    r17
+     e40:      df 93           push    r29
+     e42:      cf 93           push    r28
+     e44:      cd b7           in      r28, 0x3d       ; 61
+     e46:      de b7           in      r29, 0x3e       ; 62
+     e48:      ac 97           sbiw    r28, 0x2c       ; 44
+     e4a:      0f b6           in      r0, 0x3f        ; 63
+     e4c:      f8 94           cli
+     e4e:      de bf           out     0x3e, r29       ; 62
+     e50:      0f be           out     0x3f, r0        ; 63
+     e52:      cd bf           out     0x3d, r28       ; 61
        USB_ControlRequest.bRequest      = Endpoint_Read_8();
        USB_ControlRequest.wValue        = Endpoint_Read_16_LE();
        USB_ControlRequest.wIndex        = Endpoint_Read_16_LE();
        USB_ControlRequest.wLength       = Endpoint_Read_16_LE();
        #else
        uint8_t* RequestHeader = (uint8_t*)&USB_ControlRequest;
-     eb6:      ee e6           ldi     r30, 0x6E       ; 110
-     eb8:      f2 e0           ldi     r31, 0x02       ; 2
+     e54:      e4 e7           ldi     r30, 0x74       ; 116
+     e56:      f2 e0           ldi     r31, 0x02       ; 2
                         *  \return Next byte in the currently selected endpoint's FIFO buffer.
                         */
                        static inline uint8_t Endpoint_Read_8(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline uint8_t Endpoint_Read_8(void)
                        {
                                return UEDATX;
-     eba:      80 91 f1 00     lds     r24, 0x00F1
+     e58:      80 91 f1 00     lds     r24, 0x00F1
 
        for (uint8_t RequestHeaderByte = 0; RequestHeaderByte < sizeof(USB_Request_Header_t); RequestHeaderByte++)
          *(RequestHeader++) = Endpoint_Read_8();
-     ebe:      81 93           st      Z+, r24
+     e5c:      81 93           st      Z+, r24
        USB_ControlRequest.wIndex        = Endpoint_Read_16_LE();
        USB_ControlRequest.wLength       = Endpoint_Read_16_LE();
        #else
        uint8_t* RequestHeader = (uint8_t*)&USB_ControlRequest;
 
        for (uint8_t RequestHeaderByte = 0; RequestHeaderByte < sizeof(USB_Request_Header_t); RequestHeaderByte++)
-     ec0:      22 e0           ldi     r18, 0x02       ; 2
-     ec2:      e6 37           cpi     r30, 0x76       ; 118
-     ec4:      f2 07           cpc     r31, r18
-     ec6:      c9 f7           brne    .-14            ; 0xeba <USB_Device_ProcessControlRequest+0x1a>
+     e5e:      22 e0           ldi     r18, 0x02       ; 2
+     e60:      ec 37           cpi     r30, 0x7C       ; 124
+     e62:      f2 07           cpc     r31, r18
+     e64:      c9 f7           brne    .-14            ; 0xe58 <USB_Device_ProcessControlRequest+0x1a>
          *(RequestHeader++) = Endpoint_Read_8();
        #endif
 
        EVENT_USB_Device_ControlRequest();
-     ec8:      a9 db           rcall   .-2222          ; 0x61c <EVENT_USB_Device_ControlRequest>
+     e66:      27 dc           rcall   .-1970          ; 0x6b6 <EVENT_USB_Device_ControlRequest>
                         *  \return Boolean \c true if the selected endpoint has received a SETUP packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsSETUPReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsSETUPReceived(void)
                        {
                                return ((UEINTX & (1 << RXSTPI)) ? true : false);
-     eca:      80 91 e8 00     lds     r24, 0x00E8
+     e68:      80 91 e8 00     lds     r24, 0x00E8
 
        if (Endpoint_IsSETUPReceived())
-     ece:      83 ff           sbrs    r24, 3
-     ed0:      30 c1           rjmp    .+608           ; 0x1132 <USB_Device_ProcessControlRequest+0x292>
+     e6c:      83 ff           sbrs    r24, 3
+     e6e:      30 c1           rjmp    .+608           ; 0x10d0 <USB_Device_ProcessControlRequest+0x292>
        {
                uint8_t bmRequestType = USB_ControlRequest.bmRequestType;
-     ed2:      80 91 6e 02     lds     r24, 0x026E
+     e70:      80 91 74 02     lds     r24, 0x0274
 
                switch (USB_ControlRequest.bRequest)
-     ed6:      20 91 6f 02     lds     r18, 0x026F
-     eda:      25 30           cpi     r18, 0x05       ; 5
-     edc:      09 f4           brne    .+2             ; 0xee0 <USB_Device_ProcessControlRequest+0x40>
-     ede:      84 c0           rjmp    .+264           ; 0xfe8 <USB_Device_ProcessControlRequest+0x148>
-     ee0:      26 30           cpi     r18, 0x06       ; 6
-     ee2:      40 f4           brcc    .+16            ; 0xef4 <USB_Device_ProcessControlRequest+0x54>
-     ee4:      21 30           cpi     r18, 0x01       ; 1
-     ee6:      a1 f1           breq    .+104           ; 0xf50 <USB_Device_ProcessControlRequest+0xb0>
-     ee8:      21 30           cpi     r18, 0x01       ; 1
-     eea:      70 f0           brcs    .+28            ; 0xf08 <USB_Device_ProcessControlRequest+0x68>
-     eec:      23 30           cpi     r18, 0x03       ; 3
-     eee:      09 f0           breq    .+2             ; 0xef2 <USB_Device_ProcessControlRequest+0x52>
-     ef0:      20 c1           rjmp    .+576           ; 0x1132 <USB_Device_ProcessControlRequest+0x292>
-     ef2:      2e c0           rjmp    .+92            ; 0xf50 <USB_Device_ProcessControlRequest+0xb0>
-     ef4:      28 30           cpi     r18, 0x08       ; 8
-     ef6:      09 f4           brne    .+2             ; 0xefa <USB_Device_ProcessControlRequest+0x5a>
-     ef8:      ef c0           rjmp    .+478           ; 0x10d8 <USB_Device_ProcessControlRequest+0x238>
-     efa:      29 30           cpi     r18, 0x09       ; 9
-     efc:      09 f4           brne    .+2             ; 0xf00 <USB_Device_ProcessControlRequest+0x60>
-     efe:      fe c0           rjmp    .+508           ; 0x10fc <USB_Device_ProcessControlRequest+0x25c>
-     f00:      26 30           cpi     r18, 0x06       ; 6
-     f02:      09 f0           breq    .+2             ; 0xf06 <USB_Device_ProcessControlRequest+0x66>
-     f04:      16 c1           rjmp    .+556           ; 0x1132 <USB_Device_ProcessControlRequest+0x292>
-     f06:      92 c0           rjmp    .+292           ; 0x102c <USB_Device_ProcessControlRequest+0x18c>
+     e74:      20 91 75 02     lds     r18, 0x0275
+     e78:      25 30           cpi     r18, 0x05       ; 5
+     e7a:      09 f4           brne    .+2             ; 0xe7e <USB_Device_ProcessControlRequest+0x40>
+     e7c:      84 c0           rjmp    .+264           ; 0xf86 <USB_Device_ProcessControlRequest+0x148>
+     e7e:      26 30           cpi     r18, 0x06       ; 6
+     e80:      40 f4           brcc    .+16            ; 0xe92 <USB_Device_ProcessControlRequest+0x54>
+     e82:      21 30           cpi     r18, 0x01       ; 1
+     e84:      a1 f1           breq    .+104           ; 0xeee <USB_Device_ProcessControlRequest+0xb0>
+     e86:      21 30           cpi     r18, 0x01       ; 1
+     e88:      70 f0           brcs    .+28            ; 0xea6 <USB_Device_ProcessControlRequest+0x68>
+     e8a:      23 30           cpi     r18, 0x03       ; 3
+     e8c:      09 f0           breq    .+2             ; 0xe90 <USB_Device_ProcessControlRequest+0x52>
+     e8e:      20 c1           rjmp    .+576           ; 0x10d0 <USB_Device_ProcessControlRequest+0x292>
+     e90:      2e c0           rjmp    .+92            ; 0xeee <USB_Device_ProcessControlRequest+0xb0>
+     e92:      28 30           cpi     r18, 0x08       ; 8
+     e94:      09 f4           brne    .+2             ; 0xe98 <USB_Device_ProcessControlRequest+0x5a>
+     e96:      ef c0           rjmp    .+478           ; 0x1076 <USB_Device_ProcessControlRequest+0x238>
+     e98:      29 30           cpi     r18, 0x09       ; 9
+     e9a:      09 f4           brne    .+2             ; 0xe9e <USB_Device_ProcessControlRequest+0x60>
+     e9c:      fe c0           rjmp    .+508           ; 0x109a <USB_Device_ProcessControlRequest+0x25c>
+     e9e:      26 30           cpi     r18, 0x06       ; 6
+     ea0:      09 f0           breq    .+2             ; 0xea4 <USB_Device_ProcessControlRequest+0x66>
+     ea2:      16 c1           rjmp    .+556           ; 0x10d0 <USB_Device_ProcessControlRequest+0x292>
+     ea4:      92 c0           rjmp    .+292           ; 0xfca <USB_Device_ProcessControlRequest+0x18c>
                {
                        case REQ_GetStatus:
                                if ((bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE)) ||
-     f08:      80 38           cpi     r24, 0x80       ; 128
-     f0a:      21 f0           breq    .+8             ; 0xf14 <USB_Device_ProcessControlRequest+0x74>
-     f0c:      82 38           cpi     r24, 0x82       ; 130
-     f0e:      09 f0           breq    .+2             ; 0xf12 <USB_Device_ProcessControlRequest+0x72>
-     f10:      10 c1           rjmp    .+544           ; 0x1132 <USB_Device_ProcessControlRequest+0x292>
-     f12:      08 c0           rjmp    .+16            ; 0xf24 <USB_Device_ProcessControlRequest+0x84>
+     ea6:      80 38           cpi     r24, 0x80       ; 128
+     ea8:      21 f0           breq    .+8             ; 0xeb2 <USB_Device_ProcessControlRequest+0x74>
+     eaa:      82 38           cpi     r24, 0x82       ; 130
+     eac:      09 f0           breq    .+2             ; 0xeb0 <USB_Device_ProcessControlRequest+0x72>
+     eae:      10 c1           rjmp    .+544           ; 0x10d0 <USB_Device_ProcessControlRequest+0x292>
+     eb0:      08 c0           rjmp    .+16            ; 0xec2 <USB_Device_ProcessControlRequest+0x84>
        Endpoint_ClearOUT();
 }
 
 static void USB_Device_GetStatus(void)
 {
        uint8_t CurrentStatus = 0;
-     f14:      80 91 6b 02     lds     r24, 0x026B
+     eb2:      80 91 71 02     lds     r24, 0x0271
                        if (USB_Device_CurrentlySelfPowered)
                          CurrentStatus |= FEATURE_SELFPOWERED_ENABLED;
                        #endif
 
                        #if !defined(NO_DEVICE_REMOTE_WAKEUP)
                        if (USB_Device_RemoteWakeupEnabled)
-     f18:      90 91 6c 02     lds     r25, 0x026C
-     f1c:      99 23           and     r25, r25
-     f1e:      71 f0           breq    .+28            ; 0xf3c <USB_Device_ProcessControlRequest+0x9c>
+     eb6:      90 91 72 02     lds     r25, 0x0272
+     eba:      99 23           and     r25, r25
+     ebc:      71 f0           breq    .+28            ; 0xeda <USB_Device_ProcessControlRequest+0x9c>
                          CurrentStatus |= FEATURE_REMOTE_WAKEUP_ENABLED;
-     f20:      82 60           ori     r24, 0x02       ; 2
-     f22:      0c c0           rjmp    .+24            ; 0xf3c <USB_Device_ProcessControlRequest+0x9c>
+     ebe:      82 60           ori     r24, 0x02       ; 2
+     ec0:      0c c0           rjmp    .+24            ; 0xeda <USB_Device_ProcessControlRequest+0x9c>
                         */
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UENUM = (Address & ENDPOINT_EPNUM_MASK);
-     f24:      80 91 72 02     lds     r24, 0x0272
-     f28:      8f 70           andi    r24, 0x0F       ; 15
-     f2a:      80 93 e9 00     sts     0x00E9, r24
+     ec2:      80 91 78 02     lds     r24, 0x0278
+     ec6:      8f 70           andi    r24, 0x0F       ; 15
+     ec8:      80 93 e9 00     sts     0x00E9, r24
                         *  \return Boolean \c true if the currently selected endpoint is stalled, \c false otherwise.
                         */
                        static inline bool Endpoint_IsStalled(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsStalled(void)
                        {
                                return ((UECONX & (1 << STALLRQ)) ? true : false);
-     f2e:      90 91 eb 00     lds     r25, 0x00EB
+     ecc:      90 91 eb 00     lds     r25, 0x00EB
                        break;
                case (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_ENDPOINT):
                        #if !defined(CONTROL_ONLY_DEVICE)
                        Endpoint_SelectEndpoint((uint8_t)USB_ControlRequest.wIndex & ENDPOINT_EPNUM_MASK);
 
                        CurrentStatus = Endpoint_IsStalled();
-     f32:      81 e0           ldi     r24, 0x01       ; 1
-     f34:      95 ff           sbrs    r25, 5
-     f36:      80 e0           ldi     r24, 0x00       ; 0
+     ed0:      81 e0           ldi     r24, 0x01       ; 1
+     ed2:      95 ff           sbrs    r25, 5
+     ed4:      80 e0           ldi     r24, 0x00       ; 0
                         */
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UENUM = (Address & ENDPOINT_EPNUM_MASK);
-     f38:      10 92 e9 00     sts     0x00E9, r1
+     ed6:      10 92 e9 00     sts     0x00E9, r1
                         *  \note This is not applicable for non CONTROL type endpoints.
                         */
                        static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearSETUP(void)
                        {
                                UEINTX &= ~(1 << RXSTPI);
-     f3c:      90 91 e8 00     lds     r25, 0x00E8
-     f40:      97 7f           andi    r25, 0xF7       ; 247
-     f42:      90 93 e8 00     sts     0x00E8, r25
+     eda:      90 91 e8 00     lds     r25, 0x00E8
+     ede:      97 7f           andi    r25, 0xF7       ; 247
+     ee0:      90 93 e8 00     sts     0x00E8, r25
                         *  \param[in] Data  Data to write to the currently selected endpoint's FIFO buffer.
                         */
                        static inline void Endpoint_Write_16_LE(const uint16_t Data) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_Write_16_LE(const uint16_t Data)
                        {
                                UEDATX = (Data & 0xFF);
-     f46:      80 93 f1 00     sts     0x00F1, r24
+     ee4:      80 93 f1 00     sts     0x00F1, r24
                                UEDATX = (Data >> 8);
-     f4a:      10 92 f1 00     sts     0x00F1, r1
-     f4e:      cf c0           rjmp    .+414           ; 0x10ee <USB_Device_ProcessControlRequest+0x24e>
+     ee8:      10 92 f1 00     sts     0x00F1, r1
+     eec:      cf c0           rjmp    .+414           ; 0x108c <USB_Device_ProcessControlRequest+0x24e>
                                }
 
                                break;
                        case REQ_ClearFeature:
                        case REQ_SetFeature:
                                if ((bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE)) ||
-     f50:      88 23           and     r24, r24
-     f52:      19 f0           breq    .+6             ; 0xf5a <USB_Device_ProcessControlRequest+0xba>
-     f54:      82 30           cpi     r24, 0x02       ; 2
-     f56:      09 f0           breq    .+2             ; 0xf5a <USB_Device_ProcessControlRequest+0xba>
-     f58:      ec c0           rjmp    .+472           ; 0x1132 <USB_Device_ProcessControlRequest+0x292>
+     eee:      88 23           and     r24, r24
+     ef0:      19 f0           breq    .+6             ; 0xef8 <USB_Device_ProcessControlRequest+0xba>
+     ef2:      82 30           cpi     r24, 0x02       ; 2
+     ef4:      09 f0           breq    .+2             ; 0xef8 <USB_Device_ProcessControlRequest+0xba>
+     ef6:      ec c0           rjmp    .+472           ; 0x10d0 <USB_Device_ProcessControlRequest+0x292>
        Endpoint_ClearStatusStage();
 }
 
 static void USB_Device_ClearSetFeature(void)
 {
        switch (USB_ControlRequest.bmRequestType & CONTROL_REQTYPE_RECIPIENT)
-     f5a:      90 e0           ldi     r25, 0x00       ; 0
-     f5c:      8f 71           andi    r24, 0x1F       ; 31
-     f5e:      90 70           andi    r25, 0x00       ; 0
-     f60:      00 97           sbiw    r24, 0x00       ; 0
-     f62:      29 f0           breq    .+10            ; 0xf6e <USB_Device_ProcessControlRequest+0xce>
-     f64:      82 30           cpi     r24, 0x02       ; 2
-     f66:      91 05           cpc     r25, r1
-     f68:      09 f0           breq    .+2             ; 0xf6c <USB_Device_ProcessControlRequest+0xcc>
-     f6a:      e3 c0           rjmp    .+454           ; 0x1132 <USB_Device_ProcessControlRequest+0x292>
-     f6c:      0b c0           rjmp    .+22            ; 0xf84 <USB_Device_ProcessControlRequest+0xe4>
+     ef8:      90 e0           ldi     r25, 0x00       ; 0
+     efa:      8f 71           andi    r24, 0x1F       ; 31
+     efc:      90 70           andi    r25, 0x00       ; 0
+     efe:      00 97           sbiw    r24, 0x00       ; 0
+     f00:      29 f0           breq    .+10            ; 0xf0c <USB_Device_ProcessControlRequest+0xce>
+     f02:      82 30           cpi     r24, 0x02       ; 2
+     f04:      91 05           cpc     r25, r1
+     f06:      09 f0           breq    .+2             ; 0xf0a <USB_Device_ProcessControlRequest+0xcc>
+     f08:      e3 c0           rjmp    .+454           ; 0x10d0 <USB_Device_ProcessControlRequest+0x292>
+     f0a:      0b c0           rjmp    .+22            ; 0xf22 <USB_Device_ProcessControlRequest+0xe4>
        {
                #if !defined(NO_DEVICE_REMOTE_WAKEUP)
                case REQREC_DEVICE:
                        if ((uint8_t)USB_ControlRequest.wValue == FEATURE_SEL_DeviceRemoteWakeup)
-     f6e:      80 91 70 02     lds     r24, 0x0270
-     f72:      81 30           cpi     r24, 0x01       ; 1
-     f74:      09 f0           breq    .+2             ; 0xf78 <USB_Device_ProcessControlRequest+0xd8>
-     f76:      dd c0           rjmp    .+442           ; 0x1132 <USB_Device_ProcessControlRequest+0x292>
+     f0c:      80 91 76 02     lds     r24, 0x0276
+     f10:      81 30           cpi     r24, 0x01       ; 1
+     f12:      09 f0           breq    .+2             ; 0xf16 <USB_Device_ProcessControlRequest+0xd8>
+     f14:      dd c0           rjmp    .+442           ; 0x10d0 <USB_Device_ProcessControlRequest+0x292>
                          USB_Device_RemoteWakeupEnabled = (USB_ControlRequest.bRequest == REQ_SetFeature);
-     f78:      23 30           cpi     r18, 0x03       ; 3
-     f7a:      09 f0           breq    .+2             ; 0xf7e <USB_Device_ProcessControlRequest+0xde>
-     f7c:      80 e0           ldi     r24, 0x00       ; 0
-     f7e:      80 93 6c 02     sts     0x026C, r24
-     f82:      2c c0           rjmp    .+88            ; 0xfdc <USB_Device_ProcessControlRequest+0x13c>
+     f16:      23 30           cpi     r18, 0x03       ; 3
+     f18:      09 f0           breq    .+2             ; 0xf1c <USB_Device_ProcessControlRequest+0xde>
+     f1a:      80 e0           ldi     r24, 0x00       ; 0
+     f1c:      80 93 72 02     sts     0x0272, r24
+     f20:      2c c0           rjmp    .+88            ; 0xf7a <USB_Device_ProcessControlRequest+0x13c>
 
                        break;
                #endif
                #if !defined(CONTROL_ONLY_DEVICE)
                case REQREC_ENDPOINT:
                        if ((uint8_t)USB_ControlRequest.wValue == FEATURE_SEL_EndpointHalt)
-     f84:      80 91 70 02     lds     r24, 0x0270
-     f88:      88 23           and     r24, r24
-     f8a:      41 f5           brne    .+80            ; 0xfdc <USB_Device_ProcessControlRequest+0x13c>
+     f22:      80 91 76 02     lds     r24, 0x0276
+     f26:      88 23           and     r24, r24
+     f28:      41 f5           brne    .+80            ; 0xf7a <USB_Device_ProcessControlRequest+0x13c>
                        {
                                uint8_t EndpointIndex = ((uint8_t)USB_ControlRequest.wIndex & ENDPOINT_EPNUM_MASK);
-     f8c:      20 91 72 02     lds     r18, 0x0272
-     f90:      2f 70           andi    r18, 0x0F       ; 15
+     f2a:      20 91 78 02     lds     r18, 0x0278
+     f2e:      2f 70           andi    r18, 0x0F       ; 15
 
                                if (EndpointIndex == ENDPOINT_CONTROLEP)
-     f92:      09 f4           brne    .+2             ; 0xf96 <USB_Device_ProcessControlRequest+0xf6>
-     f94:      ce c0           rjmp    .+412           ; 0x1132 <USB_Device_ProcessControlRequest+0x292>
+     f30:      09 f4           brne    .+2             ; 0xf34 <USB_Device_ProcessControlRequest+0xf6>
+     f32:      ce c0           rjmp    .+412           ; 0x10d0 <USB_Device_ProcessControlRequest+0x292>
                         */
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UENUM = (Address & ENDPOINT_EPNUM_MASK);
-     f96:      20 93 e9 00     sts     0x00E9, r18
+     f34:      20 93 e9 00     sts     0x00E9, r18
                         * \return Boolean \c true if the currently selected endpoint is enabled, \c false otherwise.
                         */
                        static inline bool Endpoint_IsEnabled(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsEnabled(void)
                        {
                                return ((UECONX & (1 << EPEN)) ? true : false);
-     f9a:      80 91 eb 00     lds     r24, 0x00EB
+     f38:      80 91 eb 00     lds     r24, 0x00EB
                                  return;
 
                                Endpoint_SelectEndpoint(EndpointIndex);
 
                                if (Endpoint_IsEnabled())
-     f9e:      80 ff           sbrs    r24, 0
-     fa0:      1d c0           rjmp    .+58            ; 0xfdc <USB_Device_ProcessControlRequest+0x13c>
+     f3c:      80 ff           sbrs    r24, 0
+     f3e:      1d c0           rjmp    .+58            ; 0xf7a <USB_Device_ProcessControlRequest+0x13c>
                                {
                                        if (USB_ControlRequest.bRequest == REQ_SetFeature)
-     fa2:      80 91 6f 02     lds     r24, 0x026F
-     fa6:      83 30           cpi     r24, 0x03       ; 3
-     fa8:      21 f4           brne    .+8             ; 0xfb2 <USB_Device_ProcessControlRequest+0x112>
+     f40:      80 91 75 02     lds     r24, 0x0275
+     f44:      83 30           cpi     r24, 0x03       ; 3
+     f46:      21 f4           brne    .+8             ; 0xf50 <USB_Device_ProcessControlRequest+0x112>
                         *  \ingroup Group_EndpointPacketManagement_AVR8
                         */
                        static inline void Endpoint_StallTransaction(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_StallTransaction(void)
                        {
                                UECONX |= (1 << STALLRQ);
-     faa:      80 91 eb 00     lds     r24, 0x00EB
-     fae:      80 62           ori     r24, 0x20       ; 32
-     fb0:      13 c0           rjmp    .+38            ; 0xfd8 <USB_Device_ProcessControlRequest+0x138>
+     f48:      80 91 eb 00     lds     r24, 0x00EB
+     f4c:      80 62           ori     r24, 0x20       ; 32
+     f4e:      13 c0           rjmp    .+38            ; 0xf76 <USB_Device_ProcessControlRequest+0x138>
                         *  \ingroup Group_EndpointPacketManagement_AVR8
                         */
                        static inline void Endpoint_ClearStall(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearStall(void)
                        {
                                UECONX |= (1 << STALLRQC);
-     fb2:      80 91 eb 00     lds     r24, 0x00EB
-     fb6:      80 61           ori     r24, 0x10       ; 16
-     fb8:      80 93 eb 00     sts     0x00EB, r24
+     f50:      80 91 eb 00     lds     r24, 0x00EB
+     f54:      80 61           ori     r24, 0x10       ; 16
+     f56:      80 93 eb 00     sts     0x00EB, r24
                         *  \param[in] Address  Endpoint address whose FIFO buffers are to be reset.
                         */
                        static inline void Endpoint_ResetEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ResetEndpoint(const uint8_t Address)
                        {
                                UERST = (1 << (Address & ENDPOINT_EPNUM_MASK));
-     fbc:      81 e0           ldi     r24, 0x01       ; 1
-     fbe:      90 e0           ldi     r25, 0x00       ; 0
-     fc0:      02 c0           rjmp    .+4             ; 0xfc6 <USB_Device_ProcessControlRequest+0x126>
-     fc2:      88 0f           add     r24, r24
-     fc4:      99 1f           adc     r25, r25
-     fc6:      2a 95           dec     r18
-     fc8:      e2 f7           brpl    .-8             ; 0xfc2 <USB_Device_ProcessControlRequest+0x122>
-     fca:      80 93 ea 00     sts     0x00EA, r24
+     f5a:      81 e0           ldi     r24, 0x01       ; 1
+     f5c:      90 e0           ldi     r25, 0x00       ; 0
+     f5e:      02 c0           rjmp    .+4             ; 0xf64 <USB_Device_ProcessControlRequest+0x126>
+     f60:      88 0f           add     r24, r24
+     f62:      99 1f           adc     r25, r25
+     f64:      2a 95           dec     r18
+     f66:      e2 f7           brpl    .-8             ; 0xf60 <USB_Device_ProcessControlRequest+0x122>
+     f68:      80 93 ea 00     sts     0x00EA, r24
                                UERST = 0;
-     fce:      10 92 ea 00     sts     0x00EA, r1
+     f6c:      10 92 ea 00     sts     0x00EA, r1
 
                        /** Resets the data toggle of the currently selected endpoint. */
                        static inline void Endpoint_ResetDataToggle(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ResetDataToggle(void)
                        {
                                UECONX |= (1 << RSTDT);
-     fd2:      80 91 eb 00     lds     r24, 0x00EB
-     fd6:      88 60           ori     r24, 0x08       ; 8
-     fd8:      80 93 eb 00     sts     0x00EB, r24
+     f70:      80 91 eb 00     lds     r24, 0x00EB
+     f74:      88 60           ori     r24, 0x08       ; 8
+     f76:      80 93 eb 00     sts     0x00EB, r24
                         */
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UENUM = (Address & ENDPOINT_EPNUM_MASK);
-     fdc:      10 92 e9 00     sts     0x00E9, r1
+     f7a:      10 92 e9 00     sts     0x00E9, r1
                         *  \note This is not applicable for non CONTROL type endpoints.
                         */
                        static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearSETUP(void)
                        {
                                UEINTX &= ~(1 << RXSTPI);
-     fe0:      80 91 e8 00     lds     r24, 0x00E8
-     fe4:      87 7f           andi    r24, 0xF7       ; 247
-     fe6:      86 c0           rjmp    .+268           ; 0x10f4 <USB_Device_ProcessControlRequest+0x254>
+     f7e:      80 91 e8 00     lds     r24, 0x00E8
+     f82:      87 7f           andi    r24, 0xF7       ; 247
+     f84:      86 c0           rjmp    .+268           ; 0x1092 <USB_Device_ProcessControlRequest+0x254>
                                        USB_Device_ClearSetFeature();
                                }
 
                                break;
                        case REQ_SetAddress:
                                if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE))
-     fe8:      88 23           and     r24, r24
-     fea:      09 f0           breq    .+2             ; 0xfee <USB_Device_ProcessControlRequest+0x14e>
-     fec:      a2 c0           rjmp    .+324           ; 0x1132 <USB_Device_ProcessControlRequest+0x292>
+     f86:      88 23           and     r24, r24
+     f88:      09 f0           breq    .+2             ; 0xf8c <USB_Device_ProcessControlRequest+0x14e>
+     f8a:      a2 c0           rjmp    .+324           ; 0x10d0 <USB_Device_ProcessControlRequest+0x292>
        }
 }
 
 static void USB_Device_SetAddress(void)
 {
        uint8_t DeviceAddress = (USB_ControlRequest.wValue & 0x7F);
-     fee:      10 91 70 02     lds     r17, 0x0270
-     ff2:      1f 77           andi    r17, 0x7F       ; 127
+     f8c:      10 91 76 02     lds     r17, 0x0276
+     f90:      1f 77           andi    r17, 0x7F       ; 127
                        #endif
 
                        static inline void USB_Device_SetDeviceAddress(const uint8_t Address) ATTR_ALWAYS_INLINE;
                        static inline void USB_Device_SetDeviceAddress(const uint8_t Address)
                        {
                                UDADDR = (UDADDR & (1 << ADDEN)) | (Address & 0x7F);
-     ff4:      80 91 e3 00     lds     r24, 0x00E3
-     ff8:      80 78           andi    r24, 0x80       ; 128
-     ffa:      81 2b           or      r24, r17
-     ffc:      80 93 e3 00     sts     0x00E3, r24
-    1000:      80 91 e8 00     lds     r24, 0x00E8
-    1004:      87 7f           andi    r24, 0xF7       ; 247
-    1006:      80 93 e8 00     sts     0x00E8, r24
+     f92:      80 91 e3 00     lds     r24, 0x00E3
+     f96:      80 78           andi    r24, 0x80       ; 128
+     f98:      81 2b           or      r24, r17
+     f9a:      80 93 e3 00     sts     0x00E3, r24
+     f9e:      80 91 e8 00     lds     r24, 0x00E8
+     fa2:      87 7f           andi    r24, 0xF7       ; 247
+     fa4:      80 93 e8 00     sts     0x00E8, r24
 
        USB_Device_SetDeviceAddress(DeviceAddress);
 
        Endpoint_ClearSETUP();
 
        Endpoint_ClearStatusStage();
-    100a:      d2 dd           rcall   .-1116          ; 0xbb0 <Endpoint_ClearStatusStage>
+     fa8:      d2 dd           rcall   .-1116          ; 0xb4e <Endpoint_ClearStatusStage>
                         *  \return Boolean \c true if the current endpoint is ready for an IN packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsINReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsINReady(void)
                        {
                                return ((UEINTX & (1 << TXINI)) ? true : false);
-    100c:      80 91 e8 00     lds     r24, 0x00E8
+     faa:      80 91 e8 00     lds     r24, 0x00E8
 
        while (!(Endpoint_IsINReady()));
-    1010:      80 ff           sbrs    r24, 0
-    1012:      fc cf           rjmp    .-8             ; 0x100c <USB_Device_ProcessControlRequest+0x16c>
+     fae:      80 ff           sbrs    r24, 0
+     fb0:      fc cf           rjmp    .-8             ; 0xfaa <USB_Device_ProcessControlRequest+0x16c>
                        static inline void USB_Device_EnableDeviceAddress(const uint8_t Address) ATTR_ALWAYS_INLINE;
                        static inline void USB_Device_EnableDeviceAddress(const uint8_t Address)
                        {
                                (void)Address;
                                
                                UDADDR |= (1 << ADDEN);
-    1014:      80 91 e3 00     lds     r24, 0x00E3
-    1018:      80 68           ori     r24, 0x80       ; 128
-    101a:      80 93 e3 00     sts     0x00E3, r24
+     fb2:      80 91 e3 00     lds     r24, 0x00E3
+     fb6:      80 68           ori     r24, 0x80       ; 128
+     fb8:      80 93 e3 00     sts     0x00E3, r24
 
        USB_Device_EnableDeviceAddress(DeviceAddress);
 
        USB_DeviceState = (DeviceAddress) ? DEVICE_STATE_Addressed : DEVICE_STATE_Default;
-    101e:      11 23           and     r17, r17
-    1020:      11 f0           breq    .+4             ; 0x1026 <USB_Device_ProcessControlRequest+0x186>
-    1022:      83 e0           ldi     r24, 0x03       ; 3
-    1024:      01 c0           rjmp    .+2             ; 0x1028 <USB_Device_ProcessControlRequest+0x188>
-    1026:      82 e0           ldi     r24, 0x02       ; 2
-    1028:      8e bb           out     0x1e, r24       ; 30
-    102a:      83 c0           rjmp    .+262           ; 0x1132 <USB_Device_ProcessControlRequest+0x292>
+     fbc:      11 23           and     r17, r17
+     fbe:      11 f0           breq    .+4             ; 0xfc4 <USB_Device_ProcessControlRequest+0x186>
+     fc0:      83 e0           ldi     r24, 0x03       ; 3
+     fc2:      01 c0           rjmp    .+2             ; 0xfc6 <USB_Device_ProcessControlRequest+0x188>
+     fc4:      82 e0           ldi     r24, 0x02       ; 2
+     fc6:      8e bb           out     0x1e, r24       ; 30
+     fc8:      83 c0           rjmp    .+262           ; 0x10d0 <USB_Device_ProcessControlRequest+0x292>
                                if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE))
                                  USB_Device_SetAddress();
 
                                break;
                        case REQ_GetDescriptor:
                                if ((bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE)) ||
-    102c:      80 58           subi    r24, 0x80       ; 128
-    102e:      82 30           cpi     r24, 0x02       ; 2
-    1030:      08 f0           brcs    .+2             ; 0x1034 <USB_Device_ProcessControlRequest+0x194>
-    1032:      7f c0           rjmp    .+254           ; 0x1132 <USB_Device_ProcessControlRequest+0x292>
+     fca:      80 58           subi    r24, 0x80       ; 128
+     fcc:      82 30           cpi     r24, 0x02       ; 2
+     fce:      08 f0           brcs    .+2             ; 0xfd2 <USB_Device_ProcessControlRequest+0x194>
+     fd0:      7f c0           rjmp    .+254           ; 0x10d0 <USB_Device_ProcessControlRequest+0x292>
            !(defined(USE_FLASH_DESCRIPTORS) || defined(USE_EEPROM_DESCRIPTORS) || defined(USE_RAM_DESCRIPTORS))
        uint8_t DescriptorAddressSpace;
        #endif
 
        #if !defined(NO_INTERNAL_SERIAL) && (USE_INTERNAL_SERIAL != NO_DESCRIPTOR)
        if (USB_ControlRequest.wValue == ((DTYPE_String << 8) | USE_INTERNAL_SERIAL))
-    1034:      80 91 70 02     lds     r24, 0x0270
-    1038:      90 91 71 02     lds     r25, 0x0271
-    103c:      23 e0           ldi     r18, 0x03       ; 3
-    103e:      8c 3d           cpi     r24, 0xDC       ; 220
-    1040:      92 07           cpc     r25, r18
-    1042:      91 f5           brne    .+100           ; 0x10a8 <USB_Device_ProcessControlRequest+0x208>
+     fd2:      80 91 76 02     lds     r24, 0x0276
+     fd6:      90 91 77 02     lds     r25, 0x0277
+     fda:      23 e0           ldi     r18, 0x03       ; 3
+     fdc:      8c 3d           cpi     r24, 0xDC       ; 220
+     fde:      92 07           cpc     r25, r18
+     fe0:      91 f5           brne    .+100           ; 0x1046 <USB_Device_ProcessControlRequest+0x208>
        {
                USB_Descriptor_Header_t Header;
                uint16_t                UnicodeString[INTERNAL_SERIAL_LENGTH_BITS / 4];
        } SignatureDescriptor;
 
        SignatureDescriptor.Header.Type = DTYPE_String;
-    1044:      83 e0           ldi     r24, 0x03       ; 3
-    1046:      8c 83           std     Y+4, r24        ; 0x04
+     fe2:      83 e0           ldi     r24, 0x03       ; 3
+     fe4:      8c 83           std     Y+4, r24        ; 0x04
        SignatureDescriptor.Header.Size = USB_STRING_LEN(INTERNAL_SERIAL_LENGTH_BITS / 4);
-    1048:      8a e2           ldi     r24, 0x2A       ; 42
-    104a:      8b 83           std     Y+3, r24        ; 0x03
+     fe6:      8a e2           ldi     r24, 0x2A       ; 42
+     fe8:      8b 83           std     Y+3, r24        ; 0x03
                        static inline uint_reg_t GetGlobalInterruptMask(void)
                        {
                                GCC_MEMORY_BARRIER();
 
                                #if (ARCH == ARCH_AVR8)
                                return SREG;
-    104c:      5f b7           in      r21, 0x3f       ; 63
+     fea:      5f b7           in      r21, 0x3f       ; 63
                        static inline void GlobalInterruptDisable(void)
                        {
                                GCC_MEMORY_BARRIER();
 
                                #if (ARCH == ARCH_AVR8)
                                cli();
-    104e:      f8 94           cli
+     fec:      f8 94           cli
                                __builtin_ssrf(AVR32_SR_GM_OFFSET);
                                #elif (ARCH == ARCH_XMEGA)
                                cli();
                                #endif
 
                                GCC_MEMORY_BARRIER();
-    1050:      de 01           movw    r26, r28
-    1052:      15 96           adiw    r26, 0x05       ; 5
-    1054:      80 e0           ldi     r24, 0x00       ; 0
-    1056:      90 e0           ldi     r25, 0x00       ; 0
+     fee:      de 01           movw    r26, r28
+     ff0:      15 96           adiw    r26, 0x05       ; 5
+     ff2:      80 e0           ldi     r24, 0x00       ; 0
+     ff4:      90 e0           ldi     r25, 0x00       ; 0
                        static inline void USB_Device_GetSerialString(uint16_t* const UnicodeString)
                        {
                                uint_reg_t CurrentGlobalInt = GetGlobalInterruptMask();
                                GlobalInterruptDisable();
 
                                uint8_t SigReadAddress = INTERNAL_SERIAL_START_ADDRESS;
-    1058:      4e e0           ldi     r20, 0x0E       ; 14
+     ff6:      4e e0           ldi     r20, 0x0E       ; 14
 
                                for (uint8_t SerialCharNum = 0; SerialCharNum < (INTERNAL_SERIAL_LENGTH_BITS / 4); SerialCharNum++)
                                {
                                        uint8_t SerialByte = boot_signature_byte_get(SigReadAddress);
-    105a:      61 e2           ldi     r22, 0x21       ; 33
-    105c:      e4 2f           mov     r30, r20
-    105e:      f0 e0           ldi     r31, 0x00       ; 0
-    1060:      60 93 57 00     sts     0x0057, r22
-    1064:      e4 91           lpm     r30, Z+
+     ff8:      61 e2           ldi     r22, 0x21       ; 33
+     ffa:      e4 2f           mov     r30, r20
+     ffc:      f0 e0           ldi     r31, 0x00       ; 0
+     ffe:      60 93 57 00     sts     0x0057, r22
+    1002:      e4 91           lpm     r30, Z+
 
                                        if (SerialCharNum & 0x01)
-    1066:      80 ff           sbrs    r24, 0
-    1068:      03 c0           rjmp    .+6             ; 0x1070 <USB_Device_ProcessControlRequest+0x1d0>
+    1004:      80 ff           sbrs    r24, 0
+    1006:      03 c0           rjmp    .+6             ; 0x100e <USB_Device_ProcessControlRequest+0x1d0>
                                        {
                                                SerialByte >>= 4;
-    106a:      e2 95           swap    r30
-    106c:      ef 70           andi    r30, 0x0F       ; 15
+    1008:      e2 95           swap    r30
+    100a:      ef 70           andi    r30, 0x0F       ; 15
                                                SigReadAddress++;
-    106e:      4f 5f           subi    r20, 0xFF       ; 255
+    100c:      4f 5f           subi    r20, 0xFF       ; 255
                                        }
 
                                        SerialByte &= 0x0F;
-    1070:      ef 70           andi    r30, 0x0F       ; 15
-    1072:      2e 2f           mov     r18, r30
-    1074:      30 e0           ldi     r19, 0x00       ; 0
+    100e:      ef 70           andi    r30, 0x0F       ; 15
+    1010:      2e 2f           mov     r18, r30
+    1012:      30 e0           ldi     r19, 0x00       ; 0
 
                                        UnicodeString[SerialCharNum] = cpu_to_le16((SerialByte >= 10) ?
-    1076:      ea 30           cpi     r30, 0x0A       ; 10
-    1078:      18 f0           brcs    .+6             ; 0x1080 <USB_Device_ProcessControlRequest+0x1e0>
-    107a:      29 5c           subi    r18, 0xC9       ; 201
-    107c:      3f 4f           sbci    r19, 0xFF       ; 255
-    107e:      02 c0           rjmp    .+4             ; 0x1084 <USB_Device_ProcessControlRequest+0x1e4>
-    1080:      20 5d           subi    r18, 0xD0       ; 208
-    1082:      3f 4f           sbci    r19, 0xFF       ; 255
-    1084:      2d 93           st      X+, r18
-    1086:      3d 93           st      X+, r19
-    1088:      01 96           adiw    r24, 0x01       ; 1
+    1014:      ea 30           cpi     r30, 0x0A       ; 10
+    1016:      18 f0           brcs    .+6             ; 0x101e <USB_Device_ProcessControlRequest+0x1e0>
+    1018:      29 5c           subi    r18, 0xC9       ; 201
+    101a:      3f 4f           sbci    r19, 0xFF       ; 255
+    101c:      02 c0           rjmp    .+4             ; 0x1022 <USB_Device_ProcessControlRequest+0x1e4>
+    101e:      20 5d           subi    r18, 0xD0       ; 208
+    1020:      3f 4f           sbci    r19, 0xFF       ; 255
+    1022:      2d 93           st      X+, r18
+    1024:      3d 93           st      X+, r19
+    1026:      01 96           adiw    r24, 0x01       ; 1
                                uint_reg_t CurrentGlobalInt = GetGlobalInterruptMask();
                                GlobalInterruptDisable();
 
                                uint8_t SigReadAddress = INTERNAL_SERIAL_START_ADDRESS;
 
                                for (uint8_t SerialCharNum = 0; SerialCharNum < (INTERNAL_SERIAL_LENGTH_BITS / 4); SerialCharNum++)
-    108a:      84 31           cpi     r24, 0x14       ; 20
-    108c:      91 05           cpc     r25, r1
-    108e:      31 f7           brne    .-52            ; 0x105c <USB_Device_ProcessControlRequest+0x1bc>
+    1028:      84 31           cpi     r24, 0x14       ; 20
+    102a:      91 05           cpc     r25, r1
+    102c:      31 f7           brne    .-52            ; 0xffa <USB_Device_ProcessControlRequest+0x1bc>
                        static inline void SetGlobalInterruptMask(const uint_reg_t GlobalIntState)
                        {
                                GCC_MEMORY_BARRIER();
 
                                #if (ARCH == ARCH_AVR8)
                                SREG = GlobalIntState;
-    1090:      5f bf           out     0x3f, r21       ; 63
+    102e:      5f bf           out     0x3f, r21       ; 63
                         *  \note This is not applicable for non CONTROL type endpoints.
                         */
                        static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearSETUP(void)
                        {
                                UEINTX &= ~(1 << RXSTPI);
-    1092:      80 91 e8 00     lds     r24, 0x00E8
-    1096:      87 7f           andi    r24, 0xF7       ; 247
-    1098:      80 93 e8 00     sts     0x00E8, r24
+    1030:      80 91 e8 00     lds     r24, 0x00E8
+    1034:      87 7f           andi    r24, 0xF7       ; 247
+    1036:      80 93 e8 00     sts     0x00E8, r24
 
        USB_Device_GetSerialString(SignatureDescriptor.UnicodeString);
 
        Endpoint_ClearSETUP();
 
        Endpoint_Write_Control_Stream_LE(&SignatureDescriptor, sizeof(SignatureDescriptor));
-    109c:      ce 01           movw    r24, r28
-    109e:      03 96           adiw    r24, 0x03       ; 3
-    10a0:      6a e2           ldi     r22, 0x2A       ; 42
-    10a2:      70 e0           ldi     r23, 0x00       ; 0
-    10a4:      55 dc           rcall   .-1878          ; 0x950 <Endpoint_Write_Control_Stream_LE>
-    10a6:      12 c0           rjmp    .+36            ; 0x10cc <USB_Device_ProcessControlRequest+0x22c>
+    103a:      ce 01           movw    r24, r28
+    103c:      03 96           adiw    r24, 0x03       ; 3
+    103e:      6a e2           ldi     r22, 0x2A       ; 42
+    1040:      70 e0           ldi     r23, 0x00       ; 0
+    1042:      55 dc           rcall   .-1878          ; 0x8ee <Endpoint_Write_Control_Stream_LE>
+    1044:      12 c0           rjmp    .+36            ; 0x106a <USB_Device_ProcessControlRequest+0x22c>
                USB_Device_GetInternalSerialDescriptor();
                return;
        }
        #endif
 
        if ((DescriptorSize = CALLBACK_USB_GetDescriptor(USB_ControlRequest.wValue, USB_ControlRequest.wIndex,
-    10a8:      60 91 72 02     lds     r22, 0x0272
-    10ac:      ae 01           movw    r20, r28
-    10ae:      4f 5f           subi    r20, 0xFF       ; 255
-    10b0:      5f 4f           sbci    r21, 0xFF       ; 255
-    10b2:      21 dc           rcall   .-1982          ; 0x8f6 <CALLBACK_USB_GetDescriptor>
-    10b4:      bc 01           movw    r22, r24
-    10b6:      00 97           sbiw    r24, 0x00       ; 0
-    10b8:      09 f4           brne    .+2             ; 0x10bc <USB_Device_ProcessControlRequest+0x21c>
-    10ba:      3b c0           rjmp    .+118           ; 0x1132 <USB_Device_ProcessControlRequest+0x292>
-    10bc:      80 91 e8 00     lds     r24, 0x00E8
-    10c0:      87 7f           andi    r24, 0xF7       ; 247
-    10c2:      80 93 e8 00     sts     0x00E8, r24
+    1046:      60 91 78 02     lds     r22, 0x0278
+    104a:      ae 01           movw    r20, r28
+    104c:      4f 5f           subi    r20, 0xFF       ; 255
+    104e:      5f 4f           sbci    r21, 0xFF       ; 255
+    1050:      21 dc           rcall   .-1982          ; 0x894 <CALLBACK_USB_GetDescriptor>
+    1052:      bc 01           movw    r22, r24
+    1054:      00 97           sbiw    r24, 0x00       ; 0
+    1056:      09 f4           brne    .+2             ; 0x105a <USB_Device_ProcessControlRequest+0x21c>
+    1058:      3b c0           rjmp    .+118           ; 0x10d0 <USB_Device_ProcessControlRequest+0x292>
+    105a:      80 91 e8 00     lds     r24, 0x00E8
+    105e:      87 7f           andi    r24, 0xF7       ; 247
+    1060:      80 93 e8 00     sts     0x00E8, r24
        #if defined(USE_RAM_DESCRIPTORS) || !defined(ARCH_HAS_MULTI_ADDRESS_SPACE)
        Endpoint_Write_Control_Stream_LE(DescriptorPointer, DescriptorSize);
        #elif defined(USE_EEPROM_DESCRIPTORS)
        Endpoint_Write_Control_EStream_LE(DescriptorPointer, DescriptorSize);
        #elif defined(USE_FLASH_DESCRIPTORS)
        Endpoint_Write_Control_PStream_LE(DescriptorPointer, DescriptorSize);
-    10c6:      89 81           ldd     r24, Y+1        ; 0x01
-    10c8:      9a 81           ldd     r25, Y+2        ; 0x02
-    10ca:      9c dc           rcall   .-1736          ; 0xa04 <Endpoint_Write_Control_PStream_LE>
+    1064:      89 81           ldd     r24, Y+1        ; 0x01
+    1066:      9a 81           ldd     r25, Y+2        ; 0x02
+    1068:      9c dc           rcall   .-1736          ; 0x9a2 <Endpoint_Write_Control_PStream_LE>
                         */
                        static inline void Endpoint_ClearOUT(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearOUT(void)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UEINTX &= ~((1 << RXOUTI) | (1 << FIFOCON));
-    10cc:      80 91 e8 00     lds     r24, 0x00E8
-    10d0:      8b 77           andi    r24, 0x7B       ; 123
-    10d2:      80 93 e8 00     sts     0x00E8, r24
-    10d6:      2d c0           rjmp    .+90            ; 0x1132 <USB_Device_ProcessControlRequest+0x292>
+    106a:      80 91 e8 00     lds     r24, 0x00E8
+    106e:      8b 77           andi    r24, 0x7B       ; 123
+    1070:      80 93 e8 00     sts     0x00E8, r24
+    1074:      2d c0           rjmp    .+90            ; 0x10d0 <USB_Device_ProcessControlRequest+0x292>
                                        USB_Device_GetDescriptor();
                                }
 
                                break;
                        case REQ_GetConfiguration:
                                if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE))
-    10d8:      80 38           cpi     r24, 0x80       ; 128
-    10da:      59 f5           brne    .+86            ; 0x1132 <USB_Device_ProcessControlRequest+0x292>
+    1076:      80 38           cpi     r24, 0x80       ; 128
+    1078:      59 f5           brne    .+86            ; 0x10d0 <USB_Device_ProcessControlRequest+0x292>
                         *  \note This is not applicable for non CONTROL type endpoints.
                         */
                        static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearSETUP(void)
                        {
                                UEINTX &= ~(1 << RXSTPI);
-    10dc:      80 91 e8 00     lds     r24, 0x00E8
-    10e0:      87 7f           andi    r24, 0xF7       ; 247
-    10e2:      80 93 e8 00     sts     0x00E8, r24
+    107a:      80 91 e8 00     lds     r24, 0x00E8
+    107e:      87 7f           andi    r24, 0xF7       ; 247
+    1080:      80 93 e8 00     sts     0x00E8, r24
 
 static void USB_Device_GetConfiguration(void)
 {
        Endpoint_ClearSETUP();
 
        Endpoint_Write_8(USB_Device_ConfigurationNumber);
-    10e6:      80 91 6a 02     lds     r24, 0x026A
+    1084:      80 91 70 02     lds     r24, 0x0270
                         *  \param[in] Data  Data to write into the the currently selected endpoint's FIFO buffer.
                         */
                        static inline void Endpoint_Write_8(const uint8_t Data) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_Write_8(const uint8_t Data)
                        {
                                UEDATX = Data;
-    10ea:      80 93 f1 00     sts     0x00F1, r24
+    1088:      80 93 f1 00     sts     0x00F1, r24
                         */
                        static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearIN(void)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
-    10ee:      80 91 e8 00     lds     r24, 0x00E8
-    10f2:      8e 77           andi    r24, 0x7E       ; 126
-    10f4:      80 93 e8 00     sts     0x00E8, r24
+    108c:      80 91 e8 00     lds     r24, 0x00E8
+    1090:      8e 77           andi    r24, 0x7E       ; 126
+    1092:      80 93 e8 00     sts     0x00E8, r24
        Endpoint_ClearIN();
 
        Endpoint_ClearStatusStage();
-    10f8:      5b dd           rcall   .-1354          ; 0xbb0 <Endpoint_ClearStatusStage>
-    10fa:      1b c0           rjmp    .+54            ; 0x1132 <USB_Device_ProcessControlRequest+0x292>
+    1096:      5b dd           rcall   .-1354          ; 0xb4e <Endpoint_ClearStatusStage>
+    1098:      1b c0           rjmp    .+54            ; 0x10d0 <USB_Device_ProcessControlRequest+0x292>
                                if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE))
                                  USB_Device_GetConfiguration();
 
                                break;
                        case REQ_SetConfiguration:
                                if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE))
-    10fc:      88 23           and     r24, r24
-    10fe:      c9 f4           brne    .+50            ; 0x1132 <USB_Device_ProcessControlRequest+0x292>
+    109a:      88 23           and     r24, r24
+    109c:      c9 f4           brne    .+50            ; 0x10d0 <USB_Device_ProcessControlRequest+0x292>
 }
 
 static void USB_Device_SetConfiguration(void)
 {
        #if defined(FIXED_NUM_CONFIGURATIONS)
        if ((uint8_t)USB_ControlRequest.wValue > FIXED_NUM_CONFIGURATIONS)
-    1100:      90 91 70 02     lds     r25, 0x0270
-    1104:      92 30           cpi     r25, 0x02       ; 2
-    1106:      a8 f4           brcc    .+42            ; 0x1132 <USB_Device_ProcessControlRequest+0x292>
+    109e:      90 91 76 02     lds     r25, 0x0276
+    10a2:      92 30           cpi     r25, 0x02       ; 2
+    10a4:      a8 f4           brcc    .+42            ; 0x10d0 <USB_Device_ProcessControlRequest+0x292>
                         *  \note This is not applicable for non CONTROL type endpoints.
                         */
                        static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearSETUP(void)
                        {
                                UEINTX &= ~(1 << RXSTPI);
-    1108:      80 91 e8 00     lds     r24, 0x00E8
-    110c:      87 7f           andi    r24, 0xF7       ; 247
-    110e:      80 93 e8 00     sts     0x00E8, r24
+    10a6:      80 91 e8 00     lds     r24, 0x00E8
+    10aa:      87 7f           andi    r24, 0xF7       ; 247
+    10ac:      80 93 e8 00     sts     0x00E8, r24
        #endif
        #endif
 
        Endpoint_ClearSETUP();
 
        USB_Device_ConfigurationNumber = (uint8_t)USB_ControlRequest.wValue;
-    1112:      90 93 6a 02     sts     0x026A, r25
+    10b0:      90 93 70 02     sts     0x0270, r25
 
        Endpoint_ClearStatusStage();
-    1116:      4c dd           rcall   .-1384          ; 0xbb0 <Endpoint_ClearStatusStage>
+    10b4:      4c dd           rcall   .-1384          ; 0xb4e <Endpoint_ClearStatusStage>
 
        if (USB_Device_ConfigurationNumber)
-    1118:      80 91 6a 02     lds     r24, 0x026A
-    111c:      88 23           and     r24, r24
-    111e:      21 f4           brne    .+8             ; 0x1128 <USB_Device_ProcessControlRequest+0x288>
+    10b6:      80 91 70 02     lds     r24, 0x0270
+    10ba:      88 23           and     r24, r24
+    10bc:      21 f4           brne    .+8             ; 0x10c6 <USB_Device_ProcessControlRequest+0x288>
                        }
 
                        static inline bool USB_Device_IsAddressSet(void) ATTR_ALWAYS_INLINE ATTR_WARN_UNUSED_RESULT;
                        static inline bool USB_Device_IsAddressSet(void)
                        {
                                return (UDADDR & (1 << ADDEN));
-    1120:      80 91 e3 00     lds     r24, 0x00E3
+    10be:      80 91 e3 00     lds     r24, 0x00E3
          USB_DeviceState = DEVICE_STATE_Configured;
        else
          USB_DeviceState = (USB_Device_IsAddressSet()) ? DEVICE_STATE_Configured : DEVICE_STATE_Powered;
-    1124:      87 ff           sbrs    r24, 7
-    1126:      02 c0           rjmp    .+4             ; 0x112c <USB_Device_ProcessControlRequest+0x28c>
-    1128:      84 e0           ldi     r24, 0x04       ; 4
-    112a:      01 c0           rjmp    .+2             ; 0x112e <USB_Device_ProcessControlRequest+0x28e>
-    112c:      81 e0           ldi     r24, 0x01       ; 1
-    112e:      8e bb           out     0x1e, r24       ; 30
+    10c2:      87 ff           sbrs    r24, 7
+    10c4:      02 c0           rjmp    .+4             ; 0x10ca <USB_Device_ProcessControlRequest+0x28c>
+    10c6:      84 e0           ldi     r24, 0x04       ; 4
+    10c8:      01 c0           rjmp    .+2             ; 0x10cc <USB_Device_ProcessControlRequest+0x28e>
+    10ca:      81 e0           ldi     r24, 0x01       ; 1
+    10cc:      8e bb           out     0x1e, r24       ; 30
 
        EVENT_USB_Device_ConfigurationChanged();
-    1130:      72 da           rcall   .-2844          ; 0x616 <EVENT_USB_Device_ConfigurationChanged>
+    10ce:      f0 da           rcall   .-2592          ; 0x6b0 <EVENT_USB_Device_ConfigurationChanged>
                         *  \return Boolean \c true if the selected endpoint has received a SETUP packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsSETUPReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsSETUPReceived(void)
                        {
                                return ((UEINTX & (1 << RXSTPI)) ? true : false);
-    1132:      80 91 e8 00     lds     r24, 0x00E8
+    10d0:      80 91 e8 00     lds     r24, 0x00E8
                        default:
                                break;
                }
        }
 
        if (Endpoint_IsSETUPReceived())
-    1136:      83 ff           sbrs    r24, 3
-    1138:      0a c0           rjmp    .+20            ; 0x114e <USB_Device_ProcessControlRequest+0x2ae>
+    10d4:      83 ff           sbrs    r24, 3
+    10d6:      0a c0           rjmp    .+20            ; 0x10ec <USB_Device_ProcessControlRequest+0x2ae>
                         *  \note This is not applicable for non CONTROL type endpoints.
                         */
                        static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearSETUP(void)
                        {
                                UEINTX &= ~(1 << RXSTPI);
-    113a:      80 91 e8 00     lds     r24, 0x00E8
-    113e:      87 7f           andi    r24, 0xF7       ; 247
-    1140:      80 93 e8 00     sts     0x00E8, r24
+    10d8:      80 91 e8 00     lds     r24, 0x00E8
+    10dc:      87 7f           andi    r24, 0xF7       ; 247
+    10de:      80 93 e8 00     sts     0x00E8, r24
                         *  \ingroup Group_EndpointPacketManagement_AVR8
                         */
                        static inline void Endpoint_StallTransaction(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_StallTransaction(void)
                        {
                                UECONX |= (1 << STALLRQ);
-    1144:      80 91 eb 00     lds     r24, 0x00EB
-    1148:      80 62           ori     r24, 0x20       ; 32
-    114a:      80 93 eb 00     sts     0x00EB, r24
+    10e2:      80 91 eb 00     lds     r24, 0x00EB
+    10e6:      80 62           ori     r24, 0x20       ; 32
+    10e8:      80 93 eb 00     sts     0x00EB, r24
        {
                Endpoint_ClearSETUP();
                Endpoint_StallTransaction();
        }
 }
-    114e:      ac 96           adiw    r28, 0x2c       ; 44
-    1150:      0f b6           in      r0, 0x3f        ; 63
-    1152:      f8 94           cli
-    1154:      de bf           out     0x3e, r29       ; 62
-    1156:      0f be           out     0x3f, r0        ; 63
-    1158:      cd bf           out     0x3d, r28       ; 61
-    115a:      cf 91           pop     r28
-    115c:      df 91           pop     r29
-    115e:      1f 91           pop     r17
-    1160:      08 95           ret
-
-00001162 <USB_Event_Stub>:
+    10ec:      ac 96           adiw    r28, 0x2c       ; 44
+    10ee:      0f b6           in      r0, 0x3f        ; 63
+    10f0:      f8 94           cli
+    10f2:      de bf           out     0x3e, r29       ; 62
+    10f4:      0f be           out     0x3f, r0        ; 63
+    10f6:      cd bf           out     0x3d, r28       ; 61
+    10f8:      cf 91           pop     r28
+    10fa:      df 91           pop     r29
+    10fc:      1f 91           pop     r17
+    10fe:      08 95           ret
+
+00001100 <USB_Event_Stub>:
 #include "Events.h"
 
 void USB_Event_Stub(void)
 {
 
 }
-    1162:      08 95           ret
+    1100:      08 95           ret
 
-00001164 <USB_USBTask>:
+00001102 <USB_USBTask>:
 #if defined(USB_CAN_BE_DEVICE) && !defined(DEVICE_STATE_AS_GPIOR)
 volatile uint8_t     USB_DeviceState;
 #endif
 
 void USB_USBTask(void)
 {
-    1164:      1f 93           push    r17
+    1102:      1f 93           push    r17
 }
 
 #if defined(USB_CAN_BE_DEVICE)
 static void USB_DeviceTask(void)
 {
        if (USB_DeviceState == DEVICE_STATE_Unattached)
-    1166:      8e b3           in      r24, 0x1e       ; 30
-    1168:      88 23           and     r24, r24
-    116a:      a9 f0           breq    .+42            ; 0x1196 <USB_USBTask+0x32>
+    1104:      8e b3           in      r24, 0x1e       ; 30
+    1106:      88 23           and     r24, r24
+    1108:      a9 f0           breq    .+42            ; 0x1134 <USB_USBTask+0x32>
                         */
                        static inline uint8_t Endpoint_GetCurrentEndpoint(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline uint8_t Endpoint_GetCurrentEndpoint(void)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        return ((UENUM & ENDPOINT_EPNUM_MASK) | Endpoint_GetEndpointDirection());
-    116c:      80 91 e9 00     lds     r24, 0x00E9
-    1170:      8f 70           andi    r24, 0x0F       ; 15
+    110a:      80 91 e9 00     lds     r24, 0x00E9
+    110e:      8f 70           andi    r24, 0x0F       ; 15
                         *  \return The currently selected endpoint's direction, as a \c ENDPOINT_DIR_* mask.
                         */
                        static inline uint8_t Endpoint_GetEndpointDirection(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline uint8_t Endpoint_GetEndpointDirection(void)
                        {
                                return (UECFG0X & (1 << EPDIR)) ? ENDPOINT_DIR_IN : ENDPOINT_DIR_OUT;
-    1172:      90 91 ec 00     lds     r25, 0x00EC
-    1176:      90 ff           sbrs    r25, 0
-    1178:      02 c0           rjmp    .+4             ; 0x117e <USB_USBTask+0x1a>
-    117a:      10 e8           ldi     r17, 0x80       ; 128
-    117c:      01 c0           rjmp    .+2             ; 0x1180 <USB_USBTask+0x1c>
-    117e:      10 e0           ldi     r17, 0x00       ; 0
+    1110:      90 91 ec 00     lds     r25, 0x00EC
+    1114:      90 ff           sbrs    r25, 0
+    1116:      02 c0           rjmp    .+4             ; 0x111c <USB_USBTask+0x1a>
+    1118:      10 e8           ldi     r17, 0x80       ; 128
+    111a:      01 c0           rjmp    .+2             ; 0x111e <USB_USBTask+0x1c>
+    111c:      10 e0           ldi     r17, 0x00       ; 0
                         */
                        static inline uint8_t Endpoint_GetCurrentEndpoint(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline uint8_t Endpoint_GetCurrentEndpoint(void)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        return ((UENUM & ENDPOINT_EPNUM_MASK) | Endpoint_GetEndpointDirection());
-    1180:      18 2b           or      r17, r24
+    111e:      18 2b           or      r17, r24
                         */
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UENUM = (Address & ENDPOINT_EPNUM_MASK);
-    1182:      10 92 e9 00     sts     0x00E9, r1
+    1120:      10 92 e9 00     sts     0x00E9, r1
                         *  \return Boolean \c true if the selected endpoint has received a SETUP packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsSETUPReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsSETUPReceived(void)
                        {
                                return ((UEINTX & (1 << RXSTPI)) ? true : false);
-    1186:      80 91 e8 00     lds     r24, 0x00E8
+    1124:      80 91 e8 00     lds     r24, 0x00E8
 
        uint8_t PrevEndpoint = Endpoint_GetCurrentEndpoint();
 
        Endpoint_SelectEndpoint(ENDPOINT_CONTROLEP);
 
        if (Endpoint_IsSETUPReceived())
-    118a:      83 ff           sbrs    r24, 3
-    118c:      01 c0           rjmp    .+2             ; 0x1190 <USB_USBTask+0x2c>
+    1128:      83 ff           sbrs    r24, 3
+    112a:      01 c0           rjmp    .+2             ; 0x112e <USB_USBTask+0x2c>
          USB_Device_ProcessControlRequest();
-    118e:      88 de           rcall   .-752           ; 0xea0 <USB_Device_ProcessControlRequest>
+    112c:      88 de           rcall   .-752           ; 0xe3e <USB_Device_ProcessControlRequest>
                         */
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UENUM = (Address & ENDPOINT_EPNUM_MASK);
-    1190:      1f 70           andi    r17, 0x0F       ; 15
-    1192:      10 93 e9 00     sts     0x00E9, r17
+    112e:      1f 70           andi    r17, 0x0F       ; 15
+    1130:      10 93 e9 00     sts     0x00E9, r17
        #elif defined(USB_CAN_BE_HOST)
                USB_HostTask();
        #elif defined(USB_CAN_BE_DEVICE)
                USB_DeviceTask();
        #endif
 }
-    1196:      1f 91           pop     r17
-    1198:      08 95           ret
+    1134:      1f 91           pop     r17
+    1136:      08 95           ret
 
-0000119a <CDC_Device_ProcessControlRequest>:
+00001138 <CDC_Device_ProcessControlRequest>:
 #define  __INCLUDE_FROM_CDC_DRIVER
 #define  __INCLUDE_FROM_CDC_DEVICE_C
 #include "CDCClassDevice.h"
 
 void CDC_Device_ProcessControlRequest(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
 {
-    119a:      cf 93           push    r28
-    119c:      df 93           push    r29
-    119e:      ec 01           movw    r28, r24
+    1138:      cf 93           push    r28
+    113a:      df 93           push    r29
+    113c:      ec 01           movw    r28, r24
                         *  \return Boolean \c true if the selected endpoint has received a SETUP packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsSETUPReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsSETUPReceived(void)
                        {
                                return ((UEINTX & (1 << RXSTPI)) ? true : false);
-    11a0:      80 91 e8 00     lds     r24, 0x00E8
+    113e:      80 91 e8 00     lds     r24, 0x00E8
        if (!(Endpoint_IsSETUPReceived()))
-    11a4:      83 ff           sbrs    r24, 3
-    11a6:      a2 c0           rjmp    .+324           ; 0x12ec <CDC_Device_ProcessControlRequest+0x152>
+    1142:      83 ff           sbrs    r24, 3
+    1144:      a2 c0           rjmp    .+324           ; 0x128a <CDC_Device_ProcessControlRequest+0x152>
          return;
 
        if (USB_ControlRequest.wIndex != CDCInterfaceInfo->Config.ControlInterfaceNumber)
-    11a8:      88 81           ld      r24, Y
-    11aa:      90 e0           ldi     r25, 0x00       ; 0
-    11ac:      20 91 72 02     lds     r18, 0x0272
-    11b0:      30 91 73 02     lds     r19, 0x0273
-    11b4:      28 17           cp      r18, r24
-    11b6:      39 07           cpc     r19, r25
-    11b8:      09 f0           breq    .+2             ; 0x11bc <CDC_Device_ProcessControlRequest+0x22>
-    11ba:      98 c0           rjmp    .+304           ; 0x12ec <CDC_Device_ProcessControlRequest+0x152>
+    1146:      88 81           ld      r24, Y
+    1148:      90 e0           ldi     r25, 0x00       ; 0
+    114a:      20 91 78 02     lds     r18, 0x0278
+    114e:      30 91 79 02     lds     r19, 0x0279
+    1152:      28 17           cp      r18, r24
+    1154:      39 07           cpc     r19, r25
+    1156:      09 f0           breq    .+2             ; 0x115a <CDC_Device_ProcessControlRequest+0x22>
+    1158:      98 c0           rjmp    .+304           ; 0x128a <CDC_Device_ProcessControlRequest+0x152>
          return;
 
        switch (USB_ControlRequest.bRequest)
-    11bc:      80 91 6f 02     lds     r24, 0x026F
-    11c0:      81 32           cpi     r24, 0x21       ; 33
-    11c2:      69 f0           breq    .+26            ; 0x11de <CDC_Device_ProcessControlRequest+0x44>
-    11c4:      82 32           cpi     r24, 0x22       ; 34
-    11c6:      20 f4           brcc    .+8             ; 0x11d0 <CDC_Device_ProcessControlRequest+0x36>
-    11c8:      80 32           cpi     r24, 0x20       ; 32
-    11ca:      09 f0           breq    .+2             ; 0x11ce <CDC_Device_ProcessControlRequest+0x34>
-    11cc:      8f c0           rjmp    .+286           ; 0x12ec <CDC_Device_ProcessControlRequest+0x152>
-    11ce:      3c c0           rjmp    .+120           ; 0x1248 <CDC_Device_ProcessControlRequest+0xae>
-    11d0:      82 32           cpi     r24, 0x22       ; 34
-    11d2:      09 f4           brne    .+2             ; 0x11d6 <CDC_Device_ProcessControlRequest+0x3c>
-    11d4:      6a c0           rjmp    .+212           ; 0x12aa <CDC_Device_ProcessControlRequest+0x110>
-    11d6:      83 32           cpi     r24, 0x23       ; 35
-    11d8:      09 f0           breq    .+2             ; 0x11dc <CDC_Device_ProcessControlRequest+0x42>
-    11da:      88 c0           rjmp    .+272           ; 0x12ec <CDC_Device_ProcessControlRequest+0x152>
-    11dc:      79 c0           rjmp    .+242           ; 0x12d0 <CDC_Device_ProcessControlRequest+0x136>
+    115a:      80 91 75 02     lds     r24, 0x0275
+    115e:      81 32           cpi     r24, 0x21       ; 33
+    1160:      69 f0           breq    .+26            ; 0x117c <CDC_Device_ProcessControlRequest+0x44>
+    1162:      82 32           cpi     r24, 0x22       ; 34
+    1164:      20 f4           brcc    .+8             ; 0x116e <CDC_Device_ProcessControlRequest+0x36>
+    1166:      80 32           cpi     r24, 0x20       ; 32
+    1168:      09 f0           breq    .+2             ; 0x116c <CDC_Device_ProcessControlRequest+0x34>
+    116a:      8f c0           rjmp    .+286           ; 0x128a <CDC_Device_ProcessControlRequest+0x152>
+    116c:      3c c0           rjmp    .+120           ; 0x11e6 <CDC_Device_ProcessControlRequest+0xae>
+    116e:      82 32           cpi     r24, 0x22       ; 34
+    1170:      09 f4           brne    .+2             ; 0x1174 <CDC_Device_ProcessControlRequest+0x3c>
+    1172:      6a c0           rjmp    .+212           ; 0x1248 <CDC_Device_ProcessControlRequest+0x110>
+    1174:      83 32           cpi     r24, 0x23       ; 35
+    1176:      09 f0           breq    .+2             ; 0x117a <CDC_Device_ProcessControlRequest+0x42>
+    1178:      88 c0           rjmp    .+272           ; 0x128a <CDC_Device_ProcessControlRequest+0x152>
+    117a:      79 c0           rjmp    .+242           ; 0x126e <CDC_Device_ProcessControlRequest+0x136>
        {
                case CDC_REQ_GetLineEncoding:
                        if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE))
-    11de:      80 91 6e 02     lds     r24, 0x026E
-    11e2:      81 3a           cpi     r24, 0xA1       ; 161
-    11e4:      09 f0           breq    .+2             ; 0x11e8 <CDC_Device_ProcessControlRequest+0x4e>
-    11e6:      82 c0           rjmp    .+260           ; 0x12ec <CDC_Device_ProcessControlRequest+0x152>
+    117c:      80 91 74 02     lds     r24, 0x0274
+    1180:      81 3a           cpi     r24, 0xA1       ; 161
+    1182:      09 f0           breq    .+2             ; 0x1186 <CDC_Device_ProcessControlRequest+0x4e>
+    1184:      82 c0           rjmp    .+260           ; 0x128a <CDC_Device_ProcessControlRequest+0x152>
                         *  \note This is not applicable for non CONTROL type endpoints.
                         */
                        static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearSETUP(void)
                        {
                                UEINTX &= ~(1 << RXSTPI);
-    11e8:      80 91 e8 00     lds     r24, 0x00E8
-    11ec:      87 7f           andi    r24, 0xF7       ; 247
-    11ee:      80 93 e8 00     sts     0x00E8, r24
+    1186:      80 91 e8 00     lds     r24, 0x00E8
+    118a:      87 7f           andi    r24, 0xF7       ; 247
+    118c:      80 93 e8 00     sts     0x00E8, r24
                         *  \return Boolean \c true if the current endpoint is ready for an IN packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsINReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsINReady(void)
                        {
                                return ((UEINTX & (1 << TXINI)) ? true : false);
-    11f2:      80 91 e8 00     lds     r24, 0x00E8
+    1190:      80 91 e8 00     lds     r24, 0x00E8
                        {
                                Endpoint_ClearSETUP();
 
                                while (!(Endpoint_IsINReady()));
-    11f6:      80 ff           sbrs    r24, 0
-    11f8:      fc cf           rjmp    .-8             ; 0x11f2 <CDC_Device_ProcessControlRequest+0x58>
+    1194:      80 ff           sbrs    r24, 0
+    1196:      fc cf           rjmp    .-8             ; 0x1190 <CDC_Device_ProcessControlRequest+0x58>
 
                                Endpoint_Write_32_LE(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS);
-    11fa:      8c 89           ldd     r24, Y+20       ; 0x14
-    11fc:      9d 89           ldd     r25, Y+21       ; 0x15
-    11fe:      ae 89           ldd     r26, Y+22       ; 0x16
-    1200:      bf 89           ldd     r27, Y+23       ; 0x17
+    1198:      8c 89           ldd     r24, Y+20       ; 0x14
+    119a:      9d 89           ldd     r25, Y+21       ; 0x15
+    119c:      ae 89           ldd     r26, Y+22       ; 0x16
+    119e:      bf 89           ldd     r27, Y+23       ; 0x17
                         *  \param[in] Data  Data to write to the currently selected endpoint's FIFO buffer.
                         */
                        static inline void Endpoint_Write_32_LE(const uint32_t Data) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_Write_32_LE(const uint32_t Data)
                        {
                                UEDATX = (Data &  0xFF);
-    1202:      80 93 f1 00     sts     0x00F1, r24
+    11a0:      80 93 f1 00     sts     0x00F1, r24
                                UEDATX = (Data >> 8);
-    1206:      29 2f           mov     r18, r25
-    1208:      3a 2f           mov     r19, r26
-    120a:      4b 2f           mov     r20, r27
-    120c:      55 27           eor     r21, r21
-    120e:      20 93 f1 00     sts     0x00F1, r18
+    11a4:      29 2f           mov     r18, r25
+    11a6:      3a 2f           mov     r19, r26
+    11a8:      4b 2f           mov     r20, r27
+    11aa:      55 27           eor     r21, r21
+    11ac:      20 93 f1 00     sts     0x00F1, r18
                                UEDATX = (Data >> 16);
-    1212:      9d 01           movw    r18, r26
-    1214:      44 27           eor     r20, r20
-    1216:      55 27           eor     r21, r21
-    1218:      20 93 f1 00     sts     0x00F1, r18
+    11b0:      9d 01           movw    r18, r26
+    11b2:      44 27           eor     r20, r20
+    11b4:      55 27           eor     r21, r21
+    11b6:      20 93 f1 00     sts     0x00F1, r18
                                UEDATX = (Data >> 24);
-    121c:      8b 2f           mov     r24, r27
-    121e:      99 27           eor     r25, r25
-    1220:      aa 27           eor     r26, r26
-    1222:      bb 27           eor     r27, r27
-    1224:      80 93 f1 00     sts     0x00F1, r24
+    11ba:      8b 2f           mov     r24, r27
+    11bc:      99 27           eor     r25, r25
+    11be:      aa 27           eor     r26, r26
+    11c0:      bb 27           eor     r27, r27
+    11c2:      80 93 f1 00     sts     0x00F1, r24
                                Endpoint_Write_8(CDCInterfaceInfo->State.LineEncoding.CharFormat);
-    1228:      88 8d           ldd     r24, Y+24       ; 0x18
+    11c6:      88 8d           ldd     r24, Y+24       ; 0x18
                         *  \param[in] Data  Data to write into the the currently selected endpoint's FIFO buffer.
                         */
                        static inline void Endpoint_Write_8(const uint8_t Data) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_Write_8(const uint8_t Data)
                        {
                                UEDATX = Data;
-    122a:      80 93 f1 00     sts     0x00F1, r24
+    11c8:      80 93 f1 00     sts     0x00F1, r24
                                Endpoint_Write_8(CDCInterfaceInfo->State.LineEncoding.ParityType);
-    122e:      89 8d           ldd     r24, Y+25       ; 0x19
-    1230:      80 93 f1 00     sts     0x00F1, r24
+    11cc:      89 8d           ldd     r24, Y+25       ; 0x19
+    11ce:      80 93 f1 00     sts     0x00F1, r24
                                Endpoint_Write_8(CDCInterfaceInfo->State.LineEncoding.DataBits);
-    1234:      8a 8d           ldd     r24, Y+26       ; 0x1a
-    1236:      80 93 f1 00     sts     0x00F1, r24
+    11d2:      8a 8d           ldd     r24, Y+26       ; 0x1a
+    11d4:      80 93 f1 00     sts     0x00F1, r24
                         */
                        static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearIN(void)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
-    123a:      80 91 e8 00     lds     r24, 0x00E8
-    123e:      8e 77           andi    r24, 0x7E       ; 126
-    1240:      80 93 e8 00     sts     0x00E8, r24
+    11d8:      80 91 e8 00     lds     r24, 0x00E8
+    11dc:      8e 77           andi    r24, 0x7E       ; 126
+    11de:      80 93 e8 00     sts     0x00E8, r24
 
                                Endpoint_ClearIN();
                                Endpoint_ClearStatusStage();
-    1244:      b5 dc           rcall   .-1686          ; 0xbb0 <Endpoint_ClearStatusStage>
-    1246:      52 c0           rjmp    .+164           ; 0x12ec <CDC_Device_ProcessControlRequest+0x152>
+    11e2:      b5 dc           rcall   .-1686          ; 0xb4e <Endpoint_ClearStatusStage>
+    11e4:      52 c0           rjmp    .+164           ; 0x128a <CDC_Device_ProcessControlRequest+0x152>
                        }
 
                        break;
                case CDC_REQ_SetLineEncoding:
                        if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
-    1248:      80 91 6e 02     lds     r24, 0x026E
-    124c:      81 32           cpi     r24, 0x21       ; 33
-    124e:      09 f0           breq    .+2             ; 0x1252 <CDC_Device_ProcessControlRequest+0xb8>
-    1250:      4d c0           rjmp    .+154           ; 0x12ec <CDC_Device_ProcessControlRequest+0x152>
+    11e6:      80 91 74 02     lds     r24, 0x0274
+    11ea:      81 32           cpi     r24, 0x21       ; 33
+    11ec:      09 f0           breq    .+2             ; 0x11f0 <CDC_Device_ProcessControlRequest+0xb8>
+    11ee:      4d c0           rjmp    .+154           ; 0x128a <CDC_Device_ProcessControlRequest+0x152>
                         *  \note This is not applicable for non CONTROL type endpoints.
                         */
                        static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearSETUP(void)
                        {
                                UEINTX &= ~(1 << RXSTPI);
-    1252:      80 91 e8 00     lds     r24, 0x00E8
-    1256:      87 7f           andi    r24, 0xF7       ; 247
-    1258:      80 93 e8 00     sts     0x00E8, r24
+    11f0:      80 91 e8 00     lds     r24, 0x00E8
+    11f4:      87 7f           andi    r24, 0xF7       ; 247
+    11f6:      80 93 e8 00     sts     0x00E8, r24
                        {
                                Endpoint_ClearSETUP();
 
                                while (!(Endpoint_IsOUTReceived()))
-    125c:      04 c0           rjmp    .+8             ; 0x1266 <CDC_Device_ProcessControlRequest+0xcc>
+    11fa:      04 c0           rjmp    .+8             ; 0x1204 <CDC_Device_ProcessControlRequest+0xcc>
                                {
                                        if (USB_DeviceState == DEVICE_STATE_Unattached)
-    125e:      8e b3           in      r24, 0x1e       ; 30
-    1260:      88 23           and     r24, r24
-    1262:      09 f4           brne    .+2             ; 0x1266 <CDC_Device_ProcessControlRequest+0xcc>
-    1264:      43 c0           rjmp    .+134           ; 0x12ec <CDC_Device_ProcessControlRequest+0x152>
+    11fc:      8e b3           in      r24, 0x1e       ; 30
+    11fe:      88 23           and     r24, r24
+    1200:      09 f4           brne    .+2             ; 0x1204 <CDC_Device_ProcessControlRequest+0xcc>
+    1202:      43 c0           rjmp    .+134           ; 0x128a <CDC_Device_ProcessControlRequest+0x152>
                         *  \return Boolean \c true if current endpoint is has received an OUT packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsOUTReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsOUTReceived(void)
                        {
                                return ((UEINTX & (1 << RXOUTI)) ? true : false);
-    1266:      80 91 e8 00     lds     r24, 0x00E8
+    1204:      80 91 e8 00     lds     r24, 0x00E8
                case CDC_REQ_SetLineEncoding:
                        if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
                        {
                                Endpoint_ClearSETUP();
 
                                while (!(Endpoint_IsOUTReceived()))
-    126a:      82 ff           sbrs    r24, 2
-    126c:      f8 cf           rjmp    .-16            ; 0x125e <CDC_Device_ProcessControlRequest+0xc4>
+    1208:      82 ff           sbrs    r24, 2
+    120a:      f8 cf           rjmp    .-16            ; 0x11fc <CDC_Device_ProcessControlRequest+0xc4>
                                {
                                        uint32_t Value;
                                        uint8_t  Bytes[4];
                                } Data;
 
                                Data.Bytes[0] = UEDATX;
-    126e:      30 91 f1 00     lds     r19, 0x00F1
+    120c:      30 91 f1 00     lds     r19, 0x00F1
                                Data.Bytes[1] = UEDATX;
-    1272:      20 91 f1 00     lds     r18, 0x00F1
+    1210:      20 91 f1 00     lds     r18, 0x00F1
                                Data.Bytes[2] = UEDATX;
-    1276:      90 91 f1 00     lds     r25, 0x00F1
+    1214:      90 91 f1 00     lds     r25, 0x00F1
                                Data.Bytes[3] = UEDATX;
-    127a:      80 91 f1 00     lds     r24, 0x00F1
+    1218:      80 91 f1 00     lds     r24, 0x00F1
                                {
                                        if (USB_DeviceState == DEVICE_STATE_Unattached)
                                          return;
                                }
 
                                CDCInterfaceInfo->State.LineEncoding.BaudRateBPS = Endpoint_Read_32_LE();
-    127e:      3c 8b           std     Y+20, r19       ; 0x14
-    1280:      2d 8b           std     Y+21, r18       ; 0x15
-    1282:      9e 8b           std     Y+22, r25       ; 0x16
-    1284:      8f 8b           std     Y+23, r24       ; 0x17
+    121c:      3c 8b           std     Y+20, r19       ; 0x14
+    121e:      2d 8b           std     Y+21, r18       ; 0x15
+    1220:      9e 8b           std     Y+22, r25       ; 0x16
+    1222:      8f 8b           std     Y+23, r24       ; 0x17
                         *  \return Next byte in the currently selected endpoint's FIFO buffer.
                         */
                        static inline uint8_t Endpoint_Read_8(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline uint8_t Endpoint_Read_8(void)
                        {
                                return UEDATX;
-    1286:      80 91 f1 00     lds     r24, 0x00F1
+    1224:      80 91 f1 00     lds     r24, 0x00F1
                                CDCInterfaceInfo->State.LineEncoding.CharFormat  = Endpoint_Read_8();
-    128a:      88 8f           std     Y+24, r24       ; 0x18
-    128c:      80 91 f1 00     lds     r24, 0x00F1
+    1228:      88 8f           std     Y+24, r24       ; 0x18
+    122a:      80 91 f1 00     lds     r24, 0x00F1
                                CDCInterfaceInfo->State.LineEncoding.ParityType  = Endpoint_Read_8();
-    1290:      89 8f           std     Y+25, r24       ; 0x19
-    1292:      80 91 f1 00     lds     r24, 0x00F1
+    122e:      89 8f           std     Y+25, r24       ; 0x19
+    1230:      80 91 f1 00     lds     r24, 0x00F1
                                CDCInterfaceInfo->State.LineEncoding.DataBits    = Endpoint_Read_8();
-    1296:      8a 8f           std     Y+26, r24       ; 0x1a
+    1234:      8a 8f           std     Y+26, r24       ; 0x1a
                         */
                        static inline void Endpoint_ClearOUT(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearOUT(void)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UEINTX &= ~((1 << RXOUTI) | (1 << FIFOCON));
-    1298:      80 91 e8 00     lds     r24, 0x00E8
-    129c:      8b 77           andi    r24, 0x7B       ; 123
-    129e:      80 93 e8 00     sts     0x00E8, r24
+    1236:      80 91 e8 00     lds     r24, 0x00E8
+    123a:      8b 77           andi    r24, 0x7B       ; 123
+    123c:      80 93 e8 00     sts     0x00E8, r24
 
                                Endpoint_ClearOUT();
                                Endpoint_ClearStatusStage();
-    12a2:      86 dc           rcall   .-1780          ; 0xbb0 <Endpoint_ClearStatusStage>
+    1240:      86 dc           rcall   .-1780          ; 0xb4e <Endpoint_ClearStatusStage>
 
                                EVENT_CDC_Device_LineEncodingChanged(CDCInterfaceInfo);
-    12a4:      ce 01           movw    r24, r28
-    12a6:      e7 d9           rcall   .-3122          ; 0x676 <EVENT_CDC_Device_LineEncodingChanged>
-    12a8:      21 c0           rjmp    .+66            ; 0x12ec <CDC_Device_ProcessControlRequest+0x152>
+    1242:      ce 01           movw    r24, r28
+    1244:      65 da           rcall   .-2870          ; 0x710 <EVENT_CDC_Device_LineEncodingChanged>
+    1246:      21 c0           rjmp    .+66            ; 0x128a <CDC_Device_ProcessControlRequest+0x152>
                        }
 
                        break;
                case CDC_REQ_SetControlLineState:
                        if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
-    12aa:      80 91 6e 02     lds     r24, 0x026E
-    12ae:      81 32           cpi     r24, 0x21       ; 33
-    12b0:      e9 f4           brne    .+58            ; 0x12ec <CDC_Device_ProcessControlRequest+0x152>
+    1248:      80 91 74 02     lds     r24, 0x0274
+    124c:      81 32           cpi     r24, 0x21       ; 33
+    124e:      e9 f4           brne    .+58            ; 0x128a <CDC_Device_ProcessControlRequest+0x152>
                         *  \note This is not applicable for non CONTROL type endpoints.
                         */
                        static inline void Endpoint_ClearSETUP(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearSETUP(void)
                        {
                                UEINTX &= ~(1 << RXSTPI);
-    12b2:      80 91 e8 00     lds     r24, 0x00E8
-    12b6:      87 7f           andi    r24, 0xF7       ; 247
-    12b8:      80 93 e8 00     sts     0x00E8, r24
+    1250:      80 91 e8 00     lds     r24, 0x00E8
+    1254:      87 7f           andi    r24, 0xF7       ; 247
+    1256:      80 93 e8 00     sts     0x00E8, r24
                        {
                                Endpoint_ClearSETUP();
                                Endpoint_ClearStatusStage();
-    12bc:      79 dc           rcall   .-1806          ; 0xbb0 <Endpoint_ClearStatusStage>
+    125a:      79 dc           rcall   .-1806          ; 0xb4e <Endpoint_ClearStatusStage>
 
                                CDCInterfaceInfo->State.ControlLineStates.HostToDevice = USB_ControlRequest.wValue;
-    12be:      80 91 70 02     lds     r24, 0x0270
-    12c2:      90 91 71 02     lds     r25, 0x0271
-    12c6:      99 8b           std     Y+17, r25       ; 0x11
-    12c8:      88 8b           std     Y+16, r24       ; 0x10
+    125c:      80 91 76 02     lds     r24, 0x0276
+    1260:      90 91 77 02     lds     r25, 0x0277
+    1264:      99 8b           std     Y+17, r25       ; 0x11
+    1266:      88 8b           std     Y+16, r24       ; 0x10
 
                                EVENT_CDC_Device_ControLineStateChanged(CDCInterfaceInfo);
-    12ca:      ce 01           movw    r24, r28
-    12cc:      d4 d0           rcall   .+424           ; 0x1476 <CDC_Device_Event_Stub>
-    12ce:      0e c0           rjmp    .+28            ; 0x12ec <CDC_Device_ProcessControlRequest+0x152>
+    1268:      ce 01           movw    r24, r28
+    126a:      d4 d0           rcall   .+424           ; 0x1414 <CDC_Device_Event_Stub>
+    126c:      0e c0           rjmp    .+28            ; 0x128a <CDC_Device_ProcessControlRequest+0x152>
                        }
 
                        break;
                case CDC_REQ_SendBreak:
                        if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
-    12d0:      80 91 6e 02     lds     r24, 0x026E
-    12d4:      81 32           cpi     r24, 0x21       ; 33
-    12d6:      51 f4           brne    .+20            ; 0x12ec <CDC_Device_ProcessControlRequest+0x152>
-    12d8:      80 91 e8 00     lds     r24, 0x00E8
-    12dc:      87 7f           andi    r24, 0xF7       ; 247
-    12de:      80 93 e8 00     sts     0x00E8, r24
+    126e:      80 91 74 02     lds     r24, 0x0274
+    1272:      81 32           cpi     r24, 0x21       ; 33
+    1274:      51 f4           brne    .+20            ; 0x128a <CDC_Device_ProcessControlRequest+0x152>
+    1276:      80 91 e8 00     lds     r24, 0x00E8
+    127a:      87 7f           andi    r24, 0xF7       ; 247
+    127c:      80 93 e8 00     sts     0x00E8, r24
                        {
                                Endpoint_ClearSETUP();
                                Endpoint_ClearStatusStage();
-    12e2:      66 dc           rcall   .-1844          ; 0xbb0 <Endpoint_ClearStatusStage>
+    1280:      66 dc           rcall   .-1844          ; 0xb4e <Endpoint_ClearStatusStage>
 
                                EVENT_CDC_Device_BreakSent(CDCInterfaceInfo, (uint8_t)USB_ControlRequest.wValue);
-    12e4:      ce 01           movw    r24, r28
-    12e6:      60 91 70 02     lds     r22, 0x0270
-    12ea:      c5 d0           rcall   .+394           ; 0x1476 <CDC_Device_Event_Stub>
+    1282:      ce 01           movw    r24, r28
+    1284:      60 91 76 02     lds     r22, 0x0276
+    1288:      c5 d0           rcall   .+394           ; 0x1414 <CDC_Device_Event_Stub>
                        }
 
                        break;
        }
 }
-    12ec:      df 91           pop     r29
-    12ee:      cf 91           pop     r28
-    12f0:      08 95           ret
+    128a:      df 91           pop     r29
+    128c:      cf 91           pop     r28
+    128e:      08 95           ret
 
-000012f2 <CDC_Device_ConfigureEndpoints>:
+00001290 <CDC_Device_ConfigureEndpoints>:
 
 bool CDC_Device_ConfigureEndpoints(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
 {
-    12f2:      cf 93           push    r28
-    12f4:      df 93           push    r29
-    12f6:      ec 01           movw    r28, r24
+    1290:      cf 93           push    r28
+    1292:      df 93           push    r29
+    1294:      ec 01           movw    r28, r24
        memset(&CDCInterfaceInfo->State, 0x00, sizeof(CDCInterfaceInfo->State));
-    12f8:      40 96           adiw    r24, 0x10       ; 16
-    12fa:      fc 01           movw    r30, r24
-    12fc:      8b e0           ldi     r24, 0x0B       ; 11
-    12fe:      df 01           movw    r26, r30
-    1300:      1d 92           st      X+, r1
-    1302:      8a 95           dec     r24
-    1304:      e9 f7           brne    .-6             ; 0x1300 <CDC_Device_ConfigureEndpoints+0xe>
+    1296:      40 96           adiw    r24, 0x10       ; 16
+    1298:      fc 01           movw    r30, r24
+    129a:      8b e0           ldi     r24, 0x0B       ; 11
+    129c:      df 01           movw    r26, r30
+    129e:      1d 92           st      X+, r1
+    12a0:      8a 95           dec     r24
+    12a2:      e9 f7           brne    .-6             ; 0x129e <CDC_Device_ConfigureEndpoints+0xe>
 
        CDCInterfaceInfo->Config.DataINEndpoint.Type       = EP_TYPE_BULK;
-    1306:      82 e0           ldi     r24, 0x02       ; 2
-    1308:      8c 83           std     Y+4, r24        ; 0x04
+    12a4:      82 e0           ldi     r24, 0x02       ; 2
+    12a6:      8c 83           std     Y+4, r24        ; 0x04
        CDCInterfaceInfo->Config.DataOUTEndpoint.Type      = EP_TYPE_BULK;
-    130a:      89 87           std     Y+9, r24        ; 0x09
+    12a8:      89 87           std     Y+9, r24        ; 0x09
        CDCInterfaceInfo->Config.NotificationEndpoint.Type = EP_TYPE_INTERRUPT;
-    130c:      83 e0           ldi     r24, 0x03       ; 3
-    130e:      8e 87           std     Y+14, r24       ; 0x0e
+    12aa:      83 e0           ldi     r24, 0x03       ; 3
+    12ac:      8e 87           std     Y+14, r24       ; 0x0e
 
        if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.DataINEndpoint, 1)))
-    1310:      ce 01           movw    r24, r28
-    1312:      01 96           adiw    r24, 0x01       ; 1
-    1314:      61 e0           ldi     r22, 0x01       ; 1
-    1316:      08 dc           rcall   .-2032          ; 0xb28 <Endpoint_ConfigureEndpointTable>
-    1318:      88 23           and     r24, r24
-    131a:      59 f0           breq    .+22            ; 0x1332 <CDC_Device_ConfigureEndpoints+0x40>
+    12ae:      ce 01           movw    r24, r28
+    12b0:      01 96           adiw    r24, 0x01       ; 1
+    12b2:      61 e0           ldi     r22, 0x01       ; 1
+    12b4:      08 dc           rcall   .-2032          ; 0xac6 <Endpoint_ConfigureEndpointTable>
+    12b6:      88 23           and     r24, r24
+    12b8:      59 f0           breq    .+22            ; 0x12d0 <CDC_Device_ConfigureEndpoints+0x40>
          return false;
 
        if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.DataOUTEndpoint, 1)))
-    131c:      ce 01           movw    r24, r28
-    131e:      06 96           adiw    r24, 0x06       ; 6
-    1320:      61 e0           ldi     r22, 0x01       ; 1
-    1322:      02 dc           rcall   .-2044          ; 0xb28 <Endpoint_ConfigureEndpointTable>
-    1324:      88 23           and     r24, r24
-    1326:      29 f0           breq    .+10            ; 0x1332 <CDC_Device_ConfigureEndpoints+0x40>
+    12ba:      ce 01           movw    r24, r28
+    12bc:      06 96           adiw    r24, 0x06       ; 6
+    12be:      61 e0           ldi     r22, 0x01       ; 1
+    12c0:      02 dc           rcall   .-2044          ; 0xac6 <Endpoint_ConfigureEndpointTable>
+    12c2:      88 23           and     r24, r24
+    12c4:      29 f0           breq    .+10            ; 0x12d0 <CDC_Device_ConfigureEndpoints+0x40>
          return false;
 
        if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.NotificationEndpoint, 1)))
-    1328:      ce 01           movw    r24, r28
-    132a:      0b 96           adiw    r24, 0x0b       ; 11
-    132c:      61 e0           ldi     r22, 0x01       ; 1
-    132e:      fc db           rcall   .-2056          ; 0xb28 <Endpoint_ConfigureEndpointTable>
-    1330:      01 c0           rjmp    .+2             ; 0x1334 <CDC_Device_ConfigureEndpoints+0x42>
+    12c6:      ce 01           movw    r24, r28
+    12c8:      0b 96           adiw    r24, 0x0b       ; 11
+    12ca:      61 e0           ldi     r22, 0x01       ; 1
+    12cc:      fc db           rcall   .-2056          ; 0xac6 <Endpoint_ConfigureEndpointTable>
+    12ce:      01 c0           rjmp    .+2             ; 0x12d2 <CDC_Device_ConfigureEndpoints+0x42>
 
        if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.DataINEndpoint, 1)))
          return false;
 
        if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.DataOUTEndpoint, 1)))
          return false;
-    1332:      80 e0           ldi     r24, 0x00       ; 0
+    12d0:      80 e0           ldi     r24, 0x00       ; 0
 
        if (!(Endpoint_ConfigureEndpointTable(&CDCInterfaceInfo->Config.NotificationEndpoint, 1)))
          return false;
 
        return true;
 }
-    1334:      df 91           pop     r29
-    1336:      cf 91           pop     r28
-    1338:      08 95           ret
+    12d2:      df 91           pop     r29
+    12d4:      cf 91           pop     r28
+    12d6:      08 95           ret
 
-0000133a <CDC_Device_SendByte>:
+000012d8 <CDC_Device_SendByte>:
        return Endpoint_Write_Stream_LE(Buffer, Length, NULL);
 }
 
 uint8_t CDC_Device_SendByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
                             const uint8_t Data)
 {
-    133a:      df 93           push    r29
-    133c:      cf 93           push    r28
-    133e:      0f 92           push    r0
-    1340:      cd b7           in      r28, 0x3d       ; 61
-    1342:      de b7           in      r29, 0x3e       ; 62
-    1344:      fc 01           movw    r30, r24
+    12d8:      df 93           push    r29
+    12da:      cf 93           push    r28
+    12dc:      0f 92           push    r0
+    12de:      cd b7           in      r28, 0x3d       ; 61
+    12e0:      de b7           in      r29, 0x3e       ; 62
+    12e2:      fc 01           movw    r30, r24
        if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
-    1346:      8e b3           in      r24, 0x1e       ; 30
-    1348:      84 30           cpi     r24, 0x04       ; 4
-    134a:      f9 f4           brne    .+62            ; 0x138a <CDC_Device_SendByte+0x50>
-    134c:      24 89           ldd     r18, Z+20       ; 0x14
-    134e:      35 89           ldd     r19, Z+21       ; 0x15
-    1350:      46 89           ldd     r20, Z+22       ; 0x16
-    1352:      57 89           ldd     r21, Z+23       ; 0x17
-    1354:      21 15           cp      r18, r1
-    1356:      31 05           cpc     r19, r1
-    1358:      41 05           cpc     r20, r1
-    135a:      51 05           cpc     r21, r1
-    135c:      b1 f0           breq    .+44            ; 0x138a <CDC_Device_SendByte+0x50>
+    12e4:      8e b3           in      r24, 0x1e       ; 30
+    12e6:      84 30           cpi     r24, 0x04       ; 4
+    12e8:      f9 f4           brne    .+62            ; 0x1328 <CDC_Device_SendByte+0x50>
+    12ea:      24 89           ldd     r18, Z+20       ; 0x14
+    12ec:      35 89           ldd     r19, Z+21       ; 0x15
+    12ee:      46 89           ldd     r20, Z+22       ; 0x16
+    12f0:      57 89           ldd     r21, Z+23       ; 0x17
+    12f2:      21 15           cp      r18, r1
+    12f4:      31 05           cpc     r19, r1
+    12f6:      41 05           cpc     r20, r1
+    12f8:      51 05           cpc     r21, r1
+    12fa:      b1 f0           breq    .+44            ; 0x1328 <CDC_Device_SendByte+0x50>
                         */
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UENUM = (Address & ENDPOINT_EPNUM_MASK);
-    135e:      81 81           ldd     r24, Z+1        ; 0x01
-    1360:      8f 70           andi    r24, 0x0F       ; 15
-    1362:      80 93 e9 00     sts     0x00E9, r24
+    12fc:      81 81           ldd     r24, Z+1        ; 0x01
+    12fe:      8f 70           andi    r24, 0x0F       ; 15
+    1300:      80 93 e9 00     sts     0x00E9, r24
                         *          on its direction.
                         */
                        static inline bool Endpoint_IsReadWriteAllowed(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsReadWriteAllowed(void)
                        {
                                return ((UEINTX & (1 << RWAL)) ? true : false);
-    1366:      80 91 e8 00     lds     r24, 0x00E8
+    1304:      80 91 e8 00     lds     r24, 0x00E8
          return ENDPOINT_RWSTREAM_DeviceDisconnected;
 
        Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpoint.Address);
 
        if (!(Endpoint_IsReadWriteAllowed()))
-    136a:      85 fd           sbrc    r24, 5
-    136c:      0a c0           rjmp    .+20            ; 0x1382 <CDC_Device_SendByte+0x48>
+    1308:      85 fd           sbrc    r24, 5
+    130a:      0a c0           rjmp    .+20            ; 0x1320 <CDC_Device_SendByte+0x48>
                         */
                        static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearIN(void)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
-    136e:      80 91 e8 00     lds     r24, 0x00E8
-    1372:      8e 77           andi    r24, 0x7E       ; 126
-    1374:      80 93 e8 00     sts     0x00E8, r24
+    130c:      80 91 e8 00     lds     r24, 0x00E8
+    1310:      8e 77           andi    r24, 0x7E       ; 126
+    1312:      80 93 e8 00     sts     0x00E8, r24
        {
                Endpoint_ClearIN();
 
                uint8_t ErrorCode;
 
                if ((ErrorCode = Endpoint_WaitUntilReady()) != ENDPOINT_READYWAIT_NoError)
-    1378:      69 83           std     Y+1, r22        ; 0x01
-    137a:      39 dc           rcall   .-1934          ; 0xbee <Endpoint_WaitUntilReady>
-    137c:      69 81           ldd     r22, Y+1        ; 0x01
-    137e:      88 23           and     r24, r24
-    1380:      29 f4           brne    .+10            ; 0x138c <CDC_Device_SendByte+0x52>
+    1316:      69 83           std     Y+1, r22        ; 0x01
+    1318:      39 dc           rcall   .-1934          ; 0xb8c <Endpoint_WaitUntilReady>
+    131a:      69 81           ldd     r22, Y+1        ; 0x01
+    131c:      88 23           and     r24, r24
+    131e:      29 f4           brne    .+10            ; 0x132a <CDC_Device_SendByte+0x52>
                         *  \param[in] Data  Data to write into the the currently selected endpoint's FIFO buffer.
                         */
                        static inline void Endpoint_Write_8(const uint8_t Data) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_Write_8(const uint8_t Data)
                        {
                                UEDATX = Data;
-    1382:      60 93 f1 00     sts     0x00F1, r22
+    1320:      60 93 f1 00     sts     0x00F1, r22
                  return ErrorCode;
        }
 
        Endpoint_Write_8(Data);
        return ENDPOINT_READYWAIT_NoError;
-    1386:      80 e0           ldi     r24, 0x00       ; 0
-    1388:      01 c0           rjmp    .+2             ; 0x138c <CDC_Device_SendByte+0x52>
+    1324:      80 e0           ldi     r24, 0x00       ; 0
+    1326:      01 c0           rjmp    .+2             ; 0x132a <CDC_Device_SendByte+0x52>
 
 uint8_t CDC_Device_SendByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
                             const uint8_t Data)
 {
        if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
          return ENDPOINT_RWSTREAM_DeviceDisconnected;
-    138a:      82 e0           ldi     r24, 0x02       ; 2
+    1328:      82 e0           ldi     r24, 0x02       ; 2
                  return ErrorCode;
        }
 
        Endpoint_Write_8(Data);
        return ENDPOINT_READYWAIT_NoError;
 }
-    138c:      0f 90           pop     r0
-    138e:      cf 91           pop     r28
-    1390:      df 91           pop     r29
-    1392:      08 95           ret
+    132a:      0f 90           pop     r0
+    132c:      cf 91           pop     r28
+    132e:      df 91           pop     r29
+    1330:      08 95           ret
 
-00001394 <CDC_Device_Flush>:
+00001332 <CDC_Device_Flush>:
 
 uint8_t CDC_Device_Flush(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
 {
-    1394:      fc 01           movw    r30, r24
+    1332:      fc 01           movw    r30, r24
        if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
-    1396:      8e b3           in      r24, 0x1e       ; 30
-    1398:      84 30           cpi     r24, 0x04       ; 4
-    139a:      19 f5           brne    .+70            ; 0x13e2 <CDC_Device_Flush+0x4e>
-    139c:      24 89           ldd     r18, Z+20       ; 0x14
-    139e:      35 89           ldd     r19, Z+21       ; 0x15
-    13a0:      46 89           ldd     r20, Z+22       ; 0x16
-    13a2:      57 89           ldd     r21, Z+23       ; 0x17
-    13a4:      21 15           cp      r18, r1
-    13a6:      31 05           cpc     r19, r1
-    13a8:      41 05           cpc     r20, r1
-    13aa:      51 05           cpc     r21, r1
-    13ac:      d1 f0           breq    .+52            ; 0x13e2 <CDC_Device_Flush+0x4e>
+    1334:      8e b3           in      r24, 0x1e       ; 30
+    1336:      84 30           cpi     r24, 0x04       ; 4
+    1338:      19 f5           brne    .+70            ; 0x1380 <CDC_Device_Flush+0x4e>
+    133a:      24 89           ldd     r18, Z+20       ; 0x14
+    133c:      35 89           ldd     r19, Z+21       ; 0x15
+    133e:      46 89           ldd     r20, Z+22       ; 0x16
+    1340:      57 89           ldd     r21, Z+23       ; 0x17
+    1342:      21 15           cp      r18, r1
+    1344:      31 05           cpc     r19, r1
+    1346:      41 05           cpc     r20, r1
+    1348:      51 05           cpc     r21, r1
+    134a:      d1 f0           breq    .+52            ; 0x1380 <CDC_Device_Flush+0x4e>
                         */
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UENUM = (Address & ENDPOINT_EPNUM_MASK);
-    13ae:      81 81           ldd     r24, Z+1        ; 0x01
-    13b0:      8f 70           andi    r24, 0x0F       ; 15
-    13b2:      80 93 e9 00     sts     0x00E9, r24
+    134c:      81 81           ldd     r24, Z+1        ; 0x01
+    134e:      8f 70           andi    r24, 0x0F       ; 15
+    1350:      80 93 e9 00     sts     0x00E9, r24
                                #if (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
                                        return UEBCX;
                                #elif defined(USB_SERIES_4_AVR)
                                        return (((uint16_t)UEBCHX << 8) | UEBCLX);
                                #elif defined(USB_SERIES_2_AVR)
                                        return UEBCLX;
-    13b6:      80 91 f2 00     lds     r24, 0x00F2
+    1354:      80 91 f2 00     lds     r24, 0x00F2
 
        uint8_t ErrorCode;
 
        Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpoint.Address);
 
        if (!(Endpoint_BytesInEndpoint()))
-    13ba:      88 23           and     r24, r24
-    13bc:      a1 f0           breq    .+40            ; 0x13e6 <CDC_Device_Flush+0x52>
+    1358:      88 23           and     r24, r24
+    135a:      a1 f0           breq    .+40            ; 0x1384 <CDC_Device_Flush+0x52>
                         *          on its direction.
                         */
                        static inline bool Endpoint_IsReadWriteAllowed(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsReadWriteAllowed(void)
                        {
                                return ((UEINTX & (1 << RWAL)) ? true : false);
-    13be:      90 91 e8 00     lds     r25, 0x00E8
+    135c:      90 91 e8 00     lds     r25, 0x00E8
                         */
                        static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearIN(void)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UEINTX &= ~((1 << TXINI) | (1 << FIFOCON));
-    13c2:      80 91 e8 00     lds     r24, 0x00E8
-    13c6:      8e 77           andi    r24, 0x7E       ; 126
-    13c8:      80 93 e8 00     sts     0x00E8, r24
+    1360:      80 91 e8 00     lds     r24, 0x00E8
+    1364:      8e 77           andi    r24, 0x7E       ; 126
+    1366:      80 93 e8 00     sts     0x00E8, r24
 
        bool BankFull = !(Endpoint_IsReadWriteAllowed());
 
        Endpoint_ClearIN();
 
        if (BankFull)
-    13cc:      95 fd           sbrc    r25, 5
-    13ce:      0d c0           rjmp    .+26            ; 0x13ea <CDC_Device_Flush+0x56>
+    136a:      95 fd           sbrc    r25, 5
+    136c:      0d c0           rjmp    .+26            ; 0x1388 <CDC_Device_Flush+0x56>
        {
                if ((ErrorCode = Endpoint_WaitUntilReady()) != ENDPOINT_READYWAIT_NoError)
-    13d0:      0e dc           rcall   .-2020          ; 0xbee <Endpoint_WaitUntilReady>
-    13d2:      88 23           and     r24, r24
-    13d4:      59 f4           brne    .+22            ; 0x13ec <CDC_Device_Flush+0x58>
-    13d6:      90 91 e8 00     lds     r25, 0x00E8
-    13da:      9e 77           andi    r25, 0x7E       ; 126
-    13dc:      90 93 e8 00     sts     0x00E8, r25
-    13e0:      08 95           ret
+    136e:      0e dc           rcall   .-2020          ; 0xb8c <Endpoint_WaitUntilReady>
+    1370:      88 23           and     r24, r24
+    1372:      59 f4           brne    .+22            ; 0x138a <CDC_Device_Flush+0x58>
+    1374:      90 91 e8 00     lds     r25, 0x00E8
+    1378:      9e 77           andi    r25, 0x7E       ; 126
+    137a:      90 93 e8 00     sts     0x00E8, r25
+    137e:      08 95           ret
 }
 
 uint8_t CDC_Device_Flush(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
 {
        if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
          return ENDPOINT_RWSTREAM_DeviceDisconnected;
-    13e2:      82 e0           ldi     r24, 0x02       ; 2
-    13e4:      08 95           ret
+    1380:      82 e0           ldi     r24, 0x02       ; 2
+    1382:      08 95           ret
        uint8_t ErrorCode;
 
        Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpoint.Address);
 
        if (!(Endpoint_BytesInEndpoint()))
          return ENDPOINT_READYWAIT_NoError;
-    13e6:      80 e0           ldi     r24, 0x00       ; 0
-    13e8:      08 95           ret
+    1384:      80 e0           ldi     r24, 0x00       ; 0
+    1386:      08 95           ret
                  return ErrorCode;
 
                Endpoint_ClearIN();
        }
 
        return ENDPOINT_READYWAIT_NoError;
-    13ea:      80 e0           ldi     r24, 0x00       ; 0
+    1388:      80 e0           ldi     r24, 0x00       ; 0
 }
-    13ec:      08 95           ret
+    138a:      08 95           ret
 
-000013ee <CDC_Device_USBTask>:
+0000138c <CDC_Device_USBTask>:
        return true;
 }
 
 void CDC_Device_USBTask(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
 {
        if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
-    13ee:      2e b3           in      r18, 0x1e       ; 30
-    13f0:      24 30           cpi     r18, 0x04       ; 4
-    13f2:      99 f4           brne    .+38            ; 0x141a <CDC_Device_USBTask+0x2c>
-    13f4:      fc 01           movw    r30, r24
-    13f6:      24 89           ldd     r18, Z+20       ; 0x14
-    13f8:      35 89           ldd     r19, Z+21       ; 0x15
-    13fa:      46 89           ldd     r20, Z+22       ; 0x16
-    13fc:      57 89           ldd     r21, Z+23       ; 0x17
-    13fe:      21 15           cp      r18, r1
-    1400:      31 05           cpc     r19, r1
-    1402:      41 05           cpc     r20, r1
-    1404:      51 05           cpc     r21, r1
-    1406:      49 f0           breq    .+18            ; 0x141a <CDC_Device_USBTask+0x2c>
+    138c:      2e b3           in      r18, 0x1e       ; 30
+    138e:      24 30           cpi     r18, 0x04       ; 4
+    1390:      99 f4           brne    .+38            ; 0x13b8 <CDC_Device_USBTask+0x2c>
+    1392:      fc 01           movw    r30, r24
+    1394:      24 89           ldd     r18, Z+20       ; 0x14
+    1396:      35 89           ldd     r19, Z+21       ; 0x15
+    1398:      46 89           ldd     r20, Z+22       ; 0x16
+    139a:      57 89           ldd     r21, Z+23       ; 0x17
+    139c:      21 15           cp      r18, r1
+    139e:      31 05           cpc     r19, r1
+    13a0:      41 05           cpc     r20, r1
+    13a2:      51 05           cpc     r21, r1
+    13a4:      49 f0           breq    .+18            ; 0x13b8 <CDC_Device_USBTask+0x2c>
                         */
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UENUM = (Address & ENDPOINT_EPNUM_MASK);
-    1408:      21 81           ldd     r18, Z+1        ; 0x01
-    140a:      2f 70           andi    r18, 0x0F       ; 15
-    140c:      20 93 e9 00     sts     0x00E9, r18
+    13a6:      21 81           ldd     r18, Z+1        ; 0x01
+    13a8:      2f 70           andi    r18, 0x0F       ; 15
+    13aa:      20 93 e9 00     sts     0x00E9, r18
                         *  \return Boolean \c true if the current endpoint is ready for an IN packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsINReady(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsINReady(void)
                        {
                                return ((UEINTX & (1 << TXINI)) ? true : false);
-    1410:      20 91 e8 00     lds     r18, 0x00E8
+    13ae:      20 91 e8 00     lds     r18, 0x00E8
          return;
 
        #if !defined(NO_CLASS_DRIVER_AUTOFLUSH)
        Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpoint.Address);
 
        if (Endpoint_IsINReady())
-    1414:      20 ff           sbrs    r18, 0
-    1416:      01 c0           rjmp    .+2             ; 0x141a <CDC_Device_USBTask+0x2c>
+    13b2:      20 ff           sbrs    r18, 0
+    13b4:      01 c0           rjmp    .+2             ; 0x13b8 <CDC_Device_USBTask+0x2c>
          CDC_Device_Flush(CDCInterfaceInfo);
-    1418:      bd cf           rjmp    .-134           ; 0x1394 <CDC_Device_Flush>
-    141a:      08 95           ret
+    13b6:      bd cf           rjmp    .-134           ; 0x1332 <CDC_Device_Flush>
+    13b8:      08 95           ret
 
-0000141c <CDC_Device_ReceiveByte>:
+000013ba <CDC_Device_ReceiveByte>:
                return 0;
        }
 }
 
 int16_t CDC_Device_ReceiveByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
 {
-    141c:      fc 01           movw    r30, r24
+    13ba:      fc 01           movw    r30, r24
        if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
-    141e:      8e b3           in      r24, 0x1e       ; 30
-    1420:      84 30           cpi     r24, 0x04       ; 4
-    1422:      29 f5           brne    .+74            ; 0x146e <CDC_Device_ReceiveByte+0x52>
-    1424:      24 89           ldd     r18, Z+20       ; 0x14
-    1426:      35 89           ldd     r19, Z+21       ; 0x15
-    1428:      46 89           ldd     r20, Z+22       ; 0x16
-    142a:      57 89           ldd     r21, Z+23       ; 0x17
-    142c:      21 15           cp      r18, r1
-    142e:      31 05           cpc     r19, r1
-    1430:      41 05           cpc     r20, r1
-    1432:      51 05           cpc     r21, r1
-    1434:      e1 f0           breq    .+56            ; 0x146e <CDC_Device_ReceiveByte+0x52>
+    13bc:      8e b3           in      r24, 0x1e       ; 30
+    13be:      84 30           cpi     r24, 0x04       ; 4
+    13c0:      29 f5           brne    .+74            ; 0x140c <CDC_Device_ReceiveByte+0x52>
+    13c2:      24 89           ldd     r18, Z+20       ; 0x14
+    13c4:      35 89           ldd     r19, Z+21       ; 0x15
+    13c6:      46 89           ldd     r20, Z+22       ; 0x16
+    13c8:      57 89           ldd     r21, Z+23       ; 0x17
+    13ca:      21 15           cp      r18, r1
+    13cc:      31 05           cpc     r19, r1
+    13ce:      41 05           cpc     r20, r1
+    13d0:      51 05           cpc     r21, r1
+    13d2:      e1 f0           breq    .+56            ; 0x140c <CDC_Device_ReceiveByte+0x52>
                         */
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_SelectEndpoint(const uint8_t Address)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UENUM = (Address & ENDPOINT_EPNUM_MASK);
-    1436:      86 81           ldd     r24, Z+6        ; 0x06
-    1438:      8f 70           andi    r24, 0x0F       ; 15
-    143a:      80 93 e9 00     sts     0x00E9, r24
+    13d4:      86 81           ldd     r24, Z+6        ; 0x06
+    13d6:      8f 70           andi    r24, 0x0F       ; 15
+    13d8:      80 93 e9 00     sts     0x00E9, r24
                         *  \return Boolean \c true if current endpoint is has received an OUT packet, \c false otherwise.
                         */
                        static inline bool Endpoint_IsOUTReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline bool Endpoint_IsOUTReceived(void)
                        {
                                return ((UEINTX & (1 << RXOUTI)) ? true : false);
-    143e:      80 91 e8 00     lds     r24, 0x00E8
+    13dc:      80 91 e8 00     lds     r24, 0x00E8
 
        int16_t ReceivedByte = -1;
 
        Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataOUTEndpoint.Address);
 
        if (Endpoint_IsOUTReceived())
-    1442:      82 ff           sbrs    r24, 2
-    1444:      14 c0           rjmp    .+40            ; 0x146e <CDC_Device_ReceiveByte+0x52>
+    13e0:      82 ff           sbrs    r24, 2
+    13e2:      14 c0           rjmp    .+40            ; 0x140c <CDC_Device_ReceiveByte+0x52>
                                #if (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
                                        return UEBCX;
                                #elif defined(USB_SERIES_4_AVR)
                                        return (((uint16_t)UEBCHX << 8) | UEBCLX);
                                #elif defined(USB_SERIES_2_AVR)
                                        return UEBCLX;
-    1446:      80 91 f2 00     lds     r24, 0x00F2
+    13e4:      80 91 f2 00     lds     r24, 0x00F2
        {
                if (Endpoint_BytesInEndpoint())
-    144a:      88 23           and     r24, r24
-    144c:      21 f0           breq    .+8             ; 0x1456 <CDC_Device_ReceiveByte+0x3a>
+    13e8:      88 23           and     r24, r24
+    13ea:      21 f0           breq    .+8             ; 0x13f4 <CDC_Device_ReceiveByte+0x3a>
                         *  \return Next byte in the currently selected endpoint's FIFO buffer.
                         */
                        static inline uint8_t Endpoint_Read_8(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
                        static inline uint8_t Endpoint_Read_8(void)
                        {
                                return UEDATX;
-    144e:      20 91 f1 00     lds     r18, 0x00F1
+    13ec:      20 91 f1 00     lds     r18, 0x00F1
                  ReceivedByte = Endpoint_Read_8();
-    1452:      30 e0           ldi     r19, 0x00       ; 0
-    1454:      02 c0           rjmp    .+4             ; 0x145a <CDC_Device_ReceiveByte+0x3e>
+    13f0:      30 e0           ldi     r19, 0x00       ; 0
+    13f2:      02 c0           rjmp    .+4             ; 0x13f8 <CDC_Device_ReceiveByte+0x3e>
 int16_t CDC_Device_ReceiveByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
 {
        if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
          return -1;
 
        int16_t ReceivedByte = -1;
-    1456:      2f ef           ldi     r18, 0xFF       ; 255
-    1458:      3f ef           ldi     r19, 0xFF       ; 255
+    13f4:      2f ef           ldi     r18, 0xFF       ; 255
+    13f6:      3f ef           ldi     r19, 0xFF       ; 255
                                #if (defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
                                        return UEBCX;
                                #elif defined(USB_SERIES_4_AVR)
                                        return (((uint16_t)UEBCHX << 8) | UEBCLX);
                                #elif defined(USB_SERIES_2_AVR)
                                        return UEBCLX;
-    145a:      80 91 f2 00     lds     r24, 0x00F2
+    13f8:      80 91 f2 00     lds     r24, 0x00F2
        if (Endpoint_IsOUTReceived())
        {
                if (Endpoint_BytesInEndpoint())
                  ReceivedByte = Endpoint_Read_8();
 
                if (!(Endpoint_BytesInEndpoint()))
-    145e:      88 23           and     r24, r24
-    1460:      41 f4           brne    .+16            ; 0x1472 <CDC_Device_ReceiveByte+0x56>
+    13fc:      88 23           and     r24, r24
+    13fe:      41 f4           brne    .+16            ; 0x1410 <CDC_Device_ReceiveByte+0x56>
                         */
                        static inline void Endpoint_ClearOUT(void) ATTR_ALWAYS_INLINE;
                        static inline void Endpoint_ClearOUT(void)
                        {
                                #if !defined(CONTROL_ONLY_DEVICE)
                                        UEINTX &= ~((1 << RXOUTI) | (1 << FIFOCON));
-    1462:      80 91 e8 00     lds     r24, 0x00E8
-    1466:      8b 77           andi    r24, 0x7B       ; 123
-    1468:      80 93 e8 00     sts     0x00E8, r24
-    146c:      02 c0           rjmp    .+4             ; 0x1472 <CDC_Device_ReceiveByte+0x56>
+    1400:      80 91 e8 00     lds     r24, 0x00E8
+    1404:      8b 77           andi    r24, 0x7B       ; 123
+    1406:      80 93 e8 00     sts     0x00E8, r24
+    140a:      02 c0           rjmp    .+4             ; 0x1410 <CDC_Device_ReceiveByte+0x56>
 int16_t CDC_Device_ReceiveByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
 {
        if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
          return -1;
 
        int16_t ReceivedByte = -1;
-    146e:      2f ef           ldi     r18, 0xFF       ; 255
-    1470:      3f ef           ldi     r19, 0xFF       ; 255
+    140c:      2f ef           ldi     r18, 0xFF       ; 255
+    140e:      3f ef           ldi     r19, 0xFF       ; 255
                if (!(Endpoint_BytesInEndpoint()))
                  Endpoint_ClearOUT();
        }
 
        return ReceivedByte;
 }
-    1472:      c9 01           movw    r24, r18
-    1474:      08 95           ret
+    1410:      c9 01           movw    r24, r18
+    1412:      08 95           ret
 
-00001476 <CDC_Device_Event_Stub>:
+00001414 <CDC_Device_Event_Stub>:
 #endif
 
 void CDC_Device_Event_Stub(void)
 {
 
 }
-    1476:      08 95           ret
-
-00001478 <__subsf3>:
-    1478:      50 58           subi    r21, 0x80       ; 128
-
-0000147a <__addsf3>:
-    147a:      bb 27           eor     r27, r27
-    147c:      aa 27           eor     r26, r26
-    147e:      0e d0           rcall   .+28            ; 0x149c <__addsf3x>
-    1480:      70 c1           rjmp    .+736           ; 0x1762 <__fp_round>
-    1482:      61 d1           rcall   .+706           ; 0x1746 <__fp_pscA>
-    1484:      30 f0           brcs    .+12            ; 0x1492 <__addsf3+0x18>
-    1486:      66 d1           rcall   .+716           ; 0x1754 <__fp_pscB>
-    1488:      20 f0           brcs    .+8             ; 0x1492 <__addsf3+0x18>
-    148a:      31 f4           brne    .+12            ; 0x1498 <__addsf3+0x1e>
-    148c:      9f 3f           cpi     r25, 0xFF       ; 255
-    148e:      11 f4           brne    .+4             ; 0x1494 <__addsf3+0x1a>
-    1490:      1e f4           brtc    .+6             ; 0x1498 <__addsf3+0x1e>
-    1492:      56 c1           rjmp    .+684           ; 0x1740 <__fp_nan>
-    1494:      0e f4           brtc    .+2             ; 0x1498 <__addsf3+0x1e>
-    1496:      e0 95           com     r30
-    1498:      e7 fb           bst     r30, 7
-    149a:      4c c1           rjmp    .+664           ; 0x1734 <__fp_inf>
-
-0000149c <__addsf3x>:
-    149c:      e9 2f           mov     r30, r25
-    149e:      72 d1           rcall   .+740           ; 0x1784 <__fp_split3>
-    14a0:      80 f3           brcs    .-32            ; 0x1482 <__addsf3+0x8>
-    14a2:      ba 17           cp      r27, r26
-    14a4:      62 07           cpc     r22, r18
-    14a6:      73 07           cpc     r23, r19
-    14a8:      84 07           cpc     r24, r20
-    14aa:      95 07           cpc     r25, r21
-    14ac:      18 f0           brcs    .+6             ; 0x14b4 <__addsf3x+0x18>
-    14ae:      71 f4           brne    .+28            ; 0x14cc <__addsf3x+0x30>
-    14b0:      9e f5           brtc    .+102           ; 0x1518 <__addsf3x+0x7c>
-    14b2:      8a c1           rjmp    .+788           ; 0x17c8 <__fp_zero>
-    14b4:      0e f4           brtc    .+2             ; 0x14b8 <__addsf3x+0x1c>
-    14b6:      e0 95           com     r30
-    14b8:      0b 2e           mov     r0, r27
-    14ba:      ba 2f           mov     r27, r26
-    14bc:      a0 2d           mov     r26, r0
-    14be:      0b 01           movw    r0, r22
-    14c0:      b9 01           movw    r22, r18
-    14c2:      90 01           movw    r18, r0
-    14c4:      0c 01           movw    r0, r24
-    14c6:      ca 01           movw    r24, r20
-    14c8:      a0 01           movw    r20, r0
-    14ca:      11 24           eor     r1, r1
-    14cc:      ff 27           eor     r31, r31
-    14ce:      59 1b           sub     r21, r25
-    14d0:      99 f0           breq    .+38            ; 0x14f8 <__addsf3x+0x5c>
-    14d2:      59 3f           cpi     r21, 0xF9       ; 249
-    14d4:      50 f4           brcc    .+20            ; 0x14ea <__addsf3x+0x4e>
-    14d6:      50 3e           cpi     r21, 0xE0       ; 224
-    14d8:      68 f1           brcs    .+90            ; 0x1534 <__addsf3x+0x98>
-    14da:      1a 16           cp      r1, r26
-    14dc:      f0 40           sbci    r31, 0x00       ; 0
-    14de:      a2 2f           mov     r26, r18
-    14e0:      23 2f           mov     r18, r19
-    14e2:      34 2f           mov     r19, r20
-    14e4:      44 27           eor     r20, r20
-    14e6:      58 5f           subi    r21, 0xF8       ; 248
-    14e8:      f3 cf           rjmp    .-26            ; 0x14d0 <__addsf3x+0x34>
-    14ea:      46 95           lsr     r20
-    14ec:      37 95           ror     r19
-    14ee:      27 95           ror     r18
-    14f0:      a7 95           ror     r26
-    14f2:      f0 40           sbci    r31, 0x00       ; 0
-    14f4:      53 95           inc     r21
-    14f6:      c9 f7           brne    .-14            ; 0x14ea <__addsf3x+0x4e>
-    14f8:      7e f4           brtc    .+30            ; 0x1518 <__addsf3x+0x7c>
-    14fa:      1f 16           cp      r1, r31
-    14fc:      ba 0b           sbc     r27, r26
-    14fe:      62 0b           sbc     r22, r18
-    1500:      73 0b           sbc     r23, r19
-    1502:      84 0b           sbc     r24, r20
-    1504:      ba f0           brmi    .+46            ; 0x1534 <__addsf3x+0x98>
-    1506:      91 50           subi    r25, 0x01       ; 1
-    1508:      a1 f0           breq    .+40            ; 0x1532 <__addsf3x+0x96>
-    150a:      ff 0f           add     r31, r31
-    150c:      bb 1f           adc     r27, r27
-    150e:      66 1f           adc     r22, r22
-    1510:      77 1f           adc     r23, r23
-    1512:      88 1f           adc     r24, r24
-    1514:      c2 f7           brpl    .-16            ; 0x1506 <__addsf3x+0x6a>
-    1516:      0e c0           rjmp    .+28            ; 0x1534 <__addsf3x+0x98>
-    1518:      ba 0f           add     r27, r26
-    151a:      62 1f           adc     r22, r18
-    151c:      73 1f           adc     r23, r19
-    151e:      84 1f           adc     r24, r20
-    1520:      48 f4           brcc    .+18            ; 0x1534 <__addsf3x+0x98>
-    1522:      87 95           ror     r24
-    1524:      77 95           ror     r23
-    1526:      67 95           ror     r22
-    1528:      b7 95           ror     r27
-    152a:      f7 95           ror     r31
-    152c:      9e 3f           cpi     r25, 0xFE       ; 254
-    152e:      08 f0           brcs    .+2             ; 0x1532 <__addsf3x+0x96>
-    1530:      b3 cf           rjmp    .-154           ; 0x1498 <__addsf3+0x1e>
-    1532:      93 95           inc     r25
-    1534:      88 0f           add     r24, r24
-    1536:      08 f0           brcs    .+2             ; 0x153a <__addsf3x+0x9e>
-    1538:      99 27           eor     r25, r25
-    153a:      ee 0f           add     r30, r30
-    153c:      97 95           ror     r25
-    153e:      87 95           ror     r24
-    1540:      08 95           ret
-
-00001542 <__cmpsf2>:
-    1542:      d4 d0           rcall   .+424           ; 0x16ec <__fp_cmp>
-    1544:      08 f4           brcc    .+2             ; 0x1548 <__cmpsf2+0x6>
-    1546:      81 e0           ldi     r24, 0x01       ; 1
-    1548:      08 95           ret
-
-0000154a <__divsf3>:
-    154a:      0c d0           rcall   .+24            ; 0x1564 <__divsf3x>
-    154c:      0a c1           rjmp    .+532           ; 0x1762 <__fp_round>
-    154e:      02 d1           rcall   .+516           ; 0x1754 <__fp_pscB>
-    1550:      40 f0           brcs    .+16            ; 0x1562 <__divsf3+0x18>
-    1552:      f9 d0           rcall   .+498           ; 0x1746 <__fp_pscA>
-    1554:      30 f0           brcs    .+12            ; 0x1562 <__divsf3+0x18>
-    1556:      21 f4           brne    .+8             ; 0x1560 <__divsf3+0x16>
-    1558:      5f 3f           cpi     r21, 0xFF       ; 255
-    155a:      19 f0           breq    .+6             ; 0x1562 <__divsf3+0x18>
-    155c:      eb c0           rjmp    .+470           ; 0x1734 <__fp_inf>
-    155e:      51 11           cpse    r21, r1
-    1560:      34 c1           rjmp    .+616           ; 0x17ca <__fp_szero>
-    1562:      ee c0           rjmp    .+476           ; 0x1740 <__fp_nan>
-
-00001564 <__divsf3x>:
-    1564:      0f d1           rcall   .+542           ; 0x1784 <__fp_split3>
-    1566:      98 f3           brcs    .-26            ; 0x154e <__divsf3+0x4>
-
-00001568 <__divsf3_pse>:
-    1568:      99 23           and     r25, r25
-    156a:      c9 f3           breq    .-14            ; 0x155e <__divsf3+0x14>
-    156c:      55 23           and     r21, r21
-    156e:      b1 f3           breq    .-20            ; 0x155c <__divsf3+0x12>
-    1570:      95 1b           sub     r25, r21
-    1572:      55 0b           sbc     r21, r21
-    1574:      bb 27           eor     r27, r27
-    1576:      aa 27           eor     r26, r26
-    1578:      62 17           cp      r22, r18
-    157a:      73 07           cpc     r23, r19
-    157c:      84 07           cpc     r24, r20
-    157e:      38 f0           brcs    .+14            ; 0x158e <__divsf3_pse+0x26>
-    1580:      9f 5f           subi    r25, 0xFF       ; 255
-    1582:      5f 4f           sbci    r21, 0xFF       ; 255
-    1584:      22 0f           add     r18, r18
-    1586:      33 1f           adc     r19, r19
-    1588:      44 1f           adc     r20, r20
-    158a:      aa 1f           adc     r26, r26
-    158c:      a9 f3           breq    .-22            ; 0x1578 <__divsf3_pse+0x10>
-    158e:      33 d0           rcall   .+102           ; 0x15f6 <__divsf3_pse+0x8e>
-    1590:      0e 2e           mov     r0, r30
-    1592:      3a f0           brmi    .+14            ; 0x15a2 <__divsf3_pse+0x3a>
-    1594:      e0 e8           ldi     r30, 0x80       ; 128
-    1596:      30 d0           rcall   .+96            ; 0x15f8 <__divsf3_pse+0x90>
-    1598:      91 50           subi    r25, 0x01       ; 1
-    159a:      50 40           sbci    r21, 0x00       ; 0
-    159c:      e6 95           lsr     r30
-    159e:      00 1c           adc     r0, r0
-    15a0:      ca f7           brpl    .-14            ; 0x1594 <__divsf3_pse+0x2c>
-    15a2:      29 d0           rcall   .+82            ; 0x15f6 <__divsf3_pse+0x8e>
-    15a4:      fe 2f           mov     r31, r30
-    15a6:      27 d0           rcall   .+78            ; 0x15f6 <__divsf3_pse+0x8e>
-    15a8:      66 0f           add     r22, r22
-    15aa:      77 1f           adc     r23, r23
-    15ac:      88 1f           adc     r24, r24
-    15ae:      bb 1f           adc     r27, r27
-    15b0:      26 17           cp      r18, r22
-    15b2:      37 07           cpc     r19, r23
-    15b4:      48 07           cpc     r20, r24
-    15b6:      ab 07           cpc     r26, r27
-    15b8:      b0 e8           ldi     r27, 0x80       ; 128
-    15ba:      09 f0           breq    .+2             ; 0x15be <__divsf3_pse+0x56>
-    15bc:      bb 0b           sbc     r27, r27
-    15be:      80 2d           mov     r24, r0
-    15c0:      bf 01           movw    r22, r30
-    15c2:      ff 27           eor     r31, r31
-    15c4:      93 58           subi    r25, 0x83       ; 131
-    15c6:      5f 4f           sbci    r21, 0xFF       ; 255
-    15c8:      2a f0           brmi    .+10            ; 0x15d4 <__divsf3_pse+0x6c>
-    15ca:      9e 3f           cpi     r25, 0xFE       ; 254
-    15cc:      51 05           cpc     r21, r1
-    15ce:      68 f0           brcs    .+26            ; 0x15ea <__divsf3_pse+0x82>
-    15d0:      b1 c0           rjmp    .+354           ; 0x1734 <__fp_inf>
-    15d2:      fb c0           rjmp    .+502           ; 0x17ca <__fp_szero>
-    15d4:      5f 3f           cpi     r21, 0xFF       ; 255
-    15d6:      ec f3           brlt    .-6             ; 0x15d2 <__divsf3_pse+0x6a>
-    15d8:      98 3e           cpi     r25, 0xE8       ; 232
-    15da:      dc f3           brlt    .-10            ; 0x15d2 <__divsf3_pse+0x6a>
-    15dc:      86 95           lsr     r24
-    15de:      77 95           ror     r23
-    15e0:      67 95           ror     r22
-    15e2:      b7 95           ror     r27
-    15e4:      f7 95           ror     r31
-    15e6:      9f 5f           subi    r25, 0xFF       ; 255
-    15e8:      c9 f7           brne    .-14            ; 0x15dc <__divsf3_pse+0x74>
-    15ea:      88 0f           add     r24, r24
-    15ec:      91 1d           adc     r25, r1
-    15ee:      96 95           lsr     r25
-    15f0:      87 95           ror     r24
-    15f2:      97 f9           bld     r25, 7
-    15f4:      08 95           ret
-    15f6:      e1 e0           ldi     r30, 0x01       ; 1
-    15f8:      66 0f           add     r22, r22
-    15fa:      77 1f           adc     r23, r23
-    15fc:      88 1f           adc     r24, r24
-    15fe:      bb 1f           adc     r27, r27
-    1600:      62 17           cp      r22, r18
-    1602:      73 07           cpc     r23, r19
-    1604:      84 07           cpc     r24, r20
-    1606:      ba 07           cpc     r27, r26
-    1608:      20 f0           brcs    .+8             ; 0x1612 <__divsf3_pse+0xaa>
-    160a:      62 1b           sub     r22, r18
-    160c:      73 0b           sbc     r23, r19
-    160e:      84 0b           sbc     r24, r20
-    1610:      ba 0b           sbc     r27, r26
-    1612:      ee 1f           adc     r30, r30
-    1614:      88 f7           brcc    .-30            ; 0x15f8 <__divsf3_pse+0x90>
-    1616:      e0 95           com     r30
-    1618:      08 95           ret
-
-0000161a <__fixunssfsi>:
-    161a:      bc d0           rcall   .+376           ; 0x1794 <__fp_splitA>
-    161c:      88 f0           brcs    .+34            ; 0x1640 <__fixunssfsi+0x26>
-    161e:      9f 57           subi    r25, 0x7F       ; 127
-    1620:      90 f0           brcs    .+36            ; 0x1646 <__fixunssfsi+0x2c>
-    1622:      b9 2f           mov     r27, r25
-    1624:      99 27           eor     r25, r25
-    1626:      b7 51           subi    r27, 0x17       ; 23
-    1628:      a0 f0           brcs    .+40            ; 0x1652 <__fixunssfsi+0x38>
-    162a:      d1 f0           breq    .+52            ; 0x1660 <__fixunssfsi+0x46>
-    162c:      66 0f           add     r22, r22
-    162e:      77 1f           adc     r23, r23
-    1630:      88 1f           adc     r24, r24
-    1632:      99 1f           adc     r25, r25
-    1634:      1a f0           brmi    .+6             ; 0x163c <__fixunssfsi+0x22>
-    1636:      ba 95           dec     r27
-    1638:      c9 f7           brne    .-14            ; 0x162c <__fixunssfsi+0x12>
-    163a:      12 c0           rjmp    .+36            ; 0x1660 <__fixunssfsi+0x46>
-    163c:      b1 30           cpi     r27, 0x01       ; 1
-    163e:      81 f0           breq    .+32            ; 0x1660 <__fixunssfsi+0x46>
-    1640:      c3 d0           rcall   .+390           ; 0x17c8 <__fp_zero>
-    1642:      b1 e0           ldi     r27, 0x01       ; 1
-    1644:      08 95           ret
-    1646:      c0 c0           rjmp    .+384           ; 0x17c8 <__fp_zero>
-    1648:      67 2f           mov     r22, r23
-    164a:      78 2f           mov     r23, r24
-    164c:      88 27           eor     r24, r24
-    164e:      b8 5f           subi    r27, 0xF8       ; 248
-    1650:      39 f0           breq    .+14            ; 0x1660 <__fixunssfsi+0x46>
-    1652:      b9 3f           cpi     r27, 0xF9       ; 249
-    1654:      cc f3           brlt    .-14            ; 0x1648 <__fixunssfsi+0x2e>
-    1656:      86 95           lsr     r24
-    1658:      77 95           ror     r23
-    165a:      67 95           ror     r22
-    165c:      b3 95           inc     r27
-    165e:      d9 f7           brne    .-10            ; 0x1656 <__fixunssfsi+0x3c>
-    1660:      3e f4           brtc    .+14            ; 0x1670 <__fixunssfsi+0x56>
-    1662:      90 95           com     r25
-    1664:      80 95           com     r24
-    1666:      70 95           com     r23
-    1668:      61 95           neg     r22
-    166a:      7f 4f           sbci    r23, 0xFF       ; 255
-    166c:      8f 4f           sbci    r24, 0xFF       ; 255
-    166e:      9f 4f           sbci    r25, 0xFF       ; 255
-    1670:      08 95           ret
-
-00001672 <__floatunsisf>:
-    1672:      e8 94           clt
-    1674:      09 c0           rjmp    .+18            ; 0x1688 <__floatsisf+0x12>
-
-00001676 <__floatsisf>:
-    1676:      97 fb           bst     r25, 7
-    1678:      3e f4           brtc    .+14            ; 0x1688 <__floatsisf+0x12>
-    167a:      90 95           com     r25
-    167c:      80 95           com     r24
-    167e:      70 95           com     r23
-    1680:      61 95           neg     r22
-    1682:      7f 4f           sbci    r23, 0xFF       ; 255
-    1684:      8f 4f           sbci    r24, 0xFF       ; 255
-    1686:      9f 4f           sbci    r25, 0xFF       ; 255
-    1688:      99 23           and     r25, r25
-    168a:      a9 f0           breq    .+42            ; 0x16b6 <__floatsisf+0x40>
-    168c:      f9 2f           mov     r31, r25
-    168e:      96 e9           ldi     r25, 0x96       ; 150
-    1690:      bb 27           eor     r27, r27
-    1692:      93 95           inc     r25
-    1694:      f6 95           lsr     r31
-    1696:      87 95           ror     r24
-    1698:      77 95           ror     r23
-    169a:      67 95           ror     r22
-    169c:      b7 95           ror     r27
-    169e:      f1 11           cpse    r31, r1
-    16a0:      f8 cf           rjmp    .-16            ; 0x1692 <__floatsisf+0x1c>
-    16a2:      fa f4           brpl    .+62            ; 0x16e2 <__floatsisf+0x6c>
-    16a4:      bb 0f           add     r27, r27
-    16a6:      11 f4           brne    .+4             ; 0x16ac <__floatsisf+0x36>
-    16a8:      60 ff           sbrs    r22, 0
-    16aa:      1b c0           rjmp    .+54            ; 0x16e2 <__floatsisf+0x6c>
-    16ac:      6f 5f           subi    r22, 0xFF       ; 255
-    16ae:      7f 4f           sbci    r23, 0xFF       ; 255
-    16b0:      8f 4f           sbci    r24, 0xFF       ; 255
-    16b2:      9f 4f           sbci    r25, 0xFF       ; 255
-    16b4:      16 c0           rjmp    .+44            ; 0x16e2 <__floatsisf+0x6c>
-    16b6:      88 23           and     r24, r24
-    16b8:      11 f0           breq    .+4             ; 0x16be <__floatsisf+0x48>
-    16ba:      96 e9           ldi     r25, 0x96       ; 150
-    16bc:      11 c0           rjmp    .+34            ; 0x16e0 <__floatsisf+0x6a>
-    16be:      77 23           and     r23, r23
-    16c0:      21 f0           breq    .+8             ; 0x16ca <__floatsisf+0x54>
-    16c2:      9e e8           ldi     r25, 0x8E       ; 142
-    16c4:      87 2f           mov     r24, r23
-    16c6:      76 2f           mov     r23, r22
-    16c8:      05 c0           rjmp    .+10            ; 0x16d4 <__floatsisf+0x5e>
-    16ca:      66 23           and     r22, r22
-    16cc:      71 f0           breq    .+28            ; 0x16ea <__floatsisf+0x74>
-    16ce:      96 e8           ldi     r25, 0x86       ; 134
-    16d0:      86 2f           mov     r24, r22
-    16d2:      70 e0           ldi     r23, 0x00       ; 0
-    16d4:      60 e0           ldi     r22, 0x00       ; 0
-    16d6:      2a f0           brmi    .+10            ; 0x16e2 <__floatsisf+0x6c>
-    16d8:      9a 95           dec     r25
-    16da:      66 0f           add     r22, r22
-    16dc:      77 1f           adc     r23, r23
-    16de:      88 1f           adc     r24, r24
-    16e0:      da f7           brpl    .-10            ; 0x16d8 <__floatsisf+0x62>
-    16e2:      88 0f           add     r24, r24
-    16e4:      96 95           lsr     r25
-    16e6:      87 95           ror     r24
-    16e8:      97 f9           bld     r25, 7
-    16ea:      08 95           ret
-
-000016ec <__fp_cmp>:
-    16ec:      99 0f           add     r25, r25
-    16ee:      00 08           sbc     r0, r0
-    16f0:      55 0f           add     r21, r21
-    16f2:      aa 0b           sbc     r26, r26
-    16f4:      e0 e8           ldi     r30, 0x80       ; 128
-    16f6:      fe ef           ldi     r31, 0xFE       ; 254
-    16f8:      16 16           cp      r1, r22
-    16fa:      17 06           cpc     r1, r23
-    16fc:      e8 07           cpc     r30, r24
-    16fe:      f9 07           cpc     r31, r25
-    1700:      c0 f0           brcs    .+48            ; 0x1732 <__fp_cmp+0x46>
-    1702:      12 16           cp      r1, r18
-    1704:      13 06           cpc     r1, r19
-    1706:      e4 07           cpc     r30, r20
-    1708:      f5 07           cpc     r31, r21
-    170a:      98 f0           brcs    .+38            ; 0x1732 <__fp_cmp+0x46>
-    170c:      62 1b           sub     r22, r18
-    170e:      73 0b           sbc     r23, r19
-    1710:      84 0b           sbc     r24, r20
-    1712:      95 0b           sbc     r25, r21
-    1714:      39 f4           brne    .+14            ; 0x1724 <__fp_cmp+0x38>
-    1716:      0a 26           eor     r0, r26
-    1718:      61 f0           breq    .+24            ; 0x1732 <__fp_cmp+0x46>
-    171a:      23 2b           or      r18, r19
-    171c:      24 2b           or      r18, r20
-    171e:      25 2b           or      r18, r21
-    1720:      21 f4           brne    .+8             ; 0x172a <__fp_cmp+0x3e>
-    1722:      08 95           ret
-    1724:      0a 26           eor     r0, r26
-    1726:      09 f4           brne    .+2             ; 0x172a <__fp_cmp+0x3e>
-    1728:      a1 40           sbci    r26, 0x01       ; 1
-    172a:      a6 95           lsr     r26
-    172c:      8f ef           ldi     r24, 0xFF       ; 255
-    172e:      81 1d           adc     r24, r1
-    1730:      81 1d           adc     r24, r1
-    1732:      08 95           ret
-
-00001734 <__fp_inf>:
-    1734:      97 f9           bld     r25, 7
-    1736:      9f 67           ori     r25, 0x7F       ; 127
-    1738:      80 e8           ldi     r24, 0x80       ; 128
-    173a:      70 e0           ldi     r23, 0x00       ; 0
-    173c:      60 e0           ldi     r22, 0x00       ; 0
-    173e:      08 95           ret
-
-00001740 <__fp_nan>:
-    1740:      9f ef           ldi     r25, 0xFF       ; 255
-    1742:      80 ec           ldi     r24, 0xC0       ; 192
-    1744:      08 95           ret
-
-00001746 <__fp_pscA>:
-    1746:      00 24           eor     r0, r0
-    1748:      0a 94           dec     r0
-    174a:      16 16           cp      r1, r22
-    174c:      17 06           cpc     r1, r23
-    174e:      18 06           cpc     r1, r24
-    1750:      09 06           cpc     r0, r25
-    1752:      08 95           ret
-
-00001754 <__fp_pscB>:
-    1754:      00 24           eor     r0, r0
-    1756:      0a 94           dec     r0
-    1758:      12 16           cp      r1, r18
-    175a:      13 06           cpc     r1, r19
-    175c:      14 06           cpc     r1, r20
-    175e:      05 06           cpc     r0, r21
-    1760:      08 95           ret
-
-00001762 <__fp_round>:
-    1762:      09 2e           mov     r0, r25
-    1764:      03 94           inc     r0
-    1766:      00 0c           add     r0, r0
-    1768:      11 f4           brne    .+4             ; 0x176e <__fp_round+0xc>
-    176a:      88 23           and     r24, r24
-    176c:      52 f0           brmi    .+20            ; 0x1782 <__fp_round+0x20>
-    176e:      bb 0f           add     r27, r27
-    1770:      40 f4           brcc    .+16            ; 0x1782 <__fp_round+0x20>
-    1772:      bf 2b           or      r27, r31
-    1774:      11 f4           brne    .+4             ; 0x177a <__fp_round+0x18>
-    1776:      60 ff           sbrs    r22, 0
-    1778:      04 c0           rjmp    .+8             ; 0x1782 <__fp_round+0x20>
-    177a:      6f 5f           subi    r22, 0xFF       ; 255
-    177c:      7f 4f           sbci    r23, 0xFF       ; 255
-    177e:      8f 4f           sbci    r24, 0xFF       ; 255
-    1780:      9f 4f           sbci    r25, 0xFF       ; 255
-    1782:      08 95           ret
-
-00001784 <__fp_split3>:
-    1784:      57 fd           sbrc    r21, 7
-    1786:      90 58           subi    r25, 0x80       ; 128
-    1788:      44 0f           add     r20, r20
-    178a:      55 1f           adc     r21, r21
-    178c:      59 f0           breq    .+22            ; 0x17a4 <__fp_splitA+0x10>
-    178e:      5f 3f           cpi     r21, 0xFF       ; 255
-    1790:      71 f0           breq    .+28            ; 0x17ae <__fp_splitA+0x1a>
-    1792:      47 95           ror     r20
-
-00001794 <__fp_splitA>:
-    1794:      88 0f           add     r24, r24
-    1796:      97 fb           bst     r25, 7
-    1798:      99 1f           adc     r25, r25
-    179a:      61 f0           breq    .+24            ; 0x17b4 <__fp_splitA+0x20>
-    179c:      9f 3f           cpi     r25, 0xFF       ; 255
-    179e:      79 f0           breq    .+30            ; 0x17be <__fp_splitA+0x2a>
-    17a0:      87 95           ror     r24
+    1414:      08 95           ret
+
+00001416 <__subsf3>:
+    1416:      50 58           subi    r21, 0x80       ; 128
+
+00001418 <__addsf3>:
+    1418:      bb 27           eor     r27, r27
+    141a:      aa 27           eor     r26, r26
+    141c:      0e d0           rcall   .+28            ; 0x143a <__addsf3x>
+    141e:      70 c1           rjmp    .+736           ; 0x1700 <__fp_round>
+    1420:      61 d1           rcall   .+706           ; 0x16e4 <__fp_pscA>
+    1422:      30 f0           brcs    .+12            ; 0x1430 <__addsf3+0x18>
+    1424:      66 d1           rcall   .+716           ; 0x16f2 <__fp_pscB>
+    1426:      20 f0           brcs    .+8             ; 0x1430 <__addsf3+0x18>
+    1428:      31 f4           brne    .+12            ; 0x1436 <__addsf3+0x1e>
+    142a:      9f 3f           cpi     r25, 0xFF       ; 255
+    142c:      11 f4           brne    .+4             ; 0x1432 <__addsf3+0x1a>
+    142e:      1e f4           brtc    .+6             ; 0x1436 <__addsf3+0x1e>
+    1430:      56 c1           rjmp    .+684           ; 0x16de <__fp_nan>
+    1432:      0e f4           brtc    .+2             ; 0x1436 <__addsf3+0x1e>
+    1434:      e0 95           com     r30
+    1436:      e7 fb           bst     r30, 7
+    1438:      4c c1           rjmp    .+664           ; 0x16d2 <__fp_inf>
+
+0000143a <__addsf3x>:
+    143a:      e9 2f           mov     r30, r25
+    143c:      72 d1           rcall   .+740           ; 0x1722 <__fp_split3>
+    143e:      80 f3           brcs    .-32            ; 0x1420 <__addsf3+0x8>
+    1440:      ba 17           cp      r27, r26
+    1442:      62 07           cpc     r22, r18
+    1444:      73 07           cpc     r23, r19
+    1446:      84 07           cpc     r24, r20
+    1448:      95 07           cpc     r25, r21
+    144a:      18 f0           brcs    .+6             ; 0x1452 <__addsf3x+0x18>
+    144c:      71 f4           brne    .+28            ; 0x146a <__addsf3x+0x30>
+    144e:      9e f5           brtc    .+102           ; 0x14b6 <__addsf3x+0x7c>
+    1450:      8a c1           rjmp    .+788           ; 0x1766 <__fp_zero>
+    1452:      0e f4           brtc    .+2             ; 0x1456 <__addsf3x+0x1c>
+    1454:      e0 95           com     r30
+    1456:      0b 2e           mov     r0, r27
+    1458:      ba 2f           mov     r27, r26
+    145a:      a0 2d           mov     r26, r0
+    145c:      0b 01           movw    r0, r22
+    145e:      b9 01           movw    r22, r18
+    1460:      90 01           movw    r18, r0
+    1462:      0c 01           movw    r0, r24
+    1464:      ca 01           movw    r24, r20
+    1466:      a0 01           movw    r20, r0
+    1468:      11 24           eor     r1, r1
+    146a:      ff 27           eor     r31, r31
+    146c:      59 1b           sub     r21, r25
+    146e:      99 f0           breq    .+38            ; 0x1496 <__addsf3x+0x5c>
+    1470:      59 3f           cpi     r21, 0xF9       ; 249
+    1472:      50 f4           brcc    .+20            ; 0x1488 <__addsf3x+0x4e>
+    1474:      50 3e           cpi     r21, 0xE0       ; 224
+    1476:      68 f1           brcs    .+90            ; 0x14d2 <__addsf3x+0x98>
+    1478:      1a 16           cp      r1, r26
+    147a:      f0 40           sbci    r31, 0x00       ; 0
+    147c:      a2 2f           mov     r26, r18
+    147e:      23 2f           mov     r18, r19
+    1480:      34 2f           mov     r19, r20
+    1482:      44 27           eor     r20, r20
+    1484:      58 5f           subi    r21, 0xF8       ; 248
+    1486:      f3 cf           rjmp    .-26            ; 0x146e <__addsf3x+0x34>
+    1488:      46 95           lsr     r20
+    148a:      37 95           ror     r19
+    148c:      27 95           ror     r18
+    148e:      a7 95           ror     r26
+    1490:      f0 40           sbci    r31, 0x00       ; 0
+    1492:      53 95           inc     r21
+    1494:      c9 f7           brne    .-14            ; 0x1488 <__addsf3x+0x4e>
+    1496:      7e f4           brtc    .+30            ; 0x14b6 <__addsf3x+0x7c>
+    1498:      1f 16           cp      r1, r31
+    149a:      ba 0b           sbc     r27, r26
+    149c:      62 0b           sbc     r22, r18
+    149e:      73 0b           sbc     r23, r19
+    14a0:      84 0b           sbc     r24, r20
+    14a2:      ba f0           brmi    .+46            ; 0x14d2 <__addsf3x+0x98>
+    14a4:      91 50           subi    r25, 0x01       ; 1
+    14a6:      a1 f0           breq    .+40            ; 0x14d0 <__addsf3x+0x96>
+    14a8:      ff 0f           add     r31, r31
+    14aa:      bb 1f           adc     r27, r27
+    14ac:      66 1f           adc     r22, r22
+    14ae:      77 1f           adc     r23, r23
+    14b0:      88 1f           adc     r24, r24
+    14b2:      c2 f7           brpl    .-16            ; 0x14a4 <__addsf3x+0x6a>
+    14b4:      0e c0           rjmp    .+28            ; 0x14d2 <__addsf3x+0x98>
+    14b6:      ba 0f           add     r27, r26
+    14b8:      62 1f           adc     r22, r18
+    14ba:      73 1f           adc     r23, r19
+    14bc:      84 1f           adc     r24, r20
+    14be:      48 f4           brcc    .+18            ; 0x14d2 <__addsf3x+0x98>
+    14c0:      87 95           ror     r24
+    14c2:      77 95           ror     r23
+    14c4:      67 95           ror     r22
+    14c6:      b7 95           ror     r27
+    14c8:      f7 95           ror     r31
+    14ca:      9e 3f           cpi     r25, 0xFE       ; 254
+    14cc:      08 f0           brcs    .+2             ; 0x14d0 <__addsf3x+0x96>
+    14ce:      b3 cf           rjmp    .-154           ; 0x1436 <__addsf3+0x1e>
+    14d0:      93 95           inc     r25
+    14d2:      88 0f           add     r24, r24
+    14d4:      08 f0           brcs    .+2             ; 0x14d8 <__addsf3x+0x9e>
+    14d6:      99 27           eor     r25, r25
+    14d8:      ee 0f           add     r30, r30
+    14da:      97 95           ror     r25
+    14dc:      87 95           ror     r24
+    14de:      08 95           ret
+
+000014e0 <__cmpsf2>:
+    14e0:      d4 d0           rcall   .+424           ; 0x168a <__fp_cmp>
+    14e2:      08 f4           brcc    .+2             ; 0x14e6 <__cmpsf2+0x6>
+    14e4:      81 e0           ldi     r24, 0x01       ; 1
+    14e6:      08 95           ret
+
+000014e8 <__divsf3>:
+    14e8:      0c d0           rcall   .+24            ; 0x1502 <__divsf3x>
+    14ea:      0a c1           rjmp    .+532           ; 0x1700 <__fp_round>
+    14ec:      02 d1           rcall   .+516           ; 0x16f2 <__fp_pscB>
+    14ee:      40 f0           brcs    .+16            ; 0x1500 <__divsf3+0x18>
+    14f0:      f9 d0           rcall   .+498           ; 0x16e4 <__fp_pscA>
+    14f2:      30 f0           brcs    .+12            ; 0x1500 <__divsf3+0x18>
+    14f4:      21 f4           brne    .+8             ; 0x14fe <__divsf3+0x16>
+    14f6:      5f 3f           cpi     r21, 0xFF       ; 255
+    14f8:      19 f0           breq    .+6             ; 0x1500 <__divsf3+0x18>
+    14fa:      eb c0           rjmp    .+470           ; 0x16d2 <__fp_inf>
+    14fc:      51 11           cpse    r21, r1
+    14fe:      34 c1           rjmp    .+616           ; 0x1768 <__fp_szero>
+    1500:      ee c0           rjmp    .+476           ; 0x16de <__fp_nan>
+
+00001502 <__divsf3x>:
+    1502:      0f d1           rcall   .+542           ; 0x1722 <__fp_split3>
+    1504:      98 f3           brcs    .-26            ; 0x14ec <__divsf3+0x4>
+
+00001506 <__divsf3_pse>:
+    1506:      99 23           and     r25, r25
+    1508:      c9 f3           breq    .-14            ; 0x14fc <__divsf3+0x14>
+    150a:      55 23           and     r21, r21
+    150c:      b1 f3           breq    .-20            ; 0x14fa <__divsf3+0x12>
+    150e:      95 1b           sub     r25, r21
+    1510:      55 0b           sbc     r21, r21
+    1512:      bb 27           eor     r27, r27
+    1514:      aa 27           eor     r26, r26
+    1516:      62 17           cp      r22, r18
+    1518:      73 07           cpc     r23, r19
+    151a:      84 07           cpc     r24, r20
+    151c:      38 f0           brcs    .+14            ; 0x152c <__divsf3_pse+0x26>
+    151e:      9f 5f           subi    r25, 0xFF       ; 255
+    1520:      5f 4f           sbci    r21, 0xFF       ; 255
+    1522:      22 0f           add     r18, r18
+    1524:      33 1f           adc     r19, r19
+    1526:      44 1f           adc     r20, r20
+    1528:      aa 1f           adc     r26, r26
+    152a:      a9 f3           breq    .-22            ; 0x1516 <__divsf3_pse+0x10>
+    152c:      33 d0           rcall   .+102           ; 0x1594 <__divsf3_pse+0x8e>
+    152e:      0e 2e           mov     r0, r30
+    1530:      3a f0           brmi    .+14            ; 0x1540 <__divsf3_pse+0x3a>
+    1532:      e0 e8           ldi     r30, 0x80       ; 128
+    1534:      30 d0           rcall   .+96            ; 0x1596 <__divsf3_pse+0x90>
+    1536:      91 50           subi    r25, 0x01       ; 1
+    1538:      50 40           sbci    r21, 0x00       ; 0
+    153a:      e6 95           lsr     r30
+    153c:      00 1c           adc     r0, r0
+    153e:      ca f7           brpl    .-14            ; 0x1532 <__divsf3_pse+0x2c>
+    1540:      29 d0           rcall   .+82            ; 0x1594 <__divsf3_pse+0x8e>
+    1542:      fe 2f           mov     r31, r30
+    1544:      27 d0           rcall   .+78            ; 0x1594 <__divsf3_pse+0x8e>
+    1546:      66 0f           add     r22, r22
+    1548:      77 1f           adc     r23, r23
+    154a:      88 1f           adc     r24, r24
+    154c:      bb 1f           adc     r27, r27
+    154e:      26 17           cp      r18, r22
+    1550:      37 07           cpc     r19, r23
+    1552:      48 07           cpc     r20, r24
+    1554:      ab 07           cpc     r26, r27
+    1556:      b0 e8           ldi     r27, 0x80       ; 128
+    1558:      09 f0           breq    .+2             ; 0x155c <__divsf3_pse+0x56>
+    155a:      bb 0b           sbc     r27, r27
+    155c:      80 2d           mov     r24, r0
+    155e:      bf 01           movw    r22, r30
+    1560:      ff 27           eor     r31, r31
+    1562:      93 58           subi    r25, 0x83       ; 131
+    1564:      5f 4f           sbci    r21, 0xFF       ; 255
+    1566:      2a f0           brmi    .+10            ; 0x1572 <__divsf3_pse+0x6c>
+    1568:      9e 3f           cpi     r25, 0xFE       ; 254
+    156a:      51 05           cpc     r21, r1
+    156c:      68 f0           brcs    .+26            ; 0x1588 <__divsf3_pse+0x82>
+    156e:      b1 c0           rjmp    .+354           ; 0x16d2 <__fp_inf>
+    1570:      fb c0           rjmp    .+502           ; 0x1768 <__fp_szero>
+    1572:      5f 3f           cpi     r21, 0xFF       ; 255
+    1574:      ec f3           brlt    .-6             ; 0x1570 <__divsf3_pse+0x6a>
+    1576:      98 3e           cpi     r25, 0xE8       ; 232
+    1578:      dc f3           brlt    .-10            ; 0x1570 <__divsf3_pse+0x6a>
+    157a:      86 95           lsr     r24
+    157c:      77 95           ror     r23
+    157e:      67 95           ror     r22
+    1580:      b7 95           ror     r27
+    1582:      f7 95           ror     r31
+    1584:      9f 5f           subi    r25, 0xFF       ; 255
+    1586:      c9 f7           brne    .-14            ; 0x157a <__divsf3_pse+0x74>
+    1588:      88 0f           add     r24, r24
+    158a:      91 1d           adc     r25, r1
+    158c:      96 95           lsr     r25
+    158e:      87 95           ror     r24
+    1590:      97 f9           bld     r25, 7
+    1592:      08 95           ret
+    1594:      e1 e0           ldi     r30, 0x01       ; 1
+    1596:      66 0f           add     r22, r22
+    1598:      77 1f           adc     r23, r23
+    159a:      88 1f           adc     r24, r24
+    159c:      bb 1f           adc     r27, r27
+    159e:      62 17           cp      r22, r18
+    15a0:      73 07           cpc     r23, r19
+    15a2:      84 07           cpc     r24, r20
+    15a4:      ba 07           cpc     r27, r26
+    15a6:      20 f0           brcs    .+8             ; 0x15b0 <__divsf3_pse+0xaa>
+    15a8:      62 1b           sub     r22, r18
+    15aa:      73 0b           sbc     r23, r19
+    15ac:      84 0b           sbc     r24, r20
+    15ae:      ba 0b           sbc     r27, r26
+    15b0:      ee 1f           adc     r30, r30
+    15b2:      88 f7           brcc    .-30            ; 0x1596 <__divsf3_pse+0x90>
+    15b4:      e0 95           com     r30
+    15b6:      08 95           ret
+
+000015b8 <__fixunssfsi>:
+    15b8:      bc d0           rcall   .+376           ; 0x1732 <__fp_splitA>
+    15ba:      88 f0           brcs    .+34            ; 0x15de <__fixunssfsi+0x26>
+    15bc:      9f 57           subi    r25, 0x7F       ; 127
+    15be:      90 f0           brcs    .+36            ; 0x15e4 <__fixunssfsi+0x2c>
+    15c0:      b9 2f           mov     r27, r25
+    15c2:      99 27           eor     r25, r25
+    15c4:      b7 51           subi    r27, 0x17       ; 23
+    15c6:      a0 f0           brcs    .+40            ; 0x15f0 <__fixunssfsi+0x38>
+    15c8:      d1 f0           breq    .+52            ; 0x15fe <__fixunssfsi+0x46>
+    15ca:      66 0f           add     r22, r22
+    15cc:      77 1f           adc     r23, r23
+    15ce:      88 1f           adc     r24, r24
+    15d0:      99 1f           adc     r25, r25
+    15d2:      1a f0           brmi    .+6             ; 0x15da <__fixunssfsi+0x22>
+    15d4:      ba 95           dec     r27
+    15d6:      c9 f7           brne    .-14            ; 0x15ca <__fixunssfsi+0x12>
+    15d8:      12 c0           rjmp    .+36            ; 0x15fe <__fixunssfsi+0x46>
+    15da:      b1 30           cpi     r27, 0x01       ; 1
+    15dc:      81 f0           breq    .+32            ; 0x15fe <__fixunssfsi+0x46>
+    15de:      c3 d0           rcall   .+390           ; 0x1766 <__fp_zero>
+    15e0:      b1 e0           ldi     r27, 0x01       ; 1
+    15e2:      08 95           ret
+    15e4:      c0 c0           rjmp    .+384           ; 0x1766 <__fp_zero>
+    15e6:      67 2f           mov     r22, r23
+    15e8:      78 2f           mov     r23, r24
+    15ea:      88 27           eor     r24, r24
+    15ec:      b8 5f           subi    r27, 0xF8       ; 248
+    15ee:      39 f0           breq    .+14            ; 0x15fe <__fixunssfsi+0x46>
+    15f0:      b9 3f           cpi     r27, 0xF9       ; 249
+    15f2:      cc f3           brlt    .-14            ; 0x15e6 <__fixunssfsi+0x2e>
+    15f4:      86 95           lsr     r24
+    15f6:      77 95           ror     r23
+    15f8:      67 95           ror     r22
+    15fa:      b3 95           inc     r27
+    15fc:      d9 f7           brne    .-10            ; 0x15f4 <__fixunssfsi+0x3c>
+    15fe:      3e f4           brtc    .+14            ; 0x160e <__fixunssfsi+0x56>
+    1600:      90 95           com     r25
+    1602:      80 95           com     r24
+    1604:      70 95           com     r23
+    1606:      61 95           neg     r22
+    1608:      7f 4f           sbci    r23, 0xFF       ; 255
+    160a:      8f 4f           sbci    r24, 0xFF       ; 255
+    160c:      9f 4f           sbci    r25, 0xFF       ; 255
+    160e:      08 95           ret
+
+00001610 <__floatunsisf>:
+    1610:      e8 94           clt
+    1612:      09 c0           rjmp    .+18            ; 0x1626 <__floatsisf+0x12>
+
+00001614 <__floatsisf>:
+    1614:      97 fb           bst     r25, 7
+    1616:      3e f4           brtc    .+14            ; 0x1626 <__floatsisf+0x12>
+    1618:      90 95           com     r25
+    161a:      80 95           com     r24
+    161c:      70 95           com     r23
+    161e:      61 95           neg     r22
+    1620:      7f 4f           sbci    r23, 0xFF       ; 255
+    1622:      8f 4f           sbci    r24, 0xFF       ; 255
+    1624:      9f 4f           sbci    r25, 0xFF       ; 255
+    1626:      99 23           and     r25, r25
+    1628:      a9 f0           breq    .+42            ; 0x1654 <__floatsisf+0x40>
+    162a:      f9 2f           mov     r31, r25
+    162c:      96 e9           ldi     r25, 0x96       ; 150
+    162e:      bb 27           eor     r27, r27
+    1630:      93 95           inc     r25
+    1632:      f6 95           lsr     r31
+    1634:      87 95           ror     r24
+    1636:      77 95           ror     r23
+    1638:      67 95           ror     r22
+    163a:      b7 95           ror     r27
+    163c:      f1 11           cpse    r31, r1
+    163e:      f8 cf           rjmp    .-16            ; 0x1630 <__floatsisf+0x1c>
+    1640:      fa f4           brpl    .+62            ; 0x1680 <__floatsisf+0x6c>
+    1642:      bb 0f           add     r27, r27
+    1644:      11 f4           brne    .+4             ; 0x164a <__floatsisf+0x36>
+    1646:      60 ff           sbrs    r22, 0
+    1648:      1b c0           rjmp    .+54            ; 0x1680 <__floatsisf+0x6c>
+    164a:      6f 5f           subi    r22, 0xFF       ; 255
+    164c:      7f 4f           sbci    r23, 0xFF       ; 255
+    164e:      8f 4f           sbci    r24, 0xFF       ; 255
+    1650:      9f 4f           sbci    r25, 0xFF       ; 255
+    1652:      16 c0           rjmp    .+44            ; 0x1680 <__floatsisf+0x6c>
+    1654:      88 23           and     r24, r24
+    1656:      11 f0           breq    .+4             ; 0x165c <__floatsisf+0x48>
+    1658:      96 e9           ldi     r25, 0x96       ; 150
+    165a:      11 c0           rjmp    .+34            ; 0x167e <__floatsisf+0x6a>
+    165c:      77 23           and     r23, r23
+    165e:      21 f0           breq    .+8             ; 0x1668 <__floatsisf+0x54>
+    1660:      9e e8           ldi     r25, 0x8E       ; 142
+    1662:      87 2f           mov     r24, r23
+    1664:      76 2f           mov     r23, r22
+    1666:      05 c0           rjmp    .+10            ; 0x1672 <__floatsisf+0x5e>
+    1668:      66 23           and     r22, r22
+    166a:      71 f0           breq    .+28            ; 0x1688 <__floatsisf+0x74>
+    166c:      96 e8           ldi     r25, 0x86       ; 134
+    166e:      86 2f           mov     r24, r22
+    1670:      70 e0           ldi     r23, 0x00       ; 0
+    1672:      60 e0           ldi     r22, 0x00       ; 0
+    1674:      2a f0           brmi    .+10            ; 0x1680 <__floatsisf+0x6c>
+    1676:      9a 95           dec     r25
+    1678:      66 0f           add     r22, r22
+    167a:      77 1f           adc     r23, r23
+    167c:      88 1f           adc     r24, r24
+    167e:      da f7           brpl    .-10            ; 0x1676 <__floatsisf+0x62>
+    1680:      88 0f           add     r24, r24
+    1682:      96 95           lsr     r25
+    1684:      87 95           ror     r24
+    1686:      97 f9           bld     r25, 7
+    1688:      08 95           ret
+
+0000168a <__fp_cmp>:
+    168a:      99 0f           add     r25, r25
+    168c:      00 08           sbc     r0, r0
+    168e:      55 0f           add     r21, r21
+    1690:      aa 0b           sbc     r26, r26
+    1692:      e0 e8           ldi     r30, 0x80       ; 128
+    1694:      fe ef           ldi     r31, 0xFE       ; 254
+    1696:      16 16           cp      r1, r22
+    1698:      17 06           cpc     r1, r23
+    169a:      e8 07           cpc     r30, r24
+    169c:      f9 07           cpc     r31, r25
+    169e:      c0 f0           brcs    .+48            ; 0x16d0 <__fp_cmp+0x46>
+    16a0:      12 16           cp      r1, r18
+    16a2:      13 06           cpc     r1, r19
+    16a4:      e4 07           cpc     r30, r20
+    16a6:      f5 07           cpc     r31, r21
+    16a8:      98 f0           brcs    .+38            ; 0x16d0 <__fp_cmp+0x46>
+    16aa:      62 1b           sub     r22, r18
+    16ac:      73 0b           sbc     r23, r19
+    16ae:      84 0b           sbc     r24, r20
+    16b0:      95 0b           sbc     r25, r21
+    16b2:      39 f4           brne    .+14            ; 0x16c2 <__fp_cmp+0x38>
+    16b4:      0a 26           eor     r0, r26
+    16b6:      61 f0           breq    .+24            ; 0x16d0 <__fp_cmp+0x46>
+    16b8:      23 2b           or      r18, r19
+    16ba:      24 2b           or      r18, r20
+    16bc:      25 2b           or      r18, r21
+    16be:      21 f4           brne    .+8             ; 0x16c8 <__fp_cmp+0x3e>
+    16c0:      08 95           ret
+    16c2:      0a 26           eor     r0, r26
+    16c4:      09 f4           brne    .+2             ; 0x16c8 <__fp_cmp+0x3e>
+    16c6:      a1 40           sbci    r26, 0x01       ; 1
+    16c8:      a6 95           lsr     r26
+    16ca:      8f ef           ldi     r24, 0xFF       ; 255
+    16cc:      81 1d           adc     r24, r1
+    16ce:      81 1d           adc     r24, r1
+    16d0:      08 95           ret
+
+000016d2 <__fp_inf>:
+    16d2:      97 f9           bld     r25, 7
+    16d4:      9f 67           ori     r25, 0x7F       ; 127
+    16d6:      80 e8           ldi     r24, 0x80       ; 128
+    16d8:      70 e0           ldi     r23, 0x00       ; 0
+    16da:      60 e0           ldi     r22, 0x00       ; 0
+    16dc:      08 95           ret
+
+000016de <__fp_nan>:
+    16de:      9f ef           ldi     r25, 0xFF       ; 255
+    16e0:      80 ec           ldi     r24, 0xC0       ; 192
+    16e2:      08 95           ret
+
+000016e4 <__fp_pscA>:
+    16e4:      00 24           eor     r0, r0
+    16e6:      0a 94           dec     r0
+    16e8:      16 16           cp      r1, r22
+    16ea:      17 06           cpc     r1, r23
+    16ec:      18 06           cpc     r1, r24
+    16ee:      09 06           cpc     r0, r25
+    16f0:      08 95           ret
+
+000016f2 <__fp_pscB>:
+    16f2:      00 24           eor     r0, r0
+    16f4:      0a 94           dec     r0
+    16f6:      12 16           cp      r1, r18
+    16f8:      13 06           cpc     r1, r19
+    16fa:      14 06           cpc     r1, r20
+    16fc:      05 06           cpc     r0, r21
+    16fe:      08 95           ret
+
+00001700 <__fp_round>:
+    1700:      09 2e           mov     r0, r25
+    1702:      03 94           inc     r0
+    1704:      00 0c           add     r0, r0
+    1706:      11 f4           brne    .+4             ; 0x170c <__fp_round+0xc>
+    1708:      88 23           and     r24, r24
+    170a:      52 f0           brmi    .+20            ; 0x1720 <__fp_round+0x20>
+    170c:      bb 0f           add     r27, r27
+    170e:      40 f4           brcc    .+16            ; 0x1720 <__fp_round+0x20>
+    1710:      bf 2b           or      r27, r31
+    1712:      11 f4           brne    .+4             ; 0x1718 <__fp_round+0x18>
+    1714:      60 ff           sbrs    r22, 0
+    1716:      04 c0           rjmp    .+8             ; 0x1720 <__fp_round+0x20>
+    1718:      6f 5f           subi    r22, 0xFF       ; 255
+    171a:      7f 4f           sbci    r23, 0xFF       ; 255
+    171c:      8f 4f           sbci    r24, 0xFF       ; 255
+    171e:      9f 4f           sbci    r25, 0xFF       ; 255
+    1720:      08 95           ret
+
+00001722 <__fp_split3>:
+    1722:      57 fd           sbrc    r21, 7
+    1724:      90 58           subi    r25, 0x80       ; 128
+    1726:      44 0f           add     r20, r20
+    1728:      55 1f           adc     r21, r21
+    172a:      59 f0           breq    .+22            ; 0x1742 <__fp_splitA+0x10>
+    172c:      5f 3f           cpi     r21, 0xFF       ; 255
+    172e:      71 f0           breq    .+28            ; 0x174c <__fp_splitA+0x1a>
+    1730:      47 95           ror     r20
+
+00001732 <__fp_splitA>:
+    1732:      88 0f           add     r24, r24
+    1734:      97 fb           bst     r25, 7
+    1736:      99 1f           adc     r25, r25
+    1738:      61 f0           breq    .+24            ; 0x1752 <__fp_splitA+0x20>
+    173a:      9f 3f           cpi     r25, 0xFF       ; 255
+    173c:      79 f0           breq    .+30            ; 0x175c <__fp_splitA+0x2a>
+    173e:      87 95           ror     r24
+    1740:      08 95           ret
+    1742:      12 16           cp      r1, r18
+    1744:      13 06           cpc     r1, r19
+    1746:      14 06           cpc     r1, r20
+    1748:      55 1f           adc     r21, r21
+    174a:      f2 cf           rjmp    .-28            ; 0x1730 <__fp_split3+0xe>
+    174c:      46 95           lsr     r20
+    174e:      f1 df           rcall   .-30            ; 0x1732 <__fp_splitA>
+    1750:      08 c0           rjmp    .+16            ; 0x1762 <__fp_splitA+0x30>
+    1752:      16 16           cp      r1, r22
+    1754:      17 06           cpc     r1, r23
+    1756:      18 06           cpc     r1, r24
+    1758:      99 1f           adc     r25, r25
+    175a:      f1 cf           rjmp    .-30            ; 0x173e <__fp_splitA+0xc>
+    175c:      86 95           lsr     r24
+    175e:      71 05           cpc     r23, r1
+    1760:      61 05           cpc     r22, r1
+    1762:      08 94           sec
+    1764:      08 95           ret
+
+00001766 <__fp_zero>:
+    1766:      e8 94           clt
+
+00001768 <__fp_szero>:
+    1768:      bb 27           eor     r27, r27
+    176a:      66 27           eor     r22, r22
+    176c:      77 27           eor     r23, r23
+    176e:      cb 01           movw    r24, r22
+    1770:      97 f9           bld     r25, 7
+    1772:      08 95           ret
+
+00001774 <__gesf2>:
+    1774:      8a df           rcall   .-236           ; 0x168a <__fp_cmp>
+    1776:      08 f4           brcc    .+2             ; 0x177a <__gesf2+0x6>
+    1778:      8f ef           ldi     r24, 0xFF       ; 255
+    177a:      08 95           ret
+
+0000177c <__udivmodhi4>:
+    177c:      aa 1b           sub     r26, r26
+    177e:      bb 1b           sub     r27, r27
+    1780:      51 e1           ldi     r21, 0x11       ; 17
+    1782:      07 c0           rjmp    .+14            ; 0x1792 <__udivmodhi4_ep>
+
+00001784 <__udivmodhi4_loop>:
+    1784:      aa 1f           adc     r26, r26
+    1786:      bb 1f           adc     r27, r27
+    1788:      a6 17           cp      r26, r22
+    178a:      b7 07           cpc     r27, r23
+    178c:      10 f0           brcs    .+4             ; 0x1792 <__udivmodhi4_ep>
+    178e:      a6 1b           sub     r26, r22
+    1790:      b7 0b           sbc     r27, r23
+
+00001792 <__udivmodhi4_ep>:
+    1792:      88 1f           adc     r24, r24
+    1794:      99 1f           adc     r25, r25
+    1796:      5a 95           dec     r21
+    1798:      a9 f7           brne    .-22            ; 0x1784 <__udivmodhi4_loop>
+    179a:      80 95           com     r24
+    179c:      90 95           com     r25
+    179e:      bc 01           movw    r22, r24
+    17a0:      cd 01           movw    r24, r26
     17a2:      08 95           ret
-    17a4:      12 16           cp      r1, r18
-    17a6:      13 06           cpc     r1, r19
-    17a8:      14 06           cpc     r1, r20
-    17aa:      55 1f           adc     r21, r21
-    17ac:      f2 cf           rjmp    .-28            ; 0x1792 <__fp_split3+0xe>
-    17ae:      46 95           lsr     r20
-    17b0:      f1 df           rcall   .-30            ; 0x1794 <__fp_splitA>
-    17b2:      08 c0           rjmp    .+16            ; 0x17c4 <__fp_splitA+0x30>
-    17b4:      16 16           cp      r1, r22
-    17b6:      17 06           cpc     r1, r23
-    17b8:      18 06           cpc     r1, r24
-    17ba:      99 1f           adc     r25, r25
-    17bc:      f1 cf           rjmp    .-30            ; 0x17a0 <__fp_splitA+0xc>
-    17be:      86 95           lsr     r24
-    17c0:      71 05           cpc     r23, r1
-    17c2:      61 05           cpc     r22, r1
-    17c4:      08 94           sec
-    17c6:      08 95           ret
-
-000017c8 <__fp_zero>:
-    17c8:      e8 94           clt
-
-000017ca <__fp_szero>:
-    17ca:      bb 27           eor     r27, r27
-    17cc:      66 27           eor     r22, r22
-    17ce:      77 27           eor     r23, r23
-    17d0:      cb 01           movw    r24, r22
-    17d2:      97 f9           bld     r25, 7
-    17d4:      08 95           ret
-
-000017d6 <__gesf2>:
-    17d6:      8a df           rcall   .-236           ; 0x16ec <__fp_cmp>
-    17d8:      08 f4           brcc    .+2             ; 0x17dc <__gesf2+0x6>
-    17da:      8f ef           ldi     r24, 0xFF       ; 255
-    17dc:      08 95           ret
-
-000017de <__udivmodsi4>:
-    17de:      a1 e2           ldi     r26, 0x21       ; 33
-    17e0:      1a 2e           mov     r1, r26
-    17e2:      aa 1b           sub     r26, r26
-    17e4:      bb 1b           sub     r27, r27
-    17e6:      fd 01           movw    r30, r26
-    17e8:      0d c0           rjmp    .+26            ; 0x1804 <__udivmodsi4_ep>
-
-000017ea <__udivmodsi4_loop>:
-    17ea:      aa 1f           adc     r26, r26
-    17ec:      bb 1f           adc     r27, r27
-    17ee:      ee 1f           adc     r30, r30
-    17f0:      ff 1f           adc     r31, r31
-    17f2:      a2 17           cp      r26, r18
-    17f4:      b3 07           cpc     r27, r19
-    17f6:      e4 07           cpc     r30, r20
-    17f8:      f5 07           cpc     r31, r21
-    17fa:      20 f0           brcs    .+8             ; 0x1804 <__udivmodsi4_ep>
-    17fc:      a2 1b           sub     r26, r18
-    17fe:      b3 0b           sbc     r27, r19
-    1800:      e4 0b           sbc     r30, r20
-    1802:      f5 0b           sbc     r31, r21
-
-00001804 <__udivmodsi4_ep>:
-    1804:      66 1f           adc     r22, r22
-    1806:      77 1f           adc     r23, r23
-    1808:      88 1f           adc     r24, r24
-    180a:      99 1f           adc     r25, r25
-    180c:      1a 94           dec     r1
-    180e:      69 f7           brne    .-38            ; 0x17ea <__udivmodsi4_loop>
-    1810:      60 95           com     r22
-    1812:      70 95           com     r23
-    1814:      80 95           com     r24
-    1816:      90 95           com     r25
-    1818:      9b 01           movw    r18, r22
-    181a:      ac 01           movw    r20, r24
-    181c:      bd 01           movw    r22, r26
-    181e:      cf 01           movw    r24, r30
-    1820:      08 95           ret
-
-00001822 <_exit>:
-    1822:      f8 94           cli
-
-00001824 <__stop_program>:
-    1824:      ff cf           rjmp    .-2             ; 0x1824 <__stop_program>
+
+000017a4 <_exit>:
+    17a4:      f8 94           cli
+
+000017a6 <__stop_program>:
+    17a6:      ff cf           rjmp    .-2             ; 0x17a6 <__stop_program>
index 227a5d539f6fa067c8bd9bf326043ffcfdc3b7a2..f2a2d5e1cde545c23dbe2f2309a5d128cd1bd64d 100644 (file)
@@ -78,13 +78,13 @@ Discarded input sections
  .bss           0x0000000000000000        0x0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
  .text          0x0000000000000000        0x0 USBtoSerial.o
  .text.touchpad_set_rel_mode_100dpi
-                0x0000000000000000       0x18 USBtoSerial.o
+                0x0000000000000000       0x2a USBtoSerial.o
  .text.touchpad_set_rel_mode_200dpi
-                0x0000000000000000       0x18 USBtoSerial.o
+                0x0000000000000000       0x2a USBtoSerial.o
  .text.delta_y  0x0000000000000000       0x20 USBtoSerial.o
  .text.delta_x  0x0000000000000000       0x20 USBtoSerial.o
- .text.decode_field
-                0x0000000000000000       0x8c USBtoSerial.o
+ .text.my_uitoa
+                0x0000000000000000       0xd0 USBtoSerial.o
  .text          0x0000000000000000        0x0 Descriptors.o
  .data          0x0000000000000000        0x0 Descriptors.o
  .bss           0x0000000000000000        0x0 Descriptors.o
@@ -351,10 +351,10 @@ Discarded input sections
  .text          0x0000000000000000        0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodhi4.o)
  .data          0x0000000000000000        0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodhi4.o)
  .bss           0x0000000000000000        0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodhi4.o)
- .text.libgcc   0x0000000000000000       0x28 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodhi4.o)
  .text          0x0000000000000000        0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodsi4.o)
  .data          0x0000000000000000        0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodsi4.o)
  .bss           0x0000000000000000        0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodsi4.o)
+ .text.libgcc   0x0000000000000000       0x44 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodsi4.o)
  .text          0x0000000000000000        0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_exit.o)
  .data          0x0000000000000000        0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_exit.o)
  .bss           0x0000000000000000        0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_exit.o)
@@ -539,7 +539,7 @@ LOAD /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a
 .rela.plt
  *(.rela.plt)
 
-.text           0x0000000000000000     0x1826
+.text           0x0000000000000000     0x17a8
  *(.vectors)
  .vectors       0x0000000000000000       0x98 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/crtm32u2.o
                 0x0000000000000000                __vectors
@@ -659,190 +659,190 @@ LOAD /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a
                 0x000000000000046c       0x12 USBtoSerial.o
                 0x000000000000046c                touchpad_read
  .text.touchpad_set_abs_mode
-                0x000000000000047e       0x28 USBtoSerial.o
+                0x000000000000047e       0x3c USBtoSerial.o
                 0x000000000000047e                touchpad_set_abs_mode
  .text.z_pressure
-                0x00000000000004a6       0x16 USBtoSerial.o
-                0x00000000000004a6                z_pressure
- .text.x_abs    0x00000000000004bc       0x3c USBtoSerial.o
-                0x00000000000004bc                x_abs
- .text.y_abs    0x00000000000004f8       0x3e USBtoSerial.o
-                0x00000000000004f8                y_abs
+                0x00000000000004ba       0x16 USBtoSerial.o
+                0x00000000000004ba                z_pressure
+ .text.x_abs    0x00000000000004d0       0x3c USBtoSerial.o
+                0x00000000000004d0                x_abs
+ .text.y_abs    0x000000000000050c       0x3e USBtoSerial.o
+                0x000000000000050c                y_abs
+ .text.decode_field
+                0x000000000000054a       0x86 USBtoSerial.o
+                0x000000000000054a                decode_field
  .text.Usb2SerialTask
-                0x0000000000000536       0xb2 USBtoSerial.o
-                0x0000000000000536                Usb2SerialTask
+                0x00000000000005d0       0xb2 USBtoSerial.o
+                0x00000000000005d0                Usb2SerialTask
  .text.SetupHardware
-                0x00000000000005e8       0x2a USBtoSerial.o
-                0x00000000000005e8                SetupHardware
+                0x0000000000000682       0x2a USBtoSerial.o
+                0x0000000000000682                SetupHardware
  .text.EVENT_USB_Device_Connect
-                0x0000000000000612        0x2 USBtoSerial.o
-                0x0000000000000612                EVENT_USB_Device_Connect
+                0x00000000000006ac        0x2 USBtoSerial.o
+                0x00000000000006ac                EVENT_USB_Device_Connect
  .text.EVENT_USB_Device_Disconnect
-                0x0000000000000614        0x2 USBtoSerial.o
-                0x0000000000000614                EVENT_USB_Device_Disconnect
+                0x00000000000006ae        0x2 USBtoSerial.o
+                0x00000000000006ae                EVENT_USB_Device_Disconnect
  .text.EVENT_USB_Device_ConfigurationChanged
-                0x0000000000000616        0x6 USBtoSerial.o
-                0x0000000000000616                EVENT_USB_Device_ConfigurationChanged
+                0x00000000000006b0        0x6 USBtoSerial.o
+                0x00000000000006b0                EVENT_USB_Device_ConfigurationChanged
  .text.EVENT_USB_Device_ControlRequest
-                0x000000000000061c        0x6 USBtoSerial.o
-                0x000000000000061c                EVENT_USB_Device_ControlRequest
+                0x00000000000006b6        0x6 USBtoSerial.o
+                0x00000000000006b6                EVENT_USB_Device_ControlRequest
  .text.__vector_23
-                0x0000000000000622       0x54 USBtoSerial.o
-                0x0000000000000622                __vector_23
+                0x00000000000006bc       0x54 USBtoSerial.o
+                0x00000000000006bc                __vector_23
  .text.EVENT_CDC_Device_LineEncodingChanged
-                0x0000000000000676       0xc0 USBtoSerial.o
-                0x0000000000000676                EVENT_CDC_Device_LineEncodingChanged
+                0x0000000000000710       0xc0 USBtoSerial.o
+                0x0000000000000710                EVENT_CDC_Device_LineEncodingChanged
  .text.uart_putc
-                0x0000000000000736       0x10 USBtoSerial.o
-                0x0000000000000736                uart_putc
+                0x00000000000007d0       0x10 USBtoSerial.o
+                0x00000000000007d0                uart_putc
  .text.uart_puts
-                0x0000000000000746       0x26 USBtoSerial.o
-                0x0000000000000746                uart_puts
- .text.my_uitoa
-                0x000000000000076c       0xcc USBtoSerial.o
-                0x000000000000076c                my_uitoa
- .text.main     0x0000000000000838       0xbe USBtoSerial.o
-                0x0000000000000838                main
+                0x00000000000007e0       0x26 USBtoSerial.o
+                0x00000000000007e0                uart_puts
+ .text.main     0x0000000000000806       0x8e USBtoSerial.o
+                0x0000000000000806                main
  .text.CALLBACK_USB_GetDescriptor
-                0x00000000000008f6       0x5a Descriptors.o
-                0x00000000000008f6                CALLBACK_USB_GetDescriptor
+                0x0000000000000894       0x5a Descriptors.o
+                0x0000000000000894                CALLBACK_USB_GetDescriptor
  .text.Endpoint_Write_Control_Stream_LE
-                0x0000000000000950       0xb4 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-                0x0000000000000950                Endpoint_Write_Control_Stream_LE
+                0x00000000000008ee       0xb4 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
+                0x00000000000008ee                Endpoint_Write_Control_Stream_LE
  .text.Endpoint_Write_Control_PStream_LE
-                0x0000000000000a04       0xb6 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
-                0x0000000000000a04                Endpoint_Write_Control_PStream_LE
+                0x00000000000009a2       0xb6 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
+                0x00000000000009a2                Endpoint_Write_Control_PStream_LE
  .text.Endpoint_ConfigureEndpoint_Prv
-                0x0000000000000aba       0x6e ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
-                0x0000000000000aba                Endpoint_ConfigureEndpoint_Prv
+                0x0000000000000a58       0x6e ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
+                0x0000000000000a58                Endpoint_ConfigureEndpoint_Prv
  .text.Endpoint_ConfigureEndpointTable
-                0x0000000000000b28       0x88 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
-                0x0000000000000b28                Endpoint_ConfigureEndpointTable
+                0x0000000000000ac6       0x88 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
+                0x0000000000000ac6                Endpoint_ConfigureEndpointTable
  .text.Endpoint_ClearStatusStage
-                0x0000000000000bb0       0x3e ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
-                0x0000000000000bb0                Endpoint_ClearStatusStage
+                0x0000000000000b4e       0x3e ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
+                0x0000000000000b4e                Endpoint_ClearStatusStage
  .text.Endpoint_WaitUntilReady
-                0x0000000000000bee       0x66 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
-                0x0000000000000bee                Endpoint_WaitUntilReady
+                0x0000000000000b8c       0x66 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
+                0x0000000000000b8c                Endpoint_WaitUntilReady
  .text.USB_ResetInterface
-                0x0000000000000c54       0x70 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
-                0x0000000000000c54                USB_ResetInterface
+                0x0000000000000bf2       0x70 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+                0x0000000000000bf2                USB_ResetInterface
  .text.USB_Init
-                0x0000000000000cc4       0x12 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
-                0x0000000000000cc4                USB_Init
+                0x0000000000000c62       0x12 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+                0x0000000000000c62                USB_Init
  .text.USB_INT_DisableAllInterrupts
-                0x0000000000000cd6        0x6 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
-                0x0000000000000cd6                USB_INT_DisableAllInterrupts
+                0x0000000000000c74        0x6 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+                0x0000000000000c74                USB_INT_DisableAllInterrupts
  .text.USB_INT_ClearAllInterrupts
-                0x0000000000000cdc        0x6 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
-                0x0000000000000cdc                USB_INT_ClearAllInterrupts
+                0x0000000000000c7a        0x6 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+                0x0000000000000c7a                USB_INT_ClearAllInterrupts
  .text.__vector_11
-                0x0000000000000ce2      0x148 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
-                0x0000000000000ce2                __vector_11
+                0x0000000000000c80      0x148 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+                0x0000000000000c80                __vector_11
  .text.__vector_12
-                0x0000000000000e2a       0x76 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
-                0x0000000000000e2a                __vector_12
+                0x0000000000000dc8       0x76 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+                0x0000000000000dc8                __vector_12
  .text.USB_Device_ProcessControlRequest
-                0x0000000000000ea0      0x2c2 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
-                0x0000000000000ea0                USB_Device_ProcessControlRequest
+                0x0000000000000e3e      0x2c2 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
+                0x0000000000000e3e                USB_Device_ProcessControlRequest
  .text.USB_Event_Stub
-                0x0000000000001162        0x2 ../../LUFA/Drivers/USB/Core/Events.o
-                0x0000000000001162                EVENT_USB_Device_WakeUp
-                0x0000000000001162                USB_Event_Stub
-                0x0000000000001162                EVENT_USB_Device_Suspend
-                0x0000000000001162                EVENT_USB_Device_StartOfFrame
-                0x0000000000001162                EVENT_USB_Device_Reset
+                0x0000000000001100        0x2 ../../LUFA/Drivers/USB/Core/Events.o
+                0x0000000000001100                EVENT_USB_Device_WakeUp
+                0x0000000000001100                USB_Event_Stub
+                0x0000000000001100                EVENT_USB_Device_Suspend
+                0x0000000000001100                EVENT_USB_Device_StartOfFrame
+                0x0000000000001100                EVENT_USB_Device_Reset
  .text.USB_USBTask
-                0x0000000000001164       0x36 ../../LUFA/Drivers/USB/Core/USBTask.o
-                0x0000000000001164                USB_USBTask
+                0x0000000000001102       0x36 ../../LUFA/Drivers/USB/Core/USBTask.o
+                0x0000000000001102                USB_USBTask
  .text.CDC_Device_ProcessControlRequest
-                0x000000000000119a      0x158 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-                0x000000000000119a                CDC_Device_ProcessControlRequest
+                0x0000000000001138      0x158 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
+                0x0000000000001138                CDC_Device_ProcessControlRequest
  .text.CDC_Device_ConfigureEndpoints
-                0x00000000000012f2       0x48 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-                0x00000000000012f2                CDC_Device_ConfigureEndpoints
+                0x0000000000001290       0x48 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
+                0x0000000000001290                CDC_Device_ConfigureEndpoints
  .text.CDC_Device_SendByte
-                0x000000000000133a       0x5a ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-                0x000000000000133a                CDC_Device_SendByte
+                0x00000000000012d8       0x5a ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
+                0x00000000000012d8                CDC_Device_SendByte
  .text.CDC_Device_Flush
-                0x0000000000001394       0x5a ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-                0x0000000000001394                CDC_Device_Flush
+                0x0000000000001332       0x5a ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
+                0x0000000000001332                CDC_Device_Flush
  .text.CDC_Device_USBTask
-                0x00000000000013ee       0x2e ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-                0x00000000000013ee                CDC_Device_USBTask
+                0x000000000000138c       0x2e ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
+                0x000000000000138c                CDC_Device_USBTask
  .text.CDC_Device_ReceiveByte
-                0x000000000000141c       0x5a ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-                0x000000000000141c                CDC_Device_ReceiveByte
+                0x00000000000013ba       0x5a ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
+                0x00000000000013ba                CDC_Device_ReceiveByte
  .text.CDC_Device_Event_Stub
-                0x0000000000001476        0x2 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
-                0x0000000000001476                EVENT_CDC_Device_ControLineStateChanged
-                0x0000000000001476                EVENT_CDC_Device_BreakSent
-                0x0000000000001476                CDC_Device_Event_Stub
+                0x0000000000001414        0x2 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
+                0x0000000000001414                EVENT_CDC_Device_ControLineStateChanged
+                0x0000000000001414                EVENT_CDC_Device_BreakSent
+                0x0000000000001414                CDC_Device_Event_Stub
  .text.avr-libc.fplib
-                0x0000000000001478        0xa /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3.o)
-                0x0000000000001478                __subsf3
-                0x000000000000147a                __addsf3
+                0x0000000000001416        0xa /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3.o)
+                0x0000000000001416                __subsf3
+                0x0000000000001418                __addsf3
  .text.avr-libc.fplib
-                0x0000000000001482       0xc0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o)
-                0x000000000000149c                __addsf3x
+                0x0000000000001420       0xc0 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(addsf3x.o)
+                0x000000000000143a                __addsf3x
  .text.avr-libc.fplib
-                0x0000000000001542        0x8 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(cmpsf2.o)
-                0x0000000000001542                __lesf2
-                0x0000000000001542                __nesf2
-                0x0000000000001542                __eqsf2
-                0x0000000000001542                __cmpsf2
-                0x0000000000001542                __ltsf2
+                0x00000000000014e0        0x8 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(cmpsf2.o)
+                0x00000000000014e0                __lesf2
+                0x00000000000014e0                __nesf2
+                0x00000000000014e0                __eqsf2
+                0x00000000000014e0                __cmpsf2
+                0x00000000000014e0                __ltsf2
  .text.avr-libc.fplib
-                0x000000000000154a        0x4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3.o)
-                0x000000000000154a                __divsf3
+                0x00000000000014e8        0x4 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3.o)
+                0x00000000000014e8                __divsf3
  .text.avr-libc.fplib
-                0x000000000000154e       0xcc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3x.o)
-                0x0000000000001564                __divsf3x
-                0x0000000000001568                __divsf3_pse
+                0x00000000000014ec       0xcc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(divsf3x.o)
+                0x0000000000001502                __divsf3x
+                0x0000000000001506                __divsf3_pse
  .text.avr-libc.fplib
-                0x000000000000161a       0x58 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fixunssfsi.o)
-                0x000000000000161a                __fixunssfsi
+                0x00000000000015b8       0x58 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fixunssfsi.o)
+                0x00000000000015b8                __fixunssfsi
  .text.avr-libc.fplib
-                0x0000000000001672       0x7a /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(floatsisf.o)
-                0x0000000000001672                __floatunsisf
-                0x0000000000001676                __floatsisf
+                0x0000000000001610       0x7a /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(floatsisf.o)
+                0x0000000000001610                __floatunsisf
+                0x0000000000001614                __floatsisf
  .text.avr-libc.fplib
-                0x00000000000016ec       0x48 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_cmp.o)
-                0x00000000000016ec                __fp_cmp
+                0x000000000000168a       0x48 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_cmp.o)
+                0x000000000000168a                __fp_cmp
  .text.avr-libc.fplib
-                0x0000000000001734        0xc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_inf.o)
-                0x0000000000001734                __fp_inf
+                0x00000000000016d2        0xc /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_inf.o)
+                0x00000000000016d2                __fp_inf
  .text.avr-libc.fplib
-                0x0000000000001740        0x6 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_nan.o)
-                0x0000000000001740                __fp_nan
+                0x00000000000016de        0x6 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_nan.o)
+                0x00000000000016de                __fp_nan
  .text.avr-libc.fplib
-                0x0000000000001746        0xe /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscA.o)
-                0x0000000000001746                __fp_pscA
+                0x00000000000016e4        0xe /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscA.o)
+                0x00000000000016e4                __fp_pscA
  .text.avr-libc.fplib
-                0x0000000000001754        0xe /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscB.o)
-                0x0000000000001754                __fp_pscB
+                0x00000000000016f2        0xe /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_pscB.o)
+                0x00000000000016f2                __fp_pscB
  .text.avr-libc.fplib
-                0x0000000000001762       0x22 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_round.o)
-                0x0000000000001762                __fp_round
+                0x0000000000001700       0x22 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_round.o)
+                0x0000000000001700                __fp_round
  .text.avr-libc.fplib
-                0x0000000000001784       0x44 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_split3.o)
-                0x0000000000001784                __fp_split3
-                0x0000000000001794                __fp_splitA
+                0x0000000000001722       0x44 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_split3.o)
+                0x0000000000001722                __fp_split3
+                0x0000000000001732                __fp_splitA
  .text.avr-libc.fplib
-                0x00000000000017c8        0xe /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_zero.o)
-                0x00000000000017c8                __fp_zero
-                0x00000000000017ca                __fp_szero
+                0x0000000000001766        0xe /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(fp_zero.o)
+                0x0000000000001766                __fp_zero
+                0x0000000000001768                __fp_szero
  .text.avr-libc.fplib
-                0x00000000000017d6        0x8 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(gesf2.o)
-                0x00000000000017d6                __gtsf2
-                0x00000000000017d6                __gesf2
- .text.libgcc   0x00000000000017de       0x44 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodsi4.o)
-                0x00000000000017de                __udivmodsi4
-                0x0000000000001822                . = ALIGN (0x2)
+                0x0000000000001774        0x8 /usr/lib/gcc/avr/4.5.3/../../../avr/lib/avr35/libm.a(gesf2.o)
+                0x0000000000001774                __gtsf2
+                0x0000000000001774                __gesf2
+ .text.libgcc   0x000000000000177c       0x28 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_udivmodhi4.o)
+                0x000000000000177c                __udivmodhi4
+                0x00000000000017a4                . = ALIGN (0x2)
  *(.fini9)
- .fini9         0x0000000000001822        0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_exit.o)
-                0x0000000000001822                exit
-                0x0000000000001822                _exit
+ .fini9         0x00000000000017a4        0x0 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_exit.o)
+                0x00000000000017a4                exit
+                0x00000000000017a4                _exit
  *(.fini9)
  *(.fini8)
  *(.fini8)
@@ -861,50 +861,51 @@ LOAD /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a
  *(.fini1)
  *(.fini1)
  *(.fini0)
- .fini0         0x0000000000001822        0x4 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_exit.o)
+ .fini0         0x00000000000017a4        0x4 /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a(_exit.o)
  *(.fini0)
-                0x0000000000001826                _etext = .
+                0x00000000000017a8                _etext = .
 
-.data           0x0000000000800100       0x42 load address 0x0000000000001826
+.data           0x0000000000800100       0x48 load address 0x00000000000017a8
                 0x0000000000800100                PROVIDE (__data_start, .)
  *(.data)
- .data          0x0000000000800100       0x42 USBtoSerial.o
-                0x0000000000800125                VirtualSerial_CDC_Interface
+ .data          0x0000000000800100       0x47 USBtoSerial.o
+                0x000000000080012a                VirtualSerial_CDC_Interface
  *(.data*)
  *(.rodata)
  *(.rodata*)
  *(.gnu.linkonce.d*)
-                0x0000000000800142                . = ALIGN (0x2)
-                0x0000000000800142                _edata = .
-                0x0000000000800142                PROVIDE (__data_end, .)
+                0x0000000000800148                . = ALIGN (0x2)
+ *fill*         0x0000000000800147        0x1 00
+                0x0000000000800148                _edata = .
+                0x0000000000800148                PROVIDE (__data_end, .)
 
-.bss            0x0000000000800142      0x134
-                0x0000000000800142                PROVIDE (__bss_start, .)
+.bss            0x0000000000800148      0x134
+                0x0000000000800148                PROVIDE (__bss_start, .)
  *(.bss)
- .bss           0x0000000000800142      0x11d USBtoSerial.o
+ .bss           0x0000000000800148      0x11d USBtoSerial.o
  *(.bss*)
  *(COMMON)
- COMMON         0x000000000080025f        0xb USBtoSerial.o
-                0x000000000080025f                adb_werte
-                0x0000000000800268                t0ovfcount
-                0x0000000000800269                adb_data_length
- COMMON         0x000000000080026a        0x3 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
-                0x000000000080026a                USB_Device_ConfigurationNumber
-                0x000000000080026b                USB_Device_CurrentlySelfPowered
-                0x000000000080026c                USB_Device_RemoteWakeupEnabled
- COMMON         0x000000000080026d        0x9 ../../LUFA/Drivers/USB/Core/USBTask.o
-                0x000000000080026d                USB_IsInitialized
-                0x000000000080026e                USB_ControlRequest
-                0x0000000000800276                PROVIDE (__bss_end, .)
-                0x0000000000001826                __data_load_start = LOADADDR (.data)
-                0x0000000000001868                __data_load_end = (__data_load_start + SIZEOF (.data))
-
-.noinit         0x0000000000800276        0x0
-                0x0000000000800276                PROVIDE (__noinit_start, .)
+ COMMON         0x0000000000800265        0xb USBtoSerial.o
+                0x0000000000800265                adb_werte
+                0x000000000080026e                t0ovfcount
+                0x000000000080026f                adb_data_length
+ COMMON         0x0000000000800270        0x3 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
+                0x0000000000800270                USB_Device_ConfigurationNumber
+                0x0000000000800271                USB_Device_CurrentlySelfPowered
+                0x0000000000800272                USB_Device_RemoteWakeupEnabled
+ COMMON         0x0000000000800273        0x9 ../../LUFA/Drivers/USB/Core/USBTask.o
+                0x0000000000800273                USB_IsInitialized
+                0x0000000000800274                USB_ControlRequest
+                0x000000000080027c                PROVIDE (__bss_end, .)
+                0x00000000000017a8                __data_load_start = LOADADDR (.data)
+                0x00000000000017f0                __data_load_end = (__data_load_start + SIZEOF (.data))
+
+.noinit         0x000000000080027c        0x0
+                0x000000000080027c                PROVIDE (__noinit_start, .)
  *(.noinit*)
-                0x0000000000800276                PROVIDE (__noinit_end, .)
-                0x0000000000800276                _end = .
-                0x0000000000800276                PROVIDE (__heap_start, .)
+                0x000000000080027c                PROVIDE (__noinit_end, .)
+                0x000000000080027c                _end = .
+                0x000000000080027c                PROVIDE (__heap_start, .)
 
 .eeprom         0x0000000000810000        0x0
  *(.eeprom*)
@@ -1080,108 +1081,108 @@ LOAD /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a
  .debug_pubnames
                 0x0000000000000d41       0xd0 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
 
-.debug_info     0x0000000000000000     0x8cb1
+.debug_info     0x0000000000000000     0x8d35
  *(.debug_info)
- .debug_info    0x0000000000000000      0xef3 USBtoSerial.o
- .debug_info    0x0000000000000ef3      0x77d Descriptors.o
- .debug_info    0x0000000000001670      0x6f9 ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .debug_info    0x0000000000001d69       0xd8 ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
- .debug_info    0x0000000000001e41     0x154c ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .debug_info    0x000000000000338d      0x603 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- .debug_info    0x0000000000003990       0x6c ../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
- .debug_info    0x00000000000039fc       0x6c ../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
- .debug_info    0x0000000000003a68       0x6c ../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
- .debug_info    0x0000000000003ad4      0x412 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- .debug_info    0x0000000000003ee6      0x662 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- .debug_info    0x0000000000004548      0x38c ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .debug_info    0x00000000000048d4      0x973 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- .debug_info    0x0000000000005247       0x85 ../../LUFA/Drivers/USB/Core/Events.o
- .debug_info    0x00000000000052cc       0x6c ../../LUFA/Drivers/USB/Core/HostStandardReq.o
- .debug_info    0x0000000000005338      0x245 ../../LUFA/Drivers/USB/Core/USBTask.o
- .debug_info    0x000000000000557d      0x56c ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .debug_info    0x0000000000005ae9      0xc3b ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .debug_info    0x0000000000006724      0x67a ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .debug_info    0x0000000000006d9e      0x7ca ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .debug_info    0x0000000000007568      0x4c1 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .debug_info    0x0000000000007a29      0xebc ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- .debug_info    0x00000000000088e5       0x6c ../../LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.o
- .debug_info    0x0000000000008951       0x6c ../../LUFA/Drivers/USB/Class/Host/AudioClassHost.o
- .debug_info    0x00000000000089bd       0x6c ../../LUFA/Drivers/USB/Class/Host/CDCClassHost.o
- .debug_info    0x0000000000008a29       0x6c ../../LUFA/Drivers/USB/Class/Host/HIDClassHost.o
- .debug_info    0x0000000000008a95       0x6c ../../LUFA/Drivers/USB/Class/Host/MassStorageClassHost.o
- .debug_info    0x0000000000008b01       0x6c ../../LUFA/Drivers/USB/Class/Host/MIDIClassHost.o
- .debug_info    0x0000000000008b6d       0x6c ../../LUFA/Drivers/USB/Class/Host/PrinterClassHost.o
- .debug_info    0x0000000000008bd9       0x6c ../../LUFA/Drivers/USB/Class/Host/RNDISClassHost.o
- .debug_info    0x0000000000008c45       0x6c ../../LUFA/Drivers/USB/Class/Host/StillImageClassHost.o
+ .debug_info    0x0000000000000000      0xf77 USBtoSerial.o
+ .debug_info    0x0000000000000f77      0x77d Descriptors.o
+ .debug_info    0x00000000000016f4      0x6f9 ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .debug_info    0x0000000000001ded       0xd8 ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
+ .debug_info    0x0000000000001ec5     0x154c ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
+ .debug_info    0x0000000000003411      0x603 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
+ .debug_info    0x0000000000003a14       0x6c ../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .debug_info    0x0000000000003a80       0x6c ../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .debug_info    0x0000000000003aec       0x6c ../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+ .debug_info    0x0000000000003b58      0x412 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+ .debug_info    0x0000000000003f6a      0x662 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+ .debug_info    0x00000000000045cc      0x38c ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
+ .debug_info    0x0000000000004958      0x973 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
+ .debug_info    0x00000000000052cb       0x85 ../../LUFA/Drivers/USB/Core/Events.o
+ .debug_info    0x0000000000005350       0x6c ../../LUFA/Drivers/USB/Core/HostStandardReq.o
+ .debug_info    0x00000000000053bc      0x245 ../../LUFA/Drivers/USB/Core/USBTask.o
+ .debug_info    0x0000000000005601      0x56c ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
+ .debug_info    0x0000000000005b6d      0xc3b ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
+ .debug_info    0x00000000000067a8      0x67a ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
+ .debug_info    0x0000000000006e22      0x7ca ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
+ .debug_info    0x00000000000075ec      0x4c1 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
+ .debug_info    0x0000000000007aad      0xebc ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
+ .debug_info    0x0000000000008969       0x6c ../../LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.o
+ .debug_info    0x00000000000089d5       0x6c ../../LUFA/Drivers/USB/Class/Host/AudioClassHost.o
+ .debug_info    0x0000000000008a41       0x6c ../../LUFA/Drivers/USB/Class/Host/CDCClassHost.o
+ .debug_info    0x0000000000008aad       0x6c ../../LUFA/Drivers/USB/Class/Host/HIDClassHost.o
+ .debug_info    0x0000000000008b19       0x6c ../../LUFA/Drivers/USB/Class/Host/MassStorageClassHost.o
+ .debug_info    0x0000000000008b85       0x6c ../../LUFA/Drivers/USB/Class/Host/MIDIClassHost.o
+ .debug_info    0x0000000000008bf1       0x6c ../../LUFA/Drivers/USB/Class/Host/PrinterClassHost.o
+ .debug_info    0x0000000000008c5d       0x6c ../../LUFA/Drivers/USB/Class/Host/RNDISClassHost.o
+ .debug_info    0x0000000000008cc9       0x6c ../../LUFA/Drivers/USB/Class/Host/StillImageClassHost.o
  *(.gnu.linkonce.wi.*)
 
-.debug_abbrev   0x0000000000000000     0x21ca
+.debug_abbrev   0x0000000000000000     0x2195
  *(.debug_abbrev)
- .debug_abbrev  0x0000000000000000      0x441 USBtoSerial.o
- .debug_abbrev  0x0000000000000441      0x153 Descriptors.o
- .debug_abbrev  0x0000000000000594      0x1ec ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .debug_abbrev  0x0000000000000780       0x7d ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
- .debug_abbrev  0x00000000000007fd      0x18b ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .debug_abbrev  0x0000000000000988      0x1ee ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- .debug_abbrev  0x0000000000000b76       0x2a ../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
- .debug_abbrev  0x0000000000000ba0       0x2a ../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
- .debug_abbrev  0x0000000000000bca       0x2a ../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
- .debug_abbrev  0x0000000000000bf4      0x14d ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- .debug_abbrev  0x0000000000000d41      0x1e2 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- .debug_abbrev  0x0000000000000f23      0x148 ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .debug_abbrev  0x000000000000106b      0x20b ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- .debug_abbrev  0x0000000000001276       0x41 ../../LUFA/Drivers/USB/Core/Events.o
- .debug_abbrev  0x00000000000012b7       0x2a ../../LUFA/Drivers/USB/Core/HostStandardReq.o
- .debug_abbrev  0x00000000000012e1      0x14b ../../LUFA/Drivers/USB/Core/USBTask.o
- .debug_abbrev  0x000000000000142c      0x160 ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .debug_abbrev  0x000000000000158c      0x2ec ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .debug_abbrev  0x0000000000001878      0x1b5 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .debug_abbrev  0x0000000000001a2d      0x205 ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .debug_abbrev  0x0000000000001c32      0x16c ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .debug_abbrev  0x0000000000001d9e      0x2b2 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- .debug_abbrev  0x0000000000002050       0x2a ../../LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.o
- .debug_abbrev  0x000000000000207a       0x2a ../../LUFA/Drivers/USB/Class/Host/AudioClassHost.o
- .debug_abbrev  0x00000000000020a4       0x2a ../../LUFA/Drivers/USB/Class/Host/CDCClassHost.o
- .debug_abbrev  0x00000000000020ce       0x2a ../../LUFA/Drivers/USB/Class/Host/HIDClassHost.o
- .debug_abbrev  0x00000000000020f8       0x2a ../../LUFA/Drivers/USB/Class/Host/MassStorageClassHost.o
- .debug_abbrev  0x0000000000002122       0x2a ../../LUFA/Drivers/USB/Class/Host/MIDIClassHost.o
- .debug_abbrev  0x000000000000214c       0x2a ../../LUFA/Drivers/USB/Class/Host/PrinterClassHost.o
- .debug_abbrev  0x0000000000002176       0x2a ../../LUFA/Drivers/USB/Class/Host/RNDISClassHost.o
- .debug_abbrev  0x00000000000021a0       0x2a ../../LUFA/Drivers/USB/Class/Host/StillImageClassHost.o
-
-.debug_line     0x0000000000000000     0x757d
+ .debug_abbrev  0x0000000000000000      0x40c USBtoSerial.o
+ .debug_abbrev  0x000000000000040c      0x153 Descriptors.o
+ .debug_abbrev  0x000000000000055f      0x1ec ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .debug_abbrev  0x000000000000074b       0x7d ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
+ .debug_abbrev  0x00000000000007c8      0x18b ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
+ .debug_abbrev  0x0000000000000953      0x1ee ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
+ .debug_abbrev  0x0000000000000b41       0x2a ../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .debug_abbrev  0x0000000000000b6b       0x2a ../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .debug_abbrev  0x0000000000000b95       0x2a ../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+ .debug_abbrev  0x0000000000000bbf      0x14d ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+ .debug_abbrev  0x0000000000000d0c      0x1e2 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+ .debug_abbrev  0x0000000000000eee      0x148 ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
+ .debug_abbrev  0x0000000000001036      0x20b ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
+ .debug_abbrev  0x0000000000001241       0x41 ../../LUFA/Drivers/USB/Core/Events.o
+ .debug_abbrev  0x0000000000001282       0x2a ../../LUFA/Drivers/USB/Core/HostStandardReq.o
+ .debug_abbrev  0x00000000000012ac      0x14b ../../LUFA/Drivers/USB/Core/USBTask.o
+ .debug_abbrev  0x00000000000013f7      0x160 ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
+ .debug_abbrev  0x0000000000001557      0x2ec ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
+ .debug_abbrev  0x0000000000001843      0x1b5 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
+ .debug_abbrev  0x00000000000019f8      0x205 ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
+ .debug_abbrev  0x0000000000001bfd      0x16c ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
+ .debug_abbrev  0x0000000000001d69      0x2b2 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
+ .debug_abbrev  0x000000000000201b       0x2a ../../LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.o
+ .debug_abbrev  0x0000000000002045       0x2a ../../LUFA/Drivers/USB/Class/Host/AudioClassHost.o
+ .debug_abbrev  0x000000000000206f       0x2a ../../LUFA/Drivers/USB/Class/Host/CDCClassHost.o
+ .debug_abbrev  0x0000000000002099       0x2a ../../LUFA/Drivers/USB/Class/Host/HIDClassHost.o
+ .debug_abbrev  0x00000000000020c3       0x2a ../../LUFA/Drivers/USB/Class/Host/MassStorageClassHost.o
+ .debug_abbrev  0x00000000000020ed       0x2a ../../LUFA/Drivers/USB/Class/Host/MIDIClassHost.o
+ .debug_abbrev  0x0000000000002117       0x2a ../../LUFA/Drivers/USB/Class/Host/PrinterClassHost.o
+ .debug_abbrev  0x0000000000002141       0x2a ../../LUFA/Drivers/USB/Class/Host/RNDISClassHost.o
+ .debug_abbrev  0x000000000000216b       0x2a ../../LUFA/Drivers/USB/Class/Host/StillImageClassHost.o
+
+.debug_line     0x0000000000000000     0x7586
  *(.debug_line)
- .debug_line    0x0000000000000000      0xf9a USBtoSerial.o
- .debug_line    0x0000000000000f9a      0x1d9 Descriptors.o
- .debug_line    0x0000000000001173      0x762 ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .debug_line    0x00000000000018d5      0x15f ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
- .debug_line    0x0000000000001a34     0x1a80 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .debug_line    0x00000000000034b4      0x5a1 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- .debug_line    0x0000000000003a55       0x3e ../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
- .debug_line    0x0000000000003a93       0x3e ../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
- .debug_line    0x0000000000003ad1       0x3e ../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
- .debug_line    0x0000000000003b0f      0x312 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
- .debug_line    0x0000000000003e21      0x55a ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- .debug_line    0x000000000000437b      0x269 ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .debug_line    0x00000000000045e4      0x5a2 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- .debug_line    0x0000000000004b86       0x80 ../../LUFA/Drivers/USB/Core/Events.o
- .debug_line    0x0000000000004c06       0x3e ../../LUFA/Drivers/USB/Core/HostStandardReq.o
- .debug_line    0x0000000000004c44      0x1ae ../../LUFA/Drivers/USB/Core/USBTask.o
- .debug_line    0x0000000000004df2      0x4be ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .debug_line    0x00000000000052b0      0x9c2 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .debug_line    0x0000000000005c72      0x5c3 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .debug_line    0x0000000000006235      0x5c6 ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .debug_line    0x00000000000067fb      0x3bc ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .debug_line    0x0000000000006bb7      0x798 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
- .debug_line    0x000000000000734f       0x3e ../../LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.o
- .debug_line    0x000000000000738d       0x3e ../../LUFA/Drivers/USB/Class/Host/AudioClassHost.o
- .debug_line    0x00000000000073cb       0x3e ../../LUFA/Drivers/USB/Class/Host/CDCClassHost.o
- .debug_line    0x0000000000007409       0x3e ../../LUFA/Drivers/USB/Class/Host/HIDClassHost.o
- .debug_line    0x0000000000007447       0x3e ../../LUFA/Drivers/USB/Class/Host/MassStorageClassHost.o
- .debug_line    0x0000000000007485       0x3e ../../LUFA/Drivers/USB/Class/Host/MIDIClassHost.o
- .debug_line    0x00000000000074c3       0x3e ../../LUFA/Drivers/USB/Class/Host/PrinterClassHost.o
- .debug_line    0x0000000000007501       0x3e ../../LUFA/Drivers/USB/Class/Host/RNDISClassHost.o
- .debug_line    0x000000000000753f       0x3e ../../LUFA/Drivers/USB/Class/Host/StillImageClassHost.o
+ .debug_line    0x0000000000000000      0xfa3 USBtoSerial.o
+ .debug_line    0x0000000000000fa3      0x1d9 Descriptors.o
+ .debug_line    0x000000000000117c      0x762 ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .debug_line    0x00000000000018de      0x15f ../../LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o
+ .debug_line    0x0000000000001a3d     0x1a80 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
+ .debug_line    0x00000000000034bd      0x5a1 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
+ .debug_line    0x0000000000003a5e       0x3e ../../LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o
+ .debug_line    0x0000000000003a9c       0x3e ../../LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o
+ .debug_line    0x0000000000003ada       0x3e ../../LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o
+ .debug_line    0x0000000000003b18      0x312 ../../LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o
+ .debug_line    0x0000000000003e2a      0x55a ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+ .debug_line    0x0000000000004384      0x269 ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
+ .debug_line    0x00000000000045ed      0x5a2 ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
+ .debug_line    0x0000000000004b8f       0x80 ../../LUFA/Drivers/USB/Core/Events.o
+ .debug_line    0x0000000000004c0f       0x3e ../../LUFA/Drivers/USB/Core/HostStandardReq.o
+ .debug_line    0x0000000000004c4d      0x1ae ../../LUFA/Drivers/USB/Core/USBTask.o
+ .debug_line    0x0000000000004dfb      0x4be ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
+ .debug_line    0x00000000000052b9      0x9c2 ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
+ .debug_line    0x0000000000005c7b      0x5c3 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
+ .debug_line    0x000000000000623e      0x5c6 ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
+ .debug_line    0x0000000000006804      0x3bc ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
+ .debug_line    0x0000000000006bc0      0x798 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
+ .debug_line    0x0000000000007358       0x3e ../../LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.o
+ .debug_line    0x0000000000007396       0x3e ../../LUFA/Drivers/USB/Class/Host/AudioClassHost.o
+ .debug_line    0x00000000000073d4       0x3e ../../LUFA/Drivers/USB/Class/Host/CDCClassHost.o
+ .debug_line    0x0000000000007412       0x3e ../../LUFA/Drivers/USB/Class/Host/HIDClassHost.o
+ .debug_line    0x0000000000007450       0x3e ../../LUFA/Drivers/USB/Class/Host/MassStorageClassHost.o
+ .debug_line    0x000000000000748e       0x3e ../../LUFA/Drivers/USB/Class/Host/MIDIClassHost.o
+ .debug_line    0x00000000000074cc       0x3e ../../LUFA/Drivers/USB/Class/Host/PrinterClassHost.o
+ .debug_line    0x000000000000750a       0x3e ../../LUFA/Drivers/USB/Class/Host/RNDISClassHost.o
+ .debug_line    0x0000000000007548       0x3e ../../LUFA/Drivers/USB/Class/Host/StillImageClassHost.o
 
 .debug_frame    0x0000000000000000      0x830
  *(.debug_frame)
@@ -1269,23 +1270,23 @@ LOAD /usr/lib/gcc/avr/4.5.3/avr35/libgcc.a
  .debug_str     0x0000000000003bbf       0x38 ../../LUFA/Drivers/USB/Class/Host/StillImageClassHost.o
                                         0x100 (size before relaxing)
 
-.debug_loc      0x0000000000000000     0x457e
+.debug_loc      0x0000000000000000     0x45ea
  *(.debug_loc)
- .debug_loc     0x0000000000000000      0x4e2 USBtoSerial.o
- .debug_loc     0x00000000000004e2       0xd3 Descriptors.o
- .debug_loc     0x00000000000005b5      0x88f ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
- .debug_loc     0x0000000000000e44     0x1982 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
- .debug_loc     0x00000000000027c6      0x390 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
- .debug_loc     0x0000000000002b56      0x190 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
- .debug_loc     0x0000000000002ce6      0x2bc ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
- .debug_loc     0x0000000000002fa2      0x22a ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
- .debug_loc     0x00000000000031cc       0x27 ../../LUFA/Drivers/USB/Core/USBTask.o
- .debug_loc     0x00000000000031f3      0x16d ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
- .debug_loc     0x0000000000003360      0x52b ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
- .debug_loc     0x000000000000388b      0x249 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
- .debug_loc     0x0000000000003ad4      0x152 ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
- .debug_loc     0x0000000000003c26      0x1f6 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
- .debug_loc     0x0000000000003e1c      0x762 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
+ .debug_loc     0x0000000000000000      0x54e USBtoSerial.o
+ .debug_loc     0x000000000000054e       0xd3 Descriptors.o
+ .debug_loc     0x0000000000000621      0x88f ../../LUFA/Drivers/USB/Class/Common/HIDParser.o
+ .debug_loc     0x0000000000000eb0     0x1982 ../../LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o
+ .debug_loc     0x0000000000002832      0x390 ../../LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o
+ .debug_loc     0x0000000000002bc2      0x190 ../../LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o
+ .debug_loc     0x0000000000002d52      0x2bc ../../LUFA/Drivers/USB/Core/ConfigDescriptors.o
+ .debug_loc     0x000000000000300e      0x22a ../../LUFA/Drivers/USB/Core/DeviceStandardReq.o
+ .debug_loc     0x0000000000003238       0x27 ../../LUFA/Drivers/USB/Core/USBTask.o
+ .debug_loc     0x000000000000325f      0x16d ../../LUFA/Drivers/USB/Class/Device/AudioClassDevice.o
+ .debug_loc     0x00000000000033cc      0x52b ../../LUFA/Drivers/USB/Class/Device/CDCClassDevice.o
+ .debug_loc     0x00000000000038f7      0x249 ../../LUFA/Drivers/USB/Class/Device/HIDClassDevice.o
+ .debug_loc     0x0000000000003b40      0x152 ../../LUFA/Drivers/USB/Class/Device/MassStorageClassDevice.o
+ .debug_loc     0x0000000000003c92      0x1f6 ../../LUFA/Drivers/USB/Class/Device/MIDIClassDevice.o
+ .debug_loc     0x0000000000003e88      0x762 ../../LUFA/Drivers/USB/Class/Device/RNDISClassDevice.o
 
 .debug_macinfo
  *(.debug_macinfo)
index a4b535c62add03082aae0a1c418f6d20a2fa03cb..27eec7ba76830523820c66593a47321fd4eac5ff 100644 (file)
Binary files a/firmware/USBtoSerial.o and b/firmware/USBtoSerial.o differ
index 2260cc4ac50161b816338f609b9d20cebe660b39..87976f4f259a60af30ae039d136f605bd2dba732 100644 (file)
 0000045c T touchpad_init
 0000046c T touchpad_read
 0000047e T touchpad_set_abs_mode
-000004a6 T z_pressure
-000004bc T x_abs
-000004f8 T y_abs
+000004ba T z_pressure
+000004d0 T x_abs
 000004ff W __stack
-00000536 T Usb2SerialTask
-000005e8 T SetupHardware
-00000612 T EVENT_USB_Device_Connect
-00000614 T EVENT_USB_Device_Disconnect
-00000616 T EVENT_USB_Device_ConfigurationChanged
-0000061c T EVENT_USB_Device_ControlRequest
-00000622 T __vector_23
-00000676 T EVENT_CDC_Device_LineEncodingChanged
-00000736 T uart_putc
-00000746 T uart_puts
-0000076c T my_uitoa
-00000838 T main
-000008f6 T CALLBACK_USB_GetDescriptor
-00000950 T Endpoint_Write_Control_Stream_LE
-00000a04 T Endpoint_Write_Control_PStream_LE
-00000aba T Endpoint_ConfigureEndpoint_Prv
-00000b28 T Endpoint_ConfigureEndpointTable
-00000bb0 T Endpoint_ClearStatusStage
-00000bee T Endpoint_WaitUntilReady
-00000c54 T USB_ResetInterface
-00000cc4 T USB_Init
-00000cd6 T USB_INT_DisableAllInterrupts
-00000cdc T USB_INT_ClearAllInterrupts
-00000ce2 T __vector_11
-00000e2a T __vector_12
-00000ea0 T USB_Device_ProcessControlRequest
-00001162 W EVENT_USB_Device_Reset
-00001162 W EVENT_USB_Device_StartOfFrame
-00001162 W EVENT_USB_Device_Suspend
-00001162 W EVENT_USB_Device_WakeUp
-00001162 T USB_Event_Stub
-00001164 T USB_USBTask
-0000119a T CDC_Device_ProcessControlRequest
-000012f2 T CDC_Device_ConfigureEndpoints
-0000133a T CDC_Device_SendByte
-00001394 T CDC_Device_Flush
-000013ee T CDC_Device_USBTask
-0000141c T CDC_Device_ReceiveByte
-00001476 T CDC_Device_Event_Stub
-00001476 W EVENT_CDC_Device_BreakSent
-00001476 W EVENT_CDC_Device_ControLineStateChanged
-00001478 T __subsf3
-0000147a T __addsf3
-0000149c T __addsf3x
-00001542 T __cmpsf2
-00001542 T __eqsf2
-00001542 T __lesf2
-00001542 T __ltsf2
-00001542 T __nesf2
-0000154a T __divsf3
-00001564 T __divsf3x
-00001568 T __divsf3_pse
-0000161a T __fixunssfsi
-00001672 T __floatunsisf
-00001676 T __floatsisf
-000016ec T __fp_cmp
-00001734 T __fp_inf
-00001740 T __fp_nan
-00001746 T __fp_pscA
-00001754 T __fp_pscB
-00001762 T __fp_round
-00001784 T __fp_split3
-00001794 T __fp_splitA
-000017c8 T __fp_zero
-000017ca T __fp_szero
-000017d6 T __gesf2
-000017d6 T __gtsf2
-000017de T __udivmodsi4
-000017ea t __udivmodsi4_loop
-00001804 t __udivmodsi4_ep
-00001822 T _exit
-00001822 W exit
-00001824 t __stop_program
-00001826 A __data_load_start
-00001826 T _etext
-00001868 A __data_load_end
+0000050c T y_abs
+0000054a T decode_field
+000005d0 T Usb2SerialTask
+00000682 T SetupHardware
+000006ac T EVENT_USB_Device_Connect
+000006ae T EVENT_USB_Device_Disconnect
+000006b0 T EVENT_USB_Device_ConfigurationChanged
+000006b6 T EVENT_USB_Device_ControlRequest
+000006bc T __vector_23
+00000710 T EVENT_CDC_Device_LineEncodingChanged
+000007d0 T uart_putc
+000007e0 T uart_puts
+00000806 T main
+00000894 T CALLBACK_USB_GetDescriptor
+000008ee T Endpoint_Write_Control_Stream_LE
+000009a2 T Endpoint_Write_Control_PStream_LE
+00000a58 T Endpoint_ConfigureEndpoint_Prv
+00000ac6 T Endpoint_ConfigureEndpointTable
+00000b4e T Endpoint_ClearStatusStage
+00000b8c T Endpoint_WaitUntilReady
+00000bf2 T USB_ResetInterface
+00000c62 T USB_Init
+00000c74 T USB_INT_DisableAllInterrupts
+00000c7a T USB_INT_ClearAllInterrupts
+00000c80 T __vector_11
+00000dc8 T __vector_12
+00000e3e T USB_Device_ProcessControlRequest
+00001100 W EVENT_USB_Device_Reset
+00001100 W EVENT_USB_Device_StartOfFrame
+00001100 W EVENT_USB_Device_Suspend
+00001100 W EVENT_USB_Device_WakeUp
+00001100 T USB_Event_Stub
+00001102 T USB_USBTask
+00001138 T CDC_Device_ProcessControlRequest
+00001290 T CDC_Device_ConfigureEndpoints
+000012d8 T CDC_Device_SendByte
+00001332 T CDC_Device_Flush
+0000138c T CDC_Device_USBTask
+000013ba T CDC_Device_ReceiveByte
+00001414 T CDC_Device_Event_Stub
+00001414 W EVENT_CDC_Device_BreakSent
+00001414 W EVENT_CDC_Device_ControLineStateChanged
+00001416 T __subsf3
+00001418 T __addsf3
+0000143a T __addsf3x
+000014e0 T __cmpsf2
+000014e0 T __eqsf2
+000014e0 T __lesf2
+000014e0 T __ltsf2
+000014e0 T __nesf2
+000014e8 T __divsf3
+00001502 T __divsf3x
+00001506 T __divsf3_pse
+000015b8 T __fixunssfsi
+00001610 T __floatunsisf
+00001614 T __floatsisf
+0000168a T __fp_cmp
+000016d2 T __fp_inf
+000016de T __fp_nan
+000016e4 T __fp_pscA
+000016f2 T __fp_pscB
+00001700 T __fp_round
+00001722 T __fp_split3
+00001732 T __fp_splitA
+00001766 T __fp_zero
+00001768 T __fp_szero
+00001774 T __gesf2
+00001774 T __gtsf2
+0000177c T __udivmodhi4
+00001784 t __udivmodhi4_loop
+00001792 t __udivmodhi4_ep
+000017a4 T _exit
+000017a4 W exit
+000017a6 t __stop_program
+000017a8 A __data_load_start
+000017a8 T _etext
+000017f0 A __data_load_end
 00800100 D __data_start
-00800125 D VirtualSerial_CDC_Interface
-00800140 d CSWTCH.8
-00800142 b USBtoUSART_Buffer
-00800142 B __bss_start
-00800142 D __data_end
-00800142 D _edata
-0080014e b USBtoUSART_Buffer_Data
-008001ce b USARTtoUSB_Buffer
-008001da b USARTtoUSB_Buffer_Data
-0080025a b y_mem.3984
-0080025c b x_mem.3983
-0080025e b last_pressure.3978
-0080025f B adb_werte
-00800268 B t0ovfcount
-00800269 B adb_data_length
-0080026a B USB_Device_ConfigurationNumber
-0080026b B USB_Device_CurrentlySelfPowered
-0080026c B USB_Device_RemoteWakeupEnabled
-0080026d B USB_IsInitialized
-0080026e B USB_ControlRequest
-00800276 B __bss_end
-00800276 N _end
+0080012a D VirtualSerial_CDC_Interface
+00800145 d CSWTCH.8
+00800148 b USBtoUSART_Buffer
+00800148 B __bss_start
+00800148 D __data_end
+00800148 D _edata
+00800154 b USBtoUSART_Buffer_Data
+008001d4 b USARTtoUSB_Buffer
+008001e0 b USARTtoUSB_Buffer_Data
+00800260 b y_mem.3984
+00800262 b x_mem.3983
+00800264 b last_pressure.3978
+00800265 B adb_werte
+0080026e B t0ovfcount
+0080026f B adb_data_length
+00800270 B USB_Device_ConfigurationNumber
+00800271 B USB_Device_CurrentlySelfPowered
+00800272 B USB_Device_RemoteWakeupEnabled
+00800273 B USB_IsInitialized
+00800274 B USB_ControlRequest
+0080027c B __bss_end
+0080027c N _end
 00810000 N __eeprom_end