In the early days of personal computers, even before the IBM PC achieved supremacy, there was a standardized data-transfer protocol known as "RS-232". It was a "serial" data connection, and, depending on the software and hardware, it could transmit data anywhere from something like 300 bits per second
to (eventually) something like 56,000 bits per second. Nowadays USB connections are the most popular standard, and, although still serial (one bit at a time) can transmit many megabits per second.
Anyway, in those early days I managed to acquire several inexpensive computers and other hardware, such as printers. It is kind of funny how printer connections went from RS-232 to "parallel" connectors (could transmit 8 bits simultaneously on 8 separate wires), because parallel was faster than serial, and now printers are using USB (serial again).
It also happened that at least three different types of RS-232 connectors were in common use in the early days. This was most likely caused by vendors who wanted to "lock in" their customers. So there were 25-pin connectors, 9-pin connectors, and even 4-pin connectors. The RS-232 protocol really only needed 2 signal wires, one being an input and one being an output, plus a ground wire.
It didn't take long for people to sell "conversion cables" that had one type of RS-232 connector on one end, and a different type on the other end. Vendor lock-in is always stupid. The cables came in two general types. One type was used to connect a computer to a printer or other device that had an RS-232 connector. The other type of cable was used to connect one computer to another computer. The difference was that the input and output wires had to be switched, so that the output of each computer fed the input of the other computer --it was called a "null modem cable".
Anyway, so I had this bunch of hardware, and I wanted an efficient way to connect the various RS-232 ports, without constantly plugging and unplugging cables.
I went to Radio Shack and bought 18 (yes, eighteen) rotary switches. Each switch was a "two-pole" "six-position" type. That means it could take 2 separate signal wires, and connect them to any of 6 different circuits. I also obtained a suitable box for mounting the switches, in 3 rows of 6. Alongside the box were 6 RS-232 "input" connections, and 6 RS-232 "output" connections. Some of the connections were ordinary sockets that regular cables could be plugged into; some of the connections were 2-meter wires with RS-232 connectors on the ends.
Then I soldered more than 100 wires inside the guts of that box, connecting everything to achieve my Idea. Here's an identification scheme for the descriptions that follow:
O) 1 2 3 4 5 6 (RS-232 outputs)
C) 1 2 3 4 5 6 (3rd row of switches)
B) 1 2 3 4 5 6 (2nd row of switches)
A) 1 2 3 4 5 6 (1st row of switches)
I) 1 2 3 4 5 6 (RS-232 inputs)
Remember each switch essentially has 2 input wires and 6 pairs of output wires. So, the 2 key signal wires at Input I1 were connected to the inputs of Switch A1; the 2 key signal wires at Input I2 were connected to the inputs of Switch A2, and so on. Also, the RS-232 Outputs were connected similarly; the two key signal wires at Output O1 were connected to the inputs of Switch C1, and so on.
Now for the details of Switch A1. The first of its 6 ouputs were connected to the inputs of Switch B1. But the other 5 outputs were connected to certain **outputs** of Switches A2 through A6. More on this in a bit.
Regarding Switch A2, the first of its 6 outputs was connected to an output of Switch A1 (as just stated above). The second output of Switch A2 was connected to the inputs of Switch B2. And the other 4 outputs of Switch A2 were connected to certain outputs of Switches A3 through A6.
For Switch A3, its first output was connected to A1 and its second output was connected to A2, and its third output was connected to B3, and its other 3 outputs were connected to Switches A4 through A6.
The overall pattern of connections for that first row of switches should now be clear. The one thing I didn't say was that each connection between these switches was the swapped-wire type, so that if a computer was plugged into Input I2, and another was plugged into I3, and Switch A2 was rotated to "point" at A3, and also A3 was rotated to "point" at A2, then the two computers would be connected in null-modem fashion.
So, just that first row of switches enabled up to 6 computers to be connected, and just by rotating switches appropriately, any pair of the 6 (even 3 different pairs simultaneously) could be connected null-modem fashion, for direct data transfer between the computers. No cable-shifting needed!
Now, about those **other** two rows of switches...
As mentioned, each switch in Row A had one connection to the input lines of one switch in Row B. The 6 pairs of output lines of Switch B1 were connected to C1 through C6. The 6 pairs of output lines of B2 were also connected to C1 through C6. And so on.
So, a computer connected to RS-232 Input I2 could have Switch A2 rotated so that it pointed at Switch B2. Since Switch B2 received the signal wires on its input lines, it could switch the signal to any of the Row C switches. Let's say it was rotated to point at C1. C1 is connected to all the Row B switches (as indicated by the "and so on" in previous paragraph); C1 merely needed to be rotated to point at B2 to complete the connection to RS-232 Output O1.
Therefore any of 6 computers connected to the Inputs of this RS-232 Switch Box could send signals to any of the 6 Outputs (different printers, telephone modems, and other devices). In addition to, as previously described, being able to communicate directly with each other. And all with no cable-shifting.
So the years passed and I replaced those computers and printers with other computers and printers. However, I didn't throw away the old equipment; I still have them. AND I stll have that RS-232 Switch Box. Which, by the way, worked perfectly (no wiring errors, hurray!). Someday, when I have a big-enough room to set everything up and connect it all again, I will. Just because I can!