March 5, 1981: Timex Sinclair ZX81 Launched (2018)
dayintechhistory.com
dayintechhistory.com
First: the ZX81 was not a "Timex Sinclair" product on the day of its launch because Timex didn't get a licence to manufacture it in the USA until the following year.
Second: Sinclair Research was never (again, unless someone can correct me) a "Timex Corporation"!
If it had been, it wouldn't have gone conclusively bust and been given a new life by Grumpy St Alan of Sugar, the brave champion of British national technology pride.
"Timex Sinclair" was the US licensing venture (not the maker).
Timex pulling out of that deal (because the Spectrum was understandably too British in spirit to easily flog to a market that had birthed the Apple II and where the C64 was cheaper) is arguably the start of Sinclair's slow-building battle against the tide.
--
[0] Important in the sense that I, as a Brit of a certain age, must correct them in the interests of a kind of battered and timeworn national pride.
I would put these corrections in comments on the original article, but that would mean having a Disqus account, and in my experience that ultimately means encounters with trolls.
No, indeed it wasn't -- perhaps my initial comment wasn't clear. (Some of that might be the latent British rage of the overlooked)
I've amended a bit.
(In fact I doubt the Timex Sinclair devices even worked here, and vice versa, hence the need for a manufacturing deal that dealt with needing NTSC and 60hz power etc.)
So, there's nothing special about a machine for the US market that required it to be manufactured there. Presumably it was commercially preferable to do so.
You're correct though that a US model wouldn't work in the UK without modification, and vice versa.
(Like how the Raspberry Pi is manufactured under contract by Sony in Wales)
Also, the Apple II CPU didn’t spend 70% of its time drawing the screen! It had separate video hardware that transparently interleaved with the unused back half of the CPU clock cycle. The ZX81 was tricked into “executing” sequential screen-memory addresses in a very tight loop by falsifying its data bus with a NOP instruction. Fancier computers would use dedicated DMA hardware. Not Sinclair!
I think Timex's main projection was that the Sinclair machines would be affordable over the long term. But I guess in the USA, the competition became cheaper much faster than they expected.
Over in the UK, as well as more expensive imported Commodore machines, the native competition included the very expensive BBC Model B and its cousin the Acorn Electron, the beloved and excellent Dragon 32, the quite inexpensive Jupiter Ace (think ZX81/Spectrum but running FORTH natively!), and Tangerine's Oric-1, which was adorable, and as with the Amstrad CPC sold well in France, expanding its market size a bit.
The Spectrum 48K did well against them on price-performance, though the Oric-1 was often cheaper and is arguably the better device.
In the USA, much larger economies of scale meant that the C64 was more affordable, and for cheaper machines the Spectrum was up against the VIC-20 and Atari 400, and even Mattel wanted a chunk of the low-end in that same period of time with the Aquarius (which is similarly simple Z80 stuff).
The Jupiter Ace is one of the great "someone really made that a product?" things, lost to history. It had a flimsy shell and bad keys from what I remember reading, but it's amazing it became a product at all.
There's a lot more of this stuff going on again in the microcontroller world; perhaps partly out of reminiscence.
It was a nerd-fantasy product designed by two unusually clever people to scratch their own itch, with no thought to ecosystem, culture, media support, visual design, or product-market fit.
And then it ran into production difficulties. They still managed to sell a few thousand, but it was never going to be a huge success.
One of those unfortunate situations where high IQ - clearly available - didn't correlate with business sense.
Really utter madness in so many ways but a thing of its time.
I am reminiscing right now about two whole volumes of the Orbis collectible magazine, The Home Computer Course.
I believe I have a complete set stashed away; it has amazing photos of the insides of all of these machines, including the Jupiter Ace.
The competition became cheaper much faster than anyone expected.
The Timex Sinclair 1000's introduction in the US in 1982 caused the US home computer industry to believe that they had to enter the sub-$100 market. Tandy introduced the MC-10 (<https://en.wikipedia.org/wiki/TRS-80_MC-10>) as a cut-down version of its Color Computer, and TI designed the 99/2 as a cut-down version of its 99/4A. Two unexpected things happened:
* Americans, more wealthy than Britons or Europeans, viewed $99 computers as toys.
* Commodore's Jack Tramiel began a massive price war that drove the retail price of existing, more capable home computers down to $99. In 1983 the Commodore VIC-20 and TI 99/4A reached the $99 price point. TI thus never introduced the 99/2 despite having it ready for production.
The VIC-20 and 99/4A received substantial third-party support; the Timex Sinclair 1000 and MC-10 did not, and quickly disappeared from the market.
For one data point in performance, theultimatebenchmark.org has some Forth benchmarks that apparently show a 4GHz Z80 beating the 6502 by 2X (best scores for each: mc-CP/M Z80 4Mhz / FIG-Forth 1.1 / Fib2 = 1m19s, Apple II 1Mhz / Apple GraForth / Fib2 = 2m19s).
Disclaimer: biased, veteran Z80 / ZX Spectrum programmer ;)
The IX/IY registers are heavyweight but one needs to remember the "best-practices" of that era and architecture. In well optimized Z80 code, the IX/IY registers are often used for critical "global variables" that you can keep all the time in registers across many subroutine calls (think "segment registers": base pointers for important tables or buffers that are not fixed addresses through the whole program). Their performance beats needing frequent indirect load/store from pointers stored in memory via other registers that often need to be preserved/restored.
You can also use some relatively low-latency instructions that involve IX/IY, in particular PUSH/POP were often used in optimized buffer-copy routines: you burn all registers to fetch up to 20 bytes of contiguous data with POPs, then you patch the SP register and issue PUSHs in inverse order to store those 20 bytes in another location; loop if needed for >20 bytes, even with loop overhead this is faster than LDIR/LDDR. Games used that trick all the time for block copies like sprite bitblt or double-buffer animation.
I'll be more convinced by realistic benchmarks, and yes the Fib2 that I quoted before is not impressive even for the standards of CPU microbenchmarks, but maybe someone would know some real-world code that had good ports to both CPUs and could give a better verdict. Unfortunately games are never good choices, the 8-bit systems had radically different architectures for essential features like video and audio so "ports" were often full rewrites even at a high level like rendering strategies... there might be exceptions, like the AI component of a chess game.
https://www.thecourier.co.uk/fp/past-times/2030845/dundee-wa...
Much fun was had programming in machine language by looking up op-codes in Rodney Zak's "Programming the Z80" and counting the clock cycles to figure out the most efficient set of op-codes. As I recall the fastest op-code requires 4 clock cycles but some instructions would need more than 10 so much performance could be gained by knowing and optimising. This was before there was a Z80 assembler available so the hex of those op-codes had to be typed and POKEd into memory from the BASIC interpreter.
A side-note - don't forget the ZX81 was preceded by the Sinclair ZX80 in 1980 [0].
Also, there's a 'composite mod' which replaces the RF modulator, and gives you rock solid composite image on modern TVs.
It's certainly being phased out, but it's not gone yet.
---
[1] https://en.wikipedia.org/wiki/Horizontal_blanking_interval
The ZX81 was so badly shielded with its thin plastic case it would make nearby radios go crazy. You could tune a MW radio off-station, put it close to the computer and listen to code executing. It made different sounds depending on what loops it was in. That was how I was able to make "computer music" in 1981, by poking little "machine code" routines into RAM and running them to make "songs" come out the radio.
My Dad built it from a kit, can still remember him spending all night soldering it. Literally set the direction of my life/career.
We didn't have any permanent storage at first, so I would type basic programs in by hand like games from magazines and play them, then it was lost on power cycle, so if I felt like playing I had to retype, talk about learning programming through repetition.
Eventually we got an audio cassette recorder working which took like 10-20 minutes to save and load a small basic program, was torture. Eventually upgraded to C64 but still needed audio cassettes for a while the 5 1/4" floppy drive was much more than the computer itself but when we finally got it felt like the future being able to quickly load and save programs!
The voltage regulator on the 5V line fails causing higher voltage to be fed to the motherboard potentially frying every chip on the board.
https://retrogamestart.com/answers/replace-c64-power-supply-...
Nah, it was a lot less than 10-20 minutes. Quick research says ~300bps so a 1KB program should save/load at about 27 seconds.
Also might be mixed with memories of the C64 cassette which is 30 minutes per 100kb per side [2] so 20 minutes for a 64kb program.
I remember it being torture waiting as kid, and I believe it was not always successful and prone to error reading and requiring retries which maybe never worked, seemed like 50/50 chance and eating up lots of time.
I remember sitting on a big swivel chair late into the night in front of a 13" black and white TV writing programs and attempting, mostly in vain, to save them to a cassette tape.
At 15 I should have been out chasing girls instead but what can ya do...
While i cannot say i was a first mover with the ZX81, many hours was spent typing in hex codes on the ZX Spectrum in the hope that a great game would appear.
Odd to think that the ZX81 is now some 40 years old.
Important also as the predecessor of the monster that was the adored Speccy, and it's competitors from Commodore etc.
At least in the UK, this is where the home computer began.
https://retrocomputing.stackexchange.com/questions/6134/how-...
As my first computer was a BBC Micro, it really struck a chord. It’s great seeing the specs for the (yet to be built) ARM chip on the board in the Acorn office, and it’s also awesome that Sophie Wilson playing the barmaid too!
For those that haven’t seen it, it’s definitely worth a watch [1]
Nothing else has ever really conveyed that Clive Sinclair wasn't a sort of little professorial boffin the way the British press portrayed him; he was very business-focussed and evidently had quite a presence.
(Common to the almost concurrent misportrayal of John Major as a small, retiring, grey man)
The one I had doesn't seem very wobbly though. Maybe there is some variation between production runs etc.?
If you're wondering "what can you do in 1kb of RAM?", how about a complete computer game of chess? The YouTube channel Nostalgia Nerd compares the 1981 '1K ZX Chess' program with a more modern chess engine. How do they stack up?
A game of Chess: 1981 1KB Computer vs. Modern PC https://www.youtube.com/watch?v=R3By_rdwxSg
* Reading instructions as constants because the values you need happen to already be in the code.
* Self-modification, including writing variables as constants into the instruction stream, generating instructions at run-time, and reusing code space as data space for one-once code.
* Using bits in the opcodes to store data, since a single bitflip doesn't affect the interpretation of some instructions. E.g. on the Z80 if Z and C are both always 1 at a particular point, you can use either jrz (0010 1000) or jrc (0011 1000) and use the 5th bit in that instruction as a flag. Free storage!
I do find this sort of thing fun. As a hobby. I wouldn't want to write an air traffic control system that way.
https://fosdem.org/2022/schedule/event/retro_chess/
(by the same author as the book 20 GOTO 10)
[Sinclair ZX81 BASIC Programming](http://otremolet.free.fr/otnet/otzx/zx81/basic-progr/)
Yes and no. Yes, because the keys were not great, obviously.
And no, because the ZX81 and the later Spectrum had a massively clever optimisation.
A big chunk of the lexer and parser was implemented in a way that was kind of coupled to the keyboard driver.
So you never typed out GOTO/GOSUB etc., in full.
In fact you could not type out a BASIC keyword in full; the keyboard would not let you. At the points where your program could syntactically accept a BASIC keyword, the keys went into keyword mode and would not produce letters at all.
So pressing G or H at that point would not get you a letter, but GOTO or GOSUB.
This was unusual then and is unheard of now. But it helped make some aspects of coding much more kinaesthetic. And it ended up being quite quick to key in listings, especially if you replaced the keyboard with an aftermarket unit.
You could say its modern equivalent is the MIT LLK research group's design for visual block structure in Scratch, where you cannot assemble control flow in ways that cannot be parsed, and the quasi-physicality of it teaches you as you go.
A tangentially-related story:
When I was a kid I asked my chemistry teacher if a particular chemical bond could happen in ordinary circumstances.
(I can't remember for sure but I imagine I asked about carbon-carbon triple-bonds, not least because it must be a common question and he was ready with the answer.)
His response -- which obviously elides some details! -- was to ask me to try to represent it using the balls-and-springs chemical models. Which you can't really do ;-)
I am reminded of these things, really regularly, when I design any app or website a person has to interact with. It's possible to design useful tools that are also implicit teachers -- where designs communicate possibility and limitations without overburdening the user with detail.
https://en.wikipedia.org/wiki/ZX80
I don't think I've ever seen one of these outside a display case, though.
Slightly ameliorated by the fact that one usually used a single keypress to enter Basic keywords (e.g. J, symbol shift, P P for LOAD "" to put it into cassette loading mode).
It made the notorious ZX Spectrum "dead flesh" keyboard seem quite luxurious in comparison.
I had pre-flighted the transaction by phone, but it was still a strange thing for the office to do a retail transaction - I think my change came out of the postage money drawer. The machine was handed over in brown corrugate, without shiny shelf-ready packaging.
Many hours of programming and experimentation ensued.
Edit: If you thought the Speccy's keyboard was bad then you would have been astounded by how much worse it was on the '81.