Update to 0.91, provided by Dennis Lindroos in PR 44771.

----------------------------------------------------------------------
Section:   New in release 0.91
----------------------------------------------------------------------

Added anonymous labels (- + -- ++ --- +++ etc.). Every other assembler
    seems to support them, so I added them to ACME as well... :)
New POs: "!warn MESSAGE", "!error MESSAGE", "!serious MESSAGE"
New CLI option: "--maxdepth NUMBER" sets maximum recursion depth for
    macro calls and the "!source" pseudo opcode.
ACME now gives a warning when assembling JMP($xxff) on 6502/6510
    because that instruction is broken on those CPUs.
After giving the error "Target out of range", the error "Number out of
  range" is now suppressed.
Corrected code example in QuickRef.txt (why didn't anyone tell me? :))
Added additional example source code.


----------------------------------------------------------------------
Section:   New in release 0.90
----------------------------------------------------------------------

Arithmetic shift right now has some watchdog code and should work
    regardless of compiler.
Corrected some typos in error messages and docs.
New CLI option: "--cpu CPU_TYPE"
The output file format chosen with "--format FORMAT" is now used as
    default when "!to" is used without format keyword.
Again: Tidier code.


----------------------------------------------------------------------
Section:   New in release 0.89
----------------------------------------------------------------------

Support for more undocumented ("illegal") opcodes: anc, arr, asr, sbx,
    dop, top, jam. See Illegals.txt for more info.
Change in shift operators: Logical shift right (">>" or "LSR") has on
    most platforms actually been an arithmetic shift right all the
    time! Therefore, ">>" now *officially* performs an arithmetic
    shift right (can also be written as "ASR"), while ">>>" has been
    added to perform a logical shift right (can also be written as
    "LSR"). Note: This is about ACME's maths parser and has nothing to
    do with the 6502 mnemonics "asl" and "lsr".
Finally added a "-o" command line option to set the output file! See
    QuickRef.txt for info on the other new CLI options (--format,
    --labeldump, --maxerrors, --setpc, --initmem, --version).
Fixed bug: "!align" could be used while program counter undefined.
Fixed bug: Numbers before mnemonics are no longer skipped (or rather,
    implicit label definitions are no longer accepted if the label
    name starts with a digit).
Change: Much better algorithm to compute to-the-power-of (read: it's
    no longer braindead).
Some more internal tidying.


----------------------------------------------------------------------
Section:   New in release 0.88
----------------------------------------------------------------------

Fixed architecture-dependent bug introduced in release 0.87.
Fixed bug: Unknown !cpu keywords could cause crashes.
Fixed bug in !ct "filename" nesting.


----------------------------------------------------------------------
Section:   New in release 0.87
----------------------------------------------------------------------

Support for some undocumented ("illegal") opcodes: slo, rla, sre, rra,
    sax, lax, dcp, isc. To use these, choose the 6510 cpu.
Two error messages gone: "Sorry, feature not yet implemented." and
    "Chosen CPU does not support this command and/or addressing mode."
Explanation of new error message ("There's more than one character.")
    added to docs.


----------------------------------------------------------------------
Section:   New in release 0.86
----------------------------------------------------------------------

The "!convtab" pseudo opcode can now be given the file name of a
    conversion table. The file must hold exactly 256 bytes.
Improved docs a bit (more and better examples, more info on verbosity
    CLI switch).
If no "!to" pseudo opcode has been found, ACME will tell you so.
This commit is contained in:
wiz 2012-12-12 10:12:16 +00:00
parent 32f0186939
commit de21beee08
7 changed files with 48 additions and 78 deletions

View file

@ -1,4 +1,4 @@
ACME is a free crossassembler, released under the GNU General Public
License. The current version can produce code for the 6502, 65c02 and
65816 processors. (Support for some of the 6510's illegal opcodes is
planned.)
65816 processors. It also supports some of the undocumented ("illegal")
opcodes of the 6502.

View file

@ -1,40 +1,38 @@
# $NetBSD: Makefile,v 1.12 2008/05/26 02:13:17 joerg Exp $
# $NetBSD: Makefile,v 1.13 2012/12/12 10:12:16 wiz Exp $
#
DISTNAME= acme085_linux
PKGNAME= acme-0.85
PKGREVISION= 1
DISTNAME= acme091src
PKGNAME= acme-0.91
CATEGORIES= devel
MASTER_SITES= http://www.esw-heim.tu-clausthal.de/~marco/smorbrod/acme/current/
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${LIBDIST}
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
SITES.${LIBDIST}= http://www.esw-heim.tu-clausthal.de/~marco/smorbrod/acme/
MAINTAINER= dillo@NetBSD.org
HOMEPAGE= http://www.esw-heim.tu-clausthal.de/~marco/smorbrod/acme/acme.html
HOMEPAGE= http://www.esw-heim.tu-clausthal.de/~marco/smorbrod/acme
COMMENT= Cross assembler for 6502, 65c02, and 65816
PKG_DESTDIR_SUPPORT= destdir
LICENSE= gnu-gpl-v2
USE_TOOLS+= pax unzip
WRKSRC= ${WRKTOP}/sources
LIBDIST= lib002.zip
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
WRKTOP= ${WRKDIR}/acme085
LIBDIST= ACME_Lib2.zip
WRKSRC= ${WRKDIR}/acme091
BUILD_DIRS= src
ACME_LIB= ${PREFIX}/share/acme
MAKE_ENV+= ACME_LIB=${ACME_LIB:Q}
INSTALLATION_DIRS= bin
INSTALLATION_DIRS+= share/acme
INSTALLATION_DIRS+= share/doc/acme
post-extract:
cd ${WRKDIR} && unzip -qa ${_DISTDIR}/${LIBDIST}
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/acme ${DESTDIR}${PREFIX}/bin/acme
${INSTALL_DATA_DIR} ${DESTDIR}${PREFIX}/share/doc/acme
${INSTALL_DATA} ${WRKTOP}/docs/* ${DESTDIR}${PREFIX}/share/doc/acme
${INSTALL_DATA_DIR} ${DESTDIR}${ACME_LIB}
${INSTALL_PROGRAM} ${WRKSRC}/src/acme ${DESTDIR}${PREFIX}/bin/acme
${INSTALL_DATA} ${WRKSRC}/docs/* ${DESTDIR}${PREFIX}/share/doc/acme
cd ${WRKDIR}/ACME_Lib && pax -rw . ${DESTDIR}${ACME_LIB}
${CHOWN} -R ${ROOT_USER}:${ROOT_GROUP} ${DESTDIR}${ACME_LIB}
.include "../../mk/bsd.pkg.mk"

View file

@ -1,4 +1,4 @@
@comment $NetBSD: PLIST,v 1.2 2009/06/14 17:48:32 joerg Exp $
@comment $NetBSD: PLIST,v 1.3 2012/12/12 10:12:16 wiz Exp $
bin/acme
share/acme/6502/Help.txt
share/acme/6502/std.a
@ -30,6 +30,7 @@ share/doc/acme/Changes.txt
share/doc/acme/Errors.txt
share/doc/acme/Example.txt
share/doc/acme/Help.txt
share/doc/acme/Illegals.txt
share/doc/acme/Lib.txt
share/doc/acme/QuickRef.txt
share/doc/acme/Source.txt

View file

@ -1,11 +1,10 @@
$NetBSD: distinfo,v 1.3 2007/01/27 10:38:22 wiz Exp $
$NetBSD: distinfo,v 1.4 2012/12/12 10:12:16 wiz Exp $
SHA1 (acme085_linux.tar.gz) = 8eb698e839eecea631b1eb3404071c02d2915474
RMD160 (acme085_linux.tar.gz) = 7be4e179e18509c6fad6617433d8681e4107ee85
Size (acme085_linux.tar.gz) = 100590 bytes
SHA1 (lib002.zip) = 699f85edec7e28feb7f50abbf4fc2380757bb4f1
RMD160 (lib002.zip) = bf3c4d84ece0897a79bac0799027774cab0a0819
Size (lib002.zip) = 18197 bytes
SHA1 (patch-aa) = b0131874ccfd8f7b43e9d25b363b6a7fdda502e3
SHA1 (patch-ab) = ef30221626d8145cf8f8e67be3a0eb3e0495d006
SHA1 (patch-ac) = 666ef25503fac52de69c4867ed490b9fa6e7a7e5
SHA1 (acme091src.tar.gz) = 7104ea01a2ca2962294aaac4974e10c6486534a8
RMD160 (acme091src.tar.gz) = df26bbdeca2bc38b284b6cf967ef13431029a7f9
Size (acme091src.tar.gz) = 131953 bytes
SHA1 (ACME_Lib2.zip) = 699f85edec7e28feb7f50abbf4fc2380757bb4f1
RMD160 (ACME_Lib2.zip) = bf3c4d84ece0897a79bac0799027774cab0a0819
Size (ACME_Lib2.zip) = 18197 bytes
SHA1 (patch-aa) = bd08ee3c226d758080aa2c9f4094c668ab5c9105
SHA1 (patch-ab) = 4491111185dc1502a6424f5efbe352e181117df4

View file

@ -1,25 +1,21 @@
$NetBSD: patch-aa,v 1.1.1.1 2001/10/29 18:30:30 dillo Exp $
$NetBSD: patch-aa,v 1.2 2012/12/12 10:12:16 wiz Exp $
--- Makefile.orig Thu May 17 13:33:00 2001
+++ Makefile
@@ -1,7 +1,8 @@
-CFLAGS = -O2
+CFLAGS+= -DDEFAULT_ACME_LIB=\"${ACME_LIB}\"
+#CFLAGS = -O2
LIBS = -lm
--- src/Makefile.orig 2006-03-26 18:10:54.000000000 +0300
+++ src/Makefile 2011-03-17 10:54:04.000000000 +0200
@@ -1,12 +1,12 @@
-CFLAGS = -O3 -Wall
+CFLAGS+= -DDEFAULT_ACME_LIB=\"${ACME_LIB}/\"
#LIBS = -lm
-CC = gcc
-RM = rm
+#CC = gcc
+#RM = rm
SRC = acme.c alu.c alu.h block.c block.h config.h context.c\
context.h core.c core.h cpu.c cpu.h data.c data.h flowpo.c\
@@ -15,7 +16,7 @@
tree.c tree.h
#SRC =
PROGS = acme
-BINDIR = /usr/local/bin
+BINDIR = ${PREFIX}/bin
+BINDIR = $(PREFIX)/bin
USERBIN = $(HOME)/bin
all: $(PROGS)

View file

@ -1,13 +1,13 @@
$NetBSD: patch-ab,v 1.1.1.1 2001/10/29 18:30:30 dillo Exp $
$NetBSD: patch-ab,v 1.2 2012/12/12 10:12:16 wiz Exp $
--- platform/std.c.orig Thu Mar 22 15:17:38 2001
+++ platform/std.c
@@ -27,7 +27,7 @@
psLibPath = (char *) ALLOC_PROCESS(c + 1);
strcpy(psLibPath, pPathname);
} else {
- psLibPath = NULL;
+ psLibPath = DEFAULT_ACME_LIB "/";
}
}
--- src/_std.c.orig 2006-03-26 20:37:02.000000000 +0300
+++ src/_std.c 2011-03-17 10:27:51.000000000 +0200
@@ -12,7 +12,7 @@
// Variables
-char *AnyOS_lib_prefix = NULL; // header string of library tree
+char *AnyOS_lib_prefix = DEFAULT_ACME_LIB; // header string of library tree
// Functions

View file

@ -1,24 +0,0 @@
$NetBSD: patch-ac,v 1.1 2007/01/27 10:38:22 wiz Exp $
--- context.h.orig 2001-03-22 17:34:46.000000000 +0000
+++ context.h
@@ -11,6 +11,8 @@
#ifndef context_H
#define context_H
+#include "config.h"
+
/* Number of "global zone" */
#define ZONE_GLOBAL 0
@@ -42,8 +44,8 @@ struct context {
extern zone Context_CurrentZone;/* current zone value */
extern zone Zone_Max;/* Highest zone number yet */
extern int nContext;/* Number of saved contexts */
-extern context Context[];
-extern byte pTitle[][];
+extern context Context[MAXCONTEXTS];
+extern byte pTitle[MAXCONTEXTS][LSMAX + 1];
extern int Context_CodeTable;/* Current translation table and its values */
enum {
CODETABLE_RAW,