mirror of
https://github.com/holub/mame
synced 2025-04-21 07:52:35 +03:00
added buttons according to schems, but doesn't seem to be doing much
This commit is contained in:
parent
a526e64c53
commit
ee258a156b
@ -35,9 +35,13 @@ public:
|
||||
|
||||
DECLARE_WRITE8_MEMBER(ram_w);
|
||||
DECLARE_READ8_MEMBER(ram_r);
|
||||
DECLARE_WRITE8_MEMBER(strobe_w);
|
||||
void refresh_ram();
|
||||
|
||||
DECLARE_WRITE8_MEMBER(led_w);
|
||||
DECLARE_WRITE8_MEMBER(switch_w);
|
||||
DECLARE_WRITE8_MEMBER(strobe_w);
|
||||
DECLARE_READ8_MEMBER(input_r);
|
||||
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(t3_clock);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(t3_off);
|
||||
|
||||
@ -124,6 +128,16 @@ READ8_MEMBER(tb303_state::ram_r)
|
||||
return 0;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(tb303_state::led_w)
|
||||
{
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(tb303_state::switch_w)
|
||||
{
|
||||
// MCU H: input/led mux
|
||||
m_inp_mux = data;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(tb303_state::strobe_w)
|
||||
{
|
||||
// MCU I0: RAM _WE
|
||||
@ -134,6 +148,19 @@ WRITE8_MEMBER(tb303_state::strobe_w)
|
||||
// MCU I2: gate signal
|
||||
}
|
||||
|
||||
READ8_MEMBER(tb303_state::input_r)
|
||||
{
|
||||
// MCU A,B: multiplexed inputs
|
||||
// if input mux(port H) is 0, port A status buffer & gate is selected (via Q5 NAND)
|
||||
if (offset == NEC_UCOM4_PORTA && m_inp_mux == 0)
|
||||
{
|
||||
// todo..
|
||||
return m_inp_matrix[4]->read();
|
||||
}
|
||||
else
|
||||
return read_inputs(4) >> (offset*4) & 0xf;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
@ -143,6 +170,55 @@ WRITE8_MEMBER(tb303_state::strobe_w)
|
||||
***************************************************************************/
|
||||
|
||||
static INPUT_PORTS_START( tb303 )
|
||||
PORT_START("IN.0") // H0 port A/B
|
||||
PORT_CONFNAME( 0x03, 0x03, "Mode" )
|
||||
PORT_CONFSETTING( 0x03, "Track Write" )
|
||||
PORT_CONFSETTING( 0x02, "Track Play" )
|
||||
PORT_CONFSETTING( 0x00, "Pattern Play" )
|
||||
PORT_CONFSETTING( 0x01, "Pattern Write" )
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Q) PORT_NAME("DEL C#")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_W) PORT_NAME("INS D#")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_1) PORT_NAME("1 C")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_2) PORT_NAME("2 D")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_3) PORT_NAME("3 E")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_4) PORT_NAME("4 F")
|
||||
|
||||
PORT_START("IN.1") // H1 port A/B
|
||||
PORT_CONFNAME( 0x07, 0x00, "Track / Patt.Group" )
|
||||
PORT_CONFSETTING( 0x00, "1 / I" )
|
||||
PORT_CONFSETTING( 0x01, "2 / I" )
|
||||
PORT_CONFSETTING( 0x02, "3 / II" )
|
||||
PORT_CONFSETTING( 0x03, "4 / II" )
|
||||
PORT_CONFSETTING( 0x04, "5 / III" )
|
||||
PORT_CONFSETTING( 0x05, "6 / III" )
|
||||
PORT_CONFSETTING( 0x06, "7 / IV" )
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_5) PORT_NAME("5 G")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_6) PORT_NAME("6 A")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_7) PORT_NAME("7 B")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_8) PORT_NAME("8 C")
|
||||
|
||||
PORT_START("IN.2") // H2 port A/B
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_D) PORT_NAME("Pattern Clear")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_F) PORT_NAME("Function")
|
||||
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_A) PORT_NAME("Pitch Mode")
|
||||
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_S) PORT_NAME("Time Mode")
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_9) PORT_NAME("9 Step")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_0) PORT_NAME("0 3n")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_MINUS) PORT_NAME("100 A")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_EQUALS) PORT_NAME("200 B")
|
||||
|
||||
PORT_START("IN.3") // H3 port B
|
||||
PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("F#")
|
||||
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_T) PORT_NAME("G#")
|
||||
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_Y) PORT_NAME("A#")
|
||||
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_BACKSPACE) PORT_NAME("Back")
|
||||
|
||||
PORT_START("IN.4") // H=0 port A
|
||||
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_ENTER) PORT_NAME("Run/Stop")
|
||||
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_SPACE) PORT_NAME("Tap")
|
||||
PORT_BIT( 0xfc, IP_ACTIVE_HIGH, IPT_UNUSED )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -174,15 +250,15 @@ static MACHINE_CONFIG_START( tb303, tb303_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", NEC_D650, TB303_T2_CLOCK_HZ)
|
||||
//MCFG_UCOM4_READ_A_CB
|
||||
//MCFG_UCOM4_READ_B_CB
|
||||
MCFG_UCOM4_READ_A_CB(READ8(tb303_state, input_r))
|
||||
MCFG_UCOM4_READ_B_CB(READ8(tb303_state, input_r))
|
||||
MCFG_UCOM4_READ_C_CB(READ8(tb303_state, ram_r))
|
||||
MCFG_UCOM4_WRITE_C_CB(WRITE8(tb303_state, ram_w))
|
||||
MCFG_UCOM4_WRITE_D_CB(WRITE8(tb303_state, ram_w))
|
||||
MCFG_UCOM4_WRITE_E_CB(WRITE8(tb303_state, ram_w))
|
||||
MCFG_UCOM4_WRITE_F_CB(WRITE8(tb303_state, ram_w))
|
||||
//MCFG_UCOM4_WRITE_G_CB
|
||||
//MCFG_UCOM4_WRITE_H_CB
|
||||
MCFG_UCOM4_WRITE_G_CB(WRITE8(tb303_state, led_w))
|
||||
MCFG_UCOM4_WRITE_H_CB(WRITE8(tb303_state, switch_w))
|
||||
MCFG_UCOM4_WRITE_I_CB(WRITE8(tb303_state, strobe_w))
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD_PERIODIC("t3_clock", tb303_state, t3_clock, TB303_T3_CLOCK)
|
||||
|
Loading…
Reference in New Issue
Block a user