From e2da2bffe58a76c091d3496bd3ca2d2f18ea2eb6 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Thu, 13 Nov 2025 05:39:38 -0500 Subject: initial commit --- src/unalf.rst | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 src/unalf.rst (limited to 'src/unalf.rst') 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** ** + The archive is corrupt. If ** 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 + +SEE ALSO +======== + +TODO -- cgit v1.2.3