summaryrefslogtreecommitdiff
path: root/system
diff options
context:
space:
mode:
Diffstat (limited to 'system')
-rw-r--r--system/atari800/README13
-rw-r--r--system/atari800/README_SBo.txt61
-rw-r--r--system/atari800/README_rom_images.txt37
-rw-r--r--system/atari800/atari800.SlackBuild121
-rw-r--r--system/atari800/atari800.desktop10
-rw-r--r--system/atari800/atari800.info8
-rw-r--r--system/atari800/doinst.sh30
-rw-r--r--system/atari800/mime/atari800.xml107
-rw-r--r--system/atari800/mime/atari800_desktop_mime1
-rw-r--r--system/atari800/mime/x-atari-8bit-cartridge-image.desktop8
-rw-r--r--system/atari800/mime/x-atari-8bit-cassette-image.desktop8
-rw-r--r--system/atari800/mime/x-atari-8bit-disk-image.desktop8
-rw-r--r--system/atari800/mime/x-atari-8bit-executable.desktop8
-rw-r--r--system/atari800/mime/x-atari-8bit-raw-disk-image.desktop8
-rw-r--r--system/atari800/mime/x-atari-8bit-saved-basic.desktop8
-rw-r--r--system/atari800/mime/x-atari800-saved-state.desktop8
-rw-r--r--system/atari800/pixmaps/atari-a8s.pngbin0 -> 935 bytes
-rw-r--r--system/atari800/pixmaps/atari-atr.pngbin0 -> 813 bytes
-rw-r--r--system/atari800/pixmaps/atari-bas.pngbin0 -> 939 bytes
-rw-r--r--system/atari800/pixmaps/atari-cart.pngbin0 -> 959 bytes
-rw-r--r--system/atari800/pixmaps/atari-cas.pngbin0 -> 890 bytes
-rw-r--r--system/atari800/pixmaps/atari-xex.pngbin0 -> 799 bytes
-rw-r--r--system/atari800/pixmaps/atari-xfd.pngbin0 -> 809 bytes
-rw-r--r--system/atari800/pixmaps/atarixe.pngbin0 -> 455 bytes
-rw-r--r--system/atari800/rc.atari800_binfmt_misc.new178
-rw-r--r--system/atari800/slack-desc19
26 files changed, 641 insertions, 0 deletions
diff --git a/system/atari800/README b/system/atari800/README
new file mode 100644
index 0000000000..92662c7b31
--- /dev/null
+++ b/system/atari800/README
@@ -0,0 +1,13 @@
+Atari800 is an Atari 800, 800XL, 130XE and 5200 emulator for Unix, Amiga,
+MS-DOS, Atari TT/Falcon, SDL and WinCE. Our main objective is to create a
+freely distributable portable emulator (i.e. with source code available).
+
+This build of atari800 uses SDL for graphics/sound, and has no other
+dependencies.
+
+To use the emulator, you will need a set of Atari ROM images. Install
+the atari800_roms package to get the official (proprietary) ROM images,
+or the atari800_os++ package to use an Open Source replacement ROM,
+with some loss of compatibility/functionality.
+
+See README_SBo.txt for more information.
diff --git a/system/atari800/README_SBo.txt b/system/atari800/README_SBo.txt
new file mode 100644
index 0000000000..176cdf9d38
--- /dev/null
+++ b/system/atari800/README_SBo.txt
@@ -0,0 +1,61 @@
+Atari800 is an Atari 800, 800XL, 130XE and 5200 emulator for Unix, Amiga,
+MS-DOS, Atari TT/Falcon, SDL and WinCE. Our main objective is to create a
+freely distributable portable emulator (i.e. with source code available).
+
+This build of atari800 uses SDL for graphics/sound, and has no other
+dependencies.
+
+To use the emulator, you will need a set of Atari ROM images. Install
+the atari800_roms package to get the official (proprietary) ROM images,
+or the atari800_os++ package to use an Open Source replacement ROM,
+with some loss of compatibility/functionality.
+
+(Actually, a very small handful of cartridge games will run with no OS
+ROM image at all: Star Raiders, Montezuma's Revenge, and Atari Basketball
+all work fine. Most other carts won't work, and no disks or tapes will).
+
+This package registers new MIME types for Atari-related files in the
+shared-mime-info database. After installation, it should be possible to
+run Atari machine language executables (XEX files), Atari BASIC programs,
+and disk/cartridge/cassette images by double-clicking them in Konqueror
+or on the KDE desktop (or GNOME, if you've installed that). If you
+don't want the package to include the MIME types and auto-registration,
+set MIME_TYPES=no in the environment.
+
+This package, by default, enables serial port emulation via a TCP port.
+When an Atari program that uses the R: (serial port) device is run, the
+emulator listens for connections on a TCP port, and the Atari program
+"sees" data received from the port as though it were coming from the
+Atari serial port. Although there are no known security issues with
+this, the security-conscious types may wish to disable this behaviour.
+To disable, set RIO_DEVICE=no in the environment.
+
+Optionally, the various Atari file formats can be registered with the
+Linux kernel's binfmt_misc mechanism, so it's possible to run Atari
+native executables from the shell, if their executable bits are turned
+on (e.g. with "chmod +x"). To enable this, add lines like these to your
+/etc/rc.d/rc.local:
+
+if [ -x /etc/rc.d/rc.atari8bit_binfmt_misc ]; then
+ /etc/rc.d/rc.atari8bit_binfmt_misc start
+fi
+
+...then "chmod +x /etc/rc.d/rc.atari8bit_binfmt_misc" to
+enable on the next boot. If you don't want to reboot, run
+"/etc/rc.d/rc.atari8bit_binfmt_misc start".
+
+If you're using a custom kernel, make sure binfmt_misc is compiled in,
+either statically or as a module. The Slackware 12.x -generic kernels
+ship with binfmt_misc as a module, which will be loaded by the rc script
+if necessary.
+
+Note that the neither the KDE desktop integration nor the binfmt_misc
+script will handle raw ROM cartridge images. This is because there's no
+"signature" that can be used to auto-detect them, and filename globbing
+is a bad idea since many emulators use raw dumps with .rom as the default
+filename extension. Also, the current version of atari800 requires an
+extra -cart argument for raw ROM images. To convert a raw ROM to a CART
+image that can be used with KDE or binfmt_misc, load it with "atari800
+-cart filename.rom", choose the cartridge type, then press F1 to enter
+atari800's menu, select "Cartridge Management", then "Create cartridge
+from ROM image". Save the file with .car or .cart as the extension.
diff --git a/system/atari800/README_rom_images.txt b/system/atari800/README_rom_images.txt
new file mode 100644
index 0000000000..cd6da843f4
--- /dev/null
+++ b/system/atari800/README_rom_images.txt
@@ -0,0 +1,37 @@
+
+The Atari 8-bit computer's operating system is stored on a ROM chip inside
+the Atari. Without the OS, the Atari isn't capable of doing anything
+useful. Also, many Atari programs are written in the Atari BASIC language,
+which was an optional ROM cartridge on the 400/800 and 1200XL, but was
+included as a built-in ROM in the 600XL, 800XL, and all XE machines.
+
+To use the Atari800 emulator, you'll need suitable ROM images/dumps. You
+can either use the original OS and BASIC from Atari, or an open source
+OS replacement called OS++.
+
+The original ROMs of course provide the best compatibility with software
+for the Atari, but they are still copyrighted by Atari. In practice,
+this doesn't cause a problem: the ROM images have been widely available
+on the 'net for many years, and there has never been any legal action
+taken regarding their use.
+
+If you'd prefer to use Open Source code, there is a replacement ROM called
+OS++, written from scratch by Thomas Richter (author of the Atari++
+emulator) and released under the TPL (a variant of the Mozilla Public
+License). Be aware that OS++ isn't 100% compatible with all software for
+the Atari: it contains no support for the BASIC language or floating point
+math. However, if your main purpose is to play games, you'll find that
+(almost) all game cartridge ROMs work perfectly well with OS++. Many boot
+disk games and XEX (binary load file) games work as well. OS++ runs on
+XL/XE machines only, so you won't be able to emulate the original 400/800.
+
+To use the original proprietary Atari ROMs, install the atari800_roms
+package from slackbuilds.org
+
+To use OS++ (a version slightly modified for use with Atari800 rather
+than Atari++), install the atari800_os++ package instead.
+
+If you like, you can install both packages and choose between them at
+runtime by altering the symlink at /usr/share/atari800/roms/atarixl.rom, by
+running atari800 with the -xlxe_rom switch, or by editing the config file
+(~/.atari800.cfg, created the first time you run the emulator).
diff --git a/system/atari800/atari800.SlackBuild b/system/atari800/atari800.SlackBuild
new file mode 100644
index 0000000000..0ef81eebc0
--- /dev/null
+++ b/system/atari800/atari800.SlackBuild
@@ -0,0 +1,121 @@
+#!/bin/sh
+
+# Slackware build script for atari800
+
+# Written by B. Watson (yalhcru@gmail.com)
+# Modified by the SlackBuilds.org project.
+
+PRGNAM=atari800
+VERSION=${VERSION:-2.1.0}
+ARCH=${ARCH:-i486}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+# Do you want the emulated serial port to listen on a TCP port?
+# This is enabled by default, build with RIO_DEVICE=no to disable.
+RIO_DEVICE=${RIO_DEVICE:-yes}
+
+# Do you want the package to automatically associate itself with
+# the various Atari 8-bit file formats (disk/cart/tape images)?
+# Build with MIME_TYPES=no to disable
+MIME_TYPES=${MIME_TYPES:-yes}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+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 .
+chmod -R a-s,u+w,go+r-w .
+
+if [ "$RIO_DEVICE" = "yes" ]; then
+ RIO="--enable-riodevice";
+else
+ RIO="--disable-riodevice";
+fi
+
+cd src
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+ ./configure \
+ --target=sdl \
+ --prefix=/usr \
+ --enable-monitorprofile \
+ --enable-seriosound \
+ --enable-clipsound \
+ --enable-readline \
+ $RIO \
+ --enable-monitorbreakpoints \
+ --enable-monitortrace
+
+make
+
+# The Makefile ignores --datarootdir, --mandir, --docdir, so force it:
+make install DESTDIR=$PKG \
+ DOC_DIR=/usr/doc/$PRGNAM-$VERSION MAN_DIR=/usr/man/man1
+
+chmod 755 $PKG/usr/bin/*
+strip $PKG/usr/bin/$PRGNAM
+
+gzip -9 $PKG/usr/man/man1/$PRGNAM.1
+
+# Package-specific docs
+for i in README_rom_images.txt $PRGNAM.SlackBuild; do
+ cat $CWD/$i > $PKG/usr/doc/$PRGNAM-$VERSION/$i
+done
+
+cat $CWD/README_SBo.txt > $PKG/usr/doc/$PRGNAM-$VERSION/README_SBo.txt
+
+# Sample code and contrib stuff, throw it in the doc dir
+cp -r ../act ../util $PKG/usr/doc/$PRGNAM-$VERSION
+
+# Link a copy of the ROM doc to the ROM dir (we really want them to read this)
+mkdir -p $PKG/usr/share/$PRGNAM
+( cd $PKG/usr/share/$PRGNAM && \
+ ln -s ../../doc/$PRGNAM-$VERSION/README_rom_images.txt . )
+
+mkdir -p $PKG/usr/share/{applications,pixmaps}
+cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
+cp $CWD/pixmaps/* $PKG/usr/share/pixmaps/
+
+# All these .desktop, XML, and icon files are extras, not part of the
+# atari800 release. They've been submitted to the atari800 mailing list,
+# but have not yet been imported into the tree.
+if [ "$MIME_TYPES" = "yes" ]; then
+
+ mkdir -p $PKG/usr/share/{mime/packages,mimelnk/application}
+ cat $CWD/mime/$PRGNAM.xml > $PKG/usr/share/mime/packages/$PRGNAM.xml
+ cp $CWD/mime/*.desktop $PKG/usr/share/mimelnk/application/
+
+ # Add the MimeType stuff to the .desktop file
+ cat $CWD/mime/atari800_desktop_mime >> $PKG/usr/share/applications/$PRGNAM.desktop
+
+fi
+
+# Optional binfmt_misc support script (admin must enable by hand)
+mkdir -p $PKG/etc/rc.d
+cat $CWD/rc.atari800_binfmt_misc.new \
+ > $PKG/etc/rc.d/rc.atari800_binfmt_misc.new
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c y $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
diff --git a/system/atari800/atari800.desktop b/system/atari800/atari800.desktop
new file mode 100644
index 0000000000..7fdd780cb3
--- /dev/null
+++ b/system/atari800/atari800.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Name=Atari800 Emulator
+GenericName=Atari 8-Bit Emulator
+Type=Application
+Exec=atari800
+Icon=atarixe
+Terminal=false
+StartupNotify=false
+Categories=Emulator;System;
diff --git a/system/atari800/atari800.info b/system/atari800/atari800.info
new file mode 100644
index 0000000000..38f15d6c04
--- /dev/null
+++ b/system/atari800/atari800.info
@@ -0,0 +1,8 @@
+PRGNAM="atari800"
+VERSION="2.1.0"
+HOMEPAGE="http://atari800.sourceforge.net/"
+DOWNLOAD="http://downloads.sourceforge.net/atari800/atari800-2.1.0.tar.gz"
+MD5SUM="53fdbaad6cb7752fb35895c6375ac9a7"
+MAINTAINER="B. Watson"
+EMAIL="yalhcru@gmail.com"
+APPROVED="dsomero"
diff --git a/system/atari800/doinst.sh b/system/atari800/doinst.sh
new file mode 100644
index 0000000000..7a769bfbdd
--- /dev/null
+++ b/system/atari800/doinst.sh
@@ -0,0 +1,30 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
+ # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+# Keep same perms on rc.atari800_binfmt_misc.new:
+if [ -e etc/rc.d/rc.atari800_binfmt_misc ]; then
+ cp -a etc/rc.d/rc.atari800_binfmt_misc etc/rc.d/rc.atari800_binfmt_misc.new.incoming
+ cat etc/rc.d/rc.atari800_binfmt_misc.new > etc/rc.d/rc.atari800_binfmt_misc.new.incoming
+ mv etc/rc.d/rc.atari800_binfmt_misc.new.incoming etc/rc.d/rc.atari800_binfmt_misc.new
+fi
+
+config etc/rc.d/rc.atari800_binfmt_misc.new
+
+if [ -x /usr/bin/update-desktop-database ]; then
+ /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
+fi
+
+if [ -x /usr/bin/update-mime-database ]; then
+ /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1
+fi
+
diff --git a/system/atari800/mime/atari800.xml b/system/atari800/mime/atari800.xml
new file mode 100644
index 0000000000..4451e70287
--- /dev/null
+++ b/system/atari800/mime/atari800.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 20080823 bkw: is all this leading cruft really necessary? -->
+<!DOCTYPE mime-info [
+ <!ELEMENT mime-info (mime-type)+>
+ <!ATTLIST mime-info xmlns CDATA #FIXED "http://www.freedesktop.org/standards/shared-mime-info">
+
+ <!ELEMENT mime-type (comment|acronym|expanded-acronym|glob|magic|root-XML|alias|sub-class-of)*>
+ <!ATTLIST mime-type type CDATA #REQUIRED>
+
+ <!-- a comment describing a document with the respective MIME type. Example: "WMV video" -->
+ <!ELEMENT comment (#PCDATA)>
+ <!ATTLIST comment xml:lang CDATA #IMPLIED>
+
+ <!-- a comment describing a the respective unexpanded MIME type acronym. Example: "WMV" -->
+ <!ELEMENT acronym (#PCDATA)>
+ <!ATTLIST acronym xml:lang CDATA #IMPLIED>
+
+ <!-- a comment describing a the respective unexpanded MIME type acronym. Example: "Windows Media Video" -->
+ <!ELEMENT expanded-acronym (#PCDATA)>
+ <!ATTLIST expanded-acronym xml:lang CDATA #IMPLIED>
+
+ <!ELEMENT glob EMPTY>
+ <!ATTLIST glob pattern CDATA #REQUIRED>
+
+ <!ELEMENT magic (match)+>
+ <!ATTLIST magic priority CDATA #IMPLIED>
+
+ <!ELEMENT match (match)*>
+ <!ATTLIST match offset CDATA #REQUIRED>
+ <!ATTLIST match type (string|big16|big32|little16|little32|host16|host32|byte) #REQUIRED>
+ <!ATTLIST match value CDATA #REQUIRED>
+ <!ATTLIST match mask CDATA #IMPLIED>
+
+ <!ELEMENT root-XML EMPTY>
+ <!ATTLIST root-XML
+ namespaceURI CDATA #REQUIRED
+ localName CDATA #REQUIRED>
+
+ <!ELEMENT alias EMPTY>
+ <!ATTLIST alias
+ type CDATA #REQUIRED>
+
+ <!ELEMENT sub-class-of EMPTY>
+ <!ATTLIST sub-class-of
+ type CDATA #REQUIRED>
+]>
+<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
+ <mime-type type="application/x-atari-8bit-executable">
+ <comment>Atari 8-Bit Executable</comment>
+ <acronym>XEX</acronym>
+ <expanded-acronym>XE eXecutable</expanded-acronym>
+ <magic priority="30">
+ <match value="0xffff" type="big16" offset="0"/>
+ </magic>
+ <glob pattern="*.xex"/>
+ </mime-type>
+ <mime-type type="application/x-atari-8bit-saved-basic">
+ <comment>Atari 8-Bit BASIC Program</comment>
+ <acronym>BAS</acronym>
+ <expanded-acronym>BASic</expanded-acronym>
+ <magic priority="50">
+ <match value="0x0000" type="big16" offset="0"/>
+ </magic>
+ <glob pattern="*.bas"/>
+ </mime-type>
+ <mime-type type="application/x-atari-8bit-cartridge-image">
+ <comment>Atari 8-Bit Cartridge Image</comment>
+ <acronym>CART</acronym>
+ <expanded-acronym>CARTridge</expanded-acronym>
+ <magic priority="50">
+ <match value="CART" type="string" offset="0"/>
+ </magic>
+ <glob pattern="*.cart"/>
+ <glob pattern="*.car"/>
+ </mime-type>
+ <mime-type type="application/x-atari-8bit-disk-image">
+ <comment>Atari 8-Bit Disk Image</comment>
+ <acronym>ATR</acronym>
+ <expanded-acronym>ATaRi</expanded-acronym>
+ <magic priority="50">
+ <match value="0x9602" type="big16" offset="0"/>
+ </magic>
+ <glob pattern="*.atr"/>
+ </mime-type>
+ <mime-type type="application/x-atari-8bit-raw-disk-image">
+ <comment>Atari 8-Bit Disk Image (Raw)</comment>
+ <acronym>XFD</acronym>
+ <expanded-acronym>XFormer Disk</expanded-acronym>
+ <glob pattern="*.xfd"/>
+ </mime-type>
+ <mime-type type="application/x-atari-8bit-cassette-image">
+ <comment>Atari 8-Bit Cassette Image</comment>
+ <acronym>CAS</acronym>
+ <expanded-acronym>CASsette</expanded-acronym>
+ <magic priority="50">
+ <match value="FUJI" type="string" offset="0"/>
+ </magic>
+ <glob pattern="*.cas"/>
+ </mime-type>
+ <mime-type type="application/x-atari800-saved-state">
+ <sub-class-of type="application/x-gzip"/>
+ <comment>Atari800 Emulator Saved State</comment>
+ <acronym>A8S</acronym>
+ <expanded-acronym>Atari800 State</expanded-acronym>
+ <glob pattern="*.a8s"/>
+ </mime-type>
+</mime-info>
diff --git a/system/atari800/mime/atari800_desktop_mime b/system/atari800/mime/atari800_desktop_mime
new file mode 100644
index 0000000000..a4d5cbd956
--- /dev/null
+++ b/system/atari800/mime/atari800_desktop_mime
@@ -0,0 +1 @@
+MimeType=application/x-atari-8bit-executable;application/x-atari-8bit-saved-basic;application/x-atari-8bit-cartridge-image;application/x-atari-8bit-disk-image;application/x-atari-8bit-raw-disk-image;application/x-atari-8bit-cassette-image;application/x-atari800-saved-state;
diff --git a/system/atari800/mime/x-atari-8bit-cartridge-image.desktop b/system/atari800/mime/x-atari-8bit-cartridge-image.desktop
new file mode 100644
index 0000000000..0db832bb27
--- /dev/null
+++ b/system/atari800/mime/x-atari-8bit-cartridge-image.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=MimeType
+MimeType=application/x-atari-8bit-cartridge-image
+Icon=atari-cart
+Patterns=*.car;*.CAR;*.cart;*.CART;
+#X-KDE-PatternsAccuracy=80
+Comment=Atari 8-bit Cartridge Image
diff --git a/system/atari800/mime/x-atari-8bit-cassette-image.desktop b/system/atari800/mime/x-atari-8bit-cassette-image.desktop
new file mode 100644
index 0000000000..e67a95cffa
--- /dev/null
+++ b/system/atari800/mime/x-atari-8bit-cassette-image.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=MimeType
+MimeType=application/x-atari-8bit-cassette-image
+Icon=atari-cas
+Patterns=*.cas;*.CAS;
+#X-KDE-PatternsAccuracy=80
+Comment=Atari 8-bit Cassette Image
diff --git a/system/atari800/mime/x-atari-8bit-disk-image.desktop b/system/atari800/mime/x-atari-8bit-disk-image.desktop
new file mode 100644
index 0000000000..63b06b51aa
--- /dev/null
+++ b/system/atari800/mime/x-atari-8bit-disk-image.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=MimeType
+MimeType=application/x-atari-8bit-disk-image
+Icon=atari-atr
+Patterns=*.atr;*.ATR;
+# X-KDE-PatternsAccuracy=80
+Comment=Atari 8-bit Disk Image
diff --git a/system/atari800/mime/x-atari-8bit-executable.desktop b/system/atari800/mime/x-atari-8bit-executable.desktop
new file mode 100644
index 0000000000..18f0a8708c
--- /dev/null
+++ b/system/atari800/mime/x-atari-8bit-executable.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=MimeType
+MimeType=application/x-atari-8bit-executable
+Icon=atari-xex
+Patterns=*.xex;*.XEX;
+#X-KDE-PatternsAccuracy=95
+Comment=Atari 8-bit Executable
diff --git a/system/atari800/mime/x-atari-8bit-raw-disk-image.desktop b/system/atari800/mime/x-atari-8bit-raw-disk-image.desktop
new file mode 100644
index 0000000000..8d6cb15376
--- /dev/null
+++ b/system/atari800/mime/x-atari-8bit-raw-disk-image.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=MimeType
+MimeType=application/x-atari-8bit-raw-disk-image
+Icon=atari-xfd
+Patterns=*.xfd;*.XFD;
+#X-KDE-PatternsAccuracy=80
+Comment=Atari 8-bit Raw Disk Image
diff --git a/system/atari800/mime/x-atari-8bit-saved-basic.desktop b/system/atari800/mime/x-atari-8bit-saved-basic.desktop
new file mode 100644
index 0000000000..aa5f80e6ce
--- /dev/null
+++ b/system/atari800/mime/x-atari-8bit-saved-basic.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=MimeType
+MimeType=application/x-atari-8bit-saved-basic
+Icon=atari-bas
+Patterns=*.bas;*.BAS;
+#X-KDE-PatternsAccuracy=80
+Comment=Atari 8-bit BASIC Program
diff --git a/system/atari800/mime/x-atari800-saved-state.desktop b/system/atari800/mime/x-atari800-saved-state.desktop
new file mode 100644
index 0000000000..b8dc739fbf
--- /dev/null
+++ b/system/atari800/mime/x-atari800-saved-state.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=MimeType
+MimeType=application/x-atari800-saved-state
+Icon=atari-a8s
+Patterns=*.a8s;*.A8S;
+#X-KDE-PatternsAccuracy=80
+Comment=Atari800 Emulator Saved State
diff --git a/system/atari800/pixmaps/atari-a8s.png b/system/atari800/pixmaps/atari-a8s.png
new file mode 100644
index 0000000000..89f212dad2
--- /dev/null
+++ b/system/atari800/pixmaps/atari-a8s.png
Binary files differ
diff --git a/system/atari800/pixmaps/atari-atr.png b/system/atari800/pixmaps/atari-atr.png
new file mode 100644
index 0000000000..2772d33ac9
--- /dev/null
+++ b/system/atari800/pixmaps/atari-atr.png
Binary files differ
diff --git a/system/atari800/pixmaps/atari-bas.png b/system/atari800/pixmaps/atari-bas.png
new file mode 100644
index 0000000000..7b986e05a7
--- /dev/null
+++ b/system/atari800/pixmaps/atari-bas.png
Binary files differ
diff --git a/system/atari800/pixmaps/atari-cart.png b/system/atari800/pixmaps/atari-cart.png
new file mode 100644
index 0000000000..4ef9d57414
--- /dev/null
+++ b/system/atari800/pixmaps/atari-cart.png
Binary files differ
diff --git a/system/atari800/pixmaps/atari-cas.png b/system/atari800/pixmaps/atari-cas.png
new file mode 100644
index 0000000000..0118656885
--- /dev/null
+++ b/system/atari800/pixmaps/atari-cas.png
Binary files differ
diff --git a/system/atari800/pixmaps/atari-xex.png b/system/atari800/pixmaps/atari-xex.png
new file mode 100644
index 0000000000..cedb30cf39
--- /dev/null
+++ b/system/atari800/pixmaps/atari-xex.png
Binary files differ
diff --git a/system/atari800/pixmaps/atari-xfd.png b/system/atari800/pixmaps/atari-xfd.png
new file mode 100644
index 0000000000..08b59e588e
--- /dev/null
+++ b/system/atari800/pixmaps/atari-xfd.png
Binary files differ
diff --git a/system/atari800/pixmaps/atarixe.png b/system/atari800/pixmaps/atarixe.png
new file mode 100644
index 0000000000..19d0efe7c8
--- /dev/null
+++ b/system/atari800/pixmaps/atarixe.png
Binary files differ
diff --git a/system/atari800/rc.atari800_binfmt_misc.new b/system/atari800/rc.atari800_binfmt_misc.new
new file mode 100644
index 0000000000..65bc5f20f2
--- /dev/null
+++ b/system/atari800/rc.atari800_binfmt_misc.new
@@ -0,0 +1,178 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: atari800_binfmt_misc
+# Required-Start:
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop:
+# Short-Description: Register Atari 8-bit file formats with binfmt_misc
+### END INIT INFO
+
+# atari800_binfmt_misc: register Atari 8-bit file formats with binfmt_misc.
+# Allows direct execution of Atari executables, disk images, boot cassette
+# images, BASIC programs, and cartridge images, via the atari800 emulator.
+
+PROCDIR=/proc/sys/fs/binfmt_misc
+EMUDIRS="/usr/local/bin /usr/bin /bin"
+
+### Functions. This script doesn't depend on any external function library.
+
+die() {
+ echo $1 1>&2
+ exit 1
+}
+
+usage() {
+ cat <<EOF
+Usage: $0 stop | start | restart
+
+This service registers Atari 8-bit file types with the kernel's binfmt_misc
+driver, to allow users to directly execute Atari software (disk images,
+executables, BASIC programs, boot cassette images, and cartridge images)
+as though they were native Linux executables.
+
+To run Atari software, the atari800 emulator is required. Normally, atari800
+requires X to be running (it may be possible to compile it for console use).
+Get atari800 from: http://atari800.sourceforge.net
+
+If you get a "Can't find atari800 emulator" error, either install atari800
+in one of these directories: $EMUDIRS
+
+...or set ATARI800_BIN in the environment to the full path of the emulator
+binary: export ATARI800_BIN=/opt/atari800/bin/atari800
+EOF
+
+ exit 1
+}
+
+find_atari800() {
+ if [ -z "$ATARI800_BIN" ]; then
+ ATARI800_BIN=none
+
+ for path in $EMUDIRS; do
+ if [ -x $path/atari800 ]; then
+ ATARI800_BIN=$path/atari800
+ fi
+ done
+
+ if [ "$ATARI800_BIN" = "none" ]; then
+ die "Can't find atari800 emulator in $EMUDIRS"
+ fi
+ fi
+}
+
+init_binfmt_misc() {
+ # Load/init binfmt_misc, if needed.
+ /sbin/modprobe binfmt_misc 2>/dev/null
+ mount -t binfmt_misc none $PROCDIR 2>/dev/null
+}
+
+check_binfmt_misc() {
+ # sanity check
+ cd $PROCDIR && [ -f status ]
+ if [ "$?" != "0" ]; then
+ die "binfmt_misc not available in kernel"
+ fi
+}
+
+unregister_filetypes() {
+ local type
+ cd $PROCDIR || die "$PROCDIR does not exist"
+
+ # Unregister filetypes, if already registered
+ # (not an error if already unregistered)
+ for type in \
+ atari8_xex atari8_basic atari8_atr \
+ atari8_xfd atari8_Xfd atari8_XFD \
+ atari8_cas atari8_cart
+ do
+ [ -f $type ] && echo -1 > $type
+ done
+}
+
+register_filetypes() {
+ cd $PROCDIR || die "$PROCDIR does not exist"
+
+ # Register filetypes
+ # :name:type:offset:magic:mask:interpreter:flags
+ # see /usr/src/linux/Documentation/binfmt_misc.txt or
+ # http://www.tat.physik.uni-tuebingen.de/~rguenth/linux/binfmt_misc.html
+ # for explanation of this.
+ echo ':atari8_xex:M::\xff\xff::'$ATARI800_BIN':' > register
+ echo ':atari8_basic:M::\x00\x00::'$ATARI800_BIN':' > register
+ echo ':atari8_atr:M::\x96\x02::'$ATARI800_BIN':' > register
+ echo ':atari8_xfd:E::xfd::'$ATARI800_BIN':' > register
+ echo ':atari8_Xfd:E::Xfd::'$ATARI800_BIN':' > register
+ echo ':atari8_XFD:E::XFD::'$ATARI800_BIN':' > register
+ echo ':atari8_cas:M::FUJI::'$ATARI800_BIN':' > register
+ echo ':atari8_cart:M::CART::'$ATARI800_BIN':' > register
+
+ # This is disabled because (a) lots of emulators use .rom files, and
+ # (b) current version of atari800 needs the -cart parameter for raw
+ # ROM dumps, which we can't provide via binfmt_misc.
+ #echo ':atari8_rom:E::rom::'$ATARI800_BIN':' > register
+
+ # see if it worked:
+ if [ ! -f atari8_xex ]; then
+ die "Failed to register filetypes, are you root?"
+ fi
+}
+
+### main()
+case "$1" in
+ stop)
+ unregister_filetypes
+ ;;
+
+ start)
+ init_binfmt_misc
+ check_binfmt_misc
+ find_atari800
+ register_filetypes
+ ;;
+
+ restart)
+ init_binfmt_misc
+ check_binfmt_misc
+ unregister_filetypes
+ find_atari800
+ register_filetypes
+ ;;
+
+ *)
+ usage
+ ;;
+
+esac
+
+exit 0
+
+# notes:
+
+# NO parameters allowed when calling the emulator, use a wrapper
+# script if you need to always pass e.g. -windowed or -ntscemu, or
+# just put on the command line when you run an Atari program.
+
+# there's no "magic" for recognizing XFD images. Instead, they're
+# recognized by filename extension... which is case-sensitive, hence
+# the xfd/Xfd/XFD combination. Feel free to add xFD or xFd, etc, if
+# you have a bunch of files named like that (better solution would be
+# to rename them!)
+
+# There's no way to determine whether a given disk or tape image
+# requires BASIC. The wrapper scripts assume that a boot disk, XEX
+# file, or boot tape, does not require BASIC... and that a BASIC
+# program (obviously) does. Unfortunately there's no easy way to
+# have the emulator run CLOAD, for a non-bootable BASIC tape, so
+# CAS support can only work with boot tapes.
+
+# Likewise, there's no way to tell whether a given tape or disk
+# image is in fact bootable (well, not really true, the wrappers
+# *could* examine boot records, etc, but they don't).
+
+# If you have a XEX, ATR/XFD image, or boot CAS image that requires
+# BASIC, you can enable it, by adding the -basic parameter to the
+# command line (e.g. "myimage.atr -basic"). More generally, you
+# can pass arbitrary atari800 options just by putting them on the
+# image command line (see atari800 -help for full list).
+
diff --git a/system/atari800/slack-desc b/system/atari800/slack-desc
new file mode 100644
index 0000000000..2ad3bcd028
--- /dev/null
+++ b/system/atari800/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 ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+atari800: atari800 (emulator for Atari 800/XL/XE computers and 5200 console)
+atari800:
+atari800: Atari800 is an Atari 800, 800XL, 130XE and 5200 emulator for Unix,
+atari800: Amiga, MS-DOS, Atari TT/Falcon, SDL and WinCE. Our main objective is
+atari800: to create a freely distributable portable emulator (i.e. with source
+atari800: code available).
+atari800:
+atari800: To use the emulator, you will need a set of Atari ROM images. Install
+atari800: the atari800_roms package to get the official (proprietary) ROM images,
+atari800: or the atari800_os++ package to use an Open Source replacement ROM,
+atari800: with some loss of compatibility/functionality.