trunk/src/mess/machine/fd2000.c
| r19536 | r19537 | |
| 26 | 26 | // MACROS / CONSTANTS |
| 27 | 27 | //************************************************************************** |
| 28 | 28 | |
| 29 | | #define M6502_TAG "m6502" |
| 30 | | #define M6522_TAG "m6522" |
| 31 | | #define DP8473_TAG "dp8473" |
| 29 | #define G65SC02PI2_TAG "m6502" |
| 30 | #define R65C02P4_TAG "m6502" |
| 31 | #define G65SC22P2_TAG "m6522" |
| 32 | #define DP8473V_TAG "dp8473" |
| 32 | 33 | #define PC8477AV1_TAG "pc8477av1" |
| 34 | #define DS1216E_TAG "ds1216e" |
| 33 | 35 | |
| 34 | 36 | |
| 35 | 37 | |
| r19536 | r19537 | |
| 46 | 48 | //------------------------------------------------- |
| 47 | 49 | |
| 48 | 50 | ROM_START( fd2000 ) |
| 49 | | ROM_REGION( 0x8000, M6502_TAG, 0 ) |
| 51 | ROM_REGION( 0x8000, G65SC02PI2_TAG, 0 ) |
| 50 | 52 | ROM_DEFAULT_BIOS( "v140" ) |
| 51 | 53 | ROM_SYSTEM_BIOS( 0, "v134", "Version 1.34" ) |
| 52 | 54 | ROMX_LOAD( "cmd fd-2000 dos v1.34 fd-350026.bin", 0x0000, 0x8000, CRC(859a5edc) SHA1(487fa82a7977e5208d5088f3580f34e8c89560d1), ROM_BIOS(1) ) |
| r19536 | r19537 | |
| 60 | 62 | //------------------------------------------------- |
| 61 | 63 | |
| 62 | 64 | ROM_START( fd4000 ) |
| 63 | | ROM_REGION( 0x8000, M6502_TAG, 0 ) |
| 65 | ROM_REGION( 0x8000, R65C02P4_TAG, 0 ) |
| 64 | 66 | ROM_DEFAULT_BIOS( "v140" ) |
| 65 | 67 | ROM_SYSTEM_BIOS( 0, "v134", "Version 1.34" ) |
| 66 | 68 | ROMX_LOAD( "cmd fd-4000 dos v1.34 fd-350022.bin", 0x0000, 0x8000, CRC(1f4820c1) SHA1(7a2966662e7840fd9377549727ccba62e4349c6f), ROM_BIOS(1) ) |
| r19536 | r19537 | |
| 92 | 94 | |
| 93 | 95 | static ADDRESS_MAP_START( fd2000_mem, AS_PROGRAM, 8, fd2000_device ) |
| 94 | 96 | AM_RANGE(0x0000, 0x3fff) AM_RAM |
| 95 | | AM_RANGE(0x4000, 0x400f) AM_MIRROR(0xbf0) AM_DEVREADWRITE(M6522_TAG, via6522_device, read, write) |
| 96 | | AM_RANGE(0x4e00, 0x4e07) AM_MIRROR(0x1f8) AM_DEVICE(DP8473_TAG, dp8473_device, map) |
| 97 | AM_RANGE(0x4000, 0x400f) AM_MIRROR(0xbf0) AM_DEVREADWRITE(G65SC22P2_TAG, via6522_device, read, write) |
| 98 | AM_RANGE(0x4e00, 0x4e07) AM_MIRROR(0x1f8) AM_DEVICE(DP8473V_TAG, dp8473_device, map) |
| 97 | 99 | AM_RANGE(0x5000, 0x7fff) AM_RAM |
| 98 | | AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION(M6502_TAG, 0) |
| 100 | AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION(G65SC02PI2_TAG, 0) |
| 99 | 101 | ADDRESS_MAP_END |
| 100 | 102 | |
| 101 | 103 | |
| r19536 | r19537 | |
| 105 | 107 | |
| 106 | 108 | static ADDRESS_MAP_START( fd4000_mem, AS_PROGRAM, 8, fd4000_device ) |
| 107 | 109 | AM_RANGE(0x0000, 0x3fff) AM_RAM |
| 108 | | AM_RANGE(0x4000, 0x400f) AM_MIRROR(0xbf0) AM_DEVREADWRITE(M6522_TAG, via6522_device, read, write) |
| 110 | AM_RANGE(0x4000, 0x400f) AM_MIRROR(0xbf0) AM_DEVREADWRITE(G65SC22P2_TAG, via6522_device, read, write) |
| 109 | 111 | AM_RANGE(0x4e00, 0x4e07) AM_MIRROR(0x1f8) AM_DEVICE(PC8477AV1_TAG, pc8477a_device, map) |
| 110 | 112 | AM_RANGE(0x5000, 0x7fff) AM_RAM |
| 111 | | AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION(M6502_TAG, 0) |
| 113 | AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION(R65C02P4_TAG, 0) |
| 112 | 114 | ADDRESS_MAP_END |
| 113 | 115 | |
| 114 | 116 | |
| r19536 | r19537 | |
| 217 | 219 | }; |
| 218 | 220 | |
| 219 | 221 | static SLOT_INTERFACE_START( fd2000_floppies ) |
| 220 | | SLOT_INTERFACE( "35hd", FLOPPY_35_HD ) |
| 222 | SLOT_INTERFACE( "35hd", FLOPPY_35_HD ) // TEAC FD-235HF |
| 221 | 223 | SLOT_INTERFACE_END |
| 222 | 224 | |
| 223 | 225 | static SLOT_INTERFACE_START( fd4000_floppies ) |
| 224 | | SLOT_INTERFACE( "35ed", FLOPPY_35_ED ) |
| 226 | SLOT_INTERFACE( "35ed", FLOPPY_35_ED ) // TEAC FD-235J |
| 225 | 227 | SLOT_INTERFACE_END |
| 226 | 228 | /* |
| 227 | 229 | FLOPPY_FORMATS_MEMBER( fd2000_device::floppy_formats ) |
| r19536 | r19537 | |
| 235 | 237 | //------------------------------------------------- |
| 236 | 238 | |
| 237 | 239 | static MACHINE_CONFIG_FRAGMENT( fd2000 ) |
| 238 | | MCFG_CPU_ADD(M6502_TAG, M65C02, 2000000) |
| 240 | MCFG_CPU_ADD(G65SC02PI2_TAG, M65C02, XTAL_24MHz/12) |
| 239 | 241 | MCFG_CPU_PROGRAM_MAP(fd2000_mem) |
| 240 | 242 | |
| 241 | | MCFG_VIA6522_ADD(M6522_TAG, 2000000, via_intf) |
| 242 | | MCFG_DP8473_ADD(DP8473_TAG) |
| 243 | MCFG_VIA6522_ADD(G65SC22P2_TAG, XTAL_24MHz/12, via_intf) |
| 244 | MCFG_DP8473_ADD(DP8473V_TAG) |
| 243 | 245 | |
| 244 | | MCFG_FLOPPY_DRIVE_ADD(DP8473_TAG":0", fd2000_floppies, "35hd", 0, floppy_image_device::default_floppy_formats)//fd2000_device::floppy_formats) |
| 246 | MCFG_FLOPPY_DRIVE_ADD(DP8473V_TAG":0", fd2000_floppies, "35hd", 0, floppy_image_device::default_floppy_formats)//fd2000_device::floppy_formats) |
| 245 | 247 | MACHINE_CONFIG_END |
| 246 | 248 | |
| 247 | 249 | |
| r19536 | r19537 | |
| 250 | 252 | //------------------------------------------------- |
| 251 | 253 | |
| 252 | 254 | static MACHINE_CONFIG_FRAGMENT( fd4000 ) |
| 253 | | MCFG_CPU_ADD(M6502_TAG, M65C02, 2000000) |
| 255 | MCFG_CPU_ADD(R65C02P4_TAG, M65C02, XTAL_24MHz/6) |
| 254 | 256 | MCFG_CPU_PROGRAM_MAP(fd4000_mem) |
| 255 | 257 | |
| 256 | | MCFG_VIA6522_ADD(M6522_TAG, 2000000, via_intf) |
| 258 | MCFG_VIA6522_ADD(G65SC22P2_TAG, XTAL_24MHz/12, via_intf) |
| 257 | 259 | MCFG_PC8477A_ADD(PC8477AV1_TAG) |
| 258 | 260 | |
| 259 | 261 | MCFG_FLOPPY_DRIVE_ADD(PC8477AV1_TAG":0", fd4000_floppies, "35ed", 0, floppy_image_device::default_floppy_formats)//fd2000_device::floppy_formats) |
| r19536 | r19537 | |
| 311 | 313 | fd2000_device::fd2000_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 312 | 314 | : device_t(mconfig, FD2000, "FD-2000", tag, owner, clock), |
| 313 | 315 | device_cbm_iec_interface(mconfig, *this), |
| 314 | | m_maincpu(*this, M6502_TAG), |
| 315 | | m_fdc(*this, DP8473_TAG), |
| 316 | | m_floppy0(*this, DP8473_TAG":0"), |
| 316 | m_maincpu(*this, G65SC02PI2_TAG), |
| 317 | m_fdc(*this, DP8473V_TAG), |
| 318 | m_floppy0(*this, DP8473V_TAG":0"), |
| 317 | 319 | m_variant(TYPE_FD2000) |
| 318 | 320 | { |
| 319 | 321 | } |
| r19536 | r19537 | |
| 321 | 323 | fd2000_device::fd2000_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT32 variant) |
| 322 | 324 | : device_t(mconfig, type, name, tag, owner, clock), |
| 323 | 325 | device_cbm_iec_interface(mconfig, *this), |
| 324 | | m_maincpu(*this, M6502_TAG), |
| 326 | m_maincpu(*this, R65C02P4_TAG), |
| 325 | 327 | m_fdc(*this, PC8477AV1_TAG), |
| 326 | 328 | m_floppy0(*this, PC8477AV1_TAG":0"), |
| 327 | 329 | m_variant(variant) |