We currently only support handlers like on_step() and on_read()/on_write() that mandate the emulators to execute a single instruction or provide a mean to access a single memory cell. This prevents us from attempting to do some kinds of optimisations, e.g.:
Just-in-time compilation for hot basic blocks. Better performance again.
Support port handlers that deal with blocks of input/output data rather than with individual bytes. It would particularly be useful for the Python API to void calling handlers on every IN/OUT instruction (then https://github.com/kosarev/zx can be updated to use that).
We currently only support handlers like
on_step()
andon_read()
/on_write()
that mandate the emulators to execute a single instruction or provide a mean to access a single memory cell. This prevents us from attempting to do some kinds of optimisations, e.g.:memmove()
-like implementations forLDIR
/LDDR
(means better performance, mentioned in https://github.com/kosarev/z80/issues/16#issue-936241969).HALT
/HLT
emulation.