Mercurial > repos > blastem
comparison runtime.S @ 153:42c031184e8a
Implement access to Z80 RAM
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Fri, 04 Jan 2013 21:47:09 -0800 |
parents | 79958b95526f |
children | 69ac23d42897 |
comparison
equal
deleted
inserted
replaced
152:79958b95526f | 153:42c031184e8a |
---|---|
173 mov 136(%rsi), %cx | 173 mov 136(%rsi), %cx |
174 ret | 174 ret |
175 | 175 |
176 do_io_write: | 176 do_io_write: |
177 call m68k_save_context | 177 call m68k_save_context |
178 and $0x1FFF, %edi | 178 and $0x1FFFF, %edi |
179 mov %ecx, %edx | 179 mov %ecx, %edx |
180 call io_write | 180 call io_write |
181 mov %rax, %rsi | 181 mov %rax, %rsi |
182 call m68k_load_context | 182 call m68k_load_context |
183 ret | 183 ret |
184 do_io_read: | 184 do_io_read: |
185 mov %ecx, %edi | 185 mov %ecx, %edi |
186 and $0x1FFF, %edi | 186 and $0x1FFFF, %edi |
187 call m68k_save_context | 187 call m68k_save_context |
188 call io_read | 188 call io_read |
189 mov %rax, %rsi | 189 mov %rax, %rsi |
190 call m68k_load_context | 190 call m68k_load_context |
191 mov 136(%rsi), %cl | 191 mov 136(%rsi), %cl |
192 ret | 192 ret |
193 | 193 |
194 do_io_write_w: | 194 do_io_write_w: |
195 call m68k_save_context | 195 call m68k_save_context |
196 and $0x1FFF, %edi | 196 and $0x1FFFF, %edi |
197 mov %ecx, %edx | 197 mov %ecx, %edx |
198 call io_write_w | 198 call io_write_w |
199 mov %rax, %rsi | 199 mov %rax, %rsi |
200 call m68k_load_context | 200 call m68k_load_context |
201 ret | 201 ret |
202 do_io_read_w: | 202 do_io_read_w: |
203 mov %ecx, %edi | 203 mov %ecx, %edi |
204 and $0x1FFF, %edi | 204 and $0x1FFFF, %edi |
205 call m68k_save_context | 205 call m68k_save_context |
206 call io_read_w | 206 call io_read_w |
207 mov %rax, %rsi | 207 mov %rax, %rsi |
208 call m68k_load_context | 208 call m68k_load_context |
209 mov 136(%rsi), %cx | 209 mov 136(%rsi), %cx |
221 jbe cart_w | 221 jbe cart_w |
222 cmp $0xE00000, %edi | 222 cmp $0xE00000, %edi |
223 jae workram_w | 223 jae workram_w |
224 cmp $0xC00000, %edi | 224 cmp $0xC00000, %edi |
225 jae vdp_psg_w | 225 jae vdp_psg_w |
226 cmp $0xA10000, %edi | 226 cmp $0xA00000, %edi |
227 jb not_io_w | 227 jb not_io_w |
228 cmp $0xA12000, %edi | 228 cmp $0xA12000, %edi |
229 jae not_io_w | 229 jae not_io_w |
230 jmp do_io_write_w | 230 jmp do_io_write_w |
231 not_io_w: | 231 not_io_w: |
298 jbe cart_wb | 298 jbe cart_wb |
299 cmp $0xE00000, %edi | 299 cmp $0xE00000, %edi |
300 jae workram_wb | 300 jae workram_wb |
301 cmp $0xC00000, %edi | 301 cmp $0xC00000, %edi |
302 jae vdp_psg_wb | 302 jae vdp_psg_wb |
303 cmp $0xA10000, %edi | 303 cmp $0xA00000, %edi |
304 jb not_io_wb | 304 jb not_io_wb |
305 cmp $0xA12000, %edi | 305 cmp $0xA12000, %edi |
306 jae not_io_wb | 306 jae not_io_wb |
307 jmp do_io_write | 307 jmp do_io_write |
308 not_io_wb: | 308 not_io_wb: |
371 jbe cart | 371 jbe cart |
372 cmp $0xE00000, %ecx | 372 cmp $0xE00000, %ecx |
373 jae workram | 373 jae workram |
374 cmp $0xC00000, %ecx | 374 cmp $0xC00000, %ecx |
375 jae vdp_psg | 375 jae vdp_psg |
376 cmp $0xA10000, %ecx | 376 cmp $0xA00000, %ecx |
377 jb not_io | 377 jb not_io |
378 cmp $0xA12000, %ecx | 378 cmp $0xA12000, %ecx |
379 jae not_io | 379 jae not_io |
380 call do_io_read_w | 380 call do_io_read_w |
381 ret | 381 ret |
419 jbe cart_b | 419 jbe cart_b |
420 cmp $0xE00000, %ecx | 420 cmp $0xE00000, %ecx |
421 jae workram_b | 421 jae workram_b |
422 cmp $0xC00000, %ecx | 422 cmp $0xC00000, %ecx |
423 jae vdp_psg_b | 423 jae vdp_psg_b |
424 cmp $0xA10000, %ecx | 424 cmp $0xA00000, %ecx |
425 jb not_io_b | 425 jb not_io_b |
426 cmp $0xA12000, %ecx | 426 cmp $0xA12000, %ecx |
427 jae not_io_b | 427 jae not_io_b |
428 jmp do_io_read | 428 jmp do_io_read |
429 not_io_b: | 429 not_io_b: |