summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
author B. Watson <urchlay@slackware.uk>2022-12-28 17:38:21 +0000
committer Willy Sudiarto Raharjo <willysr@slackbuilds.org>2022-12-31 09:14:40 +0700
commit1f4cc25436f81d00a8d4451912902e11ed5e5961 (patch)
treef120668277e79c6ee2a8c6ffadba041c20c7a917 /audio
parentaa429a232eddb1c8f36630fb66a9ae173c3791ea (diff)
downloadslackbuilds-1f4cc25436f81d00a8d4451912902e11ed5e5961.tar.gz
slackbuilds-1f4cc25436f81d00a8d4451912902e11ed5e5961.tar.xz
audio/asap: Added (Atari 8-bit chiptune formats player/converter)
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'audio')
-rw-r--r--audio/asap/README32
-rw-r--r--audio/asap/asap-mplayer49
-rw-r--r--audio/asap/asap.SlackBuild222
-rw-r--r--audio/asap/asap.info14
-rw-r--r--audio/asap/doinst.sh10
-rw-r--r--audio/asap/douninst.sh10
-rw-r--r--audio/asap/man/asap-mplayer.180
-rw-r--r--audio/asap/man/asap-mplayer.rst69
-rw-r--r--audio/asap/man/asap-sdl.186
-rw-r--r--audio/asap/man/asap-sdl.rst75
-rw-r--r--audio/asap/man/asapconv.1147
-rw-r--r--audio/asap/man/asapconv.rst137
-rw-r--r--audio/asap/man/sap2ntsc.179
-rw-r--r--audio/asap/man/sap2ntsc.rst68
-rw-r--r--audio/asap/man/sap2txt.1136
-rw-r--r--audio/asap/man/sap2txt.rst103
-rw-r--r--audio/asap/mkman.sh6
-rw-r--r--audio/asap/slack-desc19
18 files changed, 1342 insertions, 0 deletions
diff --git a/audio/asap/README b/audio/asap/README
new file mode 100644
index 0000000000..9a21fba9ab
--- /dev/null
+++ b/audio/asap/README
@@ -0,0 +1,32 @@
+asap (player/converter for Atari 8-bit chiptune formats)
+
+ASAP is a player of Atari 8-bit chiptunes for modern computers
+and mobile devices. It emulates the POKEY sound chip and the 6502
+processor.
+
+ASAP supports the following file formats: SAP, CMC, CM3, CMR, CMS,
+DMC, DLT, FC, MPT, MPD, RMT, TMC/TM8, TM2, STIL. It can convert to
+.wav, raw audio samples, or Atari executables (.xex). It can also
+convert other chiptune file formats to SAP.
+
+The package includes:
+- Plugins for the MOC and XMMS 1.x audio players.
+- Optionally, plugins for the XMMS 2.x and VLC players (see below).
+- Example chiptune files (in /usr/doc/asap-*/examples).
+- libasap.a and asap.h, the ASAP library and header.
+- asapconv, the standalone converter.
+- asap-sdl, a simple standalone CLI player.
+- asap-mplayer, a script which plays SAP files via mplayer.
+- sap2ntsc, converts PAL SAP files to NTSC timing.
+- sap2txt, converts SAP file headers to/from a text dump format.
+- chksap.pl, shows info on and checks for errors in SAP files.
+- Man pages for asapconv, asap-sdl, sap2ntsc, sap2txt, and chksap.pl.
+
+*Not* included are the asapscan tool, nor the bindings for Java, C#,
+JavaScript, OpenCL, Python, or Swift.
+
+Optional dependencies: xmms2, vlc. If these are installed, the asap
+package will include plugins for them.
+
+These is a large archive of Atari 8-bit chiptunes available at:
+https://asma.atari.org/
diff --git a/audio/asap/asap-mplayer b/audio/asap/asap-mplayer
new file mode 100644
index 0000000000..66421d6c44
--- /dev/null
+++ b/audio/asap/asap-mplayer
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+# 20221224 bkw: wrapper script for asapconv, part of SBo asap build.
+
+# Standalone player for SAP/etc files. asap's standalone player
+# (asap-sdl) works, but mplayer supports pause and seeking, which
+# makes it a lot nicer to use.
+# I wrote this for my own use. Might as well include it in the SBo
+# package, in case someone else wants it.
+
+SELF="$( basename $0 )"
+
+if [ "$#" = 0 -o "$1" = "--help" ]; then
+ cat <<EOF
+$SELF: play Atari chiptunes via mplayer.
+
+Usage: $SELF [asapconv-options] filename
+
+"filename" must be a file supported by asapconv; usually these are
+*.sap files, but other formats are supported. Run "asapconv --help"
+to see the list of supported file formats.
+
+Any options given will be passed as-is to asapconv. This can be used
+e.g. to select a subsong via "-s 2" or such.
+
+$SELF is part of the SlackBuilds.org asap package, and is licensed
+under the WTFPL.
+EOF
+
+ exit 0
+fi
+
+# asapconv can write to stdout, but mplayer can't seek when it's
+# reading stdin, so use a file. The name has to end in .wav because
+# asapconv insists on it. Tried using a FIFO, but in that case mplayer
+# can't seek backwards. The wav file isn't all that big by modern
+# standards (16MB for a 3-minute song), so it doesn't matter much.
+
+# mktemp(3) says the -u option is "unsafe", so don't run this as root.
+WAV="$( mktemp -u -t $SELF.XXXXXXXXXX.wav )"
+
+asapconv -o "$WAV" "$@" || exit $?
+
+# don't know for sure asapconv will *always* exit non-zero on failure,
+# so check for the file's existence.
+if [ -f "$WAV" ]; then
+ mplayer "$WAV"
+ rm -f "$WAV"
+fi
diff --git a/audio/asap/asap.SlackBuild b/audio/asap/asap.SlackBuild
new file mode 100644
index 0000000000..d5726d14a8
--- /dev/null
+++ b/audio/asap/asap.SlackBuild
@@ -0,0 +1,222 @@
+#!/bin/bash
+
+# Slackware build script for asap
+
+# Written by B. Watson (urchlay@slackware.uk)
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+# Notes:
+
+# This SlackBuild turned out to be a lot more elaborate and in-depth
+# than I expected...
+
+# Do not build asapscan or the java/python/etc stuff: they require
+# "cito", because they're written in Ć (not C, C-with-acute-accent,
+# *.ci source files) and there's no SBo build for it... and I don't
+# think it's worth the trouble of creating one. What I probably
+# will do someday is create a cito SlackBuild, then use it to
+# build an asap-extras package that uses the same source as this,
+# including only the stuff that needs cito.
+
+# Slackware 15.0 has a binary called "asapcat", which is part of
+# akonadi. It's utterly unrelated to this asap build!
+
+# Any time vlc or xmms2 updates, this build has to be tested against
+# the new version. Currently it's known to work with:
+# xmms2-20170827_dedc33d
+# vlc-3.0.17.3
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=asap
+VERSION=${VERSION:-5.2.0}
+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.gz
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
+ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
+
+LIBDIR=/usr/lib$LIBDIRSUFFIX
+PKGLIBDIR=$PKG/$LIBDIR
+PKGBIN=$PKG/usr/bin
+PKGMAN1=$PKG/usr/man/man1
+
+# These functions help me follow the DRY principle.
+runmake() {
+ make CFLAGS="$SLKCFLAGS" V=1 "$@"
+}
+
+installbin() {
+ mkdir -p "$2"
+ install -s -m0755 -oroot -groot "$1" "$2"
+}
+
+installfile() {
+ mkdir -p "$2"
+ install -m0644 -oroot -groot "$1" "$2"
+}
+
+installscript() {
+ mkdir -p "$2"
+ install -m0755 -oroot -groot "$1" "$2"
+}
+
+# I got carried away and wrote man pages for everything...
+# Note to self: don't forget to "sh mkman.sh" after editing
+# any of the man/*.rst files.
+mkdir -p $PKGMAN1
+for i in $CWD/man/*.1; do
+ gzip -9c < $i > $PKGMAN1/$( basename $i ).gz
+done
+
+# Always build the standalone converter and library. The lib
+# is static (no option to make it dynamic).
+# There's a "make install" but it's not doing what I want.
+runmake
+installbin asapconv $PKGBIN
+installfile asap.h $PKG/usr/include
+installfile libasap.a $PKGLIBDIR
+
+# mplayer wrapper, for command-line users' convenience.
+installscript $CWD/asap-mplayer $PKGBIN
+
+# This tools looks useful.
+installscript chksap.pl $PKG/usr/bin
+
+# It has POD that renders as a man page. Clean up the formatting some
+# and add a SEE ALSO section like the rest of the man pages have.
+sed -i -e 's/^chksap -/chksap.pl -/' \
+ -e 's/perl \(chksap\.pl\)/\1/' \
+ -e '/^=cut/i=head1 SEE ALSO\n\nB<asap-mplayer>(1), B<asap-sdl>(1), B<asapconv>(1), B<sap2ntsc>(1), B<sap2txt>(1)\n' \
+ chksap.pl
+pod2man -r$VERSION -s1 -cSlackBuilds.org chksap.pl | \
+ gzip -9c > $PKG/usr/man/man1/chksap.pl.1.gz
+
+# Looks useful, but it would need cito (don't have):
+#runmake asapscan
+#installbin asapscan $PKGBIN
+
+# Standalone player (seems to work, dunno why it's not built by default).
+runmake asap-sdl
+installbin asap-sdl $PKGBIN
+
+# This builds and seems useful, especially since most SAP files have
+# PAL timing and I live in an NTSC country:
+gcc $SLKCFLAGS -o sap2ntsc sap2ntsc.c
+installbin sap2ntsc $PKGBIN
+
+# This, too:
+gcc $SLKCFLAGS -o sap2txt sap2txt.c -lz
+installbin sap2txt $PKGBIN
+
+# Now build the plugins.
+
+# moc is part of Slackware, but I'll make it optional anyway,
+# in case someone's running a stripped-down Slackware install.
+# We need the moc source, and have to ./configure it (but not
+# actually build it).
+if [ -x /usr/bin/mocp ]; then
+ echo "=== building moc plugin"
+
+ MOCVER="${MOCVER:-$( /usr/bin/mocp --version | grep Version | sed 's,.*: ,,' )}"
+ tar xvf $CWD/moc-$MOCVER.tar.bz2
+ ( cd moc-$MOCVER && ./configure )
+
+ runmake asap-moc MOC_INCLUDE="$(pwd)/moc-$MOCVER"
+ installbin libasap_decoder.so $PKGLIBDIR/moc/decoder_plugins
+ PLUGINS+=" moc"
+fi
+
+# xmms is part of Slackware, but I'll make it optional anyway.
+if xmms-config --version &>/dev/null; then
+ echo "=== building xmms plugin"
+
+ runmake asap-xmms
+ installbin libasap-xmms.so $PKG/"$( xmms-config --input-plugin-dir )"
+ PLUGINS+=" xmms"
+fi
+
+# xmms2 is SBo, optional.
+if pkg-config --exists xmms2-plugin; then
+ echo "=== building xmms2 plugin"
+
+ # slight xmms2 API change:
+ sed -i 's,XMMS_XFORM_PLUGIN,&_DEFINE,' xmms2/libxmms_asap.c
+
+ runmake asap-xmms2
+ installbin libxmms_asap.so $PKGLIBDIR/xmms2
+ PLUGINS+=" xmms2"
+fi
+
+# vlc is SBo, optional.
+if pkg-config --exists vlc-plugin; then
+ echo "=== building vlc plugin"
+
+ runmake asap-vlc
+ installbin libasap_plugin.so \
+ $PKG/$( pkg-config --variable pluginsdir vlc-plugin )/demux
+ PLUGINS+=" vlc"
+
+ # doinst and douninst update the VLC plugins cache. only include
+ # in the package if they're actually needed.
+ mkdir -p $PKG/install
+ cat $CWD/doinst.sh > $PKG/install/doinst.sh
+ cat $CWD/douninst.sh > $PKG/install/douninst.sh
+fi
+
+PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
+mkdir -p $PKGDOC/examples
+cd $PKGDOC/examples
+ unzip -LL $CWD/examples.zip
+ chmod 644 *
+cd -
+cp -a README COPYING $PKGDOC
+cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+sed "s,@PLUGINS@,$PLUGINS," < $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/audio/asap/asap.info b/audio/asap/asap.info
new file mode 100644
index 0000000000..3063154d4e
--- /dev/null
+++ b/audio/asap/asap.info
@@ -0,0 +1,14 @@
+PRGNAM="asap"
+VERSION="5.2.0"
+HOMEPAGE="https://asap.sourceforge.net/"
+DOWNLOAD="https://downloads.sourceforge.net/project/asap/asap/5.2.0/asap-5.2.0.tar.gz \
+ http://asap.sourceforge.net/examples.zip \
+ https://ftp.daper.net/pub/soft/moc/stable/moc-2.5.2.tar.bz2"
+MD5SUM="cf6e638da630c63a76c02da1261c56b1 \
+ 765155ed26c45585391b3a48147c15a2 \
+ 48e5abcd5ffc76921d4feea8a1fc2dbb"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="B. Watson"
+EMAIL="urchlay@slackware.uk"
diff --git a/audio/asap/doinst.sh b/audio/asap/doinst.sh
new file mode 100644
index 0000000000..e0483cbf59
--- /dev/null
+++ b/audio/asap/doinst.sh
@@ -0,0 +1,10 @@
+# we're installing a VLC plugin, avoid "error: stale plugins cache"
+# when running vlc.
+
+if [ -x ./usr/lib64/vlc/vlc-cache-gen -a -x usr/lib64/vlc/plugins/demux/libasap_plugin.so ]; then
+ ./usr/lib64/vlc/vlc-cache-gen ./usr/lib64/vlc/
+fi
+
+if [ -x ./usr/lib/vlc/vlc-cache-gen -a -x usr/lib/vlc/plugins/demux/libasap_plugin.so ]; then
+ ./usr/lib/vlc/vlc-cache-gen ./usr/lib/vlc/
+fi
diff --git a/audio/asap/douninst.sh b/audio/asap/douninst.sh
new file mode 100644
index 0000000000..723f27ffb8
--- /dev/null
+++ b/audio/asap/douninst.sh
@@ -0,0 +1,10 @@
+# we're (possibly) removing a VLC plugin, avoid "error: stale plugins
+# cache" when running vlc.
+
+if [ -x ./usr/lib64/vlc/vlc-cache-gen ]; then
+ ./usr/lib64/vlc/vlc-cache-gen ./usr/lib64/vlc/
+fi
+
+if [ -x ./usr/lib/vlc/vlc-cache-gen ]; then
+ ./usr/lib/vlc/vlc-cache-gen ./usr/lib/vlc/
+fi
diff --git a/audio/asap/man/asap-mplayer.1 b/audio/asap/man/asap-mplayer.1
new file mode 100644
index 0000000000..ce15271963
--- /dev/null
+++ b/audio/asap/man/asap-mplayer.1
@@ -0,0 +1,80 @@
+.\" 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 "ASAP-MPLAYER" 1 "2022-12-25" "5.2.0" "SlackBuilds.org"
+.SH NAME
+asap-mplayer \- command-line player for Atari chiptunes and mplayer
+.\" RST source for asap-mplayer(1) man page. Convert with:
+.
+.\" rst2man.py asap-mplayer.rst > asap-sdl.1
+.
+.\" rst2man.py comes from the SBo development/docutils package.
+.
+.SH SYNOPSIS
+.sp
+\fBasap\-mplayer\fP [\fIasapconv\-options\fP] \fBinputfile\fP
+.SH DESCRIPTION
+.sp
+\fBasap\-mplayer\fP plays an Atari 8\-bit chiptune file, by first
+converting it to \fI\&.wav\fP (with \fBasapconv\fP(1)), then running \fBmplayer\fP(1)
+on the \fI\&.wav\fP file. After \fBmplayer\fP exits, the file is deleted.
+.sp
+The supported input formats are: SAP, CMC, CM3, CMR, CMS, DMC, DLT,
+MPT, MPD, RMT, TMC, TM8, TM2 or FC.
+.sp
+During playback, the full set of \fBmplayer\fP keyboard controls are
+available, meaning you can pause, seek forwards or backwards, speed up
+or slow down playback, etc.
+.sp
+Note that there\(aqs no way to pass \fBmplayer\fP options on the
+\fBasap\-mplayer\fP command line, but your \fB~/.mplayer/config\fP will be
+read as usual.
+.SH OPTIONS
+.INDENT 0.0
+.TP
+.B \fB\-h\fP, \fB\-\-help\fP
+Show built\-in help.
+.UNINDENT
+.sp
+Any other options are passed to \fBasapconv\fP as\-is. The most useful
+option would probably be \fB\-s song\fP to select which subsong to play.
+.SH COPYRIGHT
+.sp
+\fBasap\-mplayer\fP and this man page are released under the WTFPL.
+.SH AUTHORS
+.sp
+\fBasap\-mplayer\fP and this man page written for the SlackBuilds.org
+project by B. Watson.
+.SH SEE ALSO
+.sp
+\fBasapconv\fP(1), \fBasap\-sdl\fP(1), \fBchksap.pl\fP(1), \fBsap2ntsc\fP(1), \fBsap2txt\fP(1)
+.sp
+The ASAP website: \fI\%https://asap.sourceforge.net/\fP
+.\" Generated by docutils manpage writer.
+.
diff --git a/audio/asap/man/asap-mplayer.rst b/audio/asap/man/asap-mplayer.rst
new file mode 100644
index 0000000000..110a11510a
--- /dev/null
+++ b/audio/asap/man/asap-mplayer.rst
@@ -0,0 +1,69 @@
+.. RST source for asap-mplayer(1) man page. Convert with:
+.. rst2man.py asap-mplayer.rst > asap-sdl.1
+.. rst2man.py comes from the SBo development/docutils package.
+
+.. |version| replace:: 5.2.0
+.. |date| date::
+
+============
+asap-mplayer
+============
+
+---------------------------------------------------
+command-line player for Atari chiptunes and mplayer
+---------------------------------------------------
+
+:Manual section: 1
+:Manual group: SlackBuilds.org
+:Date: |date|
+:Version: |version|
+
+SYNOPSIS
+========
+
+**asap-mplayer** [*asapconv-options*] **inputfile**
+
+DESCRIPTION
+===========
+
+**asap-mplayer** plays an Atari 8-bit chiptune file, by first
+converting it to *.wav* (with **asapconv**\(1)), then running **mplayer**\(1)
+on the *.wav* file. After **mplayer** exits, the file is deleted.
+
+The supported input formats are: SAP, CMC, CM3, CMR, CMS, DMC, DLT,
+MPT, MPD, RMT, TMC, TM8, TM2 or FC.
+
+During playback, the full set of **mplayer** keyboard controls are
+available, meaning you can pause, seek forwards or backwards, speed up
+or slow down playback, etc.
+
+Note that there's no way to pass **mplayer** options on the
+**asap-mplayer** command line, but your **~/.mplayer/config** will be
+read as usual.
+
+OPTIONS
+=======
+
+**-h**, **--help**
+ Show built-in help.
+
+Any other options are passed to **asapconv** as-is. The most useful
+option would probably be **-s song** to select which subsong to play.
+
+COPYRIGHT
+=========
+
+**asap-mplayer** and this man page are released under the WTFPL.
+
+AUTHORS
+=======
+
+**asap-mplayer** and this man page written for the SlackBuilds.org
+project by B. Watson.
+
+SEE ALSO
+========
+
+**asapconv**\(1), **asap-sdl**\(1), **chksap.pl**\(1), **sap2ntsc**\(1), **sap2txt**\(1)
+
+The ASAP website: https://asap.sourceforge.net/
diff --git a/audio/asap/man/asap-sdl.1 b/audio/asap/man/asap-sdl.1
new file mode 100644
index 0000000000..d49fcffec8
--- /dev/null
+++ b/audio/asap/man/asap-sdl.1
@@ -0,0 +1,86 @@
+.\" 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 "ASAP-SDL" 1 "2022-12-25" "5.2.0" "SlackBuilds.org"
+.SH NAME
+asap-sdl \- simple command-line player for Atari chiptunes
+.\" RST source for asap-sdl(1) man page. Convert with:
+.
+.\" rst2man.py asap-sdl.rst > asap-sdl.1
+.
+.\" rst2man.py comes from the SBo development/docutils package.
+.
+.SH SYNOPSIS
+.sp
+\fBasap\-sdl\fP [\fI\-s song\fP] \fBinputfile\fP
+.SH DESCRIPTION
+.sp
+\fBasap\-sdl\fP plays an Atari 8\-bit chiptune file, using SDL for audio
+output (in practice, this usually means PulseAudio or ALSA).
+.sp
+The supported input formats are: SAP, CMC, CM3, CMR, CMS, DMC, DLT,
+MPT, MPD, RMT, TMC, TM8, TM2 or FC.
+.sp
+During playback, you can press Enter to exit. In fact, the player
+doesn\(aqt exit at the end of the file (nor does it loop), so you \fIhave\fP
+to press Enter after the song is over.
+.sp
+There are no other controls during playback (no way to e.g. seek
+forwards or backwards).
+.SH OPTIONS
+.INDENT 0.0
+.TP
+.B \fB\-h\fP, \fB\-\-help\fP
+Show built\-in help.
+.TP
+.B \fB\-v\fP, \fB\-\-version\fP
+Show version number.
+.TP
+.B \fB\-s\fP \fIsong\fP
+Select subsong number (zero\-based). The default is 0, which will be
+the only subsong in a file that contains only one song. Use
+\fBchksap.pl \-s filename\fP to see how many subsongs exist in a file.
+.UNINDENT
+.SH COPYRIGHT
+.sp
+See the file /usr/doc/asap\-5.2.0/COPYING for license information.
+.SH AUTHORS
+.sp
+The ASAP suite was written by Piotr Fusik, with contributions from many
+others (see the website for details).
+.sp
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+.SH SEE ALSO
+.sp
+\fBasapconv\fP(1), \fBasap\-mplayer\fP(1), \fBchksap.pl\fP(1), \fBsap2ntsc\fP(1), \fBsap2txt\fP(1)
+.sp
+The ASAP website: \fI\%https://asap.sourceforge.net/\fP
+.\" Generated by docutils manpage writer.
+.
diff --git a/audio/asap/man/asap-sdl.rst b/audio/asap/man/asap-sdl.rst
new file mode 100644
index 0000000000..3fab78d07b
--- /dev/null
+++ b/audio/asap/man/asap-sdl.rst
@@ -0,0 +1,75 @@
+.. RST source for asap-sdl(1) man page. Convert with:
+.. rst2man.py asap-sdl.rst > asap-sdl.1
+.. rst2man.py comes from the SBo development/docutils package.
+
+.. |version| replace:: 5.2.0
+.. |date| date::
+
+========
+asap-sdl
+========
+
+----------------------------------------------
+simple command-line player for Atari chiptunes
+----------------------------------------------
+
+:Manual section: 1
+:Manual group: SlackBuilds.org
+:Date: |date|
+:Version: |version|
+
+SYNOPSIS
+========
+
+**asap-sdl** [*-s song*] **inputfile**
+
+DESCRIPTION
+===========
+
+**asap-sdl** plays an Atari 8-bit chiptune file, using SDL for audio
+output (in practice, this usually means PulseAudio or ALSA).
+
+The supported input formats are: SAP, CMC, CM3, CMR, CMS, DMC, DLT,
+MPT, MPD, RMT, TMC, TM8, TM2 or FC.
+
+During playback, you can press Enter to exit. In fact, the player
+doesn't exit at the end of the file (nor does it loop), so you *have*
+to press Enter after the song is over.
+
+There are no other controls during playback (no way to e.g. seek
+forwards or backwards).
+
+OPTIONS
+=======
+
+**-h**, **--help**
+ Show built-in help.
+
+**-v**, **--version**
+ Show version number.
+
+**-s** *song*
+ Select subsong number (zero-based). The default is 0, which will be
+ the only subsong in a file that contains only one song. Use
+ **chksap.pl -s filename** to see how many subsongs exist in a file.
+
+COPYRIGHT
+=========
+
+See the file /usr/doc/asap-|version|/COPYING for license information.
+
+AUTHORS
+=======
+
+The ASAP suite was written by Piotr Fusik, with contributions from many
+others (see the website for details).
+
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+
+SEE ALSO
+========
+
+**asapconv**\(1), **asap-mplayer**\(1), **chksap.pl**\(1), **sap2ntsc**\(1), **sap2txt**\(1)
+
+The ASAP website: https://asap.sourceforge.net/
diff --git a/audio/asap/man/asapconv.1 b/audio/asap/man/asapconv.1
new file mode 100644
index 0000000000..13463e7d5e
--- /dev/null
+++ b/audio/asap/man/asapconv.1
@@ -0,0 +1,147 @@
+.\" 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 "ASAPCONV" 1 "2022-12-25" "5.2.0" "SlackBuilds.org"
+.SH NAME
+asapconv \- convert Atari 8-bit chiptunes to .wav or .xex files
+.\" RST source for asapconv(1) man page. Convert with:
+.
+.\" rst2man.py asapconv.rst > asapconv.1
+.
+.\" rst2man.py comes from the SBo development/docutils package.
+.
+.SH SYNOPSIS
+.sp
+\fBasapconv\fP [\fI\-options\fP] \fBinputfile\fP [\fI\&...\fP]
+.SH DESCRIPTION
+.sp
+\fBasapconv\fP converts one or more Atari 8\-bit chiptune files to
+\fI\&.wav\fP, raw audio sample files, \fI\&.xex\fP (Atari 8\-bit executables), or
+the \fI\&.sap\fP chiptune format.
+.sp
+The supported input formats are: SAP, CMC, CM3, CMR, CMS, DMC, DLT,
+MPT, MPD, RMT, TMC, TM8, TM2 or FC.
+.sp
+Although the \fB\-\-help\fP output implies that it\(aqs possible to convert
+to any supported input format, non\-SAP input files can only be
+converted to \fI\&.sap\fP or the same format they\(aqre already in. Attempts
+to convert between two different non\-SAP formats result in "conversion
+error" and a 0\-byte output file (and a non\-zero exit status).
+.sp
+The only useful reason to "convert" a non\-SAP file to the format it\(aqs
+already in is to relocate the music to a different Atari address,
+using the \fB\-\-address=\fP option. If you don\(aqt know why you\(aqd want to
+do that, you don\(aqt need to do it...
+.sp
+The raw audio files created by \fBasapconv\fP are headerless, containing
+only the audio samples. They can be played or converted with
+e.g. \fBsox\fP(1). For most purposes, \fI\&.wav\fP is more convenient.
+.SH OPTIONS
+.INDENT 0.0
+.TP
+.B \fB\-h\fP, \fB\-\-help\fP
+Show built\-in help.
+.TP
+.B \fB\-v\fP, \fB\-\-version\fP
+Show version number.
+.TP
+.B \fB\-o\fP \fIfile.ext\fP, \fB\-\-output\fP=file.ext
+Write output to the given file. The extension must be \fI\&.wav\fP,
+\fI\&.raw\fP, \fI\&.xex\fP, \fI\&.sap\fP, or the same extension as the input file. If
+only an extension is given, the filename will be derived from the
+input filename. If the filename part is given as \fI\-\fP (e.g. \fI\-.wav\fP),
+output is written to standard output. If \fIfile\fP includes a directory
+(e.g. \fIdir/foo.wav\fP), output is written to that directory, but
+\fBasapconv\fP will not create the directory (it must already
+exist). Output filenames can also contain printf\-style \fB%\fP
+escapes; see the \fB\-\-help\fP output for details.
+.TP
+.B \fB\-a\fP \fIauthor\fP, \fB\-\-author\fP=author
+Sets the author name in the output file.
+.TP
+.B \fB\-n\fP \fIname\fP, \fB\-\-name\fP=name
+Sets the music name (title) in the output file.
+.TP
+.B \fB\-d\fP \fIdate\fP, \fB\-\-date\fP=date
+Sets the creation date (DD/MM/YYYY) in the output file.
+.TP
+.B \fB\-s\fP \fIsong\fP, \fB\-\-song\fP=song
+Select subsong number (zero\-based). The default is 0, which will be
+the only subsong in a file that contains only one song. Use
+\fBchksap.pl \-s filename\fP to see how many subsongs exist in a SAP file.
+.TP
+.B \fB\-t\fP \fBtime\fP, \fB\-\-time\fP=time
+Set output length; \fBtime\fP must be given in minutes:seconds (e.g. 1:00).
+.TP
+.B \fB\-\-tag\fP
+Include author/title/date tags in the output. Only works for \fB\&.wav\fP
+and \fB\&.xex\fP output. For \fIxex\fP files, the tag information will be shown
+on the Atari screen while the song is playing.
+.TP
+.B \fB\-m\fP \fIchannels\fP, \fB\-\-mute\fP \fIchannels\fP
+For \fI\&.wav\fP or \fI\&.raw\fP output only: Mute the given list of POKEY
+channels. This is a comma\-separated list of channels numbered
+1 through 8. Channels 1 to 4 are the first POKEY (only POKEY,
+in an unmodified Atari), and 5 to 8 are the second POKEY in a
+stereo\-modded Atari.
+.TP
+.B \fB\-b\fP, \fB\-\-byte\-samples\fP
+Use 8\-bit samples for \fI\&.wav\fP or \fI\&.raw\fP output.
+.TP
+.B \fB\-w\fP, \fB\-\-word\-samples\fP
+Use 16\-bit samples for \fI\&.wav\fP or \fI\&.raw\fP output. This is the default already.
+.TP
+.B \fB\-\-address=\fP=hex\-address
+Relocate music to this address. Only useful when converting to \fI\&.sap\fP
+or to the same format as the input file.
+.UNINDENT
+.SH EXIT STATUS
+.sp
+\fBasapconv\fP exits with zero status on success or non\-zero on failure.
+.\" EXAMPLES
+.
+.\" ========
+.
+.SH COPYRIGHT
+.sp
+See the file /usr/doc/asap\-5.2.0/COPYING for license information.
+.SH AUTHORS
+.sp
+The ASAP suite was written by Piotr Fusik, with contributions from many
+others (see the website for details).
+.sp
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+.SH SEE ALSO
+.sp
+\fBchksap.pl\fP(1), \fBasap\-sdl\fP(1), \fBasap\-mplayer\fP(1), \fBsap2ntsc\fP(1), \fBsap2txt\fP(1)
+.sp
+The ASAP website: \fI\%https://asap.sourceforge.net/\fP
+.\" Generated by docutils manpage writer.
+.
diff --git a/audio/asap/man/asapconv.rst b/audio/asap/man/asapconv.rst
new file mode 100644
index 0000000000..d20f0fbd86
--- /dev/null
+++ b/audio/asap/man/asapconv.rst
@@ -0,0 +1,137 @@
+.. RST source for asapconv(1) man page. Convert with:
+.. rst2man.py asapconv.rst > asapconv.1
+.. rst2man.py comes from the SBo development/docutils package.
+
+.. |version| replace:: 5.2.0
+.. |date| date::
+
+========
+asapconv
+========
+
+---------------------------------------------------
+convert Atari 8-bit chiptunes to .wav or .xex files
+---------------------------------------------------
+
+:Manual section: 1
+:Manual group: SlackBuilds.org
+:Date: |date|
+:Version: |version|
+
+SYNOPSIS
+========
+
+**asapconv** [*-options*] **inputfile** [*...*]
+
+DESCRIPTION
+===========
+
+**asapconv** converts one or more Atari 8-bit chiptune files to
+*.wav*, raw audio sample files, *.xex* (Atari 8-bit executables), or
+the *.sap* chiptune format.
+
+The supported input formats are: SAP, CMC, CM3, CMR, CMS, DMC, DLT,
+MPT, MPD, RMT, TMC, TM8, TM2 or FC.
+
+Although the **--help** output implies that it's possible to convert
+to any supported input format, non-SAP input files can only be
+converted to *.sap* or the same format they're already in. Attempts
+to convert between two different non-SAP formats result in "conversion
+error" and a 0-byte output file (and a non-zero exit status).
+
+The only useful reason to "convert" a non-SAP file to the format it's
+already in is to relocate the music to a different Atari address,
+using the **--address=** option. If you don't know why you'd want to
+do that, you don't need to do it...
+
+The raw audio files created by **asapconv** are headerless, containing
+only the audio samples. They can be played or converted with
+e.g. **sox**\(1). For most purposes, *.wav* is more convenient.
+
+OPTIONS
+=======
+
+**-h**, **--help**
+ Show built-in help.
+
+**-v**, **--version**
+ Show version number.
+
+**-o** *file.ext*, **--output**\=file.ext
+ Write output to the given file. The extension must be *.wav*,
+ *.raw*, *.xex*, *.sap*, or the same extension as the input file. If
+ only an extension is given, the filename will be derived from the
+ input filename. If the filename part is given as *-* (e.g. *-.wav*),
+ output is written to standard output. If *file* includes a directory
+ (e.g. *dir/foo.wav*), output is written to that directory, but
+ **asapconv** will not create the directory (it must already
+ exist). Output filenames can also contain printf-style **%**
+ escapes; see the **--help** output for details.
+
+**-a** *author*, **--author**\=author
+ Sets the author name in the output file.
+
+**-n** *name*, **--name**\=name
+ Sets the music name (title) in the output file.
+
+**-d** *date*, **--date**\=date
+ Sets the creation date (DD/MM/YYYY) in the output file.
+
+**-s** *song*, **--song**\=song
+ Select subsong number (zero-based). The default is 0, which will be
+ the only subsong in a file that contains only one song. Use
+ **chksap.pl -s filename** to see how many subsongs exist in a SAP file.
+
+**-t** **time**, **--time**\=time
+ Set output length; **time** must be given in minutes:seconds (e.g. 1:00).
+
+**--tag**
+ Include author/title/date tags in the output. Only works for **.wav**
+ and **.xex** output. For *xex* files, the tag information will be shown
+ on the Atari screen while the song is playing.
+
+**-m** *channels*, **--mute** *channels*
+ For *.wav* or *.raw* output only: Mute the given list of POKEY
+ channels. This is a comma-separated list of channels numbered
+ 1 through 8. Channels 1 to 4 are the first POKEY (only POKEY,
+ in an unmodified Atari), and 5 to 8 are the second POKEY in a
+ stereo-modded Atari.
+
+**-b**, **--byte-samples**
+ Use 8-bit samples for *.wav* or *.raw* output.
+
+**-w**, **--word-samples**
+ Use 16-bit samples for *.wav* or *.raw* output. This is the default already.
+
+**--address=**\=hex-address
+ Relocate music to this address. Only useful when converting to *.sap*
+ or to the same format as the input file.
+
+EXIT STATUS
+===========
+
+**asapconv** exits with zero status on success or non-zero on failure.
+
+.. EXAMPLES
+.. ========
+
+COPYRIGHT
+=========
+
+See the file /usr/doc/asap-|version|/COPYING for license information.
+
+AUTHORS
+=======
+
+The ASAP suite was written by Piotr Fusik, with contributions from many
+others (see the website for details).
+
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+
+SEE ALSO
+========
+
+**chksap.pl**\(1), **asap-sdl**\(1), **asap-mplayer**\(1), **sap2ntsc**\(1), **sap2txt**\(1)
+
+The ASAP website: https://asap.sourceforge.net/
diff --git a/audio/asap/man/sap2ntsc.1 b/audio/asap/man/sap2ntsc.1
new file mode 100644
index 0000000000..62bd7e1704
--- /dev/null
+++ b/audio/asap/man/sap2ntsc.1
@@ -0,0 +1,79 @@
+.\" 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 "SAP2NTSC" 1 "2022-12-25" "5.2.0" "SlackBuilds.org"
+.SH NAME
+sap2ntsc \- convert SAP Atari 8-bit chiptune files to NTSC timing
+.\" RST source for sap2ntsc(1) man page. Convert with:
+.
+.\" rst2man.py sap2ntsc.rst > sap2ntsc.1
+.
+.\" rst2man.py comes from the SBo development/docutils package.
+.
+.SH SYNOPSIS
+.sp
+\fBsap2ntsc\fP \fBinputfile\fP [\fI\&...\fP]
+.SH DESCRIPTION
+.sp
+\fBsap2ntsc\fP converts an Atari 8\-bit chiptune in SAP format from
+PAL timing to NTSC. Not all SAP files can be converted: ones that
+appear to already be NTSC, or ones that use the FASTPLAY option, are
+unconvertible.
+.sp
+\fBBeware\fP: each \fBinputfile\fP is overwritten without confirmation.
+If you need backups of the original files, you should make copies
+\fIbefore\fP running \fBsap2ntsc\fP\&.
+.sp
+Non\-SAP chiptune files (e.g. RMT, CMC) are not supported.
+.SH OPTIONS
+.INDENT 0.0
+.TP
+.B \fB\-h\fP, \fB\-\-help\fP
+Show built\-in help.
+.TP
+.B \fB\-v\fP, \fB\-\-version\fP
+Show version number.
+.UNINDENT
+.SH COPYRIGHT
+.sp
+See the file /usr/doc/asap\-5.2.0/COPYING for license information.
+.SH AUTHORS
+.sp
+The ASAP suite was written by Piotr Fusik, with contributions from many
+others (see the website for details).
+.sp
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+.SH SEE ALSO
+.sp
+\fBasapconv\fP(1), \fBasap\-sdl\fP(1), \fBasap\-mplayer\fP(1), \fBchksap.pl\fP(1), \fBsap2txt\fP(1)
+.sp
+The ASAP website: \fI\%https://asap.sourceforge.net/\fP
+.\" Generated by docutils manpage writer.
+.
diff --git a/audio/asap/man/sap2ntsc.rst b/audio/asap/man/sap2ntsc.rst
new file mode 100644
index 0000000000..315b79ad8c
--- /dev/null
+++ b/audio/asap/man/sap2ntsc.rst
@@ -0,0 +1,68 @@
+.. RST source for sap2ntsc(1) man page. Convert with:
+.. rst2man.py sap2ntsc.rst > sap2ntsc.1
+.. rst2man.py comes from the SBo development/docutils package.
+
+.. |version| replace:: 5.2.0
+.. |date| date::
+
+========
+sap2ntsc
+========
+
+-----------------------------------------------------
+convert SAP Atari 8-bit chiptune files to NTSC timing
+-----------------------------------------------------
+
+:Manual section: 1
+:Manual group: SlackBuilds.org
+:Date: |date|
+:Version: |version|
+
+SYNOPSIS
+========
+
+**sap2ntsc** **inputfile** [*...*]
+
+DESCRIPTION
+===========
+
+**sap2ntsc** converts an Atari 8-bit chiptune in SAP format from
+PAL timing to NTSC. Not all SAP files can be converted: ones that
+appear to already be NTSC, or ones that use the FASTPLAY option, are
+unconvertible.
+
+**Beware**: each **inputfile** is overwritten without confirmation.
+If you need backups of the original files, you should make copies
+*before* running **sap2ntsc**.
+
+Non-SAP chiptune files (e.g. RMT, CMC) are not supported.
+
+OPTIONS
+=======
+
+**-h**, **--help**
+ Show built-in help.
+
+**-v**, **--version**
+ Show version number.
+
+COPYRIGHT
+=========
+
+See the file /usr/doc/asap-|version|/COPYING for license information.
+
+AUTHORS
+=======
+
+The ASAP suite was written by Piotr Fusik, with contributions from many
+others (see the website for details).
+
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+
+SEE ALSO
+========
+
+**asapconv**\(1), **asap-sdl**\(1), **asap-mplayer**\(1), **chksap.pl**\(1), **sap2txt**\(1)
+
+The ASAP website: https://asap.sourceforge.net/
diff --git a/audio/asap/man/sap2txt.1 b/audio/asap/man/sap2txt.1
new file mode 100644
index 0000000000..91bb907580
--- /dev/null
+++ b/audio/asap/man/sap2txt.1
@@ -0,0 +1,136 @@
+.\" 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 "SAP2TXT" 1 "2022-12-25" "5.2.0" "SlackBuilds.org"
+.SH NAME
+sap2txt \- dump or modify the header of a SAP Atari 8-bit chiptune file
+.\" RST source for sap2txt(1) man page. Convert with:
+.
+.\" rst2man.py sap2txt.rst > sap2txt.1
+.
+.\" rst2man.py comes from the SBo development/docutils package.
+.
+.SH SYNOPSIS
+.sp
+\fBsap2txt\fP \fBSAP\-file\fP [ > \fBtext\-file\fP ]
+.sp
+\fBsap2txt\fP \fBtext\-file\fP \fBSAP\-file\fP
+.SH DESCRIPTION
+.sp
+\fBsap2txt\fP dumps the header of an Atari 8\-bit chiptune in SAP format
+in human\-readable format, or replaces the header of a SAP file with
+the contents of a text file previously created with \fBsap2txt\fP and
+probably edited with a text editor.
+.sp
+With one argument, \fBsap2txt\fP reads the input SAP file and prints
+its header in text format on standard output. Use redirection to
+capture this in a text file (e.g. \fI>file.txt\fP).
+.sp
+With two arguments, \fBsap2txt\fP reads the first file as a text
+file, in the format created by \fBsap2txt\fP itself, and replaces
+the SAP header in the second file (which must be a valid SAP
+file). \fBBeware\fP: \fBSAP\-file\fP is overwritten without confirmation.
+If you need backups of the original files, you should make copies
+\fIbefore\fP running \fBsap2txt\fP\&.
+.sp
+Non\-SAP chiptune files (e.g. RMT, CMC) are not supported.
+.SH OPTIONS
+.INDENT 0.0
+.TP
+.B \fB\-h\fP, \fB\-\-help\fP
+Show built\-in help.
+.TP
+.B \fB\-v\fP, \fB\-\-version\fP
+Show version number.
+.UNINDENT
+.SH EXAMPLE
+.sp
+To change the title of a SAP file, first:
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+sap2txt file.sap > file.txt
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.sp
+Then edit file.txt (with your preferred text editor, whatever that
+is). Change the line that begins with NAME. Be careful not to remove
+the double\-quotes around the name. After editing the text file, you
+should make a backup of the original SAP file:
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+cp file.sap file.original.sap
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.sp
+Now you\(aqre ready to update the header in the SAP file:
+.INDENT 0.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+sap2txt file.txt file.sap
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.sp
+When you play the new file.sap, your modified title should show
+up in the player.
+.sp
+Note that it\(aqs \fBvery bad form\fP to change the author\(aqs name to
+your name and redistribute the file. In fact, you should never
+redistribute modified versions of SAP files without the original
+author\(aqs permission.
+.SH COPYRIGHT
+.sp
+See the file /usr/doc/asap\-5.2.0/COPYING for license information.
+.SH AUTHORS
+.sp
+The ASAP suite was written by Piotr Fusik, with contributions from many
+others (see the website for details).
+.sp
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+.SH SEE ALSO
+.sp
+\fBasapconv\fP(1), \fBasap\-sdl\fP(1), \fBasap\-mplayer\fP(1), \fBchksap.pl\fP(1), \fBsap2ntsc\fP(1)
+.sp
+The ASAP website: \fI\%https://asap.sourceforge.net/\fP
+.\" Generated by docutils manpage writer.
+.
diff --git a/audio/asap/man/sap2txt.rst b/audio/asap/man/sap2txt.rst
new file mode 100644
index 0000000000..3b4679b52c
--- /dev/null
+++ b/audio/asap/man/sap2txt.rst
@@ -0,0 +1,103 @@
+.. RST source for sap2txt(1) man page. Convert with:
+.. rst2man.py sap2txt.rst > sap2txt.1
+.. rst2man.py comes from the SBo development/docutils package.
+
+.. |version| replace:: 5.2.0
+.. |date| date::
+
+=======
+sap2txt
+=======
+
+------------------------------------------------------------
+dump or modify the header of a SAP Atari 8-bit chiptune file
+------------------------------------------------------------
+
+:Manual section: 1
+:Manual group: SlackBuilds.org
+:Date: |date|
+:Version: |version|
+
+SYNOPSIS
+========
+
+**sap2txt** **SAP-file** [ > **text-file** ]
+
+**sap2txt** **text-file** **SAP-file**
+
+DESCRIPTION
+===========
+
+**sap2txt** dumps the header of an Atari 8-bit chiptune in SAP format
+in human-readable format, or replaces the header of a SAP file with
+the contents of a text file previously created with **sap2txt** and
+probably edited with a text editor.
+
+With one argument, **sap2txt** reads the input SAP file and prints
+its header in text format on standard output. Use redirection to
+capture this in a text file (e.g. *>file.txt*).
+
+With two arguments, **sap2txt** reads the first file as a text
+file, in the format created by **sap2txt** itself, and replaces
+the SAP header in the second file (which must be a valid SAP
+file). **Beware**: **SAP-file** is overwritten without confirmation.
+If you need backups of the original files, you should make copies
+*before* running **sap2txt**.
+
+Non-SAP chiptune files (e.g. RMT, CMC) are not supported.
+
+OPTIONS
+=======
+
+**-h**, **--help**
+ Show built-in help.
+
+**-v**, **--version**
+ Show version number.
+
+EXAMPLE
+=======
+
+To change the title of a SAP file, first::
+
+ sap2txt file.sap > file.txt
+
+Then edit file.txt (with your preferred text editor, whatever that
+is). Change the line that begins with NAME. Be careful not to remove
+the double-quotes around the name. After editing the text file, you
+should make a backup of the original SAP file::
+
+ cp file.sap file.original.sap
+
+Now you're ready to update the header in the SAP file::
+
+ sap2txt file.txt file.sap
+
+When you play the new file.sap, your modified title should show
+up in the player.
+
+Note that it's **very bad form** to change the author's name to
+your name and redistribute the file. In fact, you should never
+redistribute modified versions of SAP files without the original
+author's permission.
+
+COPYRIGHT
+=========
+
+See the file /usr/doc/asap-|version|/COPYING for license information.
+
+AUTHORS
+=======
+
+The ASAP suite was written by Piotr Fusik, with contributions from many
+others (see the website for details).
+
+This man page written for the SlackBuilds.org project
+by B. Watson, and is licensed under the WTFPL.
+
+SEE ALSO
+========
+
+**asapconv**\(1), **asap-sdl**\(1), **asap-mplayer**\(1), **chksap.pl**\(1), **sap2ntsc**\(1)
+
+The ASAP website: https://asap.sourceforge.net/
diff --git a/audio/asap/mkman.sh b/audio/asap/mkman.sh
new file mode 100644
index 0000000000..d380dd85bb
--- /dev/null
+++ b/audio/asap/mkman.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+cd man
+for i in *.rst; do
+ rst2man.py $i > $( basename $i .rst ).1
+done
diff --git a/audio/asap/slack-desc b/audio/asap/slack-desc
new file mode 100644
index 0000000000..aca57ac7bf
--- /dev/null
+++ b/audio/asap/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------------------------------------------------------|
+asap: asap (player/converter for Atari 8-bit chiptune formats)
+asap:
+asap: ASAP is a player of Atari 8-bit chiptunes for modern computers
+asap: and mobile devices. It emulates the POKEY sound chip and the 6502
+asap: processor.
+asap:
+asap: ASAP supports the following file formats: SAP, CMC, CM3, CMR, CMS,
+asap: DMC, DLT, FC, MPT, MPD, RMT, TMC/TM8, TM2, STIL. It can convert to
+asap: .wav, raw audio samples, Atari executables (.xex), or SAP files.
+asap:
+asap: Package includes plugins for:@PLUGINS@