aboutsummaryrefslogtreecommitdiff
path: root/src/unalf.rst
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2025-11-13 05:39:38 -0500
committerB. Watson <urchlay@slackware.uk>2025-11-13 05:39:38 -0500
commite2da2bffe58a76c091d3496bd3ca2d2f18ea2eb6 (patch)
tree5195b221457842d781fadcb94331c93058046744 /src/unalf.rst
downloadunalf-e2da2bffe58a76c091d3496bd3ca2d2f18ea2eb6.tar.gz
initial commit
Diffstat (limited to 'src/unalf.rst')
-rw-r--r--src/unalf.rst124
1 files changed, 124 insertions, 0 deletions
diff --git a/src/unalf.rst b/src/unalf.rst
new file mode 100644
index 0000000..774ddf2
--- /dev/null
+++ b/src/unalf.rst
@@ -0,0 +1,124 @@
+.. RST source for unalf(1) man page. Convert with:
+.. rst2man.py unalf.rst > unalf.1
+
+.. |version| replace:: 0.0.0
+.. |date| date::
+
+=====
+unalf
+=====
+
+--------------------------------
+extract Atari 8-bit ALF archives
+--------------------------------
+
+:Manual section: 1
+:Manual group: Urchlay's Atari 8-bit Tools
+:Date: |date|
+:Version: |version|
+
+SYNOPSIS
+========
+
+unalf [**-l**] **alf-file**
+
+DESCRIPTION
+===========
+
+**unalf** lists or extracts the contents of an *ALF* archive.
+
+*ALF* is a compressed archive format similar to **arc**\(1), though
+not compatible with it. It was used on the Atari 8-bit platform
+beginning in the late 1980s.
+
+Extracted files are written to the current directory. Existing files
+are overwritten without warning.
+
+OPTIONS
+=======
+
+For compatibility with **arc**\(1) usage, the **-** in front of
+option letters is optional.
+
+-l
+ List contents of archive, but do not extract. The output format
+ is similar to that of **arc -v**, minus the *Stowage* column, since
+ *ALF* doesn't support multiple compression types. The date and time
+ are displayed, but in most .alf files these are the default values
+ of "8 Jan 82 12:24a".
+
+-v
+ Same as **-l**.
+
+**-e**, **-x**
+ Extract files. This is actually a no-op, as extraction is the
+ default action.
+
+EXIT STATUS
+===========
+
+**0** for success, **1** for failure.
+
+DIAGNOSTICS
+===========
+
+Besides the standard error messages such as "no such file or directory":
+
+**unalf: this is an ARC file, not ALF**
+ Self-explanatory. Use the **arc**\(1) utility for this file.
+
+**unalf: not an ALF file**
+ Self-explanatory. Either the file is too small (less than 29 bytes)
+ or its first two bytes don't match the *ALF* signature **0x1a** **0x0f**\.
+
+**unalf: junk at EOF (ignored)**
+ Usually this is caused by the .alf file being stored on a CP/M disk
+ at some time, or by a dumb file transfer protocol. Either way, the
+ file gets padded to the block size of the filesystem or protocol.
+ Usually, the padding characters are **0x1a**, aka ASCII control-Z.
+
+ If you see this message, you can ignore it. It's intended to let
+ you know that this .alf file can't be appended to by the **ALF.COM**
+ aka **LZ.COM** Atari utility.
+
+**unalf: checksum error on** *<file>*
+ The archive is corrupt. If *<file>* is a text file, it may be
+ partially readable. If it's an executable or other binary file, it's
+ probably unrecoverable.
+
+NOTES
+=====
+
+This **unalf** is 100% compatible with the original Atari **UNALF.COM**
+aka **DZ.COM**, with the following differences:
+
+- There is no interactive mode. The file to extract must be given as
+ a command-line argument.
+
+- Files are always extracted to the current directory. The original
+ **UNALF.COM** accepted a 2nd argument or prompted for the output directory.
+
+- This **unalf** is capable of listing the contents of an archive
+ without extracting it.
+
+- Turning the screen off for speed makes no sense on modern operating
+ systems, so there's no option for that.
+
+Neither this **unalf** nor **UNALF.COM** actually use the dates/times
+stored in the archive. Extracted files will have their timestamps set
+to the current date/time.
+
+COPYRIGHT
+=========
+
+**unalf** is released under the WTPFL: Do WTF you want with this.
+
+AUTHORS
+=======
+
+B. Watson <urchlay@slackware.uk>
+
+SEE ALSO
+========
+
+TODO