mirror of
https://github.com/holub/mame
synced 2025-04-23 08:49:55 +03:00
lisa: Add XTAL definitions (nw)
- Remove "kbcop" device. The COP-based keyboard seems to be mostly undocumented and not actually dumped. (Bitsavers has documentation for a 8748 keyboard.)
This commit is contained in:
parent
50f185042f
commit
6ebdef9e12
@ -91,6 +91,7 @@ const double XTAL::known_xtals[] = {
|
||||
3'686'400, /* 3.6864_MHz_XTAL Baud rate clock for MC68681 and similar UARTs */
|
||||
3'840'000, /* 3.84_MHz_XTAL Fairlight CMI Alphanumeric Keyboard */
|
||||
3'900'000, /* 3.9_MHz_XTAL Resonator - Used on some Fidelity boards */
|
||||
3'932'160, /* 3.93216_MHz_XTAL Apple Lisa COP421 (197-0016A) */
|
||||
4'000'000, /* 4_MHz_XTAL - */
|
||||
4'028'000, /* 4.028_MHz_XTAL Sony SMC-777 */
|
||||
4'032'000, /* 4.032_MHz_XTAL GRiD Compass modem board */
|
||||
@ -259,6 +260,7 @@ const double XTAL::known_xtals[] = {
|
||||
20'000'000, /* 20_MHz_XTAL - */
|
||||
20'160'000, /* 20.16_MHz_XTAL Nintendo 8080 */
|
||||
20'275'200, /* 20.2752_MHz_XTAL TRS-80 Model III */
|
||||
20'375'040, /* 20.37504_MHz_XTAL Apple Lisa dot clock (197-0019A) */
|
||||
20'625'000, /* 20.625_MHz_XTAL SM 7238 */
|
||||
20'790'000, /* 20.79_MHz_XTAL Blockade-hardware Gremlin games */
|
||||
21'000'000, /* 21_MHz_XTAL Lock-On pixel clock */
|
||||
|
@ -100,23 +100,19 @@ static const floppy_interface lisa_floppy_interface =
|
||||
void lisa_state::lisa(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
M68000(config, m_maincpu, 5093760); /* 20.37504 MHz / 4 */
|
||||
M68000(config, m_maincpu, 20.37504_MHz_XTAL / 4); // CPUCK is nominally 5 MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &lisa_state::lisa_map);
|
||||
m_maincpu->set_vblank_int(SCREEN_TAG, FUNC(lisa_state::lisa_interrupt));
|
||||
m_maincpu->set_vblank_int("screen", FUNC(lisa_state::lisa_interrupt));
|
||||
|
||||
cop421_cpu_device &cop(COP421(config, COP421_TAG, 3900000));
|
||||
cop.set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, true);
|
||||
|
||||
cop421_cpu_device &kbcop(COP421(config, KB_COP421_TAG, 3900000)); // ?
|
||||
kbcop.set_config(COP400_CKI_DIVISOR_16, COP400_CKO_OSCILLATOR_OUTPUT, true);
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
config.m_minimum_quantum = attotime::from_hz(60);
|
||||
|
||||
LS259(config, m_latch, 0); // U4E
|
||||
|
||||
LS259(config, m_latch); // U4E (CPU board)
|
||||
m_latch->q_out_cb<0>().set(FUNC(lisa_state::diag1_w));
|
||||
m_latch->q_out_cb<1>().set(FUNC(lisa_state::diag2_w));
|
||||
m_latch->q_out_cb<2>().set(FUNC(lisa_state::seg1_w));
|
||||
@ -127,11 +123,8 @@ 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_video_attributes(VIDEO_UPDATE_BEFORE_VBLANK);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
|
||||
m_screen->set_size(880, 380);
|
||||
m_screen->set_visarea(0, 720-1, 0, 364-1);
|
||||
m_screen->set_raw(20.37504_MHz_XTAL, 896, 0, 720, 380, 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");
|
||||
|
||||
@ -154,14 +147,14 @@ void lisa_state::lisa(machine_config &config)
|
||||
SOFTWARE_LIST(config, "disk_list").set_type("lisa", SOFTWARE_LIST_ORIGINAL_SYSTEM);
|
||||
|
||||
/* via */
|
||||
VIA6522(config, m_via0, 500000);
|
||||
VIA6522(config, m_via0, 20.37504_MHz_XTAL / 40); // CPU E clock (nominally 500 kHz)
|
||||
m_via0->writepa_handler().set(FUNC(lisa_state::COPS_via_out_a));
|
||||
m_via0->writepb_handler().set(FUNC(lisa_state::COPS_via_out_b));
|
||||
m_via0->ca2_handler().set(FUNC(lisa_state::COPS_via_out_ca2));
|
||||
m_via0->cb2_handler().set(FUNC(lisa_state::COPS_via_out_cb2));
|
||||
m_via0->irq_handler().set(FUNC(lisa_state::COPS_via_irq_func));
|
||||
|
||||
VIA6522(config, m_via1, 500000);
|
||||
VIA6522(config, m_via1, 20.37504_MHz_XTAL / 40); // CPU E clock (nominally 500 kHz)
|
||||
|
||||
SCC8530(config, m_scc, 7833600);
|
||||
}
|
||||
@ -363,10 +356,7 @@ ROM_START( lisa ) /* with twiggy drives, io40 i/o rom; technically any of the bo
|
||||
ROMX_LOAD("341-0175-a", 0x000000, 0x2000, NO_DUMP, ROM_SKIP(1) | ROM_BIOS(7)) // 341-0175-A LISA Bootrom Rev A (10/12/82?) (High)
|
||||
ROMX_LOAD("341-0176-a", 0x000001, 0x2000, NO_DUMP, ROM_SKIP(1) | ROM_BIOS(7)) // 341-0176-A LISA Bootrom Rev A (10/12/82?) (Low)
|
||||
|
||||
ROM_REGION( 0x400, COP421_TAG, 0 )
|
||||
ROM_LOAD("341-0064a.u9f", 0x000, 0x400, CRC(e6849910) SHA1(d46e67df75c9e3e773d20542fb9d5b1d2ac0fb9b))
|
||||
|
||||
ROM_REGION( 0x400, KB_COP421_TAG, 0 )
|
||||
ROM_REGION( 0x400, "iocop", 0 )
|
||||
ROM_LOAD("341-0064a.u9f", 0x000, 0x400, CRC(e6849910) SHA1(d46e67df75c9e3e773d20542fb9d5b1d2ac0fb9b))
|
||||
|
||||
ROM_REGION(0x2000,"fdccpu",0) // 6504 RAM and ROM
|
||||
@ -406,10 +396,7 @@ ROM_START( lisa2 ) /* internal apple codename was 'pepsi'; has one SSDD 400K dri
|
||||
ROMX_LOAD("341-0175-3b", 0x000000, 0x2000, NO_DUMP, ROM_SKIP(1) | ROM_BIOS(4)) // ?label? 341-0175-3b LISA Bootrom Rev 3B (9/8/83) (High)
|
||||
ROMX_LOAD("341-0176-3b", 0x000001, 0x2000, NO_DUMP, ROM_SKIP(1) | ROM_BIOS(4)) // ?label? 341-0176-3b LISA Bootrom Rev 3B (9/8/83) (Low)
|
||||
|
||||
ROM_REGION( 0x400, COP421_TAG, 0 )
|
||||
ROM_LOAD("341-0064a.u9f", 0x000, 0x400, CRC(e6849910) SHA1(d46e67df75c9e3e773d20542fb9d5b1d2ac0fb9b))
|
||||
|
||||
ROM_REGION( 0x400, KB_COP421_TAG, 0 )
|
||||
ROM_REGION( 0x400, "iocop", 0 )
|
||||
ROM_LOAD("341-0064a.u9f", 0x000, 0x400, CRC(e6849910) SHA1(d46e67df75c9e3e773d20542fb9d5b1d2ac0fb9b))
|
||||
|
||||
ROM_REGION(0x2000,"fdccpu",0) // 6504 RAM and ROM
|
||||
@ -439,10 +426,7 @@ ROM_START( lisa210 ) /* newer motherboard and i/o board; has io88 i/o rom, built
|
||||
ROMX_LOAD("341-0175-f", 0x000000, 0x2000, CRC(701b9dab) SHA1(b116e5fada7b9a51f1b6e25757b2814d1b2737a5), ROM_SKIP(1) | ROM_BIOS(2)) // 341-0175-F LISA Bootrom Rev F (12/21/83) (High)
|
||||
ROMX_LOAD("341-0176-f", 0x000001, 0x2000, CRC(036010b6) SHA1(ac93e6dbe4ce59396d7d191ee3e3e79a504e518f), ROM_SKIP(1) | ROM_BIOS(2)) // 341-0176-F LISA Bootrom Rev F (12/21/83) (Low)
|
||||
|
||||
ROM_REGION( 0x400, COP421_TAG, 0 )
|
||||
ROM_LOAD("341-0064a.u9f", 0x000, 0x400, CRC(e6849910) SHA1(d46e67df75c9e3e773d20542fb9d5b1d2ac0fb9b))
|
||||
|
||||
ROM_REGION( 0x400, KB_COP421_TAG, 0 )
|
||||
ROM_REGION( 0x400, "iocop", 0 )
|
||||
ROM_LOAD("341-0064a.u9f", 0x000, 0x400, CRC(e6849910) SHA1(d46e67df75c9e3e773d20542fb9d5b1d2ac0fb9b))
|
||||
|
||||
#if 1
|
||||
@ -467,10 +451,7 @@ ROM_START( macxl )
|
||||
ROM_LOAD16_BYTE("341-0347-a", 0x000000, 0x2000, CRC(80add605) SHA1(82215688b778d8c712a8186235f7981e3dc4dd7f)) // 341-0347-A Mac XL '3A' Bootrom Hi (boot3a.hi)
|
||||
ROM_LOAD16_BYTE("341-0346-a", 0x000001, 0x2000, CRC(edf5222f) SHA1(b0388ee8dbbc51a2d628473dc29b65ce913fcd76)) // 341-0346-A Mac XL '3A' Bootrom Lo (boot3a.lo)
|
||||
|
||||
ROM_REGION( 0x400, COP421_TAG, 0 )
|
||||
ROM_LOAD("341-0064a.u9f", 0x000, 0x400, CRC(e6849910) SHA1(d46e67df75c9e3e773d20542fb9d5b1d2ac0fb9b))
|
||||
|
||||
ROM_REGION( 0x400, KB_COP421_TAG, 0 )
|
||||
ROM_REGION( 0x400, "iocop", 0 )
|
||||
ROM_LOAD("341-0064a.u9f", 0x000, 0x400, CRC(e6849910) SHA1(d46e67df75c9e3e773d20542fb9d5b1d2ac0fb9b))
|
||||
|
||||
#if 1
|
||||
|
@ -24,10 +24,6 @@
|
||||
#include "emupal.h"
|
||||
#include "screen.h"
|
||||
|
||||
#define COP421_TAG "u9f"
|
||||
#define KB_COP421_TAG "kbcop"
|
||||
#define SCREEN_TAG "screen"
|
||||
|
||||
/* lisa MMU segment regs */
|
||||
struct real_mmu_entry
|
||||
{
|
||||
@ -129,7 +125,7 @@ public:
|
||||
m_io_mouse_x(*this, "MOUSE_X"),
|
||||
m_io_mouse_y(*this, "MOUSE_Y"),
|
||||
m_palette(*this, "palette"),
|
||||
m_screen(*this, SCREEN_TAG)
|
||||
m_screen(*this, "screen")
|
||||
{ }
|
||||
|
||||
void lisa(machine_config &config);
|
||||
|
Loading…
Reference in New Issue
Block a user