Skip to content

Commit ad14805

Browse files
committed
Bibliographic references.
1 parent dbc0778 commit ad14805

File tree

2 files changed

+56
-56
lines changed

2 files changed

+56
-56
lines changed

THANKS

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,22 @@ Many thanks to the following individuals (in alphabetical order):
55
* azesmbog
66
1. For validating tests on real hardware [1.1].
77
2. For discovering the unstable behavior of the `ccf/scf` instructions.
8-
3. For testing the `ccf/scf` instructions on real hardware [2,3].
8+
3. For testing the `ccf/scf` instructions on real hardware [2, 3].
99
4. For his invaluable help.
1010
* Banks, David (hoglet)
1111
1. For deciphering the additional flag changes of the block instructions
12-
[4.1,4.2,5].
13-
2. For his research on the `ccf/scf` instructions [5,6].
12+
[4.1, 4.2, 5].
13+
2. For his research on the `ccf/scf` instructions [5, 6].
1414
* Beliansky, Anatoly (Tolik_Trek)
1515
For validating tests on real hardware [1.2].
1616
* Bobrowski, Jan
1717
For fixing the "Z80 Full Instruction Set Exerciser for Spectrum" [7].
1818
* boo_boo
19-
For deciphering the behavior of MEMPTR [8,9,10,11].
19+
For deciphering the behavior of MEMPTR [8, 9, 10, 11].
2020
* Brady, Stuart
2121
For his research on the `ccf/scf` instructions [12].
2222
* Brewer, Tony
23-
1. For his research on the special RESET [4.3,13].
23+
1. For his research on the special RESET [4.3, 13].
2424
2. For helping to decipher the additional flag changes of the block
2525
instructions [4].
2626
3. For conducting low-level tests on real hardware [4].
@@ -31,7 +31,7 @@ Many thanks to the following individuals (in alphabetical order):
3131
1. For his corrections to the documentation.
3232
2. For validating tests on real hardware [14].
3333
* Chunin, Roman (CHRV)
34-
For testing the behavior of MEMPTR on real hardware [8,9,10,11].
34+
For testing the behavior of MEMPTR on real hardware [8, 9, 10, 11].
3535
* Conway, Simon (BadBeard)
3636
For validating the "Z80 Test Suite" on several Z80 clones [15].
3737
* Cooke, Simon
@@ -49,38 +49,38 @@ Many thanks to the following individuals (in alphabetical order):
4949
For his article on Z80 interrupts [19].
5050
* Gimeno Fortea, Pedro
5151
1. For his research work [20].
52-
2. For writing the first-ever ZX Spectrum emulator [21,22].
52+
2. For writing the first-ever ZX Spectrum emulator [21, 22].
5353
* goodboy
54-
For testing the behavior of MEMPTR on real hardware [8,9,10,11].
54+
For testing the behavior of MEMPTR on real hardware [8, 9, 10, 11].
5555
* Greenway, Ian
56-
For testing the `ccf/scf` instructions on real hardware [12,23].
56+
For testing the `ccf/scf` instructions on real hardware [12, 23].
5757
* Harston, Jonathan Graham
5858
1. For his research work.
59-
2. For his technical documents about the Zilog Z80 [24,25,26].
59+
2. For his technical documents about the Zilog Z80 [24, 25, 26].
6060
3. For porting the "Z80 Instruction Set Exerciser" to the ZX Spectrum [27].
6161
* Helcmanovsky, Peter (Ped7g)
6262
1. For helping me to write the "IN-MEMPTR" test.
63-
2. For writing the "Z80 Block Flags Test" [1,28].
63+
2. For writing the "Z80 Block Flags Test" [1, 28].
6464
3. For writing the "Z80 CCF SCF Outcome Stability" test [28].
6565
4. For writing the "Z80 INT Skip" test [28].
6666
5. For his research on the unstable behavior of the `ccf/scf` instructions.
6767
6. For his invaluable help.
6868
* Iborra Debón, Víctor (Eremus)
6969
For validating tests on real hardware.
7070
* icebear
71-
For testing the behavior of MEMPTR on real hardware [8,9,10,11].
71+
For testing the behavior of MEMPTR on real hardware [8, 9, 10, 11].
7272
* ICEknight
7373
For validating tests on real hardware.
7474
* Kladov, Vladimir
75-
For deciphering the behavior of MEMPTR [8,9,10,11].
75+
For deciphering the behavior of MEMPTR [8, 9, 10, 11].
7676
* Krook, Magnus
7777
For validating tests on real hardware [1.3].
7878
* London, Matthew (mattinx)
7979
For validating tests on real hardware.
8080
* Martínez Cantero, Ricardo (Kyp)
8181
For validating tests on real hardware.
8282
* Molodtsov, Aleksandr
83-
For testing the behavior of MEMPTR on real hardware [8,9,10,11].
83+
For testing the behavior of MEMPTR on real hardware [8, 9, 10, 11].
8484
* Nair, Arjun
8585
For validating tests on real hardware [1].
8686
* Nicolás-González, César
@@ -95,8 +95,8 @@ Many thanks to the following individuals (in alphabetical order):
9595
For his research on the state of the registers after POWER-ON [29].
9696
* Rak, Patrik
9797
1. For improving the "Z80 Instruction Set Exerciser for Spectrum" [30].
98-
2. For deciphering the behavior of the `ccf/scf` instructions [15,30].
99-
3. For writing the "Zilog Z80 CPU Test Suite" [30,31].
98+
2. For deciphering the behavior of the `ccf/scf` instructions [15, 30].
99+
3. For writing the "Zilog Z80 CPU Test Suite" [30, 31].
100100
4. For his research on the unstable behavior of the `ccf/scf` instructions.
101101
* Rodríguez Jódar, Miguel Ángel (mcleod_ideafix)
102102
For his research on the state of the registers after POWER-ON/RESET [32].
@@ -105,14 +105,14 @@ Many thanks to the following individuals (in alphabetical order):
105105
* Sainz de Baranda y Romero, Manuel
106106
For teaching me programming and giving me my first computer.
107107
* Sánchez Ordiñana, José Ismael (Vaporatorius)
108-
For validating tests on real hardware [31.1,33].
108+
For validating tests on real hardware [31.1, 33].
109109
* Sevillano Mancilla, Marta (TheMartian)
110110
For validating tests on real hardware [14.1].
111111
* Stevenson, Dave
112112
1. For testing the special RESET on real hardware [13].
113113
2. For conducting low-level tests on real hardware [4.4].
114114
* Titov, Andrey (Titus)
115-
For his research on the `ccf/scf` instructions [2,3].
115+
For his research on the `ccf/scf` instructions [2, 3].
116116
* Vučenović, Zoran
117117
For writing the Pascal binding.
118118
* Weissflog, Andre (Floh)
@@ -122,7 +122,7 @@ Many thanks to the following individuals (in alphabetical order):
122122
* Wilkinson, Oli (evolutional)
123123
For validating tests on real hardware [1].
124124
* Wlodek
125-
For testing the behavior of MEMPTR on real hardware [8,9,10,11].
125+
For testing the behavior of MEMPTR on real hardware [8, 9, 10, 11].
126126
* Woodmass, Mark (Woody)
127127
1. For his invaluable contributions to the emuscene.
128128
2. For writing the "Z80 Test Suite" [15].
@@ -131,7 +131,7 @@ Many thanks to the following individuals (in alphabetical order):
131131
5. For writing the "EIHALT" test.
132132
* Young, Sean
133133
1. For his research work.
134-
2. For his technical documents about the Zilog Z80 [20,29,37].
134+
2. For his technical documents about the Zilog Z80 [20, 29, 37].
135135
* ZXGuesser
136136
For validating tests on real hardware.
137137

sources/Z80.c

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1525,7 +1525,7 @@ INSN(neg)
15251525
| `ccf` and `scf` are the only instructions in which Q affects the flags. |
15261526
| Patrik Rak cracked the behavior of YF and XF in 2012, confirming that they |
15271527
| are taken, respectively, from bits 5 and 3 of the result of `(Q ^ F) | A` |
1528-
| [1,2]. This applies to all Zilog Z80 models, both NMOS and CMOS. In 2018, |
1528+
| [1, 2]. This applies to all Zilog Z80 models, both NMOS and CMOS. In 2018, |
15291529
| David Banks (AKA hoglet) discovered that at least some ST CMOS models do |
15301530
| not set XF according to this formula and instead take this flag from bit 3 |
15311531
| of A, whereas NEC NMOS models take both flags from A [3]. |
@@ -1994,19 +1994,19 @@ INSN(out_vBYTE_a)
19941994
}
19951995

19961996

1997-
/*----------------------------------------------------------------------------.
1998-
| The `out (c),0` instruction behaves as `out (c),255` on the Zilog Z80 CMOS. |
1999-
| This was first discovered by Simon Cooke, who reported it on Usenet in 1996 |
2000-
| [1,2]. Later, in 2004, Colin Piggot rediscovered it with his SAM Coupé when |
2001-
| running a demo for SCPDU 6, coincidentally written by Simon Cooke [1]. In |
2002-
| 2008, this was once again rediscovered by the MSX community [1,3]. |
2003-
| |
2004-
| References: |
2005-
| 1. https://sinclair.wiki.zxnet.co.uk/wiki/Z80 |
2006-
| 2. https://groups.google.com/g/comp.os.cpm/c/HfSTFpaIkuU/m/KotvMWu3bZoJ |
2007-
| 3. https://msx.org/forum/development/msx-development/bug-z80-emulation-or- |
2008-
| tr-hw |
2009-
'============================================================================*/
1997+
/*-----------------------------------------------------------------------------.
1998+
| The `out (c),0` instruction behaves as `out (c),255` on the Zilog Z80 CMOS. |
1999+
| This was first discovered by Simon Cooke, who reported it on Usenet in 1996 |
2000+
| [1, 2]. Later, in 2004, Colin Piggot rediscovered it with his SAM Coupé when |
2001+
| running a demo for SCPDU 6, coincidentally written by Simon Cooke [1]. In |
2002+
| 2008, this was once again rediscovered by the MSX community [1, 3]. |
2003+
| |
2004+
| References: |
2005+
| 1. https://sinclair.wiki.zxnet.co.uk/wiki/Z80 |
2006+
| 2. https://groups.google.com/g/comp.os.cpm/c/HfSTFpaIkuU/m/KotvMWu3bZoJ |
2007+
| 3. https://msx.org/forum/development/msx-development/bug-z80-emulation-or-tr |
2008+
| -hw |
2009+
'=============================================================================*/
20102010

20112011
INSN(out_vc_0)
20122012
{
@@ -2286,21 +2286,21 @@ INSN(hook)
22862286

22872287
/* MARK: - Public Functions */
22882288

2289-
/*----------------------------------------------------------------------.
2290-
| On POWER-ON, the CPU zeroes PC, I and R, sets SP, IX, IY, AF, BC, DE, |
2291-
| HL, AF', BC', DE' and HL' to FFFFh [1,2], resets the interrupt enable |
2292-
| flip-flops (IFF1 and IFF2) and selects interrupt mode 0 [3]. On Zilog |
2293-
| NMOS models, F is sometimes set to FDh (NF reset) [1]. |
2294-
| |
2295-
| There is no information about the initial state of MEMPTR and Q, so |
2296-
| they are assumed to be 0. |
2297-
| |
2298-
| References: |
2299-
| 1. https://baltazarstudios.com/webshare/Z80-undocumented-behavior.htm |
2300-
| 2. https://worldofspectrum.org/forums/discussion/34574 |
2301-
| 3. Young, Sean (2005-09-18). "Undocumented Z80 Documented, The" |
2302-
| v0.91, p. 20. |
2303-
'======================================================================*/
2289+
/*-----------------------------------------------------------------------.
2290+
| On POWER-ON, the CPU zeroes PC, I and R, sets SP, IX, IY, AF, BC, DE, |
2291+
| HL, AF', BC', DE' and HL' to FFFFh [1, 2], resets the interrupt enable |
2292+
| flip-flops (IFF1 and IFF2) and selects interrupt mode 0 [3]. On Zilog |
2293+
| NMOS models, F is sometimes set to FDh (NF reset) [1]. |
2294+
| |
2295+
| There is no information about the initial state of MEMPTR and Q, so |
2296+
| they are assumed to be 0. |
2297+
| |
2298+
| References: |
2299+
| 1. https://baltazarstudios.com/webshare/Z80-undocumented-behavior.htm |
2300+
| 2. https://worldofspectrum.org/forums/discussion/34574 |
2301+
| 3. Young, Sean (2005-09-18). "Undocumented Z80 Documented, The" v0.91, |
2302+
| p. 20. |
2303+
'=======================================================================*/
23042304

23052305
Z80_API void z80_power(Z80 *self, zboolean state)
23062306
{
@@ -2313,9 +2313,9 @@ Z80_API void z80_power(Z80 *self, zboolean state)
23132313

23142314

23152315
/*-------------------------------------------------------------------------.
2316-
| The normal RESET zeroes PC, I, and R [1,2,3,4,5,6], resets the interrupt |
2317-
| enable flip-flops (IFF1 and IFF2) [1,2,3,4,5] and selects interrupt mode |
2318-
| 0 [1,2,3,4,7]. |
2316+
| The normal RESET zeroes PC, I, and R [1, 2, 3, 4, 5, 6], resets the |
2317+
| interrupt enable flip-flops (IFF1 and IFF2) [1, 2, 3, 4, 5] and selects |
2318+
| interrupt mode 0 [1, 2, 3, 4, 7]. |
23192319
| |
23202320
| References: |
23212321
| 1. Zilog (2016-09). "Z80 CPU User Manual" rev. 11, p. 6. |
@@ -2512,7 +2512,7 @@ Z80_API zusize z80_run(Z80 *self, zusize cycles)
25122512
| simulations [3]. |
25132513
| |
25142514
| In 2022, Manuel Sainz de Baranda y Goñi discovered that the CPU does not |
2515-
| accept a second NMI during the NMI response [4,5]. Therefore, it is not |
2515+
| accept a second NMI during the NMI response [4, 5]. Therefore, it is not |
25162516
| possible to chain two NMI responses in a row without executing at least |
25172517
| one instruction between them [3]. |
25182518
| |
@@ -2562,7 +2562,7 @@ Z80_API zusize z80_run(Z80 *self, zusize cycles)
25622562
| not accept the maskable interrupt if IFF1 and IFF2 do not have the same |
25632563
| state prior to the execution of the instruction, which can only be |
25642564
| caused by an earlier NMI response [1]. This behavior was rediscovered in |
2565-
| 2022 by Manuel Sainz de Baranda y Goñi [2,3]. |
2565+
| 2022 by Manuel Sainz de Baranda y Goñi [2, 3]. |
25662566
| |
25672567
| References: |
25682568
| 1. Weissflog, Andre (2021-12-17). "New Cycle-Stepped Z80 Emulator, A". |
@@ -2637,10 +2637,10 @@ Z80_API zusize z80_run(Z80 *self, zusize cycles)
26372637
| the instruction is fetched [1]. Each INTA M-cycle takes as many T-states |
26382638
| as its normal M1 counterpart (the opcode fetch M-cycle) plus the 2 wait |
26392639
| T-states mentioned above [1]. Subsequent bytes of the instruction are |
2640-
| fetched by using normal memory read M-cycles [1,2], during which the |
2640+
| fetched by using normal memory read M-cycles [1, 2], during which the |
26412641
| interrupting I/O device must still supply the data [2]. The PC register, |
26422642
| however, remains at its pre-interrupt state, not being incremented as a |
2643-
| result of the instruction fetch [1,2]. |
2643+
| result of the instruction fetch [1, 2]. |
26442644
| |
26452645
| References: |
26462646
| 1. Checked with "Visual Z80 Remix". |

0 commit comments

Comments
 (0)