From ca5ad97ec4a2c9ecd7f6ebceed0fdffc82cd909c Mon Sep 17 00:00:00 2001 From: redcode Date: Sat, 21 May 2022 23:14:06 +0200 Subject: [PATCH] Bibliography and comments. --- README.md | 21 ++++++++++++--------- THANKS | 26 +++++++++++++++----------- documentation/Thanks.rst | 27 ++++++++++++++++++--------- sources/Z80.c | 23 ++++++++++++----------- 4 files changed, 57 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 9071573..0171f84 100644 --- a/README.md +++ b/README.md @@ -523,7 +523,7 @@ Many thanks to the following individuals (in alphabetical order): 5. For writing the _"EIHALT"_ test. * **Young, Sean** 1. For his research work. - 2. For his technical documents about the Zilog Z80. [18](#r18), [38](#r38) + 2. For his technical documents about the Zilog Z80. [18](#r18), [38](#r38), [39](#r39) * **ZXGuesser** * For validating tests on real hardware. @@ -533,7 +533,7 @@ Many thanks to the following individuals (in alphabetical order): 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"_. +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 @@ -557,16 +557,17 @@ Many thanks to the following individuals (in alphabetical order): 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)"_. +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 (1997-09-09). _"Z80 Opcode Map"_. - * https://mdfs.net/Docs/Comp/Z80/OpCodeMap -23. Harston, Jonathan Graham (1997-12-18). _"Z80 Microprocessor Undocumented Instructions"_. - * https://mdfs.net/Docs/Comp/Z80/UnDocOps -24. Harston, Jonathan Graham (1998-04-15). _"Full Z80 Opcode List Including Undocumented Opcodes"_. +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 @@ -583,7 +584,9 @@ Many thanks to the following individuals (in alphabetical order): 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 (2005-09-18). _"Undocumented Z80 Documented, The"_. +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 diff --git a/THANKS b/THANKS index 1674e75..3c4ba15 100644 --- a/THANKS +++ b/THANKS @@ -111,7 +111,7 @@ Many thanks to the following individuals (in alphabetical order): 5. For writing the "EIHALT" test. * Young, Sean 1. For his research work. - 2. For his technical documents about the Zilog Z80 [18,38]. + 2. For his technical documents about the Zilog Z80 [18,38,39]. * ZXGuesser For validating tests on real hardware. @@ -123,7 +123,7 @@ References 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". + 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 @@ -148,18 +148,20 @@ References 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)". +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 (1997-09-09). "Z80 Opcode Map". - * https://mdfs.net/Docs/Comp/Z80/OpCodeMap -23. Harston, Jonathan Graham (1997-12-18). "Z80 Microprocessor Undocumented - Instructions". - * https://mdfs.net/Docs/Comp/Z80/UnDocOps -24. Harston, Jonathan Graham (1998-04-15). "Full Z80 Opcode List Including - Undocumented Opcodes". +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 @@ -176,6 +178,8 @@ References 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 (2005-09-18). "Undocumented Z80 Documented, The". +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 diff --git a/documentation/Thanks.rst b/documentation/Thanks.rst index f6d077d..205f613 100644 --- a/documentation/Thanks.rst +++ b/documentation/Thanks.rst @@ -208,7 +208,7 @@ Many thanks to the following individuals (in alphabetical order): * **Young, Sean** 1. For his research work. - 2. For his technical documents about the Zilog Z80. |re| |fe| :ref:`18`, :ref:`38` |ren| |ces| + 2. For his technical documents about the Zilog Z80. |re| |fe| :ref:`18`, :ref:`38`, :ref:`39` |ren| |ces| * **ZXGuesser** @@ -237,7 +237,7 @@ References .. _r3: - Banks, David (2018-08-21). *"Undocumented Z80 Flags"*. + 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 @@ -340,7 +340,9 @@ References .. _r18: - Young, Sean (1998-10). *"Z80 Undocumented Features (in Software Behaviour)"*. + Young, Sean (1998-10). *"Z80 Undocumented Features (in Software Behaviour)"* v0.3. + + * http://www.msxnet.org/tech/Z80/z80undoc.txt 19. @@ -364,15 +366,15 @@ References .. _r22: - Harston, Jonathan Graham (1997-09-09). *"Z80 Opcode Map"*. + Harston, Jonathan Graham (2008). *"Full Z80 Opcode List Including Undocumented Opcodes"* v0.11 (revised). - * https://mdfs.net/Docs/Comp/Z80/OpCodeMap + * https://mdfs.net/Docs/Comp/Z80/OpList 23. .. _r23: - Harston, Jonathan Graham (1997-12-18). *"Z80 Microprocessor Undocumented Instructions"*. + Harston, Jonathan Graham (2012). *"Z80 Microprocessor Undocumented Instructions"* v0.15. * https://mdfs.net/Docs/Comp/Z80/UnDocOps @@ -380,9 +382,9 @@ References .. _r24: - Harston, Jonathan Graham (1998-04-15). *"Full Z80 Opcode List Including Undocumented Opcodes"*. + Harston, Jonathan Graham (2014). *"Z80 Opcode Map"* v0.10 (revised). - * https://mdfs.net/Docs/Comp/Z80/OpList + * https://mdfs.net/Docs/Comp/Z80/OpCodeMap 25. @@ -471,8 +473,15 @@ References .. _r38: - Young, Sean (2005-09-18). *"Undocumented Z80 Documented, The"*. + 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 diff --git a/sources/Z80.c b/sources/Z80.c index 930a12f..c922696 100644 --- a/sources/Z80.c +++ b/sources/Z80.c @@ -1234,7 +1234,7 @@ INSTRUCTION(neg) | References: | | 1. https://worldofspectrum.org/forums/discussion/20345 | | 2. https://worldofspectrum.org/forums/discussion/41704 | -| 3. Banks, David (2018-08-21). "Undocumented Z80 Flags". | +| 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 | '===========================================================================*/ @@ -1434,8 +1434,8 @@ INSTRUCTION(rrd ) {RXD(>> 4, << 4, & 0xF); } | (+) Some forms of the instruction are undocumented. | | (*) Undocumented instruction. | |----------------------------------------------------------------------------| -| 1. All versions of Zilog's "Z80 Family: CPU User Manual" contain a typo in | -| the M-cycles of this instruction: an additional M-cycle of 4 T-states. | +| 1. All versions of Zilog's "Z80 CPU User Manual" contain a typo in the | +| M-cycles of this instruction: an additional M-cycle of 4 T-states. | '===========================================================================*/ INSTRUCTION(M_N_K ) {zuint8 *k = &K1; *k = M1(*k); return 8;} @@ -1595,9 +1595,9 @@ INSTRUCTION(call_Z_WORD) |---------------------------------------------------------------| | (*) Undocumented instruction. | |---------------------------------------------------------------| -| 1. All versions of Zilog's "Z80 Family: CPU User Manual" have | -| the same typo in the M-cycles of these instructions: the | -| T-states of the 3rd and 4th M-cycles are swapped. | +| 1. All versions of Zilog's "Z80 CPU User Manual" have a typo | +| in the M-cycles of these instructions: the T-states of the | +| 3rd and 4th M-cycles are swapped. | '==============================================================*/ INSTRUCTION(in_J_vc ) {IN_VC; J1 = t; PC += 2; return 12;} @@ -2159,14 +2159,15 @@ Z80_API zusize z80_run(Z80 *self, zusize cycles) | resuming normal processing operation at address 0000h [2,4,6,7]. | | | | References: | - | 1. Zilog (2005-02). "Z80 Family: CPU User Manual" v5. pp. 9,10. | + | 1. Zilog (2016-09). "Z80 CPU User Manual" revision 11. p. 6. | | 2. Flammenkamp, Achim. "Interrupt Behaviour of the Z80 CPU". | | * http://z80.info/interrup.htm | | 3. https://worldofspectrum.org/forums/discussion/34574 | | 4. https://baltazarstudios.com/webshare/Z80-undocumented-behavior.htm | | 5. Brewer, Tony (2014-12). "Z80 Special Reset". | | * http://primrosebank.net/computers/z80/z80_special_reset.htm | - | 6. SGS-Thomson (1990-01). "Z80 Microprocessor Family Databook". p. 40. | + | 6. SGS-Thomson (1990-01). "Z80 Microprocessor Family" 1st edition. | + | p. 40. | '=========================================================================*/ # ifdef Z80_WITH_RESET_SIGNAL if (REQUEST & Z80_REQUEST_RESET) @@ -2206,7 +2207,7 @@ Z80_API zusize z80_run(Z80 *self, zusize cycles) | by electronic simulations [1]. | | | | References: | - | 1. Tested on "Visual Z80 Remix" | + | 1. Checked with "Visual Z80 Remix" | | * https://floooh.github.io/visualz80remix | | * https://github.com/floooh/v6502r | '=========================================================================*/ @@ -2355,7 +2356,7 @@ Z80_API zusize z80_run(Z80 *self, zusize cycles) | incremented as a result of the instruction fetch [1,2]. | | | | References: | - | 1. Tested on "Visual Z80 Remix" | + | 1. Checked with "Visual Z80 Remix" | | * https://floooh.github.io/visualz80remix | | * https://github.com/floooh/v6502r | | 2. Zilog (1978-05). "Z80 Family Program Interrupt Structure, The". | @@ -2555,7 +2556,7 @@ Z80_API zusize z80_run(Z80 *self, zusize cycles) | odd or even. | | | | References: | - | 1. Zilog (2005-02). Z80 "Family: CPU User Manual" v5. pp. 25,26. | + | 1. Zilog (2005-03). "Z80 CPU User Manual" revision 5. pp. 25,26. | | 2. Young, Sean (2005-09-18). "Undocumented Z80 Documented, The". | | v0.91 p. 20. | '=====================================================================*/