(MESS) Systems Promoted from GAME_NOT_WORKING:

- Apple III [R. Belmont]
This commit is contained in:
R. Belmont 2014-02-14 04:14:26 +00:00
parent 5e32a2dec8
commit 2a7318eee3
3 changed files with 23 additions and 2 deletions

View File

@ -293,4 +293,4 @@ ROM_START(apple3)
ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
COMP( 1980, apple3, 0, 0, apple3, apple3, apple3_state, apple3, "Apple Computer", "Apple ///", GAME_NOT_WORKING )
COMP( 1980, apple3, 0, 0, apple3, apple3, apple3_state, apple3, "Apple Computer", "Apple ///", 0 )

View File

@ -112,6 +112,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(ay3600_data_ready_w);
bool m_sync;
bool m_rom_has_been_disabled;
UINT8 m_indir_opcode;
int m_indir_count;

View File

@ -346,9 +346,17 @@ void apple3_state::apple3_update_memory()
/* install bank 7 (F000-FFFF) */
if (m_via_0_a & 0x01)
{
m_bank7 = memregion("maincpu")->base();
}
else
{
m_rom_has_been_disabled = true;
m_bank7 = apple3_bankaddr(~0, 0x7000);
// if we had an IRQ waiting for RAM to be paged in...
apple3_irq_update();
}
}
@ -388,7 +396,18 @@ void apple3_state::apple3_irq_update()
{
if (m_via_1_irq || m_via_0_irq)
{
// printf(" asserting IRQ\n");
// HACK: SOS floppy driver enables ROM at Fxxx *before* trying to
// suppress IRQs. IRQ hits at inopportune time -> bad vector -> system crash.
// This breaks the Confidence Test, but the Confidence Test
// never disables the ROM so checking for that gets us
// working in all cases.
// Bonus points: for some reason this isn't a problem with -debug.
// m6502 heisenbug maybe?
if ((m_via_0_a & 0x01) && (m_rom_has_been_disabled))
{
return;
}
// printf(" setting IRQ\n");
m_maincpu->set_input_line(M6502_IRQ_LINE, ASSERT_LINE);
m_via_1->write_pa7(0); // this is active low
}
@ -424,6 +443,7 @@ MACHINE_RESET_MEMBER(apple3_state,apple3)
m_c040_time = 0;
m_strobe = 0;
m_lastchar = 0x0d;
m_rom_has_been_disabled = false;
}