On 11/5/2005 at 4:28 PM Gil Carrick wrote:
...
You might as well make it decimal, too, Dwight.
That way you
can use the
8-4 and 8-2 combinations to mark the end of a word... :)
(I guess it's been done!)
Kinda. The IBM 1401, 1440, 1410, but they used an extra bit in each (6
bit)
called a word mark rather than blow off a digit. It was
designed to hold
alphabetic info as well as doing decimal math.
Yeah, I know (I've been there and can even remember a bit of autocoder).
7080 or 1620/1710, which is what I had in mind when I wrote the above.
1620 used 5 bits (the 6th bit was parity and not addressable by program
control, although it was displayed and mentioned in the manuals). 82 was a
record mark--84 was a numeric blank, 842 was a group mark (used for disk
operations, mostly). The 1 bit didn't matter to the hardware for those
characters.
That flag bit on the 1401 and 1620 always seemed like a great waste of
resources. It was handy for the math tables (You don't really want to do
your math by lookup tables, do you?) to denote a carry, but I suspect that
much less than 20 percent of the digits in memory had a word mark set.
So, let's see--you really have 6 undefined characters at your disposal.
82, 821, 84, 841, 842 and 8421. Forget about addressing by the high-order
position (i.e. record addressing) for the time being. Let's see what can
be done with just 4 bits:
A 5 digit number could be encoded as (82)99999 if positive; or (821)99999
if negative, addressed by LSD. You could keep numbers in 10's complement,
instead of sign-magnitude.
That still leaves you with 84, 842, 841, 8421 for other record types and
devious schemes.
As far as ASCII goes, you've got 100 possibilities, which should be enough
for upper and lower case and a healthy dose of punctuation with a few
control characters.
Cheers,
Chuck