Interfacing with an NTSC TV

From a couple of experiments I don't think I can display much beyond 900 pixels- I'm pretty sure this is because I'm using a byte of memory per pixel and there's only a kilobyte of ram- maybe you have less?

But for the two shades of gray each byte of memory could be 4 different pixels, so if memory is the problem resolution should be able to go 4 times as high like this:
PORTB = (fb[x][y]) & 0x3;
PORTB = (fb[x][y] >> 2) & 0x03;
PORTB = (fb[x][y] >> 4) & 0x03;
PORTB = (fb[x][y] >> 6) & 0x03;

A for loop to draw the screen didn't work for me but I didn't play with timing with it much.

delayMicroseconds of less than one microsecond also didn't work but I also didn't experiment much.
Assuming you can get more horizontal pixels (or you could repeat the pattern horizontally) I think the best thing to do is just get rid of the delays, and the delay of setting PORTB is the limiting time for horizontal resolution- though I'm seeing some strange things doing that while trying to repeat horizontally- the second set of pixels comes out thinner.