Acorn Electron: Difference between revisions
Created page with "{{Infobox computer | name = Acorn Electron | image = 250px | caption = Acorn Electron | manufacturer = Acorn Computers Ltd | type = Home Computer | release date = August 25, 1983 | discontinued = 1985 | price = ยฃ199 (1983) | cpu = MOS Technology 6502A @ 2 MHz (1 MHz effective) | memory = 32 KB RAM, 32 KB ROM | storage = Cassette tape interface, optional floppy disk via Plus 1 | display..." ย |
|||
| Line 30: | Line 30: | ||
=== Memory Organization === | === Memory Organization === | ||
{| class="wikitable styled-table" style="width: | {| class="wikitable styled-table" style="width:70%; text-align:center;" | ||
|+'''Acorn Electron Memory Map''' | |+'''Acorn Electron Memory Map''' | ||
! Address Range !! Size !! Function !! Access Speed | ! Address Range !! Size !! Function !! Access Speed | ||
Revision as of 18:16, 9 September 2025
| Acorn Electron | |
| Specifications | |
|---|---|
| Manufacturer | Acorn Computers Ltd |
| Type | Home Computer |
| Released | August 25, 1983 |
| Discontinued | 1985 |
| Intro price | ยฃ199 (1983) |
| CPU | MOS Technology 6502A @ 2 MHz (1 MHz effective) |
| Memory | 32 KB RAM, 32 KB ROM |
| Storage | Cassette tape interface, optional floppy disk via Plus 1 |
| Display | 640ร256 (2 colours), 320ร256 (4 colours), 160ร256 (16 colours), 80ร25 text |
| Sound | 1 channel + white noise (internal speaker) |
| Dimensions | 340 mm ร 160 mm ร 55 mm |
| Weight | 1.8 kg |
| OS / Firmware | Acorn MOS 1.0 with BBC BASIC 2 |
| Predecessor | BBC Micro Model A/B |
| Successor | None |
| Codename | Egghead, 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
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
| 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
Main Board Components
| 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)
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
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
Expansion Port
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
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
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
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
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
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
Operating System ROM (16 KB)
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)
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
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
| 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
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):
- 0-250ns: ULA video fetch
- 250-500ns: CPU access window
- 500-750ns: ULA video fetch
- 750-1000ns: CPU access window
Known Hardware Issues
Power Supply
- 7805 regulator overheating: Inadequate heatsinking causes thermal shutdown
- Transformer hum: Loose laminations in external PSU
- DC offset: Electrolytic capacitor degradation
ULA Problems
- Heat sensitivity: ULA failures increase above 40ยฐC
- Video corruption: Internal gate degradation causes display artifacts
- Total failure: No modern replacement available
Keyboard Issues
- Membrane fatigue: Early units suffer key bounce
- Matrix diodes: 1N4148 diodes fail causing phantom keys
- Connector oxidation: Poor contact at ribbon cable
General Maintenance
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
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
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
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