mirror of
https://github.com/holub/mame
synced 2025-04-23 17:00:53 +03:00
(MESS) Some more devcb2 edits. (nw)
This commit is contained in:
parent
3d65a90c9e
commit
6c2a8df26a
@ -693,33 +693,12 @@ static TMS9995_CONFIG( geneve_processor_config )
|
||||
NO_OVERFLOW_INT // The generally available versions of TMS9995 have a deactivated overflow interrupt
|
||||
};
|
||||
|
||||
static TI_SOUND_CONFIG( sound_conf )
|
||||
{
|
||||
DEVCB_DRIVER_LINE_MEMBER(geneve_state, ext_ready) // READY
|
||||
};
|
||||
|
||||
static const mm58274c_interface geneve_mm58274c_interface =
|
||||
{
|
||||
1, /* mode 24*/
|
||||
0 /* first day of week */
|
||||
};
|
||||
|
||||
static GENEVE_KEYBOARD_CONFIG( geneve_keyb_conf )
|
||||
{
|
||||
DEVCB_DRIVER_LINE_MEMBER(geneve_state, keyboard_interrupt)
|
||||
};
|
||||
|
||||
static GENEVE_MAPPER_CONFIG( mapper_conf )
|
||||
{
|
||||
DEVCB_DRIVER_LINE_MEMBER(geneve_state, mapper_ready) // READY
|
||||
};
|
||||
|
||||
static JOYPORT_CONFIG( joyport_60 )
|
||||
{
|
||||
DEVCB_NULL,
|
||||
60
|
||||
};
|
||||
|
||||
DRIVER_INIT_MEMBER(geneve_state,geneve)
|
||||
{
|
||||
}
|
||||
@ -772,22 +751,29 @@ static MACHINE_CONFIG_START( geneve_60hz, geneve_state )
|
||||
|
||||
// Main board components
|
||||
MCFG_TMS9901_ADD(TMS9901_TAG, tms9901_wiring_geneve, 3000000)
|
||||
MCFG_GENEVE_MAPPER_ADD(GMAPPER_TAG, mapper_conf)
|
||||
|
||||
// Mapper
|
||||
MCFG_DEVICE_ADD(GMAPPER_TAG, GENEVE_MAPPER, 0)
|
||||
MCFG_GENEVE_READY_HANDLER( WRITELINE(geneve_state, mapper_ready) )
|
||||
|
||||
// Clock
|
||||
MCFG_MM58274C_ADD(GCLOCK_TAG, geneve_mm58274c_interface)
|
||||
|
||||
// Peripheral expansion box (Geneve composition)
|
||||
MCFG_PERIBOX_GEN_ADD( PERIBOX_TAG, 0x00000 )
|
||||
MCFG_DEVICE_ADD( PERIBOX_TAG, PERIBOX_GEN, 0)
|
||||
MCFG_PERIBOX_INTA_HANDLER( WRITELINE(geneve_state, inta) )
|
||||
MCFG_PERIBOX_INTB_HANDLER( WRITELINE(geneve_state, intb) )
|
||||
MCFG_PERIBOX_READY_HANDLER( WRITELINE(geneve_state, ext_ready) )
|
||||
|
||||
// sound hardware
|
||||
MCFG_TI_SOUND_76496_ADD( TISOUND_TAG, sound_conf )
|
||||
MCFG_TI_SOUND_76496_ADD( TISOUND_TAG )
|
||||
MCFG_TI_SOUND_READY_HANDLER( WRITELINE(geneve_state, ext_ready) )
|
||||
|
||||
// User interface devices
|
||||
MCFG_GENEVE_KEYBOARD_ADD( GKEYBOARD_TAG, geneve_keyb_conf )
|
||||
MCFG_DEVICE_ADD( GKEYBOARD_TAG, GENEVE_KEYBOARD, 0 )
|
||||
MCFG_GENEVE_KBINT_HANDLER( WRITELINE(geneve_state, keyboard_interrupt) )
|
||||
MCFG_GENEVE_MOUSE_ADD( GMOUSE_TAG )
|
||||
MCFG_GENEVE_JOYPORT_ADD( JOYPORT_TAG, joyport_60 )
|
||||
MCFG_GENEVE_JOYPORT_ADD( JOYPORT_TAG, 60 )
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -841,17 +841,6 @@ WRITE_LINE_MEMBER(ti99_4p_state::set_tms9901_INT2_from_v9938)
|
||||
m_tms9901->set_single_int(2, state);
|
||||
}
|
||||
|
||||
static TI_SOUND_CONFIG( sound_conf )
|
||||
{
|
||||
DEVCB_DRIVER_LINE_MEMBER(ti99_4p_state, console_ready) // READY
|
||||
};
|
||||
|
||||
static JOYPORT_CONFIG( joyport4a_60 )
|
||||
{
|
||||
DEVCB_NULL,
|
||||
60
|
||||
};
|
||||
|
||||
/*
|
||||
Reset the machine.
|
||||
*/
|
||||
@ -889,13 +878,14 @@ static MACHINE_CONFIG_START( ti99_4p_60hz, ti99_4p_state )
|
||||
MCFG_TMS9901_ADD(TMS9901_TAG, tms9901_wiring_sgcpu, 3000000)
|
||||
|
||||
// Peripheral expansion box (SGCPU composition)
|
||||
MCFG_PERIBOX_SG_ADD( PERIBOX_TAG, 0x70000 )
|
||||
MCFG_DEVICE_ADD( PERIBOX_TAG, PERIBOX_SG, 0)
|
||||
MCFG_PERIBOX_INTA_HANDLER( WRITELINE(ti99_4p_state, extint) )
|
||||
MCFG_PERIBOX_INTB_HANDLER( WRITELINE(ti99_4p_state, notconnected) )
|
||||
MCFG_PERIBOX_READY_HANDLER( WRITELINE(ti99_4p_state, console_ready) )
|
||||
|
||||
// sound hardware
|
||||
MCFG_TI_SOUND_94624_ADD( TISOUND_TAG, sound_conf )
|
||||
MCFG_TI_SOUND_94624_ADD( TISOUND_TAG )
|
||||
MCFG_TI_SOUND_READY_HANDLER( WRITELINE(ti99_4p_state, console_ready) )
|
||||
|
||||
// Cassette drives
|
||||
MCFG_SPEAKER_STANDARD_MONO("cass_out")
|
||||
@ -905,7 +895,7 @@ static MACHINE_CONFIG_START( ti99_4p_60hz, ti99_4p_state )
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "cass_out", 0.25)
|
||||
|
||||
// Joystick port
|
||||
MCFG_TI_JOYPORT4A_ADD( JOYPORT_TAG, joyport4a_60 )
|
||||
MCFG_TI_JOYPORT4A_ADD( JOYPORT_TAG, 60 )
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -371,17 +371,6 @@ static GROM_CONFIG(grom2_config)
|
||||
false, 2, region_grom, 0x4000, 0x1800, DEVCB_DRIVER_LINE_MEMBER(ti99_4x_state, console_ready_grom), GROMFREQ
|
||||
};
|
||||
|
||||
static GROMPORT_CONFIG(console_cartslot)
|
||||
{
|
||||
DEVCB_DRIVER_LINE_MEMBER(ti99_4x_state, console_ready_cart),
|
||||
DEVCB_DRIVER_LINE_MEMBER(ti99_4x_state, console_reset)
|
||||
};
|
||||
|
||||
static TI_SOUND_CONFIG( sound_conf )
|
||||
{
|
||||
DEVCB_DRIVER_LINE_MEMBER(ti99_4x_state, console_ready_sound) // READY
|
||||
};
|
||||
|
||||
READ8_MEMBER( ti99_4x_state::cruread )
|
||||
{
|
||||
// if (TRACE_CRU) LOG("read access to CRU address %04x\n", offset << 4);
|
||||
@ -738,6 +727,7 @@ WRITE_LINE_MEMBER( ti99_4x_state::console_reset )
|
||||
{
|
||||
if (machine().phase() != MACHINE_PHASE_INIT)
|
||||
{
|
||||
logerror("ti99_4x: Console reset line = %d\n", state);
|
||||
m_cpu->set_input_line(INT_9900_RESET, state);
|
||||
m_video->reset_vdp(state);
|
||||
}
|
||||
@ -861,13 +851,11 @@ static const dmux_device_list_entry dmux_devices_ev[] =
|
||||
|
||||
static DMUX_CONFIG( datamux_conf )
|
||||
{
|
||||
DEVCB_DRIVER_LINE_MEMBER(ti99_4x_state, console_ready_dmux), // READY
|
||||
dmux_devices
|
||||
};
|
||||
|
||||
static DMUX_CONFIG( datamux_conf_ev )
|
||||
{
|
||||
DEVCB_DRIVER_LINE_MEMBER(ti99_4x_state, console_ready_dmux), // READY
|
||||
dmux_devices_ev
|
||||
};
|
||||
|
||||
@ -882,31 +870,6 @@ static TMS99xx_CONFIG( ti99_cpuconf )
|
||||
DEVCB_DRIVER_LINE_MEMBER(ti99_4x_state, dbin_line) // data bus in
|
||||
};
|
||||
|
||||
static JOYPORT_CONFIG( joyport4_60 )
|
||||
{
|
||||
DEVCB_DRIVER_LINE_MEMBER(ti99_4x_state, set_tms9901_INT12),
|
||||
60
|
||||
};
|
||||
|
||||
static JOYPORT_CONFIG( joyport4_50 )
|
||||
{
|
||||
DEVCB_DRIVER_LINE_MEMBER(ti99_4x_state, set_tms9901_INT12),
|
||||
50
|
||||
};
|
||||
|
||||
static JOYPORT_CONFIG( joyport4a_60 )
|
||||
{
|
||||
DEVCB_NULL,
|
||||
60
|
||||
};
|
||||
|
||||
static JOYPORT_CONFIG( joyport4a_50 )
|
||||
{
|
||||
DEVCB_NULL,
|
||||
50
|
||||
};
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Machine definitions
|
||||
******************************************************************************/
|
||||
@ -940,19 +903,23 @@ static MACHINE_CONFIG_START( ti99_4_60hz, ti99_4x_state )
|
||||
/* Main board */
|
||||
MCFG_TMS9901_ADD(TMS9901_TAG, tms9901_wiring_ti99_4, 3000000)
|
||||
MCFG_DMUX_ADD( DATAMUX_TAG, datamux_conf )
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG, console_cartslot )
|
||||
MCFG_DMUX_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_dmux) )
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG )
|
||||
MCFG_GROMPORT_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_cart) )
|
||||
MCFG_GROMPORT_RESET_HANDLER( WRITELINE(ti99_4x_state, console_reset) )
|
||||
|
||||
/* Software list */
|
||||
MCFG_SOFTWARE_LIST_ADD("cart_list_ti99", "ti99_cart")
|
||||
|
||||
/* Peripheral expansion box */
|
||||
MCFG_PERIBOX_ADD( PERIBOX_TAG, 0x70000 )
|
||||
MCFG_DEVICE_ADD( PERIBOX_TAG, PERIBOX, 0)
|
||||
MCFG_PERIBOX_INTA_HANDLER( WRITELINE(ti99_4x_state, extint) )
|
||||
MCFG_PERIBOX_INTB_HANDLER( WRITELINE(ti99_4x_state, notconnected) )
|
||||
MCFG_PERIBOX_READY_HANDLER( DEVWRITELINE(DATAMUX_TAG, ti99_datamux_device, ready_line) )
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_TI_SOUND_94624_ADD( TISOUND_TAG, sound_conf )
|
||||
MCFG_TI_SOUND_94624_ADD( TISOUND_TAG )
|
||||
MCFG_TI_SOUND_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_sound) )
|
||||
|
||||
/* Cassette drives */
|
||||
MCFG_SPEAKER_STANDARD_MONO("cass_out")
|
||||
@ -968,7 +935,8 @@ static MACHINE_CONFIG_START( ti99_4_60hz, ti99_4x_state )
|
||||
MCFG_GROM_ADD( GROM2_TAG, grom2_config )
|
||||
|
||||
// Joystick port
|
||||
MCFG_TI_JOYPORT4_ADD( JOYPORT_TAG, joyport4_60 )
|
||||
MCFG_TI_JOYPORT4_ADD( JOYPORT_TAG, 60 )
|
||||
MCFG_JOYPORT_INT_HANDLER( WRITELINE(ti99_4x_state, set_tms9901_INT12) )
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -985,19 +953,24 @@ static MACHINE_CONFIG_START( ti99_4_50hz, ti99_4x_state )
|
||||
/* main board */
|
||||
MCFG_TMS9901_ADD(TMS9901_TAG, tms9901_wiring_ti99_4, 3000000)
|
||||
MCFG_DMUX_ADD( DATAMUX_TAG, datamux_conf )
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG, console_cartslot )
|
||||
MCFG_DMUX_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_dmux) )
|
||||
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG )
|
||||
MCFG_GROMPORT_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_cart) )
|
||||
MCFG_GROMPORT_RESET_HANDLER( WRITELINE(ti99_4x_state, console_reset) )
|
||||
|
||||
/* Software list */
|
||||
MCFG_SOFTWARE_LIST_ADD("cart_list_ti99", "ti99_cart")
|
||||
|
||||
/* Peripheral expansion box */
|
||||
MCFG_PERIBOX_ADD( PERIBOX_TAG, 0x70000 )
|
||||
MCFG_DEVICE_ADD( PERIBOX_TAG, PERIBOX, 0)
|
||||
MCFG_PERIBOX_INTA_HANDLER( WRITELINE(ti99_4x_state, extint) )
|
||||
MCFG_PERIBOX_INTB_HANDLER( WRITELINE(ti99_4x_state, notconnected) )
|
||||
MCFG_PERIBOX_READY_HANDLER( DEVWRITELINE(DATAMUX_TAG, ti99_datamux_device, ready_line) )
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_TI_SOUND_94624_ADD( TISOUND_TAG, sound_conf )
|
||||
MCFG_TI_SOUND_94624_ADD( TISOUND_TAG )
|
||||
MCFG_TI_SOUND_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_sound) )
|
||||
|
||||
/* Cassette drives */
|
||||
MCFG_SPEAKER_STANDARD_MONO("cass_out")
|
||||
@ -1013,7 +986,8 @@ static MACHINE_CONFIG_START( ti99_4_50hz, ti99_4x_state )
|
||||
MCFG_GROM_ADD( GROM2_TAG, grom2_config )
|
||||
|
||||
// Joystick port
|
||||
MCFG_TI_JOYPORT4_ADD( JOYPORT_TAG, joyport4_50 )
|
||||
MCFG_TI_JOYPORT4_ADD( JOYPORT_TAG, 50 )
|
||||
MCFG_JOYPORT_INT_HANDLER( WRITELINE(ti99_4x_state, set_tms9901_INT12) )
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -1048,19 +1022,23 @@ static MACHINE_CONFIG_START( ti99_4a_60hz, ti99_4x_state )
|
||||
/* Main board */
|
||||
MCFG_TMS9901_ADD(TMS9901_TAG, tms9901_wiring_ti99_4a, 3000000)
|
||||
MCFG_DMUX_ADD( DATAMUX_TAG, datamux_conf )
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG, console_cartslot )
|
||||
MCFG_DMUX_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_dmux) )
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG )
|
||||
MCFG_GROMPORT_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_cart) )
|
||||
MCFG_GROMPORT_RESET_HANDLER( WRITELINE(ti99_4x_state, console_reset) )
|
||||
|
||||
/* Software list */
|
||||
MCFG_SOFTWARE_LIST_ADD("cart_list_ti99", "ti99_cart")
|
||||
|
||||
/* Peripheral expansion box */
|
||||
MCFG_PERIBOX_ADD( PERIBOX_TAG, 0x70000 )
|
||||
MCFG_DEVICE_ADD( PERIBOX_TAG, PERIBOX, 0)
|
||||
MCFG_PERIBOX_INTA_HANDLER( WRITELINE(ti99_4x_state, extint) )
|
||||
MCFG_PERIBOX_INTB_HANDLER( WRITELINE(ti99_4x_state, notconnected) )
|
||||
MCFG_PERIBOX_READY_HANDLER( DEVWRITELINE(DATAMUX_TAG, ti99_datamux_device, ready_line) )
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_TI_SOUND_94624_ADD( TISOUND_TAG, sound_conf )
|
||||
MCFG_TI_SOUND_94624_ADD( TISOUND_TAG )
|
||||
MCFG_TI_SOUND_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_sound) )
|
||||
|
||||
/* Cassette drives */
|
||||
MCFG_SPEAKER_STANDARD_MONO("cass_out")
|
||||
@ -1076,7 +1054,7 @@ static MACHINE_CONFIG_START( ti99_4a_60hz, ti99_4x_state )
|
||||
MCFG_GROM_ADD( GROM2_TAG, grom2_config )
|
||||
|
||||
// Joystick port
|
||||
MCFG_TI_JOYPORT4A_ADD( JOYPORT_TAG, joyport4a_60 )
|
||||
MCFG_TI_JOYPORT4A_ADD( JOYPORT_TAG, 60 )
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -1093,19 +1071,23 @@ static MACHINE_CONFIG_START( ti99_4a_50hz, ti99_4x_state )
|
||||
/* Main board */
|
||||
MCFG_TMS9901_ADD(TMS9901_TAG, tms9901_wiring_ti99_4a, 3000000)
|
||||
MCFG_DMUX_ADD( DATAMUX_TAG, datamux_conf )
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG, console_cartslot )
|
||||
MCFG_DMUX_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_dmux) )
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG )
|
||||
MCFG_GROMPORT_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_cart) )
|
||||
MCFG_GROMPORT_RESET_HANDLER( WRITELINE(ti99_4x_state, console_reset) )
|
||||
|
||||
/* Software list */
|
||||
MCFG_SOFTWARE_LIST_ADD("cart_list_ti99", "ti99_cart")
|
||||
|
||||
/* Peripheral expansion box */
|
||||
MCFG_PERIBOX_ADD( PERIBOX_TAG, 0x70000 )
|
||||
MCFG_DEVICE_ADD( PERIBOX_TAG, PERIBOX, 0)
|
||||
MCFG_PERIBOX_INTA_HANDLER( WRITELINE(ti99_4x_state, extint) )
|
||||
MCFG_PERIBOX_INTB_HANDLER( WRITELINE(ti99_4x_state, notconnected) )
|
||||
MCFG_PERIBOX_READY_HANDLER( DEVWRITELINE(DATAMUX_TAG, ti99_datamux_device, ready_line) )
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_TI_SOUND_94624_ADD( TISOUND_TAG, sound_conf )
|
||||
MCFG_TI_SOUND_94624_ADD( TISOUND_TAG )
|
||||
MCFG_TI_SOUND_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_sound) )
|
||||
|
||||
/* Cassette drives */
|
||||
MCFG_SPEAKER_STANDARD_MONO("cass_out")
|
||||
@ -1121,7 +1103,7 @@ static MACHINE_CONFIG_START( ti99_4a_50hz, ti99_4x_state )
|
||||
MCFG_GROM_ADD( GROM2_TAG, grom2_config )
|
||||
|
||||
// Joystick port
|
||||
MCFG_TI_JOYPORT4A_ADD( JOYPORT_TAG, joyport4a_50 )
|
||||
MCFG_TI_JOYPORT4A_ADD( JOYPORT_TAG, 50 )
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -1155,19 +1137,23 @@ static MACHINE_CONFIG_START( ti99_4qi_60hz, ti99_4x_state )
|
||||
/* Main board */
|
||||
MCFG_TMS9901_ADD(TMS9901_TAG, tms9901_wiring_ti99_4a, 3000000)
|
||||
MCFG_DMUX_ADD( DATAMUX_TAG, datamux_conf )
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG, console_cartslot )
|
||||
MCFG_DMUX_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_dmux) )
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG )
|
||||
MCFG_GROMPORT_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_cart) )
|
||||
MCFG_GROMPORT_RESET_HANDLER( WRITELINE(ti99_4x_state, console_reset) )
|
||||
|
||||
/* Software list */
|
||||
MCFG_SOFTWARE_LIST_ADD("cart_list_ti99", "ti99_cart")
|
||||
|
||||
/* Peripheral expansion box */
|
||||
MCFG_PERIBOX_ADD( PERIBOX_TAG, 0x70000 )
|
||||
MCFG_DEVICE_ADD( PERIBOX_TAG, PERIBOX, 0)
|
||||
MCFG_PERIBOX_INTA_HANDLER( WRITELINE(ti99_4x_state, extint) )
|
||||
MCFG_PERIBOX_INTB_HANDLER( WRITELINE(ti99_4x_state, notconnected) )
|
||||
MCFG_PERIBOX_READY_HANDLER( DEVWRITELINE(DATAMUX_TAG, ti99_datamux_device, ready_line) )
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_TI_SOUND_94624_ADD( TISOUND_TAG, sound_conf )
|
||||
MCFG_TI_SOUND_94624_ADD( TISOUND_TAG )
|
||||
MCFG_TI_SOUND_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_sound) )
|
||||
|
||||
/* Cassette drives */
|
||||
MCFG_SPEAKER_STANDARD_MONO("cass_out")
|
||||
@ -1183,7 +1169,7 @@ static MACHINE_CONFIG_START( ti99_4qi_60hz, ti99_4x_state )
|
||||
MCFG_GROM_ADD( GROM2_TAG, grom2_config )
|
||||
|
||||
// Joystick port
|
||||
MCFG_TI_JOYPORT4A_ADD( JOYPORT_TAG, joyport4a_60 )
|
||||
MCFG_TI_JOYPORT4A_ADD( JOYPORT_TAG, 60 )
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -1200,19 +1186,23 @@ static MACHINE_CONFIG_START( ti99_4qi_50hz, ti99_4x_state )
|
||||
/* Main board */
|
||||
MCFG_TMS9901_ADD(TMS9901_TAG, tms9901_wiring_ti99_4a, 3000000)
|
||||
MCFG_DMUX_ADD( DATAMUX_TAG, datamux_conf )
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG, console_cartslot )
|
||||
MCFG_DMUX_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_dmux) )
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG )
|
||||
MCFG_GROMPORT_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_cart) )
|
||||
MCFG_GROMPORT_RESET_HANDLER( WRITELINE(ti99_4x_state, console_reset) )
|
||||
|
||||
/* Software list */
|
||||
MCFG_SOFTWARE_LIST_ADD("cart_list_ti99", "ti99_cart")
|
||||
|
||||
/* Peripheral expansion box */
|
||||
MCFG_PERIBOX_ADD( PERIBOX_TAG, 0x70000 )
|
||||
MCFG_DEVICE_ADD( PERIBOX_TAG, PERIBOX, 0)
|
||||
MCFG_PERIBOX_INTA_HANDLER( WRITELINE(ti99_4x_state, extint) )
|
||||
MCFG_PERIBOX_INTB_HANDLER( WRITELINE(ti99_4x_state, notconnected) )
|
||||
MCFG_PERIBOX_READY_HANDLER( DEVWRITELINE(DATAMUX_TAG, ti99_datamux_device, ready_line) )
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_TI_SOUND_94624_ADD( TISOUND_TAG, sound_conf )
|
||||
MCFG_TI_SOUND_94624_ADD( TISOUND_TAG )
|
||||
MCFG_TI_SOUND_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_sound) )
|
||||
|
||||
/* Cassette drives */
|
||||
MCFG_SPEAKER_STANDARD_MONO("cass_out")
|
||||
@ -1228,7 +1218,7 @@ static MACHINE_CONFIG_START( ti99_4qi_50hz, ti99_4x_state )
|
||||
MCFG_GROM_ADD( GROM2_TAG, grom2_config )
|
||||
|
||||
// Joystick port
|
||||
MCFG_TI_JOYPORT4A_ADD( JOYPORT_TAG, joyport4a_50 )
|
||||
MCFG_TI_JOYPORT4A_ADD( JOYPORT_TAG, 50 )
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -1261,19 +1251,23 @@ static MACHINE_CONFIG_START( ti99_4ev_60hz, ti99_4x_state )
|
||||
/* Main board */
|
||||
MCFG_TMS9901_ADD(TMS9901_TAG, tms9901_wiring_ti99_4a, 3000000)
|
||||
MCFG_DMUX_ADD( DATAMUX_TAG, datamux_conf_ev )
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG, console_cartslot )
|
||||
MCFG_DMUX_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_dmux) )
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG )
|
||||
MCFG_GROMPORT_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_cart) )
|
||||
MCFG_GROMPORT_RESET_HANDLER( WRITELINE(ti99_4x_state, console_reset) )
|
||||
|
||||
/* Software list */
|
||||
MCFG_SOFTWARE_LIST_ADD("cart_list_ti99", "ti99_cart")
|
||||
|
||||
/* Peripheral expansion box */
|
||||
MCFG_PERIBOX_EV_ADD( PERIBOX_TAG, 0x70000 )
|
||||
MCFG_DEVICE_ADD( PERIBOX_TAG, PERIBOX_EV, 0)
|
||||
MCFG_PERIBOX_INTA_HANDLER( WRITELINE(ti99_4x_state, extint) )
|
||||
MCFG_PERIBOX_INTB_HANDLER( WRITELINE(ti99_4x_state, notconnected) )
|
||||
MCFG_PERIBOX_READY_HANDLER( DEVWRITELINE(DATAMUX_TAG, ti99_datamux_device, ready_line) )
|
||||
|
||||
/* sound hardware */
|
||||
MCFG_TI_SOUND_94624_ADD( TISOUND_TAG, sound_conf )
|
||||
MCFG_TI_SOUND_94624_ADD( TISOUND_TAG )
|
||||
MCFG_TI_SOUND_READY_HANDLER( WRITELINE(ti99_4x_state, console_ready_sound) )
|
||||
|
||||
/* Cassette drives */
|
||||
MCFG_SPEAKER_STANDARD_MONO("cass_out")
|
||||
@ -1289,7 +1283,7 @@ static MACHINE_CONFIG_START( ti99_4ev_60hz, ti99_4x_state )
|
||||
MCFG_GROM_ADD( GROM2_TAG, grom2_config )
|
||||
|
||||
// Joystick port
|
||||
MCFG_TI_JOYPORT4A_ADD( JOYPORT_TAG, joyport4a_60 )
|
||||
MCFG_TI_JOYPORT4A_ADD( JOYPORT_TAG, 60 )
|
||||
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
@ -1349,10 +1343,10 @@ ROM_START(ti99_4ev)
|
||||
ROM_END
|
||||
|
||||
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */
|
||||
COMP( 1979, ti99_4, 0, 0, ti99_4_60hz, ti99_4, driver_device, 0, "Texas Instruments", "TI99/4 Home Computer (US)" , 0)
|
||||
COMP( 1980, ti99_4e, ti99_4, 0, ti99_4_50hz, ti99_4, driver_device, 0, "Texas Instruments", "TI99/4 Home Computer (Europe)" , 0)
|
||||
COMP( 1981, ti99_4a, 0, 0, ti99_4a_60hz, ti99_4a, driver_device, 0, "Texas Instruments", "TI99/4A Home Computer (US)" , 0)
|
||||
COMP( 1981, ti99_4ae, ti99_4a, 0, ti99_4a_50hz, ti99_4a, driver_device, 0, "Texas Instruments", "TI99/4A Home Computer (Europe)" , 0)
|
||||
COMP( 1983, ti99_4qe, ti99_4qi, 0, ti99_4qi_50hz, ti99_4a, driver_device, 0, "Texas Instruments", "TI99/4QI Home Computer (Europe)" , 0)
|
||||
COMP( 1983, ti99_4qi, 0, 0, ti99_4qi_60hz, ti99_4a, driver_device, 0, "Texas Instruments", "TI99/4QI Home Computer" , 0)
|
||||
COMP( 1994, ti99_4ev, ti99_4a, 0, ti99_4ev_60hz,ti99_4a, driver_device, 0, "Texas Instruments", "TI99/4A Home Computer with EVPC" , 0)
|
||||
COMP( 1979, ti99_4, 0, 0, ti99_4_60hz, ti99_4, driver_device, 0, "Texas Instruments", "TI-99/4 Home Computer (US)" , 0)
|
||||
COMP( 1980, ti99_4e, ti99_4, 0, ti99_4_50hz, ti99_4, driver_device, 0, "Texas Instruments", "TI-99/4 Home Computer (Europe)" , 0)
|
||||
COMP( 1981, ti99_4a, 0, 0, ti99_4a_60hz, ti99_4a, driver_device, 0, "Texas Instruments", "TI-99/4A Home Computer (US)" , 0)
|
||||
COMP( 1981, ti99_4ae, ti99_4a, 0, ti99_4a_50hz, ti99_4a, driver_device, 0, "Texas Instruments", "TI-99/4A Home Computer (Europe)" , 0)
|
||||
COMP( 1983, ti99_4qe, ti99_4qi, 0, ti99_4qi_50hz, ti99_4a, driver_device, 0, "Texas Instruments", "TI-99/4QI Home Computer (Europe)" , 0)
|
||||
COMP( 1983, ti99_4qi, 0, 0, ti99_4qi_60hz, ti99_4a, driver_device, 0, "Texas Instruments", "TI-99/4QI Home Computer" , 0)
|
||||
COMP( 1994, ti99_4ev, ti99_4a, 0, ti99_4ev_60hz,ti99_4a, driver_device, 0, "Texas Instruments", "TI-99/4A Home Computer with EVPC" , 0)
|
||||
|
@ -517,12 +517,6 @@ GROM_LIBRARY_CONFIG8(pascal1, region_gromlib1)
|
||||
GROM_LIBRARY_CONFIG8(pascal2, region_gromlib2)
|
||||
GROM_LIBRARY_CONFIG3(pascal3, region_gromlib3)
|
||||
|
||||
static GROMPORT_CONFIG(console_cartslot)
|
||||
{
|
||||
DEVCB_DRIVER_LINE_MEMBER(ti99_8_state, console_ready_cart),
|
||||
DEVCB_DRIVER_LINE_MEMBER(ti99_8_state, console_reset)
|
||||
};
|
||||
|
||||
READ8_MEMBER( ti99_8_state::cruread )
|
||||
{
|
||||
// if (VERBOSE>6) LOG("read access to CRU address %04x\n", offset << 4);
|
||||
@ -886,11 +880,6 @@ static TMS9995_CONFIG( ti99_8_processor_config )
|
||||
NO_OVERFLOW_INT
|
||||
};
|
||||
|
||||
static TI_SOUND_CONFIG( sound_conf )
|
||||
{
|
||||
DEVCB_DRIVER_LINE_MEMBER(ti99_8_state, console_ready_sound) // READY
|
||||
};
|
||||
|
||||
/*
|
||||
Format:
|
||||
Name, mode, stop, mask, select, write, read8z function, write8 function
|
||||
@ -1003,18 +992,6 @@ static SPEECH8_CONFIG( speech_config )
|
||||
DEVCB_DRIVER_LINE_MEMBER(ti99_8_state, console_ready_speech), // READY
|
||||
};
|
||||
|
||||
static JOYPORT_CONFIG( joyport8_60 )
|
||||
{
|
||||
DEVCB_NULL,
|
||||
60
|
||||
};
|
||||
|
||||
static JOYPORT_CONFIG( joyport8_50 )
|
||||
{
|
||||
DEVCB_NULL,
|
||||
50
|
||||
};
|
||||
|
||||
MACHINE_START_MEMBER(ti99_8_state,ti99_8)
|
||||
{
|
||||
m_nready_combined = 0;
|
||||
@ -1048,16 +1025,19 @@ static MACHINE_CONFIG_START( ti99_8_60hz, ti99_8_state )
|
||||
/* Main board */
|
||||
MCFG_TMS9901_ADD( TMS9901_TAG, tms9901_wiring_ti99_8, XTAL_10_738635MHz/4.0)
|
||||
MCFG_MAINBOARD8_ADD( MAINBOARD8_TAG, mapper_conf )
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG, console_cartslot )
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG )
|
||||
MCFG_GROMPORT_READY_HANDLER( WRITELINE(ti99_8_state, console_ready_cart) )
|
||||
MCFG_GROMPORT_RESET_HANDLER( WRITELINE(ti99_8_state, console_reset) )
|
||||
|
||||
/* Peripheral expansion box */
|
||||
MCFG_PERIBOX_998_ADD( PERIBOX_TAG, 0x70000 )
|
||||
MCFG_DEVICE_ADD( PERIBOX_TAG, PERIBOX_998, 0)
|
||||
MCFG_PERIBOX_INTA_HANDLER( WRITELINE(ti99_8_state, extint) )
|
||||
MCFG_PERIBOX_INTB_HANDLER( WRITELINE(ti99_8_state, notconnected) )
|
||||
MCFG_PERIBOX_READY_HANDLER( WRITELINE(ti99_8_state, console_ready_pbox) )
|
||||
|
||||
/* Sound hardware */
|
||||
MCFG_TI_SOUND_76496_ADD( TISOUND_TAG, sound_conf )
|
||||
MCFG_TI_SOUND_76496_ADD( TISOUND_TAG )
|
||||
MCFG_TI_SOUND_READY_HANDLER( WRITELINE(ti99_8_state, console_ready_sound) )
|
||||
|
||||
/* Cassette drives */
|
||||
MCFG_SPEAKER_STANDARD_MONO("cass_out")
|
||||
@ -1079,7 +1059,7 @@ static MACHINE_CONFIG_START( ti99_8_60hz, ti99_8_state )
|
||||
MCFG_TISPEECH8_ADD(SPEECH_TAG, speech_config)
|
||||
|
||||
// Joystick port
|
||||
MCFG_TI_JOYPORT4A_ADD( JOYPORT_TAG, joyport8_60 )
|
||||
MCFG_TI_JOYPORT4A_ADD( JOYPORT_TAG, 60 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -1096,16 +1076,19 @@ static MACHINE_CONFIG_START( ti99_8_50hz, ti99_8_state )
|
||||
/* Main board */
|
||||
MCFG_TMS9901_ADD( TMS9901_TAG, tms9901_wiring_ti99_8, XTAL_10_738635MHz/4.0 )
|
||||
MCFG_MAINBOARD8_ADD( MAINBOARD8_TAG, mapper_conf )
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG, console_cartslot )
|
||||
MCFG_TI99_GROMPORT_ADD( GROMPORT_TAG )
|
||||
MCFG_GROMPORT_READY_HANDLER( WRITELINE(ti99_8_state, console_ready_cart) )
|
||||
MCFG_GROMPORT_RESET_HANDLER( WRITELINE(ti99_8_state, console_reset) )
|
||||
|
||||
/* Peripheral expansion box */
|
||||
MCFG_PERIBOX_998_ADD( PERIBOX_TAG, 0x70000 )
|
||||
MCFG_DEVICE_ADD( PERIBOX_TAG, PERIBOX_998, 0)
|
||||
MCFG_PERIBOX_INTA_HANDLER( WRITELINE(ti99_8_state, extint) )
|
||||
MCFG_PERIBOX_INTB_HANDLER( WRITELINE(ti99_8_state, notconnected) )
|
||||
MCFG_PERIBOX_READY_HANDLER( WRITELINE(ti99_8_state, console_ready_pbox) )
|
||||
|
||||
/* Sound hardware */
|
||||
MCFG_TI_SOUND_76496_ADD( TISOUND_TAG, sound_conf )
|
||||
MCFG_TI_SOUND_76496_ADD( TISOUND_TAG )
|
||||
MCFG_TI_SOUND_READY_HANDLER( WRITELINE(ti99_8_state, console_ready_sound) )
|
||||
|
||||
/* Cassette drives */
|
||||
MCFG_SPEAKER_STANDARD_MONO("cass_out")
|
||||
@ -1127,7 +1110,7 @@ static MACHINE_CONFIG_START( ti99_8_50hz, ti99_8_state )
|
||||
MCFG_TISPEECH8_ADD(SPEECH_TAG, speech_config)
|
||||
|
||||
// Joystick port
|
||||
MCFG_TI_JOYPORT4A_ADD( JOYPORT_TAG, joyport8_50 )
|
||||
MCFG_TI_JOYPORT4A_ADD( JOYPORT_TAG, 50 )
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
/*
|
||||
|
@ -75,9 +75,8 @@
|
||||
Constructor
|
||||
*/
|
||||
ti99_datamux_device::ti99_datamux_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: device_t(mconfig, DATAMUX, "Databus multiplexer", tag, owner, clock, "ti99_datamux", __FILE__)
|
||||
{
|
||||
}
|
||||
: device_t(mconfig, DATAMUX, "Databus multiplexer", tag, owner, clock, "ti99_datamux", __FILE__),
|
||||
m_ready(*this) { }
|
||||
|
||||
#define TRACE_READY 0
|
||||
#define TRACE_ACCESS 0
|
||||
@ -388,6 +387,7 @@ void ti99_datamux_device::device_start(void)
|
||||
{
|
||||
m_ram16b = NULL;
|
||||
m_muxready = ASSERT_LINE;
|
||||
m_ready.resolve();
|
||||
}
|
||||
|
||||
void ti99_datamux_device::device_stop(void)
|
||||
@ -395,14 +395,6 @@ void ti99_datamux_device::device_stop(void)
|
||||
if (m_ram16b) free(m_ram16b);
|
||||
}
|
||||
|
||||
void ti99_datamux_device::device_config_complete()
|
||||
{
|
||||
const datamux_config *conf = reinterpret_cast<const datamux_config *>(static_config());
|
||||
// Must do this here, or ready may be called too early
|
||||
// The device is built below because we need the dip switches.
|
||||
m_ready.resolve(conf->ready, *this);
|
||||
}
|
||||
|
||||
void ti99_datamux_device::device_reset(void)
|
||||
{
|
||||
const datamux_config *conf = reinterpret_cast<const datamux_config *>(static_config());
|
||||
|
@ -41,7 +41,6 @@ struct dmux_device_list_entry
|
||||
|
||||
struct datamux_config
|
||||
{
|
||||
devcb_write_line ready;
|
||||
const dmux_device_list_entry *devlist;
|
||||
};
|
||||
|
||||
@ -78,12 +77,16 @@ public:
|
||||
DECLARE_WRITE_LINE_MEMBER( dbin_in );
|
||||
DECLARE_WRITE_LINE_MEMBER( ready_line );
|
||||
|
||||
template<class _Object> static devcb2_base &static_set_ready_callback(device_t &device, _Object object)
|
||||
{
|
||||
return downcast<ti99_datamux_device &>(device).m_ready.set_callback(object);
|
||||
}
|
||||
|
||||
protected:
|
||||
/* Constructor */
|
||||
void device_start();
|
||||
void device_stop();
|
||||
void device_reset();
|
||||
void device_config_complete();
|
||||
ioport_constructor device_input_ports() const;
|
||||
|
||||
private:
|
||||
@ -107,7 +110,7 @@ private:
|
||||
void ready_join();
|
||||
|
||||
// Ready line to the CPU
|
||||
devcb_resolved_write_line m_ready;
|
||||
devcb2_write_line m_ready;
|
||||
|
||||
// Own ready state.
|
||||
line_state m_muxready;
|
||||
@ -149,3 +152,6 @@ private:
|
||||
MCFG_DEVICE_ADD(_tag, DATAMUX, 0) \
|
||||
MCFG_DEVICE_CONFIG( _devices )
|
||||
#endif
|
||||
|
||||
#define MCFG_DMUX_READY_HANDLER( _intcallb ) \
|
||||
devcb = &ti99_datamux_device::static_set_ready_callback( *device, DEVCB2_##_intcallb );
|
||||
|
@ -181,7 +181,8 @@
|
||||
#define LOG logerror
|
||||
|
||||
geneve_mapper_device::geneve_mapper_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: device_t(mconfig, GENEVE_MAPPER, "Geneve Gate Array", tag, owner, clock, "geneve_mapper", __FILE__)
|
||||
: device_t(mconfig, GENEVE_MAPPER, "Geneve Gate Array", tag, owner, clock, "geneve_mapper", __FILE__),
|
||||
m_ready(*this)
|
||||
{
|
||||
m_eprom = NULL;
|
||||
}
|
||||
@ -1161,8 +1162,6 @@ WRITE_LINE_MEMBER( geneve_mapper_device::dbin_in )
|
||||
|
||||
void geneve_mapper_device::device_start()
|
||||
{
|
||||
const geneve_mapper_config *conf = reinterpret_cast<const geneve_mapper_config *>(static_config());
|
||||
|
||||
if (VERBOSE>0) LOG("genboard: Starting Geneve mapper\n");
|
||||
// Get pointers
|
||||
m_peribox = machine().device<bus8z_device>(PERIBOX_TAG);
|
||||
@ -1171,7 +1170,7 @@ void geneve_mapper_device::device_start()
|
||||
m_sound = machine().device<bus8z_device>(TISOUND_TAG);
|
||||
m_clock = machine().device<mm58274c_device>(GCLOCK_TAG);
|
||||
|
||||
m_ready.resolve(conf->ready, *this);
|
||||
m_ready.resolve();
|
||||
|
||||
m_sram = machine().root_device().memregion(SRAM_TAG)->base();
|
||||
m_dram = machine().root_device().memregion(DRAM_TAG)->base();
|
||||
@ -1291,7 +1290,8 @@ static const UINT8 MF1_CODE[0xe] =
|
||||
};
|
||||
|
||||
geneve_keyboard_device::geneve_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: device_t(mconfig, GENEVE_KEYBOARD, "Geneve XT-style keyboard", tag, owner, clock, "geneve_keyboard", __FILE__)
|
||||
: device_t(mconfig, GENEVE_KEYBOARD, "Geneve XT-style keyboard", tag, owner, clock, "geneve_keyboard", __FILE__),
|
||||
m_interrupt(*this)
|
||||
{
|
||||
}
|
||||
|
||||
@ -1579,17 +1579,11 @@ WRITE_LINE_MEMBER( geneve_keyboard_device::reset_line )
|
||||
}
|
||||
}
|
||||
|
||||
void geneve_keyboard_device::device_config_complete()
|
||||
{
|
||||
// Resolve the callback lines to the console
|
||||
const geneve_keyboard_config *intf = reinterpret_cast<const geneve_keyboard_config *>(static_config());
|
||||
m_interrupt.resolve(intf->interrupt, *this);
|
||||
}
|
||||
|
||||
void geneve_keyboard_device::device_start()
|
||||
{
|
||||
if (VERBOSE>2) LOG("genboard: Keyboard started\n");
|
||||
m_timer = timer_alloc(0);
|
||||
m_interrupt.resolve();
|
||||
}
|
||||
|
||||
void geneve_keyboard_device::device_reset()
|
||||
|
@ -48,15 +48,6 @@ private:
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
struct geneve_keyboard_config
|
||||
{
|
||||
devcb_write_line interrupt;
|
||||
};
|
||||
|
||||
#define GENEVE_KEYBOARD_CONFIG(name) \
|
||||
const geneve_keyboard_config(name) =
|
||||
|
||||
|
||||
#define KEYQUEUESIZE 256
|
||||
#define MAXKEYMSGLENGTH 10
|
||||
#define KEYAUTOREPEATDELAY 30
|
||||
@ -71,13 +62,14 @@ public:
|
||||
DECLARE_WRITE_LINE_MEMBER( clock_control );
|
||||
UINT8 get_recent_key();
|
||||
|
||||
template<class _Object> static devcb2_base &static_set_int_callback(device_t &device, _Object object) { return downcast<geneve_keyboard_device &>(device).m_interrupt.set_callback(object); }
|
||||
|
||||
protected:
|
||||
virtual void device_start();
|
||||
virtual void device_reset();
|
||||
virtual void device_config_complete();
|
||||
virtual ioport_constructor device_input_ports() const;
|
||||
devcb_resolved_write_line m_interrupt; // Keyboard interrupt to console
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
||||
void device_start();
|
||||
void device_reset();
|
||||
ioport_constructor device_input_ports() const;
|
||||
devcb2_write_line m_interrupt; // Keyboard interrupt to console
|
||||
void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
||||
|
||||
private:
|
||||
void post_in_key_queue(int keycode);
|
||||
@ -108,17 +100,11 @@ private:
|
||||
emu_timer* m_timer;
|
||||
};
|
||||
|
||||
#define MCFG_GENEVE_KEYBOARD_ADD(_tag, _intf ) \
|
||||
MCFG_DEVICE_ADD(_tag, GENEVE_KEYBOARD, 0) \
|
||||
MCFG_DEVICE_CONFIG(_intf)
|
||||
#define MCFG_GENEVE_KBINT_HANDLER( _intcallb ) \
|
||||
devcb = &geneve_keyboard_device::static_set_int_callback( *device, DEVCB2_##_intcallb );
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
struct geneve_mapper_config
|
||||
{
|
||||
devcb_write_line ready;
|
||||
};
|
||||
|
||||
class geneve_mapper_device : public device_t
|
||||
{
|
||||
public:
|
||||
@ -142,10 +128,11 @@ public:
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER( clock_in );
|
||||
DECLARE_WRITE_LINE_MEMBER( dbin_in );
|
||||
template<class _Object> static devcb2_base &static_set_ready_callback(device_t &device, _Object object) { return downcast<geneve_mapper_device &>(device).m_ready.set_callback(object); }
|
||||
|
||||
protected:
|
||||
virtual void device_start();
|
||||
virtual void device_reset();
|
||||
void device_start();
|
||||
void device_reset();
|
||||
|
||||
private:
|
||||
// GROM simulation
|
||||
@ -194,10 +181,10 @@ private:
|
||||
int m_sram_val;
|
||||
|
||||
// Ready line to the CPU
|
||||
devcb_resolved_write_line m_ready;
|
||||
devcb2_write_line m_ready;
|
||||
|
||||
// Counter for the wait states.
|
||||
int m_waitcount;
|
||||
int m_waitcount;
|
||||
int m_ext_waitcount;
|
||||
|
||||
// Devices
|
||||
@ -213,11 +200,7 @@ private:
|
||||
UINT8* m_dram;
|
||||
};
|
||||
|
||||
#define GENEVE_MAPPER_CONFIG(name) \
|
||||
const geneve_mapper_config(name) =
|
||||
|
||||
#define MCFG_GENEVE_MAPPER_ADD(_tag, _conf ) \
|
||||
MCFG_DEVICE_ADD(_tag, GENEVE_MAPPER, 0) \
|
||||
MCFG_DEVICE_CONFIG( _conf )
|
||||
#define MCFG_GENEVE_READY_HANDLER( _intcallb ) \
|
||||
devcb = &geneve_mapper_device::static_set_ready_callback( *device, DEVCB2_##_intcallb );
|
||||
|
||||
#endif
|
||||
|
@ -131,9 +131,9 @@ gromport_device::gromport_device(const machine_config &mconfig, const char *tag,
|
||||
: bus8z_device(mconfig, GROMPORT, "Cartridge port", tag, owner, clock, "gromport", __FILE__),
|
||||
device_slot_interface(mconfig, *this),
|
||||
m_connector(NULL),
|
||||
m_reset_on_insert(true)
|
||||
{
|
||||
}
|
||||
m_reset_on_insert(true),
|
||||
m_console_ready(*this),
|
||||
m_console_reset(*this) { }
|
||||
|
||||
/* Only called for addresses 6000-7fff and GROM addresses (see datamux config) */
|
||||
READ8Z_MEMBER(gromport_device::readz)
|
||||
@ -167,6 +167,8 @@ WRITE_LINE_MEMBER(gromport_device::ready_line)
|
||||
|
||||
void gromport_device::device_start()
|
||||
{
|
||||
m_console_ready.resolve();
|
||||
m_console_reset.resolve();
|
||||
}
|
||||
|
||||
void gromport_device::device_reset()
|
||||
@ -198,9 +200,6 @@ void gromport_device::cartridge_inserted()
|
||||
|
||||
void gromport_device::device_config_complete()
|
||||
{
|
||||
const gromport_config *intf = reinterpret_cast<const gromport_config *>(static_config());
|
||||
m_console_ready.resolve(intf->ready, *this);
|
||||
m_console_reset.resolve(intf->reset, *this);
|
||||
m_connector = static_cast<ti99_cartridge_connector_device*>(first_subdevice());
|
||||
set_grom_base(0x9800, 0xf800);
|
||||
}
|
||||
|
@ -17,15 +17,6 @@
|
||||
|
||||
extern const device_type GROMPORT;
|
||||
|
||||
#define GROMPORT_CONFIG(name) \
|
||||
const gromport_config(name) =
|
||||
|
||||
struct gromport_config
|
||||
{
|
||||
devcb_write_line ready;
|
||||
devcb_write_line reset;
|
||||
};
|
||||
|
||||
class ti99_cartridge_connector_device;
|
||||
|
||||
class gromport_device : public bus8z_device, public device_slot_interface
|
||||
@ -38,6 +29,9 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(cruwrite);
|
||||
DECLARE_WRITE_LINE_MEMBER(ready_line);
|
||||
|
||||
template<class _Object> static devcb2_base &static_set_ready_callback(device_t &device, _Object object) { return downcast<gromport_device &>(device).m_console_ready.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &static_set_reset_callback(device_t &device, _Object object) { return downcast<gromport_device &>(device).m_console_reset.set_callback(object); }
|
||||
|
||||
void cartridge_inserted();
|
||||
void set_grom_base(UINT16 grombase, UINT16 grommask);
|
||||
UINT16 get_grom_base() { return m_grombase; }
|
||||
@ -51,20 +45,25 @@ protected:
|
||||
|
||||
private:
|
||||
ti99_cartridge_connector_device* m_connector;
|
||||
bool m_reset_on_insert;
|
||||
devcb_resolved_write_line m_console_reset;
|
||||
devcb_resolved_write_line m_console_ready;
|
||||
UINT16 m_grombase;
|
||||
UINT16 m_grommask;
|
||||
bool m_reset_on_insert;
|
||||
devcb2_write_line m_console_ready;
|
||||
devcb2_write_line m_console_reset;
|
||||
UINT16 m_grombase;
|
||||
UINT16 m_grommask;
|
||||
};
|
||||
|
||||
SLOT_INTERFACE_EXTERN(gromport);
|
||||
|
||||
#define MCFG_TI99_GROMPORT_ADD( _tag, _conf ) \
|
||||
#define MCFG_TI99_GROMPORT_ADD( _tag ) \
|
||||
MCFG_DEVICE_ADD(_tag, GROMPORT, 0) \
|
||||
MCFG_DEVICE_CONFIG(_conf) \
|
||||
MCFG_DEVICE_SLOT_INTERFACE(gromport, "single", false)
|
||||
|
||||
#define MCFG_GROMPORT_READY_HANDLER( _ready ) \
|
||||
devcb = &gromport_device::static_set_ready_callback( *device, DEVCB2_##_ready );
|
||||
|
||||
#define MCFG_GROMPORT_RESET_HANDLER( _reset ) \
|
||||
devcb = &gromport_device::static_set_reset_callback( *device, DEVCB2_##_reset );
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
class rpk;
|
||||
|
@ -41,7 +41,8 @@
|
||||
|
||||
joyport_device::joyport_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: device_t(mconfig, JOYPORT, "Joystick port", tag, owner, clock, "ti99_joyport", __FILE__),
|
||||
device_slot_interface(mconfig, *this)
|
||||
device_slot_interface(mconfig, *this),
|
||||
m_interrupt(*this)
|
||||
{
|
||||
}
|
||||
|
||||
@ -71,13 +72,15 @@ WRITE_LINE_MEMBER( joyport_device::set_interrupt )
|
||||
m_interrupt(state);
|
||||
}
|
||||
|
||||
void joyport_device::device_start()
|
||||
{
|
||||
m_interrupt.resolve();
|
||||
logerror("joyport: Set clock to %d\n", m_clock);
|
||||
}
|
||||
|
||||
void joyport_device::device_config_complete()
|
||||
{
|
||||
m_connected = static_cast<joyport_attached_device*>(first_subdevice());
|
||||
const joyport_config *conf = reinterpret_cast<const joyport_config *>(static_config());
|
||||
|
||||
m_interrupt.resolve(conf->interrupt, *this);
|
||||
m_clock = conf->vdp_clock;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -24,15 +24,6 @@
|
||||
|
||||
extern const device_type JOYPORT;
|
||||
|
||||
struct joyport_config
|
||||
{
|
||||
devcb_write_line interrupt;
|
||||
int vdp_clock;
|
||||
};
|
||||
|
||||
#define JOYPORT_CONFIG(name) \
|
||||
const joyport_config(name) =
|
||||
|
||||
class joyport_device;
|
||||
|
||||
/********************************************************************
|
||||
@ -65,12 +56,14 @@ public:
|
||||
void write_port(int data);
|
||||
void set_interrupt(int state);
|
||||
|
||||
template<class _Object> static devcb2_base &static_set_int_callback(device_t &device, _Object object) { return downcast<joyport_device &>(device).m_interrupt.set_callback(object); }
|
||||
|
||||
protected:
|
||||
virtual void device_start() { };
|
||||
virtual void device_config_complete();
|
||||
void device_start();
|
||||
void device_config_complete();
|
||||
|
||||
private:
|
||||
devcb_resolved_write_line m_interrupt;
|
||||
devcb2_write_line m_interrupt;
|
||||
joyport_attached_device* m_connected;
|
||||
};
|
||||
|
||||
@ -78,19 +71,19 @@ SLOT_INTERFACE_EXTERN(joystick_port);
|
||||
SLOT_INTERFACE_EXTERN(joystick_port_994);
|
||||
SLOT_INTERFACE_EXTERN(joystick_port_gen);
|
||||
|
||||
#define MCFG_GENEVE_JOYPORT_ADD( _tag, _conf ) \
|
||||
MCFG_DEVICE_ADD(_tag, JOYPORT, 0) \
|
||||
MCFG_DEVICE_CONFIG( _conf ) \
|
||||
#define MCFG_JOYPORT_INT_HANDLER( _intcallb ) \
|
||||
devcb = &joyport_device::static_set_int_callback( *device, DEVCB2_##_intcallb );
|
||||
|
||||
#define MCFG_GENEVE_JOYPORT_ADD( _tag, _clock ) \
|
||||
MCFG_DEVICE_ADD(_tag, JOYPORT, _clock) \
|
||||
MCFG_DEVICE_SLOT_INTERFACE(joystick_port_gen, "twinjoy", false)
|
||||
|
||||
#define MCFG_TI_JOYPORT4A_ADD( _tag, _conf ) \
|
||||
MCFG_DEVICE_ADD(_tag, JOYPORT, 0) \
|
||||
MCFG_DEVICE_CONFIG( _conf ) \
|
||||
#define MCFG_TI_JOYPORT4A_ADD( _tag, _clock ) \
|
||||
MCFG_DEVICE_ADD(_tag, JOYPORT, _clock) \
|
||||
MCFG_DEVICE_SLOT_INTERFACE(joystick_port, "twinjoy", false)
|
||||
|
||||
#define MCFG_TI_JOYPORT4_ADD( _tag, _conf ) \
|
||||
MCFG_DEVICE_ADD(_tag, JOYPORT, 0) \
|
||||
MCFG_DEVICE_CONFIG( _conf ) \
|
||||
#define MCFG_TI_JOYPORT4_ADD( _tag, _clock ) \
|
||||
MCFG_DEVICE_ADD(_tag, JOYPORT, _clock) \
|
||||
MCFG_DEVICE_SLOT_INTERFACE(joystick_port_994, "twinjoy", false)
|
||||
|
||||
#endif /* __JOYPORT__ */
|
||||
|
@ -205,7 +205,7 @@ CRUCLK* 51||52 DBIN
|
||||
#define TRACE_READY 0
|
||||
|
||||
// Show emulation details
|
||||
#define TRACE_EMU 0
|
||||
#define TRACE_EMU 1
|
||||
|
||||
#define PEBSLOT2 "slot2"
|
||||
#define PEBSLOT3 "slot3"
|
||||
@ -236,6 +236,7 @@ peribox_device::peribox_device(const machine_config &mconfig, const char *tag, d
|
||||
m_datamux_ready(*this)
|
||||
{
|
||||
for (int i=2; i <= 8; i++) m_slot[i] = NULL;
|
||||
m_address_prefix = 0x70000;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -396,7 +397,7 @@ void peribox_device::device_start(void)
|
||||
m_console_intb.resolve();
|
||||
m_datamux_ready.resolve();
|
||||
|
||||
if (TRACE_EMU) logerror("Prefix set to %05x\n", m_address_prefix);
|
||||
if (TRACE_EMU) logerror("AMA/B/C address prefix set to %05x\n", m_address_prefix);
|
||||
}
|
||||
|
||||
void peribox_device::device_config_complete()
|
||||
@ -465,6 +466,7 @@ machine_config_constructor peribox_device::device_mconfig_additions() const
|
||||
peribox_gen_device::peribox_gen_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: peribox_device(mconfig, PERIBOX_GEN, "Peripheral expansion box Geneve", tag, owner, clock, "peribox_gen", __FILE__)
|
||||
{
|
||||
m_address_prefix = 0x00000;
|
||||
};
|
||||
|
||||
// The BwG controller will not run with the Geneve due to its wait state
|
||||
@ -519,6 +521,7 @@ machine_config_constructor peribox_gen_device::device_mconfig_additions() const
|
||||
peribox_998_device::peribox_998_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: peribox_device(mconfig, PERIBOX_998, "Peripheral expansion box 99/8", tag, owner, clock, "peribox_998", __FILE__)
|
||||
{
|
||||
m_address_prefix = 0x70000;
|
||||
};
|
||||
|
||||
// The BwG controller will not run with the TI-99/8 for the same reason why
|
||||
@ -560,6 +563,7 @@ machine_config_constructor peribox_998_device::device_mconfig_additions() const
|
||||
peribox_sg_device::peribox_sg_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: peribox_device(mconfig, PERIBOX_SG, "Peripheral expansion box SGCPU", tag, owner, clock, "peribox_sg", __FILE__)
|
||||
{
|
||||
m_address_prefix = 0x70000;
|
||||
};
|
||||
|
||||
SLOT_INTERFACE_START( peribox_slotp )
|
||||
@ -604,6 +608,7 @@ machine_config_constructor peribox_sg_device::device_mconfig_additions() const
|
||||
peribox_ev_device::peribox_ev_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: peribox_device(mconfig, PERIBOX_EV, "Peripheral expansion box EVPC", tag, owner, clock, "peribox_ev", __FILE__)
|
||||
{
|
||||
m_address_prefix = 0x70000;
|
||||
};
|
||||
|
||||
MACHINE_CONFIG_FRAGMENT( peribox_ev_device )
|
||||
@ -699,7 +704,6 @@ void peribox_slot_device::set_genmod(bool set)
|
||||
|
||||
void peribox_slot_device::device_start(void)
|
||||
{
|
||||
if (TRACE_EMU) logerror("Peribox slot started\n");
|
||||
}
|
||||
|
||||
void peribox_slot_device::device_config_complete()
|
||||
|
@ -174,8 +174,8 @@ public:
|
||||
device_t* get_drive(const char* name);
|
||||
|
||||
protected:
|
||||
virtual void device_start(void);
|
||||
virtual void device_config_complete(void);
|
||||
void device_start(void);
|
||||
void device_config_complete(void);
|
||||
|
||||
private:
|
||||
int get_index_from_tagname();
|
||||
@ -228,29 +228,6 @@ protected:
|
||||
int m_select_value;
|
||||
};
|
||||
|
||||
#define MCFG_PERIBOX_SET_PREFIX( _prefix ) \
|
||||
downcast<peribox_device *>(device)->set_prefix(_prefix);
|
||||
|
||||
#define MCFG_PERIBOX_ADD(_tag, _prefix) \
|
||||
MCFG_DEVICE_ADD(_tag, PERIBOX, 0); \
|
||||
MCFG_PERIBOX_SET_PREFIX( _prefix )
|
||||
|
||||
#define MCFG_PERIBOX_EV_ADD(_tag, _prefix) \
|
||||
MCFG_DEVICE_ADD(_tag, PERIBOX_EV, 0) ; \
|
||||
MCFG_PERIBOX_SET_PREFIX( _prefix )
|
||||
|
||||
#define MCFG_PERIBOX_SG_ADD(_tag, _prefix) \
|
||||
MCFG_DEVICE_ADD(_tag, PERIBOX_SG, 0) ; \
|
||||
MCFG_PERIBOX_SET_PREFIX( _prefix )
|
||||
|
||||
#define MCFG_PERIBOX_GEN_ADD(_tag, _prefix) \
|
||||
MCFG_DEVICE_ADD(_tag, PERIBOX_GEN, 0); \
|
||||
MCFG_PERIBOX_SET_PREFIX( _prefix )
|
||||
|
||||
#define MCFG_PERIBOX_998_ADD(_tag, _prefix) \
|
||||
MCFG_DEVICE_ADD(_tag, PERIBOX_998, 0) ; \
|
||||
MCFG_PERIBOX_SET_PREFIX( _prefix )
|
||||
|
||||
#define MCFG_PERIBOX_SLOT_ADD(_tag, _slot_intf) \
|
||||
MCFG_DEVICE_ADD(_tag, PERIBOX_SLOT, 0) \
|
||||
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, NULL, false)
|
||||
|
@ -215,8 +215,7 @@ WRITE8_MEMBER( ti_sound_system_device::write )
|
||||
|
||||
void ti_sound_system_device::device_start(void)
|
||||
{
|
||||
const ti_sound_config *conf = reinterpret_cast<const ti_sound_config *>(static_config());
|
||||
m_console_ready.resolve(conf->ready, *this);
|
||||
m_console_ready.resolve();
|
||||
m_sound_chip = subdevice<sn76496_base_device>(TISOUNDCHIP_TAG);
|
||||
}
|
||||
|
||||
|
@ -78,11 +78,6 @@ extern const device_type V9938VIDEO;
|
||||
extern const device_type TISOUND_94624;
|
||||
extern const device_type TISOUND_76496;
|
||||
|
||||
struct ti_sound_config
|
||||
{
|
||||
devcb_write_line ready;
|
||||
};
|
||||
|
||||
#define TI_SOUND_CONFIG(name) \
|
||||
const ti_sound_config(name) =
|
||||
|
||||
@ -90,20 +85,23 @@ class ti_sound_system_device : public bus8z_device
|
||||
{
|
||||
public:
|
||||
ti_sound_system_device(const machine_config &mconfig, device_type type, const char *tag, const char *name, device_t *owner, UINT32 clock, const char *shortname, const char *source)
|
||||
: bus8z_device(mconfig, type, name, tag, owner, clock, shortname, source) { };
|
||||
: bus8z_device(mconfig, type, name, tag, owner, clock, shortname, source),
|
||||
m_console_ready(*this) { };
|
||||
|
||||
// Cannot read from sound; just ignore silently
|
||||
DECLARE_READ8Z_MEMBER(readz) { };
|
||||
DECLARE_WRITE8_MEMBER(write);
|
||||
DECLARE_WRITE_LINE_MEMBER( sound_ready ); // connect to console READY
|
||||
|
||||
template<class _Object> static devcb2_base &static_set_int_callback(device_t &device, _Object object) { return downcast<ti_sound_system_device &>(device).m_console_ready.set_callback(object); }
|
||||
|
||||
protected:
|
||||
virtual void device_start(void);
|
||||
virtual machine_config_constructor device_mconfig_additions() const =0;
|
||||
|
||||
private:
|
||||
sn76496_base_device* m_sound_chip;
|
||||
devcb_resolved_write_line m_console_ready;
|
||||
sn76496_base_device* m_sound_chip;
|
||||
devcb2_write_line m_console_ready;
|
||||
};
|
||||
|
||||
/*
|
||||
@ -167,14 +165,14 @@ protected:
|
||||
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(_blank)) \
|
||||
MCFG_SCREEN_SIZE(_x, _y) \
|
||||
MCFG_SCREEN_VISIBLE_AREA(0, _x - 1, 0, _y - 1) \
|
||||
MCFG_SCREEN_PALETTE(VDP_TAG ":palette") \
|
||||
MCFG_SCREEN_PALETTE(VDP_TAG ":palette")
|
||||
#define MCFG_TI_SOUND_94624_ADD(_tag) \
|
||||
MCFG_DEVICE_ADD(_tag, TISOUND_94624, 0)
|
||||
|
||||
#define MCFG_TI_SOUND_94624_ADD(_tag, _conf) \
|
||||
MCFG_DEVICE_ADD(_tag, TISOUND_94624, 0) \
|
||||
MCFG_DEVICE_CONFIG( _conf )
|
||||
#define MCFG_TI_SOUND_76496_ADD(_tag) \
|
||||
MCFG_DEVICE_ADD(_tag, TISOUND_76496, 0)
|
||||
|
||||
#define MCFG_TI_SOUND_76496_ADD(_tag, _conf) \
|
||||
MCFG_DEVICE_ADD(_tag, TISOUND_76496, 0) \
|
||||
MCFG_DEVICE_CONFIG( _conf )
|
||||
#define MCFG_TI_SOUND_READY_HANDLER( _ready ) \
|
||||
devcb = &ti_sound_system_device::static_set_int_callback( *device, DEVCB2_##_ready );
|
||||
|
||||
#endif /* __TIVIDEO__ */
|
||||
|
Loading…
Reference in New Issue
Block a user