This commit is contained in:
Andre Fachat 2017-10-15 00:50:45 +02:00
parent 13b4cf53d9
commit 1006018d26
12 changed files with 46 additions and 8 deletions

View File

@ -316,3 +316,11 @@ xa-2.3.7
* 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

View File

@ -63,8 +63,8 @@ install: xa uncpk
#$(MKDIR) $(DOCDIR)/xa65
dist: clean
#cd .. ; tar cvf xa-2.3.7A.tar xa-2.3.7 ; gzip xa-2.3.7A.tar
cd .. ; tar cvf xa-2.3.7.tar xa-2.3.7 ; gzip xa-2.3.7.tar
#cd .. ; tar cvf xa-2.3.8A.tar xa-2.3.8 ; gzip xa-2.3.8A.tar
cd .. ; tar cvf xa-2.3.8.tar xa-2.3.8 ; gzip xa-2.3.8.tar
test: xa uncpk
cd tests && ./harness -make="$(MAKE)" -cc="$(CC)" -cflags="$(CFLAGS)"

View File

@ -3,7 +3,7 @@ derivatives). xa is a small, fast, portable two-pass assembler that compiles
under most ANSI C compilers. It is distributed under the GNU Public License
(see COPYING).
The current version is 2.3.7, a bug fix to the long-lived 2.3.0, itself with
The current version is 2.3.8, a bug fix to the long-lived 2.3.0, itself with
compatibility improvements and new man-based documentation. It also completed
the merge of the 65816 and 6502/R65C02 versions and thus the current xa can
generate code for all targets now.

View File

@ -1,4 +1,4 @@
.TH XA "1" "7 February 2009"
.TH XA "1" "29 June 2017"
.SH NAME
xa \- 6502/R65C02/65816 cross-assembler
@ -840,7 +840,7 @@ This manual page was written by David Weinehall <tao@acc.umu.se>,
Andre Fachat <fachat@web.de>
and Cameron Kaiser <ckaiser@floodgap.com>.
Original xa package (C)1989-1997 Andre Fachat. Additional changes
(C)1989-2015 Andre Fachat, Jolse Maginnis, David Weinehall,
(C)1989-2017 Andre Fachat, Jolse Maginnis, David Weinehall,
Cameron Kaiser. The official maintainer is Cameron Kaiser.
.SH WEBSITE

View File

@ -55,9 +55,9 @@
#define ANZWARN 13
#define programname "xa"
#define progversion "v2.3.7"
#define progversion "v2.3.8"
#define authors "Written by Andre Fachat, Jolse Maginnis, David Weinehall and Cameron Kaiser"
#define copyright "Copyright (C) 1989-2015 Andre Fachat, Jolse Maginnis, David Weinehall\nand Cameron Kaiser."
#define copyright "Copyright (C) 1989-2017 Andre Fachat, Jolse Maginnis, David Weinehall\nand Cameron Kaiser."
/* exported globals */
int ncmos, cmosfl, w65816, n65816;
@ -1054,8 +1054,10 @@ static int xa_getline(char *s)
do {
c=s[j]=l[i++];
if (c=='\"')
if (!(hkfl&2) && c=='\"')
hkfl^=1;
if (!comcom && !(hkfl&1) && c=='\'')
hkfl^=2;
if (c==';' && !hkfl)
comcom = 1;
if (c=='\0')

View File

@ -9,6 +9,8 @@ unless 'make test' fails. If you do, use harness:
If -tests is omitted, all tests are run.
Don't run the makefiles directly, if they exist; they may not work properly.
If a Makefile is not present, then the test harness assembles "test.s" and
compares it with "ok".
adrm/ Addressing mode test (especially the optimizer and quantity
prefixes)
@ -32,6 +34,8 @@ dos51/ Regression test, label scoping, "real world code"
cpktest/ Regression test, label listing, "real world code"
op816/ Regression test for '816 opcodes (thanks Alessandro Gatti)
branch/ Branch range test
masmcom/ Another test for -M that generates totally valid code
quotch/ Test quoting problematic characters (thanks Simon Rowe)
Cameron Kaiser, André Fachat

10
xa/tests/masmcom/Makefile Normal file
View File

@ -0,0 +1,10 @@
default:
# compile with masm mode on.
../../xa -M -o test.o test.s
../hextool -cmp=okmasm < test.o
# compile without
../../xa -o test.o test.s
../hextool -cmp=oknomasm < test.o
clean:
rm -f *.o

BIN
xa/tests/masmcom/okmasm Normal file

Binary file not shown.

BIN
xa/tests/masmcom/oknomasm Normal file

Binary file not shown.

3
xa/tests/masmcom/test.s Normal file
View File

@ -0,0 +1,3 @@
/* when assembled with/without -M, we get two different objects */
lda #00 ; and this: lda #01 ; is why : lda #":"

BIN
xa/tests/quotch/ok Normal file

Binary file not shown.

11
xa/tests/quotch/test.s Normal file
View File

@ -0,0 +1,11 @@
.word $9000
* = $9000
; test specific single characters can be quoted
LDA #';'
CMP #':'
AND #'"'
SBC #";"
ORA #":"
EOR #"'"