2

I'm writing an Intel 8080 emulator and I have a few questions about the 8080 chipset, but I want to make sure they are on-topic before posting on the main site. They are mostly arcade machines which some form of an 808X chip.

How many types of 8080 boards were produced and what were their differences?

While I'm focusing on the Intel 8080, I've also seen information on the Taito and Midway 8080 boards used by some 70s arcade games (Space Invaders, Gun Fight, etc.). I'm interested in learning the different types of boards and chipsets that were produced, and what the main differences between them were (such as register and instructions differences).

Why are the first three instructions of Space Invaders NOPs?

Here are the first four instructions of Space Invaders from the decompiled ASM:

0000 NOP
0001 NOP
0002 NOP
0003 JMP    $18d4
# ...

Why would the engineer deliberately leave three NOPs at the beginning of the program?

Although this question might be opinion based, it might start some interesting discussion (it provides space for a jump instruction for debugging). There's a semi related question Why use static RAM addresses instead of the stack? that has been well received already.

What are the Intel 8080 Instruction at OP Code 0x20 and 0x30?

According to Intel's 8080-8085 Assembly Language Programming guide, the OP Code 20 corresponds to the Read Interrupt Mask (RIM) instruction, and 30 corresponds to the Set Interrupt Mask (SIM) instruction.

However, only the 8085 has the RST5.5, RST6.5, and RST7.5 hardware interrupts. Are the instructions at 0x20 and 0x30 just NOP on 8080 hardware?

While programming-related, answers to this question could contain a detailed description of the 8080/8085 hardware, and explain that the 8085 had additional instructions for interfacing with a serial port or set interrupt mask, which were only present on the 8085 and not the 8080.

The last two questions would also be a chance to share some of my knowledge Q&A style, while also gathering answers from those who have more experience with the hardware itself.

2

As we are still in beta here and trying to figure out exactly what is and isn't on topic, I'd say go for it. The worst that can happen is your question sparking a good debate in regards to that.

As for the questions you outlined, you'll definitely want to flesh them out. Remember that good questions are specific, show your own research thus far, and show how the question could be relevant to others. A good guideline for asking high quality questions can be found here in the Help Center. How do I ask a good question?

As for "why?" type subjective questions, there's a good list of tips for what types of subjective questions are good, helpful ones, also in the Help Center. What types of questions should I avoid asking?

2

Regarding the "Space Invaders NOPs" question, this is more about general programming techniques, unless specific to that game.

There are several reasons this might have been done (though maybe only the programmer would know for sure). So I wonder if there is a definitive answer.

You should also consider if this information would be useful to others (outside of the programming realm).

  • 1
    Valid points. I would argue that if this NOP pattern was present in multiple assembly programs in general it might be worth a discussion on here. By that logic, would this question be off-topic? – JAL May 19 '16 at 18:07
  • As I read that question, the techniques discussed, while referencing a retro game, apply to programming methods in general. Unless the question asks why "65c816 assembly language" or "Super Metroid" specifically used this technique, I would have to say it is a programming topic. – user3169 May 19 '16 at 18:45
  • Ah, got it. So if this is unique to Space Invades specific to its original release on the 8080, then it's closer to being on-topic. Is that what you're saying? – JAL May 19 '16 at 18:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .