Download HLA!
Current Version: 2.16

There are several different versions of HLA maintained on this site.

There are four major versions of HLA v2.x for Windows, Mac OS X, Linux, and FreeBSD. Currently, HLA v2.x is in beta-test form.

This site maintains a frozen HLA v1.106 version for those people who need to use HLA v1.x to maintain old code or are concerned about the beta nature of HLA v2.x.. HLA v1.106 is available for all four operating systems.

HLA v1.99 is a frozen version that incorporates the HLA Standard Library v1.x as part of the package (for Windows and Linux users, only). Beginners who are just learning assembly language programming using the electronic edition of The Art of Assembly Language should download and use this version of HLA until they are comfortable programming in assembly language. The examples in The Art of Assembly Language use the routines found in the HLA standard library v1.x and beginning students will be able to use HLA v1.99/HLA stdlib v1.x without any problems.

Note that The Art of Assembly, Second Edition, uses code that has been tested under HLA v2.x. Also, the downloads available at this website for the Art of Assembly have all been modified to compile properly with HLA v2.x. Only the examples appearing within the book itself (1st edition printed book or the electronic edition) might require the frozen HLA v1.99 version.

To obtain HLA v1.99 (the frozen version), click here.

To obtain HLA v1.106 (For Windows, Mac OS X, Linux, and FreeBSD), click here.

HLA v2.16-

(Special version for 64-bit Linux: slight modification to "hla" application to work with 64-bit system.)

Tons of fixes to the compiler and standard library.

HLA v2.15-

compiler/language updates:

Added TYPE section to classes (experimental).
Corrected several minor crashes.
Various other bug fixes (see sourceforge for more details).
Cleaned up some issues with the @section CTL function .

stdlib updates:

Some tweaks to the RPC module.
Fixed some problems in HOWL.

HLA v2.14-

compiler/language updates:

Fixed a problem with the "super" keyword (external VMT problems).
Fixed a problem with the @delLeadingSpaces compile-time function.
Corrected several minor crashes.
Updated NASM code generation to match the NASM assembler
Various other bug fixes (see sourceforge for more details).
Modified raise to pass additional information specifying the cause and position of the exception to an HLA exception handler.

stdlib updates:

Major revamp of the RPC module.
Changed the socket module to pass an extra parameter to the server.start procedure. Fixed several socket-related issues.
Fixed some problems in HOWL.
Modified ex.printExceptionError to display additional information (passed by raise).
Lots of other little changes.


HLA v2.13-

compiler/language updates:

Added mhlatkns.hla
Fixed a crash that occurred after an error message. Added @modregrm function
Added #scan statement
Added @delspaces function
Fixed several crashes
Fixed a reduce/reduce conflict in @replace grammar.
Updated version number for release.

stdlib updates:

Updated documentation files.
Added pat.failif macro to patterns.hhf
Modified rpc.hhf to support multiple remoteProcedures macro invocations.
Fixed an issue with background colors in wabsEditBox.hla.
Fixed various width issues in wScrollWindow.hla.
Updated patterns documentation to reflect pat.failif.
Added wScrollWindow_t class to HOWL.
Made lots of changes to support object background colors in HOWL (mostly to no avail).
Freed up some memory leaks when destroying HOWL objects.
Added several new constructors to various HOWL classes to allow some additional arguments.
Fixed an issue in wTabs in howl.hhf
Fixed a minor problem in the wTabs HOWL component
Fixed an issue in howl.hhf
Added second operand to wForm macro in HOWL.
Added hlatkns.hhf file (and @scan CTL function)
Added @modregrm CTL function.
Lots of little changes to HOWL code.
Added wFont_t.create_wFont2 function to include angles and weight.
Minor RPC changes
Fixed several problems with the RPC library module. Fixed some sockets module issues. Fixed some issues with the new thread-safe external names (especially in MAC.HHF and PATTERNS.HHF). Added some declarations to w.hhf.


HLA v2.12-

Corrected a problem related to external VMTs for classes that inherit some other class (was getting a link error).
Fixed several problems with the "_SAFE" external name conversion (from v2.11).
Changed RPC.HHF to create separate include files for server and client external declarations (for separate units).

HLA v2.11-

Corrected a problem with passing an untyped parameter as a pass-by-reference parameter.
Added the RPC module to the standard library.
Modified all the header files to generate different external names for thread-safe versions of stdlib code (better error reporting).
Fixed various compiler crashes.
Added @replace, @left, @leftdel, @right, @rightdel, and @curvar compile-time functions.

HLA v2.10-

Mainly this release consists of internal cleanup and code refactoring in the compiler plus a lot of changes to the HOWL library code.

HLA v2.9-

External named declarations are now legal (e.g., static namedVMT: vmt( someclass ); external( "optional_string" );
@linenumberstk and @filenamestk compile-time functions added.
@errorPrefix pseudo-variable added

Added new fields (at negative offsets) to the VMT: parent VMT pointer, class name, and object size.

Refactored HOWL include files and HOWL library code.

HLA v2.8-

Added "super" keyword