void vme_mzr8300_card_device::device_start() { LOG("%s %s\n", tag(), FUNCNAME); set_vme_device(); /* Setup r/w handlers for first SIO in A16 */ uint32_t base = 0xFF0000; // m_vme->static_set_custom_spaces(*this); m_vme->install_device(vme_device::A16_SC, base + 0, base + 1, // Channel B - Data read8smo_delegate(FUNC(z80sio_device::db_r), subdevice<z80sio_device>("sio0")), write8smo_delegate(FUNC(z80sio_device::db_w), subdevice<z80sio_device>("sio0")), 0x00ff); m_vme->install_device(vme_device::A16_SC, base + 2, base + 3, // Channel B - Control read8smo_delegate(FUNC(z80sio_device::cb_r), subdevice<z80sio_device>("sio0")), write8smo_delegate(FUNC(z80sio_device::cb_w), subdevice<z80sio_device>("sio0")), 0x00ff); m_vme->install_device(vme_device::A16_SC, base + 4, base + 5, // Channel A - Data read8smo_delegate(FUNC(z80sio_device::da_r), subdevice<z80sio_device>("sio0")), write8smo_delegate(FUNC(z80sio_device::da_w), subdevice<z80sio_device>("sio0")), 0x00ff); m_vme->install_device(vme_device::A16_SC, base + 6, base + 7, // Channel A - Control read8smo_delegate(FUNC(z80sio_device::ca_r), subdevice<z80sio_device>("sio0")), write8smo_delegate(FUNC(z80sio_device::ca_w), subdevice<z80sio_device>("sio0")), 0x00ff); m_vme->install_device(vme_device::A16_SC, base + 0x10, base + 0x13, // Am9513 read8sm_delegate(FUNC(am9513_device::read8), subdevice<am9513_device>("stc")), write8sm_delegate(FUNC(am9513_device::write8), subdevice<am9513_device>("stc")), 0x00ff); }
void acorn_fdc_device::device_reset() { address_space &space = m_bus->memspace(); space.install_device(0x0a00, 0x0a03, *m_fdc, &i8271_device::map); space.install_readwrite_handler(0x0a04, 0x0a04, 0, 0x1f8, 0, read8smo_delegate(FUNC(i8271_device::data_r), m_fdc.target()), write8smo_delegate(FUNC(i8271_device::data_w), m_fdc.target())); }
void mtx_sdxcpm_device::device_reset() { machine().root_device().membank("rommap_bank1")->configure_entry(3, m_sdx_rom->base()); /* SDX FDC */ io_space().install_readwrite_handler(0x10, 0x13, read8sm_delegate(FUNC(mb8877_device::read), m_fdc.target()), write8sm_delegate(FUNC(mb8877_device::write), m_fdc.target())); io_space().install_readwrite_handler(0x14, 0x14, read8_delegate(FUNC(mtx_sdx_device::sdx_status_r), this), write8_delegate(FUNC(mtx_sdx_device::sdx_control_w), this)); /* 80 column */ io_space().install_readwrite_handler(0x30, 0x33, read8_delegate(FUNC(mtx_sdxcpm_device::mtx_80col_r), this), write8_delegate(FUNC(mtx_sdxcpm_device::mtx_80col_w), this)); io_space().install_readwrite_handler(0x38, 0x38, read8smo_delegate(FUNC(mc6845_device::status_r), m_crtc.target()), write8smo_delegate(FUNC(mc6845_device::address_w), m_crtc.target())); io_space().install_readwrite_handler(0x39, 0x39, read8smo_delegate(FUNC(mc6845_device::register_r), m_crtc.target()), write8smo_delegate(FUNC(mc6845_device::register_w), m_crtc.target())); memset(m_80col_char_ram, 0, sizeof(m_80col_char_ram)); memset(m_80col_attr_ram, 0, sizeof(m_80col_attr_ram)); }
void spectrum_melodik_device::device_reset() { m_exp->set_io_space(&io_space()); io_space().install_write_handler(0x8000, 0x8000, 0, 0x3ffd, 0, write8smo_delegate(FUNC(ay8910_device::address_w), m_psg.target())); io_space().install_readwrite_handler(0xc000, 0xc000, 0, 0x3ffd, 0, read8smo_delegate(FUNC(ay8910_device::data_r), m_psg.target()), write8smo_delegate(FUNC(ay8910_device::data_w), m_psg.target())); }
void atom_discpack_device::device_start() { address_space &space = m_bus->memspace(); space.install_device(0x0a00, 0x0a03, *m_fdc, &i8271_device::map); space.install_readwrite_handler(0x0a04, 0x0a04, 0, 0x1f8, 0, read8smo_delegate(FUNC(i8271_device::data_r), m_fdc.target()), write8smo_delegate(FUNC(i8271_device::data_w), m_fdc.target())); space.install_ram(0x2000, 0x23ff); space.install_ram(0x2400, 0x27ff); space.install_ram(0x3c00, 0x3fff); space.install_rom(0xe000, 0xefff, m_dos_rom->base()); }
void cs4031_device::device_start() { ram_device *ram_dev = machine().device<ram_device>(RAM_TAG); // make sure the ram device is already running if (!ram_dev->started()) throw device_missing_dependencies(); // resolve callbacks m_read_ior.resolve_safe(0); m_write_iow.resolve_safe(); m_write_tc.resolve_safe(); m_write_hold.resolve_safe(); m_write_nmi.resolve_safe(); m_write_intr.resolve_safe(); m_write_cpureset.resolve_safe(); m_write_a20m.resolve_safe(); m_write_spkr.resolve_safe(); // register for state saving save_item(NAME(m_dma_eop)); save_item(NAME(m_dma_page)); save_item(NAME(m_dma_high_byte)); save_item(NAME(m_dma_channel)); save_item(NAME(m_portb)); save_item(NAME(m_refresh_toggle)); save_item(NAME(m_iochck)); save_item(NAME(m_nmi_mask)); save_item(NAME(m_cpureset)); save_item(NAME(m_kbrst)); save_item(NAME(m_ext_gatea20)); save_item(NAME(m_fast_gatea20)); save_item(NAME(m_emu_gatea20)); save_item(NAME(m_address)); save_item(NAME(m_address_valid)); save_item(NAME(m_registers)); m_space = &m_cpu->memory().space(AS_PROGRAM); m_space_io = &m_cpu->memory().space(AS_IO); m_ram = ram_dev->pointer(); uint32_t ram_size = ram_dev->size(); // install base memory m_space->install_ram(0x000000, 0x09ffff, m_ram); // install extended memory if (ram_size > 0x100000) m_space->install_ram(0x100000, ram_size - 1, m_ram + 0x100000); // install bios rom at cpu initial pc m_space->install_rom(0xffff0000, 0xffffffff, m_bios + 0xf0000); // install i/o accesses m_space_io->install_readwrite_handler(0x0000, 0x000f, read8sm_delegate(FUNC(am9517a_device::read), &(*m_dma1)), write8sm_delegate(FUNC(am9517a_device::write), &(*m_dma1)), 0xffffffff); m_space_io->install_readwrite_handler(0x0020, 0x0023, read8sm_delegate(FUNC(pic8259_device::read), &(*m_intc1)), write8sm_delegate(FUNC(pic8259_device::write), &(*m_intc1)), 0x0000ffff); m_space_io->install_write_handler(0x0020, 0x0023, write8smo_delegate(FUNC(cs4031_device::config_address_w), this), 0x00ff0000); m_space_io->install_readwrite_handler(0x0020, 0x0023, read8smo_delegate(FUNC(cs4031_device::config_data_r), this), write8smo_delegate(FUNC(cs4031_device::config_data_w), this), 0xff000000); m_space_io->install_readwrite_handler(0x0040, 0x0043, read8sm_delegate(FUNC(pit8254_device::read), &(*m_ctc)), write8sm_delegate(FUNC(pit8254_device::write), &(*m_ctc)), 0xffffffff); m_space_io->install_readwrite_handler(0x0060, 0x0063, read8smo_delegate(FUNC(cs4031_device::keyb_data_r), this), write8smo_delegate(FUNC(cs4031_device::keyb_data_w), this), 0x000000ff); m_space_io->install_readwrite_handler(0x0060, 0x0063, read8smo_delegate(FUNC(cs4031_device::portb_r), this), write8smo_delegate(FUNC(cs4031_device::portb_w), this), 0x0000ff00); m_space_io->install_readwrite_handler(0x0064, 0x0067, read8smo_delegate(FUNC(cs4031_device::keyb_status_r), this), write8smo_delegate(FUNC(cs4031_device::keyb_command_w), this), 0x000000ff); m_space_io->install_readwrite_handler(0x0070, 0x0073, read8sm_delegate(FUNC(mc146818_device::read), &(*m_rtc)), write8sm_delegate(FUNC(cs4031_device::rtc_w), this), 0x0000ffff); m_space_io->install_readwrite_handler(0x0080, 0x008f, read8sm_delegate(FUNC(cs4031_device::dma_page_r), this), write8sm_delegate(FUNC(cs4031_device::dma_page_w), this), 0xffffffff); m_space_io->install_readwrite_handler(0x0090, 0x0093, read8smo_delegate(FUNC(cs4031_device::sysctrl_r), this), write8smo_delegate(FUNC(cs4031_device::sysctrl_w), this), 0x00ff0000); m_space_io->install_readwrite_handler(0x00a0, 0x00a3, read8sm_delegate(FUNC(pic8259_device::read), &(*m_intc2)), write8sm_delegate(FUNC(pic8259_device::write), &(*m_intc2)), 0x0000ffff); m_space_io->install_readwrite_handler(0x00c0, 0x00df, read8sm_delegate(FUNC(cs4031_device::dma2_r),this), write8sm_delegate(FUNC(cs4031_device::dma2_w),this), 0xffffffff); }
void msx_cart_arc_device::device_start() { // Install IO read/write handlers io_space().install_write_handler(0x7f, 0x7f, write8smo_delegate(FUNC(msx_cart_arc_device::io_7f_w), this)); io_space().install_read_handler(0x7f, 0x7f, read8smo_delegate(FUNC(msx_cart_arc_device::io_7f_r), this)); }