Back again to annoy the community.
This time, I'm puzzled about my OS kernel loader's ReadSector code.
It uses INT13/AH=02 to read a sector from a FAT12 floppy.
The problem occurs when I make my kernel image file too big. 32 kB's or below works fine, but when I get to 50 kB's INT13 starts to fail. It loads a whole lot of sectors, but eventually fails somewhere in the hundred-ish (it changes from time to time, as I modify my kernel image, but as long as the image file remains fairly unmodified it's the same LBA giving me the problem).
I used a little code to bypass the failed LBA index, and then it works fine again for another couple of hundred-ish sectors and then WHAM! again the error.
The ReadSector function is very standard - pretty much what you find in any bootloader example that uses INT13 (eg LBA to CHS, INT13 1 sector at a time, check CF, 5 retries and a disk reset between each one, then the next sector).
I am, like so many times before, puzzled. This time, however, I seriously doubt it's my coding, since it has proved its integrity multiple times,