==============================================================================================
	METHODS
==============================================================================================


	Info / Setup Method	(SN00)


SNC info            Method (SN00, 1, NotSerialized)
                    {
                        Store (Arg0, Local0)
                        If (LEqual (Local0, Zero))
                        {
  "ScnS"	            Return (0x53636E53)
                        }

                        If (LEqual (Local0, One))
                        {
  "oppu"                    Return (0x6F707075)
                        }

                        If (LEqual (Local0, 0x02))
                        {
  "detr"                    Return (0x64657472)
                        }

                        If (LEqual (Local0, 0x03))
                        {
  "NULL"                    Return (0x0100)
                        }

  Model ID	        If (LEqual (Local0, 0x04))
                        {
    Model 0x5133            Return (0x33510000)
                        }

                        If (LEqual (Local0, 0x10))
                        {
  FNAS -> 0x1FFF            Return (FNAS)
  offset bitmask:	}
  1 = offset used
  0 = offset empty

  offset-to-handle      If (LGreaterEqual (Local0, 0x20))
  translation           {
                            If (LLess (Local0, 0x30))
                            {
                                Multiply (Subtract (Local0, 0x20), 0x02, Local2)
                                CreateWordField (FNUM, Local2, FRET)
                                Return (FRET)
                            }
                        }

                        Return (Zero)
                    }
----------------------------------------------------------------------------------------------


	Event Methods	(SN01, SN02, SN03, SN04, SN05)


returns whether	    Method (SN01, 0, NotSerialized)
events are enabled  {
for every single        And (ENCR, 0xFFFF, Local0)
method (0xF bits)       Return (Local0)
(offset=bit_num+1)  }
----------------------------------------------------------------------------------------------
enable the          Method (SN02, 1, NotSerialized)
specified events    {
(offset=bit_num+1)      And (Arg0, 0xFFFF, Local0)
                        Or (Local0, ENCR, ENCR)
                        Store (ENCR, Local1)
                        And (Local1, 0x03, Local2)
                        And (Local1, 0x0200, Local3)
                        ShiftRight (Local3, 0x02, Local3)
                        Or (Local3, Local2, Local2)
                        ^^EC0.STEC (0x8280, Local2)
                    }
----------------------------------------------------------------------------------------------
disable the	    Method (SN03, 1, NotSerialized)
event generation    {
for the specified       Not (Arg0, Local0)
methods (0xF bits)      And (Local0, ENCR, ENCR)
(offset=bit_num+1)      Store (ENCR, Local1)
                        And (Local1, 0x03, Local2)
                        And (Local1, 0x0200, Local3)
                        ShiftRight (Local3, 0x02, Local3)
                        Or (Local3, Local2, Local2)
                        ^^EC0.STEC (0x8280, Local2)
                    }
----------------------------------------------------------------------------------------------
Event flag rised    Method (SN04, 0, NotSerialized)
for every method    {
(0xF bits)              And (ESR, 0xFFFF, Local0)
(offset=bit_num+1)      Return (Local0)
                    }
----------------------------------------------------------------------------------------------
clear the event     Method (SN05, 1, NotSerialized)
flag for the	    {
specified method        Not (Arg0, Local0)
(offset=bit_num+1)      And (Local0, ESR, ESR)
(0xF bits)              Store (Arg0, Local1)
                        And (Local1, 0x0800, Local2)
                        And (Local1, 0x0200, Local3)
                        If (LEqual (Local3, 0x0200))
                        {
                            Store (Zero, EVTR)
                        }
                    }
----------------------------------------------------------------------------------------------


	Command Methods		(SN06, SN07)

Command methods should provide the same info (or almost the same), but while SN07 uses 32bit
integers for both input and output parameters SN06 returns a wide buffer (for both input and
output values), useful for reading a few info tables or long input parameters.

                    Method (SN06, 1, NotSerialized)
                    {
                        Store (Zero, Local0)
                        While (LLess (Local0, 0x0410))		<-- 1040 bytes buffer
                        {
                            Store (Zero, Index (SN67, Local0))
                            Increment (Local0)
                        }

                        Store (Arg0, Local0)
                        Store (Arg0, SN67)
                        CreateByteField (SN67, Zero, CHNN)
                        CreateByteField (SN67, One, CMDN)
                        CreateByteField (SN67, 0x02, DB00)
                        CreateByteField (SN67, 0x03, DB01)
                        CreateByteField (SN67, 0x04, DB02)
                        CreateByteField (SN67, 0x05, DB03)
                        CreateDWordField (SN67, 0x06, DD01)
                        Store (DB00, Local2)
                        Store (DB01, Local3)
                        Store (DB02, Local4)
                        And (CHNN, 0x0F, Local0)
                        Store (CMDN, Local1)
LCD backlight levels    If (LEqual (Local0, 0x03))
                        {

                            And (Local1, One, Local1)
                            If (LEqual (Local1, One))
                            {
                                Store (LCDT, SN67)
                                Return (SN67)
                            }
                        }

Optical device table    If (LEqual (Local0, 0x07))
                        {
                            And (Local1, 0x03, Local1)
                            If (LEqual (Local1, Zero))
                            {
                                If (And (ODDF, One))	<-- device present
                                {
                                    Store (Zero, SN67)  <-- erase
                                    Store (TYPS, SN67)  <-- OD table
                                    Store (ODID, Local3)<-- OptDev ID
                                    And (Local3, 0xFF, DB02)
                                    ShiftRight (Local3, 0x08, Local2)
                                    And (Local2, 0xFF, DB03)
                                }
                                Else			<-- device not
                                {			    present
                                    Store (Zero, SN67)  <-- erase
                                    Store (Zero, CHNN)  <-- 0x00
                                    Store (0xFF, CMDN)  <-- 0xFF
                                }

                                Return (SN67)
                            }
                        }

Radio devices table     If (LEqual (Local0, 0x09))
                        {
                            Store (CMDN, Local1)
                            And (Local1, 0x0F, Local1)
                            If (LEqual (Local1, Zero))
                            {
                                Store (Zero, Local0)
                                While (LLess (Local0, 0x0410))
                                {
                                    Store (Zero, Index (SN67, Local0))
                                    Increment (Local0)
                                }

                                Store (0xFF, Local7)
                                And (One, ^^EC0.GTEC (0x0253), Local3)		WWPS
                                If (LEqual (Local3, One))
                                {
                                    Store (0x71, Local2)
                                    ShiftLeft (Local7, 0x08, Local7)
                                    Or (Local2, Local7, Local7)
                                    Store (One, Local6)
                                }
                                Else
                                {
                                    Store (Zero, Local6)
                                }

                                Store (RP1D, Local0)
                                Store (Zero, RP1D)
                                Sleep (0x14)
                                Store (^^^RP01.PDSX, Local3)
                                Store (Local0, RP1D)
                                If (LEqual (Local3, One))		WIPS?
                                {
                                    Store (Zero, OPB0)
                                    Store (0x8F, SMIF)
                                    Store (Zero, TRP1)
                                    Sleep (0x32)
                                    Store (OPB0, Local4)
                                    If (LEqual (Local4, One))
                                    {
                                        Store (0x30, Local2)
                                        ShiftLeft (Local7, 0x08, Local7)
                                        Or (Local2, Local7, Local7)
                                        Add (One, Local6, Local6)
                                    }
                                }

                                And (One, ^^EC0.GTEC (0x0253), Local3)		WWPS
                                If (LEqual (Local3, One))
                                {
                                    Store (Zero, Local4)
                                    Store (^^EC0.GTEC (0x0255), Local4)		WDIP
                                    If (LEqual (Local4, One))
                                    {
                                        Store (0x25, Local2)
                                        ShiftLeft (Local7, 0x08, Local7)
                                        Or (Local2, Local7, Local7)
                                        Add (One, Local6, Local6)
                                    }

                                    If (LEqual (Local4, 0x04))
                                    {
                                        Store (0x25, Local2)
                                        ShiftLeft (Local7, 0x08, Local7)
                                        Or (Local2, Local7, Local7)
                                        Add (One, Local6, Local6)
                                    }

                                    If (LEqual (Local4, 0x05))
                                    {
                                        Store (0x25, Local2)
                                        ShiftLeft (Local7, 0x08, Local7)
                                        Or (Local2, Local7, Local7)
                                        Add (One, Local6, Local6)
                                    }

                                    If (LEqual (Local4, 0x02))
                                    {
                                        Store (0x26, Local2)
                                        ShiftLeft (Local7, 0x08, Local7)
                                        Or (Local2, Local7, Local7)
                                        Add (One, Local6, Local6)
                                    }
                                }

                                And (One, ^^EC0.GTEC (0x0252), Local3)		BTPS
                                If (LEqual (Local3, One))
                                {
                                    Store (0x10, Local2)
                                    ShiftLeft (Local7, 0x08, Local7)
                                    Or (Local2, Local7, Local7)
                                    Add (One, Local6, Local6)
                                }

                                If (LLess (Local6, 0x03))	<- less than dev 3 codes
                                {
                                    Store (RP1D, Local0)
                                    Store (Zero, RP1D)
                                    Sleep (0x14)
                                    Store (^^^RP01.PDSX, Local3)
                                    Store (Local0, RP1D)
                                    If (LEqual (Local3, One))
                                    {
                                        Store (Zero, Local2)
                                        ShiftLeft (Local7, 0x08, Local7)
                                        Or (Local2, Local7, Local7)
                                    }

                                    Return (Local7)
                                }

                                If (LEqual (Local6, 0x03))	<- dev 3 codes
                                {
                                    Store (Local7, SN67)
                                    Store (RP1D, Local0)
                                    Store (Zero, RP1D)
                                    Sleep (0x14)
                                    Store (^^^RP01.PDSX, Local3)
                                    Store (Local0, RP1D)
                                    If (LEqual (Local3, One))
                                    {
                                        Store (Zero, Index (SN67, 0x03))
                                        Store (0xFF, Index (SN67, 0x04))
                                    }

                                    Return (SN67)
                                }

                                If (LEqual (Local6, 0x04))	<- dev 4 codes
                                {
                                    Store (Local7, SN67)
                                    Store (RP1D, Local0)
                                    Store (Zero, RP1D)
                                    Sleep (0x14)
                                    Store (^^^RP01.PDSX, Local3)
                                    Store (Local0, RP1D)
                                    If (LEqual (Local3, One))
                                    {
                                        Store (Zero, Index (SN67, 0x04))
                                        Store (0xFF, Index (SN67, 0x05))
                                    }
                                    Else
                                    {
                                        Store (0xFF, Index (SN67, 0x04))
                                    }

                                    Return (SN67)
                                }
                            }
                        }

ALS word commands       If (LEqual (Local0, 0x0B))
                        {
                            And (CMDN, 0x0F, Local1)
                            If (LEqual (Local1, Zero))
                            {
                                Store (LSPT, SN67)
                                Return (SN67)
                            }

                            If (LEqual (Local1, 0x06))
                            {
                                ^^EC0.STEC (0x2305, Local2)
                                ^^EC0.STEC (0x2300, Local1)
                                ^^EC0.STEC (0x2302, One)
                                Store (One, Local2)
                                Store (Zero, Local1)
                                While (LEqual (Local2, One))
                                {
                                    If (LEqual (Local1, 0x50))
                                    {
                                        Return (Zero)
                                    }

                                    Sleep (0x05)
                                    Increment (Local1)
                                    Store (^^EC0.GTEC (0x230B), Local2)
                                }

                                Store (^^EC0.GTEC (0x2303), Local2)
                                If (LEqual (Local2, One))
                                {
                                    Return (Zero)
                                }

                                Store (^^EC0.GTEC (0x2308), Local4)
                                Store (^^EC0.GTEC (0x2309), Local5)
                                ShiftLeft (Local5, 0x10, Local5)
                                ShiftLeft (Local4, 0x08, Local4)
                                Add (Local5, Local4, Local5)
                                Or (Local5, One, Local5)
                                Store (Local5, SN67)
                                Return (SN67)
                            }

                            If (LEqual (Local1, 0x07))
                            {
                                ^^EC0.STEC (0x2305, Local2)
                                ^^EC0.STEC (0x2300, Local1)
                                ^^EC0.STEC (0x2306, Local3)
                                ^^EC0.STEC (0x2307, Local4)
                                ^^EC0.STEC (0x2302, One)
                                Store (One, Local2)
                                Store (Zero, Local1)
                                While (LEqual (Local2, One))
                                {
                                    If (LEqual (Local1, 0x50))
                                    {
                                        Store (Zero, SN67)
                                        Return (SN67)
                                    }

                                    Sleep (0x05)
                                    Increment (Local1)
                                    Store (^^EC0.GTEC (0x230B), Local2)
                                }

                                Store (^^EC0.GTEC (0x2303), Local2)
                                If (LEqual (Local2, One))
                                {
                                    Store (Zero, SN67)
                                    Return (SN67)
                                }

                                Store (One, SN67)
                                Return (SN67)
                            }
                        }

                        Store (Zero, Local0)
                        While (LLess (Local0, 0x0410))
                        {
                            Store (Zero, Index (SN67, Local0))
                            Increment (Local0)
                        }

                        Store (SN07 (Arg0), SN67)
                        Return (SN67)
                    }


----------------------------------------------------------------------------------------------


		    Method (SN07, 1, NotSerialized)
                    {
                        Store (Arg0, VAL0)
                        And (VAL0, 0x0F, Local0)		<-- first byte
                        ShiftRight (VAL0, 0x08, Local1)		<-- second
                        ShiftRight (VAL0, 0x10, Local2)		<-- third
                        ShiftRight (VAL0, 0x18, Local3)		<-- fourth

----------------------------------------------------------------------------------------------
00 Hotkeys control      If (LEqual (Local0, Zero))
                        {
                            And (Local1, 0x03, Local1)
  00 - enable               If (LEqual (Local1, Zero))
                            {
                                ^^EC0.STEC (0x8103, One)		ENHK	//enable notification HotKeys
                                Return (Zero)
                            }

  01 - disable              If (LEqual (Local1, One))
                            {
                                ^^EC0.STEC (0x8103, Zero)		ENHK
                                Return (Zero)
                            }

  02 - get key number       If (LEqual (Local1, 0x02))
                            {
                                Store (^^EC0.GTEC (0x0303), Local5)	HKDA	//HotKeys decoding
                                And (Local5, 0xFF, Local5)
                                Or (VAL0, Local5, Local0)
                                Return (Local0)
                            }


                        }
----------------------------------------------------------------------------------------------
01 Notify on low 	If (LEqual (Local0, One))
   battery              {
0x101                       And (Local1, One, Local1)
  00 - enable               If (LEqual (Local1, Zero))
                            {
                                ^^EC0.STEC (0x8282, One)		BTCR
                                Return (Zero)
                            }

  01 - disable              If (LEqual (Local1, One))
                            {
                                ^^EC0.STEC (0x8282, Zero)		BTCR
                                Return (Zero)
                            }
                        }
----------------------------------------------------------------------------------------------
02 Touchpad (on/off)    If (LEqual (Local0, 0x02))
0x105                   {
                            And (Local1, One, Local1)
  00 - get status           If (LEqual (Local1, Zero))
                            {
                                Return (^^EC0.GTEC (0x0110))		PDEN   <--- Pointing Device Enable
                            }

  01 - set status           If (LEqual (Local1, One))
                            {	
                                And (Local2, One, Local2)
                                Store (Local2, OPB0)
                                Store (0x82, SMIF)
                                Store (Zero, TRP1)
                                Return (Zero)
                            }
                        }
----------------------------------------------------------------------------------------------
03 Graphics / LCD       If (LEqual (Local0, 0x03))
0x103                   {
                            And (Local1, One, Local1)
  00 - graphic card         If (LEqual (Local1, Zero))
       type or manufacturer {
                                If (LEqual (PEGF, Zero))
                                {
                                    Return (Zero)
                                }
                                Else
                                {
                                    Return (0x02)
                                }
                            }

  01 - LCD levels           If (LEqual (Local1, One))
       (9 values)           {
                                Store (LCDT, VAL0)
                                Return (VAL0)
                            }
                        }
----------------------------------------------------------------------------------------------
04 Battery related      If (LEqual (Local0, 0x04))
   maybe health, type   {
   or # of batteries        And (Local1, One, Local1)
0x114                       If (LEqual (Local1, Zero))
                            {
                                Store (Zero, Local0)
                                Store (^^EC0.GTEC (0x0301), Local0)			MDFG
                                If (And (LLess (Local0, 0x03), LGreaterEqual (Local0, Zero)))
                                {
                                    Return (Local0)
                                }

                                Return (Zero)
                            }
                        }
----------------------------------------------------------------------------------------------
05 Some ID, maybe rev   If (LEqual (Local0, 0x05))
   maybe LCD/graphics   {
   related                  And (Local1, One, Local1)
0x11D                       If (LEqual (Local1, Zero))
                            {
                                Store (Zero, OPB0)
                                Store (0x88, SMIF)
                                Store (Zero, TRP1)
                                Store (OPB0, Local2)
                                And (Local2, 0xFF, Local2)
                                Return (Local2)
                            }
                        }
----------------------------------------------------------------------------------------------
06 Thermal Control      If (LEqual (Local0, 0x06))
0x122			{
                            And (Local1, 0x03, Local1)
  00 - available            If (LEqual (Local1, Zero))
       profiles             {
                                Return (0x03)
                            }

  01 - get current          If (LEqual (Local1, One))
       profile              {
                                Store (^^EC0.GTEC (0x0304), Local2)
                                And (Local2, 0x03, Local2)
                                If (LEqual (Local2, Zero))
                                {
       2 performance                Store (0x02, Local3)
                                }

                                If (LEqual (Local2, 0x02))
                                {
       0 balanced                   Store (Zero, Local3)
                                }

                                If (LEqual (Local2, One))
                                {
       1 silent                     Store (One, Local3)
                                }

                                Return (Local3)
                            }

  02 - set desired          If (LEqual (Local1, 0x02))
       profile              {
                                And (Local2, 0x03, Local2)
                                Store (Local2, \_TZ.THRM.SPMF)
                                Notify (\_TZ.THRM, 0x81)
                                If (LEqual (Local2, Zero))
                                {
                                    ^^EC0.STEC (0x8281, 0x02)
                                    Store (\_TZ.THRM.PMTL, ^^EC0.MTL)
                                }

                                If (LEqual (Local2, 0x02))
                                {
                                    ^^EC0.STEC (0x8281, Zero)
                                    Store (\_TZ.THRM.PMTL, ^^EC0.MTL)
                                }

                                If (LEqual (Local2, One))
                                {
                                    ^^EC0.STEC (0x8281, One)
                                    Store (\_TZ.THRM.SMTL, ^^EC0.MTL)
                                }

                                If (LEqual (Local2, 0x03))
                                {
                                    ^^EC0.STEC (0x8281, 0x02)
                                    Store (\_TZ.THRM.PMTL, ^^EC0.MTL)
                                }

                                Return (VAL0)
                            }
                        }
----------------------------------------------------------------------------------------------
07 CD/DVD/BD power ctrl If (LEqual (Local0, 0x07))
0x126                   {
                            And (Local1, 0x03, Local1)
  01 - get power state      If (LEqual (Local1, One))



       			    {
                                Store (0x8A, SMIF)	<--- WTF???
                                Store (Zero, TRP1)	<--- WTF???
                                Store (OPB0, Local2)	<--- WTF???
                                If (And (Local2, One))
                                {
				    Store (^^EC0.GTEC (0x1260), Local3)		DPST
	                        }
                                Else
                                {
                                    Store (Zero, Local3)
                                }

                                Return (Local3)
                            }

  02 - power on		    If (LEqual (Local1, 0x02))
                            {
                                If (And (Local2, One))
                                {
                                    ^^EC0.STEC (0x1261, One)		SNCD  0x6C
                                }

                                Return (Zero)
                            }

  03 - power off            If (LEqual (Local1, 0x03))
                            {
                                If (And (Local2, One))
                                {
                                    ^^EC0.STEC (0x1261, Zero)		SNCD  0x6D
                                }

                                Return (Zero)
                            }
                        }
----------------------------------------------------------------------------------------------
08 HDD Fall Sensor      If (LEqual (Local0, 0x08))
0x134                   {
			    And (Local1, 0x07, Local1)

  00 - Enable event         If (LEqual (Local1, Zero))
       notification         {
       on fall                  ^^EC0.STEC (0x8294, One)		GSEN
                                Return (VAL0)
                            }

  01 - Disable event        If (LEqual (Local1, One))
       notification         {
       on fall                  ^^EC0.STEC (0x8294, Zero)		GSEN
                                Return (VAL0)
                            }

  02 - Get parameters       If (LEqual (Local1, 0x02))
       		            {
                                Store (Zero, Local2)
			        If (^^EC0.GTEC (0x8295))		GSEN <-- notification
                                {						 enabled
                                    Or (Local2, 0x80, Local2)
                                }

                                If (LNot (^^EC0.GTEC (0x8296)))		GSER <-- ? always 1
                                {
                                    Or (Local2, 0x40, Local2)
                                }

                                If (^^EC0.GTEC (0x8303))		AKPS <-- Auto K? Presence
                                {						State (1 when the HDD
                                    Or (Local2, 0x20, Local2)			supports the immediate
                                }						idle - head unload feat.)

                                Store (^^EC0.GTEC (0x8298), Local6)	DATM <-- Data, Accel., Thresh.
                                And (Local6, 0x03, RTVM)			Meter
                                Or (Local2, ShiftLeft (RTVM, 0x03), Local2)
                                If (^^EC0.GTEC (0x8302))
                                {
                                    Or (Local2, 0x04, Local2)		AKEN <-- Auto K? Enable
                                }						 (1 = device protection enabled)

                                Store (^^EC0.GTEC (0x8290), Local6)	THDC // Thresholds Disk Control?
                                And (Local6, 0x03, HDPL)		//HDPL, HardDisk Protection Level
                                Or (Local2, HDPL, Local2)
                                Return (Local2)
                            }

  03 - Set parameters       If (LEqual (Local1, 0x03))
       		            {
       HD Protecion             Store (And (Local2, 0x03), HDPL)
       sensibility              ^^EC0.STEC (0x8289, HDPL)		THDC	//T HardDisk P?
       0 medium                 If (LEqual (HDPL, Zero))
       1 high                   {
       2 low                        ^^EC0.STEC (0x8300, 0x17)		FFTS	// medium
                                }

                                If (LEqual (HDPL, One))
                                {
                                    ^^EC0.STEC (0x8300, 0x14)		FFTS	// high
                                }

                                If (LEqual (HDPL, 0x02))
                                {
                                    ^^EC0.STEC (0x8300, 0x1B)		FFTS	// low
                                }

                                And (ShiftRight (Local2, 0x02), One, ANKO)
                                ^^EC0.STEC (0x8304, And (ANKO, One))		AKEN
                                And (ShiftRight (Local2, 0x03), 0x03, RTVM)
                                ^^EC0.STEC (0x8297, RTVM)			DATM
                                ^^EC0.STEC (0x8301, One)			GSET
                                Return (Zero)
                            }

  04 - X axis               If (LEqual (Local1, 0x04))
       reading		    {
                                Store (^^EC0.GTEC (0x8298), Local6)		DATM
                                And (Local6, 0x03, RTVM)
                                If (LEqual (RTVM, 0x02))
                                {
                                    Store (^^EC0.GTEC (0x8299), Local2)		FFST
                                }
                                Else
                                {
                                    Store (^^EC0.GTEC (0x8291), Local2)		XVEC
                                    If (LGreater (Local2, 0x7F))
                                    {
                                        If (LEqual (RTVM, One))
                                        {
                                            Subtract (0x0100, Local2, Local2)
                                        }

                                        Else
                                        {
                                            And (Local2, 0xFF, Local2)
                                        }
                                    }

                                    If (LEqual (RTVM, One))
                                    {
                                        If (LLessEqual (Local2, 0x03))
                                        {
                                            Store (Zero, Local2)
                                        }
                                    }
                                }

                                Return (Local2)
                            }

  05 - Y axis               If (LEqual (Local1, 0x05))
       reading              {
                                Store (^^EC0.GTEC (0x8298), Local6)
                                And (Local6, 0x03, RTVM)
                                If (LEqual (RTVM, 0x02))
                                {
                                    Store (^^EC0.GTEC (0x8299), Local2)		FFST
                                }
                                Else
                                {
                                    Store (^^EC0.GTEC (0x8292), Local2)		YVEC
                                    If (LGreater (Local2, 0x7F))
                                    {
                                        If (LEqual (RTVM, One))
                                        {
                                            Subtract (0x0100, Local2, Local2)
                                        }
                                        Else
                                        {
                                            And (Local2, 0xFF, Local2)
                                        }
                                    }

                                    If (LEqual (RTVM, One))
                                    {
                                        If (LLessEqual (Local2, 0x03))
                                        {
                                            Store (Zero, Local2)
                                        }
                                    }
                                }

                                Return (Local2)
                            }

  06 - Z axis               If (LEqual (Local1, 0x06))
       reading              {
                                Store (^^EC0.GTEC (0x8298), Local6)
                                And (Local6, 0x03, RTVM)
                                If (LEqual (RTVM, 0x02))
                                {
                                    Store (^^EC0.GTEC (0x8299), Local2)		FFST
                                }
                                Else
                                {
                                    Store (^^EC0.GTEC (0x8293), Local2)		ZVEC
                                    If (LGreater (Local2, 0x7F))
                                    {
                                        If (LEqual (RTVM, One))
                                        {
                                            Subtract (0x0100, Local2, Local2)
                                        }
                                        Else
                                        {
                                            And (Local2, 0xFF, Local2)
                                        }
                                    }

                                    If (LEqual (RTVM, One))
                                    {
                                        If (LLessEqual (Local2, 0x03))
                                        {
                                            Store (Zero, Local2)
                                        }
                                    }
                                }

                                Return (Local2)
                            }
                        }
----------------------------------------------------------------------------------------------
09 Radio Interfaces     If (LEqual (Local0, 0x09))			<---	Radio interfaces
0x135                   {							management
                            And (Local1, 0x0F, Local1)
  01 - Get event reason     If (LEqual (Local1, One))
       bit #1	hwswitch    {
       bit #2   battery         Store (EVTR, Local2)
                                And (One, ^^EC0.GTEC (0x0253), Local3)	<---	WWPS
                                If (LEqual (Local3, Zero))
                                {
                                    And (Local2, One, Local2)
                                }

                                Return (Local2)
                            }

  02 - Get rfkill state     If (LEqual (Local1, 0x02))
       bit #1	hwswitch    {
       bit #2	battery         And (^^EC0.GTEC (0x0201), One, Local2)	<---	GSCS?
                                And (One, ^^EC0.GTEC (0x0253), Local3)	<---	WWPS
                                If (LEqual (Local3, One))
                                {
                                    Not (Local2, Local2)
                                }
                                Else
                                {
                                    Store (One, Local2)
                                }

                                And (Local2, One, Local2)
                                ShiftLeft (Local2, One, Local2)
                                And (^^EC0.GTEC (0x0200), One, Local3)	<---	WSWT
                                Or (Local2, Local3, Local3)
                                Return (Local3)
                            }

  03 - Query WLAN           If (LEqual (Local1, 0x03))
                            {
                                And (^^EC0.GTEC (0x0231), One, Local2)	<---	WLNP
                                And (^^EC0.GTEC (0x0261), One, Local3)	<---	SWLB
                                ShiftLeft (Local3, One, Local4)
                                Or (Local2, Local4, Local5)
                                Return (Local5)
                            }

  04 - On/Off WLAN          If (LEqual (Local1, 0x04))
                            {
    bit 0 power		        And (Local2, One, Local3)
    bit 1 switch state          And (Local2, 0x02, Local4)
                                ShiftRight (Local4, One, Local5)
    1 on 0 off		        ^^EC0.STEC (0x8261, Local5)			SWLB
			        ^^EC0.STEC (0x8269, Local3)			SNCD
                            }

  05 - Query BT	            If (LEqual (Local1, 0x05))
                            {
                                And (^^EC0.GTEC (0x0232), One, Local2)		WBTP
                                And (^^EC0.GTEC (0x0262), One, Local3)		SBTB
                                ShiftLeft (Local3, One, Local4)
                                Or (Local2, Local4, Local5)
                                Return (Local5)
                            }

  06 - On/Off BT            If (LEqual (Local1, 0x06))
                            {
			        And (Local2, One, Local3)
		                And (Local2, 0x02, Local4)
                                ShiftRight (Local4, One, Local5)
		                ^^EC0.STEC (0x8262, Local5)			SBTB
                                ^^EC0.STEC (0x826A, Local3)			SNCD
                            }

  07 - Query WWAN           If (LEqual (Local1, 0x07))
       WWAN power           {
       WWAN switch              And (One, ^^EC0.GTEC (0x0233), Local0)		WWNP
       WWAN RF                  And (One, ^^EC0.GTEC (0x0263), Local1)		SWWB
                                ShiftLeft (Local1, One, Local2)
                                Or (Local0, Local2, Local3)
                                And (One, ^^EC0.GTEC (0x0235), Local0)		WRFP
                                ShiftLeft (Local0, 0x02, Local2)
                                Or (Local3, Local2, Local1)
       WRFP/SWWB/WWNP           Return (Local1)
                            }

  08 - On/Off WWAN          If (LEqual (Local1, 0x08))
                            {
                                And (Local2, One, Local4)
                                And (Local2, 0x02, Local5)
                                ShiftRight (Local5, One, Local6)
                                ^^EC0.STEC (0x8263, Local6)			SWWB
                                ^^EC0.STEC (0x826B, Local4)			SNCD WWAN on 1
                                And (Local2, 0x04, Local4)
                                ShiftRight (Local4, 0x02, Local5)
                                ^^EC0.STEC (0x826C, Local5)			SNCD WWAN on 2
                            }

  09 - Query Wi-Max         If (LEqual (Local1, 0x09))
                            {
                                And (^^EC0.GTEC (0x0234), One, Local2)		WIMP
                                And (^^EC0.GTEC (0x0264), One, Local3)		SWIM
                                ShiftLeft (Local3, One, Local4)
                                Or (Local2, Local4, Local5)
                                Return (Local5)
                            }

  0A - On/Off Wi-Max        If (LEqual (Local1, 0x0A))
                            {
                                And (Local2, One, Local3)
                                And (Local2, 0x02, Local4)
                                ShiftRight (Local4, One, Local5)
                                ^^EC0.STEC (0x8264, Local5)			SWIM
                                ^^EC0.STEC (0x826D, Local3)			SNCD
                            }
                        }
----------------------------------------------------------------------------------------------
0A Battery Care         If (LEqual (Local0, 0x0A))
0x136                   {
                            And (Local1, 0x03, Local1)
  00 - get BC settings      If (LEqual (Local1, Zero))
		            {
                                Store (^^EC0.GTEC (0x0305), Local2)		BCCS
                                And (Local2, 0xF1, Local2)			// Battery Care Charge Settings
                                Return (Local2)
                            }

  01 - set BC settings      If (LEqual (Local1, One))
                            {
                                If (And (Local2, 0x02))		<--- storing on battery?
                                {

                                    Store (^^EC0.GTEC (0x0305), Local3)		BCCS
                                    And (Local2, 0xF1, Local2)
                                    And (Local3, 0x04, Local3)
                                    Or (Local3, Local2, Local2)
                                    ^^EC0.STEC (0x82A1, Local2)			BCCS
                                    ^^EC0.STEC (0x82A2, One)			SBCM
                                }
                                Else
                                {
                                    Store (^^EC0.GTEC (0x0305), Local3)		BCCS
                                    And (Local2, 0x31, Local2)
			            And (Local3, 0xC4, Local3)
		                    Or (Local3, Local2, Local2)
        	                    ^^EC0.STEC (0x82A1, Local2)			BCCS
			            ^^EC0.STEC (0x82A2, One)			SBCM
				}

                                Return (Zero)
                            }

  02 - Returns BCRD         If (LEqual (Local1, 0x02))
		            {
			        Store (^^EC0.GTEC (0x030A), Local1)		BCRD	
		                Return (Local1)					// Battery Care Replacement Data?
                            }
                        }
----------------------------------------------------------------------------------------------
0B  Backlight + ALS     If (LEqual (Local0, 0x0B))
0x137                   {
  00 - defaults LCD         And (Local1, 0x0F, Local1)
       values for           If (LEqual (Local1, Zero))
       key LCD controls?    {
       (Get parameter)          Store (LSPT, VAL0)		Light Sensor Parameters Table
                                Return (VAL0)
                            }

  01 - screen backlight     If (LEqual (Local1, One))
       set                  {
                                If (LEqual (PEGF, Zero))
                                {
                                    ^^^GFX0.AINT (One, Local2)
                                }
                                Else
                                {
                                    ^^^P0P2.NINT (0x02, Local2)
                                }

                                Return (Zero)
                            }

  02 - screen backlight     If (LEqual (Local1, 0x02))
       get                  {
                                If (LEqual (PEGF, One))
                                {
                                    Store (^^^P0P2.NINT (One, Zero), LCDB)
                                }

                                Return (LCDB)
                            }

  03 - ALS CMD:		    If (LEqual (Local1, 0x03))
         send byte          {
                                ^^EC0.STEC (0x2305, Local2)			LSHC
                                ^^EC0.STEC (0x2300, Local1)			LSCM
                                ^^EC0.STEC (0x2302, One)			LSEF
                                Store (One, Local2)
                                Store (Zero, Local1)
                                While (LEqual (Local2, One))
                                {
                                    If (LEqual (Local1, 0x50))
                                    {
                                        Return (Zero)
                                    }

                                    Sleep (0x05)
                                    Increment (Local1)
                                    Store (^^EC0.GTEC (0x230B), Local2)		LSEF
                                }

                                Store (^^EC0.GTEC (0x2303), Local2)		LSER
                                If (LEqual (Local2, One))
                                {
                                    Return (Zero)
                                }

                                Return (One)
                            }

  04 - ALS CMD: 	    If (LEqual (Local1, 0x04))
         read  byte         {
			        ^^EC0.STEC (0x2305, Local2)			LSHC
			        ^^EC0.STEC (0x2300, Local1)			LSCM
                                ^^EC0.STEC (0x2302, One)			LSEF
                                Store (One, Local2)
                                Store (Zero, Local1)
                                While (LEqual (Local2, One))
                                {
                                    If (LEqual (Local1, 0x50))
                                    {
                                        Return (Zero)
                                    }

                                    Sleep (0x05)
                                    Increment (Local1)
                                    Store (^^EC0.GTEC (0x230B), Local2)		LSEF
                                }

                                Store (^^EC0.GTEC (0x2303), Local2)		LSER
                                If (LEqual (Local2, One))
                                {
                                    Return (Zero)
                                }

                                Store (^^EC0.GTEC (0x2308), Local4)		WDBL
                                ShiftLeft (Local4, 0x08, Local4)
                                Or (Local4, One, Local4)
                                Return (Local4)
                            }

  05 - ALS CMD:             If (LEqual (Local1, 0x05))
         write byte         {
			        ^^EC0.STEC (0x2305, Local2)			LSHC
		                ^^EC0.STEC (0x2300, Local1)			LSCM
                                ^^EC0.STEC (0x2306, Local3)			RDBL
                                ^^EC0.STEC (0x2302, One)			LSEF
                                Store (One, Local2)
                                Store (Zero, Local1)
                                While (LEqual (Local2, One))
                                {
                                    If (LEqual (Local1, 0x50))
                                    {
                                        Return (Zero)
                                    }

                                    Sleep (0x05)
                                    Increment (Local1)
                                    Store (^^EC0.GTEC (0x230B), Local2)		LSEF
                                }

                                Store (^^EC0.GTEC (0x2303), Local2)		LSER
                                If (LEqual (Local2, One))
                                {
                                    Return (Zero)
                                }

                                Return (One)
                            }

  06 - ALS CMD:             If (LEqual (Local1, 0x06))
         read word          {
			        ^^EC0.STEC (0x2305, Local2)			LSHC
        			^^EC0.STEC (0x2300, Local1)			LSCM
		                ^^EC0.STEC (0x2302, One)			LSEF
                                Store (One, Local2)
                                Store (Zero, Local1)
                                While (LEqual (Local2, One))
                                {
                                    If (LEqual (Local1, 0x50))
                                    {
                                        Return (Zero)
                                    }

                                    Sleep (0x05)
                                    Increment (Local1)
                                    Store (^^EC0.GTEC (0x230B), Local2)		LSEF
                                }

                                Store (^^EC0.GTEC (0x2303), Local2)		LSER
                                If (LEqual (Local2, One))
                                {
                                    Return (Zero)
                                }

                                Store (^^EC0.GTEC (0x2308), Local4)		WDBL
                                Store (^^EC0.GTEC (0x2309), Local5)		WDBH
                                ShiftLeft (Local5, 0x10, Local5)
                                ShiftLeft (Local4, 0x08, Local4)
                                Add (Local5, Local4, Local5)
                                Or (Local5, One, Local5)

                                Return (Local5)
                            }

  07 - ALS CMD:            If (LEqual (Local1, 0x07))
         write word        {
			        ^^EC0.STEC (0x2305, Local2)			LSHC
        		        ^^EC0.STEC (0x2300, Local1)			LSCM
                                ^^EC0.STEC (0x2306, Local3)			RDBL

                                ^^EC0.STEC (0x2307, Local4)			RDBH
                                ^^EC0.STEC (0x2302, One)			LSEF
                                Store (One, Local2)
                                Store (Zero, Local1)
                                While (LEqual (Local2, One))
                                {
                                    If (LEqual (Local1, 0x50))
                                    {
                                        Return (Zero)
                                    }

                                    Sleep (0x05)
                                    Increment (Local1)
                                    Store (^^EC0.GTEC (0x230B), Local2)		LSEF
                                }

                                Store (^^EC0.GTEC (0x2303), Local2)		LSER
                                If (LEqual (Local2, One))
                                {
                                    Return (Zero)
                                }

                                Return (One)
                            }

  08 - ALS event reason     If (LEqual (Local1, 0x08))
       		            {
       			        And (BCME, 0x03, Local2)
                                Return (Local2)
                            }

  09 - Enable/Disable       If (LEqual (Local1, 0x09))	
       ALS event	    {
       notification             And (Local2, One, Local2)
       on interrupt             ^^EC0.STEC (0x2301, Local2)		LSEN
                                Return (Zero)
                            }

  0A - Get Notification    If (LEqual (Local1, 0x0A))
       enabled		   {
      	         	        Store (^^EC0.GTEC (0x230A), Local2)	LSEN
                                Return (Local2)
                           }

  0B - ALS and KBD 	   If (LEqual (Local1, 0x0B))
       backlight presence  {
	(ALS bit 0)             Store (Zero, Local2)
	(KBD bit 1)		If (^^EC0.GTEC (0x8306))		LSPS
	1 present 0 absent	{
                                    Or (Local2, One, Local2)
                                }

                                If (^^EC0.GTEC (0x8307))		KBPS
                                {
                                    Or (Local2, 0x02, Local2)
                                }

                                Return (Local2)
                            }

  0C - Enable/disable	    If (LEqual (Local1, 0x0C))
       the keyboard	    {
       backlight (enlights      And (Local2, One, Local2)
       on key pressure          ^^EC0.STEC (0x230C, Local2)		KBBP
       for KBTC secs)		Return (Zero)
                            }

  0D - Immediately turns    If (LEqual (Local1, 0x0D))
       on or off the kbd    {
       backlight                And (Local2, One, Local2)
                                ^^EC0.STEC (0x230E, Local2)
                                Return (Zero)
                            }

  0E - set kbd backlight    If (LEqual (Local1, 0x0E))
       duration before      {
       fading out               And (Local2, 0x03, Local2)
                                If (LEqual (Local2, Zero))
   	   00 -> 10 sec         {
           01 -> 30 sec             ^^EC0.STEC (0x8308, Zero)		KBFG
           02 -> 60 sec             ^^EC0.STEC (0x230D, 0x0A)		KBTC
           03 -> always on      }

                                If (LEqual (Local2, One))
                                {
                                    ^^EC0.STEC (0x8308, Zero)		KBFG
                                    ^^EC0.STEC (0x230D, 0x1E)		KBTC
                                }

                                If (LEqual (Local2, 0x02))
                                {
                                    ^^EC0.STEC (0x8308, Zero)		KBFG
                                    ^^EC0.STEC (0x230D, 0x3C)		KBTC
                                }

                                If (LEqual (Local2, 0x03))
                                {
                                    ^^EC0.STEC (0x8308, One)		KBFG
                                    ^^EC0.STEC (0x230D, 0xFF)		KBTC
                                }

                                Return (Zero)
                            }

                            Return (Zero)
                        }
----------------------------------------------------------------------------------------------
0C Power		If (LEqual (Local0, 0x0C))
   related              {
                            And (Local1, 0x0F, Local1)
0x13A                       If (LEqual (Local1, Zero))
                            {
                                Store (^^EC0.GTEC (0x8400), Local2)		WKRN
                                If (LEqual (Local2, 0x02))		(wakeup reason number?)
                                {
  0 - system woke up                Store (One, Local2)
      pressing "Assist"         }
                                Else
                                {
                                    Store (Zero, Local2)
                                }

                                Return (Local2)
                            }

  1 - enter the bios        If (LEqual (Local1, One))
      on the next reboot    {
                                And (Local2, One, Local2)
                                ^^EC0.STEC (0x8401, Local2)			AFLG
                                Return (Zero)
                            }
                        }
                    }
----------------------------------------------------------------------------------------------