1. MarkSletterink
  2. >>
  3. msx
  4. >>
  5. XAsm

MSX XAsm - Z80 Cross-Assembler for PC

XAsm is a cross-assembler that generates Z80 machine code on a PC.

I developed it to help speed up the development of Ablaze.


Original Release

For historical awesomeness, check out the archived version of the original XAsm page.

Version Information


  1. Fixed bug in >= and <= operators.
  2. Added != operator.

2.00.025 (09 Nov. 1997)

  1. Fixed bugs on allowed register check and added extra error information output in ProcessRNIXY, ProcessArithmics and _I_LD.
  2. Added synonym instruction 'ADD x' for 'ADD A,x'.

2.00.024 (02 Nov. 1997)

  1. Fixed bug in allowed register check in ProcessRNIXY.
  2. Added '@' and '?' to valid label character set.

2.00.023 (19-10-1997)

  1. Fixed bug with recognition of FLAGS register as an argument in ProcessRNIXY.

2.00.022 (04-10-1997)

  1. Fixed bug in label recognition when first character was a '_'.
  2. Changed instruction "EX AF,AF'" to "EX AF,[AF|AF']".
  3. Tightened up error registering to avoid crashes in extreme situations.

2.00.021 (01-10-1997)

  1. Added new binary number format {[0|1|.]}[0|1]B
  2. Improved stability with errors.

2.00.020 (28-9-1997)

  1. Added custom size linebuffer support.
  2. Fixed bug in 'JP cc,nn'.

2.00.019 (26-9-1997)

  1. Fixed error in character classification routines.


  1. Changed linebuffer size to 256.
  2. Added custom filebuffer size.
  3. New release version.


  1. Fixed EQU registration/backpatching.
  2. Added multiline support.
  3. Macro support partly implemented.


  1. Added >, <, >=, <= operators.
  2. Fixed label registering bug in if-else-endif constructions.
  3. Improved expression evaluator code.


  1. Added binary file option.
  2. Fixed bug in FileManager filename retrieval.
  3. Fixed bug in argument retrieval when line is too long or the string was not closed with a quote character.
  4. Added system identifiers. (XASM, XASM_VER, XASM_LOW, XASM_BUILD)
  5. Added = operator for expressions.


  1. Optimized more functions for more speed.
  2. Fixed display error.
  3. Added END instruction.


  1. Added custom filebuffer.


  1. Error and warning messages are compatible to the MS Developer Studio output window format so XAsm32 can be run as a tool now.
  2. Busy implementing the macro handling.
  3. Optimized some things to improve speed. YEEEHAAA!


  1. Added DEFB, DEFW, DEFD and DEFS to the instruction set (which are the same things as DB, DW, DD and DS). (DD still isnt implemented.)
  2. Made version/signon info for XAsm static functions from the class instead of using general functions.
  3. Added DumpStatus function for extra information at crashes etc.
  4. Improved signed/unsigned values checking and warning messages.
  5. Fixed bug on allowed arguments check in ProcessRNIXY().
  6. Added BINCLUDE instruction to binary include files.


  1. Solved a bug in DB. Backpatching wasnt handled correctly any more since the string handling was implemented.
  2. Completed overflow checking on backpatches.


  1. Completed memory allocation failure checking. (malloc's)