![]() |
BIOS Support for PCMCIA devices |
Anyone who has used PCMCIA cards, particularly in the days before Windows 95, will be
aware of the 'delights' of configuring either Card and Socket Services, or point enablers,
to support their device. The PC110 is clever enough to support several types of PCMCIA
device straight from the BIOS, cutting out the driver configuration and reducing
memory usage. Hurrah!
The PC110 BIOS supports these devices directly. This means that without the installation of PCMCIA drivers, devices are seen as normal hardware. Of these devices, I have personally tried Type III hard drives and Type II modems in the lower slot. Note that Easy-Setup is the BIOS configuration utility, accessed by holding down <Fn>+<F1> as you power on.
For the technically aware, what would appear to happen is that the BIOS contains
sniffers and point enablers for the supported PCMCIA devices, which are loaded, I presume,
at the end of POST. These configure the PCMCIA controller for whatever devices the
sniffers find in each socket, then disappear.
Device |
Seen as |
Configuration |
Type III ATA hard disk (mechanical) | IDE device; drive letter varies | Must be included in startup sequence in Easy-Setup. Drive letter assigned depending on order of PCMCIA, HDD-1 and HDD-2. Device must be initialised correctly before use - see below. May be installed in either slot (using a type convertor) |
ATA flash card | IDE device; drive letter varies | Install in either slot. Configure as for Type III hard disk. |
Modem | COM port; can be COM1: or COM2: | Must be configured in Serial section of Config option in Easy-Setup. Note that numbering refers to COM port rather than PCMCIA slot. Enable PCMCIA 1 for it to act as COM1:, and PCMCIA 2 for COM2: |
Token ring adapter | I/O A20h, 24KB of upper memory area? | Unknown, as I've never tried it. Not sure how it'll interact with the AudioDrive - might have to reconfigure that to use an I/O port other than 220h. Must be installed in the lower slot, though. There is an option in the startup sequence in Easy-Setup called 'Network' - this, combined with a RIPL-enabled token ring adapter (such as the IBM ones), allows you to boot the PC110 off a suitable RIPL server. |
One problem I've had with PCMCIA hard disks is that strange things happen if you don't initialise them correctly. If you have a drive that can be read and written to perfectly happily, but cannot be made bootable despite the apparent success of a SYS or FORMAT /S, you have to initialise the disk using the initialisation utility. See Initialising ATA storage devices for more information on this.
So it's neat to have the BIOS map your ATA card as an IDE device, but you still need PCMCIA drivers loaded to support an Ethernet card, or such like. How can this be done? Most people try a straightforward installation of PCMCIA support, reboot the machine, and find that it hangs. Why?
The answer is simple - if you look at the sequence of what's happening:
This sequence is relevant to all operating systems I know of, including DOS, OS/2, and
Windows 95. I expect it would affect Linux also.
Two solutions are possible:
For the first approach, there are two things you need to know: the socket numbering, and the driver switch syntax. The lower slot is number 1; the upper slot is number 2. Syntax will vary between drivers, but the DOS Socket Services driver SSDPCIC.SYS accepts the /ig0=x parameter, where x is the slot to ignore (and 0 is a zero). For example, to boot DOS from an ATA card in the upper slot, modify your CONFIG.SYS to make the socket services line look something like:
devicehigh=c:\ezplay\ssdpcic1.sys /ig0=2
I have listed here part of the README files from a ThinkPad Utility diskette which describes the purpose and driver syntax for the IBM Card & Socket Services drivers.
The standard Windows 95 PCMCIA drivers do not support individual slot disabling. In this instance we have to use the second approach, and fortunately IBM have drivers for Win95 that behave as we want. Click here for more details.
Windows NT 4.0 (original version) is unstable unless the PCMCIA device is disabled.
Again, there is no obvious way of disabling a specific socket. I have had better luck with
a later copy of the NT 4.0 Workstation CD - it includes Service Pack 1 in the installation
image, and seems stable with PCMCIA.SYS running...time will tell...