About ADFs ...

ADF Keyword (Part 1)

Back To The Content-Page
Back To Previous Chapter

ADF Formats:
  • File names are @{Card-ID}.ADF
  • The file is an editable ASCII-Text
  • The file is not case-sensitive,
    Keywords can be uppercase, lowercase or mixed
    The case is preserved for explicitely marked text-strings
  • Blanks, tabs and new lines are ignored, except for text-strings
    The file should not include Tab-spaces at all
  • All lines beginning with a semicolon (;) are comments and are ignored

ADF Syntax:

{ }an optional item
{ }*0, 1, 2 ... items allowed
{ }+1, 2, 3 ... items allowed
x | yeither x or y allowed
x {n}n numbers of x required
[0-9]+one or more decimal digits

The above table shows the meaning of special symbols used in the following explanation of the ADFs syntax. Values shown as hexadecimal can be specified as decimal or as hex using the Intel format. Values shown as binary must be specified as binary.

adf_file = card_id card_name nbytes {fixed resources} {system_memory} {initial_program} {lock_enable} {adress_width} {programmed_io} {items}*
This statement defines the content of an ADF.
The following definitions describe each parameter in detail.

card_id = AdapterId number
Each ADF must contain the card_id parameter. The character string AdapterId is a keyword and must be present. The Set Configuration program looks for this ID, which matches the ID used in the filename.

AdapterId 0E001h

card_name = AdapterName string
Each ADF must contain the card_name parameter. The character string AdapterName is a keyword and must be present. The string following the AdapterName keyword is displayed as the adapter name in the Change Configuration and View Configuration screens The length of the AdapterName string is limited to 66 characters.

AdapterName "IBM Token Ring Adapter 16/4 /A"

nbytes = NumBytes number
Each ADF must contain the nbytes parameter. It defines the number of POS bytes used by the adapter. The number of POS bytes used includes all bytes from POS[0] to the last POS byte used. Even if the card defines and uses only POS[3] the number for NumBytes must be 4.

NumBytes 4

fixed_resources = FixedResources pos_setting resource_setting
The fixed_resource parameter is optional. It defines those resources required by an adapter and the corresponding POS data. The character string FixedResource is a keyword and must be present if the adapter has a specific system resource it must use, such as hardwired I/O adresses or interrupt level.

FixedResource POS[1]=XXXX010Xb int 3

system_memory = SysMem granularity {adress_size}
The system_memory parameter is required for adapters that use an ADP to configure their system memory. The character string SysMem is the keyword.
The granularity field is required and specifies the smallest block of memory, which can be disabled on the adapter. The block size must be divisible by 4KB. The value used in this field specifies the number of 1KB blocks.
The adress_size field specifies the number of adress bits supported by the adapter. It can be either 24 or 32 bits. The default is 24.

SysMem 1024 32

Note: This keyword requires an ADP !

initial_program = InitProg attribute
The initial_program parameter is required for adapters that have an initialization program associated with them. The character string InitProg is the keyword. The initialization programs are loaded onto the fixed disk and executed before the operating system is booted from the fixed disk.
The attribute is a number from 0 to 127 and determines the order in which the init programs are run. The lower numbers are run first. Values outside the range from 30 to 80 are reserved.

InitProg 30

Note: This keyword requires an Init Program !

lock_enable = Lock
The lock_enable parameter is optional. The keyword Lock enables the Lock function.
An adapter that wishes to communicate with other masters through the memory semaphore protocol (an invisible test and set operation, such as an Exchange instruction) must indicate this to the Set Configuration program by the Lock keyword.


items = {{named_item | input_item} | {begin_device}}*
The items parameter is optional and can be any combination of the named_item and input_item parameters or it can be any number of begin_device parameters.

named_item = NamedItem prompt {named_choice}+ help
The Named_Item parameter is optional and it defines a field that provides a choice of one or more resources. Each Choice field sets specified POS bits to a unique setting used to identify resources assigned to the adapter.
The character string NamedItem is a keyword and must be present if the adapter can be configured to use different resources. The adapter determines the resources to which it is configured by how the POS bytes are set.
When a NamedItem is defined, it must be accompanied by a prompt, at least one named_choice and a help field.
To provide flexibility during configuration, each named_item should contain more than one choice.

Note: Each ADF is limited to 10 named_items per adapter !


   Prompt "SCSI Parity Checking On/Off"
      Choice "On"  pos[2]=xxx1xxxxb
      Choice "Off" pos[2]=xxx0xxxxb

       "The host adapter will check SCSI Parity if 'On'.
        (Default On)"

input_item = Input prompt pos_byte_setting range help
The input_item parameter is optional. It defines a field that accepts data from user input to initialize a single POS byte or define specific bits with this byte.
The character string Input is the keyword. The user can enter up to a 3-digit positive integer (0 - 255). The bits to be altered are defined using 0 or 1. The X specifies bits that remain unchanged by the input. The input is aligned with the least-significant bit of the pos_byte_setting not defined as X. The two values are merged using a logically OR function before the new mask is applied and the result is stored. The range defines the limits of the accepted input values. The first number listed in the range will be used as input for the adapter during automatic configuration.


   Prompt "Enter value" pos[0]=XXXX1111b 0 - 15

   Help "Enter a value from 0 - 15"

prompt = Prompt string
The prompt is required when a named_item or input_item is defined. The prompt is used to define a title for a NamedItem or an Input field.
The character string Prompt is a keyword and must be present when a NamedItem or Input parameter is present. The string following the Prompt keyword appears after the adapter name in the Change Configuration or View Configuration screens.
Following the prompt string is a field that can be toggled in Change Configuration screen if two or more named_choices are defined. The length of the prompt cannot exceed 38 characters.

Prompt "SCSI Parity Checking On/Off"

named_choice = Choice {valid_check} choice_name pos_setting resource_setting
At least one named_choice is required when a Named_Item is defined.
The character string Choice is a keyword and must be present when a NamedItem is present. The named_choice field is specified after the prompt. Each choice must contain the choice_name, which describes the current choice. The choice_name string must not exceed 28 characters. Each Choice must define a pos_setting for at least one POS byte that uniquely identifies the resource_setting defined in the named_choice.

Choice "IO 3F8h" POS[0]=XXXX01XXb io 03f8h - 03fbh

valid_check = Vcheck
The valid_check parameter invokes an ADP that checks the specified choice for validity.
The character string Vcheck is the keyword. The ADP ensures, that the choice is valid for the system configuration. If the Set Configuration program is unable to load the ADP, the choice is treated as invalid. If all the choices within a named_item are invalid, the Set Configuration program deletes the named_items from the list of items for that adapter.

Note: This keyword requires an ADP !

Continued in the next chapter !

IBM and MicroChannel are Trademarks of International Business Machines Corp. (USA)

Go to MCA-Index
Visit my Homepage

© 1998 by Peter H. Wendt / pw-software production