windows-nt/Source/XPSP1/NT/base/busdrv/acpi/asl/readme.txt

181 lines
7.3 KiB
Plaintext
Raw Normal View History

2020-09-26 03:20:57 -05:00
ACPI Source Language Assembler Release History
Version 1.0.12 (c) Copyright 1999, Microsoft Corporation. All rights reserved.
Version Description
------- -----------
0.9.8 Generates spec. v1.0 description header.
Make semantics and opcode type synchronize to spec. v1.0.
Added support for 3rd optional argument of "Method" (i.e. SyncType).
Added support for the SMBus access types.
Changed "Buffer" argument from "Byte" to "Opcode".
Added 3rd argument (optional SuperName) to "Index".
Changed argument type of "SizeOf" from "NameStr" to "SuperName".
Changed "BankValue" of "BankField" from "DWord" to "Opcode".
Changed "TimeOut" of "Acquire" from "DWord" to "Word".
Added optional "SuperName" argument to a lot of Type2Opcodes.
Changed "Load" syntax according to 1.0 spec.
Changed "NotificationValue" of "Notify" from "Byte" to "Opcode".
Changed "SyncObject" of "Reset" from "NameStr" to "SuperName".
Changed "Sleep" and "Stall" arguments from "Word"/"Byte" to "Opcode".
Changed "Unload" argument to "NameStr".
Changed "TimeOut" of "Wait" from "DWord" to "Opcode".
Fixed the encoding of NameStr if it contains only "\" or "^", in which
case, a NULL is appended as boundary mark to separate potential
following NameStr.
Added support for methods invoking other methods with arugments.
Changed "Buffer" to support reserved size bigger than initializer size.
0.9.9 Fixed "Alias" code generation.
0.9.10 Added spec. 1.0 compliant phrase in banner.
0.9.11 Fixed fault if buffer initializer size exceeds 255.
0.9.12 Changed Creator ID from MS to MSFT.
Fixed default method mode to NOT_SERIALIZED.
Optimized FieldList code generation so that an unnamed field with 0
bits won't be generated.
Added support to allow Index() to be part of SuperName so that it is
now legal to do "Store(Zero, Index(PKG, 2))".
Added _STM to the reserved name table.
Don't allow offset() to go backward.
0.9.13 Added DerefOf() support.
0.9.14 Added AccessAs() macro.
0.9.15 Added _PRT as valid reserved name.
Added PNP Macro support except for auto CreateXField generation.
0.9.16 Added command line option to allow overriding AML file name.
Added command line option to allow specifying LST file name.
Renamed some of the command line options.
Cleaned up the reserved name table (get rid of the obsolete ones
and added the missing ones).
0.9.17 Checksum in the EndTag of the PNP macros is now zero.
0.9.18 Added support for QWord Address Space Descriptor in PNP macros.
Added length field in Word, DWord, QWord Address Space Descriptors.
Added _INI object in reserved name table.
0.9.19 Fixed the IF-ELSE-ELSE problem so that we don't allow this any more.
Added intensive semantic error checking.
Added the /n option (NameSpace dump).
0.9.20 Improved the NameSpace Paths dump.
Added CreateXField support for PNP macro. So now you can do:
Name(BUF0, ResourceTemplate() {
IRQ(Edge, ActiveHigh, Shared, IRQ0) {
3,4,5,7,9,10,11,14,15
}
IO(Decode16, 0x100, 0x3ff, 3, 8, IO0)
}
)
CreateWordField(BUF0, IRQ0._INT, INTR)
CreateWordField(BUF0, IO0._MIN, IOL)
0.9.21 Cleaned up error messages.
Fixed a fault when generating .LST file.
Added more semantic error checks.
Allowed Index() as well as CreateXField to use PNP macro labels.
For example:
Index(BUF0, IRQ0._INT, Local0)
0.9.22 Added a new compiler directive "External". The syntax is:
External(<ObjName>, <ObjType>)
This directive is to let the assembler know that the object is declared
external to this table so that the assembler will not complain about
the undeclared object. During compiling, the assembler will create
the external object at the specified place in the name space (if a
full path of the object is specified), or the object will be created
at the current scope of the External statement. <ObjType> is
optional. If not specified, "UnknownObj" type is assumed. Valid
values of <ObjType> are:
UnknownObj
IntObj
StrObj
BuffObj
PkgObj
FieldUnitObj
DeviceObj
EventObj
MethodObj
MutexObj
OpRegionObj
PowerResObj
ThermalZoneObj
BuffFieldObj
DDBHandleObj
0.9.23 Added _PIC in reserved object table.
Added .ASM file generation.
Improved .LST file generation.
Renamed some of the command line options to be more like the Microsoft
C compiler.
0.9.24 Fixed command usage help text.
.ASM/.LST: Fixed Method invocation.
.ASM/.LST: Fixed constant terms in Package and Name.
.ASM/.LST: Fixed keyword arguments.
0.9.25 Optimized EISAID() code generation.
0.9.26 Added a check to make sure Fields and BankFields do not have an offset
outside of the OperationRegion range.
Added _DCK in the reserved name table.
0.9.27 Added _FDI in the reserved name table.
1.0.0 Renamed to be ver 1.0.0 (the first final release candidate).
1.0.1 Added _DDN, _BDN in the reserved name table.
Added type checking on SuperName to disallow PNP macro labels.
1.0.2 Added '*' for objects in NSD files to indicate object has temporary
life (i.e. objects created in methods).
Added more semantic check code for checking proper child term class.
1.0.3 Fixed a bug on checking child term class involving nested "Include".
Fixed a bug to complain on ASL source file without DefinitionBlock.
CreateXField are now Object Creators instead of Type1Opcode.
If, Else and While scopes will now allow Object Creator terms.
1.0.4 Added _REG in the reserved name table.
1.0.5 Added check to make sure integer values cannot exceed DWORD maximum.
Added error message when offset in FieldUnit exceeds 0x1ffffff or
field length exceeds 0x10000000.
1.0.6 Added code to allow specifying region space in OperationRegion as a
number so that region space can be extended beyond the standard
regions.
Added _BBN in the reserved name table.
1.0.7 Added code to print AML code offset to NameSpace object dump at which
the NameSpace object was created.
1.0.8 Redefined Interrupt Vector Flags of the Extended Interrupt Descriptor
resource macro so that low-active-edge and high-active-level are
allowed.
1.0.9 Added _SxD in the reserved name table.
1.0.10 Added code to fail forward references of PNP resource objects.
Added code to check for incorrect number of arguments during method
invocation.
Fixed a bug that may result in skipping some object type/existence
validations.
1.0.11 Added _GLK, _FDE, _S0D and _S5D in the reserved name table.
1.0.12 Added _BCL, _BCM, _DCS, _DDC, _DGS, _DOD, _DOS, _DSS and _ROM in the
reserved name table.
1.0.13 Added an optional third argument to External so that it can be used
to specify the number of argument to the MethodObj. If the third
argument is missing, it is assumed 0. Currently, if the object
is not MethodObj, this optional argument is ignored.
e.g. External(ABCD, MethodObj, 2)