(MESS) Mac: get the 6805s away from knowing mac_state internals, fixes Pippin error [R. Belmont]

This commit is contained in:
R. Belmont 2013-01-02 02:14:55 +00:00
parent f4a80a8972
commit 1eb265397a
6 changed files with 36 additions and 12 deletions

View File

@ -896,7 +896,14 @@ static const floppy_interface mac_floppy_interface =
static const cuda_interface mac_cuda_interface =
{
DEVCB_DRIVER_LINE_MEMBER(mac_state, cuda_reset_w)
DEVCB_DRIVER_LINE_MEMBER(mac_state, cuda_reset_w),
DEVCB_DRIVER_LINE_MEMBER(mac_state, adb_linechange_w)
};
static const cuda_interface mac_egret_interface =
{
DEVCB_DRIVER_LINE_MEMBER(mac_state, cuda_reset_w),
DEVCB_DRIVER_LINE_MEMBER(mac_state, adb_linechange_w)
};
static MACHINE_CONFIG_START( mac512ke, mac_state )
@ -1162,7 +1169,7 @@ static MACHINE_CONFIG_DERIVED( maclc, macii )
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MCFG_EGRET_ADD(EGRET_341S0850)
MCFG_EGRET_ADD(EGRET_341S0850, mac_egret_interface)
MCFG_QUANTUM_PERFECT_CPU("maincpu")
MACHINE_CONFIG_END
@ -1203,7 +1210,7 @@ static MACHINE_CONFIG_DERIVED( maclc3, maclc )
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
MCFG_EGRET_REPLACE(EGRET_341S0851)
MCFG_EGRET_REPLACE(EGRET_341S0851, mac_egret_interface)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( maclc520, maclc3 )
@ -1233,7 +1240,7 @@ static MACHINE_CONFIG_DERIVED( maciivx, maclc )
MCFG_RAM_DEFAULT_SIZE("4M")
MCFG_RAM_EXTRA_OPTIONS("8M,12M,16M,20M,24M,28M,32M,36M,40M,44M,48M,52M,56M,60M,64M")
MCFG_EGRET_REPLACE(EGRET_341S0851)
MCFG_EGRET_REPLACE(EGRET_341S0851, mac_egret_interface)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( maciivi, maclc )
@ -1257,7 +1264,7 @@ static MACHINE_CONFIG_DERIVED( maciivi, maclc )
MCFG_RAM_DEFAULT_SIZE("4M")
MCFG_RAM_EXTRA_OPTIONS("8M,12M,16M,20M,24M,28M,32M,36M,40M,44M,48M,52M,56M,60M,64M")
MCFG_EGRET_REPLACE(EGRET_341S0851)
MCFG_EGRET_REPLACE(EGRET_341S0851, mac_egret_interface)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( maciix, macii )
@ -1497,7 +1504,7 @@ static MACHINE_CONFIG_DERIVED( macclas2, maclc )
MCFG_RAM_DEFAULT_SIZE("10M")
MCFG_RAM_EXTRA_OPTIONS("2M,4M,6M,8M,10M")
MCFG_EGRET_REPLACE(EGRET_341S0851)
MCFG_EGRET_REPLACE(EGRET_341S0851, mac_egret_interface)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( maciici, macii )
@ -1560,7 +1567,7 @@ static MACHINE_CONFIG_DERIVED( maciisi, macii )
MCFG_RAM_DEFAULT_SIZE("2M")
MCFG_RAM_EXTRA_OPTIONS("4M,8M,16M,32M,48M,64M,128M")
MCFG_EGRET_ADD(EGRET_344S0100)
MCFG_EGRET_ADD(EGRET_344S0100, mac_egret_interface)
MCFG_QUANTUM_PERFECT_CPU("maincpu")
MACHINE_CONFIG_END

View File

@ -100,7 +100,8 @@ struct cdrom_interface pippin_cdrom =
static const cuda_interface mac_cuda_interface =
{
DEVCB_DRIVER_LINE_MEMBER(macpci_state, cuda_reset_w)
DEVCB_DRIVER_LINE_MEMBER(macpci_state, cuda_reset_w),
DEVCB_DRIVER_LINE_MEMBER(macpci_state, cuda_adb_linechange_w)
};
static MACHINE_CONFIG_START( pippin, macpci_state )
@ -136,7 +137,7 @@ static MACHINE_CONFIG_START( pippin, macpci_state )
MCFG_RAM_DEFAULT_SIZE("32M")
MCFG_VIA6522_ADD("via6522_0", C7M/10, pcimac_via6522_intf)
// MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
// MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(macpci_state::set_scc_interrupt), static_cast<macpci_state *>(owner)))
MCFG_CUDA_ADD(CUDA_341S0060, mac_cuda_interface)
MCFG_QUANTUM_PERFECT_CPU("maincpu")
MACHINE_CONFIG_END

View File

@ -230,8 +230,6 @@ public:
UINT32 m_se30_vbl_enable;
UINT8 m_nubus_irq_state;
void adb_linechange(int state, int dtime);
/* used to store the reply to most keyboard commands */
int m_keyboard_reply;
@ -385,6 +383,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(drq_539x_1_w);
DECLARE_WRITE_LINE_MEMBER(cuda_reset_w);
DECLARE_WRITE_LINE_MEMBER(adb_linechange_w);
DECLARE_DIRECT_UPDATE_MEMBER(overlay_opbaseoverride);
private:
@ -482,6 +481,7 @@ public:
TIMER_CALLBACK_MEMBER(mac_scanline_tick);
TIMER_CALLBACK_MEMBER(dafb_vbl_tick);
TIMER_CALLBACK_MEMBER(dafb_cursor_tick);
DECLARE_READ8_MEMBER(mac_via_in_cb2);
DECLARE_WRITE8_MEMBER(mac_via_out_cb2);
DECLARE_READ8_MEMBER(mac_adb_via_in_cb2);
DECLARE_WRITE8_MEMBER(mac_adb_via_out_cb2);
@ -493,6 +493,7 @@ public:
DECLARE_READ8_MEMBER(mac_via2_in_b);
DECLARE_WRITE8_MEMBER(mac_via2_out_a);
DECLARE_WRITE8_MEMBER(mac_via2_out_b);
DECLARE_WRITE_LINE_MEMBER(mac_kbd_clk_in);
};
#endif /* MAC_H_ */

View File

@ -142,6 +142,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(drq_539x_1_w);
DECLARE_WRITE_LINE_MEMBER(cuda_reset_w);
DECLARE_WRITE_LINE_MEMBER(cuda_adb_linechange_w);
// hack functions
DECLARE_READ64_MEMBER ( unk1_r );

View File

@ -1183,8 +1183,9 @@ void mac_state::adb_reset()
}
}
void mac_state::adb_linechange(int state, int dtime)
WRITE_LINE_MEMBER(mac_state::adb_linechange_w)
{
int dtime = 0;
/* static const char *states[] =
{
"idle",
@ -1203,6 +1204,15 @@ void mac_state::adb_linechange(int state, int dtime)
"srqnodata"
};*/
if (ADB_IS_EGRET)
{
dtime = m_egret->get_adb_dtime();
}
else if (ADB_IS_CUDA)
{
dtime = m_cuda->get_adb_dtime();
}
/* if (m_adb_linestate <= 12)
{
printf("linechange: %d -> %d, time %d (state %d = %s)\n", state^1, state, dtime, m_adb_linestate, states[m_adb_linestate]);

View File

@ -144,6 +144,10 @@ WRITE_LINE_MEMBER(macpci_state::cuda_reset_w)
machine().device("maincpu")->execute().set_input_line(INPUT_LINE_RESET, state);
}
WRITE_LINE_MEMBER(macpci_state::cuda_adb_linechange_w)
{
}
static void mac_driver_init(running_machine &machine, model_t model)
{
macpci_state *mac = machine.driver_data<macpci_state>();