I've been trying to figure out how to code a blit routine for the CGA card. From what I understood so far... is that the CGA graphics mode 320x200x4 has the video memory interleaved. Even-numbered scan lines begin at B800:0000, and odd-numbered lines begin at B800:2000. And each byte has 4 pixels inside. I'm guessing that the interleaved is not that difficult to solve, because you could make 2 loops, one for even and another one for odd numbers. But the fact that each byte has 4 pixels makes it difficult to achieve pixel exact location of a bitmap on screen. So, how can I write a function to draw a bitmap on screen with (x,y) location on screen?