File: ChangeLog

package info (click to toggle)
xa 2.4.1-0.1
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,356 kB
  • sloc: ansic: 8,585; asm: 845; makefile: 755; perl: 116; sh: 53
file content (457 lines) | stat: -rw-r--r-- 17,069 bytes parent folder | download
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