diff --git a/src/mess/drivers/abc80x.c b/src/mess/drivers/abc80x.c index 1aa09fa1e1b..64cc689f8ee 100644 --- a/src/mess/drivers/abc80x.c +++ b/src/mess/drivers/abc80x.c @@ -998,7 +998,7 @@ void abc800_state::machine_start() void abc800_state::machine_reset() { - m_sb = ioport("SB")->read(); + m_sb = m_io_sb->read(); m_fetch_charram = 0; bankswitch(); @@ -1045,8 +1045,8 @@ void abc802_state::machine_start() void abc802_state::machine_reset() { - UINT8 config = ioport("CONFIG")->read(); - m_sb = ioport("SB")->read(); + UINT8 config = m_config->read(); + m_sb = m_io_sb->read(); // memory banking m_lrs = 1; @@ -1115,7 +1115,7 @@ void abc806_state::machine_start() void abc806_state::machine_reset() { - m_sb = ioport("SB")->read(); + m_sb = m_io_sb->read(); // setup memory banking int bank; diff --git a/src/mess/drivers/adam.c b/src/mess/drivers/adam.c index 0286a5b5901..020b60d08c9 100644 --- a/src/mess/drivers/adam.c +++ b/src/mess/drivers/adam.c @@ -417,11 +417,11 @@ READ8_MEMBER( adam_state::mreq_r ) { if (offset < 0x6000) { - data = m_boot_rom[offset]; + data = m_boot_rom->base()[offset]; } else { - data = m_boot_rom[(eos_enable << 13) + offset]; + data = m_boot_rom->base()[(eos_enable << 13) + offset]; } } @@ -430,7 +430,7 @@ READ8_MEMBER( adam_state::mreq_r ) switch (offset >> 13) { case 0: // U2 - data = m_os7_rom[offset]; + data = m_os7_rom->base()[offset]; break; case 1: break; @@ -440,7 +440,7 @@ READ8_MEMBER( adam_state::mreq_r ) case 5: // CS2 case 6: // CS3 case 7: // CS4 - data = m_cart_rom[offset & 0x7fff]; + data = m_cart_rom->base()[offset & 0x7fff]; break; } } @@ -1059,11 +1059,6 @@ static ADAM_EXPANSION_SLOT_INTERFACE( slot3_intf ) void adam_state::machine_start() { - // find memory regions - m_boot_rom = memregion("boot")->base(); - m_os7_rom = memregion("os7")->base(); - m_cart_rom = memregion("cart")->base(); - // state saving save_item(NAME(m_mioc)); save_item(NAME(m_game)); diff --git a/src/mess/drivers/aquarius.c b/src/mess/drivers/aquarius.c index 0b28dcc1078..793f83cf71e 100644 --- a/src/mess/drivers/aquarius.c +++ b/src/mess/drivers/aquarius.c @@ -171,7 +171,7 @@ WRITE8_MEMBER(aquarius_state::scrambler_w) READ8_MEMBER(aquarius_state::cartridge_r) { - UINT8 *rom = memregion("maincpu")->base() + 0xc000; + UINT8 *rom = m_rom->base() + 0xc000; return rom[offset] ^ m_scrambler; } @@ -183,7 +183,7 @@ READ8_MEMBER(aquarius_state::cartridge_r) DRIVER_INIT_MEMBER(aquarius_state,aquarius) { /* install expansion memory if available */ - if (machine().device(RAM_TAG)->size() > 0x1000) + if (m_ram->size() > 0x1000) { address_space &space = m_maincpu->space(AS_PROGRAM); diff --git a/src/mess/drivers/atarist.c b/src/mess/drivers/atarist.c index 8be6b9598fc..2a3428ca3e0 100644 --- a/src/mess/drivers/atarist.c +++ b/src/mess/drivers/atarist.c @@ -428,8 +428,8 @@ void st_state::mouse_tick() */ - UINT8 x = ioport("IKBD_MOUSEX")->read_safe(0x00); - UINT8 y = ioport("IKBD_MOUSEY")->read_safe(0x00); + UINT8 x = m_mousex->read_safe(0x00); + UINT8 y = m_mousey->read_safe(0x00); if (m_ikbd_mouse_pc == 0) { @@ -509,21 +509,21 @@ READ8_MEMBER( st_state::ikbd_port1_r ) UINT8 data = 0xff; // keyboard data - if (!BIT(m_ikbd_keylatch, 1)) data &= ioport("P31")->read(); - if (!BIT(m_ikbd_keylatch, 2)) data &= ioport("P32")->read(); - if (!BIT(m_ikbd_keylatch, 3)) data &= ioport("P33")->read(); - if (!BIT(m_ikbd_keylatch, 4)) data &= ioport("P34")->read(); - if (!BIT(m_ikbd_keylatch, 5)) data &= ioport("P35")->read(); - if (!BIT(m_ikbd_keylatch, 6)) data &= ioport("P36")->read(); - if (!BIT(m_ikbd_keylatch, 7)) data &= ioport("P37")->read(); - if (!BIT(m_ikbd_keylatch, 8)) data &= ioport("P40")->read(); - if (!BIT(m_ikbd_keylatch, 9)) data &= ioport("P41")->read(); - if (!BIT(m_ikbd_keylatch, 10)) data &= ioport("P42")->read(); - if (!BIT(m_ikbd_keylatch, 11)) data &= ioport("P43")->read(); - if (!BIT(m_ikbd_keylatch, 12)) data &= ioport("P44")->read(); - if (!BIT(m_ikbd_keylatch, 13)) data &= ioport("P45")->read(); - if (!BIT(m_ikbd_keylatch, 14)) data &= ioport("P46")->read(); - if (!BIT(m_ikbd_keylatch, 15)) data &= ioport("P47")->read(); + if (!BIT(m_ikbd_keylatch, 1)) data &= m_p31->read(); + if (!BIT(m_ikbd_keylatch, 2)) data &= m_p32->read(); + if (!BIT(m_ikbd_keylatch, 3)) data &= m_p33->read(); + if (!BIT(m_ikbd_keylatch, 4)) data &= m_p34->read(); + if (!BIT(m_ikbd_keylatch, 5)) data &= m_p35->read(); + if (!BIT(m_ikbd_keylatch, 6)) data &= m_p36->read(); + if (!BIT(m_ikbd_keylatch, 7)) data &= m_p37->read(); + if (!BIT(m_ikbd_keylatch, 8)) data &= m_p40->read(); + if (!BIT(m_ikbd_keylatch, 9)) data &= m_p41->read(); + if (!BIT(m_ikbd_keylatch, 10)) data &= m_p42->read(); + if (!BIT(m_ikbd_keylatch, 11)) data &= m_p43->read(); + if (!BIT(m_ikbd_keylatch, 12)) data &= m_p44->read(); + if (!BIT(m_ikbd_keylatch, 13)) data &= m_p45->read(); + if (!BIT(m_ikbd_keylatch, 14)) data &= m_p46->read(); + if (!BIT(m_ikbd_keylatch, 15)) data &= m_p47->read(); return data; } @@ -547,7 +547,7 @@ READ8_MEMBER( st_state::ikbd_port2_r ) */ - UINT8 data = ioport("IKBD_JOY1")->read_safe(0xff) & 0x06; + UINT8 data = m_joy1->read_safe(0xff) & 0x06; // serial receive data |= m_ikbd_tx << 3; @@ -634,9 +634,9 @@ READ8_MEMBER( st_state::ikbd_port4_r ) if (m_ikbd_joy) return 0xff; - UINT8 data = ioport("IKBD_JOY0")->read_safe(0xff); + UINT8 data = m_joy0->read_safe(0xff); - if ((ioport("config")->read() & 0x01) == 0) + if ((m_config->read() & 0x01) == 0) { data = (data & 0xf0) | m_ikbd_mouse; } @@ -726,7 +726,7 @@ void ste_state::dmasound_tick() { if (m_dmasnd_samples == 0) { - UINT8 *RAM = machine().device(RAM_TAG)->pointer(); + UINT8 *RAM = m_ram->pointer(); for (int i = 0; i < 8; i++) { @@ -1137,7 +1137,7 @@ READ16_MEMBER( stbook_state::config_r ) */ - return (ioport("SW400")->read() << 8) | 0xff; + return (m_sw400->read() << 8) | 0xff; } @@ -1919,7 +1919,7 @@ READ8_MEMBER( st_state::mfp_gpio_r ) // ring indicator // monochrome monitor detect - data |= ioport("config")->read() & 0x80; + data |= m_config->read() & 0x80; return data; } @@ -1989,7 +1989,7 @@ READ8_MEMBER( ste_state::mfp_gpio_r ) // ring indicator // monochrome monitor detect, DMA sound active - data |= (ioport("config")->read() & 0x80) ^ (m_dmasnd_active << 7); + data |= (m_config->read() & 0x80) ^ (m_dmasnd_active << 7); return data; } diff --git a/src/mess/drivers/atom.c b/src/mess/drivers/atom.c index 66dc1393f12..128b86d77d5 100644 --- a/src/mess/drivers/atom.c +++ b/src/mess/drivers/atom.c @@ -125,7 +125,7 @@ void atom_state::bankswitch() { address_space &program = m_maincpu->space(AS_PROGRAM); - UINT8 *eprom = memregion(EXTROM_TAG)->base() + (m_eprom << 12); + UINT8 *eprom = m_extrom->base() + (m_eprom << 12); program.install_rom(0xa000, 0xafff, eprom); } diff --git a/src/mess/drivers/beta.c b/src/mess/drivers/beta.c index 5e054970faa..43a53db492d 100644 --- a/src/mess/drivers/beta.c +++ b/src/mess/drivers/beta.c @@ -120,7 +120,7 @@ READ8_MEMBER( beta_state::riot_pa_r ) default: if (!m_eprom_oe && !m_eprom_ce) { - data = m_eprom[m_eprom_addr & 0x7ff]; + data = m_eprom->base()[m_eprom_addr & 0x7ff]; popmessage("EPROM read %04x = %02x\n", m_eprom_addr & 0x7ff, data); } } @@ -207,7 +207,7 @@ WRITE8_MEMBER( beta_state::riot_pb_w ) if (BIT(data, 6) && (!BIT(m_old_data, 7) && BIT(data, 7))) { popmessage("EPROM write %04x = %02x\n", m_eprom_addr & 0x7ff, m_eprom_data); - m_eprom[m_eprom_addr & 0x7ff] &= m_eprom_data; + m_eprom->base()[m_eprom_addr & 0x7ff] &= m_eprom_data; } m_old_data = data; @@ -226,7 +226,9 @@ static const riot6532_interface beta_riot_interface = static DEVICE_IMAGE_UNLOAD( beta_eprom ) { - UINT8 *ptr = image.device().machine().root_device().memregion(EPROM_TAG)->base(); + beta_state *state = image.device().machine().driver_data(); + + UINT8 *ptr = state->m_eprom->base(); image.fwrite(ptr, 0x800); } @@ -237,9 +239,6 @@ void beta_state::machine_start() { m_led_refresh_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(beta_state::led_refresh),this)); - // find memory regions - m_eprom = memregion(EPROM_TAG)->base(); - // state saving save_item(NAME(m_eprom_oe)); save_item(NAME(m_eprom_ce)); diff --git a/src/mess/drivers/bw12.c b/src/mess/drivers/bw12.c index 41de52543de..2ca2bfc97af 100644 --- a/src/mess/drivers/bw12.c +++ b/src/mess/drivers/bw12.c @@ -336,7 +336,7 @@ static MC6845_UPDATE_ROW( bw12_update_row ) { UINT8 code = state->m_video_ram[((ma + column) & BW12_VIDEORAM_MASK)]; UINT16 addr = code << 4 | (ra & 0x0f); - UINT8 data = state->m_char_rom[addr & BW12_CHARROM_MASK]; + UINT8 data = state->m_char_rom->base()[addr & BW12_CHARROM_MASK]; if (column == cursor_x) { @@ -371,12 +371,6 @@ static MC6845_INTERFACE( bw12_mc6845_interface ) NULL }; -void bw12_state::video_start() -{ - /* find memory regions */ - m_char_rom = memregion("chargen")->base(); -} - /* PIA6821 Interface */ READ8_MEMBER( bw12_state::pia_pa_r ) @@ -570,7 +564,7 @@ static AY3600_INTERFACE( bw12_ay3600_intf ) void bw12_state::machine_start() { /* setup memory banking */ - membank("bank1")->configure_entry(0, memregion(Z80_TAG)->base()); + membank("bank1")->configure_entry(0, m_rom->base()); membank("bank1")->configure_entry(1, m_ram->pointer()); membank("bank1")->configure_entries(2, 2, m_ram->pointer() + 0x10000, 0x8000); diff --git a/src/mess/drivers/c64.c b/src/mess/drivers/c64.c index 473fe00e7bc..2383007fd7e 100644 --- a/src/mess/drivers/c64.c +++ b/src/mess/drivers/c64.c @@ -8,7 +8,8 @@ - IRQ (WRONG $DC0D) - NMI (WRONG $DD0D) - some CIA tests - - 64C PLA dump + - PDC Clipper (C64 in a briefcase with 3" floppy, electroluminescent flat screen, thermal printer) + - Tesa 6240 (modified SX64 with label printer) */ @@ -121,11 +122,25 @@ UINT8 c64_state::read_memory(address_space &space, offs_t offset, offs_t va, int } if (!basic) { - data = m_basic[offset & 0x1fff]; + if (m_basic != NULL) + { + data = m_basic->base()[offset & 0x1fff]; + } + else + { + data = m_kernal->base()[offset & 0x1fff]; + } } if (!kernal) { - data = m_kernal[offset & 0x1fff]; + if (m_basic != NULL) + { + data = m_kernal->base()[offset & 0x1fff]; + } + else + { + data = m_kernal->base()[0x2000 | (offset & 0x1fff)]; + } } if (!charom) { @@ -278,7 +293,7 @@ READ8_MEMBER( c64_state::vic_videoram_r ) offs_t va = offset; // A15/A14 are not connected to VIC so they are floating - offset |= 0xc000; + //offset |= 0xc000; return read_memory(space, offset, va, aec, ba); } @@ -894,6 +909,7 @@ WRITE8_MEMBER( c64_state::cpu_w ) m_cassette->motor_w(BIT(data, 5)); } + //------------------------------------------------- // M6510_INTERFACE( sx64_cpu_intf ) //------------------------------------------------- @@ -937,6 +953,7 @@ WRITE8_MEMBER( sx64_state::cpu_w ) m_charen = BIT(data, 2); } + //------------------------------------------------- // M6510_INTERFACE( c64gs_cpu_intf ) //------------------------------------------------- @@ -980,6 +997,7 @@ WRITE8_MEMBER( c64gs_state::cpu_w ) m_charen = BIT(data, 2); } + //------------------------------------------------- // PET_DATASSETTE_PORT_INTERFACE( datassette_intf ) //------------------------------------------------- @@ -1101,10 +1119,6 @@ static C64_USER_PORT_INTERFACE( user_intf ) void c64_state::machine_start() { - // find memory regions - m_basic = memregion("basic")->base(); - m_kernal = memregion("kernal")->base(); - // allocate memory m_color_ram.allocate(0x400); @@ -1134,30 +1148,6 @@ void c64_state::machine_start() } -//------------------------------------------------- -// MACHINE_START( c64c ) -//------------------------------------------------- - -void c64c_state::machine_start() -{ - c64_state::machine_start(); - - // find memory regions - m_basic = memregion(M6510_TAG)->base(); - m_kernal = memregion(M6510_TAG)->base() + 0x2000; -} - - -//------------------------------------------------- -// MACHINE_START( c64gs ) -//------------------------------------------------- - -void c64gs_state::machine_start() -{ - c64c_state::machine_start(); -} - - //------------------------------------------------- // MACHINE_RESET( c64 ) //------------------------------------------------- @@ -1210,7 +1200,7 @@ static MACHINE_CONFIG_START( ntsc, c64_state ) MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, datassette_intf, cbm_datassette_devices, "c1530", NULL) MCFG_CBM_IEC_ADD(iec_intf, "c1541") MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, NULL, NULL) - MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vcs_control_port_devices, NULL, NULL) + MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vcs_control_port_devices, "joy", NULL) MCFG_C64_EXPANSION_SLOT_ADD(C64_EXPANSION_SLOT_TAG, VIC6567_CLOCK, expansion_intf, c64_expansion_cards, NULL, NULL) MCFG_C64_USER_PORT_ADD(C64_USER_PORT_TAG, user_intf, c64_user_port_cards, NULL, NULL) @@ -1625,7 +1615,7 @@ ROM_END //------------------------------------------------- ROM_START( c64c ) - ROM_REGION( 0x4000, M6510_TAG, 0 ) + ROM_REGION( 0x4000, "kernal", 0 ) ROM_LOAD( "251913-01.u4", 0x0000, 0x4000, CRC(0010ec31) SHA1(765372a0e16cbb0adf23a07b80f6b682b39fbf88) ) ROM_REGION( 0x1000, "charom", 0 ) @@ -1655,7 +1645,7 @@ ROM_END //------------------------------------------------- ROM_START( c64c_se ) - ROM_REGION( 0x4000, M6510_TAG, 0 ) + ROM_REGION( 0x4000, "kernal", 0 ) ROM_LOAD( "325182-01.u4", 0x0000, 0x4000, CRC(2aff27d3) SHA1(267654823c4fdf2167050f41faa118218d2569ce) ) // 128/64 FI ROM_REGION( 0x1000, "charom", 0 ) @@ -1671,7 +1661,7 @@ ROM_END //------------------------------------------------- ROM_START( c64gs ) - ROM_REGION( 0x4000, M6510_TAG, 0 ) + ROM_REGION( 0x4000, "kernal", 0 ) ROM_LOAD( "390852-01.u4", 0x0000, 0x4000, CRC(b0a9c2da) SHA1(21940ef5f1bfe67d7537164f7ca130a1095b067a) ) ROM_REGION( 0x1000, "charom", 0 ) @@ -1698,8 +1688,6 @@ COMP( 1984, sx64, c64, 0, ntsc_sx, c64, driver_device, 0, COMP( 1984, sx64p, c64, 0, pal_sx, c64, driver_device, 0, "Commodore Business Machines", "SX-64 / Executive 64 (PAL)", GAME_SUPPORTS_SAVE ) COMP( 1984, vip64, c64, 0, pal_sx, c64sw, driver_device, 0, "Commodore Business Machines", "VIP-64 (Sweden/Finland)", GAME_SUPPORTS_SAVE ) COMP( 1984, dx64, c64, 0, ntsc_dx, c64, driver_device, 0, "Commodore Business Machines", "DX-64 (NTSC)", GAME_SUPPORTS_SAVE ) -//COMP(1983, clipper, c64, 0, c64pal, clipper, XXX_CLASS, c64pal, "PDC", "Clipper", GAME_NOT_WORKING) // C64 in a briefcase with 3" floppy, electroluminescent flat screen, thermal printer -//COMP(1983, tesa6240, c64, 0, c64pal, c64, XXX_CLASS, c64pal, "Tesa", "6240", GAME_NOT_WORKING) // modified SX64 with label printer COMP( 1986, c64c, c64, 0, ntsc_c, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64C (NTSC)", GAME_SUPPORTS_SAVE ) COMP( 1986, c64cp, c64, 0, pal_c, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64C (PAL)", GAME_SUPPORTS_SAVE ) COMP( 1986, c64c_se,c64, 0, pal_c, c64sw, driver_device, 0, "Commodore Business Machines", "Commodore 64C (Sweden/Finland)", GAME_SUPPORTS_SAVE ) diff --git a/src/mess/drivers/comx35.c b/src/mess/drivers/comx35.c index 474844166ce..1b06d97f079 100644 --- a/src/mess/drivers/comx35.c +++ b/src/mess/drivers/comx35.c @@ -30,7 +30,7 @@ READ8_MEMBER( comx35_state::mem_r ) if (offset < 0x4000) { - if (extrom) data = m_rom[offset & 0x3fff]; + if (extrom) data = m_rom->base()[offset & 0x3fff]; } else if (offset >= 0x4000 && offset < 0xc000) { @@ -136,7 +136,7 @@ ADDRESS_MAP_END INPUT_CHANGED_MEMBER( comx35_state::trigger_reset ) { - if (newval && BIT(ioport("D6")->read(), 7)) + if (newval && BIT(m_d6->read(), 7)) { machine_reset(); } @@ -459,9 +459,6 @@ void comx35_state::machine_start() UINT8 *ram = m_ram->pointer(); memset(ram, 0, m_ram->size()); - // find memory regions - m_rom = memregion(CDP1802_TAG)->base(); - // register for state saving save_item(NAME(m_clear)); save_item(NAME(m_q)); diff --git a/src/mess/drivers/cosmicos.c b/src/mess/drivers/cosmicos.c index f5a149b0082..7c3e422c248 100644 --- a/src/mess/drivers/cosmicos.c +++ b/src/mess/drivers/cosmicos.c @@ -79,7 +79,7 @@ WRITE8_MEMBER( cosmicos_state::audio_latch_w ) READ8_MEMBER( cosmicos_state::hex_keyboard_r ) { - static const char *const keynames[] = { "ROW1", "ROW2", "ROW3", "ROW4" }; + ioport_port *ports[4] = { m_y1, m_y2, m_y3, m_y4 }; UINT8 data = 0; int i; @@ -87,7 +87,7 @@ READ8_MEMBER( cosmicos_state::hex_keyboard_r ) { if (BIT(m_keylatch, i)) { - UINT8 keydata = ioport(keynames[i])->read(); + UINT8 keydata = ports[i]->read(); if (BIT(keydata, 0)) data |= 0x01; if (BIT(keydata, 1)) data |= 0x02; @@ -159,7 +159,7 @@ ADDRESS_MAP_END INPUT_CHANGED_MEMBER( cosmicos_state::data ) { - UINT8 data = ioport("DATA")->read(); + UINT8 data = m_io_data->read(); int i; for (i = 0; i < 8; i++) @@ -308,25 +308,25 @@ static INPUT_PORTS_START( cosmicos ) PORT_BIT( 0x080, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_NAME("Memory Protect") PORT_CHANGED_MEMBER(DEVICE_SELF, cosmicos_state, memory_protect, 0) PORT_TOGGLE PORT_BIT( 0x100, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_NAME("Memory Disable") PORT_CHANGED_MEMBER(DEVICE_SELF, cosmicos_state, memory_disable, 0) PORT_TOGGLE - PORT_START("ROW1") + PORT_START("Y1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3') - PORT_START("ROW2") + PORT_START("Y2") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') - PORT_START("ROW3") + PORT_START("Y3") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('B') - PORT_START("ROW4") + PORT_START("Y4") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('E') @@ -395,14 +395,14 @@ READ_LINE_MEMBER( cosmicos_state::clear_r ) READ_LINE_MEMBER( cosmicos_state::ef1_r ) { - UINT8 special = ioport("SPECIAL")->read(); + UINT8 special = m_special->read(); return BIT(special, 0); } READ_LINE_MEMBER( cosmicos_state::ef2_r ) { - UINT8 special = ioport("SPECIAL")->read(); + UINT8 special = m_special->read(); int casin = (m_cassette)->input() < 0.0; output_set_led_value(LED_CASSETTE, casin); @@ -412,14 +412,14 @@ READ_LINE_MEMBER( cosmicos_state::ef2_r ) READ_LINE_MEMBER( cosmicos_state::ef3_r ) { - UINT8 special = ioport("SPECIAL")->read(); + UINT8 special = m_special->read(); return BIT(special, 2) | BIT(special, 3); } READ_LINE_MEMBER( cosmicos_state::ef4_r ) { - return BIT(ioport("BUTTONS")->read(), 0); + return BIT(m_buttons->read(), 0); } static COSMAC_SC_WRITE( cosmicos_sc_w ) @@ -528,7 +528,8 @@ void cosmicos_state::machine_reset() static QUICKLOAD_LOAD( cosmicos ) { - UINT8 *ptr = image.device().machine().root_device().memregion(CDP1802_TAG)->base(); + cosmicos_state *state = image.device().machine().driver_data(); + UINT8 *ptr = state->m_rom->base(); int size = image.length(); /* load image to RAM */ @@ -609,7 +610,7 @@ DIRECT_UPDATE_MEMBER(cosmicos_state::cosmicos_direct_update_handler) if (m_boot) { /* force A6 and A7 high */ - direct.explicit_configure(0x0000, 0xffff, 0x3f3f, memregion(CDP1802_TAG)->base() + 0xc0); + direct.explicit_configure(0x0000, 0xffff, 0x3f3f, m_rom->base() + 0xc0); return ~0; } @@ -618,9 +619,7 @@ DIRECT_UPDATE_MEMBER(cosmicos_state::cosmicos_direct_update_handler) DRIVER_INIT_MEMBER(cosmicos_state,cosmicos) { - address_space &program = machine().device(CDP1802_TAG)->memory().space(AS_PROGRAM); - - program.set_direct_update_handler(direct_update_delegate(FUNC(cosmicos_state::cosmicos_direct_update_handler), this)); + m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(cosmicos_state::cosmicos_direct_update_handler), this)); } /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ diff --git a/src/mess/drivers/crvision.c b/src/mess/drivers/crvision.c index 6e3e51afab9..f15c3b5336a 100644 --- a/src/mess/drivers/crvision.c +++ b/src/mess/drivers/crvision.c @@ -380,7 +380,7 @@ INPUT_PORTS_END -------------------------------------------------*/ static INPUT_PORTS_START( manager ) - PORT_START("ROW0") + PORT_START("Y0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') @@ -390,7 +390,7 @@ static INPUT_PORTS_START( manager ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('S') PORT_CHAR('s') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_CHAR('x') - PORT_START("ROW1") + PORT_START("Y1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xC3\x84 \xC3\xA4") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0x00C4) PORT_CHAR(0x00E4) @@ -400,7 +400,7 @@ static INPUT_PORTS_START( manager ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_CHAR('a') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('Z') PORT_CHAR('z') - PORT_START("ROW2") + PORT_START("Y2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('I') PORT_CHAR('i') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') @@ -410,7 +410,7 @@ static INPUT_PORTS_START( manager ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL)) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) - PORT_START("ROW3") + PORT_START("Y3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('n') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_CHAR('x') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xC3\x96 \xC3\xB6") PORT_CODE(KEYCODE_COLON) PORT_CHAR(0x00D6) PORT_CHAR(0x00F6) @@ -420,7 +420,7 @@ static INPUT_PORTS_START( manager ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_CHAR('d') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_CHAR('c') - PORT_START("ROW4") + PORT_START("Y4") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') @@ -430,7 +430,7 @@ static INPUT_PORTS_START( manager ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_CHAR('f') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('V') PORT_CHAR('v') - PORT_START("ROW5") + PORT_START("Y5") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('J') PORT_CHAR('j') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_CHAR('l') @@ -440,7 +440,7 @@ static INPUT_PORTS_START( manager ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('G') PORT_CHAR('g') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('B') PORT_CHAR('b') - PORT_START("ROW6") + PORT_START("Y6") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('S') PORT_CHAR('s') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_CHAR('k') @@ -450,7 +450,7 @@ static INPUT_PORTS_START( manager ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('H') PORT_CHAR('h') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('n') - PORT_START("ROW7") + PORT_START("Y7") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_CHAR('x') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_CHAR('n') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') @@ -643,14 +643,14 @@ READ8_MEMBER( laser2001_state::pia_pa_r ) UINT8 data = 0xff; - if (!BIT(m_keylatch, 0)) data &= ioport("ROW0")->read(); - if (!BIT(m_keylatch, 1)) data &= ioport("ROW1")->read(); - if (!BIT(m_keylatch, 2)) data &= ioport("ROW2")->read(); - if (!BIT(m_keylatch, 3)) data &= ioport("ROW3")->read(); - if (!BIT(m_keylatch, 4)) data &= ioport("ROW4")->read(); - if (!BIT(m_keylatch, 5)) data &= ioport("ROW5")->read(); - if (!BIT(m_keylatch, 6)) data &= ioport("ROW6")->read(); - if (!BIT(m_keylatch, 7)) data &= ioport("ROW7")->read(); + if (!BIT(m_keylatch, 0)) data &= m_y0->read(); + if (!BIT(m_keylatch, 1)) data &= m_y1->read(); + if (!BIT(m_keylatch, 2)) data &= m_y2->read(); + if (!BIT(m_keylatch, 3)) data &= m_y3->read(); + if (!BIT(m_keylatch, 4)) data &= m_y4->read(); + if (!BIT(m_keylatch, 5)) data &= m_y5->read(); + if (!BIT(m_keylatch, 6)) data &= m_y6->read(); + if (!BIT(m_keylatch, 7)) data &= m_y7->read(); return data; } @@ -675,10 +675,10 @@ READ8_MEMBER( laser2001_state::pia_pb_r ) { UINT8 data = 0xff; - if (!BIT(m_joylatch, 0)) data &= ioport("JOY0")->read(); - if (!BIT(m_joylatch, 1)) data &= ioport("JOY1")->read(); - if (!BIT(m_joylatch, 2)) data &= ioport("JOY2")->read(); - if (!BIT(m_joylatch, 3)) data &= ioport("JOY3")->read(); + if (!BIT(m_joylatch, 0)) data &= m_joy0->read(); + if (!BIT(m_joylatch, 1)) data &= m_joy1->read(); + if (!BIT(m_joylatch, 2)) data &= m_joy2->read(); + if (!BIT(m_joylatch, 3)) data &= m_joy3->read(); return data; } @@ -775,23 +775,6 @@ static const cassette_interface lasr2001_cassette_interface = NULL }; -/*------------------------------------------------- - floppy_interface lasr2001_floppy_interface --------------------------------------------------*/ - -static const floppy_interface lasr2001_floppy_interface = -{ - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - FLOPPY_STANDARD_5_25_SSDD, - LEGACY_FLOPPY_OPTIONS_NAME(default), - NULL, - NULL -}; - /*------------------------------------------------- centronics_interface lasr2001_centronics_intf -------------------------------------------------*/ @@ -853,7 +836,7 @@ static DEVICE_IMAGE_LOAD( crvision_cart ) running_machine &machine = image.device().machine(); crvision_state *state = machine.driver_data(); UINT8 *mem = state->memregion(M6502_TAG)->base(); - address_space &program = machine.device(M6502_TAG)->memory().space(AS_PROGRAM); + address_space &program = state->m_maincpu->space(AS_PROGRAM); if (image.software_entry() == NULL) { @@ -945,11 +928,11 @@ static DEVICE_IMAGE_LOAD( crvision_cart ) return IMAGE_INIT_FAIL; } - state->membank("bank1")->configure_entry(0, mem + 0x8000); - state->membank("bank1")->set_entry(0); + state->membank(BANK_ROM1)->configure_entry(0, mem + 0x8000); + state->membank(BANK_ROM1)->set_entry(0); - state->membank("bank2")->configure_entry(0, mem + 0x4000); - state->membank("bank2")->set_entry(0); + state->membank(BANK_ROM2)->configure_entry(0, mem + 0x4000); + state->membank(BANK_ROM2)->set_entry(0); auto_free(machine, temp_copy); @@ -1033,7 +1016,6 @@ static MACHINE_CONFIG_START( lasr2001, laser2001_state ) // devices MCFG_PIA6821_ADD(PIA6821_TAG, lasr2001_pia_intf) MCFG_CASSETTE_ADD(CASSETTE_TAG, lasr2001_cassette_interface) - MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, lasr2001_floppy_interface) MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, lasr2001_centronics_intf) // video hardware diff --git a/src/mess/drivers/elf.c b/src/mess/drivers/elf.c index f374a367895..56e1c13cfe4 100644 --- a/src/mess/drivers/elf.c +++ b/src/mess/drivers/elf.c @@ -16,16 +16,16 @@ #include "elf2.lh" #define RUN \ - BIT(ioport("SPECIAL")->read(), 0) + BIT(m_special->read(), 0) #define LOAD \ - BIT(ioport("SPECIAL")->read(), 1) + BIT(m_special->read(), 1) #define MEMORY_PROTECT \ - BIT(ioport("SPECIAL")->read(), 2) + BIT(m_special->read(), 2) #define INPUT \ - BIT(ioport("SPECIAL")->read(), 3) + BIT(m_special->read(), 3) /* Read/Write Handlers */ diff --git a/src/mess/drivers/eti660.c b/src/mess/drivers/eti660.c index 5e25e664b75..87e454dc90e 100644 --- a/src/mess/drivers/eti660.c +++ b/src/mess/drivers/eti660.c @@ -122,17 +122,17 @@ static CDP1864_INTERFACE( eti660_cdp1864_intf ) READ_LINE_MEMBER( eti660_state::clear_r ) { - return BIT(ioport("SPECIAL")->read(), 0); + return BIT(m_special->read(), 0); } READ_LINE_MEMBER( eti660_state::ef2_r ) { - return (m_cassette)->input() < 0; + return m_cassette->input() < 0; } READ_LINE_MEMBER( eti660_state::ef4_r ) { - return BIT(ioport("SPECIAL")->read(), 1); + return BIT(m_special->read(), 1); } WRITE_LINE_MEMBER( eti660_state::q_w ) @@ -194,10 +194,10 @@ READ8_MEMBER( eti660_state::pia_pa_r ) UINT8 data = 0xf0; - if (!BIT(m_keylatch, 0)) data &= ioport("PA0")->read(); - if (!BIT(m_keylatch, 1)) data &= ioport("PA1")->read(); - if (!BIT(m_keylatch, 2)) data &= ioport("PA2")->read(); - if (!BIT(m_keylatch, 3)) data &= ioport("PA3")->read(); + if (!BIT(m_keylatch, 0)) data &= m_pa0->read(); + if (!BIT(m_keylatch, 1)) data &= m_pa1->read(); + if (!BIT(m_keylatch, 2)) data &= m_pa2->read(); + if (!BIT(m_keylatch, 3)) data &= m_pa3->read(); return data; } diff --git a/src/mess/drivers/exp85.c b/src/mess/drivers/exp85.c index 35e46801447..cd0b7e10e27 100644 --- a/src/mess/drivers/exp85.c +++ b/src/mess/drivers/exp85.c @@ -195,8 +195,8 @@ void exp85_state::machine_start() /* setup memory banking */ program.install_read_bank(0x0000, 0x07ff, "bank1"); program.unmap_write(0x0000, 0x07ff); - membank("bank1")->configure_entry(0, memregion(I8085A_TAG)->base() + 0xf000); - membank("bank1")->configure_entry(1, memregion(I8085A_TAG)->base()); + membank("bank1")->configure_entry(0, m_rom->base() + 0xf000); + membank("bank1")->configure_entry(1, m_rom->base()); membank("bank1")->set_entry(0); } diff --git a/src/mess/drivers/huebler.c b/src/mess/drivers/huebler.c index 7ea0aecc3a5..1f4071b2eea 100644 --- a/src/mess/drivers/huebler.c +++ b/src/mess/drivers/huebler.c @@ -24,9 +24,10 @@ void amu880_state::scan_keyboard() { - static const char *const keynames[] = { "Y0", "Y1", "Y2", "Y3", "Y4", "Y5", "Y6", "Y7", "Y8", "Y9", "Y10", "Y11", "Y12", "Y13", "Y14", "Y15" }; + ioport_port* ports[16] = { m_y0, m_y1, m_y2, m_y3, m_y4, m_y5, m_y6, m_y7, + m_y8, m_y9, m_y10, m_y11, m_y12, m_y13, m_y14, m_y15 }; - UINT8 data = ioport(keynames[m_key_a8 ? m_key_d6 : m_key_d7])->read(); + UINT8 data = ports[m_key_a8 ? m_key_d6 : m_key_d7]->read(); int a8 = (data & 0x0f) == 0x0f; @@ -68,7 +69,7 @@ READ8_MEMBER( amu880_state::keyboard_r ) */ - UINT8 special = ioport("SPECIAL")->read(); + UINT8 special = m_special->read(); int ctrl = BIT(special, 0); int shift = BIT(special, 2) & BIT(special, 1); @@ -76,7 +77,7 @@ READ8_MEMBER( amu880_state::keyboard_r ) UINT16 address = (ab0 << 9) | (m_key_a8 << 8) | (ctrl << 7) | (shift << 6) | (m_key_a5 << 5) | (m_key_a4 << 4) | m_key_d7; - return m_kb_rom[address]; + return m_kb_rom->base()[address]; } /* Memory Maps */ @@ -209,12 +210,6 @@ INPUT_PORTS_END /* Video */ -void amu880_state::video_start() -{ - // find memory regions - m_char_rom = memregion("chargen")->base(); -} - UINT32 amu880_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { int y, sx, x, line; @@ -229,7 +224,7 @@ UINT32 amu880_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, UINT8 videoram_data = m_video_ram[videoram_addr & 0x7ff]; UINT16 charrom_addr = ((videoram_data & 0x7f) << 3) | line; - UINT8 data = m_char_rom[charrom_addr & 0x3ff]; + UINT8 data = m_char_rom->base()[charrom_addr & 0x3ff]; for (x = 0; x < 6; x++) { @@ -340,9 +335,6 @@ static const z80_daisy_config amu880_daisy_chain[] = void amu880_state::machine_start() { - /* find memory regions */ - m_kb_rom = memregion("keyboard")->base(); - /* register for state saving */ save_item(NAME(m_key_d6)); save_item(NAME(m_key_d7)); diff --git a/src/mess/drivers/kyocera.c b/src/mess/drivers/kyocera.c index 2fb842df41a..fc62243e10d 100644 --- a/src/mess/drivers/kyocera.c +++ b/src/mess/drivers/kyocera.c @@ -65,23 +65,6 @@ /* Read/Write Handlers */ -static UINT8 read_keyboard(running_machine &machine, UINT16 keylatch) -{ - UINT8 data = 0xff; - - if (!BIT(keylatch, 0)) data &= machine.root_device().ioport("KEY0")->read(); - if (!BIT(keylatch, 1)) data &= machine.root_device().ioport("KEY1")->read(); - if (!BIT(keylatch, 2)) data &= machine.root_device().ioport("KEY2")->read(); - if (!BIT(keylatch, 3)) data &= machine.root_device().ioport("KEY3")->read(); - if (!BIT(keylatch, 4)) data &= machine.root_device().ioport("KEY4")->read(); - if (!BIT(keylatch, 5)) data &= machine.root_device().ioport("KEY5")->read(); - if (!BIT(keylatch, 6)) data &= machine.root_device().ioport("KEY6")->read(); - if (!BIT(keylatch, 7)) data &= machine.root_device().ioport("KEY7")->read(); - if (!BIT(keylatch, 8)) data &= machine.root_device().ioport("KEY8")->read(); - - return data; -} - READ8_MEMBER( pc8201_state::bank_r ) { /* @@ -274,7 +257,7 @@ READ8_MEMBER( kc85_state::uart_status_r ) data |= 0x20; // low power sensor - data |= BIT(ioport("BATTERY")->read(), 0) << 7; + data |= BIT(m_battery->read(), 0) << 7; return data; } @@ -316,7 +299,7 @@ READ8_MEMBER( pc8201_state::uart_status_r ) data |= 0x20; // low power sensor - data |= BIT(ioport("BATTERY")->read(), 0) << 7; + data |= BIT(m_battery->read(), 0) << 7; return data; } @@ -391,7 +374,7 @@ READ8_MEMBER( pc8201_state::romrd_r ) if (m_rom_sel) { - data = memregion("option")->base()[m_rom_addr & 0x1ffff]; + data = m_option->base()[m_rom_addr & 0x1ffff]; } return data; @@ -449,7 +432,19 @@ WRITE8_MEMBER( kc85_state::ctrl_w ) READ8_MEMBER( kc85_state::keyboard_r ) { - return read_keyboard(machine(), m_keylatch); + UINT8 data = 0xff; + + if (!BIT(m_keylatch, 0)) data &= m_y0->read(); + if (!BIT(m_keylatch, 1)) data &= m_y1->read(); + if (!BIT(m_keylatch, 2)) data &= m_y2->read(); + if (!BIT(m_keylatch, 3)) data &= m_y3->read(); + if (!BIT(m_keylatch, 4)) data &= m_y4->read(); + if (!BIT(m_keylatch, 5)) data &= m_y5->read(); + if (!BIT(m_keylatch, 6)) data &= m_y6->read(); + if (!BIT(m_keylatch, 7)) data &= m_y7->read(); + if (!BIT(m_keylatch, 8)) data &= m_y8->read(); + + return data; } void tandy200_state::bankswitch(UINT8 data) @@ -497,7 +492,19 @@ WRITE8_MEMBER( tandy200_state::bank_w ) READ8_MEMBER( tandy200_state::stbk_r ) { - return read_keyboard(machine(), m_keylatch); + UINT8 data = 0xff; + + if (!BIT(m_keylatch, 0)) data &= m_y0->read(); + if (!BIT(m_keylatch, 1)) data &= m_y1->read(); + if (!BIT(m_keylatch, 2)) data &= m_y2->read(); + if (!BIT(m_keylatch, 3)) data &= m_y3->read(); + if (!BIT(m_keylatch, 4)) data &= m_y4->read(); + if (!BIT(m_keylatch, 5)) data &= m_y5->read(); + if (!BIT(m_keylatch, 6)) data &= m_y6->read(); + if (!BIT(m_keylatch, 7)) data &= m_y7->read(); + if (!BIT(m_keylatch, 8)) data &= m_y8->read(); + + return data; } WRITE8_MEMBER( tandy200_state::stbk_w ) @@ -627,7 +634,7 @@ ADDRESS_MAP_END /* Input Ports */ static INPUT_PORTS_START( kc85 ) - PORT_START("KEY0") + PORT_START("Y0") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') @@ -637,7 +644,7 @@ static INPUT_PORTS_START( kc85 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') - PORT_START("KEY1") + PORT_START("Y1") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') @@ -647,7 +654,7 @@ static INPUT_PORTS_START( kc85 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') - PORT_START("KEY2") + PORT_START("Y2") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') @@ -657,7 +664,7 @@ static INPUT_PORTS_START( kc85 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') - PORT_START("KEY3") + PORT_START("Y3") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') @@ -667,7 +674,7 @@ static INPUT_PORTS_START( kc85 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') - PORT_START("KEY4") + PORT_START("Y4") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('^') @@ -677,7 +684,7 @@ static INPUT_PORTS_START( kc85 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') - PORT_START("KEY5") + PORT_START("Y5") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_DOWN) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) @@ -687,7 +694,7 @@ static INPUT_PORTS_START( kc85 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR(')') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(') - PORT_START("KEY6") + PORT_START("Y6") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("PRINT") PORT_CODE(KEYCODE_F11) PORT_CHAR(UCHAR_MAMEKEY(F11)) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LABEL") PORT_CODE(KEYCODE_F10) PORT_CHAR(UCHAR_MAMEKEY(F10)) @@ -697,7 +704,7 @@ static INPUT_PORTS_START( kc85 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("DEL BKSP") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_START("KEY7") + PORT_START("Y7") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F8") PORT_CODE(KEYCODE_F8) PORT_CHAR(UCHAR_MAMEKEY(F8)) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F7") PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(F7)) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F6") PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(F6)) @@ -707,7 +714,7 @@ static INPUT_PORTS_START( kc85 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) - PORT_START("KEY8") + PORT_START("Y8") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("PAUSE BREAK") PORT_CODE(KEYCODE_F12) PORT_CHAR(UCHAR_MAMEKEY(F12)) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CAPS LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE @@ -726,7 +733,7 @@ INPUT_PORTS_END static INPUT_PORTS_START( pc8201a ) PORT_INCLUDE( kc85 ) - PORT_MODIFY("KEY3") + PORT_MODIFY("Y3") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(']') PORT_CHAR('}') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') @@ -734,13 +741,13 @@ static INPUT_PORTS_START( pc8201a ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('\\') PORT_CHAR('|') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') PORT_CHAR('^') - PORT_MODIFY("KEY4") + PORT_MODIFY("Y4") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"') - PORT_MODIFY("KEY5") + PORT_MODIFY("Y5") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("PAST INS") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT)) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_RALT) PORT_CHAR('[') PORT_CHAR('{') @@ -750,7 +757,7 @@ static INPUT_PORTS_START( pc8201a ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('_') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') - PORT_MODIFY("KEY6") + PORT_MODIFY("Y6") PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xE2\x86\x92|") PORT_CODE(KEYCODE_TAB) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) @@ -759,7 +766,7 @@ static INPUT_PORTS_START( pc8201a ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("DEL BKSP") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) - PORT_MODIFY("KEY7") + PORT_MODIFY("Y7") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("STOP") PORT_CODE(KEYCODE_F8) PORT_CHAR(UCHAR_MAMEKEY(F8)) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -769,7 +776,7 @@ static INPUT_PORTS_START( pc8201a ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("f.2") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("f.1") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) - PORT_MODIFY("KEY8") + PORT_MODIFY("Y8") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -778,7 +785,7 @@ static INPUT_PORTS_START( pc8201a ) INPUT_PORTS_END static INPUT_PORTS_START( olivm10 ) - PORT_START("KEY0") + PORT_START("Y0") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') @@ -788,7 +795,7 @@ static INPUT_PORTS_START( olivm10 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') - PORT_START("KEY1") + PORT_START("Y1") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('^') PORT_CHAR('~') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('_') @@ -798,7 +805,7 @@ static INPUT_PORTS_START( olivm10 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') - PORT_START("KEY2") + PORT_START("Y2") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') @@ -808,7 +815,7 @@ static INPUT_PORTS_START( olivm10 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') PORT_CHAR('`') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}') - PORT_START("KEY3") + PORT_START("Y3") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') @@ -818,7 +825,7 @@ static INPUT_PORTS_START( olivm10 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR('\\') PORT_CHAR('|') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') - PORT_START("KEY4") + PORT_START("Y4") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') @@ -828,7 +835,7 @@ static INPUT_PORTS_START( olivm10 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') - PORT_START("KEY5") + PORT_START("Y5") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') @@ -838,7 +845,7 @@ static INPUT_PORTS_START( olivm10 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') - PORT_START("KEY6") + PORT_START("Y6") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("PASTE") PORT_CODE(KEYCODE_F9) PORT_CHAR(UCHAR_MAMEKEY(F9)) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xE2\x86\x92|") PORT_CODE(KEYCODE_TAB) PORT_CHAR('\t') @@ -848,7 +855,7 @@ static INPUT_PORTS_START( olivm10 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_LEFT) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) - PORT_START("KEY7") + PORT_START("Y7") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F8") PORT_CODE(KEYCODE_F8) PORT_CHAR(UCHAR_MAMEKEY(F8)) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F7") PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(F7)) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F6") PORT_CODE(KEYCODE_F6) PORT_CHAR(UCHAR_MAMEKEY(F6)) @@ -858,7 +865,7 @@ static INPUT_PORTS_START( olivm10 ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) - PORT_START("KEY8") + PORT_START("Y8") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("PAUSE BREAK") PORT_CODE(KEYCODE_F12) PORT_CHAR(UCHAR_MAMEKEY(F12)) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CAPS LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_TOGGLE PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("NUM") PORT_CODE(KEYCODE_RALT) PORT_CHAR(UCHAR_MAMEKEY(RALT)) @@ -1136,8 +1143,8 @@ void kc85_state::machine_start() /* configure ROM banking */ program.install_read_bank(0x0000, 0x7fff, "bank1"); program.unmap_write(0x0000, 0x7fff); - membank("bank1")->configure_entry(0, memregion(I8085_TAG)->base()); - membank("bank1")->configure_entry(1, memregion("option")->base()); + membank("bank1")->configure_entry(0, m_rom->base()); + membank("bank1")->configure_entry(1, m_option->base()); membank("bank1")->set_entry(0); /* configure RAM banking */ @@ -1172,8 +1179,8 @@ void pc8201_state::machine_start() m_rtc->oe_w(1); /* configure ROM banking */ - membank("bank1")->configure_entry(0, memregion(I8085_TAG)->base()); - membank("bank1")->configure_entry(1, memregion("option")->base()); + membank("bank1")->configure_entry(0, m_rom->base()); + membank("bank1")->configure_entry(1, m_option->base()); membank("bank1")->configure_entries(2, 2, ram + 0x8000, 0x8000); membank("bank1")->set_entry(0); @@ -1203,8 +1210,8 @@ void trsm100_state::machine_start() /* configure ROM banking */ program.install_read_bank(0x0000, 0x7fff, "bank1"); program.unmap_write(0x0000, 0x7fff); - membank("bank1")->configure_entry(0, memregion(I8085_TAG)->base()); - membank("bank1")->configure_entry(1, memregion("option")->base()); + membank("bank1")->configure_entry(0, m_rom->base()); + membank("bank1")->configure_entry(1, m_option->base()); membank("bank1")->set_entry(0); /* configure RAM banking */ @@ -1243,9 +1250,9 @@ void trsm100_state::machine_start() void tandy200_state::machine_start() { /* configure ROM banking */ - membank("bank1")->configure_entry(0, memregion(I8085_TAG)->base()); - membank("bank1")->configure_entry(1, memregion(I8085_TAG)->base() + 0x10000); - membank("bank1")->configure_entry(2, memregion("option")->base()); + membank("bank1")->configure_entry(0, m_rom->base()); + membank("bank1")->configure_entry(1, m_rom->base() + 0x10000); + membank("bank1")->configure_entry(2, m_option->base()); membank("bank1")->set_entry(0); /* configure RAM banking */ diff --git a/src/mess/drivers/lc80.c b/src/mess/drivers/lc80.c index f83b9d98ee1..4819ce39093 100644 --- a/src/mess/drivers/lc80.c +++ b/src/mess/drivers/lc80.c @@ -80,7 +80,7 @@ INPUT_CHANGED_MEMBER( lc80_state::trigger_nmi ) } static INPUT_PORTS_START( lc80 ) - PORT_START("ROW0") + PORT_START("Y0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') @@ -88,7 +88,7 @@ static INPUT_PORTS_START( lc80 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("-") PORT_CODE(KEYCODE_DOWN) PORT_CHAR('V') - PORT_START("ROW1") + PORT_START("Y1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LD") PORT_CODE(KEYCODE_L) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("+") PORT_CODE(KEYCODE_UP) PORT_CHAR('^') @@ -96,7 +96,7 @@ static INPUT_PORTS_START( lc80 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') - PORT_START("ROW2") + PORT_START("Y2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ST") PORT_CODE(KEYCODE_S) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') @@ -104,7 +104,7 @@ static INPUT_PORTS_START( lc80 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("DAT") PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') - PORT_START("ROW3") + PORT_START("Y3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("EX") PORT_CODE(KEYCODE_X) PORT_CHAR('X') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') @@ -190,7 +190,7 @@ READ8_MEMBER( lc80_state::pio1_pb_r ) */ - return ((m_cassette)->input() < +0.0); + return (m_cassette->input() < +0.0); } WRITE8_MEMBER( lc80_state::pio1_pb_w ) @@ -261,10 +261,10 @@ READ8_MEMBER( lc80_state::pio2_pb_r ) { if (!BIT(m_digit, i)) { - if (!BIT(ioport("ROW0")->read(), i)) data &= ~0x10; - if (!BIT(ioport("ROW1")->read(), i)) data &= ~0x20; - if (!BIT(ioport("ROW2")->read(), i)) data &= ~0x40; - if (!BIT(ioport("ROW3")->read(), i)) data &= ~0x80; + if (!BIT(m_y0->read(), i)) data &= ~0x10; + if (!BIT(m_y1->read(), i)) data &= ~0x20; + if (!BIT(m_y2->read(), i)) data &= ~0x40; + if (!BIT(m_y3->read(), i)) data &= ~0x80; } } @@ -299,19 +299,19 @@ void lc80_state::machine_start() address_space &program = m_maincpu->space(AS_PROGRAM); /* setup memory banking */ - membank("bank1")->configure_entry(0, memregion(Z80_TAG)->base()); // TODO - membank("bank1")->configure_entry(1, memregion(Z80_TAG)->base()); + membank("bank1")->configure_entry(0, m_rom->base()); // TODO + membank("bank1")->configure_entry(1, m_rom->base()); membank("bank1")->set_entry(1); - membank("bank2")->configure_entry(0, memregion(Z80_TAG)->base() + 0x800); // TODO - membank("bank2")->configure_entry(1, memregion(Z80_TAG)->base() + 0x800); + membank("bank2")->configure_entry(0, m_rom->base() + 0x800); // TODO + membank("bank2")->configure_entry(1, m_rom->base() + 0x800); membank("bank2")->set_entry(1); - membank("bank3")->configure_entry(0, memregion(Z80_TAG)->base() + 0x1000); // TODO - membank("bank3")->configure_entry(1, memregion(Z80_TAG)->base() + 0x1000); + membank("bank3")->configure_entry(0, m_rom->base() + 0x1000); // TODO + membank("bank3")->configure_entry(1, m_rom->base() + 0x1000); membank("bank3")->set_entry(1); - membank("bank4")->configure_entry(0, memregion(Z80_TAG)->base() + 0x2000); + membank("bank4")->configure_entry(0, m_rom->base() + 0x2000); membank("bank4")->set_entry(0); program.install_readwrite_bank(0x0000, 0x07ff, "bank1"); diff --git a/src/mess/drivers/m5.c b/src/mess/drivers/m5.c index 465fac5c982..cdab1d0b4be 100644 --- a/src/mess/drivers/m5.c +++ b/src/mess/drivers/m5.c @@ -66,13 +66,13 @@ READ8_MEMBER( m5_state::sts_r ) UINT8 data = 0; // cassette input - data |= (m_cassette)->input() >= 0 ? 1 : 0; + data |= m_cassette->input() >= 0 ? 1 : 0; // centronics busy data |= m_centronics->busy_r() << 1; // RESET key - data |= ioport("RESET")->read(); + data |= m_reset->read(); return data; } diff --git a/src/mess/drivers/mc1000.c b/src/mess/drivers/mc1000.c index ac2b23e79f4..6d4d5fb35be 100644 --- a/src/mess/drivers/mc1000.c +++ b/src/mess/drivers/mc1000.c @@ -164,7 +164,7 @@ static INPUT_PORTS_START( mc1000 ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) /* = '0' */ PORT_BIT( 0xe0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("ROW0") + PORT_START("Y0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('@') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('H') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('P') @@ -173,7 +173,7 @@ static INPUT_PORTS_START( mc1000 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("ROW1") + PORT_START("Y1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('I') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('Q') @@ -182,7 +182,7 @@ static INPUT_PORTS_START( mc1000 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("ROW2") + PORT_START("Y2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('B') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('J') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CHAR('R') @@ -191,7 +191,7 @@ static INPUT_PORTS_START( mc1000 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*') PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("ROW3") + PORT_START("Y3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('C') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('K') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('S') @@ -200,7 +200,7 @@ static INPUT_PORTS_START( mc1000 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('+') PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("ROW4") + PORT_START("Y4") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('D') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('L') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_CHAR('T') @@ -209,7 +209,7 @@ static INPUT_PORTS_START( mc1000 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("ROW5") + PORT_START("Y5") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('E') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('M') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('U') @@ -218,7 +218,7 @@ static INPUT_PORTS_START( mc1000 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("ROW6") + PORT_START("Y6") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('F') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('N') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('V') @@ -227,7 +227,7 @@ static INPUT_PORTS_START( mc1000 ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("ROW7") + PORT_START("Y7") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('G') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('O') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('W') @@ -287,22 +287,22 @@ READ8_MEMBER( mc1000_state::keydata_r ) if (!BIT(m_keylatch, 0)) { - data &= ioport("ROW0")->read(); - if (ioport("JOYBKEYMAP")->read()) data &= ioport("JOYB")->read(); + data &= m_y0->read(); + if (m_joybkeymap->read()) data &= m_joyb->read(); } if (!BIT(m_keylatch, 1)) { - data &= ioport("ROW1")->read(); - if (ioport("JOYAKEYMAP")->read()) data &= ioport("JOYA")->read(); + data &= m_y1->read(); + if (m_joyakeymap->read()) data &= m_joya->read(); } - if (!BIT(m_keylatch, 2)) data &= ioport("ROW2")->read(); - if (!BIT(m_keylatch, 3)) data &= ioport("ROW3")->read(); - if (!BIT(m_keylatch, 4)) data &= ioport("ROW4")->read(); - if (!BIT(m_keylatch, 5)) data &= ioport("ROW5")->read(); - if (!BIT(m_keylatch, 6)) data &= ioport("ROW6")->read(); - if (!BIT(m_keylatch, 7)) data &= ioport("ROW7")->read(); + if (!BIT(m_keylatch, 2)) data &= m_y2->read(); + if (!BIT(m_keylatch, 3)) data &= m_y3->read(); + if (!BIT(m_keylatch, 4)) data &= m_y4->read(); + if (!BIT(m_keylatch, 5)) data &= m_y5->read(); + if (!BIT(m_keylatch, 6)) data &= m_y6->read(); + if (!BIT(m_keylatch, 7)) data &= m_y7->read(); - data = (ioport("MODIFIERS")->read() & 0xc0) | (data & 0x3f); + data = (m_modifiers->read() & 0xc0) | (data & 0x3f); if (m_cassette->input() < +0.0) data &= 0x7f; @@ -326,7 +326,7 @@ void mc1000_state::machine_start() address_space &program = m_maincpu->space(AS_PROGRAM); /* setup memory banking */ - UINT8 *rom = memregion(Z80_TAG)->base(); + UINT8 *rom = m_rom->base(); program.install_readwrite_bank(0x0000, 0x1fff, "bank1"); membank("bank1")->configure_entry(0, rom); @@ -496,7 +496,7 @@ DIRECT_UPDATE_MEMBER(mc1000_state::mc1000_direct_update_handler) DRIVER_INIT_MEMBER(mc1000_state,mc1000) { - machine().device(Z80_TAG)->memory().space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(mc1000_state::mc1000_direct_update_handler), this)); + m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(mc1000_state::mc1000_direct_update_handler), this)); } /* System Drivers */ diff --git a/src/mess/drivers/mpf1.c b/src/mess/drivers/mpf1.c index fc495d3b74f..7caf1a31085 100644 --- a/src/mess/drivers/mpf1.c +++ b/src/mess/drivers/mpf1.c @@ -218,15 +218,15 @@ READ8_MEMBER( mpf1_state::ppi_pa_r ) UINT8 data = 0x7f; /* bit 0 to 5, keyboard rows 0 to 5 */ - if (!BIT(m_lednum, 0)) data &= ioport("PC0")->read(); - if (!BIT(m_lednum, 1)) data &= ioport("PC1")->read(); - if (!BIT(m_lednum, 2)) data &= ioport("PC2")->read(); - if (!BIT(m_lednum, 3)) data &= ioport("PC3")->read(); - if (!BIT(m_lednum, 4)) data &= ioport("PC4")->read(); - if (!BIT(m_lednum, 5)) data &= ioport("PC5")->read(); + if (!BIT(m_lednum, 0)) data &= m_pc0->read(); + if (!BIT(m_lednum, 1)) data &= m_pc1->read(); + if (!BIT(m_lednum, 2)) data &= m_pc2->read(); + if (!BIT(m_lednum, 3)) data &= m_pc3->read(); + if (!BIT(m_lednum, 4)) data &= m_pc4->read(); + if (!BIT(m_lednum, 5)) data &= m_pc5->read(); /* bit 6, user key */ - data &= ioport("SPECIAL")->read() & 1 ? 0xff : 0xbf; + data &= m_special->read() & 1 ? 0xff : 0xbf; /* bit 7, tape input */ data |= ((m_cassette)->input() > 0 ? 1 : 0) << 7; diff --git a/src/mess/drivers/newbrain.c b/src/mess/drivers/newbrain.c index a1d6e9be1c3..dbe63b081a2 100644 --- a/src/mess/drivers/newbrain.c +++ b/src/mess/drivers/newbrain.c @@ -87,7 +87,7 @@ void newbrain_eim_state::bankswitch() case 0: /* ROM */ memory_install_rom_helper(program, bank_name, bank_start, bank_end); - membank(bank_name)->configure_entry(0, memregion("eim")->base() + eim_bank_start); + membank(bank_name)->configure_entry(0, m_eim_rom->base() + eim_bank_start); break; case 2: @@ -119,11 +119,11 @@ void newbrain_state::bankswitch() { /* all banks point to ROM at 0xe000 */ memory_install_rom_helper(program, bank_name, bank_start, bank_end); - membank(bank_name)->configure_entry(0, memregion(Z80_TAG)->base() + 0xe000); + membank(bank_name)->configure_entry(0, m_rom->base() + 0xe000); } else { - membank(bank_name)->configure_entry(0, memregion(Z80_TAG)->base() + bank_start); + membank(bank_name)->configure_entry(0, m_rom->base() + bank_start); if (bank < 5) { @@ -133,16 +133,16 @@ void newbrain_state::bankswitch() else if (bank == 5) { /* 0x8000-0x9fff */ - if (machine().root_device().memregion("eim")->base()) + if (m_eim_rom->base()) { /* expansion interface ROM */ memory_install_rom_helper(program, bank_name, bank_start, bank_end); - membank(bank_name)->configure_entry(0, memregion("eim")->base() + 0x4000); + membank(bank_name)->configure_entry(0, m_eim_rom->base() + 0x4000); } else { /* mirror of 0xa000-0xbfff */ - if (machine().root_device().memregion(Z80_TAG)->base()[0xa001] == 0) + if (m_rom->base()[0xa001] == 0) { /* unmapped on the M model */ memory_install_unmapped(program, bank_name, bank_start, bank_end); @@ -153,13 +153,13 @@ void newbrain_state::bankswitch() memory_install_rom_helper(program, bank_name, bank_start, bank_end); } - membank(bank_name)->configure_entry(0, memregion(Z80_TAG)->base() + 0xa000); + membank(bank_name)->configure_entry(0, m_rom->base() + 0xa000); } } else if (bank == 6) { /* 0xa000-0xbfff */ - if (machine().root_device().memregion(Z80_TAG)->base()[0xa001] == 0) + if (m_rom->base()[0xa001] == 0) { /* unmapped on the M model */ memory_install_unmapped(program, bank_name, bank_start, bank_end); @@ -443,10 +443,8 @@ WRITE8_MEMBER( newbrain_state::cop_d_w ) */ - static const char *const keynames[] = { - "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7", - "D8", "D9", "D10", "D11", "D12", "D13", "D14", "D15" - }; + ioport_port* ports[16] = { m_y0, m_y1, m_y2, m_y3, m_y4, m_y5, m_y6, m_y7, + m_y8, m_y9, m_y10, m_y11, m_y12, m_y13, m_y14, m_y15 }; /* keyboard row reset */ @@ -473,7 +471,7 @@ WRITE8_MEMBER( newbrain_state::cop_d_w ) m_keylatch = 0; } - m_keydata = ioport(keynames[m_keylatch])->read(); + m_keydata = ports[m_keylatch]->read(); output_set_digit_value(m_keylatch, m_segment_data[m_keylatch]); } @@ -1057,97 +1055,97 @@ ADDRESS_MAP_END /* Input Ports */ static INPUT_PORTS_START( newbrain ) - PORT_START("D0") + PORT_START("Y0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("STOP") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(END)) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("D1") + PORT_START("Y1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_DOWN) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_LEFT) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) - PORT_START("D2") + PORT_START("Y2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') - PORT_START("D3") + PORT_START("Y3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') - PORT_START("D4") + PORT_START("Y4") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') - PORT_START("D5") + PORT_START("Y5") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('(') PORT_CHAR('[') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('<') - PORT_START("D6") + PORT_START("Y6") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR(')') PORT_CHAR(']') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') - PORT_START("D7") + PORT_START("Y7") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("* \xC2\xA3") PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('*') PORT_CHAR(0x00A3) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"') PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') - PORT_START("D8") + PORT_START("Y8") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("VIDEO TEXT") PORT_CODE(KEYCODE_RALT) PORT_CHAR(UCHAR_MAMEKEY(RALT)) // Vd PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') - PORT_START("D9") + PORT_START("Y9") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') - PORT_START("D10") + PORT_START("Y10") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('@') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') - PORT_START("D11") + PORT_START("Y11") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('-') PORT_CHAR('\\') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') - PORT_START("D12") + PORT_START("Y12") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('+') PORT_CHAR('^') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("INSERT") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT)) - PORT_START("D13") + PORT_START("Y13") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("NEW LINE") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) // NL PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') - PORT_START("D14") + PORT_START("Y14") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("HOME") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME)) // CH - PORT_START("D15") + PORT_START("Y15") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) // SH PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("GRAPHICS") PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_MAMEKEY(LALT)) // GR PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("REPEAT") // RPT diff --git a/src/mess/drivers/pc8001.c b/src/mess/drivers/pc8001.c index a6cc040a7d7..33d7a3ebbed 100644 --- a/src/mess/drivers/pc8001.c +++ b/src/mess/drivers/pc8001.c @@ -160,16 +160,16 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( pc8001_io, AS_IO, 8, pc8001_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x00, 0x00) AM_READ_PORT("KEY0") - AM_RANGE(0x01, 0x01) AM_READ_PORT("KEY1") - AM_RANGE(0x02, 0x02) AM_READ_PORT("KEY2") - AM_RANGE(0x03, 0x03) AM_READ_PORT("KEY3") - AM_RANGE(0x04, 0x04) AM_READ_PORT("KEY4") - AM_RANGE(0x05, 0x05) AM_READ_PORT("KEY5") - AM_RANGE(0x06, 0x06) AM_READ_PORT("KEY6") - AM_RANGE(0x07, 0x07) AM_READ_PORT("KEY7") - AM_RANGE(0x08, 0x08) AM_READ_PORT("KEY8") - AM_RANGE(0x09, 0x09) AM_READ_PORT("KEY9") + AM_RANGE(0x00, 0x00) AM_READ_PORT("Y0") + AM_RANGE(0x01, 0x01) AM_READ_PORT("Y1") + AM_RANGE(0x02, 0x02) AM_READ_PORT("Y2") + AM_RANGE(0x03, 0x03) AM_READ_PORT("Y3") + AM_RANGE(0x04, 0x04) AM_READ_PORT("Y4") + AM_RANGE(0x05, 0x05) AM_READ_PORT("Y5") + AM_RANGE(0x06, 0x06) AM_READ_PORT("Y6") + AM_RANGE(0x07, 0x07) AM_READ_PORT("Y7") + AM_RANGE(0x08, 0x08) AM_READ_PORT("Y8") + AM_RANGE(0x09, 0x09) AM_READ_PORT("Y9") AM_RANGE(0x10, 0x10) AM_MIRROR(0x0f) AM_WRITE(port10_w) AM_RANGE(0x20, 0x20) AM_MIRROR(0x0e) AM_DEVREADWRITE(I8251_TAG, i8251_device, data_r, data_w) AM_RANGE(0x21, 0x21) AM_MIRROR(0x0e) AM_DEVREADWRITE(I8251_TAG, i8251_device, status_r, control_w) @@ -235,7 +235,7 @@ ADDRESS_MAP_END /* Input Ports */ static INPUT_PORTS_START( pc8001 ) - PORT_START("KEY0") + PORT_START("Y0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0_PAD) PORT_CHAR(UCHAR_MAMEKEY(0_PAD)) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1_PAD) PORT_CHAR(UCHAR_MAMEKEY(1_PAD)) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2_PAD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD)) @@ -245,7 +245,7 @@ static INPUT_PORTS_START( pc8001 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6_PAD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD)) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7_PAD) PORT_CHAR(UCHAR_MAMEKEY(7_PAD)) - PORT_START("KEY1") + PORT_START("Y1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8_PAD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD)) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD)) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR(UCHAR_MAMEKEY(ASTERISK)) @@ -255,7 +255,7 @@ static INPUT_PORTS_START( pc8001 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_CHAR(13) - PORT_START("KEY2") + PORT_START("Y2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') @@ -265,7 +265,7 @@ static INPUT_PORTS_START( pc8001 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') - PORT_START("KEY3") + PORT_START("Y3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') @@ -275,7 +275,7 @@ static INPUT_PORTS_START( pc8001 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') - PORT_START("KEY4") + PORT_START("Y4") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') @@ -285,7 +285,7 @@ static INPUT_PORTS_START( pc8001 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') - PORT_START("KEY5") + PORT_START("Y5") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') @@ -295,7 +295,7 @@ static INPUT_PORTS_START( pc8001 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('^') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('=') - PORT_START("KEY6") + PORT_START("Y6") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"') @@ -305,7 +305,7 @@ static INPUT_PORTS_START( pc8001 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') - PORT_START("KEY7") + PORT_START("Y7") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*') @@ -315,7 +315,7 @@ static INPUT_PORTS_START( pc8001 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(" _") PORT_CODE(KEYCODE_DEL) PORT_CHAR(0) PORT_CHAR('_') - PORT_START("KEY8") + PORT_START("Y8") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Clr Home") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME)) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) @@ -325,7 +325,7 @@ static INPUT_PORTS_START( pc8001 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_SHIFT_2) - PORT_START("KEY9") + PORT_START("Y9") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Stop") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC)) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) @@ -338,14 +338,6 @@ static INPUT_PORTS_START( pc8001 ) PORT_START("DSW1") INPUT_PORTS_END -/* Video */ - -void pc8001_state::video_start() -{ - // find memory regions - m_char_rom = memregion("chargen")->base(); -} - /* uPD3301 Interface */ static const rgb_t PALETTE[] = @@ -364,7 +356,7 @@ static UPD3301_DISPLAY_PIXELS( pc8001_display_pixels ) { pc8001_state *state = device->machine().driver_data(); - UINT8 data = state->m_char_rom[(cc << 3) | lc]; + UINT8 data = state->m_char_rom->base()[(cc << 3) | lc]; int i; if (lc >= 8) return; @@ -503,7 +495,7 @@ void pc8001_state::machine_start() /* setup memory banking */ UINT8 *ram = m_ram->pointer(); - membank("bank1")->configure_entry(1, memregion("n80")->base()); + membank("bank1")->configure_entry(1, m_rom->base()); program.install_read_bank(0x0000, 0x5fff, "bank1"); program.unmap_write(0x0000, 0x5fff); @@ -624,7 +616,7 @@ MACHINE_CONFIG_END /* ROMs */ ROM_START( pc8001 ) - ROM_REGION( 0x6000, "n80", 0 ) + ROM_REGION( 0x6000, Z80_TAG, 0 ) ROM_SYSTEM_BIOS( 0, "v101", "N-BASIC v1.01" ) ROMX_LOAD( "n80v101.rom", 0x00000, 0x6000, CRC(a2cc9f22) SHA1(6d2d838de7fea20ddf6601660d0525d5b17bf8a3), ROM_BIOS(1) ) ROM_SYSTEM_BIOS( 1, "v102", "N-BASIC v1.02" ) @@ -632,15 +624,15 @@ ROM_START( pc8001 ) ROM_SYSTEM_BIOS( 2, "v110", "N-BASIC v1.10" ) ROMX_LOAD( "n80v110.rom", 0x00000, 0x6000, CRC(1e02d93f) SHA1(4603cdb7a3833e7feb257b29d8052c872369e713), ROM_BIOS(3) ) - ROM_REGION( 0x800, "chargen", 0) + ROM_REGION( 0x800, UPD3301_TAG, 0) ROM_LOAD( "font.rom", 0x000, 0x800, CRC(56653188) SHA1(84b90f69671d4b72e8f219e1fe7cd667e976cf7f) ) ROM_END ROM_START( pc8001mk2 ) - ROM_REGION( 0x8000, "n80", 0 ) + ROM_REGION( 0x8000, Z80_TAG, 0 ) ROM_LOAD( "n80_2.rom", 0x00000, 0x8000, CRC(03cce7b6) SHA1(c12d34e42021110930fed45a8af98db52136f1fb) ) - ROM_REGION( 0x800, "chargen", 0) + ROM_REGION( 0x800, UPD3301_TAG, 0) ROM_LOAD( "font.rom", 0x0000, 0x0800, CRC(56653188) SHA1(84b90f69671d4b72e8f219e1fe7cd667e976cf7f) ) ROM_REGION( 0x20000, "kanji", 0) diff --git a/src/mess/drivers/pc8401a.c b/src/mess/drivers/pc8401a.c index 3c35e030df5..be17b0823e8 100644 --- a/src/mess/drivers/pc8401a.c +++ b/src/mess/drivers/pc8401a.c @@ -37,12 +37,12 @@ void pc8401a_state::scan_keyboard() { int row, strobe = 0; - static const char *const keynames[] = { "KEY0", "KEY1", "KEY2", "KEY3", "KEY4", "KEY5", "KEY6", "KEY7", "KEY8", "KEY9" }; + UINT8 keydata[10] = { m_y0->read(), m_y1->read(), m_y2->read(), m_y3->read(), m_y4->read(), m_y5->read(), m_y6->read(), m_y7->read(), m_y8->read(), m_y9->read() }; /* scan keyboard */ for (row = 0; row < 10; row++) { - UINT8 data = ioport(keynames[row])->read(); + UINT8 data = keydata[row]; if (data != 0xff) { @@ -259,11 +259,9 @@ WRITE8_MEMBER( pc8401a_state::rtc_ctrl_w ) READ8_MEMBER( pc8401a_state::io_rom_data_r ) { - UINT8 *iorom = memregion("iorom")->base(); - //logerror("I/O ROM read from %05x\n", m_io_addr); - return iorom[m_io_addr]; + return m_io_rom->base()[m_io_addr]; } WRITE8_MEMBER( pc8401a_state::io_rom_addr_w ) @@ -343,16 +341,16 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( pc8500_io, AS_IO, 8, pc8401a_state ) ADDRESS_MAP_UNMAP_HIGH ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_READ_PORT("KEY0") - AM_RANGE(0x01, 0x01) AM_READ_PORT("KEY1") - AM_RANGE(0x02, 0x02) AM_READ_PORT("KEY2") - AM_RANGE(0x03, 0x03) AM_READ_PORT("KEY3") - AM_RANGE(0x04, 0x04) AM_READ_PORT("KEY4") - AM_RANGE(0x05, 0x05) AM_READ_PORT("KEY5") - AM_RANGE(0x06, 0x06) AM_READ_PORT("KEY6") - AM_RANGE(0x07, 0x07) AM_READ_PORT("KEY7") - AM_RANGE(0x08, 0x08) AM_READ_PORT("KEY8") - AM_RANGE(0x09, 0x09) AM_READ_PORT("KEY9") + AM_RANGE(0x00, 0x00) AM_READ_PORT("Y0") + AM_RANGE(0x01, 0x01) AM_READ_PORT("Y1") + AM_RANGE(0x02, 0x02) AM_READ_PORT("Y2") + AM_RANGE(0x03, 0x03) AM_READ_PORT("Y3") + AM_RANGE(0x04, 0x04) AM_READ_PORT("Y4") + AM_RANGE(0x05, 0x05) AM_READ_PORT("Y5") + AM_RANGE(0x06, 0x06) AM_READ_PORT("Y6") + AM_RANGE(0x07, 0x07) AM_READ_PORT("Y7") + AM_RANGE(0x08, 0x08) AM_READ_PORT("Y8") + AM_RANGE(0x09, 0x09) AM_READ_PORT("Y9") AM_RANGE(0x10, 0x10) AM_WRITE(rtc_cmd_w) AM_RANGE(0x20, 0x20) AM_DEVREADWRITE(I8251_TAG, i8251_device, data_r, data_w) AM_RANGE(0x21, 0x21) AM_DEVREADWRITE(I8251_TAG, i8251_device, status_r, control_w) @@ -380,7 +378,7 @@ ADDRESS_MAP_END /* Input Ports */ static INPUT_PORTS_START( pc8401a ) - PORT_START("KEY0") + PORT_START("Y0") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("STOP")// PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC)) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) @@ -390,7 +388,7 @@ static INPUT_PORTS_START( pc8401a ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) - PORT_START("KEY1") + PORT_START("Y1") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('e') PORT_CHAR('E') @@ -400,7 +398,7 @@ static INPUT_PORTS_START( pc8401a ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') - PORT_START("KEY2") + PORT_START("Y2") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') @@ -410,7 +408,7 @@ static INPUT_PORTS_START( pc8401a ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') - PORT_START("KEY3") + PORT_START("Y3") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') @@ -420,7 +418,7 @@ static INPUT_PORTS_START( pc8401a ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') - PORT_START("KEY4") + PORT_START("Y4") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR('-') PORT_CHAR('*') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('*') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('*') @@ -430,7 +428,7 @@ static INPUT_PORTS_START( pc8401a ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X) PORT_CHAR('x') PORT_CHAR('X') - PORT_START("KEY5") + PORT_START("Y5") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('*') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('*') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('*') @@ -440,7 +438,7 @@ static INPUT_PORTS_START( pc8401a ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('*') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('*') - PORT_START("KEY6") + PORT_START("Y6") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('=') PORT_CHAR('*') PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('*') PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('*') @@ -450,7 +448,7 @@ static INPUT_PORTS_START( pc8401a ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('*') PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*') - PORT_START("KEY7") + PORT_START("Y7") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ESC") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(ESC)) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) // ^I PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5)) @@ -460,7 +458,7 @@ static INPUT_PORTS_START( pc8401a ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) // ^C - PORT_START("KEY8") + PORT_START("Y8") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F6) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F7) @@ -470,7 +468,7 @@ static INPUT_PORTS_START( pc8401a ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("KEY9") + PORT_START("Y9") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F8) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F9) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F10) @@ -489,12 +487,12 @@ void pc8401a_state::machine_start() m_rtc->cs_w(1); /* allocate CRT video RAM */ - m_crt_ram = auto_alloc_array(machine(), UINT8, PC8401A_CRT_VIDEORAM_SIZE); + m_crt_ram.allocate(PC8401A_CRT_VIDEORAM_SIZE); UINT8 *ram = m_ram->pointer(); /* set up A0/A1 memory banking */ - membank("bank1")->configure_entries(0, 4, memregion(Z80_TAG)->base(), 0x8000); + membank("bank1")->configure_entries(0, 4, m_rom->base(), 0x8000); membank("bank1")->configure_entries(4, 2, ram, 0x8000); membank("bank1")->set_entry(0); @@ -515,7 +513,6 @@ void pc8401a_state::machine_start() bankswitch(0); /* register for state saving */ - save_pointer(NAME(m_crt_ram), PC8401A_CRT_VIDEORAM_SIZE); save_item(NAME(m_mmr)); save_item(NAME(m_io_addr)); } diff --git a/src/mess/drivers/poly880.c b/src/mess/drivers/poly880.c index 0cc115587fa..63b4cc8eb20 100644 --- a/src/mess/drivers/poly880.c +++ b/src/mess/drivers/poly880.c @@ -187,16 +187,16 @@ READ8_MEMBER( poly880_state::pio1_pb_r ) */ - UINT8 data = 0xf0 | (((m_cassette)->input() < +0.0) << 1); + UINT8 data = 0xf0 | ((m_cassette->input() < +0.0) << 1); int i; for (i = 0; i < 8; i++) { if (BIT(m_digit, i)) { - if (!BIT(ioport("KI1")->read(), i)) data &= ~0x10; - if (!BIT(ioport("KI2")->read(), i)) data &= ~0x20; - if (!BIT(ioport("KI3")->read(), i)) data &= ~0x80; + if (!BIT(m_ki1->read(), i)) data &= ~0x10; + if (!BIT(m_ki2->read(), i)) data &= ~0x20; + if (!BIT(m_ki3->read(), i)) data &= ~0x80; } } diff --git a/src/mess/drivers/prof80.c b/src/mess/drivers/prof80.c index 7e9b1a49a87..be3d2683dec 100644 --- a/src/mess/drivers/prof80.c +++ b/src/mess/drivers/prof80.c @@ -49,7 +49,7 @@ void prof80_state::bankswitch() { address_space &program = m_maincpu->space(AS_PROGRAM); UINT8 *ram = m_ram->pointer(); - UINT8 *rom = memregion(Z80_TAG)->base(); + UINT8 *rom = m_rom->base(); int bank; for (bank = 0; bank < 16; bank++) @@ -100,10 +100,8 @@ void prof80_state::bankswitch() void prof80_state::floppy_motor_off() { - if(m_floppy0) - m_floppy0->mon_w(true); - if(m_floppy1) - m_floppy1->mon_w(true); + if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(1); + if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(1); m_motor = 0; } @@ -156,11 +154,9 @@ void prof80_state::ls259_w(int fa, int sa, int fb, int sb) else { // turn on floppy motor - if(m_floppy0) - m_floppy0->mon_w(false); - if(m_floppy1) - m_floppy1->mon_w(false); - + if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(0); + if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(0); + m_motor = 1; // reset floppy motor off NE555 timer @@ -271,11 +267,7 @@ READ8_MEMBER( prof80_state::status_r ) data |= 0x10; // floppy index - if(m_floppy0) - data |= m_floppy0->idx_r() << 5; - - if(m_floppy1) - data |= m_floppy1->idx_r() << 5; + data |= (m_floppy0->get_device() ? m_floppy0->get_device()->idx_r() : m_floppy1->get_device() ? m_floppy1->get_device()->idx_r() : 1) << 5; return data; } @@ -309,7 +301,7 @@ READ8_MEMBER( prof80_state::status2_r ) data |= !m_motor; // JS4 - switch (ioport("J4")->read()) + switch (m_j4->read()) { case 0: js4 = 0; break; case 1: js4 = 1; break; @@ -321,7 +313,7 @@ READ8_MEMBER( prof80_state::status2_r ) data |= js4 << 4; // JS5 - switch (ioport("J5")->read()) + switch (m_j5->read()) { case 0: js5 = 0; break; case 1: js5 = 1; break; diff --git a/src/mess/drivers/ql.c b/src/mess/drivers/ql.c index 5bfb3a792b0..952f3bfd363 100644 --- a/src/mess/drivers/ql.c +++ b/src/mess/drivers/ql.c @@ -247,14 +247,14 @@ READ8_MEMBER( ql_state::ipc_bus_r ) UINT8 data = 0; - if (BIT(m_keylatch, 0)) data |= ioport("ROW0")->read() | ioport("JOY0")->read(); - if (BIT(m_keylatch, 1)) data |= ioport("ROW1")->read() | ioport("JOY1")->read(); - if (BIT(m_keylatch, 2)) data |= ioport("ROW2")->read(); - if (BIT(m_keylatch, 3)) data |= ioport("ROW3")->read(); - if (BIT(m_keylatch, 4)) data |= ioport("ROW4")->read(); - if (BIT(m_keylatch, 5)) data |= ioport("ROW5")->read(); - if (BIT(m_keylatch, 6)) data |= ioport("ROW6")->read(); - if (BIT(m_keylatch, 7)) data |= ioport("ROW7")->read(); + if (BIT(m_keylatch, 0)) data |= m_y0->read() | m_joy0->read(); + if (BIT(m_keylatch, 1)) data |= m_y1->read() | m_joy1->read(); + if (BIT(m_keylatch, 2)) data |= m_y2->read(); + if (BIT(m_keylatch, 3)) data |= m_y3->read(); + if (BIT(m_keylatch, 4)) data |= m_y4->read(); + if (BIT(m_keylatch, 5)) data |= m_y5->read(); + if (BIT(m_keylatch, 6)) data |= m_y6->read(); + if (BIT(m_keylatch, 7)) data |= m_y7->read(); return data; } @@ -434,7 +434,7 @@ ADDRESS_MAP_END //------------------------------------------------- static INPUT_PORTS_START( ql ) - PORT_START("ROW0") + PORT_START("Y0") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4)) PORT_NAME("F4") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) PORT_NAME("F1") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('5') PORT_CHAR('%') @@ -444,7 +444,7 @@ static INPUT_PORTS_START( ql ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('&') - PORT_START("ROW1") + PORT_START("Y1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("ENTER") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(UTF8_LEFT) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(UTF8_UP) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) @@ -454,7 +454,7 @@ static INPUT_PORTS_START( ql ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SPACE") PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(UTF8_DOWN) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_START("ROW2") + PORT_START("Y2") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}') PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('>') @@ -464,7 +464,7 @@ static INPUT_PORTS_START( ql ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('\"') - PORT_START("ROW3") + PORT_START("Y3") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{') PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("CAPS LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') @@ -474,7 +474,7 @@ static INPUT_PORTS_START( ql ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR(':') - PORT_START("ROW4") + PORT_START("Y4") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR('#') PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') @@ -484,7 +484,7 @@ static INPUT_PORTS_START( ql ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') - PORT_START("ROW5") + PORT_START("Y5") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(') PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') @@ -494,7 +494,7 @@ static INPUT_PORTS_START( ql ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') - PORT_START("ROW6") + PORT_START("Y6") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('*') PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('@') PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('^') @@ -504,7 +504,7 @@ static INPUT_PORTS_START( ql ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T) PORT_CHAR('t') PORT_CHAR('T') PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') - PORT_START("ROW7") + PORT_START("Y7") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL)) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("ALT") PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_MAMEKEY(LALT)) PORT_CODE(KEYCODE_RALT) @@ -551,27 +551,27 @@ INPUT_PORTS_END static INPUT_PORTS_START( ql_es ) PORT_INCLUDE(ql) - PORT_MODIFY("ROW1") + PORT_MODIFY("Y1") PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_NAME("] \xc3\x9c") PORT_CHAR(']') PORT_CHAR(0xfc) PORT_CHAR(0xdc) - PORT_MODIFY("ROW2") + PORT_MODIFY("Y2") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('`') PORT_CHAR('^') PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR('!') PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("[ \xc3\x87") PORT_CODE(KEYCODE_TILDE) PORT_CHAR('[') PORT_CHAR(0xe7) PORT_CHAR(0xc7) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(';') PORT_CHAR(':') - PORT_MODIFY("ROW3") + PORT_MODIFY("Y3") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('\'') PORT_CHAR('"') PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\x91") PORT_CODE(KEYCODE_COLON) PORT_CHAR(0xf1) PORT_CHAR(0xd1) - PORT_MODIFY("ROW4") + PORT_MODIFY("Y4") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("1 \xc2\xa1") PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR(0xa1) - PORT_MODIFY("ROW6") + PORT_MODIFY("Y6") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("2 \xc2\xbf") PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR(0xbf) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('/') - PORT_MODIFY("ROW7") + PORT_MODIFY("Y7") PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('<') PORT_CHAR('>') PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('?') INPUT_PORTS_END @@ -584,39 +584,39 @@ INPUT_PORTS_END static INPUT_PORTS_START( ql_de ) PORT_INCLUDE(ql) - PORT_MODIFY("ROW0") + PORT_MODIFY("Y0") PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('/') - PORT_MODIFY("ROW1") + PORT_MODIFY("Y1") PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('<') PORT_CHAR('>') - PORT_MODIFY("ROW2") + PORT_MODIFY("Y2") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('+') PORT_CHAR('*') PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR(':') PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('\\') PORT_CHAR('^') PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\x84") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0xe4) PORT_CHAR(0xc4) - PORT_MODIFY("ROW3") + PORT_MODIFY("Y3") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\x9c") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR(0xfc) PORT_CHAR(0xdc) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('#') PORT_CHAR('\'') PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\x96") PORT_CODE(KEYCODE_COLON) PORT_CHAR(0xf6) PORT_CHAR(0xd6) - PORT_MODIFY("ROW4") + PORT_MODIFY("Y4") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("3 \xc2\xa3") PORT_CODE(KEYCODE_3) PORT_CHAR('3') PORT_CHAR(0xa7) - PORT_MODIFY("ROW5") + PORT_MODIFY("Y5") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR('(') PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\x9f ?") PORT_CODE(KEYCODE_MINUS) PORT_CHAR(0xdf) PORT_CHAR('?') PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') - PORT_MODIFY("ROW6") + PORT_MODIFY("Y6") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"') PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('=') - PORT_MODIFY("ROW7") + PORT_MODIFY("Y7") PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('-') PORT_CHAR('_') PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR(';') INPUT_PORTS_END @@ -629,15 +629,15 @@ INPUT_PORTS_END static INPUT_PORTS_START( ql_it ) PORT_INCLUDE(ql) - PORT_MODIFY("ROW0") + PORT_MODIFY("Y0") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5) PORT_CHAR('(') PORT_CHAR('5') PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('\'') PORT_CHAR('4') PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("7 \xc3\xa8") PORT_CODE(KEYCODE_7) PORT_CHAR('?') PORT_CHAR('7') - PORT_MODIFY("ROW1") + PORT_MODIFY("Y1") PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('<') PORT_CHAR('>') - PORT_MODIFY("ROW2") + PORT_MODIFY("Y2") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('$') PORT_CHAR('&') PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR(':') PORT_CHAR('/') @@ -645,27 +645,27 @@ static INPUT_PORTS_START( ql_it ) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_CHAR('?') PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\xb9 %") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0xf9) PORT_CHAR('%') - PORT_MODIFY("ROW3") + PORT_MODIFY("Y3") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\xac =") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR(0xec) PORT_CHAR('=') PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('-') PORT_CHAR('+') PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') - PORT_MODIFY("ROW4") + PORT_MODIFY("Y4") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3) PORT_CHAR('"') PORT_CHAR('3') PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('#') PORT_CHAR('1') - PORT_MODIFY("ROW5") + PORT_MODIFY("Y5") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\xa7 9") PORT_CODE(KEYCODE_9) PORT_CHAR(0xe7) PORT_CHAR('9') PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS) PORT_CHAR(')') PORT_CHAR('\\') - PORT_MODIFY("ROW6") + PORT_MODIFY("Y6") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('^') PORT_CHAR('8') PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\xa9 2") PORT_CODE(KEYCODE_2) PORT_CHAR(0xe9) PORT_CHAR('2') PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('_') PORT_CHAR('6') PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\xa0 0") PORT_CODE(KEYCODE_0) PORT_CHAR(0xe0) PORT_CHAR('0') - PORT_MODIFY("ROW7") + PORT_MODIFY("Y7") PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("\xc3\xb2 !") PORT_CODE(KEYCODE_SLASH) PORT_CHAR(0xf2) PORT_CHAR('!') PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COLON) PORT_CHAR(';') PORT_CHAR('.') INPUT_PORTS_END diff --git a/src/mess/drivers/sg1000.c b/src/mess/drivers/sg1000.c index f31d361d030..eabb6d72943 100644 --- a/src/mess/drivers/sg1000.c +++ b/src/mess/drivers/sg1000.c @@ -517,7 +517,7 @@ INPUT_PORTS_END WRITE_LINE_MEMBER(sg1000_state::sg1000_vdp_interrupt) { - machine().device(Z80_TAG)->execute().set_input_line(INPUT_LINE_IRQ0, state); + m_maincpu->set_input_line(INPUT_LINE_IRQ0, state); } static TMS9928A_INTERFACE(sg1000_tms9918a_interface) @@ -546,9 +546,9 @@ READ8_MEMBER( sc3000_state::ppi_pa_r ) PA7 Keyboard input */ - static const char *const keynames[] = { "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7" }; + ioport_port *ports[8] = { m_pa0, m_pa1, m_pa2, m_pa3, m_pa4, m_pa5, m_pa6, m_pa7 }; - return ioport(keynames[m_keylatch])->read(); + return ports[m_keylatch]->read(); } READ8_MEMBER( sc3000_state::ppi_pb_r ) @@ -566,10 +566,10 @@ READ8_MEMBER( sc3000_state::ppi_pb_r ) PB7 Cassette tape input */ - static const char *const keynames[] = { "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7" }; + ioport_port *ports[8] = { m_pb0, m_pb1, m_pb2, m_pb3, m_pb4, m_pb5, m_pb6, m_pb7 }; /* keyboard */ - UINT8 data = ioport(keynames[m_keylatch])->read(); + UINT8 data = ports[m_keylatch]->read(); /* cartridge contact */ data |= 0x10; @@ -578,7 +578,7 @@ READ8_MEMBER( sc3000_state::ppi_pb_r ) data |= 0x60; /* tape input */ - if ((m_cassette)->input() > +0.0) data |= 0x80; + if (m_cassette->input() > +0.0) data |= 0x80; return data; } @@ -647,14 +647,14 @@ void sg1000_state::install_cartridge(UINT8 *ptr, int size) case 40 * 1024: program.install_read_bank(0x8000, 0x9fff, "bank1"); program.unmap_write(0x8000, 0x9fff); - membank("bank1")->configure_entry(0, memregion(Z80_TAG)->base() + 0x8000); + membank("bank1")->configure_entry(0, m_rom->base() + 0x8000); membank("bank1")->set_entry(0); break; case 48 * 1024: program.install_read_bank(0x8000, 0xbfff, "bank1"); program.unmap_write(0x8000, 0xbfff); - membank("bank1")->configure_entry(0, memregion(Z80_TAG)->base() + 0x8000); + membank("bank1")->configure_entry(0, m_rom->base() + 0x8000); membank("bank1")->set_entry(0); break; @@ -682,8 +682,8 @@ static DEVICE_IMAGE_LOAD( sg1000_cart ) { running_machine &machine = image.device().machine(); sg1000_state *state = machine.driver_data(); - address_space &program = machine.device(Z80_TAG)->memory().space(AS_PROGRAM); - UINT8 *ptr = state->memregion(Z80_TAG)->base(); + address_space &program = state->m_maincpu->space(AS_PROGRAM); + UINT8 *ptr = state->m_rom->base(); UINT32 ram_size = 0x400; bool install_2000_ram = false; UINT32 size; @@ -797,7 +797,7 @@ static DEVICE_IMAGE_LOAD( omv_cart ) running_machine &machine = image.device().machine(); sg1000_state *state = machine.driver_data(); UINT32 size; - UINT8 *ptr = state->memregion(Z80_TAG)->base(); + UINT8 *ptr = state->m_rom->base(); if (image.software_entry() == NULL) { @@ -853,7 +853,7 @@ static DEVICE_IMAGE_LOAD( sc3000_cart ) { running_machine &machine = image.device().machine(); sc3000_state *state = machine.driver_data(); - UINT8 *ptr = state->memregion(Z80_TAG)->base(); + UINT8 *ptr = state->m_rom->base(); UINT32 size; if (image.software_entry() == NULL) @@ -986,7 +986,7 @@ static const sn76496_config psg_intf = TIMER_CALLBACK_MEMBER(sg1000_state::lightgun_tick) { - UINT8 *rom = machine().root_device().memregion(Z80_TAG)->base(); + UINT8 *rom = m_rom->base(); if (IS_CARTRIDGE_TV_DRAW(rom)) { @@ -1035,7 +1035,7 @@ void sc3000_state::machine_start() void sf7000_state::machine_start() { /* configure memory banking */ - membank("bank1")->configure_entry(0, memregion(Z80_TAG)->base()); + membank("bank1")->configure_entry(0, m_rom->base()); membank("bank1")->configure_entry(1, m_ram->pointer()); membank("bank2")->configure_entry(0, m_ram->pointer()); diff --git a/src/mess/drivers/super6.c b/src/mess/drivers/super6.c index eb7b8d3f785..52906cf4993 100644 --- a/src/mess/drivers/super6.c +++ b/src/mess/drivers/super6.c @@ -24,7 +24,7 @@ void super6_state::bankswitch() { address_space &program = m_maincpu->space(AS_PROGRAM); UINT8 *ram = m_ram->pointer(); - UINT8 *rom = memregion(Z80_TAG)->base(); + UINT8 *rom = m_rom->base(); // power on jump if (!BIT(m_bank0, 6)) { program.install_rom(0x0000, 0x07ff, 0, 0xf800, rom); return; } diff --git a/src/mess/drivers/tek405x.c b/src/mess/drivers/tek405x.c index 4a7c887a66a..47d94ee6915 100644 --- a/src/mess/drivers/tek405x.c +++ b/src/mess/drivers/tek405x.c @@ -23,14 +23,6 @@ */ -#include "emu.h" -#include "cpu/m6800/m6800.h" -#include "machine/ram.h" -#include "machine/6821pia.h" -#include "machine/6850acia.h" -#include "machine/ieee488.h" -#include "sound/speaker.h" -#include "video/vector.h" #include "includes/tek405x.h" @@ -123,15 +115,15 @@ void tek4051_state::bankswitch(UINT8 data) switch (lbs) { case LBS_RBC: - program.install_rom(0x8800, 0xa7ff, memregion(MC6800_TAG)->base() + 0x800); + program.install_rom(0x8800, 0xa7ff, m_rom->base() + 0x800); break; case LBS_BSOFL: - program.install_rom(0x8800, 0xa7ff, memregion("020_0147_00")->base()); + program.install_rom(0x8800, 0xa7ff, m_bsofl_rom->base()); break; case LBS_BSCOM: - program.install_rom(0x8800, 0xa7ff, memregion("672_0799_08")->base()); + program.install_rom(0x8800, 0xa7ff, m_bscom_rom->base()); break; default: @@ -639,7 +631,7 @@ READ8_MEMBER( tek4051_state::kb_pia_pa_r ) */ UINT8 data = 0; - UINT8 special = ioport("SPECIAL")->read(); + UINT8 special = m_special->read(); // keyboard column data = m_kc; @@ -668,7 +660,7 @@ READ8_MEMBER( tek4051_state::kb_pia_pb_r ) */ UINT8 data = 0; - UINT8 special = ioport("SPECIAL")->read(); + UINT8 special = m_special->read(); // shift data |= (BIT(special, 0) & BIT(special, 1)); @@ -1242,6 +1234,15 @@ static MACHINE_CONFIG_START( tek4051, tek4051_state ) MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("8K") MCFG_RAM_EXTRA_OPTIONS("16K,24K,32K") + + // cartridge + MCFG_CARTSLOT_ADD("cart1") + MCFG_CARTSLOT_EXTENSION_LIST("bin") + MCFG_CARTSLOT_INTERFACE("tek4050_cart") + + MCFG_CARTSLOT_ADD("cart2") + MCFG_CARTSLOT_EXTENSION_LIST("bin") + MCFG_CARTSLOT_INTERFACE("tek4050_cart") MACHINE_CONFIG_END @@ -1274,6 +1275,18 @@ static MACHINE_CONFIG_START( tek4052, tek4052_state ) MCFG_RAM_ADD(RAM_TAG) MCFG_RAM_DEFAULT_SIZE("32K") MCFG_RAM_EXTRA_OPTIONS("64K") + + // cartridge + MCFG_CARTSLOT_ADD("cart1") + MCFG_CARTSLOT_EXTENSION_LIST("bin") + MCFG_CARTSLOT_INTERFACE("tek4050_cart") + + MCFG_CARTSLOT_ADD("cart2") + MCFG_CARTSLOT_EXTENSION_LIST("bin") + MCFG_CARTSLOT_INTERFACE("tek4050_cart") + + // software lists + MCFG_SOFTWARE_LIST_ADD("cart_list", "tek4052_cart") MACHINE_CONFIG_END @@ -1328,7 +1341,7 @@ ROM_START( tek4051 ) ROM_LOAD( "156-0714-00.u121", 0x1000, 0x0800, NO_DUMP ) ROM_LOAD( "156-0714-01.u121", 0x1000, 0x0800, NO_DUMP ) ROM_LOAD( "156-0715-01.u131", 0x1800, 0x0800, NO_DUMP ) - +/* ROM_REGION( 0x2000, "4051r01", 0 ) // 4051R01 Matrix Functions ROM_LOAD( "4051r01", 0x0000, 0x1000, NO_DUMP ) @@ -1338,6 +1351,7 @@ ROM_START( tek4051 ) ROM_REGION( 0x2000, "4051r06", 0 ) // 4051R06 Editor ROM_LOAD( "4051r06", 0x0000, 0x1000, NO_DUMP ) +*/ ROM_END @@ -1367,24 +1381,18 @@ ROM_START( tek4052a ) ROM_LOAD16_BYTE( "160-1702-00.u845", 0x10000, 0x2000, CRC(013344b1) SHA1(4a79654427e15d0fcedd9519914f6448938ecffd) ) ROM_LOAD16_BYTE( "160-1685-00.u863", 0x10001, 0x2000, CRC(53ddc8f9) SHA1(431d6f329dedebb54232c623a924d5ecddc5e44e) ) - ROM_REGION( 0x2000, "4052r06", 0 ) // 4052R06 Editor - ROM_LOAD( "160-1415 v2.0.u11", 0x0000, 0x1000, CRC(04cbc80d) SHA1(7bfb80fa099a794b18a7a5d7f8c2de4b36e245ec) ) - ROM_LOAD( "160-1414 v2.0.u1", 0x1000, 0x1000, CRC(675da652) SHA1(36a9677853e50a40195519dfdb6a3b3985438bc4) ) + ROM_REGION( 0x2000, "020_0147_00", 0 ) // Firmware Backpack (020-0147-00) + ROM_LOAD( "156-0747-xx.u101", 0x0000, 0x0800, CRC(9e1facc1) SHA1(7e7a118c3e8c49630f630ee02c3de843dd95d7e1) ) // -00 or -01 ? + ROM_LOAD( "156-0748-xx.u201", 0x0800, 0x0800, CRC(be42bfbf) SHA1(23575b411bd9dcb7d7116628820096e3064ff93b) ) // -00 or -01 ? - ROM_REGION( 0x2000, "4052r07", 0 ) // 4052R07 Signal Processing No. 1 - ROM_LOAD( "160-1416-00 v2.0.u1", 0x0000, 0x1000, CRC(537acdb2) SHA1(275e016eda327173095ae60ca79e72075c606954) ) - - ROM_REGION( 0x2000, "4052r08", 0 ) // 4052R08 Signal Processing No. 2 (FFT) - ROM_LOAD( "160-1418 v2.0.u11", 0x1000, 0x1000, CRC(f1c19044) SHA1(b1b86009980900f31eccf158dcc7036c7810b8f5) ) - ROM_LOAD( "160-1417 v2.0.u1", 0x0000, 0x1000, CRC(bee2e90f) SHA1(9f1a26aa98583678047fc532f5fdb3c8a468e617) ) - - ROM_REGION( 0x3000, "020_0478_01", 0 ) // 4052/4054 File Manager - ROM_LOAD( "160-1703-00 v3.0.u13", 0x0000, 0x1000, CRC(991c9f5f) SHA1(cce038f90edec6e551049c4411da8eeca6faeb4e) ) - ROM_LOAD( "160-1420-00 v3.0.u11", 0x1000, 0x1000, CRC(6545e073) SHA1(63a8d774a4b6f3640a833fd8be592a1baf124f7d) ) - ROM_LOAD( "160-1419-00 v3.0.u1", 0x2000, 0x1000, CRC(66d9d2d5) SHA1(e603ef1cacd6a20b975cf532f2e1978dcbee9789) ) - - ROM_REGION( 0x800, "720_dac", 0 ) // Transera 4052/4054 D/A Converter - ROM_LOAD( "transera.da", 0x0000, 0x0800, CRC(1c16e4da) SHA1(6d6ea0c5c68bab8e6a885b3cb05aa591f7754c56) ) + ROM_REGION( 0x2000, "021_0188_00", 0 ) // Communications Backpack (021-0188-00) + ROM_LOAD( "156-0712-00.u101", 0x0000, 0x0800, NO_DUMP ) + ROM_LOAD( "156-0712-01.u101", 0x0000, 0x0800, NO_DUMP ) + ROM_LOAD( "156-0713-00.u111", 0x0800, 0x0800, NO_DUMP ) + ROM_LOAD( "156-0713-01.u111", 0x0800, 0x0800, NO_DUMP ) + ROM_LOAD( "156-0714-00.u121", 0x1000, 0x0800, NO_DUMP ) + ROM_LOAD( "156-0714-01.u121", 0x1000, 0x0800, NO_DUMP ) + ROM_LOAD( "156-0715-01.u131", 0x1800, 0x0800, NO_DUMP ) ROM_END diff --git a/src/mess/drivers/tiki100.c b/src/mess/drivers/tiki100.c index c955cb6e41e..02af0990361 100644 --- a/src/mess/drivers/tiki100.c +++ b/src/mess/drivers/tiki100.c @@ -94,8 +94,8 @@ void tiki100_state::bankswitch() READ8_MEMBER( tiki100_state::keyboard_r ) { - static const char *const keynames[] = { "ROW1", "ROW2", "ROW3", "ROW4", "ROW5", "ROW6", "ROW7", "ROW8", "ROW9", "ROW10", "ROW11", "ROW12" }; - UINT8 data = ioport(keynames[m_keylatch])->read(); + ioport_port *ports[12] = { m_y1, m_y2, m_y3, m_y4, m_y5, m_y6, m_y7, m_y8, m_y9, m_y10, m_y11, m_y12 }; + UINT8 data = ports[m_keylatch]->read(); m_keylatch++; @@ -251,7 +251,7 @@ static INPUT_PORTS_START( tiki100 ) 12 | HJEM | H?YRE | 2 (num) | 3 (num) | ENTER | | | | ----+---------+---------+---------+---------+---------+---------+---------+---------+ */ - PORT_START("ROW1") + PORT_START("Y1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CTRL") PORT_CODE(KEYCODE_LCONTROL) PORT_CHAR(UCHAR_MAMEKEY(LCONTROL)) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SHIFT") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("BRYTT") PORT_CODE(KEYCODE_ESC) @@ -261,7 +261,7 @@ static INPUT_PORTS_START( tiki100 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SLETT") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("ROW2") + PORT_START("Y2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("GRAFIKK") PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_MAMEKEY(LALT)) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("ANGRE") PORT_CODE(KEYCODE_DEL) PORT_CHAR(UCHAR_MAMEKEY(DEL)) @@ -271,7 +271,7 @@ static INPUT_PORTS_START( tiki100 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q) PORT_CHAR('q') PORT_CHAR('Q') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("LOCK") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) - PORT_START("ROW3") + PORT_START("Y3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W) PORT_CHAR('w') PORT_CHAR('W') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S) PORT_CHAR('s') PORT_CHAR('S') @@ -281,7 +281,7 @@ static INPUT_PORTS_START( tiki100 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D) PORT_CHAR('d') PORT_CHAR('D') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C) PORT_CHAR('c') PORT_CHAR('C') - PORT_START("ROW4") + PORT_START("Y4") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') @@ -291,7 +291,7 @@ static INPUT_PORTS_START( tiki100 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G) PORT_CHAR('g') PORT_CHAR('G') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B) PORT_CHAR('b') PORT_CHAR('B') - PORT_START("ROW5") + PORT_START("Y5") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') @@ -301,7 +301,7 @@ static INPUT_PORTS_START( tiki100 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') - PORT_START("ROW6") + PORT_START("Y6") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') @@ -311,7 +311,7 @@ static INPUT_PORTS_START( tiki100 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_CHAR(':') - PORT_START("ROW7") + PORT_START("Y7") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_CHAR('=') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P) PORT_CHAR('p') PORT_CHAR('P') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xC3\xB8 \xC3\x98") PORT_CODE(KEYCODE_COLON) PORT_CHAR(0x00f8) PORT_CHAR(0x00d8) @@ -321,7 +321,7 @@ static INPUT_PORTS_START( tiki100 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xC3\xA6 \xC3\x86") PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(0x00e6) PORT_CHAR(0x00c6) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("HJELP") - PORT_START("ROW8") + PORT_START("Y8") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS) PORT_CHAR('@') PORT_CHAR('`') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR('^') PORT_CHAR('|') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\'') PORT_CHAR('*') @@ -331,7 +331,7 @@ static INPUT_PORTS_START( tiki100 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F4") PORT_CODE(KEYCODE_F4) PORT_CHAR(UCHAR_MAMEKEY(F4)) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("SIDEOPP") PORT_CODE(KEYCODE_PGUP) PORT_CHAR(UCHAR_MAMEKEY(PGUP)) - PORT_START("ROW9") + PORT_START("Y9") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F3") PORT_CODE(KEYCODE_F3) PORT_CHAR(UCHAR_MAMEKEY(F3)) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("F5") PORT_CODE(KEYCODE_F5) PORT_CHAR(UCHAR_MAMEKEY(F5)) @@ -341,7 +341,7 @@ static INPUT_PORTS_START( tiki100 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("VTAB") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_DOWN) PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN)) - PORT_START("ROW10") + PORT_START("Y10") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad +") PORT_CODE(KEYCODE_PLUS_PAD) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad -") PORT_CODE(KEYCODE_MINUS_PAD) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad *") PORT_CODE(KEYCODE_ASTERISK) @@ -351,7 +351,7 @@ static INPUT_PORTS_START( tiki100 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad %") PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad =") - PORT_START("ROW11") + PORT_START("Y11") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 4") PORT_CODE(KEYCODE_4_PAD) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 5") PORT_CODE(KEYCODE_5_PAD) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 6") PORT_CODE(KEYCODE_6_PAD) @@ -361,7 +361,7 @@ static INPUT_PORTS_START( tiki100 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad .") PORT_CODE(KEYCODE_DEL_PAD) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) - PORT_START("ROW12") + PORT_START("Y12") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("HJEM") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME)) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Keypad 2") PORT_CODE(KEYCODE_2_PAD) @@ -552,7 +552,7 @@ void tiki100_state::machine_start() /* setup memory banking */ UINT8 *ram = m_ram->pointer(); - membank("bank1")->configure_entry(BANK_ROM, memregion(Z80_TAG)->base()); + membank("bank1")->configure_entry(BANK_ROM, m_rom->base()); membank("bank1")->configure_entry(BANK_RAM, ram); membank("bank1")->configure_entry(BANK_VIDEO_RAM, m_video_ram); diff --git a/src/mess/drivers/tmc1800.c b/src/mess/drivers/tmc1800.c index c473346279e..0aa7df8e81a 100644 --- a/src/mess/drivers/tmc1800.c +++ b/src/mess/drivers/tmc1800.c @@ -151,25 +151,25 @@ WRITE8_MEMBER( nano_state::keylatch_w ) bit description - 0 X0 - 1 X1 - 2 X2 - 3 Y0 - 4 not connected - 5 not connected - 6 not connected - 7 not connected + 0 A + 1 B + 2 C + 3 NY0 + 4 NY1 + 5 + 6 + 7 */ - m_keylatch = data & 0x0f; + m_keylatch = data & 0x1f; } void tmc2000_state::bankswitch() { address_space &program = m_maincpu->space(AS_PROGRAM); UINT8 *ram = m_ram->pointer(); - UINT8 *rom = memregion(CDP1802_TAG)->base(); + UINT8 *rom = m_rom->base(); if (m_roc) { @@ -440,7 +440,7 @@ INPUT_CHANGED_MEMBER( nano_state::monitor_pressed ) } static INPUT_PORTS_START( nano ) - PORT_START("IN0") + PORT_START("NY0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CHAR('0') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_CHAR('1') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_CHAR('2') @@ -450,7 +450,7 @@ static INPUT_PORTS_START( nano ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_CHAR('6') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD) PORT_CHAR('7') - PORT_START("IN1") + PORT_START("NY1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CHAR('8') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CHAR('9') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A') @@ -473,20 +473,17 @@ INPUT_PORTS_END READ_LINE_MEMBER( tmc1800_state::clear_r ) { - return BIT(ioport("RUN")->read(), 0); + return BIT(m_run->read(), 0); } READ_LINE_MEMBER( tmc1800_state::ef2_r ) { - return (m_cassette)->input() < 0; + return m_cassette->input() < 0; } READ_LINE_MEMBER( tmc1800_state::ef3_r ) { - static const char *const keynames[] = { "IN0", "IN1", "IN2", "IN3", "IN4", "IN5", "IN6", "IN7" }; - UINT8 data = ~ioport(keynames[m_keylatch / 8])->read(); - - return BIT(data, m_keylatch % 8); + return CLEAR_LINE; // TODO } WRITE_LINE_MEMBER( tmc1800_state::q_w ) @@ -514,20 +511,17 @@ static COSMAC_INTERFACE( tmc1800_config ) READ_LINE_MEMBER( osc1000b_state::clear_r ) { - return BIT(ioport("RUN")->read(), 0); + return BIT(m_run->read(), 0); } READ_LINE_MEMBER( osc1000b_state::ef2_r ) { - return (m_cassette)->input() < 0; + return m_cassette->input() < 0; } READ_LINE_MEMBER( osc1000b_state::ef3_r ) { - static const char *const keynames[] = { "IN0", "IN1", "IN2", "IN3", "IN4", "IN5", "IN6", "IN7" }; - UINT8 data = ~ioport(keynames[m_keylatch / 8])->read(); - - return BIT(data, m_keylatch % 8); + return CLEAR_LINE; // TODO } WRITE_LINE_MEMBER( osc1000b_state::q_w ) @@ -555,7 +549,7 @@ static COSMAC_INTERFACE( osc1000b_config ) READ_LINE_MEMBER( tmc2000_state::clear_r ) { - return BIT(ioport("RUN")->read(), 0); + return BIT(m_run->read(), 0); } READ_LINE_MEMBER( tmc2000_state::ef2_r ) @@ -565,8 +559,8 @@ READ_LINE_MEMBER( tmc2000_state::ef2_r ) READ_LINE_MEMBER( tmc2000_state::ef3_r ) { - static const char *const keynames[] = { "IN0", "IN1", "IN2", "IN3", "IN4", "IN5", "IN6", "IN7" }; - UINT8 data = ~ioport(keynames[m_keylatch / 8])->read(); + ioport_port *ports[] = { m_in0, m_in1, m_in2, m_in3, m_in4, m_in5, m_in6, m_in7 }; + UINT8 data = ~ports[m_keylatch / 8]->read(); return BIT(data, m_keylatch % 8); } @@ -611,23 +605,25 @@ static COSMAC_INTERFACE( tmc2000_config ) READ_LINE_MEMBER( nano_state::clear_r ) { - int run = BIT(ioport("RUN")->read(), 0); - int monitor = BIT(ioport("MONITOR")->read(), 0); + int run = BIT(m_run->read(), 0); + int monitor = BIT(m_monitor->read(), 0); - return run & monitor; + return run && monitor; } READ_LINE_MEMBER( nano_state::ef2_r ) { - return (m_cassette)->input() < 0; + return m_cassette->input() < 0; } READ_LINE_MEMBER( nano_state::ef3_r ) { - static const char *const keynames[] = { "IN0", "IN1", "IN2", "IN3", "IN4", "IN5", "IN6", "IN7" }; - UINT8 data = ~ioport(keynames[m_keylatch / 8])->read(); + UINT8 data = 0xff; - return BIT(data, m_keylatch % 8); + if (!BIT(m_keylatch, 3)) data &= m_ny0->read(); + if (!BIT(m_keylatch, 4)) data &= m_ny1->read(); + + return !BIT(data, m_keylatch & 0x07); } WRITE_LINE_MEMBER( nano_state::q_w ) @@ -692,7 +688,7 @@ void tmc2000_state::machine_start() { UINT16 addr; - m_colorram = auto_alloc_array(machine(), UINT8, TMC2000_COLORRAM_SIZE); + m_colorram.allocate(TMC2000_COLORRAM_SIZE); // randomize color RAM contents for (addr = 0; addr < TMC2000_COLORRAM_SIZE; addr++) @@ -701,7 +697,6 @@ void tmc2000_state::machine_start() } // state saving - save_pointer(NAME(m_colorram), TMC2000_COLORRAM_SIZE); save_item(NAME(m_keylatch)); save_item(NAME(m_rac)); save_item(NAME(m_roc)); @@ -746,7 +741,7 @@ void nano_state::machine_reset() /* enable ROM */ address_space &program = m_maincpu->space(AS_PROGRAM); - UINT8 *rom = memregion(CDP1802_TAG)->base(); + UINT8 *rom = m_rom->base(); program.install_rom(0x0000, 0x01ff, 0, 0x7e00, rom); } @@ -763,10 +758,11 @@ static const cassette_interface tmc1800_cassette_interface = static QUICKLOAD_LOAD( tmc1800 ) { - UINT8 *ptr = image.device().machine().root_device().memregion(CDP1802_TAG)->base(); + tmc1800_state *state = image.device().machine().driver_data(); + UINT8 *ptr = state->m_rom->base(); int size = image.length(); - if (size > image.device().machine().device(RAM_TAG)->size()) + if (size > state->m_ram->size()) { return IMAGE_INIT_FAIL; } diff --git a/src/mess/drivers/v1050.c b/src/mess/drivers/v1050.c index af354fd575f..bb9456c7848 100644 --- a/src/mess/drivers/v1050.c +++ b/src/mess/drivers/v1050.c @@ -1018,7 +1018,7 @@ void v1050_state::machine_start() membank("bank1")->configure_entries(0, 2, ram, 0x10000); membank("bank1")->configure_entry(2, ram + 0x1c000); - membank("bank1")->configure_entry(3, memregion(Z80_TAG)->base()); + membank("bank1")->configure_entry(3, m_rom->base()); program.install_readwrite_bank(0x2000, 0x3fff, "bank2"); membank("bank2")->configure_entries(0, 2, ram + 0x2000, 0x10000); diff --git a/src/mess/drivers/vcs80.c b/src/mess/drivers/vcs80.c index 8e9d3f06b52..c3d78fa91dc 100644 --- a/src/mess/drivers/vcs80.c +++ b/src/mess/drivers/vcs80.c @@ -75,7 +75,7 @@ ADDRESS_MAP_END /* Input Ports */ static INPUT_PORTS_START( vcs80 ) - PORT_START("ROW0") + PORT_START("Y0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0) PORT_CHAR('0') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2) PORT_CHAR('2') @@ -85,7 +85,7 @@ static INPUT_PORTS_START( vcs80 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7) PORT_CHAR('7') - PORT_START("ROW1") + PORT_START("Y1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A) PORT_CHAR('A') @@ -95,7 +95,7 @@ static INPUT_PORTS_START( vcs80 ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E) PORT_CHAR('E') PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F) PORT_CHAR('F') - PORT_START("ROW2") + PORT_START("Y2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("A+") PORT_CODE(KEYCODE_UP) PORT_CHAR('^') PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("A-") PORT_CODE(KEYCODE_DOWN) PORT_CHAR('V') PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("MA") PORT_CODE(KEYCODE_M) PORT_CHAR('-') @@ -144,9 +144,9 @@ READ8_MEMBER( vcs80_state::pio_pa_r ) data |= m_keylatch; /* keyboard rows */ - data |= BIT(ioport("ROW0")->read(), m_keylatch) << 4; - data |= BIT(ioport("ROW1")->read(), m_keylatch) << 5; - data |= BIT(ioport("ROW2")->read(), m_keylatch) << 6; + data |= BIT(m_y0->read(), m_keylatch) << 4; + data |= BIT(m_y1->read(), m_keylatch) << 5; + data |= BIT(m_y2->read(), m_keylatch) << 6; /* demultiplexer clock */ data |= (m_keyclk << 7); diff --git a/src/mess/drivers/vic20.c b/src/mess/drivers/vic20.c index e2d80bfddf7..28e1e9df7eb 100644 --- a/src/mess/drivers/vic20.c +++ b/src/mess/drivers/vic20.c @@ -62,9 +62,6 @@ block of RAM instead of 8. * K-Star Patrol (Europe).60 * Seafox (Japan, USA).60 - mos6560_port_r/w should respond at 0x1000-0x100f - - SHIFT LOCK - - restore key - - light pen - VIC21 (built in 21K ram) */ diff --git a/src/mess/drivers/vidbrain.c b/src/mess/drivers/vidbrain.c index 8a301ceed38..56667836b91 100644 --- a/src/mess/drivers/vidbrain.c +++ b/src/mess/drivers/vidbrain.c @@ -97,17 +97,17 @@ READ8_MEMBER( vidbrain_state::keyboard_r ) */ - UINT8 data = ioport("JOY-R")->read(); + UINT8 data = m_joy_r->read(); - if (BIT(m_keylatch, 0)) data |= ioport("IO00")->read(); - if (BIT(m_keylatch, 1)) data |= ioport("IO01")->read(); - if (BIT(m_keylatch, 2)) data |= ioport("IO02")->read(); - if (BIT(m_keylatch, 3)) data |= ioport("IO03")->read(); - if (BIT(m_keylatch, 4)) data |= ioport("IO04")->read(); - if (BIT(m_keylatch, 5)) data |= ioport("IO05")->read(); - if (BIT(m_keylatch, 6)) data |= ioport("IO06")->read(); - if (BIT(m_keylatch, 7)) data |= ioport("IO07")->read(); - if (!m_uv->kbd_r()) data |= ioport("UV201-31")->read(); + if (BIT(m_keylatch, 0)) data |= m_io00->read(); + if (BIT(m_keylatch, 1)) data |= m_io01->read(); + if (BIT(m_keylatch, 2)) data |= m_io02->read(); + if (BIT(m_keylatch, 3)) data |= m_io03->read(); + if (BIT(m_keylatch, 4)) data |= m_io04->read(); + if (BIT(m_keylatch, 5)) data |= m_io05->read(); + if (BIT(m_keylatch, 6)) data |= m_io06->read(); + if (BIT(m_keylatch, 7)) data |= m_io07->read(); + if (!m_uv->kbd_r()) data |= m_uv201_31->read(); return data; } @@ -430,14 +430,14 @@ WRITE_LINE_MEMBER( vidbrain_state::hblank_w ) { UINT8 joydata = 0; - if (!BIT(m_keylatch, 0)) joydata = ioport("JOY1-X")->read(); - if (!BIT(m_keylatch, 1)) joydata = ioport("JOY1-Y")->read(); - if (!BIT(m_keylatch, 2)) joydata = ioport("JOY2-X")->read(); - if (!BIT(m_keylatch, 3)) joydata = ioport("JOY2-Y")->read(); - if (!BIT(m_keylatch, 4)) joydata = ioport("JOY3-X")->read(); - if (!BIT(m_keylatch, 5)) joydata = ioport("JOY3-Y")->read(); - if (!BIT(m_keylatch, 6)) joydata = ioport("JOY4-X")->read(); - if (!BIT(m_keylatch, 7)) joydata = ioport("JOY4-Y")->read(); + if (!BIT(m_keylatch, 0)) joydata = m_joy1_x->read(); + if (!BIT(m_keylatch, 1)) joydata = m_joy1_y->read(); + if (!BIT(m_keylatch, 2)) joydata = m_joy2_x->read(); + if (!BIT(m_keylatch, 3)) joydata = m_joy2_y->read(); + if (!BIT(m_keylatch, 4)) joydata = m_joy3_x->read(); + if (!BIT(m_keylatch, 5)) joydata = m_joy3_y->read(); + if (!BIT(m_keylatch, 6)) joydata = m_joy4_x->read(); + if (!BIT(m_keylatch, 7)) joydata = m_joy4_y->read(); // NE555 in monostable mode // R = 3K9 + 100K linear pot diff --git a/src/mess/drivers/vip.c b/src/mess/drivers/vip.c index 67d3c4d24c1..fc5cb5af765 100644 --- a/src/mess/drivers/vip.c +++ b/src/mess/drivers/vip.c @@ -244,9 +244,9 @@ enum void vip_state::update_interrupts() { - int irq = m_vdc_int | m_exp_int; + int irq = m_vdc_int || m_exp_int; int dma_in = m_exp_dma_in; - int dma_out = m_vdc_dma_out | m_exp_dma_out; + int dma_out = m_vdc_dma_out || m_exp_dma_out; m_maincpu->set_input_line(COSMAC_INPUT_LINE_INT, irq); m_maincpu->set_input_line(COSMAC_INPUT_LINE_DMAIN, dma_in); @@ -268,7 +268,7 @@ READ8_MEMBER( vip_state::read ) if (cs) { - data = memregion(CDP1802_TAG)->base()[offset & 0x1ff]; + data = m_rom->base()[offset & 0x1ff]; } else if (!minh) { @@ -452,14 +452,14 @@ READ_LINE_MEMBER( vip_state::clear_r ) READ_LINE_MEMBER( vip_state::ef1_r ) { - return m_vdc_ef1 | m_exp->ef1_r(); + return m_vdc_ef1 || m_exp->ef1_r(); } READ_LINE_MEMBER( vip_state::ef2_r ) { - set_led_status(machine(), LED_TAPE, ((m_cassette)->input() > 0)); + set_led_status(machine(), LED_TAPE, m_cassette->input() > 0); - return ((m_cassette)->input() < 0) ? ASSERT_LINE : CLEAR_LINE; + return (m_cassette->input() < 0) ? ASSERT_LINE : CLEAR_LINE; } READ_LINE_MEMBER( vip_state::ef3_r ) @@ -469,7 +469,7 @@ READ_LINE_MEMBER( vip_state::ef3_r ) READ_LINE_MEMBER( vip_state::ef4_r ) { - return m_byteio_ef4 | m_exp_ef4; + return m_byteio_ef4 || m_exp_ef4; } static COSMAC_SC_WRITE( vip_sc_w ) @@ -704,7 +704,7 @@ void vip_state::machine_reset() m_8000 = 1; // internal speaker - m_beeper->set_output_gain(0, ioport("BEEPER")->read() ? 0.80 : 0); + m_beeper->set_output_gain(0, m_io_beeper->read() ? 0.80 : 0); // clear byte I/O latch m_byteio_data = 0; @@ -726,17 +726,17 @@ static QUICKLOAD_LOAD( vip ) if (strcmp(image.filetype(), "c8") == 0) { /* CHIP-8 program */ - chip8_ptr = image.device().machine().root_device().memregion("chip8")->base(); - chip8_size = image.device().machine().root_device().memregion("chip8")->bytes(); + chip8_ptr = state->m_chip8->base(); + chip8_size = state->m_chip8->bytes(); } else if (strcmp(image.filename(), "c8x") == 0) { /* CHIP-8X program */ - chip8_ptr = image.device().machine().root_device().memregion("chip8x")->base(); - chip8_size = image.device().machine().root_device().memregion("chip8x")->bytes(); + chip8_ptr = state->m_chip8x->base(); + chip8_size = state->m_chip8x->bytes(); } - if ((size + chip8_size) > image.device().machine().device(RAM_TAG)->size()) + if ((size + chip8_size) > state->m_ram->size()) { return IMAGE_INIT_FAIL; } diff --git a/src/mess/drivers/vixen.c b/src/mess/drivers/vixen.c index a2e334e2800..70a181910ac 100644 --- a/src/mess/drivers/vixen.c +++ b/src/mess/drivers/vixen.c @@ -291,7 +291,7 @@ ADDRESS_MAP_END //------------------------------------------------- INPUT_PORTS_START( vixen ) - PORT_START("ROW0") + PORT_START("Y0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) @@ -301,7 +301,7 @@ INPUT_PORTS_START( vixen ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) - PORT_START("ROW1") + PORT_START("Y1") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) @@ -311,7 +311,7 @@ INPUT_PORTS_START( vixen ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) - PORT_START("ROW2") + PORT_START("Y2") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) @@ -321,7 +321,7 @@ INPUT_PORTS_START( vixen ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) - PORT_START("ROW3") + PORT_START("Y3") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) @@ -331,7 +331,7 @@ INPUT_PORTS_START( vixen ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) - PORT_START("ROW4") + PORT_START("Y4") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) @@ -341,7 +341,7 @@ INPUT_PORTS_START( vixen ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) - PORT_START("ROW5") + PORT_START("Y5") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) @@ -351,7 +351,7 @@ INPUT_PORTS_START( vixen ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) - PORT_START("ROW6") + PORT_START("Y6") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) @@ -361,7 +361,7 @@ INPUT_PORTS_START( vixen ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) - PORT_START("ROW7") + PORT_START("Y7") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) @@ -398,15 +398,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(vixen_state::vsync_tick) void vixen_state::video_start() { - // find memory regions - m_sync_rom = memregion("video")->base(); - m_char_rom = memregion("chargen")->base(); - // register for state saving save_item(NAME(m_alt)); save_item(NAME(m_256)); save_item(NAME(m_vsync)); - save_pointer(NAME(m_video_ram.target()), 0x1000); } @@ -423,7 +418,7 @@ UINT32 vixen_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, c for (int chadr = 0; chadr < 128; chadr++) { UINT16 sync_addr = (txadr << 7) | chadr; - UINT8 sync_data = m_sync_rom[sync_addr]; + UINT8 sync_data = m_sync_rom->base()[sync_addr]; int blank = BIT(sync_data, 4); /* int clrchadr = BIT(sync_data, 7); @@ -453,7 +448,7 @@ UINT32 vixen_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, c reverse = BIT(video_data, 7); } - UINT8 char_data = m_char_rom[char_addr]; + UINT8 char_data = m_char_rom->base()[char_addr]; for (int x = 0; x < 8; x++) { @@ -498,14 +493,14 @@ READ8_MEMBER( vixen_state::i8155_pa_r ) { UINT8 data = 0xff; - if (!BIT(m_col, 0)) data &= ioport("ROW0")->read(); - if (!BIT(m_col, 1)) data &= ioport("ROW1")->read(); - if (!BIT(m_col, 2)) data &= ioport("ROW2")->read(); - if (!BIT(m_col, 3)) data &= ioport("ROW3")->read(); - if (!BIT(m_col, 4)) data &= ioport("ROW4")->read(); - if (!BIT(m_col, 5)) data &= ioport("ROW5")->read(); - if (!BIT(m_col, 6)) data &= ioport("ROW6")->read(); - if (!BIT(m_col, 7)) data &= ioport("ROW7")->read(); + if (!BIT(m_col, 0)) data &= m_y0->read(); + if (!BIT(m_col, 1)) data &= m_y1->read(); + if (!BIT(m_col, 2)) data &= m_y2->read(); + if (!BIT(m_col, 3)) data &= m_y3->read(); + if (!BIT(m_col, 4)) data &= m_y4->read(); + if (!BIT(m_col, 5)) data &= m_y5->read(); + if (!BIT(m_col, 6)) data &= m_y6->read(); + if (!BIT(m_col, 7)) data &= m_y7->read(); return data; } @@ -755,13 +750,13 @@ void vixen_state::machine_start() UINT8 *ram = m_ram->pointer(); membank("bank1")->configure_entry(0, ram); - membank("bank1")->configure_entry(1, memregion(Z8400A_TAG)->base()); + membank("bank1")->configure_entry(1, m_rom->base()); membank("bank2")->configure_entry(0, ram); membank("bank2")->configure_entry(1, m_video_ram); membank("bank3")->configure_entry(0, m_video_ram); - membank("bank3")->configure_entry(1, memregion(Z8400A_TAG)->base()); + membank("bank3")->configure_entry(1, m_rom->base()); membank("bank4")->configure_entry(0, m_video_ram); @@ -894,7 +889,7 @@ DIRECT_UPDATE_MEMBER(vixen_state::vixen_direct_update_handler) m_reset = 0; } - direct.explicit_configure(0xf000, 0xffff, 0xfff, machine().root_device().memregion(Z8400A_TAG)->base()); + direct.explicit_configure(0xf000, 0xffff, 0xfff, m_rom->base()); return ~0; } @@ -904,8 +899,7 @@ DIRECT_UPDATE_MEMBER(vixen_state::vixen_direct_update_handler) DRIVER_INIT_MEMBER(vixen_state,vixen) { - address_space &program = machine().device(Z8400A_TAG)->space(AS_PROGRAM); - program.set_direct_update_handler(direct_update_delegate(FUNC(vixen_state::vixen_direct_update_handler), this)); + m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(vixen_state::vixen_direct_update_handler), this)); } diff --git a/src/mess/drivers/wangpc.c b/src/mess/drivers/wangpc.c index 998b153a8cb..23cf111ef37 100644 --- a/src/mess/drivers/wangpc.c +++ b/src/mess/drivers/wangpc.c @@ -851,7 +851,7 @@ READ8_MEMBER( wangpc_state::ppi_pc_r ) */ - return ioport("SW")->read() << 4; + return m_sw->read() << 4; } WRITE8_MEMBER( wangpc_state::ppi_pc_w ) diff --git a/src/mess/drivers/xerox820.c b/src/mess/drivers/xerox820.c index 8e10ff957a8..111ee169fc8 100644 --- a/src/mess/drivers/xerox820.c +++ b/src/mess/drivers/xerox820.c @@ -45,7 +45,7 @@ void xerox820_state::bankswitch(int bank) if (bank) { /* ROM */ - program.install_rom(0x0000, 0x0fff, memregion("monitor")->base()); + program.install_rom(0x0000, 0x0fff, m_rom->base()); program.unmap_readwrite(0x1000, 0x1fff); program.install_ram(0x3000, 0x3fff, m_video_ram); } @@ -64,7 +64,7 @@ void xerox820ii_state::bankswitch(int bank) if (bank) { /* ROM */ - program.install_rom(0x0000, 0x17ff, memregion("monitor")->base()); + program.install_rom(0x0000, 0x17ff, m_rom->base()); program.unmap_readwrite(0x1800, 0x2fff); program.install_ram(0x3000, 0x3fff, m_video_ram); program.unmap_readwrite(0x4000, 0xbfff); @@ -522,13 +522,6 @@ static ASCII_KEYBOARD_INTERFACE( keyboard_intf ) /* Video */ -void xerox820_state::video_start() -{ - /* find memory regions */ - m_char_rom = memregion("chargen")->base(); -} - - UINT32 xerox820_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { UINT8 y,ra,chr,gfx; @@ -555,7 +548,7 @@ UINT32 xerox820_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap chr |= 0x80; /* get pattern of pixels for that character scanline */ - gfx = m_char_rom[(m_ncset2 << 10) | (chr<<3) | ra ]; + gfx = m_char_rom->base()[(m_ncset2 << 10) | (chr<<3) | ra ]; } else gfx = 0xff; @@ -787,7 +780,7 @@ MACHINE_CONFIG_END /* ROMs */ ROM_START( bigboard ) - ROM_REGION( 0x1000, "monitor", 0 ) + ROM_REGION( 0x1000, Z80_TAG, 0 ) ROM_LOAD( "bigboard.u67", 0x0000, 0x0800, CRC(5a85a228) SHA1(d51a2cbd0aae80315bda9530275aabfe8305364e)) ROM_REGION( 0x800, "chargen", 0 ) @@ -797,7 +790,7 @@ ROM_END #define rom_mk82 rom_bigboard ROM_START( x820 ) - ROM_REGION( 0x1000, "monitor", 0 ) + ROM_REGION( 0x1000, Z80_TAG, 0 ) ROM_DEFAULT_BIOS( "v20" ) ROM_SYSTEM_BIOS( 0, "v10", "Xerox Monitor v1.0" ) ROMX_LOAD( "x820v10.u64", 0x0000, 0x0800, NO_DUMP, ROM_BIOS(1) ) @@ -820,7 +813,7 @@ ROM_START( x820 ) ROM_END ROM_START( x820ii ) - ROM_REGION( 0x1800, "monitor", 0 ) + ROM_REGION( 0x1800, Z80_TAG, 0 ) ROM_DEFAULT_BIOS( "v404" ) ROM_SYSTEM_BIOS( 0, "v404", "Balcones Operating System v4.04" ) ROMX_LOAD( "537p3652.u33", 0x0000, 0x0800, CRC(7807cfbb) SHA1(bd3cc5cc5c59c84a50747aae5c17eb4617b0dbc3), ROM_BIOS(1) ) @@ -836,7 +829,7 @@ ROM_START( x820ii ) ROM_END ROM_START( x168 ) - ROM_REGION( 0x1800, "monitor", 0 ) + ROM_REGION( 0x1800, Z80_TAG, 0 ) ROM_DEFAULT_BIOS( "v404" ) ROM_SYSTEM_BIOS( 0, "v404", "Balcones Operating System v4.04" ) ROMX_LOAD( "537p3652.u33", 0x0000, 0x0800, CRC(7807cfbb) SHA1(bd3cc5cc5c59c84a50747aae5c17eb4617b0dbc3), ROM_BIOS(1) ) @@ -855,7 +848,7 @@ ROM_START( x168 ) ROM_END ROM_START( mk83 ) - ROM_REGION( 0x1000, "monitor", 0 ) + ROM_REGION( 0x1000, Z80_TAG, 0 ) ROM_LOAD( "2732mk83.bin", 0x0000, 0x1000, CRC(a845c7e1) SHA1(3ccf629c5cd384953794ac4a1d2b45678bd40e92)) ROM_REGION( 0x800, "chargen", 0 ) ROM_LOAD( "2716mk83.bin", 0x0000, 0x0800, CRC(10bf0d81) SHA1(7ec73670a4d9d6421a5d6a4c4edc8b7c87923f6c)) diff --git a/src/mess/drivers/xor100.c b/src/mess/drivers/xor100.c index 1a515c76e13..bbf47209e8b 100644 --- a/src/mess/drivers/xor100.c +++ b/src/mess/drivers/xor100.c @@ -553,7 +553,7 @@ void xor100_state::machine_start() { int banks = m_ram->size() / 0x10000; UINT8 *ram = m_ram->pointer(); - UINT8 *rom = memregion(Z80_TAG)->base(); + UINT8 *rom = m_rom->base(); /* setup memory banking */ membank("bank1")->configure_entries(1, banks, ram, 0x10000); diff --git a/src/mess/includes/abc80x.h b/src/mess/includes/abc80x.h index 9198678905f..8cb1d4c64eb 100644 --- a/src/mess/includes/abc80x.h +++ b/src/mess/includes/abc80x.h @@ -81,6 +81,7 @@ public: m_rom(*this, Z80_TAG), m_video_ram(*this, "video_ram"), m_char_ram(*this, "char_ram"), + m_io_sb(*this, "SB"), m_ctc_z0(0), m_sio_rxdb(1), m_sio_txcb(0), @@ -100,6 +101,7 @@ public: required_memory_region m_rom; optional_shared_ptr m_video_ram; optional_shared_ptr m_char_ram; + required_ioport m_io_sb; enum { @@ -215,12 +217,14 @@ public: : abc800_state(mconfig, type, tag), m_crtc(*this, MC6845_TAG), m_abc77(*this, ABC77_TAG), - m_char_rom(*this, MC6845_TAG) + m_char_rom(*this, MC6845_TAG), + m_config(*this, "CONFIG") { } required_device m_crtc; optional_device m_abc77; required_memory_region m_char_rom; + required_ioport m_config; DECLARE_DRIVER_INIT(driver_init); virtual void machine_start(); diff --git a/src/mess/includes/adam.h b/src/mess/includes/adam.h index c787f7fadce..c598ab26efb 100644 --- a/src/mess/includes/adam.h +++ b/src/mess/includes/adam.h @@ -34,6 +34,9 @@ public: m_slot1(*this, ADAM_LEFT_EXPANSION_SLOT_TAG), m_slot2(*this, ADAM_CENTER_EXPANSION_SLOT_TAG), m_slot3(*this, ADAM_RIGHT_EXPANSION_SLOT_TAG), + m_boot_rom(*this, "boot"), + m_os7_rom(*this, "os7"), + m_cart_rom(*this, "cart"), m_mioc(0), m_game(0), m_an(0), @@ -50,6 +53,9 @@ public: required_device m_slot1; required_device m_slot2; required_device m_slot3; + required_memory_region m_boot_rom; + required_memory_region m_os7_rom; + required_memory_region m_cart_rom; virtual void machine_start(); virtual void machine_reset(); @@ -80,9 +86,6 @@ public: DECLARE_WRITE_LINE_MEMBER( os3_w ); // memory state - const UINT8 *m_boot_rom; - const UINT8 *m_os7_rom; - const UINT8 *m_cart_rom; UINT8 m_mioc; int m_game; diff --git a/src/mess/includes/aquarius.h b/src/mess/includes/aquarius.h index 8b3c6d66bc0..4ebe80df8f5 100644 --- a/src/mess/includes/aquarius.h +++ b/src/mess/includes/aquarius.h @@ -24,6 +24,8 @@ public: m_cassette(*this, CASSETTE_TAG), m_speaker(*this, SPEAKER_TAG), m_screen(*this, "screen"), + m_ram(*this, RAM_TAG), + m_rom(*this, "maincpu"), m_videoram(*this, "videoram"), m_colorram(*this, "colorram"), m_y0(*this, "Y0"), @@ -40,6 +42,8 @@ public: required_device m_cassette; required_device m_speaker; required_device m_screen; + required_device m_ram; + required_memory_region m_rom; required_shared_ptr m_videoram; required_shared_ptr m_colorram; required_ioport m_y0; diff --git a/src/mess/includes/atarist.h b/src/mess/includes/atarist.h index 64e73ff048c..576cfccd35c 100644 --- a/src/mess/includes/atarist.h +++ b/src/mess/includes/atarist.h @@ -77,6 +77,26 @@ public: m_mfp(*this, MC68901_TAG), m_centronics(*this, CENTRONICS_TAG), m_ram(*this, RAM_TAG), + m_p31(*this, "P31"), + m_p32(*this, "P32"), + m_p33(*this, "P33"), + m_p34(*this, "P34"), + m_p35(*this, "P35"), + m_p36(*this, "P36"), + m_p37(*this, "P37"), + m_p40(*this, "P40"), + m_p41(*this, "P41"), + m_p42(*this, "P42"), + m_p43(*this, "P43"), + m_p44(*this, "P44"), + m_p45(*this, "P45"), + m_p46(*this, "P46"), + m_p47(*this, "P47"), + m_joy0(*this, "IKBD_JOY0"), + m_joy1(*this, "IKBD_JOY1"), + m_mousex(*this, "IKBD_MOUSEX"), + m_mousey(*this, "IKBD_MOUSEY"), + m_config(*this, "config"), m_acia_ikbd_irq(1), m_acia_midi_irq(1), m_ikbd_mouse_x(0), @@ -92,6 +112,26 @@ public: required_device m_mfp; required_device m_centronics; required_device m_ram; + required_ioport m_p31; + required_ioport m_p32; + required_ioport m_p33; + required_ioport m_p34; + required_ioport m_p35; + required_ioport m_p36; + required_ioport m_p37; + required_ioport m_p40; + required_ioport m_p41; + required_ioport m_p42; + required_ioport m_p43; + required_ioport m_p44; + required_ioport m_p45; + required_ioport m_p46; + required_ioport m_p47; + optional_ioport m_joy0; + optional_ioport m_joy1; + optional_ioport m_mousex; + optional_ioport m_mousey; + optional_ioport m_config; void machine_start(); @@ -382,9 +422,12 @@ class stbook_state : public ste_state { public: stbook_state(const machine_config &mconfig, device_type type, const char *tag) - : ste_state(mconfig, type, tag) + : ste_state(mconfig, type, tag), + m_sw400(*this, "SW400") { } + required_ioport m_sw400; + void machine_start(); void video_start(); diff --git a/src/mess/includes/atom.h b/src/mess/includes/atom.h index 90979860d93..3c791229a7d 100644 --- a/src/mess/includes/atom.h +++ b/src/mess/includes/atom.h @@ -48,6 +48,7 @@ public: m_cassette(*this, CASSETTE_TAG), m_centronics(*this, CENTRONICS_TAG), m_speaker(*this, SPEAKER_TAG), + m_extrom(*this, EXTROM_TAG), m_y0(*this, "Y0"), m_y1(*this, "Y1"), m_y2(*this, "Y2"), @@ -68,6 +69,7 @@ public: required_device m_cassette; required_device m_centronics; required_device m_speaker; + required_memory_region m_extrom; required_ioport m_y0; required_ioport m_y1; required_ioport m_y2; diff --git a/src/mess/includes/beta.h b/src/mess/includes/beta.h index 632a64b953b..e56b7b0dd8c 100644 --- a/src/mess/includes/beta.h +++ b/src/mess/includes/beta.h @@ -24,6 +24,7 @@ public: : driver_device(mconfig, type, tag), m_maincpu(*this, M6502_TAG), m_speaker(*this, SPEAKER_TAG), + m_eprom(*this, EPROM_TAG), m_q6(*this, "Q6"), m_q7(*this, "Q7"), m_q8(*this, "Q8"), @@ -32,6 +33,7 @@ public: required_device m_maincpu; required_device m_speaker; + required_memory_region m_eprom; required_ioport m_q6; required_ioport m_q7; required_ioport m_q8; @@ -46,7 +48,6 @@ public: DECLARE_INPUT_CHANGED_MEMBER( trigger_reset ); /* EPROM state */ - UINT8 *m_eprom; int m_eprom_oe; int m_eprom_ce; UINT16 m_eprom_addr; diff --git a/src/mess/includes/bw12.h b/src/mess/includes/bw12.h index bf4269e86a8..d57edde98a0 100644 --- a/src/mess/includes/bw12.h +++ b/src/mess/includes/bw12.h @@ -47,8 +47,10 @@ public: m_floppy0(*this, UPD765_TAG ":1:525dd"), m_floppy1(*this, UPD765_TAG ":2:525dd"), m_floppy_timer(*this, FLOPPY_TIMER_TAG), - m_modifiers(*this, "MODIFIERS"), - m_video_ram(*this, "video_ram") + m_rom(*this, Z80_TAG), + m_char_rom(*this, "chargen"), + m_video_ram(*this, "video_ram"), + m_modifiers(*this, "MODIFIERS") { } required_device m_maincpu; @@ -62,13 +64,14 @@ public: required_device m_floppy0; required_device m_floppy1; required_device m_floppy_timer; + required_memory_region m_rom; + required_memory_region m_char_rom; + required_shared_ptr m_video_ram; required_ioport m_modifiers; virtual void machine_start(); virtual void machine_reset(); - virtual void video_start(); - void bankswitch(); void floppy_motor_off(); void set_floppy_motor_off_timer(); @@ -87,10 +90,6 @@ public: /* memory state */ int m_bank; - /* video state */ - required_shared_ptr m_video_ram; - UINT8 *m_char_rom; - /* PIT state */ int m_pit_out2; diff --git a/src/mess/includes/c64.h b/src/mess/includes/c64.h index 41d2cc84e1d..deccbbc4637 100644 --- a/src/mess/includes/c64.h +++ b/src/mess/includes/c64.h @@ -48,6 +48,8 @@ public: m_user(*this, C64_USER_PORT_TAG), m_ram(*this, RAM_TAG), m_cassette(*this, PET_DATASSETTE_PORT_TAG), + m_basic(*this, "basic"), + m_kernal(*this, "kernal"), m_charom(*this, "charom"), m_color_ram(*this, "color_ram"), m_row0(*this, "ROW0"), @@ -87,6 +89,8 @@ public: required_device m_user; required_device m_ram; optional_device m_cassette; + optional_memory_region m_basic; + required_memory_region m_kernal; required_memory_region m_charom; optional_shared_ptr m_color_ram; optional_ioport m_row0; @@ -145,8 +149,6 @@ public: int m_loram; int m_hiram; int m_charen; - UINT8 *m_basic; - UINT8 *m_kernal; // video state int m_va14; @@ -182,8 +184,6 @@ public: c64c_state(const machine_config &mconfig, device_type type, const char *tag) : c64_state(mconfig, type, tag) { } - - virtual void machine_start(); }; @@ -194,8 +194,6 @@ public: : c64c_state(mconfig, type, tag) { } - virtual void machine_start(); - DECLARE_READ8_MEMBER( cpu_r ); DECLARE_WRITE8_MEMBER( cpu_w ); diff --git a/src/mess/includes/cgc7900.h b/src/mess/includes/cgc7900.h index 534adbb32df..19d1ed0555b 100644 --- a/src/mess/includes/cgc7900.h +++ b/src/mess/includes/cgc7900.h @@ -28,27 +28,43 @@ public: cgc7900_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, M68000_TAG), - m_chrom_ram(*this, "chrom_ram"), - m_plane_ram(*this, "plane_ram"), - m_clut_ram(*this, "clut_ram"), - m_overlay_ram(*this, "overlay_ram"), - m_roll_bitmap(*this, "roll_bitmap"), - m_pan_x(*this, "pan_x"), - m_pan_y(*this, "pan_y"), - m_zoom(*this, "zoom"), - m_blink_select(*this, "blink_select"), - m_plane_select(*this, "plane_select"), - m_plane_switch(*this, "plane_switch"), - m_color_status_fg(*this, "color_status_fg"), - m_color_status_bg(*this, "color_status_bg"), - m_roll_overlay(*this, "roll_overlay"){ } + m_char_rom(*this, "gfx1"), + m_chrom_ram(*this, "chrom_ram"), + m_plane_ram(*this, "plane_ram"), + m_clut_ram(*this, "clut_ram"), + m_overlay_ram(*this, "overlay_ram"), + m_roll_bitmap(*this, "roll_bitmap"), + m_pan_x(*this, "pan_x"), + m_pan_y(*this, "pan_y"), + m_zoom(*this, "zoom"), + m_blink_select(*this, "blink_select"), + m_plane_select(*this, "plane_select"), + m_plane_switch(*this, "plane_switch"), + m_color_status_fg(*this, "color_status_fg"), + m_color_status_bg(*this, "color_status_bg"), + m_roll_overlay(*this, "roll_overlay") + { } required_device m_maincpu; + required_memory_region m_char_rom; + required_shared_ptr m_chrom_ram; + required_shared_ptr m_plane_ram; + required_shared_ptr m_clut_ram; + required_shared_ptr m_overlay_ram; + required_shared_ptr m_roll_bitmap; + required_shared_ptr m_pan_x; + required_shared_ptr m_pan_y; + required_shared_ptr m_zoom; + required_shared_ptr m_blink_select; + required_shared_ptr m_plane_select; + required_shared_ptr m_plane_switch; + required_shared_ptr m_color_status_fg; + required_shared_ptr m_color_status_bg; + required_shared_ptr m_roll_overlay; virtual void machine_start(); virtual void machine_reset(); - virtual void video_start(); UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); DECLARE_READ16_MEMBER( keyboard_r ); @@ -72,23 +88,8 @@ public: /* video state */ rgb_t m_clut[256]; - required_shared_ptr m_chrom_ram; - required_shared_ptr m_plane_ram; - required_shared_ptr m_clut_ram; - required_shared_ptr m_overlay_ram; - UINT8 *m_char_rom; - required_shared_ptr m_roll_bitmap; - required_shared_ptr m_pan_x; - required_shared_ptr m_pan_y; - required_shared_ptr m_zoom; - required_shared_ptr m_blink_select; - required_shared_ptr m_plane_select; - required_shared_ptr m_plane_switch; - required_shared_ptr m_color_status_fg; - required_shared_ptr m_color_status_bg; - required_shared_ptr m_roll_overlay; int m_blink; - UINT32 screen_update_cgc7900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + TIMER_DEVICE_CALLBACK_MEMBER(blink_tick); }; diff --git a/src/mess/includes/comx35.h b/src/mess/includes/comx35.h index 4f1daaf3239..8045a606731 100644 --- a/src/mess/includes/comx35.h +++ b/src/mess/includes/comx35.h @@ -48,8 +48,10 @@ public: m_cassette(*this, CASSETTE_TAG), m_ram(*this, RAM_TAG), m_exp(*this, EXPANSION_TAG), - m_modifiers(*this, "MODIFIERS"), - m_char_ram(*this, "char_ram") + m_rom(*this, CDP1802_TAG), + m_char_ram(*this, "char_ram"), + m_d6(*this, "D6"), + m_modifiers(*this, "MODIFIERS") { } required_device m_maincpu; @@ -58,8 +60,10 @@ public: required_device m_cassette; required_device m_ram; required_device m_exp; - required_ioport m_modifiers; + required_memory_region m_rom; optional_shared_ptr m_char_ram; + required_ioport m_d6; + required_ioport m_modifiers; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); virtual void machine_start(); @@ -97,8 +101,6 @@ public: int m_int; // interrupt request int m_prd; // predisplay int m_cr1; // interrupt enable - - const UINT8 *m_rom; }; // ---------- defined in video/comx35.c ---------- diff --git a/src/mess/includes/cosmicos.h b/src/mess/includes/cosmicos.h index c5d38f2b72d..7cb4245c622 100644 --- a/src/mess/includes/cosmicos.h +++ b/src/mess/includes/cosmicos.h @@ -47,7 +47,15 @@ public: m_led(*this, DM9368_TAG), m_cassette(*this, CASSETTE_TAG), m_speaker(*this, SPEAKER_TAG), - m_ram(*this, RAM_TAG) + m_ram(*this, RAM_TAG), + m_rom(*this, CDP1802_TAG), + m_y1(*this, "Y1"), + m_y2(*this, "Y2"), + m_y3(*this, "Y3"), + m_y4(*this, "Y4"), + m_io_data(*this, "DATA"), + m_special(*this, "SPECIAL"), + m_buttons(*this, "BUTTONS") { } required_device m_maincpu; @@ -56,6 +64,14 @@ public: required_device m_cassette; required_device m_speaker; required_device m_ram; + required_memory_region m_rom; + required_ioport m_y1; + required_ioport m_y2; + required_ioport m_y3; + required_ioport m_y4; + required_ioport m_io_data; + required_ioport m_special; + required_ioport m_buttons; virtual void machine_start(); virtual void machine_reset(); @@ -97,7 +113,6 @@ public: void clear_input_data(); void set_ram_mode(); - /* CPU state */ int m_wait; int m_clear; @@ -120,6 +135,7 @@ public: int m_dmaout; int m_efx; int m_video_on; + DECLARE_DRIVER_INIT(cosmicos); TIMER_DEVICE_CALLBACK_MEMBER(digit_tick); TIMER_DEVICE_CALLBACK_MEMBER(int_tick); diff --git a/src/mess/includes/crvision.h b/src/mess/includes/crvision.h index 66610bdcd62..109db3f34c1 100644 --- a/src/mess/includes/crvision.h +++ b/src/mess/includes/crvision.h @@ -8,14 +8,12 @@ #include "cpu/m6502/m6502.h" #include "imagedev/cartslot.h" #include "imagedev/cassette.h" -#include "imagedev/flopdrv.h" -#include "formats/basicdsk.h" -#include "machine/ctronics.h" #include "machine/6821pia.h" +#include "machine/ctronics.h" +#include "machine/ram.h" #include "sound/sn76496.h" #include "sound/wave.h" #include "video/tms9928a.h" -#include "machine/ram.h" #define SCREEN_TAG "screen" #define M6502_TAG "u2" @@ -79,7 +77,19 @@ class laser2001_state : public crvision_state { public: laser2001_state(const machine_config &mconfig, device_type type, const char *tag) - : crvision_state(mconfig, type, tag) + : crvision_state(mconfig, type, tag), + m_y0(*this, "Y0"), + m_y1(*this, "Y1"), + m_y2(*this, "Y2"), + m_y3(*this, "Y3"), + m_y4(*this, "Y4"), + m_y5(*this, "Y5"), + m_y6(*this, "Y6"), + m_y7(*this, "Y7"), + m_joy0(*this, "JOY0"), + m_joy1(*this, "JOY1"), + m_joy2(*this, "JOY2"), + m_joy3(*this, "JOY3") { } virtual void machine_start(); @@ -92,6 +102,19 @@ public: DECLARE_WRITE_LINE_MEMBER( pia_ca2_w ); DECLARE_READ_LINE_MEMBER( pia_cb1_r ); DECLARE_WRITE_LINE_MEMBER( pia_cb2_w ); + + required_ioport m_y0; + required_ioport m_y1; + required_ioport m_y2; + required_ioport m_y3; + required_ioport m_y4; + required_ioport m_y5; + required_ioport m_y6; + required_ioport m_y7; + required_ioport m_joy0; + required_ioport m_joy1; + required_ioport m_joy2; + required_ioport m_joy3; }; #endif diff --git a/src/mess/includes/elf.h b/src/mess/includes/elf.h index 483078bbe3a..08f46d174a7 100644 --- a/src/mess/includes/elf.h +++ b/src/mess/includes/elf.h @@ -32,7 +32,8 @@ public: m_led_l(*this, DM9368_L_TAG), m_led_h(*this, DM9368_H_TAG), m_cassette(*this, CASSETTE_TAG), - m_ram(*this, RAM_TAG) + m_ram(*this, RAM_TAG), + m_special(*this, "SPECIAL") { } required_device m_maincpu; @@ -42,6 +43,7 @@ public: required_device m_led_h; required_device m_cassette; required_device m_ram; + required_ioport m_special; virtual void machine_start(); diff --git a/src/mess/includes/eti660.h b/src/mess/includes/eti660.h index dbb3bd3c19c..def8a310d34 100644 --- a/src/mess/includes/eti660.h +++ b/src/mess/includes/eti660.h @@ -31,13 +31,23 @@ public: m_maincpu(*this, CDP1802_TAG), m_cti(*this, CDP1864_TAG), m_pia(*this, MC6821_TAG), - m_cassette(*this, CASSETTE_TAG) + m_cassette(*this, CASSETTE_TAG), + m_pa0(*this, "PA0"), + m_pa1(*this, "PA1"), + m_pa2(*this, "PA2"), + m_pa3(*this, "PA3"), + m_special(*this, "SPECIAL") { } required_device m_maincpu; required_device m_cti; required_device m_pia; required_device m_cassette; + required_ioport m_pa0; + required_ioport m_pa1; + required_ioport m_pa2; + required_ioport m_pa3; + required_ioport m_special; UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); diff --git a/src/mess/includes/exp85.h b/src/mess/includes/exp85.h index 1ae504c8089..1b0c24c9fcb 100644 --- a/src/mess/includes/exp85.h +++ b/src/mess/includes/exp85.h @@ -14,13 +14,15 @@ public: m_maincpu(*this, I8085A_TAG), m_terminal(*this, TERMINAL_TAG), m_cassette(*this, CASSETTE_TAG), - m_speaker(*this, SPEAKER_TAG) + m_speaker(*this, SPEAKER_TAG), + m_rom(*this, I8085A_TAG) { } required_device m_maincpu; required_device m_terminal; required_device m_cassette; required_device m_speaker; + required_memory_region m_rom; virtual void machine_start(); diff --git a/src/mess/includes/huebler.h b/src/mess/includes/huebler.h index fee49e92fea..6b2c10aad9a 100644 --- a/src/mess/includes/huebler.h +++ b/src/mess/includes/huebler.h @@ -23,17 +23,55 @@ public: amu880_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_cassette(*this, CASSETTE_TAG), + m_kb_rom(*this, "keyboard"), + m_char_rom(*this, "chargen"), + m_video_ram(*this, "video_ram"), + m_y0(*this, "Y0"), + m_y1(*this, "Y1"), + m_y2(*this, "Y2"), + m_y3(*this, "Y3"), + m_y4(*this, "Y4"), + m_y5(*this, "Y5"), + m_y6(*this, "Y6"), + m_y7(*this, "Y7"), + m_y8(*this, "Y8"), + m_y9(*this, "Y9"), + m_y10(*this, "Y10"), + m_y11(*this, "Y11"), + m_y12(*this, "Y12"), + m_y13(*this, "Y13"), + m_y14(*this, "Y14"), + m_y15(*this, "Y15"), + m_special(*this, "SPECIAL"), m_key_d6(0), m_key_d7(0), - m_key_a8(1), - m_video_ram(*this, "video_ram") + m_key_a8(1) { } required_device m_cassette; + required_memory_region m_kb_rom; + required_memory_region m_char_rom; + required_shared_ptr m_video_ram; + required_ioport m_y0; + required_ioport m_y1; + required_ioport m_y2; + required_ioport m_y3; + required_ioport m_y4; + required_ioport m_y5; + required_ioport m_y6; + required_ioport m_y7; + required_ioport m_y8; + required_ioport m_y9; + required_ioport m_y10; + required_ioport m_y11; + required_ioport m_y12; + required_ioport m_y13; + required_ioport m_y14; + required_ioport m_y15; + required_ioport m_special; virtual void machine_start(); - virtual void video_start(); UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); DECLARE_READ8_MEMBER( keyboard_r ); @@ -41,7 +79,6 @@ public: void scan_keyboard(); // keyboard state - const UINT8 *m_kb_rom; int m_key_d6; int m_key_d7; int m_key_a4; @@ -49,8 +86,6 @@ public: int m_key_a8; // video state - required_shared_ptr m_video_ram; - const UINT8 *m_char_rom; TIMER_DEVICE_CALLBACK_MEMBER(keyboard_tick); DECLARE_WRITE_LINE_MEMBER(ctc_z0_w); DECLARE_WRITE_LINE_MEMBER(ctc_z2_w); diff --git a/src/mess/includes/kyocera.h b/src/mess/includes/kyocera.h index 5e9fbf08188..e7fb0e3e4d2 100644 --- a/src/mess/includes/kyocera.h +++ b/src/mess/includes/kyocera.h @@ -67,7 +67,19 @@ public: m_centronics(*this, CENTRONICS_TAG), m_speaker(*this, SPEAKER_TAG), m_cassette(*this, CASSETTE_TAG), - m_ram(*this, RAM_TAG) + m_ram(*this, RAM_TAG), + m_rom(*this, I8085_TAG), + m_option(*this, "option"), + m_y0(*this, "Y0"), + m_y1(*this, "Y1"), + m_y2(*this, "Y2"), + m_y3(*this, "Y3"), + m_y4(*this, "Y4"), + m_y5(*this, "Y5"), + m_y6(*this, "Y6"), + m_y7(*this, "Y7"), + m_y8(*this, "Y8"), + m_battery(*this, "BATTERY") { } required_device m_maincpu; @@ -87,6 +99,18 @@ public: required_device m_speaker; required_device m_cassette; required_device m_ram; + required_memory_region m_rom; + required_memory_region m_option; + required_ioport m_y0; + required_ioport m_y1; + required_ioport m_y2; + required_ioport m_y3; + required_ioport m_y4; + required_ioport m_y5; + required_ioport m_y6; + required_ioport m_y7; + required_ioport m_y8; + required_ioport m_battery; virtual void machine_start(); @@ -166,7 +190,18 @@ public: m_centronics(*this, CENTRONICS_TAG), m_speaker(*this, SPEAKER_TAG), m_cassette(*this, CASSETTE_TAG), - m_ram(*this, RAM_TAG) + m_ram(*this, RAM_TAG), + m_rom(*this, I8085_TAG), + m_option(*this, "option"), + m_y0(*this, "Y0"), + m_y1(*this, "Y1"), + m_y2(*this, "Y2"), + m_y3(*this, "Y3"), + m_y4(*this, "Y4"), + m_y5(*this, "Y5"), + m_y6(*this, "Y6"), + m_y7(*this, "Y7"), + m_y8(*this, "Y8") { } required_device m_maincpu; @@ -176,6 +211,17 @@ public: required_device m_speaker; required_device m_cassette; required_device m_ram; + required_memory_region m_rom; + required_memory_region m_option; + required_ioport m_y0; + required_ioport m_y1; + required_ioport m_y2; + required_ioport m_y3; + required_ioport m_y4; + required_ioport m_y5; + required_ioport m_y6; + required_ioport m_y7; + required_ioport m_y8; virtual void machine_start(); diff --git a/src/mess/includes/lc80.h b/src/mess/includes/lc80.h index 0485cc37a0f..aac32db72b5 100644 --- a/src/mess/includes/lc80.h +++ b/src/mess/includes/lc80.h @@ -27,7 +27,12 @@ public: m_pio2(*this, Z80PIO2_TAG), m_cassette(*this, CASSETTE_TAG), m_speaker(*this, SPEAKER_TAG), - m_ram(*this, RAM_TAG) + m_ram(*this, RAM_TAG), + m_rom(*this, Z80_TAG), + m_y0(*this, "Y0"), + m_y1(*this, "Y1"), + m_y2(*this, "Y2"), + m_y3(*this, "Y3") { } required_device m_maincpu; @@ -35,6 +40,11 @@ public: required_device m_cassette; required_device m_speaker; required_device m_ram; + required_memory_region m_rom; + required_ioport m_y0; + required_ioport m_y1; + required_ioport m_y2; + required_ioport m_y3; virtual void machine_start(); diff --git a/src/mess/includes/m5.h b/src/mess/includes/m5.h index 1e7d94744ea..1b91c645803 100644 --- a/src/mess/includes/m5.h +++ b/src/mess/includes/m5.h @@ -27,7 +27,8 @@ public: m_cassette(*this, CASSETTE_TAG), m_centronics(*this, CENTRONICS_TAG), m_ram(*this, RAM_TAG), - m_floppy0(*this, UPD765_TAG ":0:525dd") + m_floppy0(*this, UPD765_TAG ":0:525dd"), + m_reset(*this, "RESET") { } required_device m_maincpu; @@ -39,6 +40,7 @@ public: required_device m_centronics; required_device m_ram; required_device m_floppy0; + required_ioport m_reset; virtual void machine_start(); virtual void machine_reset(); diff --git a/src/mess/includes/mc1000.h b/src/mess/includes/mc1000.h index b5a691b601e..20d53725837 100644 --- a/src/mess/includes/mc1000.h +++ b/src/mess/includes/mc1000.h @@ -33,8 +33,22 @@ public: m_centronics(*this, CENTRONICS_TAG), m_cassette(*this, CASSETTE_TAG), m_ram(*this, RAM_TAG), + m_rom(*this, Z80_TAG), m_mc6845_video_ram(*this, "mc6845_vram"), - m_mc6847_video_ram(*this, "mc6847_vram") + m_mc6847_video_ram(*this, "mc6847_vram"), + m_y0(*this, "Y0"), + m_y1(*this, "Y1"), + m_y2(*this, "Y2"), + m_y3(*this, "Y3"), + m_y4(*this, "Y4"), + m_y5(*this, "Y5"), + m_y6(*this, "Y6"), + m_y7(*this, "Y7"), + m_joya(*this, "JOYA"), + m_joyb(*this, "JOYB"), + m_modifiers(*this, "MODIFIERS"), + m_joyakeymap(*this, "JOYAKEYMAP"), + m_joybkeymap(*this, "JOYBKEYMAP") { } required_device m_maincpu; @@ -43,6 +57,22 @@ public: required_device m_centronics; required_device m_cassette; required_device m_ram; + required_memory_region m_rom; + required_shared_ptr m_mc6845_video_ram; + required_shared_ptr m_mc6847_video_ram; + required_ioport m_y0; + required_ioport m_y1; + required_ioport m_y2; + required_ioport m_y3; + required_ioport m_y4; + required_ioport m_y5; + required_ioport m_y6; + required_ioport m_y7; + required_ioport m_joya; + required_ioport m_joyb; + required_ioport m_modifiers; + required_ioport m_joyakeymap; + required_ioport m_joybkeymap; virtual void machine_start(); virtual void machine_reset(); @@ -76,9 +106,8 @@ public: /* video state */ int m_hsync; int m_vsync; - required_shared_ptr m_mc6845_video_ram; - required_shared_ptr m_mc6847_video_ram; UINT8 m_mc6847_attr; + DECLARE_DRIVER_INIT(mc1000); TIMER_DEVICE_CALLBACK_MEMBER(ne555_tick); }; diff --git a/src/mess/includes/mpf1.h b/src/mess/includes/mpf1.h index e5cf581b195..123483b7ec4 100644 --- a/src/mess/includes/mpf1.h +++ b/src/mess/includes/mpf1.h @@ -30,13 +30,27 @@ public: m_maincpu(*this, Z80_TAG), m_ctc(*this, Z80CTC_TAG), m_speaker(*this, SPEAKER_TAG), - m_cassette(*this, CASSETTE_TAG) + m_cassette(*this, CASSETTE_TAG), + m_pc0(*this, "PC0"), + m_pc1(*this, "PC1"), + m_pc2(*this, "PC2"), + m_pc3(*this, "PC3"), + m_pc4(*this, "PC4"), + m_pc5(*this, "PC5"), + m_special(*this, "SPECIAL") { } required_device m_maincpu; required_device m_ctc; required_device m_speaker; required_device m_cassette; + required_ioport m_pc0; + required_ioport m_pc1; + required_ioport m_pc2; + required_ioport m_pc3; + required_ioport m_pc4; + required_ioport m_pc5; + required_ioport m_special; virtual void machine_start(); virtual void machine_reset(); diff --git a/src/mess/includes/newbrain.h b/src/mess/includes/newbrain.h index 3ee37c7c8a0..8a6971fcefe 100644 --- a/src/mess/includes/newbrain.h +++ b/src/mess/includes/newbrain.h @@ -60,13 +60,51 @@ public: m_maincpu(*this, Z80_TAG), m_copcpu(*this, COP420_TAG), m_cassette1(*this, CASSETTE_TAG), - m_cassette2(*this, CASSETTE2_TAG) + m_cassette2(*this, CASSETTE2_TAG), + m_rom(*this, Z80_TAG), + m_eim_rom(*this, "eim"), + m_char_rom(*this, "chargen"), + m_y0(*this, "Y0"), + m_y1(*this, "Y1"), + m_y2(*this, "Y2"), + m_y3(*this, "Y3"), + m_y4(*this, "Y4"), + m_y5(*this, "Y5"), + m_y6(*this, "Y6"), + m_y7(*this, "Y7"), + m_y8(*this, "Y8"), + m_y9(*this, "Y9"), + m_y10(*this, "Y10"), + m_y11(*this, "Y11"), + m_y12(*this, "Y12"), + m_y13(*this, "Y13"), + m_y14(*this, "Y14"), + m_y15(*this, "Y15") { } required_device m_maincpu; required_device m_copcpu; required_device m_cassette1; required_device m_cassette2; + required_memory_region m_rom; + optional_memory_region m_eim_rom; + required_memory_region m_char_rom; + required_ioport m_y0; + required_ioport m_y1; + required_ioport m_y2; + required_ioport m_y3; + required_ioport m_y4; + required_ioport m_y5; + required_ioport m_y6; + required_ioport m_y7; + required_ioport m_y8; + required_ioport m_y9; + required_ioport m_y10; + required_ioport m_y11; + required_ioport m_y12; + required_ioport m_y13; + required_ioport m_y14; + required_ioport m_y15; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); virtual void machine_start(); @@ -145,7 +183,6 @@ public: int m_tvcnsl; // TV console required int m_tvctl; // TV control register UINT16 m_tvram; // TV start address - UINT8 *m_char_rom; // character ROM // user bus state UINT8 m_user; @@ -155,6 +192,7 @@ public: int m_copstate; int m_copbytes; int m_copregint; + INTERRUPT_GEN_MEMBER(newbrain_interrupt); TIMER_DEVICE_CALLBACK_MEMBER(cop_regint_tick); }; diff --git a/src/mess/includes/pc8001.h b/src/mess/includes/pc8001.h index 5bc9bac8d45..89870c84cd0 100644 --- a/src/mess/includes/pc8001.h +++ b/src/mess/includes/pc8001.h @@ -37,7 +37,9 @@ public: m_cassette(*this, CASSETTE_TAG), m_centronics(*this, CENTRONICS_TAG), m_speaker(*this, SPEAKER_TAG), - m_ram(*this, RAM_TAG) + m_ram(*this, RAM_TAG), + m_rom(*this, Z80_TAG), + m_char_rom(*this, UPD3301_TAG) { } required_device m_maincpu; @@ -48,11 +50,11 @@ public: required_device m_centronics; required_device m_speaker; required_device m_ram; + required_memory_region m_rom; + required_memory_region m_char_rom; virtual void machine_start(); - virtual void video_start(); - DECLARE_WRITE8_MEMBER( port10_w ); DECLARE_WRITE8_MEMBER( port30_w ); DECLARE_READ8_MEMBER( port40_r ); @@ -64,7 +66,6 @@ public: DECLARE_WRITE8_MEMBER( dma_io_w ); /* video state */ - UINT8 *m_char_rom; int m_width80; int m_color; }; @@ -73,9 +74,12 @@ class pc8001mk2_state : public pc8001_state { public: pc8001mk2_state(const machine_config &mconfig, device_type type, const char *tag) - : pc8001_state(mconfig, type, tag) + : pc8001_state(mconfig, type, tag), + m_kanji_rom(*this, "kanji") { } + required_memory_region m_kanji_rom; + DECLARE_WRITE8_MEMBER( port31_w ); }; diff --git a/src/mess/includes/pc8401a.h b/src/mess/includes/pc8401a.h index 9662224f1fd..3f615973b04 100644 --- a/src/mess/includes/pc8401a.h +++ b/src/mess/includes/pc8401a.h @@ -37,7 +37,20 @@ public: m_lcdc(*this, SED1330_TAG), m_crtc(*this, MC6845_TAG), m_screen_lcd(*this, SCREEN_TAG), - m_ram(*this, RAM_TAG) + m_ram(*this, RAM_TAG), + m_rom(*this, Z80_TAG), + m_io_rom(*this, "iorom"), + m_crt_ram(*this, "crt_ram"), + m_y0(*this, "Y0"), + m_y1(*this, "Y1"), + m_y2(*this, "Y2"), + m_y3(*this, "Y3"), + m_y4(*this, "Y4"), + m_y5(*this, "Y5"), + m_y6(*this, "Y6"), + m_y7(*this, "Y7"), + m_y8(*this, "Y8"), + m_y9(*this, "Y9") { } required_device m_maincpu; @@ -46,6 +59,19 @@ public: required_device m_crtc; required_device m_screen_lcd; required_device m_ram; + required_memory_region m_rom; + required_memory_region m_io_rom; + optional_shared_ptr m_crt_ram; + required_ioport m_y0; + required_ioport m_y1; + required_ioport m_y2; + required_ioport m_y3; + required_ioport m_y4; + required_ioport m_y5; + required_ioport m_y6; + required_ioport m_y7; + required_ioport m_y8; + required_ioport m_y9; virtual void machine_start(); @@ -76,9 +102,6 @@ public: UINT8 m_mmr; // memory mapping register UINT32 m_io_addr; // I/O ROM address counter - // video state - UINT8 *m_crt_ram; // CRT video RAM - UINT8 m_key_latch; TIMER_DEVICE_CALLBACK_MEMBER(pc8401a_keyboard_tick); }; diff --git a/src/mess/includes/phc25.h b/src/mess/includes/phc25.h index 31b987b38a6..1a06b115374 100644 --- a/src/mess/includes/phc25.h +++ b/src/mess/includes/phc25.h @@ -28,9 +28,9 @@ public: m_maincpu(*this, Z80_TAG), m_vdg(*this, MC6847_TAG), m_centronics(*this, CENTRONICS_TAG), - m_cassette(*this, CASSETTE_TAG) - , - m_video_ram(*this, "video_ram"){ } + m_cassette(*this, CASSETTE_TAG), + m_video_ram(*this, "video_ram") + { } required_device m_maincpu; required_device m_vdg; diff --git a/src/mess/includes/poly880.h b/src/mess/includes/poly880.h index a9ae7f8c737..e11c7942cf1 100644 --- a/src/mess/includes/poly880.h +++ b/src/mess/includes/poly880.h @@ -24,11 +24,17 @@ public: poly880_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, Z80_TAG), - m_cassette(*this, CASSETTE_TAG) + m_cassette(*this, CASSETTE_TAG), + m_ki1(*this, "KI1"), + m_ki2(*this, "KI2"), + m_ki3(*this, "KI3") { } required_device m_maincpu; required_device m_cassette; + required_ioport m_ki1; + required_ioport m_ki2; + required_ioport m_ki3; virtual void machine_start(); diff --git a/src/mess/includes/prof80.h b/src/mess/includes/prof80.h index 80020f68a14..3f71fe19830 100644 --- a/src/mess/includes/prof80.h +++ b/src/mess/includes/prof80.h @@ -35,18 +35,24 @@ public: m_rtc(*this, UPD1990A_TAG), m_fdc(*this, UPD765_TAG), m_ram(*this, RAM_TAG), - m_floppy0(*this, UPD765_TAG ":0:525hd"), - m_floppy1(*this, UPD765_TAG ":0:525hd"), - m_ecb(*this, ECBBUS_TAG) + m_floppy0(*this, UPD765_TAG":0"), + m_floppy1(*this, UPD765_TAG":1"), + m_ecb(*this, ECBBUS_TAG), + m_rom(*this, Z80_TAG), + m_j4(*this, "J4"), + m_j5(*this, "J5") { } required_device m_maincpu; required_device m_rtc; required_device m_fdc; required_device m_ram; - optional_device m_floppy0; - optional_device m_floppy1; + required_device m_floppy0; + required_device m_floppy1; required_device m_ecb; + required_memory_region m_rom; + required_ioport m_j4; + required_ioport m_j5; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); virtual void machine_start(); diff --git a/src/mess/includes/ql.h b/src/mess/includes/ql.h index 907b5144292..f0401141d45 100644 --- a/src/mess/includes/ql.h +++ b/src/mess/includes/ql.h @@ -77,7 +77,17 @@ public: m_mdv2(*this, MDV_2), m_ram(*this, RAM_TAG), m_fdc(*this, WD1772_TAG), - m_printer(*this, PRINTER_TAG) + m_printer(*this, PRINTER_TAG), + m_y0(*this, "Y0"), + m_y1(*this, "Y1"), + m_y2(*this, "Y2"), + m_y3(*this, "Y3"), + m_y4(*this, "Y4"), + m_y5(*this, "Y5"), + m_y6(*this, "Y6"), + m_y7(*this, "Y7"), + m_joy0(*this, "JOY0"), + m_joy1(*this, "JOY1") { } required_device m_maincpu; @@ -90,6 +100,16 @@ public: required_device m_ram; required_device m_fdc; required_device m_printer; + required_ioport m_y0; + required_ioport m_y1; + required_ioport m_y2; + required_ioport m_y3; + required_ioport m_y4; + required_ioport m_y5; + required_ioport m_y6; + required_ioport m_y7; + required_ioport m_joy0; + required_ioport m_joy1; virtual void machine_start(); virtual void machine_reset(); diff --git a/src/mess/includes/sg1000.h b/src/mess/includes/sg1000.h index 62a31c53ef5..58f7f1b571a 100644 --- a/src/mess/includes/sg1000.h +++ b/src/mess/includes/sg1000.h @@ -50,11 +50,13 @@ public: sg1000_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, Z80_TAG), - m_ram(*this, RAM_TAG) + m_ram(*this, RAM_TAG), + m_rom(*this, Z80_TAG) { } required_device m_maincpu; required_device m_ram; + required_memory_region m_rom; virtual void machine_start(); @@ -80,10 +82,42 @@ class sc3000_state : public sg1000_state public: sc3000_state(const machine_config &mconfig, device_type type, const char *tag) : sg1000_state(mconfig, type, tag), - m_cassette(*this, CASSETTE_TAG) + m_cassette(*this, CASSETTE_TAG), + m_pa0(*this, "PA0"), + m_pa1(*this, "PA1"), + m_pa2(*this, "PA2"), + m_pa3(*this, "PA3"), + m_pa4(*this, "PA4"), + m_pa5(*this, "PA5"), + m_pa6(*this, "PA6"), + m_pa7(*this, "PA7"), + m_pb0(*this, "PB0"), + m_pb1(*this, "PB1"), + m_pb2(*this, "PB2"), + m_pb3(*this, "PB3"), + m_pb4(*this, "PB4"), + m_pb5(*this, "PB5"), + m_pb6(*this, "PB6"), + m_pb7(*this, "PB7") { } required_device m_cassette; + required_ioport m_pa0; + required_ioport m_pa1; + required_ioport m_pa2; + required_ioport m_pa3; + required_ioport m_pa4; + required_ioport m_pa5; + required_ioport m_pa6; + required_ioport m_pa7; + required_ioport m_pb0; + required_ioport m_pb1; + required_ioport m_pb2; + required_ioport m_pb3; + required_ioport m_pb4; + required_ioport m_pb5; + required_ioport m_pb6; + required_ioport m_pb7; virtual void machine_start(); diff --git a/src/mess/includes/super6.h b/src/mess/includes/super6.h index 1dd2ad6d4d7..7520eef3edd 100644 --- a/src/mess/includes/super6.h +++ b/src/mess/includes/super6.h @@ -40,7 +40,8 @@ public: m_ram(*this, RAM_TAG), m_floppy0(*this, WD2793_TAG":0"), m_floppy1(*this, WD2793_TAG":1"), - m_terminal(*this, TERMINAL_TAG) + m_terminal(*this, TERMINAL_TAG), + m_rom(*this, Z80_TAG) { } required_device m_maincpu; @@ -54,6 +55,7 @@ public: required_device m_floppy0; required_device m_floppy1; required_device m_terminal; + required_memory_region m_rom; virtual void machine_start(); virtual void machine_reset(); diff --git a/src/mess/includes/tek405x.h b/src/mess/includes/tek405x.h index b615dac8385..b9e5e45d5e7 100644 --- a/src/mess/includes/tek405x.h +++ b/src/mess/includes/tek405x.h @@ -3,7 +3,16 @@ #ifndef __TEK405X__ #define __TEK405X__ +#include "emu.h" +#include "cpu/m6800/m6800.h" +#include "imagedev/cartslot.h" #include "machine/ram.h" +#include "machine/6821pia.h" +#include "machine/6850acia.h" +#include "machine/ieee488.h" +#include "machine/ram.h" +#include "sound/speaker.h" +#include "video/vector.h" #define MC6800_TAG "u61" #define MC6820_Y_TAG "u561" @@ -29,7 +38,11 @@ public: m_acia(*this, MC6850_TAG), m_gpib(*this, IEEE488_TAG), m_speaker(*this, SPEAKER_TAG), - m_ram(*this, RAM_TAG) + m_ram(*this, RAM_TAG), + m_rom(*this, MC6800_TAG), + m_bsofl_rom(*this, "020_0147_00"), + m_bscom_rom(*this, "021_0188_00"), + m_special(*this, "SPECIAL") { } required_device m_maincpu; @@ -39,6 +52,10 @@ public: required_device m_gpib; required_device m_speaker; required_device m_ram; + required_memory_region m_rom; + required_memory_region m_bsofl_rom; + required_memory_region m_bscom_rom; + required_ioport m_special; virtual void machine_start(); diff --git a/src/mess/includes/tiki100.h b/src/mess/includes/tiki100.h index e843c356df9..be5935dd172 100644 --- a/src/mess/includes/tiki100.h +++ b/src/mess/includes/tiki100.h @@ -41,7 +41,20 @@ public: m_ram(*this, RAM_TAG), m_floppy0(*this, FD1797_TAG":0"), m_floppy1(*this, FD1797_TAG":1"), - m_video_ram(*this, "video_ram") + m_rom(*this, Z80_TAG), + m_video_ram(*this, "video_ram"), + m_y1(*this, "Y1"), + m_y2(*this, "Y2"), + m_y3(*this, "Y3"), + m_y4(*this, "Y4"), + m_y5(*this, "Y5"), + m_y6(*this, "Y6"), + m_y7(*this, "Y7"), + m_y8(*this, "Y8"), + m_y9(*this, "Y9"), + m_y10(*this, "Y10"), + m_y11(*this, "Y11"), + m_y12(*this, "Y12") { } required_device m_maincpu; @@ -50,7 +63,20 @@ public: required_device m_ram; required_device m_floppy0; required_device m_floppy1; + required_memory_region m_rom; optional_shared_ptr m_video_ram; + required_ioport m_y1; + required_ioport m_y2; + required_ioport m_y3; + required_ioport m_y4; + required_ioport m_y5; + required_ioport m_y6; + required_ioport m_y7; + required_ioport m_y8; + required_ioport m_y9; + required_ioport m_y10; + required_ioport m_y11; + required_ioport m_y12; virtual void machine_start(); diff --git a/src/mess/includes/tmc1800.h b/src/mess/includes/tmc1800.h index 8ca0e1e2505..5251c975a07 100644 --- a/src/mess/includes/tmc1800.h +++ b/src/mess/includes/tmc1800.h @@ -28,12 +28,18 @@ public: : driver_device(mconfig, type, tag), m_maincpu(*this, CDP1802_TAG), m_vdc(*this, CDP1861_TAG), - m_cassette(*this, CASSETTE_TAG) + m_cassette(*this, CASSETTE_TAG), + m_ram(*this, RAM_TAG), + m_rom(*this, CDP1802_TAG), + m_run(*this, "RUN") { } required_device m_maincpu; required_device m_vdc; required_device m_cassette; + required_device m_ram; + required_memory_region m_rom; + required_ioport m_run; virtual void machine_start(); virtual void machine_reset(); @@ -58,11 +64,15 @@ public: osc1000b_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, CDP1802_TAG), - m_cassette(*this, CASSETTE_TAG) + m_cassette(*this, CASSETTE_TAG), + m_rom(*this, CDP1802_TAG), + m_run(*this, "RUN") { } required_device m_maincpu; required_device m_cassette; + required_memory_region m_rom; + required_ioport m_run; virtual void machine_start(); virtual void machine_reset(); @@ -87,13 +97,35 @@ public: m_maincpu(*this, CDP1802_TAG), m_cti(*this, CDP1864_TAG), m_cassette(*this, CASSETTE_TAG), - m_ram(*this, RAM_TAG) + m_ram(*this, RAM_TAG), + m_rom(*this, CDP1802_TAG), + m_colorram(*this, "color_ram"), + m_in0(*this, "IN0"), + m_in1(*this, "IN1"), + m_in2(*this, "IN2"), + m_in3(*this, "IN3"), + m_in4(*this, "IN4"), + m_in5(*this, "IN5"), + m_in6(*this, "IN6"), + m_in7(*this, "IN7"), + m_run(*this, "RUN") { } required_device m_maincpu; required_device m_cti; required_device m_cassette; required_device m_ram; + required_memory_region m_rom; + optional_shared_ptr m_colorram; + required_ioport m_in0; + required_ioport m_in1; + required_ioport m_in2; + required_ioport m_in3; + required_ioport m_in4; + required_ioport m_in5; + required_ioport m_in6; + required_ioport m_in7; + required_ioport m_run; virtual void machine_start(); virtual void machine_reset(); @@ -117,7 +149,6 @@ public: int m_roc; /* video state */ - UINT8 *m_colorram; /* color memory */ UINT8 m_color; /* keyboard state */ @@ -132,13 +163,23 @@ public: m_maincpu(*this, CDP1802_TAG), m_cti(*this, CDP1864_TAG), m_cassette(*this, CASSETTE_TAG), - m_ram(*this, RAM_TAG) + m_ram(*this, RAM_TAG), + m_rom(*this, CDP1802_TAG), + m_ny0(*this, "NY0"), + m_ny1(*this, "NY1"), + m_run(*this, "RUN"), + m_monitor(*this, "MONITOR") { } required_device m_maincpu; required_device m_cti; required_device m_cassette; required_device m_ram; + required_memory_region m_rom; + required_ioport m_ny0; + required_ioport m_ny1; + required_ioport m_run; + required_ioport m_monitor; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); virtual void machine_start(); diff --git a/src/mess/includes/tmc600.h b/src/mess/includes/tmc600.h index 0422db28587..5b94514c920 100644 --- a/src/mess/includes/tmc600.h +++ b/src/mess/includes/tmc600.h @@ -31,6 +31,7 @@ public: m_vis(*this, CDP1869_TAG), m_cassette(*this, CASSETTE_TAG), m_ram(*this, RAM_TAG), + m_char_rom(*this, "chargen"), m_page_ram(*this, "page_ram"), m_color_ram(*this, "color_ram"), m_run(*this, "RUN"), @@ -48,6 +49,7 @@ public: required_device m_vis; required_device m_cassette; required_device m_ram; + required_memory_region m_char_rom; required_shared_ptr m_page_ram; optional_shared_ptr m_color_ram; required_ioport m_run; @@ -81,8 +83,6 @@ public: int m_vismac_bkg_latch; // background color latch int m_blink; // cursor blink - const UINT8 *m_char_rom; - // keyboard state int m_keylatch; // key latch TIMER_DEVICE_CALLBACK_MEMBER(blink_tick); diff --git a/src/mess/includes/v1050.h b/src/mess/includes/v1050.h index 5927b5625b9..aec7cb536c2 100644 --- a/src/mess/includes/v1050.h +++ b/src/mess/includes/v1050.h @@ -78,6 +78,7 @@ public: m_timer_ack(*this, TIMER_ACK_TAG), m_timer_rst(*this, TIMER_RST_TAG), m_sasibus(*this, SASIBUS_TAG ":host"), + m_rom(*this, Z80_TAG), m_video_ram(*this, "video_ram"), m_attr_ram(*this, "attr_ram") { } @@ -100,6 +101,7 @@ public: required_device m_timer_ack; required_device m_timer_rst; required_device m_sasibus; + required_memory_region m_rom; required_shared_ptr m_video_ram; optional_shared_ptr m_attr_ram; diff --git a/src/mess/includes/vcs80.h b/src/mess/includes/vcs80.h index 1014b08cfcc..352429e9729 100644 --- a/src/mess/includes/vcs80.h +++ b/src/mess/includes/vcs80.h @@ -19,10 +19,16 @@ class vcs80_state : public driver_device public: vcs80_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), - m_pio(*this, Z80PIO_TAG) + m_pio(*this, Z80PIO_TAG), + m_y0(*this, "Y0"), + m_y1(*this, "Y1"), + m_y2(*this, "Y2") { } required_device m_pio; + required_ioport m_y0; + required_ioport m_y1; + required_ioport m_y2; virtual void machine_start(); diff --git a/src/mess/includes/vidbrain.h b/src/mess/includes/vidbrain.h index 75fa2e09916..654a2f5e754 100644 --- a/src/mess/includes/vidbrain.h +++ b/src/mess/includes/vidbrain.h @@ -34,7 +34,25 @@ public: m_uv(*this, UV201_TAG), m_discrete(*this, DISCRETE_TAG), m_dac(*this, DAC_TAG), - m_exp(*this, VIDEOBRAIN_EXPANSION_SLOT_TAG) + m_exp(*this, VIDEOBRAIN_EXPANSION_SLOT_TAG), + m_io00(*this, "IO00"), + m_io01(*this, "IO01"), + m_io02(*this, "IO02"), + m_io03(*this, "IO03"), + m_io04(*this, "IO04"), + m_io05(*this, "IO05"), + m_io06(*this, "IO06"), + m_io07(*this, "IO07"), + m_uv201_31(*this, "UV201-31"), + m_joy_r(*this, "JOY-R"), + m_joy1_x(*this, "JOY1-X"), + m_joy1_y(*this, "JOY1-Y"), + m_joy2_x(*this, "JOY2-X"), + m_joy2_y(*this, "JOY2-Y"), + m_joy3_x(*this, "JOY3-X"), + m_joy3_y(*this, "JOY3-Y"), + m_joy4_x(*this, "JOY4-X"), + m_joy4_y(*this, "JOY4-Y") { } required_device m_maincpu; @@ -43,6 +61,24 @@ public: required_device m_discrete; required_device m_dac; required_device m_exp; + required_ioport m_io00; + required_ioport m_io01; + required_ioport m_io02; + required_ioport m_io03; + required_ioport m_io04; + required_ioport m_io05; + required_ioport m_io06; + required_ioport m_io07; + required_ioport m_uv201_31; + required_ioport m_joy_r; + required_ioport m_joy1_x; + required_ioport m_joy1_y; + required_ioport m_joy2_x; + required_ioport m_joy2_y; + required_ioport m_joy3_x; + required_ioport m_joy3_y; + required_ioport m_joy4_x; + required_ioport m_joy4_y; virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); virtual void machine_start(); diff --git a/src/mess/includes/vip.h b/src/mess/includes/vip.h index 239bd75a597..de8fb5d2db2 100644 --- a/src/mess/includes/vip.h +++ b/src/mess/includes/vip.h @@ -31,8 +31,12 @@ public: m_byteio(*this, VIP_BYTEIO_PORT_TAG), m_exp(*this, VIP_EXPANSION_SLOT_TAG), m_ram(*this, RAM_TAG), + m_rom(*this, CDP1802_TAG), + m_chip8(*this, "chip8"), + m_chip8x(*this, "chip8x"), m_run(*this, "RUN"), m_keypad(*this, "KEYPAD"), + m_io_beeper(*this, "BEEPER"), m_8000(1), m_vdc_int(CLEAR_LINE), m_vdc_dma_out(CLEAR_LINE), @@ -54,8 +58,12 @@ public: required_device m_byteio; required_device m_exp; required_device m_ram; + required_memory_region m_rom; + required_memory_region m_chip8; + required_memory_region m_chip8x; required_ioport m_run; required_ioport m_keypad; + required_ioport m_io_beeper; virtual void machine_start(); virtual void machine_reset(); diff --git a/src/mess/includes/vixen.h b/src/mess/includes/vixen.h index ae2b14ba3c6..d2443e360f4 100644 --- a/src/mess/includes/vixen.h +++ b/src/mess/includes/vixen.h @@ -34,13 +34,24 @@ public: m_ram(*this, RAM_TAG), m_floppy0(*this, FDC1797_TAG":0"), m_floppy1(*this, FDC1797_TAG":1"), + m_rom(*this, Z8400A_TAG), + m_sync_rom(*this, "video"), + m_char_rom(*this, "chargen"), + m_video_ram(*this, "video_ram"), + m_y0(*this, "Y0"), + m_y1(*this, "Y1"), + m_y2(*this, "Y2"), + m_y3(*this, "Y3"), + m_y4(*this, "Y4"), + m_y5(*this, "Y5"), + m_y6(*this, "Y6"), + m_y7(*this, "Y7"), m_fdint(0), m_vsync(0), m_srq(1), m_atn(1), m_rxrdy(0), - m_txrdy(0), - m_video_ram(*this, "video_ram") + m_txrdy(0) { } required_device m_maincpu; @@ -52,6 +63,18 @@ public: required_device m_ram; required_device m_floppy0; required_device m_floppy1; + required_memory_region m_rom; + required_memory_region m_sync_rom; + required_memory_region m_char_rom; + required_shared_ptr m_video_ram; + required_ioport m_y0; + required_ioport m_y1; + required_ioport m_y2; + required_ioport m_y3; + required_ioport m_y4; + required_ioport m_y5; + required_ioport m_y6; + required_ioport m_y7; virtual void machine_start(); virtual void machine_reset(); @@ -107,9 +130,7 @@ public: // video state int m_alt; int m_256; - required_shared_ptr m_video_ram; - const UINT8 *m_sync_rom; - const UINT8 *m_char_rom; + DECLARE_DRIVER_INIT(vixen); TIMER_DEVICE_CALLBACK_MEMBER(vsync_tick); }; diff --git a/src/mess/includes/wangpc.h b/src/mess/includes/wangpc.h index 9d75e0f4472..176dbed3c9a 100644 --- a/src/mess/includes/wangpc.h +++ b/src/mess/includes/wangpc.h @@ -56,6 +56,7 @@ public: m_centronics(*this, CENTRONICS_TAG), m_kb(*this, WANGPC_KEYBOARD_TAG), m_bus(*this, WANGPC_BUS_TAG), + m_sw(*this, "SW"), m_timer2_irq(1), m_acknlg(1), m_dav(1), @@ -89,6 +90,7 @@ public: required_device m_centronics; required_device m_kb; required_device m_bus; + required_ioport m_sw; virtual void machine_start(); virtual void machine_reset(); diff --git a/src/mess/includes/xerox820.h b/src/mess/includes/xerox820.h index 78a0de9754c..db4e426afe5 100644 --- a/src/mess/includes/xerox820.h +++ b/src/mess/includes/xerox820.h @@ -48,6 +48,8 @@ public: m_ram(*this, RAM_TAG), m_floppy0(*this, FD1771_TAG":0"), m_floppy1(*this, FD1771_TAG":1"), + m_rom(*this, Z80_TAG), + m_char_rom(*this, "chargen"), m_video_ram(*this, "video_ram"), m_fdc_irq(0), m_fdc_drq(0), @@ -58,7 +60,6 @@ public: virtual void machine_start(); virtual void machine_reset(); - virtual void video_start(); UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); required_device m_maincpu; @@ -68,6 +69,9 @@ public: required_device m_ram; required_device m_floppy0; required_device m_floppy1; + required_memory_region m_rom; + required_memory_region m_char_rom; + required_shared_ptr m_video_ram; DECLARE_READ8_MEMBER( fdc_r ); DECLARE_WRITE8_MEMBER( fdc_w ); @@ -89,8 +93,6 @@ public: int m_keydata; /* keyboard data */ /* video state */ - required_shared_ptr m_video_ram; /* video RAM */ - UINT8 *m_char_rom; /* character ROM */ UINT8 m_scroll; /* vertical scroll */ UINT8 m_framecnt; int m_ncset2; /* national character set */ diff --git a/src/mess/includes/xor100.h b/src/mess/includes/xor100.h index 506a099ced8..194380071ff 100644 --- a/src/mess/includes/xor100.h +++ b/src/mess/includes/xor100.h @@ -43,7 +43,8 @@ public: m_floppy0(*this, WD1795_TAG":0"), m_floppy1(*this, WD1795_TAG":1"), m_floppy2(*this, WD1795_TAG":2"), - m_floppy3(*this, WD1795_TAG":3") + m_floppy3(*this, WD1795_TAG":3"), + m_rom(*this, Z80_TAG) { } required_device m_maincpu; @@ -60,6 +61,7 @@ public: required_device m_floppy1; required_device m_floppy2; required_device m_floppy3; + required_memory_region m_rom; virtual void machine_start(); virtual void machine_reset(); diff --git a/src/mess/machine/abc77.c b/src/mess/machine/abc77.c index 50824502b3e..5a1394175fe 100644 --- a/src/mess/machine/abc77.c +++ b/src/mess/machine/abc77.c @@ -460,6 +460,7 @@ abc77_device::abc77_device(const machine_config &mconfig, const char *tag, devic m_x9(*this, "X9"), m_x10(*this, "X10"), m_x11(*this, "X11"), + m_dsw(*this, "DSW"), m_txd(1), m_keydown(1), m_clock(0), @@ -483,6 +484,7 @@ abc77_device::abc77_device(const machine_config &mconfig, device_type type, cons m_x9(*this, "X9"), m_x10(*this, "X10"), m_x11(*this, "X11"), + m_dsw(*this, "DSW"), m_txd(1), m_keydown(1), m_clock(0), @@ -519,7 +521,7 @@ void abc77_device::device_start() void abc77_device::device_reset() { int t = 1.1 * RES_K(100) * CAP_N(100) * 1000; // t = 1.1 * R1 * C1 - int ea = BIT(ioport("DSW")->read(), 7); + int ea = BIT(m_dsw->read(), 7); // trigger reset m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); diff --git a/src/mess/machine/abc77.h b/src/mess/machine/abc77.h index 870e6757976..c5d34c7dc3c 100644 --- a/src/mess/machine/abc77.h +++ b/src/mess/machine/abc77.h @@ -118,6 +118,7 @@ protected: required_ioport m_x9; required_ioport m_x10; required_ioport m_x11; + required_ioport m_dsw; int m_txd; // transmit data int m_keylatch; // keyboard row latch diff --git a/src/mess/machine/abc_dos.c b/src/mess/machine/abc_dos.c index 56dd8830da5..c7677c98097 100644 --- a/src/mess/machine/abc_dos.c +++ b/src/mess/machine/abc_dos.c @@ -107,7 +107,8 @@ const rom_entry *abc_dos_device::device_rom_region() const abc_dos_device::abc_dos_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, ABC_DOS, "ABC DOS", tag, owner, clock), - device_abcbus_card_interface(mconfig, *this) + device_abcbus_card_interface(mconfig, *this), + m_rom(*this, "dos") { } @@ -136,7 +137,7 @@ UINT8 abc_dos_device::abcbus_xmemfl(offs_t offset) if (offset >= 0x6000 && offset < 0x8000) { - data = memregion("dos")->base()[offset & 0x1fff]; + data = m_rom->base()[offset & 0x1fff]; } return data; diff --git a/src/mess/machine/abc_dos.h b/src/mess/machine/abc_dos.h index 98af80fe99f..086f0895b38 100644 --- a/src/mess/machine/abc_dos.h +++ b/src/mess/machine/abc_dos.h @@ -42,6 +42,9 @@ protected: // device_abcbus_interface overrides virtual void abcbus_cs(UINT8 data) { }; virtual UINT8 abcbus_xmemfl(offs_t offset); + +private: + required_memory_region m_rom; }; diff --git a/src/mess/machine/abc_fd2.c b/src/mess/machine/abc_fd2.c index 04334aef4e0..17ddc15da1b 100644 --- a/src/mess/machine/abc_fd2.c +++ b/src/mess/machine/abc_fd2.c @@ -179,7 +179,8 @@ abc_fd2_device::abc_fd2_device(const machine_config &mconfig, const char *tag, d m_pio(*this, Z80PIO_TAG), m_fdc(*this, FD1771_TAG), m_floppy0(*this, FD1771_TAG":0"), - m_floppy1(*this, FD1771_TAG":1") + m_floppy1(*this, FD1771_TAG":1"), + m_rom(*this, "dos") { } @@ -226,7 +227,7 @@ UINT8 abc_fd2_device::abcbus_xmemfl(offs_t offset) if (offset >= 0x6000 && offset < 0x6400) // TODO is this mirrored? { - data = memregion("abc80")->base()[offset & 0x3ff]; + data = m_rom->base()[offset & 0x3ff]; } return data; diff --git a/src/mess/machine/abc_fd2.h b/src/mess/machine/abc_fd2.h index 1ffd85d6797..38d3bc1b5fc 100644 --- a/src/mess/machine/abc_fd2.h +++ b/src/mess/machine/abc_fd2.h @@ -55,6 +55,7 @@ private: required_device m_fdc; required_device m_floppy0; required_device m_floppy1; + required_memory_region m_rom; }; diff --git a/src/mess/machine/abc_sio.c b/src/mess/machine/abc_sio.c index 6abcc03aef5..5d648360aa4 100644 --- a/src/mess/machine/abc_sio.c +++ b/src/mess/machine/abc_sio.c @@ -142,7 +142,8 @@ abc_sio_device::abc_sio_device(const machine_config &mconfig, const char *tag, d : device_t(mconfig, ABC_SIO, "ABC SIO", tag, owner, clock), device_abcbus_card_interface(mconfig, *this), m_ctc(*this, Z80CTC_TAG), - m_sio(*this, Z80SIO_TAG) + m_sio(*this, Z80SIO_TAG), + m_rom(*this, "abc80") { } @@ -189,7 +190,7 @@ UINT8 abc_sio_device::abcbus_xmemfl(offs_t offset) if (offset >= 0x4000 && offset < 0x5000) // TODO where is this mapped? { - data = memregion("abc80")->base()[offset & 0xfff]; + data = m_rom->base()[offset & 0xfff]; } return data; diff --git a/src/mess/machine/abc_sio.h b/src/mess/machine/abc_sio.h index 55d4147bed9..1e3b78a4275 100644 --- a/src/mess/machine/abc_sio.h +++ b/src/mess/machine/abc_sio.h @@ -41,7 +41,7 @@ protected: private: required_device m_ctc; required_device m_sio; - + required_memory_region m_rom; }; diff --git a/src/mess/machine/apricotkb.c b/src/mess/machine/apricotkb.c index 01b40ecdf74..b90f686fb7f 100644 --- a/src/mess/machine/apricotkb.c +++ b/src/mess/machine/apricotkb.c @@ -269,7 +269,21 @@ ioport_constructor apricot_keyboard_device::device_input_ports() const //------------------------------------------------- apricot_keyboard_device::apricot_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) - : device_t(mconfig, APRICOT_KEYBOARD, "Apricot Keyboard", tag, owner, clock) + : device_t(mconfig, APRICOT_KEYBOARD, "Apricot Keyboard", tag, owner, clock), + m_y0(*this, "Y0"), + m_y1(*this, "Y1"), + m_y2(*this, "Y2"), + m_y3(*this, "Y3"), + m_y4(*this, "Y4"), + m_y5(*this, "Y5"), + m_y6(*this, "Y6"), + m_y7(*this, "Y7"), + m_y8(*this, "Y8"), + m_y9(*this, "Y9"), + m_ya(*this, "YA"), + m_yb(*this, "YB"), + m_yc(*this, "YC"), + m_modifiers(*this, "MODIFIERS") { } @@ -302,19 +316,19 @@ UINT8 apricot_keyboard_device::read_keyboard() { UINT8 data = 0xff; - if (!BIT(m_kb_y, 0)) data &= ioport("Y0")->read(); - if (!BIT(m_kb_y, 1)) data &= ioport("Y1")->read(); - if (!BIT(m_kb_y, 2)) data &= ioport("Y2")->read(); - if (!BIT(m_kb_y, 3)) data &= ioport("Y3")->read(); - if (!BIT(m_kb_y, 4)) data &= ioport("Y4")->read(); - if (!BIT(m_kb_y, 5)) data &= ioport("Y5")->read(); - if (!BIT(m_kb_y, 6)) data &= ioport("Y6")->read(); - if (!BIT(m_kb_y, 7)) data &= ioport("Y7")->read(); - if (!BIT(m_kb_y, 8)) data &= ioport("Y8")->read(); - if (!BIT(m_kb_y, 9)) data &= ioport("Y9")->read(); - if (!BIT(m_kb_y, 10)) data &= ioport("YA")->read(); - if (!BIT(m_kb_y, 11)) data &= ioport("YB")->read(); - if (!BIT(m_kb_y, 12)) data &= ioport("YC")->read(); + if (!BIT(m_kb_y, 0)) data &= m_y0->read(); + if (!BIT(m_kb_y, 1)) data &= m_y1->read(); + if (!BIT(m_kb_y, 2)) data &= m_y2->read(); + if (!BIT(m_kb_y, 3)) data &= m_y3->read(); + if (!BIT(m_kb_y, 4)) data &= m_y4->read(); + if (!BIT(m_kb_y, 5)) data &= m_y5->read(); + if (!BIT(m_kb_y, 6)) data &= m_y6->read(); + if (!BIT(m_kb_y, 7)) data &= m_y7->read(); + if (!BIT(m_kb_y, 8)) data &= m_y8->read(); + if (!BIT(m_kb_y, 9)) data &= m_y9->read(); + if (!BIT(m_kb_y, 10)) data &= m_ya->read(); + if (!BIT(m_kb_y, 11)) data &= m_yb->read(); + if (!BIT(m_kb_y, 12)) data &= m_yc->read(); return data; } @@ -356,7 +370,7 @@ READ8_MEMBER( apricot_keyboard_device::kb_p6_r ) */ - UINT8 modifiers = ioport("MODIFIERS")->read(); + UINT8 modifiers = m_modifiers->read(); return modifiers << 1; } diff --git a/src/mess/machine/apricotkb.h b/src/mess/machine/apricotkb.h index fe2a2c5e3c9..a8f6e62d191 100644 --- a/src/mess/machine/apricotkb.h +++ b/src/mess/machine/apricotkb.h @@ -85,6 +85,21 @@ protected: private: devcb_resolved_write_line m_out_txd_func; + required_ioport m_y0; + required_ioport m_y1; + required_ioport m_y2; + required_ioport m_y3; + required_ioport m_y4; + required_ioport m_y5; + required_ioport m_y6; + required_ioport m_y7; + required_ioport m_y8; + required_ioport m_y9; + required_ioport m_ya; + required_ioport m_yb; + required_ioport m_yc; + required_ioport m_modifiers; + UINT16 m_kb_y; }; diff --git a/src/mess/machine/bw2_ramcard.c b/src/mess/machine/bw2_ramcard.c index ace56abcd95..187d3e2a9df 100644 --- a/src/mess/machine/bw2_ramcard.c +++ b/src/mess/machine/bw2_ramcard.c @@ -50,6 +50,7 @@ const rom_entry *bw2_ramcard_device::device_rom_region() const bw2_ramcard_device::bw2_ramcard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, BW2_RAMCARD, "RAMCARD", tag, owner, clock), device_bw2_expansion_slot_interface(mconfig, *this), + m_rom(*this, "ramcard"), m_ram(*this, "ram"), m_en(0), m_bank(0) @@ -63,9 +64,6 @@ bw2_ramcard_device::bw2_ramcard_device(const machine_config &mconfig, const char void bw2_ramcard_device::device_start() { - // find memory regions - m_rom = memregion("ramcard")->base(); - // allocate memory m_ram.allocate(512 * 1024); @@ -94,7 +92,7 @@ UINT8 bw2_ramcard_device::bw2_cd_r(address_space &space, offs_t offset, UINT8 da { if (!ram2) { - data = m_rom[offset & 0x3fff]; + data = m_rom->base()[offset & 0x3fff]; } else if (m_en && !ram5) { diff --git a/src/mess/machine/bw2_ramcard.h b/src/mess/machine/bw2_ramcard.h index c905cfbcd7f..8291b61d675 100644 --- a/src/mess/machine/bw2_ramcard.h +++ b/src/mess/machine/bw2_ramcard.h @@ -45,8 +45,8 @@ protected: virtual void bw2_slot_w(address_space &space, offs_t offset, UINT8 data); private: + required_memory_region m_rom; optional_shared_ptr m_ram; - const UINT8 *m_rom; int m_en; UINT8 m_bank; diff --git a/src/mess/machine/c1541.c b/src/mess/machine/c1541.c index b9dc61a2ebc..08c8be21bd6 100644 --- a/src/mess/machine/c1541.c +++ b/src/mess/machine/c1541.c @@ -1091,7 +1091,8 @@ c1541_professional_dos_v1_device::c1541_professional_dos_v1_device(const machine c1541_prologic_dos_classic_device::c1541_prologic_dos_classic_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : base_c1541_device(mconfig, C1541_PROLOGIC_DOS_CLASSIC, "C1541 ProLogic-DOS Classic", tag, owner, clock, TYPE_1541_PROLOGIC_DOS_CLASSIC), m_pia(*this, MC6821_TAG), - m_centronics(*this, CENTRONICS_TAG) + m_centronics(*this, CENTRONICS_TAG), + m_mmu_rom(*this, "mmu") { } @@ -1126,12 +1127,6 @@ void fsd2_device::device_start() } } -void c1541_prologic_dos_classic_device::device_start() -{ - // find memory regions - m_mmu_rom = memregion("mmu")->base(); -} - //------------------------------------------------- // device_reset - device-specific reset diff --git a/src/mess/machine/c1541.h b/src/mess/machine/c1541.h index 7ca9d62e15c..080db68a5fd 100644 --- a/src/mess/machine/c1541.h +++ b/src/mess/machine/c1541.h @@ -219,9 +219,6 @@ public: // construction/destruction c1541_prologic_dos_classic_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); - // device-level overrides - virtual void device_start(); - // not really public DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); @@ -236,8 +233,7 @@ public: protected: required_device m_pia; required_device m_centronics; - - UINT8 *m_mmu_rom; + required_memory_region m_mmu_rom; }; diff --git a/src/mess/machine/c2040.c b/src/mess/machine/c2040.c index 8757da7fb2a..807c1442905 100644 --- a/src/mess/machine/c2040.c +++ b/src/mess/machine/c2040.c @@ -1341,7 +1341,7 @@ inline void c2040_device::update_gcr_data() m_i = (m_rw << 10) | ((m_pi & 0xf0) << 1) | (m_mode << 4) | (m_pi & 0x0f); } - m_e = m_gcr[m_i]; + m_e = m_gcr->base()[m_i]; } @@ -1469,6 +1469,7 @@ c2040_device::c2040_device(const machine_config &mconfig, device_type type, cons m_via(*this, M6522_TAG), m_image0(*this, FLOPPY_0), m_image1(*this, FLOPPY_1), + m_gcr(*this, "gcr"), m_drive(0), m_side(0), m_rfdo(1), @@ -1503,6 +1504,7 @@ c2040_device::c2040_device(const machine_config &mconfig, const char *tag, devic m_via(*this, M6522_TAG), m_image0(*this, FLOPPY_0), m_image1(*this, FLOPPY_1), + m_gcr(*this, "gcr"), m_drive(0), m_side(0), m_rfdo(1), @@ -1586,9 +1588,6 @@ void c2040_device::device_start() { m_bit_timer = timer_alloc(); - // find GCR ROM - m_gcr = memregion("gcr")->base(); - // install image callbacks m_unit[0].m_image = m_image0; diff --git a/src/mess/machine/c2040.h b/src/mess/machine/c2040.h index 16d1e6f12d3..be86a7aae6c 100644 --- a/src/mess/machine/c2040.h +++ b/src/mess/machine/c2040.h @@ -102,6 +102,7 @@ protected: required_device m_via; required_device m_image0; optional_device m_image1; + required_memory_region m_gcr; struct { // motors @@ -131,7 +132,6 @@ protected: int m_bit_count; // GCR bit counter UINT16 m_sr; // GCR data shift register UINT8 m_pi; // parallel data input - const UINT8* m_gcr; // GCR encoder/decoder ROM UINT16 m_i; // GCR encoder/decoded ROM address UINT8 m_e; // GCR encoder/decoded ROM data diff --git a/src/mess/machine/c64_16kb.c b/src/mess/machine/c64_16kb.c index 8a1cce6ecdd..2dd1164b1bb 100644 --- a/src/mess/machine/c64_16kb.c +++ b/src/mess/machine/c64_16kb.c @@ -99,7 +99,8 @@ ioport_constructor c64_16kb_cartridge_device::device_input_ports() const c64_16kb_cartridge_device::c64_16kb_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, C64_16KB, "C64 16KB EPROM cartridge", tag, owner, clock), - device_c64_expansion_card_interface(mconfig, *this) + device_c64_expansion_card_interface(mconfig, *this), + m_sw1(*this, "SW1") { } @@ -121,7 +122,7 @@ void c64_16kb_cartridge_device::device_start() void c64_16kb_cartridge_device::device_reset() { - UINT8 mode = ioport("SW1")->read(); + UINT8 mode = m_sw1->read(); m_exrom = BIT(mode, 0); m_game = BIT(mode, 1); diff --git a/src/mess/machine/c64_16kb.h b/src/mess/machine/c64_16kb.h index be5d7c93c83..401b635d74f 100644 --- a/src/mess/machine/c64_16kb.h +++ b/src/mess/machine/c64_16kb.h @@ -45,6 +45,9 @@ protected: // device_c64_expansion_card_interface overrides virtual UINT8 c64_cd_r(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2); + +private: + required_ioport m_sw1; }; diff --git a/src/mess/machine/c64_dela_ep256.c b/src/mess/machine/c64_dela_ep256.c index cd5fb79fbcf..1f911711d6a 100644 --- a/src/mess/machine/c64_dela_ep256.c +++ b/src/mess/machine/c64_dela_ep256.c @@ -23,7 +23,7 @@ const device_type C64_DELA_EP256 = &device_creatorbase(); - // state saving save_item(NAME(m_bank)); save_item(NAME(m_reset)); @@ -137,7 +136,7 @@ UINT8 c64_dela_ep256_cartridge_device::c64_cd_r(address_space &space, offs_t off else { offs_t addr = (m_bank << 13) | (offset & 0x1fff); - data = m_rom[addr]; + data = m_eprom->base()[addr]; } } diff --git a/src/mess/machine/c64_dela_ep256.h b/src/mess/machine/c64_dela_ep256.h index cab2bb7707b..4a91ce69046 100644 --- a/src/mess/machine/c64_dela_ep256.h +++ b/src/mess/machine/c64_dela_ep256.h @@ -47,7 +47,7 @@ protected: virtual void c64_cd_w(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2); private: - UINT8 *m_rom; + required_memory_region m_eprom; UINT8 m_bank; int m_reset; diff --git a/src/mess/machine/c64_dela_ep64.c b/src/mess/machine/c64_dela_ep64.c index 25a045ebd9f..5af7e40693c 100644 --- a/src/mess/machine/c64_dela_ep64.c +++ b/src/mess/machine/c64_dela_ep64.c @@ -72,7 +72,8 @@ machine_config_constructor c64_dela_ep64_cartridge_device::device_mconfig_additi c64_dela_ep64_cartridge_device::c64_dela_ep64_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, C64_DELA_EP64, "C64 Rex 64KB EPROM cartridge", tag, owner, clock), - device_c64_expansion_card_interface(mconfig, *this) + device_c64_expansion_card_interface(mconfig, *this), + m_eprom(*this, "eprom") { } @@ -83,8 +84,6 @@ c64_dela_ep64_cartridge_device::c64_dela_ep64_cartridge_device(const machine_con void c64_dela_ep64_cartridge_device::device_start() { - m_rom = memregion("rom")->base(); - // state saving save_item(NAME(m_bank)); save_item(NAME(m_reset)); @@ -123,8 +122,8 @@ UINT8 c64_dela_ep64_cartridge_device::c64_cd_r(address_space &space, offs_t offs offs_t addr = (m_bank << 13) | (offset & 0x1fff); if (!m_rom0_ce) data |= m_roml[offset & 0x1fff]; - if (!m_rom1_ce) data |= m_rom[0x0000 + addr]; - if (!m_rom2_ce) data |= m_rom[0x8000 + addr]; + if (!m_rom1_ce) data |= m_eprom->base()[0x0000 + addr]; + if (!m_rom2_ce) data |= m_eprom->base()[0x8000 + addr]; } } diff --git a/src/mess/machine/c64_dela_ep64.h b/src/mess/machine/c64_dela_ep64.h index b113d37e19e..f1014f9f0d8 100644 --- a/src/mess/machine/c64_dela_ep64.h +++ b/src/mess/machine/c64_dela_ep64.h @@ -47,7 +47,7 @@ protected: virtual void c64_cd_w(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2); private: - UINT8 *m_rom; + required_memory_region m_eprom; UINT8 m_bank; int m_reset; diff --git a/src/mess/machine/c64_dela_ep7x8.c b/src/mess/machine/c64_dela_ep7x8.c index faadf61f728..4b0f934c461 100644 --- a/src/mess/machine/c64_dela_ep7x8.c +++ b/src/mess/machine/c64_dela_ep7x8.c @@ -23,7 +23,7 @@ const device_type C64_DELA_EP7X8 = &device_creatorbase(); - // state saving save_item(NAME(m_bank)); } @@ -127,13 +126,13 @@ UINT8 c64_dela_ep7x8_cartridge_device::c64_cd_r(address_space &space, offs_t off offs_t addr = offset & 0x1fff; if (!BIT(m_bank, 0)) data |= m_roml[addr]; - if (!BIT(m_bank, 1)) data |= m_rom[0x2000 + addr]; - if (!BIT(m_bank, 2)) data |= m_rom[0x4000 + addr]; - if (!BIT(m_bank, 3)) data |= m_rom[0x6000 + addr]; - if (!BIT(m_bank, 4)) data |= m_rom[0x8000 + addr]; - if (!BIT(m_bank, 5)) data |= m_rom[0xa000 + addr]; - if (!BIT(m_bank, 6)) data |= m_rom[0xc000 + addr]; - if (!BIT(m_bank, 7)) data |= m_rom[0xe000 + addr]; + if (!BIT(m_bank, 1)) data |= m_eprom->base()[0x2000 + addr]; + if (!BIT(m_bank, 2)) data |= m_eprom->base()[0x4000 + addr]; + if (!BIT(m_bank, 3)) data |= m_eprom->base()[0x6000 + addr]; + if (!BIT(m_bank, 4)) data |= m_eprom->base()[0x8000 + addr]; + if (!BIT(m_bank, 5)) data |= m_eprom->base()[0xa000 + addr]; + if (!BIT(m_bank, 6)) data |= m_eprom->base()[0xc000 + addr]; + if (!BIT(m_bank, 7)) data |= m_eprom->base()[0xe000 + addr]; } return data; diff --git a/src/mess/machine/c64_dela_ep7x8.h b/src/mess/machine/c64_dela_ep7x8.h index 01164b4250a..fa8ffd81dfa 100644 --- a/src/mess/machine/c64_dela_ep7x8.h +++ b/src/mess/machine/c64_dela_ep7x8.h @@ -47,7 +47,7 @@ protected: virtual void c64_cd_w(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2); private: - UINT8 *m_rom; + required_memory_region m_eprom; UINT8 m_bank; }; diff --git a/src/mess/machine/c64_ide64.c b/src/mess/machine/c64_ide64.c index 6a094f94025..4268211c37f 100644 --- a/src/mess/machine/c64_ide64.c +++ b/src/mess/machine/c64_ide64.c @@ -100,7 +100,8 @@ c64_ide64_cartridge_device::c64_ide64_cartridge_device(const machine_config &mco device_c64_expansion_card_interface(mconfig, *this), m_flash_rom(*this, AT29C010A_TAG), m_rtc(*this, DS1302_TAG), - m_ide(*this, IDE_TAG) + m_ide(*this, IDE_TAG), + m_jp1(*this, "JP1") { } @@ -131,7 +132,7 @@ void c64_ide64_cartridge_device::device_reset() m_enable = 1; - m_wp = ioport("JP1")->read(); + m_wp = m_jp1->read(); m_game = !m_wp; m_exrom = !m_wp; } diff --git a/src/mess/machine/c64_ide64.h b/src/mess/machine/c64_ide64.h index 1c43c818be2..417f0d28799 100644 --- a/src/mess/machine/c64_ide64.h +++ b/src/mess/machine/c64_ide64.h @@ -55,6 +55,7 @@ private: required_device m_flash_rom; required_device m_rtc; required_device m_ide; + required_ioport m_jp1; UINT8 m_bank; UINT16 m_ide_data; diff --git a/src/mess/machine/c64_rex_ep256.c b/src/mess/machine/c64_rex_ep256.c index 755e07f7cf4..674b96b074e 100644 --- a/src/mess/machine/c64_rex_ep256.c +++ b/src/mess/machine/c64_rex_ep256.c @@ -23,7 +23,7 @@ const device_type C64_REX_EP256 = &device_creatorbase(); - // state saving save_item(NAME(m_bank)); save_item(NAME(m_reset)); @@ -137,7 +136,7 @@ UINT8 c64_rex_ep256_cartridge_device::c64_cd_r(address_space &space, offs_t offs else { offs_t addr = (m_bank << 13) | (offset & 0x1fff); - data = m_rom[addr]; + data = m_eprom->base()[addr]; } } else if (!io2) diff --git a/src/mess/machine/c64_rex_ep256.h b/src/mess/machine/c64_rex_ep256.h index a433d8182bb..e0e9ead0916 100644 --- a/src/mess/machine/c64_rex_ep256.h +++ b/src/mess/machine/c64_rex_ep256.h @@ -47,7 +47,7 @@ protected: virtual void c64_cd_w(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2); private: - UINT8 *m_rom; + required_memory_region m_eprom; UINT8 m_bank; int m_reset; diff --git a/src/mess/machine/c64_sw8k.c b/src/mess/machine/c64_sw8k.c index 33c9f459f87..ed1e2c893a5 100644 --- a/src/mess/machine/c64_sw8k.c +++ b/src/mess/machine/c64_sw8k.c @@ -74,7 +74,8 @@ ioport_constructor c64_switchable_8k_cartridge_device::device_input_ports() cons c64_switchable_8k_cartridge_device::c64_switchable_8k_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, C64_SW8K, "C64 Switchable 8K cartridge", tag, owner, clock), - device_c64_expansion_card_interface(mconfig, *this) + device_c64_expansion_card_interface(mconfig, *this), + m_sw(*this, "SW") { } @@ -94,7 +95,7 @@ void c64_switchable_8k_cartridge_device::device_start() void c64_switchable_8k_cartridge_device::device_reset() { - m_bank = ioport("SW")->read(); + m_bank = m_sw->read(); } diff --git a/src/mess/machine/c64_sw8k.h b/src/mess/machine/c64_sw8k.h index 25902dd9414..9ccb75b36be 100644 --- a/src/mess/machine/c64_sw8k.h +++ b/src/mess/machine/c64_sw8k.h @@ -44,6 +44,8 @@ protected: virtual UINT8 c64_cd_r(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2); private: + required_ioport m_sw; + int m_bank; }; diff --git a/src/mess/machine/c64_xl80.c b/src/mess/machine/c64_xl80.c index 965f273cf71..b1a564cbaf1 100644 --- a/src/mess/machine/c64_xl80.c +++ b/src/mess/machine/c64_xl80.c @@ -85,7 +85,7 @@ void c64_xl80_device::crtc_update_row(mc6845_device *device, bitmap_rgb32 &bitma { UINT8 code = m_ram[((ma + column) & 0x7ff)]; UINT16 addr = (code << 3) | (ra & 0x07); - UINT8 data = m_char_rom[addr & 0x7ff]; + UINT8 data = m_char_rom->base()[addr & 0x7ff]; if (column == cursor_x) { @@ -176,7 +176,8 @@ machine_config_constructor c64_xl80_device::device_mconfig_additions() const c64_xl80_device::c64_xl80_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, C64_XL80, "XL 80", tag, owner, clock), device_c64_expansion_card_interface(mconfig, *this), - m_crtc(*this, HD46505SP_TAG) + m_crtc(*this, HD46505SP_TAG), + m_char_rom(*this, HD46505SP_TAG) { } @@ -187,8 +188,7 @@ c64_xl80_device::c64_xl80_device(const machine_config &mconfig, const char *tag, void c64_xl80_device::device_start() { - // find memory regions - m_char_rom = memregion(HD46505SP_TAG)->base(); + // allocate memory c64_ram_pointer(machine(), RAM_SIZE); // state saving diff --git a/src/mess/machine/c64_xl80.h b/src/mess/machine/c64_xl80.h index 163b596ecbf..ce6163595d8 100644 --- a/src/mess/machine/c64_xl80.h +++ b/src/mess/machine/c64_xl80.h @@ -53,8 +53,7 @@ protected: private: required_device m_crtc; - - UINT8 *m_char_rom; + required_memory_region m_char_rom; }; diff --git a/src/mess/machine/comx_clm.c b/src/mess/machine/comx_clm.c index b96884106fb..3a9949fa14a 100644 --- a/src/mess/machine/comx_clm.c +++ b/src/mess/machine/comx_clm.c @@ -104,7 +104,7 @@ void comx_clm_device::crtc_update_row(mc6845_device *device, bitmap_rgb32 &bitma { UINT8 code = m_video_ram[((ma + column) & 0x7ff)]; UINT16 addr = (code << 3) | (ra & 0x07); - UINT8 data = m_char_rom[addr & 0x7ff]; + UINT8 data = m_char_rom->base()[addr & 0x7ff]; if (BIT(ra, 3) && column == cursor_x) { @@ -196,6 +196,8 @@ comx_clm_device::comx_clm_device(const machine_config &mconfig, const char *tag, device_t(mconfig, COMX_CLM, "COMX 80 Column Card", tag, owner, clock), device_comx_expansion_card_interface(mconfig, *this), m_crtc(*this, MC6845_TAG), + m_rom(*this, "c000"), + m_char_rom(*this, MC6845_TAG), m_video_ram(*this, "video_ram") { } @@ -207,10 +209,6 @@ comx_clm_device::comx_clm_device(const machine_config &mconfig, const char *tag, void comx_clm_device::device_start() { - // find memory regions - m_rom = memregion("c000")->base(); - m_char_rom = memregion(MC6845_TAG)->base(); - // allocate memory m_video_ram.allocate(VIDEORAM_SIZE); @@ -248,7 +246,7 @@ UINT8 comx_clm_device::comx_mrd_r(address_space &space, offs_t offset, int *extr if (offset >= 0xc000 && offset < 0xc800) { - data = m_rom[offset & 0x7ff]; + data = m_rom->base()[offset & 0x7ff]; } else if (offset >= 0xd000 && offset < 0xd800) { diff --git a/src/mess/machine/comx_clm.h b/src/mess/machine/comx_clm.h index 67d522e1344..5c91a0825df 100644 --- a/src/mess/machine/comx_clm.h +++ b/src/mess/machine/comx_clm.h @@ -52,10 +52,9 @@ protected: private: required_device m_crtc; + required_memory_region m_rom; + required_memory_region m_char_rom; optional_shared_ptr m_video_ram; - - UINT8 *m_rom; // program ROM - UINT8 *m_char_rom; // character ROM }; diff --git a/src/mess/machine/comx_eb.c b/src/mess/machine/comx_eb.c index dfb2a9c6f7a..a47d8151df6 100644 --- a/src/mess/machine/comx_eb.c +++ b/src/mess/machine/comx_eb.c @@ -202,6 +202,7 @@ void comx_eb_device::set_int(const char *tag, int state) comx_eb_device::comx_eb_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, COMX_EB, "COMX-35E Expansion Box", tag, owner, clock), device_comx_expansion_card_interface(mconfig, *this), + m_rom(*this, "e000"), m_select(0) { } @@ -222,8 +223,6 @@ void comx_eb_device::device_start() { m_int[slot] = CLEAR_LINE; } - - m_rom = memregion("e000")->base(); } @@ -290,12 +289,12 @@ UINT8 comx_eb_device::comx_mrd_r(address_space &space, offs_t offset, int *extro if (offset >= 0x1000 && offset < 0x1800) { - data = m_rom[offset & 0x7ff]; + data = m_rom->base()[offset & 0x7ff]; *extrom = 0; } else if (offset >= 0xe000 && offset < 0xf000) { - data = m_rom[offset & 0xfff]; + data = m_rom->base()[offset & 0xfff]; } else { diff --git a/src/mess/machine/comx_eb.h b/src/mess/machine/comx_eb.h index 9cfa3c196e4..8caa41d772d 100644 --- a/src/mess/machine/comx_eb.h +++ b/src/mess/machine/comx_eb.h @@ -68,7 +68,7 @@ protected: virtual void comx_io_w(address_space &space, offs_t offset, UINT8 data); private: - UINT8 *m_rom; // program ROM + required_memory_region m_rom; comx_expansion_slot_device *m_expansion_slot[MAX_EB_SLOTS]; int m_int[MAX_EB_SLOTS]; diff --git a/src/mess/machine/comx_epr.c b/src/mess/machine/comx_epr.c index 02c5eb3cd75..60f81516b91 100644 --- a/src/mess/machine/comx_epr.c +++ b/src/mess/machine/comx_epr.c @@ -60,6 +60,8 @@ const rom_entry *comx_epr_device::device_rom_region() const comx_epr_device::comx_epr_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, COMX_EPR, "COMX-35 F&M EPROM Switchboard", tag, owner, clock), device_comx_expansion_card_interface(mconfig, *this), + m_rom(*this, "f800"), + m_eprom(*this, "eprom"), m_select(0) { } @@ -71,9 +73,6 @@ comx_epr_device::comx_epr_device(const machine_config &mconfig, const char *tag, void comx_epr_device::device_start() { - m_rom = memregion("f800")->base(); - m_eprom = memregion("eprom")->base(); - // state saving save_item(NAME(m_select)); } @@ -99,11 +98,11 @@ UINT8 comx_epr_device::comx_mrd_r(address_space &space, offs_t offset, int *extr if (offset >= 0xc000 && offset < 0xe000) { offs_t address = (m_select << 13) | (offset & 0x1fff); - data = m_eprom[address]; + data = m_eprom->base()[address]; } else if (offset >= 0xf800) { - data = m_rom[offset & 0x7ff]; + data = m_rom->base()[offset & 0x7ff]; } return data; diff --git a/src/mess/machine/comx_epr.h b/src/mess/machine/comx_epr.h index a8b38149fd9..bf97fc1db30 100644 --- a/src/mess/machine/comx_epr.h +++ b/src/mess/machine/comx_epr.h @@ -45,9 +45,10 @@ protected: virtual void comx_io_w(address_space &space, offs_t offset, UINT8 data); private: + required_memory_region m_rom; + required_memory_region m_eprom; + UINT8 m_select; - UINT8 *m_rom; // program ROM - UINT8 *m_eprom; // EPROMs }; diff --git a/src/mess/machine/comx_fd.c b/src/mess/machine/comx_fd.c index dd9cb979a95..68e88d4f763 100644 --- a/src/mess/machine/comx_fd.c +++ b/src/mess/machine/comx_fd.c @@ -133,6 +133,7 @@ comx_fd_device::comx_fd_device(const machine_config &mconfig, const char *tag, d m_fdc(*this, WD1770_TAG), m_floppy0(*this, WD1770_TAG":0"), m_floppy1(*this, WD1770_TAG":1"), + m_rom(*this, "c000"), m_q(0), m_addr(0), m_disb(1) @@ -146,9 +147,6 @@ comx_fd_device::comx_fd_device(const machine_config &mconfig, const char *tag, d void comx_fd_device::device_start() { - // find memory regions - m_rom = memregion("c000")->base(); - // state saving save_item(NAME(m_ds)); save_item(NAME(m_q)); @@ -209,12 +207,12 @@ UINT8 comx_fd_device::comx_mrd_r(address_space &space, offs_t offset, int *extro if (offset >= 0x0dd0 && offset < 0x0de0) { - data = m_rom[offset & 0x1fff]; + data = m_rom->base()[offset & 0x1fff]; *extrom = 0; } else if (offset >= 0xc000 && offset < 0xe000) { - data = m_rom[offset & 0x1fff]; + data = m_rom->base()[offset & 0x1fff]; } return data; diff --git a/src/mess/machine/comx_fd.h b/src/mess/machine/comx_fd.h index 9d5fb80bf05..77143366667 100644 --- a/src/mess/machine/comx_fd.h +++ b/src/mess/machine/comx_fd.h @@ -57,9 +57,9 @@ private: required_device m_fdc; required_device m_floppy0; required_device m_floppy1; + required_memory_region m_rom; // floppy state - const UINT8 *m_rom; int m_q; // FDC register select int m_addr; // FDC address int m_disb; // data request disable diff --git a/src/mess/machine/comx_prn.c b/src/mess/machine/comx_prn.c index de2484a4c3f..1483a30c33f 100644 --- a/src/mess/machine/comx_prn.c +++ b/src/mess/machine/comx_prn.c @@ -92,7 +92,8 @@ machine_config_constructor comx_prn_device::device_mconfig_additions() const comx_prn_device::comx_prn_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, COMX_PRN, "COMX-35 Printer Card", tag, owner, clock), device_comx_expansion_card_interface(mconfig, *this), - m_centronics(*this, CENTRONICS_TAG) + m_centronics(*this, CENTRONICS_TAG), + m_rom(*this, "c000") { } @@ -103,7 +104,6 @@ comx_prn_device::comx_prn_device(const machine_config &mconfig, const char *tag, void comx_prn_device::device_start() { - m_rom = memregion("c000")->base(); } @@ -126,7 +126,7 @@ UINT8 comx_prn_device::comx_mrd_r(address_space &space, offs_t offset, int *extr if (offset >= 0xc000 && offset < 0xe000) { - data = m_rom[offset & 0x1fff]; + data = m_rom->base()[offset & 0x1fff]; } return data; diff --git a/src/mess/machine/comx_prn.h b/src/mess/machine/comx_prn.h index b17ef8d79f3..d3048b22ecc 100644 --- a/src/mess/machine/comx_prn.h +++ b/src/mess/machine/comx_prn.h @@ -50,8 +50,7 @@ protected: private: required_device m_centronics; - - UINT8 *m_rom; // program ROM + required_memory_region m_rom; }; diff --git a/src/mess/machine/comx_thm.c b/src/mess/machine/comx_thm.c index ea2f90411d2..7ea6c0ba593 100644 --- a/src/mess/machine/comx_thm.c +++ b/src/mess/machine/comx_thm.c @@ -54,7 +54,8 @@ const rom_entry *comx_thm_device::device_rom_region() const comx_thm_device::comx_thm_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, COMX_THM, "COMX-35 Thermal Printer Card", tag, owner, clock), - device_comx_expansion_card_interface(mconfig, *this) + device_comx_expansion_card_interface(mconfig, *this), + m_rom(*this, "c000") { } @@ -65,7 +66,6 @@ comx_thm_device::comx_thm_device(const machine_config &mconfig, const char *tag, void comx_thm_device::device_start() { - m_rom = memregion("c000")->base(); } @@ -88,7 +88,7 @@ UINT8 comx_thm_device::comx_mrd_r(address_space &space, offs_t offset, int *extr if (offset >= 0xc000 && offset < 0xd000) { - data = m_rom[offset & 0xfff]; + data = m_rom->base()[offset & 0xfff]; } return data; diff --git a/src/mess/machine/comx_thm.h b/src/mess/machine/comx_thm.h index bcb8a7ea4b1..03f1e095ec6 100644 --- a/src/mess/machine/comx_thm.h +++ b/src/mess/machine/comx_thm.h @@ -46,7 +46,7 @@ protected: virtual void comx_io_w(address_space &space, offs_t offset, UINT8 data); private: - UINT8 *m_rom; // program ROM + required_memory_region m_rom; }; diff --git a/src/mess/machine/comxpl80.c b/src/mess/machine/comxpl80.c index bf09083d218..c838965acda 100644 --- a/src/mess/machine/comxpl80.c +++ b/src/mess/machine/comxpl80.c @@ -161,7 +161,10 @@ ioport_constructor comx_pl80_device::device_input_ports() const comx_pl80_device::comx_pl80_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, COMX_PL80, "COMX PL-80", tag, owner, clock), - device_centronics_peripheral_interface(mconfig, *this) + device_centronics_peripheral_interface(mconfig, *this), + m_plotter(*this, "PLOTTER"), + m_font(*this, "FONT"), + m_sw(*this, "SW") { } @@ -225,9 +228,9 @@ WRITE8_MEMBER( comx_pl80_device::pa_w ) else { // read data from font ROM - int font_rom = (ioport("FONT")->read() & 0x03) * 0x2000; + int font_rom = (m_font->read() & 0x03) * 0x2000; - m_plotter_data = memregion("gfx2")->base()[font_rom | m_font_addr]; + m_plotter_data = m_plotter->base()[font_rom | m_font_addr]; } if (!BIT(data, 6)) @@ -239,7 +242,7 @@ WRITE8_MEMBER( comx_pl80_device::pa_w ) if (BIT(data, 7)) { // read switches - m_plotter_data = ioport("SW")->read(); + m_plotter_data = m_sw->read(); } } diff --git a/src/mess/machine/comxpl80.h b/src/mess/machine/comxpl80.h index 4979cefd3f4..e4e4ff1eaf1 100644 --- a/src/mess/machine/comxpl80.h +++ b/src/mess/machine/comxpl80.h @@ -49,6 +49,10 @@ protected: virtual void device_reset(); private: + required_memory_region m_plotter; + required_ioport m_font; + required_ioport m_sw; + // PL-80 plotter state UINT16 m_font_addr; // font ROM pack address latch UINT8 m_x_motor_phase; // X motor phase diff --git a/src/mess/machine/e01.c b/src/mess/machine/e01.c index bce21e7f2c7..23430e628e2 100644 --- a/src/mess/machine/e01.c +++ b/src/mess/machine/e01.c @@ -39,7 +39,6 @@ TODO: - - memory_bank::set_entry called for bank ':econet254:e01s:bank2' with invalid bank entry 0 - centronics strobe - econet clock speed select - ADLC interrupts @@ -274,7 +273,7 @@ static centronics_interface e01_centronics_intf = //------------------------------------------------- static ADDRESS_MAP_START( e01_mem, AS_PROGRAM, 8, e01_device ) - AM_RANGE(0x0000, 0xfbff) AM_READ_BANK("bank1") AM_WRITE_BANK("bank2") + AM_RANGE(0x0000, 0xffff) AM_READWRITE(read, write) AM_RANGE(0xfc00, 0xfc00) AM_MIRROR(0x00c3) AM_READWRITE(rtc_address_r, rtc_address_w) AM_RANGE(0xfc04, 0xfc04) AM_MIRROR(0x00c3) AM_READWRITE(rtc_data_r, rtc_data_w) AM_RANGE(0xfc08, 0xfc08) AM_MIRROR(0x00c0) AM_READ(ram_select_r) AM_WRITE(floppy_w) @@ -288,7 +287,6 @@ static ADDRESS_MAP_START( e01_mem, AS_PROGRAM, 8, e01_device ) AM_RANGE(0xfc31, 0xfc31) AM_MIRROR(0x00c0) AM_READ(hdc_status_r) AM_RANGE(0xfc32, 0xfc32) AM_MIRROR(0x00c0) AM_WRITE(hdc_select_w) AM_RANGE(0xfc33, 0xfc33) AM_MIRROR(0x00c0) AM_WRITE(hdc_irq_enable_w) - AM_RANGE(0xfd00, 0xffff) AM_READ_BANK("bank3") AM_WRITE_BANK("bank4") ADDRESS_MAP_END @@ -423,6 +421,7 @@ e01_device::e01_device(const machine_config &mconfig, const char *tag, device_t m_scsibus(*this, SCSIBUS_TAG ":host"), m_floppy0(*this, WD2793_TAG":0"), m_floppy1(*this, WD2793_TAG":1"), + m_rom(*this, R65C102_TAG), m_adlc_ie(0), m_hdc_ie(0), m_rtc_irq(CLEAR_LINE), @@ -447,6 +446,7 @@ e01_device::e01_device(const machine_config &mconfig, device_type type, const ch m_scsibus(*this, SCSIBUS_TAG ":host"), m_floppy0(*this, WD2793_TAG":0"), m_floppy1(*this, WD2793_TAG":1"), + m_rom(*this, R65C102_TAG), m_adlc_ie(0), m_hdc_ie(0), m_rtc_irq(CLEAR_LINE), @@ -492,24 +492,6 @@ void e01_device::device_start() m_fdc->setup_intrq_cb(wd2793_t::line_cb(FUNC(e01_device::fdc_irq_w), this)); m_fdc->setup_drq_cb(wd2793_t::line_cb(FUNC(e01_device::fdc_drq_w), this)); - // setup memory banking - UINT8 *ram = m_ram->pointer(); - UINT8 *rom = memregion(R65C102_TAG)->base(); - - membank("bank1")->configure_entry(0, ram); - membank("bank1")->configure_entry(1, rom); - membank("bank1")->set_entry(1); - - membank("bank2")->configure_entry(0, ram); -// membank("bank2")->set_entry(0); - - membank("bank3")->configure_entry(0, ram + 0xfd00); - membank("bank3")->configure_entry(1, rom + 0xfd00); - membank("bank3")->set_entry(1); - - membank("bank4")->configure_entry(0, ram + 0xfd00); - membank("bank4")->set_entry(0); - // allocate timers m_clk_timer = timer_alloc(); @@ -531,9 +513,7 @@ void e01_device::device_start() void e01_device::device_reset() { m_clk_timer->adjust(attotime::zero, 0, attotime::from_hz(200000)); - - membank("bank1")->set_entry(1); - membank("bank3")->set_entry(1); + m_ram_en = false; } @@ -551,14 +531,44 @@ void e01_device::device_timer(emu_timer &timer, device_timer_id id, int param, v } +//------------------------------------------------- +// read - +//------------------------------------------------- + +READ8_MEMBER( e01_device::read ) +{ + UINT8 data = 0; + + if (m_ram_en) + { + data = m_ram->pointer()[offset]; + } + else + { + data = m_rom->base()[offset]; + } + + return data; +} + + +//------------------------------------------------- +// write - +//------------------------------------------------- + +WRITE8_MEMBER( e01_device::write ) +{ + m_ram->pointer()[offset] = data; +} + + //------------------------------------------------- // eprom_r - ROM/RAM select read //------------------------------------------------- READ8_MEMBER( e01_device::ram_select_r ) { - membank("bank1")->set_entry(0); - membank("bank3")->set_entry(0); + m_ram_en = true; return 0; } diff --git a/src/mess/machine/e01.h b/src/mess/machine/e01.h index 21c8aacc440..3093191c0cc 100644 --- a/src/mess/machine/e01.h +++ b/src/mess/machine/e01.h @@ -37,6 +37,8 @@ public: TYPE_E01S }; + DECLARE_READ8_MEMBER( read ); + DECLARE_WRITE8_MEMBER( write ); DECLARE_READ8_MEMBER( ram_select_r ); DECLARE_WRITE8_MEMBER( floppy_w ); DECLARE_READ8_MEMBER( network_irq_disable_r ); @@ -88,6 +90,7 @@ protected: required_device m_scsibus; required_device m_floppy0; required_device m_floppy1; + required_memory_region m_rom; inline void update_interrupts(); inline void network_irq_enable(int enabled); @@ -102,8 +105,8 @@ protected: int m_fdc_irq; bool m_fdc_drq; int m_adlc_irq; - int m_clk_en; + bool m_ram_en; int m_variant; diff --git a/src/mess/machine/ecb_grip.c b/src/mess/machine/ecb_grip.c index dc536ba94b1..7a8e9a5280f 100644 --- a/src/mess/machine/ecb_grip.c +++ b/src/mess/machine/ecb_grip.c @@ -673,7 +673,10 @@ grip_device::grip_device(const machine_config &mconfig, const char *tag, device_ m_crtc(*this, MC6845_TAG), m_centronics(*this, CENTRONICS_TAG), m_speaker(*this, SPEAKER_TAG), - m_video_ram(*this, "video_ram") + m_video_ram(*this, "video_ram"), + m_j3a(*this, "J3A"), + m_j3b(*this, "J3B"), + m_j7(*this, "J7") { } @@ -683,8 +686,6 @@ grip_device::grip_device(const machine_config &mconfig, const char *tag, device_ void grip_device::device_start() { - m_ecb = machine().device(ECBBUS_TAG); - // allocate video RAM m_video_ram.allocate(VIDEORAM_SIZE); @@ -726,7 +727,7 @@ void grip5_state::machine_start() void grip_device::device_reset() { - m_base = ioport("J7")->read(); + m_base = m_j7->read(); } @@ -797,7 +798,7 @@ READ8_MEMBER( grip_device::stat_r ) int js0 = 0, js1 = 0; // JS0 - switch (ioport("J3A")->read()) + switch (m_j3a->read()) { case 0: js0 = 0; break; case 1: js0 = 1; break; @@ -809,7 +810,7 @@ READ8_MEMBER( grip_device::stat_r ) data |= js0 << 4; // JS1 - switch (ioport("J3B")->read()) + switch (m_j3b->read()) { case 0: js1 = 0; break; case 1: js1 = 1; break; diff --git a/src/mess/machine/ecb_grip.h b/src/mess/machine/ecb_grip.h index 5afc53b7a3b..56acc05f93b 100644 --- a/src/mess/machine/ecb_grip.h +++ b/src/mess/machine/ecb_grip.h @@ -80,6 +80,10 @@ private: required_device m_crtc; required_device m_centronics; required_device m_speaker; + optional_shared_ptr m_video_ram; + required_ioport m_j3a; + required_ioport m_j3b; + required_ioport m_j7; // sound state int m_vol0; @@ -92,7 +96,6 @@ private: int m_kbf; // keyboard buffer full // video state - optional_shared_ptr m_video_ram; // video RAM int m_lps; // light pen sense int m_page; // video page int m_flash; // flash diff --git a/src/mess/machine/ecbbus.c b/src/mess/machine/ecbbus.c index e3312af44f6..6fcdc78ff1f 100644 --- a/src/mess/machine/ecbbus.c +++ b/src/mess/machine/ecbbus.c @@ -109,6 +109,7 @@ void ecbbus_device::device_config_complete() device_ecbbus_card_interface::device_ecbbus_card_interface(const machine_config &mconfig, device_t &device) : device_slot_card_interface(mconfig, device) { + m_slot = dynamic_cast(device.owner()); } diff --git a/src/mess/machine/ecbbus.h b/src/mess/machine/ecbbus.h index 535ba9d0824..74ad0030898 100644 --- a/src/mess/machine/ecbbus.h +++ b/src/mess/machine/ecbbus.h @@ -154,7 +154,7 @@ public: virtual void ecbbus_io_w(offs_t offset, UINT8 data) { }; public: - ecbbus_device *m_ecb; + ecbbus_slot_device *m_slot; }; #endif diff --git a/src/mess/machine/lux21046.c b/src/mess/machine/lux21046.c index a0ad231fef4..257e160dafb 100644 --- a/src/mess/machine/lux21046.c +++ b/src/mess/machine/lux21046.c @@ -418,12 +418,6 @@ void luxor_55_21046_device::device_start() save_item(NAME(m_dma_irq)); save_item(NAME(m_busy)); save_item(NAME(m_force_busy)); - - // patch out sector skew table -/* UINT8 *rom = memregion(Z80_TAG)->base(); - - for (int i = 0; i < 16; i++) - rom[0x2dd3 + i] = i + 1;*/ } diff --git a/src/mess/machine/lux4105.c b/src/mess/machine/lux4105.c index cab66a693e9..b38ff8a0473 100644 --- a/src/mess/machine/lux4105.c +++ b/src/mess/machine/lux4105.c @@ -164,7 +164,9 @@ inline void luxor_4105_device::update_trrq_int() luxor_4105_device::luxor_4105_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, LUXOR_4105, "Luxor 4105", tag, owner, clock), device_abc1600bus_card_interface(mconfig, *this), - m_sasibus(*this, SASIBUS_TAG ":host") + m_sasibus(*this, SASIBUS_TAG ":host"), + m_1e(*this, "1E"), + m_5e(*this, "5E") { } @@ -212,7 +214,7 @@ void luxor_4105_device::device_reset() void luxor_4105_device::abc1600bus_cs(UINT8 data) { - m_cs = (data == ioport("5E")->read()); + m_cs = (data == m_5e->read()); } @@ -283,7 +285,7 @@ UINT8 luxor_4105_device::abc1600bus_inp() { if (!m_sasibus->scsi_bsy_r()) { - ioport("1E")->read(); + data = m_1e->read(); } else { diff --git a/src/mess/machine/lux4105.h b/src/mess/machine/lux4105.h index 8579df93057..4177ea30b8d 100644 --- a/src/mess/machine/lux4105.h +++ b/src/mess/machine/lux4105.h @@ -72,6 +72,8 @@ private: abc1600bus_slot_device *m_slot; required_device m_sasibus; + required_ioport m_1e; + required_ioport m_5e; int m_cs; UINT8 m_data; diff --git a/src/mess/machine/vp590.c b/src/mess/machine/vp590.c index afe8acadb2b..7850562117c 100644 --- a/src/mess/machine/vp590.c +++ b/src/mess/machine/vp590.c @@ -16,7 +16,7 @@ //************************************************************************** #define CDP1862_TAG "u2" -#define SCREEN_TAG ":screen" +#define SCREEN_TAG ":screen" // hijack the VIP's screen since the CDP1861 chip would be removed from the PCB on real hardware #define COLOR_RAM_SIZE 0x100 diff --git a/src/mess/machine/vp700.c b/src/mess/machine/vp700.c index 289ad626063..49076d64ce6 100644 --- a/src/mess/machine/vp700.c +++ b/src/mess/machine/vp700.c @@ -48,7 +48,8 @@ const rom_entry *vp700_device::device_rom_region() const vp700_device::vp700_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, VP700, "VP700", tag, owner, clock), - device_vip_expansion_card_interface(mconfig, *this) + device_vip_expansion_card_interface(mconfig, *this), + m_rom(*this, "vp700") { } @@ -59,8 +60,6 @@ vp700_device::vp700_device(const machine_config &mconfig, const char *tag, devic void vp700_device::device_start() { - // find memory regions - m_rom = memregion("vp700")->base(); } @@ -76,7 +75,7 @@ UINT8 vp700_device::vip_program_r(address_space &space, offs_t offset, int cs, i { *minh = 1; - data = m_rom[offset & 0xfff]; + data = m_rom->base()[offset & 0xfff]; } return data; diff --git a/src/mess/machine/vp700.h b/src/mess/machine/vp700.h index b34e1919be3..c5bd3465981 100644 --- a/src/mess/machine/vp700.h +++ b/src/mess/machine/vp700.h @@ -43,7 +43,7 @@ protected: virtual UINT8 vip_program_r(address_space &space, offs_t offset, int cs, int cdef, int *minh); private: - const UINT8 *m_rom; + required_memory_region m_rom; }; diff --git a/src/mess/video/cgc7900.c b/src/mess/video/cgc7900.c index e19654b478d..371bbe0d890 100644 --- a/src/mess/video/cgc7900.c +++ b/src/mess/video/cgc7900.c @@ -140,7 +140,7 @@ void cgc7900_state::draw_overlay(screen_device *screen, bitmap_rgb32 &bitmap) { UINT16 addr = (sy * 170) + (sx * 2); UINT32 cell = (m_overlay_ram[addr] << 16) | m_overlay_ram[addr + 1]; - UINT8 data = m_char_rom[(OVERLAY_DATA << 3) | line]; + UINT8 data = m_char_rom->base()[(OVERLAY_DATA << 3) | line]; int fg = (cell >> 8) & 0x07; int bg = (cell >> 16) & 0x07; @@ -178,16 +178,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(cgc7900_state::blink_tick) m_blink = !m_blink; } -/*------------------------------------------------- - VIDEO_START( cgc7900 ) --------------------------------------------------*/ - -void cgc7900_state::video_start() -{ - /* find memory regions */ - m_char_rom = memregion("gfx1")->base(); -} - /*------------------------------------------------- SCREEN_UPDATE_IND16( cgc7900 ) -------------------------------------------------*/ diff --git a/src/mess/video/newbrain.c b/src/mess/video/newbrain.c index 5bec32fd8ff..3b6fbb8240d 100644 --- a/src/mess/video/newbrain.c +++ b/src/mess/video/newbrain.c @@ -3,9 +3,6 @@ void newbrain_state::video_start() { - /* find memory regions */ - m_char_rom = memregion("chargen")->base(); - /* register for state saving */ save_item(NAME(m_tvcnsl)); save_item(NAME(m_tvctl)); @@ -48,7 +45,7 @@ void newbrain_state::screen_update(bitmap_rgb32 &bitmap, const rectangle &clipre { /* render character rom data */ UINT16 charrom_addr = (rc << 8) | ((BIT(videoram_data, 7) & fs) << 7) | (videoram_data & 0x7f); - charrom_data = m_char_rom[charrom_addr & 0xfff]; + charrom_data = m_char_rom->base()[charrom_addr & 0xfff]; if ((videoram_data & 0x80) && !fs) { diff --git a/src/mess/video/tmc600.c b/src/mess/video/tmc600.c index fb200734cf7..ebfb18190e2 100644 --- a/src/mess/video/tmc600.c +++ b/src/mess/video/tmc600.c @@ -78,7 +78,7 @@ static CDP1869_CHAR_RAM_READ( tmc600_char_ram_r ) UINT16 pageaddr = pma & TMC600_PAGE_RAM_MASK; UINT8 color = state->get_color(pageaddr); UINT16 charaddr = ((cma & 0x08) << 8) | (pmd << 3) | (cma & 0x07); - UINT8 cdb = state->m_char_rom[charaddr] & 0x3f; + UINT8 cdb = state->m_char_rom->base()[charaddr] & 0x3f; int ccb0 = BIT(color, 2); int ccb1 = BIT(color, 1); @@ -112,9 +112,6 @@ void tmc600_state::video_start() // allocate memory m_color_ram.allocate(TMC600_PAGE_RAM_SIZE); - // find memory regions - m_char_rom = memregion("chargen")->base(); - // register for state saving save_item(NAME(m_vismac_reg_latch)); save_item(NAME(m_vismac_color_latch));