======
Thanks
======
.. only:: html
.. |re| raw:: html
.. |ren| raw:: html
.. only:: latex
.. |fe| raw:: latex
\textsuperscript{
.. |ces| raw:: latex
}
Many thanks to the following individuals (in alphabetical order):
* **Akimov, Vadim (lvd)**
* For testing the library on many different platforms and CPU architectures.
* **azesmbog**
1. For validating tests on real hardware. |re| |fe| :ref:`1.1` |ren| |ces|
2. For discovering the unstable behavior of the ``ccf/scf`` instructions.
3. For testing the ``ccf/scf`` instructions on real hardware. |re| |fe| :ref:`2`, :ref:`3` |ren| |ces|
4. For his invaluable help.
* **Banks, David (hoglet)**
1. For deciphering the additional flag changes of the block instructions. |re| |fe| :ref:`4.1`, :ref:`4.2`, :ref:`5` |ren| |ces|
2. For his research on the ``ccf/scf`` instructions. |re| |fe| :ref:`5`, :ref:`6` |ren| |ces|
* **Beliansky, Anatoly (Tolik_Trek)**
* For validating tests on real hardware. |re| |fe| :ref:`1.2` |ren| |ces|
* **Bobrowski, Jan**
* For fixing the *"Z80 Full Instruction Set Exerciser for Spectrum"*. |re| |fe| :ref:`7` |ren| |ces|
* **boo_boo**
* For deciphering the behavior of MEMPTR. |re| |fe| :ref:`8`, :ref:`9`, :ref:`10`, :ref:`11` |ren| |ces|
* **Brady, Stuart**
* For his research on the ``ccf/scf`` instructions. |re| |fe| :ref:`12` |ren| |ces|
* **Brewer, Tony**
1. For his research on the special RESET. |re| |fe| :ref:`4.3`, :ref:`13` |ren| |ces|
2. For helping to decipher the additional flag changes of the block instructions. |re| |fe| :ref:`4` |ren| |ces|
3. For conducting low-level tests on real hardware. |re| |fe| :ref:`4` |ren| |ces|
4. For helping me to test different undocumented behaviors of the Zilog Z80.
* **Bystrov, Dmitry (Alone Coder)**
* For validating tests on real hardware. |re| |fe| :ref:`1.2` |ren| |ces|
* **Chandler, Richard**
1. For his corrections to the documentation.
2. For validating tests on real hardware. |re| |fe| :ref:`14` |ren| |ces|
* **Chunin, Roman (CHRV)**
* For testing the behavior of MEMPTR on real hardware. |re| |fe| :ref:`8`, :ref:`9`, :ref:`10`, :ref:`11` |ren| |ces|
* **Conway, Simon (BadBeard)**
* For validating the *"Z80 Test Suite"* on several Z80 clones. |re| |fe| :ref:`15` |ren| |ces|
* **Cooke, Simon**
* For discovering how the ``out (c),0`` instruction behaves on the Zilog Z80 CMOS. |re| |fe| :ref:`16` |ren| |ces|
* **Cringle, Frank D.**
* For writing the *"Z80 Instruction Set Exerciser"*. |re| |fe| :ref:`17` |ren| |ces|
* **Devic, Goran**
* For his research on undocumented behaviors of the Z80 CPU. |re| |fe| :ref:`18` |ren| |ces|
* **Dunn, Paul (ZXDunny)**
* For his corrections to the documentation.
* **Equinox**
* For his corrections to the documentation.
* **Flammenkamp, Achim**
* For his article on Z80 interrupts. |re| |fe| :ref:`19` |ren| |ces|
* **Gimeno Fortea, Pedro**
1. For his research work. |re| |fe| :ref:`20` |ren| |ces|
2. For writing the first-ever ZX Spectrum emulator. |re| |fe| :ref:`21`, :ref:`22` |ren| |ces|
* **goodboy**
* For testing the behavior of MEMPTR on real hardware. |re| |fe| :ref:`8`, :ref:`9`, :ref:`10`, :ref:`11` |ren| |ces|
* **Greenway, Ian**
* For testing the ``ccf/scf`` instructions on real hardware. |re| |fe| :ref:`12`, :ref:`23` |ren| |ces|
* **Harston, Jonathan Graham**
1. For his research work.
2. For his technical documents about the Zilog Z80. |re| |fe| :ref:`24`, :ref:`25`, :ref:`26` |ren| |ces|
3. For porting the *"Z80 Instruction Set Exerciser"* to the ZX Spectrum. |re| |fe| :ref:`27` |ren| |ces|
* **Helcmanovsky, Peter (Ped7g)**
1. For helping me to write the *"IN-MEMPTR"* test.
2. For writing the *"Z80 Block Flags Test"*. |re| |fe| :ref:`1`, :ref:`28` |ren| |ces|
3. For writing the *"Z80 CCF SCF Outcome Stability"* test. |re| |fe| :ref:`28` |ren| |ces|
4. For writing the *"Z80 INT Skip"* test. |re| |fe| :ref:`28` |ren| |ces|
5. For his research on the ``ccf/scf`` instructions.
6. For his invaluable help.
* **Iborra Debón, Víctor (Eremus)**
* For validating tests on real hardware.
* **icebear**
* For testing the behavior of MEMPTR on real hardware. |re| |fe| :ref:`8`, :ref:`9`, :ref:`10`, :ref:`11` |ren| |ces|
* **ICEknight**
* For validating tests on real hardware.
* **Kladov, Vladimir**
* For deciphering the behavior of MEMPTR. |re| |fe| :ref:`8`, :ref:`9`, :ref:`10`, :ref:`11` |ren| |ces|
* **Krook, Magnus**
* For validating tests on real hardware. |re| |fe| :ref:`1.3` |ren| |ces|
* **London, Matthew (mattinx)**
* For validating tests on real hardware.
* **Martínez Cantero, Ricardo (Kyp)**
* For validating tests on real hardware.
* **Molodtsov, Aleksandr**
* For testing the behavior of MEMPTR on real hardware. |re| |fe| :ref:`8`, :ref:`9`, :ref:`10`, :ref:`11` |ren| |ces|
* **Nair, Arjun**
* For validating tests on real hardware. |re| |fe| :ref:`1` |ren| |ces|
* **Nicolás-González, César**
* For helping me to investigate the unstable behavior of the ``ccf/scf`` instructions.
* **Ortega Sosa, Sofía**
1. For optimizing the emulator.
2. For her help and support.
* **Owen, Simon**
* For the idea of the hooking method used in this emulator.
* **Ownby, Matthew P.**
* For his research on the state of the registers after POWER-ON. |re| |fe| :ref:`29` |ren| |ces|
* **Rak, Patrik**
1. For improving the *"Z80 Instruction Set Exerciser for Spectrum"*. |re| |fe| :ref:`30` |ren| |ces|
2. For deciphering the behavior of the ``ccf/scf`` instructions. |re| |fe| :ref:`15`, :ref:`30` |ren| |ces|
3. For writing the *"Zilog Z80 CPU Test Suite"*. |re| |fe| :ref:`30`, :ref:`31` |ren| |ces|
4. For his research on the unstable behavior of the ``ccf/scf`` instructions.
* **Rodríguez Jódar, Miguel Ángel (mcleod_ideafix)**
* For his research on the state of the registers after POWER-ON/RESET. |re| |fe| :ref:`32` |ren| |ces|
* **Rodríguez Palomino, Mario (r-lyeh)**
* For teaching me how emulators work.
* **Sainz de Baranda y Romero, Manuel**
* For teaching me programming and giving me my first computer.
* **Sánchez Ordiñana, José Ismael (Vaporatorius)**
* For validating tests on real hardware. |re| |fe| :ref:`31.1`, :ref:`33` |ren| |ces|
* **Sevillano Mancilla, Marta (TheMartian)**
* For validating tests on real hardware. |re| |fe| :ref:`14.1` |ren| |ces|
* **Stevenson, Dave**
1. For testing the special RESET on real hardware. |re| |fe| :ref:`13` |ren| |ces|
2. For conducting low-level tests on real hardware. |re| |fe| :ref:`4.4` |ren| |ces|
* **Titov, Andrey (Titus)**
* For his research on the ``ccf/scf`` instructions. |re| |fe| :ref:`2`, :ref:`3` |ren| |ces|
* **Vučenović, Zoran**
* For writing the Pascal binding.
* **Weissflog, Andre (Floh)**
1. For discovering that the ``reti/retn`` instructions defer the acceptance of the maskable interrupt. |re| |fe| :ref:`34` |ren| |ces|
2. For writing the *"Visual Z80 Remix"* simulator. |re| |fe| :ref:`35` |ren| |ces|
* **Wilkinson, Oli (evolutional)**
* For validating tests on real hardware. |re| |fe| :ref:`1` |ren| |ces|
* **Wlodek**
* For testing the behavior of MEMPTR on real hardware. |re| |fe| :ref:`8`, :ref:`9`, :ref:`10`, :ref:`11` |ren| |ces|
* **Woodmass, Mark (Woody)**
1. For his invaluable contributions to the emuscene.
2. For writing the *"Z80 Test Suite"*. |re| |fe| :ref:`15` |ren| |ces|
3. For his research on the behavior of the `ccf/scf` instructions. |re| |fe| :ref:`36` |ren| |ces|
4. For writing the *"HALT2INT"* test.
5. For writing the *"EIHALT"* test.
* **Young, Sean**
1. For his research work.
2. For his technical documents about the Zilog Z80. |re| |fe| :ref:`20`, :ref:`29`, :ref:`37` |ren| |ces|
* **ZXGuesser**
* For validating tests on real hardware.
References
==========
1.
.. _r_1:
https://spectrumcomputing.co.uk/forums/viewtopic.php?t=6102
1.
.. _r_1_1:
https://spectrumcomputing.co.uk/forums/viewtopic.php?p=83384#p83384
2.
.. _r_1_2:
https://spectrumcomputing.co.uk/forums/viewtopic.php?p=83041#p83041
3.
.. _r_1_3:
https://spectrumcomputing.co.uk/forums/viewtopic.php?p=83157#p83157
2.
.. _r_2:
https://zx-pk.ru/threads/34173-revers-inzhiniring-z80.html
3.
.. _r_3:
https://zx-pk.ru/threads/35936-zagadka-plavayushchikh-flagov-scf-ccf-raskryta!.html
4.
.. _r_4:
https://stardot.org.uk/forums/viewtopic.php?t=15464
1.
.. _r_4_1:
https://stardot.org.uk/forums/viewtopic.php?p=211042#p211042
2.
.. _r_4_2:
https://stardot.org.uk/forums/viewtopic.php?p=212021#p212021
3.
.. _r_4_3:
https://stardot.org.uk/forums/viewtopic.php?p=357136#p357136
4.
.. _r_4_4:
https://stardot.org.uk/forums/viewtopic.php?p=212360#p212360
5.
.. _r_5:
Banks, David (2018-08-21). *"Undocumented Z80 Flags"* rev. 1.0.
* https://stardot.org.uk/forums/download/file.php?id=39831
* https://github.com/hoglet67/Z80Decoder/wiki/Undocumented-Flags
6.
.. _r_6:
https://github.com/hoglet67/Z80Decoder/wiki/Unstable-CCF-SCF-Behaviour
7.
.. _r_7:
http://wizard.ae.krakow.pl/~jb/qaop/tests.html
8.
.. _r_8:
https://zxpress.ru/zxnet/zxnet.pc/5909
9.
.. _r_9:
https://zx-pk.ru/threads/2506-komanda-bit-n-(hl).html
10.
.. _r_10:
https://zx-pk.ru/threads/2586-prosba-realshchikam-ot-emulyatorshchikov.html
11.
.. _r_11:
boo_boo; Kladov, Vladimir (2006-03-29). *"MEMPTR, Esoteric Register of the Zilog Z80 CPU"*.
* https://zx-pk.ru/showpost.php?p=43688
* https://zx-pk.ru/attachment.php?attachmentid=2984
* https://zx-pk.ru/showpost.php?p=43800
* https://zx-pk.ru/attachment.php?attachmentid=2989
12.
.. _r_12:
https://sourceforge.net/p/fuse-emulator/mailman/message/6929573
13.
.. _r_13:
Brewer, Tony (2014-12). *"Z80 Special Reset"*.
* http://primrosebank.net/computers/z80/z80_special_reset.htm
14.
.. _r_14:
https://spectrumcomputing.co.uk/forums/viewtopic.php?t=10555
1.
.. _r_14_1:
https://spectrumcomputing.co.uk/forums/viewtopic.php?p=132144#p132144
15.
.. _r_15:
https://worldofspectrum.org/forums/discussion/20345
16.
.. _r_16:
https://groups.google.com/g/comp.os.cpm/c/HfSTFpaIkuU/m/KotvMWu3bZoJ
17.
.. _r_17:
Cringle, Frank D. (1998-01-28). *"Yaze - Yet Another Z80 Emulator"* v1.10.
* ftp://ftp.ping.de/pub/misc/emulators/yaze-1.10.tar.gz
18.
.. _r_18:
https://baltazarstudios.com/zilog-z80-undocumented-behavior
19.
.. _r_19:
Flammenkamp, Achim. *"Interrupt Behaviour of the Z80 CPU"*.
* http://z80.info/interrup.htm
20.
.. _r_20:
Young, Sean (1998-10). *"Z80 Undocumented Features (in Software Behaviour)"* v0.3.
* http://www.msxnet.org/tech/Z80/z80undoc.txt
21.
.. _r_21:
https://elmundodelspectrum.com/desenterrando-el-primer-emulador-de-spectrum
22.
.. _r_22:
https://elmundodelspectrum.com/con-vosotros-el-emulador-de-pedro-gimeno-1989
23.
.. _r_23:
https://sourceforge.net/p/fuse-emulator/mailman/message/4502844
24.
.. _r_24:
Harston, Jonathan Graham (2008). *"Full Z80 Opcode List Including Undocumented Opcodes"* v0.11 (revised).
* https://mdfs.net/Docs/Comp/Z80/OpList
25.
.. _r_25:
Harston, Jonathan Graham (2012). *"Z80 Microprocessor Undocumented Instructions"* v0.15.
* https://mdfs.net/Docs/Comp/Z80/UnDocOps
26.
.. _r_26:
Harston, Jonathan Graham (2014). *"Z80 Opcode Map"* v0.10 (revised).
* https://mdfs.net/Docs/Comp/Z80/OpCodeMap
27.
.. _r_27:
https://mdfs.net/Software/Z80/Exerciser/Spectrum
28.
.. _r_28:
https://github.com/MrKWatkins/ZXSpectrumNextTests
29.
.. _r_29:
Young, Sean (2005-09-18). *"Undocumented Z80 Documented, The"* v0.91.
* http://www.myquest.nl/z80undocumented
* http://www.myquest.nl/z80undocumented/z80-documented-v0.91.pdf
30.
.. _r_30:
https://worldofspectrum.org/forums/discussion/41704
* http://zxds.raxoft.cz/taps/misc/zexall2.zip
31.
.. _r_31:
https://worldofspectrum.org/forums/discussion/41834
* http://zxds.raxoft.cz/taps/misc/z80test-1.0.zip
* https://github.com/raxoft/z80test
1.
.. _r_31_1:
https://worldofspectrum.org/forums/discussion/comment/668760/#Comment_668760
32.
.. _r_32:
https://worldofspectrum.org/forums/discussion/34574
33.
.. _r_33:
https://jisanchez.com/test-a-dos-placas-de-zx-spectrum
34.
.. _r_34:
Weissflog, Andre (2021-12-17). *"New Cycle-Stepped Z80 Emulator, A"*.
* https://floooh.github.io/2021/12/17/cycle-stepped-z80.html
35.
.. _r_35:
https://github.com/floooh/v6502r
36.
.. _r_36:
https://groups.google.com/g/comp.sys.sinclair/c/WPsPr6j6w5k/m/O_u1zNQf3VYJ
37.
.. _r_37:
Young, Sean (1997-09-21). *"Zilog Z80 CPU Specifications"*.
* http://www.msxnet.org/tech/Z80/z80.zip