UxROM: Difference between revisions
(→Variants: See also programming guide) |
NovaSquirrel (talk | contribs) |
||
Line 30: | Line 30: | ||
== Hardware == | == Hardware == | ||
The [[UNROM]] and [[UOROM]] boards contain a [[74161|74HC161]] binary counter used as a quad D latch (4-bit register) and a [[7432|74HC32]] quad OR gate to make one bank always visible. | The [[UNROM]] and [[UOROM]] boards contain a [[74161|74HC161]] binary counter used as a quad D latch (4-bit register) and a [[7432|74HC32]] quad OR gate to make one bank always visible. | ||
<pre> | |||
2A03 address bus A15432 1098 7654 3210 | |||
|||| |||| |||| |||| | |||
,---------------------'||| |||| |||| |||| | |||
| D3-D0-. ,-------'|| |||| |||| |||| | |||
| | . | || |||| |||| |||| | |||
| ,-----+--. |`+. || |||| |||| |||| | |||
| |Register+-+0 `. || |||| |||| |||| | |||
| `--------' | |___ || |||| |||| |||| | |||
| | | | ||| || |||| |||| |||| | |||
| R/W --' 7-+1 ,' ||| || |||| |||| |||| | |||
| | ,' ||| || |||| |||| |||| | |||
| |' ||| || |||| |||| |||| | |||
| ||| || |||| |||| |||| | |||
,+-------------------+++-++-++++-++++-++++-. | |||
|EN A1654 32 1098 7654 3210 | | |||
| 128 kilo by 8 bit ROM D7-D0+-- to 2A03 data bus | |||
| | | |||
`------------------------------------------' | |||
</pre> | |||
== Variants == | == Variants == |
Revision as of 00:17, 7 August 2009
The generic designation UxROM refers to the Nintendo cartridge boards NES-UNROM, NES-UOROM, their HVC counterparts, and clone boards. The iNES format assigns mapper 2 to UxROM.
Overview
- PRG ROM size: 128 KB for UNROM, 256 KB for UOROM (DIP-28/32 Nintendo pinout)
- PRG ROM bank size: 16 KB
- PRG RAM: None
- CHR capacity: 8 KB RAM
- CHR bank size: Not bankswitched
- Nametable mirroring: Solder pads select vertical or horizontal mirroring
- Subject to bus conflicts: Yes
Banks
- CPU $8000-$BFFF: 16 KB switchable PRG ROM bank
- CPU $C000-$FFFF: 16 KB PRG ROM bank, fixed to the last bank
Solder pad config
- Horizontal mirroring : 'H' disconnected, 'V' connected.
- Vertical mirroring : 'H' connected, 'V' disconnected.
Registers
Bank select ($8000-$FFFF)
7 bit 0 ---- ---- xxxx pPPP |||| ++++- Select 16 KB PRG ROM bank for CPU $8000-$BFFF (UNROM uses bits 2-0; UOROM uses bits 3-0)
Hardware
The UNROM and UOROM boards contain a 74HC161 binary counter used as a quad D latch (4-bit register) and a 74HC32 quad OR gate to make one bank always visible.
2A03 address bus A15432 1098 7654 3210 |||| |||| |||| |||| ,---------------------'||| |||| |||| |||| | D3-D0-. ,-------'|| |||| |||| |||| | | . | || |||| |||| |||| | ,-----+--. |`+. || |||| |||| |||| | |Register+-+0 `. || |||| |||| |||| | `--------' | |___ || |||| |||| |||| | | | | ||| || |||| |||| |||| | R/W --' 7-+1 ,' ||| || |||| |||| |||| | | ,' ||| || |||| |||| |||| | |' ||| || |||| |||| |||| | ||| || |||| |||| |||| ,+-------------------+++-++-++++-++++-++++-. |EN A1654 32 1098 7654 3210 | | 128 kilo by 8 bit ROM D7-D0+-- to 2A03 data bus | | `------------------------------------------'
Variants
The mapper used in Codemasters games published by Camerica extends UxROM with CIC defeat circuitry.
In theory, it would be possible to implement the bank select register with a 74373/74374/74377/74573 octal D latch along with an additional 74*32, allowing up to 4 megabytes of PRG ROM, but due to mask ROM cost in the NES era, no non-pirate NES cart used this much memory.
Another conceivable configuration leaves out the additional 74*32 and provides a separate fixed bank for each set of 16 banks in a way reminiscent of SUROM. For example, when bank 20 is swapped into $8000, bank 31 is swapped into $C000. This would be useful for making multicarts.