Let's turn the discussion back to the technical aspects, for now they are
more interesting than the question about open source...
On Sat, 17 Dec 2005, Dave Dunfield wrote:
ImageDisk already has an option to specify the FDC
hardware address,
however I do not have a system with two controllers, so I have not gone
any further toward supporting dual FDCs. What do I need to do to "shut
down" the primary FDC - it is just a matter of setting bit 3 in the Digital
output register (See description below).
Yes, clear bit 3 and set bit 2. I do this with a sequence like
MOV DX, 3F2h
MOV AL, 4
OUT DX, AL
If this is the case, you could try poking this bit
with a debugger, and then
running ImageDisk with an optioh of "IO=372" for the secondary controller
address. If this works, let me know and I'll include an option to disable the
primary controller.
If I understood you correctly you rely on the BIOS to service the
interrupt. This might work, but I recommend using an own interrupt
routine. This means setting bit 7 in location 40:3e (for the BIOS) and
sending EOI to the PICs, 20h to port 0a0h for IRQs greater than 7, and 20h
to port 20h for all interrupts. At least this works for me.
From the information you posted, I gather that the
logical extension
to this is:
7 = 1 Enable drive 3 motor
6 = 1 Enable drive 2 motor
5 = 1 Enable drive 1 motor
4 = 1 Enable drive 0 motor
3 = 0 Enable diskette interupts and DMA
2 = 0 Controller reset
1 = 0 Select drive 0-1 11 = Drive 3
1 Select drive 2-3 ie: 10 = Drive 2
0 = 0 Select drive 0-2 01 = Drive 1
1 Select drive 1-3 00 = Drive 0
Is this correct?
Yes.
Again - I do not have such a controller, so it would
be very hard
for me to test and maintain the software - If I make the changes
to support this, are you (or anyone) willing to test it?
Yes, of course.
In order to explain why I have an 8" drive permanently connected to my PC:
I also have an IBM 5110 with floppy drive and the only means at the
beginning to transfer data and programs to this machine was by floppy
(I've written a kermit in the meantime). So I started writing a program to
do file based I/O on IBM diskettes (3740 or System/34 format), this means
a mixture of FM, MFM, and different sector sizes on the same disk. And all
this for the secondary FDC, too, because I didn't want to give up my
standard 3.5" and 5.25" HD drives on A: and B:. My program still has some
bugs and needs cleanup, but I will release it if there is real interest.
I also have a lot of disks for the 5110, and I wanted to archive then
using TeleDisk, but TeleDisk is so slow when it comes to e.g. 26
sectors/track, because it needs at least one revolution per sector for
analysis and reading. I've incorporated a simple image function into my
program but it doesn't provide information about interleave, errors etc.
Now here is where ImageDisk might come in!
Christian