Back when I was investigating the Pocket386 I was curious about the CH375 so I started writing a replacement DOS driver in Watcom C.
I wanted to see why it was failing to support USB floppy drives, etc. in case it was driver issue rather than fw.
Turns out, the issue is in fw , so the experiment was a bit useless.
A C driver is also going to be much worse in performance, plus totally untested (not sure if it loads in a 8086 even, binaries are for 386!), so I'm not sure how useful this is to you.
But hey, the source is there at least, to play with =) (openwatcom2 required)
I didn't use anything from the original driver or SDK, only the datasheets, so everything is trial-and-error.
I got it to work up to the point it can init/read/write plus a couple experimental features, such as supporting multiple partitions (by allocating multiple drive letters on boot) and FAT32 when used on FreeDOS.
To load
DEVICE=...\CHUDISK.SYS /N4 /P260 /R /3
(settings are just an example)
/N is the number of drive letters to allocate -- each letter will be mapped to one PRIMARY partition, so no point with N>4 right now.
/P is the IO base (260 is the pocket386's)
/R means read-only (to avoid surprises as driver was just an experiment)
/3 is to include FAT32 partitions when enumerating partitions
Heeavily untested, other than 1 Linux-formatted pendrive in a pocket386 running FreeDOS 😀 (a pendrive that the original driver would not read, for some reason. that's something, I guess.).
Now that I got the Book386 I am thinking of continuing, another reason I was doing it in C is to use to create drivers for other OSes.