This memory expansion card improves greatly on the previous designs of memory expansion that I have used. In those designs I employed a decade counter to do the actual chip selection, now we use an octal latch to store both the chip selection (as a 3 bit number) and an extended address (also referred to as bank select which is 5 bits).
< Youtube video coming soon! >
The memory on the expansion is arranged as shown in this graphic, the chips and their blocks are selected via the memory expansion register (the 74HCT573 octal latch)
The circuit does allow addressing of up to 8 ROM/RAM chips (they don’t have to be all ROM or all RAM, you can mix and match), but the layout of the board I used was limited on size, so I opted to use 4 chips on the card but allow a 2nd card to be used with only the 4 chip populated and a linking cable from the first card. Unfortunately I forgot to include the expanded address lines (or block selection lines) in this linking cable’s header, so without manually wiring those over, the 2nd card’s memory cannot be accessed beyond the first block of each chip. This is something that will be addressed in the next revision of the board.
Also you will notice there are some jumpers on the bottom right of the card, these are for selecting which bank (either 2 or 3) and if we want to appear as a single bank window of 16k of use both banks 2 and 3 as a 32k window. In the next revisions these will be removed and the card will be fixed to only be a 16k window on bank_2.
The current schematics are available here