From c1efd07c7c047c2d6e9be428b7b648819df7df1c Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Sat, 11 Jan 2014 08:49:40 +0700 Subject: system/dos33fsprogs: Added (Utilities for the Apple II DOS 3.3 FS). Signed-off-by: Willy Sudiarto Raharjo --- system/dos33fsprogs/README | 31 +++++ system/dos33fsprogs/dos33fsprogs.SlackBuild | 93 ++++++++++++++ system/dos33fsprogs/dos33fsprogs.info | 10 ++ system/dos33fsprogs/man/dos33.pod | 181 ++++++++++++++++++++++++++++ system/dos33fsprogs/man/dos33fsprogs.pod | 44 +++++++ system/dos33fsprogs/man/make_b.pod | 80 ++++++++++++ system/dos33fsprogs/man/mkdos33fs.pod | 70 +++++++++++ system/dos33fsprogs/man/pcx2hgr.pod | 45 +++++++ system/dos33fsprogs/man/shape_table.pod | 116 ++++++++++++++++++ system/dos33fsprogs/man/tokenize_asoft.pod | 65 ++++++++++ system/dos33fsprogs/slack-desc | 19 +++ 11 files changed, 754 insertions(+) create mode 100644 system/dos33fsprogs/README create mode 100644 system/dos33fsprogs/dos33fsprogs.SlackBuild create mode 100644 system/dos33fsprogs/dos33fsprogs.info create mode 100644 system/dos33fsprogs/man/dos33.pod create mode 100644 system/dos33fsprogs/man/dos33fsprogs.pod create mode 100644 system/dos33fsprogs/man/make_b.pod create mode 100644 system/dos33fsprogs/man/mkdos33fs.pod create mode 100644 system/dos33fsprogs/man/pcx2hgr.pod create mode 100644 system/dos33fsprogs/man/shape_table.pod create mode 100644 system/dos33fsprogs/man/tokenize_asoft.pod create mode 100644 system/dos33fsprogs/slack-desc (limited to 'system') diff --git a/system/dos33fsprogs/README b/system/dos33fsprogs/README new file mode 100644 index 0000000000..bf3aa82137 --- /dev/null +++ b/system/dos33fsprogs/README @@ -0,0 +1,31 @@ +dos33fsprogs (Utilitiies for the Apple II DOS 3.3 filesystem) + +These are tools to be used on DOS 3.3 filesystem disk images. +DOS 3.3 is a filesystem used on Apple II floppy disks. +There are also some generally useful Apple II utilities. + +Included utilities: + +make_b: take a machine language blob and give it the size/offset + header needed to BLOAD it from DOS3.3 + +asoft_detoken: takes an applesoft file obtained with dos33 + and converts it to an ASCII text file + +tokenize_asoft: takes an ASCII text file and converts it + into a tokenized applesoft file + +dos33: a tool for manipulating dos33 .dsk images + +dos33_text2ascii: convert a dos33 text file to ASCII + +integer_detoken: detokenize an Apple Integer BASIC program + +pcx2hgr: converts a 140x160 (or 140x192) PCX image file + into an Apple II HGR graphics file + +mkdos33fs: create an Apple ][ DOS 3.3 filesystem + +asoft_presenter: create a slide presentation disk image for use on apple II + +shape_table: create an Apple shape table for use with DRAW/XDRAW commands diff --git a/system/dos33fsprogs/dos33fsprogs.SlackBuild b/system/dos33fsprogs/dos33fsprogs.SlackBuild new file mode 100644 index 0000000000..17a310912c --- /dev/null +++ b/system/dos33fsprogs/dos33fsprogs.SlackBuild @@ -0,0 +1,93 @@ +#!/bin/sh + +# Slackware build script for dos33fsprogs + +# Written by B. Watson (yalhcru@gmail.com) + +# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. + +PRGNAM=dos33fsprogs +VERSION=${VERSION:-0.0.10} +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-$VERSION + +# Tarball is double-gzipped (aka gzipped .tar.gz). +gunzip < $CWD/$PRGNAM-$VERSION.tar.gz | tar xvfz - +cd $PRGNAM-$VERSION +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 {} \; + +# For some reason, these aren't installed by 'make install'. Not including +# char2hex, since it's trivial and not documented. +EXTRABINS="asoft_presenter pcx2hgr shape_table" + +sed -i "s,/usr/local/bin, $EXTRABINS $PKG/usr/bin," Makefile +make CFLAGS="$SLKCFLAGS" + +mkdir -p $PKG/usr/bin $PKG/usr/share/$PRGNAM +make install +strip $PKG/usr/bin/* +cat hgr.pal > $PKG/usr/share/$PRGNAM/hgr.pal + +# Make sure the location where I decided to install hgr.pal is documented +sed -i "s,hgr\\.pal,/usr/share/$PRGNAM/&," README + +# Man pages written for this SlackBuild. +mkdir -p $PKG/usr/man/man1 +for pod in $CWD/man/*.pod; do + pod2man -s1 -r$VERSION --stderr -c'dos33fstools' $pod | \ + gzip -9c > $PKG/usr/man/man1/$( basename $pod .pod ).1.gz +done + +for link in asoft_detoken integer_detoken dos33_text2ascii; do + ln -s tokenize_asoft.1.gz $PKG/usr/man/man1/$link.1.gz +done + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +chmod 755 tests tests/*.sh +cp -a CHANGES README* TODO tests $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$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/system/dos33fsprogs/dos33fsprogs.info b/system/dos33fsprogs/dos33fsprogs.info new file mode 100644 index 0000000000..6091c74ecc --- /dev/null +++ b/system/dos33fsprogs/dos33fsprogs.info @@ -0,0 +1,10 @@ +PRGNAM="dos33fsprogs" +VERSION="0.0.10" +HOMEPAGE="http://www.deater.net/weave/vmwprod/apple/dos33fs.html" +DOWNLOAD="http://www.deater.net/weave/vmwprod/apple/dos33fsprogs-0.0.10.tar.gz" +MD5SUM="fc49e56443d6dbed8338cd9e3c2b945b" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="B. Watson" +EMAIL="yalhcru@gmail.com" diff --git a/system/dos33fsprogs/man/dos33.pod b/system/dos33fsprogs/man/dos33.pod new file mode 100644 index 0000000000..b854fa66ba --- /dev/null +++ b/system/dos33fsprogs/man/dos33.pod @@ -0,0 +1,181 @@ +=pod + +=head1 NAME + +B - tool for accessing files inside an Apple DOS 3.3 disk image + +=head1 SYNOPSIS + +B [-h] [-y] [arguments] + +=head1 DESCRIPTION + +B operates on Apple DOS 3.3 .dsk images, and allows copying files +to/from the image as well as common DOS operations. + +=head1 OPTIONS + +=over + +=item -h + +Show built-in help message + +=item -y + +Answer "yes" to all confirmation prompts + +=back + +=head1 COMMANDS + +All commands are case-insensitive. Filenames within the image are +case-sensitive. No globbing/wildcarding is done on files in the image. + +=over + +=item CATALOG + +Same as the DOS 3.3 CATALOG command. Lists the directory of the disk, with +file name, type, lock status, and size in sectors. + +In case of duplicate filenames in the image, the first file listed in +B output will be the one operated on by the B, B, +B, and B commands. + +=item LOAD B B<[local_file]> + +Copies a file out of the image, to the local filesystem. If B +is given, it will be used as the name of the output file, otherwise the +file will be named the same as B. + +File contents are always copied verbatim. Text files will be in Apple +II encoding, and can be converted to UNIX style text files with the +B utility. BLOADable files (object code or binary +data) will begin with a 4-byte header, giving the load address and length +(minus the header) of the file in standard 6502 LSB/MSB format. + +=item SAVE B B B<[apple_file]> + +Copies a file into the image. If B is given, it will +be used as the name, otherwise the file will be named the same as +B. No checking is done on the filename, so it's possible to +create files with illegal names, as far as DOS 3.3 is concerned. + +If the file already exists in the image, you will be prompted whether +to overwrite it. Use the B<-y> option to suppress the prompt and always +overwrite. + +B is one of the standard DOS 3.3 filetype characters: + +=over + +=item I + +Integer BASIC program + +=item A + +Applesoft BASIC program + +=item B + +Binary file (possibly BLOADable) + +=item T + +Text file (including EXEC batch files) + +=item S + +Source? Sequential? Rarely used. + +=item R + +Relocatable object module. Rarely used. + +=item N + +B uses this character as a replacement for the "new A", aka +0x20. In DOS 3.3's CATALOG command, these files show up as A. Rarely +used. + +=item L + +B uses this character as a replacement for the "new B", aka +0x40. In DOS 3.3's CATALOG command, these files show up as B. Rarely +used. + +=back + +Filetype characters are case-insensitive in B. + +File contents are always copied verbatim, so e.g. text files need to +already be in Apple II encoding (bit 7 set on each character, and 0x8d +used for end-of-line). A UNIX style text file can be converted with +B, with a command like: + +tr '\n\040-\177' '\215\240-\377' < unix.txt > apple.txt + +To make an Apple BLOAD/BRUN object file from a raw binary, use the +B utility. + +No checking is done on the file contents to see whether they make sense +for the filetype given, so it's possible to e.g. store a text file with +type A, or an Applesoft file with type B (binary). This isn't really a +very useful thing to do, so try to avoid it. + +=item DELETE B + +Deletes a file inside the image. The file must exist and not be locked. +=item LOCK B + +Locks (write-protects) a file inside the image. Locked files have a B<*> +in the first column of B output. Locked files may not be written +to, deleted, or renamed. + +=item UNLOCK B + +Unlocks a file inside the image. + +=item RENAME B B + +Renames a file inside the image. No checking is done whether the new +name already exists, so it's possible to create multiple files with the +same name. + +=item UNDELETE B + +Undoes a B. This is only possible if the file's data sectors haven't +already been overwritten with data from newer files. You will need to know +the filename of the deleted file, which can be found in B's output. + +=item DUMP + +Shows detailed information on the filesystem and files on the +disk. Displays the VTOC, free sector bitmap, directory entries (including +the ones for deleted files), and a hex dump of each sector marked "used" +in the bitmap. + +=back + +=head1 SEE ALSO + +=over + +=item dos33fsprogs(1) + +=item a2tools(1) + +=back + +=head1 WEBSITE + +http://www.deater.net/weave/vmwprod/apple/ + +=head1 AUTHORS + +B written by Vince Weaver . + +This manual page written by B. Watson for the SlackBuilds.org project, +but it may be used by anyone. diff --git a/system/dos33fsprogs/man/dos33fsprogs.pod b/system/dos33fsprogs/man/dos33fsprogs.pod new file mode 100644 index 0000000000..09fb0f1dc9 --- /dev/null +++ b/system/dos33fsprogs/man/dos33fsprogs.pod @@ -0,0 +1,44 @@ +=pod + +=head1 NAME + +B - collection of tools for Apple II files and disk images + +=head1 DESCRIPTION + +B - tool for accessing files inside an Apple DOS 3.3 disk image + +B - add an Apple II BLOAD header to a binary file + +B - create Apple II DOS 3.3 filesystems in a .dsk image + +B - convert ASCII into tokenized Applesoft + +B - convert tokenized Applesoft into ASCII + +B - convert tokenized Apple Integer BASIC to ASCII + +B - convert Apple II text files to UNIX + +See the man page for each individual program for details. + +=head1 SEE ALSO + +=over + +=item a2tools(1) + +=item kegs(1) + +=back + +=head1 WEBSITE + +http://www.deater.net/weave/vmwprod/apple/ + +=head1 AUTHORS + +B written by Vince Weaver . + +This manual page written by B. Watson for the SlackBuilds.org project, +but it may be used by anyone. diff --git a/system/dos33fsprogs/man/make_b.pod b/system/dos33fsprogs/man/make_b.pod new file mode 100644 index 0000000000..58970f847c --- /dev/null +++ b/system/dos33fsprogs/man/make_b.pod @@ -0,0 +1,80 @@ +=pod + +=head1 NAME + +B - add an Apple II BLOAD header to a binary file + +=head1 SYNOPSIS + +B + +=head1 DESCRIPTION + +B prepends an Apple II BLOAD header to in_file and writes +the result to out_file. + +The header is 4 bytes in size, and consists of the 16-bit offset (AKA +the load address) followed by the 16-bit file length (of the rest of +the file, not including the header). Both values are little-endian, +which is standard on the 6502. + +=head1 ARGUMENTS + +All arguments are required. If any are missing or invalid, a built-in +help message is displayed. + +=over + +=item in_file + +The input file. Must be small enough to fit in the Apple II's memory. The +absolute maximum size is 65535 bytes, but a file that large can't be +loaded into an Apple II because there are less than 48Kbytes of RAM +available. + +=item out_file + +The output file. DO NOT use the same filename as in_file (see B). After out_file +is created, it can be written to an Apple disk image with B. + +The output file will be exactly 4 bytes larger than the input file. + +=item offset + +The offset into the Apple's memory where the file will be loaded by the +DOS 3.3 / Applesoft BLOAD command. Other names for this are the load +address or start address. This is also the run address for files loaded +with the BRUN command. + +B can be either decimal (no prefix) or hex (with 0x +prefix). Beware that no error checking is done: in particular, don't +forget the 0x prefix for hex addresses. + +=back + +=head1 BUGS + +Attempting to use the same file for input and ouput causes make_b to +enter an infinite loop, writing garbage to the file until it fill up +the partition. + +=head1 SEE ALSO + +=over + +=item dos33fsprogs(1) + +=item a2tools(1) + +=back + +=head1 WEBSITE + +http://www.deater.net/weave/vmwprod/apple/ + +=head1 AUTHORS + +B written by Vince Weaver . + +This manual page written by B. Watson for the SlackBuilds.org project, +but it may be used by anyone. diff --git a/system/dos33fsprogs/man/mkdos33fs.pod b/system/dos33fsprogs/man/mkdos33fs.pod new file mode 100644 index 0000000000..d45c1777f2 --- /dev/null +++ b/system/dos33fsprogs/man/mkdos33fs.pod @@ -0,0 +1,70 @@ +=pod + +=head1 NAME + +B - create Apple II DOS 3.3 filesystems in a .dsk image + +=head1 SYNOPSIS + +B [-h] [-t tracks] [-s sectors] [-b blocksize] [-d filename] + +=head1 DESCRIPTION + +B creates an Apple II DOS 3.3 formatted disk image, and optionally +copies the boot record from an external file to make a bootable disk. + +By default, a standard 5 1/4" DOS 3.3 image is created, with 35 tracks, 16 +sectors/track, and 256 bytes per sector. + +=head1 OPTIONS + +=over + +=item -h + +Shows help message. + +=item -t > + +Create image with this many tracks (default 35). Must be at least +18. Maximum number is determined by the formula B<(block_size-0x38)/2)>. + +=item -s > + +Create image with this many sectors per track (default 16). Must be +between 2 and 32. + +=item -s > + +Create image with this many bytes per sector (default 256, which is also +the minimum size). Non-standard block sizes are allowed (up to 65536), +but generally aren't supported by actual Apple hardware or DOS. + +=item -d > + +Copy 3 sectors' worth of data from B. This can be used to create +bootable images, which will slightly reduce the amount of free space in +the image's filesystem. + +=back + +=head1 SEE ALSO + +=over + +=item dos33fsprogs(1) + +=item a2tools(1) + +=back + +=head1 WEBSITE + +http://www.deater.net/weave/vmwprod/apple/ + +=head1 AUTHORS + +B written by Vince Weaver . + +This manual page written by B. Watson for the SlackBuilds.org project, +but it may be used by anyone. diff --git a/system/dos33fsprogs/man/pcx2hgr.pod b/system/dos33fsprogs/man/pcx2hgr.pod new file mode 100644 index 0000000000..a0ceed2577 --- /dev/null +++ b/system/dos33fsprogs/man/pcx2hgr.pod @@ -0,0 +1,45 @@ +=pod + +=head1 NAME + +B - convert PCX files to Apple II HGR format + +=head1 SYNOPSIS + +B file.pcx > file.hgr + +=head1 DESCRIPTION + +B converts a PCX file to a BLOADable Apple II HGR or HGR2 +image, including palette conversion. Input is from the given filename, +and output is to standard output. + +No scaling is done. The input file's X resolution must be either 140 or +280 pixels, and the Y resolution should be either 160 or 192 pixels for +proper display on the Apple II. + +The output is prefixed with a standard Apple II 4-byte BLOAD header. To +display the image, use BASIC code like: + + +=head1 SEE ALSO + +=over + +=item dos33fsprogs(1) + +=item a2tools(1) + +=back + +=head1 WEBSITE + +http://www.deater.net/weave/vmwprod/apple/ + +=head1 AUTHORS + +B written by Vince Weaver . + +This manual page written by B. Watson for the SlackBuilds.org project, +but it may be used by anyone. + diff --git a/system/dos33fsprogs/man/shape_table.pod b/system/dos33fsprogs/man/shape_table.pod new file mode 100644 index 0000000000..e181e91189 --- /dev/null +++ b/system/dos33fsprogs/man/shape_table.pod @@ -0,0 +1,116 @@ +=pod + +=head1 NAME + +B - generate shape table data from a text description + +=head1 SYNOPSIS + +B [-h] [-a] [-b] < input > output + +=head1 DESCRIPTION + +B reads a text description of a vector graphic from standard +input and writes Apple II shape table data to standard output (as either +binary data or BASIC DATA statements). + +=head1 OPTIONS + +=over + +=item -h + +Print the built-in help message and exit. + +=item -a + +Output BASIC DATA statements (also the default behaviour, so this option +is redundant). + +=item -b + +Output BLOADable binary data. + +=back + +=head1 INPUT FORMAT + +The input consists of a series of lines. Each line is either a command, +a blank line, or a comment. + +Blank lines are ignored. They must contain no extra whitespace characters, +and must consist of only the \n character. + +Comments are ignored. They are marked with a B<#> in the first column +(no leading whitespace), and continue to the end of the line. + +Commands consist of any text containing one of the draw instructions +listed below. The instruction must be in upper case, and may be preceded +and/or followed by anything at all (but only one instruction per line +is read). + +=head2 Instructions + +Each instruction moves one pixel, in either plotting or non-plotting +mode. The binary output of each command is shown here, prefixed with %. + +=over + +=item NUP + +Move up (non-plotting), %000 + +=item NRT + +Move right (non-plotting), %001 + +=item NDN + +Move down (non-plotting), %010 + +=item NLT + +Move left (non-plotting), %011 + +=item UP + +Move up (plotting), %100 + +=item RT + +Move right (plotting), %101 + +=item DN + +Move down (plotting), %110 + +=item LT + +Move left (plotting), %111 + +=back + +=head1 SEE ALSO + +=over + +=item Applesoft II BASIC Programming Reference Manual + +Shape tables are documented on page 96 of the author's copy. + +=item dos33fsprogs(1) + +=item a2tools(1) + +=back + +=head1 WEBSITE + +http://www.deater.net/weave/vmwprod/apple/ + +=head1 AUTHORS + +B written by Vince Weaver . + +This manual page written by B. Watson for the SlackBuilds.org project, +but it may be used by anyone. diff --git a/system/dos33fsprogs/man/tokenize_asoft.pod b/system/dos33fsprogs/man/tokenize_asoft.pod new file mode 100644 index 0000000000..5aaac1c9f2 --- /dev/null +++ b/system/dos33fsprogs/man/tokenize_asoft.pod @@ -0,0 +1,65 @@ +=pod + +=head1 NAME + +B - convert ASCII into tokenized Applesoft + +B - convert tokenized Applesoft into ASCII + +B - convert tokenized Apple Integer BASIC to ASCII + +B - convert Apple II text files to UNIX + +=head1 SYNOPSIS + +B < input > output + +=head1 DESCRIPTION + +These programs act as filters, reading from standard input and writing +to standard output. None of them take any arguments or options. + +B acts like the Applesoft interpreter, in that it does +no syntax checking while tokenizing (in Applesoft, syntax checking is +done at runtime only). Each line requires a line number (no direct mode +statements). The output file can be written to an Apple disk image with +B. Remember that BASIC programs use filetype A. + +B and B act like the LIST commands +from Applesoft and Apple Integer BASIC, respectively. They expect +well-formed tokenized code, and may segfault or enter an infinite loop +if fed invalid input. The output of these commands is a UNIX (not Apple II) +text file. + +B converts Apple II text files into standard UNIX +text. The conversion is very simple: \r is converted to \n, and the +high bit of each character is cleared. A side effect of this is that, +if the input is already 7-bit ASCII with UNIX line endings, it will be +passed through unmodified. + +There is no tokenize_integer command. There's also no dos33_ascii2text, +but 7-bit ASCII UNIX text files can be converted with B, something +like: + +tr '\n\040-\177' '\215\240-\377' + +=head1 SEE ALSO + +=over + +=item dos33fsprogs(1) + +=item a2tools(1) + +=back + +=head1 WEBSITE + +http://www.deater.net/weave/vmwprod/apple/ + +=head1 AUTHORS + +B written by Vince Weaver . + +This manual page written by B. Watson for the SlackBuilds.org project, +but it may be used by anyone. diff --git a/system/dos33fsprogs/slack-desc b/system/dos33fsprogs/slack-desc new file mode 100644 index 0000000000..f015e6939d --- /dev/null +++ b/system/dos33fsprogs/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------------------------------------------------------| +dos33fsprogs: dos33fsprogs (Utilities for the Apple II DOS 3.3 filesystem) +dos33fsprogs: +dos33fsprogs: These are tools to be used on DOS 3.3 filesystem disk images. DOS +dos33fsprogs: 3.3 is a filesystem used on Apple II floppy disks. There are also +dos33fsprogs: some generally useful Apple II utilities. +dos33fsprogs: +dos33fsprogs: +dos33fsprogs: +dos33fsprogs: +dos33fsprogs: +dos33fsprogs: -- cgit v1.2.3