mirror of
https://github.com/fachat/xa65.git
synced 2024-09-08 16:54:32 +00:00
Implement CA65 "cheap local labels", ":=" label definitions, and various pseudo opcodes (.include, .import, .importzp, .zeropage, .proc (anonymous only), .endproc, .code, .org, .reloc)
314 lines
11 KiB
Plaintext
314 lines
11 KiB
Plaintext
xa-2.1.0
|
|
|
|
* Rewrite of command line option handling to better look like
|
|
usual (cc) options.
|
|
* Removed ^M from all files.
|
|
* Removed all external declarations to header files,
|
|
and made all static functions static.
|
|
| Now compiles almost without warning with 'gcc -W -Wall'.
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 31 Oct, 1996
|
|
|
|
xa-2.1.0a
|
|
|
|
* Introduced concept of code relocation. Now each label being set to
|
|
the program counter is a 'pointer', that gets an entry in a
|
|
relocation table. Simple arithmetic operations are allowed. The
|
|
relocation table is still just printed unsortedly.
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 31 Oct, 1996
|
|
|
|
xa-2.1.0b
|
|
|
|
* Produces some preliminary kind of relocatable file, including header
|
|
etc. Problems -- relocation table does as if file is assembled for
|
|
address 0. Need
|
|
a) a better way to set program counter.
|
|
b) pseudo opcodes for distinguishing segments.
|
|
c) a way to temporarily disable relocation.
|
|
d) a way to include extra headers and options into the file.
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 31 Oct, 1996
|
|
|
|
* Assembler now produces a relocatable file format, as described in
|
|
the file ``fileformat.txt''. Temporarily disabling relocation is with
|
|
the ``*=value'' directive, while switching back to relocation mode
|
|
goes with ``*='' (without value). New pseudo opcodes ``.text'',
|
|
``.data'', ``.bss'', ``.zero'' switch between the segments.
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 02 Nov, 1996
|
|
|
|
xa-2.1.0e
|
|
|
|
* There was a bug in the arithmetic routine that had set all pointer
|
|
to the text segment, if something was added.
|
|
* There also was a bug in the loader when actually using options.
|
|
* A new pseudo opcode was added -- ``.fopt''.
|
|
| Works like ``.byte'', but puts these bytes in a file option.
|
|
| The length in the file option is automagically set. ``.fopt''
|
|
| may appear anywhere in the file, but it should be at the
|
|
| beginning | (might be mandatory in a later version).
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 06 Nov, 1996
|
|
|
|
xa-2.1.0f
|
|
|
|
* Added a command line switch ``-M'' to ignore colons in a comment
|
|
after a semicolon.
|
|
* Without it, a colon separates complete mnemonics, including
|
|
the semicolon comment.
|
|
| Well, actually this switch is a ``MASM'' compatibility switch, and
|
|
will surely be expanded someday, when I get more info on MASM.
|
|
* Now ``*'' and ``='' can be separated for the definition
|
|
of the program counter and ``.byte'' is also accepted.
|
|
This makes it more MASM compatible. ".end" is ignored.
|
|
Still missing is ``.include''.
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 11 Nov, 1996
|
|
|
|
xa-2.1.0g
|
|
|
|
* Started working on ``official'' o65 fileformat.
|
|
If there are no undefined labels, and no relocated code
|
|
is embedded in absolute code, the thing should work.
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 21 Dec, 1996
|
|
|
|
xa-2.1.1
|
|
|
|
* ``.dsb'' now has an _optional_ parameter ``fillbyte''.
|
|
* Undefined references are now put into the relocation table
|
|
(i.e. handled correctly) if the ``-c'' option is given.
|
|
* The file format conforms to o65 version 1 file format.
|
|
* Embedding absolute in relocatable code and vice versa is buggy...
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 21 Dec, 1996
|
|
|
|
xa-2.1.1a
|
|
|
|
* Embedding absolute code in relocatable seems to work now.
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 21 Dec, 1996
|
|
|
|
xa-2.1.1e
|
|
|
|
* The option to embed relocatable code in absolute code has been
|
|
dropped. Therefore the command line options
|
|
``-A'' (make it romable), ``-b?'' (set segment start addresses),
|
|
and ``-G'' (omit exported globals from file) have been added.
|
|
* Internally, the whole thing has been made dynamic; except for the
|
|
preprocessor (and the storage between pass1 and pass2), everything
|
|
uses dynamically allocated tables. m_alloc, which had been
|
|
introduced long time ago because of the buggy malloc
|
|
on the Atari ST is gone now!
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 22 Dec, 1996
|
|
|
|
xa-2.1.1f
|
|
|
|
* Added the ``-a'' and ``-A'' options to file65, so that it can now
|
|
print the start addresses for following files in the ROM when making
|
|
romable code.
|
|
* Added shell (bash) script ``mkrom.sh'' that assembles a given list
|
|
of files and builds a ROMable file. The first two bytes are single
|
|
linked list pointers, and then comes the file.
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 02 Jan, 1997
|
|
|
|
xa-2.1.1g
|
|
|
|
* Added the file ``reloc65'', to relocate o65 files without
|
|
reassembling them.
|
|
* Fixed quite some bugs in xa (segment numbering in the globals list
|
|
and switched low/high byte relocation entry type in relocation
|
|
table. Now conforms to documentation, i.e. fileformat.txt)
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 03 Jan, 1997
|
|
|
|
xa-2.1.2
|
|
|
|
* Added ``ld65'', a simple linker for o65 files.
|
|
* Another bug in xa fixed now.
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 04 Jan, 1997
|
|
|
|
xa-2.1.3
|
|
|
|
* Allows to use ``.data'' etc in absolute mode, too. No relocation
|
|
entries are generated then. Segment start can be set with ``-b?''
|
|
command line options, though. Also the data segment is discarded
|
|
with this method! This allows to use the normal ``.data'' etc
|
|
syntax even when assembling a ROM (which is done in absolute mode.)
|
|
* Fixed a bug where ``.dsb'' in a data segment didn't fill with the
|
|
right value
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 25 Mar, 1997
|
|
|
|
xa-2.1.3e
|
|
|
|
* Added preprocessor continuation lines, and .block and .bend
|
|
pseudo-opcodes (They map to ``.('' and ``.)'' respectively.)
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 27 Jul, 1997
|
|
|
|
xa-2.1.4
|
|
|
|
* Do not leave output file around after an error -- this is
|
|
better for ``make''.
|
|
* Also it seems to have settled for a while, so I can release
|
|
a new version.
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 11 Sep, 1997
|
|
|
|
xa-2.1.4c
|
|
|
|
* Fixed a nasty bug that prevented correct relocation table
|
|
entries when a ``label2=label1'' contruct was used and
|
|
``label2'' was accessed.
|
|
* Added ``-I'' option.
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 30 Dec, 1997
|
|
|
|
xa-2.1.4d
|
|
|
|
* fixed align code. Now inserts NOP opcodes into text segment, and
|
|
sets file mode appropriately.
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 26 Jan, 1998
|
|
|
|
xa-2.1.4e
|
|
|
|
* Changed o65 fileformat and adopted it in xa.
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 26 Jan, 1998
|
|
|
|
xa-2.1.4g
|
|
|
|
* Fix handling of !zeropageaddress, that was broken (did not result
|
|
in absolute address, but gave error message.)
|
|
* Add cross reference list to labels if switched on on command line.
|
|
* Fix the filename when multiple files are given on the command line
|
|
(used to give the first filename for all errors in second pass.)
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 25 Nov, 1998
|
|
|
|
xa-2.1.4h
|
|
|
|
* In file65 added support for undefined labels and globals,
|
|
also for (some known) file options.
|
|
* Fix a preprocessor bug.
|
|
|
|
-- André Fachat <a.fachat@physik.tu-chemnitz.de> 12 Dec, 1998
|
|
|
|
xa-2.2.0-p1-1
|
|
|
|
* Update COPYING to the latest version (Y2K-fixed + new address to GNU)
|
|
* Lots of fixes to the Makefiles
|
|
* Cleaned up the structure of the TODO file
|
|
* Added manual-pages for file65, ld65, printcbm, reloc65, uncpk, and xa
|
|
* Commented out LIB-flags -lm, -lcurses and -ltermcap,
|
|
since they are all unused
|
|
* Added `--help' and `--version' to all binaries
|
|
* Removed `-h', `-?' and `-v' options where applicable
|
|
* Created a file containing the version-function; version.h
|
|
* Moved common macros to a separate file; xad.h
|
|
* Restructuring of printcbm to become more readable
|
|
* Added ifndef/define/endif traps to all header-files
|
|
* Fixed a few typos
|
|
* Renamed romadr to romaddr
|
|
* Renamed all functions matching *such* to *search*
|
|
* Fixed all warnings
|
|
* Cleaned up all header-files
|
|
* Reformatted xa.log
|
|
|
|
-- David Weinehall <tao@acc.umu.se> 20 Aug, 2002
|
|
|
|
xa-2.3.0
|
|
|
|
* Version number jump for all the unofficial xa's out there
|
|
* Fixed addressing bugs for @, ! and completed 65816 merge
|
|
Thanks to David for the report
|
|
* Moderate legibility overhaul to xat.c (will continue on this)
|
|
* More compiler warnings corrected
|
|
Thanks to David for the report
|
|
* man files completed
|
|
* Documentation updated
|
|
* Last line bug corrected (where last line not assembled if no newline)
|
|
Thanks to silverdr for the report
|
|
* ld65 is now ldo65 to avoid conflicts with cc65 package
|
|
* Post-defined labels work better, or at least somewhat (no longer attempts
|
|
to optimize in pass 2 and generate bad code). Can be forced with `
|
|
Thanks to silverdr for the report
|
|
* Makefile bugs multiplied
|
|
* @ now mostly obligatory for 24-bit addressing
|
|
|
|
-- Cameron Kaiser <ckaiser@floodgap.com> 2 Apr, 2006
|
|
|
|
xa-2.3.2
|
|
|
|
* Introduced switch to convert values in quotes to different character
|
|
sets. Currently supported are ASCII (default) and PETSCII
|
|
* Fixed some quote bugs
|
|
|
|
-- André Fachat <afachat@gmx.de> 23 Dec, 2006
|
|
|
|
Thomas Giesel's reports and suggestions, thank you:
|
|
* -M works on colons in comments and nowhere else, as documented
|
|
* macro function arguments are properly recursively evaluated
|
|
* cpp output now grokked for more complex pre-parsing, rather than
|
|
reinvent the wheel
|
|
Other things:
|
|
* .xl, .xs, .al, .as weren't documented, and now they are (always worked)
|
|
for 65816 mode
|
|
* ! for forward-defined labels calculated wrong instruction length, fixed
|
|
* xap.c cleaned up some, xat.c cleaned up some more
|
|
Legibility work is going to be a long-term project.
|
|
* -x is now deprecated
|
|
* Documentation updated
|
|
|
|
-- Cameron Kaiser <ckaiser@floodgap.com> 13 Jan, 2007
|
|
|
|
xa-2.3.3
|
|
|
|
* Compatibility update for Microsoft Visual Studio and mingw/MSYS (thanks
|
|
Fabian Nunez and Mikkel Holm Olsen).
|
|
|
|
-- Cameron Kaiser <ckaiser@floodgap.com> 15 May, 2007
|
|
|
|
xa-2.3.4
|
|
|
|
* -p to define alternate synonym for # for preprocessor to avoid cpp/xa
|
|
preprocessor clashes and messes.
|
|
* Direct linking into output stream of binary files (.bin).
|
|
* Minor overhaul of error system to facilitate future expansion.
|
|
* Documentation updated.
|
|
|
|
-- Cameron Kaiser <ckaiser@floodgap.com> 1 July, 2008
|
|
|
|
xa-2.3.5
|
|
|
|
Most of this was suggested by Martin Wendt.
|
|
* Fixed bug where .bin was affected by the current character set.
|
|
* Added PETSCREEN and HIGH character sets.
|
|
* Added .aasc.
|
|
* Some more legibility work.
|
|
* Documentation updated.
|
|
|
|
-- Cameron Kaiser <ckaiser@floodgap.com> 7 February, 2009
|
|
|
|
xa-2.x.x
|
|
|
|
* Add -E commandline option to not stop after 20 errors, but show all
|
|
of them
|
|
* Introduce -X compatibility set commandline option, to distinguish
|
|
between MASM and CA65 compatibility options
|
|
* Implement CA65 "cheap local labels", ":=" label definitions,
|
|
and various pseudo opcodes (.include, .import, .importzp,
|
|
.zeropage, .proc (anonymous only), .endproc, .code, .org, .reloc)
|
|
* some bugfixes around error/warning logs
|
|
* some more comments
|
|
* Stuff is mostly untested...
|
|
|
|
-- André Fachat <afachat@gmx.de> 25 June, 2011
|
|
|