25

There are many documents (e.g. this) describing the twist on two-drive floppy disk cable on IBM PC compatibles. While this is not the most proud example of clean hardware design, how much of this was originally planned in advance, or was it just improvised on the go?

Having the desired pins aligned on the pin out nicely enough to make this happen suggests, that this was intentional at least to some degree.

5
  • 9
    It's only not clean looking, IMO, because its a ribbon cable, many cables swap wires like this. – crasic Dec 6 '20 at 5:23
  • 23
    I am not sure that 'hack' and 'intended design' are opposites. – UncleBod Dec 6 '20 at 8:05
  • 10
    @UncleBod True. Or better, the meaning of 'hack' is rather fuzzy, as 'hack' can describe a clever design - which is intended - or some after market use, not planned by it's original manufacturer. Which then again is still intended by the one applying the 'hack'. – Raffzahn Dec 6 '20 at 13:43
  • 2
    Is this the same twist being referred to? superuser.com/questions/849079/… – StayOnTarget Dec 6 '20 at 17:12
  • @UncleBod: I am pretty sure they are not. – Dercsár Jan 7 at 18:03
37

This was a good piece of production engineering.

IBM expected to sell lots of twin-floppy PCs, even after the launch of the XT (personal experience in a UK reseller in late 1984).

To assemble a twin-floppy PC and have the drives respond correctly to the drive select wires in the cable, there are four choices:

  1. Pay the drive supplier to jumper "left" and "right" drives, and keep them separate in the supply chain right up to final assembly.
  2. Introduce a jumpering operation for the "right" drives and a separate supply to the assembly station.
  3. Increase the time and skill level of the assembly position in changing the jumper at final assembly.
  4. Pay the cable supplier to make up a twisted cable.

There is no question that option 4 will give the best results (cost, time and quality) in the IBM assembly plant. If the cable supplier can be persuaded to make the twist at a reasonable price and with good quality, it's an excellent solution which also saves time and effort in field service.

7
  • 2
    This answer misses completely the point that the connector design was made way before the first PC, so selling or not selling floppies while an XT could not have been a point. More important, it makes it look as if it was a simple cable issue, when it was about the connector layout. – Raffzahn Dec 6 '20 at 13:36
  • 3
    Jumper selection pre-dated the PC and was how other systems using these drivers operated. IBM's "hack" was to use the cable twist so that all drivers could be jumpered as the 2nd drive. – Chris Stratton Dec 6 '20 at 18:19
  • 2
    Another option would have been to place two floppy-drive connectors on the controller, labeled "A" and "B", and use a separate ribbon cable for each. – supercat Dec 6 '20 at 23:12
  • @supercat you are correct. More expensive and slower to assemble, but potentially as accurate if the cables are of different lengths and attached as a pair by the supplier. – grahamj42 Dec 7 '20 at 6:20
  • @grahamj42: The cables can be made the same length, but unfolded by different amounts (assuming they're zig-zag folded when shipped). On machines with two half-height drives stacked right next to each other, the amount of cable between the drives could be short, but on machines with two full height drives side by side, the amount of cable between drives would be comparable to the amount of cable between the controller card and each drive. – supercat Dec 7 '20 at 17:15
17

There seems to be some confusion about how this worked clouding the categorization of what to call it.

Let's compare the interfaces between how Shugart designated signals at the drive (and how other makers used them) vs how IBM re-designated them at the controller in order to support the twist idea. (I've used A and B on the IBM version to reduce confusion)

pin   Shugart      IBM before flip      IBM after flip   "2nd drive" interprets
10    /DS1         /MOTOR_A             /MOTOR_B         ignored
12    /DS2         /SELECT_B            /SELECT_A        /DS
14    /DS3         /SELECT_A            /SELECT_B        ignored
16    /MOTOR       /MOTOR_B             /MOTOR_A         /MOTOR

IBM then jumpered all drives to use /DS2 on pin 12. And being standard Shugart drives (or equivalent) they expected their motor enable on pin 16 just as Shugart intended. So you have drives that, regardless of their actual role, expect one signal on pin 12 and one on pin 16, and don't pay any attention to what is going on at pins 10 or 14.

As such, the pre-twist drive connector becomes DOS drive B, presenting the original Shugart /DS2 select signal on pin 12, and the motor enable on pin 16, all in the very ordinary vanilla way (except that the BIOS should only set the bit to drive the traditional motor signal when using drive B)

But after the twist, the signal on the motor enable is what Shugart would call /DS1, but IBM is instead cleverly using as a "new" motor enable A. And the select signal arriving on pin 14, would be that which originated on the controller end pin Shugart would call /DS3, but which IBM is using as drive enable A.

Given that this scheme works with standard unmodified Shugart-interface drives, I'd categorize it as a clever "hack" or bit of manufacturing engineering. IBM changed only their controller card (which already had to be customized to match their bus design) and cable, and just bought the drives off the shelf.

You can see the manual for Shugart's longer-predating-the-IBM-PC original 1976 single-sided SA400 drive which originated this interface (as an evolution of the earlier 8-inch drive's interface) here. When Shugart extended the scheme to double sided drives such as the SA450 (still before the IBM-PC), they put four more places on the far end of the connector adding a side select and a "spare" and corresponding grounds, but didn't change the part of the interface used for drive selection and motor control. Regardless if IBM's drives had their logo molded into the front plastic, the technical reality is that they were and remain interchangeable with standard Shugart interface drives like the SA450. Peel the four wires that Shugart had previously added to create their 34-pin double-sided interface off the cable, and even getting an old 30-pin 1976 SA400 to work would have been merely a matter of software support.

6
  • I don't suppose you know why IBM decided to designate pins 10/14 for A and 12/16 for B instead of the other way around? – Neil Dec 7 '20 at 0:57
  • @Neil if you look at the above chart, the 2nd drive or B works the way Shugart intended. But the first drive is a complete remix of Shugart's signals, since select 1 is actually a motor signal and select 3 activates drive A. It seems like they went with having one work the normal way rather than both be weird. I don't think having the cable run over across the power supply to the 2nd bay and then back to the first as they did was really the shortest path. Ultimately software could have treated either drive or cable position as drive A. – Chris Stratton Dec 7 '20 at 3:00
  • 3
    Both drives on one cable explains it nicely; thanks for reminding me. Obviously you want the middle drive to be the untwisted drive, as there's no point in having unnecessary extra twists in the cable. But you also want to be able to use the cable for a single drive, in which case you want that drive to be at the end of the cable. This means that the first or single drive has to be the one with the twist. – Neil Dec 7 '20 at 11:07
  • @Neil so if I understand correctly, one could disassemble a floppy cable, put a twist in BEFORE the middle connector and leave the twist after, and the middle would become the 1st (A) drive and the end would become the 2nd (B) drive? Now I want to try this. Just need to dig an old computer out of my storage unit... across the country... 😂 – Doktor J Dec 7 '20 at 18:34
  • 1
    @DoktorJ At a computerclub we had to fabricate a doubletwisted cable already due to some Floppy issues to swap A and B. Was since we had a 5.25 and 3.5 inch connector on the cable and 5.25 was B and our system (Win7) only supported a A Drive so they had to be swapped. Was a data rescue off a old floppy. Funfact: Windows 7 has issues showing dates around 1970 in Explorer – masterX244 Dec 8 '20 at 11:50
10

Having the desired pins aligned on the pin out nicely enough to make this happen suggests, that this was intentional at least to some degree.

Since the pinout is an IBM one, made especially for the IBM PC (*1), and this twisted cable was used from the very first PC model, it's pretty clear that it was done on purpose.


Interlude:

hack or intended design?

While 'hack' is a rather fuzzy term, used for a variety of assignments - including great ideas one would not have thought of - it is exclusive tied to modifying something after market to enable a new usage, not planned by it's original manufacturer.


Keeping that in mind it's clear that the twisted cable is part of the PC design, as it is based on the floppy connector pinout which the PC engineers did device for theit machine. The Connector used is not a standard one used before, but on purpose made to enable this 'twist'. Standard (Shugart) drives could not be used with this connector. And a standard bus connector does not allow this 'trick' as it holds the signals in different order.


*1 - The original Shugart bus had only one motor signal.

6
  • 4
    That something was done on purpose has little to do with answering the question of whether or not it was a hack. :-) – Cody Gray Dec 6 '20 at 7:15
  • 1
    @CodyGray It does however answer the title: "hack or intended design". If we have to pick, it's the latter. If we don't have to pick, it can still be both. – Mast Dec 6 '20 at 9:47
  • The pinout of the drive was not designed by IBM, and only has one motor pin. What IBM did was create a controller card with a variant pinout to enable the twist. That includes using what would be a drive select pin in the Shugart spec as what will become the motor enable when twisted into place. But this is IBM's hack on the drive interface, not a change to the interface of the drive. We moved drives from scrapped CP/M systems into PC's just by jumpering them all as the 2nd drive. – Chris Stratton Dec 6 '20 at 18:33
  • Part of the confusion may be that the controller card is actually driving what Shugart would call DS2 and DS3 at the source of the cable as the drive selects; DS1 is being driven with what will become the motor select after twisting. – Chris Stratton Dec 6 '20 at 18:38
  • 4
    No, that's incorrect. The drives are standard, they are not custom, and you can interchange drives between IBM and other contemporary systems. That was really the whole point of the PC project - buy as much as they could off the shelf. No modification to the drive was even needed, just clever design at the controller end where 3 selects and 1 motor were instead driven as 2 selects (in a different order) and 2 motors, then twisted to present one set or the other where the standard, unmodified drives expect. – Chris Stratton Dec 6 '20 at 18:45
8

Definitely a hack. A systems with floppy disk drives had separate selection wires in the connection cable, where one of them was to choose between on of 2 or 4 drives connected in parallel. There was a jumper on the drive to activate one of these wires resulting in an address.

Setting up this jumper was somewhat error prone and also extra work. The trend was to make more and more components of the PC self configuring. With the twist all drives could be jumpered on select 1, and a different wire would connect to that.

Other examples of self configuration are the PCI bus for addresses and interrupts, and USB for peripherals.

5
  • I have never had a system with more than two floppy drives, but I recall having two floppy connectors on some systems (maybe 486 based, I/O as a separate extension card), I always thought there would be only two drives per cable - similar to IDE. So if you wanted to have more than two floppy drives, you'd plug third (and fourth) to this secondary connector. – tuomas Dec 5 '20 at 20:16
  • 7
    @tuomas For IBM PCs it was always only two drives per cable. – Raffzahn Dec 5 '20 at 20:25
  • 2
    @tuomas The original IBM PC floppy controller card was built for two internal floppy drives (signals available on a 34-contact edge connector) and two external floppy drives (signals available on the D-type 37-pin connector on the bracket). DS0/DS1 appeared on the internal cable, DS2/DS3 on the external cable. – Michael Karcher Dec 5 '20 at 21:41
  • 1
    This answer starts out very good. But I don't think PCI and USB fit in - those are much later developments. – manassehkatz-Moving 2 Codidact Dec 5 '20 at 23:18
  • 4
    Another example would be IDE (ie. Parallel ATA), where, from what I saw, people migrated from jumpering the drives to leaving them jumpered to CS (Cable Select) over time. – ssokolow Dec 6 '20 at 6:49
-2

It's intended. The outbound cable at the motherboard is for a slave drive B. But it has settings for the master drive A as well. So to make all the drives alike, you have a twist in the cable. They all come like that.

Hard drives sort the issue with a jumper at the back.

There's a similar device with the PS/2 plug, which uses five of the six pins. If one switches the mouse into the unused chanel, you can plug both keyboard and mouse into a single socket, as is done on Laptops. I have recently acquired a keyboard with two tails (mouse + keyboard), and it can daisychain the real mouse as well.

Edit

The hardware arrangement supposes at the front of the box, that drive A: is above drive B:. A cable without any kinks in it would go A: to B: to the motherboard, providing a 3½ and 5¼ connector before and after the twist.

So a twist is needed between A: and B: if these are to be identical kinds of drive. There is no twist needed between B: and the motherboard.

As time goes by, you can drop various connectors, if you don't plan to support that kind of drive. This is done simply by not providing headers on the cable.

Because a direct cable remains between B: and the motherboard, dropping B: means that the connectors below the twist are dropped, and the one above the twist (aka A:) is set.

It is possible to swap the drives in software, but the balance of things is that one gets better assembly and running if one reduces the amount of user fiddling: ie use cables that set the identical floppies to A: and B:. A is above the twist, B is below.

Likewise, swapped cables allow one to use things like Null modems (which are a serial or parellel cable, with two 'computer' ends, and a twist in the middle.)

1
  • 3
    You completely missed the point of the question. – dirkt Dec 7 '20 at 13:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.