.. RST source for alf(1) man page. Convert with: .. rst2man.py alf.rst > alf.1 .. include:: ver.rst .. |date| date:: === alf === ------------------------------- create Atari 8-bit ALF archives ------------------------------- :Manual section: 1 :Manual group: Urchlay's Atari 8-bit Tools :Date: |date| :Version: |version| SYNOPSIS ======== alf [**--help**] | [**-a** | **-o** ] [**-t[dgz]**] *alf-file* *file* [*file* ...] DESCRIPTION =========== **alf** creates *ALF* archives. *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. The Atari executables are **LZ.COM** for the compressor and **DZ.COM** for the decompressor. **alf** is a rewrite of **LZ.COM** for modern operating systems, with added features. By default, the *alf-file* is created, and the *file*\s are compressed and added to it. If *alf-file* already existed, it is backed up by adding a **~** to the filename. The **ALF** file format only supports uppercase "8.3" filenames (Atari DOS or MS-DOS style), and does not support subdirectories. The filenames you give will be stored in the **ALF** file uppercased and truncated to fit the 8.3 scheme. This could result in duplicate filenames in the archive, if you're not careful. OPTIONS ======= -a Append to *alf-file*. The files are added to the end of the archive. Be careful not to add a file with the same name as as existing member of the archive. If *alf-file* doesn't exist, it will be created. No backup is made with **-a**. .. append to alf file. -A Convert line endings and tabs from ASCII to ATASCII in all input files. This will corrupt any executables or non-text data files, so use with caution. There is no way to autodetect text files, unlike **unalf**. .. convert EOLs and tabs in all input files. -h, --help Show built-in help message. .. show this help message. -o Overwrite *alf-file* if it exists; do not make a **~** backup. .. overwrite alf file if exists (do not create file~ backup). -td Use default **LZ.COM** timestamps (8 Dec 82 12:24). .. use default LZ.COM timestamps. -tu Use UTC for timestamps (default is local timezone). .. use UTC timestamps. -tz Use zero for timestamps (0 ??? 80 12:00a). .. use zero timestamps. -V, --version Show **unalf** version number and exit. .. show version number. .. ENDOPTS EXIT STATUS =========== 0 Success. 1 Fatal error (I/O or bad command-line arguments). NOTES ===== Compatibility ------------- This **alf** is *intended* to be 100% compatible with the original Atari **LZ.COM** aka **ALF.COM**, with the following differences: - There is no interactive mode. The file to create and the files to add must be given as command-line arguments. - **LZ.COM** always appends to a file that already exists. This **alf** overwrites (making a backup) by default, and can append with the **-a** option. - Turning the screen off for speed makes no sense on modern operating systems, so there's no option for that. Note that **alf** is a complete reverse-engineered rewrite in C, *not* a port of the original 6502 code as **unalf** is. It's still being tested, and may still contain bugs. File Size Limits ---------------- **alf** (and **LZ.COM**) have a 16MB file size limit. **uanlf** actually can't handle files above about 15MB, if you compress one with **alf**. Real Atari 8-bit files are never this large anyway, so it's a pathological case. A real Atari would take hours or even days to compress/decompress such files, and you'd have to have a hard disk and a DOS capable of handling multi-megabyte files... It's also impossible to compress empty (0-byte) files. **alf** will skip them, if any are found. Performance ----------- Performance is *horrible*. This shouldn't be a real problem on modern multi-GHz CPU, especially since most Atari 8-bit files are small (usually under 64KB). Interestingly, it's not O(n^2), it scales linearly, O(1): Compressing a 1.3MB text file takes 0.7 seconds on the author's (rather modest) Intel i7 workstation, and a file 10x as large takes approximately 10x as long (7 seconds). A 50KB file is almost instantaneous, 0.05 seconds, which is more typical of the files you'd actually use this with. Timestamps ---------- The date/time stamps stored in the archive are the **mtime**\s of the files (which is the same time **ls**\(1) shows, by default), and your local timezone is assumed. Only a 2-digit year is displayed by **unalf**, but the year stored in the *ALF* file doesn't have a Y2K problem. It does, however, have a Y2108 problem... COPYRIGHT ========= The original AlfCrunch (**DZ.COM** and **LZ.COM**) for the Atari 8-bit was released into the Public Domain. **alf** contains no code from AlfCrunch. **alf** is released under the WTPFL: Do WTF you want with this. AUTHOR ====== The original AlfCrunch for the Atari 8-bit was written by Alfred, who can be reached via the AtariAge.com forums with the username "Alfred". This **alf** was written by B. Watson . SEE ALSO ======== **unalf**\(1), **alfls**\(1) .. include:: manftr.rst