Moin!
Warum der Umweg darüber, ein Bit weniger zu shiften und dann das ganze mit Modulo abzufragen? Warum nicht direkt das Bit?
Delphi-Quellcode:
function GetBit(Const ABitNr : Byte): Boolean;
var InByte:Integer;
begin
InByte := PortDWordIn({evtl Parameter});
result := ( ((InByte Shr ABitNr) And 1) = 1);
end;
ABitNr im Bereich 0..31, wenn es denn wirklich als DWord abgefragt wird. Im Normalfall hat das Statusregister am Parallelport nur ein Byte und daher sollte nur ein Byte eingelesen werden und dann ist ABitNr auch nur im Bereich 0..7.
MfG
Muetze1