Hi,
Long time reader of these forums, finally found a question google doesn't give me an answer for so I've signed up to ask it.
I've been thinking about doing a hardware project on the NES and I've started to look into how the cart connects to the system. It's a lot different to what I expected.
I was thinking it would be something like the C64 where the ROM connects to some circuitry in the system which maps the addresses correctly, but all but one of the CPU address lines seem to be present. That suggests to me that a cart is hardwired to appear in the upper half of the address space.
How is it that SRAM appears below $8000 then? I notice PRG /CE seems to be derived from A15 somehow. Is ((!PRG /CE) & A13 & A12) used as SRAM enable then? That would make RPG-ROM enable (the obvious) PRG /CE?
Is there any circuitry in the NES/FC which prevents the cart from meddling with addresses beneath $4020? I can see it might be potentially useful for a mapper to be able to spy on bus writes (particularly to I/O writes), but what's the first address you can back with your own chips?
Basically what addresses does the cart "see" and which ones (ignoring nintendo's guidelines to stay above $8000) can it respond to "safely"?
Sorry for the long post, but I'm a total newb to hardware dev.
Thanks for any insight you can impart to this newb.![Smile :)](./images/smilies/icon_smile.gif)
Long time reader of these forums, finally found a question google doesn't give me an answer for so I've signed up to ask it.
I've been thinking about doing a hardware project on the NES and I've started to look into how the cart connects to the system. It's a lot different to what I expected.
I was thinking it would be something like the C64 where the ROM connects to some circuitry in the system which maps the addresses correctly, but all but one of the CPU address lines seem to be present. That suggests to me that a cart is hardwired to appear in the upper half of the address space.
How is it that SRAM appears below $8000 then? I notice PRG /CE seems to be derived from A15 somehow. Is ((!PRG /CE) & A13 & A12) used as SRAM enable then? That would make RPG-ROM enable (the obvious) PRG /CE?
Is there any circuitry in the NES/FC which prevents the cart from meddling with addresses beneath $4020? I can see it might be potentially useful for a mapper to be able to spy on bus writes (particularly to I/O writes), but what's the first address you can back with your own chips?
Basically what addresses does the cart "see" and which ones (ignoring nintendo's guidelines to stay above $8000) can it respond to "safely"?
Sorry for the long post, but I'm a total newb to hardware dev.
Thanks for any insight you can impart to this newb.
![Smile :)](./images/smilies/icon_smile.gif)