Podcast #128: We chat with Kent C Dodds about why he loves React and discuss what life was like in the dark days before Git. Listen now.
60

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 the TRS 80 reference on the OP question), and later on in CP/M emulated under a VAX for (re)using the original binary (cross)toolchain. At Sinclair, a £60,...


53

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 seems to mainly cover modern Speccy development. The Oliver Twins (authors of many Codemasters-published titles back in the day) detail some of their development ...


40

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 the Spectrum EAR circuitry: Get one of these audio cables. They are very common. And yes, they are stereo. Why do we need it to be stereo? The trick is that ...


39

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 debugging a circuit board or firmware. The Spectrum 128K+ did make sound output through the TV, and also had much more sophisticated sound hardware, with an AY-3-...


37

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 point number every time they are evaluated. This is a time consuming process. Assigning the number once to a variable to be used thereafter will skip this part ...


35

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 keywords in full which were then immediately tokenised when you pressed enter. If anything, tokenised Sinclair BASIC generally had longer byte sequences than ...


34

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 masks used in fabrication or by buying manufactured products under fake identities and smuggling them back into Socialist countries where they were reverse-...


30

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 pretty important to have the impression of having own developments, the copying was obviously not admitted publicly so not much is known about how exactly the ...


27

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.


25

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.zxprojects.com/index.php/ps2-adapter This is the board Designed to fit here: Schematic. Very simple. One microcontroller does all the work. Upon booting, the uC ...


25

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-oddities-of-the-inves-spectrum The Inves Spectrum+ was a Spectrum 48K clone made by Investronica, the spanish partner of Sinclair Research, and responsible for ...


24

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 chips to serve its first 16kb and the other 32kb. So a single chip holds the value of bit 2 for every address at or above 32768. No matter which address you ...


23

I suspect your confusion is because INKEY$ returns the current state of the keyboard, not a buffered stream of up / down key presses (On serial terminal based systems such as CP/M you'd get the character code which might have buffer depending on the hardware). Basically the code could be written: 10 Wait for all keys to be up. 20 Wait for a key to be ...


23

Some comprehensive BASIC to start with There are BASICly three (*1) kinds of statements to handle single keystrokes in various BASICs (*2): Waiting for a single keyvalue to arrive and returning it. Checking if a key has been pressed, if yes, it's read and returned, otherwise an empty value is returned Delivering the actual state of the (decoded) keyboard ...


22

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 whole software in video RAM and hide it from view. These programs were tiny asm utilities (they used 1 or 2 kilobytes or RAM) which copied themselves to ...


22

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, which do indeed seem to start at zero on startup and increment at the right rate, and thus serve as an uptime counter. A simple bit of maths indicates that the ...


21

There's so much to go wrong in a cassette mechanism that it's amazing they worked at all. can you adjust tape head azimuth? Misalignment is responsible for a lot of sound problems. how clean are your tape player heads? Are the capstan and various drive rollers clean too? are the pressure pads behind the tape intact? Sometimes the little felt pads come ...


21

The following is an excerpt from the article César Hernández Bañó and I wrote about the internals of the Inves Spectrum+, exposed after a detailed work of reverse enginnering. First, some background: César is the author of the first (and AFAIK, only) emulator that handles the oddities of the Inves Spectrum+. With time, his emulator has evolved and now it ...


21

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 Spectrum target might be a good choice. The detailed documentation is a great plus.


21

Always hard to guess why something simple hasn't been done. In case of the Spectrum it might have been to save on component price. The modulator used is the same as for the ZX81, so Sinclair was for sure already at the optimum price point. On the down side it's a simple video modulator (*1) without a mixing stage for sound, after all, in its quest of ...


20

I know of two ways of achieving polyphony in system with 1-bit audio systems: The simple way: time-multiplex two or more frequencies. For example, if you want the system to produce a mix of two tones, which are pure square waves in origin like these: you can simply render a period of first tone, followed by a period of second tone, and again, a period of ...


20

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 Spectrum circuit imposes. Why 9V? It was a "standard" voltage setting at the time (equivalent to six 1.5V batteries), so transformers whose secondary winding ...


20

No need for any special Spectrum knowledge. It's about power, and there is no rectifying, no appropriate sized capacitor and voltage control elements on this board, so it most definitely does not take AC but rather some well regulated DC input. I'd assume 5V. So operating it at some arbitrary AC and higher voltage my fry it right away. Usually the start ...


19

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 on the ULA and thus made the (whole) screen flicker in stripes during tape loading and saving. This actually proved useful as a visual clue the computer still ...


19

I remember a friend of mine who did a lot of C64 coding. I distinctly remember seeing him writing out the assembly mnemonics on a lined notepad, then working out what the hex codes were for each instruction, then writing a BASIC program to POKE them into memory before running them. He did eventually get a disk assembler (store a text file on a floppy disk,...


18

World Of Spectrum says: Input: 240V AC, 50Hz Output: 9V DC, 1.4A Centre Polarity: -ve (inner diameter is 2.5mm)


18

There are multiple techniques used by tape copy programs to be able to copy large blocks of data. By large we mean close to the whole RAM capacity (48 KiB) or even more! Using maximum of the available RAM ZX Spectrum 48K (and ZX Spectrum+) has 48 KiB (49152 B) of RAM from which 6 KiB (monochrome pixels) + 768 B (colour attributes) are being used for video ...


18

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 (on or off). The layout is not linear. The screen bitmap is divided horizontally into three thirds: each one is 2048 bytes and store 8 text rows of 32 column ...


18

This answer is written from memory, corrections may be made later if I remember/research more details. It starts with historical background to put things into perspective. This answer is specifically about Soviet ZX Spectrum clones, for other stuff read other answers, or for example this https://www.glaver.org/blog/?p=959 (Yes, Soviets were copying ...


18

A purely speculative answer: it's a user experience improvement. The ZX80 is unable both to process keyboard input and to maintain a stable display. It has the Z80 itself step through display bytes and programmatically generate vertical syncs, which requires it to be in a loop that is tightly synchronised to the video signal. It's able to do a fixed-length ...


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