trunk/src/emu/bus/pet/superpet.c
r26706 | r26707 | |
75 | 75 | |
76 | 76 | MCFG_MOS6702_ADD(MOS6702_TAG, XTAL_16MHz/16) |
77 | 77 | |
78 | | MCFG_MOS6551_ADD(MOS6551_TAG, XTAL_1_8432MHz, WRITELINE(superpet_device, acia_irq_w)) |
79 | | MCFG_MOS6551_RXD_TXD_CALLBACKS(NULL, DEVWRITELINE(RS232_TAG, rs232_port_device, tx)) |
| 78 | MCFG_DEVICE_ADD(MOS6551_TAG, MOS6551, XTAL_1_8432MHz) |
| 79 | MCFG_MOS6551_IRQ_HANDLER(WRITELINE(superpet_device, acia_irq_w)) |
| 80 | MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE(RS232_TAG, rs232_port_device, tx)) |
80 | 81 | |
81 | 82 | MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL) |
82 | 83 | MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(MOS6551_TAG, mos6551_device, rxd_w)) |
trunk/src/emu/bus/c64/swiftlink.c
r26706 | r26707 | |
40 | 40 | //------------------------------------------------- |
41 | 41 | |
42 | 42 | static MACHINE_CONFIG_FRAGMENT( c64_swiftlink ) |
43 | | MCFG_MOS6551_ADD(MOS6551_TAG, XTAL_3_6864MHz, WRITELINE(c64_swiftlink_cartridge_device, acia_irq_w)) |
44 | | MCFG_MOS6551_RXD_TXD_CALLBACKS(NULL, DEVWRITELINE(RS232_TAG, rs232_port_device, tx)) |
| 43 | MCFG_DEVICE_ADD(MOS6551_TAG, MOS6551, XTAL_3_6864MHz) |
| 44 | MCFG_MOS6551_IRQ_HANDLER(WRITELINE(c64_swiftlink_cartridge_device, acia_irq_w)) |
| 45 | MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE(RS232_TAG, rs232_port_device, tx)) |
45 | 46 | |
46 | 47 | MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL) |
47 | 48 | MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(MOS6551_TAG, mos6551_device, rxd_w)) |
trunk/src/emu/bus/c64/turbo232.c
r26706 | r26707 | |
40 | 40 | //------------------------------------------------- |
41 | 41 | |
42 | 42 | static MACHINE_CONFIG_FRAGMENT( c64_turbo232 ) |
43 | | MCFG_MOS6551_ADD(MOS6551_TAG, XTAL_3_6864MHz, WRITELINE(c64_turbo232_cartridge_device, acia_irq_w)) |
44 | | MCFG_MOS6551_RXD_TXD_CALLBACKS(NULL, DEVWRITELINE(RS232_TAG, rs232_port_device, tx)) |
| 43 | MCFG_DEVICE_ADD(MOS6551_TAG, MOS6551, XTAL_3_6864MHz) |
| 44 | MCFG_MOS6551_IRQ_HANDLER(WRITELINE(c64_turbo232_cartridge_device, acia_irq_w)) |
| 45 | MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE(RS232_TAG, rs232_port_device, tx)) |
45 | 46 | |
46 | 47 | MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL) |
47 | 48 | MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(MOS6551_TAG, mos6551_device, rxd_w)) |
trunk/src/emu/bus/a2bus/a2ssc.c
r26706 | r26707 | |
29 | 29 | #define SSC_RS232_TAG "ssc_rs232" |
30 | 30 | |
31 | 31 | MACHINE_CONFIG_FRAGMENT( ssc ) |
32 | | MCFG_MOS6551_ADD(SSC_ACIA_TAG, XTAL_1_8432MHz, WRITELINE(a2bus_ssc_device, acia_irq_w)) |
33 | | MCFG_MOS6551_RXD_TXD_CALLBACKS(NULL, DEVWRITELINE(SSC_RS232_TAG, rs232_port_device, tx)) |
| 32 | MCFG_DEVICE_ADD(SSC_ACIA_TAG, MOS6551, XTAL_1_8432MHz) |
| 33 | MCFG_MOS6551_IRQ_HANDLER(WRITELINE(a2bus_ssc_device, acia_irq_w)) |
| 34 | MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE(SSC_RS232_TAG, rs232_port_device, tx)) |
34 | 35 | |
35 | 36 | MCFG_RS232_PORT_ADD(SSC_RS232_TAG, default_rs232_devices, NULL) |
36 | 37 | MCFG_SERIAL_OUT_RX_HANDLER(DEVWRITELINE(SSC_ACIA_TAG, mos6551_device, rxd_w)) |
trunk/src/emu/machine/mos6551.c
r26706 | r26707 | |
57 | 57 | mos6551_device::mos6551_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
58 | 58 | : device_t(mconfig, MOS6551, "MOS6551", tag, owner, clock, "mos6551", __FILE__), |
59 | 59 | device_serial_interface(mconfig, *this), |
60 | | m_write_irq(*this), |
| 60 | m_irq_handler(*this), |
61 | 61 | m_read_rxd(*this), |
62 | | m_write_txd(*this), |
63 | | m_write_rts(*this), |
64 | | m_write_dtr(*this), |
| 62 | m_txd_handler(*this), |
| 63 | m_rts_handler(*this), |
| 64 | m_dtr_handler(*this), |
65 | 65 | m_ctrl(0), |
66 | 66 | m_cmd(CMD_RIE), |
67 | 67 | m_st(ST_TDRE), |
r26706 | r26707 | |
80 | 80 | void mos6551_device::device_start() |
81 | 81 | { |
82 | 82 | // resolve callbacks |
83 | | m_write_irq.resolve_safe(); |
84 | | m_read_rxd.resolve_safe(1); |
85 | | m_write_txd.resolve_safe(); |
86 | | m_write_rts.resolve_safe(); |
87 | | m_write_dtr.resolve_safe(); |
| 83 | m_irq_handler.resolve_safe(); |
| 84 | m_txd_handler.resolve_safe(); |
| 85 | m_rts_handler.resolve_safe(); |
| 86 | m_dtr_handler.resolve_safe(); |
88 | 87 | |
89 | 88 | // state saving |
90 | 89 | save_item(NAME(m_ctrl)); |
r26706 | r26707 | |
126 | 125 | |
127 | 126 | void mos6551_device::tra_callback() |
128 | 127 | { |
129 | | if (m_write_txd.isnull()) |
| 128 | if (m_txd_handler.isnull()) |
130 | 129 | transmit_register_send_bit(); |
131 | 130 | else |
132 | | m_write_txd(transmit_register_get_data_bit()); |
| 131 | m_txd_handler(transmit_register_get_data_bit()); |
133 | 132 | } |
134 | 133 | |
135 | 134 | |
r26706 | r26707 | |
147 | 146 | if ((m_cmd & CMD_TC_MASK) == CMD_TC_TIE_RTS_LO) |
148 | 147 | { |
149 | 148 | m_st |= ST_IRQ; |
150 | | m_write_irq(ASSERT_LINE); |
| 149 | m_irq_handler(ASSERT_LINE); |
151 | 150 | } |
152 | 151 | } |
153 | 152 | } |
r26706 | r26707 | |
184 | 183 | if (!(m_cmd & CMD_RIE)) |
185 | 184 | { |
186 | 185 | m_st |= ST_IRQ; |
187 | | m_write_irq(ASSERT_LINE); |
| 186 | m_irq_handler(ASSERT_LINE); |
188 | 187 | } |
189 | 188 | } |
190 | 189 | |
r26706 | r26707 | |
247 | 246 | else |
248 | 247 | m_connection_state &= ~DTR; |
249 | 248 | |
250 | | m_write_dtr((m_connection_state & DTR) ? 0 : 1); |
| 249 | m_dtr_handler((m_connection_state & DTR) ? 0 : 1); |
251 | 250 | |
252 | 251 | if ((m_cmd & CMD_TC_MASK) == CMD_TC_RTS_HI) |
253 | 252 | m_connection_state &= ~RTS; |
254 | 253 | else |
255 | 254 | m_connection_state |= RTS; |
256 | 255 | |
257 | | m_write_rts((m_connection_state & RTS) ? 0 : 1); |
| 256 | m_rts_handler((m_connection_state & RTS) ? 0 : 1); |
258 | 257 | |
259 | 258 | serial_connection_out(); |
260 | 259 | } |
r26706 | r26707 | |
283 | 282 | case 1: |
284 | 283 | data = (m_dsr << 6) | (m_dcd << 5) | m_st; |
285 | 284 | m_st &= ~ST_IRQ; |
286 | | m_write_irq(CLEAR_LINE); |
| 285 | m_irq_handler(CLEAR_LINE); |
287 | 286 | break; |
288 | 287 | |
289 | 288 | case 2: |
r26706 | r26707 | |
319 | 318 | if ((m_cmd & CMD_TC_MASK) == CMD_TC_TIE_RTS_LO) |
320 | 319 | { |
321 | 320 | m_st |= ST_IRQ; |
322 | | m_write_irq(ASSERT_LINE); |
| 321 | m_irq_handler(ASSERT_LINE); |
323 | 322 | } |
324 | 323 | } |
325 | 324 | break; |
r26706 | r26707 | |
396 | 395 | if (m_dsr != state) |
397 | 396 | { |
398 | 397 | m_st |= ST_IRQ; |
399 | | m_write_irq(ASSERT_LINE); |
| 398 | m_irq_handler(ASSERT_LINE); |
400 | 399 | } |
401 | 400 | |
402 | 401 | m_dsr = state; |
r26706 | r26707 | |
412 | 411 | if (m_dcd != state) |
413 | 412 | { |
414 | 413 | m_st |= ST_IRQ; |
415 | | m_write_irq(ASSERT_LINE); |
| 414 | m_irq_handler(ASSERT_LINE); |
416 | 415 | } |
417 | 416 | |
418 | 417 | m_dcd = state; |
trunk/src/emu/machine/mos6551.h
r26706 | r26707 | |
39 | 39 | // INTERFACE CONFIGURATION MACROS |
40 | 40 | //************************************************************************** |
41 | 41 | |
42 | | #define MCFG_MOS6551_ADD(_tag, _clock, _irq) \ |
43 | | MCFG_DEVICE_ADD(_tag, MOS6551, _clock) \ |
44 | | downcast<mos6551_device *>(device)->set_irq_callback(DEVCB2_##_irq); |
| 42 | #define MCFG_MOS6551_IRQ_HANDLER(_devcb) \ |
| 43 | devcb = &mos6551_device::set_irq_handler(*device, DEVCB2_##_devcb); |
45 | 44 | |
46 | | #define MCFG_MOS6551_RXD_TXD_CALLBACKS(_rxd, _txd) \ |
47 | | downcast<mos6551_device *>(device)->set_rxd_txd_callbacks(DEVCB2_##_rxd, DEVCB2_##_txd); |
| 45 | #define MCFG_MOS6551_TXD_HANDLER(_devcb) \ |
| 46 | devcb = &mos6551_device::set_txd_handler(*device, DEVCB2_##_devcb); |
48 | 47 | |
49 | | #define MCFG_MOS6551_RTS_CALLBACK(_rts) \ |
50 | | downcast<mos6551_device *>(device)->set_rts_callback(DEVCB2_##_rts); |
| 48 | #define MCFG_MOS6551_RTS_HANDLER(_devcb) \ |
| 49 | devcb = &mos6551_device::set_rts_handler(*device, DEVCB2_##_devcb); |
51 | 50 | |
52 | | #define MCFG_MOS6551_DTR_CALLBACK(_dtr) \ |
53 | | downcast<mos6551_device *>(device)->set_dtr_callback(DEVCB2_##_dtr); |
| 51 | #define MCFG_MOS6551_DTR_HANDLER(_devcb) \ |
| 52 | devcb = &mos6551_device::set_dtr_handler(*device, DEVCB2_##_devcb); |
54 | 53 | |
55 | 54 | |
56 | 55 | |
r26706 | r26707 | |
67 | 66 | // construction/destruction |
68 | 67 | mos6551_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
69 | 68 | |
70 | | template<class _irq> void set_irq_callback(_irq irq) { m_write_irq.set_callback(irq); } |
71 | | template<class _rxd, class _txd> void set_rxd_txd_callbacks(_rxd rxd, _txd txd) { |
72 | | m_read_rxd.set_callback(rxd); |
73 | | m_write_txd.set_callback(txd); |
74 | | } |
75 | | template<class _rts> void set_rts_callback(_rts rts) { m_write_rts.set_callback(rts); } |
76 | | template<class _dtr> void set_dtr_callback(_dtr dtr) { m_write_dtr.set_callback(dtr); } |
| 69 | template<class _Object> static devcb2_base &set_irq_handler(device_t &device, _Object object) { return downcast<mos6551_device &>(device).m_irq_handler.set_callback(object); } |
| 70 | template<class _Object> static devcb2_base &set_txd_handler(device_t &device, _Object object) { return downcast<mos6551_device &>(device).m_txd_handler.set_callback(object); } |
| 71 | template<class _Object> static devcb2_base &set_rts_handler(device_t &device, _Object object) { return downcast<mos6551_device &>(device).m_rts_handler.set_callback(object); } |
| 72 | template<class _Object> static devcb2_base &set_dtr_handler(device_t &device, _Object object) { return downcast<mos6551_device &>(device).m_dtr_handler.set_callback(object); } |
77 | 73 | |
78 | 74 | DECLARE_READ8_MEMBER( read ); |
79 | 75 | DECLARE_WRITE8_MEMBER( write ); |
r26706 | r26707 | |
170 | 166 | |
171 | 167 | void update_serial(); |
172 | 168 | |
173 | | devcb2_write_line m_write_irq; |
| 169 | devcb2_write_line m_irq_handler; |
174 | 170 | devcb2_read_line m_read_rxd; |
175 | | devcb2_write_line m_write_txd; |
176 | | devcb2_write_line m_write_rts; |
177 | | devcb2_write_line m_write_dtr; |
| 171 | devcb2_write_line m_txd_handler; |
| 172 | devcb2_write_line m_rts_handler; |
| 173 | devcb2_write_line m_dtr_handler; |
178 | 174 | |
179 | 175 | UINT8 m_ctrl; |
180 | 176 | UINT8 m_cmd; |
trunk/src/mess/drivers/plus4.c
r26706 | r26707 | |
741 | 741 | |
742 | 742 | // devices |
743 | 743 | MCFG_PLS100_ADD(PLA_TAG) |
744 | | MCFG_MOS6551_ADD(MOS6551_TAG, XTAL_1_8432MHz, WRITELINE(plus4_state, acia_irq_w)) |
| 744 | |
| 745 | MCFG_DEVICE_ADD(MOS6551_TAG, MOS6551, XTAL_1_8432MHz) |
| 746 | MCFG_MOS6551_IRQ_HANDLER(WRITELINE(plus4_state, acia_irq_w)) |
| 747 | |
745 | 748 | MCFG_MOS6529_ADD(MOS6529_USER_TAG, DEVREAD8(PLUS4_USER_PORT_TAG, plus4_user_port_device, p_r), DEVWRITE8(PLUS4_USER_PORT_TAG, plus4_user_port_device, p_w)) |
746 | 749 | MCFG_MOS6529_ADD(MOS6529_KB_TAG, CONSTANT(0xff), WRITE8(plus4_state, spi_kb_w)) |
747 | 750 | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, plus4_datassette_devices, "c1531", NULL) |
r26706 | r26707 | |
787 | 790 | |
788 | 791 | // devices |
789 | 792 | MCFG_PLS100_ADD(PLA_TAG) |
790 | | MCFG_MOS6551_ADD(MOS6551_TAG, XTAL_1_8432MHz, WRITELINE(plus4_state, acia_irq_w)) |
| 793 | |
| 794 | MCFG_DEVICE_ADD(MOS6551_TAG, MOS6551, XTAL_1_8432MHz) |
| 795 | MCFG_MOS6551_IRQ_HANDLER(WRITELINE(plus4_state, acia_irq_w)) |
| 796 | |
791 | 797 | MCFG_MOS6529_ADD(MOS6529_USER_TAG, DEVREAD8(PLUS4_USER_PORT_TAG, plus4_user_port_device, p_r), DEVWRITE8(PLUS4_USER_PORT_TAG, plus4_user_port_device, p_w)) |
792 | 798 | MCFG_MOS6529_ADD(MOS6529_KB_TAG, CONSTANT(0xff), WRITE8(plus4_state, spi_kb_w)) |
793 | 799 | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, plus4_datassette_devices, "c1531", NULL) |
trunk/src/mess/drivers/dragon.c
r26706 | r26707 | |
174 | 174 | MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, dragon_state::cartridge_config, dragon_cart, "dragon_fdc") |
175 | 175 | |
176 | 176 | // acia |
177 | | MCFG_MOS6551_ADD("acia", XTAL_1_8432MHz, NULL) |
| 177 | MCFG_DEVICE_ADD("acia", MOS6551, XTAL_1_8432MHz) |
178 | 178 | MACHINE_CONFIG_END |
179 | 179 | |
180 | 180 | static MACHINE_CONFIG_DERIVED_CLASS( d64plus, dragon_base, dragon64_state ) |
r26706 | r26707 | |
186 | 186 | MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, dragon_state::cartridge_config, dragon_cart, "dragon_fdc") |
187 | 187 | |
188 | 188 | // acia |
189 | | MCFG_MOS6551_ADD("acia", XTAL_1_8432MHz, NULL) |
| 189 | MCFG_DEVICE_ADD("acia", MOS6551, XTAL_1_8432MHz) |
190 | 190 | MACHINE_CONFIG_END |
191 | 191 | |
192 | 192 | static MACHINE_CONFIG_DERIVED_CLASS( dgnalpha, dragon_base, dragon_alpha_state ) |
r26706 | r26707 | |
198 | 198 | MCFG_COCO_CARTRIDGE_ADD(CARTRIDGE_TAG, dragon_alpha_state::cartridge_config, dragon_cart, NULL) |
199 | 199 | |
200 | 200 | // acia |
201 | | MCFG_MOS6551_ADD("acia", XTAL_1_8432MHz, NULL) |
| 201 | MCFG_DEVICE_ADD("acia", MOS6551, XTAL_1_8432MHz) |
202 | 202 | |
203 | 203 | // floppy |
204 | 204 | MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(coco_floppy_interface) |
trunk/src/mess/drivers/cbm2.c
r26706 | r26707 | |
2166 | 2166 | MCFG_PLS100_ADD(PLA2_TAG) |
2167 | 2167 | MCFG_TPI6525_ADD(MOS6525_1_TAG, p500_tpi1_intf) |
2168 | 2168 | MCFG_TPI6525_ADD(MOS6525_2_TAG, p500_tpi2_intf) |
2169 | | MCFG_MOS6551_ADD(MOS6551A_TAG, XTAL_1_8432MHz, DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i4_w)) |
2170 | | MCFG_MOS6551_RXD_TXD_CALLBACKS(NULL, DEVWRITELINE(RS232_TAG, rs232_port_device, tx)) |
| 2169 | |
| 2170 | MCFG_DEVICE_ADD(MOS6551A_TAG, MOS6551, XTAL_1_8432MHz) |
| 2171 | MCFG_MOS6551_IRQ_HANDLER(DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i4_w)) |
| 2172 | MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE(RS232_TAG, rs232_port_device, tx)) |
| 2173 | |
2171 | 2174 | MCFG_MOS6526_ADD(MOS6526_TAG, VIC6567_CLOCK, 60, DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i2_w)) |
2172 | 2175 | MCFG_MOS6526_SERIAL_CALLBACKS(DEVWRITELINE(CBM2_USER_PORT_TAG, cbm2_user_port_device, cnt_w), DEVWRITELINE(CBM2_USER_PORT_TAG, cbm2_user_port_device, sp_w)) |
2173 | 2176 | MCFG_MOS6526_PORT_A_CALLBACKS(READ8(cbm2_state, cia_pa_r), WRITE8(cbm2_state, cia_pa_w)) |
r26706 | r26707 | |
2229 | 2232 | MCFG_PLS100_ADD(PLA2_TAG) |
2230 | 2233 | MCFG_TPI6525_ADD(MOS6525_1_TAG, p500_tpi1_intf) |
2231 | 2234 | MCFG_TPI6525_ADD(MOS6525_2_TAG, p500_tpi2_intf) |
2232 | | MCFG_MOS6551_ADD(MOS6551A_TAG, XTAL_1_8432MHz, DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i4_w)) |
2233 | | MCFG_MOS6551_RXD_TXD_CALLBACKS(NULL, DEVWRITELINE(RS232_TAG, rs232_port_device, tx)) |
| 2235 | |
| 2236 | MCFG_DEVICE_ADD(MOS6551A_TAG, MOS6551, XTAL_1_8432MHz) |
| 2237 | MCFG_MOS6551_IRQ_HANDLER(DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i4_w)) |
| 2238 | MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE(RS232_TAG, rs232_port_device, tx)) |
| 2239 | |
2234 | 2240 | MCFG_MOS6526_ADD(MOS6526_TAG, VIC6569_CLOCK, 50, DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i2_w)) |
2235 | 2241 | MCFG_MOS6526_SERIAL_CALLBACKS(DEVWRITELINE(CBM2_USER_PORT_TAG, cbm2_user_port_device, cnt_w), DEVWRITELINE(CBM2_USER_PORT_TAG, cbm2_user_port_device, sp_w)) |
2236 | 2242 | MCFG_MOS6526_PORT_A_CALLBACKS(READ8(cbm2_state, cia_pa_r), WRITE8(cbm2_state, cia_pa_w)) |
r26706 | r26707 | |
2299 | 2305 | MCFG_PLS100_ADD(PLA1_TAG) |
2300 | 2306 | MCFG_TPI6525_ADD(MOS6525_1_TAG, tpi1_intf) |
2301 | 2307 | MCFG_TPI6525_ADD(MOS6525_2_TAG, tpi2_intf) |
2302 | | MCFG_MOS6551_ADD(MOS6551A_TAG, XTAL_1_8432MHz, DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i4_w)) |
2303 | | MCFG_MOS6551_RXD_TXD_CALLBACKS(NULL, DEVWRITELINE(RS232_TAG, rs232_port_device, tx)) |
| 2308 | |
| 2309 | MCFG_DEVICE_ADD(MOS6551A_TAG, MOS6551, XTAL_1_8432MHz) |
| 2310 | MCFG_MOS6551_IRQ_HANDLER(DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i4_w)) |
| 2311 | MCFG_MOS6551_TXD_HANDLER(DEVWRITELINE(RS232_TAG, rs232_port_device, tx)) |
| 2312 | |
2304 | 2313 | MCFG_MOS6526_ADD(MOS6526_TAG, XTAL_18MHz/9, 60, DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i2_w)) |
2305 | 2314 | MCFG_MOS6526_SERIAL_CALLBACKS(DEVWRITELINE(CBM2_USER_PORT_TAG, cbm2_user_port_device, cnt_w), DEVWRITELINE(CBM2_USER_PORT_TAG, cbm2_user_port_device, sp_w)) |
2306 | 2315 | MCFG_MOS6526_PORT_A_CALLBACKS(READ8(cbm2_state, cia_pa_r), WRITE8(cbm2_state, cia_pa_w)) |