First post, by skrzyp
Hello,
Recently I've bought a pretty neat Libretto 100CT ("mint condition") with many accessories » PCMCIA cards for USB, ethernet (RTL8139), "pro" sound, and SanDisk CF convrter/adapter.
The only difference from stock 100CT is the Pentium MMX CPU OC'd to 266MHz (very stable though, tested on W98SE w/ all USP updates). The stock clock is 166MHz and this might be important in next parts of our journey.
It came with 30GB IBM HDD and 98sE w/ audio software (Adlib Tracker II, Impulse Tracker, FastTracker) and library of samples. I replaced this spinning tragedy with some "modern" technology, a IDE-CF converter with 8GB SanDisk Ultra cart installed.
It works very well in DOS, but in Windows you got the opposite of the desired effect, even with swapfile disabled (which is a masochism on Windows with 32MB of RAM, but at least I tried…). So, I've decided to get rid of that and leave pure DOS only.
But while everything else works well under DOS, I still can't get on with PCMCIA stuff. It works nicely under Windows, every CF card I put in this simple (probably just a direct wire between CF and PCMCIA) SanDisk socket mounts as ATA disk which is what I like.
I looked up some solutions first, and here is some kind of report:
UNATA/CBATA/ATAENAB from APSoft
"MS-DOS 7" (shipped with Windows, started as "Command prompt only" config option in boot manager): Running UNATA/ATAENAB says there's a card in slot called <OEM name of my CF card inserted> but right after that the IO.SYS stops the program with "This program caused a divide overflow error." message. Also breaks the memory layout as starting anything using protected mode results in garbage characters and beeps. No one likes that. Also, CBATA does that right after running.
At this point, I put off my card from IDE socket, formatted a fresh FAT32 and installed FreeDOS1.2 on it via [pre]qemu -cpu pentium -m 32 -hda <CF card device>[/pre] on another host. Works really well.
FreeDOS 1.2: Running any of these program with JEMMX as XMS memory manager results in "No card controller found" kind of message. Running with JEMM386 only (and excluding [pre]D000-FFFF[/pre] region) makes the card appear in report as in MSDOS7, but it also stops the program with "Division error" and a stack trace. Also breaks memory layout.
I guessed these division errors could be due to Turbo Pascal runtime bug (famous "runtime error 200" and others) which was common to write utilities under dos. Sadly, using PROT200 and FIX200 didn't helped me anyhow, as the APSoft probably obfuscaed the binaries (they say "Decompiling or disassembly prohibited" when called).
CARDSOFT drivers from CARDSOFT.ZIP (1994 time-stamped)
FreeDOS 1.2: This one makes me very confused. As I ran the machine with JEMM386 only and [pre]D000-FFFF[/pre] excluded as README said so, installed bugged itself and went into infinite loop (the installer script is a separate plaintext file with some crazy syntax) so I decided to run it on my own. Seems like the correct order is to run "Socket Service" (SS*.EXE} and then "Card Service" (CS.EXE, plus CS_APM.EXE if your board supports APM, and that applies to my case). I loaded both of these (SS356PL.EXE as Socket Service, there are some others for different PCMCIA controllers) in correct order and they didn't said anything bad, so I ran CARDINFO.EXE from the same distribution. It correctly determined that we have 2 slots and only one is occuped, but it says "Unavailable…" in Product and Manufacturer fields. Also beeps properly when card is inserted (though I think it's driven by BIOS when something initialize the controller from OS first)
From what I guessed after browsing the CARDSOFT distribution, it seems like the driver is mostly tied to specific models of cards available in 1994 and there are probably no ways to extend it anyhow. So even while this particular software detects my PCMCIA controller and talks to it, I can't succeed with it.
So, do you know any other sorts of PCMCIA drivers/enablers which would work in my case?