diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mame/mame.lst | 10 | ||||
| -rw-r--r-- | src/mame/rm/rm380z.cpp | 85 | ||||
| -rw-r--r-- | src/mame/rm/rm380z.h | 16 |
3 files changed, 66 insertions, 45 deletions
diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 45e2fdbfc65..3c89ebef9ac 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -38510,10 +38510,12 @@ rc702 // 1979 RC702 rc759 // 1984 RC759 @source:rm/rm380z.cpp -rm380z // 1978 RM380z with COS 4.0 firmware -rm380zhrg // 1978 RM380z with COS 4.0 and HRG -rm380z34d // 1978 RM380z with COS 3.4 firmware and casette -rm380z34e // 1978 RM380z with COS 3.4 firmware and casette +rm380z // 1978 RM380z with COS 4.0/M firmware +rm380zhrg // 1978 RM380z with COS 4.0/M and HRG +rm380zf // 1978 RM380z with COS 4.0/F firmware +rm380zfhrg // 1978 RM380z with COS 4.0/F and HRG +rm380z34d // 1978 RM380z with COS 3.4/F firmware and casette +rm380z34e // 1978 RM380z with COS 3.4/M firmware and casette rm480z // 1981 RM480z rm480za // 1981 RM480z diff --git a/src/mame/rm/rm380z.cpp b/src/mame/rm/rm380z.cpp index eb128437e70..b0816a175ba 100644 --- a/src/mame/rm/rm380z.cpp +++ b/src/mame/rm/rm380z.cpp @@ -249,7 +249,7 @@ uint32_t rm380z_state::screen_update_rm380z(screen_device &screen, bitmap_ind16 return 0; } -void rm380z_state::configure(machine_config &config) +void rm380z_state::base_configure(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 16_MHz_XTAL / 4); @@ -269,7 +269,6 @@ void rm380z_state::configure(machine_config &config) /* floppy disk */ FD1771(config, m_fdc, 16_MHz_XTAL / 16); - FLOPPY_CONNECTOR(config, m_floppy0, rm380z_floppies, "mds", floppy_image_device::default_mfm_floppy_formats).set_fixed(true); FLOPPY_CONNECTOR(config, m_floppy1, rm380z_floppies, "mds", floppy_image_device::default_mfm_floppy_formats).set_fixed(true); @@ -278,9 +277,18 @@ void rm380z_state::configure(machine_config &config) keyboard.set_keyboard_callback(FUNC(rm380z_state::keyboard_put)); } -void rm380z_state_cos34::configure(machine_config &config) +void rm380z_state::fds_configure() +{ + // FDS drives require a 2 MHz square wave clock frequency + m_fdc->set_unscaled_clock(16_MHz_XTAL / 8); + // change media type for floppy connectors + m_floppy0->set_default_option("fds"); + m_floppy1->set_default_option("fds"); +} + +void rm380z_state_cos34::rm380z34e(machine_config &config) { - rm380z_state::configure(config); + base_configure(config); /* cassette */ CASSETTE(config, m_cassette); @@ -294,34 +302,23 @@ void rm380z_state_cos34::configure(machine_config &config) m_rocg->set_palette(m_palette); } -void rm380z_state_cos34::configure_fds(machine_config &config) +void rm380z_state_cos40::rm380z(machine_config &config) { - rm380z_state_cos34::configure(config); - - m_floppy0->set_default_option("fds"); - m_floppy1->set_default_option("fds"); - - // FDS drives require a 2 MHz square wave clock frequency - m_fdc->set_unscaled_clock(16_MHz_XTAL / 8); -} - -void rm380z_state_cos40::configure(machine_config &config) -{ - rm380z_state::configure(config); + base_configure(config); SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.80); m_screen->set_raw(16_MHz_XTAL, 1024, 0, 640, 312, 0, 240); } -void rm380z_state_cos40_hrg::configure(machine_config &config) +void rm380z_state_cos40_hrg::rm380zhrg(machine_config &config) { - rm380z_state_cos40::configure(config); + rm380z(config); m_palette->set_init(FUNC(rm380z_state_cos40_hrg::palette_init)).set_entries(19); } -void rm480z_state::configure(machine_config &config) +void rm480z_state::rm480z(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 16_MHz_XTAL / 4); @@ -359,20 +356,36 @@ ROM_END ROM_START( rm380z ) // COS 4.0B/M ROM_REGION( 0x10000, RM380Z_MAINCPU_TAG, 0 ) - // I'm not sure of how those ROMs have been dumped. I don't know if those are good dumps or not. - ROM_LOAD( "cos40b-m.bin", 0x0000, 0x1000, BAD_DUMP CRC(1f0b3a5c) SHA1(0b29cb2a3b7eaa3770b34f08c4fd42844f42700f) ) - ROM_LOAD( "cos40b-m_f600-f9ff.bin", 0x1000, 0x0400, BAD_DUMP CRC(e3397d9d) SHA1(490a0c834b0da392daf782edc7d51ca8f0668b1a) ) - ROM_LOAD( "cos40b-m_1c00-1dff.bin", 0x1400, 0x0200, BAD_DUMP CRC(0f759f44) SHA1(9689c1c1faa62c56def999cbedbbb0c8d928dcff) ) + ROM_LOAD( "cos40b-m.bin", 0x0000, 0x1000, CRC(1f0b3a5c) SHA1(0b29cb2a3b7eaa3770b34f08c4fd42844f42700f) ) + ROM_LOAD( "cos40b-m_f600-f9ff.bin", 0x1000, 0x0400, CRC(e3397d9d) SHA1(490a0c834b0da392daf782edc7d51ca8f0668b1a) ) + ROM_LOAD( "cos40b-m_1c00-1dff.bin", 0x1400, 0x0200, CRC(0f759f44) SHA1(9689c1c1faa62c56def999cbedbbb0c8d928dcff) ) ROM_REGION( 0x0800, "chargen", 0 ) ROM_LOAD( "c-gen-22.bin", 0x0000, 0x0800, CRC(1b67127f) SHA1(289a919871d30c5e832d22244bcac1dcfd544baa) ) ROM_END ROM_START( rm380zhrg ) // COS 4.0B/M ROM_REGION( 0x10000, RM380Z_MAINCPU_TAG, 0 ) - // I'm not sure of how those ROMs have been dumped. I don't know if those are good dumps or not. - ROM_LOAD( "cos40b-m.bin", 0x0000, 0x1000, BAD_DUMP CRC(1f0b3a5c) SHA1(0b29cb2a3b7eaa3770b34f08c4fd42844f42700f) ) - ROM_LOAD( "cos40b-m_f600-f9ff.bin", 0x1000, 0x0400, BAD_DUMP CRC(e3397d9d) SHA1(490a0c834b0da392daf782edc7d51ca8f0668b1a) ) - ROM_LOAD( "cos40b-m_1c00-1dff.bin", 0x1400, 0x0200, BAD_DUMP CRC(0f759f44) SHA1(9689c1c1faa62c56def999cbedbbb0c8d928dcff) ) + ROM_LOAD( "cos40b-m.bin", 0x0000, 0x1000, CRC(1f0b3a5c) SHA1(0b29cb2a3b7eaa3770b34f08c4fd42844f42700f) ) + ROM_LOAD( "cos40b-m_f600-f9ff.bin", 0x1000, 0x0400, CRC(e3397d9d) SHA1(490a0c834b0da392daf782edc7d51ca8f0668b1a) ) + ROM_LOAD( "cos40b-m_1c00-1dff.bin", 0x1400, 0x0200, CRC(0f759f44) SHA1(9689c1c1faa62c56def999cbedbbb0c8d928dcff) ) + ROM_REGION( 0x0800, "chargen", 0 ) + ROM_LOAD( "c-gen-22.bin", 0x0000, 0x0800, CRC(1b67127f) SHA1(289a919871d30c5e832d22244bcac1dcfd544baa) ) +ROM_END + +ROM_START( rm380zf ) // COS 4.0B/F + ROM_REGION( 0x10000, RM380Z_MAINCPU_TAG, 0 ) + ROM_LOAD( "cos40b-f.bin", 0x0000, 0x1000, CRC(c4110957) SHA1(08d924c7a152ca102585520a987051bcad3fca3f) ) + ROM_LOAD( "cos40b-f_f600-f9ff.bin", 0x1000, 0x0400, CRC(3b983326) SHA1(4a5273ca196cb98f9bb262f3e8f13bf22c9ca11c) ) + ROM_LOAD( "cos40b-f_1c00-1dff.bin", 0x1400, 0x0200, CRC(0f759f44) SHA1(9689c1c1faa62c56def999cbedbbb0c8d928dcff) ) + ROM_REGION( 0x0800, "chargen", 0 ) + ROM_LOAD( "c-gen-22.bin", 0x0000, 0x0800, CRC(1b67127f) SHA1(289a919871d30c5e832d22244bcac1dcfd544baa) ) +ROM_END + +ROM_START( rm380zfhrg ) // COS 4.0B/F + ROM_REGION( 0x10000, RM380Z_MAINCPU_TAG, 0 ) + ROM_LOAD( "cos40b-f.bin", 0x0000, 0x1000, CRC(c4110957) SHA1(08d924c7a152ca102585520a987051bcad3fca3f) ) + ROM_LOAD( "cos40b-f_f600-f9ff.bin", 0x1000, 0x0400, CRC(3b983326) SHA1(4a5273ca196cb98f9bb262f3e8f13bf22c9ca11c) ) + ROM_LOAD( "cos40b-f_1c00-1dff.bin", 0x1400, 0x0200, CRC(0f759f44) SHA1(9689c1c1faa62c56def999cbedbbb0c8d928dcff) ) ROM_REGION( 0x0800, "chargen", 0 ) ROM_LOAD( "c-gen-22.bin", 0x0000, 0x0800, CRC(1b67127f) SHA1(289a919871d30c5e832d22244bcac1dcfd544baa) ) ROM_END @@ -401,10 +414,12 @@ ROM_END /* Driver */ -// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP(1978, rm380z, 0, 0, configure, rm380z, rm380z_state_cos40, driver_device::empty_init, "Research Machines", "RM-380Z, COS 4.0B", 0) -COMP(1978, rm380zhrg, rm380z, 0, configure, rm380zhrg, rm380z_state_cos40_hrg, driver_device::empty_init, "Research Machines", "RM-380Z, COS 4.0B with HRG", 0) -COMP(1978, rm380z34d, rm380z, 0, configure_fds, rm380z, rm380z_state_cos34, driver_device::empty_init, "Research Machines", "RM-380Z, COS 3.4D", MACHINE_NO_SOUND_HW) -COMP(1978, rm380z34e, rm380z, 0, configure, rm380z, rm380z_state_cos34, driver_device::empty_init, "Research Machines", "RM-380Z, COS 3.4E", MACHINE_NO_SOUND_HW) -COMP(1981, rm480z, rm380z, 0, configure, rm380z, rm480z_state, driver_device::empty_init, "Research Machines", "LINK RM-480Z (set 1)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) -COMP(1981, rm480za, rm380z, 0, configure, rm380z, rm480z_state, driver_device::empty_init, "Research Machines", "LINK RM-480Z (set 2)", MACHINE_NOT_WORKING | MACHINE_NO_SOUND) +// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS +COMP(1978, rm380z, 0, 0, rm380z, rm380z, rm380z_state_cos40, driver_device::empty_init, "Research Machines", "RM-380Z, COS 4.0B/M", 0) +COMP(1978, rm380zhrg, rm380z, 0, rm380zhrg, rm380zhrg, rm380z_state_cos40_hrg, driver_device::empty_init, "Research Machines", "RM-380Z, COS 4.0B/M with HRG", 0) +COMP(1978, rm380zf, 0, 0, rm380zf, rm380z, rm380z_state_cos40, driver_device::empty_init, "Research Machines", "RM-380Z, COS 4.0B/F", 0) +COMP(1978, rm380zfhrg, rm380zf, 0, rm380zfhrg, rm380zhrg, rm380z_state_cos40_hrg, driver_device::empty_init, "Research Machines", "RM-380Z, COS 4.0B/F with HRG", 0) +COMP(1978, rm380z34d, rm380z, 0, rm380z34d, rm380z, rm380z_state_cos34, driver_device::empty_init, "Research Machines", "RM-380Z, COS 3.4D/F", MACHINE_NO_SOUND_HW) +COMP(1978, rm380z34e, rm380z, 0, rm380z34e, rm380z, rm380z_state_cos34, driver_device::empty_init, "Research Machines", "RM-380Z, COS 3.4E/M", MACHINE_NO_SOUND_HW) +COMP(1981, rm480z, rm380z, 0, rm480z, rm380z, rm480z_state, driver_device::empty_init, "Research Machines", "LINK RM-480Z (set 1)", MACHINE_IS_SKELETON) +COMP(1981, rm480za, rm380z, 0, rm480za, rm380z, rm480z_state, driver_device::empty_init, "Research Machines", "LINK RM-480Z (set 2)", MACHINE_IS_SKELETON) diff --git a/src/mame/rm/rm380z.h b/src/mame/rm/rm380z.h index b86b63f1553..12f299e83d0 100644 --- a/src/mame/rm/rm380z.h +++ b/src/mame/rm/rm380z.h @@ -52,7 +52,8 @@ protected: static inline constexpr int RM380Z_SCREENROWS = 24; static inline constexpr int RM380Z_SCREENCOLS = 40; - void configure(machine_config &config); + void base_configure(machine_config &config); + void fds_configure(); void machine_reset() override; @@ -110,8 +111,8 @@ public: { } - void configure(machine_config &config); - void configure_fds(machine_config &config); + void rm380z34e(machine_config &config); + void rm380z34d(machine_config &config) { rm380z34e(config); fds_configure(); } protected: void machine_reset() override; @@ -155,7 +156,8 @@ public: { } - void configure(machine_config &config); + void rm380z(machine_config &config); + void rm380zf(machine_config &config) { rm380z(config); fds_configure(); } protected: template <int ROWS, int COLS> @@ -219,7 +221,8 @@ public: { } - void configure(machine_config &config); + void rm380zhrg(machine_config &config); + void rm380zfhrg(machine_config &config) { rm380zhrg(config); fds_configure(); } DECLARE_INPUT_CHANGED_MEMBER(monitor_changed); @@ -270,7 +273,8 @@ public: { } - void configure(machine_config &config); + void rm480z(machine_config &config); + void rm480za(machine_config &config) { rm480z(config); } protected: void machine_reset() override; |
