diff options
author | Michael Zapf <Michael.Zapf@mizapf.de> | 2019-04-18 22:31:15 +0200 |
---|---|---|
committer | Michael Zapf <Michael.Zapf@mizapf.de> | 2019-04-18 22:31:15 +0200 |
commit | 72a90d61d25ff55167705370d7ae61a69b4ffefa (patch) | |
tree | 0c4fa2d135c5b9292e86d9f49930b49781264503 | |
parent | 990e11598a14bdfc52a84d77d3e07d743e1d387b (diff) |
tmspoker: Added some comments for later resolution. (nw)
-rw-r--r-- | src/mame/drivers/tmspoker.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/mame/drivers/tmspoker.cpp b/src/mame/drivers/tmspoker.cpp index b68dcd14318..103c992b457 100644 --- a/src/mame/drivers/tmspoker.cpp +++ b/src/mame/drivers/tmspoker.cpp @@ -310,8 +310,14 @@ void tmspoker_state::tmspoker_palette(palette_device &palette) const INTERRUPT_GEN_MEMBER(tmspoker_state::tmspoker_interrupt) { - m_maincpu->set_input_line(INT_9980A_LEVEL1, ASSERT_LINE); //_and_vector(0, ASSERT_LINE, 3);//2=nmi 3,4,5,6 - m_maincpu->set_input_line(INT_9980A_LEVEL1, CLEAR_LINE); // MZ: do we need this? + m_maincpu->set_input_line(INT_9980A_LEVEL1, ASSERT_LINE); + // MZ: The TMS9980A uses level-triggered interrupts, so this + // interrupt must somehow be cleared later. Clearing the line + // immediately is not effective, since the interrupt is not latched + // and will be lost. + // In addition, the TMS99xx processors do not offer an interrupt + // acknowledge output, so this is possibly done by using a CRU port. + // Needs further investigation of the ROM contents. } @@ -340,6 +346,16 @@ void tmspoker_state::machine_reset() * Memory Map Information * *************************/ //59a + +// MZ: The driver locks up in this loop until it gets an interrupt on level 2. +// This is obviously missing. +// +// 0982: CLR @>2040 04E0 2040 +// 0986: MOV @>2040,@>2040 C820 2040 2040 +// 098C: JEQ >0986 13FC +// 098E: RT 045B +// + void tmspoker_state::tmspoker_map(address_map &map) { map.global_mask(0x3fff); |