On 9/9/22, Norman Wilson <norman(a)oclsc.org> wrote:
IThe DEC-10 had `byte pointers' as well as
(36-bit) word addresses. A byte pointer comprised an address,
a starting bit within the addressed word, and a length.
There were instructions to load and store an addressed byte
to or from a register, and to do same while incrementing
the pointer to the next byte, wrapping the start of the next
word if the remainder of the current word was too small.
(Bytes couldn't span word boundaries.)
That very closely resembles a field-reference expression in BLISS,
which has the syntax:
addr<start, len, ext> where:
addr is an expression whose value is the address of the BLISS word
containing the field
start is an expression whose value is the stating offset within that
word of the field
len is an expression giving the length of the field in bits
ext is an expression whose value is either 0 0r 1 that tells how to
pad out the field to a full BLISS word size
It's probably no accident that BLISS field expressions match this
feature of the DEC-10 hardware.
-Paul W.