something I'm working on:
the buffered grappler - it has a 16/32/64k built-in printer buffer driven by an 8048 with 1k of rom.
I think I've got the 8048 code mostly figured out, now to make a working driver... 8-)
After initializing the "registers" (first 31 bytes of memory), it figures out how many 4164 chips you have installed, 2 for 16k, 4 for 32k and 8 for 64k.
If you have 2 4164 chips, it builds up a byte by getting 2 bits from each address. If 4 4164 chips, you have to read 2 different addresses and build a byte from 4 bits in each address. The simplest routine is when you have 64k installed and you can just read a byte from a single address.
I think it's basically the same design used for the standalone bufferboard that could interface with other manufacturers' parallel cards.