changeset 2464:f9d5c137c74b

Implement neg and not instructions in new 68K core
author Michael Pavone <pavone@retrodev.com>
date Fri, 23 Feb 2024 23:09:20 -0800
parents 679c31768013
children b0408f38f464
files m68k.cpu
diffstat 1 files changed, 47 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/m68k.cpu	Fri Feb 23 23:09:07 2024 -0800
+++ b/m68k.cpu	Fri Feb 23 23:09:20 2024 -0800
@@ -1256,6 +1256,11 @@
 	m68k_fetch_dst_ea M R Z
 	sbc dst 0 dst Z
 	update_flags XNZVC
+	if Z = 2
+		if M = 0
+			cycles 2
+		end
+	end
 	m68k_save_dst Z
 	m68k_prefetch
 
@@ -1663,6 +1668,48 @@
 	ocall write_8
 	m68k_prefetch
 
+01000100ZZMMMRRR neg
+	invalid Z 3
+	invalid M 1
+	invalid M 7 R 2
+	invalid M 7 R 3
+	invalid M 7 R 4
+	invalid M 7 R 5
+	invalid M 7 R 6
+	invalid M 7 R 7
+	
+	m68k_fetch_dst_ea M R Z
+	dst:Z = -dst
+	update_flags XNZVC
+	if Z = 2
+		if M = 0
+			cycles 2
+		end
+	end
+	m68k_save_dst Z
+	m68k_prefetch
+
+01000110ZZMMMRRR not
+	invalid Z 3
+	invalid M 1
+	invalid M 7 R 2
+	invalid M 7 R 3
+	invalid M 7 R 4
+	invalid M 7 R 5
+	invalid M 7 R 6
+	invalid M 7 R 7
+	
+	m68k_fetch_dst_ea M R Z
+	dst:Z = ~dst
+	update_flags NZV0C0
+	if Z = 2
+		if M = 0
+			cycles 2
+		end
+	end
+	m68k_save_dst Z
+	m68k_prefetch
+
 0100111001110000 reset
 	if reset_handler
 	pcall reset_handler m68k_reset_handler context