<div dir="ltr"><div dir="ltr">On Fri, Jul 12, 2024 at 1:45 PM Aron Insinga <<a href="mailto:aki@insinga.com">aki@insinga.com</a>> wrote:</div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u>
<div>When verifying that, I found something I did not remember, that in
BLISS-16 and -32 (and I would guess also -64), but not -36 (the
word-addressed PDP-10), one could declare 8-bit signed and
unsigned data:
<div><blockquote>OWN<br>
X: BYTE SIGNED,<br>
Y: BYTE;<br>
</blockquote>
So the concepts of 'type' in BLISS, at least regarding data size
and representation, can get a little complicated (not to be
confused with COMPLEX :-) ).<br>
<br></div></div></blockquote><div>Yes, BLISS-16, BLISS-32, and BLISS-64 have BYTE (and WORD also for BLISS-32/64 IIRC) as a way to allocate data items smaller than a BLISS value. Such a declaration also attaches an implicit default field reference to the identifier. In the case of BYTE SIGNED it is <0, 8, 1> and for BYTE <0,8,0>. So the expression:</div><div><br></div><div>Y = .X</div><div><br></div><div>was, in its completely expanded form:</div><div><br></div><div>Y<0,8,0> = .X<0,8,1></div><div><br></div><div>Tying the BYTE and SIGNED attributes to the identifier cleaned up the clutter of all those angle-bracket field references.</div><div><br></div><div>Similarly BLISS has VECTOR (one-dimensional, 0-based array), BLOCK (equivalent of C's struct), and BLOCKVECTOR (array of structures) data declaration attributes that carry implicit field and addressing semantics. Again, a convenience for the programmer that alleviates clutter and makes the program more readable.<br></div><div><br></div><div>-Paul W.<br></div></div></div>