introspec
  • Member for 4 years, 8 months
  • Last seen this week
Why do C to Z80 compilers produce poor code?
60 votes

If you try translating C into Z80, you'll see that Z80 index registers and stack don't behave quite as you expect. So, let us begin with Arrays Suppose you have a standard C construction int c[10]; ...

View answer
How do I extract the program from the Radiohead "Nude" tribute by James Houston?
Accepted answer
53 votes

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: ...

View answer
Can modern AI be used to program impressive graphics effects on very low performance home-retrocomputers, in particular 'A 3D-rotating-cube'
51 votes

Modern AI on its own is not really advanced enough to be able to make a meaningful difference in this sense. However, there are many situations where the massive asymmetry between computational ...

View answer
Did anyone ever use the extra set of registers on the Z80?
Accepted answer
38 votes

The key to efficient programming on Z80 is to use registers as much as possible. I can easily believe that designers of Z80 intended the use of the alternative set of registers as an efficient way of ...

View answer
How well known and how commonly used was Huffman coding in 1979?
Accepted answer
25 votes

Well, in fact, a closely related question has been asked (and answered) few years ago: What is the history of data compression tools on personal computers? From that question, and its answer, it ...

View answer
Why does this BASIC program declare variables for the numbers 0 to 4?
22 votes

The answer by Raffzahn is very good, except that I disagree that ZX80/81 background is all that important and I also feel he missed one important trick. I personally know most of these tricks from ...

View answer
Good Z80 disassembler/decompiler on modern equipment?
16 votes

The old IDA freeware ver.3.7 supports Z80. It has a Turbo Vision style interface, which may be something that puts you off. It is also no longer distributed officially. However, it is very powerful, ...

View answer
Why do C to Z80 compilers produce poor code?
14 votes

Well, I personally find it annoying reading so many comments here about what modern compilers can and cannot easily do. It is terrible what wishful thinking does to your brain. OK. Let me show why ...

View answer
Why was the Amstrad CPC slow at scrolling
Accepted answer
12 votes

The fundamental issue with scrolling is that, unless your hardware does it for you, it involves moving around the contents of your whole video memory. In other words, scrolling is the type of video ...

View answer
How compatible is the Leningrad clone with the "original" ZX Spectrum?
Accepted answer
11 votes

Leningrad is a primitive and not particularly compatible clone. However, it is pragmatic, so the incompatibilities are not always going to show up. The main differences are due to a completely ...

View answer
Are there any ZX Spectrum applications (mainly games or demoscene productions) that use a port other than $FE to access the ULA?
9 votes

I know of an application that uses a different port from #FE to change border colour. It concerns all of my border art viewers, and the reason why the different port had to be used is as follows. I ...

View answer
Does Sinclair Spectrum BASIC have a maximum length for one line?
Accepted answer
7 votes

The correct answer to your question is YES, and NO. YES, if you are editing a long line in the editor of 128K BASIC, you are limited to the size of line buffer, which can hold only 20 screen rows. ...

View answer
Is there any music source code for sound chips?
6 votes

To me this question is not really good because it cannot be properly answered. You really need to decide what specific chip/format/platform you want to focus on and read up. At the moment your ideas ...

View answer
Which Z80 opcodes can I use without a stack?
Accepted answer
6 votes

All commands are allowed actually, whether you have RAM or not. It is just the consequences of some of the commands that you have to bear in mind. E.g., using CALL is fine even if you have no RAM, but ...

View answer
What is the relative code density of 8-bit microprocessors?
5 votes

I was going through the literature produced by Zilog in the 1980s and noticed that in their "Microprocessor Applications Reference Book, Volume 2" (1983), nicely scanned for us by BitSavers, ...

View answer
Is there a list of space-saving techniques for representing constants?
4 votes

There are quite a few options available if you need to reduce the size of your BASIC programme. Some of the options are more extreme and may require binary modification of your program (or the use of ...

View answer
When first CMOS versions of Z80 became available and were they ever used in (non-portable) home computers?
3 votes

In the 1985 edition of the Zilog's Data Book CMOS version of Z80 (Z84C00) is shown as a new product for 1985. Dated "April 1985", the datasheet contains label "Preliminary product ...

View answer
How fast were BASIC interpreters in the 80s? (Is this optimization for speed really necessary?)
1 votes

The theory To me, just like to several other responders to your question, this is first and foremost the question about algorithmic complexity. The program from Eco's book generates all permutations ...

View answer
TI-86 sound capabilities
1 votes

No, TI-86 does not have a purpose-built sound output. However, it has a "link port" (2.5mm Mono Jack connector). People seem to usually connect this jack to a piezo-buzzer or to a mono headphones, see ...

View answer
How much benefit should be expected on a more advanced compiler for z80/r800 based computers?
1 votes

I would reply in a more cagey fashion. It would certainly be useful to have a better C compiler for Z80 - the existing ones are not producing very good code. It is also clear that a number of people ...

View answer
Did early assembly games use hardcoded memory locations?
0 votes

At least several answers (and comments) seem to interpret the question with an implied idea that one can have an assembler that does not resolve symbolic addresses. I think that this interpretation is ...

View answer