1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457
|
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.3.6
* 'make test' for regression testing framework (requires Perl).
* Changed getline() to xa_getline() to avoid collision with glibc 2.10+
* Fixed compile problems with misc/.
* Fixed message offsets.
-- Cameron Kaiser <ckaiser@floodgap.com> 11 July 2014
xa-2.3.7
* Fixed buffer overflow and test failure with gcc 4.9 (thanks Adam Sampson).
* mvn and mvp now use the standard syntax (thanks Alessandro Gatti).
* Copyright message is no longer put in the error log to simplify testing.
* Makefile properly triggers a relink for testing or source changes.
* Spurious messages quelled.
* Documentation updated.
* Testsuite expanded.
-- Cameron Kaiser <ckaiser@floodgap.com> 29 December 2014
xa-2.3.8
* Fixed issue with colons in string literals being treated as separators
(thanks Simon Rowe).
* Testsuite expanded.
-- Cameron Kaiser <ckaiser@floodgap.com> 29 June 2017
xa-2.3.9
* Fixed issue on Windows and DOS systems with the .bin pseudo-op (thanks
Bago Zonde).
* Documentation updated.
* Testsuite expanded.
* For the thirty year anniversary of xa, we're changing the name to xxxa.
(Just kidding.)
-- Cameron Kaiser <ckaiser@floodgap.com> 31 January 2019
xa-2.3.10
* Three fixes, all from Andre:
- Don't crash if a useless segment is referenced outside of relocating
mode (thanks Laszlo Barath for the report).
- Don't substitute within strings, for better cpp compatibility (thanks
Glenn Holmer for the report). I added the -S option for backwards
compatibility for the old behaviour; it will be removed in 2.4 and later.
- Fix underflow issue if a variable is late-bound (with -L) when that
variable is used in computations with negative offsets.
* Deprecated options will be removed in 2.4 and everything is warned.
* Documentation updated.
* Testsuite expanded.
-- Cameron Kaiser <ckaiser@floodgap.com> 9 November 2019
xa-2.3.11
* Compilation fix for gcc 10 (thanks Dan Horak).
* Allow pointer arithmetic in relocating mode within the same segment, since
the result is segmentless (thanks Andre for the report).
* .dsb with negative quantities shouldn't work (thanks Andre for the report).
* Stop a divide-by-zero floating point exception (thanks Frederic Cambus).
* Testsuite expanded.
-- Cameron Kaiser <ckaiser@floodgap.com> 4 May 2020
xa-2.3.12
* Regression fix for address size validation in 65816 mode (thanks Sam
Falvo; we had a pending fix for this but I like his test case).
* Testsuite expanded.
-- Cameron Kaiser <ckaiser@floodgap.com> 26 November 2021
xa-2.3.13
* Fix // and /* */ in quoted strings. Incredible no one ever hit this
before (thanks ZornsLemma).
* Segfault fixes for file65, reloc65 and xa. Remember, kids, if you ever
run xa as root all kittens will die. Please save the kittens (thanks
Stephen Kitt).
* Just compare to null in the preprocessor (thanks Bas Wassink).
* Testsuite expanded.
-- Cameron Kaiser <ckaiser@floodgap.com> 25 March 2022
xa-2.3.14
* Fix a segfault when a recursive macro has a smaller arity than the
macro it references (thanks Emil Johansson for the report).
* Fix for recursive comments, which was a regression from 2.3.13 (note:
this may be reexamined for 2.4), and some improvements to the comment
parser to fix more edge cases. (Andre)
* Now you can just do 'make test TESTS=test,test,test' instead of running
./tests/harness with specific options. ('make test' by itself of course
still works fine to run the whole suite.)
* Testsuite expanded.
-- Cameron Kaiser <ckaiser@floodgap.com> 7 February 2023
xa-2.4.0
* Listing feature in plain text or HTML, along with .listbytes to control
how hex bytes get listed in the output.
* 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; also adds C option for
0x and 0 to specify hex or octal. As a result, -M is now deprecated,
and colons in comments may become the default in a future version.
* Implement CA65 "cheap local labels", ":=" label definitions,
and various pseudo-opcodes (.include, .import, .importzp,
.zeropage, .proc (anonymous only), .endproc, .code, .org, .reloc).
* -U option to allow all undefined labels in relocation mode; this
allows exporting them to an o65 file and link at a later time (or
specify one at a time with -L).
* Globals may also be specified manually with -g.
* #error allows preprocessor-level assertions.
* .assert allows assembler-level assertions.
* Better fix for segfault with smaller arity macro issue.
* Main Makefile fixes.
* Fixed parallel make in tests, incorporating a patch from Sergei
Trofimovich.
* Added a test case that failed in 2.3.14 from Tom Hargreaves.
* Some 2.3.x features still allowed with -XXA23, which is obviously
deprecated.
* The quote escape character is now the \ (backslash), except if -XXA23.
* Recursive /* */ comments are no longer allowed, except if -XXA23.
* XA_MAJOR and XA_MINOR predefined macros, except if -XXA23.
* Testsuite greatly expanded.
* The old loader/ testsuite and doc/ archive are now in attic/, which is
the repository for old unsupported components. It may be purged in a
future version.
* -M is now deprecated (use -XMASM), just in case you forgot.
* printcbm(1) is now deprecated (use VICE petcat, it does a lot more).
* Previously deprecated options (16-bit mvn/mvp argument, -S, -x) finally
removed. If you need this support, you must use 2.3.x.
-- Andr Fachat <afachat@gmx.de> and
-- Cameron Kaiser <ckaiser@floodgap.com>, 18 November, 2023
xa 2.4.1
* Allow colon-based unnamed labels to be used separately of CA65 mode
(such as with 65816) with -a. Implies -XMASM.
* Restore ^ syntax for generating control sequences (e.g., "^m^j" evaluates
as 0d 0a) with -k.
* Fix a bug using cheap local labels in expressions.
* Properly tag and match CPU types in o65 objects during relocation and
linking.
* Fix a bug with .align when aligning segments.
* Better validation of arguments to indexed opcodes.
* Testsuite expanded.
-- Andr Fachat <afachat@gmx.de> and
-- Cameron Kaiser <ckaiser@floodgap.com>, 5 March, 2024
|