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:
AJR 2019-02-08 19:42:25 -05:00
parent 50f185042f
commit 6ebdef9e12
3 changed files with 16 additions and 37 deletions

View File

@ -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 */

View File

@ -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

View File

@ -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);