Evan wrote:
To be clear: do you not consider the P101 a
"computer" at all? If so,
then
what's your distinction between
"calculator" and "computer" when the
101
has conditional branching?
I guess I didn't really explain my thoughts about the differences in my
diatribe.
I am referencing "programmable calculators", not calculators in general.
A plain old calculator is not a computer in any way, as it has no way to
program it or store a program.
I limit the scope of my definition during the timeframe from 1963 (when
the Mathatron was introduced) through around 1972, when the HP 9830 came
about. That machine really blurred the line between programmable
calculator and computer. Even though the machine was (in my opinion) a
computer, it was conceived by HP's calculator division, and was marketed
as an advanced programmable calculator.
An interesting factor that calculator companies took into account when
classifying their machines as "programmable calculators" versus
"computers" is that from a marketing standpoint in the early 1970's,
computers were intimidating to people, while calculators were much more
familiar to people in business and government. Thus, even more advanced
machines made after this timeframe, such as HP's 9825, were marketed as
programmable calculators rather than computers, though the machine was
definitely more of a computer than a programmable calculator. The term
programmable calculator allowed these machines to sneak through the bean
counters who generally went into panic when they saw the term "computer"
on a purchase requisition.
I am also considering just the base device itself, without add on
peripherals in cases where such were available.
* Primarily has input, and is operated through, a keyboard that
has a numeric keypad (0-9), and discrete function keys for mathematical
& programming operations. Lacks an alphanumeric keyboard.
* Operates primarily as a decimal math machine, meaning its
registers store numbers in BCD (Binary-Coded Decimal), Excess-3, or
other 4-bit representations of decimal digits, and the ALU is generally
not a pure binary device (most ALUs were 4-bit parallel BCD adders, or
bit-serial adders that had correction circuitry to handle inter-bit and
inter-digit carry).
* Don't have the ability to perform Boolean logic operations
(bitwise AND, OR, NOT and derivatives) as built-in functions.
* Typically do not have the ability to manipulate text.
* Typically does not have much in the way of main storage. In
terms of K-bytes of memory, most programmable calculators from this
period max out at around 2K. Many machines had much less than this.
* Output is in the form of numeric display (CRT, numeric indicator
tubes(Nixie, Panaplex, VF, LED); limited function output printer
(numeric and function annotation); or both.
* Programs were initially entered via learn-mode, where the
operations provided for by the machine's keyboard were stored into
program memory as "steps". No "language" per-se, just keyboard
operations.
* In most cases, programmable calculators can't do self-modifying
code (though there are a few exceptions where program step and register
memory are overlapped)
* Could not support any high level language...all programming
operations were machine-level built-in functions. No language compilers
or interpreters were possible.
* Limited instruction sets, mostly confined to the basic keyboard
functionality of the machine. Conditionals based on simple conditions
(X=Y, X=0, X<>0, X<0, error condition exits, sense switch set/not set).
* Limited subroutine capabilities (nesting depth, mainly)
* Lack of any kind of stack architecture (for programming, not
register architecture). Recursion is difficult if not impossible due to
lack of ability to stack working registers. On some machines a stack
architecture could be programmed, but I'm speaking more about a built-in
type of functionality.
* No interrupt handling architecture. I/O is typically polled or
handled by pausing execution until an I/O is completed.
Obviously, there are exceptions to everything...some machines stretch
these rules a bit, but overall, most machines that have these
characteristics would be classified by me as a programmable calculator
rather than a computer.
Here are some examples of these criteria applied to a good selection of
machines --
* The Olivetti Programma 101 matches all of these criteria as
being a programmable calculator rather than a computer.
* The HP 9100A/B and 9810/9820/9821 match most of these, though
self-modifying code was possible on the 9100's, although rather tedious
to do. These machines could be significantly increased in capabilities
with add-ons, but again, I'm only considering the base unit and not
add-ons.
* The HP 9830 isn't a programmable calculator by these criteria,
though bitwise Boolean has to be "programmed" rather than being built-in
functions. I consider this machine to be a computer.
* The Wang 700/500/600-series calculators match these criteria,
and are thus programmable calculators and not computers. They had some
amazing computer-like capabilities when paired with peripheral add-ons,
but as standalone machines, definitely were high-end programmable
calculators.
* Wang's 2200-series machines were definitely computers by these
criteria.
* The Computer Design Corp. (Compucorp, also sold under Monroe and
Sumlock brands) programmable calculators stretch some of these criteria,
but only when used with external devices. Additional programming
capabilities/instructions were accessible through punched-card
programming, which required an external punched card reader. These
machines did have some really amazing programming capabilities that
blurred the line between programmable calculator and computer, but only
when used with external add-ons.
* The Tektronix Model 31 stretches some of these (can print text,
but can't really input or process it, and does have interrupt and DMA
capabilities), but I still consider it a programmable calculator rather
than a computer.
* Programmable machines by Sharp and Casio certainly match these
criteria.
* Monroe EPIC 2000/3000 programmable calculators match all of
these criteria.
* Friden programmable calculators match all of the criteria,
though the early machines (1151, 1152, 1154) had a really weird ALU and
numeric representation that wasn't BCD or other four-bit decimal
representation.
* Mathatronics' machines match all of these criteria...at least
running standalone. With add-on devices, the capabilities could be
dramatically expanded, but I'd still consider these programmable
calculators rather than computers even when maxed out with add-ons.
I hope that this serves to clarify my statement as to why I consider the
Olivetti Programma 101 a programmable calculator rather than a "personal
computer".
Rick Bensene
The Old Calculator Museum
http://oldcalculatormuseum.com