1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
.. 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** ] *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.
-o
Overwrite *alf-file* if it exists; do not make a **~** backup.
EXIT STATUS
===========
0
Success.
1
Fatal error (I/O or bad command-line arguments).
NOTES
=====
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.
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.
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 5 seconds on the
author's (rather modest) Intel i7 workstation, and a file 10x as large
takes approximately 10x as long (50 seconds). A 50KB file takes 0.2
seconds, which is more typical of the files you'd actually use this
with.
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 <urchlay@slackware.uk>.
SEE ALSO
========
**unalf**\(1), **alfls**\(1)
.. include:: manftr.rst
|