Hi, As we knowed, a classsical 8051 supports a maximum of 64K bytes of code space. When we have a large const data about screens( more than 64K bytes) and like to store them in ROM, which way of we can take?
thanks,
1. Connect them as external xdata memory
2. Use code banking
3. Compress them in some way
4. Store them in other, externally connected memory (via SPI/etc).
2a. Use XDATA Banking...
or - do as I do: have a 'page' register that map directly to the port where the address bits above 15 is driven.
Erik
"have a 'page' register that map directly to the port where the address bits above 15 is driven."
Isn't that still Banking (whether CODE and/or XDATA) - though maybe not using any of the compiler support?
Isn't that still Banking indeed it is, the difference being that you do not need to 'bank' for every byte, just for the block. This increases throughput immensely.
Thanks for the your answer. BTW, Where can I get the information about page register?
Where can I get the information about page register?
I have no idea where anyone discuss a page register.
Basically if you connect A16-A23 to port 1, port1 becomes your page register.
Using a pager register instead of banking (while soooo much faster) does require some care. You need to have every 'entity' totally within a page or the code using page rerister becomes equally cumbersome for the processor to banking.