• Please review our updated Terms and Rules here

CompatiCard IV - Change Drive Order

nullvalue

Veteran Member
Joined
Oct 8, 2019
Messages
1,034
Location
Indiana
I am using some imaging software that seems to only supports floppies on A: or B:. I'm trying to change the drive order without continually having to swap the wiring. I have a 3.5" [A:], 5.25" 1.2MB [B:] and a 5.25" 360KB [E:]. They all come up and work as expected. According to the docs, I should be able to reorder the drive lettering by specifying the drive address in the order I want. The line I've updated in my CONFIG.SYS looks like:

Code:
DEVICE=CC4DRV.SYS /A0 /A3 /A1

I was hoping that would essentially swap my 5.25" drives - so the 3.5" would still be A:, my 360KB would become B: and the 1.2MB would be E:. However after rebooting the drives still come up in the original default order. Am I missing something?

My card has the 1.05C BIOS and I am using the 2.03 version of the DOS software.
 
Last edited:
If the imaging software (e.g. IMD) is performing direct hardware I/O, CCDRV won't save you.

As a matter of fact, regardless of drive unit letters, running IMD with the /4 switch, the drive letters (ABCD) only mean physical drives (0123).

What drive imaging software are you using?
 
IMD and FDIMAGE

I wasn't aware of the /4 option in IMD - I had a D: in my system, it was an extra partition on my HDD that I wasn't using - so I deleted it for now, which caused the 360kb drive to come up as D: - and the /4 option does indeed work now for that drive.

The other software I use is FDIMAGE - I've had really good luck with it writing plain .IMG images to disk with it. The only problem is it only works with A: or B:. Do you have any other recommendations for writing IMG files that would support a 4 drive system?
 
Again, the dos names of the disk drives have nothing to do with the imd names.
Physical unit 0 = A, 1 = B, 2=C, 3=D, no matter how things are set up on your hard disk or config.sys files. I suppose that Dave could have referred to them that way, but I don't know why he did.

22Disk and related utilties takes a different tack. It lets you call the disks whatever you prefer, but uses a DISKETTE.CFG configuration file to define the characteristics of each drive. That's why there's no menu that selects 250Kb/sec, 300Kb/sec or 500Kb/sec. It's an extra step but allows for completely specifying each drive's characteristics.

I believe that IMD has a conversion utility from .img to .imd.
 
I believe that IMD has a conversion utility from .img to .imd.
WinworldPC has an extremely good article on how to use the BIN2IMD tool to convert binary files to IMD. I found it extremely helpful. https://forum.winworldpc.com/discussion/6931/redirect/p1

Thanks! I used the conversion examples in the article and it worked flawlessly - guess I can just stick to IMD for now.

Still, though - annoying that the CompatiCard reorder doesn't work. I spoke to someone else with a CC4 and he tried reordering his drives too, and it didn't work. Just completely ignores it. Either the feature was not implemented or the documentation is wrong. :(
 
No, again, it has nothing to do with the CCIV software--when a program like IMD operates, it completely bypasses all software. There's no way a software-defined facility can operate in that case. It is true, however, that some chipsets allow for "swapping" of the A and B drives, but that's performed through hardware. The CCIV has no such hardware.

However, if you're addressing the drives via DOS's filesystem software, the reassignment works just fine, as it's mostly changing a value in a table.
 
Yeah (I think) I understand that part.. But here's where I'm confused - check out this manual, starting on page 50 in the PDF - Overriding Default Parameters. In particular, the 4th & 5th example they give.

For changing the order of drive letter assignment, the syntax is

device = cc4drv.sys /c1,3,3,y /c2,0,6,n /c0,7,3,y /c3,8,3,y

When drive parameter blocks are present, their sequence in the CONFIG.SYS file determines the sequence in which drive letters will be assigned to the drives. In this example the card address jumper J1 is assumed to be set to position C. The drive letters assigned will be "D" to the 1.2MB drive at C1, then "E" to the 360KB drive at C2, then "F" to the 1.4MB drive at CO, and finally "G" to the 2.8MB drive at C3.

device = cc4drv.sys /c1 /c2 /c0 /c3

Drive letter assignment control takes place whether a complete or a partial parameter block is present. This example has the same order of drive letter assignment as the previous example. If drive letter sequence is all you wish to change, you need only specify the ADDRESS for each drive.

I understand IMD bypasses the BIOS and goes straight to hardware... But even still, this should at least still work for basic DOS commands (format, copy, etc) since those are all designed around making BIOS calls, right?

So - what is this actually doing, then if not reassigning the physical drives to drive letters in the order specified? Since the CCIV has it's own BIOS, why couldn't it reassign drive letters and interpret commands before sending them to the NSC controller chip? With another example it even talks about assigning multiple drive letters to the same physical drive but with different characteristics.

EDIT: I should clarify by "not working" I don't mean it reorders the drive, but then it doesn't work within IMD. I mean that it doesn't work at all. Even with the updated CONFIG.SYS, the drives come up in the original hardware order - as if CC4DRV.SYS is completely ignoring the command. It is at least interpreting the commands though, because I intentionally tried referencing a non-existent drive (/A2) and it balked.
 
Last edited:
It should work just fine--I use CC4DRV to assign drive letters on a system with a 3 floppy controllers, 2 of them CC IVs. Works fine for me and, on loading, even displays the drive assignments. Running DOS 6.22.
Are you using the CCIV on-board BIOS? Since my CCIVs are not the primary, I'm not--and that may be the difference.
 
It should work just fine--I use CC4DRV to assign drive letters on a system with a 3 floppy controllers, 2 of them CC IVs. Works fine for me and, on loading, even displays the drive assignments. Running DOS 6.22.
Are you using the CCIV on-board BIOS? Since my CCIVs are not the primary, I'm not--and that may be the difference.

Yes I see the CCIV BIOS message come up on boot. Mine also shows the drive assignments, but they don't get reordered. I am using the board as my primary controller. Wonder why it wouldn't work as primary. Unless I missed it, the documentation doesn't mention this feature is only available when running as a secondary.
 
Back
Top