Molly, thanks for the example!
You're most welcome but, it seems you are still struggling with the concept

The absolute modifier always needs a second variable name, right? (aByte + bByte or UDR + UDRbits ).
For manipulating another variable of the same size ( pointing at the same locatio ) but of another type, yes. The absolute modifier is not the holy grail there. You asked, i delivered

Thats very unconvenient in my opinion.
Yes it is very inconvenient, hence using a variant record and a record helper (not type helper, my bad)
It seems the same holds for the variable record and also for Thaddys proposal using a set (if I understood correctly).
No, see above.
The same with using the bitpacked array or the bitpacked record.
You need to start thinking _out_ of the box ;-)
The type helper I don't really understand. There only procedures could be used, right? So only bit names could be defined and not bit numbers?
Well, you could use the type helper to define a default array property

But, yes. you are correct. I made a boo-boo there, sorry for that.
It should have read record helper but, even then i wrongfully assumed that operators are allowed to be declared therein (which does not seem to be the case).
So, imho, a bitpacked record, or a normal/variant record would be a approach that gives you the most options (which includes the possibility of a default array property and/or enumerator). You can then use record operators instead of global ones.
Edit: Correct me if I did state anything wrong.
You're not the only one doing it wrong, this discussion is messing with my head. for FPC, things are rather simple.
UCSRB:= UCSRB and %00001111; //Error: Operator is not overloaded
C'mon, are we going through the whole list of (bitwise) operators now ?

Last one then. The rest you need to figure out on your own.
operator and (x1: TBitByte; x2: TBitByte) Result: TBitByte;
var
inval1: Byte absolute x1;
inval2: byte absolute x2;
outval: byte absolute Result;
begin
outval := inval1 and inval2;
end;
See also
here.