Jump to content

1 Screenshot

About This File

Intel ACPI tools. The NEW version 20141107 compiled by me from original sources. Use iasl compiler with your DSDTSE or another editor. To update your DSDTSE, simply right click on DSDTSE --> Show contents, drag'n'drop iasl into --> Contents --> Resources. Another editors have mostly the same way. Or another way by Terminal: drag iasl on Terminal window (bash), (press Return (Enter) to see all keys) -> write some keys, drag Aml/Dsl file to compile/decompile. This way you can more deeply configure/clean your DSDT during compile (especially with -w3 key), find more warnings and junk code, empty / uninitialized methods. Have a nice day good compilings! Amen.

Major tools and utilities:

  • iASL - ACPI Source Language Compiler, ACPI Table Compiler, and AML Disassembler
  • AcpiExec - Load ACPI tables and execute control methods from user space
  • AcpiDump - Obtain system ACPI tables and save in ASCII hex format
  • AcpiXtract - Extract binary ACPI tables from an ASCII acpidump
  • AcpiHelp - Help utility for ASL operators, AML opcodes, and ACPI Predefined Names

Miscellaneous utilities:

  • AcpiNames - Example utility that loads and displays the ACPI namespace
  • AcpiSrc - Convert ACPICA code to Linux format
  • AcpiBin - Miscellaneous manipulation of binary ACPI tables

Intel ACPI тулзы вер?ии 20141107 ?компилированы мною из оригинальных ?ырцов. Дл? и?пользовани? ? ДСДТ редактором. Ин?талим ?юда: Открываем правой кнопкой по "любимому" редактору --> показать ?одержимое пакета --> Contents --> Resources --> перета?киваем драг-н-дропом на ?ту папку файл iasl, на замену ?оглашаем??. Имеем ?вежий компайлер.

ACPI Spec ver. 5.1 also here / ACPI ?пецификации вер?ии 5.1 также зде?ь: http://www.hackintoshosx.com/files/file/4155-iasl-intel-acpi-tools-x64/

Attension / Внимание ::

Simple replacement of iasl compiler iasl (iasl --> iasl5) in MacIASL leads to an empty window Summary, the bottom line shows correctly the number of errors / warnings / remarks, but the screen remains blank and errors addresses hard to find. This is the MacIASL's bug, not the compiler's.

Про?та? замена компайлера iasl (iasl --> iasl5) в MacIASL ведет к пу?тому выхлопу окна Summary, то е?ть количе?тво ошибок / предупреждений / ремарок в нижней ?троке показывает корректно, но окно о?тает?? пу?тым и адре?а ошибок найти ?ложно. Это баг ?амого MacIASL, а не компил?тора.


To have a correctly disassembled DSL file w/o unexpected errors, you need to use the Terminal to decompile AML binaries. If you have a modern platform and more than 1 SSDT in your ACPI, you need to decompile all of them correctly. To decompile only DSDT.aml use -e key:

Чтобы получить корректно диза??емблированный DSL файл без непредвиденных ошибок декомпил?ции, нужно и?пользовать терминал дл? декомпил?ции бинарников. Е?ли вы владеете ?овременной платформой и ?реди ACPI таблиц при?ут?твует более 1 SSDT, необходимо их корректно декомпилировать. Чтобы декомпилировать только DSDT, и?пользуйте ключ -e:

iasl -e SSDT*.aml -d DSDT.aml

iasl -e /@full_path@/SSDT*.aml -d /@full_path@/DSDT.aml

To decompile all DSDT & SSDTs use -da key:

Чтобы декомпилировать в?е DSDT и SSDT таблицы, и?пользуйте ключ -da:

iasl -da DSDT.aml SSDT*.aml

iasl -da /@full_path@/DSDT.aml /@full_path@/SSDT*.aml

Also add reference file ref.txt with unresolved External Methods and Argument count for each. Use -fe key:

Также можно добавить дополнительный реф.файл ref.txt c перечи?лением в?е еще нера?познанных методов и количе?тво ?ргументов дл? каждого. И?пользуйте ключ -fe

External (MDBG, MethodObj, 1)  // <<<--- Unresolved Mothod with designated Arguments count

iasl -fe /@full_path@/ref.txt -e /@full_path@/SSDT*.aml -d /@full_path@/DSDT.aml

And more: if you need to decompile your custom DSDT with your patches, you need to use all of the SSDTs this time too.

В дополнение: е?ли вы решили декомпилировать ?вою ка?томную DSDT ? примененными патчами, в ?том ?лучае также требует?? и?пользовать терминал и включить в декомпил?цию в?е SSDT таблицы.

Changelog 20141107:

07 November 2014. Summary of changes for version 20141107:

This release is available at https://acpica.org/downloads

This release introduces and implements language extensions to ASL that provide support for symbolic ("C-style") operators and expressions. These language extensions are known collectively as ASL+.

1) iASL Compiler/Disassembler and Tools:

Disassembler: Fixed a problem with disassembly of the UartSerialBus macro. Changed "StopBitsNone" to the correct "StopBitsZero". David E. Box.

Disassembler: Fixed the Unicode macro support to add escape sequences. All non-printable ASCII values are emitted as escape sequences, as well as the standard escapes for quote and backslash. Ensures that the disassembled macro can be correctly recompiled.

iASL: Added Printf/Fprintf macros for formatted output. These macros are translated to existing AML Concatenate and Store operations. Printf writes to the ASL Debug object. Fprintf allows the specification of an ASL name as the target. Only a single format specifier is required, %o, since the AML interpreter dynamically converts objects to the required type. David E. Box.

    (old)    Store (Concatenate (Concatenate (Concatenate (Concatenate                 (Concatenate (Concatenate (Concatenate ("", Arg0),                 ": Unexpected value for "), Arg1), ", "), Arg2),                 " at line "), Arg3), Debug)    (new)    Printf ("%o: Unexpected value for %o, %o at line %o",                 Arg0, Arg1, Arg2, Arg3)    (old)    Store (Concatenate (Concatenate (Concatenate (Concatenate                 ("", Arg1), ": "), Arg0), " Successful"), STR1)    (new)    Fprintf (STR1, "%o: %o Successful", Arg1, Arg0)

iASL: Added debug options (-bp, -bt) to dynamically prune levels of the ASL parse tree before the AML code is generated. This allows blocks of ASL code to be removed in order to help locate and identify problem devices and/or code. David E. Box.

AcpiExec: Added support (-fi) for an optional namespace object initialization file. This file specifies initial values for namespace objects as necessary for debugging and testing different ASL code paths that may be taken as a result of BIOS options.

2) Overview of symbolic operator support for ASL (ASL+)


As an extension to the ASL language, iASL implements support for symbolic (C-style) operators for math and logical expressions. This can greatly simplify ASL code as well as improve both readability and maintainability. These language extensions can exist concurrently with all legacy ASL code and expressions.

The symbolic extensions are 100% compatible with existing AML interpreters, since no new AML opcodes are created. To implement the extensions, the iASL compiler transforms the symbolic expressions into the legacy ASL/AML equivalents at compile time.

Full symbolic expressions are supported, along with the standard C precedence and associativity rules.

Full disassembler support for the symbolic expressions is provided, and creates an automatic migration path for existing ASL code to ASL+ code via the disassembly process. By default, the disassembler now emits ASL+ code with symbolic expressions. An option (-dl) is provided to force the disassembler to emit legacy ASL code if desired.

Below is the complete list of the currently supported symbolic operators with examples. See the iASL User Guide for additional information.

ASL+ Syntax      Legacy ASL Equivalent-----------      ---------------------    // Math operatorsZ = X + Y        Add (X, Y, Z)Z = X - Y        Subtract (X, Y, Z)Z = X * Y        Multiply (X, Y, Z)Z = X / Y        Divide (X, Y, , Z)Z = X % Y        Mod (X, Y, Z)Z = X << Y       ShiftLeft (X, Y, Z)Z = X >> Y       ShiftRight (X, Y, Z)Z = X & Y        And (X, Y, Z)Z = X | Y        Or (X, Y, Z)Z = X ^ Y        Xor (X, Y, Z)Z = ~X           Not (X, Z)X++              Increment (X)X--              Decrement (X)    // Logical operators(X == Y)         LEqual (X, Y)(X != Y)         LNotEqual (X, Y)(X < Y)          LLess (X, Y)(X > Y)          LGreater (X, Y)(X <= Y)         LLessEqual (X, Y)(X >= Y)         LGreaterEqual (X, Y)(X && Y)         LAnd (X, Y)(X || Y)         LOr (X, Y)(!X)             LNot (X)    // Assignment and compound assignment operationsX = Y           Store (Y, X)X += Y          Add (X, Y, X)X -= Y          Subtract (X, Y, X)X *= Y          Multiply (X, Y, X)X /= Y          Divide (X, Y, , X)X %= Y          Mod (X, Y, X)X <<= Y         ShiftLeft (X, Y, X)X >>= Y         ShiftRight (X, Y, X)X &= Y          And (X, Y, X)X |= Y          Or (X, Y, X)X ^= Y          Xor (X, Y, X)

3) ASL+ Examples:

-----------------Legacy ASL:        If (LOr (LOr (LEqual (And (R510, 0x03FB), 0x02E0), LEqual (            And (R520, 0x03FB), 0x02E0)), LOr (LEqual (And (R530, 0x03FB),             0x02E0), LEqual (And (R540, 0x03FB), 0x02E0))))        {            And (MEMB, 0xFFFFFFF0, SRMB)            Store (MEMB, Local2)            Store (PDBM, Local1)            And (PDBM, 0xFFFFFFFFFFFFFFF9, PDBM)            Store (SRMB, MEMB)            Or (PDBM, 0x02, PDBM)        }ASL+ version:        If (((R510 & 0x03FB) == 0x02E0) ||            ((R520 & 0x03FB) == 0x02E0) ||            ((R530 & 0x03FB) == 0x02E0) ||             ((R540 & 0x03FB) == 0x02E0))        {            SRMB = (MEMB & 0xFFFFFFF0)            Local2 = MEMB            Local1 = PDBM            PDBM &= 0xFFFFFFFFFFFFFFF9            MEMB = SRMB            PDBM |= 0x02        }Legacy ASL:        Store (0x1234, Local1)        Multiply (Add (Add (Local1, TEST), 0x20), Local2, Local3)        Multiply (Local2, Add (Add (Local1, TEST), 0x20), Local3)        Add (Local1, Add (TEST, Multiply (0x20, Local2)), Local3)        Store (Index (PKG1, 0x03), Local6)        Store (Add (Local3, Local2), Debug)        Add (Local1, 0x0F, Local2)        Add (Local1, Multiply (Local2, Local3), Local2)        Multiply (Add (Add (Local1, TEST), 0x20), ToBCD (Local1), Local3)ASL+ version:        Local1 = 0x1234        Local3 = (((Local1 + TEST) + 0x20) * Local2)        Local3 = (Local2 * ((Local1 + TEST) + 0x20))        Local3 = (Local1 + (TEST + (0x20 * Local2)))        Local6 = Index (PKG1, 0x03)        Debug = (Local3 + Local2)        Local2 = (Local1 + 0x0F)        Local2 = (Local1 + (Local2 * Local3))        Local3 = (((Local1 + TEST) + 0x20) * ToBCD (Local1))

What's New in Version 20141107


  • https://github.com/acpica/acpica/blob/master/documents/changes.txt

User Feedback

Recommended Comments

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.