From: jn11+@andrew.cmu.edu (Joseph M. Newcomer)
Newsgroups: alt.folklore.computers
Subject: Re: What was the intended advantage of using 36bits CPU?
Date: 17 Oct 92 02:41:52 GMT
Organization: Carnegie Mellon, Pittsburgh, PA

Excerpts from netnews.alt.folklore.computers: 12-Oct-92 Re: What was the
intended a.. by Guy Harris@Auspex.COM 
> No, EBCDIC was 8 bits, but I don't think it emerged until the 8-bit-byte
> 360 did.  I think IBM's BCD used 6 bits; IBM *punched cards* used 12
> bits, but which IBM machines, if any, stored character strings in
> punched-card code (which doesn't include reading raw punched card code
> into memory and then converting it to BCD for processing)?

To the best of my knowledge, no IBM computer stored characters as 12-bit
characters.  The 7090/94 series read cards in column-binary, storing
three 12-bit columns in one 36-bit word, and reading a card into
24 words (columns 73-80 were not read, which is why they were used to hold
sequence numbers, and this is also why FORTRAN only used columns 1-72)
Conversion from row binary to 6-bit packed characters (6 per word)
was done in the "operating system" (IOCS? I never programmed a 709x)

This also may explain to those who never knew it why FORTRAN identifiers
were 6 characters long or the significance of column 6 in FORTRAN
programs...

The 1130/1800 also read column binary into 16-bit words, and I have a
vague recollection that you could pack 3 characters into a single 16-bit
word using a packing convention akin to PDP-10 RAD50.

The DEC10/20 used three character conventions: 7-bit ASCII, 5 7-bit
bytes left aligned in a 36-bit word with the low-order bit unused (it
flagged line numbers in LINED/SOS files...), which gave full 7-bit
ASCII; SIXBIT, which encoded the BCD subset (uppercase only, so no
left quote, {|}~), and RAD50 (40 decimal which is 50 octal) which
encoded 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ.$% and one other character
which I forget.  This was used to encode six-character symbols into
32 bits, allowing 4 bits in each word for flags (such as "global symbol",
etc.).  These RAD50 names were how the DDT symbol table was stored, and
how names were stored in .REL (==.o) files.

In a collection of papers "Faith, Hope and Parity" from the days where
Datamation was allowed to have a sense of humor, one sequence was on
"How to design a klu(d)ge" (I forget which spelling they used).  One
criterion was that it had to have a collating sequence different than
anyone else's and a character assignment that was different as well.

The 1401/40/60 collating sequence was NOT the binary character code.
The collating sequence, from appendix I of the 1440 manual, was
as shown below.  Read from top to bottom left to right.

space    000000   ;        101110   #        001011   J        100001
.        111011   delta    101111   @        001100   ...
(        111100   -        100000   :        001101   R        101001
[        111101   /        010001   >        001110   RM       011010
<        111110   ,        011011   SQ       001111   S        010010
GM       111111   % )      011100   ?        111010   ...
& +      110000   WS       011101   A        110001   Z        011001
$        101011   \        011110   ...               0        001010
*        100110   SM       011111   I        111001   ...
]        101101   b        010000   !        101010   9        001001


GM was the "group mark", graphic three horizontal lines with a vertical
bar thru the center.  "delta" was a triangle.  'b' was the "substitute
blank" (used to keep tapes with long stretches of blank characters
and which were encoded NRZ from having the long blanks being treated
as EOR gaps), SM was the segment mark (three vertical lines with a
single horizontal line), SQ was a square root sign, RM a record mark
(a not-equal sign but with a vertical rather than diagonal stroke).
WS was the word separator character, very important as it was used in
object decks to indicate which character got a word mark, and as far
as I can tell it was hand-drawn in every manual.  It looked like the
representation of a distant cartoon flying bird:
                    ___  ___
                   /   \/   \

Other vendors used different graphics; for example, Honeywell had a cent
sign and a single-character "CR" symbol for some of these characters.
This was common.  The non-contiguous alphabet was also quite common,
i.e., the sequence ?ABCDEFGHI!JKLMNOPQR=STUVWXYZ (where = means record mark).
In EBCDIC, the sequence is ABCDEFGHI...!JKLMNOPQR.../STUVWXYZ
where the ... represent the gaps in the sequence in which there are
bits but no associated graphics.
                                joe