There is a twist of a few lines in this floppy cable. Why? What is the purpose of it?
Stack Exchange network consists of 181 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.Visit Stack Exchange
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.Sign up to join this community
if this is a floppy cable that twist serves to select how the first (before twist) and second drive (after the twist) will be A:or B:
You will also notice that there is an odd "twist" in the floppy cable, located between the two pairs of connectors intended for the floppy drives. Despite the fact that this appears to be a "hack" (well, it really is a hack), this is in fact the correct construction of a standard floppy interface cable. There are some cables that do not have the twist, and it is these that are actually non-standard! What the twist does it to change the connection of the drive on the far end of the twist so that it is different than the drive before the twist. This is done to cause the drive at the end of the cable to appear as A: to the system and the one in the middle to be as B:.
On the PC floppy-drive cable, one of the wires is activated when a request is made to access drive A:, and another is activated when a request is made to access drive B:. Additionally, one wire is activated when the drive A: motor should turn on, while the other does likewise for drive B: (obviously when code is going to want to access drive A: it's going to turn on the motor, but having separate motor-control wires will mean that code which wants to access drive A: now but will be wanting to access drive B: again can turn on both motors). While it would have been possible to use jumpers on each drive to indicate whether it should respond to the first or second set of wires, standard practice has been to have all drives configured to respond to the drive-select and motor-start wires associated with drive B:, but then have a cable twisted between the two drive connectors so that the drive attached to the far-end connector will see the drive B: select wire when the controller is activating the drive A: wire.
While it might seem a little backward to have the drives respond to the drive B: wires in the absence of a twist, doing things that way makes it possible to use the full length of the cable when connecting a single drive A:, without requiring that the cable be twisted both before and after the middle connector.
The drive before the twist will be drive B while the one on the end will be A. This way, there is no need to "configure" the drives which drive (A or B) are they going to be and what they should listen to. They can be configured identically and the twist will swap the controlling input for them.
Or quoting sawdust, from this comment:
The cable twist allows both floppy drives to be configured identically (for drive selection) when installed (for manufacturing convenience), yet operationally, can be uniquely selected as either the first drive or the second drive based on cable position.
The twisted pins are from pin 10 to pin 16.
Without the twist, we have to configure the drives and set them to be drive A for one and B for the other, because when the motherboard selects for example drive A, both drives would receive the select signal if they are both configured as a drive A. To avoid this, we should setup them by jumpers or by hard-wiring their role so there would be a drive set to be drive A that would listen to signals on the select A wire, while the other drive would be drive B that would listen to signals in select B.
This is totally doable, but we don't want to mess with the setting of the drives, just want to throw them into the PC case and plug in the cables.
Let's say both drives are hard-wired to be drive B. Now we don't have to setup them, but they both listened to the select B signal, while the motherboard would still want to send a signal to select A to select drive A. Here comes the twist! After the first drive, we twist the select cables so the drive A (that is still a hard-wired drive B) will listen to the select A controls, because we connected the select A pin to its select B pin (the only pin it listens to).
Now the drive before the twist will work as a drive B listening to select B signals, while the drive after the twist will work as drive A listening to select A signals. They're both hard-wired drive Bs that listen to their select B pin, but for one drive we connected the select A pin to its select B so the motherboard can control it through the select A bus.
The pins are in fact "Drive Select A", "Drive Select B", "Motor Enable A", and "Motor Enable B". The twist swaps Drive Select A<->B (pins 14 and 12, respectively) and Motor Enable A<->B (pins 10 and 16, respectively). All are outputs on the floppy controller and inputs on the drives.
The rest of the pins (read and write data, stepper motor control, head select, etc.) are bussed in the normal fashion, which is why the drive select pins are so critical. A drive has to ignore all input and produce no output when it's not selected
While hard-wired drives are usually a drive B, there is the chance to be a drive A as said by Tonny here:
I once had a whole afternoon of entertainment trying to figure out why a drive which came from a working system wouldn't work in another computer... It turned out to be hardwired for A and the original computer used a normal cable, but had the signals twisted on the motherboard itself!
Also, please note what Michael Hampton wrote here:
Certain non-PC-compatible systems (like the Radio Shack Color Computer) did actually use floppies without the cable twist, but required manually setting the jumpers, and could indeed use four drives at once. While this hack allows for the end user to not have to mess with jumpers, it also restricts the system to two floppy drives.
IBM made the kludge to allow floppy drives (in mainframes) to be changed without need for jumpers. There is also a little cut in most cables to prevent more than one drive from running at the same time - reducing the motor select signals available on the cable. The original spec IBM worked from (the drive mfg's standard) had two cables allowing 4 drives. Their cheap power supplies couldn't handle more than one drive at a time so the hack was done. The cable lunacy carried over to the PC market and became a defacto standard. Later systems could order drives in the BIOS and had no need to "sequence" floppy access. God, I feel old.
Long ago, I was a hardware manufacturer. When the 5.25" floppy drive came out, there were several different types of interface and thus cable connections and these all differed from not only each other but also from the cabling of the 8" drive standard originally developed by IBM. The Shugart SA400 5.25" SS 35T drive was so cheap and popular that it quickly became one of the most popular minifloppies out there and thus it's connector/interface quickly became a defacto standard for the industry. Up to four drives were supported and each drive had a set of four jumpers that allowed the drive to be configured as drive 0, 1, 2 or 3 (some manufacturers used 1,2,3 or 4). Rather than deal with jumper settings, many manufacturers of computer equipment putchased drives that were preconfigured as a certain drive, such as drive 2 and altered the cable to provide drive select. This allowed the equipment to be quickly assembled at the factory without worry of configuration errors. It was pretty much plug-n-play before it had that name. Tandy for instance had their drives set to respond as all four drives and simply pulled three of the four select pins from the connector on the cable. When IBM introduced the PC, all of their drives were preconfigured as drive 2 ( drive b) and drive select was accomplished by the cable twist. Attaching the drive before the twist thus makes it drive b and attaching the drive after the twist makes it drive a... this was therefore just another form of cable select. Hope this is useful.
Note: This was posted by TheLittleEngineers as an edit to the question. To save his reply I post it as a community wiki answer on his behalf.