CIC lockout chip pinout

From NESdev Wiki
Revision as of 23:16, 7 May 2010 by Frva (talk | contribs)
Jump to navigationJump to search

NES CIC lockout chip

                 ----_----
 Data Out 01 <-x|P0.0  Vcc|--- 16 +5V
 Data In  02 x->|P0.1 P2.2|x-x 15 Gnd
 Seed     03 x->|P0.2 P2.1|x-x 14 Gnd
 Lock/Key 04 x->|P0.3 P2.0|x-x 13 Gnd
 N/C      05 x- |Xout P1.3|<-x 12 Gnd/Reset speed B
 Clk in   06  ->|Xin  P1.2|<-x 11 Gnd/Reset speed A
 Reset    07  ->|Rset P1.1|x-> 10 Slave CIC reset
 Gnd      08 ---|Gnd  P1.0|x-> 09 /Host reset
                 ---------

P0.x = I/O port 0
P1.x = I/O port 1
P2.x = I/O port 2
Xin  = Clock Input
Xout = Clock Output
Rset = Reset
Vcc  = Input voltage
Gnd  = Ground
->|  = input
<-|  = output
-x|  = unused as input
x-|  = unused as output
---  = Neither input or output

The CIC is a primitive 4-bit microcontroller. It contains the following registers:

+-+         +-------+  +-------+-------+-------+-------+
|C|         |   A   |  |       |       |       |       |
+-+         +-+-+-+-+  +- - - - - - - - - - - - - - - -+
            |   X   |  |       |       |       |       |
        +---+-+-+-+-+  +- - - - - - - - - - - - - - - -+
        |     P     |  |       |       |       |       |
        | PH|   PL  |  +- - - - - - - - - - - - - - - -+
+-------+-+-+-+-+-+-+  |       |       |       |       |
|         IC        |  +- - - - - - - -R- - - - - - - -+
+-+-+-+-+-+-+-+-+-+-+  |       |       |       |       |
|                   |  +- - - - - - - - - - - - - - - -+
+- - - - - - - - - -+  |       |       |       |       |
|                   |  +- - - - - - - - - - - - - - - -+
+- - - - -S- - - - -+  |       |       |       |       |
|                   |  +- - - - - - - - - - - - - - - -+
+- - - - - - - - - -+  |       |       |       |       |
|                   |  +- - - - - - - - - - - - - - - -+
+-+-+-+-+-+-+-+-+-+-+

A  = 4-bit Accumulator
C  = Carry flag
X  = 4-bit General register
P  = Pointer, used for memory access
PH = Upper 2-bits of P
PL = Lower 4-bits of P, used for I/O
IC = Instruction counter, to save some space; it counts in a polynominal manner instead of linear manner
S  = Stack for the IC register
R  = 32 nibbles of RAM
There are also 512 (768 for the 3195A) bytes of ROM, where the executable code is stored.