TMS9900 16-bit CPU pinout

DIP-64. 16-bit CPU at 3 MHz. Needs -5 V, +5 V and +12 V, plus a 4-phase clock.

The 16-bit CPU. It needs three rails (-5 V on pin 1, +5 V on pins 2 and 59, +12 V on pin 27) and a four-phase 12 V clock from the TIM9904. The 9900 numbers its buses MSB first: A0 and D0 are the most significant bits. A dead 9900 or a missing clock gives a dead console and no title screen. Check the rails and the clocks on pins 8, 9, 25 and 28 before you swap the big 64-pin chip.

Open the interactive TMS9900 pinout

Pins

PinNameTypeSignal
1Vbbpower-5 V supply (Vbb). The 9900 needs all three rails.
2Vccpower+5 V supply. Pins 2 and 59 must be connected in parallel.
3WAITctrlWait. High when the CPU has entered a wait state because READY was low.
4/LOADctrlLoad: non-maskable interrupt (vectors at $FFFC and $FFFE). Brought out on I/O port pin 13.
5HOLDActrlHold acknowledge. High = the CPU has floated its address, data and memory-control lines.
6/RESETctrlReset input, from the TIM9904 flip-flop output (FFQ, pin 4). LOW at power-on, then HIGH to run.
7IAQctrlInstruction acquisition. High while an instruction is fetched.
8PHI1clockClock phase 1 (MOS level) from TIM9904 pin 12.
9PHI2clockClock phase 2 from TIM9904 pin 11.
10A14addrAddress bus bit 14, the least significant (the 9900 numbers A0 as the MSB).
11A13addrAddress bus bit 13.
12A12addrAddress bus bit 12.
13A11addrAddress bus bit 11.
14A10addrAddress bus bit 10.
15A9addrAddress bus bit 9.
16A8addrAddress bus bit 8.
17A7addrAddress bus bit 7.
18A6addrAddress bus bit 6.
19A5addrAddress bus bit 5.
20A4addrAddress bus bit 4.
21A3addrAddress bus bit 3.
22A2addrAddress bus bit 2.
23A1addrAddress bus bit 1.
24A0addrAddress bus bit 0, the most significant.
25PHI4clockClock phase 4 from TIM9904 pin 9.
26Vssground0 V. Pins 26 and 40 must be connected in parallel.
27Vddpower+12 V supply (Vdd).
28PHI3clockClock phase 3 from TIM9904 pin 8.
29DBINctrlData bus in. High while the CPU reads (its output buffers are off).
30CRUOUTioCRU serial data out, sampled when CRUCLK is high.
31CRUINioCRU serial data in, sampled for STCR and TB.
32/INTREQctrlInterrupt request from the 9901. Low = interrupt; the CPU then reads IC0-IC3.
33IC3ctrlInterrupt code bit 3, the LSB.
34IC2ctrlInterrupt code bit 2.
35IC1ctrlInterrupt code bit 1.
36IC0ctrlInterrupt code bit 0, the MSB.
37NCncNo internal connection.
38NCncNo internal connection.
39NCncNo internal connection.
40Vssground0 V (second ground pin).
41D0dataData bus bit 0, the most significant.
42D1dataData bus bit 1.
43D2dataData bus bit 2.
44D3dataData bus bit 3.
45D4dataData bus bit 4.
46D5dataData bus bit 5.
47D6dataData bus bit 6.
48D7dataData bus bit 7.
49D8dataData bus bit 8.
50D9dataData bus bit 9.
51D10dataData bus bit 10.
52D11dataData bus bit 11.
53D12dataData bus bit 12.
54D13dataData bus bit 13.
55D14dataData bus bit 14.
56D15dataData bus bit 15, the least significant.
57NCncNo internal connection.
58NCncNo internal connection.
59Vccpower+5 V supply (second pin).
60CRUCLKioCRU clock. High = valid data on CRUOUT (or an external instruction code on A0-A2).
61/WEctrlWrite enable. LOW = write data is on the bus.
62READYctrlReady. High = memory ready next cycle; low = the CPU waits.
63/MEMENctrlMemory enable. LOW = the address bus holds a memory address.
64/HOLDctrlHold request. LOW asks the CPU to release the bus (DMA).

Fitted in

Sources