{ 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}