Hallo Emil,
Delphi-Quellcode:
a := (((SpectrumData2D[x, y] and $FF000000) div $1000000) and $FF);
a := a - d;
c := SpectrumData2D[x, y] and $FFFFFF;
if a > 127 then
SpectrumData2D[x, y] := LongWord(c or ((a - 256) * $1000000))
else
SpectrumData2D[x, y] := LongWord(c or (a * $1000000));
a ist bei Dir als Byte definiert
Was passiert wenn d > a ist?
Es gibt ein wahrscheinlich nicht erwartetes Ergebnis.
Michael II hatte Dir dazu schon eine Lösung gepostet.
Grüße
Klaus