changeset 1720:1648c685083a

Implemented DD/FD prefixes for and/or/xor in new Z80 core
author Michael Pavone <pavone@retrodev.com>
date Wed, 30 Jan 2019 22:11:12 -0800
parents fb5ae8c20b85
children 0e5df2bc0f9f
files z80.cpu
diffstat 1 files changed, 92 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/z80.cpu	Wed Jan 30 21:47:35 2019 -0800
+++ b/z80.cpu	Wed Jan 30 22:11:12 2019 -0800
@@ -840,10 +840,40 @@
 	and a main.R a
 	update_flags SZYH1PXN0C0
 	
+dd 10100100 and_ixh
+	lsr ix 8 scratch1
+	and scratch1 a a
+	update_flags SZYH1PXN0C0
+	
+dd 10100101 and_ixl
+	and ix a a
+	update_flags SZYH1PXN0C0
+	
+fd 10100100 and_iyh
+	lsr iy 8 scratch1
+	and scratch1 a a
+	update_flags SZYH1PXN0C0
+	
+fd 10100101 and_iyl
+	and iy a a
+	update_flags SZYH1PXN0C0
+	
 10100110 and_hl
 	z80_fetch_hl
 	and a scratch1 a
 	update_flags SZYH1PXN0C0
+	
+dd 10100110 and_ixd
+	z80_fetch_index ix
+	and a scratch1 a
+	update_flags SZYH1PXN0C0
+	cycles 3
+	
+fd 10100110 and_iyd
+	z80_fetch_index iy
+	and a scratch1 a
+	update_flags SZYH1PXN0C0
+	cycles 3
 
 11100110 and_immed
 	z80_fetch_immed
@@ -854,10 +884,40 @@
 	or a main.R a
 	update_flags SZYH0PXN0C0
 	
+dd 10110100 or_ixh
+	lsr ix 8 scratch1
+	or scratch1 a a
+	update_flags SZYH0PXN0C0
+	
+dd 10110101 or_ixl
+	or ix a a
+	update_flags SZYH0PXN0C0
+	
+fd 10110100 or_iyh
+	lsr iy 8 scratch1
+	or scratch1 a a
+	update_flags SZYH0PXN0C0
+	
+fd 10110101 or_iyl
+	or iy a a
+	update_flags SZYH0PXN0C0
+	
 10110110 or_hl
 	z80_fetch_hl
 	or a scratch1 a
 	update_flags SZYH0PXN0C0
+	
+dd 10110110 or_ixd
+	z80_fetch_index ix
+	or a scratch1 a
+	update_flags SZYH0PXN0C0
+	cycles 3
+	
+fd 10110110 or_iyd
+	z80_fetch_index iy
+	or a scratch1 a
+	update_flags SZYH0PXN0C0
+	cycles 3
 
 11110110 or_immed
 	z80_fetch_immed
@@ -868,10 +928,40 @@
 	xor a main.R a
 	update_flags SZYH0PXN0C0
 	
+dd 10101100 xor_ixh
+	lsr ix 8 scratch1
+	xor scratch1 a a
+	update_flags SZYH0PXN0C0
+	
+dd 10101101 xor_ixl
+	xor ix a a
+	update_flags SZYH0PXN0C0
+	
+fd 10101100 xor_iyh
+	lsr iy 8 scratch1
+	xor scratch1 a a
+	update_flags SZYH0PXN0C0
+	
+fd 10101101 xor_iyl
+	xor iy a a
+	update_flags SZYH0PXN0C0
+	
 10101110 xor_hl
 	z80_fetch_hl
 	xor a scratch1 a
 	update_flags SZYH0PXN0C0
+	
+dd 10101110 xor_ixd
+	z80_fetch_index ix
+	xor a scratch1 a
+	update_flags SZYH0PXN0C0
+	cycles 3
+	
+fd 10101110 xor_iyd
+	z80_fetch_index iy
+	xor a scratch1 a
+	update_flags SZYH0PXN0C0
+	cycles 3
 
 11101110 xor_immed
 	z80_fetch_immed
@@ -914,12 +1004,14 @@
 	mov scratch1 last_flag_result
 	cmp scratch1 a
 	update_flags SZHVN1C
+	cycles 3
 	
 fd 10111110 cp_iyd
 	z80_fetch_index iy
 	mov scratch1 last_flag_result
 	cmp scratch1 a
 	update_flags SZHVN1C
+	cycles 3
 
 11111110 cp_immed
 	z80_fetch_immed