aboutsummaryrefslogtreecommitdiff
path: root/development
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2022-12-28 17:42:25 +0000
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2022-12-31 09:14:40 +0700
commit2472b8b7d6d37a5850c381000e07ac19cf09d55c (patch)
treecc4260d9dd479f2e980bfc5a77768b03b1df2044 /development
parent1f4cc25436f81d00a8d4451912902e11ed5e5961 (diff)
development/zooey: Added (6502 cross-assembler for Atari 8-bit)
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'development')
-rw-r--r--development/zooey/README10
-rw-r--r--development/zooey/manpagefixes.diff447
-rw-r--r--development/zooey/slack-desc19
-rw-r--r--development/zooey/zooey.SlackBuild93
-rw-r--r--development/zooey/zooey.info10
5 files changed, 579 insertions, 0 deletions
diff --git a/development/zooey/README b/development/zooey/README
new file mode 100644
index 000000000000..5b28170783fa
--- /dev/null
+++ b/development/zooey/README
@@ -0,0 +1,10 @@
+zooey (6502 cross-assembler for Atari 8-bit systems)
+
+ZooEY is a cross assembler designed for 6502 processors. Binaries
+are generated specially for 8-bit Atari systems (Atari DOS II and
+SpartaDOS X formats supported). This tool is compatible with Quick
+Assembler, one of most popular assemblers in Poland.
+
+Also included are atari2unix and unix2atari (convert text files
+between Atari and Unix line-endings) and syntax highlighting for
+Midnight Commander (mcedit).
diff --git a/development/zooey/manpagefixes.diff b/development/zooey/manpagefixes.diff
new file mode 100644
index 000000000000..06b7242fde40
--- /dev/null
+++ b/development/zooey/manpagefixes.diff
@@ -0,0 +1,447 @@
+diff -Naur zooey-1.4.orig/zooey.1 zooey-1.4/zooey.1
+--- zooey-1.4.orig/zooey.1 2006-12-29 06:17:20.000000000 -0500
++++ zooey-1.4/zooey.1 2022-12-27 19:45:47.730325765 -0500
+@@ -3,66 +3,65 @@
+ ZooEY \- 6502 crossassembler.
+
+ .SH SYNOPSIS
+-.B zooey
+- [\fIOPTIONS\fR] source
++.B zooey \fB\-o output\fR [\fIOPTIONS\fR] \fBsource\fR
+
+ .SH DESCRIPTION
+ .PP
+ ZooEY is a crossassembler designed for 6502 processors. Binaries are generated specially for
+-8-bit Atari systems (Atari DOS II and SpartaDOS X formats supported). This tool is
++8\-bit Atari systems (Atari DOS II and SpartaDOS X formats supported). This tool is
+ compatible with Quick Assembler, one of most popular assemblers in Poland.
+
+ .SH OPTIONS
+ .TP
+-\fB\ -d\fR
++\fB\ \-d\fR
+ More information about assembly process.
+ .TP
+-\fB\ -h\fR
++\fB\ \-h\fR
+ Help.
+ .TP
+-\fB\ -i path\fR
+-Add directory to search path for icl files. Order is: current dir is first, next is first -i path,
+-second -i path and next.
++\fB\ \-i path\fR
++Add directory to search path for icl files. Order is: current dir is first, next is first \-i path,
++next is second \-i path, etc.
+ .TP
+-\fB\ -l filename\fR
++\fB\ \-l filename\fR
+ Generate labels report. Each line consists of 5 fields:
+ label name, decimal value, hexadecimal value, declaration line number and
+ (optional) additional information.
+-In last filed can be two values: 'Reloc' means that label is relocable. 'Unused' means
++In last field can be two values: 'Reloc' means that label is relocatable. 'Unused' means
+ that label is unused.
+ .TP
+-\fB\ -m\fR
++\fB\ \-m\fR
+ Check memory collisions. You can check collisions only with 'd' and 's' block types.
+ All other blocks are ignored.
+ .TP
+-\fB\ -o filename\fR
+-Output fle name.
++\fB\ \-o filename\fR
++Output file name.
+ .TP
+-\fB\ -r\fR
+-Remove previously created file if assembly fail. Name is taken from \fI-o\fR option.
++\fB\ \-r\fR
++Remove previously created file if assembly fails. Name is taken from \fI\-o\fR option.
+ .TP
+-\fB\ -s\fR
++\fB\ \-s\fR
+ Turn on SpartaDOS X filenames for ICL directive. Ordinary paths looks like 'D2:filename.ext'.
+ If you have sources from SDX, your paths' syntax may be like 'D:>dir1>dir2>filename.ext'.
+ All included file must be in current directory.
+ .TP
+-\fB\ -v\fR
+-Prints version and exit.
++\fB\ \-v\fR
++Prints version and exits.
+ .TP
+-\fB\ -w\fR
++\fB\ \-w\fR
+ Turn display warnings on.
+ .TP
+-\fB\ -z\fR
++\fB\ \-z\fR
+ Turn off QA strange behavior. Currently works:
+ .br
+-- pseudodirective \fIend\fR used in file included by \fIicl\fR conclude current file and back
++\- pseudodirective \fIend\fR used in file included by \fIicl\fR conclude current file and back
+ to previous file, not to main,
+-- pseudodirectove \fIopt\fR are not skipped in file included by \fIicl\fR.
++\- pseudodirectove \fIopt\fR are not skipped in file included by \fIicl\fR.
+
+ .SH QA INCOMPATIBILITIES
+
+ ZooEY is a Quick Assembler descendant. As such it should work well with
+-any code written natively with Quick Assembler. However when porting some
++any code written natively with Quick Assembler. However, when porting some
+ code from original QA sources, you have to be aware that not all options
+ of native OPT directive are supported. Those that work are generating
+ binary headers and generating source printout. For details, look at pseudo
+@@ -70,51 +69,51 @@
+
+ .SH VALUES AND TYPES
+
+-A numeric value is a number from 0 to $FFFF (0-65535).
++A numeric value is a number from 0 to $FFFF (0\-65535).
+ It can be put down in any of the following ways, which
+ defines how it is treated by the assembler:
+ .RS 0
+-.B - \fI:lda 2000,x\fR
++.B \- \fI:lda 2000,x\fR
+ generates opcode of the mnemonic in specified addressing mode,
+ .BR
+ .br
+-.B - \fI<$2000\fR
++.B \- \fI<$2000\fR
+ generates LSB of the word,
+ .BR
+ .br
+-.B - \fI>$2000\fR
++.B \- \fI>$2000\fR
+ generates MSB of the word,
+ .BR
+ .br
+-.B - \fI'A'\fR
++.B \- \fI'A'\fR
+ generates an ATASCII/ASCII code of the value,
+ .BR
+ .br
+-.B - \fI'A'*\fR
++.B \- \fI'A'*\fR
+ generates an ATASCII/ASCII code of the value +128 (highest bit inverted),
+ .BR
+ .br
+-.B - \fI"A"\fR
++.B \- \fI"A"\fR
+ generates an internal code of the value,
+ .BR
+ .br
+-.B - \fI"A"*\fR
++.B \- \fI"A"*\fR
+ generates an internal code of the value +128 (highest bit inverted),
+ .BR
+ .br
+-.B - \fI*\fR
+-current PC (Program Counter) value. This is a 16-bit value,
++.B \- \fI*\fR
++current PC (Program Counter) value. This is a 16\-bit value,
+ .BR
+ .br
+-.B - \fI$1010\fR
++.B \- \fI$1010\fR
+ a hex representation of the value,
+ .BR
+ .br
+-.B - \fI%1010\fR
++.B \- \fI%1010\fR
+ a binary representation of the value,
+ .BR
+ .br
+-.B - \fI1010\fR
++.B \- \fI1010\fR
+ a decimal representation of the value.
+ .BR
+ .TP
+@@ -128,8 +127,8 @@
+ multiplication, division, modulo, division,
+ .BR
+ .br
+-.B \fI+ -\fR
+-addition, substraction,
++.B \fI+ \-\fR
++addition, subtraction,
+ .BR
+ .br
+ .B \fI< >\fR
+@@ -158,8 +157,8 @@
+
+ .SH MACROS
+
+-Macro must be enclosed in \fImac\fR and \fIenm\fR directives.
+-And the macro arguments must start with \\ and
++A macro must be enclosed in \fImac\fR and \fIenm\fR directives.
++The macro arguments must start with \\ and
+ be decimal numbers which correspond to macro argument
+ sequence. To use a macro you just call its name and arguments
+ like: macro_name arg1,arg...,argN.
+@@ -181,12 +180,12 @@
+ .br
+ enm
+ .PP
+-.RS -7
++.RS \-7
+ Using the macro:
+ .br
+ .RS 7
+ blah $2000,$2001
+-.RS -7
++.RS \-7
+ .PP
+ The above macro will be unrolled by assembler into:
+ .br
+@@ -202,7 +201,7 @@
+ .RS 4
+ .ifdef value
+ .br
+- .if codition
++ .if condition
+ .br
+ .elif condition
+ .br
+@@ -210,7 +209,7 @@
+ .br
+ .fi
+ .br
+-.RS -4
++.RS \-4
+ where 'condition' is any arithmetic or logical argument, and 'value' is const symbol defined or not.
+ .br
+ An example:
+@@ -225,26 +224,26 @@
+ .br
+ cmp 20
+ .br
+-beq *-2
+-.RS -3
++beq *\-2
++.RS \-3
+ .fi
+
+ .SH ADDITIONAL DIRECTIVES
+
+ Those two are automatic. I.e assembler recognizes the EOLs anyway.
+-If, for some reason the assembler can't parse the EOLs, those directive can
++If, for some reason the assembler can't parse the EOLs, these directives can
+ force it into a specified EOL mode.
+ .RS 0
+ .B \fI.atari\fR
+-forces the assembler to assume that the sourcefile has atari EOLs (9B)
++forces the assembler to assume that the sourcefile has Atari EOLs (9B)
+ .BR
+ .br
+ .B \fI.unix\fR
+-forces the assembler to assume that the sourcefile has unix EOLs (0A)
++forces the assembler to assume that the sourcefile has Unix EOLs (0A)
+ .BR
+ .PP
+ The assembling of unpublished (illegal) or extended (65C02) instructions.
+-By default Zooey uses the op-code list of a generic vanilla MOS6502.
++By default Zooey uses the op\-code list of a generic vanilla MOS6502.
+ If you want to extend the instruction set use the following:
+ .RS 0
+ .B \fI.65c02\fR
+@@ -261,7 +260,7 @@
+ .PP
+ .B \fIbin 'fname'[,A[,B]]\fR
+ includes contents of the file 'fname'.
+-If A is present - readout starts at the offset A, if B is present,
++If A is present \- readout starts at the offset A, if B is present,
+ B bytes of file are read in.
+ .BR
+ .PP
+@@ -275,33 +274,33 @@
+ .BR
+ .RS 5
+ .br
+-.B - a
+-- address - 16-bit value.
+-You can write adresses in a row like this: 'dta a(1,2,3,4)',
++.B \- a
++\- address \- 16\-bit value.
++You can write addresses in a row like this: 'dta a(1,2,3,4)',
+ .BR
+ .br
+-.B - b
+-- byte - 8-bit value,
++.B \- b
++\- byte \- 8\-bit value,
+ .BR
+ .br
+-.B - c
+-- ATASCII/ASCII code(s) for given argument e.g. dta c'ABCD',
++.B \- c
++\- ATASCII/ASCII code(s) for given argument e.g. dta c'ABCD',
+ .BR
+ .br
+-.B - d
+-- Internal Antic Character code(s) for given argument,
++.B \- d
++\- Internal Antic Character code(s) for given argument,
+ .BR
+ .br
+-.B - h
+-- MSB of argument,
++.B \- h
++\- MSB of argument,
+ .BR
+ .br
+-.B - l
+-- LSB of argument,
++.B \- l
++\- LSB of argument,
+ .BR
+ .br
+-.B - v
+-- vector - 16bit value, relocatable.
++.B \- v
++\- vector \- 16bit value, relocatable.
+ .BR
+ .br
+ \fINOTICE\fR: Relocatable values work only when declared indirectly
+@@ -309,86 +308,86 @@
+ .br
+ Example:
+ .br
+-dta v($1000) - unrelocatable vector value (constant)
++dta v($1000) \- unrelocatable vector value (constant)
+ .br
+-dta v(*) - relocatable vector value
++dta v(*) \- relocatable vector value
+ .br
+-dta v(*+100) - relocatable, if inside a relocatable block.
+-.RS -5
++dta v(*+100) \- relocatable, if inside a relocatable block.
++.RS \-5
+ .PP
+ .B \fImem A,B\fR
+ define(reserve) memory block started at A and size B. Usefull only
+-with \fI-m\fR option (memory checking).
++with \fI\-m\fR option (memory checking).
+ .PP
+ .B \fIopt\fR
+-assembling options. You can use a number, p+ and p- as arguments.
++assembling options. You can use a number, p+ and p\- as arguments.
+ .RS 5
+ .br
+-.B - a number
+-is a value from 0 to 255 (compatible with QA opt -
++.B \- a number
++is a value from 0 to 255 (compatible with QA opt \-
+ but not all bit setups are supported),
+ .BR
+ .br
+-.B - p+, p-
++.B \- p+, p\-
+ source printout on and off.
+ .BR
+ .br
+-.B - h+, h-
++.B \- h+, h\-
+ standard DOS header (FFFF) on and off.
+-.RS -5
++.RS \-5
+ .PP
+ .B \fIorg\fR
+ binary header block generation (interchangable with 'blk').
+ The parameters are:
+ .RS 5
+ .br
+-.B - addr
+-- address (exactly like in QA),
++.B \- addr
++\- address (exactly like in QA),
+ .BR
+ .br
+-.B - n,addr
+-- headerless block, beginning with addr,
++.B \- n,addr
++\- headerless block, beginning with addr,
+ .BR
+ .br
+-.B - d,addr<,addr2>
+-- a generic DOS block with FFFF header.
+-Source is assembled from addr. If addr2 is provided, the block addres is addr2.
++.B \- d,addr<,addr2>
++\- a generic DOS block with FFFF header.
++Source is assembled from addr. If addr2 is provided, the block address is addr2.
+ .BR
+ .br
+-.B - e,[m|e],size
+-- dummy block. Reserves a memory block in lowmem or xms.
++.B \- e,[m|e],size
++\- dummy block. Reserves a memory block in lowmem or xms.
+ Does not contain data, only reserves address space of size 'size',
+ .BR
+ .br
+-.B - s,addr
+-- generic Sparta block with FAFF header. Symbols and jumps
++.B \- s,addr
++\- generic Sparta block with FAFF header. Symbols and jumps
+ to 'r' type block are supported.
+ After using the two, one must use 'u,a' and 'u,s' blocks
+ (using the same rules as apply for 'r' type blocks),
+ .BR
+ .br
+-.B - r,[m|e]
+-- relocatable sparta block with FEFF header.
++.B \- r,[m|e]
++\- relocatable sparta block with FEFF header.
+ After the last 'r' block, you must use 'u,a' block(s).
+-And, if you used symbols - 'u,s' block(s),
++And, if you used symbols \- 'u,s' block(s),
+ .BR
+ .br
+-.B - u,a
+-- address update block (must follow 'r' block - see above),
++.B \- u,a
++\- address update block (must follow 'r' block \- see above),
+ .BR
+ .br
+-.B - u,s
+-- symbol update block (must follow 'r' block - see above),
++.B \- u,s
++\- symbol update block (must follow 'r' block \- see above),
+ .BR
+ .br
+-.B - u,n,'name',addr
+-- symbol declaration block. Defines symbol 'name' (max 8 chars) beginning at addr.
++.B \- u,n,'name',addr
++\- symbol declaration block. Defines symbol 'name' (max 8 chars) beginning at addr.
+ .BR
+ .PP
+-.RS -5
++.RS \-5
+ .B \fIsin A,B[,C]\fR
+ generates a sine table with MAX of A and table length of B.
+-The aplitude level is at 0 or C (if specified).
++The amplitude level is at 0 or C (if specified).
+ .BR
+ .PP
+ .B \fIsmb\fR
+@@ -419,7 +418,7 @@
+ .PP
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111\-1307 USA
+
+ .SH AUTHORS
+ .TP
+@@ -430,12 +429,12 @@
+ Testing and documentation.
+
+ .SH REPORTING BUGS
+-Report bugs to <zooey-devel@lists.sourceforge.net>.
++Report bugs to <zooey\-devel@lists.sourceforge.net>.
+
+ .SH EXIT CODES
+ 0 assembly OK,
+ .br
+-1 warnigs (if displayed),
++1 warnings (if displayed),
+ .br
+ 2 errors,
+ .br
diff --git a/development/zooey/slack-desc b/development/zooey/slack-desc
new file mode 100644
index 000000000000..4f97d18b9a2b
--- /dev/null
+++ b/development/zooey/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------------------------------------------------------|
+zooey: zooey (6502 cross-assembler for Atari 8-bit systems)
+zooey:
+zooey: ZooEY is a cross assembler designed for 6502 processors. Binaries
+zooey: are generated specially for 8-bit Atari systems (Atari DOS II and
+zooey: SpartaDOS X formats supported). This tool is compatible with Quick
+zooey: Assembler, one of most popular assemblers in Poland.
+zooey:
+zooey: Also included are atari2unix and unix2atari (convert text files
+zooey: between Atari and Unix line-endings) and syntax highlighting for
+zooey: Midnight Commander (mcedit).
+zooey:
diff --git a/development/zooey/zooey.SlackBuild b/development/zooey/zooey.SlackBuild
new file mode 100644
index 000000000000..1f49b82e135d
--- /dev/null
+++ b/development/zooey/zooey.SlackBuild
@@ -0,0 +1,93 @@
+#!/bin/bash
+
+# Slackware build script for zooey
+
+# Written by B. Watson (urchlay@slackware.uk)
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=zooey
+VERSION=${VERSION:-1.4}
+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.tgz
+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 {} \+
+
+# Use our CFLAGS and man page path (hate when it's hardcoded).
+sed -i -e "/CFLAGS/s,-O2,$SLKCFLAGS," \
+ -e 's,share/man,man,g' Makefile
+
+# Fix some typos and formatting errors in the man page.
+patch -p1 < $CWD/manpagefixes.diff
+
+# Author's name in the source is hard-coded ISO-8859-2. The Polish
+# l-with-slash in "zooey -h" output displays as a superscript 3 in an
+# ISO-8859-1 (Latin-1 or Windows-1232) terminal, or just gibberish in
+# a UTF-8 terminal. Make it UTF-8 in the source.
+mv $PRGNAM.c $PRGNAM.c.orig
+iconv -f iso-8859-2 -t utf-8 $PRGNAM.c.orig > $PRGNAM.c
+
+make $PRGNAM
+make install PREFIX=$PKG/usr
+# Binary is already stripped.
+gzip -9 $PKG/usr/man/man?/*.?
+
+# mcedit (midnight commander) syntax support, untested by SlackBuild
+# author. Wish there was one for vim...
+mkdir -p $PKG/usr/share/mc/syntax
+install -m0644 asm.syntax $PKG/usr/share/mc/syntax
+
+PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
+mkdir -p $PKGDOC
+install -m0644 ChangeLog ToDo $PKGDOC
+cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/development/zooey/zooey.info b/development/zooey/zooey.info
new file mode 100644
index 000000000000..cccf83bb577f
--- /dev/null
+++ b/development/zooey/zooey.info
@@ -0,0 +1,10 @@
+PRGNAM="zooey"
+VERSION="1.4"
+HOMEPAGE="https://atari8.sourceforge.net/zooey.html"
+DOWNLOAD="https://downloads.sourceforge.net/project/atari8/zooey/Zooey-1.4/zooey-1.4.tgz"
+MD5SUM="a3d78e15f21f6e68fc55e83212c01f72"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="B. Watson"
+EMAIL="urchlay@slackware.uk"