diff options
author | 2018-05-06 00:40:40 +1000 | |
---|---|---|
committer | 2018-05-06 00:51:27 +1000 | |
commit | 4ea3cd0bc1f54e47a0d38a47afac38101549e9ee (patch) | |
tree | bbadc20010b6bad48cf321b1c864655587e4b8ad /src/mame/drivers/c64.cpp | |
parent | bba5127d7a73ca44fdc0dcab7286846c81206771 (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.cpp | 304 |
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) |