changeset 405:042c4ba4a838

Implement writes from 68K to Z80 bank register and make reads from port c control register return 0 again
author Mike Pavone <pavone@retrodev.com>
date Sun, 16 Jun 2013 13:25:45 -0700
parents 88fa2ad53e64
children b1bc1947d949
files blastem.c
diffstat 1 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/blastem.c	Sun Jun 16 11:59:45 2013 -0700
+++ b/blastem.c	Sun Jun 16 13:25:45 2013 -0700
@@ -520,6 +520,13 @@
 				} 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 @@
 			case 0x5:
 				value = gamepad_2.control;
 				break;
+			case 0x6://PORT C control
+				value = 0;
+				break;
 			default:
 				value = 0xFF;
 			}