
This is a quick & dirty Linux/UNIX port of Ken Siders' old Atr Utils
package for MS-DOS.

The original MS-DOS sources can be found in the file atrsrc.zip, or
you can download them from archive.org's copy of Ken's old page:
  http://web.archive.org/web/20080430184935/http://atari.ksiders.tzo.com/a8emulators.html

Sadly, Ken Siders is no longer with us.

This collection is provided as-is, by me, B. Watson <urchlay@slackware.uk>.
The original documentation can be found in atr.txt.

The utilities are:

atrdir   - Get a directory of an ATR image
atrextr  - Extract files from an ATR image to the current directory
makeatr  - Make a bootable "K-file" disk from an Atari executable
sortatr  - Sort the directory of an ATR image in alphabetical order
unmakatr - Reverse of makeatr: extracts the Atari exe from a K-file disk

All utilities work only with AtariDOS 2.x or MyDOS compatible images.
SpartaDOS, AtariDOS 3/4, DOS XE, and other non-MyDOS-compatible formats
are not supported. Atari DOS 2.5 images are only partially supported.

All utilities have been tested on Linux (with gcc-3.4.4) and Solaris 2.6
(with gcc-2.95.3). They produce identical output on both platforms.
However, Solaris 2.6 doesn't support gzipped man pages, so you have
to install with "make install GZIP_MAN=n".

I've written rudimentary man pages for the utilities. Any errors in the
man pages are my own fault.

I've made a few changes to the library (atr.c). Some are bugfixes, some
are feature enhancements, and a few are just to make the utilities behave
more like UNIX utilities are expected to behave.

- AtariDirectory() (used by atrdir) now partly supports DOS 2.5 extended
files (using sectors > 720). They are listed (with "<"), but their size
is not (shows up as "??"). (The original DOS version was "blind" to
files like these, like DOS 2.0S is).

- AtariDirectory(): Also, MyDOS directories are now listed (with ":"),
though their size is listed as "??".

- AtariDirectory(): Stop listing files after the first unused entry,
as Atari DOSes do. For normal disks, this really wasn't a problem, but
e.g. the HomeSoft games disks store file data in the higher-numbered
(unused) directory sectors, cause atrdir to print garbage to the terminal.

- PatternMatch() (used by atrdir and atrextr) now always matches all
files, if the wildcard pattern is "*" or "*.*". Also, wildcard patterns
are now case-insensitive.

- SortAtariDir() (used by sortatr) now correctly fills unused characters
in the filename with spaces, as Atari DOSes do. Previously, they were
filled with nulls (Atari heart character).

- ExtractAtariFile() (used by atrextr) no longer includes a trailing
dot in the extracted filename, if the file in the image has no 3-character
extender.

- ExtractAtariFile(): extract path now may be up to 4096 bytes, and
UNIX-style / is used for delimiter instead of DOS \

- atrextr: file argument is now optional (defaults to *.* if missing
or blank).

- atrextr: added optional dir argument. Files will be extracted to this
directory (which will be created if necessary).

- all utilities: exit status is now 0 for success, non-zero for any error.

- atr.c (all utilities): Added support for detecting endianness and
swapping bytes in start sector and sector count, if needed. Atari and
PC are both little-endian platforms, so the DOS sources didn't need to
support big-endian platforms. Tested on Solaris 2.6 on Sparc hardware
(big-endian).
