Card and Socket Services (MADGECS.EXE)


This page provides information about:


An Overview of Madge Card and Socket Services (MADGECS)

To use a PCMCIA or CardBus adapter under DOS or OS/2, you must have Card and Socket Services running on the computer. Most portable computers are supplied with Card Services. Madge recommends that you use the Card Services supplied with your computer. If the computer you are using does not have Card Services, contact your supplier, or use the Madge Card Services software (MADGECS).

Most standard Card Services software requires that you load another piece of software, called Socket Services, separately. MADGECS will always emulate Socket Services if a third party Socket Services is not present.

The Madge Card Services software for:

The Madge Card Services software provides a Card Services interface for the following adapters:

If you load this software, you cannot use any PC Card adapters produced by other manufacturers, although if you specify slots to avoid, then such cards can be left undisturbed (see EXCLUDE_SLOT in Creating a Configuration File below).

MADGECS provides Socket Services functionality for the following PC Card controllers:

CardBus controllers support PCMCIA adapters, but PCMCIA controllers do not support CardBus adapters (it should not be physically possible to insert a CardBus adapter into a PCMCIA-only socket).

If MADGECS reports a CardBus controller as being an Intel 82365SL PC card interface controller, then the CardBus controller has been set to operate in a legacy mode by the computer's BIOS. To use CardBus cards, the controller's operating mode will need to be changed, which can normally be accomplished using the computer's BIOS configuration program.

MADGECS requires at least an 80386 processor to run.

Madge Card Services software for OS/2 is very similar to Madge Card Services software for DOS. For details of the differences, see Running under OS/2 below.


Running under DOS

To Replace Card Services:

Run MADGECS from:

This should be loaded after HIMEM.SYS and EMM386.EXE.


Memory Managers or Microsoft Windows

MADGECS requires at least an 8Kb region of upper memory (memory between 640Kb and 1Mb). If the computer contains any Madge Smart 16/4 PCMCIA Ringnodes in MMIO transfer mode, an extra 8Kb region is required for each one.

The upper memory area is reserved for use by ROMs and expansion cards and does not normally contain any RAM. However, on 386 or later processors, you can use memory manager software (such as EMM386) to map RAM from above 1Mb into this area so that it is available for use by DOS programs. If you use such a memory manager, it is important that it does not use up all of the upper memory regions that are not used by ROMs and expansion cards.

By default, MADGECS uses the first 12Kb of unused memory space that it finds in upper memory, avoiding areas used by memory managers. You can override this by editing the MADGECS configuration file (see Creating a Configuration File below).

MADGECS follows the convention used by memory managers, such as EMM386, for specifying memory ranges. A memory address is specified in hexadecimal, with the last (least significant) digit removed. MADGECS needs free memory ranges in upper memory. Upper memory runs from 640Kb (A000) to just under 1Mbyte (FFFF). The lower end of this range tends to be used for video controllers, and the upper end usually contains the BIOS. This normally leaves C000 to DFFF free. For most situations, 12Kbytes is more than sufficient. In hexadecimal, 12Kbytes is 3000 bytes. Thus, a typical 12Kbyte range is D000-D2FF (remember that the last digit is lost, and that the range is inclusive; do not specify it as D000-D300 because that includes the first byte after the desired range).

Examples of how to exclude the 12Kbyte memory range D0000-D2FFF from being used by various memory managers are:

For more information, refer to the documentation supplied with your Microsoft Windows or memory management software.


Command Line Options

Specify command line options as follows:

You can specify some options either on the command line or in the MADGECS configuration file (see Creating a Configuration File below). Madge recommends that you only specify such options on the MADGECS command line if a configuration file is not being used.

The available command line options are described in the table below (with abbreviations in brackets):

HELP (?)

Display help information

UNLOAD (U)

Unload MADGECS

BRIEF (BR)

Do not display configuration information

CONFIGURATION_FILE=
<filename>

(CFG= <filename>)

Name (including location) of the CFG file. The default location is the directory that contains MADGECS.EXE. The default filename is MADGECS.CFG. Example: MADGECS CFG=C:\PCM\MADGECS.CFG

SILENT (SI)

Turn off adapter insertion/ejection sounds

AUTOMATIC_CONFIGURATION=
ALWAYS

(ACONF=ALWAYS)

Instruct MADGECS to automatically configure Madge PCMCIA and CardBus adapters which are in the computer when MADGECS loads and adapters which are later inserted

AUTOMATIC_CONFIGURATION=
ONLY_ON_LOAD

(ACONF=OOL)

Instruct MADGECS to automatically configure Madge PCMCIA and CardBus adapters which are in the computer when MADGECS loads

CLIENT_32

Enable support for Novell Client 32

IRQ_FOR_CARDBUS

Use an alternative interrupt scheme for CardBus cards. Try this option if interrupts are not working for CardBus cards. This option forces MADGECS to ignore any interrupt routing set up for a CardBus socket. When a CardBus card is used, MADGECS will assign it an interrupt number from the list of interrupt numbers which it would normally use for PCMCIA cards. In other words, MADGECS will use 'old style' IRQ lines, rather than PCI interrupts for CardBus cards


Creating a Configuration File: MADGECS.CFG

If you cannot specify your requirements on the command line, use a configuration file to specify configuration options to MADGECS.

Madge provides a sample MADGECS.CFG with MADGECS, which is a useful starting point for creating a MADGECS.CFG of your own.

Put your MADGECS.CFG file in the same directory as MADGECS.EXE, or use the /CFG=<filename> parameter when you run the program (see Command Line Options above).

MADGECS keeps lists of the I/O locations, interrupt numbers, and memory ranges that are available for configuring Madge PCMCIA Ringnodes and Madge CardBus adapters. MADGECS displays these lists when it loads. Normally, MADGECS will automatically choose safe I/O, interrupt and memory resources. Sometimes MADGECS is unable to determine whether some of these resources are already in use by other system hardware (for example, an I/O location may be in use by another device). Usually the problem will be with the interrupts MADGECS chooses for use with PCMCIA cards. To prevent resource clashes, you can modify the MADGECS resource lists by entries in the configuration file.

(For an example, see Example Configuration File below)

The available configuration file options are described in the table below (with abbreviations in brackets).

ONLY_CARDBUS=YES (CBUS=Y)

Only support CardBus adapters. Using this option reduces the resident size of MADGECS

ONLY_PCMCIA=YES (PCMC=Y)

Only support PCMCIA adapters. If the controller supports CardBus adapters, using this option reduces the resident size of MADGECS

DEFAULT_MEMORY=NO (DMEM=N)

Only use memory ranges that are specified elsewhere in MADGECS.CFG

DEFAULT_IO=NO (DIO=N)

Only use I/O ranges that are specified elsewhere in MADGECS.CFG

DEFAULT_INTERRUPTS=NO (DINTS=N)

Only use interrupts that are specified elsewhere in MADGECS.CFG

BRIEF=YES (BR=Y)

Do not display configuration information

SILENT=YES (SI=Y)

Turn off adapter insertion/ejection sounds

USE_MEMORY=xxxx-yyyy, ...

(MEM=xxxx-yyyy, ...)

Add an area of memory to the list of available memory. Make sure that the new area you specify starts on a 4Kbyte boundary (that is, at an xx00 address), and is a multiple of 4Kbytes in length.

To add more than one area of memory to the list that MADGECS keeps, use a comma-separated list.

MADGECS requires an 8Kb memory region for general use. In addition, a 8Kb region is required for each adapter that is running in MMIO mode.

You also need to exclude the area of memory that MADGECS uses from being mapped by Windows or memory managers.

If a memory manager such as EMM386 is being used, then the memory manager should be prevented from using the same memory. For example, if you specified: USE_MEMORY=D000-D0FF,D800-D9FF in MADGECS.CFG, the following would be required on the EMM386 command line: X=D000-D0FF X=D800-D9FF.

For more information, see Memory Managers or Microsoft Windows above

EXCLUDE_MEMORY=xxxx-yyyy,...

(XMEM=xxxx-yyyy, ...)

Remove areas of memory from the list of available memory. To remove more than one area of memory from the list that MADGECS keeps, use a comma- separated list

USE_IO=xxxx, ...

(IO=xxxx, ...)

Add I/O ranges to the list of available ranges. You must specify them in hexadecimal. To specify more than one I/O range, use a comma-separated list

EXCLUDE_IO=xxxx, ...

(XIO=xxxx, ...)

Remove I/O locations from the list of available locations. To remove more than one I/O location, use a comma-separated list

USE_INTERRUPT=n, ...

(INT=n, ...)

Add interrupts to the list of available interrupts.

Specify interrupt numbers in decimal format. To specify multiple interrupts, use a comma separated list

EXCLUDE_INTERRUPT=n, ...

(XINT=n, ...)

Remove interrupts from the list of available interrupts. Specify multiple interrupts by providing a comma separated list.

EXCLUDE_SLOT=n

Prevent MADGECS from accessing a PCMCIA or CardBus adapter at the specified slot. Use this to prevent MADGECS from accessing an adapter from another manufacturer you configured using a "Point Enabler".

AUTOMATIC_CONFIGURATION=ALWAYS

(ACONF=ALWAYS)

Instruct MADGECS to automatically configure Madge PCMCIA or CardBus adapters already inserted in the computer when MADGECS loads. This parameter also automatically configures adapters that you insert later.

AUTOMATIC_CONFIGURATION=ONLY_ON_LOAD

(ACONF=OOL)

Instruct MADGECS to automatically Configure Madge PCMCIA or CardBus adapters which are in the computer when MADGECS loads.

AUTOMATICALLY_CONFIGURED_SLOT=n, ...

(ACSLOT=n, ...)

Only auto-configure adapters inserted in the specified slots.

CLIENT_32=YES

Enable support for Novell Client 32

CARDBUS_INTERRUPT=n, ... (CINT=n, ...)

Preferred interrupts for MADGECS to use when forcing interrupt numbers at CardBus controllers

IRQ_FOR_CARDBUS=YES (IFC=Y)

Use an alternative interrupt scheme for CardBus cards. Try this option if interrupts are not working for CardBus cards. This option forces MADGECS to ignore any interrupt routing set up for a CardBus socket. When a CardBus card is used, MADGECS will assign it an interrupt number from the list of interrupt numbers which it would normally use for PCMCIA cards. In other words, MADGECS will use 'old style' IRQ lines, rather than PCI interrupts for CardBus cards.

VERIFY_MEMORY=NO (VMEM=N)

Normally MADGECS checks that memory ranges specified by the USE_MEMORY option are safe for use, and displays warnings for those regions which appear to be unsafe. You can prevent these checks by specifying VERIFY_MEMORY=NO

Use spaces and tab characters freely within the configuration file. Precede comments with a semicolon.


Novell Client 32

If you require MADGECS.EXE to support adapters in the Novell Client 32 for DOS environment (with the CMDGODI.LAN driver), you must specify the CLIENT_32 parameter either on the command line or in the configuration file.

If you specify the CLIENT_32 parameter, MADGECS.EXE auto-configures the Madge adapters which are in the computer at the time MADGECS.EXE loads. MADGECS.EXE will not configure any adapters you insert subsequently.


Other Manufacturer's CardBus or PCMCIA Adapters

The Madge Card Services interface is designed for the following adapters:

You cannot use it as a Card Services for any other manufacturer's adapters, although if you specify slots to avoid, then such cards can be left undisturbed (see EXCLUDE_SLOT in Creating a Configuration File above).


Example Configuration File: MADECS.CFG

; Configuration file for use with MADGECS

EXCLUDE_IO=8000-8080 ; Do not use these I/O locations.

EXCLUDE_INT=3,5 ; Do not use these interrupts.

USE_INT=10,11 ; Use these interrupts.

DEFAULT_MEMORY=NO ; Do not allow MADGECS to pick the memory ranges which it will use.

USE_MEMORY=D000-D2FF ; Use the 12Kb memory range, D000-D2FF


Running under OS/2

Socket Services

If you are installing Madge Card Services for OS/2, ensure that you do not have any third party Socket Services software installed. MADGECS for OS/2 will always emulate Socket Services and therefore requires that the computer contains a PC Card controller that MADGECS supports.

Loading MADGECS.SYS from CONFIG.SYS

To load MADGECS.SYS, add the following line to CONFIG.SYS:

DEVICE=<path>MADGECS.SYS

Command Line Options

The command-line options for MADGECS.SYS are the same as those described in Command Line Options above, with the following exceptions:

Configuration File Options

You can configure MADGECS.SYS from a MADGECS.CFG file in the same way as is described in Creating a Configuration File above, with the following exceptions:

If you do not want to configure MADGECS.SYS, you do not need to create a MADGECS.CFG file.


See Also: