Files
pico/projects/Z80/documentation/api-reference.rst

187 lines
4.0 KiB
ReStructuredText
Vendored

=============
API reference
=============
.. code-block:: c
#include <Z80.h>
Types
=====
Callback pointers
-----------------
.. doxygentypedef:: Z80Read
.. doxygentypedef:: Z80Write
.. doxygentypedef:: Z80Halt
.. doxygentypedef:: Z80Notify
.. doxygentypedef:: Z80Illegal
Emulator object
---------------
.. doxygenstruct:: Z80
:members:
Functions
=========
Powering the CPU
----------------
.. doxygenfunction:: z80_power
Running the emulation
---------------------
.. doxygenfunction:: z80_execute
.. doxygenfunction:: z80_run
Stopping the emulation
----------------------
.. doxygenfunction:: z80_break
Sending signals
---------------
.. doxygenfunction:: z80_int
.. doxygenfunction:: z80_nmi
.. doxygenfunction:: z80_instant_reset
.. doxygenfunction:: z80_special_reset
.. doxygenfunction:: z80_wait
Obtaining information
---------------------
.. doxygenfunction:: z80_in_cycle
.. doxygenfunction:: z80_out_cycle
.. doxygenfunction:: z80_r
.. doxygenfunction:: z80_refresh_address
Macros
======
Library version
---------------
.. doxygendefine:: Z80_LIBRARY_VERSION_MAJOR
.. doxygendefine:: Z80_LIBRARY_VERSION_MINOR
.. doxygendefine:: Z80_LIBRARY_VERSION_MICRO
.. doxygendefine:: Z80_LIBRARY_VERSION_STRING
Limits
------
.. doxygendefine:: Z80_MAXIMUM_CYCLES
.. doxygendefine:: Z80_MAXIMUM_CYCLES_PER_STEP
.. doxygendefine:: Z80_MINIMUM_CYCLES_PER_STEP
Opcodes
-------
.. doxygendefine:: Z80_HALT
.. doxygendefine:: Z80_HOOK
.. doxygendefine:: Z80_JP_WORD
.. doxygendefine:: Z80_NOP
.. doxygendefine:: Z80_RET
Flags
-----
.. doxygendefine:: Z80_SF
.. doxygendefine:: Z80_ZF
.. doxygendefine:: Z80_YF
.. doxygendefine:: Z80_HF
.. doxygendefine:: Z80_XF
.. doxygendefine:: Z80_PF
.. doxygendefine:: Z80_NF
.. doxygendefine:: Z80_CF
Configuration
-------------
.. doxygendefine:: Z80_OPTION_HALT_SKIP
.. doxygendefine:: Z80_OPTION_IM0_RETX_NOTIFICATIONS
.. doxygendefine:: Z80_OPTION_LD_A_IR_BUG
.. doxygendefine:: Z80_OPTION_OUT_VC_255
.. doxygendefine:: Z80_OPTION_XQ
.. doxygendefine:: Z80_OPTION_YQ
.. doxygendefine:: Z80_MODEL_ZILOG_NMOS
.. doxygendefine:: Z80_MODEL_ZILOG_CMOS
.. doxygendefine:: Z80_MODEL_NEC_NMOS
.. doxygendefine:: Z80_MODEL_ST_CMOS
Requests
--------
.. doxygendefine:: Z80_REQUEST_INT
.. doxygendefine:: Z80_REQUEST_NMI
.. doxygendefine:: Z80_REQUEST_REJECT_NMI
.. doxygendefine:: Z80_REQUEST_SPECIAL_RESET
Resume codes
------------
Sometimes the emulator runs out of clock cycles while performing long tasks that can exceed :c:macro:`Z80_MAXIMUM_CYCLES_PER_STEP`. In these cases, the emulation stops and :c:data:`Z80::resume<Z80.resume>` is set to one of the following values:
.. doxygendefine:: Z80_RESUME_HALT
.. doxygendefine:: Z80_RESUME_XY
.. doxygendefine:: Z80_RESUME_IM0_XY
HALT state codes
----------------
.. doxygendefine:: Z80_HALT_EXIT_EARLY
.. doxygendefine:: Z80_HALT_CANCEL
Register accessors
------------------
.. doxygendefine:: Z80_MEMPTR
.. doxygendefine:: Z80_WZ
.. doxygendefine:: Z80_PC
.. doxygendefine:: Z80_SP
.. doxygendefine:: Z80_XY
.. doxygendefine:: Z80_IX
.. doxygendefine:: Z80_IY
.. doxygendefine:: Z80_AF
.. doxygendefine:: Z80_BC
.. doxygendefine:: Z80_DE
.. doxygendefine:: Z80_HL
.. doxygendefine:: Z80_AF_
.. doxygendefine:: Z80_BC_
.. doxygendefine:: Z80_DE_
.. doxygendefine:: Z80_HL_
.. doxygendefine:: Z80_MEMPTRH
.. doxygendefine:: Z80_MEMPTRL
.. doxygendefine:: Z80_WZH
.. doxygendefine:: Z80_WZL
.. doxygendefine:: Z80_PCH
.. doxygendefine:: Z80_PCL
.. doxygendefine:: Z80_SPH
.. doxygendefine:: Z80_SPL
.. doxygendefine:: Z80_XYH
.. doxygendefine:: Z80_XYL
.. doxygendefine:: Z80_IXH
.. doxygendefine:: Z80_IXL
.. doxygendefine:: Z80_IYH
.. doxygendefine:: Z80_IYL
.. doxygendefine:: Z80_A
.. doxygendefine:: Z80_F
.. doxygendefine:: Z80_B
.. doxygendefine:: Z80_C
.. doxygendefine:: Z80_D
.. doxygendefine:: Z80_E
.. doxygendefine:: Z80_H
.. doxygendefine:: Z80_L
.. doxygendefine:: Z80_A_
.. doxygendefine:: Z80_F_
.. doxygendefine:: Z80_B_
.. doxygendefine:: Z80_C_
.. doxygendefine:: Z80_D_
.. doxygendefine:: Z80_E_
.. doxygendefine:: Z80_H_
.. doxygendefine:: Z80_L_