1/*
2 * Some or all of this work - Copyright (c) 2006 - 2016, Intel Corp.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without modification,
6 * are permitted provided that the following conditions are met:
7 *
8 * Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer.
10 * Redistributions in binary form must reproduce the above copyright notice,
11 * this list of conditions and the following disclaimer in the documentation
12 * and/or other materials provided with the distribution.
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
15 * without specific prior written permission.
16 *
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
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
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
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,
26 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29
30Name(z114, 114)
31
32// Check the type of Object
33// arg0 - Object
34// arg1 - expected type
35// arg2 - absolute index of file initiating the checking
36// arg3 - the name of Method initiating the checking
37// arg4 - index of checking (inside the file)
38Method(m1a3, 5)
39{
40	Store(1, Local7)
41
42	Store(ObjectType(arg0), Local0)
43
44	if (LNotEqual(Local0, arg1)) {
45		err("m1a3", z114, 0, arg2, arg4, Local0, arg1)
46		Store(0, Local7)
47	}
48
49	return (Local7)
50}
51
52// Check that all the data (global) are not corrupted
53Method(m1a6,, Serialized)
54{
55	Name(ts, "m1a6")
56
57	// Computational Data
58
59	// Integer
60
61	Store(ObjectType(i900), Local0)
62	if (LNotEqual(Local0, c009)) {
63		err(ts, z114, 0x100, 0, 0, Local0, c009)
64	}
65	if (LNotEqual(i900, 0xfe7cb391d65a0000)) {
66		err(ts, z114, 0x101, 0, 0, i900, 0xfe7cb391d65a0000)
67	}
68
69	Store(ObjectType(i901), Local0)
70	if (LNotEqual(Local0, c009)) {
71		err(ts, z114, 0x102, 0, 0, Local0, c009)
72	}
73	if (LNotEqual(i901, 0xc1790001)) {
74		err(ts, z114, 0x103, 0, 0, i901, 0xc1790001)
75	}
76
77	Store(ObjectType(i902), Local0)
78	if (LNotEqual(Local0, c009)) {
79		err(ts, z114, 0x104, 0, 0, Local0, c009)
80	}
81	if (LNotEqual(i902, 0)) {
82		err(ts, z114, 0x105, 0, 0, i902, 0)
83	}
84
85	Store(ObjectType(i903), Local0)
86	if (LNotEqual(Local0, c009)) {
87		err(ts, z114, 0x106, 0, 0, Local0, c009)
88	}
89	if (LNotEqual(i903, 0xffffffffffffffff)) {
90		err(ts, z114, 0x107, 0, 0, i903, 0xffffffffffffffff)
91	}
92
93	Store(ObjectType(i904), Local0)
94	if (LNotEqual(Local0, c009)) {
95		err(ts, z114, 0x108, 0, 0, Local0, c009)
96	}
97	if (LNotEqual(i904, 0xffffffff)) {
98		err(ts, z114, 0x109, 0, 0, i904, 0xffffffff)
99	}
100
101	// String
102
103	Store(ObjectType(s900), Local0)
104	if (LNotEqual(Local0, c00a)) {
105		err(ts, z114, 0x10a, 0, 0, Local0, c00a)
106	}
107	if (LNotEqual(s900, "12340002")) {
108		err(ts, z114, 0x10b, 0, 0, s900, "12340002")
109	}
110
111	Store(ObjectType(s901), Local0)
112	if (LNotEqual(Local0, c00a)) {
113		err(ts, z114, 0x10c, 0, 0, Local0, c00a)
114	}
115	if (LNotEqual(s901, "qwrtyu0003")) {
116		err(ts, z114, 0x10d, 0, 0, s901, "qwrtyu0003")
117	}
118
119	// Buffer
120
121	Store(ObjectType(b900), Local0)
122	if (LNotEqual(Local0, c00b)) {
123		err(ts, z114, 0x10e, 0, 0, Local0, c00b)
124	}
125	if (LNotEqual(b900, Buffer() {0xb0,0xb1,0xb2,0xb3,0xb4})) {
126		err(ts, z114, 0x10f, 0, 0, b900, Buffer() {0xb0,0xb1,0xb2,0xb3,0xb4})
127	}
128
129	// Buffer Field
130
131	Store(ObjectType(bf90), Local0)
132	if (LNotEqual(Local0, c016)) {
133		err(ts, z114, 0x110, 0, 0, Local0, c016)
134	}
135	if (LNotEqual(bf90, 0xb0)) {
136		err(ts, z114, 0x111, 0, 0, bf90, 0xb0)
137	}
138
139	// One level Package
140
141	Store(Index(p900, 0), Local0)
142	Store(ObjectType(Local0), Local1)
143	if (LNotEqual(Local1, c008)) {
144		err(ts, z114, 0x112, 0, 0, Local1, c008)
145	}
146
147	Store(Index(p901, 0), Local0)
148	Store(DerefOf(Local0), Local1)
149	Store(ObjectType(Local1), Local2)
150	if (LNotEqual(Local2, c009)) {
151		err(ts, z114, 0x113, 0, 0, Local2, c009)
152	}
153	if (LNotEqual(Local1, 0xabcd0004)) {
154		err(ts, z114, 0x114, 0, 0, Local1, 0xabcd0004)
155	}
156
157	Store(Index(p901, 1), Local0)
158	Store(DerefOf(Local0), Local1)
159	Store(ObjectType(Local1), Local2)
160	if (LNotEqual(Local2, c009)) {
161		err(ts, z114, 0x115, 0, 0, Local2, c009)
162	}
163	if (LNotEqual(Local1, 0x1122334455660005)) {
164		err(ts, z114, 0x116, 0, 0, Local1, 0x1122334455660005)
165	}
166
167	Store(Index(p902, 0), Local0)
168	Store(DerefOf(Local0), Local1)
169	Store(ObjectType(Local1), Local2)
170	if (LNotEqual(Local2, c00a)) {
171		err(ts, z114, 0x117, 0, 0, Local2, c00a)
172	}
173	if (LNotEqual(Local1, "12340006")) {
174		err(ts, z114, 0x118, 0, 0, Local1, "12340006")
175	}
176
177	Store(Index(p902, 1), Local0)
178	Store(DerefOf(Local0), Local1)
179	Store(ObjectType(Local1), Local2)
180	if (LNotEqual(Local2, c00a)) {
181		err(ts, z114, 0x119, 0, 0, Local2, c00a)
182	}
183	if (LNotEqual(Local1, "q1w2e3r4t5y6u7i80007")) {
184		err(ts, z114, 0x11a, 0, 0, Local1, "q1w2e3r4t5y6u7i80007")
185	}
186
187	Store(Index(p903, 0), Local0)
188	Store(DerefOf(Local0), Local1)
189	Store(ObjectType(Local1), Local2)
190	if (LNotEqual(Local2, c00a)) {
191		err(ts, z114, 0x11b, 0, 0, Local2, c00a)
192	}
193	if (LNotEqual(Local1, "qwrtyuiop0008")) {
194		err(ts, z114, 0x11c, 0, 0, Local1, "qwrtyuiop0008")
195	}
196
197	Store(Index(p903, 1), Local0)
198	Store(DerefOf(Local0), Local1)
199	Store(ObjectType(Local1), Local2)
200	if (LNotEqual(Local2, c00a)) {
201		err(ts, z114, 0x11d, 0, 0, Local2, c00a)
202	}
203	if (LNotEqual(Local1, "1234567890abdef0250009")) {
204		err(ts, z114, 0x11e, 0, 0, Local1, "1234567890abdef0250009")
205	}
206
207	Store(Index(p904, 0), Local0)
208	Store(DerefOf(Local0), Local1)
209	Store(ObjectType(Local1), Local2)
210	if (LNotEqual(Local2, c00b)) {
211		err(ts, z114, 0x11f, 0, 0, Local2, c00b)
212	}
213	if (LNotEqual(Local1, Buffer() {0xb5,0xb6,0xb7})) {
214		err(ts, z114, 0x120, 0, 0, Local1, Buffer() {0xb5,0xb6,0xb7})
215	}
216
217	Store(Index(p904, 1), Local0)
218	Store(DerefOf(Local0), Local1)
219	Store(ObjectType(Local1), Local2)
220	if (LNotEqual(Local2, c00b)) {
221		err(ts, z114, 0x121, 0, 0, Local2, c00b)
222	}
223	if (LNotEqual(Local1, Buffer() {0xb8,0xb9})) {
224		err(ts, z114, 0x122, 0, 0, Local1, Buffer() {0xb8,0xb9})
225	}
226
227	// Two level Package
228
229	Store(Index(p905, 0), Local0)
230	Store(DerefOf(Local0), Local1)
231	Store(Index(Local1, 0), Local2)
232	Store(DerefOf(Local2), Local3)
233	Store(ObjectType(Local3), Local4)
234	if (LNotEqual(Local4, c009)) {
235		err(ts, z114, 0x123, 0, 0, Local4, c009)
236	}
237	if (LNotEqual(Local3, 0xabc000a)) {
238		err(ts, z114, 0x124, 0, 0, Local3, 0xabc000a)
239	}
240
241	Store(Index(p905, 0), Local0)
242	Store(DerefOf(Local0), Local1)
243	Store(Index(Local1, 1), Local2)
244	Store(DerefOf(Local2), Local3)
245	Store(ObjectType(Local3), Local4)
246	if (LNotEqual(Local4, c00a)) {
247		err(ts, z114, 0x125, 0, 0, Local4, c00a)
248	}
249	if (LNotEqual(Local3, "0xabc000b")) {
250		err(ts, z114, 0x126, 0, 0, Local3, "0xabc000b")
251	}
252
253	Store(Index(p905, 0), Local0)
254	Store(DerefOf(Local0), Local1)
255	Store(Index(Local1, 2), Local2)
256	Store(DerefOf(Local2), Local3)
257	Store(ObjectType(Local3), Local4)
258	if (LNotEqual(Local4, c00a)) {
259		err(ts, z114, 0x127, 0, 0, Local4, c00a)
260	}
261	if (LNotEqual(Local3, "abc000c")) {
262		err(ts, z114, 0x128, 0, 0, Local3, "abc000c")
263	}
264
265	Store(Index(p906, 0), Local0)
266	Store(DerefOf(Local0), Local1)
267	Store(Index(Local1, 0), Local2)
268	Store(DerefOf(Local2), Local3)
269	Store(ObjectType(Local3), Local4)
270	if (LNotEqual(Local4, c00a)) {
271		err(ts, z114, 0x129, 0, 0, Local4, c00a)
272	}
273	if (LNotEqual(Local3, "abc000d")) {
274		err(ts, z114, 0x12a, 0, 0, Local3, "abc000d")
275	}
276
277	Store(Index(p907, 0), Local0)
278	Store(DerefOf(Local0), Local1)
279	Store(Index(Local1, 0), Local2)
280	Store(DerefOf(Local2), Local3)
281	Store(ObjectType(Local3), Local4)
282	if (LNotEqual(Local4, c00a)) {
283		err(ts, z114, 0x12b, 0, 0, Local4, c00a)
284	}
285	if (LNotEqual(Local3, "aqwevbgnm000e")) {
286		err(ts, z114, 0x12c, 0, 0, Local3, "aqwevbgnm000e")
287	}
288
289	Store(Index(p908, 0), Local0)
290	Store(DerefOf(Local0), Local1)
291	Store(Index(Local1, 0), Local2)
292	Store(DerefOf(Local2), Local3)
293	Store(ObjectType(Local3), Local4)
294	if (LNotEqual(Local4, c00b)) {
295		err(ts, z114, 0x12d, 0, 0, Local4, c00b)
296	}
297	if (LNotEqual(Local3, Buffer() {0xba,0xbb,0xbc,0xbd,0xbe})) {
298		err(ts, z114, 0x12e, 0, 0, Local3, Buffer() {0xba,0xbb,0xbc,0xbd,0xbe})
299	}
300
301	// Three level Package
302
303	Store(Index(p909, 0), Local0)
304	Store(DerefOf(Local0), Local1)
305	Store(Index(Local1, 0), Local2)
306	Store(DerefOf(Local2), Local3)
307	Store(Index(Local3, 0), Local4)
308	Store(DerefOf(Local4), Local5)
309	Store(ObjectType(Local5), Local6)
310	if (LNotEqual(Local6, c009)) {
311		err(ts, z114, 0x12f, 0, 0, Local6, c009)
312	}
313	if (LNotEqual(Local5, 0xabc000f)) {
314		err(ts, z114, 0x130, 0, 0, Local5, 0xabc000f)
315	}
316
317	Store(Index(p90a, 0), Local0)
318	Store(DerefOf(Local0), Local1)
319	Store(Index(Local1, 0), Local2)
320	Store(DerefOf(Local2), Local3)
321	Store(Index(Local3, 0), Local4)
322	Store(DerefOf(Local4), Local5)
323	Store(ObjectType(Local5), Local6)
324	if (LNotEqual(Local6, c00a)) {
325		err(ts, z114, 0x131, 0, 0, Local6, c00a)
326	}
327	if (LNotEqual(Local5, "12340010")) {
328		err(ts, z114, 0x132, 0, 0, Local5, "12340010")
329	}
330
331	Store(Index(p90b, 0), Local0)
332	Store(DerefOf(Local0), Local1)
333	Store(Index(Local1, 0), Local2)
334	Store(DerefOf(Local2), Local3)
335	Store(Index(Local3, 0), Local4)
336	Store(DerefOf(Local4), Local5)
337	Store(ObjectType(Local5), Local6)
338	if (LNotEqual(Local6, c00a)) {
339		err(ts, z114, 0x133, 0, 0, Local6, c00a)
340	}
341	if (LNotEqual(Local5, "zxswefas0011")) {
342		err(ts, z114, 0x134, 0, 0, Local5, "zxswefas0011")
343	}
344
345	Store(Index(p90c, 0), Local0)
346	Store(DerefOf(Local0), Local1)
347	Store(Index(Local1, 0), Local2)
348	Store(DerefOf(Local2), Local3)
349	Store(Index(Local3, 0), Local4)
350	Store(DerefOf(Local4), Local5)
351	Store(ObjectType(Local5), Local6)
352	if (LNotEqual(Local6, c00b)) {
353		err(ts, z114, 0x135, 0, 0, Local6, c00b)
354	}
355	if (LNotEqual(Local5, Buffer() {0xbf,0xc0,0xc1})) {
356		err(ts, z114, 0x136, 0, 0, Local5, Buffer() {0xbf,0xc0,0xc1})
357	}
358
359	// Additional Packages
360
361	// p953
362
363	Store(Index(p953, 0), Local0)
364	Store(DerefOf(Local0), Local1)
365	Store(ObjectType(Local1), Local2)
366	if (LNotEqual(Local2, c009)) {
367		err(ts, z114, 0x137, 0, 0, Local2, c009)
368	}
369	if (LNotEqual(Local1, 0xabcd0018)) {
370		err(ts, z114, 0x138, 0, 0, Local1, 0xabcd0018)
371	}
372
373	Store(Index(p953, 1), Local0)
374	Store(DerefOf(Local0), Local1)
375	Store(ObjectType(Local1), Local2)
376	if (LNotEqual(Local2, c009)) {
377		err(ts, z114, 0x139, 0, 0, Local2, c009)
378	}
379	if (LNotEqual(Local1, 0xabcd0019)) {
380		err(ts, z114, 0x13a, 0, 0, Local1, 0xabcd0019)
381	}
382
383	// p955
384
385	m1af(p955, 1, 1, 0)
386
387	// Not Computational Data
388
389	m1aa(ts, e900, c00f, 0, 0x13b)
390	m1aa(ts, mx90, c011, 0, 0x13c)
391	m1aa(ts, d900, c00e, 0, 0x13d)
392	if (y508) {
393		m1aa(ts, tz90, c015, 0, 0x13e)
394	}
395	m1aa(ts, pr90, c014, 0, 0x13f)
396	m1aa(ts, r900, c012, 0, 0x140)
397	m1aa(ts, pw90, c013, 0, 0x141)
398
399	// Field Unit (Field)
400
401	Store(ObjectType(f900), Local0)
402	if (LNotEqual(Local0, c00d)) {
403		err(ts, z114, 0x142, 0, 0, Local0, c00d)
404	}
405	Store(ObjectType(f901), Local0)
406	if (LNotEqual(Local0, c00d)) {
407		err(ts, z114, 0x143, 0, 0, Local0, c00d)
408	}
409	Store(ObjectType(f902), Local0)
410	if (LNotEqual(Local0, c00d)) {
411		err(ts, z114, 0x144, 0, 0, Local0, c00d)
412	}
413	Store(ObjectType(f903), Local0)
414	if (LNotEqual(Local0, c00d)) {
415		err(ts, z114, 0x145, 0, 0, Local0, c00d)
416	}
417
418	// Field Unit (IndexField)
419
420	Store(ObjectType(if90), Local0)
421	if (LNotEqual(Local0, c00d)) {
422		err(ts, z114, 0x146, 0, 0, Local0, c00d)
423	}
424	Store(ObjectType(if91), Local0)
425	if (LNotEqual(Local0, c00d)) {
426		err(ts, z114, 0x147, 0, 0, Local0, c00d)
427	}
428
429	// Field Unit (BankField)
430
431	Store(ObjectType(bn90), Local0)
432	if (LNotEqual(Local0, c00d)) {
433		err(ts, z114, 0x148, 0, 0, Local0, c00d)
434	}
435
436/*
437 *	if (LNotEqual(f900, 0xd7)) {
438 *		err(ts, z114, 0x149, 0, 0, f900, 0xd7)
439 *	}
440 *
441 *	if (LNotEqual(if90, 0xd7)) {
442 *		err(ts, z114, 0x14a, 0, 0, if90, 0xd7)
443 *	}
444 */
445}
446
447// Verifying result
448// arg0 - test name
449// arg1 - object
450// arg2 - expected type of object
451// arg3 - expected value of object
452// arg4 - index of checking (inside the file)
453Method(m1aa, 5)
454{
455	Store(0, Local7)
456
457	Store(ObjectType(arg1), Local0)
458
459	if (LNotEqual(Local0, arg2)) {
460		err(arg0, z114, 8, 0, arg4, Local0, arg2)
461		Store(1, Local7)
462	} elseif (LLess(arg2, c00c)) {
463		if (LNotEqual(arg1, arg3)) {
464			err(arg0, z114, 9, 0, arg4, arg1, arg3)
465			Store(1, Local7)
466		}
467	}
468
469	Return (Local7)
470}
471
472// Check and restore the global data after writing into them
473
474Method(m1ab,, Serialized)
475{
476	Name(ts, "m1ab")
477
478	// Computational Data
479
480	m1aa(ts, i900, c009, c08a, 0x144)
481	m1aa(ts, i901, c009, c08a, 0x145)
482	m1aa(ts, s900, c009, c08a, 0x146)
483	m1aa(ts, s901, c009, c08a, 0x147)
484	m1aa(ts, b900, c009, c08a, 0x148)
485
486	// Package
487
488	m1aa(ts, p953, c009, c08a, 0x149)
489
490	// Not Computational Data
491
492	m1aa(ts, e900, c009, c08a, 0x14a)
493	m1aa(ts, mx90, c009, c08a, 0x14b)
494	m1aa(ts, d900, c009, c08a, 0x14c)
495
496	if (y508) {
497		m1aa(ts, tz90, c009, c08a, 0x14d)
498	}
499
500	m1aa(ts, pr90, c009, c08a, 0x14e)
501
502	if (y510) {
503		m1aa(ts, r900, c009, c08a, 0x14f)
504	}
505
506	m1aa(ts, pw90, c009, c08a, 0x150)
507
508	m1ac()
509
510	m1a6()
511}
512
513// Restore the global data after writing into them
514Method(m1ac)
515{
516
517	// Computational Data
518
519	CopyObject(i9Z0, i900)
520	CopyObject(i9Z1, i901)
521	CopyObject(s9Z0, s900)
522	CopyObject(s9Z1, s901)
523	CopyObject(b9Z0, b900)
524
525	// Package
526
527	CopyObject(p954, p953)
528
529	// Restore p955 Package
530	m1c6()
531
532	// Not Computational Data
533
534	CopyObject(e9Z0, e900)
535	CopyObject(mx91, mx90)
536	CopyObject(d9Z0, d900)
537
538	if (y508) {
539		CopyObject(tz91, tz90)
540	}
541
542	CopyObject(pr91, pr90)
543
544	if (y510) {
545		CopyObject(r9Z0, r900)
546	}
547
548	CopyObject(pw91, pw90)
549}
550
551// Verify p955-like Package
552// arg0 - Package
553// arg1 - check for non-computational data
554// arg2 - check Field Unit and Buffer Field
555// arg3 - elements of Package are RefOf_References
556Method(m1af, 4, Serialized)
557{
558	Name(ts, "m1af")
559
560	Store(Index(arg0, 0), Local0)
561	Store(ObjectType(Local0), Local1)
562
563	if (LNotEqual(Local1, c009)) {
564		err(ts, z114, 0x112, 0, 0, Local1, c009)
565	} else {
566		Store(DerefOf(Local0), Local1)
567		if (LNotEqual(Local1, 0)) {
568			err(ts, z113, 0x112, 0, 0, Local1, 0)
569		}
570	}
571
572	Store(Index(arg0, 1), Local0)
573	Store(ObjectType(Local0), Local1)
574
575	if (LNotEqual(Local1, c009)) {
576		err(ts, z114, 0x112, 0, 0, Local1, c009)
577	} else {
578		Store(DerefOf(Local0), Local1)
579		if (arg3) {
580			Store(DerefOf(Local1), Local2)
581			Store(Local2, Local1)
582		}
583		if (LNotEqual(Local1, 0xfe7cb391d65a0000)) {
584			err(ts, z114, 0x112, 0, 0, Local1, 0xfe7cb391d65a0000)
585		}
586	}
587
588	Store(Index(arg0, 2), Local0)
589	Store(ObjectType(Local0), Local1)
590
591	if (LNotEqual(Local1, c00a)) {
592		err(ts, z114, 0x112, 0, 0, Local1, c00a)
593	} else {
594		Store(DerefOf(Local0), Local1)
595		if (arg3) {
596			Store(DerefOf(Local1), Local2)
597			Store(Local2, Local1)
598		}
599		if (LNotEqual(Local1, "12340002")) {
600			err(ts, z114, 0x112, 0, 0, Local1, "12340002")
601		}
602	}
603
604	Store(Index(arg0, 3), Local0)
605	Store(ObjectType(Local0), Local1)
606
607	if (LNotEqual(Local1, c00b)) {
608		err(ts, z114, 0x112, 0, 0, Local1, c00a)
609	} else {
610		Store(DerefOf(Local0), Local1)
611		if (arg3) {
612			Store(DerefOf(Local1), Local2)
613			Store(Local2, Local1)
614		}
615		if (LNotEqual(Local1, Buffer() {0xb0,0xb1,0xb2,0xb3,0xb4})) {
616			err(ts, z114, 0x112, 0, 0, Local1, Buffer() {0xb0,0xb1,0xb2,0xb3,0xb4})
617		}
618	}
619
620	Store(Index(arg0, 4), Local0)
621	m1aa(ts, Local0, c00c, 0, 0x13f)
622
623
624    // 5th element is a region field, which will be resolved to an integer
625
626	if (arg2) {
627	    Store(Index(arg0, 5), Local0)
628	    Store(ObjectType(Local0), Local1)
629		Store(DerefOf(Local0), Local7)
630
631        if (arg3) {
632	        if (LNotEqual(Local1, c00d)) {
633		        err(ts, z114, 0x112, 0, 0, Local1, c00d)
634	        } else {
635			    Store(DerefOf(Local7), Local6)
636			    Store(Local6, Local7)
637            }
638        }
639
640	    Store(ObjectType(Local7), Local5)
641
642	    if (LNotEqual(Local5, c009)) {
643		    err(ts, z114, 0x112, 0, 0, Local5, c009)
644	    } else {
645		    if (LNotEqual(Local7, 0)) {
646			    err(ts, z114, 0x112, 0, 0, Local7, 0)
647            }
648		}
649    }
650
651	if (arg1) {
652
653		Store(Index(arg0, 6), Local0)
654		m1aa(ts, Local0, c00e, 0, 0x13f)
655
656		Store(Index(arg0, 7), Local0)
657		m1aa(ts, Local0, c00f, 0, 0x13f)
658
659		Store(Index(arg0, 8), Local0)
660		m1aa(ts, Local0, c010, 0, 0x13f)
661
662		Store(Index(arg0, 9), Local0)
663		m1aa(ts, Local0, c011, 0, 0x13f)
664
665		Store(Index(arg0, 10), Local0)
666		m1aa(ts, Local0, c012, 0, 0x13f)
667
668		Store(Index(arg0, 11), Local0)
669		m1aa(ts, Local0, c013, 0, 0x13f)
670
671		Store(Index(arg0, 12), Local0)
672		m1aa(ts, Local0, c014, 0, 0x13f)
673
674		Store(Index(arg0, 13), Local0)
675		m1aa(ts, Local0, c015, 0, 0x13f)
676	}
677
678    // 14th element is a buffer field, which will be resolved to an integer
679
680	if (arg2) {
681	    Store(Index(arg0, 14), Local0)
682	    Store(ObjectType(Local0), Local1)
683		Store(DerefOf(Local0), Local7)
684
685        if (arg3) {
686	        if (LNotEqual(Local1, c016)) {
687		        err(ts, z114, 0x112, 0, 0, Local1, c016)
688	        } else {
689			    Store(DerefOf(Local7), Local6)
690			    Store(Local6, Local7)
691            }
692        }
693
694	    Store(ObjectType(Local7), Local5)
695
696	    if (LNotEqual(Local5, c009)) {
697		    err(ts, z114, 0x112, 0, 0, Local5, c009)
698	    } else {
699		    if (LNotEqual(Local7, 0xb0)) {
700			    err(ts, z114, 0x112, 0, 0, Local7, 0)
701            }
702		}
703    }
704
705	Store(Index(arg0, 15), Local0)
706	Store(ObjectType(Local0), Local1)
707
708	if (LNotEqual(Local1, c009)) {
709		err(ts, z114, 0x112, 0, 0, Local1, c009)
710	} else {
711		Store(DerefOf(Local0), Local1)
712		if (LNotEqual(Local1, 15)) {
713			err(ts, z114, 0x112, 0, 0, Local1, 15)
714		}
715	}
716
717	Store(Index(arg0, 16), Local0)
718	Store(ObjectType(Local0), Local1)
719
720	if (LNotEqual(Local1, c009)) {
721		err(ts, z114, 0x112, 0, 0, Local1, c009)
722	} else {
723		Store(DerefOf(Local0), Local1)
724		if (LNotEqual(Local1, 16)) {
725			err(ts, z114, 0x112, 0, 0, Local1, 16)
726		}
727	}
728
729	Store(Index(arg0, 17), Local0)
730	Store(ObjectType(Local0), Local1)
731
732	if (LNotEqual(Local1, c008)) {
733		err(ts, z114, 0x115, 0, 0, Local1, c008)
734	}
735
736	// Evaluation of Method m936 takes place
737
738	if (LNotEqual(i905, 0xabcd001a)) {
739		err(ts, z114, 0x116, 0, 0, i905, 0xabcd001a)
740	}
741}
742
743// Restore p955 Package
744Method(m1c6)
745{
746	CopyObject(p956, p955)
747	Store(i9Z5, i905)
748}
749
750
751