On Fri, Jul 12, 2024 at 1:45 PM Aron Insinga wrote: > 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: > > OWN > X: BYTE SIGNED, > Y: BYTE; > > 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 :-) ). > > 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: Y = .X was, in its completely expanded form: Y<0,8,0> = .X<0,8,1> Tying the BYTE and SIGNED attributes to the identifier cleaned up the clutter of all those angle-bracket field references. 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. -Paul W.