Is it not just a case of drawing everything in full white and having an colour overlay of 8x8pixel squares which are multiply blended? The overlay can be dynamic to handle all your sprites. Might only work for a black background right enough.
Can't see what's wrong there Painting the pixels (with a color attribute) and the color overrides the color underneath it - it goes yellow - yep looks exactly right
Is transparency counted as a colour?
so you were wanting to update the bit field without affecting the color attribute field ?
One space would be 8 pixels due to the size of the char graphics. So, if you wanted to animate the movement by pixel (which was possible but very tricky) you had to use a bit operation of that byte to move the pixels left or right within each of the 8 lines of that char graphic.
If you wanted to animate it going up and down then you'd had to look at the next or prev line of that char graphic and poke that number into the previous location. Then, every 8th time you did this you would just reset it back to the original image and move the block.