(MESS) Some more devcb2 edits. (nw)

This commit is contained in:
Michael Zapf 2014-03-15 23:15:30 +00:00
parent 3d65a90c9e
commit 6c2a8df26a
16 changed files with 196 additions and 296 deletions

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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
/*

View File

@ -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());

View File

@ -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 );

View File

@ -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()

View File

@ -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

View File

@ -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);
}

View File

@ -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;

View File

@ -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;
}
/*****************************************************************************/

View File

@ -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__ */

View File

@ -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()

View File

@ -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)

View File

@ -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);
}

View File

@ -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__ */