From f59386f523027c2cb7ede4d5368deb2b89b3baf0 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sun, 23 Sep 2018 16:05:37 -0400 Subject: [PATCH] Adds just enough input logic that the Sega sound now plays. --- Machines/MasterSystem/MasterSystem.cpp | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/Machines/MasterSystem/MasterSystem.cpp b/Machines/MasterSystem/MasterSystem.cpp index 352a1649c..2ae11bae7 100644 --- a/Machines/MasterSystem/MasterSystem.cpp +++ b/Machines/MasterSystem/MasterSystem.cpp @@ -105,6 +105,34 @@ class ConcreteMachine: case CPU::Z80::PartialMachineCycle::Input: printf("Input %04x\n", address); + *cycle.value = 0xff; + switch(address & 0xc1) { + case 0x00: + printf("TODO: memory control\n"); + break; + case 0x01: + printf("TODO: I/O port control\n"); + break; + case 0x40: case 0x41: + printf("TODO: get current line\n"); + break; + case 0x80: case 0x81: + update_video(); + *cycle.value = vdp_->get_register(address); + z80_.set_interrupt_line(vdp_->get_interrupt_line()); + time_until_interrupt_ = vdp_->get_time_until_interrupt(); + break; + case 0xc0: + printf("TODO: I/O port A/N\n"); + break; + case 0xc1: + printf("TODO: I/O port B/misc\n"); + break; + + default: + printf("Clearly some sort of typo\n"); + break; + } break; case CPU::Z80::PartialMachineCycle::Output: