aboutsummaryrefslogtreecommitdiff
path: root/games/adl
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2015-02-20 09:43:56 +0700
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2015-02-20 09:43:56 +0700
commit5ea3db7bec2830a9ec0f7dd011ea077ae748c6cc (patch)
treee191766bbd5a5b44ef53cae579dd92fee5a59795 /games/adl
parentdb2ba2f0b34a84949844e5f4e4fa7b97a6805ee4 (diff)
games/adl: Added (compiler and runtime).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'games/adl')
-rw-r--r--games/adl/README10
-rw-r--r--games/adl/adl.SlackBuild107
-rw-r--r--games/adl/adl.info10
-rw-r--r--games/adl/compilefixes.diff272
-rw-r--r--games/adl/fixman.sh32
-rw-r--r--games/adl/man/adlcomp.6249
-rw-r--r--games/adl/man/adldebug.6163
-rw-r--r--games/adl/man/adlrun.6189
-rw-r--r--games/adl/slack-desc19
9 files changed, 1051 insertions, 0 deletions
diff --git a/games/adl/README b/games/adl/README
new file mode 100644
index 0000000000000..02bfbf10be879
--- /dev/null
+++ b/games/adl/README
@@ -0,0 +1,10 @@
+adl (compiler and runtime for adventure definition language)
+
+ADL stands for Adventure Definition Language. It is a superset, with
+greatly enhanced capabilities, of an older language named DDL. DDL was
+originally written in 1981 by Michael Urban, Chris Kostanick, Michael
+Stein, Bruce Adler, and Warren Usui, all of the UCLA Computer Club.
+
+Includes compiler (adlcomp), runtime (adlrun), debugger (adldebug),
+and two sample games (aard and mpu). Documentation and sample code is
+installed in /usr/doc/adl-$VERSION.
diff --git a/games/adl/adl.SlackBuild b/games/adl/adl.SlackBuild
new file mode 100644
index 0000000000000..fb18cccc1c635
--- /dev/null
+++ b/games/adl/adl.SlackBuild
@@ -0,0 +1,107 @@
+#!/bin/sh
+
+# Slackware build script for adl
+
+# Written by B. Watson (yalhcru@gmail.com)
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/
+# for details.
+
+# VERSION is the timestamp of the tarball. Most of the files
+# inside are stamped May 10 1991, and the copyright notice
+# says 1987.
+
+# In case anyone's wondering: compiled ADL files are NOT architecture
+# independent. 32-bit adlcomp produces files that won't run on a 64-bit
+# adlrun, and vice versa.
+
+PRGNAM=adl
+VERSION=${VERSION:-19930322}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -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
+tar xvf $CWD/$PRGNAM.tar.Z
+cd $PRGNAM
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+# Patch does this:
+# - fix various compile errors (mostly relating to lack of ANSI prototypes).
+# - remove 'extern char *malloc()' and such, include system headers instead.
+# - add support for OPTFLAGS (instead of hard-coded -O in CFLAGS).
+# - -DADL_NAME="/usr/games/adlrun" (for adlcomp's emitted shebang lines).
+# - stop adlrun from opening game files read/write: it never writes to them,
+# and the open fails for e.g. non-root user trying to run /usr/games/aard.
+patch -p1 < $CWD/compilefixes.diff
+
+# 'make install' doesn't create directories.
+mkdir -p $PKG/usr/games $PKG/usr/man/man6
+
+make all install BIN=$PKG/usr/games OPTFLAGS="$SLKCFLAGS"
+
+# the adltouch utility is broken, don't include in package.
+# adldebug also seems like it might be broken, but it might just be that
+# I'm using it wrong.
+rm -f $PKG/usr/games/adltouch
+
+# a couple of the samples are complete games, let's install them.
+cp -a samples/aard/aard samples/mpu/mpu $PKG/usr/games
+
+# we're going to install samples/ in /usr/doc, but not the compiled games.
+make -C samples clean
+
+# use reconstituted man pages instead of the preformatted ones in the
+# source. See fixman.sh.
+for page in $CWD/man/*.6; do
+ gzip -9c < $page > $PKG/usr/man/man6/$( basename $page ).gz
+done
+
+DOCDIR=$PKG/usr/doc/$PRGNAM-$VERSION
+mkdir -p $DOCDIR
+# rename this so no GUIs think it's a MS Word doc:
+cp -a man/adl.doc $DOCDIR/adl.doc.txt
+cp -a copyrigh readme samples $DOCDIR
+cat $CWD/$PRGNAM.SlackBuild > $DOCDIR/$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:-tgz}
diff --git a/games/adl/adl.info b/games/adl/adl.info
new file mode 100644
index 0000000000000..4548df006970a
--- /dev/null
+++ b/games/adl/adl.info
@@ -0,0 +1,10 @@
+PRGNAM="adl"
+VERSION="19930322"
+HOMEPAGE="http://www.ifarchive.org/indexes/if-archiveXprogrammingXadl.html"
+DOWNLOAD="http://www.ifarchive.org/if-archive/programming/adl/adl.tar.Z"
+DOWNLOAD_x86_64=""
+MD5SUM="b01115cc2625441caf818e60527b4095"
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="B. Watson"
+EMAIL="yalhcru@gmail.com"
diff --git a/games/adl/compilefixes.diff b/games/adl/compilefixes.diff
new file mode 100644
index 0000000000000..13b87cf52e3a7
--- /dev/null
+++ b/games/adl/compilefixes.diff
@@ -0,0 +1,272 @@
+diff -Naur adl/adlcomp/adlcomp.c adl.patched/adlcomp/adlcomp.c
+--- adl/adlcomp/adlcomp.c 1991-05-10 07:17:56.000000000 -0400
++++ adl.patched/adlcomp/adlcomp.c 2015-02-16 17:59:34.000000000 -0500
+@@ -55,8 +55,6 @@
+ *outname = "adlcomp.out", /* Default output file name */
+ *dirnames[MAXDIR]; /* -i names */
+
+-extern char *calloc(); /* Memory allocator */
+-
+ struct pagetab codetab; /* Structure for virtual code */
+
+ int16 NUM_VARS = 64, /* Default # of ADL variables */
+@@ -394,7 +392,7 @@
+ getfile()
+ {
+ char *fsave;
+- char msg[ 80 ], nsave[ 512 ], t_in[ 512 ], *sprintf();
++ char msg[ 80 ], nsave[ 512 ], t_in[ 512 ];
+ int16 lsave, numsave, i, found;
+
+ lexer(); /* Get a token. */
+diff -Naur adl/adlcomp/compdict.c adl.patched/adlcomp/compdict.c
+--- adl/adlcomp/compdict.c 1991-05-10 07:18:03.000000000 -0400
++++ adl.patched/adlcomp/compdict.c 2015-02-16 17:59:34.000000000 -0500
+@@ -7,9 +7,6 @@
+
+ #define HTSIZE 512 /* Size of a hash table */
+
+-char
+- *calloc();
+-
+ /* Structure of a hash table entry */
+ struct hash_entry {
+ struct symbol
+@@ -187,7 +184,6 @@
+ }
+
+
+-static
+ write_hash( fd, tab, writing )
+ int
+ fd;
+diff -Naur adl/adlcomp/makefile adl.patched/adlcomp/makefile
+--- adl/adlcomp/makefile 1991-05-21 16:32:27.000000000 -0400
++++ adl.patched/adlcomp/makefile 2015-02-16 17:59:34.000000000 -0500
+@@ -14,7 +14,7 @@
+ BIN = /User/stephan/Adventures/adl
+
+ # Flags for CC
+-CFLAGS = -I${INC} -O '-DADL_NAME="${BIN}/ADLrun"'
++CFLAGS = -I${INC} ${OPTFLAGS} '-DADL_NAME="/usr/games/adlrun"'
+
+ # Flags for lint
+ LFLAGS = -DLINT -I${INC} -C
+diff -Naur adl/adlrun/adlmacro.c adl.patched/adlrun/adlmacro.c
+--- adl/adlrun/adlmacro.c 1991-05-10 07:18:40.000000000 -0400
++++ adl.patched/adlrun/adlmacro.c 2015-02-16 17:59:34.000000000 -0500
+@@ -7,9 +7,6 @@
+ struct macro
+ *mactab;
+
+-extern char
+- *calloc();
+-
+ define( str1, str2 )
+ char
+ *str1,
+diff -Naur adl/adlrun/adlrun.c adl.patched/adlrun/adlrun.c
+--- adl/adlrun/adlrun.c 1991-05-10 07:18:28.000000000 -0400
++++ adl.patched/adlrun/adlrun.c 2015-02-16 17:59:34.000000000 -0500
+@@ -83,8 +83,6 @@
+ *getml();
+ # define calloc( size, num ) getml( (long)(size * num) )
+ #else
+- extern char
+- *calloc();
+ #endif
+
+ #define islegal(c) (c&&(c!=' ')&&(c!='\t')&&(c!='\n')&&(c!='-'))
+diff -Naur adl/adlrun/adlscrn.c adl.patched/adlrun/adlscrn.c
+--- adl/adlrun/adlscrn.c 1991-05-21 16:15:59.000000000 -0400
++++ adl.patched/adlrun/adlscrn.c 2015-02-16 17:59:34.000000000 -0500
+@@ -8,6 +8,8 @@
+ #define TERMCAP
+
+ #include <stdio.h>
++#include <curses.h>
++#include <term.h>
+
+ #include "adltypes.h"
+ #include "adlprog.h"
+diff -Naur adl/adlrun/adlstr.c adl.patched/adlrun/adlstr.c
+--- adl/adlrun/adlstr.c 1991-05-10 07:18:38.000000000 -0400
++++ adl.patched/adlrun/adlstr.c 2015-02-16 17:59:34.000000000 -0500
+@@ -7,9 +7,6 @@
+ #include "vstring.h"
+ #include "adlrun.h"
+
+-extern char
+- *malloc();
+-
+ eqstring()
+ {
+ char
+diff -Naur adl/adlrun/makefile adl.patched/adlrun/makefile
+--- adl/adlrun/makefile 1991-05-21 16:18:10.000000000 -0400
++++ adl.patched/adlrun/makefile 2015-02-16 17:59:56.000000000 -0500
+@@ -16,7 +16,7 @@
+ BIN = /User/stephan/Adventures/adl
+
+ # Flags for CC
+-CFLAGS = -I${INC} -O
++CFLAGS = -I${INC} ${OPTFLAGS}
+
+ # Flags for the linker - you may need to change -lcurses to -ltermcap
+ # or -ltermlib.
+diff -Naur adl/adlrun/rtdict.c adl.patched/adlrun/rtdict.c
+--- adl/adlrun/rtdict.c 1991-05-10 07:18:22.000000000 -0400
++++ adl.patched/adlrun/rtdict.c 2015-02-16 17:59:34.000000000 -0500
+@@ -21,9 +21,6 @@
+ static struct letter
+ *trie; /* The dictionary */
+
+-char
+- *malloc();
+-
+ /***************************************************************\
+ * *
+ * new_letter( let ) - allocate a new letter for the *
+diff -Naur adl/include/adlrun.h adl.patched/include/adlrun.h
+--- adl/include/adlrun.h 1991-05-10 07:15:37.000000000 -0400
++++ adl.patched/include/adlrun.h 2015-02-16 17:59:34.000000000 -0500
+@@ -147,7 +147,6 @@
+ nummacro(); /* Returns number of macros defined */
+
+ extern char
+- *malloc(), /* Memory allocation */
+ *findone(), /* Find a symbol. */
+ *expand(); /* Try to macro-expand a string */
+
+diff -Naur adl/include/adltypes.h adl.patched/include/adltypes.h
+--- adl/include/adltypes.h 1991-05-21 16:40:38.000000000 -0400
++++ adl.patched/include/adltypes.h 2015-02-16 17:59:34.000000000 -0500
+@@ -1,3 +1,6 @@
++#include <stdlib.h>
++#include <string.h>
++
+ /* Undefine any predefined things */
+ #ifdef HPUX
+ # undef HPUX
+@@ -100,7 +103,7 @@
+ typedef unsigned short address;
+ # define SRAND srand
+ # define RAND rand()
+-# define RB O_RDWR
++# define RB O_RDONLY
+ # define WB (O_RDWR | O_CREAT | O_TRUNC)
+ #endif
+
+@@ -111,7 +114,7 @@
+ typedef unsigned short address;
+ # define SRAND srandom
+ # define RAND random()
+-# define RB O_RDWR
++# define RB O_RDONLY
+ # define WB (O_RDWR | O_CREAT | O_TRUNC)
+ #endif
+
+@@ -123,7 +126,7 @@
+ # define SRAND srand
+ # define RAND rand()
+ # define time mytime
+-# define RB O_RDWR
++# define RB O_RDONLY
+ # define WB (O_RDWR | O_CREAT | O_TRUNC)
+ #endif
+
+diff -Naur adl/misc/adldebug.c adl.patched/misc/adldebug.c
+--- adl/misc/adldebug.c 1991-05-10 07:21:18.000000000 -0400
++++ adl.patched/misc/adldebug.c 2015-02-16 17:59:34.000000000 -0500
+@@ -46,9 +46,6 @@
+ address *routspace; /* Routine indexes */
+ int32 *str_tab; /* String table */
+
+-char
+- *malloc(); /* Memory allocator */
+-
+ main( argc, argv )
+ int
+ argc;
+diff -Naur adl/misc/adltouch.c adl.patched/misc/adltouch.c
+--- adl/misc/adltouch.c 1991-05-10 07:21:22.000000000 -0400
++++ adl.patched/misc/adltouch.c 2015-02-16 17:59:34.000000000 -0500
+@@ -1,6 +1,7 @@
+ /* Adltouch - touch an ADL save file */
+
+ #include <stdio.h>
++#include <stdlib.h>
+
+ #if MSDOS
+ # define RB "rb+"
+diff -Naur adl/misc/makefile adl.patched/misc/makefile
+--- adl/misc/makefile 1991-05-21 16:10:15.000000000 -0400
++++ adl.patched/misc/makefile 2015-02-16 18:00:06.000000000 -0500
+@@ -5,7 +5,7 @@
+ INC = ../include
+
+ # Flags for CC
+-CFLAGS = -O -I${INC}
++CFLAGS = ${OPTFLAGS} -I${INC}
+
+ # Commands for shar
+ # AR = shar -c -v
+diff -Naur adl/samples/aard/makefile adl.patched/samples/aard/makefile
+--- adl/samples/aard/makefile 1991-05-10 07:16:46.000000000 -0400
++++ adl.patched/samples/aard/makefile 2015-02-16 17:59:34.000000000 -0500
+@@ -7,7 +7,7 @@
+ all : aard
+
+ aard : *.adl ../../adlcomp/adlcomp ../standard.adl
+- adlcomp aard.adl -w -o aard -i..
++ ../../adlcomp/adlcomp aard.adl -w -o aard -i..
+ shar : aard1.shar aard2.shar
+
+ clean :
+diff -Naur adl/samples/demos/makefile adl.patched/samples/demos/makefile
+--- adl/samples/demos/makefile 1991-05-10 07:17:08.000000000 -0400
++++ adl.patched/samples/demos/makefile 2015-02-16 17:59:34.000000000 -0500
+@@ -19,13 +19,13 @@
+ > ${D}demos.shar )
+
+ actdemo : actdemo.adl ../standard.adl
+- adlcomp actdemo.adl -o actdemo -i ..
++ ../../adlcomp/adlcomp actdemo.adl -o actdemo -i ..
+
+ baby : baby.adl ../standard.adl
+- adlcomp baby.adl -i.. -o baby
++ ../../adlcomp/adlcomp baby.adl -i.. -o baby
+
+ multi : multi.adl
+- adlcomp multi.adl -o multi
++ ../../adlcomp/adlcomp multi.adl -o multi
+
+ tiny : tiny.adl ../standard.adl
+- adlcomp tiny.adl -i.. -o tiny
++ ../../adlcomp/adlcomp tiny.adl -i.. -o tiny
+diff -Naur adl/samples/mpu/makefile adl.patched/samples/mpu/makefile
+--- adl/samples/mpu/makefile 1991-05-10 07:17:32.000000000 -0400
++++ adl.patched/samples/mpu/makefile 2015-02-16 17:59:34.000000000 -0500
+@@ -7,7 +7,7 @@
+ all : mpu
+
+ mpu : *.adl ../../adlcomp/adlcomp ../standard.adl
+- adlcomp mpu.adl -i.. -o mpu
++ ../../adlcomp/adlcomp mpu.adl -i.. -o mpu
+
+ shar : mpu1.shar mpu2.shar
+
+diff -Naur adl/util/makefile adl.patched/util/makefile
+--- adl/util/makefile 1991-05-10 07:15:58.000000000 -0400
++++ adl.patched/util/makefile 2015-02-16 18:00:55.000000000 -0500
+@@ -4,8 +4,8 @@
+ B = ..
+ D = util/
+
+-DFLAGS = -O
+-CFLAGS = -I${INC} ${DFLAGS}
++DFLAGS =
++CFLAGS = -I${INC} ${DFLAGS} ${OPTFLAGS}
+
+ OBJS = vstring.o virtmem.o mytime.o
+
diff --git a/games/adl/fixman.sh b/games/adl/fixman.sh
new file mode 100644
index 0000000000000..a500103ea07ca
--- /dev/null
+++ b/games/adl/fixman.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+# fixman.sh - part of SBo adl build. B Watson (yalhcru@gmail.com), WTFPL.
+
+# needs polyglotman.
+
+# have to install man pages manually. Unfortunately they're preformatted,
+# and look like crap with Slackware's man command, so I wrote this little
+# script to clean them up.
+
+# If ever needed again, the commands to clean up the man pages:
+# tar xvf adl.tar.Z
+# mkdir -p man
+# for i in adl/man/*.6; do sh fixman.sh $i > man/`basename $i`; done
+# rm -rf adl
+
+# This script needs polyglotman installed, and I don't want to list that
+# in REQUIRES, so I include the results of fixman.sh instead of running
+# it in the SlackBuild.
+
+# in English: each file is converted to perl POD format using rman, then
+# rman's output is cleaned up and piped to pod2man, which produces roff
+# man page source on stdout.
+
+VERSION=${VERSION:-19930322}
+
+[ -z "$1" ] && echo "$0 requires a filename argument" 2>&1 && exit 1
+
+name=$( echo $1 | sed 's,\..*,,' | tr a-z A-Z )
+rman -f pod $1 | \
+ perl -ple 's,\s+, ,g; s,^\s*,,; s,^(=head1)\s+(.*)$,$1." ".uc($2),e' |
+ pod2man -s6 -r$VERSION --stderr -n$name -cSlackBuilds.org
diff --git a/games/adl/man/adlcomp.6 b/games/adl/man/adlcomp.6
new file mode 100644
index 0000000000000..c8dd398aab8b9
--- /dev/null
+++ b/games/adl/man/adlcomp.6
@@ -0,0 +1,249 @@
+.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{
+. if \nF \{
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "A/ADL/MAN/ADLCOMP 6"
+.TH A/ADL/MAN/ADLCOMP 6 "2015-02-16" "19930322" "SlackBuilds.org"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+adlcomp \- compile an ADL program
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+adlcomp file [ \-o outfile ] [ \-idir ] [ \-tdir ] [ \-d ] [\-w ]
+[ \-en ] [ \-gn ] [ \-mn ] [ \-nn ] [ \-pn ] [ \-rn ] [ \-sn ] [
+\&\-vn ]
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+Adlcomp reads an \s-1ADL\s0 program from file and produces an
+output file which contains the tables and interpretive code
+necessary to play the game described by the program (using
+\&\fIadlrun\fR\|(6)). Error messages are produced on the standard
+error output, and a data summary is produced on the standard
+output. The following options are available:
+.IP "\-o outfile" 12
+.IX Item "-o outfile"
+The result of the compilation is saved in
+outfile. The result is saved in adlcomp.out in
+the current directory if this option is not
+specified.
+.IP "\-idir" 12
+.IX Item "-idir"
+\&\s-1INCLUDE\s0 files are searched for first in the
+current directory, then in directories specified
+by \-i dir options. Up to 4 \-i options may be
+present.
+.IP "\-tdir" 12
+.IX Item "-tdir"
+Adlcomp writes two temporary files in the
+process of compilation. This option tells
+adlcomp which directory (or disk, on those
+systems which allow it) to use for these
+temporary files. The default is \*(L"/tmp\*(R" on UN*X
+operating systems, \*(L"\s-1RAM:\*(R"\s0 on the Amiga, and the
+current directory on MS-DOS.
+.IP "\-d" 12
+.IX Item "-d"
+Puts adlcomp into debugging mode. All symbols
+are written out to outfile, and additional code
+is produced which keeps track of the file name
+and line number. \-d implies \-w.
+.IP "\-w" 12
+.IX Item "-w"
+Suppress the printing of warning messages.
+.IP "\-en" 12
+.IX Item "-en"
+Sets the maximum number of errors to n. The
+default is \-1 (no maximum). If the number of
+errors encountered is greater than n, adlcomp
+aborts.
+.IP "\-gn" 12
+.IX Item "-gn"
+Sets the maximum number of globals to n. The
+default value is 64.
+.IP "\-mn" 12
+.IX Item "-mn"
+Sets the maximum number of messages (strings
+enclosed in double quotes) to n. The default
+value is 1024.
+.IP "\-nn" 12
+.IX Item "-nn"
+Sets the maximum number of NOUNs to n. The
+default value is 256.
+.IP "\-pn" 12
+.IX Item "-pn"
+Sets the maximum number of preposition synonyms
+to n. The default value is 8.
+.IP "\-rn" 12
+.IX Item "-rn"
+Sets the maximum number of routines to n. The
+default value is 512.
+.IP "\-sn" 12
+.IX Item "-sn"
+Sets the maximum number of verb phrases to n.
+The default value is 8.
+.IP "\-vn" 12
+.IX Item "-vn"
+Sets the maximum number of verbs to n. The
+default value is 128.
+.SH "CONFORMANCE"
+.IX Header "CONFORMANCE"
+This version of adlcomp has a 255\-character limit on
+compile-time strings. It implements Pascal-like \s-1LOCAL\s0
+variables.
+.SH "EXAMPLE"
+.IX Header "EXAMPLE"
+adlcomp aard.adl \-o aard \-w
+.SH "FILES"
+.IX Header "FILES"
+adlsval.tmp
+String paging file
+.PP
+adlcode.tmp
+Instruction paging file
+.PP
+*.adl
+\&\s-1ADL\s0 source files
+.SH "WARNING"
+.IX Header "WARNING"
+On Amiga computers, the stack should be set to at least
+10000 before running adlcomp.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fIadlrun\fR\|(6)
+\&\fIadldebug\fR\|(6)
+Brengle and Cunniff: The \s-1ADL\s0 Programmer's Reference Manual
+Adler, Kostanick, Stein and Urban: A Brief Introduction to
+\&\s-1UCLA\s0 Dungeon Definition Language
diff --git a/games/adl/man/adldebug.6 b/games/adl/man/adldebug.6
new file mode 100644
index 0000000000000..0a783759af362
--- /dev/null
+++ b/games/adl/man/adldebug.6
@@ -0,0 +1,163 @@
+.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{
+. if \nF \{
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "A/ADL/MAN/ADLDEBUG 6"
+.TH A/ADL/MAN/ADLDEBUG 6 "2015-02-16" "19930322" "SlackBuilds.org"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+adldebug \- print information about an ADL game
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+adldebug infile
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+Adldebug reads a datafile, infile, which contains tables and
+routines necessary to play a generalized \fIAdventure\fR\|(6)\-like
+game. Using adldebug, one may do such things as examine the
+contents of objects, view the code genereated by \fIadlcomp\fR\|(6),
+or print out the various messages found in the source. For
+a full list of commands, type \*(L"?\*(R" after receiving the
+prompt. To terminate adldebug, either type \*(L"q\*(R" or the \s-1EOF\s0
+character.
+.SH "EXAMPLE"
+.IX Header "EXAMPLE"
+adldebug aard
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fIadlcomp\fR\|(6)
+\&\fIadlrun\fR\|(6)
+Brengle and Cunniff: The \s-1ADL\s0 Programmer's Reference Manual
diff --git a/games/adl/man/adlrun.6 b/games/adl/man/adlrun.6
new file mode 100644
index 0000000000000..d577ba479a85c
--- /dev/null
+++ b/games/adl/man/adlrun.6
@@ -0,0 +1,189 @@
+.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{
+. if \nF \{
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "A/ADL/MAN/ADLRUN 6"
+.TH A/ADL/MAN/ADLRUN 6 "2015-02-16" "19930322" "SlackBuilds.org"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+adlrun \- run an ADL game
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+adlrun [ infile ] [ \-d ] [ \-h ] [ \-r savefile ]
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+Adlrun reads a datafile, infile, (or adlcomp.out, if infile
+is not specified) which contains tables and routines
+necessary to play a generalized \fIAdventure\fR\|(6)\-like game. The
+game is terminated either by a quit command recognized by
+the \s-1ADL\s0 program, or by an end-of-file or interrupt. The
+following options are recognized:
+.IP "\-d" 14
+.IX Item "-d"
+Turns on instruction tracing during execution
+(a rather messy process).
+.IP "\-h" 14
+.IX Item "-h"
+Prints out header lines of the form \*(L"Room name
+Score: Moves:\*(R" if the \s-1ADL\s0 program allows for
+it.
+.IP "\-r savefile" 14
+.IX Item "-r savefile"
+Restores the state of the game to the state
+previously saved in savefile. Savefile must
+be a valid \s-1ADL\s0 save file.
+.SH "ENVIRONMENT"
+.IX Header "ENVIRONMENT"
+\&\s-1TERM\s0 On versions of adlrun which use termcap, the
+environment variable \s-1TERM\s0 should contain the name of
+the terminal type desired.
+.IP "\s-1LINES\s0" 5
+.IX Item "LINES"
+\&\s-1LINES\s0 should be set to the number of lines of text on
+the screen.
+.SH "CONFORMANCE"
+.IX Header "CONFORMANCE"
+The ($spec 6 prog arg1 ...) (execute a program) function is
+only implemented on computers running a version of the UN*X
+operating system.
+.SH "EXAMPLE"
+.IX Header "EXAMPLE"
+adlrun \-h aard
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fIadlcomp\fR\|(6)
+\&\fIadldebug\fR\|(6)
+Brengle and Cunniff: The \s-1ADL\s0 Programmer's Reference Manual
diff --git a/games/adl/slack-desc b/games/adl/slack-desc
new file mode 100644
index 0000000000000..8732d129f9747
--- /dev/null
+++ b/games/adl/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------------------------------------------------------|
+adl: adl (compiler and runtime for adventure definition language)
+adl:
+adl: ADL stands for Adventure Definition Language. It is a superset, with
+adl: greatly enhanced capabilities, of an older language named DDL. DDL was
+adl: originally written in 1981 by Michael Urban, Chris Kostanick, Michael
+adl: Stein, Bruce Adler, and Warren Usui, all of the UCLA Computer Club.
+adl:
+adl: Includes compiler (adlcomp), runtime (adlrun), debugger (adldebug),
+adl: and two sample games (aard and mpu). Documentation and sample code
+adl: is installed in /usr/doc/adl-$VERSION.
+adl: