CIC lockout chip pinout: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (Created page with '== NES CIC lockout chip == <pre> ---_--- DATA_OUT <-|01 16|<- VCC (+5V) DATA_IN ->|02 15|<- GND SEED ->|03 14|<- GND LOCK/KEY ->|04 13|<- G...')
 
No edit summary
Line 1: Line 1:
== NES [[CIC lockout chip]] ==
== NES [[CIC lockout chip]] ==
<pre>
<pre>
              ---_---
                ----_----
  DATA_OUT  <-|01  16|<- VCC (+5V)
  Data Out 01 <-x|P0.0  Vcc|--- 16 +5V
  DATA_IN  ->|02  15|<- GND
  Data In  02 x->|P0.1 P2.2|x-x 15 Gnd
  SEED      ->|03  14|<- GND
Seed    03 x->|P0.2 P2.1|x-x 14 Gnd
  LOCK/KEY ->|04  13|<- GND
Lock/Key 04 x->|P0.3 P2.0|x-x 13 Gnd
  UNKNOWN2 - |05   12|<- GND
N/C      05 x- |Xout P1.3|<-x 12 Gnd/Reset speed B
  CLK       ->|06   11|<- GND
  Clk in  06  ->|Xin  P1.2|<-x 11 Gnd/Reset speed A
  RESET    ->|07  10|-> SLAVE CIC RESET
Reset    07  ->|Rset P1.1|x-> 10 Slave CIC reset
  GND       ->|08  09|-> /CPU & PPU 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    |  |      |      |      |      |
        | PHPL  |  +- - - - - - - - - - - - - - - -+
+-------+-+-+-+-+-+-+  |      |      |      |      |
|        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 3195) bytes of ROM, where the executable code is stored.
</pre>
</pre>


[[Category:Pinouts]]
[[Category:Pinouts]]

Revision as of 21:47, 5 May 2010

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 3195) bytes of ROM, where the executable code is stored.