diff options
-rw-r--r-- | runtime.S | 20 |
1 files changed, 13 insertions, 7 deletions
@@ -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: |