====== 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