diff options
author | Curt Coder <curtcoder@mail.com> | 2012-08-24 20:23:12 +0000 |
---|---|---|
committer | Curt Coder <curtcoder@mail.com> | 2012-08-24 20:23:12 +0000 |
commit | ee9e573b11e0304b35fdc7d65c70600cf61de6e8 (patch) | |
tree | 250b358f141c063504699bb655fc138e5b80de4a | |
parent | 0d6ceb18d96b4c597003d95d5a24b2d923d37157 (diff) |
(MESS) c64: Added some kernals and cleanup. (nw)
-rw-r--r-- | src/mess/drivers/c64.c | 259 | ||||
-rw-r--r-- | src/mess/machine/c1541.c | 76 | ||||
-rw-r--r-- | src/mess/machine/c1541.h | 8 |
3 files changed, 85 insertions, 258 deletions
diff --git a/src/mess/drivers/c64.c b/src/mess/drivers/c64.c index 7427b63f859..ff54a30918c 100644 --- a/src/mess/drivers/c64.c +++ b/src/mess/drivers/c64.c @@ -2,6 +2,7 @@ TODO: + - sort out kernals between PAL/NTSC - tsuit215 test failures - CPUPORT (0=FF 1=FF 0=00 1=FF 1=FF 1=FF, AFTER 00 17, RIGHT 00 DF) @@ -1150,51 +1151,15 @@ MACHINE_CONFIG_END //------------------------------------------------- static MACHINE_CONFIG_START( ntsc_sx, sx64_state ) + MCFG_FRAGMENT_ADD(ntsc) + // basic hardware - MCFG_CPU_ADD(M6510_TAG, M6510, VIC6567_CLOCK) - MCFG_CPU_PROGRAM_MAP(c64_mem) + MCFG_CPU_MODIFY(M6510_TAG) MCFG_CPU_CONFIG(sx64_cpu_intf) - MCFG_CPU_VBLANK_INT(SCREEN_TAG, c64_frame_interrupt) - MCFG_QUANTUM_PERFECT_CPU(M6510_TAG) - - // video hardware - MCFG_MOS6567_ADD(MOS6567_TAG, SCREEN_TAG, VIC6567_CLOCK, vic_intf, vic_videoram_map, vic_colorram_map) - - // sound hardware - MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD(MOS6851_TAG, SID6581, VIC6567_CLOCK) - MCFG_SOUND_CONFIG(sid_intf) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - MCFG_SOUND_ADD("dac", DAC, 0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) // devices - MCFG_PLS100_ADD(PLA_TAG) - MCFG_MOS6526R1_ADD(MOS6526_1_TAG, VIC6567_CLOCK, cia1_intf) - MCFG_MOS6526R1_ADD(MOS6526_2_TAG, VIC6567_CLOCK, cia2_intf) - MCFG_QUICKLOAD_ADD("quickload", cbm_c64, "p00,prg,t64", CBM_QUICKLOAD_DELAY_SECONDS) - MCFG_CBM_IEC_BUS_ADD(iec_intf) - MCFG_CBM_IEC_SLOT_ADD("iec4", 4, cbm_iec_devices, NULL, NULL) + MCFG_DEVICE_REMOVE("iec8") MCFG_CBM_IEC_SLOT_ADD("iec8", 8, sx1541_iec_devices, "sx1541", NULL) - MCFG_CBM_IEC_SLOT_ADD("iec9", 9, cbm_iec_devices, NULL, NULL) - MCFG_CBM_IEC_SLOT_ADD("iec10", 10, cbm_iec_devices, NULL, NULL) - MCFG_CBM_IEC_SLOT_ADD("iec11", 11, cbm_iec_devices, NULL, NULL) - MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vic20_control_port_devices, NULL, NULL) - MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vic20_control_port_devices, NULL, NULL) - MCFG_C64_EXPANSION_SLOT_ADD(C64_EXPANSION_SLOT_TAG, VIC6567_CLOCK, expansion_intf, c64_expansion_cards, NULL, NULL) - MCFG_C64_USER_PORT_ADD(C64_USER_PORT_TAG, user_intf, c64_user_port_cards, NULL, NULL) - - // software list - MCFG_SOFTWARE_LIST_ADD("cart_list_vic10", "vic10") - MCFG_SOFTWARE_LIST_FILTER("cart_list_vic10", "NTSC") - MCFG_SOFTWARE_LIST_ADD("cart_list_c64", "c64_cart") - MCFG_SOFTWARE_LIST_FILTER("cart_list_c64", "NTSC") - MCFG_SOFTWARE_LIST_ADD("disk_list", "c64_flop") - MCFG_SOFTWARE_LIST_FILTER("disk_list", "NTSC") - - // internal ram - MCFG_RAM_ADD(RAM_TAG) - MCFG_RAM_DEFAULT_SIZE("64K") MACHINE_CONFIG_END @@ -1203,51 +1168,11 @@ MACHINE_CONFIG_END //------------------------------------------------- static MACHINE_CONFIG_START( ntsc_dx, sx64_state ) - // basic hardware - MCFG_CPU_ADD(M6510_TAG, M6510, VIC6567_CLOCK) - MCFG_CPU_PROGRAM_MAP(c64_mem) - MCFG_CPU_CONFIG(sx64_cpu_intf) - MCFG_CPU_VBLANK_INT(SCREEN_TAG, c64_frame_interrupt) - MCFG_QUANTUM_PERFECT_CPU(M6510_TAG) - - // video hardware - MCFG_MOS6567_ADD(MOS6567_TAG, SCREEN_TAG, VIC6567_CLOCK, vic_intf, vic_videoram_map, vic_colorram_map) - - // sound hardware - MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD(MOS6851_TAG, SID6581, VIC6567_CLOCK) - MCFG_SOUND_CONFIG(sid_intf) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - MCFG_SOUND_ADD("dac", DAC, 0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) + MCFG_FRAGMENT_ADD(ntsc_sx) // devices - MCFG_PLS100_ADD(PLA_TAG) - MCFG_MOS6526R1_ADD(MOS6526_1_TAG, VIC6567_CLOCK, cia1_intf) - MCFG_MOS6526R1_ADD(MOS6526_2_TAG, VIC6567_CLOCK, cia2_intf) - MCFG_QUICKLOAD_ADD("quickload", cbm_c64, "p00,prg,t64", CBM_QUICKLOAD_DELAY_SECONDS) - MCFG_CBM_IEC_BUS_ADD(iec_intf) - MCFG_CBM_IEC_SLOT_ADD("iec4", 4, cbm_iec_devices, NULL, NULL) - MCFG_CBM_IEC_SLOT_ADD("iec8", 8, sx1541_iec_devices, "sx1541", NULL) - MCFG_CBM_IEC_SLOT_ADD("iec9", 9, sx1541_iec_devices, "sx1541", NULL) - MCFG_CBM_IEC_SLOT_ADD("iec10", 10, cbm_iec_devices, NULL, NULL) - MCFG_CBM_IEC_SLOT_ADD("iec11", 11, cbm_iec_devices, NULL, NULL) - MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vic20_control_port_devices, NULL, NULL) - MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vic20_control_port_devices, NULL, NULL) - MCFG_C64_EXPANSION_SLOT_ADD(C64_EXPANSION_SLOT_TAG, VIC6567_CLOCK, expansion_intf, c64_expansion_cards, NULL, NULL) - MCFG_C64_USER_PORT_ADD(C64_USER_PORT_TAG, user_intf, c64_user_port_cards, NULL, NULL) - - // software list - MCFG_SOFTWARE_LIST_ADD("cart_list_vic10", "vic10") - MCFG_SOFTWARE_LIST_FILTER("cart_list_vic10", "NTSC") - MCFG_SOFTWARE_LIST_ADD("cart_list_c64", "c64_cart") - MCFG_SOFTWARE_LIST_FILTER("cart_list_c64", "NTSC") - MCFG_SOFTWARE_LIST_ADD("disk_list", "c64_flop") - MCFG_SOFTWARE_LIST_FILTER("disk_list", "NTSC") - - // internal ram - MCFG_RAM_ADD(RAM_TAG) - MCFG_RAM_DEFAULT_SIZE("64K") + MCFG_DEVICE_REMOVE("iec9") + MCFG_CBM_IEC_SLOT_ADD("iec9", 8, sx1541_iec_devices, "sx1541", NULL) MACHINE_CONFIG_END @@ -1255,49 +1180,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( ntsc_c ) //------------------------------------------------- -static MACHINE_CONFIG_START( ntsc_c, c64c_state ) - // basic hardware - MCFG_CPU_ADD(M6510_TAG, M6510, VIC6567_CLOCK) - MCFG_CPU_PROGRAM_MAP(c64_mem) - MCFG_CPU_CONFIG(cpu_intf) - MCFG_CPU_VBLANK_INT(SCREEN_TAG, c64_frame_interrupt) - MCFG_QUANTUM_PERFECT_CPU(M6510_TAG) - - // video hardware - MCFG_MOS8562_ADD(MOS6567_TAG, SCREEN_TAG, VIC6567_CLOCK, vic_intf, vic_videoram_map, vic_colorram_map) - - // sound hardware - MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD(MOS6851_TAG, SID6581, VIC6567_CLOCK) - MCFG_SOUND_CONFIG(sid_intf) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - MCFG_SOUND_ADD("dac", DAC, 0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - // devices - MCFG_PLS100_ADD(PLA_TAG) - MCFG_MOS6526R1_ADD(MOS6526_1_TAG, VIC6567_CLOCK, cia1_intf) - MCFG_MOS6526R1_ADD(MOS6526_2_TAG, VIC6567_CLOCK, cia2_intf) - MCFG_QUICKLOAD_ADD("quickload", cbm_c64, "p00,prg,t64", CBM_QUICKLOAD_DELAY_SECONDS) - MCFG_CASSETTE_ADD(CASSETTE_TAG, cbm_cassette_interface) - MCFG_TIMER_ADD(TIMER_C1531_TAG, cassette_tick) - MCFG_CBM_IEC_ADD(iec_intf, "c1541") - MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vic20_control_port_devices, NULL, NULL) - MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vic20_control_port_devices, NULL, NULL) - MCFG_C64_EXPANSION_SLOT_ADD(C64_EXPANSION_SLOT_TAG, VIC6567_CLOCK, expansion_intf, c64_expansion_cards, NULL, NULL) - MCFG_C64_USER_PORT_ADD(C64_USER_PORT_TAG, user_intf, c64_user_port_cards, NULL, NULL) - - // software list - MCFG_SOFTWARE_LIST_ADD("cart_list_vic10", "vic10") - MCFG_SOFTWARE_LIST_FILTER("cart_list_vic10", "NTSC") - MCFG_SOFTWARE_LIST_ADD("cart_list_c64", "c64_cart") - MCFG_SOFTWARE_LIST_FILTER("cart_list_c64", "NTSC") - MCFG_SOFTWARE_LIST_ADD("disk_list", "c64_flop") - MCFG_SOFTWARE_LIST_FILTER("disk_list", "NTSC") - - // internal ram - MCFG_RAM_ADD(RAM_TAG) - MCFG_RAM_DEFAULT_SIZE("64K") +static MACHINE_CONFIG_DERIVED_CLASS( ntsc_c, ntsc, c64c_state ) MACHINE_CONFIG_END @@ -1356,51 +1239,15 @@ MACHINE_CONFIG_END //------------------------------------------------- static MACHINE_CONFIG_START( pal_sx, sx64_state ) + MCFG_FRAGMENT_ADD(pal) + // basic hardware - MCFG_CPU_ADD(M6510_TAG, M6510, VIC6569_CLOCK) - MCFG_CPU_PROGRAM_MAP(c64_mem) + MCFG_CPU_MODIFY(M6510_TAG) MCFG_CPU_CONFIG(sx64_cpu_intf) - MCFG_CPU_VBLANK_INT(SCREEN_TAG, c64_frame_interrupt) - MCFG_QUANTUM_PERFECT_CPU(M6510_TAG) - - // video hardware - MCFG_MOS6569_ADD(MOS6569_TAG, SCREEN_TAG, VIC6569_CLOCK, vic_intf, vic_videoram_map, vic_colorram_map) - - // sound hardware - MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD(MOS6851_TAG, SID6581, VIC6569_CLOCK) - MCFG_SOUND_CONFIG(sid_intf) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - MCFG_SOUND_ADD("dac", DAC, 0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) // devices - MCFG_PLS100_ADD(PLA_TAG) - MCFG_MOS6526R1_ADD(MOS6526_1_TAG, VIC6569_CLOCK, cia1_intf) - MCFG_MOS6526R1_ADD(MOS6526_2_TAG, VIC6569_CLOCK, cia2_intf) - MCFG_QUICKLOAD_ADD("quickload", cbm_c64, "p00,prg,t64", CBM_QUICKLOAD_DELAY_SECONDS) - MCFG_CBM_IEC_BUS_ADD(iec_intf) - MCFG_CBM_IEC_SLOT_ADD("iec4", 4, cbm_iec_devices, NULL, NULL) + MCFG_DEVICE_REMOVE("iec8") MCFG_CBM_IEC_SLOT_ADD("iec8", 8, sx1541_iec_devices, "sx1541", NULL) - MCFG_CBM_IEC_SLOT_ADD("iec9", 9, cbm_iec_devices, NULL, NULL) - MCFG_CBM_IEC_SLOT_ADD("iec10", 10, cbm_iec_devices, NULL, NULL) - MCFG_CBM_IEC_SLOT_ADD("iec11", 11, cbm_iec_devices, NULL, NULL) - MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vic20_control_port_devices, NULL, NULL) - MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vic20_control_port_devices, NULL, NULL) - MCFG_C64_EXPANSION_SLOT_ADD(C64_EXPANSION_SLOT_TAG, VIC6569_CLOCK, expansion_intf, c64_expansion_cards, NULL, NULL) - MCFG_C64_USER_PORT_ADD(C64_USER_PORT_TAG, user_intf, c64_user_port_cards, NULL, NULL) - - // software list - MCFG_SOFTWARE_LIST_ADD("cart_list_vic10", "vic10") - MCFG_SOFTWARE_LIST_FILTER("cart_list_vic10", "PAL") - MCFG_SOFTWARE_LIST_ADD("cart_list_c64", "c64_cart") - MCFG_SOFTWARE_LIST_FILTER("cart_list_c64", "PAL") - MCFG_SOFTWARE_LIST_ADD("disk_list", "c64_flop") - MCFG_SOFTWARE_LIST_FILTER("disk_list", "PAL") - - // internal ram - MCFG_RAM_ADD(RAM_TAG) - MCFG_RAM_DEFAULT_SIZE("64K") MACHINE_CONFIG_END @@ -1408,49 +1255,7 @@ MACHINE_CONFIG_END // MACHINE_CONFIG( pal_c ) //------------------------------------------------- -static MACHINE_CONFIG_START( pal_c, c64c_state ) - // basic hardware - MCFG_CPU_ADD(M6510_TAG, M6510, VIC6569_CLOCK) - MCFG_CPU_PROGRAM_MAP(c64_mem) - MCFG_CPU_CONFIG(cpu_intf) - MCFG_CPU_VBLANK_INT(SCREEN_TAG, c64_frame_interrupt) - MCFG_QUANTUM_PERFECT_CPU(M6510_TAG) - - // video hardware - MCFG_MOS8565_ADD(MOS6569_TAG, SCREEN_TAG, VIC6569_CLOCK, vic_intf, vic_videoram_map, vic_colorram_map) - - // sound hardware - MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD(MOS6851_TAG, SID6581, VIC6569_CLOCK) - MCFG_SOUND_CONFIG(sid_intf) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) - MCFG_SOUND_ADD("dac", DAC, 0) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) - - // devices - MCFG_PLS100_ADD(PLA_TAG) - MCFG_MOS6526R1_ADD(MOS6526_1_TAG, VIC6569_CLOCK, cia1_intf) - MCFG_MOS6526R1_ADD(MOS6526_2_TAG, VIC6569_CLOCK, cia2_intf) - MCFG_QUICKLOAD_ADD("quickload", cbm_c64, "p00,prg,t64", CBM_QUICKLOAD_DELAY_SECONDS) - MCFG_CASSETTE_ADD(CASSETTE_TAG, cbm_cassette_interface) - MCFG_TIMER_ADD(TIMER_C1531_TAG, cassette_tick) - MCFG_CBM_IEC_ADD(iec_intf, "c1541") - MCFG_VCS_CONTROL_PORT_ADD(CONTROL1_TAG, vic20_control_port_devices, NULL, NULL) - MCFG_VCS_CONTROL_PORT_ADD(CONTROL2_TAG, vic20_control_port_devices, NULL, NULL) - MCFG_C64_EXPANSION_SLOT_ADD(C64_EXPANSION_SLOT_TAG, VIC6569_CLOCK, expansion_intf, c64_expansion_cards, NULL, NULL) - MCFG_C64_USER_PORT_ADD(C64_USER_PORT_TAG, user_intf, c64_user_port_cards, NULL, NULL) - - // software list - MCFG_SOFTWARE_LIST_ADD("cart_list_vic10", "vic10") - MCFG_SOFTWARE_LIST_FILTER("cart_list_vic10", "PAL") - MCFG_SOFTWARE_LIST_ADD("cart_list_c64", "c64_cart") - MCFG_SOFTWARE_LIST_FILTER("cart_list_c64", "PAL") - MCFG_SOFTWARE_LIST_ADD("disk_list", "c64_flop") - MCFG_SOFTWARE_LIST_FILTER("disk_list", "PAL") - - // internal ram - MCFG_RAM_ADD(RAM_TAG) - MCFG_RAM_DEFAULT_SIZE("64K") +static MACHINE_CONFIG_DERIVED_CLASS( pal_c, pal, c64c_state ) MACHINE_CONFIG_END @@ -1570,6 +1375,10 @@ ROM_START( c64n ) ROMX_LOAD( "exos4.u4", 0x0000, 0x2000, CRC(d5cf83a9) SHA1(d5f03a5c0e9d00032d4751ecc6bcd6385879c9c7), ROM_BIOS(27) ) ROM_SYSTEM_BIOS(27, "pdc", "ProLogic-DOS Classic" ) ROMX_LOAD( "pdc.u4", 0x0000, 0x4000, CRC(6b653b9c) SHA1(0f44a9c62619424a0cd48a90e1b377b987b494e0), ROM_BIOS(28) ) + ROM_SYSTEM_BIOS(28, "digidos", "DigiDOS" ) + ROMX_LOAD( "digidos.u4", 0x0000, 0x4000, CRC(2b0c8e89) SHA1(542d6f61c318bced0642e7c2d4d3b34a0f13e634), ROM_BIOS(29) ) + ROM_SYSTEM_BIOS(29, "magnum", "Magnum Load" ) + ROMX_LOAD( "magnum.u4", 0x0000, 0x4000, CRC(b2cffcc6) SHA1(827c782c1723b5d0992c05c00738ae4b2133b641), ROM_BIOS(30) ) ROM_REGION( 0x1000, "charom", 0 ) ROM_LOAD( "901225-01.u5", 0x0000, 0x1000, CRC(ec4272ee) SHA1(adc7c31e18c7c7413d54802ef2f4193da14711aa) ) @@ -1780,21 +1589,21 @@ ROM_END // SYSTEM DRIVERS //************************************************************************** -// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS -COMP( 1982, c64n, 0, 0, ntsc, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64 (NTSC)", 0 ) -COMP( 1982, c64j, c64n, 0, ntsc, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64 (Japan)", 0 ) -COMP( 1982, c64p, c64n, 0, pal, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64 (PAL)", 0 ) -COMP( 1982, c64sw, c64n, 0, pal, c64sw, driver_device, 0, "Commodore Business Machines", "Commodore 64 / VIC-64S (Sweden/Finland)", 0 ) -COMP( 1983, pet64, c64n, 0, pet64, c64, driver_device, 0, "Commodore Business Machines", "PET 64 / CBM 4064 (NTSC)", 0 ) -COMP( 1983, edu64, c64n, 0, pet64, c64, driver_device, 0, "Commodore Business Machines", "Educator 64 (NTSC)", 0 ) -COMP( 1984, sx64n, c64n, 0, ntsc_sx, c64, driver_device, 0, "Commodore Business Machines", "SX-64 / Executive 64 (NTSC)", 0 ) -COMP( 1984, sx64p, c64n, 0, pal_sx, c64, driver_device, 0, "Commodore Business Machines", "SX-64 / Executive 64 (PAL)", 0 ) -COMP( 1984, vip64, c64n, 0, pal_sx, c64sw, driver_device, 0, "Commodore Business Machines", "VIP-64 (Sweden/Finland)", 0 ) -COMP( 1984, dx64, c64n, 0, ntsc_dx, c64, driver_device, 0, "Commodore Business Machines", "DX-64 (NTSC)", 0 ) +// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS +COMP( 1982, c64n, 0, 0, ntsc, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64 (NTSC)", GAME_SUPPORTS_SAVE ) +COMP( 1982, c64j, c64n, 0, ntsc, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64 (Japan)", GAME_SUPPORTS_SAVE ) +COMP( 1982, c64p, c64n, 0, pal, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64 (PAL)", GAME_SUPPORTS_SAVE ) +COMP( 1982, c64sw, c64n, 0, pal, c64sw, driver_device, 0, "Commodore Business Machines", "Commodore 64 / VIC-64S (Sweden/Finland)", GAME_SUPPORTS_SAVE ) +COMP( 1983, pet64, c64n, 0, pet64, c64, driver_device, 0, "Commodore Business Machines", "PET 64 / CBM 4064 (NTSC)", GAME_SUPPORTS_SAVE ) +COMP( 1983, edu64, c64n, 0, pet64, c64, driver_device, 0, "Commodore Business Machines", "Educator 64 (NTSC)", GAME_SUPPORTS_SAVE ) +COMP( 1984, sx64n, c64n, 0, ntsc_sx, c64, driver_device, 0, "Commodore Business Machines", "SX-64 / Executive 64 (NTSC)", GAME_SUPPORTS_SAVE ) +COMP( 1984, sx64p, c64n, 0, pal_sx, c64, driver_device, 0, "Commodore Business Machines", "SX-64 / Executive 64 (PAL)", GAME_SUPPORTS_SAVE ) +COMP( 1984, vip64, c64n, 0, pal_sx, c64sw, driver_device, 0, "Commodore Business Machines", "VIP-64 (Sweden/Finland)", GAME_SUPPORTS_SAVE ) +COMP( 1984, dx64, c64n, 0, ntsc_dx, c64, driver_device, 0, "Commodore Business Machines", "DX-64 (NTSC)", GAME_SUPPORTS_SAVE ) //COMP(1983, clipper, c64, 0, c64pal, clipper, XXX_CLASS, c64pal, "PDC", "Clipper", GAME_NOT_WORKING) // C64 in a briefcase with 3" floppy, electroluminescent flat screen, thermal printer //COMP(1983, tesa6240, c64, 0, c64pal, c64, XXX_CLASS, c64pal, "Tesa", "6240", GAME_NOT_WORKING) // modified SX64 with label printer -COMP( 1986, c64cn, c64n, 0, ntsc_c, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64C (NTSC)", 0 ) -COMP( 1986, c64cp, c64n, 0, pal_c, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64C (PAL)", 0 ) -COMP( 1986, c64csw, c64n, 0, pal_c, c64sw, driver_device, 0, "Commodore Business Machines", "Commodore 64C (Sweden/Finland)", 0 ) -COMP( 1986, c64g, c64n, 0, pal_c, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64G (PAL)", 0 ) -CONS( 1990, c64gs, c64n, 0, pal_gs, c64gs, driver_device, 0, "Commodore Business Machines", "Commodore 64 Games System (PAL)", 0 ) +COMP( 1986, c64cn, c64n, 0, ntsc_c, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64C (NTSC)", GAME_SUPPORTS_SAVE ) +COMP( 1986, c64cp, c64n, 0, pal_c, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64C (PAL)", GAME_SUPPORTS_SAVE ) +COMP( 1986, c64csw, c64n, 0, pal_c, c64sw, driver_device, 0, "Commodore Business Machines", "Commodore 64C (Sweden/Finland)", GAME_SUPPORTS_SAVE ) +COMP( 1986, c64g, c64n, 0, pal_c, c64, driver_device, 0, "Commodore Business Machines", "Commodore 64G (PAL)", GAME_SUPPORTS_SAVE ) +CONS( 1990, c64gs, c64n, 0, pal_gs, c64gs, driver_device, 0, "Commodore Business Machines", "Commodore 64 Games System (PAL)", GAME_SUPPORTS_SAVE ) diff --git a/src/mess/machine/c1541.c b/src/mess/machine/c1541.c index 78b3032ea8c..b644b56df47 100644 --- a/src/mess/machine/c1541.c +++ b/src/mess/machine/c1541.c @@ -267,6 +267,8 @@ ROM_START( c1541 ) ROMX_LOAD( "rolo27.uab5", 0x0000, 0x2000, CRC(171c7962) SHA1(04c892c4b3d7c74750576521fa081f07d8ca8557), ROM_BIOS(9) ) ROM_SYSTEM_BIOS( 9, "tt34", "TurboTrans v3.4" ) ROMX_LOAD( "ttd34.uab5", 0x0000, 0x8000, CRC(518d34a1) SHA1(4d6ffdce6ab122e9627b0a839861687bcd4e03ec), ROM_BIOS(10) ) + ROM_SYSTEM_BIOS( 10, "digidos", "DigiDOS" ) + ROMX_LOAD( "digidos.uab5", 0x0000, 0x8000, CRC(b3f05ea3) SHA1(99d3d848344c68410b686cda812f3788b41fead3), ROM_BIOS(11) ) ROM_END @@ -409,6 +411,26 @@ const rom_entry *base_c1541_device::device_rom_region() const } + +//------------------------------------------------- +// read - +//------------------------------------------------- + +READ8_MEMBER( c1541_prologic_dos_classic_device::read ) +{ + return 0; +} + + +//------------------------------------------------- +// write - +//------------------------------------------------- + +WRITE8_MEMBER( c1541_prologic_dos_classic_device::write ) +{ +} + + //------------------------------------------------- // ADDRESS_MAP( c1541_mem ) //------------------------------------------------- @@ -454,14 +476,15 @@ ADDRESS_MAP_END //------------------------------------------------- static ADDRESS_MAP_START( c1541pdc_mem, AS_PROGRAM, 8, c1541_prologic_dos_classic_device ) - AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x6000) AM_RAM AM_SHARE("share1") + AM_RANGE(0x0000, 0xffff) AM_READWRITE(read, write) +/* AM_RANGE(0x0000, 0x07ff) AM_MIRROR(0x6000) AM_RAM AM_SHARE("share1") AM_RANGE(0x1800, 0x180f) AM_MIRROR(0x63f0) AM_DEVREADWRITE(M6522_0_TAG, via6522_device, read, write) AM_RANGE(0x1c00, 0x1c0f) AM_MIRROR(0x63f0) AM_DEVREADWRITE(M6522_1_TAG, via6522_device, read, write) AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("share1") AM_RANGE(0x8800, 0x9fff) AM_RAM AM_RANGE(0xa000, 0xb7ff) AM_ROM AM_REGION(M6502_TAG, 0x0000) AM_RANGE(0xb800, 0xb80f) AM_READWRITE(pia_r, pia_w) - AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION(M6502_TAG, 0x2000) + AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION(M6502_TAG, 0x2000)*/ ADDRESS_MAP_END @@ -853,15 +876,10 @@ MACHINE_CONFIG_END //------------------------------------------------- static MACHINE_CONFIG_FRAGMENT( c1541c ) - MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16) - MCFG_CPU_PROGRAM_MAP(c1541_mem) - MCFG_QUANTUM_PERFECT_CPU(M6502_TAG) + MCFG_FRAGMENT_ADD(c1541) - MCFG_VIA6522_ADD(M6522_0_TAG, XTAL_16MHz/16, c1541c_via0_intf) - MCFG_VIA6522_ADD(M6522_1_TAG, XTAL_16MHz/16, c1541_via1_intf) - - MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, c1541_floppy_interface) - MCFG_64H156_ADD(C64H156_TAG, XTAL_16MHz, ga_intf) + MCFG_DEVICE_MODIFY(M6522_0_TAG) + MCFG_DEVICE_CONFIG(c1541c_via0_intf) MACHINE_CONFIG_END @@ -870,15 +888,10 @@ MACHINE_CONFIG_END //------------------------------------------------- static MACHINE_CONFIG_FRAGMENT( c1541dd ) - MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16) - MCFG_CPU_PROGRAM_MAP(c1541dd_mem) - MCFG_QUANTUM_PERFECT_CPU(M6502_TAG) - - MCFG_VIA6522_ADD(M6522_0_TAG, XTAL_16MHz/16, c1541_via0_intf) - MCFG_VIA6522_ADD(M6522_1_TAG, XTAL_16MHz/16, c1541_via1_intf) + MCFG_FRAGMENT_ADD(c1541) - MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, c1541_floppy_interface) - MCFG_64H156_ADD(C64H156_TAG, XTAL_16MHz, ga_intf) + MCFG_CPU_MODIFY(M6502_TAG) + MCFG_CPU_PROGRAM_MAP(c1541dd_mem) MACHINE_CONFIG_END @@ -887,15 +900,10 @@ MACHINE_CONFIG_END //------------------------------------------------- static MACHINE_CONFIG_FRAGMENT( c1541pd ) - MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16) - MCFG_CPU_PROGRAM_MAP(c1541pd_mem) - MCFG_QUANTUM_PERFECT_CPU(M6502_TAG) - - MCFG_VIA6522_ADD(M6522_0_TAG, XTAL_16MHz/16, c1541_via0_intf) - MCFG_VIA6522_ADD(M6522_1_TAG, XTAL_16MHz/16, c1541_via1_intf) + MCFG_FRAGMENT_ADD(c1541) - MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, c1541_floppy_interface) - MCFG_64H156_ADD(C64H156_TAG, XTAL_16MHz, ga_intf) + MCFG_CPU_MODIFY(M6502_TAG) + MCFG_CPU_PROGRAM_MAP(c1541pd_mem) MACHINE_CONFIG_END @@ -904,15 +912,11 @@ MACHINE_CONFIG_END //------------------------------------------------- static MACHINE_CONFIG_FRAGMENT( c1541pdc ) - MCFG_CPU_ADD(M6502_TAG, M6502, XTAL_16MHz/16) - MCFG_CPU_PROGRAM_MAP(c1541pdc_mem) - MCFG_QUANTUM_PERFECT_CPU(M6502_TAG) + MCFG_FRAGMENT_ADD(c1541) - MCFG_VIA6522_ADD(M6522_0_TAG, XTAL_16MHz/16, c1541_via0_intf) - MCFG_VIA6522_ADD(M6522_1_TAG, XTAL_16MHz/16, c1541_via1_intf) + MCFG_CPU_MODIFY(M6502_TAG) + MCFG_CPU_PROGRAM_MAP(c1541pdc_mem) - MCFG_LEGACY_FLOPPY_DRIVE_ADD(FLOPPY_0, c1541_floppy_interface) - MCFG_64H156_ADD(C64H156_TAG, XTAL_16MHz, ga_intf) MCFG_PIA6821_ADD(MC6821_TAG, pia_intf) MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics) MACHINE_CONFIG_END @@ -1095,6 +1099,12 @@ void fsd2_device::device_start() } } +void c1541_prologic_dos_classic_device::device_start() +{ + // find memory regions + m_mmu_rom = memregion("mmu")->base(); +} + //------------------------------------------------- // device_reset - device-specific reset diff --git a/src/mess/machine/c1541.h b/src/mess/machine/c1541.h index 7e3c7e247e6..b47fdcd81be 100644 --- a/src/mess/machine/c1541.h +++ b/src/mess/machine/c1541.h @@ -211,7 +211,13 @@ public: // construction/destruction c1541_prologic_dos_classic_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + // device-level overrides + virtual void device_start(); + // not really public + DECLARE_READ8_MEMBER( read ); + DECLARE_WRITE8_MEMBER( write ); + DECLARE_READ8_MEMBER( pia_r ); DECLARE_WRITE8_MEMBER( pia_w ); @@ -222,6 +228,8 @@ public: protected: required_device<pia6821_device> m_pia; required_device<centronics_device> m_centronics; + + UINT8 *m_mmu_rom; }; |