You are correct. See p. 10 of this manual: http://www.piercefuller.com/library/ibm-a22-6528-6.html
On Jun 9, 2017, at 4:24 PM, Henry Baker <hbaker1@pipeline.com> wrote:
Re modifying the index registers with OR:
Are you sure you're talking about *reading* the index registers -- e.g., via a normal load or store accumulator instruction?
I'm pretty sure that specifying multiple index registers OR'ed them together in a non-destructive way.
I think you might be talking about *incrementing/decrementing* a "multiple" index register "5"=0b101.
Think about the wired-OR busses; on reading, both registers get wire-OR'd together on the address modification bus. But since these registers are *real* registers, they don't have to be restored (e.g., like a core memory would). When *writing* to the registers, the 3 index register bits simply indicate which of the 3 real registers are *listening* to the bus, so there shouldn't be any OR'ing going on; the load should load into both registers simultaneously.
I think you must be referring to *incrementing* and *decrementing* index register "5" = 0b101. These operations would wire-OR the contents of registers 0b001 and 0b100, send that info to the incrementer, and the incremented result would be written back to *both* registers simultaneously.
At 08:54 AM 6/8/2017, Tom Knight wrote:
You're right about the 7090.
As an extra "feature" when you indexed by two of the three index registers, not only did it OR them for the address, but it permanently modified both registers with the resulting OR.
The array of lights were (rarely) used to display messages on the 7094.
On Jun 8, 2017, at 11:06 AM, Mike Speciner <ms@alum.mit.edu> wrote:
As I remember, the 7090 had only 3 index registers. It was the 7094 that had 7, and the extra registers were displayed in lights in a rectangular [physical] array of lights attached above the top of the 7090 console. But maybe I'm imagining things--it's been a few years.
Also, the 650, the first computer I ever used, displayed its registers in biquinary with some kind of nixie tubes.
And the LGP-30, the computer my high school acquired, and whose chief claim to fame was the one colored pink at the Clairol exhibit of the 1964 Worlds Fair [or so I heard from my female classmates--the exhibit was open only to females], was allegedly 32 bits, but its drum memory always had the low-order bit set to 0, and just to be extra perverse, its multiply instruction [M] assumed the multiplicands were binary fractions with the binary point right after the sign bit. I think it was twos-complement representation. (It had a second multiply instruction [N] which produced the rest of the bits.) Oh--just noticed--there's a manual on the web.
--ms
On 07-Jun-17 22:57, Henry Baker wrote:
At 06:24 PM 6/7/2017, Victor Miller wrote:
I remember an IBM FORTRAN manual stating that arrays were stored in "natural" order -- backwards! The index registers on the 709/7090/7094 subtracted. Yes!
Curiously, IBM saved money on the 7040 (a poor man's 7090) by dispensing with 4 of the 7 index registers -- remember, each bit of an index register was an entire card full of transistor electronics (I seem to recall), so 4x15 = 60 cards saved.
So the question is: what happened if you specified index register 5 = 0b101 (which didn't exist on the 7040) ?
Answer: the 7040 OR'd the bits of register 1 = 0b001 and register 4 = 0b100, providing a really, really obscure way to OR two 15-bit quantities!
Needless to say, the 7040 Fortran compiler didn't make use of this capability, but someone in the medical/statistical computing group that I worked for did: he arranged 3D subarrays and used the 3 index registers for the x,y,z coordinates -- he could index up to a 32x32x32 3-D array this way. (We were simulating the effects of radiation on human tissue, so 3D "voxels" -- although that term came decades later -- were important.)
The 7040 never trapped/interrupted on an un-recognized op code; it simply did the best that it could. So we tried to completely map out what all of the non-standard op codes did. Sadly, we never found anything terribly useful -- the best we could do was a block-move-and-complement-every-other-word! Good luck trying to do something useful with that one!