but think you could count up to over 2 million (for addressing up to 2 megs) in the time it took to receive one serial byte at 9600? that's 2 million pulses per millisecond, or about a 16GHz clock speed if my math is correct
you could probably do it rather easily with 3 8-bit counters NOT cascaded... it would require 3 i/o pins instead of 1 but each one would only have to count up to 255 at most... you might be able to squeeze that into 1mS but it would be tough.
depends on what approach you go with.
the way i see it, why not just use the PIC's IO pins to address the memory? the PIC doesn't need to do anything but receive, store, retrieve, and send data so you dont really need I/O for anything else... and it will save space, because all those counter ICs would eat up more space anyway.