• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /barrelfish-2018-10-04/lib/acpica/tests/aslts/src/runtime/collections/functional/name/
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/*
30 * Miscellaneous named object creation
31 */
32
33/*
34!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
35SEE: see below, update needed
36!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
37*/
38
39// Package, Declare Package Object
40//
41// Update needed:
42//
43// m1f4() - this test should be implemented after references to Control
44//          Methods as elements of Package will be implemented by ACPICA.
45// m1f7() - this test should be implemented after ObjectType stops aborting
46//          program when dealing with uninitialized objects.
47// all    - add references to Control Methods to all other tests of this file.
48//
49// Note: verification of the contents of Packages is not performed, too complex.
50
51Name(z051, 51)
52
53// Step {1,2,4,8,16,32}. Use 16, too much time for 1 there.
54Name(c040, 16)
55
56// Max number of iterations of Mix test.
57// Use 25, though available are {1-29}.
58Name(c041, 22)
59
60// Check Integers
61Method(m1f0,, Serialized)
62{
63	Name(ts, "m1f0")
64
65	Name(p000, Package() {
66		// 0
67		0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
68		10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
69		20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
70		30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
71		40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
72		50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
73		60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
74		70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
75		80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
76		90, 91, 92, 93, 94, 95,
77
78		// 96
79		0x8765ac00, 0x8765ac01, 0x8765ac02, 0x8765ac03,
80		0x8765ac04, 0x8765ac05, 0x8765ac06, 0x8765ac07,
81		0x8765ac08, 0x8765ac09, 0x8765ac0a, 0x8765ac0b,
82		0x8765ac0c, 0x8765ac0d, 0x8765ac0e, 0x8765ac0f,
83
84		0x8765ac10, 0x8765ac11, 0x8765ac12, 0x8765ac13,
85		0x8765ac14, 0x8765ac15, 0x8765ac16, 0x8765ac17,
86		0x8765ac18, 0x8765ac19, 0x8765ac1a, 0x8765ac1b,
87		0x8765ac1c, 0x8765ac1d, 0x8765ac1e, 0x8765ac1f,
88
89		0x8765ac20, 0x8765ac21, 0x8765ac22, 0x8765ac23,
90		0x8765ac24, 0x8765ac25, 0x8765ac26, 0x8765ac27,
91		0x8765ac28, 0x8765ac29, 0x8765ac2a, 0x8765ac2b,
92		0x8765ac2c, 0x8765ac2d, 0x8765ac2e, 0x8765ac2f,
93
94		0x8765ac30, 0x8765ac31, 0x8765ac32, 0x8765ac33,
95		0x8765ac34, 0x8765ac35, 0x8765ac36, 0x8765ac37,
96		0x8765ac38, 0x8765ac39, 0x8765ac3a, 0x8765ac3b,
97		0x8765ac3c, 0x8765ac3d, 0x8765ac3e, 0x8765ac3f,
98
99		// 160
100		0x8765acba11223300, 0x8765acba11223301,
101		0x8765acba11223302, 0x8765acba11223303,
102		0x8765acba11223304, 0x8765acba11223305,
103		0x8765acba11223306, 0x8765acba11223307,
104		0x8765acba11223308, 0x8765acba11223309,
105		0x8765acba1122330a, 0x8765acba1122330b,
106		0x8765acba1122330c, 0x8765acba1122330d,
107		0x8765acba1122330e, 0x8765acba1122330f,
108		0x8765acba11223310, 0x8765acba11223311,
109		0x8765acba11223312, 0x8765acba11223313,
110
111		0x8765acba11223314, 0x8765acba11223315,
112		0x8765acba11223316, 0x8765acba11223317,
113		0x8765acba11223318, 0x8765acba11223319,
114		0x8765acba1122331a, 0x8765acba1122331b,
115		0x8765acba1122331c, 0x8765acba1122331d,
116		0x8765acba1122331e, 0x8765acba1122331f,
117		0x8765acba11223320, 0x8765acba11223321,
118		0x8765acba11223322, 0x8765acba11223323,
119
120		// 196
121		196, 197, 198, 199,
122		200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
123		210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
124		220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
125		230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
126		240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
127		250, 251, 252, 253, 254,
128	})
129
130	ts00(ts)
131
132	// Too much time for 1 there, so use {8/16}
133	Store(c040, Local6)
134	Divide(255, Local6, Local1, Local0)
135
136	Store(0, Local1)
137	Store(0, Local4)
138	Store(0, Local5)
139
140	While (Local0) {
141
142		Store(DeRefOf(Index(p000, Local1)), Local2)
143		Store(Local1, Local3)
144
145		if (LLessEqual(Local1, 95)) {
146			if (LNotEqual(Local2, Local3)) {
147				err(ts, z051, 0, 0, 0, Local2, Local3)
148			}
149		} elseif (LLessEqual(Local1, 159)) {
150			Add(0x8765ac00, Local4, Local3)
151			if (LNotEqual(Local2, Local3)) {
152				err(ts, z051, 1, 0, 0, Local2, Local3)
153			}
154			Add(Local4, Local6, Local4)
155		} elseif (LLessEqual(Local1, 195)) {
156			Add(0x8765acba11223300, Local5, Local3)
157			if (LNotEqual(Local2, Local3)) {
158				err(ts, z051, 2, 0, 0, Local2, Local3)
159			}
160			Add(Local5, Local6, Local5)
161		} else {
162			if (LNotEqual(Local2, Local3)) {
163				err(ts, z051, 3, 0, 0, Local2, Local3)
164			}
165		}
166
167		Store(ObjectType(Local2), Local3)
168		if (LNotEqual(Local3, 1)) {
169			err(ts, z051, 4, 0, 0, Local3, 1)
170		}
171
172		Add(Local1, Local6, Local1)
173		Decrement(Local0)
174	}
175
176	Store(SizeOf(p000), Local0)
177	if (LNotEqual(Local0, 255)) {
178		err(ts, z051, 5, 0, 0, Local0, 255)
179	}
180}
181
182// Check Strings
183Method(m1f1,, Serialized)
184{
185	Name(ts, "m1f1")
186
187	Name(p000, Package() {
188		"", "0", "01", "012", " 0 0", "   9 ", "vqwert", "1234567", "01234567",
189		"01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789",
190	})
191
192	ts00(ts)
193
194	Store(10, Local0)
195	Store(0, Local1)
196	Store(0, Local5)
197
198	While (Local0) {
199
200		Store(DeRefOf(Index(p000, Local1)), Local2)
201		Store(SizeOf(Local2), Local3)
202
203		Store(Local1, Local4)
204		if (LEqual(Local1, 9)) {
205			Store(200, Local4)
206		}
207
208		if (LNotEqual(Local4, Local3)) {
209			err(ts, z051, 6, 0, 0, Local4, Local3)
210		}
211
212		Store(ObjectType(Local2), Local3)
213		if (LNotEqual(Local3, 2)) {
214			err(ts, z051, 7, 0, 0, Local3, 2)
215		}
216
217		Increment(Local1)
218		Decrement(Local0)
219	}
220
221	Store(SizeOf(p000), Local0)
222	if (LNotEqual(Local0, 10)) {
223		err(ts, z051, 8, 0, 0, Local0, 10)
224	}
225}
226
227// Check Buffers
228Method(m1f2,, Serialized)
229{
230	Name(ts, "m1f2")
231
232	Name(p000, Package() {
233		Buffer(1) {},
234		Buffer(2) {},
235		Buffer(3) {},
236		Buffer(4) {},
237		Buffer(5) {},
238		Buffer(6) {},
239		Buffer(7) {},
240		Buffer(8) {},
241		Buffer(9) {},
242		Buffer(10) {},
243
244		Buffer() {1,2,3,4,5,6,7,8,9,10,11},
245		Buffer() {1,2,3,4,5,6,7,8,9,10,11,12},
246		Buffer() {1,2,3,4,5,6,7,8,9,10,11,12,13},
247		Buffer() {1,2,3,4,5,6,7,8,9,10,11,12,13,14},
248		Buffer() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},
249		Buffer() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},
250		Buffer() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17},
251		Buffer() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18},
252		Buffer() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19},
253		Buffer() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20},
254
255		Buffer(21) {}, Buffer(22) {}, Buffer(23) {}, Buffer(24) {}, Buffer(25) {},
256		Buffer(26) {}, Buffer(27) {}, Buffer(28) {}, Buffer(29) {}, Buffer(30) {},
257		Buffer(31) {}, Buffer(32) {}, Buffer(33) {}, Buffer(34) {}, Buffer(35) {},
258		Buffer(36) {}, Buffer(37) {}, Buffer(38) {}, Buffer(39) {}, Buffer(40) {},
259		Buffer(41) {}, Buffer(42) {}, Buffer(43) {}, Buffer(44) {}, Buffer(45) {},
260		Buffer(46) {}, Buffer(47) {}, Buffer(48) {}, Buffer(49) {}, Buffer(50) {},
261		Buffer(51) {}, Buffer(52) {}, Buffer(53) {}, Buffer(54) {}, Buffer(55) {},
262		Buffer(56) {}, Buffer(57) {}, Buffer(58) {}, Buffer(59) {}, Buffer(60) {},
263		Buffer(61) {}, Buffer(62) {}, Buffer(63) {}, Buffer(64) {}, Buffer(65) {},
264		Buffer(66) {}, Buffer(67) {}, Buffer(68) {}, Buffer(69) {}, Buffer(70) {},
265		Buffer(71) {}, Buffer(72) {}, Buffer(73) {}, Buffer(74) {}, Buffer(75) {},
266		Buffer(76) {}, Buffer(77) {}, Buffer(78) {}, Buffer(79) {}, Buffer(80) {},
267		Buffer(81) {}, Buffer(82) {}, Buffer(83) {}, Buffer(84) {}, Buffer(85) {},
268		Buffer(86) {}, Buffer(87) {}, Buffer(88) {}, Buffer(89) {}, Buffer(90) {},
269		Buffer(91) {}, Buffer(92) {}, Buffer(93) {}, Buffer(94) {}, Buffer(95) {},
270		Buffer(96) {}, Buffer(97) {}, Buffer(98) {}, Buffer(99) {},
271
272		Buffer(100) {}, Buffer(101) {}, Buffer(102) {}, Buffer(103) {},
273		Buffer(104) {}, Buffer(105) {}, Buffer(106) {}, Buffer(107) {},
274		Buffer(108) {}, Buffer(109) {}, Buffer(110) {}, Buffer(111) {},
275		Buffer(112) {}, Buffer(113) {}, Buffer(114) {},	Buffer(115) {},
276		Buffer(116) {}, Buffer(117) {}, Buffer(118) {}, Buffer(119) {},
277		Buffer(120) {}, Buffer(121) {}, Buffer(122) {}, Buffer(123) {},
278		Buffer(124) {}, Buffer(125) {}, Buffer(126) {}, Buffer(127) {},
279		Buffer(128) {}, Buffer(129) {}, Buffer(130) {}, Buffer(131) {},
280		Buffer(132) {}, Buffer(133) {}, Buffer(134) {}, Buffer(135) {},
281		Buffer(136) {}, Buffer(137) {}, Buffer(138) {}, Buffer(139) {},
282		Buffer(140) {}, Buffer(141) {}, Buffer(142) {}, Buffer(143) {},
283		Buffer(144) {}, Buffer(145) {}, Buffer(146) {}, Buffer(147) {},
284		Buffer(148) {}, Buffer(149) {},
285
286		Buffer(150) {}, Buffer(151) {}, Buffer(152) {}, Buffer(153) {},
287		Buffer(154) {}, Buffer(155) {}, Buffer(156) {}, Buffer(157) {},
288		Buffer(158) {}, Buffer(159) {}, Buffer(160) {}, Buffer(161) {},
289		Buffer(162) {}, Buffer(163) {}, Buffer(164) {}, Buffer(165) {},
290		Buffer(166) {}, Buffer(167) {}, Buffer(168) {}, Buffer(169) {},
291		Buffer(170) {}, Buffer(171) {}, Buffer(172) {}, Buffer(173) {},
292		Buffer(174) {}, Buffer(175) {}, Buffer(176) {}, Buffer(177) {},
293		Buffer(178) {}, Buffer(179) {}, Buffer(180) {}, Buffer(181) {},
294		Buffer(182) {}, Buffer(183) {}, Buffer(184) {}, Buffer(185) {},
295		Buffer(186) {}, Buffer(187) {}, Buffer(188) {}, Buffer(189) {},
296		Buffer(190) {}, Buffer(191) {}, Buffer(192) {}, Buffer(193) {},
297		Buffer(194) {}, Buffer(195) {}, Buffer(196) {}, Buffer(197) {},
298		Buffer(198) {}, Buffer(199) {},
299
300		Buffer(200) {}, Buffer(201) {}, Buffer(202) {}, Buffer(203) {},
301		Buffer(204) {}, Buffer(205) {}, Buffer(206) {}, Buffer(207) {},
302		Buffer(208) {}, Buffer(209) {}, Buffer(210) {}, Buffer(211) {},
303		Buffer(212) {}, Buffer(213) {}, Buffer(214) {}, Buffer(215) {},
304		Buffer(216) {}, Buffer(217) {}, Buffer(218) {}, Buffer(219) {},
305		Buffer(220) {}, Buffer(221) {}, Buffer(222) {}, Buffer(223) {},
306		Buffer(224) {}, Buffer(225) {}, Buffer(226) {}, Buffer(227) {},
307		Buffer(228) {}, Buffer(229) {}, Buffer(230) {}, Buffer(231) {},
308		Buffer(232) {}, Buffer(233) {}, Buffer(234) {}, Buffer(235) {},
309		Buffer(236) {}, Buffer(237) {}, Buffer(238) {}, Buffer(239) {},
310		Buffer(240) {}, Buffer(241) {}, Buffer(242) {}, Buffer(243) {},
311		Buffer(244) {}, Buffer(245) {}, Buffer(246) {}, Buffer(247) {},
312		Buffer(248) {}, Buffer(249) {},
313
314		Buffer(250) {}, Buffer(251) {}, Buffer(252) {}, Buffer(253) {},
315		Buffer(254) {}, Buffer(255) {},
316	})
317
318	ts00(ts)
319
320	// Too much time for 1 there, so use {8/16}
321	Store(c040, Local6)
322	Divide(255, Local6, Local1, Local0)
323	Store(0, Local1)
324	Store(0, Local5)
325
326	While (Local0) {
327
328		Store(DeRefOf(Index(p000, Local1)), Local2)
329		Store(SizeOf(Local2), Local3)
330
331		Add(Local1, 1, Local4)
332
333		if (LNotEqual(Local4, Local3)) {
334			err(ts, z051, 9, 0, 0, Local4, Local3)
335		}
336
337		Store(ObjectType(Local2), Local3)
338		if (LNotEqual(Local3, 3)) {
339			err(ts, z051, 10, 0, 0, Local3, 3)
340		}
341
342		Add(Local1, Local6, Local1)
343		Decrement(Local0)
344	}
345
346	Store(SizeOf(p000), Local0)
347	if (LNotEqual(Local0, 255)) {
348		err(ts, z051, 11, 0, 0, Local0, 255)
349	}
350}
351
352// Packages
353Method(m1f3,, Serialized)
354{
355	Name(ts, "m1f3")
356
357	Name(p000, Package() {
358		Package(1) {},
359		Package(2) {},
360		Package(3) {},
361		Package(4) {},
362		Package(5) {},
363		Package(6) {},
364		Package(7) {},
365		Package(8) {},
366		Package(9) {},
367		Package(10) {},
368
369		Package() {1,2,3,4,5,6,7,8,9,10,11},
370		Package() {1,2,3,4,5,6,7,8,9,10,11,12},
371		Package() {1,2,3,4,5,6,7,8,9,10,11,12,13},
372		Package() {1,2,3,4,5,6,7,8,9,10,11,12,13,14},
373		Package() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},
374		Package() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},
375		Package() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17},
376		Package() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18},
377		Package() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19},
378		Package() {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20},
379
380		Package(21) {}, Package(22) {}, Package(23) {}, Package(24) {},
381		Package(25) {}, Package(26) {}, Package(27) {}, Package(28) {},
382		Package(29) {}, Package(30) {}, Package(31) {}, Package(32) {},
383		Package(33) {}, Package(34) {}, Package(35) {}, Package(36) {},
384		Package(37) {}, Package(38) {}, Package(39) {}, Package(40) {},
385		Package(41) {}, Package(42) {}, Package(43) {}, Package(44) {},
386		Package(45) {}, Package(46) {}, Package(47) {}, Package(48) {},
387		Package(49) {}, Package(50) {}, Package(51) {}, Package(52) {},
388		Package(53) {}, Package(54) {}, Package(55) {}, Package(56) {},
389		Package(57) {}, Package(58) {}, Package(59) {}, Package(60) {},
390		Package(61) {}, Package(62) {}, Package(63) {}, Package(64) {},
391		Package(65) {}, Package(66) {}, Package(67) {}, Package(68) {},
392		Package(69) {}, Package(70) {}, Package(71) {}, Package(72) {},
393		Package(73) {}, Package(74) {}, Package(75) {}, Package(76) {},
394		Package(77) {}, Package(78) {}, Package(79) {}, Package(80) {},
395		Package(81) {}, Package(82) {}, Package(83) {}, Package(84) {},
396		Package(85) {}, Package(86) {}, Package(87) {}, Package(88) {},
397		Package(89) {}, Package(90) {}, Package(91) {}, Package(92) {},
398		Package(93) {}, Package(94) {}, Package(95) {}, Package(96) {},
399		Package(97) {}, Package(98) {}, Package(99) {},
400
401		Package(100) {}, Package(101) {}, Package(102) {}, Package(103) {},
402		Package(104) {}, Package(105) {}, Package(106) {}, Package(107) {},
403		Package(108) {}, Package(109) {}, Package(110) {}, Package(111) {},
404		Package(112) {}, Package(113) {}, Package(114) {}, Package(115) {},
405		Package(116) {}, Package(117) {}, Package(118) {}, Package(119) {},
406		Package(120) {}, Package(121) {}, Package(122) {}, Package(123) {},
407		Package(124) {}, Package(125) {}, Package(126) {}, Package(127) {},
408		Package(128) {}, Package(129) {}, Package(130) {}, Package(131) {},
409		Package(132) {}, Package(133) {}, Package(134) {}, Package(135) {},
410		Package(136) {}, Package(137) {}, Package(138) {}, Package(139) {},
411		Package(140) {}, Package(141) {}, Package(142) {}, Package(143) {},
412		Package(144) {}, Package(145) {}, Package(146) {}, Package(147) {},
413		Package(148) {}, Package(149) {},
414
415		Package(150) {}, Package(151) {}, Package(152) {}, Package(153) {},
416		Package(154) {}, Package(155) {}, Package(156) {}, Package(157) {},
417		Package(158) {}, Package(159) {}, Package(160) {}, Package(161) {},
418		Package(162) {}, Package(163) {}, Package(164) {}, Package(165) {},
419		Package(166) {}, Package(167) {}, Package(168) {}, Package(169) {},
420		Package(170) {}, Package(171) {}, Package(172) {}, Package(173) {},
421		Package(174) {}, Package(175) {}, Package(176) {}, Package(177) {},
422		Package(178) {}, Package(179) {}, Package(180) {}, Package(181) {},
423		Package(182) {}, Package(183) {}, Package(184) {}, Package(185) {},
424		Package(186) {}, Package(187) {}, Package(188) {}, Package(189) {},
425		Package(190) {}, Package(191) {}, Package(192) {}, Package(193) {},
426		Package(194) {}, Package(195) {}, Package(196) {}, Package(197) {},
427		Package(198) {}, Package(199) {},
428
429		Package(200) {}, Package(201) {}, Package(202) {}, Package(203) {},
430		Package(204) {}, Package(205) {}, Package(206) {}, Package(207) {},
431		Package(208) {}, Package(209) {}, Package(210) {}, Package(211) {},
432		Package(212) {}, Package(213) {}, Package(214) {}, Package(215) {},
433		Package(216) {}, Package(217) {}, Package(218) {}, Package(219) {},
434		Package(220) {}, Package(221) {}, Package(222) {}, Package(223) {},
435		Package(224) {}, Package(225) {}, Package(226) {}, Package(227) {},
436		Package(228) {}, Package(229) {}, Package(230) {}, Package(231) {},
437		Package(232) {}, Package(233) {}, Package(234) {}, Package(235) {},
438		Package(236) {}, Package(237) {}, Package(238) {}, Package(239) {},
439		Package(240) {}, Package(241) {}, Package(242) {}, Package(243) {},
440		Package(244) {}, Package(245) {}, Package(246) {}, Package(247) {},
441		Package(248) {}, Package(249) {},
442
443		Package(250) {}, Package(251) {}, Package(252) {}, Package(253) {},
444		Package(254) {}, Package(255) {},
445	})
446
447	ts00(ts)
448
449	// Too much time for 1 there, so use {8/16}
450	Store(c040, Local6)
451	Divide(255, Local6, Local1, Local0)
452	Store(0, Local1)
453	Store(0, Local5)
454
455	While (Local0) {
456
457		Store(DeRefOf(Index(p000, Local1)), Local2)
458		Store(SizeOf(Local2), Local3)
459
460		Add(Local1, 1, Local4)
461
462		if (LNotEqual(Local4, Local3)) {
463			err(ts, z051, 12, 0, 0, Local4, Local3)
464		}
465
466		Store(ObjectType(Local2), Local3)
467		if (LNotEqual(Local3, 4)) {
468			err(ts, z051, 13, 0, 0, Local3, 4)
469		}
470
471		Add(Local1, Local6, Local1)
472		Decrement(Local0)
473	}
474
475	Store(SizeOf(p000), Local0)
476	if (LNotEqual(Local0, 255)) {
477		err(ts, z051, 14, 0, 0, Local0, 255)
478	}
479}
480
481// Do test for Methods, when Methods will be implemented !!!!!!!!!!!!!!!
482Method(m1f4,, Serialized)
483{
484	Name(ts, "m1f4")
485
486	ts00(ts)
487
488// Not implemented yet
489
490	Method(m000) {return ("aaaa")}
491	Method(m001) {return (Buffer() {1,2,3,4})}
492	Method(m002) {return (Package() {1,2,3,4,5})}
493//	Method(m003) {return (0)}
494
495	Store("============= vvvvvvvvvvvvv", Debug)
496	Store(RefOf(m000), Local0)
497	Store(SizeOf(Local0), Local1)
498	// Store(SizeOf(m000), Local1)
499	Store(Local0, Debug)
500	Store(Local1, Debug)
501	Store("============= ccccccccccccc", Debug)
502
503	return (0)
504}
505
506Method(m1f5, 3, Serialized)
507{
508	// n000 - decr cur counter (levels num)
509	// n001 - incr cur counter
510	// n002 - type of target object
511	// n004 - size of target object
512	// n003 - incr cur counter (index of first level)
513
514	Name(n000, 0)
515	Name(n001, 0)
516	Name(n002, 0x1234)
517	Name(n004, 0)
518	Name(n003, 4)
519
520	// Type of target object
521	Store(DeRefOf(Index(arg2, 0)), n002)
522
523	// Size of target object
524	Store(DeRefOf(Index(arg2, 1)), n004)
525
526	// Repetition
527	Store(DeRefOf(Index(arg2, 3)), n000)
528
529	// Cur de-reference
530	Store(arg1, Local7)
531
532	While (n000) {
533
534		// Index in cur object
535		Store(DeRefOf(Index(arg2, n003)), Local0)
536
537		// Cur de-reference
538		Store(DeRefOf(Index(Local7, Local0)), Local7)
539
540		Store(ObjectType(Local7), Local0)
541
542		Increment(n003)
543		Increment(n001)
544		Decrement(n000)
545	}
546
547	// Type
548
549	Store(ObjectType(Local7), Local0)
550	if (LNotEqual(Local0, n002)) {
551		err(arg0, z051, 15, 0, 0, Local0, n002)
552	}
553
554	// Contents
555
556	if (LGreaterEqual(n002, 1)) {
557		if (LLessEqual(n002, 3)) {
558
559			Store(0, Local6)
560			Store(0, Local1)
561
562			Store(DeRefOf(Index(arg2, 2)), Local0)
563
564			if (LNotEqual(n002, 1)) {
565				Store(SizeOf(Local0), Local1)
566			}
567
568			if (LNotEqual(Local1, n004)) {
569				err(arg0, z051, 16, 0, 0, Local1, n004)
570				Store(1, Local6)
571			} elseif (LNotEqual(Local7, Local0)) {
572				err(arg0, z051, 17, 0, 0, Local7, Local0)
573				Store(1, Local6)
574			}
575			if (Local6) {
576				Store("============= To ERROR:", Debug)
577				Store(Local0, Debug)
578				Store(Local7, Debug)
579				Store("=============.", Debug)
580			}
581		}
582	}
583}
584
585// Mix
586// - all one level combinations
587// - 255 levels in depth
588Method(m1f6,, Serialized)
589{
590	Name(ts, "m1f6")
591
592	Name(p000, Package() {
593
594		// 0
595
596		0xb2345678,
597		"qwert",
598		Buffer() {1,2,3,4,5,6},
599		Package(1) {},
600
601		// 4, Integer, String, Buffer
602
603		Package() {0},
604		Package() {"qwhj"},
605		Package() {1, "qwu"},
606		Package() {"er", 2},
607		Package() {Buffer() {1}},
608		Package() {3, Buffer() {2,3}},
609		Package() {Buffer() {4,5,6}, 4},
610		Package() {"a", Buffer() {7,8,9,10}},
611		Package() {Buffer() {11,12,13,14,15}, "qw"},
612		Package() {Buffer() {16,17}, "12r", 55},
613		Package() {Buffer() {18,19}, 56, "ghjk"},
614		Package() {57, Buffer() {20,21,22}, "ghjkf"},
615		Package() {58, "sdfghj", Buffer() {23,24}},
616		Package() {"sdfghjg", Buffer() {25}, 59},
617		Package() {"sdfghjgg", 60, Buffer() {26,27}},
618
619		// 19, Integer, String, Buffer, Package
620
621		Package() {Package() {0}},
622		Package() {0, Package() {0,1}},
623		Package() {Package() {0}, 1},
624		Package() {"qwhj", Package() {0,1,2}},
625		Package() {Package() {0}, "ffrgg"},
626		Package() {1, "qwum", Package() {3,4,4,4}},
627		Package() {2, Package() {5,5,5,5,5,}, "dfgh"},
628		Package() {"qwu", 3, Package() {6,6,6,6,6,6}},
629		Package() {"qwuuio", Package() {7,7,7,7,7,7,7}, 4},
630		Package() {Package() {8,8,8,8,8,8,8,8}, "asd0000f", 5},
631		Package() {Package() {9,9,9,9,9,9,9}, 6, "fasdfbvcd"},
632		// 30
633		Package() {Package() {10,1,1,1,1,2}, Buffer() {28,2,3,4,5,6}},
634		Package() {Buffer() {29,2,3,4,5,6}, Package() {9,8,7,6,5}},
635		Package() {Package() {0,8,7,6}, 9, Buffer() {1,2,30,4,5,6}},
636		Package() {Package() {6,5,3}, Buffer() {1,2,31,4,5,6}, 10},
637		Package() {Buffer() {1,2,32,4,5,6}, Package() {6,7}, 11},
638		Package() {Buffer() {1,2,33,4,5,6}, 12, Package(7) {0}},
639		Package() {12, Package() {7,6}, Buffer() {1,2,34,4,5,6}},
640		Package() {13, Buffer() {1,2,35,4,5,6}, Package() {5,4,6}},
641		Package() {Package() {8,7,6,5}, "sdfghjg0", Buffer() {36}},
642		Package() {Package() {8,7,8,9,0}, Buffer() {37,38}, "cbvnm"},
643		// 40
644		Package() {"sdfgh1jg", Buffer() {39}, Package() {9,9,7,6,5,4}},
645		Package() {"sdf2ghjg", Package() {9,0,3,4,5,7,6}, Buffer() {40,1,2}},
646		Package() {Buffer() {41,2}, "cb3vnm", Package() {8,0,3,5,1,8}},
647		Package() {Buffer() {1,42}, Package() {8,7,6,5,4}, "zx"},
648		Package() {Package() {2,7,0,4}, "sdfgh4jg", Buffer() {1,2,43}, 59},
649		Package() {Package() {55,66,77}, "sdfghj5g", 70, Buffer() {1,2,44,45}},
650		Package() {Package() {99,12}, Buffer() {46,47,48,1,2}, "g6g", 59},
651		Package() {Package() {1234}, Buffer() {49,1,2}, 59, "d7fg"},
652		Package() {Package() {46,59}, 7, "8sdfghjg", Buffer() {1,2,50}},
653		Package() {Package() {76,98,62}, 8, Buffer() {51,2}, "9sdfghjg"},
654		// 50
655		Package() {"s10dfghjg", Package() {47,78,74,37}, Buffer() {1,52}, 59},
656		Package() {"sdf11ghjg", Package() {70,12,34,45,56}, 70, Buffer() {53}},
657		Package() {Buffer() {1,2,54}, Package() {90,12,13,14,15,19}, "g12g", 59},
658		Package() {Buffer() {1,2,55}, Package() {87,94,83,42,54}, 59, "d1f3g"},
659		Package() {7, Package() {34,56,78,90}, "1sdf4ghjg", Buffer() {1,2,56}},
660		Package() {8, Package() {76,43,79}, Buffer() {1,2,57,58}, "s1dfg5hjg"},
661		Package() {"sd1fg6hjg", Buffer() {1,2,59}, Package() {55,89}, 59},
662		Package() {"sdfg17hjg", 70, Package() {92}, Buffer() {1,60,2}},
663		Package() {Buffer() {61,2}, "g18g", Package() {67,89}, 59},
664		Package() {Buffer() {1,62}, 59, Package() {46,89,90}, "dfg19"},
665		// 60
666		Package() {0x82987640, "sdf2gh0jg", Package() {43,79,45,67}, Buffer() {1,2,63}},
667		Package() {8, Buffer() {64,1,2}, Package() {56,78,96}, "21sdfghjg"},
668		Package() {"sd22fghjg", Buffer() {65}, 59, Package() {49,60}},
669		Package() {"sdfg23hjg", 70, Buffer() {66,67,1,2}, Package() {20}},
670		Package() {Buffer() {1,2,68,69,70}, "2g4g", 59, Package() {11,22}},
671		Package() {Buffer() {71,2}, 59, "2dfg5", Package() {11,22,33}},
672		Package() {7, "sd26fghjg", Buffer() {1,72}, Package() {55,66,77,88}},
673		Package() {1145677, Buffer() {1,73,2,3,4}, "shjd2fg7hjg",
674						Package() {89,67,54,32,1,2,3}},
675		Package() {
676		 Package() {
677		  Package() {
678		   Package() {
679		    Package() {0x9b8def45
680		    },
681		   },
682		  },
683		 },
684		},
685		Package(255) {9,7,8,89,67,54,32,1,2,3,1234,456789},
686
687		// 70
688
689		Package(10) {11045677,
690				Buffer(202) {1,73,92,39,4},
691				Buffer(5) {1,73,92,39,4},
692				"shjd2fg7hjg0123456",
693				"0123456789qwertyuiop012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789",
694				Package(11) {89,67,54,32,1,2,3,33,44,55,66},
695				Package(255) {89,67,54,32,1,2,3,1234,456789},
696		},
697		71,72,73,74,75,76,77,78,79,
698
699		// 80
700
701		0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
702
703		// 100
704
705		0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
706		0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
707		0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
708		0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
709		0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
710
711		// 200
712
713		0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
714		0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
715		0,1,2,3,4,5,6,7,8,9,
716
717		// 250
718
719		250, 251, 252, 253,
720
721		// 254 (maximal element)
722
723		// + one encircling Package, 0-63
724		Package() { Package() { Package() { Package() {
725		Package() { Package() { Package() { Package() {
726		Package() { Package() { Package() { Package() {
727		Package() { Package() { Package() { Package() {
728		Package() { Package() { Package() { Package() {
729		Package() { Package() { Package() { Package() {
730		Package() { Package() { Package() { Package() {
731		Package() { Package() { Package() { Package() {
732		Package() { Package() { Package() { Package() {
733		Package() { Package() { Package() { Package() {
734		Package() { Package() { Package() { Package() {
735		Package() { Package() { Package() { Package() {
736		Package() { Package() { Package() { Package() {
737		Package() { Package() { Package() { Package() {
738		Package() { Package() { Package() { Package() {
739		Package() { Package() { Package() { Package() {
740		// 64-127
741		Package() { Package() { Package() { Package() {
742		Package() { Package() { Package() { Package() {
743		Package() { Package() { Package() { Package() {
744		Package() { Package() { Package() { Package() {
745		Package() { Package() { Package() { Package() {
746		Package() { Package() { Package() { Package() {
747		Package() { Package() { Package() { Package() {
748		Package() { Package() { Package() { Package() {
749		Package() { Package() { Package() { Package() {
750		Package() { Package() { Package() { Package() {
751		Package() { Package() { Package() { Package() {
752		Package() { Package() { Package() { Package() {
753		Package() { Package() { Package() { Package() {
754		Package() { Package() { Package() { Package() {
755		Package() { Package() { Package() { Package() {
756		Package() { Package() { Package() { Package() {
757		// 128-191
758		Package() { Package() { Package() { Package() {
759		Package() { Package() { Package() { Package() {
760		Package() { Package() { Package() { Package() {
761		Package() { Package() { Package() { Package() {
762		Package() { Package() { Package() { Package() {
763		Package() { Package() { Package() { Package() {
764		Package() { Package() { Package() { Package() {
765		Package() { Package() { Package() { Package() {
766		Package() { Package() { Package() { Package() {
767		Package() { Package() { Package() { Package() {
768		Package() { Package() { Package() { Package() {
769		Package() { Package() { Package() { Package() {
770		Package() { Package() { Package() { Package() {
771		Package() { Package() { Package() { Package() {
772		Package() { Package() { Package() { Package() {
773		Package() { Package() { Package() { Package() {
774		// 192-253
775		Package() { Package() { Package() { Package() {
776		Package() { Package() { Package() { Package() {
777		Package() { Package() { Package() { Package() {
778		Package() { Package() { Package() { Package() {
779		Package() { Package() { Package() { Package() {
780		Package() { Package() { Package() { Package() {
781		Package() { Package() { Package() { Package() {
782		Package() { Package() { Package() { Package() {
783		Package() { Package() { Package() { Package() {
784		Package() { Package() { Package() { Package() {
785		Package() { Package() { Package() { Package() {
786		Package() { Package() { Package() { Package() {
787		Package() { Package() { Package() { Package() {
788		Package() { Package() { Package() { Package() {
789		Package() { Package() { Package() { Package() {
790		Package() { Package() {
791
792			0x9b8def45,
793			"q0w1e2r3t4y5u6i7o8p91234567890",
794			Buffer() {17,28,69,11,22,34,35,56,67,11},
795			Package() {19,27,74,32,18,2,3,67,34},
796
797		// 192-253
798		      }, }, }, }, }, }, }, }, }, }, }, }, }, },
799		}, }, }, }, }, }, }, }, }, }, }, }, }, }, }, },
800		}, }, }, }, }, }, }, }, }, }, }, }, }, }, }, },
801		}, }, }, }, }, }, }, }, }, }, }, }, }, }, }, },
802
803			0x19283746
804
805		// 128-191
806		}, }, }, }, }, }, }, }, }, }, }, }, }, }, }, },
807		}, }, }, }, }, }, }, }, }, }, }, }, }, }, }, },
808		}, }, }, }, }, }, }, }, }, }, }, }, }, }, }, },
809		}, }, }, }, }, }, }, }, }, }, }, }, }, }, }, },
810
811			0x98765432
812
813		// 64-127
814		}, }, }, }, }, }, }, }, }, }, }, }, }, }, }, },
815		}, }, }, }, }, }, }, }, }, }, }, }, }, }, }, },
816		}, }, }, }, }, }, }, }, }, }, }, }, }, }, }, },
817		}, }, }, }, }, }, }, }, }, }, }, }, }, }, }, },
818
819			0x12345678,
820
821		// 32-63
822		}, }, }, }, }, }, }, }, }, }, }, }, }, }, }, },
823		}, }, }, }, }, }, }, }, }, }, }, }, }, }, }, },
824
825			0xb0ac61df,
826
827		// 16-31
828		}, }, }, }, }, }, }, }, }, }, }, }, }, }, }, },
829
830			0xc1dc51b3,
831			"qwertyuiop1234567890",
832			Buffer() {1,2,63,11,22,34,35,56,67},
833			Package() {19,27,74,32,18,2,3},
834
835		// 0-15
836		}, }, }, }, }, }, }, }, }, }, }, }, }, }, },
837
838			// 1
839			1,2,3,4,5,6,7,8,9,
840
841			// 10
842			0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
843			0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
844			0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
845			0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
846			0,1,2,3,4,5,6,7,8,9,
847
848			// 100
849			0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
850			0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
851			0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
852			0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
853			0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
854
855			// 200
856			0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
857			0,1,2,3,4,5,6,7,8,9, 0,1,2,3,4,5,6,7,8,9,
858			0,1,2,3,4,5,6,7,8,9,
859
860			// 250
861
862			250, 251, 252, 253, Buffer(300) {1,2,63,99,5,67,14,0,6,0,31},
863		},
864	})
865
866	Name(p001, Package() {
867
868		// 0 - 12
869		Package() {1, 0, 0xb2345678, 1, 0},
870		Package() {2, 5, "qwert", 1, 1},
871		Package() {3, 6, Buffer() {1,2,3,4,5,6}, 1, 2},
872		Package() {4, 1, 0, 1, 3},
873		Package() {1, 0, 0x82987640, 2, 60, 0},
874		Package() {2, 9, "sdf2gh0jg", 2, 60, 1},
875		Package() {4, 4, 0, 2, 60, 2},
876		Package() {3, 3, Buffer() {1,2,63}, 2, 60, 3},
877		Package() {1, 0, 1145677, 2, 67, 0},
878		Package() {3, 5, Buffer() {1,73,2,3,4}, 2, 67, 1},
879		Package() {2, 11, "shjd2fg7hjg", 2, 67, 2},
880		Package() {4, 7, 0, 2, 67, 3},
881		Package() {1, 0, 0x9b8def45, 6, 68,0,0,0,0,0},
882
883		// 13-19
884		Package() {1, 0, 11045677, 2, 70, 0},
885		Package() {3, 202, Buffer(202) {1,73,92,39,4}, 2, 70, 1},
886		Package() {3, 5, Buffer(5) {1,73,92,39,4}, 2, 70, 2},
887		Package() {2, 18, "shjd2fg7hjg0123456", 2, 70, 3},
888		Package() {2, 200,
889				"0123456789qwertyuiop012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789",
890				2, 70, 4},
891		Package() {4, 11, 0, 2, 70, 5},
892		Package() {4, 255, 0, 2, 70, 6},
893
894		// 20
895		Package() {3, 300, Buffer(300) {1,2,63,99,5,67,14,0,6,0,31}, 2, 254, 254},
896
897		// 21-28
898		Package() {1, 0, 0xc1dc51b3, 17, 254,
899			// 0-15
900			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1,
901		},
902		Package() {2, 20, "qwertyuiop1234567890", 17, 254,
903			// 0-15
904			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,2,
905		},
906		Package() {3, 9, Buffer() {1,2,63,11,22,34,35,56,67}, 17, 254,
907			// 0-15
908			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,3,
909		},
910		Package() {4, 7, Package() {19,27,74,32,18,2,3}, 17, 254,
911			// 0-15
912			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,4,
913		},
914		Package() {1, 0, 0xb0ac61df, 33, 254,
915			// 0-31
916			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
917			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1,
918		},
919		Package() {1, 0, 0x12345678, 65, 254,
920			// 0-63
921			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
922			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
923			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
924			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1,
925		},
926		Package() {1, 0, 0x98765432, 129, 254,
927			// 0-63
928			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
929			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
930			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
931			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
932			// 64-127
933			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
934			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
935			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
936			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1,
937		},
938		Package() {1, 0, 0x9b8def45, 255, 254,
939			// 0-63
940			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
941			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
942			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
943			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
944			// 64-127
945			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
946			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
947			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
948			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
949			// 128-191
950			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
951			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
952			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
953			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
954			// 192-253
955			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
956			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
957			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
958			0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,
959		},
960	})
961
962	// n000 - step
963	// n001 - decr cur counter
964	// n002 - incr cur counter
965
966	ts00(ts)
967
968	Name(n000, 0)
969	Name(n001, 0)
970	Name(n002, 0)
971
972	// Too much time for 1 there, so use {8/16}
973	Store(1, n000)
974	Divide(c041, n000, n002, n001)
975	Store(0, n002)
976
977	While (n001) {
978
979		if (pr02) {
980			Store(n001, Debug)
981		}
982
983		Store(DeRefOf(Index(p001, n002)), Local0)
984		Store(ObjectType(Local0), Local1)
985
986		m1f5(ts, p000, Local0)
987
988		Add(n002, n000, n002)
989		Decrement(n001)
990	}
991
992	Store(SizeOf(p000), Local0)
993	if (LNotEqual(Local0, 255)) {
994		err(ts, z051, 18, 0, 0, Local0, 255)
995	}
996
997	Store(SizeOf(p001), Local0)
998	if (LNotEqual(Local0, 29)) {
999		err(ts, z051, 19, 0, 0, Local0, 29)
1000	}
1001}
1002
1003// Check uninitialized elements of Package
1004//
1005// Now - causes crash!!!!!!!
1006// Do this test when ObjectType will be fixed.
1007Method(m1f7,, Serialized)
1008{
1009	Name(ts, "m1f7")
1010
1011	ts00(ts)
1012
1013	Name(p000, Package(255) {})
1014
1015//	Store(DeRefOf(Index(p000, 0)), Local0)
1016	Store(Index(p000, 0), Local0)
1017
1018	Store(ObjectType(Local0), Local2)
1019//	Store(ObjectType(Local0), Local1)
1020}
1021
1022// Write Integers into Package, then Read and verify
1023//
1024// <Package>,<size>,<start value>
1025Method(m1f8, 3, Serialized)
1026{
1027	Name(ts, "m1f8")
1028
1029	Name(n000, 0)
1030	Name(ncur, 0)
1031
1032	// Writing with indexes
1033
1034	Store(arg1, n000)
1035	Store(0, ncur)
1036	Store(arg2, Local0)
1037
1038	While (n000) {
1039		Store(Local0, Index(arg0, ncur))
1040		if (0) {
1041			Store(Local0, Debug)
1042		}
1043		Increment(Local0)
1044		Decrement(n000)
1045		Increment(ncur)
1046	}
1047
1048	// Reading and verifying
1049
1050	Store(arg1, n000)
1051	Store(0, ncur)
1052	Store(arg2, Local0)
1053
1054	While (n000) {
1055		Store(DeRefOf(Index(arg0, ncur)), Local1)
1056		if (0) {
1057			Store(Local1, Debug)
1058		}
1059		if (LNotEqual(Local1, Local0)) {
1060			err(ts, z051, 20, 0, 0, Local1, Local0)
1061		}
1062		Increment(Local0)
1063		Decrement(n000)
1064		Increment(ncur)
1065	}
1066
1067	Store(ObjectType(arg0), Local0)
1068	if (LNotEqual(Local0, 4)) {
1069		err(ts, z051, 21, 0, 0, Local0, 4)
1070	}
1071
1072	Store(SizeOf(arg0), Local0)
1073	if (LNotEqual(Local0, arg1)) {
1074		err(ts, z051, 22, 0, 0, Local0, arg1)
1075	}
1076}
1077
1078Method(m1f9, 1, Serialized)
1079{
1080	Name(p000, Package(arg0) {})
1081
1082	// Write
1083	m1f8(p000, arg0, 0x80000000)
1084
1085	// Re-write
1086	m1f8(p000, arg0, 0x12345678)
1087}
1088
1089// Write/rewrite Integers into Package and verify
1090Method(m1fa,, Serialized)
1091{
1092	Name(ts, "m1fa")
1093
1094	ts00(ts)
1095
1096	m1f9(255)
1097}
1098
1099// Write Strings into Package, then Read and verify
1100//
1101// <Package>,<size>,<start string>
1102Method(m1fb, 3, Serialized)
1103{
1104	Name(ts, "m1fb")
1105
1106	Name(n000, 0)
1107	Name(ncur, 0)
1108
1109	// Writing with indexes
1110
1111	Store(arg1, n000)
1112	Store(0, ncur)
1113
1114	While (n000) {
1115		Concatenate(arg2, ncur, Local0)
1116		Store(Local0, Index(arg0, ncur))
1117		if (0) {
1118			Store(Local0, Debug)
1119		}
1120		Decrement(n000)
1121		Increment(ncur)
1122	}
1123
1124	// Reading and verifying
1125
1126	Store(arg1, n000)
1127	Store(0, ncur)
1128
1129	While (n000) {
1130		Concatenate(arg2, ncur, Local0)
1131		Store(DeRefOf(Index(arg0, ncur)), Local1)
1132		if (0) {
1133			Store(Local1, Debug)
1134		}
1135		if (LNotEqual(Local1, Local0)) {
1136			err(ts, z051, 23, 0, 0, Local1, Local0)
1137		}
1138		Decrement(n000)
1139		Increment(ncur)
1140	}
1141
1142	Store(ObjectType(arg0), Local0)
1143	if (LNotEqual(Local0, 4)) {
1144		err(ts, z051, 24, 0, 0, Local0, 4)
1145	}
1146
1147	Store(SizeOf(arg0), Local0)
1148	if (LNotEqual(Local0, arg1)) {
1149		err(ts, z051, 25, 0, 0, Local0, arg1)
1150	}
1151}
1152
1153Method(m1fc, 1, Serialized)
1154{
1155	Name(p000, Package(arg0) {})
1156
1157	// Write
1158	m1fb(p000, arg0, "qwert")
1159
1160	// Re-write
1161	m1fb(p000, arg0, "mnbvcxzdf0123456789qwertyuiopllkjhgfdsa")
1162}
1163
1164// Write/rewrite Strings into Package and verify
1165Method(m1fd,, Serialized)
1166{
1167	Name(ts, "m1fd")
1168
1169	ts00(ts)
1170
1171	m1fc(255)
1172}
1173
1174// Write Buffers into Package, then Read and verify
1175//
1176// <Package>,<size>,<start buffer>
1177Method(m1fe, 3, Serialized)
1178{
1179	Name(ts, "m1fe")
1180
1181	Name(n000, 0)
1182	Name(ncur, 0)
1183
1184	// Writing with indexes
1185
1186	Store(arg1, n000)
1187	Store(0, ncur)
1188
1189	While (n000) {
1190		Concatenate(arg2, ncur, Local0)
1191		Store(Local0, Index(arg0, ncur))
1192		if (0) {
1193			Store(Local0, Debug)
1194		}
1195		Decrement(n000)
1196		Increment(ncur)
1197	}
1198
1199	// Reading and verifying
1200
1201	Store(arg1, n000)
1202	Store(0, ncur)
1203
1204	While (n000) {
1205		Concatenate(arg2, ncur, Local0)
1206		Store(DeRefOf(Index(arg0, ncur)), Local1)
1207
1208		if (0) {
1209			Store(ncur, Debug)
1210			Store(Local0, Debug)
1211			Store(Local1, Debug)
1212		}
1213		if (LNotEqual(Local1, Local0)) {
1214			err(ts, z051, 26, 0, 0, 0, 0)
1215			Store(Local0, Debug)
1216			Store(Local1, Debug)
1217			return (Ones)
1218		}
1219		Decrement(n000)
1220		Increment(ncur)
1221	}
1222
1223	Store(ObjectType(arg0), Local0)
1224	if (LNotEqual(Local0, 4)) {
1225		err(ts, z051, 27, 0, 0, Local0, 4)
1226	}
1227
1228	Store(SizeOf(arg0), Local0)
1229	if (LNotEqual(Local0, arg1)) {
1230		err(ts, z051, 28, 0, 0, Local0, arg1)
1231	}
1232
1233	return (Zero)
1234}
1235
1236// More complex cases with buffers of different sizes
1237// are performed into conversion tests.
1238Method(m1ff, 1, Serialized)
1239{
1240	Name(p000, Package(arg0) {})
1241
1242	// Write
1243	m1fe(p000, arg0, Buffer() {81,82,83,84,85})
1244
1245	// Re-write
1246	m1fe(p000, arg0, Buffer() {1,2,3,4,5})
1247}
1248
1249// Write/rewrite Buffers into Package and verify
1250Method(m200,, Serialized)
1251{
1252	Name(ts, "m200")
1253
1254	ts00(ts)
1255
1256	m1ff(255)
1257}
1258
1259// Write Packages into Package, then Read (and verify)
1260//
1261// <Package>,<size>,<start Package>
1262Method(m201, 3, Serialized)
1263{
1264	Name(pr00, 0)
1265
1266	Name(ts, "m201")
1267
1268	Name(n000, 0)
1269	Name(ncur, 0)
1270
1271	// Writing with indexes
1272
1273	Store(arg1, n000)
1274	Store(0, ncur)
1275
1276	if (pr00) {
1277		Store("Writing:", Debug)
1278	}
1279
1280	While (n000) {
1281		if (pr00) {
1282			Store(ncur, Debug)
1283		}
1284		Store(arg2, Index(arg0, ncur))
1285		Decrement(n000)
1286		Increment(ncur)
1287	}
1288
1289	// Reading (and verifying)
1290
1291	Store(arg1, n000)
1292	Store(0, ncur)
1293
1294	if (pr00) {
1295		Store("Reading:", Debug)
1296	}
1297
1298	While (n000) {
1299		if (pr00) {
1300			Store(ncur, Debug)
1301		}
1302		Store(DeRefOf(Index(arg0, ncur)), Local1)
1303		Store(ObjectType(Local1), Local0)
1304		if (LNotEqual(Local0, 4)) {
1305			err(ts, z051, 29, 0, 0, Local0, 4)
1306			return (Ones)
1307		}
1308		Decrement(n000)
1309		Increment(ncur)
1310	}
1311
1312	Store(ObjectType(arg0), Local0)
1313	if (LNotEqual(Local0, 4)) {
1314		err(ts, z051, 30, 0, 0, Local0, 4)
1315	}
1316
1317	Store(SizeOf(arg0), Local0)
1318	if (LNotEqual(Local0, arg1)) {
1319		err(ts, z051, 31, 0, 0, Local0, arg1)
1320	}
1321	return (Zero)
1322}
1323
1324// More complex cases are performed into obj_deletion.asl test
1325Method(m202, 1, Serialized)
1326{
1327	Name(p000, Package(arg0) {})
1328
1329	// Write
1330	m201(p000, arg0, Package() {81})
1331
1332	// Re-write
1333	m201(p000, arg0, Package() {81})
1334}
1335
1336// Write/rewrite Packages into Package (and verify)
1337//
1338// Verification of the contents of Packages is not
1339// performed, too complex.
1340Method(m203,, Serialized)
1341{
1342	Name(ts, "m203")
1343
1344	ts00(ts)
1345
1346//	m202(255)
1347	m202(1)
1348}
1349
1350// Run-method
1351Method(PCG0)
1352{
1353	Store("TEST: PCG0, Declare Package Object", Debug)
1354
1355	SRMT("m1f0")
1356	m1f0()
1357	SRMT("m1f1")
1358	m1f1()
1359	SRMT("m1f2")
1360	m1f2()
1361	SRMT("m1f3")
1362	m1f3()
1363//	SRMT("m1f4")
1364//	m1f4()
1365	SRMT("m1f6")
1366	m1f6()
1367//	SRMT("m1f7")
1368//	m1f7()
1369	SRMT("m1fa")
1370	m1fa()
1371	SRMT("m1fd")
1372	m1fd()
1373	SRMT("m200")
1374	m200()
1375	SRMT("m203")
1376	m203()
1377}
1378
1379