Skip to main content

Questions tagged [z80]

The Zilog Z80 microprocessor. Prefer [game-boy] instead for questions about the Game Boy CPU nicknamed the ‘GBZ80’.

Filter by
Sorted by
Tagged with
111 votes
10 answers
44k views

Why do C to Z80 compilers produce poor code?

When reading some other questions about compiling C for the Z80, How much benefit should be expected on a more advanced compiler for z80/r800 based computers? Native C compiler for Sinclair ZX ...
Omar and Lorraine's user avatar
25 votes
4 answers
6k views

Z8410 DMA chip as GPU?

There are basically two ways to design a 2D graphics system: Provide lots of hardware support in the form of tiles, hardware scrolling and sprites, to put together each frame on the fly from a small ...
rwallace's user avatar
  • 62.7k
17 votes
2 answers
7k views

Is the Game Boy Sharp LR35902 object-compatible with the 8080/Z-80?

(Note: by "object-compatible" I mean that the opcodes and their following operands are the same—the assembler produces the same output for equivalant assembler mnemonics. This of course ...
cjs's user avatar
  • 26.7k
50 votes
2 answers
16k views

How did the Z80 instruction set differ from the 8080?

The Zilog Z80 microprocessor, known for its use in the ZX Spectrum, was designed to be a backwards-compatible extension to the Intel 8080 processor. It introduced several new instructions to the 8080'...
wizzwizz4's user avatar
  • 18.7k
33 votes
2 answers
4k views

What is the relative code density of 8-bit microprocessors?

When RAM is at a premium, as it was in the old days, a greater code density of an instruction set can be a substantial advantage. (Click saver: Code density refers loosely to how many microprocessor ...
Leo B.'s user avatar
  • 19.4k
26 votes
2 answers
5k views

How did Z80 multiprocessing work in the Namco Galaga hardware?

Galaga was a popular arcade game developed and released by Namco (Midway in N. America) in 1981. It had amazing, fast, smooth 2D-sprite graphics, and relied on Namco hardware that utilized 3 Z80 CPUs ...
Brian H's user avatar
  • 60.8k
24 votes
3 answers
8k views

Wiring a Zilog Z80

I've recently got hold of an old Zilog Z80 microprocessor and I know how to clock and test it. I do not however know how to connect RAM, I/O ports, control switches (for programming instructions into ...
DevelopedLogic's user avatar
19 votes
4 answers
4k views

How did integer multiplication work in 8-bit BASIC without CPU support

I've recently been teaching my 11 year old binary multiplication, which is on the UK maths syllabus at secondary school. We have used long multiplication, eg shift and add. This has made me wonder ...
Mark Williams's user avatar
56 votes
13 answers
10k views

What languages are better fit for generating efficient code for 8-bit CPU's than C?

I found Why do C to Z80 compilers produce poor code? very interesting as it pointed out that C (which was leveraged to be an abstraction of a CPU for porting Unix) was not a very easy language to ...
Thorbjørn Ravn Andersen's user avatar
28 votes
4 answers
17k views

How did 8 bit processors perform 16 bit arithmetic?

How did 8 bit processors such as the Z80 and 8080 perform 16 bit arithmetic? They have an 8 bit data bus, so how does the ALU perform 16 bit arithmetic on the register pairs? Z80 architecture diagram ...
Jet Blue's user avatar
  • 2,005
27 votes
4 answers
4k views

Use of undocumented opcodes

I figure this is fitting for Retrocomputing.SE because CPUs like the 6502 and Z80 and the PDP-8, and probably others, have undocumented instructions and will happily execute them, in contrast with ...
Omar and Lorraine's user avatar
20 votes
5 answers
4k views

Why does the Z80 have a half-carry bit?

The Z80 apparently had a 4-bit ALU, and computes 8-bit values in two stages. The half-carry bit preserves the carry from bits 3 to 4. Why did the designers of this chip choose to preserve that value ...
Omar and Lorraine's user avatar
19 votes
2 answers
2k views

First computer emulator in Windows

I released my ZX Spectrum emulation Wspecem, and GPL sources first time publicly in the Internet at large, the 15th May 1996, for Windows 95. I am quite sure it was the first ZX Spectrum emulation ...
Rui F Ribeiro's user avatar
17 votes
9 answers
4k views

Z80 and video chip contending for random access

Back in the 8-bit days, I used 6502 computers, where the story about memory access was easy to understand. RAM chips of the late seventies and early eighties could do 2 MHz (or a bit more e.g. 2.6 in ...
rwallace's user avatar
  • 62.7k
16 votes
12 answers
8k views

How can a Z80 assembly program find out its own memory address?

I'm wondering how to write a program in Z80 assembler that discovers its own memory location. I thought that maybe I could somehow load the program counter PC into, for example, BC. Is there a way ...
twisted's user avatar
  • 263
10 votes
4 answers
4k views

How do Z80 Block Transfer instructions work?

I'm familiar with the Hitachi 6309's block transfer instructions (TFM). It can work as a "poor man's" DMA controller or Blitter, and is one of the things that makes the 6309 the best 8-bitter of all ...
Brian H's user avatar
  • 60.8k
8 votes
1 answer
905 views

Breakeven number of bytes for programmable DMA

Contemporary with the old 8-bit chips, existed powerful but unsung programmable DMA controllers like the Zilog 8410 and the Intel 8257, that could copy data from one memory location to another, much ...
rwallace's user avatar
  • 62.7k
5 votes
1 answer
784 views

Is there a way to boot CP/M automatically on a Z80 RC2014?

I'm using the RC2014 (Z80), running CP/M. The "24886009" ROM chip (photo below) comes with 32k BASIC, 56k BASIC, SCM and CP/M for SIO/2 serial. When you run CP/M from the RC2014 ROM, you ...
Nick Bolton's user avatar
57 votes
8 answers
10k views

How were Western computer chips reverse-engineered in USSR?

The British ZX Spectrum computer had many clones in the Eastern Bloc. It seems many of them were built using Russian-made chips from the Angstrem factory in Zelenograd in/near Moscow. The Russian ...
Omar and Lorraine's user avatar
45 votes
10 answers
16k views

Fastest non-emulated CP/M Z80-based computer ever built?

What were the fastest CP/M computers ever built? I'll restrict this to the Z80 variant of CP/M, no CP/M-86, CP/M-68k etc. Z80 compatibles with higher clock frequencies or more instructions/clock or ...
dirkt's user avatar
  • 28.2k
42 votes
16 answers
11k views

Did anyone ever use the extra set of registers on the Z80?

The Z80 has the surprising feature of a second set of registers. I suppose these were intended to be used for rapid task switching or interrupt handling, though I think if I were programming a Z80 ...
rwallace's user avatar
  • 62.7k
40 votes
7 answers
28k views

Comparing raw performance of the Z80 and the 6502

A lot has been said on the internet about the 6502, at 1MHz, being roughly equivalent in performance to the Z80, at 4 MHz. It is said the Z80 has a typical 4 clock ticks per instruction, while the ...
Biff Iam's user avatar
  • 2,229
38 votes
4 answers
9k views

How do I Interface a PS/2 Keyboard without Modern Techniques?

I'm attempting to build a Z80 homebrew computer to teach myself the basis of electronic design. I planned to start from something simple, like a ROM, some SRAM, a video chip and a Z80-PIO. I'd like to ...
比尔盖子's user avatar
  • 3,114
35 votes
2 answers
3k views

Can the two CPUs in a Commodore 128 run at the same time?

The Commodore 128 has two CPUs. One is some variant of the 6502, and the other is a Z80. One CPU is there for compatibility with the Commodore 64 and the other is there presumably to give basic ...
Omar and Lorraine's user avatar
34 votes
3 answers
5k views

What are the registers W and Z inside a Z80?

Looking at the Z80's architecture diagram, there is the obvious register file in pink near the middle of the diagram. But four of those registers are not usable by programmers. Those are W, W', Z and ...
Omar and Lorraine's user avatar
32 votes
6 answers
5k views

Why does the Z80 include the RLD and RRD instructions?

The Z80 has an instruction RLD, which apparently treats the lower 4 bits in the accumulator and the full 8 bits in (HL) as a twelve bit integer which it then rotates left by 4 bits. The carry flag ...
Omar and Lorraine's user avatar
30 votes
2 answers
5k views

Zilog Z80 freezes while binary counting up to 65 536 (2^16)

A few days ago, I got Z80A CPU from eBay. So I tried to run it with classic 555 timer as a clock signal generator. I connected the 8-bit data bus of the CPU to the ground to "simulate ROM" (00 for NOP)...
Nogard's user avatar
  • 533
29 votes
1 answer
3k views

In the original Z80 layout, where are the "traps" located? And what are their effects?

According to Zilog Oral History, Zilog only had a tight schedule to design the Z80. Facing the potential competition, Federico Faggin and Masatoshi Shima were worrying about Japanese semiconductor ...
比尔盖子's user avatar
  • 3,114
28 votes
5 answers
5k views

DIY Project using 1970s 8-bit CPU, is it possible?

I've recently really wanted to try and design a computer system around a retro 8-bit CPU such as the Zilog Z80 or the Intel 8080, and I would appreciate some sanity checks! I was inspired by Ben Eater'...
Zee2's user avatar
  • 383
24 votes
5 answers
3k views

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

I am self studying about compilers, and get hands on very good textbooks about the subject. I am thinking in develop a compiler using the almighty llvm infrastructure to cross compile to old computers,...
flavio's user avatar
  • 580
23 votes
6 answers
7k views

Why did the Z80 with 4-bit ALU out-perform the fully 8-bit Intel 8080?

Looking at the development and architecture of the Z80, it appears to be a scaled-down, cost-reduced (in terms of total system cost), clone of the Intel 8080. It only used a 4-bit ALU. I assume this ...
Brian H's user avatar
  • 60.8k
23 votes
3 answers
2k views

Will disassembling an 8080 program as Z80 code work?

The Z80 is "binary compatible" with the 8080. It adds a bunch of new instructions, but places them all in unused (well, undocumented) opcodes. Does this mean that if I disassemble an 8080 program (...
tobiasvl's user avatar
  • 1,539
21 votes
3 answers
7k views

How much did the 6502 and Z80 cost?

It is said that the 6502 was cheaper than the Z80. As of 1978, what were the actual prices of the two chips, in wholesale quantity?
rwallace's user avatar
  • 62.7k
19 votes
5 answers
2k views

Uptime in ZX BASIC

How can I obtain the uptime of a Sinclair ZX Spectrum machine (ZX48, ZX128, or Pentagon clone) via their BASIC interpreter? Specifically, the same value used by RANDOMIZE 0 to seed its PRNG. I would ...
forest's user avatar
  • 2,029
18 votes
4 answers
6k views

How fast is memcpy on the Z80?

I gather the fastest way to implement memcpy (copy a certain number of bytes from one place in memory to another) on the Z80 is to use an instruction called LDIR. But how fast is the result, when ...
rwallace's user avatar
  • 62.7k
18 votes
3 answers
4k views

Why do only the low 7-bits of the R register increment?

On the Z80 the R register is 8 bits wide, as evidenced by LD A,R and LD R,A And every M1 cycle, R increments by 1. But the uppermost bit does not participate in this increment. R will not go from 0x7F ...
Omar and Lorraine's user avatar
15 votes
1 answer
2k views

How can a Z80 assembly program find out the address stored in the SP register?

I'm wondering how to write a program in Z80 assembler that discovers the value stored in the SP register. From what I've seen, the only instructions that touch the SP register are: LD SP, HL/IX/IY EX ...
André Wagner's user avatar
13 votes
1 answer
1k views

When were the various frequency Z80 CPUs introduced?

The Z80 was introduced, as I understand it, at a clock speed of 2 MHz. Later, Z80-based computers at 3.5 MHz started showing up. In what year did this faster clock speed become available? (In ...
rwallace's user avatar
  • 62.7k
13 votes
6 answers
2k views

Could the Z80 do interference-free video as the 6502 could?

Technically this isn't just about video since it applies to any regularly scheduled DMA¹ from a non-CPU subsystem, but video is the most common application of this technique so I'll use that as the ...
cjs's user avatar
  • 26.7k
12 votes
1 answer
1k views

Is I/O port 0xFE reserved on the eZ80?

TL;DR Following on from OmarL's comment, to the closed question, Why did the Spectrum Next choose Z80 on FPGA?: But also, the eZ80 is not compatible with the ZX Spectrum because it uses port FE for ...
Greenonline's user avatar
  • 4,386
11 votes
3 answers
1k views

z80 crashes after executing some instructions

I'm building my own Z80 computer but I'm having a very strange problem. Consider this code: ld a,0xaa out (00),a jp a That works as expected, outputting 0xaa on port 0x00. Now consider this code: ...
C32's user avatar
  • 394
11 votes
3 answers
935 views

What are examples of providing non-RST instructions for 8080 interrupts?

When a peripheral in an 8080 system generates an interrupt request and the 8080 acknowledges the interrupt, the peripheral is expected to put an instruction opcode on the data bus which the 8080 will ...
cjs's user avatar
  • 26.7k
9 votes
1 answer
711 views

Is S-100 alive?

1) Is S-100 still supported or available for serious home brew? Does anyone still actively sell new boards, cases, designing, support, etc? If not, then about what year did S-100 development stop? 2) ...
jwzumwalt's user avatar
  • 4,479
8 votes
3 answers
4k views

Z80 16-bit I/O port addresses

The Z80 indirect I/O instructions are a little quirky: the instructions with the standard mnemonic in r, (c) (where r is a stand-in for any of the normal registers) actually puts the register pair bc ...
Jules's user avatar
  • 13k
7 votes
1 answer
855 views

How much did it cost to develop the Z80 CPU?

How much did it cost, in dollars at the time, to develop the Zilog Z80 CPU? According to Wikipedia, The Z80 is an 8-bit microprocessor introduced by Zilog as the startup company's first product. ...
rwallace's user avatar
  • 62.7k
6 votes
2 answers
2k views

How can SPI be used with a Z80 CPU to control an RFM95 LoRa module?

I’m trying to communicate with my Z80 computer (RC2014) using a wireless radio. The easy way to do this is to use something like an ESP8266 (and there’s even an RC2014 module for this), but where’s ...
Nick Bolton's user avatar
5 votes
2 answers
582 views

Why when outputting registers' value the result is a wrong fluctuating value in a Z80 CPU?

I got an EEPROM AT28C64 and loaded it with instructions with my handmade STM32 EEPROM programmer, the instructions are very simple: Load A register with decimal number 85 which is, in binary, ...
Shams M.Monem's user avatar
5 votes
1 answer
1k views

Z80 - SIO/0 Frequencies

Z80 board with a SIO/0. I am struggling to understand how CPU and SIO frequencies are related, if they are at all. SIO/0 datasheet didn't help much. If I clock both the CPU and the SIO(TX/RX) from a 1....
Charles's user avatar
  • 381
4 votes
1 answer
1k views

Building a Memory Management Unit to expand the 16Bit Address space [closed]

I'm in the middle of making an 8Bit computer, I've selected Z80, the 20Mhz version, which is cheap and readily available. Since Z80 has a 16bit address line it can only address 64KB of memory location....
ilgaar's user avatar
  • 141
4 votes
2 answers
406 views

How does the serial port on the RC2014 get addressed?

I see on the schematic that /M1 and A7 go to CS0 and CS1 respectively. As I recall, both of these need to be high for the chip to be selected. And A6 goes to CS2, which needs to be low for the chip to ...
Omar and Lorraine's user avatar