Hm, I've read your fist post again and now I think I misunderstood your question. So you already have a DOS-compatible format on this HDD? With 512-byte sectors, which was done with WDFMT util? But you want to have 256 byte sectors instead?
In that case WD1007-WAH is not going to help you much because I'm pretty sure all the code, be it WDFMT or ROM extension, will be hard-coded to 512 bytes. Since this is what IBM PC DOS wants.
Using Teensy or some other device (like RPi with 5V level shifter) would work, or at the very least you would be able to issue the bytes per sector command and see what the result it, is it supported or not. But that alone doesn't really help you unless you have, or build it yourself, a controller capable of working with ESDI drives. The HDD will format the track and put in sector headers on it (assuming the command works) but that's it. You now need hardware to read and write the sectors, and that is timing critical like in MFM/RLL mode, and you need to have some sort of CRC or ECC at the end of the sector to be able to at least verify the data - or repair it. Otherwise you'll never know if the data you read from HDD is actually correct or not. This is not tested by the HDD, it just spits out the unformatted sector bits as-is.
I don't know what particular controller chip the WD1007-WAH uses. Perhaps it's well documented? Then you could write some code on PC rather than use your own hardware like Teensy, and that would actually let you LLF, read and write the HDD - if the chip itself supports sector sizes other than 512 bytes, which it might. You don't have to wory about read/write timings, you just select if you want 4 or 7 bytes ECC and add 256 to it, and you have your minimal unformatted sector size.
EDIT: Forgot the sector data markers, and headers. So actually you'll need quite a lot more than 256 bytes plus ECC. Simple query or command issue can be done with software and basic HW like Teensy but proper read/write would need PLD/FPGA or preferably a dedicated ASIC.
Keep in mind that each controller chip does things differently. If you LLF it with WD chip it will not work with other ones. Some chips might have CRC and ECC. Different polynomials. Maybe even different bit order. That's basically the same problem as with MFM/RLL.
One last idea, the ESDI uses bit clock. If you were to try an build your own controller hardware then, if the HDD doesn't support shorter sectors, you have 2 choices:
- Use 512 byte sectors but only store 256 bytes in them. The rest is unused. Tons of wasted platter space but it will work.
- Use bit doubling, store same bit 2 times. Again you loose half of the HDD space but get longer bit pulses on read, which would be easier to work with.
I never did any low-level work on ESDI (I have some experience with MFM and RLL). I'm not even sure how to work with the optional SECTOR/BYTE signals. I hope there is a jumper on the HDD to configure if for one or the other? Because for your own hardware you'd want it set to SECTOR output. BYTE clock is kinda useless in this scenario.