summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime.S20
1 files changed, 13 insertions, 7 deletions
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: