Device (BAT1)
{
Name (_HID, EisaId ("PNP0C0A"))
Name (_UID, One)
Name (_PCL, Package (0x01)
{
_SB
})
Name (BMDL, Zero)
Name (BASC, One)
Method (_STA, 0, NotSerialized)
{
^^EC0.BSHK ()
If (ECOK ())
{
If (^^EC0.BOL0)
{
Sleep (0x0A)
Return (0x1F)
}
Else
{
Sleep (0x0A)
Return (0x0F)
}
}
Else
{
Sleep (0x0A)
Return (0x1F)
}
}
Method (_BIF, 0, NotSerialized)
{
Name (STAT, Package (0x0D)
{
One,
0x1770,
0x1770,
One,
0x2A30,
0x0258,
0xB4,
0x0108,
0x0EC4,
"PABAS0241231",
"41167",
"Li-Ion",
"LENOVO "
})
Name (DECA, Zero)
Name (FCCA, Zero)
Store (^^EC0.BAM0, Index (STAT, Zero))
If (ECOK ())
{
If (LEqual (^^EC0.BAM0, Zero))
{
Store (0x0A, BASC)
}
Store (^^EC0.BDN0, Local0)
Store (Local0, BMDL)
If (^^EC0.BAM0)
{
Store (^^EC0.BDC0, Index (STAT, One))
}
Else
{
Store (^^EC0.BDC0, DECA)
Multiply (DECA, 0x0A, DECA)
Store (DECA, Index (STAT, One))
}
Sleep (0x0A)
Store (^^EC0.BDV0, Index (STAT, 0x04))
Sleep (0x0A)
Store (^^EC0.BFC0, Local2)
Sleep (0x0A)
If (^^EC0.BAM0)
{
Store (Local2, Index (STAT, 0x02))
}
Else
{
Store (Local2, FCCA)
Multiply (FCCA, 0x0A, FCCA)
Store (FCCA, Index (STAT, 0x02))
}
Divide (Local2, 0x64, Local0, Local1)
Multiply (Local1, 0x0A, Local1)
Store (Local1, Index (STAT, 0x05))
Divide (Local2, 0x64, Local0, Local1)
Multiply (Local1, 0x03, Local1)
Store (Local1, Index (STAT, 0x06))
}
Return (STAT)
}
Method (_BST, 0, NotSerialized)
{
Name (PBST, Package (0x04)
{
Zero,
Ones,
Ones,
0x1770
})
Name (BAPR, Zero)
Name (RECA, Zero)
If (ECOK ())
{
Store (^^EC0.BST0, Index (PBST, Zero))
Sleep (0x0A)
Store (^^EC0.BAC0, Local4)
Subtract (0xFFFF, Local4, Local4)
If (^^EC0.BAM0)
{
Store (Local4, Index (PBST, One))
}
Else
{
Store (Local4, BAPR)
Multiply (BAPR, 0x0A, BAPR)
Store (BAPR, Index (PBST, One))
}
Sleep (0x0A)
If (^^EC0.BAM0)
{
Store (^^EC0.BRC0, Index (PBST, 0x02))
}
Else
{
Store (^^EC0.BRC0, RECA)
Multiply (RECA, 0x0A, RECA)
Store (RECA, Index (PBST, 0x02))
}
Sleep (0x0A)
Store (^^EC0.BPV0, Index (PBST, 0x03))
Sleep (0x0A)
If (LNotEqual (^^EC0.BDN0, BMDL))
{
Notify (BAT1, 0x81)
}
}