diff options
Diffstat (limited to 'third_party/gsm/man/bitter.1')
-rw-r--r-- | third_party/gsm/man/bitter.1 | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/third_party/gsm/man/bitter.1 b/third_party/gsm/man/bitter.1 new file mode 100644 index 00000000..2dad78b0 --- /dev/null +++ b/third_party/gsm/man/bitter.1 @@ -0,0 +1,70 @@ +.\" +.\" Copyright 1992 by Jutta Degener and Carsten Bormann, Technische +.\" Universitaet Berlin. See the accompanying file "COPYRIGHT" for +.\" details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. +.\" +.PU +.TH BITTER 1 +.SH NAME +bitter, sweet \(em code-generators for packing bits +.SH SYNOPSIS +bitter < input > output +.br +sweet < input > output +.SH "DESCRIPTION" +Bitter and sweet are two filters which turn a description of the +form +.nf + name number-of-bits + name number-of-bits + ... +.nf +into code. +.PP +Bitter generates code that packs the specified bits from their +variables into an array of unsigned char referenced by an +advancing pointer c. +.PP +Sweet generates code that unpacks the specified bits from an array +of unsigned char referenced by a mutable pointer c into the +named variables. +.\" .SH OPTIONS +.\" .SH "RETURN VALUE" +.\" .SH ERRORS +.SH EXAMPLES +.nf +% cat in +amaretto 1 +banana 2 +cherry 3 +strawberry 4 +vanilla 15 +walnut 15 + +% bitter < in + *c++ = ((amaretto & 0x1) << 7) + | ((banana & 0x3) << 5) + | ((cherry & 0x7) << 2) + | ((strawberry >> 2) & 0x3); + *c++ = ((strawberry & 0x3) << 6) + | ((vanilla >> 9) & 0x3F); + *c++ = ((vanilla >> 1) & 0xFF); + *c++ = ((vanilla & 0x1) << 7) + | ((walnut >> 8) & 0x7F); + *c++ = walnut & 0xFF; + +% sweet < in + amaretto = (*c >> 7) & 0x1; + banana = (*c >> 5) & 0x3; + cherry = (*c >> 2) & 0x7; + strawberry = (*c++ & 0x3) << 2; + strawberry |= (*c >> 6) & 0x3; + vanilla = (*c++ & 0x3F) << 9; + vanilla |= (*c++ & 0xFF) << 1; + vanilla |= (*c >> 7) & 0x1; + walnut = (*c++ & 0x7F) << 8; + walnut |= *c++; +.SH NOTES +This is a quick hack for the gsm_encode() and gsm_decode() routines. +.SH BUGS +Please direct bug reports to jutta@cs.tu-berlin.de and cabo@cs.tu-berlin.de. |