I have an OEM application that uses Sandisk CF cards. The latest batch failed in the application, but I found that if I absolutely forced it to reformat from scratch, I could get the cards to work. Further investigation found that on the original cards, the boot sector (0) did NOT begin with the traditional “0xEB 0x3C 0x90” jump instruction. Instead, that information was located at sector 1, 512 bytes later. Windows XP does not appear to have any issues with this format, but I’ve been unable to find any reference on the Internet that supports this format. I’d like to know a guaranteed way to locate this information properly from my source application.
It seems an interesting side note that if I tell Windows XP to format the card, it retains this structure wherein sector 1 contains the jump instruction. But if I force raw writes to the card to overwrite the formatting, and THEN tell Windows XP to format the card, it puts the jump instruction in sector 0.
Any clues as to how I can definitively find the boot sector and BPB structure when it’s located somewhere other than sector 0 ?