function BitIsHigh(X:byte; Index:integer):boolean; var ch: byte; begin ch := x; ch := ch shr index; ch := ch and 1; Result := (ch = 1); end;procedure SetBit(var X:byte; Index:integer; HighValue:boolean); var ch,ch1: byte; begin if Highvalue then begin ch := 1; ch := ch SHL Index; X := X OR ch; end else begin ch := $FF; ch := ch SHR index; DEC(ch); ch := ch SHL index; ch1 := $FF; ch1 := ch1 SHR (8-index); ch := ch OR ch1; X := X and ch; end; end;
shr(v,n)
and
or
var
ch: byte;
begin
ch := x;
ch := ch shr index;
ch := ch and 1;
Result := (ch = 1);
end;procedure SetBit(var X:byte; Index:integer; HighValue:boolean);
var
ch,ch1: byte;
begin
if Highvalue then
begin
ch := 1;
ch := ch SHL Index;
X := X OR ch;
end else
begin
ch := $FF;
ch := ch SHR index;
DEC(ch);
ch := ch SHL index;
ch1 := $FF;
ch1 := ch1 SHR (8-index);
ch := ch OR ch1;
X := X and ch;
end;
end;