Acorn Atom
| Acorn Atom | |
| Specifications | |
|---|---|
| Manufacturer | Acorn Computers Ltd |
| Type | Home Computer |
| Released | March 1980 |
| Discontinued | 1982 |
| Intro price | Kit: £120, Assembled: £170 (1980) |
| CPU | MOS Technology 6502 @ 1 MHz |
| Memory | 2 KB RAM (expandable to 12 KB), 8 KB ROM |
| Storage | Cassette tape interface, optional floppy disk |
| Display | 256×192 monochrome graphics, 32×16 text mode |
| Sound | Internal speaker (software-driven) |
| Dimensions | 381 mm × 241 mm × 64 mm |
| Weight | 1 kg |
| OS / Firmware | Acorn MOS with Atom BASIC |
| Predecessor | Acorn System 3 |
| Successor | BBC Micro Model A/B |
The Acorn Atom was a home computer manufactured by Acorn Computers Ltd from 1980 to 1982. Designed around the MOS Technology 6502 processor, the Atom served as Acorn's entry into the home computer market and established the technical foundation for the subsequent BBC Micro series.
Architecture
[edit | edit source]The Atom employed a straightforward single-board design with the 6502 processor running at 1 MHz. The system architecture provided direct CPU access to all peripherals through memory-mapped I/O, eliminating the need for complex decoding logic.
Memory Organization
[edit | edit source]| Address Range | Size | Function |
|---|---|---|
| $0000 – $09FF | 2.5 KB | Block Zero RAM (lower text space) |
| $0A00 – $0AFF | 256 bytes | Assembler workspace |
| $0B00 – $0BFF | 256 bytes | Input buffer/Floating point workspace |
| $0C00 – $0FFF | 1 KB | System variables and stack |
| $1000 – $1FFF | 4 KB | Extension ROM socket A0 |
| $2000 – $21FF | 512 bytes | Catalog buffer |
| $2200 – $27FF | 1.5 KB | Floating point variables |
| $2800 – $28FF | 256 bytes | Graphics workspace |
| $2900 – $2FFF | 1.75 KB | User BASIC programs (lower) |
| $3000 – $3BFF | 3 KB | Extension RAM (optional) |
| $3C00 – $3FFF | 1 KB | User BASIC programs (upper) |
| $8000 – $81FF | 512 bytes | Video RAM (graphics mode) |
| $8200 – $83FF | 512 bytes | Video RAM (text mode) |
| $8400 – $84FF | 256 bytes | I/O space (6522 VIA) |
| $A000 – $AFFF | 4 KB | Extension ROM socket A2 |
| $B000 – $B7FF | 2 KB | Peripheral I/O (optional) |
| $B800 – $BBFF | 1 KB | VDU controller (6847) |
| $C000 – $CFFF | 4 KB | Atom BASIC interpreter ROM |
| $D000 – $DFFF | 4 KB | Extension ROM socket A1 |
| $E000 – $EFFF | 4 KB | Optional floating point ROM |
| $F000 – $FFFF | 4 KB | Machine Operating System ROM |
Hardware Specifications
[edit | edit source]Main Board Components
[edit | edit source]| Component | Specification | Function |
|---|---|---|
| CPU | MOS 6502 @ 1 MHz | Central processor |
| VIA | MOS 6522 | Versatile Interface Adapter for I/O, timers, and keyboard scanning |
| Video Controller | MC6847 | Video Display Generator, 256×192 graphics, 32×16 text |
| RAM | 2114 static RAM (1K×4 bit) | 2 KB minimum, expandable to 12 KB |
| ROM | 2532 EPROMs | 8 KB system ROM (4 KB MOS + 4 KB BASIC) |
| Clock Generator | 4 MHz crystal oscillator | Divided to 1 MHz CPU clock, 3.58 MHz video clock |
| Power Regulator | 7805 | +5V regulation for logic circuits |
| Keyboard Decoder | 74LS138 | Row/column scanning via 6522 VIA |
| Address Decoding | 74LS138, 74LS00 | Memory and I/O chip select generation |
Power Supply
[edit | edit source]The Atom required an external power supply providing:
- +5V DC @ 2A for logic circuits
- -5V DC @ 100mA for video generation (MC6847)
- Unregulated 8V AC @ 20VA for cassette motor control
Early units shipped with a linear transformer supply, while later models included a more efficient switched-mode unit.
Video System
[edit | edit source]The MC6847 Video Display Generator provided:
| Mode | Resolution | Memory Required | Colours |
|---|---|---|---|
| Text | 32×16 characters | 512 bytes | Black on green |
| Graphics 1 | 64×64 pixels | 1 KB | 4 colours |
| Graphics 2 | 128×64 pixels | 1 KB | 4 colours |
| Graphics 3 | 128×96 pixels | 1.5 KB | 4 colours |
| Graphics 4 | 128×96 pixels | 3 KB | 2 colours |
| Graphics 5 | 128×192 pixels | 3 KB | 4 colours |
| Graphics 6 | 256×192 pixels | 6 KB | Monochrome |
Video output options:
- UHF modulator for television connection (Channel 36)
- Composite video output (1V peak-to-peak, 75Ω)
- RGB output (optional modification)
Input/Output Interfaces
[edit | edit source]Standard Ports
[edit | edit source]| Interface | Connector | Signals | Purpose |
|---|---|---|---|
| Cassette | 7-pin DIN | Audio in/out, motor control | 300 or 1200 baud data storage |
| Expansion Bus | 64-way edge connector | Full 6502 bus | External peripherals |
| Printer | 26-way IDC header | 8-bit parallel + handshake | Centronics printer interface |
| User Port | 20-way IDC header | 8-bit bidirectional + control | General purpose I/O |
| Utility Socket | 16-pin DIL | Address/data/control subset | Small expansion cards |
6522 VIA Configuration
[edit | edit source]The 6522 Versatile Interface Adapter managed:
- Port A: Printer data output (8 bits)
- Port B bits 0-3: Keyboard row select
- Port B bit 4: Cassette output
- Port B bit 5: Loudspeaker output
- Port B bit 6: Keyboard REPT key
- Port B bit 7: Keyboard CTRL key
- Timer 1: Cassette tape timing
- Timer 2: Sound generation
Keyboard
[edit | edit source]The Atom featured a 60-key QWERTY keyboard with:
- Full alphanumeric keys
- CTRL, SHIFT, REPT (repeat) modifier keys
- BREAK key (NMI interrupt)
- LOCK key (caps lock)
- COPY key (screen copy to printer)
- Direct keyboard matrix scanning via 6522 VIA
Keyboard matrix organization:
- 8 rows × 10 columns matrix
- Software debouncing in MOS ROM
- Auto-repeat functionality
- N-key rollover limited to 2 keys
Expansion Options
[edit | edit source]Internal Expansion
[edit | edit source]The Atom motherboard included sockets for:
- Additional RAM: Up to 5 KB lower text RAM (Block Zero)
- Video RAM: Up to 6 KB for high-resolution graphics
- Upper text RAM: 3 KB expansion at $3000-$3BFF
- Floating Point ROM: 4 KB scientific calculator functions
- Utility ROMs: Three 4 KB ROM sockets for languages or utilities
External Expansion
[edit | edit source]Via the rear expansion connector:
- Acorn Disk Pack: Dual 5.25" floppy drives with DOS
- Econet Interface: Network adapter for educational environments
- Colour Card: PAL colour encoder for MC6847
- Atom Speechbox: SP0256 speech synthesizer
- A/D Converter: 8-bit analog input card
ROM Software
[edit | edit source]Machine Operating System (4 KB)
[edit | edit source]Located at $F000-$FFFF, provided:
- Hardware initialization routines
- Keyboard scanning and decoding
- Cassette tape I/O routines
- VDU driver routines
- Interrupt handlers
- Monitor commands (memory examine/modify)
Atom BASIC (4 KB)
[edit | edit source]Located at $C000-$CFFF, featured:
- Integer arithmetic only (no floating point in base model)
- Direct memory access via ! and ? operators
- Built-in assembler for 6502 code
- Graphics commands (DRAW, MOVE, PLOT)
- String handling (12 character maximum)
- Array support (integer only)
- Procedures with local variables
Optional Floating Point ROM (4 KB)
[edit | edit source]Located at $E000-$EFFF when installed:
- 5-byte BCD floating point format
- 9 significant digits, exponent ±99
- Trigonometric functions
- Logarithmic functions
- Scientific notation support
Technical Innovations
[edit | edit source]The Atom introduced several design features:
- Single-board construction reduced manufacturing costs
- Memory-mapped I/O simplified hardware design
- Built-in assembler in BASIC ROM
- Direct video memory access from BASIC
- Modular expansion system via edge connector
Component-Level Details
[edit | edit source]Clock Generation
[edit | edit source]- 4 MHz crystal oscillator (X1)
- 74LS163 counter divides by 4 for 1 MHz CPU clock
- 3.58 MHz NTSC subcarrier for MC6847 video timing
- Phase relationships maintained for video stability
Address Decoding Logic
[edit | edit source]- IC7 (74LS138) decodes A12-A15 for 4K blocks
- IC8 (74LS138) further decodes I/O space
- IC20 (74LS00) generates chip enables
- Pull-up resistors on unused decoder outputs
Reset Circuit
[edit | edit source]- RC network (R1=4.7kΩ, C1=10µF) provides power-on reset
- Manual reset via BREAK key triggers NMI
- 74LS00 gate buffers and inverts reset signal
- Reset pulse width approximately 47ms
Cassette Interface
[edit | edit source]- Output: Square wave from 6522 PB4, AC-coupled via C15 (0.1µF)
- Input: Comparator circuit using LM311 or similar
- Motor control: Relay driver using BC108 transistor
- Data encoding: Kansas City Standard (300 baud) or fast mode (1200 baud)
Known Hardware Issues
[edit | edit source]Common failure points requiring maintenance:
- 7805 voltage regulator overheating without adequate heatsink
- MC6847 video chip thermal stress causing intermittent display
- Keyboard matrix diodes failing causing phantom keypresses
- 2114 RAM chips prone to failure, especially in lower addresses
- Edge connector oxidation causing expansion problems
- Cassette relay contacts wearing from repeated use
Board Revisions
[edit | edit source]| Revision | Changes | Issues Addressed |
|---|---|---|
| Issue 1 | Original design | N/A |
| Issue 2 | Improved ground plane | Reduced video interference |
| Issue 3 | Modified reset circuit | More reliable power-on reset |
| Issue 4 | Updated cassette interface | Better tape reliability |
| Issue 5 | Final production version | Cost-reduced component selection |
See Also
[edit | edit source]