Electron ULA (Ferranti 12C021) pinout

PLCC-68. Video, 4-bit DRAM control, CPU clock (2 / 1 MHz / stopped), ROM select and paging, keyboard read, cassette, sound, interrupts: every register at &FE00-&FE0F UNVERIFIED

One 68-pin Ferranti ULA does nearly everything on the Electron: it divides the 16 MHz clock, feeds the 6502 its PHI clock (2 MHz for ROM, 1 MHz for RAM and I/O, stopped while the screen owns RAM in MODEs 0-3), runs the four 4164s as a 4-bit RAM (two accesses per byte), makes RGB and sync, the cassette and sound, scans the keyboard and raises IRQ. The service manual calls it a 68-pin quad in-line package: a square carrier with 17 contacts a side, pin 1 marked at the top left and the pins running anti-clockwise. It is drawn here with pin 1 at the top-left corner, numbered anti-clockwise as the manual states; the manual does not say which edge the numbering starts along, so the orientation of the drawing is unverified. On issue 2 and 4 boards it sits in a clip-down socket that is the machine's weak point: reseat and clean it before condemning the chip. Issue 6 boards solder it in. A good spare ULA is the service manual's first test.

Open the interactive ULA pinout

Pins

PinNameTypeSignal
1A1addr6502 address bit 1 in.
2A8addr6502 address bit 8 in.
3REDvideoRed, TTL active high, to RGB pin 1 (R47) and the PAL encoder.
4GREENvideoGreen, to RGB pin 2 (R46) and the encoder.
5A0addr6502 address bit 0 in.
6RA7addrMultiplexed DRAM address 7 to the 4164 A7 (row, then column).
7RA6addrMultiplexed DRAM address 6 to the 4164 A6 (row, then column).
8RA5addrMultiplexed DRAM address 5 to the 4164 A5 (row, then column).
9VCC2power+5 V through R5 24R 1/2 W (so a little under the rail).
10A14addr6502 address bit 14 in.
11RA4addrMultiplexed DRAM address 4 to the 4164 A4 (row, then column).
12A2addr6502 address bit 2 in.
13A12addr6502 address bit 12 in.
14A13addr6502 address bit 13 in.
15A7addr6502 address bit 7 in.
16RA3addrMultiplexed DRAM address 3 to the 4164 A3 (row, then column).
17A6addr6502 address bit 6 in.
18RA2addrMultiplexed DRAM address 2 to the 4164 A2 (row, then column).
19RA1addrMultiplexed DRAM address 1 to the 4164 A1 (row, then column).
20A5addr6502 address bit 5 in.
21A4addr6502 address bit 4 in.
22RA0addrMultiplexed DRAM address 0 to the 4164 A0 (row, then column).
23A11addr6502 address bit 11 in.
24A3addr6502 address bit 3 in.
25A10addr6502 address bit 10 in.
26A9addr6502 address bit 9 in.
27KBD0kbdKeyboard return line 0 from PL2 pin 5.
28KBD1kbdKeyboard return line 1 from PL2 pin 6.
29/WEctrlDRAM write enable to the 4164 pin 3: low = write, high = read.
30/IRQctrlInterrupt request to the 6502 pin 4 and expansion pin 17. Open collector, 3k3 pull-up inside the ULA.
31KBD2kbdKeyboard return line 2 from PL2 pin 7.
32KBD3kbdKeyboard return line 3 from PL2 pin 8.
33PD0data6502 data bus bit 0.
34RAM0dataRAM data line 0, to DIN and DOUT of IC4 (bits 0 and 1 of each byte, in two accesses).
35PD1data6502 data bus bit 1.
36PD2data6502 data bus bit 2.
37RAM1dataRAM data line 1, to IC5 (bits 2 and 3).
38PD3data6502 data bus bit 3.
39PD4data6502 data bus bit 4.
40RAM2dataRAM data line 2, to IC6 (bits 4 and 5).
41PD5data6502 data bus bit 5.
42PD6data6502 data bus bit 6.
43VCC2power+5 V through R58 24R 1/2 W.
44RAM3dataRAM data line 3, to IC7 (bits 6 and 7).
45PD7data6502 data bus bit 7.
46R/WctrlRead/not write from the 6502 pin 34: 1 = read, 0 = write.
47CAS RCaudioTo an RC network (R6 56K, C8 1 uF, D5) that detects a continuous high tone on tape.
48VCC1power+5 V direct.
49CLOCK INclock16 MHz from the 74S04 oscillator IC8 pin 8.
50CAS OUTaudioPseudo-sine cassette output to the LM324 buffer.
51GNDground0 V.
52/RASctrlRow address strobe to the 4164 pin 4; also does refresh.
53/CASctrlColumn address strobe to the 4164 pin 15.
54/PORctrlPower-on reset: R7 56K and C9 1 uF give a rising edge at switch-on that resets the ULA, which then pulls /RST.
55÷13 INclock16 MHz divided by 13 from the 74LS169 IC9 pin 11: the cassette and baud timing.
56A15addr6502 address bit 15 in.
57/NMIctrlSystem NMI (6502 pin 6, expansion pin 16), 3k3 pull-up inside the ULA. While NMI is active the CPU gets full 1 MHz RAM access in any mode.
58/RSTctrlReset to the 6502 pin 40 and expansion pin 15: low at power-up and while BREAK is held.
59CAS INaudioCassette input from the LM324 amplifier (IC13 pin 14) through C7.
60PHI OUTclockThe 6502 clock (6502 pin 37, expansion pin 14), made from 16 MHz: 2 MHz for ROM, 1 MHz for RAM and I/O, stopped while the screen uses RAM in MODEs 0-3.
61ROMctrlROM select for the OS/BASIC ROM IC2 (enables reads from it).
62SOUND O/PaudioTone from the internal sound counter to the Q3/Q4 speaker driver and, through 1K, expansion pin 11.
63CAPS LOCKioCAPS LOCK LED drive, PL2 pin 2.
64CAS MOctrlTape motor: drives Q6 and relay RL1.
65/CSYNCvideoComposite sync, low during H or V sync, to 74LS86 IC14 pin 13 and the encoder.
66BLUEvideoBlue, to RGB pin 3 (R45) and the encoder.
67/HSvideoHorizontal sync only (low during line sync), to the PAL chroma logic.
68GNDground0 V.

Fitted in

Sources