Subversion Repositories Kolibri OS

Rev

Rev 1498 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1498 Rev 2216
1
/*
1
/*
2
 * Some or all of this work - Copyright (c) 2006 - 2010, Intel Corp.
2
 * Some or all of this work - Copyright (c) 2006 - 2011, Intel Corp.
3
 * All rights reserved.
3
 * All rights reserved.
4
 *
4
 *
5
 * Redistribution and use in source and binary forms, with or without modification,
5
 * Redistribution and use in source and binary forms, with or without modification,
6
 * are permitted provided that the following conditions are met:
6
 * are permitted provided that the following conditions are met:
7
 *
7
 *
8
 * Redistributions of source code must retain the above copyright notice,
8
 * Redistributions of source code must retain the above copyright notice,
9
 * this list of conditions and the following disclaimer.
9
 * this list of conditions and the following disclaimer.
10
 * Redistributions in binary form must reproduce the above copyright notice,
10
 * Redistributions in binary form must reproduce the above copyright notice,
11
 * this list of conditions and the following disclaimer in the documentation
11
 * this list of conditions and the following disclaimer in the documentation
12
 * and/or other materials provided with the distribution.
12
 * and/or other materials provided with the distribution.
13
 * Neither the name of Intel Corporation nor the names of its contributors
13
 * Neither the name of Intel Corporation nor the names of its contributors
14
 * may be used to endorse or promote products derived from this software
14
 * may be used to endorse or promote products derived from this software
15
 * without specific prior written permission.
15
 * without specific prior written permission.
16
 *
16
 *
17
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
20
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
25
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
 */
27
 */
28
 
28
 
29
//
29
//
30
//
30
//
31
// Grammar.asl - Minimally excercises most ASL constructs
31
// Grammar.asl - Minimally excercises most ASL constructs
32
//
32
//
33
// NOTE -- use: iasl -f -of grammar.asl to compile
33
// NOTE -- use: iasl -f -of grammar.asl to compile
34
//
34
//
35
//         This 1) Ignores errors (checks compiler error handling)
35
//         This 1) Ignores errors (checks compiler error handling)
36
//              2) Disables constant folding
36
//              2) Disables constant folding
37
//
37
//
38
//
38
//
39
 
39
 
40
/*******************************************************************************
40
/*******************************************************************************
41
Compilation should look like this:
41
Compilation should look like this:
42
 
42
 
43
C:\acpica\tests\misc>iasl -f -of grammar.asl
43
C:\acpica\tests\misc>iasl -f -of grammar.asl
44
 
44
 
45
Intel ACPI Component Architecture
45
Intel ACPI Component Architecture
46
ASL Optimizing Compiler version 20090422 [Apr 22 2009]
46
ASL Optimizing Compiler version 20090422 [Apr 22 2009]
47
Copyright (C) 2000 - 2009 Intel Corporation
47
Copyright (C) 2000 - 2009 Intel Corporation
48
Supports ACPI Specification Revision 3.0a
48
Supports ACPI Specification Revision 3.0a
49
 
49
 
50
grammar.asl   187:     Name (_NPK, Package (8)
50
grammar.asl   187:     Name (_NPK, Package (8)
51
Warning  1098 -                 ^ Unknown reserved name (_NPK)
51
Warning  1098 -                 ^ Unknown reserved name (_NPK)
52
 
52
 
53
grammar.asl   510:     NAME (ESC1, "abcdefg\x00hijklmn")
53
grammar.asl   510:     NAME (ESC1, "abcdefg\x00hijklmn")
54
Warning  1042 -                                ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
54
Warning  1042 -                                ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
55
 
55
 
56
grammar.asl   511:     NAME (ESC2, "abcdefg\000hijklmn")
56
grammar.asl   511:     NAME (ESC2, "abcdefg\000hijklmn")
57
Warning  1042 -                                ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
57
Warning  1042 -                                ^ Invalid Hex/Octal Escape - Non-ASCII or NULL
58
 
58
 
59
grammar.asl   601:     Method (RCIV, 1)
59
grammar.asl   601:     Method (RCIV, 1)
60
Warning  1087 -                   ^ Not all control paths return a value (RCIV)
60
Warning  1087 -                   ^ Not all control paths return a value (RCIV)
61
 
61
 
62
grammar.asl   608:         RCIV (Subtract (Arg0, 1))
62
grammar.asl   608:         RCIV (Subtract (Arg0, 1))
63
Remark   5073 -               ^ Recursive method call (RCIV)
63
Remark   5073 -               ^ Recursive method call (RCIV)
64
 
64
 
65
grammar.asl   937:     Method (_ERR, 2)
65
grammar.asl   937:     Method (_ERR, 2)
66
Warning  1077 -                   ^ Reserved method has too few arguments (_ERR requires 3)
66
Warning  1077 -                   ^ Reserved method has too few arguments (_ERR requires 3)
67
 
67
 
68
grammar.asl  1377:         Store (0x1234567887654321, QWD2)
68
grammar.asl  1377:         Store (0x1234567887654321, QWD2)
69
Warning  1032 -                                    ^ 64-bit integer in 32-bit table, truncating
69
Warning  1032 -                                    ^ 64-bit integer in 32-bit table, truncating
70
 
70
 
71
grammar.asl  1379:         if (LNotEqual (Local0, 0x1234567887654321))
71
grammar.asl  1379:         if (LNotEqual (Local0, 0x1234567887654321))
72
Warning  1032 -         64-bit integer in 32-bit table, truncating ^
72
Warning  1032 -         64-bit integer in 32-bit table, truncating ^
73
 
73
 
74
grammar.asl  1459:         SizeOf (BUFO)
74
grammar.asl  1459:         SizeOf (BUFO)
75
Warning  1105 -                       ^ Result is not used, operator has no effect
75
Warning  1105 -                       ^ Result is not used, operator has no effect
76
 
76
 
77
grammar.asl  1485:         Acquire (MTX2, 1)
77
grammar.asl  1485:         Acquire (MTX2, 1)
78
Warning  1104 -                           ^ Possible operator timeout is ignored
78
Warning  1104 -                           ^ Possible operator timeout is ignored
79
 
79
 
80
grammar.asl  1633:         Add (Local0, Local1)
80
grammar.asl  1633:         Add (Local0, Local1)
81
Warning  1105 -                      ^ Result is not used, operator has no effect
81
Warning  1105 -                      ^ Result is not used, operator has no effect
82
 
82
 
83
grammar.asl  1804:     Method (COND)
83
grammar.asl  1804:     Method (COND)
84
Warning  1087 -                   ^ Not all control paths return a value (COND)
84
Warning  1087 -                   ^ Not all control paths return a value (COND)
85
 
85
 
86
grammar.asl  6010:             Name (_HID, "*PNP0A06")
86
grammar.asl  6010:             Name (_HID, "*PNP0A06")
87
Error    4001 -                                     ^ String must be entirely alphanumeric (*PNP0A06)
87
Error    4001 -                                     ^ String must be entirely alphanumeric (*PNP0A06)
88
 
88
 
89
grammar.asl  6461:             Name (_CRS, Buffer(26)  {"\_SB_.PCI2._CRS..........."})
89
grammar.asl  6461:             Name (_CRS, Buffer(26)  {"\_SB_.PCI2._CRS..........."})
90
Warning  1038 -        Invalid or unknown escape sequence ^
90
Warning  1038 -        Invalid or unknown escape sequence ^
91
 
91
 
92
grammar.asl  6800:                 And (Local0, 1, Local0) //  Local0 &= 1
92
grammar.asl  6800:                 And (Local0, 1, Local0) //  Local0 &= 1
93
Error    4050 -                              ^ Method local variable is not initialized (Local0)
93
Error    4050 -                              ^ Method local variable is not initialized (Local0)
94
 
94
 
95
grammar.asl  6886:             Name (_HID, "*PNP0C0A")     //  Control Method Battey ID
95
grammar.asl  6886:             Name (_HID, "*PNP0C0A")     //  Control Method Battey ID
96
Error    4001 -                                     ^ String must be entirely alphanumeric (*PNP0C0A)
96
Error    4001 -                                     ^ String must be entirely alphanumeric (*PNP0C0A)
97
 
97
 
98
ASL Input:  grammar.asl - 10254 lines, 322162 bytes, 4810 keywords
98
ASL Input:  grammar.asl - 10254 lines, 322162 bytes, 4810 keywords
99
AML Output: grammar.aml - 43392 bytes, 669 named objects, 4141 executable opcodes
99
AML Output: grammar.aml - 43392 bytes, 669 named objects, 4141 executable opcodes
100
 
100
 
101
Compilation complete. 3 Errors, 12 Warnings, 1 Remarks, 1101 Optimizations
101
Compilation complete. 3 Errors, 12 Warnings, 1 Remarks, 1101 Optimizations
102
 
102
 
103
***************************************************************************************************/
103
***************************************************************************************************/
104
 
104
 
105
DefinitionBlock (
105
DefinitionBlock (
106
    "grammar.aml",      //Output filename
106
    "grammar.aml",      //Output filename
107
    "DSDT",             //Signature
107
    "DSDT",             //Signature
108
    0x01,               //DSDT Revision ---> 32-bit table
108
    0x01,               //DSDT Revision ---> 32-bit table
109
    "Intel",            //OEMID
109
    "Intel",            //OEMID
110
    "GRMTEST",          //TABLE ID
110
    "GRMTEST",          //TABLE ID
111
    0x20090511          //OEM Revision
111
    0x20090511          //OEM Revision
112
    )
112
    )
113
{
113
{
114
 
114
 
115
    External (\ABCD, UnknownObj)
115
    External (\ABCD, UnknownObj)
116
 
116
 
117
 
117
 
118
    /* Device with _STA and _INI */
118
    /* Device with _STA and _INI */
119
 
119
 
120
    Device (A1)
120
    Device (A1)
121
    {
121
    {
122
        Method (_STA)
122
        Method (_STA)
123
        {
123
        {
124
            Return (0x0F)
124
            Return (0x0F)
125
        }
125
        }
126
 
126
 
127
        Method (_INI)
127
        Method (_INI)
128
        {
128
        {
129
            Return
129
            Return
130
        }
130
        }
131
    }
131
    }
132
 
132
 
133
    /* Device with no _STA, has _INI */
133
    /* Device with no _STA, has _INI */
134
 
134
 
135
    Device (A2)
135
    Device (A2)
136
    {
136
    {
137
        Method (_INI)
137
        Method (_INI)
138
        {
138
        {
139
            Return
139
            Return
140
        }
140
        }
141
    }
141
    }
142
 
142
 
143
    /* Device with _STA, no _INI */
143
    /* Device with _STA, no _INI */
144
 
144
 
145
    Device (A3)
145
    Device (A3)
146
    {
146
    {
147
        Method (_STA)
147
        Method (_STA)
148
        {
148
        {
149
            Return (0x0F)
149
            Return (0x0F)
150
        }
150
        }
151
    }
151
    }
152
 
152
 
153
    /* Device with _STA and _INI, but not present */
153
    /* Device with _STA and _INI, but not present */
154
 
154
 
155
    Device (A4)
155
    Device (A4)
156
    {
156
    {
157
        Method (_STA)
157
        Method (_STA)
158
        {
158
        {
159
            Return (Zero)
159
            Return (Zero)
160
        }
160
        }
161
 
161
 
162
        Method (_INI)
162
        Method (_INI)
163
        {
163
        {
164
            Return
164
            Return
165
        }
165
        }
166
    }
166
    }
167
 
167
 
168
 
168
 
169
    /* Resource descriptors */
169
    /* Resource descriptors */
170
 
170
 
171
    Device (IRES)
171
    Device (IRES)
172
    {
172
    {
173
        Name (PRT0, ResourceTemplate ()
173
        Name (PRT0, ResourceTemplate ()
174
        {
174
        {
175
            IRQ (Edge, ActiveHigh, Exclusive) {3,4,5,6,7,9,10,11,14,15}
175
            IRQ (Edge, ActiveHigh, Exclusive) {3,4,5,6,7,9,10,11,14,15}
176
 
176
 
177
            StartDependentFn (1,1)
177
            StartDependentFn (1,1)
178
            {
178
            {
179
                IRQNoFlags () {0,1,2}
179
                IRQNoFlags () {0,1,2}
180
            }
180
            }
181
            EndDependentFn ()
181
            EndDependentFn ()
182
        })
182
        })
183
 
183
 
184
        Method (_CRS, 0, NotSerialized)
184
        Method (_CRS, 0, NotSerialized)
185
        {
185
        {
186
            Store ("_CRS:", Debug)
186
            Store ("_CRS:", Debug)
187
            Store (PRT0, Debug)
187
            Store (PRT0, Debug)
188
            Return (PRT0)
188
            Return (PRT0)
189
        }
189
        }
190
 
190
 
191
        Method (_SRS, 1, Serialized)
191
        Method (_SRS, 1, Serialized)
192
        {
192
        {
193
            Store ("_SRS:", Debug)
193
            Store ("_SRS:", Debug)
194
            Store (Arg0, Debug)
194
            Store (Arg0, Debug)
195
            Return (Zero)
195
            Return (Zero)
196
        }
196
        }
197
    }
197
    }
198
 
198
 
199
    Name (_NPK, Package ()
199
    Name (_NPK, Package ()
200
    {
200
    {
201
        0x1111,
201
        0x1111,
202
        0x2222,
202
        0x2222,
203
        0x3333,
203
        0x3333,
204
        0x4444
204
        0x4444
205
    })
205
    })
206
 
206
 
207
 
207
 
208
    Device (RES)
208
    Device (RES)
209
    {
209
    {
210
        Name (_PRT, Package (0x04)
210
        Name (_PRT, Package (0x04)
211
        {
211
        {
212
            Package (0x04)
212
            Package (0x04)
213
            {
213
            {
214
                0x0002FFFF,
214
                0x0002FFFF,
215
                Zero,
215
                Zero,
216
                Zero,
216
                Zero,
217
                Zero
217
                Zero
218
            },
218
            },
219
 
219
 
220
            Package (0x04)
220
            Package (0x04)
221
            {
221
            {
222
                0x0002FFFF,
222
                0x0002FFFF,
223
                One,
223
                One,
224
                Zero,
224
                Zero,
225
                Zero
225
                Zero
226
            },
226
            },
227
 
227
 
228
            Package (0x04)
228
            Package (0x04)
229
            {
229
            {
230
                0x000AFFFF,
230
                0x000AFFFF,
231
                Zero,
231
                Zero,
232
                Zero,
232
                Zero,
233
                Zero
233
                Zero
234
            },
234
            },
235
 
235
 
236
            Package (0x04)
236
            Package (0x04)
237
            {
237
            {
238
                0x000BFFFF,
238
                0x000BFFFF,
239
                Zero,
239
                Zero,
240
                Zero,
240
                Zero,
241
                Zero
241
                Zero
242
            }
242
            }
243
        })
243
        })
244
 
244
 
245
        Method (_CRS, 0, NotSerialized)
245
        Method (_CRS, 0, NotSerialized)
246
        {
246
        {
247
            Name (PRT0, ResourceTemplate ()
247
            Name (PRT0, ResourceTemplate ()
248
            {
248
            {
249
                WordBusNumber (ResourceConsumer, MinFixed, MaxFixed, SubDecode,
249
                WordBusNumber (ResourceConsumer, MinFixed, MaxFixed, SubDecode,
250
                    0x0000, // Address Space Granularity
250
                    0x0000, // Address Space Granularity
251
                    0xFFF2, // Address Range Minimum
251
                    0xFFF2, // Address Range Minimum
252
                    0xFFF3, // Address Range Maximum
252
                    0xFFF3, // Address Range Maximum
253
                    0x0032, // Address Translation Offset
253
                    0x0032, // Address Translation Offset
254
                    0x0002,,,)
254
                    0x0002,,,)
255
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
255
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
256
                    0x0000, // Address Space Granularity
256
                    0x0000, // Address Space Granularity
257
                    0x0000, // Address Range Minimum
257
                    0x0000, // Address Range Minimum
258
                    0x00FF, // Address Range Maximum
258
                    0x00FF, // Address Range Maximum
259
                    0x0000, // Address Translation Offset
259
                    0x0000, // Address Translation Offset
260
                    0x0100,,,)
260
                    0x0100,,,)
261
                WordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
261
                WordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
262
                    0x0000, // Address Space Granularity
262
                    0x0000, // Address Space Granularity
263
                    0xA000, // Address Range Minimum
263
                    0xA000, // Address Range Minimum
264
                    0xBFFF, // Address Range Maximum
264
                    0xBFFF, // Address Range Maximum
265
                    0x0000, // Address Translation Offset
265
                    0x0000, // Address Translation Offset
266
                    0x2000,,,)
266
                    0x2000,,,)
267
                IO (Decode16, 0x0CF8, 0x0CFF, 0x01, 0x08)
267
                IO (Decode16, 0x0CF8, 0x0CFF, 0x01, 0x08)
268
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
268
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
269
                    0x0000, // Address Space Granularity
269
                    0x0000, // Address Space Granularity
270
                    0x0000, // Address Range Minimum
270
                    0x0000, // Address Range Minimum
271
                    0x0CF7, // Address Range Maximum
271
                    0x0CF7, // Address Range Maximum
272
                    0x0000, // Address Translation Offset
272
                    0x0000, // Address Translation Offset
273
                    0x0CF8,,,
273
                    0x0CF8,,,
274
                    , TypeStatic)
274
                    , TypeStatic)
275
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
275
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
276
                    0x0000, // Address Space Granularity
276
                    0x0000, // Address Space Granularity
277
                    0x0D00, // Address Range Minimum
277
                    0x0D00, // Address Range Minimum
278
                    0xFFFF, // Address Range Maximum
278
                    0xFFFF, // Address Range Maximum
279
                    0x0000, // Address Translation Offset
279
                    0x0000, // Address Translation Offset
280
                    0xF300,,,
280
                    0xF300,,,
281
                    , TypeStatic)
281
                    , TypeStatic)
282
                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
282
                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
283
                    0x00000000, // Address Space Granularity
283
                    0x00000000, // Address Space Granularity
284
                    0x00000000, // Address Range Minimum
284
                    0x00000000, // Address Range Minimum
285
                    0x00000CF7, // Address Range Maximum
285
                    0x00000CF7, // Address Range Maximum
286
                    0x00000000, // Address Translation Offset
286
                    0x00000000, // Address Translation Offset
287
                    0x00000CF8,,,
287
                    0x00000CF8,,,
288
                    , TypeStatic)
288
                    , TypeStatic)
289
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
289
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
290
                    0x00000000, // Address Space Granularity
290
                    0x00000000, // Address Space Granularity
291
                    0x000C8000, // Address Range Minimum
291
                    0x000C8000, // Address Range Minimum
292
                    0x000EFFFF, // Address Range Maximum
292
                    0x000EFFFF, // Address Range Maximum
293
                    0x00000000, // Address Translation Offset
293
                    0x00000000, // Address Translation Offset
294
                    0x00028000,,,
294
                    0x00028000,,,
295
                    , AddressRangeMemory, TypeStatic)
295
                    , AddressRangeMemory, TypeStatic)
296
                DWordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
296
                DWordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
297
                    0x00000000, // Address Space Granularity
297
                    0x00000000, // Address Space Granularity
298
                    0x000C8000, // Address Range Minimum
298
                    0x000C8000, // Address Range Minimum
299
                    0x000EFFFF, // Address Range Maximum
299
                    0x000EFFFF, // Address Range Maximum
300
                    0x00000000, // Address Translation Offset
300
                    0x00000000, // Address Translation Offset
301
                    0x00028000,,,)
301
                    0x00028000,,,)
302
                QWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
302
                QWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
303
                    0x0000000000000000, // Address Space Granularity
303
                    0x0000000000000000, // Address Space Granularity
304
                    0x0000000000000000, // Address Range Minimum
304
                    0x0000000000000000, // Address Range Minimum
305
                    0x0000000000000CF7, // Address Range Maximum
305
                    0x0000000000000CF7, // Address Range Maximum
306
                    0x0000000000000000, // Address Translation Offset
306
                    0x0000000000000000, // Address Translation Offset
307
                    0x0000000000000CF8, 0x44, "This is a ResouceSource string",
307
                    0x0000000000000CF8, 0x44, "This is a ResouceSource string",
308
                    , TypeStatic)
308
                    , TypeStatic)
309
                QWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
309
                QWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
310
                    0x0000000000000000, // Address Space Granularity
310
                    0x0000000000000000, // Address Space Granularity
311
                    0x0000000000000000, // Address Range Minimum
311
                    0x0000000000000000, // Address Range Minimum
312
                    0x0000000000000CF7, // Address Range Maximum
312
                    0x0000000000000CF7, // Address Range Maximum
313
                    0x0000000000000000, // Address Translation Offset
313
                    0x0000000000000000, // Address Translation Offset
314
                    0x0000000000000CF8,,,
314
                    0x0000000000000CF8,,,
315
                    , TypeStatic)
315
                    , TypeStatic)
316
                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
316
                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
317
                    0x0000000000000000, // Address Space Granularity
317
                    0x0000000000000000, // Address Space Granularity
318
                    0x0000000000100000, // Address Range Minimum
318
                    0x0000000000100000, // Address Range Minimum
319
                    0x00000000FFDFFFFF, // Address Range Maximum
319
                    0x00000000FFDFFFFF, // Address Range Maximum
320
                    0x0000000000000000, // Address Translation Offset
320
                    0x0000000000000000, // Address Translation Offset
321
                    0x00000000FFD00000,,,
321
                    0x00000000FFD00000,,,
322
                    , AddressRangeMemory, TypeStatic)
322
                    , AddressRangeMemory, TypeStatic)
323
                QWordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
323
                QWordSpace (0xC3, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xA5,
324
                    0x0000000000000000, // Address Space Granularity
324
                    0x0000000000000000, // Address Space Granularity
325
                    0x0000000000000000, // Address Range Minimum
325
                    0x0000000000000000, // Address Range Minimum
326
                    0x0000000000000CF7, // Address Range Maximum
326
                    0x0000000000000CF7, // Address Range Maximum
327
                    0x0000000000000000, // Address Translation Offset
327
                    0x0000000000000000, // Address Translation Offset
328
                    0x0000000000000CF8,,,)
328
                    0x0000000000000CF8,,,)
329
                ExtendedIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
329
                ExtendedIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
330
                    0x0000000000000000, // Address Space Granularity
330
                    0x0000000000000000, // Address Space Granularity
331
                    0x0000000000000000, // Address Range Minimum
331
                    0x0000000000000000, // Address Range Minimum
332
                    0x0000000000000CF7, // Address Range Maximum
332
                    0x0000000000000CF7, // Address Range Maximum
333
                    0x0000000000000000, // Address Translation Offset
333
                    0x0000000000000000, // Address Translation Offset
334
                    0x0000000000000CF8, // Address Length
334
                    0x0000000000000CF8, // Address Length
335
                    0x0000000000000000, // Type Specific Attributes
335
                    0x0000000000000000, // Type Specific Attributes
336
                    , TypeStatic)
336
                    , TypeStatic)
337
                ExtendedMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
337
                ExtendedMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
338
                    0x0000000000000000, // Address Space Granularity
338
                    0x0000000000000000, // Address Space Granularity
339
                    0x0000000000100000, // Address Range Minimum
339
                    0x0000000000100000, // Address Range Minimum
340
                    0x00000000FFDFFFFF, // Address Range Maximum
340
                    0x00000000FFDFFFFF, // Address Range Maximum
341
                    0x0000000000000000, // Address Translation Offset
341
                    0x0000000000000000, // Address Translation Offset
342
                    0x00000000FFD00000, // Address Length
342
                    0x00000000FFD00000, // Address Length
343
                    0x0000000000000000, // Type Specific Attributes
343
                    0x0000000000000000, // Type Specific Attributes
344
                    , AddressRangeMemory, TypeStatic)
344
                    , AddressRangeMemory, TypeStatic)
345
                ExtendedSpace (0xC3, ResourceProducer, PosDecode, MinFixed, MaxFixed, 0xA3,
345
                ExtendedSpace (0xC3, ResourceProducer, PosDecode, MinFixed, MaxFixed, 0xA3,
346
                    0x0000000000000000, // Address Space Granularity
346
                    0x0000000000000000, // Address Space Granularity
347
                    0x0000000000100000, // Address Range Minimum
347
                    0x0000000000100000, // Address Range Minimum
348
                    0x00000000FFDFFFFF, // Address Range Maximum
348
                    0x00000000FFDFFFFF, // Address Range Maximum
349
                    0x0000000000000000, // Address Translation Offset
349
                    0x0000000000000000, // Address Translation Offset
350
                    0x00000000FFD00000, // Address Length
350
                    0x00000000FFD00000, // Address Length
351
                    0x0000000000000000) // Type Specific Attributes
351
                    0x0000000000000000) // Type Specific Attributes
352
                IO (Decode16, 0x0010, 0x0020, 0x01, 0x10)
352
                IO (Decode16, 0x0010, 0x0020, 0x01, 0x10)
353
                IO (Decode16, 0x0090, 0x00A0, 0x01, 0x10)
353
                IO (Decode16, 0x0090, 0x00A0, 0x01, 0x10)
354
                FixedIO (0x0061, 0x01)
354
                FixedIO (0x0061, 0x01)
355
                IRQNoFlags () {2}
355
                IRQNoFlags () {2}
356
                DMA (Compatibility, BusMaster, Transfer8_16) {4}
356
                DMA (Compatibility, BusMaster, Transfer8_16) {4}
357
                DMA (Compatibility, BusMaster, Transfer8) {2,5,7}
357
                DMA (Compatibility, BusMaster, Transfer8) {2,5,7}
358
                Memory32Fixed (ReadWrite, 0x00100000, 0x00000000)
358
                Memory32Fixed (ReadWrite, 0x00100000, 0x00000000)
359
                Memory32Fixed (ReadOnly, 0xFFFE0000, 0x00020000)
359
                Memory32Fixed (ReadOnly, 0xFFFE0000, 0x00020000)
360
                Memory32 (ReadOnly, 0x00020000, 0xFFFE0000, 0x00000004, 0x00000200)
360
                Memory32 (ReadOnly, 0x00020000, 0xFFFE0000, 0x00000004, 0x00000200)
361
                Memory24 (ReadOnly, 0x1111, 0x2222, 0x0004, 0x0200)
361
                Memory24 (ReadOnly, 0x1111, 0x2222, 0x0004, 0x0200)
362
                Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, 0xE, "\\_SB_.TEST")
362
                Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, 0xE, "\\_SB_.TEST")
363
                {
363
                {
364
                    0x00000E01,
364
                    0x00000E01,
365
                }
365
                }
366
                Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0x6, "xxxx")
366
                Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0x6, "xxxx")
367
                {
367
                {
368
                    0x00000601,
368
                    0x00000601,
369
                    0x00000003,
369
                    0x00000003,
370
                    0x00000002,
370
                    0x00000002,
371
                    0x00000001,
371
                    0x00000001,
372
                }
372
                }
373
                Interrupt (ResourceProducer, Edge, ActiveHigh, Exclusive)
373
                Interrupt (ResourceProducer, Edge, ActiveHigh, Exclusive)
374
                {
374
                {
375
                    0xFFFF0000,
375
                    0xFFFF0000,
376
                    0x00000003,
376
                    0x00000003,
377
                    0x00000002,
377
                    0x00000002,
378
                    0x00000001,
378
                    0x00000001,
379
                    0x00000005,
379
                    0x00000005,
380
                    0x00000007,
380
                    0x00000007,
381
                    0x00000009,
381
                    0x00000009,
382
                }
382
                }
383
                VendorShort () {0x01, 0x02, 0x03}
383
                VendorShort () {0x01, 0x02, 0x03}
384
                VendorLong ()
384
                VendorLong ()
385
                {
385
                {
386
                    0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
386
                    0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
387
                    0x09
387
                    0x09
388
                }
388
                }
389
                Register (SystemIO, 0x08, 0x00, 0x00000000000000B2, , R000)
389
                Register (SystemIO, 0x08, 0x00, 0x00000000000000B2, , R000)
390
                Register (SystemMemory, 0x08, 0x00, 0x00000000000000B2)
390
                Register (SystemMemory, 0x08, 0x00, 0x00000000000000B2)
391
                StartDependentFnNoPri ()
391
                StartDependentFnNoPri ()
392
                {
392
                {
393
                    IRQNoFlags () {0,1,2}
393
                    IRQNoFlags () {0,1,2}
394
                    IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11,14,15}
394
                    IRQ (Level, ActiveLow, Shared) {3,4,5,6,7,9,10,11,14,15}
395
                }
395
                }
396
                EndDependentFn ()
396
                EndDependentFn ()
397
            })
397
            })
398
            CreateWordField (PRT0, 0x08, BMIN)
398
            CreateWordField (PRT0, 0x08, BMIN)
399
            CreateByteField (PRT0, R000._ASZ, RSIZ)
399
            CreateByteField (PRT0, R000._ASZ, RSIZ)
400
            Store (0x03, BMIN)
400
            Store (0x03, BMIN)
401
            Return (PRT0)
401
            Return (PRT0)
402
        }
402
        }
403
 
403
 
404
        Method (_PRS, 0, NotSerialized)
404
        Method (_PRS, 0, NotSerialized)
405
        {
405
        {
406
            Name (BUF0, ResourceTemplate ()
406
            Name (BUF0, ResourceTemplate ()
407
            {
407
            {
408
                StartDependentFn (0x01, 0x02)
408
                StartDependentFn (0x01, 0x02)
409
                {
409
                {
410
                    IO (Decode16, 0x03D8, 0x03F8, 0x01, 0x08)
410
                    IO (Decode16, 0x03D8, 0x03F8, 0x01, 0x08)
411
                    IRQNoFlags () {4}
411
                    IRQNoFlags () {4}
412
                }
412
                }
413
                StartDependentFn (0x02, 0x01)
413
                StartDependentFn (0x02, 0x01)
414
                {
414
                {
415
                    IO (Decode16, 0x03D8, 0x03E8, 0x01, 0x08)
415
                    IO (Decode16, 0x03D8, 0x03E8, 0x01, 0x08)
416
                    IRQNoFlags () {4}
416
                    IRQNoFlags () {4}
417
                }
417
                }
418
                StartDependentFn (0x00, 0x02)
418
                StartDependentFn (0x00, 0x02)
419
                {
419
                {
420
                    IO (Decode16, 0x02E8, 0x02F8, 0x01, 0x08)
420
                    IO (Decode16, 0x02E8, 0x02F8, 0x01, 0x08)
421
                    IRQNoFlags () {3}
421
                    IRQNoFlags () {3}
422
                }
422
                }
423
                StartDependentFn (0x00, 0x02)
423
                StartDependentFn (0x00, 0x02)
424
                {
424
                {
425
                    IO (Decode16, 0x02D8, 0x02E8, 0x01, 0x08)
425
                    IO (Decode16, 0x02D8, 0x02E8, 0x01, 0x08)
426
                    IRQNoFlags () {3}
426
                    IRQNoFlags () {3}
427
                }
427
                }
428
                StartDependentFn (0x02, 0x00)
428
                StartDependentFn (0x02, 0x00)
429
                {
429
                {
430
                    IO (Decode16, 0x0100, 0x03F8, 0x08, 0x08)
430
                    IO (Decode16, 0x0100, 0x03F8, 0x08, 0x08)
431
                    IRQNoFlags () {1,3,4,5,6,7,8,10,11,12,13,14,15}
431
                    IRQNoFlags () {1,3,4,5,6,7,8,10,11,12,13,14,15}
432
                }
432
                }
433
                EndDependentFn ()
433
                EndDependentFn ()
434
            })
434
            })
435
            Return (BUF0)
435
            Return (BUF0)
436
        }
436
        }
437
 
437
 
438
        Method (_SRS, 1, Serialized)
438
        Method (_SRS, 1, Serialized)
439
        {
439
        {
440
            Return (Zero)
440
            Return (Zero)
441
        }
441
        }
442
    }
442
    }
443
 
443
 
444
 
444
 
445
    Name(\_S0,Package(0x04){
445
    Name(\_S0,Package(0x04){
446
        0x00,
446
        0x00,
447
        0x00,
447
        0x00,
448
        0x00,
448
        0x00,
449
        0x00
449
        0x00
450
    })
450
    })
451
    Name(\_S3,Package(0x04){
451
    Name(\_S3,Package(0x04){
452
        0x05,
452
        0x05,
453
        0x05,
453
        0x05,
454
        0x00,
454
        0x00,
455
        0x00
455
        0x00
456
    })
456
    })
457
    Name(\_S4,Package(0x04){
457
    Name(\_S4,Package(0x04){
458
        0x06,
458
        0x06,
459
        0x06,
459
        0x06,
460
        0x00,
460
        0x00,
461
        0x00
461
        0x00
462
    })
462
    })
463
    Name(\_S5,Package(0x04){
463
    Name(\_S5,Package(0x04){
464
        0x07,
464
        0x07,
465
        0x07,
465
        0x07,
466
        0x00,
466
        0x00,
467
        0x00
467
        0x00
468
    })
468
    })
469
 
469
 
470
/* Examine this table header (DSDT) */
470
/* Examine this table header (DSDT) */
471
 
471
 
472
/*
472
/*
473
    DataTableRegion (HDR, "DSDT", "", "")
473
    DataTableRegion (HDR, "DSDT", "", "")
474
    Field (HDR, AnyAcc, NoLock, Preserve)
474
    Field (HDR, AnyAcc, NoLock, Preserve)
475
    {
475
    {
476
        SIG,  32,
476
        SIG,  32,
477
        LENG, 32,
477
        LENG, 32,
478
        REV,  8,
478
        REV,  8,
479
        SUM,  8,
479
        SUM,  8,
480
        OID,  48,
480
        OID,  48,
481
        OTID, 64,
481
        OTID, 64,
482
        OREV, 32,
482
        OREV, 32,
483
        CID,  32,
483
        CID,  32,
484
        CREV, 32
484
        CREV, 32
485
    }
485
    }
486
 
486
 
487
    Method (SIZE)
487
    Method (SIZE)
488
    {
488
    {
489
        If (LLess (REV, 2))
489
        If (LLess (REV, 2))
490
        {
490
        {
491
            Store ("32-bit table", Debug)
491
            Store ("32-bit table", Debug)
492
        }
492
        }
493
        else
493
        else
494
        {
494
        {
495
            Store ("64-bit table", Debug)
495
            Store ("64-bit table", Debug)
496
        }
496
        }
497
        Return (0)
497
        Return (0)
498
    }
498
    }
499
 
499
 
500
*/
500
*/
501
    Name (SIZE, 0)
501
    Name (SIZE, 0)
502
 
502
 
503
    /* Custom operation region */
503
    /* Custom operation region */
504
 
504
 
505
    OperationRegion(MYOP,0x80,0xFD60,0x6)
505
    OperationRegion(MYOP,0x80,0xFD60,0x6)
506
    Field(MYOP,ByteAcc,NoLock,Preserve)
506
    Field(MYOP,ByteAcc,NoLock,Preserve)
507
    {
507
    {
508
        MFLD,8
508
        MFLD,8
509
    }
509
    }
510
 
510
 
511
    Method (TCOP)
511
    Method (TCOP)
512
    {
512
    {
513
        Name (_STR, Unicode ("test"))
513
        Name (_STR, Unicode ("test"))
514
        Store (4, MFLD)
514
        Store (4, MFLD)
515
        Store (MFLD, Local0)
515
        Store (MFLD, Local0)
516
    }
516
    }
517
 
517
 
518
    Name (ERRS, 0x0)
518
    Name (ERRS, 0x0)
519
 
519
 
520
    /* Warning should be issued for premature string termination */
520
    /* Warning should be issued for premature string termination */
521
 
521
 
522
    NAME (ESC1, "abcdefg\x00hijklmn")
522
    NAME (ESC1, "abcdefg\x00hijklmn")
523
    NAME (ESC2, "abcdefg\000hijklmn")
523
    NAME (ESC2, "abcdefg\000hijklmn")
524
    Name (ESC3, "abc\a\bdef\f\n\r\t\v\x03ffff\432")
524
    Name (ESC3, "abc\a\bdef\f\n\r\t\v\x03ffff\432")
525
 
525
 
526
 
526
 
527
    Name(CRSA,ResourceTemplate()
527
    Name(CRSA,ResourceTemplate()
528
    {
528
    {
529
        WORDBusNumber(ResourceProducer,MinFixed,MaxFixed,PosDecode,0x0000,0x0019,0x001D,0x0000,0x0005)
529
        WORDBusNumber(ResourceProducer,MinFixed,MaxFixed,PosDecode,0x0000,0x0019,0x001D,0x0000,0x0005)
530
        WORDIO(ResourceProducer,MinFixed,MaxFixed,PosDecode,NonISAOnlyRanges,0x0000,0xC000,0xCFFF,0x0000,0x1000)
530
        WORDIO(ResourceProducer,MinFixed,MaxFixed,PosDecode,NonISAOnlyRanges,0x0000,0xC000,0xCFFF,0x0000,0x1000)
531
        DWORDMemory(ResourceProducer,PosDecode,MinFixed,MaxFixed,NonCacheable,ReadWrite,0x00000000,0xD8000000,0xDBFFFFFF,0x00000000,0x04000000)
531
        DWORDMemory(ResourceProducer,PosDecode,MinFixed,MaxFixed,NonCacheable,ReadWrite,0x00000000,0xD8000000,0xDBFFFFFF,0x00000000,0x04000000)
532
 
532
 
533
    })
533
    })
534
    Name(CRSB,ResourceTemplate()
534
    Name(CRSB,ResourceTemplate()
535
    {
535
    {
536
        DWORDMemory(ResourceProducer,PosDecode,MinFixed,MaxFixed,NonCacheable,ReadWrite,0x00000000,0xD8000000,0xDBFFFFFF,0x00000000,0x04000000)
536
        DWORDMemory(ResourceProducer,PosDecode,MinFixed,MaxFixed,NonCacheable,ReadWrite,0x00000000,0xD8000000,0xDBFFFFFF,0x00000000,0x04000000)
537
 
537
 
538
    })
538
    })
539
 
539
 
540
    Name(CRSC,ResourceTemplate()
540
    Name(CRSC,ResourceTemplate()
541
    {
541
    {
542
        VendorShort () {0x1, 0x2, 0x3}
542
        VendorShort () {0x1, 0x2, 0x3}
543
    })
543
    })
544
    Name(CRSD,ResourceTemplate()
544
    Name(CRSD,ResourceTemplate()
545
    {
545
    {
546
        VendorLong (VNDL) {0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9}
546
        VendorLong (VNDL) {0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9}
547
    })
547
    })
548
 
548
 
549
    Name(CRSE,ResourceTemplate()
549
    Name(CRSE,ResourceTemplate()
550
    {
550
    {
551
        IRQNoFlags(){3,4,10,11}
551
        IRQNoFlags(){3,4,10,11}
552
        IRQNoFlags(xxxt){3,4,10,11}
552
        IRQNoFlags(xxxt){3,4,10,11}
553
    })
553
    })
554
    Name(CRSR, Buffer (Add (SizeOf(CRSA),SizeOf(CRSB))){})
554
    Name(CRSR, Buffer (Add (SizeOf(CRSA),SizeOf(CRSB))){})
555
    Method(_CRS,0,NotSerialized)
555
    Method(_CRS,0,NotSerialized)
556
    {
556
    {
557
        Return(CRSR)
557
        Return(CRSR)
558
    }
558
    }
559
 
559
 
560
 
560
 
561
    //
561
    //
562
    // Unnamed scope
562
    // Unnamed scope
563
    //
563
    //
564
    Scope (\)
564
    Scope (\)
565
    {
565
    {
566
        Name(Bxxx,0xFFFFFFFF)
566
        Name(Bxxx,0xFFFFFFFF)
567
    }
567
    }
568
 
568
 
569
    Name (LANS, 0x0)
569
    Name (LANS, 0x0)
570
 
570
 
571
    PowerResource(LANP,1,0)
571
    PowerResource(LANP,1,0)
572
    {
572
    {
573
        Method(_STA){
573
        Method(_STA){
574
            If(LEqual(And(LANS,0x30),0x30)){
574
            If(LEqual(And(LANS,0x30),0x30)){
575
                Return(One)
575
                Return(One)
576
            } Else {
576
            } Else {
577
                Return(Zero)
577
                Return(Zero)
578
            }
578
            }
579
        }
579
        }
580
        Method(_ON){
580
        Method(_ON){
581
            If(LNot(_STA())){
581
            If(LNot(_STA())){
582
                Store (0x30, LANS)
582
                Store (0x30, LANS)
583
            }
583
            }
584
        }
584
        }
585
        Method(_OFF){
585
        Method(_OFF){
586
            If(_STA()){
586
            If(_STA()){
587
                Store (0, LANS)
587
                Store (0, LANS)
588
            }
588
            }
589
        }
589
        }
590
    }
590
    }
591
 
591
 
592
 
592
 
593
    /* Can a method define another method? */
593
    /* Can a method define another method? */
594
 
594
 
595
    /**********************************
595
    /**********************************
596
    Method (TASK, 2, SERIALIZED)
596
    Method (TASK, 2, SERIALIZED)
597
    {
597
    {
598
        Sleep (100)
598
        Sleep (100)
599
 
599
 
600
        Method (TAS2)
600
        Method (TAS2)
601
        {
601
        {
602
            Sleep (100)
602
            Sleep (100)
603
        }
603
        }
604
 
604
 
605
        TAS2()
605
        TAS2()
606
        Return
606
        Return
607
 
607
 
608
    }
608
    }
609
    ************************************/
609
    ************************************/
610
 
610
 
611
    /* A recursive method */
611
    /* A recursive method */
612
 
612
 
613
    Method (RCIV, 1)
613
    Method (RCIV, 1)
614
    {
614
    {
615
        Store (Arg0, Debug)
615
        Store (Arg0, Debug)
616
        If (Lequal (Arg0, 0))
616
        If (Lequal (Arg0, 0))
617
        {
617
        {
618
            Return ()
618
            Return ()
619
        }
619
        }
620
        RCIV (Subtract (Arg0, 1))
620
        RCIV (Subtract (Arg0, 1))
621
    }
621
    }
622
 
622
 
623
    Method (RTOP)
623
    Method (RTOP)
624
    {
624
    {
625
        RCIV (100)
625
        RCIV (100)
626
    }
626
    }
627
 
627
 
628
 
628
 
629
    Scope(\_PR)
629
    Scope(\_PR)
630
    {
630
    {
631
        Processor(CPU0,0x0,0xFFFFFFFF,0x0) {}
631
        Processor(CPU0,0x0,0xFFFFFFFF,0x0) {}
632
    }
632
    }
633
 
633
 
634
    Name(B1TP,0xFFFFFFFF)
634
    Name(B1TP,0xFFFFFFFF)
635
 
635
 
636
    Name(B2TP,0xFFFFFFFF)
636
    Name(B2TP,0xFFFFFFFF)
637
    Name(ADPS,0xFFFFFFFF)
637
    Name(ADPS,0xFFFFFFFF)
638
    Name(B1PS,0xFFFFFFFF)
638
    Name(B1PS,0xFFFFFFFF)
639
    Name(B1RS,0xFFFFFFFF)
639
    Name(B1RS,0xFFFFFFFF)
640
    Name(B1CS,0xFFFFFFFF)
640
    Name(B1CS,0xFFFFFFFF)
641
    Name(B2PS,0xFFFFFFFF)
641
    Name(B2PS,0xFFFFFFFF)
642
    Name(B2RS,0xFFFFFFFF)
642
    Name(B2RS,0xFFFFFFFF)
643
    Name(B2CS,0xFFFFFFFF)
643
    Name(B2CS,0xFFFFFFFF)
644
    Name(B1DC,3000)
644
    Name(B1DC,3000)
645
    Name(B2DC,2600)
645
    Name(B2DC,2600)
646
    Name(B1LF,3000)
646
    Name(B1LF,3000)
647
    Name(B2LF,2600)
647
    Name(B2LF,2600)
648
    Name(BPIF,0)
648
    Name(BPIF,0)
649
    Name(PBLL,0)
649
    Name(PBLL,0)
650
 
650
 
651
    Name(RBIF,Package()
651
    Name(RBIF,Package()
652
    {
652
    {
653
        0x1,
653
        0x1,
654
        2200,
654
        2200,
655
        2200,
655
        2200,
656
        0x1,
656
        0x1,
657
        10800,
657
        10800,
658
        0,
658
        0,
659
        0,
659
        0,
660
        1,
660
        1,
661
        1,
661
        1,
662
        "CA54200-5003/5",
662
        "CA54200-5003/5",
663
        "1",
663
        "1",
664
        "LION",
664
        "LION",
665
        "Fujitsu"
665
        "Fujitsu"
666
    })
666
    })
667
 
667
 
668
    Method(SMWE, 4)
668
    Method(SMWE, 4)
669
    {
669
    {
670
       return(ONES)
670
       return(ONES)
671
    }
671
    }
672
 
672
 
673
    Method(SMRE, 4)
673
    Method(SMRE, 4)
674
    {
674
    {
675
       return(ONES)
675
       return(ONES)
676
    }
676
    }
677
 
677
 
678
/*
678
/*
679
    Method(RDBT,0,Serialized){
679
    Method(RDBT,0,Serialized){
680
        If(LNot(SMWE(0x09,0x15,1,1))){
680
        If(LNot(SMWE(0x09,0x15,1,1))){
681
                    Store(0x18,Local2)
681
                    Store(0x18,Local2)
682
            }
682
            }
683
    }
683
    }
684
*/
684
*/
685
    Scope(_SB)
685
    Scope(_SB)
686
    {
686
    {
687
 
687
 
688
        Name (SBUF, Buffer (128) {})
688
        Name (SBUF, Buffer (128) {})
689
 
689
 
690
        CreateBitField (SBUF, 3, BITY)
690
        CreateBitField (SBUF, 3, BITY)
691
        CreateByteField (SBUF, 1, BYTY)
691
        CreateByteField (SBUF, 1, BYTY)
692
        CreateWordField (SBUF, 2, WRDZ)
692
        CreateWordField (SBUF, 2, WRDZ)
693
        CreateDwordField (SBUF, 4, DWDZ)
693
        CreateDwordField (SBUF, 4, DWDZ)
694
        CreateQwordField (SBUF, 8, QWDZ)
694
        CreateQwordField (SBUF, 8, QWDZ)
695
        CreateField (SBUF, 128, 12, FLDZ)
695
        CreateField (SBUF, 128, 12, FLDZ)
696
        CreateField (SBUF, 148, 96, FLDY)
696
        CreateField (SBUF, 148, 96, FLDY)
697
        CreateField (SBUF, 148, 96, \_SB_.FLDW)
697
        CreateField (SBUF, 148, 96, \_SB_.FLDW)
698
 
698
 
699
        Method (_INI)
699
        Method (_INI)
700
        {
700
        {
701
            CreateField (\_SB_.SBUF, 148, 96, FLDV)
701
            CreateField (\_SB_.SBUF, 148, 96, FLDV)
702
        }
702
        }
703
 
703
 
704
 
704
 
705
        Device(PCI0)
705
        Device(PCI0)
706
        {
706
        {
707
            Name(_HID,EISAID("PNP0A03"))
707
            Name(_HID,EISAID("PNP0A03"))
708
            Name(_ADR,0x0)
708
            Name(_ADR,0x0)
709
 
709
 
710
            Method(_CRS)
710
            Method(_CRS)
711
            {
711
            {
712
                Name(PRT0, ResourceTemplate() {
712
                Name(PRT0, ResourceTemplate() {
713
                    WORDBusNumber(                          // Bus number resource(0)
713
                    WORDBusNumber(                          // Bus number resource(0)
714
                            ResourceConsumer,               // bit 0 of general flags is 1
714
                            ResourceConsumer,               // bit 0 of general flags is 1
715
                            MinFixed,                       // Range is notfixed
715
                            MinFixed,                       // Range is notfixed
716
                            MaxFixed,                       // Range is not fixed
716
                            MaxFixed,                       // Range is not fixed
717
                            SubDecode,                      // SubDecode
717
                            SubDecode,                      // SubDecode
718
                            0x0000,                           // Granularity
718
                            0x0000,                           // Granularity
719
                            0xfff1,                           // Min
719
                            0xfff1,                           // Min
720
                            0xfff2,                           // Max
720
                            0xfff2,                           // Max
721
                            0x0032,                           // Translation
721
                            0x0032,                           // Translation
722
                            0x0002,,,                         // Range Length
722
                            0x0002,,,                         // Range Length
723
                            BUS0
723
                            BUS0
724
                    ) } )// PRT0
724
                    ) } )// PRT0
725
 
725
 
726
                CreateWordField(PRT0, BUS0._MIN, BMIN)          //Minimum bus number suported under this bridge.
726
                CreateWordField(PRT0, BUS0._MIN, BMIN)          //Minimum bus number suported under this bridge.
727
 
727
 
728
                Store(3, BMIN)
728
                Store(3, BMIN)
729
                Return(PRT0)
729
                Return(PRT0)
730
 
730
 
731
            } // _CRS
731
            } // _CRS
732
 
732
 
733
            Method(_SRS)
733
            Method(_SRS)
734
            {
734
            {
735
                Return ()
735
                Return ()
736
            }
736
            }
737
 
737
 
738
            Device(EIO)
738
            Device(EIO)
739
            {
739
            {
740
                OperationRegion(FJIO,SystemIO,0xFD60,0x6)
740
                OperationRegion(FJIO,SystemIO,0xFD60,0x6)
741
                    Field(FJIO,ByteAcc,NoLock,Preserve)
741
                    Field(FJIO,ByteAcc,NoLock,Preserve)
742
                    {
742
                    {
743
                        GIDX,8,
743
                        GIDX,8,
744
 
744
 
745
                        GDTA,8,
745
                        GDTA,8,
746
 
746
 
747
                        PIDX,8,
747
                        PIDX,8,
748
 
748
 
749
                        PDTA,8,
749
                        PDTA,8,
750
 
750
 
751
                        SIDX,8,
751
                        SIDX,8,
752
 
752
 
753
                        SDTA,8
753
                        SDTA,8
754
                    }
754
                    }
755
                    IndexField(GIDX,GDTA,ByteAcc,NoLock,Preserve)
755
                    IndexField(GIDX,GDTA,ByteAcc,NoLock,Preserve)
756
                    {
756
                    {
757
                        Offset(0x2),
757
                        Offset(0x2),
758
                         ,5,
758
                         ,5,
759
                        VGAS,2,
759
                        VGAS,2,
760
                        Offset(0x4),
760
                        Offset(0x4),
761
                         ,4,
761
                         ,4,
762
                        DCKE,1,
762
                        DCKE,1,
763
                        Offset(0x5),
763
                        Offset(0x5),
764
                         ,6,
764
                         ,6,
765
                        ACPW,1,
765
                        ACPW,1,
766
 
766
 
767
                        Offset(0xA),
767
                        Offset(0xA),
768
                        B1P,1,
768
                        B1P,1,
769
 
769
 
770
                        B2P,1,
770
                        B2P,1,
771
 
771
 
772
                        B1C,1,
772
                        B1C,1,
773
 
773
 
774
                        B2C,1,
774
                        B2C,1,
775
 
775
 
776
                        B1ER,1,
776
                        B1ER,1,
777
 
777
 
778
                        B2ER,1,
778
                        B2ER,1,
779
 
779
 
780
                        Offset(0xB),
780
                        Offset(0xB),
781
                        B1CP,8,
781
                        B1CP,8,
782
 
782
 
783
                        B2CP,8,
783
                        B2CP,8,
784
 
784
 
785
                        BCP,8,
785
                        BCP,8,
786
 
786
 
787
                        B1VH,8,
787
                        B1VH,8,
788
 
788
 
789
                        B1VL,8,
789
                        B1VL,8,
790
 
790
 
791
                        B2VH,8,
791
                        B2VH,8,
792
 
792
 
793
                        B2VL,8,
793
                        B2VL,8,
794
 
794
 
795
                        B1TM,8,
795
                        B1TM,8,
796
 
796
 
797
                        B2TM,8,
797
                        B2TM,8,
798
 
798
 
799
                        B1CH,8,
799
                        B1CH,8,
800
 
800
 
801
                        B1CL,8,
801
                        B1CL,8,
802
 
802
 
803
                        B2CH,8,
803
                        B2CH,8,
804
 
804
 
805
                        B2CL,8
805
                        B2CL,8
806
                    }
806
                    }
807
                }
807
                }
808
            }
808
            }
809
        }
809
        }
810
 
810
 
811
        Method(RDBT,3,Serialized){
811
        Method(RDBT,3,Serialized){
812
            Store(0x1FFF,Local1)
812
            Store(0x1FFF,Local1)
813
            If( Arg0 ){
813
            If( Arg0 ){
814
                Store(0x2FFF,Local1)
814
                Store(0x2FFF,Local1)
815
            }
815
            }
816
            Store(0x18,Local2)
816
            Store(0x18,Local2)
817
            If( Arg1 ){
817
            If( Arg1 ){
818
                Store(0x10,Local2)
818
                Store(0x10,Local2)
819
            }
819
            }
820
            If(LNot(SMRE(0x09,0x15,1,RefOf(Local0)))){
820
            If(LNot(SMRE(0x09,0x15,1,RefOf(Local0)))){
821
                If(LNot(SMWE(0x08,0x14,1,Local1))){
821
                If(LNot(SMWE(0x08,0x14,1,Local1))){
822
                    If(LNot(SMRE(0x09,0x17,Local2,RefOf(Local3)))){
822
                    If(LNot(SMRE(0x09,0x17,Local2,RefOf(Local3)))){
823
                        Store(Local1,Arg2)
823
                        Store(Local1,Arg2)
824
                    }
824
                    }
825
                }
825
                }
826
                Or(Local0,0xFFF,Local0)
826
                Or(Local0,0xFFF,Local0)
827
                SMWE(0x08,0x14,1,Local0)
827
                SMWE(0x08,0x14,1,Local0)
828
            }
828
            }
829
        }
829
        }
830
        Method(MKWD,2)
830
        Method(MKWD,2)
831
        {
831
        {
832
            If(And(Arg1,0x80)) {
832
            If(And(Arg1,0x80)) {
833
                Or(0xFFFF0000,Arg0,Local0)
833
                Or(0xFFFF0000,Arg0,Local0)
834
                Or(Local0,ShiftLeft(Arg1,8),Local0)
834
                Or(Local0,ShiftLeft(Arg1,8),Local0)
835
                Subtract(Zero,Local0,Local0)
835
                Subtract(Zero,Local0,Local0)
836
            } else {
836
            } else {
837
                Store(Arg0,Local0)
837
                Store(Arg0,Local0)
838
                Or(Local0,ShiftLeft(Arg1,8),Local0)
838
                Or(Local0,ShiftLeft(Arg1,8),Local0)
839
            }
839
            }
840
            Return(Local0)
840
            Return(Local0)
841
        }
841
        }
842
 
842
 
843
        Device(CMB1)
843
        Device(CMB1)
844
        {
844
        {
845
            Name(_HID,EISAID("PNP0C0A"))
845
            Name(_HID,EISAID("PNP0C0A"))
846
            Name(_UID,0x1)
846
            Name(_UID,0x1)
847
            Alias(\_SB.PCI0.EIO.B1P,\_SB_.PCI0.XXXX)
847
            Alias(\_SB.PCI0.EIO.B1P,\_SB_.PCI0.XXXX)
848
            Alias(\_SB.PCI0.EIO.B1P,B1P)
848
            Alias(\_SB.PCI0.EIO.B1P,B1P)
849
            Alias(\_SB.PCI0.EIO.B1C,B1C)
849
            Alias(\_SB.PCI0.EIO.B1C,B1C)
850
            Alias(\_SB.PCI0.EIO.B1CH,B1CH)
850
            Alias(\_SB.PCI0.EIO.B1CH,B1CH)
851
            Alias(\_SB.PCI0.EIO.B1CL,B1CL)
851
            Alias(\_SB.PCI0.EIO.B1CL,B1CL)
852
            Alias(\_SB.PCI0.EIO.B1VH,B1VH)
852
            Alias(\_SB.PCI0.EIO.B1VH,B1VH)
853
            Alias(\_SB.PCI0.EIO.B1VL,B1VL)
853
            Alias(\_SB.PCI0.EIO.B1VL,B1VL)
854
            Alias(\_SB.PCI0.EIO.B1CP,B1CP)
854
            Alias(\_SB.PCI0.EIO.B1CP,B1CP)
855
 
855
 
856
            Method(_INI)
856
            Method(_INI)
857
                        {
857
                        {
858
                Store(B1P, B1PS)
858
                Store(B1P, B1PS)
859
                Store(B1CP,B1RS)
859
                Store(B1CP,B1RS)
860
                Store(B1C, B1CS)
860
                Store(B1C, B1CS)
861
            }
861
            }
862
 
862
 
863
            Method(_BIF){
863
            Method(_BIF){
864
                RDBT(Zero,Zero,RefOf(B1DC))
864
                RDBT(Zero,Zero,RefOf(B1DC))
865
                RDBT(Zero,One,RefOf(B1LF))
865
                RDBT(Zero,One,RefOf(B1LF))
866
                Store(B1DC,Index(RBIF,1))
866
                Store(B1DC,Index(RBIF,1))
867
                Store(B1LF,Index(RBIF,2))
867
                Store(B1LF,Index(RBIF,2))
868
                Store("CA54200-5003/5",Index(RBIF,9))
868
                Store("CA54200-5003/5",Index(RBIF,9))
869
                Store("1",Index(RBIF,10))
869
                Store("1",Index(RBIF,10))
870
                Return(RBIF)
870
                Return(RBIF)
871
            }
871
            }
872
 
872
 
873
            Method(_BST) {
873
            Method(_BST) {
874
 
874
 
875
                _INI()
875
                _INI()
876
 
876
 
877
                Store(Zero,Local0)
877
                Store(Zero,Local0)
878
 
878
 
879
                if (LAnd(B1P,LNot(B1C))){
879
                if (LAnd(B1P,LNot(B1C))){
880
                    Or(Local0,1,Local0)
880
                    Or(Local0,1,Local0)
881
                }
881
                }
882
 
882
 
883
                if (LAnd(B1P,B1C)) {
883
                if (LAnd(B1P,B1C)) {
884
                    Or(Local0,2,Local0)
884
                    Or(Local0,2,Local0)
885
                }
885
                }
886
 
886
 
887
                if (LLessEqual(B1CP,1)) {
887
                if (LLessEqual(B1CP,1)) {
888
                    Or(Local0,4,Local0)
888
                    Or(Local0,4,Local0)
889
                }
889
                }
890
 
890
 
891
                Store(MKWD(B1CL,B1CH),Local1)
891
                Store(MKWD(B1CL,B1CH),Local1)
892
 
892
 
893
                Store(Divide(Add(Multiply(B1CP,B1LF),99),100),Local2)
893
                Store(Divide(Add(Multiply(B1CP,B1LF),99),100),Local2)
894
 
894
 
895
                Store(MKWD(B1VL,B1VH),Local3)
895
                Store(MKWD(B1VL,B1VH),Local3)
896
 
896
 
897
                Name(STAT,Package(4){})
897
                Name(STAT,Package(4){})
898
                Store(Local0,Index(STAT,0))
898
                Store(Local0,Index(STAT,0))
899
                Store(Local1,Index(STAT,1))
899
                Store(Local1,Index(STAT,1))
900
                Store(Local2,Index(STAT,2))
900
                Store(Local2,Index(STAT,2))
901
                Store(Local3,Index(STAT,3))
901
                Store(Local3,Index(STAT,3))
902
 
902
 
903
                If(LNot(BPIF)){
903
                If(LNot(BPIF)){
904
//                    \_SB.PCI0.EIO.EC0.IECT()
904
//                    \_SB.PCI0.EIO.EC0.IECT()
905
//                    \_SB.PCI0.EIO.EC0.SECT()
905
//                    \_SB.PCI0.EIO.EC0.SECT()
906
                    Store(One,BPIF)
906
                    Store(One,BPIF)
907
                }
907
                }
908
                return(STAT)
908
                return(STAT)
909
            }
909
            }
910
 
910
 
911
        }
911
        }
912
 
912
 
913
    Device (DEV1)
913
    Device (DEV1)
914
    {
914
    {
915
    }
915
    }
916
 
916
 
917
    Scope(\_TZ)
917
    Scope(\_TZ)
918
    {
918
    {
919
        ThermalZone(TZ1)
919
        ThermalZone(TZ1)
920
        {
920
        {
921
            Name(_PSL,Package()
921
            Name(_PSL,Package()
922
            {
922
            {
923
                \_PR.CPU0
923
                \_PR.CPU0
924
            })
924
            })
925
        }
925
        }
926
    }
926
    }
927
 
927
 
928
    Method (TZ2, 0, SERIALIZED)
928
    Method (TZ2, 0, SERIALIZED)
929
    {
929
    {
930
        Name(_PSL,Package()
930
        Name(_PSL,Package()
931
        {
931
        {
932
            \_PR.CPU0
932
            \_PR.CPU0
933
        })
933
        })
934
 
934
 
935
        Return (_PSL)
935
        Return (_PSL)
936
    }
936
    }
937
 
937
 
938
    ThermalZone (THM1)
938
    ThermalZone (THM1)
939
    {
939
    {
940
    }
940
    }
941
 
941
 
942
    Method (NOTI)
942
    Method (NOTI)
943
    {
943
    {
944
        Notify (\DEV1, 0)
944
        Notify (\DEV1, 0)
945
        Notify (\THM1, 0)
945
        Notify (\THM1, 0)
946
        Notify (\_PR.CPU0, 0)
946
        Notify (\_PR.CPU0, 0)
947
    }
947
    }
948
 
948
 
949
    Method (_ERR, 2)
949
    Method (_ERR, 2)
950
    {
950
    {
951
        Increment (ERRS)
951
        Increment (ERRS)
952
        Store ("Run-time exception:", Debug)
952
        Store ("Run-time exception:", Debug)
953
        Store (Arg0, Debug)
953
        Store (Arg0, Debug)
954
        Store (Arg1, Debug)
954
        Store (Arg1, Debug)
955
 
955
 
956
        Return (0)          // Map error to AE_OK
956
        Return (0)          // Map error to AE_OK
957
    }
957
    }
958
 
958
 
959
    Method (DIV0)
959
    Method (DIV0)
960
    {
960
    {
961
        Store (1, Local0)
961
        Store (1, Local0)
962
        Store (0, Local1)
962
        Store (0, Local1)
963
        Divide (Local0, Local1, Local3)
963
        Divide (Local0, Local1, Local3)
964
 
964
 
965
        Store ("DIV0 - noabort", Debug)
965
        Store ("DIV0 - noabort", Debug)
966
    }
966
    }
967
 
967
 
968
    Method (ERR_, 1)
968
    Method (ERR_, 1)
969
    {
969
    {
970
        if (LEqual (Arg0, 0))
970
        if (LEqual (Arg0, 0))
971
        {
971
        {
972
            Store ("+*+*+*+* MTHD_ERROR: Results not equal!", Debug)
972
            Store ("+*+*+*+* MTHD_ERROR: Results not equal!", Debug)
973
        }
973
        }
974
        if (LEqual (Arg0, 1))
974
        if (LEqual (Arg0, 1))
975
        {
975
        {
976
            Store ("+*+*+*+* MTHD_ERROR: Numeric result is incorrect!", Debug)
976
            Store ("+*+*+*+* MTHD_ERROR: Numeric result is incorrect!", Debug)
977
        }
977
        }
978
        if (LEqual (Arg0, 2))
978
        if (LEqual (Arg0, 2))
979
        {
979
        {
980
            Store ("+*+*+*+* MTHD_ERROR: Operand was clobbered!", Debug)
980
            Store ("+*+*+*+* MTHD_ERROR: Operand was clobbered!", Debug)
981
        }
981
        }
982
 
982
 
983
        Notify (DEV1, Arg0)
983
        Notify (DEV1, Arg0)
984
        Increment (ERRS)
984
        Increment (ERRS)
985
    }
985
    }
986
 
986
 
987
    Method (R226, 2)
987
    Method (R226, 2)
988
    {
988
    {
989
    }
989
    }
990
    Method (R225, 2)
990
    Method (R225, 2)
991
    {
991
    {
992
        R226 (Arg0, Arg1)
992
        R226 (Arg0, Arg1)
993
    }
993
    }
994
    Method (R224, 2)
994
    Method (R224, 2)
995
    {
995
    {
996
        R225 (Arg1, Arg0)
996
        R225 (Arg1, Arg0)
997
    }
997
    }
998
    Method (R223, 2)
998
    Method (R223, 2)
999
    {
999
    {
1000
        R224 (Arg0, Arg1)
1000
        R224 (Arg0, Arg1)
1001
    }
1001
    }
1002
    Method (R222, 2)
1002
    Method (R222, 2)
1003
    {
1003
    {
1004
        R223 (Arg1, Arg0)
1004
        R223 (Arg1, Arg0)
1005
    }
1005
    }
1006
    Method (R111)
1006
    Method (R111)
1007
    {
1007
    {
1008
        Store (0x01010101, Local0)
1008
        Store (0x01010101, Local0)
1009
        R222 (0xABAB, Local0)
1009
        R222 (0xABAB, Local0)
1010
        Store (Local0, Local1)
1010
        Store (Local0, Local1)
1011
    }
1011
    }
1012
 
1012
 
1013
    Method (MAIN)
1013
    Method (MAIN)
1014
    {
1014
    {
1015
 
1015
 
1016
//      SIZE()
1016
//      SIZE()
1017
        Store (NUM1(), Local0)
1017
        Store (NUM1(), Local0)
1018
        \CMB1._BST()
1018
        \CMB1._BST()
1019
        RDBT(1,2,3)
1019
        RDBT(1,2,3)
1020
        OBJ1(1)
1020
        OBJ1(1)
1021
        OBJ2(2)
1021
        OBJ2(2)
1022
        CHEK()
1022
        CHEK()
1023
        RETZ()
1023
        RETZ()
1024
        BITZ()
1024
        BITZ()
1025
        LOGS()
1025
        LOGS()
1026
        REFS()
1026
        REFS()
1027
        COND()
1027
        COND()
1028
        TZ2()
1028
        TZ2()
1029
 
1029
 
1030
        //
1030
        //
1031
        // iPCO tests added
1031
        // iPCO tests added
1032
        //
1032
        //
1033
        Store (\IFEL.TEST(), Local0)
1033
        Store (\IFEL.TEST(), Local0)
1034
        if (LGreater (Local0, 0))
1034
        if (LGreater (Local0, 0))
1035
        {
1035
        {
1036
            ERR_ (1)
1036
            ERR_ (1)
1037
            Return(Local0)
1037
            Return(Local0)
1038
        }
1038
        }
1039
 
1039
 
1040
        Store (\NOSV.TEST(), Local0)
1040
        Store (\NOSV.TEST(), Local0)
1041
        if (LGreater (Local0, 0))
1041
        if (LGreater (Local0, 0))
1042
        {
1042
        {
1043
            ERR_ (1)
1043
            ERR_ (1)
1044
            Return(Local0)
1044
            Return(Local0)
1045
        }
1045
        }
1046
 
1046
 
1047
        Store (\IDXF.TEST(), Local0)
1047
        Store (\IDXF.TEST(), Local0)
1048
        if (LGreater (Local0, 0))
1048
        if (LGreater (Local0, 0))
1049
        {
1049
        {
1050
            ERR_ (1)
1050
            ERR_ (1)
1051
            Return(Local0)
1051
            Return(Local0)
1052
        }
1052
        }
1053
 
1053
 
1054
        Store (\_SB_.NSTL.TEST(), Local0)
1054
        Store (\_SB_.NSTL.TEST(), Local0)
1055
        if (LGreater (Local0, 0))
1055
        if (LGreater (Local0, 0))
1056
        {
1056
        {
1057
            ERR_ (1)
1057
            ERR_ (1)
1058
            Return(Local0)
1058
            Return(Local0)
1059
        }
1059
        }
1060
 
1060
 
1061
        Store (\RTBF.TEST(), Local0)
1061
        Store (\RTBF.TEST(), Local0)
1062
        if (LGreater (Local0, 0))
1062
        if (LGreater (Local0, 0))
1063
        {
1063
        {
1064
            ERR_ (1)
1064
            ERR_ (1)
1065
            Return(Local0)
1065
            Return(Local0)
1066
        }
1066
        }
1067
 
1067
 
1068
        Store (\_SB_.RTLV.TEST(), Local0)
1068
        Store (\_SB_.RTLV.TEST(), Local0)
1069
        if (LGreater (Local0, 0))
1069
        if (LGreater (Local0, 0))
1070
        {
1070
        {
1071
            ERR_ (1)
1071
            ERR_ (1)
1072
            Return(Local0)
1072
            Return(Local0)
1073
        }
1073
        }
1074
 
1074
 
1075
        Store (\_SB_.RETP.TEST(), Local0)
1075
        Store (\_SB_.RETP.TEST(), Local0)
1076
        if (LGreater (Local0, 0))
1076
        if (LGreater (Local0, 0))
1077
        {
1077
        {
1078
            ERR_ (1)
1078
            ERR_ (1)
1079
            Return(Local0)
1079
            Return(Local0)
1080
        }
1080
        }
1081
 
1081
 
1082
        Store (\WHLR.TEST(), Local0)
1082
        Store (\WHLR.TEST(), Local0)
1083
        if (LGreater (Local0, 0))
1083
        if (LGreater (Local0, 0))
1084
        {
1084
        {
1085
            ERR_ (1)
1085
            ERR_ (1)
1086
            Return(Local0)
1086
            Return(Local0)
1087
        }
1087
        }
1088
 
1088
 
1089
        Store (\ANDO.TEST(), Local0)
1089
        Store (\ANDO.TEST(), Local0)
1090
        if (LGreater (Local0, 0))
1090
        if (LGreater (Local0, 0))
1091
        {
1091
        {
1092
            ERR_ (1)
1092
            ERR_ (1)
1093
            Return(Local0)
1093
            Return(Local0)
1094
        }
1094
        }
1095
 
1095
 
1096
        Store (\BRKP.TEST(), Local0)
1096
        Store (\BRKP.TEST(), Local0)
1097
        if (LGreater (Local0, 0))
1097
        if (LGreater (Local0, 0))
1098
        {
1098
        {
1099
            ERR_ (1)
1099
            ERR_ (1)
1100
            Return(Local0)
1100
            Return(Local0)
1101
        }
1101
        }
1102
 
1102
 
1103
        Store (\ADSU.TEST(), Local0)
1103
        Store (\ADSU.TEST(), Local0)
1104
        if (LGreater (Local0, 0))
1104
        if (LGreater (Local0, 0))
1105
        {
1105
        {
1106
            ERR_ (1)
1106
            ERR_ (1)
1107
            Return(Local0)
1107
            Return(Local0)
1108
        }
1108
        }
1109
 
1109
 
1110
        Store (\INDC.TEST(), Local0)
1110
        Store (\INDC.TEST(), Local0)
1111
        if (LGreater (Local0, 0))
1111
        if (LGreater (Local0, 0))
1112
        {
1112
        {
1113
            ERR_ (1)
1113
            ERR_ (1)
1114
            Return(Local0)
1114
            Return(Local0)
1115
        }
1115
        }
1116
 
1116
 
1117
        Store (\LOPS.TEST(), Local0)
1117
        Store (\LOPS.TEST(), Local0)
1118
        if (LGreater (Local0, 0))
1118
        if (LGreater (Local0, 0))
1119
        {
1119
        {
1120
            ERR_ (1)
1120
            ERR_ (1)
1121
            Return(Local0)
1121
            Return(Local0)
1122
        }
1122
        }
1123
 
1123
 
1124
        Store (\FDSO.TEST(), Local0)
1124
        Store (\FDSO.TEST(), Local0)
1125
        if (LGreater (Local0, 0))
1125
        if (LGreater (Local0, 0))
1126
        {
1126
        {
1127
            ERR_ (1)
1127
            ERR_ (1)
1128
            Return(Local0)
1128
            Return(Local0)
1129
        }
1129
        }
1130
 
1130
 
1131
        Store (\MLDV.TEST(), Local0)
1131
        Store (\MLDV.TEST(), Local0)
1132
        if (LGreater (Local0, 0))
1132
        if (LGreater (Local0, 0))
1133
        {
1133
        {
1134
            ERR_ (1)
1134
            ERR_ (1)
1135
            Return(Local0)
1135
            Return(Local0)
1136
        }
1136
        }
1137
 
1137
 
1138
        Store (\NBIT.TEST(), Local0)
1138
        Store (\NBIT.TEST(), Local0)
1139
        if (LGreater (Local0, 0))
1139
        if (LGreater (Local0, 0))
1140
        {
1140
        {
1141
            ERR_ (1)
1141
            ERR_ (1)
1142
            Return(Local0)
1142
            Return(Local0)
1143
        }
1143
        }
1144
 
1144
 
1145
        Store (\SHFT.TEST(), Local0)
1145
        Store (\SHFT.TEST(), Local0)
1146
        if (LGreater (Local0, 0))
1146
        if (LGreater (Local0, 0))
1147
        {
1147
        {
1148
            ERR_ (1)
1148
            ERR_ (1)
1149
            Return(Local0)
1149
            Return(Local0)
1150
        }
1150
        }
1151
 
1151
 
1152
        Store (\XORD.TEST(), Local0)
1152
        Store (\XORD.TEST(), Local0)
1153
        if (LGreater (Local0, 0))
1153
        if (LGreater (Local0, 0))
1154
        {
1154
        {
1155
            ERR_ (1)
1155
            ERR_ (1)
1156
            Return(Local0)
1156
            Return(Local0)
1157
        }
1157
        }
1158
 
1158
 
1159
        Store (\CRBF.TEST(), Local0)
1159
        Store (\CRBF.TEST(), Local0)
1160
        if (LGreater (Local0, 0))
1160
        if (LGreater (Local0, 0))
1161
        {
1161
        {
1162
            ERR_ (1)
1162
            ERR_ (1)
1163
            Return(Local0)
1163
            Return(Local0)
1164
        }
1164
        }
1165
 
1165
 
1166
        Store (\IDX4.TEST(), Local0)
1166
        Store (\IDX4.TEST(), Local0)
1167
        if (LGreater (Local0, 0))
1167
        if (LGreater (Local0, 0))
1168
        {
1168
        {
1169
            ERR_ (1)
1169
            ERR_ (1)
1170
            Return(Local0)
1170
            Return(Local0)
1171
        }
1171
        }
1172
 
1172
 
1173
        Store (\EVNT.TEST(), Local0)
1173
        Store (\EVNT.TEST(), Local0)
1174
        if (LGreater (Local0, 0))
1174
        if (LGreater (Local0, 0))
1175
        {
1175
        {
1176
            ERR_ (1)
1176
            ERR_ (1)
1177
            Return(Local0)
1177
            Return(Local0)
1178
        }
1178
        }
1179
 
1179
 
1180
        Store (\SZLV.TEST(), Local0)
1180
        Store (\SZLV.TEST(), Local0)
1181
        if (LGreater (Local0, 0))
1181
        if (LGreater (Local0, 0))
1182
        {
1182
        {
1183
            ERR_ (1)
1183
            ERR_ (1)
1184
            Return(Local0)
1184
            Return(Local0)
1185
        }
1185
        }
1186
 
1186
 
1187
        Store (\_SB_.BYTF.TEST(), Local0)
1187
        Store (\_SB_.BYTF.TEST(), Local0)
1188
        if (LGreater (Local0, 0))
1188
        if (LGreater (Local0, 0))
1189
        {
1189
        {
1190
            ERR_ (1)
1190
            ERR_ (1)
1191
            Return(Local0)
1191
            Return(Local0)
1192
        }
1192
        }
1193
 
1193
 
1194
        Store (\DWDF.TEST(), Local0)
1194
        Store (\DWDF.TEST(), Local0)
1195
        if (LGreater (Local0, 0))
1195
        if (LGreater (Local0, 0))
1196
        {
1196
        {
1197
            ERR_ (1)
1197
            ERR_ (1)
1198
            Return(Local0)
1198
            Return(Local0)
1199
        }
1199
        }
1200
 
1200
 
1201
        Store (\DVAX.TEST(), Local0)
1201
        Store (\DVAX.TEST(), Local0)
1202
        if (LGreater (Local0, 0))
1202
        if (LGreater (Local0, 0))
1203
        {
1203
        {
1204
            ERR_ (1)
1204
            ERR_ (1)
1205
            Return(Local0)
1205
            Return(Local0)
1206
        }
1206
        }
1207
 
1207
 
1208
        Store (\IDX6.TEST(), Local0)
1208
        Store (\IDX6.TEST(), Local0)
1209
        if (LGreater (Local0, 0))
1209
        if (LGreater (Local0, 0))
1210
        {
1210
        {
1211
            ERR_ (1)
1211
            ERR_ (1)
1212
            Return(Local0)
1212
            Return(Local0)
1213
        }
1213
        }
1214
 
1214
 
1215
        Store (\IDX5.TEST(), Local0)
1215
        Store (\IDX5.TEST(), Local0)
1216
        if (LGreater (Local0, 0))
1216
        if (LGreater (Local0, 0))
1217
        {
1217
        {
1218
            ERR_ (1)
1218
            ERR_ (1)
1219
            Return(Local0)
1219
            Return(Local0)
1220
        }
1220
        }
1221
 
1221
 
1222
        Store (\_SB_.IDX0.TEST(), Local0)
1222
        Store (\_SB_.IDX0.TEST(), Local0)
1223
        if (LGreater (Local0, 0))
1223
        if (LGreater (Local0, 0))
1224
        {
1224
        {
1225
            ERR_ (1)
1225
            ERR_ (1)
1226
            Return(Local0)
1226
            Return(Local0)
1227
        }
1227
        }
1228
 
1228
 
1229
        Store (\_SB_.IDX3.TEST(), Local0)
1229
        Store (\_SB_.IDX3.TEST(), Local0)
1230
        if (LGreater (Local0, 0))
1230
        if (LGreater (Local0, 0))
1231
        {
1231
        {
1232
            ERR_ (1)
1232
            ERR_ (1)
1233
            Return(Local0)
1233
            Return(Local0)
1234
        }
1234
        }
1235
 
1235
 
1236
        Store (\IDX7.TEST(), Local0)
1236
        Store (\IDX7.TEST(), Local0)
1237
        if (LGreater (Local0, 0))
1237
        if (LGreater (Local0, 0))
1238
        {
1238
        {
1239
            ERR_ (1)
1239
            ERR_ (1)
1240
            Return(Local0)
1240
            Return(Local0)
1241
        }
1241
        }
1242
 
1242
 
1243
        Store (\MTCH.TEST(), Local0)
1243
        Store (\MTCH.TEST(), Local0)
1244
        if (LGreater (Local0, 0))
1244
        if (LGreater (Local0, 0))
1245
        {
1245
        {
1246
            ERR_ (1)
1246
            ERR_ (1)
1247
            Return(Local0)
1247
            Return(Local0)
1248
        }
1248
        }
1249
 
1249
 
1250
        Store (\WHLB.TEST(), Local0)
1250
        Store (\WHLB.TEST(), Local0)
1251
        if (LGreater (Local0, 0))
1251
        if (LGreater (Local0, 0))
1252
        {
1252
        {
1253
            ERR_ (1)
1253
            ERR_ (1)
1254
            Return(Local0)
1254
            Return(Local0)
1255
        }
1255
        }
1256
 
1256
 
1257
        Store (\_SB_.IDX2.TEST(), Local0)
1257
        Store (\_SB_.IDX2.TEST(), Local0)
1258
        if (LGreater (Local0, 0))
1258
        if (LGreater (Local0, 0))
1259
        {
1259
        {
1260
            ERR_ (1)
1260
            ERR_ (1)
1261
            Return(Local0)
1261
            Return(Local0)
1262
        }
1262
        }
1263
 
1263
 
1264
        Store (\SIZO.TEST(), Local0)
1264
        Store (\SIZO.TEST(), Local0)
1265
        if (LGreater (Local0, 0))
1265
        if (LGreater (Local0, 0))
1266
        {
1266
        {
1267
            ERR_ (1)
1267
            ERR_ (1)
1268
            Return(Local0)
1268
            Return(Local0)
1269
        }
1269
        }
1270
 
1270
 
1271
        Store (\_SB_.SMIS.TEST(), Local0)
1271
        Store (\_SB_.SMIS.TEST(), Local0)
1272
        if (LGreater (Local0, 0))
1272
        if (LGreater (Local0, 0))
1273
        {
1273
        {
1274
            ERR_ (1)
1274
            ERR_ (1)
1275
            Return(Local0)
1275
            Return(Local0)
1276
        }
1276
        }
1277
 
1277
 
1278
        if (LGreater (ERRS, 0))
1278
        if (LGreater (ERRS, 0))
1279
        {
1279
        {
1280
            Store ("****** There were errors during the execution of the test ******", Debug)
1280
            Store ("****** There were errors during the execution of the test ******", Debug)
1281
        }
1281
        }
1282
 
1282
 
1283
        //
1283
        //
1284
        // Last Test
1284
        // Last Test
1285
        //
1285
        //
1286
 
1286
 
1287
        Return(0) // Success
1287
        Return(0) // Success
1288
    }
1288
    }
1289
 
1289
 
1290
 
1290
 
1291
    Method (OBJ1, 1, SERIALIZED)
1291
    Method (OBJ1, 1, SERIALIZED)
1292
    {
1292
    {
1293
 
1293
 
1294
        Store (3, Local0)
1294
        Store (3, Local0)
1295
        Name(BUFR, Buffer (Local0) {})
1295
        Name(BUFR, Buffer (Local0) {})
1296
        Name(BUF1, Buffer (4) {1,2,3,4})
1296
        Name(BUF1, Buffer (4) {1,2,3,4})
1297
        Name(BUF2, Buffer (4) {})
1297
        Name(BUF2, Buffer (4) {})
1298
 
1298
 
1299
        Store (BUF1, BUF2)
1299
        Store (BUF1, BUF2)
1300
        Mutex (MTX1, 4)
1300
        Mutex (MTX1, 4)
1301
 
1301
 
1302
        Alias (MTX1, MTX2)
1302
        Alias (MTX1, MTX2)
1303
    }
1303
    }
1304
 
1304
 
1305
 
1305
 
1306
    Mutex (MTXT, 0)
1306
    Mutex (MTXT, 0)
1307
    Mutex (MTXX, 0)
1307
    Mutex (MTXX, 0)
1308
 
1308
 
1309
    /*
1309
    /*
1310
     * Field Creation
1310
     * Field Creation
1311
     */
1311
     */
1312
 
1312
 
1313
    Method (FLDS)
1313
    Method (FLDS)
1314
    {
1314
    {
1315
        Store ("++++++++ Creating BufferFields", Debug)
1315
        Store ("++++++++ Creating BufferFields", Debug)
1316
        Name (BUF2, Buffer (128) {})
1316
        Name (BUF2, Buffer (128) {})
1317
 
1317
 
1318
        CreateBitField (BUF2, 3, BIT2)
1318
        CreateBitField (BUF2, 3, BIT2)
1319
        CreateByteField (BUF2, 1, BYT2)
1319
        CreateByteField (BUF2, 1, BYT2)
1320
        CreateWordField (BUF2, 2, WRD2)
1320
        CreateWordField (BUF2, 2, WRD2)
1321
        CreateDwordField (BUF2, 4, DWD2)
1321
        CreateDwordField (BUF2, 4, DWD2)
1322
        CreateQwordField (BUF2, 8, QWD2)
1322
        CreateQwordField (BUF2, 8, QWD2)
1323
        CreateField (BUF2, 128, 12, FLD2)
1323
        CreateField (BUF2, 128, 12, FLD2)
1324
        CreateField (BUF2, 148, 96, FLD3)
1324
        CreateField (BUF2, 148, 96, FLD3)
1325
 
1325
 
1326
        Store (0x1, BIT2)
1326
        Store (0x1, BIT2)
1327
        Store (BIT2, Local0)
1327
        Store (BIT2, Local0)
1328
        if (LNotEqual (Local0, 0x1))
1328
        if (LNotEqual (Local0, 0x1))
1329
        {
1329
        {
1330
            ERR_ (1)
1330
            ERR_ (1)
1331
        }
1331
        }
1332
        else
1332
        else
1333
        {
1333
        {
1334
            Store (DerefOf (Index (BUF2, 0)), Local0)
1334
            Store (DerefOf (Index (BUF2, 0)), Local0)
1335
            if (LNotEqual (Local0, 0x08))
1335
            if (LNotEqual (Local0, 0x08))
1336
            {
1336
            {
1337
                ERR_ (1)
1337
                ERR_ (1)
1338
            }
1338
            }
1339
            else
1339
            else
1340
            {
1340
            {
1341
                Store ("++++++++ Bit BufferField I/O PASS", Debug)
1341
                Store ("++++++++ Bit BufferField I/O PASS", Debug)
1342
            }
1342
            }
1343
        }
1343
        }
1344
 
1344
 
1345
        Store (0x1A, BYT2)
1345
        Store (0x1A, BYT2)
1346
        Store (BYT2, Local0)
1346
        Store (BYT2, Local0)
1347
        if (LNotEqual (Local0, 0x1A))
1347
        if (LNotEqual (Local0, 0x1A))
1348
        {
1348
        {
1349
            ERR_ (1)
1349
            ERR_ (1)
1350
        }
1350
        }
1351
        else
1351
        else
1352
        {
1352
        {
1353
            Store ("++++++++ Byte BufferField I/O PASS", Debug)
1353
            Store ("++++++++ Byte BufferField I/O PASS", Debug)
1354
        }
1354
        }
1355
 
1355
 
1356
        Store (0x1234, WRD2)
1356
        Store (0x1234, WRD2)
1357
        Store (WRD2, Local0)
1357
        Store (WRD2, Local0)
1358
        if (LNotEqual (Local0, 0x1234))
1358
        if (LNotEqual (Local0, 0x1234))
1359
        {
1359
        {
1360
            ERR_ (1)
1360
            ERR_ (1)
1361
        }
1361
        }
1362
        else
1362
        else
1363
        {
1363
        {
1364
            Store ("++++++++ Word BufferField I/O PASS", Debug)
1364
            Store ("++++++++ Word BufferField I/O PASS", Debug)
1365
        }
1365
        }
1366
 
1366
 
1367
        Store (0x123, FLD2)
1367
        Store (0x123, FLD2)
1368
        Store (FLD2, Local0)
1368
        Store (FLD2, Local0)
1369
        if (LNotEqual (Local0, 0x123))
1369
        if (LNotEqual (Local0, 0x123))
1370
        {
1370
        {
1371
            ERR_ (1)
1371
            ERR_ (1)
1372
        }
1372
        }
1373
        else
1373
        else
1374
        {
1374
        {
1375
            Store ("++++++++ 12-bit BufferField I/O PASS", Debug)
1375
            Store ("++++++++ 12-bit BufferField I/O PASS", Debug)
1376
        }
1376
        }
1377
 
1377
 
1378
        Store (0x12345678, DWD2)
1378
        Store (0x12345678, DWD2)
1379
        Store (DWD2, Local0)
1379
        Store (DWD2, Local0)
1380
        if (LNotEqual (Local0, 0x12345678))
1380
        if (LNotEqual (Local0, 0x12345678))
1381
        {
1381
        {
1382
            ERR_ (1)
1382
            ERR_ (1)
1383
        }
1383
        }
1384
        else
1384
        else
1385
        {
1385
        {
1386
            Store ("++++++++ Dword BufferField I/O PASS", Debug)
1386
            Store ("++++++++ Dword BufferField I/O PASS", Debug)
1387
        }
1387
        }
1388
 
1388
 
1389
        Store (0x1234567887654321, QWD2)
1389
        Store (0x1234567887654321, QWD2)
1390
        Store (QWD2, Local0)
1390
        Store (QWD2, Local0)
1391
        if (LNotEqual (Local0, 0x1234567887654321))
1391
        if (LNotEqual (Local0, 0x1234567887654321))
1392
        {
1392
        {
1393
            ERR_ (1)
1393
            ERR_ (1)
1394
        }
1394
        }
1395
        else
1395
        else
1396
        {
1396
        {
1397
            Store ("++++++++ Qword BufferField I/O PASS", Debug)
1397
            Store ("++++++++ Qword BufferField I/O PASS", Debug)
1398
        }
1398
        }
1399
    }
1399
    }
1400
 
1400
 
1401
 
1401
 
1402
    /* Field execution */
1402
    /* Field execution */
1403
 
1403
 
1404
    Method (FLDX)
1404
    Method (FLDX)
1405
    {
1405
    {
1406
        Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
1406
        Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
1407
        {   //  Field:  SMEM overlay using 32-bit field elements
1407
        {   //  Field:  SMEM overlay using 32-bit field elements
1408
            SMD0,   32, //  32-bits
1408
            SMD0,   32, //  32-bits
1409
            SMD1,   32,     //  32-bits
1409
            SMD1,   32,     //  32-bits
1410
            SMD2,   32,     //  32-bits
1410
            SMD2,   32,     //  32-bits
1411
            SMD3,   32  //  32-bits
1411
            SMD3,   32  //  32-bits
1412
        }   //  Field:  SMEM overlay using 32-bit field elements
1412
        }   //  Field:  SMEM overlay using 32-bit field elements
1413
        Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
1413
        Field (\_SB_.MEM.SMEM, AnyAcc, NoLock, Preserve)
1414
        {   //  Field:  SMEM overlay using greater than 32-bit field elements
1414
        {   //  Field:  SMEM overlay using greater than 32-bit field elements
1415
            SME0,   69, //  larger than an integer (32 or 64)
1415
            SME0,   69, //  larger than an integer (32 or 64)
1416
            SME1,   97  //  larger than an integer
1416
            SME1,   97  //  larger than an integer
1417
        }   //  Field:  SMEM overlay using greater than 32-bit field elements
1417
        }   //  Field:  SMEM overlay using greater than 32-bit field elements
1418
    }
1418
    }
1419
 
1419
 
1420
 
1420
 
1421
    Method (MTX_, )
1421
    Method (MTX_, )
1422
    {
1422
    {
1423
        /* Test "Force release" of mutex on method exit */
1423
        /* Test "Force release" of mutex on method exit */
1424
 
1424
 
1425
        Acquire (MTXT, 0xFFFF)
1425
        Acquire (MTXT, 0xFFFF)
1426
        Acquire (MTXX, 0xFFFF)
1426
        Acquire (MTXX, 0xFFFF)
1427
 
1427
 
1428
        Store ("++++++++ Acquiring Mutex MTX2", Debug)
1428
        Store ("++++++++ Acquiring Mutex MTX2", Debug)
1429
        Acquire (_GL_, 0xFFFF)
1429
        Acquire (_GL_, 0xFFFF)
1430
 
1430
 
1431
 
1431
 
1432
        Store ("++++++++ Releasing Mutex MTX2", Debug)
1432
        Store ("++++++++ Releasing Mutex MTX2", Debug)
1433
        Release (_GL_)
1433
        Release (_GL_)
1434
    }
1434
    }
1435
 
1435
 
1436
 
1436
 
1437
    Method (OBJ2, 1)
1437
    Method (OBJ2, 1)
1438
    {
1438
    {
1439
        Store ("++++++++ Creating Buffer BUFO", Debug)
1439
        Store ("++++++++ Creating Buffer BUFO", Debug)
1440
        Name (BUFO, Buffer (32) {})
1440
        Name (BUFO, Buffer (32) {})
1441
 
1441
 
1442
        Store ("++++++++ Creating OpRegion OPR2", Debug)
1442
        Store ("++++++++ Creating OpRegion OPR2", Debug)
1443
        OperationRegion (OPR2, SystemMemory, Arg0, 256)
1443
        OperationRegion (OPR2, SystemMemory, Arg0, 256)
1444
 
1444
 
1445
        Store ("++++++++ Creating Field(s) in OpRegion OPR2", Debug)
1445
        Store ("++++++++ Creating Field(s) in OpRegion OPR2", Debug)
1446
        Field (OPR2, ByteAcc, NoLock, Preserve)
1446
        Field (OPR2, ByteAcc, NoLock, Preserve)
1447
        {
1447
        {
1448
            IDX2, 8,
1448
            IDX2, 8,
1449
            DAT2, 8,
1449
            DAT2, 8,
1450
            BNK2, 4
1450
            BNK2, 4
1451
        }
1451
        }
1452
 
1452
 
1453
        Store ("++++++++ Creating BankField BNK2 in OpRegion OPR2", Debug)
1453
        Store ("++++++++ Creating BankField BNK2 in OpRegion OPR2", Debug)
1454
        //
1454
        //
1455
        // mcw 3/20/00 - changed FET0, 4, FET1, 3 to FET0, 1, FET1, 1
1455
        // mcw 3/20/00 - changed FET0, 4, FET1, 3 to FET0, 1, FET1, 1
1456
        //
1456
        //
1457
        BankField (OPR2, BNK2, 0, ByteAcc, NoLock, Preserve)
1457
        BankField (OPR2, BNK2, 0, ByteAcc, NoLock, Preserve)
1458
        {
1458
        {
1459
            FET0, 4,
1459
            FET0, 4,
1460
            FET1, 3
1460
            FET1, 3
1461
        }
1461
        }
1462
 
1462
 
1463
        Store ("++++++++ Creating IndexField", Debug)
1463
        Store ("++++++++ Creating IndexField", Debug)
1464
        IndexField (IDX2, DAT2, ByteAcc, NoLock, Preserve)
1464
        IndexField (IDX2, DAT2, ByteAcc, NoLock, Preserve)
1465
        {
1465
        {
1466
            FET2, 4,
1466
            FET2, 4,
1467
            FET3, 3
1467
            FET3, 3
1468
        }
1468
        }
1469
 
1469
 
1470
        Store ("++++++++ SizeOf (BUFO)", Debug)
1470
        Store ("++++++++ SizeOf (BUFO)", Debug)
1471
        SizeOf (BUFO)
1471
        SizeOf (BUFO)
1472
 
1472
 
1473
        Store ("++++++++ Store (SizeOf (BUFO), Local0)", Debug)
1473
        Store ("++++++++ Store (SizeOf (BUFO), Local0)", Debug)
1474
        Store (SizeOf (BUFO), Local0)
1474
        Store (SizeOf (BUFO), Local0)
1475
 
1475
 
1476
        Store ("++++++++ Concatenate (\"abd\", \"def\", Local0)", Debug)
1476
        Store ("++++++++ Concatenate (\"abd\", \"def\", Local0)", Debug)
1477
        Concatenate ("abd", "def", Local0)
1477
        Concatenate ("abd", "def", Local0)
1478
        Store (Local0, Debug)
1478
        Store (Local0, Debug)
1479
 
1479
 
1480
        Store ("++++++++ Concatenate (\"abd\", 0x7B, Local0)", Debug)
1480
        Store ("++++++++ Concatenate (\"abd\", 0x7B, Local0)", Debug)
1481
        Concatenate ("abd", 0x7B, Local0)
1481
        Concatenate ("abd", 0x7B, Local0)
1482
        Store (Local0, Debug)
1482
        Store (Local0, Debug)
1483
 
1483
 
1484
        Store ("++++++++ Creating Event EVT2", Debug)
1484
        Store ("++++++++ Creating Event EVT2", Debug)
1485
        Event (EVT2)
1485
        Event (EVT2)
1486
 
1486
 
1487
        Store ("++++++++ Creating Mutex MTX2", Debug)
1487
        Store ("++++++++ Creating Mutex MTX2", Debug)
1488
        Mutex (MTX2, 0)
1488
        Mutex (MTX2, 0)
1489
 
1489
 
1490
        Store ("++++++++ Creating Alias MTXA to MTX2", Debug)
1490
        Store ("++++++++ Creating Alias MTXA to MTX2", Debug)
1491
        Alias (MTX2, MTXA)
1491
        Alias (MTX2, MTXA)
1492
 
1492
 
1493
        Store ("++++++++ Acquiring Mutex MTX2", Debug)
1493
        Store ("++++++++ Acquiring Mutex MTX2", Debug)
1494
        Acquire (MTX2, 0xFFFF)
1494
        Acquire (MTX2, 0xFFFF)
1495
 
1495
 
1496
        Store ("++++++++ Acquiring Mutex MTX2 (2nd acquire)", Debug)
1496
        Store ("++++++++ Acquiring Mutex MTX2 (2nd acquire)", Debug)
1497
        Acquire (MTX2, 1)
1497
        Acquire (MTX2, 1)
1498
 
1498
 
1499
        Store ("++++++++ Releasing Mutex MTX2", Debug)
1499
        Store ("++++++++ Releasing Mutex MTX2", Debug)
1500
        Release (MTX2)
1500
        Release (MTX2)
1501
 
1501
 
1502
        // Type 1 opcodes
1502
        // Type 1 opcodes
1503
 
1503
 
1504
        Store ("++++++++ Signalling Event EVT2", Debug)
1504
        Store ("++++++++ Signalling Event EVT2", Debug)
1505
        Signal (EVT2)
1505
        Signal (EVT2)
1506
 
1506
 
1507
        Store ("++++++++ Resetting Event EVT2", Debug)
1507
        Store ("++++++++ Resetting Event EVT2", Debug)
1508
        Reset (EVT2)
1508
        Reset (EVT2)
1509
 
1509
 
1510
        Store ("++++++++ Signalling Event EVT2", Debug)
1510
        Store ("++++++++ Signalling Event EVT2", Debug)
1511
        Signal (EVT2)
1511
        Signal (EVT2)
1512
 
1512
 
1513
        Store ("++++++++ Waiting Event EVT2", Debug)
1513
        Store ("++++++++ Waiting Event EVT2", Debug)
1514
        Wait (EVT2, 0xFFFF)
1514
        Wait (EVT2, 0xFFFF)
1515
 
1515
 
1516
        Store ("++++++++ Sleep", Debug)
1516
        Store ("++++++++ Sleep", Debug)
1517
        Sleep (100)
1517
        Sleep (100)
1518
 
1518
 
1519
        Store ("++++++++ Stall", Debug)
1519
        Store ("++++++++ Stall", Debug)
1520
        Stall (254)
1520
        Stall (254)
1521
 
1521
 
1522
        Store ("++++++++ NoOperation", Debug)
1522
        Store ("++++++++ NoOperation", Debug)
1523
        Noop
1523
        Noop
1524
 
1524
 
1525
        // Type 2 Opcodes
1525
        // Type 2 Opcodes
1526
 
1526
 
1527
        Store ("++++++++ Return from Method OBJ2", Debug)
1527
        Store ("++++++++ Return from Method OBJ2", Debug)
1528
        return (4)
1528
        return (4)
1529
    }
1529
    }
1530
 
1530
 
1531
 
1531
 
1532
    Method (NUM1, 0)
1532
    Method (NUM1, 0)
1533
    {
1533
    {
1534
        /* ADD */
1534
        /* ADD */
1535
 
1535
 
1536
        Store ("++++++++ Add (0x12345678, 0x11111111, Local0)", Debug)
1536
        Store ("++++++++ Add (0x12345678, 0x11111111, Local0)", Debug)
1537
        Add (0x12345678, 0x11111111, Local0)
1537
        Add (0x12345678, 0x11111111, Local0)
1538
 
1538
 
1539
        Store ("++++++++ Store (Add (0x12345678, 0x11111111), Local1)", Debug)
1539
        Store ("++++++++ Store (Add (0x12345678, 0x11111111), Local1)", Debug)
1540
        Store (Add (0x12345678, 0x11111111), Local1)
1540
        Store (Add (0x12345678, 0x11111111), Local1)
1541
 
1541
 
1542
        Store ("++++++++ Checking result from ADD", Debug)
1542
        Store ("++++++++ Checking result from ADD", Debug)
1543
        if (LNotEqual (Local0, Local1))
1543
        if (LNotEqual (Local0, Local1))
1544
        {
1544
        {
1545
            ERR_ (0)
1545
            ERR_ (0)
1546
        }
1546
        }
1547
 
1547
 
1548
 
1548
 
1549
        /* SUBTRACT */
1549
        /* SUBTRACT */
1550
 
1550
 
1551
        Store ("++++++++ Subtract (0x87654321, 0x11111111, Local4)", Debug)
1551
        Store ("++++++++ Subtract (0x87654321, 0x11111111, Local4)", Debug)
1552
        Subtract (0x87654321, 0x11111111, Local4)
1552
        Subtract (0x87654321, 0x11111111, Local4)
1553
 
1553
 
1554
        Store ("++++++++ Store (Subtract (0x87654321, 0x11111111), Local5)", Debug)
1554
        Store ("++++++++ Store (Subtract (0x87654321, 0x11111111), Local5)", Debug)
1555
        Store (Subtract (0x87654321, 0x11111111), Local5)
1555
        Store (Subtract (0x87654321, 0x11111111), Local5)
1556
 
1556
 
1557
        Store ("++++++++ Checking result from SUBTRACT", Debug)
1557
        Store ("++++++++ Checking result from SUBTRACT", Debug)
1558
        if (LNotEqual (Local4, Local5))
1558
        if (LNotEqual (Local4, Local5))
1559
        {
1559
        {
1560
            ERR_ (0)
1560
            ERR_ (0)
1561
        }
1561
        }
1562
 
1562
 
1563
 
1563
 
1564
        /* MULTIPLY */
1564
        /* MULTIPLY */
1565
 
1565
 
1566
        Store ("++++++++ Multiply (33, 10, Local6)", Debug)
1566
        Store ("++++++++ Multiply (33, 10, Local6)", Debug)
1567
        Multiply (33, 10, Local6)
1567
        Multiply (33, 10, Local6)
1568
 
1568
 
1569
        Store ("++++++++ Store (Multiply (33, 10), Local7)", Debug)
1569
        Store ("++++++++ Store (Multiply (33, 10), Local7)", Debug)
1570
        Store (Multiply (33, 10), Local7)
1570
        Store (Multiply (33, 10), Local7)
1571
 
1571
 
1572
 
1572
 
1573
        Store ("++++++++ Checking result from MULTIPLY", Debug)
1573
        Store ("++++++++ Checking result from MULTIPLY", Debug)
1574
        if (LNotEqual (Local6, Local7))
1574
        if (LNotEqual (Local6, Local7))
1575
        {
1575
        {
1576
            ERR_ (0)
1576
            ERR_ (0)
1577
        }
1577
        }
1578
 
1578
 
1579
 
1579
 
1580
        /* DIVIDE */
1580
        /* DIVIDE */
1581
 
1581
 
1582
        Store ("++++++++ Divide (100, 9, Local1, Local2)", Debug)
1582
        Store ("++++++++ Divide (100, 9, Local1, Local2)", Debug)
1583
        Divide (100, 9, Local1, Local2)
1583
        Divide (100, 9, Local1, Local2)
1584
 
1584
 
1585
        Store ("++++++++ Store (Divide (100, 9), Local3)", Debug)
1585
        Store ("++++++++ Store (Divide (100, 9), Local3)", Debug)
1586
        Store (Divide (100, 9), Local3)
1586
        Store (Divide (100, 9), Local3)
1587
 
1587
 
1588
        Store ("++++++++ Checking (quotient) result from DIVIDE", Debug)
1588
        Store ("++++++++ Checking (quotient) result from DIVIDE", Debug)
1589
        if (LNotEqual (Local2, Local3))
1589
        if (LNotEqual (Local2, Local3))
1590
        {
1590
        {
1591
            ERR_ (0)
1591
            ERR_ (0)
1592
        }
1592
        }
1593
 
1593
 
1594
 
1594
 
1595
        /* INCREMENT */
1595
        /* INCREMENT */
1596
 
1596
 
1597
        Store ("++++++++ Increment (Local0)", Debug)
1597
        Store ("++++++++ Increment (Local0)", Debug)
1598
        Store (1, Local0)
1598
        Store (1, Local0)
1599
        Store (2, Local1)
1599
        Store (2, Local1)
1600
        Increment (Local0)
1600
        Increment (Local0)
1601
 
1601
 
1602
        Store ("++++++++ Checking result from INCREMENT", Debug)
1602
        Store ("++++++++ Checking result from INCREMENT", Debug)
1603
        if (LNotEqual (Local0, Local1))
1603
        if (LNotEqual (Local0, Local1))
1604
        {
1604
        {
1605
            ERR_ (0)
1605
            ERR_ (0)
1606
        }
1606
        }
1607
 
1607
 
1608
 
1608
 
1609
        /* DECREMENT */
1609
        /* DECREMENT */
1610
 
1610
 
1611
        Store ("++++++++ Decrement (Local0)", Debug)
1611
        Store ("++++++++ Decrement (Local0)", Debug)
1612
        Store (2, Local0)
1612
        Store (2, Local0)
1613
        Store (1, Local1)
1613
        Store (1, Local1)
1614
        Decrement (Local0)
1614
        Decrement (Local0)
1615
 
1615
 
1616
        Store ("++++++++ Checking result from DECREMENT", Debug)
1616
        Store ("++++++++ Checking result from DECREMENT", Debug)
1617
        if (LNotEqual (Local0, Local1))
1617
        if (LNotEqual (Local0, Local1))
1618
        {
1618
        {
1619
            ERR_ (0)
1619
            ERR_ (0)
1620
        }
1620
        }
1621
 
1621
 
1622
 
1622
 
1623
        /* TOBCD */
1623
        /* TOBCD */
1624
        /* FROMBCD */
1624
        /* FROMBCD */
1625
 
1625
 
1626
        Store ("++++++++ ToBCD (0x1234, Local5)", Debug)
1626
        Store ("++++++++ ToBCD (0x1234, Local5)", Debug)
1627
        ToBCD (0x1234, Local5)
1627
        ToBCD (0x1234, Local5)
1628
 
1628
 
1629
        Store ("++++++++ FromBCD (Local5, Local6)", Debug)
1629
        Store ("++++++++ FromBCD (Local5, Local6)", Debug)
1630
        FromBCD (Local5, Local6)
1630
        FromBCD (Local5, Local6)
1631
 
1631
 
1632
        Store ("++++++++ Return (Local6)", Debug)
1632
        Store ("++++++++ Return (Local6)", Debug)
1633
        Return (Local6)
1633
        Return (Local6)
1634
    }
1634
    }
1635
 
1635
 
1636
 
1636
 
1637
    Method (CHEK)
1637
    Method (CHEK)
1638
    {
1638
    {
1639
 
1639
 
1640
        Store (3, Local0)
1640
        Store (3, Local0)
1641
        Store (3, Debug)
1641
        Store (3, Debug)
1642
        Store (Local0, Debug)
1642
        Store (Local0, Debug)
1643
        Store (7, Local1)
1643
        Store (7, Local1)
1644
 
1644
 
1645
        Add (Local0, Local1)
1645
        Add (Local0, Local1)
1646
        if (LNotEqual (Local0, 3))
1646
        if (LNotEqual (Local0, 3))
1647
        {
1647
        {
1648
            ERR_ (2)
1648
            ERR_ (2)
1649
        }
1649
        }
1650
        if (LNotEqual (Local1, 7))
1650
        if (LNotEqual (Local1, 7))
1651
        {
1651
        {
1652
            ERR_ (2)
1652
            ERR_ (2)
1653
        }
1653
        }
1654
 
1654
 
1655
 
1655
 
1656
        Add (Local0, Local1, Local2)
1656
        Add (Local0, Local1, Local2)
1657
        if (LNotEqual (Local0, 3))
1657
        if (LNotEqual (Local0, 3))
1658
        {
1658
        {
1659
            ERR_ (2)
1659
            ERR_ (2)
1660
        }
1660
        }
1661
        if (LNotEqual (Local1, 7))
1661
        if (LNotEqual (Local1, 7))
1662
        {
1662
        {
1663
            ERR_ (2)
1663
            ERR_ (2)
1664
        }
1664
        }
1665
    }
1665
    }
1666
 
1666
 
1667
 
1667
 
1668
    Method (RET1)
1668
    Method (RET1)
1669
    {
1669
    {
1670
        Store (3, Local0)
1670
        Store (3, Local0)
1671
        Return (Local0)
1671
        Return (Local0)
1672
    }
1672
    }
1673
 
1673
 
1674
    Method (RET2)
1674
    Method (RET2)
1675
    {
1675
    {
1676
        Return (RET1())
1676
        Return (RET1())
1677
    }
1677
    }
1678
 
1678
 
1679
    Method (RETZ)
1679
    Method (RETZ)
1680
    {
1680
    {
1681
        RET2 ()
1681
        RET2 ()
1682
    }
1682
    }
1683
 
1683
 
1684
 
1684
 
1685
    Method (BITZ)
1685
    Method (BITZ)
1686
    {
1686
    {
1687
        Store ("++++++++ FindSetLeftBit (0x00100100, Local0)", Debug)
1687
        Store ("++++++++ FindSetLeftBit (0x00100100, Local0)", Debug)
1688
        FindSetLeftBit (0x00100100, Local0)
1688
        FindSetLeftBit (0x00100100, Local0)
1689
        if (LNotEqual (Local0, 21))
1689
        if (LNotEqual (Local0, 21))
1690
        {
1690
        {
1691
            ERR_ (1)
1691
            ERR_ (1)
1692
        }
1692
        }
1693
 
1693
 
1694
        Store ("++++++++ FindSetRightBit (0x00100100, Local1)", Debug)
1694
        Store ("++++++++ FindSetRightBit (0x00100100, Local1)", Debug)
1695
        FindSetRightBit (0x00100100, Local1)
1695
        FindSetRightBit (0x00100100, Local1)
1696
        if (LNotEqual (Local1, 9))
1696
        if (LNotEqual (Local1, 9))
1697
        {
1697
        {
1698
            ERR_ (1)
1698
            ERR_ (1)
1699
        }
1699
        }
1700
 
1700
 
1701
        Store ("++++++++ And (0xF0F0F0F0, 0x11111111, Local2)", Debug)
1701
        Store ("++++++++ And (0xF0F0F0F0, 0x11111111, Local2)", Debug)
1702
        And (0xF0F0F0F0, 0x11111111, Local2)
1702
        And (0xF0F0F0F0, 0x11111111, Local2)
1703
        if (LNotEqual (Local2, 0x10101010))
1703
        if (LNotEqual (Local2, 0x10101010))
1704
        {
1704
        {
1705
            ERR_ (1)
1705
            ERR_ (1)
1706
        }
1706
        }
1707
 
1707
 
1708
        Store ("++++++++ NAnd (0xF0F0F0F0, 0x11111111, Local3)", Debug)
1708
        Store ("++++++++ NAnd (0xF0F0F0F0, 0x11111111, Local3)", Debug)
1709
        NAnd (0xF0F0F0F0, 0x11111111, Local3)
1709
        NAnd (0xF0F0F0F0, 0x11111111, Local3)
1710
        if (LNotEqual (Local3, 0xEFEFEFEF))
1710
        if (LNotEqual (Local3, 0xEFEFEFEF))
1711
        {
1711
        {
1712
            ERR_ (1)
1712
            ERR_ (1)
1713
        }
1713
        }
1714
 
1714
 
1715
        Store ("++++++++ Or (0x11111111, 0x22222222, Local4)", Debug)
1715
        Store ("++++++++ Or (0x11111111, 0x22222222, Local4)", Debug)
1716
        Or (0x11111111, 0x22222222, Local4)
1716
        Or (0x11111111, 0x22222222, Local4)
1717
        if (LNotEqual (Local4, 0x33333333))
1717
        if (LNotEqual (Local4, 0x33333333))
1718
        {
1718
        {
1719
            ERR_ (1)
1719
            ERR_ (1)
1720
        }
1720
        }
1721
 
1721
 
1722
        Store ("++++++++ NOr (0x11111111, 0x22222222, Local5)", Debug)
1722
        Store ("++++++++ NOr (0x11111111, 0x22222222, Local5)", Debug)
1723
        NOr (0x11111111, 0x22222222, Local5)
1723
        NOr (0x11111111, 0x22222222, Local5)
1724
        if (LNotEqual (Local5, 0xCCCCCCCC))
1724
        if (LNotEqual (Local5, 0xCCCCCCCC))
1725
        {
1725
        {
1726
            ERR_ (1)
1726
            ERR_ (1)
1727
        }
1727
        }
1728
 
1728
 
1729
        Store ("++++++++ XOr (0x11113333, 0x22222222, Local6)", Debug)
1729
        Store ("++++++++ XOr (0x11113333, 0x22222222, Local6)", Debug)
1730
        XOr (0x11113333, 0x22222222, Local6)
1730
        XOr (0x11113333, 0x22222222, Local6)
1731
        if (LNotEqual (Local6, 0x33331111))
1731
        if (LNotEqual (Local6, 0x33331111))
1732
        {
1732
        {
1733
            ERR_ (1)
1733
            ERR_ (1)
1734
        }
1734
        }
1735
 
1735
 
1736
        Store ("++++++++ ShiftLeft (0x11112222, 2, Local7)", Debug)
1736
        Store ("++++++++ ShiftLeft (0x11112222, 2, Local7)", Debug)
1737
        ShiftLeft (0x11112222, 2, Local7)
1737
        ShiftLeft (0x11112222, 2, Local7)
1738
        if (LNotEqual (Local7, 0x44448888))
1738
        if (LNotEqual (Local7, 0x44448888))
1739
        {
1739
        {
1740
            ERR_ (1)
1740
            ERR_ (1)
1741
        }
1741
        }
1742
 
1742
 
1743
        Store ("++++++++ ShiftRight (Local7, 2, Local7)", Debug)
1743
        Store ("++++++++ ShiftRight (Local7, 2, Local7)", Debug)
1744
        ShiftRight (Local7, 2, Local7)
1744
        ShiftRight (Local7, 2, Local7)
1745
        if (LNotEqual (Local7, 0x11112222))
1745
        if (LNotEqual (Local7, 0x11112222))
1746
        {
1746
        {
1747
            ERR_ (1)
1747
            ERR_ (1)
1748
        }
1748
        }
1749
 
1749
 
1750
 
1750
 
1751
        Store ("++++++++ Not (Local0, Local1)", Debug)
1751
        Store ("++++++++ Not (Local0, Local1)", Debug)
1752
        Store (0x22224444, Local0)
1752
        Store (0x22224444, Local0)
1753
        Not (Local0, Local1)
1753
        Not (Local0, Local1)
1754
        if (LNotEqual (Local0, 0x22224444))
1754
        if (LNotEqual (Local0, 0x22224444))
1755
        {
1755
        {
1756
            ERR_ (2)
1756
            ERR_ (2)
1757
        }
1757
        }
1758
 
1758
 
1759
        if (LNotEqual (Local1, 0xDDDDBBBB))
1759
        if (LNotEqual (Local1, 0xDDDDBBBB))
1760
        {
1760
        {
1761
            ERR_ (1)
1761
            ERR_ (1)
1762
        }
1762
        }
1763
 
1763
 
1764
        Return (Local7)
1764
        Return (Local7)
1765
    }
1765
    }
1766
 
1766
 
1767
 
1767
 
1768
    Method (LOGS)
1768
    Method (LOGS)
1769
    {
1769
    {
1770
 
1770
 
1771
        Store ("++++++++ Store (LAnd (0xFFFFFFFF, 0x11111111), Local0)", Debug)
1771
        Store ("++++++++ Store (LAnd (0xFFFFFFFF, 0x11111111), Local0)", Debug)
1772
        Store (LAnd (0xFFFFFFFF, 0x11111111), Local0)
1772
        Store (LAnd (0xFFFFFFFF, 0x11111111), Local0)
1773
 
1773
 
1774
        Store ("++++++++ Store (LEqual (0xFFFFFFFF, 0x11111111), Local)", Debug)
1774
        Store ("++++++++ Store (LEqual (0xFFFFFFFF, 0x11111111), Local)", Debug)
1775
        Store (LEqual (0xFFFFFFFF, 0x11111111), Local1)
1775
        Store (LEqual (0xFFFFFFFF, 0x11111111), Local1)
1776
 
1776
 
1777
        Store ("++++++++ Store (LGreater (0xFFFFFFFF, 0x11111111), Local2)", Debug)
1777
        Store ("++++++++ Store (LGreater (0xFFFFFFFF, 0x11111111), Local2)", Debug)
1778
        Store (LGreater (0xFFFFFFFF, 0x11111111), Local2)
1778
        Store (LGreater (0xFFFFFFFF, 0x11111111), Local2)
1779
 
1779
 
1780
        Store ("++++++++ Store (LGreaterEqual (0xFFFFFFFF, 0x11111111), Local3)", Debug)
1780
        Store ("++++++++ Store (LGreaterEqual (0xFFFFFFFF, 0x11111111), Local3)", Debug)
1781
        Store (LGreaterEqual (0xFFFFFFFF, 0x11111111), Local3)
1781
        Store (LGreaterEqual (0xFFFFFFFF, 0x11111111), Local3)
1782
 
1782
 
1783
        Store ("++++++++ Store (LLess (0xFFFFFFFF, 0x11111111), Local4)", Debug)
1783
        Store ("++++++++ Store (LLess (0xFFFFFFFF, 0x11111111), Local4)", Debug)
1784
        Store (LLess (0xFFFFFFFF, 0x11111111), Local4)
1784
        Store (LLess (0xFFFFFFFF, 0x11111111), Local4)
1785
 
1785
 
1786
        Store ("++++++++ Store (LLessEqual (0xFFFFFFFF, 0x11111111), Local5)", Debug)
1786
        Store ("++++++++ Store (LLessEqual (0xFFFFFFFF, 0x11111111), Local5)", Debug)
1787
        Store (LLessEqual (0xFFFFFFFF, 0x11111111), Local5)
1787
        Store (LLessEqual (0xFFFFFFFF, 0x11111111), Local5)
1788
 
1788
 
1789
        Store ("++++++++ Store (LNot (0x31313131), Local6)", Debug)
1789
        Store ("++++++++ Store (LNot (0x31313131), Local6)", Debug)
1790
        Store (0x00001111, Local6)
1790
        Store (0x00001111, Local6)
1791
        Store (LNot (Local6), Local7)
1791
        Store (LNot (Local6), Local7)
1792
        if (LNotEqual (Local6, 0x00001111))
1792
        if (LNotEqual (Local6, 0x00001111))
1793
        {
1793
        {
1794
            ERR_ (2)
1794
            ERR_ (2)
1795
        }
1795
        }
1796
 
1796
 
1797
        if (LNotEqual (Local7, 0x0))
1797
        if (LNotEqual (Local7, 0x0))
1798
        {
1798
        {
1799
            ERR_ (1)
1799
            ERR_ (1)
1800
        }
1800
        }
1801
 
1801
 
1802
 
1802
 
1803
        Store ("++++++++ Store (LNotEqual (0xFFFFFFFF, 0x11111111), Local7)", Debug)
1803
        Store ("++++++++ Store (LNotEqual (0xFFFFFFFF, 0x11111111), Local7)", Debug)
1804
        Store (LNotEqual (0xFFFFFFFF, 0x11111111), Local7)
1804
        Store (LNotEqual (0xFFFFFFFF, 0x11111111), Local7)
1805
 
1805
 
1806
        Store ("++++++++ Lor (0x0, 0x1)", Debug)
1806
        Store ("++++++++ Lor (0x0, 0x1)", Debug)
1807
        if (Lor (0x0, 0x1))
1807
        if (Lor (0x0, 0x1))
1808
        {
1808
        {
1809
            Store ("+_+_+_+_+ Lor (0x0, 0x1) returned TRUE", Debug)
1809
            Store ("+_+_+_+_+ Lor (0x0, 0x1) returned TRUE", Debug)
1810
        }
1810
        }
1811
 
1811
 
1812
        return (Local7)
1812
        return (Local7)
1813
    }
1813
    }
1814
 
1814
 
1815
 
1815
 
1816
    Method (COND)
1816
    Method (COND)
1817
    {
1817
    {
1818
        Store ("++++++++ Store (0x4, Local0)", Debug)
1818
        Store ("++++++++ Store (0x4, Local0)", Debug)
1819
        Store (0x4, Local0)
1819
        Store (0x4, Local0)
1820
 
1820
 
1821
        Store ("++++++++ While (Local0)", Debug)
1821
        Store ("++++++++ While (Local0)", Debug)
1822
        While (Local0)
1822
        While (Local0)
1823
        {
1823
        {
1824
            Store ("++++++++ Decrement (Local0)", Debug)
1824
            Store ("++++++++ Decrement (Local0)", Debug)
1825
            Decrement (Local0)
1825
            Decrement (Local0)
1826
        }
1826
        }
1827
 
1827
 
1828
 
1828
 
1829
        Store ("++++++++ Store (0x3, Local6)", Debug)
1829
        Store ("++++++++ Store (0x3, Local6)", Debug)
1830
        Store (0x3, Local6)
1830
        Store (0x3, Local6)
1831
 
1831
 
1832
        Store ("++++++++ While (Subtract (Local6, 1))", Debug)
1832
        Store ("++++++++ While (Subtract (Local6, 1))", Debug)
1833
        While (Subtract (Local6, 1))
1833
        While (Subtract (Local6, 1))
1834
        {
1834
        {
1835
            Store ("++++++++ Decrement (Local6)", Debug)
1835
            Store ("++++++++ Decrement (Local6)", Debug)
1836
            Decrement (Local6)
1836
            Decrement (Local6)
1837
        }
1837
        }
1838
 
1838
 
1839
 
1839
 
1840
        Store ("++++++++ [LVL1] If (LGreater (0x2, 0x1))", Debug)
1840
        Store ("++++++++ [LVL1] If (LGreater (0x2, 0x1))", Debug)
1841
        If (LGreater (0x2, 0x1))
1841
        If (LGreater (0x2, 0x1))
1842
        {
1842
        {
1843
            Store ("++++++++ [LVL2] If (LEqual (0x11111111, 0x22222222))", Debug)
1843
            Store ("++++++++ [LVL2] If (LEqual (0x11111111, 0x22222222))", Debug)
1844
            If (LEqual (0x11111111, 0x22222222))
1844
            If (LEqual (0x11111111, 0x22222222))
1845
            {
1845
            {
1846
                Store ("++++++++ ERROR: If (LEqual (0x11111111, 0x22222222)) returned TRUE", Debug)
1846
                Store ("++++++++ ERROR: If (LEqual (0x11111111, 0x22222222)) returned TRUE", Debug)
1847
            }
1847
            }
1848
 
1848
 
1849
            else
1849
            else
1850
            {
1850
            {
1851
                Store ("++++++++ [LVL3] If (LNot (0x0))", Debug)
1851
                Store ("++++++++ [LVL3] If (LNot (0x0))", Debug)
1852
                If (LNot (0x0))
1852
                If (LNot (0x0))
1853
                {
1853
                {
1854
                    Store ("++++++++ [LVL4] If (LAnd (0xEEEEEEEE, 0x2))", Debug)
1854
                    Store ("++++++++ [LVL4] If (LAnd (0xEEEEEEEE, 0x2))", Debug)
1855
                    If (LAnd (0xEEEEEEEE, 0x2))
1855
                    If (LAnd (0xEEEEEEEE, 0x2))
1856
                    {
1856
                    {
1857
                        Store ("++++++++ [LVL5] If (LLess (0x44444444, 0x3))", Debug)
1857
                        Store ("++++++++ [LVL5] If (LLess (0x44444444, 0x3))", Debug)
1858
                        If (LLess (0x44444444, 0x3))
1858
                        If (LLess (0x44444444, 0x3))
1859
                        {
1859
                        {
1860
                            Store ("++++++++ ERROR: If (LLess (0x44444444, 0x3)) returned TRUE", Debug)
1860
                            Store ("++++++++ ERROR: If (LLess (0x44444444, 0x3)) returned TRUE", Debug)
1861
                        }
1861
                        }
1862
 
1862
 
1863
                        else
1863
                        else
1864
                        {
1864
                        {
1865
                            Store ("++++++++ Exiting from nested IF/ELSE statements", Debug)
1865
                            Store ("++++++++ Exiting from nested IF/ELSE statements", Debug)
1866
                        }
1866
                        }
1867
                    }
1867
                    }
1868
                }
1868
                }
1869
            }
1869
            }
1870
        }
1870
        }
1871
 
1871
 
1872
 
1872
 
1873
        Store ("++++++++ [LVL1] If (LGreater (0x2, 0x1))", Debug)
1873
        Store ("++++++++ [LVL1] If (LGreater (0x2, 0x1))", Debug)
1874
        If (LGreater (0x2, 0x1))
1874
        If (LGreater (0x2, 0x1))
1875
        {
1875
        {
1876
            Store ("++++++++ [LVL2] If (LEqual (0x11111111, 0x22222222))", Debug)
1876
            Store ("++++++++ [LVL2] If (LEqual (0x11111111, 0x22222222))", Debug)
1877
            If (LEqual (0x11111111, 0x22222222))
1877
            If (LEqual (0x11111111, 0x22222222))
1878
            {
1878
            {
1879
                Store ("++++++++ ERROR: If (LEqual (0x11111111, 0x22222222)) returned TRUE", Debug)
1879
                Store ("++++++++ ERROR: If (LEqual (0x11111111, 0x22222222)) returned TRUE", Debug)
1880
            }
1880
            }
1881
 
1881
 
1882
            else
1882
            else
1883
            {
1883
            {
1884
                Store ("++++++++ [LVL3] If (LNot (0x0))", Debug)
1884
                Store ("++++++++ [LVL3] If (LNot (0x0))", Debug)
1885
                If (LNot (0x0))
1885
                If (LNot (0x0))
1886
                {
1886
                {
1887
                    Store ("++++++++ [LVL4] If (LAnd (0xEEEEEEEE, 0x2))", Debug)
1887
                    Store ("++++++++ [LVL4] If (LAnd (0xEEEEEEEE, 0x2))", Debug)
1888
                    If (LAnd (0xEEEEEEEE, 0x2))
1888
                    If (LAnd (0xEEEEEEEE, 0x2))
1889
                    {
1889
                    {
1890
                        Store ("++++++++ [LVL5] If (LLess (0x44444444, 0x3))", Debug)
1890
                        Store ("++++++++ [LVL5] If (LLess (0x44444444, 0x3))", Debug)
1891
                        If (LLess (0x44444444, 0x3))
1891
                        If (LLess (0x44444444, 0x3))
1892
                        {
1892
                        {
1893
                            Store ("++++++++ ERROR: If (LLess (0x44444444, 0x3)) returned TRUE", Debug)
1893
                            Store ("++++++++ ERROR: If (LLess (0x44444444, 0x3)) returned TRUE", Debug)
1894
                        }
1894
                        }
1895
 
1895
 
1896
                        else
1896
                        else
1897
                        {
1897
                        {
1898
                            Store ("++++++++ Returning from nested IF/ELSE statements", Debug)
1898
                            Store ("++++++++ Returning from nested IF/ELSE statements", Debug)
1899
                            Return (Local6)
1899
                            Return (Local6)
1900
                        }
1900
                        }
1901
                    }
1901
                    }
1902
                }
1902
                }
1903
            }
1903
            }
1904
        }
1904
        }
1905
 
1905
 
1906
    }
1906
    }
1907
 
1907
 
1908
 
1908
 
1909
    Method (REFS)
1909
    Method (REFS)
1910
    {
1910
    {
1911
        Name (BBUF, Buffer() {0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7})
1911
        Name (BBUF, Buffer() {0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7})
1912
 
1912
 
1913
        Name (NEST, Package ()
1913
        Name (NEST, Package ()
1914
        {
1914
        {
1915
            Package ()
1915
            Package ()
1916
            {
1916
            {
1917
                0x01, 0x02, 0x03, 0x04, 0x05, 0x06
1917
                0x01, 0x02, 0x03, 0x04, 0x05, 0x06
1918
            },
1918
            },
1919
            Package ()
1919
            Package ()
1920
            {
1920
            {
1921
                0x11, 0x12, 0x12, 0x14, 0x15, 0x16
1921
                0x11, 0x12, 0x12, 0x14, 0x15, 0x16
1922
            }
1922
            }
1923
        })
1923
        })
1924
 
1924
 
1925
    /* Parser thinks this is a method invocation!! */
1925
    /* Parser thinks this is a method invocation!! */
1926
 
1926
 
1927
        Store (RefOf (MAIN), Local5)
1927
        Store (RefOf (MAIN), Local5)
1928
 
1928
 
1929
        // For this to work, ABCD must NOT exist.
1929
        // For this to work, ABCD must NOT exist.
1930
 
1930
 
1931
        Store (CondRefOf (ABCD, Local0), Local1)
1931
        Store (CondRefOf (ABCD, Local0), Local1)
1932
        if (LNotEqual (Local1, 0))
1932
        if (LNotEqual (Local1, 0))
1933
        {
1933
        {
1934
            ERR_ (2)
1934
            ERR_ (2)
1935
        }
1935
        }
1936
 
1936
 
1937
        Store (CondRefOf (BBUF, Local0), Local1)
1937
        Store (CondRefOf (BBUF, Local0), Local1)
1938
        if (LNotEqual (Local1, Ones))
1938
        if (LNotEqual (Local1, Ones))
1939
        {
1939
        {
1940
            ERR_ (2)
1940
            ERR_ (2)
1941
        }
1941
        }
1942
 
1942
 
1943
        Store (DeRefOf (Index (BBUF, 3)), Local6)
1943
        Store (DeRefOf (Index (BBUF, 3)), Local6)
1944
        if (LNotEqual (Local6, 0xB3))
1944
        if (LNotEqual (Local6, 0xB3))
1945
        {
1945
        {
1946
            ERR_ (2)
1946
            ERR_ (2)
1947
        }
1947
        }
1948
 
1948
 
1949
        Store (DeRefOf (Index (DeRefOf (Index (NEST, 1)), 3)), Local0)
1949
        Store (DeRefOf (Index (DeRefOf (Index (NEST, 1)), 3)), Local0)
1950
        if (LNotEqual (Local0, 0x14))
1950
        if (LNotEqual (Local0, 0x14))
1951
        {
1951
        {
1952
            ERR_ (2)
1952
            ERR_ (2)
1953
        }
1953
        }
1954
 
1954
 
1955
 
1955
 
1956
        Store (0x11223344, Local0)
1956
        Store (0x11223344, Local0)
1957
        Store (RefOf (Local0), Local1)
1957
        Store (RefOf (Local0), Local1)
1958
 
1958
 
1959
        Store (DerefOf (Local1), Local2)
1959
        Store (DerefOf (Local1), Local2)
1960
        If (LNotEqual (Local2, 0x11223344))
1960
        If (LNotEqual (Local2, 0x11223344))
1961
        {
1961
        {
1962
            ERR_ (2)
1962
            ERR_ (2)
1963
        }
1963
        }
1964
 
1964
 
1965
 
1965
 
1966
    /* Parser thinks this is a method invocation!! */
1966
    /* Parser thinks this is a method invocation!! */
1967
 
1967
 
1968
    //  RefOf (MAIN)
1968
    //  RefOf (MAIN)
1969
 
1969
 
1970
 
1970
 
1971
    //  RefOf (R___)
1971
    //  RefOf (R___)
1972
    //  RefOf (BBUF)
1972
    //  RefOf (BBUF)
1973
 
1973
 
1974
    //  Store (RefOf (Local0), Local1)
1974
    //  Store (RefOf (Local0), Local1)
1975
 
1975
 
1976
    //  CondRefOf (BBUF, Local2)
1976
    //  CondRefOf (BBUF, Local2)
1977
    //  CondRefOf (R___, Local3)
1977
    //  CondRefOf (R___, Local3)
1978
 
1978
 
1979
    //  Store (DerefOf (Local1), Local4)
1979
    //  Store (DerefOf (Local1), Local4)
1980
 
1980
 
1981
    //  Return (Local4)
1981
    //  Return (Local4)
1982
    }
1982
    }
1983
 
1983
 
1984
 
1984
 
1985
    Method (INDX, 0)
1985
    Method (INDX, 0)
1986
    {
1986
    {
1987
        Name(STAT,Package(4){})
1987
        Name(STAT,Package(4){})
1988
        Store(0x44443333,Index(STAT,0))
1988
        Store(0x44443333,Index(STAT,0))
1989
    }
1989
    }
1990
 
1990
 
1991
//=================================================================
1991
//=================================================================
1992
//=================================================================
1992
//=================================================================
1993
//===================== iPCO TESTS ================================
1993
//===================== iPCO TESTS ================================
1994
//=================================================================
1994
//=================================================================
1995
//=================================================================
1995
//=================================================================
1996
//
1996
//
1997
//
1997
//
1998
// test IfElseOp.asl
1998
// test IfElseOp.asl
1999
//
1999
//
2000
//  test for IfOp and ElseOp, including validation of object stack cleanup
2000
//  test for IfOp and ElseOp, including validation of object stack cleanup
2001
//
2001
//
2002
    Device (IFEL)
2002
    Device (IFEL)
2003
    {
2003
    {
2004
        Name (DWRD, 1)
2004
        Name (DWRD, 1)
2005
        Name (RSLT, 0)
2005
        Name (RSLT, 0)
2006
 
2006
 
2007
        //  IFNR control method executes IfOp branch with NO nested Return
2007
        //  IFNR control method executes IfOp branch with NO nested Return
2008
        //  and no Else branch
2008
        //  and no Else branch
2009
        Method (IFNR)
2009
        Method (IFNR)
2010
        {
2010
        {
2011
            Store (DWRD, RSLT)
2011
            Store (DWRD, RSLT)
2012
            If (LEqual (DWRD, 1))
2012
            If (LEqual (DWRD, 1))
2013
            {
2013
            {
2014
                Store (0, RSLT)
2014
                Store (0, RSLT)
2015
            }
2015
            }
2016
        }   //  IFNR
2016
        }   //  IFNR
2017
 
2017
 
2018
        //  NINR control method does not execute If branch and has no Else branch
2018
        //  NINR control method does not execute If branch and has no Else branch
2019
        Method (NINR)
2019
        Method (NINR)
2020
        {
2020
        {
2021
            Store (0, RSLT)
2021
            Store (0, RSLT)
2022
            If (LNotEqual (DWRD, 1))
2022
            If (LNotEqual (DWRD, 1))
2023
            {
2023
            {
2024
                Store (DWRD, RSLT)
2024
                Store (DWRD, RSLT)
2025
            }
2025
            }
2026
        }   //  NINR
2026
        }   //  NINR
2027
 
2027
 
2028
        //  IENR control method executes IfOp branch with NO nested Return
2028
        //  IENR control method executes IfOp branch with NO nested Return
2029
        Method (IENR)
2029
        Method (IENR)
2030
        {
2030
        {
2031
            If (LEqual (DWRD, 1))
2031
            If (LEqual (DWRD, 1))
2032
            {
2032
            {
2033
                Store (0, RSLT)
2033
                Store (0, RSLT)
2034
            }
2034
            }
2035
            Else
2035
            Else
2036
            {
2036
            {
2037
                Store (DWRD, RSLT)
2037
                Store (DWRD, RSLT)
2038
            }
2038
            }
2039
        }   //  IENR
2039
        }   //  IENR
2040
 
2040
 
2041
        //  ELNR control method executes ElseOp branch with NO nested Return
2041
        //  ELNR control method executes ElseOp branch with NO nested Return
2042
        Method (ELNR)
2042
        Method (ELNR)
2043
        {
2043
        {
2044
            If (LNotEqual (DWRD, 1))
2044
            If (LNotEqual (DWRD, 1))
2045
            {
2045
            {
2046
                Store (DWRD, RSLT)
2046
                Store (DWRD, RSLT)
2047
            }
2047
            }
2048
            Else
2048
            Else
2049
            {
2049
            {
2050
                Store (0, RSLT)
2050
                Store (0, RSLT)
2051
            }
2051
            }
2052
        }   //  ELNR
2052
        }   //  ELNR
2053
 
2053
 
2054
        //  IFRT control method executes IfOp branch with nested Return with
2054
        //  IFRT control method executes IfOp branch with nested Return with
2055
        //  no Else branch
2055
        //  no Else branch
2056
        Method (IFRT)
2056
        Method (IFRT)
2057
 
2057
 
2058
        {
2058
        {
2059
            If (LEqual (DWRD, 1))
2059
            If (LEqual (DWRD, 1))
2060
            {
2060
            {
2061
                Return (0)
2061
                Return (0)
2062
            }
2062
            }
2063
            Return (DWRD)
2063
            Return (DWRD)
2064
        }   //  IFRT
2064
        }   //  IFRT
2065
 
2065
 
2066
        //  IERT control method executes IfOp branch with nested Return with
2066
        //  IERT control method executes IfOp branch with nested Return with
2067
        //  Else branch
2067
        //  Else branch
2068
        Method (IERT)
2068
        Method (IERT)
2069
        {
2069
        {
2070
            If (LEqual (DWRD, 1))
2070
            If (LEqual (DWRD, 1))
2071
            {
2071
            {
2072
                Return (0)
2072
                Return (0)
2073
            }
2073
            }
2074
            Else
2074
            Else
2075
            {
2075
            {
2076
                Return (DWRD)
2076
                Return (DWRD)
2077
            }
2077
            }
2078
        }   //  IERT
2078
        }   //  IERT
2079
 
2079
 
2080
        //  ELRT control method executes ElseOp branch with nested Return
2080
        //  ELRT control method executes ElseOp branch with nested Return
2081
        Method (ELRT)
2081
        Method (ELRT)
2082
        {
2082
        {
2083
            If (LNotEqual (DWRD, 1))
2083
            If (LNotEqual (DWRD, 1))
2084
            {
2084
            {
2085
                Return (DWRD)
2085
                Return (DWRD)
2086
            }
2086
            }
2087
            Else
2087
            Else
2088
            {
2088
            {
2089
                Return (0)
2089
                Return (0)
2090
            }
2090
            }
2091
        }   //  ELRT
2091
        }   //  ELRT
2092
 
2092
 
2093
        Method (TEST)
2093
        Method (TEST)
2094
        {
2094
        {
2095
            Store ("++++++++ IfElseOp Test", Debug)
2095
            Store ("++++++++ IfElseOp Test", Debug)
2096
 
2096
 
2097
            //  IfOp with NO return value
2097
            //  IfOp with NO return value
2098
            IFNR()
2098
            IFNR()
2099
            If (LNotEqual (RSLT, 0))
2099
            If (LNotEqual (RSLT, 0))
2100
            {
2100
            {
2101
                Return (RSLT)
2101
                Return (RSLT)
2102
            }
2102
            }
2103
 
2103
 
2104
            //  IfOp with NO return value
2104
            //  IfOp with NO return value
2105
            NINR()
2105
            NINR()
2106
            If (LNotEqual (RSLT, 0))
2106
            If (LNotEqual (RSLT, 0))
2107
            {
2107
            {
2108
                Return (RSLT)
2108
                Return (RSLT)
2109
            }
2109
            }
2110
 
2110
 
2111
            //  IfOp with NO return value
2111
            //  IfOp with NO return value
2112
            IENR()
2112
            IENR()
2113
            If (LNotEqual (RSLT, 0))
2113
            If (LNotEqual (RSLT, 0))
2114
            {
2114
            {
2115
                Return (RSLT)
2115
                Return (RSLT)
2116
            }
2116
            }
2117
 
2117
 
2118
            //  ElseOp with NO return value
2118
            //  ElseOp with NO return value
2119
            ELNR()
2119
            ELNR()
2120
            If (LNotEqual (RSLT, 0))
2120
            If (LNotEqual (RSLT, 0))
2121
            {
2121
            {
2122
                Return (RSLT)
2122
                Return (RSLT)
2123
            }
2123
            }
2124
 
2124
 
2125
            //  IfOp with return value
2125
            //  IfOp with return value
2126
            Store (IFRT, RSLT)
2126
            Store (IFRT, RSLT)
2127
            If (LNotEqual (RSLT, 0))
2127
            If (LNotEqual (RSLT, 0))
2128
            {
2128
            {
2129
                Return (RSLT)
2129
                Return (RSLT)
2130
            }
2130
            }
2131
 
2131
 
2132
            //  IfOp with return value
2132
            //  IfOp with return value
2133
            Store (IERT, RSLT)
2133
            Store (IERT, RSLT)
2134
            If (LNotEqual (RSLT, 0))
2134
            If (LNotEqual (RSLT, 0))
2135
            {
2135
            {
2136
                Return (RSLT)
2136
                Return (RSLT)
2137
            }
2137
            }
2138
 
2138
 
2139
            //  ElseOp with return value
2139
            //  ElseOp with return value
2140
            Store (ELRT, RSLT)
2140
            Store (ELRT, RSLT)
2141
            If (LNotEqual (RSLT, 0))
2141
            If (LNotEqual (RSLT, 0))
2142
            {
2142
            {
2143
                Return (RSLT)
2143
                Return (RSLT)
2144
            }
2144
            }
2145
 
2145
 
2146
            Return (0)
2146
            Return (0)
2147
        }   //  TEST
2147
        }   //  TEST
2148
    }   //  IFEL
2148
    }   //  IFEL
2149
 
2149
 
2150
//
2150
//
2151
// test NoSave.asl
2151
// test NoSave.asl
2152
//
2152
//
2153
//
2153
//
2154
//  Internal test cases to validate IfOp (Operator (,,)) where Operator
2154
//  Internal test cases to validate IfOp (Operator (,,)) where Operator
2155
//  target is ZeroOp to throw away the results.
2155
//  target is ZeroOp to throw away the results.
2156
//  Includes internal test cases for logical operators with no destination
2156
//  Includes internal test cases for logical operators with no destination
2157
//  operands.
2157
//  operands.
2158
//
2158
//
2159
    Device (NOSV)
2159
    Device (NOSV)
2160
    {
2160
    {
2161
        Method (TEST)
2161
        Method (TEST)
2162
        {
2162
        {
2163
            Store ("++++++++ NoSave Test", Debug)
2163
            Store ("++++++++ NoSave Test", Debug)
2164
 
2164
 
2165
            Name (WRD, 0x1234)
2165
            Name (WRD, 0x1234)
2166
 
2166
 
2167
            //
2167
            //
2168
            //  Begin test of nested operators without saving results
2168
            //  Begin test of nested operators without saving results
2169
            //
2169
            //
2170
 
2170
 
2171
            //  Test If (And ()) with no save of And result
2171
            //  Test If (And ()) with no save of And result
2172
            If (And (3, 1, ))
2172
            If (And (3, 1, ))
2173
            {
2173
            {
2174
                Store (1, WRD)  //  pass -- just do something
2174
                Store (1, WRD)  //  pass -- just do something
2175
            }
2175
            }
2176
            else
2176
            else
2177
            {
2177
            {
2178
                Return (1)      //  fail
2178
                Return (1)      //  fail
2179
            }
2179
            }
2180
 
2180
 
2181
            //  Test If (And ()) with no save of And result
2181
            //  Test If (And ()) with no save of And result
2182
            If (And (4, 1, ))
2182
            If (And (4, 1, ))
2183
            {
2183
            {
2184
                Return (2)      //  fail
2184
                Return (2)      //  fail
2185
            }
2185
            }
2186
            else
2186
            else
2187
            {
2187
            {
2188
                Store (2, WRD)  //  pass -- just do something
2188
                Store (2, WRD)  //  pass -- just do something
2189
            }
2189
            }
2190
 
2190
 
2191
 
2191
 
2192
            //  Test If (NAnd ()) with no save of NAnd result
2192
            //  Test If (NAnd ()) with no save of NAnd result
2193
            If (NAnd (3, 1, ))
2193
            If (NAnd (3, 1, ))
2194
            {
2194
            {
2195
                Store (3, WRD)  //  pass -- just do something
2195
                Store (3, WRD)  //  pass -- just do something
2196
            }
2196
            }
2197
            else
2197
            else
2198
            {
2198
            {
2199
                Return (3)      //  fail
2199
                Return (3)      //  fail
2200
            }
2200
            }
2201
 
2201
 
2202
            //  Test If (NAnd ()) with no save of NAnd result
2202
            //  Test If (NAnd ()) with no save of NAnd result
2203
            If (NAnd (0xFFFFFFFF, 0xFFFFFFFF, ))
2203
            If (NAnd (0xFFFFFFFF, 0xFFFFFFFF, ))
2204
            {
2204
            {
2205
                Return (4)      // fail
2205
                Return (4)      // fail
2206
            }
2206
            }
2207
            else
2207
            else
2208
            {
2208
            {
2209
                Store (4, WRD)  //  pass -- just do something
2209
                Store (4, WRD)  //  pass -- just do something
2210
            }
2210
            }
2211
 
2211
 
2212
 
2212
 
2213
            //  Test If (NOr ()) with no save of NOr result
2213
            //  Test If (NOr ()) with no save of NOr result
2214
            If (NOr (0, 1, ))
2214
            If (NOr (0, 1, ))
2215
            {
2215
            {
2216
                Store (5, WRD)  //  pass -- just do something
2216
                Store (5, WRD)  //  pass -- just do something
2217
            }
2217
            }
2218
            else
2218
            else
2219
            {
2219
            {
2220
                Return (5)      //  fail
2220
                Return (5)      //  fail
2221
            }
2221
            }
2222
 
2222
 
2223
            //  Test If (NOr ()) with no save of NOr result
2223
            //  Test If (NOr ()) with no save of NOr result
2224
            If (NOr (0xFFFFFFFE, 1, ))
2224
            If (NOr (0xFFFFFFFE, 1, ))
2225
            {
2225
            {
2226
                Return (6)      // fail
2226
                Return (6)      // fail
2227
            }
2227
            }
2228
            else
2228
            else
2229
            {
2229
            {
2230
                Store (6, WRD)  //  pass -- just do something
2230
                Store (6, WRD)  //  pass -- just do something
2231
            }
2231
            }
2232
 
2232
 
2233
 
2233
 
2234
            //  Test If (Not ()) with no save of Not result
2234
            //  Test If (Not ()) with no save of Not result
2235
            If (Not (1, ))
2235
            If (Not (1, ))
2236
            {
2236
            {
2237
                Store (7, WRD)  //  pass -- just do something
2237
                Store (7, WRD)  //  pass -- just do something
2238
            }
2238
            }
2239
            else
2239
            else
2240
            {
2240
            {
2241
                Return (7)      //  fail
2241
                Return (7)      //  fail
2242
            }
2242
            }
2243
 
2243
 
2244
            //  Test If (Not ()) with no save of Not result
2244
            //  Test If (Not ()) with no save of Not result
2245
            If (Not (0xFFFFFFFF, ))
2245
            If (Not (0xFFFFFFFF, ))
2246
            {
2246
            {
2247
                Return (8)      // fail
2247
                Return (8)      // fail
2248
            }
2248
            }
2249
            else
2249
            else
2250
            {
2250
            {
2251
                Store (8, WRD)  //  pass -- just do something
2251
                Store (8, WRD)  //  pass -- just do something
2252
            }
2252
            }
2253
 
2253
 
2254
 
2254
 
2255
            //  Test If (Or ()) with no save of Or result
2255
            //  Test If (Or ()) with no save of Or result
2256
            If (Or (3, 1, ))
2256
            If (Or (3, 1, ))
2257
            {
2257
            {
2258
                Store (9, WRD)  //  pass -- just do something
2258
                Store (9, WRD)  //  pass -- just do something
2259
            }
2259
            }
2260
            else
2260
            else
2261
            {
2261
            {
2262
                Return (9)      //  fail
2262
                Return (9)      //  fail
2263
            }
2263
            }
2264
 
2264
 
2265
            //  Test If (Or ()) with no save of Or result
2265
            //  Test If (Or ()) with no save of Or result
2266
            If (Or (0, 0, ))
2266
            If (Or (0, 0, ))
2267
            {
2267
            {
2268
                Return (10)     //  fail
2268
                Return (10)     //  fail
2269
            }
2269
            }
2270
            else
2270
            else
2271
            {
2271
            {
2272
                Store (10, WRD) //  pass -- just do something
2272
                Store (10, WRD) //  pass -- just do something
2273
            }
2273
            }
2274
 
2274
 
2275
 
2275
 
2276
            //  Test If (XOr ()) with no save of XOr result
2276
            //  Test If (XOr ()) with no save of XOr result
2277
            If (XOr (3, 1, ))
2277
            If (XOr (3, 1, ))
2278
            {
2278
            {
2279
                Store (11, WRD) //  pass -- just do something
2279
                Store (11, WRD) //  pass -- just do something
2280
            }
2280
            }
2281
            else
2281
            else
2282
            {
2282
            {
2283
                Return (11)     // fail
2283
                Return (11)     // fail
2284
            }
2284
            }
2285
 
2285
 
2286
            //  Test If (XOr ()) with no save of XOr result
2286
            //  Test If (XOr ()) with no save of XOr result
2287
            If (XOr (3, 3, ))
2287
            If (XOr (3, 3, ))
2288
            {
2288
            {
2289
                Return (12)     // fail
2289
                Return (12)     // fail
2290
            }
2290
            }
2291
            else
2291
            else
2292
            {
2292
            {
2293
                Store (12, WRD) //  pass -- just do something
2293
                Store (12, WRD) //  pass -- just do something
2294
            }
2294
            }
2295
 
2295
 
2296
 
2296
 
2297
            //
2297
            //
2298
            //  Begin test of logical operators with no destination operands
2298
            //  Begin test of logical operators with no destination operands
2299
            //
2299
            //
2300
 
2300
 
2301
            //  Test If (LAnd ()) with no save of LAnd result
2301
            //  Test If (LAnd ()) with no save of LAnd result
2302
            If (LAnd (3, 3))
2302
            If (LAnd (3, 3))
2303
            {
2303
            {
2304
                Store (21, WRD) //  pass -- just do something
2304
                Store (21, WRD) //  pass -- just do something
2305
            }
2305
            }
2306
            else
2306
            else
2307
            {
2307
            {
2308
                Return (21)     // fail
2308
                Return (21)     // fail
2309
            }
2309
            }
2310
 
2310
 
2311
            //  Test If (LAnd ()) with no save of LAnd result
2311
            //  Test If (LAnd ()) with no save of LAnd result
2312
            If (LAnd (3, 0))
2312
            If (LAnd (3, 0))
2313
            {
2313
            {
2314
                Return (22)     // fail
2314
                Return (22)     // fail
2315
            }
2315
            }
2316
            else
2316
            else
2317
            {
2317
            {
2318
                Store (22, WRD) //  pass -- just do something
2318
                Store (22, WRD) //  pass -- just do something
2319
            }
2319
            }
2320
 
2320
 
2321
            //  Test If (LAnd ()) with no save of LAnd result
2321
            //  Test If (LAnd ()) with no save of LAnd result
2322
            If (LAnd (0, 3))
2322
            If (LAnd (0, 3))
2323
            {
2323
            {
2324
                Return (23)     //  fail
2324
                Return (23)     //  fail
2325
            }
2325
            }
2326
            else
2326
            else
2327
            {
2327
            {
2328
                Store (23, WRD) //  pass -- just do something
2328
                Store (23, WRD) //  pass -- just do something
2329
            }
2329
            }
2330
 
2330
 
2331
            //  Test If (LAnd ()) with no save of LAnd result
2331
            //  Test If (LAnd ()) with no save of LAnd result
2332
            If (LAnd (0, 0))
2332
            If (LAnd (0, 0))
2333
            {
2333
            {
2334
                Return (24)     //  fail
2334
                Return (24)     //  fail
2335
            }
2335
            }
2336
            else
2336
            else
2337
            {
2337
            {
2338
                Store (24, WRD) //  pass -- just do something
2338
                Store (24, WRD) //  pass -- just do something
2339
            }
2339
            }
2340
 
2340
 
2341
 
2341
 
2342
            //  Test If (LEqual ()) with no save of LEqual result
2342
            //  Test If (LEqual ()) with no save of LEqual result
2343
            If (LEqual (3, 3))
2343
            If (LEqual (3, 3))
2344
            {
2344
            {
2345
                Store (31, WRD) //  pass -- just do something
2345
                Store (31, WRD) //  pass -- just do something
2346
            }
2346
            }
2347
            else
2347
            else
2348
            {
2348
            {
2349
                Return (31)     //  fail
2349
                Return (31)     //  fail
2350
            }
2350
            }
2351
 
2351
 
2352
            //  Test If (LEqual ()) with no save of LEqual result
2352
            //  Test If (LEqual ()) with no save of LEqual result
2353
            If (LEqual (1, 3))
2353
            If (LEqual (1, 3))
2354
            {
2354
            {
2355
                Return (32)     //  fail
2355
                Return (32)     //  fail
2356
            }
2356
            }
2357
            else
2357
            else
2358
            {
2358
            {
2359
                Store (32, WRD) //  pass -- just do something
2359
                Store (32, WRD) //  pass -- just do something
2360
            }
2360
            }
2361
 
2361
 
2362
 
2362
 
2363
            //  Test If (LGreater ()) with no save of LGreater result
2363
            //  Test If (LGreater ()) with no save of LGreater result
2364
            If (LGreater (3, 1))
2364
            If (LGreater (3, 1))
2365
            {
2365
            {
2366
                Store (41, WRD) //  pass -- just do something
2366
                Store (41, WRD) //  pass -- just do something
2367
            }
2367
            }
2368
            else
2368
            else
2369
            {
2369
            {
2370
                Return (41)     //  fail
2370
                Return (41)     //  fail
2371
            }
2371
            }
2372
 
2372
 
2373
            //  Test If (LGreater ()) with no save of LGreater result
2373
            //  Test If (LGreater ()) with no save of LGreater result
2374
            If (LGreater (4, 4))
2374
            If (LGreater (4, 4))
2375
            {
2375
            {
2376
                Return (42)     //  fail
2376
                Return (42)     //  fail
2377
            }
2377
            }
2378
            else
2378
            else
2379
            {
2379
            {
2380
                Store (42, WRD) //  pass -- just do something
2380
                Store (42, WRD) //  pass -- just do something
2381
            }
2381
            }
2382
 
2382
 
2383
            //  Test If (LGreater ()) with no save of LGreater result
2383
            //  Test If (LGreater ()) with no save of LGreater result
2384
            If (LGreater (1, 4))
2384
            If (LGreater (1, 4))
2385
            {
2385
            {
2386
                Return (43)     //  fail
2386
                Return (43)     //  fail
2387
            }
2387
            }
2388
            else
2388
            else
2389
            {
2389
            {
2390
                Store (43, WRD) //  pass -- just do something
2390
                Store (43, WRD) //  pass -- just do something
2391
            }
2391
            }
2392
 
2392
 
2393
            //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
2393
            //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
2394
            If (LGreaterEqual (3, 1))
2394
            If (LGreaterEqual (3, 1))
2395
            {
2395
            {
2396
                Store (44, WRD) //  pass -- just do something
2396
                Store (44, WRD) //  pass -- just do something
2397
            }
2397
            }
2398
            else
2398
            else
2399
            {
2399
            {
2400
                Return (44)     //  fail
2400
                Return (44)     //  fail
2401
            }
2401
            }
2402
 
2402
 
2403
            //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
2403
            //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
2404
            If (LGreaterEqual (3, 3))
2404
            If (LGreaterEqual (3, 3))
2405
            {
2405
            {
2406
                Store (45, WRD) //  pass -- just do something
2406
                Store (45, WRD) //  pass -- just do something
2407
            }
2407
            }
2408
            else
2408
            else
2409
            {
2409
            {
2410
                Return (45)     //  fail
2410
                Return (45)     //  fail
2411
            }
2411
            }
2412
 
2412
 
2413
            //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
2413
            //  Test If (LGreaterEqual ()) with no save of LGreaterEqual result
2414
            If (LGreaterEqual (3, 4))
2414
            If (LGreaterEqual (3, 4))
2415
            {
2415
            {
2416
                Return (46)     //  fail
2416
                Return (46)     //  fail
2417
            }
2417
            }
2418
            else
2418
            else
2419
            {
2419
            {
2420
                Store (46, WRD) //  pass -- just do something
2420
                Store (46, WRD) //  pass -- just do something
2421
            }
2421
            }
2422
 
2422
 
2423
 
2423
 
2424
            //  Test If (LLess ()) with no save of LLess result
2424
            //  Test If (LLess ()) with no save of LLess result
2425
            If (LLess (1, 3))
2425
            If (LLess (1, 3))
2426
            {
2426
            {
2427
                Store (51, WRD) //  pass -- just do something
2427
                Store (51, WRD) //  pass -- just do something
2428
            }
2428
            }
2429
            else
2429
            else
2430
            {
2430
            {
2431
                Return (51)     //  fail
2431
                Return (51)     //  fail
2432
            }
2432
            }
2433
 
2433
 
2434
            //  Test If (LLess ()) with no save of LLess result
2434
            //  Test If (LLess ()) with no save of LLess result
2435
            If (LLess (2, 2))
2435
            If (LLess (2, 2))
2436
            {
2436
            {
2437
                Return (52)     //  fail
2437
                Return (52)     //  fail
2438
            }
2438
            }
2439
            else
2439
            else
2440
            {
2440
            {
2441
                Store (52, WRD) //  pass -- just do something
2441
                Store (52, WRD) //  pass -- just do something
2442
            }
2442
            }
2443
 
2443
 
2444
            //  Test If (LLess ()) with no save of LLess result
2444
            //  Test If (LLess ()) with no save of LLess result
2445
            If (LLess (4, 2))
2445
            If (LLess (4, 2))
2446
            {
2446
            {
2447
                Return (53)     //  fail
2447
                Return (53)     //  fail
2448
            }
2448
            }
2449
            else
2449
            else
2450
            {
2450
            {
2451
                Store (53, WRD) //  pass -- just do something
2451
                Store (53, WRD) //  pass -- just do something
2452
            }
2452
            }
2453
 
2453
 
2454
 
2454
 
2455
            //  Test If (LLessEqual ()) with no save of LLessEqual result
2455
            //  Test If (LLessEqual ()) with no save of LLessEqual result
2456
            If (LLessEqual (1, 3))
2456
            If (LLessEqual (1, 3))
2457
            {
2457
            {
2458
                Store (54, WRD) //  pass -- just do something
2458
                Store (54, WRD) //  pass -- just do something
2459
            }
2459
            }
2460
            else
2460
            else
2461
            {
2461
            {
2462
                Return (54)     //  fail
2462
                Return (54)     //  fail
2463
            }
2463
            }
2464
 
2464
 
2465
            //  Test If (LLessEqual ()) with no save of LLessEqual result
2465
            //  Test If (LLessEqual ()) with no save of LLessEqual result
2466
            If (LLessEqual (2, 2))
2466
            If (LLessEqual (2, 2))
2467
            {
2467
            {
2468
                Store (55, WRD) //  pass -- just do something
2468
                Store (55, WRD) //  pass -- just do something
2469
            }
2469
            }
2470
            else
2470
            else
2471
            {
2471
            {
2472
                Return (55)     //  fail
2472
                Return (55)     //  fail
2473
            }
2473
            }
2474
 
2474
 
2475
            //  Test If (LLessEqual ()) with no save of LLessEqual result
2475
            //  Test If (LLessEqual ()) with no save of LLessEqual result
2476
            If (LLessEqual (4, 2))
2476
            If (LLessEqual (4, 2))
2477
            {
2477
            {
2478
                Return (56)     //  fail
2478
                Return (56)     //  fail
2479
            }
2479
            }
2480
            else
2480
            else
2481
            {
2481
            {
2482
                Store (56, WRD) //  pass -- just do something
2482
                Store (56, WRD) //  pass -- just do something
2483
            }
2483
            }
2484
 
2484
 
2485
 
2485
 
2486
            //  Test If (LNot ()) with no save of LNot result
2486
            //  Test If (LNot ()) with no save of LNot result
2487
            If (LNot (0))
2487
            If (LNot (0))
2488
            {
2488
            {
2489
                Store (61, WRD) //  pass -- just do something
2489
                Store (61, WRD) //  pass -- just do something
2490
            }
2490
            }
2491
            else
2491
            else
2492
            {
2492
            {
2493
                Return (61)     //  fail
2493
                Return (61)     //  fail
2494
            }
2494
            }
2495
 
2495
 
2496
            //  Test If (LNot ()) with no save of LNot result
2496
            //  Test If (LNot ()) with no save of LNot result
2497
            If (LNot (1))
2497
            If (LNot (1))
2498
            {
2498
            {
2499
                Return (62)     //  fail
2499
                Return (62)     //  fail
2500
            }
2500
            }
2501
            else
2501
            else
2502
            {
2502
            {
2503
                Store (62, WRD) //  pass -- just do something
2503
                Store (62, WRD) //  pass -- just do something
2504
            }
2504
            }
2505
 
2505
 
2506
 
2506
 
2507
            //  Test If (LNotEqual ()) with no save of LNotEqual result
2507
            //  Test If (LNotEqual ()) with no save of LNotEqual result
2508
            If (LNotEqual (3, 3))
2508
            If (LNotEqual (3, 3))
2509
            {
2509
            {
2510
                Return (63)     //  fail
2510
                Return (63)     //  fail
2511
            }
2511
            }
2512
            else
2512
            else
2513
            {
2513
            {
2514
                Store (63, WRD) //  pass -- just do something
2514
                Store (63, WRD) //  pass -- just do something
2515
            }
2515
            }
2516
 
2516
 
2517
            //  Test If (LNotEqual ()) with no save of LNotEqual result
2517
            //  Test If (LNotEqual ()) with no save of LNotEqual result
2518
            If (LNotEqual (1, 3))
2518
            If (LNotEqual (1, 3))
2519
            {
2519
            {
2520
                Store (64, WRD) //  pass -- just do something
2520
                Store (64, WRD) //  pass -- just do something
2521
            }
2521
            }
2522
            else
2522
            else
2523
            {
2523
            {
2524
                Return (64)     //  fail
2524
                Return (64)     //  fail
2525
            }
2525
            }
2526
 
2526
 
2527
 
2527
 
2528
            //  Test If (LOr ()) with no save of LOr result
2528
            //  Test If (LOr ()) with no save of LOr result
2529
            If (LOr (3, 1))
2529
            If (LOr (3, 1))
2530
            {
2530
            {
2531
                Store (71, WRD) //  pass -- just do something
2531
                Store (71, WRD) //  pass -- just do something
2532
            }
2532
            }
2533
            else
2533
            else
2534
            {
2534
            {
2535
                Return (71)     //  fail
2535
                Return (71)     //  fail
2536
            }
2536
            }
2537
 
2537
 
2538
            //  Test If (LOr ()) with no save of LOr result
2538
            //  Test If (LOr ()) with no save of LOr result
2539
            If (LOr (0, 1))
2539
            If (LOr (0, 1))
2540
            {
2540
            {
2541
                Store (72, WRD) //  pass -- just do something
2541
                Store (72, WRD) //  pass -- just do something
2542
            }
2542
            }
2543
            else
2543
            else
2544
            {
2544
            {
2545
                Return (72)     //  fail
2545
                Return (72)     //  fail
2546
            }
2546
            }
2547
 
2547
 
2548
            //  Test If (LOr ()) with no save of LOr result
2548
            //  Test If (LOr ()) with no save of LOr result
2549
            If (LOr (3, 0))
2549
            If (LOr (3, 0))
2550
            {
2550
            {
2551
                Store (73, WRD) //  pass -- just do something
2551
                Store (73, WRD) //  pass -- just do something
2552
            }
2552
            }
2553
            else
2553
            else
2554
            {
2554
            {
2555
                Return (73)     //  fail
2555
                Return (73)     //  fail
2556
            }
2556
            }
2557
 
2557
 
2558
            //  Test If (LOr ()) with no save of LOr result
2558
            //  Test If (LOr ()) with no save of LOr result
2559
            If (LOr (0, 0))
2559
            If (LOr (0, 0))
2560
            {
2560
            {
2561
                Return (74)     //  fail
2561
                Return (74)     //  fail
2562
            }
2562
            }
2563
            else
2563
            else
2564
            {
2564
            {
2565
                Store (74, WRD) //  pass -- just do something
2565
                Store (74, WRD) //  pass -- just do something
2566
            }
2566
            }
2567
 
2567
 
2568
            Return (0)
2568
            Return (0)
2569
        }   //  TEST
2569
        }   //  TEST
2570
    }   //  NOSV
2570
    }   //  NOSV
2571
 
2571
 
2572
 
2572
 
2573
//
2573
//
2574
// test IndxFld.asl
2574
// test IndxFld.asl
2575
//
2575
//
2576
//  IndexFld test
2576
//  IndexFld test
2577
//      This is just a subset of the many RegionOp/Index Field test cases.
2577
//      This is just a subset of the many RegionOp/Index Field test cases.
2578
//      Tests index field element AccessAs macro.
2578
//      Tests index field element AccessAs macro.
2579
//
2579
//
2580
    Device (IDXF)
2580
    Device (IDXF)
2581
    {   //  Test device name
2581
    {   //  Test device name
2582
 
2582
 
2583
        OperationRegion (SIO, SystemIO, 0x100, 2)
2583
        OperationRegion (SIO, SystemIO, 0x100, 2)
2584
        Field (SIO, ByteAcc, NoLock, Preserve)
2584
        Field (SIO, ByteAcc, NoLock, Preserve)
2585
        {
2585
        {
2586
            INDX,   8,
2586
            INDX,   8,
2587
            DATA,   8
2587
            DATA,   8
2588
        }
2588
        }
2589
        IndexField (INDX, DATA, AnyAcc, NoLock, WriteAsOnes)
2589
        IndexField (INDX, DATA, AnyAcc, NoLock, WriteAsOnes)
2590
        {
2590
        {
2591
            AccessAs (ByteAcc, 0),
2591
            AccessAs (ByteAcc, 0),
2592
            IFE0,   8,
2592
            IFE0,   8,
2593
            IFE1,   8,
2593
            IFE1,   8,
2594
            IFE2,   8,
2594
            IFE2,   8,
2595
            IFE3,   8,
2595
            IFE3,   8,
2596
            IFE4,   8,
2596
            IFE4,   8,
2597
            IFE5,   8,
2597
            IFE5,   8,
2598
            IFE6,   8,
2598
            IFE6,   8,
2599
            IFE7,   8,
2599
            IFE7,   8,
2600
            IFE8,   8,
2600
            IFE8,   8,
2601
            IFE9,   8,
2601
            IFE9,   8,
2602
        }
2602
        }
2603
 
2603
 
2604
        Method (TEST)
2604
        Method (TEST)
2605
        {
2605
        {
2606
            Store ("++++++++ IndxFld Test", Debug)
2606
            Store ("++++++++ IndxFld Test", Debug)
2607
 
2607
 
2608
            Store (IFE0, Local0)
2608
            Store (IFE0, Local0)
2609
            Store (IFE1, Local1)
2609
            Store (IFE1, Local1)
2610
            Store (IFE2, Local2)
2610
            Store (IFE2, Local2)
2611
 
2611
 
2612
            Return (0)
2612
            Return (0)
2613
        }   //  TEST
2613
        }   //  TEST
2614
    }   //  IDXF
2614
    }   //  IDXF
2615
 
2615
 
2616
//
2616
//
2617
// test NestdLor.asl
2617
// test NestdLor.asl
2618
//
2618
//
2619
    Scope (\_SB)    //  System Bus
2619
    Scope (\_SB)    //  System Bus
2620
    {   //  _SB system bus
2620
    {   //  _SB system bus
2621
 
2621
 
2622
        Name (ZER0, 0)
2622
        Name (ZER0, 0)
2623
        Name (ZER1, 0)
2623
        Name (ZER1, 0)
2624
        Name (ZER2, 0)
2624
        Name (ZER2, 0)
2625
        Name (ONE0, 1)
2625
        Name (ONE0, 1)
2626
 
2626
 
2627
        Device (NSTL)
2627
        Device (NSTL)
2628
        {
2628
        {
2629
            Method (TEST)
2629
            Method (TEST)
2630
            {
2630
            {
2631
                Store ("++++++++ NestdLor Test", Debug)
2631
                Store ("++++++++ NestdLor Test", Debug)
2632
 
2632
 
2633
                If (Lor (ZER0, Lor (ZER1, Lor (ZER2, ONE0))))
2633
                If (Lor (ZER0, Lor (ZER1, Lor (ZER2, ONE0))))
2634
                {   //  Indicate Pass
2634
                {   //  Indicate Pass
2635
                    Store (0x00, Local0)
2635
                    Store (0x00, Local0)
2636
                }
2636
                }
2637
 
2637
 
2638
                Else
2638
                Else
2639
                {   //  Indicate Fail
2639
                {   //  Indicate Fail
2640
                    Store (0x01, Local0)
2640
                    Store (0x01, Local0)
2641
                }
2641
                }
2642
 
2642
 
2643
                Return (Local0)
2643
                Return (Local0)
2644
            }   //  End Method TEST
2644
            }   //  End Method TEST
2645
        }   //  Device NSTL
2645
        }   //  Device NSTL
2646
    }   //  _SB system bus
2646
    }   //  _SB system bus
2647
 
2647
 
2648
//
2648
//
2649
// test RetBuf.asl
2649
// test RetBuf.asl
2650
//
2650
//
2651
//  Test ReturnOp(Buffer)
2651
//  Test ReturnOp(Buffer)
2652
//      This is required to support Control Method Batteries on
2652
//      This is required to support Control Method Batteries on
2653
//          Dell Latitude Laptops (e.g., CP1-A)
2653
//          Dell Latitude Laptops (e.g., CP1-A)
2654
//
2654
//
2655
    Device (RTBF)
2655
    Device (RTBF)
2656
    {
2656
    {
2657
        Method (SUBR, 1)
2657
        Method (SUBR, 1)
2658
        {
2658
        {
2659
            Return (Arg0)
2659
            Return (Arg0)
2660
        }
2660
        }
2661
 
2661
 
2662
        Method (RBUF)
2662
        Method (RBUF)
2663
        {   //  RBUF: Return Buffer from local variable
2663
        {   //  RBUF: Return Buffer from local variable
2664
            Name (ABUF, Buffer() {"ARBITRARY_BUFFER"})
2664
            Name (ABUF, Buffer() {"ARBITRARY_BUFFER"})
2665
 
2665
 
2666
            //  store local buffer ABUF into Local0
2666
            //  store local buffer ABUF into Local0
2667
            Store (ABUF, Local0)
2667
            Store (ABUF, Local0)
2668
 
2668
 
2669
            //  save Local0 object type value into Local1
2669
            //  save Local0 object type value into Local1
2670
            Store (ObjectType (Local0), Local1)
2670
            Store (ObjectType (Local0), Local1)
2671
 
2671
 
2672
            //  validate Local0 is a Buffer
2672
            //  validate Local0 is a Buffer
2673
            If (LNotEqual (Local1, 3))  //  Buffer type is 3
2673
            If (LNotEqual (Local1, 3))  //  Buffer type is 3
2674
            {
2674
            {
2675
                Return (1)      //  failure
2675
                Return (1)      //  failure
2676
            }
2676
            }
2677
 
2677
 
2678
            //  store value returned by control method SUBR into Local0
2678
            //  store value returned by control method SUBR into Local0
2679
            Store (SUBR (ABUF), Local0)
2679
            Store (SUBR (ABUF), Local0)
2680
 
2680
 
2681
            //  save Local0 object type value into Local1
2681
            //  save Local0 object type value into Local1
2682
            Store (ObjectType (Local0), Local1)
2682
            Store (ObjectType (Local0), Local1)
2683
 
2683
 
2684
            //  validate Local0 is a Buffer
2684
            //  validate Local0 is a Buffer
2685
            If (LNotEqual (Local1, 3))  //  Buffer type is 3
2685
            If (LNotEqual (Local1, 3))  //  Buffer type is 3
2686
            {
2686
            {
2687
                Return (2)      //  failure
2687
                Return (2)      //  failure
2688
            }
2688
            }
2689
 
2689
 
2690
            //  allocate buffer using Local1 as buffer size (run-time evaluation)
2690
            //  allocate buffer using Local1 as buffer size (run-time evaluation)
2691
            Store (5, Local1)
2691
            Store (5, Local1)
2692
            Name (BUFR, Buffer(Local1) {})
2692
            Name (BUFR, Buffer(Local1) {})
2693
 
2693
 
2694
            //  store value returned by control method SUBR into Local0
2694
            //  store value returned by control method SUBR into Local0
2695
            Store (SUBR (BUFR), Local0)
2695
            Store (SUBR (BUFR), Local0)
2696
 
2696
 
2697
            //  save Local0 object type value into Local1
2697
            //  save Local0 object type value into Local1
2698
            Store (ObjectType (Local0), Local1)
2698
            Store (ObjectType (Local0), Local1)
2699
 
2699
 
2700
            //  validate Local0 is a Buffer
2700
            //  validate Local0 is a Buffer
2701
            If (LNotEqual (Local1, 3))  //  Buffer type is 3
2701
            If (LNotEqual (Local1, 3))  //  Buffer type is 3
2702
            {
2702
            {
2703
                Return (3)      //  failure
2703
                Return (3)      //  failure
2704
            }
2704
            }
2705
 
2705
 
2706
            //  store BUFR Buffer into Local0
2706
            //  store BUFR Buffer into Local0
2707
            Store (BUFR, Local0)
2707
            Store (BUFR, Local0)
2708
 
2708
 
2709
            //  save Local0 object type value into Local1
2709
            //  save Local0 object type value into Local1
2710
            Store (ObjectType (Local0), Local1)
2710
            Store (ObjectType (Local0), Local1)
2711
 
2711
 
2712
            //  validate Local0 is a Buffer
2712
            //  validate Local0 is a Buffer
2713
            If (LNotEqual (Local1, 3))  //  Buffer type is 3
2713
            If (LNotEqual (Local1, 3))  //  Buffer type is 3
2714
            {
2714
            {
2715
                Return (4)      //  failure
2715
                Return (4)      //  failure
2716
            }
2716
            }
2717
 
2717
 
2718
 
2718
 
2719
            //  return Local0 Buffer
2719
            //  return Local0 Buffer
2720
            Return (Local0)
2720
            Return (Local0)
2721
        }   //  RBUF
2721
        }   //  RBUF
2722
 
2722
 
2723
        Method (TEST)
2723
        Method (TEST)
2724
        {
2724
        {
2725
            Store ("++++++++ RetBuf Test", Debug)
2725
            Store ("++++++++ RetBuf Test", Debug)
2726
 
2726
 
2727
            //  store RBUF Buffer return value into Local0
2727
            //  store RBUF Buffer return value into Local0
2728
            Store (RBUF, Local0)
2728
            Store (RBUF, Local0)
2729
 
2729
 
2730
            //  save Local0 object type value into Local1
2730
            //  save Local0 object type value into Local1
2731
            Store (ObjectType (Local0), Local1)
2731
            Store (ObjectType (Local0), Local1)
2732
 
2732
 
2733
            //  validate Local0 is a Buffer
2733
            //  validate Local0 is a Buffer
2734
            If (LNotEqual (Local1, 3))  //  Buffer type is 3
2734
            If (LNotEqual (Local1, 3))  //  Buffer type is 3
2735
            {
2735
            {
2736
                Return (10)     //  failure
2736
                Return (10)     //  failure
2737
            }
2737
            }
2738
            Else
2738
            Else
2739
            {
2739
            {
2740
                Return (0)      //  success
2740
                Return (0)      //  success
2741
            }
2741
            }
2742
        }   //  TEST
2742
        }   //  TEST
2743
    }   //  RTBF
2743
    }   //  RTBF
2744
 
2744
 
2745
//
2745
//
2746
// test RetLVal.asl
2746
// test RetLVal.asl
2747
//
2747
//
2748
//  Test ReturnOp(Lvalue)
2748
//  Test ReturnOp(Lvalue)
2749
//      This is required to support _PSR on IBM ThinkPad 560D and
2749
//      This is required to support _PSR on IBM ThinkPad 560D and
2750
//      _DCK on Toshiba Tecra 8000.
2750
//      _DCK on Toshiba Tecra 8000.
2751
//
2751
//
2752
 
2752
 
2753
    Device (GPE2)
2753
    Device (GPE2)
2754
    {
2754
    {
2755
        Method (_L03)
2755
        Method (_L03)
2756
        {
2756
        {
2757
            Store ("Method GPE2._L03 invoked", Debug)
2757
            Store ("Method GPE2._L03 invoked", Debug)
2758
            Return ()
2758
            Return ()
2759
        }
2759
        }
2760
 
2760
 
2761
        Method (_E05)
2761
        Method (_E05)
2762
        {
2762
        {
2763
            Store ("Method GPE2._E05 invoked", Debug)
2763
            Store ("Method GPE2._E05 invoked", Debug)
2764
            Return ()
2764
            Return ()
2765
        }
2765
        }
2766
    }
2766
    }
2767
 
2767
 
2768
    Device (PRW2)
2768
    Device (PRW2)
2769
    {
2769
    {
2770
        Name (_PRW, Package(2) {Package(2){\GPE2, 0x05}, 3})
2770
        Name (_PRW, Package(2) {Package(2){\GPE2, 0x05}, 3})
2771
    }
2771
    }
2772
 
2772
 
2773
 
2773
 
2774
    Scope (\_GPE)
2774
    Scope (\_GPE)
2775
    {
2775
    {
2776
        Name (ACST, 0xFF)
2776
        Name (ACST, 0xFF)
2777
 
2777
 
2778
        Method (_L08)
2778
        Method (_L08)
2779
        {
2779
        {
2780
            Store ("Method _GPE._L08 invoked", Debug)
2780
            Store ("Method _GPE._L08 invoked", Debug)
2781
            Return ()
2781
            Return ()
2782
        }
2782
        }
2783
 
2783
 
2784
        Method (_E09)
2784
        Method (_E09)
2785
        {
2785
        {
2786
            Store ("Method _GPE._E09 invoked", Debug)
2786
            Store ("Method _GPE._E09 invoked", Debug)
2787
            Return ()
2787
            Return ()
2788
        }
2788
        }
2789
 
2789
 
2790
        Method (_E11)
2790
        Method (_E11)
2791
        {
2791
        {
2792
            Store ("Method _GPE._E11 invoked", Debug)
2792
            Store ("Method _GPE._E11 invoked", Debug)
2793
            Notify (\PRW1, 2)
2793
            Notify (\PRW1, 2)
2794
        }
2794
        }
2795
 
2795
 
2796
        Method (_L22)
2796
        Method (_L22)
2797
        {
2797
        {
2798
            Store ("Method _GPE._L22 invoked", Debug)
2798
            Store ("Method _GPE._L22 invoked", Debug)
2799
            Return ()
2799
            Return ()
2800
        }
2800
        }
2801
 
2801
 
2802
        Method (_L33)
2802
        Method (_L33)
2803
        {
2803
        {
2804
            Store ("Method _GPE._L33 invoked", Debug)
2804
            Store ("Method _GPE._L33 invoked", Debug)
2805
            Return ()
2805
            Return ()
2806
        }
2806
        }
2807
 
2807
 
2808
        Method (_E64)
2808
        Method (_E64)
2809
        {
2809
        {
2810
            Store ("Method _GPE._E64 invoked", Debug)
2810
            Store ("Method _GPE._E64 invoked", Debug)
2811
            Return ()
2811
            Return ()
2812
        }
2812
        }
2813
 
2813
 
2814
    }   //  _GPE
2814
    }   //  _GPE
2815
 
2815
 
2816
    Device (PRW1)
2816
    Device (PRW1)
2817
    {
2817
    {
2818
        Name (_PRW, Package(2) {0x11, 3})
2818
        Name (_PRW, Package(2) {0x11, 3})
2819
    }
2819
    }
2820
 
2820
 
2821
    Device (PWRB)
2821
    Device (PWRB)
2822
    {
2822
    {
2823
        Name (_HID, EISAID("PNP0C0C"))
2823
        Name (_HID, EISAID("PNP0C0C"))
2824
        Name (_PRW, Package(2) {0x33, 3})
2824
        Name (_PRW, Package(2) {0x33, 3})
2825
    }
2825
    }
2826
 
2826
 
2827
 
2827
 
2828
    Scope (\_SB)    //  System Bus
2828
    Scope (\_SB)    //  System Bus
2829
    {   //  _SB system bus
2829
    {   //  _SB system bus
2830
 
2830
 
2831
        Device (ACAD)
2831
        Device (ACAD)
2832
        {   //  ACAD:   AC adapter device
2832
        {   //  ACAD:   AC adapter device
2833
            Name (_HID, "ACPI0003") //  AC adapter device
2833
            Name (_HID, "ACPI0003") //  AC adapter device
2834
 
2834
 
2835
            Name (_PCL, Package () {\_SB})
2835
            Name (_PCL, Package () {\_SB})
2836
 
2836
 
2837
            OperationRegion (AREG, SystemIO, 0x0372, 2)
2837
            OperationRegion (AREG, SystemIO, 0x0372, 2)
2838
            Field (AREG, ByteAcc, NoLock, Preserve)
2838
            Field (AREG, ByteAcc, NoLock, Preserve)
2839
            {
2839
            {
2840
                AIDX,   8,
2840
                AIDX,   8,
2841
                ADAT,   8
2841
                ADAT,   8
2842
            }
2842
            }
2843
            IndexField (AIDX, ADAT, ByteAcc, NoLock, Preserve)
2843
            IndexField (AIDX, ADAT, ByteAcc, NoLock, Preserve)
2844
            {
2844
            {
2845
                     ,  1,  //  skips
2845
                     ,  1,  //  skips
2846
                ACIN,   1,
2846
                ACIN,   1,
2847
                     ,  2,  //  skips
2847
                     ,  2,  //  skips
2848
                CHAG,   1,
2848
                CHAG,   1,
2849
                     ,  3,  //  skips
2849
                     ,  3,  //  skips
2850
                     ,  7,  //  skips
2850
                     ,  7,  //  skips
2851
                ABAT,   1,
2851
                ABAT,   1,
2852
            }   //  IndexField
2852
            }   //  IndexField
2853
 
2853
 
2854
            Method (_PSR)
2854
            Method (_PSR)
2855
            {
2855
            {
2856
                Store (\_GPE.ACST, Local0)
2856
                Store (\_GPE.ACST, Local0)
2857
                Store (ACIN, Local1)
2857
                Store (ACIN, Local1)
2858
                If (LNotEqual (\_GPE.ACST, Local1))
2858
                If (LNotEqual (\_GPE.ACST, Local1))
2859
                {
2859
                {
2860
                    Store (Local1, \_GPE.ACST)
2860
                    Store (Local1, \_GPE.ACST)
2861
                    // This Notify is commented because it causes a
2861
                    // This Notify is commented because it causes a
2862
                    //  method error when running on a system without the
2862
                    //  method error when running on a system without the
2863
                    //  specific device.
2863
                    //  specific device.
2864
                    // Notify (\_SB_.ACAD, 0)
2864
                    // Notify (\_SB_.ACAD, 0)
2865
                }
2865
                }
2866
                Return (Local0)
2866
                Return (Local0)
2867
            }   //  _PSR
2867
            }   //  _PSR
2868
 
2868
 
2869
            Method (_STA)
2869
            Method (_STA)
2870
            {
2870
            {
2871
                Return (0x0F)
2871
                Return (0x0F)
2872
            }
2872
            }
2873
 
2873
 
2874
            Method (_INI)
2874
            Method (_INI)
2875
            {
2875
            {
2876
                Store (ACIN, \_GPE.ACST)
2876
                Store (ACIN, \_GPE.ACST)
2877
            }
2877
            }
2878
        }   //  ACAD:   AC adapter device
2878
        }   //  ACAD:   AC adapter device
2879
 
2879
 
2880
        //  test implicit return from control method
2880
        //  test implicit return from control method
2881
        Method (DIS_, 1)
2881
        Method (DIS_, 1)
2882
        {
2882
        {
2883
            Store (Arg0, Local0)
2883
            Store (Arg0, Local0)
2884
        }
2884
        }
2885
 
2885
 
2886
        Device (RTLV)
2886
        Device (RTLV)
2887
        {
2887
        {
2888
            //  test implicit return inside nested if with explicit return of Lvalue
2888
            //  test implicit return inside nested if with explicit return of Lvalue
2889
            Method (_DCK, 1)
2889
            Method (_DCK, 1)
2890
            //  Arg0:   1 == dock, 0 == undock
2890
            //  Arg0:   1 == dock, 0 == undock
2891
            {
2891
            {
2892
                If (Arg0)
2892
                If (Arg0)
2893
                {   //  dock
2893
                {   //  dock
2894
                    Store (0x87, Local0)
2894
                    Store (0x87, Local0)
2895
 
2895
 
2896
                    If (Local0)
2896
                    If (Local0)
2897
                    {
2897
                    {
2898
                        DIS_ (0x23)
2898
                        DIS_ (0x23)
2899
                        Return (1)
2899
                        Return (1)
2900
                    }
2900
                    }
2901
 
2901
 
2902
                    Return (0)
2902
                    Return (0)
2903
                }   //  dock
2903
                }   //  dock
2904
                Else
2904
                Else
2905
                {   //  undock
2905
                {   //  undock
2906
                    Store (Arg0, Local0)
2906
                    Store (Arg0, Local0)
2907
 
2907
 
2908
                    If (Local0)
2908
                    If (Local0)
2909
                    {
2909
                    {
2910
                        DIS_ (0x23)
2910
                        DIS_ (0x23)
2911
                        Return (1)
2911
                        Return (1)
2912
                    }
2912
                    }
2913
 
2913
 
2914
                    Return (0)
2914
                    Return (0)
2915
                }   //  undock
2915
                }   //  undock
2916
            }   //  _DCK control method
2916
            }   //  _DCK control method
2917
 
2917
 
2918
            Method (TEST)
2918
            Method (TEST)
2919
            {
2919
            {
2920
                Store ("++++++++ RetLVal Test", Debug)
2920
                Store ("++++++++ RetLVal Test", Debug)
2921
 
2921
 
2922
                //  store _PSR return value into Local0
2922
                //  store _PSR return value into Local0
2923
                Store (\_SB_.ACAD._PSR, Local0)
2923
                Store (\_SB_.ACAD._PSR, Local0)
2924
 
2924
 
2925
                //  save Local0 object type value into Local1
2925
                //  save Local0 object type value into Local1
2926
                Store (ObjectType (Local0), Local1)
2926
                Store (ObjectType (Local0), Local1)
2927
 
2927
 
2928
                //  validate Local0 is a Number
2928
                //  validate Local0 is a Number
2929
                If (LNotEqual (Local1, 1))  //  Number/Integer type is 1
2929
                If (LNotEqual (Local1, 1))  //  Number/Integer type is 1
2930
                {
2930
                {
2931
                    Return (1)      //  failure
2931
                    Return (1)      //  failure
2932
                }
2932
                }
2933
 
2933
 
2934
                //  test implicit return inside nested if with explicit return of Lvalue
2934
                //  test implicit return inside nested if with explicit return of Lvalue
2935
                Store (_DCK (1), Local2)
2935
                Store (_DCK (1), Local2)
2936
 
2936
 
2937
                //  save Local2 object type value into Local3
2937
                //  save Local2 object type value into Local3
2938
                Store (ObjectType (Local2), Local3)
2938
                Store (ObjectType (Local2), Local3)
2939
 
2939
 
2940
                //  validate Local2 is a Number
2940
                //  validate Local2 is a Number
2941
                If (LNotEqual (Local3, 1))  //  Number/Integer type is 1
2941
                If (LNotEqual (Local3, 1))  //  Number/Integer type is 1
2942
                {
2942
                {
2943
                    Return (2)      //  failure
2943
                    Return (2)      //  failure
2944
                }
2944
                }
2945
 
2945
 
2946
                If (LNotEqual (Local2, 1))
2946
                If (LNotEqual (Local2, 1))
2947
                {
2947
                {
2948
                    Return (3)      //  failure
2948
                    Return (3)      //  failure
2949
                }
2949
                }
2950
 
2950
 
2951
                Return (0)  //  success
2951
                Return (0)  //  success
2952
            }   //  TEST
2952
            }   //  TEST
2953
        }   //  RTLV
2953
        }   //  RTLV
2954
    }   //  _SB system bus
2954
    }   //  _SB system bus
2955
 
2955
 
2956
//
2956
//
2957
// test RetPkg.asl
2957
// test RetPkg.asl
2958
//
2958
//
2959
//  Test ReturnOp(Package)
2959
//  Test ReturnOp(Package)
2960
//      This is required to support _PRT on Dell Optiplex Workstations (e.g. GX1)
2960
//      This is required to support _PRT on Dell Optiplex Workstations (e.g. GX1)
2961
//
2961
//
2962
 
2962
 
2963
    Scope (\_SB)    //  System Bus
2963
    Scope (\_SB)    //  System Bus
2964
    {   //  _SB system bus
2964
    {   //  _SB system bus
2965
        Device(LNKA)
2965
        Device(LNKA)
2966
        {
2966
        {
2967
            Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
2967
            Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
2968
            Name (_UID, 1)
2968
            Name (_UID, 1)
2969
        }
2969
        }
2970
        Device(LNKB)
2970
        Device(LNKB)
2971
        {
2971
        {
2972
            Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
2972
            Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
2973
            Name (_UID, 2)
2973
            Name (_UID, 2)
2974
        }
2974
        }
2975
        Device(LNKC)
2975
        Device(LNKC)
2976
        {
2976
        {
2977
            Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
2977
            Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
2978
            Name (_UID, 3)
2978
            Name (_UID, 3)
2979
        }
2979
        }
2980
        Device(LNKD)
2980
        Device(LNKD)
2981
        {
2981
        {
2982
            Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
2982
            Name (_HID, EISAID("PNP0C0F"))  //  PCI interrupt link
2983
            Name (_UID, 4)
2983
            Name (_UID, 4)
2984
        }
2984
        }
2985
 
2985
 
2986
        Device (PCI1)
2986
        Device (PCI1)
2987
        {   //  PCI1:   Root PCI Bus
2987
        {   //  PCI1:   Root PCI Bus
2988
            Name (_HID, "PNP0A03")  //  Need _HID for root device (String format)
2988
            Name (_HID, "PNP0A03")  //  Need _HID for root device (String format)
2989
            Name (_ADR,0x00000000)
2989
            Name (_ADR,0x00000000)
2990
            Name (_CRS,0)
2990
            Name (_CRS,0)
2991
 
2991
 
2992
            Name (_PRT, Package ()
2992
            Name (_PRT, Package ()
2993
            {
2993
            {
2994
                Package () {0x0004ffff, 0, LNKA, 0},            //  Slot 1, INTA
2994
                Package () {0x0004ffff, 0, LNKA, 0},            //  Slot 1, INTA
2995
                Package () {0x0004ffff, 1, LNKB, 0},            //  Slot 1, INTB
2995
                Package () {0x0004ffff, 1, LNKB, 0},            //  Slot 1, INTB
2996
                Package () {0x0004ffff, 2, LNKC, 0},            //  Slot 1, INTC
2996
                Package () {0x0004ffff, 2, LNKC, 0},            //  Slot 1, INTC
2997
                Package () {0x0004ffff, 3, LNKD, 0},            //  Slot 1, INTD
2997
                Package () {0x0004ffff, 3, LNKD, 0},            //  Slot 1, INTD
2998
                Package () {0x0005ffff, 0, \_SB_.LNKB, 0},  //  Slot 2, INTA
2998
                Package () {0x0005ffff, 0, \_SB_.LNKB, 0},  //  Slot 2, INTA
2999
                Package () {0x0005ffff, 1, \_SB_.LNKC, 0},  //  Slot 2, INTB
2999
                Package () {0x0005ffff, 1, \_SB_.LNKC, 0},  //  Slot 2, INTB
3000
                Package () {0x0005ffff, 2, \_SB_.LNKD, 0},  //  Slot 2, INTC
3000
                Package () {0x0005ffff, 2, \_SB_.LNKD, 0},  //  Slot 2, INTC
3001
                Package () {0x0006ffff, 3, \_SB_.LNKA, 0},  //  Slot 2, INTD
3001
                Package () {0x0006ffff, 3, \_SB_.LNKA, 0},  //  Slot 2, INTD
3002
                Package () {0x0006ffff, 0, LNKC, 0},            //  Slot 3, INTA
3002
                Package () {0x0006ffff, 0, LNKC, 0},            //  Slot 3, INTA
3003
                Package () {0x0006ffff, 1, LNKD, 0},            //  Slot 3, INTB
3003
                Package () {0x0006ffff, 1, LNKD, 0},            //  Slot 3, INTB
3004
                Package () {0x0006ffff, 2, LNKA, 0},            //  Slot 3, INTC
3004
                Package () {0x0006ffff, 2, LNKA, 0},            //  Slot 3, INTC
3005
                Package () {0x0006ffff, 3, LNKB, 0},            //  Slot 3, INTD
3005
                Package () {0x0006ffff, 3, LNKB, 0},            //  Slot 3, INTD
3006
            })
3006
            })
3007
 
3007
 
3008
            Device (PX40)
3008
            Device (PX40)
3009
            {   // Map f0 space, Start PX40
3009
            {   // Map f0 space, Start PX40
3010
                Name (_ADR,0x00070000)  //  Address+function.
3010
                Name (_ADR,0x00070000)  //  Address+function.
3011
            }
3011
            }
3012
        }   //  PCI0:   Root PCI Bus
3012
        }   //  PCI0:   Root PCI Bus
3013
 
3013
 
3014
        Device (RETP)
3014
        Device (RETP)
3015
        {
3015
        {
3016
            Method (RPKG)
3016
            Method (RPKG)
3017
            {   //  RPKG: Return Package from local variable
3017
            {   //  RPKG: Return Package from local variable
3018
 
3018
 
3019
                //  store _PRT package into Local0
3019
                //  store _PRT package into Local0
3020
                Store (\_SB_.PCI1._PRT, Local0)
3020
                Store (\_SB_.PCI1._PRT, Local0)
3021
 
3021
 
3022
                //  return Local0 Package
3022
                //  return Local0 Package
3023
                Return (Local0)
3023
                Return (Local0)
3024
            }   //  RPKG
3024
            }   //  RPKG
3025
 
3025
 
3026
            Method (TEST)
3026
            Method (TEST)
3027
            {
3027
            {
3028
                Store ("++++++++ RetPkg Test", Debug)
3028
                Store ("++++++++ RetPkg Test", Debug)
3029
 
3029
 
3030
                //  store RPKG package return value into Local0
3030
                //  store RPKG package return value into Local0
3031
                Store (RPKG, Local0)
3031
                Store (RPKG, Local0)
3032
 
3032
 
3033
                //  save Local0 object type value into Local1
3033
                //  save Local0 object type value into Local1
3034
                Store (ObjectType (Local0), Local1)
3034
                Store (ObjectType (Local0), Local1)
3035
 
3035
 
3036
                //  validate Local0 is a Package
3036
                //  validate Local0 is a Package
3037
                If (LNotEqual (Local1, 4))  //  Package type is 4
3037
                If (LNotEqual (Local1, 4))  //  Package type is 4
3038
                    {   Return (1)  }   //  failure
3038
                    {   Return (1)  }   //  failure
3039
                Else
3039
                Else
3040
                    {   Return (0)  }   //  success
3040
                    {   Return (0)  }   //  success
3041
            }   //  TEST
3041
            }   //  TEST
3042
        }   //  RETP
3042
        }   //  RETP
3043
    } // _SB_
3043
    } // _SB_
3044
 
3044
 
3045
//
3045
//
3046
// test WhileRet.asl
3046
// test WhileRet.asl
3047
//
3047
//
3048
//  WhileRet.asl tests a ReturnOp nested in a IfOp nested in a WhileOp.
3048
//  WhileRet.asl tests a ReturnOp nested in a IfOp nested in a WhileOp.
3049
//
3049
//
3050
    Device (WHLR)
3050
    Device (WHLR)
3051
    {
3051
    {
3052
        Name (LCNT, 0)
3052
        Name (LCNT, 0)
3053
        Method (WIR)
3053
        Method (WIR)
3054
        {   //  WIR:    control method that returns inside of IfOp inside of WhileOp
3054
        {   //  WIR:    control method that returns inside of IfOp inside of WhileOp
3055
            While (LLess (LCNT, 4))
3055
            While (LLess (LCNT, 4))
3056
            {
3056
            {
3057
                    If (LEqual (LCNT, 2))
3057
                    If (LEqual (LCNT, 2))
3058
                    {
3058
                    {
3059
                        Return (0)
3059
                        Return (0)
3060
                    }
3060
                    }
3061
 
3061
 
3062
                Increment (LCNT)
3062
                Increment (LCNT)
3063
            }
3063
            }
3064
 
3064
 
3065
            Return (LCNT)
3065
            Return (LCNT)
3066
        }   //  WIR:    control method that returns inside of IfOp inside of WhileOp
3066
        }   //  WIR:    control method that returns inside of IfOp inside of WhileOp
3067
 
3067
 
3068
        Method (TEST)
3068
        Method (TEST)
3069
        {
3069
        {
3070
            Store ("++++++++ WhileRet Test", Debug)
3070
            Store ("++++++++ WhileRet Test", Debug)
3071
 
3071
 
3072
            Store (WIR, Local0)
3072
            Store (WIR, Local0)
3073
 
3073
 
3074
            Return (Local0)
3074
            Return (Local0)
3075
        }   //  TEST
3075
        }   //  TEST
3076
    }   //  WHLR
3076
    }   //  WHLR
3077
 
3077
 
3078
//
3078
//
3079
// test AndOrOp.asl
3079
// test AndOrOp.asl
3080
//
3080
//
3081
//This code tests the bitwise AndOp and OrOp Operator terms
3081
//This code tests the bitwise AndOp and OrOp Operator terms
3082
//
3082
//
3083
//Syntax of Andop term
3083
//Syntax of Andop term
3084
//And - Bitwise And
3084
//And - Bitwise And
3085
//AndTerm   := And(
3085
//AndTerm   := And(
3086
//  Source1,    //TermArg=>Integer
3086
//  Source1,    //TermArg=>Integer
3087
//  Source2,    //TermArg=>Integer
3087
//  Source2,    //TermArg=>Integer
3088
//  Result  //Nothing | SuperName
3088
//  Result  //Nothing | SuperName
3089
//) => Integer
3089
//) => Integer
3090
//Source1 and Source2 are evaluated as integer data types,
3090
//Source1 and Source2 are evaluated as integer data types,
3091
// a bit-wise AND is performed, and the result is optionally
3091
// a bit-wise AND is performed, and the result is optionally
3092
//stored into Result.
3092
//stored into Result.
3093
//
3093
//
3094
//
3094
//
3095
//Syntax of OrOp
3095
//Syntax of OrOp
3096
//Or - Bit-wise Or
3096
//Or - Bit-wise Or
3097
//OrTerm    := Or(
3097
//OrTerm    := Or(
3098
//  Source1,    //TermArg=>Integer
3098
//  Source1,    //TermArg=>Integer
3099
//  Source2 //TermArg=>Integer
3099
//  Source2 //TermArg=>Integer
3100
//  Result  //Nothing | SuperName
3100
//  Result  //Nothing | SuperName
3101
//) => Integer
3101
//) => Integer
3102
//Source1 and Source2 are evaluated as integer data types,
3102
//Source1 and Source2 are evaluated as integer data types,
3103
// a bit-wide OR is performed, and the result is optionally
3103
// a bit-wide OR is performed, and the result is optionally
3104
//stored in Result
3104
//stored in Result
3105
//
3105
//
3106
    Device (ANDO)
3106
    Device (ANDO)
3107
    {
3107
    {
3108
        OperationRegion (TMEM, SystemMemory, 0xC4, 0x02)
3108
        OperationRegion (TMEM, SystemMemory, 0xC4, 0x02)
3109
        Field (TMEM, ByteAcc, NoLock, Preserve)
3109
        Field (TMEM, ByteAcc, NoLock, Preserve)
3110
        {
3110
        {
3111
                ,   3,
3111
                ,   3,
3112
            TOUD,   13
3112
            TOUD,   13
3113
        }
3113
        }
3114
 
3114
 
3115
        //Create System Memory Operation Region and field overlays
3115
        //Create System Memory Operation Region and field overlays
3116
        OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3116
        OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3117
        Field (RAM, AnyAcc, NoLock, Preserve)
3117
        Field (RAM, AnyAcc, NoLock, Preserve)
3118
        {
3118
        {
3119
            SMDW,   32, //  32-bit DWORD
3119
            SMDW,   32, //  32-bit DWORD
3120
            SMWD,   16, //  16-bit WORD
3120
            SMWD,   16, //  16-bit WORD
3121
            SMBY,   8,  //  8-bit BYTE
3121
            SMBY,   8,  //  8-bit BYTE
3122
        }// Field(RAM)
3122
        }// Field(RAM)
3123
 
3123
 
3124
 
3124
 
3125
        //And with Byte Data
3125
        //And with Byte Data
3126
        Name (BYT1, 0xff)
3126
        Name (BYT1, 0xff)
3127
        Name (BYT2, 0xff)
3127
        Name (BYT2, 0xff)
3128
        Name (BRSL, 0x00)
3128
        Name (BRSL, 0x00)
3129
 
3129
 
3130
        //And with Word Data
3130
        //And with Word Data
3131
        Name (WRD1, 0xffff)
3131
        Name (WRD1, 0xffff)
3132
        Name (WRD2, 0xffff)
3132
        Name (WRD2, 0xffff)
3133
        Name (WRSL, 0x0000)
3133
        Name (WRSL, 0x0000)
3134
 
3134
 
3135
        //And with DWord Data
3135
        //And with DWord Data
3136
        Name (DWD1, 0xffffffff)
3136
        Name (DWD1, 0xffffffff)
3137
        Name (DWD2, 0xffffffff)
3137
        Name (DWD2, 0xffffffff)
3138
        Name (DRSL, 0x00000000)
3138
        Name (DRSL, 0x00000000)
3139
 
3139
 
3140
        Method (ANDP)
3140
        Method (ANDP)
3141
        {
3141
        {
3142
            //Check with 1 And 1 on byte data
3142
            //Check with 1 And 1 on byte data
3143
            And(BYT1, BYT2, BRSL)
3143
            And(BYT1, BYT2, BRSL)
3144
            if(LNotEqual(BRSL,0xff))
3144
            if(LNotEqual(BRSL,0xff))
3145
            {Return(1)}
3145
            {Return(1)}
3146
 
3146
 
3147
            //Check with 1 And 1 on Word data
3147
            //Check with 1 And 1 on Word data
3148
            And(WRD1, WRD2, WRSL)
3148
            And(WRD1, WRD2, WRSL)
3149
            if(LNotEqual(WRSL,0xffff))
3149
            if(LNotEqual(WRSL,0xffff))
3150
            {
3150
            {
3151
                Return (1)      //  failure
3151
                Return (1)      //  failure
3152
            }
3152
            }
3153
 
3153
 
3154
            //Check with 1 And 1 Dword
3154
            //Check with 1 And 1 Dword
3155
            And(DWD1, DWD2, DRSL)
3155
            And(DWD1, DWD2, DRSL)
3156
            if(LNotEqual(DRSL,0xffffffff))
3156
            if(LNotEqual(DRSL,0xffffffff))
3157
            {
3157
            {
3158
                Return (1)      //  failure
3158
                Return (1)      //  failure
3159
            }
3159
            }
3160
 
3160
 
3161
            //Check with 0 And 0 on byte data
3161
            //Check with 0 And 0 on byte data
3162
            Store(0x00,BYT1)
3162
            Store(0x00,BYT1)
3163
            Store(0x00,BYT2)
3163
            Store(0x00,BYT2)
3164
            Store(0x00,BRSL)
3164
            Store(0x00,BRSL)
3165
            And(BYT1, BYT2, BRSL)
3165
            And(BYT1, BYT2, BRSL)
3166
            if(LNotEqual(BRSL,0x00))
3166
            if(LNotEqual(BRSL,0x00))
3167
            {
3167
            {
3168
                Return (1)      //  failure
3168
                Return (1)      //  failure
3169
            }
3169
            }
3170
 
3170
 
3171
            //Check with 0 And 0 on Word data
3171
            //Check with 0 And 0 on Word data
3172
            Store (0x0000,WRD1)
3172
            Store (0x0000,WRD1)
3173
            Store (0x0000,WRD2)
3173
            Store (0x0000,WRD2)
3174
            Store (0x0000,WRSL)
3174
            Store (0x0000,WRSL)
3175
            And(WRD1, WRD2, WRSL)
3175
            And(WRD1, WRD2, WRSL)
3176
            if(LNotEqual(WRSL,0x0000))
3176
            if(LNotEqual(WRSL,0x0000))
3177
            {
3177
            {
3178
                Return (1)      //  failure
3178
                Return (1)      //  failure
3179
            }
3179
            }
3180
 
3180
 
3181
            //Check with 0 And 0 Dword
3181
            //Check with 0 And 0 Dword
3182
            Store (0x00000000,DWD1)
3182
            Store (0x00000000,DWD1)
3183
            Store (0x00000000,DWD2)
3183
            Store (0x00000000,DWD2)
3184
            Store (0x00000000,DRSL)
3184
            Store (0x00000000,DRSL)
3185
            And(DWD1, DWD2, DRSL)
3185
            And(DWD1, DWD2, DRSL)
3186
            if(LNotEqual(DRSL,0x00000000))
3186
            if(LNotEqual(DRSL,0x00000000))
3187
            {
3187
            {
3188
                Return (1)      //  failure
3188
                Return (1)      //  failure
3189
            }
3189
            }
3190
 
3190
 
3191
 
3191
 
3192
            //Check with 1 And 0 on byte data
3192
            //Check with 1 And 0 on byte data
3193
            Store(0x55,BYT1)
3193
            Store(0x55,BYT1)
3194
            Store(0xAA,BYT2)
3194
            Store(0xAA,BYT2)
3195
            Store(0x00,BRSL)
3195
            Store(0x00,BRSL)
3196
            And(BYT1, BYT2, BRSL)
3196
            And(BYT1, BYT2, BRSL)
3197
            if(LNotEqual(BRSL,0x00))
3197
            if(LNotEqual(BRSL,0x00))
3198
            {
3198
            {
3199
                Return (1)      //  failure
3199
                Return (1)      //  failure
3200
            }
3200
            }
3201
 
3201
 
3202
            //Check with 1 And 0 on Word data
3202
            //Check with 1 And 0 on Word data
3203
            Store (0x5555,WRD1)
3203
            Store (0x5555,WRD1)
3204
            Store (0xAAAA,WRD2)
3204
            Store (0xAAAA,WRD2)
3205
            Store (0x0000,WRSL)
3205
            Store (0x0000,WRSL)
3206
            And(WRD1, WRD2, WRSL)
3206
            And(WRD1, WRD2, WRSL)
3207
            if(LNotEqual(WRSL,0x0000))
3207
            if(LNotEqual(WRSL,0x0000))
3208
            {
3208
            {
3209
                Return (1)      //  failure
3209
                Return (1)      //  failure
3210
            }
3210
            }
3211
 
3211
 
3212
            //Check with 1 And 0 on Dword
3212
            //Check with 1 And 0 on Dword
3213
            Store (0x55555555,DWD1)
3213
            Store (0x55555555,DWD1)
3214
            Store (0xAAAAAAAA,DWD2)
3214
            Store (0xAAAAAAAA,DWD2)
3215
            Store (0x00000000,DRSL)
3215
            Store (0x00000000,DRSL)
3216
            And(DWD1, DWD2, DRSL)
3216
            And(DWD1, DWD2, DRSL)
3217
            if(LNotEqual(DRSL,0x00000000))
3217
            if(LNotEqual(DRSL,0x00000000))
3218
            {
3218
            {
3219
                Return (1)      //  failure
3219
                Return (1)      //  failure
3220
            }
3220
            }
3221
 
3221
 
3222
            Store (0x1FFF, TOUD)
3222
            Store (0x1FFF, TOUD)
3223
            Store (TOUD, Local0)
3223
            Store (TOUD, Local0)
3224
            if(LNotEqual(Local0,0x1FFF))
3224
            if(LNotEqual(Local0,0x1FFF))
3225
            {
3225
            {
3226
                Return (1)      //  failure
3226
                Return (1)      //  failure
3227
            }
3227
            }
3228
 
3228
 
3229
            //TBD- Do We need to check for system memory data also for each test case ??
3229
            //TBD- Do We need to check for system memory data also for each test case ??
3230
 
3230
 
3231
            Return(0)
3231
            Return(0)
3232
 
3232
 
3233
        }//ANDP
3233
        }//ANDP
3234
 
3234
 
3235
        Method (OROP)
3235
        Method (OROP)
3236
        {
3236
        {
3237
 
3237
 
3238
            //Check with 1 Ored with 1 on byte data
3238
            //Check with 1 Ored with 1 on byte data
3239
            Store(0xff,BYT1)
3239
            Store(0xff,BYT1)
3240
            Store(0xff,BYT2)
3240
            Store(0xff,BYT2)
3241
            Store(0x00,BRSL)
3241
            Store(0x00,BRSL)
3242
            Or(BYT1, BYT2, BRSL)
3242
            Or(BYT1, BYT2, BRSL)
3243
            if(LNotEqual(BRSL,0xff))
3243
            if(LNotEqual(BRSL,0xff))
3244
            {
3244
            {
3245
                Return (1)      //  failure
3245
                Return (1)      //  failure
3246
            }
3246
            }
3247
 
3247
 
3248
 
3248
 
3249
            //Check with 1 Ored with 1 on Word data
3249
            //Check with 1 Ored with 1 on Word data
3250
            Store(0xffff,WRD1)
3250
            Store(0xffff,WRD1)
3251
            Store(0xffff,WRD2)
3251
            Store(0xffff,WRD2)
3252
            Store(0x0000,WRSL)
3252
            Store(0x0000,WRSL)
3253
            Or(WRD1, WRD2, WRSL)
3253
            Or(WRD1, WRD2, WRSL)
3254
            if(LNotEqual(WRSL,0xffff))
3254
            if(LNotEqual(WRSL,0xffff))
3255
            {
3255
            {
3256
                Return (1)      //  failure
3256
                Return (1)      //  failure
3257
            }
3257
            }
3258
 
3258
 
3259
            //Check with 1 Ored with 1 on Dword data
3259
            //Check with 1 Ored with 1 on Dword data
3260
            Store(0xffffffff,DWD1)
3260
            Store(0xffffffff,DWD1)
3261
            Store(0xffffffff,DWD2)
3261
            Store(0xffffffff,DWD2)
3262
            Store(0x00000000,DRSL)
3262
            Store(0x00000000,DRSL)
3263
            Or(DWD1, DWD2, DRSL)
3263
            Or(DWD1, DWD2, DRSL)
3264
            if(LNotEqual(DRSL,0xffffffff))
3264
            if(LNotEqual(DRSL,0xffffffff))
3265
            {
3265
            {
3266
                Return (1)      //  failure
3266
                Return (1)      //  failure
3267
            }
3267
            }
3268
 
3268
 
3269
            //Check with 0 Ored with 0 on byte data
3269
            //Check with 0 Ored with 0 on byte data
3270
            Store(0x00,BYT1)
3270
            Store(0x00,BYT1)
3271
            Store(0x00,BYT2)
3271
            Store(0x00,BYT2)
3272
            Store(0x00,BRSL)
3272
            Store(0x00,BRSL)
3273
            Or(BYT1, BYT2, BRSL)
3273
            Or(BYT1, BYT2, BRSL)
3274
            if(LNotEqual(BRSL,0x00))
3274
            if(LNotEqual(BRSL,0x00))
3275
            {
3275
            {
3276
                Return (1)      //  failure
3276
                Return (1)      //  failure
3277
            }
3277
            }
3278
 
3278
 
3279
            //Check with 0 Ored with 0 on Word data
3279
            //Check with 0 Ored with 0 on Word data
3280
            Store (0x0000,WRD1)
3280
            Store (0x0000,WRD1)
3281
            Store (0x0000,WRD2)
3281
            Store (0x0000,WRD2)
3282
            Store (0x0000,WRSL)
3282
            Store (0x0000,WRSL)
3283
            Or(WRD1, WRD2, WRSL)
3283
            Or(WRD1, WRD2, WRSL)
3284
            if(LNotEqual(WRSL,0x0000))
3284
            if(LNotEqual(WRSL,0x0000))
3285
            {
3285
            {
3286
                Return (1)      //  failure
3286
                Return (1)      //  failure
3287
            }
3287
            }
3288
 
3288
 
3289
            //Check with 0 Ored with  0 Dword data
3289
            //Check with 0 Ored with  0 Dword data
3290
            Store (0x00000000,DWD1)
3290
            Store (0x00000000,DWD1)
3291
            Store (0x00000000,DWD2)
3291
            Store (0x00000000,DWD2)
3292
            Store (0x00000000,DRSL)
3292
            Store (0x00000000,DRSL)
3293
            Or(DWD1, DWD2, DRSL)
3293
            Or(DWD1, DWD2, DRSL)
3294
            if(LNotEqual(DRSL,0x00000000))
3294
            if(LNotEqual(DRSL,0x00000000))
3295
            {
3295
            {
3296
                Return (1)      //  failure
3296
                Return (1)      //  failure
3297
            }
3297
            }
3298
 
3298
 
3299
 
3299
 
3300
            //Check with 1 Ored with 0 on byte data
3300
            //Check with 1 Ored with 0 on byte data
3301
            Store(0x55,BYT1)
3301
            Store(0x55,BYT1)
3302
            Store(0xAA,BYT2)
3302
            Store(0xAA,BYT2)
3303
            Store(0x00,BRSL)
3303
            Store(0x00,BRSL)
3304
            Or(BYT1, BYT2, BRSL)
3304
            Or(BYT1, BYT2, BRSL)
3305
            if(LNotEqual(BRSL,0xff))
3305
            if(LNotEqual(BRSL,0xff))
3306
            {
3306
            {
3307
                Return (1)      //  failure
3307
                Return (1)      //  failure
3308
            }
3308
            }
3309
 
3309
 
3310
            //Check with 1 Ored with 0 on Word data
3310
            //Check with 1 Ored with 0 on Word data
3311
            Store (0x5555,WRD1)
3311
            Store (0x5555,WRD1)
3312
            Store (0xAAAA,WRD2)
3312
            Store (0xAAAA,WRD2)
3313
            Store (0x0000,WRSL)
3313
            Store (0x0000,WRSL)
3314
            Or(WRD1, WRD2, WRSL)
3314
            Or(WRD1, WRD2, WRSL)
3315
            if(LNotEqual(WRSL,0xffff))
3315
            if(LNotEqual(WRSL,0xffff))
3316
            {
3316
            {
3317
                Return (1)      //  failure
3317
                Return (1)      //  failure
3318
            }
3318
            }
3319
 
3319
 
3320
            //Check with 1 Ored with 0 on Dword data
3320
            //Check with 1 Ored with 0 on Dword data
3321
            Store (0x55555555,DWD1)
3321
            Store (0x55555555,DWD1)
3322
            Store (0xAAAAAAAA,DWD2)
3322
            Store (0xAAAAAAAA,DWD2)
3323
            Store (0x00000000,DRSL)
3323
            Store (0x00000000,DRSL)
3324
            Or(DWD1, DWD2, DRSL)
3324
            Or(DWD1, DWD2, DRSL)
3325
            if(LNotEqual(DRSL,0xffffffff))
3325
            if(LNotEqual(DRSL,0xffffffff))
3326
            {
3326
            {
3327
                Return (1)      //  failure
3327
                Return (1)      //  failure
3328
            }
3328
            }
3329
 
3329
 
3330
            //TBD - Do We need to check for system memory data also for each test case ??
3330
            //TBD - Do We need to check for system memory data also for each test case ??
3331
 
3331
 
3332
            Return(0)
3332
            Return(0)
3333
 
3333
 
3334
        }//OROP
3334
        }//OROP
3335
 
3335
 
3336
        Method(TEST)
3336
        Method(TEST)
3337
        {
3337
        {
3338
            Store ("++++++++ AndOrOp Test", Debug)
3338
            Store ("++++++++ AndOrOp Test", Debug)
3339
 
3339
 
3340
            Name(RSLT,1)
3340
            Name(RSLT,1)
3341
            //Call Andop method
3341
            //Call Andop method
3342
            Store(ANDP,RSLT)
3342
            Store(ANDP,RSLT)
3343
            if(LEqual(RSLT,1))
3343
            if(LEqual(RSLT,1))
3344
            {
3344
            {
3345
                Return (RSLT)
3345
                Return (RSLT)
3346
            }
3346
            }
3347
 
3347
 
3348
            //Call OrOp Method
3348
            //Call OrOp Method
3349
            Store(OROP,RSLT)
3349
            Store(OROP,RSLT)
3350
            if(LEqual(RSLT,1))
3350
            if(LEqual(RSLT,1))
3351
            {
3351
            {
3352
                Return(RSLT)
3352
                Return(RSLT)
3353
            }
3353
            }
3354
 
3354
 
3355
            //
3355
            //
3356
            // Return original conditions to allow iterative execution
3356
            // Return original conditions to allow iterative execution
3357
            //
3357
            //
3358
            Store(0xff,BYT1)
3358
            Store(0xff,BYT1)
3359
            Store(0xff,BYT2)
3359
            Store(0xff,BYT2)
3360
            Store(0x00,BRSL)
3360
            Store(0x00,BRSL)
3361
            Store (0xffff,WRD1)
3361
            Store (0xffff,WRD1)
3362
            Store (0xffff,WRD2)
3362
            Store (0xffff,WRD2)
3363
            Store (0x0000,WRSL)
3363
            Store (0x0000,WRSL)
3364
            Store (0xffffffff,DWD1)
3364
            Store (0xffffffff,DWD1)
3365
            Store (0xffffffff,DWD2)
3365
            Store (0xffffffff,DWD2)
3366
            Store (0x00000000,DRSL)
3366
            Store (0x00000000,DRSL)
3367
 
3367
 
3368
            Return(0)
3368
            Return(0)
3369
        }   //TEST
3369
        }   //TEST
3370
    }   //ANDO
3370
    }   //ANDO
3371
 
3371
 
3372
//
3372
//
3373
// test BreakPnt.asl
3373
// test BreakPnt.asl
3374
//
3374
//
3375
// This code tests the BreakPoint opcode term. The syntax of BreakPoint Term is
3375
// This code tests the BreakPoint opcode term. The syntax of BreakPoint Term is
3376
// BreakPointTerm    := BreakPoint
3376
// BreakPointTerm    := BreakPoint
3377
// Used for debugging, the Breakpoint opcode stops the execution and enters the AML debugger.
3377
// Used for debugging, the Breakpoint opcode stops the execution and enters the AML debugger.
3378
// In the non-debug version of the interpreter, BreakPoint is equivalent to Noop.
3378
// In the non-debug version of the interpreter, BreakPoint is equivalent to Noop.
3379
//
3379
//
3380
    Device (BRKP)
3380
    Device (BRKP)
3381
    {
3381
    {
3382
        Name(CNT0,0)
3382
        Name(CNT0,0)
3383
 
3383
 
3384
        Method (BK1)
3384
        Method (BK1)
3385
        {
3385
        {
3386
            BreakPoint
3386
            BreakPoint
3387
            Return(0)
3387
            Return(0)
3388
        }
3388
        }
3389
 
3389
 
3390
        Method (TEST)
3390
        Method (TEST)
3391
        {
3391
        {
3392
            Store ("++++++++ BreakPnt Test", Debug)
3392
            Store ("++++++++ BreakPnt Test", Debug)
3393
 
3393
 
3394
            Store(0,CNT0)
3394
            Store(0,CNT0)
3395
 
3395
 
3396
            //Check BreakPoint statement
3396
            //Check BreakPoint statement
3397
            While(LLess(CNT0,10))
3397
            While(LLess(CNT0,10))
3398
            {
3398
            {
3399
                Increment(CNT0)
3399
                Increment(CNT0)
3400
            }
3400
            }
3401
 
3401
 
3402
            //Check the BreakPoint statement
3402
            //Check the BreakPoint statement
3403
            If(LEqual(CNT0,10))
3403
            If(LEqual(CNT0,10))
3404
            {
3404
            {
3405
    //            BreakPoint
3405
    //            BreakPoint
3406
                Return(0)
3406
                Return(0)
3407
            }
3407
            }
3408
 
3408
 
3409
            //failed
3409
            //failed
3410
            Return(1)
3410
            Return(1)
3411
        }
3411
        }
3412
    }
3412
    }
3413
 
3413
 
3414
//
3414
//
3415
// test AddSubOp.asl
3415
// test AddSubOp.asl
3416
//
3416
//
3417
    Device (ADSU)
3417
    Device (ADSU)
3418
    {
3418
    {
3419
        //  create System Memory Operation Region and field overlays
3419
        //  create System Memory Operation Region and field overlays
3420
        OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3420
        OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3421
        Field (RAM, AnyAcc, NoLock, Preserve)
3421
        Field (RAM, AnyAcc, NoLock, Preserve)
3422
        {
3422
        {
3423
            SMDW,   32, //  32-bit DWORD
3423
            SMDW,   32, //  32-bit DWORD
3424
            SMWD,   16, //  16-bit WORD
3424
            SMWD,   16, //  16-bit WORD
3425
            SMBY,   8,  //  8-bit BYTE
3425
            SMBY,   8,  //  8-bit BYTE
3426
        }   //  Field(RAM)
3426
        }   //  Field(RAM)
3427
 
3427
 
3428
        Method (TEST)
3428
        Method (TEST)
3429
        {
3429
        {
3430
            Store ("++++++++ AddSubOp Test", Debug)
3430
            Store ("++++++++ AddSubOp Test", Debug)
3431
 
3431
 
3432
            Name (DWRD, 0x12345678)
3432
            Name (DWRD, 0x12345678)
3433
            Name (WRD, 0x1234)
3433
            Name (WRD, 0x1234)
3434
            Name (BYT, 0x12)
3434
            Name (BYT, 0x12)
3435
 
3435
 
3436
            //  Test AddOp with DWORD data
3436
            //  Test AddOp with DWORD data
3437
            Store (0x12345678, DWRD)
3437
            Store (0x12345678, DWRD)
3438
            Add (DWRD, 7, DWRD)
3438
            Add (DWRD, 7, DWRD)
3439
            If (LNotEqual (DWRD, 0x1234567F))
3439
            If (LNotEqual (DWRD, 0x1234567F))
3440
                {   Return (DWRD)   }
3440
                {   Return (DWRD)   }
3441
 
3441
 
3442
            //  Test AddOp with WORD data
3442
            //  Test AddOp with WORD data
3443
            Add (WRD, 5, WRD)
3443
            Add (WRD, 5, WRD)
3444
            If (LNotEqual (WRD, 0x1239))
3444
            If (LNotEqual (WRD, 0x1239))
3445
                {   Return (WRD)    }
3445
                {   Return (WRD)    }
3446
 
3446
 
3447
            //  Test AddOp with BYTE data
3447
            //  Test AddOp with BYTE data
3448
            Add (BYT, 3, BYT)
3448
            Add (BYT, 3, BYT)
3449
            If (LNotEqual (BYT, 0x15))
3449
            If (LNotEqual (BYT, 0x15))
3450
                {   Return (BYT)    }
3450
                {   Return (BYT)    }
3451
 
3451
 
3452
            //  Test SubtractOp with DWORD data
3452
            //  Test SubtractOp with DWORD data
3453
            Subtract (DWRD, 7, DWRD)
3453
            Subtract (DWRD, 7, DWRD)
3454
            If (LNotEqual (DWRD, 0x12345678))
3454
            If (LNotEqual (DWRD, 0x12345678))
3455
                {   Return (DWRD)   }
3455
                {   Return (DWRD)   }
3456
 
3456
 
3457
            //  Test SubtractOp with WORD data
3457
            //  Test SubtractOp with WORD data
3458
            Subtract (WRD, 3, WRD)
3458
            Subtract (WRD, 3, WRD)
3459
            If (LNotEqual (WRD, 0x1236))
3459
            If (LNotEqual (WRD, 0x1236))
3460
                {   Return (WRD)    }
3460
                {   Return (WRD)    }
3461
 
3461
 
3462
            //  Test SubtractOp with BYTE data
3462
            //  Test SubtractOp with BYTE data
3463
            Subtract (BYT, 3, BYT)
3463
            Subtract (BYT, 3, BYT)
3464
            If (LNotEqual (BYT, 0x12))
3464
            If (LNotEqual (BYT, 0x12))
3465
                {   Return (BYT)    }
3465
                {   Return (BYT)    }
3466
 
3466
 
3467
 
3467
 
3468
            //  test AddOp with DWORD SystemMemory OpRegion
3468
            //  test AddOp with DWORD SystemMemory OpRegion
3469
            Store (0x01234567, SMDW)
3469
            Store (0x01234567, SMDW)
3470
            Add (SMDW, 8, SMDW)
3470
            Add (SMDW, 8, SMDW)
3471
            If (LNotEqual (SMDW, 0x0123456F))
3471
            If (LNotEqual (SMDW, 0x0123456F))
3472
                {   Return (SMDW)   }
3472
                {   Return (SMDW)   }
3473
 
3473
 
3474
            //  test SubtractOp with DWORD SystemMemory OpRegion
3474
            //  test SubtractOp with DWORD SystemMemory OpRegion
3475
            Subtract (SMDW, 7, SMDW)
3475
            Subtract (SMDW, 7, SMDW)
3476
            If (LNotEqual (SMDW, 0x01234568))
3476
            If (LNotEqual (SMDW, 0x01234568))
3477
                {   Return (SMDW)   }
3477
                {   Return (SMDW)   }
3478
 
3478
 
3479
 
3479
 
3480
            //  test AddOp with WORD SystemMemory OpRegion
3480
            //  test AddOp with WORD SystemMemory OpRegion
3481
            Store (0x0123, SMWD)
3481
            Store (0x0123, SMWD)
3482
            Add (SMWD, 6, SMWD)
3482
            Add (SMWD, 6, SMWD)
3483
            If (LNotEqual (SMWD, 0x0129))
3483
            If (LNotEqual (SMWD, 0x0129))
3484
                {   Return (SMWD)   }
3484
                {   Return (SMWD)   }
3485
 
3485
 
3486
            //  test SubtractOp with WORD SystemMemory OpRegion
3486
            //  test SubtractOp with WORD SystemMemory OpRegion
3487
            Subtract (SMWD, 5, SMWD)
3487
            Subtract (SMWD, 5, SMWD)
3488
            If (LNotEqual (SMWD, 0x0124))
3488
            If (LNotEqual (SMWD, 0x0124))
3489
                {   Return (SMWD)   }
3489
                {   Return (SMWD)   }
3490
 
3490
 
3491
 
3491
 
3492
            //  test AddOp with BYTE SystemMemory OpRegion
3492
            //  test AddOp with BYTE SystemMemory OpRegion
3493
            Store (0x01, SMBY)
3493
            Store (0x01, SMBY)
3494
            Add (SMBY, 4, SMBY)
3494
            Add (SMBY, 4, SMBY)
3495
            If (LNotEqual (SMBY, 0x05))
3495
            If (LNotEqual (SMBY, 0x05))
3496
                {   Return (SMBY)   }
3496
                {   Return (SMBY)   }
3497
 
3497
 
3498
            //  test SubtractOp with BYTE SystemMemory OpRegion
3498
            //  test SubtractOp with BYTE SystemMemory OpRegion
3499
            Subtract (SMBY, 3, SMBY)
3499
            Subtract (SMBY, 3, SMBY)
3500
            If (LNotEqual (SMBY, 0x02))
3500
            If (LNotEqual (SMBY, 0x02))
3501
                {   Return (SMBY)   }
3501
                {   Return (SMBY)   }
3502
 
3502
 
3503
            Return (0)
3503
            Return (0)
3504
        }   //  TEST
3504
        }   //  TEST
3505
    }   //  ADSU
3505
    }   //  ADSU
3506
 
3506
 
3507
//
3507
//
3508
// test IncDecOp.asl
3508
// test IncDecOp.asl
3509
//
3509
//
3510
    Device (INDC)
3510
    Device (INDC)
3511
    {
3511
    {
3512
        //  create System Memory Operation Region and field overlays
3512
        //  create System Memory Operation Region and field overlays
3513
        OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3513
        OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3514
        Field (RAM, AnyAcc, NoLock, Preserve)
3514
        Field (RAM, AnyAcc, NoLock, Preserve)
3515
        {
3515
        {
3516
            SMDW,   32, //  32-bit DWORD
3516
            SMDW,   32, //  32-bit DWORD
3517
            SMWD,   16, //  16-bit WORD
3517
            SMWD,   16, //  16-bit WORD
3518
            SMBY,   8,  //  8-bit BYTE
3518
            SMBY,   8,  //  8-bit BYTE
3519
        }   //  Field(RAM)
3519
        }   //  Field(RAM)
3520
 
3520
 
3521
        Method (TEST)
3521
        Method (TEST)
3522
        {
3522
        {
3523
            Store ("++++++++ IncDecOp Test", Debug)
3523
            Store ("++++++++ IncDecOp Test", Debug)
3524
 
3524
 
3525
            Name (DWRD, 0x12345678)
3525
            Name (DWRD, 0x12345678)
3526
            Name (WRD, 0x1234)
3526
            Name (WRD, 0x1234)
3527
            Name (BYT, 0x12)
3527
            Name (BYT, 0x12)
3528
 
3528
 
3529
            //  Test IncrementOp with DWORD data
3529
            //  Test IncrementOp with DWORD data
3530
            Store (0x12345678, DWRD)
3530
            Store (0x12345678, DWRD)
3531
            Increment (DWRD)
3531
            Increment (DWRD)
3532
            If (LNotEqual (DWRD, 0x12345679))
3532
            If (LNotEqual (DWRD, 0x12345679))
3533
                {   Return (DWRD)   }
3533
                {   Return (DWRD)   }
3534
 
3534
 
3535
            //  Test IncrementOp with WORD data
3535
            //  Test IncrementOp with WORD data
3536
            Increment (WRD)
3536
            Increment (WRD)
3537
            If (LNotEqual (WRD, 0x1235))
3537
            If (LNotEqual (WRD, 0x1235))
3538
                {   Return (WRD)    }
3538
                {   Return (WRD)    }
3539
 
3539
 
3540
            //  Test IncrementOp with BYTE data
3540
            //  Test IncrementOp with BYTE data
3541
            Increment (BYT)
3541
            Increment (BYT)
3542
            If (LNotEqual (BYT, 0x13))
3542
            If (LNotEqual (BYT, 0x13))
3543
                {   Return (BYT)    }
3543
                {   Return (BYT)    }
3544
 
3544
 
3545
            //  Test DecrementOp with DWORD data
3545
            //  Test DecrementOp with DWORD data
3546
            Decrement (DWRD)
3546
            Decrement (DWRD)
3547
            If (LNotEqual (DWRD, 0x12345678))
3547
            If (LNotEqual (DWRD, 0x12345678))
3548
                {   Return (DWRD)   }
3548
                {   Return (DWRD)   }
3549
 
3549
 
3550
            //  Test DecrementOp with WORD data
3550
            //  Test DecrementOp with WORD data
3551
            Decrement (WRD)
3551
            Decrement (WRD)
3552
            If (LNotEqual (WRD, 0x1234))
3552
            If (LNotEqual (WRD, 0x1234))
3553
                {   Return (WRD)    }
3553
                {   Return (WRD)    }
3554
 
3554
 
3555
            //  Test DecrementOp with BYTE data
3555
            //  Test DecrementOp with BYTE data
3556
            Decrement (BYT)
3556
            Decrement (BYT)
3557
            If (LNotEqual (BYT, 0x12))
3557
            If (LNotEqual (BYT, 0x12))
3558
                {   Return (BYT)    }
3558
                {   Return (BYT)    }
3559
 
3559
 
3560
 
3560
 
3561
            //  test IncrementOp with DWORD SystemMemory OpRegion
3561
            //  test IncrementOp with DWORD SystemMemory OpRegion
3562
            Store (0x01234567, SMDW)
3562
            Store (0x01234567, SMDW)
3563
            Increment (SMDW)
3563
            Increment (SMDW)
3564
            If (LNotEqual (SMDW, 0x01234568))
3564
            If (LNotEqual (SMDW, 0x01234568))
3565
                {   Return (SMDW)   }
3565
                {   Return (SMDW)   }
3566
 
3566
 
3567
            //  test DecrementOp with DWORD SystemMemory OpRegion
3567
            //  test DecrementOp with DWORD SystemMemory OpRegion
3568
            Decrement (SMDW)
3568
            Decrement (SMDW)
3569
            If (LNotEqual (SMDW, 0x01234567))
3569
            If (LNotEqual (SMDW, 0x01234567))
3570
                {   Return (SMDW)   }
3570
                {   Return (SMDW)   }
3571
 
3571
 
3572
 
3572
 
3573
            //  test IncrementOp with WORD SystemMemory OpRegion
3573
            //  test IncrementOp with WORD SystemMemory OpRegion
3574
            Store (0x0123, SMWD)
3574
            Store (0x0123, SMWD)
3575
            Increment (SMWD)
3575
            Increment (SMWD)
3576
            If (LNotEqual (SMWD, 0x0124))
3576
            If (LNotEqual (SMWD, 0x0124))
3577
                {   Return (SMWD)   }
3577
                {   Return (SMWD)   }
3578
 
3578
 
3579
            //  test DecrementOp with WORD SystemMemory OpRegion
3579
            //  test DecrementOp with WORD SystemMemory OpRegion
3580
            Decrement (SMWD)
3580
            Decrement (SMWD)
3581
            If (LNotEqual (SMWD, 0x0123))
3581
            If (LNotEqual (SMWD, 0x0123))
3582
                {   Return (SMWD)   }
3582
                {   Return (SMWD)   }
3583
 
3583
 
3584
 
3584
 
3585
            //  test IncrementOp with BYTE SystemMemory OpRegion
3585
            //  test IncrementOp with BYTE SystemMemory OpRegion
3586
            Store (0x01, SMBY)
3586
            Store (0x01, SMBY)
3587
            Increment (SMBY)
3587
            Increment (SMBY)
3588
            If (LNotEqual (SMBY, 0x02))
3588
            If (LNotEqual (SMBY, 0x02))
3589
                {   Return (SMBY)   }
3589
                {   Return (SMBY)   }
3590
 
3590
 
3591
            //  test DecrementOp with BYTE SystemMemory OpRegion
3591
            //  test DecrementOp with BYTE SystemMemory OpRegion
3592
            Decrement (SMBY)
3592
            Decrement (SMBY)
3593
            If (LNotEqual (SMBY, 0x01))
3593
            If (LNotEqual (SMBY, 0x01))
3594
                {   Return (SMBY)   }
3594
                {   Return (SMBY)   }
3595
 
3595
 
3596
            Return (0)
3596
            Return (0)
3597
        }   //  TEST
3597
        }   //  TEST
3598
    }   //  INDC
3598
    }   //  INDC
3599
 
3599
 
3600
//
3600
//
3601
// test LOps.asl
3601
// test LOps.asl
3602
//
3602
//
3603
//This source tests all the logical operators. Logical operators in ASL are as follows.
3603
//This source tests all the logical operators. Logical operators in ASL are as follows.
3604
//LAnd, LEqual, LGreater, LLess, LNot, LNotEqual, LOr.
3604
//LAnd, LEqual, LGreater, LLess, LNot, LNotEqual, LOr.
3605
// Success will return 0 and failure will return a non zero number. Check the source code for
3605
// Success will return 0 and failure will return a non zero number. Check the source code for
3606
// non zero number to find where the test failed
3606
// non zero number to find where the test failed
3607
 
3607
 
3608
    Device (LOPS)
3608
    Device (LOPS)
3609
    {
3609
    {
3610
        //Create System Memory Operation Region and field overlays
3610
        //Create System Memory Operation Region and field overlays
3611
        OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3611
        OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3612
        Field (RAM, AnyAcc, NoLock, Preserve)
3612
        Field (RAM, AnyAcc, NoLock, Preserve)
3613
        {
3613
        {
3614
            SMDW,   32, //  32-bit DWORD
3614
            SMDW,   32, //  32-bit DWORD
3615
            SMWD,   16, //  16-bit WORD
3615
            SMWD,   16, //  16-bit WORD
3616
            SMBY,   8,  //  8-bit BYTE
3616
            SMBY,   8,  //  8-bit BYTE
3617
        }// Field(RAM)
3617
        }// Field(RAM)
3618
 
3618
 
3619
        //And with Byte Data
3619
        //And with Byte Data
3620
        Name (BYT1, 0xff)
3620
        Name (BYT1, 0xff)
3621
        Name (BYT2, 0xff)
3621
        Name (BYT2, 0xff)
3622
        Name (BRSL, 0x00)
3622
        Name (BRSL, 0x00)
3623
 
3623
 
3624
        //And with Word Data
3624
        //And with Word Data
3625
        Name (WRD1, 0xffff)
3625
        Name (WRD1, 0xffff)
3626
        Name (WRD2, 0xffff)
3626
        Name (WRD2, 0xffff)
3627
        Name (WRSL, 0x0000)
3627
        Name (WRSL, 0x0000)
3628
 
3628
 
3629
        //And with DWord Data
3629
        //And with DWord Data
3630
        Name (DWD1, 0xffffffff)
3630
        Name (DWD1, 0xffffffff)
3631
        Name (DWD2, 0xffffffff)
3631
        Name (DWD2, 0xffffffff)
3632
        Name (DRSL, 0x00000000)
3632
        Name (DRSL, 0x00000000)
3633
 
3633
 
3634
        Name(RSLT,1)
3634
        Name(RSLT,1)
3635
 
3635
 
3636
        Method (ANDL,2) // Test Logical And
3636
        Method (ANDL,2) // Test Logical And
3637
        {
3637
        {
3638
            //test with the arguments passed
3638
            //test with the arguments passed
3639
            if(LEqual(Arg0,Arg1))
3639
            if(LEqual(Arg0,Arg1))
3640
            { Store(LAnd(Arg0,Arg1),RSLT)
3640
            { Store(LAnd(Arg0,Arg1),RSLT)
3641
                if(LNotEqual(Ones,RSLT))
3641
                if(LNotEqual(Ones,RSLT))
3642
                {Return(11)}
3642
                {Return(11)}
3643
            }
3643
            }
3644
 
3644
 
3645
            //test with he locals
3645
            //test with he locals
3646
            Store(Arg0,Local0)
3646
            Store(Arg0,Local0)
3647
            Store(Arg1,Local1)
3647
            Store(Arg1,Local1)
3648
 
3648
 
3649
            if(LEqual(Local0,Local1))
3649
            if(LEqual(Local0,Local1))
3650
            {
3650
            {
3651
                Store(LAnd(Local0,Local1),RSLT)
3651
                Store(LAnd(Local0,Local1),RSLT)
3652
                if(LNotEqual(Ones,RSLT))
3652
                if(LNotEqual(Ones,RSLT))
3653
                    {Return(12)}
3653
                    {Return(12)}
3654
            }
3654
            }
3655
 
3655
 
3656
            //test with BYTE data
3656
            //test with BYTE data
3657
            if(LEqual(BYT1,BYT2))
3657
            if(LEqual(BYT1,BYT2))
3658
            { Store(LAnd(BYT1,BYT2),BRSL)
3658
            { Store(LAnd(BYT1,BYT2),BRSL)
3659
                if(LNotEqual(Ones,BRSL))
3659
                if(LNotEqual(Ones,BRSL))
3660
                {Return(13)}
3660
                {Return(13)}
3661
            }
3661
            }
3662
 
3662
 
3663
            //test with WORD data
3663
            //test with WORD data
3664
            if(LEqual(WRD1,WRD2))
3664
            if(LEqual(WRD1,WRD2))
3665
            { Store(LAnd(WRD1,WRD2),WRSL)
3665
            { Store(LAnd(WRD1,WRD2),WRSL)
3666
                if(LNotEqual(Ones,WRSL))
3666
                if(LNotEqual(Ones,WRSL))
3667
                {Return(14)}
3667
                {Return(14)}
3668
            }
3668
            }
3669
 
3669
 
3670
            //test with DWORD data
3670
            //test with DWORD data
3671
            if(LEqual(DWD1,DWD2))
3671
            if(LEqual(DWD1,DWD2))
3672
            { Store(LAnd(DWD1,DWD2),DRSL)
3672
            { Store(LAnd(DWD1,DWD2),DRSL)
3673
                if(LNotEqual(Ones,DRSL))
3673
                if(LNotEqual(Ones,DRSL))
3674
                {Return(15)}
3674
                {Return(15)}
3675
            }
3675
            }
3676
 
3676
 
3677
            //Test for system memory data for each test case.
3677
            //Test for system memory data for each test case.
3678
 
3678
 
3679
                Store(0xff,BYT1)
3679
                Store(0xff,BYT1)
3680
                Store(0xff,SMBY)
3680
                Store(0xff,SMBY)
3681
                Store(0x00,BRSL)
3681
                Store(0x00,BRSL)
3682
 
3682
 
3683
            //test with BYTE system memory data
3683
            //test with BYTE system memory data
3684
            if(LEqual(BYT1,SMBY))
3684
            if(LEqual(BYT1,SMBY))
3685
            { Store(LAnd(BYT1,SMBY),BRSL)
3685
            { Store(LAnd(BYT1,SMBY),BRSL)
3686
                if(LNotEqual(Ones,BRSL))
3686
                if(LNotEqual(Ones,BRSL))
3687
                {Return(16)}
3687
                {Return(16)}
3688
            }
3688
            }
3689
 
3689
 
3690
            Store (0xffff,WRD1)
3690
            Store (0xffff,WRD1)
3691
            Store(0xffff,SMWD)
3691
            Store(0xffff,SMWD)
3692
            Store(0x0000,WRSL)
3692
            Store(0x0000,WRSL)
3693
            //test with WORD system memory data
3693
            //test with WORD system memory data
3694
            if(LEqual(WRD1,SMWD))
3694
            if(LEqual(WRD1,SMWD))
3695
            { Store(LAnd(WRD1,SMWD),WRSL)
3695
            { Store(LAnd(WRD1,SMWD),WRSL)
3696
                if(LNotEqual(Ones,WRSL))
3696
                if(LNotEqual(Ones,WRSL))
3697
                {Return(17)}
3697
                {Return(17)}
3698
            }
3698
            }
3699
 
3699
 
3700
            Store(0x000000,DRSL)
3700
            Store(0x000000,DRSL)
3701
            Store (0xffffff,DWD1)
3701
            Store (0xffffff,DWD1)
3702
            Store(0xffffff,SMDW)
3702
            Store(0xffffff,SMDW)
3703
 
3703
 
3704
            //test with DWORD system memory data
3704
            //test with DWORD system memory data
3705
            if(LEqual(DWD1,SMDW))
3705
            if(LEqual(DWD1,SMDW))
3706
            { Store(LAnd(DWD1,SMDW),DRSL)
3706
            { Store(LAnd(DWD1,SMDW),DRSL)
3707
                if(LNotEqual(Ones,DRSL))
3707
                if(LNotEqual(Ones,DRSL))
3708
                {Return(18)}
3708
                {Return(18)}
3709
            }
3709
            }
3710
 
3710
 
3711
            Return(0)
3711
            Return(0)
3712
 
3712
 
3713
        }//ANDL
3713
        }//ANDL
3714
 
3714
 
3715
        //Test the LOr Operator
3715
        //Test the LOr Operator
3716
 
3716
 
3717
        Method (ORL_,2)
3717
        Method (ORL_,2)
3718
        {//ORL_
3718
        {//ORL_
3719
 
3719
 
3720
            //test with the arguments passed
3720
            //test with the arguments passed
3721
            if(LEqual(Arg0,Arg1))
3721
            if(LEqual(Arg0,Arg1))
3722
            {
3722
            {
3723
                Store(LOr(Arg0,Arg1),RSLT)
3723
                Store(LOr(Arg0,Arg1),RSLT)
3724
                if(LNotEqual(Ones,RSLT))
3724
                if(LNotEqual(Ones,RSLT))
3725
                {
3725
                {
3726
                    Return(21)
3726
                    Return(21)
3727
                }
3727
                }
3728
            }
3728
            }
3729
 
3729
 
3730
            //test with he locals
3730
            //test with he locals
3731
            Store(Arg0,Local0)
3731
            Store(Arg0,Local0)
3732
            Store(Arg1,Local1)
3732
            Store(Arg1,Local1)
3733
 
3733
 
3734
            if(LEqual(Local0,Local1))
3734
            if(LEqual(Local0,Local1))
3735
            {
3735
            {
3736
                Store(LOr(Local0,Local1),RSLT)
3736
                Store(LOr(Local0,Local1),RSLT)
3737
                if(LNotEqual(Ones,RSLT))
3737
                if(LNotEqual(Ones,RSLT))
3738
                    {Return(22)}
3738
                    {Return(22)}
3739
            }
3739
            }
3740
 
3740
 
3741
            //Check with 1 LOred with 0 on byte data
3741
            //Check with 1 LOred with 0 on byte data
3742
            Store(0xff,BYT1)
3742
            Store(0xff,BYT1)
3743
            Store(0x00,BYT2)
3743
            Store(0x00,BYT2)
3744
            Store(0x00,BRSL)
3744
            Store(0x00,BRSL)
3745
 
3745
 
3746
            if(LNotEqual(BYT1, BYT2))
3746
            if(LNotEqual(BYT1, BYT2))
3747
            {
3747
            {
3748
                Store(LOr(BYT1, BYT2), BRSL)
3748
                Store(LOr(BYT1, BYT2), BRSL)
3749
                if(LNotEqual(Ones,BRSL))
3749
                if(LNotEqual(Ones,BRSL))
3750
                {Return(23)}
3750
                {Return(23)}
3751
            }
3751
            }
3752
 
3752
 
3753
            //Check with 1 LOred with 0 on WORD data
3753
            //Check with 1 LOred with 0 on WORD data
3754
            Store(0xffff,WRD1)
3754
            Store(0xffff,WRD1)
3755
            Store(0x0000,WRD2)
3755
            Store(0x0000,WRD2)
3756
            Store(0x0000,WRSL)
3756
            Store(0x0000,WRSL)
3757
 
3757
 
3758
            if(LNotEqual(WRD1, WRD2))
3758
            if(LNotEqual(WRD1, WRD2))
3759
            {
3759
            {
3760
                Store(LOr(WRD1, WRD2), WRSL)
3760
                Store(LOr(WRD1, WRD2), WRSL)
3761
                if(LNotEqual(Ones,WRSL))
3761
                if(LNotEqual(Ones,WRSL))
3762
                {Return(24)}
3762
                {Return(24)}
3763
            }
3763
            }
3764
 
3764
 
3765
            //Check with 1 LOred with 0 on DWORD data
3765
            //Check with 1 LOred with 0 on DWORD data
3766
            Store(0xffffffff,DWD1)
3766
            Store(0xffffffff,DWD1)
3767
            Store(0x00000000,DWD2)
3767
            Store(0x00000000,DWD2)
3768
            Store(0x00000000,DRSL)
3768
            Store(0x00000000,DRSL)
3769
 
3769
 
3770
            if(LNotEqual(DWD1, DWD2))
3770
            if(LNotEqual(DWD1, DWD2))
3771
            {
3771
            {
3772
                Store(LOr(DWD1, DWD2), DRSL)
3772
                Store(LOr(DWD1, DWD2), DRSL)
3773
                if(LNotEqual(Ones,DRSL))
3773
                if(LNotEqual(Ones,DRSL))
3774
                {Return(25)}
3774
                {Return(25)}
3775
            }
3775
            }
3776
 
3776
 
3777
            Store(0x00,BYT1)
3777
            Store(0x00,BYT1)
3778
            Store(0xff,SMBY)
3778
            Store(0xff,SMBY)
3779
            Store(0x00,BRSL)
3779
            Store(0x00,BRSL)
3780
 
3780
 
3781
            //test with BYTE system memory data
3781
            //test with BYTE system memory data
3782
            if(LEqual(BYT1,SMBY))
3782
            if(LEqual(BYT1,SMBY))
3783
            { Store(LOr(BYT1,SMBY),BRSL)
3783
            { Store(LOr(BYT1,SMBY),BRSL)
3784
                if(LNotEqual(Ones,BRSL))
3784
                if(LNotEqual(Ones,BRSL))
3785
                {Return(26)}
3785
                {Return(26)}
3786
            }
3786
            }
3787
 
3787
 
3788
            Store (0x0000,WRD1)
3788
            Store (0x0000,WRD1)
3789
            Store(0xffff,SMWD)
3789
            Store(0xffff,SMWD)
3790
            Store(0x0000,WRSL)
3790
            Store(0x0000,WRSL)
3791
 
3791
 
3792
            //test with WORD system memory data
3792
            //test with WORD system memory data
3793
            if(LEqual(WRD1,SMWD))
3793
            if(LEqual(WRD1,SMWD))
3794
            { Store(LOr(WRD1,SMWD),WRSL)
3794
            { Store(LOr(WRD1,SMWD),WRSL)
3795
                if(LNotEqual(Ones,WRSL))
3795
                if(LNotEqual(Ones,WRSL))
3796
                {Return(27)}
3796
                {Return(27)}
3797
            }
3797
            }
3798
 
3798
 
3799
 
3799
 
3800
            Store(0x00000000,DWD1)
3800
            Store(0x00000000,DWD1)
3801
            Store(0xffffffff,SMDW)
3801
            Store(0xffffffff,SMDW)
3802
            Store(0x00000000,DRSL)
3802
            Store(0x00000000,DRSL)
3803
 
3803
 
3804
            //test with DWORD system memory data
3804
            //test with DWORD system memory data
3805
            if(LEqual(DWD1,SMDW))
3805
            if(LEqual(DWD1,SMDW))
3806
            { Store(LAnd(DWD1,SMDW),DRSL)
3806
            { Store(LAnd(DWD1,SMDW),DRSL)
3807
                if(LNotEqual(Ones,DRSL))
3807
                if(LNotEqual(Ones,DRSL))
3808
                {Return(28)}
3808
                {Return(28)}
3809
            }
3809
            }
3810
            Return(0)
3810
            Return(0)
3811
 
3811
 
3812
        }//ORL_
3812
        }//ORL_
3813
 
3813
 
3814
        //This method tests LGreater and LNot operator
3814
        //This method tests LGreater and LNot operator
3815
        Method(LSGR,2)
3815
        Method(LSGR,2)
3816
        {//LSGR
3816
        {//LSGR
3817
 
3817
 
3818
            //Test on arguements passed
3818
            //Test on arguements passed
3819
 
3819
 
3820
            //in test data, Arg1 > Arg0
3820
            //in test data, Arg1 > Arg0
3821
            if(LEqual(Ones,LNot(LGreater(Arg1,Arg0))))
3821
            if(LEqual(Ones,LNot(LGreater(Arg1,Arg0))))
3822
            {Return(31)}
3822
            {Return(31)}
3823
 
3823
 
3824
            //test LLessEqual
3824
            //test LLessEqual
3825
            if(LEqual(Ones,LNot(LGreaterEqual(Arg1,Arg0))))
3825
            if(LEqual(Ones,LNot(LGreaterEqual(Arg1,Arg0))))
3826
            {Return(32)}
3826
            {Return(32)}
3827
 
3827
 
3828
            if(LEqual(Ones,LLess(Arg1,Arg0)))
3828
            if(LEqual(Ones,LLess(Arg1,Arg0)))
3829
            {Return(33)}
3829
            {Return(33)}
3830
 
3830
 
3831
            //test LLessEqual
3831
            //test LLessEqual
3832
            if(LEqual(Ones,LLessEqual(Arg1,Arg0)))
3832
            if(LEqual(Ones,LLessEqual(Arg1,Arg0)))
3833
            {Return(34)}
3833
            {Return(34)}
3834
 
3834
 
3835
            Store(Arg0,Local0)
3835
            Store(Arg0,Local0)
3836
            Store(Arg1,Local1)
3836
            Store(Arg1,Local1)
3837
 
3837
 
3838
            //test with the locals
3838
            //test with the locals
3839
            if(LNot(LGreater(Local1,Local0)))
3839
            if(LNot(LGreater(Local1,Local0)))
3840
                {Return(35)}
3840
                {Return(35)}
3841
 
3841
 
3842
            //test on Byte data
3842
            //test on Byte data
3843
            Store(0x12,BYT1)
3843
            Store(0x12,BYT1)
3844
            Store(0x21,BYT2)
3844
            Store(0x21,BYT2)
3845
 
3845
 
3846
            if(LNot(LGreater(BYT2,BYT1)))
3846
            if(LNot(LGreater(BYT2,BYT1)))
3847
                {Return(36)}
3847
                {Return(36)}
3848
 
3848
 
3849
            if(LNot(LLess(BYT1,BYT2)))
3849
            if(LNot(LLess(BYT1,BYT2)))
3850
                {Return(37)}
3850
                {Return(37)}
3851
 
3851
 
3852
            //test LGreaterEqual with byte data
3852
            //test LGreaterEqual with byte data
3853
            if(LNot(LGreaterEqual(BYT2,BYT1)))
3853
            if(LNot(LGreaterEqual(BYT2,BYT1)))
3854
                {Return(38)}
3854
                {Return(38)}
3855
 
3855
 
3856
            //test LLessEqual byte data
3856
            //test LLessEqual byte data
3857
            if(LNot(LLessEqual(BYT1,BYT2)))
3857
            if(LNot(LLessEqual(BYT1,BYT2)))
3858
                {Return(39)}
3858
                {Return(39)}
3859
 
3859
 
3860
 
3860
 
3861
            //test on Word data
3861
            //test on Word data
3862
            Store(0x1212,WRD1)
3862
            Store(0x1212,WRD1)
3863
            Store(0x2121,WRD2)
3863
            Store(0x2121,WRD2)
3864
 
3864
 
3865
            if(LNot(LGreater(WRD2,WRD1)))
3865
            if(LNot(LGreater(WRD2,WRD1)))
3866
                {Return(310)}
3866
                {Return(310)}
3867
 
3867
 
3868
            if(LNot(LLess(WRD1,WRD2)))
3868
            if(LNot(LLess(WRD1,WRD2)))
3869
                {Return(311)}
3869
                {Return(311)}
3870
 
3870
 
3871
            //Test LGreaterEqual with Word Data
3871
            //Test LGreaterEqual with Word Data
3872
            if(LNot(LGreaterEqual(WRD2,WRD1)))
3872
            if(LNot(LGreaterEqual(WRD2,WRD1)))
3873
                {Return(312)}
3873
                {Return(312)}
3874
 
3874
 
3875
 
3875
 
3876
            //Test LLessEqual with Word Data
3876
            //Test LLessEqual with Word Data
3877
            if(LNot(LLessEqual(WRD1,WRD2)))
3877
            if(LNot(LLessEqual(WRD1,WRD2)))
3878
                {Return(313)}
3878
                {Return(313)}
3879
 
3879
 
3880
            //test on DWord data
3880
            //test on DWord data
3881
            Store(0x12121212,DWD1)
3881
            Store(0x12121212,DWD1)
3882
            Store(0x21212121,DWD2)
3882
            Store(0x21212121,DWD2)
3883
 
3883
 
3884
            if(LNot(LGreater(DWD2,DWD1)))
3884
            if(LNot(LGreater(DWD2,DWD1)))
3885
                {Return(314)}
3885
                {Return(314)}
3886
 
3886
 
3887
            if(LNot(LLess(DWD1,DWD2)))
3887
            if(LNot(LLess(DWD1,DWD2)))
3888
                {Return(315)}
3888
                {Return(315)}
3889
 
3889
 
3890
 
3890
 
3891
            //Test LGreaterEqual with Dword
3891
            //Test LGreaterEqual with Dword
3892
            if(LNot(LGreaterEqual(DWD2,DWD1)))
3892
            if(LNot(LGreaterEqual(DWD2,DWD1)))
3893
                {Return(316)}
3893
                {Return(316)}
3894
 
3894
 
3895
            //Test LLessEqual DWord
3895
            //Test LLessEqual DWord
3896
            if(LNot(LLessEqual(DWD1,DWD2)))
3896
            if(LNot(LLessEqual(DWD1,DWD2)))
3897
                {Return(317)}
3897
                {Return(317)}
3898
 
3898
 
3899
            Return(0)
3899
            Return(0)
3900
        }//LSGR
3900
        }//LSGR
3901
 
3901
 
3902
        //The test method
3902
        //The test method
3903
        Method(TEST)
3903
        Method(TEST)
3904
        {
3904
        {
3905
            Store ("++++++++ LOps Test", Debug)
3905
            Store ("++++++++ LOps Test", Debug)
3906
 
3906
 
3907
            Store(0,RSLT)
3907
            Store(0,RSLT)
3908
            //Call LAndOp method
3908
            //Call LAndOp method
3909
            Store(ANDL(2,2),RSLT)
3909
            Store(ANDL(2,2),RSLT)
3910
            if(LNotEqual(RSLT,0))
3910
            if(LNotEqual(RSLT,0))
3911
             {Return(RSLT)}
3911
             {Return(RSLT)}
3912
 
3912
 
3913
            //Call LOrOp Method
3913
            //Call LOrOp Method
3914
            Store(ORL_(5,5),RSLT)
3914
            Store(ORL_(5,5),RSLT)
3915
            if(LNotEqual(RSLT,0))
3915
            if(LNotEqual(RSLT,0))
3916
            {Return(RSLT)}
3916
            {Return(RSLT)}
3917
 
3917
 
3918
            //Call LSGR Method
3918
            //Call LSGR Method
3919
            Store(LSGR(5,7),RSLT)
3919
            Store(LSGR(5,7),RSLT)
3920
            if(LNotEqual(RSLT,0))
3920
            if(LNotEqual(RSLT,0))
3921
            {Return(RSLT)}
3921
            {Return(RSLT)}
3922
 
3922
 
3923
            Return(0)
3923
            Return(0)
3924
        }//TEST
3924
        }//TEST
3925
    }//LOPS
3925
    }//LOPS
3926
 
3926
 
3927
//
3927
//
3928
// test FdSetOps.asl
3928
// test FdSetOps.asl
3929
//
3929
//
3930
//  FindSetLeftBit - Find Set Left Bit
3930
//  FindSetLeftBit - Find Set Left Bit
3931
//  FindSetLeftBitTerm  := FindSetLeftBit
3931
//  FindSetLeftBitTerm  := FindSetLeftBit
3932
//  (   Source, //TermArg=>Integer
3932
//  (   Source, //TermArg=>Integer
3933
//      Result  //Nothing | SuperName
3933
//      Result  //Nothing | SuperName
3934
//  ) => Integer
3934
//  ) => Integer
3935
//  Source is evaluated as integer data type, and the one-based bit location of
3935
//  Source is evaluated as integer data type, and the one-based bit location of
3936
//  the first MSb (most significant set bit) is optionally stored into Result.
3936
//  the first MSb (most significant set bit) is optionally stored into Result.
3937
//  The result of 0 means no bit was set, 1 means the left-most bit set is the
3937
//  The result of 0 means no bit was set, 1 means the left-most bit set is the
3938
//  first bit, 2 means the left-most bit set is the second bit, and so on.
3938
//  first bit, 2 means the left-most bit set is the second bit, and so on.
3939
//  FindSetRightBit - Find Set Right Bit
3939
//  FindSetRightBit - Find Set Right Bit
3940
 
3940
 
3941
//  FindSetRightBitTerm := FindSetRightBit
3941
//  FindSetRightBitTerm := FindSetRightBit
3942
//  (   Source, //TermArg=>Integer
3942
//  (   Source, //TermArg=>Integer
3943
//      Result  //Nothing | SuperName
3943
//      Result  //Nothing | SuperName
3944
//  ) => Integer
3944
//  ) => Integer
3945
//  Source is evaluated as integer data type, and the one-based bit location of
3945
//  Source is evaluated as integer data type, and the one-based bit location of
3946
//  the most LSb (least significant set bit) is optionally stored in Result.
3946
//  the most LSb (least significant set bit) is optionally stored in Result.
3947
//  The result of 0 means no bit was set, 32 means the first bit set is the
3947
//  The result of 0 means no bit was set, 32 means the first bit set is the
3948
//  32nd bit, 31 means the first bit set is the 31st bit, and so on.
3948
//  32nd bit, 31 means the first bit set is the 31st bit, and so on.
3949
 
3949
 
3950
//  If the Control method is success Zero is returned. Otherwise a non-zero
3950
//  If the Control method is success Zero is returned. Otherwise a non-zero
3951
//  number is returned.
3951
//  number is returned.
3952
//
3952
//
3953
    Device (FDSO)
3953
    Device (FDSO)
3954
    {   //  FDSO
3954
    {   //  FDSO
3955
 
3955
 
3956
        //  Create System Memory Operation Region and field overlays
3956
        //  Create System Memory Operation Region and field overlays
3957
        OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3957
        OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
3958
        Field (RAM, AnyAcc, NoLock, Preserve)
3958
        Field (RAM, AnyAcc, NoLock, Preserve)
3959
        {
3959
        {
3960
            SMDW,   32, //  32-bit DWORD
3960
            SMDW,   32, //  32-bit DWORD
3961
            SMWD,   16, //  16-bit WORD
3961
            SMWD,   16, //  16-bit WORD
3962
            SMBY,   8,      //  8-bit BYTE
3962
            SMBY,   8,      //  8-bit BYTE
3963
        }   //  Field(RAM)
3963
        }   //  Field(RAM)
3964
 
3964
 
3965
        //  Byte Data
3965
        //  Byte Data
3966
        Name (BYT1, 1)
3966
        Name (BYT1, 1)
3967
        Name (BRSL, 0x00)
3967
        Name (BRSL, 0x00)
3968
 
3968
 
3969
        //  Word Data
3969
        //  Word Data
3970
        Name (WRD1, 0x100)
3970
        Name (WRD1, 0x100)
3971
        Name (WRSL, 0x0000)
3971
        Name (WRSL, 0x0000)
3972
 
3972
 
3973
        //  DWord Data
3973
        //  DWord Data
3974
        Name (DWD1, 0x10000)
3974
        Name (DWD1, 0x10000)
3975
        Name (DRSL, 0x00000000)
3975
        Name (DRSL, 0x00000000)
3976
        Name (RSLT, 1)
3976
        Name (RSLT, 1)
3977
        Name (CNTR, 1)
3977
        Name (CNTR, 1)
3978
 
3978
 
3979
        Method (SHFT,2)
3979
        Method (SHFT,2)
3980
        //  Arg0 is the actual data and Arg1 is the bit position
3980
        //  Arg0 is the actual data and Arg1 is the bit position
3981
        {   //  SHFT
3981
        {   //  SHFT
3982
            Store (Arg0, Local0)
3982
            Store (Arg0, Local0)
3983
            Store (Arg1, Local1)
3983
            Store (Arg1, Local1)
3984
 
3984
 
3985
            FindSetLeftBit (Arg0, BRSL)
3985
            FindSetLeftBit (Arg0, BRSL)
3986
            If (LNotEqual (BRSL, Arg1))
3986
            If (LNotEqual (BRSL, Arg1))
3987
                {   Return (0x11)   }
3987
                {   Return (0x11)   }
3988
            If (LNotEqual (Arg0, Local0))
3988
            If (LNotEqual (Arg0, Local0))
3989
                {   Return (0x12)   }
3989
                {   Return (0x12)   }
3990
 
3990
 
3991
            FindSetLeftBit (Local0, BRSL)
3991
            FindSetLeftBit (Local0, BRSL)
3992
            If (LNotEqual (BRSL, Local1))
3992
            If (LNotEqual (BRSL, Local1))
3993
                {   Return (0x13)   }
3993
                {   Return (0x13)   }
3994
            If (LNotEqual (Arg0, Local0))
3994
            If (LNotEqual (Arg0, Local0))
3995
                {   Return (0x14)   }
3995
                {   Return (0x14)   }
3996
 
3996
 
3997
            //  test the byte value for SetLeftBit
3997
            //  test the byte value for SetLeftBit
3998
            Store (7, BYT1)
3998
            Store (7, BYT1)
3999
            FindSetLeftBit (BYT1, BRSL)
3999
            FindSetLeftBit (BYT1, BRSL)
4000
            If (LNotEqual (BRSL, 3))
4000
            If (LNotEqual (BRSL, 3))
4001
                {   Return (0x15)   }
4001
                {   Return (0x15)   }
4002
            If (LNotEqual (BYT1, 7))
4002
            If (LNotEqual (BYT1, 7))
4003
                {   Return (0x16)   }
4003
                {   Return (0x16)   }
4004
 
4004
 
4005
            Store (1, BYT1)
4005
            Store (1, BYT1)
4006
            Store (1, CNTR)
4006
            Store (1, CNTR)
4007
            While (LLessEqual (CNTR, 8))
4007
            While (LLessEqual (CNTR, 8))
4008
            {   //  FindSetLeftBit check loop for byte data
4008
            {   //  FindSetLeftBit check loop for byte data
4009
                FindSetLeftBit (BYT1, BRSL)
4009
                FindSetLeftBit (BYT1, BRSL)
4010
                If (LNotEqual (BRSL, CNTR))
4010
                If (LNotEqual (BRSL, CNTR))
4011
                    {   Return (0x17)   }
4011
                    {   Return (0x17)   }
4012
 
4012
 
4013
                //  Shift the bits to check the same
4013
                //  Shift the bits to check the same
4014
                ShiftLeft (BYT1, 1, BYT1)
4014
                ShiftLeft (BYT1, 1, BYT1)
4015
                Increment (CNTR)
4015
                Increment (CNTR)
4016
            }   //  FindSetLeftBit check loop for byte data
4016
            }   //  FindSetLeftBit check loop for byte data
4017
 
4017
 
4018
 
4018
 
4019
            //  Check BYTE value for SetRightBit
4019
            //  Check BYTE value for SetRightBit
4020
            Store (7, BYT1)
4020
            Store (7, BYT1)
4021
            FindSetRightBit (BYT1, BRSL)
4021
            FindSetRightBit (BYT1, BRSL)
4022
            If (LNotEqual (BRSL, 1))
4022
            If (LNotEqual (BRSL, 1))
4023
                {   Return (0x21)   }
4023
                {   Return (0x21)   }
4024
            If (LNotEqual (BYT1, 7))
4024
            If (LNotEqual (BYT1, 7))
4025
                {   Return (0x22)   }
4025
                {   Return (0x22)   }
4026
 
4026
 
4027
            Store (1, CNTR)
4027
            Store (1, CNTR)
4028
            Store (0xFF, BYT1)
4028
            Store (0xFF, BYT1)
4029
            While (LLessEqual (CNTR, 8))
4029
            While (LLessEqual (CNTR, 8))
4030
            {   //  FindSetRightBit check loop for byte data
4030
            {   //  FindSetRightBit check loop for byte data
4031
                FindSetRightBit (BYT1, BRSL)
4031
                FindSetRightBit (BYT1, BRSL)
4032
                If (LNotEqual (BRSL, CNTR))
4032
                If (LNotEqual (BRSL, CNTR))
4033
                    {   Return (0x23)   }
4033
                    {   Return (0x23)   }
4034
 
4034
 
4035
                ShiftLeft (BYT1, 1, BYT1)
4035
                ShiftLeft (BYT1, 1, BYT1)
4036
                Increment (CNTR)
4036
                Increment (CNTR)
4037
            }   //  FindSetRightBit check loop for byte data
4037
            }   //  FindSetRightBit check loop for byte data
4038
 
4038
 
4039
 
4039
 
4040
            //  Test Word value for SetLeftBit
4040
            //  Test Word value for SetLeftBit
4041
            Store (9, CNTR)
4041
            Store (9, CNTR)
4042
            Store (0x100, WRD1)
4042
            Store (0x100, WRD1)
4043
            While (LLessEqual (CNTR, 16))
4043
            While (LLessEqual (CNTR, 16))
4044
            {
4044
            {
4045
                //  FindSetLeftBit check loop for Word data
4045
                //  FindSetLeftBit check loop for Word data
4046
                FindSetLeftBit (WRD1, WRSL)
4046
                FindSetLeftBit (WRD1, WRSL)
4047
                If (LNotEqual (WRSL, CNTR))
4047
                If (LNotEqual (WRSL, CNTR))
4048
                    {   Return (0x31)   }
4048
                    {   Return (0x31)   }
4049
 
4049
 
4050
                //  Shift the bits to check the same
4050
                //  Shift the bits to check the same
4051
                ShiftLeft (WRD1, 1, WRD1)
4051
                ShiftLeft (WRD1, 1, WRD1)
4052
                Increment (CNTR)
4052
                Increment (CNTR)
4053
            }   //  FindSetLeftBit check loop for Word data
4053
            }   //  FindSetLeftBit check loop for Word data
4054
 
4054
 
4055
            //  Check Word value for SetRightBit
4055
            //  Check Word value for SetRightBit
4056
            Store (9, CNTR)
4056
            Store (9, CNTR)
4057
            Store (0xFF00, WRD1)
4057
            Store (0xFF00, WRD1)
4058
            While (LLessEqual (CNTR, 16))
4058
            While (LLessEqual (CNTR, 16))
4059
            {
4059
            {
4060
                //  FindSetRightBit check loop for Word data
4060
                //  FindSetRightBit check loop for Word data
4061
                FindSetRightBit (WRD1, WRSL)
4061
                FindSetRightBit (WRD1, WRSL)
4062
                If (LNotEqual (WRSL, CNTR))
4062
                If (LNotEqual (WRSL, CNTR))
4063
                    {   Return (0x32)   }
4063
                    {   Return (0x32)   }
4064
 
4064
 
4065
                ShiftLeft (WRD1, 1, WRD1)
4065
                ShiftLeft (WRD1, 1, WRD1)
4066
                Increment (CNTR)
4066
                Increment (CNTR)
4067
            }   //  FindSetRightBit check loop for Word data
4067
            }   //  FindSetRightBit check loop for Word data
4068
 
4068
 
4069
            //  Test the DWord value for SetLeftBit
4069
            //  Test the DWord value for SetLeftBit
4070
            Store (17, CNTR)
4070
            Store (17, CNTR)
4071
            Store (0x10000, DWD1)
4071
            Store (0x10000, DWD1)
4072
            While (LLessEqual (CNTR, 32))
4072
            While (LLessEqual (CNTR, 32))
4073
            {
4073
            {
4074
                //  FindSetLeftBit check loop for Dword
4074
                //  FindSetLeftBit check loop for Dword
4075
                FindSetLeftBit (DWD1, DRSL)
4075
                FindSetLeftBit (DWD1, DRSL)
4076
                If (LNotEqual (DRSL, CNTR))
4076
                If (LNotEqual (DRSL, CNTR))
4077
                    {   Return (0x41)   }
4077
                    {   Return (0x41)   }
4078
 
4078
 
4079
                //  Shift the bits to check the same
4079
                //  Shift the bits to check the same
4080
                ShiftLeft (DWD1, 1, DWD1)
4080
                ShiftLeft (DWD1, 1, DWD1)
4081
                Increment (CNTR)
4081
                Increment (CNTR)
4082
            }   //  FindSetLeftBit check loop for Dword
4082
            }   //  FindSetLeftBit check loop for Dword
4083
 
4083
 
4084
            //  Check DWord value for SetRightBit
4084
            //  Check DWord value for SetRightBit
4085
            Store (17, CNTR)
4085
            Store (17, CNTR)
4086
            Store (0xFFFF0000, DWD1)
4086
            Store (0xFFFF0000, DWD1)
4087
            While (LLessEqual (CNTR, 32))
4087
            While (LLessEqual (CNTR, 32))
4088
            {   //  FindSetRightBit Check loop for DWORD
4088
            {   //  FindSetRightBit Check loop for DWORD
4089
                FindSetRightBit (DWD1, DRSL)
4089
                FindSetRightBit (DWD1, DRSL)
4090
                If (LNotEqual (DRSL, CNTR))
4090
                If (LNotEqual (DRSL, CNTR))
4091
                    {   Return (0x42)   }
4091
                    {   Return (0x42)   }
4092
 
4092
 
4093
                ShiftLeft (DWD1, 1, DWD1)
4093
                ShiftLeft (DWD1, 1, DWD1)
4094
                Increment (CNTR)
4094
                Increment (CNTR)
4095
            }   //  FindSetRightBit Check loop for DWORD
4095
            }   //  FindSetRightBit Check loop for DWORD
4096
 
4096
 
4097
            Return (0)
4097
            Return (0)
4098
        }   //  SHFT
4098
        }   //  SHFT
4099
 
4099
 
4100
        //  Test method called from amlexec
4100
        //  Test method called from amlexec
4101
        Method (TEST)
4101
        Method (TEST)
4102
        {   //  TEST
4102
        {   //  TEST
4103
 
4103
 
4104
            Store ("++++++++ FdSetOps Test", Debug)
4104
            Store ("++++++++ FdSetOps Test", Debug)
4105
 
4105
 
4106
            Store (SHFT (0x80, 8), RSLT)
4106
            Store (SHFT (0x80, 8), RSLT)
4107
            If (LNotEqual (RSLT, 0))
4107
            If (LNotEqual (RSLT, 0))
4108
                {   Return (RSLT)   }
4108
                {   Return (RSLT)   }
4109
 
4109
 
4110
            Return (0)  //  pass
4110
            Return (0)  //  pass
4111
        }   //  TEST
4111
        }   //  TEST
4112
    }   //  Device FDSO
4112
    }   //  Device FDSO
4113
 
4113
 
4114
//
4114
//
4115
// test MulDivOp.asl
4115
// test MulDivOp.asl
4116
//
4116
//
4117
    Device (MLDV)
4117
    Device (MLDV)
4118
    {
4118
    {
4119
        //  create System Memory Operation Region and field overlays
4119
        //  create System Memory Operation Region and field overlays
4120
        OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
4120
        OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
4121
        Field (RAM, AnyAcc, NoLock, Preserve)
4121
        Field (RAM, AnyAcc, NoLock, Preserve)
4122
        {
4122
        {
4123
            SMDW,   32, //  32-bit DWORD
4123
            SMDW,   32, //  32-bit DWORD
4124
            SMWD,   16, //  16-bit WORD
4124
            SMWD,   16, //  16-bit WORD
4125
            SMBY,   8,  //  8-bit BYTE
4125
            SMBY,   8,  //  8-bit BYTE
4126
        }   //  Field(RAM)
4126
        }   //  Field(RAM)
4127
 
4127
 
4128
        Method (TEST)
4128
        Method (TEST)
4129
        {
4129
        {
4130
            Store ("++++++++ MulDivOp Test", Debug)
4130
            Store ("++++++++ MulDivOp Test", Debug)
4131
 
4131
 
4132
            Name (RMDR, 0)
4132
            Name (RMDR, 0)
4133
            Name (DWRD, 0x12345678)
4133
            Name (DWRD, 0x12345678)
4134
            Name (WRD, 0x1234)
4134
            Name (WRD, 0x1234)
4135
            Name (BYT, 0x12)
4135
            Name (BYT, 0x12)
4136
 
4136
 
4137
            //  Test MultiplyOp with DWORD data
4137
            //  Test MultiplyOp with DWORD data
4138
            Store (0x12345678, DWRD)
4138
            Store (0x12345678, DWRD)
4139
            Multiply (DWRD, 3, DWRD)
4139
            Multiply (DWRD, 3, DWRD)
4140
            If (LNotEqual (DWRD, 0x369D0368))
4140
            If (LNotEqual (DWRD, 0x369D0368))
4141
                {   Return (DWRD)   }
4141
                {   Return (DWRD)   }
4142
 
4142
 
4143
            //  Test MultiplyOp with WORD data
4143
            //  Test MultiplyOp with WORD data
4144
            Multiply (WRD, 4, WRD)
4144
            Multiply (WRD, 4, WRD)
4145
            If (LNotEqual (WRD, 0x48D0))
4145
            If (LNotEqual (WRD, 0x48D0))
4146
                {   Return (WRD)    }
4146
                {   Return (WRD)    }
4147
 
4147
 
4148
            //  Test MultiplyOp with BYTE data
4148
            //  Test MultiplyOp with BYTE data
4149
            Multiply (BYT, 5, BYT)
4149
            Multiply (BYT, 5, BYT)
4150
            If (LNotEqual (BYT, 0x5A))
4150
            If (LNotEqual (BYT, 0x5A))
4151
                {   Return (BYT)    }
4151
                {   Return (BYT)    }
4152
 
4152
 
4153
            //  Test DivideOp with DWORD data
4153
            //  Test DivideOp with DWORD data
4154
            Divide (DWRD, 3, DWRD, RMDR)
4154
            Divide (DWRD, 3, DWRD, RMDR)
4155
            If (LNotEqual (DWRD, 0x12345678))
4155
            If (LNotEqual (DWRD, 0x12345678))
4156
                {   Return (DWRD)   }
4156
                {   Return (DWRD)   }
4157
            If (LNotEqual (RMDR, 0))
4157
            If (LNotEqual (RMDR, 0))
4158
                {   Return (RMDR)   }
4158
                {   Return (RMDR)   }
4159
 
4159
 
4160
            //  Test DivideOp with WORD data
4160
            //  Test DivideOp with WORD data
4161
            Divide (WRD, 4, WRD, RMDR)
4161
            Divide (WRD, 4, WRD, RMDR)
4162
            If (LNotEqual (WRD, 0x1234))
4162
            If (LNotEqual (WRD, 0x1234))
4163
                {   Return (WRD)    }
4163
                {   Return (WRD)    }
4164
            If (LNotEqual (RMDR, 0))
4164
            If (LNotEqual (RMDR, 0))
4165
                {   Return (RMDR)   }
4165
                {   Return (RMDR)   }
4166
 
4166
 
4167
            //  Test DivideOp with BYTE data
4167
            //  Test DivideOp with BYTE data
4168
            Divide (BYT, 5, BYT, RMDR)
4168
            Divide (BYT, 5, BYT, RMDR)
4169
            If (LNotEqual (BYT, 0x12))
4169
            If (LNotEqual (BYT, 0x12))
4170
                {   Return (BYT)    }
4170
                {   Return (BYT)    }
4171
            If (LNotEqual (RMDR, 0))
4171
            If (LNotEqual (RMDR, 0))
4172
                {   Return (RMDR)   }
4172
                {   Return (RMDR)   }
4173
 
4173
 
4174
 
4174
 
4175
            //  test MultiplyOp with DWORD SystemMemory OpRegion
4175
            //  test MultiplyOp with DWORD SystemMemory OpRegion
4176
            Store (0x01234567, SMDW)
4176
            Store (0x01234567, SMDW)
4177
            Multiply (SMDW, 2, SMDW)
4177
            Multiply (SMDW, 2, SMDW)
4178
            If (LNotEqual (SMDW, 0x02468ACE))
4178
            If (LNotEqual (SMDW, 0x02468ACE))
4179
                {   Return (SMDW)   }
4179
                {   Return (SMDW)   }
4180
 
4180
 
4181
            //  test DivideOp with DWORD SystemMemory OpRegion
4181
            //  test DivideOp with DWORD SystemMemory OpRegion
4182
            Divide (SMDW, 3, SMDW, RMDR)
4182
            Divide (SMDW, 3, SMDW, RMDR)
4183
            If (LNotEqual (SMDW, 0x00C22E44))
4183
            If (LNotEqual (SMDW, 0x00C22E44))
4184
                {   Return (SMDW)   }
4184
                {   Return (SMDW)   }
4185
            If (LNotEqual (RMDR, 2))
4185
            If (LNotEqual (RMDR, 2))
4186
                {   Return (RMDR)   }
4186
                {   Return (RMDR)   }
4187
 
4187
 
4188
 
4188
 
4189
            //  test MultiplyOp with WORD SystemMemory OpRegion
4189
            //  test MultiplyOp with WORD SystemMemory OpRegion
4190
            Store (0x0123, SMWD)
4190
            Store (0x0123, SMWD)
4191
            Multiply (SMWD, 3, SMWD)
4191
            Multiply (SMWD, 3, SMWD)
4192
            If (LNotEqual (SMWD, 0x369))
4192
            If (LNotEqual (SMWD, 0x369))
4193
                {   Return (SMWD)   }
4193
                {   Return (SMWD)   }
4194
 
4194
 
4195
            //  test DivideOp with WORD SystemMemory OpRegion
4195
            //  test DivideOp with WORD SystemMemory OpRegion
4196
            Divide (SMWD, 2, SMWD, RMDR)
4196
            Divide (SMWD, 2, SMWD, RMDR)
4197
            If (LNotEqual (SMWD, 0x01B4))
4197
            If (LNotEqual (SMWD, 0x01B4))
4198
                {   Return (SMWD)   }
4198
                {   Return (SMWD)   }
4199
            If (LNotEqual (RMDR, 1))
4199
            If (LNotEqual (RMDR, 1))
4200
                {   Return (RMDR)   }
4200
                {   Return (RMDR)   }
4201
 
4201
 
4202
 
4202
 
4203
            //  test MultiplyOp with BYTE SystemMemory OpRegion
4203
            //  test MultiplyOp with BYTE SystemMemory OpRegion
4204
            Store (0x01, SMBY)
4204
            Store (0x01, SMBY)
4205
            Multiply (SMBY, 7, SMBY)
4205
            Multiply (SMBY, 7, SMBY)
4206
            If (LNotEqual (SMBY, 0x07))
4206
            If (LNotEqual (SMBY, 0x07))
4207
                {   Return (SMBY)   }
4207
                {   Return (SMBY)   }
4208
 
4208
 
4209
            //  test DivideOp with BYTE SystemMemory OpRegion
4209
            //  test DivideOp with BYTE SystemMemory OpRegion
4210
            Divide (SMBY, 4, SMBY, RMDR)
4210
            Divide (SMBY, 4, SMBY, RMDR)
4211
            If (LNotEqual (SMBY, 0x01))
4211
            If (LNotEqual (SMBY, 0x01))
4212
                {   Return (SMBY)   }
4212
                {   Return (SMBY)   }
4213
            If (LNotEqual (RMDR, 3))
4213
            If (LNotEqual (RMDR, 3))
4214
                {   Return (RMDR)   }
4214
                {   Return (RMDR)   }
4215
 
4215
 
4216
            Return (0)
4216
            Return (0)
4217
        }   //  TEST
4217
        }   //  TEST
4218
    }   //  MLDV
4218
    }   //  MLDV
4219
 
4219
 
4220
//
4220
//
4221
// test NBitOps.asl
4221
// test NBitOps.asl
4222
//
4222
//
4223
//NAnd - Bit-wise NAnd
4223
//NAnd - Bit-wise NAnd
4224
//NAndTerm  := NAnd(
4224
//NAndTerm  := NAnd(
4225
//  Source1,    //TermArg=>Integer
4225
//  Source1,    //TermArg=>Integer
4226
//  Source2 //TermArg=>Integer
4226
//  Source2 //TermArg=>Integer
4227
//  Result  //Nothing | SuperName
4227
//  Result  //Nothing | SuperName
4228
//) => Integer
4228
//) => Integer
4229
//Source1 and Source2 are evaluated as integer data types, a bit-wise NAND is performed, and the result is optionally
4229
//Source1 and Source2 are evaluated as integer data types, a bit-wise NAND is performed, and the result is optionally
4230
//stored in Result.
4230
//stored in Result.
4231
 
4231
 
4232
//NOr - Bitwise NOr
4232
//NOr - Bitwise NOr
4233
//NOrTerm   := NOr(
4233
//NOrTerm   := NOr(
4234
//  Source1,    //TermArg=>Integer
4234
//  Source1,    //TermArg=>Integer
4235
//  Source2 //TermArg=>Integer
4235
//  Source2 //TermArg=>Integer
4236
//  Result  //Nothing | SuperName
4236
//  Result  //Nothing | SuperName
4237
//) => Integer
4237
//) => Integer
4238
//Source1 and Source2 are evaluated as integer data types, a bit-wise NOR is performed, and the result is optionally
4238
//Source1 and Source2 are evaluated as integer data types, a bit-wise NOR is performed, and the result is optionally
4239
//stored in Result.
4239
//stored in Result.
4240
// Not - Not
4240
// Not - Not
4241
//NotTerm   := Not(
4241
//NotTerm   := Not(
4242
//  Source, //TermArg=>Integer
4242
//  Source, //TermArg=>Integer
4243
//  Result  //Nothing | SuperName
4243
//  Result  //Nothing | SuperName
4244
//) => Integer
4244
//) => Integer
4245
//Source1 is evaluated as an integer data type, a bit-wise NOT is performed, and the result is optionally stored in
4245
//Source1 is evaluated as an integer data type, a bit-wise NOT is performed, and the result is optionally stored in
4246
//Result.
4246
//Result.
4247
 
4247
 
4248
//If the Control method is success Zero is returned else a non-zero number is returned
4248
//If the Control method is success Zero is returned else a non-zero number is returned
4249
 
4249
 
4250
    Device (NBIT)
4250
    Device (NBIT)
4251
    {//NBIT
4251
    {//NBIT
4252
 
4252
 
4253
        //Create System Memory Operation Region and field overlays
4253
        //Create System Memory Operation Region and field overlays
4254
        OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
4254
        OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
4255
        Field (RAM, AnyAcc, NoLock, Preserve)
4255
        Field (RAM, AnyAcc, NoLock, Preserve)
4256
        {
4256
        {
4257
            SMDW,   32, //  32-bit DWORD
4257
            SMDW,   32, //  32-bit DWORD
4258
            SMWD,   16, //  16-bit WORD
4258
            SMWD,   16, //  16-bit WORD
4259
            SMBY,   8,  //  8-bit BYTE
4259
            SMBY,   8,  //  8-bit BYTE
4260
        }// Field(RAM)
4260
        }// Field(RAM)
4261
 
4261
 
4262
 
4262
 
4263
        //And with Byte Data
4263
        //And with Byte Data
4264
        Name (BYT1, 0xff)
4264
        Name (BYT1, 0xff)
4265
        Name (BYT2, 0xff)
4265
        Name (BYT2, 0xff)
4266
        Name (BRSL, 0x00)
4266
        Name (BRSL, 0x00)
4267
 
4267
 
4268
        //And with Word Data
4268
        //And with Word Data
4269
        Name (WRD1, 0xffff)
4269
        Name (WRD1, 0xffff)
4270
        Name (WRD2, 0xffff)
4270
        Name (WRD2, 0xffff)
4271
        Name (WRSL, 0x0000)
4271
        Name (WRSL, 0x0000)
4272
 
4272
 
4273
        //And with DWord Data
4273
        //And with DWord Data
4274
        Name (DWD1, 0xffffffff)
4274
        Name (DWD1, 0xffffffff)
4275
        Name (DWD2, 0xffffffff)
4275
        Name (DWD2, 0xffffffff)
4276
        Name (DRSL, 0x00000000)
4276
        Name (DRSL, 0x00000000)
4277
        Name(RSLT,1)
4277
        Name(RSLT,1)
4278
 
4278
 
4279
 
4279
 
4280
        Name(ARSL,0x00)
4280
        Name(ARSL,0x00)
4281
        Name(LRSL,0x00)
4281
        Name(LRSL,0x00)
4282
 
4282
 
4283
        Method(NNDB,2)
4283
        Method(NNDB,2)
4284
        {//NNDB
4284
        {//NNDB
4285
 
4285
 
4286
            Store(0xffffffff,SMDW)
4286
            Store(0xffffffff,SMDW)
4287
            Store(0xffff,SMWD)
4287
            Store(0xffff,SMWD)
4288
            Store(0xff,SMBY)
4288
            Store(0xff,SMBY)
4289
 
4289
 
4290
 
4290
 
4291
            NAnd(Arg0,Arg1,ARSL)
4291
            NAnd(Arg0,Arg1,ARSL)
4292
            if(LNotEqual(ARSL,0xfffffffd))
4292
            if(LNotEqual(ARSL,0xfffffffd))
4293
             {Return(11)}
4293
             {Return(11)}
4294
 
4294
 
4295
             Store(Arg0,local0)
4295
             Store(Arg0,local0)
4296
             Store(Arg1,Local1)
4296
             Store(Arg1,Local1)
4297
 
4297
 
4298
             NAnd(Local0,Local1,LRSL)
4298
             NAnd(Local0,Local1,LRSL)
4299
                if(LNotEqual(LRSL,0xfffffffd))
4299
                if(LNotEqual(LRSL,0xfffffffd))
4300
             {Return(12)}
4300
             {Return(12)}
4301
 
4301
 
4302
 
4302
 
4303
            //Byte data
4303
            //Byte data
4304
            NAnd(BYT1,BYT2,BRSL)
4304
            NAnd(BYT1,BYT2,BRSL)
4305
            if(LNotEqual(BRSL,0xffffff00))
4305
            if(LNotEqual(BRSL,0xffffff00))
4306
             {Return(13)}
4306
             {Return(13)}
4307
 
4307
 
4308
            //Word Data
4308
            //Word Data
4309
             NAnd(WRD1,WRD2,WRSL)
4309
             NAnd(WRD1,WRD2,WRSL)
4310
            if(LNotEqual(WRSL,0xffff0000))
4310
            if(LNotEqual(WRSL,0xffff0000))
4311
             {Return(14)}
4311
             {Return(14)}
4312
 
4312
 
4313
             //DWord Data
4313
             //DWord Data
4314
             NAnd(DWD1,DWD2,DRSL)
4314
             NAnd(DWD1,DWD2,DRSL)
4315
            if(LNotEqual(DRSL,0x00000000))
4315
            if(LNotEqual(DRSL,0x00000000))
4316
             {Return(15)}
4316
             {Return(15)}
4317
 
4317
 
4318
             //Byte data
4318
             //Byte data
4319
            NAnd(SMBY,0xff,BRSL)
4319
            NAnd(SMBY,0xff,BRSL)
4320
            if(LNotEqual(BRSL,0xffffff00))
4320
            if(LNotEqual(BRSL,0xffffff00))
4321
             {Return(16)}
4321
             {Return(16)}
4322
 
4322
 
4323
            //Word Data
4323
            //Word Data
4324
             NAnd(SMWD,0xffff,WRSL)
4324
             NAnd(SMWD,0xffff,WRSL)
4325
            if(LNotEqual(WRSL,0xffff0000))
4325
            if(LNotEqual(WRSL,0xffff0000))
4326
             {Return(17)}
4326
             {Return(17)}
4327
 
4327
 
4328
             //DWord Data
4328
             //DWord Data
4329
             NAnd(SMDW,0xffffffff,DRSL)
4329
             NAnd(SMDW,0xffffffff,DRSL)
4330
            if(LNotEqual(DRSL,0x00000000))
4330
            if(LNotEqual(DRSL,0x00000000))
4331
             {Return(18)}
4331
             {Return(18)}
4332
 
4332
 
4333
            Return(0)
4333
            Return(0)
4334
 
4334
 
4335
        }//NNDB
4335
        }//NNDB
4336
 
4336
 
4337
        Method(NNOR,2)
4337
        Method(NNOR,2)
4338
        {//NNOR
4338
        {//NNOR
4339
 
4339
 
4340
            NOr(Arg0,Arg1,ARSL)
4340
            NOr(Arg0,Arg1,ARSL)
4341
            if(LNotEqual(ARSL,0xfffffffd))
4341
            if(LNotEqual(ARSL,0xfffffffd))
4342
             {Return(21)}
4342
             {Return(21)}
4343
 
4343
 
4344
            Store(Arg0,local0)
4344
            Store(Arg0,local0)
4345
            Store(Arg1,Local1)
4345
            Store(Arg1,Local1)
4346
 
4346
 
4347
            NOr(Local0,Local1,LRSL)
4347
            NOr(Local0,Local1,LRSL)
4348
            if(LNotEqual(LRSL,0xfffffffd))
4348
            if(LNotEqual(LRSL,0xfffffffd))
4349
             {Return(22)}
4349
             {Return(22)}
4350
 
4350
 
4351
 
4351
 
4352
            //Byte data
4352
            //Byte data
4353
            NOr(BYT1,BYT2,BRSL)
4353
            NOr(BYT1,BYT2,BRSL)
4354
            if(LNotEqual(BRSL,0xffffff00))
4354
            if(LNotEqual(BRSL,0xffffff00))
4355
             {Return(23)}
4355
             {Return(23)}
4356
 
4356
 
4357
            //Word Data
4357
            //Word Data
4358
            NOr(WRD1,WRD2,WRSL)
4358
            NOr(WRD1,WRD2,WRSL)
4359
            if(LNotEqual(WRSL,0xffff0000))
4359
            if(LNotEqual(WRSL,0xffff0000))
4360
             {Return(24)}
4360
             {Return(24)}
4361
 
4361
 
4362
            //DWord Data
4362
            //DWord Data
4363
            NOr(DWD1,DWD2,DRSL)
4363
            NOr(DWD1,DWD2,DRSL)
4364
            if(LNotEqual(DRSL,0x00000000))
4364
            if(LNotEqual(DRSL,0x00000000))
4365
             {Return(25)}
4365
             {Return(25)}
4366
 
4366
 
4367
             //System Memory Byte data
4367
             //System Memory Byte data
4368
            NOr(SMBY,0xff,BRSL)
4368
            NOr(SMBY,0xff,BRSL)
4369
            if(LNotEqual(BRSL,0xffffff00))
4369
            if(LNotEqual(BRSL,0xffffff00))
4370
             {Return(26)}
4370
             {Return(26)}
4371
 
4371
 
4372
            //System Memory Word Data
4372
            //System Memory Word Data
4373
            NOr(SMWD,0xffff,WRSL)
4373
            NOr(SMWD,0xffff,WRSL)
4374
            if(LNotEqual(WRSL,0xffff0000))
4374
            if(LNotEqual(WRSL,0xffff0000))
4375
             {Return(27)}
4375
             {Return(27)}
4376
 
4376
 
4377
            //System Memory DWord Data
4377
            //System Memory DWord Data
4378
            NOr(SMDW,0xffffffff,DRSL)
4378
            NOr(SMDW,0xffffffff,DRSL)
4379
            if(LNotEqual(DRSL,0x00000000))
4379
            if(LNotEqual(DRSL,0x00000000))
4380
             {Return(28)}
4380
             {Return(28)}
4381
 
4381
 
4382
            Return(0)
4382
            Return(0)
4383
 
4383
 
4384
        }//NNOR
4384
        }//NNOR
4385
 
4385
 
4386
        Method(NNOT,2)
4386
        Method(NNOT,2)
4387
        {//NNOT
4387
        {//NNOT
4388
 
4388
 
4389
            Or(Arg0,Arg1,ARSL)
4389
            Or(Arg0,Arg1,ARSL)
4390
            Not(ARSL,ARSL)
4390
            Not(ARSL,ARSL)
4391
            if(LNotEqual(ARSL,0xfffffffd))
4391
            if(LNotEqual(ARSL,0xfffffffd))
4392
             {Return(31)}
4392
             {Return(31)}
4393
 
4393
 
4394
            Store(Arg0,local0)
4394
            Store(Arg0,local0)
4395
            Store(Arg1,Local1)
4395
            Store(Arg1,Local1)
4396
 
4396
 
4397
            Or(Local0,Local1,LRSL)
4397
            Or(Local0,Local1,LRSL)
4398
            Not(LRSL,LRSL)
4398
            Not(LRSL,LRSL)
4399
            if(LNotEqual(LRSL,0xfffffffd))
4399
            if(LNotEqual(LRSL,0xfffffffd))
4400
             {Return(32)}
4400
             {Return(32)}
4401
 
4401
 
4402
 
4402
 
4403
            //Byte data
4403
            //Byte data
4404
            Or(BYT1,BYT2,BRSL)
4404
            Or(BYT1,BYT2,BRSL)
4405
            Not(BRSL,BRSL)
4405
            Not(BRSL,BRSL)
4406
            if(LNotEqual(BRSL,0xffffff00))
4406
            if(LNotEqual(BRSL,0xffffff00))
4407
             {Return(33)}
4407
             {Return(33)}
4408
 
4408
 
4409
            //Word Data
4409
            //Word Data
4410
            Or(WRD1,WRD2,WRSL)
4410
            Or(WRD1,WRD2,WRSL)
4411
            Not(WRSL,WRSL)
4411
            Not(WRSL,WRSL)
4412
            if(LNotEqual(WRSL,0xffff0000))
4412
            if(LNotEqual(WRSL,0xffff0000))
4413
             {Return(34)}
4413
             {Return(34)}
4414
 
4414
 
4415
            //DWord Data
4415
            //DWord Data
4416
            Or(DWD1,DWD2,DRSL)
4416
            Or(DWD1,DWD2,DRSL)
4417
            Not(DRSL,DRSL)
4417
            Not(DRSL,DRSL)
4418
            if(LNotEqual(DRSL,0x00000000))
4418
            if(LNotEqual(DRSL,0x00000000))
4419
             {Return(35)}
4419
             {Return(35)}
4420
 
4420
 
4421
             //System Memory Byte data
4421
             //System Memory Byte data
4422
            Or(SMBY,0xff,BRSL)
4422
            Or(SMBY,0xff,BRSL)
4423
            Not(BRSL,BRSL)
4423
            Not(BRSL,BRSL)
4424
            if(LNotEqual(BRSL,0xffffff00))
4424
            if(LNotEqual(BRSL,0xffffff00))
4425
             {Return(36)}
4425
             {Return(36)}
4426
 
4426
 
4427
            //System Memory Word Data
4427
            //System Memory Word Data
4428
            Or(SMWD,0xffff,WRSL)
4428
            Or(SMWD,0xffff,WRSL)
4429
            Not(WRSL,WRSL)
4429
            Not(WRSL,WRSL)
4430
            if(LNotEqual(WRSL,0xffff0000))
4430
            if(LNotEqual(WRSL,0xffff0000))
4431
             {Return(37)}
4431
             {Return(37)}
4432
 
4432
 
4433
            //System Memory DWord Data
4433
            //System Memory DWord Data
4434
            Or(SMDW,0xffffffff,DRSL)
4434
            Or(SMDW,0xffffffff,DRSL)
4435
            Not(DRSL,DRSL)
4435
            Not(DRSL,DRSL)
4436
            if(LNotEqual(DRSL,0x00000000))
4436
            if(LNotEqual(DRSL,0x00000000))
4437
             {Return(38)}
4437
             {Return(38)}
4438
 
4438
 
4439
            Return(0)
4439
            Return(0)
4440
        }//NNOT
4440
        }//NNOT
4441
 
4441
 
4442
 
4442
 
4443
        Method(TEST)
4443
        Method(TEST)
4444
        {
4444
        {
4445
 
4445
 
4446
            Store ("++++++++ NBitOps Test", Debug)
4446
            Store ("++++++++ NBitOps Test", Debug)
4447
 
4447
 
4448
            Store(NNDB(2,2),RSLT)
4448
            Store(NNDB(2,2),RSLT)
4449
            if(LNotEqual(RSLT,0))
4449
            if(LNotEqual(RSLT,0))
4450
                {Return(RSLT)}
4450
                {Return(RSLT)}
4451
 
4451
 
4452
            Store(NNOR(2,2),RSLT)
4452
            Store(NNOR(2,2),RSLT)
4453
            if(LNotEqual(RSLT,0))
4453
            if(LNotEqual(RSLT,0))
4454
                {Return(RSLT)}
4454
                {Return(RSLT)}
4455
 
4455
 
4456
            Store(NNOT(2,2),RSLT)
4456
            Store(NNOT(2,2),RSLT)
4457
            if(LNotEqual(RSLT,0))
4457
            if(LNotEqual(RSLT,0))
4458
                {Return(RSLT)}
4458
                {Return(RSLT)}
4459
 
4459
 
4460
 
4460
 
4461
           Return(0)
4461
           Return(0)
4462
        }
4462
        }
4463
 
4463
 
4464
    }//Device NBIT
4464
    }//Device NBIT
4465
 
4465
 
4466
//
4466
//
4467
// test ShftOp.asl
4467
// test ShftOp.asl
4468
//
4468
//
4469
//ShiftRightTerm    := ShiftRight(
4469
//ShiftRightTerm    := ShiftRight(
4470
//  Source, //TermArg=>Integer
4470
//  Source, //TermArg=>Integer
4471
//  ShiftCount  //TermArg=>Integer
4471
//  ShiftCount  //TermArg=>Integer
4472
//  Result  //Nothing | SuperName
4472
//  Result  //Nothing | SuperName
4473
//) => Integer
4473
//) => Integer
4474
//Source and ShiftCount are evaluated as integer data types. Source is shifted right with the most significant bit
4474
//Source and ShiftCount are evaluated as integer data types. Source is shifted right with the most significant bit
4475
//zeroed ShiftCount times.  The result is optionally stored into Result.
4475
//zeroed ShiftCount times.  The result is optionally stored into Result.
4476
 
4476
 
4477
//ShiftLeft(
4477
//ShiftLeft(
4478
//  Source, //TermArg=>Integer
4478
//  Source, //TermArg=>Integer
4479
//  ShiftCount  //TermArg=>Integer
4479
//  ShiftCount  //TermArg=>Integer
4480
//  Result  //Nothing | SuperName
4480
//  Result  //Nothing | SuperName
4481
//) => Integer
4481
//) => Integer
4482
//Source and ShiftCount are evaluated as integer data types. Source is shifted left with the least significant
4482
//Source and ShiftCount are evaluated as integer data types. Source is shifted left with the least significant
4483
//bit zeroed ShiftCount times. The result is optionally stored into Result.
4483
//bit zeroed ShiftCount times. The result is optionally stored into Result.
4484
 
4484
 
4485
//If the Control method is success Zero is returned else a non-zero number is returned
4485
//If the Control method is success Zero is returned else a non-zero number is returned
4486
    Device (SHFT)
4486
    Device (SHFT)
4487
    {//SHFT
4487
    {//SHFT
4488
 
4488
 
4489
        //Create System Memory Operation Region and field overlays
4489
        //Create System Memory Operation Region and field overlays
4490
        OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
4490
        OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
4491
        Field (RAM, AnyAcc, NoLock, Preserve)
4491
        Field (RAM, AnyAcc, NoLock, Preserve)
4492
        {
4492
        {
4493
            SMDW,   32, //  32-bit DWORD
4493
            SMDW,   32, //  32-bit DWORD
4494
            SMWD,   16, //  16-bit WORD
4494
            SMWD,   16, //  16-bit WORD
4495
            SMBY,   8,  //  8-bit BYTE
4495
            SMBY,   8,  //  8-bit BYTE
4496
        }// Field(RAM)
4496
        }// Field(RAM)
4497
 
4497
 
4498
 
4498
 
4499
        Name(SHFC,0x00)
4499
        Name(SHFC,0x00)
4500
 
4500
 
4501
        //And with Byte Data
4501
        //And with Byte Data
4502
        Name (BYT1, 0xff)
4502
        Name (BYT1, 0xff)
4503
        Name (BRSL, 0x00)
4503
        Name (BRSL, 0x00)
4504
 
4504
 
4505
        //And with Word Data
4505
        //And with Word Data
4506
        Name (WRD1, 0xffff)
4506
        Name (WRD1, 0xffff)
4507
        Name (WRSL, 0x0000)
4507
        Name (WRSL, 0x0000)
4508
 
4508
 
4509
        //And with DWord Data
4509
        //And with DWord Data
4510
        Name (DWD1, 0xffffffff)
4510
        Name (DWD1, 0xffffffff)
4511
        Name (DRSL, 0x00000000)
4511
        Name (DRSL, 0x00000000)
4512
 
4512
 
4513
        Name(RSLT,1)
4513
        Name(RSLT,1)
4514
 
4514
 
4515
        Name(ARSL,0x00)
4515
        Name(ARSL,0x00)
4516
        Name(LRSL,0x00)
4516
        Name(LRSL,0x00)
4517
 
4517
 
4518
        Method(SLFT,2)
4518
        Method(SLFT,2)
4519
        {//SLFT
4519
        {//SLFT
4520
 
4520
 
4521
            Store(0xffffffff,SMDW)
4521
            Store(0xffffffff,SMDW)
4522
            Store(0xffff,SMWD)
4522
            Store(0xffff,SMWD)
4523
            Store(0xff,SMBY)
4523
            Store(0xff,SMBY)
4524
 
4524
 
4525
 
4525
 
4526
            //Arg0-> 2 & Arg1->2
4526
            //Arg0-> 2 & Arg1->2
4527
            ShiftLeft(Arg0,Arg1,ARSL)
4527
            ShiftLeft(Arg0,Arg1,ARSL)
4528
            if(LNotEqual(ARSL,8))
4528
            if(LNotEqual(ARSL,8))
4529
            {Return(11)}
4529
            {Return(11)}
4530
 
4530
 
4531
             Store(Arg0,local0)
4531
             Store(Arg0,local0)
4532
             Store(Arg1,Local1)
4532
             Store(Arg1,Local1)
4533
 
4533
 
4534
             //Local0->8 and Local1->2
4534
             //Local0->8 and Local1->2
4535
             ShiftLeft(Local0,Local1,LRSL)
4535
             ShiftLeft(Local0,Local1,LRSL)
4536
                if(LNotEqual(LRSL,8))
4536
                if(LNotEqual(LRSL,8))
4537
             {Return(12)}
4537
             {Return(12)}
4538
 
4538
 
4539
            Store(2,SHFC)
4539
            Store(2,SHFC)
4540
            //Byte data
4540
            //Byte data
4541
            ShiftLeft(BYT1,SHFC,BRSL)
4541
            ShiftLeft(BYT1,SHFC,BRSL)
4542
            if(LNotEqual(BRSL,0x3FC))
4542
            if(LNotEqual(BRSL,0x3FC))
4543
             {Return(13)}
4543
             {Return(13)}
4544
 
4544
 
4545
            Store(4,SHFC)
4545
            Store(4,SHFC)
4546
            //Word Data
4546
            //Word Data
4547
             ShiftLeft(WRD1,SHFC,WRSL)
4547
             ShiftLeft(WRD1,SHFC,WRSL)
4548
            if(LNotEqual(WRSL,0xFFFF0))
4548
            if(LNotEqual(WRSL,0xFFFF0))
4549
             {Return(14)}
4549
             {Return(14)}
4550
 
4550
 
4551
            Store(8,SHFC)
4551
            Store(8,SHFC)
4552
            //DWord Data
4552
            //DWord Data
4553
            ShiftLeft(DWD1,SHFC,DRSL)
4553
            ShiftLeft(DWD1,SHFC,DRSL)
4554
            if(LNotEqual(DRSL,0xFFFFFF00))
4554
            if(LNotEqual(DRSL,0xFFFFFF00))
4555
             {Return(15)}
4555
             {Return(15)}
4556
 
4556
 
4557
 
4557
 
4558
             //System Memory Byte data
4558
             //System Memory Byte data
4559
            Store(4,SHFC)
4559
            Store(4,SHFC)
4560
            ShiftLeft(SMBY,SHFC,BRSL)
4560
            ShiftLeft(SMBY,SHFC,BRSL)
4561
            if(LNotEqual(BRSL,0xFF0))
4561
            if(LNotEqual(BRSL,0xFF0))
4562
            {Return(16)}
4562
            {Return(16)}
4563
 
4563
 
4564
            //Word Data
4564
            //Word Data
4565
            Store(4,SHFC)
4565
            Store(4,SHFC)
4566
            ShiftLeft(SMWD,SHFC,WRSL)
4566
            ShiftLeft(SMWD,SHFC,WRSL)
4567
            if(LNotEqual(WRSL,0xffff0))
4567
            if(LNotEqual(WRSL,0xffff0))
4568
             {Return(17)}
4568
             {Return(17)}
4569
 
4569
 
4570
            //DWord Data
4570
            //DWord Data
4571
            Store(8,SHFC)
4571
            Store(8,SHFC)
4572
            ShiftLeft(SMDW,SHFC,DRSL)
4572
            ShiftLeft(SMDW,SHFC,DRSL)
4573
            if(LNotEqual(DRSL,0xFFFFFF00))
4573
            if(LNotEqual(DRSL,0xFFFFFF00))
4574
                {Return(18)}
4574
                {Return(18)}
4575
 
4575
 
4576
            Return(0)
4576
            Return(0)
4577
 
4577
 
4578
        }//SLFT
4578
        }//SLFT
4579
 
4579
 
4580
        Method(SRGT,2)
4580
        Method(SRGT,2)
4581
        {//SRGT
4581
        {//SRGT
4582
            //And with Byte Data
4582
            //And with Byte Data
4583
            Store (0xff,BYT1)
4583
            Store (0xff,BYT1)
4584
            Store (0x00,BRSL)
4584
            Store (0x00,BRSL)
4585
 
4585
 
4586
            //And with Word Data
4586
            //And with Word Data
4587
            Store (0xffff,WRD1)
4587
            Store (0xffff,WRD1)
4588
            Store (0x0000,WRSL)
4588
            Store (0x0000,WRSL)
4589
 
4589
 
4590
            //And with DWord Data
4590
            //And with DWord Data
4591
            Store(0xffffffff,DWD1)
4591
            Store(0xffffffff,DWD1)
4592
            Store (0x00000000,DRSL)
4592
            Store (0x00000000,DRSL)
4593
 
4593
 
4594
            //Reinitialize the result objects
4594
            //Reinitialize the result objects
4595
            Store(0x00,ARSL)
4595
            Store(0x00,ARSL)
4596
            Store(0x00,LRSL)
4596
            Store(0x00,LRSL)
4597
 
4597
 
4598
            Store(0xffffffff,SMDW)
4598
            Store(0xffffffff,SMDW)
4599
            Store(0xffff,SMWD)
4599
            Store(0xffff,SMWD)
4600
            Store(0xff,SMBY)
4600
            Store(0xff,SMBY)
4601
 
4601
 
4602
            //Arg0-> 2 & Arg1->2
4602
            //Arg0-> 2 & Arg1->2
4603
            ShiftRight(Arg0,Arg1,ARSL)
4603
            ShiftRight(Arg0,Arg1,ARSL)
4604
            if(LNotEqual(ARSL,0))
4604
            if(LNotEqual(ARSL,0))
4605
            {Return(21)}
4605
            {Return(21)}
4606
 
4606
 
4607
             Store(Arg0,local0)
4607
             Store(Arg0,local0)
4608
             Store(Arg1,Local1)
4608
             Store(Arg1,Local1)
4609
 
4609
 
4610
             //Local0->8 and Local1->2
4610
             //Local0->8 and Local1->2
4611
             ShiftRight(Local0,Local1,LRSL)
4611
             ShiftRight(Local0,Local1,LRSL)
4612
                if(LNotEqual(LRSL,0))
4612
                if(LNotEqual(LRSL,0))
4613
             {Return(22)}
4613
             {Return(22)}
4614
 
4614
 
4615
            Store(2,SHFC)
4615
            Store(2,SHFC)
4616
            //Byte data
4616
            //Byte data
4617
            ShiftRight(BYT1,SHFC,BRSL)
4617
            ShiftRight(BYT1,SHFC,BRSL)
4618
            if(LNotEqual(BRSL,0x3F))
4618
            if(LNotEqual(BRSL,0x3F))
4619
             {Return(23)}
4619
             {Return(23)}
4620
 
4620
 
4621
            Store(4,SHFC)
4621
            Store(4,SHFC)
4622
            //Word Data
4622
            //Word Data
4623
             ShiftRight(WRD1,SHFC,WRSL)
4623
             ShiftRight(WRD1,SHFC,WRSL)
4624
            if(LNotEqual(WRSL,0xFFF))
4624
            if(LNotEqual(WRSL,0xFFF))
4625
             {Return(24)}
4625
             {Return(24)}
4626
 
4626
 
4627
            Store(8,SHFC)
4627
            Store(8,SHFC)
4628
            //DWord Data
4628
            //DWord Data
4629
            ShiftRight(DWD1,SHFC,DRSL)
4629
            ShiftRight(DWD1,SHFC,DRSL)
4630
            if(LNotEqual(DRSL,0xFFFFFF))
4630
            if(LNotEqual(DRSL,0xFFFFFF))
4631
             {Return(25)}
4631
             {Return(25)}
4632
 
4632
 
4633
            //System Memory Byte data
4633
            //System Memory Byte data
4634
            Store(4,SHFC)
4634
            Store(4,SHFC)
4635
            ShiftRight(SMBY,SHFC,BRSL)
4635
            ShiftRight(SMBY,SHFC,BRSL)
4636
            if(LNotEqual(BRSL,0xF))
4636
            if(LNotEqual(BRSL,0xF))
4637
            {Return(26)}
4637
            {Return(26)}
4638
 
4638
 
4639
            //Word Data
4639
            //Word Data
4640
            Store(4,SHFC)
4640
            Store(4,SHFC)
4641
            ShiftRight(SMWD,SHFC,WRSL)
4641
            ShiftRight(SMWD,SHFC,WRSL)
4642
            if(LNotEqual(WRSL,0xFFF))
4642
            if(LNotEqual(WRSL,0xFFF))
4643
             {Return(27)}
4643
             {Return(27)}
4644
 
4644
 
4645
            //DWord Data
4645
            //DWord Data
4646
            Store(8,SHFC)
4646
            Store(8,SHFC)
4647
            ShiftRight(SMDW,SHFC,DRSL)
4647
            ShiftRight(SMDW,SHFC,DRSL)
4648
            if(LNotEqual(DRSL,0xFFFFFF))
4648
            if(LNotEqual(DRSL,0xFFFFFF))
4649
                {Return(28)}
4649
                {Return(28)}
4650
 
4650
 
4651
            Return(0)
4651
            Return(0)
4652
        }//SRGT
4652
        }//SRGT
4653
 
4653
 
4654
        //Test method called from amlexec
4654
        //Test method called from amlexec
4655
        Method(TEST)
4655
        Method(TEST)
4656
        {
4656
        {
4657
            Store ("++++++++ ShftOp Test", Debug)
4657
            Store ("++++++++ ShftOp Test", Debug)
4658
 
4658
 
4659
            Store(SLFT(2,2),RSLT)
4659
            Store(SLFT(2,2),RSLT)
4660
            if(LNotEqual(RSLT,0))
4660
            if(LNotEqual(RSLT,0))
4661
                {Return(RSLT)}
4661
                {Return(RSLT)}
4662
            Store(SRGT(2,2),RSLT)
4662
            Store(SRGT(2,2),RSLT)
4663
            if(LNotEqual(RSLT,0))
4663
            if(LNotEqual(RSLT,0))
4664
                {Return(RSLT)}
4664
                {Return(RSLT)}
4665
           Return(0)
4665
           Return(0)
4666
        }
4666
        }
4667
 
4667
 
4668
    }//Device SHFT
4668
    }//Device SHFT
4669
 
4669
 
4670
//
4670
//
4671
// test Xor.asl and slightly modified
4671
// test Xor.asl and slightly modified
4672
//
4672
//
4673
//This code tests the XOR opcode term
4673
//This code tests the XOR opcode term
4674
//Syntax of XOR term
4674
//Syntax of XOR term
4675
//          XOr(
4675
//          XOr(
4676
//                  Source1  //TermArg=>BufferTerm
4676
//                  Source1  //TermArg=>BufferTerm
4677
//                  Source2  //TermArg=>Integer
4677
//                  Source2  //TermArg=>Integer
4678
//                  Result //NameString
4678
//                  Result //NameString
4679
//              )
4679
//              )
4680
//"Source1" and "Source2" are evaluated as integers, a bit-wise XOR is performed, and the result is optionally stored in
4680
//"Source1" and "Source2" are evaluated as integers, a bit-wise XOR is performed, and the result is optionally stored in
4681
// Result
4681
// Result
4682
    Device (XORD)
4682
    Device (XORD)
4683
    {
4683
    {
4684
        //This Method tests XOr operator for all the data types i.e. BYTE, WORD and DWORD
4684
        //This Method tests XOr operator for all the data types i.e. BYTE, WORD and DWORD
4685
        Method (TEST)
4685
        Method (TEST)
4686
        {
4686
        {
4687
            Store ("++++++++ Xor Test", Debug)
4687
            Store ("++++++++ Xor Test", Debug)
4688
 
4688
 
4689
            //Overlay in system memory
4689
            //Overlay in system memory
4690
            OperationRegion (RAM, SystemMemory, 0x800000, 256)
4690
            OperationRegion (RAM, SystemMemory, 0x800000, 256)
4691
            Field (RAM, ByteAcc, NoLock, Preserve)
4691
            Field (RAM, ByteAcc, NoLock, Preserve)
4692
            {
4692
            {
4693
                RES1,   1,  //Offset
4693
                RES1,   1,  //Offset
4694
                BYT1,   8,  //First BYTE
4694
                BYT1,   8,  //First BYTE
4695
                BYT2,   8,  //Second BYTE
4695
                BYT2,   8,  //Second BYTE
4696
                RBYT,   8,  //Result Byte
4696
                RBYT,   8,  //Result Byte
4697
                RES2,   1,  //Offset
4697
                RES2,   1,  //Offset
4698
                WRD1,   16, //First WORD field
4698
                WRD1,   16, //First WORD field
4699
                WRD2,   16, //Second WORD field
4699
                WRD2,   16, //Second WORD field
4700
                RWRD,   16, //RSLT WORD field
4700
                RWRD,   16, //RSLT WORD field
4701
                RES3,   1,  //Offset
4701
                RES3,   1,  //Offset
4702
                DWD1,   32, //First Dword
4702
                DWD1,   32, //First Dword
4703
                DWD2,   32, //Second Dword
4703
                DWD2,   32, //Second Dword
4704
                RDWD,   32, //Result Dword
4704
                RDWD,   32, //Result Dword
4705
                RES4,   1,  //Offset
4705
                RES4,   1,  //Offset
4706
            }
4706
            }
4707
 
4707
 
4708
            // Store bits in the single bit fields for checking
4708
            // Store bits in the single bit fields for checking
4709
            //  at the end
4709
            //  at the end
4710
            Store(1, RES1)
4710
            Store(1, RES1)
4711
            Store(1, RES2)
4711
            Store(1, RES2)
4712
            Store(1, RES3)
4712
            Store(1, RES3)
4713
            Store(1, RES4)
4713
            Store(1, RES4)
4714
 
4714
 
4715
            // Check the stored single bits
4715
            // Check the stored single bits
4716
            if(LNotEqual(RES1, 1))
4716
            if(LNotEqual(RES1, 1))
4717
            {
4717
            {
4718
                Return(1)
4718
                Return(1)
4719
            }
4719
            }
4720
 
4720
 
4721
            if(LNotEqual(RES2, 1))
4721
            if(LNotEqual(RES2, 1))
4722
            {
4722
            {
4723
                Return(1)
4723
                Return(1)
4724
            }
4724
            }
4725
 
4725
 
4726
            if(LNotEqual(RES3, 1))
4726
            if(LNotEqual(RES3, 1))
4727
            {
4727
            {
4728
                Return(1)
4728
                Return(1)
4729
            }
4729
            }
4730
 
4730
 
4731
            if(LNotEqual(RES4, 1))
4731
            if(LNotEqual(RES4, 1))
4732
            {
4732
            {
4733
                Return(1)
4733
                Return(1)
4734
            }
4734
            }
4735
 
4735
 
4736
            //************************************************
4736
            //************************************************
4737
            // (BYT1) Bit1 ->0 and (BYT2)Bit2 -> 0 condition
4737
            // (BYT1) Bit1 ->0 and (BYT2)Bit2 -> 0 condition
4738
            Store(0x00,BYT1)
4738
            Store(0x00,BYT1)
4739
            Store(0x00,BYT2)
4739
            Store(0x00,BYT2)
4740
            XOr(BYT1,BYT2,Local0)
4740
            XOr(BYT1,BYT2,Local0)
4741
            Store (Local0, RBYT)
4741
            Store (Local0, RBYT)
4742
            if(LNotEqual(RBYT,0))
4742
            if(LNotEqual(RBYT,0))
4743
            {   Return(1)}
4743
            {   Return(1)}
4744
 
4744
 
4745
            // (BYT1) Bit1 ->1 and (BYT2)Bit2 -> 1 condition
4745
            // (BYT1) Bit1 ->1 and (BYT2)Bit2 -> 1 condition
4746
            Store(0xff,BYT1)
4746
            Store(0xff,BYT1)
4747
            Store(0xff,BYT2)
4747
            Store(0xff,BYT2)
4748
            XOr(BYT1,BYT2,Local0)
4748
            XOr(BYT1,BYT2,Local0)
4749
            Store (Local0, RBYT)
4749
            Store (Local0, RBYT)
4750
            if(LNotEqual(RBYT,0))
4750
            if(LNotEqual(RBYT,0))
4751
            {   Return(1)}
4751
            {   Return(1)}
4752
 
4752
 
4753
            // (BYT1) Bit1 ->1 and (BYT)Bit2 -> 0 condition
4753
            // (BYT1) Bit1 ->1 and (BYT)Bit2 -> 0 condition
4754
            Store(0x55,BYT1)
4754
            Store(0x55,BYT1)
4755
            Store(0xAA,BYT2)
4755
            Store(0xAA,BYT2)
4756
            XOr(BYT1,BYT2,Local0)
4756
            XOr(BYT1,BYT2,Local0)
4757
            Store (Local0, RBYT)
4757
            Store (Local0, RBYT)
4758
            if(LNotEqual(RBYT,0xFF))
4758
            if(LNotEqual(RBYT,0xFF))
4759
            {   Return(1)}
4759
            {   Return(1)}
4760
 
4760
 
4761
            //(BYT1) Bit1 ->0 and (BYT2)Bit2 -> 1 condition
4761
            //(BYT1) Bit1 ->0 and (BYT2)Bit2 -> 1 condition
4762
            Store(0xAA,BYT1)
4762
            Store(0xAA,BYT1)
4763
            Store(0x55,BYT2)
4763
            Store(0x55,BYT2)
4764
            XOr(BYT1,BYT2,Local0)
4764
            XOr(BYT1,BYT2,Local0)
4765
            Store (Local0, RBYT)
4765
            Store (Local0, RBYT)
4766
            if(LNotEqual(RBYT,0xFF))
4766
            if(LNotEqual(RBYT,0xFF))
4767
            {   Return(1)}
4767
            {   Return(1)}
4768
 
4768
 
4769
            Store(0x12,BYT1)
4769
            Store(0x12,BYT1)
4770
            Store(0xED,BYT2)
4770
            Store(0xED,BYT2)
4771
 
4771
 
4772
            XOr(BYT1,BYT2,Local0)
4772
            XOr(BYT1,BYT2,Local0)
4773
            Store (Local0, RBYT)
4773
            Store (Local0, RBYT)
4774
            if(LNotEqual(RBYT,0xFF))
4774
            if(LNotEqual(RBYT,0xFF))
4775
            {
4775
            {
4776
                Return(1)
4776
                Return(1)
4777
            }
4777
            }
4778
 
4778
 
4779
            // Store known values for checking later
4779
            // Store known values for checking later
4780
            Store(0x12, BYT1)
4780
            Store(0x12, BYT1)
4781
            if(LNotEqual(BYT1, 0x12))
4781
            if(LNotEqual(BYT1, 0x12))
4782
            {
4782
            {
4783
                Return(1)
4783
                Return(1)
4784
            }
4784
            }
4785
 
4785
 
4786
            Store(0xFE, BYT2)
4786
            Store(0xFE, BYT2)
4787
            if(LNotEqual(BYT2, 0xFE))
4787
            if(LNotEqual(BYT2, 0xFE))
4788
            {
4788
            {
4789
                Return(1)
4789
                Return(1)
4790
            }
4790
            }
4791
 
4791
 
4792
            Store(0xAB, RBYT)
4792
            Store(0xAB, RBYT)
4793
            if(LNotEqual(RBYT, 0xAB))
4793
            if(LNotEqual(RBYT, 0xAB))
4794
            {
4794
            {
4795
                Return(1)
4795
                Return(1)
4796
            }
4796
            }
4797
 
4797
 
4798
            //***********************************************
4798
            //***********************************************
4799
            // (WRD1) Bit1 ->0 and (WRD2)Bit2 -> 0 condition
4799
            // (WRD1) Bit1 ->0 and (WRD2)Bit2 -> 0 condition
4800
            Store(0x0000,WRD1)
4800
            Store(0x0000,WRD1)
4801
            Store(0x0000,WRD2)
4801
            Store(0x0000,WRD2)
4802
            XOr(WRD1,WRD2,RWRD)
4802
            XOr(WRD1,WRD2,RWRD)
4803
            if(LNotEqual(RWRD,0))
4803
            if(LNotEqual(RWRD,0))
4804
            {   Return(1)}
4804
            {   Return(1)}
4805
 
4805
 
4806
            // (WRD1) Bit1 ->1 and (WRD2)Bit2 -> 1 condition
4806
            // (WRD1) Bit1 ->1 and (WRD2)Bit2 -> 1 condition
4807
            Store(0xffff,WRD1)
4807
            Store(0xffff,WRD1)
4808
            Store(0xffff,WRD2)
4808
            Store(0xffff,WRD2)
4809
            XOr(WRD1,WRD2,RWRD)
4809
            XOr(WRD1,WRD2,RWRD)
4810
            if(LNotEqual(RWRD,0))
4810
            if(LNotEqual(RWRD,0))
4811
            {   Return(1)}
4811
            {   Return(1)}
4812
 
4812
 
4813
            // (WRD1) Bit1 ->1 and (WRD2)Bit2 -> 0 condition
4813
            // (WRD1) Bit1 ->1 and (WRD2)Bit2 -> 0 condition
4814
            Store(0x5555,WRD1)
4814
            Store(0x5555,WRD1)
4815
            Store(0xAAAA,WRD2)
4815
            Store(0xAAAA,WRD2)
4816
            XOr(WRD1,WRD2,RWRD)
4816
            XOr(WRD1,WRD2,RWRD)
4817
            if(LNotEqual(RWRD,0xFFFF))
4817
            if(LNotEqual(RWRD,0xFFFF))
4818
            {   Return(1)}
4818
            {   Return(1)}
4819
 
4819
 
4820
            //(WRD1) Bit1 ->0 and (WRD2)Bit2 -> 1 condition
4820
            //(WRD1) Bit1 ->0 and (WRD2)Bit2 -> 1 condition
4821
            Store(0xAAAA,WRD1)
4821
            Store(0xAAAA,WRD1)
4822
            Store(0x5555,WRD2)
4822
            Store(0x5555,WRD2)
4823
            XOr(WRD1,WRD2,RWRD)
4823
            XOr(WRD1,WRD2,RWRD)
4824
            if(LNotEqual(RWRD,0xFFFF))
4824
            if(LNotEqual(RWRD,0xFFFF))
4825
            {   Return(1)}
4825
            {   Return(1)}
4826
 
4826
 
4827
            Store(0x1234,WRD1)
4827
            Store(0x1234,WRD1)
4828
            Store(0xEDCB,WRD2)
4828
            Store(0xEDCB,WRD2)
4829
            XOr(WRD1,WRD2,RWRD)
4829
            XOr(WRD1,WRD2,RWRD)
4830
            if(LNotEqual(RWRD,0xFFFF))
4830
            if(LNotEqual(RWRD,0xFFFF))
4831
            {   Return(1)}
4831
            {   Return(1)}
4832
 
4832
 
4833
            // Store known values for checking later
4833
            // Store known values for checking later
4834
            Store(0x1234, WRD1)
4834
            Store(0x1234, WRD1)
4835
            if(LNotEqual(WRD1, 0x1234))
4835
            if(LNotEqual(WRD1, 0x1234))
4836
            {
4836
            {
4837
                Return(1)
4837
                Return(1)
4838
            }
4838
            }
4839
 
4839
 
4840
            Store(0xFEDC, WRD2)
4840
            Store(0xFEDC, WRD2)
4841
            if(LNotEqual(WRD2, 0xFEDC))
4841
            if(LNotEqual(WRD2, 0xFEDC))
4842
            {
4842
            {
4843
                Return(1)
4843
                Return(1)
4844
            }
4844
            }
4845
 
4845
 
4846
            Store(0x87AB, RWRD)
4846
            Store(0x87AB, RWRD)
4847
            if(LNotEqual(RWRD, 0x87AB))
4847
            if(LNotEqual(RWRD, 0x87AB))
4848
            {
4848
            {
4849
                Return(1)
4849
                Return(1)
4850
            }
4850
            }
4851
 
4851
 
4852
 
4852
 
4853
            //**************************************************
4853
            //**************************************************
4854
            // (DWD1) Bit1 ->0 and (DWD2)Bit2 -> 0 condition
4854
            // (DWD1) Bit1 ->0 and (DWD2)Bit2 -> 0 condition
4855
            Store(0x00000000,DWD1)
4855
            Store(0x00000000,DWD1)
4856
            Store(0x00000000,DWD2)
4856
            Store(0x00000000,DWD2)
4857
            XOr(DWD1,DWD2,RDWD)
4857
            XOr(DWD1,DWD2,RDWD)
4858
            if(LNotEqual(RDWD,0))
4858
            if(LNotEqual(RDWD,0))
4859
            {   Return(1)}
4859
            {   Return(1)}
4860
 
4860
 
4861
            // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 1 condition
4861
            // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 1 condition
4862
            Store(0xffffffff,DWD1)
4862
            Store(0xffffffff,DWD1)
4863
            Store(0xffffffff,DWD2)
4863
            Store(0xffffffff,DWD2)
4864
            XOr(DWD1,DWD2,RDWD)
4864
            XOr(DWD1,DWD2,RDWD)
4865
            if(LNotEqual(RDWD,0))
4865
            if(LNotEqual(RDWD,0))
4866
            {   Return(1)}
4866
            {   Return(1)}
4867
 
4867
 
4868
            // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 0 condition
4868
            // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 0 condition
4869
            Store(0x55555555,DWD1)
4869
            Store(0x55555555,DWD1)
4870
            Store(0xAAAAAAAA,DWD2)
4870
            Store(0xAAAAAAAA,DWD2)
4871
            XOr(DWD1,DWD2,RDWD)
4871
            XOr(DWD1,DWD2,RDWD)
4872
            if(LNotEqual(RDWD,0xFFFFFFFF))
4872
            if(LNotEqual(RDWD,0xFFFFFFFF))
4873
            {   Return(1)}
4873
            {   Return(1)}
4874
 
4874
 
4875
            //(DWD1) Bit1 ->0 and (DWD2)Bit2 -> 1 condition
4875
            //(DWD1) Bit1 ->0 and (DWD2)Bit2 -> 1 condition
4876
            Store(0xAAAAAAAA,DWD1)
4876
            Store(0xAAAAAAAA,DWD1)
4877
            Store(0x55555555,DWD2)
4877
            Store(0x55555555,DWD2)
4878
            XOr(DWD1,DWD2,RDWD)
4878
            XOr(DWD1,DWD2,RDWD)
4879
            if(LNotEqual(RDWD,0xFFFFFFFF))
4879
            if(LNotEqual(RDWD,0xFFFFFFFF))
4880
            {   Return(1)}
4880
            {   Return(1)}
4881
 
4881
 
4882
            // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 0 condition
4882
            // (DWD1) Bit1 ->1 and (DWD2)Bit2 -> 0 condition
4883
            Store(0x12345678,DWD1)
4883
            Store(0x12345678,DWD1)
4884
            Store(0xEDCBA987,DWD2)
4884
            Store(0xEDCBA987,DWD2)
4885
            XOr(DWD1,DWD2,RDWD)
4885
            XOr(DWD1,DWD2,RDWD)
4886
            if(LNotEqual(RDWD,0xFFFFFFFF))
4886
            if(LNotEqual(RDWD,0xFFFFFFFF))
4887
            {   Return(1)}
4887
            {   Return(1)}
4888
 
4888
 
4889
            Store(0x12345678,DWD1)
4889
            Store(0x12345678,DWD1)
4890
            if(LNotEqual(DWD1,0x12345678))
4890
            if(LNotEqual(DWD1,0x12345678))
4891
            {
4891
            {
4892
                Return(1)
4892
                Return(1)
4893
            }
4893
            }
4894
 
4894
 
4895
            Store(0xFEDCBA98,DWD2)
4895
            Store(0xFEDCBA98,DWD2)
4896
            if(LNotEqual(DWD2,0xFEDCBA98))
4896
            if(LNotEqual(DWD2,0xFEDCBA98))
4897
            {
4897
            {
4898
                Return(1)
4898
                Return(1)
4899
            }
4899
            }
4900
 
4900
 
4901
            Store(0x91827364,RDWD)
4901
            Store(0x91827364,RDWD)
4902
            if(LNotEqual(RDWD,0x91827364))
4902
            if(LNotEqual(RDWD,0x91827364))
4903
            {
4903
            {
4904
                Return(1)
4904
                Return(1)
4905
            }
4905
            }
4906
 
4906
 
4907
            //****************************************************
4907
            //****************************************************
4908
            // Check the stored single bits
4908
            // Check the stored single bits
4909
            if(LNotEqual(RES1, 1))
4909
            if(LNotEqual(RES1, 1))
4910
            {
4910
            {
4911
                Return(1)
4911
                Return(1)
4912
            }
4912
            }
4913
 
4913
 
4914
            if(LNotEqual(RES2, 1))
4914
            if(LNotEqual(RES2, 1))
4915
            {
4915
            {
4916
                Return(1)
4916
                Return(1)
4917
            }
4917
            }
4918
 
4918
 
4919
            if(LNotEqual(RES3, 1))
4919
            if(LNotEqual(RES3, 1))
4920
            {
4920
            {
4921
                Return(1)
4921
                Return(1)
4922
            }
4922
            }
4923
 
4923
 
4924
            if(LNotEqual(RES4, 1))
4924
            if(LNotEqual(RES4, 1))
4925
            {
4925
            {
4926
                Return(1)
4926
                Return(1)
4927
            }
4927
            }
4928
 
4928
 
4929
            // Change all of the single bit fields to zero
4929
            // Change all of the single bit fields to zero
4930
            Store(0, RES1)
4930
            Store(0, RES1)
4931
            Store(0, RES2)
4931
            Store(0, RES2)
4932
            Store(0, RES3)
4932
            Store(0, RES3)
4933
            Store(0, RES4)
4933
            Store(0, RES4)
4934
 
4934
 
4935
            // Now, check all of the fields
4935
            // Now, check all of the fields
4936
 
4936
 
4937
            // Byte
4937
            // Byte
4938
            if(LNotEqual(BYT1, 0x12))
4938
            if(LNotEqual(BYT1, 0x12))
4939
            {
4939
            {
4940
                Return(1)
4940
                Return(1)
4941
            }
4941
            }
4942
 
4942
 
4943
            if(LNotEqual(BYT2, 0xFE))
4943
            if(LNotEqual(BYT2, 0xFE))
4944
            {
4944
            {
4945
                Return(1)
4945
                Return(1)
4946
            }
4946
            }
4947
 
4947
 
4948
            if(LNotEqual(RBYT, 0xAB))
4948
            if(LNotEqual(RBYT, 0xAB))
4949
            {
4949
            {
4950
                Return(1)
4950
                Return(1)
4951
            }
4951
            }
4952
 
4952
 
4953
            // Word
4953
            // Word
4954
            if(LNotEqual(WRD1, 0x1234))
4954
            if(LNotEqual(WRD1, 0x1234))
4955
            {
4955
            {
4956
                Return(1)
4956
                Return(1)
4957
            }
4957
            }
4958
 
4958
 
4959
            if(LNotEqual(WRD2, 0xFEDC))
4959
            if(LNotEqual(WRD2, 0xFEDC))
4960
            {
4960
            {
4961
                Return(1)
4961
                Return(1)
4962
            }
4962
            }
4963
 
4963
 
4964
            if(LNotEqual(RWRD, 0x87AB))
4964
            if(LNotEqual(RWRD, 0x87AB))
4965
            {
4965
            {
4966
                Return(1)
4966
                Return(1)
4967
            }
4967
            }
4968
 
4968
 
4969
            // Dword
4969
            // Dword
4970
            if(LNotEqual(DWD1, 0x12345678))
4970
            if(LNotEqual(DWD1, 0x12345678))
4971
            {
4971
            {
4972
                Return(1)
4972
                Return(1)
4973
            }
4973
            }
4974
 
4974
 
4975
            if(LNotEqual(DWD2, 0xFEDCBA98))
4975
            if(LNotEqual(DWD2, 0xFEDCBA98))
4976
            {
4976
            {
4977
                Return(1)
4977
                Return(1)
4978
            }
4978
            }
4979
 
4979
 
4980
            if(LNotEqual(RDWD, 0x91827364))
4980
            if(LNotEqual(RDWD, 0x91827364))
4981
            {
4981
            {
4982
                Return(1)
4982
                Return(1)
4983
            }
4983
            }
4984
 
4984
 
4985
            // Bits
4985
            // Bits
4986
            if(LNotEqual(RES1, 0))
4986
            if(LNotEqual(RES1, 0))
4987
            {
4987
            {
4988
                Return(1)
4988
                Return(1)
4989
            }
4989
            }
4990
 
4990
 
4991
            if(LNotEqual(RES2, 0))
4991
            if(LNotEqual(RES2, 0))
4992
            {
4992
            {
4993
                Return(1)
4993
                Return(1)
4994
            }
4994
            }
4995
 
4995
 
4996
            if(LNotEqual(RES3, 0))
4996
            if(LNotEqual(RES3, 0))
4997
            {
4997
            {
4998
                Return(1)
4998
                Return(1)
4999
            }
4999
            }
5000
 
5000
 
5001
            if(LNotEqual(RES4, 0))
5001
            if(LNotEqual(RES4, 0))
5002
            {
5002
            {
5003
                Return(1)
5003
                Return(1)
5004
            }
5004
            }
5005
 
5005
 
5006
 
5006
 
5007
            Return(0)
5007
            Return(0)
5008
        }   //  TEST
5008
        }   //  TEST
5009
    }   //  XORD
5009
    }   //  XORD
5010
 
5010
 
5011
//
5011
//
5012
// test CrBytFld.asl
5012
// test CrBytFld.asl
5013
//
5013
//
5014
//  CrBytFld test
5014
//  CrBytFld test
5015
//      Test for CreateByteField.
5015
//      Test for CreateByteField.
5016
//      Tests creating byte field overlay of buffer stored in Local0.
5016
//      Tests creating byte field overlay of buffer stored in Local0.
5017
//      Tests need to be added for Arg0 and Name buffers.
5017
//      Tests need to be added for Arg0 and Name buffers.
5018
//
5018
//
5019
    Device (CRBF)
5019
    Device (CRBF)
5020
    {   //  Test device name
5020
    {   //  Test device name
5021
        Method (TEST)
5021
        Method (TEST)
5022
        {
5022
        {
5023
            Store ("++++++++ CrBytFld Test", Debug)
5023
            Store ("++++++++ CrBytFld Test", Debug)
5024
 
5024
 
5025
            //  Local0 is unitialized buffer with 4 elements
5025
            //  Local0 is unitialized buffer with 4 elements
5026
            Store (Buffer (4) {}, Local0)
5026
            Store (Buffer (4) {}, Local0)
5027
 
5027
 
5028
            //  create Byte Field named BF0 based on Local0 element 0
5028
            //  create Byte Field named BF0 based on Local0 element 0
5029
            CreateByteField (Local0, 0, BF0)
5029
            CreateByteField (Local0, 0, BF0)
5030
 
5030
 
5031
            //  validate CreateByteField did not alter Local0
5031
            //  validate CreateByteField did not alter Local0
5032
            Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
5032
            Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
5033
            If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
5033
            If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
5034
                {   Return (2)  }
5034
                {   Return (2)  }
5035
 
5035
 
5036
            //  store something into BF0
5036
            //  store something into BF0
5037
            Store (1, BF0)
5037
            Store (1, BF0)
5038
 
5038
 
5039
            //  validate Store did not alter Local0 object type
5039
            //  validate Store did not alter Local0 object type
5040
            Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
5040
            Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
5041
            If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
5041
            If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
5042
                {   Return (3)  }
5042
                {   Return (3)  }
5043
 
5043
 
5044
            //  verify that the Store into BF0 was successful
5044
            //  verify that the Store into BF0 was successful
5045
            If (LNotEqual (BF0, 1))
5045
            If (LNotEqual (BF0, 1))
5046
                {   Return (4)  }
5046
                {   Return (4)  }
5047
 
5047
 
5048
 
5048
 
5049
            //  create Byte Field named BF1 based on Local0 element 1
5049
            //  create Byte Field named BF1 based on Local0 element 1
5050
            CreateByteField (Local0, 1, BF1)
5050
            CreateByteField (Local0, 1, BF1)
5051
 
5051
 
5052
            //  validate CreateByteField did not alter Local0
5052
            //  validate CreateByteField did not alter Local0
5053
            Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
5053
            Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
5054
            If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
5054
            If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
5055
                {   Return (10) }
5055
                {   Return (10) }
5056
 
5056
 
5057
            //  store something into BF1
5057
            //  store something into BF1
5058
            Store (5, BF1)
5058
            Store (5, BF1)
5059
 
5059
 
5060
            //  validate Store did not alter Local0 object type
5060
            //  validate Store did not alter Local0 object type
5061
            Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
5061
            Store (ObjectType (Local0), Local1) //  Local1 = Local0 object type
5062
            If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
5062
            If (LNotEqual (Local1, 3))  //  Buffer object type value is 3
5063
                {   Return (11) }
5063
                {   Return (11) }
5064
 
5064
 
5065
            //  verify that the Store into BF1 was successful
5065
            //  verify that the Store into BF1 was successful
5066
            If (LNotEqual (BF1, 5))
5066
            If (LNotEqual (BF1, 5))
5067
                {   Return (12) }
5067
                {   Return (12) }
5068
 
5068
 
5069
            //  verify that the Store into BF1 did not alter BF0
5069
            //  verify that the Store into BF1 did not alter BF0
5070
            If (LNotEqual (BF0, 1))
5070
            If (LNotEqual (BF0, 1))
5071
                {   Return (13) }
5071
                {   Return (13) }
5072
 
5072
 
5073
 
5073
 
5074
            //  store something into BF0
5074
            //  store something into BF0
5075
            Store (0xFFFF, BF0)
5075
            Store (0xFFFF, BF0)
5076
 
5076
 
5077
            //  verify that the Store into BF0 was successful
5077
            //  verify that the Store into BF0 was successful
5078
            If (LNotEqual (BF0, 0xFF))
5078
            If (LNotEqual (BF0, 0xFF))
5079
                {   Return (20) }
5079
                {   Return (20) }
5080
 
5080
 
5081
            //  verify that the Store into BF0 did not alter BF1
5081
            //  verify that the Store into BF0 did not alter BF1
5082
            If (LNotEqual (BF1, 5))
5082
            If (LNotEqual (BF1, 5))
5083
                {   Return (21) }
5083
                {   Return (21) }
5084
 
5084
 
5085
 
5085
 
5086
            Return (0)
5086
            Return (0)
5087
        }   //  TEST
5087
        }   //  TEST
5088
    }   //  CRBF
5088
    }   //  CRBF
5089
 
5089
 
5090
//
5090
//
5091
// test IndexOp4.asl
5091
// test IndexOp4.asl
5092
//
5092
//
5093
//  IndexOp4 test
5093
//  IndexOp4 test
5094
//      This is just a subset of the many RegionOp/Index Field test cases.
5094
//      This is just a subset of the many RegionOp/Index Field test cases.
5095
//      Tests access of index fields smaller than 8 bits.
5095
//      Tests access of index fields smaller than 8 bits.
5096
//
5096
//
5097
    Device (IDX4)
5097
    Device (IDX4)
5098
    {   //  Test device name
5098
    {   //  Test device name
5099
 
5099
 
5100
        //  MADM:   Misaligned Dynamic RAM SystemMemory OperationRegion
5100
        //  MADM:   Misaligned Dynamic RAM SystemMemory OperationRegion
5101
        //          Tests OperationRegion memory access using misaligned BYTE,
5101
        //          Tests OperationRegion memory access using misaligned BYTE,
5102
        //          WORD, and DWORD field element accesses. Validation is performed
5102
        //          WORD, and DWORD field element accesses. Validation is performed
5103
        //          using both misaligned field entries and aligned field entries.
5103
        //          using both misaligned field entries and aligned field entries.
5104
        //
5104
        //
5105
        //          MADM returns 0 if all test cases pass or non-zero identifying
5105
        //          MADM returns 0 if all test cases pass or non-zero identifying
5106
        //          the failing test case for debug purposes. This non-zero numbers
5106
        //          the failing test case for debug purposes. This non-zero numbers
5107
        //          are not guaranteed to be in perfect sequence (i.e., test case
5107
        //          are not guaranteed to be in perfect sequence (i.e., test case
5108
        //          index), but are guaranteed to be unique so the failing test
5108
        //          index), but are guaranteed to be unique so the failing test
5109
        //          case can be uniquely identified.
5109
        //          case can be uniquely identified.
5110
        //
5110
        //
5111
        Method (MADM, 1)    //  Misaligned Dynamic RAM SystemMemory OperationRegion
5111
        Method (MADM, 1)    //  Misaligned Dynamic RAM SystemMemory OperationRegion
5112
        //  Arg0    --  SystemMemory OperationRegion base address
5112
        //  Arg0    --  SystemMemory OperationRegion base address
5113
        {   //  MADM:   Misaligned Dynamic RAM SystemMemory OperationRegion
5113
        {   //  MADM:   Misaligned Dynamic RAM SystemMemory OperationRegion
5114
            OperationRegion (RAM, SystemMemory, Arg0, 0x100)
5114
            OperationRegion (RAM, SystemMemory, Arg0, 0x100)
5115
            Field (RAM, DwordAcc, NoLock, Preserve)
5115
            Field (RAM, DwordAcc, NoLock, Preserve)
5116
            {   //  aligned field definition (for verification)
5116
            {   //  aligned field definition (for verification)
5117
                DWD0,   32, //  aligned DWORD field
5117
                DWD0,   32, //  aligned DWORD field
5118
                DWD1,   32      //  aligned DWORD field
5118
                DWD1,   32      //  aligned DWORD field
5119
            }
5119
            }
5120
            Field (RAM, ByteAcc, NoLock, Preserve)
5120
            Field (RAM, ByteAcc, NoLock, Preserve)
5121
            {   //  bit access field definition
5121
            {   //  bit access field definition
5122
                BIT0,   1,      //  single bit field entry
5122
                BIT0,   1,      //  single bit field entry
5123
                BIT1,   1,      //  single bit field entry
5123
                BIT1,   1,      //  single bit field entry
5124
                BIT2,   1,      //  single bit field entry
5124
                BIT2,   1,      //  single bit field entry
5125
                BIT3,   1,      //  single bit field entry
5125
                BIT3,   1,      //  single bit field entry
5126
                BIT4,   1,      //  single bit field entry
5126
                BIT4,   1,      //  single bit field entry
5127
                BIT5,   1,      //  single bit field entry
5127
                BIT5,   1,      //  single bit field entry
5128
                BIT6,   1,      //  single bit field entry
5128
                BIT6,   1,      //  single bit field entry
5129
                BIT7,   1,      //  single bit field entry
5129
                BIT7,   1,      //  single bit field entry
5130
                BIT8,   1,      //  single bit field entry
5130
                BIT8,   1,      //  single bit field entry
5131
                BIT9,   1,      //  single bit field entry
5131
                BIT9,   1,      //  single bit field entry
5132
                BITA,   1,      //  single bit field entry
5132
                BITA,   1,      //  single bit field entry
5133
                BITB,   1,      //  single bit field entry
5133
                BITB,   1,      //  single bit field entry
5134
                BITC,   1,      //  single bit field entry
5134
                BITC,   1,      //  single bit field entry
5135
                BITD,   1,      //  single bit field entry
5135
                BITD,   1,      //  single bit field entry
5136
                BITE,   1,      //  single bit field entry
5136
                BITE,   1,      //  single bit field entry
5137
                BITF,   1,      //  single bit field entry
5137
                BITF,   1,      //  single bit field entry
5138
                BI10,   1,      //  single bit field entry
5138
                BI10,   1,      //  single bit field entry
5139
                BI11,   1,      //  single bit field entry
5139
                BI11,   1,      //  single bit field entry
5140
                BI12,   1,      //  single bit field entry
5140
                BI12,   1,      //  single bit field entry
5141
                BI13,   1,      //  single bit field entry
5141
                BI13,   1,      //  single bit field entry
5142
                BI14,   1,      //  single bit field entry
5142
                BI14,   1,      //  single bit field entry
5143
                BI15,   1,      //  single bit field entry
5143
                BI15,   1,      //  single bit field entry
5144
                BI16,   1,      //  single bit field entry
5144
                BI16,   1,      //  single bit field entry
5145
                BI17,   1,      //  single bit field entry
5145
                BI17,   1,      //  single bit field entry
5146
                BI18,   1,      //  single bit field entry
5146
                BI18,   1,      //  single bit field entry
5147
                BI19,   1,      //  single bit field entry
5147
                BI19,   1,      //  single bit field entry
5148
                BI1A,   1,      //  single bit field entry
5148
                BI1A,   1,      //  single bit field entry
5149
                BI1B,   1,      //  single bit field entry
5149
                BI1B,   1,      //  single bit field entry
5150
                BI1C,   1,      //  single bit field entry
5150
                BI1C,   1,      //  single bit field entry
5151
                BI1D,   1,      //  single bit field entry
5151
                BI1D,   1,      //  single bit field entry
5152
                BI1E,   1,      //  single bit field entry
5152
                BI1E,   1,      //  single bit field entry
5153
                BI1F,   1       //  single bit field entry
5153
                BI1F,   1       //  single bit field entry
5154
            }   //  bit access field definition
5154
            }   //  bit access field definition
5155
 
5155
 
5156
            Field (RAM, ByteAcc, NoLock, Preserve)
5156
            Field (RAM, ByteAcc, NoLock, Preserve)
5157
            {   //  two-bit access field definition
5157
            {   //  two-bit access field definition
5158
                B2_0,   2,      //  single bit field entry
5158
                B2_0,   2,      //  single bit field entry
5159
                B2_1,   2,      //  single bit field entry
5159
                B2_1,   2,      //  single bit field entry
5160
                B2_2,   2,      //  single bit field entry
5160
                B2_2,   2,      //  single bit field entry
5161
                B2_3,   2,      //  single bit field entry
5161
                B2_3,   2,      //  single bit field entry
5162
                B2_4,   2,      //  single bit field entry
5162
                B2_4,   2,      //  single bit field entry
5163
                B2_5,   2,      //  single bit field entry
5163
                B2_5,   2,      //  single bit field entry
5164
                B2_6,   2,      //  single bit field entry
5164
                B2_6,   2,      //  single bit field entry
5165
                B2_7,   2,      //  single bit field entry
5165
                B2_7,   2,      //  single bit field entry
5166
                B2_8,   2,      //  single bit field entry
5166
                B2_8,   2,      //  single bit field entry
5167
                B2_9,   2,      //  single bit field entry
5167
                B2_9,   2,      //  single bit field entry
5168
                B2_A,   2,      //  single bit field entry
5168
                B2_A,   2,      //  single bit field entry
5169
                B2_B,   2,      //  single bit field entry
5169
                B2_B,   2,      //  single bit field entry
5170
                B2_C,   2,      //  single bit field entry
5170
                B2_C,   2,      //  single bit field entry
5171
                B2_D,   2,      //  single bit field entry
5171
                B2_D,   2,      //  single bit field entry
5172
                B2_E,   2,      //  single bit field entry
5172
                B2_E,   2,      //  single bit field entry
5173
                B2_F,   2       //  single bit field entry
5173
                B2_F,   2       //  single bit field entry
5174
            }   //  bit access field definition
5174
            }   //  bit access field definition
5175
 
5175
 
5176
            //  initialize memory contents using aligned field entries
5176
            //  initialize memory contents using aligned field entries
5177
            Store (0x5AA55AA5, DWD0)
5177
            Store (0x5AA55AA5, DWD0)
5178
            Store (0x5AA55AA5, DWD1)
5178
            Store (0x5AA55AA5, DWD1)
5179
 
5179
 
5180
            //  set memory contents to known values using misaligned field entries
5180
            //  set memory contents to known values using misaligned field entries
5181
            Store (0, BIT0)
5181
            Store (0, BIT0)
5182
                //  verify memory contents using misaligned field entries
5182
                //  verify memory contents using misaligned field entries
5183
                If (LNotEqual (BIT0, 0))
5183
                If (LNotEqual (BIT0, 0))
5184
                    {   Return (1)  }
5184
                    {   Return (1)  }
5185
                //  verify memory contents using aligned field entries
5185
                //  verify memory contents using aligned field entries
5186
                If (LNotEqual (DWD0, 0x5AA55AA4))
5186
                If (LNotEqual (DWD0, 0x5AA55AA4))
5187
                    {   Return (2)  }
5187
                    {   Return (2)  }
5188
 
5188
 
5189
            //  set memory contents to known values using misaligned field entries
5189
            //  set memory contents to known values using misaligned field entries
5190
            Store (1, BIT1)
5190
            Store (1, BIT1)
5191
                //  verify memory contents using misaligned field entries
5191
                //  verify memory contents using misaligned field entries
5192
                If (LNotEqual (BIT1, 1))
5192
                If (LNotEqual (BIT1, 1))
5193
                    {   Return (3)  }
5193
                    {   Return (3)  }
5194
                //  verify memory contents using aligned field entries
5194
                //  verify memory contents using aligned field entries
5195
                If (LNotEqual (DWD0, 0x5AA55AA6))
5195
                If (LNotEqual (DWD0, 0x5AA55AA6))
5196
                    {   Return (4)  }
5196
                    {   Return (4)  }
5197
 
5197
 
5198
            //  set memory contents to known values using misaligned field entries
5198
            //  set memory contents to known values using misaligned field entries
5199
            Store (0, BIT2)
5199
            Store (0, BIT2)
5200
                //  verify memory contents using misaligned field entries
5200
                //  verify memory contents using misaligned field entries
5201
                If (LNotEqual (BIT2, 0))
5201
                If (LNotEqual (BIT2, 0))
5202
                    {   Return (5)  }
5202
                    {   Return (5)  }
5203
                //  verify memory contents using aligned field entries
5203
                //  verify memory contents using aligned field entries
5204
                If (LNotEqual (DWD0, 0x5AA55AA2))
5204
                If (LNotEqual (DWD0, 0x5AA55AA2))
5205
                    {   Return (6)  }
5205
                    {   Return (6)  }
5206
 
5206
 
5207
            //  set memory contents to known values using misaligned field entries
5207
            //  set memory contents to known values using misaligned field entries
5208
            Store (1, BIT3)
5208
            Store (1, BIT3)
5209
                //  verify memory contents using misaligned field entries
5209
                //  verify memory contents using misaligned field entries
5210
                If (LNotEqual (BIT3, 1))
5210
                If (LNotEqual (BIT3, 1))
5211
                    {   Return (7)  }
5211
                    {   Return (7)  }
5212
                //  verify memory contents using aligned field entries
5212
                //  verify memory contents using aligned field entries
5213
                If (LNotEqual (DWD0, 0x5AA55AAA))
5213
                If (LNotEqual (DWD0, 0x5AA55AAA))
5214
                    {   Return (8)  }
5214
                    {   Return (8)  }
5215
 
5215
 
5216
            //  set memory contents to known values using misaligned field entries
5216
            //  set memory contents to known values using misaligned field entries
5217
            Store (1, BIT4)
5217
            Store (1, BIT4)
5218
                //  verify memory contents using misaligned field entries
5218
                //  verify memory contents using misaligned field entries
5219
                If (LNotEqual (BIT4, 1))
5219
                If (LNotEqual (BIT4, 1))
5220
                    {   Return (9)  }
5220
                    {   Return (9)  }
5221
                //  verify memory contents using aligned field entries
5221
                //  verify memory contents using aligned field entries
5222
                If (LNotEqual (DWD0, 0x5AA55ABA))
5222
                If (LNotEqual (DWD0, 0x5AA55ABA))
5223
                    {   Return (10) }
5223
                    {   Return (10) }
5224
 
5224
 
5225
            //  set memory contents to known values using misaligned field entries
5225
            //  set memory contents to known values using misaligned field entries
5226
            Store (0, BIT5)
5226
            Store (0, BIT5)
5227
                //  verify memory contents using misaligned field entries
5227
                //  verify memory contents using misaligned field entries
5228
                If (LNotEqual (BIT5, 0))
5228
                If (LNotEqual (BIT5, 0))
5229
                    {   Return (11) }
5229
                    {   Return (11) }
5230
                //  verify memory contents using aligned field entries
5230
                //  verify memory contents using aligned field entries
5231
                If (LNotEqual (DWD0, 0x5AA55A9A))
5231
                If (LNotEqual (DWD0, 0x5AA55A9A))
5232
                    {   Return (12) }
5232
                    {   Return (12) }
5233
 
5233
 
5234
            //  set memory contents to known values using misaligned field entries
5234
            //  set memory contents to known values using misaligned field entries
5235
            Store (1, BIT6)
5235
            Store (1, BIT6)
5236
                //  verify memory contents using misaligned field entries
5236
                //  verify memory contents using misaligned field entries
5237
                If (LNotEqual (BIT6, 1))
5237
                If (LNotEqual (BIT6, 1))
5238
                    {   Return (13) }
5238
                    {   Return (13) }
5239
                //  verify memory contents using aligned field entries
5239
                //  verify memory contents using aligned field entries
5240
                If (LNotEqual (DWD0, 0x5AA55ADA))
5240
                If (LNotEqual (DWD0, 0x5AA55ADA))
5241
                    {   Return (14) }
5241
                    {   Return (14) }
5242
 
5242
 
5243
            //  set memory contents to known values using misaligned field entries
5243
            //  set memory contents to known values using misaligned field entries
5244
            Store (0, BIT7)
5244
            Store (0, BIT7)
5245
                //  verify memory contents using misaligned field entries
5245
                //  verify memory contents using misaligned field entries
5246
                If (LNotEqual (BIT7, 0))
5246
                If (LNotEqual (BIT7, 0))
5247
                    {   Return (15) }
5247
                    {   Return (15) }
5248
                //  verify memory contents using aligned field entries
5248
                //  verify memory contents using aligned field entries
5249
                If (LNotEqual (DWD0, 0x5AA55A5A))
5249
                If (LNotEqual (DWD0, 0x5AA55A5A))
5250
                    {   Return (16) }
5250
                    {   Return (16) }
5251
 
5251
 
5252
            //  set memory contents to known values using misaligned field entries
5252
            //  set memory contents to known values using misaligned field entries
5253
            Store (1, BIT8)
5253
            Store (1, BIT8)
5254
                //  verify memory contents using misaligned field entries
5254
                //  verify memory contents using misaligned field entries
5255
                If (LNotEqual (BIT8, 1))
5255
                If (LNotEqual (BIT8, 1))
5256
                    {   Return (17) }
5256
                    {   Return (17) }
5257
                //  verify memory contents using aligned field entries
5257
                //  verify memory contents using aligned field entries
5258
                If (LNotEqual (DWD0, 0x5AA55B5A))
5258
                If (LNotEqual (DWD0, 0x5AA55B5A))
5259
                    {   Return (18) }
5259
                    {   Return (18) }
5260
 
5260
 
5261
            //  set memory contents to known values using misaligned field entries
5261
            //  set memory contents to known values using misaligned field entries
5262
            Store (0, BIT9)
5262
            Store (0, BIT9)
5263
                //  verify memory contents using misaligned field entries
5263
                //  verify memory contents using misaligned field entries
5264
                If (LNotEqual (BIT9, 0))
5264
                If (LNotEqual (BIT9, 0))
5265
                    {   Return (19) }
5265
                    {   Return (19) }
5266
                //  verify memory contents using aligned field entries
5266
                //  verify memory contents using aligned field entries
5267
                If (LNotEqual (DWD0, 0x5AA5595A))
5267
                If (LNotEqual (DWD0, 0x5AA5595A))
5268
                    {   Return (20) }
5268
                    {   Return (20) }
5269
 
5269
 
5270
            //  set memory contents to known values using misaligned field entries
5270
            //  set memory contents to known values using misaligned field entries
5271
            Store (1, BITA)
5271
            Store (1, BITA)
5272
                //  verify memory contents using misaligned field entries
5272
                //  verify memory contents using misaligned field entries
5273
                If (LNotEqual (BITA, 1))
5273
                If (LNotEqual (BITA, 1))
5274
                    {   Return (21) }
5274
                    {   Return (21) }
5275
                //  verify memory contents using aligned field entries
5275
                //  verify memory contents using aligned field entries
5276
                If (LNotEqual (DWD0, 0x5AA55D5A))
5276
                If (LNotEqual (DWD0, 0x5AA55D5A))
5277
                    {   Return (22) }
5277
                    {   Return (22) }
5278
 
5278
 
5279
            //  set memory contents to known values using misaligned field entries
5279
            //  set memory contents to known values using misaligned field entries
5280
            Store (0, BITB)
5280
            Store (0, BITB)
5281
                //  verify memory contents using misaligned field entries
5281
                //  verify memory contents using misaligned field entries
5282
                If (LNotEqual (BITB, 0))
5282
                If (LNotEqual (BITB, 0))
5283
                    {   Return (23) }
5283
                    {   Return (23) }
5284
                //  verify memory contents using aligned field entries
5284
                //  verify memory contents using aligned field entries
5285
                If (LNotEqual (DWD0, 0x5AA5555A))
5285
                If (LNotEqual (DWD0, 0x5AA5555A))
5286
                    {   Return (24) }
5286
                    {   Return (24) }
5287
 
5287
 
5288
            //  set memory contents to known values using misaligned field entries
5288
            //  set memory contents to known values using misaligned field entries
5289
            Store (0, BITC)
5289
            Store (0, BITC)
5290
                //  verify memory contents using misaligned field entries
5290
                //  verify memory contents using misaligned field entries
5291
                If (LNotEqual (BITC, 0))
5291
                If (LNotEqual (BITC, 0))
5292
                    {   Return (25) }
5292
                    {   Return (25) }
5293
                //  verify memory contents using aligned field entries
5293
                //  verify memory contents using aligned field entries
5294
                If (LNotEqual (DWD0, 0x5AA5455A))
5294
                If (LNotEqual (DWD0, 0x5AA5455A))
5295
                    {   Return (26) }
5295
                    {   Return (26) }
5296
 
5296
 
5297
            //  set memory contents to known values using misaligned field entries
5297
            //  set memory contents to known values using misaligned field entries
5298
            Store (1, BITD)
5298
            Store (1, BITD)
5299
                //  verify memory contents using misaligned field entries
5299
                //  verify memory contents using misaligned field entries
5300
                If (LNotEqual (BITD, 1))
5300
                If (LNotEqual (BITD, 1))
5301
                    {   Return (27) }
5301
                    {   Return (27) }
5302
                //  verify memory contents using aligned field entries
5302
                //  verify memory contents using aligned field entries
5303
                If (LNotEqual (DWD0, 0x5AA5655A))
5303
                If (LNotEqual (DWD0, 0x5AA5655A))
5304
                    {   Return (28) }
5304
                    {   Return (28) }
5305
 
5305
 
5306
            //  set memory contents to known values using misaligned field entries
5306
            //  set memory contents to known values using misaligned field entries
5307
            Store (0, BITE)
5307
            Store (0, BITE)
5308
                //  verify memory contents using misaligned field entries
5308
                //  verify memory contents using misaligned field entries
5309
                If (LNotEqual (BITE, 0))
5309
                If (LNotEqual (BITE, 0))
5310
                    {   Return (29) }
5310
                    {   Return (29) }
5311
                //  verify memory contents using aligned field entries
5311
                //  verify memory contents using aligned field entries
5312
                If (LNotEqual (DWD0, 0x5AA5255A))
5312
                If (LNotEqual (DWD0, 0x5AA5255A))
5313
                    {   Return (30) }
5313
                    {   Return (30) }
5314
 
5314
 
5315
            //  set memory contents to known values using misaligned field entries
5315
            //  set memory contents to known values using misaligned field entries
5316
            Store (1, BITF)
5316
            Store (1, BITF)
5317
                //  verify memory contents using misaligned field entries
5317
                //  verify memory contents using misaligned field entries
5318
                If (LNotEqual (BITF, 1))
5318
                If (LNotEqual (BITF, 1))
5319
                    {   Return (31) }
5319
                    {   Return (31) }
5320
                //  verify memory contents using aligned field entries
5320
                //  verify memory contents using aligned field entries
5321
                If (LNotEqual (DWD0, 0x5AA5A55A))
5321
                If (LNotEqual (DWD0, 0x5AA5A55A))
5322
                    {   Return (32) }
5322
                    {   Return (32) }
5323
 
5323
 
5324
            //  set memory contents to known values using misaligned field entries
5324
            //  set memory contents to known values using misaligned field entries
5325
            Store (0, BI10)
5325
            Store (0, BI10)
5326
                //  verify memory contents using misaligned field entries
5326
                //  verify memory contents using misaligned field entries
5327
                If (LNotEqual (BI10, 0))
5327
                If (LNotEqual (BI10, 0))
5328
                    {   Return (33) }
5328
                    {   Return (33) }
5329
                //  verify memory contents using aligned field entries
5329
                //  verify memory contents using aligned field entries
5330
                If (LNotEqual (DWD0, 0x5AA4A55A))
5330
                If (LNotEqual (DWD0, 0x5AA4A55A))
5331
                    {   Return (34) }
5331
                    {   Return (34) }
5332
 
5332
 
5333
            //  set memory contents to known values using misaligned field entries
5333
            //  set memory contents to known values using misaligned field entries
5334
            Store (1, BI11)
5334
            Store (1, BI11)
5335
                //  verify memory contents using misaligned field entries
5335
                //  verify memory contents using misaligned field entries
5336
                If (LNotEqual (BI11, 1))
5336
                If (LNotEqual (BI11, 1))
5337
                    {   Return (35) }
5337
                    {   Return (35) }
5338
                //  verify memory contents using aligned field entries
5338
                //  verify memory contents using aligned field entries
5339
                If (LNotEqual (DWD0, 0x5AA6A55A))
5339
                If (LNotEqual (DWD0, 0x5AA6A55A))
5340
                    {   Return (36) }
5340
                    {   Return (36) }
5341
 
5341
 
5342
            //  set memory contents to known values using misaligned field entries
5342
            //  set memory contents to known values using misaligned field entries
5343
            Store (0, BI12)
5343
            Store (0, BI12)
5344
                //  verify memory contents using misaligned field entries
5344
                //  verify memory contents using misaligned field entries
5345
                If (LNotEqual (BI12, 0))
5345
                If (LNotEqual (BI12, 0))
5346
                    {   Return (37) }
5346
                    {   Return (37) }
5347
                //  verify memory contents using aligned field entries
5347
                //  verify memory contents using aligned field entries
5348
                If (LNotEqual (DWD0, 0x5AA2A55A))
5348
                If (LNotEqual (DWD0, 0x5AA2A55A))
5349
                    {   Return (38) }
5349
                    {   Return (38) }
5350
 
5350
 
5351
            //  set memory contents to known values using misaligned field entries
5351
            //  set memory contents to known values using misaligned field entries
5352
            Store (1, BI13)
5352
            Store (1, BI13)
5353
                //  verify memory contents using misaligned field entries
5353
                //  verify memory contents using misaligned field entries
5354
                If (LNotEqual (BI13, 1))
5354
                If (LNotEqual (BI13, 1))
5355
                    {   Return (39) }
5355
                    {   Return (39) }
5356
                //  verify memory contents using aligned field entries
5356
                //  verify memory contents using aligned field entries
5357
                If (LNotEqual (DWD0, 0x5AAAA55A))
5357
                If (LNotEqual (DWD0, 0x5AAAA55A))
5358
                    {   Return (40) }
5358
                    {   Return (40) }
5359
 
5359
 
5360
            //  set memory contents to known values using misaligned field entries
5360
            //  set memory contents to known values using misaligned field entries
5361
            Store (1, BI14)
5361
            Store (1, BI14)
5362
                //  verify memory contents using misaligned field entries
5362
                //  verify memory contents using misaligned field entries
5363
                If (LNotEqual (BI14, 1))
5363
                If (LNotEqual (BI14, 1))
5364
                    {   Return (41) }
5364
                    {   Return (41) }
5365
                //  verify memory contents using aligned field entries
5365
                //  verify memory contents using aligned field entries
5366
                If (LNotEqual (DWD0, 0x5ABAA55A))
5366
                If (LNotEqual (DWD0, 0x5ABAA55A))
5367
                    {   Return (42) }
5367
                    {   Return (42) }
5368
 
5368
 
5369
            //  set memory contents to known values using misaligned field entries
5369
            //  set memory contents to known values using misaligned field entries
5370
            Store (0, BI15)
5370
            Store (0, BI15)
5371
                //  verify memory contents using misaligned field entries
5371
                //  verify memory contents using misaligned field entries
5372
                If (LNotEqual (BI15, 0))
5372
                If (LNotEqual (BI15, 0))
5373
                    {   Return (43) }
5373
                    {   Return (43) }
5374
                //  verify memory contents using aligned field entries
5374
                //  verify memory contents using aligned field entries
5375
                If (LNotEqual (DWD0, 0x5A9AA55A))
5375
                If (LNotEqual (DWD0, 0x5A9AA55A))
5376
                    {   Return (44) }
5376
                    {   Return (44) }
5377
 
5377
 
5378
            //  set memory contents to known values using misaligned field entries
5378
            //  set memory contents to known values using misaligned field entries
5379
            Store (1, BI16)
5379
            Store (1, BI16)
5380
                //  verify memory contents using misaligned field entries
5380
                //  verify memory contents using misaligned field entries
5381
                If (LNotEqual (BI16, 1))
5381
                If (LNotEqual (BI16, 1))
5382
                    {   Return (45) }
5382
                    {   Return (45) }
5383
                //  verify memory contents using aligned field entries
5383
                //  verify memory contents using aligned field entries
5384
                If (LNotEqual (DWD0, 0x5ADAA55A))
5384
                If (LNotEqual (DWD0, 0x5ADAA55A))
5385
                    {   Return (46) }
5385
                    {   Return (46) }
5386
 
5386
 
5387
            //  set memory contents to known values using misaligned field entries
5387
            //  set memory contents to known values using misaligned field entries
5388
            Store (0, BI17)
5388
            Store (0, BI17)
5389
                //  verify memory contents using misaligned field entries
5389
                //  verify memory contents using misaligned field entries
5390
                If (LNotEqual (BI17, 0))
5390
                If (LNotEqual (BI17, 0))
5391
                    {   Return (47) }
5391
                    {   Return (47) }
5392
                //  verify memory contents using aligned field entries
5392
                //  verify memory contents using aligned field entries
5393
                If (LNotEqual (DWD0, 0x5A5AA55A))
5393
                If (LNotEqual (DWD0, 0x5A5AA55A))
5394
                    {   Return (48) }
5394
                    {   Return (48) }
5395
 
5395
 
5396
            //  set memory contents to known values using misaligned field entries
5396
            //  set memory contents to known values using misaligned field entries
5397
            Store (1, BI18)
5397
            Store (1, BI18)
5398
                //  verify memory contents using misaligned field entries
5398
                //  verify memory contents using misaligned field entries
5399
                If (LNotEqual (BI18, 1))
5399
                If (LNotEqual (BI18, 1))
5400
                    {   Return (49) }
5400
                    {   Return (49) }
5401
                //  verify memory contents using aligned field entries
5401
                //  verify memory contents using aligned field entries
5402
                If (LNotEqual (DWD0, 0x5B5AA55A))
5402
                If (LNotEqual (DWD0, 0x5B5AA55A))
5403
                    {   Return (50) }
5403
                    {   Return (50) }
5404
 
5404
 
5405
            //  set memory contents to known values using misaligned field entries
5405
            //  set memory contents to known values using misaligned field entries
5406
            Store (0, BI19)
5406
            Store (0, BI19)
5407
                //  verify memory contents using misaligned field entries
5407
                //  verify memory contents using misaligned field entries
5408
                If (LNotEqual (BI19, 0))
5408
                If (LNotEqual (BI19, 0))
5409
                    {   Return (51) }
5409
                    {   Return (51) }
5410
                //  verify memory contents using aligned field entries
5410
                //  verify memory contents using aligned field entries
5411
                If (LNotEqual (DWD0, 0x595AA55A))
5411
                If (LNotEqual (DWD0, 0x595AA55A))
5412
                    {   Return (52) }
5412
                    {   Return (52) }
5413
 
5413
 
5414
            //  set memory contents to known values using misaligned field entries
5414
            //  set memory contents to known values using misaligned field entries
5415
            Store (1, BI1A)
5415
            Store (1, BI1A)
5416
                //  verify memory contents using misaligned field entries
5416
                //  verify memory contents using misaligned field entries
5417
                If (LNotEqual (BI1A, 1))
5417
                If (LNotEqual (BI1A, 1))
5418
                    {   Return (53) }
5418
                    {   Return (53) }
5419
                //  verify memory contents using aligned field entries
5419
                //  verify memory contents using aligned field entries
5420
                If (LNotEqual (DWD0, 0x5D5AA55A))
5420
                If (LNotEqual (DWD0, 0x5D5AA55A))
5421
                    {   Return (54) }
5421
                    {   Return (54) }
5422
 
5422
 
5423
            //  set memory contents to known values using misaligned field entries
5423
            //  set memory contents to known values using misaligned field entries
5424
            Store (0, BI1B)
5424
            Store (0, BI1B)
5425
                //  verify memory contents using misaligned field entries
5425
                //  verify memory contents using misaligned field entries
5426
                If (LNotEqual (BI1B, 0))
5426
                If (LNotEqual (BI1B, 0))
5427
                    {   Return (55) }
5427
                    {   Return (55) }
5428
                //  verify memory contents using aligned field entries
5428
                //  verify memory contents using aligned field entries
5429
                If (LNotEqual (DWD0, 0x555AA55A))
5429
                If (LNotEqual (DWD0, 0x555AA55A))
5430
                    {   Return (56) }
5430
                    {   Return (56) }
5431
 
5431
 
5432
            //  set memory contents to known values using misaligned field entries
5432
            //  set memory contents to known values using misaligned field entries
5433
            Store (0, BI1C)
5433
            Store (0, BI1C)
5434
                //  verify memory contents using misaligned field entries
5434
                //  verify memory contents using misaligned field entries
5435
                If (LNotEqual (BI1C, 0))
5435
                If (LNotEqual (BI1C, 0))
5436
                    {   Return (57) }
5436
                    {   Return (57) }
5437
                //  verify memory contents using aligned field entries
5437
                //  verify memory contents using aligned field entries
5438
                If (LNotEqual (DWD0, 0x455AA55A))
5438
                If (LNotEqual (DWD0, 0x455AA55A))
5439
                    {   Return (58) }
5439
                    {   Return (58) }
5440
 
5440
 
5441
            //  set memory contents to known values using misaligned field entries
5441
            //  set memory contents to known values using misaligned field entries
5442
            Store (1, BI1D)
5442
            Store (1, BI1D)
5443
                //  verify memory contents using misaligned field entries
5443
                //  verify memory contents using misaligned field entries
5444
                If (LNotEqual (BI1D, 1))
5444
                If (LNotEqual (BI1D, 1))
5445
                    {   Return (59) }
5445
                    {   Return (59) }
5446
                //  verify memory contents using aligned field entries
5446
                //  verify memory contents using aligned field entries
5447
                If (LNotEqual (DWD0, 0x655AA55A))
5447
                If (LNotEqual (DWD0, 0x655AA55A))
5448
                    {   Return (60) }
5448
                    {   Return (60) }
5449
 
5449
 
5450
            //  set memory contents to known values using misaligned field entries
5450
            //  set memory contents to known values using misaligned field entries
5451
            Store (0, BI1E)
5451
            Store (0, BI1E)
5452
                //  verify memory contents using misaligned field entries
5452
                //  verify memory contents using misaligned field entries
5453
                If (LNotEqual (BI1E, 0))
5453
                If (LNotEqual (BI1E, 0))
5454
                    {   Return (61) }
5454
                    {   Return (61) }
5455
                //  verify memory contents using aligned field entries
5455
                //  verify memory contents using aligned field entries
5456
                If (LNotEqual (DWD0, 0x255AA55A))
5456
                If (LNotEqual (DWD0, 0x255AA55A))
5457
                    {   Return (62) }
5457
                    {   Return (62) }
5458
 
5458
 
5459
            //  set memory contents to known values using misaligned field entries
5459
            //  set memory contents to known values using misaligned field entries
5460
            Store (1, BI1F)
5460
            Store (1, BI1F)
5461
                //  verify memory contents using misaligned field entries
5461
                //  verify memory contents using misaligned field entries
5462
                If (LNotEqual (BI1F, 1))
5462
                If (LNotEqual (BI1F, 1))
5463
                    {   Return (63) }
5463
                    {   Return (63) }
5464
                //  verify memory contents using aligned field entries
5464
                //  verify memory contents using aligned field entries
5465
                If (LNotEqual (DWD0, 0xA55AA55A))
5465
                If (LNotEqual (DWD0, 0xA55AA55A))
5466
                    {   Return (64) }
5466
                    {   Return (64) }
5467
 
5467
 
5468
 
5468
 
5469
            //  set memory contents to known values using misaligned field entries
5469
            //  set memory contents to known values using misaligned field entries
5470
            Store (3, B2_0)
5470
            Store (3, B2_0)
5471
                //  verify memory contents using misaligned field entries
5471
                //  verify memory contents using misaligned field entries
5472
                If (LNotEqual (B2_0, 3))
5472
                If (LNotEqual (B2_0, 3))
5473
                    {   Return (65) }
5473
                    {   Return (65) }
5474
                //  verify memory contents using aligned field entries
5474
                //  verify memory contents using aligned field entries
5475
                If (LNotEqual (DWD0, 0xA55AA55B))
5475
                If (LNotEqual (DWD0, 0xA55AA55B))
5476
                    {   Return (66) }
5476
                    {   Return (66) }
5477
 
5477
 
5478
            //  set memory contents to known values using misaligned field entries
5478
            //  set memory contents to known values using misaligned field entries
5479
            Store (1, B2_1)
5479
            Store (1, B2_1)
5480
                //  verify memory contents using misaligned field entries
5480
                //  verify memory contents using misaligned field entries
5481
                If (LNotEqual (B2_1, 1))
5481
                If (LNotEqual (B2_1, 1))
5482
                    {   Return (67) }
5482
                    {   Return (67) }
5483
                //  verify memory contents using aligned field entries
5483
                //  verify memory contents using aligned field entries
5484
                If (LNotEqual (DWD0, 0xA55AA557))
5484
                If (LNotEqual (DWD0, 0xA55AA557))
5485
                    {   Return (68) }
5485
                    {   Return (68) }
5486
 
5486
 
5487
            //  set memory contents to known values using misaligned field entries
5487
            //  set memory contents to known values using misaligned field entries
5488
            Store (0, B2_2)
5488
            Store (0, B2_2)
5489
                //  verify memory contents using misaligned field entries
5489
                //  verify memory contents using misaligned field entries
5490
                If (LNotEqual (B2_2, 0))
5490
                If (LNotEqual (B2_2, 0))
5491
                    {   Return (69) }
5491
                    {   Return (69) }
5492
                //  verify memory contents using aligned field entries
5492
                //  verify memory contents using aligned field entries
5493
                If (LNotEqual (DWD0, 0xA55AA547))
5493
                If (LNotEqual (DWD0, 0xA55AA547))
5494
                    {   Return (70) }
5494
                    {   Return (70) }
5495
 
5495
 
5496
            //  set memory contents to known values using misaligned field entries
5496
            //  set memory contents to known values using misaligned field entries
5497
            Store (3, B2_3)
5497
            Store (3, B2_3)
5498
                //  verify memory contents using misaligned field entries
5498
                //  verify memory contents using misaligned field entries
5499
                If (LNotEqual (B2_3, 3))
5499
                If (LNotEqual (B2_3, 3))
5500
                    {   Return (71) }
5500
                    {   Return (71) }
5501
                //  verify memory contents using aligned field entries
5501
                //  verify memory contents using aligned field entries
5502
                If (LNotEqual (DWD0, 0xA55AA5C7))
5502
                If (LNotEqual (DWD0, 0xA55AA5C7))
5503
                    {   Return (72) }
5503
                    {   Return (72) }
5504
 
5504
 
5505
            //  set memory contents to known values using misaligned field entries
5505
            //  set memory contents to known values using misaligned field entries
5506
            Store (3, B2_4)
5506
            Store (3, B2_4)
5507
                //  verify memory contents using misaligned field entries
5507
                //  verify memory contents using misaligned field entries
5508
                If (LNotEqual (B2_4, 3))
5508
                If (LNotEqual (B2_4, 3))
5509
                    {   Return (73) }
5509
                    {   Return (73) }
5510
                //  verify memory contents using aligned field entries
5510
                //  verify memory contents using aligned field entries
5511
                If (LNotEqual (DWD0, 0xA55AA7C7))
5511
                If (LNotEqual (DWD0, 0xA55AA7C7))
5512
                    {   Return (74) }
5512
                    {   Return (74) }
5513
 
5513
 
5514
            //  set memory contents to known values using misaligned field entries
5514
            //  set memory contents to known values using misaligned field entries
5515
            Store (0, B2_5)
5515
            Store (0, B2_5)
5516
                //  verify memory contents using misaligned field entries
5516
                //  verify memory contents using misaligned field entries
5517
                If (LNotEqual (B2_5, 0))
5517
                If (LNotEqual (B2_5, 0))
5518
                    {   Return (75) }
5518
                    {   Return (75) }
5519
                //  verify memory contents using aligned field entries
5519
                //  verify memory contents using aligned field entries
5520
                If (LNotEqual (DWD0, 0xA55AA3C7))
5520
                If (LNotEqual (DWD0, 0xA55AA3C7))
5521
                    {   Return (76) }
5521
                    {   Return (76) }
5522
 
5522
 
5523
            //  set memory contents to known values using misaligned field entries
5523
            //  set memory contents to known values using misaligned field entries
5524
            Store (1, B2_6)
5524
            Store (1, B2_6)
5525
                //  verify memory contents using misaligned field entries
5525
                //  verify memory contents using misaligned field entries
5526
                If (LNotEqual (B2_6, 1))
5526
                If (LNotEqual (B2_6, 1))
5527
                    {   Return (77) }
5527
                    {   Return (77) }
5528
                //  verify memory contents using aligned field entries
5528
                //  verify memory contents using aligned field entries
5529
                If (LNotEqual (DWD0, 0xA55A93C7))
5529
                If (LNotEqual (DWD0, 0xA55A93C7))
5530
                    {   Return (78) }
5530
                    {   Return (78) }
5531
 
5531
 
5532
            //  set memory contents to known values using misaligned field entries
5532
            //  set memory contents to known values using misaligned field entries
5533
            Store (1, B2_7)
5533
            Store (1, B2_7)
5534
                //  verify memory contents using misaligned field entries
5534
                //  verify memory contents using misaligned field entries
5535
                If (LNotEqual (B2_7, 1))
5535
                If (LNotEqual (B2_7, 1))
5536
                    {   Return (79) }
5536
                    {   Return (79) }
5537
                //  verify memory contents using aligned field entries
5537
                //  verify memory contents using aligned field entries
5538
                If (LNotEqual (DWD0, 0xA55A53C7))
5538
                If (LNotEqual (DWD0, 0xA55A53C7))
5539
                    {   Return (80) }
5539
                    {   Return (80) }
5540
 
5540
 
5541
            //  set memory contents to known values using misaligned field entries
5541
            //  set memory contents to known values using misaligned field entries
5542
            Store (0, B2_8)
5542
            Store (0, B2_8)
5543
                //  verify memory contents using misaligned field entries
5543
                //  verify memory contents using misaligned field entries
5544
                If (LNotEqual (B2_8, 0))
5544
                If (LNotEqual (B2_8, 0))
5545
                    {   Return (81) }
5545
                    {   Return (81) }
5546
                //  verify memory contents using aligned field entries
5546
                //  verify memory contents using aligned field entries
5547
                If (LNotEqual (DWD0, 0xA55853C7))
5547
                If (LNotEqual (DWD0, 0xA55853C7))
5548
                    {   Return (82) }
5548
                    {   Return (82) }
5549
 
5549
 
5550
            //  set memory contents to known values using misaligned field entries
5550
            //  set memory contents to known values using misaligned field entries
5551
            Store (1, B2_9)
5551
            Store (1, B2_9)
5552
                //  verify memory contents using misaligned field entries
5552
                //  verify memory contents using misaligned field entries
5553
                If (LNotEqual (B2_9, 1))
5553
                If (LNotEqual (B2_9, 1))
5554
                    {   Return (83) }
5554
                    {   Return (83) }
5555
                //  verify memory contents using aligned field entries
5555
                //  verify memory contents using aligned field entries
5556
                If (LNotEqual (DWD0, 0xA55453C7))
5556
                If (LNotEqual (DWD0, 0xA55453C7))
5557
                    {   Return (84) }
5557
                    {   Return (84) }
5558
 
5558
 
5559
            //  set memory contents to known values using misaligned field entries
5559
            //  set memory contents to known values using misaligned field entries
5560
            Store (2, B2_A)
5560
            Store (2, B2_A)
5561
                //  verify memory contents using misaligned field entries
5561
                //  verify memory contents using misaligned field entries
5562
                If (LNotEqual (B2_A, 2))
5562
                If (LNotEqual (B2_A, 2))
5563
                    {   Return (85) }
5563
                    {   Return (85) }
5564
                //  verify memory contents using aligned field entries
5564
                //  verify memory contents using aligned field entries
5565
                If (LNotEqual (DWD0, 0xA56453C7))
5565
                If (LNotEqual (DWD0, 0xA56453C7))
5566
                    {   Return (86) }
5566
                    {   Return (86) }
5567
 
5567
 
5568
            //  set memory contents to known values using misaligned field entries
5568
            //  set memory contents to known values using misaligned field entries
5569
            Store (2, B2_B)
5569
            Store (2, B2_B)
5570
                //  verify memory contents using misaligned field entries
5570
                //  verify memory contents using misaligned field entries
5571
                If (LNotEqual (B2_B, 2))
5571
                If (LNotEqual (B2_B, 2))
5572
                    {   Return (87) }
5572
                    {   Return (87) }
5573
                //  verify memory contents using aligned field entries
5573
                //  verify memory contents using aligned field entries
5574
                If (LNotEqual (DWD0, 0xA5A453C7))
5574
                If (LNotEqual (DWD0, 0xA5A453C7))
5575
                    {   Return (88) }
5575
                    {   Return (88) }
5576
 
5576
 
5577
            //  set memory contents to known values using misaligned field entries
5577
            //  set memory contents to known values using misaligned field entries
5578
            Store (3, B2_C)
5578
            Store (3, B2_C)
5579
                //  verify memory contents using misaligned field entries
5579
                //  verify memory contents using misaligned field entries
5580
                If (LNotEqual (B2_C, 3))
5580
                If (LNotEqual (B2_C, 3))
5581
                    {   Return (89) }
5581
                    {   Return (89) }
5582
                //  verify memory contents using aligned field entries
5582
                //  verify memory contents using aligned field entries
5583
                If (LNotEqual (DWD0, 0xA7A453C7))
5583
                If (LNotEqual (DWD0, 0xA7A453C7))
5584
                    {   Return (90) }
5584
                    {   Return (90) }
5585
 
5585
 
5586
            //  set memory contents to known values using misaligned field entries
5586
            //  set memory contents to known values using misaligned field entries
5587
            Store (3, B2_D)
5587
            Store (3, B2_D)
5588
                //  verify memory contents using misaligned field entries
5588
                //  verify memory contents using misaligned field entries
5589
                If (LNotEqual (B2_D, 3))
5589
                If (LNotEqual (B2_D, 3))
5590
                    {   Return (91) }
5590
                    {   Return (91) }
5591
                //  verify memory contents using aligned field entries
5591
                //  verify memory contents using aligned field entries
5592
                If (LNotEqual (DWD0, 0xAFA453C7))
5592
                If (LNotEqual (DWD0, 0xAFA453C7))
5593
                    {   Return (92) }
5593
                    {   Return (92) }
5594
 
5594
 
5595
            //  set memory contents to known values using misaligned field entries
5595
            //  set memory contents to known values using misaligned field entries
5596
            Store (1, B2_E)
5596
            Store (1, B2_E)
5597
                //  verify memory contents using misaligned field entries
5597
                //  verify memory contents using misaligned field entries
5598
                If (LNotEqual (B2_E, 1))
5598
                If (LNotEqual (B2_E, 1))
5599
                    {   Return (93) }
5599
                    {   Return (93) }
5600
                //  verify memory contents using aligned field entries
5600
                //  verify memory contents using aligned field entries
5601
                If (LNotEqual (DWD0, 0x9FA453C7))
5601
                If (LNotEqual (DWD0, 0x9FA453C7))
5602
                    {   Return (94) }
5602
                    {   Return (94) }
5603
 
5603
 
5604
            //  set memory contents to known values using misaligned field entries
5604
            //  set memory contents to known values using misaligned field entries
5605
            Store (0, B2_F)
5605
            Store (0, B2_F)
5606
                //  verify memory contents using misaligned field entries
5606
                //  verify memory contents using misaligned field entries
5607
                If (LNotEqual (B2_F, 0))
5607
                If (LNotEqual (B2_F, 0))
5608
                    {   Return (95) }
5608
                    {   Return (95) }
5609
                //  verify memory contents using aligned field entries
5609
                //  verify memory contents using aligned field entries
5610
                If (LNotEqual (DWD0, 0x1FA453C7))
5610
                If (LNotEqual (DWD0, 0x1FA453C7))
5611
                    {   Return (96) }
5611
                    {   Return (96) }
5612
 
5612
 
5613
 
5613
 
5614
            Return (0)  //  pass
5614
            Return (0)  //  pass
5615
        }   //  MADM:   Misaligned Dynamic RAM SystemMemory OperationRegion
5615
        }   //  MADM:   Misaligned Dynamic RAM SystemMemory OperationRegion
5616
 
5616
 
5617
        Method (TEST)
5617
        Method (TEST)
5618
        {
5618
        {
5619
            Store ("++++++++ IndexOp4 Test", Debug)
5619
            Store ("++++++++ IndexOp4 Test", Debug)
5620
 
5620
 
5621
            //  MADM (Misaligned Dynamic RAM SystemMemory OperationRegion) arguments:
5621
            //  MADM (Misaligned Dynamic RAM SystemMemory OperationRegion) arguments:
5622
            //      Arg0    --  SystemMemory OperationRegion base address
5622
            //      Arg0    --  SystemMemory OperationRegion base address
5623
            Store (MADM (0x800000), Local0)
5623
            Store (MADM (0x800000), Local0)
5624
            If (LNotEqual (Local0, 0))      //  MADM returns zero if successful
5624
            If (LNotEqual (Local0, 0))      //  MADM returns zero if successful
5625
                {   Return (Local0) }       //  failure:    return MADM error code
5625
                {   Return (Local0) }       //  failure:    return MADM error code
5626
 
5626
 
5627
            Return (Local0)
5627
            Return (Local0)
5628
        }   //  TEST
5628
        }   //  TEST
5629
    }   //  IDX4
5629
    }   //  IDX4
5630
 
5630
 
5631
//
5631
//
5632
// test Event.asl
5632
// test Event.asl
5633
//
5633
//
5634
//  EventOp, ResetOp, SignalOp, and WaitOp test cases.
5634
//  EventOp, ResetOp, SignalOp, and WaitOp test cases.
5635
//
5635
//
5636
    Device (EVNT)
5636
    Device (EVNT)
5637
    {
5637
    {
5638
        Event (EVNT)    //  event synchronization object
5638
        Event (EVNT)    //  event synchronization object
5639
 
5639
 
5640
        Method (TEVN, 1)
5640
        Method (TEVN, 1)
5641
        //  Arg0:   time to Wait for event in milliseconds
5641
        //  Arg0:   time to Wait for event in milliseconds
5642
        {   //  TEVN control method to test ResetOp, SignalOp, and WaitOp
5642
        {   //  TEVN control method to test ResetOp, SignalOp, and WaitOp
5643
            //  reset EVNT to initialization (zero) state
5643
            //  reset EVNT to initialization (zero) state
5644
            Reset (EVNT)
5644
            Reset (EVNT)
5645
 
5645
 
5646
            //  prime EVNT with two outstanding signals
5646
            //  prime EVNT with two outstanding signals
5647
            Signal (EVNT)
5647
            Signal (EVNT)
5648
            Signal (EVNT)
5648
            Signal (EVNT)
5649
 
5649
 
5650
 
5650
 
5651
            //  acquire existing signal
5651
            //  acquire existing signal
5652
            Store (Wait (EVNT, Arg0), Local0)
5652
            Store (Wait (EVNT, Arg0), Local0)
5653
 
5653
 
5654
            //  validate Local0 is a Number
5654
            //  validate Local0 is a Number
5655
            Store (ObjectType (Local0), Local1)
5655
            Store (ObjectType (Local0), Local1)
5656
            If (LNotEqual (Local1, 1))  //  Number is type 1
5656
            If (LNotEqual (Local1, 1))  //  Number is type 1
5657
                {   Return (0x21)   }       //  Local1 indicates Local0 is not a Number
5657
                {   Return (0x21)   }       //  Local1 indicates Local0 is not a Number
5658
 
5658
 
5659
            If (LNotEqual (Local0, 0))  //  Number is type 1
5659
            If (LNotEqual (Local0, 0))  //  Number is type 1
5660
                {   Return (0x22)   }       //  timeout occurred without acquiring signal
5660
                {   Return (0x22)   }       //  timeout occurred without acquiring signal
5661
 
5661
 
5662
            Store ("Acquire 1st existing signal PASS", Debug)
5662
            Store ("Acquire 1st existing signal PASS", Debug)
5663
 
5663
 
5664
 
5664
 
5665
            //  acquire existing signal
5665
            //  acquire existing signal
5666
            Store (Wait (EVNT, Arg0), Local0)
5666
            Store (Wait (EVNT, Arg0), Local0)
5667
 
5667
 
5668
            //  validate Local0 is a Number
5668
            //  validate Local0 is a Number
5669
            Store (ObjectType (Local0), Local1)
5669
            Store (ObjectType (Local0), Local1)
5670
            If (LNotEqual (Local1, 1))  //  Number is type 1
5670
            If (LNotEqual (Local1, 1))  //  Number is type 1
5671
                {   Return (0x31)   }       //  Local1 indicates Local0 is not a Number
5671
                {   Return (0x31)   }       //  Local1 indicates Local0 is not a Number
5672
 
5672
 
5673
            If (LNotEqual (Local0, 0))  //  Number is type 1
5673
            If (LNotEqual (Local0, 0))  //  Number is type 1
5674
                {   Return (0x32)   }       //  timeout occurred without acquiring signal
5674
                {   Return (0x32)   }       //  timeout occurred without acquiring signal
5675
 
5675
 
5676
            Store ("Acquire 2nd existing signal PASS", Debug)
5676
            Store ("Acquire 2nd existing signal PASS", Debug)
5677
 
5677
 
5678
 
5678
 
5679
            //  ensure WaitOp timeout test cases do not hang
5679
            //  ensure WaitOp timeout test cases do not hang
5680
            if (LEqual (Arg0, 0xFFFF))
5680
            if (LEqual (Arg0, 0xFFFF))
5681
                {   Store (0xFFFE, Arg0)    }
5681
                {   Store (0xFFFE, Arg0)    }
5682
 
5682
 
5683
            //  acquire non-existing signal
5683
            //  acquire non-existing signal
5684
            Store (Wait (EVNT, Arg0), Local0)
5684
            Store (Wait (EVNT, Arg0), Local0)
5685
 
5685
 
5686
            //  validate Local0 is a Number
5686
            //  validate Local0 is a Number
5687
            Store (ObjectType (Local0), Local1)
5687
            Store (ObjectType (Local0), Local1)
5688
            If (LNotEqual (Local1, 1))  //  Number is type 1
5688
            If (LNotEqual (Local1, 1))  //  Number is type 1
5689
                {   Return (0x41)   }       //  Local1 indicates Local0 is not a Number
5689
                {   Return (0x41)   }       //  Local1 indicates Local0 is not a Number
5690
 
5690
 
5691
            If (LEqual (Local0, 0))     //  Number is type 1
5691
            If (LEqual (Local0, 0))     //  Number is type 1
5692
                {   Return (0x42)   }       //  non-existant signal was acquired
5692
                {   Return (0x42)   }       //  non-existant signal was acquired
5693
 
5693
 
5694
            Store ("Acquire signal timeout PASS", Debug)
5694
            Store ("Acquire signal timeout PASS", Debug)
5695
 
5695
 
5696
 
5696
 
5697
            //  prime EVNT with two outstanding signals
5697
            //  prime EVNT with two outstanding signals
5698
            Signal (EVNT)
5698
            Signal (EVNT)
5699
            Signal (EVNT)
5699
            Signal (EVNT)
5700
 
5700
 
5701
            //  reset EVNT to initialization (zero) state
5701
            //  reset EVNT to initialization (zero) state
5702
            Reset (EVNT)
5702
            Reset (EVNT)
5703
 
5703
 
5704
            //  acquire non-existing signal
5704
            //  acquire non-existing signal
5705
            Store (Wait (EVNT, Arg0), Local0)
5705
            Store (Wait (EVNT, Arg0), Local0)
5706
 
5706
 
5707
            //  validate Local0 is a Number
5707
            //  validate Local0 is a Number
5708
            Store (ObjectType (Local0), Local1)
5708
            Store (ObjectType (Local0), Local1)
5709
            If (LNotEqual (Local1, 1))  //  Number is type 1
5709
            If (LNotEqual (Local1, 1))  //  Number is type 1
5710
                {   Return (0x51)   }       //  Local1 indicates Local0 is not a Number
5710
                {   Return (0x51)   }       //  Local1 indicates Local0 is not a Number
5711
 
5711
 
5712
            If (LEqual (Local0, 0))     //  Number is type 1
5712
            If (LEqual (Local0, 0))     //  Number is type 1
5713
                {   Return (0x52)   }       //  non-existant signal was acquired
5713
                {   Return (0x52)   }       //  non-existant signal was acquired
5714
 
5714
 
5715
            Store ("Reset signal PASS", Debug)
5715
            Store ("Reset signal PASS", Debug)
5716
 
5716
 
5717
 
5717
 
5718
            //  acquire non-existing signal using Lvalue timeout
5718
            //  acquire non-existing signal using Lvalue timeout
5719
            Store (Wait (EVNT, Zero), Local0)
5719
            Store (Wait (EVNT, Zero), Local0)
5720
 
5720
 
5721
            //  validate Local0 is a Number
5721
            //  validate Local0 is a Number
5722
            Store (ObjectType (Local0), Local1)
5722
            Store (ObjectType (Local0), Local1)
5723
            If (LNotEqual (Local1, 1))  //  Number is type 1
5723
            If (LNotEqual (Local1, 1))  //  Number is type 1
5724
                {   Return (0x61)   }       //  Local1 indicates Local0 is not a Number
5724
                {   Return (0x61)   }       //  Local1 indicates Local0 is not a Number
5725
 
5725
 
5726
            If (LEqual (Local0, 0))     //  Number is type 1
5726
            If (LEqual (Local0, 0))     //  Number is type 1
5727
                {   Return (0x62)   }       //  non-existant signal was acquired
5727
                {   Return (0x62)   }       //  non-existant signal was acquired
5728
 
5728
 
5729
            Store ("Zero Lvalue PASS", Debug)
5729
            Store ("Zero Lvalue PASS", Debug)
5730
 
5730
 
5731
 
5731
 
5732
            //  acquire non-existing signal using Lvalue timeout
5732
            //  acquire non-existing signal using Lvalue timeout
5733
            Store (Wait (EVNT, One), Local0)
5733
            Store (Wait (EVNT, One), Local0)
5734
 
5734
 
5735
            //  validate Local0 is a Number
5735
            //  validate Local0 is a Number
5736
            Store (ObjectType (Local0), Local1)
5736
            Store (ObjectType (Local0), Local1)
5737
            If (LNotEqual (Local1, 1))  //  Number is type 1
5737
            If (LNotEqual (Local1, 1))  //  Number is type 1
5738
                {   Return (0x71)   }       //  Local1 indicates Local0 is not a Number
5738
                {   Return (0x71)   }       //  Local1 indicates Local0 is not a Number
5739
 
5739
 
5740
            If (LEqual (Local0, 0))     //  Number is type 1
5740
            If (LEqual (Local0, 0))     //  Number is type 1
5741
                {   Return (0x72)   }       //  non-existant signal was acquired
5741
                {   Return (0x72)   }       //  non-existant signal was acquired
5742
 
5742
 
5743
            Store ("One Lvalue PASS", Debug)
5743
            Store ("One Lvalue PASS", Debug)
5744
 
5744
 
5745
            //  Lvalue Event test cases
5745
            //  Lvalue Event test cases
5746
    // ILLEGAL SOURCE OPERAND        Store (EVNT, Local2)
5746
    // ILLEGAL SOURCE OPERAND        Store (EVNT, Local2)
5747
 
5747
 
5748
            //  validate Local2 is an Event
5748
            //  validate Local2 is an Event
5749
            Store (ObjectType (EVNT), Local1)
5749
            Store (ObjectType (EVNT), Local1)
5750
            If (LNotEqual (Local1, 7))  //  Event is type 7
5750
            If (LNotEqual (Local1, 7))  //  Event is type 7
5751
                {   Return (0x81)   }       //  Local1 indicates Local0 is not a Number
5751
                {   Return (0x81)   }       //  Local1 indicates Local0 is not a Number
5752
 
5752
 
5753
            //  reset EVNT to initialization (zero) state
5753
            //  reset EVNT to initialization (zero) state
5754
            Reset (EVNT)
5754
            Reset (EVNT)
5755
 
5755
 
5756
            //  prime EVNT with two outstanding signals
5756
            //  prime EVNT with two outstanding signals
5757
            Signal (EVNT)
5757
            Signal (EVNT)
5758
 
5758
 
5759
            //  acquire existing signal
5759
            //  acquire existing signal
5760
            Store (Wait (EVNT, Arg0), Local0)
5760
            Store (Wait (EVNT, Arg0), Local0)
5761
 
5761
 
5762
            //  validate Local0 is a Number
5762
            //  validate Local0 is a Number
5763
            Store (ObjectType (Local0), Local1)
5763
            Store (ObjectType (Local0), Local1)
5764
            If (LNotEqual (Local1, 1))  //  Number is type 1
5764
            If (LNotEqual (Local1, 1))  //  Number is type 1
5765
                {   Return (0x82)   }       //  Local1 indicates Local0 is not a Number
5765
                {   Return (0x82)   }       //  Local1 indicates Local0 is not a Number
5766
 
5766
 
5767
            If (LNotEqual (Local0, 0))  //  Number is type 1
5767
            If (LNotEqual (Local0, 0))  //  Number is type 1
5768
                {   Return (0x83)   }       //  timeout occurred without acquiring signal
5768
                {   Return (0x83)   }       //  timeout occurred without acquiring signal
5769
 
5769
 
5770
            Store ("Acquire Lvalue existing signal PASS", Debug)
5770
            Store ("Acquire Lvalue existing signal PASS", Debug)
5771
 
5771
 
5772
 
5772
 
5773
            //  acquire non-existing signal
5773
            //  acquire non-existing signal
5774
            Store (Wait (EVNT, Arg0), Local0)
5774
            Store (Wait (EVNT, Arg0), Local0)
5775
 
5775
 
5776
            //  validate Local0 is a Number
5776
            //  validate Local0 is a Number
5777
            Store (ObjectType (Local0), Local1)
5777
            Store (ObjectType (Local0), Local1)
5778
            If (LNotEqual (Local1, 1))  //  Number is type 1
5778
            If (LNotEqual (Local1, 1))  //  Number is type 1
5779
                {   Return (0x84)   }       //  Local1 indicates Local0 is not a Number
5779
                {   Return (0x84)   }       //  Local1 indicates Local0 is not a Number
5780
 
5780
 
5781
            If (LEqual (Local0, 0))     //  Number is type 1
5781
            If (LEqual (Local0, 0))     //  Number is type 1
5782
                {   Return (0x85)   }       //  non-existant signal was acquired
5782
                {   Return (0x85)   }       //  non-existant signal was acquired
5783
 
5783
 
5784
            Store ("Acquire Lvalue signal timeout PASS", Debug)
5784
            Store ("Acquire Lvalue signal timeout PASS", Debug)
5785
 
5785
 
5786
 
5786
 
5787
            Return (0)  //  success
5787
            Return (0)  //  success
5788
        }   //  TEVN control method to test ResetOp, SignalOp, and WaitOp
5788
        }   //  TEVN control method to test ResetOp, SignalOp, and WaitOp
5789
 
5789
 
5790
        Method (TEST)
5790
        Method (TEST)
5791
        {
5791
        {
5792
            Store ("++++++++ Event Test", Debug)
5792
            Store ("++++++++ Event Test", Debug)
5793
 
5793
 
5794
            Store (TEVN (100), Local0)
5794
            Store (TEVN (100), Local0)
5795
 
5795
 
5796
            Return (Local0)
5796
            Return (Local0)
5797
        }   //  TEST
5797
        }   //  TEST
5798
    }   //  EVNT
5798
    }   //  EVNT
5799
 
5799
 
5800
//
5800
//
5801
// test SizeOfLv.asl
5801
// test SizeOfLv.asl
5802
//
5802
//
5803
//  Test for SizeOf (Lvalue)
5803
//  Test for SizeOf (Lvalue)
5804
//
5804
//
5805
//  This next section will contain the packages that the SizeOfOp will be
5805
//  This next section will contain the packages that the SizeOfOp will be
5806
//  exercised on.  The first one, PKG0, is a regular package of 3 elements.
5806
//  exercised on.  The first one, PKG0, is a regular package of 3 elements.
5807
//  The 2nd one, PKG1, is a nested package with 3 packages inside it, each
5807
//  The 2nd one, PKG1, is a nested package with 3 packages inside it, each
5808
//  with 3 elements.  It is expected that SizeOf operator will return the
5808
//  with 3 elements.  It is expected that SizeOf operator will return the
5809
//  same value for these two packages since they both have 3 elements.  The
5809
//  same value for these two packages since they both have 3 elements.  The
5810
//  final package, PKG2, has 4 elements and the SizeOf operator is expected
5810
//  final package, PKG2, has 4 elements and the SizeOf operator is expected
5811
//  to return different results for this package.
5811
//  to return different results for this package.
5812
 
5812
 
5813
    Name (PKG0,
5813
    Name (PKG0,
5814
        Package (3)
5814
        Package (3)
5815
        {0x0123, 0x4567, 0x89AB}
5815
        {0x0123, 0x4567, 0x89AB}
5816
    )   //  PKG0
5816
    )   //  PKG0
5817
 
5817
 
5818
    Name (PKG1,
5818
    Name (PKG1,
5819
        Package (3)
5819
        Package (3)
5820
        {
5820
        {
5821
            Package (3) {0x0123, 0x4567, 0x89AB},
5821
            Package (3) {0x0123, 0x4567, 0x89AB},
5822
            Package (3) {0xCDEF, 0xFEDC, 0xBA98},
5822
            Package (3) {0xCDEF, 0xFEDC, 0xBA98},
5823
            Package (3) {0x7654, 0x3210, 0x1234}
5823
            Package (3) {0x7654, 0x3210, 0x1234}
5824
        }
5824
        }
5825
    )   //  PKG1
5825
    )   //  PKG1
5826
 
5826
 
5827
    Name (PKG2,
5827
    Name (PKG2,
5828
        Package (4)
5828
        Package (4)
5829
        {0x0123, 0x4567, 0x89AB, 0x8888}
5829
        {0x0123, 0x4567, 0x89AB, 0x8888}
5830
    )   //  PKG2
5830
    )   //  PKG2
5831
 
5831
 
5832
    Name (PKG3,
5832
    Name (PKG3,
5833
        Package (5)
5833
        Package (5)
5834
        {0x0123, 0x4567, 0x89AB, 0x8888, 0x7777}
5834
        {0x0123, 0x4567, 0x89AB, 0x8888, 0x7777}
5835
    )   //  PKG3
5835
    )   //  PKG3
5836
 
5836
 
5837
//  End Packages    **********************************************************
5837
//  End Packages    **********************************************************
5838
 
5838
 
5839
//  The following section will declare the data strings that will be used to
5839
//  The following section will declare the data strings that will be used to
5840
//  exercise the SizeOf operator.  STR0 and STR1 are expected to be equal,
5840
//  exercise the SizeOf operator.  STR0 and STR1 are expected to be equal,
5841
//  STR2 is expected to have a different SizeOf value than STR0 and STR1.
5841
//  STR2 is expected to have a different SizeOf value than STR0 and STR1.
5842
 
5842
 
5843
    Name (STR0, "ACPI permits very flexible methods of expressing a system")
5843
    Name (STR0, "ACPI permits very flexible methods of expressing a system")
5844
 
5844
 
5845
    Name (STR1, "MIKE permits very flexible methods of expressing a system")
5845
    Name (STR1, "MIKE permits very flexible methods of expressing a system")
5846
 
5846
 
5847
    Name (STR2, "Needless to say, Mike and ACPI are frequently at odds")
5847
    Name (STR2, "Needless to say, Mike and ACPI are frequently at odds")
5848
 
5848
 
5849
//  This string is being made in case we want to do a SizeOf comparison
5849
//  This string is being made in case we want to do a SizeOf comparison
5850
//  between strings and packages or buffers
5850
//  between strings and packages or buffers
5851
    Name (STR3, "12345")
5851
    Name (STR3, "12345")
5852
 
5852
 
5853
//  End Strings     **********************************************************
5853
//  End Strings     **********************************************************
5854
 
5854
 
5855
//  The following section will declare the buffers that will be used to exercise
5855
//  The following section will declare the buffers that will be used to exercise
5856
//  the SizeOf operator.
5856
//  the SizeOf operator.
5857
 
5857
 
5858
    Name (BUF0, Buffer (10) {})
5858
    Name (BUF0, Buffer (10) {})
5859
    Name (BUF1, Buffer (10) {})
5859
    Name (BUF1, Buffer (10) {})
5860
    Name (BUF2, Buffer (8)  {})
5860
    Name (BUF2, Buffer (8)  {})
5861
    Name (BUF3, Buffer (5)  {})
5861
    Name (BUF3, Buffer (5)  {})
5862
 
5862
 
5863
//  End Buffers     **********************************************************
5863
//  End Buffers     **********************************************************
5864
    Device (SZLV)
5864
    Device (SZLV)
5865
    {
5865
    {
5866
 
5866
 
5867
        Method (CMPR, 2)
5867
        Method (CMPR, 2)
5868
        {
5868
        {
5869
            //  CMPR is passed two arguments.  If unequal, return 1 to indicate
5869
            //  CMPR is passed two arguments.  If unequal, return 1 to indicate
5870
            //  that, otherwise return 0 to indicate SizeOf each is equal.
5870
            //  that, otherwise return 0 to indicate SizeOf each is equal.
5871
 
5871
 
5872
            Store (0x01, Local0)
5872
            Store (0x01, Local0)
5873
 
5873
 
5874
            if (LEqual (SizeOf(Arg0), SizeOf(Arg1)))
5874
            if (LEqual (SizeOf(Arg0), SizeOf(Arg1)))
5875
            {
5875
            {
5876
                Store (0x00, Local0)
5876
                Store (0x00, Local0)
5877
            }
5877
            }
5878
 
5878
 
5879
            return (Local0)
5879
            return (Local0)
5880
        }   //  CMPR
5880
        }   //  CMPR
5881
 
5881
 
5882
 
5882
 
5883
        Method (TEST)
5883
        Method (TEST)
5884
        {
5884
        {
5885
 
5885
 
5886
            Store ("++++++++ SizeOfLv Test", Debug)
5886
            Store ("++++++++ SizeOfLv Test", Debug)
5887
 
5887
 
5888
            //  TBD:    SizeOf ("string")
5888
            //  TBD:    SizeOf ("string")
5889
            //          SizeOf (Buffer)
5889
            //          SizeOf (Buffer)
5890
            //          SizeOf (Package)
5890
            //          SizeOf (Package)
5891
            //          SizeOf (String)
5891
            //          SizeOf (String)
5892
            //          SizeOf (STR0)   --  where Name (STR0,...) -- lot's of cases
5892
            //          SizeOf (STR0)   --  where Name (STR0,...) -- lot's of cases
5893
            //              buffer, string, package,
5893
            //              buffer, string, package,
5894
            //          SizeOf (METH) -- where METH control method returns
5894
            //          SizeOf (METH) -- where METH control method returns
5895
            //              buffer, string, package,
5895
            //              buffer, string, package,
5896
 
5896
 
5897
            //  TBD:    SLOC [SizeOf (Local0)] -- dup SARG
5897
            //  TBD:    SLOC [SizeOf (Local0)] -- dup SARG
5898
 
5898
 
5899
            //  Compare the elements that we expect to be the same.  Exit out with an error
5899
            //  Compare the elements that we expect to be the same.  Exit out with an error
5900
            //  code on the first failure.
5900
            //  code on the first failure.
5901
            if (LNotEqual (0x00, CMPR (STR0, STR1)))
5901
            if (LNotEqual (0x00, CMPR (STR0, STR1)))
5902
            {
5902
            {
5903
                Return (0x01)
5903
                Return (0x01)
5904
            }
5904
            }
5905
 
5905
 
5906
            if (LNotEqual (0x00, CMPR (STR3, BUF3)))
5906
            if (LNotEqual (0x00, CMPR (STR3, BUF3)))
5907
            {
5907
            {
5908
                Return (0x02)
5908
                Return (0x02)
5909
            }
5909
            }
5910
 
5910
 
5911
            if (LNotEqual (0x00, CMPR (STR3, PKG3)))
5911
            if (LNotEqual (0x00, CMPR (STR3, PKG3)))
5912
            {
5912
            {
5913
                Return (0x03)
5913
                Return (0x03)
5914
            }
5914
            }
5915
 
5915
 
5916
            //  In the following section, this test will cover the SizeOf
5916
            //  In the following section, this test will cover the SizeOf
5917
            //  operator for Local values.
5917
            //  operator for Local values.
5918
            //  In this case, both Local0 and Local1 should have the same Size
5918
            //  In this case, both Local0 and Local1 should have the same Size
5919
            Store (STR0, Local0)
5919
            Store (STR0, Local0)
5920
            Store (STR1, Local1)
5920
            Store (STR1, Local1)
5921
 
5921
 
5922
            if (LNotEqual (SizeOf (Local0), SizeOf (Local1)))
5922
            if (LNotEqual (SizeOf (Local0), SizeOf (Local1)))
5923
            {
5923
            {
5924
                Return (0x04)
5924
                Return (0x04)
5925
            }
5925
            }
5926
 
5926
 
5927
            //  Now create a case where Local0 and Local1 are different
5927
            //  Now create a case where Local0 and Local1 are different
5928
            Store (STR2, Local1)
5928
            Store (STR2, Local1)
5929
 
5929
 
5930
            if (LEqual (SizeOf (Local0), SizeOf (Local1)))
5930
            if (LEqual (SizeOf (Local0), SizeOf (Local1)))
5931
            {
5931
            {
5932
                Return (0x05)
5932
                Return (0x05)
5933
            }
5933
            }
5934
 
5934
 
5935
            //  Finally, check for the return of SizeOf for a known Buffer.  Just
5935
            //  Finally, check for the return of SizeOf for a known Buffer.  Just
5936
            //  in case we magically pass above cases due to all Buffers being Zero
5936
            //  in case we magically pass above cases due to all Buffers being Zero
5937
            //  bytes in size, or Infinity, etc.
5937
            //  bytes in size, or Infinity, etc.
5938
            if (LNotEqual (0x05, SizeOf (BUF3)))
5938
            if (LNotEqual (0x05, SizeOf (BUF3)))
5939
            {
5939
            {
5940
                Return (0x06)
5940
                Return (0x06)
5941
            }
5941
            }
5942
 
5942
 
5943
            Return (0)
5943
            Return (0)
5944
        }   //  TEST
5944
        }   //  TEST
5945
    }   //  SZLV
5945
    }   //  SZLV
5946
 
5946
 
5947
 
5947
 
5948
//
5948
//
5949
// test BytField.asl
5949
// test BytField.asl
5950
//
5950
//
5951
//  BytField test
5951
//  BytField test
5952
//      This is just a subset of the many RegionOp/Index Field test cases.
5952
//      This is just a subset of the many RegionOp/Index Field test cases.
5953
//      Tests access of TBD.
5953
//      Tests access of TBD.
5954
//
5954
//
5955
    Scope (\_SB)    //  System Bus
5955
    Scope (\_SB)    //  System Bus
5956
    {   //  _SB system bus
5956
    {   //  _SB system bus
5957
        Device (BYTF)
5957
        Device (BYTF)
5958
        {   //  Test device name
5958
        {   //  Test device name
5959
            Method (TEST)
5959
            Method (TEST)
5960
            {
5960
            {
5961
                Store ("++++++++ BytField Test", Debug)
5961
                Store ("++++++++ BytField Test", Debug)
5962
 
5962
 
5963
                Return (\_TZ.C19B.RSLT)
5963
                Return (\_TZ.C19B.RSLT)
5964
            }   //  TEST
5964
            }   //  TEST
5965
        }   //  BYTF
5965
        }   //  BYTF
5966
 
5966
 
5967
        Device (C005)
5967
        Device (C005)
5968
        {   //  Device C005
5968
        {   //  Device C005
5969
            Device (C013)
5969
            Device (C013)
5970
            {   //  Device C013
5970
            {   //  Device C013
5971
            }   //  Device C013
5971
            }   //  Device C013
5972
        }   //  Device C005
5972
        }   //  Device C005
5973
 
5973
 
5974
        Method (C115)
5974
        Method (C115)
5975
        {   //  C115 control method
5975
        {   //  C115 control method
5976
            Acquire (\_GL, 0xFFFF)
5976
            Acquire (\_GL, 0xFFFF)
5977
            Store (\_SB.C005.C013.C058.C07E, Local0)
5977
            Store (\_SB.C005.C013.C058.C07E, Local0)
5978
            Release (\_GL)
5978
            Release (\_GL)
5979
            And (Local0, 16, Local0)
5979
            And (Local0, 16, Local0)
5980
            Store (ShiftRight (Local0, 4, ), Local1)
5980
            Store (ShiftRight (Local0, 4, ), Local1)
5981
            If (LEqual (Local1, 0))
5981
            If (LEqual (Local1, 0))
5982
                {   Return (1)  }
5982
                {   Return (1)  }
5983
            Else
5983
            Else
5984
                {   Return (0)  }
5984
                {   Return (0)  }
5985
        }   //  C115 control method
5985
        }   //  C115 control method
5986
    }   //  _SB system bus
5986
    }   //  _SB system bus
5987
 
5987
 
5988
    OperationRegion (C018, SystemIO, 0x5028, 4)
5988
    OperationRegion (C018, SystemIO, 0x5028, 4)
5989
    Field (C018, AnyAcc, NoLock, Preserve)
5989
    Field (C018, AnyAcc, NoLock, Preserve)
5990
    {   //  Field overlaying C018
5990
    {   //  Field overlaying C018
5991
        C019,   32
5991
        C019,   32
5992
    }   //  Field overlaying C018
5992
    }   //  Field overlaying C018
5993
 
5993
 
5994
    OperationRegion (C01A, SystemIO, 0x5030, 4)
5994
    OperationRegion (C01A, SystemIO, 0x5030, 4)
5995
    Field (C01A, ByteAcc, NoLock, Preserve)
5995
    Field (C01A, ByteAcc, NoLock, Preserve)
5996
    {   //  Field overlaying C01A
5996
    {   //  Field overlaying C01A
5997
        C01B,   8,
5997
        C01B,   8,
5998
        C01C,   8,
5998
        C01C,   8,
5999
        C01D,   8,
5999
        C01D,   8,
6000
        C01E,   8
6000
        C01E,   8
6001
    }   //  Field overlaying C01A
6001
    }   //  Field overlaying C01A
6002
 
6002
 
6003
    Mutex (\C01F, 0)
6003
    Mutex (\C01F, 0)
6004
    Name (\C020, 0)
6004
    Name (\C020, 0)
6005
    Name (\C021, 0)
6005
    Name (\C021, 0)
6006
 
6006
 
6007
    Method (\C022, 0)
6007
    Method (\C022, 0)
6008
    {   //  \C022 control method
6008
    {   //  \C022 control method
6009
        Acquire (\C01F, 0xFFFF)
6009
        Acquire (\C01F, 0xFFFF)
6010
        If (LEqual (\C021, 0))
6010
        If (LEqual (\C021, 0))
6011
        {
6011
        {
6012
            Store (C019, Local0)
6012
            Store (C019, Local0)
6013
            And (Local0, 0xFFFEFFFE, Local0)
6013
            And (Local0, 0xFFFEFFFE, Local0)
6014
            Store (Local0, C019)
6014
            Store (Local0, C019)
6015
            Increment (\C021)
6015
            Increment (\C021)
6016
        }
6016
        }
6017
        Release (\C01F)
6017
        Release (\C01F)
6018
    }   //  \C022 control method
6018
    }   //  \C022 control method
6019
 
6019
 
6020
    Scope (\_SB.C005.C013)
6020
    Scope (\_SB.C005.C013)
6021
    {   //  Scope \_SB.C005.C013
6021
    {   //  Scope \_SB.C005.C013
6022
        Device (C058)
6022
        Device (C058)
6023
        {   //  Device C058
6023
        {   //  Device C058
6024
            Name (_HID, "*PNP0A06")
6024
            Name (_HID, "*PNP0A06")
6025
 
6025
 
6026
            OperationRegion (C059, SystemIO, 0xE0, 2)
6026
            OperationRegion (C059, SystemIO, 0xE0, 2)
6027
            Field (C059, ByteAcc, NoLock, Preserve)
6027
            Field (C059, ByteAcc, NoLock, Preserve)
6028
            {   //  Field overlaying C059
6028
            {   //  Field overlaying C059
6029
                C05A,   8,
6029
                C05A,   8,
6030
                C05B,   8
6030
                C05B,   8
6031
            }   //  Field overlaying C059
6031
            }   //  Field overlaying C059
6032
 
6032
 
6033
            OperationRegion (C05C, SystemIO, 0xE2, 2)
6033
            OperationRegion (C05C, SystemIO, 0xE2, 2)
6034
            Field (C05C, ByteAcc, NoLock, Preserve)
6034
            Field (C05C, ByteAcc, NoLock, Preserve)
6035
            {   //  Field overlaying C05C
6035
            {   //  Field overlaying C05C
6036
                C05D,   8,
6036
                C05D,   8,
6037
                C05E,   8
6037
                C05E,   8
6038
            }   //  Field overlaying C05C
6038
            }   //  Field overlaying C05C
6039
            IndexField (C05D, C05E, ByteAcc, NoLock, Preserve)
6039
            IndexField (C05D, C05E, ByteAcc, NoLock, Preserve)
6040
            {   //  IndexField overlaying C05D/C05E
6040
            {   //  IndexField overlaying C05D/C05E
6041
                ,       0x410,  //  skip
6041
                ,       0x410,  //  skip
6042
                C05F,   8,
6042
                C05F,   8,
6043
                C060,   8,
6043
                C060,   8,
6044
                C061,   8,
6044
                C061,   8,
6045
                C062,   8,
6045
                C062,   8,
6046
                C063,   8,
6046
                C063,   8,
6047
                C064,   8,
6047
                C064,   8,
6048
                C065,   8,
6048
                C065,   8,
6049
                C066,   8,
6049
                C066,   8,
6050
                C067,   8,
6050
                C067,   8,
6051
                C068,   8,
6051
                C068,   8,
6052
                C069,   8,
6052
                C069,   8,
6053
                C06A,   8,
6053
                C06A,   8,
6054
                C06B,   8,
6054
                C06B,   8,
6055
                C06C,   8,
6055
                C06C,   8,
6056
                C06D,   8,
6056
                C06D,   8,
6057
                C06E,   8,
6057
                C06E,   8,
6058
                ,       0x70,       //  skip
6058
                ,       0x70,       //  skip
6059
                C06F,   8,
6059
                C06F,   8,
6060
                C070,   8,
6060
                C070,   8,
6061
                C071,   8,
6061
                C071,   8,
6062
                C072,   8,
6062
                C072,   8,
6063
                C073,   8,
6063
                C073,   8,
6064
                C074,   8,
6064
                C074,   8,
6065
                C075,   8,
6065
                C075,   8,
6066
                C076,   8,
6066
                C076,   8,
6067
                C077,   8,
6067
                C077,   8,
6068
                C078,   8,
6068
                C078,   8,
6069
                C079,   8,
6069
                C079,   8,
6070
                C07A,   8,
6070
                C07A,   8,
6071
                C07B,   8,
6071
                C07B,   8,
6072
                C07C,   8,
6072
                C07C,   8,
6073
                C07D,   8,
6073
                C07D,   8,
6074
                C07E,   8
6074
                C07E,   8
6075
            }   //  IndexField overlaying C05D/C05E
6075
            }   //  IndexField overlaying C05D/C05E
6076
 
6076
 
6077
            OperationRegion (C07F, SystemIO, 0xE4, 2)
6077
            OperationRegion (C07F, SystemIO, 0xE4, 2)
6078
            Field (C07F, ByteAcc, NoLock, Preserve)
6078
            Field (C07F, ByteAcc, NoLock, Preserve)
6079
            {   //  Field overlaying C07F
6079
            {   //  Field overlaying C07F
6080
                C080,   8,
6080
                C080,   8,
6081
                C081,   8
6081
                C081,   8
6082
            }   //  Field overlaying C07F
6082
            }   //  Field overlaying C07F
6083
 
6083
 
6084
            OperationRegion (C082, SystemIO, 0xE0, 1)
6084
            OperationRegion (C082, SystemIO, 0xE0, 1)
6085
            Field (C082, ByteAcc, NoLock, Preserve)
6085
            Field (C082, ByteAcc, NoLock, Preserve)
6086
            {   //  Field overlaying C082
6086
            {   //  Field overlaying C082
6087
                C083,   8
6087
                C083,   8
6088
            }   //  Field overlaying C082
6088
            }   //  Field overlaying C082
6089
 
6089
 
6090
            OperationRegion (C084, SystemIO, 0xFF, 1)
6090
            OperationRegion (C084, SystemIO, 0xFF, 1)
6091
            Field (C084, ByteAcc, NoLock, Preserve)
6091
            Field (C084, ByteAcc, NoLock, Preserve)
6092
            {   //  Field overlaying C084
6092
            {   //  Field overlaying C084
6093
                C085,   8
6093
                C085,   8
6094
            }   //  Field overlaying C084
6094
            }   //  Field overlaying C084
6095
 
6095
 
6096
            OperationRegion (C086, SystemIO, 0xFD, 1)
6096
            OperationRegion (C086, SystemIO, 0xFD, 1)
6097
            Field (C086, ByteAcc, NoLock, Preserve)
6097
            Field (C086, ByteAcc, NoLock, Preserve)
6098
            {   //  Field overlaying C086
6098
            {   //  Field overlaying C086
6099
                C087,   8
6099
                C087,   8
6100
            }   //  Field overlaying C086
6100
            }   //  Field overlaying C086
6101
 
6101
 
6102
            Mutex (C088, 0)
6102
            Mutex (C088, 0)
6103
            Mutex (C089, 0)
6103
            Mutex (C089, 0)
6104
            Mutex (C08A, 0)
6104
            Mutex (C08A, 0)
6105
            Mutex (C08B, 0)
6105
            Mutex (C08B, 0)
6106
            Mutex (C08C, 0)
6106
            Mutex (C08C, 0)
6107
            Mutex (C08D, 0)
6107
            Mutex (C08D, 0)
6108
 
6108
 
6109
            Name (C08E, 0xFFFFFFFD)
6109
            Name (C08E, 0xFFFFFFFD)
6110
            Name (C08F, 0)
6110
            Name (C08F, 0)
6111
 
6111
 
6112
            Method (C0AA, 4)
6112
            Method (C0AA, 4)
6113
            {   //  C0AA control method
6113
            {   //  C0AA control method
6114
                Store (Buffer (4) {}, Local7)
6114
                Store (Buffer (4) {}, Local7)
6115
                CreateByteField (Local7, 0, C0AB)
6115
                CreateByteField (Local7, 0, C0AB)
6116
                CreateByteField (Local7, 1, C0AC)
6116
                CreateByteField (Local7, 1, C0AC)
6117
                CreateByteField (Local7, 2, C0AD)
6117
                CreateByteField (Local7, 2, C0AD)
6118
                CreateByteField (Local7, 3, C0AE)
6118
                CreateByteField (Local7, 3, C0AE)
6119
                Acquire (^C08B, 0xFFFF)
6119
                Acquire (^C08B, 0xFFFF)
6120
                Acquire (\_GL, 0xFFFF)
6120
                Acquire (\_GL, 0xFFFF)
6121
                \C022 ()
6121
                \C022 ()
6122
                Store (1, \_SB.C005.C013.C058.C06B)
6122
                Store (1, \_SB.C005.C013.C058.C06B)
6123
                While (LNot (LEqual (0, \_SB.C005.C013.C058.C06B)))
6123
                While (LNot (LEqual (0, \_SB.C005.C013.C058.C06B)))
6124
                    {   Stall (100) }
6124
                    {   Stall (100) }
6125
                Store (Arg3, \_SB.C005.C013.C058.C06E)
6125
                Store (Arg3, \_SB.C005.C013.C058.C06E)
6126
                Store (Arg2, \_SB.C005.C013.C058.C06D)
6126
                Store (Arg2, \_SB.C005.C013.C058.C06D)
6127
                Store (Arg1, \_SB.C005.C013.C058.C06C)
6127
                Store (Arg1, \_SB.C005.C013.C058.C06C)
6128
                Store (Arg0, \_SB.C005.C013.C058.C06B)
6128
                Store (Arg0, \_SB.C005.C013.C058.C06B)
6129
                While (LNot (LEqual (0, \_SB.C005.C013.C058.C06B)))
6129
                While (LNot (LEqual (0, \_SB.C005.C013.C058.C06B)))
6130
                    {   Stall (100) }
6130
                    {   Stall (100) }
6131
                Store (\_SB.C005.C013.C058.C06E, C0AB)
6131
                Store (\_SB.C005.C013.C058.C06E, C0AB)
6132
                Store (\_SB.C005.C013.C058.C06D, C0AC)
6132
                Store (\_SB.C005.C013.C058.C06D, C0AC)
6133
                Store (\_SB.C005.C013.C058.C06C, C0AD)
6133
                Store (\_SB.C005.C013.C058.C06C, C0AD)
6134
                Store (\_SB.C005.C013.C058.C06B, C0AE)
6134
                Store (\_SB.C005.C013.C058.C06B, C0AE)
6135
                If (LNot (LEqual (Arg0, 23)))
6135
                If (LNot (LEqual (Arg0, 23)))
6136
                {
6136
                {
6137
                    Store (2, \_SB.C005.C013.C058.C06B)
6137
                    Store (2, \_SB.C005.C013.C058.C06B)
6138
                    Stall (100)
6138
                    Stall (100)
6139
                }
6139
                }
6140
                Release (\_GL)
6140
                Release (\_GL)
6141
                Release (^C08B)
6141
                Release (^C08B)
6142
                Return (Local7)
6142
                Return (Local7)
6143
            }   //  C0AA control method
6143
            }   //  C0AA control method
6144
        }   //  Device C058
6144
        }   //  Device C058
6145
    }   //  Scope \_SB.C005.C013
6145
    }   //  Scope \_SB.C005.C013
6146
 
6146
 
6147
    Scope (\_TZ)
6147
    Scope (\_TZ)
6148
    {   //  \_TZ thermal zone scope
6148
    {   //  \_TZ thermal zone scope
6149
        Name (C18B, Package (2)
6149
        Name (C18B, Package (2)
6150
        {
6150
        {
6151
            Package (2)
6151
            Package (2)
6152
            {
6152
            {
6153
                Package (5) {0x05AC, 0x0CD2, 0x0D68, 0x0DE0, 0x0E4E},
6153
                Package (5) {0x05AC, 0x0CD2, 0x0D68, 0x0DE0, 0x0E4E},
6154
                Package (5) {0x0D04, 0x0D9A, 0x0DFE, 0x0E80, 0x0FA2}
6154
                Package (5) {0x0D04, 0x0D9A, 0x0DFE, 0x0E80, 0x0FA2}
6155
            },
6155
            },
6156
            Package (2)
6156
            Package (2)
6157
            {
6157
            {
6158
                Package (5) {0x05AC, 0x0CD2, 0x0D68, 0x0DE0, 0x0E4E},
6158
                Package (5) {0x05AC, 0x0CD2, 0x0D68, 0x0DE0, 0x0E4E},
6159
                Package (5) {0x0D04, 0x0D9A, 0x0DFE, 0x0E80, 0x0FA2}
6159
                Package (5) {0x0D04, 0x0D9A, 0x0DFE, 0x0E80, 0x0FA2}
6160
            }
6160
            }
6161
        })  //  C18B
6161
        })  //  C18B
6162
 
6162
 
6163
        Name (C18C, Package (2)
6163
        Name (C18C, Package (2)
6164
        {
6164
        {
6165
            Package (2)
6165
            Package (2)
6166
            {
6166
            {
6167
                Package (3) {0x64, 0x4B, 0x32},
6167
                Package (3) {0x64, 0x4B, 0x32},
6168
                Package (3) {0x64, 0x4B, 0x32}
6168
                Package (3) {0x64, 0x4B, 0x32}
6169
            }
6169
            }
6170
        })  //  C81C
6170
        })  //  C81C
6171
 
6171
 
6172
        Name (C18D, 0)
6172
        Name (C18D, 0)
6173
        Name (C18E, 0)
6173
        Name (C18E, 0)
6174
        Name (C18F, 0)
6174
        Name (C18F, 0)
6175
        Name (C190, 0)
6175
        Name (C190, 0)
6176
        Name (C191, 3)
6176
        Name (C191, 3)
6177
        Name (C192, 0)
6177
        Name (C192, 0)
6178
        Name (C193, 1)
6178
        Name (C193, 1)
6179
        Name (C194, 2)
6179
        Name (C194, 2)
6180
        Mutex (C195, 0)
6180
        Mutex (C195, 0)
6181
        Name (C196, 1)
6181
        Name (C196, 1)
6182
        Name (C197, 0x0B9C)
6182
        Name (C197, 0x0B9C)
6183
        Name (C198, 0x0B9C)
6183
        Name (C198, 0x0B9C)
6184
        Name (C199, 0xFFFFFFFD)
6184
        Name (C199, 0xFFFFFFFD)
6185
        Name (C19A, 0)
6185
        Name (C19A, 0)
6186
 
6186
 
6187
        Device (C19B)
6187
        Device (C19B)
6188
        {   //  Device C19B
6188
        {   //  Device C19B
6189
            Name (RSLT, 0)  //  default to zero
6189
            Name (RSLT, 0)  //  default to zero
6190
 
6190
 
6191
            Method (XINI)
6191
            Method (XINI)
6192
            {   //  _INI control method (Uses Global Lock -- can't run under AcpiExec)
6192
            {   //  _INI control method (Uses Global Lock -- can't run under AcpiExec)
6193
                Store (\_SB.C115, C19A)
6193
                Store (\_SB.C115, C19A)
6194
                \_TZ.C19C._SCP (0)
6194
                \_TZ.C19C._SCP (0)
6195
                Subtract (0x0EB2, 0x0AAC, Local1)   //  Local1 = AACh - EB2h
6195
                Subtract (0x0EB2, 0x0AAC, Local1)   //  Local1 = AACh - EB2h
6196
                Divide (Local1, 10, Local0, Local2) //  Local0 = Local1 / 10
6196
                Divide (Local1, 10, Local0, Local2) //  Local0 = Local1 / 10
6197
                                                                //  Local2 = Local1 % 10
6197
                                                                //  Local2 = Local1 % 10
6198
                \_SB.C005.C013.C058.C0AA (14, Local2, 0, 0)
6198
                \_SB.C005.C013.C058.C0AA (14, Local2, 0, 0)
6199
                Store
6199
                Store
6200
                    (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 0, )), C18D)
6200
                    (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 0, )), C18D)
6201
                Store
6201
                Store
6202
                    (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 1, )), C18E)
6202
                    (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 1, )), C18E)
6203
                Store
6203
                Store
6204
                    (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 2, )), C18F)
6204
                    (DerefOf (Index (DerefOf (Index (\_TZ.C18C, C19A, )), 2, )), C18F)
6205
 
6205
 
6206
                Store (1, RSLT) //  set RSLT to 1 if _INI control method completes
6206
                Store (1, RSLT) //  set RSLT to 1 if _INI control method completes
6207
            }   //  _INI control method
6207
            }   //  _INI control method
6208
 
6208
 
6209
            //  PowerResource (C19D) {...}
6209
            //  PowerResource (C19D) {...}
6210
        }   //  Device C19B
6210
        }   //  Device C19B
6211
 
6211
 
6212
        ThermalZone (C19C)
6212
        ThermalZone (C19C)
6213
        {
6213
        {
6214
            Method (_SCP, 1)
6214
            Method (_SCP, 1)
6215
            {   //  _SCP control method
6215
            {   //  _SCP control method
6216
                Store (Arg0, Local0)
6216
                Store (Arg0, Local0)
6217
                If (LEqual (Local0, 0))
6217
                If (LEqual (Local0, 0))
6218
                {
6218
                {
6219
                    Store (0, \_TZ.C192)
6219
                    Store (0, \_TZ.C192)
6220
                    Store (1, \_TZ.C193)
6220
                    Store (1, \_TZ.C193)
6221
                    Store (2, \_TZ.C194)
6221
                    Store (2, \_TZ.C194)
6222
                    Store (3, \_TZ.C191)
6222
                    Store (3, \_TZ.C191)
6223
                }
6223
                }
6224
                Else
6224
                Else
6225
                {
6225
                {
6226
                    Store (0, \_TZ.C191)
6226
                    Store (0, \_TZ.C191)
6227
                    Store (1, \_TZ.C192)
6227
                    Store (1, \_TZ.C192)
6228
                    Store (2, \_TZ.C193)
6228
                    Store (2, \_TZ.C193)
6229
                    Store (3, \_TZ.C194)
6229
                    Store (3, \_TZ.C194)
6230
                }
6230
                }
6231
            }   //  _SCP control method
6231
            }   //  _SCP control method
6232
        }   //  ThermalZone C19C
6232
        }   //  ThermalZone C19C
6233
    }   //  \_TZ thermal zone scope
6233
    }   //  \_TZ thermal zone scope
6234
 
6234
 
6235
 
6235
 
6236
//
6236
//
6237
// test DwrdFld.asl
6237
// test DwrdFld.asl
6238
//
6238
//
6239
    Name (BUFR, buffer(10) {0,0,0,0,0,0,0,0,0,0} )
6239
    Name (BUFR, buffer(10) {0,0,0,0,0,0,0,0,0,0} )
6240
 
6240
 
6241
    Device (DWDF)
6241
    Device (DWDF)
6242
    {
6242
    {
6243
        Method (TEST)
6243
        Method (TEST)
6244
        {
6244
        {
6245
            Store ("++++++++ DwrdFld Test", Debug)
6245
            Store ("++++++++ DwrdFld Test", Debug)
6246
 
6246
 
6247
            CreateByteField (BUFR, 0, BYTE)
6247
            CreateByteField (BUFR, 0, BYTE)
6248
            Store (0xAA, BYTE)
6248
            Store (0xAA, BYTE)
6249
 
6249
 
6250
            CreateWordField (BUFR, 1, WORD)
6250
            CreateWordField (BUFR, 1, WORD)
6251
            Store (0xBBCC, WORD)
6251
            Store (0xBBCC, WORD)
6252
 
6252
 
6253
            CreateDWordField (BUFR, 3, DWRD)
6253
            CreateDWordField (BUFR, 3, DWRD)
6254
            Store (0xDDEEFF00, DWRD)
6254
            Store (0xDDEEFF00, DWRD)
6255
 
6255
 
6256
            CreateByteField (BUFR, 7, BYT2)
6256
            CreateByteField (BUFR, 7, BYT2)
6257
            Store (0x11, BYT2)
6257
            Store (0x11, BYT2)
6258
 
6258
 
6259
            CreateWordField (BUFR, 8, WRD2)
6259
            CreateWordField (BUFR, 8, WRD2)
6260
            Store (0x2233, WRD2)
6260
            Store (0x2233, WRD2)
6261
 
6261
 
6262
            Return (0)
6262
            Return (0)
6263
 
6263
 
6264
        }   //  End Method TEST
6264
        }   //  End Method TEST
6265
    }   //  Device DWDF
6265
    }   //  Device DWDF
6266
 
6266
 
6267
    //
6267
    //
6268
    // test DivAddx.asl
6268
    // test DivAddx.asl
6269
    //
6269
    //
6270
    Name (B1LO, 0xAA)
6270
    Name (B1LO, 0xAA)
6271
    Name (B1HI, 0xBB)
6271
    Name (B1HI, 0xBB)
6272
 
6272
 
6273
    Method (MKW_, 2)
6273
    Method (MKW_, 2)
6274
    {   //  This control method will take two bytes and make them into a WORD
6274
    {   //  This control method will take two bytes and make them into a WORD
6275
 
6275
 
6276
        Multiply (B1HI, 256, Local0)    //  Make high byte.....high
6276
        Multiply (B1HI, 256, Local0)    //  Make high byte.....high
6277
        Or (Local0, B1LO, Local0)       //  OR in the low byte
6277
        Or (Local0, B1LO, Local0)       //  OR in the low byte
6278
        Return (Local0)                 //  Return the WORD
6278
        Return (Local0)                 //  Return the WORD
6279
 
6279
 
6280
    }   //  MKW_
6280
    }   //  MKW_
6281
 
6281
 
6282
    Device (DVAX)
6282
    Device (DVAX)
6283
    {
6283
    {
6284
        Method (TEST)
6284
        Method (TEST)
6285
        {
6285
        {
6286
 
6286
 
6287
            Store ("++++++++ DivAddx Test", Debug)
6287
            Store ("++++++++ DivAddx Test", Debug)
6288
 
6288
 
6289
            Store (25, B1LO)
6289
            Store (25, B1LO)
6290
            Store (0, B1HI)
6290
            Store (0, B1HI)
6291
 
6291
 
6292
            //  We'll multiply 25 * 3 to get 75, add 99 to it then divide
6292
            //  We'll multiply 25 * 3 to get 75, add 99 to it then divide
6293
            //  by 100.  We expect to get 74 for the remainder and 1 for
6293
            //  by 100.  We expect to get 74 for the remainder and 1 for
6294
            //  the quotient.
6294
            //  the quotient.
6295
            Divide(
6295
            Divide(
6296
                Add (Multiply (3, MKW_ (B1LO, B1HI)), 0x63),
6296
                Add (Multiply (3, MKW_ (B1LO, B1HI)), 0x63),
6297
                            //  Dividend,
6297
                            //  Dividend,
6298
                100,        //  Divisor
6298
                100,        //  Divisor
6299
                Local4,     //  Remainder
6299
                Local4,     //  Remainder
6300
                Local2)     //  Quotient
6300
                Local2)     //  Quotient
6301
 
6301
 
6302
            If (LAnd (LEqual (74, Local4), LEqual (1, Local2)))
6302
            If (LAnd (LEqual (74, Local4), LEqual (1, Local2)))
6303
            {   //  Indicate Pass
6303
            {   //  Indicate Pass
6304
                Store (0x00, Local0)
6304
                Store (0x00, Local0)
6305
            }
6305
            }
6306
 
6306
 
6307
            Else
6307
            Else
6308
            {   //  Indicate Fail
6308
            {   //  Indicate Fail
6309
                Store (0x01, Local0)
6309
                Store (0x01, Local0)
6310
            }
6310
            }
6311
 
6311
 
6312
            Return (Local0)
6312
            Return (Local0)
6313
        }   //  End Method TEST
6313
        }   //  End Method TEST
6314
    }   //  Device DVAX
6314
    }   //  Device DVAX
6315
 
6315
 
6316
//
6316
//
6317
// test IndexFld.asl (IndexOp6.asl)
6317
// test IndexFld.asl (IndexOp6.asl)
6318
//
6318
//
6319
//  IndexFld test
6319
//  IndexFld test
6320
//      This is just a subset of the many RegionOp/Index Field test cases.
6320
//      This is just a subset of the many RegionOp/Index Field test cases.
6321
//      Tests index field element AccessAs macro.
6321
//      Tests index field element AccessAs macro.
6322
//      Also tests name resolution of index field elements with same names
6322
//      Also tests name resolution of index field elements with same names
6323
//      but different namespace scopes.
6323
//      but different namespace scopes.
6324
//
6324
//
6325
    Device (IDX6)
6325
    Device (IDX6)
6326
    {   //  Test device name
6326
    {   //  Test device name
6327
 
6327
 
6328
        OperationRegion (SIO, SystemIO, 0x100, 2)
6328
        OperationRegion (SIO, SystemIO, 0x100, 2)
6329
        Field (SIO, ByteAcc, NoLock, Preserve)
6329
        Field (SIO, ByteAcc, NoLock, Preserve)
6330
        {
6330
        {
6331
            INDX,   8,
6331
            INDX,   8,
6332
            DATA,   8
6332
            DATA,   8
6333
        }
6333
        }
6334
        IndexField (INDX, DATA, AnyAcc, NoLock, WriteAsOnes)
6334
        IndexField (INDX, DATA, AnyAcc, NoLock, WriteAsOnes)
6335
        {
6335
        {
6336
            AccessAs (ByteAcc, 0),
6336
            AccessAs (ByteAcc, 0),
6337
            IFE0,   8,
6337
            IFE0,   8,
6338
            IFE1,   8,
6338
            IFE1,   8,
6339
            IFE2,   8,
6339
            IFE2,   8,
6340
            IFE3,   8,
6340
            IFE3,   8,
6341
            IFE4,   8,
6341
            IFE4,   8,
6342
            IFE5,   8,
6342
            IFE5,   8,
6343
            IFE6,   8,
6343
            IFE6,   8,
6344
            IFE7,   8,
6344
            IFE7,   8,
6345
            IFE8,   8,
6345
            IFE8,   8,
6346
            IFE9,   8,
6346
            IFE9,   8,
6347
        }
6347
        }
6348
 
6348
 
6349
        Device (TST_)
6349
        Device (TST_)
6350
        {   //  TST_:   provides a different namespace scope for IFE0 and IFE1
6350
        {   //  TST_:   provides a different namespace scope for IFE0 and IFE1
6351
            OperationRegion (SIO2, SystemIO, 0x100, 2)
6351
            OperationRegion (SIO2, SystemIO, 0x100, 2)
6352
            Field (SIO2, ByteAcc, NoLock, Preserve)
6352
            Field (SIO2, ByteAcc, NoLock, Preserve)
6353
            {
6353
            {
6354
                IND2,   8,
6354
                IND2,   8,
6355
                DAT2,   8
6355
                DAT2,   8
6356
            }
6356
            }
6357
            IndexField (IND2, DAT2, AnyAcc, NoLock, WriteAsOnes)
6357
            IndexField (IND2, DAT2, AnyAcc, NoLock, WriteAsOnes)
6358
            {
6358
            {
6359
                IFE0,   8,  //  duplicate IndexField name with different scope
6359
                IFE0,   8,  //  duplicate IndexField name with different scope
6360
                IFE1,   8
6360
                IFE1,   8
6361
            }
6361
            }
6362
        }   //  TST_:   provides a different namespace scope for IFE0 and IFE1
6362
        }   //  TST_:   provides a different namespace scope for IFE0 and IFE1
6363
 
6363
 
6364
        Method (TEST)
6364
        Method (TEST)
6365
        {
6365
        {
6366
            Store ("++++++++ IndexOp6 Test", Debug)
6366
            Store ("++++++++ IndexOp6 Test", Debug)
6367
 
6367
 
6368
            Store (IFE0, Local0)
6368
            Store (IFE0, Local0)
6369
            Store (IFE1, Local1)
6369
            Store (IFE1, Local1)
6370
            Store (IFE2, Local2)
6370
            Store (IFE2, Local2)
6371
 
6371
 
6372
            //  validate name resolution of IndexFields with different scopes
6372
            //  validate name resolution of IndexFields with different scopes
6373
            Store (\IDX6.IFE0, Local3)
6373
            Store (\IDX6.IFE0, Local3)
6374
            Store (\IDX6.IFE1, Local4)
6374
            Store (\IDX6.IFE1, Local4)
6375
            //  verioading of namespace can resolve following names
6375
            //  verioading of namespace can resolve following names
6376
            Store (\IDX6.TST_.IFE0, Local5)
6376
            Store (\IDX6.TST_.IFE0, Local5)
6377
            Store (\IDX6.TST_.IFE1, Local6)
6377
            Store (\IDX6.TST_.IFE1, Local6)
6378
 
6378
 
6379
            Return (0)
6379
            Return (0)
6380
        }   //  TEST
6380
        }   //  TEST
6381
    }   //  IDX6
6381
    }   //  IDX6
6382
 
6382
 
6383
//
6383
//
6384
// test IndexOp5.asl
6384
// test IndexOp5.asl
6385
//
6385
//
6386
//  IndexOp5 test
6386
//  IndexOp5 test
6387
//      This is just a subset of the many RegionOp/Index Field test cases.
6387
//      This is just a subset of the many RegionOp/Index Field test cases.
6388
//      Tests copying string into buffer then performing IndexOp on result.
6388
//      Tests copying string into buffer then performing IndexOp on result.
6389
//
6389
//
6390
    Device (IDX5)
6390
    Device (IDX5)
6391
    {   //  Test device name
6391
    {   //  Test device name
6392
 
6392
 
6393
        Name (OSFL, 0)  //  0 == Windows 98, 1 == Windows NT
6393
        Name (OSFL, 0)  //  0 == Windows 98, 1 == Windows NT
6394
 
6394
 
6395
        //  MCTH is a control method to compare two strings. It returns
6395
        //  MCTH is a control method to compare two strings. It returns
6396
        //  zero if the strings mismatch, or 1 if the strings match.
6396
        //  zero if the strings mismatch, or 1 if the strings match.
6397
        //  This exercises the test case of copying a string into a buffer
6397
        //  This exercises the test case of copying a string into a buffer
6398
        //  and performing an IndexOp on the resulting buffer.
6398
        //  and performing an IndexOp on the resulting buffer.
6399
        Method (MCTH, 2)    //  Control Method to compare two strings
6399
        Method (MCTH, 2)    //  Control Method to compare two strings
6400
        {   //  MCTH:   Control Method to compare two strings
6400
        {   //  MCTH:   Control Method to compare two strings
6401
            //  Arg0:       first string to compare
6401
            //  Arg0:       first string to compare
6402
            //  Arg1:       second string to compare
6402
            //  Arg1:       second string to compare
6403
            //  Return: zero if strings mismatch, 1 if strings match
6403
            //  Return: zero if strings mismatch, 1 if strings match
6404
 
6404
 
6405
            //  check if first string's length is less than second string's length
6405
            //  check if first string's length is less than second string's length
6406
            If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
6406
            If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
6407
                {   Return (0)  }
6407
                {   Return (0)  }
6408
 
6408
 
6409
            //  increment length to include NULL termination character
6409
            //  increment length to include NULL termination character
6410
            Add (SizeOf (Arg0), 1, Local0)  //  Local0 = strlen(Arg0) + 1
6410
            Add (SizeOf (Arg0), 1, Local0)  //  Local0 = strlen(Arg0) + 1
6411
 
6411
 
6412
            //  create two buffers of size Local0 [strlen(Arg0)+1]
6412
            //  create two buffers of size Local0 [strlen(Arg0)+1]
6413
            Name (BUF0, Buffer (Local0) {})
6413
            Name (BUF0, Buffer (Local0) {})
6414
            Name (BUF1, Buffer (Local0) {})
6414
            Name (BUF1, Buffer (Local0) {})
6415
 
6415
 
6416
            //  copy strings into buffers
6416
            //  copy strings into buffers
6417
            Store (Arg0, BUF0)
6417
            Store (Arg0, BUF0)
6418
            Store (Arg1, BUF1)
6418
            Store (Arg1, BUF1)
6419
 
6419
 
6420
            //  validate BUF0 and BUF1 are still buffers
6420
            //  validate BUF0 and BUF1 are still buffers
6421
            Store (ObjectType (BUF0), Local1)
6421
            Store (ObjectType (BUF0), Local1)
6422
            If (LNotEqual (Local1, 3))  //  Buffer is type 3
6422
            If (LNotEqual (Local1, 3))  //  Buffer is type 3
6423
                {   Return (20) }
6423
                {   Return (20) }
6424
            Store (ObjectType (BUF1), Local1)
6424
            Store (ObjectType (BUF1), Local1)
6425
            If (LNotEqual (Local1, 3))  //  Buffer is type 3
6425
            If (LNotEqual (Local1, 3))  //  Buffer is type 3
6426
                {   Return (21) }
6426
                {   Return (21) }
6427
 
6427
 
6428
            // Decrement because the Index base below is zero based
6428
            // Decrement because the Index base below is zero based
6429
            //  while Local0 length is one based.
6429
            //  while Local0 length is one based.
6430
            Decrement (Local0)
6430
            Decrement (Local0)
6431
 
6431
 
6432
            While (Local0)
6432
            While (Local0)
6433
            {   //  loop through all BUF0 buffer elements
6433
            {   //  loop through all BUF0 buffer elements
6434
                Decrement (Local0)
6434
                Decrement (Local0)
6435
 
6435
 
6436
                //  check if BUF0[n] == BUF1[n]
6436
                //  check if BUF0[n] == BUF1[n]
6437
                If (LEqual (DerefOf (Index (BUF0, Local0, )),
6437
                If (LEqual (DerefOf (Index (BUF0, Local0, )),
6438
                        DerefOf (Index (BUF1, Local0, ))))
6438
                        DerefOf (Index (BUF1, Local0, ))))
6439
                    {   }   //  this is how the code was really implemented
6439
                    {   }   //  this is how the code was really implemented
6440
                Else
6440
                Else
6441
                    {   Return (Zero)   }
6441
                    {   Return (Zero)   }
6442
            }   //  loop through all BUF0 buffer elements
6442
            }   //  loop through all BUF0 buffer elements
6443
 
6443
 
6444
            Return (One)    //  strings / buffers match
6444
            Return (One)    //  strings / buffers match
6445
        }   //  MCTH:   Control Method to compare two strings
6445
        }   //  MCTH:   Control Method to compare two strings
6446
 
6446
 
6447
 
6447
 
6448
        Method (TEST)
6448
        Method (TEST)
6449
        {
6449
        {
6450
            Store ("++++++++ IndexOp5 Test", Debug)
6450
            Store ("++++++++ IndexOp5 Test", Debug)
6451
 
6451
 
6452
            If (MCTH (\_OS, "Microsoft Windows NT"))
6452
            If (MCTH (\_OS, "Microsoft Windows NT"))
6453
                {   Store (1, OSFL) }
6453
                {   Store (1, OSFL) }
6454
 
6454
 
6455
            If (LNotEqual (OSFL, 1))
6455
            If (LNotEqual (OSFL, 1))
6456
                {   Return (11) }
6456
                {   Return (11) }
6457
 
6457
 
6458
            Return (0)
6458
            Return (0)
6459
        }   //  TEST
6459
        }   //  TEST
6460
    }   //  IDX5
6460
    }   //  IDX5
6461
 
6461
 
6462
//
6462
//
6463
// test IndexOp.asl
6463
// test IndexOp.asl
6464
//
6464
//
6465
    Scope (\_SB)    //  System Bus
6465
    Scope (\_SB)    //  System Bus
6466
    {   //  _SB system bus
6466
    {   //  _SB system bus
6467
 
6467
 
6468
        Method (C097)
6468
        Method (C097)
6469
            {   Return (1)  }
6469
            {   Return (1)  }
6470
 
6470
 
6471
        Device (PCI2)
6471
        Device (PCI2)
6472
        {   //  Root PCI Bus
6472
        {   //  Root PCI Bus
6473
            Name (_HID, EISAID("PNP0A03"))
6473
            Name (_HID, EISAID("PNP0A03"))
6474
            Name (_ADR, 0x00000000)
6474
            Name (_ADR, 0x00000000)
6475
            Name (_CRS, Buffer(26)  {"\_SB_.PCI2._CRS..........."})
6475
            Name (_CRS, Buffer(26)  {"\_SB_.PCI2._CRS..........."})
6476
            Method (_STA)   {Return (0x0F)}
6476
            Method (_STA)   {Return (0x0F)}
6477
 
6477
 
6478
            Device (ISA)
6478
            Device (ISA)
6479
            {   //  ISA bridge
6479
            {   //  ISA bridge
6480
                Name (_ADR, 0x00030000)     //  ISA bus ID
6480
                Name (_ADR, 0x00030000)     //  ISA bus ID
6481
 
6481
 
6482
                Device (EC0)
6482
                Device (EC0)
6483
                {   //  Embedded Controller
6483
                {   //  Embedded Controller
6484
                    Name (_GPE, 0)              //  EC use GPE0
6484
                    Name (_GPE, 0)              //  EC use GPE0
6485
                    Name (_ADR, 0x0030000)  //  PCI address
6485
                    Name (_ADR, 0x0030000)  //  PCI address
6486
 
6486
 
6487
                    Method (_STA,0)         //  EC Status
6487
                    Method (_STA,0)         //  EC Status
6488
                        {   Return(0xF) }       //  EC is functioning
6488
                        {   Return(0xF) }       //  EC is functioning
6489
 
6489
 
6490
                    Name (_CRS, ResourceTemplate()
6490
                    Name (_CRS, ResourceTemplate()
6491
                        {
6491
                        {
6492
                            IO (Decode16, 0x62, 0x62, 1, 1)
6492
                            IO (Decode16, 0x62, 0x62, 1, 1)
6493
                            IO (Decode16, 0x66, 0x66, 1, 1)
6493
                            IO (Decode16, 0x66, 0x66, 1, 1)
6494
                        }
6494
                        }
6495
                    )
6495
                    )
6496
 
6496
 
6497
                //  create EC's region and field
6497
                //  create EC's region and field
6498
                    OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
6498
                    OperationRegion (RAM, SystemMemory, 0x400000, 0x100)
6499
                    Field (RAM, AnyAcc, NoLock, Preserve)
6499
                    Field (RAM, AnyAcc, NoLock, Preserve)
6500
                    {
6500
                    {
6501
                        //  AC information
6501
                        //  AC information
6502
                        ADP,    1,      //  AC Adapter 1:On-line, 0:Off-line
6502
                        ADP,    1,      //  AC Adapter 1:On-line, 0:Off-line
6503
                        AFLT,   1,      //  AC Adapter Fault  1:Fault  0:Normal
6503
                        AFLT,   1,      //  AC Adapter Fault  1:Fault  0:Normal
6504
                        BAT0,   1,      //  BAT0  1:present, 0:not present
6504
                        BAT0,   1,      //  BAT0  1:present, 0:not present
6505
                        ,       1,      //  reserved
6505
                        ,       1,      //  reserved
6506
                        ,       28, //  filler to force DWORD alignment
6506
                        ,       28, //  filler to force DWORD alignment
6507
 
6507
 
6508
                        //  CMBatt information
6508
                        //  CMBatt information
6509
                        BPU0,   32, //  Power Unit
6509
                        BPU0,   32, //  Power Unit
6510
                        BDC0,   32, //  Designed Capacity
6510
                        BDC0,   32, //  Designed Capacity
6511
                        BFC0,   32, //  Last Full Charge Capacity
6511
                        BFC0,   32, //  Last Full Charge Capacity
6512
                        BTC0,   32, //  Battery Technology
6512
                        BTC0,   32, //  Battery Technology
6513
                        BDV0,   32, //  Design Voltage
6513
                        BDV0,   32, //  Design Voltage
6514
                        BST0,   32, //  Battery State
6514
                        BST0,   32, //  Battery State
6515
                        BPR0,   32, //  Battery Present Rate
6515
                        BPR0,   32, //  Battery Present Rate
6516
                                        //  (Designed Capacity)x(%)/{(h)x100}
6516
                                        //  (Designed Capacity)x(%)/{(h)x100}
6517
                        BRC0,   32, //  Battery Remaining Capacity
6517
                        BRC0,   32, //  Battery Remaining Capacity
6518
                                        //  (Designed Capacity)(%)^100
6518
                                        //  (Designed Capacity)(%)^100
6519
                        BPV0,   32, //  Battery Present Voltage
6519
                        BPV0,   32, //  Battery Present Voltage
6520
                        BTP0,   32, //  Trip Point
6520
                        BTP0,   32, //  Trip Point
6521
                        BCW0,   32, //  Design capacity of Warning
6521
                        BCW0,   32, //  Design capacity of Warning
6522
                        BCL0,   32, //  Design capacity of Low
6522
                        BCL0,   32, //  Design capacity of Low
6523
                        BCG0,   32, //  capacity granularity 1
6523
                        BCG0,   32, //  capacity granularity 1
6524
                        BG20,   32, //  capacity granularity 2
6524
                        BG20,   32, //  capacity granularity 2
6525
                        BMO0,   32, //  Battery model number field
6525
                        BMO0,   32, //  Battery model number field
6526
                        BIF0,   32, //  OEM Information(00h)
6526
                        BIF0,   32, //  OEM Information(00h)
6527
                        BSN0,   32, //  Battery Serial Number
6527
                        BSN0,   32, //  Battery Serial Number
6528
                        BTY0,   32, //  Battery Type (e.g., "Li-Ion")
6528
                        BTY0,   32, //  Battery Type (e.g., "Li-Ion")
6529
                        BTY1,   32      //  Battery Type (e.g., "Li-Ion")
6529
                        BTY1,   32      //  Battery Type (e.g., "Li-Ion")
6530
                    }   //  Field
6530
                    }   //  Field
6531
                }   //  EC0: Embedded Controller
6531
                }   //  EC0: Embedded Controller
6532
            }   //  ISA bridge
6532
            }   //  ISA bridge
6533
        }   //  PCI2 Root PCI Bus
6533
        }   //  PCI2 Root PCI Bus
6534
 
6534
 
6535
        Device (IDX0)
6535
        Device (IDX0)
6536
        {   //  Test device name
6536
        {   //  Test device name
6537
            Name (_HID, EISAID ("PNP0C0A"))     //  Control Method Battey ID
6537
            Name (_HID, EISAID ("PNP0C0A"))     //  Control Method Battey ID
6538
            Name (_PCL, Package() {\_SB})
6538
            Name (_PCL, Package() {\_SB})
6539
            Method (_STA)
6539
            Method (_STA)
6540
            {
6540
            {
6541
                //  _STA bits 0-3 indicate existence of battery slot
6541
                //  _STA bits 0-3 indicate existence of battery slot
6542
                //  _STA bit 4 indicates battery (not) present
6542
                //  _STA bit 4 indicates battery (not) present
6543
                If (\_SB.PCI2.ISA.EC0.BAT0)
6543
                If (\_SB.PCI2.ISA.EC0.BAT0)
6544
                    {   Return (0x1F)   }   //  Battery present
6544
                    {   Return (0x1F)   }   //  Battery present
6545
                else
6545
                else
6546
                    {   Return (0x0F)   }   //  Battery not present
6546
                    {   Return (0x0F)   }   //  Battery not present
6547
            }   //  _STA
6547
            }   //  _STA
6548
 
6548
 
6549
            Method (_BIF)
6549
            Method (_BIF)
6550
            {
6550
            {
6551
                Name (BUFR, Package(13) {})
6551
                Name (BUFR, Package(13) {})
6552
                Store (\_SB.PCI2.ISA.EC0.BPU0, Index (BUFR,0))  //  Power Unit
6552
                Store (\_SB.PCI2.ISA.EC0.BPU0, Index (BUFR,0))  //  Power Unit
6553
                Store (\_SB.PCI2.ISA.EC0.BDC0, Index (BUFR,1))  //  Designed Capacity
6553
                Store (\_SB.PCI2.ISA.EC0.BDC0, Index (BUFR,1))  //  Designed Capacity
6554
                Store (\_SB.PCI2.ISA.EC0.BFC0, Index (BUFR,2))  //  Last Full Charge Capa.
6554
                Store (\_SB.PCI2.ISA.EC0.BFC0, Index (BUFR,2))  //  Last Full Charge Capa.
6555
                Store (\_SB.PCI2.ISA.EC0.BTC0, Index (BUFR,3))  //  Battery Technology
6555
                Store (\_SB.PCI2.ISA.EC0.BTC0, Index (BUFR,3))  //  Battery Technology
6556
                Store (\_SB.PCI2.ISA.EC0.BDV0, Index (BUFR,4))  //  Designed Voltage
6556
                Store (\_SB.PCI2.ISA.EC0.BDV0, Index (BUFR,4))  //  Designed Voltage
6557
                Store (\_SB.PCI2.ISA.EC0.BCW0, Index (BUFR,5))  //  Designed warning level
6557
                Store (\_SB.PCI2.ISA.EC0.BCW0, Index (BUFR,5))  //  Designed warning level
6558
                Store (\_SB.PCI2.ISA.EC0.BCL0, Index (BUFR,6))  //  Designed Low level
6558
                Store (\_SB.PCI2.ISA.EC0.BCL0, Index (BUFR,6))  //  Designed Low level
6559
                Store (\_SB.PCI2.ISA.EC0.BCG0, Index (BUFR,7))  //  Capacity granularity 1
6559
                Store (\_SB.PCI2.ISA.EC0.BCG0, Index (BUFR,7))  //  Capacity granularity 1
6560
                Store (\_SB.PCI2.ISA.EC0.BG20, Index (BUFR,8))  //  Capacity granularity 2
6560
                Store (\_SB.PCI2.ISA.EC0.BG20, Index (BUFR,8))  //  Capacity granularity 2
6561
 
6561
 
6562
                Store ("", Index (BUFR,9))                              //  Model Number
6562
                Store ("", Index (BUFR,9))                              //  Model Number
6563
 
6563
 
6564
                Store ("", Index (BUFR,10))                         //  Serial Number
6564
                Store ("", Index (BUFR,10))                         //  Serial Number
6565
 
6565
 
6566
                Store ("LiOn", Index (BUFR,11))                     //  Battery Type
6566
                Store ("LiOn", Index (BUFR,11))                     //  Battery Type
6567
 
6567
 
6568
                Store ("Chicony", Index (BUFR,12))                  //  OEM Information
6568
                Store ("Chicony", Index (BUFR,12))                  //  OEM Information
6569
 
6569
 
6570
                Return (BUFR)
6570
                Return (BUFR)
6571
            }   //  _BIF
6571
            }   //  _BIF
6572
 
6572
 
6573
            Method (_BST)
6573
            Method (_BST)
6574
            {
6574
            {
6575
                Name (BUFR, Package(4) {1, 0x100, 0x76543210, 0x180})
6575
                Name (BUFR, Package(4) {1, 0x100, 0x76543210, 0x180})
6576
                Return (BUFR)
6576
                Return (BUFR)
6577
            }   //  _BST
6577
            }   //  _BST
6578
 
6578
 
6579
            Method (_BTP,1)
6579
            Method (_BTP,1)
6580
            {
6580
            {
6581
                Store (arg0, \_SB.PCI2.ISA.EC0.BTP0)    //  Set Battery Trip point
6581
                Store (arg0, \_SB.PCI2.ISA.EC0.BTP0)    //  Set Battery Trip point
6582
            }
6582
            }
6583
 
6583
 
6584
            Method (TEST)
6584
            Method (TEST)
6585
            {
6585
            {
6586
 
6586
 
6587
                Store ("++++++++ IndexOp Test", Debug)
6587
                Store ("++++++++ IndexOp Test", Debug)
6588
 
6588
 
6589
                //  test storing into uninitialized package elements
6589
                //  test storing into uninitialized package elements
6590
                Name (PBUF, Package(4) {})  //  leave unitialized
6590
                Name (PBUF, Package(4) {})  //  leave unitialized
6591
                Store (0x01234567, Index (PBUF,0))
6591
                Store (0x01234567, Index (PBUF,0))
6592
                Store (0x89ABCDEF, Index (PBUF,1))
6592
                Store (0x89ABCDEF, Index (PBUF,1))
6593
                Store (0xFEDCBA98, Index (PBUF,2))
6593
                Store (0xFEDCBA98, Index (PBUF,2))
6594
                Store (0x76543210, Index (PBUF,3))
6594
                Store (0x76543210, Index (PBUF,3))
6595
 
6595
 
6596
                //  verify values stored into uninitialized package elements
6596
                //  verify values stored into uninitialized package elements
6597
                If (LNotEqual (DerefOf (Index (PBUF,0)), 0x01234567))
6597
                If (LNotEqual (DerefOf (Index (PBUF,0)), 0x01234567))
6598
                    {   Return (0x10)   }
6598
                    {   Return (0x10)   }
6599
 
6599
 
6600
                If (LNotEqual (DerefOf (Index (PBUF,1)), 0x89ABCDEF))
6600
                If (LNotEqual (DerefOf (Index (PBUF,1)), 0x89ABCDEF))
6601
                    {   Return (0x11)   }
6601
                    {   Return (0x11)   }
6602
 
6602
 
6603
                If (LNotEqual (DerefOf (Index (PBUF,2)), 0xFEDCBA98))
6603
                If (LNotEqual (DerefOf (Index (PBUF,2)), 0xFEDCBA98))
6604
                    {   Return (0x12)   }
6604
                    {   Return (0x12)   }
6605
 
6605
 
6606
                If (LNotEqual (DerefOf (Index (PBUF,3)), 0x76543210))
6606
                If (LNotEqual (DerefOf (Index (PBUF,3)), 0x76543210))
6607
                    {   Return (0x13)   }
6607
                    {   Return (0x13)   }
6608
 
6608
 
6609
 
6609
 
6610
                //  store _BIF package return value into Local0
6610
                //  store _BIF package return value into Local0
6611
                Store (_BIF, Local0)
6611
                Store (_BIF, Local0)
6612
 
6612
 
6613
                //  save Local0 object type value into Local1
6613
                //  save Local0 object type value into Local1
6614
                Store (ObjectType (Local0), Local1)
6614
                Store (ObjectType (Local0), Local1)
6615
 
6615
 
6616
                //  validate Local0 is a Package
6616
                //  validate Local0 is a Package
6617
                If (LNotEqual (Local1, 4))  //  Package type is 4
6617
                If (LNotEqual (Local1, 4))  //  Package type is 4
6618
                    {   Return (0x21)   }   //  failure
6618
                    {   Return (0x21)   }   //  failure
6619
 
6619
 
6620
 
6620
 
6621
                //  test storing into buffer field elements
6621
                //  test storing into buffer field elements
6622
                Name (BUFR, Buffer(16)
6622
                Name (BUFR, Buffer(16)
6623
                    {   //  initial values
6623
                    {   //  initial values
6624
                        00, 00, 00, 00, 00, 00, 00, 00,
6624
                        00, 00, 00, 00, 00, 00, 00, 00,
6625
                        00, 00, 00, 00, 00, 00, 00, 00,
6625
                        00, 00, 00, 00, 00, 00, 00, 00,
6626
                    }
6626
                    }
6627
                )   //  BUFR
6627
                )   //  BUFR
6628
                //  test storing into buffer field elements
6628
                //  test storing into buffer field elements
6629
                Store (0x01234567, Index (BUFR,0))  //  should only store 0x67
6629
                Store (0x01234567, Index (BUFR,0))  //  should only store 0x67
6630
                Store (0x89ABCDEF, Index (BUFR,4))  //  should only store 0xEF
6630
                Store (0x89ABCDEF, Index (BUFR,4))  //  should only store 0xEF
6631
                Store (0xFEDCBA98, Index (BUFR,8))  //  should only store 0x98
6631
                Store (0xFEDCBA98, Index (BUFR,8))  //  should only store 0x98
6632
                Store (0x76543210, Index (BUFR,12)) //  should only store 0x10
6632
                Store (0x76543210, Index (BUFR,12)) //  should only store 0x10
6633
 
6633
 
6634
                //  verify storing into buffer field elements
6634
                //  verify storing into buffer field elements
6635
                If (LNotEqual (DerefOf (Index (BUFR,0)), 0x67))
6635
                If (LNotEqual (DerefOf (Index (BUFR,0)), 0x67))
6636
                    {   Return (0x30)   }
6636
                    {   Return (0x30)   }
6637
 
6637
 
6638
                If (LNotEqual (DerefOf (Index (BUFR,1)), 0))
6638
                If (LNotEqual (DerefOf (Index (BUFR,1)), 0))
6639
                    {   Return (0x31)   }
6639
                    {   Return (0x31)   }
6640
 
6640
 
6641
                If (LNotEqual (DerefOf (Index (BUFR,4)), 0xEF))
6641
                If (LNotEqual (DerefOf (Index (BUFR,4)), 0xEF))
6642
                    {   Return (0x34)   }
6642
                    {   Return (0x34)   }
6643
 
6643
 
6644
                If (LNotEqual (DerefOf (Index (BUFR,8)), 0x98))
6644
                If (LNotEqual (DerefOf (Index (BUFR,8)), 0x98))
6645
                    {   Return (0x38)   }
6645
                    {   Return (0x38)   }
6646
 
6646
 
6647
                If (LNotEqual (DerefOf (Index (BUFR,12)), 0x10))
6647
                If (LNotEqual (DerefOf (Index (BUFR,12)), 0x10))
6648
                    {   Return (0x3C)   }
6648
                    {   Return (0x3C)   }
6649
 
6649
 
6650
 
6650
 
6651
                Return (0)  //  pass
6651
                Return (0)  //  pass
6652
            }   //  TEST
6652
            }   //  TEST
6653
        }   //  IDX0
6653
        }   //  IDX0
6654
    }   //  _SB system bus
6654
    }   //  _SB system bus
6655
 
6655
 
6656
//
6656
//
6657
// test BitIndex.asl
6657
// test BitIndex.asl
6658
//
6658
//
6659
//  BitIndex test
6659
//  BitIndex test
6660
//  This is a test case for accessing fields defined as single bits in
6660
//  This is a test case for accessing fields defined as single bits in
6661
//  memory.  This is done by creating two index fields that overlay the
6661
//  memory.  This is done by creating two index fields that overlay the
6662
//  same DWORD in memory.  One field accesses the DWORD as a DWORD, the
6662
//  same DWORD in memory.  One field accesses the DWORD as a DWORD, the
6663
//  other accesses individual bits of the same DWORD field in memory.
6663
//  other accesses individual bits of the same DWORD field in memory.
6664
//
6664
//
6665
    Scope (\_SB)    //  System Bus
6665
    Scope (\_SB)    //  System Bus
6666
    {   //  _SB system bus
6666
    {   //  _SB system bus
6667
        OperationRegion (RAM, SystemMemory, 0x800000, 0x100)
6667
        OperationRegion (RAM, SystemMemory, 0x800000, 0x100)
6668
        Field (RAM, AnyAcc, NoLock, Preserve)
6668
        Field (RAM, AnyAcc, NoLock, Preserve)
6669
        {   //  Any access
6669
        {   //  Any access
6670
            TREE,   3,
6670
            TREE,   3,
6671
            WRD0,   16,
6671
            WRD0,   16,
6672
            WRD1,   16,
6672
            WRD1,   16,
6673
            WRD2,   16,
6673
            WRD2,   16,
6674
            WRD3,   16,
6674
            WRD3,   16,
6675
            WRD4,   16,
6675
            WRD4,   16,
6676
            DWRD,   32, //  DWORD field
6676
            DWRD,   32, //  DWORD field
6677
        }
6677
        }
6678
        Field (RAM, AnyAcc, NoLock, Preserve)
6678
        Field (RAM, AnyAcc, NoLock, Preserve)
6679
        {   //  Any access
6679
        {   //  Any access
6680
            THRE,   3,
6680
            THRE,   3,
6681
            WD00,   16,
6681
            WD00,   16,
6682
            WD01,   16,
6682
            WD01,   16,
6683
            WD02,   16,
6683
            WD02,   16,
6684
            WD03,   16,
6684
            WD03,   16,
6685
            WD04,   16,
6685
            WD04,   16,
6686
            BYT0,   8,  //  Start off with a BYTE
6686
            BYT0,   8,  //  Start off with a BYTE
6687
            BIT0,   1,  //  single-bit field
6687
            BIT0,   1,  //  single-bit field
6688
            BIT1,   1,  //  single-bit field
6688
            BIT1,   1,  //  single-bit field
6689
            BIT2,   1,  //  single-bit field
6689
            BIT2,   1,  //  single-bit field
6690
            BIT3,   1,  //  single-bit field
6690
            BIT3,   1,  //  single-bit field
6691
            BIT4,   1,  //  single-bit field
6691
            BIT4,   1,  //  single-bit field
6692
            BIT5,   1,  //  single-bit field
6692
            BIT5,   1,  //  single-bit field
6693
            BIT6,   1,  //  single-bit field
6693
            BIT6,   1,  //  single-bit field
6694
            BIT7,   1,  //  single-bit field
6694
            BIT7,   1,  //  single-bit field
6695
            BIT8,   1,  //  single-bit field
6695
            BIT8,   1,  //  single-bit field
6696
            BIT9,   1,  //  single-bit field
6696
            BIT9,   1,  //  single-bit field
6697
            BITA,   1,  //  single-bit field
6697
            BITA,   1,  //  single-bit field
6698
            BITB,   1,  //  single-bit field
6698
            BITB,   1,  //  single-bit field
6699
            BITC,   1,  //  single-bit field
6699
            BITC,   1,  //  single-bit field
6700
            BITD,   1,  //  single-bit field
6700
            BITD,   1,  //  single-bit field
6701
            BITE,   1,  //  single-bit field
6701
            BITE,   1,  //  single-bit field
6702
            BITF,   1,  //  single-bit field
6702
            BITF,   1,  //  single-bit field
6703
            BYTZ,   8,  //  End with a BYTE for a total of 32 bits
6703
            BYTZ,   8,  //  End with a BYTE for a total of 32 bits
6704
        }
6704
        }
6705
 
6705
 
6706
        Device (BITI)
6706
        Device (BITI)
6707
        {   //  Test device name
6707
        {   //  Test device name
6708
 
6708
 
6709
            Method (MBIT)   //  Test single bit memory accesses
6709
            Method (MBIT)   //  Test single bit memory accesses
6710
            {
6710
            {
6711
 
6711
 
6712
                If (LNotEqual (DWRD, 0x00))
6712
                If (LNotEqual (DWRD, 0x00))
6713
                {
6713
                {
6714
                    Store (0xFF00, Local0)
6714
                    Store (0xFF00, Local0)
6715
                }
6715
                }
6716
                Else
6716
                Else
6717
                {
6717
                {
6718
                    //  Prime Local0 with 0...assume passing condition
6718
                    //  Prime Local0 with 0...assume passing condition
6719
                    Store (0, Local0)
6719
                    Store (0, Local0)
6720
 
6720
 
6721
                    //  set memory contents to known values using DWORD field
6721
                    //  set memory contents to known values using DWORD field
6722
                    Store (0x5A5A5A5A, DWRD)
6722
                    Store (0x5A5A5A5A, DWRD)
6723
 
6723
 
6724
                    //  Given the value programmed into DWRD, only the odd bits
6724
                    //  Given the value programmed into DWRD, only the odd bits
6725
                    //  of the lower nibble should be set. BIT1, BIT3 should be set.
6725
                    //  of the lower nibble should be set. BIT1, BIT3 should be set.
6726
                    //  BIT0 and BIT2 should be clear
6726
                    //  BIT0 and BIT2 should be clear
6727
 
6727
 
6728
                    If (BIT0)
6728
                    If (BIT0)
6729
                    {
6729
                    {
6730
                        Or (Local0, 0x01, Local0)
6730
                        Or (Local0, 0x01, Local0)
6731
                    }
6731
                    }
6732
 
6732
 
6733
                    If (LNot (BIT1))
6733
                    If (LNot (BIT1))
6734
                    {
6734
                    {
6735
                        Or (Local0, 0x02, Local0)
6735
                        Or (Local0, 0x02, Local0)
6736
                    }
6736
                    }
6737
 
6737
 
6738
                    If (BIT2)
6738
                    If (BIT2)
6739
                    {
6739
                    {
6740
                        Or (Local0, 0x04, Local0)
6740
                        Or (Local0, 0x04, Local0)
6741
                    }
6741
                    }
6742
 
6742
 
6743
                    If (LNot (BIT3))
6743
                    If (LNot (BIT3))
6744
                    {
6744
                    {
6745
                        Or (Local0, 0x08, Local0)
6745
                        Or (Local0, 0x08, Local0)
6746
                    }
6746
                    }
6747
 
6747
 
6748
                    //  Now check the upper nibble.  Only the "even" bits should
6748
                    //  Now check the upper nibble.  Only the "even" bits should
6749
                    //  be set.  BIT4, BIT6.  BIT5 and BIT7 should be clear.
6749
                    //  be set.  BIT4, BIT6.  BIT5 and BIT7 should be clear.
6750
                    If (LNot (BIT4))
6750
                    If (LNot (BIT4))
6751
                    {
6751
                    {
6752
                        Or (Local0, 0x10, Local0)
6752
                        Or (Local0, 0x10, Local0)
6753
                    }
6753
                    }
6754
 
6754
 
6755
                    If (BIT5)
6755
                    If (BIT5)
6756
                    {
6756
                    {
6757
                        Or (Local0, 0x20, Local0)
6757
                        Or (Local0, 0x20, Local0)
6758
                    }
6758
                    }
6759
 
6759
 
6760
                    If (LNot (BIT6))
6760
                    If (LNot (BIT6))
6761
                    {
6761
                    {
6762
                        Or (Local0, 0x40, Local0)
6762
                        Or (Local0, 0x40, Local0)
6763
                    }
6763
                    }
6764
 
6764
 
6765
                    If (BIT7)
6765
                    If (BIT7)
6766
                    {
6766
                    {
6767
                        Or (Local0, 0x80, Local0)
6767
                        Or (Local0, 0x80, Local0)
6768
                    }
6768
                    }
6769
                }   //  End Else DWRD zeroed out
6769
                }   //  End Else DWRD zeroed out
6770
 
6770
 
6771
                Return (Local0)
6771
                Return (Local0)
6772
            }   //  MBIT:   Test single bit memory accesses
6772
            }   //  MBIT:   Test single bit memory accesses
6773
 
6773
 
6774
            Method (TEST)
6774
            Method (TEST)
6775
            {
6775
            {
6776
 
6776
 
6777
                Store ("++++++++ BitIndex Test", Debug)
6777
                Store ("++++++++ BitIndex Test", Debug)
6778
 
6778
 
6779
                //  Zero out DWRD
6779
                //  Zero out DWRD
6780
                Store (0x00000000, DWRD)
6780
                Store (0x00000000, DWRD)
6781
 
6781
 
6782
                //  MBIT returns zero if successful
6782
                //  MBIT returns zero if successful
6783
                //  This may be causing problems -- Return (MBIT)
6783
                //  This may be causing problems -- Return (MBIT)
6784
                Store (MBIT, Local0)
6784
                Store (MBIT, Local0)
6785
 
6785
 
6786
                Return (Local0)
6786
                Return (Local0)
6787
            }   //  TEST
6787
            }   //  TEST
6788
        }   //  BITI
6788
        }   //  BITI
6789
    }   //  _SB system bus
6789
    }   //  _SB system bus
6790
 
6790
 
6791
//
6791
//
6792
// test IndexOp3.asl
6792
// test IndexOp3.asl
6793
//
6793
//
6794
//  Additional IndexOp test cases to support ACPICMB (control method battery
6794
//  Additional IndexOp test cases to support ACPICMB (control method battery
6795
//  test) on Compaq laptops. Test cases include storing a package into
6795
//  test) on Compaq laptops. Test cases include storing a package into
6796
//  an IndexOp target and validating that changing source and destination
6796
//  an IndexOp target and validating that changing source and destination
6797
//  package contents are independent of each other.
6797
//  package contents are independent of each other.
6798
//
6798
//
6799
    Scope (\_SB)    //  System Bus
6799
    Scope (\_SB)    //  System Bus
6800
    {   //  _SB system bus
6800
    {   //  _SB system bus
6801
 
6801
 
6802
        Name (C174, 13)
6802
        Name (C174, 13)
6803
        Name (C175, 8)
6803
        Name (C175, 8)
6804
 
6804
 
6805
        Device (C158)
6805
        Device (C158)
6806
        {   //  C158:   AC Adapter device
6806
        {   //  C158:   AC Adapter device
6807
            Name (_HID, "ACPI0003") //  AC Adapter device
6807
            Name (_HID, "ACPI0003") //  AC Adapter device
6808
            Name (_PCL, Package (1) {\_SB})
6808
            Name (_PCL, Package (1) {\_SB})
6809
 
6809
 
6810
            Method (_PSR)
6810
            Method (_PSR)
6811
            {
6811
            {
6812
                Acquire (\_GL, 0xFFFF)
6812
                Acquire (\_GL, 0xFFFF)
6813
                Release (\_GL)
6813
                Release (\_GL)
6814
                And (Local0, 1, Local0) //  Local0 &= 1
6814
                And (Local0, 1, Local0) //  Local0 &= 1
6815
                Return (Local0)
6815
                Return (Local0)
6816
            }   //  _PSR
6816
            }   //  _PSR
6817
        }   //  C158:   AC Adapter device
6817
        }   //  C158:   AC Adapter device
6818
 
6818
 
6819
        Name (C176, Package (4) {"Primary", "MultiBay", "DockRight", "DockLeft"})
6819
        Name (C176, Package (4) {"Primary", "MultiBay", "DockRight", "DockLeft"})
6820
 
6820
 
6821
        Name (C177, Package (4) {0x99F5, 0x99F5, 0x995F, 0x995F})
6821
        Name (C177, Package (4) {0x99F5, 0x99F5, 0x995F, 0x995F})
6822
 
6822
 
6823
        Name (C178, Package (4)
6823
        Name (C178, Package (4)
6824
        {
6824
        {
6825
            Package (4) {0, 0, 0x966B, 0x4190},
6825
            Package (4) {0, 0, 0x966B, 0x4190},
6826
            Package (4) {0, 0, 0x966B, 0x4190},
6826
            Package (4) {0, 0, 0x966B, 0x4190},
6827
            Package (4) {0, 0, 0x966B, 0x4190},
6827
            Package (4) {0, 0, 0x966B, 0x4190},
6828
            Package (4) {0, 0, 0x966B, 0x4190}
6828
            Package (4) {0, 0, 0x966B, 0x4190}
6829
        })  //  C178
6829
        })  //  C178
6830
 
6830
 
6831
        Name (C179, Package (4) {0, 0, 0x966B, 0x4190})
6831
        Name (C179, Package (4) {0, 0, 0x966B, 0x4190})
6832
 
6832
 
6833
        Name (C17A, Package (4)
6833
        Name (C17A, Package (4)
6834
        {
6834
        {
6835
            Package (3) {0, 0, 0},
6835
            Package (3) {0, 0, 0},
6836
            Package (3) {0, 0, 0},
6836
            Package (3) {0, 0, 0},
6837
            Package (3) {0, 0, 0},
6837
            Package (3) {0, 0, 0},
6838
            Package (3) {0, 0, 0}
6838
            Package (3) {0, 0, 0}
6839
        })  //  C17A
6839
        })  //  C17A
6840
 
6840
 
6841
        Method (C17B, 1)
6841
        Method (C17B, 1)
6842
        {   //  C17B:   _BIF implementation
6842
        {   //  C17B:   _BIF implementation
6843
            Name (C17C, Package (13)
6843
            Name (C17C, Package (13)
6844
            {   //  C17C:   _BIF control method return package
6844
            {   //  C17C:   _BIF control method return package
6845
                0,                  //  Power Unit (0 ==> mWh and mW)
6845
                0,                  //  Power Unit (0 ==> mWh and mW)
6846
                0x99F5,         //  Design Capacity
6846
                0x99F5,         //  Design Capacity
6847
                0x99F5,         //  Last Full Charge Capacity
6847
                0x99F5,         //  Last Full Charge Capacity
6848
                1,                  //  Battery Technology (1 ==> rechargeable)
6848
                1,                  //  Battery Technology (1 ==> rechargeable)
6849
                0x3840,         //  Design Voltage
6849
                0x3840,         //  Design Voltage
6850
                0x1280,         //  Design Capacity of Warning
6850
                0x1280,         //  Design Capacity of Warning
6851
                0x0AC7,         //  Design Capacity of Low
6851
                0x0AC7,         //  Design Capacity of Low
6852
                1,                  //  Battery Capacity Granularity 1 (Low -- Warning)
6852
                1,                  //  Battery Capacity Granularity 1 (Low -- Warning)
6853
                1,                  //  Battery Capacity Granularity 2 (Warning -- Full)
6853
                1,                  //  Battery Capacity Granularity 2 (Warning -- Full)
6854
                "2891",         //  Model Number (ASCIIZ)
6854
                "2891",         //  Model Number (ASCIIZ)
6855
                "(-Unknown-)",  //  Serial Number (ASCIIZ)
6855
                "(-Unknown-)",  //  Serial Number (ASCIIZ)
6856
                "LIon",         //  Battery Type (ASCIIZ)
6856
                "LIon",         //  Battery Type (ASCIIZ)
6857
                0                   //  OEM Information (ASCIIZ)
6857
                0                   //  OEM Information (ASCIIZ)
6858
            })  //  C17C:   _BIF control method return package
6858
            })  //  C17C:   _BIF control method return package
6859
 
6859
 
6860
            And (Arg0, 7, Local0)                       //  Local0 = Arg0 & 7
6860
            And (Arg0, 7, Local0)                       //  Local0 = Arg0 & 7
6861
 
6861
 
6862
            ShiftRight (Local0, 1, Local4)          //  Local4 = Local0 >> 1
6862
            ShiftRight (Local0, 1, Local4)          //  Local4 = Local0 >> 1
6863
 
6863
 
6864
            Store (C179, Index (C178, Local4, ))    //  C178->Local4 = C179
6864
            Store (C179, Index (C178, Local4, ))    //  C178->Local4 = C179
6865
 
6865
 
6866
            //  verify source and destination packages can be altered independent
6866
            //  verify source and destination packages can be altered independent
6867
            //  of each other (i.e., changing one's contents does NOT change other's
6867
            //  of each other (i.e., changing one's contents does NOT change other's
6868
            //  contents)
6868
            //  contents)
6869
            Store (0x1234, Index (C179, 2, ))               //  C179[2] = 0x1234
6869
            Store (0x1234, Index (C179, 2, ))               //  C179[2] = 0x1234
6870
            Store (DerefOf (Index (C179, 2, )), Local2) //  Local2 = C179[2]
6870
            Store (DerefOf (Index (C179, 2, )), Local2) //  Local2 = C179[2]
6871
            if (LNotEqual (Local2, 0x1234))
6871
            if (LNotEqual (Local2, 0x1234))
6872
                {   Return (0x1234) }
6872
                {   Return (0x1234) }
6873
                                                                        //  Local2 = C178[0,2]
6873
                                                                        //  Local2 = C178[0,2]
6874
            Store (DerefOf (Index (DerefOf (Index (C178, 0, )), 2, )), Local2)
6874
            Store (DerefOf (Index (DerefOf (Index (C178, 0, )), 2, )), Local2)
6875
            if (LNotEqual (Local2, 0x966B))
6875
            if (LNotEqual (Local2, 0x966B))
6876
                {   Return (0x1234) }
6876
                {   Return (0x1234) }
6877
 
6877
 
6878
            // Restore data to allow iterative execution
6878
            // Restore data to allow iterative execution
6879
            Store (0x966B, Index (C179, 2, ))               //  C179[2] = 0x966B
6879
            Store (0x966B, Index (C179, 2, ))               //  C179[2] = 0x966B
6880
 
6880
 
6881
                                                                        //  C178[0,3] = 0x5678
6881
                                                                        //  C178[0,3] = 0x5678
6882
            Store (0x5678, Index (DerefOf (Index (C178, 0, )), 3, ))
6882
            Store (0x5678, Index (DerefOf (Index (C178, 0, )), 3, ))
6883
                                                                        //  Local2 = C178[0,3]
6883
                                                                        //  Local2 = C178[0,3]
6884
            Store (DerefOf (Index (DerefOf (Index (C178, 0, )), 3, )), Local2)
6884
            Store (DerefOf (Index (DerefOf (Index (C178, 0, )), 3, )), Local2)
6885
            if (LNotEqual (Local2, 0x5678))
6885
            if (LNotEqual (Local2, 0x5678))
6886
                {   Return (0x5678) }
6886
                {   Return (0x5678) }
6887
 
6887
 
6888
            Store (DerefOf (Index (C179, 3, )), Local2) //  Local2 = C179[3]
6888
            Store (DerefOf (Index (C179, 3, )), Local2) //  Local2 = C179[3]
6889
            if (LNotEqual (Local2, 0x4190))
6889
            if (LNotEqual (Local2, 0x4190))
6890
                {   Return (0x5678) }
6890
                {   Return (0x5678) }
6891
 
6891
 
6892
            // Restore data to allow iterative execution
6892
            // Restore data to allow iterative execution
6893
            Store (0x4190, Index (DerefOf (Index (C178, 0, )), 3, ))    //  C179[2] = 0x4190
6893
            Store (0x4190, Index (DerefOf (Index (C178, 0, )), 3, ))    //  C179[2] = 0x4190
6894
 
6894
 
6895
            Return (C17C)
6895
            Return (C17C)
6896
        }   //  C17B:   _BIF implementation
6896
        }   //  C17B:   _BIF implementation
6897
 
6897
 
6898
        Device (C154)
6898
        Device (C154)
6899
        {   //  C154:   Battery 0
6899
        {   //  C154:   Battery 0
6900
            Name (_HID, "*PNP0C0A")     //  Control Method Battey ID
6900
            Name (_HID, "*PNP0C0A")     //  Control Method Battey ID
6901
            Name (_UID, 0)                  //  first instance
6901
            Name (_UID, 0)                  //  first instance
6902
 
6902
 
6903
            Method (_BIF)
6903
            Method (_BIF)
6904
            {   //  _BIF
6904
            {   //  _BIF
6905
                Return (C17B (48))
6905
                Return (C17B (48))
6906
            }   //  _BIF
6906
            }   //  _BIF
6907
        }   //  C154:   Battery 0
6907
        }   //  C154:   Battery 0
6908
 
6908
 
6909
        Device (IDX3)
6909
        Device (IDX3)
6910
        {
6910
        {
6911
            Method (LCLB)
6911
            Method (LCLB)
6912
            {   //  LCLB control method: test Index(Local#) where Local# is buffer
6912
            {   //  LCLB control method: test Index(Local#) where Local# is buffer
6913
                //  Local0 is index counter
6913
                //  Local0 is index counter
6914
                //  Local1 is buffer
6914
                //  Local1 is buffer
6915
                //  Local2 receives BUFR[Local0] via Deref(Index(Local1...))
6915
                //  Local2 receives BUFR[Local0] via Deref(Index(Local1...))
6916
                //  Local3 is Local1 or Local2 object type
6916
                //  Local3 is Local1 or Local2 object type
6917
                //  Local4 is return error code
6917
                //  Local4 is return error code
6918
 
6918
 
6919
                Name (BUFR, Buffer ()   {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
6919
                Name (BUFR, Buffer ()   {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
6920
 
6920
 
6921
                //  save PKG into Local1
6921
                //  save PKG into Local1
6922
                Store (BUFR, Local1)
6922
                Store (BUFR, Local1)
6923
 
6923
 
6924
                //  save Local2 object type value into Local3
6924
                //  save Local2 object type value into Local3
6925
                Store (ObjectType (Local1), Local3)
6925
                Store (ObjectType (Local1), Local3)
6926
 
6926
 
6927
                //  validate Local1 is a Buffer
6927
                //  validate Local1 is a Buffer
6928
                If (LNotEqual (Local3, 3))      //  Buffer type is 3
6928
                If (LNotEqual (Local3, 3))      //  Buffer type is 3
6929
                    {   Return (0x9F)   }
6929
                    {   Return (0x9F)   }
6930
 
6930
 
6931
 
6931
 
6932
                Store (0, Local0)
6932
                Store (0, Local0)
6933
                While (LLess (Local0, 5))
6933
                While (LLess (Local0, 5))
6934
                {   //  While (Local0 < 5)
6934
                {   //  While (Local0 < 5)
6935
                    //  Local2 = Local1[Local0]
6935
                    //  Local2 = Local1[Local0]
6936
                    Store (DerefOf (Index (Local1, Local0, )), Local2)
6936
                    Store (DerefOf (Index (Local1, Local0, )), Local2)
6937
 
6937
 
6938
                    //  save Local2 object type value into Local3
6938
                    //  save Local2 object type value into Local3
6939
                    Store (ObjectType (Local2), Local3)
6939
                    Store (ObjectType (Local2), Local3)
6940
 
6940
 
6941
                    //  validate Local2 is a Number
6941
                    //  validate Local2 is a Number
6942
                    If (LNotEqual (Local3, 1))      //  Number type is 1
6942
                    If (LNotEqual (Local3, 1))      //  Number type is 1
6943
                        {   Return (0x9E)   }
6943
                        {   Return (0x9E)   }
6944
 
6944
 
6945
                    //  validate Local1[Local0] value == Local0
6945
                    //  validate Local1[Local0] value == Local0
6946
                    If (LNotEqual (Local0, Local2))
6946
                    If (LNotEqual (Local0, Local2))
6947
                    {   //  Local0 != Local2 == PKG[Local0]
6947
                    {   //  Local0 != Local2 == PKG[Local0]
6948
                        //  Local4 = 0x90 + loop index (Local0)
6948
                        //  Local4 = 0x90 + loop index (Local0)
6949
                        Add (0x90, Local0, Local4)
6949
                        Add (0x90, Local0, Local4)
6950
 
6950
 
6951
                        //  return 0x90 + loop index
6951
                        //  return 0x90 + loop index
6952
                        Return (Local4)
6952
                        Return (Local4)
6953
                    }
6953
                    }
6954
 
6954
 
6955
                    Increment (Local0)
6955
                    Increment (Local0)
6956
                }   //  While (Local0 < 5)
6956
                }   //  While (Local0 < 5)
6957
 
6957
 
6958
                Store ("DerefOf(Index(LocalBuffer,,)) PASS", Debug)
6958
                Store ("DerefOf(Index(LocalBuffer,,)) PASS", Debug)
6959
 
6959
 
6960
                Return (0)  //  Pass
6960
                Return (0)  //  Pass
6961
            }   //  LCLB control method: test Index(Local#) where Local# is buffer
6961
            }   //  LCLB control method: test Index(Local#) where Local# is buffer
6962
 
6962
 
6963
            Method (LCLP)
6963
            Method (LCLP)
6964
            {   //  LCLP control method: test Index(Local#) where Local# is package
6964
            {   //  LCLP control method: test Index(Local#) where Local# is package
6965
                //  Local0 is index counter
6965
                //  Local0 is index counter
6966
                //  Local1 is package
6966
                //  Local1 is package
6967
                //  Local2 receives PKG[Local0] via Deref(Index(Local1...))
6967
                //  Local2 receives PKG[Local0] via Deref(Index(Local1...))
6968
                //  Local3 is Local1 or Local2 object type
6968
                //  Local3 is Local1 or Local2 object type
6969
                //  Local4 is return error code
6969
                //  Local4 is return error code
6970
 
6970
 
6971
                Name (PKG, Package ()   {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
6971
                Name (PKG, Package ()   {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
6972
 
6972
 
6973
                //  save PKG into Local1
6973
                //  save PKG into Local1
6974
                Store (PKG, Local1)
6974
                Store (PKG, Local1)
6975
 
6975
 
6976
                //  save Local2 object type value into Local3
6976
                //  save Local2 object type value into Local3
6977
                Store (ObjectType (Local1), Local3)
6977
                Store (ObjectType (Local1), Local3)
6978
 
6978
 
6979
                //  validate Local1 is a Package
6979
                //  validate Local1 is a Package
6980
                If (LNotEqual (Local3, 4))      //  Package type is 4
6980
                If (LNotEqual (Local3, 4))      //  Package type is 4
6981
                    {   Return (0x8F)   }
6981
                    {   Return (0x8F)   }
6982
 
6982
 
6983
 
6983
 
6984
                Store (0, Local0)
6984
                Store (0, Local0)
6985
                While (LLess (Local0, 5))
6985
                While (LLess (Local0, 5))
6986
                {   //  While (Local0 < 5)
6986
                {   //  While (Local0 < 5)
6987
                    //  Local2 = Local1[Local0]
6987
                    //  Local2 = Local1[Local0]
6988
                    Store (DerefOf (Index (Local1, Local0, )), Local2)
6988
                    Store (DerefOf (Index (Local1, Local0, )), Local2)
6989
 
6989
 
6990
                    //  save Local2 object type value into Local3
6990
                    //  save Local2 object type value into Local3
6991
                    Store (ObjectType (Local2), Local3)
6991
                    Store (ObjectType (Local2), Local3)
6992
 
6992
 
6993
                    //  validate Local2 is a Number
6993
                    //  validate Local2 is a Number
6994
                    If (LNotEqual (Local3, 1))      //  Number type is 1
6994
                    If (LNotEqual (Local3, 1))      //  Number type is 1
6995
                        {   Return (0x8E)   }
6995
                        {   Return (0x8E)   }
6996
 
6996
 
6997
                    //  validate Local1[Local0] value == Local0
6997
                    //  validate Local1[Local0] value == Local0
6998
                    If (LNotEqual (Local0, Local2))
6998
                    If (LNotEqual (Local0, Local2))
6999
                    {   //  Local0 != Local2 == PKG[Local0]
6999
                    {   //  Local0 != Local2 == PKG[Local0]
7000
                        //  Local4 = 0x80 + loop index (Local0)
7000
                        //  Local4 = 0x80 + loop index (Local0)
7001
                        Add (0x80, Local0, Local4)
7001
                        Add (0x80, Local0, Local4)
7002
 
7002
 
7003
                        //  return 0x80 + loop index
7003
                        //  return 0x80 + loop index
7004
                        Return (Local4)
7004
                        Return (Local4)
7005
                    }
7005
                    }
7006
 
7006
 
7007
                    Increment (Local0)
7007
                    Increment (Local0)
7008
                }   //  While (Local0 < 5)
7008
                }   //  While (Local0 < 5)
7009
 
7009
 
7010
                Store ("DerefOf(Index(LocalPackage,,)) PASS", Debug)
7010
                Store ("DerefOf(Index(LocalPackage,,)) PASS", Debug)
7011
 
7011
 
7012
                Return (0)  //  Pass
7012
                Return (0)  //  Pass
7013
            }   //  LCLP control method: test Index(Local#) where Local# is package
7013
            }   //  LCLP control method: test Index(Local#) where Local# is package
7014
 
7014
 
7015
            Method (TEST)
7015
            Method (TEST)
7016
            {
7016
            {
7017
 
7017
 
7018
                Store ("++++++++ IndexOp3 Test", Debug)
7018
                Store ("++++++++ IndexOp3 Test", Debug)
7019
 
7019
 
7020
                //  store _BIF package return value into Local0
7020
                //  store _BIF package return value into Local0
7021
                Store (\_SB.C154._BIF, Local0)
7021
                Store (\_SB.C154._BIF, Local0)
7022
 
7022
 
7023
                //  save Local0 object type value into Local1
7023
                //  save Local0 object type value into Local1
7024
                Store (ObjectType (Local0), Local1)
7024
                Store (ObjectType (Local0), Local1)
7025
 
7025
 
7026
                //  validate Local0 is a Package
7026
                //  validate Local0 is a Package
7027
                If (LNotEqual (Local1, 4))      //  Package type is 4
7027
                If (LNotEqual (Local1, 4))      //  Package type is 4
7028
                {   //  failure: did not return a Package (type 4)
7028
                {   //  failure: did not return a Package (type 4)
7029
                    //  if Local0 is a Number, it contains an error code
7029
                    //  if Local0 is a Number, it contains an error code
7030
                    If (LEqual (Local1, 1))     //  Number type is 1
7030
                    If (LEqual (Local1, 1))     //  Number type is 1
7031
                        {   Return (Local0) }   //  return Local0 error code
7031
                        {   Return (Local0) }   //  return Local0 error code
7032
                    Else                                //  Local0 is not a Number
7032
                    Else                                //  Local0 is not a Number
7033
                        {   Return (1)  }           //  return default error code
7033
                        {   Return (1)  }           //  return default error code
7034
                }   //  failure: did not return a Package (type 4)
7034
                }   //  failure: did not return a Package (type 4)
7035
 
7035
 
7036
                //  save LCLB control method return value into Local2
7036
                //  save LCLB control method return value into Local2
7037
                Store (LCLB, Local2)
7037
                Store (LCLB, Local2)
7038
                If (LNotEqual (Local2, 0))
7038
                If (LNotEqual (Local2, 0))
7039
                    {   Return (Local2) }   //  return failure code
7039
                    {   Return (Local2) }   //  return failure code
7040
 
7040
 
7041
                //  save LCLP control method return value into Local2
7041
                //  save LCLP control method return value into Local2
7042
                Store (LCLP, Local2)
7042
                Store (LCLP, Local2)
7043
                If (LNotEqual (Local2, 0))
7043
                If (LNotEqual (Local2, 0))
7044
                    {   Return (Local2) }   //  return failure code
7044
                    {   Return (Local2) }   //  return failure code
7045
 
7045
 
7046
                Return (0)  //  Pass
7046
                Return (0)  //  Pass
7047
            }   //  TEST
7047
            }   //  TEST
7048
        }   //  IDX3:   Test device name
7048
        }   //  IDX3:   Test device name
7049
    }   //  _SB system bus
7049
    }   //  _SB system bus
7050
 
7050
 
7051
//
7051
//
7052
// MTL developed test to exercise Indexes into buffers
7052
// MTL developed test to exercise Indexes into buffers
7053
//
7053
//
7054
    Device(IDX7)
7054
    Device(IDX7)
7055
    {
7055
    {
7056
 
7056
 
7057
        Name (PKG4, Package() {
7057
        Name (PKG4, Package() {
7058
                0x2,
7058
                0x2,
7059
                "A short string",
7059
                "A short string",
7060
                Buffer() {0xA, 0xB, 0xC, 0xD},
7060
                Buffer() {0xA, 0xB, 0xC, 0xD},
7061
                0x1234,
7061
                0x1234,
7062
                Package() {IDX7, 0x3}
7062
                Package() {IDX7, 0x3}
7063
                })
7063
                })
7064
 
7064
 
7065
        //
7065
        //
7066
        // Generic Test method
7066
        // Generic Test method
7067
        //
7067
        //
7068
        // This test returns 0xE (14) - ObjectType = Buffer Field
7068
        // This test returns 0xE (14) - ObjectType = Buffer Field
7069
        Method(TST1)
7069
        Method(TST1)
7070
        {
7070
        {
7071
            Name (DEST, Buffer ()                           //  62 characters plus NULL
7071
            Name (DEST, Buffer ()                           //  62 characters plus NULL
7072
                {"Destination buffer that is longer than the short source buffer"})
7072
                {"Destination buffer that is longer than the short source buffer"})
7073
 
7073
 
7074
            //  verify object type returned by Index(Buffer,Element,)
7074
            //  verify object type returned by Index(Buffer,Element,)
7075
            Store (Index (DEST, 2, ), Local1)
7075
            Store (Index (DEST, 2, ), Local1)
7076
            Store (ObjectType (Local1), Local2)
7076
            Store (ObjectType (Local1), Local2)
7077
            If (LEqual(Local2, 14))
7077
            If (LEqual(Local2, 14))
7078
            {
7078
            {
7079
                Return(0)
7079
                Return(0)
7080
            }
7080
            }
7081
            Else
7081
            Else
7082
            {
7082
            {
7083
                Return(0x1)
7083
                Return(0x1)
7084
            }
7084
            }
7085
 
7085
 
7086
        }
7086
        }
7087
 
7087
 
7088
        Method(TST2)
7088
        Method(TST2)
7089
        {
7089
        {
7090
            Name (BUF0, Buffer() {0x1, 0x2, 0x3, 0x4, 0x5})
7090
            Name (BUF0, Buffer() {0x1, 0x2, 0x3, 0x4, 0x5})
7091
            Store(0x55, Index(BUF0, 2))
7091
            Store(0x55, Index(BUF0, 2))
7092
            Store(DerefOf(Index(BUF0, 2)), Local0)
7092
            Store(DerefOf(Index(BUF0, 2)), Local0)
7093
            If (LEqual(Local0, 0x55))
7093
            If (LEqual(Local0, 0x55))
7094
            {
7094
            {
7095
                Return(0)
7095
                Return(0)
7096
            }
7096
            }
7097
            Else
7097
            Else
7098
            {
7098
            {
7099
                Return(0x2)
7099
                Return(0x2)
7100
            }
7100
            }
7101
 
7101
 
7102
 
7102
 
7103
        }
7103
        }
7104
 
7104
 
7105
        Method(TST3)
7105
        Method(TST3)
7106
        {
7106
        {
7107
            Name (BUF1, Buffer() {0x1, 0x2, 0x3, 0x4, 0x5})
7107
            Name (BUF1, Buffer() {0x1, 0x2, 0x3, 0x4, 0x5})
7108
            Store(Index(BUF1, 1), Local0)
7108
            Store(Index(BUF1, 1), Local0)
7109
            Store(DerefOf(Local0), Local1)
7109
            Store(DerefOf(Local0), Local1)
7110
            If (LEqual(Local1, 0x2))
7110
            If (LEqual(Local1, 0x2))
7111
            {
7111
            {
7112
                Return(0)
7112
                Return(0)
7113
            }
7113
            }
7114
            Else
7114
            Else
7115
            {
7115
            {
7116
                Return(0x3)
7116
                Return(0x3)
7117
            }
7117
            }
7118
 
7118
 
7119
        }
7119
        }
7120
 
7120
 
7121
        Method(TST4)
7121
        Method(TST4)
7122
        {
7122
        {
7123
            // Index (PKG4, 0) is a Number
7123
            // Index (PKG4, 0) is a Number
7124
            Store (Index (PKG4, 0), Local0)
7124
            Store (Index (PKG4, 0), Local0)
7125
            Store (ObjectType(Local0), Local1)
7125
            Store (ObjectType(Local0), Local1)
7126
            If (LEqual(Local1, 0x1))
7126
            If (LEqual(Local1, 0x1))
7127
            {
7127
            {
7128
                Return(0)
7128
                Return(0)
7129
            }
7129
            }
7130
            Else
7130
            Else
7131
            {
7131
            {
7132
                Return(0x4)
7132
                Return(0x4)
7133
            }
7133
            }
7134
 
7134
 
7135
        }
7135
        }
7136
 
7136
 
7137
        Method(TST5)
7137
        Method(TST5)
7138
        {
7138
        {
7139
            // Index (PKG4, 1) is a String
7139
            // Index (PKG4, 1) is a String
7140
            Store (Index (PKG4, 1), Local0)
7140
            Store (Index (PKG4, 1), Local0)
7141
            Store (ObjectType(Local0), Local1)
7141
            Store (ObjectType(Local0), Local1)
7142
            If (LEqual(Local1, 0x2))
7142
            If (LEqual(Local1, 0x2))
7143
            {
7143
            {
7144
                Return(0)
7144
                Return(0)
7145
            }
7145
            }
7146
            Else
7146
            Else
7147
            {
7147
            {
7148
                Return(0x5)
7148
                Return(0x5)
7149
            }
7149
            }
7150
 
7150
 
7151
        }
7151
        }
7152
 
7152
 
7153
        Method(TST6)
7153
        Method(TST6)
7154
        {
7154
        {
7155
            // Index (PKG4, 2) is a Buffer
7155
            // Index (PKG4, 2) is a Buffer
7156
            Store (Index (PKG4, 2), Local0)
7156
            Store (Index (PKG4, 2), Local0)
7157
            Store (ObjectType(Local0), Local1)
7157
            Store (ObjectType(Local0), Local1)
7158
            If (LEqual(Local1, 0x3))
7158
            If (LEqual(Local1, 0x3))
7159
            {
7159
            {
7160
                Return(0)
7160
                Return(0)
7161
            }
7161
            }
7162
            Else
7162
            Else
7163
            {
7163
            {
7164
                Return(0x6)
7164
                Return(0x6)
7165
            }
7165
            }
7166
 
7166
 
7167
        }
7167
        }
7168
 
7168
 
7169
        Method(TST7)
7169
        Method(TST7)
7170
        {
7170
        {
7171
            // Index (PKG4, 3) is a Number
7171
            // Index (PKG4, 3) is a Number
7172
            Store (Index (PKG4, 3), Local0)
7172
            Store (Index (PKG4, 3), Local0)
7173
            Store (ObjectType(Local0), Local1)
7173
            Store (ObjectType(Local0), Local1)
7174
            If (LEqual(Local1, 0x1))
7174
            If (LEqual(Local1, 0x1))
7175
            {
7175
            {
7176
                Return(0)
7176
                Return(0)
7177
            }
7177
            }
7178
            Else
7178
            Else
7179
            {
7179
            {
7180
                Return(0x7)
7180
                Return(0x7)
7181
            }
7181
            }
7182
 
7182
 
7183
        }
7183
        }
7184
 
7184
 
7185
        Method(TST8)
7185
        Method(TST8)
7186
        {
7186
        {
7187
            // Index (PKG4, 4) is a Package
7187
            // Index (PKG4, 4) is a Package
7188
            Store (Index (PKG4, 4), Local0)
7188
            Store (Index (PKG4, 4), Local0)
7189
            Store (ObjectType(Local0), Local1)
7189
            Store (ObjectType(Local0), Local1)
7190
            If (LEqual(Local1, 0x4))
7190
            If (LEqual(Local1, 0x4))
7191
            {
7191
            {
7192
                Return(0)
7192
                Return(0)
7193
            }
7193
            }
7194
            Else
7194
            Else
7195
            {
7195
            {
7196
                Return(0x8)
7196
                Return(0x8)
7197
            }
7197
            }
7198
 
7198
 
7199
        }
7199
        }
7200
 
7200
 
7201
        Method(TST9)
7201
        Method(TST9)
7202
        {
7202
        {
7203
            // DerefOf (Index (PKG4, 0)) is a Number
7203
            // DerefOf (Index (PKG4, 0)) is a Number
7204
            Store (DerefOf (Index (PKG4, 0)), Local0)
7204
            Store (DerefOf (Index (PKG4, 0)), Local0)
7205
            If (LEqual(Local0, 0x2))
7205
            If (LEqual(Local0, 0x2))
7206
            {
7206
            {
7207
                Return(0)
7207
                Return(0)
7208
            }
7208
            }
7209
            Else
7209
            Else
7210
            {
7210
            {
7211
                Return(0x9)
7211
                Return(0x9)
7212
            }
7212
            }
7213
 
7213
 
7214
        }
7214
        }
7215
 
7215
 
7216
        Method(TSTA)
7216
        Method(TSTA)
7217
        {
7217
        {
7218
            // DerefOf (Index (PKG4, 1)) is a String
7218
            // DerefOf (Index (PKG4, 1)) is a String
7219
            Store (DerefOf (Index (PKG4, 1)), Local0)
7219
            Store (DerefOf (Index (PKG4, 1)), Local0)
7220
            Store (SizeOf(Local0), Local1)
7220
            Store (SizeOf(Local0), Local1)
7221
            If (LEqual(Local1, 0xE))
7221
            If (LEqual(Local1, 0xE))
7222
            {
7222
            {
7223
                Return(0)
7223
                Return(0)
7224
            }
7224
            }
7225
            Else
7225
            Else
7226
            {
7226
            {
7227
                Return(0xA)
7227
                Return(0xA)
7228
            }
7228
            }
7229
 
7229
 
7230
        }
7230
        }
7231
 
7231
 
7232
        Method(TSTB)
7232
        Method(TSTB)
7233
        {
7233
        {
7234
            // DerefOf (Index (PKG4, 2)) is a Buffer
7234
            // DerefOf (Index (PKG4, 2)) is a Buffer
7235
            Store (DerefOf (Index (PKG4, 2)), Local0)
7235
            Store (DerefOf (Index (PKG4, 2)), Local0)
7236
            Store (SizeOf(Local0), Local1)
7236
            Store (SizeOf(Local0), Local1)
7237
            If (LEqual(Local1, 0x4))
7237
            If (LEqual(Local1, 0x4))
7238
            {
7238
            {
7239
                Return(0)
7239
                Return(0)
7240
            }
7240
            }
7241
            Else
7241
            Else
7242
            {
7242
            {
7243
                Return(0xB)
7243
                Return(0xB)
7244
            }
7244
            }
7245
 
7245
 
7246
        }
7246
        }
7247
 
7247
 
7248
        Method(TSTC)
7248
        Method(TSTC)
7249
        {
7249
        {
7250
            // DerefOf (Index (PKG4, 3)) is a Number
7250
            // DerefOf (Index (PKG4, 3)) is a Number
7251
            Store (DerefOf (Index (PKG4, 3)), Local0)
7251
            Store (DerefOf (Index (PKG4, 3)), Local0)
7252
            If (LEqual(Local0, 0x1234))
7252
            If (LEqual(Local0, 0x1234))
7253
            {
7253
            {
7254
                Return(0)
7254
                Return(0)
7255
            }
7255
            }
7256
            Else
7256
            Else
7257
            {
7257
            {
7258
                Return(0xC)
7258
                Return(0xC)
7259
            }
7259
            }
7260
 
7260
 
7261
        }
7261
        }
7262
 
7262
 
7263
        Method(TSTD)
7263
        Method(TSTD)
7264
        {
7264
        {
7265
            // DerefOf (Index (PKG4, 4)) is a Package
7265
            // DerefOf (Index (PKG4, 4)) is a Package
7266
            Store (DerefOf (Index (PKG4, 4)), Local0)
7266
            Store (DerefOf (Index (PKG4, 4)), Local0)
7267
            Store (SizeOf(Local0), Local1)
7267
            Store (SizeOf(Local0), Local1)
7268
            If (LEqual(Local1, 0x2))
7268
            If (LEqual(Local1, 0x2))
7269
            {
7269
            {
7270
                Return(0)
7270
                Return(0)
7271
            }
7271
            }
7272
            Else
7272
            Else
7273
            {
7273
            {
7274
                Return(0xD)
7274
                Return(0xD)
7275
            }
7275
            }
7276
 
7276
 
7277
        }
7277
        }
7278
 
7278
 
7279
        Method(TSTE)
7279
        Method(TSTE)
7280
        {
7280
        {
7281
            // DerefOf (Index (PKG4, 2)) is a Buffer
7281
            // DerefOf (Index (PKG4, 2)) is a Buffer
7282
            Store (DerefOf (Index (PKG4, 2)), Local0)
7282
            Store (DerefOf (Index (PKG4, 2)), Local0)
7283
            // DerefOf (Index (Local0, 1)) is a Number
7283
            // DerefOf (Index (Local0, 1)) is a Number
7284
            Store (DerefOf (Index (Local0, 1)), Local1)
7284
            Store (DerefOf (Index (Local0, 1)), Local1)
7285
            If (LEqual(Local1, 0xB))
7285
            If (LEqual(Local1, 0xB))
7286
            {
7286
            {
7287
                Return(0)
7287
                Return(0)
7288
            }
7288
            }
7289
            Else
7289
            Else
7290
            {
7290
            {
7291
                Return(0xE)
7291
                Return(0xE)
7292
            }
7292
            }
7293
 
7293
 
7294
        }
7294
        }
7295
 
7295
 
7296
        Method (TSTF)
7296
        Method (TSTF)
7297
        {
7297
        {
7298
            Name (SRCB, Buffer (12) {}) //  12 characters
7298
            Name (SRCB, Buffer (12) {}) //  12 characters
7299
            Store ("Short Buffer", SRCB)
7299
            Store ("Short Buffer", SRCB)
7300
 
7300
 
7301
            Name (DEST, Buffer ()                       //  62 characters plus NULL
7301
            Name (DEST, Buffer ()                       //  62 characters plus NULL
7302
                {"Destination buffer that is longer than the short source buffer"})
7302
                {"Destination buffer that is longer than the short source buffer"})
7303
 
7303
 
7304
            //  overwrite DEST contents, starting at buffer position 2
7304
            //  overwrite DEST contents, starting at buffer position 2
7305
            Store (SRCB, Index (DEST, 2))
7305
            Store (SRCB, Index (DEST, 2))
7306
 
7306
 
7307
            //
7307
            //
7308
            //  The DEST buffer element should be replaced with the last element of
7308
            //  The DEST buffer element should be replaced with the last element of
7309
            //      the SRCB element (i.e. 's'->'r')
7309
            //      the SRCB element (i.e. 's'->'r')
7310
            Store (DerefOf (Index (DEST, 2)), Local0)
7310
            Store (DerefOf (Index (DEST, 2)), Local0)
7311
 
7311
 
7312
            If (LNotEqual (Local0, 0x72))       //  'r'
7312
            If (LNotEqual (Local0, 0x72))       //  'r'
7313
            {
7313
            {
7314
                //  DEST element does not match the value from SRCB
7314
                //  DEST element does not match the value from SRCB
7315
                Return(Or(Local0, 0x1000))
7315
                Return(Or(Local0, 0x1000))
7316
            }
7316
            }
7317
 
7317
 
7318
            Return(0)
7318
            Return(0)
7319
        }
7319
        }
7320
 
7320
 
7321
        Method (TSTG)
7321
        Method (TSTG)
7322
        {
7322
        {
7323
 
7323
 
7324
            Name (SRCB, Buffer (12) {}) //  12 characters
7324
            Name (SRCB, Buffer (12) {}) //  12 characters
7325
            Store ("Short Buffer", SRCB)
7325
            Store ("Short Buffer", SRCB)
7326
 
7326
 
7327
            Name (DEST, Buffer ()                       //  62 characters plus NULL
7327
            Name (DEST, Buffer ()                       //  62 characters plus NULL
7328
                {"Destination buffer that is longer than the short source buffer"})
7328
                {"Destination buffer that is longer than the short source buffer"})
7329
 
7329
 
7330
            //  overwrite DEST contents, starting at buffer position 2
7330
            //  overwrite DEST contents, starting at buffer position 2
7331
            Store (SRCB, Index (DEST, 2))
7331
            Store (SRCB, Index (DEST, 2))
7332
 
7332
 
7333
            //
7333
            //
7334
            // The next element of DEST should be unchanged
7334
            // The next element of DEST should be unchanged
7335
            //
7335
            //
7336
            Store (DerefOf (Index (DEST, 3)), Local0)
7336
            Store (DerefOf (Index (DEST, 3)), Local0)
7337
 
7337
 
7338
            If (LNotEqual (Local0, 0x74))       //  't'
7338
            If (LNotEqual (Local0, 0x74))       //  't'
7339
            {
7339
            {
7340
                //  DEST has been changed
7340
                //  DEST has been changed
7341
                Return(Or(Local0, 0x2000))
7341
                Return(Or(Local0, 0x2000))
7342
            }
7342
            }
7343
 
7343
 
7344
            //
7344
            //
7345
            // The next element of DEST should be unchanged
7345
            // The next element of DEST should be unchanged
7346
            //
7346
            //
7347
            Store (DerefOf (Index (DEST, 4)), Local0)
7347
            Store (DerefOf (Index (DEST, 4)), Local0)
7348
 
7348
 
7349
            If (LNotEqual (Local0, 0x69))       //  'i'
7349
            If (LNotEqual (Local0, 0x69))       //  'i'
7350
            {
7350
            {
7351
                //  DEST has been changed
7351
                //  DEST has been changed
7352
                Return(Or(Local0, 0x2100))
7352
                Return(Or(Local0, 0x2100))
7353
            }
7353
            }
7354
 
7354
 
7355
            //
7355
            //
7356
            // The next element of DEST should be unchanged
7356
            // The next element of DEST should be unchanged
7357
            //
7357
            //
7358
            Store (DerefOf (Index (DEST, 5)), Local0)
7358
            Store (DerefOf (Index (DEST, 5)), Local0)
7359
 
7359
 
7360
            If (LNotEqual (Local0, 0x6E))       //  'n'
7360
            If (LNotEqual (Local0, 0x6E))       //  'n'
7361
            {
7361
            {
7362
                //  DEST has been changed
7362
                //  DEST has been changed
7363
                Return(Or(Local0, 0x2200))
7363
                Return(Or(Local0, 0x2200))
7364
            }
7364
            }
7365
 
7365
 
7366
            //
7366
            //
7367
            // The next element of DEST should be unchanged
7367
            // The next element of DEST should be unchanged
7368
            //
7368
            //
7369
            Store (DerefOf (Index (DEST, 6)), Local0)
7369
            Store (DerefOf (Index (DEST, 6)), Local0)
7370
 
7370
 
7371
            If (LNotEqual (Local0, 0x61))       //  'a'
7371
            If (LNotEqual (Local0, 0x61))       //  'a'
7372
            {
7372
            {
7373
                //  DEST has been changed
7373
                //  DEST has been changed
7374
                Return(Or(Local0, 0x2300))
7374
                Return(Or(Local0, 0x2300))
7375
            }
7375
            }
7376
 
7376
 
7377
            //
7377
            //
7378
            // The next element of DEST should be unchanged
7378
            // The next element of DEST should be unchanged
7379
            //
7379
            //
7380
            Store (DerefOf (Index (DEST, 7)), Local0)
7380
            Store (DerefOf (Index (DEST, 7)), Local0)
7381
 
7381
 
7382
            If (LNotEqual (Local0, 0x74))       //  't'
7382
            If (LNotEqual (Local0, 0x74))       //  't'
7383
            {
7383
            {
7384
                //  DEST has been changed
7384
                //  DEST has been changed
7385
                Return(Or(Local0, 0x2400))
7385
                Return(Or(Local0, 0x2400))
7386
            }
7386
            }
7387
 
7387
 
7388
            //
7388
            //
7389
            //  Verify DEST elements beyond end of SRCB buffer copy
7389
            //  Verify DEST elements beyond end of SRCB buffer copy
7390
            //  have not been changed
7390
            //  have not been changed
7391
            Store (DerefOf (Index (DEST, 14)), Local0)
7391
            Store (DerefOf (Index (DEST, 14)), Local0)
7392
 
7392
 
7393
            If (LNotEqual (Local0, 0x66))       // 'f'
7393
            If (LNotEqual (Local0, 0x66))       // 'f'
7394
            {
7394
            {
7395
                //  DEST has been changed
7395
                //  DEST has been changed
7396
                Return(Or(Local0, 0x2400))
7396
                Return(Or(Local0, 0x2400))
7397
            }
7397
            }
7398
 
7398
 
7399
            Return(0)
7399
            Return(0)
7400
        }
7400
        }
7401
 
7401
 
7402
        //
7402
        //
7403
        // This test shows that MS ACPI.SYS stores only the lower 8-bits of a 32-bit
7403
        // This test shows that MS ACPI.SYS stores only the lower 8-bits of a 32-bit
7404
        //  number into the index'ed buffer
7404
        //  number into the index'ed buffer
7405
        //
7405
        //
7406
        Method (TSTH)
7406
        Method (TSTH)
7407
        {
7407
        {
7408
            // Create a Destination Buffer
7408
            // Create a Destination Buffer
7409
            Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7409
            Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7410
 
7410
 
7411
            // Store a number > UINT8 into an index of the buffer
7411
            // Store a number > UINT8 into an index of the buffer
7412
            Store (0x12345678, Index(DBUF, 2))
7412
            Store (0x12345678, Index(DBUF, 2))
7413
 
7413
 
7414
            // Check the results
7414
            // Check the results
7415
            Store (DerefOf (Index (DBUF, 2)), Local0)
7415
            Store (DerefOf (Index (DBUF, 2)), Local0)
7416
            If (LNotEqual (Local0, 0x78))   // 0x78
7416
            If (LNotEqual (Local0, 0x78))   // 0x78
7417
            {
7417
            {
7418
                Return(Or(Local0, 0x3000))
7418
                Return(Or(Local0, 0x3000))
7419
            }
7419
            }
7420
 
7420
 
7421
            Store (DerefOf (Index (DBUF, 3)), Local0)
7421
            Store (DerefOf (Index (DBUF, 3)), Local0)
7422
            If (LNotEqual (Local0, 0x64))   // 'd'
7422
            If (LNotEqual (Local0, 0x64))   // 'd'
7423
            {
7423
            {
7424
                Return(Or(Local0, 0x3100))
7424
                Return(Or(Local0, 0x3100))
7425
            }
7425
            }
7426
 
7426
 
7427
            Store (DerefOf (Index (DBUF, 4)), Local0)
7427
            Store (DerefOf (Index (DBUF, 4)), Local0)
7428
            If (LNotEqual (Local0, 0x65))   // 'e'
7428
            If (LNotEqual (Local0, 0x65))   // 'e'
7429
            {
7429
            {
7430
                Return(Or(Local0, 0x3200))
7430
                Return(Or(Local0, 0x3200))
7431
            }
7431
            }
7432
 
7432
 
7433
            Store (DerefOf (Index (DBUF, 5)), Local0)
7433
            Store (DerefOf (Index (DBUF, 5)), Local0)
7434
            If (LNotEqual (Local0, 0x66))   // 'f'
7434
            If (LNotEqual (Local0, 0x66))   // 'f'
7435
            {
7435
            {
7436
                Return(Or(Local0, 0x3300))
7436
                Return(Or(Local0, 0x3300))
7437
            }
7437
            }
7438
 
7438
 
7439
            Return(0)
7439
            Return(0)
7440
        }
7440
        }
7441
 
7441
 
7442
        Method (TSTI)
7442
        Method (TSTI)
7443
        {
7443
        {
7444
            // Create a Destination Buffer
7444
            // Create a Destination Buffer
7445
            Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7445
            Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7446
 
7446
 
7447
            // Store a String into an index of the buffer
7447
            // Store a String into an index of the buffer
7448
            Store ("ABCDEFGH", Index(DBUF, 2))
7448
            Store ("ABCDEFGH", Index(DBUF, 2))
7449
 
7449
 
7450
            // Check the results
7450
            // Check the results
7451
            Store (DerefOf (Index (DBUF, 2)), Local0)
7451
            Store (DerefOf (Index (DBUF, 2)), Local0)
7452
            If (LNotEqual (Local0, 0x48))   // 'H'
7452
            If (LNotEqual (Local0, 0x48))   // 'H'
7453
            {
7453
            {
7454
                Return(Or(Local0, 0x4000))
7454
                Return(Or(Local0, 0x4000))
7455
            }
7455
            }
7456
 
7456
 
7457
            Store (DerefOf (Index (DBUF, 3)), Local0)
7457
            Store (DerefOf (Index (DBUF, 3)), Local0)
7458
            If (LNotEqual (Local0, 0x64))   // 'd'
7458
            If (LNotEqual (Local0, 0x64))   // 'd'
7459
            {
7459
            {
7460
                Return(Or(Local0, 0x4100))
7460
                Return(Or(Local0, 0x4100))
7461
            }
7461
            }
7462
 
7462
 
7463
            Store (DerefOf (Index (DBUF, 4)), Local0)
7463
            Store (DerefOf (Index (DBUF, 4)), Local0)
7464
            If (LNotEqual (Local0, 0x65))   // 'e'
7464
            If (LNotEqual (Local0, 0x65))   // 'e'
7465
            {
7465
            {
7466
                Return(Or(Local0, 0x4200))
7466
                Return(Or(Local0, 0x4200))
7467
            }
7467
            }
7468
 
7468
 
7469
            Store (DerefOf (Index (DBUF, 5)), Local0)
7469
            Store (DerefOf (Index (DBUF, 5)), Local0)
7470
            If (LNotEqual (Local0, 0x66))   // 'f'
7470
            If (LNotEqual (Local0, 0x66))   // 'f'
7471
            {
7471
            {
7472
                Return(Or(Local0, 0x4300))
7472
                Return(Or(Local0, 0x4300))
7473
            }
7473
            }
7474
 
7474
 
7475
            Return(0)
7475
            Return(0)
7476
        }
7476
        }
7477
 
7477
 
7478
        Method(TSTJ)
7478
        Method(TSTJ)
7479
        {
7479
        {
7480
            // Create a Destination Buffer
7480
            // Create a Destination Buffer
7481
            Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7481
            Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7482
 
7482
 
7483
            // Store a number > UINT8 into an index of the buffer
7483
            // Store a number > UINT8 into an index of the buffer
7484
            Store (0x1234, Index(DBUF, 2))
7484
            Store (0x1234, Index(DBUF, 2))
7485
 
7485
 
7486
            // Check the results
7486
            // Check the results
7487
            Store (DerefOf (Index (DBUF, 2)), Local0)
7487
            Store (DerefOf (Index (DBUF, 2)), Local0)
7488
            If (LNotEqual (Local0, 0x34))   // 0x34
7488
            If (LNotEqual (Local0, 0x34))   // 0x34
7489
            {
7489
            {
7490
                Return(Or(Local0, 0x3000))
7490
                Return(Or(Local0, 0x3000))
7491
            }
7491
            }
7492
 
7492
 
7493
            Store (DerefOf (Index (DBUF, 3)), Local0)
7493
            Store (DerefOf (Index (DBUF, 3)), Local0)
7494
            If (LNotEqual (Local0, 0x64))   // 'd'
7494
            If (LNotEqual (Local0, 0x64))   // 'd'
7495
            {
7495
            {
7496
                Return(Or(Local0, 0x3100))
7496
                Return(Or(Local0, 0x3100))
7497
            }
7497
            }
7498
 
7498
 
7499
            Store (DerefOf (Index (DBUF, 4)), Local0)
7499
            Store (DerefOf (Index (DBUF, 4)), Local0)
7500
            If (LNotEqual (Local0, 0x65))   // 'e'
7500
            If (LNotEqual (Local0, 0x65))   // 'e'
7501
            {
7501
            {
7502
                Return(Or(Local0, 0x3200))
7502
                Return(Or(Local0, 0x3200))
7503
            }
7503
            }
7504
 
7504
 
7505
            Store (DerefOf (Index (DBUF, 5)), Local0)
7505
            Store (DerefOf (Index (DBUF, 5)), Local0)
7506
            If (LNotEqual (Local0, 0x66))   // 'f'
7506
            If (LNotEqual (Local0, 0x66))   // 'f'
7507
            {
7507
            {
7508
                Return(Or(Local0, 0x3300))
7508
                Return(Or(Local0, 0x3300))
7509
            }
7509
            }
7510
 
7510
 
7511
            Return(0)
7511
            Return(0)
7512
        }
7512
        }
7513
 
7513
 
7514
        Method(TSTK)
7514
        Method(TSTK)
7515
        {
7515
        {
7516
            // Create a Destination Buffer
7516
            // Create a Destination Buffer
7517
            Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7517
            Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7518
 
7518
 
7519
            // Store a number > UINT8 into an index of the buffer
7519
            // Store a number > UINT8 into an index of the buffer
7520
            Store (0x123456, Index(DBUF, 2))
7520
            Store (0x123456, Index(DBUF, 2))
7521
 
7521
 
7522
            // Check the results
7522
            // Check the results
7523
            Store (DerefOf (Index (DBUF, 2)), Local0)
7523
            Store (DerefOf (Index (DBUF, 2)), Local0)
7524
            If (LNotEqual (Local0, 0x56))   // 0x56
7524
            If (LNotEqual (Local0, 0x56))   // 0x56
7525
            {
7525
            {
7526
                Return(Or(Local0, 0x3000))
7526
                Return(Or(Local0, 0x3000))
7527
            }
7527
            }
7528
 
7528
 
7529
            Store (DerefOf (Index (DBUF, 3)), Local0)
7529
            Store (DerefOf (Index (DBUF, 3)), Local0)
7530
            If (LNotEqual (Local0, 0x64))   // 'd'
7530
            If (LNotEqual (Local0, 0x64))   // 'd'
7531
            {
7531
            {
7532
                Return(Or(Local0, 0x3100))
7532
                Return(Or(Local0, 0x3100))
7533
            }
7533
            }
7534
 
7534
 
7535
            Store (DerefOf (Index (DBUF, 4)), Local0)
7535
            Store (DerefOf (Index (DBUF, 4)), Local0)
7536
            If (LNotEqual (Local0, 0x65))   // 'e'
7536
            If (LNotEqual (Local0, 0x65))   // 'e'
7537
            {
7537
            {
7538
                Return(Or(Local0, 0x3200))
7538
                Return(Or(Local0, 0x3200))
7539
            }
7539
            }
7540
 
7540
 
7541
            Store (DerefOf (Index (DBUF, 5)), Local0)
7541
            Store (DerefOf (Index (DBUF, 5)), Local0)
7542
            If (LNotEqual (Local0, 0x66))   // 'f'
7542
            If (LNotEqual (Local0, 0x66))   // 'f'
7543
            {
7543
            {
7544
                Return(Or(Local0, 0x3300))
7544
                Return(Or(Local0, 0x3300))
7545
            }
7545
            }
7546
 
7546
 
7547
            Return(0)
7547
            Return(0)
7548
        }
7548
        }
7549
 
7549
 
7550
        Method(TSTL)
7550
        Method(TSTL)
7551
        {
7551
        {
7552
            // Create a Destination Buffer
7552
            // Create a Destination Buffer
7553
            Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7553
            Name (DBUF, Buffer () {"abcdefghijklmnopqrstuvwxyz"})
7554
 
7554
 
7555
            // Store a number > UINT8 into an index of the buffer
7555
            // Store a number > UINT8 into an index of the buffer
7556
            Store (0x12, Index(DBUF, 2))
7556
            Store (0x12, Index(DBUF, 2))
7557
 
7557
 
7558
            // Check the results
7558
            // Check the results
7559
            Store (DerefOf (Index (DBUF, 2)), Local0)
7559
            Store (DerefOf (Index (DBUF, 2)), Local0)
7560
            If (LNotEqual (Local0, 0x12))   // 0x12
7560
            If (LNotEqual (Local0, 0x12))   // 0x12
7561
            {
7561
            {
7562
                Return(Or(Local0, 0x3000))
7562
                Return(Or(Local0, 0x3000))
7563
            }
7563
            }
7564
 
7564
 
7565
            Store (DerefOf (Index (DBUF, 3)), Local0)
7565
            Store (DerefOf (Index (DBUF, 3)), Local0)
7566
            If (LNotEqual (Local0, 0x64))   // 'd'
7566
            If (LNotEqual (Local0, 0x64))   // 'd'
7567
            {
7567
            {
7568
                Return(Or(Local0, 0x3100))
7568
                Return(Or(Local0, 0x3100))
7569
            }
7569
            }
7570
 
7570
 
7571
            Store (DerefOf (Index (DBUF, 4)), Local0)
7571
            Store (DerefOf (Index (DBUF, 4)), Local0)
7572
            If (LNotEqual (Local0, 0x65))   // 'e'
7572
            If (LNotEqual (Local0, 0x65))   // 'e'
7573
            {
7573
            {
7574
                Return(Or(Local0, 0x3200))
7574
                Return(Or(Local0, 0x3200))
7575
            }
7575
            }
7576
 
7576
 
7577
            Store (DerefOf (Index (DBUF, 5)), Local0)
7577
            Store (DerefOf (Index (DBUF, 5)), Local0)
7578
            If (LNotEqual (Local0, 0x66))   // 'f'
7578
            If (LNotEqual (Local0, 0x66))   // 'f'
7579
            {
7579
            {
7580
                Return(Or(Local0, 0x3300))
7580
                Return(Or(Local0, 0x3300))
7581
            }
7581
            }
7582
 
7582
 
7583
            Return(0)
7583
            Return(0)
7584
        }
7584
        }
7585
 
7585
 
7586
        Method(TEST)
7586
        Method(TEST)
7587
        {
7587
        {
7588
            Store ("++++++++ IndexOp7 Test", Debug)
7588
            Store ("++++++++ IndexOp7 Test", Debug)
7589
 
7589
 
7590
            Store(TST1(), Local0)
7590
            Store(TST1(), Local0)
7591
            if (LGreater (Local0, 0))
7591
            if (LGreater (Local0, 0))
7592
            {
7592
            {
7593
                Return(Local0)
7593
                Return(Local0)
7594
            }
7594
            }
7595
 
7595
 
7596
            Store(TST2(), Local0)
7596
            Store(TST2(), Local0)
7597
            if (LGreater (Local0, 0))
7597
            if (LGreater (Local0, 0))
7598
            {
7598
            {
7599
                Return(Local0)
7599
                Return(Local0)
7600
            }
7600
            }
7601
 
7601
 
7602
            Store(TST3(), Local0)
7602
            Store(TST3(), Local0)
7603
            if (LGreater (Local0, 0))
7603
            if (LGreater (Local0, 0))
7604
            {
7604
            {
7605
                Return(Local0)
7605
                Return(Local0)
7606
            }
7606
            }
7607
 
7607
 
7608
            Store(TST4(), Local0)
7608
            Store(TST4(), Local0)
7609
            if (LGreater (Local0, 0))
7609
            if (LGreater (Local0, 0))
7610
            {
7610
            {
7611
                Return(Local0)
7611
                Return(Local0)
7612
            }
7612
            }
7613
 
7613
 
7614
            Store(TST5(), Local0)
7614
            Store(TST5(), Local0)
7615
            if (LGreater (Local0, 0))
7615
            if (LGreater (Local0, 0))
7616
            {
7616
            {
7617
                Return(Local0)
7617
                Return(Local0)
7618
            }
7618
            }
7619
 
7619
 
7620
            Store(TST6(), Local0)
7620
            Store(TST6(), Local0)
7621
            if (LGreater (Local0, 0))
7621
            if (LGreater (Local0, 0))
7622
            {
7622
            {
7623
                Return(Local0)
7623
                Return(Local0)
7624
            }
7624
            }
7625
 
7625
 
7626
            Store(TST7(), Local0)
7626
            Store(TST7(), Local0)
7627
            if (LGreater (Local0, 0))
7627
            if (LGreater (Local0, 0))
7628
            {
7628
            {
7629
                Return(Local0)
7629
                Return(Local0)
7630
            }
7630
            }
7631
 
7631
 
7632
            Store(TST8(), Local0)
7632
            Store(TST8(), Local0)
7633
            if (LGreater (Local0, 0))
7633
            if (LGreater (Local0, 0))
7634
            {
7634
            {
7635
                Return(Local0)
7635
                Return(Local0)
7636
            }
7636
            }
7637
 
7637
 
7638
            Store(TST9(), Local0)
7638
            Store(TST9(), Local0)
7639
            if (LGreater (Local0, 0))
7639
            if (LGreater (Local0, 0))
7640
            {
7640
            {
7641
                Return(Local0)
7641
                Return(Local0)
7642
            }
7642
            }
7643
 
7643
 
7644
            Store(TSTA(), Local0)
7644
            Store(TSTA(), Local0)
7645
            if (LGreater (Local0, 0))
7645
            if (LGreater (Local0, 0))
7646
            {
7646
            {
7647
                Return(Local0)
7647
                Return(Local0)
7648
            }
7648
            }
7649
 
7649
 
7650
            Store(TSTB(), Local0)
7650
            Store(TSTB(), Local0)
7651
            if (LGreater (Local0, 0))
7651
            if (LGreater (Local0, 0))
7652
            {
7652
            {
7653
                Return(Local0)
7653
                Return(Local0)
7654
            }
7654
            }
7655
 
7655
 
7656
            Store(TSTC(), Local0)
7656
            Store(TSTC(), Local0)
7657
            if (LGreater (Local0, 0))
7657
            if (LGreater (Local0, 0))
7658
            {
7658
            {
7659
                Return(Local0)
7659
                Return(Local0)
7660
            }
7660
            }
7661
 
7661
 
7662
            Store(TSTD(), Local0)
7662
            Store(TSTD(), Local0)
7663
            if (LGreater (Local0, 0))
7663
            if (LGreater (Local0, 0))
7664
            {
7664
            {
7665
                Return(Local0)
7665
                Return(Local0)
7666
            }
7666
            }
7667
 
7667
 
7668
            Store(TSTE(), Local0)
7668
            Store(TSTE(), Local0)
7669
            if (LGreater (Local0, 0))
7669
            if (LGreater (Local0, 0))
7670
            {
7670
            {
7671
                Return(Local0)
7671
                Return(Local0)
7672
            }
7672
            }
7673
 
7673
 
7674
    /* No longer ACPI compliant */
7674
    /* No longer ACPI compliant */
7675
    /*
7675
    /*
7676
            Store(TSTF(), Local0)
7676
            Store(TSTF(), Local0)
7677
            if (LGreater (Local0, 0))
7677
            if (LGreater (Local0, 0))
7678
            {
7678
            {
7679
                Return(Local0)
7679
                Return(Local0)
7680
            }
7680
            }
7681
    */
7681
    */
7682
 
7682
 
7683
            Store(TSTG(), Local0)
7683
            Store(TSTG(), Local0)
7684
            if (LGreater (Local0, 0))
7684
            if (LGreater (Local0, 0))
7685
            {
7685
            {
7686
                Return(Local0)
7686
                Return(Local0)
7687
            }
7687
            }
7688
 
7688
 
7689
            Store(TSTH(), Local0)
7689
            Store(TSTH(), Local0)
7690
            if (LGreater (Local0, 0))
7690
            if (LGreater (Local0, 0))
7691
            {
7691
            {
7692
                Return(Local0)
7692
                Return(Local0)
7693
            }
7693
            }
7694
 
7694
 
7695
    /* No longer ACPI compliant */
7695
    /* No longer ACPI compliant */
7696
    /*
7696
    /*
7697
            Store(TSTI(), Local0)
7697
            Store(TSTI(), Local0)
7698
            if (LGreater (Local0, 0))
7698
            if (LGreater (Local0, 0))
7699
            {
7699
            {
7700
                Return(Local0)
7700
                Return(Local0)
7701
            }
7701
            }
7702
    */
7702
    */
7703
            Store(TSTJ(), Local0)
7703
            Store(TSTJ(), Local0)
7704
            if (LGreater (Local0, 0))
7704
            if (LGreater (Local0, 0))
7705
            {
7705
            {
7706
                Return(Local0)
7706
                Return(Local0)
7707
            }
7707
            }
7708
 
7708
 
7709
            Store(TSTK(), Local0)
7709
            Store(TSTK(), Local0)
7710
            if (LGreater (Local0, 0))
7710
            if (LGreater (Local0, 0))
7711
            {
7711
            {
7712
                Return(Local0)
7712
                Return(Local0)
7713
            }
7713
            }
7714
 
7714
 
7715
            Store(TSTL(), Local0)
7715
            Store(TSTL(), Local0)
7716
            if (LGreater (Local0, 0))
7716
            if (LGreater (Local0, 0))
7717
            {
7717
            {
7718
                Return(Local0)
7718
                Return(Local0)
7719
            }
7719
            }
7720
 
7720
 
7721
            Return(Local0)
7721
            Return(Local0)
7722
 
7722
 
7723
        }
7723
        }
7724
 
7724
 
7725
    } // Device(IDX7)
7725
    } // Device(IDX7)
7726
 
7726
 
7727
//
7727
//
7728
// test MatchOp.asl
7728
// test MatchOp.asl
7729
//
7729
//
7730
//  MatchOp test cases that utilize nested DerefOf(Index(...)) to validate
7730
//  MatchOp test cases that utilize nested DerefOf(Index(...)) to validate
7731
//  MatchOp, DerefOfOp, and IndexOp of nested packages.
7731
//  MatchOp, DerefOfOp, and IndexOp of nested packages.
7732
//
7732
//
7733
    Device (MTCH)
7733
    Device (MTCH)
7734
    {
7734
    {
7735
 
7735
 
7736
        Method (TEST)
7736
        Method (TEST)
7737
        {
7737
        {
7738
            Store ("++++++++ MatchOp Test", Debug)
7738
            Store ("++++++++ MatchOp Test", Debug)
7739
 
7739
 
7740
            Name (TIM0, Package ()
7740
            Name (TIM0, Package ()
7741
                {
7741
                {
7742
                    Package ()  {0x78, 0xB4, 0xF0, 0x0384},
7742
                    Package ()  {0x78, 0xB4, 0xF0, 0x0384},
7743
                    Package ()  {0x23, 0x21, 0x10, 0},
7743
                    Package ()  {0x23, 0x21, 0x10, 0},
7744
                    Package ()  {0x0B, 9, 4, 0},
7744
                    Package ()  {0x0B, 9, 4, 0},
7745
                    Package ()  {0x70, 0x49, 0x36, 0x27, 0x19},
7745
                    Package ()  {0x70, 0x49, 0x36, 0x27, 0x19},
7746
                    Package ()  {0, 1, 2, 1, 2},
7746
                    Package ()  {0, 1, 2, 1, 2},
7747
                    Package ()  {0, 0, 0, 1, 1},
7747
                    Package ()  {0, 0, 0, 1, 1},
7748
                    Package ()  {4, 3, 2, 0},
7748
                    Package ()  {4, 3, 2, 0},
7749
                    Package ()  {2, 1, 0, 0}
7749
                    Package ()  {2, 1, 0, 0}
7750
                })  //  TIM0
7750
                })  //  TIM0
7751
 
7751
 
7752
            Name (TMD0, Buffer (20) {0xFF, 0xFF, 0xFF, 0xFF })
7752
            Name (TMD0, Buffer (20) {0xFF, 0xFF, 0xFF, 0xFF })
7753
            CreateDWordField (TMD0, 0, PIO0)    //  0xFFFFFFFF
7753
            CreateDWordField (TMD0, 0, PIO0)    //  0xFFFFFFFF
7754
            CreateDWordField (TMD0, 4, DMA0)
7754
            CreateDWordField (TMD0, 4, DMA0)
7755
            CreateDWordField (TMD0, 8, PIO1)
7755
            CreateDWordField (TMD0, 8, PIO1)
7756
            CreateDWordField (TMD0, 12, DMA1)
7756
            CreateDWordField (TMD0, 12, DMA1)
7757
            CreateDWordField (TMD0, 16, CHNF)
7757
            CreateDWordField (TMD0, 16, CHNF)
7758
 
7758
 
7759
 
7759
 
7760
            //  validate PIO0 value
7760
            //  validate PIO0 value
7761
            Store (PIO0, Local3)
7761
            Store (PIO0, Local3)
7762
 
7762
 
7763
            //  save Local3 object type value into Local2
7763
            //  save Local3 object type value into Local2
7764
            Store (ObjectType (Local3), Local2)
7764
            Store (ObjectType (Local3), Local2)
7765
 
7765
 
7766
            //  validate Local3 is a Number
7766
            //  validate Local3 is a Number
7767
            If (LNotEqual (Local2, 1))  //  Number type is 1
7767
            If (LNotEqual (Local2, 1))  //  Number type is 1
7768
                {   Return (2)  }   //  failure
7768
                {   Return (2)  }   //  failure
7769
 
7769
 
7770
            //  validate Local3 Number value
7770
            //  validate Local3 Number value
7771
            If (LNotEqual (Local3, 0xFFFFFFFF)) //  Number value 0xFFFFFFFF
7771
            If (LNotEqual (Local3, 0xFFFFFFFF)) //  Number value 0xFFFFFFFF
7772
                {   Return (3)  }   //  failure
7772
                {   Return (3)  }   //  failure
7773
 
7773
 
7774
            Store ("DWordField PASS", Debug)
7774
            Store ("DWordField PASS", Debug)
7775
 
7775
 
7776
 
7776
 
7777
            Store (0, Local5)
7777
            Store (0, Local5)
7778
            Store (Match (DerefOf (Index (TIM0, 1, )), MLE, Local5, MTR, 0, 0), Local6)
7778
            Store (Match (DerefOf (Index (TIM0, 1, )), MLE, Local5, MTR, 0, 0), Local6)
7779
 
7779
 
7780
            //  save Local6 object type value into Local2
7780
            //  save Local6 object type value into Local2
7781
            Store (ObjectType (Local6), Local2)
7781
            Store (ObjectType (Local6), Local2)
7782
 
7782
 
7783
            //  validate Local6 is a Number
7783
            //  validate Local6 is a Number
7784
            If (LNotEqual (Local2, 1))  //  Number type is 1
7784
            If (LNotEqual (Local2, 1))  //  Number type is 1
7785
                {   Return (4)  }   //  failure
7785
                {   Return (4)  }   //  failure
7786
 
7786
 
7787
            Store ("Match(DerefOf(Index(TIM0,1)),... PASS", Debug)
7787
            Store ("Match(DerefOf(Index(TIM0,1)),... PASS", Debug)
7788
 
7788
 
7789
 
7789
 
7790
            //  validate following produces a nested package to validate
7790
            //  validate following produces a nested package to validate
7791
            //  that MatchOp did not corrupt SearchPackage (TIM0)
7791
            //  that MatchOp did not corrupt SearchPackage (TIM0)
7792
            Store (DerefOf (Index (TIM0, 1, )), Local4)
7792
            Store (DerefOf (Index (TIM0, 1, )), Local4)
7793
 
7793
 
7794
            //  save Local4 object type value into Local2
7794
            //  save Local4 object type value into Local2
7795
            Store (ObjectType (Local4), Local2)
7795
            Store (ObjectType (Local4), Local2)
7796
 
7796
 
7797
            //  validate Local4 is a Package
7797
            //  validate Local4 is a Package
7798
            If (LNotEqual (Local2, 4))  //  Package type is 4
7798
            If (LNotEqual (Local2, 4))  //  Package type is 4
7799
                {   Return (5)  }   //  failure
7799
                {   Return (5)  }   //  failure
7800
 
7800
 
7801
            Store ("DerefOf(Index(TIM0,1)),... PASS", Debug)
7801
            Store ("DerefOf(Index(TIM0,1)),... PASS", Debug)
7802
 
7802
 
7803
 
7803
 
7804
            And (Match (DerefOf (Index (TIM0, 0, )), MGE, PIO0, MTR, 0, 0), 3, Local0)
7804
            And (Match (DerefOf (Index (TIM0, 0, )), MGE, PIO0, MTR, 0, 0), 3, Local0)
7805
 
7805
 
7806
            //  save Local0 object type value into Local2
7806
            //  save Local0 object type value into Local2
7807
            Store (ObjectType (Local0), Local2)
7807
            Store (ObjectType (Local0), Local2)
7808
 
7808
 
7809
            //  validate Local0 is a Number
7809
            //  validate Local0 is a Number
7810
            If (LNotEqual (Local2, 1))  //  Number type is 1
7810
            If (LNotEqual (Local2, 1))  //  Number type is 1
7811
                {   Return (6)  }   //  failure
7811
                {   Return (6)  }   //  failure
7812
 
7812
 
7813
            //  validate Local0 Number value
7813
            //  validate Local0 Number value
7814
            If (LNotEqual (Local0, 3))  //  Number value 3
7814
            If (LNotEqual (Local0, 3))  //  Number value 3
7815
                {   Return (7)  }   //  failure
7815
                {   Return (7)  }   //  failure
7816
 
7816
 
7817
            Store ("And(Match(DerefOf(Index(TIM0,0)),... PASS", Debug)
7817
            Store ("And(Match(DerefOf(Index(TIM0,0)),... PASS", Debug)
7818
 
7818
 
7819
 
7819
 
7820
            //  again, validate following produces a nested package
7820
            //  again, validate following produces a nested package
7821
            Store (DerefOf (Index (TIM0, 1, )), Local4)
7821
            Store (DerefOf (Index (TIM0, 1, )), Local4)
7822
 
7822
 
7823
            //  save Local4 object type value into Local2
7823
            //  save Local4 object type value into Local2
7824
            Store (ObjectType (Local4), Local2)
7824
            Store (ObjectType (Local4), Local2)
7825
 
7825
 
7826
            //  validate Local4 is a Package
7826
            //  validate Local4 is a Package
7827
            If (LNotEqual (Local2, 4))  //  Package type is 4
7827
            If (LNotEqual (Local2, 4))  //  Package type is 4
7828
                {   Return (8)  }   //  failure
7828
                {   Return (8)  }   //  failure
7829
 
7829
 
7830
            Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
7830
            Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
7831
 
7831
 
7832
 
7832
 
7833
            //  again, validate following produces a nested package
7833
            //  again, validate following produces a nested package
7834
            Store (DerefOf (Index (TIM0, 1, )), Local4)
7834
            Store (DerefOf (Index (TIM0, 1, )), Local4)
7835
 
7835
 
7836
            //  save Local4 object type value into Local2
7836
            //  save Local4 object type value into Local2
7837
            Store (ObjectType (Local4), Local2)
7837
            Store (ObjectType (Local4), Local2)
7838
 
7838
 
7839
            //  validate Local4 is a Package
7839
            //  validate Local4 is a Package
7840
            If (LNotEqual (Local2, 4))  //  Package type is 4
7840
            If (LNotEqual (Local2, 4))  //  Package type is 4
7841
                {   Return (9)  }   //  failure
7841
                {   Return (9)  }   //  failure
7842
 
7842
 
7843
            Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
7843
            Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
7844
 
7844
 
7845
 
7845
 
7846
            //  test nested DerefOf(Index) operators
7846
            //  test nested DerefOf(Index) operators
7847
            Store (DerefOf (Index (DerefOf (Index (TIM0, 1, )), Local0, )), Local1)
7847
            Store (DerefOf (Index (DerefOf (Index (TIM0, 1, )), Local0, )), Local1)
7848
 
7848
 
7849
            //  save Local1 object type value into Local2
7849
            //  save Local1 object type value into Local2
7850
            Store (ObjectType (Local1), Local2)
7850
            Store (ObjectType (Local1), Local2)
7851
 
7851
 
7852
            //  validate Local1 is a Number
7852
            //  validate Local1 is a Number
7853
            If (LNotEqual (Local2, 1))  //  Number type is 1
7853
            If (LNotEqual (Local2, 1))  //  Number type is 1
7854
                {   Return (10) }   //  failure
7854
                {   Return (10) }   //  failure
7855
 
7855
 
7856
            //  zero indicates pass, non-zero is an error code
7856
            //  zero indicates pass, non-zero is an error code
7857
            If (LNotEqual (Local1, 0))
7857
            If (LNotEqual (Local1, 0))
7858
                {   Return (11) }   //  failure
7858
                {   Return (11) }   //  failure
7859
 
7859
 
7860
            Store ("DerefOf(Index(DerefOf(Index(TIM0,1)),... PASS", Debug)
7860
            Store ("DerefOf(Index(DerefOf(Index(TIM0,1)),... PASS", Debug)
7861
 
7861
 
7862
 
7862
 
7863
            //  again, validate following produces a nested package
7863
            //  again, validate following produces a nested package
7864
            Store (DerefOf (Index (TIM0, 1, )), Local4)
7864
            Store (DerefOf (Index (TIM0, 1, )), Local4)
7865
 
7865
 
7866
            //  save Local4 object type value into Local2
7866
            //  save Local4 object type value into Local2
7867
            Store (ObjectType (Local4), Local2)
7867
            Store (ObjectType (Local4), Local2)
7868
 
7868
 
7869
            //  validate Local4 is a Package
7869
            //  validate Local4 is a Package
7870
            If (LNotEqual (Local2, 4))  //  Package type is 4
7870
            If (LNotEqual (Local2, 4))  //  Package type is 4
7871
                {   Return (12) }   //  failure
7871
                {   Return (12) }   //  failure
7872
 
7872
 
7873
            Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
7873
            Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
7874
 
7874
 
7875
 
7875
 
7876
            //  retest nested DerefOf(Index) operators
7876
            //  retest nested DerefOf(Index) operators
7877
            Store (DerefOf (Index (DerefOf (Index (TIM0, 1, )), Local0, )), Local1)
7877
            Store (DerefOf (Index (DerefOf (Index (TIM0, 1, )), Local0, )), Local1)
7878
 
7878
 
7879
            //  save Local1 object type value into Local2
7879
            //  save Local1 object type value into Local2
7880
            Store (ObjectType (Local1), Local2)
7880
            Store (ObjectType (Local1), Local2)
7881
 
7881
 
7882
            //  validate Local1 is a Number
7882
            //  validate Local1 is a Number
7883
            If (LNotEqual (Local2, 1))  //  Number type is 1
7883
            If (LNotEqual (Local2, 1))  //  Number type is 1
7884
                {   Return (13) }   //  failure
7884
                {   Return (13) }   //  failure
7885
 
7885
 
7886
            //  zero indicates pass, non-zero is an error code
7886
            //  zero indicates pass, non-zero is an error code
7887
            If (LNotEqual (Local1, 0))
7887
            If (LNotEqual (Local1, 0))
7888
                {   Return (14) }   //  failure
7888
                {   Return (14) }   //  failure
7889
 
7889
 
7890
            Store ("DerefOf(Index(DerefOf(Index(TIM0,1)),... PASS again", Debug)
7890
            Store ("DerefOf(Index(DerefOf(Index(TIM0,1)),... PASS again", Debug)
7891
 
7891
 
7892
 
7892
 
7893
            //  again, validate following produces a nested package
7893
            //  again, validate following produces a nested package
7894
            Store (DerefOf (Index (TIM0, 1, )), Local4)
7894
            Store (DerefOf (Index (TIM0, 1, )), Local4)
7895
 
7895
 
7896
            //  save Local4 object type value into Local2
7896
            //  save Local4 object type value into Local2
7897
            Store (ObjectType (Local4), Local2)
7897
            Store (ObjectType (Local4), Local2)
7898
 
7898
 
7899
            //  validate Local4 is a Package
7899
            //  validate Local4 is a Package
7900
            If (LNotEqual (Local2, 4))  //  Package type is 4
7900
            If (LNotEqual (Local2, 4))  //  Package type is 4
7901
                {   Return (15) }   //  failure
7901
                {   Return (15) }   //  failure
7902
 
7902
 
7903
            Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
7903
            Store ("DerefOf(Index(TIM0,1)),... PASS again", Debug)
7904
 
7904
 
7905
 
7905
 
7906
            Return (0)  //  pass
7906
            Return (0)  //  pass
7907
        }   //  TEST
7907
        }   //  TEST
7908
    }   // MTCH
7908
    }   // MTCH
7909
 
7909
 
7910
//
7910
//
7911
// test WhileBrk.asl
7911
// test WhileBrk.asl
7912
//
7912
//
7913
//  This code tests the Break term and While term
7913
//  This code tests the Break term and While term
7914
//
7914
//
7915
//  Syntax of Break term
7915
//  Syntax of Break term
7916
//      BreakTerm := Break
7916
//      BreakTerm := Break
7917
//  The break operation causes the current package execution to complete.
7917
//  The break operation causes the current package execution to complete.
7918
//
7918
//
7919
//  Syntax of While Term
7919
//  Syntax of While Term
7920
//      WhileTerm   := While(
7920
//      WhileTerm   := While(
7921
//          Predicate   //TermArg=>Integer
7921
//          Predicate   //TermArg=>Integer
7922
//      ) {TermList}
7922
//      ) {TermList}
7923
//  Predicate is evaluated as an integer.
7923
//  Predicate is evaluated as an integer.
7924
//  If the integer is non-zero, the list of terms in TermList is executed.
7924
//  If the integer is non-zero, the list of terms in TermList is executed.
7925
//  The operation repeats until the Predicate evaluates to zero.
7925
//  The operation repeats until the Predicate evaluates to zero.
7926
//
7926
//
7927
// MTL NOTE: This test has been modified to reflect ACPI 2.0 break
7927
// MTL NOTE: This test has been modified to reflect ACPI 2.0 break
7928
// NOTE: This test, when run under the MS ACPI.SYS grinds the system to
7928
// NOTE: This test, when run under the MS ACPI.SYS grinds the system to
7929
//  a halt.
7929
//  a halt.
7930
//
7930
//
7931
    Device (WHLB)
7931
    Device (WHLB)
7932
    {
7932
    {
7933
        Name (CNT0, 0)
7933
        Name (CNT0, 0)
7934
        Name (CNT1, 0)
7934
        Name (CNT1, 0)
7935
 
7935
 
7936
        Method (TEST)
7936
        Method (TEST)
7937
        {
7937
        {
7938
            //  Check Break statement nested in If nested in While nested in
7938
            //  Check Break statement nested in If nested in While nested in
7939
            //  While only exits inner-most While loop
7939
            //  While only exits inner-most While loop
7940
            Store (0, CNT0)
7940
            Store (0, CNT0)
7941
 
7941
 
7942
            While (LLess (CNT0, 4))
7942
            While (LLess (CNT0, 4))
7943
            {
7943
            {
7944
                Store (0, CNT1)
7944
                Store (0, CNT1)
7945
                While (LLess (CNT1, 10))
7945
                While (LLess (CNT1, 10))
7946
                {
7946
                {
7947
                    if (LEqual (CNT1, 1))
7947
                    if (LEqual (CNT1, 1))
7948
                    {
7948
                    {
7949
                        Break       //  exit encompassing loop
7949
                        Break       //  exit encompassing loop
7950
                    }
7950
                    }
7951
 
7951
 
7952
                    Increment (CNT1)
7952
                    Increment (CNT1)
7953
                }
7953
                }
7954
 
7954
 
7955
                If (LNotEqual (CNT1, 1))
7955
                If (LNotEqual (CNT1, 1))
7956
                {
7956
                {
7957
                    //  failure
7957
                    //  failure
7958
                    Return (7)
7958
                    Return (7)
7959
                }
7959
                }
7960
 
7960
 
7961
                Increment (CNT0)
7961
                Increment (CNT0)
7962
            }
7962
            }
7963
 
7963
 
7964
            //  Verify Break only exited inner-most While loop
7964
            //  Verify Break only exited inner-most While loop
7965
 
7965
 
7966
            If (LNotEqual (CNT0, 4))
7966
            If (LNotEqual (CNT0, 4))
7967
            {
7967
            {
7968
                //  failure
7968
                //  failure
7969
                Return (8)
7969
                Return (8)
7970
            }
7970
            }
7971
 
7971
 
7972
            Store ("While/While/If/Break PASS", Debug)
7972
            Store ("While/While/If/Break PASS", Debug)
7973
 
7973
 
7974
            Store ("++++++++ WhileBrk Test", Debug)
7974
            Store ("++++++++ WhileBrk Test", Debug)
7975
 
7975
 
7976
            //  Check Break statement nested in While
7976
            //  Check Break statement nested in While
7977
            Store (0, CNT0)
7977
            Store (0, CNT0)
7978
 
7978
 
7979
            While (LLess (CNT0, 10))
7979
            While (LLess (CNT0, 10))
7980
            {
7980
            {
7981
                Break       //  exit encompassing package
7981
                Break       //  exit encompassing package
7982
                Increment (CNT0)
7982
                Increment (CNT0)
7983
            }
7983
            }
7984
 
7984
 
7985
            If (LNotEqual (CNT0, 0))    //  instruction after Break executed
7985
            If (LNotEqual (CNT0, 0))    //  instruction after Break executed
7986
            {
7986
            {
7987
                Return (4)
7987
                Return (4)
7988
            }
7988
            }
7989
 
7989
 
7990
 
7990
 
7991
            Store (0, CNT0)
7991
            Store (0, CNT0)
7992
 
7992
 
7993
            //  Test While Term
7993
            //  Test While Term
7994
            While (LLess (CNT0, 10))
7994
            While (LLess (CNT0, 10))
7995
            {
7995
            {
7996
                Increment (CNT0)
7996
                Increment (CNT0)
7997
            }
7997
            }
7998
 
7998
 
7999
            //  Check if the while loop was executed until the condition is satisfied.
7999
            //  Check if the while loop was executed until the condition is satisfied.
8000
            If (LNotEqual (CNT0, 10))
8000
            If (LNotEqual (CNT0, 10))
8001
            {
8001
            {
8002
                Return (1)
8002
                Return (1)
8003
            }
8003
            }
8004
 
8004
 
8005
 
8005
 
8006
            //  While loop in a reverse order
8006
            //  While loop in a reverse order
8007
            While (LGreater (CNT0, 0))
8007
            While (LGreater (CNT0, 0))
8008
            {
8008
            {
8009
                Decrement (CNT0)
8009
                Decrement (CNT0)
8010
            }
8010
            }
8011
 
8011
 
8012
            //  Check if the while loop was executed until the condition is satisfied.
8012
            //  Check if the while loop was executed until the condition is satisfied.
8013
            If (LNotEqual (CNT0, 0))
8013
            If (LNotEqual (CNT0, 0))
8014
            {
8014
            {
8015
                Return (2)
8015
                Return (2)
8016
            }
8016
            }
8017
 
8017
 
8018
 
8018
 
8019
            Store ("While/Break PASS", Debug)
8019
            Store ("While/Break PASS", Debug)
8020
 
8020
 
8021
 
8021
 
8022
            //  Check Break statement nested in If nested in While
8022
            //  Check Break statement nested in If nested in While
8023
            Store (0, CNT0)
8023
            Store (0, CNT0)
8024
 
8024
 
8025
            While (LLess (CNT0, 10))
8025
            While (LLess (CNT0, 10))
8026
            {
8026
            {
8027
                if (LEqual (CNT0, 5))
8027
                if (LEqual (CNT0, 5))
8028
                {
8028
                {
8029
                    Break       //  exit encompassing Package (If)
8029
                    Break       //  exit encompassing Package (If)
8030
 
8030
 
8031
                    //  if we execute the next instruction,
8031
                    //  if we execute the next instruction,
8032
                    //  Break did not exit the loop
8032
                    //  Break did not exit the loop
8033
                    Store (20, CNT0)    //  exit While loop with value larger
8033
                    Store (20, CNT0)    //  exit While loop with value larger
8034
                                            //  than above
8034
                                            //  than above
8035
                }
8035
                }
8036
 
8036
 
8037
                Increment (CNT0)    //  check if Break exited both If and While
8037
                Increment (CNT0)    //  check if Break exited both If and While
8038
            }   //  While
8038
            }   //  While
8039
 
8039
 
8040
            If (LGreater (CNT0, 19))
8040
            If (LGreater (CNT0, 19))
8041
            {   //  instruction after Break inside IfOp executed
8041
            {   //  instruction after Break inside IfOp executed
8042
                Return (5)
8042
                Return (5)
8043
            }
8043
            }
8044
 
8044
 
8045
            //
8045
            //
8046
            // Break will exit out of the while loop, therefore
8046
            // Break will exit out of the while loop, therefore
8047
            //  the CNT0 counter should still Increment until 5
8047
            //  the CNT0 counter should still Increment until 5
8048
            //
8048
            //
8049
            If (LNotEqual (CNT0, 5))
8049
            If (LNotEqual (CNT0, 5))
8050
            {   //  instruction after Break inside WhileOp executed
8050
            {   //  instruction after Break inside WhileOp executed
8051
                Return (6)
8051
                Return (6)
8052
            }
8052
            }
8053
            Store ("While/If/Break PASS", Debug)
8053
            Store ("While/If/Break PASS", Debug)
8054
 
8054
 
8055
 
8055
 
8056
            //  All the conditions passed
8056
            //  All the conditions passed
8057
            Return (0)
8057
            Return (0)
8058
        }   //  TEST
8058
        }   //  TEST
8059
    }   //  WHLB
8059
    }   //  WHLB
8060
 
8060
 
8061
 
8061
 
8062
//
8062
//
8063
// test IndexOp2.asl
8063
// test IndexOp2.asl
8064
//
8064
//
8065
//  Additional IndexOp test cases to support ACPICMB (control method battery
8065
//  Additional IndexOp test cases to support ACPICMB (control method battery
8066
//  test) on Toshiba Portege 7020CT. Test cases include appropriate bit
8066
//  test) on Toshiba Portege 7020CT. Test cases include appropriate bit
8067
//  shifting of Field elements and reading Field elements greater than 64 bits.
8067
//  shifting of Field elements and reading Field elements greater than 64 bits.
8068
//
8068
//
8069
// MTL NOTE: This test has been modified slightly from the original test
8069
// MTL NOTE: This test has been modified slightly from the original test
8070
//  to take into account ACPI specification limitations.
8070
//  to take into account ACPI specification limitations.
8071
//
8071
//
8072
    Scope (\_SB)    //  System Bus
8072
    Scope (\_SB)    //  System Bus
8073
    {   //  _SB system bus
8073
    {   //  _SB system bus
8074
 
8074
 
8075
        Device (MEM)
8075
        Device (MEM)
8076
        {   //  MEM
8076
        {   //  MEM
8077
            Name (_HID, 0x010CD041)
8077
            Name (_HID, 0x010CD041)
8078
            Name (_STA, 0x0F)
8078
            Name (_STA, 0x0F)
8079
 
8079
 
8080
            OperationRegion (SMEM, SystemMemory, 0x800000, 0x100)
8080
            OperationRegion (SMEM, SystemMemory, 0x800000, 0x100)
8081
            Field (SMEM, AnyAcc, NoLock, Preserve)
8081
            Field (SMEM, AnyAcc, NoLock, Preserve)
8082
            {   //  Field:  SMEM overlay using 32-bit field elements
8082
            {   //  Field:  SMEM overlay using 32-bit field elements
8083
                SMD0,   32, //  32-bits
8083
                SMD0,   32, //  32-bits
8084
                SMD1,   32,     //  32-bits
8084
                SMD1,   32,     //  32-bits
8085
                SMD2,   32,     //  32-bits
8085
                SMD2,   32,     //  32-bits
8086
                SMD3,   32  //  32-bits
8086
                SMD3,   32  //  32-bits
8087
            }   //  Field:  SMEM overlay using 32-bit field elements
8087
            }   //  Field:  SMEM overlay using 32-bit field elements
8088
            Field (SMEM, AnyAcc, NoLock, Preserve)
8088
            Field (SMEM, AnyAcc, NoLock, Preserve)
8089
            {   //  Field:  SMEM overlay using greater than 32-bit field elements
8089
            {   //  Field:  SMEM overlay using greater than 32-bit field elements
8090
                SME0,   69, //  larger than an integer (32 or 64)
8090
                SME0,   69, //  larger than an integer (32 or 64)
8091
                SME1,   97  //  larger than an integer
8091
                SME1,   97  //  larger than an integer
8092
            }   //  Field:  SMEM overlay using greater than 32-bit field elements
8092
            }   //  Field:  SMEM overlay using greater than 32-bit field elements
8093
 
8093
 
8094
            OperationRegion (SRAM, SystemMemory, 0x100B0000, 0xF000)
8094
            OperationRegion (SRAM, SystemMemory, 0x100B0000, 0xF000)
8095
            Field (SRAM, AnyAcc, NoLock, Preserve)
8095
            Field (SRAM, AnyAcc, NoLock, Preserve)
8096
            {   //  Field:  SRAM overlay
8096
            {   //  Field:  SRAM overlay
8097
                    ,   0x34000,    //  skip
8097
                    ,   0x34000,    //  skip
8098
                IEAX,   0x20,
8098
                IEAX,   0x20,
8099
                IEBX,   0x20,
8099
                IEBX,   0x20,
8100
                IECX,   0x20,
8100
                IECX,   0x20,
8101
                IEDX,   0x20,
8101
                IEDX,   0x20,
8102
                IESI,   0x20,
8102
                IESI,   0x20,
8103
                IEDI,   0x20,
8103
                IEDI,   0x20,
8104
                IEBP,   0x20,
8104
                IEBP,   0x20,
8105
                    ,   0x20,
8105
                    ,   0x20,
8106
                OEAX,   0x20,
8106
                OEAX,   0x20,
8107
                OEBX,   0x20,
8107
                OEBX,   0x20,
8108
                OECX,   0x20,
8108
                OECX,   0x20,
8109
                OEDX,   0x20,
8109
                OEDX,   0x20,
8110
                OESI,   0x20,
8110
                OESI,   0x20,
8111
                OEDI,   0x20,
8111
                OEDI,   0x20,
8112
                OEBP,   0x20,
8112
                OEBP,   0x20,
8113
                    ,   0x618,  //  skip
8113
                    ,   0x618,  //  skip
8114
                ACST,   1,
8114
                ACST,   1,
8115
                BES1,   1,
8115
                BES1,   1,
8116
                BES2,   1,
8116
                BES2,   1,
8117
                    ,   5,          //  skip
8117
                    ,   5,          //  skip
8118
                BMN1,   0x68,
8118
                BMN1,   0x68,
8119
                BSN1,   0x58,
8119
                BSN1,   0x58,
8120
                BTP1,   0x48,
8120
                BTP1,   0x48,
8121
                BPU1,   0x20,
8121
                BPU1,   0x20,
8122
                BDC1,   0x20,
8122
                BDC1,   0x20,
8123
                BLF1,   0x20,
8123
                BLF1,   0x20,
8124
                BTC1,   0x20,
8124
                BTC1,   0x20,
8125
                BDV1,   0x20,
8125
                BDV1,   0x20,
8126
                BST1,   0x20,
8126
                BST1,   0x20,
8127
                BPR1,   0x20,
8127
                BPR1,   0x20,
8128
                BRC1,   0x20,
8128
                BRC1,   0x20,
8129
                BPV1,   0x20,
8129
                BPV1,   0x20,
8130
                    ,   0x20,
8130
                    ,   0x20,
8131
                BCW1,   0x20,
8131
                BCW1,   0x20,
8132
                BCL1,   0x20,
8132
                BCL1,   0x20,
8133
                BG11,   0x20,
8133
                BG11,   0x20,
8134
                BG21,   0x20,
8134
                BG21,   0x20,
8135
                BOI1,   0x20,
8135
                BOI1,   0x20,
8136
                    ,   0x530,  //  skip
8136
                    ,   0x530,  //  skip
8137
                BMN2,   0x68,
8137
                BMN2,   0x68,
8138
                BSN2,   0x58,
8138
                BSN2,   0x58,
8139
                BTP2,   0x48,
8139
                BTP2,   0x48,
8140
                BPU2,   0x20,
8140
                BPU2,   0x20,
8141
                BDC2,   0x20,
8141
                BDC2,   0x20,
8142
                BLF2,   0x20,
8142
                BLF2,   0x20,
8143
                BTC2,   0x20,
8143
                BTC2,   0x20,
8144
                BDV2,   0x20,
8144
                BDV2,   0x20,
8145
                BST2,   0x20,
8145
                BST2,   0x20,
8146
                BPR2,   0x20,
8146
                BPR2,   0x20,
8147
                BRC2,   0x20,
8147
                BRC2,   0x20,
8148
                BPV2,   0x20,
8148
                BPV2,   0x20,
8149
                    ,   0x20,
8149
                    ,   0x20,
8150
                BCW2,   0x20,
8150
                BCW2,   0x20,
8151
                BCL2,   0x20,
8151
                BCL2,   0x20,
8152
                BG12,   0x20,
8152
                BG12,   0x20,
8153
                BG22,   0x20,
8153
                BG22,   0x20,
8154
                BOI2,   0x20,
8154
                BOI2,   0x20,
8155
                    ,   0x518,  //  skip
8155
                    ,   0x518,  //  skip
8156
                AC01,   0x10,
8156
                AC01,   0x10,
8157
                AC11,   0x10,
8157
                AC11,   0x10,
8158
                PSV1,   0x10,
8158
                PSV1,   0x10,
8159
                CRT1,   0x10,
8159
                CRT1,   0x10,
8160
                TMP1,   0x10,
8160
                TMP1,   0x10,
8161
                AST1,   0x10,
8161
                AST1,   0x10,
8162
                AC21,   0x10,
8162
                AC21,   0x10,
8163
                AC31,   0x10,
8163
                AC31,   0x10,
8164
                AC02,   0x10,
8164
                AC02,   0x10,
8165
                AC12,   0x10,
8165
                AC12,   0x10,
8166
                PSV2,   0x10,
8166
                PSV2,   0x10,
8167
                CRT2,   0x10,
8167
                CRT2,   0x10,
8168
                TMP2,   0x10,
8168
                TMP2,   0x10,
8169
                AST2,   0x10,
8169
                AST2,   0x10,
8170
                AC22,   0x10,
8170
                AC22,   0x10,
8171
                AC32,   0x10,
8171
                AC32,   0x10,
8172
                AC03,   0x10,
8172
                AC03,   0x10,
8173
                AC13,   0x10,
8173
                AC13,   0x10,
8174
                PSV3,   0x10,
8174
                PSV3,   0x10,
8175
                CRT3,   0x10,
8175
                CRT3,   0x10,
8176
                TMP3,   0x10,
8176
                TMP3,   0x10,
8177
                AST3,   0x10,
8177
                AST3,   0x10,
8178
                AC23,   0x10,
8178
                AC23,   0x10,
8179
                AC33,   0x10,
8179
                AC33,   0x10,
8180
                    ,   0x80,       //  skip
8180
                    ,   0x80,       //  skip
8181
                TMPF,   0x10,
8181
                TMPF,   0x10,
8182
                    ,   0x570,  //  skip
8182
                    ,   0x570,  //  skip
8183
                FANH,   1,
8183
                FANH,   1,
8184
                FANL,   7,
8184
                FANL,   7,
8185
                TF11,   1,
8185
                TF11,   1,
8186
                TF21,   1,
8186
                TF21,   1,
8187
                TF31,   1,
8187
                TF31,   1,
8188
                    ,   1,
8188
                    ,   1,
8189
                TF10,   1,
8189
                TF10,   1,
8190
                TF20,   1,
8190
                TF20,   1,
8191
                TF30,   1,
8191
                TF30,   1,
8192
                    ,   1,
8192
                    ,   1,
8193
                TP11,   1,
8193
                TP11,   1,
8194
                TP21,   1,
8194
                TP21,   1,
8195
                TP31,   1,
8195
                TP31,   1,
8196
                    ,   0x6D,   //  109
8196
                    ,   0x6D,   //  109
8197
                GP50,   1,
8197
                GP50,   1,
8198
                GP51,   1,
8198
                GP51,   1,
8199
                GP52,   1,
8199
                GP52,   1,
8200
                GP53,   1,
8200
                GP53,   1,
8201
                    ,   4,
8201
                    ,   4,
8202
                GP60,   1,
8202
                GP60,   1,
8203
                GP61,   1,
8203
                GP61,   1,
8204
                GP62,   1,
8204
                GP62,   1,
8205
                GP63,   1,
8205
                GP63,   1,
8206
                GP64,   1,
8206
                GP64,   1,
8207
                GP65,   1,
8207
                GP65,   1,
8208
                GP66,   1,
8208
                GP66,   1,
8209
                    ,   1,
8209
                    ,   1,
8210
                GP70,   1,
8210
                GP70,   1,
8211
                GP71,   1,
8211
                GP71,   1,
8212
                GP72,   1,
8212
                GP72,   1,
8213
                GP73,   1,
8213
                GP73,   1,
8214
                GP74,   1,
8214
                GP74,   1,
8215
                GP75,   1,
8215
                GP75,   1,
8216
                GP76,   1,
8216
                GP76,   1,
8217
                    ,   1,
8217
                    ,   1,
8218
                WED0,   1,
8218
                WED0,   1,
8219
                WED1,   1,
8219
                WED1,   1,
8220
                WED2,   1,
8220
                WED2,   1,
8221
                WED3,   1,
8221
                WED3,   1,
8222
                WED4,   1,
8222
                WED4,   1,
8223
                    ,   3,
8223
                    ,   3,
8224
                SBL0,   1,
8224
                SBL0,   1,
8225
                SBL1,   1,
8225
                SBL1,   1,
8226
                SBL2,   1,
8226
                SBL2,   1,
8227
                SBL3,   1,
8227
                SBL3,   1,
8228
                    ,   4,
8228
                    ,   4,
8229
                LIDS,   1,
8229
                LIDS,   1,
8230
                VALF,   1,
8230
                VALF,   1,
8231
                    ,   2,
8231
                    ,   2,
8232
                DCKI,   1,
8232
                DCKI,   1,
8233
                DCKF,   1,
8233
                DCKF,   1,
8234
                BT1F,   1,
8234
                BT1F,   1,
8235
                BT2F,   1,
8235
                BT2F,   1,
8236
                    ,   0x7D0,  //  skip
8236
                    ,   0x7D0,  //  skip
8237
                HKCD,   8,
8237
                HKCD,   8,
8238
                    ,   8,
8238
                    ,   8,
8239
                DLID,   0x20,
8239
                DLID,   0x20,
8240
                DSRN,   0x20,
8240
                DSRN,   0x20,
8241
                    ,   0x20,
8241
                    ,   0x20,
8242
                BDID,   0x20,
8242
                BDID,   0x20,
8243
                DSPW,   1,
8243
                DSPW,   1,
8244
                VGAF,   1,
8244
                VGAF,   1,
8245
                VWE0,   1,
8245
                VWE0,   1,
8246
                VWE1,   1,
8246
                VWE1,   1,
8247
                PPSC,   1,
8247
                PPSC,   1,
8248
                SPSC,   1,
8248
                SPSC,   1,
8249
                EWLD,   1,
8249
                EWLD,   1,
8250
                EWPS,   1,
8250
                EWPS,   1,
8251
                    ,   0x1768, //  skip
8251
                    ,   0x1768, //  skip
8252
                PRES,   0x8000
8252
                PRES,   0x8000
8253
            }   //  Field:  SRAM overlay
8253
            }   //  Field:  SRAM overlay
8254
        }   //  MEM
8254
        }   //  MEM
8255
 
8255
 
8256
        Device (BAT1)
8256
        Device (BAT1)
8257
        {   //  BAT1
8257
        {   //  BAT1
8258
            Name (_HID, EISAID ("PNP0C0A"))     //  Control Method Battey ID
8258
            Name (_HID, EISAID ("PNP0C0A"))     //  Control Method Battey ID
8259
            Name (_UID, 1)
8259
            Name (_UID, 1)
8260
            Name (_PCL, Package (1) {\_SB})
8260
            Name (_PCL, Package (1) {\_SB})
8261
 
8261
 
8262
            Method (_STA)
8262
            Method (_STA)
8263
            {   //  _STA
8263
            {   //  _STA
8264
                If (\_SB.MEM.BES1)
8264
                If (\_SB.MEM.BES1)
8265
                    {   Return (0x1F)   }   //  battery present
8265
                    {   Return (0x1F)   }   //  battery present
8266
                Else
8266
                Else
8267
                    {   Return (0x0F)   }   //  battery not present
8267
                    {   Return (0x0F)   }   //  battery not present
8268
            }   //  _STA
8268
            }   //  _STA
8269
 
8269
 
8270
            Method (_BIF)
8270
            Method (_BIF)
8271
            {   //  _BIF
8271
            {   //  _BIF
8272
                Name (BUFR, Package (13)    {})
8272
                Name (BUFR, Package (13)    {})
8273
 
8273
 
8274
                Store (\_SB.MEM.BPU1, Index (BUFR, 0))
8274
                Store (\_SB.MEM.BPU1, Index (BUFR, 0))
8275
                Store (\_SB.MEM.BDC1, Index (BUFR, 1))
8275
                Store (\_SB.MEM.BDC1, Index (BUFR, 1))
8276
                Store (\_SB.MEM.BLF1, Index (BUFR, 2))
8276
                Store (\_SB.MEM.BLF1, Index (BUFR, 2))
8277
                Store (\_SB.MEM.BTC1, Index (BUFR, 3))
8277
                Store (\_SB.MEM.BTC1, Index (BUFR, 3))
8278
                Store (\_SB.MEM.BDV1, Index (BUFR, 4))
8278
                Store (\_SB.MEM.BDV1, Index (BUFR, 4))
8279
                Store (\_SB.MEM.BCW1, Index (BUFR, 5))
8279
                Store (\_SB.MEM.BCW1, Index (BUFR, 5))
8280
                Store (\_SB.MEM.BCL1, Index (BUFR, 6))
8280
                Store (\_SB.MEM.BCL1, Index (BUFR, 6))
8281
                Store (\_SB.MEM.BG11, Index (BUFR, 7))
8281
                Store (\_SB.MEM.BG11, Index (BUFR, 7))
8282
                Store (\_SB.MEM.BG21, Index (BUFR, 8))
8282
                Store (\_SB.MEM.BG21, Index (BUFR, 8))
8283
                Store (\_SB.MEM.BMN1, Index (BUFR, 9))
8283
                Store (\_SB.MEM.BMN1, Index (BUFR, 9))
8284
                Store (\_SB.MEM.BSN1, Index (BUFR, 10))
8284
                Store (\_SB.MEM.BSN1, Index (BUFR, 10))
8285
                Store (\_SB.MEM.BTP1, Index (BUFR, 11))
8285
                Store (\_SB.MEM.BTP1, Index (BUFR, 11))
8286
                Store (\_SB.MEM.BOI1, Index (BUFR, 12))
8286
                Store (\_SB.MEM.BOI1, Index (BUFR, 12))
8287
 
8287
 
8288
                Return (BUFR)
8288
                Return (BUFR)
8289
            }   //  _BIF
8289
            }   //  _BIF
8290
        }   //  BAT1
8290
        }   //  BAT1
8291
 
8291
 
8292
        Device (IDX2)
8292
        Device (IDX2)
8293
        {
8293
        {
8294
            Method (B2IB)
8294
            Method (B2IB)
8295
            {   //  B2IB:   store from Buffer into Index'ed Buffer
8295
            {   //  B2IB:   store from Buffer into Index'ed Buffer
8296
 
8296
 
8297
                Name (SRCB, Buffer ()   {"Short Buffer"})   //  12 characters plus NULL
8297
                Name (SRCB, Buffer ()   {"Short Buffer"})   //  12 characters plus NULL
8298
 
8298
 
8299
                Name (DEST, Buffer ()                           //  62 characters plus NULL
8299
                Name (DEST, Buffer ()                           //  62 characters plus NULL
8300
                    {"Destination buffer that is longer than the short source buffer"})
8300
                    {"Destination buffer that is longer than the short source buffer"})
8301
 
8301
 
8302
 
8302
 
8303
                //  verify object type returned by Index(Buffer,Element,)
8303
                //  verify object type returned by Index(Buffer,Element,)
8304
 
8304
 
8305
                Store (Index (DEST, 2, ), Local1)
8305
                Store (Index (DEST, 2, ), Local1)
8306
                Store (ObjectType (Local1), Local2)
8306
                Store (ObjectType (Local1), Local2)
8307
 
8307
 
8308
                If (LNotEqual (Local2, 14))     //  Buffer Field is type 14
8308
                If (LNotEqual (Local2, 14))     //  Buffer Field is type 14
8309
                {
8309
                {
8310
                    //  Local2 indicates Local1 is not a Buffer Field
8310
                    //  Local2 indicates Local1 is not a Buffer Field
8311
 
8311
 
8312
                    Return (0x61)
8312
                    Return (0x61)
8313
                }
8313
                }
8314
 
8314
 
8315
                //  verify object type and value returned by DerefOf(Index(Buffer,Element,))
8315
                //  verify object type and value returned by DerefOf(Index(Buffer,Element,))
8316
                //  should return Number containing element value
8316
                //  should return Number containing element value
8317
 
8317
 
8318
                Store (DerefOf (Local1), Local3)
8318
                Store (DerefOf (Local1), Local3)
8319
                Store (ObjectType (Local3), Local4)
8319
                Store (ObjectType (Local3), Local4)
8320
 
8320
 
8321
                If (LNotEqual (Local4, 1))          //  Number is type 1
8321
                If (LNotEqual (Local4, 1))          //  Number is type 1
8322
                {
8322
                {
8323
                    //  Local2 indicates Local1 is not a Number
8323
                    //  Local2 indicates Local1 is not a Number
8324
                    Return (0x62)
8324
                    Return (0x62)
8325
                }
8325
                }
8326
                Else
8326
                Else
8327
                {
8327
                {
8328
                    If (LNotEqual (Local3, 0x73))       //  expect 's' element from DEST
8328
                    If (LNotEqual (Local3, 0x73))       //  expect 's' element from DEST
8329
                    {
8329
                    {
8330
                        Return (0x63)
8330
                        Return (0x63)
8331
                    }
8331
                    }
8332
                }
8332
                }
8333
 
8333
 
8334
                Store ("DerefOf(Index(Buffer,,)) PASS", Debug)
8334
                Store ("DerefOf(Index(Buffer,,)) PASS", Debug)
8335
 
8335
 
8336
 
8336
 
8337
                //
8337
                //
8338
                // The following sections have been rewritten because storing into
8338
                // The following sections have been rewritten because storing into
8339
                // an Indexed buffer only changes one byte - the FIRST byte of the
8339
                // an Indexed buffer only changes one byte - the FIRST byte of the
8340
                // buffer is written to the source index.  This is the ONLY byte
8340
                // buffer is written to the source index.  This is the ONLY byte
8341
                // written -- as per ACPI 2.0
8341
                // written -- as per ACPI 2.0
8342
                //
8342
                //
8343
                // Overwrite DEST contents, at buffer position 2 [only]
8343
                // Overwrite DEST contents, at buffer position 2 [only]
8344
 
8344
 
8345
                Store (SRCB, Index (DEST, 2, ))
8345
                Store (SRCB, Index (DEST, 2, ))
8346
 
8346
 
8347
                //
8347
                //
8348
                // Check that the next byte is not changed
8348
                // Check that the next byte is not changed
8349
                //
8349
                //
8350
                Store (DerefOf (Index (DEST, 3, )), Local0)
8350
                Store (DerefOf (Index (DEST, 3, )), Local0)
8351
                If (LNotEqual (Local0, 0x74))       //  't'
8351
                If (LNotEqual (Local0, 0x74))       //  't'
8352
                {
8352
                {
8353
                    //  DEST element is not matching original value
8353
                    //  DEST element is not matching original value
8354
                    If (LEqual (Local0, 0x68))
8354
                    If (LEqual (Local0, 0x68))
8355
                    {
8355
                    {
8356
                        //  DEST element was altered to 'h'
8356
                        //  DEST element was altered to 'h'
8357
                        Return (0x68)
8357
                        Return (0x68)
8358
                    }
8358
                    }
8359
                    Else
8359
                    Else
8360
                    {
8360
                    {
8361
                        // DEST element is an unknown value
8361
                        // DEST element is an unknown value
8362
                        Return (0x69)
8362
                        Return (0x69)
8363
                    }
8363
                    }
8364
                }
8364
                }
8365
 
8365
 
8366
                //
8366
                //
8367
                // Check that the elements beyond the SRCB buffer copy
8367
                // Check that the elements beyond the SRCB buffer copy
8368
                //  have not been altered.
8368
                //  have not been altered.
8369
                //
8369
                //
8370
                Store (DerefOf (Index (DEST, 14)), Local0)
8370
                Store (DerefOf (Index (DEST, 14)), Local0)
8371
 
8371
 
8372
                //
8372
                //
8373
                // This should be an 'f'.
8373
                // This should be an 'f'.
8374
                //
8374
                //
8375
                If (LNotEqual (Local0, 0x66))
8375
                If (LNotEqual (Local0, 0x66))
8376
                {
8376
                {
8377
                    //  DEST element was zero'd by buffer copy
8377
                    //  DEST element was zero'd by buffer copy
8378
                    If (LEqual (Local0, 0))
8378
                    If (LEqual (Local0, 0))
8379
                    {
8379
                    {
8380
                        //  DEST element is zero
8380
                        //  DEST element is zero
8381
                        Return (0x6A)
8381
                        Return (0x6A)
8382
                    }
8382
                    }
8383
                    Else
8383
                    Else
8384
                    {
8384
                    {
8385
                        //  DEST element is unknown value
8385
                        //  DEST element is unknown value
8386
                        Return (0x6B)
8386
                        Return (0x6B)
8387
                    }
8387
                    }
8388
                }
8388
                }
8389
 
8389
 
8390
                Store ("Store(SRCB,Index(Buffer,,)) PASS", Debug)
8390
                Store ("Store(SRCB,Index(Buffer,,)) PASS", Debug)
8391
 
8391
 
8392
                //
8392
                //
8393
                //  verify altering SRCB does NOT alter DEST
8393
                //  verify altering SRCB does NOT alter DEST
8394
                //
8394
                //
8395
                Store (0x6A, Index (SRCB, 1))   //  SRCB = "Sjort Buffer"
8395
                Store (0x6A, Index (SRCB, 1))   //  SRCB = "Sjort Buffer"
8396
 
8396
 
8397
                Store (DerefOf (Index (SRCB, 1)), Local0)
8397
                Store (DerefOf (Index (SRCB, 1)), Local0)
8398
 
8398
 
8399
                If (LNotEqual (Local0, 0x6A))       //  'j'
8399
                If (LNotEqual (Local0, 0x6A))       //  'j'
8400
                {
8400
                {
8401
                    //  SRCB element is unaltered
8401
                    //  SRCB element is unaltered
8402
                    Return (0x71)
8402
                    Return (0x71)
8403
                }
8403
                }
8404
 
8404
 
8405
                Store (DerefOf (Index (DEST, 3)), Local0) // DEST = "Destination buffer that...
8405
                Store (DerefOf (Index (DEST, 3)), Local0) // DEST = "Destination buffer that...
8406
 
8406
 
8407
                If (LNotEqual (Local0, 0x74))       //  't'
8407
                If (LNotEqual (Local0, 0x74))       //  't'
8408
                {
8408
                {
8409
                    //  DEST element is altered
8409
                    //  DEST element is altered
8410
                    If (LEqual (Local0, 0x6A))  //  'j'
8410
                    If (LEqual (Local0, 0x6A))  //  'j'
8411
                    {
8411
                    {
8412
                        //  SRCB change altered DEST element
8412
                        //  SRCB change altered DEST element
8413
                        Return (0x72)
8413
                        Return (0x72)
8414
                    }
8414
                    }
8415
                    Else
8415
                    Else
8416
                    {
8416
                    {
8417
                        //  DEST element is unknown value
8417
                        //  DEST element is unknown value
8418
                        Return (0x73)
8418
                        Return (0x73)
8419
                    }
8419
                    }
8420
                }
8420
                }
8421
 
8421
 
8422
                //  verify altering DEST does NOT alter SRCB
8422
                //  verify altering DEST does NOT alter SRCB
8423
 
8423
 
8424
                Store (0x6B, Index (DEST, 4, )) //  DEST = "DeSkination buffer..."
8424
                Store (0x6B, Index (DEST, 4, )) //  DEST = "DeSkination buffer..."
8425
 
8425
 
8426
                Store (DerefOf (Index (DEST, 4, )), Local0)
8426
                Store (DerefOf (Index (DEST, 4, )), Local0)
8427
 
8427
 
8428
                If (LNotEqual (Local0, 0x6B))       //  'k'
8428
                If (LNotEqual (Local0, 0x6B))       //  'k'
8429
                {
8429
                {
8430
                    //  DEST element is unaltered
8430
                    //  DEST element is unaltered
8431
                    Return (0x74)
8431
                    Return (0x74)
8432
                }
8432
                }
8433
 
8433
 
8434
                Store (DerefOf (Index (SRCB, 2, )), Local0)
8434
                Store (DerefOf (Index (SRCB, 2, )), Local0)
8435
 
8435
 
8436
                If (LNotEqual (Local0, 0x6F))       //  'o'
8436
                If (LNotEqual (Local0, 0x6F))       //  'o'
8437
                {   //  SRC element is altered
8437
                {   //  SRC element is altered
8438
                    If (LEqual (Local0, 0x6B))  //  'k'
8438
                    If (LEqual (Local0, 0x6B))  //  'k'
8439
                    {
8439
                    {
8440
                        //  DEST change altered SRCB element
8440
                        //  DEST change altered SRCB element
8441
                        Return (0x75)
8441
                        Return (0x75)
8442
                    }
8442
                    }
8443
                    Else
8443
                    Else
8444
                    {
8444
                    {
8445
                        //  SRCB element is unknown value
8445
                        //  SRCB element is unknown value
8446
                        Return (0x76)
8446
                        Return (0x76)
8447
                    }
8447
                    }
8448
                }
8448
                }
8449
 
8449
 
8450
                Store ("SRCB and DEST independent PASS", Debug)
8450
                Store ("SRCB and DEST independent PASS", Debug)
8451
 
8451
 
8452
 
8452
 
8453
                // verify string can be written to Index target/destination
8453
                // verify string can be written to Index target/destination
8454
                // Only FIRST byte is written
8454
                // Only FIRST byte is written
8455
 
8455
 
8456
                Store ("New Buff", Index (DEST, 2, ))   //  DEST = "DeNkination buffer..."
8456
                Store ("New Buff", Index (DEST, 2, ))   //  DEST = "DeNkination buffer..."
8457
 
8457
 
8458
                Store (DerefOf (Index (DEST, 2, )), Local0)
8458
                Store (DerefOf (Index (DEST, 2, )), Local0)
8459
 
8459
 
8460
                If (LNotEqual (Local0, 0x4E))       //  'N'
8460
                If (LNotEqual (Local0, 0x4E))       //  'N'
8461
                {
8461
                {
8462
                    //  DEST element is unaltered
8462
                    //  DEST element is unaltered
8463
                    Return (0x81)
8463
                    Return (0x81)
8464
                }
8464
                }
8465
 
8465
 
8466
                Store (DerefOf (Index (DEST, 6, )), Local0)
8466
                Store (DerefOf (Index (DEST, 6, )), Local0)
8467
 
8467
 
8468
                If (LNotEqual (Local0, 0x61))       //  'a'
8468
                If (LNotEqual (Local0, 0x61))       //  'a'
8469
                {
8469
                {
8470
                    //  DEST element is unaltered
8470
                    //  DEST element is unaltered
8471
                    Return (0x82)
8471
                    Return (0x82)
8472
                }
8472
                }
8473
 
8473
 
8474
                Store (DerefOf (Index (DEST, 10, )), Local0)
8474
                Store (DerefOf (Index (DEST, 10, )), Local0)
8475
 
8475
 
8476
                If (LNotEqual (Local0, 0x6E))       //  'n'
8476
                If (LNotEqual (Local0, 0x6E))       //  'n'
8477
                {
8477
                {
8478
                    //  DEST element is unaltered
8478
                    //  DEST element is unaltered
8479
                    Return (0x83)
8479
                    Return (0x83)
8480
                }
8480
                }
8481
 
8481
 
8482
                Store ("Store(String,Index) PASS", Debug)
8482
                Store ("Store(String,Index) PASS", Debug)
8483
 
8483
 
8484
 
8484
 
8485
                Return (0)  //  pass
8485
                Return (0)  //  pass
8486
            }   //  B2IB:   store from Buffer into Index'ed Buffer
8486
            }   //  B2IB:   store from Buffer into Index'ed Buffer
8487
 
8487
 
8488
            Method (FB2P)
8488
            Method (FB2P)
8489
            {   //  FB2P:   store from Field Buffer into Index'ed Package
8489
            {   //  FB2P:   store from Field Buffer into Index'ed Package
8490
                Name (DEST, Package (2) {})
8490
                Name (DEST, Package (2) {})
8491
 
8491
 
8492
                //  initialize memory using 32-bit field elements
8492
                //  initialize memory using 32-bit field elements
8493
                Store (0x01234567, \_SB.MEM.SMD0)
8493
                Store (0x01234567, \_SB.MEM.SMD0)
8494
                Store (0x89ABCDEF, \_SB.MEM.SMD1)
8494
                Store (0x89ABCDEF, \_SB.MEM.SMD1)
8495
                Store (0xFEDCBA98, \_SB.MEM.SMD2)
8495
                Store (0xFEDCBA98, \_SB.MEM.SMD2)
8496
                Store (0x76543210, \_SB.MEM.SMD3)
8496
                Store (0x76543210, \_SB.MEM.SMD3)
8497
 
8497
 
8498
                //  move greater than 64-bit buffers into DEST package
8498
                //  move greater than 64-bit buffers into DEST package
8499
                Store (\_SB.MEM.SME0, Index (DEST, 0))
8499
                Store (\_SB.MEM.SME0, Index (DEST, 0))
8500
                Store (\_SB.MEM.SME1, Index (DEST, 1))
8500
                Store (\_SB.MEM.SME1, Index (DEST, 1))
8501
 
8501
 
8502
                //  validate DEST contents
8502
                //  validate DEST contents
8503
                Store (DerefOf (Index (DEST, 0, )), Local0)
8503
                Store (DerefOf (Index (DEST, 0, )), Local0)
8504
                Store (DerefOf (Index (DEST, 1, )), Local1)
8504
                Store (DerefOf (Index (DEST, 1, )), Local1)
8505
 
8505
 
8506
                //  verify Local0 and Local1 are Buffers
8506
                //  verify Local0 and Local1 are Buffers
8507
                Store (ObjectType (Local0), Local2)
8507
                Store (ObjectType (Local0), Local2)
8508
                if (LNotEqual (Local2, 3))  //  Buffer type is 3
8508
                if (LNotEqual (Local2, 3))  //  Buffer type is 3
8509
                {
8509
                {
8510
                    Return (0x11)
8510
                    Return (0x11)
8511
                }
8511
                }
8512
 
8512
 
8513
                Store (ObjectType (Local1), Local3)
8513
                Store (ObjectType (Local1), Local3)
8514
                if (LNotEqual (Local3, 3))  //  Buffer type is 3
8514
                if (LNotEqual (Local3, 3))  //  Buffer type is 3
8515
                {
8515
                {
8516
                    Return (0x12)
8516
                    Return (0x12)
8517
                }
8517
                }
8518
 
8518
 
8519
                //  validate DEST buffer contents
8519
                //  validate DEST buffer contents
8520
                Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 0)), Local4)
8520
                Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 0)), Local4)
8521
                If (LNotEqual (Local4, 0x67))
8521
                If (LNotEqual (Local4, 0x67))
8522
                {
8522
                {
8523
                    Return (0x13)
8523
                    Return (0x13)
8524
                }
8524
                }
8525
 
8525
 
8526
                Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 1)), Local4)
8526
                Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 1)), Local4)
8527
                If (LNotEqual (Local4, 0x45))
8527
                If (LNotEqual (Local4, 0x45))
8528
                {
8528
                {
8529
                    Return (0x14)
8529
                    Return (0x14)
8530
                }
8530
                }
8531
 
8531
 
8532
                Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 4)), Local4)
8532
                Store (DerefOf (Index (DerefOf (Index (DEST, 0)), 4)), Local4)
8533
                If (LNotEqual (Local4, 0xEF))
8533
                If (LNotEqual (Local4, 0xEF))
8534
                {
8534
                {
8535
                    Return (0x15)
8535
                    Return (0x15)
8536
                }
8536
                }
8537
 
8537
 
8538
                Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 5, )), Local4)
8538
                Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 5, )), Local4)
8539
                If (LNotEqual (Local4, 0xCD))
8539
                If (LNotEqual (Local4, 0xCD))
8540
                {
8540
                {
8541
                    Return (0x16)
8541
                    Return (0x16)
8542
                }
8542
                }
8543
 
8543
 
8544
                Store ("Store(Mem,PkgElement) PASS", Debug)
8544
                Store ("Store(Mem,PkgElement) PASS", Debug)
8545
 
8545
 
8546
 
8546
 
8547
                //  validate changing source \_SB.MEM.SMD* does not impact DEST
8547
                //  validate changing source \_SB.MEM.SMD* does not impact DEST
8548
                Store (0x12345678, \_SB.MEM.SMD0)
8548
                Store (0x12345678, \_SB.MEM.SMD0)
8549
 
8549
 
8550
                Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 0, )), Local5)
8550
                Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 0, )), Local5)
8551
                If (LNotEqual (Local5, 0x67))
8551
                If (LNotEqual (Local5, 0x67))
8552
                {
8552
                {
8553
                    Return (0x21)
8553
                    Return (0x21)
8554
                }
8554
                }
8555
 
8555
 
8556
                Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 1, )), Local5)
8556
                Store (DerefOf (Index (DerefOf (Index (DEST, 0, )), 1, )), Local5)
8557
                If (LNotEqual (Local5, 0x45))
8557
                If (LNotEqual (Local5, 0x45))
8558
                {
8558
                {
8559
                    Return (0x22)
8559
                    Return (0x22)
8560
                }
8560
                }
8561
 
8561
 
8562
                //  validate changing DEST does not impact source \_SB.MEM.SMD*
8562
                //  validate changing DEST does not impact source \_SB.MEM.SMD*
8563
                Store (0x30, Index (DerefOf (Index (DEST, 0)), 0))
8563
                Store (0x30, Index (DerefOf (Index (DEST, 0)), 0))
8564
 
8564
 
8565
                Store (DerefOf(Index (DerefOf (Index (DEST, 0)), 0)), Local5)
8565
                Store (DerefOf(Index (DerefOf (Index (DEST, 0)), 0)), Local5)
8566
                If (LNotEqual (Local5, 0x30))
8566
                If (LNotEqual (Local5, 0x30))
8567
                {
8567
                {
8568
                    Return (0x23)
8568
                    Return (0x23)
8569
                }
8569
                }
8570
 
8570
 
8571
                //
8571
                //
8572
                // This section was modified from the original iPCO code because
8572
                // This section was modified from the original iPCO code because
8573
                //  it attempted to compare two buffers.  This is not allowed until
8573
                //  it attempted to compare two buffers.  This is not allowed until
8574
                //  ACPI v2.0, so the test has been modified to just check the
8574
                //  ACPI v2.0, so the test has been modified to just check the
8575
                //  changed \_SB.MEM.SMD0
8575
                //  changed \_SB.MEM.SMD0
8576
                //
8576
                //
8577
                Store (\_SB.MEM.SMD0, Local5)
8577
                Store (\_SB.MEM.SMD0, Local5)
8578
 
8578
 
8579
                If(LNotEqual(Local5, 0x12345678))
8579
                If(LNotEqual(Local5, 0x12345678))
8580
                {
8580
                {
8581
                    Return (0x24)
8581
                    Return (0x24)
8582
                }
8582
                }
8583
 
8583
 
8584
                Store ("Mem and Pkg independent PASS", Debug)
8584
                Store ("Mem and Pkg independent PASS", Debug)
8585
 
8585
 
8586
 
8586
 
8587
                Return (0)
8587
                Return (0)
8588
            }   //  FB2P:   store from Field Buffer into Index'ed Package
8588
            }   //  FB2P:   store from Field Buffer into Index'ed Package
8589
 
8589
 
8590
            Method (TEST)
8590
            Method (TEST)
8591
            {
8591
            {
8592
                Store ("++++++++ IndexOp2 Test", Debug)
8592
                Store ("++++++++ IndexOp2 Test", Debug)
8593
 
8593
 
8594
                //  store _BIF package return value into Local0
8594
                //  store _BIF package return value into Local0
8595
 
8595
 
8596
                Store (\_SB.BAT1._BIF, Local0)
8596
                Store (\_SB.BAT1._BIF, Local0)
8597
 
8597
 
8598
                //  save Local0 object type value into Local1
8598
                //  save Local0 object type value into Local1
8599
                Store (ObjectType (Local0), Local1)
8599
                Store (ObjectType (Local0), Local1)
8600
 
8600
 
8601
                //  validate Local0 is a Package
8601
                //  validate Local0 is a Package
8602
                If (LNotEqual (Local1, 4))  //  Package type is 4
8602
                If (LNotEqual (Local1, 4))  //  Package type is 4
8603
                {
8603
                {
8604
                    //  failure
8604
                    //  failure
8605
                    Return (2)
8605
                    Return (2)
8606
                }
8606
                }
8607
 
8607
 
8608
                //  validate source and destination buffers are independent of each
8608
                //  validate source and destination buffers are independent of each
8609
                //  of each other (i.e., changing one's contents does not change
8609
                //  of each other (i.e., changing one's contents does not change
8610
                //  other's contents) using B2IB (store from Buffer into Index'ed
8610
                //  other's contents) using B2IB (store from Buffer into Index'ed
8611
                //  Buffer) and FB2P (store from Field Buffer into Index'ed Package)
8611
                //  Buffer) and FB2P (store from Field Buffer into Index'ed Package)
8612
 
8612
 
8613
                //  call B2IB (store from Buffer into Index'ed Buffer)
8613
                //  call B2IB (store from Buffer into Index'ed Buffer)
8614
                Store (B2IB, Local2)    //  Local2 is B2IB return value
8614
                Store (B2IB, Local2)    //  Local2 is B2IB return value
8615
 
8615
 
8616
                //  save Local2 object type value into Local3
8616
                //  save Local2 object type value into Local3
8617
                Store (ObjectType (Local2), Local3)
8617
                Store (ObjectType (Local2), Local3)
8618
 
8618
 
8619
                //  validate Local2 is a Number
8619
                //  validate Local2 is a Number
8620
                If (LNotEqual (Local3, 1))  //  Number type is 1
8620
                If (LNotEqual (Local3, 1))  //  Number type is 1
8621
                {
8621
                {
8622
                    //  failure
8622
                    //  failure
8623
                    Return (4)
8623
                    Return (4)
8624
                }
8624
                }
8625
 
8625
 
8626
                //  zero indicates pass, non-zero is an error code
8626
                //  zero indicates pass, non-zero is an error code
8627
                If (LNotEqual (Local2, 0))
8627
                If (LNotEqual (Local2, 0))
8628
                {
8628
                {
8629
                    //  return B2IB error code
8629
                    //  return B2IB error code
8630
                    Return (Local2)
8630
                    Return (Local2)
8631
                }
8631
                }
8632
 
8632
 
8633
                //  call FB2P (store from Field Buffer into Index'ed Package)
8633
                //  call FB2P (store from Field Buffer into Index'ed Package)
8634
                Store (FB2P, Local2)    //  Local2 is FB2P return value
8634
                Store (FB2P, Local2)    //  Local2 is FB2P return value
8635
 
8635
 
8636
                //  save Local2 object type value into Local3
8636
                //  save Local2 object type value into Local3
8637
                Store (ObjectType (Local2), Local3)
8637
                Store (ObjectType (Local2), Local3)
8638
 
8638
 
8639
                //  validate Local2 is a Number
8639
                //  validate Local2 is a Number
8640
                If (LNotEqual (Local3, 1))  //  Number type is 1
8640
                If (LNotEqual (Local3, 1))  //  Number type is 1
8641
                {
8641
                {
8642
                    //  failure
8642
                    //  failure
8643
                    Return (5)
8643
                    Return (5)
8644
                }
8644
                }
8645
 
8645
 
8646
                //  zero indicates pass, non-zero is an error code
8646
                //  zero indicates pass, non-zero is an error code
8647
                If (LNotEqual (Local2, 0))
8647
                If (LNotEqual (Local2, 0))
8648
                {
8648
                {
8649
                    //  return FB2P error code
8649
                    //  return FB2P error code
8650
                    Return (Local2)
8650
                    Return (Local2)
8651
                }
8651
                }
8652
 
8652
 
8653
 
8653
 
8654
                Return (0)
8654
                Return (0)
8655
            }   //  TEST
8655
            }   //  TEST
8656
        }   //  IDX2:   Test device name
8656
        }   //  IDX2:   Test device name
8657
    }   //  _SB system bus
8657
    }   //  _SB system bus
8658
 
8658
 
8659
//
8659
//
8660
// test SizeOf.asl
8660
// test SizeOf.asl
8661
//
8661
//
8662
//  Test for SizeOf
8662
//  Test for SizeOf
8663
//      test cases include following SizeOf arguments:
8663
//      test cases include following SizeOf arguments:
8664
//          buffer, buffer field;
8664
//          buffer, buffer field;
8665
//          control method argument, control method local variable;
8665
//          control method argument, control method local variable;
8666
//          control method return values;
8666
//          control method return values;
8667
//          direct string, string;
8667
//          direct string, string;
8668
//          package;
8668
//          package;
8669
//          buffer, package, and string package elements
8669
//          buffer, package, and string package elements
8670
//
8670
//
8671
// MTL NOTE: This test has been modified to remove any SizeOf(Index(Buff,...
8671
// MTL NOTE: This test has been modified to remove any SizeOf(Index(Buff,...
8672
//  calls because it is not legal to perform a SizeOf operation on a Buffer Field.
8672
//  calls because it is not legal to perform a SizeOf operation on a Buffer Field.
8673
//  This test has also been extended to test additional Package element sizes.
8673
//  This test has also been extended to test additional Package element sizes.
8674
//
8674
//
8675
    Device (SIZO)
8675
    Device (SIZO)
8676
    {
8676
    {
8677
        //  SAR0 control method validates SizeOf(Arg)
8677
        //  SAR0 control method validates SizeOf(Arg)
8678
        //      SAR0 should only be called by SARG
8678
        //      SAR0 should only be called by SARG
8679
        Method (SAR0, 2)
8679
        Method (SAR0, 2)
8680
        //  Arg0    object to determine size of
8680
        //  Arg0    object to determine size of
8681
        //  Arg1    expected Arg length
8681
        //  Arg1    expected Arg length
8682
        {   //  SAR0:   SizeOf(Arg) test control method
8682
        {   //  SAR0:   SizeOf(Arg) test control method
8683
            //  Local0  Arg0 length
8683
            //  Local0  Arg0 length
8684
            //  Local1  Local0 object type
8684
            //  Local1  Local0 object type
8685
 
8685
 
8686
            //  Store first string size (Arg0) into Local7
8686
            //  Store first string size (Arg0) into Local7
8687
            Store (SizeOf (Arg0), Local0)
8687
            Store (SizeOf (Arg0), Local0)
8688
 
8688
 
8689
            //  save Local0 object type value into Local1
8689
            //  save Local0 object type value into Local1
8690
            Store (ObjectType (Local0), Local1)
8690
            Store (ObjectType (Local0), Local1)
8691
 
8691
 
8692
            //  validate Local0 is a Number
8692
            //  validate Local0 is a Number
8693
            If (LNotEqual (Local1, 1))      //  Number type is 1
8693
            If (LNotEqual (Local1, 1))      //  Number type is 1
8694
                {   Return (0x21)   }
8694
                {   Return (0x21)   }
8695
 
8695
 
8696
            //  If strings are not of equal size, return error code
8696
            //  If strings are not of equal size, return error code
8697
            If (LNotEqual (Local0, Arg1))
8697
            If (LNotEqual (Local0, Arg1))
8698
                {   Return (0x22)   }
8698
                {   Return (0x22)   }
8699
 
8699
 
8700
            Return (0)
8700
            Return (0)
8701
        }   //  SAR0:   SizeOf(Arg) test control method
8701
        }   //  SAR0:   SizeOf(Arg) test control method
8702
 
8702
 
8703
        Method (SARG)
8703
        Method (SARG)
8704
        {   //  SARG:   SizeOf(Arg) test control method
8704
        {   //  SARG:   SizeOf(Arg) test control method
8705
            Name (BUFR, Buffer (12) {}) //  uninitialized Buffer
8705
            Name (BUFR, Buffer (12) {}) //  uninitialized Buffer
8706
            Name (BUF1, Buffer() {0x01, 0x02, 0x03, 0x04, 0x05})
8706
            Name (BUF1, Buffer() {0x01, 0x02, 0x03, 0x04, 0x05})
8707
            Name (PKG0, Package (4) {}) //  uninitialized Package
8707
            Name (PKG0, Package (4) {}) //  uninitialized Package
8708
            Name (STR0, "String")
8708
            Name (STR0, "String")
8709
            Name (PKG1, Package (4)
8709
            Name (PKG1, Package (4)
8710
            {
8710
            {
8711
                BUFR,
8711
                BUFR,
8712
                "String2",
8712
                "String2",
8713
                STR0,
8713
                STR0,
8714
                PKG0
8714
                PKG0
8715
            })  //  PKG1
8715
            })  //  PKG1
8716
 
8716
 
8717
            Name (PKG2, Package (4)
8717
            Name (PKG2, Package (4)
8718
            {
8718
            {
8719
                Buffer (15) {},
8719
                Buffer (15) {},
8720
                "String 1",
8720
                "String 1",
8721
                Package (2) {}
8721
                Package (2) {}
8722
            })  //  PKG2
8722
            })  //  PKG2
8723
 
8723
 
8724
            //  Namespace entry buffer reference
8724
            //  Namespace entry buffer reference
8725
            Store (SAR0 (BUFR, 12), Local0)
8725
            Store (SAR0 (BUFR, 12), Local0)
8726
 
8726
 
8727
            //  save Local0 object type value into Local1
8727
            //  save Local0 object type value into Local1
8728
            Store (ObjectType (Local0), Local1)
8728
            Store (ObjectType (Local0), Local1)
8729
 
8729
 
8730
            //  validate Local0 is a Number
8730
            //  validate Local0 is a Number
8731
            If (LNotEqual (Local1, 1))      //  Number type is 1
8731
            If (LNotEqual (Local1, 1))      //  Number type is 1
8732
            {
8732
            {
8733
                Return (0x23)
8733
                Return (0x23)
8734
            }
8734
            }
8735
 
8735
 
8736
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8736
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8737
            {
8737
            {
8738
                Return (Local0)
8738
                Return (Local0)
8739
            }
8739
            }
8740
 
8740
 
8741
            Store ("SizeOf(Arg=BUFR) PASS", Debug)
8741
            Store ("SizeOf(Arg=BUFR) PASS", Debug)
8742
 
8742
 
8743
 
8743
 
8744
            //  Namespace entry package reference
8744
            //  Namespace entry package reference
8745
            Store (SAR0 (PKG0, 4), Local0)
8745
            Store (SAR0 (PKG0, 4), Local0)
8746
 
8746
 
8747
            //  save Local0 object type value into Local1
8747
            //  save Local0 object type value into Local1
8748
            Store (ObjectType (Local0), Local1)
8748
            Store (ObjectType (Local0), Local1)
8749
 
8749
 
8750
            //  validate Local0 is a Number
8750
            //  validate Local0 is a Number
8751
            If (LNotEqual (Local1, 1))      //  Number type is 1
8751
            If (LNotEqual (Local1, 1))      //  Number type is 1
8752
            {
8752
            {
8753
                Return (0x24)
8753
                Return (0x24)
8754
            }
8754
            }
8755
 
8755
 
8756
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8756
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8757
            {
8757
            {
8758
                Return (Local0)
8758
                Return (Local0)
8759
            }
8759
            }
8760
 
8760
 
8761
            Store ("SizeOf(Arg=PKG0) PASS", Debug)
8761
            Store ("SizeOf(Arg=PKG0) PASS", Debug)
8762
 
8762
 
8763
 
8763
 
8764
            //  Namespace entry string reference
8764
            //  Namespace entry string reference
8765
            Store (SAR0 (STR0, 6), Local0)
8765
            Store (SAR0 (STR0, 6), Local0)
8766
 
8766
 
8767
            //  save Local0 object type value into Local1
8767
            //  save Local0 object type value into Local1
8768
            Store (ObjectType (Local0), Local1)
8768
            Store (ObjectType (Local0), Local1)
8769
 
8769
 
8770
            //  validate Local0 is a Number
8770
            //  validate Local0 is a Number
8771
            If (LNotEqual (Local1, 1))      //  Number type is 1
8771
            If (LNotEqual (Local1, 1))      //  Number type is 1
8772
            {
8772
            {
8773
                Return (0x25)
8773
                Return (0x25)
8774
            }
8774
            }
8775
 
8775
 
8776
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8776
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8777
            {
8777
            {
8778
                Return (Local0)
8778
                Return (Local0)
8779
            }
8779
            }
8780
 
8780
 
8781
            Store ("SizeOf(Arg=STR0) PASS", Debug)
8781
            Store ("SizeOf(Arg=STR0) PASS", Debug)
8782
 
8782
 
8783
 
8783
 
8784
            //  direct string reference
8784
            //  direct string reference
8785
            Store (SAR0 ("String", 6), Local0)
8785
            Store (SAR0 ("String", 6), Local0)
8786
 
8786
 
8787
            //  save Local0 object type value into Local1
8787
            //  save Local0 object type value into Local1
8788
            Store (ObjectType (Local0), Local1)
8788
            Store (ObjectType (Local0), Local1)
8789
 
8789
 
8790
            //  validate Local0 is a Number
8790
            //  validate Local0 is a Number
8791
            If (LNotEqual (Local1, 1))      //  Number type is 1
8791
            If (LNotEqual (Local1, 1))      //  Number type is 1
8792
            {
8792
            {
8793
                Return (0x26)
8793
                Return (0x26)
8794
            }
8794
            }
8795
 
8795
 
8796
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8796
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8797
            {
8797
            {
8798
                Return (Local0)
8798
                Return (Local0)
8799
            }
8799
            }
8800
 
8800
 
8801
            Store ("SizeOf(Arg=String) PASS", Debug)
8801
            Store ("SizeOf(Arg=String) PASS", Debug)
8802
 
8802
 
8803
            Store (0x55, Index (BUF1, 2))
8803
            Store (0x55, Index (BUF1, 2))
8804
 
8804
 
8805
            /****************************************************
8805
            /****************************************************
8806
            //
8806
            //
8807
            // This section is commented because it is illegal to
8807
            // This section is commented because it is illegal to
8808
            //  perform a SizeOf operation on a Buffer Field
8808
            //  perform a SizeOf operation on a Buffer Field
8809
            //
8809
            //
8810
            //  Namespace BufferField reference
8810
            //  Namespace BufferField reference
8811
            Store (SAR0 (Index (BUFR, 2, ), 10), Local0)
8811
            Store (SAR0 (Index (BUFR, 2, ), 10), Local0)
8812
 
8812
 
8813
            //  save Local0 object type value into Local1
8813
            //  save Local0 object type value into Local1
8814
            Store (ObjectType (Local0), Local1)
8814
            Store (ObjectType (Local0), Local1)
8815
 
8815
 
8816
            //  validate Local0 is a Number
8816
            //  validate Local0 is a Number
8817
            If (LNotEqual (Local1, 1))      //  Number type is 1
8817
            If (LNotEqual (Local1, 1))      //  Number type is 1
8818
                {   Return (0x27)   }
8818
                {   Return (0x27)   }
8819
 
8819
 
8820
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8820
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8821
                {   Return (Local0) }
8821
                {   Return (Local0) }
8822
 
8822
 
8823
            Store ("SizeOf(Arg=BufferField) PASS", Debug)
8823
            Store ("SizeOf(Arg=BufferField) PASS", Debug)
8824
            ****************************************************/
8824
            ****************************************************/
8825
 
8825
 
8826
            //  Namespace BufferPackageElement reference
8826
            //  Namespace BufferPackageElement reference
8827
            //
8827
            //
8828
            Store (SAR0 (Index(PKG1, 0), 12), Local0)
8828
            Store (SAR0 (Index(PKG1, 0), 12), Local0)
8829
 
8829
 
8830
            //  save Local0 object type value into Local1
8830
            //  save Local0 object type value into Local1
8831
            Store (ObjectType (Local0), Local1)
8831
            Store (ObjectType (Local0), Local1)
8832
 
8832
 
8833
            //  validate Local0 is a Number
8833
            //  validate Local0 is a Number
8834
            If (LNotEqual (Local1, 1))      //  Number type is 1
8834
            If (LNotEqual (Local1, 1))      //  Number type is 1
8835
            {
8835
            {
8836
                Return (0x28)
8836
                Return (0x28)
8837
            }
8837
            }
8838
 
8838
 
8839
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8839
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8840
            {
8840
            {
8841
                Return (Local0)
8841
                Return (Local0)
8842
            }
8842
            }
8843
 
8843
 
8844
            Store ("SizeOf(Arg=PackageBuffer NTE Reference Element) PASS", Debug)
8844
            Store ("SizeOf(Arg=PackageBuffer NTE Reference Element) PASS", Debug)
8845
 
8845
 
8846
 
8846
 
8847
            //  Namespace StringPackageElement reference
8847
            //  Namespace StringPackageElement reference
8848
            Store (SAR0 (Index (PKG1, 1, ), 7), Local0)
8848
            Store (SAR0 (Index (PKG1, 1, ), 7), Local0)
8849
 
8849
 
8850
            //  save Local0 object type value into Local1
8850
            //  save Local0 object type value into Local1
8851
            Store (ObjectType (Local0), Local1)
8851
            Store (ObjectType (Local0), Local1)
8852
 
8852
 
8853
            //  validate Local0 is a Number
8853
            //  validate Local0 is a Number
8854
            If (LNotEqual (Local1, 1))      //  Number type is 1
8854
            If (LNotEqual (Local1, 1))      //  Number type is 1
8855
            {
8855
            {
8856
                Return (0x29)
8856
                Return (0x29)
8857
            }
8857
            }
8858
 
8858
 
8859
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8859
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8860
            {
8860
            {
8861
                Return (Local0)
8861
                Return (Local0)
8862
            }
8862
            }
8863
 
8863
 
8864
            Store ("SizeOf(Arg=Package String Element) PASS", Debug)
8864
            Store ("SizeOf(Arg=Package String Element) PASS", Debug)
8865
 
8865
 
8866
 
8866
 
8867
            //  Namespace StringPackageElement reference
8867
            //  Namespace StringPackageElement reference
8868
            Store (SAR0 (Index (PKG1, 2, ), 6), Local0)
8868
            Store (SAR0 (Index (PKG1, 2, ), 6), Local0)
8869
 
8869
 
8870
            //  save Local0 object type value into Local1
8870
            //  save Local0 object type value into Local1
8871
            Store (ObjectType (Local0), Local1)
8871
            Store (ObjectType (Local0), Local1)
8872
 
8872
 
8873
            //  validate Local0 is a Number
8873
            //  validate Local0 is a Number
8874
            If (LNotEqual (Local1, 1))      //  Number type is 1
8874
            If (LNotEqual (Local1, 1))      //  Number type is 1
8875
            {
8875
            {
8876
                Return (0x2A)
8876
                Return (0x2A)
8877
            }
8877
            }
8878
 
8878
 
8879
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8879
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8880
            {
8880
            {
8881
                Return (Local0)
8881
                Return (Local0)
8882
            }
8882
            }
8883
 
8883
 
8884
            Store ("SizeOf(Arg=Package String NTE Reference Element) PASS", Debug)
8884
            Store ("SizeOf(Arg=Package String NTE Reference Element) PASS", Debug)
8885
 
8885
 
8886
 
8886
 
8887
            //  Namespace PackagePackageElement reference
8887
            //  Namespace PackagePackageElement reference
8888
            Store (SAR0 (Index (PKG1, 3, ), 4), Local0)
8888
            Store (SAR0 (Index (PKG1, 3, ), 4), Local0)
8889
 
8889
 
8890
            //  save Local0 object type value into Local1
8890
            //  save Local0 object type value into Local1
8891
            Store (ObjectType (Local0), Local1)
8891
            Store (ObjectType (Local0), Local1)
8892
 
8892
 
8893
            //  validate Local0 is a Number
8893
            //  validate Local0 is a Number
8894
            If (LNotEqual (Local1, 1))      //  Number type is 1
8894
            If (LNotEqual (Local1, 1))      //  Number type is 1
8895
            {
8895
            {
8896
                Return (0x2B)
8896
                Return (0x2B)
8897
            }
8897
            }
8898
 
8898
 
8899
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8899
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8900
            {
8900
            {
8901
                Return (Local0)
8901
                Return (Local0)
8902
            }
8902
            }
8903
 
8903
 
8904
            Store ("SizeOf(Arg=Package Package NTE Reference Element) PASS", Debug)
8904
            Store ("SizeOf(Arg=Package Package NTE Reference Element) PASS", Debug)
8905
 
8905
 
8906
            // Package Buffer Element
8906
            // Package Buffer Element
8907
            Store (SAR0 (Index (PKG2, 0), 15), Local0)
8907
            Store (SAR0 (Index (PKG2, 0), 15), Local0)
8908
 
8908
 
8909
            //  save Local0 object type value into Local1
8909
            //  save Local0 object type value into Local1
8910
            Store (ObjectType (Local0), Local1)
8910
            Store (ObjectType (Local0), Local1)
8911
 
8911
 
8912
            //  validate Local0 is a Number
8912
            //  validate Local0 is a Number
8913
            If (LNotEqual (Local1, 1))      //  Number type is 1
8913
            If (LNotEqual (Local1, 1))      //  Number type is 1
8914
            {
8914
            {
8915
                Return (0x2B)
8915
                Return (0x2B)
8916
            }
8916
            }
8917
 
8917
 
8918
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8918
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8919
            {
8919
            {
8920
                Return (Local0)
8920
                Return (Local0)
8921
            }
8921
            }
8922
 
8922
 
8923
            Store ("SizeOf(Arg=Package Buffer Element) PASS", Debug)
8923
            Store ("SizeOf(Arg=Package Buffer Element) PASS", Debug)
8924
 
8924
 
8925
            // Package String Element
8925
            // Package String Element
8926
            Store (SAR0 (Index (PKG2, 1), 8), Local0)
8926
            Store (SAR0 (Index (PKG2, 1), 8), Local0)
8927
 
8927
 
8928
            //  save Local0 object type value into Local1
8928
            //  save Local0 object type value into Local1
8929
            Store (ObjectType (Local0), Local1)
8929
            Store (ObjectType (Local0), Local1)
8930
 
8930
 
8931
            //  validate Local0 is a Number
8931
            //  validate Local0 is a Number
8932
            If (LNotEqual (Local1, 1))      //  Number type is 1
8932
            If (LNotEqual (Local1, 1))      //  Number type is 1
8933
            {
8933
            {
8934
                Return (0x2B)
8934
                Return (0x2B)
8935
            }
8935
            }
8936
 
8936
 
8937
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8937
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8938
            {
8938
            {
8939
                Return (Local0)
8939
                Return (Local0)
8940
            }
8940
            }
8941
 
8941
 
8942
            Store ("SizeOf(Arg=Package String Element) PASS", Debug)
8942
            Store ("SizeOf(Arg=Package String Element) PASS", Debug)
8943
 
8943
 
8944
            // Package Package Element
8944
            // Package Package Element
8945
            Store (SAR0 (Index (PKG2, 2), 2), Local0)
8945
            Store (SAR0 (Index (PKG2, 2), 2), Local0)
8946
 
8946
 
8947
            //  save Local0 object type value into Local1
8947
            //  save Local0 object type value into Local1
8948
            Store (ObjectType (Local0), Local1)
8948
            Store (ObjectType (Local0), Local1)
8949
 
8949
 
8950
            //  validate Local0 is a Number
8950
            //  validate Local0 is a Number
8951
            If (LNotEqual (Local1, 1))      //  Number type is 1
8951
            If (LNotEqual (Local1, 1))      //  Number type is 1
8952
            {
8952
            {
8953
                Return (0x2B)
8953
                Return (0x2B)
8954
            }
8954
            }
8955
 
8955
 
8956
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8956
            If (LNotEqual (Local0, 0))      //  Local0 is SAR0 return error code
8957
            {
8957
            {
8958
                Return (Local0)
8958
                Return (Local0)
8959
            }
8959
            }
8960
 
8960
 
8961
            Store ("SizeOf(Arg=Package Package Element) PASS", Debug)
8961
            Store ("SizeOf(Arg=Package Package Element) PASS", Debug)
8962
 
8962
 
8963
            Store ("SizeOf(Arg) PASS", Debug)
8963
            Store ("SizeOf(Arg) PASS", Debug)
8964
 
8964
 
8965
            Return (0)
8965
            Return (0)
8966
        }   //  SARG:   SizeOf(Arg) test control method
8966
        }   //  SARG:   SizeOf(Arg) test control method
8967
 
8967
 
8968
        Method (SBUF)
8968
        Method (SBUF)
8969
        {   //  SBUF:   SizeOf(Buffer) test control method
8969
        {   //  SBUF:   SizeOf(Buffer) test control method
8970
            Name (BUFR, Buffer (12) {})
8970
            Name (BUFR, Buffer (12) {})
8971
 
8971
 
8972
            //  store size of BUFR buffer into Local0
8972
            //  store size of BUFR buffer into Local0
8973
            Store (SizeOf (BUFR), Local0)
8973
            Store (SizeOf (BUFR), Local0)
8974
 
8974
 
8975
            //  save Local0 object type value into Local1
8975
            //  save Local0 object type value into Local1
8976
            Store (ObjectType (Local0), Local1)
8976
            Store (ObjectType (Local0), Local1)
8977
 
8977
 
8978
            //  validate Local0 is a Number
8978
            //  validate Local0 is a Number
8979
            If (LNotEqual (Local1, 1))      //  Number type is 1
8979
            If (LNotEqual (Local1, 1))      //  Number type is 1
8980
            {
8980
            {
8981
                Return (0x31)
8981
                Return (0x31)
8982
            }
8982
            }
8983
 
8983
 
8984
            If (LNotEqual (Local0, 12))     //  BUFR size is 12
8984
            If (LNotEqual (Local0, 12))     //  BUFR size is 12
8985
            {
8985
            {
8986
                Return (0x32)
8986
                Return (0x32)
8987
            }
8987
            }
8988
 
8988
 
8989
            Store ("SizeOf(BUFR) PASS", Debug)
8989
            Store ("SizeOf(BUFR) PASS", Debug)
8990
 
8990
 
8991
            Return (0)
8991
            Return (0)
8992
        }   //  SBUF:   SizeOf(Buffer) test control method
8992
        }   //  SBUF:   SizeOf(Buffer) test control method
8993
 
8993
 
8994
 
8994
 
8995
        /****************************************************
8995
        /****************************************************
8996
        //
8996
        //
8997
        // This section is commented because it is illegal to
8997
        // This section is commented because it is illegal to
8998
        //  perform a SizeOf operation on a Buffer Field
8998
        //  perform a SizeOf operation on a Buffer Field
8999
        //
8999
        //
9000
        Method (SIND)
9000
        Method (SIND)
9001
        {   //  SIND:   SizeOf(Index(,,)) test control method
9001
        {   //  SIND:   SizeOf(Index(,,)) test control method
9002
            Name (BUFR, Buffer (12) {})
9002
            Name (BUFR, Buffer (12) {})
9003
 
9003
 
9004
            //  store size of Index(BUFR,2,) buffer into Local0
9004
            //  store size of Index(BUFR,2,) buffer into Local0
9005
            Store (SizeOf (Index (BUFR, 2, )), Local0)
9005
            Store (SizeOf (Index (BUFR, 2, )), Local0)
9006
 
9006
 
9007
            //  save Local0 object type value into Local1
9007
            //  save Local0 object type value into Local1
9008
            Store (ObjectType (Local0), Local1)
9008
            Store (ObjectType (Local0), Local1)
9009
 
9009
 
9010
            //  validate Local0 is a Number
9010
            //  validate Local0 is a Number
9011
            If (LNotEqual (Local1, 1))      //  Number type is 1
9011
            If (LNotEqual (Local1, 1))      //  Number type is 1
9012
            {
9012
            {
9013
                Return (0x41)
9013
                Return (0x41)
9014
            }
9014
            }
9015
 
9015
 
9016
            If (LNotEqual (Local0, 10))     //  12 - 2 = 10
9016
            If (LNotEqual (Local0, 10))     //  12 - 2 = 10
9017
            {
9017
            {
9018
                Return (0x42)
9018
                Return (0x42)
9019
            }
9019
            }
9020
 
9020
 
9021
            Store ("SizeOf(Index(BUFR,,)) PASS", Debug)
9021
            Store ("SizeOf(Index(BUFR,,)) PASS", Debug)
9022
 
9022
 
9023
            //  TBD:    strings and packages
9023
            //  TBD:    strings and packages
9024
 
9024
 
9025
            Return (0)
9025
            Return (0)
9026
        }   //  SIND:   SizeOf(Index(,,)) test control method
9026
        }   //  SIND:   SizeOf(Index(,,)) test control method
9027
        ****************************************************/
9027
        ****************************************************/
9028
 
9028
 
9029
        Method (SLOC)
9029
        Method (SLOC)
9030
        {   //  SLOC:   SizeOf(Local) test control method
9030
        {   //  SLOC:   SizeOf(Local) test control method
9031
            Name (BUFR, Buffer (12) {}) //  uninitialized Buffer
9031
            Name (BUFR, Buffer (12) {}) //  uninitialized Buffer
9032
            Name (STR0, "String")
9032
            Name (STR0, "String")
9033
            Name (PKG0, Package (4) {}) //  uninitialized Package
9033
            Name (PKG0, Package (4) {}) //  uninitialized Package
9034
 
9034
 
9035
 
9035
 
9036
            //  store BUFR Buffer into Local2
9036
            //  store BUFR Buffer into Local2
9037
            Store (BUFR, Local2)
9037
            Store (BUFR, Local2)
9038
 
9038
 
9039
            //  store size of BUFR buffer into Local0
9039
            //  store size of BUFR buffer into Local0
9040
            Store (SizeOf (Local2), Local0)
9040
            Store (SizeOf (Local2), Local0)
9041
 
9041
 
9042
            //  save Local0 object type value into Local1
9042
            //  save Local0 object type value into Local1
9043
            Store (ObjectType (Local0), Local1)
9043
            Store (ObjectType (Local0), Local1)
9044
 
9044
 
9045
            //  validate Local0 is a Number
9045
            //  validate Local0 is a Number
9046
            If (LNotEqual (Local1, 1))      //  Number type is 1
9046
            If (LNotEqual (Local1, 1))      //  Number type is 1
9047
            {
9047
            {
9048
                Return (0x51)
9048
                Return (0x51)
9049
            }
9049
            }
9050
 
9050
 
9051
            If (LNotEqual (Local0, 12)) //  BUFR size is 12
9051
            If (LNotEqual (Local0, 12)) //  BUFR size is 12
9052
            {
9052
            {
9053
                Return (0x52)
9053
                Return (0x52)
9054
            }
9054
            }
9055
 
9055
 
9056
            Store ("SizeOf(Local2=Buffer) PASS", Debug)
9056
            Store ("SizeOf(Local2=Buffer) PASS", Debug)
9057
 
9057
 
9058
 
9058
 
9059
            //  store STR0 string into Local2
9059
            //  store STR0 string into Local2
9060
            Store (STR0, Local2)
9060
            Store (STR0, Local2)
9061
 
9061
 
9062
            //  store size of STR0 buffer into Local0
9062
            //  store size of STR0 buffer into Local0
9063
            Store (SizeOf (Local2), Local0)
9063
            Store (SizeOf (Local2), Local0)
9064
 
9064
 
9065
            //  save Local0 object type value into Local1
9065
            //  save Local0 object type value into Local1
9066
            Store (ObjectType (Local0), Local1)
9066
            Store (ObjectType (Local0), Local1)
9067
 
9067
 
9068
            //  validate Local0 is a Number
9068
            //  validate Local0 is a Number
9069
            If (LNotEqual (Local1, 1))      //  Number type is 1
9069
            If (LNotEqual (Local1, 1))      //  Number type is 1
9070
            {
9070
            {
9071
                Return (0x53)
9071
                Return (0x53)
9072
            }
9072
            }
9073
 
9073
 
9074
            If (LNotEqual (Local0, 6))      //  STR0 size is 6
9074
            If (LNotEqual (Local0, 6))      //  STR0 size is 6
9075
            {
9075
            {
9076
                Return (0x54)
9076
                Return (0x54)
9077
            }
9077
            }
9078
 
9078
 
9079
            Store ("SizeOf(Local2=String) PASS", Debug)
9079
            Store ("SizeOf(Local2=String) PASS", Debug)
9080
 
9080
 
9081
 
9081
 
9082
            //  store PKG0 Package into Local2
9082
            //  store PKG0 Package into Local2
9083
            Store (PKG0, Local2)
9083
            Store (PKG0, Local2)
9084
 
9084
 
9085
            //  store size of PKG0 buffer into Local0
9085
            //  store size of PKG0 buffer into Local0
9086
            Store (SizeOf (Local2), Local0)
9086
            Store (SizeOf (Local2), Local0)
9087
 
9087
 
9088
            //  save Local0 object type value into Local1
9088
            //  save Local0 object type value into Local1
9089
            Store (ObjectType (Local0), Local1)
9089
            Store (ObjectType (Local0), Local1)
9090
 
9090
 
9091
            //  validate Local0 is a Number
9091
            //  validate Local0 is a Number
9092
            If (LNotEqual (Local1, 1))      //  Number type is 1
9092
            If (LNotEqual (Local1, 1))      //  Number type is 1
9093
            {
9093
            {
9094
                Return (0x55)
9094
                Return (0x55)
9095
            }
9095
            }
9096
 
9096
 
9097
            If (LNotEqual (Local0, 4))      //  PKG0 size is 4
9097
            If (LNotEqual (Local0, 4))      //  PKG0 size is 4
9098
            {
9098
            {
9099
                Return (0x56)
9099
                Return (0x56)
9100
            }
9100
            }
9101
 
9101
 
9102
            Store ("SizeOf(Local2=Package) PASS", Debug)
9102
            Store ("SizeOf(Local2=Package) PASS", Debug)
9103
 
9103
 
9104
 
9104
 
9105
            Return (0)
9105
            Return (0)
9106
        }   //  SLOC:   SizeOf(Local) test control method
9106
        }   //  SLOC:   SizeOf(Local) test control method
9107
 
9107
 
9108
        Method (TEST)
9108
        Method (TEST)
9109
        {
9109
        {
9110
            Store ("++++++++ SizeOf Test", Debug)
9110
            Store ("++++++++ SizeOf Test", Debug)
9111
 
9111
 
9112
            //  Store current operating system string into Local0
9112
            //  Store current operating system string into Local0
9113
            Store (_OS, Local0)
9113
            Store (_OS, Local0)
9114
 
9114
 
9115
            Store (SizeOf (_OS), Local3)
9115
            Store (SizeOf (_OS), Local3)
9116
 
9116
 
9117
            //  save Local3 object type value into Local4
9117
            //  save Local3 object type value into Local4
9118
            Store (ObjectType (Local3), Local4)
9118
            Store (ObjectType (Local3), Local4)
9119
 
9119
 
9120
            //  validate Local3 is a Number
9120
            //  validate Local3 is a Number
9121
            If (LNotEqual (Local4, 1))  //  Number type is 1
9121
            If (LNotEqual (Local4, 1))  //  Number type is 1
9122
            {
9122
            {
9123
                //  failure
9123
                //  failure
9124
                Return (0x61)
9124
                Return (0x61)
9125
            }
9125
            }
9126
 
9126
 
9127
            //  Store current operating system string into Local0
9127
            //  Store current operating system string into Local0
9128
            //  This verifies above SizeOf(_OS) did not corrupt ACPI namespace
9128
            //  This verifies above SizeOf(_OS) did not corrupt ACPI namespace
9129
            Store (_OS, Local0)
9129
            Store (_OS, Local0)
9130
 
9130
 
9131
            //  Store SARG [Validate SizeOf(Arg)] return value into Local1
9131
            //  Store SARG [Validate SizeOf(Arg)] return value into Local1
9132
            Store (SARG, Local1)
9132
            Store (SARG, Local1)
9133
 
9133
 
9134
            //  save Local1 object type value into Local2
9134
            //  save Local1 object type value into Local2
9135
            Store (ObjectType (Local1), Local2)
9135
            Store (ObjectType (Local1), Local2)
9136
 
9136
 
9137
            //  validate Local1 is a Number
9137
            //  validate Local1 is a Number
9138
            If (LNotEqual (Local2, 1))  //  Number type is 1
9138
            If (LNotEqual (Local2, 1))  //  Number type is 1
9139
            {
9139
            {
9140
                //  failure
9140
                //  failure
9141
                Return (0x62)
9141
                Return (0x62)
9142
            }
9142
            }
9143
 
9143
 
9144
            //  zero indicates pass, non-zero is an error code
9144
            //  zero indicates pass, non-zero is an error code
9145
            If (LNotEqual (Local1, 0))
9145
            If (LNotEqual (Local1, 0))
9146
            {
9146
            {
9147
                //  return SARG error code
9147
                //  return SARG error code
9148
                Return (Local1)
9148
                Return (Local1)
9149
            }
9149
            }
9150
 
9150
 
9151
 
9151
 
9152
            //  Store SBUF [Validate SizeOf(Buffer)] return value into Local1
9152
            //  Store SBUF [Validate SizeOf(Buffer)] return value into Local1
9153
            Store (SBUF, Local1)
9153
            Store (SBUF, Local1)
9154
 
9154
 
9155
            //  save Local1 object type value into Local2
9155
            //  save Local1 object type value into Local2
9156
            Store (ObjectType (Local1), Local2)
9156
            Store (ObjectType (Local1), Local2)
9157
 
9157
 
9158
            //  validate Local1 is a Number
9158
            //  validate Local1 is a Number
9159
            If (LNotEqual (Local2, 1))  //  Number type is 1
9159
            If (LNotEqual (Local2, 1))  //  Number type is 1
9160
            {
9160
            {
9161
                //  failure
9161
                //  failure
9162
                Return (0x63)
9162
                Return (0x63)
9163
            }
9163
            }
9164
 
9164
 
9165
            //  zero indicates pass, non-zero is an error code
9165
            //  zero indicates pass, non-zero is an error code
9166
            If (LNotEqual (Local1, 0))
9166
            If (LNotEqual (Local1, 0))
9167
            {
9167
            {
9168
                //  return SBUF error code
9168
                //  return SBUF error code
9169
                Return (Local1)
9169
                Return (Local1)
9170
            }
9170
            }
9171
 
9171
 
9172
            /****************************************************
9172
            /****************************************************
9173
            //
9173
            //
9174
            // This section is commented because it is illegal to
9174
            // This section is commented because it is illegal to
9175
            //  perform a SizeOf operation on a Buffer Field
9175
            //  perform a SizeOf operation on a Buffer Field
9176
            //
9176
            //
9177
            //  Store SIND [verify SizeOf(Index(,,))] return value into Local1
9177
            //  Store SIND [verify SizeOf(Index(,,))] return value into Local1
9178
            Store (SIND, Local1)
9178
            Store (SIND, Local1)
9179
 
9179
 
9180
            //  save Local1 object type value into Local2
9180
            //  save Local1 object type value into Local2
9181
            Store (ObjectType (Local1), Local2)
9181
            Store (ObjectType (Local1), Local2)
9182
 
9182
 
9183
            //  validate Local1 is a Number
9183
            //  validate Local1 is a Number
9184
            If (LNotEqual (Local2, 1))  //  Number type is 1
9184
            If (LNotEqual (Local2, 1))  //  Number type is 1
9185
            {
9185
            {
9186
                //  failure
9186
                //  failure
9187
                Return (0x64)
9187
                Return (0x64)
9188
            }
9188
            }
9189
 
9189
 
9190
            //  zero indicates pass, non-zero is an error code
9190
            //  zero indicates pass, non-zero is an error code
9191
            If (LNotEqual (Local1, 0))
9191
            If (LNotEqual (Local1, 0))
9192
            {
9192
            {
9193
                //  return SARG error code
9193
                //  return SARG error code
9194
                Return (Local1)
9194
                Return (Local1)
9195
            }
9195
            }
9196
            ****************************************************/
9196
            ****************************************************/
9197
 
9197
 
9198
            //  Store SLOC [verify SizeOf(Local)] return value into Local1
9198
            //  Store SLOC [verify SizeOf(Local)] return value into Local1
9199
            Store (SLOC, Local1)
9199
            Store (SLOC, Local1)
9200
 
9200
 
9201
            //  save Local1 object type value into Local2
9201
            //  save Local1 object type value into Local2
9202
            Store (ObjectType (Local1), Local2)
9202
            Store (ObjectType (Local1), Local2)
9203
 
9203
 
9204
            //  validate Local1 is a Number
9204
            //  validate Local1 is a Number
9205
            If (LNotEqual (Local2, 1))  //  Number type is 1
9205
            If (LNotEqual (Local2, 1))  //  Number type is 1
9206
            {
9206
            {
9207
                //  failure
9207
                //  failure
9208
                Return (0x65)
9208
                Return (0x65)
9209
            }
9209
            }
9210
 
9210
 
9211
            //  zero indicates pass, non-zero is an error code
9211
            //  zero indicates pass, non-zero is an error code
9212
            If (LNotEqual (Local1, 0))
9212
            If (LNotEqual (Local1, 0))
9213
            {
9213
            {
9214
                //  return SLOC error code
9214
                //  return SLOC error code
9215
                Return (Local1)
9215
                Return (Local1)
9216
            }
9216
            }
9217
 
9217
 
9218
 
9218
 
9219
            //  TBD:    SizeOf (METH) -- where METH control method returns
9219
            //  TBD:    SizeOf (METH) -- where METH control method returns
9220
            //              buffer, BufferField, string, package, package element
9220
            //              buffer, BufferField, string, package, package element
9221
 
9221
 
9222
 
9222
 
9223
            Return (0)
9223
            Return (0)
9224
        }   //  TEST
9224
        }   //  TEST
9225
    }   //  SIZO
9225
    }   //  SIZO
9226
 
9226
 
9227
//
9227
//
9228
// test SmiShare.asl
9228
// test SmiShare.asl
9229
//
9229
//
9230
    Scope (\_SB)    //  System Bus
9230
    Scope (\_SB)    //  System Bus
9231
    {   //  _SB system bus
9231
    {   //  _SB system bus
9232
        //  Declare an OpRegion in Memory starting at offset 0x400000 that is 10 bytes long
9232
        //  Declare an OpRegion in Memory starting at offset 0x400000 that is 10 bytes long
9233
        OperationRegion(RAM1, SystemMemory, 0x400000, 0xA)
9233
        OperationRegion(RAM1, SystemMemory, 0x400000, 0xA)
9234
 
9234
 
9235
        Field (RAM1, AnyAcc, NoLock, Preserve)
9235
        Field (RAM1, AnyAcc, NoLock, Preserve)
9236
        {
9236
        {
9237
            BI1T, 1,        // Create some bits in memory to access
9237
            BI1T, 1,        // Create some bits in memory to access
9238
            BI2T, 2,
9238
            BI2T, 2,
9239
            BI3T, 3,
9239
            BI3T, 3,
9240
            LST2, 2
9240
            LST2, 2
9241
        }   //  End Field RAM1
9241
        }   //  End Field RAM1
9242
 
9242
 
9243
        Field (RAM1, WordAcc, NoLock, WriteAsZeros)
9243
        Field (RAM1, WordAcc, NoLock, WriteAsZeros)
9244
        {
9244
        {
9245
            WRD, 16
9245
            WRD, 16
9246
        }   //  End 2nd Field RAM1
9246
        }   //  End 2nd Field RAM1
9247
 
9247
 
9248
        Field (RAM1, ByteAcc, NoLock, WriteAsOnes)
9248
        Field (RAM1, ByteAcc, NoLock, WriteAsOnes)
9249
        {
9249
        {
9250
            BYTE, 8
9250
            BYTE, 8
9251
        }   //  End 3rd Field RAM1
9251
        }   //  End 3rd Field RAM1
9252
 
9252
 
9253
        Field (RAM1, ByteAcc, NoLock, Preserve)
9253
        Field (RAM1, ByteAcc, NoLock, Preserve)
9254
        {
9254
        {
9255
            SMIC, 8,
9255
            SMIC, 8,
9256
            SMID, 8
9256
            SMID, 8
9257
        }
9257
        }
9258
 
9258
 
9259
        Device (MBIT)
9259
        Device (MBIT)
9260
        {
9260
        {
9261
            Method (_INI)
9261
            Method (_INI)
9262
            {
9262
            {
9263
                Store (0, BI1T)
9263
                Store (0, BI1T)
9264
                Store (3, BI2T)
9264
                Store (3, BI2T)
9265
                Store (7, BI3T)
9265
                Store (7, BI3T)
9266
                Store (0, LST2)
9266
                Store (0, LST2)
9267
            }   //  End _INI Method
9267
            }   //  End _INI Method
9268
        }   //  End Device MBIT
9268
        }   //  End Device MBIT
9269
 
9269
 
9270
        Device (MWRD)
9270
        Device (MWRD)
9271
        {
9271
        {
9272
            Method (_INI)
9272
            Method (_INI)
9273
            {
9273
            {
9274
                Store (0, WRD)
9274
                Store (0, WRD)
9275
            }   //  End _INI Method
9275
            }   //  End _INI Method
9276
        }   //  End Device MWRD
9276
        }   //  End Device MWRD
9277
 
9277
 
9278
        Device (MBYT)
9278
        Device (MBYT)
9279
        {
9279
        {
9280
            Method (_INI)
9280
            Method (_INI)
9281
            {
9281
            {
9282
                Store (0, BYTE)
9282
                Store (0, BYTE)
9283
                Store (0xC, SMIC)
9283
                Store (0xC, SMIC)
9284
                Store (0xD, SMID)
9284
                Store (0xD, SMID)
9285
            }   //  End _INI Method
9285
            }   //  End _INI Method
9286
        }   //  End Device MBYT
9286
        }   //  End Device MBYT
9287
 
9287
 
9288
    /*
9288
    /*
9289
        //  Declare an OpRegion in Memory starting at offset 0x400000 that is 10 bytes long
9289
        //  Declare an OpRegion in Memory starting at offset 0x400000 that is 10 bytes long
9290
        OperationRegion(\RAM1, SystemMemory, 0x400000, 0xA)
9290
        OperationRegion(\RAM1, SystemMemory, 0x400000, 0xA)
9291
 
9291
 
9292
        Field (\RAM1, AnyAcc, NoLock, Preserve)
9292
        Field (\RAM1, AnyAcc, NoLock, Preserve)
9293
        {
9293
        {
9294
            BI1T, 1,        // Create some bits in memory to access
9294
            BI1T, 1,        // Create some bits in memory to access
9295
            BI2T, 2,
9295
            BI2T, 2,
9296
            BI3T, 3,
9296
            BI3T, 3,
9297
            LST2, 2
9297
            LST2, 2
9298
        }   //  End Field RAM1
9298
        }   //  End Field RAM1
9299
 
9299
 
9300
        Field (\RAM1, WordAcc, NoLock, WriteAsZeros)
9300
        Field (\RAM1, WordAcc, NoLock, WriteAsZeros)
9301
        {
9301
        {
9302
            WRD, 16
9302
            WRD, 16
9303
        }   //  End 2nd Field RAM1
9303
        }   //  End 2nd Field RAM1
9304
 
9304
 
9305
        Field (\RAM1, ByteAcc, NoLock, WriteAsOnes)
9305
        Field (\RAM1, ByteAcc, NoLock, WriteAsOnes)
9306
        {
9306
        {
9307
            BYTE, 8
9307
            BYTE, 8
9308
        }   //  End 3rd Field RAM1
9308
        }   //  End 3rd Field RAM1
9309
 
9309
 
9310
        Field (\RAM1, ByteAcc, NoLock, Preserve)
9310
        Field (\RAM1, ByteAcc, NoLock, Preserve)
9311
        {
9311
        {
9312
            SMIC, 8,
9312
            SMIC, 8,
9313
            SMID, 8
9313
            SMID, 8
9314
        }
9314
        }
9315
    */
9315
    */
9316
        Method (SMIX)
9316
        Method (SMIX)
9317
        {
9317
        {
9318
            Return (BYTE)
9318
            Return (BYTE)
9319
        }   //  End SMIX
9319
        }   //  End SMIX
9320
 
9320
 
9321
        Method (EVNT)
9321
        Method (EVNT)
9322
        {
9322
        {
9323
            Store (SMIX, Local0)
9323
            Store (SMIX, Local0)
9324
 
9324
 
9325
            If (And (Local0, 0x01))
9325
            If (And (Local0, 0x01))
9326
            {   Notify (\_SB_.SMIS, 0x21)}
9326
            {   Notify (\_SB_.SMIS, 0x21)}
9327
 
9327
 
9328
            If (And (Local0, 0x02))
9328
            If (And (Local0, 0x02))
9329
            {   Notify (\_SB_.SMIS, 0x22)}
9329
            {   Notify (\_SB_.SMIS, 0x22)}
9330
 
9330
 
9331
            If (And (Local0, 0x04))
9331
            If (And (Local0, 0x04))
9332
            {   Notify (\_SB_.SMIS, 0x24)}
9332
            {   Notify (\_SB_.SMIS, 0x24)}
9333
 
9333
 
9334
            If (And (Local0, 0x08))
9334
            If (And (Local0, 0x08))
9335
            {   Notify (\_SB_.SMIS, 0x28)}
9335
            {   Notify (\_SB_.SMIS, 0x28)}
9336
 
9336
 
9337
        }   //  End Method EVNT
9337
        }   //  End Method EVNT
9338
 
9338
 
9339
        Device (SMIS)
9339
        Device (SMIS)
9340
        {
9340
        {
9341
            Method (BINK)
9341
            Method (BINK)
9342
            {
9342
            {
9343
                Store (0, Local0)               //  Zero out Local0
9343
                Store (0, Local0)               //  Zero out Local0
9344
 
9344
 
9345
                If (LNotEqual (SMID, 0xD))
9345
                If (LNotEqual (SMID, 0xD))
9346
                {   Or (0x80, Local0, Local0)}
9346
                {   Or (0x80, Local0, Local0)}
9347
 
9347
 
9348
                If (LNotEqual (SMIC, 0xC))
9348
                If (LNotEqual (SMIC, 0xC))
9349
                {   Or (0x40, Local0, Local0)}
9349
                {   Or (0x40, Local0, Local0)}
9350
 
9350
 
9351
                If (LNotEqual (BYTE, 0))
9351
                If (LNotEqual (BYTE, 0))
9352
                {   Or (0x20, Local0, Local0)}
9352
                {   Or (0x20, Local0, Local0)}
9353
 
9353
 
9354
                If (LNotEqual (WRD, 0))
9354
                If (LNotEqual (WRD, 0))
9355
                {   Or (0x10, Local0, Local0)}
9355
                {   Or (0x10, Local0, Local0)}
9356
 
9356
 
9357
                If (LNotEqual (LST2, 0))
9357
                If (LNotEqual (LST2, 0))
9358
                {   Or (0x8, Local0, Local0)}
9358
                {   Or (0x8, Local0, Local0)}
9359
 
9359
 
9360
                If (LNotEqual (BI3T, 0x7))
9360
                If (LNotEqual (BI3T, 0x7))
9361
                {   Or (0x4, Local0, Local0)}
9361
                {   Or (0x4, Local0, Local0)}
9362
 
9362
 
9363
                If (LNotEqual (BI2T, 0x3))
9363
                If (LNotEqual (BI2T, 0x3))
9364
                {   Or (0x2, Local0, Local0)}
9364
                {   Or (0x2, Local0, Local0)}
9365
 
9365
 
9366
                If (LNotEqual (BI1T, 0))
9366
                If (LNotEqual (BI1T, 0))
9367
                {   Or (0x1, Local0, Local0)}
9367
                {   Or (0x1, Local0, Local0)}
9368
 
9368
 
9369
                Return (Local0)
9369
                Return (Local0)
9370
            }   //  End Method BINK
9370
            }   //  End Method BINK
9371
 
9371
 
9372
            Method (TEST)
9372
            Method (TEST)
9373
            {
9373
            {
9374
                Store ("++++++++ SmiShare Test", Debug)
9374
                Store ("++++++++ SmiShare Test", Debug)
9375
 
9375
 
9376
                //  Expect EVNT to generate Notify value we just previously
9376
                //  Expect EVNT to generate Notify value we just previously
9377
                //  stored in BYTE
9377
                //  stored in BYTE
9378
                Store (0x20, BYTE)
9378
                Store (0x20, BYTE)
9379
                EVNT ()
9379
                EVNT ()
9380
                Store (0x21, BYTE)
9380
                Store (0x21, BYTE)
9381
                EVNT ()
9381
                EVNT ()
9382
                Store (0x22, BYTE)
9382
                Store (0x22, BYTE)
9383
                EVNT ()
9383
                EVNT ()
9384
                Store (0x23, BYTE)
9384
                Store (0x23, BYTE)
9385
                EVNT ()
9385
                EVNT ()
9386
 
9386
 
9387
                Return (0)  //  pass
9387
                Return (0)  //  pass
9388
            }   //  End Method TEST
9388
            }   //  End Method TEST
9389
        }   //  Device SMIS
9389
        }   //  Device SMIS
9390
 
9390
 
9391
        Device(CNDT)
9391
        Device(CNDT)
9392
        {
9392
        {
9393
            Method(TEST)
9393
            Method(TEST)
9394
            {
9394
            {
9395
                If (ECOK)
9395
                If (ECOK)
9396
                {
9396
                {
9397
                    return("Broken")
9397
                    return("Broken")
9398
                }
9398
                }
9399
                Else
9399
                Else
9400
                {
9400
                {
9401
                    return("Works")
9401
                    return("Works")
9402
                }
9402
                }
9403
            }
9403
            }
9404
 
9404
 
9405
            Method(ECOK)
9405
            Method(ECOK)
9406
            {
9406
            {
9407
                Return(0x0)
9407
                Return(0x0)
9408
            }
9408
            }
9409
        }
9409
        }
9410
 
9410
 
9411
    }   //  _SB system bus
9411
    }   //  _SB system bus
9412
 
9412
 
9413
 
9413
 
9414
/* Test a very big buffer */
9414
/* Test a very big buffer */
9415
 
9415
 
9416
    Name(WQAB, Buffer(6756)
9416
    Name(WQAB, Buffer(6756)
9417
    {
9417
    {
9418
        0x46,0x4F,0x4D,0x42,0x01,0x00,0x00,0x00,
9418
        0x46,0x4F,0x4D,0x42,0x01,0x00,0x00,0x00,
9419
        0x54,0x1A,0x00,0x00,0xBA,0xAD,0x00,0x00,
9419
        0x54,0x1A,0x00,0x00,0xBA,0xAD,0x00,0x00,
9420
        0x44,0x53,0x00,0x01,0x1A,0x7D,0xDA,0x54,
9420
        0x44,0x53,0x00,0x01,0x1A,0x7D,0xDA,0x54,
9421
        0x98,0xBD,0x92,0x00,0x01,0x06,0x18,0x42,
9421
        0x98,0xBD,0x92,0x00,0x01,0x06,0x18,0x42,
9422
        0x10,0x47,0x10,0x92,0x46,0x62,0x02,0x89,
9422
        0x10,0x47,0x10,0x92,0x46,0x62,0x02,0x89,
9423
        0x80,0x90,0x18,0x18,0x14,0x81,0x85,0x00,
9423
        0x80,0x90,0x18,0x18,0x14,0x81,0x85,0x00,
9424
        0x49,0x02,0x88,0xC4,0x41,0xE1,0x20,0xD4,
9424
        0x49,0x02,0x88,0xC4,0x41,0xE1,0x20,0xD4,
9425
        0x9F,0x40,0x7E,0x05,0x20,0x74,0x28,0x40,
9425
        0x9F,0x40,0x7E,0x05,0x20,0x74,0x28,0x40,
9426
        0xA6,0x00,0x83,0x02,0x9C,0x22,0x88,0xA0,
9426
        0xA6,0x00,0x83,0x02,0x9C,0x22,0x88,0xA0,
9427
        0x57,0x01,0x36,0x05,0x98,0x14,0x60,0x51,
9427
        0x57,0x01,0x36,0x05,0x98,0x14,0x60,0x51,
9428
        0x80,0x76,0x01,0x96,0x05,0xE8,0x16,0x20,
9428
        0x80,0x76,0x01,0x96,0x05,0xE8,0x16,0x20,
9429
        0x1D,0x96,0x88,0x04,0x47,0x89,0x01,0x47,
9429
        0x1D,0x96,0x88,0x04,0x47,0x89,0x01,0x47,
9430
        0xE9,0xC4,0x16,0x6E,0xD8,0xE0,0x85,0xA2,
9430
        0xE9,0xC4,0x16,0x6E,0xD8,0xE0,0x85,0xA2,
9431
        0x68,0x06,0x51,0x12,0x94,0x8B,0x20,0x5D,
9431
        0x68,0x06,0x51,0x12,0x94,0x8B,0x20,0x5D,
9432
        0x10,0x52,0x2E,0xC0,0x37,0x82,0x06,0x10,
9432
        0x10,0x52,0x2E,0xC0,0x37,0x82,0x06,0x10,
9433
        0xA5,0x77,0x01,0xB6,0x05,0x98,0x86,0x27,
9433
        0xA5,0x77,0x01,0xB6,0x05,0x98,0x86,0x27,
9434
        0xD2,0x20,0xE4,0x60,0x08,0x54,0xCE,0x80,
9434
        0xD2,0x20,0xE4,0x60,0x08,0x54,0xCE,0x80,
9435
        0x20,0x69,0x44,0x21,0x1E,0xA7,0x44,0x08,
9435
        0x20,0x69,0x44,0x21,0x1E,0xA7,0x44,0x08,
9436
        0x0A,0x84,0x90,0xD4,0xF1,0xA0,0xA0,0x71,
9436
        0x0A,0x84,0x90,0xD4,0xF1,0xA0,0xA0,0x71,
9437
        0x88,0xAD,0xCE,0x46,0x93,0xA9,0x74,0x7E,
9437
        0x88,0xAD,0xCE,0x46,0x93,0xA9,0x74,0x7E,
9438
        0x48,0x82,0x70,0xC6,0x2A,0x7E,0x3A,0x9A,
9438
        0x48,0x82,0x70,0xC6,0x2A,0x7E,0x3A,0x9A,
9439
        0xD0,0xD9,0x9C,0x60,0xE7,0x18,0x72,0x3C,
9439
        0xD0,0xD9,0x9C,0x60,0xE7,0x18,0x72,0x3C,
9440
        0x48,0xF4,0x20,0xB8,0x00,0x0F,0x1C,0x2C,
9440
        0x48,0xF4,0x20,0xB8,0x00,0x0F,0x1C,0x2C,
9441
        0x34,0x84,0x22,0x6B,0x80,0xC1,0x8C,0xDD,
9441
        0x34,0x84,0x22,0x6B,0x80,0xC1,0x8C,0xDD,
9442
        0x63,0xB1,0x0B,0x4E,0x0A,0xEC,0x61,0xB3,
9442
        0x63,0xB1,0x0B,0x4E,0x0A,0xEC,0x61,0xB3,
9443
        0x01,0x19,0xA2,0x24,0x38,0xD4,0x11,0xC0,
9443
        0x01,0x19,0xA2,0x24,0x38,0xD4,0x11,0xC0,
9444
        0x12,0x05,0x98,0x1F,0x87,0x0C,0x0F,0x95,
9444
        0x12,0x05,0x98,0x1F,0x87,0x0C,0x0F,0x95,
9445
        0x8C,0x25,0x24,0x1B,0xAB,0x87,0xC2,0xA5,
9445
        0x8C,0x25,0x24,0x1B,0xAB,0x87,0xC2,0xA5,
9446
        0x40,0x68,0x6C,0x27,0xED,0x19,0x45,0x2C,
9446
        0x40,0x68,0x6C,0x27,0xED,0x19,0x45,0x2C,
9447
        0x79,0x4A,0x82,0x49,0xE0,0x51,0x44,0x36,
9447
        0x79,0x4A,0x82,0x49,0xE0,0x51,0x44,0x36,
9448
        0x1A,0x27,0x28,0x1B,0x1A,0x25,0x03,0x42,
9448
        0x1A,0x27,0x28,0x1B,0x1A,0x25,0x03,0x42,
9449
        0x9E,0x05,0x58,0x07,0x26,0x04,0x76,0x2F,
9449
        0x9E,0x05,0x58,0x07,0x26,0x04,0x76,0x2F,
9450
        0xC0,0x9A,0x00,0x73,0xB3,0x90,0xB1,0xB9,
9450
        0xC0,0x9A,0x00,0x73,0xB3,0x90,0xB1,0xB9,
9451
        0xE8,0xFF,0x0F,0x71,0xB0,0x31,0xDA,0x9A,
9451
        0xE8,0xFF,0x0F,0x71,0xB0,0x31,0xDA,0x9A,
9452
        0xAE,0x90,0xC2,0xC4,0x88,0x12,0x2C,0x5E,
9452
        0xAE,0x90,0xC2,0xC4,0x88,0x12,0x2C,0x5E,
9453
        0xC5,0xC3,0x10,0xCA,0x93,0x42,0xA8,0x48,
9453
        0xC5,0xC3,0x10,0xCA,0x93,0x42,0xA8,0x48,
9454
        0x95,0xA1,0x68,0xB4,0x51,0x2A,0x14,0xE0,
9454
        0x95,0xA1,0x68,0xB4,0x51,0x2A,0x14,0xE0,
9455
        0x4C,0x80,0x30,0x5C,0x1D,0x03,0x82,0x46,
9455
        0x4C,0x80,0x30,0x5C,0x1D,0x03,0x82,0x46,
9456
        0x88,0x15,0x29,0x56,0xFB,0x83,0x20,0xF1,
9456
        0x88,0x15,0x29,0x56,0xFB,0x83,0x20,0xF1,
9457
        0x2D,0x40,0x54,0x01,0xA2,0x48,0xA3,0x41,
9457
        0x2D,0x40,0x54,0x01,0xA2,0x48,0xA3,0x41,
9458
        0x9D,0x03,0x3C,0x5C,0x0F,0xF5,0xF0,0x3D,
9458
        0x9D,0x03,0x3C,0x5C,0x0F,0xF5,0xF0,0x3D,
9459
        0xF6,0x93,0x0C,0x72,0x90,0x67,0xF1,0xA8,
9459
        0xF6,0x93,0x0C,0x72,0x90,0x67,0xF1,0xA8,
9460
        0x70,0x9C,0x06,0x49,0xE0,0x0B,0x80,0x4F,
9460
        0x70,0x9C,0x06,0x49,0xE0,0x0B,0x80,0x4F,
9461
        0x08,0x1E,0x38,0xDE,0x35,0xA0,0x66,0x7C,
9461
        0x08,0x1E,0x38,0xDE,0x35,0xA0,0x66,0x7C,
9462
        0xBC,0x4C,0x10,0x1C,0x6A,0x88,0x1E,0x68,
9462
        0xBC,0x4C,0x10,0x1C,0x6A,0x88,0x1E,0x68,
9463
        0xB8,0x13,0x38,0x44,0x06,0xE8,0x49,0x3D,
9463
        0xB8,0x13,0x38,0x44,0x06,0xE8,0x49,0x3D,
9464
        0x52,0x60,0x07,0x77,0x32,0xEF,0x01,0xAF,
9464
        0x52,0x60,0x07,0x77,0x32,0xEF,0x01,0xAF,
9465
        0x0A,0xCD,0x5E,0x12,0x08,0xC1,0xF1,0xF8,
9465
        0x0A,0xCD,0x5E,0x12,0x08,0xC1,0xF1,0xF8,
9466
        0x7E,0xC0,0x26,0x9C,0xC0,0xF2,0x07,0x81,
9466
        0x7E,0xC0,0x26,0x9C,0xC0,0xF2,0x07,0x81,
9467
        0x1A,0x99,0xA1,0x3D,0xCA,0xD3,0x8A,0x19,
9467
        0x1A,0x99,0xA1,0x3D,0xCA,0xD3,0x8A,0x19,
9468
        0xF2,0x31,0xC1,0x04,0x16,0x0B,0x21,0x05,
9468
        0xF2,0x31,0xC1,0x04,0x16,0x0B,0x21,0x05,
9469
        0x10,0x1A,0x0F,0xF8,0x6F,0x00,0x8F,0x17,
9469
        0x10,0x1A,0x0F,0xF8,0x6F,0x00,0x8F,0x17,
9470
        0xBE,0x12,0xC4,0xF6,0x80,0x12,0x0C,0x0B,
9470
        0xBE,0x12,0xC4,0xF6,0x80,0x12,0x0C,0x0B,
9471
        0x21,0x23,0xAB,0xF0,0x78,0xE8,0x28,0x7C,
9471
        0x21,0x23,0xAB,0xF0,0x78,0xE8,0x28,0x7C,
9472
        0x95,0x38,0x9C,0xD3,0x8A,0x67,0x82,0xE1,
9472
        0x95,0x38,0x9C,0xD3,0x8A,0x67,0x82,0xE1,
9473
        0x20,0xF4,0x05,0x90,0x00,0x51,0xE7,0x0C,
9473
        0x20,0xF4,0x05,0x90,0x00,0x51,0xE7,0x0C,
9474
        0xD4,0x61,0xC1,0xE7,0x04,0x76,0x33,0x38,
9474
        0xD4,0x61,0xC1,0xE7,0x04,0x76,0x33,0x38,
9475
        0x83,0x47,0x00,0x8F,0xE4,0x84,0xFC,0x2B,
9475
        0x83,0x47,0x00,0x8F,0xE4,0x84,0xFC,0x2B,
9476
        0xF1,0xC0,0xE0,0x03,0xE2,0xEF,0x1F,0xA7,
9476
        0xF1,0xC0,0xE0,0x03,0xE2,0xEF,0x1F,0xA7,
9477
        0xEC,0x11,0x9C,0xA9,0x01,0x7D,0x1C,0xF0,
9477
        0xEC,0x11,0x9C,0xA9,0x01,0x7D,0x1C,0xF0,
9478
        0xFF,0x7F,0x28,0x7C,0x88,0x1E,0xDF,0x29,
9478
        0xFF,0x7F,0x28,0x7C,0x88,0x1E,0xDF,0x29,
9479
        0x1F,0xAF,0x4F,0x17,0x96,0x35,0x4E,0xE8,
9479
        0x1F,0xAF,0x4F,0x17,0x96,0x35,0x4E,0xE8,
9480
        0x77,0x08,0x9F,0x38,0x7C,0x64,0x71,0x44,
9480
        0x77,0x08,0x9F,0x38,0x7C,0x64,0x71,0x44,
9481
        0x08,0x39,0x39,0x05,0xA0,0x81,0x4F,0xF7,
9481
        0x08,0x39,0x39,0x05,0xA0,0x81,0x4F,0xF7,
9482
        0xEC,0x22,0x9C,0xAE,0x27,0xE5,0x40,0xC3,
9482
        0xEC,0x22,0x9C,0xAE,0x27,0xE5,0x40,0xC3,
9483
        0xA0,0xE3,0x04,0xC7,0x79,0x00,0x1C,0xE3,
9483
        0xA0,0xE3,0x04,0xC7,0x79,0x00,0x1C,0xE3,
9484
        0x84,0x7F,0x2E,0x80,0x3F,0x40,0x7E,0xCA,
9484
        0x84,0x7F,0x2E,0x80,0x3F,0x40,0x7E,0xCA,
9485
        0x78,0xC5,0x48,0xE0,0x98,0x23,0x44,0x9F,
9485
        0x78,0xC5,0x48,0xE0,0x98,0x23,0x44,0x9F,
9486
        0x6B,0x3C,0x42,0x2C,0xFC,0x53,0x45,0xE1,
9486
        0x6B,0x3C,0x42,0x2C,0xFC,0x53,0x45,0xE1,
9487
        0x03,0x21,0x63,0x04,0x17,0xA0,0xC7,0x08,
9487
        0x03,0x21,0x63,0x04,0x17,0xA0,0xC7,0x08,
9488
        0x7C,0x03,0x8E,0x11,0x7D,0x94,0xE0,0xEA,
9488
        0x7C,0x03,0x8E,0x11,0x7D,0x94,0xE0,0xEA,
9489
        0x0F,0x1A,0x74,0x80,0xB8,0xFF,0xFF,0x00,
9489
        0x0F,0x1A,0x74,0x80,0xB8,0xFF,0xFF,0x00,
9490
        0xE1,0x83,0x7A,0x80,0xC0,0x37,0xFA,0xD1,
9490
        0xE1,0x83,0x7A,0x80,0xC0,0x37,0xFA,0xD1,
9491
        0x03,0x3D,0x2E,0x8B,0x3E,0x0F,0xC8,0xF8,
9491
        0x03,0x3D,0x2E,0x8B,0x3E,0x0F,0xC8,0xF8,
9492
        0x89,0x46,0xF3,0xE2,0xA7,0x03,0x7E,0xF8,
9492
        0x89,0x46,0xF3,0xE2,0xA7,0x03,0x7E,0xF8,
9493
        0x00,0x0F,0xA8,0x87,0x84,0x03,0xC5,0x4C,
9493
        0x00,0x0F,0xA8,0x87,0x84,0x03,0xC5,0x4C,
9494
        0x9B,0x83,0x3E,0xBB,0x1C,0x3A,0x76,0xB8,
9494
        0x9B,0x83,0x3E,0xBB,0x1C,0x3A,0x76,0xB8,
9495
        0xE0,0x3F,0x81,0x80,0x4B,0xDE,0x21,0x0C,
9495
        0xE0,0x3F,0x81,0x80,0x4B,0xDE,0x21,0x0C,
9496
        0x14,0x23,0xC6,0x9F,0x83,0x7C,0x0A,0x03,
9496
        0x14,0x23,0xC6,0x9F,0x83,0x7C,0x0A,0x03,
9497
        0xFF,0xFF,0xFF,0x14,0x06,0xFE,0xE1,0xF0,
9497
        0xFF,0xFF,0xFF,0x14,0x06,0xFE,0xE1,0xF0,
9498
        0x20,0x4F,0x07,0x9F,0xB6,0xA8,0x74,0x18,
9498
        0x20,0x4F,0x07,0x9F,0xB6,0xA8,0x74,0x18,
9499
        0xD4,0x81,0x0B,0xB0,0x32,0x89,0x08,0xCF,
9499
        0xD4,0x81,0x0B,0xB0,0x32,0x89,0x08,0xCF,
9500
        0x12,0xB5,0x41,0xE8,0xD4,0xF0,0x36,0xF1,
9500
        0x12,0xB5,0x41,0xE8,0xD4,0xF0,0x36,0xF1,
9501
        0xB6,0xE5,0x5B,0x40,0x9C,0xD3,0xEC,0xED,
9501
        0xB6,0xE5,0x5B,0x40,0x9C,0xD3,0xEC,0xED,
9502
        0xC0,0x45,0x30,0x22,0xD4,0x0C,0x45,0x4E,
9502
        0xC0,0x45,0x30,0x22,0xD4,0x0C,0x45,0x4E,
9503
        0x5A,0x11,0x63,0x44,0x79,0xDC,0x32,0xCA,
9503
        0x5A,0x11,0x63,0x44,0x79,0xDC,0x32,0xCA,
9504
        0xDB,0xD6,0x0B,0x40,0xBC,0x13,0x7B,0xDE,
9504
        0xDB,0xD6,0x0B,0x40,0xBC,0x13,0x7B,0xDE,
9505
        0x32,0x46,0xF0,0xC8,0x0F,0x5C,0x2C,0xC6,
9505
        0x32,0x46,0xF0,0xC8,0x0F,0x5C,0x2C,0xC6,
9506
        0xEA,0xF5,0x5F,0xF3,0x81,0x0B,0x70,0xF6,
9506
        0xEA,0xF5,0x5F,0xF3,0x81,0x0B,0x70,0xF6,
9507
        0xFF,0x3F,0x70,0x01,0x1C,0x0A,0x7A,0x18,
9507
        0xFF,0x3F,0x70,0x01,0x1C,0x0A,0x7A,0x18,
9508
        0x42,0x0F,0xC3,0x53,0x39,0x97,0x87,0xC8,
9508
        0x42,0x0F,0xC3,0x53,0x39,0x97,0x87,0xC8,
9509
        0x53,0x89,0x18,0x35,0x4C,0xD4,0x67,0x28,
9509
        0x53,0x89,0x18,0x35,0x4C,0xD4,0x67,0x28,
9510
        0xDF,0x2D,0x7C,0x20,0x02,0xDF,0x99,0x0B,
9510
        0xDF,0x2D,0x7C,0x20,0x02,0xDF,0x99,0x0B,
9511
        0xF8,0xFD,0xFF,0x0F,0x44,0x70,0x8E,0x29,
9511
        0xF8,0xFD,0xFF,0x0F,0x44,0x70,0x8E,0x29,
9512
        0xB8,0x33,0x0D,0x78,0x7C,0xCE,0x40,0x20,
9512
        0xB8,0x33,0x0D,0x78,0x7C,0xCE,0x40,0x20,
9513
        0xA7,0xE2,0x43,0x0D,0x60,0x41,0xF4,0x13,
9513
        0xA7,0xE2,0x43,0x0D,0x60,0x41,0xF4,0x13,
9514
        0xC2,0x27,0x1A,0x2A,0x13,0x06,0x75,0xA8,
9514
        0xC2,0x27,0x1A,0x2A,0x13,0x06,0x75,0xA8,
9515
        0x01,0xAC,0x5C,0x61,0x9E,0x46,0xCF,0xF9,
9515
        0x01,0xAC,0x5C,0x61,0x9E,0x46,0xCF,0xF9,
9516
        0x59,0xC6,0xA7,0x1A,0x1F,0x4A,0x8D,0x63,
9516
        0x59,0xC6,0xA7,0x1A,0x1F,0x4A,0x8D,0x63,
9517
        0x88,0x97,0x99,0x87,0x1A,0x1F,0x0B,0x5E,
9517
        0x88,0x97,0x99,0x87,0x1A,0x1F,0x0B,0x5E,
9518
        0x49,0x7D,0xA8,0x31,0x54,0x9C,0x87,0x1A,
9518
        0x49,0x7D,0xA8,0x31,0x54,0x9C,0x87,0x1A,
9519
        0x0F,0x37,0x50,0xD4,0x37,0x9B,0x67,0x1B,
9519
        0x0F,0x37,0x50,0xD4,0x37,0x9B,0x67,0x1B,
9520
        0xA3,0xC7,0xF7,0x0D,0xD5,0x10,0x0F,0x35,
9520
        0xA3,0xC7,0xF7,0x0D,0xD5,0x10,0x0F,0x35,
9521
        0x4C,0xF2,0x4A,0x35,0x16,0x1F,0x6A,0xC0,
9521
        0x4C,0xF2,0x4A,0x35,0x16,0x1F,0x6A,0xC0,
9522
        0xF1,0xFF,0x3F,0xD4,0x00,0xFC,0xFF,0xFF,
9522
        0xF1,0xFF,0x3F,0xD4,0x00,0xFC,0xFF,0xFF,
9523
        0x1F,0x6A,0x00,0x47,0x47,0x03,0x38,0x47,
9523
        0x1F,0x6A,0x00,0x47,0x47,0x03,0x38,0x47,
9524
        0x46,0xDC,0xD1,0x00,0x5C,0x87,0x52,0xE0,
9524
        0x46,0xDC,0xD1,0x00,0x5C,0x87,0x52,0xE0,
9525
        0x70,0x34,0x00,0x1E,0x47,0x21,0x30,0x5F,
9525
        0x70,0x34,0x00,0x1E,0x47,0x21,0x30,0x5F,
9526
        0x68,0x7C,0x14,0x02,0x16,0xFF,0xFF,0xA3,
9526
        0x68,0x7C,0x14,0x02,0x16,0xFF,0xFF,0xA3,
9527
        0x10,0xF8,0x65,0x9F,0x83,0x50,0x42,0x8F,
9527
        0x10,0xF8,0x65,0x9F,0x83,0x50,0x42,0x8F,
9528
        0x42,0x80,0xA0,0xDB,0xCF,0x53,0xC4,0xB3,
9528
        0x42,0x80,0xA0,0xDB,0xCF,0x53,0xC4,0xB3,
9529
        0x8F,0x2F,0x3F,0x0F,0x04,0x11,0x5E,0xF3,
9529
        0x8F,0x2F,0x3F,0x0F,0x04,0x11,0x5E,0xF3,
9530
        0x7D,0x0A,0xF2,0x21,0xDF,0x47,0x21,0x06,
9530
        0x7D,0x0A,0xF2,0x21,0xDF,0x47,0x21,0x06,
9531
        0x63,0x28,0x5F,0x83,0x7C,0x14,0x62,0x50,
9531
        0x63,0x28,0x5F,0x83,0x7C,0x14,0x62,0x50,
9532
        0xAF,0x41,0xBE,0xEF,0x1B,0xE4,0xF1,0x22,
9532
        0xAF,0x41,0xBE,0xEF,0x1B,0xE4,0xF1,0x22,
9533
        0x48,0xEC,0x67,0x02,0x1F,0x85,0x98,0xE8,
9533
        0x48,0xEC,0x67,0x02,0x1F,0x85,0x98,0xE8,
9534
        0xA3,0x10,0xA0,0xF0,0xFF,0x7F,0x14,0x02,
9534
        0xA3,0x10,0xA0,0xF0,0xFF,0x7F,0x14,0x02,
9535
        0xF8,0xFF,0xFF,0x3F,0x0A,0x01,0xCE,0x02,
9535
        0xF8,0xFF,0xFF,0x3F,0x0A,0x01,0xCE,0x02,
9536
        0x1C,0x0D,0x40,0x37,0xAD,0x47,0x21,0xF0,
9536
        0x1C,0x0D,0x40,0x37,0xAD,0x47,0x21,0xF0,
9537
        0xDE,0x59,0x4E,0xFB,0x04,0x7C,0x16,0x02,
9537
        0xDE,0x59,0x4E,0xFB,0x04,0x7C,0x16,0x02,
9538
        0xCC,0xFE,0xFF,0xCF,0x42,0xC0,0xEC,0x28,
9538
        0xCC,0xFE,0xFF,0xCF,0x42,0xC0,0xEC,0x28,
9539
        0x74,0x14,0x67,0xF9,0x2A,0xF4,0x04,0xF0,
9539
        0x74,0x14,0x67,0xF9,0x2A,0xF4,0x04,0xF0,
9540
        0x02,0x10,0x23,0xCC,0x3B,0xD0,0x4B,0x26,
9540
        0x02,0x10,0x23,0xCC,0x3B,0xD0,0x4B,0x26,
9541
        0xBB,0x8B,0x1B,0xE7,0xC9,0xE5,0x2C,0x9E,
9541
        0xBB,0x8B,0x1B,0xE7,0xC9,0xE5,0x2C,0x9E,
9542
        0xC4,0x7D,0x09,0xF2,0x81,0xE2,0x59,0xC8,
9542
        0xC4,0x7D,0x09,0xF2,0x81,0xE2,0x59,0xC8,
9543
        0x50,0xA7,0x1B,0xF4,0x8D,0xDC,0x03,0x8B,
9543
        0x50,0xA7,0x1B,0xF4,0x8D,0xDC,0x03,0x8B,
9544
        0x19,0x3F,0xC4,0xF3,0x90,0x21,0x9E,0x85,
9544
        0x19,0x3F,0xC4,0xF3,0x90,0x21,0x9E,0x85,
9545
        0x00,0x76,0xFD,0xFF,0xCF,0x42,0x00,0xFF,
9545
        0x00,0x76,0xFD,0xFF,0xCF,0x42,0x00,0xFF,
9546
        0xFF,0xFF,0x47,0x03,0xF8,0x2F,0x00,0x9F,
9546
        0xFF,0xFF,0x47,0x03,0xF8,0x2F,0x00,0x9F,
9547
        0x85,0x80,0xE7,0x09,0xE0,0x41,0xDB,0x67,
9547
        0x85,0x80,0xE7,0x09,0xE0,0x41,0xDB,0x67,
9548
        0x21,0x80,0x33,0x87,0xCB,0xF3,0x7F,0x05,
9548
        0x21,0x80,0x33,0x87,0xCB,0xF3,0x7F,0x05,
9549
        0x3A,0x96,0xF7,0x08,0xCF,0xFA,0x24,0x5F,
9549
        0x3A,0x96,0xF7,0x08,0xCF,0xFA,0x24,0x5F,
9550
        0x2F,0x3D,0xD3,0x87,0x82,0x67,0x21,0x86,
9550
        0x2F,0x3D,0xD3,0x87,0x82,0x67,0x21,0x86,
9551
        0x75,0x18,0x3E,0x0B,0x31,0x88,0x17,0x4D,
9551
        0x75,0x18,0x3E,0x0B,0x31,0x88,0x17,0x4D,
9552
        0x43,0xBC,0x70,0xFA,0x30,0xE0,0xFF,0x3F,
9552
        0x43,0xBC,0x70,0xFA,0x30,0xE0,0xFF,0x3F,
9553
        0x5E,0xE0,0x57,0x4E,0x03,0x05,0x09,0xF4,
9553
        0x5E,0xE0,0x57,0x4E,0x03,0x05,0x09,0xF4,
9554
        0x2C,0x04,0x30,0xFE,0xFF,0x7F,0x16,0x02,
9554
        0x2C,0x04,0x30,0xFE,0xFF,0x7F,0x16,0x02,
9555
        0xC8,0xB8,0x46,0x9D,0x85,0x80,0xE5,0x6D,
9555
        0xC8,0xB8,0x46,0x9D,0x85,0x80,0xE5,0x6D,
9556
        0xE5,0x19,0xDB,0xA7,0x95,0x04,0xFF,0xFF,
9556
        0xE5,0x19,0xDB,0xA7,0x95,0x04,0xFF,0xFF,
9557
        0x67,0x21,0xC0,0x41,0x2E,0x23,0x07,0x21,
9557
        0x67,0x21,0xC0,0x41,0x2E,0x23,0x07,0x21,
9558
        0x4C,0xC4,0x87,0x83,0x8F,0x99,0x80,0x9E,
9558
        0x4C,0xC4,0x87,0x83,0x8F,0x99,0x80,0x9E,
9559
        0x29,0xBE,0xB8,0x1B,0xE3,0x09,0xE0,0x45,
9559
        0x29,0xBE,0xB8,0x1B,0xE3,0x09,0xE0,0x45,
9560
        0xE2,0x31,0x93,0x1D,0x35,0x0D,0xF3,0x2C,
9560
        0xE2,0x31,0x93,0x1D,0x35,0x0D,0xF3,0x2C,
9561
        0x64,0xBC,0xB3,0x78,0x0D,0x78,0x82,0xF7,
9561
        0x64,0xBC,0xB3,0x78,0x0D,0x78,0x82,0xF7,
9562
        0xE4,0x9F,0x85,0x18,0xD8,0x61,0x05,0x7B,
9562
        0xE4,0x9F,0x85,0x18,0xD8,0x61,0x05,0x7B,
9563
        0x14,0x32,0xA8,0xC1,0x63,0x87,0x08,0x13,
9563
        0x14,0x32,0xA8,0xC1,0x63,0x87,0x08,0x13,
9564
        0xE8,0x59,0x88,0xC5,0x7D,0xAE,0xE8,0x3C,
9564
        0xE8,0x59,0x88,0xC5,0x7D,0xAE,0xE8,0x3C,
9565
        0xE1,0xB3,0x10,0xF0,0xFE,0xFF,0x9F,0x25,
9565
        0xE1,0xB3,0x10,0xF0,0xFE,0xFF,0x9F,0x25,
9566
        0xE0,0x5E,0x0D,0x9E,0x85,0x00,0x13,0x87,
9566
        0xE0,0x5E,0x0D,0x9E,0x85,0x00,0x13,0x87,
9567
        0x0D,0x9F,0x35,0xC0,0x33,0x7C,0x8F,0xEA,
9567
        0x0D,0x9F,0x35,0xC0,0x33,0x7C,0x8F,0xEA,
9568
        0x1C,0x1E,0x8F,0x81,0x7F,0x56,0x1D,0xE7,
9568
        0x1C,0x1E,0x8F,0x81,0x7F,0x56,0x1D,0xE7,
9569
        0x04,0x96,0x7B,0xD1,0xB2,0x71,0xA0,0xA1,
9569
        0x04,0x96,0x7B,0xD1,0xB2,0x71,0xA0,0xA1,
9570
        0x23,0xB2,0x3A,0x20,0x8D,0x0D,0x73,0x29,
9570
        0x23,0xB2,0x3A,0x20,0x8D,0x0D,0x73,0x29,
9571
        0x89,0x7C,0x72,0x6C,0xD4,0x56,0x04,0xA7,
9571
        0x89,0x7C,0x72,0x6C,0xD4,0x56,0x04,0xA7,
9572
        0x33,0x93,0x4F,0x00,0xD6,0x42,0x21,0x05,
9572
        0x33,0x93,0x4F,0x00,0xD6,0x42,0x21,0x05,
9573
        0x34,0x1A,0x8B,0xE1,0x9D,0xF9,0xE8,0x44,
9573
        0x34,0x1A,0x8B,0xE1,0x9D,0xF9,0xE8,0x44,
9574
        0x41,0x0C,0xE8,0xE3,0x90,0x6D,0x1C,0x0A,
9574
        0x41,0x0C,0xE8,0xE3,0x90,0x6D,0x1C,0x0A,
9575
        0x50,0x7B,0xD1,0x14,0xC8,0x39,0x07,0xA3,
9575
        0x50,0x7B,0xD1,0x14,0xC8,0x39,0x07,0xA3,
9576
        0x7F,0x76,0x74,0x36,0xBE,0x13,0x70,0x0D,
9576
        0x7F,0x76,0x74,0x36,0xBE,0x13,0x70,0x0D,
9577
        0x10,0x3A,0x25,0x18,0xDA,0x6A,0x04,0xFC,
9577
        0x10,0x3A,0x25,0x18,0xDA,0x6A,0x04,0xFC,
9578
        0xFF,0x67,0x89,0x01,0x33,0xFE,0x53,0x8C,
9578
        0xFF,0x67,0x89,0x01,0x33,0xFE,0x53,0x8C,
9579
        0x09,0x7C,0x8E,0xC1,0x1F,0x0C,0xF0,0x03,
9579
        0x09,0x7C,0x8E,0xC1,0x1F,0x0C,0xF0,0x03,
9580
        0x7F,0x31,0xA8,0xFA,0x5E,0xA0,0xFB,0x82,
9580
        0x7F,0x31,0xA8,0xFA,0x5E,0xA0,0xFB,0x82,
9581
        0xD5,0xDD,0x64,0x20,0xCC,0xC8,0x04,0xF5,
9581
        0xD5,0xDD,0x64,0x20,0xCC,0xC8,0x04,0xF5,
9582
        0x9D,0x0E,0x40,0x01,0xE4,0x0B,0x81,0xCF,
9582
        0x9D,0x0E,0x40,0x01,0xE4,0x0B,0x81,0xCF,
9583
        0x51,0x0F,0x05,0x6C,0x22,0x21,0xC2,0x44,
9583
        0x51,0x0F,0x05,0x6C,0x22,0x21,0xC2,0x44,
9584
        0x33,0x3A,0x62,0xC2,0xA8,0xE8,0x13,0xA6,
9584
        0x33,0x3A,0x62,0xC2,0xA8,0xE8,0x13,0xA6,
9585
        0x20,0x9E,0xB0,0x63,0x4D,0x18,0x3D,0x13,
9585
        0x20,0x9E,0xB0,0x63,0x4D,0x18,0x3D,0x13,
9586
        0x5F,0x74,0xD8,0x88,0x31,0x21,0xAE,0x1E,
9586
        0x5F,0x74,0xD8,0x88,0x31,0x21,0xAE,0x1E,
9587
        0xD0,0x26,0x18,0xD4,0x97,0x22,0x58,0x43,
9587
        0xD0,0x26,0x18,0xD4,0x97,0x22,0x58,0x43,
9588
        0xE6,0x63,0xF1,0x05,0x02,0x37,0x65,0x30,
9588
        0xE6,0x63,0xF1,0x05,0x02,0x37,0x65,0x30,
9589
        0xCE,0x89,0x5D,0x13,0x7C,0xD9,0xC1,0xCD,
9589
        0xCE,0x89,0x5D,0x13,0x7C,0xD9,0xC1,0xCD,
9590
        0x19,0x8C,0xF0,0x98,0xBB,0x18,0xBF,0x3A,
9590
        0x19,0x8C,0xF0,0x98,0xBB,0x18,0xBF,0x3A,
9591
        0x79,0x74,0xFC,0xA0,0xE0,0x1B,0x0E,0xC3,
9591
        0x79,0x74,0xFC,0xA0,0xE0,0x1B,0x0E,0xC3,
9592
        0x7E,0x32,0xF3,0x8C,0xDE,0xCB,0x7C,0x8D,
9592
        0x7E,0x32,0xF3,0x8C,0xDE,0xCB,0x7C,0x8D,
9593
        0xC3,0xC0,0x7A,0xBC,0x1C,0xD6,0x68,0x61,
9593
        0xC3,0xC0,0x7A,0xBC,0x1C,0xD6,0x68,0x61,
9594
        0x0F,0xED,0x3D,0xC4,0xFF,0xFF,0x43,0x8C,
9594
        0x0F,0xED,0x3D,0xC4,0xFF,0xFF,0x43,0x8C,
9595
        0xCF,0x13,0xC6,0x08,0xEB,0xDB,0x0B,0x38,
9595
        0xCF,0x13,0xC6,0x08,0xEB,0xDB,0x0B,0x38,
9596
        0xEE,0x59,0xF0,0xEF,0x1A,0xE0,0xB9,0x84,
9596
        0xEE,0x59,0xF0,0xEF,0x1A,0xE0,0xB9,0x84,
9597
        0xF8,0xAE,0x01,0x30,0xF0,0xFF,0x7F,0xD7,
9597
        0xF8,0xAE,0x01,0x30,0xF0,0xFF,0x7F,0xD7,
9598
        0x00,0x4E,0xD7,0x04,0xDF,0x35,0x80,0xF7,
9598
        0x00,0x4E,0xD7,0x04,0xDF,0x35,0x80,0xF7,
9599
        0xD0,0x7D,0xD7,0x00,0xAE,0xD9,0xEF,0x1A,
9599
        0xD0,0x7D,0xD7,0x00,0xAE,0xD9,0xEF,0x1A,
9600
        0xA8,0x63,0x80,0x15,0xDE,0x35,0xA0,0x5D,
9600
        0xA8,0x63,0x80,0x15,0xDE,0x35,0xA0,0x5D,
9601
        0xD9,0xDE,0xD7,0x9E,0xB0,0xAC,0xE9,0xB2,
9601
        0xD9,0xDE,0xD7,0x9E,0xB0,0xAC,0xE9,0xB2,
9602
        0x81,0x52,0x73,0xD9,0x00,0x14,0xFC,0xFF,
9602
        0x81,0x52,0x73,0xD9,0x00,0x14,0xFC,0xFF,
9603
        0x2F,0x1B,0x80,0x01,0x29,0x13,0x46,0x85,
9603
        0x2F,0x1B,0x80,0x01,0x29,0x13,0x46,0x85,
9604
        0x9F,0x30,0x05,0xF1,0x84,0x1D,0xEC,0xB2,
9604
        0x9F,0x30,0x05,0xF1,0x84,0x1D,0xEC,0xB2,
9605
        0x01,0x8A,0x18,0x97,0x0D,0xD0,0x8F,0xED,
9605
        0x01,0x8A,0x18,0x97,0x0D,0xD0,0x8F,0xED,
9606
        0x65,0x03,0x18,0xDC,0x13,0xF8,0x6D,0x03,
9606
        0x65,0x03,0x18,0xDC,0x13,0xF8,0x6D,0x03,
9607
        0x78,0x43,0xFA,0xB6,0x01,0xD6,0xFF,0xFF,
9607
        0x78,0x43,0xFA,0xB6,0x01,0xD6,0xFF,0xFF,
9608
        0x6D,0x03,0xAC,0xF9,0x6F,0x1B,0x28,0x0E,
9608
        0x6D,0x03,0xAC,0xF9,0x6F,0x1B,0x28,0x0E,
9609
        0xAB,0xBC,0x6D,0x40,0x3C,0xC9,0x33,0x02,
9609
        0xAB,0xBC,0x6D,0x40,0x3C,0xC9,0x33,0x02,
9610
        0xAB,0xBA,0x6E,0xA0,0xF4,0x5C,0x37,0x00,
9610
        0xAB,0xBA,0x6E,0xA0,0xF4,0x5C,0x37,0x00,
9611
        0x12,0x88,0x99,0x30,0x2A,0xFE,0x84,0x29,
9611
        0x12,0x88,0x99,0x30,0x2A,0xFE,0x84,0x29,
9612
        0x88,0x27,0xEC,0x68,0xD7,0x0D,0x50,0x04,
9612
        0x88,0x27,0xEC,0x68,0xD7,0x0D,0x50,0x04,
9613
        0xB9,0x6E,0x80,0x7E,0x5E,0x09,0xFE,0xFF,
9613
        0xB9,0x6E,0x80,0x7E,0x5E,0x09,0xFE,0xFF,
9614
        0xAF,0x1B,0xC0,0xE0,0xA2,0x80,0xB9,0x6F,
9614
        0xAF,0x1B,0xC0,0xE0,0xA2,0x80,0xB9,0x6F,
9615
        0x00,0x6F,0x58,0x7E,0xDF,0x00,0x7C,0xDC,
9615
        0x00,0x6F,0x58,0x7E,0xDF,0x00,0x7C,0xDC,
9616
        0xC4,0x31,0xF7,0x0D,0xC0,0xCC,0xFF,0xFF,
9616
        0xC4,0x31,0xF7,0x0D,0xC0,0xCC,0xFF,0xFF,
9617
        0xBE,0x01,0xB0,0xE7,0xA2,0x80,0xBB,0x6F,
9617
        0xBE,0x01,0xB0,0xE7,0xA2,0x80,0xBB,0x6F,
9618
        0x00,0xEF,0x8B,0xB4,0xEF,0x1B,0x60,0xFE,
9618
        0x00,0xEF,0x8B,0xB4,0xEF,0x1B,0x60,0xFE,
9619
        0xFF,0xDF,0x37,0xC0,0x28,0x6D,0xFD,0x1E,
9619
        0xFF,0xDF,0x37,0xC0,0x28,0x6D,0xFD,0x1E,
9620
        0x1C,0x3D,0x21,0x78,0x7C,0xB8,0xFB,0xA5,
9620
        0x1C,0x3D,0x21,0x78,0x7C,0xB8,0xFB,0xA5,
9621
        0xC7,0xE7,0xBB,0x39,0x38,0x06,0x79,0x8C,
9621
        0xC7,0xE7,0xBB,0x39,0x38,0x06,0x79,0x8C,
9622
        0x87,0x76,0xC0,0xAF,0xEF,0x9E,0x98,0xEF,
9622
        0x87,0x76,0xC0,0xAF,0xEF,0x9E,0x98,0xEF,
9623
        0xE6,0xC0,0xFF,0x4C,0x70,0x3C,0x18,0x68,
9623
        0xE6,0xC0,0xFF,0x4C,0x70,0x3C,0x18,0x68,
9624
        0x1C,0x62,0xAB,0x97,0x06,0x72,0x34,0x38,
9624
        0x1C,0x62,0xAB,0x97,0x06,0x72,0x34,0x38,
9625
        0x3F,0xDC,0x19,0x81,0x61,0x15,0x7F,0xF2,
9625
        0x3F,0xDC,0x19,0x81,0x61,0x15,0x7F,0xF2,
9626
        0x47,0x38,0xC7,0xD0,0xD9,0xE1,0x20,0xB1,
9626
        0x47,0x38,0xC7,0xD0,0xD9,0xE1,0x20,0xB1,
9627
        0x83,0xE0,0xC1,0x56,0x6D,0x02,0x85,0x86,
9627
        0x83,0xE0,0xC1,0x56,0x6D,0x02,0x85,0x86,
9628
        0x50,0x14,0x18,0x14,0x8B,0x0F,0x18,0xF8,
9628
        0x50,0x14,0x18,0x14,0x8B,0x0F,0x18,0xF8,
9629
        0x61,0xB3,0xB3,0x00,0x93,0x04,0x87,0x3A,
9629
        0x61,0xB3,0xB3,0x00,0x93,0x04,0x87,0x3A,
9630
        0x02,0xF8,0x3E,0xD1,0xFC,0x38,0x74,0x37,
9630
        0x02,0xF8,0x3E,0xD1,0xFC,0x38,0x74,0x37,
9631
        0x38,0x54,0x8F,0xE5,0xA1,0x80,0x9E,0x01,
9631
        0x38,0x54,0x8F,0xE5,0xA1,0x80,0x9E,0x01,
9632
        0x71,0xC7,0x0C,0x32,0x69,0xCF,0x28,0xE2,
9632
        0x71,0xC7,0x0C,0x32,0x69,0xCF,0x28,0xE2,
9633
        0x53,0xC2,0x29,0x85,0x49,0xE0,0xF3,0x03,
9633
        0x53,0xC2,0x29,0x85,0x49,0xE0,0xF3,0x03,
9634
        0x43,0xE3,0x04,0xAF,0x0D,0xA1,0xF9,0xFF,
9634
        0x43,0xE3,0x04,0xAF,0x0D,0xA1,0xF9,0xFF,
9635
        0xFF,0xA4,0xC0,0x3C,0xDF,0x31,0x04,0x6C,
9635
        0xFF,0xA4,0xC0,0x3C,0xDF,0x31,0x04,0x6C,
9636
        0x02,0xBB,0xBF,0x64,0xC8,0xDA,0xC0,0x75,
9636
        0x02,0xBB,0xBF,0x64,0xC8,0xDA,0xC0,0x75,
9637
        0x4B,0x32,0x44,0x6F,0x38,0xB2,0x85,0xA2,
9637
        0x4B,0x32,0x44,0x6F,0x38,0xB2,0x85,0xA2,
9638
        0xE9,0x44,0x79,0xDF,0x88,0x62,0x67,0x08,
9638
        0xE9,0x44,0x79,0xDF,0x88,0x62,0x67,0x08,
9639
        0xC2,0x88,0x12,0x2C,0xC8,0xA3,0x42,0xAC,
9639
        0xC2,0x88,0x12,0x2C,0xC8,0xA3,0x42,0xAC,
9640
        0x28,0x2F,0x05,0x46,0x88,0x18,0xE2,0x95,
9640
        0x28,0x2F,0x05,0x46,0x88,0x18,0xE2,0x95,
9641
        0x23,0xD0,0x09,0x87,0x0F,0xF2,0xD8,0x14,
9641
        0x23,0xD0,0x09,0x87,0x0F,0xF2,0xD8,0x14,
9642
        0xA7,0xFD,0x41,0x90,0x58,0x4F,0x02,0x8D,
9642
        0xA7,0xFD,0x41,0x90,0x58,0x4F,0x02,0x8D,
9643
        0xC5,0x91,0x46,0x83,0x3A,0x07,0x78,0xB8,
9643
        0xC5,0x91,0x46,0x83,0x3A,0x07,0x78,0xB8,
9644
        0x3E,0xC4,0x78,0xF8,0x0F,0x21,0x06,0x39,
9644
        0x3E,0xC4,0x78,0xF8,0x0F,0x21,0x06,0x39,
9645
        0xC8,0x73,0x7B,0x54,0x38,0x4E,0x5F,0x25,
9645
        0xC8,0x73,0x7B,0x54,0x38,0x4E,0x5F,0x25,
9646
        0x4C,0xF0,0x02,0xE0,0x83,0x0A,0x1C,0xD7,
9646
        0x4C,0xF0,0x02,0xE0,0x83,0x0A,0x1C,0xD7,
9647
        0x80,0x9A,0xF1,0x33,0x06,0x58,0x8E,0xE3,
9647
        0x80,0x9A,0xF1,0x33,0x06,0x58,0x8E,0xE3,
9648
        0x3E,0xA9,0xC0,0x1D,0x8F,0xEF,0x07,0x6C,
9648
        0x3E,0xA9,0xC0,0x1D,0x8F,0xEF,0x07,0x6C,
9649
        0xC2,0x09,0x2C,0x7F,0x10,0xA8,0xE3,0x0C,
9649
        0xC2,0x09,0x2C,0x7F,0x10,0xA8,0xE3,0x0C,
9650
        0x9F,0xE7,0x0B,0x8B,0x21,0x1F,0x13,0x4C,
9650
        0x9F,0xE7,0x0B,0x8B,0x21,0x1F,0x13,0x4C,
9651
        0x60,0xB1,0x27,0x1B,0x3A,0x1E,0xF0,0xDF,
9651
        0x60,0xB1,0x27,0x1B,0x3A,0x1E,0xF0,0xDF,
9652
        0x63,0x1E,0x2F,0x7C,0x32,0xF1,0x7C,0x4D,
9652
        0x63,0x1E,0x2F,0x7C,0x32,0xF1,0x7C,0x4D,
9653
        0x30,0x22,0x84,0x9C,0x8C,0x07,0x7D,0x87,
9653
        0x30,0x22,0x84,0x9C,0x8C,0x07,0x7D,0x87,
9654
        0xC0,0x5C,0x6F,0xD8,0xB9,0x85,0x8B,0x3A,
9654
        0xC0,0x5C,0x6F,0xD8,0xB9,0x85,0x8B,0x3A,
9655
        0x68,0xA0,0x4E,0x0B,0x3E,0x28,0xB0,0x9B,
9655
        0x68,0xA0,0x4E,0x0B,0x3E,0x28,0xB0,0x9B,
9656
        0x11,0xE6,0xB8,0xCE,0xCF,0x2A,0x60,0xF8,
9656
        0x11,0xE6,0xB8,0xCE,0xCF,0x2A,0x60,0xF8,
9657
        0xFF,0x9F,0x55,0x60,0x8F,0x10,0xFE,0xED,
9657
        0xFF,0x9F,0x55,0x60,0x8F,0x10,0xFE,0xED,
9658
        0xC1,0xF3,0xF2,0x95,0xE1,0xD5,0x21,0x81,
9658
        0xC1,0xF3,0xF2,0x95,0xE1,0xD5,0x21,0x81,
9659
        0x43,0x8E,0x10,0x3D,0x2E,0x8F,0x10,0x73,
9659
        0x43,0x8E,0x10,0x3D,0x2E,0x8F,0x10,0x73,
9660
        0x3E,0xC2,0x0C,0x11,0x5C,0x67,0x01,0x70,
9660
        0x3E,0xC2,0x0C,0x11,0x5C,0x67,0x01,0x70,
9661
        0x0C,0x11,0xF8,0x1C,0x70,0xC0,0x71,0x69,
9661
        0x0C,0x11,0xF8,0x1C,0x70,0xC0,0x71,0x69,
9662
        0xE2,0x03,0xF5,0x01,0x07,0x70,0x70,0x4D,
9662
        0xE2,0x03,0xF5,0x01,0x07,0x70,0x70,0x4D,
9663
        0xC3,0x1D,0x70,0xC0,0x71,0x16,0x60,0xFF,
9663
        0xC3,0x1D,0x70,0xC0,0x71,0x16,0x60,0xFF,
9664
        0xFF,0xC3,0x0D,0x2C,0x49,0x26,0x0E,0x23,
9664
        0xFF,0xC3,0x0D,0x2C,0x49,0x26,0x0E,0x23,
9665
        0x18,0x11,0x30,0x28,0x02,0x02,0xA4,0xB3,
9665
        0x18,0x11,0x30,0x28,0x02,0x02,0xA4,0xB3,
9666
        0x80,0x0F,0x29,0x00,0x1F,0xAE,0x0C,0x0F,
9666
        0x80,0x0F,0x29,0x00,0x1F,0xAE,0x0C,0x0F,
9667
        0x29,0xD8,0x93,0x86,0x07,0x8E,0x1B,0x85,
9667
        0x29,0xD8,0x93,0x86,0x07,0x8E,0x1B,0x85,
9668
        0x07,0x8D,0x0B,0x30,0x68,0x7A,0xE2,0x80,
9668
        0x07,0x8D,0x0B,0x30,0x68,0x7A,0xE2,0x80,
9669
        0x7F,0x4C,0xF0,0x19,0x05,0x1C,0xE3,0x06,
9669
        0x7F,0x4C,0xF0,0x19,0x05,0x1C,0xE3,0x06,
9670
        0xDF,0x2A,0x0C,0xFC,0xFF,0x3F,0x30,0xCC,
9670
        0xDF,0x2A,0x0C,0xFC,0xFF,0x3F,0x30,0xCC,
9671
        0xE1,0xC2,0x63,0x39,0x8A,0xA0,0x07,0x1E,
9671
        0xE1,0xC2,0x63,0x39,0x8A,0xA0,0x07,0x1E,
9672
        0xD4,0xF7,0x8C,0x33,0xF7,0x24,0x8F,0xD1,
9672
        0xD4,0xF7,0x8C,0x33,0xF7,0x24,0x8F,0xD1,
9673
        0x51,0x0F,0x27,0xF4,0xE4,0x85,0x3B,0x57,
9673
        0x51,0x0F,0x27,0xF4,0xE4,0x85,0x3B,0x57,
9674
        0xF9,0x0A,0x71,0x14,0x18,0xB8,0x77,0x29,
9674
        0xF9,0x0A,0x71,0x14,0x18,0xB8,0x77,0x29,
9675
        0x8F,0xCF,0x17,0x2B,0xC3,0x63,0x46,0xFB,
9675
        0x8F,0xCF,0x17,0x2B,0xC3,0x63,0x46,0xFB,
9676
        0x1E,0x72,0xD6,0x11,0x02,0xE2,0x2F,0x75,
9676
        0x1E,0x72,0xD6,0x11,0x02,0xE2,0x2F,0x75,
9677
        0x6C,0xC0,0x60,0x39,0x18,0x00,0x87,0x01,
9677
        0x6C,0xC0,0x60,0x39,0x18,0x00,0x87,0x01,
9678
        0xE3,0x13,0x0D,0x58,0x67,0x1B,0x3C,0xF4,
9678
        0xE3,0x13,0x0D,0x58,0x67,0x1B,0x3C,0xF4,
9679
        0x69,0x31,0xC4,0xE3,0x0B,0xFB,0x56,0x61,
9679
        0x69,0x31,0xC4,0xE3,0x0B,0xFB,0x56,0x61,
9680
        0x82,0xEA,0x41,0x75,0x12,0xF4,0xD0,0xC0,
9680
        0x82,0xEA,0x41,0x75,0x12,0xF4,0xD0,0xC0,
9681
        0x01,0xE8,0xA1,0xC1,0x3F,0xB9,0x90,0xFB,
9681
        0x01,0xE8,0xA1,0xC1,0x3F,0xB9,0x90,0xFB,
9682
        0x2B,0x1D,0x82,0xB5,0xE2,0x69,0xDE,0x47,
9682
        0x2B,0x1D,0x82,0xB5,0xE2,0x69,0xDE,0x47,
9683
        0x1E,0xF3,0xDC,0xA2,0xBC,0x0D,0x3C,0x07,
9683
        0x1E,0xF3,0xDC,0xA2,0xBC,0x0D,0x3C,0x07,
9684
        0xF0,0xD3,0x82,0x87,0xE3,0x63,0x81,0xC7,
9684
        0xF0,0xD3,0x82,0x87,0xE3,0x63,0x81,0xC7,
9685
        0xE9,0x4B,0x58,0x82,0xF7,0x1A,0x9F,0x6C,
9685
        0xE9,0x4B,0x58,0x82,0xF7,0x1A,0x9F,0x6C,
9686
        0x1E,0x5C,0x58,0xB2,0x21,0xA0,0x06,0xEB,
9686
        0x1E,0x5C,0x58,0xB2,0x21,0xA0,0x06,0xEB,
9687
        0x21,0x60,0xA6,0x9A,0xC0,0x49,0x46,0x80,
9687
        0x21,0x60,0xA6,0x9A,0xC0,0x49,0x46,0x80,
9688
        0xCA,0x00,0xA1,0x1B,0xCB,0xE9,0x3E,0x8B,
9688
        0xCA,0x00,0xA1,0x1B,0xCB,0xE9,0x3E,0x8B,
9689
        0x84,0x38,0xCD,0x47,0x99,0xC7,0x02,0x8F,
9689
        0x84,0x38,0xCD,0x47,0x99,0xC7,0x02,0x8F,
9690
        0xF5,0xC1,0xC0,0xFF,0x7F,0xCD,0x23,0xD4,
9690
        0xF5,0xC1,0xC0,0xFF,0x7F,0xCD,0x23,0xD4,
9691
        0x7D,0xCD,0x33,0x7B,0x3A,0xC0,0xAC,0x22,
9691
        0x7D,0xCD,0x33,0x7B,0x3A,0xC0,0xAC,0x22,
9692
        0xDC,0x7B,0xCE,0x1B,0x86,0xD1,0x9E,0x2D,
9692
        0xDC,0x7B,0xCE,0x1B,0x86,0xD1,0x9E,0x2D,
9693
        0x7C,0xCD,0x78,0xD6,0x34,0x42,0x38,0x76,
9693
        0x7C,0xCD,0x78,0xD6,0x34,0x42,0x38,0x76,
9694
        0x83,0xF3,0x48,0x8C,0xF0,0x82,0xC0,0x4E,
9694
        0x83,0xF3,0x48,0x8C,0xF0,0x82,0xC0,0x4E,
9695
        0x0C,0x0F,0x30,0xC6,0x39,0x79,0xC3,0xFA,
9695
        0x0C,0x0F,0x30,0xC6,0x39,0x79,0xC3,0xFA,
9696
        0xC2,0xCB,0x40,0x83,0x19,0xDB,0x97,0x01,
9696
        0xC2,0xCB,0x40,0x83,0x19,0xDB,0x97,0x01,
9697
        0x36,0x2A,0xDF,0x88,0xC0,0x97,0xFC,0x62,
9697
        0x36,0x2A,0xDF,0x88,0xC0,0x97,0xFC,0x62,
9698
        0x00,0x65,0x16,0xBE,0x9E,0xF8,0xA0,0xC4,
9698
        0x00,0x65,0x16,0xBE,0x9E,0xF8,0xA0,0xC4,
9699
        0x2E,0x06,0x2C,0xE5,0xC5,0x00,0x54,0x37,
9699
        0x2E,0x06,0x2C,0xE5,0xC5,0x00,0x54,0x37,
9700
        0x0C,0x5F,0x0C,0xE0,0x5F,0x89,0x5E,0x0C,
9700
        0x0C,0x5F,0x0C,0xE0,0x5F,0x89,0x5E,0x0C,
9701
        0xC0,0x70,0x71,0xF2,0x3D,0xC0,0x1E,0xEE,
9701
        0xC0,0x70,0x71,0xF2,0x3D,0xC0,0x1E,0xEE,
9702
        0xA3,0x74,0x9C,0xBE,0xFD,0xBD,0x19,0xF8,
9702
        0xA3,0x74,0x9C,0xBE,0xFD,0xBD,0x19,0xF8,
9703
        0x6C,0xC0,0x60,0x3C,0xC3,0x30,0xC6,0x08,
9703
        0x6C,0xC0,0x60,0x3C,0xC3,0x30,0xC6,0x08,
9704
        0xE3,0x51,0x86,0x31,0xC1,0xDC,0xB7,0x03,
9704
        0xE3,0x51,0x86,0x31,0xC1,0xDC,0xB7,0x03,
9705
        0xE8,0x39,0x87,0x81,0x4A,0x78,0x3B,0x80,
9705
        0xE8,0x39,0x87,0x81,0x4A,0x78,0x3B,0x80,
9706
        0x72,0x0E,0xE8,0xF2,0x68,0x42,0x4F,0x01,
9706
        0x72,0x0E,0xE8,0xF2,0x68,0x42,0x4F,0x01,
9707
        0x4F,0x07,0x3E,0x29,0x1A,0xA2,0xAF,0xB1,
9707
        0x4F,0x07,0x3E,0x29,0x1A,0xA2,0xAF,0xB1,
9708
        0x0A,0x26,0x50,0xC4,0x07,0x0D,0x3E,0xB5,
9708
        0x0A,0x26,0x50,0xC4,0x07,0x0D,0x3E,0xB5,
9709
        0x28,0x3E,0x15,0x78,0x2D,0xCF,0x4E,0xE1,
9709
        0x28,0x3E,0x15,0x78,0x2D,0xCF,0x4E,0xE1,
9710
        0xE2,0x9C,0x89,0xA7,0x6A,0x38,0x03,0xBD,
9710
        0xE2,0x9C,0x89,0xA7,0x6A,0x38,0x03,0xBD,
9711
        0xE6,0x86,0x63,0xFF,0x7F,0x38,0xFC,0xA9,
9711
        0xE6,0x86,0x63,0xFF,0x7F,0x38,0xFC,0xA9,
9712
        0xE0,0x35,0x80,0x1D,0x24,0x3D,0x2D,0x23,
9712
        0xE0,0x35,0x80,0x1D,0x24,0x3D,0x2D,0x23,
9713
        0xC2,0x38,0xA4,0x3C,0x32,0xF8,0xB6,0x18,
9713
        0xC2,0x38,0xA4,0x3C,0x32,0xF8,0xB6,0x18,
9714
        0xC7,0x90,0x0F,0x91,0xBE,0x13,0x18,0xF2,
9714
        0xC7,0x90,0x0F,0x91,0xBE,0x13,0x18,0xF2,
9715
        0x21,0xEF,0x79,0xC7,0xC0,0xAF,0x08,0x71,
9715
        0x21,0xEF,0x79,0xC7,0xC0,0xAF,0x08,0x71,
9716
        0x9E,0xB2,0x7C,0x67,0xF0,0x65,0x01,0x7C,
9716
        0x9E,0xB2,0x7C,0x67,0xF0,0x65,0x01,0x7C,
9717
        0x91,0x2E,0x0B,0x68,0x68,0x9F,0x64,0x7C,
9717
        0x91,0x2E,0x0B,0x68,0x68,0x9F,0x64,0x7C,
9718
        0x41,0x30,0xEC,0x89,0xB3,0x00,0x77,0x05,
9718
        0x41,0x30,0xEC,0x89,0xB3,0x00,0x77,0x05,
9719
        0x50,0x81,0xFA,0xAE,0x00,0xFF,0x42,0xF0,
9719
        0x50,0x81,0xFA,0xAE,0x00,0xFF,0x42,0xF0,
9720
        0xAE,0x00,0x86,0x79,0xF9,0x56,0xC0,0x35,
9720
        0xAE,0x00,0x86,0x79,0xF9,0x56,0xC0,0x35,
9721
        0x1D,0x4A,0xD0,0x67,0x12,0x5F,0x17,0x70,
9721
        0x1D,0x4A,0xD0,0x67,0x12,0x5F,0x17,0x70,
9722
        0x53,0x64,0xA9,0x8E,0x0A,0xD0,0x53,0x4C,
9722
        0x53,0x64,0xA9,0x8E,0x0A,0xD0,0x53,0x4C,
9723
        0x02,0x75,0x47,0xF7,0x51,0x01,0xC6,0x4D,
9723
        0x02,0x75,0x47,0xF7,0x51,0x01,0xC6,0x4D,
9724
        0xD9,0x07,0x54,0x76,0x5A,0x60,0x67,0x21,
9724
        0xD9,0x07,0x54,0x76,0x5A,0x60,0x67,0x21,
9725
        0x76,0x1D,0xC1,0x5D,0x49,0x18,0xCA,0xB3,
9725
        0x76,0x1D,0xC1,0x5D,0x49,0x18,0xCA,0xB3,
9726
        0x81,0x2F,0x59,0xFC,0x70,0x00,0x03,0xDC,
9726
        0x81,0x2F,0x59,0xFC,0x70,0x00,0x03,0xDC,
9727
        0xB3,0x38,0xC4,0x08,0xB1,0xD9,0x81,0xEB,
9727
        0xB3,0x38,0xC4,0x08,0xB1,0xD9,0x81,0xEB,
9728
        0x75,0xD2,0x70,0x2F,0x44,0xEC,0xFF,0x7F,
9728
        0x75,0xD2,0x70,0x2F,0x44,0xEC,0xFF,0x7F,
9729
        0x32,0x00,0xE3,0x51,0x1B,0x1C,0x27,0x9D,
9729
        0x32,0x00,0xE3,0x51,0x1B,0x1C,0x27,0x9D,
9730
        0xF0,0x91,0x9E,0x59,0xF8,0x49,0x19,0x30,
9730
        0xF0,0x91,0x9E,0x59,0xF8,0x49,0x19,0x30,
9731
        0x71,0xF2,0x03,0xE3,0xC9,0x1A,0xC6,0x00,
9731
        0x71,0xF2,0x03,0xE3,0xC9,0x1A,0xC6,0x00,
9732
        0xB8,0xBC,0x57,0x95,0x81,0xFC,0x43,0x90,
9732
        0xB8,0xBC,0x57,0x95,0x81,0xFC,0x43,0x90,
9733
        0x20,0x18,0xD4,0x29,0x19,0x38,0x1C,0xC5,
9733
        0x20,0x18,0xD4,0x29,0x19,0x38,0x1C,0xC5,
9734
        0x70,0xA7,0x64,0x78,0x50,0xF8,0xC3,0x00,
9734
        0x70,0xA7,0x64,0x78,0x50,0xF8,0xC3,0x00,
9735
        0xE6,0x46,0xE8,0x7B,0x82,0xA1,0xDE,0x93,
9735
        0xE6,0x46,0xE8,0x7B,0x82,0xA1,0xDE,0x93,
9736
        0x0E,0xE3,0x91,0xD0,0x04,0x3E,0x2D,0xC3,
9736
        0x0E,0xE3,0x91,0xD0,0x04,0x3E,0x2D,0xC3,
9737
        0xFA,0xFF,0x9F,0x96,0x81,0xD5,0xB1,0xDD,
9737
        0xFA,0xFF,0x9F,0x96,0x81,0xD5,0xB1,0xDD,
9738
        0x43,0xF6,0x59,0x01,0x77,0x76,0x80,0x3B,
9738
        0x43,0xF6,0x59,0x01,0x77,0x76,0x80,0x3B,
9739
        0x3D,0x7E,0x7A,0x00,0x9C,0x00,0x3D,0x3D,
9739
        0x3D,0x7E,0x7A,0x00,0x9C,0x00,0x3D,0x3D,
9740
        0x80,0xED,0xBC,0x01,0xF7,0x40,0x80,0x38,
9740
        0x80,0xED,0xBC,0x01,0xF7,0x40,0x80,0x38,
9741
        0xFE,0xA3,0x82,0x5F,0x59,0x28,0x1C,0x3F,
9741
        0xFE,0xA3,0x82,0x5F,0x59,0x28,0x1C,0x3F,
9742
        0xB6,0xF3,0x63,0x09,0xEE,0x70,0xE0,0x23,
9742
        0xB6,0xF3,0x63,0x09,0xEE,0x70,0xE0,0x23,
9743
        0x83,0x0F,0x90,0xB8,0xA1,0xF8,0x50,0x81,
9743
        0x83,0x0F,0x90,0xB8,0xA1,0xF8,0x50,0x81,
9744
        0x3C,0x0B,0x80,0x62,0xF4,0x6C,0x04,0xEC,
9744
        0x3C,0x0B,0x80,0x62,0xF4,0x6C,0x04,0xEC,
9745
        0x06,0xF3,0xD2,0x12,0xE5,0xFF,0xFF,0xDE,
9745
        0x06,0xF3,0xD2,0x12,0xE5,0xFF,0xFF,0xDE,
9746
        0xC0,0x4E,0x29,0xB8,0x83,0x00,0xF8,0x8E,
9746
        0xC0,0x4E,0x29,0xB8,0x83,0x00,0xF8,0x8E,
9747
        0x01,0xE0,0x1D,0x0C,0x97,0x35,0x66,0x94,
9747
        0x01,0xE0,0x1D,0x0C,0x97,0x35,0x66,0x94,
9748
        0x10,0x18,0x8D,0x19,0x77,0x08,0xE1,0x27,
9748
        0x10,0x18,0x8D,0x19,0x77,0x08,0xE1,0x27,
9749
        0x02,0xDC,0x98,0x3D,0x6E,0x8F,0x19,0x77,
9749
        0x02,0xDC,0x98,0x3D,0x6E,0x8F,0x19,0x77,
9750
        0x9C,0xE5,0xA3,0x7A,0xCA,0x08,0xE5,0x03,
9750
        0x9C,0xE5,0xA3,0x7A,0xCA,0x08,0xE5,0x03,
9751
        0x07,0x3B,0x67,0xBC,0x11,0xF0,0xA1,0x03,
9751
        0x07,0x3B,0x67,0xBC,0x11,0xF0,0xA1,0x03,
9752
        0x8F,0x03,0x0C,0xEE,0x48,0x01,0xC6,0xCB,
9752
        0x8F,0x03,0x0C,0xEE,0x48,0x01,0xC6,0xCB,
9753
        0x01,0x1B,0x3B,0xB8,0x83,0x90,0x53,0x20,
9753
        0x01,0x1B,0x3B,0xB8,0x83,0x90,0x53,0x20,
9754
        0x4B,0x87,0xD1,0xD8,0x71,0xB2,0x81,0x74,
9754
        0x4B,0x87,0xD1,0xD8,0x71,0xB2,0x81,0x74,
9755
        0x8C,0xF1,0x21,0xD7,0x63,0xC7,0x0D,0xD6,
9755
        0x8C,0xF1,0x21,0xD7,0x63,0xC7,0x0D,0xD6,
9756
        0x63,0xC7,0x1D,0x5F,0xB0,0xFF,0xFF,0xE3,
9756
        0x63,0xC7,0x1D,0x5F,0xB0,0xFF,0xFF,0xE3,
9757
        0x0B,0x18,0xC6,0xC0,0xC5,0x0F,0x03,0x7D,
9757
        0x0B,0x18,0xC6,0xC0,0xC5,0x0F,0x03,0x7D,
9758
        0xF3,0xF3,0xE8,0x0C,0xEE,0x61,0xFB,0x04,
9758
        0xF3,0xF3,0xE8,0x0C,0xEE,0x61,0xFB,0x04,
9759
        0x13,0xE3,0xF9,0x25,0xC4,0x23,0xCC,0x8B,
9759
        0x13,0xE3,0xF9,0x25,0xC4,0x23,0xCC,0x8B,
9760
        0x4B,0x84,0xA3,0x08,0xF2,0xE6,0x12,0xE7,
9760
        0x4B,0x84,0xA3,0x08,0xF2,0xE6,0x12,0xE7,
9761
        0xD5,0x20,0xCC,0x63,0x4B,0x94,0x10,0x11,
9761
        0xD5,0x20,0xCC,0x63,0x4B,0x94,0x10,0x11,
9762
        0x0E,0x26,0xCE,0x13,0x8C,0x11,0x0E,0x3C,
9762
        0x0E,0x26,0xCE,0x13,0x8C,0x11,0x0E,0x3C,
9763
        0x8A,0x21,0x22,0x9C,0x40,0x88,0x93,0x3E,
9763
        0x8A,0x21,0x22,0x9C,0x40,0x88,0x93,0x3E,
9764
        0xD9,0x20,0xE1,0x63,0x84,0x8D,0xF6,0x04,
9764
        0xD9,0x20,0xE1,0x63,0x84,0x8D,0xF6,0x04,
9765
        0xC3,0xC7,0xC2,0xCF,0x2B,0x1E,0x3C,0x3F,
9765
        0xC3,0xC7,0xC2,0xCF,0x2B,0x1E,0x3C,0x3F,
9766
        0xAD,0xF9,0x2E,0xE8,0xC9,0x9C,0xE3,0x43,
9766
        0xAD,0xF9,0x2E,0xE8,0xC9,0x9C,0xE3,0x43,
9767
        0x96,0xA7,0xF6,0x38,0xE9,0xC3,0x2C,0x6E,
9767
        0x96,0xA7,0xF6,0x38,0xE9,0xC3,0x2C,0x6E,
9768
        0x50,0x0F,0x8E,0xEC,0xAE,0xE3,0xE3,0x35,
9768
        0x50,0x0F,0x8E,0xEC,0xAE,0xE3,0xE3,0x35,
9769
        0xF6,0x14,0xE4,0x21,0xF0,0x13,0x81,0x2F,
9769
        0xF6,0x14,0xE4,0x21,0xF0,0x13,0x81,0x2F,
9770
        0x88,0x9E,0xAC,0xEF,0x7A,0xEC,0x5E,0x66,
9770
        0x88,0x9E,0xAC,0xEF,0x7A,0xEC,0x5E,0x66,
9771
        0x8C,0xEA,0xA7,0x80,0x3A,0xA6,0x9C,0xC1,
9771
        0x8C,0xEA,0xA7,0x80,0x3A,0xA6,0x9C,0xC1,
9772
        0x2B,0x04,0xBB,0xE7,0xF9,0x90,0xED,0xBB,
9772
        0x2B,0x04,0xBB,0xE7,0xF9,0x90,0xED,0xBB,
9773
        0x24,0x1B,0x05,0xEE,0x90,0xE0,0x33,0x12,
9773
        0x24,0x1B,0x05,0xEE,0x90,0xE0,0x33,0x12,
9774
        0x3F,0x55,0x78,0x18,0x1E,0x05,0x8C,0x19,
9774
        0x3F,0x55,0x78,0x18,0x1E,0x05,0x8C,0x19,
9775
        0xBC,0x23,0x1C,0x5A,0x88,0x03,0x7E,0xDF,
9775
        0xBC,0x23,0x1C,0x5A,0x88,0x03,0x7E,0xDF,
9776
        0x65,0x43,0x8D,0x71,0x7A,0x3E,0x7F,0xB0,
9776
        0x65,0x43,0x8D,0x71,0x7A,0x3E,0x7F,0xB0,
9777
        0x41,0xC0,0x87,0x3A,0x54,0x0F,0xF3,0xA8,
9777
        0x41,0xC0,0x87,0x3A,0x54,0x0F,0xF3,0xA8,
9778
        0x5E,0x0A,0x19,0xCE,0xD9,0xC1,0x1D,0x04,
9778
        0x5E,0x0A,0x19,0xCE,0xD9,0xC1,0x1D,0x04,
9779
        0xF6,0xF8,0xE1,0x41,0xF0,0x9B,0x25,0x1F,
9779
        0xF6,0xF8,0xE1,0x41,0xF0,0x9B,0x25,0x1F,
9780
        0x04,0x3B,0xDF,0xBC,0xC1,0x19,0xE4,0xFF,
9780
        0x04,0x3B,0xDF,0xBC,0xC1,0x19,0xE4,0xFF,
9781
        0x7F,0x0C,0xB0,0xCF,0x54,0x3E,0x9A,0x20,
9781
        0x7F,0x0C,0xB0,0xCF,0x54,0x3E,0x9A,0x20,
9782
        0x8E,0x80,0xE8,0xF3,0x87,0xC7,0xF0,0x26,
9782
        0x8E,0x80,0xE8,0xF3,0x87,0xC7,0xF0,0x26,
9783
        0xC7,0x87,0x83,0x3D,0x7A,0xE0,0x4E,0x22,
9783
        0xC7,0x87,0x83,0x3D,0x7A,0xE0,0x4E,0x22,
9784
        0x70,0x8F,0x5D,0x07,0xED,0x6B,0x9C,0x2F,
9784
        0x70,0x8F,0x5D,0x07,0xED,0x6B,0x9C,0x2F,
9785
        0x5A,0x30,0xEE,0x7B,0xCF,0x22,0xE0,0xC7,
9785
        0x5A,0x30,0xEE,0x7B,0xCF,0x22,0xE0,0xC7,
9786
        0x78,0x6C,0x01,0xC7,0xA1,0x04,0xDC,0xC1,
9786
        0x78,0x6C,0x01,0xC7,0xA1,0x04,0xDC,0xC1,
9787
        0x8E,0x6B,0x1C,0x42,0x51,0x60,0x74,0x28,
9787
        0x8E,0x6B,0x1C,0x42,0x51,0x60,0x74,0x28,
9788
        0xC1,0xC5,0x00,0x12,0x8C,0x63,0x9C,0xD1,
9788
        0xC1,0xC5,0x00,0x12,0x8C,0x63,0x9C,0xD1,
9789
        0xD0,0x97,0x48,0x1F,0xD2,0xE0,0x0C,0x1A,
9789
        0xD0,0x97,0x48,0x1F,0xD2,0xE0,0x0C,0x1A,
9790
        0xF6,0x3C,0x9F,0x50,0xB8,0x3D,0x01,0x8A,
9790
        0xF6,0x3C,0x9F,0x50,0xB8,0x3D,0x01,0x8A,
9791
        0x4E,0x28,0x20,0xC3,0x7D,0x06,0xC1,0x9E,
9791
        0x4E,0x28,0x20,0xC3,0x7D,0x06,0xC1,0x9E,
9792
        0x10,0xF8,0x19,0x84,0xFD,0xFF,0x0F,0x8E,
9792
        0x10,0xF8,0x19,0x84,0xFD,0xFF,0x0F,0x8E,
9793
        0x1E,0xF7,0x7B,0xA3,0x4F,0x8D,0x6C,0xEE,
9793
        0x1E,0xF7,0x7B,0xA3,0x4F,0x8D,0x6C,0xEE,
9794
        0x0F,0x01,0x27,0x70,0xEE,0xEC,0xD4,0x8C,
9794
        0x0F,0x01,0x27,0x70,0xEE,0xEC,0xD4,0x8C,
9795
        0x3B,0x33,0x60,0xCF,0x1F,0x1E,0x02,0x3F,
9795
        0x3B,0x33,0x60,0xCF,0x1F,0x1E,0x02,0x3F,
9796
        0x17,0x78,0xF8,0x1E,0x02,0x7E,0xF0,0x0F,
9796
        0x17,0x78,0xF8,0x1E,0x02,0x7E,0xF0,0x0F,
9797
        0xCC,0x06,0x07,0xE3,0x29,0xC2,0xD7,0x0E,
9797
        0xCC,0x06,0x07,0xE3,0x29,0xC2,0xD7,0x0E,
9798
        0x0E,0xCE,0x4F,0x03,0x06,0xE7,0xAF,0x50,
9798
        0x0E,0xCE,0x4F,0x03,0x06,0xE7,0xAF,0x50,
9799
        0x9F,0xE7,0x19,0x38,0xF6,0xD4,0xEB,0x7B,
9799
        0x9F,0xE7,0x19,0x38,0xF6,0xD4,0xEB,0x7B,
9800
        0x87,0xE7,0xEB,0x43,0x05,0xFE,0xA6,0xE7,
9800
        0x87,0xE7,0xEB,0x43,0x05,0xFE,0xA6,0xE7,
9801
        0x43,0x05,0x38,0x0E,0x0F,0xFC,0xB0,0xC2,
9801
        0x43,0x05,0x38,0x0E,0x0F,0xFC,0xB0,0xC2,
9802
        0x86,0xF0,0x28,0x80,0x3F,0xB5,0xF8,0xF8,
9802
        0x86,0xF0,0x28,0x80,0x3F,0xB5,0xF8,0xF8,
9803
        0x17,0xE7,0x29,0x82,0xDD,0x46,0xB0,0x87,
9803
        0x17,0xE7,0x29,0x82,0xDD,0x46,0xB0,0x87,
9804
        0x0B,0xC0,0x51,0xB4,0xB3,0x18,0x2A,0xCC,
9804
        0x0B,0xC0,0x51,0xB4,0xB3,0x18,0x2A,0xCC,
9805
        0x59,0x8C,0xFC,0xFF,0xCF,0x51,0xA8,0xB3,
9805
        0x59,0x8C,0xFC,0xFF,0xCF,0x51,0xA8,0xB3,
9806
        0x18,0x3D,0x5C,0x00,0x2E,0x04,0x1F,0x0F,
9806
        0x18,0x3D,0x5C,0x00,0x2E,0x04,0x1F,0x0F,
9807
        0x40,0x73,0x10,0x78,0x5C,0xF0,0x85,0xE0,
9807
        0x40,0x73,0x10,0x78,0x5C,0xF0,0x85,0xE0,
9808
        0x48,0x0E,0xE4,0xE9,0x00,0xF0,0x19,0x4A,
9808
        0x48,0x0E,0xE4,0xE9,0x00,0xF0,0x19,0x4A,
9809
        0xC3,0xA1,0x09,0x13,0x03,0x06,0x75,0x3E,
9809
        0xC3,0xA1,0x09,0x13,0x03,0x06,0x75,0x3E,
9810
        0xF0,0x09,0xC5,0xC7,0x0E,0x7E,0x36,0xF0,
9810
        0xF0,0x09,0xC5,0xC7,0x0E,0x7E,0x36,0xF0,
9811
        0x8D,0xDC,0x43,0xE5,0xA7,0x66,0x5F,0xF2,
9811
        0x8D,0xDC,0x43,0xE5,0xA7,0x66,0x5F,0xF2,
9812
        0x11,0xE0,0x02,0x75,0xA0,0x61,0xA0,0x46,
9812
        0x11,0xE0,0x02,0x75,0xA0,0x61,0xA0,0x46,
9813
        0xE4,0x23,0xD2,0xFF,0xFF,0xB9,0x0D,0x1B,
9813
        0xE4,0x23,0xD2,0xFF,0xFF,0xB9,0x0D,0x1B,
9814
        0x60,0x68,0xF4,0x1C,0x0E,0xE3,0x80,0xEB,
9814
        0x60,0x68,0xF4,0x1C,0x0E,0xE3,0x80,0xEB,
9815
        0x73,0x38,0x76,0x40,0x3E,0x87,0xC3,0x3F,
9815
        0x73,0x38,0x76,0x40,0x3E,0x87,0xC3,0x3F,
9816
        0x47,0xC3,0x1F,0x1B,0x3B,0xDD,0xF3,0x81,
9816
        0x47,0xC3,0x1F,0x1B,0x3B,0xDD,0xF3,0x81,
9817
        0xC1,0xBA,0x7E,0x63,0x06,0x06,0xB6,0x6F,
9817
        0xC1,0xBA,0x7E,0x63,0x06,0x06,0xB6,0x6F,
9818
        0x91,0x07,0x06,0x1C,0x51,0xCF,0xC6,0x57,
9818
        0x91,0x07,0x06,0x1C,0x51,0xCF,0xC6,0x57,
9819
        0x08,0x0F,0x0C,0x6C,0x80,0x1E,0x18,0xF0,
9819
        0x08,0x0F,0x0C,0x6C,0x80,0x1E,0x18,0xF0,
9820
        0x89,0x05,0x21,0x27,0x03,0x43,0x9D,0x32,
9820
        0x89,0x05,0x21,0x27,0x03,0x43,0x9D,0x32,
9821
        0x8C,0x1C,0xF3,0x89,0xC3,0xC3,0xF0,0xA1,
9821
        0x8C,0x1C,0xF3,0x89,0xC3,0xC3,0xF0,0xA1,
9822
        0x22,0xEA,0x33,0xC0,0x23,0x1E,0x1B,0x1B,
9822
        0x22,0xEA,0x33,0xC0,0x23,0x1E,0x1B,0x1B,
9823
        0xFB,0xFF,0x8F,0x0D,0x2C,0xC7,0x16,0x8F,
9823
        0xFB,0xFF,0x8F,0x0D,0x2C,0xC7,0x16,0x8F,
9824
        0x0D,0xFC,0x47,0x78,0xFC,0xD8,0xE0,0x8C,
9824
        0x0D,0xFC,0x47,0x78,0xFC,0xD8,0xE0,0x8C,
9825
        0xE5,0xD1,0xC4,0x97,0x99,0x23,0x3B,0x8D,
9825
        0xE5,0xD1,0xC4,0x97,0x99,0x23,0x3B,0x8D,
9826
        0x33,0x7B,0x0D,0xF1,0xD1,0xEE,0xF1,0xDB,
9826
        0x33,0x7B,0x0D,0xF1,0xD1,0xEE,0xF1,0xDB,
9827
        0x63,0x03,0x97,0x85,0xB1,0x01,0xA5,0x90,
9827
        0x63,0x03,0x97,0x85,0xB1,0x01,0xA5,0x90,
9828
        0x63,0x43,0x1F,0x52,0x7C,0x0A,0xB0,0x71,
9828
        0x63,0x43,0x1F,0x52,0x7C,0x0A,0xB0,0x71,
9829
        0x54,0x32,0x0F,0x1F,0xAF,0x7C,0x62,0x38,
9829
        0x54,0x32,0x0F,0x1F,0xAF,0x7C,0x62,0x38,
9830
        0xBA,0x20,0x6F,0xE8,0xBE,0x5C,0xF8,0x48,
9830
        0xBA,0x20,0x6F,0xE8,0xBE,0x5C,0xF8,0x48,
9831
        0x63,0x30,0x5F,0x5A,0x7C,0x06,0xE5,0x43,
9831
        0x63,0x30,0x5F,0x5A,0x7C,0x06,0xE5,0x43,
9832
        0x04,0xD7,0x57,0xC5,0x43,0x04,0x3E,0xA1,
9832
        0x04,0xD7,0x57,0xC5,0x43,0x04,0x3E,0xA1,
9833
        0x86,0x88,0x1E,0xCF,0xFF,0xFF,0x11,0xCC,
9833
        0x86,0x88,0x1E,0xCF,0xFF,0xFF,0x11,0xCC,
9834
        0x43,0x64,0x43,0x03,0xAF,0x87,0xA1,0x01,
9834
        0x43,0x64,0x43,0x03,0xAF,0x87,0xA1,0x01,
9835
        0xA5,0x98,0xC0,0x5E,0x85,0x87,0x46,0x4F,
9835
        0xA5,0x98,0xC0,0x5E,0x85,0x87,0x46,0x4F,
9836
        0x3F,0x3E,0x04,0x30,0x08,0xDF,0x06,0xD8,
9836
        0x3F,0x3E,0x04,0x30,0x08,0xDF,0x06,0xD8,
9837
        0x55,0xC0,0x57,0x21,0x83,0x24,0x18,0xE7,
9837
        0x55,0xC0,0x57,0x21,0x83,0x24,0x18,0xE7,
9838
        0x64,0x41,0x07,0x07,0x8E,0x21,0x79,0x70,
9838
        0x64,0x41,0x07,0x07,0x8E,0x21,0x79,0x70,
9839
        0xF0,0x07,0xE3,0x21,0x70,0x60,0xCF,0xE0,
9839
        0xF0,0x07,0xE3,0x21,0x70,0x60,0xCF,0xE0,
9840
        0xB9,0xE8,0x31,0xD8,0xA7,0x1D,0x9F,0x4A,
9840
        0xB9,0xE8,0x31,0xD8,0xA7,0x1D,0x9F,0x4A,
9841
        0xC0,0x77,0xE6,0x04,0xC7,0xE9,0x1D,0x7B,
9841
        0xC0,0x77,0xE6,0x04,0xC7,0xE9,0x1D,0x7B,
9842
        0x29,0xF0,0x08,0x1E,0xAD,0x3C,0x02,0x7E,
9842
        0x29,0xF0,0x08,0x1E,0xAD,0x3C,0x02,0x7E,
9843
        0xB4,0x02,0x66,0xFF,0xFF,0xA3,0x15,0x30,
9843
        0xB4,0x02,0x66,0xFF,0xFF,0xA3,0x15,0x30,
9844
        0x09,0x7A,0xE6,0xA4,0x03,0x77,0x34,0x18,
9844
        0x09,0x7A,0xE6,0xA4,0x03,0x77,0x34,0x18,
9845
        0xD4,0xD1,0x0A,0x5C,0x11,0xC0,0x75,0xDC,
9845
        0xD4,0xD1,0x0A,0x5C,0x11,0xC0,0x75,0xDC,
9846
        0xF0,0xD1,0x02,0xCE,0x50,0x0F,0xDA,0x07,
9846
        0xF0,0xD1,0x02,0xCE,0x50,0x0F,0xDA,0x07,
9847
        0x65,0xCF,0xDA,0x97,0x21,0x76,0xB4,0x00,
9847
        0x65,0xCF,0xDA,0x97,0x21,0x76,0xB4,0x00,
9848
        0x97,0x89,0x43,0x08,0xD0,0x04,0x3E,0x89,
9848
        0x97,0x89,0x43,0x08,0xD0,0x04,0x3E,0x89,
9849
        0x67,0xEF,0x43,0x03,0xB3,0x8A,0xA1,0x01,
9849
        0x67,0xEF,0x43,0x03,0xB3,0x8A,0xA1,0x01,
9850
        0xA5,0xA3,0x01,0xEE,0x44,0x81,0xFD,0xFF,
9850
        0xA5,0xA3,0x01,0xEE,0x44,0x81,0xFD,0xFF,
9851
        0x9F,0x28,0x60,0xDE,0x30,0x70,0x07,0x0A,
9851
        0x9F,0x28,0x60,0xDE,0x30,0x70,0x07,0x0A,
9852
        0xC0,0xCD,0xE9,0xDB,0xE3,0xE2,0xD0,0x38,
9852
        0xC0,0xCD,0xE9,0xDB,0xE3,0xE2,0xD0,0x38,
9853
        0xC4,0xE7,0xA7,0x73,0xF6,0xD1,0xE8,0x4C,
9853
        0xC4,0xE7,0xA7,0x73,0xF6,0xD1,0xE8,0x4C,
9854
        0x71,0x67,0x11,0x30,0x9C,0x7D,0x11,0x8F,
9854
        0x71,0x67,0x11,0x30,0x9C,0x7D,0x11,0x8F,
9855
        0x18,0x03,0xF9,0x81,0x21,0x59,0x30,0x28,
9855
        0x18,0x03,0xF9,0x81,0x21,0x59,0x30,0x28,
9856
        0x16,0x0F,0xC5,0x07,0x03,0x0E,0xEC,0x23,
9856
        0x16,0x0F,0xC5,0x07,0x03,0x0E,0xEC,0x23,
9857
        0x02,0x3B,0x17,0xB0,0x73,0xAD,0xE1,0xF8,
9857
        0x02,0x3B,0x17,0xB0,0x73,0xAD,0xE1,0xF8,
9858
        0x59,0xC0,0xA7,0x84,0xB7,0xA6,0x17,0x7B,
9858
        0x59,0xC0,0xA7,0x84,0xB7,0xA6,0x17,0x7B,
9859
        0x9F,0xD7,0x7D,0xD6,0x08,0xC9,0xCE,0xF4,
9859
        0x9F,0xD7,0x7D,0xD6,0x08,0xC9,0xCE,0xF4,
9860
        0x3E,0x89,0xE2,0x0E,0xA2,0x70,0x4E,0x9F,
9860
        0x3E,0x89,0xE2,0x0E,0xA2,0x70,0x4E,0x9F,
9861
        0xE0,0x22,0xF0,0x65,0xDF,0xA3,0xE0,0xA7,
9861
        0xE0,0x22,0xF0,0x65,0xDF,0xA3,0xE0,0xA7,
9862
        0x07,0xCF,0xF1,0x8D,0xC1,0xA7,0x07,0xE6,
9862
        0x07,0xCF,0xF1,0x8D,0xC1,0xA7,0x07,0xE6,
9863
        0x7E,0xF8,0x9A,0xF1,0x33,0xC3,0xE3,0x43,
9863
        0x7E,0xF8,0x9A,0xF1,0x33,0xC3,0xE3,0x43,
9864
        0x88,0x27,0xE2,0xDA,0xA6,0x20,0x5B,0x18,
9864
        0x88,0x27,0xE2,0xDA,0xA6,0x20,0x5B,0x18,
9865
        0x42,0x09,0xF4,0xFF,0x8F,0x10,0xE5,0x6D,
9865
        0x42,0x09,0xF4,0xFF,0x8F,0x10,0xE5,0x6D,
9866
        0x20,0xCA,0x29,0x44,0x88,0x12,0xA4,0xB1,
9866
        0x20,0xCA,0x29,0x44,0x88,0x12,0xA4,0xB1,
9867
        0xC9,0x0B,0x35,0xCA,0xD9,0x45,0x6E,0x6D,
9867
        0xC9,0x0B,0x35,0xCA,0xD9,0x45,0x6E,0x6D,
9868
        0xF6,0x82,0x0B,0x14,0x2A,0x66,0x9C,0x28,
9868
        0xF6,0x82,0x0B,0x14,0x2A,0x66,0x9C,0x28,
9869
        0xEF,0x10,0xB1,0xDA,0x1F,0x04,0x91,0xF4,
9869
        0xEF,0x10,0xB1,0xDA,0x1F,0x04,0x91,0xF4,
9870
        0x32,0xD0,0x71,0xC9,0x91,0x0E,0x7D,0xE8,
9870
        0x32,0xD0,0x71,0xC9,0x91,0x0E,0x7D,0xE8,
9871
        0x61,0xFB,0x04,0x8C,0x3F,0x48,0xE2,0xAE,
9871
        0x61,0xFB,0x04,0x8C,0x3F,0x48,0xE2,0xAE,
9872
        0x2A,0x3E,0x28,0xF8,0x00,0x80,0x77,0x09,
9872
        0x2A,0x3E,0x28,0xF8,0x00,0x80,0x77,0x09,
9873
        0xA8,0x5B,0x9D,0xC7,0xED,0xF3,0x06,0xF8,
9873
        0xA8,0x5B,0x9D,0xC7,0xED,0xF3,0x06,0xF8,
9874
        0xAF,0x17,0x58,0x82,0xF2,0x07,0x81,0x1A,
9874
        0xAF,0x17,0x58,0x82,0xF2,0x07,0x81,0x1A,
9875
        0x99,0xA1,0x3D,0xCC,0xB7,0x19,0x43,0xBE,
9875
        0x99,0xA1,0x3D,0xCC,0xB7,0x19,0x43,0xBE,
9876
        0x07,0x1C,0x16,0x3B,0x27,0xF9,0xF0,0x08,
9876
        0x07,0x1C,0x16,0x3B,0x27,0xF9,0xF0,0x08,
9877
        0x1C,0x8E,0x01,0x4F,0x1B,0xBE,0x51,0x7B,
9877
        0x1C,0x8E,0x01,0x4F,0x1B,0xBE,0x51,0x7B,
9878
        0xBE,0x3E,0x62,0x01,0x8E,0xFE,0xFF,0x47,
9878
        0xBE,0x3E,0x62,0x01,0x8E,0xFE,0xFF,0x47,
9879
        0x2C,0x30,0x9D,0xDF,0x7D,0x82,0x01,0xC7,
9879
        0x2C,0x30,0x9D,0xDF,0x7D,0x82,0x01,0xC7,
9880
        0xCD,0x82,0x9F,0x61,0x00,0x67,0x40,0xCF,
9880
        0xCD,0x82,0x9F,0x61,0x00,0x67,0x40,0xCF,
9881
        0x30,0x60,0x1F,0x2A,0x6E,0x08,0x5C,0xEE,
9881
        0x30,0x60,0x1F,0x2A,0x6E,0x08,0x5C,0xEE,
9882
        0x8A,0x28,0x90,0x05,0xC2,0xA0,0x0E,0xFD,
9882
        0x8A,0x28,0x90,0x05,0xC2,0xA0,0x0E,0xFD,
9883
        0xE4,0x08,0x42,0xCF,0x9C,0x70,0x86,0x72,
9883
        0xE4,0x08,0x42,0xCF,0x9C,0x70,0x86,0x72,
9884
        0xB2,0xBD,0x5F,0x1D,0xC8,0x2D,0xC2,0x43,
9884
        0xB2,0xBD,0x5F,0x1D,0xC8,0x2D,0xC2,0x43,
9885
        0x3D,0x8B,0xC7,0x04,0x76,0xDA,0x02,0x36,
9885
        0x3D,0x8B,0xC7,0x04,0x76,0xDA,0x02,0x36,
9886
        0xFF,0xFF,0xE3,0x29,0xB0,0x98,0xF7,0xD3,
9886
        0xFF,0xFF,0xE3,0x29,0xB0,0x98,0xF7,0xD3,
9887
        0x69,0x84,0x63,0x03,0xFB,0x71,0x0B,0x38,
9887
        0x69,0x84,0x63,0x03,0xFB,0x71,0x0B,0x38,
9888
        0x1D,0xCC,0xE0,0xDC,0x7F,0xD8,0x2D,0x1A,
9888
        0x1D,0xCC,0xE0,0xDC,0x7F,0xD8,0x2D,0x1A,
9889
        0x37,0x34,0xB0,0x0D,0xCC,0x43,0x03,0x3E,
9889
        0x37,0x34,0xB0,0x0D,0xCC,0x43,0x03,0x3E,
9890
        0x27,0x47,0x30,0x9E,0x98,0xF8,0x55,0xE2,
9890
        0x27,0x47,0x30,0x9E,0x98,0xF8,0x55,0xE2,
9891
        0xE1,0x89,0x1F,0x43,0xC0,0xFA,0xFF,0x3F,
9891
        0xE1,0x89,0x1F,0x43,0xC0,0xFA,0xFF,0x3F,
9892
        0x99,0x01,0xF6,0x84,0x1E,0xCB,0x50,0xD2,
9892
        0x99,0x01,0xF6,0x84,0x1E,0xCB,0x50,0xD2,
9893
        0x4E,0x66,0x80,0xC0,0xFB,0xD8,0x3B,0xC3,
9893
        0x4E,0x66,0x80,0xC0,0xFB,0xD8,0x3B,0xC3,
9894
        0x4B,0x83,0xE7,0x74,0xD2,0xCF,0x62,0x3E,
9894
        0x4B,0x83,0xE7,0x74,0xD2,0xCF,0x62,0x3E,
9895
        0x99,0x19,0x21,0x0A,0xBB,0x8F,0x19,0xAD,
9895
        0x99,0x19,0x21,0x0A,0xBB,0x8F,0x19,0xAD,
9896
        0x37,0x14,0xCD,0x3C,0xE8,0x3B,0x99,0x51,
9896
        0x37,0x14,0xCD,0x3C,0xE8,0x3B,0x99,0x51,
9897
        0x62,0x46,0x6A,0x0E,0x4C,0x48,0x11,0x0F,
9897
        0x62,0x46,0x6A,0x0E,0x4C,0x48,0x11,0x0F,
9898
        0x27,0x4A,0x88,0x60,0xAF,0x13,0x6F,0x67,
9898
        0x27,0x4A,0x88,0x60,0xAF,0x13,0x6F,0x67,
9899
        0x4F,0x66,0x4C,0xD6,0xC9,0x0C,0x24,0xFF,
9899
        0x4F,0x66,0x4C,0xD6,0xC9,0x0C,0x24,0xFF,
9900
        0xFF,0x93,0x19,0x98,0x5C,0x9F,0xCC,0x80,
9900
        0xFF,0x93,0x19,0x98,0x5C,0x9F,0xCC,0x80,
9901
        0xCA,0x39,0x0A,0x7F,0x32,0x03,0x78,0x74,
9901
        0xCA,0x39,0x0A,0x7F,0x32,0x03,0x78,0x74,
9902
        0xC0,0xC2,0x9D,0xCC,0xC0,0xF2,0xFF,0x3F,
9902
        0xC0,0xC2,0x9D,0xCC,0xC0,0xF2,0xFF,0x3F,
9903
        0xC4,0x00,0xCE,0xC7,0x0A,0x63,0x0C,0x3C,
9903
        0xC4,0x00,0xCE,0xC7,0x0A,0x63,0x0C,0x3C,
9904
        0xDA,0xC1,0x0C,0x15,0xE6,0x6C,0x86,0x0E,
9904
        0xDA,0xC1,0x0C,0x15,0xE6,0x6C,0x86,0x0E,
9905
        0x72,0x08,0xA1,0xC1,0x0E,0x21,0x50,0xE6,
9905
        0x72,0x08,0xA1,0xC1,0x0E,0x21,0x50,0xE6,
9906
        0x72,0xA0,0xA7,0xF0,0x9A,0xE0,0x73,0x14,
9906
        0x72,0xA0,0xA7,0xF0,0x9A,0xE0,0x73,0x14,
9907
        0xD8,0x0F,0x67,0xC0,0xE1,0xD4,0x80,0x0F,
9907
        0xD8,0x0F,0x67,0xC0,0xE1,0xD4,0x80,0x0F,
9908
        0x74,0xE2,0x42,0x8F,0xC2,0x23,0x0E,0x58,
9908
        0x74,0xE2,0x42,0x8F,0xC2,0x23,0x0E,0x58,
9909
        0xFD,0xC0,0xC8,0xFF,0xFF,0x64,0x06,0x18,
9909
        0xFD,0xC0,0xC8,0xFF,0xFF,0x64,0x06,0x18,
9910
        0x78,0x6A,0xF8,0x40,0x82,0x63,0x31,0xEA,
9910
        0x78,0x6A,0xF8,0x40,0x82,0x63,0x31,0xEA,
9911
        0x1B,0xC4,0x21,0xBE,0x8D,0xF8,0xE8,0xFE,
9911
        0x1B,0xC4,0x21,0xBE,0x8D,0xF8,0xE8,0xFE,
9912
        0x6A,0xE2,0x4B,0x00,0xE6,0x42,0xE2,0xD3,
9912
        0x6A,0xE2,0x4B,0x00,0xE6,0x42,0xE2,0xD3,
9913
        0x09,0xB3,0x70,0x38,0x03,0x5A,0x43,0x60,
9913
        0x09,0xB3,0x70,0x38,0x03,0x5A,0x43,0x60,
9914
        0x57,0x26,0xCF,0x9C,0x0F,0xE1,0x6C,0x3C,
9914
        0x57,0x26,0xCF,0x9C,0x0F,0xE1,0x6C,0x3C,
9915
        0x7A,0xDC,0xE9,0x04,0xDE,0x38,0x7C,0x3A,
9915
        0x7A,0xDC,0xE9,0x04,0xDE,0x38,0x7C,0x3A,
9916
        0x01,0x5E,0x07,0x0C,0xCC,0x0C,0xC2,0x3F,
9916
        0x01,0x5E,0x07,0x0C,0xCC,0x0C,0xC2,0x3F,
9917
        0x84,0xB0,0x21,0x9C,0xAA,0xC7,0x70,0xEE,
9917
        0x84,0xB0,0x21,0x9C,0xAA,0xC7,0x70,0xEE,
9918
        0xAF,0x38,0x3E,0x9D,0x80,0xF3,0xFF,0x7F,
9918
        0xAF,0x38,0x3E,0x9D,0x80,0xF3,0xFF,0x7F,
9919
        0x62,0x03,0x0C,0x0A,0x7E,0x32,0xF8,0xB8,
9919
        0x62,0x03,0x0C,0x0A,0x7E,0x32,0xF8,0xB8,
9920
        0x46,0x25,0xC2,0xA0,0x8E,0xE6,0x80,0x7B,
9920
        0x46,0x25,0xC2,0xA0,0x8E,0xE6,0x80,0x7B,
9921
        0x98,0x27,0x36,0x26,0x6F,0xC5,0x1A,0x8B,
9921
        0x98,0x27,0x36,0x26,0x6F,0xC5,0x1A,0x8B,
9922
        0x4F,0x6C,0x30,0xFF,0xFF,0x27,0x36,0x80,
9922
        0x4F,0x6C,0x30,0xFF,0xFF,0x27,0x36,0x80,
9923
        0xD1,0x87,0x20,0xB0,0xFD,0xFF,0x0F,0x41,
9923
        0xD1,0x87,0x20,0xB0,0xFD,0xFF,0x0F,0x41,
9924
        0x60,0x1C,0xA0,0x0F,0x41,0x80,0x9B,0xD3,
9924
        0x60,0x1C,0xA0,0x0F,0x41,0x80,0x9B,0xD3,
9925
        0x09,0xEE,0xC4,0x07,0xB6,0x63,0x10,0x60,
9925
        0x09,0xEE,0xC4,0x07,0xB6,0x63,0x10,0x60,
9926
        0x6D,0xE8,0x3E,0x06,0x81,0xF9,0xFF,0x3F,
9926
        0x6D,0xE8,0x3E,0x06,0x81,0xF9,0xFF,0x3F,
9927
        0x5A,0x98,0xA3,0xE0,0xC2,0x8E,0x7C,0x28,
9927
        0x5A,0x98,0xA3,0xE0,0xC2,0x8E,0x7C,0x28,
9928
        0x29,0xA7,0x3E,0xB4,0x0C,0x20,0x69,0x38,
9928
        0x29,0xA7,0x3E,0xB4,0x0C,0x20,0x69,0x38,
9929
        0xC9,0x01,0x9D,0xD3,0x3D,0x70,0x92,0x75,
9929
        0xC9,0x01,0x9D,0xD3,0x3D,0x70,0x92,0x75,
9930
        0xEA,0x40,0x8F,0xC7,0xA0,0xAF,0x1C,0xBE,
9930
        0xEA,0x40,0x8F,0xC7,0xA0,0xAF,0x1C,0xBE,
9931
        0x12,0xF0,0x23,0x07,0x93,0x00,0xAA,0x41,
9931
        0x12,0xF0,0x23,0x07,0x93,0x00,0xAA,0x41,
9932
        0xFA,0xCC,0x07,0x9C,0x8E,0x1C,0xE0,0x38,
9932
        0xFA,0xCC,0x07,0x9C,0x8E,0x1C,0xE0,0x38,
9933
        0x26,0x05,0xC6,0xDE,0x0E,0xDE,0x22,0x3D,
9933
        0x26,0x05,0xC6,0xDE,0x0E,0xDE,0x22,0x3D,
9934
        0x89,0xA7,0xA1,0xE3,0x0C,0x51,0x38,0x26,
9934
        0x89,0xA7,0xA1,0xE3,0x0C,0x51,0x38,0x26,
9935
        0x39,0x18,0x44,0x7A,0x95,0x62,0x03,0x7C,
9935
        0x39,0x18,0x44,0x7A,0x95,0x62,0x03,0x7C,
9936
        0xAB,0xF1,0xD9,0xC8,0x07,0x10,0x78,0xE3,
9936
        0xAB,0xF1,0xD9,0xC8,0x07,0x10,0x78,0xE3,
9937
        0xF6,0xD8,0x61,0xFF,0xFF,0x0F,0x75,0xC0,
9937
        0xF6,0xD8,0x61,0xFF,0xFF,0x0F,0x75,0xC0,
9938
        0x01,0xE2,0xA4,0xF8,0x21,0xC3,0x98,0x67,
9938
        0x01,0xE2,0xA4,0xF8,0x21,0xC3,0x98,0x67,
9939
        0xC5,0x0F,0x75,0x80,0xF5,0x18,0x27,0x3A,
9939
        0xC5,0x0F,0x75,0x80,0xF5,0x18,0x27,0x3A,
9940
        0x94,0xF0,0x43,0x1D,0x20,0xE8,0xFF,0x7F,
9940
        0x94,0xF0,0x43,0x1D,0x20,0xE8,0xFF,0x7F,
9941
        0xA8,0x03,0x86,0x38,0x6F,0x24,0xD1,0x1E,
9941
        0xA8,0x03,0x86,0x38,0x6F,0x24,0xD1,0x1E,
9942
        0xEA,0x98,0xE8,0x43,0x1D,0x40,0xC8,0xFF,
9942
        0xEA,0x98,0xE8,0x43,0x1D,0x40,0xC8,0xFF,
9943
        0xFF,0xA1,0x0E,0x18,0x9E,0x87,0x00,0xAE,
9943
        0xFF,0xA1,0x0E,0x18,0x9E,0x87,0x00,0xAE,
9944
        0x9C,0xEF,0xC0,0x7C,0x22,0x02,0xEF,0xFF,
9944
        0x9C,0xEF,0xC0,0x7C,0x22,0x02,0xEF,0xFF,
9945
        0xFF,0x7C,0x07,0xB8,0x1B,0x2D,0xCC,0x51,
9945
        0xFF,0x7C,0x07,0xB8,0x1B,0x2D,0xCC,0x51,
9946
        0x70,0x41,0xAF,0x0E,0x03,0x51,0x09,0x30,
9946
        0x70,0x41,0xAF,0x0E,0x03,0x51,0x09,0x30,
9947
        0x28,0x02,0xC7,0x5F,0x9B,0x60,0x1C,0xEA,
9947
        0x28,0x02,0xC7,0x5F,0x9B,0x60,0x1C,0xEA,
9948
        0x7C,0x87,0x3E,0x2F,0x78,0xD8,0x4F,0x05,
9948
        0x7C,0x87,0x3E,0x2F,0x78,0xD8,0x4F,0x05,
9949
        0x9E,0xC4,0xA9,0xFA,0x5A,0x70,0x14,0x4F,
9949
        0x9E,0xC4,0xA9,0xFA,0x5A,0x70,0x14,0x4F,
9950
        0x00,0x3E,0xE1,0x01,0xFF,0xA1,0xC1,0x9A,
9950
        0x00,0x3E,0xE1,0x01,0xFF,0xA1,0xC1,0x9A,
9951
        0x44,0xF1,0x43,0x03,0xF5,0x11,0xE4,0xFF,
9951
        0x44,0xF1,0x43,0x03,0xF5,0x11,0xE4,0xFF,
9952
        0x7F,0x68,0xC0,0x28,0xEA,0xF9,0x06,0x7D,
9952
        0x7F,0x68,0xC0,0x28,0xEA,0xF9,0x06,0x7D,
9953
        0xCC,0xF2,0xD9,0x20,0xE6,0x0B,0x48,0x84,
9953
        0xCC,0xF2,0xD9,0x20,0xE6,0x0B,0x48,0x84,
9954
        0x07,0x10,0x5F,0x1F,0xD8,0x71,0xD2,0x67,
9954
        0x07,0x10,0x5F,0x1F,0xD8,0x71,0xD2,0x67,
9955
        0xA0,0x40,0x51,0xDE,0x37,0xF8,0x09,0x07,
9955
        0xA0,0x40,0x51,0xDE,0x37,0xF8,0x09,0x07,
9956
        0x5C,0x83,0xF3,0x09,0x07,0xBC,0x87,0x23,
9956
        0x5C,0x83,0xF3,0x09,0x07,0xBC,0x87,0x23,
9957
        0x1F,0x4B,0xC0,0x77,0xD0,0x84,0x73,0x81,
9957
        0x1F,0x4B,0xC0,0x77,0xD0,0x84,0x73,0x81,
9958
        0xF1,0x8D,0x8D,0x9D,0x06,0xC0,0x76,0x00,
9958
        0xF1,0x8D,0x8D,0x9D,0x06,0xC0,0x76,0x00,
9959
        0x06,0xDF,0x69,0x00,0x1C,0xC7,0x24,0x7E,
9959
        0x06,0xDF,0x69,0x00,0x1C,0xC7,0x24,0x7E,
9960
        0x3A,0x04,0x13,0xCC,0xC1,0xBC,0x34,0xFB,
9960
        0x3A,0x04,0x13,0xCC,0xC1,0xBC,0x34,0xFB,
9961
        0xFF,0xEF,0xFD,0x94,0x43,0xCF,0x86,0x80,
9961
        0xFF,0xEF,0xFD,0x94,0x43,0xCF,0x86,0x80,
9962
        0x75,0x49,0x07,0x43,0x94,0x88,0xB3,0x21,
9962
        0x75,0x49,0x07,0x43,0x94,0x88,0xB3,0x21,
9963
        0x20,0xFD,0xFF,0x7F,0x36,0xC4,0x20,0xC4,
9963
        0x20,0xFD,0xFF,0x7F,0x36,0xC4,0x20,0xC4,
9964
        0x09,0xFC,0x12,0xD1,0xDC,0xD9,0x90,0xAE,
9964
        0x09,0xFC,0x12,0xD1,0xDC,0xD9,0x90,0xAE,
9965
        0xD8,0x67,0x43,0x80,0xE1,0xFF,0xFF,0x23,
9965
        0xD8,0x67,0x43,0x80,0xE1,0xFF,0xFF,0x23,
9966
        0x00,0xF6,0x7C,0x04,0x38,0x3D,0x64,0x83,
9966
        0x00,0xF6,0x7C,0x04,0x38,0x3D,0x64,0x83,
9967
        0xE7,0x14,0x08,0xE3,0xE4,0x03,0x38,0xFE,
9967
        0xE7,0x14,0x08,0xE3,0xE4,0x03,0x38,0xFE,
9968
        0xFF,0x8F,0x15,0xE6,0x18,0x78,0xEA,0x97,
9968
        0xFF,0x8F,0x15,0xE6,0x18,0x78,0xEA,0x97,
9969
        0x9B,0x8F,0x03,0x54,0xD4,0x2B,0xC2,0x30,
9969
        0x9B,0x8F,0x03,0x54,0xD4,0x2B,0xC2,0x30,
9970
        0x94,0xC5,0x87,0x05,0x1F,0x11,0xF8,0x61,
9970
        0x94,0xC5,0x87,0x05,0x1F,0x11,0xF8,0x61,
9971
        0xC1,0x23,0xA8,0x78,0x9C,0xF4,0x74,0xE3,
9971
        0xC1,0x23,0xA8,0x78,0x9C,0xF4,0x74,0xE3,
9972
        0x33,0x21,0x3B,0x24,0x38,0xFC,0x20,0xE9,
9972
        0x33,0x21,0x3B,0x24,0x38,0xFC,0x20,0xE9,
9973
        0x41,0x13,0x3C,0xE7,0x23,0x78,0xB7,0x1E,
9973
        0x41,0x13,0x3C,0xE7,0x23,0x78,0xB7,0x1E,
9974
        0x38,0xA7,0x02,0xC0,0x4D,0xAE,0x27,0xA3,
9974
        0x38,0xA7,0x02,0xC0,0x4D,0xAE,0x27,0xA3,
9975
        0x4E,0x17,0x0E,0x70,0x8E,0x92,0x8D,0x63,
9975
        0x4E,0x17,0x0E,0x70,0x8E,0x92,0x8D,0x63,
9976
        0x08,0xE5,0x70,0xCC,0xB7,0x87,0xA6,0xC9,
9976
        0x08,0xE5,0x70,0xCC,0xB7,0x87,0xA6,0xC9,
9977
        0x4E,0x56,0x30,0x63,0x41,0xEA,0x24,0xE0,
9977
        0x4E,0x56,0x30,0x63,0x41,0xEA,0x24,0xE0,
9978
        0x01,0x38,0x10,0x8C,0xB4,0x93,0x68,0x34,
9978
        0x01,0x38,0x10,0x8C,0xB4,0x93,0x68,0x34,
9979
        0x86,0xB3,0x5A,0x18,0xC1,0x19,0xC4,0xC7,
9979
        0x86,0xB3,0x5A,0x18,0xC1,0x19,0xC4,0xC7,
9980
        0x11,0xE7,0x3A,0x19,0xA1,0x3F,0x07,0x3E,
9980
        0x11,0xE7,0x3A,0x19,0xA1,0x3F,0x07,0x3E,
9981
        0x15,0x61,0x82,0xDC,0x4B,0xE8,0xBC,0x7D,
9981
        0x15,0x61,0x82,0xDC,0x4B,0xE8,0xBC,0x7D,
9982
        0x37,0xE0,0x57,0x61,0x8F,0xC5,0xFF,0x7F,
9982
        0x37,0xE0,0x57,0x61,0x8F,0xC5,0xFF,0x7F,
9983
        0x60,0xDF,0x4E,0xC0,0x31,0x17,0xAB,0x01,
9983
        0x60,0xDF,0x4E,0xC0,0x31,0x17,0xAB,0x01,
9984
        0x45,0x0D,0xC0,0x68,0x98,0x53,0xC0,0x53,
9984
        0x45,0x0D,0xC0,0x68,0x98,0x53,0xC0,0x53,
9985
        0x09,0xB8,0x82,0xCD,0x0D,0x7D,0x61,0xB1,
9985
        0x09,0xB8,0x82,0xCD,0x0D,0x7D,0x61,0xB1,
9986
        0xD6,0xA9,0xE8,0x14,0xF4,0x3E,0x70,0x70,
9986
        0xD6,0xA9,0xE8,0x14,0xF4,0x3E,0x70,0x70,
9987
        0xC0,0x63,0xF6,0x1E,0x1C,0x2C,0x34,0x0F,
9987
        0xC0,0x63,0xF6,0x1E,0x1C,0x2C,0x34,0x0F,
9988
        0x0E,0x6C,0xD9,0x06,0x87,0x56,0x72,0x17,
9988
        0x0E,0x6C,0xD9,0x06,0x87,0x56,0x72,0x17,
9989
        0x21,0x87,0x0F,0xFC,0xEC,0x80,0x03,0xA0,
9989
        0x21,0x87,0x0F,0xFC,0xEC,0x80,0x03,0xA0,
9990
        0x67,0x07,0x0B,0xC9,0xB3,0x03,0x9B,0xBE,
9990
        0x67,0x07,0x0B,0xC9,0xB3,0x03,0x9B,0xBE,
9991
        0xB3,0x08,0x28,0x70,0xFE,0xFF,0x11,0xDE,
9991
        0xB3,0x08,0x28,0x70,0xFE,0xFF,0x11,0xDE,
9992
        0x3B,0x7C,0x6E,0x79,0xF6,0x60,0x63,0x78,
9992
        0x3B,0x7C,0x6E,0x79,0xF6,0x60,0x63,0x78,
9993
        0x74,0x31,0x9A,0xD1,0xB9,0xA6,0xDB,0x04,
9993
        0x74,0x31,0x9A,0xD1,0xB9,0xA6,0xDB,0x04,
9994
        0x4A,0xC5,0x6D,0x82,0x82,0xF8,0x06,0xE0,
9994
        0x4A,0xC5,0x6D,0x82,0x82,0xF8,0x06,0xE0,
9995
        0x84,0x34,0xBA,0x75,0xE2,0x66,0x62,0xFC,
9995
        0x84,0x34,0xBA,0x75,0xE2,0x66,0x62,0xFC,
9996
        0x47,0x0C,0x1F,0x11,0x0E,0xE9,0x6C,0x4D,
9996
        0x47,0x0C,0x1F,0x11,0x0E,0xE9,0x6C,0x4D,
9997
        0x30,0x0F,0xA4,0x9E,0x81,0xBE,0xB3,0xE1,
9997
        0x30,0x0F,0xA4,0x9E,0x81,0xBE,0xB3,0xE1,
9998
        0x67,0x1F,0xF2,0xC1,0xC5,0xD3,0xF0,0xF5,
9998
        0x67,0x1F,0xF2,0xC1,0xC5,0xD3,0xF0,0xF5,
9999
        0x86,0xDC,0x3B,0xE8,0xB4,0x7D,0x66,0xC0,
9999
        0x86,0xDC,0x3B,0xE8,0xB4,0x7D,0x66,0xC0,
10000
        0x1C,0x74,0x7D,0x9D,0x7A,0x83,0x27,0x57,
10000
        0x1C,0x74,0x7D,0x9D,0x7A,0x83,0x27,0x57,
10001
        0x09,0xEA,0xE1,0x02,0x42,0x2F,0x34,0xBE,
10001
        0x09,0xEA,0xE1,0x02,0x42,0x2F,0x34,0xBE,
10002
        0xDC,0x25,0x78,0xE0,0xF4,0xE9,0xEE,0xBD,
10002
        0xDC,0x25,0x78,0xE0,0xF4,0xE9,0xEE,0xBD,
10003
        0x84,0x9D,0xF1,0x12,0xBC,0xE0,0x25,0x98,
10003
        0x84,0x9D,0xF1,0x12,0xBC,0xE0,0x25,0x98,
10004
        0x77,0x10,0xA8,0x51,0x79,0x10,0x98,0xAB,
10004
        0x77,0x10,0xA8,0x51,0x79,0x10,0x98,0xAB,
10005
        0x3C,0xCB,0x37,0x06,0x54,0xB2,0x8B,0x16,
10005
        0x3C,0xCB,0x37,0x06,0x54,0xB2,0x8B,0x16,
10006
        0x3D,0xC3,0xBC,0xC3,0xF8,0x92,0xE0,0xEB,
10006
        0x3D,0xC3,0xBC,0xC3,0xF8,0x92,0xE0,0xEB,
10007
        0x87,0xCF,0x2D,0x5E,0xC0,0xEB,0x16,0x0C,
10007
        0x87,0xCF,0x2D,0x5E,0xC0,0xEB,0x16,0x0C,
10008
        0x82,0x67,0xA0,0x57,0x17,0xDF,0xD9,0x0D,
10008
        0x82,0x67,0xA0,0x57,0x17,0xDF,0xD9,0x0D,
10009
        0xFC,0x2A,0xF0,0x46,0x13,0x22,0x98,0x61,
10009
        0xFC,0x2A,0xF0,0x46,0x13,0x22,0x98,0x61,
10010
        0x0F,0xFF,0xDD,0xDD,0xA8,0xBE,0xE9,0x18,
10010
        0x0F,0xFF,0xDD,0xDD,0xA8,0xBE,0xE9,0x18,
10011
        0xEB,0x75,0xC4,0x23,0xE5,0xC7,0x96,0x03,
10011
        0xEB,0x75,0xC4,0x23,0xE5,0xC7,0x96,0x03,
10012
        0x8A,0xF4,0xF2,0xE6,0x09,0xF8,0x2C,0xE3,
10012
        0x8A,0xF4,0xF2,0xE6,0x09,0xF8,0x2C,0xE3,
10013
        0x53,0xDD,0x49,0xF9,0x7A,0x68,0xF4,0x57,
10013
        0x53,0xDD,0x49,0xF9,0x7A,0x68,0xF4,0x57,
10014
        0x08,0x1F,0x7E,0x8C,0xEC,0x73,0x0E,0x3B,
10014
        0x08,0x1F,0x7E,0x8C,0xEC,0x73,0x0E,0x3B,
10015
        0xDF,0xB1,0x41,0x71,0xC4,0x07,0x86,0x97,
10015
        0xDF,0xB1,0x41,0x71,0xC4,0x07,0x86,0x97,
10016
        0x1A,0x4F,0x85,0x9D,0xBB,0x60,0x1C,0x1C,
10016
        0x1A,0x4F,0x85,0x9D,0xBB,0x60,0x1C,0x1C,
10017
        0xD8,0xB1,0x08,0x73,0x7C,0x05,0xD7,0xC9,
10017
        0xD8,0xB1,0x08,0x73,0x7C,0x05,0xD7,0xC9,
10018
        0xE6,0xFF,0xFF,0xE4,0x00,0x6E,0x78,0xCC,
10018
        0xE6,0xFF,0xFF,0xE4,0x00,0x6E,0x78,0xCC,
10019
        0xC1,0xD7,0xE7,0x0D,0xDF,0x0C,0x3C,0x2E,
10019
        0xC1,0xD7,0xE7,0x0D,0xDF,0x0C,0x3C,0x2E,
10020
        0x7E,0xE4,0xF0,0x49,0xE3,0xA5,0xD3,0xD8,
10020
        0x7E,0xE4,0xF0,0x49,0xE3,0xA5,0xD3,0xD8,
10021
        0xA7,0xE9,0xA3,0xD1,0xCB,0x9B,0x4F,0x2F,
10021
        0xA7,0xE9,0xA3,0xD1,0xCB,0x9B,0x4F,0x2F,
10022
        0x18,0x58,0x5F,0x1A,0x38,0xAC,0xD1,0xC2,
10022
        0x18,0x58,0x5F,0x1A,0x38,0xAC,0xD1,0xC2,
10023
        0x3E,0x06,0x9C,0xB9,0x2F,0x44,0xB8,0xC3,
10023
        0x3E,0x06,0x9C,0xB9,0x2F,0x44,0xB8,0xC3,
10024
        0x23,0x58,0x00,0xF1,0xB7,0x92,0x47,0x0E,
10024
        0x23,0x58,0x00,0xF1,0xB7,0x92,0x47,0x0E,
10025
        0x4F,0xC0,0x80,0x4C,0xD3,0xBA,0x74,0x20,
10025
        0x4F,0xC0,0x80,0x4C,0xD3,0xBA,0x74,0x20,
10026
        0xE2,0xA7,0x3C,0x2B,0x5F,0x99,0x2E,0x43,
10026
        0xE2,0xA7,0x3C,0x2B,0x5F,0x99,0x2E,0x43,
10027
        0x0C,0xE3,0xA9,0xF2,0xF1,0xC3,0xB3,0xF1,
10027
        0x0C,0xE3,0xA9,0xF2,0xF1,0xC3,0xB3,0xF1,
10028
        0x51,0xC0,0xC7,0x28,0xCF,0xFC,0x8C,0x22,
10028
        0x51,0xC0,0xC7,0x28,0xCF,0xFC,0x8C,0x22,
10029
        0xBD,0x32,0x10,0x50,0x9D,0x88,0xB8,0x42,
10029
        0xBD,0x32,0x10,0x50,0x9D,0x88,0xB8,0x42,
10030
        0x18,0x89,0xA1,0xD1,0x9D,0x83,0xC7,0x1F,
10030
        0x18,0x89,0xA1,0xD1,0x9D,0x83,0xC7,0x1F,
10031
        0x22,0x05,0x31,0xA0,0x6F,0x2E,0xC0,0xF4,
10031
        0x22,0x05,0x31,0xA0,0x6F,0x2E,0xC0,0xF4,
10032
        0x4C,0x04,0x5C,0xFE,0xFF,0x37,0x17,0x80,
10032
        0x4C,0x04,0x5C,0xFE,0xFF,0x37,0x17,0x80,
10033
        0xFF,0xFF,0xFF,0x9B,0x0B,0xE0,0xE6,0xFE,
10033
        0xFF,0xFF,0xFF,0x9B,0x0B,0xE0,0xE6,0xFE,
10034
        0xE0,0x9B,0x0B,0x70,0x8D,0xB4,0x2A,0x7A,
10034
        0xE0,0x9B,0x0B,0x70,0x8D,0xB4,0x2A,0x7A,
10035
        0x61,0x77,0x08,0x18,0xD4,0x9D,0x1D,0x70,
10035
        0x61,0x77,0x08,0x18,0xD4,0x9D,0x1D,0x70,
10036
        0x78,0x2B,0x78,0x67,0x87,0xF5,0xFF,0xBF,
10036
        0x78,0x2B,0x78,0x67,0x87,0xF5,0xFF,0xBF,
10037
        0xB3,0xC3,0xC3,0x8C,0x13,0xE5,0x85,0x21,
10037
        0xB3,0xC3,0xC3,0x8C,0x13,0xE5,0x85,0x21,
10038
        0xC6,0x3B,0x3B,0x0B,0xF0,0x26,0xD0,0x51,
10038
        0xC6,0x3B,0x3B,0x0B,0xF0,0x26,0xD0,0x51,
10039
        0xC6,0x77,0x76,0x80,0x1F,0x67,0xD8,0x77,
10039
        0xC6,0x77,0x76,0x80,0x1F,0x67,0xD8,0x77,
10040
        0x69,0xF0,0x5E,0x75,0x81,0xF5,0xFF,0xFF,
10040
        0x69,0xF0,0x5E,0x75,0x81,0xF5,0xFF,0xFF,
10041
        0xAA,0x0B,0x3C,0x04,0xDF,0xA7,0x41,0x3E,
10041
        0xAA,0x0B,0x3C,0x04,0xDF,0xA7,0x41,0x3E,
10042
        0x5E,0x30,0x8C,0x83,0x2B,0x27,0xA1,0xC7,
10042
        0x5E,0x30,0x8C,0x83,0x2B,0x27,0xA1,0xC7,
10043
        0x02,0x6B,0x85,0x41,0xDD,0xA9,0xC1,0xA5,
10043
        0x02,0x6B,0x85,0x41,0xDD,0xA9,0xC1,0xA5,
10044
        0x09,0x5C,0x17,0x5F,0x1F,0x6A,0x7C,0xA4,
10044
        0x09,0x5C,0x17,0x5F,0x1F,0x6A,0x7C,0xA4,
10045
        0xC5,0x9F,0x2F,0x70,0x01,0x86,0x4C,0x4F,
10045
        0xC5,0x9F,0x2F,0x70,0x01,0x86,0x4C,0x4F,
10046
        0x65,0x30,0xAE,0x29,0x3E,0x95,0x61,0xEE,
10046
        0x65,0x30,0xAE,0x29,0x3E,0x95,0x61,0xEE,
10047
        0x0E,0x1E,0x90,0x8F,0x18,0xC0,0x67,0x15,
10047
        0x0E,0x1E,0x90,0x8F,0x18,0xC0,0x67,0x15,
10048
        0x1E,0x18,0xEE,0xB4,0xE0,0x9B,0x92,0x41,
10048
        0x1E,0x18,0xEE,0xB4,0xE0,0x9B,0x92,0x41,
10049
        0xCF,0x31,0xA8,0x8F,0x3C,0x27,0xEF,0x7B,
10049
        0xCF,0x31,0xA8,0x8F,0x3C,0x27,0xEF,0x7B,
10050
        0xC2,0xE3,0x84,0xA3,0x9E,0x83,0xE8,0xD8,
10050
        0xC2,0xE3,0x84,0xA3,0x9E,0x83,0xE8,0xD8,
10051
        0xC0,0x71,0xDC,0xC0,0xFD,0xFF,0xC7,0x06,
10051
        0xC0,0x71,0xDC,0xC0,0xFD,0xFF,0xC7,0x06,
10052
        0xEF,0x70,0x83,0x3B,0xE8,0xF8,0x62,0x70,
10052
        0xEF,0x70,0x83,0x3B,0xE8,0xF8,0x62,0x70,
10053
        0x5C,0x18,0xB8,0xE7,0x02,0x0F,0xC3,0x37,
10053
        0x5C,0x18,0xB8,0xE7,0x02,0x0F,0xC3,0x37,
10054
        0x1D,0x8F,0x08,0x33,0xFE,0xD7,0x3F,0x23,
10054
        0x1D,0x8F,0x08,0x33,0xFE,0xD7,0x3F,0x23,
10055
        0x04,0xC4,0x5F,0x8C,0xD8,0x80,0xC1,0x78,
10055
        0x04,0xC4,0x5F,0x8C,0xD8,0x80,0xC1,0x78,
10056
        0x6B,0xF3,0xF5,0x0D,0x37,0x60,0x5F,0x1D,
10056
        0x6B,0xF3,0xF5,0x0D,0x37,0x60,0x5F,0x1D,
10057
        0x7C,0xC1,0xF0,0x09,0xCC,0xE8,0x2F,0x30,
10057
        0x7C,0xC1,0xF0,0x09,0xCC,0xE8,0x2F,0x30,
10058
        0x4F,0x62,0x3E,0x36,0x90,0x0B,0x1C,0x1D,
10058
        0x4F,0x62,0x3E,0x36,0x90,0x0B,0x1C,0x1D,
10059
        0x30,0x38,0x00,0x3D,0x60,0xF8,0x87,0x8B,
10059
        0x30,0x38,0x00,0x3D,0x60,0xF8,0x87,0x8B,
10060
        0x77,0x39,0x30,0x5C,0x05,0x7D,0x5C,0xF0,
10060
        0x77,0x39,0x30,0x5C,0x05,0x7D,0x5C,0xF0,
10061
        0xB1,0xC7,0x8A,0xEE,0x72,0xE8,0x9B,0x9C,
10061
        0xB1,0xC7,0x8A,0xEE,0x72,0xE8,0x9B,0x9C,
10062
        0x61,0xE2,0x18,0xE2,0x0D,0x8C,0xDD,0x25,
10062
        0x61,0xE2,0x18,0xE2,0x0D,0x8C,0xDD,0x25,
10063
        0xC8,0x61,0x0E,0xEA,0x5D,0xC2,0x73,0xE0,
10063
        0xC8,0x61,0x0E,0xEA,0x5D,0xC2,0x73,0xE0,
10064
        0x67,0x0B,0x9F,0xE0,0x7C,0xF3,0x09,0x71,
10064
        0x67,0x0B,0x9F,0xE0,0x7C,0xF3,0x09,0x71,
10065
        0xAA,0x8F,0x56,0xEF,0x01,0x3E,0x7A,0xBC,
10065
        0xAA,0x8F,0x56,0xEF,0x01,0x3E,0x7A,0xBC,
10066
        0x77,0xF9,0xEC,0xC4,0x2E,0x02,0x3E,0x72,
10066
        0x77,0xF9,0xEC,0xC4,0x2E,0x02,0x3E,0x72,
10067
        0x19,0xC7,0xD3,0xF4,0x15,0xD0,0x43,0x36,
10067
        0x19,0xC7,0xD3,0xF4,0x15,0xD0,0x43,0x36,
10068
        0xD8,0xAB,0x86,0x4F,0x60,0x3E,0xBA,0xE1,
10068
        0xD8,0xAB,0x86,0x4F,0x60,0x3E,0xBA,0xE1,
10069
        0x8E,0x51,0x9E,0x89,0xA7,0xEF,0x3B,0x08,
10069
        0x8E,0x51,0x9E,0x89,0xA7,0xEF,0x3B,0x08,
10070
        0x3B,0x92,0x1C,0x75,0xA8,0x6B,0x7A,0x44,
10070
        0x3B,0x92,0x1C,0x75,0xA8,0x6B,0x7A,0x44,
10071
        0xF9,0xFF,0x9F,0xD0,0x81,0xF8,0xD6,0x06,
10071
        0xF9,0xFF,0x9F,0xD0,0x81,0xF8,0xD6,0x06,
10072
        0xCE,0x68,0xF7,0x0F,0xF4,0x36,0x3D,0x32,
10072
        0xCE,0x68,0xF7,0x0F,0xF4,0x36,0x3D,0x32,
10073
        0xCC,0xD1,0x00,0xD6,0x25,0x04,0x5C,0x77,
10073
        0xCC,0xD1,0x00,0xD6,0x25,0x04,0x5C,0x77,
10074
        0x0C,0x5F,0x42,0x80,0x4F,0xD0,0x4B,0x04,
10074
        0x0C,0x5F,0x42,0x80,0x4F,0xD0,0x4B,0x04,
10075
        0xFA,0x9A,0xE1,0xD1,0x3D,0x02,0x60,0xAE,
10075
        0xFA,0x9A,0xE1,0xD1,0x3D,0x02,0x60,0xAE,
10076
        0x18,0xEC,0x58,0xE0,0xC3,0x86,0xAF,0x01,
10076
        0x18,0xEC,0x58,0xE0,0xC3,0x86,0xAF,0x01,
10077
        0xEC,0x5E,0xE0,0x30,0xF7,0x08,0x50,0x81,
10077
        0xEC,0x5E,0xE0,0x30,0xF7,0x08,0x50,0x81,
10078
        0x7A,0x78,0xF0,0xD5,0xDE,0x23,0x40,0x71,
10078
        0x7A,0x78,0xF0,0xD5,0xDE,0x23,0x40,0x71,
10079
        0xB2,0xF4,0xA1,0xC1,0x03,0xB5,0xAA,0x33,
10079
        0xB2,0xF4,0xA1,0xC1,0x03,0xB5,0xAA,0x33,
10080
        0x26,0x94,0x23,0x26,0x3F,0x9B,0xF9,0x26,
10080
        0x26,0x94,0x23,0x26,0x3F,0x9B,0xF9,0x26,
10081
        0x81,0xB9,0x5D,0xFA,0x26,0x01,0x37,0xCF,
10081
        0x81,0xB9,0x5D,0xFA,0x26,0x01,0x37,0xCF,
10082
        0x2C,0x50,0x49,0x20,0xF4,0xFF,0xBF,0x49,
10082
        0x2C,0x50,0x49,0x20,0xF4,0xFF,0xBF,0x49,
10083
        0xC0,0x85,0xE9,0xF2,0x32,0x43,0xE7,0x7F,
10083
        0xC0,0x85,0xE9,0xF2,0x32,0x43,0xE7,0x7F,
10084
        0xE0,0xBE,0xD5,0x79,0x84,0x3E,0x44,0x30,
10084
        0xE0,0xBE,0xD5,0x79,0x84,0x3E,0x44,0x30,
10085
        0x94,0xF7,0x3C,0x9F,0xC2,0xF8,0x19,0xC2,
10085
        0x94,0xF7,0x3C,0x9F,0xC2,0xF8,0x19,0xC2,
10086
        0x07,0x4C,0x76,0xA6,0xE0,0x67,0x4D,0xDC,
10086
        0x07,0x4C,0x76,0xA6,0xE0,0x67,0x4D,0xDC,
10087
        0x1D,0xC0,0x28,0x6F,0x9E,0x9E,0x00,0x3B,
10087
        0x1D,0xC0,0x28,0x6F,0x9E,0x9E,0x00,0x3B,
10088
        0x7F,0x1A,0xF9,0xDD,0xE0,0x5D,0xC0,0xD3,
10088
        0x7F,0x1A,0xF9,0xDD,0xE0,0x5D,0xC0,0xD3,
10089
        0xF7,0xBD,0x88,0x9F,0x28,0xC0,0x17,0xEC,
10089
        0xF7,0xBD,0x88,0x9F,0x28,0xC0,0x17,0xEC,
10090
        0x4E,0x07,0x05,0xFA,0x84,0x3C,0x22,0xA3,
10090
        0x4E,0x07,0x05,0xFA,0x84,0x3C,0x22,0xA3,
10091
        0xFA,0x88,0xC0,0x2F,0x49,0x60,0x3C,0x92,
10091
        0xFA,0x88,0xC0,0x2F,0x49,0x60,0x3C,0x92,
10092
        0xF8,0x40,0x01,0x84,0xEE,0x05,0xA8,0xD3,
10092
        0xF8,0x40,0x01,0x84,0xEE,0x05,0xA8,0xD3,
10093
        0x07,0x47,0x3D,0xE3,0x17,0x54,0x63,0xBE,
10093
        0x07,0x47,0x3D,0xE3,0x17,0x54,0x63,0xBE,
10094
        0x5B,0x3D,0xC2,0x79,0x72,0x98,0xCB,0x01,
10094
        0x5B,0x3D,0xC2,0x79,0x72,0x98,0xCB,0x01,
10095
        0x8B,0x73,0x4D,0x02,0xD5,0x71,0x97,0x8F,
10095
        0x8B,0x73,0x4D,0x02,0xD5,0x71,0x97,0x8F,
10096
        0x0E,0xEE,0xB5,0x15,0xFB,0xFF,0x27,0x38,
10096
        0x0E,0xEE,0xB5,0x15,0xFB,0xFF,0x27,0x38,
10097
        0xB8,0x77,0x96,0x77,0x3E,0x43,0x79,0x90,
10097
        0xB8,0x77,0x96,0x77,0x3E,0x43,0x79,0x90,
10098
        0xE0,0xBB,0xB6,0x82,0xE3,0xAA,0x06,0xE3,
10098
        0xE0,0xBB,0xB6,0x82,0xE3,0xAA,0x06,0xE3,
10099
        0xD8,0xC2,0x2F,0x79,0x80,0x9D,0x61,0x71,
10099
        0xD8,0xC2,0x2F,0x79,0x80,0x9D,0x61,0x71,
10100
        0xC1,0x7F,0x0F,0x03,0x51,0x89,0x30,0x28,
10100
        0xC1,0x7F,0x0F,0x03,0x51,0x89,0x30,0x28,
10101
        0x02,0xCB,0xBB,0xB7,0x52,0xF8,0x43,0x06,
10101
        0x02,0xCB,0xBB,0xB7,0x52,0xF8,0x43,0x06,
10102
        0xE3,0x4D,0x81,0x4F,0x1A,0x3B,0x6A,0xE0,
10102
        0xE3,0x4D,0x81,0x4F,0x1A,0x3B,0x6A,0xE0,
10103
        0xFB,0xFF,0x1F,0x35,0xD8,0x86,0x8A,0xBB,
10103
        0xFB,0xFF,0x1F,0x35,0xD8,0x86,0x8A,0xBB,
10104
        0x29,0x82,0x75,0xAA,0x98,0x21,0xF0,0x60,
10104
        0x29,0x82,0x75,0xAA,0x98,0x21,0xF0,0x60,
10105
        0x0F,0x00,0x9F,0xAF,0x7C,0x06,0x50,0x14,
10105
        0x0F,0x00,0x9F,0xAF,0x7C,0x06,0x50,0x14,
10106
        0x18,0xD4,0xA1,0x1D,0xCE,0x6D,0x18,0x70,
10106
        0x18,0xD4,0xA1,0x1D,0xCE,0x6D,0x18,0x70,
10107
        0x30,0x62,0xDC,0xA5,0x10,0xEE,0x94,0xDF,
10107
        0x30,0x62,0xDC,0xA5,0x10,0xEE,0x94,0xDF,
10108
        0x51,0x62,0x3F,0x97,0xB3,0xE9,0xE2,0xAE,
10108
        0x51,0x62,0x3F,0x97,0xB3,0xE9,0xE2,0xAE,
10109
        0xE6,0x3E,0x9D,0xB0,0x0B,0x32,0x8C,0xB3,
10109
        0xE6,0x3E,0x9D,0xB0,0x0B,0x32,0x8C,0xB3,
10110
        0xC0,0x23,0xC0,0xAB,0x39,0xBF,0x20,0x3F,
10110
        0xC0,0x23,0xC0,0xAB,0x39,0xBF,0x20,0x3F,
10111
        0x17,0xBF,0x10,0x3C,0x26,0x85,0x78,0x53,
10111
        0x17,0xBF,0x10,0x3C,0x26,0x85,0x78,0x53,
10112
        0x7A,0x25,0x36,0xC6,0x93,0x71,0x73,0xB7,
10112
        0x7A,0x25,0x36,0xC6,0x93,0x71,0x73,0xB7,
10113
        0x62,0x72,0xDE,0x79,0x41,0x36,0xC6,0xD1,
10113
        0x62,0x72,0xDE,0x79,0x41,0x36,0xC6,0xD1,
10114
        0x44,0x8C,0x72,0x6E,0x0F,0x03,0x91,0x5F,
10114
        0x44,0x8C,0x72,0x6E,0x0F,0x03,0x91,0x5F,
10115
        0x90,0x7D,0x3F,0x79,0x21,0x88,0x18,0xCD,
10115
        0x90,0x7D,0x3F,0x79,0x21,0x88,0x18,0xCD,
10116
        0x10,0x41,0x9F,0x97,0x8D,0x15,0x28,0xDE,
10116
        0x10,0x41,0x9F,0x97,0x8D,0x15,0x28,0xDE,
10117
        0x0B,0x32,0x13,0xF8,0x56,0xD0,0xC1,0xC5,
10117
        0x0B,0x32,0x13,0xF8,0x56,0xD0,0xC1,0xC5,
10118
        0x17,0x64,0xEC,0xFF,0xFF,0x82,0x0C,0x30,
10118
        0x17,0x64,0xEC,0xFF,0xFF,0x82,0x0C,0x30,
10119
        0xE2,0x64,0x04,0xF8,0x3C,0x71,0xE0,0xCE,
10119
        0xE2,0x64,0x04,0xF8,0x3C,0x71,0xE0,0xCE,
10120
        0x35,0x30,0xFE,0xFF,0x97,0x6A,0xD8,0x27,
10120
        0x35,0x30,0xFE,0xFF,0x97,0x6A,0xD8,0x27,
10121
        0x1B,0xC0,0xD9,0xD0,0x7D,0xB2,0x01,0xF7,
10121
        0x1B,0xC0,0xD9,0xD0,0x7D,0xB2,0x01,0xF7,
10122
        0x68,0xE1,0x1D,0x4D,0x10,0x27,0x1B,0x0A,
10122
        0x68,0xE1,0x1D,0x4D,0x10,0x27,0x1B,0x0A,
10123
        0xE4,0xE0,0xEB,0xA2,0x70,0x3C,0xF4,0x49,
10123
        0xE4,0xE0,0xEB,0xA2,0x70,0x3C,0xF4,0x49,
10124
        0x84,0x1E,0x9D,0x7C,0x94,0xC4,0x9D,0x19,
10124
        0x84,0x1E,0x9D,0x7C,0x94,0xC4,0x9D,0x19,
10125
        0x3C,0x91,0x77,0x16,0x8F,0xE2,0x65,0xD0,
10125
        0x3C,0x91,0x77,0x16,0x8F,0xE2,0x65,0xD0,
10126
        0xF7,0x82,0x13,0x79,0x7D,0xB0,0x9C,0x63,
10126
        0xF7,0x82,0x13,0x79,0x7D,0xB0,0x9C,0x63,
10127
        0x24,0xA8,0x46,0xE2,0xE3,0x03,0xFC,0xEB,
10127
        0x24,0xA8,0x46,0xE2,0xE3,0x03,0xFC,0xEB,
10128
        0x8B,0x8F,0x91,0xF0,0xF9,0xFC,0xC3,0xF2,
10128
        0x8B,0x8F,0x91,0xF0,0xF9,0xFC,0xC3,0xF2,
10129
        0x60,0x0C,0xF9,0xFF,0x7F,0x8A,0xC4,0x80,
10129
        0x60,0x0C,0xF9,0xFF,0x7F,0x8A,0xC4,0x80,
10130
        0x3C,0xBB,0x3C,0x86,0xF0,0x0B,0x24,0xDC,
10130
        0x3C,0xBB,0x3C,0x86,0xF0,0x0B,0x24,0xDC,
10131
        0xD3,0xCC,0x01,0x60,0x64,0x5D,0x1E,0xD1,
10131
        0xD3,0xCC,0x01,0x60,0x64,0x5D,0x1E,0xD1,
10132
        0x67,0x47,0x8E,0x11,0xD7,0x17,0x45,0x5F,
10132
        0x67,0x47,0x8E,0x11,0xD7,0x17,0x45,0x5F,
10133
        0x81,0x7D,0x10,0x38,0x9F,0xE7,0x44,0xB0,
10133
        0x81,0x7D,0x10,0x38,0x9F,0xE7,0x44,0xB0,
10134
        0x8E,0x9A,0x1F,0x6D,0xF8,0xF8,0x39,0xF8,
10134
        0x8E,0x9A,0x1F,0x6D,0xF8,0xF8,0x39,0xF8,
10135
        0x5B,0xC1,0x03,0xA5,0x8F,0x45,0x21,0x1E,
10135
        0x5B,0xC1,0x03,0xA5,0x8F,0x45,0x21,0x1E,
10136
        0x91,0xF8,0x39,0x11,0x5C,0x26,0xCE,0x89,
10136
        0x91,0xF8,0x39,0x11,0x5C,0x26,0xCE,0x89,
10137
        0x40,0xE2,0xD0,0x0B,0xE3,0xB4,0x80,0x1B,
10137
        0x40,0xE2,0xD0,0x0B,0xE3,0xB4,0x80,0x1B,
10138
        0x88,0xCF,0x94,0xD8,0x29,0x9F,0x08,0x3B,
10138
        0x88,0xCF,0x94,0xD8,0x29,0x9F,0x08,0x3B,
10139
        0x97,0x60,0x46,0x07,0xAE,0xCB,0xBD,0x47,
10139
        0x97,0x60,0x46,0x07,0xAE,0xCB,0xBD,0x47,
10140
        0x07,0xFE,0x93,0x00,0x1E,0xEB,0xFF,0xFF,
10140
        0x07,0xFE,0x93,0x00,0x1E,0xEB,0xFF,0xFF,
10141
        0x78,0x07,0xBE,0x93,0xBA,0xEF,0x26,0xBE,
10141
        0x78,0x07,0xBE,0x93,0xBA,0xEF,0x26,0xBE,
10142
        0xC8,0xF8,0x50,0xF4,0x7C,0x07,0xF8,0x0F,
10142
        0xC8,0xF8,0x50,0xF4,0x7C,0x07,0xF8,0x0F,
10143
        0x77,0xB8,0x43,0xC5,0x39,0xDF,0x01,0xD2,
10143
        0x77,0xB8,0x43,0xC5,0x39,0xDF,0x01,0xD2,
10144
        0xFE,0xFF,0xE7,0x3B,0x60,0x79,0xB6,0x7E,
10144
        0xFE,0xFF,0xE7,0x3B,0x60,0x79,0xB6,0x7E,
10145
        0xBE,0x03,0xBB,0xC8,0xF3,0x1D,0x40,0xAC,
10145
        0xBE,0x03,0xBB,0xC8,0xF3,0x1D,0x40,0xAC,
10146
        0xFF,0xFF,0xF9,0x0E,0xB0,0x73,0x46,0xC3,
10146
        0xFF,0xFF,0xF9,0x0E,0xB0,0x73,0x46,0xC3,
10147
        0x9D,0xEF,0xC0,0x76,0xB4,0x01,0xCC,0x4D,
10147
        0x9D,0xEF,0xC0,0x76,0xB4,0x01,0xCC,0x4D,
10148
        0xE3,0xD1,0x06,0xDC,0xC3,0x85,0x3D,0x0C,
10148
        0xE3,0xD1,0x06,0xDC,0xC3,0x85,0x3D,0x0C,
10149
        0xAE,0xD0,0xA6,0x4F,0x8D,0x46,0xAD,0x1A,
10149
        0xAE,0xD0,0xA6,0x4F,0x8D,0x46,0xAD,0x1A,
10150
        0x94,0xA9,0x51,0xE6,0xFF,0xDF,0xA0,0x56,
10150
        0x94,0xA9,0x51,0xE6,0xFF,0xDF,0xA0,0x56,
10151
        0x9F,0x4A,0x8D,0x19,0xCB,0x0E,0xA5,0x80,
10151
        0x9F,0x4A,0x8D,0x19,0xCB,0x0E,0xA5,0x80,
10152
        0x8F,0x0A,0x8D,0xCD,0xF2,0x28,0x04,0x62,
10152
        0x8F,0x0A,0x8D,0xCD,0xF2,0x28,0x04,0x62,
10153
        0x31,0xAF,0x06,0x81,0x38,0x2C,0x08,0x8D,
10153
        0x31,0xAF,0x06,0x81,0x38,0x2C,0x08,0x8D,
10154
        0xF4,0xCA,0x11,0x88,0x25,0x3F,0xFB,0x05,
10154
        0xF4,0xCA,0x11,0x88,0x25,0x3F,0xFB,0x05,
10155
        0x62,0xB9,0x6F,0x06,0x81,0x38,0xE0,0x1B,
10155
        0x62,0xB9,0x6F,0x06,0x81,0x38,0xE0,0x1B,
10156
        0x4C,0xE0,0xE4,0x61,0x25,0x70,0xF2,0x6E,
10156
        0x4C,0xE0,0xE4,0x61,0x25,0x70,0xF2,0x6E,
10157
        0x10,0x88,0x23,0x83,0x50,0xA1,0x3A,0x40,
10157
        0x10,0x88,0x23,0x83,0x50,0xA1,0x3A,0x40,
10158
        0x58,0x4C,0x10,0x1A,0xCA,0x07,0x08,0x93,
10158
        0x58,0x4C,0x10,0x1A,0xCA,0x07,0x08,0x93,
10159
        0xFE,0x48,0x10,0x20,0x31,0x02,0xC2,0xC2,
10159
        0xFE,0x48,0x10,0x20,0x31,0x02,0xC2,0xC2,
10160
        0xBD,0xBF,0x04,0x62,0x69,0xEF,0x09,0x81,
10160
        0xBD,0xBF,0x04,0x62,0x69,0xEF,0x09,0x81,
10161
        0x58,0x88,0x15,0x10,0x16,0x17,0x84,0x86,
10161
        0x58,0x88,0x15,0x10,0x16,0x17,0x84,0x86,
10162
        0xD3,0x02,0xC2,0x24,0x99,0x01,0x61,0x81,
10162
        0xD3,0x02,0xC2,0x24,0x99,0x01,0x61,0x81,
10163
        0x40,0xA8,0x7C,0x35,0x20,0x4C,0xA4,0x1B,
10163
        0x40,0xA8,0x7C,0x35,0x20,0x4C,0xA4,0x1B,
10164
        0x40,0xBA,0x7A,0x81,0x38,0x88,0x1E,0x10,
10164
        0x40,0xBA,0x7A,0x81,0x38,0x88,0x1E,0x10,
10165
        0x26,0xC3,0x0F,0x08,0x0B,0x0D,0x42,0xA3,
10165
        0x26,0xC3,0x0F,0x08,0x0B,0x0D,0x42,0xA3,
10166
        0x3D,0x30,0x04,0x48,0x0C,0x81,0xB0,0xF8,
10166
        0x3D,0x30,0x04,0x48,0x0C,0x81,0xB0,0xF8,
10167
        0x8E,0x40,0x98,0xF8,0x57,0x91,0x40,0x9C,
10167
        0x8E,0x40,0x98,0xF8,0x57,0x91,0x40,0x9C,
10168
        0xDF,0x12,0xC4,0x4D,0x69,0x88,0x35,0x01,
10168
        0xDF,0x12,0xC4,0x4D,0x69,0x88,0x35,0x01,
10169
        0x31,0x0D,0x9E,0x80,0x98,0x22,0x10,0x01,
10169
        0x31,0x0D,0x9E,0x80,0x98,0x22,0x10,0x01,
10170
        0x39,0xF6,0xD3,0x43,0x40,0xD6,0x60,0x0A,
10170
        0x39,0xF6,0xD3,0x43,0x40,0xD6,0x60,0x0A,
10171
        0x88,0x45,0x07,0x11,0x90,0x85,0xA8,0x02,
10171
        0x88,0x45,0x07,0x11,0x90,0x85,0xA8,0x02,
10172
        0x62,0x79,0x5D,0x01,0xB1,0xF0,0x20,0x02,
10172
        0x62,0x79,0x5D,0x01,0xB1,0xF0,0x20,0x02,
10173
        0x72,0xE6,0x97,0x9F,0x80,0xAC,0xE0,0xA5,
10173
        0x72,0xE6,0x97,0x9F,0x80,0xAC,0xE0,0xA5,
10174
        0xF3,0x10,0xC0,0xDE,0x10,0x81,0x48,0x72,
10174
        0xF3,0x10,0xC0,0xDE,0x10,0x81,0x48,0x72,
10175
        0x10,0x01,0x39,0xB0,0x2F,0x20,0x16,0x1F,
10175
        0x10,0x01,0x39,0xB0,0x2F,0x20,0x16,0x1F,
10176
        0x44,0x40,0xCE,0xFA,0x28,0x14,0x90,0x83,
10176
        0x44,0x40,0xCE,0xFA,0x28,0x14,0x90,0x83,
10177
        0x83,0x68,0x10,0xE4,0x6B,0x26,0x20,0xA7,
10177
        0x83,0x68,0x10,0xE4,0x6B,0x26,0x20,0xA7,
10178
        0x07,0x11,0x10,0xF9,0x04,0x05,0x21,0x6A,
10178
        0x07,0x11,0x10,0xF9,0x04,0x05,0x21,0x6A,
10179
        0xBD,0x81,0x30,0x3D,0x8F,0x42,0x0D,0x85,
10179
        0xBD,0x81,0x30,0x3D,0x8F,0x42,0x0D,0x85,
10180
        0x80,0x50,0xE5,0xEA,0xCE,0x31,0x2C,0x07,
10180
        0x80,0x50,0xE5,0xEA,0xCE,0x31,0x2C,0x07,
10181
        0x08,0xCD,0x05,0x22,0x30,0xAB,0x70,0x07,
10181
        0x08,0xCD,0x05,0x22,0x30,0xAB,0x70,0x07,
10182
        0xC4,0x54,0x81,0x08,0xC8,0x09,0x80,0xC8,
10182
        0xC4,0x54,0x81,0x08,0xC8,0x09,0x80,0xC8,
10183
        0xFF,0x9F,0x60,0x2A,0x10,0x9A,0x12,0x8C,
10183
        0xFF,0x9F,0x60,0x2A,0x10,0x9A,0x12,0x8C,
10184
        0xEA,0x92,0x07,0xC4,0x12,0x80,0xD0,0x54,
10184
        0xEA,0x92,0x07,0xC4,0x12,0x80,0xD0,0x54,
10185
        0x20,0x34,0x25,0x88,0x00,0xAD,0xCA,0x1E,
10185
        0x20,0x34,0x25,0x88,0x00,0xAD,0xCA,0x1E,
10186
        0x10,0x53,0x0A,0x42,0x95,0x83,0xD0,0x74,
10186
        0x10,0x53,0x0A,0x42,0x95,0x83,0xD0,0x74,
10187
        0x20,0x54,0xB6,0xBE,0xC3,0x02,0x05,0x11,
10187
        0x20,0x54,0xB6,0xBE,0xC3,0x02,0x05,0x11,
10188
        0x90,0xA3,0x83,0x50,0xE1,0xFE,0x40,0x98,
10188
        0x90,0xA3,0x83,0x50,0xE1,0xFE,0x40,0x98,
10189
        0xDE,0x97,0x86,0x00,0x9D,0x0E,0x44,0x40,
10189
        0xDE,0x97,0x86,0x00,0x9D,0x0E,0x44,0x40,
10190
        0x4E,0x0C,0x42,0x15,0x7C,0x32,0x82,0x10,
10190
        0x4E,0x0C,0x42,0x15,0x7C,0x32,0x82,0x10,
10191
        0xB1,0x20,0x54,0xC1,0x27,0x23,0x28,0xD1,
10191
        0xB1,0x20,0x54,0xC1,0x27,0x23,0x28,0xD1,
10192
        0xF2,0xB2,0x13,0x90,0xF5,0x81,0x50,0xBD,
10192
        0xF2,0xB2,0x13,0x90,0xF5,0x81,0x50,0xBD,
10193
        0x20,0x02,0x73,0x36,0x20,0x9A,0x17,0x84,
10193
        0x20,0x02,0x73,0x36,0x20,0x9A,0x17,0x84,
10194
        0xE6,0x07,0xA3,0x5A,0x8D,0x02,0x31,0xFD,
10194
        0xE6,0x07,0xA3,0x5A,0x8D,0x02,0x31,0xFD,
10195
        0x20,0x34,0x0F,0x88,0xC0,0xAC,0xE0,0xF9,
10195
        0x20,0x34,0x0F,0x88,0xC0,0xAC,0xE0,0xF9,
10196
        0x71,0xC0,0x0C,0x84,0xAA,0x04,0x11,0x98,
10196
        0x71,0xC0,0x0C,0x84,0xAA,0x04,0x11,0x98,
10197
        0x73,0x01,0xD1,0xAC,0x20,0x34,0x3B,0x18,
10197
        0x73,0x01,0xD1,0xAC,0x20,0x34,0x3B,0x18,
10198
        0xD5,0xFE,0x0F,0xD1,0x00,0x08,0x08,0xCD,
10198
        0xD5,0xFE,0x0F,0xD1,0x00,0x08,0x08,0xCD,
10199
        0x07,0xA2,0xC3,0x00,0x79,0x96,0x09,0xC8,
10199
        0x07,0xA2,0xC3,0x00,0x79,0x96,0x09,0xC8,
10200
        0x1A,0x41,0xA8,0x66,0x10,0x81,0x39,0x27,
10200
        0x1A,0x41,0xA8,0x66,0x10,0x81,0x39,0x27,
10201
        0x10,0xCD,0x0E,0x42,0x95,0xFD,0x4D,0x82,
10201
        0x10,0xCD,0x0E,0x42,0x95,0xFD,0x4D,0x82,
10202
        0x91,0x8C,0x0F,0xD0,0x40,0x24,0x37,0x08,
10202
        0x91,0x8C,0x0F,0xD0,0x40,0x24,0x37,0x08,
10203
        0xD5,0xF1,0x0C,0x0A,0x46,0x74,0x83,0x08,
10203
        0xD5,0xF1,0x0C,0x0A,0x46,0x74,0x83,0x08,
10204
        0xC8,0x59,0x40,0x68,0x36,0x30,0x9A,0x4C,
10204
        0xC8,0x59,0x40,0x68,0x36,0x30,0x9A,0x4C,
10205
        0xED,0x91,0x80,0xBA,0x05,0x61,0xE9,0x41,
10205
        0xED,0x91,0x80,0xBA,0x05,0x61,0xE9,0x41,
10206
        0x68,0x3A,0xBB,0x83,0xA7,0x20,0x54,0x81,
10206
        0x68,0x3A,0xBB,0x83,0xA7,0x20,0x54,0x81,
10207
        0x5E,0x30,0xA6,0x19,0x44,0x87,0x05,0x02,
10207
        0x5E,0x30,0xA6,0x19,0x44,0x87,0x05,0x02,
10208
        0x42,0x73,0x81,0x51,0x1D,0xAF,0x96,0x40,
10208
        0x42,0x73,0x81,0x51,0x1D,0xAF,0x96,0x40,
10209
        0x44,0x1B,0x08,0xD5,0x0A,0xA2,0x81,0x93,
10209
        0x44,0x1B,0x08,0xD5,0x0A,0xA2,0x81,0x93,
10210
        0x1F,0x53,0x10,0x92,0x14,0x84,0xFC,0xFF,
10210
        0x1F,0x53,0x10,0x92,0x14,0x84,0xFC,0xFF,
10211
        0x07,0xAA,0xC7,0x9C,0x40,0xAC,0xFA,0x5B,
10211
        0x07,0xAA,0xC7,0x9C,0x40,0xAC,0xFA,0x5B,
10212
        0x25,0x50,0x27,0x01,0xA1,0xC9,0x40,0x74,
10212
        0x25,0x50,0x27,0x01,0xA1,0xC9,0x40,0x74,
10213
        0x7C,0x20,0x0F,0xB8,0x83,0x64,0x20,0x54,
10213
        0x7C,0x20,0x0F,0xB8,0x83,0x64,0x20,0x54,
10214
        0x29,0x88,0xC0,0xAC,0xF4,0x63,0xA4,0x23,
10214
        0x29,0x88,0xC0,0xAC,0xF4,0x63,0xA4,0x23,
10215
        0x05,0x51,0x7D,0xBC,0xA0,0x20,0x34,0xD1,
10215
        0x05,0x51,0x7D,0xBC,0xA0,0x20,0x34,0xD1,
10216
        0x3B,0x2C,0x08,0x7B,0xB8,0x69,0xA8,0xE4,
10216
        0x3B,0x2C,0x08,0x7B,0xB8,0x69,0xA8,0xE4,
10217
        0x59,0xA5,0xA1,0x12,0x10,0x9A,0x0D,0x44,
10217
        0x59,0xA5,0xA1,0x12,0x10,0x9A,0x0D,0x44,
10218
        0xC7,0x04,0xF2,0xAA,0x79,0x4C,0x60,0x20,
10218
        0xC7,0x04,0xF2,0xAA,0x79,0x4C,0x60,0x20,
10219
        0x54,0x2F,0x08,0xCD,0x01,0x42,0x13,0x83,
10219
        0x54,0x2F,0x08,0xCD,0x01,0x42,0x13,0x83,
10220
        0x08,0xD4,0xA9,0xBF,0x37,0x1A,0x2A,0xF9,
10220
        0x08,0xD4,0xA9,0xBF,0x37,0x1A,0x2A,0xF9,
10221
        0x5B,0x09,0xC4,0xCA,0x5E,0x69,0x02,0xB1,
10221
        0x5B,0x09,0xC4,0xCA,0x5E,0x69,0x02,0xB1,
10222
        0xDE,0xA7,0x4E,0x20,0xE6,0x1D,0x98,0xA9,
10222
        0xDE,0xA7,0x4E,0x20,0xE6,0x1D,0x98,0xA9,
10223
        0x05,0xA1,0xEA,0x41,0x04,0xE6,0xB4,0x40,
10223
        0x05,0xA1,0xEA,0x41,0x04,0xE6,0xB4,0x40,
10224
        0x54,0x81,0x78,0x10,0xA6,0x08,0x44,0x60,
10224
        0x54,0x81,0x78,0x10,0xA6,0x08,0x44,0x60,
10225
        0x4E,0x02,0x44,0xD3,0x81,0xD0,0xEC,0x60,
10225
        0x4E,0x02,0x44,0xD3,0x81,0xD0,0xEC,0x60,
10226
        0x54,0xE7,0xA3,0x4D,0x40,0xD6,0x0E,0x42,
10226
        0x54,0xE7,0xA3,0x4D,0x40,0xD6,0x0E,0x42,
10227
        0xB3,0x80,0x08,0xCC,0x59,0x1E,0x69,0x02,
10227
        0xB3,0x80,0x08,0xCC,0x59,0x1E,0x69,0x02,
10228
        0xB1,0x92,0x2F,0x9D,0x0E,0x24,0x04,0x84,
10228
        0xB1,0x92,0x2F,0x9D,0x0E,0x24,0x04,0x84,
10229
        0x26,0xD3,0x7F,0x68,0xA1,0x05,0x80,0x99,
10229
        0x26,0xD3,0x7F,0x68,0xA1,0x05,0x80,0x99,
10230
        0x84,0x04,0x20,0x4C,0x16,0x88,0x0E,0x27,
10230
        0x84,0x04,0x20,0x4C,0x16,0x88,0x0E,0x27,
10231
        0xD6,0x08,0x22,0x40,0xC7,0x01,0xA3,0xD1,
10231
        0xD6,0x08,0x22,0x40,0xC7,0x01,0xA3,0xD1,
10232
        0x40,0x68,0x5C,0x40,0x9A,0x1D,0x90,0x2A,
10232
        0x40,0x68,0x5C,0x40,0x9A,0x1D,0x90,0x2A,
10233
        0x6D,0x00,0xC6,0x54,0x83,0xD0,0x24,0x20,
10233
        0x6D,0x00,0xC6,0x54,0x83,0xD0,0x24,0x20,
10234
        0x02,0x74,0x2C,0x10,0x01,0x5A,0x74,0x04,
10234
        0x02,0x74,0x2C,0x10,0x01,0x5A,0x74,0x04,
10235
        0x30,0x16,0x01,0x84,0x46,0x05,0xA1,0xC9,
10235
        0x30,0x16,0x01,0x84,0x46,0x05,0xA1,0xC9,
10236
        0x2A,0x80,0xB2,0x9C,0x20,0x1A,0x20,0xC9,
10236
        0x2A,0x80,0xB2,0x9C,0x20,0x1A,0x20,0xC9,
10237
        0x30,0x60,0x0A,0x42,0x33,0x81,0xD0,0x8C,
10237
        0x30,0x60,0x0A,0x42,0x33,0x81,0xD0,0x8C,
10238
        0x20,0x54,0x7C,0x07,0x10,0x16,0x04,0x84,
10238
        0x20,0x54,0x7C,0x07,0x10,0x16,0x04,0x84,
10239
        0x86,0x03,0xD1,0x00,0xFE,0xFF,0x8F,0x0C,
10239
        0x86,0x03,0xD1,0x00,0xFE,0xFF,0x8F,0x0C,
10240
        0x02,0xD1,0x00,0x9C,0x23,0xC4,0x61,0x85,
10240
        0x02,0xD1,0x00,0x9C,0x23,0xC4,0x61,0x85,
10241
        0x82,0xD0,0xF4,0x20,0x34,0x6C,0x09,0x50,
10241
        0x82,0xD0,0xF4,0x20,0x34,0x6C,0x09,0x50,
10242
        0x16,0x1D,0x44,0xC7,0x23,0x92,0x02,0x8C,
10242
        0x16,0x1D,0x44,0xC7,0x23,0x92,0x02,0x8C,
10243
        0x05,0x02,0xA1,0x31,0x41,0x68,0x6C,0x10,
10243
        0x05,0x02,0xA1,0x31,0x41,0x68,0x6C,0x10,
10244
        0x1A,0x29,0x06,0x28,0x13,0x54,0xE3,0x50,
10244
        0x1A,0x29,0x06,0x28,0x13,0x54,0xE3,0x50,
10245
        0x44,0x7B,0x80,0x31,0x99,0x20,0x54,0x36,
10245
        0x44,0x7B,0x80,0x31,0x99,0x20,0x54,0x36,
10246
        0x88,0xC0,0x1C,0x14,0x88,0x86,0x07,0xA1,
10246
        0x88,0xC0,0x1C,0x14,0x88,0x86,0x07,0xA1,
10247
        0x62,0x82,0x00,0x52,0x10,0x01,0x12,0x20,
10247
        0x62,0x82,0x00,0x52,0x10,0x01,0x12,0x20,
10248
        0x1A,0x1E,0x84,0x8A,0x29,0x32,0x74,0x0A,
10248
        0x1A,0x1E,0x84,0x8A,0x29,0x32,0x74,0x0A,
10249
        0x42,0x55,0x24,0x39,0x9A,0x50,0x10,0x1D,
10249
        0x42,0x55,0x24,0x39,0x9A,0x50,0x10,0x1D,
10250
        0x4D,0x08,0x08,0xCD,0x07,0x46,0x75,0x35,
10250
        0x4D,0x08,0x08,0xCD,0x07,0x46,0x75,0x35,
10251
        0x39,0x6E,0x50,0x10,0xAA,0x1D,0x84,0x06,
10251
        0x39,0x6E,0x50,0x10,0xAA,0x1D,0x84,0x06,
10252
        0x05,0xA1,0x39,0xA2,0x80,0xB2,0xEC,0x20,
10252
        0x05,0xA1,0x39,0xA2,0x80,0xB2,0xEC,0x20,
10253
        0x02,0xB2,0x9E,0x2A,0x87,0x0A,0x0A,0x22,
10253
        0x02,0xB2,0x9E,0x2A,0x87,0x0A,0x0A,0x22,
10254
        0x30,0xA7,0x02,0xA2,0x49,0x41,0xA8,0x8E,
10254
        0x30,0xA7,0x02,0xA2,0x49,0x41,0xA8,0x8E,
10255
        0x2C,0x47,0x0A,0x9A,0x06,0x84,0x25,0x06,
10255
        0x2C,0x47,0x0A,0x9A,0x06,0x84,0x25,0x06,
10256
        0xA1,0xC9,0xDA,0x80,0xB0,0x0C,0x75,0x0E,
10256
        0xA1,0xC9,0xDA,0x80,0xB0,0x0C,0x75,0x0E,
10257
        0x24,0x14,0x84,0xE6,0x04,0xA1,0x4A,0xF2,
10257
        0x24,0x14,0x84,0xE6,0x04,0xA1,0x4A,0xF2,
10258
        0x0C,0x8F,0x82,0xE8,0x38,0x42,0x80,0x68,
10258
        0x0C,0x8F,0x82,0xE8,0x38,0x42,0x80,0x68,
10259
        0x7A,0x10,0xAA,0xA6,0xCF,0x00,0x28,0x88,
10259
        0x7A,0x10,0xAA,0xA6,0xCF,0x00,0x28,0x88,
10260
        0x06,0x40,0x40,0x68,0x4E,0x30,0xAA,0xA8,
10260
        0x06,0x40,0x40,0x68,0x4E,0x30,0xAA,0xA8,
10261
        0xD1,0xD1,0x84,0x82,0x50,0xDD,0x2F,0x4E,
10261
        0xD1,0xD1,0x84,0x82,0x50,0xDD,0x2F,0x4E,
10262
        0x81,0xF8,0xFF,0x0F,
10262
        0x81,0xF8,0xFF,0x0F,
10263
    })  // END MBUF
10263
    })  // END MBUF
10264
 
10264
 
10265
} //end DefinitionBlock
10265
} //end DefinitionBlock