diff options
author | B. Watson <urchlay@slackware.uk> | 2022-12-28 17:42:25 +0000 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2022-12-31 09:14:40 +0700 |
commit | 2472b8b7d6d37a5850c381000e07ac19cf09d55c (patch) | |
tree | cc4260d9dd479f2e980bfc5a77768b03b1df2044 /development | |
parent | 1f4cc25436f81d00a8d4451912902e11ed5e5961 (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/README | 10 | ||||
-rw-r--r-- | development/zooey/manpagefixes.diff | 447 | ||||
-rw-r--r-- | development/zooey/slack-desc | 19 | ||||
-rw-r--r-- | development/zooey/zooey.SlackBuild | 93 | ||||
-rw-r--r-- | development/zooey/zooey.info | 10 |
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" |