Sinclair ZX80: Difference between revisions

Rebuild against Sinclair own circuit diagram (hosted here) and the sibling maintenance pages. Removed: a memory map giving the ROM as 8 KB when IC2 is a 4 KB 8332 and the infobox already said 4 KB; a ROM vector table including a floating-point calculator on a machine with integer BASIC only and a reset vector at 1C00 when a Z80 resets to 0000; a 44-way edge-connector pinout that gives ROMCS on pin 21 when /ROMCS does not exist on the ZX80 bus at all; a board-revision table for Issue 1 and Iss...
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Infobox computer
{{Infobox computer
| name        = Sinclair ZX80
| name        = Sinclair ZX80
| image        = [[File:ZX80.jpg|250px]]
| image        = [[File:ZX80 PCB Top.jpg|250px]]
| caption      = A fully–assembled Sinclair ZX80
| caption      = Sinclair ZX80 logic board. Twenty-two ICs, all standard parts — there is no ULA on this machine
| manufacturer = Science of Cambridge Ltd (later Sinclair Research Ltd)
| manufacturer = Science of Cambridge Ltd (later Sinclair Research Ltd)
| type        = Home computer / hobbyist kit
| type        = Home computer, sold as a kit or ready-built
| release date = 29 January 1980
| release date = January 1980
| discontinued = March 1981 (superseded by ZX81)
| discontinued = 1981 (superseded by the [[Sinclair ZX81|ZX81]])
| price        = £79 .95 kit / £99 .95 ready-built (≈US$199/249 in 1980)
| price        = £79.95 kit, £99.95 ready-built
| cpu          = Zilog Z80A-compatible (NEC µPD780C-1) @ 3.25 MHz
| cpu          = Z80-class processor (Sinclair's diagram marks IC1 "780-1"), clocked at '''3.25 MHz''' — the 6.5 MHz oscillator X1 divided by two
| memory      = 1 KB static RAM on-board (expandable to 16 KB, 48 KB with mods)
| memory      = '''1 KB static RAM''' — two 2114 chips at IC3 and IC4. Expandable through the rear edge connector
| storage      = External cassette tape (300 baud, EAR/MIC jacks)
| storage      = External cassette recorder through 3.5 mm EAR and MIC jacks
| display      = Monochrome RF to TV – 32 × 24 text or 64 × 48 block-graphics
| display      = Monochrome RF to a television. '''The display blanks while a program runs''' — this is normal, not a fault
| sound        = None (no audio hardware)
| sound        = None
| dimensions  = 195 mm × 175 mm × 50 mm (7.7 ″ × 6.9 ″ × 2.0 ″)
| power        = External unregulated DC adaptor through a '''3.5 mm mono jack, centre pin positive'''. Nominal 9 V; Sinclair's diagram marks the input "9 V – 11 V"
| weight      = ≈ 340 g (0.75 lb)
| os          = '''4 KB''' Sinclair integer BASIC in mask ROM (IC2, an 8332)
| os          = 4 KB Sinclair Integer BASIC in ROM
| predecessor  = [[Science of Cambridge MK14]]
| successor    = [[Sinclair ZX81]]
| successor    = [[Sinclair ZX81]]
| codename    = “ZX80 project”
| model        = ZX80
| model        = ZX80
}}
}}
<templatestyles src="Template:StyledTable/styles.css" />


The '''Sinclair ZX80''' is an 8-bit home computer marketed by Sir Clive Sinclair’s '''Science of Cambridge''' (soon renamed '''Sinclair Research''') as ''“the first personal computer for under one hundred pounds.”'' Released in January 1980, it ignited the UK micro-boom and sold about 100 000 units worldwide despite numerous limitations – most famously its blanking video that disappears while BASIC is running code.
The '''Sinclair ZX80''' is an 8-bit home computer sold from January 1980 by Science of Cambridge, the company that became Sinclair Research. It was sold as a kit at '''£79.95''' and ready-built at '''£99.95''', and it was the first computer most people in Britain could imagine buying.


The '''ZX80''' arrived in February 1980—just months before the BBC Micro project was even conceived—and became the '''first consumer microcomputer to retail for under £100''' in the United Kingdom.<ref>Mail-order advert, ''Practical Computing'', March 1980.
'''Sinclair published no service manual for it.''' What exists is the circuit diagram, which is hosted on this wiki, plus trade servicing articles from the period and the community archives. Every figure on the ZX80 pages here is traced to one of those; where nothing could be traced, the figure has been removed rather than guessed at.<ref name="zx80cd" />
* '''Launch prices''' (1980): '''£79.95''' in kit form, '''£99.95''' fully assembled (plus £4 P&P).
* Sinclair’s glossy national-press adverts boasted “The computer you can afford to own” and invited readers to “own a real computer for less than the price of a colour TV.” 
* Production was handled by Timex’s Scottish plant in Dundee; the first 10 000 boards were delivered in six weeks. 
* '''Estimated lifetime sales:''' contemporary interviews with Clive Sinclair quote “50–70 000 kits” and around “30 000 ready-built” units, giving an aggregate of '''≈ 100 000 ZX80s worldwide''' before the ZX81 superseded it in March 1981.


== 🧠 Architecture ==
For servicing see [[Sinclair ZX80 General Maintenance]], [[Sinclair ZX80 Troubleshooting Guide]] and [[Sinclair ZX80 Capacitor Replacement Guide]].
* '''CPU''' – Z80A-class microprocessor clocked at '''3.25 MHz''' (half the UK colour-burst for simple TV timing). 
* '''ROM''' – 4 KB mask ROM containing Sinclair Integer BASIC, line-editor and I/O routines. 
* '''RAM''' – 1 KB of 2114 static RAM; addressable to 48 KB via the rear expansion bus (commonly 16 KB DRAM pack). 
* '''Logic''' – Built entirely from 18 inexpensive 74-series TTL ICs; no custom chips – video, keyboard scan and cassette I/O are all done in firmware.


=== Video generation ===
== What the ZX80 actually is ==
The Z80 itself bit-bangs UHF video: during the '''FAST''' display loop it outputs a sync pulse then immediately fetches the next character row from RAM, interleaving code and picture. When the CPU is diverted to BASIC interpretation the timing breaks, so the TV loses sync – producing the ZX80’s trademark flicker. (The later ZX81 added a SLOW mode with hardware assistance to cure this.)


== 💾 Storage ==
Three things distinguish it from the machines that followed, and all three matter when repairing one:<ref name="zx80cd" /><ref name="kiodiff" />
Load / SAVE uses the '''300 baud Kansas City Standard''' with simple square waves on 3.5 mm EAR/MIC sockets. Program listings average ~4 seconds per KB.


== 🔌 I/O and Expansion ==
* '''There is no ULA.''' The ZX80's logic is ordinary 74LS parts. Sinclair combined them into a single ULA to make the [[Sinclair ZX81|ZX81]] &mdash; so nothing on a ZX80 board can be diagnosed as "a failed ULA", and ZX81 repair advice does not transfer.
* '''Edge connector (44-way)''' – exposes full Z80 bus, power and video lines.
* '''The RAM is static''', two 2114 chips giving 1 KB. Because there is no DRAM there is '''no &minus;5 V and no +12 V rail anywhere on the machine''' &mdash; the only rails are the incoming unregulated supply and the +5 V the regulator makes from it.
* '''9 V DC input''' – un-regulated (internally regulated to 5 V).
* '''The video is generated by the processor.''' There is no display hardware in the modern sense; the Z80 emits sync and picture itself, which is why the screen blanks whenever BASIC is actually doing something.
* '''RF modulator''' – channel 36 PAL TV.
Commercial add-ons included:
: ''1–3 KB SRAM packs, 16 KB DRAM pack''
: ''ZX Printer, joystick adapters, floppy-drive interfaces, composite video mods''.


== 🔧 Known PCB Revisions & Errata ==
=== The IC complement ===
{| class="wikitable styled-table" style="width:70%; text-align:center;"
|+'''ZX80 Logic-Board Issues'''
! Issue !! Visible Clues !! Key Fixes / Changes
|-
| '''Issue 1''' (Feb 1980) || “ZX80 Issue 1” silkscreen; no solder mask between edge pads. || • Missing pull-ups on IC12 (74LS05) video drivers caused weak sync on some TVs. 
• Regulator IC5 runs hot—Sinclair added stick-on heatsink in later batches.
|-
| '''Issue 2''' (late 1980) || Added green solder mask; extra wire-link near IC12. || • 4× 1 kΩ SIL resistor pack RP1 installed for stronger TTL drive. 
• Board edge widened 1 mm to fit Timex card guides.
|}


== 🛠️ General Maintenance ==
From Sinclair's own circuit diagram:<ref name="zx80cd" />
{| class="wikitable styled-table" style="width:70%; text-align:center;"
! Issue !! Cause !! Remedy
|-
| Unstable picture / snow || Ageing electrolytic C5 (47 µF) on video rail || Replace with low-ESR 105 °C part
|-
| Reboots when touched || Loose 7805 regulator tab shorts to case || Insulate tab / fit TO-220 spacer
|-
| RAM pack “wobble” resets || Leverage on edge bus ⇒ poor contact || Fit retention bracket or right-angle header
|-
| Overheating || No ventilation slots (black “stripes” are cosmetic) || Drill discreet vents or run uncased board
|}


Full recapping, regulator heatsinking and replacement of the brittle membrane keyboard are popular reliability upgrades.
{| class="wikitable styled-table" style="width:80%;"
 
|+'''ZX80 integrated circuits'''
== 📜 Schematic & PCB ==
! Ref !! Type !! Ref !! Type
The complete single-layer PCB schematic is freely available 
{| class="wikitable"
|+
! [[File:ZX80_Schematic.png|thumb|center|500px|Sinclair ZX80 circuit diagram]]
! [[File:ZX80_PCB_Top.jpg|thumb|center|260px|Original Issue 1 board – note hand-drawn track work]]
|}
 
== 🔧 Common Modifications ==
* '''8 KB ZX81 ROM upgrade''' – drops-in to give floating-point BASIC, SAVE/LOAD VERIFY and better editing (still no SLOW mode). 
* '''Composite video mod''' – bypass RF can for crisp LCD/monitor output. 
* '''Full-travel keyboard''' – external matrix wired to KB pins 8-15. 
* '''Internal 16 KB SRAM''' – replaces external pack, eliminating “wobble.” 
* '''Turbo crystal (3.58 MHz)''' – simple Xtal swap for ≈10% speed gain (requires retune TV).
 
== 🔢 ROM Keyword Map ==
Each key performs multiple functions depending on mode: 
{| class="wikitable styled-table" text-align:center;"
|+ Example ZX80 keyboard layer
|-
! Key !! <code>F</code> mode !! <code>K</code> mode !! <code>L</code> mode
|-
| '''P''' || <code>PRINT</code> || <code>P</code> || <code>(</code>
|-
| '''R''' || <code>RETURN</code> || <code>R</code> || <code>)</code>
|-
|-
| '''G''' || <code>GOTO</code> || <code>G</code> || <code>></code>
| IC1 || 780-1 (Z80 CPU) || IC12 || 74LS00
|}
 
== 🔗 Edge-Connector Pin-out ==
<templatestyles src="Template:StyledTable/styles.css" />
{| class="wikitable styled-table" style="width:75%; text-align:center;"
|+'''ZX80 44-way Expansion Bus (viewed from rear, component side up)'''
! Pin !! Signal !! Description !! Pin !! Signal !! Description
|-
|-
| 1 || '''A15''' || Address bus MSB || 23 || '''D4''' || Data bit 4
| IC2 || 8332 &mdash; '''4 KB''' mask ROM || IC13 || 74LS04
|-
|-
| 2 || '''A14''' || || 24 || '''D5'''
| IC3 || 2114 RAM || IC14 || 74LS05
|-
|-
| 3 || '''A13''' || || 25 || '''D6'''
| IC4 || 2114-1 RAM || IC15 || 74LS05
|-
|-
| 4 || '''A12''' || || 26 || '''D7'''
| IC5 || 74LS373 || IC16 || 74LS10
|-
|-
| 5 || '''A11''' || || 27 || '''BUSACK''' || Bus acknowledge
| IC6 || 74LS157 || IC17 || 74LS32
|-
|-
| 6 || '''A10''' || || 28 || '''BUSRQ''' || Bus request (NC on ZX80)
| IC7 || 74LS157 || IC18 || 74LS74
|-
|-
| 7 || '''A9''' || || 29 || '''WAIT''' || Insert wait-states
| IC8 || 74LS157 || IC19 || 74LS74
|-
|-
| 8 || '''A8''' || || 30 || '''HALT'''
| IC9 || 74LS166 || IC20 || 74LS86
|-
|-
| 9 || '''A7''' || || 31 || '''INT'''
| IC10 || 74LS365 || IC21 || 74LS93
|-
|-
|10 || '''A6''' || || 32 || '''NMI'''
| IC11 || 74LS00 || '''IC22''' || '''7805 regulator'''
|-
|11 || '''A5''' || || 33 || '''RESET'''
|-
|12 || '''A4''' || || 34 || '''M1''' || Machine-cycle 1
|-
|13 || '''A3''' || || 35 || '''RFSH'''
|-
|14 || '''A2''' || || 36 || '''CLK''' || CPU clock (3.25 MHz)
|-
|15 || '''A1''' || || 37 || '''GND'''
|-
|16 || '''A0''' || || 38 || '''+5 V'''
|-
|17 || '''D0''' || Data bit 0 || 39 || '''+9 V DC'''
|-
|18 || '''D1''' || || 40 || '''/MREQ'''
|-
|19 || '''D2''' || || 41 || '''/IORQ'''
|-
|20 || '''D3''' || || 42 || '''/RD'''
|-
|21 || '''ROMCS''' || Low = internal ROM enable || 43 || '''/WR'''
|-
|22 || '''VIDEO''' || Composite video out (TTL) || 44 || '''/RAMCS''' || Low = internal RAM enable
|}
|}


*Pins 27–30 are left unconnected on the original Issue 1 PCB but were wired on some third-party add-ons (e.g., ''RAM Pack bus isolators'').*
'''The regulator is IC22, not IC3.''' IC3 is a RAM chip. Getting this wrong is how people end up replacing memory on a machine with a power fault.<ref name="zx80cd" />
 
== Power ==
 
An external unregulated adaptor feeds a '''3.5 mm mono jack, centre pin positive'''. It is the same size as the EAR and MIC sockets, so it is easy to plug into the wrong one. Nominal 9 V; about 14 V open-circuit; Sinclair's diagram marks the input "9 V &ndash; 11 V".<ref name="kio80" /><ref name="zx80cd" />
 
'''Get the polarity right.''' A lead re-terminated the wrong way round is a known killer of the regulator on this family.<ref name="tv2" />


== 🗺️ Exact Memory Map & Key ROM Entry Points ==
Full detail, including what to check and in what order, is on the [[Sinclair ZX80 General Maintenance]] page.
{| class="wikitable styled-table" style="width:80%;"
 
|+'''ZX80 Address Space (standard 1 KB RAM)'''
== Storage ==
! Range (hex) !! Size !! Function
 
|-
Cassette, through 3.5 mm EAR and MIC jacks. There is no disc interface and Sinclair sold none for this machine.
| <code>0000–1FFF</code> || 8 KB || '''ROM''' (8 192-byte BASIC / OS)
 
|-
== Expansion ==
| <code>2000–23FF</code> || 1 KB || '''Display file''' (variable—grows downward)
 
|-
A rear edge connector carries the Z80 bus along with '''+5 V, +9 V and 0 V'''. The full pinout is printed on Sinclair's circuit diagram, and that is where to read it from &mdash; an earlier version of this page carried a pin-by-pin table that was not Sinclair's and is now removed.<ref name="zx80cd" />
| <code>2400–3AFF</code> || 3.5 KB || '''BASIC program area''' (grows upward)
 
|-
'''One difference from the ZX81 is worth knowing before you plug anything in: /ROMCS does not exist on the ZX80 bus.''' That input was added for the ZX81, so ZX81-era expansion hardware that relies on it will not behave the same way on a ZX80.<ref name="kio80" />
| <code>3B00–3CFF</code> || 512 B || '''System variables / stacks'''
 
|-
== Board revisions ==
| <code>3D00–3FFF</code> || 768 B || Unused (with 1 KB RAM fitted)
 
|-
'''No Sinclair-published list of ZX80 board issues has been found.''' Photographs of '''Issue 3''' and '''Issue 3A''' boards are held in the Sinclair ZX Computers Archive, and that is the only board-issue evidence located.<ref name="kiopcb" /> Your board's issue number is silkscreened on it &mdash; work from what is in front of you.
| <code>4000–FFFF</code> || Up to 48 KB || External RAM / peripherals (RAM Pack etc.)
 
|}
An earlier version of this page carried a table of "Issue 1 (February 1980)" and "Issue 2 (late 1980)" boards with specific changes attributed to each: missing pull-ups on IC12, a resistor pack RP1 added, the board edge widened by 1 mm to fit Timex card guides. '''None of it could be traced to any source''', and the IC12 claim contradicts Sinclair's own diagram, which shows IC12 as a 74LS00 rather than a video driver. The table has been removed.
 
== Capacitors ==
 
'''There are exactly two electrolytics on the board''': '''C8''', 22 µF 16 V, across the unregulated input, and '''C10''', 1 µF, in the power-on reset network. Everything else is ceramic and is not a service item.<ref name="zx80cd" />
 
An earlier version of this page named "ageing electrolytic C5 (47 µF) on the video rail" as a cause of unstable picture. '''There is no C5 electrolytic, no 47 µF part and no video rail on this machine.''' See the [[Sinclair ZX80 Capacitor Replacement Guide]].
 
== Things that were on this page and should not have been ==
 
This page was rebuilt during a verification drive. The following were removed because they could not be traced to any source, and in several cases are contradicted by Sinclair's own circuit diagram:


=== Popular ROM Vectors (ROM v1.2, 1980) ===
* '''A memory map giving the ROM as 8 KB at 0000&ndash;1FFF.''' The ZX80's ROM is '''4 KB''' &mdash; IC2 is an 8332 &mdash; and the page's own infobox said so. The 8 KB figure belongs to the [[Sinclair ZX81|ZX81]].<ref name="zx80cd" />
{| class="wikitable styled-table" style="width:70%; text-align:center;"
* '''A table of ROM entry points including a floating-point calculator at 03B5.''' The ZX80 runs '''integer''' BASIC and has no floating-point arithmetic at all. A "reset" vector at 1C00 is equally impossible: a Z80 resets to 0000.
|+'''Machine-code Entry Points'''
* '''A 44-way edge connector pinout''' allocating signals in a tidy sequential run. Read the pinout off Sinclair's diagram instead. The table also gave /ROMCS on pin 21, and /ROMCS does not exist on this machine's bus.<ref name="kio80" />
! Address !! Label !! Purpose
* '''"CPU clock 3.25 MHz, ÷13 from a 13 MHz crystal"''' and "half the UK colour burst". The oscillator is '''6.5 MHz''' and it is divided by '''two'''; the PAL colour burst is 4.43 MHz and has nothing to do with it.<ref name="zx80cd" />
|-
* '''A "turbo crystal" modification''' claiming a 10 per cent speed gain from fitting a 3.58 MHz part. On a machine whose video timing is generated by the processor itself, changing the clock does not make it faster &mdash; it stops the television synchronising.
| <code>02D9</code> || <code>SCROLL</code> || Scroll screen & tidy display file
* '''"Drill discreet vents" in the case''' as a remedy for overheating. Do not drill holes in a forty-five-year-old computer. If the regulator runs hot, that is what its heatsink is for; if it is too hot, look for a fault.
|-
* '''A "Woolmark-approved polyester" keyboard supplier story''', a Guinness World Record, and a "SLOW token present in the ZX80 ROM". None of these could be traced anywhere.
| <code>0281</code> || <code>PRINT</code> || Print character in A to current cursor
|-
| <code>03B5</code> || <code>FP_CALC</code> || Floating-point expression evaluator
|-
| <code>020E</code> || <code>KEY_SENSE</code> || Scan membrane keyboard matrix
|-
| <code>1C00</code> || <code>RESET</code> || Cold start & RAM test
|}


== 📺 Video Timing Characteristics ==
[[File:Sinclair ZX80 circuit diagram.png|center|thumb|700px|Sinclair's ZX80 circuit diagram &mdash; the only technical document Sinclair published for this machine, and the source for every figure on this page.]]
The ZX80’s display is entirely CPU-generated; during '''visible lines''' the Z80 executes a tight NOP/DJNZ loop to emit sync & pixel pulses on the ```VIDEO``` pin.


{| class="wikitable styled-table" style="width:60%; text-align:center;"
== Related Pages ==
! Parameter (PAL) !! Value !! Notes
|-
| CPU clock || 3.25 MHz || ÷13 from 13 MHz crystal
|-
| Character clock || 6.5 µs || 1 byte = 8 µs incl. margin
|-
| Line period || 207 T-states (≈64 µs) || 24 T sync + 183 T picture
|-
| Active lines || 192 || 24 rows × 8 pixels
|-
| Frame total || 312 lines || 50 Hz vertical refresh
|}


''Because the Z80 is busy generating video, '''user programs run only during the vertical blank'''; running BASIC therefore blanks the display, a quirk fixed in the later ZX81 by adding NMI-driven slow mode.''
* [[Sinclair ZX80 General Maintenance]] &middot; [[Sinclair ZX80 Troubleshooting Guide]] &middot; [[Sinclair ZX80 Capacitor Replacement Guide]]
* [[Sinclair ZX81]] &mdash; the successor, where the TTL became a ULA
* [[Capacitor Failure Symptoms]] &middot; [[Recommended Tools]]


== 🎬 Trivia / Pop-culture ==
== References ==
* '''Guinness World Records''' recognises the ZX80 as the ''first computer sold for under £100'' (ready-built). 
* Featured (and exploded!) in the 2009 BBC dramatisation '''''Micro Men''''' depicting the rivalry between Sinclair and Acorn. 
** ''"That bloody screen flicker"'' 
* ZX80 BASIC token <code>'SLOW'</code> exists, even though the machine has no slow mode—left as vestigial code reused in the ZX81. 
* The iconic blue membrane keyboard’s legends were printed on *Woolmark-approved* polyester—the same supplier as Clive Sinclair’s electronic watch straps.


== 🗂️ Related Pages ==
<references>
* [[Sinclair ZX81]] – successor with improved video logic.
<ref name="zx80cd">Sinclair Research Ltd, ''ZX80 Circuit Diagram''. Hosted on this wiki as [[:File:Sinclair ZX80 circuit diagram.png]]. Source for the IC type list, the 4 KB 8332 ROM, the 2114 static RAM, the 7805 at IC22, the 6.5 MHz oscillator X1 divided by two, the supply rails, the two electrolytics C8 and C10, and the edge-connector pinout. This is the only Sinclair-published technical document located for the machine; Sinclair issued no service manual for the ZX80.</ref>
* [[Sinclair ZX Spectrum]] – coloured 1982 evolution of the Sinclair line.
<ref name="kiodiff">''Differences between ZX80, ZX81 and Timex 1000'', The Sinclair ZX Computers Archive, k1.spdns.de. Secondary source: the ZX80's standard TTL logic was combined into one ULA for the ZX81, and the ZX80's display blanks while a program runs.</ref>
* [[Sinclair Computers General Maintenance]]
<ref name="kio80">''Sinclair ZX80 Connectors'', The Sinclair ZX Computers Archive, k1.spdns.de. Secondary source: connector types, supply polarity and open-circuit voltage, and the absence of /ROMCS from the ZX80 bus.</ref>
<ref name="kiopcb">''Sinclair ZX80 &mdash; PCB'', The Sinclair ZX Computers Archive, k1.spdns.de: photographs of ZX80 Issue 3 and Issue 3A boards. Secondary source; the only board-issue evidence located.</ref>
<ref name="tv2">"Servicing Sinclair Computers, Part 2", ''Television'' magazine, 1986. Trade servicing article covering the ZX80 and ZX81 family, mirrored in the Sinclair ZX Computers Archive at k1.spdns.de. Secondary source: reverse-polarity damage and handling practice.</ref>
</references>


[[Category:Sinclair Computers]]
[[Category:Sinclair Computers]]