Dan Espen <
des...@verizon.net> writes:
> jmfbahciv <
See....@aol.com> writes:
>> Walter Bushell wrote:
>>> In article <
20120327081048....@eircom.net>,
>>> Ahem A Rivet's Shot <
ste...@eircom.net> wrote:
>>>> On Mon, 26 Mar 2012 19:48:55 -0400
>>>> Peter Flass <Peter...@Yahoo.com> wrote:
>>>>> On 3/26/2012 1:20 PM,
ken...@cix.compulink.co.uk wrote:
>>>>>> When was word length standardised? I remember the computer books I
>>>>>> have dating from the early era expected people to be familiar with
>>>>>> octal, binary and hex notation. I have come across references to early
>>>>>> computers using something like a 40 bit word.
>>>>> 12, 24, 26, 40, 48, 60, pick any of the above.
>>>> Er 36, or your not playing with a full DEC.
>>> On some DEC computers you were allowed to set the byte size to 6 or 7
>>> or 12 or 18. Some even used 8 as a byte size, when they wanted to be
>>> silly.
Only the PDP-6/PDP-10 family provides this facility. 7-bit bytes are used for
ASCII text (packed 5 characters per word), 6 bits for a 64-character subset.
Other byte sizes are often used in data structure manipulations. One might use
an 18-bit byte to pick up a value which does not align with the left or right
half of the word.
>> I could set the byte size from 1-36. I don't remember what happens
>> if the byte size was 0. None of the PDP platforms insisted on
>> one flavor of byte nor did they insist on byte-only accessing.
Barb is forgetting that the PDP-11 is explicitly a 16-bit word containing
2 8-bit bytes when she makes that claim about "none of the PDP platforms",
of course.
> If you could set it to 1-36, then I'd guess byte size was in
> "-1" notation. Ie. 0 is 1. Therefore, there would be no way
> to set byte size 0.
Your guess would be wrong.
The format of a PDP-10 section-local[1] byte pointer is
| P | S | |I X Y |
+______+______+_+_+____+________________________+
|pppppp|ssssss|0|i|xxxx|yyyyyyyyyyyyyyyyyyyyyyyy|
+------+------+-+-+----+------------------------+
0 5 6 1 1 1 1 1 1 3
1 2 3 4 7 8 5
The architecture requires that the size field S be non-zero. The position
field P is the location of the rightmost bit of the byte within the word,
represented as the number of bits from the right end of the word; a value of 44
(36) is special, being 1 bit to the left of the high-order bit 0, allowing the
incrementing byte instructions to begin at the leftmost point in the first word
of a string without any schratzing around. If an increment would move beyond
of the current word, the next byte is taken from the leftmost byte position in
the following word.[2]
Bit 12 is required to be 0.
The effective address of the word containing the byte is E (calculated as if in
an instruction, from the Y address in the right half word and if present, the
contents of the index register X and/or the indirection bit I).
[1] The original PDP-10 architecture used 18-bit addresses (allowing a neat
implementation of Lisp CONS cells) for a 256KW space. The second
generation processor presented 256KW spaces out of a 22-bit (4MW) physical
address space to each process in the system (including the monitor). The
third generation defined "extended addressing" of 30 bits and implemented
22 physical, 23 virtual, so "global byte pointers" were defined to allow 30
bits of address. These wre either 2 words, the second with the address, or
1-word pointers in which P+S were encoded in 6-bit values in the range
45-76 representing both position and size for 5 common byte sizes (7, 6, 8,
9 and 18).
[2] For example, if TEXT is located at address 1337, the pseudo-op POINT 7,TEXT
will be assembled as 440700001337. Incrementing byte instructions will
move through the string picking up the bytes at 35, 26, 17, 10, and 1 in
word 1337, then bytes at 35... in word 1340, etc. etc. usw. ktl.
--
Rich Alderson
ne...@alderson.users.panix.com
the russet leaves of an autumn oak/inspire once again the failed poet/
to take up his pen/and essay to place his meagre words upon the page...