trunk/src/mess/drivers/c64.c
| r31227 | r31228 | |
| 127 | 127 | } |
| 128 | 128 | if (!BIT(plaout, PLA_OUT_BASIC)) |
| 129 | 129 | { |
| 130 | | if (m_basic != NULL) |
| 131 | | { |
| 132 | | data = m_basic->base()[offset & 0x1fff]; |
| 133 | | } |
| 134 | | else |
| 135 | | { |
| 136 | | data = m_kernal->base()[offset & 0x1fff]; |
| 137 | | } |
| 130 | data = m_basic[offset & 0x1fff]; |
| 138 | 131 | } |
| 139 | 132 | if (!BIT(plaout, PLA_OUT_KERNAL)) |
| 140 | 133 | { |
| 141 | | if (m_basic != NULL) |
| 142 | | { |
| 143 | | data = m_kernal->base()[offset & 0x1fff]; |
| 144 | | } |
| 145 | | else |
| 146 | | { |
| 147 | | data = m_kernal->base()[0x2000 | (offset & 0x1fff)]; |
| 148 | | } |
| 134 | data = m_kernal[offset & 0x1fff]; |
| 149 | 135 | } |
| 150 | 136 | if (!BIT(plaout, PLA_OUT_CHAROM)) |
| 151 | 137 | { |
| 152 | | data = m_charom->base()[offset & 0xfff]; |
| 138 | data = m_charom[offset & 0xfff]; |
| 153 | 139 | } |
| 154 | 140 | if (!BIT(plaout, PLA_OUT_IO)) |
| 155 | 141 | { |
| r31227 | r31228 | |
| 1043 | 1029 | |
| 1044 | 1030 | void c64_state::machine_start() |
| 1045 | 1031 | { |
| 1032 | // get pointers to ROMs |
| 1033 | if (memregion("basic") != NULL) |
| 1034 | { |
| 1035 | m_basic = memregion("basic")->base(); |
| 1036 | m_kernal = memregion("kernal")->base(); |
| 1037 | } |
| 1038 | else |
| 1039 | { |
| 1040 | m_basic = memregion("kernal")->base(); |
| 1041 | m_kernal = &m_basic[0x2000]; |
| 1042 | } |
| 1043 | m_charom = memregion("charom")->base(); |
| 1044 | |
| 1046 | 1045 | // allocate memory |
| 1047 | 1046 | m_color_ram.allocate(0x400); |
| 1048 | 1047 | |
| r31227 | r31228 | |
| 1496 | 1495 | ROM_REGION( 0x2000, "basic", 0 ) |
| 1497 | 1496 | ROM_LOAD( "901226-01.u3", 0x0000, 0x2000, CRC(f833d117) SHA1(79015323128650c742a3694c9429aa91f355905e) ) |
| 1498 | 1497 | |
| 1499 | | ROM_REGION( 0x4000, "kernal", 0 ) |
| 1498 | ROM_REGION( 0x2000, "kernal", 0 ) |
| 1500 | 1499 | ROM_DEFAULT_BIOS("r3") |
| 1501 | 1500 | ROM_SYSTEM_BIOS(0, "r1", "Kernal rev. 1" ) |
| 1502 | 1501 | ROMX_LOAD( "901227-01.u4", 0x0000, 0x2000, CRC(dce782fa) SHA1(87cc04d61fc748b82df09856847bb5c2754a2033), ROM_BIOS(1) ) |
| r31227 | r31228 | |
| 1552 | 1551 | ROMX_LOAD( "exos3.u4", 0x0000, 0x2000, CRC(4e54d020) SHA1(f8931b7c0b26807f4de0cc241f0b1e2c8f5271e9), ROM_BIOS(26) ) |
| 1553 | 1552 | ROM_SYSTEM_BIOS(26, "exos4", "EXOS v4" ) |
| 1554 | 1553 | ROMX_LOAD( "exos4.u4", 0x0000, 0x2000, CRC(d5cf83a9) SHA1(d5f03a5c0e9d00032d4751ecc6bcd6385879c9c7), ROM_BIOS(27) ) |
| 1555 | | ROM_SYSTEM_BIOS(27, "pdc", "ProLogic-DOS Classic" ) |
| 1556 | | ROMX_LOAD( "pdc.u4", 0x0000, 0x4000, CRC(6b653b9c) SHA1(0f44a9c62619424a0cd48a90e1b377b987b494e0), ROM_BIOS(28) ) |
| 1557 | | ROM_SYSTEM_BIOS(28, "digidos", "DigiDOS" ) |
| 1558 | | ROMX_LOAD( "digidos.u4", 0x0000, 0x2000, CRC(2b0c8e89) SHA1(542d6f61c318bced0642e7c2d4d3b34a0f13e634), ROM_BIOS(29) ) |
| 1559 | | ROM_SYSTEM_BIOS(29, "magnum", "Magnum Load" ) |
| 1560 | | ROMX_LOAD( "magnum.u4", 0x0000, 0x2000, CRC(b2cffcc6) SHA1(827c782c1723b5d0992c05c00738ae4b2133b641), ROM_BIOS(30) ) |
| 1554 | ROM_SYSTEM_BIOS(27, "digidos", "DigiDOS" ) |
| 1555 | ROMX_LOAD( "digidos.u4", 0x0000, 0x2000, CRC(2b0c8e89) SHA1(542d6f61c318bced0642e7c2d4d3b34a0f13e634), ROM_BIOS(28) ) |
| 1556 | ROM_SYSTEM_BIOS(28, "magnum", "Magnum Load" ) |
| 1557 | ROMX_LOAD( "magnum.u4", 0x0000, 0x2000, CRC(b2cffcc6) SHA1(827c782c1723b5d0992c05c00738ae4b2133b641), ROM_BIOS(29) ) |
| 1561 | 1558 | |
| 1562 | 1559 | ROM_REGION( 0x1000, "charom", 0 ) |
| 1563 | 1560 | ROM_LOAD( "901225-01.u5", 0x0000, 0x1000, CRC(ec4272ee) SHA1(adc7c31e18c7c7413d54802ef2f4193da14711aa) ) |
| r31227 | r31228 | |
| 1707 | 1704 | |
| 1708 | 1705 | ROM_START( c64c ) |
| 1709 | 1706 | ROM_REGION( 0x4000, "kernal", 0 ) |
| 1710 | | ROM_LOAD( "251913-01.u4", 0x0000, 0x4000, CRC(0010ec31) SHA1(765372a0e16cbb0adf23a07b80f6b682b39fbf88) ) |
| 1707 | ROM_DEFAULT_BIOS("kernal") |
| 1708 | ROM_SYSTEM_BIOS(0, "cbm", "Original" ) |
| 1709 | ROMX_LOAD( "251913-01.u4", 0x0000, 0x4000, CRC(0010ec31) SHA1(765372a0e16cbb0adf23a07b80f6b682b39fbf88), ROM_BIOS(1) ) |
| 1710 | ROM_SYSTEM_BIOS(1, "pdc", "ProLogic-DOS Classic" ) |
| 1711 | ROMX_LOAD( "pdc.u4", 0x0000, 0x4000, CRC(6b653b9c) SHA1(0f44a9c62619424a0cd48a90e1b377b987b494e0), ROM_BIOS(2) ) |
| 1711 | 1712 | |
| 1712 | 1713 | ROM_REGION( 0x1000, "charom", 0 ) |
| 1713 | 1714 | ROM_LOAD( "901225-01.u5", 0x0000, 0x1000, CRC(ec4272ee) SHA1(adc7c31e18c7c7413d54802ef2f4193da14711aa) ) |
trunk/src/mess/includes/c64.h
| r31227 | r31228 | |
| 49 | 49 | m_user(*this, PET_USER_PORT_TAG), |
| 50 | 50 | m_ram(*this, RAM_TAG), |
| 51 | 51 | m_cassette(*this, PET_DATASSETTE_PORT_TAG), |
| 52 | | m_basic(*this, "basic"), |
| 53 | | m_kernal(*this, "kernal"), |
| 54 | | m_charom(*this, "charom"), |
| 55 | 52 | m_color_ram(*this, "color_ram"), |
| 56 | 53 | m_row0(*this, "ROW0"), |
| 57 | 54 | m_row1(*this, "ROW1"), |
| r31227 | r31228 | |
| 75 | 72 | m_exp_nmi(CLEAR_LINE) |
| 76 | 73 | { } |
| 77 | 74 | |
| 75 | // ROM |
| 76 | UINT8 *m_basic; |
| 77 | UINT8 *m_kernal; |
| 78 | UINT8 *m_charom; |
| 79 | |
| 78 | 80 | required_device<m6510_device> m_maincpu; |
| 79 | 81 | required_device<pls100_device> m_pla; |
| 80 | 82 | required_device<mos6566_device> m_vic; |
| r31227 | r31228 | |
| 88 | 90 | required_device<pet_user_port_device> m_user; |
| 89 | 91 | required_device<ram_device> m_ram; |
| 90 | 92 | optional_device<pet_datassette_port_device> m_cassette; |
| 91 | | optional_memory_region m_basic; |
| 92 | | required_memory_region m_kernal; |
| 93 | | required_memory_region m_charom; |
| 94 | 93 | optional_shared_ptr<UINT8> m_color_ram; |
| 95 | 94 | optional_ioport m_row0; |
| 96 | 95 | optional_ioport m_row1; |