{
I'll give a little program to demonstrate testing bits of a word for
being set or clear. The BitIsSet function can be coded a little more
efficiently, but I suspect you want clarity, not programming tricks.
}
Program BitExample;
var
testword : word;
i : word;
(*
Function BitIsSet. Given 'Wd', a word, and 'Bit', a bit number from
0 through 15, return true if the bit number of the word is
set, else return false.
*)
function BitIsSet(Wd:word; Bit:byte): boolean;
begin
if ((Wd shr Bit) and $01) <> 0 then
BitIsSet := true
else
BitIsSet := false;
end; {bitisset}
begin {program}
testword := $805F;
for i := 0 to 15 do
begin
if BitIsSet(testword,i) then
writeln( 'Testword bit ',i:2,' is set.' )
else
writeln( 'Testword bit ',i:2,' is clear.' )
end;
end. {program bitexample}