I've been looking through documentation on The Sinclair/Amstrad Spectrum +3 which was the only Spectrum that came with a built-in floppy disk drive. The disk format was based on The Amstrad CPC and PCW disk format, which was based on CP/M.
I'm struggling with some details of the boot process.
I know there's an optional boot block on side 0, track 0, sector 1, at offset $0010
, right after the 16-byte 'disk specification'.
But since this block is optional, there must be a way for the system to detect whether it's present or not.
I know that in some disks the file directory will be here instead, and starting at offset $0000
without a disk specification.
Some disk images seem to be of protected disks with purposely confusing sector layouts that must've made it harder to pirate them back in the '80s, which makes it challenging to figure out by looking at the raw data.
So is there somewhere on the disk layout that I'm missing that indicates to the OS that a boot sector is there or not? Or could it possibly all hinge on that one-byte checksum which seems like it could easily give false positives? If so, is the checksum just a sum of the bytes of the boot sector modulo 256?
If it makes a difference I'm using DSK and EDSK format disk images.