Files
Z80/README
redcode 6f63c30482 README
2018-11-02 10:29:09 +01:00

88 lines
2.9 KiB
Plaintext

______ ______ ______
/\___ \ /\ __ \ /\ \
\/__/ /__\ \ __ \\ \ \ \
/\_____\\ \_____\\ \_____\
Zilog \/_____/ \/_____/ \/_____/ CPU Emulator v0.1
Copyright (C) 1999-2018 Manuel Sainz de Baranda y Goñi <manuel@zxe.io>
This is a very accurate Z80 emulator that I wrote many years ago. It is fast,
small, easy to understand, and the code is profusely commented.
Building
========
You must first install Z <http://zeta.st>, a header-only library that provides
types and macros. This is the only dependency, the emulator does not use the C
standard library or its headers. Then add Z80.h and Z80.c to your project and
configure its build system so that CPU_Z80_STATIC and CPU_Z80_USE_LOCAL_HEADER
are predefined when compiling the sources.
If you preffer to build the emulator as a library, you can use premake4:
$ cd building
$ premake4 gmake # generate Makefile
$ make help # list available targets
$ make [config=<configuration>] <target> # build the emulator
There is also an Xcode project in "development/Xcode" with several targets:
dynamic
Shared library.
dynamic-module
Shared library with a generic module ABI to be used in modular multi-machine
emulators.
static
Static library.
static-module
Static library with a generic CPU emulator ABI to be used in monolithic
multi-machine emulators.
Code configuration
==================
There are some predefined macros that control the compilation:
CPU_Z80_DEPENDENCIES_H
If defined, Z80.h will #include only this header as dependency. If you don't
want to use Z, you can provide your own header with the types and macros
used by the emulator.
CPU_Z80_BUILD_ABI
Builds the generic CPU emulator ABI.
CPU_Z80_BUILD_MODULE_ABI
Builds the generic module ABI. This macro also enables CPU_Z80_BUILD_ABI, so
the generic CPU emulator ABI will be built too. This option is intended to
be used when building a true module loadable at runtime with dlopen(),
LoadLibrary() or similar. The ABI module can be accessed via the weak symbol
__module_abi__.
CPU_Z80_HIDE_ABI
Makes the generic CPU emulator ABI private.
CPU_Z80_HIDE_API
Makes the public functions private.
CPU_Z80_STATIC
You need to define this to compile or use the emulator as a static library
or if you have added Z80.h and Z80.c to your project.
CPU_Z80_USE_ABI
Tells Z80.h to declare the prototype of the CPU emulator ABI.
CPU_Z80_USE_LOCAL_HEADER
Use this if you have imported Z80.h and Z80.c to your project. Z80.c will
#include "Z80.h" instead of <emulation/CPU/Z80.h>.
Use in Non-Free / Proprietary Software
======================================
This library is released under the terms of the GNU General Public License v3,
but I can license it for non-free projects if you contact me.