* Mitsuru IWASAKI ([EMAIL PROTECTED]):

Iwasaki-san,
list members,

> > >     ACPI-0438: *** Error: Looking up [FAN_] in namespace, AE_NOT_FOUND
> > >     ACPI-1287: *** Error: Method execution failed, AE_NOT_FOUND
> 
> I think that this was caused by the following spec changes.
> From CHANGES.txt:
> ----
> 22 October 2002.  Summary of changes for version 20021022.
> 
> 1) ACPI CA Core Subsystem:
> 
> Implemented a restriction on the Scope operator that the
> target must already exist in the namespace at the time the
> operator is encountered (during table load or method
> execution).  In other words, forward references are not
> allowed and Scope() cannot create a new object. This changes
> the previous behavior where the interpreter would create the
> name if not found.  This new behavior correctly enables the
> search-to-root algorithm during namespace lookup of the target
> name.  Because of this upsearch, this fixes the known Compaq
> _SB_.OKEC problem and makes both the AML interpreter and iASL
> compiler compatible with other ACPI implementations.
> ----
> 
> Could you send your acpidump output to this acpi-jp ML?

Of course. And thank you very much for working on this. Please see the
attached file.

     --Thomas
/*
RSD PTR: Checksum=226, OEMID=COMPAQ, RsdtAddress=0x0fff3000
 */
/*
RSDT: Length=40, Revision=1, Checksum=17,
        OEMID=COMPAQ, OEM Table ID=AWRDACPI, OEM Revision=0x42302e31,
        Creator ID=AWRD, Creator Revision=0x0
 */
/*
        Entries={ 0x0fff3040 }
 */
/*
        DSDT=0xfff30c0
        INT_MODEL=PIC
        SCI_INT=9
        SMI_CMD=0xb2, ACPI_ENABLE=0xa1, ACPI_DISABLE=0xa0, S4BIOS_REQ=0xa4
        PM1a_EVT_BLK=0x4000-0x4003
        PM1a_CNT_BLK=0x4004-0x4005
        PM2_TMR_BLK=0x4008-0x400b
        PM2_GPE0_BLK=0x400c-0x400f
        P_LVL2_LAT=90ms, P_LVL3_LAT=900ms
        FLUSH_SIZE=0, FLUSH_STRIDE=0
        DUTY_OFFSET=1, DUTY_WIDTH=0
        DAY_ALRM=13, MON_ALRM=0, CENTURY=0
        Flags={WBINVD,PROC_C1,SLP_BUTTON}
 */
/*
DSDT: Length=10553, Revision=1, Checksum=88,
        OEMID=COMPAQ, OEM Table ID=AWRDACPI, OEM Revision=0x1000,
        Creator ID=MSFT, Creator Revision=0x100000c
 */
DefinitionBlock (
    "acpi_dsdt.aml",    //Output filename
    "DSDT",             //Signature
    0x1,                //DSDT Revision
    "COMPAQ",           //OEMID
    "AWRDACPI",         //TABLE ID
    0x1000              //OEM Revision
)

{
Scope(\_PR_) {
    Processor(\_PR_.CPU0, 1, 0x4010, 0x6) {
    }
}
Name(\_S0_, Package(0x2) {
    0x5,
    0x5,
})
OperationRegion(CMOS, SystemIO, 0x70, 0x2)
Field(CMOS, ByteAcc, NoLock, Preserve) {
    INX_,       8,
    DTA_,       8
}
Store(0x8, Local0)
Store(0x54, INX_)
Store(DTA_, Local1)
And(Local1, Local0, Local1)
If(LEqual(Local1, 0x8)) {
    Name(\_S3_, Package(0x2) {
        0x1,
        0x1,
    })
}
Else {
    Name(\_S1_, Package(0x2) {
        0x4,
        0x4,
    })
}
Name(\_S4_, Package(0x2) {
    Zero,
    Zero,
})
Name(\_S5_, Package(0x2) {
    Zero,
    Zero,
})
OperationRegion(\DEBG, SystemIO, 0x80, 0x1)
Field(\DEBG, ByteAcc, NoLock, Preserve) {
    DBG1,       8
}
OperationRegion(\MUS1, SystemIO, 0x64, 0x1)
Field(\MUS1, ByteAcc, NoLock, Preserve) {
    MUSE,       8
}
OperationRegion(EXTM, SystemMemory, 0x000ff830, 0x10)
Field(EXTM, WordAcc, NoLock, Preserve) {
    ROM1,       16,
    RMS1,       16,
    ROM2,       16,
    RMS2,       16,
    ROM3,       16,
    RMS3,       16,
    AMEM,       32
}
OperationRegion(VGAM, SystemMemory, 0x000c0002, 0x1)
Field(VGAM, ByteAcc, NoLock, Preserve) {
    VGA1,       8
}
OperationRegion(\TRAP, SystemIO, 0x402f, 0x1)
Field(\TRAP, ByteAcc, NoLock, Preserve) {
    ,   1,
    TR13,       1
}
OperationRegion(PMES, SystemIO, 0x4015, 0x1)
Field(PMES, ByteAcc, NoLock, Preserve) {
    ,   1,
    PME_,       1
}
OperationRegion(\GBLE, SystemIO, 0x4021, 0x1)
Field(\GBLE, ByteAcc, NoLock, Preserve) {
    ESMI,       8
}
Name(CMDB, Buffer(0x8) { })
CreateByteField(CMDB, 0x0, BYT0)
CreateByteField(CMDB, 0x1, BYT1)
CreateByteField(CMDB, 0x2, BYT2)
CreateByteField(CMDB, 0x3, BYT3)
CreateByteField(CMDB, 0x4, BYT4)
CreateByteField(CMDB, 0x5, BYT5)
CreateByteField(CMDB, 0x6, BYT6)
CreateByteField(CMDB, 0x7, BYT7)
Name(IDEB, Buffer(0x38) { })
CreateField(IDEB, 0x0, 0x38, CMD0)
CreateField(IDEB, 0x38, 0x38, CMD1)
CreateField(IDEB, 0x70, 0x38, CMD2)
CreateField(IDEB, 0xa8, 0x38, CMD3)
CreateField(IDEB, 0xe0, 0x38, CMD4)
CreateField(IDEB, 0x0118, 0x38, CMD5)
CreateField(IDEB, 0x0150, 0x38, CMD6)
CreateField(IDEB, 0x0188, 0x38, CMD7)
OperationRegion(APMP, SystemIO, 0xb2, 0x2)
Field(APMP, ByteAcc, NoLock, Preserve) {
    APMC,       8,
    APMD,       8
}
OperationRegion(ELCR, SystemIO, 0x04d0, 0x2)
Field(ELCR, ByteAcc, NoLock, Preserve) {
    ELC1,       8,
    ELC2,       8
}
OperationRegion(GPOB, SystemIO, 0x4034, 0x4)
Field(GPOB, ByteAcc, NoLock, Preserve) {
    GP00,       1,
    GP01,       1,
    GP02,       1,
    GP03,       1,
    GP04,       1,
    GP05,       1,
    GP06,       1,
    GP07,       1,
    GP08,       1,
    GP09,       1,
    GP0A,       1,
    GP0B,       1,
    GP0C,       1,
    GP0D,       1,
    GP0E,       1,
    GP0F,       1,
    GP10,       1,
    GP11,       1,
    GP12,       1,
    GP13,       1,
    GP14,       1,
    GP15,       1,
    GP16,       1,
    GP17,       1,
    GP18,       1,
    GP19,       1,
    GP1A,       1,
    GP1B,       1,
    GP1C,       1,
    GP1D,       1,
    GP1E,       1,
    GP1F,       1
}
Name(OSFL, 0x1)
Method(STRC, 2) {
    If(LNot(LEqual(SizeOf(Arg0), SizeOf(Arg1)))) {
        Return(0x0)
    }
    Add(SizeOf(Arg0), 0x1, Local0)
    Name(BUF0, Buffer(Local0) { })
    Name(BUF1, Buffer(Local0) { })
    Store(Arg0, BUF0)
    Store(Arg1, BUF1)
    While(Local0) {
        Decrement(Local0)
        If(LNot(LEqual(DerefOf(Index(BUF0, Local0, )), DerefOf(Index(BUF1, Local0, 
))))) {
            Return(Zero)
        }
    }
    Return(One)
}
OperationRegion(RTCM, SystemIO, 0x70, 0x2)
Field(RTCM, ByteAcc, NoLock, Preserve) {
    CMIN,       8,
    CMDA,       8
}
IndexField(CMIN, CMDA, ByteAcc, NoLock, Preserve) {
    Offset(0xf),
    SHUT,       8
}
OperationRegion(\GRAM, SystemMemory, 0x0400, 0x0100)
Field(\GRAM, ByteAcc, NoLock, Preserve) {
    Offset(0x10),
    FLG0,       8,
    Offset(0xba),
    SFLG,       8
}
OperationRegion(INFO, SystemMemory, 0x000ff840, 0x1)
Field(INFO, ByteAcc, NoLock, Preserve) {
    KBDI,       1,
    RTCW,       1
}
OperationRegion(BEEP, SystemIO, 0x61, 0x1)
Field(BEEP, ByteAcc, NoLock, Preserve) {
    S1B_,       8
}
OperationRegion(CONT, SystemIO, 0x40, 0x4)
Field(CONT, ByteAcc, NoLock, Preserve) {
    CNT0,       8,
    CNT1,       8,
    CNT2,       8,
    CTRL,       8
}
Method(SPKR, 1) {
    Store(S1B_, Local0)
    Store(0xb6, CTRL)
    Store(0x55, CNT2)
    Store(0x3, CNT2)
    Store(Arg0, Local2)
    While(LGreater(Local2, 0x0)) {
        Or(S1B_, 0x3, S1B_)
        Store(0x5fff, Local3)
        While(LGreater(Local3, 0x0)) {
            Decrement(Local3)
        }
        And(S1B_, 0xfc, S1B_)
        Store(0x0eff, Local3)
        While(LGreater(Local3, 0x0)) {
            Decrement(Local3)
        }
        Decrement(Local2)
    }
    Store(Local0, S1B_)
}
Method(\_PTS, 1) {
    If(LEqual(Arg0, 0x5)) {
        Or(Arg0, 0x50, Local0)
        Store(One, TR13)
    }
    If(LEqual(Arg0, 0x1)) {
        Store(One, TR13)
    }
    If(LEqual(Arg0, 0x2)) {
        Store(One, TR13)
    }
    If(LEqual(Arg0, 0x3)) {
        Store(One, TR13)
    }
    Or(Arg0, 0xf0, Local0)
    Store(Local0, DBG1)
    If(LEqual(Arg0, 0x4)) {
    }
    If(LEqual(Arg0, 0x5)) {
        Store(One, GP1B)
    }
}
Method(\_WAK, 1) {
    Store(0xff, DBG1)
    Store(0x0, PME_)
    Notify(\_SB_.PWRB, 0x2)
}
Scope(\_SI_) {
    Name(SF56, 0x0)
    Name(SF57, 0x0)
    Name(FLAG, 0x0)
    OperationRegion(SIFG, SystemMemory, 0x000ff81c, 0x1)
    Field(SIFG, ByteAcc, NoLock, Preserve) {
        SBIT,   2,
        Offset(0x1)
    }
    OperationRegion(ITE1, SystemIO, 0x03f0, 0x2)
    Field(ITE1, ByteAcc, NoLock, Preserve) {
        IND0,   8,
        DATA,   8
    }
    OperationRegion(ENG1, SystemIO, 0x0279, 0x1)
    Field(ENG1, ByteAcc, NoLock, Preserve) {
        CONG,   8
    }
    Method(ENFG) {
        Store(0x86, CONG)
        Store(0x80, CONG)
        Store(0x55, CONG)
        Store(0x55, CONG)
        Store(0x6a, IND0)
        Store(0xb5, IND0)
        Store(0xda, IND0)
        Store(0xed, IND0)
        Store(0xf6, IND0)
        Store(0xfb, IND0)
        Store(0x7d, IND0)
        Store(0xbe, IND0)
        Store(0xdf, IND0)
        Store(0x6f, IND0)
        Store(0x37, IND0)
        Store(0x1b, IND0)
        Store(0xd, IND0)
        Store(0x86, IND0)
        Store(0xc3, IND0)
        Store(0x61, IND0)
        Store(0xb0, IND0)
        Store(0x58, IND0)
        Store(0x2c, IND0)
        Store(0x16, IND0)
        Store(0x8b, IND0)
        Store(0x45, IND0)
        Store(0xa2, IND0)
        Store(0xd1, IND0)
        Store(0xe8, IND0)
        Store(0x74, IND0)
        Store(0x3a, IND0)
        Store(0x9d, IND0)
        Store(0xce, IND0)
        Store(0xe7, IND0)
        Store(0x73, IND0)
        Store(0x39, IND0)
    }
    Method(EXFG) {
        Store(0x2, IND0)
        Store(0x2, DATA)
    }
    Method(SPLD, 2) {
        ENFG()
        Store(0x7, IND0)
        Store(0x7, DATA)
        If(LEqual(Arg0, Zero)) {
            Store(0x0, Local0)
        }
        If(LEqual(Arg0, One)) {
            Store(0x2, Local0)
            And(Local0, 0x3f, Local0)
            Or(Local0, Arg1, Local0)
        }
        Store(0x71, IND0)
        Store(Local0, DATA)
        EXFG()
    }
    OperationRegion(\GPO0, SystemIO, 0x4034, 0x1)
    Field(\GPO0, ByteAcc, NoLock, Preserve) {
        GPO0,   8
    }
    OperationRegion(THRO, SystemIO, 0x4011, 0x1)
    Field(THRO, ByteAcc, NoLock, Preserve) {
        THRP,   8
    }
    Method(GREN, 1) {
        Store(THRP, Local0)
        If(LEqual(Arg0, Zero)) {
            Or(GPO0, 0x1, GPO0)
            And(Local0, 0xfd, Local0)
        }
        If(LEqual(Arg0, One)) {
            And(GPO0, 0xfe, GPO0)
            Or(Local0, 0x2, Local0)
        }
        Store(Local0, THRP)
    }
    Method(DELY, 1) {
        Store(Arg0, Local0)
        While(LGreater(Local0, 0x0)) {
            Decrement(Local0)
        }
    }
    Method(OFAN) {
        DELY(0x000186a0)
        If(LEqual(FLAG, 0x0)) {
            Store(GBYT(0x56), SF56)
            Store(GBYT(0x57), SF57)
        }
        Else {
            SBYT(0x56, SF56)
            SBYT(0x57, SF57)
        }
    }
    Method(CFAN) {
        Store(0x1, FLAG)
        And(GBYT(0x56), 0x3f, Local0)
        SBYT(0x56, Local0)
        And(GBYT(0x57), 0xf7, Local0)
        SBYT(0x57, Local0)
    }
    OperationRegion(IP__, SystemIO, 0x0295, 0x2)
    Field(IP__, ByteAcc, NoLock, Preserve) {
        INDX,   8,
        DAT0,   8
    }
    Method(SCFG, 1) {
        SBYT(0x40, Arg0)
    }
    Method(STOS, 3) {
        Store(GBYT(0x4e), Local0)
        Or(Local0, 0x1, Local1)
        SBYT(0x4e, Local1)
        SBYT(0x55, Arg1)
        SBYT(0x56, Arg0)
        SBYT(0x4e, Local0)
    }
    Method(STHY, 3) {
        Store(GBYT(0x4e), Local0)
        Or(Local0, 0x1, Local1)
        SBYT(0x4e, Local1)
        SBYT(0x53, Arg1)
        SBYT(0x54, Arg0)
        SBYT(0x4e, Local0)
    }
    Method(RTMP) {
        Store(GBYT(0x4e), Local0)
        Or(Local0, 0x1, Local1)
        SBYT(0x4e, Local1)
        Store(GBYT(0x50), Local1)
        Store(GBYT(0x51), Local2)
        ShiftLeft(Local1, 0x8, Local1)
        Or(Local1, Local2, Local3)
        ShiftRight(Local3, 0x7, Local3)
        ShiftLeft(Local3, 0x2, Local1)
        Add(Local3, Local1, Local3)
        Add(Local3, 0x0aac, Local3)
        SBYT(0x4e, Local0)
        Return(Local3)
    }
    Method(SBYT, 2) {
        Store(Arg0, INDX)
        Store(Arg1, DAT0)
    }
    Method(GBYT, 1) {
        Store(Arg0, INDX)
        Store(DAT0, Local7)
        Return(Local7)
    }
    Method(_MSG, 1) {
        Store(Local0, DBG1)
    }
    Method(_SST, 1) {
        If(LEqual(Arg0, Zero)) {
            If(LNot(LEqual(SBIT, 0x3))) {
                SPLD(0x1, 0x20)
            }
            Return(0x0)
        }
        If(LEqual(Arg0, One)) {
            SPLD(0x0, 0x0)
            GREN(0x0)
            Store(One, GP1B)
            Store(One, GP1C)
            Store(One, GP1E)
            OFAN()
            Return(0x0)
        }
        If(LEqual(Arg0, 0x2)) {
            GREN(0x1)
            Return(0x0)
        }
        If(LEqual(Arg0, 0x3)) {
            Store(0x1, Local0)
            Store(0x53, INX_)
            Store(DTA_, Local1)
            And(Local1, Local0, Local1)
            If(LEqual(Local1, 0x1)) {
                Store(Zero, GP1B)
                Store(Zero, GP1C)
                Store(Zero, GP1E)
            }
            CFAN()
            If(LEqual(SBIT, 0x0)) {
                SPLD(0x0, 0x0)
            }
            If(LEqual(SBIT, 0x1)) {
                SPLD(0x1, 0x20)
            }
            If(LEqual(SBIT, 0x2)) {
                SPLD(0x1, 0x80)
            }
            GREN(0x1)
            Return(0x0)
        }
        If(LEqual(Arg0, 0x4)) {
            If(LEqual(SBIT, 0x0)) {
                SPLD(0x0, 0x0)
            }
            If(LEqual(SBIT, 0x1)) {
                SPLD(0x1, 0x20)
            }
            If(LEqual(SBIT, 0x2)) {
                SPLD(0x1, 0x80)
            }
            GREN(0x0)
            Return(0x0)
        }
    }
}
OperationRegion(TEMM, SystemMemory, 0x000ff810, 0xc)
Field(TEMM, WordAcc, NoLock, Preserve) {
    TP1H,       16,
    TP1L,       16,
    TP2H,       16,
    TP2L,       16,
    TRPC,       16,
    SENF,       16
}
Name(TVAR, Buffer(0x5) {0x0, 0x0, 0x0, 0x0, 0x0 })
CreateByteField(TVAR, 0x0, PLCY)
CreateWordField(TVAR, 0x1, CTOS)
CreateWordField(TVAR, 0x3, CTHY)
Store(TP1H, CTOS)
Store(TP1L, CTHY)
Name(TBUF, Buffer(0x4) {0x0, 0x0, 0x0, 0x0 })
CreateByteField(TBUF, 0x0, DB00)
CreateByteField(TBUF, 0x1, DB01)
CreateWordField(TBUF, 0x0, DW00)
CreateWordField(TBUF, 0x2, DW01)
CreateDWordField(TBUF, 0x0, DATD)
OperationRegion(IP__, SystemIO, 0x0295, 0x2)
Field(IP__, ByteAcc, NoLock, Preserve) {
    INDX,       8,
    DAT0,       8
}
Method(SCFG, 1) {
    SBYT(0x40, Arg0)
}
Method(STOS, 3) {
    Store(GBYT(0x4e), Local0)
    Or(Local0, 0x1, Local1)
    SBYT(0x4e, Local1)
    SBYT(0x55, Arg1)
    SBYT(0x56, Arg0)
    SBYT(0x4e, Local0)
}
Method(STHY, 3) {
    Store(GBYT(0x4e), Local0)
    Or(Local0, 0x1, Local1)
    SBYT(0x4e, Local1)
    SBYT(0x53, Arg1)
    SBYT(0x54, Arg0)
    SBYT(0x4e, Local0)
}
Method(RTMP) {
    Store(GBYT(0x4e), Local0)
    Or(Local0, 0x1, Local1)
    SBYT(0x4e, Local1)
    Store(GBYT(0x50), Local1)
    Store(GBYT(0x51), Local2)
    ShiftLeft(Local1, 0x8, Local1)
    Or(Local1, Local2, Local3)
    ShiftRight(Local3, 0x7, Local3)
    ShiftLeft(Local3, 0x2, Local1)
    Add(Local3, Local1, Local3)
    Add(Local3, 0x0aac, Local3)
    SBYT(0x4e, Local0)
    Return(Local3)
}
Method(SBYT, 2) {
    Store(Arg0, INDX)
    Store(Arg1, DAT0)
}
Method(GBYT, 1) {
    Store(Arg0, INDX)
    Store(DAT0, Local7)
    Return(Local7)
}
Scope(\_TZ_) {
    ThermalZone(THRM) {
        Name(_AL0, Package(0x1) {
            FAN_,
        })
        Method(_AC0) {
            If(Or(PLCY, PLCY, Local7)) {
                Return(TP2H)
            }
            Else {
                Return(TP1H)
            }
        }
        Name(_PSL, Package(0x1) {
            \_PR_.CPU0,
        })
        Name(_TSP, 0x3c)
        Name(_TC1, 0x4)
        Name(_TC2, 0x3)
        Method(_PSV) {
            If(Or(PLCY, PLCY, Local7)) {
                Return(TP1H)
            }
            Else {
                Return(TP2H)
            }
        }
        Method(_CRT) {
            Return(TRPC)
        }
        Method(_TMP) {
            And(SENF, 0x5, Local6)
            If(LEqual(Local6, 0x5)) {
                Store(RTMP(), Local6)
                If(LNot(LLess(Local6, TRPC))) {
                    Store(TRPC, Local7)
                    Subtract(Local7, 0xa, Local7)
                    Return(Local7)
                }
                Else {
                    Return(Local6)
                }
            }
            And(SENF, 0x1, Local6)
            If(LEqual(Local6, 0x1)) {
                Return(RTMP())
            }
            Else {
                Return(0x0b86)
            }
        }
        Method(_SCP, 1) {
            If(Arg0) {
                Store(One, PLCY)
            }
            Else {
                Store(Zero, PLCY)
            }
            Notify(\_TZ_.THRM, 0x81)
        }
        Method(STMP, 2) {
            Store(Arg1, DW00)
            If(Arg0) {
                STHY(DB00, DB01, DW00)
            }
            Else {
                STOS(DB00, DB01, DW00)
            }
        }
    }
}
Scope(\_GPE) {
}
Scope(\_SB_) {
    Device(PWRB) {
        Name(_HID, 0x0c0cd041)
        Method(_STA) {
            Return(0xb)
        }
    }
    Device(MEM_) {
        Name(_HID, 0x010cd041)
        Method(_CRS) {
            Name(BUF0, Buffer(0x62) {0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xf, 0x0, 0x0, 
0x40, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x40, 0xf, 0x0, 0x0, 0x40, 0x0, 0x0, 0x86, 
0x9, 0x0, 0x1, 0x0, 0x80, 0xf, 0x0, 0x0, 0x40, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 
0xc0, 0xf, 0x0, 0x0, 0x40, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x1, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x1, 0x0, 0x86, 
0x9, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 
0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 })
            CreateDWordField(BUF0, 0x34, ACMM)
            CreateDWordField(BUF0, 0x4, RMA1)
            CreateDWordField(BUF0, 0x8, RSS1)
            CreateDWordField(BUF0, 0x10, RMA2)
            CreateDWordField(BUF0, 0x14, RSS2)
            CreateDWordField(BUF0, 0x1c, RMA3)
            CreateDWordField(BUF0, 0x20, RSS3)
            CreateDWordField(BUF0, 0x28, RMA4)
            CreateDWordField(BUF0, 0x2c, RSS4)
            CreateDWordField(BUF0, 0x5c, EXTM)
            Subtract(AMEM, 0x00100000, EXTM)
            If(LNot(LEqual(ROM1, Zero))) {
                Store(RMA1, RMA2)
                ShiftLeft(ROM1, 0x8, Local0)
                Store(Local0, RMA1)
                ShiftLeft(RMS1, 0x8, Local0)
                Store(Local0, RSS1)
                Store(0x8000, RSS2)
            }
            If(LNot(LEqual(ROM2, Zero))) {
                Store(RMA2, RMA3)
                ShiftLeft(ROM2, 0x8, Local0)
                Store(Local0, RMA2)
                ShiftLeft(RMS2, 0x8, Local0)
                Store(Local0, RSS2)
                Store(0xc000, RSS3)
            }
            If(LNot(LEqual(ROM3, Zero))) {
                Store(RMA3, RMA4)
                ShiftLeft(ROM3, 0x8, Local0)
                Store(Local0, RMA3)
                ShiftLeft(RMS3, 0x8, Local0)
                Store(Local0, RSS3)
                Store(0x00010000, RSS4)
            }
            Store(AMEM, ACMM)
            Return(BUF0)
        }
    }
    Device(PCI0) {
        Name(_HID, 0x030ad041)
        Name(_ADR, 0x0)
        Method(_STA) {
            Return(0xf)
        }
        Method(_S3D) {
            Return(0x1)
        }
        Method(_CRS) {
            Name(BUF0, Buffer(0x9e) {0x88, 0xd, 0x0, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 
0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0x47, 0x1, 0xf8, 0xc, 0xf8, 0xc, 0x1, 0x8, 0x88, 
0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0xf7, 0xc, 0x0, 0x0, 0xf8, 0xc, 0x88, 
0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0xd, 0xff, 0x3f, 0x0, 0x0, 0x0, 0x33, 0x47, 
0x1, 0x0, 0x40, 0x0, 0x40, 0x1, 0x42, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x42, 
0x40, 0xff, 0x4f, 0x0, 0x0, 0xbe, 0xf, 0x47, 0x1, 0x0, 0x50, 0x0, 0x50, 0x1, 0x10, 
0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x10, 0x50, 0xff, 0xff, 0x0, 0x0, 0xf0, 0xaf, 
0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0xff, 0x7f, 
0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x2, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0xff, 0xff, 0xef, 0xff, 0x0, 0x0, 0x0, 0x0, 
0x0, 0x0, 0xf0, 0xff, 0x79, 0x0 })
            CreateDWordField(BUF0, 0x76, VMAX)
            CreateDWordField(BUF0, 0x7e, VLEN)
            ShiftLeft(VGA1, 0x9, Local0)
            Add(Local0, 0x000bffff, VMAX)
            Add(Local0, 0x00020000, VLEN)
            CreateDWordField(BUF0, 0x8c, TCMM)
            CreateDWordField(BUF0, 0x98, TOMM)
            Add(AMEM, 0x00010000, TCMM)
            Subtract(0xfff00000, TCMM, TOMM)
            Return(BUF0)
        }
        Name(_PRT, Package(0x1c) {
            Package(0x4) {
                0x0008ffff,
                0x0,
                \_SB_.PCI0.ISA_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0008ffff,
                0x1,
                \_SB_.PCI0.ISA_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0008ffff,
                0x2,
                \_SB_.PCI0.ISA_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0008ffff,
                0x3,
                \_SB_.PCI0.ISA_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0009ffff,
                0x0,
                \_SB_.PCI0.ISA_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0009ffff,
                0x1,
                \_SB_.PCI0.ISA_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0009ffff,
                0x2,
                \_SB_.PCI0.ISA_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0009ffff,
                0x3,
                \_SB_.PCI0.ISA_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x000affff,
                0x0,
                \_SB_.PCI0.ISA_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x000affff,
                0x1,
                \_SB_.PCI0.ISA_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x000affff,
                0x2,
                \_SB_.PCI0.ISA_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x000affff,
                0x3,
                \_SB_.PCI0.ISA_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x000bffff,
                0x0,
                \_SB_.PCI0.ISA_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x000bffff,
                0x1,
                \_SB_.PCI0.ISA_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x000bffff,
                0x2,
                \_SB_.PCI0.ISA_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x000bffff,
                0x3,
                \_SB_.PCI0.ISA_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x000cffff,
                0x0,
                \_SB_.PCI0.ISA_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x000cffff,
                0x1,
                \_SB_.PCI0.ISA_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x000cffff,
                0x2,
                \_SB_.PCI0.ISA_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x000cffff,
                0x3,
                \_SB_.PCI0.ISA_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0007ffff,
                0x0,
                \_SB_.PCI0.ISA_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0007ffff,
                0x1,
                \_SB_.PCI0.ISA_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0007ffff,
                0x2,
                \_SB_.PCI0.ISA_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0007ffff,
                0x3,
                \_SB_.PCI0.ISA_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0001ffff,
                0x0,
                \_SB_.PCI0.ISA_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0001ffff,
                0x1,
                \_SB_.PCI0.ISA_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0001ffff,
                0x2,
                \_SB_.PCI0.ISA_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0001ffff,
                0x3,
                \_SB_.PCI0.ISA_.LNKD,
                0x0,
            },
        })
        Device(PX40) {
            Name(_ADR, 0x00070000)
            OperationRegion(PIRQ, PCI_Config, 0x60, 0x4)
            Scope(\) {
                Field(\_SB_.PCI0.PX40.PIRQ, ByteAcc, NoLock, Preserve) {
                    PIRA,       8,
                    PIRB,       8,
                    PIRC,       8,
                    PIRD,       8
                }
            }
        }
        Device(USB0) {
            Name(_ADR, 0x00070002)
            Name(_PRW, Package(0x2) {
                0x8,
                0x4,
            })
        }
        Device(PX43) {
            Name(_ADR, 0x00070003)
        }
        Device(ISA_) {
            Name(_ADR, 0x00070000)
            Method(_STA) {
                Return(0xb)
            }
            Device(LNKA) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x1)
                Method(_STA) {
                    And(PIRA, 0x80, Local0)
                    If(LEqual(Local0, 0x80)) {
                        Return(0x9)
                    }
                    Else {
                        Return(0xb)
                    }
                }
                Method(_PRS) {
                    Name(BUFA, Buffer(0x6) {0x23, 0xf8, 0xdc, 0x18, 0x79, 0x0 })
                    Return(BUFA)
                }
                Method(_DIS) {
                    Store(0x1, Local3)
                    And(PIRA, 0xf, Local1)
                    Store(Local1, Local2)
                    If(LGreater(Local1, 0x8)) {
                        Subtract(Local1, 0x8, Local1)
                    }
                    ShiftLeft(Local3, Local1, Local3)
                    Not(Local3, Local3)
                    If(LGreater(Local2, 0x8)) {
                        And(ELC2, Local3, ELC2)
                    }
                    Else {
                        And(ELC1, Local3, ELC1)
                    }
                    Or(PIRA, 0x80, PIRA)
                }
                Method(_CRS) {
                    Name(BUFA, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
                    CreateByteField(BUFA, 0x1, IRA1)
                    CreateByteField(BUFA, 0x2, IRA2)
                    Store(0x0, Local3)
                    Store(0x0, Local4)
                    And(PIRA, 0x8f, Local1)
                    If(LLess(Local1, 0x80)) {
                        And(Local1, 0xf, Local1)
                        If(LGreater(Local1, 0x7)) {
                            Subtract(Local1, 0x8, Local2)
                            ShiftLeft(One, Local2, Local4)
                        }
                        Else {
                            If(LGreater(Local1, 0x0)) {
                                ShiftLeft(One, Local1, Local3)
                            }
                        }
                        Store(Local3, IRA1)
                        Store(Local4, IRA2)
                    }
                    Return(BUFA)
                }
                Method(_SRS, 1) {
                    CreateByteField(Arg0, 0x1, IRA1)
                    CreateByteField(Arg0, 0x2, IRA2)
                    ShiftLeft(IRA2, 0x8, Local0)
                    Or(Local0, IRA1, Local0)
                    Store(0x0, Local1)
                    ShiftRight(Local0, 0x1, Local0)
                    While(LGreater(Local0, 0x0)) {
                        Increment(Local1)
                        ShiftRight(Local0, 0x1, Local0)
                    }
                    And(PIRA, 0x70, Local0)
                    Or(Local1, Local0, PIRA)
                }
            }
            Device(LNKB) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x2)
                Method(_STA) {
                    And(PIRB, 0x80, Local0)
                    If(LEqual(Local0, 0x80)) {
                        Return(0x9)
                    }
                    Else {
                        Return(0xb)
                    }
                }
                Method(_PRS) {
                    Name(BUFB, Buffer(0x6) {0x23, 0xf8, 0xdc, 0x18, 0x79, 0x0 })
                    Return(BUFB)
                }
                Method(_DIS) {
                    Store(0x1, Local3)
                    And(PIRB, 0xf, Local1)
                    Store(Local1, Local2)
                    If(LGreater(Local1, 0x8)) {
                        Subtract(Local1, 0x8, Local1)
                    }
                    ShiftLeft(Local3, Local1, Local3)
                    Not(Local3, Local3)
                    If(LGreater(Local2, 0x8)) {
                        And(ELC2, Local3, ELC2)
                    }
                    Else {
                        And(ELC1, Local3, ELC1)
                    }
                    Or(PIRB, 0x80, PIRB)
                }
                Method(_CRS) {
                    Name(BUFB, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
                    CreateByteField(BUFB, 0x1, IRB1)
                    CreateByteField(BUFB, 0x2, IRB2)
                    Store(0x0, Local3)
                    Store(0x0, Local4)
                    And(PIRB, 0x8f, Local1)
                    If(LLess(Local1, 0x80)) {
                        And(Local1, 0xf, Local1)
                        If(LGreater(Local1, 0x7)) {
                            Subtract(Local1, 0x8, Local2)
                            ShiftLeft(One, Local2, Local4)
                        }
                        Else {
                            If(LGreater(Local1, 0x0)) {
                                ShiftLeft(One, Local1, Local3)
                            }
                        }
                        Store(Local3, IRB1)
                        Store(Local4, IRB2)
                    }
                    Return(BUFB)
                }
                Method(_SRS, 1) {
                    CreateByteField(Arg0, 0x1, IRB1)
                    CreateByteField(Arg0, 0x2, IRB2)
                    ShiftLeft(IRB2, 0x8, Local0)
                    Or(Local0, IRB1, Local0)
                    Store(0x0, Local1)
                    ShiftRight(Local0, 0x1, Local0)
                    While(LGreater(Local0, 0x0)) {
                        Increment(Local1)
                        ShiftRight(Local0, 0x1, Local0)
                    }
                    And(PIRB, 0x70, Local0)
                    Or(Local1, Local0, PIRB)
                }
            }
            Device(LNKC) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x3)
                Method(_STA) {
                    And(PIRC, 0x80, Local0)
                    If(LEqual(Local0, 0x80)) {
                        Return(0x9)
                    }
                    Else {
                        Return(0xb)
                    }
                }
                Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xdc, 0x18, 0x79, 0x0 })
                Method(_DIS) {
                    Store(0x1, Local3)
                    And(PIRC, 0xf, Local1)
                    Store(Local1, Local2)
                    If(LGreater(Local1, 0x8)) {
                        Subtract(Local1, 0x8, Local1)
                    }
                    ShiftLeft(Local3, Local1, Local3)
                    Not(Local3, Local3)
                    If(LGreater(Local2, 0x8)) {
                        And(ELC2, Local3, ELC2)
                    }
                    Else {
                        And(ELC1, Local3, ELC1)
                    }
                    Or(PIRC, 0x80, PIRC)
                }
                Method(_CRS) {
                    Name(BUFC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
                    CreateByteField(BUFC, 0x1, IRC1)
                    CreateByteField(BUFC, 0x2, IRC2)
                    Store(0x0, Local3)
                    Store(0x0, Local4)
                    And(PIRC, 0x8f, Local0)
                    If(LLess(Local0, 0x80)) {
                        And(Local0, 0xf, Local0)
                        If(LGreater(Local0, 0x7)) {
                            Subtract(Local0, 0x8, Local2)
                            ShiftLeft(One, Local2, Local4)
                        }
                        Else {
                            If(LGreater(Local0, 0x0)) {
                                ShiftLeft(One, Local0, Local3)
                            }
                        }
                        Store(Local3, IRC1)
                        Store(Local4, IRC2)
                    }
                    Return(BUFC)
                }
                Method(_SRS, 1) {
                    CreateByteField(Arg0, 0x1, IRC1)
                    CreateByteField(Arg0, 0x2, IRC2)
                    ShiftLeft(IRC2, 0x8, Local0)
                    Or(Local0, IRC1, Local0)
                    Store(0x0, Local1)
                    ShiftRight(Local0, 0x1, Local0)
                    While(LGreater(Local0, 0x0)) {
                        Increment(Local1)
                        ShiftRight(Local0, 0x1, Local0)
                    }
                    And(PIRC, 0x70, Local0)
                    Or(Local1, Local0, PIRC)
                }
            }
            Device(LNKD) {
                Name(_HID, 0x0f0cd041)
                Name(_UID, 0x4)
                Method(_STA) {
                    And(PIRD, 0x80, Local0)
                    If(LEqual(Local0, 0x80)) {
                        Return(0x9)
                    }
                    Else {
                        Return(0xb)
                    }
                }
                Name(_PRS, Buffer(0x6) {0x23, 0xf8, 0xdc, 0x18, 0x79, 0x0 })
                Method(_DIS) {
                    Store(0x1, Local3)
                    And(PIRD, 0xf, Local1)
                    Store(Local1, Local2)
                    If(LGreater(Local1, 0x8)) {
                        Subtract(Local1, 0x8, Local1)
                    }
                    ShiftLeft(Local3, Local1, Local3)
                    Not(Local3, Local3)
                    If(LGreater(Local2, 0x8)) {
                        And(ELC2, Local3, ELC2)
                    }
                    Else {
                        And(ELC1, Local3, ELC1)
                    }
                    Or(PIRD, 0x80, PIRD)
                }
                Method(_CRS) {
                    Name(BUFD, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
                    CreateByteField(BUFD, 0x1, IRD1)
                    CreateByteField(BUFD, 0x2, IRD2)
                    Store(0x0, Local3)
                    Store(0x0, Local4)
                    And(PIRD, 0x8f, Local0)
                    If(LLess(Local0, 0x80)) {
                        And(Local0, 0xf, Local0)
                        If(LGreater(Local0, 0x7)) {
                            Subtract(Local0, 0x8, Local2)
                            ShiftLeft(One, Local2, Local4)
                        }
                        Else {
                            If(LGreater(Local0, 0x0)) {
                                ShiftLeft(One, Local0, Local3)
                            }
                        }
                        Store(Local3, IRD1)
                        Store(Local4, IRD2)
                    }
                    Return(BUFD)
                }
                Method(_SRS, 1) {
                    CreateByteField(Arg0, 0x1, IRD1)
                    CreateByteField(Arg0, 0x2, IRD2)
                    ShiftLeft(IRD2, 0x8, Local0)
                    Or(Local0, IRD1, Local0)
                    Store(0x0, Local1)
                    ShiftRight(Local0, 0x1, Local0)
                    While(LGreater(Local0, 0x0)) {
                        Increment(Local1)
                        ShiftRight(Local0, 0x1, Local0)
                    }
                    And(PIRD, 0x70, Local0)
                    Or(Local1, Local0, PIRD)
                }
            }
            Device(SYSR) {
                Name(_HID, 0x020cd041)
                Name(_UID, 0x1)
                Name(_CRS, Buffer(0x62) {0x47, 0x1, 0x10, 0x0, 0x10, 0x0, 0x1, 0x10, 
0x47, 0x1, 0x22, 0x0, 0x22, 0x0, 0x1, 0x1e, 0x47, 0x1, 0x44, 0x0, 0x44, 0x0, 0x1, 
0x1c, 0x47, 0x1, 0x62, 0x0, 0x62, 0x0, 0x1, 0x2, 0x47, 0x1, 0x65, 0x0, 0x65, 0x0, 0x1, 
0xb, 0x47, 0x1, 0x74, 0x0, 0x74, 0x0, 0x1, 0xc, 0x47, 0x1, 0x91, 0x0, 0x91, 0x0, 0x1, 
0x3, 0x47, 0x1, 0xa2, 0x0, 0xa2, 0x0, 0x1, 0x1e, 0x47, 0x1, 0xe0, 0x0, 0xe0, 0x0, 0x1, 
0x10, 0x47, 0x1, 0xf0, 0x3, 0xf0, 0x3, 0x1, 0x2, 0x47, 0x1, 0xd0, 0x4, 0xd0, 0x4, 0x1, 
0x2, 0x47, 0x1, 0x94, 0x2, 0x94, 0x2, 0x1, 0x4, 0x79, 0x0 })
            }
            Device(PIC_) {
                Name(_HID, 0xd041)
                Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x20, 0x0, 0x20, 0x0, 0x1, 0x2, 
0x47, 0x1, 0xa0, 0x0, 0xa0, 0x0, 0x1, 0x2, 0x22, 0x4, 0x0, 0x79, 0x0 })
            }
            Device(DMA1) {
                Name(_HID, 0x0002d041)
                Name(_CRS, Buffer(0x25) {0x2a, 0x10, 0x4, 0x47, 0x1, 0x0, 0x0, 0x0, 
0x0, 0x1, 0x10, 0x47, 0x1, 0x80, 0x0, 0x80, 0x0, 0x1, 0x11, 0x47, 0x1, 0x94, 0x0, 
0x94, 0x0, 0x1, 0xc, 0x47, 0x1, 0xc0, 0x0, 0xc0, 0x0, 0x1, 0x20, 0x79, 0x0 })
            }
            Device(TMR_) {
                Name(_HID, 0x0001d041)
                Name(_CRS, Buffer(0xd) {0x47, 0x1, 0x40, 0x0, 0x40, 0x0, 0x1, 0x4, 
0x22, 0x1, 0x0, 0x79, 0x0 })
            }
            Device(RTC_) {
                Name(_HID, 0x000bd041)
                Name(_CRS, Buffer(0xd) {0x47, 0x1, 0x70, 0x0, 0x70, 0x0, 0x0, 0x4, 
0x22, 0x0, 0x1, 0x79, 0x0 })
            }
            Device(SPKR) {
                Name(_HID, 0x0008d041)
                Name(_CRS, Buffer(0xa) {0x47, 0x1, 0x61, 0x0, 0x61, 0x0, 0x1, 0x1, 
0x79, 0x0 })
            }
            Device(COPR) {
                Name(_HID, 0x040cd041)
                Name(_CRS, Buffer(0xd) {0x47, 0x1, 0xf0, 0x0, 0xf0, 0x0, 0x1, 0x10, 
0x22, 0x0, 0x20, 0x79, 0x0 })
            }
            OperationRegion(ITE1, SystemIO, 0x03f0, 0x2)
            Field(ITE1, ByteAcc, NoLock, Preserve) {
                INDX,   8,
                DATA,   8
            }
            OperationRegion(ENG1, SystemIO, 0x0279, 0x1)
            Field(ENG1, ByteAcc, NoLock, Preserve) {
                CONG,   8
            }
            IndexField(INDX, DATA, ByteAcc, NoLock, Preserve) {
                Offset(0x2),
                CFG_,   8,
                Offset(0x7),
                LDN_,   8,
                Offset(0x22),
                POWC,   8,
                Offset(0x30),
                ACTR,   8,
                Offset(0x60),
                IOAH,   8,
                IOAL,   8,
                Offset(0x70),
                INTR,   8,
                Offset(0x72),
                INT1,   8,
                Offset(0x74),
                DMCH,   8,
                Offset(0xc0),
                GP40,   8,
                Offset(0xf0),
                OPT1,   8,
                OPT2,   8,
                OPT3,   8
            }
            Method(ENFG) {
                Store(0x86, CONG)
                Store(0x80, CONG)
                Store(0x55, CONG)
                Store(0x55, CONG)
                Store(0x6a, INDX)
                Store(0xb5, INDX)
                Store(0xda, INDX)
                Store(0xed, INDX)
                Store(0xf6, INDX)
                Store(0xfb, INDX)
                Store(0x7d, INDX)
                Store(0xbe, INDX)
                Store(0xdf, INDX)
                Store(0x6f, INDX)
                Store(0x37, INDX)
                Store(0x1b, INDX)
                Store(0xd, INDX)
                Store(0x86, INDX)
                Store(0xc3, INDX)
                Store(0x61, INDX)
                Store(0xb0, INDX)
                Store(0x58, INDX)
                Store(0x2c, INDX)
                Store(0x16, INDX)
                Store(0x8b, INDX)
                Store(0x45, INDX)
                Store(0xa2, INDX)
                Store(0xd1, INDX)
                Store(0xe8, INDX)
                Store(0x74, INDX)
                Store(0x3a, INDX)
                Store(0x9d, INDX)
                Store(0xce, INDX)
                Store(0xe7, INDX)
                Store(0x73, INDX)
                Store(0x39, INDX)
            }
            Method(EXFG) {
                Store(0x2, CFG_)
            }
            Device(FDC0) {
                Name(_HID, 0x0007d041)
                Method(_STA) {
                    ENFG()
                    Store(Zero, LDN_)
                    If(ACTR) {
                        EXFG()
                        Return(0xf)
                    }
                    Else {
                        If(LOr(IOAH, IOAL)) {
                            EXFG()
                            Return(0xd)
                        }
                        Else {
                            EXFG()
                            Return(0x0)
                        }
                    }
                }
                Method(_DIS) {
                    ENFG()
                    Store(0x0, LDN_)
                    Store(Zero, ACTR)
                    EXFG()
                }
                Method(_CRS) {
                    Name(BUF0, Buffer(0x18) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 
0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x22, 0x0, 0x0, 0x2a, 0x0, 0x0, 0x79, 0x0 })
                    CreateByteField(BUF0, 0x2, IOLO)
                    CreateByteField(BUF0, 0x3, IOHI)
                    CreateByteField(BUF0, 0x4, IORL)
                    CreateByteField(BUF0, 0x5, IORH)
                    CreateByteField(BUF0, 0xa, ILO1)
                    CreateByteField(BUF0, 0xb, IHI1)
                    CreateByteField(BUF0, 0xc, IRL1)
                    CreateByteField(BUF0, 0xd, IRH1)
                    CreateByteField(BUF0, 0x11, IRQL)
                    CreateByteField(BUF0, 0x14, DMAV)
                    ENFG()
                    Store(Zero, LDN_)
                    Store(One, ACTR)
                    Add(IOAL, 0x2, Local2)
                    Store(Local2, IOLO)
                    Store(Local2, IORL)
                    Store(IOAH, IOHI)
                    Store(IOAH, IORH)
                    Add(IOAL, 0x7, Local2)
                    Store(Local2, ILO1)
                    Store(Local2, IRL1)
                    Store(IOAH, IHI1)
                    Store(IOAH, IRH1)
                    Store(One, Local0)
                    ShiftLeft(Local0, INTR, IRQL)
                    Store(One, Local0)
                    ShiftLeft(Local0, DMCH, DMAV)
                    EXFG()
                    Return(BUF0)
                }
                Name(_PRS, Buffer(0x1a) {0x30, 0x47, 0x1, 0xf2, 0x3, 0xf2, 0x3, 0x0, 
0x4, 0x47, 0x1, 0xf7, 0x3, 0xf7, 0x3, 0x0, 0x1, 0x22, 0x40, 0x0, 0x2a, 0x4, 0x0, 0x38, 
0x79, 0x0 })
                Method(_SRS, 1) {
                    CreateByteField(Arg0, 0x2, IOLO)
                    CreateByteField(Arg0, 0x3, IOHI)
                    CreateWordField(Arg0, 0x11, IRQL)
                    CreateByteField(Arg0, 0x14, DMAV)
                    ENFG()
                    Store(Zero, LDN_)
                    Store(0xf0, IOAL)
                    Store(IOHI, IOAH)
                    FindSetRightBit(IRQL, Local0)
                    Subtract(Local0, 0x1, INTR)
                    FindSetRightBit(DMAV, Local0)
                    Subtract(Local0, 0x1, DMCH)
                    Store(One, ACTR)
                    EXFG()
                }
            }
            Device(UAR1) {
                Name(_HID, 0x0105d041)
                Name(_UID, 0x1)
                Method(_STA) {
                    ENFG()
                    Store(0x1, LDN_)
                    If(ACTR) {
                        EXFG()
                        Return(0xf)
                    }
                    Else {
                        If(LOr(IOAH, IOAL)) {
                            EXFG()
                            Return(0xd)
                        }
                        Else {
                            EXFG()
                            Return(0x0)
                        }
                    }
                }
                Method(_DIS) {
                    ENFG()
                    Store(0x1, LDN_)
                    Store(Zero, ACTR)
                    EXFG()
                }
                Method(_CRS) {
                    Name(BUF1, Buffer(0xd) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 
0x22, 0x0, 0x0, 0x79, 0x0 })
                    CreateByteField(BUF1, 0x2, IOLO)
                    CreateByteField(BUF1, 0x3, IOHI)
                    CreateByteField(BUF1, 0x4, IORL)
                    CreateByteField(BUF1, 0x5, IORH)
                    CreateByteField(BUF1, 0x9, IRQL)
                    ENFG()
                    Store(0x1, LDN_)
                    Store(One, ACTR)
                    Store(IOAL, IOLO)
                    Store(IOAL, IORL)
                    Store(IOAH, IOHI)
                    Store(IOAH, IORH)
                    Store(One, Local0)
                    ShiftLeft(Local0, INTR, IRQL)
                    EXFG()
                    Return(BUF1)
                }
                Name(_PRS, Buffer(0x33) {0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x0, 
0x8, 0x22, 0xb8, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x0, 0x8, 0x22, 0xb8, 
0x0, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x0, 0x8, 0x22, 0xb8, 0x0, 0x30, 0x47, 
0x1, 0xe8, 0x2, 0xe8, 0x2, 0x0, 0x8, 0x22, 0xb8, 0x0, 0x38, 0x79, 0x0 })
                Method(_SRS, 1) {
                    CreateByteField(Arg0, 0x2, IOLO)
                    CreateByteField(Arg0, 0x3, IOHI)
                    CreateByteField(Arg0, 0x9, IRQL)
                    ENFG()
                    Store(0x1, LDN_)
                    Store(IOLO, IOAL)
                    Store(IOHI, IOAH)
                    FindSetRightBit(IRQL, Local0)
                    Subtract(Local0, 0x1, INTR)
                    Store(One, ACTR)
                    EXFG()
                }
            }
            Device(UAR2) {
                Name(_HID, 0x0105d041)
                Name(_UID, 0x2)
                Method(_STA) {
                    ENFG()
                    Store(0x2, LDN_)
                    And(OPT2, 0x7, Local0)
                    If(LEqual(Local0, 0x0)) {
                        If(ACTR) {
                            EXFG()
                            Return(0xf)
                        }
                        Else {
                            If(LOr(IOAH, IOAL)) {
                                EXFG()
                                Return(0xd)
                            }
                            Else {
                                EXFG()
                                Return(0x0)
                            }
                        }
                    }
                    Else {
                        EXFG()
                        Return(0x0)
                    }
                }
                Method(_DIS) {
                    ENFG()
                    Store(0x2, LDN_)
                    And(OPT2, 0x7, Local0)
                    If(LEqual(Local0, 0x0)) {
                        Store(Zero, ACTR)
                    }
                    EXFG()
                }
                Method(_CRS) {
                    Name(BUF2, Buffer(0xd) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 
0x22, 0x0, 0x0, 0x79, 0x0 })
                    CreateByteField(BUF2, 0x2, IOLO)
                    CreateByteField(BUF2, 0x3, IOHI)
                    CreateByteField(BUF2, 0x4, IORL)
                    CreateByteField(BUF2, 0x5, IORH)
                    CreateByteField(BUF2, 0x9, IRQL)
                    ENFG()
                    Store(0x2, LDN_)
                    Store(One, ACTR)
                    Store(IOAL, IOLO)
                    Store(IOAL, IORL)
                    Store(IOAH, IOHI)
                    Store(IOAH, IORH)
                    Store(One, Local0)
                    ShiftLeft(Local0, INTR, IRQL)
                    EXFG()
                    Return(BUF2)
                }
                Name(_PRS, Buffer(0x33) {0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x0, 
0x8, 0x22, 0xb8, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x0, 0x8, 0x22, 0xb8, 
0x0, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x0, 0x8, 0x22, 0xb8, 0x0, 0x30, 0x47, 
0x1, 0xe8, 0x2, 0xe8, 0x2, 0x0, 0x8, 0x22, 0xb8, 0x0, 0x38, 0x79, 0x0 })
                Method(_SRS, 1) {
                    CreateByteField(Arg0, 0x2, IOLO)
                    CreateByteField(Arg0, 0x3, IOHI)
                    CreateByteField(Arg0, 0x9, IRQL)
                    ENFG()
                    Store(0x2, LDN_)
                    Store(One, ACTR)
                    Store(IOLO, IOAL)
                    Store(IOHI, IOAH)
                    FindSetRightBit(IRQL, Local0)
                    Subtract(Local0, 0x1, INTR)
                    EXFG()
                }
            }
            Device(IRDA) {
                Name(_HID, 0x1005d041)
                Method(_STA) {
                    ENFG()
                    Store(0x2, LDN_)
                    And(OPT2, 0x7, Local0)
                    If(LEqual(Local0, 0x1)) {
                        If(ACTR) {
                            EXFG()
                            Return(0xf)
                        }
                        Else {
                            If(LOr(IOAH, IOAL)) {
                                EXFG()
                                Return(0xd)
                            }
                            Else {
                                EXFG()
                                Return(0x0)
                            }
                        }
                    }
                    Else {
                        EXFG()
                        Return(0x0)
                    }
                }
                Method(_DIS) {
                    ENFG()
                    Store(0x2, LDN_)
                    And(OPT2, 0x7, Local0)
                    If(LNot(LEqual(Local0, 0x0))) {
                        Store(Zero, ACTR)
                    }
                    EXFG()
                }
                Method(_CRS) {
                    Name(BUF3, Buffer(0xd) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 
0x22, 0x0, 0x0, 0x79, 0x0 })
                    CreateByteField(BUF3, 0x2, IOLO)
                    CreateByteField(BUF3, 0x3, IOHI)
                    CreateByteField(BUF3, 0x4, IORL)
                    CreateByteField(BUF3, 0x5, IORH)
                    CreateByteField(BUF3, 0x9, IRQL)
                    ENFG()
                    Store(0x2, LDN_)
                    Store(One, ACTR)
                    Store(IOAL, IOLO)
                    Store(IOAL, IORL)
                    Store(IOAH, IOHI)
                    Store(IOAH, IORH)
                    Store(One, Local0)
                    ShiftLeft(Local0, INTR, IRQL)
                    EXFG()
                    Return(BUF3)
                }
                Name(_PRS, Buffer(0x33) {0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x0, 
0x8, 0x22, 0xb8, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x0, 0x8, 0x22, 0xb8, 
0x0, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x0, 0x8, 0x22, 0xb8, 0x0, 0x30, 0x47, 
0x1, 0xe8, 0x2, 0xe8, 0x2, 0x0, 0x8, 0x22, 0xb8, 0x0, 0x38, 0x79, 0x0 })
                Method(_SRS, 1) {
                    CreateByteField(Arg0, 0x2, IOLO)
                    CreateByteField(Arg0, 0x3, IOHI)
                    CreateByteField(Arg0, 0x9, IRQL)
                    ENFG()
                    Store(0x2, LDN_)
                    Store(One, ACTR)
                    Store(IOLO, IOAL)
                    Store(IOHI, IOAH)
                    FindSetRightBit(IRQL, Local0)
                    Subtract(Local0, 0x1, INTR)
                    EXFG()
                }
            }
            Device(LPT_) {
                Name(_HID, 0x0004d041)
                Method(_STA) {
                    ENFG()
                    Store(0x3, LDN_)
                    And(OPT1, 0x2, Local0)
                    If(LEqual(Local0, 0x0)) {
                        If(ACTR) {
                            EXFG()
                            Return(0xf)
                        }
                        Else {
                            If(LOr(IOAH, IOAL)) {
                                EXFG()
                                Return(0xd)
                            }
                            Else {
                                EXFG()
                                Return(0x0)
                            }
                        }
                    }
                    Else {
                        EXFG()
                        Return(0x0)
                    }
                }
                Method(_DIS) {
                    ENFG()
                    Store(0x3, LDN_)
                    Store(Zero, ACTR)
                    EXFG()
                }
                Method(_CRS) {
                    Name(BUF5, Buffer(0xd) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 
0x22, 0x0, 0x0, 0x79, 0x0 })
                    CreateByteField(BUF5, 0x2, IOLO)
                    CreateByteField(BUF5, 0x3, IOHI)
                    CreateByteField(BUF5, 0x4, IORL)
                    CreateByteField(BUF5, 0x5, IORH)
                    CreateByteField(BUF5, 0x7, IOLN)
                    CreateByteField(BUF5, 0x9, IRQL)
                    ENFG()
                    Store(0x3, LDN_)
                    Store(One, ACTR)
                    Store(IOAL, IOLO)
                    Store(IOAL, IORL)
                    Store(IOAH, IOHI)
                    Store(IOAH, IORH)
                    If(LEqual(IOLO, 0xbc)) {
                        Store(0x4, IOLN)
                    }
                    Else {
                        Store(0x8, IOLN)
                    }
                    Store(One, Local0)
                    ShiftLeft(Local0, INTR, IRQL)
                    EXFG()
                    Return(BUF5)
                }
                Name(_PRS, Buffer(0x27) {0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x0, 
0x8, 0x22, 0xb8, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x0, 0x8, 0x22, 0xb8, 
0x0, 0x30, 0x47, 0x1, 0xbc, 0x3, 0xbc, 0x3, 0x0, 0x4, 0x22, 0xb8, 0x0, 0x38, 0x79, 0x0 
})
                Method(_SRS, 1) {
                    CreateByteField(Arg0, 0x2, IOLO)
                    CreateByteField(Arg0, 0x3, IOHI)
                    CreateByteField(Arg0, 0x4, IORL)
                    CreateByteField(Arg0, 0x5, IORH)
                    CreateByteField(Arg0, 0x9, IRQL)
                    ENFG()
                    Store(0x3, LDN_)
                    Store(IOLO, IOAL)
                    Store(IOHI, IOAH)
                    FindSetLeftBit(IRQL, Local0)
                    Subtract(Local0, 0x1, INTR)
                    Store(One, ACTR)
                    EXFG()
                }
            }
            Device(ECP_) {
                Name(_HID, 0x0104d041)
                Method(_STA) {
                    ENFG()
                    Store(0x3, LDN_)
                    And(OPT1, 0x2, Local0)
                    If(LEqual(Local0, 0x2)) {
                        If(ACTR) {
                            EXFG()
                            Return(0xf)
                        }
                        Else {
                            If(LOr(IOAH, IOAL)) {
                                EXFG()
                                Return(0xd)
                            }
                            Else {
                                EXFG()
                                Return(0x0)
                            }
                        }
                    }
                    Else {
                        EXFG()
                        Return(0x0)
                    }
                }
                Method(_DIS) {
                    ENFG()
                    Store(0x3, LDN_)
                    Store(Zero, ACTR)
                    EXFG()
                }
                Method(_CRS) {
                    Name(BUF6, Buffer(0x18) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x2a, 0x0, 0x0, 0x79, 0x0 })
                    CreateByteField(BUF6, 0x2, IOLO)
                    CreateByteField(BUF6, 0x3, IOHI)
                    CreateByteField(BUF6, 0x4, IORL)
                    CreateByteField(BUF6, 0x5, IORH)
                    CreateByteField(BUF6, 0x7, IOLN)
                    CreateByteField(BUF6, 0xa, IOEL)
                    CreateByteField(BUF6, 0xb, IOEH)
                    CreateByteField(BUF6, 0xc, IOML)
                    CreateByteField(BUF6, 0xd, IOMH)
                    CreateByteField(BUF6, 0xf, IOHN)
                    CreateByteField(BUF6, 0x11, IRQL)
                    CreateByteField(BUF6, 0x14, DMAC)
                    ENFG()
                    Store(0x3, LDN_)
                    Store(One, ACTR)
                    Store(IOAL, IOLO)
                    Store(IOAL, IORL)
                    Store(IOAL, IOEL)
                    Store(IOAL, IOML)
                    Store(IOAH, IOHI)
                    Store(IOAH, IORH)
                    Store(IOAH, Local3)
                    Or(Local3, 0x4, Local3)
                    Store(Local3, IOEH)
                    Store(Local3, IOMH)
                    If(LEqual(IOLO, 0xbc)) {
                        Store(0x4, IOLN)
                        Store(0x4, IOHN)
                    }
                    Else {
                        Store(0x8, IOLN)
                        Store(0x4, IOHN)
                    }
                    Store(One, Local0)
                    ShiftLeft(Local0, INTR, IRQL)
                    Store(One, Local0)
                    ShiftLeft(Local0, DMCH, DMAC)
                    EXFG()
                    Return(BUF6)
                }
                Name(_PRS, Buffer(0x48) {0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x0, 
0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x0, 0x4, 0x22, 0xb8, 0x0, 0x2a, 0xb, 0x0, 0x30, 
0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x0, 0x8, 0x47, 0x1, 0x78, 0x6, 0x78, 0x6, 0x0, 0x4, 
0x22, 0xb8, 0x0, 0x2a, 0xb, 0x0, 0x30, 0x47, 0x1, 0xbc, 0x3, 0xbc, 0x3, 0x0, 0x4, 
0x47, 0x1, 0xbc, 0x7, 0xbc, 0x7, 0x0, 0x4, 0x22, 0xb8, 0x0, 0x2a, 0xb, 0x0, 0x38, 
0x79, 0x0 })
                Method(_SRS, 1) {
                    CreateByteField(Arg0, 0x2, IOLO)
                    CreateByteField(Arg0, 0x3, IOHI)
                    CreateByteField(Arg0, 0x11, IRQL)
                    CreateByteField(Arg0, 0x14, DMAC)
                    ENFG()
                    Store(0x3, LDN_)
                    Store(One, ACTR)
                    Store(IOLO, IOAL)
                    Store(IOHI, IOAH)
                    FindSetLeftBit(IRQL, Local0)
                    Subtract(Local0, 0x1, INTR)
                    FindSetLeftBit(DMAC, Local1)
                    Subtract(Local1, 0x1, DMCH)
                    EXFG()
                }
            }
            Device(PS2M) {
                Name(_HID, 0x130fd041)
                Method(_STA) {
                    And(FLG0, 0x4, Local0)
                    If(LEqual(Local0, 0x4)) {
                        Return(0xf)
                    }
                    Else {
                        Return(0x0)
                    }
                }
                Name(_CRS, Buffer(0x5) {0x22, 0x0, 0x10, 0x79, 0x0 })
            }
            Device(PS2K) {
                Name(_HID, 0x0303d041)
                Method(_STA) {
                    If(LEqual(KBDI, 0x1)) {
                        Return(0x0)
                    }
                    Else {
                        Return(0xf)
                    }
                }
                Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x60, 0x0, 0x60, 0x0, 0x1, 0x1, 
0x47, 0x1, 0x64, 0x0, 0x64, 0x0, 0x1, 0x1, 0x22, 0x2, 0x0, 0x79, 0x0 })
            }
        }
        Name(_PRW, Package(0x2) {
            0x9,
            0x1,
        })
    }
}

}

Reply via email to