diff options
-rw-r--r-- | games/atari_8bit_utils/README | 90 | ||||
-rw-r--r-- | games/atari_8bit_utils/atari_8bit_utils.SlackBuild | 117 | ||||
-rw-r--r-- | games/atari_8bit_utils/atari_8bit_utils.info | 10 | ||||
-rw-r--r-- | games/atari_8bit_utils/slack-desc | 19 |
4 files changed, 236 insertions, 0 deletions
diff --git a/games/atari_8bit_utils/README b/games/atari_8bit_utils/README new file mode 100644 index 000000000000..29e003d4f215 --- /dev/null +++ b/games/atari_8bit_utils/README @@ -0,0 +1,90 @@ +This is a collection of Atari 8-bit utilities that I've written, +mostly back in the 90s, for managing files for an Atari on a +Linux system. Whether you're using a real Atari or an emulator, +these can be handy tools. + +ATRFS + +Want to mount an ATR image as a native file system in Linux? +Now you can! + +This uses FUSE to create a user-space file system that allows +reading and writing of Atari file systems in ATR image files. +This requires no special root privileges. + +The framework is designed to be modular, making it relatively +simple to add support for new Atari file systems. + +BASIC Autorun + +There are lots of AUTORUN.SYS files for running BASIC programs, +but what if BASIC isn't available? Well, this one will enable +BASIC first if it's disabled on an XL/XE system. +If it's a 400/800/1200XL, it will display "BASIC REQUIRED" +and hang. Also, the command text is stored in ATASCII, +so it's easy to edit the binary. + +SIO2Linux + +Pavel Machek made an initial attempt at communicating with the +Atari through an SIO2PC cable using Linux's serial port drivers. +He came up with a simple floppy emulator he called "femul.c" + +I rewrote that to add a bunch of features: +* No kernel modules. + Unlike the AtariSIO project, this is just a simple user-space + program that uses a serial port device. +* Create new dynamically sized images + Each image starts as a 3-sector image file, but grows to + accomodate the highest-numbered sector written. +* Mount your native file system as an Atari disk + It's read-only for now, and it doesn't support subdirectories, + but each file is mapped to a different starting sector, and + as that sector is read, it automatically maps in the rest of + the file. + +Binary load file analyzer + +This program will tell you all about your binary-load format Atari +files, and even clean them up if there are specific problems. +It runs under DOS and Unix. +It includes the option to dump the 6502 assembly. + +BASIC analyzer + +This program will parse the structure of a BASIC program. +The most common use would be to check if a file is a valid BASIC +file, in which case, just redirect the output to /dev/null and +it's BASIC if the program returns success. It will parse down +the the line level. Parsing out the individual tokens could be +done in the future. + +Disk image format conversions + +Want to convert between DCM and ATR? Want to turn an ATR disk image +into individual files on your native file system (even creating +subdirectories for MyDos images!)? Or convert a directory full of +files back into a disk image? Well, check out these programs: + +* atr2unix +* unix2atr +* dcmtoatr + +Disk manager (Atari-side sector editor and much more) + +Back in the mid 80's, I wrote a sector editor in BASIC. +Over several years, I incorporated additional features and +tools, as well as re-wrote various routines in assembly language +for speed. I should have released it back then, but now I've +gone back through it and added a few extra features. +I also re-worked all of the assembly language code. + +MyDOS Binary Load Menu + +There are plenty of menu programs that let you select from a +list of programs and execute one, but this one goes a step further. +It supports MyDOS subdirectories and is driven by the joystick, +so it's ideal for a huge disk image of games. +I wrote this in 1994 in BASIC and compiled it with ABC. + +-- adapted from original Preston Crow file diff --git a/games/atari_8bit_utils/atari_8bit_utils.SlackBuild b/games/atari_8bit_utils/atari_8bit_utils.SlackBuild new file mode 100644 index 000000000000..e1bbf5aede2c --- /dev/null +++ b/games/atari_8bit_utils/atari_8bit_utils.SlackBuild @@ -0,0 +1,117 @@ +#!/bin/bash + +# Slackware build script for atari_8bit_utils + +# Copyright 2024 Antonio Leal, Porto Salvo, Oeiras, Portugal +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +cd $(dirname $0) ; CWD=$(pwd) + +PRGNAM=atari_8bit_utils +VERSION=${VERSION:-20240328_58d9431} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} +TARBALL=${TARBALL:-58d9431dcb958918d5b68456f969d5c12bd75d40} + +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" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" +else + SLKCFLAGS="-O2" +fi + +set -e +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$TARBALL +tar xvfz $CWD/$PRGNAM-$TARBALL.tar.gz +cd $PRGNAM-$TARBALL + +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 {} \; + +# Build proggies +cd atrfs +sed -i -e "s:CFLAGS = -g -O0 -W -Wall # -g and -O0 for easier gdb debugging:CFLAGS = $SLKCFLAGS:" Makefile +make +cd ../disasm +sed -i -e "s:CFLAGS = -g -O0 -W -Wall # -g and -O0 for easier gdb debugging:CFLAGS = $SLKCFLAGS:" Makefile +make +cd .. +for f in `ls -1 *.c` + do gcc $SLKCFLAGS $f -o `basename $f .c` +done + +# Setup package files +mkdir -p $PKG/usr/bin +install -D -m0755 atrfs/atrfs $PKG/usr/bin/atrfs +install -D -m0755 disasm/disasm $PKG/usr/bin/disasm +for f in `ls -1 *.c` + do install -D -m0755 `basename $f .c` $PKG/usr/bin/`basename $f .c` +done + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +cp README $PKG/usr/doc/$PRGNAM-$VERSION +cp LICENSE $PKG/usr/doc/$PRGNAM-$VERSION +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/atrfs +cp atrfs/README.TXT $PKG/usr/doc/$PRGNAM-$VERSION/atrfs +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/disasm +cp disasm/README $PKG/usr/doc/$PRGNAM-$VERSION/disasm + +mkdir -p $PKG/usr/share/$PRGNAM +cp -avxu basic_autorun $PKG/usr/share/$PRGNAM/ +cp -avxu mydos_bmenu $PKG/usr/share/$PRGNAM/ + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE diff --git a/games/atari_8bit_utils/atari_8bit_utils.info b/games/atari_8bit_utils/atari_8bit_utils.info new file mode 100644 index 000000000000..0ed4b7efbefd --- /dev/null +++ b/games/atari_8bit_utils/atari_8bit_utils.info @@ -0,0 +1,10 @@ +PRGNAM="atari_8bit_utils" +VERSION="20240328_58d9431" +HOMEPAGE="https://github.com/pcrow/atari_8bit_utils" +DOWNLOAD="https://github.com/pcrow/atari_8bit_utils/archive/58d9431/atari_8bit_utils-58d9431dcb958918d5b68456f969d5c12bd75d40.tar.gz" +MD5SUM="b1dfc350e9e5d8dbf43a79a1c3a75947" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="Antonio Leal" +EMAIL="antonioleal@yahoo.com" diff --git a/games/atari_8bit_utils/slack-desc b/games/atari_8bit_utils/slack-desc new file mode 100644 index 000000000000..4da5ac258282 --- /dev/null +++ b/games/atari_8bit_utils/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------------------------------------------------------| +atari_8bit_utils: atari_8bit_utils (utilities for atari 8bit machines/emulators) +atari_8bit_utils: +atari_8bit_utils: atari_8bit_utils contains a set of utilities by Preston Crow for +atari_8bit_utils: atari 8 bit machines or emulators such atari 400/800, XL, XE. +atari_8bit_utils: +atari_8bit_utils: among others: mount atr disks, or convert atr formats.. +atari_8bit_utils: +atari_8bit_utils: +atari_8bit_utils: Homepage at https://github.com/pcrow/atari_8bit_utils +atari_8bit_utils: +atari_8bit_utils: |