About ADF Files

These pages contain information about Adapter Description Files (ADFs), their structure, purpose, and how to differ between their many variants.

Introduction
Naming Conventions
   Adapter Card ADF Files
   Planar Board ADF Files
Copying ADFs

ADF Structure and Syntax
Adapter Description Programs (ADP)
Initialization Programs
ADF Goofs and Hints
List of Planar ADFs

Sources

Content created by Peter Wendt (original HERE). Modified by Tomáš Slavotínek.


Introduction

One of the most important things to know about the Micro Channel Architecture (MCA) is the use and purpose of the Adapter Description Files - or ADFs as they are called in short.
These ADF files are associated with the MCA adapter cards - cards that can be plugged into the MCA expansion slots.

Unlike the "Industrial Standard Architecture" (ISA), MCA is an intelligent bus, and it can query which cards are currently installed in the system. The ADF contains information about the card, its name, the resources it requires and the selectable options. The primary ADF is a plain-text file, so it can be viewed (and very carefully edited) with any usual text editor.
The IBM Configuration utility that comes with every PS/2 machine, usually on a machine-specific Reference Diskette, loads and parses this ADF file and sets the Programmable Options for the card. Most MCA cards have no jumpers or switches - all settings are changed via the Configuration Utility - either automatically, or manually by the user.

This is the reason why it's so important to have the corresponding Option Disk for any new MCA card at hand, before installing it to a MCA machine. If you don't have the right ADF, you won't be able to use the adapter. The system does not know which settings and resources the card requires, therefore it stays disabled and you end up with a configuration error any time you power on the machine. This will keep happening until you either provide the correct ADF, or remove the adapter, and re-run the Configuration Utility.

Over the years Peter and others collected ADFs for most of the MCA adapter cards that were ever made. If you know what you are looking for, go to the ADF Page and look if we have what you need.


Naming Conventions

If you have ever checked the directory of your reference disk you have probably noticed that there is a lot of files with the .ADF extension. But how does one tell which one(s) is/are needed for a particular card?

First we have talk about something called "Adapter ID". This unique* identifier consists of exactly 4 hexadecimal digits, and can be read by the MCA bus from the card. This gives us hexadecimal values from 0000 to FFFF - which is 65.536 values in total for us decimal humans. The card ID was given to the card's manufacturer by IBM, and it has to be present on the card so it can be read out by the POST routines and by the Configuration Utility.

* There were some manufacturers that used the same card ID for an entire family of cards. To make things even worse, some IDs were used by 2 or more totally different adapter boards.

Some years ago Peter wrote a program called QBMCA, which can be used to identify unknown MCA cards. It can be downloaded from the QBMCA page.

Adapter Card ADF Files

ADF files beginning with @, C, and I are associated with adapter cards:

  • @xxxx.ADF - Adapter Description File
       Purpose: describes planar POS registers, resources and options
       Format: plain-text
       Load time: system configuration, loaded and parsed by SC.EXE

  • Cxxxx.ADF - Adapter Description Program (ADP) file
       Purpose: handles initial adapter setup and some of the setup options
       Format: binary program - DOS executable *
       Load time: system configuration, loaded by SC.EXE

  • Ixxxx.ADF - Initialization File - "INITPROG"
       Purpose: power-on setup and diagnostics
       Format: binary program
       Load time: system startup, loaded by POST before calling bootloader

  • @xxxx.DGS - Diagnostic File
       Purpose: adapter diagnostics
       Format: binary program
       Load time: system diagnostics, loaded by DIAGS.EXE

Where xxxx is Adapter ID.

Planar Board ADF Files

The other files beginning with D, P, S, or J are used for planar boards and their setup. Similar to adapters, planars also have unique IDs assigned to them.

  • Dxxxx.ADF - Planar Descriptor File
       Purpose: info about MCA channels and features, NVRAM size etc.
       Format: plain-text
       Load time: system configuration, loaded and parsed by SC.EXE and SC_PSC.ADF

  • Pxxxx.ADF - Planar ADF File (equivalent of @xxxx.ADF for adapters)
       Purpose: describes planar POS registers, resources and options
       Format: plain-text
       Load time: system configuration, loaded by SC.EXE

  • Sxxxx.ADF - Planar Description Program file (equivalent of Cxxxx.ADF for adapters)
       Purpose: handles initial planar setup and some of the setup options
       Format: binary program - DOS executable *
       Load time: system configuration, loaded by SC.EXE

  • Jxxxx.ADF - Planar Initialization File (equivalent of Ixxxx.ADF for adapters)
       Purpose: power-on setup and diagnostics
       Format: binary program
       Load time: loaded after POST

Where xxxx is Planar ID.

Expansion Unit ADF Files

The last defined prefix - E, is reserved for MCA Expansion units that can be used to extend capabilities of MCA-based laptops/notebooks. The 3550 Expansion unit has Planar ID E9FF and it has this unique file associated with it:

  • EE9FF.ADF - Expansion Unit Description File
       Purpose: info about MCA channels and features, NVRAM size etc.
       Format: plain-text
       Load time: system configuration, loaded and parsed by SC.EXE and SC_PSC.ADF

* While some of the ADF files use the standard DOS executable format, they can't be used as a standalone programs, they require SC.EXE and its resources to be loaded in memory.


Copying ADFs

The text above described the relation between the adapter card and the ADF files. Usually the card manufacturer supplies an Option Disk together with every adapter. The option disk can contain many different files, but one file that must be always present is the @xxxx.ADF Adapter Description File.
Some cards need a somewhat modified setup software, some come with special diagnostic files, some need software drivers for proper function etc.

The basic rules when installing a new MCA adapter are:

  • Start the machine with the reference (either disk or partition)
  • From the main menu select "Copy an option disk"
  • Insert the option disk into drive A:
  • Let the program copy the files (may require several disk changes)
  • Leave the reference
  • Switch the machine off
  • Install the adapter card
  • Power the machine back on, it will display a configuration error
  • Run the "Set configuration" or let the machine do the "Automatic Configuration"

The "Copy an option disk" program does quite a lot:

  • Copies all files with the following extensions from the option disk to the reference disk or reference partition:

    • *.ADF
    • *.DGS (diagnostic files)
    • *.PEP (error files)

    New files are simply copied over, existing files are overwritten, if the version on the option disk has a later date.

  • The following files on reference disk or partition are replaced, if they are dated later than those already existing:

    • COMMAND.COM (customized version)
    • DIAGS.COM (the diagnostic tool)
    • CMD.COM
    • SC.EXE (The "Set Configuration" tool)
    • UPDATE.EXE (an Update utility)
    • SYSCONF (a dump of the system-configuration)

Some people install the hardware first and wait until the "Set configuration" utility complains about a missing ADF until they push in the option disk into drive A: and let the files load. While this usually works, it's not the right approach. The main reason being that the files are not copied for permanent use onto the reference disk and sometimes not all required files are loaded. This might end up in an invalid configuration or cause other trouble.

The same problem might occur, when someone manually copies the files from a ADF collection directly to the reference disk. This may work sometimes - but it will not work in all cases. I'll give some examples in the last chapter. It is a method for emergency cases or rare adapters to which option disks are no longer available, but it may not always give you the desired result.

The ideal approach is to get the right option disk and use the "Copy an option disk" option from the reference.


Sources

Most of the information presented here was taken from the following manual:

IBM Personal System /2 Hardware Interface Reference Manual - Architecture

P/N 84F8908
Form-No. S84F-9809-00
First Edition (October 1990)

The manual includes additional info about ADPs and Initialization programs that was missing from the earlier releases.

Further information was obtained by reading through several hundred different ADFs and studying their content...


9595 Main Page