changeset 85:1db2a0b655d1

Fix Z80 BUSREQ/RESET implementation.
author Mike Pavone <pavone@retrodev.com>
date Wed, 26 Dec 2012 17:50:24 -0800
parents 2d1ae596db7a
children 3d3966c254b2
files runtime.S
diffstat 1 files changed, 13 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/runtime.S	Wed Dec 26 17:34:59 2012 -0800
+++ b/runtime.S	Wed Dec 26 17:50:24 2012 -0800
@@ -123,7 +123,7 @@
 	
 do_io_write:
 	call m68k_save_context
-	and $0x3FF, %edi
+	and $0x1FFF, %edi
 	mov %ecx, %edx
 	call io_write
 	mov %rax, %rsi
@@ -131,7 +131,7 @@
 	ret
 do_io_read:
 	mov %ecx, %edi
-	and $0x3FF, %edi
+	and $0x1FFF, %edi
 	call m68k_save_context
 	call io_read
 	mov %rax, %rsi
@@ -141,7 +141,7 @@
 
 do_io_write_w:
 	call m68k_save_context
-	and $0x3FF, %edi
+	and $0x1FFF, %edi
 	mov %ecx, %edx
 	call io_write_w
 	mov %rax, %rsi
@@ -149,7 +149,7 @@
 	ret
 do_io_read_w:
 	mov %ecx, %edi
-	and $0x3FF, %edi
+	and $0x1FFF, %edi
 	call m68k_save_context
 	call io_read_w
 	mov %rax, %rsi
@@ -171,6 +171,12 @@
 	jge workram_w
 	cmp $0xC00000, %edi
 	jge vdp_psg_w
+	cmp $0xA10000, %edi
+	jl not_io_w
+	cmp $0xA12000, %edi
+	jge not_io_w
+	jmp do_io_write_w
+not_io_w:
 	ret
 workram_w:
 	and $0xFFFF, %rdi
@@ -234,7 +240,7 @@
 	jge vdp_psg_wb
 	cmp $0xA10000, %edi
 	jl not_io_wb
-	cmp $0xA10300, %edi
+	cmp $0xA12000, %edi
 	jge not_io_wb
 	jmp do_io_write
 not_io_wb:
@@ -305,7 +311,7 @@
 	jge vdp_psg
 	cmp $0xA10000, %ecx
 	jl not_io
-	cmp $0xA10300, %ecx
+	cmp $0xA12000, %ecx
 	jge not_io
 	call do_io_read_w
 	ret
@@ -351,7 +357,7 @@
 	jge workram_b
 	cmp $0xA10000, %ecx
 	jl not_io_b
-	cmp $0xA10300, %ecx
+	cmp $0xA12000, %ecx
 	jge not_io_b
 	jmp do_io_read
 not_io_b: