When floppy disk copy protection was a thing
Back in the day, software didn’t come on encrypted, online, distributed marketplaces, they came on humble floppy disks. This made them susceptible to copying. To fight this, developers started using all kinds of interesting tricks, which hackers would try to break. Thus started a nearly decade-long war of hackers and copy protection schemes.
GloriousCow started a series of investigations on historical floppy protection schemes on his blog. His site is amazing – he makes his own tools as well as shows the assembly code and has great diagrams. He covers things like EliaShim CodeSafe, XEMAG Xelok, Vault Prolok, EA Interlock, Softguard Superlok, Formaster Copy-Lock, and even got an interview with Robert McQuaid who made the protection circumventing CopyWrite software.
I particularly like his article about Copy-Lock mechanism used by Kings Quest. Copy-Lock employed several tricks such as sectors with non-standard sizes and putting purposefully incorrect CRC values on tracks to make standard copying incorrect.
In this case, Copy-Lock used a mechanism in which sector 1 on track 6 was intentionally written as only 256 bytes (instead of 512 bytes), with a 256-byte blank section to fill the gap. Additionally, the CRC was also altered to make a normal read think it was invalid. A normal INT 13h disk read would search and fail the read and CRC check.
CopyLock worked by bypassing the BIOS and talking directly to the disk controller. It would issue an INT 13h read on sector 1 track 6 that it knew would fail. This would place the head on the right track. The code would then tell the floppy controller directly to read track – and dump all 512 bytes. It was looking for the special byte 0xF7 as the final byte of that supposedly empty section of the track. The key is that it is not possible to create invalid tracks with invalid CRC’s like this using a standard IBM PC floppy controller. Copy-Lock created the special hardware that could write in this way and sold that, along with the checking code, as their solution.
His article has all the assembly code – which is really awesome.


Links:
- https://martypc.blogspot.com/2024/08/pc-floppy-copy-protection-formaster.html
- https://hackaday.com/2019/06/25/copy-protection-in-the-80s-showcased-by-classic-game-dungeon-master/
- https://hackaday.com/2024/08/27/exploring-pc-floppy-protection-formaster-copy-lock/
- https://hackaday.com/2023/09/15/preserving-floppy-disks/