Features/Z80

From QEMU
Revision as of 12:56, 10 July 2020 by Huth (talk | contribs) (Mark Z80 as obsolete feature)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Summary

Add emulation of the Zilog Z80.

Owner

  • Name: Stuart Brady
  • Email: sdb@zubnet.me.uk

Detailed Summary

The Z80 is an 8-bit microprocessor produced by Zilog, which was used in a wide variety of computers from the late 1970s to early 1990s.

Status

Supports basic emulation of the ZX Spectrum (48K and 128K models), and the MSX1. Also provides incomplete emulation of the SAM Coupé. The ZX Spectrum emulation supports loading of snapshots using 'libspectrum', through the use of the '-kernel' argument.

This project would likely also contribute WD177x floppy disk emulation (for both the ZX Spectrum +D interface and the SAM Coupé machine), which would be useful for emulation of other machines (such as the Atari ST family and the Acorn Archimedes and Risc PC families).

There is no support for live migration of the Z80 target.

TODO

  • Allow execution from RAM that may also be used for video output
  • CP/M support — either user or system emulation
  • Paging in of ROMs via trapped program counter (for +D, etc.)
  • Merge +D emulation (already written, except for page-in mechanism)
  • Flags optimisation
  • 16-bit/8-bit register handling optimisation
  • Optional disabling of support for undocumented flags and/or instructions
  • Add 8080 mode
  • Remote debugging support for GDB
  • Investigate adding NEC V20 support (for PC-98 emulation)

Code

The code is currently kept in a separate git repository:

Note that opinion is somewhat divided as to whether this is something that should be merged back into the mainline QEMU source, but any contributions to the fork will be gladly accepted.