From 448658907c7a8f6caa8ea785d2eae8ea24471b30 Mon Sep 17 00:00:00 2001 From: Mike Pavone Date: Wed, 26 Dec 2012 17:50:24 -0800 Subject: Fix Z80 BUSREQ/RESET implementation. --- runtime.S | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'runtime.S') diff --git a/runtime.S b/runtime.S index 7d7b7a3..9237ac9 100644 --- a/runtime.S +++ b/runtime.S @@ -123,7 +123,7 @@ do_vdp_port_read: 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 @@ do_io_write: 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_read: 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 @@ do_io_write_w: 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 @@ m68k_write_word: 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 @@ m68k_write_byte: 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 @@ m68k_read_word_scratch1: 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 @@ m68k_read_byte_scratch1: 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: -- cgit v1.2.3