summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2020-06-06 02:44:07 +1000
committer Robbbert <Robbbert@users.noreply.github.com>2020-06-06 02:44:07 +1000
commit88a46a4a88be894c9f4e7402ad0e5306e1919d58 (patch)
tree3f72a70d101c580f7cecf51e0a1a88ce668816d7 /src/mame/drivers
parent2fd4687debf3efec1d7c6bc04cf49a154a1a46b4 (diff)
(nw) pro80,pyl601,pipbug: cleanup
Diffstat (limited to 'src/mame/drivers')
-rw-r--r--src/mame/drivers/pipbug.cpp26
-rw-r--r--src/mame/drivers/pro80.cpp46
-rw-r--r--src/mame/drivers/pyl601.cpp47
3 files changed, 71 insertions, 48 deletions
diff --git a/src/mame/drivers/pipbug.cpp b/src/mame/drivers/pipbug.cpp
index 2fe0274194d..863620d4232 100644
--- a/src/mame/drivers/pipbug.cpp
+++ b/src/mame/drivers/pipbug.cpp
@@ -66,6 +66,7 @@ public:
void pipbug(machine_config &config);
private:
+ virtual void machine_start() override;
void pipbug_ctrl_w(u8 data);
DECLARE_READ_LINE_MEMBER(serial_r);
TIMER_DEVICE_CALLBACK_MEMBER(kansas_r);
@@ -73,8 +74,8 @@ private:
required_device<s2650_device> m_maincpu;
required_device<cassette_image_device> m_cass;
DECLARE_QUICKLOAD_LOAD_MEMBER(quickload_cb);
- void pipbug_data(address_map &map);
- void pipbug_mem(address_map &map);
+ void data_map(address_map &map);
+ void mem_map(address_map &map);
u8 m_cass_data[4];
bool m_cassold, m_cassinbit;
};
@@ -113,14 +114,21 @@ READ_LINE_MEMBER( pipbug_state::serial_r )
return m_rs232->rxd_r() & m_cassinbit;
}
-void pipbug_state::pipbug_mem(address_map &map)
+void pipbug_state::machine_start()
+{
+ save_pointer(NAME(m_cass_data), 4);
+ save_item(NAME(m_cassold));
+ save_item(NAME(m_cassinbit));
+}
+
+void pipbug_state::mem_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x03ff).rom();
map(0x0400, 0x7fff).ram();
}
-void pipbug_state::pipbug_data(address_map &map)
+void pipbug_state::data_map(address_map &map)
{
// map.unmap_value_high();
map(S2650_CTRL_PORT, S2650_CTRL_PORT).w(FUNC(pipbug_state::pipbug_ctrl_w));
@@ -146,7 +154,7 @@ QUICKLOAD_LOAD_MEMBER(pipbug_state::quickload_cb)
int quick_addr = 0x440;
int exec_addr;
int quick_length;
- std::vector<uint8_t> quick_data;
+ std::vector<u8> quick_data;
int read_;
image_init_result result = image_init_result::FAIL;
@@ -207,8 +215,8 @@ void pipbug_state::pipbug(machine_config &config)
{
/* basic machine hardware */
S2650(config, m_maincpu, XTAL(1'000'000));
- m_maincpu->set_addrmap(AS_PROGRAM, &pipbug_state::pipbug_mem);
- m_maincpu->set_addrmap(AS_DATA, &pipbug_state::pipbug_data);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pipbug_state::mem_map);
+ m_maincpu->set_addrmap(AS_DATA, &pipbug_state::data_map);
m_maincpu->flag_handler().set("rs232", FUNC(rs232_port_device::write_txd));
m_maincpu->sense_handler().set(FUNC(pipbug_state::serial_r));
@@ -231,11 +239,11 @@ void pipbug_state::pipbug(machine_config &config)
/* ROM definition */
ROM_START( pipbug )
- ROM_REGION( 0x8000, "maincpu", ROMREGION_ERASEFF )
+ ROM_REGION( 0x0400, "maincpu", 0 )
ROM_LOAD( "pipbug.rom", 0x0000, 0x0400, CRC(f242b93e) SHA1(f82857cc882e6b5fc9f00b20b375988024f413ff))
ROM_END
/* Driver */
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 1979, pipbug, 0, 0, pipbug, pipbug, pipbug_state, empty_init, "Signetics", "PIPBUG", MACHINE_NO_SOUND_HW )
+COMP( 1979, pipbug, 0, 0, pipbug, pipbug, pipbug_state, empty_init, "Signetics", "PIPBUG", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/pro80.cpp b/src/mame/drivers/pro80.cpp
index af705a28c6e..000d0413d60 100644
--- a/src/mame/drivers/pro80.cpp
+++ b/src/mame/drivers/pro80.cpp
@@ -47,18 +47,19 @@ public:
void pro80(machine_config &config);
private:
- void digit_w(uint8_t data);
- void segment_w(uint8_t data);
- uint8_t kp_r();
+ void digit_w(u8 data);
+ void segment_w(u8 data);
+ u8 kp_r();
TIMER_DEVICE_CALLBACK_MEMBER(kansas_r);
- void pro80_io(address_map &map);
- void pro80_mem(address_map &map);
+ void io_map(address_map &map);
+ void mem_map(address_map &map);
- uint8_t m_digit_sel;
- uint8_t m_cass_in;
- uint16_t m_cass_data[4];
- void machine_reset() override;
+ u8 m_digit_sel;
+ u8 m_cass_in;
+ u16 m_cass_data[4];
+ virtual void machine_reset() override;
+ virtual void machine_start() override;
required_device<cpu_device> m_maincpu;
required_device<cassette_image_device> m_cass;
required_ioport_array<6> m_io_keyboard;
@@ -68,7 +69,7 @@ private:
TIMER_DEVICE_CALLBACK_MEMBER( pro80_state::kansas_r )
{
m_cass_data[1]++;
- uint8_t cass_ws = (m_cass->input() > +0.03) ? 1 : 0;
+ u8 cass_ws = (m_cass->input() > +0.03) ? 1 : 0;
if (cass_ws != m_cass_data[0])
{
@@ -79,7 +80,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( pro80_state::kansas_r )
}
}
-void pro80_state::digit_w(uint8_t data)
+void pro80_state::digit_w(u8 data)
{
// --xx xxxx digit select
// -x-- ---- cassette out
@@ -88,7 +89,7 @@ void pro80_state::digit_w(uint8_t data)
m_cass->output( BIT(data, 6) ? -1.0 : +1.0);
}
-void pro80_state::segment_w(uint8_t data)
+void pro80_state::segment_w(u8 data)
{
if (m_digit_sel)
{
@@ -100,9 +101,9 @@ void pro80_state::segment_w(uint8_t data)
}
}
-uint8_t pro80_state::kp_r()
+u8 pro80_state::kp_r()
{
- uint8_t data = 0x0f;
+ u8 data = 0x0f;
for (u8 i = 0; i < 6; i++)
if (!BIT(m_digit_sel, i))
@@ -114,7 +115,7 @@ uint8_t pro80_state::kp_r()
return data;
}
-void pro80_state::pro80_mem(address_map &map)
+void pro80_state::mem_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x03ff).rom();
@@ -122,7 +123,7 @@ void pro80_state::pro80_mem(address_map &map)
map(0x1400, 0x17ff).ram(); // 2nd RAM is optional
}
-void pro80_state::pro80_io(address_map &map)
+void pro80_state::io_map(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
@@ -172,12 +173,19 @@ void pro80_state::machine_reset()
m_cass_in = 0;
}
+void pro80_state::machine_start()
+{
+ save_item(NAME(m_digit_sel));
+ save_item(NAME(m_cass_in));
+ save_pointer(NAME(m_cass_data) ,4);
+}
+
void pro80_state::pro80(machine_config &config)
{
/* basic machine hardware */
Z80(config, m_maincpu, XTAL(4'000'000) / 2);
- m_maincpu->set_addrmap(AS_PROGRAM, &pro80_state::pro80_mem);
- m_maincpu->set_addrmap(AS_IO, &pro80_state::pro80_io);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pro80_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &pro80_state::io_map);
/* video hardware */
config.set_default_layout(layout_pro80);
@@ -205,4 +213,4 @@ ROM_END
/* Driver */
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 1981, pro80, 0, 0, pro80, pro80, pro80_state, empty_init, "Protec", "Pro-80", MACHINE_NOT_WORKING )
+COMP( 1981, pro80, 0, 0, pro80, pro80, pro80_state, empty_init, "Protec", "Pro-80", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/pyl601.cpp b/src/mame/drivers/pyl601.cpp
index de0c1b06f1c..e20146877e1 100644
--- a/src/mame/drivers/pyl601.cpp
+++ b/src/mame/drivers/pyl601.cpp
@@ -90,10 +90,10 @@ private:
uint8_t selectedline(uint16_t data);
virtual void machine_reset() override;
- virtual void video_start() override;
+ virtual void machine_start() override;
INTERRUPT_GEN_MEMBER(pyl601_interrupt);
DECLARE_FLOPPY_FORMATS( floppy_formats );
- void pyl601_mem(address_map &map);
+ void mem_map(address_map &map);
uint8_t m_rom_page;
uint32_t m_vdisk_addr;
@@ -264,7 +264,7 @@ uint8_t pyl601_state::floppy_r()
return m_floppy_ctrl;
}
-void pyl601_state::pyl601_mem(address_map &map)
+void pyl601_state::mem_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0xbfff).bankrw("bank1");
@@ -395,14 +395,21 @@ void pyl601_state::machine_reset()
membank("bank2")->set_base(ram + 0xc000);
membank("bank3")->set_base(ram + 0xe000);
membank("bank4")->set_base(ram + 0xe700);
- membank("bank5")->set_base(memregion("maincpu")->base() + 0xf000);
+ membank("bank5")->set_base(memregion("maincpu")->base());
membank("bank6")->set_base(ram + 0xf000);
m_maincpu->reset();
}
-void pyl601_state::video_start()
+void pyl601_state::machine_start()
{
+ save_item(NAME(m_rom_page));
+ save_item(NAME(m_vdisk_addr));
+ save_item(NAME(m_key_code));
+ save_item(NAME(m_keyboard_clk));
+ save_item(NAME(m_video_mode));
+ save_item(NAME(m_tick50_mark));
+ save_item(NAME(m_floppy_ctrl));
}
MC6845_UPDATE_ROW( pyl601_state::pyl601_update_row )
@@ -548,7 +555,7 @@ void pyl601_state::pyl601(machine_config &config)
{
/* basic machine hardware */
M6800(config, m_maincpu, 1_MHz_XTAL);
- m_maincpu->set_addrmap(AS_PROGRAM, &pyl601_state::pyl601_mem);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pyl601_state::mem_map);
m_maincpu->set_vblank_int("screen", FUNC(pyl601_state::pyl601_interrupt));
/* video hardware */
@@ -594,42 +601,42 @@ void pyl601_state::pyl601a(machine_config &config)
/* ROM definition */
ROM_START( pyl601 )
- ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
- ROM_LOAD( "bios.rom", 0xf000, 0x1000, CRC(41fe4c4b) SHA1(d8ca92aea0eb283e8d7779cb976bcdfa03e81aea))
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "bios.rom", 0x0000, 0x1000, CRC(41fe4c4b) SHA1(d8ca92aea0eb283e8d7779cb976bcdfa03e81aea))
ROM_REGION(0x0800, "chargen", 0)
ROM_LOAD( "video.rom", 0x0000, 0x0800, CRC(1c23ba43) SHA1(eb1cfc139858abd0aedbbf3d523f8ba55d27a11d))
- ROM_REGION(0x50000, "romdisk", ROMREGION_ERASEFF)
+ ROM_REGION(0x50000, "romdisk", 0 )
ROM_LOAD( "rom0.rom", 0x00000, 0x10000, CRC(60103920) SHA1(ee5b4ee5b513c4a0204da751e53d63b8c6c0aab9))
ROM_LOAD( "rom1.rom", 0x10000, 0x10000, CRC(cb4a9b22) SHA1(dd09e4ba35b8d1a6f60e6e262aaf2f156367e385))
ROM_LOAD( "rom2.rom", 0x20000, 0x08000, CRC(0b7684bf) SHA1(c02ad1f2a6f484cd9d178d8b060c21c0d4e53442))
- ROM_COPY("romdisk", 0x20000, 0x28000, 0x08000)
+ ROM_COPY( "romdisk", 0x20000, 0x28000, 0x08000)
ROM_LOAD( "rom3.rom", 0x30000, 0x08000, CRC(e4a86dfa) SHA1(96e6bb9ffd66f81fca63bf7491fbba81c4ff1fd2))
- ROM_COPY("romdisk", 0x30000, 0x38000, 0x08000)
+ ROM_COPY( "romdisk", 0x30000, 0x38000, 0x08000)
ROM_LOAD( "rom4.rom", 0x40000, 0x08000, CRC(d88ac21d) SHA1(022db11fdcf8db81ce9efd9cd9fa50ebca88e79e))
- ROM_COPY("romdisk", 0x40000, 0x48000, 0x08000)
+ ROM_COPY( "romdisk", 0x40000, 0x48000, 0x08000)
ROM_REGION(0x0800, "keyboard", 0)
ROM_LOAD( "keyboard.rom", 0x0000, 0x0800, CRC(41fbe5ca) SHA1(875adaef53bc37e92ad0b6b6ee3d8fd28344d358))
ROM_END
ROM_START( pyl601a )
- ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
- ROM_LOAD( "bios_a.rom", 0xf000, 0x1000, CRC(e018b11e) SHA1(884d59abd5fa5af1295d1b5a53693facc7945b63))
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "bios_a.rom", 0x0000, 0x1000, CRC(e018b11e) SHA1(884d59abd5fa5af1295d1b5a53693facc7945b63))
ROM_REGION(0x1000, "chargen", 0)
ROM_LOAD( "video_a.rom", 0x0000,0x1000, CRC(00fa4077) SHA1(d39d15969a08bdb768d08bea4ec9a9cb498232fd))
- ROM_REGION(0x50000, "romdisk", ROMREGION_ERASEFF)
+ ROM_REGION(0x50000, "romdisk", 0 )
ROM_LOAD( "rom0.rom", 0x00000, 0x10000, CRC(60103920) SHA1(ee5b4ee5b513c4a0204da751e53d63b8c6c0aab9))
ROM_LOAD( "rom1.rom", 0x10000, 0x10000, CRC(cb4a9b22) SHA1(dd09e4ba35b8d1a6f60e6e262aaf2f156367e385))
ROM_LOAD( "rom2.rom", 0x20000, 0x08000, CRC(0b7684bf) SHA1(c02ad1f2a6f484cd9d178d8b060c21c0d4e53442))
- ROM_COPY("romdisk", 0x20000, 0x28000, 0x08000)
+ ROM_COPY( "romdisk", 0x20000, 0x28000, 0x08000)
ROM_LOAD( "rom3.rom", 0x30000, 0x08000, CRC(e4a86dfa) SHA1(96e6bb9ffd66f81fca63bf7491fbba81c4ff1fd2))
- ROM_COPY("romdisk", 0x30000, 0x38000, 0x08000)
+ ROM_COPY( "romdisk", 0x30000, 0x38000, 0x08000)
ROM_LOAD( "rom4.rom", 0x40000, 0x08000, CRC(d88ac21d) SHA1(022db11fdcf8db81ce9efd9cd9fa50ebca88e79e))
- ROM_COPY("romdisk", 0x40000, 0x48000, 0x08000)
+ ROM_COPY( "romdisk", 0x40000, 0x48000, 0x08000)
ROM_REGION(0x0800, "keyboard", 0)
ROM_LOAD( "keyboard.rom", 0x0000, 0x0800, CRC(41fbe5ca) SHA1(875adaef53bc37e92ad0b6b6ee3d8fd28344d358))
@@ -637,5 +644,5 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-COMP( 1989, pyl601, 0, 0, pyl601, pyl601, pyl601_state, init_pyl601, "Mikroelektronika", "Pyldin-601", 0 )
-COMP( 1989, pyl601a, pyl601, 0, pyl601a, pyl601, pyl601_state, init_pyl601, "Mikroelektronika", "Pyldin-601A", 0 )
+COMP( 1989, pyl601, 0, 0, pyl601, pyl601, pyl601_state, init_pyl601, "Mikroelektronika", "Pyldin-601", MACHINE_SUPPORTS_SAVE )
+COMP( 1989, pyl601a, pyl601, 0, pyl601a, pyl601, pyl601_state, init_pyl601, "Mikroelektronika", "Pyldin-601A", MACHINE_SUPPORTS_SAVE )