diff options
Diffstat (limited to 'src/mess/machine/thomson.c')
-rw-r--r-- | src/mess/machine/thomson.c | 459 |
1 files changed, 212 insertions, 247 deletions
diff --git a/src/mess/machine/thomson.c b/src/mess/machine/thomson.c index 471a29c2139..240b004141a 100644 --- a/src/mess/machine/thomson.c +++ b/src/mess/machine/thomson.c @@ -430,7 +430,7 @@ void thomson_state::to7_update_cart_bank() } if ( bank != m_old_cart_bank ) { - membank( THOM_CART_BANK )->set_entry( bank ); + m_cartbank->set_entry( bank ); m_old_cart_bank = bank; LOG_BANK(( "to7_update_cart_bank: CART is cartridge bank %i\n", bank )); } @@ -496,7 +496,7 @@ WRITE8_MEMBER( thomson_state::to7_timer_cp2_out ) READ8_MEMBER( thomson_state::to7_timer_port_in ) { - int lightpen = (ioport("lightpen_button")->read() & 1) ? 2 : 0; + int lightpen = (m_io_lightpen_button->read() & 1) ? 2 : 0; int cass = to7_get_cassette() ? 0x80 : 0; return lightpen | cass; } @@ -575,15 +575,11 @@ READ8_MEMBER( thomson_state::to7_sys_porta_in ) int keyline = m_pia_sys->b_output(); UINT8 val = 0xff; int i; - static const char *const keynames[] = { - "keyboard_0", "keyboard_1", "keyboard_2", "keyboard_3", - "keyboard_4", "keyboard_5", "keyboard_6", "keyboard_7" - }; for ( i = 0; i < 8; i++ ) { if ( ! (keyline & (1 << i)) ) - val &= ioport(keynames[i])->read(); + val &= m_io_keyboard[i]->read(); } return val; } @@ -782,7 +778,7 @@ READ8_MEMBER( thomson_state::to7_modem_mea8000_r ) return 0; } - if ( ioport("mconfig")->read() & 1 ) + if ( m_io_mconfig->read() & 1 ) { return m_mea8000->read(space, offset); } @@ -806,7 +802,7 @@ READ8_MEMBER( thomson_state::to7_modem_mea8000_r ) WRITE8_MEMBER( thomson_state::to7_modem_mea8000_w ) { - if ( ioport("mconfig")->read() & 1 ) + if ( m_io_mconfig->read() & 1 ) { m_mea8000->write(space, offset, data); } @@ -854,8 +850,8 @@ WRITE8_MEMBER( thomson_state::to7_modem_mea8000_w ) UINT8 thomson_state::to7_get_mouse_signal() { UINT8 xa, xb, ya, yb; - UINT16 dx = ioport("mouse_x")->read(); /* x axis */ - UINT16 dy = ioport("mouse_y")->read(); /* y axis */ + UINT16 dx = m_io_mouse_x->read(); /* x axis */ + UINT16 dy = m_io_mouse_y->read(); /* y axis */ xa = ((dx + 1) & 3) <= 1; xb = (dx & 3) <= 1; ya = ((dy + 1) & 3) <= 1; @@ -875,16 +871,16 @@ void thomson_state::to7_game_sound_update() READ8_MEMBER( thomson_state::to7_game_porta_in ) { UINT8 data; - if ( ioport("config")->read() & 1 ) + if ( m_io_config->read() & 1 ) { /* mouse */ data = to7_get_mouse_signal() & 0x0c; /* XB, YB */ - data |= ioport("mouse_button")->read() & 3; /* buttons */ + data |= m_io_mouse_button->read() & 3; /* buttons */ } else { /* joystick */ - data = ioport("game_port_directions")->read(); + data = m_io_game_port_directions->read(); /* bit 0=0 => P1 up bit 4=0 => P2 up bit 1=0 => P1 down bit 5=0 => P2 down bit 2=0 => P1 left bit 6=0 => P2 left @@ -916,7 +912,7 @@ READ8_MEMBER( thomson_state::to7_game_porta_in ) READ8_MEMBER( thomson_state::to7_game_portb_in ) { UINT8 data; - if ( ioport("config")->read() & 1 ) + if ( m_io_config->read() & 1 ) { /* mouse */ UINT8 mouse = to7_get_mouse_signal(); @@ -933,7 +929,7 @@ READ8_MEMBER( thomson_state::to7_game_portb_in ) /* bits 2-3: action buttons B (0=pressed) */ /* bits 4-5: unused (ouput) */ /* bits 0-1: unknown! */ - data = ioport("game_port_buttons")->read(); + data = m_io_game_port_buttons->read(); } return data; } @@ -960,7 +956,7 @@ WRITE_LINE_MEMBER( thomson_state::to7_game_cb2_out ) /* this should be called periodically */ TIMER_CALLBACK_MEMBER(thomson_state::to7_game_update_cb) { - if ( ioport("config")->read() & 1 ) + if ( m_io_config->read() & 1 ) { /* mouse */ UINT8 mouse = to7_get_mouse_signal(); @@ -970,7 +966,7 @@ TIMER_CALLBACK_MEMBER(thomson_state::to7_game_update_cb) else { /* joystick */ - UINT8 in = ioport("game_port_buttons")->read(); + UINT8 in = m_io_game_port_buttons->read(); m_pia_game->cb2_w( (in & 0x80) ? 1 : 0 ); /* P2 action A */ m_pia_game->ca2_w( (in & 0x40) ? 1 : 0 ); /* P1 action A */ m_pia_game->cb1_w( (in & 0x08) ? 1 : 0 ); /* P2 action B */ @@ -1118,22 +1114,24 @@ MACHINE_START_MEMBER( thomson_state, to7 ) /* memory */ m_thom_cart_bank = 0; m_thom_vram = ram; - membank( THOM_BASE_BANK )->configure_entry( 0, ram + 0x4000); - membank( THOM_VRAM_BANK )->configure_entries( 0, 2, m_thom_vram, 0x2000 ); - membank( THOM_CART_BANK )->configure_entries( 0, 4, mem + 0x10000, 0x4000 ); - membank( THOM_BASE_BANK )->set_entry( 0 ); - membank( THOM_VRAM_BANK )->set_entry( 0 ); - membank( THOM_CART_BANK )->set_entry( 0 ); + m_basebank->configure_entry( 0, ram + 0x4000); + m_vrambank->configure_entries( 0, 2, m_thom_vram, 0x2000 ); + m_cartbank->configure_entries( 0, 4, mem + 0x10000, 0x4000 ); + m_basebank->set_entry( 0 ); + m_vrambank->set_entry( 0 ); + m_cartbank->set_entry( 0 ); + + space.unmap_readwrite(0x8000, 0xdfff); if ( m_ram->size() > 24*1024 ) { /* install 16 KB or 16 KB + 8 KB memory extensions */ /* BASIC instruction to see free memory: ?FRE(0) */ int extram = m_ram->size() - 24*1024; - space.install_write_bank(0x8000, 0x8000 + extram - 1, THOM_RAM_BANK); - space.install_read_bank(0x8000, 0x8000 + extram - 1, THOM_RAM_BANK ); - membank( THOM_RAM_BANK )->configure_entry( 0, ram + 0x6000); - membank( THOM_RAM_BANK )->set_entry( 0 ); + space.install_write_bank(0x8000, 0x8000 + extram - 1, m_rambank); + space.install_read_bank(0x8000, 0x8000 + extram - 1, m_rambank); + m_rambank->configure_entry( 0, ram + 0x6000); + m_rambank->set_entry( 0 ); } /* force 2 topmost color bits to 1 */ @@ -1169,13 +1167,9 @@ WRITE_LINE_MEMBER( thomson_state::to770_sys_cb2_out ) READ8_MEMBER( thomson_state::to770_sys_porta_in ) { /* keyboard */ - static const char *const keynames[] = { - "keyboard_0", "keyboard_1", "keyboard_2", "keyboard_3", - "keyboard_4", "keyboard_5", "keyboard_6", "keyboard_7" - }; int keyline = m_pia_sys->b_output() & 7; - return ioport(keynames[7 - keyline])->read(); + return m_io_keyboard[7 - keyline]->read(); } @@ -1210,7 +1204,7 @@ void thomson_state::to770_update_ram_bank() { if ( m_ram->size() == 128*1024 || bank < 2 ) { - membank( THOM_RAM_BANK )->set_entry( bank ); + m_rambank->set_entry( bank ); } else { @@ -1344,14 +1338,14 @@ MACHINE_START_MEMBER( thomson_state, to770 ) /* memory */ m_thom_cart_bank = 0; m_thom_vram = ram; - membank( THOM_BASE_BANK )->configure_entry( 0, ram + 0x4000); - membank( THOM_RAM_BANK )->configure_entries( 0, 6, ram + 0x8000, 0x4000 ); - membank( THOM_VRAM_BANK )->configure_entries( 0, 2, m_thom_vram, 0x2000 ); - membank( THOM_CART_BANK )->configure_entries( 0, 4, mem + 0x10000, 0x4000 ); - membank( THOM_BASE_BANK )->set_entry( 0 ); - membank( THOM_RAM_BANK )->set_entry( 0 ); - membank( THOM_VRAM_BANK )->set_entry( 0 ); - membank( THOM_CART_BANK )->set_entry( 0 ); + m_basebank->configure_entry( 0, ram + 0x4000); + m_rambank->configure_entries( 0, 6, ram + 0x8000, 0x4000 ); + m_vrambank->configure_entries( 0, 2, m_thom_vram, 0x2000 ); + m_cartbank->configure_entries( 0, 4, mem + 0x10000, 0x4000 ); + m_basebank->set_entry( 0 ); + m_rambank->set_entry( 0 ); + m_vrambank->set_entry( 0 ); + m_cartbank->set_entry( 0 ); /* save-state */ save_item(NAME(m_thom_cart_nb_banks)); @@ -1426,7 +1420,7 @@ READ8_MEMBER( thomson_state::mo5_sys_porta_in ) { return (mo5_get_cassette() ? 0x80 : 0) | /* bit 7: cassette input */ - ((ioport("lightpen_button")->read() & 1) ? 0x20 : 0) + ((m_io_lightpen_button->read() & 1) ? 0x20 : 0) /* bit 5: lightpen button */; } @@ -1444,12 +1438,8 @@ READ8_MEMBER( thomson_state::mo5_sys_portb_in ) UINT8 portb = m_pia_sys->b_output(); int col = (portb >> 1) & 7; /* key column */ int lin = 7 - ((portb >> 4) & 7); /* key line */ - static const char *const keynames[] = { - "keyboard_0", "keyboard_1", "keyboard_2", "keyboard_3", - "keyboard_4", "keyboard_5", "keyboard_6", "keyboard_7" - }; - return ( ioport(keynames[lin])->read() & (1 << col) ) ? 0x80 : 0; + return ( m_io_keyboard[lin]->read() & (1 << col) ) ? 0x80 : 0; } @@ -1573,7 +1563,7 @@ void thomson_state::mo5_update_cart_bank() { if ( m_old_cart_bank < 0 || m_old_cart_bank > 3 ) { - space.install_read_bank( 0xb000, 0xefff, THOM_CART_BANK); + space.install_read_bank( 0xb000, 0xefff, m_cartbank); space.nop_write( 0xb000, 0xefff); } LOG_BANK(( "mo5_update_cart_bank: CART is cartridge bank %i (A7CB style)\n", bank )); @@ -1589,12 +1579,12 @@ void thomson_state::mo5_update_cart_bank() { if ( bank_is_read_only ) { - space.install_read_bank( 0xb000, 0xefff, THOM_CART_BANK); + space.install_read_bank( 0xb000, 0xefff, m_cartbank); space.nop_write( 0xb000, 0xefff ); } else { - space.install_readwrite_bank( 0xb000, 0xefff, THOM_CART_BANK); + space.install_readwrite_bank( 0xb000, 0xefff, m_cartbank); } LOG_BANK(( "mo5_update_cart_bank: CART is nanonetwork RAM bank %i (%s)\n", m_mo5_reg_cart & 3, @@ -1612,7 +1602,7 @@ void thomson_state::mo5_update_cart_bank() { if ( m_old_cart_bank < 0 ) { - space.install_read_bank( 0xb000, 0xefff, THOM_CART_BANK); + space.install_read_bank( 0xb000, 0xefff, m_cartbank); space.install_write_handler( 0xb000, 0xefff, write8_delegate(FUNC(thomson_state::mo5_cartridge_w),this) ); space.install_read_handler( 0xbffc, 0xbfff, read8_delegate(FUNC(thomson_state::mo5_cartridge_r),this) ); } @@ -1624,7 +1614,7 @@ void thomson_state::mo5_update_cart_bank() /* internal ROM */ if ( m_old_cart_bank != 0 ) { - space.install_read_bank( 0xb000, 0xefff, THOM_CART_BANK); + space.install_read_bank( 0xb000, 0xefff, m_cartbank); space.install_write_handler( 0xb000, 0xefff, write8_delegate(FUNC(thomson_state::mo5_cartridge_w),this) ); LOG_BANK(( "mo5_update_cart_bank: CART is internal\n")); } @@ -1632,7 +1622,7 @@ void thomson_state::mo5_update_cart_bank() } if ( bank != m_old_cart_bank ) { - membank( THOM_CART_BANK )->set_entry( bank ); + m_cartbank->set_entry( bank ); m_old_cart_bank = bank; } } @@ -1738,13 +1728,13 @@ MACHINE_START_MEMBER( thomson_state, mo5 ) m_thom_cart_bank = 0; m_mo5_reg_cart = 0; m_thom_vram = ram; - membank( THOM_BASE_BANK )->configure_entry( 0, ram + 0x4000); - membank( THOM_CART_BANK )->configure_entries( 0, 4, mem + 0x10000, 0x4000 ); - membank( THOM_CART_BANK )->configure_entries( 4, 4, ram + 0xc000, 0x4000 ); - membank( THOM_VRAM_BANK )->configure_entries( 0, 2, m_thom_vram, 0x2000 ); - membank( THOM_BASE_BANK )->set_entry( 0 ); - membank( THOM_CART_BANK )->set_entry( 0 ); - membank( THOM_VRAM_BANK )->set_entry( 0 ); + m_basebank->configure_entry( 0, ram + 0x4000); + m_cartbank->configure_entries( 0, 4, mem + 0x10000, 0x4000 ); + m_cartbank->configure_entries( 4, 4, ram + 0xc000, 0x4000 ); + m_vrambank->configure_entries( 0, 2, m_thom_vram, 0x2000 ); + m_basebank->set_entry( 0 ); + m_cartbank->set_entry( 0 ); + m_vrambank->set_entry( 0 ); /* save-state */ save_item(NAME(m_thom_cart_nb_banks)); @@ -1974,7 +1964,7 @@ void thomson_state::to9_update_cart_bank() { if ( m_old_cart_bank < 4) { - space.install_read_bank( 0x0000, 0x3fff, THOM_CART_BANK ); + space.install_read_bank( 0x0000, 0x3fff, m_cartbank ); } LOG_BANK(( "to9_update_cart_bank: CART is BASIC bank %i\n", m_to9_soft_bank )); } @@ -1986,7 +1976,7 @@ void thomson_state::to9_update_cart_bank() { if ( m_old_cart_bank < 4) { - space.install_read_bank( 0x0000, 0x3fff, THOM_CART_BANK ); + space.install_read_bank( 0x0000, 0x3fff, m_cartbank ); } LOG_BANK(( "to9_update_cart_bank: CART is software 1 bank %i\n", m_to9_soft_bank )); } @@ -1998,7 +1988,7 @@ void thomson_state::to9_update_cart_bank() { if ( m_old_cart_bank < 4) { - space.install_read_bank( 0x0000, 0x3fff, THOM_CART_BANK ); + space.install_read_bank( 0x0000, 0x3fff, m_cartbank ); } LOG_BANK(( "to9_update_cart_bank: CART is software 2 bank %i\n", m_to9_soft_bank )); } @@ -2012,7 +2002,7 @@ void thomson_state::to9_update_cart_bank() { if ( m_old_cart_bank < 0 || m_old_cart_bank > 3 ) { - space.install_read_bank( 0x0000, 0x3fff, THOM_CART_BANK ); + space.install_read_bank( 0x0000, 0x3fff, m_cartbank ); space.install_write_handler( 0x0000, 0x3fff, write8_delegate(FUNC(thomson_state::to9_cartridge_w),this) ); space.install_read_handler( 0x0000, 0x0003, read8_delegate(FUNC(thomson_state::to9_cartridge_r),this) ); } @@ -2031,7 +2021,7 @@ void thomson_state::to9_update_cart_bank() } if ( bank != m_old_cart_bank ) { - membank( THOM_CART_BANK )->set_entry( bank ); + m_cartbank->set_entry( bank ); m_old_cart_bank = bank; } } @@ -2110,7 +2100,7 @@ void thomson_state::to9_update_ram_bank() { if ( m_ram->size() == 192*1024 || bank < 6 ) { - membank( THOM_RAM_BANK )->set_entry( bank ); + m_rambank->set_entry( bank ); } else { @@ -2160,14 +2150,10 @@ int thomson_state::to9_kbd_ktest() { int line, bit; UINT8 port; - static const char *const keynames[] = { - "keyboard_0", "keyboard_1", "keyboard_2", "keyboard_3", "keyboard_4", - "keyboard_5", "keyboard_6", "keyboard_7", "keyboard_8", "keyboard_9" - }; for ( line = 0; line < 10; line++ ) { - port = ioport(keynames[line])->read(); + port = m_io_keyboard[line]->read(); if ( line == 7 || line == 9 ) port |= 1; /* shift & control */ @@ -2393,18 +2379,14 @@ static const int to9_kbd_code[80][2] = /* returns the ASCII code for the key, or 0 for no key */ int thomson_state::to9_kbd_get_key() { - int control = ! (ioport("keyboard_7")->read() & 1); - int shift = ! (ioport("keyboard_9")->read() & 1); + int control = ! (m_io_keyboard[7]->read() & 1); + int shift = ! (m_io_keyboard[9]->read() & 1); int key = -1, line, bit; UINT8 port; - static const char *const keynames[] = { - "keyboard_0", "keyboard_1", "keyboard_2", "keyboard_3", "keyboard_4", - "keyboard_5", "keyboard_6", "keyboard_7", "keyboard_8", "keyboard_9" - }; for ( line = 0; line < 10; line++ ) { - port = ioport(keynames[line])->read(); + port = m_io_keyboard[line]->read(); if ( line == 7 || line == 9 ) port |= 1; /* shift & control */ @@ -2495,7 +2477,7 @@ TIMER_CALLBACK_MEMBER(thomson_state::to9_kbd_timer_cb) case 1: /* x axis */ { - int newx = ioport("mouse_x")->read(); + int newx = m_io_mouse_x->read(); UINT8 data = ( (newx - m_to9_mouse_x) & 0xf ) - 8; to9_kbd_send( data, 1 ); m_to9_mouse_x = newx; @@ -2504,7 +2486,7 @@ TIMER_CALLBACK_MEMBER(thomson_state::to9_kbd_timer_cb) case 2: /* y axis */ { - int newy = ioport("mouse_y")->read(); + int newy = m_io_mouse_y->read(); UINT8 data = ( (newy - m_to9_mouse_y) & 0xf ) - 8; to9_kbd_send( data, 1 ); m_to9_mouse_y = newy; @@ -2513,7 +2495,7 @@ TIMER_CALLBACK_MEMBER(thomson_state::to9_kbd_timer_cb) case 3: /* axis overflow & buttons */ { - int b = ioport("mouse_button")->read(); + int b = m_io_mouse_button->read(); UINT8 data = 0; if ( b & 1 ) data |= 1; if ( b & 2 ) data |= 4; @@ -2689,14 +2671,14 @@ MACHINE_START_MEMBER( thomson_state, to9 ) /* memory */ m_thom_vram = ram; m_thom_cart_bank = 0; - membank( THOM_VRAM_BANK )->configure_entries( 0, 2, m_thom_vram, 0x2000 ); - membank( THOM_CART_BANK )->configure_entries( 0, 12, mem + 0x10000, 0x4000 ); - membank( THOM_BASE_BANK )->configure_entry( 0, ram + 0x4000); - membank( THOM_RAM_BANK )->configure_entries( 0, 10, ram + 0x8000, 0x4000 ); - membank( THOM_VRAM_BANK )->set_entry( 0 ); - membank( THOM_CART_BANK )->set_entry( 0 ); - membank( THOM_BASE_BANK )->set_entry( 0 ); - membank( THOM_RAM_BANK )->set_entry( 0 ); + m_vrambank->configure_entries( 0, 2, m_thom_vram, 0x2000 ); + m_cartbank->configure_entries( 0, 12, mem + 0x10000, 0x4000 ); + m_basebank->configure_entry( 0, ram + 0x4000); + m_rambank->configure_entries( 0, 10, ram + 0x8000, 0x4000 ); + m_vrambank->set_entry( 0 ); + m_cartbank->set_entry( 0 ); + m_basebank->set_entry( 0 ); + m_rambank->set_entry( 0 ); /* save-state */ save_item(NAME(m_thom_cart_nb_banks)); @@ -2752,17 +2734,13 @@ int thomson_state::to8_kbd_ktest() { int line, bit; UINT8 port; - static const char *const keynames[] = { - "keyboard_0", "keyboard_1", "keyboard_2", "keyboard_3", "keyboard_4", - "keyboard_5", "keyboard_6", "keyboard_7", "keyboard_8", "keyboard_9" - }; - if ( ioport("config")->read() & 2 ) + if ( m_io_config->read() & 2 ) return 0; /* disabled */ for ( line = 0; line < 10; line++ ) { - port = ioport(keynames[line])->read(); + port = m_io_keyboard[line]->read(); if ( line == 7 || line == 9 ) port |= 1; /* shift & control */ @@ -2782,21 +2760,17 @@ int thomson_state::to8_kbd_ktest() /* keyboard scan & return keycode (or -1) */ int thomson_state::to8_kbd_get_key() { - int control = (ioport("keyboard_7")->read() & 1) ? 0 : 0x100; - int shift = (ioport("keyboard_9")->read() & 1) ? 0 : 0x080; + int control = (m_io_keyboard[7]->read() & 1) ? 0 : 0x100; + int shift = (m_io_keyboard[9]->read() & 1) ? 0 : 0x080; int key = -1, line, bit; UINT8 port; - static const char *const keynames[] = { - "keyboard_0", "keyboard_1", "keyboard_2", "keyboard_3", "keyboard_4", - "keyboard_5", "keyboard_6", "keyboard_7", "keyboard_8", "keyboard_9" - }; - if ( ioport("config")->read() & 2 ) + if ( m_io_config->read() & 2 ) return -1; /* disabled */ for ( line = 0; line < 10; line++ ) { - port = ioport(keynames[line])->read(); + port = m_io_keyboard[line]->read(); if ( line == 7 || line == 9 ) port |= 1; /* shift & control */ @@ -3045,7 +3019,7 @@ void thomson_state::to8_update_floppy_bank() LOG_BANK(( "to8_update_floppy_bank: floppy ROM is %s bank %i\n", (m_to8_reg_sys1 & 0x80) ? "external" : "internal", bank % TO7_NB_FLOP_BANK )); - membank( THOM_FLOP_BANK )->set_entry( bank ); + m_flopbank->set_entry( bank ); m_old_floppy_bank = bank; } } @@ -3099,8 +3073,8 @@ void thomson_state::to8_update_ram_bank() { if (m_ram->size() == 512*1024 || m_to8_data_vpage < 16) { - membank( TO8_DATA_LO )->set_entry( bank ); - membank( TO8_DATA_HI )->set_entry( bank ); + m_datalobank->set_entry( bank ); + m_datahibank->set_entry( bank ); } else { @@ -3145,7 +3119,7 @@ void thomson_state::to8_update_cart_bank() { if (m_old_cart_bank < 8 || m_old_cart_bank > 11) { - space.install_read_bank( 0x0000, 0x3fff, THOM_CART_BANK ); + space.install_read_bank( 0x0000, 0x3fff, m_cartbank ); if ( bank_is_read_only ) { space.nop_write( 0x0000, 0x3fff); @@ -3162,12 +3136,12 @@ void thomson_state::to8_update_cart_bank() { if ( bank_is_read_only ) { - space.install_read_bank( 0x0000, 0x3fff, THOM_CART_BANK ); + space.install_read_bank( 0x0000, 0x3fff, m_cartbank ); space.nop_write( 0x0000, 0x3fff); } else { - space.install_readwrite_bank( 0x0000, 0x3fff,THOM_CART_BANK); + space.install_readwrite_bank(0x0000, 0x3fff, m_cartbank); } } } @@ -3198,7 +3172,7 @@ void thomson_state::to8_update_cart_bank() } else { - space.install_readwrite_bank( 0x0000, 0x3fff, THOM_CART_BANK ); + space.install_readwrite_bank( 0x0000, 0x3fff, m_cartbank ); } } LOG_BANK(( "to8_update_cart_bank: update CART bank %i write status to %s\n", @@ -3218,7 +3192,7 @@ void thomson_state::to8_update_cart_bank() { if ( m_old_cart_bank < 4 || m_old_cart_bank > 7 ) { - space.install_read_bank( 0x0000, 0x3fff, THOM_CART_BANK ); + space.install_read_bank( 0x0000, 0x3fff, m_cartbank ); space.install_write_handler( 0x0000, 0x3fff, write8_delegate(FUNC(thomson_state::to8_cartridge_w),this) ); } LOG_BANK(( "to8_update_cart_bank: CART is internal bank %i\n", m_to8_soft_bank )); @@ -3234,7 +3208,7 @@ void thomson_state::to8_update_cart_bank() { if ( m_old_cart_bank < 0 || m_old_cart_bank > 3 ) { - space.install_read_bank( 0x0000, 0x3fff, THOM_CART_BANK ); + space.install_read_bank( 0x0000, 0x3fff, m_cartbank ); space.install_write_handler( 0x0000, 0x3fff, write8_delegate(FUNC(thomson_state::to8_cartridge_w),this) ); space.install_read_handler( 0x0000, 0x0003, read8_delegate(FUNC(thomson_state::to8_cartridge_r),this) ); } @@ -3253,7 +3227,7 @@ void thomson_state::to8_update_cart_bank() } if ( bank != m_old_cart_bank ) { - membank( THOM_CART_BANK )->set_entry( bank ); + m_cartbank->set_entry( bank ); m_old_cart_bank = bank; } } @@ -3315,7 +3289,7 @@ void thomson_state::to8_floppy_reset() to7_floppy_reset(); if ( THOM_FLOPPY_INT ) thmfc_floppy_reset(); - membank( THOM_FLOP_BANK )->configure_entries( TO7_NB_FLOP_BANK, 2, mem + 0x30000, 0x2000 ); + m_flopbank->configure_entries( TO7_NB_FLOP_BANK, 2, mem + 0x30000, 0x2000 ); } @@ -3590,7 +3564,7 @@ WRITE_LINE_MEMBER(thomson_state::write_centronics_busy ) READ8_MEMBER( thomson_state::to8_timer_port_in ) { - int lightpen = (ioport("lightpen_button")->read() & 1) ? 2 : 0; + int lightpen = (m_io_lightpen_button->read() & 1) ? 2 : 0; int cass = to7_get_cassette() ? 0x80 : 0; int dtr = m_centronics_busy << 6; int lock = m_to8_kbd_caps ? 0 : 8; /* undocumented! */ @@ -3604,7 +3578,7 @@ WRITE8_MEMBER( thomson_state::to8_timer_port_out ) int ack = (data & 0x20) ? 1 : 0; /* bit 5: keyboard ACK */ m_to8_bios_bank = (data & 0x10) ? 1 : 0; /* bit 4: BIOS bank*/ thom_set_mode_point( data & 1 ); /* bit 0: video bank switch */ - membank( TO8_BIOS_BANK )->set_entry( m_to8_bios_bank ); + m_biosbank->set_entry( m_to8_bios_bank ); m_to8_soft_select = (data & 0x04) ? 1 : 0; /* bit 2: internal ROM select */ to8_update_floppy_bank(); to8_update_cart_bank(); @@ -3683,7 +3657,7 @@ MACHINE_RESET_MEMBER( thomson_state, to8 ) to8_update_ram_bank(); to8_update_cart_bank(); to8_update_floppy_bank(); - membank( TO8_BIOS_BANK )->set_entry( 0 ); + m_biosbank->set_entry( 0 ); /* thom_cart_bank not reset */ } @@ -3708,33 +3682,33 @@ MACHINE_START_MEMBER( thomson_state, to8 ) /* memory */ m_thom_cart_bank = 0; m_thom_vram = ram; - membank( THOM_CART_BANK )->configure_entries( 0, 8, mem + 0x10000, 0x4000 ); + m_cartbank->configure_entries( 0, 8, mem + 0x10000, 0x4000 ); if ( m_ram->size() == 256*1024 ) { - membank( THOM_CART_BANK )->configure_entries( 8, 16, ram, 0x4000 ); - membank( THOM_CART_BANK )->configure_entries( 8+16, 16, ram, 0x4000 ); - membank( TO8_DATA_LO )->configure_entries( 0, 16, ram + 0x2000, 0x4000 ); - membank( TO8_DATA_LO )->configure_entries( 16, 16, ram + 0x2000, 0x4000 ); - membank( TO8_DATA_HI )->configure_entries( 0, 16, ram + 0x0000, 0x4000 ); - membank( TO8_DATA_HI )->configure_entries( 16, 16, ram + 0x0000, 0x4000 ); + m_cartbank->configure_entries( 8, 16, ram, 0x4000 ); + m_cartbank->configure_entries( 8+16, 16, ram, 0x4000 ); + m_datalobank->configure_entries( 0, 16, ram + 0x2000, 0x4000 ); + m_datalobank->configure_entries( 16, 16, ram + 0x2000, 0x4000 ); + m_datahibank->configure_entries( 0, 16, ram + 0x0000, 0x4000 ); + m_datahibank->configure_entries( 16, 16, ram + 0x0000, 0x4000 ); } else { - membank( THOM_CART_BANK )->configure_entries( 8, 32, ram, 0x4000 ); - membank( TO8_DATA_LO )->configure_entries( 0, 32, ram + 0x2000, 0x4000 ); - membank( TO8_DATA_HI )->configure_entries( 0, 32, ram + 0x0000, 0x4000 ); + m_cartbank->configure_entries( 8, 32, ram, 0x4000 ); + m_datalobank->configure_entries( 0, 32, ram + 0x2000, 0x4000 ); + m_datahibank->configure_entries( 0, 32, ram + 0x0000, 0x4000 ); } - membank( THOM_VRAM_BANK )->configure_entries( 0, 2, ram, 0x2000 ); - membank( TO8_SYS_LO )->configure_entry( 0, ram + 0x6000); - membank( TO8_SYS_HI )->configure_entry( 0, ram + 0x4000); - membank( TO8_BIOS_BANK )->configure_entries( 0, 2, mem + 0x30800, 0x2000 ); - membank( THOM_CART_BANK )->set_entry( 0 ); - membank( THOM_VRAM_BANK )->set_entry( 0 ); - membank( TO8_SYS_LO )->set_entry( 0 ); - membank( TO8_SYS_HI )->set_entry( 0 ); - membank( TO8_DATA_LO )->set_entry( 0 ); - membank( TO8_DATA_HI )->set_entry( 0 ); - membank( TO8_BIOS_BANK )->set_entry( 0 ); + m_vrambank->configure_entries( 0, 2, ram, 0x2000 ); + m_syslobank->configure_entry( 0, ram + 0x6000); + m_syshibank->configure_entry( 0, ram + 0x4000); + m_biosbank->configure_entries( 0, 2, mem + 0x30800, 0x2000 ); + m_cartbank->set_entry( 0 ); + m_vrambank->set_entry( 0 ); + m_syslobank->set_entry( 0 ); + m_syshibank->set_entry( 0 ); + m_datalobank->set_entry( 0 ); + m_datahibank->set_entry( 0 ); + m_biosbank->set_entry( 0 ); /* save-state */ save_item(NAME(m_thom_cart_nb_banks)); @@ -3773,7 +3747,7 @@ MACHINE_START_MEMBER( thomson_state, to8 ) READ8_MEMBER( thomson_state::to9p_timer_port_in ) { - int lightpen = (ioport("lightpen_button")->read() & 1) ? 2 : 0; + int lightpen = (m_io_lightpen_button->read() & 1) ? 2 : 0; int cass = to7_get_cassette() ? 0x80 : 0; int dtr = m_centronics_busy << 6; return lightpen | cass | dtr; @@ -3785,7 +3759,7 @@ WRITE8_MEMBER( thomson_state::to9p_timer_port_out ) { int bios_bank = (data & 0x10) ? 1 : 0; /* bit 4: BIOS bank */ thom_set_mode_point( data & 1 ); /* bit 0: video bank switch */ - membank( TO8_BIOS_BANK )->set_entry( bios_bank ); + m_biosbank->set_entry( bios_bank ); m_to8_soft_select = (data & 0x04) ? 1 : 0; /* bit 2: internal ROM select */ to8_update_floppy_bank(); to8_update_cart_bank(); @@ -3834,7 +3808,7 @@ MACHINE_RESET_MEMBER( thomson_state, to9p ) to8_update_ram_bank(); to8_update_cart_bank(); to8_update_floppy_bank(); - membank( TO8_BIOS_BANK )->set_entry( 0 ); + m_biosbank->set_entry( 0 ); /* thom_cart_bank not reset */ } @@ -3859,21 +3833,21 @@ MACHINE_START_MEMBER( thomson_state, to9p ) /* memory */ m_thom_cart_bank = 0; m_thom_vram = ram; - membank( THOM_CART_BANK )->configure_entries( 0, 8, mem + 0x10000, 0x4000 ); - membank( THOM_CART_BANK )->configure_entries( 8, 32, ram, 0x4000 ); - membank( THOM_VRAM_BANK )->configure_entries( 0, 2, ram, 0x2000 ); - membank( TO8_SYS_LO )->configure_entry( 0, ram + 0x6000 ); - membank( TO8_SYS_HI )->configure_entry( 0, ram + 0x4000 ); - membank( TO8_DATA_LO )->configure_entries( 0, 32, ram + 0x2000, 0x4000 ); - membank( TO8_DATA_HI )->configure_entries( 0, 32, ram + 0x0000, 0x4000 ); - membank( TO8_BIOS_BANK )->configure_entries( 0, 2, mem + 0x30800, 0x2000 ); - membank( THOM_CART_BANK )->set_entry( 0 ); - membank( THOM_VRAM_BANK )->set_entry( 0 ); - membank( TO8_SYS_LO )->set_entry( 0 ); - membank( TO8_SYS_HI )->set_entry( 0 ); - membank( TO8_DATA_LO )->set_entry( 0 ); - membank( TO8_DATA_HI )->set_entry( 0 ); - membank( TO8_BIOS_BANK )->set_entry( 0 ); + m_cartbank->configure_entries( 0, 8, mem + 0x10000, 0x4000 ); + m_cartbank->configure_entries( 8, 32, ram, 0x4000 ); + m_vrambank->configure_entries( 0, 2, ram, 0x2000 ); + m_syslobank->configure_entry( 0, ram + 0x6000 ); + m_syshibank->configure_entry( 0, ram + 0x4000 ); + m_datalobank->configure_entries( 0, 32, ram + 0x2000, 0x4000 ); + m_datahibank->configure_entries( 0, 32, ram + 0x0000, 0x4000 ); + m_biosbank->configure_entries( 0, 2, mem + 0x30800, 0x2000 ); + m_cartbank->set_entry( 0 ); + m_vrambank->set_entry( 0 ); + m_syslobank->set_entry( 0 ); + m_syshibank->set_entry( 0 ); + m_datalobank->set_entry( 0 ); + m_datahibank->set_entry( 0 ); + m_biosbank->set_entry( 0 ); /* save-state */ save_item(NAME(m_thom_cart_nb_banks)); @@ -3915,8 +3889,8 @@ void thomson_state::mo6_update_ram_bank() bank = m_to8_reg_ram & 7; /* 128 KB RAM only = 8 pages */ } if ( bank != m_to8_data_vpage ) { - membank( TO8_DATA_LO )->set_entry( bank ); - membank( TO8_DATA_HI )->set_entry( bank ); + m_datalobank->set_entry( bank ); + m_datahibank->set_entry( bank ); m_to8_data_vpage = bank; m_old_ram_bank = bank; LOG_BANK(( "mo6_update_ram_bank: select bank %i (new style)\n", bank )); @@ -3954,8 +3928,8 @@ void thomson_state::mo6_update_cart_bank() { if (m_old_cart_bank < 8 || m_old_cart_bank > 11) { - space.install_read_bank( 0xb000, 0xbfff, MO6_CART_LO ); - space.install_read_bank( 0xc000, 0xefff, MO6_CART_HI ); + space.install_read_bank( 0xb000, 0xbfff, m_cartlobank ); + space.install_read_bank( 0xc000, 0xefff, m_carthibank ); if ( bank_is_read_only ) { space.nop_write( 0xb000, 0xefff); @@ -3973,14 +3947,14 @@ void thomson_state::mo6_update_cart_bank() { if ( bank_is_read_only ) { - space.install_read_bank( 0xb000, 0xbfff, MO6_CART_LO ); - space.install_read_bank( 0xc000, 0xefff, MO6_CART_HI ); - space.nop_write( 0xb000, 0xefff); + space.install_read_bank( 0xb000, 0xbfff, m_cartlobank ); + space.install_read_bank( 0xc000, 0xefff, m_carthibank ); + space.nop_write( 0xb000, 0xefff); } else { - space.install_readwrite_bank( 0xb000, 0xbfff, MO6_CART_LO ); - space.install_readwrite_bank( 0xc000, 0xefff, MO6_CART_HI ); + space.install_readwrite_bank( 0xb000, 0xbfff, m_cartlobank ); + space.install_readwrite_bank( 0xc000, 0xefff, m_carthibank ); } } } @@ -3998,14 +3972,13 @@ void thomson_state::mo6_update_cart_bank() { if (m_to8_cart_vpage < 4) { - space.install_write_handler( 0xb000, 0xbfff, write8_delegate(FUNC(thomson_state::mo6_vcart_lo_w),this)); - space.install_write_handler( 0xc000, 0xefff, write8_delegate(FUNC(thomson_state::mo6_vcart_hi_w),this)); - + space.install_write_handler( 0xb000, 0xbfff, write8_delegate(FUNC(thomson_state::mo6_vcart_lo_w),this)); + space.install_write_handler( 0xc000, 0xefff, write8_delegate(FUNC(thomson_state::mo6_vcart_hi_w),this)); } else { - space.install_readwrite_bank( 0xb000, 0xbfff, MO6_CART_LO ); - space.install_readwrite_bank( 0xc000, 0xefff, MO6_CART_HI ); + space.install_readwrite_bank( 0xb000, 0xbfff, m_cartlobank ); + space.install_readwrite_bank( 0xc000, 0xefff, m_carthibank ); } } LOG_BANK(( "mo6_update_cart_bank: update CART bank %i write status to %s\n", @@ -4022,8 +3995,8 @@ void thomson_state::mo6_update_cart_bank() { if ( m_old_cart_bank < 0 || m_old_cart_bank > 3 ) { - space.install_read_bank( 0xb000, 0xbfff, MO6_CART_LO ); - space.install_read_bank( 0xc000, 0xefff, MO6_CART_HI ); + space.install_read_bank( 0xb000, 0xbfff, m_cartlobank ); + space.install_read_bank( 0xc000, 0xefff, m_carthibank ); space.nop_write( 0xb000, 0xefff); } LOG_BANK(( "mo6_update_cart_bank: CART is external cartridge bank %i (A7CB style)\n", bank )); @@ -4041,14 +4014,14 @@ void thomson_state::mo6_update_cart_bank() { if ( bank_is_read_only ) { - space.install_read_bank( 0xb000, 0xbfff, MO6_CART_LO ); - space.install_read_bank( 0xc000, 0xefff, MO6_CART_HI ); + space.install_read_bank( 0xb000, 0xbfff, m_cartlobank ); + space.install_read_bank( 0xc000, 0xefff, m_carthibank ); space.nop_write( 0xb000, 0xefff); } else { - space.install_readwrite_bank( 0xb000, 0xbfff, MO6_CART_LO ); - space.install_readwrite_bank( 0xc000, 0xefff, MO6_CART_HI ); + space.install_readwrite_bank( 0xb000, 0xbfff, m_cartlobank ); + space.install_readwrite_bank( 0xc000, 0xefff, m_carthibank ); } } LOG_BANK(( "mo6_update_cart_bank: CART is RAM bank %i (MO5 compat.) (%s)\n", @@ -4059,14 +4032,14 @@ void thomson_state::mo6_update_cart_bank() { if ( bank_is_read_only ) { - space.install_read_bank( 0xb000, 0xbfff, MO6_CART_LO ); - space.install_read_bank( 0xc000, 0xefff, MO6_CART_HI ); + space.install_read_bank( 0xb000, 0xbfff, m_cartlobank ); + space.install_read_bank( 0xc000, 0xefff, m_carthibank ); space.nop_write( 0xb000, 0xefff); } else { - space.install_readwrite_bank( 0xb000, 0xbfff, MO6_CART_LO ); - space.install_readwrite_bank( 0xc000, 0xefff, MO6_CART_HI ); + space.install_readwrite_bank( 0xb000, 0xbfff, m_cartlobank ); + space.install_readwrite_bank( 0xc000, 0xefff, m_carthibank ); } LOG_BANK(( "mo5_update_cart_bank: update CART bank %i write status to %s\n", m_to8_cart_vpage, @@ -4093,8 +4066,8 @@ void thomson_state::mo6_update_cart_bank() { if ( m_old_cart_bank < 4 || m_old_cart_bank > 7 ) { - space.install_read_bank( 0xb000, 0xbfff, MO6_CART_LO ); - space.install_read_bank( 0xc000, 0xefff, MO6_CART_HI ); + space.install_read_bank( 0xb000, 0xbfff, m_cartlobank ); + space.install_read_bank( 0xc000, 0xefff, m_carthibank ); space.install_write_handler( 0xb000, 0xefff, write8_delegate(FUNC(thomson_state::mo6_cartridge_w),this) ); } LOG_BANK(( "mo6_update_cart_bank: CART is internal ROM bank %i\n", b )); @@ -4108,10 +4081,10 @@ void thomson_state::mo6_update_cart_bank() bank = m_thom_cart_bank % m_thom_cart_nb_banks; if ( bank != m_old_cart_bank ) { - if ( m_old_cart_bank < 0 || m_old_cart_bank > 3 ) + if ( m_old_cart_bank < 0 || m_old_cart_bank > 3 ) { - space.install_read_bank( 0xb000, 0xbfff, MO6_CART_LO ); - space.install_read_bank( 0xc000, 0xefff, MO6_CART_HI ); + space.install_read_bank( 0xb000, 0xbfff, m_cartlobank ); + space.install_read_bank( 0xc000, 0xefff, m_carthibank ); space.install_write_handler( 0xb000, 0xefff, write8_delegate(FUNC(thomson_state::mo6_cartridge_w),this) ); space.install_read_handler( 0xbffc, 0xbfff, read8_delegate(FUNC(thomson_state::mo6_cartridge_r),this) ); } @@ -4129,10 +4102,10 @@ void thomson_state::mo6_update_cart_bank() } } if ( bank != m_old_cart_bank ) - { - membank( MO6_CART_LO )->set_entry( bank ); - membank( MO6_CART_HI )->set_entry( bank ); - membank( TO8_BIOS_BANK )->set_entry( b ); + { + m_cartlobank->set_entry( bank ); + m_carthibank->set_entry( bank ); + m_biosbank->set_entry( b ); m_old_cart_bank = bank; } } @@ -4216,7 +4189,7 @@ WRITE_LINE_MEMBER( thomson_state::mo6_game_cb2_out ) TIMER_CALLBACK_MEMBER(thomson_state::mo6_game_update_cb) { /* unlike the TO8, CB1 & CB2 are not connected to buttons */ - if ( ioport("config")->read() & 1 ) + if ( m_io_config->read() & 1 ) { UINT8 mouse = to7_get_mouse_signal(); m_pia_game->ca1_w( BIT(mouse, 0) ); /* XA */ @@ -4225,7 +4198,7 @@ TIMER_CALLBACK_MEMBER(thomson_state::mo6_game_update_cb) else { /* joystick */ - UINT8 in = ioport("game_port_buttons")->read(); + UINT8 in = m_io_game_port_buttons->read(); m_pia_game->ca1_w( BIT(in, 2) ); /* P1 action B */ m_pia_game->ca2_w( BIT(in, 6) ); /* P1 action A */ } @@ -4264,7 +4237,7 @@ READ8_MEMBER( thomson_state::mo6_sys_porta_in ) return (mo5_get_cassette() ? 0x80 : 0) | /* bit 7: cassette input */ 8 | /* bit 3: kbd-line float up to 1 */ - ((ioport("lightpen_button")->read() & 1) ? 2 : 0); + ((m_io_lightpen_button->read() & 1) ? 2 : 0); /* bit 1: lightpen button */; } @@ -4277,16 +4250,12 @@ READ8_MEMBER( thomson_state::mo6_sys_portb_in ) UINT8 portb = m_pia_sys->b_output(); int col = (portb >> 4) & 7; /* B bits 4-6: kbd column */ int lin = (portb >> 1) & 7; /* B bits 1-3: kbd line */ - static const char *const keynames[] = { - "keyboard_0", "keyboard_1", "keyboard_2", "keyboard_3", "keyboard_4", - "keyboard_5", "keyboard_6", "keyboard_7", "keyboard_8", "keyboard_9" - }; if ( ! (porta & 8) ) lin = 8; /* A bit 3: 9-th kbd line select */ return - ( ioport(keynames[lin])->read() & (1 << col) ) ? 0x80 : 0; + ( m_io_keyboard[lin]->read() & (1 << col) ) ? 0x80 : 0; /* bit 7: key up */ } @@ -4558,28 +4527,28 @@ MACHINE_START_MEMBER( thomson_state, mo6 ) m_thom_cart_bank = 0; m_mo5_reg_cart = 0; m_thom_vram = ram; - membank( MO6_CART_LO )->configure_entries( 0, 4, mem + 0x10000, 0x4000 ); - membank( MO6_CART_LO )->configure_entries( 4, 2, mem + 0x1f000, 0x4000 ); - membank( MO6_CART_LO )->configure_entries( 6, 2, mem + 0x28000, 0x4000 ); - membank( MO6_CART_LO )->configure_entries( 8, 8, ram + 0x3000, 0x4000 ); - membank( MO6_CART_HI )->configure_entries( 0, 4, mem + 0x10000 + 0x1000, 0x4000 ); - membank( MO6_CART_HI )->configure_entries( 4, 2, mem + 0x1f000 + 0x1000, 0x4000 ); - membank( MO6_CART_HI )->configure_entries( 6, 2, mem + 0x28000 + 0x1000, 0x4000 ); - membank( MO6_CART_HI )->configure_entries( 8, 8, ram, 0x4000 ); - membank( THOM_VRAM_BANK )->configure_entries( 0, 2, ram, 0x2000 ); - membank( TO8_SYS_LO )->configure_entry( 0, ram + 0x6000); - membank( TO8_SYS_HI )->configure_entry( 0, ram + 0x4000); - membank( TO8_DATA_LO )->configure_entries( 0, 8, ram + 0x2000, 0x4000 ); - membank( TO8_DATA_HI )->configure_entries( 0, 8, ram + 0x0000, 0x4000 ); - membank( TO8_BIOS_BANK )->configure_entries( 0, 2, mem + 0x23000, 0x4000 ); - membank( MO6_CART_LO )->set_entry( 0 ); - membank( MO6_CART_HI )->set_entry( 0 ); - membank( THOM_VRAM_BANK )->set_entry( 0 ); - membank( TO8_SYS_LO )->set_entry( 0 ); - membank( TO8_SYS_HI )->set_entry( 0 ); - membank( TO8_DATA_LO )->set_entry( 0 ); - membank( TO8_DATA_HI )->set_entry( 0 ); - membank( TO8_BIOS_BANK )->set_entry( 0 ); + m_cartlobank->configure_entries( 0, 4, mem + 0x10000, 0x4000 ); + m_cartlobank->configure_entries( 4, 2, mem + 0x1f000, 0x4000 ); + m_cartlobank->configure_entries( 6, 2, mem + 0x28000, 0x4000 ); + m_cartlobank->configure_entries( 8, 8, ram + 0x3000, 0x4000 ); + m_carthibank->configure_entries( 0, 4, mem + 0x10000 + 0x1000, 0x4000 ); + m_carthibank->configure_entries( 4, 2, mem + 0x1f000 + 0x1000, 0x4000 ); + m_carthibank->configure_entries( 6, 2, mem + 0x28000 + 0x1000, 0x4000 ); + m_carthibank->configure_entries( 8, 8, ram, 0x4000 ); + m_vrambank->configure_entries( 0, 2, ram, 0x2000 ); + m_syslobank->configure_entry( 0, ram + 0x6000); + m_syshibank->configure_entry( 0, ram + 0x4000); + m_datalobank->configure_entries( 0, 8, ram + 0x2000, 0x4000 ); + m_datahibank->configure_entries( 0, 8, ram + 0x0000, 0x4000 ); + m_biosbank->configure_entries( 0, 2, mem + 0x23000, 0x4000 ); + m_cartlobank->set_entry( 0 ); + m_carthibank->set_entry( 0 ); + m_vrambank->set_entry( 0 ); + m_syslobank->set_entry( 0 ); + m_syshibank->set_entry( 0 ); + m_datalobank->set_entry( 0 ); + m_datahibank->set_entry( 0 ); + m_biosbank->set_entry( 0 ); /* save-state */ save_item(NAME(m_thom_cart_nb_banks)); @@ -4669,12 +4638,8 @@ READ8_MEMBER( thomson_state::mo5nr_sys_portb_in ) UINT8 portb = m_pia_sys->b_output(); int col = (portb >> 4) & 7; /* B bits 4-6: kbd column */ int lin = (portb >> 1) & 7; /* B bits 1-3: kbd line */ - static const char *const keynames[] = { - "keyboard_0", "keyboard_1", "keyboard_2", "keyboard_3", - "keyboard_4", "keyboard_5", "keyboard_6", "keyboard_7" - }; - return ( ioport(keynames[lin])->read() & (1 << col) ) ? 0x80 : 0; + return ( m_io_keyboard[lin]->read() & (1 << col) ) ? 0x80 : 0; /* bit 7: key up */ } @@ -4787,28 +4752,28 @@ MACHINE_START_MEMBER( thomson_state, mo5nr ) m_mo5_reg_cart = 0; m_thom_vram = ram; - membank( MO6_CART_LO )->configure_entries( 0, 4, mem + 0x10000, 0x4000 ); - membank( MO6_CART_LO )->configure_entries( 4, 2, mem + 0x1f000, 0x4000 ); - membank( MO6_CART_LO )->configure_entries( 6, 2, mem + 0x28000, 0x4000 ); - membank( MO6_CART_LO )->configure_entries( 8, 8, ram + 0x3000, 0x4000 ); - membank( MO6_CART_HI )->configure_entries( 0, 4, mem + 0x10000 + 0x1000, 0x4000 ); - membank( MO6_CART_HI )->configure_entries( 4, 2, mem + 0x1f000 + 0x1000, 0x4000 ); - membank( MO6_CART_HI )->configure_entries( 6, 2, mem + 0x28000 + 0x1000, 0x4000 ); - membank( MO6_CART_HI )->configure_entries( 8, 8, ram, 0x4000 ); - membank( THOM_VRAM_BANK )->configure_entries( 0, 2, ram, 0x2000 ); - membank( TO8_SYS_LO )->configure_entry( 0, ram + 0x6000); - membank( TO8_SYS_HI )->configure_entry( 0, ram + 0x4000); - membank( TO8_DATA_LO )->configure_entries( 0, 8, ram + 0x2000, 0x4000 ); - membank( TO8_DATA_HI )->configure_entries( 0, 8, ram + 0x0000, 0x4000 ); - membank( TO8_BIOS_BANK )->configure_entries( 0, 2, mem + 0x23000, 0x4000 ); - membank( MO6_CART_LO )->set_entry( 0 ); - membank( MO6_CART_HI )->set_entry( 0 ); - membank( THOM_VRAM_BANK )->set_entry( 0 ); - membank( TO8_SYS_LO )->set_entry( 0 ); - membank( TO8_SYS_HI )->set_entry( 0 ); - membank( TO8_DATA_LO )->set_entry( 0 ); - membank( TO8_DATA_HI )->set_entry( 0 ); - membank( TO8_BIOS_BANK )->set_entry( 0 ); + m_cartlobank->configure_entries( 0, 4, mem + 0x10000, 0x4000 ); + m_cartlobank->configure_entries( 4, 2, mem + 0x1f000, 0x4000 ); + m_cartlobank->configure_entries( 6, 2, mem + 0x28000, 0x4000 ); + m_cartlobank->configure_entries( 8, 8, ram + 0x3000, 0x4000 ); + m_carthibank->configure_entries( 0, 4, mem + 0x10000 + 0x1000, 0x4000 ); + m_carthibank->configure_entries( 4, 2, mem + 0x1f000 + 0x1000, 0x4000 ); + m_carthibank->configure_entries( 6, 2, mem + 0x28000 + 0x1000, 0x4000 ); + m_carthibank->configure_entries( 8, 8, ram, 0x4000 ); + m_vrambank->configure_entries( 0, 2, ram, 0x2000 ); + m_syslobank->configure_entry( 0, ram + 0x6000); + m_syshibank->configure_entry( 0, ram + 0x4000); + m_datalobank->configure_entries( 0, 8, ram + 0x2000, 0x4000 ); + m_datahibank->configure_entries( 0, 8, ram + 0x0000, 0x4000 ); + m_biosbank->configure_entries( 0, 2, mem + 0x23000, 0x4000 ); + m_cartlobank->set_entry( 0 ); + m_carthibank->set_entry( 0 ); + m_vrambank->set_entry( 0 ); + m_syslobank->set_entry( 0 ); + m_syshibank->set_entry( 0 ); + m_datalobank->set_entry( 0 ); + m_datahibank->set_entry( 0 ); + m_biosbank->set_entry( 0 ); /* save-state */ save_item(NAME(m_thom_cart_nb_banks)); |