Re: questions about bits and bytes

At 09:17 PM 4/11/96 -0500, Sten Drescher wrote:
jim bell writes:
jb> At 06:29 PM 4/10/96 -0700, Simon Spero wrote:
No, bytes are no always 8 bits - some machines use(d) 9-bit bytes.
jb> I notice you gave no examples. Why is that?
As I recall, the Honeywell H6000 used 6-bit bytes and 36-bit (6 byte) words.
Here's the problem with this kind of counter-example: You do not explain whether or not these data structures were actually called "bytes" by the manufacturer, or whether the term "byte" was inflicted later on by people who didn't know better. Remember, in the absence of any name for a "6-bit data object" I'm sure the temptation was probably very strong to misuse a term, especially in hindsight. See, I do not challenge the fact that there were plenty of data objects of length other than 8-bits. The issue is whether or not the people back then actually believed that a correct, official usage of the term "byte" included lengths other than 8. Dmitri Vulis at least acknowledged that when he looked back into the documentation, he discovered that the term used for his counter-example was "character", not byte. How many other of these counter-examples would show this kind of thing?

jim bell <jimbell@pacifier.com> writes:
See, I do not challenge the fact that there were plenty of data objects of length other than 8-bits. The issue is whether or not the people back then actually believed that a correct, official usage of the term "byte" included lengths other than 8.
Reading from the PDP-10 Reference Handbook (DEC, 1971) page 2-30, we read: To conserve memory, it is useful to store data in less than full 36-bit words. Bytes of any length, from 1 to 36 bits, may be entered using a BYTE statement. BYTE (N) X,X,X The first operand is the byte size in bits. It is a decimal number in the range 1-36, and must be enclosed in parentheses. ... In the following statement, three 12-bit bytes are entered: LABEL: BYTE (12)56,177,N This assembles as... and so on. The PDP-8 "Introduction to programming" (1970) has similar remarks, though not as explicit. On page v in the introduction it says o A six-bit byte swap instruction that provides much faster... and in the description of special periph ops on page D 1-15: VBA 6534 BYTE ADVANCE command requsts next twelve bits, data ready flag is set. I suggest you gracefully back off, if it's still possible. Jim Gillogly Sterday, 22 Astron S.R. 1996, 21:04

Jim Gillogly <jim@ACM.ORG> writes:
jim bell <jimbell@pacifier.com> writes:
See, I do not challenge the fact that there were plenty of data objects of length other than 8-bits. The issue is whether or not the people back then actually believed that a correct, official usage of the term "byte" included lengths other than 8.
Reading from the PDP-10 Reference Handbook (DEC, 1971) page 2-30, we read:
To conserve memory, it is useful to store data in less than full 36-bit words. Bytes of any length, from 1 to 36 bits, may be entered using a BYTE statement.
BYTE (N) X,X,X ...
_The Programmer's Guide to the 1802_ (Tom Swan, Hayden Books, 1981) says the following on p. 19: The eight binary digits or bits represented in Fig. 2-1 are commonly given the name _byte, and in this book, one byte will always equal eight bits. (This is a rather common convention in microcomputing, but a byte does not always equal eight bits in much of the published literature.) Some books also refer to computer "words," but, since a "word" is even more loosely defined than a "byte," we will refrain from using it as a label for binary numbers. In addition, to make things come out right for eight-bit computers, leading zeros are usually written in front of binary numbers so all numbers come out to even multiples of eight-bit bytes. _Assembler Reference Manual for the Sub Workstation, Version 1.0 of 30th November 1982_ (we're talking the Motorola 68K Sun 1 here!) says: Many MC68000 machine instructions can operate upon byte (8-bit), word (16-bit), or long word (32-bit) data. They felt it necessary to specify this in a number of places. A very important book that anyone who programs computers should read -- Donald Knuth, _The Art of Computer Programming_ (Addison Wesley, 1973), v. 1, p. 120, says the following about the MIX language: Words. The basic unit of information is a _byte. Each byte contains an _unspecified amount of information, but it must be capable of holding at least 64 distinct values. That is, we know that any number between 0 and 63, inclusive, can be contained in one byte. Furthermore, each byte contains _at _most 100 distinct values. On a binary computer a byte must therefore be composed of six bits; on a decimal computer we have two digits per byte. Programs written in the MIX language should be written so that no more than sixty-four values are ever assumed for a byte. If we wish to treat the number 80, we should always leave two adjacent bytes for expressing it, even though one byte is sufficient on a decimal computer. _An _algorithm _in _MIX _should _work _properly _regardless _of _how _big _a _byte _is. Although it's quite possible to write programs which depend on the byte size, this is an illegal act which will not be tolerated; the only legitimate programs are those which would give correct results with all byte sizes. It is usually not hard to abide by these ground rule, and we will thereby find that programming a decimal computer isn't so different from programming a binary one after all. ... _A _computer _word _is _five _bytes _plus _a _sign. The sign position has only two possible values, + and -. Give it up, Jim -- I have more ancient writings than you can shake a dynamite stick at. :-) --- Dr. Dimitri Vulis Brighton Beach Boardwalk BBS, Forest Hills, N.Y.: +1-718-261-2013, 14.4Kbps

Just a note, Jim's attribution dates seem to be older than yours. Not that it matters a whole hill of beans. Dan P.S. DEC referred to memory size on the 11 series prior to the 11/70 in 16 bit words, not 8 bit bytes. On Fri, 12 Apr 1996, Dr. Dimitri Vulis wrote:
Jim Gillogly <jim@ACM.ORG> writes:
jim bell <jimbell@pacifier.com> writes:
See, I do not challenge the fact that there were plenty of data objects of length other than 8-bits. The issue is whether or not the people back then actually believed that a correct, official usage of the term "byte" included lengths other than 8.
Reading from the PDP-10 Reference Handbook (DEC, 1971) page 2-30, we read:
To conserve memory, it is useful to store data in less than full 36-bit words. Bytes of any length, from 1 to 36 bits, may be entered using a BYTE statement.
BYTE (N) X,X,X ...
_The Programmer's Guide to the 1802_ (Tom Swan, Hayden Books, 1981) says the following on p. 19:
The eight binary digits or bits represented in Fig. 2-1 are commonly given the name _byte, and in this book, one byte will always equal eight bits. (This is a rather common convention in microcomputing, but a byte does not always equal eight bits in much of the published literature.) Some books also refer to computer "words," but, since a "word" is even more loosely defined than a "byte," we will refrain from using it as a label for binary numbers. In addition, to make things come out right for eight-bit computers, leading zeros are usually written in front of binary numbers so all numbers come out to even multiples of eight-bit bytes.
_Assembler Reference Manual for the Sub Workstation, Version 1.0 of 30th November 1982_ (we're talking the Motorola 68K Sun 1 here!) says:
Many MC68000 machine instructions can operate upon byte (8-bit), word (16-bit), or long word (32-bit) data.
They felt it necessary to specify this in a number of places.
A very important book that anyone who programs computers should read -- Donald Knuth, _The Art of Computer Programming_ (Addison Wesley, 1973), v. 1, p. 120, says the following about the MIX language:
Words. The basic unit of information is a _byte. Each byte contains an _unspecified amount of information, but it must be capable of holding at least 64 distinct values. That is, we know that any number between 0 and 63, inclusive, can be contained in one byte. Furthermore, each byte contains _at _most 100 distinct values. On a binary computer a byte must therefore be composed of six bits; on a decimal computer we have two digits per byte.
Programs written in the MIX language should be written so that no more than sixty-four values are ever assumed for a byte. If we wish to treat the number 80, we should always leave two adjacent bytes for expressing it, even though one byte is sufficient on a decimal computer. _An _algorithm _in _MIX _should _work _properly _regardless _of _how _big _a _byte _is. Although it's quite possible to write programs which depend on the byte size, this is an illegal act which will not be tolerated; the only legitimate programs are those which would give correct results with all byte sizes. It is usually not hard to abide by these ground rule, and we will thereby find that programming a decimal computer isn't so different from programming a binary one after all.
...
_A _computer _word _is _five _bytes _plus _a _sign. The sign position has only two possible values, + and -.
Give it up, Jim -- I have more ancient writings than you can shake a dynamite stick at. :-)
---
Dr. Dimitri Vulis Brighton Beach Boardwalk BBS, Forest Hills, N.Y.: +1-718-261-2013, 14.4Kbps

Dan Harmon <harmon@tenet.edu> writes:
Just a note, Jim's attribution dates seem to be older than yours. Not that it matters a whole hill of beans.
Nope, Jim sited a PDP-10 manual from 1971, and the first edition of _The Art of Computer Programming_ came out in 1967. (I quoted the second edition, but I know that the first edition had MIX too.) The book _IBM's Early Computers_ by Bashe, Johnson, Palmer, Pugh says the following about the STRETCH system developed in 1956 (akin to 704 and 705): "In July, Stretch technical staff manager Buchholz wrote a report listing the advantages of a word length of sixty-four bits. Assuming an _m-bit binary field for addressing a sixty-four-bit memory-contained word, he noted, _m+1 bits could address a half-word, _m+2 bits a quarter-word, _m+3 bits an eight-bit segment, and so on until _m+6 bits could address a single bit. Using this systematic addressing principle, one class of instructions could address words, and other classes could address shorter operands by increasing the length of an address field. By this time, the term "byte" had been coined as a way of avoiding typographical confusion between bit and "bite", a term that project personnel had been using to designate small, character-oriented word segments. The sixty-four-bit format was adopted in September; like the previous format of sixty bits, it was accompanied by redundant bits for use by error-detection and -correction circuits." They footnote: Also see W. Buchholz, January 1981: "Origin of the Word Byte", _Annals _of _the _History _of _Computing 3, p. 72, which explains how "byte" later came to imply eight bits. P.S. The _Barron's Dictionary of Computer Terms_ says: BYTE A byte is the amount of memory space needed to store one character, which is normally 8 bits. ... (Wondering what the cryptographic relevance of all this might possibly be...) --- Dr. Dimitri Vulis Brighton Beach Boardwalk BBS, Forest Hills, N.Y.: +1-718-261-2013, 14.4Kbps
participants (4)
-
Dan Harmon
-
dlv@bwalk.dm.com
-
jim bell
-
Jim Gillogly