diff options
Diffstat (limited to 'src/mame/drivers/re900.c')
-rw-r--r-- | src/mame/drivers/re900.c | 57 |
1 files changed, 23 insertions, 34 deletions
diff --git a/src/mame/drivers/re900.c b/src/mame/drivers/re900.c index f2b5a5c3b30..287ef51b5ae 100644 --- a/src/mame/drivers/re900.c +++ b/src/mame/drivers/re900.c @@ -88,9 +88,9 @@ static UINT8 psg_pa, psg_pb = 0, mux_data = 0, ledant = 0, player = 1, stat_a= 1 * Read Handlers * ****************/ -static READ8_HANDLER (re_psg_portA_r) +static READ8_DEVICE_HANDLER (re_psg_portA_r) { - if ((input_port_read(space->machine, "IN0") & 0x01) == 0) + if ((input_port_read(device->machine, "IN0") & 0x01) == 0) { output_set_lamp_value(0,1); // Operator Key ON } @@ -100,10 +100,10 @@ static READ8_HANDLER (re_psg_portA_r) output_set_lamp_value(0,0); // Operator Key OFF } - return input_port_read(space->machine, "IN0"); + return input_port_read(device->machine, "IN0"); } -static READ8_HANDLER (re_psg_portB_r) +static READ8_DEVICE_HANDLER (re_psg_portB_r) { UINT8 retval = 0xff; logerror("llamada a re_psg_portB_r\n"); @@ -111,7 +111,7 @@ static READ8_HANDLER (re_psg_portB_r) output_set_lamp_value(player,1); - if (input_port_read(space->machine, "IN_S")) + if (input_port_read(device->machine, "IN_S")) { if (!stat_a) { @@ -142,27 +142,17 @@ static READ8_HANDLER (re_psg_portB_r) /* "INA": Unified port to share the player Keys among all players - Key In & Key Out have their own buttons on keyboard. */ switch( mux_data ) { - case 0x01: retval = (input_port_read(space->machine, "IN6") | 0x80 ) - (( player == 6 ) ? (input_port_read(space->machine, "INA") | 0x80 ) ^ 0xff: 0x00 ); break; /* Player 6 */ - case 0x02: retval = (input_port_read(space->machine, "IN5") | 0x80 ) - (( player == 5 ) ? (input_port_read(space->machine, "INA") | 0x80 ) ^ 0xff: 0x00 ); break; /* Player 5 */ - case 0x04: retval = (input_port_read(space->machine, "IN4") | 0x80 ) - (( player == 4 ) ? (input_port_read(space->machine, "INA") | 0x80 ) ^ 0xff: 0x00 ); break; /* Player 4 */ - case 0x08: retval = (input_port_read(space->machine, "IN3") | 0x80 ) - (( player == 3 ) ? (input_port_read(space->machine, "INA") | 0x80 ) ^ 0xff: 0x00 ); break; /* Player 3 */ - case 0x10: retval = (input_port_read(space->machine, "IN2") | 0x80 ) - (( player == 2 ) ? (input_port_read(space->machine, "INA") | 0x80 ) ^ 0xff: 0x00 ); break; /* Player 2 */ - case 0x20: retval = (input_port_read(space->machine, "IN1") | 0x80 ) - (( player == 1 ) ? (input_port_read(space->machine, "INA") | 0x80 ) ^ 0xff: 0x00 ); break; /* Player 1 */ + case 0x01: retval = (input_port_read(device->machine, "IN6") | 0x80 ) - (( player == 6 ) ? (input_port_read(device->machine, "INA") | 0x80 ) ^ 0xff: 0x00 ); break; /* Player 6 */ + case 0x02: retval = (input_port_read(device->machine, "IN5") | 0x80 ) - (( player == 5 ) ? (input_port_read(device->machine, "INA") | 0x80 ) ^ 0xff: 0x00 ); break; /* Player 5 */ + case 0x04: retval = (input_port_read(device->machine, "IN4") | 0x80 ) - (( player == 4 ) ? (input_port_read(device->machine, "INA") | 0x80 ) ^ 0xff: 0x00 ); break; /* Player 4 */ + case 0x08: retval = (input_port_read(device->machine, "IN3") | 0x80 ) - (( player == 3 ) ? (input_port_read(device->machine, "INA") | 0x80 ) ^ 0xff: 0x00 ); break; /* Player 3 */ + case 0x10: retval = (input_port_read(device->machine, "IN2") | 0x80 ) - (( player == 2 ) ? (input_port_read(device->machine, "INA") | 0x80 ) ^ 0xff: 0x00 ); break; /* Player 2 */ + case 0x20: retval = (input_port_read(device->machine, "IN1") | 0x80 ) - (( player == 1 ) ? (input_port_read(device->machine, "INA") | 0x80 ) ^ 0xff: 0x00 ); break; /* Player 1 */ } return retval; } -static READ8_HANDLER (bs94_portA_r) -{ - return input_port_read(space->machine, "IN0"); -} - -static READ8_HANDLER (bs94_portB_r) -{ - return input_port_read(space->machine, "IN1"); -} - static READ8_HANDLER (rom_r) { return re900_rom[offset]; @@ -173,13 +163,13 @@ static READ8_HANDLER (rom_r) * Write Handlers * ***********************/ -static WRITE8_HANDLER (re_mux_port_A_w) +static WRITE8_DEVICE_HANDLER (re_mux_port_A_w) { psg_pa = data; mux_data = ((data >> 2) & 0x3f) ^ 0x3f; } -static WRITE8_HANDLER (re_mux_port_B_w) +static WRITE8_DEVICE_HANDLER (re_mux_port_B_w) { UINT8 led; psg_pb = data; @@ -222,9 +212,8 @@ static ADDRESS_MAP_START( mem_io, ADDRESS_SPACE_IO, 8 ) AM_RANGE(0xc000, 0xdfff) AM_RAM AM_BASE(&generic_nvram) AM_SIZE(&generic_nvram_size) AM_RANGE(0xe000, 0xe000) AM_WRITE(TMS9928A_vram_w) AM_RANGE(0xe001, 0xe001) AM_WRITE(TMS9928A_register_w) - AM_RANGE(0xe800, 0xe800) AM_WRITE(ay8910_control_port_0_w) - AM_RANGE(0xe801, 0xe801) AM_WRITE(ay8910_write_port_0_w) - AM_RANGE(0xe802, 0xe802) AM_READ(ay8910_read_port_0_r) + AM_RANGE(0xe800, 0xe801) AM_DEVWRITE(SOUND, "ay_re900", ay8910_address_data_w) + AM_RANGE(0xe802, 0xe802) AM_DEVREAD(SOUND, "ay_re900", ay8910_r) AM_RANGE(0xe000, 0xefff) AM_WRITE(re900_watchdog_reset_w) AM_RANGE(MCS51_PORT_P0, MCS51_PORT_P0) AM_WRITE(cpu_port_0_w) AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_NOP @@ -378,20 +367,20 @@ static const ay8910_interface ay8910_re900 = { AY8910_LEGACY_OUTPUT, AY8910_DEFAULT_LOADS, - re_psg_portA_r, - re_psg_portB_r, - re_mux_port_A_w, - re_mux_port_B_w + DEVCB_HANDLER(re_psg_portA_r), + DEVCB_HANDLER(re_psg_portB_r), + DEVCB_HANDLER(re_mux_port_A_w), + DEVCB_HANDLER(re_mux_port_B_w) }; static const ay8910_interface ay8910_bs94 = { AY8910_LEGACY_OUTPUT, AY8910_DEFAULT_LOADS, - bs94_portA_r, - bs94_portB_r, - 0, - 0 + DEVCB_INPUT_PORT("IN0"), + DEVCB_INPUT_PORT("IN1"), + DEVCB_NULL, + DEVCB_NULL }; /*************************** |