(MESS) mac: cleanup (nw)

This commit is contained in:
R. Belmont 2014-01-02 05:40:15 +00:00
parent e03c983836
commit 2870d782ad
5 changed files with 380 additions and 291 deletions

View File

@ -918,18 +918,6 @@ static const floppy_interface mac_floppy_interface =
NULL
};
static const cuda_interface mac_cuda_interface =
{
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 )
/* basic machine hardware */
@ -971,7 +959,7 @@ static MACHINE_CONFIG_START( mac512ke, mac_state )
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
MCFG_DEVICE_ADD(MACKBD_TAG, MACKBD, 0)
MCFG_MACKBD_ADD()
#ifdef MAC_USE_EMULATED_KBD
MCFG_MACKBD_DATAOUT_HANDLER(DEVWRITELINE("via6522_0", via6522_device, write_cb2))
MCFG_MACKBD_CLKOUT_HANDLER(WRITELINE(mac_state, mac_kbd_clk_in))
@ -1020,7 +1008,7 @@ static MACHINE_CONFIG_DERIVED( macse, macplus )
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b_bbadb))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
@ -1029,7 +1017,7 @@ static MACHINE_CONFIG_DERIVED( macse, macplus )
MCFG_RAM_DEFAULT_SIZE("4M")
MCFG_RAM_EXTRA_OPTIONS("2M,2560K,4M")
MCFG_DEVICE_REMOVE(MACKBD_TAG)
MCFG_MACKBD_REMOVE()
MCFG_MACPDS_BUS_ADD("sepds", "maincpu", macpds_intf)
MCFG_MACPDS_SLOT_ADD("sepds", "pds", mac_sepds_cards, NULL)
@ -1044,7 +1032,7 @@ static MACHINE_CONFIG_DERIVED( macclasc, macplus )
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b_bbadb))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
@ -1053,11 +1041,10 @@ static MACHINE_CONFIG_DERIVED( macclasc, macplus )
MCFG_RAM_DEFAULT_SIZE("4M")
MCFG_RAM_EXTRA_OPTIONS("2M,2560K,4M")
MCFG_DEVICE_REMOVE(MACKBD_TAG)
MCFG_MACKBD_REMOVE()
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( macprtb, mac_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M68000, C15M)
MCFG_CPU_PROGRAM_MAP(macprtb_map)
@ -1095,10 +1082,10 @@ static MACHINE_CONFIG_START( macprtb, mac_state )
MCFG_SCC8530_ADD("scc", C7M, line_cb_t(FUNC(mac_state::set_scc_interrupt), static_cast<mac_state *>(owner)))
MCFG_DEVICE_ADD("via6522_0", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a_pmu))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b_pmu))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a_pmu))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b_pmu))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
@ -1150,7 +1137,7 @@ static MACHINE_CONFIG_START( macii, mac_state )
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b_bbadb))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
@ -1248,6 +1235,9 @@ static MACHINE_CONFIG_DERIVED( maclc, macii )
MCFG_RAM_DEFAULT_SIZE("2M")
MCFG_RAM_EXTRA_OPTIONS("4M,6M,8M,10M")
MCFG_DEVICE_MODIFY("via6522_0")
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b_egadb))
MCFG_NUBUS_SLOT_REMOVE("nb9")
MCFG_NUBUS_SLOT_REMOVE("nba")
MCFG_NUBUS_SLOT_REMOVE("nbb")
@ -1263,7 +1253,11 @@ 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, mac_egret_interface)
MCFG_EGRET_ADD(EGRET_341S0850)
MCFG_EGRET_RESET_CALLBACK(WRITELINE(mac_state, cuda_reset_w))
MCFG_EGRET_LINECHANGE_CALLBACK(WRITELINE(mac_state, adb_linechange_w))
MCFG_EGRET_VIA_CLOCK_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb1))
MCFG_EGRET_VIA_DATA_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb2))
MCFG_QUANTUM_PERFECT_CPU("maincpu")
MACHINE_CONFIG_END
@ -1281,7 +1275,14 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( maccclas, maclc2 )
MCFG_EGRET_REMOVE()
MCFG_CUDA_ADD(CUDA_341S0788, mac_cuda_interface) // should be 0417, but that version won't sync up properly with the '030 right now
MCFG_CUDA_ADD(CUDA_341S0788) // should be 0417, but that version won't sync up properly with the '030 right now
MCFG_CUDA_RESET_CALLBACK(WRITELINE(mac_state, cuda_reset_w))
MCFG_CUDA_LINECHANGE_CALLBACK(WRITELINE(mac_state, adb_linechange_w))
MCFG_CUDA_VIA_CLOCK_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb1))
MCFG_CUDA_VIA_DATA_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb2))
MCFG_DEVICE_MODIFY("via6522_0")
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b_cdadb))
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( maclc3, maclc )
@ -1304,13 +1305,24 @@ 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, mac_egret_interface)
MCFG_EGRET_REPLACE(EGRET_341S0851)
MCFG_EGRET_RESET_CALLBACK(WRITELINE(mac_state, cuda_reset_w))
MCFG_EGRET_LINECHANGE_CALLBACK(WRITELINE(mac_state, adb_linechange_w))
MCFG_EGRET_VIA_CLOCK_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb1))
MCFG_EGRET_VIA_DATA_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb2))
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( maclc520, maclc3 )
MCFG_EGRET_REMOVE()
MCFG_CUDA_ADD(CUDA_341S0060, mac_cuda_interface)
MCFG_CUDA_ADD(CUDA_341S0060)
MCFG_CUDA_RESET_CALLBACK(WRITELINE(mac_state, cuda_reset_w))
MCFG_CUDA_LINECHANGE_CALLBACK(WRITELINE(mac_state, adb_linechange_w))
MCFG_CUDA_VIA_CLOCK_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb1))
MCFG_CUDA_VIA_DATA_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb2))
MCFG_DEVICE_MODIFY("via6522_0")
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b_cdadb))
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( maciivx, maclc )
@ -1334,7 +1346,11 @@ 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, mac_egret_interface)
MCFG_EGRET_REPLACE(EGRET_341S0851)
MCFG_EGRET_RESET_CALLBACK(WRITELINE(mac_state, cuda_reset_w))
MCFG_EGRET_LINECHANGE_CALLBACK(WRITELINE(mac_state, adb_linechange_w))
MCFG_EGRET_VIA_CLOCK_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb1))
MCFG_EGRET_VIA_DATA_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb2))
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( maciivi, maclc )
@ -1358,7 +1374,11 @@ 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, mac_egret_interface)
MCFG_EGRET_REPLACE(EGRET_341S0851)
MCFG_EGRET_RESET_CALLBACK(WRITELINE(mac_state, cuda_reset_w))
MCFG_EGRET_LINECHANGE_CALLBACK(WRITELINE(mac_state, adb_linechange_w))
MCFG_EGRET_VIA_CLOCK_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb1))
MCFG_EGRET_VIA_DATA_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb2))
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( maciix, macii )
@ -1421,7 +1441,7 @@ static MACHINE_CONFIG_START( macse30, mac_state )
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b_bbadb))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
@ -1479,17 +1499,17 @@ static MACHINE_CONFIG_START( macpb140, mac_state )
MCFG_DEVICE_ADD("via6522_0", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b_via2pmu))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b_via2pmu))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
MCFG_DEVICE_ADD("via6522_1", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state, mac_via2_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state, mac_via2_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via2_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via2_out_b))
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state, mac_via2_in_a_pmu))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state, mac_via2_in_b_pmu))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via2_out_a_pmu))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via2_out_b_pmu))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via2_irq))
/* internal ram */
@ -1559,17 +1579,17 @@ static MACHINE_CONFIG_START( macpb160, mac_state )
MCFG_DEVICE_ADD("via6522_0", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b_via2pmu))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b_via2pmu))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
MCFG_DEVICE_ADD("via6522_1", VIA6522, 783360)
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state, mac_via2_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state, mac_via2_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via2_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via2_out_b))
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state, mac_via2_in_a_pmu))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state, mac_via2_in_b_pmu))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via2_out_a_pmu))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via2_out_b_pmu))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via2_irq))
/* internal ram */
@ -1634,7 +1654,11 @@ 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, mac_egret_interface)
MCFG_EGRET_REPLACE(EGRET_341S0851)
MCFG_EGRET_RESET_CALLBACK(WRITELINE(mac_state, cuda_reset_w))
MCFG_EGRET_LINECHANGE_CALLBACK(WRITELINE(mac_state, adb_linechange_w))
MCFG_EGRET_VIA_CLOCK_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb1))
MCFG_EGRET_VIA_DATA_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb2))
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( maciici, macii )
@ -1697,7 +1721,14 @@ 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, mac_egret_interface)
MCFG_DEVICE_MODIFY("via6522_0")
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b_egadb))
MCFG_EGRET_ADD(EGRET_344S0100)
MCFG_EGRET_RESET_CALLBACK(WRITELINE(mac_state, cuda_reset_w))
MCFG_EGRET_LINECHANGE_CALLBACK(WRITELINE(mac_state, adb_linechange_w))
MCFG_EGRET_VIA_CLOCK_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb1))
MCFG_EGRET_VIA_DATA_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb2))
MCFG_QUANTUM_PERFECT_CPU("maincpu")
MACHINE_CONFIG_END
@ -1742,7 +1773,7 @@ static MACHINE_CONFIG_START( pwrmac, mac_state )
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b_cdadb))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))
@ -1758,7 +1789,11 @@ static MACHINE_CONFIG_START( pwrmac, mac_state )
MCFG_RAM_DEFAULT_SIZE("8M")
MCFG_RAM_EXTRA_OPTIONS("16M,32M,64M,128M")
MCFG_CUDA_ADD(CUDA_341S0060, mac_cuda_interface)
MCFG_CUDA_ADD(CUDA_341S0060)
MCFG_CUDA_RESET_CALLBACK(WRITELINE(mac_state, cuda_reset_w))
MCFG_CUDA_LINECHANGE_CALLBACK(WRITELINE(mac_state, adb_linechange_w))
MCFG_CUDA_VIA_CLOCK_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb1))
MCFG_CUDA_VIA_DATA_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb2))
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( macqd700, mac_state )
@ -1799,7 +1834,7 @@ static MACHINE_CONFIG_START( macqd700, mac_state )
MCFG_VIA6522_READPA_HANDLER(READ8(mac_state,mac_via_in_a))
MCFG_VIA6522_READPB_HANDLER(READ8(mac_state,mac_via_in_b))
MCFG_VIA6522_WRITEPA_HANDLER(WRITE8(mac_state,mac_via_out_a))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b))
MCFG_VIA6522_WRITEPB_HANDLER(WRITE8(mac_state,mac_via_out_b_bbadb))
MCFG_VIA6522_CB2_HANDLER(WRITELINE(mac_state,mac_adb_via_out_cb2))
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(mac_state,mac_via_irq))

View File

@ -92,12 +92,6 @@ struct cdrom_interface pippin_cdrom =
NULL
};
static const cuda_interface mac_cuda_interface =
{
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 )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", PPC603, 66000000)
@ -135,7 +129,11 @@ static MACHINE_CONFIG_START( pippin, macpci_state )
MCFG_VIA6522_IRQ_HANDLER(WRITELINE(macpci_state,mac_via_irq))
// 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_CUDA_ADD(CUDA_341S0060)
MCFG_CUDA_RESET_CALLBACK(WRITELINE(macpci_state, cuda_reset_w))
MCFG_CUDA_LINECHANGE_CALLBACK(WRITELINE(macpci_state, cuda_adb_linechange_w))
MCFG_CUDA_VIA_CLOCK_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb1))
MCFG_CUDA_VIA_DATA_CALLBACK(DEVWRITELINE("via6522_0", via6522_device, write_cb2))
MCFG_QUANTUM_PERFECT_CPU("maincpu")
MACHINE_CONFIG_END

View File

@ -27,7 +27,6 @@
#define MAC_SCREEN_NAME "screen"
#define MAC_539X_1_TAG "scsi:539x_1"
#define MAC_539X_2_TAG "scsi:539x_2"
#define MACKBD_TAG "mackbd"
// uncomment to run i8021 keyboard in orignal Mac/512(e)/Plus
//#define MAC_USE_EMULATED_KBD (1)
@ -39,8 +38,6 @@
#define ADB_IS_EGRET_NONCLASS (mac->m_model >= MODEL_MAC_LC && mac->m_model <= MODEL_MAC_CLASSIC_II) || ((mac->m_model >= MODEL_MAC_IISI) && (mac->m_model <= MODEL_MAC_IIVI))
#define ADB_IS_CUDA ((m_model >= MODEL_MAC_COLOR_CLASSIC && m_model <= MODEL_MAC_LC_580) || ((m_model >= MODEL_MAC_QUADRA_660AV) && (m_model <= MODEL_MAC_QUADRA_630)) || (m_model >= MODEL_MAC_POWERMAC_6100))
#define ADB_IS_CUDA_NONCLASS ((mac->m_model >= MODEL_MAC_COLOR_CLASSIC && mac->m_model <= MODEL_MAC_LC_580) || ((mac->m_model >= MODEL_MAC_QUADRA_660AV) && (mac->m_model <= MODEL_MAC_QUADRA_630)) || (mac->m_model >= MODEL_MAC_POWERMAC_6100))
#define ADB_IS_PM_VIA1 (m_model >= MODEL_MAC_PORTABLE && m_model <= MODEL_MAC_PB100)
#define ADB_IS_PM_VIA2 (m_model >= MODEL_MAC_PB140 && m_model <= MODEL_MAC_PBDUO_270c)
#define ADB_IS_PM_VIA1_CLASS (m_model >= MODEL_MAC_PORTABLE && m_model <= MODEL_MAC_PB100)
#define ADB_IS_PM_VIA2_CLASS (m_model >= MODEL_MAC_PB140 && m_model <= MODEL_MAC_PBDUO_270c)
#define ADB_IS_PM_CLASS ((m_model >= MODEL_MAC_PORTABLE && m_model <= MODEL_MAC_PB100) || (m_model >= MODEL_MAC_PB140 && m_model <= MODEL_MAC_PBDUO_270c))
@ -203,7 +200,7 @@ public:
m_539x_1(*this, MAC_539X_1_TAG),
m_539x_2(*this, MAC_539X_2_TAG),
m_ncr5380(*this, "scsi:ncr5380"),
m_mackbd(*this, MACKBD_TAG),
m_mackbd(*this, MACKBD_DEFAULT_TAG),
m_rtc(*this,"rtc"),
m_mouse0(*this, "MOUSE0"),
m_mouse1(*this, "MOUSE1"),
@ -519,10 +516,23 @@ public:
DECLARE_READ8_MEMBER(mac_via_in_b);
DECLARE_WRITE8_MEMBER(mac_via_out_a);
DECLARE_WRITE8_MEMBER(mac_via_out_b);
DECLARE_READ8_MEMBER(mac_via_in_a_pmu);
DECLARE_READ8_MEMBER(mac_via_in_b_pmu);
DECLARE_WRITE8_MEMBER(mac_via_out_a_pmu);
DECLARE_WRITE8_MEMBER(mac_via_out_b_pmu);
DECLARE_WRITE8_MEMBER(mac_via_out_b_bbadb);
DECLARE_WRITE8_MEMBER(mac_via_out_b_egadb);
DECLARE_WRITE8_MEMBER(mac_via_out_b_cdadb);
DECLARE_READ8_MEMBER(mac_via_in_b_via2pmu);
DECLARE_WRITE8_MEMBER(mac_via_out_b_via2pmu);
DECLARE_READ8_MEMBER(mac_via2_in_a);
DECLARE_READ8_MEMBER(mac_via2_in_b);
DECLARE_WRITE8_MEMBER(mac_via2_out_a);
DECLARE_WRITE8_MEMBER(mac_via2_out_b);
DECLARE_READ8_MEMBER(mac_via2_in_a_pmu);
DECLARE_READ8_MEMBER(mac_via2_in_b_pmu);
DECLARE_WRITE8_MEMBER(mac_via2_out_a_pmu);
DECLARE_WRITE8_MEMBER(mac_via2_out_b_pmu);
DECLARE_WRITE_LINE_MEMBER(mac_kbd_clk_in);
void mac_state_load();
DECLARE_WRITE_LINE_MEMBER(mac_via_irq);

View File

@ -1185,13 +1185,6 @@ READ8_MEMBER(mac_state::mac_via_in_a)
switch (m_model)
{
case MODEL_MAC_PORTABLE:
case MODEL_MAC_PB100:
#if LOG_ADB
// printf("Read PM data %x\n", m_pm_data_recv);
#endif
return m_pm_data_recv;
case MODEL_MAC_CLASSIC:
case MODEL_MAC_II:
case MODEL_MAC_II_FDHD:
@ -1244,57 +1237,55 @@ READ8_MEMBER(mac_state::mac_via_in_a)
return 0x80;
}
READ8_MEMBER(mac_state::mac_via_in_a_pmu)
{
// printf("VIA1 IN_A (PC %x)\n", m_maincpu->safe_pc());
#if LOG_ADB
// printf("Read PM data %x\n", m_pm_data_recv);
#endif
return m_pm_data_recv;
}
READ8_MEMBER(mac_state::mac_via_in_b)
{
int val = 0;
// portable/PB100 is pretty different
if (m_model >= MODEL_MAC_PORTABLE && m_model <= MODEL_MAC_PB100)
/* video beam in display (! VBLANK && ! HBLANK basically) */
if (machine().primary_screen)
{
// printf("Read VIA B: PM_ACK %x\n", m_pm_ack);
val = 0x80 | 0x04 | m_pm_ack; // SCC wait/request (bit 2 must be set at 900c1a or startup tests always fail)
if (machine().primary_screen->vpos() >= MAC_V_VIS)
val |= 0x40;
}
if (ADB_IS_BITBANG_CLASS)
{
val |= m_adb_state<<4;
if (!m_adb_irq_pending)
{
val |= 0x08;
}
val |= m_rtc->data_r();
}
else if (ADB_IS_EGRET)
{
val |= m_egret->get_xcvr_session()<<3;
}
else if (ADB_IS_CUDA)
{
val |= m_cuda->get_treq()<<3;
}
else
{
/* video beam in display (! VBLANK && ! HBLANK basically) */
if (machine().primary_screen)
{
if (machine().primary_screen->vpos() >= MAC_V_VIS)
val |= 0x40;
}
if (m_mouse_bit_y) /* Mouse Y2 */
val |= 0x20;
if (m_mouse_bit_x) /* Mouse X2 */
val |= 0x10;
if ((m_mouse0->read() & 0x01) == 0)
val |= 0x08;
if (ADB_IS_BITBANG_CLASS)
{
val |= m_adb_state<<4;
if (!m_adb_irq_pending)
{
val |= 0x08;
}
val |= m_rtc->data_r();
}
else if (ADB_IS_EGRET)
{
val |= m_egret->get_xcvr_session()<<3;
}
else if (ADB_IS_CUDA)
{
val |= m_cuda->get_treq()<<3;
}
else
{
if (m_mouse_bit_y) /* Mouse Y2 */
val |= 0x20;
if (m_mouse_bit_x) /* Mouse X2 */
val |= 0x10;
if ((m_mouse0->read() & 0x01) == 0)
val |= 0x08;
if (!ADB_IS_PM_CLASS)
{
val |= m_rtc->data_r();
}
}
val |= m_rtc->data_r();
}
// printf("VIA1 IN_B = %02x (PC %x)\n", val, m_maincpu->safe_pc());
@ -1302,21 +1293,39 @@ READ8_MEMBER(mac_state::mac_via_in_b)
return val;
}
READ8_MEMBER(mac_state::mac_via_in_b_via2pmu)
{
int val = 0;
// TODO: is this valid for VIA2 PMU machines?
/* video beam in display (! VBLANK && ! HBLANK basically) */
if (machine().primary_screen)
{
if (machine().primary_screen->vpos() >= MAC_V_VIS)
val |= 0x40;
}
// printf("VIA1 IN_B = %02x (PC %x)\n", val, m_maincpu->safe_pc());
return val;
}
READ8_MEMBER(mac_state::mac_via_in_b_pmu)
{
int val = 0;
// printf("Read VIA B: PM_ACK %x\n", m_pm_ack);
val = 0x80 | 0x04 | m_pm_ack; // SCC wait/request (bit 2 must be set at 900c1a or startup tests always fail)
// printf("VIA1 IN_B = %02x (PC %x)\n", val, m_maincpu->safe_pc());
return val;
}
WRITE8_MEMBER(mac_state::mac_via_out_a)
{
mac_sound_device *sound = machine().device<mac_sound_device>("custom");
device_t *fdc = machine().device("fdc");
// printf("VIA1 OUT A: %02x (PC %x)\n", data, m_maincpu->safe_pc());
if (ADB_IS_PM_VIA1)
{
#if LOG_ADB
// printf("%02x to PM\n", data);
#endif
m_pm_data_send = data;
return;
}
set_scc_waitrequest((data & 0x80) >> 7);
m_screen_buffer = (data & 0x40) >> 6;
sony_set_sel_line(fdc,(data & 0x20) >> 5);
@ -1344,80 +1353,36 @@ WRITE8_MEMBER(mac_state::mac_via_out_a)
}
}
WRITE8_MEMBER(mac_state::mac_via_out_a_pmu)
{
// printf("VIA1 OUT A: %02x (PC %x)\n", data, m_maincpu->safe_pc());
#if LOG_ADB
// printf("%02x to PM\n", data);
#endif
m_pm_data_send = data;
return;
}
WRITE8_MEMBER(mac_state::mac_via_out_b)
{
mac_sound_device *sound = machine().device<mac_sound_device>("custom");
// printf("VIA1 OUT B: %02x (PC %x)\n", data, m_maincpu->safe_pc());
if (ADB_IS_PM_VIA1)
{
device_t *fdc = machine().device("fdc");
sony_set_sel_line(fdc,(data & 0x20) >> 5);
m_drive_select = ((data & 0x10) >> 4);
if ((data & 1) && !(m_pm_req & 1))
{
#if LOG_ADB
printf("PM: 68k dropping /REQ\n");
#endif
if (m_pm_state == 0) // do this in receive state only
{
m_pm_data_recv = 0xff;
m_pm_ack |= 2;
// check if length byte matches
if ((m_pm_dptr >= 2) && (m_pm_cmd[1] == (m_pm_dptr-2)))
{
pmu_exec();
#if LOG_ADB
printf("PMU exec: command %02x length %d\n", m_pm_cmd[0], m_pm_cmd[1]);
#endif
}
}
}
else if (!(data & 1) && (m_pm_req & 1))
{
if (m_pm_state == 0)
{
#if LOG_ADB
printf("PM: 68k asserting /REQ, clocking in byte [%d] = %02x\n", m_pm_dptr, m_pm_data_send);
#endif
m_pm_ack &= ~2; // clear, we're waiting for more bytes
m_pm_cmd[m_pm_dptr++] = m_pm_data_send;
}
else // receiving, so this is different
{
m_pm_data_recv = m_pm_out[m_pm_sptr++];
m_pm_slen--;
m_pm_ack |= 2; // raise ACK to indicate available byte
#if LOG_ADB
printf("PM: 68k asserted /REQ, sending byte %02x\n", m_pm_data_recv);
#endif
// another byte to send?
if (m_pm_slen)
{
m_pmu_send_timer->adjust(attotime(0, ATTOSECONDS_IN_USEC(100)));
}
else
{
m_pm_state = 0; // back to receive state
m_pmu_send_timer->adjust(attotime::never);
}
}
}
m_pm_req = data & 1;
return;
}
if (AUDIO_IS_CLASSIC)
{
sound->enable_sound((data & 0x80) == 0);
}
m_rtc->ce_w((data & 0x04)>>2);
m_rtc->data_w(data & 0x01);
m_rtc->clk_w((data >> 1) & 0x01);
}
WRITE8_MEMBER(mac_state::mac_via_out_b_bbadb)
{
// printf("VIA1 OUT B: %02x (PC %x)\n", data, m_maincpu->safe_pc());
// SE and Classic have SCSI enable/disable here
if ((m_model == MODEL_MAC_SE) || (m_model == MODEL_MAC_CLASSIC))
{
@ -1437,36 +1402,103 @@ WRITE8_MEMBER(mac_state::mac_via_out_b)
}
}
if (ADB_IS_BITBANG_CLASS)
{
mac_adb_newaction((data & 0x30) >> 4);
mac_adb_newaction((data & 0x30) >> 4);
m_rtc->ce_w((data & 0x04)>>2);
m_rtc->data_w(data & 0x01);
m_rtc->clk_w((data >> 1) & 0x01);
}
else if (ADB_IS_EGRET)
m_rtc->ce_w((data & 0x04)>>2);
m_rtc->data_w(data & 0x01);
m_rtc->clk_w((data >> 1) & 0x01);
}
WRITE8_MEMBER(mac_state::mac_via_out_b_egadb)
{
// printf("VIA1 OUT B: %02x (PC %x)\n", data, m_maincpu->safe_pc());
#if LOG_ADB
printf("68K: New Egret state: SS %d VF %d (PC %x)\n", (data>>5)&1, (data>>4)&1, space.device().safe_pc());
#endif
m_egret->set_via_full((data&0x10) ? 1 : 0);
m_egret->set_sys_session((data&0x20) ? 1 : 0);
}
WRITE8_MEMBER(mac_state::mac_via_out_b_cdadb)
{
// printf("VIA1 OUT B: %02x (PC %x)\n", data, m_maincpu->safe_pc());
#if LOG_ADB
printf("68K: New Cuda state: TIP %d BYTEACK %d (PC %x)\n", (data>>5)&1, (data>>4)&1, space.device().safe_pc());
#endif
m_cuda->set_byteack((data&0x10) ? 1 : 0);
m_cuda->set_tip((data&0x20) ? 1 : 0);
}
WRITE8_MEMBER(mac_state::mac_via_out_b_via2pmu)
{
// printf("VIA1 OUT B: %02x (PC %x)\n", data, m_maincpu->safe_pc());
}
WRITE8_MEMBER(mac_state::mac_via_out_b_pmu)
{
// printf("VIA1 OUT B: %02x (PC %x)\n", data, m_maincpu->safe_pc());
device_t *fdc = machine().device("fdc");
sony_set_sel_line(fdc,(data & 0x20) >> 5);
m_drive_select = ((data & 0x10) >> 4);
if ((data & 1) && !(m_pm_req & 1))
{
#if LOG_ADB
printf("68K: New Egret state: SS %d VF %d (PC %x)\n", (data>>5)&1, (data>>4)&1, space.device().safe_pc());
printf("PM: 68k dropping /REQ\n");
#endif
m_egret->set_via_full((data&0x10) ? 1 : 0);
m_egret->set_sys_session((data&0x20) ? 1 : 0);
if (m_pm_state == 0) // do this in receive state only
{
m_pm_data_recv = 0xff;
m_pm_ack |= 2;
// check if length byte matches
if ((m_pm_dptr >= 2) && (m_pm_cmd[1] == (m_pm_dptr-2)))
{
pmu_exec();
#if LOG_ADB
printf("PMU exec: command %02x length %d\n", m_pm_cmd[0], m_pm_cmd[1]);
#endif
}
}
}
else if (ADB_IS_CUDA)
else if (!(data & 1) && (m_pm_req & 1))
{
#if LOG_ADB
printf("68K: New Cuda state: TIP %d BYTEACK %d (PC %x)\n", (data>>5)&1, (data>>4)&1, space.device().safe_pc());
#endif
m_cuda->set_byteack((data&0x10) ? 1 : 0);
m_cuda->set_tip((data&0x20) ? 1 : 0);
}
else if (!ADB_IS_PM_CLASS)
{
m_rtc->ce_w((data & 0x04)>>2);
m_rtc->data_w(data & 0x01);
m_rtc->clk_w((data >> 1) & 0x01);
if (m_pm_state == 0)
{
#if LOG_ADB
printf("PM: 68k asserting /REQ, clocking in byte [%d] = %02x\n", m_pm_dptr, m_pm_data_send);
#endif
m_pm_ack &= ~2; // clear, we're waiting for more bytes
m_pm_cmd[m_pm_dptr++] = m_pm_data_send;
}
else // receiving, so this is different
{
m_pm_data_recv = m_pm_out[m_pm_sptr++];
m_pm_slen--;
m_pm_ack |= 2; // raise ACK to indicate available byte
#if LOG_ADB
printf("PM: 68k asserted /REQ, sending byte %02x\n", m_pm_data_recv);
#endif
// another byte to send?
if (m_pm_slen)
{
m_pmu_send_timer->adjust(attotime(0, ATTOSECONDS_IN_USEC(100)));
}
else
{
m_pm_state = 0; // back to receive state
m_pmu_send_timer->adjust(attotime::never);
}
}
}
m_pm_req = data & 1;
}
WRITE_LINE_MEMBER(mac_state::mac_via_irq)
@ -1508,7 +1540,7 @@ WRITE16_MEMBER ( mac_state::mac_via_w )
}
/* *************************************************************************
* VIA 2 (on Mac IIs and PowerMacs)
* VIA 2 (on Mac IIs, PowerBooks > 100, and PowerMacs)
* *************************************************************************/
WRITE_LINE_MEMBER(mac_state::mac_via2_irq)
@ -1549,11 +1581,8 @@ WRITE16_MEMBER ( mac_state::mac_via2_w )
READ8_MEMBER(mac_state::mac_via2_in_a)
{
UINT8 result;
if (ADB_IS_PM_VIA2)
{
result = m_pm_data_recv;
}
else if ((m_model == MODEL_MAC_QUADRA_700) || (m_model == MODEL_MAC_QUADRA_900) || (m_model == MODEL_MAC_QUADRA_950))
if ((m_model == MODEL_MAC_QUADRA_700) || (m_model == MODEL_MAC_QUADRA_900) || (m_model == MODEL_MAC_QUADRA_950))
{
result = 0x80 | m_nubus_irq_state;
}
@ -1565,22 +1594,15 @@ READ8_MEMBER(mac_state::mac_via2_in_a)
return result;
}
READ8_MEMBER(mac_state::mac_via2_in_a_pmu)
{
return m_pm_data_recv;
}
READ8_MEMBER(mac_state::mac_via2_in_b)
{
// logerror("VIA2 IN B (PC %x)\n", m_maincpu->safe_pc());
if (ADB_IS_PM_VIA2)
{
if (m_pm_ack == 2)
{
return 0xcf;
}
else
{
return 0xcd;
}
}
if ((m_model == MODEL_MAC_LC) || (m_model == MODEL_MAC_LC_II) || (m_model == MODEL_MAC_CLASSIC_II))
{
return 0x4f;
@ -1594,83 +1616,37 @@ READ8_MEMBER(mac_state::mac_via2_in_b)
return 0xcf; // indicate no NuBus transaction error
}
READ8_MEMBER(mac_state::mac_via2_in_b_pmu)
{
// logerror("VIA2 IN B (PC %x)\n", m_maincpu->safe_pc());
if (m_pm_ack == 2)
{
return 0xcf;
}
else
{
return 0xcd;
}
}
WRITE8_MEMBER(mac_state::mac_via2_out_a)
{
// logerror("VIA2 OUT A: %02x (PC %x)\n", data, m_maincpu->safe_pc());
if (ADB_IS_PM_VIA2)
{
m_pm_data_send = data;
return;
}
}
WRITE8_MEMBER(mac_state::mac_via2_out_a_pmu)
{
// logerror("VIA2 OUT A: %02x (PC %x)\n", data, m_maincpu->safe_pc());
m_pm_data_send = data;
}
WRITE8_MEMBER(mac_state::mac_via2_out_b)
{
// logerror("VIA2 OUT B: %02x (PC %x)\n", data, m_maincpu->safe_pc());
if (ADB_IS_PM_VIA2)
{
if ((data & 4) && !(m_pm_req & 4))
{
#if LOG_ADB
printf("PM: 68k dropping /REQ\n");
#endif
if (m_pm_state == 0) // do this in receive state only
{
m_pm_data_recv = 0xff;
m_pm_ack |= 2;
// check if length byte matches
if ((m_pm_dptr >= 2) && (m_pm_cmd[1] == (m_pm_dptr-2)))
{
pmu_exec();
#if LOG_ADB
printf("PMU exec: command %02x length %d\n", m_pm_cmd[0], m_pm_cmd[1]);
#endif
}
}
}
else if (!(data & 4) && (m_pm_req & 4))
{
if (m_pm_state == 0)
{
#if LOG_ADB
printf("PM: 68k asserting /REQ, clocking in byte [%d] = %02x\n", m_pm_dptr, m_pm_data_send);
#endif
m_pm_ack &= ~2; // clear, we're waiting for more bytes
m_pm_cmd[m_pm_dptr++] = m_pm_data_send;
}
else // receiving, so this is different
{
m_pm_data_recv = m_pm_out[m_pm_sptr++];
m_pm_slen--;
m_pm_ack |= 2; // raise ACK to indicate available byte
#if LOG_ADB
printf("PM: 68k asserted /REQ, sending byte %02x\n", m_pm_data_recv);
#endif
// another byte to send?
if (m_pm_slen)
{
m_pmu_send_timer->adjust(attotime(0, ATTOSECONDS_IN_USEC(100)));
}
else
{
m_pm_state = 0; // back to receive state
m_pmu_send_timer->adjust(attotime::never);
}
}
}
m_pm_req = data & 4;
return;
}
else
{
// chain 60.15 Hz to VIA1
m_via1->write_ca1(data>>7);
}
// chain 60.15 Hz to VIA1
m_via1->write_ca1(data>>7);
if (m_model == MODEL_MAC_II)
{
@ -1679,6 +1655,66 @@ WRITE8_MEMBER(mac_state::mac_via2_out_b)
}
}
WRITE8_MEMBER(mac_state::mac_via2_out_b_pmu)
{
// logerror("VIA2 OUT B PMU: %02x (PC %x)\n", data, m_maincpu->pc());
if ((data & 4) && !(m_pm_req & 4))
{
#if LOG_ADB
printf("PM: 68k dropping /REQ\n");
#endif
if (m_pm_state == 0) // do this in receive state only
{
m_pm_data_recv = 0xff;
m_pm_ack |= 2;
// check if length byte matches
if ((m_pm_dptr >= 2) && (m_pm_cmd[1] == (m_pm_dptr-2)))
{
pmu_exec();
#if LOG_ADB
printf("PMU exec: command %02x length %d\n", m_pm_cmd[0], m_pm_cmd[1]);
#endif
}
}
}
else if (!(data & 4) && (m_pm_req & 4))
{
if (m_pm_state == 0)
{
#if LOG_ADB
printf("PM: 68k asserting /REQ, clocking in byte [%d] = %02x\n", m_pm_dptr, m_pm_data_send);
#endif
m_pm_ack &= ~2; // clear, we're waiting for more bytes
m_pm_cmd[m_pm_dptr++] = m_pm_data_send;
}
else // receiving, so this is different
{
m_pm_data_recv = m_pm_out[m_pm_sptr++];
m_pm_slen--;
m_pm_ack |= 2; // raise ACK to indicate available byte
#if LOG_ADB
printf("PM: 68k asserted /REQ, sending byte %02x\n", m_pm_data_recv);
#endif
// another byte to send?
if (m_pm_slen)
{
m_pmu_send_timer->adjust(attotime(0, ATTOSECONDS_IN_USEC(100)));
}
else
{
m_pm_state = 0; // back to receive state
m_pmu_send_timer->adjust(attotime::never);
}
}
}
m_pm_req = data & 4;
}
// This signal is generated internally on RBV, V8, Sonora, VASP, Eagle, etc.
TIMER_CALLBACK_MEMBER(mac_state::mac_6015_tick)
{
@ -1704,7 +1740,6 @@ void mac_state::machine_start()
this->m_adb_timer->adjust(attotime::never);
m_pmu_int_status = 0;
}
}
if (machine().primary_screen)

View File

@ -11,6 +11,17 @@
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
#define MACKBD_DEFAULT_TAG "mackbd"
#define MCFG_MACKBD_ADD() \
MCFG_DEVICE_ADD(MACKBD_DEFAULT_TAG, MACKBD, 0)
#define MCFG_MACKBD_REPLACE() \
MCFG_DEVICE_REPLACE(MACKBD_DEFAULT_TAG, MACKBD, 0)
#define MCFG_MACKBD_REMOVE() \
MCFG_DEVICE_REMOVE(MACKBD_DEFAULT_TAG)
#define MCFG_MACKBD_CLKOUT_HANDLER(_devcb) \
devcb = &mackbd_device::set_clkout_handler(*device, DEVCB2_##_devcb);