Bell System 'binary'?  [telecom]

Bell System 'binary'? [telecom]

NewsGroups | Search | Tools
 comp.dcom.telecom  Post an article  get this group's latest topics as an RSS feed add this group's latest topics to your My MSN content add this group's latest topics to your My Yahoo content  add this group's latest topics to your Google content  YahooMyWeb Yahoo!  Google Google  Windows Live Favorites Windows Live  del.icio.us del.icio.us  digg digg  Add to Netscape Netscape
Subject Author Date
Bell System 'binary'? [telecom] hancock4 02-15-2008
Posted by on February 15, 2008, 12:23 pm
If you were  Registered and logged in, you could reply and use other advanced thread options
I would appreciate any clarification of the following:

The decimal system we humans use is not readilly adapted to machine
interpretative use. Machines usually work on 'binary' (two states),
where as a 'bit' of information is represented by a 0 or 1, such as
whether there is power or not or a hole or not. These bits are
combined to form numbers. There are a variety of coding schemes to
translate decimal numbers into binary machine usable format (octal,
hex, etc.)

It seems that a number of applications within the Bell System used a
binary coding scheme called "2 out of 5" to represent a digit. It
seemed to mix well with crossbar applications. They used it to
identify routnig on long distance machine-readable cards, and on
trouble cards.

They would have:

0 1 2 4 7

As I understood it, whichever of the above was punched out added
together would indicate the digit. For example, if the 2, 4 were
punched out it would mean 6.

My questions:

1) did this code go from 0 to 9 or 1 to 10? Or didn't it matter since
it was representating a phone number?

2) For 0 , only one item had to be punched. Since this was called 2
out 5, didn't two items have to be punched (as a kind of parity
check)? (I guess for 1 they'd punch 0 and 1?)

3) Most computers used a real binary, such as 1 2 4 8, to represent a
digit. I don't recall applications outside the Bell System that used
the 7 as part of the representation. Now, in Bell System practice,
the phone numbers could be thought of as an alpha-numeric field, that
is, the phone numbers were identifiers, not used in arithemetic.
Phone numbers were often translated, that is exchange LI 8 (548) might
be translated as 'trunk group 3142" and the switch would go to
terminals at 3142.

4) Is this system still in use in telephone applications?


*Binary (and hex and octal) have never been my strong suits. (I work
with hex on occassion). Years ago word-oriented architectures used
octal coding. The IBM 650, a popular machine of the 1950s, used
something called quinary for its magnetic drum.


Thanks! [public replies please]


Posted by Jim Haynes on February 15, 2008, 1:40 pm
If you were  Registered and logged in, you could reply and use other advanced thread options
The combination 4-7 was used to represent the zero or ten in a phone
number. Every legitimate digit was represented by exactly two wires.
This allowed asynchronous operation - as soon as you get two wires
energized you have a digit, and when you got no wires energized you
were in between digits. (And more than two wires indicated an error.)


Posted by Curtis R Anderson on February 15, 2008, 11:10 pm
If you were  Registered and logged in, you could reply and use other advanced thread options
hancock4@bbs.cpcn.com wrote:
> I would appreciate any clarification of the following:
> [...]
> My questions:
>
> 1) did this code go from 0 to 9 or 1 to 10? Or didn't it matter since
> it was representating a phone number?
>
> 2) For 0 , only one item had to be punched. Since this was called 2
> out 5, didn't two items have to be punched (as a kind of parity
> check)? (I guess for 1 they'd punch 0 and 1?)

7 + 4 would be punched for 0. The same 2 of 5 code is used today by the
U.S. Postal Service in their PostNet barcodes, complete with 7 + 4 being
used for 0.

Eons ago, my late father received something with holes and punchable
slots on large index cards refered to as the McBee Keysort System. The
idea was that they in the technical support department would use that to
find answers to their problems, as a crude database.

The punch slots were marked for 7, 4, 2 and 1, but no 0. So he devised a
way to minimize the punches to represent letters A-M, overlapping with
N-Z. In my youth, that would have been the first time I saw the 7-4-2-1
combination for representing a digit. I was told that punching a 7 once
on the card was easier on the card rather than a 4 + 2 + 1, reducing the
likelihood of punched card spikes hanging up in the holes.

The sales rep supplying the keysort cards must have provided enough for
him to punch his record collection as well as his recipes. I'll put up a
URL of a scan of such a punched card if there is a demand.
--
Curtis R. Anderson, Co-creator of "Gleepy the Hen", still
Email not munged, SpamAssassin [tm] in effect.
http://www.gleepy.net/ mailto:gleepy@intelligencia.com
mailto:gleepy@gleepy.net (and others) Yahoo!: gleepythehen


Posted by Al Gillis on February 17, 2008, 9:13 pm
If you were  Registered and logged in, you could reply and use other advanced thread options
>I would appreciate any clarification of the following:
>
> The decimal system we humans use is not readilly adapted to machine
> interpretative use. Machines usually work on 'binary' (two states),
> where as a 'bit' of information is represented by a 0 or 1, such as
> whether there is power or not or a hole or not. These bits are
> combined to form numbers. There are a variety of coding schemes to
> translate decimal numbers into binary machine usable format (octal,
> hex, etc.)
>
> It seems that a number of applications within the Bell System used a
> binary coding scheme called "2 out of 5" to represent a digit. It
> seemed to mix well with crossbar applications. They used it to
> identify routnig on long distance machine-readable cards, and on
> trouble cards.
>
> They would have:
>
> 0 1 2 4 7
>
> As I understood it, whichever of the above was punched out added
> together would indicate the digit. For example, if the 2, 4 were
> punched out it would mean 6.
>
> My questions:
>
> 1) did this code go from 0 to 9 or 1 to 10? Or didn't it matter since
> it was representating a phone number?
>
> 2) For 0 , only one item had to be punched. Since this was called 2
> out 5, didn't two items have to be punched (as a kind of parity
> check)? (I guess for 1 they'd punch 0 and 1?)
>
> 3) Most computers used a real binary, such as 1 2 4 8, to represent a
> digit. I don't recall applications outside the Bell System that used
> the 7 as part of the representation. Now, in Bell System practice,
> the phone numbers could be thought of as an alpha-numeric field, that
> is, the phone numbers were identifiers, not used in arithemetic.
> Phone numbers were often translated, that is exchange LI 8 (548) might
> be translated as 'trunk group 3142" and the switch would go to
> terminals at 3142.
>
> 4) Is this system still in use in telephone applications?
>
>
> *Binary (and hex and octal) have never been my strong suits. (I work
> with hex on occassion). Years ago word-oriented architectures used
> octal coding. The IBM 650, a popular machine of the 1950s, used
> something called quinary for its magnetic drum.
>
>
> Thanks! [public replies please]
>


There is still a present day use for a five bit, 2 of 5 coding system. Dig
out yesterday's mail and look at the bar code printed along the lower edge
of an envelope. That's a 2 of 5 code with bit values of 0, 1, 2, 4 and 7!
(The "0" bit value could, of course, be a parity bit - I'm not sure now how
it is considered. To my way of thinking and training the zero value bit
would have been referred to as a parity bit).



Regardless, the decimal to "2 of 5" conversion works like this:

1 = 00011

2 = 00101

3 = 00110

4 = 01001

5 = 01010

6 = 01100

7 = 10001

8 = 10010

9 = 10100 and (hold onto your hats, sportsfans!)

0 = 11000



On the envelope you'll find long bars represent "1" bits and short bars
represent "0". Each bar code has a long bar at the beginning and end of the
code that is not part of the coding - sort of like a Start and Stop bit, if
you will. Between those two long bars are the five bits of each character
of the addressees Zip Plus-4 code. Some bar codes include an additional
pair of "mystery characters" at the end of the code but before the closing
long bar. I suspect this is for further sorting within the Zip Plus-4
destination. So, reading from left to right, mark off the bars in five bar
groups. Then decode the characters according to the coding shown above and,
voila!, you'll have the destination's zip code! Find some pre-printed
Business Reply Mail envelopes to practice on - that will give you some
addresses other than your own.



To keep this on a Telecom related theme. Data communications equipment from
the 1960s (or probably earlier) used parity bits with each character as an
error checking scheme. But character based parity would detect fewer than
50% of the possible errors and could easily CAUSE errors instead of
detecting them (that is, an error that changed two or four bits of a
character would not be detected by an odd or even parity check!). So why
was parity checking such a popular feature of data communications? Was it
cheap to implement? Was it just comforting to customers? Or did it
actually work pretty well in its day to day application? (The latter is
what I think - that it was not perfect but just good enough to be useful
until the electronics or computing power came along the make Cyclic
Redundancy Checks practical).



Thanks!


Posted by Robert Bonomi on February 17, 2008, 11:37 pm
If you were  Registered and logged in, you could reply and use other advanced thread options
>
>
>To keep this on a Telecom related theme. Data communications equipment from
>the 1960s (or probably earlier) used parity bits with each character as an
>error checking scheme. But character based parity would detect fewer than
>50% of the possible errors and could easily CAUSE errors instead of
>detecting them (that is, an error that changed two or four bits of a
>character would not be detected by an odd or even parity check!). So why
>was parity checking such a popular feature of data communications? Was it
>cheap to implement? Was it just comforting to customers? Or did it
>actually work pretty well in its day to day application? (The latter is
>what I think - that it was not perfect but just good enough to be useful
>until the electronics or computing power came along the make Cyclic
>Redundancy Checks practical).

It actually worked _quite_ well. One has to consider the 'probability
distribution (it's _not_ linear) of error bits, the duration of the
interference burst, and the relative probability of bits getting flipped
in each direction (usually *NOT* symmetric). Real-world data showed that,
for example, multi-bit errors were *much* rarer than single-bit ones,
And the '1 in n' chance (the odds that if a bit -was- 'flipped' that it was
the parity bit) that the error indication was a false positive was
considered acceptable. People were more concerned with the degree of
assurance that the data had arrived correctly than they were with the
occasional 'un-necessary' re-transmit.

In addition, even though the error-checking was only on a single character,
characters -were- primarily organized in 'groups' (lines, records, whatever)
of some sort. And a detected error in -any- character in the group would
lead to a retry for the entire group.

Thus, as long as there was _one_ DETECTED 'character in error' in the group,
it didn't matter how many 'undetected errors' there were.

If you start looking at 'burst errors' of varying lengths, you find that an
awful lot of them result in 'at least one' character with a parity violation.

This combination of factors pushed the typical real-world use of 'just
simple parity' to levels where the vast majority of errors =were= detected.

Where higher 'reliability' was needed one could devote 'extra bits' to each
character, and use some form of ECC coding, or add 'LRC' characters 'every
once in a while' -- basically a 'parity byte' every n bytes, where each bit
position across the sequence of bytes was treated a separate block, and had
to have the specified even/odd number of set bits. Parity by 'row', and
by 'column' of a matrix of bits.

Various kinds of 'checksums' appended to a group of data were also used.
a 16-bit summation of the values of a reasonable number of bytes requires
'mirror image' errors in pairs of bytes to generate a 'false negative'.
combined with parity 'across' the byte, you have to have 'mirror' two-bit
errors in (not necessarily adjacent) pairs of bytes. use multiple checksums
with different 'strides' down the string of bytes, and you can get _very_
high confidence levels without requiring a lot of computational effort.

As computing power became available, using a CRC approach became practical,
and traded increased computing effort for a reduction in the amount of data
'overhead' that one needed to carry along.


Similar ThreadsPosted
[telecom] Bell System binary - one more item... February 17, 2008, 9:14 pm
Bell System trivia... [Telecom] May 27, 2008, 7:23 pm
re: Bell System trivia... [Telecom] May 28, 2008, 8:28 am
Bell System Technical Journal--Reason for publication? [Telecom] February 23, 2008, 5:22 pm
History-- Bell System hotel/motel PBX services? [telecom] April 22, 2008, 12:31 am
Bell System history--Switching 1925-1975 [telecom] July 11, 2008, 4:34 pm
Re: [telecom] How's Pat? [Telecom] (now Old Bell System) April 13, 2008, 8:22 pm
History -- last Bell System crank (magneto local battery) phones? [telecom] August 14, 2008, 2:57 pm
Re: History -- last Bell System crank (magneto local battery) phones? [telecom] August 16, 2008, 1:56 am
The End of the Old Bell System Colors? January 26, 2007, 3:03 am

other useful resources:
The Federal Communications Commission (FCC)
Telecommunications Industry Association
Electronic and Software Security Products and Services
International Telecommunication Union

Custom CGI Perl and PHP programming by 1-Script.com

Contact Us | Privacy Policy
The site map in XML format XML site map