Also see About ADFs
Micro Channel Architecture Handbook, February 1, 1991
(ISBN: 0-13-583493-7, Pages 177-179, 182-186)
Ed.
The copyright date is 1990. The information is current
as of the Type 1 J and K complexes. The Set Configuration
utility, SC.EXE, was updated around 1991 - 1992. New
keywords were introduced, the CMOS size went from 50 B
to 112 B, and NVRAM size from 2 KB to 8 KB. Little technical
information exists from 1992 forward. System POS registers for
later systems vary considerably from the early systems, and there
are differences even between different models of the same
generation.
As I was laboriously pecking this out with two fingers,
it seemed that the writers chose to fill up empty space
to make the book bigger... Still, the book is the best
entry to mid-level book on Miro Channel Architecture out
there. Also, one of the very few books on MCA out there.
I chose this chapter to fill out our understanding of
POS, for adapters as well as system boards. Don't be
surprised if better information comes in and starts to
replace this text.
Programmable Option Select Operation
The normal operation of the POS
system requires the carefully choreographed interaction
of configuration memory, expansion board hardware, and
several special files, some of which are used during
setup and some during everyday use. This chapter
explores the relationships of those files to POS
procedures and how the entire POS system works together
to make Micro Channel computer configuration painless.
Configuration “Reference Disk” File Usage
In some ways, the programmable option
select system of a Micro Channel computer is like the
classic factory, combining raw materials from all over
to make a single product, a smoothly functioning
machine. Instead of steel, plastic, baling wire, and
bubble gum, however, POS combines such diverse elements
as hardware registers and battery-backed CMOS RAM with
well-documented procedures to make a fully functioning
system. Some vital parts of our understanding of this
factory system are still lacking, however. So far, our
discussion of the parts of POS have neglected the
transportation and storage systems for the raw materials
used by the process. In the Micro Channel world, the raw
material for the programmable option select system is
information. And the preferred means for transporting
and storing this information is the familiar floppy
disk.
The familiar reference disk is only
one part of the disk-based portion of a POS. The
Reference Disk contains the procedures needed for
setting up a system but holds only a bare minimum of the
necessary set-up information, descriptions of a few
common IBM-made expansion products. The needed set-up
information for other expansion boards must be provided
to POS for the system to configure those products.
The delivery vehicle for this
additional set-up information are the diagnostics and
the Option disk that accompanies most Micro Channel
expansion boards. Files on the disk store all the data
that POS needs to configure the board. In addition, it
may hold special programs to test the board during set
up and whenever its computer host boots up.
These set-up data are relegated to
floppy disk for several reasons, not the least important
of which is that floppies are the preferred data
exchange medium for personal computers. By putting the
data on disk rather than locking it into ROM memory on
each expansion board, the set-up information can be kept
fresher and can be altered quickly to reflect changes in
a product. Moreover, it saves the expense of additional
ROM (some products have a prodigious amount of set-up
data) and the address space used by that memory.
Three basic files are used by
programmable option select: adapter description files,
which tell POS what a particular expansion board is and
how it logically fits into the host system; adapter
description program files, which help POS initially set
up some expansion boards and initialization files, which
are needed to bring some boards to life each time the
host system boots up. Diagnostic files, which contain
messages that aid in testing the board; and error files,
which hold messages about failures to the board and its
operation are often contained on the same diskette.
Adapter Description Files
The numbers assigned to each
expansion board have two very specific purposes. First,
they identify the set-up data file contained on the
diskette that accompanies nearly every Micro Channel
expansion board. These data are contained in special
files called adapter description files. These files can
be identified because all must use a specific file name
extension, .ADF. The file associated with a given
expansion board is simply an “at” sign (@) followed by
the adapter identification number and the standard
filename extension, .ADF. Hence, a typical adapter
description file-name would look like this if you did a
directory of a disk storing one:
@2234.ADF
Other files are also keyed to the
adapter identification number. These include two types
of program files used in POS set up and operation, as
well as diagnostic files and error messages that can be
displayed through the system’s Power-On Self Test (POST)
routine. The latter two of these also use the same
initial character as adapter description files, the “at”
sign, but can be distinguished by their filename
extensions, which are .DGS and .PEP, respectively.
The contents and arrangement of data
within an adapter description file are rigidly
controlled by the Micro Channel specification. The file
must contain the following information, and in the
following order, the adapter identification number, the
name of the expansion board associated with the file,
and the number of bytes of data used by the board for
the programmable option select facility.
In addition, the file may contain
other information to be used in setting up the expansion
board. Among those details, the file may specify the
fixed resources that are used by the expansion board.
These resources include the input/output address ranges
used by the board, the interrupts that may be used by
the board, the arbitration level at which the board may
be set, and any memory range in RAM or ROM that the
board uses. These lists contain several alternate values
that may be selected during the configuration process.
Ed.
Some adapters may only have -ONE- value choice for a
resource and are essentially fixed. If the resource
cannot be shared [example, non-shareable interrupt] then
the other adapter -MUST- use a different value.
Expansion boards that will take
control of the bus through the Micro Channel’s bus
arbitration system must be programmable to accept any of
the 15 possible arbitration levels allowed in the
system. Such boards include both bus masters and DMA
slaves. The .ADF file defines the permissible settings
for each board design.
Further, any board using the address
space in the normal ROM BIOS area of the host computer –
absolute memory locations from C0000(Hex) to EFFFF(Hex)
– must also allow the relocation of the address space
used to one of the 16 start addresses that are used
under the POS scheme. The defined selection of address
space is also included in the .ADF file.
The adapter description file also may
contain information that’s loaded into the system
configuration utility to give the user power to select
various board options. The adapter description file
includes the name of each item that can be altered by
the user, a prompt string associated with each item to
give the user the general ideal what the item does, and
the choices that the user can make.
The Micro Channel Configuration
Utility specification prescribes exactly how the adapter
description file is to be arranged. The file consists of
nothing more than ASCII text. Each block of information
is defined by a keyword prescribed in the Micro Channel
Utility specification. A sample adapter definition file
is shown in Figure 13.1. Ed.
Not shown for brevity’s sake.
These files are created by the
manufacturer of the expansion accessory and must be
matched exactly to the features and options of that
product. Although you can tinker with adapter
description files using any text editor, the results may
not work for setting up your system. Potentially,
errors, loss of data or permanent damage to the card,
systems, or other cards in the system may result as
well.
Ed.
Some judicious tinkering may be done AFTER examination
of the card’s contacts on the edge connector, comparison
to other like cards, pondering the FixedResources in the
ADF... BUT playing with registers willy-nilly can send
the card / system into never-never land. Tinkering with
system .ADFs is fraught with hazard.
The adapter description files
required by a given expansion board must be located on a
copy of the system Reference Disk that’s shipped with
every PS/2 (and compatibles). You normally cannot copy
these files to your original Reference Disk because the
original is write-protected. Anyhow, it’s not such a
good idea to risk damage to the original. Always make a
disk copy of your Reference Disk and put the original in
a safe place.
When the Micro Channel system set-up
program runs, it scans through all of the system’s
expansion slots to read all of the adapter
identification numbers. It scans the Reference Diskette
for all adapter description files and their associated
Help and Diagnostic files that match the identification
numbers found for each slot. The program reads the
information from each file and plugs it into its
procedures. For example, the name and description of the
device in a slot is exactly as it appears in the adapter
description file associated with the board in the slot.
The adapter description file also
tells the set-up program which values to load into each
of the registers on the expansion board after set up is
completed. The adapter description file makes the match
between the parameters displayed on the screen (say, a
choice of several port names, COM3 or COM4) and the bit
values stored in the registers on the expansion board.
Of course, the expansion board itself understands the
same code values for these option settings, because this
intelligence built into the hardware.
Some adapter boards that are designed
to exactly mimic their official IBM equivalents are not
accompanied with option diskettes. The boards are
specified to respond to the .ADF file written for the
IBM design. The IBM Reference Diskette itself contains
several adapter description files for the more common
official IBM expansion boards. If you want to know what
these files are for, just browse through their contents
with a text editor or word processor.
As a result of this seemingly
complete arrangement and the interrelationship between
adapter description files, adapter identification
numbers, and the IBM configuration procedure, the set-up
program looks as if it always knows everything there is
to know about all the expansion boards in your system.
Through the facility of the adapter description files,
it does.
ADF Name Prefixes
See ADF Naming Conventions.
Adapter Description Program Files (ADPs)
Although POS is a thorough and very
complete configuration system, there are some things
that it just cannot do. Because the entire procedure is
operated by the host computer’s microprocessor, it is
limited to controlling features that fall within the
purview of the microprocessor. Other specialized
hardware may also use memory or other features in
territory that’s normally off-limits during the normal
operation of the host computer system. Yet many such
features need to be initialized and tested when a
computer is configured. POS cannot, for example, reach
directly into expanded memory specification (EMS)
bank-switched memory, because that memory is not within
the addressing ranges of the system microprocessor.
Traditionally, manufacturers of
products with proprietary features have developed their
own set-up programs. Run after the new hardware is
installed, these utilities enable the host computer to
make the necessary hardware adjustments and tests. Of
course each expansion product required its own
configuration procedures and consequently its own
program. Although the programs used by a given
manufacturer for its product line may have had some
unifying aspects, each such custom configuration program
was necessarily unique.
While there is no technical reason
such proprietary programs cannot be used in Micro
Channel computer systems, there is a very practical
reason. They are completely contrary to the basic
programmable option select philosophy of a standardized,
integrated set-up interface that minimizes confusion. If
every expansion board required its own set-up
procedures, there would be no reason for POS in the
first place.
To bring these errant sheep back into
the fold and extend the reach of programmable option
select, IBM added adapter description program files to
the basic configuration repertory. The only system
resources that can be configured by ADP is memory. In
essence, adapter description program configuration files
are simply the old customized set-up routines hooked
into normal programmable option select operation. They
are normal executable files (the kind that would
ordinarily have an .EXE filename extension) that run
like any other. POS is imbued with enough knowledge to
run these programs at the appropriate time. The process
has been melded into normal POS operation so that the
programs run completely invisibly. In fact, these
programs are forbidden to write messages on the screen
because such text would interfere with normal POS
operation. You might never know that an adapter
description program file is being used.
WBST: The whole
SC.EXE to ADP "overlay" call interface was changed and
greatly enhanced (to support multiple passes to optimize
resource allocations) when upgrading to V2.21. I've not
analyzed *all* the capabilities, but it may be that a
"message text block" parameter can be passed back (if
ever necessary), possibly with an error indication code
or whatever, to be displayed in a pop-up window by
SC.EXE.
The original (older) ADF/ADP interface was
quite demanding enough at the time. The re-issued (updated,
newer and re-structured) HITR manual set was just too
much added expense, at the time, to be able to afford in
good conscience (~£400). Also, the crucial parts were
not clear enough to be able to selectively acquire the
updated sections most relevant to this aspect.
Even so, you can identify program
configuration files by looking for their telltale .ADF
filename extension, the same as used by adapter
description files. They are distinguished by using the
letter “C” as an initial character, which stands for
“Configuration.” Following the initial “C” is the
adapter identification number corresponding to the
device with which the file is associated.
Because of the .ADF filename
extension, adapter description program files are
ordinarily copied via the set-up utility with other
set-up files when you use wildcards for filenames.
Moreover, the .ADF extension prevents you from
accidentally (or intentionally) running one of these
programs from the command line, the results of which are
apt to be disastrous. For example, should you have data
in EMS memory, the configuration program associated with
that memory is likely to erase every byte stored there
as part of its set-up process. Programmable option
selects know about the unique nature of these files,
however, and loads and executes them, notwithstanding
their lack of the proper .EXE filename extension.
Initialization Files
Just as some expansion board
facilities are untouchable by the system microprocessor
during the configuration process, they may also be
unreachable before special device drivers are loaded
through the computer’s CONFIG.SYS file. The expansion
board could not do anything – it couldn’t even be tested
to ensure that it was working properly – until its
software device driver was loaded through CONFIG.SYS.
Anyone who installed an EMS board in his computer is
familiar with the result. After the computer runs
through its own diagnostics and boots up, it pauses for
a usually unbearable time while it goes through a second
diagnostic process, checking each byte of the EMS
expansion board. The initial purpose for initialization
files was to support adapters that needed a program to
run to initialize them at every power-up, or those that
did not implement a ROM for that purpose. The use of
initialization files is discouraged as they are severely
problematic in media-less systems.
For PCs, ATs, and other primeval
computers, that was okay. People who used them were
accustomed to waiting for all sorts of system functions.
In theory, the same procedures could be added to Micro
Channel computers. But these add-in diagnostics have a
big problem – they don’t start until too late. As a
result they don’t meld with the Micro Channel
philosophy.
To understand why add-in diagnostics
don’t cut it in Micro Channel computers, imagine what
happens when the EMS board fails catastrophically. In a
PC or AT, the symptom is far from subtle – contagious
death. The ills of the board spread to the rest of the
system. Odds are that the host computer won’t boot.
Diagnosing the malaise means unbolting the computer’s
case and one at a time pulling expansion boards out of
it to see which one is lethal. With memory boards in PCs
and XTs these manual diagnostics are particularly
bothersome in that system-board DIP switches may need to
be reset depending on which board is removed from the
bus.
This sort of
search-for-the-destroyed-board procedure is exactly what
the Power-On Self Test of Micro Channel computers is
supposed to eliminate. The computer is supposed to
diagnose its own ills. And, of course, it can’t perform
that task very well if it is not working at all.
To integrate the power-on diagnostic
and set-up procedures used by expansion boards with the
overall Micro Channel scheme, the POS uses another
special kind of file, initialization files. Much as
adapter program files are executed during the system
configuration procedures, the initialization file runs
during Power-On Self Test. The diagnostic and set-up
procedures are in executable-file form, although the
file itself wears an .ADF extension instead of the
normal .EXE. The reason for the change of extensions is
exactly the same as for adapter Program Files – it
prevents anyone from inappropriately executing the
program from the DOS prompt) or any other time). The
initialization file is distinguished from adapter
description files and adapter program files by the use
of the letter “I” as the first character in its
filename. The “I” is then followed by the Adapter
Identification Number associated with the expansion
board with which the Initialization file is associated.
WBST: Also, any
Ixxx.ADF/Jxxxx.ADF files are correctly called "Track-0
initializer Adapter Descriptor Programs (ADPs)" as they
are stored by SC.EXE V2.21 within the first "track" of
HD 0 (indicated by 80h as a parameter to Int 13h calls),
as mapped by (C)BIOS Int 13h, and loaded and executed,
by descending priority order, prior to the "boot sector"
of the selected boot HD @ 0:7C00.
Normally, POST executes the
initialization files before the host computer boots up,
if the host is booting from drive C. See Chapter 11 for
the procedure. If an expansion board requires an
initialization file that POST cannot find on the boot
disk, it will prompt you to insert a floppy holding the
required file. If you don’t satisfy this demand, POST
will inactivate the board and continue with the power-on
sequence.
Because the initialization of some
expansion boards may be dependent on other boards being
properly set up, the programmable option select
specification allows manufacturers to give each
Initialization file a priority. Initialization files are
run in order of their priorities. This priority is
controlled by an entry in the adapter definition file
associated with the expansion board using the InitProg
keyword. While the priority of any board can be set to
any value between 0 and 127, values outside the range 30
to 80 are reserved by IBM for special situations and
applications. Although you could change this priority by
altering the file with any text editor, the result may
be unpredictable. In other words, you should NEVER
tamper with an adapter description file.
Ed.
Never say never, but due care is recommended if you do...
Diagnostic and Error Files
The other two special files used by
the programmable option select procedure are simply
convenient receptacles for little-used explanatory text,
the messages that are used to explain the results of
diagnostic procedures and errors. By using separate
files for this text, the need to include such text in
on-board memory is eliminated and adapter description
files can be maintained at a reasonable size. Many
expansion boards contain brief error messages in their
on-board BIOS extensions, which not only consumed
valuable memory bytes, but also ate away at the amount
of address space available for use by other expansion
boards. Only a finite amount of “high” memory is
available, and text that might never be used (you hope
never to see an error message) would waste this valuable
resource and during diagnostic procedures only a portion
of memory may be known to be defect free.
As with other POS files, diagnostic
and error files are keyed to particular expansion boards
by including the board’s adapter identification number
in the filename. As noted earlier, error files use the
extension .PEP, and diagnostic files use .DGS. Note that
these files are used for the “wordy” versions of
messages. Even if these files cannot be found, terse
number codes representing the messages will be
available. In that way, these files can be seen as
optional – your Micro Channel computer will operate even
if they are not available. But you’ll be happier that
they are there. You’ll instantly know what’s wrong
without having to search through a technical manual for
an error code.
Ed.
So, we will instantly know what’s wrong... Riiight...
WBST: The
single-diskette combined Reference *and* Diagnostics
Diskette, as opposed to the separate two-diskette
Reference and Diagnostics Diskettes for later systems
use a fairly simple transfer mechanism when switch from
the Reference Programs to the Diagnostics programs - The
Reference Command and menu system program COMMAND.COM
transfer to the Diagnostics Command and menu system
program CMD.COM, with intervening diskette switch prompt
for the two-diskette pairs.
CMD.COM accepts a command invocation parameter
(presumably A or /A, it doesn't matter too much) to
trigger the Advanced Diagnostics rather than the
standard, uncontrollable "Test the Computer" option from
COMMAND.COM's Main Menu.
Now this is where it might get a little complicated to
comprehend for those not well versed in Configuration
and Diagnostics usage. One of the primary reasons for
the 2-diskette sets was insufficient space for *all* the
possible .ADFs and .DGSs which might be added to the
"Backup Copy/Copies!!!" if playing around with many
different adapters. This has a knock-on disk space
requirements *and* available memory effects as both
COMMAND.COM and CMD.COM are basic "below the line"
PC-DOS programs running in the 640KB address space,
early systems having PC-DOS 3.3 core IBMBIO.COM and
IBMDOS.COM kernel files, later ones PC-DOS 5.0 core
kernel files.
It is entirely possible for Advanced Diagnostics (which
attempts to load *every* available *.DGS file into the
address space, rather than selectively, by the installed
adapter list) to run out of available memory and exclude
some needed DGS file. This situation then requires
judicious deletion of files related to non-installed
adapters from the diskette(s) and/or
Convenience/Reference Partition. This is where Bob
Eager's bootable SYSPART utility diskette comes in
useful, as it provides a DOS accessible C:\ which is
*only* the Reference Partition (or Convenience
Partition? I haven't checked that out).
Summary
The final element of programmable
option select is the disk file, used for carrying set-up
data for new expansion options to your computer system,
and for economically storing extensive set-up data so
that it need not waste expensive solid-state memory. In
the Micro Channel design, the POS system uses three
distinct types of files, separated by function and
identified by their filenames (all linked to the adapter
identification number): adapter description files, that
tell your system what each option does; adapter
description program files, that hold set-up procedures
for initially configuring expansion options, and
initialization files, which provide programs to test and
set up expansion options each time you boot up your
Micro Channel computer. Diagnostic and Error files,
message carriers that give your computer an on-screen
voice to tell you what may be ailing it are also
typically resident on the same disk.
These files, combined with hardware
registers and expansion board features, result in a
single, unified set-up system that takes command both
when you install new options and when you run your Micro
Channel machine each day. It’s a complete package that
relieves you of the tough work of the configuration
process and gives it instead to the one entity best able
to carry it out – your computer.
|