{Helper for for one byte flags}
{------------------------------------------------------------------------------}
procedure LMDSetBit(var holder:Byte; bit:Byte; aValue:Boolean);
begin
if aValue then
holder:=holder or (1 shl bit)
else
holder:=holder xor (1 shl bit);
end;
{------------------------------------------------------------------------------}
procedure LMDSetBitUpTo(var Holder:Byte; upTo:Byte);
var
i:Integer;
begin
For i:=0 to upTo do LMDSetBit(Holder, i, True);
end;
{------------------------------------------------------------------------------}
function LMDGetBit(holder, bit:Byte):Boolean;
begin
result:=((1 shl bit) and Holder=(1 shl bit));
end;