[comp.arch] Dollar arith on 32 bit machines; NCR Century & 399 Query

roskos@csed-1.UUCP (Eric Roskos) (02/11/88)

In article <973@ssc-bee.ssc-vax.UUCP>, lee@ssc-vax.UUCP (Lee Carver) writes:
> There are lots of companies out there that need to add up more then
> $4 billion in sales.  Even bigger numbers if you count transactions,
> not just year end totals.
> And those numbers better be right, down to the penny.

Most business applications (at least, other than on microcomputers) use decimal
representations for money amounts, e.g. BCD (COBOL's COMP-3) or even, on
some machines, ASCII (I recall that the old NCR Century machines could add
ASCII).  32-bit machines have been used in accounting for years, and that
is how... it is strange that in some microcomputer books you read that BCD
support provided with some machines is due to some "historical reason" which
they vaguely allude to...

(Many years ago I used to program in COBOL... on an NCR Century 101...
and in some "other" language on an NCR 399 Accounting Machine... remember those?
This was what we old* folks did because they didn't have microcomputers yet**.
For many years I've wondered what the underlying architectures of those machines
were; on the 101, there were switches you could use to "microstep" through the
microprogram, and lights that showed the microprogram counter.  But in those
days I didn't know what that meant, so it was no use.  In fact, I am doubtful
those lights and switches were often used in the field at all, except that when
they were blinking you could tell the machine was running, and certain patterns
meant it was doing arithmetic, idling, etc.).  Actually, now that I think
about it, there was a "microstep" and a "nanostep" switch, I think, up next
to the switches you set to enable/disable halts on ME errors (memory errors,
which were common since some of the machines used a somewhat unreliable
rod memory) and PE errors (which I never knew to occur).

Does anyone know anything about those machines, how they were implemented?
They were apparently very simple CPUs, which were microprogrammed to do things
like BCD and ASCII arithmetic; strangely, according to the manual, binary
arithmetic took the same amount of time as BCD arithmetic (or maybe it was
just per byte of BCD).  The machines were *extremely* slow, although partly
because they only had typically 32K of memory, and did heavy swapping of
overlays.  They didn't have registers, although some of them had "index
registers" which were just locations in low memory which were used as indices
by some instructions (it saved bits in the instruction word to have some small
area in memory be for "index registers", I guess).  All operations were
memory-to-memory.  There was an assembly language, NEAT-3, which, I've heard, 
actually generated sequences of other instructions (i.e., instructions in the 
language actually were macros in many cases), and an undocumented lower-level 
language you could turn on but couldn't use because it wasn't in any of the 
user manuals.  Some of the error messages had references to "macro generators,"
which suggests this was true.

They ran an OS called "B1"; some places in the object code you could find
the name "Burnett," so I have wondered if that was where the name
came from.  It had large forms you had to fill out and punch onto a punch
card before you could do I/O; but, unlike most machines today, if you did
it right, you could tune your I/O performance considerably without changing
any source code.

Despite all that, there was something elegant about those machines, even
the 399, which seemed to be sort of the "last of the line" of a series of
accounting machines, a type of computer you don't hear about anymore.  The
399s even supported hard disk drives, which was a revolutionary concept
considering its normal medium was cassette tape (and its predecessors just
used stripes of tape on the back of sheets of paper, the machines with
discrete TO-5 transistors soldered onto buses in large panels that swung
out from the back of the machine instead of printed circuit boards).

*Relatively speaking, of course.
**Well, not widely available where the average person could get to one.
  This was several years before the Apple II came out.
-- 
Eric Roskos, IDA (...dgis!csed-1!roskos or csed-1!roskos@HC.DSPO.GOV)