summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/misc/epos.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/misc/epos.cpp')
-rw-r--r--src/mame/misc/epos.cpp39
1 files changed, 16 insertions, 23 deletions
diff --git a/src/mame/misc/epos.cpp b/src/mame/misc/epos.cpp
index 86ecaceb442..f433b6d1852 100644
--- a/src/mame/misc/epos.cpp
+++ b/src/mame/misc/epos.cpp
@@ -96,8 +96,8 @@ public:
{ }
protected:
- virtual void video_start() override;
- virtual void video_reset() override;
+ virtual void video_start() override ATTR_COLD;
+ virtual void video_reset() override ATTR_COLD;
static void set_pal_color(palette_device &palette, uint8_t offset, uint8_t data); // TODO: convert to an RGB converter and set_format
@@ -124,11 +124,11 @@ public:
void tristar8000(machine_config &config);
- DECLARE_CUSTOM_INPUT_MEMBER(coin_r) { return m_coin_latch; }
+ ioport_value coin_r() { return m_coin_latch; }
DECLARE_INPUT_CHANGED_MEMBER(coin_switch) { if (newval) m_coin_latch |= param; }
protected:
- virtual void machine_start() override;
+ virtual void machine_start() override ATTR_COLD;
private:
// I/O
@@ -139,8 +139,8 @@ private:
void coin_reset_w(uint8_t data) { m_coin_latch = 0; }
void palette(palette_device &palette) const;
- void io_map(address_map &map);
- void prg_map(address_map &map);
+ void io_map(address_map &map) ATTR_COLD;
+ void prg_map(address_map &map) ATTR_COLD;
};
class tristar9000_state : public epos_base_state
@@ -158,8 +158,8 @@ public:
void init_tristar9000();
protected:
- virtual void machine_start() override;
- virtual void machine_reset() override;
+ virtual void machine_start() override ATTR_COLD;
+ virtual void machine_reset() override ATTR_COLD;
private:
required_memory_bank_array<2> m_mainbank;
@@ -178,13 +178,11 @@ private:
uint8_t ay_porta_mpx_r();
void flip_screen_w(uint8_t data);
void pal_w(offs_t offset, uint8_t data);
- void io_map(address_map &map);
- void prg_map(address_map &map);
+ void io_map(address_map &map) ATTR_COLD;
+ void prg_map(address_map &map) ATTR_COLD;
};
-// video
-
/***************************************************************************
These games has one 32 byte palette PROM, connected to the RGB output this way:
@@ -277,8 +275,6 @@ uint32_t epos_base_state::screen_update(screen_device &screen, bitmap_rgb32 &bit
}
-// machine
-
void tristar9000_state::decrypt_rom(offs_t offset, uint8_t data)
{
if (offset & 0x04)
@@ -420,7 +416,7 @@ static INPUT_PORTS_START( megadon )
PORT_DIPSETTING( 0x80, "Contest" )
PORT_START("SYSTEM")
- PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(tristar8000_state, coin_r)
+ PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_CUSTOM ) PORT_CUSTOM_MEMBER(FUNC(tristar8000_state::coin_r))
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )
PORT_SERVICE_NO_TOGGLE(0x10, IP_ACTIVE_LOW)
@@ -437,8 +433,8 @@ static INPUT_PORTS_START( megadon )
// 2 inputs connected to 74ls74 CLK pins, only one is actually hooked up
PORT_START("COIN")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, tristar8000_state, coin_switch, 0x01)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_CHANGED_MEMBER(DEVICE_SELF, tristar8000_state, coin_switch, 0x02)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(tristar8000_state::coin_switch), 0x01)
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(tristar8000_state::coin_switch), 0x02)
INPUT_PORTS_END
@@ -708,7 +704,7 @@ void tristar9000_state::machine_reset()
void tristar8000_state::tristar8000(machine_config &config) // EPOS TRISTAR 8000 PCB
{
// basic machine hardware
- Z80(config, m_maincpu, XTAL(11'000'000) / 4); // 2.75 MHz schematics confirm 11MHz XTAL (see notes)
+ Z80(config, m_maincpu, 11_MHz_XTAL / 4); // 2.75 MHz schematics confirm 11MHz XTAL (see notes)
m_maincpu->set_addrmap(AS_PROGRAM, &tristar8000_state::prg_map);
m_maincpu->set_addrmap(AS_IO, &tristar8000_state::io_map);
m_maincpu->set_vblank_int("screen", FUNC(tristar8000_state::irq0_line_hold));
@@ -717,17 +713,14 @@ void tristar8000_state::tristar8000(machine_config &config) // EPOS TRISTAR 8000
// video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_refresh_hz(60);
- screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); // not accurate
- screen.set_size(272, 241);
- screen.set_visarea(0, 271, 0, 235);
+ screen.set_raw(11_MHz_XTAL / 2, 352, 0, 272, 258, 0, 236); // confirmed from schematics
screen.set_screen_update(FUNC(tristar8000_state::screen_update));
PALETTE(config, m_palette, FUNC(tristar8000_state::palette), 32);
// sound hardware
SPEAKER(config, "mono").front_center();
- AY8912(config, "aysnd", XTAL(11'000'000) / 16).add_route(ALL_OUTPUTS, "mono", 1.0); // 0.6875 MHz, confirmed from schematics
+ AY8912(config, "aysnd", 11_MHz_XTAL / 16).add_route(ALL_OUTPUTS, "mono", 1.0); // 0.6875 MHz, confirmed from schematics
}