Jump to content

Acorn Electron

From RetroTechCollection
Acorn Electron
Acorn Electron
Specifications
ManufacturerAcorn Computers Ltd
TypeHome Computer
ReleasedAugust 25, 1983
Discontinued1985
Intro price£199 (1983)
CPUMOS Technology 6502A @ 2 MHz (1 MHz effective)
Memory32 KB RAM, 32 KB ROM
StorageCassette tape interface, optional floppy disk via Plus 1
Display640×256 (2 colours), 320×256 (4 colours), 160×256 (16 colours), 80×25 text
Sound1 channel + white noise (internal speaker)
Dimensions340 mm × 160 mm × 55 mm
Weight1.8 kg
OS / FirmwareAcorn MOS 1.0 with BBC BASIC 2
PredecessorBBC Micro Model A/B
SuccessorNone
CodenameEgghead, Acorn

The Acorn Electron was a budget home computer released by Acorn Computers Ltd in August 1983. Designed as a low-cost alternative to the BBC Micro, the Electron featured a single custom ULA chip that integrated most of the discrete logic found in its predecessor, reducing manufacturing costs while maintaining software compatibility with BBC BASIC programs.

Architecture

[edit | edit source]

The Electron's architecture centered around a custom Ferranti ULA (Uncommitted Logic Array) containing 2,000 gates, which handled video generation, memory control, sound, and cassette I/O. This integration came at the cost of performance, as the ULA could only access RAM during specific periods, effectively halving the 6502's throughput.

Memory Organization

[edit | edit source]
Acorn Electron Memory Map
Address Range Size Function Access Speed
$0000 – $0040 64 bytes Zero page workspace 2 MHz
$0041 – $00FF 191 bytes Zero page user area 2 MHz
$0100 – $01FF 256 bytes 6502 stack 2 MHz
$0200 – $02FF 256 bytes Operating system workspace 2 MHz
$0300 – $03FF 256 bytes VDU workspace 2 MHz
$0400 – $07FF 1 KB Current language workspace 2 MHz
$0800 – $0AFF 768 bytes Sound/printer buffer 1 MHz
$0B00 – $0CFF 512 bytes Keyboard buffer/user workspace 1 MHz
$0D00 – $0DFF 256 bytes NMI workspace 1 MHz
$0E00 – $1FFF 4.5 KB User BASIC program space (low) 1 MHz
$2000 – $2FFF 4 KB User BASIC variables 1 MHz
$3000 – $7FFF 20 KB Screen memory/User space 1 MHz
$8000 – $BFFF 16 KB Sideways ROM/RAM (paged) 2 MHz
$C000 – $FFFF 16 KB Operating System ROM 2 MHz

Hardware Specifications

[edit | edit source]

Main Board Components

[edit | edit source]
Component Part Number Function Notes
CPU MOS 6502A Central processor 2 MHz clock, 1 MHz effective
ULA Ferranti 12C021 Video, sound, memory control 68-pin custom chip
RAM 4× HM4864P-2 32 KB total 64K×1 bit DRAMs, 200ns
ROM 2× 23128 32 KB total OS + BASIC interpreter
Crystal 16 MHz Master clock Divided down for all timing
Keyboard Controller None (ULA) Key matrix scanning Via ULA ports
PSU Regulator 7805 +5V regulation External PSU provides 18V AC

ULA (Uncommitted Logic Array)

[edit | edit source]

The Ferranti-manufactured ULA performed multiple functions:

Function Implementation Performance Impact
Video generation 6845 CRTC emulation Steals RAM cycles during display
DRAM refresh Automatic during video scan Hidden refresh, no CPU impact
Memory mapping Address decode logic Enforces 1 MHz/2 MHz regions
Sound generation Simple tone + noise Single channel only
Cassette interface 1200/300 baud FSK Integrated modulator/demodulator
Keyboard scanning 14×4 matrix decode Interrupt-driven scanning
ROM paging 4-bit latch Supports 16 ROM banks

Video System

[edit | edit source]

The Electron supported seven display modes compatible with the BBC Micro:

Mode Resolution Colours Memory Text Columns
0 640×256 2 20 KB 80×32
1 320×256 4 20 KB 40×32
2 160×256 16 20 KB 20×32
3 640×256 2 (text only) 16 KB 80×25
4 320×256 2 10 KB 40×32
5 160×256 4 10 KB 20×32
6 320×256 2 (text only) 8 KB 40×25

Video timing specifications:

  • Horizontal frequency: 15.625 kHz
  • Vertical frequency: 50 Hz
  • Pixel clock: 8 MHz (modes 0,3) or 4 MHz (modes 1,4,6) or 2 MHz (modes 2,5)
  • Active display: 256 lines × 640/320/160 pixels
  • Blanking: 56 lines vertical, 160 pixels horizontal

Input/Output

[edit | edit source]

Expansion Port

[edit | edit source]

The rear expansion connector provided a 50-way edge connector with:

Pin Group Signals Purpose
1-8 D0-D7 Data bus
9-24 A0-A15 Address bus
25-26 R/W, Φ2 Control signals
27-30 nNMI, nIRQ, nRST, RDY Interrupt/control
31-35 16MHz, nPAGE, nROM Timing/selection
36-40 Sound, Cassette Audio I/O
41-50 Power, Ground +5V, -5V, 0V

Plus 1 Expansion Unit

[edit | edit source]

The Plus 1 add-on provided:

  • Printer port: Centronics parallel interface
  • Joystick port: Analogue joysticks (BBC-compatible)
  • Cartridge slots: Two ROM cartridge sockets
  • Additional logic: 8255 PPI for I/O expansion

Plus 3 Disk Interface

[edit | edit source]

The Plus 3 added:

  • WD1770 FDC: Floppy disk controller
  • 3.5" drive: Single 640 KB drive
  • ADFS ROM: Advanced Disk Filing System
  • Additional RAM: 3 KB workspace

Power Supply

[edit | edit source]

The Electron used an external transformer unit:

  • Input: 230V AC (UK model)
  • Output: 18V AC @ 1.4A
  • Internal regulation: 7805 provides +5V DC
  • Consumption: 6W typical

Power distribution:

  • +5V: Logic circuits, ULA, CPU, RAM
  • -5V: Generated on-board for cassette interface
  • Current draw: 1.2A maximum on +5V rail

Keyboard

[edit | edit source]

The Electron featured a 56-key keyboard:

  • Layout: QWERTY with BREAK, COPY, CAPS LOCK/FUNC
  • Matrix: 14 columns × 4 rows scanned by ULA
  • Debouncing: Software-based in OS ROM
  • Key switches: Membrane or mechanical (varied by production run)
  • Auto-repeat: OS-controlled with adjustable rate

Sound System

[edit | edit source]

Limited compared to the BBC Micro:

  • Channels: 1 tone generator + white noise
  • Frequency range: 122 Hz to 3.9 kHz
  • Volume: 16 levels
  • Output: Internal speaker only (no line output)
  • SOUND command: BBC BASIC compatible subset

ROM Software

[edit | edit source]

Operating System ROM (16 KB)

[edit | edit source]

Located at $C000-$FFFF:

  • MOS 1.0: Acorn Machine Operating System
  • VDU drivers: Text and graphics routines
  • File system: Cassette filing system
  • I/O routines: Keyboard, sound, printer support
  • Interrupt handlers: IRQ and NMI processing

BASIC ROM (16 KB)

[edit | edit source]

Paged in at $8000-$BFFF:

  • BBC BASIC 2: Full implementation
  • Assembler: Built-in 6502 assembler
  • Graphics commands: PLOT, DRAW, MOVE, etc.
  • Sound commands: SOUND, ENVELOPE (limited)
  • Error handling: ON ERROR support

Technical Limitations

[edit | edit source]

The ULA design imposed several constraints:

Limitation Cause Impact
1 MHz RAM access ULA video priority 50% speed reduction vs BBC Micro
Single sound channel Simplified ULA design No music capabilities
No hardware multiply Cost reduction Slower arithmetic
No Teletext mode Missing SAA5050 chip No Mode 7 support
Limited I/O No 6522 VIA chips Requires expansion units
No RS423 serial Cost reduction No built-in comms

Manufacturing Variants

[edit | edit source]
Issue ULA Version Changes Production Period
1 12C021 Initial release Aug 1983 - Dec 1983
2 12C021A Improved yield Jan 1984 - Jun 1984
3 12C021B Video timing fix Jul 1984 - Dec 1984
4 12C021C Final revision Jan 1985 - Aug 1985

Memory Access Timing

[edit | edit source]

The ULA controlled all RAM access with strict timing:

  • Video fetch: Every 2 MHz cycle during active display
  • CPU access: Alternate cycles in screen area
  • Refresh: During horizontal blanking
  • Contention: CPU stalled when accessing video RAM

Timing diagram (per 1 µs):

  1. 0-250ns: ULA video fetch
  2. 250-500ns: CPU access window
  3. 500-750ns: ULA video fetch
  4. 750-1000ns: CPU access window

Known Hardware Issues

[edit | edit source]

Power Supply

[edit | edit source]
  • 7805 regulator overheating: Inadequate heatsinking causes thermal shutdown
  • Transformer hum: Loose laminations in external PSU
  • DC offset: Electrolytic capacitor degradation

ULA Problems

[edit | edit source]
  • Heat sensitivity: ULA failures increase above 40°C
  • Video corruption: Internal gate degradation causes display artifacts
  • Total failure: No modern replacement available

Keyboard Issues

[edit | edit source]
  • Membrane fatigue: Early units suffer key bounce
  • Matrix diodes: 1N4148 diodes fail causing phantom keys
  • Connector oxidation: Poor contact at ribbon cable

General Maintenance

[edit | edit source]

Regular maintenance includes cleaning the case with mild detergent, ensuring adequate ventilation around the ULA heatsink, and checking the keyboard membrane for wear. The external power supply transformer should be inspected for overheating. Internal dust accumulation should be removed with compressed air, particularly around the ULA and voltage regulator heatsinks.

Troubleshooting

[edit | edit source]

Common faults include no display output (check ULA and crystal oscillator), corrupted graphics (failing ULA or RAM), and keyboard non-response (check ribbon cable and matrix diodes). The external PSU frequently fails with dried capacitors causing ripple. Memory faults typically manifest as system crashes or corrupted BASIC programs.

Capacitor Replacement Guide

[edit | edit source]

Critical capacitors requiring replacement after 40 years include:

  • C1, C2: 2200µF 25V (main PSU filtering)
  • C3: 100µF 16V (ULA supply decoupling)
  • C4-C7: 47µF 16V (RAM refresh timing)
  • C8: 10µF 25V (reset circuit)
  • C9-C12: 0.1µF ceramic (IC decoupling)

Easter Eggs

[edit | edit source]

The Electron ROM contained hidden features:

  • Development team credits: Located at ROM address $FFB7
  • Test routines: Accessible via *FX calls
  • Hidden error messages: "Roger" appears for certain crashes

See Also

[edit | edit source]