How to allocate memory for CardWare use

By default CardWare allocates memory area 0xD0000-0xD7FFF for use by PC Cards. Such allocation usually fragment your upper memory area and prevent you from loading more drivers into upper memory. There is several methods of optimization of such allocation.

  1. Move your memory to beginning or end of the upper memory.

    The default location of the CardWare memory may be not optimal for your system. If, for example, your system has upper memory from 0xC8000 till 0xEFFFF and CardWare uses memory area 0xD0000-0xD7FFF your remaining upper memory will be segmented (0xC8000-0xCFFFF and 0xD8000-0xEFFFF). In such case it would be better to shift CardWare memory either to beginning (0xC8000-0xCFFFF) or to the end (0xE8000-0xEFFFF) of the upper memory and get remaining 128KB of memory not segmented.

    For change CardWare memory are you should modify MEM setting in the [Resources] section of CardWare.ini from MEM=0xD0000,0x8000,E to e.g. MEM=0xC8000,0x8000,E. You also should modify memory range excluded from EMM386.EXE in your config.sys from X=D000-D7FF to e.g. X=C800-CFFF. It's very important that memory allocated for CardWare in cardware.ini is entirely excluded from EMM386.EXE.

  2. How much memory you need.

    Under CardWare you need 4kB of memory per CardBus socket (you do not need such memory for non-CardBus adapters), plus 4kB of memory for read PC Card CIS, plus memory required to configure all PC Cards in your system. If e.g. you want use the system with CardBus adapter with 2 sockets and 2 ATA cards you will need in total 12kB of memory (ATA card normally doesn't require any memory). If, however, you plan to use modem and LAN card and LAN card requires 8kB of memory (modem normally doesn't require any memory) you will need 20kB (2 sockets x 4kB + 4kB for CIS read + 8kB for LAN card). Simplest method to find out how much memory card requires is to insert this card and let it configured. Then use DOSCARD /D for see how much memory card uses.