summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/c64.cpp
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2018-05-06 00:40:40 +1000
committer Vas Crabb <vas@vastheman.com>2018-05-06 00:51:27 +1000
commit4ea3cd0bc1f54e47a0d38a47afac38101549e9ee (patch)
treebbadc20010b6bad48cf321b1c864655587e4b8ad /src/mame/drivers/c64.cpp
parentbba5127d7a73ca44fdc0dcab7286846c81206771 (diff)
Streamline machine configuration macros - everyone's a device edition.
Start replacing special device macros with additional constructors, starting with ISA, INTELLEC 4 and RS-232 buses. Allow an object finder to take on the target of another object finder. (For a combination of the previous two things in action, see either the INTELLEC 4 driver, or the Apple 2 PC Exporter card. Also check out looping over a device finder array to instantiate devices in some places. Lots of things no longer need to pass tags around.) Start supplying default clocks for things that have a standard clock or have all clocks internal. Eliminate the separate DEV versions of the DEVCB_ macros. Previously, the plain versions were a shortcut for DEVICE_SELF as the target. You can now supply a string tag (relative to current device being configured), an object finder (takes on the base and relative tag), or a reference to a device/interface (only do this if you know the device won't be replaced out from under it, but that's a safe assumption for your subdevices). In almost all cases, you can get the effect you want by supplying *this as the target. Eliminate sound and CPU versions of macros. They serve no useful purpose, provide no extra checks, make error messages longer, add indirection, and mislead newbies into thinking there's a difference. Remove a lot of now-unnecessary ":" prefixes binding things relative to machine root. Clean up some miscellaneous rot. Examples of new functionality in use in (some more subtle than others): * src/mame/drivers/intellec4.cpp * src/mame/drivers/tranz330.cpp * src/mame/drivers/osboren1.cpp * src/mame/drivers/zorba.cpp * src/mame/devices/smioc.cpp * src/devices/bus/a2bus/pc_xporter.cpp * src/devices/bus/isa/isa.h * src/devices/bus/isa/isa.h * src/devices/bus/intellec4/intellec4.h
Diffstat (limited to 'src/mame/drivers/c64.cpp')
-rw-r--r--src/mame/drivers/c64.cpp304
1 files changed, 152 insertions, 152 deletions
diff --git a/src/mame/drivers/c64.cpp b/src/mame/drivers/c64.cpp
index b9004fb54a1..25dc47a1d4b 100644
--- a/src/mame/drivers/c64.cpp
+++ b/src/mame/drivers/c64.cpp
@@ -1329,17 +1329,17 @@ void c64_state::machine_reset()
MACHINE_CONFIG_START(c64_state::ntsc)
// basic hardware
- MCFG_CPU_ADD(M6510_TAG, M6510, XTAL(14'318'181)/14)
- MCFG_CPU_PROGRAM_MAP(c64_mem)
+ MCFG_DEVICE_ADD(M6510_TAG, M6510, XTAL(14'318'181)/14)
+ MCFG_DEVICE_PROGRAM_MAP(c64_mem)
MCFG_M6502_DISABLE_DIRECT() // address decoding is 100% dynamic, no RAM/ROM banks
- MCFG_M6510_PORT_CALLBACKS(READ8(c64_state, cpu_r), WRITE8(c64_state, cpu_w))
+ MCFG_M6510_PORT_CALLBACKS(READ8(*this, c64_state, cpu_r), WRITE8(*this, c64_state, cpu_w))
MCFG_M6510_PORT_PULLS(0x17, 0xc8)
MCFG_QUANTUM_PERFECT_CPU(M6510_TAG)
// video hardware
MCFG_DEVICE_ADD(MOS6567_TAG, MOS6567, XTAL(14'318'181)/14)
MCFG_MOS6566_CPU(M6510_TAG)
- MCFG_MOS6566_IRQ_CALLBACK(WRITELINE(c64_state, vic_irq_w))
+ MCFG_MOS6566_IRQ_CALLBACK(WRITELINE(*this, c64_state, vic_irq_w))
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
MCFG_DEVICE_ADDRESS_MAP(0, vic_videoram_map)
MCFG_DEVICE_ADDRESS_MAP(1, vic_colorram_map)
@@ -1351,63 +1351,63 @@ MACHINE_CONFIG_START(c64_state::ntsc)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD(MOS6581_TAG, MOS6581, XTAL(14'318'181)/14)
- MCFG_MOS6581_POTX_CALLBACK(READ8(c64_state, sid_potx_r))
- MCFG_MOS6581_POTY_CALLBACK(READ8(c64_state, sid_poty_r))
+ MCFG_DEVICE_ADD(MOS6581_TAG, MOS6581, XTAL(14'318'181)/14)
+ MCFG_MOS6581_POTX_CALLBACK(READ8(*this, c64_state, sid_potx_r))
+ MCFG_MOS6581_POTY_CALLBACK(READ8(*this, c64_state, sid_poty_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
// devices
MCFG_PLS100_ADD(PLA_TAG)
MCFG_DEVICE_ADD(MOS6526_1_TAG, MOS6526, XTAL(14'318'181)/14)
MCFG_MOS6526_TOD(60)
- MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(c64_state, cia1_irq_w))
- MCFG_MOS6526_CNT_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_4))
- MCFG_MOS6526_SP_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_5))
- MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(c64_state, cia1_pa_r))
- MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c64_state, cia1_pb_r))
- MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c64_state, cia1_pb_w))
+ MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(*this, c64_state, cia1_irq_w))
+ MCFG_MOS6526_CNT_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_4))
+ MCFG_MOS6526_SP_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_5))
+ MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(*this, c64_state, cia1_pa_r))
+ MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(*this, c64_state, cia1_pb_r))
+ MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(*this, c64_state, cia1_pb_w))
MCFG_DEVICE_ADD(MOS6526_2_TAG, MOS6526, XTAL(14'318'181)/14)
MCFG_MOS6526_TOD(60)
- MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(c64_state, cia2_irq_w))
- MCFG_MOS6526_CNT_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_6))
- MCFG_MOS6526_SP_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_7))
- MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(c64_state, cia2_pa_r))
- MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(c64_state, cia2_pa_w))
- MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c64_state, cia2_pb_r))
- MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c64_state, cia2_pb_w))
- MCFG_MOS6526_PC_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_8))
- MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, "c1530", DEVWRITELINE(MOS6526_1_TAG, mos6526_device, flag_w))
+ MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(*this, c64_state, cia2_irq_w))
+ MCFG_MOS6526_CNT_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_6))
+ MCFG_MOS6526_SP_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_7))
+ MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(*this, c64_state, cia2_pa_r))
+ MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(*this, c64_state, cia2_pa_w))
+ MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(*this, c64_state, cia2_pb_r))
+ MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(*this, c64_state, cia2_pb_w))
+ MCFG_MOS6526_PC_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_8))
+ MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, "c1530", WRITELINE(MOS6526_1_TAG, mos6526_device, flag_w))
MCFG_CBM_IEC_ADD("c1541")
- MCFG_CBM_IEC_BUS_SRQ_CALLBACK(DEVWRITELINE(MOS6526_1_TAG, mos6526_device, flag_w))
- MCFG_CBM_IEC_BUS_ATN_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_9))
+ MCFG_CBM_IEC_BUS_SRQ_CALLBACK(WRITELINE(MOS6526_1_TAG, mos6526_device, flag_w))
+ MCFG_CBM_IEC_BUS_ATN_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_9))
MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, nullptr)
- MCFG_VCS_CONTROL_PORT_TRIGGER_CALLBACK(DEVWRITELINE(MOS6567_TAG, mos6567_device, lp_w))
+ MCFG_VCS_CONTROL_PORT_TRIGGER_CALLBACK(WRITELINE(MOS6567_TAG, mos6567_device, lp_w))
MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vcs_control_port_devices, "joy")
MCFG_C64_EXPANSION_SLOT_ADD(C64_EXPANSION_SLOT_TAG, XTAL(14'318'181)/14, c64_expansion_cards, nullptr)
- MCFG_C64_EXPANSION_SLOT_IRQ_CALLBACK(WRITELINE(c64_state, exp_irq_w))
- MCFG_C64_EXPANSION_SLOT_NMI_CALLBACK(WRITELINE(c64_state, exp_nmi_w))
- MCFG_C64_EXPANSION_SLOT_RESET_CALLBACK(WRITELINE(c64_state, exp_reset_w))
- MCFG_C64_EXPANSION_SLOT_CD_INPUT_CALLBACK(READ8(c64_state, read))
- MCFG_C64_EXPANSION_SLOT_CD_OUTPUT_CALLBACK(WRITE8(c64_state, write))
- MCFG_C64_EXPANSION_SLOT_DMA_CALLBACK(WRITELINE(c64_state, exp_dma_w))
+ MCFG_C64_EXPANSION_SLOT_IRQ_CALLBACK(WRITELINE(*this, c64_state, exp_irq_w))
+ MCFG_C64_EXPANSION_SLOT_NMI_CALLBACK(WRITELINE(*this, c64_state, exp_nmi_w))
+ MCFG_C64_EXPANSION_SLOT_RESET_CALLBACK(WRITELINE(*this, c64_state, exp_reset_w))
+ MCFG_C64_EXPANSION_SLOT_CD_INPUT_CALLBACK(READ8(*this, c64_state, read))
+ MCFG_C64_EXPANSION_SLOT_CD_OUTPUT_CALLBACK(WRITE8(*this, c64_state, write))
+ MCFG_C64_EXPANSION_SLOT_DMA_CALLBACK(WRITELINE(*this, c64_state, exp_dma_w))
MCFG_PET_USER_PORT_ADD(PET_USER_PORT_TAG, c64_user_port_cards, nullptr)
- MCFG_PET_USER_PORT_3_HANDLER(WRITELINE(c64_state, exp_reset_w))
- MCFG_PET_USER_PORT_4_HANDLER(DEVWRITELINE(MOS6526_1_TAG, mos6526_device, cnt_w))
- MCFG_PET_USER_PORT_5_HANDLER(DEVWRITELINE(MOS6526_1_TAG, mos6526_device, sp_w))
- MCFG_PET_USER_PORT_6_HANDLER(DEVWRITELINE(MOS6526_2_TAG, mos6526_device, cnt_w))
- MCFG_PET_USER_PORT_7_HANDLER(DEVWRITELINE(MOS6526_2_TAG, mos6526_device, sp_w))
- MCFG_PET_USER_PORT_9_HANDLER(DEVWRITELINE(CBM_IEC_TAG, cbm_iec_device, atn_w))
- MCFG_PET_USER_PORT_B_HANDLER(DEVWRITELINE(MOS6526_2_TAG, mos6526_device, flag_w))
- MCFG_PET_USER_PORT_C_HANDLER(WRITELINE(c64_state, write_user_pb0))
- MCFG_PET_USER_PORT_D_HANDLER(WRITELINE(c64_state, write_user_pb1))
- MCFG_PET_USER_PORT_E_HANDLER(WRITELINE(c64_state, write_user_pb2))
- MCFG_PET_USER_PORT_F_HANDLER(WRITELINE(c64_state, write_user_pb3))
- MCFG_PET_USER_PORT_H_HANDLER(WRITELINE(c64_state, write_user_pb4))
- MCFG_PET_USER_PORT_J_HANDLER(WRITELINE(c64_state, write_user_pb5))
- MCFG_PET_USER_PORT_K_HANDLER(WRITELINE(c64_state, write_user_pb6))
- MCFG_PET_USER_PORT_L_HANDLER(WRITELINE(c64_state, write_user_pb7))
- MCFG_PET_USER_PORT_M_HANDLER(WRITELINE(c64_state, write_user_pa2))
+ MCFG_PET_USER_PORT_3_HANDLER(WRITELINE(*this, c64_state, exp_reset_w))
+ MCFG_PET_USER_PORT_4_HANDLER(WRITELINE(MOS6526_1_TAG, mos6526_device, cnt_w))
+ MCFG_PET_USER_PORT_5_HANDLER(WRITELINE(MOS6526_1_TAG, mos6526_device, sp_w))
+ MCFG_PET_USER_PORT_6_HANDLER(WRITELINE(MOS6526_2_TAG, mos6526_device, cnt_w))
+ MCFG_PET_USER_PORT_7_HANDLER(WRITELINE(MOS6526_2_TAG, mos6526_device, sp_w))
+ MCFG_PET_USER_PORT_9_HANDLER(WRITELINE(CBM_IEC_TAG, cbm_iec_device, atn_w))
+ MCFG_PET_USER_PORT_B_HANDLER(WRITELINE(MOS6526_2_TAG, mos6526_device, flag_w))
+ MCFG_PET_USER_PORT_C_HANDLER(WRITELINE(*this, c64_state, write_user_pb0))
+ MCFG_PET_USER_PORT_D_HANDLER(WRITELINE(*this, c64_state, write_user_pb1))
+ MCFG_PET_USER_PORT_E_HANDLER(WRITELINE(*this, c64_state, write_user_pb2))
+ MCFG_PET_USER_PORT_F_HANDLER(WRITELINE(*this, c64_state, write_user_pb3))
+ MCFG_PET_USER_PORT_H_HANDLER(WRITELINE(*this, c64_state, write_user_pb4))
+ MCFG_PET_USER_PORT_J_HANDLER(WRITELINE(*this, c64_state, write_user_pb5))
+ MCFG_PET_USER_PORT_K_HANDLER(WRITELINE(*this, c64_state, write_user_pb6))
+ MCFG_PET_USER_PORT_L_HANDLER(WRITELINE(*this, c64_state, write_user_pb7))
+ MCFG_PET_USER_PORT_M_HANDLER(WRITELINE(*this, c64_state, write_user_pa2))
MCFG_QUICKLOAD_ADD("quickload", c64_state, cbm_c64, "p00,prg,t64", CBM_QUICKLOAD_DELAY_SECONDS)
@@ -1445,8 +1445,8 @@ MACHINE_CONFIG_START(sx64_state::ntsc_sx)
ntsc(config);
// basic hardware
- MCFG_CPU_MODIFY(M6510_TAG)
- MCFG_M6510_PORT_CALLBACKS(READ8(sx64_state, cpu_r), WRITE8(sx64_state, cpu_w))
+ MCFG_DEVICE_MODIFY(M6510_TAG)
+ MCFG_M6510_PORT_CALLBACKS(READ8(*this, sx64_state, cpu_r), WRITE8(*this, sx64_state, cpu_w))
MCFG_M6510_PORT_PULLS(0x07, 0xc0)
// devices
@@ -1474,9 +1474,9 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(c64c_state::ntsc_c)
ntsc(config);
- MCFG_SOUND_REPLACE(MOS6581_TAG, MOS8580, XTAL(14'318'181)/14)
- MCFG_MOS6581_POTX_CALLBACK(READ8(c64_state, sid_potx_r))
- MCFG_MOS6581_POTY_CALLBACK(READ8(c64_state, sid_poty_r))
+ MCFG_DEVICE_REPLACE(MOS6581_TAG, MOS8580, XTAL(14'318'181)/14)
+ MCFG_MOS6581_POTX_CALLBACK(READ8(*this, c64_state, sid_potx_r))
+ MCFG_MOS6581_POTY_CALLBACK(READ8(*this, c64_state, sid_poty_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MACHINE_CONFIG_END
@@ -1487,17 +1487,17 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(c64_state::pal)
// basic hardware
- MCFG_CPU_ADD(M6510_TAG, M6510, XTAL(17'734'472)/18)
- MCFG_CPU_PROGRAM_MAP(c64_mem)
+ MCFG_DEVICE_ADD(M6510_TAG, M6510, XTAL(17'734'472)/18)
+ MCFG_DEVICE_PROGRAM_MAP(c64_mem)
MCFG_M6502_DISABLE_DIRECT() // address decoding is 100% dynamic, no RAM/ROM banks
- MCFG_M6510_PORT_CALLBACKS(READ8(c64_state, cpu_r), WRITE8(c64_state, cpu_w))
+ MCFG_M6510_PORT_CALLBACKS(READ8(*this, c64_state, cpu_r), WRITE8(*this, c64_state, cpu_w))
MCFG_M6510_PORT_PULLS(0x17, 0xc8)
MCFG_QUANTUM_PERFECT_CPU(M6510_TAG)
// video hardware
MCFG_DEVICE_ADD(MOS6569_TAG, MOS6569, XTAL(17'734'472)/18)
MCFG_MOS6566_CPU(M6510_TAG)
- MCFG_MOS6566_IRQ_CALLBACK(WRITELINE(c64_state, vic_irq_w))
+ MCFG_MOS6566_IRQ_CALLBACK(WRITELINE(*this, c64_state, vic_irq_w))
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
MCFG_DEVICE_ADDRESS_MAP(0, vic_videoram_map)
MCFG_DEVICE_ADDRESS_MAP(1, vic_colorram_map)
@@ -1509,64 +1509,64 @@ MACHINE_CONFIG_START(c64_state::pal)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD(MOS6581_TAG, MOS6581, XTAL(17'734'472)/18)
- MCFG_MOS6581_POTX_CALLBACK(READ8(c64_state, sid_potx_r))
- MCFG_MOS6581_POTY_CALLBACK(READ8(c64_state, sid_poty_r))
+ MCFG_DEVICE_ADD(MOS6581_TAG, MOS6581, XTAL(17'734'472)/18)
+ MCFG_MOS6581_POTX_CALLBACK(READ8(*this, c64_state, sid_potx_r))
+ MCFG_MOS6581_POTY_CALLBACK(READ8(*this, c64_state, sid_poty_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
// devices
MCFG_PLS100_ADD(PLA_TAG)
MCFG_DEVICE_ADD(MOS6526_1_TAG, MOS6526, XTAL(17'734'472)/18)
MCFG_MOS6526_TOD(50)
- MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(c64_state, cia1_irq_w))
- MCFG_MOS6526_CNT_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_4))
- MCFG_MOS6526_SP_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_5))
- MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(c64_state, cia1_pa_r))
- MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(c64_state, cia1_pa_w))
- MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c64_state, cia1_pb_r))
- MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c64_state, cia1_pb_w))
+ MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(*this, c64_state, cia1_irq_w))
+ MCFG_MOS6526_CNT_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_4))
+ MCFG_MOS6526_SP_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_5))
+ MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(*this, c64_state, cia1_pa_r))
+ MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(*this, c64_state, cia1_pa_w))
+ MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(*this, c64_state, cia1_pb_r))
+ MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(*this, c64_state, cia1_pb_w))
MCFG_DEVICE_ADD(MOS6526_2_TAG, MOS6526, XTAL(17'734'472)/18)
MCFG_MOS6526_TOD(50)
- MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(c64_state, cia2_irq_w))
- MCFG_MOS6526_CNT_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_6))
- MCFG_MOS6526_SP_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_7))
- MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(c64_state, cia2_pa_r))
- MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(c64_state, cia2_pa_w))
- MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c64_state, cia2_pb_r))
- MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c64_state, cia2_pb_w))
- MCFG_MOS6526_PC_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_8))
- MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, "c1530", DEVWRITELINE(MOS6526_1_TAG, mos6526_device, flag_w))
+ MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(*this, c64_state, cia2_irq_w))
+ MCFG_MOS6526_CNT_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_6))
+ MCFG_MOS6526_SP_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_7))
+ MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(*this, c64_state, cia2_pa_r))
+ MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(*this, c64_state, cia2_pa_w))
+ MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(*this, c64_state, cia2_pb_r))
+ MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(*this, c64_state, cia2_pb_w))
+ MCFG_MOS6526_PC_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_8))
+ MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, "c1530", WRITELINE(MOS6526_1_TAG, mos6526_device, flag_w))
MCFG_CBM_IEC_ADD("c1541")
- MCFG_CBM_IEC_BUS_SRQ_CALLBACK(DEVWRITELINE(MOS6526_1_TAG, mos6526_device, flag_w))
- MCFG_CBM_IEC_BUS_ATN_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_9))
+ MCFG_CBM_IEC_BUS_SRQ_CALLBACK(WRITELINE(MOS6526_1_TAG, mos6526_device, flag_w))
+ MCFG_CBM_IEC_BUS_ATN_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_9))
MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, nullptr)
- MCFG_VCS_CONTROL_PORT_TRIGGER_CALLBACK(DEVWRITELINE(MOS6569_TAG, mos6569_device, lp_w))
+ MCFG_VCS_CONTROL_PORT_TRIGGER_CALLBACK(WRITELINE(MOS6569_TAG, mos6569_device, lp_w))
MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vcs_control_port_devices, "joy")
MCFG_C64_EXPANSION_SLOT_ADD(C64_EXPANSION_SLOT_TAG, XTAL(17'734'472)/18, c64_expansion_cards, nullptr)
- MCFG_C64_EXPANSION_SLOT_IRQ_CALLBACK(WRITELINE(c64_state, exp_irq_w))
- MCFG_C64_EXPANSION_SLOT_NMI_CALLBACK(WRITELINE(c64_state, exp_nmi_w))
- MCFG_C64_EXPANSION_SLOT_RESET_CALLBACK(WRITELINE(c64_state, exp_reset_w))
- MCFG_C64_EXPANSION_SLOT_CD_INPUT_CALLBACK(READ8(c64_state, read))
- MCFG_C64_EXPANSION_SLOT_CD_OUTPUT_CALLBACK(WRITE8(c64_state, write))
- MCFG_C64_EXPANSION_SLOT_DMA_CALLBACK(WRITELINE(c64_state, exp_dma_w))
+ MCFG_C64_EXPANSION_SLOT_IRQ_CALLBACK(WRITELINE(*this, c64_state, exp_irq_w))
+ MCFG_C64_EXPANSION_SLOT_NMI_CALLBACK(WRITELINE(*this, c64_state, exp_nmi_w))
+ MCFG_C64_EXPANSION_SLOT_RESET_CALLBACK(WRITELINE(*this, c64_state, exp_reset_w))
+ MCFG_C64_EXPANSION_SLOT_CD_INPUT_CALLBACK(READ8(*this, c64_state, read))
+ MCFG_C64_EXPANSION_SLOT_CD_OUTPUT_CALLBACK(WRITE8(*this, c64_state, write))
+ MCFG_C64_EXPANSION_SLOT_DMA_CALLBACK(WRITELINE(*this, c64_state, exp_dma_w))
MCFG_PET_USER_PORT_ADD(PET_USER_PORT_TAG, c64_user_port_cards, nullptr)
- MCFG_PET_USER_PORT_3_HANDLER(WRITELINE(c64_state, exp_reset_w))
- MCFG_PET_USER_PORT_4_HANDLER(DEVWRITELINE(MOS6526_1_TAG, mos6526_device, cnt_w))
- MCFG_PET_USER_PORT_5_HANDLER(DEVWRITELINE(MOS6526_1_TAG, mos6526_device, sp_w))
- MCFG_PET_USER_PORT_6_HANDLER(DEVWRITELINE(MOS6526_2_TAG, mos6526_device, cnt_w))
- MCFG_PET_USER_PORT_7_HANDLER(DEVWRITELINE(MOS6526_2_TAG, mos6526_device, sp_w))
- MCFG_PET_USER_PORT_9_HANDLER(DEVWRITELINE(CBM_IEC_TAG, cbm_iec_device, atn_w))
- MCFG_PET_USER_PORT_B_HANDLER(DEVWRITELINE(MOS6526_2_TAG, mos6526_device, flag_w))
- MCFG_PET_USER_PORT_C_HANDLER(WRITELINE(c64_state, write_user_pb0))
- MCFG_PET_USER_PORT_D_HANDLER(WRITELINE(c64_state, write_user_pb1))
- MCFG_PET_USER_PORT_E_HANDLER(WRITELINE(c64_state, write_user_pb2))
- MCFG_PET_USER_PORT_F_HANDLER(WRITELINE(c64_state, write_user_pb3))
- MCFG_PET_USER_PORT_H_HANDLER(WRITELINE(c64_state, write_user_pb4))
- MCFG_PET_USER_PORT_J_HANDLER(WRITELINE(c64_state, write_user_pb5))
- MCFG_PET_USER_PORT_K_HANDLER(WRITELINE(c64_state, write_user_pb6))
- MCFG_PET_USER_PORT_L_HANDLER(WRITELINE(c64_state, write_user_pb7))
- MCFG_PET_USER_PORT_M_HANDLER(WRITELINE(c64_state, write_user_pa2))
+ MCFG_PET_USER_PORT_3_HANDLER(WRITELINE(*this, c64_state, exp_reset_w))
+ MCFG_PET_USER_PORT_4_HANDLER(WRITELINE(MOS6526_1_TAG, mos6526_device, cnt_w))
+ MCFG_PET_USER_PORT_5_HANDLER(WRITELINE(MOS6526_1_TAG, mos6526_device, sp_w))
+ MCFG_PET_USER_PORT_6_HANDLER(WRITELINE(MOS6526_2_TAG, mos6526_device, cnt_w))
+ MCFG_PET_USER_PORT_7_HANDLER(WRITELINE(MOS6526_2_TAG, mos6526_device, sp_w))
+ MCFG_PET_USER_PORT_9_HANDLER(WRITELINE(CBM_IEC_TAG, cbm_iec_device, atn_w))
+ MCFG_PET_USER_PORT_B_HANDLER(WRITELINE(MOS6526_2_TAG, mos6526_device, flag_w))
+ MCFG_PET_USER_PORT_C_HANDLER(WRITELINE(*this, c64_state, write_user_pb0))
+ MCFG_PET_USER_PORT_D_HANDLER(WRITELINE(*this, c64_state, write_user_pb1))
+ MCFG_PET_USER_PORT_E_HANDLER(WRITELINE(*this, c64_state, write_user_pb2))
+ MCFG_PET_USER_PORT_F_HANDLER(WRITELINE(*this, c64_state, write_user_pb3))
+ MCFG_PET_USER_PORT_H_HANDLER(WRITELINE(*this, c64_state, write_user_pb4))
+ MCFG_PET_USER_PORT_J_HANDLER(WRITELINE(*this, c64_state, write_user_pb5))
+ MCFG_PET_USER_PORT_K_HANDLER(WRITELINE(*this, c64_state, write_user_pb6))
+ MCFG_PET_USER_PORT_L_HANDLER(WRITELINE(*this, c64_state, write_user_pb7))
+ MCFG_PET_USER_PORT_M_HANDLER(WRITELINE(*this, c64_state, write_user_pa2))
MCFG_QUICKLOAD_ADD("quickload", c64_state, cbm_c64, "p00,prg,t64", CBM_QUICKLOAD_DELAY_SECONDS)
@@ -1594,8 +1594,8 @@ MACHINE_CONFIG_START(sx64_state::pal_sx)
pal(config);
// basic hardware
- MCFG_CPU_MODIFY(M6510_TAG)
- MCFG_M6510_PORT_CALLBACKS(READ8(sx64_state, cpu_r), WRITE8(sx64_state, cpu_w))
+ MCFG_DEVICE_MODIFY(M6510_TAG)
+ MCFG_M6510_PORT_CALLBACKS(READ8(*this, sx64_state, cpu_r), WRITE8(*this, sx64_state, cpu_w))
MCFG_M6510_PORT_PULLS(0x07, 0xc0)
// devices
@@ -1610,9 +1610,9 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(c64c_state::pal_c)
pal(config);
- MCFG_SOUND_REPLACE(MOS6581_TAG, MOS8580, XTAL(17'734'472)/18)
- MCFG_MOS6581_POTX_CALLBACK(READ8(c64_state, sid_potx_r))
- MCFG_MOS6581_POTY_CALLBACK(READ8(c64_state, sid_poty_r))
+ MCFG_DEVICE_REPLACE(MOS6581_TAG, MOS8580, XTAL(17'734'472)/18)
+ MCFG_MOS6581_POTX_CALLBACK(READ8(*this, c64_state, sid_potx_r))
+ MCFG_MOS6581_POTY_CALLBACK(READ8(*this, c64_state, sid_poty_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MACHINE_CONFIG_END
@@ -1623,17 +1623,17 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(c64gs_state::pal_gs)
// basic hardware
- MCFG_CPU_ADD(M6510_TAG, M6510, XTAL(17'734'472)/18)
- MCFG_CPU_PROGRAM_MAP(c64_mem)
+ MCFG_DEVICE_ADD(M6510_TAG, M6510, XTAL(17'734'472)/18)
+ MCFG_DEVICE_PROGRAM_MAP(c64_mem)
MCFG_M6502_DISABLE_DIRECT() // address decoding is 100% dynamic, no RAM/ROM banks
- MCFG_M6510_PORT_CALLBACKS(READ8(c64gs_state, cpu_r), WRITE8(c64gs_state, cpu_w))
+ MCFG_M6510_PORT_CALLBACKS(READ8(*this, c64gs_state, cpu_r), WRITE8(*this, c64gs_state, cpu_w))
MCFG_M6510_PORT_PULLS(0x07, 0xc0)
MCFG_QUANTUM_PERFECT_CPU(M6510_TAG)
// video hardware
MCFG_DEVICE_ADD(MOS6569_TAG, MOS8565, XTAL(17'734'472)/18)
MCFG_MOS6566_CPU(M6510_TAG)
- MCFG_MOS6566_IRQ_CALLBACK(WRITELINE(c64_state, vic_irq_w))
+ MCFG_MOS6566_IRQ_CALLBACK(WRITELINE(*this, c64_state, vic_irq_w))
MCFG_VIDEO_SET_SCREEN(SCREEN_TAG)
MCFG_DEVICE_ADDRESS_MAP(0, vic_videoram_map)
MCFG_DEVICE_ADDRESS_MAP(1, vic_colorram_map)
@@ -1645,63 +1645,63 @@ MACHINE_CONFIG_START(c64gs_state::pal_gs)
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD(MOS6581_TAG, MOS8580, XTAL(17'734'472)/18)
- MCFG_MOS6581_POTX_CALLBACK(READ8(c64_state, sid_potx_r))
- MCFG_MOS6581_POTY_CALLBACK(READ8(c64_state, sid_poty_r))
+ MCFG_DEVICE_ADD(MOS6581_TAG, MOS8580, XTAL(17'734'472)/18)
+ MCFG_MOS6581_POTX_CALLBACK(READ8(*this, c64_state, sid_potx_r))
+ MCFG_MOS6581_POTY_CALLBACK(READ8(*this, c64_state, sid_poty_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
// devices
MCFG_PLS100_ADD(PLA_TAG)
MCFG_DEVICE_ADD(MOS6526_1_TAG, MOS6526, XTAL(17'734'472)/18)
MCFG_MOS6526_TOD(50)
- MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(c64_state, cia1_irq_w))
- MCFG_MOS6526_CNT_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_4))
- MCFG_MOS6526_SP_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_5))
- MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(c64gs_state, cia1_pa_r))
- MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(c64_state, cia1_pa_w))
- MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c64gs_state, cia1_pb_r))
- MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c64_state, cia1_pb_w))
+ MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(*this, c64_state, cia1_irq_w))
+ MCFG_MOS6526_CNT_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_4))
+ MCFG_MOS6526_SP_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_5))
+ MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(*this, c64gs_state, cia1_pa_r))
+ MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(*this, c64_state, cia1_pa_w))
+ MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(*this, c64gs_state, cia1_pb_r))
+ MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(*this, c64_state, cia1_pb_w))
MCFG_DEVICE_ADD(MOS6526_2_TAG, MOS6526, XTAL(17'734'472)/18)
MCFG_MOS6526_TOD(50)
- MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(c64_state, cia2_irq_w))
- MCFG_MOS6526_CNT_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_6))
- MCFG_MOS6526_SP_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_7))
- MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(c64_state, cia2_pa_r))
- MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(c64_state, cia2_pa_w))
- MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c64_state, cia2_pb_r))
- MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c64_state, cia2_pb_w))
- MCFG_MOS6526_PC_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_8))
+ MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(*this, c64_state, cia2_irq_w))
+ MCFG_MOS6526_CNT_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_6))
+ MCFG_MOS6526_SP_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_7))
+ MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(*this, c64_state, cia2_pa_r))
+ MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(*this, c64_state, cia2_pa_w))
+ MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(*this, c64_state, cia2_pb_r))
+ MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(*this, c64_state, cia2_pb_w))
+ MCFG_MOS6526_PC_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_8))
MCFG_CBM_IEC_ADD(nullptr)
- MCFG_CBM_IEC_BUS_SRQ_CALLBACK(DEVWRITELINE(MOS6526_1_TAG, mos6526_device, flag_w))
- MCFG_CBM_IEC_BUS_ATN_CALLBACK(DEVWRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_9))
+ MCFG_CBM_IEC_BUS_SRQ_CALLBACK(WRITELINE(MOS6526_1_TAG, mos6526_device, flag_w))
+ MCFG_CBM_IEC_BUS_ATN_CALLBACK(WRITELINE(PET_USER_PORT_TAG, pet_user_port_device, write_9))
MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, nullptr)
- MCFG_VCS_CONTROL_PORT_TRIGGER_CALLBACK(DEVWRITELINE(MOS6569_TAG, mos6569_device, lp_w))
+ MCFG_VCS_CONTROL_PORT_TRIGGER_CALLBACK(WRITELINE(MOS6569_TAG, mos6569_device, lp_w))
MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vcs_control_port_devices, "joy")
MCFG_C64_EXPANSION_SLOT_ADD(C64_EXPANSION_SLOT_TAG, XTAL(17'734'472)/18, c64_expansion_cards, nullptr)
- MCFG_C64_EXPANSION_SLOT_IRQ_CALLBACK(WRITELINE(c64_state, exp_irq_w))
- MCFG_C64_EXPANSION_SLOT_NMI_CALLBACK(WRITELINE(c64_state, exp_nmi_w))
- MCFG_C64_EXPANSION_SLOT_RESET_CALLBACK(WRITELINE(c64_state, exp_reset_w))
- MCFG_C64_EXPANSION_SLOT_CD_INPUT_CALLBACK(READ8(c64_state, read))
- MCFG_C64_EXPANSION_SLOT_CD_OUTPUT_CALLBACK(WRITE8(c64_state, write))
- MCFG_C64_EXPANSION_SLOT_DMA_CALLBACK(WRITELINE(c64_state, exp_dma_w))
+ MCFG_C64_EXPANSION_SLOT_IRQ_CALLBACK(WRITELINE(*this, c64_state, exp_irq_w))
+ MCFG_C64_EXPANSION_SLOT_NMI_CALLBACK(WRITELINE(*this, c64_state, exp_nmi_w))
+ MCFG_C64_EXPANSION_SLOT_RESET_CALLBACK(WRITELINE(*this, c64_state, exp_reset_w))
+ MCFG_C64_EXPANSION_SLOT_CD_INPUT_CALLBACK(READ8(*this, c64_state, read))
+ MCFG_C64_EXPANSION_SLOT_CD_OUTPUT_CALLBACK(WRITE8(*this, c64_state, write))
+ MCFG_C64_EXPANSION_SLOT_DMA_CALLBACK(WRITELINE(*this, c64_state, exp_dma_w))
MCFG_PET_USER_PORT_ADD(PET_USER_PORT_TAG, c64_user_port_cards, nullptr)
- MCFG_PET_USER_PORT_3_HANDLER(WRITELINE(c64_state, exp_reset_w))
- MCFG_PET_USER_PORT_4_HANDLER(DEVWRITELINE(MOS6526_1_TAG, mos6526_device, cnt_w))
- MCFG_PET_USER_PORT_5_HANDLER(DEVWRITELINE(MOS6526_1_TAG, mos6526_device, sp_w))
- MCFG_PET_USER_PORT_6_HANDLER(DEVWRITELINE(MOS6526_2_TAG, mos6526_device, cnt_w))
- MCFG_PET_USER_PORT_7_HANDLER(DEVWRITELINE(MOS6526_2_TAG, mos6526_device, sp_w))
- MCFG_PET_USER_PORT_9_HANDLER(DEVWRITELINE(CBM_IEC_TAG, cbm_iec_device, atn_w))
- MCFG_PET_USER_PORT_B_HANDLER(DEVWRITELINE(MOS6526_2_TAG, mos6526_device, flag_w))
- MCFG_PET_USER_PORT_C_HANDLER(WRITELINE(c64_state, write_user_pb0))
- MCFG_PET_USER_PORT_D_HANDLER(WRITELINE(c64_state, write_user_pb1))
- MCFG_PET_USER_PORT_E_HANDLER(WRITELINE(c64_state, write_user_pb2))
- MCFG_PET_USER_PORT_F_HANDLER(WRITELINE(c64_state, write_user_pb3))
- MCFG_PET_USER_PORT_H_HANDLER(WRITELINE(c64_state, write_user_pb4))
- MCFG_PET_USER_PORT_J_HANDLER(WRITELINE(c64_state, write_user_pb5))
- MCFG_PET_USER_PORT_K_HANDLER(WRITELINE(c64_state, write_user_pb6))
- MCFG_PET_USER_PORT_L_HANDLER(WRITELINE(c64_state, write_user_pb7))
- MCFG_PET_USER_PORT_M_HANDLER(WRITELINE(c64_state, write_user_pa2))
+ MCFG_PET_USER_PORT_3_HANDLER(WRITELINE(*this, c64_state, exp_reset_w))
+ MCFG_PET_USER_PORT_4_HANDLER(WRITELINE(MOS6526_1_TAG, mos6526_device, cnt_w))
+ MCFG_PET_USER_PORT_5_HANDLER(WRITELINE(MOS6526_1_TAG, mos6526_device, sp_w))
+ MCFG_PET_USER_PORT_6_HANDLER(WRITELINE(MOS6526_2_TAG, mos6526_device, cnt_w))
+ MCFG_PET_USER_PORT_7_HANDLER(WRITELINE(MOS6526_2_TAG, mos6526_device, sp_w))
+ MCFG_PET_USER_PORT_9_HANDLER(WRITELINE(CBM_IEC_TAG, cbm_iec_device, atn_w))
+ MCFG_PET_USER_PORT_B_HANDLER(WRITELINE(MOS6526_2_TAG, mos6526_device, flag_w))
+ MCFG_PET_USER_PORT_C_HANDLER(WRITELINE(*this, c64_state, write_user_pb0))
+ MCFG_PET_USER_PORT_D_HANDLER(WRITELINE(*this, c64_state, write_user_pb1))
+ MCFG_PET_USER_PORT_E_HANDLER(WRITELINE(*this, c64_state, write_user_pb2))
+ MCFG_PET_USER_PORT_F_HANDLER(WRITELINE(*this, c64_state, write_user_pb3))
+ MCFG_PET_USER_PORT_H_HANDLER(WRITELINE(*this, c64_state, write_user_pb4))
+ MCFG_PET_USER_PORT_J_HANDLER(WRITELINE(*this, c64_state, write_user_pb5))
+ MCFG_PET_USER_PORT_K_HANDLER(WRITELINE(*this, c64_state, write_user_pb6))
+ MCFG_PET_USER_PORT_L_HANDLER(WRITELINE(*this, c64_state, write_user_pb7))
+ MCFG_PET_USER_PORT_M_HANDLER(WRITELINE(*this, c64_state, write_user_pa2))
MCFG_QUICKLOAD_ADD("quickload", c64_state, cbm_c64, "p00,prg,t64", CBM_QUICKLOAD_DELAY_SECONDS)