A Z80 emulator implementation in F#. (A literate program.)
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
IMPORTANT
LICENSE Initial commit May 1, 2017
Makefile Initial commit May 1, 2017
README Initial commit May 1, 2017
README.md Update README.md Nov 19, 2018
sz80em.fs Files produced by the noweb tool added. Aug 11, 2017
sz80em.nw Initial commit May 1, 2017
sz80em.pdf Files produced by the noweb tool added. Aug 11, 2017
sz80em.tar.gz Build added. May 1, 2017
sz80emr.fs Files produced by the noweb tool added. Aug 11, 2017

README.md

Z80 emulator in F#

A Z80 emulator implementation in F#. Uses noweb and LaTeX tools. Run make to get F# source code, TeX, ps, pdf, and a binary file. For license see LICENSE file. Please see IMPORTANT for copyright note about ROM file.

Prerequisites:

  • noweb
  • LaTeX, and LaTeX packages: graphicx, noweb, mflogo, amsmath, textcomp
  • F# compiler

Precompiled binaries are available in sz80em.tar.gz.

The PDF file of the book is available here.

Table Of Contents

    1. About ZX Spectrum
    1. Program layout
    1. Keyboard Input
    1. Display Output
    1. Microprocessor
    • 5.1. Registers set
    • 5.2. The Main Class
    • 5.3. ROM and RAM Memory
    • 5.4. Contended Memory
    • 5.5. Contended I/O
    • 5.6. Interrupts
    • 5.7. Instructions
    • 5.8. Instruction Table Initialization
    • 5.9. Extended Instructions
    • 5.10. Bit Instructions Table
    • 5.11. Index Instructions
    • 5.12. Index Bit Instructions
    • 5.13. Initialization
    1. The Machine
    1. Notes
    1. License

Images

Z80 emulator running:

sz80emu

sz80emu