Question: The Selector Bit on the Philco 212
Mozilla v Firefox 404
i have 3.4mhz intel mulbreasthreaded processor with 4gbytes of memory running fc3 (although fc3 claims it is only 3.5gbytes). the problem occurs...
Sending E-mails out to a few individuals who recalled having worked with a Philco 2000 computer produced one informative reply. The respondent had worked with the Philco 211, whose memory could have up to 32,768 words.
At first, I found his reply hard to believe, since it didn't quite seem to make sense.
If the selector bit had a certain value (let us say zero, as seems likely), then the next fifteen bits were simply the address of a word in memory.
If the selector bit had the other value (let us say one), then it was followed by a three-bit field indicating an index register, followed by a twelve-bit displacement.
At first, I thought there had to be some mistake.
If you have a displacement that can't indicate a location anywhere in memory, you must somehow add something to it that can point anywhere in memory; so how can one *only* add to it the contents of an *index* register? An index register is something that indicates a position within a variable, already fully addressed by the rest of the instruction!
But further reflection brought me to the realization that I was being unduly narrow in my perspective.
You have 16 bits left in an instruction, and 32,768 bits of memory. One option you have, if you want indexing, would be to have the one remaining bit indicate the use of one index register.
But what if you want to access more than one array at the same time? Suppose you feel you need to have *eight* index registers - because the IBM 7094 II had seven index registers.
Mozilla v Firefox 405
Anne & Lynn Wheeler Ahh! but that is only a weak excuse. As you can pickup a brand new windoze keyboard at OfficeMax for 30 bucks or less. Now on a Macintosh That's another story. Mac...
If you can't both specify an index register AND a complete memory address, you still DO have another choice. It's called *register indirect* addressing. So what we're dealing with, really, are address registers - but as they are used to reference arrays, they might still be called index registers. The 12-bit displacement, although probably rarely used (that is, it would almost always contain zero) could conceivably usefully contain a nonzero value under some situations (fetching of offset items from data structures in arrays, multiple small contiguous arrays from which the same element is accessed).
Mozilla v Firefox 407
Touch typing was pretty much the only useful thing I got out of high school, and it would have been useful even...
Doing something like what the Philco 2000 did, but with *base registers* instead of with indexing, turns out to be even more useful - it allows one base register to point to a larger segment in memory than others, helpful if for some reason base registers are forced to point to tiny (i.e., 4,096 bytes, like on the 360) instead of reasonable (i.e., 65,536 bytes, like on the 68000) sized segments. And thus, to my architecture, at
I have added a whole clbutt of selective short page modes.