summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/binbug.cpp
diff options
context:
space:
mode:
author mooglyguy <therealmogminer@gmail.com>2018-12-15 10:39:01 +0100
committer mooglyguy <therealmogminer@gmail.com>2018-12-15 10:39:27 +0100
commitb865623fdf791f2dd7c31829ddd671df49f84964 (patch)
treefab5a3647ca2e138e1c047d43c0e3322422c4da2 /src/mame/drivers/binbug.cpp
parentf41b6e8d812103f7eb50dcaf35fdb83e9a3a5eff (diff)
-arcadia, binbug, cd2650, cvs, dm7000, dolphunk, galaxia, hp48, instruct, konamim2, laserbat, phunsy, pipbug, quasar,
quizshow, ravens, subhuntr, taitopjc, tx0, vc4000, zac_1, zac_2: Removed MACHINE_CONFIG. [Ryan Holtz] -bus/arcadia/slot, bus/vc4000/slot, tx0, ppc, s2650, saturn: Removed MCFG macros. [Ryan Holtz]
Diffstat (limited to 'src/mame/drivers/binbug.cpp')
-rw-r--r--src/mame/drivers/binbug.cpp87
1 files changed, 41 insertions, 46 deletions
diff --git a/src/mame/drivers/binbug.cpp b/src/mame/drivers/binbug.cpp
index 49d33c6ec1a..aca8741fc06 100644
--- a/src/mame/drivers/binbug.cpp
+++ b/src/mame/drivers/binbug.cpp
@@ -89,6 +89,7 @@ public:
required_device<cpu_device> m_maincpu; // S2650 or Z80
required_device<cassette_image_device> m_cass;
+ void binbug_base(machine_config &config);
void binbug(machine_config &config);
void binbug_data(address_map &map);
void binbug_mem(address_map &map);
@@ -299,37 +300,45 @@ static DEVICE_INPUT_DEFAULTS_START( keyboard )
DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 )
DEVICE_INPUT_DEFAULTS_END
-MACHINE_CONFIG_START(binbug_state::binbug)
- /* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",S2650, XTAL(1'000'000))
- MCFG_DEVICE_PROGRAM_MAP(binbug_mem)
- MCFG_DEVICE_DATA_MAP(binbug_data)
- MCFG_S2650_SENSE_INPUT(READLINE(*this, binbug_state, binbug_serial_r))
- MCFG_S2650_FLAG_OUTPUT(WRITELINE(*this, binbug_state, binbug_serial_w))
-
+void binbug_state::binbug_base(machine_config &config)
+{
/* video hardware */
- MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::amber())
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(binbug_state, screen_update)
- MCFG_SCREEN_SIZE(512, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 255)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_dg640)
- MCFG_PALETTE_ADD_MONOCHROME("palette")
-
- /* Keyboard */
- RS232_PORT(config, m_rs232, default_rs232_devices, "keyboard").set_option_device_input_defaults("keyboard", DEVICE_INPUT_DEFAULTS_NAME(keyboard));
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
+ screen.set_color(rgb_t::amber());
+ screen.set_refresh_hz(50);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update(FUNC(binbug_state::screen_update));
+ screen.set_size(512, 256);
+ screen.set_visarea(0, 511, 0, 255);
+ screen.set_palette("palette");
+
+ GFXDECODE(config, "gfxdecode", "palette", gfx_dg640);
+ PALETTE(config, "palette", 2).set_init("palette", FUNC(palette_device::palette_init_monochrome));
/* Cassette */
- MCFG_CASSETTE_ADD( "cassette" )
+ CASSETTE(config, m_cass);
SPEAKER(config, "mono").front_center();
WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
+}
+
+void binbug_state::binbug(machine_config &config)
+{
+ binbug_base(config);
+
+ /* basic machine hardware */
+ s2650_device &maincpu(S2650(config, m_maincpu, XTAL(1'000'000)));
+ maincpu.set_addrmap(AS_PROGRAM, &binbug_state::binbug_mem);
+ maincpu.set_addrmap(AS_DATA, &binbug_state::binbug_data);
+ maincpu.sense_handler().set(FUNC(binbug_state::binbug_serial_r));
+ maincpu.flag_handler().set(FUNC(binbug_state::binbug_serial_w));
+
+ /* Keyboard */
+ RS232_PORT(config, m_rs232, default_rs232_devices, "keyboard").set_option_device_input_defaults("keyboard", DEVICE_INPUT_DEFAULTS_NAME(keyboard));
/* quickload */
- MCFG_QUICKLOAD_ADD("quickload", binbug_state, binbug, "pgm", 1)
-MACHINE_CONFIG_END
+ quickload_image_device &quickload(QUICKLOAD(config, "quickload", 0));
+ quickload.set_handler(snapquick_load_delegate(&QUICKLOAD_LOAD_NAME(binbug_state, binbug), this), "pgm", 1);
+}
/* ROM definition */
@@ -429,6 +438,7 @@ public:
void dg680(machine_config &config);
void dg680_io(address_map &map);
void dg680_mem(address_map &map);
+
private:
uint8_t m_pio_b;
uint8_t m_term_data;
@@ -534,34 +544,20 @@ TIMER_DEVICE_CALLBACK_MEMBER(dg680_state::uart_tick)
m_ctc->trg3(0);
}
-MACHINE_CONFIG_START(dg680_state::dg680)
+void dg680_state::dg680(machine_config &config)
+{
+ binbug_base(config);
+
/* basic machine hardware */
z80_device& maincpu(Z80(config, m_maincpu, XTAL(8'000'000) / 4));
maincpu.set_addrmap(AS_PROGRAM, &dg680_state::dg680_mem);
maincpu.set_addrmap(AS_IO, &dg680_state::dg680_io);
maincpu.set_daisy_config(dg680_daisy_chain);
- /* video hardware */
- MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::amber())
- MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_DRIVER(binbug_state, screen_update)
- MCFG_SCREEN_SIZE(512, 256)
- MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 255)
- MCFG_SCREEN_PALETTE("palette")
-
- MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_dg640)
- MCFG_PALETTE_ADD_MONOCHROME("palette")
-
/* Keyboard */
generic_keyboard_device &keyb(GENERIC_KEYBOARD(config, "keyb", 0));
keyb.set_keyboard_callback(FUNC(dg680_state::kbd_put));
- /* Cassette */
- MCFG_CASSETTE_ADD( "cassette" )
- SPEAKER(config, "mono").front_center();
- WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25);
-
/* Devices */
z80ctc_device& ctc(Z80CTC(config, "z80ctc", XTAL(8'000'000) / 4));
ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
@@ -574,10 +570,9 @@ MACHINE_CONFIG_START(dg680_state::dg680)
pio.in_pb_callback().set(FUNC(dg680_state::portb_r));
pio.out_pb_callback().set(FUNC(dg680_state::portb_w));
- MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc0", dg680_state, time_tick, attotime::from_hz(200))
- MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc3", dg680_state, uart_tick, attotime::from_hz(4800))
-MACHINE_CONFIG_END
-
+ TIMER(config, "ctc0").configure_periodic(FUNC(dg680_state::time_tick), attotime::from_hz(200));
+ TIMER(config, "ctc3").configure_periodic(FUNC(dg680_state::uart_tick), attotime::from_hz(4800));
+}
/* ROM definition */
ROM_START( dg680 )