mirror of
https://github.com/holub/mame
synced 2025-10-05 08:41:31 +03:00
lisa: Put back keyboard COP and add input that switches its code path; use get_fc instead of hacking into SR (nw)
This commit is contained in:
parent
ddb73dcb7b
commit
7c6f51641d
@ -106,6 +106,13 @@ void lisa_state::lisa(machine_config &config)
|
||||
|
||||
cop421_cpu_device &iocop(COP421(config, "iocop", 3.93216_MHz_XTAL)); // U9F (I/O board)
|
||||
iocop.set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, true);
|
||||
iocop.read_si().set_constant(1); // FIXME: actually tied to VIA CA2 but both pulled up to +5
|
||||
iocop.read_g().set_constant(15);
|
||||
|
||||
cop421_cpu_device &kbcop(COP421(config, "kbcop", 3932160)); // same clock as other COP?
|
||||
kbcop.set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, true);
|
||||
kbcop.read_si().set_constant(0);
|
||||
kbcop.read_g().set_constant(15);
|
||||
|
||||
M6504(config, m_fdc_cpu, 2000000); /* 16.000 MHz / 8 in when DIS asserted, 16.000 MHz / 9 otherwise (?) */
|
||||
m_fdc_cpu->set_addrmap(AS_PROGRAM, &lisa_state::lisa_fdc_map);
|
||||
@ -123,7 +130,7 @@ void lisa_state::lisa(machine_config &config)
|
||||
m_latch->q_out_cb<7>().set(FUNC(lisa_state::hdmsk_w));
|
||||
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_raw(20.37504_MHz_XTAL, 896, 0, 720, 380, 0, 364);
|
||||
m_screen->set_raw(20.37504_MHz_XTAL, 896, 0, 720, 379, 0, 364);
|
||||
//m_screen->set_raw(20_MHz_XTAL, 896, 0, 720, 374, 0, 360); // according to Lisa Hardware Reference Manual
|
||||
m_screen->set_screen_update(FUNC(lisa_state::screen_update_lisa));
|
||||
m_screen->set_palette("palette");
|
||||
@ -359,6 +366,9 @@ ROM_START( lisa ) /* with twiggy drives, io40 i/o rom; technically any of the bo
|
||||
ROM_REGION( 0x400, "iocop", 0 )
|
||||
ROM_LOAD("341-0064a.u9f", 0x000, 0x400, CRC(e6849910) SHA1(d46e67df75c9e3e773d20542fb9d5b1d2ac0fb9b))
|
||||
|
||||
ROM_REGION( 0x400, "kbcop", 0 )
|
||||
ROM_LOAD("341-0064a.u9f", 0x000, 0x400, CRC(e6849910) SHA1(d46e67df75c9e3e773d20542fb9d5b1d2ac0fb9b))
|
||||
|
||||
ROM_REGION(0x2000,"fdccpu",0) // 6504 RAM and ROM
|
||||
// note: other ?prototype? revisions of this rom for the lisa probably exist as well
|
||||
ROM_LOAD( "341-0138f.bin", 0x001000, 0x001000, CRC(edd8d560) SHA1(872211d21386cd9625b3735d7682e2b2ecff05b4) )
|
||||
@ -399,6 +409,9 @@ ROM_START( lisa2 ) /* internal apple codename was 'pepsi'; has one SSDD 400K dri
|
||||
ROM_REGION( 0x400, "iocop", 0 )
|
||||
ROM_LOAD("341-0064a.u9f", 0x000, 0x400, CRC(e6849910) SHA1(d46e67df75c9e3e773d20542fb9d5b1d2ac0fb9b))
|
||||
|
||||
ROM_REGION( 0x400, "kbcop", 0 )
|
||||
ROM_LOAD("341-0064a.u9f", 0x000, 0x400, CRC(e6849910) SHA1(d46e67df75c9e3e773d20542fb9d5b1d2ac0fb9b))
|
||||
|
||||
ROM_REGION(0x2000,"fdccpu",0) // 6504 RAM and ROM
|
||||
ROM_LOAD("341-0290-b", 0x1000, 0x1000, CRC(bc6364f1) SHA1(f3164923330a51366a06d9d8a4a01ec7b0d3a8aa)) // 341-0290-B LISA 2/5 Disk Rom (ioa8), supports profile on external port
|
||||
|
||||
@ -429,6 +442,9 @@ ROM_START( lisa210 ) /* newer motherboard and i/o board; has io88 i/o rom, built
|
||||
ROM_REGION( 0x400, "iocop", 0 )
|
||||
ROM_LOAD("341-0064a.u9f", 0x000, 0x400, CRC(e6849910) SHA1(d46e67df75c9e3e773d20542fb9d5b1d2ac0fb9b))
|
||||
|
||||
ROM_REGION( 0x400, "kbcop", 0 )
|
||||
ROM_LOAD("341-0064a.u9f", 0x000, 0x400, CRC(e6849910) SHA1(d46e67df75c9e3e773d20542fb9d5b1d2ac0fb9b))
|
||||
|
||||
#if 1
|
||||
ROM_REGION(0x2000,"fdccpu", 0) // 6504 RAM and ROM
|
||||
ROM_LOAD("341-0281-d", 0x1000, 0x1000, CRC(e343fe74) SHA1(a0e484ead2d2315fca261f39fff2f211ff61b0ef)) // 341-0281-D LISA 2/10 Disk Rom (io88), supports widget on internal port
|
||||
@ -454,6 +470,9 @@ ROM_START( macxl )
|
||||
ROM_REGION( 0x400, "iocop", 0 )
|
||||
ROM_LOAD("341-0064a.u9f", 0x000, 0x400, CRC(e6849910) SHA1(d46e67df75c9e3e773d20542fb9d5b1d2ac0fb9b))
|
||||
|
||||
ROM_REGION( 0x400, "kbcop", 0 )
|
||||
ROM_LOAD("341-0064a.u9f", 0x000, 0x400, CRC(e6849910) SHA1(d46e67df75c9e3e773d20542fb9d5b1d2ac0fb9b))
|
||||
|
||||
#if 1
|
||||
ROM_REGION(0x2000,"fdccpu", 0) // 6504 RAM and ROM
|
||||
ROM_LOAD("341-0281-d", 0x1000, 0x1000, CRC(e343fe74) SHA1(a0e484ead2d2315fca261f39fff2f211ff61b0ef)) // 341-0281-D LISA 2/10 Disk Rom (io88), supports widget on internal port
|
||||
|
@ -799,7 +799,7 @@ DIRECT_UPDATE_HANDLER (lisa_OPbaseoverride)
|
||||
|
||||
}
|
||||
|
||||
if (m_maincpu->state_int(M68K_SR) & 0x2000)
|
||||
if (BIT(m_maincpu->get_fc(), 2))
|
||||
{
|
||||
/* supervisor mode -> force register file 0 */
|
||||
the_seg = 0;
|
||||
@ -1267,7 +1267,7 @@ READ16_MEMBER(lisa_state::lisa_r)
|
||||
}
|
||||
}
|
||||
|
||||
if (m_maincpu->state_int(M68K_SR) & 0x2000)
|
||||
if (BIT(m_maincpu->get_fc(), 2))
|
||||
/* supervisor mode -> force register file 0 */
|
||||
the_seg = 0;
|
||||
|
||||
@ -1473,7 +1473,7 @@ WRITE16_MEMBER(lisa_state::lisa_w)
|
||||
}
|
||||
}
|
||||
|
||||
if (m_maincpu->state_int(M68K_SR) & 0x2000)
|
||||
if (BIT(m_maincpu->get_fc(), 2))
|
||||
/* supervisor mode -> force register file 0 */
|
||||
the_seg = 0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user