xAsm History


The history of xAsm
Version Dated Release notes
1.0 1 Oct. 96 First release
1.01 1 Dec. 96 Fixed bug in INCBIN (sometimes reported the section full)
Added DEF() function
1.02 12 Feb. 97 Added STRLEN(), STRCAT(), STRIN(), STRCMP(), STRSUB(), STRUPR() and STRLWR() functions
IMPORT/EXPORT/GLOBAL takes multiple arguments now
HRAM sectiontype added
ORG like features added to SECTION
LDIO mnemonic added
1.03 23 Mar. 97 The HRAM section was 128 bytes long instead of 127. potentially thrashing the interrupt enable register if you filled the HRAM.
The BANK() function, when used on a symbol defined in the current sourcefile, returned the wrong bank ID. (reported by Harry P. Mulder)
The BANK() function didn't check whether the argument was a properly defined symbol. (reported by Harry P. Mulder)
Completely new lexical analyser module. This fixed several linenumber bugs and other macro/if/rept related bugs. Also fixed a bug which made it possible to have equated symbols with the same name as a reserved keyword (if you get a "parse error" with this release on some of your sources, this is probably what is going on)
FAIL and WARN commands.
__LINE__, __FILE__, __TIME__, __DATE__ predefined symbols added.
1.04 03 July 1997 First ASMotor release
__TIME__ and __DATE__ give todays date instead of when the assembler was compiled.
Sometimes the first line of a file wouldn't assemble correctly. Reported by Jeff Frohwein.
Unrolling multiline string symbols left the linecounter in a sorry state. Jeff Frohwein again.
DB and DW can now (officially ;-) be used in BSS/HRAM/VRAM sections without any arguments to reserve a byte or a word respectively. Reported/suggested/inspired by Mr. Frohwein.
The character # can now be used as part of a symbol name. Jeff....
The RS counter "_RS" is now defined from the very start of the assembly process instead of after the first RSSET or RSRESET.
Bug fixed: You couldn't use \0-\9 and \@ in {} constructs
PURGE pseudo-op added. Purges a symbol from the symboltable and memory. Use with extreme caution! Inspired by Harry P. Mulder
MACRO parameter passing method changed drastically. Read (and re-read) the manual for details. Suggested by Harry P. Mulder.
1.05 20 July 1997 RGBDS fixes:
RGBAsm supports the LDD and LDI syntax plus [HLD] and [HLI]. LDH is synonymous with LDIO.
General fixes:
There was a bug in the macro parameter passing. Any whitespace after the last parameter would be appended to the last parameter. Reported by Jeff Frohwein.
A section stack has been implemented. Look up POPS and PUSHS. Jeff Frohweins doing again.
OPT command added for defining and changing some options while assembling.
You can now define which characters are used for the Gameboy graphics integer (`) using the commandline or the new OPT command. Cool idea by (surprise surprise) Jeff Frohwein.
Also, an option stack has been added. Look up POPO and PUSHO in the manual.
Fixed yet another line number bug reported by Jeff Frohwein (when will this guy leave me alone? ;)
1.06 22 July 1997 General fixes:
The lamest typo bug of all time has been fixed. RGBAsm would output a word defined with DW as 4 bytes instead of 2. Jeff Frohwein reported this.
The first line of an included file didn't assemble correctly.
-b option added for setting the characters used for binary constants.
1.08 21 September 1997 General fixes:
A crash occured if you tried to use a macro symbol in an expression. (Jeff Frohwein)
You couldn't use STRCMP, STRLEN and STRIN in relocatable expressions. (Harry P. Mulder)
Relocatable symbols are no longer allowed as arguments to the DEF function.
Bug fixed in the assembler where it would sometimes write out too many bytes for HRAM section definitions.
1.08 02 July 1999 Feature:
DQ directive added for defining 32-bit data constants. See operation of DW & DB.
1.08 05 July 1999 Feature:
Allow only a part of a binary file to be included instead of the whole thing.
1.08 10 June 1999 Feature:
Added output of file dependency information for each file included/assembled. Enabled with a command line option.
1.08 ?? ???? 1999 Feature:
Added ORG directive to allow anonymous sections.
1.08 ?? ???? 1999 Feature:
Added ability to output error information in either RGBDS or Microsoft Developer Studio format.
1.08 ?? ???? 1999 Feature:
Added pseudo-instructions to handle NE (not equal), EQ (equal), and LT (less than) on JR/JP/CALL instructions
1.08 ?? ???? 1999 Feature:
Added STRTRIM, STRLTRIM, STRRTRIM directives to allow trimming of white space from strings in macro arguments.
1.08 ?? ???? 1999 Bug Fix:
When an "unknown symbol" error was reported during the link phase the undefined symbol was not given.
1.08 ?? ???? 1999 Bug Fix:
Declaring a symbol as GLOBAL in a header file and then referencing it in code but never defining it would crash the linker.
1.09 8 February 2000 Feature:
Can now use a command line option to set the number format between a slightly tweaked Motorola/RGBDS format and Zilog.
Hex numbers can now be represented as $FF or FFh.
Octal as &77 or 77o.
Binary as %10010110 or 10010110b.
Gameboy graphics numbers as `1001 or 1001g.
Decimal numbers remain unchanged.
1.10 9 February 2000 Feature:
Added a command line option -q to for quiet mode (suppress messages except errors).
1.11 13 February 2000 Bug Fix:
Corrected an infinite loop of error messages being reported when an illegally formatted number was encountered.


Last updated 21 September 1997 by Carsten Sorensen