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 [1]. 2. For his research on the unstable flag behavior of the `ccf/scf` instructions. 3. For his invaluable help. * Banks, David (hoglet) 1. For cracking the flag behavior of the block instructions [2,3]. 2. For his research on the flag behavior of the `ccf/scf` instructions [3]. * Beliansky, Anatoly (Tolik_Trek) For validating tests on real hardware [4]. * Bobrowski, Jan For fixing the "Z80 Full Instruction Set Exerciser for Spectrum" [5]. * boo_boo For cracking the behavior of the MEMPTR register [6,7,8,9]. * Brady, Stuart For his research on the flag behavior of the `ccf/scf` instructions [10]. * Brewer, Tony 1. For his research on the special RESET [11,12]. 2. For helping to crack the flag behavior of the block instructions [2]. 3. For conducting low-level tests on real hardware [2]. 4. For helping me to test different undocumented behaviors of the Zilog Z80. * Bystrov, Dmitry (Alone Coder) For validating tests on real hardware [4]. * Chunin, Roman (CHRV) For testing the behavior of the MEMPTR register on real Z80 chips [6,7,8,9]. * Conway, Simon (BadBeard) For validating the "Z80 Test Suite" on several Z80 clones [13]. * Cooke, Simon For finding out how the `out (c),0` instruction behaves on the Zilog Z80 CMOS [14]. * Cringle, Frank D. For writing the "Z80 Instruction Set Exerciser" [15]. * Devic, Goran For his research on undocumented behaviors of the Z80 CPU [16]. * Flammenkamp, Achim * For his article on Z80 interrupts [17]. * Gimeno Fortea, Pedro 1. For his research work [18]. 2. For writing the first-ever ZX Spectrum emulator [19,20]. * goodboy For testing the behavior of the MEMPTR register on real Z80 chips [6,7,8,9]. * Greenway, Ian For testing the flag behavior of the `ccf/scf` instructions on real hardware [10,21]. * Harston, Jonathan Graham 1. For his research work. 2. For his technical documents about the Zilog Z80 [22,23,24]. 3. For porting the "Z80 Instruction Set Exerciser" to the ZX Spectrum [25]. * Helcmanovsky, Peter (Ped7g) 1. For helping me to write the "IN-MEMPTR" test. 2. For writing the "Z80 Block Flags Test" [26,27]. 3. For writing the "Z80 CCF SCF Outcome Stability" test [27]. 4. For writing the "Z80 INT Skip" test [27]. 5. For his research on the unstable flag behavior of the `ccf/scf` instructions. 6. For his invaluable help. * icebear For testing the behavior of the MEMPTR register on real Z80 chips [6,7,8,9]. * Kladov, Vladimir For cracking the behavior of the MEMPTR register [6,7,8,9]. * Krook, Magnus For validating tests on real hardware [28]. * London, Matthew For validating tests on real hardware. * Martínez Cantero, Ricardo (Kyp) For validating tests on real hardware. * Molodtsov, Aleksandr For testing the behavior of the MEMPTR register on real Z80 chips [6,7,8,9]. * Nair, Arjun For validating tests on real hardware [26]. * Nicolás-González, César For helping me to research the unstable flag behavior of the `ccf/scf` instructions. * Ortega Sosa, Sofía For her support. * Owen, Simon For the idea of the hooking method used in this emulator. * Rak, Patrik 1. For improving the "Z80 Instruction Set Exerciser for Spectrum" [29]. 2. For cracking the flag behavior of the `ccf/scf` instructions [13,29]. 3. For writing the "Zilog Z80 CPU Test Suite" [29,30]. 4. For his research on the unstable flag behavior of the `ccf/scf` instructions. * Rodríguez Jódar, Miguel Ángel (mcleod_ideafix) For his reseach on the state of the registers after POWER/RESET [31]. * 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 [32,33]. * Stevenson, Dave 1. For testing the special RESET on real hardware [11]. 2. For conducting low-level tests on real hardware [34]. * Weissflog, Andre (Floh) 1. For finding out that the `reti/retn` instructions defer the acceptance of the maskable interrupt [35]. 2. For writing the "Visual Z80 Remix" simulator [36]. * Wilkinson, Oli (evolutional) For validating tests on real hardware [26]. * Wlodek For testing the behavior of the MEMPTR register on real Z80 chips [6,7,8,9]. * Woodmass, Mark (Woody) 1. For his invaluable contributions to the emuscene. 2. For writing the "Z80 Test Suite" [13]. 3. For his research on the flag behavior of the `ccf/scf` instructions [37]. 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 [18,38,39]. * ZXGuesser For validating tests on real hardware. References ========== 1. https://spectrumcomputing.co.uk/forums/viewtopic.php?p=83384#p83384 2. https://stardot.org.uk/forums/viewtopic.php?t=15464 * https://stardot.org.uk/forums/viewtopic.php?p=211042#p211042 * https://stardot.org.uk/forums/viewtopic.php?p=212021#p212021 3. Banks, David (2018-08-21). "Undocumented Z80 Flags" revision 1.0. * https://github.com/hoglet67/Z80Decoder/wiki/Undocumented-Flags * https://stardot.org.uk/forums/download/file.php?id=39831 4. https://spectrumcomputing.co.uk/forums/viewtopic.php?p=83041#p83041 5. http://wizard.ae.krakow.pl/~jb/qaop/tests.html 6. https://zxpress.ru/zxnet/zxnet.pc/5909 7. https://zx-pk.ru/threads/2506-komanda-bit-n-(hl).html 8. https://zx-pk.ru/threads/2586-prosba-realshchikam-ot-emulyatorshchikov.html 9. boo_boo; Kladov, Vladimir (2006-03-29). "MEMPTR, Esoteric Register of the Zilog Z80 CPU". * http://zx.pk.ru/showpost.php?p=43688 * http://zx.pk.ru/attachment.php?attachmentid=2984 * http://zx.pk.ru/showpost.php?p=43800 * http://zx.pk.ru/attachment.php?attachmentid=2989 10. https://sourceforge.net/p/fuse-emulator/mailman/message/6929573 11. Brewer, Tony (2014-12). "Z80 Special Reset". * http://primrosebank.net/computers/z80/z80_special_reset.htm 12. https://stardot.org.uk/forums/viewtopic.php?p=357136#p357136 13. https://worldofspectrum.org/forums/discussion/20345 14. https://groups.google.com/g/comp.os.cpm/c/HfSTFpaIkuU/m/KotvMWu3bZoJ 15. 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 16. https://baltazarstudios.com/zilog-z80-undocumented-behavior 17. Flammenkamp, Achim. "Interrupt Behaviour of the Z80 CPU". * http://z80.info/interrup.htm 18. Young, Sean (1998-10). "Z80 Undocumented Features (in Software Behaviour)" v0.3. * http://www.msxnet.org/tech/Z80/z80undoc.txt 19. https://elmundodelspectrum.com/desenterrando-el-primer-emulador-de-spectrum 20. https://elmundodelspectrum.com/con-vosotros-el-emulador-de-pedro-gimeno-1989 21. https://sourceforge.net/p/fuse-emulator/mailman/message/4502844 22. Harston, Jonathan Graham (2008). "Full Z80 Opcode List Including Undocumented Opcodes" v0.11 (revised). * https://mdfs.net/Docs/Comp/Z80/OpList 23. Harston, Jonathan Graham (2012). "Z80 Microprocessor Undocumented Instructions" v0.15. * https://mdfs.net/Docs/Comp/Z80/UnDocOps 24. Harston, Jonathan Graham (2014). "Z80 Opcode Map" v0.10 (revised). * https://mdfs.net/Docs/Comp/Z80/OpCodeMap 25. https://mdfs.net/Software/Z80/Exerciser/Spectrum 26. https://spectrumcomputing.co.uk/forums/viewtopic.php?t=6102 27. https://github.com/MrKWatkins/ZXSpectrumNextTests 28. https://spectrumcomputing.co.uk/forums/viewtopic.php?p=83157#p83157 29. https://worldofspectrum.org/forums/discussion/41704 * http://zxds.raxoft.cz/taps/misc/zexall2.zip 30. https://worldofspectrum.org/forums/discussion/41834 * http://zxds.raxoft.cz/taps/misc/z80test-1.0.zip * https://github.com/raxoft/z80test 31. https://worldofspectrum.org/forums/discussion/34574 32. https://worldofspectrum.org/forums/discussion/comment/668760/#Comment_668760 33. https://jisanchez.com/test-a-dos-placas-de-zx-spectrum 34. https://stardot.org.uk/forums/viewtopic.php?p=212360#p212360 35. https://floooh.github.io/2021/12/17/cycle-stepped-z80.html 36. https://github.com/floooh/v6502r 37. http://groups.google.co.uk/group/comp.sys.sinclair/msg/56dd1fd4ccb5fb3b 38. Young, Sean (1997-09-21). "Zilog Z80 CPU Specifications". * http://www.msxnet.org/tech/Z80/z80.zip 39. 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