+ uint8_t BlockBuffer[DiskCapacity.BlockSize];\r
+\r
+ if (MS_Host_ReadDeviceBlocks(&FlashDisk_MS_Interface, 0, 0x00000000, 1, DiskCapacity.BlockSize, BlockBuffer))\r
+ {\r
+ printf("Error reading device block.\r\n");\r
+ LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
+ USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
+ break;\r
+ }\r
+ \r
+ printf("\r\nContents of first block:\r\n");\r
+\r
+ for (uint16_t Chunk = 0; Chunk < (DiskCapacity.BlockSize >> 4); Chunk++)\r
+ {\r
+ uint8_t* ChunkPtr = &BlockBuffer[Chunk << 4];\r
+ \r
+ /* Print out the 16 bytes of the chunk in HEX format */\r
+ for (uint8_t ByteOffset = 0; ByteOffset < (1 << 4); ByteOffset++)\r
+ {\r
+ char CurrByte = *(ChunkPtr + ByteOffset);\r
+ printf_P(PSTR("%.2X "), CurrByte);\r
+ }\r
+ \r
+ printf(" ");\r
+\r
+ /* Print out the 16 bytes of the chunk in ASCII format */\r
+ for (uint8_t ByteOffset = 0; ByteOffset < (1 << 4); ByteOffset++)\r
+ {\r
+ char CurrByte = *(ChunkPtr + ByteOffset);\r
+ putchar(isprint(CurrByte) ? CurrByte : '.');\r
+ }\r
+ \r
+ printf("\r\n");\r
+ }\r
+\r