From owner-acpi-jp@jp.FreeBSD.org Tue Dec 18 01:18:25 2001
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) id fBHGIPK64112;
	Tue, 18 Dec 2001 01:18:25 +0900 (JST)
	(envelope-from owner-acpi-jp@jp.FreeBSD.org)
Received: from draco.macsch.com (draco.macsch.com [192.73.8.1])
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) with ESMTP/inet id fBHGII664107
	for <acpi-jp@jp.freebsd.org>; Tue, 18 Dec 2001 01:18:18 +0900 (JST)
	(envelope-from Georg.Koltermann@mscsoftware.com)
Received: from mailmuc.muc.eu.mscsoftware.com (mailmuc.muc.macsch.com [161.34.37.20])
	by draco.macsch.com (8.9.3/8.9.3) with ESMTP id IAA09996;
	Mon, 17 Dec 2001 08:13:43 -0800 (PST)
Received: from hunter.muc.macsch.com (hunter.muc.macsch.com [172.17.22.32])
	by mailmuc.muc.eu.mscsoftware.com (8.11.2/8.11.2/SuSE Linux 8.11.1-0.5) with ESMTP id fBHGHUh19474;
	Mon, 17 Dec 2001 17:17:30 +0100
Received: from hunter.muc.macsch.com (localhost.muc.macsch.com [127.0.0.1])
	by hunter.muc.macsch.com (8.11.6/8.11.6) with ESMTP id fBHGHcD01275;
	Mon, 17 Dec 2001 17:17:39 +0100 (CET)
	(envelope-from Georg.Koltermann@mscsoftware.com)
Date: Mon, 17 Dec 2001 17:17:38 +0100
Message-ID: <px8n10h253x.wl@hunter.muc.macsch.com>
From: Georg-W Koltermann <Georg.Koltermann@mscsoftware.com>
To: Takanori Watanabe <takawata@shidahara1.planet.sci.kobe-u.ac.jp>
Cc: acpi-jp@jp.FreeBSD.org
In-Reply-To: <200112170954.SAA52265@shidahara1.planet.sci.kobe-u.ac.jp>
References: <px8itb6fa1t.wl@hunter.muc.macsch.com>
	<200112170954.SAA52265@shidahara1.planet.sci.kobe-u.ac.jp>
User-Agent: Wanderlust/2.4.1 (Stand By Me) SEMI/1.13.7 (Awazu) FLIM/1.13.2 (Kasanui) Emacs/20.7 (i386--freebsd) MULE/4.0 (HANANOEN)
Organization: MSC Software
X-Attribution: gwk
MIME-Version: 1.0 (generated by SEMI 1.13.7 - "Awazu")
Content-Type: multipart/mixed;
 boundary="Multipart_Mon_Dec_17_17:17:38_2001-1"
Content-Transfer-Encoding: 8bit
Reply-To: acpi-jp@jp.FreeBSD.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+010331
X-Sequence: acpi-jp 1545
Subject: [acpi-jp 1545] Re: ACPI causes immediate reboot [Omnibook 6100] ?
Errors-To: owner-acpi-jp@jp.FreeBSD.org
Sender: owner-acpi-jp@jp.FreeBSD.org
X-Originator: Georg.Koltermann@mscsoftware.com

--Multipart_Mon_Dec_17_17:17:38_2001-1
Content-Type: text/plain; charset=US-ASCII

Hi Takanori,

attached please find the ASL dump, generated with the command (I hope
this was correct):

	acpidump -o ob6100.dsdt > ob6100.asl

-- 
Regards,
Georg.




--Multipart_Mon_Dec_17_17:17:38_2001-1
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="ob6100.asl"
Content-Transfer-Encoding: 8bit

/*
RSD PTR: Checksum=119, OEMID=PTLTD, RsdtAddress=0x3ff6830a
 */
/*
RSDT: Length=44, Revision=1, Checksum=170,
	OEMID=PTLTD, OEM Table ID=EBRSDT, OEM Revision=0x2100000,
	Creator ID= LTP, Creator Revision=0x0
 */
/*
	Entries={ 0x3ff73b64, 0x3ff73bd8 }
 */
/*
	DSDT=0x3ff68336
	INT_MODEL=PIC
	SCI_INT=9
	SMI_CMD=0xb2, ACPI_ENABLE=0xf0, ACPI_DISABLE=0xf1, S4BIOS_REQ=0xf2
	PM1a_EVT_BLK=0x1000-0x1003
	PM1a_CNT_BLK=0x1004-0x1005
	PM2_CNT_BLK=0x1020-0x1020
	PM2_TMR_BLK=0x1008-0x100b
	PM2_GPE0_BLK=0x1028-0x102b
	PM2_GPE1_BLK=0x102c-0x102f, GPE1_BASE=16
	P_LVL2_LAT=10ms, P_LVL3_LAT=1001ms
	FLUSH_SIZE=0, FLUSH_STRIDE=0
	DUTY_OFFSET=0, DUTY_WIDTH=0
	DAY_ALRM=13, MON_ALRM=8, CENTURY=50
	Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4,DCK_CAP}
 */
/*
DSDT: Length=47150, Revision=1, Checksum=59,
	OEMID=HP-MCD, OEM Table ID=EB DSDT, OEM Revision=0x2100000,
	Creator ID=MSFT, Creator Revision=0x100000d
 */
DefinitionBlock (
    "acpi_dsdt.aml",	//Output filename
    "DSDT",		//Signature
    0x1,		//DSDT Revision
    "HP-MCD",		//OEMID
    "EB DSDT",		//TABLE ID
    0x2100000		//OEM Revision
)

{
Scope(_PR_) {
    Processor(CPU0, 0, 0x1010, 0x6) {
        Name(_PCT, Package(0x2) {
            Buffer(0x11) {0x82, 0xc, 0x0, 0x1, 0x8, 0x0, 0x0, 0xb2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 },
            Buffer(0x11) {0x82, 0xc, 0x0, 0x1, 0x8, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 },
        })
        Name(_PSS, Package(0x2) {
            Package(0x6) {
                0x046d,
                0x4a9c,
                0x01f4,
                0xdc,
                0x83,
                0x0,
            },
            Package(0x6) {
                0x02dd,
                0x254e,
                0x01f4,
                0xdc,
                0x84,
                0x1,
            },
        })
        Method(_PPC) {
            If(And(\_SB_.PCI0.ISA0.MFLG, 0x4, )) {
                If(LEqual(\_SB_.TOOS, 0x4)) {
                    If(And(\_SB_.PCI0.ISA0.MFLG, 0x20, )) {
                        Return(0x1)
                    }
                    Else {
                        Return(0x0)
                    }
                }
                Else {
                    Return(0x0)
                }
            }
            Else {
                Return(0x1)
            }
        }
    }
}
Name(ECEN, 0x0)
Method(ECOK) {
    If(LAnd(ECEN, And(\_SB_.PCI0.ISA0.MFLG, 0x1, ))) {
        Return(0x1)
    }
    Else {
        Return(0x0)
    }
}
Method(RSTQ, 0, Serialized) {
    If(\_SB_.QBST) {
        Store(0x0, \_SB_.QBST)
        Store(0x1, \_SB_.PCI0.ISA0.EC0_.EQBF)
        Sleep(0x32)
    }
}
Name(_S0_, Package(0x3) {
    0x0,
    0x0,
    0x0,
})
Name(_S3_, Package(0x3) {
    0x5,
    0x5,
    0x0,
})
Name(_S4_, Package(0x3) {
    0x6,
    0x6,
    0x0,
})
Name(_S5_, Package(0x3) {
    0x7,
    0x7,
    0x0,
})
Method(_PTS, 1) {
    Or(\_SB_.PCI0.ISA0.MFLG, 0x10, \_SB_.PCI0.ISA0.MFLG)
    If(LNot(LLess(Arg0, 0x4))) {
        If(ECOK()) {
            Store(0x0, \_SB_.PCI0.ISA0.EC0_.EQBF)
        }
    }
    If(LEqual(Arg0, 0x3)) {
        If(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x3)) {
            Or(Not(\_SB_.PCI0.HUB_.FDS_.CEVN, ), 0x40, \_SB_.PCI0.HUB_.FDS_.CEVN)
            If(ECOK()) {
                If(\_SB_.PCI0.ISA0.EC0_.EQBF) {
                    Store(0x1, \_SB_.QBST)
                    Store(0x0, \_SB_.PCI0.ISA0.EC0_.EQBF)
                    Sleep(0x32)
                }
            }
        }
    }
    If(LEqual(Arg0, 0x4)) {
        If(LEqual(\_SB_.PCI0.ISA0.SPR0.EJX_, 0x4)) {
            Store(0x0, \_SB_.PCI0.ISA0.SPR0.EJX_)
        }
        Else {
            \_SB_.PCI0.ISA0.HPSS(0xc, 0x0)
        }
        Store(\_SB_.PCI0.ISA0.DKTP, \_SB_.DCTM)
    }
    If(ECOK()) {
        Store(Arg0, \_SB_.PCI0.ISA0.EC0_.PTSV)
    }
}
Name(WAKT, 0x0)
Method(_WAK, 1) {
    If(ECOK()) {
        Store(0x0, \_SB_.PCI0.ISA0.EC0_.RSMA)
        Store(0x6, \_SB_.PCI0.ISA0.EC0_.B2LC)
        Store(\_SB_.PCI0.ISA0.EC0_.RSMT, Local0)
        Add(Local0, ShiftLeft(Local0, 0x2, ), WAKT)
        Store(0x0, \_SB_.PCI0.ISA0.EC0_.PTSV)
        If(\_SB_.PCI0.ISA0.EC0_.LIDS) {
            Store(0x0, \_SB_.LID_.LPOL)
            Store(0x0, \_SB_.PCI0.ISA0.BKLT)
        }
        Else {
            Store(0x1, \_SB_.LID_.LPOL)
            Store(0x1, \_SB_.PCI0.ISA0.BKLT)
            \_SB_.PCI0.ISA0.EC0_._Q0A()
            \_SB_.PCI0.ISA0.EC0_._Q0B()
        }
        If(\_SB_.PCI0.ISA0.EC0_.ADP_) {
            Store(0x0, \_SB_.PCI0.ISA0.CRUN)
        }
        Else {
            Store(0x1, \_SB_.PCI0.ISA0.CRUN)
        }
    }
    Store(\_SB_.PCI0.ISA0.EC0_.DCID, \_SB_.CUDC)
    While(And(\_SB_.CUDC, 0x80, )) {
        Store(\_SB_.PCI0.ISA0.EC0_.DCID, \_SB_.CUDC)
    }
    If(LEqual(Arg0, 0x4)) {
        Store(\_SB_.DCTM, \_SB_.PCI0.ISA0.DKTP)
        If(\_SB_.PCI0.ISA0.EC0_.DCWT) {
            Or(\_SB_.DCKF, 0x8, \_SB_.DCKF)
        }
        \_SB_.PCI0.ISA0.HPSS(0xd, 0x0)
        If(\_SB_.CUDC) {
            If(LNot(LEqual(\_SB_.CUDC, \_SB_.PCI0.ISA0.DKTP))) {
                \_SB_.PCI0.ISA0.SPR0.DOCK()
            }
            Else {
                Store(0x1, \_SB_.PCI0.ISA0.EC0_.DPWR)
                If(LEqual(\_SB_.CUDC, 0x1)) {
                    Store(0x1, \_SB_.PCI0.ISA0.EC0_.LDDS)
                }
                Else {
                    \_SB_.PCI0.HUB_.EPR_.ENQB()
                }
            }
        }
        Else {
            If(\_SB_.PCI0.ISA0.DKTP) {
                \_SB_.PCI0.ISA0.SPR0.UDOK()
            }
            Store(0x0, \_SB_.PCI0.ISA0.DKTP)
        }
        Store(0x3, \_SB_.PCI0.AGP_.VGA_.LCD_._PSC)
        Store(0x3, \_SB_.PCI0.AGP_.VGA_.CRT_._PSC)
        Store(0x3, \_SB_.PCI0.AGP_.VGA_.TV__._PSC)
    }
    If(LEqual(Arg0, 0x3)) {
        Store(0x1, \_SB_.PCI0.ISA0.KBC_.KBS3)
        If(\_SB_.PCI0.ISA0.DKTP) {
            If(LNot(LOr(\_SB_.CUDC, \_SB_.PCI0.ISA0.EC0_.DCWT))) {
                \_SB_.PCI0.ISA0.SPR0.UDOK()
                Store(0x0, \_SB_.PCI0.ISA0.DKTP)
            }
            Else {
                If(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x3)) {
                    RSTQ()
                    And(Not(\_SB_.PCI0.HUB_.FDS_.CEVN, ), 0xbf, \_SB_.PCI0.HUB_.FDS_.CEVN)
                }
            }
        }
        \_SB_.PCI0.ISA0.HPSS(0x10, 0x0)
    }
    Acquire(\_SB_.PCI0.ISA0.EC0_.MUT3, 0xffff)
    \_SB_.PCI0.ISA0.EC0_.MBAY()
    Release(\_SB_.PCI0.ISA0.EC0_.MUT3)
    Store(0x0, Local2)
    If(LEqual(\_SB_.PCI0.ISA0.EC0_.EXFD, 0x1)) {
        Or(Local2, 0x1, Local2)
    }
    If(LEqual(\_SB_.PCI0.ISA0.EC0_.FDD_, 0x1)) {
        Or(Local2, 0x2, Local2)
    }
    Else {
        If(LEqual(\_SB_.PCI0.ISA0.EC0_.SHDD, 0x1)) {
            Or(Local2, 0x4, Local2)
            Or(Local2, \_SB_.PCI0.ISA0.EC0_.BIDE, Local2)
        }
        Else {
            Store(0x1, \_SB_.PCI0.ISA0.SDPW)
            Store(0x0, \_SB_.PCI0.ISA0.GO28)
        }
    }
    If(LNot(LEqual(Local2, \_SB_.PCI0.IDE_.BAYD))) {
        Acquire(\_SB_.PCI0.ISA0.EC0_.MUT2, 0xffff)
        \_SB_.PCI0.ISA0.EC0_.SWAP()
        Release(\_SB_.PCI0.ISA0.EC0_.MUT2)
    }
    Store(0x1, \_SB_.PCI0.AGP_.VGA_.VRSM)
}
Scope(\_TZ_) {
    Name(THMD, Zero)
    Name(THID, Zero)
    Name(THOK, Zero)
    Name(SKUS, 0x3)
    Name(NOMV, 0x0c3a)
    Name(ACTV, 0x0cbc)
    Name(PASV, 0x0cf8)
    Name(CRTV, 0x0e06)
    Name(TBLI, Buffer(0x9) {0x10, 0xc0, 0x0, 0x11, 0xc1, 0x1, 0x12, 0xc2, 0x2 })
    Name(TRPA, Buffer(0xc) {0x46, 0x40, 0x4c, 0x56, 0x46, 0x40, 0x4c, 0x56, 0x4b, 0x44, 0x64, 0x64 })
    Name(TRPP, Buffer(0xc) {0x46, 0x40, 0x4c, 0x56, 0x46, 0x40, 0x4c, 0x56, 0x4b, 0x44, 0x64, 0x64 })
    Method(GETI, 1) {
        Store("THERM: GETI - Value:", Debug)
        Store(Arg0, Local1)
        Store(\_SB_.PCI0.ISA0.EC0_.KBID, Local2)
        Store(Zero, Local3)
        Store(Zero, Local4)
        While(LLess(Local3, SKUS)) {
            \_SB_.GBFE(TBLI, Local4, RefOf(Local5))
            If(LEqual(Local5, Local1)) {
                \_SB_.GBFE(TBLI, Add(Local4, 0x1, ), RefOf(Local5))
                If(LEqual(Local5, Local2)) {
                    \_SB_.GBFE(TBLI, Add(Local4, 0x2, ), RefOf(Local1))
                    Store(Local1, THID)
                    Store(Ones, THOK)
                    Store(SKUS, Local3)
                    Store(THID, Debug)
                }
                Else {
                    Add(Local4, 0x3, Local4)
                    Increment(Local3)
                }
            }
            Else {
                Add(Local4, 0x3, Local4)
                Increment(Local3)
            }
        }
        If(LEqual(THOK, Ones)) {
            Return(THID)
        }
        Else {
            Return(Zero)
        }
    }
    Method(TABL, 1) {
        If(LEqual(THMD, Zero)) {
            \_SB_.GBFE(TRPA, Arg0, RefOf(Local0))
        }
        Else {
            \_SB_.GBFE(TRPP, Arg0, RefOf(Local0))
        }
        Return(Local0)
    }
    Method(KELV, 1) {
        If(And(Arg0, 0x80, )) {
            Store(0xffffff00, Local1)
        }
        Else {
            Store(Zero, Local1)
        }
        Or(Local1, Arg0, Local1)
        Add(Multiply(Local1, 0xa, ), 0x0aac, Local1)
        Return(Local1)
    }
    PowerResource(PFAN, 0, 0) {
        Method(_STA) {
            Store("THERM: _STA - Fan Status", Debug)
            If(ECOK()) {
                Return(\_SB_.PCI0.ISA0.EC0_.FAN_)
            }
            Else {
                Return(0x0)
            }
        }
        Method(_ON_) {
            Store("THERM: _ON - Fan TurnOn", Debug)
            If(ECOK()) {
                Store(One, \_SB_.PCI0.ISA0.EC0_.FAN_)
                Store("THERM: Notify(THRM,0x81)", Debug)
                If(\_SB_.PCI0.OSNT) {
                    Notify(\_TZ_.THRM, 0x81)
                }
            }
        }
        Method(_OFF) {
            Store("THERM: _OFF - Fan TurnOff", Debug)
            If(ECOK()) {
                Store(Zero, \_SB_.PCI0.ISA0.EC0_.FAN_)
                Store("THERM: Notify(THRM,0x81)", Debug)
                If(\_SB_.PCI0.OSNT) {
                    Notify(\_TZ_.THRM, 0x81)
                }
            }
        }
    }
    Device(FAN_) {
        Name(_HID, 0x0b0cd041)
        Name(_PR0, Package(0x1) {
            PFAN,
        })
    }
    ThermalZone(THRM) {
        Name(_AL0, Package(0x1) {
            FAN_,
        })
        Name(_PSL, Package(0x1) {
            \_PR_.CPU0,
        })
        Method(_TMP) {
            Store("THERM: _TMP - Value:", Debug)
            If(ECOK()) {
                Store(KELV(\_SB_.PCI0.ISA0.EC0_.CTMP), Local0)
            }
            Else {
                Store(NOMV, Local0)
            }
            Store(Local0, Debug)
            Return(Local0)
        }
        Method(_AC0) {
            Store("THERM: _AC0 - Value:", Debug)
            If(ECOK()) {
                If(LEqual(THOK, Zero)) {
                    Store(GETI(\_SB_.BIOS), THID)
                }
                ShiftLeft(THID, 0x2, Local1)
                If(\_SB_.PCI0.ISA0.EC0_.FAN_) {
                    Increment(Local1)
                }
                Store(KELV(TABL(Local1)), Local0)
                Store(Local0, ACTV)
            }
            Else {
                Store(ACTV, Local0)
            }
            Store(Local0, Debug)
            Return(Local0)
        }
        Method(_PSV) {
            Store("THERM: _PSV - Value:", Debug)
            If(ECOK()) {
                If(LEqual(THOK, Zero)) {
                    Store(GETI(\_SB_.BIOS), THID)
                }
                ShiftLeft(THID, 0x2, Local1)
                Add(Local1, 0x2, Local1)
                Store(KELV(TABL(Local1)), Local0)
            }
            Else {
                Store(PASV, Local0)
            }
            Store(Local0, Debug)
            Return(Local0)
        }
        Method(_CRT) {
            Store("THERM: _CRT - Value:", Debug)
            If(ECOK()) {
                If(LEqual(THOK, Zero)) {
                    Store(GETI(\_SB_.BIOS), THID)
                }
                ShiftLeft(THID, 0x2, Local1)
                Add(Local1, 0x3, Local1)
                Store(KELV(TABL(Local1)), Local0)
            }
            Else {
                Store(CRTV, Local0)
            }
            Store(Local0, Debug)
            Return(Local0)
        }
        Method(_SCP, 1) {
            If(LEqual(Arg0, Zero)) {
                Store("THERM: _SCP(Active)", Debug)
            }
            Else {
                Store("THERM: _SCP(Passive)", Debug)
            }
            Store(Arg0, THMD)
            Store(Zero, THOK)
            Store(Zero, THID)
        }
        Name(_TC1, 0x4)
        Name(_TC2, 0x3)
        Name(_TSP, 0x64)
    }
}
Scope(_SI_) {
    Method(_SST, 1) {
        If(ECOK()) {
            If(LEqual(Arg0, 0x0)) {
                Store(0x0, \_SB_.PCI0.ISA0.EC0_.S1LD)
                Store(0x0, \_SB_.PCI0.ISA0.EC0_.S2LD)
                Store("SI_SST_0", Debug)
            }
            If(LEqual(Arg0, 0x1)) {
                Store(0x1, \_SB_.PCI0.ISA0.EC0_.S1LD)
                Store(0x0, \_SB_.PCI0.ISA0.EC0_.S2LD)
                Store("SI_SST_1", Debug)
            }
            If(LEqual(Arg0, 0x2)) {
                Store(0x1, \_SB_.PCI0.ISA0.EC0_.S1LD)
                Store(0x1, \_SB_.PCI0.ISA0.EC0_.S2LD)
                Store("SI_SST_2", Debug)
            }
            If(LEqual(Arg0, 0x3)) {
                Store(0x1, \_SB_.PCI0.ISA0.EC0_.S1LD)
                Store(0x1, \_SB_.PCI0.ISA0.EC0_.S2LD)
                Store("SI_SST_3", Debug)
            }
            If(LEqual(Arg0, 0x4)) {
                Store(0x0, \_SB_.PCI0.ISA0.EC0_.S1LD)
                Store(0x0, \_SB_.PCI0.ISA0.EC0_.S2LD)
                Store("SI_SST_4", Debug)
            }
        }
    }
}
Scope(_GPE) {
    Method(_L1D) {
        If(ECOK()) {
            Store(\_SB_.PCI0.ISA0.EC0_.WAKP, Local0)
            Store(0x0, \_SB_.PCI0.ISA0.EC0_.WAKP)
            If(And(Local0, 0x1, )) {
                If(\_SB_.PCI0.ISA0.EC0_.LIDS) {
                    Store(0x0, \_SB_.LID_.LPOL)
                }
                Else {
                    Store(0x1, \_SB_.LID_.LPOL)
                }
                Notify(\_SB_.LID_, 0x80)
            }
            If(And(Local0, 0x40, )) {
                Store("Notify Sleep Button(0x2)", Debug)
                Notify(\_SB_.SLP_, 0x2)
            }
            If(And(Local0, 0x0100, )) {
                Store(0x0, \_SB_.PCI0.ISA0.EC0_.LDDS)
                Store(0x1, \_SB_.PCI0.ISA0.EC0_.DCWT)
                Notify(\_SB_.SLP_, 0x2)
                If(LNot(LEqual(\_SB_.PCI0.ISA0.EC0_.DCID, \_SB_.PCI0.ISA0.DKTP))) {
                    Or(\_SB_.DCKF, 0x10, \_SB_.DCKF)
                    And(Local0, Not(0x80, ), Local0)
                    Store(0x1, \_SB_.PCI0.ISA0.EC0_.UDR0)
                }
                Else {
                    RSTQ()
                    \_SB_.PCI0.ISA0.SPR0.UNDK()
                }
            }
            If(And(Local0, 0x80, )) {
                If(\_SB_.PCI0.ISA0.EC0_.DCKS) {
                    Notify(\_SB_.SLP_, 0x2)
                    \_SB_.PCI0.ISA0.SPR0.DOCK()
                }
            }
        }
    }
    Method(_L08) {
        Notify(\_SB_.PCI0.ISA0.SIO_.COMA, 0x2)
    }
    Method(_L0B) {
        Notify(\_SB_.PCI0, 0x2)
    }
    Method(_L03) {
        Notify(\_SB_.PCI0.USB1, 0x80)
    }
    Method(_L00) {
        Notify(\_PR_.CPU0, 0x80)
    }
}
Scope(_SB_) {
    Name(BIOS, 0x12)
    Name(QBST, 0x0)
    Name(DCTM, 0x0)
    Name(DCKF, 0x0)
    Name(CUDC, 0x0)
    Name(TOOS, 0x0)
    Method(VTOB, 1) {
        Store(0x1, Local0)
        ShiftLeft(Local0, Arg0, Local0)
        Return(Local0)
    }
    Method(BTOV, 1) {
        ShiftRight(Arg0, 0x1, Local0)
        Store(0x0, Local1)
        While(Local0) {
            Increment(Local1)
            ShiftRight(Local0, 0x1, Local0)
        }
        Return(Local1)
    }
    Method(MKWD, 2) {
        If(And(Arg1, 0x80, )) {
            Store(0xffff0000, Local0)
        }
        Else {
            Store(Zero, Local0)
        }
        Or(Local0, Arg0, Local0)
        Or(Local0, ShiftLeft(Arg1, 0x8, ), Local0)
        Return(Local0)
    }
    Method(GBFE, 3) {
        CreateByteField(Arg0, Arg1, TIDX)
        Store(TIDX, Arg2)
    }
    Method(PBFE, 3) {
        CreateByteField(Arg0, Arg1, TIDX)
        Store(Arg2, TIDX)
    }
    Method(ITOS, 1) {
        Store(Buffer(0x9) {0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, Local0)
        Store(Buffer(0x11) {0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x0 }, Local7)
        Store(0x8, Local1)
        Store(0x0, Local2)
        Store(0x0, Local3)
        While(Local1) {
            Decrement(Local1)
            And(ShiftRight(Arg0, ShiftLeft(Local1, 0x2, ), ), 0xf, Local4)
            If(Local4) {
                Store(Ones, Local3)
            }
            If(Local3) {
                GBFE(Local7, Local4, RefOf(Local5))
                PBFE(Local0, Local2, Local5)
                Increment(Local2)
            }
        }
        Return(Local0)
    }
    Name(IRQP, Package(0x10) {
        0x0,
        0x0,
        0x0,
        0x8,
        0x10,
        0x20,
        0x40,
        0x80,
        0x0,
        0x0200,
        0x0400,
        0x0800,
        0x1000,
        0x0,
        0x4000,
        0x8000,
    })
    Device(LNKA) {
        Name(_HID, 0x0f0cd041)
        Name(_UID, 0x1)
        Method(_STA) {
            If(LLess(\_SB_.PCI0.ISA0.PIRA, 0x80)) {
                Return(0xb)
            }
            Else {
                Return(0x9)
            }
        }
        Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x4, 0x18, 0x79, 0x0 })
        Method(_DIS) {
            Or(\_SB_.PCI0.ISA0.PIRA, 0x80, \_SB_.PCI0.ISA0.PIRA)
        }
        Method(_CRS) {
            Name(BUFA, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
            CreateWordField(BUFA, 0x1, IRA1)
            And(\_SB_.PCI0.ISA0.PIRA, 0x8f, Local0)
            If(LLess(Local0, 0x80)) {
                Store(DerefOf(Index(IRQP, Local0, )), Local4)
                Store(Local4, IRA1)
            }
            Return(BUFA)
        }
        Method(_SRS, 1) {
            CreateWordField(Arg0, 0x1, IRA1)
            Store(IRA1, Local0)
            Store(Match(IRQP, MEQ, Local0, MTR, 0x0, 0x0), Local1)
            And(\_SB_.PCI0.ISA0.PIRA, 0x70, Local0)
            Or(Local1, Local0, \_SB_.PCI0.ISA0.PIRA)
        }
    }
    Device(LNKB) {
        Name(_HID, 0x0f0cd041)
        Name(_UID, 0x2)
        Method(_STA) {
            If(LLess(\_SB_.PCI0.ISA0.PIRB, 0x80)) {
                Return(0xb)
            }
            Else {
                Return(0x9)
            }
        }
        Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x4, 0x18, 0x79, 0x0 })
        Method(_DIS) {
            Or(\_SB_.PCI0.ISA0.PIRB, 0x80, \_SB_.PCI0.ISA0.PIRB)
        }
        Method(_CRS) {
            Name(BUFB, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
            CreateWordField(BUFB, 0x1, IRA1)
            And(\_SB_.PCI0.ISA0.PIRB, 0x8f, Local0)
            If(LLess(Local0, 0x80)) {
                Store(DerefOf(Index(IRQP, Local0, )), Local4)
                Store(Local4, IRA1)
            }
            Return(BUFB)
        }
        Method(_SRS, 1) {
            CreateWordField(Arg0, 0x1, IRA1)
            Store(IRA1, Local0)
            Store(Match(IRQP, MEQ, Local0, MTR, 0x0, 0x0), Local1)
            And(\_SB_.PCI0.ISA0.PIRB, 0x70, Local0)
            Or(Local1, Local0, \_SB_.PCI0.ISA0.PIRB)
        }
    }
    Device(LNKC) {
        Name(_HID, 0x0f0cd041)
        Name(_UID, 0x3)
        Method(_STA) {
            If(LLess(\_SB_.PCI0.ISA0.PIRC, 0x80)) {
                Return(0xb)
            }
            Else {
                Return(0x9)
            }
        }
        Name(_PRS, Buffer(0x6) {0x23, 0x60, 0x0, 0x18, 0x79, 0x0 })
        Method(_DIS) {
            Or(\_SB_.PCI0.ISA0.PIRC, 0x80, \_SB_.PCI0.ISA0.PIRC)
        }
        Method(_CRS) {
            Name(BUFC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
            CreateWordField(BUFC, 0x1, IRA1)
            And(\_SB_.PCI0.ISA0.PIRC, 0x8f, Local0)
            If(LLess(Local0, 0x80)) {
                Store(DerefOf(Index(IRQP, Local0, )), Local4)
                Store(Local4, IRA1)
            }
            Return(BUFC)
        }
        Method(_SRS, 1) {
            CreateWordField(Arg0, 0x1, IRA1)
            Store(IRA1, Local0)
            Store(Match(IRQP, MEQ, Local0, MTR, 0x0, 0x0), Local1)
            And(\_SB_.PCI0.ISA0.PIRC, 0x70, Local0)
            Or(Local1, Local0, \_SB_.PCI0.ISA0.PIRC)
        }
    }
    Device(LNKD) {
        Name(_HID, 0x0f0cd041)
        Name(_UID, 0x4)
        Method(_STA) {
            If(LLess(\_SB_.PCI0.ISA0.PIRD, 0x80)) {
                Return(0xb)
            }
            Else {
                Return(0x9)
            }
        }
        Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x4, 0x18, 0x79, 0x0 })
        Method(_DIS) {
            Or(\_SB_.PCI0.ISA0.PIRD, 0x80, \_SB_.PCI0.ISA0.PIRD)
        }
        Method(_CRS) {
            Name(BUFD, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
            CreateWordField(BUFD, 0x1, IRA1)
            And(\_SB_.PCI0.ISA0.PIRD, 0x8f, Local0)
            If(LLess(Local0, 0x80)) {
                Store(DerefOf(Index(IRQP, Local0, )), Local4)
                Store(Local4, IRA1)
            }
            Return(BUFD)
        }
        Method(_SRS, 1) {
            CreateWordField(Arg0, 0x1, IRA1)
            Store(IRA1, Local0)
            Store(Match(IRQP, MEQ, Local0, MTR, 0x0, 0x0), Local1)
            And(\_SB_.PCI0.ISA0.PIRD, 0x70, Local0)
            Or(Local1, Local0, \_SB_.PCI0.ISA0.PIRD)
        }
    }
    Device(LNKE) {
        Name(_HID, 0x0f0cd041)
        Name(_UID, 0x5)
        Method(_STA) {
            If(LLess(\_SB_.PCI0.ISA0.PIRE, 0x80)) {
                Return(0xb)
            }
            Else {
                Return(0x9)
            }
        }
        Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x4, 0x18, 0x79, 0x0 })
        Method(_DIS) {
            Or(\_SB_.PCI0.ISA0.PIRE, 0x80, \_SB_.PCI0.ISA0.PIRE)
        }
        Method(_CRS) {
            Name(BUFE, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
            CreateWordField(BUFE, 0x1, IRA1)
            And(\_SB_.PCI0.ISA0.PIRE, 0x8f, Local0)
            If(LLess(Local0, 0x80)) {
                Store(DerefOf(Index(IRQP, Local0, )), Local4)
                Store(Local4, IRA1)
            }
            Return(BUFE)
        }
        Method(_SRS, 1) {
            CreateWordField(Arg0, 0x1, IRA1)
            Store(IRA1, Local0)
            Store(Match(IRQP, MEQ, Local0, MTR, 0x0, 0x0), Local1)
            And(\_SB_.PCI0.ISA0.PIRE, 0x70, Local0)
            Or(Local1, Local0, \_SB_.PCI0.ISA0.PIRE)
        }
    }
    Device(LNKF) {
        Name(_HID, 0x0f0cd041)
        Name(_UID, 0x6)
        Method(_STA) {
            If(LLess(\_SB_.PCI0.ISA0.PIRF, 0x80)) {
                Return(0xb)
            }
            Else {
                Return(0x9)
            }
        }
        Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x4, 0x18, 0x79, 0x0 })
        Method(_DIS) {
            Or(\_SB_.PCI0.ISA0.PIRF, 0x80, \_SB_.PCI0.ISA0.PIRF)
        }
        Method(_CRS) {
            Name(BUFF, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
            CreateWordField(BUFF, 0x1, IRA1)
            And(\_SB_.PCI0.ISA0.PIRF, 0x8f, Local0)
            If(LLess(Local0, 0x80)) {
                Store(DerefOf(Index(IRQP, Local0, )), Local4)
                Store(Local4, IRA1)
            }
            Return(BUFF)
        }
        Method(_SRS, 1) {
            CreateWordField(Arg0, 0x1, IRA1)
            Store(IRA1, Local0)
            Store(Match(IRQP, MEQ, Local0, MTR, 0x0, 0x0), Local1)
            And(\_SB_.PCI0.ISA0.PIRF, 0x70, Local0)
            Or(Local1, Local0, \_SB_.PCI0.ISA0.PIRF)
        }
    }
    Device(LNKG) {
        Name(_HID, 0x0f0cd041)
        Name(_UID, 0x7)
        Method(_STA) {
            If(LLess(\_SB_.PCI0.ISA0.PIRG, 0x80)) {
                Return(0xb)
            }
            Else {
                Return(0x9)
            }
        }
        Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x4, 0x18, 0x79, 0x0 })
        Method(_DIS) {
            Or(\_SB_.PCI0.ISA0.PIRG, 0x80, \_SB_.PCI0.ISA0.PIRG)
        }
        Method(_CRS) {
            Name(BUFG, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
            CreateWordField(BUFG, 0x1, IRA1)
            And(\_SB_.PCI0.ISA0.PIRG, 0x8f, Local0)
            If(LLess(Local0, 0x80)) {
                Store(DerefOf(Index(IRQP, Local0, )), Local4)
                Store(Local4, IRA1)
            }
            Return(BUFG)
        }
        Method(_SRS, 1) {
            CreateWordField(Arg0, 0x1, IRA1)
            Store(IRA1, Local0)
            Store(Match(IRQP, MEQ, Local0, MTR, 0x0, 0x0), Local1)
            And(\_SB_.PCI0.ISA0.PIRG, 0x70, Local0)
            Or(Local1, Local0, \_SB_.PCI0.ISA0.PIRG)
        }
    }
    Device(LNKH) {
        Name(_HID, 0x0f0cd041)
        Name(_UID, 0x8)
        Method(_STA) {
            If(LLess(\_SB_.PCI0.ISA0.PIRH, 0x80)) {
                Return(0xb)
            }
            Else {
                Return(0x9)
            }
        }
        Name(_PRS, Buffer(0x6) {0x23, 0x0, 0x4, 0x18, 0x79, 0x0 })
        Method(_DIS) {
            Or(\_SB_.PCI0.ISA0.PIRH, 0x80, \_SB_.PCI0.ISA0.PIRH)
        }
        Method(_CRS) {
            Name(BUFH, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 })
            CreateWordField(BUFH, 0x1, IRA1)
            And(\_SB_.PCI0.ISA0.PIRH, 0x8f, Local0)
            If(LLess(Local0, 0x80)) {
                Store(DerefOf(Index(IRQP, Local0, )), Local4)
                Store(Local4, IRA1)
            }
            Return(BUFH)
        }
        Method(_SRS, 1) {
            CreateWordField(Arg0, 0x1, IRA1)
            Store(IRA1, Local0)
            Store(Match(IRQP, MEQ, Local0, MTR, 0x0, 0x0), Local1)
            And(\_SB_.PCI0.ISA0.PIRH, 0x70, Local0)
            Or(Local1, Local0, \_SB_.PCI0.ISA0.PIRH)
        }
    }
    Device(LID_) {
        Name(_HID, 0x0d0cd041)
        Name(LPOL, 0x1)
        Method(_LID) {
            Return(LPOL)
        }
        Method(_PSW, 1) {
            If(ECOK()) {
                If(Arg0) {
                    Or(\_SB_.PCI0.ISA0.EC0_.WK10, 0x1, \_SB_.PCI0.ISA0.EC0_.WK10)
                }
                Else {
                    And(\_SB_.PCI0.ISA0.EC0_.WK10, Not(0x1, ), \_SB_.PCI0.ISA0.EC0_.WK10)
                }
            }
        }
        Name(_PRW, Package(0x2) {
            0x1d,
            0x4,
        })
    }
    Device(SLP_) {
        Name(_HID, 0x0e0cd041)
        Name(_PRW, Package(0x2) {
            0x1d,
            0x4,
        })
    }
    Device(XROM) {
        Name(_HID, 0x020cd041)
        Name(_UID, 0x1)
        Method(_CRS) {
            Return(\_SB_.PCI0.SROM())
        }
        Method(_STA) {
            If(Not(\_SB_.TOOS, )) {
                \_SB_.PCI0.CKOS()
            }
            If(LEqual(\_SB_.PCI0.OSNT, 0x1)) {
                Return(0xf)
            }
            Else {
                Return(0x0)
            }
        }
    }
    Device(PCI0) {
        Name(_HID, 0x030ad041)
        Name(_ADR, 0x0)
        Name(_BBN, 0x0)
        OperationRegion(REGS, PCI_Config, 0x40, 0xff)
        Field(REGS, DWordAcc, NoLock, Preserve) {
            Offset(0x12),
            ,	4,
            GMS_,	3,
            Offset(0x18),
            ,	7,
            HEN_,	1,
            PAM0,	8,
            PAM1,	8,
            PAM2,	8,
            PAM3,	8,
            PAM4,	8,
            PAM5,	8,
            PAM6,	8,
            DRB0,	8,
            DRB1,	8,
            DRB2,	8,
            DRB3,	8,
            DRB4,	8,
            DRB5,	8,
            DRB6,	8,
            DRB7,	8,
            Offset(0x3c),
            DRDC,	32,
            Offset(0x50),
            ,	3,
            GSEN,	1,
            Offset(0x51),
            T_EN,	1,
            T_SZ,	1
        }
        Name(_PSC, 0x0)
        Method(_PS0) {
            Or(DRDC, 0x10000000, DRDC)
            Store(0x0, _PSC)
        }
        Method(_PS1) {
            And(DRDC, 0xefffffff, DRDC)
            Store(0x1, _PSC)
        }
        Method(_PS2) {
            And(DRDC, 0xefffffff, DRDC)
            Store(0x2, _PSC)
        }
        Method(_PS3) {
            And(DRDC, 0xefffffff, DRDC)
            Store(0x3, _PSC)
        }
        Name(RSRC, Buffer(0x01b7) {0x88, 0xe, 0x0, 0x2, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x47, 0x1, 0xf8, 0xc, 0xf8, 0xc, 0x1, 0x8, 0x88, 0xe, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0xf7, 0xc, 0x0, 0x0, 0xf8, 0xc, 0x0, 0x88, 0xe, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0xd, 0xff, 0xff, 0x0, 0x0, 0x0, 0xf3, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0xff, 0x3f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xc, 0x0, 0xff, 0x7f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xc, 0x0, 0xff, 0xbf, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xc, 0x0, 0xff, 0xff, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xff, 0x3f, 0x!
d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xd, 0x0, 0xff, 0x7f, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xd, 0x0, 0xff, 0xbf, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xd, 0x0, 0xff, 0xff, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0, 0xff, 0x3f, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xe, 0x0, 0xff, 0x7f, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xe, 0x0, 0xff, 0xbf, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xe, 0x0, 0xff, 0xff, 0xe, 0x!
0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x87, 0x!
 18, 0x0,
 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x87, 0x18, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xbf, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 })
        Method(_CRS, 0, Serialized) {
            Store(Zero, Local1)
            CreateDWordField(RSRC, 0x0189, BTMN)
            CreateDWordField(RSRC, 0x018d, BTMX)
            CreateDWordField(RSRC, 0x0195, BTLN)
            Multiply(0x02000000, DRB5, BTMN)
            Subtract(0xfec00000, BTMN, BTLN)
            Subtract(Add(BTMN, BTLN, ), 0x1, BTMX)
            CreateBitField(RSRC, 0x0200, C0RW)
            CreateDWordField(RSRC, 0x45, C0MN)
            CreateDWordField(RSRC, 0x49, C0MX)
            CreateDWordField(RSRC, 0x51, C0LN)
            Store(One, C0RW)
            If(LEqual(And(PAM1, 0x3, ), 0x1)) {
                Store(Zero, C0RW)
            }
            Store(Zero, C0LN)
            If(LNot(And(PAM1, 0x3, ))) {
                Store(0x4000, C0LN)
            }
            CreateBitField(RSRC, 0x02d8, C4RW)
            CreateDWordField(RSRC, 0x60, C4MN)
            CreateDWordField(RSRC, 0x64, C4MX)
            CreateDWordField(RSRC, 0x6c, C4LN)
            Store(One, C4RW)
            If(LEqual(And(PAM1, 0x30, ), 0x10)) {
                Store(Zero, C4RW)
            }
            Store(Zero, C4LN)
            If(LNot(And(PAM1, 0x30, ))) {
                Store(0x4000, C4LN)
            }
            CreateBitField(RSRC, 0x03b0, C8RW)
            CreateDWordField(RSRC, 0x7b, C8MN)
            CreateDWordField(RSRC, 0x7f, C8MX)
            CreateDWordField(RSRC, 0x87, C8LN)
            Store(One, C8RW)
            If(LEqual(And(PAM2, 0x3, ), 0x1)) {
                Store(Zero, C8RW)
            }
            Store(Zero, C8LN)
            If(LNot(And(PAM2, 0x3, ))) {
                Store(0x4000, C8LN)
            }
            CreateBitField(RSRC, 0x0488, CCRW)
            CreateDWordField(RSRC, 0x96, CCMN)
            CreateDWordField(RSRC, 0x9a, CCMX)
            CreateDWordField(RSRC, 0xa2, CCLN)
            Store(One, CCRW)
            If(LEqual(And(PAM2, 0x30, ), 0x10)) {
                Store(Zero, CCRW)
            }
            Store(Zero, CCLN)
            If(LNot(And(PAM2, 0x30, ))) {
                Store(0x4000, CCLN)
            }
            CreateBitField(RSRC, 0x0560, D0RW)
            CreateDWordField(RSRC, 0xb1, D0MN)
            CreateDWordField(RSRC, 0xb5, D0MX)
            CreateDWordField(RSRC, 0xbd, D0LN)
            Store(One, D0RW)
            If(LEqual(And(PAM3, 0x3, ), 0x1)) {
                Store(Zero, D0RW)
            }
            Store(Zero, D0LN)
            If(LNot(And(PAM3, 0x3, ))) {
                Store(0x4000, D0LN)
            }
            CreateBitField(RSRC, 0x0638, D4RW)
            CreateDWordField(RSRC, 0xcc, D4MN)
            CreateDWordField(RSRC, 0xd0, D4MX)
            CreateDWordField(RSRC, 0xd8, D4LN)
            Store(One, D4RW)
            If(LEqual(And(PAM3, 0x30, ), 0x10)) {
                Store(Zero, D4RW)
            }
            Store(Zero, D4LN)
            If(LNot(And(PAM3, 0x30, ))) {
                Store(0x4000, D4LN)
            }
            CreateBitField(RSRC, 0x0710, D8RW)
            CreateDWordField(RSRC, 0xe7, D8MN)
            CreateDWordField(RSRC, 0xeb, D8MX)
            CreateDWordField(RSRC, 0xf3, D8LN)
            Store(One, D8RW)
            If(LEqual(And(PAM4, 0x3, ), 0x1)) {
                Store(Zero, D8RW)
            }
            Store(Zero, D8LN)
            If(LNot(And(PAM4, 0x3, ))) {
                Store(0x4000, D8LN)
            }
            CreateBitField(RSRC, 0x07e8, DCRW)
            CreateDWordField(RSRC, 0x0102, DCMN)
            CreateDWordField(RSRC, 0x0106, DCMX)
            CreateDWordField(RSRC, 0x010e, DCLN)
            Store(One, DCRW)
            If(LEqual(And(PAM4, 0x30, ), 0x10)) {
                Store(Zero, DCRW)
            }
            Store(Zero, DCLN)
            If(LNot(And(PAM4, 0x30, ))) {
                Store(0x4000, DCLN)
            }
            CreateBitField(RSRC, 0x08c0, E0RW)
            CreateDWordField(RSRC, 0x011d, E0MN)
            CreateDWordField(RSRC, 0x0121, E0MX)
            CreateDWordField(RSRC, 0x0129, E0LN)
            Store(One, E0RW)
            If(LEqual(And(PAM5, 0x3, ), 0x1)) {
                Store(Zero, E0RW)
            }
            Store(Zero, E0LN)
            If(LNot(And(PAM5, 0x3, ))) {
                Store(0x4000, E0LN)
            }
            CreateBitField(RSRC, 0x0998, E4RW)
            CreateDWordField(RSRC, 0x0138, E4MN)
            CreateDWordField(RSRC, 0x013c, E4MX)
            CreateDWordField(RSRC, 0x0144, E4LN)
            Store(One, E4RW)
            If(LEqual(And(PAM5, 0x30, ), 0x10)) {
                Store(Zero, E4RW)
            }
            Store(Zero, E4LN)
            If(LNot(And(PAM5, 0x30, ))) {
                Store(0x4000, E4LN)
            }
            CreateBitField(RSRC, 0x0a70, E8RW)
            CreateDWordField(RSRC, 0x0153, E8MN)
            CreateDWordField(RSRC, 0x0157, E8MX)
            CreateDWordField(RSRC, 0x015f, E8LN)
            Store(One, E8RW)
            If(LEqual(And(PAM6, 0x3, ), 0x1)) {
                Store(Zero, E8RW)
            }
            Store(Zero, E8LN)
            If(LNot(And(PAM6, 0x3, ))) {
                Store(0x4000, E8LN)
            }
            CreateBitField(RSRC, 0x0b48, ECRW)
            CreateDWordField(RSRC, 0x016e, ECMN)
            CreateDWordField(RSRC, 0x0172, ECMX)
            CreateDWordField(RSRC, 0x017a, ECLN)
            Store(One, ECRW)
            If(LEqual(And(PAM6, 0x30, ), 0x10)) {
                Store(Zero, ECRW)
            }
            Store(Zero, ECLN)
            If(LNot(And(PAM6, 0x30, ))) {
                Store(0x4000, ECLN)
            }
            Return(RSRC)
        }
        Method(SROM) {
            Name(RSRC, Buffer(0x0106) {0x85, 0x11, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0xff, 0x3f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x85, 0x11, 0x0, 0x0, 0x0, 0x40, 0xc, 0x0, 0xff, 0x7f, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x85, 0x11, 0x0, 0x0, 0x0, 0x80, 0xc, 0x0, 0xff, 0xbf, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x85, 0x11, 0x0, 0x0, 0x0, 0xc0, 0xc, 0x0, 0xff, 0xff, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x85, 0x11, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xff, 0x3f, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x85, 0x11, 0x0, 0x0, 0x0, 0x40, 0xd, 0x0, 0xff, 0x7f, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x85, 0x11, 0x0, 0x0, 0x0, 0x80, 0xd, 0x0, 0xff, 0xbf, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x85, 0x11, 0x0, 0x0, 0x0, 0xc0, 0xd, 0x0, 0xff, 0xff, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x85, 0x11, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0, 0xff, 0x3f, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x85, 0x11!
, 0x0, 0x0, 0x0, 0x40, 0xe, 0x0, 0xff, 0x7f, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x85, 0x11, 0x0, 0x0, 0x0, 0x80, 0xe, 0x0, 0xff, 0xbf, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x85, 0x11, 0x0, 0x0, 0x0, 0xc0, 0xe, 0x0, 0xff, 0xff, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x85, 0x11, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0xff, 0xff, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0 })
            CreateDWordField(RSRC, 0x10, C0LN)
            CreateDWordField(RSRC, 0x24, C4LN)
            CreateDWordField(RSRC, 0x38, C8LN)
            CreateDWordField(RSRC, 0x4c, CCLN)
            CreateDWordField(RSRC, 0x60, D0LN)
            CreateDWordField(RSRC, 0x74, D4LN)
            CreateDWordField(RSRC, 0x88, D8LN)
            CreateDWordField(RSRC, 0x9c, DCLN)
            CreateDWordField(RSRC, 0xb0, E0LN)
            CreateDWordField(RSRC, 0xc4, E4LN)
            CreateDWordField(RSRC, 0xd8, E8LN)
            CreateDWordField(RSRC, 0xec, ECLN)
            CreateDWordField(RSRC, 0x0100, F0LN)
            If(And(PAM1, 0x3, )) {
                Store(0x4000, C0LN)
            }
            If(And(PAM1, 0x30, )) {
                Store(0x4000, C4LN)
            }
            If(And(PAM2, 0x3, )) {
                Store(0x4000, C8LN)
            }
            If(And(PAM2, 0x30, )) {
                Store(0x4000, CCLN)
            }
            If(And(PAM3, 0x3, )) {
                Store(0x4000, D0LN)
            }
            If(And(PAM3, 0x30, )) {
                Store(0x4000, D4LN)
            }
            If(And(PAM4, 0x3, )) {
                Store(0x4000, D8LN)
            }
            If(And(PAM4, 0x30, )) {
                Store(0x4000, DCLN)
            }
            If(And(PAM5, 0x3, )) {
                Store(0x4000, E0LN)
            }
            If(And(PAM5, 0x30, )) {
                Store(0x4000, E4LN)
            }
            If(And(PAM6, 0x3, )) {
                Store(0x4000, E8LN)
            }
            If(And(PAM6, 0x30, )) {
                Store(0x4000, ECLN)
            }
            If(And(PAM0, 0x30, )) {
                Store(0x00010000, F0LN)
            }
            Return(RSRC)
        }
        Method(MIN_, 2) {
            If(LLess(Arg0, Arg1)) {
                Return(Arg0)
            }
            Else {
                Return(Arg1)
            }
        }
        Method(SLEN, 1) {
            Return(SizeOf(Arg0))
        }
        Method(S2BF, 1, Serialized) {
            Add(SLEN(Arg0), One, Local0)
            Name(BUFF, Buffer(Local0) { })
            Store(Arg0, BUFF)
            Return(BUFF)
        }
        Method(SCMP, 2) {
            Store(S2BF(Arg0), Local0)
            Store(S2BF(Arg1), Local1)
            Store(Zero, Local4)
            Store(SLEN(Arg0), Local5)
            Store(SLEN(Arg1), Local6)
            Store(MIN_(Local5, Local6), Local7)
            While(LLess(Local4, Local7)) {
                Store(DerefOf(Index(Local0, Local4, )), Local2)
                Store(DerefOf(Index(Local1, Local4, )), Local3)
                If(LGreater(Local2, Local3)) {
                    Return(One)
                }
                Else {
                    If(LLess(Local2, Local3)) {
                        Return(Ones)
                    }
                }
                Increment(Local4)
            }
            If(LLess(Local4, Local5)) {
                Return(One)
            }
            Else {
                If(LLess(Local4, Local6)) {
                    Return(Ones)
                }
                Else {
                    Return(Zero)
                }
            }
        }
        Method(CKOS) {
            If(Not(\_SB_.TOOS, )) {
                If(CondRefOf(_OSI, Local0)) {
                    If(\_OSI) {
                        "Windows 2001"
                        Store(0x4, \_SB_.TOOS)
                        Store(0x1, OSNT)
                    }
                }
                Else {
                    If(LEqual(SCMP(\_OS_, "Microsoft Windows NT"), Zero)) {
                        Store(0x1, OSNT)
                        Store(0x3, \_SB_.TOOS)
                    }
                    If(LEqual(SCMP(\_OS_, "Microsoft Windows"), Zero)) {
                        Store(0x0, OSNT)
                        Store(0x1, \_SB_.TOOS)
                    }
                    If(LEqual(SCMP(\_OS_, "Microsoft WindowsME:Millennium Edition"), Zero)) {
                        Store(0x0, OSNT)
                        Store(0x2, \_SB_.TOOS)
                    }
                }
            }
        }
        Name(OSNT, 0x0)
        Method(_INI) {
            \_SB_.PCI0.CKOS()
            Acquire(\_SB_.PCI0.ISA0.EC0_.MUT3, 0xffff)
            \_SB_.PCI0.ISA0.EC0_.MBAY()
            Release(\_SB_.PCI0.ISA0.EC0_.MUT3)
            Or(\_SB_.PCI0.ISA0.BDST, \_SB_.PCI0.ISA0.EC0_.BIDE, \_SB_.PCI0.IDE_.BAYD)
            Or(\_SB_.PCI0.ISA0.MFLG, 0x10, \_SB_.PCI0.ISA0.MFLG)
        }
        Method(_STA) {
            Return(0xf)
        }
        Name(_PRT, Package(0xc) {
            Package(0x4) {
                0x0001ffff,
                0x0,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0001ffff,
                0x1,
                \_SB_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0001ffff,
                0x2,
                \_SB_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0001ffff,
                0x3,
                \_SB_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0002ffff,
                0x0,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x001dffff,
                0x0,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x001effff,
                0x0,
                \_SB_.LNKA,
                0x0,
            },
            Package(0x4) {
                0x001effff,
                0x1,
                \_SB_.LNKB,
                0x0,
            },
            Package(0x4) {
                0x001effff,
                0x2,
                \_SB_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x001effff,
                0x3,
                \_SB_.LNKD,
                0x0,
            },
            Package(0x4) {
                0x001fffff,
                0x0,
                \_SB_.LNKC,
                0x0,
            },
            Package(0x4) {
                0x001fffff,
                0x1,
                \_SB_.LNKB,
                0x0,
            },
        })
        Device(ISA0) {
            Name(_ADR, 0x001f0000)
            OperationRegion(PIRX, PCI_Config, 0x60, 0x4)
            Field(PIRX, ByteAcc, NoLock, Preserve) {
                PIRA,	8,
                PIRB,	8,
                PIRC,	8,
                PIRD,	8
            }
            OperationRegion(PIRY, PCI_Config, 0x68, 0x4)
            Field(PIRY, ByteAcc, NoLock, Preserve) {
                PIRE,	8,
                PIRF,	8,
                PIRG,	8,
                PIRH,	8
            }
            OperationRegion(REGS, PCI_Config, 0x40, 0xc0)
            Field(REGS, DWordAcc, NoLock, Preserve) {
                PMBA,	16,
                Offset(0x18),
                GPBA,	16,
                Offset(0x90),
                POSD,	1,
                Offset(0xa0),
                CMAD,	3,
                ,	1,
                CMBD,	3,
                Offset(0xa1),
                LPTD,	2,
                ,	2,
                FDDD,	1,
                Offset(0xa6),
                ECO1,	1,
                ECO2,	1,
                ELPT,	1,
                EFDD,	1,
                Offset(0xb0),
                ,	5,
                FUND,	2
            }
            Device(MBRD) {
                Name(_HID, 0x020cd041)
                Name(_UID, 0x1f)
                Name(RSRC, Buffer(0xca) {0x47, 0x1, 0x10, 0x0, 0x10, 0x0, 0x1, 0x10, 0x47, 0x1, 0x24, 0x0, 0x24, 0x0, 0x1, 0x2, 0x47, 0x1, 0x28, 0x0, 0x28, 0x0, 0x1, 0x2, 0x47, 0x1, 0x2c, 0x0, 0x2c, 0x0, 0x1, 0x2, 0x47, 0x1, 0x30, 0x0, 0x30, 0x0, 0x1, 0x2, 0x47, 0x1, 0x34, 0x0, 0x34, 0x0, 0x1, 0x2, 0x47, 0x1, 0x38, 0x0, 0x38, 0x0, 0x1, 0x2, 0x47, 0x1, 0x3c, 0x0, 0x3c, 0x0, 0x1, 0x2, 0x47, 0x1, 0x50, 0x0, 0x50, 0x0, 0x1, 0x4, 0x47, 0x1, 0x72, 0x0, 0x72, 0x0, 0x1, 0x6, 0x47, 0x1, 0x80, 0x0, 0x80, 0x0, 0x1, 0x1, 0x47, 0x1, 0x90, 0x0, 0x90, 0x0, 0x1, 0x10, 0x47, 0x1, 0xa4, 0x0, 0xa4, 0x0, 0x1, 0x2, 0x47, 0x1, 0xa8, 0x0, 0xa8, 0x0, 0x1, 0x2, 0x47, 0x1, 0xac, 0x0, 0xac, 0x0, 0x1, 0x2, 0x47, 0x1, 0xb0, 0x0, 0xb0, 0x0, 0x1, 0x6, 0x47, 0x1, 0xb8, 0x0, 0xb8, 0x0, 0x1, 0x2, 0x47, 0x1, 0xbc, 0x0, 0xbc, 0x0, 0x1, 0x2, 0x47, 0x1, 0x0, 0x10, 0x0, 0x10, 0x1, 0x80, 0x47, 0x1, 0x80, 0x11, 0x80, 0x11, 0x1, 0x40, 0x47, 0x1, 0x2e, 0x0, 0x2e, 0x0, 0x1, 0x2, 0x47, 0x1, 0x0, 0xfe, 0x0, 0xfe, 0x0, 0x1!
, 0x86, 0x9, 0x0, 0x0, 0x0, 0x0, 0xf8, 0xff, 0x0, 0x0, 0x8, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0xfc, 0xbf, 0xfe, 0x0, 0x4, 0x0, 0x0, 0x79, 0x0 })
                Method(_CRS) {
                    CreateWordField(RSRC, 0x92, PMMN)
                    CreateWordField(RSRC, 0x94, PMMX)
                    And(^^PMBA, 0xff80, PMMN)
                    Store(PMMN, PMMX)
                    CreateWordField(RSRC, 0x9a, GPMN)
                    CreateWordField(RSRC, 0x9c, GPMX)
                    And(^^GPBA, 0xff80, GPMN)
                    Store(GPMN, GPMX)
                    Return(RSRC)
                }
            }
            Device(DMAA) {
                Name(_HID, 0x0002d041)
                Name(_CRS, Buffer(0x1d) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x10, 0x47, 0x1, 0x81, 0x0, 0x81, 0x0, 0x1, 0xf, 0x47, 0x1, 0xc0, 0x0, 0xc0, 0x0, 0x1, 0x20, 0x2a, 0x10, 0x2, 0x79, 0x0 })
            }
            Device(RTC_) {
                Name(_HID, 0x000bd041)
                Name(_CRS, Buffer(0xd) {0x47, 0x1, 0x70, 0x0, 0x70, 0x0, 0x1, 0x2, 0x22, 0x0, 0x1, 0x79, 0x0 })
            }
            Device(PIC_) {
                Name(_HID, 0xd041)
                Name(_CRS, Buffer(0x1e) {0x47, 0x1, 0x20, 0x0, 0x20, 0x0, 0x1, 0x2, 0x47, 0x1, 0xa0, 0x0, 0xa0, 0x0, 0x1, 0x2, 0x47, 0x1, 0xd0, 0x4, 0xd0, 0x4, 0x0, 0x2, 0x23, 0x4, 0x0, 0x1, 0x79, 0x0 })
            }
            Device(FPU_) {
                Name(_HID, 0x040cd041)
                Name(_CRS, Buffer(0xe) {0x47, 0x1, 0xf0, 0x0, 0xf0, 0x0, 0x1, 0x10, 0x23, 0x0, 0x20, 0x1, 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(SPKR) {
                Name(_HID, 0x0008d041)
                Name(_CRS, Buffer(0xa) {0x47, 0x1, 0x61, 0x0, 0x61, 0x0, 0x1, 0x1, 0x79, 0x0 })
            }
            Device(KBC_) {
                Name(_HID, 0x0303d041)
                Name(KBS3, 0x0)
                Name(_PSC, 0x0)
                Name(PS2D, 0x044c)
                Method(_PS0) {
                    If(KBS3) {
                        Store(Zero, KBS3)
                        Divide(And(\_SB_.PCI0.ISA0.ATMR, 0x00ffffff, ), 0x0dfc, , Local0)
                        If(LLess(Local0, PS2D)) {
                            Sleep(Subtract(PS2D, Local0, ))
                        }
                    }
                    Store(0x0, _PSC)
                }
                Method(_PS3) {
                    Store(0x3, _PSC)
                }
                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 })
            }
            Device(MOUE) {
                Name(_HID, 0x130fd041)
                Name(_PSC, 0x0)
                Method(_PS0) {
                    If(_PSC) {
                        Store(0x0, _PSC)
                    }
                }
                Method(_PS3) {
                    Store(0x3, _PSC)
                }
                Name(_CRS, Buffer(0x5) {0x22, 0x0, 0x10, 0x79, 0x0 })
            }
            Mutex(PSMX, 0)
            OperationRegion(PCTL, PCI_Config, 0xa0, 0x2)
            Field(PCTL, WordAcc, NoLock, Preserve) {
                ,	2,
                CRUN,	1
            }
            OperationRegion(PMIO, SystemIO, 0x1000, 0x20)
            Field(PMIO, DWordAcc, NoLock, Preserve) {
                Offset(0x8),
                ATMR,	32
            }
            OperationRegion(GPI_, SystemIO, 0x102c, 0x2)
            Field(GPI_, WordAcc, NoLock, Preserve) {
                ,	3,
                IDEI,	3,
                Offset(0x1)
            }
            OperationRegion(GPO_, SystemIO, 0x11b8, 0x4)
            Field(GPO_, DWordAcc, NoLock, Preserve) {
                GO32,	1,
                GO33,	1,
                GO34,	1,
                GO35,	1,
                GO36,	1,
                SRST,	1,
                GO38,	1,
                GO39,	1,
                BKLT,	1,
                GO41,	1,
                SDPW,	1
            }
            OperationRegion(GPIO, SystemIO, 0x118c, 0x4)
            Field(GPIO, DWordAcc, NoLock, Preserve) {
                ,	28,
                GO28,	1
            }
            OperationRegion(SMI0, SystemIO, 0x0000fe00, 0x00000002)
            Field(SMI0, AnyAcc, NoLock, Preserve) {
                SMIC,	8
            }
            OperationRegion(SMI1, SystemMemory, 0x3ff73e0d, 0x00000120)
            Field(SMI1, AnyAcc, NoLock, Preserve) {
                BCMD,	8,
                DID_,	32,
                INFO,	2048
            }
            Field(SMI1, AnyAcc, NoLock, Preserve) {
                AccessAs(ByteAcc, 0),
                Offset(0x5),
                INF_,	8
            }
            Field(SMI1, AnyAcc, NoLock, Preserve) {
                AccessAs(ByteAcc, 0),
                Offset(0x5),
                STSB,	8
            }
            Field(SMI1, AnyAcc, NoLock, Preserve) {
                Offset(0x5),
                PNLR,	32
            }
            Field(SMI1, AnyAcc, NoLock, Preserve) {
                Offset(0x105),
                BDST,	8
            }
            Field(SMI1, AnyAcc, NoLock, Preserve) {
                Offset(0x106),
                DKSN,	32
            }
            Field(SMI1, AnyAcc, NoLock, Preserve) {
                Offset(0x10a),
                DKTP,	8
            }
            Field(SMI1, AnyAcc, NoLock, Preserve) {
                Offset(0x10b),
                VGAB,	32
            }
            Field(SMI1, AnyAcc, NoLock, Preserve) {
                Offset(0x10f),
                MFLG,	8
            }
            Method(HPSS, 2) {
                Acquire(\_SB_.PCI0.ISA0.PSMX, 0xffff)
                Store(Arg1, STSB)
                Store(0x80, BCMD)
                Store(Arg0, DID_)
                Store(Zero, SMIC)
                Store(STSB, Local0)
                Release(\_SB_.PCI0.ISA0.PSMX)
                Return(Local0)
            }
            Device(SIO_) {
                Name(_HID, 0x050ad041)
                OperationRegion(SIIO, SystemIO, 0x2e, 0x2)
                Field(SIIO, ByteAcc, NoLock, Preserve) {
                    INDX,	8,
                    DATA,	8
                }
                Mutex(N393, 0)
                Method(LDRS, 3) {
                    Acquire(N393, 0xffff)
                    Store(0x7, INDX)
                    Store(Arg0, DATA)
                    Store(Arg1, INDX)
                    Store(Arg2, DATA)
                    Release(N393)
                }
                Method(LDRG, 2) {
                    Acquire(N393, 0xffff)
                    Store(0x7, INDX)
                    Store(Arg0, DATA)
                    Store(Arg1, INDX)
                    Store(DATA, Local0)
                    Release(N393)
                    Return(Local0)
                }
                Method(RCF6, 1) {
                    Acquire(N393, 0xffff)
                    Store(0x26, INDX)
                    Store(DATA, Local0)
                    And(Local0, Arg0, Local0)
                    Release(N393)
                    Return(XOr(Local0, Arg0, ))
                }
                Method(PDRS, 2) {
                    If(\_SB_.PCI0.ISA0.POSD) {
                        If(LEqual(Arg0, 0x0)) {
                            If(LEqual(Arg1, 0x03f0)) {
                                Store(0x0, Local0)
                            }
                            Else {
                                If(LEqual(Arg1, 0x0370)) {
                                    Store(0x1, Local0)
                                }
                            }
                            Store(Local0, \_SB_.PCI0.ISA0.FDDD)
                        }
                        Else {
                            If(LEqual(Arg0, 0x1)) {
                                If(LEqual(Arg1, 0x0378)) {
                                    Store(0x0, Local0)
                                }
                                Else {
                                    If(LEqual(Arg1, 0x0278)) {
                                        Store(0x1, Local0)
                                    }
                                    Else {
                                        If(LEqual(Arg1, 0x03bc)) {
                                            Store(0x2, Local0)
                                        }
                                    }
                                }
                                Store(Local0, \_SB_.PCI0.ISA0.LPTD)
                            }
                            Else {
                                If(LEqual(Arg1, 0x03f8)) {
                                    Store(0x0, Local0)
                                }
                                Else {
                                    If(LEqual(Arg1, 0x02f8)) {
                                        Store(0x1, Local0)
                                    }
                                    Else {
                                        If(LEqual(Arg1, 0x0220)) {
                                            Store(0x2, Local0)
                                        }
                                        Else {
                                            If(LEqual(Arg1, 0x0228)) {
                                                Store(0x3, Local0)
                                            }
                                            Else {
                                                If(LEqual(Arg1, 0x0238)) {
                                                    Store(0x4, Local0)
                                                }
                                                Else {
                                                    If(LEqual(Arg1, 0x02e8)) {
                                                        Store(0x5, Local0)
                                                    }
                                                    Else {
                                                        If(LEqual(Arg1, 0x0338)) {
                                                            Store(0x6, Local0)
                                                        }
                                                        Else {
                                                            If(LEqual(Arg1, 0x03e8)) {
                                                                Store(0x7, Local0)
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                If(LEqual(Arg0, 0x2)) {
                                    Store(Local0, \_SB_.PCI0.ISA0.CMBD)
                                }
                                Else {
                                    If(LEqual(Arg0, 0x3)) {
                                        Store(Local0, \_SB_.PCI0.ISA0.CMAD)
                                    }
                                }
                            }
                        }
                        Return(0x1)
                    }
                    Else {
                        Return(0x0)
                    }
                }
                Device(ECP_) {
                    Name(_HID, 0x0104d041)
                    Name(_UID, 0x3)
                    Method(_STA) {
                        Store(LDRG(0x1, 0xf0), Local0)
                        ShiftRight(Local0, 0x5, Local0)
                        If(LAnd(RCF6(0x2), LOr(LEqual(Local0, 0x4), LEqual(Local0, 0x7)))) {
                            ShiftLeft(LDRG(0x1, 0x30), 0x1, Local1)
                            Add(0xd, Local1, Local1)
                            Return(Local1)
                        }
                        Else {
                            Return(0x0)
                        }
                    }
                    Method(_PS0) {
                        LDRS(0x1, 0x30, 0x1)
                    }
                    Method(_PS3) {
                        LDRS(0x1, 0x30, 0x0)
                    }
                    Method(_PRS) {
                        Return(Buffer(0xbb) {0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x8, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x8, 0x8, 0x22, 0x80, 0x0, 0x2a, 0x8, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x8, 0x8, 0x47, 0x1, 0x78, 0x6, 0x78, 0x6, 0x8, 0x8, 0x22, 0x20, 0x0, 0x2a, 0x8, 0x0, 0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x8, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x8, 0x8, 0x22, 0x20, 0x0, 0x2a, 0x8, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x8, 0x8, 0x47, 0x1, 0x78, 0x6, 0x78, 0x6, 0x8, 0x8, 0x22, 0x80, 0x0, 0x2a, 0x8, 0x0, 0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x8, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x8, 0x8, 0x22, 0x80, 0x0, 0x2a, 0x2, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x8, 0x8, 0x47, 0x1, 0x78, 0x6, 0x78, 0x6, 0x8, 0x8, 0x22, 0x20, 0x0, 0x2a, 0x2, 0x0, 0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x8, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x8, 0x8, 0x22, 0x20, 0x0, 0x2a, 0x2, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x8, 0x8, 0x47, 0x1, 0x78, 0x6, !
0x78, 0x6, 0x8, 0x8, 0x22, 0x80, 0x0, 0x2a, 0x2, 0x0, 0x38, 0x79, 0x0 })
                    }
                    Method(_DIS) {
                        LDRS(0x1, 0x30, 0x0)
                        Store(0x0, \_SB_.PCI0.ISA0.ELPT)
                    }
                    Method(_CRS) {
                        Name(DCRS, Buffer(0x18) {0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x8, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x8, 0x8, 0x22, 0x80, 0x0, 0x2a, 0x8, 0x0, 0x79, 0x0 })
                        Store(LDRG(0x1, 0x60), Local1)
                        Store(LDRG(0x1, 0x61), Local0)
                        Store(Local0, Index(DCRS, 0x2, ))
                        Store(Local0, Index(DCRS, 0xa, ))
                        Store(Local0, Index(DCRS, 0x4, ))
                        Store(Local0, Index(DCRS, 0xc, ))
                        Store(Local1, Index(DCRS, 0x3, ))
                        Store(Local1, Index(DCRS, 0x5, ))
                        Add(Local1, 0x4, Local1)
                        Store(Local1, Index(DCRS, 0xb, ))
                        Store(Local1, Index(DCRS, 0xd, ))
                        ShiftLeft(0x1, LDRG(0x1, 0x70), Local0)
                        Store(Local0, Index(DCRS, 0x11, ))
                        ShiftRight(Local0, 0x8, Local1)
                        Store(Local1, Index(DCRS, 0x12, ))
                        ShiftLeft(0x1, LDRG(0x1, 0x74), Local0)
                        Store(Local0, Index(DCRS, 0x14, ))
                        ShiftRight(Local0, 0x8, Local1)
                        Store(Local1, Index(DCRS, 0x15, ))
                        Return(DCRS)
                    }
                    Method(_SRS, 1) {
                        Store(0x1, \_SB_.PCI0.ISA0.ELPT)
                        CreateByteField(Arg0, 0x2, ADRL)
                        CreateByteField(Arg0, 0x3, ADRM)
                        CreateWordField(Arg0, 0x11, IRQM)
                        CreateWordField(Arg0, 0x14, DMAM)
                        FindSetRightBit(IRQM, Local0)
                        Decrement(Local0)
                        FindSetRightBit(DMAM, Local1)
                        Decrement(Local1)
                        LDRS(0x1, 0x70, Local0)
                        LDRS(0x1, 0x74, Local1)
                        LDRS(0x1, 0x60, ADRM)
                        LDRS(0x1, 0x61, ADRL)
                        PDRS(0x1, Add(ShiftLeft(ADRM, 0x8, ), ADRL, ))
                        LDRS(0x1, 0x30, 0x1)
                    }
                    Method(_EJD) {
                        If(LEqual(\_SB_.TOOS, 0x4)) {
                            Return("_SB.PCI0.ISA0.SPR0")
                        }
                        Else {
                            Return("_SB.PCI0.ISA0.SIO")
                        }
                    }
                }
                Device(EPP_) {
                    Name(_HID, 0x0004d041)
                    Name(_UID, 0x2)
                    Method(_STA) {
                        Store(LDRG(0x1, 0xf0), Local0)
                        ShiftRight(Local0, 0x5, Local0)
                        If(LAnd(RCF6(0x2), LOr(LEqual(Local0, 0x2), LEqual(Local0, 0x3)))) {
                            ShiftLeft(LDRG(0x1, 0x30), 0x1, Local1)
                            Add(0xd, Local1, Local1)
                            Return(Local1)
                        }
                        Else {
                            Return(0x0)
                        }
                    }
                    Method(_PS0) {
                        LDRS(0x1, 0x30, 0x1)
                    }
                    Method(_PS3) {
                        LDRS(0x1, 0x30, 0x0)
                    }
                    Method(_PRS) {
                        Return(Buffer(0x7b) {0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x8, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x8, 0x8, 0x22, 0x80, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x8, 0x8, 0x47, 0x1, 0x78, 0x6, 0x78, 0x6, 0x8, 0x8, 0x22, 0x20, 0x0, 0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x8, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x8, 0x8, 0x22, 0x20, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x8, 0x8, 0x47, 0x1, 0x78, 0x6, 0x78, 0x6, 0x8, 0x8, 0x22, 0x80, 0x0, 0x30, 0x47, 0x1, 0x78, 0x1, 0x78, 0x1, 0x8, 0x8, 0x47, 0x1, 0x78, 0x5, 0x78, 0x5, 0x8, 0x8, 0x22, 0x80, 0x0, 0x30, 0x47, 0x1, 0x78, 0x1, 0x78, 0x1, 0x8, 0x8, 0x47, 0x1, 0x78, 0x5, 0x78, 0x5, 0x8, 0x8, 0x22, 0x20, 0x0, 0x38, 0x79, 0x0 })
                    }
                    Method(_DIS) {
                        LDRS(0x1, 0x30, 0x0)
                        Store(0x0, \_SB_.PCI0.ISA0.ELPT)
                    }
                    Method(_CRS) {
                        Name(DCRS, Buffer(0x15) {0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x8, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x8, 0x8, 0x22, 0x80, 0x0, 0x79, 0x0 })
                        Store(LDRG(0x1, 0x60), Local1)
                        Store(LDRG(0x1, 0x61), Local0)
                        Store(Local0, Index(DCRS, 0x2, ))
                        Store(Local0, Index(DCRS, 0xa, ))
                        Store(Local0, Index(DCRS, 0x4, ))
                        Store(Local0, Index(DCRS, 0xc, ))
                        Store(Local1, Index(DCRS, 0x3, ))
                        Store(Local1, Index(DCRS, 0x5, ))
                        Add(Local1, 0x4, Local1)
                        Store(Local1, Index(DCRS, 0xb, ))
                        Store(Local1, Index(DCRS, 0xd, ))
                        ShiftLeft(0x1, LDRG(0x1, 0x70), Local0)
                        Store(Local0, Index(DCRS, 0x11, ))
                        ShiftRight(Local0, 0x8, Local1)
                        Store(Local1, Index(DCRS, 0x12, ))
                        Return(DCRS)
                    }
                    Method(_SRS, 1) {
                        Store(0x1, \_SB_.PCI0.ISA0.ELPT)
                        CreateByteField(Arg0, 0x2, ADRL)
                        CreateByteField(Arg0, 0x3, ADRM)
                        CreateWordField(Arg0, 0x11, IRQM)
                        FindSetRightBit(IRQM, Local0)
                        Decrement(Local0)
                        LDRS(0x1, 0x70, Local0)
                        LDRS(0x1, 0x60, ADRM)
                        LDRS(0x1, 0x61, ADRL)
                        PDRS(0x1, Add(ShiftLeft(ADRM, 0x8, ), ADRL, ))
                        LDRS(0x1, 0x30, 0x1)
                    }
                    Method(_EJD) {
                        If(LEqual(\_SB_.TOOS, 0x4)) {
                            Return("_SB.PCI0.ISA0.SPR0")
                        }
                        Else {
                            Return("_SB.PCI0.ISA0.SIO")
                        }
                    }
                }
                Device(LPTB) {
                    Name(_HID, 0x0004d041)
                    Name(_UID, 0x1)
                    Method(_STA) {
                        Store(LDRG(0x1, 0xf0), Local0)
                        ShiftRight(Local0, 0x5, Local0)
                        If(LAnd(RCF6(0x2), LEqual(Local0, 0x1))) {
                            ShiftLeft(LDRG(0x1, 0x30), 0x1, Local1)
                            Add(0xd, Local1, Local1)
                            Return(Local1)
                        }
                        Else {
                            Return(0x0)
                        }
                    }
                    Method(_PS0) {
                        LDRS(0x1, 0x30, 0x1)
                    }
                    Method(_PS3) {
                        LDRS(0x1, 0x30, 0x0)
                    }
                    Method(_PRS) {
                        Return(Buffer(0x7b) {0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x8, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x8, 0x8, 0x22, 0x80, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x8, 0x8, 0x47, 0x1, 0x78, 0x6, 0x78, 0x6, 0x8, 0x8, 0x22, 0x20, 0x0, 0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x8, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x8, 0x8, 0x22, 0x20, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x8, 0x8, 0x47, 0x1, 0x78, 0x6, 0x78, 0x6, 0x8, 0x8, 0x22, 0x80, 0x0, 0x30, 0x47, 0x1, 0xbc, 0x3, 0xbc, 0x3, 0x4, 0x4, 0x47, 0x1, 0xbc, 0x7, 0xbc, 0x7, 0x4, 0x4, 0x22, 0x80, 0x0, 0x30, 0x47, 0x1, 0xbc, 0x3, 0xbc, 0x3, 0x4, 0x4, 0x47, 0x1, 0xbc, 0x7, 0xbc, 0x7, 0x4, 0x4, 0x22, 0x20, 0x0, 0x38, 0x79, 0x0 })
                    }
                    Method(_DIS) {
                        LDRS(0x1, 0x30, 0x0)
                        Store(0x0, \_SB_.PCI0.ISA0.ELPT)
                    }
                    Method(_CRS) {
                        Name(DCRS, Buffer(0x15) {0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x8, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x8, 0x8, 0x22, 0x80, 0x0, 0x79, 0x0 })
                        Store(LDRG(0x1, 0x60), Local1)
                        Store(LDRG(0x1, 0x61), Local0)
                        Store(Local0, Index(DCRS, 0x2, ))
                        Store(Local0, Index(DCRS, 0xa, ))
                        Store(Local0, Index(DCRS, 0x4, ))
                        Store(Local0, Index(DCRS, 0xc, ))
                        Store(Local1, Index(DCRS, 0x3, ))
                        Store(Local1, Index(DCRS, 0x5, ))
                        Add(Local1, 0x4, Local1)
                        Store(Local1, Index(DCRS, 0xb, ))
                        Store(Local1, Index(DCRS, 0xd, ))
                        If(And(Local0, 0x4, )) {
                            Store(0x4, Local0)
                        }
                        Else {
                            Store(0x8, Local0)
                        }
                        Store(Local0, Index(DCRS, 0x6, ))
                        Store(Local0, Index(DCRS, 0x7, ))
                        Store(Local0, Index(DCRS, 0xe, ))
                        Store(Local0, Index(DCRS, 0xf, ))
                        ShiftLeft(0x1, LDRG(0x1, 0x70), Local0)
                        Store(Local0, Index(DCRS, 0x11, ))
                        ShiftRight(Local0, 0x8, Local1)
                        Store(Local1, Index(DCRS, 0x12, ))
                        Return(DCRS)
                    }
                    Method(_SRS, 1) {
                        Store(0x1, \_SB_.PCI0.ISA0.ELPT)
                        CreateByteField(Arg0, 0x2, ADRL)
                        CreateByteField(Arg0, 0x3, ADRM)
                        CreateWordField(Arg0, 0x11, IRQM)
                        FindSetRightBit(IRQM, Local0)
                        Decrement(Local0)
                        LDRS(0x1, 0x70, Local0)
                        LDRS(0x1, 0x60, ADRM)
                        LDRS(0x1, 0x61, ADRL)
                        PDRS(0x1, Add(ShiftLeft(ADRM, 0x8, ), ADRL, ))
                        LDRS(0x1, 0x30, 0x1)
                    }
                    Method(_EJD) {
                        If(LEqual(\_SB_.TOOS, 0x4)) {
                            Return("_SB.PCI0.ISA0.SPR0")
                        }
                        Else {
                            Return("_SB.PCI0.ISA0.SIO")
                        }
                    }
                }
                Device(LPT_) {
                    Name(_HID, 0x0004d041)
                    Name(_UID, 0x0)
                    Method(_STA) {
                        Store(LDRG(0x1, 0xf0), Local0)
                        ShiftRight(Local0, 0x5, Local0)
                        If(LAnd(RCF6(0x2), LEqual(Local0, 0x0))) {
                            ShiftLeft(LDRG(0x1, 0x30), 0x1, Local1)
                            Add(0xd, Local1, Local1)
                            Return(Local1)
                        }
                        Else {
                            Return(0x0)
                        }
                    }
                    Method(_PS0) {
                        LDRS(0x1, 0x30, 0x1)
                    }
                    Method(_PS3) {
                        LDRS(0x1, 0x30, 0x0)
                    }
                    Method(_PRS) {
                        Return(Buffer(0x7b) {0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x8, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x8, 0x8, 0x22, 0x80, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x8, 0x8, 0x47, 0x1, 0x78, 0x6, 0x78, 0x6, 0x8, 0x8, 0x22, 0x20, 0x0, 0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x8, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x8, 0x8, 0x22, 0x20, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x8, 0x8, 0x47, 0x1, 0x78, 0x6, 0x78, 0x6, 0x8, 0x8, 0x22, 0x80, 0x0, 0x30, 0x47, 0x1, 0xbc, 0x3, 0xbc, 0x3, 0x4, 0x4, 0x47, 0x1, 0xbc, 0x7, 0xbc, 0x7, 0x4, 0x4, 0x22, 0x80, 0x0, 0x30, 0x47, 0x1, 0xbc, 0x3, 0xbc, 0x3, 0x4, 0x4, 0x47, 0x1, 0xbc, 0x7, 0xbc, 0x7, 0x4, 0x4, 0x22, 0x20, 0x0, 0x38, 0x79, 0x0 })
                    }
                    Method(_DIS) {
                        LDRS(0x1, 0x30, 0x0)
                        Store(0x0, \_SB_.PCI0.ISA0.ELPT)
                    }
                    Method(_CRS) {
                        Name(DCRS, Buffer(0x15) {0x47, 0x1, 0x78, 0x3, 0x78, 0x3, 0x8, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x8, 0x8, 0x22, 0x80, 0x0, 0x79, 0x0 })
                        Store(LDRG(0x1, 0x60), Local1)
                        Store(LDRG(0x1, 0x61), Local0)
                        Store(Local0, Index(DCRS, 0x2, ))
                        Store(Local0, Index(DCRS, 0xa, ))
                        Store(Local0, Index(DCRS, 0x4, ))
                        Store(Local0, Index(DCRS, 0xc, ))
                        Store(Local1, Index(DCRS, 0x3, ))
                        Store(Local1, Index(DCRS, 0x5, ))
                        Add(Local1, 0x4, Local1)
                        Store(Local1, Index(DCRS, 0xb, ))
                        Store(Local1, Index(DCRS, 0xd, ))
                        If(And(Local0, 0x4, )) {
                            Store(0x4, Local0)
                        }
                        Else {
                            Store(0x8, Local0)
                        }
                        Store(Local0, Index(DCRS, 0x6, ))
                        Store(Local0, Index(DCRS, 0x7, ))
                        Store(Local0, Index(DCRS, 0xe, ))
                        Store(Local0, Index(DCRS, 0xf, ))
                        ShiftLeft(0x1, LDRG(0x1, 0x70), Local0)
                        Store(Local0, Index(DCRS, 0x11, ))
                        ShiftRight(Local0, 0x8, Local1)
                        Store(Local1, Index(DCRS, 0x12, ))
                        Return(DCRS)
                    }
                    Method(_SRS, 1) {
                        Store(0x1, \_SB_.PCI0.ISA0.ELPT)
                        CreateByteField(Arg0, 0x2, ADRL)
                        CreateByteField(Arg0, 0x3, ADRM)
                        CreateWordField(Arg0, 0x11, IRQM)
                        FindSetRightBit(IRQM, Local0)
                        Decrement(Local0)
                        LDRS(0x1, 0x70, Local0)
                        LDRS(0x1, 0x60, ADRM)
                        LDRS(0x1, 0x61, ADRL)
                        PDRS(0x1, Add(ShiftLeft(ADRM, 0x8, ), ADRL, ))
                        LDRS(0x1, 0x30, 0x1)
                    }
                    Method(_EJD) {
                        If(LEqual(\_SB_.TOOS, 0x4)) {
                            Return("_SB.PCI0.ISA0.SPR0")
                        }
                        Else {
                            Return("_SB.PCI0.ISA0.SIO")
                        }
                    }
                }
                Device(COMA) {
                    Name(_HID, 0x0105d041)
                    Name(_UID, 0x0)
                    Name(_EJD, "_SB_.PCI0.ISA0.SPR0")
                    Method(_STA) {
                        If(RCF6(0x8)) {
                            ShiftLeft(LDRG(0x3, 0x30), 0x1, Local1)
                            Add(0xd, Local1, Local1)
                            Return(Local1)
                        }
                        Else {
                            Return(0x0)
                        }
                    }
                    Method(_PS0) {
                        LDRS(0x3, 0x30, 0x1)
                    }
                    Method(_PS3) {
                        LDRS(0x3, 0x30, 0x0)
                    }
                    Method(_PRS) {
                        Return(Buffer(0x63) {0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x8, 0x8, 0x22, 0x10, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x8, 0x8, 0x22, 0x8, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x8, 0x8, 0x22, 0x10, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x8, 0x8, 0x22, 0x8, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x8, 0x8, 0x22, 0x8, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x8, 0x8, 0x22, 0x10, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x8, 0x8, 0x22, 0x8, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x8, 0x8, 0x22, 0x10, 0x0, 0x38, 0x79, 0x0 })
                    }
                    Method(_DIS) {
                        LDRS(0x3, 0x30, 0x0)
                        Store(0x0, \_SB_.PCI0.ISA0.ECO1)
                    }
                    Method(_CRS) {
                        Name(DCRS, Buffer(0xd) {0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x8, 0x8, 0x22, 0x10, 0x0, 0x79, 0x0 })
                        Store(LDRG(0x3, 0x60), Local1)
                        Store(LDRG(0x3, 0x61), Local0)
                        Store(Local0, Index(DCRS, 0x2, ))
                        Store(Local0, Index(DCRS, 0x4, ))
                        Store(Local1, Index(DCRS, 0x3, ))
                        Store(Local1, Index(DCRS, 0x5, ))
                        ShiftLeft(0x1, LDRG(0x3, 0x70), Local0)
                        Store(Local0, Index(DCRS, 0x9, ))
                        ShiftRight(Local0, 0x8, Local1)
                        Store(Local1, Index(DCRS, 0xa, ))
                        Return(DCRS)
                    }
                    Method(_SRS, 1) {
                        Store(0x1, \_SB_.PCI0.ISA0.ECO1)
                        CreateByteField(Arg0, 0x2, ADRL)
                        CreateByteField(Arg0, 0x3, ADRM)
                        CreateWordField(Arg0, 0x9, IRQM)
                        FindSetRightBit(IRQM, Local0)
                        Decrement(Local0)
                        LDRS(0x3, 0x70, Local0)
                        LDRS(0x3, 0x60, ADRM)
                        LDRS(0x3, 0x61, ADRL)
                        PDRS(0x3, Add(ShiftLeft(ADRM, 0x8, ), ADRL, ))
                        LDRS(0x3, 0x30, 0x1)
                    }
                }
                Device(FDC_) {
                    Name(_HID, 0x0007d041)
                    Name(_UID, 0x0)
                    Method(_STA) {
                        If(RCF6(0x1)) {
                            ShiftLeft(LDRG(0x0, 0x30), 0x1, Local1)
                            Add(0xd, Local1, Local1)
                            Return(Local1)
                        }
                        Else {
                            Return(0x0)
                        }
                    }
                    Method(_PRS) {
                        Return(Buffer(0x31) {0x30, 0x47, 0x1, 0xf0, 0x3, 0xf0, 0x3, 0x8, 0x6, 0x47, 0x1, 0xf7, 0x3, 0xf7, 0x3, 0x1, 0x1, 0x22, 0x40, 0x0, 0x2a, 0x4, 0x0, 0x30, 0x47, 0x1, 0x70, 0x3, 0x70, 0x3, 0x8, 0x6, 0x47, 0x1, 0x77, 0x3, 0x77, 0x3, 0x1, 0x1, 0x22, 0x40, 0x0, 0x2a, 0x4, 0x0, 0x38, 0x79, 0x0 })
                    }
                    Method(_DIS) {
                        LDRS(0x0, 0x30, 0x0)
                        Store(0x0, \_SB_.PCI0.ISA0.EFDD)
                    }
                    Method(_CRS) {
                        Name(DCRS, Buffer(0x18) {0x47, 0x1, 0xf0, 0x3, 0xf0, 0x3, 0x8, 0x6, 0x47, 0x1, 0xf7, 0x3, 0xf7, 0x3, 0x1, 0x1, 0x22, 0x40, 0x0, 0x2a, 0x4, 0x0, 0x79, 0x0 })
                        Store(LDRG(0x0, 0x60), Local1)
                        Store(LDRG(0x0, 0x61), Local0)
                        Store(Local0, Index(DCRS, 0x2, ))
                        Store(Local0, Index(DCRS, 0x4, ))
                        Add(Local0, 0x7, Local0)
                        Store(Local0, Index(DCRS, 0xa, ))
                        Store(Local0, Index(DCRS, 0xc, ))
                        Store(Local1, Index(DCRS, 0x3, ))
                        Store(Local1, Index(DCRS, 0x5, ))
                        Store(Local1, Index(DCRS, 0xb, ))
                        Store(Local1, Index(DCRS, 0xd, ))
                        ShiftLeft(0x1, LDRG(0x0, 0x70), Local0)
                        Store(Local0, Index(DCRS, 0x11, ))
                        ShiftRight(Local0, 0x8, Local1)
                        Store(Local1, Index(DCRS, 0x12, ))
                        ShiftLeft(0x1, LDRG(0x0, 0x74), Local0)
                        Store(Local0, Index(DCRS, 0x14, ))
                        ShiftRight(Local0, 0x8, Local1)
                        Store(Local1, Index(DCRS, 0x15, ))
                        Return(DCRS)
                    }
                    Method(_SRS, 1) {
                        Store(0x1, \_SB_.PCI0.ISA0.EFDD)
                        CreateByteField(Arg0, 0x2, ADRL)
                        CreateByteField(Arg0, 0x3, ADRM)
                        CreateWordField(Arg0, 0x11, IRQM)
                        CreateWordField(Arg0, 0x14, DMAM)
                        FindSetRightBit(IRQM, Local0)
                        Decrement(Local0)
                        FindSetRightBit(DMAM, Local1)
                        Decrement(Local1)
                        LDRS(0x0, 0x70, Local0)
                        LDRS(0x0, 0x74, Local1)
                        LDRS(0x0, 0x60, ADRM)
                        LDRS(0x0, 0x61, ADRL)
                        PDRS(0x0, Add(ShiftLeft(ADRM, 0x8, ), ADRL, ))
                        LDRS(0x0, 0x30, 0x1)
                    }
                    Name(STOP, 0x0)
                    Method(_INI) {
                        If(ECOK()) {
                            If(LEqual(\_SB_.PCI0.ISA0.EC0_.FDD_, 0x1)) {
                                Store(0x0, \_SB_.PCI0.ISA0.SIO_.FDC_.IFDD._PSC)
                            }
                            Else {
                                Store(0x3, \_SB_.PCI0.ISA0.SIO_.FDC_.IFDD._PSC)
                            }
                        }
                        Else {
                            If(And(BDST, 0x2, )) {
                                Store(0x0, \_SB_.PCI0.ISA0.SIO_.FDC_.IFDD._PSC)
                            }
                            Else {
                                Store(0x3, \_SB_.PCI0.ISA0.SIO_.FDC_.IFDD._PSC)
                            }
                        }
                        If(ECOK()) {
                            If(\_SB_.PCI0.ISA0.EC0_.EXFD) {
                                Store(0x0, \_SB_.PCI0.ISA0.SIO_.FDC_.EFDD._PSC)
                                Store(0x3, \_SB_.PCI0.ISA0.SIO_.FDC_.IFDD._PSC)
                            }
                            Else {
                                Store(0x3, \_SB_.PCI0.ISA0.SIO_.FDC_.EFDD._PSC)
                            }
                        }
                        Else {
                            If(And(BDST, 0x1, )) {
                                Store(0x0, \_SB_.PCI0.ISA0.SIO_.FDC_.EFDD._PSC)
                                Store(0x3, \_SB_.PCI0.ISA0.SIO_.FDC_.IFDD._PSC)
                            }
                            Else {
                                Store(0x3, \_SB_.PCI0.ISA0.SIO_.FDC_.EFDD._PSC)
                            }
                        }
                    }
                    Name(_PSC, 0x3)
                    Method(_PS0) {
                        Store(0x0, _PSC)
                        If(And(\_SB_.PCI0.ISA0.EC0_.PQ8A, 0x1, )) {
                            Acquire(\_SB_.PCI0.ISA0.EC0_.MUT2, 0xffff)
                            \_SB_.PCI0.ISA0.EC0_.SWAP()
                            And(\_SB_.PCI0.ISA0.EC0_.PQ8A, Not(0x1, ), \_SB_.PCI0.ISA0.EC0_.PQ8A)
                            Release(\_SB_.PCI0.ISA0.EC0_.MUT2)
                        }
                    }
                    Method(_PS3) {
                        Store(0x3, _PSC)
                    }
                    Method(_FDE) {
                        Store(Buffer(0x14) {0x0 }, Local0)
                        CreateDWordField(Local0, 0x0, FD0_)
                        CreateDWordField(Local0, 0x10, TAPE)
                        If(And(\_SB_.PCI0.ISA0.SIO_.FDC_.EFDD._STA(), 0x1, )) {
                            Store(0x1, FD0_)
                        }
                        Else {
                            If(And(\_SB_.PCI0.ISA0.SIO_.FDC_.IFDD._STA(), 0x1, )) {
                                Store(0x1, FD0_)
                            }
                        }
                        Store(0x2, TAPE)
                        Return(Local0)
                    }
                    Device(IFDD) {
                        Method(_ADR) {
                            If(ECOK()) {
                                If(\_SB_.PCI0.ISA0.EC0_.EXFD) {
                                    Return(0x1)
                                }
                            }
                            Else {
                                If(And(BDST, 0x1, )) {
                                    Return(0x1)
                                }
                            }
                            Return(0x0)
                        }
                        Method(_STA) {
                            If(ECOK()) {
                                If(\_SB_.PCI0.ISA0.EC0_.EXFD) {
                                    Return(0x0)
                                }
                            }
                            Else {
                                If(And(BDST, 0x1, )) {
                                    Return(0x0)
                                }
                            }
                            If(ECOK()) {
                                If(LAnd(\_SB_.PCI0.ISA0.EC0_.FDD_, XOr(^^STOP, 0x1, ))) {
                                    If(LEqual(\_SB_.PCI0.ISA0.SIO_.FDC_.IFDD._PSC, 0x0)) {
                                        Return(0xf)
                                    }
                                    Else {
                                        Return(0xd)
                                    }
                                }
                                Else {
                                    Return(0x0)
                                }
                            }
                            Else {
                                If(And(BDST, 0x2, )) {
                                    If(LEqual(\_SB_.PCI0.ISA0.SIO_.FDC_.IFDD._PSC, 0x0)) {
                                        Return(0xf)
                                    }
                                    Else {
                                        Return(0xd)
                                    }
                                }
                                Else {
                                    Return(0x0)
                                }
                            }
                        }
                        Name(_PSC, 0x3)
                        Method(_PS0) {
                            Store(0x0, \_SB_.PCI0.ISA0.SDPW)
                            Store(0x1, \_SB_.PCI0.ISA0.GO28)
                            Store(0x0, _PSC)
                        }
                        Method(_PS3) {
                            Store(0x1, \_SB_.PCI0.ISA0.SDPW)
                            Store(0x0, \_SB_.PCI0.ISA0.GO28)
                            Store(0x3, _PSC)
                        }
                        Method(_EJ0, 1) {
                            If(\_SB_.PCI0.ISA0.EC0_.EXFD) {
                                \_SB_.PCI0.ISA0.SIO_.FDC_.EFDD._EJ0(0x1)
                            }
                            Else {
                                ^_PS3()
                                Or(\_SB_.PCI0.ISA0.SIO_.FDC_.STOP, 0x1, \_SB_.PCI0.ISA0.SIO_.FDC_.STOP)
                            }
                        }
                        Name(_FDI, Package(0x10) {
                            0x0,
                            0x4,
                            0x4f,
                            0x12,
                            0x1,
                            0xdf,
                            0x2,
                            0x25,
                            0x2,
                            0x12,
                            0x1b,
                            0xff,
                            0x6c,
                            0xf6,
                            0xf,
                            0x5,
                        })
                    }
                    Device(EFDD) {
                        Method(_ADR) {
                            If(ECOK()) {
                                If(LNot(\_SB_.PCI0.ISA0.EC0_.EXFD)) {
                                    Return(0x1)
                                }
                            }
                            Else {
                                If(LNot(And(BDST, 0x1, ))) {
                                    Return(0x1)
                                }
                            }
                            Return(0x0)
                        }
                        Method(_STA) {
                            If(ECOK()) {
                                If(LOr(LNot(\_SB_.PCI0.ISA0.EC0_.EXFD), And(^^STOP, 0x2, ))) {
                                    Return(0x0)
                                }
                            }
                            Else {
                                If(LNot(And(BDST, 0x1, ))) {
                                    Return(0x0)
                                }
                            }
                            If(LEqual(_PSC, 0x0)) {
                                Return(0xf)
                            }
                            Else {
                                Return(0xd)
                            }
                        }
                        Name(_PSC, 0x3)
                        Method(_PS0) {
                            Store(0x0, _PSC)
                        }
                        Method(_PS3) {
                            Store(0x3, _PSC)
                        }
                        Name(_EJD, "_SB_.PCI0.ISA0.SPR0")
                        Method(_EJ0, 1) {
                            Store(0x3, _PSC)
                            Or(\_SB_.PCI0.ISA0.SIO_.FDC_.STOP, 0x2, \_SB_.PCI0.ISA0.SIO_.FDC_.STOP)
                        }
                        Name(_FDI, Package(0x10) {
                            0x0,
                            0x4,
                            0x4f,
                            0x12,
                            0x1,
                            0xdf,
                            0x2,
                            0x25,
                            0x2,
                            0x12,
                            0x1b,
                            0xff,
                            0x6c,
                            0xf6,
                            0xf,
                            0x5,
                        })
                    }
                }
                Device(SIR_) {
                    Name(_HID, 0x1005d041)
                    Name(_UID, 0x0)
                    Method(_STA) {
                        Store(LDRG(0x2, 0x74), Local0)
                        If(LAnd(RCF6(0x4), LEqual(Local0, 0x4))) {
                            ShiftLeft(LDRG(0x2, 0x30), 0x1, Local1)
                            Add(0xd, Local1, Local1)
                            Return(Local1)
                        }
                        Else {
                            Return(0x0)
                        }
                    }
                    Method(_PS0) {
                        LDRS(0x2, 0x30, 0x1)
                    }
                    Method(_PS3) {
                        LDRS(0x2, 0x30, 0x0)
                    }
                    Method(_PRS) {
                        Return(Buffer(0x63) {0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x8, 0x8, 0x22, 0x10, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x8, 0x8, 0x22, 0x8, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x8, 0x8, 0x22, 0x10, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x8, 0x8, 0x22, 0x8, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x8, 0x8, 0x22, 0x8, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x8, 0x8, 0x22, 0x10, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x8, 0x8, 0x22, 0x8, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x8, 0x8, 0x22, 0x10, 0x0, 0x38, 0x79, 0x0 })
                    }
                    Method(_DIS) {
                        LDRS(0x2, 0x30, 0x0)
                        Store(0x0, \_SB_.PCI0.ISA0.ECO1)
                    }
                    Method(_CRS) {
                        Name(DCRS, Buffer(0xd) {0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x8, 0x8, 0x22, 0x8, 0x0, 0x79, 0x0 })
                        Store(LDRG(0x2, 0x60), Local1)
                        Store(LDRG(0x2, 0x61), Local0)
                        Store(Local0, Index(DCRS, 0x2, ))
                        Store(Local0, Index(DCRS, 0x4, ))
                        Store(Local1, Index(DCRS, 0x3, ))
                        Store(Local1, Index(DCRS, 0x5, ))
                        ShiftLeft(0x1, LDRG(0x2, 0x70), Local0)
                        Store(Local0, Index(DCRS, 0x9, ))
                        ShiftRight(Local0, 0x8, Local1)
                        Store(Local1, Index(DCRS, 0xa, ))
                        Return(DCRS)
                    }
                    Method(_SRS, 1) {
                        Store(0x1, \_SB_.PCI0.ISA0.ECO1)
                        CreateByteField(Arg0, 0x2, ADRL)
                        CreateByteField(Arg0, 0x3, ADRM)
                        CreateWordField(Arg0, 0x9, IRQM)
                        FindSetRightBit(IRQM, Local0)
                        Decrement(Local0)
                        LDRS(0x2, 0x70, Local0)
                        LDRS(0x2, 0x60, ADRM)
                        LDRS(0x2, 0x61, ADRL)
                        PDRS(0x2, Add(ShiftLeft(ADRM, 0x8, ), ADRL, ))
                        LDRS(0x2, 0x30, 0x1)
                    }
                }
                Device(FIR_) {
                    Method(_HID) {
                        If(\_SB_.PCI0.OSNT) {
                            Return(0x24c2f022)
                        }
                        Else {
                            Return(0x0160633a)
                        }
                    }
                    Name(_UID, 0x0)
                    Method(_STA) {
                        Store(LDRG(0x2, 0x74), Local0)
                        If(LAnd(RCF6(0x4), LNot(LEqual(Local0, 0x4)))) {
                            ShiftLeft(LDRG(0x2, 0x30), 0x1, Local1)
                            Add(0xd, Local1, Local1)
                            Return(Local1)
                        }
                        Else {
                            Return(0x0)
                        }
                    }
                    Method(_PS0) {
                        LDRS(0x2, 0x30, 0x1)
                    }
                    Method(_PS3) {
                        LDRS(0x2, 0x30, 0x0)
                    }
                    Method(_PRS) {
                        Return(Buffer(0x016b) {0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x8, 0x8, 0x22, 0x10, 0x0, 0x2a, 0x1, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x8, 0x8, 0x22, 0x8, 0x0, 0x2a, 0x1, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x8, 0x8, 0x22, 0x10, 0x0, 0x2a, 0x1, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x8, 0x8, 0x22, 0x8, 0x0, 0x2a, 0x1, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x8, 0x8, 0x22, 0x8, 0x0, 0x2a, 0x1, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x8, 0x8, 0x22, 0x10, 0x0, 0x2a, 0x1, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x8, 0x8, 0x22, 0x8, 0x0, 0x2a, 0x1, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x8, 0x8, 0x22, 0x10, 0x0, 0x2a, 0x1, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x8, 0x8, 0x22, 0x10, 0x0, 0x2a, 0x2, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x8, 0x8, 0x22, 0x8, 0x0, 0x2a, 0x2, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x8, 0x8, 0x22, 0x10, 0x0, 0x2a, 0x2, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x8, 0x8!
, 0x22, 0x8, 0x0, 0x2a, 0x2, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x8, 0x8, 0x22, 0x8, 0x0, 0x2a, 0x2, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x8, 0x8, 0x22, 0x10, 0x0, 0x2a, 0x2, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x8, 0x8, 0x22, 0x8, 0x0, 0x2a, 0x2, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x8, 0x8, 0x22, 0x10, 0x0, 0x2a, 0x2, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x8, 0x8, 0x22, 0x10, 0x0, 0x2a, 0x8, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x8, 0x8, 0x22, 0x8, 0x0, 0x2a, 0x8, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x8, 0x8, 0x22, 0x10, 0x0, 0x2a, 0x8, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x8, 0x8, 0x22, 0x8, 0x0, 0x2a, 0x8, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x3, 0x8, 0x8, 0x22, 0x8, 0x0, 0x2a, 0x8, 0x0, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x8, 0x8, 0x22, 0x10, 0x0, 0x2a, 0x8, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x8, 0x8, 0x22, 0x8, 0x0, 0x2a, 0x8, 0x0, 0x30, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x8, 0x8, 0x22, 0x10, !
0x0, 0x2a, 0x8, 0x0, 0x38, 0x79, 0x0 })
                    }
                    Method(_DIS) {
                        LDRS(0x2, 0x30, 0x0)
                        Store(0x0, \_SB_.PCI0.ISA0.ECO1)
                    }
                    Method(_CRS) {
                        Name(DCRS, Buffer(0x10) {0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x8, 0x8, 0x22, 0x8, 0x0, 0x2a, 0x1, 0x0, 0x79, 0x0 })
                        Store(LDRG(0x2, 0x60), Local1)
                        Store(LDRG(0x2, 0x61), Local0)
                        Store(Local0, Index(DCRS, 0x2, ))
                        Store(Local0, Index(DCRS, 0x4, ))
                        Store(Local1, Index(DCRS, 0x3, ))
                        Store(Local1, Index(DCRS, 0x5, ))
                        ShiftLeft(0x1, LDRG(0x2, 0x70), Local0)
                        Store(Local0, Index(DCRS, 0x9, ))
                        ShiftRight(Local0, 0x8, Local1)
                        Store(Local1, Index(DCRS, 0xa, ))
                        ShiftLeft(0x1, LDRG(0x2, 0x74), Local0)
                        Store(Local0, Index(DCRS, 0xc, ))
                        ShiftRight(Local0, 0x8, Local1)
                        Store(Local1, Index(DCRS, 0xd, ))
                        Return(DCRS)
                    }
                    Method(_SRS, 1) {
                        Store(0x1, \_SB_.PCI0.ISA0.ECO1)
                        CreateByteField(Arg0, 0x2, ADRL)
                        CreateByteField(Arg0, 0x3, ADRM)
                        CreateWordField(Arg0, 0x9, IRQM)
                        CreateWordField(Arg0, 0xc, DMAM)
                        FindSetRightBit(IRQM, Local0)
                        Decrement(Local0)
                        FindSetRightBit(DMAM, Local1)
                        Decrement(Local1)
                        LDRS(0x2, 0x70, Local0)
                        LDRS(0x2, 0x74, Local1)
                        LDRS(0x2, 0x60, ADRM)
                        LDRS(0x2, 0x61, ADRL)
                        PDRS(0x2, Add(ShiftLeft(ADRM, 0x8, ), ADRL, ))
                        LDRS(0x2, 0x30, 0x1)
                    }
                }
            }
            Device(EC0_) {
                Name(_HID, 0x090cd041)
                Name(_CRS, Buffer(0x12) {0x47, 0x1, 0x62, 0x0, 0x62, 0x0, 0x1, 0x1, 0x47, 0x1, 0x66, 0x0, 0x66, 0x0, 0x1, 0x1, 0x79, 0x0 })
                Name(_GPE, 0x1c)
                Name(SEL0, 0xf0)
                Name(BFLG, 0x0)
                Method(_REG, 2) {
                    If(LEqual(Arg0, 0x3)) {
                        Store(Arg1, ECEN)
                    }
                }
                OperationRegion(ERAM, EmbeddedControl, 0x0, 0xff)
                Field(ERAM, ByteAcc, Lock, Preserve) {
                    Offset(0x4),
                    CMCM,	8,
                    CMD1,	8,
                    CMD2,	8,
                    CMD3,	8,
                    Offset(0x18),
                    SMPR,	8,
                    SMST,	8,
                    SMAD,	8,
                    SMCM,	8,
                    SMD0,	256,
                    BCNT,	8,
                    SMAA,	8,
                    S1D0,	8,
                    S1D1,	8,
                    SM2A,	8,
                    S2D0,	8,
                    S2D1,	8,
                    SM3A,	8,
                    LIDS,	1,
                    DV1S,	1,
                    EXFD,	1,
                    RFSW,	1,
                    ,	1,
                    CRTS,	1,
                    SLPS,	1,
                    DCKS,	1,
                    EJBS,	1,
                    ,	1,
                    ,	1,
                    ,	1,
                    ,	1,
                    ,	1,
                    DV2S,	1,
                    DV3S,	1,
                    WK10,	16,
                    EVTP,	16,
                    BTM3,	8,
                    DCID,	8,
                    DPWR,	1,
                    UDR0,	1,
                    UDR5,	1,
                    EQBF,	1,
                    LDDS,	1,
                    CRST,	1,
                    DCWT,	1,
                    QVCC,	1,
                    HP4D,	8,
                    WAKP,	16,
                    POLL,	1,
                    ADP_,	1,
                    ALRT,	1,
                    B1WE,	1,
                    B1WS,	1,
                    B2WE,	1,
                    B2WS,	1,
                    BWAK,	1,
                    PWRE,	1,
                    ALLB,	1,
                    AUXB,	1,
                    S2DR,	1,
                    F1B4,	1,
                    F1B5,	1,
                    F1B6,	1,
                    RSMA,	1,
                    S1LD,	1,
                    S2LD,	1,
                    F2B2,	1,
                    PTSV,	3,
                    PMEE,	1,
                    ENCB,	1,
                    F3B0,	1,
                    F3B1,	1,
                    F3B2,	1,
                    F3B3,	1,
                    F3B4,	1,
                    F3B5,	1,
                    F3B6,	1,
                    F3B7,	1,
                    TMSS,	2,
                    OSMD,	1,
                    F4B3,	1,
                    BANK,	4,
                    CTMP,	8,
                    S2DC,	8,
                    BPD_,	8,
                    BT1I,	16,
                    BT1C,	16,
                    BT1V,	16,
                    BT1S,	8,
                    BT2I,	16,
                    BT2C,	16,
                    BT2V,	16,
                    BT2S,	8,
                    KBID,	8,
                    TTMP,	8,
                    HPCB,	8,
                    B2LC,	8,
                    HP6A,	8,
                    HP6B,	8,
                    HP6C,	8,
                    HP6D,	8,
                    HP6E,	8,
                    HP6F,	8,
                    HP70,	8,
                    HP71,	8,
                    RSMT,	16,
                    HP74,	8,
                    HP75,	8,
                    ,	1,
                    ,	1,
                    ,	1,
                    UPP1,	1,
                    UPP2,	1,
                    ,	1,
                    ,	1,
                    BTOF,	1,
                    SUSB,	1,
                    SUSC,	1,
                    CPWR,	1,
                    CBTN,	1,
                    FAN_,	1,
                    IWOL,	1,
                    EWOR,	1,
                    S4IN,	1,
                    FANL,	16,
                    QU7A,	8,
                    QU7B,	8,
                    QU7C,	8,
                    QU7D,	8,
                    QU7E,	8,
                    QU7F,	8
                }
                Field(ERAM, ByteAcc, NoLock, Preserve) {
                    Offset(0x1c),
                    SMW0,	16
                }
                Field(ERAM, ByteAcc, NoLock, Preserve) {
                    Offset(0x1c),
                    SMB0,	8
                }
                Field(ERAM, ByteAcc, NoLock, Preserve) {
                    Offset(0x1c),
                    FLD0,	64
                }
                Field(ERAM, ByteAcc, NoLock, Preserve) {
                    Offset(0x1c),
                    FLD1,	128
                }
                Field(ERAM, ByteAcc, NoLock, Preserve) {
                    Offset(0x1c),
                    FLD2,	192
                }
                Field(ERAM, ByteAcc, NoLock, Preserve) {
                    Offset(0x1c),
                    FLD3,	256
                }
                Mutex(CMUT, 0)
                Method(CMC2, 3) {
                    Acquire(CMUT, 0xffff)
                    Store(Arg2, CMD2)
                    Store(Arg1, CMD1)
                    Store(Arg0, CMCM)
                    While(CMCM) {
                    }
                    Release(CMUT)
                }
                Mutex(MUT0, 0)
                Mutex(MUT1, 0)
                Method(SMRD, 4) {
                    If(LNot(ECOK())) {
                        Return(0xff)
                    }
                    If(LNot(LEqual(Arg0, 0x7))) {
                        If(LNot(LEqual(Arg0, 0x9))) {
                            If(LNot(LEqual(Arg0, 0xb))) {
                                Return(0x19)
                            }
                        }
                    }
                    Acquire(MUT0, 0xffff)
                    Store(0x4, Local0)
                    While(LGreater(Local0, 0x1)) {
                        And(SMST, 0x40, SMST)
                        Store(Arg2, SMCM)
                        Store(Arg1, SMAD)
                        Store(Arg0, SMPR)
                        While(LNot(And(SMST, 0xbf, Local1))) {
                            Sleep(0x2)
                        }
                        If(LEqual(Local1, 0x80)) {
                            Store(0x0, Local0)
                        }
                        Else {
                            Decrement(Local0)
                        }
                    }
                    If(Local0) {
                        Store(And(Local1, 0x1f, ), Local0)
                    }
                    Else {
                        If(LEqual(Arg0, 0x7)) {
                            Store(SMB0, Arg3)
                        }
                        If(LEqual(Arg0, 0x9)) {
                            Store(SMW0, Arg3)
                        }
                        If(LEqual(Arg0, 0xb)) {
                            Store(BCNT, Local3)
                            ShiftRight(0x0100, 0x3, Local2)
                            If(LGreater(Local3, Local2)) {
                                Store(Local2, Local3)
                            }
                            If(LLess(Local3, 0x9)) {
                                Store(FLD0, Local2)
                            }
                            Else {
                                If(LLess(Local3, 0x11)) {
                                    Store(FLD1, Local2)
                                }
                                Else {
                                    If(LLess(Local3, 0x19)) {
                                        Store(FLD2, Local2)
                                    }
                                    Else {
                                        Store(FLD3, Local2)
                                    }
                                }
                            }
                            Increment(Local3)
                            Store(Buffer(Local3) { }, Local4)
                            Decrement(Local3)
                            Store(Zero, Local5)
                            While(LGreater(Local3, Local5)) {
                                GBFE(Local2, Local5, RefOf(Local6))
                                PBFE(Local4, Local5, Local6)
                                Increment(Local5)
                            }
                            PBFE(Local4, Local5, 0x0)
                            Store(Local4, Arg3)
                        }
                    }
                    Release(MUT0)
                    Return(Local0)
                }
                Method(SMWR, 4) {
                    If(LNot(ECOK())) {
                        Return(0xff)
                    }
                    If(LNot(LEqual(Arg0, 0x6))) {
                        If(LNot(LEqual(Arg0, 0x8))) {
                            If(LNot(LEqual(Arg0, 0xa))) {
                                Return(0x19)
                            }
                        }
                    }
                    Acquire(MUT0, 0xffff)
                    Store(0x4, Local0)
                    While(LGreater(Local0, 0x1)) {
                        If(LEqual(Arg0, 0x6)) {
                            Store(Arg3, SMB0)
                        }
                        If(LEqual(Arg0, 0x8)) {
                            Store(Arg3, SMW0)
                        }
                        If(LEqual(Arg0, 0xa)) {
                            Store(Arg3, SMD0)
                        }
                        And(SMST, 0x40, SMST)
                        Store(Arg2, SMCM)
                        Store(Arg1, SMAD)
                        Store(Arg0, SMPR)
                        While(LNot(And(SMST, 0xbf, Local1))) {
                            Sleep(0x2)
                        }
                        If(LEqual(Local1, 0x80)) {
                            Store(0x0, Local0)
                        }
                        Else {
                            Decrement(Local0)
                        }
                    }
                    If(Local0) {
                        Store(And(Local1, 0x1f, ), Local0)
                    }
                    Release(MUT0)
                    Return(Local0)
                }
                Name(ACFL, 0x0)
                Method(SMSL) {
                    Store("CMBatt - SMSL", Debug)
                    If(LNot(ECOK())) {
                        Return(0xff)
                    }
                    Acquire(\_SB_.PCI0.ISA0.EC0_.MUT1, 0xffff)
                    If(LNot(\_SB_.PCI0.ISA0.EC0_.SMRD(0x9, 0x14, 0x1, RefOf(Local0)))) {
                        Store(Local0, SEL0)
                        Store(SEL0, Debug)
                        If(LEqual(ALRT, 0x1)) {
                            \_SB_.PCI0.ISA0.BAT1.IVBI()
                            \_SB_.PCI0.ISA0.BAT1.IVBS()
                            \_SB_.PCI0.ISA0.BAT2.IVBI()
                            \_SB_.PCI0.ISA0.BAT2.IVBS()
                            Store(0x0, ALRT)
                        }
                        Store(\_SB_.PCI0.ISA0.ACAD.CHAC(SEL0), Local1)
                        Store(\_SB_.PCI0.ISA0.BAT1.CHBP(SEL0), Local2)
                        Store(\_SB_.PCI0.ISA0.BAT2.CHBP(SEL0), Local3)
                        Or(SEL0, 0x0fff, Local0)
                        SMWR(0x8, 0x14, 0x1, Local0)
                        If(LAnd(Local1, \_SB_.PCI0.ISA0.ACAD.ACP_)) {
                            Store("CMBatt - Notify(ACAD,0x80): AC_Inserted", Debug)
                            Store(0x0, \_SB_.PCI0.ISA0.CRUN)
                            Notify(\_SB_.PCI0.ISA0.ACAD, 0x80)
                            Store(0x2, ACFL)
                            If(\_SB_.PCI0.ISA0.BKLT) {
                                Store(0x0, \_SB_.PCI0.ISA0.BKLT)
                                Sleep(0x1e)
                                Store(0x1, \_SB_.PCI0.ISA0.BKLT)
                            }
                        }
                        If(And(0x4, Local2, )) {
                            If(\_SB_.PCI0.ISA0.BKLT) {
                                Store(0x0, \_SB_.PCI0.ISA0.BKLT)
                                Sleep(0x1e)
                                Store(0x1, \_SB_.PCI0.ISA0.BKLT)
                            }
                            \_SB_.PCI0.ISA0.BAT1.B1CK()
                        }
                        If(And(0x2, Local2, )) {
                            \_SB_.PCI0.ISA0.BAT1.B1ST()
                        }
                        If(And(0x1, Local2, )) {
                            \_SB_.PCI0.ISA0.BAT1.B1IF()
                        }
                        If(And(0x4, Local3, )) {
                            If(\_SB_.PCI0.ISA0.BKLT) {
                                Store(0x0, \_SB_.PCI0.ISA0.BKLT)
                                Sleep(0xd)
                                Store(0x1, \_SB_.PCI0.ISA0.BKLT)
                            }
                            \_SB_.PCI0.ISA0.BAT2.B2CK()
                        }
                        If(And(0x2, Local3, )) {
                            \_SB_.PCI0.ISA0.BAT2.B2ST()
                        }
                        If(And(0x1, Local3, )) {
                            \_SB_.PCI0.ISA0.BAT2.B2IF()
                        }
                        If(LAnd(Local1, LNot(\_SB_.PCI0.ISA0.ACAD.ACP_))) {
                            Store("CMBatt - Notify(ACAD, 0x80): AC_Removed", Debug)
                            Store(0x1, \_SB_.PCI0.ISA0.CRUN)
                            Notify(\_SB_.PCI0.ISA0.ACAD, 0x80)
                            Store(0x1, ACFL)
                            If(\_SB_.PCI0.ISA0.BKLT) {
                                Store(0x0, \_SB_.PCI0.ISA0.BKLT)
                                Sleep(0xd)
                                Store(0x1, \_SB_.PCI0.ISA0.BKLT)
                            }
                        }
                    }
                    Store(0x3c, Local4)
                    If(\_SB_.PCI0.ISA0.BAT1.REPT) {
                        Store(0x2, Local4)
                    }
                    If(\_SB_.PCI0.ISA0.BAT2.REPT) {
                        Store(0x2, Local4)
                    }
                    If(BFLG) {
                        Store(0x1, Local5)
                        While(LNot(And(BFLG, 0x1, ))) {
                            Increment(Local5)
                            ShiftRight(BFLG, 0x1, BFLG)
                        }
                        ShiftRight(BFLG, 0x1, BFLG)
                        If(LGreater(Local4, Local5)) {
                            Store(Local5, Local4)
                        }
                    }
                    Store(Local4, BPD_)
                    BPOL()
                    Release(\_SB_.PCI0.ISA0.EC0_.MUT1)
                    If(ACFL) {
                        Decrement(ACFL)
                        Store(\_SB_.PCI0.ISA0.HPSS(0x12, ACFL), Local0)
                        CMC2(0xc4, Local0, 0x82)
                        Store(0x0, ACFL)
                    }
                }
                Name(PSTA, 0x0)
                Method(CPOL) {
                    If(LEqual(PSTA, 0x0)) {
                        If(ECOK()) {
                            BPOL()
                            Store(0x1, PSTA)
                        }
                    }
                }
                Method(BPOL) {
                    Store(0x1, POLL)
                }
                Method(_Q09) {
                    Store("QUERY_09", Debug)
                    SMSL()
                }
                Method(_Q20) {
                    Store("QUERY_20", Debug)
                    If(And(SMST, 0x40, )) {
                        Store(SMAA, Local0)
                        If(LEqual(Local0, 0x14)) {
                            And(SMST, 0xbf, SMST)
                            If(PWRE) {
                                Store("CMBatt - PwrEvent", Debug)
                                Store(0x0, PWRE)
                                Store(0x12, BFLG)
                                Store(0x0, BPD_)
                                BPOL()
                            }
                        }
                    }
                }
                Method(_Q29) {
                    Store("QUERY_29", Debug)
                    If(And(PQ8A, 0x4, )) {
                        And(PQ8A, Not(0x4, ), PQ8A)
                        Acquire(\_SB_.PCI0.ISA0.EC0_.MUT2, 0xffff)
                        Store(0x1, \_SB_.PCI0.ISA0.EC0_.SHDD)
                        \_SB_.PCI0.ISA0.EC0_.SWAP()
                        Release(\_SB_.PCI0.ISA0.EC0_.MUT2)
                    }
                }
                Method(_Q02) {
                }
                Method(_Q03) {
                    If(LEqual(\_SB_.PCI0.AGP_.VGA_.DISW, 0x0)) {
                        \_SB_.PCI0.AGP_.VGA_.DRUL(0x1)
                    }
                    Else {
                        If(LEqual(\_SB_.PCI0.AGP_.VGA_.DISW, 0x1)) {
                            HPSS(0x1, 0x0)
                        }
                    }
                }
                Method(_Q04) {
                    Notify(\_SB_.PCI0.ISA0.HPCI, 0x86)
                }
                Method(_Q05) {
                }
                Method(_Q0A) {
                    Store("Brightness Down: _Q0A", Debug)
                    Store(HPSS(0x8, 0x0), Local0)
                    CMC2(0xc4, Local0, 0x82)
                    Notify(HPCI, 0x8a)
                }
                Method(_Q0B) {
                    Store("Brightness Up: _Q0B", Debug)
                    Store(HPSS(0x8, 0x1), Local0)
                    CMC2(0xc4, Local0, 0x82)
                    Notify(HPCI, 0x8a)
                }
                Method(_Q80) {
                    Store("THERM: _Q80 - Thermal Change", Debug)
                    Store("Current Temperature is ----------- ", Debug)
                    Store(CTMP, Debug)
                    If(LNot(LLess(CTMP, 0x5d))) {
                        If(LNot(And(\_SB_.PCI0.ISA0.MFLG, 0x20, ))) {
                            HPSS(0x15, 0x0)
                        }
                    }
                    Else {
                        If(And(\_SB_.PCI0.ISA0.MFLG, 0x20, )) {
                            HPSS(0x16, 0x0)
                        }
                    }
                    Notify(\_TZ_.THRM, 0x80)
                }
                Method(_Q8A) {
                    Store(EVTP, Local0)
                    Store(Local0, EVTP)
                    Store(Local0, Debug)
                    If(And(Local0, 0x1, )) {
                        If(LIDS) {
                            Store(0x0, \_SB_.LID_.LPOL)
                            Store(0x0, \_SB_.PCI0.ISA0.BKLT)
                        }
                        Else {
                            Store(0x1, \_SB_.LID_.LPOL)
                            Store(0x1, \_SB_.PCI0.ISA0.BKLT)
                        }
                        Notify(\_SB_.LID_, 0x80)
                    }
                    If(And(Local0, 0x4, )) {
                        Acquire(\_SB_.PCI0.ISA0.EC0_.MUT2, 0xffff)
                        \_SB_.PCI0.ISA0.EC0_.SWAP()
                        Release(\_SB_.PCI0.ISA0.EC0_.MUT2)
                    }
                    If(And(Local0, 0x8, )) {
                        HPSS(0x13, RFSW)
                    }
                    If(And(Local0, 0x20, )) {
                        \_SB_.PCI0.AGP_.VGA_.DRUL(0x2)
                    }
                    If(And(Local0, 0x40, )) {
                        Store("Notify Sleep Button(0x80)", Debug)
                        Notify(\_SB_.SLP_, 0x80)
                    }
                    If(And(Local0, 0x80, )) {
                        If(DCKS) {
                            \_SB_.PCI0.ISA0.SPR0.DOCK()
                        }
                        Else {
                            \_SB_.PCI0.ISA0.SPR0.UDOK()
                        }
                    }
                    If(And(Local0, 0x0100, )) {
                        \_SB_.PCI0.ISA0.SPR0.UNDK()
                    }
                    If(And(Local0, 0x4000, )) {
                        Acquire(\_SB_.PCI0.ISA0.EC0_.MUT3, 0xffff)
                        \_SB_.PCI0.ISA0.EC0_.MBAY()
                        Release(\_SB_.PCI0.ISA0.EC0_.MUT3)
                        Acquire(\_SB_.PCI0.ISA0.EC0_.MUT2, 0xffff)
                        \_SB_.PCI0.ISA0.EC0_.SWAP()
                        Release(\_SB_.PCI0.ISA0.EC0_.MUT2)
                    }
                }
                Method(_Q8D) {
                    \_SB_.PCI0.ISA0.SPR0.DOCK()
                }
                Name(FDD_, 0x0)
                Name(SHDD, 0x0)
                Name(BIDE, 0x0)
                Mutex(MUT3, 0)
                Method(MBAY) {
                    If(ECOK()) {
                        Store(\_SB_.PCI0.ISA0.EC0_.DV2S, Local0)
                    }
                    Else {
                        Or(And(\_SB_.PCI0.ISA0.BDST, 0x2, ), And(\_SB_.PCI0.ISA0.BDST, 0x4, ), Local0)
                    }
                    If(Local0) {
                        Store(0x7, \_SB_.PCI0.ISA0.IDEI)
                        If(LEqual(\_SB_.PCI0.ISA0.IDEI, 0x7)) {
                            Store(0x1, \_SB_.PCI0.ISA0.EC0_.FDD_)
                            Store(0x0, \_SB_.PCI0.ISA0.EC0_.SHDD)
                            Store(0x0, \_SB_.PCI0.ISA0.EC0_.BIDE)
                        }
                        Else {
                            Store(0x0, \_SB_.PCI0.ISA0.EC0_.FDD_)
                            Store(0x1, \_SB_.PCI0.ISA0.EC0_.SHDD)
                            ShiftLeft(\_SB_.PCI0.ISA0.IDEI, 0x3, \_SB_.PCI0.ISA0.EC0_.BIDE)
                        }
                    }
                    Else {
                        Store(0x0, \_SB_.PCI0.ISA0.EC0_.FDD_)
                        Store(0x0, \_SB_.PCI0.ISA0.EC0_.SHDD)
                        Store(0x0, \_SB_.PCI0.ISA0.EC0_.BIDE)
                    }
                }
                Name(PQ8A, 0x0)
                Mutex(MUT2, 0)
                Method(SWAP) {
                    If(LEqual(\_SB_.PCI0.OSNT, 0x1)) {
                        Store(\_SB_.PCI0.IDE_.BAYD, Local0)
                        If(LNot(\_SB_.PCI0.ISA0.EC0_.SHDD)) {
                            If(And(Local0, 0x4, )) {
                                If(LNot(\_SB_.PCI0.IDE_._PSC)) {
                                    If(And(LEqual(\_SB_.PCI0.IDE_.TSEC, 0x8000), \_SB_.PCI0.IDE_.SECN.MAST.STOP, )) {
                                        Notify(\_SB_.PCI0.IDE_.SECN.MAST, 0x1)
                                        Store(0x0, \_SB_.PCI0.IDE_.SECN.MAST.STOP)
                                    }
                                    Else {
                                        Store(0x1, \_SB_.PCI0.IDE_.TRIS)
                                        Store(0x1, \_SB_.PCI0.ISA0.SDPW)
                                        Store(0x0, \_SB_.PCI0.ISA0.GO28)
                                        Store(0x8000, \_SB_.PCI0.IDE_.TSEC)
                                        Notify(\_SB_.PCI0.IDE_.SECN, 0x1)
                                    }
                                    And(\_SB_.PCI0.IDE_.BAYD, Not(0x4, ), \_SB_.PCI0.IDE_.BAYD)
                                    And(\_SB_.PCI0.IDE_.BAYD, Not(0x38, ), \_SB_.PCI0.IDE_.BAYD)
                                }
                                Else {
                                    Or(PQ8A, 0x2, PQ8A)
                                }
                            }
                        }
                        If(LNot(\_SB_.PCI0.ISA0.EC0_.FDD_)) {
                            If(And(Local0, 0x2, )) {
                                If(LNot(\_SB_.PCI0.ISA0.SIO_.FDC_._PSC)) {
                                    Store(0x1, \_SB_.PCI0.IDE_.TRIS)
                                    Store(0x1, \_SB_.PCI0.ISA0.SDPW)
                                    Store(0x0, \_SB_.PCI0.ISA0.GO28)
                                    \_SB_.PCI0.ISA0.SIO_.FDC_.IFDD._PS3()
                                    Notify(\_SB_.PCI0.ISA0.SIO_.FDC_, 0x1)
                                    And(\_SB_.PCI0.ISA0.SIO_.FDC_.STOP, Not(0x1, ), \_SB_.PCI0.ISA0.SIO_.FDC_.STOP)
                                    And(\_SB_.PCI0.IDE_.BAYD, Not(0x2, ), \_SB_.PCI0.IDE_.BAYD)
                                }
                                Else {
                                    Or(PQ8A, 0x1, PQ8A)
                                }
                            }
                        }
                        If(\_SB_.PCI0.ISA0.EC0_.SHDD) {
                            If(LNot(And(Local0, 0x4, ))) {
                                If(LNot(\_SB_.PCI0.IDE_._PSC)) {
                                    If(LNot(And(\_SB_.PCI0.IDE_.BAYD, 0x2, ))) {
                                        Store(0x1, \_SB_.PCI0.IDE_.TRIS)
                                        Store(0x0, \_SB_.PCI0.ISA0.SDPW)
                                        Store(0x1, \_SB_.PCI0.ISA0.GO28)
                                        Store(0x0, \_SB_.PCI0.ISA0.SRST)
                                        Sleep(0x64)
                                        Store(0x1, \_SB_.PCI0.ISA0.SRST)
                                        Sleep(0xc8)
                                        Store(0x0, \_SB_.PCI0.IDE_.TRIS)
                                        Store(0xc057, \_SB_.PCI0.IDE_.TSEC)
                                        Store(0x0, \_SB_.PCI0.IDE_.SECN.MAST.STOP)
                                        Notify(\_SB_.PCI0.IDE_.SECN, 0x1)
                                        Or(\_SB_.PCI0.IDE_.BAYD, 0x4, \_SB_.PCI0.IDE_.BAYD)
                                        Or(\_SB_.PCI0.IDE_.BAYD, \_SB_.PCI0.ISA0.EC0_.BIDE, \_SB_.PCI0.IDE_.BAYD)
                                    }
                                }
                                Else {
                                    Or(PQ8A, 0x2, PQ8A)
                                }
                            }
                            Else {
                                If(LNot(LEqual(And(Local0, 0x38, ), BIDE))) {
                                    If(LNot(\_SB_.PCI0.IDE_._PSC)) {
                                        If(LOr(LNot(LEqual(\_SB_.PCI0.IDE_.TSEC, 0x8000)), LNot(\_SB_.PCI0.IDE_.SECN.MAST.STOP))) {
                                            Store(0x1, \_SB_.PCI0.IDE_.TRIS)
                                            Store(0x1, \_SB_.PCI0.ISA0.SDPW)
                                            Store(0x0, \_SB_.PCI0.ISA0.GO28)
                                            Store(0x8000, \_SB_.PCI0.IDE_.TSEC)
                                            Store(0x0, SHDD)
                                            Notify(\_SB_.PCI0.IDE_.SECN.MAST, 0x1)
                                            And(\_SB_.PCI0.IDE_.BAYD, Not(0x4, ), \_SB_.PCI0.IDE_.BAYD)
                                            And(\_SB_.PCI0.IDE_.BAYD, Not(0x38, ), \_SB_.PCI0.IDE_.BAYD)
                                            Store(0xfa, HPCB)
                                            Store(0x1, ENCB)
                                            Or(PQ8A, 0x4, PQ8A)
                                        }
                                        Else {
                                            Store(0x1, \_SB_.PCI0.IDE_.TRIS)
                                            Store(0x0, \_SB_.PCI0.ISA0.SDPW)
                                            Store(0x1, \_SB_.PCI0.ISA0.GO28)
                                            Store(0x0, \_SB_.PCI0.ISA0.SRST)
                                            Sleep(0x64)
                                            Store(0x1, \_SB_.PCI0.ISA0.SRST)
                                            Sleep(0xc8)
                                            Store(0x0, \_SB_.PCI0.IDE_.TRIS)
                                            Store(0xc057, \_SB_.PCI0.IDE_.TSEC)
                                            Store(0x0, \_SB_.PCI0.IDE_.SECN.MAST.STOP)
                                            Notify(\_SB_.PCI0.IDE_.SECN, 0x1)
                                            And(\_SB_.PCI0.IDE_.BAYD, Not(0x38, ), \_SB_.PCI0.IDE_.BAYD)
                                            Or(\_SB_.PCI0.IDE_.BAYD, \_SB_.PCI0.ISA0.EC0_.BIDE, \_SB_.PCI0.IDE_.BAYD)
                                        }
                                    }
                                    Else {
                                        Or(PQ8A, 0x2, PQ8A)
                                    }
                                }
                            }
                        }
                        If(\_SB_.PCI0.ISA0.EC0_.FDD_) {
                            If(LNot(And(Local0, 0x2, ))) {
                                If(LNot(\_SB_.PCI0.ISA0.SIO_.FDC_._PSC)) {
                                    If(LNot(And(\_SB_.PCI0.IDE_.BAYD, 0x4, ))) {
                                        If(LNot(\_SB_.PCI0.ISA0.EC0_.EXFD)) {
                                            \_SB_.PCI0.ISA0.SIO_.FDC_.IFDD._PS0()
                                            Store(0x1, \_SB_.PCI0.IDE_.TRIS)
                                            Store(0x0, \_SB_.PCI0.ISA0.SDPW)
                                            Store(0x1, \_SB_.PCI0.ISA0.GO28)
                                            Store(0x0, \_SB_.PCI0.IDE_.TRIS)
                                            Notify(\_SB_.PCI0.ISA0.SIO_.FDC_, 0x1)
                                        }
                                        Or(\_SB_.PCI0.IDE_.BAYD, 0x2, \_SB_.PCI0.IDE_.BAYD)
                                    }
                                }
                                Else {
                                    Or(PQ8A, 0x1, PQ8A)
                                }
                            }
                        }
                        If(\_SB_.PCI0.ISA0.EC0_.EXFD) {
                            If(LNot(And(Local0, 0x1, ))) {
                                If(LNot(\_SB_.PCI0.ISA0.SIO_.FDC_._PSC)) {
                                    HPSS(0x4, 0x0)
                                    \_SB_.PCI0.ISA0.SIO_.FDC_.EFDD._PS0()
                                    Notify(\_SB_.PCI0.ISA0.SIO_, 0x1)
                                    Or(\_SB_.PCI0.IDE_.BAYD, 0x1, \_SB_.PCI0.IDE_.BAYD)
                                }
                                Else {
                                    Or(PQ8A, 0x1, PQ8A)
                                }
                            }
                        }
                        If(LNot(\_SB_.PCI0.ISA0.EC0_.EXFD)) {
                            If(And(Local0, 0x1, )) {
                                If(LNot(\_SB_.PCI0.ISA0.SIO_.FDC_._PSC)) {
                                    HPSS(0x5, 0x0)
                                    \_SB_.PCI0.ISA0.SIO_.FDC_.EFDD._PS3()
                                    And(\_SB_.PCI0.IDE_.BAYD, Not(0x1, ), \_SB_.PCI0.IDE_.BAYD)
                                    And(\_SB_.PCI0.ISA0.SIO_.FDC_.STOP, Not(0x2, ), \_SB_.PCI0.ISA0.SIO_.FDC_.STOP)
                                    If(And(Local0, 0x2, )) {
                                        If(LNot(And(\_SB_.PCI0.ISA0.SIO_.FDC_.STOP, 0x1, ))) {
                                            \_SB_.PCI0.ISA0.SIO_.FDC_.IFDD._PS0()
                                            Store(0x1, \_SB_.PCI0.IDE_.TRIS)
                                            Store(0x0, \_SB_.PCI0.ISA0.SDPW)
                                            Store(0x1, \_SB_.PCI0.ISA0.GO28)
                                            Store(0x0, \_SB_.PCI0.IDE_.TRIS)
                                        }
                                    }
                                    Notify(\_SB_.PCI0.ISA0.SIO_, 0x0)
                                }
                                Else {
                                    Or(PQ8A, 0x1, PQ8A)
                                }
                            }
                        }
                    }
                }
            }
            Device(ACAD) {
                Name(_HID, "ACPI0003")
                Name(_PCL, Package(0x1) {
                    \_SB_,
                })
                Name(ACP_, Ones)
                Method(_PSR) {
                    Acquire(\_SB_.PCI0.ISA0.EC0_.MUT1, 0xffff)
                    Store("CMBatt - _PSR", Debug)
                    \_SB_.PCI0.ISA0.EC0_.CPOL()
                    Store(ACP_, Local0)
                    If(Local0) {
                        Store(0x1, Local1)
                    }
                    Else {
                        Store(0x0, Local1)
                    }
                    Release(\_SB_.PCI0.ISA0.EC0_.MUT1)
                    Return(Local1)
                }
                Method(CHAC, 1) {
                    Store(LGreater(And(Arg0, 0xf0, ), 0x80), Local0)
                    If(LNot(LEqual(Local0, ACP_))) {
                        Store(Local0, ACP_)
                        Return(Ones)
                    }
                    Else {
                        Return(Zero)
                    }
                }
            }
            Device(BAT1) {
                Name(_HID, 0x0a0cd041)
                Name(_UID, 0x1)
                Name(_PCL, Package(0x1) {
                    \_SB_,
                })
                Name(PBIF, Package(0xd) {
                    0x1,
                    0x0b40,
                    0x0b40,
                    0x1,
                    0x39d0,
                    0x012c,
                    0xc8,
                    0x20,
                    0x20,
                    "BAT1",
                    " ",
                    " ",
                    " ",
                })
                Name(PBST, Package(0x4) {
                    0x0,
                    0xffffffff,
                    0xffffffff,
                    0x2710,
                })
                Name(UBIF, 0x01e9)
                Name(BP__, 0x0)
                Name(REPT, 0x0)
                Name(ERRC, 0x0)
                Method(_STA) {
                    Acquire(\_SB_.PCI0.ISA0.EC0_.MUT1, 0xffff)
                    Store("CMBatt - _STA.BAT1", Debug)
                    \_SB_.PCI0.ISA0.EC0_.CPOL()
                    If(BP__) {
                        Store(0x1f, Local1)
                    }
                    Else {
                        Store(0xf, Local1)
                    }
                    Release(\_SB_.PCI0.ISA0.EC0_.MUT1)
                    Return(Local1)
                }
                Method(_BIF) {
                    Acquire(\_SB_.PCI0.ISA0.EC0_.MUT1, 0xffff)
                    Store("CMBatt - _BIF.BAT1", Debug)
                    \_SB_.PCI0.ISA0.EC0_.CPOL()
                    Release(\_SB_.PCI0.ISA0.EC0_.MUT1)
                    Return(PBIF)
                }
                Method(_BST) {
                    Acquire(\_SB_.PCI0.ISA0.EC0_.MUT1, 0xffff)
                    Store("CMBatt - _BST.BAT1", Debug)
                    \_SB_.PCI0.ISA0.EC0_.CPOL()
                    Release(\_SB_.PCI0.ISA0.EC0_.MUT1)
                    Return(PBST)
                }
                Method(B1CK) {
                    Store("CMBatt - Notify(BAT1,0x81): B1CK", Debug)
                    Notify(\_SB_.PCI0.ISA0.BAT1, 0x81)
                }
                Method(B1ST) {
                    Store("CMBatt - Notify(BAT1,0x80): B1ST", Debug)
                    Notify(\_SB_.PCI0.ISA0.BAT1, 0x80)
                }
                Method(B1IF) {
                    Store("CMBatt - Notify(BAT1,0x81): B1IF", Debug)
                    Notify(\_SB_.PCI0.ISA0.BAT1, 0x81)
                }
                Method(UPBI) {
                    Store("CMBatt - UPBI.BAT1", Debug)
                    Store(Zero, Local0)
                    If(LNot(ECOK())) {
                        Return(Local0)
                    }
                    Store(0xc, Local1)
                    Store(Buffer(0xd) {0x0, 0x18, 0x10, 0x0, 0x19, 0x0, 0x0, 0x0, 0x0, 0x21, 0x0, 0x22, 0x20 }, Local2)
                    While(LGreater(Local1, 0x8)) {
                        If(LNot(And(UBIF, VTOB(Local1), ))) {
                            GBFE(Local2, Local1, RefOf(Local3))
                            If(Local3) {
                                If(LNot(\_SB_.PCI0.ISA0.EC0_.SMRD(0xb, 0x16, Local3, RefOf(Local4)))) {
                                    Store(\_SB_.PCI0.ISA0.EC0_.BCNT, Local5)
                                    Store(Zero, Local3)
                                    Store(Zero, ERRC)
                                    While(LGreater(Local5, Local3)) {
                                        GBFE(Local4, Local3, RefOf(Local6))
                                        Increment(Local3)
                                        If(And(Local6, 0x80, )) {
                                            Increment(ERRC)
                                        }
                                    }
                                    If(LEqual(ERRC, 0x0)) {
                                        Store(Local4, Index(PBIF, Local1, ))
                                        Or(UBIF, VTOB(Local1), UBIF)
                                        Store(Ones, Local0)
                                    }
                                }
                            }
                        }
                        Decrement(Local1)
                    }
                    While(LGreater(Local1, 0x0)) {
                        If(LNot(And(UBIF, VTOB(Local1), ))) {
                            GBFE(Local2, Local1, RefOf(Local3))
                            If(Local3) {
                                If(LNot(\_SB_.PCI0.ISA0.EC0_.SMRD(0x9, 0x16, Local3, RefOf(Local5)))) {
                                    If(LAnd(Local5, LNot(And(Local5, 0x8000, )))) {
                                        If(LEqual(Local1, 0x2)) {
                                            ShiftRight(Local5, 0x5, Local5)
                                            ShiftLeft(Local5, 0x5, Local5)
                                        }
                                        Store(Local5, Index(PBIF, Local1, ))
                                        Or(UBIF, VTOB(Local1), UBIF)
                                        Store(Ones, Local0)
                                    }
                                }
                            }
                        }
                        Decrement(Local1)
                    }
                    Store(0xa, Local1)
                    If(LNot(And(UBIF, VTOB(Local1), ))) {
                        If(LNot(\_SB_.PCI0.ISA0.EC0_.SMRD(0x9, 0x16, 0x1c, RefOf(Local5)))) {
                            Store(ITOS(ToBCD(Local5, )), Index(PBIF, Local1, ))
                            Or(UBIF, VTOB(Local1), UBIF)
                            Store(Ones, Local0)
                        }
                    }
                    Store(PBIF, Debug)
                    Return(Local0)
                }
                Method(UPBS) {
                    Store("CMBatt - UPBS.BAT1", Debug)
                    Store(Zero, Local0)
                    If(LNot(ECOK())) {
                        Return(Local0)
                    }
                    Store(\_SB_.PCI0.ISA0.EC0_.BT1S, Local5)
                    Store(Local5, Local1)
                    And(Local5, 0x7, Local5)
                    If(LNot(LEqual(Local5, DerefOf(Index(PBST, 0x0, ))))) {
                        Store("CMBatt - BAT1 STATE CHANGE", Debug)
                        Store(Local1, Debug)
                        Store(Local5, Index(PBST, 0x0, ))
                        Store(Ones, Local0)
                    }
                    Store(\_SB_.PCI0.ISA0.EC0_.BT1C, Local5)
                    If(LNot(And(Local5, 0x8000, ))) {
                        ShiftRight(Local5, 0x5, Local5)
                        ShiftLeft(Local5, 0x5, Local5)
                        If(LNot(LEqual(Local5, DerefOf(Index(PBST, 0x2, ))))) {
                            Store(Local5, Index(PBST, 0x2, ))
                            Store(Ones, Local0)
                        }
                    }
                    Store(\_SB_.PCI0.ISA0.EC0_.BT1V, Local5)
                    If(LNot(And(Local5, 0x8000, ))) {
                        ShiftRight(Local5, 0x5, Local5)
                        ShiftLeft(Local5, 0x5, Local5)
                        If(LNot(LEqual(Local5, DerefOf(Index(PBST, 0x3, ))))) {
                            Store(Local5, Index(PBST, 0x3, ))
                            Store(Ones, Local0)
                        }
                    }
                    Store(\_SB_.PCI0.ISA0.EC0_.BT1I, Local5)
                    If(And(Local1, 0x1, )) {
                        Store(\_SB_.PCI0.ISA0.EC0_.BT1V, Local2)
                        If(LEqual(Local2, Zero)) {
                            Store(0x39d0, Local2)
                        }
                        Divide(0x01036640, Local2, , Local3)
                        If(And(Local5, 0x8000, )) {
                            Or(Local5, 0xffff0000, Local5)
                            Add(Not(Local5, ), 0x1, Local5)
                            If(LGreater(Local3, Local5)) {
                                Store(Local3, Local5)
                            }
                        }
                        Else {
                            Store(Local3, Local5)
                        }
                    }
                    If(And(Local1, 0x2, )) {
                        If(And(Local5, 0x8000, )) {
                            Store(0x0, Local5)
                        }
                        If(LGreater(0x64, Local5)) {
                            Store(0x64, Local5)
                        }
                    }
                    If(LEqual(And(Local1, 0x3, ), 0x0)) {
                        Store(0x0, Local5)
                    }
                    ShiftRight(Local5, 0x5, Local5)
                    ShiftLeft(Local5, 0x5, Local5)
                    If(LNot(LEqual(Local5, DerefOf(Index(PBST, 0x1, ))))) {
                        Store(Local5, Index(PBST, 0x1, ))
                        Store(Ones, Local0)
                    }
                    If(Local0) {
                        Store("CMBATT - PBST Changed", Debug)
                    }
                    Store(PBST, Debug)
                    Return(Local0)
                }
                Method(IVBI) {
                    Store(0x01e9, UBIF)
                    Store(0x0b40, Index(PBIF, 0x1, ))
                    Store(0x0b40, Index(PBIF, 0x2, ))
                    Store(0x39d0, Index(PBIF, 0x4, ))
                    Store("Bad", Index(PBIF, 0x9, ))
                    Store("Bad", Index(PBIF, 0xa, ))
                    Store("Bad", Index(PBIF, 0xb, ))
                    Store("Bad", Index(PBIF, 0xc, ))
                }
                Method(IVBS) {
                    Store(0x0, Index(PBST, 0x0, ))
                    Store(0xffffffff, Index(PBST, 0x1, ))
                    Store(0xffffffff, Index(PBST, 0x2, ))
                    Store(0x39d0, Index(PBST, 0x3, ))
                }
                Method(CHBP, 1) {
                    Store("CMBatt - CHBP.BAT1", Debug)
                    Store(Zero, Local0)
                    If(LNot(ECOK())) {
                        Return(Local0)
                    }
                    Store(VTOB(Subtract(_UID, 0x1, )), Local1)
                    Or(ShiftLeft(Local1, 0xc, ), 0x0fff, Local2)
                    Store(Zero, Local3)
                    If(And(Arg0, Local1, )) {
                        If(BP__) {
                            Store("CMBatt - BAT1 still present", Debug)
                            \_SB_.PCI0.ISA0.EC0_.SMWR(0x8, 0x14, 0x1, Local2)
                            \_SB_.PCI0.ISA0.EC0_.SMRD(0x9, 0x14, 0x1, RefOf(Local3))
                            If(LEqual(Local2, Or(Local3, 0x0fff, ))) {
                                If(UPBI()) {
                                    Or(0x1, Local0, Local0)
                                }
                                If(UPBS()) {
                                    Or(0x2, Local0, Local0)
                                }
                            }
                        }
                        Else {
                            Store("CMBatt - BAT1 connected", Debug)
                            \_SB_.PCI0.ISA0.EC0_.SMWR(0x8, 0x14, 0x1, Local2)
                            \_SB_.PCI0.ISA0.EC0_.SMRD(0x9, 0x14, 0x1, RefOf(Local3))
                            If(LEqual(Local2, Or(Local3, 0x0fff, ))) {
                                UPBI()
                                UPBS()
                            }
                            Store(0x1, BP__)
                            Or(0x5, Local0, Local0)
                        }
                    }
                    Else {
                        If(BP__) {
                            Store("CMBatt - BAT1 disconnected", Debug)
                            Store(0x0, BP__)
                            IVBI()
                            IVBS()
                            Or(0x4, Local0, Local0)
                        }
                    }
                    If(LAnd(And(Arg0, Local1, ), LNot(LEqual(UBIF, 0x1fff)))) {
                        Store(0x1, REPT)
                    }
                    Else {
                        Store(0x0, REPT)
                    }
                    Return(Local0)
                }
            }
            Device(BAT2) {
                Name(_HID, 0x0a0cd041)
                Name(_UID, 0x2)
                Name(_PCL, Package(0x1) {
                    \_SB_,
                })
                Name(PBIF, Package(0xd) {
                    0x1,
                    0x0b40,
                    0x0b40,
                    0x1,
                    0x39d0,
                    0x012c,
                    0xc8,
                    0x20,
                    0x20,
                    "BAT2",
                    " ",
                    " ",
                    " ",
                })
                Name(PBST, Package(0x4) {
                    0x0,
                    0xffffffff,
                    0xffffffff,
                    0x2710,
                })
                Name(UBIF, 0x01e9)
                Name(BP__, 0x0)
                Name(REPT, 0x0)
                Name(ERRC, 0x0)
                Method(_STA) {
                    Acquire(\_SB_.PCI0.ISA0.EC0_.MUT1, 0xffff)
                    Store("CMBatt - _STA.BAT2", Debug)
                    \_SB_.PCI0.ISA0.EC0_.CPOL()
                    If(BP__) {
                        Store(0x1f, Local1)
                    }
                    Else {
                        Store(0xf, Local1)
                    }
                    Release(\_SB_.PCI0.ISA0.EC0_.MUT1)
                    Return(Local1)
                }
                Method(_BIF) {
                    Acquire(\_SB_.PCI0.ISA0.EC0_.MUT1, 0xffff)
                    Store("CMBatt - _BIF.BAT2", Debug)
                    \_SB_.PCI0.ISA0.EC0_.CPOL()
                    Release(\_SB_.PCI0.ISA0.EC0_.MUT1)
                    Return(PBIF)
                }
                Method(_BST) {
                    Acquire(\_SB_.PCI0.ISA0.EC0_.MUT1, 0xffff)
                    Store("CMBatt - _BST.BAT2", Debug)
                    \_SB_.PCI0.ISA0.EC0_.CPOL()
                    Release(\_SB_.PCI0.ISA0.EC0_.MUT1)
                    Return(PBST)
                }
                Method(B2CK) {
                    Store("CMBatt - Notify(BAT2,0x81): B1CK", Debug)
                    Notify(\_SB_.PCI0.ISA0.BAT2, 0x81)
                }
                Method(B2ST) {
                    Store("CMBatt - Notify(BAT2,0x80): B1ST", Debug)
                    Notify(\_SB_.PCI0.ISA0.BAT2, 0x80)
                }
                Method(B2IF) {
                    Store("CMBatt - Notify(BAT2,0x81): B2IF", Debug)
                    Notify(\_SB_.PCI0.ISA0.BAT2, 0x81)
                }
                Method(UPBI) {
                    Store("CMBatt - UPBI.BAT2", Debug)
                    Store(Zero, Local0)
                    If(LNot(ECOK())) {
                        Return(Local0)
                    }
                    Store(0xc, Local1)
                    Store(Buffer(0xd) {0x0, 0x18, 0x10, 0x0, 0x19, 0x0, 0x0, 0x0, 0x0, 0x21, 0x0, 0x22, 0x20 }, Local2)
                    While(LGreater(Local1, 0x8)) {
                        If(LNot(And(UBIF, VTOB(Local1), ))) {
                            GBFE(Local2, Local1, RefOf(Local3))
                            If(Local3) {
                                If(LNot(\_SB_.PCI0.ISA0.EC0_.SMRD(0xb, 0x16, Local3, RefOf(Local4)))) {
                                    Store(\_SB_.PCI0.ISA0.EC0_.BCNT, Local5)
                                    Store(Zero, Local3)
                                    Store(Zero, ERRC)
                                    While(LGreater(Local5, Local3)) {
                                        GBFE(Local4, Local3, RefOf(Local6))
                                        Increment(Local3)
                                        If(And(Local6, 0x80, )) {
                                            Increment(ERRC)
                                        }
                                    }
                                    If(LEqual(ERRC, 0x0)) {
                                        Store(Local4, Index(PBIF, Local1, ))
                                        Or(UBIF, VTOB(Local1), UBIF)
                                        Store(Ones, Local0)
                                    }
                                }
                            }
                        }
                        Decrement(Local1)
                    }
                    While(LGreater(Local1, 0x0)) {
                        If(LNot(And(UBIF, VTOB(Local1), ))) {
                            GBFE(Local2, Local1, RefOf(Local3))
                            If(Local3) {
                                If(LNot(\_SB_.PCI0.ISA0.EC0_.SMRD(0x9, 0x16, Local3, RefOf(Local5)))) {
                                    If(LAnd(Local5, LNot(And(Local5, 0x8000, )))) {
                                        If(LEqual(Local1, 0x2)) {
                                            ShiftRight(Local5, 0x5, Local5)
                                            ShiftLeft(Local5, 0x5, Local5)
                                        }
                                        Store(Local5, Index(PBIF, Local1, ))
                                        Or(UBIF, VTOB(Local1), UBIF)
                                        Store(Ones, Local0)
                                    }
                                }
                            }
                        }
                        Decrement(Local1)
                    }
                    Store(0xa, Local1)
                    If(LNot(And(UBIF, VTOB(Local1), ))) {
                        If(LNot(\_SB_.PCI0.ISA0.EC0_.SMRD(0x9, 0x16, 0x1c, RefOf(Local5)))) {
                            Store(ITOS(ToBCD(Local5, )), Index(PBIF, Local1, ))
                            Or(UBIF, VTOB(Local1), UBIF)
                            Store(Ones, Local0)
                        }
                    }
                    Store(PBIF, Debug)
                    Return(Local0)
                }
                Method(UPBS) {
                    Store("CMBatt - UPBS.BAT2", Debug)
                    Store(Zero, Local0)
                    If(LNot(ECOK())) {
                        Return(Local0)
                    }
                    Store(\_SB_.PCI0.ISA0.EC0_.BT2S, Local5)
                    Store(Local5, Local1)
                    And(Local5, 0x7, Local5)
                    If(LNot(LEqual(Local5, DerefOf(Index(PBST, 0x0, ))))) {
                        Store("CMBatt - BAT2 STATE CHANGE", Debug)
                        Store(Local1, Debug)
                        Store(Local5, Index(PBST, 0x0, ))
                        Store(Ones, Local0)
                    }
                    Store(\_SB_.PCI0.ISA0.EC0_.BT2C, Local5)
                    If(LNot(And(Local5, 0x8000, ))) {
                        ShiftRight(Local5, 0x5, Local5)
                        ShiftLeft(Local5, 0x5, Local5)
                        If(LNot(LEqual(Local5, DerefOf(Index(PBST, 0x2, ))))) {
                            Store(Local5, Index(PBST, 0x2, ))
                            Store(Ones, Local0)
                        }
                    }
                    Store(\_SB_.PCI0.ISA0.EC0_.BT2V, Local5)
                    If(LNot(And(Local5, 0x8000, ))) {
                        ShiftRight(Local5, 0x5, Local5)
                        ShiftLeft(Local5, 0x5, Local5)
                        If(LNot(LEqual(Local5, DerefOf(Index(PBST, 0x3, ))))) {
                            Store(Local5, Index(PBST, 0x3, ))
                            Store(Ones, Local0)
                        }
                    }
                    Store(\_SB_.PCI0.ISA0.EC0_.BT2I, Local5)
                    If(And(Local1, 0x1, )) {
                        Store(\_SB_.PCI0.ISA0.EC0_.BT2V, Local2)
                        If(LEqual(Local2, Zero)) {
                            Store(0x39d0, Local2)
                        }
                        Divide(0x01036640, Local2, , Local3)
                        If(And(Local5, 0x8000, )) {
                            Or(Local5, 0xffff0000, Local5)
                            Add(Not(Local5, ), 0x1, Local5)
                            If(LGreater(Local3, Local5)) {
                                Store(Local3, Local5)
                            }
                        }
                        Else {
                            Store(Local3, Local5)
                        }
                    }
                    If(And(Local1, 0x2, )) {
                        If(And(Local5, 0x8000, )) {
                            Store(0x0, Local5)
                        }
                        If(LGreater(0x64, Local5)) {
                            Store(0x64, Local5)
                        }
                    }
                    If(LEqual(And(Local1, 0x3, ), 0x0)) {
                        Store(0x0, Local5)
                    }
                    ShiftRight(Local5, 0x5, Local5)
                    ShiftLeft(Local5, 0x5, Local5)
                    If(LNot(LEqual(Local5, DerefOf(Index(PBST, 0x1, ))))) {
                        Store(Local5, Index(PBST, 0x1, ))
                        Store(Ones, Local0)
                    }
                    If(Local0) {
                        Store("CMBATT - PBST Changed", Debug)
                    }
                    Store(PBST, Debug)
                    Return(Local0)
                }
                Method(IVBI) {
                    Store(0x01e9, UBIF)
                    Store(0x0b40, Index(PBIF, 0x1, ))
                    Store(0x0b40, Index(PBIF, 0x2, ))
                    Store(0x39d0, Index(PBIF, 0x4, ))
                    Store("Bad", Index(PBIF, 0x9, ))
                    Store("Bad", Index(PBIF, 0xa, ))
                    Store("Bad", Index(PBIF, 0xb, ))
                    Store("Bad", Index(PBIF, 0xc, ))
                }
                Method(IVBS) {
                    Store(0x0, Index(PBST, 0x0, ))
                    Store(0xffffffff, Index(PBST, 0x1, ))
                    Store(0xffffffff, Index(PBST, 0x2, ))
                    Store(0x39d0, Index(PBST, 0x3, ))
                }
                Method(CHBP, 1) {
                    Store("CMBatt - CHBP.BAT2", Debug)
                    Store(Zero, Local0)
                    If(LNot(ECOK())) {
                        Return(Local0)
                    }
                    Store(VTOB(Subtract(_UID, 0x1, )), Local1)
                    Or(ShiftLeft(Local1, 0xc, ), 0x0fff, Local2)
                    Store(Zero, Local3)
                    If(And(Arg0, Local1, )) {
                        If(BP__) {
                            Store("CMBatt - BAT2 still present", Debug)
                            \_SB_.PCI0.ISA0.EC0_.SMWR(0x8, 0x14, 0x1, Local2)
                            \_SB_.PCI0.ISA0.EC0_.SMRD(0x9, 0x14, 0x1, RefOf(Local3))
                            If(LEqual(Local2, Or(Local3, 0x0fff, ))) {
                                If(UPBI()) {
                                    Or(0x1, Local0, Local0)
                                }
                                If(UPBS()) {
                                    Or(0x2, Local0, Local0)
                                }
                            }
                        }
                        Else {
                            Store("CMBatt - BAT2 connected", Debug)
                            \_SB_.PCI0.ISA0.EC0_.SMWR(0x8, 0x14, 0x1, Local2)
                            \_SB_.PCI0.ISA0.EC0_.SMRD(0x9, 0x14, 0x1, RefOf(Local3))
                            If(LEqual(Local2, Or(Local3, 0x0fff, ))) {
                                UPBI()
                                UPBS()
                            }
                            Store(0x1, BP__)
                            Or(0x5, Local0, Local0)
                        }
                    }
                    Else {
                        If(BP__) {
                            Store("CMBatt - BAT2 disconnected", Debug)
                            Store(0x0, BP__)
                            IVBI()
                            IVBS()
                            Or(0x4, Local0, Local0)
                        }
                    }
                    If(LAnd(And(Arg0, Local1, ), LNot(LEqual(UBIF, 0x1fff)))) {
                        Store(0x1, REPT)
                    }
                    Else {
                        Store(0x0, REPT)
                    }
                    Return(Local0)
                }
            }
            Device(SPR0) {
                Method(_HID) {
                    If(\_SB_.PCI0.OSNT) {
                        Return(0x150cd041)
                    }
                    Else {
                        Return(0x050ad041)
                    }
                }
                Method(_UID) {
                    If(LNot(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x0))) {
                        Return(\_SB_.PCI0.ISA0.DKSN)
                    }
                    Else {
                        Return(Ones)
                    }
                }
                Method(_BDN) {
                    If(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x1)) {
                        Return(0x8022f022)
                    }
                    If(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x2)) {
                        Return(0x8122f022)
                    }
                    If(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x3)) {
                        Return(0x8222f022)
                    }
                    Return(Ones)
                }
                Event(EJVT)
                Method(_INI) {
                    If(LNot(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x0))) {
                        Store(0x0, _PSC)
                    }
                    Else {
                        Store(0x3, _PSC)
                    }
                }
                Name(_PSC, 0x3)
                Method(_PS0) {
                    Store(0x0, _PSC)
                }
                Method(_PS3) {
                    Store(0x3, _PSC)
                }
                Method(_EJ0, 1) {
                    Store(0x0, \_SB_.PCI0.ISA0.EC0_.DCWT)
                    If(And(DCKF, 0x4, )) {
                        And(DCKF, Not(0x4, ), DCKF)
                        Store(0x0, \_SB_.PCI0.ISA0.EC0_.DPWR)
                        And(DCKF, Not(0x2, ), DCKF)
                        Store(0x0, \_SB_.PCI0.ISA0.DKTP)
                        \_SB_.PCI0.AGP_.VGA_.DRUL(0x4)
                        HPSS(0x0, 0x0)
                        Return(0x0)
                    }
                    Store(0x1, \_SB_.PCI0.ISA0.EC0_.UDR0)
                    Or(DCKF, 0x2, DCKF)
                    Reset(EJVT)
                    Wait(EJVT, 0xffff)
                    Store(0x0, \_SB_.PCI0.ISA0.EC0_.DPWR)
                    \_SB_.PCI0.AGP_.VGA_.DRUL(0x4)
                }
                Name(EJX_, 0x0)
                Method(_EJ4, 1) {
                    Store(0x4, EJX_)
                    Store(0x1, \_SB_.PCI0.ISA0.EC0_.UDR5)
                }
                Method(_DCK, 1) {
                    If(Arg0) {
                        Store(0x1, \_SB_.PCI0.ISA0.EC0_.DPWR)
                        And(DCKF, Not(0x2, ), DCKF)
                        If(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x1)) {
                            Store(0x0, \_SB_.PCI0.ISA0.EC0_.DCWT)
                            Store(0x1, \_SB_.PCI0.ISA0.EC0_.LDDS)
                            Store(0x1, Local1)
                        }
                        Else {
                            Store(\_SB_.PCI0.HUB_.EPR_.ENQB(), Local1)
                            If(Local1) {
                                If(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x2)) {
                                    Notify(\_SB_.PCI0.HUB_.EPR_, 0x0)
                                }
                                Else {
                                    Notify(\_SB_.PCI0.HUB_.FDS_, 0x0)
                                }
                            }
                        }
                        If(LNot(\_SB_.PCI0.AGP_.VGA_.VRSM)) {
                            \_SB_.PCI0.AGP_.VGA_.DRUL(0x2)
                        }
                        Return(Local1)
                    }
                    Else {
                        Store(0x0, \_SB_.PCI0.ISA0.EC0_.EQBF)
                        Store(0x0, \_SB_.PCI0.ISA0.EC0_.LDDS)
                        Store(0x1, \_SB_.PCI0.ISA0.EC0_.DCWT)
                        Return(0x1)
                    }
                }
                Method(_STA) {
                    If(ECOK()) {
                        If(And(DCKF, 0x8, )) {
                            And(DCKF, Not(0x8, ), DCKF)
                            UNDK()
                            Return(0xb)
                        }
                        If(LNot(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x0))) {
                            Return(0xb)
                        }
                        Else {
                            Return(0x0)
                        }
                    }
                    Else {
                        If(LNot(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x0))) {
                            Return(0xb)
                        }
                        Else {
                            Return(0x0)
                        }
                    }
                }
                Method(RDSN) {
                    Name(CNT1, 0x0)
                    While(LNot(LGreater(CNT1, 0x3))) {
                        If(LNot(\_SB_.PCI0.ISA0.EC0_.SMRD(0x9, 0xac, 0x7, RefOf(Local0)))) {
                            Store(0xffff, CNT1)
                        }
                        Else {
                            Increment(CNT1)
                            Sleep(0x14)
                        }
                    }
                    Store(Zero, Local1)
                    Or(Local1, Local0, Local1)
                    Store(Zero, CNT1)
                    While(LNot(LGreater(CNT1, 0x3))) {
                        If(LNot(\_SB_.PCI0.ISA0.EC0_.SMRD(0x9, 0xac, 0x9, RefOf(Local0)))) {
                            Store(0xffff, CNT1)
                        }
                        Else {
                            Increment(CNT1)
                            Sleep(0x14)
                        }
                    }
                    Or(Local1, ShiftLeft(Local0, 0x10, ), Local1)
                    Store(Local1, \_SB_.PCI0.ISA0.DKSN)
                    If(And(\_SB_.PCI0.ISA0.MFLG, 0x8, )) {
                        Store(0xffffffff, \_SB_.PCI0.ISA0.DKSN)
                    }
                }
                Method(DOCK) {
                    Store(\_SB_.PCI0.ISA0.EC0_.DCID, \_SB_.PCI0.ISA0.DKTP)
                    Store(0x1, \_SB_.PCI0.ISA0.EC0_.DCWT)
                    Store(0x1, \_SB_.PCI0.ISA0.EC0_.DPWR)
                    If(And(DCKF, 0x2, )) {
                        And(DCKF, Not(0x2, ), DCKF)
                        Store(\_SB_.PCI0.ISA0.DKTP, Local1)
                        Store(0x0, \_SB_.PCI0.ISA0.DKTP)
                        Signal(\_SB_.PCI0.ISA0.SPR0.EJVT)
                        Sleep(0x1388)
                        Store(Local1, \_SB_.PCI0.ISA0.DKTP)
                        If(LAnd(And(\_SB_.PCI0.IDE_.BAYD, 0x1, ), \_SB_.PCI0.ISA0.EC0_.EXFD)) {
                            And(\_SB_.PCI0.IDE_.BAYD, Not(0x1, ), \_SB_.PCI0.IDE_.BAYD)
                            Acquire(\_SB_.PCI0.ISA0.EC0_.MUT2, 0xffff)
                            \_SB_.PCI0.ISA0.EC0_.SWAP()
                            Release(\_SB_.PCI0.ISA0.EC0_.MUT2)
                        }
                        Notify(\_SB_.PCI0.ISA0.SIO_, 0x0)
                        Notify(\_SB_.PCI0.ISA0.SPR0, 0x0)
                    }
                    Else {
                        RDSN()
                        If(XOr(And(\_SB_.PCI0.IDE_.BAYD, 0x1, ), \_SB_.PCI0.ISA0.EC0_.EXFD, )) {
                            Acquire(\_SB_.PCI0.ISA0.EC0_.MUT2, 0xffff)
                            \_SB_.PCI0.ISA0.EC0_.SWAP()
                            Release(\_SB_.PCI0.ISA0.EC0_.MUT2)
                        }
                        Notify(\_SB_.PCI0.ISA0.SIO_, 0x0)
                        Notify(\_SB_.PCI0.ISA0.SPR0, 0x0)
                        HPSS(0x0, 0x0)
                    }
                    Return(Zero)
                }
                Method(UNDK) {
                    Store(\_SB_.PCI0.ISA0.EC0_.DCID, Local1)
                    If(LAnd(\_SB_.PCI0.ISA0.HPCI.Z000, LNot(And(\_SB_.PCI0.ISA0.HPCI.Z000, 0x2, )))) {
                        Notify(\_SB_.PCI0.ISA0.HPCI, 0x85)
                    }
                    Else {
                        Notify(\_SB_.PCI0.ISA0.SPR0, 0x1)
                    }
                }
                Method(UDOK) {
                    If(And(DCKF, 0x2, )) {
                        And(DCKF, Not(0x2, ), DCKF)
                        Store(0x0, \_SB_.PCI0.ISA0.DKTP)
                        HPSS(0x0, 0x0)
                        Signal(\_SB_.PCI0.ISA0.SPR0.EJVT)
                        Name(CNT1, 0x0)
                        Name(NVRS, 0x0)
                        Name(CLSD, 0x0)
                        While(LNot(LGreater(CNT1, 0x3))) {
                            If(LNot(\_SB_.PCI0.ISA0.EC0_.SMRD(0x9, 0xb0, 0x80, RefOf(Local0)))) {
                                Store(And(Local0, 0x4, ), NVRS)
                                Store(And(Local0, 0x2, ), CLSD)
                                If(LOr(LAnd(LNot(NVRS), LNot(CLSD)), LAnd(CLSD, LNot(\_SB_.LID_.LPOL)))) {
                                    Notify(\_SB_.PCI0.ISA0.HPCI, 0x87)
                                }
                                Store(0xffff, CNT1)
                            }
                            Else {
                                Increment(CNT1)
                                Sleep(0x14)
                            }
                        }
                    }
                    Else {
                        If(And(DCKF, 0x10, )) {
                            Store(0x0, \_SB_.PCI0.ISA0.EC0_.DCWT)
                            And(DCKF, Not(0x10, ), DCKF)
                            Return(Zero)
                        }
                        Or(DCKF, 0x4, DCKF)
                        Notify(\_SB_.PCI0.ISA0.SPR0, 0x1)
                    }
                    If(XOr(And(\_SB_.PCI0.IDE_.BAYD, 0x1, ), \_SB_.PCI0.ISA0.EC0_.EXFD, )) {
                        Sleep(0x1388)
                        Store("Justin - call SWAP", Debug)
                        Acquire(\_SB_.PCI0.ISA0.EC0_.MUT2, 0xffff)
                        \_SB_.PCI0.ISA0.EC0_.SWAP()
                        Release(\_SB_.PCI0.ISA0.EC0_.MUT2)
                        Store("Justin- Delay completed", Debug)
                    }
                }
            }
            Device(HPCI) {
                Name(_HID, 0x09c2f022)
                Name(Z000, 0x0)
                Method(STAT, 1) {
                    Store(Arg0, Z000)
                }
                Method(_STA) {
                    If(\_SB_.PCI0.OSNT) {
                        Return(0xf)
                    }
                    Else {
                        Return(0x0)
                    }
                }
                Method(GKBL) {
                    Return(0x1b)
                }
                Method(GDCP) {
                    Return(0x000f000f)
                }
                Method(GDBT) {
                    Return(\_SB_.PCI0.ISA0.HPSS(0x8, 0x10))
                }
                Method(SDBT, 1) {
                    If(ECOK()) {
                        Store(\_SB_.PCI0.ISA0.HPSS(0x8, Or(0x20, And(Arg0, 0xf, ), )), Local0)
                        \_SB_.PCI0.ISA0.EC0_.CMC2(0xc4, Local0, 0x82)
                    }
                }
                Method(GADP) {
                    Return(\_SB_.PCI0.ISA0.HPSS(0xf, 0x0))
                }
                Method(SADP, 1) {
                    And(Arg0, 0x1, \_SB_.PCI0.AGP_.VGA_.LCD_._DGS)
                    ShiftRight(And(Arg0, 0x2, ), 0x1, \_SB_.PCI0.AGP_.VGA_.CRT_._DGS)
                    ShiftRight(And(Arg0, 0x4, ), 0x2, \_SB_.PCI0.AGP_.VGA_.TV__._DGS)
                    If(LEqual(\_SB_.PCI0.AGP_.VGA_.DISW, 0x0)) {
                        \_SB_.PCI0.AGP_.VGA_.DRUL(0x1)
                    }
                    Else {
                        If(LEqual(\_SB_.PCI0.AGP_.VGA_.DISW, 0x1)) {
                            HPSS(0x1, 0x0)
                        }
                    }
                }
                Method(TGAD) {
                    \_SB_.PCI0.ISA0.EC0_._Q03()
                }
                Method(GFPR) {
                    Acquire(\_SB_.PCI0.ISA0.PSMX, 0xffff)
                    Store(0x80, \_SB_.PCI0.ISA0.BCMD)
                    Store(0x14, \_SB_.PCI0.ISA0.DID_)
                    Store(Zero, \_SB_.PCI0.ISA0.SMIC)
                    Store(\_SB_.PCI0.ISA0.PNLR, Local0)
                    Release(\_SB_.PCI0.ISA0.PSMX)
                    Return(Local0)
                }
                Name(DDA0, Ones)
                Name(DDA1, Ones)
                Name(DDA2, Ones)
                Name(DDA3, Ones)
                Name(DDA4, Ones)
                Name(DDA5, Ones)
                Name(DDA6, Ones)
                Name(DDA7, Ones)
                Name(DDA8, Ones)
                Name(DDA9, Ones)
            }
        }
        Device(SMBS) {
            Name(_ADR, 0x001f0003)
            OperationRegion(SMB_, SystemIO, 0x1840, 0x20)
            Field(SMB_, ByteAcc, NoLock, Preserve) {
                HSTS,	8,
                Offset(0x2),
                CTLR,	8,
                CMDR,	8,
                ADDR,	8,
                DAT0,	8,
                DAT1,	8,
                Offset(0x10),
                LVTS,	8
            }
        }
        Device(USB1) {
            Name(_ADR, 0x001d0000)
            OperationRegion(USBO, PCI_Config, 0xc4, 0x4)
            Field(USBO, DWordAcc, NoLock, Preserve) {
                REN0,	1,
                REN1,	1
            }
            Method(_PS0) {
                Store(0x0, _PSC)
            }
            Method(_PS3) {
                Store(0x3, _PSC)
            }
            Name(_PSC, 0x0)
            Method(_STA) {
                Return(0xf)
            }
            Name(_S1D, 0x0)
            Name(_S3D, 0x3)
            Name(_PRW, Package(0x2) {
                0x3,
                0x3,
            })
            Method(_PSW, 1) {
                If(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x0)) {
                    Store(Arg0, \_SB_.PCI0.USB1.REN0)
                    Store(Arg0, \_SB_.PCI0.USB1.REN1)
                    If(ECOK()) {
                        Store(Arg0, \_SB_.PCI0.ISA0.EC0_.UPP2)
                        Store(Arg0, \_SB_.PCI0.ISA0.EC0_.UPP1)
                    }
                }
            }
            Device(RHUB) {
                Name(_ADR, 0x0)
                Name(_EJD, "_SB_.PCI0.ISA0.SPR0")
            }
        }
        Device(IDE_) {
            Name(_ADR, 0x001f0001)
            OperationRegion(RG24, PCI_Config, 0x24, 0x4)
            Field(RG24, DWordAcc, NoLock, Preserve) {
                EXBA,	32
            }
            OperationRegion(PCI_, PCI_Config, 0x40, 0x18)
            Field(PCI_, DWordAcc, NoLock, Preserve) {
                ITM0,	16,
                ITM1,	16,
                SIT0,	4,
                SIT1,	4,
                Offset(0x8),
                UDC0,	2,
                UDC1,	2,
                Offset(0xa),
                UDT0,	8,
                UDT1,	8,
                Offset(0x14),
                ICF0,	2,
                ICF1,	2,
                CB80,	4,
                ,	2,
                WPPE,	1,
                ,	1,
                FSCB,	4,
                TRIP,	2,
                TRIS,	2,
                FATS,	4
            }
            OperationRegion(RG42, PCI_Config, 0x42, 0x2)
            Field(RG42, DWordAcc, NoLock, Preserve) {
                TSEC,	16
            }
            OperationRegion(RG54, PCI_Config, 0x54, 0x4)
            Field(RG54, DWordAcc, NoLock, Preserve) {
                IDCR,	32
            }
            OperationRegion(DBG1, SystemIO, 0x80, 0x1)
            Field(DBG1, ByteAcc, NoLock, Preserve) {
                D80P,	8
            }
            Name(BAYD, 0x0)
            Method(_INI) {
                Store(0x3, \_SB_.PCI0.IDE_.SECN._PSC)
                Store(0x1, \_SB_.PCI0.IDE_.SECN.MAST.STOP)
                If(ECOK()) {
                    If(\_SB_.PCI0.ISA0.EC0_.SHDD) {
                        Store(0x0, \_SB_.PCI0.IDE_.SECN._PSC)
                        Store(0x0, \_SB_.PCI0.IDE_.SECN.MAST.STOP)
                    }
                }
                Else {
                    If(And(\_SB_.PCI0.ISA0.BDST, 0x4, )) {
                        Store(0x0, \_SB_.PCI0.IDE_.SECN._PSC)
                        Store(0x0, \_SB_.PCI0.IDE_.SECN.MAST.STOP)
                    }
                }
            }
            Method(_STA) {
                Return(0xf)
            }
            Method(STMS, 3) {
                Store(Buffer(0x18) { }, Local7)
                CreateDWordField(Local7, 0x0, ITM_)
                CreateDWordField(Local7, 0x4, SIT_)
                CreateDWordField(Local7, 0x8, UDC_)
                CreateDWordField(Local7, 0xc, UDT_)
                CreateDWordField(Local7, 0x10, ICF_)
                CreateDWordField(Local7, 0x14, A100)
                Store(0x1, WPPE)
                CreateDWordField(Arg0, 0x0, PIO0)
                CreateDWordField(Arg0, 0x4, DMA0)
                CreateDWordField(Arg0, 0x8, PIO1)
                CreateDWordField(Arg0, 0xc, DMA1)
                CreateDWordField(Arg0, 0x10, FLAG)
                Store(FLAG, Local4)
                Store(0x4000, Local0)
                Name(W49M, 0x0)
                Name(W53M, 0x0)
                Name(W62M, 0x0)
                Name(W64M, 0x0)
                Name(W88M, 0x0)
                If(LEqual(SizeOf(Arg1), 0x0200)) {
                    CreateDWordField(Arg1, 0x62, W49A)
                    CreateDWordField(Arg1, 0x6a, W53A)
                    CreateDWordField(Arg1, 0x7c, W62A)
                    CreateDWordField(Arg1, 0x80, W64A)
                    CreateDWordField(Arg1, 0xb0, W88A)
                    Store(W49A, W49M)
                    Store(W53A, W53M)
                    Store(W62A, W62M)
                    Store(W64A, W64M)
                    Store(W88A, W88M)
                    Or(Local0, 0x8004, Local0)
                }
                Else {
                    Store(0x0, W49M)
                    Store(0x0, W53M)
                    Store(0x0, W62M)
                    Store(0x0, W64M)
                    Store(0x0, W88M)
                }
                Store(0x0, A100)
                If(LAnd(And(0x38, W88M, ), And(0x1, Local4, ))) {
                    If(And(0x20, W88M, )) {
                        Store(0x8, DMA0)
                        Or(A100, 0x00100010, A100)
                    }
                    Else {
                        If(And(0x10, W88M, )) {
                            Store(0x1e, DMA0)
                            Or(A100, 0x10, A100)
                        }
                        Else {
                            Store(0x2d, DMA0)
                        }
                    }
                }
                Else {
                    If(And(0x7, W88M, )) {
                        Or(0x0100, A100, A100)
                        If(And(0x4, W88M, )) {
                            Store(0x3c, DMA0)
                        }
                        Else {
                            If(And(0x2, W88M, )) {
                                Store(0x5a, DMA0)
                            }
                            Else {
                                Store(0x78, DMA0)
                            }
                        }
                    }
                }
                If(LAnd(And(W49M, 0x0800, ), And(Local4, 0x2, ))) {
                    Or(Local0, 0x2, Local0)
                }
                If(LAnd(LLess(DMA0, PIO0), 0x1)) {
                    Or(Local0, 0x8, Local0)
                }
                If(LLess(PIO0, 0x0384)) {
                    Or(Local0, 0x1, Local0)
                }
                If(And(Local4, 0x1, )) {
                    Store(PIO0, Local1)
                }
                Else {
                    Store(DMA0, Local1)
                }
                If(LNot(LLess(Local1, 0xf0))) {
                    Or(Local0, 0x8, Local0)
                }
                Else {
                    If(And(W53M, 0x2, )) {
                        If(LAnd(And(W64M, 0x2, ), LNot(LGreater(Local1, 0x78)))) {
                            Or(Local0, 0x2301, Local0)
                        }
                        Else {
                            If(LAnd(And(W64M, 0x1, ), LNot(LGreater(Local1, 0xb4)))) {
                                Or(Local0, 0x2101, Local0)
                            }
                        }
                    }
                    Else {
                        Or(Local0, 0x1001, Local0)
                    }
                }
                Store(Local0, ITM_)
                Store(0x0, SIT_)
                Store(0x0, Local0)
                If(And(Local4, 0x1, )) {
                    Or(Local0, 0x1, Local0)
                }
                Store(Local0, UDC_)
                Store(0x0, Local0)
                If(And(Local4, 0x1, )) {
                    If(LLess(DMA0, 0x1e)) {
                        Or(A100, 0x1000, A100)
                        Or(Local0, 0x1, Local0)
                    }
                    Else {
                        If(LLess(DMA0, 0x3c)) {
                            Divide(DMA0, 0xf, , Local1)
                        }
                        Else {
                            Divide(DMA0, 0x1e, , Local1)
                        }
                        Subtract(0x4, Local1, Local0)
                    }
                }
                Store(Local0, UDT_)
                Store(0x0, Local0)
                If(LLess(DMA0, 0x3c)) {
                    Or(Local0, 0x1, Local0)
                }
                Store(Local0, ICF_)
                Return(Local7)
            }
            Method(H15P, 1) {
                Name(BUFF, Buffer(0x8) {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 })
                Store(Arg0, Local0)
                Store(BUFF, Local1)
                Concatenate(Local0, Local1, Local7)
                CreateWordField(Local7, 0x2, CYL_)
                CreateWordField(Local7, 0x6, HEAD)
                CreateWordField(Local7, 0xc, SPT_)
                If(LAnd(LNot(LLess(HEAD, 0x10)), LNot(LLess(CYL_, 0x2000)))) {
                    Return(SPT_)
                }
                Else {
                    Return(Zero)
                }
            }
            Method(GTF0, 7) {
                Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef }, Local7)
                CreateByteField(Local7, 0x1, MODE)
                If(And(Arg2, 0x1, )) {
                    If(And(Arg6, 0x1, )) {
                        Store(0x45, MODE)
                    }
                    Else {
                        And(Arg3, 0x3, Local0)
                        If(And(Arg4, 0x1, )) {
                            Add(Local0, 0x2, Local0)
                        }
                        Or(Local0, 0x40, MODE)
                    }
                }
                Else {
                    Add(ShiftRight(And(Arg0, 0x0300, ), 0x8, ), ShiftRight(And(Arg0, 0x3000, ), 0xc, ), Local0)
                    If(LNot(LLess(Local0, 0x5))) {
                        Store(0x22, MODE)
                    }
                    Else {
                        If(LNot(LLess(Local0, 0x3))) {
                            Store(0x21, MODE)
                        }
                        Else {
                            Store(0x20, MODE)
                        }
                    }
                }
                Concatenate(Local7, Local7, Local6)
                If(LOr(And(Arg0, 0x8, ), LNot(And(Arg0, 0x1, )))) {
                    If(And(Arg0, 0x2, )) {
                        Store(0x0, MODE)
                    }
                    Else {
                        Store(0x1, MODE)
                    }
                }
                Else {
                    Add(ShiftRight(And(Arg0, 0x0300, ), 0x8, ), ShiftRight(And(Arg0, 0x3000, ), 0xc, ), Local0)
                    If(LNot(LLess(Local0, 0x5))) {
                        Store(0xc, MODE)
                    }
                    Else {
                        If(LNot(LLess(Local0, 0x3))) {
                            Store(0xb, MODE)
                        }
                        Else {
                            Store(0xa, MODE)
                        }
                    }
                }
                Concatenate(Local6, Local7, Local5)
                If(Arg5) {
                    Store(Buffer(0x7) {0x0, 0x0, 0x0, 0x0, 0x0, 0xae, 0x91 }, Local4)
                    CreateByteField(Local4, 0x1, SPT_)
                    Store(Arg5, SPT_)
                    Concatenate(Local5, Local4, Local6)
                    Return(Local6)
                }
                Else {
                    Return(Local5)
                }
            }
            Name(B04_, Buffer(0x4) { })
            Name(B20_, Buffer(0x4) { })
            Name(B40_, Buffer(0x4) { })
            Device(PRIM) {
                Name(_ADR, 0x0)
                Name(_PSC, 0x0)
                Name(SECU, 0x0)
                Method(_PS0) {
                    If(_PSC) {
                        If(\_SB_.PCI0.OSNT) {
                            If(LEqual(And(SECU, 0x49, ), 0x41)) {
                                \_SB_.PCI0.ISA0.HPSS(0xb, 0x1)
                            }
                        }
                        Else {
                            \_SB_.PCI0.ISA0.HPSS(0xb, 0x0)
                        }
                        Store(0x0, _PSC)
                    }
                }
                Method(_PS3) {
                    If(\_SB_.PCI0.OSNT) {
                        Name(CNT1, 0x0)
                        While(LNot(LGreater(CNT1, 0x3))) {
                            If(LNot(\_SB_.PCI0.ISA0.EC0_.SMRD(0x9, 0xb0, 0x7f, RefOf(SECU)))) {
                                Store(0xffff, CNT1)
                            }
                            Else {
                                Increment(CNT1)
                                Sleep(0x14)
                            }
                        }
                    }
                    Store(0x3, _PSC)
                }
                Method(_GTM) {
                    Return(Buffer(0x14) {0x78, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0 })
                }
                Method(_STM, 3) {
                    Store("STM - Primary Controller", Debug)
                    Store(^^STMS(Arg0, Arg1, Arg2), Local0)
                    CreateDWordField(Local0, 0x0, ITM_)
                    CreateDWordField(Local0, 0x4, SIT_)
                    CreateDWordField(Local0, 0x8, UDC_)
                    CreateDWordField(Local0, 0xc, UDT_)
                    CreateDWordField(Local0, 0x10, ICF_)
                    Store(ITM_, ^^ITM0)
                    Store(SIT_, ^^SIT0)
                    Store(UDC_, ^^UDC0)
                    Store(UDT_, ^^UDT0)
                    CreateDWordField(Local0, 0x14, A100)
                    Or(And(^^CB80, 0xc, ), ShiftRight(And(0x30, A100, ), 0x4, ), ^^CB80)
                    Or(And(^^FSCB, 0xc, ), ShiftRight(And(0x3000, A100, ), 0xc, ), ^^FSCB)
                    Or(And(^^FATS, 0xc, ), ShiftRight(And(0x00300000, A100, ), 0x14, ), ^^FATS)
                    Store(ICF_, ^^ICF0)
                    Store(^^H15P(Arg1), ^MAST.H15F)
                }
                Device(MAST) {
                    Name(_ADR, 0x0)
                    Name(H15F, Zero)
                    Method(_GTF) {
                        Return(^^^GTF0(^^^ITM0, ^^^SIT0, ^^^UDC0, ^^^UDT0, ^^^ICF0, ^H15F, ^^^FSCB))
                    }
                }
            }
            Device(SECN) {
                Name(_ADR, 0x1)
                Method(_STA) {
                    If(ECOK()) {
                        If(LEqual(\_SB_.PCI0.ISA0.EC0_.SHDD, 0x0)) {
                            Store(0x8000, \_SB_.PCI0.IDE_.TSEC)
                            Return(0xd)
                        }
                    }
                    Else {
                        If(LNot(And(\_SB_.PCI0.ISA0.BDST, 0x4, ))) {
                            Store(0x8000, \_SB_.PCI0.IDE_.TSEC)
                            Return(0xd)
                        }
                    }
                    If(_PSC) {
                        Return(0xd)
                    }
                    Else {
                        If(LEqual(\_SB_.PCI0.IDE_.TSEC, 0x8000)) {
                            Return(0xd)
                        }
                        Else {
                            Return(0xf)
                        }
                    }
                }
                Name(_PSC, 0x0)
                Method(_PS0) {
                    If(LAnd(\_SB_.PCI0.ISA0.SDPW, LEqual(^MAST._STA(), 0xf))) {
                        Store(0x1, \_SB_.PCI0.IDE_.TRIS)
                        Store(0x0, \_SB_.PCI0.ISA0.SDPW)
                        Store(0x1, \_SB_.PCI0.ISA0.GO28)
                        Store(0x0, \_SB_.PCI0.ISA0.SRST)
                        Sleep(0x64)
                        Store(0x1, \_SB_.PCI0.ISA0.SRST)
                        Sleep(0xc8)
                        Store(0x0, \_SB_.PCI0.IDE_.TRIS)
                        Sleep(0x09c4)
                    }
                    Else {
                    }
                    Store(0x0, _PSC)
                }
                Method(_PS3) {
                    If(LAnd(\_SB_.PCI0.ISA0.SDPW, LEqual(^MAST._STA(), 0xf))) {
                        Store(0x1, \_SB_.PCI0.IDE_.TRIS)
                        Store(0x1, \_SB_.PCI0.ISA0.SDPW)
                        Store(0x0, \_SB_.PCI0.ISA0.GO28)
                    }
                    Store(0x8000, \_SB_.PCI0.IDE_.TSEC)
                    Store(0x3, _PSC)
                }
                Method(_GTM) {
                    Return(Buffer(0x14) {0x78, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0 })
                }
                Method(_STM, 3) {
                    Store("STM - Secondary Controller", Debug)
                    Store(^^STMS(Arg0, Arg1, Arg2), Local0)
                    CreateDWordField(Local0, 0x0, ITM_)
                    CreateDWordField(Local0, 0x4, SIT_)
                    CreateDWordField(Local0, 0x8, UDC_)
                    CreateDWordField(Local0, 0xc, UDT_)
                    CreateDWordField(Local0, 0x10, ICF_)
                    Store(ITM_, ^^ITM1)
                    Store(SIT_, ^^SIT1)
                    Store(UDC_, ^^UDC1)
                    Store(UDT_, ^^UDT1)
                    CreateDWordField(Local0, 0x14, A100)
                    Or(And(^^CB80, 0x3, ), ShiftRight(And(0x30, A100, ), 0x2, ), ^^CB80)
                    Or(And(^^FSCB, 0x3, ), ShiftRight(And(0x3000, A100, ), 0xa, ), ^^FSCB)
                    Or(And(^^FATS, 0x3, ), ShiftRight(And(0x00300000, A100, ), 0x12, ), ^^FATS)
                    Store(ICF_, ^^ICF1)
                    Store(^^H15P(Arg1), ^MAST.H15F)
                }
                Device(MAST) {
                    Name(_ADR, 0x0)
                    Name(STOP, 0x0)
                    Name(H15F, Zero)
                    Method(_STA) {
                        If(ECOK()) {
                            If(LEqual(\_SB_.PCI0.ISA0.EC0_.SHDD, 0x0)) {
                                And(^^^UDC1, 0x2, ^^^UDC1)
                                And(^^^IDCR, 0xff3f3f33, ^^^IDCR)
                                Return(0x0)
                            }
                            Else {
                            }
                        }
                        Else {
                            If(LNot(And(\_SB_.PCI0.ISA0.BDST, 0x4, ))) {
                                Return(0x0)
                            }
                            Else {
                            }
                        }
                        If(LNot(STOP)) {
                            If(LEqual(\_SB_.PCI0.IDE_.TSEC, 0x8000)) {
                                Return(0xd)
                            }
                            Else {
                                Return(0xf)
                            }
                        }
                        Else {
                            Store(0x8000, \_SB_.PCI0.IDE_.TSEC)
                            Return(0xd)
                        }
                    }
                    Method(_GTF) {
                        Return(^^^GTF0(^^^ITM1, ^^^SIT1, ^^^UDC1, ^^^UDT1, ^^^ICF1, ^H15F, ShiftRight(^^^FSCB, 0x2, )))
                    }
                    Method(_EJ0, 1) {
                        Store(0x1, \_SB_.PCI0.IDE_.TRIS)
                        Store(0x1, \_SB_.PCI0.ISA0.SDPW)
                        Store(0x0, \_SB_.PCI0.ISA0.GO28)
                        Store(0x8000, \_SB_.PCI0.IDE_.TSEC)
                        Store(0x1, STOP)
                    }
                }
            }
            Method(_PS0) {
                Store(0x0, _PSC)
                If(LEqual(^ISAV, 0x1)) {
                    And(^SVT0, 0x8044, Local0)
                    And(^ITM0, 0x7fbb, Local1)
                    Or(Local0, Local1, ^ITM0)
                    And(^SVT1, 0x8044, Local0)
                    And(^ITM1, 0x7fbb, Local1)
                    Or(Local0, Local1, ^ITM1)
                    Store(^SVWP, ^WPPE)
                    Store(^SIDC, ^IDCR)
                    Store(0x0, ISAV)
                }
                If(And(\_SB_.PCI0.ISA0.EC0_.PQ8A, 0x2, )) {
                    Acquire(\_SB_.PCI0.ISA0.EC0_.MUT2, 0xffff)
                    \_SB_.PCI0.ISA0.EC0_.SWAP()
                    And(\_SB_.PCI0.ISA0.EC0_.PQ8A, Not(0x2, ), \_SB_.PCI0.ISA0.EC0_.PQ8A)
                    Release(\_SB_.PCI0.ISA0.EC0_.MUT2)
                }
            }
            Name(SVT0, Ones)
            Name(SVT1, Ones)
            Name(SVWP, Ones)
            Name(ISAV, 0x0)
            Name(SIDC, Ones)
            Method(_PS3) {
                Store(^ITM0, ^SVT0)
                Store(^ITM1, ^SVT1)
                Store(^WPPE, ^SVWP)
                Store(^IDCR, ^SIDC)
                Store(0x1, ISAV)
                Store(0x3, _PSC)
            }
            Name(_PSC, 0x0)
        }
        Device(HUB_) {
            Name(_ADR, 0x001e0000)
            Name(_PRT, Package(0xe) {
                Package(0x4) {
                    0x0004ffff,
                    0x0,
                    \_SB_.LNKD,
                    0x0,
                },
                Package(0x4) {
                    0x0004ffff,
                    0x1,
                    \_SB_.LNKB,
                    0x0,
                },
                Package(0x4) {
                    0x0002ffff,
                    0x0,
                    \_SB_.LNKB,
                    0x0,
                },
                Package(0x4) {
                    0x0002ffff,
                    0x1,
                    \_SB_.LNKD,
                    0x0,
                },
                Package(0x4) {
                    0x0003ffff,
                    0x0,
                    \_SB_.LNKC,
                    0x0,
                },
                Package(0x4) {
                    0x0005ffff,
                    0x0,
                    \_SB_.LNKA,
                    0x0,
                },
                Package(0x4) {
                    0x0005ffff,
                    0x1,
                    \_SB_.LNKB,
                    0x0,
                },
                Package(0x4) {
                    0x0008ffff,
                    0x0,
                    \_SB_.LNKE,
                    0x0,
                },
                Package(0x4) {
                    0x000cffff,
                    0x0,
                    \_SB_.LNKA,
                    0x0,
                },
                Package(0x4) {
                    0x000cffff,
                    0x1,
                    \_SB_.LNKB,
                    0x0,
                },
                Package(0x4) {
                    0x000cffff,
                    0x2,
                    \_SB_.LNKC,
                    0x0,
                },
                Package(0x4) {
                    0x000cffff,
                    0x3,
                    \_SB_.LNKD,
                    0x0,
                },
                Package(0x4) {
                    0x000dffff,
                    0x0,
                    \_SB_.LNKA,
                    0x0,
                },
                Package(0x4) {
                    0x000dffff,
                    0x1,
                    \_SB_.LNKB,
                    0x0,
                },
            })
            Device(LAN_) {
                Name(_ADR, 0x00080000)
                Name(_PRW, Package(0x2) {
                    0xb,
                    0x4,
                })
                Method(_PSW, 1) {
                    If(ECOK()) {
                        Store(Arg0, \_SB_.PCI0.ISA0.EC0_.PMEE)
                        Store(Arg0, \_SB_.PCI0.ISA0.EC0_.IWOL)
                    }
                }
            }
            Device(CB1_) {
                Name(_ADR, 0x00050000)
                Name(_S1D, 0x1)
                Name(_S3D, 0x3)
                OperationRegion(CBE0, PCI_Config, 0x3e, 0x2)
                Field(CBE0, WordAcc, NoLock, Preserve) {
                    CBX0,	16
                }
                Method(_INI) {
                    Store(0x0340, CBX0)
                }
                Method(_STA) {
                    Return(0xf)
                }
            }
            Device(CB2_) {
                Name(_ADR, 0x00050001)
                Name(_S1D, 0x1)
                Name(_S3D, 0x3)
                OperationRegion(CBE1, PCI_Config, 0x3e, 0x2)
                Field(CBE1, WordAcc, NoLock, Preserve) {
                    CBX1,	16
                }
                Method(_INI) {
                    Store(0x0340, CBX1)
                }
                Method(_STA) {
                    Return(0xf)
                }
            }
            Device(FDS_) {
                Name(_ADR, 0x000c0000)
                OperationRegion(MOON, PCI_Config, 0x41, 0x5)
                Field(MOON, ByteAcc, NoLock, Preserve) {
                    CEVN,	8,
                    Offset(0x4),
                    WRPE,	8
                }
                Method(_REG, 2) {
                    If(LEqual(Arg0, 0x2)) {
                        If(LEqual(Arg1, 0x1)) {
                            \_SB_.PCI0.ISA0.HPSS(0xe, 0x0)
                            \_SB_.PCI0.HUB_.FDS_.FCB1.CSID()
                        }
                    }
                }
                Name(_PSC, 0x3)
                Method(_INI) {
                    If(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x3)) {
                        Store(0x0, _PSC)
                        Store(0x0, \_SB_.PCI0.HUB_.FDS_.FIDE._PSC)
                        Store(0x0, \_SB_.PCI0.HUB_.FDS_.FCB1._PSC)
                        Store(0x0, \_SB_.PCI0.HUB_.FDS_.FCB2._PSC)
                        Store(0x0, \_SB_.PCI0.HUB_.FDS_.SCSI._PSC)
                    }
                    Else {
                        Store(0x3, _PSC)
                    }
                }
                Method(_PS0) {
                    If(LEqual(\_SB_.PCI0.HUB_.FDS_.FIDE._PSC, 0x3)) {
                        If(LNot(\_SB_.PCI0.OSNT)) {
                            \_SB_.PCI0.HUB_.FDS_.FIDE._PS0()
                            Notify(\_SB_.PCI0.HUB_.FDS_.FIDE, 0x0)
                        }
                    }
                    Store(0x2, WRPE)
                    Store(0x0, _PSC)
                }
                Method(_PS3) {
                    Store(0x3, _PSC)
                }
                Name(_EJD, "_SB_.PCI0.ISA0.SPR0")
                Method(_STA) {
                    If(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x3)) {
                        Return(0xf)
                    }
                    Else {
                        Return(0x0)
                    }
                }
                Device(FCB1) {
                    Name(_ADR, 0x00080000)
                    OperationRegion(CBE4, PCI_Config, 0x0, 0x44)
                    Field(CBE4, WordAcc, NoLock, Preserve) {
                        Offset(0x2),
                        CBID,	16,
                        Offset(0x3e),
                        CBX4,	16,
                        VDID,	16,
                        SBID,	16
                    }
                    OperationRegion(C4IN, PCI_Config, 0x80, 0x14)
                    Field(C4IN, ByteAcc, NoLock, Preserve) {
                        CR80,	5,
                        SBRW,	1,
                        CR81,	2,
                        Offset(0x3),
                        CR83,	8,
                        Offset(0xc),
                        CR8C,	8,
                        CR8D,	8,
                        CR8E,	8,
                        CR8F,	8,
                        Offset(0x13),
                        CR93,	8
                    }
                    Method(_STA) {
                        Return(^^_STA())
                    }
                    Name(_PSC, 0x3)
                    Method(_INI) {
                        If(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x3)) {
                            Store(0x0, _PSC)
                        }
                        Else {
                            Store(0x3, _PSC)
                        }
                    }
                    Method(_PS0) {
                        Store(0x8, CR83)
                        Store(0x2, CR8C)
                        Store(0x1c, CR8D)
                        Store(0x2, CR8E)
                        Store(0x1, CR8F)
                        If(LEqual(CBID, 0xac1c)) {
                            Store(0x41, CR93)
                        }
                        Store(0x0, _PSC)
                    }
                    Method(CSID) {
                        Store(0x0, SBRW)
                        Store(0x103c, VDID)
                        Store(0x5, SBID)
                        Store(0x1, SBRW)
                    }
                    Method(_PS3) {
                        Store(0x3, _PSC)
                    }
                }
                Device(FCB2) {
                    Name(_ADR, 0x00080001)
                    OperationRegion(CBE5, PCI_Config, 0x3e, 0x2)
                    Field(CBE5, WordAcc, NoLock, Preserve) {
                        CBX5,	16
                    }
                    OperationRegion(CB5I, PCI_Config, 0x93, 0x1)
                    Field(CB5I, ByteAcc, NoLock, Preserve) {
                        CR93,	8
                    }
                    Method(_STA) {
                        Return(^^_STA())
                    }
                    Name(_PSC, 0x3)
                    Method(_INI) {
                        If(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x3)) {
                            Store(0x0, _PSC)
                        }
                        Else {
                            Store(0x3, _PSC)
                        }
                    }
                    Method(_PS0) {
                        If(LEqual(^^FCB1.CBID, 0xac1c)) {
                            Store(0x41, CR93)
                        }
                        Store(0x0, _PSC)
                    }
                    Method(_PS3) {
                        Store(0x3, _PSC)
                    }
                }
                Device(FIDE) {
                    Name(_ADR, 0x000c0000)
                    OperationRegion(FIDR, PCI_Config, 0x0, 0x80)
                    Field(FIDR, ByteAcc, NoLock, Preserve) {
                        Offset(0x7),
                        R7X1,	7,
                        R7B7,	1,
                        Offset(0xd),
                        RDX2,	5,
                        RDB5,	1,
                        RDX1,	2,
                        Offset(0x10),
                        RR10,	8,
                        RR11,	8,
                        Offset(0x14),
                        RR14,	8,
                        RR15,	8,
                        Offset(0x18),
                        RR18,	8,
                        RR19,	8,
                        Offset(0x1c),
                        RR1C,	8,
                        RR1D,	8,
                        Offset(0x20),
                        RR20,	8,
                        RR21,	8,
                        RR22,	8,
                        RR23,	8,
                        Offset(0x2c),
                        RR2C,	8,
                        RR2D,	8,
                        RR2E,	8,
                        RR2F,	8,
                        Offset(0x3c),
                        RR3C,	8,
                        Offset(0x4f),
                        R4F1,	1,
                        R4FX,	7,
                        Offset(0x51),
                        RR51,	8,
                        RR52,	8,
                        RR53,	8,
                        RR54,	8,
                        RR55,	8,
                        RR56,	8,
                        RR57,	8,
                        RR58,	8,
                        Offset(0x72),
                        RR72,	8,
                        RR73,	8,
                        RR74,	8,
                        RR75,	8,
                        RR76,	8,
                        RR77,	8,
                        Offset(0x7a),
                        RR7A,	8,
                        RR7B,	8,
                        RR7C,	8,
                        RR7D,	8,
                        RR7E,	8,
                        RR7F,	8
                    }
                    Method(_STA) {
                        Return(^^_STA())
                    }
                    Name(_PSC, 0x3)
                    Method(_INI) {
                        If(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x3)) {
                            Store(0x0, _PSC)
                        }
                        Else {
                            Store(0x3, _PSC)
                        }
                    }
                    Method(DGTM, 3) {
                        Store(Buffer(0x14) {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0 }, Local0)
                        CreateDWordField(Local0, 0x0, PIO0)
                        CreateDWordField(Local0, 0x4, DMA0)
                        CreateDWordField(Local0, 0x8, PIO1)
                        CreateDWordField(Local0, 0xc, DMA1)
                        CreateDWordField(Local0, 0x10, FLAG)
                        Store(0x10, FLAG)
                        If(LEqual(RR52, 0x3f)) {
                            Store(0x78, PIO0)
                        }
                        Else {
                            If(LEqual(RR52, 0x32)) {
                                Store(0xb4, PIO0)
                            }
                            Else {
                                If(LEqual(RR52, 0xa2)) {
                                    Store(0xf0, PIO0)
                                }
                                Else {
                                    If(LEqual(RR52, 0xa3)) {
                                        Store(0x017f, PIO0)
                                    }
                                    Else {
                                        Store(0x0258, PIO0)
                                    }
                                }
                            }
                        }
                        Or(FLAG, 0x2, FLAG)
                        Return(Local0)
                    }
                    Method(DSTM, 7) {
                        CreateDWordField(Arg0, 0x0, PIO0)
                        CreateDWordField(Arg0, 0x4, DMA0)
                        CreateDWordField(Arg0, 0x8, PIO1)
                        CreateDWordField(Arg0, 0xc, DMA1)
                        CreateDWordField(Arg0, 0x10, FLAG)
                        Store(Buffer(0x5) { }, Local7)
                        CreateByteField(Local7, 0x0, TMP1)
                        CreateByteField(Local7, 0x1, TMP2)
                        CreateByteField(Local7, 0x2, TMP3)
                        CreateByteField(Local7, 0x3, TMP4)
                        CreateByteField(Local7, 0x4, TMP5)
                        Store(Arg1, TMP1)
                        Store(Arg2, TMP2)
                        Store(Arg3, TMP3)
                        Store(Arg4, TMP4)
                        Store(Arg5, TMP5)
                        And(TMP2, 0xdf, TMP2)
                        If(Not(LOr(And(FLAG, 0x1, ), Arg6), )) {
                            And(TMP2, 0xdf, TMP2)
                            If(LNot(LGreater(PIO0, 0x78))) {
                                Store(0x3f, RR52)
                                Store(0x3f, TMP1)
                                And(TMP4, 0x3f, TMP4)
                                Or(TMP4, 0x40, TMP4)
                                And(TMP5, 0x3f, TMP5)
                                Or(TMP5, 0x40, TMP5)
                            }
                            Else {
                                If(LNot(LGreater(PIO0, 0xb4))) {
                                    Store(0x32, RR52)
                                    Store(0x32, TMP1)
                                    And(TMP4, 0x3f, TMP4)
                                    Or(TMP4, 0x40, TMP4)
                                    And(TMP5, 0x3f, TMP5)
                                    Or(TMP5, 0x40, TMP5)
                                }
                                Else {
                                    If(LNot(LGreater(PIO0, 0xf0))) {
                                        Store(0xa2, RR52)
                                        Store(0x43, TMP1)
                                        And(TMP4, 0x3f, TMP4)
                                        Or(TMP4, 0x40, TMP4)
                                        And(TMP5, 0x3f, TMP5)
                                        Or(TMP5, 0x40, TMP5)
                                    }
                                    Else {
                                        If(LNot(LGreater(PIO0, 0x017f))) {
                                            Store(0xa3, RR52)
                                            Store(0x57, TMP1)
                                            And(TMP4, 0x3f, TMP4)
                                            Or(TMP4, 0x40, TMP4)
                                            And(TMP5, 0x3f, TMP5)
                                            Or(TMP5, 0x40, TMP5)
                                        }
                                        Else {
                                            Store(0xaf, RR52)
                                            Store(0x6d, TMP1)
                                            And(TMP4, 0x3f, TMP4)
                                            Or(TMP4, 0x80, TMP4)
                                            And(TMP5, 0x3f, TMP5)
                                            Or(TMP5, 0x80, TMP5)
                                        }
                                    }
                                }
                            }
                        }
                        Return(Local7)
                    }
                    Method(DGTF, 3) {
                        Store(Buffer(0x7) {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, Local6)
                        Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef }, Local7)
                        CreateByteField(Local7, 0x1, MODE)
                        If(LEqual(RR52, 0x3f)) {
                            Store(0xc, MODE)
                        }
                        Else {
                            If(LEqual(RR52, 0x32)) {
                                Store(0xb, MODE)
                            }
                            Else {
                                If(LEqual(RR52, 0xa2)) {
                                    Store(0xa, MODE)
                                }
                                Else {
                                    If(LEqual(RR52, 0xa3)) {
                                        Store(0x9, MODE)
                                    }
                                    Else {
                                        Store(0x8, MODE)
                                    }
                                }
                            }
                        }
                        Return(Local7)
                    }
                    Device(PRIM) {
                        Name(_ADR, 0x0)
                        Method(_GTM) {
                            Return(^^DGTM(RR54, RR72, RR73))
                        }
                        Method(_STM, 3) {
                            CreateWordField(Arg1, 0x7e, MDFL)
                            Store(MDFL, Local0)
                            Store(0x0, Local0)
                            Store(^^DSTM(Arg0, RR54, RR72, RR73, RR53, RR55, Local0), Local1)
                            CreateByteField(Local1, 0x0, TMP1)
                            CreateByteField(Local1, 0x1, TMP2)
                            CreateByteField(Local1, 0x2, TMP3)
                            CreateByteField(Local1, 0x3, TMP4)
                            CreateByteField(Local1, 0x4, TMP5)
                            Store(TMP1, RR54)
                            Store(TMP2, RR72)
                            Store(TMP3, RR73)
                            Store(TMP4, RR53)
                            Store(TMP5, RR55)
                        }
                        Device(MAST) {
                            Name(_ADR, 0x0)
                            Method(_GTF) {
                                Return(^^^DGTF(RR54, RR72, RR73))
                            }
                        }
                    }
                    Device(SECN) {
                        Name(_ADR, 0x1)
                        Method(_GTM) {
                            Return(^^DGTM(RR58, RR7A, RR7B))
                        }
                        Method(_STM, 3) {
                            CreateWordField(Arg1, 0x7e, MDFL)
                            Store(MDFL, Local0)
                            Store(0x0, Local0)
                            Store(^^DSTM(Arg0, RR58, RR7A, RR7B, RR57, RR57, Local0), Local1)
                            CreateByteField(Local1, 0x0, TMP1)
                            CreateByteField(Local1, 0x1, TMP2)
                            CreateByteField(Local1, 0x2, TMP3)
                            CreateByteField(Local1, 0x3, TMP4)
                            CreateByteField(Local1, 0x4, TMP5)
                            Store(TMP1, RR58)
                            Store(TMP2, RR7A)
                            Store(TMP3, RR7B)
                            Store(TMP4, RR57)
                        }
                        Device(MAST) {
                            Name(_ADR, 0x0)
                            Method(_GTF) {
                                Return(^^^DGTF(RR58, RR7A, RR7B))
                            }
                        }
                    }
                    Method(_PS0) {
                        If(LNot(RR54)) {
                            Store(0xaf, RR52)
                            And(RR53, 0x3f, RR53)
                            Or(RR53, 0x80, RR53)
                            Store(0x6d, RR54)
                            And(RR55, 0x3f, RR55)
                            Or(RR55, 0x80, RR55)
                            And(RR72, 0xdf, RR72)
                            And(RR57, 0x3f, RR57)
                            Or(RR57, 0x80, RR57)
                            Store(0x6d, RR58)
                            And(RR7A, 0xdf, RR7A)
                        }
                        If(_PSC) {
                            Store(0x0, _PSC)
                            If(LNot(\_SB_.PCI0.OSNT)) {
                                Store(0x1, R7B7)
                                Store(0x1, RDB5)
                                Store(0xf9, RR10)
                                Store(0x1c, RR11)
                                Store(0xf1, RR14)
                                Store(0x1c, RR15)
                                Store(0xe1, RR18)
                                Store(0x1c, RR19)
                                Store(0xd9, RR1C)
                                Store(0x1c, RR1D)
                                Store(0xc1, RR20)
                                Store(0x1c, RR21)
                                Store(0x0, RR22)
                                Store(0x0, RR23)
                                Store(0xa, RR3C)
                                Store(0x1, R4F1)
                                Store(0x3c, RR2C)
                                Store(0x10, RR2D)
                                Store(0x5, RR2E)
                                Store(0x0, RR2F)
                                Store(0x0, R4F1)
                            }
                            Else {
                                \_SB_.PCI0.ISA0.HPSS(0xe, 0x0)
                            }
                            Store(0xec, RR51)
                            Store(0xa9, RR52)
                            Store(0x31, RR56)
                            Store(0x40, RR72)
                            Store(0x4, RR74)
                            Store(0xd, RR75)
                            Store(0xfb, RR76)
                            Store(0x0, RR77)
                            Store(0xdc, RR7C)
                            Store(0xdc, RR7D)
                            Store(0x7f, RR7E)
                            Store(0xd5, RR7F)
                        }
                    }
                    Method(_PS3) {
                        Store(0x3, _PSC)
                    }
                }
                Device(SCSI) {
                    Name(_ADR, 0x000d0000)
                    Method(_STA) {
                        Return(^^_STA())
                    }
                    Name(_PSC, 0x3)
                    Method(_INI) {
                        If(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x3)) {
                            Store(0x0, _PSC)
                        }
                        Else {
                            Store(0x3, _PSC)
                        }
                    }
                    Method(_PS0) {
                        Store(0x0, _PSC)
                    }
                    Method(_PS3) {
                        Store(0x3, _PSC)
                    }
                }
            }
            Device(EPR_) {
                Name(_ADR, 0x000d0000)
                OperationRegion(CBE2, PCI_Config, 0x0, 0x44)
                Field(CBE2, WordAcc, NoLock, Preserve) {
                    Offset(0x2),
                    CBID,	16,
                    Offset(0x3e),
                    CBX2,	16,
                    VDID,	16,
                    SBID,	16
                }
                OperationRegion(C2IN, PCI_Config, 0x80, 0x14)
                Field(C2IN, ByteAcc, NoLock, Preserve) {
                    CR80,	5,
                    SBRW,	1,
                    CR81,	2,
                    Offset(0x3),
                    CR83,	8,
                    Offset(0xc),
                    CR8C,	8,
                    CR8D,	8,
                    CR8E,	8,
                    CR8F,	8,
                    Offset(0x13),
                    CR93,	8
                }
                Method(ENQB) {
                    Name(CNT1, 0x0)
                    Store(0x1, \_SB_.PCI0.ISA0.EC0_.CRST)
                    Store(0x0, CNT1)
                    While(LNot(LGreater(CNT1, 0x14))) {
                        If(LEqual(\_SB_.PCI0.ISA0.EC0_.QVCC, 0x1)) {
                            Store(0xffff, CNT1)
                        }
                        Else {
                            Increment(CNT1)
                            Sleep(0x14)
                        }
                    }
                    If(LEqual(CNT1, 0xffff)) {
                        Sleep(0x2)
                        Store(0x1, \_SB_.PCI0.ISA0.EC0_.EQBF)
                        Sleep(0x28)
                        Store(0x0, \_SB_.PCI0.ISA0.EC0_.CRST)
                        Sleep(0xff)
                        Sleep(0xff)
                        Store(0x0, \_SB_.PCI0.ISA0.EC0_.DCWT)
                        Store(0x1, \_SB_.PCI0.ISA0.EC0_.LDDS)
                        Return(0x1)
                    }
                    Else {
                        Store(0x0, \_SB_.PCI0.ISA0.EC0_.CRST)
                        Store(0x0, \_SB_.PCI0.ISA0.EC0_.DPWR)
                        Store(0x0, \_SB_.PCI0.ISA0.EC0_.DCWT)
                        Return(0x0)
                    }
                }
                Method(_INI) {
                    If(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x2)) {
                        Store(0x0, _PSC)
                    }
                    Else {
                        Store(0x3, _PSC)
                    }
                }
                Name(_PSC, 0x3)
                Method(_PS0) {
                    Store(0x8, CR83)
                    Store(0x2, CR8C)
                    Store(0x1c, CR8D)
                    Store(0x2, CR8E)
                    Store(0x1, CR8F)
                    If(LEqual(CBID, 0xac1c)) {
                        Store(0x41, CR93)
                    }
                    Store(0x0, SBRW)
                    Store(0x103c, VDID)
                    Store(0x4, SBID)
                    Store(0x1, SBRW)
                    Store(0x0, _PSC)
                }
                Method(_PS3) {
                    Store(0x3, _PSC)
                }
                Name(_EJD, "_SB_.PCI0.ISA0.SPR0")
                Method(_STA) {
                    If(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x2)) {
                        Return(0xf)
                    }
                    Else {
                        Return(0x0)
                    }
                }
            }
            Device(CB4_) {
                Name(_ADR, 0x000d0001)
                OperationRegion(ECB4, PCI_Config, 0x2, 0x2)
                Field(ECB4, WordAcc, NoLock, Preserve) {
                    CBID,	16
                }
                OperationRegion(CB4I, PCI_Config, 0x93, 0x1)
                Field(CB4I, ByteAcc, NoLock, Preserve) {
                    CR93,	8
                }
                Method(_INI) {
                    If(LEqual(\_SB_.PCI0.ISA0.DKTP, 0x2)) {
                        Store(0x0, _PSC)
                    }
                    Else {
                        Store(0x3, _PSC)
                    }
                }
                Name(_PSC, 0x3)
                Method(_PS0) {
                    If(LEqual(CBID, 0xac1c)) {
                        Store(0x41, CR93)
                    }
                    Store(0x0, _PSC)
                }
                Method(_PS3) {
                    Store(0x3, _PSC)
                }
                Name(_EJD, "_SB_.PCI0.ISA0.SPR0")
                Method(_STA) {
                    Return(\_SB_.PCI0.HUB_.EPR_._STA())
                }
            }
            Device(ESSA) {
                Name(_ADR, 0x00030000)
            }
            Device(ESSM) {
                Name(_ADR, 0x00030001)
                Name(_PRW, Package(0x2) {
                    0xb,
                    0x4,
                })
                Method(_PSW, 1) {
                    If(ECOK()) {
                        Store(Arg0, \_SB_.PCI0.ISA0.EC0_.PMEE)
                        Store(Arg0, \_SB_.PCI0.ISA0.EC0_.EWOR)
                    }
                }
            }
            Device(MPC1) {
                Name(_ADR, 0x00040000)
                Name(_PRW, Package(0x2) {
                    0xb,
                    0x4,
                })
                Method(_PSW, 1) {
                    If(ECOK()) {
                        Store(Arg0, \_SB_.PCI0.ISA0.EC0_.PMEE)
                        Store(Arg0, \_SB_.PCI0.ISA0.EC0_.EWOR)
                    }
                }
            }
            Device(MPC2) {
                Name(_ADR, 0x00020000)
                Name(_PRW, Package(0x2) {
                    0xb,
                    0x4,
                })
                Method(_PSW, 1) {
                    If(ECOK()) {
                        Store(Arg0, \_SB_.PCI0.ISA0.EC0_.PMEE)
                    }
                }
            }
            Name(_PRW, Package(0x2) {
                0xb,
                0x4,
            })
        }
        Device(AGP_) {
            Name(_ADR, 0x00010000)
            Name(_PRT, Package(0x1) {
                Package(0x4) {
                    0xffff,
                    0x0,
                    \_SB_.LNKB,
                    0x0,
                },
            })
            Device(VGA_) {
                Name(_ADR, 0x0)
                Method(_STA) {
                    Return(0xf)
                }
                Name(_PSC, 0x0)
                Method(_PS0) {
                    Store(0x0, _PSC)
                }
                Method(_PS1) {
                    Store(0x1, _PSC)
                }
                Method(_PS2) {
                    Store(0x2, _PSC)
                }
                Method(_PS3) {
                    Store(0x3, _PSC)
                }
                Name(DISW, 0x1)
                Name(NDSP, 0x0)
                Name(VRSM, 0x0)
                Name(TGLT, Package(0x4) {
                    Package(0x8) {
                        0x1,
                        0x1,
                        0x1,
                        0x1,
                        0x1,
                        0x1,
                        0x1,
                        0x1,
                    },
                    Package(0x8) {
                        0x1,
                        0x2,
                        0x3,
                        0x1,
                        0x1,
                        0x1,
                        0x1,
                        0x1,
                    },
                    Package(0x8) {
                        0x1,
                        0x4,
                        0x1,
                        0x1,
                        0x5,
                        0x1,
                        0x1,
                        0x1,
                    },
                    Package(0x8) {
                        0x1,
                        0x2,
                        0x4,
                        0x5,
                        0x3,
                        0x6,
                        0x7,
                        0x1,
                    },
                })
                Name(TGLP, 0x0)
                Method(NDGS) {
                    And(^LCD_._DGS, 0x1, Local0)
                    Or(Local0, ShiftLeft(And(^CRT_._DGS, 0x1, ), 0x1, ), Local0)
                    Store(DerefOf(Index(DerefOf(Index(TGLT, TGLP, )), Local0, )), Local1)
                    And(Local1, 0x1, ^LCD_._DGS)
                    ShiftRight(And(Local1, 0x2, ), 0x1, ^CRT_._DGS)
                    If(And(^TV__._DCS, 0x10, )) {
                        Store(ShiftRight(And(^TV__._DCS, 0x2, ), 0x1, ), ^TV__._DGS)
                    }
                    Else {
                        Store(0x0, ^TV__._DGS)
                    }
                }
                Method(USTS, 1) {
                    Store(\_SB_.PCI0.ISA0.HPSS(0xf, 0x0), Local0)
                    And(Local0, 0xf, Local1)
                    If(LEqual(Local1, 0x3)) {
                        Store(0x1, TGLP)
                    }
                    Else {
                        If(LEqual(Local1, 0x5)) {
                            Store(0x0, TGLP)
                        }
                        Else {
                            If(LEqual(Local1, 0x7)) {
                                Store(0x1, TGLP)
                            }
                            Else {
                                Store(0x0, TGLP)
                            }
                        }
                    }
                    Return(Local0)
                }
                Method(_INI) {
                    Store(USTS(0x0), Local1)
                    Or(ShiftRight(And(Local1, 0x10, ), 0x3, ), 0x1d, ^LCD_._DCS)
                    Or(Or(ShiftLeft(And(Local1, 0x2, ), 0x3, ), ShiftRight(And(Local1, 0x20, ), 0x4, ), ), 0xd, ^CRT_._DCS)
                    Or(Or(ShiftLeft(And(Local1, 0x4, ), 0x2, ), ShiftRight(And(Local1, 0x40, ), 0x5, ), ), 0xd, ^TV__._DCS)
                    ShiftRight(Local1, 0x4, NDSP)
                    Store(ShiftRight(And(^LCD_._DCS, 0x2, ), 0x1, ), ^LCD_._DGS)
                    Store(ShiftRight(And(^CRT_._DCS, 0x2, ), 0x1, ), ^CRT_._DGS)
                    Store(ShiftRight(And(^TV__._DCS, 0x2, ), 0x1, ), ^TV__._DGS)
                    NDGS()
                }
                Method(_DOS, 1) {
                    If(LAnd(LEqual(And(Arg0, 0x3, ), 0x0), LEqual(And(DISW, 0x3, ), 0x2))) {
                        Notify(\_SB_.PCI0.ISA0.HPCI, 0x89)
                    }
                    Store(Arg0, DISW)
                }
                Method(_DOD) {
                    Return(Package(0x3) {
                        0x00010100,
                        0x00010110,
                        0x00010200,
                    })
                }
                Method(DRUL, 1) {
                    If(LEqual(Arg0, 0x1)) {
                        Store(USTS(0x1), Local2)
                    }
                    Else {
                        Store(USTS(0x0), Local2)
                    }
                    Store(^CRT_._DCS, Local1)
                    Or(ShiftLeft(And(Local2, 0x2, ), 0x3, ), And(^CRT_._DCS, 0xf, ), ^CRT_._DCS)
                    Store(^TV__._DCS, Local3)
                    Or(Or(ShiftLeft(And(Local2, 0x4, ), 0x2, ), ShiftRight(And(Local2, 0x40, ), 0x5, ), ), And(Local3, 0xd, ), ^TV__._DCS)
                    If(LEqual(Arg0, 0x1)) {
                        If(LOr(LAnd(^CRT_._DGS, LNot(And(^CRT_._DCS, 0x10, ))), LAnd(^TV__._DGS, LNot(And(^TV__._DCS, 0x10, ))))) {
                            NDGS()
                            Return(0x0)
                        }
                        Else {
                            Notify(VGA_, 0x80)
                            Return(0x0)
                        }
                    }
                    If(LEqual(Arg0, 0x2)) {
                        If(And(Local2, 0x2, )) {
                            Store(0x1, ^CRT_._DGS)
                            If(And(\_SB_.PCI0.ISA0.MFLG, 0x2, )) {
                                Store(0x1, ^LCD_._DGS)
                            }
                            Else {
                                Store(0x0, ^LCD_._DGS)
                            }
                        }
                        Else {
                            Store(0x0, ^CRT_._DGS)
                            Store(0x1, ^LCD_._DGS)
                        }
                        Notify(VGA_, 0x80)
                    }
                    If(LEqual(Arg0, 0x4)) {
                        Store(0x0, ^CRT_._DGS)
                        Store(0x1, ^LCD_._DGS)
                        Notify(VGA_, 0x80)
                    }
                    If(LEqual(Arg0, 0x3)) {
                        If(LNot(LEqual(ShiftRight(And(Local1, 0x10, ), 0x3, ), And(Local2, 0x2, )))) {
                            If(And(Local2, 0x2, )) {
                                Store(0x1, ^CRT_._DGS)
                                If(And(\_SB_.PCI0.ISA0.MFLG, 0x2, )) {
                                    Store(0x1, ^LCD_._DGS)
                                }
                                Else {
                                    Store(0x0, ^LCD_._DGS)
                                }
                            }
                            Else {
                                Store(0x0, ^CRT_._DGS)
                                Store(0x1, ^LCD_._DGS)
                            }
                            Store("Resume VGA.DRUL(3) called", Debug)
                            Notify(VGA_, 0x80)
                        }
                    }
                }
                Device(LCD_) {
                    Name(_ADR, 0x0110)
                    Name(_PSC, 0x0)
                    Name(_S3D, 0x3)
                    Method(_PS0) {
                        If(LAnd(LAnd(VRSM, LNot(^^CRT_._PSC)), LNot(^^TV__._PSC))) {
                            If(_PSC) {
                                DRUL(0x3)
                            }
                            Store(0x0, VRSM)
                        }
                        Store(0x0, _PSC)
                    }
                    Method(_PS1) {
                        Store(0x1, _PSC)
                    }
                    Method(_PS3) {
                        Store(0x3, _PSC)
                    }
                    Name(_DCS, 0x1b)
                    Method(_DSS, 1) {
                        Store(Arg0, Local0)
                        If(And(Local0, 0x1, )) {
                            Store("LCD._DSS(1) called", Debug)
                            Or(NDSP, 0x1, NDSP)
                        }
                        Else {
                            Store("LCD._DSS(0) called", Debug)
                            And(NDSP, 0xfe, NDSP)
                        }
                        And(Local0, 0xc0000000, Local0)
                        If(LEqual(Local0, 0x80000000)) {
                            Store("LCD._DSS(8000000x) called", Debug)
                            \_SB_.PCI0.ISA0.HPSS(0x1, NDSP)
                        }
                        And(Local0, 0x80000000, Local0)
                        If(LNot(LEqual(Local0, 0x0))) {
                            Store("LCD._DSS, update next _DGS", Debug)
                            Or(And(^^LCD_._DCS, 0xfd, ), ShiftLeft(And(NDSP, 0x1, ), 0x1, ), ^^LCD_._DCS)
                            Or(And(^^CRT_._DCS, 0xfd, ), And(NDSP, 0x2, ), ^^CRT_._DCS)
                            Or(And(^^TV__._DCS, 0xfd, ), ShiftRight(And(NDSP, 0x4, ), 0x1, ), ^^TV__._DCS)
                            USTS(0x0)
                            NDGS()
                        }
                    }
                    Name(_DGS, 0x0)
                }
                Device(CRT_) {
                    Name(_ADR, 0x0100)
                    Name(_PSC, 0x0)
                    Method(_PS0) {
                        If(LAnd(LAnd(VRSM, LNot(^^LCD_._PSC)), LNot(^^TV__._PSC))) {
                            If(_PSC) {
                                DRUL(0x3)
                            }
                            Store(0x0, VRSM)
                        }
                        Store(0x0, _PSC)
                    }
                    Method(_PS1) {
                        Store(0x1, _PSC)
                    }
                    Method(_PS3) {
                        Store(0x3, _PSC)
                    }
                    Name(_DCS, 0x1b)
                    Method(_DSS, 1) {
                        Store(Arg0, Local0)
                        If(And(Local0, 0x1, )) {
                            Store("CRT._DSS(1) called", Debug)
                            Or(NDSP, 0x2, NDSP)
                        }
                        Else {
                            Store("CRT._DSS(0) called", Debug)
                            And(NDSP, 0xfd, NDSP)
                        }
                        And(Local0, 0xc0000000, Local0)
                        If(LEqual(Local0, 0x80000000)) {
                            Store("CRT._DSS(8000000x) called", Debug)
                            \_SB_.PCI0.ISA0.HPSS(0x1, NDSP)
                        }
                        And(Local0, 0x80000000, Local0)
                        If(LNot(LEqual(Local0, 0x0))) {
                            Store("CRT._DSS, update next _DGS", Debug)
                            Or(And(^^LCD_._DCS, 0xfd, ), ShiftLeft(And(NDSP, 0x1, ), 0x1, ), ^^LCD_._DCS)
                            Or(And(^^CRT_._DCS, 0xfd, ), And(NDSP, 0x2, ), ^^CRT_._DCS)
                            Or(And(^^TV__._DCS, 0xfd, ), ShiftRight(And(NDSP, 0x4, ), 0x1, ), ^^TV__._DCS)
                            USTS(0x0)
                            NDGS()
                        }
                    }
                    Name(_DGS, 0x0)
                }
                Device(TV__) {
                    Name(_ADR, 0x0200)
                    Name(_PSC, 0x0)
                    Method(_PS0) {
                        If(LAnd(LAnd(VRSM, LNot(^^CRT_._PSC)), LNot(^^LCD_._PSC))) {
                            If(_PSC) {
                                DRUL(0x3)
                            }
                            Store(0x0, VRSM)
                        }
                        Store(0x0, _PSC)
                    }
                    Method(_PS1) {
                        Store(0x1, _PSC)
                    }
                    Method(_PS3) {
                        Store(0x3, _PSC)
                    }
                    Name(_DCS, 0x1b)
                    Method(_DSS, 1) {
                        Store(Arg0, Local0)
                        If(And(Local0, 0x1, )) {
                            Store("TV_._DSS(1) called", Debug)
                            Or(NDSP, 0x4, NDSP)
                        }
                        Else {
                            Store("TV_._DSS(0) called", Debug)
                            And(NDSP, 0xfb, NDSP)
                        }
                        And(Local0, 0xc0000000, Local0)
                        If(LEqual(Local0, 0x80000000)) {
                            Store("TV_._DSS(8000000x) called", Debug)
                            \_SB_.PCI0.ISA0.HPSS(0x1, NDSP)
                        }
                        And(Local0, 0x80000000, Local0)
                        If(LNot(LEqual(Local0, 0x0))) {
                            Store("TV_._DSS, update next _DGS", Debug)
                            Or(And(^^LCD_._DCS, 0xfd, ), ShiftLeft(And(NDSP, 0x1, ), 0x1, ), ^^LCD_._DCS)
                            Or(And(^^CRT_._DCS, 0xfd, ), And(NDSP, 0x2, ), ^^CRT_._DCS)
                            Or(And(^^TV__._DCS, 0xfd, ), ShiftRight(And(NDSP, 0x4, ), 0x1, ), ^^TV__._DCS)
                            USTS(0x0)
                            NDGS()
                        }
                    }
                    Name(_DGS, 0x0)
                }
            }
        }
    }
}

}
/*
BOOT: Length=40, Revision=1, Checksum=141,
	OEMID=PTLTD, OEM Table ID=EBBFTBL$, OEM Revision=0x2100000,
	Creator ID= LTP, Creator Revision=0x1
 */

--Multipart_Mon_Dec_17_17:17:38_2001-1--
