trunk/src/emu/machine/mos6551.c
| r0 | r20769 | |
| 1 | /********************************************************************** |
| 2 | |
| 3 | MOS Technology 6551 Asynchronous Communication Interface Adapter |
| 4 | |
| 5 | Copyright MESS Team. |
| 6 | Visit http://mamedev.org for licensing and usage restrictions. |
| 7 | |
| 8 | **********************************************************************/ |
| 9 | |
| 10 | #include "mos6551.h" |
| 11 | |
| 12 | |
| 13 | |
| 14 | //************************************************************************** |
| 15 | // MACROS / CONSTANTS |
| 16 | //************************************************************************** |
| 17 | |
| 18 | #define LOG 0 |
| 19 | |
| 20 | |
| 21 | const int mos6551_device::brg_divider[] = { |
| 22 | 0, 2304, 1536, 1048, 856, 768, 384, 192, 96, 64, 48, 32, 24, 16, 12, 6 |
| 23 | }; |
| 24 | |
| 25 | |
| 26 | |
| 27 | //************************************************************************** |
| 28 | // DEVICE DEFINITIONS |
| 29 | //************************************************************************** |
| 30 | |
| 31 | // device type definition |
| 32 | const device_type MOS6551 = &device_creator<mos6551_device>; |
| 33 | |
| 34 | |
| 35 | |
| 36 | //************************************************************************** |
| 37 | // LIVE DEVICE |
| 38 | //************************************************************************** |
| 39 | |
| 40 | //------------------------------------------------- |
| 41 | // mos6551_device - constructor |
| 42 | //------------------------------------------------- |
| 43 | |
| 44 | mos6551_device::mos6551_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 45 | : device_t(mconfig, MOS6551, "MOS6551", tag, owner, clock), |
| 46 | device_serial_interface(mconfig, *this), |
| 47 | m_irq_handler(*this), |
| 48 | m_ctrl(0), |
| 49 | m_cmd(CMD_RIE), |
| 50 | m_st(ST_TDRE), |
| 51 | m_ext_rxc(0) |
| 52 | { |
| 53 | } |
| 54 | |
| 55 | |
| 56 | //------------------------------------------------- |
| 57 | // device_start - device-specific startup |
| 58 | //------------------------------------------------- |
| 59 | |
| 60 | void mos6551_device::device_start() |
| 61 | { |
| 62 | m_irq_handler.resolve_safe(); |
| 63 | |
| 64 | transmit_register_reset(); |
| 65 | receive_register_reset(); |
| 66 | } |
| 67 | |
| 68 | |
| 69 | //------------------------------------------------- |
| 70 | // device_reset - device-specific reset |
| 71 | //------------------------------------------------- |
| 72 | |
| 73 | void mos6551_device::device_reset() |
| 74 | { |
| 75 | m_ctrl = 0; |
| 76 | m_cmd = CMD_RIE; |
| 77 | |
| 78 | update_serial(); |
| 79 | } |
| 80 | |
| 81 | |
| 82 | //------------------------------------------------- |
| 83 | // tra_complete - |
| 84 | //------------------------------------------------- |
| 85 | |
| 86 | void mos6551_device::tra_complete() |
| 87 | { |
| 88 | if ((m_cmd & CMD_TC_MASK) == CMD_TC_TIE_RTS_LO) |
| 89 | { |
| 90 | m_st |= ST_IRQ; |
| 91 | m_irq_handler(ASSERT_LINE); |
| 92 | } |
| 93 | |
| 94 | if (!(m_st & ST_TDRE)) |
| 95 | { |
| 96 | transmit_register_setup(m_tdr); |
| 97 | m_st |= ST_TDRE; |
| 98 | } |
| 99 | } |
| 100 | |
| 101 | |
| 102 | //------------------------------------------------- |
| 103 | // rcv_complete - |
| 104 | //------------------------------------------------- |
| 105 | |
| 106 | void mos6551_device::rcv_complete() |
| 107 | { |
| 108 | if (m_st & ST_RDRF) |
| 109 | { |
| 110 | m_st |= ST_OR; |
| 111 | } |
| 112 | else |
| 113 | { |
| 114 | m_st |= ST_RDRF; |
| 115 | |
| 116 | if (!(m_cmd & CMD_RIE)) |
| 117 | { |
| 118 | m_st |= ST_IRQ; |
| 119 | m_irq_handler(ASSERT_LINE); |
| 120 | } |
| 121 | } |
| 122 | } |
| 123 | |
| 124 | |
| 125 | //------------------------------------------------- |
| 126 | // input_callback - |
| 127 | //------------------------------------------------- |
| 128 | |
| 129 | void mos6551_device::input_callback(UINT8 state) |
| 130 | { |
| 131 | m_input_state = state; |
| 132 | } |
| 133 | |
| 134 | |
| 135 | //------------------------------------------------- |
| 136 | // update_serial - |
| 137 | //------------------------------------------------- |
| 138 | |
| 139 | void mos6551_device::update_serial() |
| 140 | { |
| 141 | int brg = m_ctrl & CTRL_BRG_MASK; |
| 142 | |
| 143 | if (brg == CTRL_BRG_16X_EXTCLK) |
| 144 | { |
| 145 | set_rcv_rate(m_ext_rxc / 16); |
| 146 | set_tra_rate(m_ext_rxc / 16); |
| 147 | } |
| 148 | else |
| 149 | { |
| 150 | int baud = clock() / brg_divider[brg] / 16; |
| 151 | |
| 152 | set_tra_rate(baud); |
| 153 | |
| 154 | if (m_ctrl & CTRL_RXC_BRG) |
| 155 | { |
| 156 | set_rcv_rate(baud); |
| 157 | } |
| 158 | else |
| 159 | { |
| 160 | set_rcv_rate(m_ext_rxc / 16); |
| 161 | } |
| 162 | |
| 163 | int num_data_bits = 8; |
| 164 | int stop_bit_count = 1; |
| 165 | int parity_code = SERIAL_PARITY_NONE; |
| 166 | |
| 167 | switch (m_ctrl & CTRL_WL_MASK) |
| 168 | { |
| 169 | case CTRL_WL_8: num_data_bits = 8; break; |
| 170 | case CTRL_WL_7: num_data_bits = 7; break; |
| 171 | case CTRL_WL_6: num_data_bits = 6; break; |
| 172 | case CTRL_WL_5: num_data_bits = 5; break; |
| 173 | } |
| 174 | |
| 175 | set_data_frame(num_data_bits, stop_bit_count, parity_code); |
| 176 | } |
| 177 | |
| 178 | if (m_cmd & CMD_DTR) |
| 179 | m_connection_state |= SERIAL_STATE_DTR; |
| 180 | else |
| 181 | m_connection_state &= ~SERIAL_STATE_DTR; |
| 182 | |
| 183 | if ((m_cmd & CMD_TC_MASK) == CMD_TC_RTS_HI) |
| 184 | m_connection_state &= ~SERIAL_STATE_RTS; |
| 185 | else |
| 186 | m_connection_state |= SERIAL_STATE_RTS; |
| 187 | |
| 188 | serial_connection_out(); |
| 189 | } |
| 190 | |
| 191 | |
| 192 | //------------------------------------------------- |
| 193 | // read - |
| 194 | //------------------------------------------------- |
| 195 | |
| 196 | READ8_MEMBER( mos6551_device::read ) |
| 197 | { |
| 198 | UINT8 data = 0; |
| 199 | |
| 200 | switch (offset & 0x03) |
| 201 | { |
| 202 | case 0: |
| 203 | if (is_receive_register_full()) |
| 204 | { |
| 205 | receive_register_extract(); |
| 206 | data = get_received_char(); |
| 207 | } |
| 208 | |
| 209 | m_st &= ~(ST_RDRF | ST_OR | ST_FE | ST_PE); |
| 210 | break; |
| 211 | |
| 212 | case 1: |
| 213 | data = m_st; |
| 214 | m_st &= ~ST_IRQ; |
| 215 | m_irq_handler(CLEAR_LINE); |
| 216 | break; |
| 217 | |
| 218 | case 2: |
| 219 | data = m_cmd; |
| 220 | break; |
| 221 | |
| 222 | case 3: |
| 223 | data = m_ctrl; |
| 224 | break; |
| 225 | } |
| 226 | |
| 227 | return data; |
| 228 | } |
| 229 | |
| 230 | |
| 231 | //------------------------------------------------- |
| 232 | // write - |
| 233 | //------------------------------------------------- |
| 234 | |
| 235 | WRITE8_MEMBER( mos6551_device::write ) |
| 236 | { |
| 237 | switch (offset & 0x03) |
| 238 | { |
| 239 | case 0: |
| 240 | m_tdr = data; |
| 241 | m_st &= ~ST_TDRE; |
| 242 | |
| 243 | if (is_transmit_register_empty()) |
| 244 | { |
| 245 | transmit_register_setup(m_tdr); |
| 246 | m_st |= ST_TDRE; |
| 247 | } |
| 248 | break; |
| 249 | |
| 250 | case 1: |
| 251 | // programmed reset |
| 252 | m_cmd = (m_cmd & 0xe0) | CMD_RIE; |
| 253 | m_st &= ~ST_OR; |
| 254 | update_serial(); |
| 255 | break; |
| 256 | |
| 257 | case 2: |
| 258 | m_cmd = data; |
| 259 | update_serial(); |
| 260 | break; |
| 261 | |
| 262 | case 3: |
| 263 | m_ctrl = data; |
| 264 | update_serial(); |
| 265 | break; |
| 266 | } |
| 267 | } |
| 268 | |
| 269 | |
| 270 | //------------------------------------------------- |
| 271 | // set_rxc - set external receiver clock |
| 272 | //------------------------------------------------- |
| 273 | |
| 274 | void mos6551_device::set_rxc(int clock) |
| 275 | { |
| 276 | m_ext_rxc = clock; |
| 277 | } |
trunk/src/mess/drivers/c128.c
| r20768 | r20769 | |
| 50 | 50 | |
| 51 | 51 | m_subcpu->set_input_line(M8502_IRQ_LINE, irq); |
| 52 | 52 | m_subcpu->set_input_line(INPUT_LINE_NMI, nmi); |
| 53 | | |
| 54 | | int flag = m_cass_rd && m_iec_srq; |
| 55 | | |
| 56 | | m_cia1->flag_w(flag); |
| 57 | 53 | } |
| 58 | 54 | |
| 59 | 55 | |
| r20768 | r20769 | |
| 1328 | 1324 | |
| 1329 | 1325 | |
| 1330 | 1326 | //------------------------------------------------- |
| 1331 | | // PET_DATASSETTE_PORT_INTERFACE( datassette_intf ) |
| 1332 | | //------------------------------------------------- |
| 1333 | | |
| 1334 | | WRITE_LINE_MEMBER( c128_state::tape_read_w ) |
| 1335 | | { |
| 1336 | | m_cass_rd = state; |
| 1337 | | |
| 1338 | | check_interrupts(); |
| 1339 | | } |
| 1340 | | |
| 1341 | | static PET_DATASSETTE_PORT_INTERFACE( datassette_intf ) |
| 1342 | | { |
| 1343 | | DEVCB_DRIVER_LINE_MEMBER(c128_state, tape_read_w), |
| 1344 | | }; |
| 1345 | | |
| 1346 | | |
| 1347 | | //------------------------------------------------- |
| 1348 | 1327 | // C64_EXPANSION_INTERFACE( expansion_intf ) |
| 1349 | 1328 | //------------------------------------------------- |
| 1350 | 1329 | |
| r20768 | r20769 | |
| 1462 | 1441 | save_item(NAME(m_exp_irq)); |
| 1463 | 1442 | save_item(NAME(m_exp_nmi)); |
| 1464 | 1443 | save_item(NAME(m_exp_dma)); |
| 1465 | | save_item(NAME(m_cass_rd)); |
| 1466 | | save_item(NAME(m_iec_srq)); |
| 1467 | 1444 | save_item(NAME(m_vic_k)); |
| 1468 | 1445 | save_item(NAME(m_caps_lock)); |
| 1469 | 1446 | } |
| r20768 | r20769 | |
| 1531 | 1508 | MCFG_MOS6526_ADD(MOS6526_1_TAG, VIC6567_CLOCK, 60, cia1_intf) |
| 1532 | 1509 | MCFG_MOS6526_ADD(MOS6526_2_TAG, VIC6567_CLOCK, 60, cia2_intf) |
| 1533 | 1510 | MCFG_QUICKLOAD_ADD("quickload", cbm_c64, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) |
| 1534 | | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, datassette_intf, cbm_datassette_devices, "c1530", NULL) |
| 1511 | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, "c1530", NULL, DEVWRITELINE(MOS6526_2_TAG, mos6526_device, flag_w)) |
| 1535 | 1512 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, NULL, NULL) |
| 1513 | MCFG_VCS_CONTROL_PORT_TRIGGER_HANDLER(DEVWRITELINE(MOS8564_TAG, mos8564_device, lp_w)) |
| 1536 | 1514 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vcs_control_port_devices, "joy", NULL) |
| 1537 | 1515 | MCFG_C64_EXPANSION_SLOT_ADD(C64_EXPANSION_SLOT_TAG, VIC6567_CLOCK, expansion_intf, c64_expansion_cards, NULL, NULL) |
| 1538 | 1516 | MCFG_C64_USER_PORT_ADD(C64_USER_PORT_TAG, user_intf, c64_user_port_cards, NULL, NULL) |
| 1539 | 1517 | |
| 1540 | 1518 | // software list |
| 1541 | 1519 | MCFG_SOFTWARE_LIST_ADD("cart_list_vic10", "vic10") |
| 1542 | | MCFG_SOFTWARE_LIST_FILTER("cart_list_vic10", "NTSC") |
| 1543 | 1520 | MCFG_SOFTWARE_LIST_ADD("cart_list_c64", "c64_cart") |
| 1544 | | MCFG_SOFTWARE_LIST_FILTER("cart_list_c64", "NTSC") |
| 1545 | | MCFG_SOFTWARE_LIST_ADD("cart_list_c128", "c128_cart") |
| 1546 | | MCFG_SOFTWARE_LIST_FILTER("cart_list_c128", "NTSC") |
| 1547 | | MCFG_SOFTWARE_LIST_ADD("disk_list_c64", "c64_flop") |
| 1548 | | MCFG_SOFTWARE_LIST_FILTER("disk_list_c64", "NTSC") |
| 1549 | | MCFG_SOFTWARE_LIST_ADD("disk_list_c128", "c128_flop") |
| 1550 | | MCFG_SOFTWARE_LIST_FILTER("disk_list_c128", "NTSC") |
| 1521 | MCFG_SOFTWARE_LIST_ADD("cart_list", "c128_cart") |
| 1522 | MCFG_SOFTWARE_LIST_ADD("cass_list_c64", "c64_cass") |
| 1523 | MCFG_SOFTWARE_LIST_ADD("flop_list_c64", "c64_flop") |
| 1524 | MCFG_SOFTWARE_LIST_ADD("flop_list", "c128_flop") |
| 1551 | 1525 | MCFG_SOFTWARE_LIST_ADD("from_list", "c128_rom") |
| 1526 | MCFG_SOFTWARE_LIST_FILTER("cart_list_vic10", "NTSC") |
| 1527 | MCFG_SOFTWARE_LIST_FILTER("cart_list_c64", "NTSC") |
| 1528 | MCFG_SOFTWARE_LIST_FILTER("cart_list", "NTSC") |
| 1529 | MCFG_SOFTWARE_LIST_FILTER("cass_list_c64", "NTSC") |
| 1530 | MCFG_SOFTWARE_LIST_FILTER("flop_list_c64", "NTSC") |
| 1531 | MCFG_SOFTWARE_LIST_FILTER("flop_list", "NTSC") |
| 1552 | 1532 | MCFG_SOFTWARE_LIST_FILTER("from_list", "NTSC") |
| 1553 | 1533 | |
| 1554 | 1534 | // function ROM |
| r20768 | r20769 | |
| 1635 | 1615 | MCFG_MOS6526_ADD(MOS6526_1_TAG, VIC6569_CLOCK, 50, cia1_intf) |
| 1636 | 1616 | MCFG_MOS6526_ADD(MOS6526_2_TAG, VIC6569_CLOCK, 50, cia2_intf) |
| 1637 | 1617 | MCFG_QUICKLOAD_ADD("quickload", cbm_c64, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) |
| 1638 | | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, datassette_intf, cbm_datassette_devices, "c1530", NULL) |
| 1618 | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, "c1530", NULL, DEVWRITELINE(MOS6526_2_TAG, mos6526_device, flag_w)) |
| 1639 | 1619 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, NULL, NULL) |
| 1620 | MCFG_VCS_CONTROL_PORT_TRIGGER_HANDLER(DEVWRITELINE(MOS8566_TAG, mos8566_device, lp_w)) |
| 1640 | 1621 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vcs_control_port_devices, "joy", NULL) |
| 1641 | 1622 | MCFG_C64_EXPANSION_SLOT_ADD(C64_EXPANSION_SLOT_TAG, VIC6569_CLOCK, expansion_intf, c64_expansion_cards, NULL, NULL) |
| 1642 | 1623 | MCFG_C64_USER_PORT_ADD(C64_USER_PORT_TAG, user_intf, c64_user_port_cards, NULL, NULL) |
| 1643 | 1624 | |
| 1644 | 1625 | // software list |
| 1645 | 1626 | MCFG_SOFTWARE_LIST_ADD("cart_list_vic10", "vic10") |
| 1646 | | MCFG_SOFTWARE_LIST_FILTER("cart_list_vic10", "PAL") |
| 1647 | 1627 | MCFG_SOFTWARE_LIST_ADD("cart_list_c64", "c64_cart") |
| 1648 | | MCFG_SOFTWARE_LIST_FILTER("cart_list_c64", "PAL") |
| 1649 | | MCFG_SOFTWARE_LIST_ADD("cart_list_c128", "c128_cart") |
| 1650 | | MCFG_SOFTWARE_LIST_FILTER("cart_list_c128", "PAL") |
| 1651 | | MCFG_SOFTWARE_LIST_ADD("disk_list_c64", "c64_flop") |
| 1652 | | MCFG_SOFTWARE_LIST_FILTER("disk_list_c64", "PAL") |
| 1653 | | MCFG_SOFTWARE_LIST_ADD("disk_list_c128", "c128_flop") |
| 1654 | | MCFG_SOFTWARE_LIST_FILTER("disk_list_c128", "PAL") |
| 1628 | MCFG_SOFTWARE_LIST_ADD("cart_list", "c128_cart") |
| 1629 | MCFG_SOFTWARE_LIST_ADD("cass_list_c64", "c64_cass") |
| 1630 | MCFG_SOFTWARE_LIST_ADD("flop_list_c64", "c64_flop") |
| 1631 | MCFG_SOFTWARE_LIST_ADD("flop_list", "c128_flop") |
| 1655 | 1632 | MCFG_SOFTWARE_LIST_ADD("from_list", "c128_rom") |
| 1633 | MCFG_SOFTWARE_LIST_FILTER("cart_list_vic10", "PAL") |
| 1634 | MCFG_SOFTWARE_LIST_FILTER("cart_list_c64", "PAL") |
| 1635 | MCFG_SOFTWARE_LIST_FILTER("cart_list", "PAL") |
| 1636 | MCFG_SOFTWARE_LIST_FILTER("cass_list_c64", "PAL") |
| 1637 | MCFG_SOFTWARE_LIST_FILTER("flop_list_c64", "PAL") |
| 1638 | MCFG_SOFTWARE_LIST_FILTER("flop_list", "PAL") |
| 1656 | 1639 | MCFG_SOFTWARE_LIST_FILTER("from_list", "PAL") |
| 1657 | 1640 | |
| 1658 | 1641 | // function ROM |
trunk/src/mess/drivers/c64.c
| r20768 | r20769 | |
| 48 | 48 | |
| 49 | 49 | m_maincpu->set_input_line(M6510_IRQ_LINE, irq); |
| 50 | 50 | m_maincpu->set_input_line(INPUT_LINE_NMI, nmi); |
| 51 | | |
| 52 | | int flag = m_cass_rd && m_iec_srq; |
| 53 | | |
| 54 | | m_cia1->flag_w(flag); |
| 55 | 51 | } |
| 56 | 52 | |
| 57 | 53 | |
| r20768 | r20769 | |
| 999 | 995 | |
| 1000 | 996 | |
| 1001 | 997 | //------------------------------------------------- |
| 1002 | | // PET_DATASSETTE_PORT_INTERFACE( datassette_intf ) |
| 1003 | | //------------------------------------------------- |
| 1004 | | |
| 1005 | | WRITE_LINE_MEMBER( c64_state::tape_read_w ) |
| 1006 | | { |
| 1007 | | m_cass_rd = state; |
| 1008 | | |
| 1009 | | check_interrupts(); |
| 1010 | | } |
| 1011 | | |
| 1012 | | static PET_DATASSETTE_PORT_INTERFACE( datassette_intf ) |
| 1013 | | { |
| 1014 | | DEVCB_DRIVER_LINE_MEMBER(c64_state, tape_read_w), |
| 1015 | | }; |
| 1016 | | |
| 1017 | | |
| 1018 | | //------------------------------------------------- |
| 1019 | 998 | // CBM_IEC_INTERFACE( iec_intf ) |
| 1020 | 999 | //------------------------------------------------- |
| 1021 | 1000 | |
| 1022 | | WRITE_LINE_MEMBER( c64_state::iec_srq_w ) |
| 1023 | | { |
| 1024 | | m_iec_srq = state; |
| 1025 | | |
| 1026 | | check_interrupts(); |
| 1027 | | } |
| 1028 | | |
| 1029 | 1001 | static CBM_IEC_INTERFACE( iec_intf ) |
| 1030 | 1002 | { |
| 1031 | | DEVCB_DRIVER_LINE_MEMBER(c64_state, iec_srq_w), |
| 1003 | DEVCB_DEVICE_LINE_MEMBER(MOS6526_1_TAG, mos6526_device, flag_w), |
| 1032 | 1004 | DEVCB_DEVICE_LINE_MEMBER(C64_USER_PORT_TAG, c64_user_port_device, atn_w), |
| 1033 | 1005 | DEVCB_NULL, |
| 1034 | 1006 | DEVCB_NULL, |
| r20768 | r20769 | |
| 1143 | 1115 | save_item(NAME(m_exp_irq)); |
| 1144 | 1116 | save_item(NAME(m_exp_nmi)); |
| 1145 | 1117 | save_item(NAME(m_exp_dma)); |
| 1146 | | save_item(NAME(m_cass_rd)); |
| 1147 | | save_item(NAME(m_iec_srq)); |
| 1148 | 1118 | } |
| 1149 | 1119 | |
| 1150 | 1120 | |
| r20768 | r20769 | |
| 1194 | 1164 | MCFG_PLS100_ADD(PLA_TAG) |
| 1195 | 1165 | MCFG_MOS6526_ADD(MOS6526_1_TAG, VIC6567_CLOCK, 60, cia1_intf) |
| 1196 | 1166 | MCFG_MOS6526_ADD(MOS6526_2_TAG, VIC6567_CLOCK, 60, cia2_intf) |
| 1197 | | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, datassette_intf, cbm_datassette_devices, "c1530", NULL) |
| 1167 | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, "c1530", NULL, DEVWRITELINE(MOS6526_1_TAG, mos6526_device, flag_w)) |
| 1198 | 1168 | MCFG_CBM_IEC_ADD(iec_intf, "c1541") |
| 1199 | 1169 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, NULL, NULL) |
| 1170 | MCFG_VCS_CONTROL_PORT_TRIGGER_HANDLER(DEVWRITELINE(MOS6567_TAG, mos6567_device, lp_w)) |
| 1200 | 1171 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vcs_control_port_devices, "joy", NULL) |
| 1201 | 1172 | MCFG_C64_EXPANSION_SLOT_ADD(C64_EXPANSION_SLOT_TAG, VIC6567_CLOCK, expansion_intf, c64_expansion_cards, NULL, NULL) |
| 1202 | 1173 | MCFG_C64_USER_PORT_ADD(C64_USER_PORT_TAG, user_intf, c64_user_port_cards, NULL, NULL) |
| r20768 | r20769 | |
| 1294 | 1265 | MCFG_PLS100_ADD(PLA_TAG) |
| 1295 | 1266 | MCFG_MOS6526_ADD(MOS6526_1_TAG, VIC6569_CLOCK, 50, cia1_intf) |
| 1296 | 1267 | MCFG_MOS6526_ADD(MOS6526_2_TAG, VIC6569_CLOCK, 50, cia2_intf) |
| 1297 | | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, datassette_intf, cbm_datassette_devices, "c1530", NULL) |
| 1268 | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, "c1530", NULL, DEVWRITELINE(MOS6526_1_TAG, mos6526_device, flag_w)) |
| 1298 | 1269 | MCFG_CBM_IEC_ADD(iec_intf, "c1541") |
| 1299 | 1270 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, NULL, NULL) |
| 1271 | MCFG_VCS_CONTROL_PORT_TRIGGER_HANDLER(DEVWRITELINE(MOS6569_TAG, mos6569_device, lp_w)) |
| 1300 | 1272 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vcs_control_port_devices, "joy", NULL) |
| 1301 | 1273 | MCFG_C64_EXPANSION_SLOT_ADD(C64_EXPANSION_SLOT_TAG, VIC6569_CLOCK, expansion_intf, c64_expansion_cards, NULL, NULL) |
| 1302 | 1274 | MCFG_C64_USER_PORT_ADD(C64_USER_PORT_TAG, user_intf, c64_user_port_cards, NULL, NULL) |
| r20768 | r20769 | |
| 1374 | 1346 | MCFG_MOS6526_ADD(MOS6526_2_TAG, VIC6569_CLOCK, 50, cia2_intf) |
| 1375 | 1347 | MCFG_CBM_IEC_BUS_ADD(iec_intf) |
| 1376 | 1348 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, NULL, NULL) |
| 1349 | MCFG_VCS_CONTROL_PORT_TRIGGER_HANDLER(DEVWRITELINE(MOS6569_TAG, mos6569_device, lp_w)) |
| 1377 | 1350 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vcs_control_port_devices, "joy", NULL) |
| 1378 | 1351 | MCFG_C64_EXPANSION_SLOT_ADD(C64_EXPANSION_SLOT_TAG, VIC6569_CLOCK, expansion_intf, c64_expansion_cards, NULL, NULL) |
| 1379 | 1352 | MCFG_C64_USER_PORT_ADD(C64_USER_PORT_TAG, user_intf, c64_user_port_cards, NULL, NULL) |
trunk/src/mess/drivers/cbm2.c
| r20768 | r20769 | |
| 1663 | 1663 | |
| 1664 | 1664 | |
| 1665 | 1665 | //------------------------------------------------- |
| 1666 | | // PET_DATASSETTE_PORT_INTERFACE( datassette_intf ) |
| 1667 | | //------------------------------------------------- |
| 1668 | | |
| 1669 | | WRITE_LINE_MEMBER( cbm2_state::tape_read_w ) |
| 1670 | | { |
| 1671 | | m_cass_rd = state; |
| 1672 | | |
| 1673 | | m_cia->flag_w(m_cass_rd && m_user_flag); |
| 1674 | | } |
| 1675 | | |
| 1676 | | static PET_DATASSETTE_PORT_INTERFACE( datassette_intf ) |
| 1677 | | { |
| 1678 | | DEVCB_DRIVER_LINE_MEMBER(cbm2_state, tape_read_w) |
| 1679 | | }; |
| 1680 | | |
| 1681 | | |
| 1682 | | //------------------------------------------------- |
| 1683 | | // DS75160A_INTERFACE( ds75160a_intf ) |
| 1684 | | //------------------------------------------------- |
| 1685 | | |
| 1686 | | static DS75160A_INTERFACE( ds75160a_intf ) |
| 1687 | | { |
| 1688 | | DEVCB_DEVICE_MEMBER(IEEE488_TAG, ieee488_device, dio_r), |
| 1689 | | DEVCB_DEVICE_MEMBER(IEEE488_TAG, ieee488_device, dio_w) |
| 1690 | | }; |
| 1691 | | |
| 1692 | | |
| 1693 | | //------------------------------------------------- |
| 1694 | 1666 | // DS75161A_INTERFACE( ds75161a_intf ) |
| 1695 | 1667 | //------------------------------------------------- |
| 1696 | 1668 | |
| r20768 | r20769 | |
| 2012 | 1984 | save_item(NAME(m_ntsc)); |
| 2013 | 1985 | save_item(NAME(m_todclk)); |
| 2014 | 1986 | save_item(NAME(m_tpi1_irq)); |
| 2015 | | save_item(NAME(m_cass_rd)); |
| 2016 | | save_item(NAME(m_user_flag)); |
| 2017 | 1987 | save_item(NAME(m_tpi2_pa)); |
| 2018 | 1988 | save_item(NAME(m_tpi2_pb)); |
| 2019 | 1989 | save_item(NAME(m_cia_pa)); |
| r20768 | r20769 | |
| 2132 | 2102 | m_busy2 = 1; |
| 2133 | 2103 | m_graphics = 1; |
| 2134 | 2104 | m_tpi1_irq = CLEAR_LINE; |
| 2135 | | m_cass_rd = 1; |
| 2136 | 2105 | m_user_irq = CLEAR_LINE; |
| 2137 | 2106 | |
| 2138 | 2107 | m_maincpu->reset(); |
| r20768 | r20769 | |
| 2214 | 2183 | MCFG_PLS100_ADD(PLA2_TAG) |
| 2215 | 2184 | MCFG_TPI6525_ADD(MOS6525_1_TAG, p500_tpi1_intf) |
| 2216 | 2185 | MCFG_TPI6525_ADD(MOS6525_2_TAG, p500_tpi2_intf) |
| 2217 | | MCFG_ACIA6551_ADD(MOS6551A_TAG) |
| 2186 | MCFG_MOS6551_ADD(MOS6551A_TAG, XTAL_1_8432MHz, DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i4_w)) |
| 2218 | 2187 | MCFG_MOS6526_ADD(MOS6526_TAG, VIC6567_CLOCK, 60, cia_intf) |
| 2219 | | MCFG_DS75160A_ADD(DS75160A_TAG, ds75160a_intf) |
| 2188 | MCFG_DS75160A_ADD(DS75160A_TAG, DEVREAD8(IEEE488_TAG, ieee488_device, dio_r), DEVWRITE8(IEEE488_TAG, ieee488_device, dio_w)) |
| 2220 | 2189 | MCFG_DS75161A_ADD(DS75161A_TAG, ds75161a_intf) |
| 2221 | 2190 | MCFG_CBM_IEEE488_ADD(ieee488_intf, "c8050") |
| 2222 | | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, datassette_intf, cbm_datassette_devices, NULL, NULL) |
| 2191 | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, NULL, NULL, DEVWRITELINE(MOS6526_TAG, mos6526_device, flag_w)) |
| 2223 | 2192 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, NULL, NULL) |
| 2193 | MCFG_VCS_CONTROL_PORT_TRIGGER_HANDLER(DEVWRITELINE(MOS6567_TAG, mos6567_device, lp_w)) |
| 2224 | 2194 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vcs_control_port_devices, NULL, NULL) |
| 2225 | 2195 | MCFG_CBM2_EXPANSION_SLOT_ADD(CBM2_EXPANSION_SLOT_TAG, VIC6567_CLOCK, cbm2_expansion_cards, NULL, NULL) |
| 2226 | 2196 | MCFG_CBM2_USER_PORT_ADD(CBM2_USER_PORT_TAG, p500_user_intf, cbm2_user_port_cards, NULL, NULL) |
| r20768 | r20769 | |
| 2264 | 2234 | MCFG_PLS100_ADD(PLA2_TAG) |
| 2265 | 2235 | MCFG_TPI6525_ADD(MOS6525_1_TAG, p500_tpi1_intf) |
| 2266 | 2236 | MCFG_TPI6525_ADD(MOS6525_2_TAG, p500_tpi2_intf) |
| 2267 | | MCFG_ACIA6551_ADD(MOS6551A_TAG) |
| 2237 | MCFG_MOS6551_ADD(MOS6551A_TAG, XTAL_1_8432MHz, DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i4_w)) |
| 2268 | 2238 | MCFG_MOS6526_ADD(MOS6526_TAG, VIC6569_CLOCK, 50, cia_intf) |
| 2269 | | MCFG_DS75160A_ADD(DS75160A_TAG, ds75160a_intf) |
| 2239 | MCFG_DS75160A_ADD(DS75160A_TAG, DEVREAD8(IEEE488_TAG, ieee488_device, dio_r), DEVWRITE8(IEEE488_TAG, ieee488_device, dio_w)) |
| 2270 | 2240 | MCFG_DS75161A_ADD(DS75161A_TAG, ds75161a_intf) |
| 2271 | 2241 | MCFG_CBM_IEEE488_ADD(ieee488_intf, "c8050") |
| 2272 | | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, datassette_intf, cbm_datassette_devices, NULL, NULL) |
| 2242 | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, NULL, NULL, DEVWRITELINE(MOS6526_TAG, mos6526_device, flag_w)) |
| 2273 | 2243 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, NULL, NULL) |
| 2244 | MCFG_VCS_CONTROL_PORT_TRIGGER_HANDLER(DEVWRITELINE(MOS6569_TAG, mos6569_device, lp_w)) |
| 2274 | 2245 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vcs_control_port_devices, NULL, NULL) |
| 2275 | 2246 | MCFG_CBM2_EXPANSION_SLOT_ADD(CBM2_EXPANSION_SLOT_TAG, VIC6569_CLOCK, cbm2_expansion_cards, NULL, NULL) |
| 2276 | 2247 | MCFG_CBM2_USER_PORT_ADD(CBM2_USER_PORT_TAG, p500_user_intf, cbm2_user_port_cards, NULL, NULL) |
| r20768 | r20769 | |
| 2321 | 2292 | MCFG_PLS100_ADD(PLA1_TAG) |
| 2322 | 2293 | MCFG_TPI6525_ADD(MOS6525_1_TAG, tpi1_intf) |
| 2323 | 2294 | MCFG_TPI6525_ADD(MOS6525_2_TAG, tpi2_intf) |
| 2324 | | MCFG_ACIA6551_ADD(MOS6551A_TAG) |
| 2295 | MCFG_MOS6551_ADD(MOS6551A_TAG, XTAL_1_8432MHz, DEVWRITELINE(MOS6525_1_TAG, tpi6525_device, i4_w)) |
| 2325 | 2296 | MCFG_MOS6526_ADD(MOS6526_TAG, XTAL_18MHz/9, 60, cia_intf) |
| 2326 | | MCFG_DS75160A_ADD(DS75160A_TAG, ds75160a_intf) |
| 2297 | MCFG_DS75160A_ADD(DS75160A_TAG, DEVREAD8(IEEE488_TAG, ieee488_device, dio_r), DEVWRITE8(IEEE488_TAG, ieee488_device, dio_w)) |
| 2327 | 2298 | MCFG_DS75161A_ADD(DS75161A_TAG, ds75161a_intf) |
| 2328 | 2299 | MCFG_CBM_IEEE488_ADD(ieee488_intf, "c8050") |
| 2329 | | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, datassette_intf, cbm_datassette_devices, NULL, NULL) |
| 2300 | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, NULL, NULL, DEVWRITELINE(MOS6526_TAG, mos6526_device, flag_w)) |
| 2330 | 2301 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, NULL, NULL) |
| 2331 | 2302 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vcs_control_port_devices, NULL, NULL) |
| 2332 | 2303 | MCFG_CBM2_EXPANSION_SLOT_ADD(CBM2_EXPANSION_SLOT_TAG, XTAL_18MHz/9, cbm2_expansion_cards, NULL, NULL) |
| r20768 | r20769 | |
| 2345 | 2316 | // MACHINE_CONFIG( b128 ) |
| 2346 | 2317 | //------------------------------------------------- |
| 2347 | 2318 | |
| 2348 | | static MACHINE_CONFIG_START( b128, cbm2_state ) |
| 2349 | | MCFG_FRAGMENT_ADD(cbm2lp_ntsc) |
| 2319 | static MACHINE_CONFIG_DERIVED( b128, cbm2lp_ntsc ) |
| 2350 | 2320 | MCFG_FRAGMENT_ADD(128k) |
| 2351 | 2321 | MACHINE_CONFIG_END |
| 2352 | 2322 | |
| r20768 | r20769 | |
| 2355 | 2325 | // MACHINE_CONFIG( b256 ) |
| 2356 | 2326 | //------------------------------------------------- |
| 2357 | 2327 | |
| 2358 | | static MACHINE_CONFIG_START( b256, cbm2_state ) |
| 2359 | | MCFG_FRAGMENT_ADD(cbm2lp_ntsc) |
| 2328 | static MACHINE_CONFIG_DERIVED( b256, cbm2lp_ntsc ) |
| 2360 | 2329 | MCFG_FRAGMENT_ADD(256k) |
| 2361 | 2330 | MACHINE_CONFIG_END |
| 2362 | 2331 | |
| r20768 | r20769 | |
| 2365 | 2334 | // MACHINE_CONFIG( cbm2lp_pal ) |
| 2366 | 2335 | //------------------------------------------------- |
| 2367 | 2336 | |
| 2368 | | static MACHINE_CONFIG_START( cbm2lp_pal, cbm2_state ) |
| 2369 | | MCFG_FRAGMENT_ADD(cbm2lp_ntsc) |
| 2370 | | |
| 2337 | static MACHINE_CONFIG_DERIVED( cbm2lp_pal, cbm2lp_ntsc ) |
| 2371 | 2338 | MCFG_MACHINE_START_OVERRIDE(cbm2_state, cbm2_pal) |
| 2372 | 2339 | |
| 2373 | 2340 | MCFG_DEVICE_REMOVE(MOS6526_TAG) |
| r20768 | r20769 | |
| 2379 | 2346 | // MACHINE_CONFIG( cbm610 ) |
| 2380 | 2347 | //------------------------------------------------- |
| 2381 | 2348 | |
| 2382 | | static MACHINE_CONFIG_START( cbm610, cbm2_state ) |
| 2383 | | MCFG_FRAGMENT_ADD(cbm2lp_pal) |
| 2349 | static MACHINE_CONFIG_DERIVED( cbm610, cbm2lp_pal ) |
| 2384 | 2350 | MCFG_FRAGMENT_ADD(128k) |
| 2385 | 2351 | MACHINE_CONFIG_END |
| 2386 | 2352 | |
| r20768 | r20769 | |
| 2389 | 2355 | // MACHINE_CONFIG( cbm620 ) |
| 2390 | 2356 | //------------------------------------------------- |
| 2391 | 2357 | |
| 2392 | | static MACHINE_CONFIG_START( cbm620, cbm2_state ) |
| 2393 | | MCFG_FRAGMENT_ADD(cbm2lp_pal) |
| 2358 | static MACHINE_CONFIG_DERIVED( cbm620, cbm2lp_pal ) |
| 2394 | 2359 | MCFG_FRAGMENT_ADD(256k) |
| 2395 | 2360 | MACHINE_CONFIG_END |
| 2396 | 2361 | |
| r20768 | r20769 | |
| 2399 | 2364 | // MACHINE_CONFIG( cbm2hp_ntsc ) |
| 2400 | 2365 | //------------------------------------------------- |
| 2401 | 2366 | |
| 2402 | | static MACHINE_CONFIG_START( cbm2hp_ntsc, cbm2hp_state ) |
| 2403 | | MCFG_FRAGMENT_ADD(cbm2lp_ntsc) |
| 2404 | | |
| 2405 | | // devices |
| 2367 | static MACHINE_CONFIG_DERIVED_CLASS( cbm2hp_ntsc, cbm2lp_ntsc, cbm2hp_state ) |
| 2406 | 2368 | MCFG_DEVICE_REMOVE(MOS6525_2_TAG) |
| 2407 | 2369 | MCFG_TPI6525_ADD(MOS6525_2_TAG, hp_tpi2_intf) |
| 2408 | 2370 | MACHINE_CONFIG_END |
| r20768 | r20769 | |
| 2412 | 2374 | // MACHINE_CONFIG( b128hp ) |
| 2413 | 2375 | //------------------------------------------------- |
| 2414 | 2376 | |
| 2415 | | static MACHINE_CONFIG_START( b128hp, cbm2hp_state ) |
| 2416 | | MCFG_FRAGMENT_ADD(cbm2hp_ntsc) |
| 2377 | static MACHINE_CONFIG_DERIVED( b128hp, cbm2hp_ntsc ) |
| 2417 | 2378 | MCFG_FRAGMENT_ADD(128k) |
| 2418 | 2379 | MACHINE_CONFIG_END |
| 2419 | 2380 | |
| r20768 | r20769 | |
| 2422 | 2383 | // MACHINE_CONFIG( b256hp ) |
| 2423 | 2384 | //------------------------------------------------- |
| 2424 | 2385 | |
| 2425 | | static MACHINE_CONFIG_START( b256hp, cbm2hp_state ) |
| 2426 | | MCFG_FRAGMENT_ADD(cbm2hp_ntsc) |
| 2386 | static MACHINE_CONFIG_DERIVED( b256hp, cbm2hp_ntsc ) |
| 2427 | 2387 | MCFG_FRAGMENT_ADD(256k) |
| 2428 | 2388 | MACHINE_CONFIG_END |
| 2429 | 2389 | |
| r20768 | r20769 | |
| 2432 | 2392 | // MACHINE_CONFIG( bx256hp ) |
| 2433 | 2393 | //------------------------------------------------- |
| 2434 | 2394 | |
| 2435 | | static MACHINE_CONFIG_START( bx256hp, cbm2hp_state ) |
| 2436 | | MCFG_FRAGMENT_ADD(b256hp) |
| 2437 | | |
| 2395 | static MACHINE_CONFIG_DERIVED( bx256hp, b256hp ) |
| 2438 | 2396 | MCFG_MACHINE_START_OVERRIDE(cbm2_state, cbm2x_ntsc) |
| 2439 | 2397 | |
| 2440 | 2398 | MCFG_CPU_ADD(EXT_I8088_TAG, I8088, XTAL_12MHz) |
| r20768 | r20769 | |
| 2451 | 2409 | // MACHINE_CONFIG( cbm2hp_pal ) |
| 2452 | 2410 | //------------------------------------------------- |
| 2453 | 2411 | |
| 2454 | | static MACHINE_CONFIG_START( cbm2hp_pal, cbm2hp_state ) |
| 2455 | | MCFG_FRAGMENT_ADD(cbm2hp_ntsc) |
| 2456 | | |
| 2412 | static MACHINE_CONFIG_DERIVED( cbm2hp_pal, cbm2hp_ntsc ) |
| 2457 | 2413 | MCFG_MACHINE_START_OVERRIDE(cbm2_state, cbm2_pal) |
| 2458 | 2414 | |
| 2459 | 2415 | // devices |
| r20768 | r20769 | |
| 2469 | 2425 | // MACHINE_CONFIG( cbm710 ) |
| 2470 | 2426 | //------------------------------------------------- |
| 2471 | 2427 | |
| 2472 | | static MACHINE_CONFIG_START( cbm710, cbm2hp_state ) |
| 2473 | | MCFG_FRAGMENT_ADD(cbm2hp_pal) |
| 2428 | static MACHINE_CONFIG_DERIVED( cbm710, cbm2hp_pal ) |
| 2474 | 2429 | MCFG_FRAGMENT_ADD(128k) |
| 2475 | 2430 | MACHINE_CONFIG_END |
| 2476 | 2431 | |
| r20768 | r20769 | |
| 2479 | 2434 | // MACHINE_CONFIG( cbm720 ) |
| 2480 | 2435 | //------------------------------------------------- |
| 2481 | 2436 | |
| 2482 | | static MACHINE_CONFIG_START( cbm720, cbm2hp_state ) |
| 2483 | | MCFG_FRAGMENT_ADD(cbm2hp_pal) |
| 2437 | static MACHINE_CONFIG_DERIVED( cbm720, cbm2hp_pal ) |
| 2484 | 2438 | MCFG_FRAGMENT_ADD(256k) |
| 2485 | 2439 | MACHINE_CONFIG_END |
| 2486 | 2440 | |
| r20768 | r20769 | |
| 2489 | 2443 | // MACHINE_CONFIG( cbm730 ) |
| 2490 | 2444 | //------------------------------------------------- |
| 2491 | 2445 | |
| 2492 | | static MACHINE_CONFIG_START( cbm730, cbm2hp_state ) |
| 2493 | | MCFG_FRAGMENT_ADD(cbm720) |
| 2494 | | |
| 2446 | static MACHINE_CONFIG_DERIVED( cbm730, cbm720 ) |
| 2495 | 2447 | MCFG_MACHINE_START_OVERRIDE(cbm2_state, cbm2x_pal) |
| 2496 | 2448 | |
| 2497 | 2449 | MCFG_CPU_ADD(EXT_I8088_TAG, I8088, XTAL_12MHz) |
| r20768 | r20769 | |
| 2537 | 2489 | ROM_LOAD( "906114-03.u88", 0x00, 0xf5, CRC(668c073e) SHA1(1115858bb2dc91ea9e2016ba2e23ec94239358b4) ) |
| 2538 | 2490 | ROM_END |
| 2539 | 2491 | |
| 2540 | | |
| 2541 | | //------------------------------------------------- |
| 2542 | | // ROM( p500p ) |
| 2543 | | //------------------------------------------------- |
| 2544 | | |
| 2545 | 2492 | #define rom_p500p rom_p500 |
| 2546 | 2493 | |
| 2547 | 2494 | |
| r20768 | r20769 | |
| 2590 | 2537 | ROM_LOAD( "906114-04.u18", 0x00, 0xf5, CRC(ae3ec265) SHA1(334e0bc4b2c957ecb240c051d84372f7b47efba3) ) |
| 2591 | 2538 | ROM_END |
| 2592 | 2539 | |
| 2540 | #define rom_cbm610 rom_b128 |
| 2541 | #define rom_cbm620 rom_b256 |
| 2593 | 2542 | |
| 2543 | |
| 2594 | 2544 | //------------------------------------------------- |
| 2595 | 2545 | // ROM( b256 ) |
| 2596 | 2546 | //------------------------------------------------- |
| r20768 | r20769 | |
| 2616 | 2566 | |
| 2617 | 2567 | |
| 2618 | 2568 | //------------------------------------------------- |
| 2619 | | // ROM( cbm610 ) |
| 2620 | | //------------------------------------------------- |
| 2621 | | |
| 2622 | | #define rom_cbm610 rom_b128 |
| 2623 | | |
| 2624 | | |
| 2625 | | //------------------------------------------------- |
| 2626 | | // ROM( cbm620 ) |
| 2627 | | //------------------------------------------------- |
| 2628 | | |
| 2629 | | #define rom_cbm620 rom_b256 |
| 2630 | | |
| 2631 | | |
| 2632 | | //------------------------------------------------- |
| 2633 | 2569 | // ROM( cbm620_hu ) |
| 2634 | 2570 | //------------------------------------------------- |
| 2635 | 2571 | |
| r20768 | r20769 | |
| 2673 | 2609 | ROM_LOAD( "906114-05.u75", 0x00, 0xf5, CRC(ff6ba6b6) SHA1(45808c570eb2eda7091c51591b3dbd2db1ac646a) ) |
| 2674 | 2610 | ROM_END |
| 2675 | 2611 | |
| 2612 | #define rom_cbm710 rom_b128hp |
| 2676 | 2613 | |
| 2614 | |
| 2677 | 2615 | //------------------------------------------------- |
| 2678 | 2616 | // ROM( b256hp ) |
| 2679 | 2617 | //------------------------------------------------- |
| r20768 | r20769 | |
| 2697 | 2635 | ROM_LOAD( "906114-05.u75", 0x00, 0xf5, CRC(ff6ba6b6) SHA1(45808c570eb2eda7091c51591b3dbd2db1ac646a) ) |
| 2698 | 2636 | ROM_END |
| 2699 | 2637 | |
| 2638 | #define rom_cbm720 rom_b256hp |
| 2700 | 2639 | |
| 2640 | |
| 2701 | 2641 | //------------------------------------------------- |
| 2702 | 2642 | // ROM( bx256hp ) |
| 2703 | 2643 | //------------------------------------------------- |
| r20768 | r20769 | |
| 2724 | 2664 | ROM_LOAD( "906114-05.u75", 0x00, 0xf5, CRC(ff6ba6b6) SHA1(45808c570eb2eda7091c51591b3dbd2db1ac646a) ) |
| 2725 | 2665 | ROM_END |
| 2726 | 2666 | |
| 2727 | | |
| 2728 | | //------------------------------------------------- |
| 2729 | | // ROM( cbm710 ) |
| 2730 | | //------------------------------------------------- |
| 2731 | | |
| 2732 | | #define rom_cbm710 rom_b128hp |
| 2733 | | |
| 2734 | | |
| 2735 | | //------------------------------------------------- |
| 2736 | | // ROM( cbm720 ) |
| 2737 | | //------------------------------------------------- |
| 2738 | | |
| 2739 | | #define rom_cbm720 rom_b256hp |
| 2740 | | |
| 2741 | | |
| 2742 | | //------------------------------------------------- |
| 2743 | | // ROM( cbm730 ) |
| 2744 | | //------------------------------------------------- |
| 2745 | | |
| 2746 | 2667 | #define rom_cbm730 rom_bx256hp |
| 2747 | 2668 | |
| 2748 | 2669 | |
trunk/src/mess/drivers/vic20.c
| r20768 | r20769 | |
| 702 | 702 | |
| 703 | 703 | |
| 704 | 704 | //------------------------------------------------- |
| 705 | | // PET_DATASSETTE_PORT_INTERFACE( datassette_intf ) |
| 706 | | //------------------------------------------------- |
| 707 | | |
| 708 | | static PET_DATASSETTE_PORT_INTERFACE( datassette_intf ) |
| 709 | | { |
| 710 | | DEVCB_DEVICE_LINE_MEMBER(M6522_1_TAG, via6522_device, write_ca1), |
| 711 | | }; |
| 712 | | |
| 713 | | |
| 714 | | //------------------------------------------------- |
| 715 | 705 | // CBM_IEC_INTERFACE( cbm_iec_intf ) |
| 716 | 706 | //------------------------------------------------- |
| 717 | 707 | |
| r20768 | r20769 | |
| 822 | 812 | // devices |
| 823 | 813 | MCFG_VIA6522_ADD(M6522_0_TAG, 0, via0_intf) |
| 824 | 814 | MCFG_VIA6522_ADD(M6522_1_TAG, 0, via1_intf) |
| 825 | | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, datassette_intf, cbm_datassette_devices, "c1530", NULL) |
| 815 | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, "c1530", NULL, DEVWRITELINE(M6522_1_TAG, via6522_device, write_ca1)) |
| 826 | 816 | MCFG_CBM_IEC_ADD(cbm_iec_intf, "c1541") |
| 827 | | MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, "joy", NULL) |
| 828 | 817 | MCFG_VIC20_USER_PORT_ADD(VIC20_USER_PORT_TAG, user_intf, vic20_user_port_cards, NULL, NULL) |
| 829 | 818 | MCFG_QUICKLOAD_ADD("quickload", cbm_vc20, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) |
| 830 | 819 | |
| r20768 | r20769 | |
| 853 | 842 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 854 | 843 | MCFG_MOS6560_ADD(M6560_TAG, SCREEN_TAG, MOS6560_CLOCK, vic_intf, vic_videoram_map, vic_colorram_map) |
| 855 | 844 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 856 | | MCFG_SOUND_ADD("dac", DAC, 0) |
| 857 | | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 858 | 845 | |
| 859 | 846 | // devices |
| 860 | 847 | MCFG_VIC20_EXPANSION_SLOT_ADD(VIC20_EXPANSION_SLOT_TAG, MOS6560_CLOCK, expansion_intf, vic20_expansion_cards, NULL, NULL) |
| 848 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, "joy", NULL) |
| 849 | MCFG_VCS_CONTROL_PORT_TRIGGER_HANDLER(DEVWRITELINE(M6560_TAG, mos6560_device, lp_w)) |
| 861 | 850 | |
| 862 | 851 | // software lists |
| 863 | 852 | MCFG_SOFTWARE_LIST_FILTER("cart_list", "NTSC") |
| r20768 | r20769 | |
| 880 | 869 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 881 | 870 | MCFG_MOS6561_ADD(M6560_TAG, SCREEN_TAG, MOS6561_CLOCK, vic_intf, vic_videoram_map, vic_colorram_map) |
| 882 | 871 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 883 | | MCFG_SOUND_ADD("dac", DAC, 0) |
| 884 | | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 885 | 872 | |
| 886 | 873 | // devices |
| 887 | 874 | MCFG_VIC20_EXPANSION_SLOT_ADD(VIC20_EXPANSION_SLOT_TAG, MOS6561_CLOCK, expansion_intf, vic20_expansion_cards, NULL, NULL) |
| 875 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, "joy", NULL) |
| 876 | MCFG_VCS_CONTROL_PORT_TRIGGER_HANDLER(DEVWRITELINE(M6561_TAG, mos6561_device, lp_w)) |
| 888 | 877 | |
| 889 | 878 | // software lists |
| 890 | 879 | MCFG_SOFTWARE_LIST_FILTER("cart_list", "PAL") |
trunk/src/mess/drivers/plus4.c
| r20768 | r20769 | |
| 503 | 503 | return data; |
| 504 | 504 | } |
| 505 | 505 | |
| 506 | | READ8_MEMBER( plus4_state::c16_cpu_r ) |
| 506 | READ8_MEMBER( c16_state::cpu_r ) |
| 507 | 507 | { |
| 508 | 508 | /* |
| 509 | 509 | |
| r20768 | r20769 | |
| 650 | 650 | |
| 651 | 651 | |
| 652 | 652 | //------------------------------------------------- |
| 653 | | // MOS6529_INTERFACE( spi_user_intf ) |
| 654 | | //------------------------------------------------- |
| 655 | | |
| 656 | | static MOS6529_INTERFACE( spi_user_intf ) |
| 657 | | { |
| 658 | | DEVCB_DEVICE_MEMBER(PLUS4_USER_PORT_TAG, plus4_user_port_device, p_r), |
| 659 | | DEVCB_DEVICE_MEMBER(PLUS4_USER_PORT_TAG, plus4_user_port_device, p_w) |
| 660 | | }; |
| 661 | | |
| 662 | | |
| 663 | | //------------------------------------------------- |
| 664 | 653 | // MOS6529_INTERFACE( spi_kb_intf ) |
| 665 | 654 | //------------------------------------------------- |
| 666 | 655 | |
| 667 | | READ8_MEMBER( plus4_state::spi_kb_r ) |
| 668 | | { |
| 669 | | return 0xff; |
| 670 | | } |
| 671 | | |
| 672 | 656 | WRITE8_MEMBER( plus4_state::spi_kb_w ) |
| 673 | 657 | { |
| 674 | 658 | m_kb = data; |
| 675 | 659 | } |
| 676 | 660 | |
| 677 | | static MOS6529_INTERFACE( spi_kb_intf ) |
| 678 | | { |
| 679 | | DEVCB_DRIVER_MEMBER(plus4_state, spi_kb_r), |
| 680 | | DEVCB_DRIVER_MEMBER(plus4_state, spi_kb_w) |
| 681 | | }; |
| 682 | 661 | |
| 683 | | |
| 684 | 662 | //------------------------------------------------- |
| 685 | | // PET_DATASSETTE_PORT_INTERFACE( datassette_intf ) |
| 663 | // MOS6551_INTERFACE( acia_intf ) |
| 686 | 664 | //------------------------------------------------- |
| 687 | 665 | |
| 688 | | static PET_DATASSETTE_PORT_INTERFACE( datassette_intf ) |
| 666 | WRITE_LINE_MEMBER( plus4_state::acia_irq_w ) |
| 689 | 667 | { |
| 690 | | DEVCB_NULL |
| 691 | | }; |
| 668 | m_acia_irq = state; |
| 692 | 669 | |
| 670 | check_interrupts(); |
| 671 | } |
| 693 | 672 | |
| 673 | |
| 694 | 674 | //------------------------------------------------- |
| 695 | 675 | // CBM_IEC_INTERFACE( iec_intf ) |
| 696 | 676 | //------------------------------------------------- |
| r20768 | r20769 | |
| 821 | 801 | MCFG_M7501_PORT_PULLS(0x00, 0xc0) |
| 822 | 802 | MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_TAG, plus4_state, c16_frame_interrupt) |
| 823 | 803 | MCFG_CPU_PERIODIC_INT_DRIVER(plus4_state, c16_raster_interrupt, TED7360_HRETRACERATE) |
| 824 | | MCFG_QUANTUM_TIME(attotime::from_hz(60)) |
| 804 | MCFG_QUANTUM_PERFECT_CPU(MOS7501_TAG) |
| 825 | 805 | |
| 826 | 806 | // video and sound hardware |
| 827 | 807 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| r20768 | r20769 | |
| 830 | 810 | |
| 831 | 811 | // devices |
| 832 | 812 | MCFG_PLS100_ADD(PLA_TAG) |
| 833 | | MCFG_ACIA6551_ADD(MOS6551_TAG) |
| 834 | | MCFG_MOS6529_ADD(MOS6529_USER_TAG, spi_user_intf) |
| 835 | | MCFG_MOS6529_ADD(MOS6529_KB_TAG, spi_kb_intf) |
| 836 | | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, datassette_intf, plus4_datassette_devices, "c1531", NULL) |
| 813 | MCFG_MOS6551_ADD(MOS6551_TAG, XTAL_1_8432MHz, DEVWRITELINE(DEVICE_SELF, plus4_state, acia_irq_w)) |
| 814 | 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)) |
| 815 | MCFG_MOS6529_ADD(MOS6529_KB_TAG, CONSTANT(0xff), DEVWRITE8(DEVICE_SELF, plus4_state, spi_kb_w)) |
| 816 | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, plus4_datassette_devices, "c1531", NULL, NULL) |
| 837 | 817 | MCFG_CBM_IEC_ADD(iec_intf, NULL) |
| 838 | 818 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, NULL, NULL) |
| 839 | 819 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vcs_control_port_devices, "joy", NULL) |
| r20768 | r20769 | |
| 867 | 847 | MCFG_M7501_PORT_PULLS(0x00, 0xc0) |
| 868 | 848 | MCFG_CPU_VBLANK_INT_DRIVER(SCREEN_TAG, plus4_state, c16_frame_interrupt) |
| 869 | 849 | MCFG_CPU_PERIODIC_INT_DRIVER(plus4_state, c16_raster_interrupt, TED7360_HRETRACERATE) |
| 870 | | MCFG_QUANTUM_TIME(attotime::from_hz(60)) |
| 850 | MCFG_QUANTUM_PERFECT_CPU(MOS7501_TAG) |
| 871 | 851 | |
| 872 | 852 | // video and sound hardware |
| 873 | 853 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| r20768 | r20769 | |
| 876 | 856 | |
| 877 | 857 | // devices |
| 878 | 858 | MCFG_PLS100_ADD(PLA_TAG) |
| 879 | | MCFG_ACIA6551_ADD(MOS6551_TAG) |
| 880 | | MCFG_MOS6529_ADD(MOS6529_USER_TAG, spi_user_intf) |
| 881 | | MCFG_MOS6529_ADD(MOS6529_KB_TAG, spi_kb_intf) |
| 882 | | MCFG_QUICKLOAD_ADD("quickload", cbm_c16, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) |
| 883 | | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, datassette_intf, plus4_datassette_devices, "c1531", NULL) |
| 859 | MCFG_MOS6551_ADD(MOS6551_TAG, XTAL_1_8432MHz, DEVWRITELINE(DEVICE_SELF, plus4_state, acia_irq_w)) |
| 860 | 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)) |
| 861 | MCFG_MOS6529_ADD(MOS6529_KB_TAG, CONSTANT(0xff), DEVWRITE8(DEVICE_SELF, plus4_state, spi_kb_w)) |
| 862 | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, plus4_datassette_devices, "c1531", NULL, NULL) |
| 884 | 863 | MCFG_CBM_IEC_ADD(iec_intf, NULL) |
| 885 | 864 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vcs_control_port_devices, NULL, NULL) |
| 886 | 865 | MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vcs_control_port_devices, "joy", NULL) |
| 887 | 866 | MCFG_PLUS4_EXPANSION_SLOT_ADD(PLUS4_EXPANSION_SLOT_TAG, XTAL_17_73447MHz/20, expansion_intf, plus4_expansion_cards, "c1551", NULL) |
| 888 | 867 | MCFG_PLUS4_USER_PORT_ADD(PLUS4_USER_PORT_TAG, plus4_user_port_cards, NULL, NULL) |
| 868 | MCFG_QUICKLOAD_ADD("quickload", cbm_c16, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) |
| 889 | 869 | |
| 890 | 870 | // internal ram |
| 891 | 871 | MCFG_RAM_ADD(RAM_TAG) |
| r20768 | r20769 | |
| 905 | 885 | // MACHINE_CONFIG( c16n ) |
| 906 | 886 | //------------------------------------------------- |
| 907 | 887 | |
| 908 | | static MACHINE_CONFIG_DERIVED( c16n, ntsc ) |
| 888 | static MACHINE_CONFIG_DERIVED_CLASS( c16n, ntsc, c16_state ) |
| 909 | 889 | MCFG_CPU_MODIFY(MOS7501_TAG) |
| 910 | | MCFG_M7501_PORT_CALLBACKS(READ8(plus4_state, c16_cpu_r), WRITE8(plus4_state, cpu_w)) |
| 890 | MCFG_M7501_PORT_CALLBACKS(READ8(c16_state, cpu_r), WRITE8(plus4_state, cpu_w)) |
| 911 | 891 | MCFG_M7501_PORT_PULLS(0x00, 0xc0) |
| 912 | 892 | |
| 913 | 893 | MCFG_DEVICE_REMOVE(MOS6551_TAG) |
| r20768 | r20769 | |
| 927 | 907 | // MACHINE_CONFIG( c16p ) |
| 928 | 908 | //------------------------------------------------- |
| 929 | 909 | |
| 930 | | static MACHINE_CONFIG_DERIVED( c16p, pal ) |
| 910 | static MACHINE_CONFIG_DERIVED_CLASS( c16p, pal, c16_state ) |
| 931 | 911 | MCFG_CPU_MODIFY(MOS7501_TAG) |
| 932 | | MCFG_M7501_PORT_CALLBACKS(READ8(plus4_state, c16_cpu_r), WRITE8(plus4_state, cpu_w)) |
| 912 | MCFG_M7501_PORT_CALLBACKS(READ8(c16_state, cpu_r), WRITE8(plus4_state, cpu_w)) |
| 933 | 913 | MCFG_M7501_PORT_PULLS(0x00, 0xc0) |
| 934 | 914 | |
| 935 | 915 | MCFG_DEVICE_REMOVE(MOS6551_TAG) |
trunk/src/mess/drivers/pet2001.c
| r20768 | r20769 | |
| 881 | 881 | |
| 882 | 882 | |
| 883 | 883 | //------------------------------------------------- |
| 884 | | // PET_DATASSETTE_PORT_INTERFACE( datassette_intf ) |
| 885 | | //------------------------------------------------- |
| 886 | | |
| 887 | | static PET_DATASSETTE_PORT_INTERFACE( datassette_intf ) |
| 888 | | { |
| 889 | | DEVCB_DEVICE_LINE_MEMBER(M6520_1_TAG, pia6821_device, ca1_w) |
| 890 | | }; |
| 891 | | |
| 892 | | |
| 893 | | //------------------------------------------------- |
| 894 | | // PET_DATASSETTE_PORT_INTERFACE( datassette2_intf ) |
| 895 | | //------------------------------------------------- |
| 896 | | |
| 897 | | static PET_DATASSETTE_PORT_INTERFACE( datassette2_intf ) |
| 898 | | { |
| 899 | | DEVCB_DEVICE_LINE_MEMBER(M6522_TAG, via6522_device, write_cb1) |
| 900 | | }; |
| 901 | | |
| 902 | | |
| 903 | | //------------------------------------------------- |
| 904 | | // PET_EXPANSION_INTERFACE( exp_intf ) |
| 905 | | //------------------------------------------------- |
| 906 | | |
| 907 | | static PET_EXPANSION_INTERFACE( exp_intf ) |
| 908 | | { |
| 909 | | DEVCB_DRIVER_MEMBER(pet_state, read), |
| 910 | | DEVCB_DRIVER_MEMBER(pet_state, write) |
| 911 | | }; |
| 912 | | |
| 913 | | |
| 914 | | //------------------------------------------------- |
| 915 | 884 | // PET_USER_PORT_INTERFACE( user_intf ) |
| 916 | 885 | //------------------------------------------------- |
| 917 | 886 | |
| r20768 | r20769 | |
| 1202 | 1171 | MCFG_PIA6821_ADD(M6520_1_TAG, pia1_intf) |
| 1203 | 1172 | MCFG_PIA6821_ADD(M6520_2_TAG, pia2_intf) |
| 1204 | 1173 | MCFG_CBM_IEEE488_ADD(ieee488_intf, "c4040") |
| 1205 | | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, datassette_intf, cbm_datassette_devices, "c2n", NULL) |
| 1206 | | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT2_TAG, datassette2_intf, cbm_datassette_devices, NULL, NULL) |
| 1207 | | MCFG_PET_EXPANSION_SLOT_ADD(PET_EXPANSION_SLOT_TAG, XTAL_8MHz/8, exp_intf, pet_expansion_cards, NULL, NULL) |
| 1174 | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, "c2n", NULL, DEVWRITELINE(M6520_1_TAG, pia6821_device, ca1_w)) |
| 1175 | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT2_TAG, cbm_datassette_devices, NULL, NULL, DEVWRITELINE(M6522_TAG, via6522_device, write_cb1)) |
| 1176 | MCFG_PET_EXPANSION_SLOT_ADD(PET_EXPANSION_SLOT_TAG, XTAL_8MHz/8, pet_expansion_cards, NULL, NULL) |
| 1177 | MCFG_PET_EXPANSION_SLOT_DMA_CALLBACKS(READ8(pet_state, read), WRITE8(pet_state, write)) |
| 1208 | 1178 | MCFG_PET_USER_PORT_ADD(PET_USER_PORT_TAG, user_intf, pet_user_port_cards, NULL, NULL) |
| 1209 | 1179 | MCFG_QUICKLOAD_ADD("quickload", cbm_pet, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) |
| 1210 | 1180 | |
| r20768 | r20769 | |
| 1478 | 1448 | MCFG_PIA6821_ADD(M6520_1_TAG, pia1_intf) |
| 1479 | 1449 | MCFG_PIA6821_ADD(M6520_2_TAG, pia2_intf) |
| 1480 | 1450 | MCFG_CBM_IEEE488_ADD(ieee488_intf, "c8050") |
| 1481 | | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, datassette_intf, cbm_datassette_devices, "c2n", NULL) |
| 1482 | | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT2_TAG, datassette2_intf, cbm_datassette_devices, NULL, NULL) |
| 1483 | | MCFG_PET_EXPANSION_SLOT_ADD(PET_EXPANSION_SLOT_TAG, XTAL_16MHz/16, exp_intf, pet_expansion_cards, NULL, NULL) |
| 1451 | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, "c2n", NULL, DEVWRITELINE(M6520_1_TAG, pia6821_device, ca1_w)) |
| 1452 | MCFG_PET_DATASSETTE_PORT_ADD(PET_DATASSETTE_PORT2_TAG, cbm_datassette_devices, NULL, NULL, DEVWRITELINE(M6522_TAG, via6522_device, write_cb1)) |
| 1453 | MCFG_PET_EXPANSION_SLOT_ADD(PET_EXPANSION_SLOT_TAG, XTAL_16MHz/16, pet_expansion_cards, NULL, NULL) |
| 1454 | MCFG_PET_EXPANSION_SLOT_DMA_CALLBACKS(READ8(pet_state, read), WRITE8(pet_state, write)) |
| 1484 | 1455 | MCFG_PET_USER_PORT_ADD(PET_USER_PORT_TAG, user_intf, pet_user_port_cards, NULL, NULL) |
| 1485 | 1456 | MCFG_QUICKLOAD_ADD("quickload", cbm_pet, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) |
| 1486 | 1457 | |
| r20768 | r20769 | |
| 1505 | 1476 | |
| 1506 | 1477 | static MACHINE_CONFIG_DERIVED_CLASS( superpet, pet8032, superpet_state ) |
| 1507 | 1478 | MCFG_DEVICE_REMOVE(PET_EXPANSION_SLOT_TAG) |
| 1508 | | MCFG_PET_EXPANSION_SLOT_ADD(PET_EXPANSION_SLOT_TAG, XTAL_16MHz/16, exp_intf, pet_expansion_cards, "superpet", NULL) |
| 1479 | MCFG_PET_EXPANSION_SLOT_ADD(PET_EXPANSION_SLOT_TAG, XTAL_16MHz/16, pet_expansion_cards, "superpet", NULL) |
| 1480 | MCFG_PET_EXPANSION_SLOT_DMA_CALLBACKS(READ8(pet_state, read), WRITE8(pet_state, write)) |
| 1509 | 1481 | |
| 1510 | 1482 | MCFG_SOFTWARE_LIST_ADD("flop_list2", "superpet_flop") |
| 1511 | 1483 | MACHINE_CONFIG_END |