It's been a while since I completed chapter 3 and the RAM chips but I went back to refresh.
Those chips were built of 4 or 8 smaller chips so a DMux 4 or 8 way worked. With the MSB xx or xxx used respectively to pinpoint the particular address.
Whats throwing me here is that this chip isn't built like those exactly.
I used a DMux and the first bit of address as sel. Up until the keyboard is needed in the test file it matches the compare file. But I'm not too sure how to use the keyboard chip and to interpret the differing addresses.
Thanks Mark that helped me a ton! I see it now, the 13th and 14th bits we can deduce if the number falls within the bands. I had struggled with how the address system worked. I went through my chapter 3 memory chips and even though they passed I was using the first 2 or 3 bits rather than the MSB's in the DMux's.
There are a couple of approaches to decoding the address, but begin by looking at the top two bits of the address.
You can treat the Keyboard as if it were a memory part without address or load inputs.
Hi, the chart you is also a part of my best approach now, but it would cause problem if it is implemented directly, because it enables the keyboard register to load whatever's inputted in the whole chip while an address that starts with "11" is selected. Although invalid address greater than 24576 (that is 11+fourteen 0s) should not be selected, comparing input address to keyboard address bit by bit gives the whole chip a lot more robustness.