Commodore served both the business market with the CBM series, and home users with the very well-known C64, among others. And although there were many similarities between the product lines, there were some differences.
One of these was the connection for peripheral devices, such as printers and floppy drives. While in the CBM world the IEEE-488, or also under GPIB known bus was used, in the home computer world a slimmed down variant in the form of the CBM bus was used. The also known as IEC bus could be realized much cheaper, with unfortunately many disadvantages. Especially concerning the speed.
However, Commodore also had delivery problems from time to time and could not always cope with the enormous sales in the business world.
But fortunately, Commodore was always very inventive and innovative when it came to fixing problems.
Thus, various simpler models of floppy disk drives, which were also much cheaper, were equipped with an IEEE-488 interface.
What they all had in common was that they were based on the then known 1540/1541, with the appropriate modifications.
One of them was the 2031LP, which even had the same case as the 1541.
If you now look at the circuit diagrams of the 1541 and the 2031LP, and compare them with each other in the service manual. Then you will notice that actually only one thing is different.
Here are the two schematics for comparison. First the relevant area of the Commodore floppy VC1541:
And here is the same section, though of course with a slightly different designation of the 2031LP:
Even if it is a bit difficult to read, you can already see the differences. But these exist basically only by the two components SN75160 and SN75161. In the upper schematic you can see the reset circuit in the lower left corner, which is drawn on another side of the 2031LP.
But finally you can see on the 2031LP that port A, which is not used on the 1541, is used, and that port B does not lead to the serial 6-pin round connector, but to a 24-pin Centronics connector via the two GPIP components from Texas Instruments.
If you disconnect port B and the handshake lines of port A & B from the rest of the mainboard of the 1541 and rewire them as shown on the schematic of the 2031, you should be able to add an IEEE-488 interface to the 1541.
The idea is not new
André Fachat was the very first who took up this idea in the 80’s and designed a corresponding adapter board. For this, the VIA 6522 component was taken out of UC3, the adapter board was plugged in and the VIA 6522 was mounted on it again.
In addition, the kernal had to be replaced, since the corresponding IEEE 1541 routines were missing in the kernal of the 1541.
But that was it. The effort and the costs were kept within limits and one had a cheap IEEE-488 floppy for that time.
There was only one disadvantage, the CBM bus was not usable afterwards. At least not without rebuilding the adapter board and the Kernal.
Why not both interfaces?
Good question. So why not.
In the end, you only need to switch a few contacts to have both interfaces, though of course not at the same time. So you need a circuit that switches the corresponding lines and also a Kernal adapter board, with two different Kernals. One for the 1541 mode, and one for the 2031 mode.
Since I am personally a fan of SpeedDOS, the parallel connection necessary for it should of course also be maintained.
However, I had the problem here that the switching, while not costly, would have required a lot more ICs than I would have liked.
The first TriMod adapter
This is how my first switchable version was created. For switching I took analog switches in the form of the CD4066. These can switch 4 lines each. So to switch the whole thing, a total of 2 pieces of CD4066 were needed.
This is also the reason why no parallel cable was possible for SpeedDOS. 10 lines would have had to be switched. That would have been a total of 6 more CD4066s, which alone would have required 8 ICs for the switching.
This would also have made the board unnecessarily large.
So the following circuit was created:
And this is how the circuit board looked like:
There was also a SMD version, which then required an external Kernal adapter. The SMD version was also not so popular, so I developed a version with through-hole components.
The installation is quite simple, Kernal and VIA 6522 out. Insert the corresponding EPROM with the two Kernals and also insert the VIA 6522 into the corresponding IC socket. Then put the whole thing back into the 1541.
And so the 1541 floppy could now serve, albeit alternately, both the IEC serial bus and the IEEE-488 bus.
When installed, the whole thing looks like this:
Now with parallel cable
The TriMod 2.0 Adapter
But since the parallel port was still missing, and the TriMod adapter didn’t live up to its name, I changed the concept to do all the switching with a CPLD.
This has on the one hand enough connections to be able to operate all I/Os. And in addition, this can also take over the entire logic, so that no additional TTL components are needed.
I had decided on the Xilinx XC95144XL in the TQFP-100 version. The smaller versions would not have provided enough I/Os. On the other hand, this is now so cheap to get in China that this is not a problem, at least in terms of price.
This is how the following circuit diagram was created:
From this the first board for the TriMod 2.0 adapter was created:
This adapter should serve me as a prototype for my new version of the upcoming 1541 motherboard, where exactly this will be integrated. I will write a separate article about this.
Therefore, I paid less attention to appearance or shape.
In this adapter I have now integrated all 3 necessary interfaces:
- Parallelkabel für Floppy Speeder
- IEEE-488 Bus
Here is a photo of the TriMod 2.0 adapter installed:
Not really spectacular, but extremely practical. The following functions have been implemented so far:
- Switching with automatic reset of the 1541. A previous switch off of the 1541 is not necessary.
- Device ID switching is the same for both modes.
- The cabling can be left as it is. The 1541 switches the inactive mode as if no floppy is plugged in. So you don’t always have to change the cables before.
- The parallel cable can also be deactivated individually.
- An output for the Kernal switch is available.
I can’t think of any other features that would really make sense right away. However, the CPLD leaves a lot of room for new ideas. A new feature can simply be added with a firmware update.
I’ve had the adapter running in a floppy for some time now and haven’t been able to identify any problems or side effects.
In the end, the CPLD doesn’t really do much. It only switches lines and replaces the few gates that are still necessary.
The whole thing could be made even smaller, of course, if there should ever be a need for a standalone adapter. I would also replace the connectors with Micromatch connectors, for example. These already save an enormous amount of space.