Root , спасибо за ссылки по теме

Root, спасибо за ссылки по теме и основные шаги предпринимаемые по редактированию BIOS-а в моем случае. Некоторые из инструментов мне пригодятся позже, когда успешно пройду пункт "в) редактируем текстовым редактором":) . В шаге 0 ты упоминал исходники BIOS-ов, подскажи пожалуйста где их можно взять?

Я получил ASL-код (помог мне в этом подвернувшийся под руку AD.EXE [AD - ACPI Dump. Version 0.91. Jan 09 2002 от Phoenix], который совместил шаги а и б, надеюсь правильно). Поиск по "больным" местам (порт 4d0, на него ругался ACPI от Windows XP) показал два упоминания в ASL-коде:

....
    OperationRegion(ELCR,SystemIo,0x04D0,0x02)
    Field(ELCR /* \ELCR */,ByteAcc,NoLock,Preserve)
    {
        ELC1,8,
        ELC2,8
    }
....
                Device(SYSR)
                //
                // SYSR - Motherboard Resources
                //
                {
                    // _HID - Hardware ID
                    //
                    // Supplies OSPM with the device's Plug and Play
                    // hardware ID.  When describing a platform, use of
                    // any _HID objects is optional. However, a _HID
                    // object must be used to describe any device that
                    // will be enumerated by OSPM. OSPM only enumerates
                    // a device when no bus enumerator can detect the
                    // device ID. For example, devices on an ISA bus are
                    // enumerated by OSPM. Use the _ADR object to
                    // describe devices enumerated by bus enumerators
                    // other than OSPM.
                    //
                    Name(_HID,EISAID("PNP0C02")) // Motherboard Resources
                    // _UID - Unique ID
                    //
                    // Provides OSPM with a serial number-style ID of a
                    // device (or battery), which does not change across
                    // reboots. This object is optional, but is required
                    // when the device has no other way to report a
                    // persistent unique device ID. When a system has
                    // two devices that report the same _HID, each
                    // device must have a _UID object. When reported,
                    // the UID needs to be unique only among devices
                    // with the same device ID. OSPM typically uses the
                    // unique device ID to ensure that the device
                    // -specific information, such as network protocol
                    // binding information, is remembered for the device
                    // even if its relative location changes. For most
                    // integrated devices, this object contains a unique
                    // identifier. For other devices, like a docking
                    // station, this object can be a control method that
                    // returns the unique docking station ID. A _UID
                    // object evaluates to either a numeric value or a
                    // string.
                    //
                    Name(_UID,0x01)
                    // _CRS - Current Resource Settings
                    //
                    // Evaluates to a buffer describing the resources
                    // currently allocated to a device. Additionally, a
                    // bus device must supply the resources that it
                    // decodes and can assign to child devices. If a
                    // device is disabled, then _CRS returns a valid
                    // resource template for the device, but the actual
                    // resource assignments in the return byte stream
                    // are ignored. If the device is disabled when _CRS
                    // is called, it must remain disabled.
                    //
                    Name(_CRS,ResourceTemplate()
                        {
                            IO(Decode16,0x0010,0x0010,0x01,0x10)
                            IO(Decode16,0x0022,0x0022,0x01,0x1E)
                            IO(Decode16,0x0044,0x0044,0x01,0x1C)
                            IO(Decode16,0x0062,0x0062,0x01,0x02)
                            IO(Decode16,0x0065,0x0065,0x01,0x0B)
                            IO(Decode16,0x0074,0x0074,0x01,0x0C)
                            IO(Decode16,0x0091,0x0091,0x01,0x03)
                            IO(Decode16,0x00A2,0x00A2,0x01,0x1E)
                            IO(Decode16,0x00E0,0x00E0,0x01,0x10)
                            IO(Decode16,0x03F0,0x03F0,0x01,0x02)
                            IO(Decode16,0x04D0,0x04D0,0x01,0x02)
                            
                        })
                }

Сравнение с "нормальным" ASL-кодом (MotherBoard EPOX 8RDAEI, на чипсете NForce2, ID-стринг: 12/11/2003-nVidia-nForce-6A61BPAIC-00) показал точно такие же вхождения:
....
    OperationRegion(ELCR,SystemIo,0x04D0,0x02)
    Field(ELCR /* \ELCR */,ByteAcc,NoLock,Preserve)
    {
        ELC1,8,
        ELC2,8
    }
....
            Device(SYSR)
            //
            // SYSR - Motherboard Resources
            //
            {
                // _HID - Hardware ID
                //
                // Supplies OSPM with the device's Plug and Play
                // hardware ID.  When describing a platform, use of
                // any _HID objects is optional. However, a _HID
                // object must be used to describe any device that
                // will be enumerated by OSPM. OSPM only enumerates
                // a device when no bus enumerator can detect the
                // device ID. For example, devices on an ISA bus are
                // enumerated by OSPM. Use the _ADR object to
                // describe devices enumerated by bus enumerators
                // other than OSPM.
                //
                Name(_HID,EISAID("PNP0C02")) // Motherboard Resources
                // _UID - Unique ID
                //
                // Provides OSPM with a serial number-style ID of a
                // device (or battery), which does not change across
                // reboots. This object is optional, but is required
                // when the device has no other way to report a
                // persistent unique device ID. When a system has
                // two devices that report the same _HID, each
                // device must have a _UID object. When reported,
                // the UID needs to be unique only among devices
                // with the same device ID. OSPM typically uses the
                // unique device ID to ensure that the device
                // -specific information, such as network protocol
                // binding information, is remembered for the device
                // even if its relative location changes. For most
                // integrated devices, this object contains a unique
                // identifier. For other devices, like a docking
                // station, this object can be a control method that
                // returns the unique docking station ID. A _UID
                // object evaluates to either a numeric value or a
                // string.
                //
                Name(_UID,0x01)
                // _CRS - Current Resource Settings
                //
                // Evaluates to a buffer describing the resources
                // currently allocated to a device. Additionally, a
                // bus device must supply the resources that it
                // decodes and can assign to child devices. If a
                // device is disabled, then _CRS returns a valid
                // resource template for the device, but the actual
                // resource assignments in the return byte stream
                // are ignored. If the device is disabled when _CRS
                // is called, it must remain disabled.
                //
                Name(_CRS,ResourceTemplate()
                    {
                        IO(Decode16,0x0010,0x0010,0x01,0x10)
                        IO(Decode16,0x0022,0x0022,0x01,0x1E)
                        IO(Decode16,0x0044,0x0044,0x01,0x1C)
                        IO(Decode16,0x0062,0x0062,0x01,0x02)
                        IO(Decode16,0x0065,0x0065,0x01,0x0B)
                        IO(Decode16,0x0074,0x0074,0x01,0x0C)
                        IO(Decode16,0x0091,0x0091,0x01,0x03)
                        IO(Decode16,0x00A2,0x00A2,0x01,0x1E)
                        IO(Decode16,0x00E0,0x00E0,0x01,0x10)
                        IO(Decode16,0x0B78,0x0B78,0x04,0x04)
                        IO(Decode16,0x0F78,0x0F78,0x04,0x04)
                        IO(Decode16,0x0A78,0x0A78,0x04,0x04)
                        IO(Decode16,0x0E78,0x0E78,0x04,0x04)
                        IO(Decode16,0x0BBC,0x0BBC,0x04,0x04)
                        IO(Decode16,0x0FBC,0x0FBC,0x04,0x04)
                        IO(Decode16,0x04D0,0x04D0,0x01,0x02)
                        IO(Decode16,0x0294,0x0294,0x01,0x04)
                        IO(Decode16,0x04E0,0x04E0,0x01,0x08)
                        
                    })
            }

По-простому не получилось придется копать глубже:( .

Отсюда вопрос: может кто знает где по-быстрому можно понять что такое ACPI, его структуру возможности и т.д. Читать спецификацию в объеме 500 страниц довольно долго.