Z80vasm - A modification of VASM by Robert Coward ------------------------------------------------- This archive is a modified version of the VASM assembler (from version V17a), specifically built to provide Z80 assembler facilities to build the XDF and associated projects under a Windows 8 environment. These projects originally used the excellent Frankeinstein assembler, but this is not Windows 8 compatible. It has been built using Visual Studio 2013 Community Edition as a 32 bit Windows Console application, though it will not run under really old OS such as Windows XP. A summary of the main differences from the generic VASM distribution are as follows: 1) Fixed as a Z80 (64180 compatible) assembler; no other CPUs are supported. 2) Fixed using the old syntax module, as this is compatible with the XDF project syntax. 3) Output binary module has been completely reworked, as it did not cope with out-of-order sections (i.e. it originally expected each section to be in ascending PC order). Now, it can cope with sections in any order, and will pad with spaces between sections as required. Note that by detault, it will NOT pad from PC=0 to the first section start, but this can be enabled with the option -fill-start. Note that support for the old Commodore PRG header (-cbm-prg option) has been removed. 4) The "string" assembler directive now works like the "text" directive and does NOT include a zero terminator. This is for compatibility with the XDF project syntax, and matches the operation of the original Frankenstein Assembler. 5) The RMB directive does actually generate empty space definitions, which get output in the binary file - this is unlike the original Frankenstein assembler which just marked them as label placeholders. This has required some adjustment to the paged RAM definitions in the XDF project, defining a relocatable section which resides physically outside the memory map. By default, it is not output to the hex image unless the "-write-space" option is used. 6) There is now a complete new Intel Hex file generation facility, accessed by using -Fhex on the command line. This produces clean output much like the old Francekstein Assembler (max 32 data items per line). If you wish for lower case, use the "-lower-case" option. And if you wish for the empty space generated by the RMB directive to be output, use the "-write-space" option. Note that this facility does support the extended linear address records to allow addressing up to 4GB, though this has not been extensively tested. 7) The 64180 mode must be specified on the command line (see batch files), and cannot be defined as a directive in the code (this may change). 8) This program is compatible with Windows XP, providing that the Visual C++ Redistributable package for Visual Studio 2013 is installed on the target system. Also, this project must be built with the correct Platform Toolset "Visual Studio 2013 - Windows XP (v120_xp)". Seethe following web pages: https://software.intel.com/en-us/articles/linking-applications-using-visual-studio-2012-to-run-on-windows-xp http://www.microsoft.com/en-us/download/details.aspx?id=40784 9) Note that since this project was started, version 17b of VASM has been released. it is not worth upgrading z80vasm to incorporate these changes, as they have no effect on Z80 projects. However, note that the alignment hanling has been extensively reworked for v17b, and this would impact the new Intel Hex module in particular, should it be included.