summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/amstrad.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/drivers/amstrad.c')
-rw-r--r--src/mess/drivers/amstrad.c103
1 files changed, 77 insertions, 26 deletions
diff --git a/src/mess/drivers/amstrad.c b/src/mess/drivers/amstrad.c
index b6ed946e1e9..e38f820c85b 100644
--- a/src/mess/drivers/amstrad.c
+++ b/src/mess/drivers/amstrad.c
@@ -563,25 +563,25 @@ static INPUT_PORTS_START( plus )
The connectors' description for both CPCs and CPC+'s can be found at http://www.hardwarebook.info/Category:Computer */
PORT_START("analog.0")
- PORT_BIT(0x3f , 0, IPT_TRACKBALL_X)
+ PORT_BIT(0x3f , 0, IPT_AD_STICK_X)
PORT_SENSITIVITY(100)
PORT_KEYDELTA(10)
PORT_PLAYER(1)
PORT_START("analog.1")
- PORT_BIT(0x3f , 0, IPT_TRACKBALL_Y)
+ PORT_BIT(0x3f , 0, IPT_AD_STICK_Y)
PORT_SENSITIVITY(100)
PORT_KEYDELTA(10)
PORT_PLAYER(1)
PORT_START("analog.2")
- PORT_BIT(0x3f , 0, IPT_TRACKBALL_X)
+ PORT_BIT(0x3f , 0, IPT_AD_STICK_X)
PORT_SENSITIVITY(100)
PORT_KEYDELTA(10)
PORT_PLAYER(2)
PORT_START("analog.3")
- PORT_BIT(0x3f , 0, IPT_TRACKBALL_Y)
+ PORT_BIT(0x3f , 0, IPT_AD_STICK_Y)
PORT_SENSITIVITY(100)
PORT_KEYDELTA(10)
PORT_PLAYER(2)
@@ -780,6 +780,7 @@ speed of 3.8 MHz */
static SLOT_INTERFACE_START( amstrad_floppies )
SLOT_INTERFACE( "3ssdd", FLOPPY_3_SSDD )
+ SLOT_INTERFACE( "35ssdd", FLOPPY_35_DD )
SLOT_INTERFACE_END
static SLOT_INTERFACE_START( aleste_floppies )
@@ -795,6 +796,23 @@ static MACHINE_CONFIG_FRAGMENT( cpcplus_cartslot )
MCFG_SOFTWARE_LIST_ADD("cart_list", "gx4000")
MACHINE_CONFIG_END
+SLOT_INTERFACE_START(cpc464_exp_cards)
+ SLOT_INTERFACE("ddi1", CPC_DDI1)
+ SLOT_INTERFACE("ssa1", CPC_SSA1)
+ SLOT_INTERFACE("dkspeech", CPC_DKSPEECH)
+ SLOT_INTERFACE("rom", CPC_ROM)
+ SLOT_INTERFACE("multiface2", CPC_MFACE2)
+ SLOT_INTERFACE("pds", CPC_PDS)
+ SLOT_INTERFACE("rs232", CPC_RS232)
+ SLOT_INTERFACE("amsrs232", CPC_RS232_AMS)
+ SLOT_INTERFACE("sf2", CPC_SYMBIFACE2)
+ SLOT_INTERFACE("amdrum", CPC_AMDRUM)
+ SLOT_INTERFACE("playcity", CPC_PLAYCITY)
+ SLOT_INTERFACE("smartwatch", CPC_SMARTWATCH)
+ SLOT_INTERFACE("brunword4", CPC_BRUNWORD_MK4)
+ SLOT_INTERFACE("hd20", CPC_HD20)
+SLOT_INTERFACE_END
+
SLOT_INTERFACE_START(cpc_exp_cards)
SLOT_INTERFACE("ssa1", CPC_SSA1)
SLOT_INTERFACE("dkspeech", CPC_DKSPEECH)
@@ -808,6 +826,7 @@ SLOT_INTERFACE_START(cpc_exp_cards)
SLOT_INTERFACE("playcity", CPC_PLAYCITY)
SLOT_INTERFACE("smartwatch", CPC_SMARTWATCH)
SLOT_INTERFACE("brunword4", CPC_BRUNWORD_MK4)
+ SLOT_INTERFACE("hd20", CPC_HD20)
SLOT_INTERFACE_END
SLOT_INTERFACE_START(cpcplus_exp_cards)
@@ -821,6 +840,7 @@ SLOT_INTERFACE_START(cpcplus_exp_cards)
SLOT_INTERFACE("amdrum", CPC_AMDRUM)
SLOT_INTERFACE("playcity", CPC_PLAYCITY)
SLOT_INTERFACE("smartwatch", CPC_SMARTWATCH)
+ SLOT_INTERFACE("hd20", CPC_HD20)
SLOT_INTERFACE_END
SLOT_INTERFACE_START(amstrad_centronics_devices)
@@ -833,7 +853,7 @@ SLOT_INTERFACE_START(amstrad_centronics_devices)
SLOT_INTERFACE("digiblst", CENTRONICS_DIGIBLASTER)
SLOT_INTERFACE_END
-static MACHINE_CONFIG_START( amstrad_nofdc, amstrad_state )
+static MACHINE_CONFIG_START( amstrad_base, amstrad_state )
/* Machine hardware */
MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4)
MCFG_CPU_PROGRAM_MAP(amstrad_mem)
@@ -894,8 +914,11 @@ static MACHINE_CONFIG_START( amstrad_nofdc, amstrad_state )
MCFG_SOFTWARE_LIST_ADD("cass_list","cpc_cass")
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( cpc464, amstrad_base )
MCFG_DEVICE_ADD("exp", CPC_EXPANSION_SLOT, 0)
- MCFG_DEVICE_SLOT_INTERFACE(cpc_exp_cards, NULL, false)
+ MCFG_DEVICE_SLOT_INTERFACE(cpc464_exp_cards, NULL, false)
MCFG_CPC_EXPANSION_SLOT_OUT_IRQ_CB(INPUTLINE("maincpu", 0))
MCFG_CPC_EXPANSION_SLOT_OUT_NMI_CB(INPUTLINE("maincpu", INPUT_LINE_NMI))
MCFG_CPC_EXPANSION_SLOT_OUT_ROMDIS_CB(WRITELINE(amstrad_state, cpc_romdis)) // ROMDIS
@@ -903,21 +926,50 @@ static MACHINE_CONFIG_START( amstrad_nofdc, amstrad_state )
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)
- MCFG_RAM_DEFAULT_SIZE("128K")
- MCFG_RAM_EXTRA_OPTIONS("64K,320K,576K")
+ MCFG_RAM_DEFAULT_SIZE("64K")
+ MCFG_RAM_EXTRA_OPTIONS("128K,320K,576K")
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( amstrad, amstrad_nofdc )
+static MACHINE_CONFIG_DERIVED( cpc664, amstrad_base )
MCFG_UPD765A_ADD("upd765", true, true)
-
MCFG_FLOPPY_DRIVE_ADD("upd765:0", amstrad_floppies, "3ssdd", floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("upd765:1", amstrad_floppies, "3ssdd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("upd765:1", amstrad_floppies, "35ssdd", floppy_image_device::default_floppy_formats)
+ MCFG_SOFTWARE_LIST_ADD("flop_list","cpc_flop")
+ MCFG_DEVICE_ADD("exp", CPC_EXPANSION_SLOT, 0)
+ MCFG_DEVICE_SLOT_INTERFACE(cpc_exp_cards, NULL, false)
+ MCFG_CPC_EXPANSION_SLOT_OUT_IRQ_CB(INPUTLINE("maincpu", 0))
+ MCFG_CPC_EXPANSION_SLOT_OUT_NMI_CB(INPUTLINE("maincpu", INPUT_LINE_NMI))
+ MCFG_CPC_EXPANSION_SLOT_OUT_ROMDIS_CB(WRITELINE(amstrad_state, cpc_romdis)) // ROMDIS
+ MCFG_CPC_EXPANSION_SLOT_ROM_SELECT(WRITE8(amstrad_state,rom_select))
+
+ /* internal ram */
+ MCFG_RAM_ADD(RAM_TAG)
+ MCFG_RAM_DEFAULT_SIZE("64K")
+ MCFG_RAM_EXTRA_OPTIONS("128K,320K,576K")
+MACHINE_CONFIG_END
+
+static MACHINE_CONFIG_DERIVED( cpc6128, amstrad_base )
+ MCFG_UPD765A_ADD("upd765", true, true)
+ MCFG_FLOPPY_DRIVE_ADD("upd765:0", amstrad_floppies, "3ssdd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("upd765:1", amstrad_floppies, "35ssdd", floppy_image_device::default_floppy_formats)
MCFG_SOFTWARE_LIST_ADD("flop_list","cpc_flop")
+
+ MCFG_DEVICE_ADD("exp", CPC_EXPANSION_SLOT, 0)
+ MCFG_DEVICE_SLOT_INTERFACE(cpc_exp_cards, NULL, false)
+ MCFG_CPC_EXPANSION_SLOT_OUT_IRQ_CB(INPUTLINE("maincpu", 0))
+ MCFG_CPC_EXPANSION_SLOT_OUT_NMI_CB(INPUTLINE("maincpu", INPUT_LINE_NMI))
+ MCFG_CPC_EXPANSION_SLOT_OUT_ROMDIS_CB(WRITELINE(amstrad_state, cpc_romdis)) // ROMDIS
+ MCFG_CPC_EXPANSION_SLOT_ROM_SELECT(WRITE8(amstrad_state,rom_select))
+
+ /* internal ram */
+ MCFG_RAM_ADD(RAM_TAG)
+ MCFG_RAM_DEFAULT_SIZE("128K")
+ MCFG_RAM_EXTRA_OPTIONS("320K,576K")
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( kccomp, amstrad )
+static MACHINE_CONFIG_DERIVED( kccomp, cpc6128 )
MCFG_MACHINE_START_OVERRIDE(amstrad_state,kccomp)
MCFG_MACHINE_RESET_OVERRIDE(amstrad_state,kccomp)
@@ -989,7 +1041,7 @@ static MACHINE_CONFIG_START( cpcplus, amstrad_state )
MCFG_FRAGMENT_ADD(cpcplus_cartslot)
MCFG_FLOPPY_DRIVE_ADD("upd765:0", amstrad_floppies, "3ssdd", floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("upd765:1", amstrad_floppies, "3ssdd", floppy_image_device::default_floppy_formats)
+ MCFG_FLOPPY_DRIVE_ADD("upd765:1", amstrad_floppies, "35ssdd", floppy_image_device::default_floppy_formats)
MCFG_DEVICE_ADD("exp", CPC_EXPANSION_SLOT, 0)
MCFG_DEVICE_SLOT_INTERFACE(cpcplus_exp_cards, NULL, false)
@@ -1057,7 +1109,7 @@ static MACHINE_CONFIG_START( gx4000, amstrad_state )
MACHINE_CONFIG_END
-static MACHINE_CONFIG_DERIVED( aleste, amstrad )
+static MACHINE_CONFIG_DERIVED( aleste, cpc6128 )
MCFG_MACHINE_START_OVERRIDE(amstrad_state,aleste)
MCFG_MACHINE_RESET_OVERRIDE(amstrad_state,aleste)
@@ -1132,7 +1184,6 @@ ROM_START( cpc464 )
ROM_REGION(0x01c000, "maincpu", 0)
/* load the os to offset 0x01000 from memory base */
ROM_LOAD("cpc464.rom", 0x10000, 0x8000, CRC(40852f25) SHA1(56d39c463da60968d93e58b4ba0e675829412a20))
- ROM_LOAD("cpcados.rom", 0x18000, 0x4000, CRC(1fe22ecd) SHA1(39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb))
ROM_END
@@ -1195,14 +1246,14 @@ ROM_END
*
*************************************/
-/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
-COMP( 1984, cpc464, 0, 0, amstrad, cpc464, driver_device, 0, "Amstrad plc", "Amstrad CPC464", 0 )
-COMP( 1985, cpc664, cpc464, 0, amstrad, cpc664, driver_device, 0, "Amstrad plc", "Amstrad CPC664", 0 )
-COMP( 1985, cpc6128, cpc464, 0, amstrad, cpc6128, driver_device, 0, "Amstrad plc", "Amstrad CPC6128", 0 )
-COMP( 1985, cpc6128f, cpc464, 0, amstrad, cpc6128f, driver_device, 0, "Amstrad plc", "Amstrad CPC6128 (France, AZERTY Keyboard)", 0 )
-COMP( 1985, cpc6128s, cpc464, 0, amstrad, cpc6128s, driver_device, 0, "Amstrad plc", "Amstrad CPC6128 (Sweden/Finland)", 0 )
-COMP( 1990, cpc464p, 0, 0, cpcplus, plus, driver_device, 0, "Amstrad plc", "Amstrad CPC464+", 0 )
-COMP( 1990, cpc6128p, 0, 0, cpcplus, plus, driver_device, 0, "Amstrad plc", "Amstrad CPC6128+", 0 )
-CONS( 1990, gx4000, 0, 0, gx4000, gx4000, driver_device, 0, "Amstrad plc", "Amstrad GX4000", 0 )
-COMP( 1989, kccomp, cpc464, 0, kccomp, kccomp, driver_device, 0, "VEB Mikroelektronik", "KC Compact", 0 )
-COMP( 1993, al520ex, cpc464, 0, aleste, aleste, driver_device, 0, "Patisonic", "Aleste 520EX", GAME_IMPERFECT_SOUND )
+/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
+COMP( 1984, cpc464, 0, 0, cpc464, cpc464, driver_device, 0, "Amstrad plc", "Amstrad CPC464", 0 )
+COMP( 1985, cpc664, cpc464, 0, cpc664, cpc664, driver_device, 0, "Amstrad plc", "Amstrad CPC664", 0 )
+COMP( 1985, cpc6128, cpc464, 0, cpc6128, cpc6128, driver_device, 0, "Amstrad plc", "Amstrad CPC6128", 0 )
+COMP( 1985, cpc6128f, cpc464, 0, cpc6128, cpc6128f, driver_device, 0, "Amstrad plc", "Amstrad CPC6128 (France, AZERTY Keyboard)", 0 )
+COMP( 1985, cpc6128s, cpc464, 0, cpc6128, cpc6128s, driver_device, 0, "Amstrad plc", "Amstrad CPC6128 (Sweden/Finland)", 0 )
+COMP( 1990, cpc464p, 0, 0, cpcplus, plus, driver_device, 0, "Amstrad plc", "Amstrad CPC464+", 0 )
+COMP( 1990, cpc6128p, 0, 0, cpcplus, plus, driver_device, 0, "Amstrad plc", "Amstrad CPC6128+", 0 )
+CONS( 1990, gx4000, 0, 0, gx4000, gx4000, driver_device, 0, "Amstrad plc", "Amstrad GX4000", 0 )
+COMP( 1989, kccomp, cpc464, 0, kccomp, kccomp, driver_device, 0, "VEB Mikroelektronik", "KC Compact", 0 )
+COMP( 1993, al520ex, cpc464, 0, aleste, aleste, driver_device, 0, "Patisonic", "Aleste 520EX", GAME_IMPERFECT_SOUND )