DragonFly On-Line Manual Pages
BTOA(1) DragonFly General Commands Manual BTOA(1)
NAME
btoa - encode/decode binary to printable ASCII
SYNOPSIS
btoa [-adhor] [input filename] [output filename]
DESCRIPTION
Btoa 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 btoa/atob, several new features have been added.
The most obvious one is that atob has been integrated with btoa. They
are now the same program which is called with different arguments.
Another is the ability to repair damaged archives.
The new version is compatible with the old version, that is, it can
still encode and decode old btoa files.
Btoa 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 autonaming
function.
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 btoa.
Btoa 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. Btoa 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.
FEATURES
Btoa 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.
OPTIONS
-h Shows help on btoa.
Switches to atob (decoding) mode.
-o Switches to old version of btoa.
-d Extracts repair file from diagnosis file. This assumes that an
undamaged version of the archive and a file called
Repairs the damaged archive. A file named 'btoa.rep' must be present
for this to work.
EXAMPLES
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'.
AUTHORS
Paul Rutter Joe Orost Stefan Parmark
KNOWN BUGS
Btoa 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 d84sp@efd.lth.se (Stefan Parmark).
21 February 1989 BTOA(1)