.TH BTOA 1 "21 February 1989"
btoa, atob \- encode/decode binary to printable ASCII
.RI [ -adhor "] [" "input filename" "] [" "output filename" ]
is a filter which reads binary bytes from the input file and
generates printable ASCII characters on the output file. It attaches
a header and a checksum to the archive. It can also reverse this,
creating a binary file from the archive.
Since last version of
.BR btoa / atob ,
several new features have been
added. The most obvious one is that
has been integrated
They are now the same program which is called with
different arguments. Another is the ability to repair damaged
The new version is compatible with the old version, that is,
it can still encode and decode old btoa files.
has an option to decode the archive, restoring the binary bytes.
It strips the input file until it finds a valid header, and continues
decoding until the end mark is found. It recognices both old- and
new-style headers, and can decode both. It is possible to leave out
the destination name when decoding new-style archives, because the
name is stored in the header. Entering a name will override the
It is possible to leave out the file names and redirect stdin and
stdout with '<' and '>' to the desired files. This is to maintain
compatibility with earlier versions of
now adds a single byte checksum to each row in the archive.
When an error is found, diagnosis automatically starts and produces
a diagnosis file which can be used to extract the damaged part from
an errorfree archive. The extracted part can then be used to correct
the damaged archive.
has options to perform the reparation
automatically. This is especially useful when downloading data
converted to text files, and occasionally finding that an archive
file of considerable size turns is corrupted.
encodes 4 binary bytes into 5 characters, expanding the file by
25%. As a special case 4 zeroes will be encoded as 'z' and 4
spaces as 'y'. This makes it possible to compress the archive a bit.
Shows help on
.BR btoa .
Switches to old version of
.BR btoa .
Extracts repair file from diagnosis file. This assumes that
an undamaged version of the archive and a file called
'btoa.dia' is present.
Repairs the damaged archive. A file named 'btoa.rep' must
be present for this to work.
Below follows a description of a normal repair session. Lines
beginning with 'Local>' were typed on the computer to which the
file was downloaded. Accordingly, lines typed on the connected
computer will begin with 'Remote>'. Sending a file to the other
computer will be noted as 'transmit file'.
A normal repairing procedure is as follows:
Local> btoa -a file.btoa
btoa: Bad checksum on line 2648.
btoa: Starting diagnosis.
btoa: Diagnosis output to 'btoa.dia'.
Local> transmit btoa.dia
Remote> btoa -d file.btoa
btoa: Repair output to 'btoa.rep'.
Remote> transmit btoa.rep
Local> btoa -a btoa.rep
btoa: Repaired archive written to 'btoa.rdy'.
You can now erase file.btoa and decode btoa.rdy using 'btoa -a btoa.rdy'.
Paul Rutter Joe Orost Stefan Parmark
.SH KNOWN BUGS
will not work properly unless the input is a true file or a
redirected one. This is because file positions are collected during
diagnosis for later reference when producing the diagnosis file.
The bug is actually in fseek() which only can reposition 'real' files.
Send bug reports to firstname.lastname@example.org (Stefan Parmark).