@@ -942,18 +942,20 @@ static Z_ALWAYS_INLINE zuint8 m(Z80 *self, zuint8 offset, zuint8 value)
942
942
| the Z80 CPU performs additional flag changes during this M-cycle and managed |
943
943
| to decipher the behaviors. All block instructions copy bits 13 and 11 of PCi |
944
944
| to YF and XF, respectively [1.1], but `inir`, `indr`, `otir` and `otdr` also |
945
- | modify HF and PF in a very complicated way [1.2]. These two flags are not |
946
- | commented here because the explanation would not be simpler than the code |
947
- | itself, so please refer to David Banks' paper [2] for more information. |
945
+ | modify HF and PF in a very complicated way [1.2]. These latter two flags are |
946
+ | not commented here because the explanation would not be simpler than the |
947
+ | code itself, so please refer to David Banks' paper [2] for more information. |
948
948
| |
949
949
| David Banks' discoveries have been corroborated thanks to Peter Helcmanovsky |
950
950
| (AKA Ped7g), who wrote a test that covers most of the cases that can be |
951
951
| verified on a ZX Spectrum [3]. |
952
952
| |
953
- | In 2022, rofl0r discovered that `otir` and `otdr` set MEMPTR to `PCi + 1` |
954
- | during the extra M-cycle [4]. This went unnoticed by the emulation community |
955
- | until 2023, when Manuel Sainz de Baranda y Goñi rediscovered this behaviour |
956
- | in `inir`, `indr`, `otir` and `otdr` [5]. |
953
+ | In 2022, rofl0r discovered that the instructions `otir` and `otdr` also set |
954
+ | MEMPTR to `PCi + 1` during the extra M-cycle [4]. However, this information |
955
+ | was not announced anywhere and went unnoticed by the emulation community |
956
+ | until 2023, when Manuel Sainz de Baranda y Goñi rediscovered the same |
957
+ | behaviour in all four I/O block instructions: `inir`, `indr`, `otir` and |
958
+ | `otdr` [5]. |
957
959
| |
958
960
| References: |
959
961
| 1. https://stardot.org.uk/forums/viewtopic.php?t=15464 |
0 commit comments