Pretty interesting behaviour, but I don't think you can claim this is a fault in the controller. The contract was being invalidated when he wrote invalid data to a register. After that, anything may happen.<p>Today, most hardware has some protection against abuse, but in the days of the BBC micro it was common for hardware and os to completely trust the software. There were plenty of storys of damaged monitors because of invalid timing parameters.<p>One of my own storys, and I'm a bit hazy so some details are probably wrong: We found an old computer in a university dumpster some night, and decided to mess with the floppy drive. More beer than common sense around. There was some way to tell the hardware which track to read/write, with sane values from 0 to 79. But it was a byte , we could go to 255, so we decided to go up up up!<p>Well, the drive did exactly as commanded. 80 - 85 worked quite well, except the floppy wasn't guaranteed to be magnetically coated. But once we pushed it too far, the read head went literally over the edge: It jumped off the axle, dropped on the spinning disk below, got a serious yank, and the tiny wires got snapped off.<p>All of this with a single x86 out instruction, I think in dos 3.x debug. The OS was not stopping you if you did something stupid, there was no hardware protection or anything.
Fascinating read, although I take issue with its title that implies that it's a bug in the chip. Maybe a bug in the author's code (when he wrote wrong values to the register), definitely not a bug in the chip but a feature. If you write undocumented values into a register, undocumented stuff happens. A lot of ICs have undocumented test modes that are used by the manufacturer.
Good reason to get a Gotek floppy emulator and work with copies instead. With the open source FlashFloppy software, they work great, and are pretty cheap.