[comp.sys.cbm] UX-Maze: Binary formats

acliu@skat.usc.edu (Alex C. Liu) (12/10/89)

FILE: help binary.formats
LAST CHANGE: Dec 8th, 1989
VERSION: UX-Maze Server V2.0c
				   
		 UX-Maze Encoded Binary File Formats
		 ===================================

In order for one to be able to send binary data over 7bit connections
such as the ones in mail, one must be able to conver the Binary data
into a more printable format and be able to put it back into binary.

One good think about computers, is that all standards aren't standard,
so  this server provides 3 different methods for encoding binary
information:

uuencode
  This is the USENet's and UNIX's standard for sending binary data
over mail connections.  This is method is the default for the server.
File's are expanded by 35% though.  Source code for decodeing
uuencoded files is available through this server in the file:
	unix-support uuencode

btoa
  This is a nice encoding programming originally distributed with the
Unix Compress package.  It is like uuencode, but it will expand the
files only 25%.  And also trys to compress strings of zeros into a
single character.  The source for this method is in:
	unix-support btoa

hex
  This is a format I made up in order to help people who don't have
Unix or uudecoding capablities handy.  It is a very simple encoding
method, involving Binary->Hex conversion and some extra checksums
added just because I wanted the protocol to look fancy.  Basicly, a
encoded file has the following form:
	 ________________
	|Beginning of file
	|Some extra garbage
	|
	|hexf filename			<- Indicates that a hex file
	|:082345677667D87D8BC93            begins (Pretty much like
Hex en-	|:03449A87C837F874B8374FF          the "begin" line in
coded	|:033045BD311F34559302             uuencoding
binary  |:0300040484993FA884BA6D
data    |:1233BBC3349B33DFF4844
	| ^^|<----up to---->|^^
          ||    35 bytes     ||
Numbers <=++	 in hex      ++=> Checksum
of bytes in		Mod256 addition of all
line (without)		bytes in the line w/o including
including the chksum      the byte count
	|:082345677667D87D8BC93
	|:03449A87C837F874B8374FF
	|:033045BD311F34559302
        |:0300040484993FA884BA6D
        |:1233BBC3349B33DFF4844
	|end				<- Indicates the end of the
	|Some more trailing garbage        hex file
	|________________
This encoding method was design to be simple and at the same time
robust.  So users from almost any o.s. will be able to write a
decoder.  If you have any questions on this method, don't hesitate to
ask.  Also, a sample BASIC decoding program can be found in:
	help unhexf.bas


---
Alex C. Liu 
acliu%skat@usc.edu	acliu@skat.usc.edu
(Simple .signature, $CHEAP$)