Let me describe the idea real quickly:
Use a counter at twice the pixel clock to generate the lowest address bit during the active line, only use an 8 bit wide SRAM, and latch the low word (for low bit =0) or the high word (for low bit = 1) and strobe the /OE on the latches for each pixel (with the 16 bit value latched), also latch all but the lowest 11 bits of the address (meaning active rows of 1024 pixels regardless of the actual res). this would make for 8 Data + 11 Address + 1 Address latch select, + 1 R/W + 1 Pixel strobe = 22 lines leaving 10 lines open for other uses. This would still require the video generator to provide two bits of the address, and another video generator (or counter) the pixel clock * 2 (lowest address).
Comments
Use a counter at twice the pixel clock to generate the lowest address bit during the active line, only use an 8 bit wide SRAM, and latch the low word (for low bit =0) or the high word (for low bit = 1) and strobe the /OE on the latches for each pixel (with the 16 bit value latched), also latch all but the lowest 11 bits of the address (meaning active rows of 1024 pixels regardless of the actual res). this would make for 8 Data + 11 Address + 1 Address latch select, + 1 R/W + 1 Pixel strobe = 22 lines leaving 10 lines open for other uses. This would still require the video generator to provide two bits of the address, and another video generator (or counter) the pixel clock * 2 (lowest address).