Hi All,

I've just posted HLA v1.74 to Webster. You can find a copy
at http://webster.cs.ucr.edu/AsmTools/HLA/dnld.html

HLA v1.74 incorporates the following improvements:

* Corrected a problem in parameter parsing. Added a call to SavePosn
to fix problem with function calls appearing in ELSEIF generating
bad code.

* Corrected a problem with HLA code generation for STDARG (and CDECL)
parameters (good old SavePosn bug).

* Fixed a problem with the Linux version of openNew (added o_trunc
option to clean up an existing file).

* Improved internal memory management and corrected a lot of
bad pointer problems. Added more assertions to (hopefully)
catch future problems.

* Corrected a defect that allocated zero bytes when processing
a macros variable parameter list (allocation of zero bytes
returns NULL, which messed up the code).

* Modified the "free" function to avoid freeing objects that were
not allocated on the heap.

* Cleaned up code that back-tracked the output file (for things
like handling boolean expressions and parameter lists). Converted
a ton of "cut&paste" code to subroutine calls so there was only
one point in the code where the backtracking needs to be maintained.

* Modified HLA.C "usage" function to request user input in the middle
of the output if the output is headed to the standard error device.
(To keep the number of lines down to a small screenful.)

* Modified the pushw and pushd instructions to emit "push word ..."
and "push dword ..." for constants when emitting FASM code.

Additional new features:

Added the AGE (adventure game engine) package to the Examples
download (AGE is an object-oriented library/application package
that lets you easily create and modify adventure games).

Added a new "userExamples" directory to the "Examples" download
that features user-written examples in HLA.


HLA, the High-Level Assembler, is a powerful macro
assembly language development system that runs under
Windows and Linux operating systems. Carefully-written
applications are portable between both operating systems
with nothing more than a recompile of the source file.

From a features point of view, HLA is one of the most
powerful assemblers ever written. It's macro and
"compile-time language" facilities far exceed those found
in other assemblers.

HLA was specifically designed to make learning and writing
assembly language as easy as possible. HLA is fully supported
by tons of documentation, example code, and other things
that beginning and advanced programmers will find useful.
The 32-bit edition of "The Art of Assembly Language"
(No Starch Press) teaches introductory assembly language
programming using HLA and is one of the most often-cited
textbooks on the subject. You can read "The Art of Assembly"
on-line at http://webster.cs.ucr.edu/AoA/index.html.

The HLA system also includes the HLA Standard Library,
a collection of hundreds of ready to use library routines that
simplify assembly language programming and provide (among
other things) a usable interface to the underlying operating system.
Full source code to the Standard Library is available.

The HLA compiler and standard library are public domain and
can be used anyway you see fit.

Randy Hyde
Posted on 2005-01-15 21:14:56 by rhyde