diff --git a/Makefile b/Makefile index 98d38ea..57fc20a 100644 --- a/Makefile +++ b/Makefile @@ -61,13 +61,13 @@ compare: asm: test1: - -qasm src/main.s + -qasm testdata/3001-lroathe.S test2: - -qasm src/testfile.s + -qasm testdata/3002-testfile.S test3: - -qasm src/var.s + -qasm testdata/3003-var.S diff --git a/asm.cpp b/asm.cpp index b57ae41..19ccbaa 100644 --- a/asm.cpp +++ b/asm.cpp @@ -1342,6 +1342,11 @@ int CLASS::callOpCode(std::string op, MerlinLine &line) //line.expr_value = (line.expr_value >> 16) & 0xFFFF; break; case '|': + if (syntax==SYNTAX_MERLIN) + { + line.setError(errBadLabel); + line.expr_value=0; + } break; } } diff --git a/merlintests.sh b/merlintests.sh index 6f39cd2..f645689 100755 --- a/merlintests.sh +++ b/merlintests.sh @@ -18,8 +18,8 @@ for S in $SRC ; do BASE=${S/.S/} BASE=${BASE/.s/} cd ./testdata - #merlin32 $S 2>/dev/null >/dev/null - merlin32 . $S 2>/dev/null + merlin32 $S 2>/dev/null >/dev/null + #merlin32 . $S 2>/dev/null R=?$ cd - >/dev/null diff --git a/testdata/3000-addresses.S b/testdata/3000-addresses.S new file mode 100644 index 0000000..5b29154 --- /dev/null +++ b/testdata/3000-addresses.S @@ -0,0 +1,28 @@ + lst + xc + xc + org $018200 + +bank02 equ $020000 +bank03 equ $030000 +dp equ $A5 +long equ $020304 + + mx %00 +start nop + pea ^start + pea start + mvn bank02,bank03 + mvp bank03,bank02 + lda dp + lda dp + lda ^dp + lda |dp + lda #long + lda #long + lda #^long + lda #|long + + lst off diff --git a/src/main.s b/testdata/3001-lroathe.S similarity index 100% rename from src/main.s rename to testdata/3001-lroathe.S diff --git a/src/testfile.s b/testdata/3002-testfile.S similarity index 100% rename from src/testfile.s rename to testdata/3002-testfile.S diff --git a/src/var.s b/testdata/3003-var.S similarity index 100% rename from src/var.s rename to testdata/3003-var.S