78 votes

Back in 1984 I wrote some games for Spectrum - Will they still be playable?

well, if you really want those games back, just buy the tape. Then buy a cassette player (they're cheap, you can try to get a high quality one) or find a friend who still has one. Now: Make sure to ...
Jean-François Fabre's user avatar
75 votes
Accepted

How were the first ZX Spectrum games written?

Interestingly enough, I stumbled in a related article, that hints firstly the (cross)development at Sinclair was made on CP/M machines, (which corroborates the Matthew Smith Manic Miner development in ...
Rui F Ribeiro's user avatar
67 votes

Could Pac-Man be replicated perfectly on the ZX Spectrum?

Both the Sinclair ZX Spectrum and the Pac-Man arcade machine used the Zilog Z 80 CPU. Pac-Man's display was slightly larger and vertical at 224×288 while the Speccy's was horizontal at 256×192. The ...
hippietrail's user avatar
  • 6,333
65 votes
Accepted

Can a USR command damage a ZX Spectrum?

I am the author of that video. I wrote a little article about that years ago. I will copy that for you here: Original article here: http://www.zxprojects.com/index.php/the-fix-a-spectrum-blog/29-the-...
mcleod_ideafix's user avatar
56 votes

How were the first ZX Spectrum games written?

This is quite a wide-ranging question. There are some resources online which help: Jonathan Cauldwell, author of various Spectrum hits, has a How to write games for the Spectrum" guide, which ...
Nige Jones's user avatar
56 votes
Accepted

How do I extract the program from the Radiohead "Nude" tribute by James Houston?

First, many thanks for the great question. This may well be my favourite retrocomputing video of them all, so I contemplated having a look at the executable for a while myself. So, this is what I did: ...
introspec's user avatar
  • 4,142
56 votes
Accepted

Did John Carmack really invent "Adaptive Tile Refresh"?

John Carmack almost certainly was the first to use the hardware scrolling capabilities of the EGA specifically, together with efficient tile and sprite drawing and erasing algorithms to create a slick,...
knol's user avatar
  • 11.8k
48 votes
Accepted

Loading ZX Spectrum tape audio in a post-cassette world

If (and only if) your audio player is battery powered, and your Spectrum is the 48K or 128K toastrack model, try the following procedure, intended to boost the volume of your wave signal, as seen by ...
mcleod_ideafix's user avatar
48 votes
Accepted

How did the various Soviet ZX Spectrum clones support Cyrillic text?

I own a clone produced in Ukrainian Soviet Republic - "ОРЕЛЬ БК-08". It supports Cyrillic and Latin fonts. The main idea is similar to ANSI.SYS approach for DOS. There is a special control ...
Vlad's user avatar
  • 1,541
45 votes
Accepted

Why does this BASIC program declare variables for the numbers 0 to 4?

These tricks are usually done to increase speed or reduce space. For most (especially Microsoft) BASIC, constants are stored within a tokenized line as ASCII (as entered), and converted to a floating ...
Raffzahn's user avatar
  • 213k
42 votes
Accepted

How were Western computer chips reverse-engineered in USSR?

Little is known about how these computers and chips were made, because their development was top secret in the Soviet Union. As far as I know, Soviet Western-compatible ICs were made by copying ...
Algimantas's user avatar
  • 1,354
40 votes
Accepted

Why did the ZX Spectrum use an internal speaker?

I strongly expect that an RF modulator, which is needed to create the TV-style signal, would cost more if it had to handle sound too. A small speaker is very cheap, and often a useful device for ...
John Dallman's user avatar
  • 12.4k
39 votes
Accepted

ZX Spectrum tokenisation

Contrary to other answers, obliging the user to enter BASIC tokens directly doesn't really save meaningful amounts of RAM. Many of its contemporaries such as the BBC Micro had BASICs where you typed ...
pndc's user avatar
  • 10.8k
37 votes

How were Western computer chips reverse-engineered in USSR?

It seems to be pretty much accepted wisdom that the Soviets completely cloned the Western chips and did not simply develop reimplementations of the same instruction sets. Since at the time it was ...
Igor Skochinsky's user avatar
35 votes

Back in 1984 I wrote some games for Spectrum - Will they still be playable?

Back in the '80s, I wrote a couple of games too. A few years ago I have found the old cassettes with those games, but I had no tape deck at all. I bought a "USB walkman" Basetech BT-USB-TAPE-...
Martin Maly's user avatar
  • 5,487
32 votes
Accepted

Documentation for the ZX Spectrum ULA

Buy, and study carefully, The ZX Spectrum ULA. The book is the result of opening the chip and reverse-engineering it down to the transistor level.
pndc's user avatar
  • 10.8k
31 votes
Accepted

How did ZX Spectrum games loaders prevent the use of MERGE?

Each line of BASIC is stored in memory as two bytes for the line number, then two bytes indicating the length of the line in bytes, followed by the tokenised text of the line. MERGE protection works ...
gasman's user avatar
  • 1,341
30 votes

How and why did the ZX Spectrum use so many voltages?

I will start with the last question: The power adapter is a very cheap one. In fact, the voltage without load can raise up to 15-16V. 9V is the nominal supply voltage under the normal load that the ...
mcleod_ideafix's user avatar
28 votes
Accepted

How did "full memory" Spectrum tape copiers work?

These programs usually had a mono-color background with very little text. By setting the color of the screen as "black ink on black paper" or "white ink on white paper", it is possible to relocate the ...
Sklivvz's user avatar
  • 1,233
27 votes
Accepted

Adapting a "modern" keyboard to a ZX Spectrum

I did such interface long time ago. It was(is) an internal interface designed to fit in a place near the right side of the board when using the Plus case. Technical details here: http://www....
mcleod_ideafix's user avatar
27 votes

What is causing the problem with the RAM in this (claimed) Spectrum 48k?

A single bad DRAM, probably — in machines of that vintage each DRAM holds only a single bit at each address; you use eight in parallel to serve an 8-bit bus. And the Spectrum uses physically separate ...
Tommy's user avatar
  • 35.9k
27 votes
Accepted

Native C compiler for Sinclair ZX Spectrum

If you want it contemporary, use HiSoft C. Back then the standard compiler and compatible with other HiSoft Tools. For a more up to date and rather comfortable (cross) compiler Z88dk with its ...
Raffzahn's user avatar
  • 213k
26 votes
Accepted

Blue and yellow stripes on the screen when loading from tape on ZX Spectrum

Actually, the screen stripes while loading from tape first occurred on the ZX-81 - Where they were a result of Sinclair's typical savvy nature - the display and the "EAR IN/MIC OUT" had to share a pin ...
tofro's user avatar
  • 33k
26 votes
Accepted

Uptime in ZX BASIC

According to http://www.worldofspectrum.org/ZXBasicManual/zxmanchap25.html, addresses 23672-23674 contain a 24 bit count of 50Hz frame ticks in the UK. I wrote a quick program to print the values, ...
pndc's user avatar
  • 10.8k
26 votes
Accepted

Was Locomotive BASIC significantly better than Sinclair BASIC?

The big improvement to the language in Locomotive BASIC, compared to Sinclair BASIC (and many other BASICs), was the addition of timer support: AFTER 50,0 GOSUB 320 would call the subroutine at line ...
Stephen Kitt's user avatar
25 votes
Accepted

What format is the (Timex) Sinclair ZX Spectrum SCREEN$/.SCR file

For a standard screen, compatible with ZX Spectrum, a SCREEN$ file is 6912 bytes. It's just a dump of the screen memory. The first 6144 bytes store the screen bitmap: 256x192 pixels, 1 bit per pixel (...
mcleod_ideafix's user avatar
25 votes
Accepted

What was the reason for the ZX Spectrum's display bitmap layout?

This is a (for the moment) a short answer: The Spectrum was engineered with a character oriented display, as Sinclair wanted people to use it for business, not for games, so the screen is arranged so ...
mcleod_ideafix's user avatar
25 votes
Accepted

Why does this ZX Spectrum machine code "Hello World" routine not produce the expected result?

It may help if you load the address of the text to be printed. After all, you relocated the routine including the text, but still load the old address: ld de, text ; 11 0E 7F; => 17 ...
Raffzahn's user avatar
  • 213k
25 votes

How did the ZX Spectrum avoid key ghosting?

As far as I did my own experiments with the ZX Spectrum keyboard, I strongly disagree with that quoted text. The ZX Spectrum keyboard did ghosting, of course. Let's look at the key matrix: Imagine ...
Martin Maly's user avatar
  • 5,487
25 votes

Is there a list of space-saving techniques for representing constants?

Solution: I know, this is a bit unfair, but there's a generic solution to that: VAL "n" Using VAL with an integer(*1) will always be three bytes shorter than that integer used directly. No ...
Raffzahn's user avatar
  • 213k

Only top scored, non community-wiki answers of a minimum length are eligible