Questions tagged [z80]
The Zilog Z80 microprocessor. Prefer [game-boy] instead for questions about the Game Boy CPU nicknamed the ‘GBZ80’.
48
questions
108
votes
10
answers
42k
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 ...
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 ...
15
votes
2
answers
6k
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 ...
49
votes
2
answers
15k
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'...
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 ...
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 ...
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 ...
20
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 ...
55
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
8
votes
1
answer
837
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 ...
5
votes
1
answer
702
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 ...
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 ...
44
votes
10
answers
15k
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 ...
41
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 ...
39
votes
4
answers
8k
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 ...
38
votes
7
answers
24k
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 ...
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 ...
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)...
29
votes
1
answer
2k
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 ...
27
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'...
27
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 ...
26
votes
5
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 ...
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,...
20
votes
3
answers
6k
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?
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 ...
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 ...
17
votes
3
answers
3k
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 ...
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 ...
13
votes
1
answer
934
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 ...
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 ...
11
votes
3
answers
890
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 ...
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:
...
11
votes
4
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 ...
9
votes
1
answer
690
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) ...
9
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 ...
7
votes
1
answer
803
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. ...
7
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 ...
6
votes
2
answers
1k
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 ...
5
votes
1
answer
945
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....
4
votes
2
answers
361
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 ...
4
votes
1
answer
885
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....
2
votes
1
answer
195
views
Why does Z80 RC2014 ROM image 88 not have CP/M or BASIC boot options?
While trying to boot to CP/M automatically on my RC2014 Z80, I encountered a problem getting SCM to show a CP/M boot option. According to the docs, ROM address 4000 (88 on the ROM label) is SCM with ...
2
votes
0
answers
414
views
Why did the Spectrum Next choose Z80 on FPGA? [closed]
I'm curious to understand why the Spectrum Next uses Z80 on an FPGA instead of something like at eZ80? I would have imagined they would choose the eZ80 since it is still a production part. Anyone ...