So I did some tweaking on my Master-41 drive yesterday. The Master-41 is a 1541 floppy clone, it's essentially identical to the Excelerator+ / Oceanic OC-118-N. This drive went through a number of transformations owing to legal action from Commodore, so the name changes and some hardware hacks were used to confound the litigation.
One of those hardware tweaks was to bit swap the ROM. The drive uses an exact copy of Commodores 1541 2x8KB ROMs concatenated into a single 16KB ROM (exactly how the 1541-II ROM is laid out, but older code minus the track zero sensor handling). Pins 15 & 16 of the ROM are physically swapped on the drive, these equate to D3&D4 on the chip which means that when the content of the ROM is dumped it is not the same as the standard rom due to the bit swapping, a simple but clever obfuscation technique.
The downside of this is that if you wish to burn custom firmware to replacement ROMs then you have to muck about bit swapping the files, not to mention also concatenating the new firmware with the CBM base ROM.
So to get around this I decided to 'unswap' the data lines physically on the hardware so I would not have to jump through this hoop every time I wanted to try a new firmware. I know not everyone will agree with physically modifying hardware but this is a very easily undone mod.
Step one was to cut the tracks for pin 15 & 16 of the rom socket on the board:
15_16_Track_cuts.jpg
Then 2 bodge wires could be added to reroute and undo the bitswap:
DataPinSwap.jpg
Now I could burn any rom that I wished to, my first test was to burn an unbitswapped version of JiffyDOS to the drive (I have already purchased a licensed bitswapped version for this drive). SUCCESS, so I didn't break anything!
Because I only had 27C256 EPROMs available it seemed like a waste to burn a dual image of the 16KB of firmware, so I decided I would also like to be able to swap between 2 different firmware images with a switch.
The simplest solution for this would be to bend A14 (pin 27) of the EPROM up, and use this as the center tap of a 3 leg switch, the other two legs being connected to ground and VCC respectively. I'm sure there are more elegant solutions but this is what came to mind:
RomSwitch.jpg
I had burned SpeedDOS 2.7 to the upper half of the 27C256 that I was using, SpeedDOS is a parallel speeder for the 1541, which massively increases throughput by sending all bits of each byte read simultaneously from the VIA of the drive to the user port of the C64. A nice side effect of this is that ZoomFloppy and similar tools can be used on the PC to make fast copies of disks to file, or dump files to fresh floppies.
Space in the Master-41 case is extremely limited compared to a 1541, they are much more compact, so I decided to use the piggyback method & some adapter PCBs that I have lying around...
SpeedDosAdapter.jpg
Adapter_piggybacked.jpg
I'm waiting for a 24 pin PCB edge connector to arrive so I can fab up a cable to connect the adapter to the C64. I'll also need to drill the case for the rom switch, and to pass the ribbon cable for the parallel connection out so I'll post an update when that's done.