Code banking extends program space using a paged memory system. The 8-bit PPAGE register selects the memory page, and a 16-kilobyte memory window to access the pages. Current architecture supports up to 256 pages of 16 kilobytes each, allowing up to 4 Megabytes of memory.
Some HC(S)08 derivatives support a memory expansion scheme. Using the paging mechanism, the user can access program memory by putting the page number into the PPAGE register, and computing the address offset from the starting address of the paging window. The following figure refers to MC9S08QE128 derivative as an example of memory access using the code banking model. Access addresses directly, using the CPU addresses, or use paged access, which uses the extended addressing method (for example, access $06ABC directly at $06ABC or with PPAGE = 1 and OFFSET = $0AABC).