Configuring MDGND.DOS and MDGND.OS2


This page provides information about:


The PROTOCOL.INI Configuration File

MDGND.DOS and MDGND.OS2 are configured through the PROTOCOL.INI file.  

The location of this file can generally be found by examining CONFIG.SYS: the '/I:' argument for the 'DEVICE=' line that loads PROTMAN.OS2 or PROTMAN.DOS gives the path to PROTOCOL.INI.  If MDGND.DOS is being used with Windows for WorkGroups, PROTOCOL.INI generally resides in the same directory as NET.EXE, the location of which can be found by examining AUTOEXEC.BAT and searching for the line that runs the 'NET' command.  If MDGND.DOS is being used with Windows 95, the PROTOCOL.INI file can generally be found in the C:\WINDOWS directory.

PROTOCOL.INI is a text file.  It consists of a number of sections, each of which pertains to a single instance of an NDIS driver.  A section consists of a bracketed module name, followed by a list of keywords and parameters that are specific to the module.  A sample section may be of the form:

    [MDGND_nif]

       DriverName = MDGND$

       IOAddress = 0x0A20

       MaxFrameSize = 17846

There is one PROTOCOL.INI section for each network adapter that is to be used.  These sections are characterised by the line:

DriverName = MDGND$

This section then describes a single network adapter module.  The protocol that binds to this module can be determined by searching the file for the section that contains the line:

Bindings = xyz

where xyz is the module name for the network adapter module.

Having located the appropriate section in PROTOCOL.INI that describes the module for a network adapter, optional parameters can be added to or removed from that section in order to alter the configuration for MDGND.DOS or MDGND.OS2 running on that adapter.  This editing can be done either manually with a text editor or through a special NDIS configuration utility.  Under OS/2, the LAPS or MPTS utility is generally available, allowing the user to edit the most useful settings for the MDGND.OS2 driver.  Under DOS, the appropriate utility depends on the type of environment in which MDGND.DOS was installed: the LAN Support Program provides the DXMAID utility; DOS LAN Services provides the INSTALL utility; Windows for Workgroups provides the Network Setup utility; and Windows 95 provides Network Properties dialog.

Not all the possible driver parameters can be changed through these special utilities.  The most effective way to change the configuration for MDGND.OS2 or MDGND.DOS is to manually edit PROTOCOL.INI.


Types of Parameter in PROTOCOL.INI

PROTOCOL.INI parameters are of the form:

    Keyword[ = Value]

An example section for loading the MDGND.OS2 is:

[MDGND_nif]

       DriverName = MDGND$

       Slot = 2

       Quiet

Parameters have one of two 'scopes': 'ADAPTER' or 'GLOBAL'.  ADAPTER parameters can be set once for each adapter (i.e. once in each MDGND PROTOCOL.INI module).  GLOBAL parameters can only be set once, either in one of the MDGND PROTOCOL.INI modules or on the command-line.

The syntax for the command-line is of the form:

DEVICE = C:\NET\MDGND.DOS [parameter [ = value] [...]]

Parameters and values must be separated by '='.  (PARM_BOOLEAN parameters do not necessarily require a value.)

MDGND.OS2 and MDGND.DOS parameters fall into three categories:

These parameters take one value.  The value takes the form of a string, whose length must lie within the limits specified for that parameter.  If the first character of the string is a digit, then the string must be enclosed in inverted comments.  An example of a PARM_STRING parameter might be

BIA = "0000F6123456"

These parameters take one value.  The value takes the form of an integer which lies between the two limits specified for that parameter.  The integer can be expressed in decimal, or in hexadecimal by prefixing the value with '0x'.  

An example of a PARM_WORD is:

IOAddress = 0x0A20

These parameters take zero or one values.  If a value is specified, it takes the form of a boolean argument, and is expressed either as a string ('Yes' or 'No'), or as an integer ('1' or '0').  If no value is specified, the parameter is interpreted as being set to 'Yes'.  

An example of a PARM_BOOLEAN is:

Quiet = Yes


Multiple Adapter Support

As described at the start of The PROTOCOL.INI Configuration File, MDGND.DOS or MDGND.OS2 can be used to drive multiple network adapters concurrently.  This is achieved by having one PROTOCOL.INI module containing the line 'DriverName = MDGND$' for each installed adapter.  The association of a protocol with an adapter is then achieved through the 'Bindings = xyz' line in the protocol's PROTOCOL.INI section, where 'xyz' is the name of an adapter module.

The association of adapter module with a particular adapter is achieved through the use of three special MDGND parameters: 'BIA', 'IOAddress', and 'Slot'.   Any number of these three can be specified in a particular module, although if the values specified are not consistent an error will be reported.  These three parameters are known as the three 'primary specifiers'.

The 'BIA' parameter can be used to specify which adapter to use by setting the argument to the burnt-in address of the adapter.  A Smart 16/4 ISA Client PnP Ringnode with burnt-in address 0000F6382946 would be selected by a MDGND PROTOCOL.INI module which includes the line:

BIA = "0000F6382946"

The 'IOAddress' parameter can be used to specify which adapter to use by setting the argument to be the base IO address that the adapter is configured to use.  For example, if a Smart 16/4 AT Plus Ringnode has been configured to use an IO range with base address 0x3A20, then the line:

IOAddress = 0x3A20

can be added to the MDGND PROTOCOL.INI module to indicate that this module is to use that adapter.

The 'Slot' parameter can be used to specify which adapter to use by setting the argument to the number allocated to the physical slot in which the adapter sits.  For example, a Smart 16/4 PCMCIA Ringnode inserted in socket 1 would be selected by a MDGND PROTOCOL.INI module that included the line:

Slot = 1

Having tied a particular module to a specific adapter, further parameters for that adapter can then be set.

If none of the above three parameters is set in a multiple adapter environment, then it is undefined as to which adapter a particular module will use.


MDGND.OS2 Parameters

Summary

 

Name

Scope

Parm-Type

Default

Min

Max

DriverName

ADAPTER

PARM_STRING

<none>

<1>

<9>

BIA

ADAPTER

PARM_STRING

<none>

<12>

<12>

NodeAddress

ADAPTER

PARM_STRING

<none>

<12>

<12>

IOAddress

ADAPTER

PARM_WORD

<none>

0x0000

0xFFFF

Slot

ADAPTER

PARM_WORD

<none>

0

31

MaxFrameSize

ADAPTER

PARM_WORD

4484

256

17846

Force4

ADAPTER

PARM_BOOLEAN

FALSE

FALSE

TRUE

Force16

ADAPTER

PARM_BOOLEAN

FALSE

FALSE

TRUE

Force100

ADAPTER

PARM_BOOLEAN

PARM_BOOLEAN

FALSE

TRUE

DTR

ADAPTER

PARM_BOOLEAN

<none>

FALSE

TRUE

WOL

ADAPTER

PARM_BOOLEAN

FALSE

FALSE

TRUE

PIO16

ADAPTER

PARM_BOOLEAN

FALSE

FALSE

TRUE

DPMS

GLOBAL  

PARM_BOOLEAN

<none>

FALSE

TRUE

Quiet

GLOBAL  

PARM_BOOLEAN

FALSE

FALSE

TRUE

Kill_PM

GLOBAL  

PARM_BOOLEAN

FALSE

FALSE

TRUE

InitOnLoad

GLOBAL  

PARM_BOOLEAN

FALSE

FALSE

TRUE

HotSwap

GLOBAL  

PARM_BOOLEAN

FALSE

FALSE

TRUE

UnAttend

GLOBAL  

PARM_BOOLEAN

FALSE

FALSE

TRUE

The 'Max' & 'Min' values for PARM_STRING parameter types refer to the limits for the length of the string.

PARM_BOOLEAN values are expressed as 'TRUE' or 'FALSE', but the parameter argument must be expressed as 'Yes' / '1' or 'No' / '0'.  If no argument is supplied, a value of TRUE is assumed.

If a parameter defaults to '<none>', then the driver will select the most appropriate value for this parameter. For example, if the DTR parameter is not specified, the driver will use DTR if it can else it will use Classic mode.


Detail

This parameter is required in every section in PROTOCOL.INI.  For those sections belonging to the Madge Token-Ring NDIS driver, the value must be 'MDGND$'.  The PROTOCOL.INI file may contain multiple sections with the 'DriverName = MDGND$' entry, in which case each section is used to configure a separate adapter.  The association of any section with one particular adapter is achieved through the use of one of the 'BIA', the 'IOAddress', or the 'Slot' parameters, which are described below. Some older PROTOCOL.INI files may use a slightly different convention for     multiple sections with one individual driver: a digit may be placed before the '$', so the entry may become:

'DriverName = MDGND2$'.

Such entries are not recognised by MDGND from LSS 6.1(1), and it will be necessary to edit PROTOCOL.INI to remove the extraneous digit.

This parameter can be used to specify the Burnt-In Address (Universally Administered Address) of the adapter that this section of PROTOCOL.INI should use. For example, if an adapter has been manufactured with a Burnt-In Address of '0000F6123456', then the entry:

'BurntInAddress = "0000F6123456"'

will force the driver to use that particular adapter.  This will also associate the current section in PROTOCOL.INI with that adapter, and the other parameters in that section will also refer to the same adapter.

If no Burnt-In Address is specified, then the driver will use the first available adapter.

This parameter can be used to specify a locally-administered address for the adapter.  This value will override the burnt-in address that the adapter would otherwise use.

For example, if the adapter has been locally assigned the address '400012341234' then  the entry 'NodeAddress = "400012341234"' will force the adapter to use that particular address.

If no Node Address is specified, then the driver will use the adapter's burnt-in address.

This parameter can be used to specify the IO address of the adapter that this section of PROTOCOL.INI should use.  For example, if an adapter has been configured to use IO location 0x0A20, then the entry 'IOAddress = 0x0A20' will force the driver to use that particular adapter.  This will also associate the current section in PROTOCOL.INI with that adapter, and the other parameters in that section will also refer to the same adapter.

If no IO address is specified, then the driver will use the first available adapter.

This parameter can be used to specify the slot number for the adapter that this section of PROTOCOL.INI should use.  This parameter will only have an effect on the following adapters:

For example, if an adapter has been placed in slot 1, then the entry:

'Slot = 1'

will force the driver to use that particular adapter.  This will also associate the current section in PROTOCOL.INI with that adapter,  and the other parameters in that section will also refer to the same adapter.

If no slot number is specified, then the driver will use the first available adapter.

This parameter can be used to specify the size of the largest frame that the adapter can transmit onto or receive from the network.

The default value for MDGND.DOS is 1550 bytes if DPMS.EXE is not loaded, and 4092 bytes if DPMS.EXE is loaded.  Increasing the value in the non- DPMS case will improve performance, but will reduce the amount of conventional DOS memory available to other applications.  If available DOS memory is not restricted, then a value of 4092 bytes is recommended, viz:

'MaxFrameSize = 4092'.

The default value for MDGND.OS2 is 4484 bytes.  If the adapter is being used on a 16Mbps ring, and the machine has plenty of memory, this value can be increased to improve performance.  The maximum value on a 4Mbps ring is 4484 bytes.  The maximum value on a 16Mbps ring is 17846 bytes.

If MDGND is being used with a 802.2 protocol stack for Host connectivity, 'MaxFrameSize' must be set to a value at least as large as the configured PIU size plus the maximum size of the Token-Ring header.  For example, if the PIU size is set to 1994 bytes, 'MaxFrameSize' should be set to at least 2042.

The above three parameters are used to force the ring speed to a particular value. If the adapter is unable to open at the specified ring speed the adapter will try to open at any ring speeds it does support.

The Force4 and Force16 parameters are useful when opening into a local ring hub.  If this adapter is the first to open onto the ring the ring speed will not be auto-detected so the adapter must be force to open at a particular speed.

The default values for these parameters are FALSE.

This parameter is used to force the adapter to open in DTR mode on a  switch port.  If the adapter is not plugged into a switch port or the port is configured for Classic only operation the adapter will fail to open and MDGND will not bind to that adapter.

If this parameter is not present the adapter will open in either DTR or Classic mode.

If this parameter is set to false the adapter will open in Classic mode. The default value for this parameter is to use either DTR or Classic mode.  DTR mode will be used in preference to Classic if a choice is available.

If this parameter is true then when the machine is shutdown (under OS2) or the MDGSLEEP utility is run (under DOS), the adapter will go in to sleep mode.  In this mode the adapter draws power from an auxiliary power supply and remains open on the ring.  If the adapter receives a "magic" packet the machine will reboot.  This parameter is only  relevant to adapters which support the Wake-On-LAN mode of operation.

The MDGSLEEP utility with no parameters will put the card into sleep mode and attempt to shut the machine down using the APM BIOS.

If a single parameter s is given MDGSLEEP will only send the adapter to sleep and will not attempt to shut the machine down.

If a single parameter o is given MDGSLEEP will not send the card to  sleep and will only attempt to shut the machine down.

MDGSLEEP ? gives a brief help message.

The default value for this parameter is FALSE.

If this parameter is true the adapter will be forced to use PIO rather than DMA if the adapter supports PIO.  If the adapter does not support PIO and this parameter is true the adapter will use DMA anyway.

The default value for this parameter is FALSE.

This parameter can be used to specify whether MDGND.DOS should use Novell's DOS Protected Mode Services interface.

The default is to use DPMS only if DPMS.EXE is loaded before MDGND.DOS.

If the parameter is set to FALSE then MDGND.DOS will not use DPMS whether DPMS.EXE is loaded or not.  If the parameter is set to TRUE then MDGND.DOS will fail to load unless it can locate and use a previously loaded DPMS.EXE.

This parameter can be used to force the driver to not print any banner, informational message, or warning message at load-time.  However, if an error occurs, the driver will print the banner and then display the error message. The default value for this parameter is FALSE.

This parameter can be used to permanently disable promiscuous-mode (PM) support on any of the following adapters:

This parameter only need be set on one occasion when MDGND loads on this adapter.

The default value for this parameter is FALSE.

This parameter is used to control when the adapter will be initialised.

If information about the adapter is required to be displayed on the screen this parameter must be TRUE.

When this parameter is FALSE the driver will use marginally more memory than when this parameter is TRUE.

The default value for this parameter is TRUE in the DOS driver  and FALSE in the OS2 driver.


Operating Restrictions

Support for DPMS.EXE

In order for MDGND.DOS to operate with DPMS.EXE, EMM386.EXE v4.45 (from MS-DOS v6.0) or above must be loaded before DPMS.EXE is loaded.

MDGND.DOS cannot be used with the DPMS interface provided by Novell's EMM386.EXE driver loaded with 'DPMS' specified on the command-line.

Support for Windows for Workgroups and Windows 95

If MDGND.DOS is loaded through the NET.EXE program provided by Microsoft with Windows for Workgroups or Windows 95, then HIMEM.SYS, EMM386.EXE (with '/NOEMS' on the command-line) and UMBs must be loaded in CONFIG.SYS.  For example:

DEVICE = C:\WINDOWS\HIMEM.SYS

DEVICE = C:\WINDOWS\EMM386.EXE /NOEMS

DOS = HIGH, UMB


See Also: