Most commercial software for this computer was written in machine code as BASIC programs took too long to execute.
I did some. I made custom tape interfaces and video peripherals based on the Sinclair (and Timex). I don’t remember many details of the process, I developed code in assembler on a Z80 development machine running CP/M and a powerful macro-assembler. To install code I’d just have to burn it into a PROM and put it in a custom card made for the ZX bus. I remember the standard video interface was run by the CPU so the screen would blink whenever code was running.
I thought it was rather pointless at the time. The low entry price for a Z80 computer disappeared as soon as you added the hardware to make it do something worthwhile. A few guys turned that into an attractive pitch for a start-up. I don’t recall any of them succeeding with their products based on the ZX.
[Moderating]
If this is just a poll of who here remembers it, that’s a topic better suited for IMHO than FQ. Moving.
I taught myself enough Z-80 assembler that I could have, but I had a TRS-80, not a Timez or Sinclair.
Not the Spectrum as such, but I did once work with a programer who knew the Z80 instruction set so well that he was able to write programs directly in hex. Short ones, anyway.
Mind you, I don’t think much commercial software was really written for the Spectrum? It was essentially a hobbyist machine.
Didn’t it have tons of games? Is that the Spectrum that basically ruled the UK in the way Commodore 64 ruled the American market? I remember playing a number of games that were ported from the Spectrum to the C64. I knew 6502 assembler pretty well, but not Z80.
I had a Timex and did a little Z80 assembler.
When I was an ardent ZX Spectrum programmer (aged 7-10 IIRC) I wrote a lot of basic but machine code programming was basically unobtainable dark knowledge only spoken of in hushed tones.
The exception was the “cheat codes” of the day which were actually machine code instructions to set particular memory locations on a running game: “peeks and pokes” (you would sometimes need to view or ‘peek’ the value of one memory location and then set or ‘poke’ another to get unlimited ammo or whatever).
The knowledge of how to do this in assembly lay completely unused for the next 20-30 years until I worked at a hardware startup in the late 2000s and had to do some driver programming which required poking a register in assembly
Not a Spectrum, but I did have a Timex Sinclair 1000 and learned machine code on it, with the help of the book Mastering Machine Code On Your Sinclair ZX81 by Toni Baker. I don’t know that I necessarily mastered it, but I at least got proficient enough to write one or two crude but playable video games.
I had an original Timex Sinclair with memory expansion and printer. There certainly weren’t very many games for it because of the block graphics. Most of them were text based adventure games, etc. I adapted a keyboard from a teletype or something and installed it all in a walnut case. I have a photo around here somewhere. It was tricky because each key had 4 functions, I think.
It may have been a hobbyist machine but I read that it could run CP/M. One computer guy I worked with said it might be possible for the Timex to act as the input for our Cray. That would have been fun.
I had a Magnavox Odyssey that could be programmed in machine code.
Yeah the Timex Sinclair only had about two dozen games, looking it up. The ZX Spectrum had thousands (Moby Games has it at about 3500.)
In principle, it probably could, since it was Z80-based. But one would probably have had to do quite a bit of work to fake up the BIOS calls that CP/M depended on?
Of course CP/M was never available as source. They had a funky distribution model where you got two binary versions linked at locations a fixed distance apart. The installer went through the code and identified every location that differed, and then patched it for the actual memory model of the machine you wanted to install it on.
But I think it still had hard assumptions about where the BIOS entry points were in the memory map?