mirror of
https://github.com/holub/mame
synced 2025-04-23 00:39:36 +03:00
smc777: Correct master XTAL frequency; add undumped 8041A to configuration
This commit is contained in:
parent
36f358d2a3
commit
edbfe76b37
@ -109,7 +109,6 @@ const double XTAL::known_xtals[] = {
|
||||
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
|
||||
4'096'000, // 4.096_MHz_XTAL Used to drive OKI M9810 chips
|
||||
4'194'304, // 4.194304_MHz_XTAL Used to drive MC146818 / Nintendo Game Boy
|
||||
@ -420,6 +419,7 @@ const double XTAL::known_xtals[] = {
|
||||
32'147'000, // 32.147_MHz_XTAL Ampex 210+ 132-column display clock
|
||||
32'215'900, // 32.2159_MHz_XTAL Sega System 32, Sega Game Gear (close to 9x NTSC subcarrier which is 32.215905Mhz
|
||||
32'220'000, // 32.22_MHz_XTAL Typically used on 90's Data East PCBs
|
||||
32'223'800, // 32.2238_MHz_XTAL Sony SMC-777 (~2048x NTSC line rate)
|
||||
32'256'000, // 32.256_MHz_XTAL Hitachi MB-6890
|
||||
32'317'400, // 32.3174_MHz_XTAL DEC VT330, VT340
|
||||
32'530'470, // 32.53047_MHz_XTAL Seta 2
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "emu.h"
|
||||
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "cpu/mcs48/mcs48.h"
|
||||
#include "imagedev/floppy.h"
|
||||
#include "imagedev/snapquik.h"
|
||||
#include "machine/timer.h"
|
||||
@ -38,8 +39,6 @@
|
||||
|
||||
namespace {
|
||||
|
||||
#define MASTER_CLOCK 4.028_MHz_XTAL
|
||||
|
||||
#define mc6845_h_char_total (m_crtc_vreg[0]+1)
|
||||
#define mc6845_h_display (m_crtc_vreg[1])
|
||||
#define mc6845_h_sync_pos (m_crtc_vreg[2])
|
||||
@ -1104,11 +1103,15 @@ static void smc777_floppies(device_slot_interface &device)
|
||||
|
||||
void smc777_state::smc777(machine_config &config)
|
||||
{
|
||||
constexpr XTAL MASTER_CLOCK = 32.2238_MHz_XTAL;
|
||||
|
||||
/* basic machine hardware */
|
||||
Z80(config, m_maincpu, MASTER_CLOCK);
|
||||
Z80(config, m_maincpu, MASTER_CLOCK / 8); // nominally 4.028 MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &smc777_state::smc777_mem);
|
||||
m_maincpu->set_addrmap(AS_IO, &smc777_state::smc777_io);
|
||||
|
||||
I8041A(config, "mcu", 6_MHz_XTAL).set_disable();
|
||||
|
||||
/* video hardware */
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
@ -1122,14 +1125,14 @@ void smc777_state::smc777(machine_config &config)
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfxdecode_device::empty);
|
||||
|
||||
HD6845S(config, m_crtc, MASTER_CLOCK/2); /* HD68A45SP; unknown clock, hand tuned to get ~60 fps */
|
||||
HD6845S(config, m_crtc, MASTER_CLOCK / 16); // HD68A45SP; unknown clock, hand tuned to get ~60 fps
|
||||
m_crtc->set_screen(m_screen);
|
||||
m_crtc->set_show_border_area(true);
|
||||
m_crtc->set_char_width(8);
|
||||
m_crtc->out_vsync_callback().set(FUNC(smc777_state::vsync_w));
|
||||
|
||||
// floppy controller
|
||||
MB8876(config, m_fdc, 1_MHz_XTAL);
|
||||
MB8876(config, m_fdc, MASTER_CLOCK / 32); // divider not confirmed
|
||||
m_fdc->intrq_wr_callback().set(FUNC(smc777_state::fdc_intrq_w));
|
||||
m_fdc->drq_wr_callback().set(FUNC(smc777_state::fdc_drq_w));
|
||||
|
||||
@ -1143,7 +1146,7 @@ void smc777_state::smc777(machine_config &config)
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
SN76489A(config, "sn1", MASTER_CLOCK).add_route(ALL_OUTPUTS, "mono", 0.50); // unknown clock / divider
|
||||
SN76489A(config, "sn1", MASTER_CLOCK / 8).add_route(ALL_OUTPUTS, "mono", 0.50); // unknown clock / divider
|
||||
|
||||
BEEP(config, m_beeper, 300); // TODO: correct frequency
|
||||
m_beeper->add_route(ALL_OUTPUTS, "mono", 0.50);
|
||||
|
Loading…
Reference in New Issue
Block a user