diff options
author | mooglyguy <therealmogminer@gmail.com> | 2018-12-15 10:39:01 +0100 |
---|---|---|
committer | mooglyguy <therealmogminer@gmail.com> | 2018-12-15 10:39:27 +0100 |
commit | b865623fdf791f2dd7c31829ddd671df49f84964 (patch) | |
tree | fab5a3647ca2e138e1c047d43c0e3322422c4da2 /src/mame/drivers/binbug.cpp | |
parent | f41b6e8d812103f7eb50dcaf35fdb83e9a3a5eff (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.cpp | 87 |
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 ) |