Hobby Cross Assembler (HXA) 0.140

Started by Blacklord, April 02, 2007, 08:54 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Blacklord

The Hobby Cross Assembler (HXA) is a macro assembler capable of producing absolute output files in raw binary and Intel hexadecimal formats. HXA is designed to be fairly portable between various processors, and is GPL-licensed freeware.

Variants of HXA know very much about real processors but very little about real computers. Such details as character sets, ROM routines, I/O locations and file formats must be explicitly provided in source code for each real computer HXA is required to work with. Fortunately in most cases this need only be done once and the information placed in one or more include files.

Currently Supported Processors

    * T_XX Family : an imaginary series of test processors
    * 6502 Family : 6502, 65C02, R65C02, W65C02S and W65C816S

Currently Supported Operating Systems

    * MS-DOS 2.1 or higher

http://home.earthlink.net/~hxa/

New in 0.140 :

Added

    * HEX data storage pseudo op

Extended

    * the upper limit of the numeric argument supplied to PADTO has been raised from 512 to the maximum value of the program counter plus one, which makes padding to specific address values possible (thanks to Dave Plummer for provoking a re-thinking of this pseudo op)
    * hexadecimal numeric literals and escape sequences may now be expressed C-style (ie., with an '0x' prefix) in addition to Motorola and Intel styles
    * in segmented source the ORG that makes the first segment absolute can now occur in any fragment of it before the end of the source, rather than being required before data is stored in any other segment (it still must occur before any data is stored in the first segment)

Bug Fix - PADTO Pseudo Op

    * then: PADTO could be used even if the program counter had an indeterminate value, leading to unpredicatable behavior since it depends on the program counter to decide how much to padding to add
    * now: PADTO triggers a fatal error if the program counter is invalid when its use is attempted (the same as all other pseudo ops that depend on the program counter)

Bug Fix - Listing Long Source Lines

    * then: single source lines with a sufficiently long run of non-space characters caused the listing routine to go into an infinite loop as it tried to chop them down for listing on multiple consecutive lines
    * now: long runs of non-space characters are properly listed on consecutive lines (thanks to Dave Plummer for finding this bug)

Bug Fix - Variable Labels In Nested Repeat Control Expressions

    * then: if variable label used in the control expression of a nested repeat loop had its value set only somewhere in an enclosing loop, an error would be reported when psop processing tried to evaluate it before then
    * now: evaluation of the control expressions of repeat loops occurs only when actually needed