On 01/15/2017 07:35 AM, Paul Koning wrote:
Dijkstra's objection wasn't to linkage via a
register -- after all,
his earlier machine (the Electrologica X1) does that too, or more
precisely via one of 16 low core locations. The problem with the
1620 is that the link register is not readable -- it's an invisible
register. And that's pretty much unique; all the other machines use
a program-accessible register. So you can context switch the link
address, but not on the 1620.
More precisely, as I've noted, the P-counter is a write-only
register--there is no way for a program to determine its contents. Why
IBM chose never to remedy this situation in later revisions is a mystery.
The other obvious issue with the 1620 is that it has
no interrupts,
so it's hard to see how you would do multiprogramming.
If you wanted interrupts, you ordered the 1710 variant of the 1620;
complete with RTC. But the 1710 was used mostly for process control.
Akin to the 1130/1800 distinction.
And one other, more obscure, objection is that while
it has paper
tape readers, it's incapable of reading paper tapes with arbitrary
data. It only accepts tapes punched with the specific character
coding it likes.
I suspect that the 1620 was not alone in this. After all, it's a
*decimal* machine, which means that alphamerically, it could represent
100 alphameric characters plus record mark, numeric blank and group
mark. That's short of the 128 characters that a 7-level paper tape can
represent. Dijkstra's objection to the record mark issue is that I/O on
the 1620 is value-delimited--on alphameric output, the delimiting record
mark is not punched. However, it's perfectly possible to punch a record
mark using a Write Numeric instruction. (I/O on the 1620 could be
numeric or alphameric; thus a two-digit value could be punched
alphamerically as a single character or numerically as two.
Dig around in the list of old decimal machines and I'm sure that this
behavior wasn't unique.
My own thoughts on the 1620 I/O was that it was unnecessarily complex in
the interests of keeping it variable-length. AFAIK, you couldn't read
just one column of a card on the 1130--you always got the whole shebang.
--Chuck