Welcome to Mr. Latch-up's C64 DTV Advice Column
Featured Dilemma:
How do I use the CPU Segment Mapper?
Dear Mr Latch,

  I'd like to access more memory than 64k, but I don't understand how all the bits in the segment mapper work. 

Sincerly,
Ken Clarkson
Boston, Massachusetts
Dear Ken,
 
  The segment mapper looks complex at first, but in fact operates in a very simple way.  CPU Address[13 downto 0] goes directly to the memory without translation.  CPU address[15 downto 14] select one of 4 registers that will be asserted on the address[21 downto 14] bus to make a full 22 bits of address space.
  The access control register is divided into 4 bit pairs that selects the type of access each segment will perform.  RAM/ROM/Reserved External

  Kernal and Basic  have banking registers that select Address[21 downto 16]  and access type.  (Note: Kernal and basic are fixed in each bank).