• Please review our updated Terms and Rules here

Combining DTK floppy controller with OEM IBM floppy controller

mcsew2k

Member
Joined
Apr 11, 2012
Messages
34
Location
California
I have the DTK Micro-Mini-2 floppy controller working in my 5150 PC with a Teac 1.2M/1.44M combo drive. I do not forsee any problems when I move it over to its final destination, a 5160 XT system, except that I want to use this combination and be able to keep one of my two 360K half-height drives along with the combo drive. I can already see that there is a conflict with the OEM IBM floppy controller and I am guessing, actually almost certain, that both floppy controllers are using the same IO port address. What I want to do is modify the IBM controller to be the secondary controller in the system. I imagine this might need a DOS driver to be loaded to recognize the third drive.

Has anyone done something like this before? Is there a driver already written for this?

Any help would be appreciated.
 
No. While it's probably possible to get the IBM controller to 37x from 3Fx, I'm not aware of any (working) driver for that task. Remember that both controllers will be using IRQ 6, DMA 2, so the driver will have to be aware of how to share the resources. Supposedly, SDRIVE can do this, but I'm not aware of anyone who's gotten SDRIVE to work correctly.

I should mention that some programs do have their own floppy drivers and can support several floppy controllers at different addresses.

The 52 pin DP8473 PLCC in your DTK card supports 4 drives natively, but for some reason, DTK thought they'd make two versions of the board, the -2, which you have and the -4 which supports 4 drives. Silly really, since the -4 is essentially the same but for more jumpers for the extra drives. It should be possible to play some fun and games (i.e. put in a couple of wire jumpers) with the DTK board and get a third floppy on the same cable--I've done it several times with that chip. The cable is a little twisty, but it works.

But I'm supposing that you don't want to put 3 floppy drives in the same box.
 
But I'm supposing that you don't want to put 3 floppy drives in the same box.

Actually, the TEAC Combo drive would fit very nicely with my HH 360K drive in the XT, along with the FH 2 GB SCSI hard drive. Since I just acquired the DTK board at a substantial expense I do not feel brave enough to modify it. I have heard of 16-bit multi-IO cards that have jumpers and drivers to make the floppy portion for secondary use, although I am worried about being able to run the drivers on the XT.

How I understand it the IBM controller has the external connector for a 3rd and 4th drive, but uses the same primary IO address for all four drives; does that require a driver to use the additional drives since the MB switches only acknowledge at most two drives?

How would I modify the IBM controller to be at the secondary IO address and could I modify the just mentioned IBM driver to recognize the secondary address?

I think I got the idea, put in a couple jumper wires, cut a trace or two, and use debug to change the driver; but which ones and where?

Oh, then you mentioned the IRQ and DMA stuff. Woe is me!
 
It is possible for two well-behaved floppy controllers to share IRQ and DMA, but it's not a matter of patching a few instructions in an existing driver. Essentially, the driver for the second controller has to disable (float) the DMA and IRQ control for the first controller, then perform its dirty work, then disable its own drive and re-enable the primary one. And it has to use the same time-out mechanism for the motor. It's not straightforward--and not at all friendly to multitasking operating systems, but it can be done. A lot of on-board (e.g. 486, P1...) floppy controllers are not well-behaved; very often, they either don't release control of DMA 2 and IRQ 6 or the ISA bridge chip prohibits using either except for the onboard FDC. And a lot of P4 and later systems don't know how to do ISA DMA.

However, for adapting the DTK controller, see this post--it's not that hard.
 
How I understand it the IBM controller has the external connector for a 3rd and 4th drive, but uses the same primary IO address for all four drives; does that require a driver to use the additional drives since the MB switches only acknowledge at most two drives?

The motherboard switches can be set to 3 or 4 drives, or (if there are gaps in the drive numbering) you can use DRIVER.SYS under DOS. However, the IBM controller's data separator won't cope with high-density drives, so that won't help in this situation.
 
However, you're not using the IBM BIOS to handle the DTK board, so the switches don't particularly matter--you can set them for zero drives if you're going to use the DTK board.

John, it's more than the data separator. The 5170 uses three clock frequencies for 250, 300 and 500 bit/sec--you usually see this by a 16/9.6 MHz crystal pair or a single 24MHz crystal. That, in turn, controls the read and write data clocks on the 765 (wherever it's burined) and clocks the data separator.

It is, however possible to wire the later (not the ones with IBM hybrid circuits on them) 5150/5160 floppy controllers to operate only at 500Kbit/sec (meaning only 1.2M and 1.44M formats). Of course you need BIOS changes to go along with it.
 
that'd be an interesting how to. How to make the 5150,5160 controller do high density, but you'd only be able to to high density, but for copying things from a modern computer to the older one, 1.44 would be useful. Or maybe a toggle switch to go between the 2. There are XT bios out there that support the high density drives natively i think, the generic xt one i've got does, id have to look to be sure. but i believe it does.
 
However, you're not using the IBM BIOS to handle the DTK board, so the switches don't particularly matter--you can set them for zero drives if you're going to use the DTK board.

It is consistent and repeatable that if I set the the MB switches to zero or one drive, then I can only use zero or one drive on the DTK controller.

So, how does one go about changing the hardwired I/O address of an adapter card?
 
The motherboard switches can be set to 3 or 4 drives, or (if there are gaps in the drive numbering) you can use DRIVER.SYS under DOS. However, the IBM controller's data separator won't cope with high-density drives, so that won't help in this situation.

What are the MB switch settings for 3 or 4 drives? It is not in the GTO; is it as simple as the other binary codes for switches 7-8?
 
It is consistent and repeatable that if I set the the MB switches to zero or one drive, then I can only use zero or one drive on the DTK controller.

So, how does one go about changing the hardwired I/O address of an adapter card?

Well, it varies from card to card, but let's suppose that you have the 5160 floppy controller (the one in the techref). If you examine the schematic, sheet 2, you'll see in the upper left hand corner that U20, a 74LS30 is used to decode address lines A3-A9 to select on I/O addresses x3F0 through x3F7. The secondary floppy controller address is traditionally x370-x377, so you need to invert the A7 input to the LS30. It looks like the first section of U29, the LS00 is unused, so you can use that as an inverter. Presto--the controller's now at x37x.

Good luck in finding a driver.
 
What, a trace cut and 2 wires is complicated? :huh:

Is it really that simple? I can turn a standard ibm floppy controller into a secondary one that easily? I may try that sometime actually, just to do it, that would allow me to use an external 5.25 on my model 30. Unless there is a better way to do it, as i'm out of backpack floppy drives.
 
Back
Top