491 lines
12 KiB
ReStructuredText
491 lines
12 KiB
ReStructuredText
======
|
|
Thanks
|
|
======
|
|
|
|
.. only:: html
|
|
|
|
.. |re| raw:: html
|
|
|
|
<sup>
|
|
|
|
.. |ren| raw:: html
|
|
|
|
</sup>
|
|
|
|
.. 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<r1>` |ren| |ces|
|
|
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. |re| |fe| :ref:`2<r2>`, :ref:`3<r3>` |ren| |ces|
|
|
2. For his research on the flag behavior of the ``ccf/scf`` instructions. |re| |fe| :ref:`3<r3>` |ren| |ces|
|
|
|
|
* **Beliansky, Anatoly (Tolik_Trek)**
|
|
|
|
* For validating tests on real hardware. |re| |fe| :ref:`4<r4>` |ren| |ces|
|
|
|
|
* **Bobrowski, Jan**
|
|
|
|
* For fixing the *"Z80 Full Instruction Set Exerciser for Spectrum"*. |re| |fe| :ref:`5<r5>` |ren| |ces|
|
|
|
|
* **boo_boo**
|
|
|
|
* For cracking the behavior of the MEMPTR register. |re| |fe| :ref:`6<r6>`, :ref:`7<r7>`, :ref:`8<r8>`, :ref:`9<r9>` |ren| |ces|
|
|
|
|
* **Brady, Stuart**
|
|
|
|
* For his research on the flag behavior of the ``ccf/scf`` instructions. |re| |fe| :ref:`10<r10>` |ren| |ces|
|
|
|
|
* **Brewer, Tony**
|
|
|
|
1. For his research on the special RESET. |re| |fe| :ref:`11<r11>`, :ref:`12<r12>` |ren| |ces|
|
|
2. For helping to crack the flag behavior of the block instructions. |re| |fe| :ref:`2<r2>` |ren| |ces|
|
|
3. For conducting low-level tests on real hardware. |re| |fe| :ref:`2<r2>` |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:`4<r4>` |ren| |ces|
|
|
|
|
* **Chunin, Roman (CHRV)**
|
|
|
|
* For testing the behavior of the MEMPTR register on real Z80 chips. |re| |fe| :ref:`6<r6>`, :ref:`7<r7>`, :ref:`8<r8>`, :ref:`9<r9>` |ren| |ces|
|
|
|
|
* **Conway, Simon (BadBeard)**
|
|
|
|
* For validating the *"Z80 Test Suite"* on several Z80 clones. |re| |fe| :ref:`13<r13>` |ren| |ces|
|
|
|
|
* **Cooke, Simon**
|
|
|
|
* For finding out how the ``out (c),0`` instruction behaves on the Zilog Z80 CMOS. |re| |fe| :ref:`14<r14>` |ren| |ces|
|
|
|
|
* **Cringle, Frank D.**
|
|
|
|
* For writing the *"Z80 Instruction Set Exerciser"*. |re| |fe| :ref:`15<r15>` |ren| |ces|
|
|
|
|
* **Devic, Goran**
|
|
|
|
* For his research on undocumented behaviors of the Z80 CPU. |re| |fe| :ref:`16<r16>` |ren| |ces|
|
|
|
|
* **Flammenkamp, Achim**
|
|
|
|
* For his article on Z80 interrupts. |re| |fe| :ref:`17<r17>` |ren| |ces|
|
|
|
|
* **Gimeno Fortea, Pedro**
|
|
|
|
1. For his research work. |re| |fe| :ref:`18<r18>` |ren| |ces|
|
|
2. For writing the first-ever ZX Spectrum emulator. |re| |fe| :ref:`19<r19>`, :ref:`20<r20>` |ren| |ces|
|
|
|
|
* **goodboy**
|
|
|
|
* For testing the behavior of the MEMPTR register on real Z80 chips. |re| |fe| :ref:`6<r6>`, :ref:`7<r7>`, :ref:`8<r8>`, :ref:`9<r9>` |ren| |ces|
|
|
|
|
* **Greenway, Ian**
|
|
|
|
* For testing the flag behavior of the ``ccf/scf`` instructions on real hardware. |re| |fe| :ref:`10<r10>`, :ref:`21<r21>` |ren| |ces|
|
|
|
|
* **Harston, Jonathan Graham**
|
|
|
|
1. For his research work.
|
|
2. For his technical documents about the Zilog Z80. |re| |fe| :ref:`22<r22>`, :ref:`23<r23>`, :ref:`24<r24>` |ren| |ces|
|
|
3. For porting the *"Z80 Instruction Set Exerciser"* to the ZX Spectrum. |re| |fe| :ref:`25<r25>` |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:`26<r26>`, :ref:`27<r27>` |ren| |ces|
|
|
3. For writing the *"Z80 CCF SCF Outcome Stability"* test. |re| |fe| :ref:`27<r27>` |ren| |ces|
|
|
4. For writing the *"Z80 INT Skip"* test. |re| |fe| :ref:`27<r27>` |ren| |ces|
|
|
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. |re| |fe| :ref:`6<r6>`, :ref:`7<r7>`, :ref:`8<r8>`, :ref:`9<r9>` |ren| |ces|
|
|
|
|
* **Kladov, Vladimir**
|
|
|
|
* For cracking the behavior of the MEMPTR register. |re| |fe| :ref:`6<r6>`, :ref:`7<r7>`, :ref:`8<r8>`, :ref:`9<r9>` |ren| |ces|
|
|
|
|
* **Krook, Magnus**
|
|
|
|
* For validating tests on real hardware. |re| |fe| :ref:`28<r28>` |ren| |ces|
|
|
|
|
* **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. |re| |fe| :ref:`6<r6>`, :ref:`7<r7>`, :ref:`8<r8>`, :ref:`9<r9>` |ren| |ces|
|
|
|
|
* **Nair, Arjun**
|
|
|
|
* For validating tests on real hardware. |re| |fe| :ref:`26<r26>` |ren| |ces|
|
|
|
|
* **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"*. |re| |fe| :ref:`29<r29>` |ren| |ces|
|
|
2. For cracking the flag behavior of the ``ccf/scf`` instructions. |re| |fe| :ref:`13<r13>`, :ref:`29<r29>` |ren| |ces|
|
|
3. For writing the *"Zilog Z80 CPU Test Suite"*. |re| |fe| :ref:`29<r29>`, :ref:`30<r30>` |ren| |ces|
|
|
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. |re| |fe| :ref:`31<r31>` |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:`32<r32>`, :ref:`33<r33>` |ren| |ces|
|
|
|
|
* **Stevenson, Dave**
|
|
|
|
1. For testing the special RESET on real hardware. |re| |fe| :ref:`11<r11>` |ren| |ces|
|
|
2. For conducting low-level tests on real hardware. |re| |fe| :ref:`34<r34>` |ren| |ces|
|
|
|
|
* **Weissflog, Andre (Floh)**
|
|
|
|
1. For finding out that the ``reti/retn`` instructions defer the acceptance of the maskable interrupt. |re| |fe| :ref:`35<r35>` |ren| |ces|
|
|
2. For writing the *"Visual Z80 Remix"* simulator. |re| |fe| :ref:`36<r36>` |ren| |ces|
|
|
|
|
* **Wilkinson, Oli (evolutional)**
|
|
|
|
* For validating tests on real hardware. |re| |fe| :ref:`26<r26>` |ren| |ces|
|
|
|
|
* **Wlodek**
|
|
|
|
* For testing the behavior of the MEMPTR register on real Z80 chips. |re| |fe| :ref:`6<r6>`, :ref:`7<r7>`, :ref:`8<r8>`, :ref:`9<r9>` |ren| |ces|
|
|
|
|
* **Woodmass, Mark (Woody)**
|
|
|
|
1. For his invaluable contributions to the emuscene.
|
|
2. For writing the *"Z80 Test Suite"*. |re| |fe| :ref:`13<r13>` |ren| |ces|
|
|
3. For his research on the flag behavior of the ``ccf/scf`` instructions. |re| |fe| :ref:`37<r37>` |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:`18<r18>`, :ref:`38<r38>`, :ref:`39<r39>` |ren| |ces|
|
|
|
|
* **ZXGuesser**
|
|
|
|
* For validating tests on real hardware.
|
|
|
|
|
|
References
|
|
==========
|
|
|
|
1.
|
|
|
|
.. _r1:
|
|
|
|
https://spectrumcomputing.co.uk/forums/viewtopic.php?p=83384#p83384
|
|
|
|
2.
|
|
|
|
.. _r2:
|
|
|
|
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.
|
|
|
|
.. _r3:
|
|
|
|
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.
|
|
|
|
.. _r4:
|
|
|
|
https://spectrumcomputing.co.uk/forums/viewtopic.php?p=83041#p83041
|
|
|
|
5.
|
|
|
|
.. _r5:
|
|
|
|
http://wizard.ae.krakow.pl/~jb/qaop/tests.html
|
|
|
|
6.
|
|
|
|
.. _r6:
|
|
|
|
https://zxpress.ru/zxnet/zxnet.pc/5909
|
|
|
|
7.
|
|
|
|
.. _r7:
|
|
|
|
https://zx-pk.ru/threads/2506-komanda-bit-n-(hl).html
|
|
|
|
8.
|
|
|
|
.. _r8:
|
|
|
|
https://zx-pk.ru/threads/2586-prosba-realshchikam-ot-emulyatorshchikov.html
|
|
|
|
9.
|
|
|
|
.. _r9:
|
|
|
|
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.
|
|
|
|
.. _r10:
|
|
|
|
https://sourceforge.net/p/fuse-emulator/mailman/message/6929573
|
|
|
|
11.
|
|
|
|
.. _r11:
|
|
|
|
Brewer, Tony (2014-12). *"Z80 Special Reset"*.
|
|
|
|
* http://primrosebank.net/computers/z80/z80_special_reset.htm
|
|
|
|
12.
|
|
|
|
.. _r12:
|
|
|
|
https://stardot.org.uk/forums/viewtopic.php?p=357136#p357136
|
|
|
|
13.
|
|
|
|
.. _r13:
|
|
|
|
https://worldofspectrum.org/forums/discussion/20345
|
|
|
|
14.
|
|
|
|
.. _r14:
|
|
|
|
https://groups.google.com/g/comp.os.cpm/c/HfSTFpaIkuU/m/KotvMWu3bZoJ
|
|
|
|
15.
|
|
|
|
.. _r15:
|
|
|
|
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.
|
|
|
|
.. _r16:
|
|
|
|
https://baltazarstudios.com/zilog-z80-undocumented-behavior
|
|
17.
|
|
|
|
.. _r17:
|
|
|
|
Flammenkamp, Achim. *"Interrupt Behaviour of the Z80 CPU"*.
|
|
|
|
* http://z80.info/interrup.htm
|
|
|
|
18.
|
|
|
|
.. _r18:
|
|
|
|
Young, Sean (1998-10). *"Z80 Undocumented Features (in Software Behaviour)"* v0.3.
|
|
|
|
* http://www.msxnet.org/tech/Z80/z80undoc.txt
|
|
|
|
19.
|
|
|
|
.. _r19:
|
|
|
|
https://elmundodelspectrum.com/desenterrando-el-primer-emulador-de-spectrum
|
|
|
|
20.
|
|
|
|
.. _r20:
|
|
|
|
https://elmundodelspectrum.com/con-vosotros-el-emulador-de-pedro-gimeno-1989
|
|
|
|
21.
|
|
|
|
.. _r21:
|
|
|
|
https://sourceforge.net/p/fuse-emulator/mailman/message/4502844
|
|
|
|
22.
|
|
|
|
.. _r22:
|
|
|
|
Harston, Jonathan Graham (2008). *"Full Z80 Opcode List Including Undocumented Opcodes"* v0.11 (revised).
|
|
|
|
* https://mdfs.net/Docs/Comp/Z80/OpList
|
|
|
|
23.
|
|
|
|
.. _r23:
|
|
|
|
Harston, Jonathan Graham (2012). *"Z80 Microprocessor Undocumented Instructions"* v0.15.
|
|
|
|
* https://mdfs.net/Docs/Comp/Z80/UnDocOps
|
|
|
|
24.
|
|
|
|
.. _r24:
|
|
|
|
Harston, Jonathan Graham (2014). *"Z80 Opcode Map"* v0.10 (revised).
|
|
|
|
* https://mdfs.net/Docs/Comp/Z80/OpCodeMap
|
|
|
|
25.
|
|
|
|
.. _r25:
|
|
|
|
https://mdfs.net/Software/Z80/Exerciser/Spectrum
|
|
|
|
26.
|
|
|
|
.. _r26:
|
|
|
|
https://spectrumcomputing.co.uk/forums/viewtopic.php?t=6102
|
|
|
|
27.
|
|
|
|
.. _r27:
|
|
|
|
https://github.com/MrKWatkins/ZXSpectrumNextTests
|
|
|
|
28.
|
|
|
|
.. _r28:
|
|
|
|
https://spectrumcomputing.co.uk/forums/viewtopic.php?p=83157#p83157
|
|
|
|
29.
|
|
|
|
.. _r29:
|
|
|
|
https://worldofspectrum.org/forums/discussion/41704
|
|
|
|
* http://zxds.raxoft.cz/taps/misc/zexall2.zip
|
|
|
|
30.
|
|
|
|
.. _r30:
|
|
|
|
https://worldofspectrum.org/forums/discussion/41834
|
|
|
|
* http://zxds.raxoft.cz/taps/misc/z80test-1.0.zip
|
|
* https://github.com/raxoft/z80test
|
|
|
|
31.
|
|
|
|
.. _r31:
|
|
|
|
https://worldofspectrum.org/forums/discussion/34574
|
|
|
|
32.
|
|
|
|
.. _r32:
|
|
|
|
https://worldofspectrum.org/forums/discussion/comment/668760/#Comment_668760
|
|
|
|
33.
|
|
|
|
.. _r33:
|
|
|
|
https://jisanchez.com/test-a-dos-placas-de-zx-spectrum
|
|
|
|
34.
|
|
|
|
.. _r34:
|
|
|
|
https://stardot.org.uk/forums/viewtopic.php?p=212360#p212360
|
|
|
|
35.
|
|
|
|
.. _r35:
|
|
|
|
https://floooh.github.io/2021/12/17/cycle-stepped-z80.html
|
|
|
|
36.
|
|
|
|
.. _r36:
|
|
|
|
https://github.com/floooh/v6502r
|
|
|
|
37.
|
|
|
|
.. _r37:
|
|
|
|
http://groups.google.co.uk/group/comp.sys.sinclair/msg/56dd1fd4ccb5fb3b
|
|
|
|
38.
|
|
|
|
.. _r38:
|
|
|
|
Young, Sean (1997-09-21). *"Zilog Z80 CPU Specifications"*.
|
|
|
|
* http://www.msxnet.org/tech/Z80/z80.zip
|
|
|
|
39.
|
|
|
|
.. _r39:
|
|
|
|
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
|