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
Danke
Es ging mir erst einmal darum den Original Quelltext einzubinden.
Weil wie gesagt alle anderen aus was für gründen auch immer nicht funktioniert haben.
Die Lösung vom Michael gibt auch überall 0 zurück auch mit geänderten DatenTyp zu LongWord.
Michael II verwendet auch Byte.
Sorry nein DWORD.
gruss