aboutsummaryrefslogtreecommitdiff
path: root/development/acme
diff options
context:
space:
mode:
Diffstat (limited to 'development/acme')
-rw-r--r--development/acme/README13
-rw-r--r--development/acme/acme.1187
-rw-r--r--development/acme/acme.SlackBuild109
-rw-r--r--development/acme/acme.info10
-rw-r--r--development/acme/acme.rst148
-rw-r--r--development/acme/default_lib_path.diff11
-rw-r--r--development/acme/slack-desc19
-rw-r--r--development/acme/svn2tarxz.sh29
-rw-r--r--development/acme/toacme.160
-rw-r--r--development/acme/toacme.rst49
10 files changed, 635 insertions, 0 deletions
diff --git a/development/acme/README b/development/acme/README
new file mode 100644
index 0000000000..ee61fb68c4
--- /dev/null
+++ b/development/acme/README
@@ -0,0 +1,13 @@
+acme (6502 family cross assembler)
+
+ACME is a free cross assembler released under the GNU GPL. It can
+produce code for the following processors: 6502, 6510 (including
+illegal opcodes), 65c02 and 65816. ACME supports the standard
+assembler stuff like global/local/anonymous labels, offset assembly,
+conditional assembly and looping assembly. It can include other source
+files as well as binaries while assembling. Calculations can be done
+in integer or float mode. Oh, and it is fast.
+
+Note: If you're looking for a Plan9-flavored text editor called acme,
+you're in the wrong place. Search for acme2k. If you're looking for an
+ACME protocol client for use with LetsEncrypt, search for acme.sh.
diff --git a/development/acme/acme.1 b/development/acme/acme.1
new file mode 100644
index 0000000000..8a8bb09bb5
--- /dev/null
+++ b/development/acme/acme.1
@@ -0,0 +1,187 @@
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "ACME" 1 "2025-02-18" "0.97+20250126_r434" "SlackBuilds.org"
+.SH NAME
+acme \- 6502/65c02/65816 cross assembler
+.\" RST source for acme(1) man page. Convert with:
+.
+.\" rst2man.py acme.rst > acme.1
+.
+.SH SYNOPSIS
+.sp
+acme [\fI\-options\fP] \fIFILE\fP ...
+.SH DESCRIPTION
+.sp
+\fBacme\fP is a cross assembler for the 65xx range of processors. It knows
+about the standard 6502, the 65c02 and the 65816. It also supports
+the undocumented ("illegal") opcodes of the NMOS versions of the 6502,
+like the 6510 variant that is used in the Commodore C=64, and it also
+supports extensions to the intruction set done by other parties.
+.sp
+The full documentation for \fBacme\fP is installed in:
+.INDENT 0.0
+.INDENT 3.5
+/usr/doc/acme\-0.97+20250126_r434
+.UNINDENT
+.UNINDENT
+.sp
+Start with \fBHelp.txt\fP\&. This man page just lists the command\-line options.
+.sp
+Note: the \fBACME\fP environment variable is not required in this build
+of \fBacme\fP\&. If set, it will be respected, but if it\(aqs not set, the
+assembler will look for include files in \fB/usr/share/acme/ACME_Lib\fP\&.
+.SH OPTIONS
+.INDENT 0.0
+.TP
+.B \-h\fP,\fB \-\-help
+show this help and exit
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-f,\-\-format \fIFORMAT\fP
+set output file format
+.TP
+.B \-o,\-\-outfile \fIFILE\fP
+set output file name
+.TP
+.B \-r,\-\-report \fIFILE\fP
+set report file name
+.TP
+.B \-l,\-\-symbollist \fIFILE\fP
+set symbol list file name
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-labeldump
+old name for \-\-symbollist
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-vicelabels \fIFILE\fP
+set file name for label dump in VICE format
+.TP
+.B \-\-setpc \fIVALUE\fP
+set program counter
+.TP
+.B \-\-from\-to \fIVALUE\fP \fIVALUE\fP
+set start and end+1 of output file
+.TP
+.B \-\-cpu \fICPU\fP
+set target processor
+.TP
+.B \-\-initmem \fIVALUE\fP
+define \(aqempty\(aq memory
+.TP
+.B \-\-maxerrors \fINUMBER\fP
+set number of errors before exiting
+.TP
+.B \-\-maxdepth \fINUMBER\fP
+set recursion depth for macro calls and !src
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-ignore\-zeroes
+do not determine number size by leading zeroes
+.TP
+.B \-\-strict\-segments
+turn segment overlap warnings into errors
+.TP
+.B \-\-strict
+treat all warnings like errors
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \fB\-v0\fP \fIthrough\fP \fB\-v9\fP
+set verbosity level. no space allowed between \fB\-v\fP and the number.
+.TP
+.B \-D \fISYMBOL=VALUE\fP
+define global symbol
+.TP
+.B \-I \fIPATH/TO/DIR\fP
+add search path for input files
+.UNINDENT
+.INDENT 0.0
+.TP
+.BI \-W\fB no\-label\-indent
+suppress warnings about indented labels
+.TP
+.BI \-W\fB no\-old\-for
+(old, use "\-\-dialect 0.94.8" instead)
+.TP
+.BI \-W\fB no\-bin\-len
+suppress warnings about lengths of binary literals
+.TP
+.BI \-W\fB type\-mismatch
+enable type checking (warn about type mismatch)
+.TP
+.B \-\-use\-stdout
+fix for \(aqRelaunch64\(aq IDE (see docs)
+.TP
+.B \-\-msvc
+output errors in MS VS format
+.TP
+.B \-\-color
+use ANSI color codes for error output
+.TP
+.B \-\-fullstop
+use \(aq.\(aq as pseudo opcode prefix
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-dialect \fIVERSION\fP
+behave like different version
+.TP
+.B \-\-debuglevel \fIVALUE\fP
+drop all higher\-level debug messages
+.UNINDENT
+.INDENT 0.0
+.TP
+.B \-\-test
+enable experimental features
+.TP
+.B \-V\fP,\fB \-\-version
+show version and exit
+.UNINDENT
+.SH COPYRIGHT
+.sp
+See the file /usr/doc/acme\-0.97+20250126_r434/COPYING for license information.
+.SH AUTHORS
+.sp
+acme was written by Marco Baye.
+.sp
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+.SH SEE ALSO
+.sp
+\fBtoacme\fP(1)
+.sp
+The acme homepage: \fI\%https://sourceforge.net/projects/acme\-crossass/\fP
+.\" Generated by docutils manpage writer.
+.
diff --git a/development/acme/acme.SlackBuild b/development/acme/acme.SlackBuild
new file mode 100644
index 0000000000..b70ef0cb67
--- /dev/null
+++ b/development/acme/acme.SlackBuild
@@ -0,0 +1,109 @@
+#!/bin/bash
+
+# Slackware build script for acme
+
+# Written by B. Watson (urchlay@slackware.uk)
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+# Note: the latest release is from 2020. There's no source tarball for
+# it (only binaries for Win and Mac). I had to create my own source
+# tarball from the SVN repo, so I went ahead and packaged the latest
+# SVN.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=acme
+VERSION=${VERSION:-0.97+20250126_r434}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find -L . -perm /111 -a \! -perm 755 -a -exec chmod -h 755 {} + -o \
+ \! -perm /111 -a \! -perm 644 -a -exec chmod -h 644 {} +
+
+# fix warnings that probably actually cause problems on 64-bit.
+[ -n "$LIBDIRSUFFIX" ] && \
+ sed -i '/^typedef.*intval_t/s,\<int\>,long,' src/config.h
+
+# look in /usr/share/acme for the asm includes, if ACME not set
+# in the environment.
+patch -p1 < $CWD/default_lib_path.diff
+
+make -C src CFLAGS="$SLKCFLAGS"
+make -C contrib/toacme/src CFLAGS="$SLKCFLAGS"
+mkdir -p $PKG/usr/bin
+install -s -m0755 contrib/toacme/src/toacme src/$PRGNAM $PKG/usr/bin
+
+# this says it converts "masm" syntax to acme, but I don't know what "masm"
+# it means (definitely *not* Microsoft's MASM, which doesn't support 6502).
+install -m0755 contrib/toacme/masm2acme.py $PKG/usr/bin
+
+# man pages written by SlackBuild author (mostly copy/paste from docs).
+mkdir -p $PKG/usr/man/man1
+for i in acme toacme; do
+ gzip -9c < $CWD/$i.1 > $PKG/usr/man/man1/$i.1.gz
+done
+
+# asm includes (we patched it to look for them here, above).
+SHARE=$PKG/usr/share/acme
+mkdir -p $SHARE
+cp -a ACME_Lib $SHARE
+
+# syntax support for a couple of editors. untested.
+cp -a contrib/{joe_syntax,ultraedit_wordfile} $SHARE
+
+# this doesn't need to be in the package.
+rm -f contrib/toacme/docs/INSTALL
+
+PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
+mkdir -p $PKGDOC/toacme
+cp -a docs/* examples $PKGDOC
+cp -a contrib/toacme/docs/* $PKGDOC/toacme
+cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/development/acme/acme.info b/development/acme/acme.info
new file mode 100644
index 0000000000..935f94351b
--- /dev/null
+++ b/development/acme/acme.info
@@ -0,0 +1,10 @@
+PRGNAM="acme"
+VERSION="0.97+20250126_r434"
+HOMEPAGE="https://sourceforge.net/projects/acme-crossass/"
+DOWNLOAD="https://slackware.uk/~urchlay/src/acme-0.97+20250126_r434.tar.xz"
+MD5SUM="8b23f211b6907003e5390a1763a17143"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="B. Watson"
+EMAIL="urchlay@slackware.uk"
diff --git a/development/acme/acme.rst b/development/acme/acme.rst
new file mode 100644
index 0000000000..42dd7ec13e
--- /dev/null
+++ b/development/acme/acme.rst
@@ -0,0 +1,148 @@
+.. RST source for acme(1) man page. Convert with:
+.. rst2man.py acme.rst > acme.1
+
+.. |version| replace:: 0.97+20250126_r434
+.. |date| date::
+
+====
+acme
+====
+
+--------------------------------
+6502/65c02/65816 cross assembler
+--------------------------------
+
+:Manual section: 1
+:Manual group: SlackBuilds.org
+:Date: |date|
+:Version: |version|
+
+SYNOPSIS
+========
+
+acme [*-options*] *FILE* ...
+
+DESCRIPTION
+===========
+
+**acme** is a cross assembler for the 65xx range of processors. It knows
+about the standard 6502, the 65c02 and the 65816. It also supports
+the undocumented ("illegal") opcodes of the NMOS versions of the 6502,
+like the 6510 variant that is used in the Commodore C=64, and it also
+supports extensions to the intruction set done by other parties.
+
+The full documentation for **acme** is installed in:
+
+ /usr/doc/acme-|version|
+
+Start with **Help.txt**. This man page just lists the command-line options.
+
+Note: the **ACME** environment variable is not required in this build
+of **acme**. If set, it will be respected, but if it's not set, the
+assembler will look for include files in **/usr/share/acme/ACME_Lib**\.
+
+OPTIONS
+=======
+
+-h, --help
+ show this help and exit
+
+-f,--format *FORMAT*
+ set output file format
+
+-o,--outfile *FILE*
+ set output file name
+
+-r,--report *FILE*
+ set report file name
+
+-l,--symbollist *FILE*
+ set symbol list file name
+
+--labeldump
+ old name for --symbollist
+
+--vicelabels *FILE*
+ set file name for label dump in VICE format
+
+--setpc *VALUE*
+ set program counter
+
+--from-to *VALUE* *VALUE*
+ set start and end+1 of output file
+
+--cpu *CPU*
+ set target processor
+
+--initmem *VALUE*
+ define 'empty' memory
+
+--maxerrors *NUMBER*
+ set number of errors before exiting
+
+--maxdepth *NUMBER*
+ set recursion depth for macro calls and !src
+
+--ignore-zeroes
+ do not determine number size by leading zeroes
+
+--strict-segments turn segment overlap warnings into errors
+
+--strict treat all warnings like errors
+
+**-v0** *through* **-v9**
+ set verbosity level. no space allowed between **-v** and the number.
+
+-D *SYMBOL=VALUE*
+ define global symbol
+
+-I *PATH/TO/DIR*
+ add search path for input files
+
+-Wno-label-indent suppress warnings about indented labels
+
+-Wno-old-for (old, use "--dialect 0.94.8" instead)
+
+-Wno-bin-len suppress warnings about lengths of binary literals
+
+-Wtype-mismatch enable type checking (warn about type mismatch)
+
+--use-stdout fix for 'Relaunch64' IDE (see docs)
+
+--msvc output errors in MS VS format
+
+--color use ANSI color codes for error output
+
+--fullstop use '.' as pseudo opcode prefix
+
+--dialect *VERSION*
+ behave like different version
+
+--debuglevel *VALUE*
+ drop all higher-level debug messages
+
+--test
+ enable experimental features
+
+-V, --version
+ show version and exit
+
+COPYRIGHT
+=========
+
+See the file /usr/doc/acme-|version|/COPYING for license information.
+
+AUTHORS
+=======
+
+acme was written by Marco Baye.
+
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+
+SEE ALSO
+========
+
+**toacme**\(1)
+
+The acme homepage: https://sourceforge.net/projects/acme-crossass/
diff --git a/development/acme/default_lib_path.diff b/development/acme/default_lib_path.diff
new file mode 100644
index 0000000000..0224545076
--- /dev/null
+++ b/development/acme/default_lib_path.diff
@@ -0,0 +1,11 @@
+diff -Naur acme-20250126_r434/src/platform.c acme-20250126_r434.patched/src/platform.c
+--- acme-20250126_r434/src/platform.c 2025-02-17 18:03:46.000000000 -0500
++++ acme-20250126_r434.patched/src/platform.c 2025-02-17 18:26:16.166315740 -0500
+@@ -45,6 +45,7 @@
+
+ // Find out the path of ACME's library
+ env_var = getenv("ACME");
++ if(!env_var) env_var = "/usr/share/acme/ACME_Lib";
+ // if environment variable was found, make a copy
+ if (env_var) {
+ dynabuf_clear(GlobalDynaBuf);
diff --git a/development/acme/slack-desc b/development/acme/slack-desc
new file mode 100644
index 0000000000..bd21b0ce00
--- /dev/null
+++ b/development/acme/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+acme: acme (6502 family cross assembler)
+acme:
+acme: ACME is a free cross assembler released under the GNU GPL. It can
+acme: produce code for the following processors: 6502, 6510 (including
+acme: illegal opcodes), 65c02 and 65816. ACME supports the standard
+acme: assembler stuff like global/local/anonymous labels, offset assembly,
+acme: conditional assembly and looping assembly. It can include other source
+acme: files as well as binaries while assembling. Calculations can be done
+acme: in integer or float mode. Oh, and it is fast.
+acme:
+acme:
diff --git a/development/acme/svn2tarxz.sh b/development/acme/svn2tarxz.sh
new file mode 100644
index 0000000000..acd4f08893
--- /dev/null
+++ b/development/acme/svn2tarxz.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+# create a source tarball from upstream's SVN repo.
+# this would be easier, with git.
+
+PRGNAM=acme
+URL=https://svn.code.sf.net/p/acme-crossass/code-0/trunk
+
+rm -rf $PRGNAM.svn
+svn co $URL $PRGNAM.svn
+
+cd $PRGNAM.svn
+
+svn log -l 1 | grep '^r[0-9]' > logtmp
+
+RELEASE="$( grep '^ *#define *RELEASE' src/version.h | cut -d'"' -f2 )"
+DATE=$( grep '^r[0-9]' logtmp | cut -d'|' -f3 | cut -d' ' -f2 | sed 's,-,,g' )
+REV=$( cut -d' ' -f1 logtmp )
+VERSION="$RELEASE+${DATE}_$REV"
+DIR=$PRGNAM-$VERSION
+
+rm -rf .svn logtmp
+
+cd -
+rm -rf $DIR $DIR.tar.xz
+mv $PRGNAM.svn $DIR
+tar cvfJ $DIR.tar.xz $DIR
+echo
+md5sum $DIR.tar.xz
diff --git a/development/acme/toacme.1 b/development/acme/toacme.1
new file mode 100644
index 0000000000..118bf3d46b
--- /dev/null
+++ b/development/acme/toacme.1
@@ -0,0 +1,60 @@
+.\" Man page generated from reStructuredText.
+.
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.TH "ACME" "" "" ""
+.SH NAME
+acme \- converts other assemblers' source code to ACME format
+.\" RST source for toacme(1) man page. Convert with:
+.
+.\" rst2man.py toacme.rst > toacme.1
+.
+.SH SYNOPSIS
+.sp
+toacme \fIformat\fP \fIinput\-file\fP \fIoutput\-file\fP
+.SH DESCRIPTION
+.sp
+\fBtoacme\fP converts 6502 assembly source in various formats (mostly
+Commodore 64/128) to \fBacme\fP format. Run \fBtoacme\fP with no arguments
+to see the list of supported formats.
+.SH COPYRIGHT
+.sp
+See the file /usr/doc/acme\-0.97+20250126_r434/COPYING for license information.
+.SH AUTHORS
+.sp
+toacme was written by Marco Baye.
+.sp
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+.SH SEE ALSO
+.sp
+\fBacme\fP(1)
+.sp
+The acme homepage: \fI\%https://sourceforge.net/projects/acme\-crossass/\fP
+.\" Generated by docutils manpage writer.
+.
diff --git a/development/acme/toacme.rst b/development/acme/toacme.rst
new file mode 100644
index 0000000000..de90558e02
--- /dev/null
+++ b/development/acme/toacme.rst
@@ -0,0 +1,49 @@
+.. RST source for toacme(1) man page. Convert with:
+.. rst2man.py toacme.rst > toacme.1
+
+.. |version| replace:: 0.97+20250126_r434
+.. |date| date::
+
+====
+acme
+====
+
+-----------------------------------------------------
+converts other assemblers' source code to ACME format
+-----------------------------------------------------
+
+SYNOPSIS
+========
+
+toacme *format* *input-file* *output-file*
+
+DESCRIPTION
+===========
+
+**toacme** converts 6502 assembly source in various formats (mostly
+Commodore 64/128) to **acme** format. Run **toacme** with no arguments
+to see the list of supported formats.
+
+The full documentation for **toacme** is installed in:
+
+ /usr/doc/acme-|version|/toacme
+
+COPYRIGHT
+=========
+
+See the file /usr/doc/acme-|version|/toacme/COPYING for license information.
+
+AUTHORS
+=======
+
+toacme was written by Marco Baye.
+
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+
+SEE ALSO
+========
+
+**acme**\(1)
+
+The acme homepage: https://sourceforge.net/projects/acme-crossass/