diff options
author | Mike Pavone <pavone@retrodev.com> | 2013-06-16 13:25:45 -0700 |
---|---|---|
committer | Mike Pavone <pavone@retrodev.com> | 2013-06-16 13:25:45 -0700 |
commit | adcc84b8c3600bc6497c21ac10b1b8c85f264676 (patch) | |
tree | 7c6bfe67de04a7078778da609e013b90b870f61b | |
parent | 3ed865122438c1a45c54249b7296420f2607d77a (diff) |
Implement writes from 68K to Z80 bank register and make reads from port c control register return 0 again
-rw-r--r-- | blastem.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -520,6 +520,13 @@ m68k_context * io_write(uint32_t location, m68k_context * context, uint8_t value } else { ym_address_write_part1(gen->ym, value); } + } else if (location == 0x6000) { + gen->z80->bank_reg = (gen->z80->bank_reg >> 1 | value << 8) & 0x1FF; + if (gen->z80->bank_reg < 0x80) { + gen->z80->mem_pointers[1] = (gen->z80->bank_reg << 15) + ((char *)gen->z80->mem_pointers[2]); + } else { + gen->z80->mem_pointers[1] = NULL; + } } else { printf("68K write to unhandled Z80 address %X\n", location); exit(1); @@ -661,6 +668,9 @@ uint8_t io_read(uint32_t location, m68k_context * context) case 0x5: value = gamepad_2.control; break; + case 0x6://PORT C control + value = 0; + break; default: value = 0xFF; } |