DETANGLING THE MESS THAT IS LEGACY PCMCIA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PCMCIA - standing for Personal Computer Memory Card Industry Association....and usually jokingly referred to as "People Can't (re)Member' Computer Industry Acornyms", is a memory card, later laptop expansion bus standard developed for portable computer products. They come in three types: Type I (memory cards only), Type II (the most common), and Type III (usually large cards that take up up to two slots and have a giant case for additional circuitry). PCMCIA was replaced by 32-bit Cardbus cards in the Pentium era, and later Expresscard - befoore everything got replaced by USB.
As the sands of time continue to shift and sweep away whatever computing history people don't actively still use, one of the key goals of this part of my website is to DOCUMENT these legacy technologies before they fade away and cease to be a potential leveraging point to using these old technologies to our advantage in a modern context. One of the most irritating, cryptic, and difficult to deal with it seems - is PCMCIA cards. 99% of the time when dealing with a legacy 386SX, 486SL, or early Pentium laptop, you are going to be dealing with PCMCIA expansion cards, and 99% of that time, you're going to be dealing with PCMCIA Type-II 16-bit cards. And considering most PEntium laptops are cardbus, that leaves my faovirte, and a special little period of 1992-1995, where we are dealing with 386SX and 486SL based laptop computers that ran DOS, Windows 3.1x, and utilized these cards in what, on the surface, would look like the most janky, unprofessionally developed enviroment ever. Once we got to Windows 95, a lot of the "pain" in dealing with PCMCIA (here's a new one "Painful to Configure Micro Computer Integration Adapter") is gone. But prior to that, things are VERY clunky. Right now I own four NEC Versa laptops, and a DFI MediaBook (NanTan actually), and all of those had Windows 3.1 on them at somoe point, and almost all of them have various parts of the PCMCIA subsystem that feel like someone just dropped a bag of materials and tools in front of you and said "make a network connection" and left you to it, as well as a pile of cryptic text-file "whitepapers" on how the drivers, card services, and other parts "theoretically" are supposed to work. Probably the best of the lot would be Cisco, they may be so armored they might as well be the US Military as far as security, finding drivers is like breaking into Fort Knox! But at least their documentation is good and their products actually work as designed and documented to work. So my mission on this page is to learn - myself - and document up here to demystify the early PCMCIA expansion bus, and how to configure, troubleshoot, use, and work with it. On the Surface - what is PCMCIA On the surface - the "Physical Layer" in OSI Model terms - PCMCIA consists of a PCMCIA Slot(s) on the usually Laptop in question, and a Expasion card of the Type-II or Type III variety. These cards are 16-bit data width, just like a regular AT-class ISA card, as they were intended to act as an "AT class expansion card" in a laptop. Except, Laptop computer posed a problem - you can just have a big 8"x8" chunk of silicon, metals, and fiberglass to carry with you at all times, and screwing the darned thing into the laptop means the laptop has to be bigger - turning it into a luggable. There were laptops with ISA but they wree large and expensive, and reserved for things like Network Diagnosis/Packet sniffing, and often crippled to needing an outlet to work (making them technically - modern Luggables at the time). But with PCMCIA, you could have a small laptop or subnotebook, like a ThinkPad or NEC Versa, and you could have your modems, ethernet cards, WiFi adapters, sound cards, CD-ROM controllers, flash memory, and so on - on little credit-card sized cards that could be swapped in and out oof the computer at will (well...kinda sorta'). So instead of big ISA boards with jumpers, dip switches - now you had little credit cards with dongles and possibly some of the most irritating configuration software known to man. Basically, the card slides into the slot, your laptop beeps to let you know it's reading the card, then - in theory - card services allocates resources to the card, enabling the card, and allowing you to use the card to do whatever you want to do. PCMCIA Uses a 68 pin header that includes 26 Address Lines (Addresses 0-25), 16 Data Lines (hence 16-bit, Data 0-15), and various other ports for detecting the card presense (Card Detect, Status Check, Speaker I/O for Modems and Sound Cards, Charging of a card-based battery device, wait, reset, and a whole gaggle of other functions). See the pinout below - this is facing the card with the side that has an "L" instead of a "Notch" to the right. PCMCIA is specifically the name of the standard in older (Pentium 1 and older) laptop computers. And it is often confused with "Cardbus" and "Express" slots. While these sockets are often electronically compatible with original PCMCIA cards from the early 1990's, and those cards may work in a more modern device, but it does not work the other way - you can't run a Cardbus or Express card in a vintage PCMCICA 16-bit PC. See below for card-size standards. Cards come in three types: Type I, Type II, and Type III.
On the software side - it's a 3-tier system - you have the Card Socket Chipset driver first, which needs to be loaded before the Card Services software and drivers are installed, then third comes the card drivers themselves, unless you're using a "Point Enabler" specific to the PCMCIA card you are loading. With this multilayered approach, you can tell that it uses a LOT of memory. This is why we often have 2 methods of accessing a card - both with and without card services - because in the latter scenario, it's usually trying to save memory, such as the lower 640K DOS base memory so you can actually do something with that card other than have it make your speaker beep and blink LED lights at you for no reason other than that it looks cool. PCMCIA Chipsets & Laptops that Use Them As you can imagine, one of the most neglected pieces of the puzzle is the PCMCIA chipset itself. It seems there were only a handful at most, and it seems they were made by Intel, Texas instruments, Cirrus, Ricoh, Vadem, VLSI, and others.....
Drivers for your Specific Chipset So of course, the first thing to load - if you are using Card Socket Services that is - is the driver for your chipset. Without it, all of the stuff coming AFTER will fail to load. Most of these drivers are loaded via CONFIG.SYS via a DEVICEHIGH= entry - so as to put it in the memory above 1024K. They also, usually require EMM386.EXE to block off a segment of memory (usually in the D000-DFFF range using the X=D000-DFFF - or whatever the hex value is - for a memory window for the card to talk through). For example - my NEC Versas all use a Cirrus CL-GDxx series PCMCIA Chipset (roughly the same one basically), and they come with the driver with the CardSoft software - SSCIRRUS.EXE. So it loads in CONFIG.SYS after DEVICE=HIMEM.SYS /TESTMEM:OFF and DEVICE=EMM386.EXE X=DD00-DDFF entries - usually with a switch announcing the number of "sockets" it has - /SKT:2 in this case (IIRC). So the entry is DEVICEHIGH=SSCIRRUS.EXE /SKT:2 - and that entry tells CardSoft what kind of chipset it is, allows it to communicate with CardSoft, and let's CardSoft know there are 2 sockets in the computer. If I were to add the "VersaBay" attachment that adds 2 more PCMCIA sockets - I'd change /SKT:2 to /SKT:4. Card Services Software - Cardsoft, CardWizard, and Phoenix Card Manager Part of what makes this mess confusing is that there's a card driver - as mentioned above, and card service SOFTWARE. It's further mucked up by INCLUDING the driver/point-enabler as a PART of the package. But we're focusing on the UNIVERSAL Parts of each software. CIRRUS CARDSOFT CARDWIZARD CardWizard is the software I found on NanTan's old website circa 1996-1997 on the wayback machine. While this software was used on a lot of models, and not specifically listed as for the FMAK9200, I put it on there and got my Ethernet Adapter working using it, so it does work for that model. One nice perk of this particular software is it seems to be capable of troubleshooting and properly fixing faults for the user - which is really cool for something made in 1994. Another neato perk of it is that it's troubleshooting recognizes multiboot configurations - which rocks. So it won't edit the wrong parts of Config.SYS or AUTOEXEC.BAT and screw up your boot options - or corrupt them with random [GLOBAL] options. It consists of the following modules...
PHOENIX CARD MANAGER Point Enablers Explained in more Detail |