+                               /* Read the next EEPROM byte into the endpoint */\r
+                               WriteNextResponseByte(eeprom_read_byte((uint8_t*)(uint16_t)(CurrAddress >> 1)));\r
+\r
+                               /* Increment the address counter after use */\r
+                               CurrAddress += 2;\r
+                       }                       \r
+               }\r
+       }\r
+       else\r
+       {\r
+               uint32_t PageStartAddress = CurrAddress;\r
+\r
+               if (MemoryType == 'F')\r
+               {\r
+                       boot_page_erase(PageStartAddress);\r
+                       boot_spm_busy_wait();\r
+               }\r
+               \r
+               while (BlockSize--)\r
+               {\r
+                       if (MemoryType == 'F')\r
+                       {       \r
+                               /* If both bytes in current word have been written, increment the address counter */\r
+                               if (HighByte)\r