46
46
*************************************/
48
static ADDRESS_MAP_START( master_map_program, AS_PROGRAM, 8 )
48
static ADDRESS_MAP_START( master_map_program, AS_PROGRAM, 8, leland_state )
49
49
AM_RANGE(0x0000, 0x1fff) AM_ROM
50
50
AM_RANGE(0x2000, 0x9fff) AM_ROMBANK("bank1")
51
51
AM_RANGE(0xa000, 0xdfff) AM_ROMBANK("bank2") AM_WRITE(ataxx_battery_ram_w) AM_SHARE("battery")
52
52
AM_RANGE(0xe000, 0xf7ff) AM_RAM
53
AM_RANGE(0xf800, 0xffff) AM_READWRITE(ataxx_paletteram_and_misc_r, ataxx_paletteram_and_misc_w) AM_BASE_GENERIC(paletteram)
53
AM_RANGE(0xf800, 0xffff) AM_READWRITE(ataxx_paletteram_and_misc_r, ataxx_paletteram_and_misc_w) AM_SHARE("paletteram")
57
static ADDRESS_MAP_START( master_map_io, AS_IO, 8 )
57
static ADDRESS_MAP_START( master_map_io, AS_IO, 8, leland_state )
58
58
ADDRESS_MAP_GLOBAL_MASK(0xff)
59
AM_RANGE(0x04, 0x04) AM_DEVREAD("custom", leland_80186_response_r)
60
AM_RANGE(0x05, 0x05) AM_DEVWRITE("custom", leland_80186_command_hi_w)
61
AM_RANGE(0x06, 0x06) AM_DEVWRITE("custom", leland_80186_command_lo_w)
62
AM_RANGE(0x0c, 0x0c) AM_DEVWRITE("custom", ataxx_80186_control_w)
63
AM_RANGE(0x20, 0x20) AM_DEVREADWRITE("eeprom", ataxx_eeprom_r, ataxx_eeprom_w)
59
AM_RANGE(0x04, 0x04) AM_DEVREAD_LEGACY("custom", leland_80186_response_r)
60
AM_RANGE(0x05, 0x05) AM_DEVWRITE_LEGACY("custom", leland_80186_command_hi_w)
61
AM_RANGE(0x06, 0x06) AM_DEVWRITE_LEGACY("custom", leland_80186_command_lo_w)
62
AM_RANGE(0x0c, 0x0c) AM_DEVWRITE_LEGACY("custom", ataxx_80186_control_w)
63
AM_RANGE(0x20, 0x20) AM_DEVREADWRITE_LEGACY("eeprom", ataxx_eeprom_r, ataxx_eeprom_w)
64
64
AM_RANGE(0xd0, 0xef) AM_READWRITE(ataxx_mvram_port_r, ataxx_mvram_port_w)
65
65
AM_RANGE(0xf0, 0xff) AM_READWRITE(ataxx_master_input_r, ataxx_master_output_w)
75
75
*************************************/
77
static ADDRESS_MAP_START( slave_map_program, AS_PROGRAM, 8 )
77
static ADDRESS_MAP_START( slave_map_program, AS_PROGRAM, 8, leland_state )
78
78
AM_RANGE(0x0000, 0x1fff) AM_ROM
79
79
AM_RANGE(0x2000, 0x9fff) AM_ROMBANK("bank3")
80
80
AM_RANGE(0xa000, 0xdfff) AM_ROM
88
static ADDRESS_MAP_START( slave_map_io, AS_IO, 8 )
88
static ADDRESS_MAP_START( slave_map_io, AS_IO, 8, leland_state )
89
89
ADDRESS_MAP_GLOBAL_MASK(0xff)
90
90
AM_RANGE(0x60, 0x7f) AM_READWRITE(ataxx_svram_port_r, ataxx_svram_port_w)
116
116
PORT_START("IN1") /* 0xF7 */
117
117
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SLAVEHALT )
118
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK )
118
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
119
119
PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED )
121
121
PORT_START("IN2") /* 0x20 */
147
147
PORT_START("IN1") /* 0xF7 */
148
148
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SLAVEHALT )
149
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK )
149
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
150
150
PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED )
152
152
PORT_START("IN2") /* 0x20 */
199
199
PORT_START("IN1") /* 0xF7 */
200
200
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SLAVEHALT )
201
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK )
201
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
202
202
PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED )
204
204
PORT_START("IN2") /* 0x20 */
245
245
PORT_START("IN1") /* 0xF7 */
246
246
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SLAVEHALT )
247
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_VBLANK )
247
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
248
248
PORT_BIT( 0xfc, IP_ACTIVE_LOW, IPT_UNUSED )
250
250
PORT_START("IN2") /* 0x20 */
711
711
leland_rotate_memory(machine, "slave");
713
713
/* set up additional input ports */
714
machine.device("master")->memory().space(AS_IO)->install_legacy_read_handler(0x00, 0x03, FUNC(ataxx_trackball_r));
714
leland_state *state = machine.driver_data<leland_state>();
715
machine.device("master")->memory().space(AS_IO)->install_read_handler(0x00, 0x03, read8_delegate(FUNC(leland_state::ataxx_trackball_r),state));
721
722
leland_rotate_memory(machine, "slave");
723
724
/* set up additional input ports */
724
machine.device("master")->memory().space(AS_IO)->install_legacy_read_handler(0x00, 0x03, FUNC(ataxx_trackball_r));
725
leland_state *state = machine.driver_data<leland_state>();
726
machine.device("master")->memory().space(AS_IO)->install_read_handler(0x00, 0x03, read8_delegate(FUNC(leland_state::ataxx_trackball_r),state));
743
745
leland_rotate_memory(machine, "slave");
745
747
/* set up additional input ports */
746
machine.device("master")->memory().space(AS_IO)->install_legacy_read_handler(0x00, 0x02, FUNC(indyheat_wheel_r));
747
machine.device("master")->memory().space(AS_IO)->install_legacy_read_handler(0x08, 0x0b, FUNC(indyheat_analog_r));
748
leland_state *state = machine.driver_data<leland_state>();
749
machine.device("master")->memory().space(AS_IO)->install_read_handler(0x00, 0x02, read8_delegate(FUNC(leland_state::indyheat_wheel_r),state));
750
machine.device("master")->memory().space(AS_IO)->install_read_handler(0x08, 0x0b, read8_delegate(FUNC(leland_state::indyheat_analog_r),state));
748
751
machine.device("master")->memory().space(AS_IO)->install_read_port(0x0d, 0x0d, "P1");
749
752
machine.device("master")->memory().space(AS_IO)->install_read_port(0x0e, 0x0e, "P2");
750
753
machine.device("master")->memory().space(AS_IO)->install_read_port(0x0f, 0x0f, "P3");
752
755
/* set up additional output ports */
753
machine.device("master")->memory().space(AS_IO)->install_legacy_write_handler(0x08, 0x0b, FUNC(indyheat_analog_w));
756
machine.device("master")->memory().space(AS_IO)->install_write_handler(0x08, 0x0b, write8_delegate(FUNC(leland_state::indyheat_analog_w),state));