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.08c-Lmod-00 3 September 2008 Bug Fixes:
Fixed seg. fault when running with options but no input file.
General Fixes
Improved error messages.
Changed default fillchar to 0xFF.
Allow PC-relative jumps from $00xx to $FFxx.
Features:
Separated output between stdout and stderr.
Assembly will insterrupt infinite loop of errors.
DQ and RQ directives added for 32-bit data structure.
Allow only a part of a binary file to be included instead of the whole thing.
Added output of file dependency information for each file included/assembled. Enabled with a command line option.
Added a command line option -q to for quiet mode (suppress messages except errors).
Added STRTRIM, STRLTRIM, STRRTRIM directives to allow trimming of white space from strings in macro arguments.
Allow PC-relative jumps out of section as long as source and destination section/address is fixed.
Added section types ALIGNED_HOME, ALIGNED_CODE and ALIGNED_DATA which will create an aligned home/code/data section.
Added section types CONTAINED_HOME, CONTAINED_CODE and CONTAIN_DATA. See Sections for an explanation.


Last updated 21 September 1997 by Carsten Sorensen

Last updated 3 September 2008 by lai