It’s either the drive’s PCB or the SATA controller on the motherboard that is the problem. I would first try the drive in another machine. In fact I see several Internet posts about similar problems. Most (all?) seem to be about WD drives, and so far the most common motherboard chipset appears to be Intel’s 945G.
I’m still looking, though.
Edit: I found several posts that confirm that the problem is a motherboard issue. All appear to have Intel chipsets, not just the 945G, but all flavours of ICH I/O controller hubs. I haven’t found any AMD chipset problems. So it does appear that WD’s drives and Intel’s SATA controllers don’t always get along.
BTW, the ASCII codes for “B~” are 0x427E, which differs from “Bz” in 1 bit.
I’m wondering whether this pattern is somehow related to SATA rate autonegotiation.
AIUI, when the drive powers up, it attempts to negotiate a connection with the SATA controller. I suspect it does this by transmitting a repeating pattern of bits. The SATA controller might then try three different clock rates (6Gbps, 3Gbps, 1.5Gbps) until it succeeds in reading the data without error. The HDD and controller then agree on this speed. Or perhaps they start at 1.5Gbps, establish a connection, and then try for a higher speed.
The BIOS interrogates each drive by issuing an ATA Identify Device command. Each drive responds with a block of 512 bytes containing its model number, serial number, firmware version, capacity, etc. My theory is that the BIOS may be misinterpreting the autonegotiation bit pattern as Identify Device data. I don’t know if this is even possible, but I’m unable to find a free downloadable SATA standards document that would help me understand the protocol.