Is something wrong with Pt-Change(X,Y,sprite)?
Yeah, else I wouldn't have posted this. The Pt-Change function inverts also white pixels, which isn't desired.
My routine only inverts if the background-pixel AND the sprite-pixel are black.
Actually looking at your code, it looks like your routine and Pt-Change() will do exactly the same things. All Pt-Change is, is an XOR sprite display, which is exactly what you wrote