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 * Event 31 * 32 * (verify exceptions caused by the imprope use of Event type objects) 33 */ 34 35Name(z099, 99) 36 37Event(ev00) 38 39// Expected exceptions: 40// 41// 47 - AE_AML_OPERAND_TYPE 42// 43Method(m4b7,, Serialized) 44{ 45 Name(ts, "m4b7") 46 47 Event(ev01) 48 49 Event(e000) 50 51 Name(i000, 0) 52 53/* These are now caught by the compiler - Aug 2015 54 55 // Local Named Object 56 Method(m000, 1, Serialized) 57 { 58 Event(ev02) 59 60 if (y083) { 61 Store (DerefOf(ev02), Local1) 62 CH06(arg0, 0x100, 47) 63 } 64 } 65 66 // Global Named Object 67 Method(m001, 1) 68 { 69 if (y083) { 70 Store (DerefOf(ev00), Local1) 71 CH06(arg0, 0x101, 47) 72 } 73 } 74*/ 75 // Local 76 Method(m002, 1, Serialized) 77 { 78 Event(ev02) 79 80 Event(e000) 81 82 CopyObject(ev02, Local0) 83 84 // CondRefOf 85 86 CondRefOf(Local0, Local1) 87 CH03(ts, z099, 1, 0, 0) 88 89 // CopyObject 90 91 CopyObject(Local0, Local1) 92 CH03(ts, z099, 2, 0, 0) 93 94 // Decrement 95 96 Decrement(Local0) 97 CH06(arg0, 1, 47) 98 99 // DerefOf 100 101 Store (DerefOf(Local0), Local1) 102 CH06(arg0, 2, 47) 103 104 // FindSetLeftBit 105 106 FindSetLeftBit(Local0, Local1) 107 CH06(arg0, 4, 47) 108 109 // FindSetRightBit 110 111 FindSetRightBit(Local0, Local1) 112 CH06(arg0, 6, 47) 113 114 // FromBCD 115 116 FromBCD(Local0, Local1) 117 CH06(arg0, 8, 47) 118 119 // Increment 120 121 Increment(Local0) 122 CH06(arg0, 9, 47) 123 124 // LNot 125 126 Store (LNot(Local0), Local1) 127 CH06(arg0, 10, 47) 128 129 // Not 130 131 Not(Local0, Local1) 132 CH06(arg0, 12, 47) 133 134 // ObjectType 135 136 Store (ObjectType(Local0), Local1) 137 CH03(ts, z099, 3, 0, 0) 138 139 // RefOf 140 141 Store (RefOf(Local0), Local1) 142 CH03(ts, z099, 4, 0, 0) 143 144 // Release 145 146 Release(Local0) 147 CH06(arg0, 13, 47) 148 149 // Reset 150 151 Reset(Local0) 152 CH03(ts, z099, 14, 0, 0) 153 154 // Signal 155 156 Signal(Local0) 157 CH03(ts, z099, 15, 0, 0) 158 159 // SizeOf 160 161 Store (SizeOf(Local0), Local1) 162 CH06(arg0, 16, 47) 163 164 // Sleep 165 166 Sleep(Local0) 167 CH06(arg0, 17, 47) 168 169 // Stall 170 171 Stall(Local0) 172 CH06(arg0, 18, 47) 173 174 // Store 175 176 Store(Local0, Local1) 177 CH06(arg0, 19, 47) 178 179 // ToBCD 180 181 ToBCD(Local0, Local1) 182 CH06(arg0, 21, 47) 183 184 // ToBuffer 185 186 ToBuffer(Local0, Local1) 187 CH06(arg0, 23, 47) 188 189 // ToDecimalString 190 191 ToDecimalString(Local0, Local1) 192 CH06(arg0, 25, 47) 193 194 // ToHexString 195 196 ToHexString(Local0, Local1) 197 CH06(arg0, 27, 47) 198 199 // ToInteger 200 201 ToInteger(Local0, Local1) 202 CH06(arg0, 29, 47) 203 204 // Acquire 205 206 Store(Acquire(Local0, 100), Local1) 207 CH06(arg0, 30, 47) 208 209 // Add 210 211 Add(Local0, i000, Local1) 212 CH06(arg0, 33, 47) 213 214 Add(i000, Local0, Local1) 215 CH06(arg0, 34, 47) 216 217 // And 218 219 And(Local0, i000, Local1) 220 CH06(arg0, 37, 47) 221 222 And(i000, Local0, Local1) 223 CH06(arg0, 38, 47) 224 225 // Concatenate 226 227 Concatenate(Local0, i000, Local1) 228 CH06(arg0, 41, 47) 229 230 Concatenate(i000, Local0, Local1) 231 CH06(arg0, 42, 47) 232 233 // ConcatenateResTemplate 234 235 ConcatenateResTemplate(Local0, ResourceTemplate(){}, Local1) 236 CH06(arg0, 45, 47) 237 238 ConcatenateResTemplate(ResourceTemplate(){}, Local0, Local1) 239 CH06(arg0, 46, 47) 240 241 // Divide 242 243 Divide(Local0, i000, Local2) 244 CH06(arg0, 49, 47) 245 246 Divide(i000, Local0, Local2) 247 CH06(arg0, 50, 47) 248 249 Divide(Local0, i000, Local2, Local1) 250 CH06(arg0, 51, 47) 251 252 Divide(i000, Local0, Local2, Local1) 253 CH06(arg0, 52, 47) 254 255 // Fatal 256 257 Fatal(0xff, 0xffffffff, Local0) 258 CH06(arg0, 53, 47) 259 260 // Index 261 262 Index(Local0, 0, Local1) 263 CH06(arg0, 56, 47) 264 265 Index("0", Local0, Local1) 266 CH06(arg0, 57, 47) 267 268 // LEqual 269 270 Store (LEqual(Local0, i000), Local1) 271 CH06(arg0, 58, 47) 272 273 Store (LEqual(i000, Local0), Local1) 274 CH06(arg0, 59, 47) 275 276 // LGreater 277 278 Store (LGreater(Local0, i000), Local1) 279 CH06(arg0, 60, 47) 280 281 Store (LGreater(i000, Local0), Local1) 282 CH06(arg0, 61, 47) 283 284 // LGreaterEqual 285 286 Store (LGreaterEqual(Local0, i000), Local1) 287 CH06(arg0, 62, 0xff) 288 289 Store (LGreaterEqual(i000, Local0), Local1) 290 CH06(arg0, 63, 0xff) 291 292 // LLess 293 294 Store (LLess(Local0, i000), Local1) 295 CH06(arg0, 64, 47) 296 297 Store (LLess(i000, Local0), Local1) 298 CH06(arg0, 65, 47) 299 300 // LLessEqual 301 302 Store (LLessEqual(Local0, i000), Local1) 303 CH06(arg0, 66, 0xff) 304 305 Store (LLessEqual(i000, Local0), Local1) 306 CH06(arg0, 67, 0xff) 307 308 // LNotEqual 309 310 Store (LNotEqual(Local0, i000), Local1) 311 CH06(arg0, 68, 0xff) 312 313 Store (LNotEqual(i000, Local0), Local1) 314 CH06(arg0, 69, 0xff) 315 316 // LOr 317 318 Store (LOr(Local0, i000), Local1) 319 CH06(arg0, 70, 47) 320 321 Store (LOr(i000, Local0), Local1) 322 CH06(arg0, 71, 47) 323 324 // Mod 325 326 Mod(Local0, i000, Local1) 327 CH06(arg0, 74, 47) 328 329 Mod(i000, Local0, Local1) 330 CH06(arg0, 75, 47) 331 332 // Multiply 333 334 Multiply(Local0, i000, Local1) 335 CH06(arg0, 78, 47) 336 337 Multiply(i000, Local0, Local1) 338 CH06(arg0, 79, 47) 339 340 // NAnd 341 342 NAnd(Local0, i000, Local1) 343 CH06(arg0, 82, 47) 344 345 NAnd(i000, Local0, Local1) 346 CH06(arg0, 83, 47) 347 348 // NOr 349 350 NOr(Local0, i000, Local1) 351 CH06(arg0, 86, 47) 352 353 NOr(i000, Local0, Local1) 354 CH06(arg0, 87, 47) 355 356 // Or 357 358 Or(Local0, i000, Local1) 359 CH06(arg0, 90, 47) 360 361 Or(i000, Local0, Local1) 362 CH06(arg0, 91, 47) 363 364 // ShiftLeft 365 366 ShiftLeft(Local0, i000, Local1) 367 CH06(arg0, 94, 47) 368 369 ShiftLeft(i000, Local0, Local1) 370 CH06(arg0, 95, 47) 371 372 // ShiftRight 373 374 ShiftRight(Local0, i000, Local1) 375 CH06(arg0, 98, 47) 376 377 ShiftRight(i000, Local0, Local1) 378 CH06(arg0, 99, 47) 379 380 // Subtract 381 382 Subtract(Local0, i000, Local1) 383 CH06(arg0, 102, 47) 384 385 Subtract(i000, Local0, Local1) 386 CH06(arg0, 103, 47) 387 388 // ToString 389 390 ToString(Local0, 1, Local1) 391 CH06(arg0, 106, 47) 392 393 ToString(i000, Local0, Local1) 394 CH06(arg0, 107, 47) 395 396 // Wait 397 398 Store(Wait(Local0, i000), Local1) 399 CH03(ts, z099, 108, 0, 0) 400 401 Store(Wait(e000, Local0), Local1) 402 CH06(arg0, 109, 47) 403 404 // XOr 405 406 XOr(Local0, i000, Local1) 407 CH06(arg0, 112, 47) 408 409 XOr(i000, Local0, Local1) 410 CH06(arg0, 113, 47) 411 412 // Mid 413 414 Mid(Local0, 1, 1, Local1) 415 CH06(arg0, 117, 47) 416 417 Mid("123", Local0, 1, Local1) 418 CH06(arg0, 118, 47) 419 420 Mid("123", 1, Local0, Local1) 421 CH06(arg0, 119, 47) 422 423 // Match 424 425 Store (Match(Local0, MTR, 0, MTR, 0, 0), Local1) 426 CH06(arg0, 120, 47) 427 428 Store (Match(Package(){1}, MTR, Local0, MTR, 0, 0), Local1) 429 CH06(arg0, 121, 47) 430 431 Store (Match(Package(){1}, MTR, 0, MTR, Local0, 0), Local1) 432 CH06(arg0, 122, 47) 433 434 Store (Match(Package(){1}, MTR, 0, MTR, 0, Local0), Local1) 435 CH06(arg0, 123, 47) 436 } 437 438 // Reference to Object 439 Method(m003, 2) 440 { 441 Store(ObjectType(arg1), Local0) 442 if (LNotEqual(Local0, 7)) { 443 err(arg0, z099, 200, 0, 0, Local0, 7) 444 return (1) 445 } 446 447 Store (DeRefOf(arg1), Local1) 448 if(LNot(SLCK)){ 449 CH04(ts, 0, 47, z099, 5, 0, 0) 450 } 451 452 // CondRefOf 453 454 CondRefOf(DeRefOf(arg1), Local1) 455 CH06(arg0, 1, 47) 456 457 // CopyObject 458 459 CopyObject(DeRefOf(arg1), Local1) 460 CH03(ts, z099, 2, 0, 0) 461 462 // Decrement 463 464 Decrement(DeRefOf(arg1)) 465 CH06(arg0, 3, 47) 466 467 // DerefOf 468 469 Store (DerefOf(DeRefOf(arg1)), Local1) 470 CH06(arg0, 4, 47) 471 472 // FindSetLeftBit 473 474 FindSetLeftBit(DeRefOf(arg1), Local1) 475 CH06(arg0, 6, 47) 476 477 // FindSetRightBit 478 479 FindSetRightBit(DeRefOf(arg1), Local1) 480 CH06(arg0, 8, 47) 481 482 // FromBCD 483 484 FromBCD(DeRefOf(arg1), Local1) 485 CH06(arg0, 10, 47) 486 487 // Increment 488 489 Increment(DeRefOf(arg1)) 490 CH06(arg0, 11, 47) 491 492 // LNot 493 494 Store (LNot(DeRefOf(arg1)), Local1) 495 CH06(arg0, 12, 47) 496 497 // Not 498 499 Not(DeRefOf(arg1), Local1) 500 CH06(arg0, 14, 47) 501 502 // ObjectType 503 504 Store (ObjectType(DeRefOf(arg1)), Local1) 505 CH03(ts, z099, 6, 0, 0) 506 507 // RefOf 508 509 Store (RefOf(DeRefOf(arg1)), Local1) 510 CH06(arg0, 15, 47) 511 512 // Release 513 514 // Reset 515 516 // Signal 517 518 // SizeOf 519 520 Store (SizeOf(DeRefOf(arg1)), Local1) 521 CH06(arg0, 16, 47) 522 523 // Sleep 524 525 Sleep(DeRefOf(arg1)) 526 CH06(arg0, 17, 47) 527 528 // Stall 529 530 Stall(DeRefOf(arg1)) 531 CH06(arg0, 18, 47) 532 533 // Store 534 535 Store(DeRefOf(arg1), Local1) 536 CH06(arg0, 19, 47) 537 538 // ToBCD 539 540 ToBCD(DeRefOf(arg1), Local1) 541 CH06(arg0, 21, 47) 542 543 // ToBuffer 544 545 ToBuffer(DeRefOf(arg1), Local1) 546 CH06(arg0, 23, 47) 547 548 // ToDecimalString 549 550 ToDecimalString(DeRefOf(arg1), Local1) 551 CH06(arg0, 25, 47) 552 553 // ToHexString 554 555 ToHexString(DeRefOf(arg1), Local1) 556 CH06(arg0, 27, 47) 557 558 // ToInteger 559 560 ToInteger(DeRefOf(arg1), Local1) 561 CH06(arg0, 29, 47) 562 563 // Acquire 564 565 // Add 566 567 Add(DeRefOf(arg1), i000, Local1) 568 CH06(arg0, 33, 47) 569 570 Add(i000, DeRefOf(arg1), Local1) 571 CH06(arg0, 34, 47) 572 573 // And 574 575 And(DeRefOf(arg1), i000, Local1) 576 CH06(arg0, 37, 47) 577 578 And(i000, DeRefOf(arg1), Local1) 579 CH06(arg0, 38, 47) 580 581 // Concatenate 582 583 Concatenate(DeRefOf(arg1), i000, Local1) 584 CH06(arg0, 41, 47) 585 586 Concatenate(i000, DeRefOf(arg1), Local1) 587 CH06(arg0, 42, 47) 588 589 // ConcatenateResTemplate 590 591 ConcatenateResTemplate(DeRefOf(arg1), ResourceTemplate(){}, Local1) 592 CH06(arg0, 45, 47) 593 594 ConcatenateResTemplate(ResourceTemplate(){}, DeRefOf(arg1), Local1) 595 CH06(arg0, 46, 47) 596 597 // Divide 598 599 Divide(DeRefOf(arg1), i000, Local2) 600 CH06(arg0, 49, 47) 601 602 Divide(i000, DeRefOf(arg1), Local2) 603 CH06(arg0, 50, 47) 604 605 Divide(DeRefOf(arg1), i000, Local2, Local1) 606 CH06(arg0, 51, 47) 607 608 Divide(i000, DeRefOf(arg1), Local2, Local1) 609 CH06(arg0, 52, 47) 610 611 // Fatal 612 613 Fatal(0xff, 0xffffffff, DeRefOf(arg1)) 614 CH06(arg0, 53, 47) 615 616 // Index 617 618 Index(DeRefOf(arg1), 0, Local1) 619 CH06(arg0, 56, 47) 620 621 Index("0", DeRefOf(arg1), Local1) 622 CH06(arg0, 57, 47) 623 624 // LEqual 625 626 Store (LEqual(DeRefOf(arg1), i000), Local1) 627 CH06(arg0, 58, 47) 628 629 Store (LEqual(i000, DeRefOf(arg1)), Local1) 630 CH06(arg0, 59, 47) 631 632 // LGreater 633 634 Store (LGreater(DeRefOf(arg1), i000), Local1) 635 CH06(arg0, 60, 47) 636 637 Store (LGreater(i000, DeRefOf(arg1)), Local1) 638 CH06(arg0, 61, 47) 639 640 // LGreaterEqual 641 642 Store (LGreaterEqual(DeRefOf(arg1), i000), Local1) 643 CH06(arg0, 62, 0xff) 644 645 Store (LGreaterEqual(i000, DeRefOf(arg1)), Local1) 646 CH06(arg0, 63, 0xff) 647 648 // LLess 649 650 Store (LLess(DeRefOf(arg1), i000), Local1) 651 CH06(arg0, 64, 47) 652 653 Store (LLess(i000, DeRefOf(arg1)), Local1) 654 CH06(arg0, 65, 47) 655 656 // LLessEqual 657 658 Store (LLessEqual(DeRefOf(arg1), i000), Local1) 659 CH06(arg0, 66, 0xff) 660 661 Store (LLessEqual(i000, DeRefOf(arg1)), Local1) 662 CH06(arg0, 67, 0xff) 663 664 // LNotEqual 665 666 Store (LNotEqual(DeRefOf(arg1), i000), Local1) 667 CH06(arg0, 68, 0xff) 668 669 Store (LNotEqual(i000, DeRefOf(arg1)), Local1) 670 CH06(arg0, 69, 0xff) 671 672 // LOr 673 674 Store (LOr(DeRefOf(arg1), i000), Local1) 675 CH06(arg0, 70, 47) 676 677 Store (LOr(i000, DeRefOf(arg1)), Local1) 678 CH06(arg0, 71, 47) 679 680 // Mod 681 682 Mod(DeRefOf(arg1), i000, Local1) 683 CH06(arg0, 74, 47) 684 685 Mod(i000, DeRefOf(arg1), Local1) 686 CH06(arg0, 75, 47) 687 688 // Multiply 689 690 Multiply(DeRefOf(arg1), i000, Local1) 691 CH06(arg0, 78, 47) 692 693 Multiply(i000, DeRefOf(arg1), Local1) 694 CH06(arg0, 79, 47) 695 696 // NAnd 697 698 NAnd(DeRefOf(arg1), i000, Local1) 699 CH06(arg0, 82, 47) 700 701 NAnd(i000, DeRefOf(arg1), Local1) 702 CH06(arg0, 83, 47) 703 704 // NOr 705 706 NOr(DeRefOf(arg1), i000, Local1) 707 CH06(arg0, 86, 47) 708 709 NOr(i000, DeRefOf(arg1), Local1) 710 CH06(arg0, 87, 47) 711 712 // Or 713 714 Or(DeRefOf(arg1), i000, Local1) 715 CH06(arg0, 90, 47) 716 717 Or(i000, DeRefOf(arg1), Local1) 718 CH06(arg0, 91, 47) 719 720 // ShiftLeft 721 722 ShiftLeft(DeRefOf(arg1), i000, Local1) 723 CH06(arg0, 94, 47) 724 725 ShiftLeft(i000, DeRefOf(arg1), Local1) 726 CH06(arg0, 95, 47) 727 728 // ShiftRight 729 730 ShiftRight(DeRefOf(arg1), i000, Local1) 731 CH06(arg0, 98, 47) 732 733 ShiftRight(i000, DeRefOf(arg1), Local1) 734 CH06(arg0, 99, 47) 735 736 // Subtract 737 738 Subtract(DeRefOf(arg1), i000, Local1) 739 CH06(arg0, 102, 47) 740 741 Subtract(i000, DeRefOf(arg1), Local1) 742 CH06(arg0, 103, 47) 743 744 // ToString 745 746 ToString(DeRefOf(arg1), 1, Local1) 747 CH06(arg0, 106, 47) 748 749 ToString(i000, DeRefOf(arg1), Local1) 750 CH06(arg0, 107, 47) 751 752 // Wait 753 754 Store(Wait(e000, DeRefOf(arg1)), Local1) 755 CH06(arg0, 109, 47) 756 757 // XOr 758 759 XOr(DeRefOf(arg1), i000, Local1) 760 CH06(arg0, 112, 47) 761 762 XOr(i000, DeRefOf(arg1), Local1) 763 CH06(arg0, 113, 47) 764 765 // Mid 766 767 Mid(DeRefOf(arg1), 1, 1, Local1) 768 CH06(arg0, 117, 47) 769 770 Mid("123", DeRefOf(arg1), 1, Local1) 771 CH06(arg0, 118, 47) 772 773 Mid("123", 1, DeRefOf(arg1), Local1) 774 CH06(arg0, 119, 47) 775 776 // Match 777 778 Store (Match(DeRefOf(arg1), MTR, 0, MTR, 0, 0), Local1) 779 CH06(arg0, 120, 47) 780 781 Store (Match(Package(){1}, MTR, DeRefOf(arg1), MTR, 0, 0), Local1) 782 CH06(arg0, 121, 47) 783 784 Store (Match(Package(){1}, MTR, 0, MTR, DeRefOf(arg1), 0), Local1) 785 CH06(arg0, 122, 47) 786 787 Store (Match(Package(){1}, MTR, 0, MTR, 0, DeRefOf(arg1)), Local1) 788 CH06(arg0, 123, 47) 789 790 return (0) 791 } 792 793 // Result of Method invocation 794 Method(m004, 1, Serialized) 795 { 796 Name(i000, 0) // Label to check m000 invocations 797 798 Method(m000) 799 { 800 CopyObject(ev00, Local0) 801 Return (Local0) 802 } 803 804 // CondRefOf 805 806 if (y601) { 807 Store (CondRefOf(m000()), Local1) 808 CH06(arg0, 0, 47) 809 810 CondRefOf(m000(), Local1) 811 CH06(arg0, 1, 47) 812 } 813 814 // CopyObject 815 816 CopyObject(m000(), Local1) 817 CH03(ts, z099, 7, 0, 0) 818 819 // Decrement 820 821 Decrement(m000()) 822 CH06(arg0, 2, 47) 823 824 // DerefOf 825 826 Store (DerefOf(m000()), Local1) 827 CH06(arg0, 3, 47) 828 829 // FindSetLeftBit 830 831 FindSetLeftBit(m000(), Local1) 832 CH06(arg0, 5, 47) 833 834 // FindSetRightBit 835 836 FindSetRightBit(m000(), Local1) 837 CH06(arg0, 7, 47) 838 839 // FromBCD 840 841 FromBCD(m000(), Local1) 842 CH06(arg0, 9, 47) 843 844 // Increment 845 846 Increment(m000()) 847 CH06(arg0, 10, 47) 848 849 // LNot 850 851 Store (LNot(m000()), Local1) 852 CH06(arg0, 11, 47) 853 854 // Not 855 856 Not(m000(), Local1) 857 CH06(arg0, 13, 47) 858 859 // ObjectType 860 /* Nov. 2012: Method invocation as arg to ObjectType is now illegal */ 861// 862// ObjectType(m000()) 863// CH03(ts, z099, 8, 0, 0) 864 865 // RefOf 866 867 if (y601) { 868 Store (RefOf(m000()), Local1) 869 CH06(arg0, 14, 47) 870 } 871 872 // Release 873 874 Release(m000()) 875 CH06(arg0, 13, 47) 876 877 // Reset 878 879 Reset(m000()) 880 CH06(arg0, 14, 47) 881 882 // Signal 883 884 Signal(m000()) 885 CH06(arg0, 15, 47) 886 887 // SizeOf 888 889 Store (SizeOf(m000()), Local1) 890 CH06(arg0, 16, 47) 891 892 // Sleep 893 894 Sleep(m000()) 895 CH06(arg0, 17, 47) 896 897 // Stall 898 899 Stall(m000()) 900 CH06(arg0, 18, 47) 901 902 // Store 903 904 Store(m000(), Local1) 905 CH06(arg0, 19, 47) 906 907 // ToBCD 908 909 ToBCD(m000(), Local1) 910 CH06(arg0, 21, 47) 911 912 // ToBuffer 913 914 ToBuffer(m000(), Local1) 915 CH06(arg0, 23, 47) 916 917 // ToDecimalString 918 919 ToDecimalString(m000(), Local1) 920 CH06(arg0, 25, 47) 921 922 // ToHexString 923 924 ToHexString(m000(), Local1) 925 CH06(arg0, 27, 47) 926 927 // ToInteger 928 929 ToInteger(m000(), Local1) 930 CH06(arg0, 29, 47) 931 932 // Acquire 933 934 Store(Acquire(m000(), 100), Local1) 935 CH06(arg0, 30, 47) 936 937 // Add 938 939 Add(m000(), i000, Local1) 940 CH06(arg0, 33, 47) 941 942 Add(i000, m000(), Local1) 943 CH06(arg0, 34, 47) 944 945 // And 946 947 And(m000(), i000, Local1) 948 CH06(arg0, 37, 47) 949 950 And(i000, m000(), Local1) 951 CH06(arg0, 38, 47) 952 953 // Concatenate 954 955 Concatenate(m000(), i000, Local1) 956 CH06(arg0, 41, 47) 957 958 Concatenate(i000, m000(), Local1) 959 CH06(arg0, 42, 47) 960 961 // ConcatenateResTemplate 962 963 ConcatenateResTemplate(m000(), ResourceTemplate(){}, Local1) 964 CH06(arg0, 45, 47) 965 966 ConcatenateResTemplate(ResourceTemplate(){}, m000(), Local1) 967 CH06(arg0, 46, 47) 968 969 // Divide 970 971 Divide(m000(), i000, Local2) 972 CH06(arg0, 49, 47) 973 974 Divide(i000, m000(), Local2) 975 CH06(arg0, 50, 47) 976 977 Divide(m000(), i000, Local2, Local1) 978 CH06(arg0, 51, 47) 979 980 Divide(i000, m000(), Local2, Local1) 981 CH06(arg0, 52, 47) 982 983 // Fatal 984 985 Fatal(0xff, 0xffffffff, m000()) 986 CH06(arg0, 53, 47) 987 988 // Index 989 990 Index(m000(), 0, Local1) 991 CH06(arg0, 56, 47) 992 993 Index("0", m000(), Local1) 994 CH06(arg0, 57, 47) 995 996 // LEqual 997 998 Store (LEqual(m000(), i000), Local1) 999 CH06(arg0, 58, 47) 1000 1001 Store (LEqual(i000, m000()), Local1) 1002 CH06(arg0, 59, 47) 1003 1004 // LGreater 1005 1006 Store (LGreater(m000(), i000), Local1) 1007 CH06(arg0, 60, 47) 1008 1009 Store (LGreater(i000, m000()), Local1) 1010 CH06(arg0, 61, 47) 1011 1012 // LGreaterEqual 1013 1014 Store (LGreaterEqual(m000(), i000), Local1) 1015 CH06(arg0, 62, 0xff) 1016 1017 Store (LGreaterEqual(i000, m000()), Local1) 1018 CH06(arg0, 63, 0xff) 1019 1020 // LLess 1021 1022 Store (LLess(m000(), i000), Local1) 1023 CH06(arg0, 64, 47) 1024 1025 Store (LLess(i000, m000()), Local1) 1026 CH06(arg0, 65, 47) 1027 1028 // LLessEqual 1029 1030 Store (LLessEqual(m000(), i000), Local1) 1031 CH06(arg0, 66, 0xff) 1032 1033 Store (LLessEqual(i000, m000()), Local1) 1034 CH06(arg0, 67, 0xff) 1035 1036 // LNotEqual 1037 1038 Store (LNotEqual(m000(), i000), Local1) 1039 CH06(arg0, 68, 0xff) 1040 1041 Store (LNotEqual(i000, m000()), Local1) 1042 CH06(arg0, 69, 0xff) 1043 1044 // LOr 1045 1046 Store (LOr(m000(), i000), Local1) 1047 CH06(arg0, 70, 47) 1048 1049 Store (LOr(i000, m000()), Local1) 1050 CH06(arg0, 71, 47) 1051 1052 // Mod 1053 1054 Mod(m000(), i000, Local1) 1055 CH06(arg0, 74, 47) 1056 1057 Mod(i000, m000(), Local1) 1058 CH06(arg0, 75, 47) 1059 1060 // Multiply 1061 1062 Multiply(m000(), i000, Local1) 1063 CH06(arg0, 78, 47) 1064 1065 Multiply(i000, m000(), Local1) 1066 CH06(arg0, 79, 47) 1067 1068 // NAnd 1069 1070 NAnd(m000(), i000, Local1) 1071 CH06(arg0, 82, 47) 1072 1073 NAnd(i000, m000(), Local1) 1074 CH06(arg0, 83, 47) 1075 1076 // NOr 1077 1078 NOr(m000(), i000, Local1) 1079 CH06(arg0, 86, 47) 1080 1081 NOr(i000, m000(), Local1) 1082 CH06(arg0, 87, 47) 1083 1084 // Or 1085 1086 Or(m000(), i000, Local1) 1087 CH06(arg0, 90, 47) 1088 1089 Or(i000, m000(), Local1) 1090 CH06(arg0, 91, 47) 1091 1092 // ShiftLeft 1093 1094 ShiftLeft(m000(), i000, Local1) 1095 CH06(arg0, 94, 47) 1096 1097 ShiftLeft(i000, m000(), Local1) 1098 CH06(arg0, 95, 47) 1099 1100 // ShiftRight 1101 1102 ShiftRight(m000(), i000, Local1) 1103 CH06(arg0, 98, 47) 1104 1105 ShiftRight(i000, m000(), Local1) 1106 CH06(arg0, 99, 47) 1107 1108 // Subtract 1109 1110 Subtract(m000(), i000, Local1) 1111 CH06(arg0, 102, 47) 1112 1113 Subtract(i000, m000(), Local1) 1114 CH06(arg0, 103, 47) 1115 1116 // ToString 1117 1118 ToString(m000(), 1, Local1) 1119 CH06(arg0, 106, 47) 1120 1121 ToString(i000, m000(), Local1) 1122 CH06(arg0, 107, 47) 1123 1124 // Wait 1125 1126 Store(Wait(m000(), i000), Local1) 1127 CH06(arg0, 108, 47) 1128 1129 Store(Wait(e000, m000()),Local1) 1130 CH06(arg0, 109, 47) 1131 1132 // XOr 1133 1134 XOr(m000(), i000, Local1) 1135 CH06(arg0, 112, 47) 1136 1137 XOr(i000, m000(), Local1) 1138 CH06(arg0, 113, 47) 1139 1140 // Mid 1141 1142 Mid(m000(), 1, 1, Local1) 1143 CH06(arg0, 117, 47) 1144 1145 Mid("123", m000(), 1, Local1) 1146 CH06(arg0, 118, 47) 1147 1148 Mid("123", 1, m000(), Local1) 1149 CH06(arg0, 119, 47) 1150 1151 // Match 1152 1153 Store (Match(m000(), MTR, 0, MTR, 0, 0), Local1) 1154 CH06(arg0, 120, 47) 1155 1156 Store (Match(Package(){1}, MTR, m000(), MTR, 0, 0), Local1) 1157 CH06(arg0, 121, 47) 1158 1159 Store (Match(Package(){1}, MTR, 0, MTR, m000(), 0), Local1) 1160 CH06(arg0, 122, 47) 1161 1162 Store (Match(Package(){1}, MTR, 0, MTR, 0, m000()), Local1) 1163 CH06(arg0, 123, 47) 1164 } 1165 1166 // Reference to Object as Result of Method invocation 1167 Method(m005, 1, Serialized) 1168 { 1169 Event(ev02) 1170 1171 Name(i000, 0) // Label to check m000 invocations 1172 1173 Method(m000, 2) 1174 { 1175 Store(arg0, i000) 1176 if (LEqual(arg1, 0)) { 1177 Store(Refof(ev00), Local0) 1178 } elseif (LEqual(arg1, 1)) { 1179 Store(Refof(ev02), Local0) 1180 } 1181 Return (Local0) 1182 } 1183 1184 Method(CH00, 2) 1185 { 1186 if (LNotEqual(i000, arg1)) { 1187 err(arg0, z099, 0, 0, 0, i000, arg1) 1188 } 1189 } 1190 1191 Name(lpN0, 2) 1192 Name(lpC0, 0) 1193 1194 While (lpN0) { 1195 Multiply(3, lpC0, Local0) 1196 1197 Store(0, i000) 1198 1199 Store (DerefOf(m000(1, lpC0)), Local1) 1200 if(LNot(SLCK)){ 1201 CH04(ts, 0, 47, z099, Add(9, lpC0), 0, 0) 1202 } 1203 CH00(arg0, 1) 1204 1205 Store (DerefOf(DerefOf(m000(2, lpC0))), Local1) 1206 if(LNot(SLCK)){ 1207 CH06(arg0, Add(1, Local0), 47) 1208 } 1209 CH00(arg0, 2) 1210 1211 Store (Index(DerefOf(m000(3, lpC0)), 0), Local1) 1212 CH06(arg0, Add(2, Local0), 47) 1213 CH00(arg0, 3) 1214 1215 Store (Match(DerefOf(m000(4, lpC0)), MTR, 0, MTR, 0, 0), Local1) 1216 CH06(arg0, Add(3, Local0), 47) 1217 CH00(arg0, 4) 1218 1219 Decrement(lpN0) 1220 Increment(lpC0) 1221 } 1222 } 1223 1224 SET0(z099, ts, 0) 1225 1226 CH03(ts, z099, 11, 0, 0) 1227 1228 // Local Named Object 1229// m000(ts) 1230 1231 // Global Named Object 1232// m001(ts) 1233 1234 // Local 1235 m002(Concatenate(ts, "-m002")) 1236 1237 // Reference to Local Named Object 1238 1239 m003(Concatenate(ts, "-m003-RefLocName"), RefOf(ev01)) 1240 1241 Store(RefOf(ev01), Local0) 1242 m003(Concatenate(ts, "-m003-RefLocName2"), Local0) 1243 1244 CondRefOf(ev01, Local0) 1245 m003(Concatenate(ts, "-m003-CondRefLocName"), Local0) 1246 1247 m003(Concatenate(ts, "-m003-RefGlobName"), RefOf(ev00)) 1248 1249 Store(RefOf(ev00), Local0) 1250 m003(Concatenate(ts, "-m003-RefGlobName2"), Local0) 1251 1252 CondRefOf(ev00, Local0) 1253 m003(Concatenate(ts, "-m003-CondRefGlobName"), Local0) 1254 1255 // Reference to Object as element of Package 1256 1257 Name(pp00, Package(){ev00}) 1258 1259 if (y113) { 1260 m003(Concatenate(ts, "-m003-Index"), Index(pp00, 0)) 1261 } 1262 1263 Store(Index(pp00, 0), Local1) 1264 m003(Concatenate(ts, "-m003-Index2"), Local1) 1265 1266 if (y113) { 1267 m003(Concatenate(ts, "-m003-Index3"), Index(pp00, 0, Local2)) 1268 } 1269 1270 Index(pp00, 0, Local3) 1271 m003(Concatenate(ts, "-m003-Index4"), Local3) 1272 1273 Store(Index(pp00, 0, Local4), Local5) 1274 m003(Concatenate(ts, "-m003-Index5"), Local5) 1275 1276 // Result of Method invocation 1277 m004(Concatenate(ts, "-m004")) 1278 1279 // Reference to Object as Result of Method invocation 1280 m005(Concatenate(ts, "-m005")) 1281 1282 RST0() 1283} 1284