Mercurial > repos > blastem
comparison runtime.S @ 57:bc3bc7a60c4e
Code in runtime for checking for VDP reads was using the wrong register. This is now fixed.
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 18 Dec 2012 22:19:52 -0800 |
parents | 3b79cbcf6846 |
children | 32650c77008a |
comparison
equal
deleted
inserted
replaced
56:a28b1dfe1af2 | 57:bc3bc7a60c4e |
---|---|
15 mov %rax, %rsi | 15 mov %rax, %rsi |
16 call m68k_load_context | 16 call m68k_load_context |
17 ret | 17 ret |
18 | 18 |
19 do_vdp_port_read: | 19 do_vdp_port_read: |
20 mov %ecx, %edi | |
20 call m68k_save_context | 21 call m68k_save_context |
21 call vdp_port_read | 22 call vdp_port_read |
22 mov %rax, %rsi | 23 mov %rax, %rsi |
23 call m68k_load_context | 24 call m68k_load_context |
24 mov 120(%rsi), %cx | 25 mov 120(%rsi), %cx |
26 | 27 |
27 bad_access_msg: | 28 bad_access_msg: |
28 .asciz "Program tried to access illegal 68K address %X\n" | 29 .asciz "Program tried to access illegal 68K address %X\n" |
29 | 30 |
30 .global m68k_write_word | 31 .global m68k_write_word |
31 .global vdp_psg_w | 32 .global try_fifo_write |
32 m68k_write_word: | 33 m68k_write_word: |
33 and $0xFFFFFF, %rdi | 34 and $0xFFFFFF, %rdi |
34 cmp $0x400000, %edi | 35 cmp $0x400000, %edi |
35 jle cart_w | 36 jle cart_w |
36 cmp $0xE00000, %edi | 37 cmp $0xE00000, %edi |
131 and $0xFFFFFF, %rcx | 132 and $0xFFFFFF, %rcx |
132 cmp $0x400000, %ecx | 133 cmp $0x400000, %ecx |
133 jle cart | 134 jle cart |
134 cmp $0xE00000, %ecx | 135 cmp $0xE00000, %ecx |
135 jge workram | 136 jge workram |
136 cmp $0xC00000, %edi | 137 cmp $0xC00000, %ecx |
137 jge vdp_psg | 138 jge vdp_psg |
138 xor %cx, %cx | 139 xor %cx, %cx |
139 dec %cx | 140 dec %cx |
140 jmp inccycles | 141 jmp inccycles |
141 workram: | 142 workram: |
142 and $0xFFFF, %rcx | 143 and $0xFFFF, %rcx |
143 mov (%r9, %rcx), %cx | 144 mov (%r9, %rcx), %cx |
144 jmp inccycles | 145 jmp inccycles |
145 vdp_psg: | 146 vdp_psg: |
146 test $0x2700E0, %edi | 147 test $0x2700E0, %ecx |
147 jnz crash | 148 jnz crash |
148 and $0x1F, %edi | 149 and $0x1F, %ecx |
149 jmp do_vdp_port_read | 150 jmp do_vdp_port_read |
150 cart: | 151 cart: |
151 mov (%r8, %rcx), %cx | 152 mov (%r8, %rcx), %cx |
152 inccycles: | 153 inccycles: |
153 add $4, %rax | 154 add $4, %rax |