diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/fidel6502.cpp | 131 | ||||
-rw-r--r-- | src/mame/mame.lst | 1 |
2 files changed, 68 insertions, 64 deletions
diff --git a/src/mame/drivers/fidel6502.cpp b/src/mame/drivers/fidel6502.cpp index 7b473bafaed..58773581902 100644 --- a/src/mame/drivers/fidel6502.cpp +++ b/src/mame/drivers/fidel6502.cpp @@ -502,11 +502,7 @@ public: void su9(machine_config &config); void rsc(machine_config &config); - // PC - void pc_map(address_map &map); - void pc(machine_config &config); - - // EAS, EAG + // EAS, EAG, PC void eas_prepare_display(); DECLARE_WRITE8_MEMBER(eas_segment_w); DECLARE_WRITE8_MEMBER(eas_led_w); @@ -516,8 +512,10 @@ public: DECLARE_WRITE8_MEMBER(eas_ppi_portc_w); void eas_map(address_map &map); void eag_map(address_map &map); + void pc_map(address_map &map); void eas(machine_config &config); void eag(machine_config &config); + void pc(machine_config &config); // SC9 void sc9_prepare_display(); @@ -729,17 +727,7 @@ WRITE_LINE_MEMBER(fidel6502_state::csc_pia1_ca2_w) /****************************************************************************** - PC -******************************************************************************/ - -// TTL/generic - -//x - - - -/****************************************************************************** - EAS, EAG + EAS, EAG, PC ******************************************************************************/ // TTL/generic @@ -773,7 +761,7 @@ READ8_MEMBER(fidel6502_state::eas_input_r) } -// 8255 PPI +// 8255 PPI (PC: done with TTL instead) WRITE8_MEMBER(fidel6502_state::eas_ppi_porta_w) { @@ -1196,19 +1184,7 @@ void fidel6502_state::rsc_map(address_map &map) } -// PC - -void fidel6502_state::pc_map(address_map &map) -{ - map.unmap_value_high(); - map(0x0000, 0x0fff).ram(); - //map(0x2000, 0x5fff).r(this, FUNC(fidel6502_state::cartridge_r)); - map(0x8000, 0x9fff).ram(); - map(0xb000, 0xffff).rom(); -} - - -// EAS, EAG +// EAS, EAG, PC void fidel6502_state::eas_map(address_map &map) { @@ -1235,6 +1211,21 @@ void fidel6502_state::eag_map(address_map &map) map(0x8000, 0xffff).rom(); //.nopw() } +void fidel6502_state::pc_map(address_map &map) +{ + map.unmap_value_high(); + map(0x0000, 0x1fff).ram(); + map(0x2000, 0x5fff).r(this, FUNC(fidel6502_state::cartridge_r)); + map(0x7000, 0x7000).w(this, FUNC(fidel6502_state::eas_ppi_porta_w)); + map(0x7010, 0x7010).r(this, FUNC(fidel6502_state::eas_ppi_portb_r)); + map(0x7020, 0x7027).w(this, FUNC(fidel6502_state::eas_segment_w)).nopr(); + map(0x7030, 0x7037).w(this, FUNC(fidel6502_state::eas_led_w)).nopr(); + map(0x7040, 0x7040).w(this, FUNC(fidel6502_state::eas_ppi_portc_w)); + map(0x7050, 0x7050).r(this, FUNC(fidel6502_state::eas_input_r)); + map(0x8000, 0x9fff).ram(); + map(0xb000, 0xffff).rom(); +} + // SC9 @@ -1723,7 +1714,7 @@ MACHINE_CONFIG_START(fidel6502_state::csc) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", M6502, 3.9_MHz_XTAL/2) // from 3.9MHz resonator MCFG_CPU_PROGRAM_MAP(csc_map) - MCFG_CPU_PERIODIC_INT_DRIVER(fidel6502_state, irq0_line_hold, 600) // 38400kHz/64 + MCFG_CPU_PERIODIC_INT_DRIVER(fidel6502_state, irq0_line_hold, 600) // 38400Hz/64 MCFG_DEVICE_ADD("pia0", PIA6821, 0) MCFG_PIA_READPB_HANDLER(READ8(fidel6502_state, csc_pia0_pb_r)) @@ -1766,14 +1757,20 @@ MACHINE_CONFIG_START(fidel6502_state::su9) MCFG_DEFAULT_LAYOUT(layout_fidel_su9) MACHINE_CONFIG_END -MACHINE_CONFIG_START(fidel6502_state::pc) +MACHINE_CONFIG_START(fidel6502_state::eas) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", R65C02, 4_MHz_XTAL) - MCFG_CPU_PROGRAM_MAP(pc_map) + MCFG_CPU_ADD("maincpu", R65C02, 3_MHz_XTAL) + MCFG_CPU_PROGRAM_MAP(eas_map) MCFG_CPU_PERIODIC_INT_DRIVER(fidel6502_state, irq0_line_hold, 600) // guessed - //MCFG_NVRAM_ADD_0FILL("nvram") + MCFG_DEVICE_ADD("ppi8255", I8255, 0) // port B: input, port A & C: output + MCFG_I8255_OUT_PORTA_CB(WRITE8(fidel6502_state, eas_ppi_porta_w)) + MCFG_I8255_TRISTATE_PORTA_CB(CONSTANT(0)) + MCFG_I8255_IN_PORTB_CB(READ8(fidel6502_state, eas_ppi_portb_r)) + MCFG_I8255_OUT_PORTC_CB(WRITE8(fidel6502_state, eas_ppi_portc_w)) + + MCFG_NVRAM_ADD_0FILL("nvram") MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1)) MCFG_DEFAULT_LAYOUT(layout_fidel_eas) @@ -1795,21 +1792,13 @@ MACHINE_CONFIG_START(fidel6502_state::pc) MCFG_SOFTWARE_LIST_ADD("cart_list", "fidel_scc") MACHINE_CONFIG_END -MACHINE_CONFIG_START(fidel6502_state::eas) +MACHINE_CONFIG_START(fidel6502_state::pc) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", R65C02, 3_MHz_XTAL) - MCFG_CPU_PROGRAM_MAP(eas_map) + MCFG_CPU_ADD("maincpu", R65C02, 4_MHz_XTAL) + MCFG_CPU_PROGRAM_MAP(pc_map) MCFG_CPU_PERIODIC_INT_DRIVER(fidel6502_state, irq0_line_hold, 600) // guessed - MCFG_DEVICE_ADD("ppi8255", I8255, 0) // port B: input, port A & C: output - MCFG_I8255_OUT_PORTA_CB(WRITE8(fidel6502_state, eas_ppi_porta_w)) - MCFG_I8255_TRISTATE_PORTA_CB(CONSTANT(0)) - MCFG_I8255_IN_PORTB_CB(READ8(fidel6502_state, eas_ppi_portb_r)) - MCFG_I8255_OUT_PORTC_CB(WRITE8(fidel6502_state, eas_ppi_portc_w)) - - MCFG_NVRAM_ADD_0FILL("nvram") - MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", fidelbase_state, display_decay_tick, attotime::from_msec(1)) MCFG_DEFAULT_LAYOUT(layout_fidel_eas) @@ -2217,20 +2206,6 @@ ROM_START( super9ccfr ) ROM_END -ROM_START( fpres ) - ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("u09_yellow", 0xb000, 0x1000, CRC(03fac294) SHA1(5a9d72978318c61185efd4bc9e4a868c226465b8) ) - ROM_LOAD("u10_green", 0xc000, 0x1000, CRC(5d049d5e) SHA1(c7359bead92729e8a92d6cf1789d87ae43d23cbf) ) - ROM_LOAD("u11_black", 0xd000, 0x1000, CRC(98bd01b7) SHA1(48cc560c4ca736f54e30d757990ff403c05c39ae) ) - ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(6f18115f) SHA1(a08b3a66bfdc23f3400e03fe253a8b9a4967d14f) ) - ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(dea8091d) SHA1(1d94a90ae076215c2c009e78ec4919dbd8467ef8) ) - - ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("101-32107", 0x0000, 0x1000, BAD_DUMP CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // taken from csc, assume correct - ROM_RELOAD( 0x1000, 0x1000) -ROM_END - - ROM_START( feasbu ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD("eli_bu.6", 0x8000, 0x0800, CRC(93dcc23b) SHA1(2eb8c5a85e566948bc256d6b1804694e6b0ffa6f) ) // ST M27C64A, unknown label @@ -2362,6 +2337,33 @@ ROM_START( feasglafr ) ROM_END +ROM_START( fpres ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD("u09_yellow", 0xb000, 0x1000, CRC(03fac294) SHA1(5a9d72978318c61185efd4bc9e4a868c226465b8) ) + ROM_LOAD("u10_green", 0xc000, 0x1000, CRC(5d049d5e) SHA1(c7359bead92729e8a92d6cf1789d87ae43d23cbf) ) + ROM_LOAD("u11_black", 0xd000, 0x1000, CRC(98bd01b7) SHA1(48cc560c4ca736f54e30d757990ff403c05c39ae) ) + ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(6f18115f) SHA1(a08b3a66bfdc23f3400e03fe253a8b9a4967d14f) ) + ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(dea8091d) SHA1(1d94a90ae076215c2c009e78ec4919dbd8467ef8) ) + + ROM_REGION( 0x2000, "speech", 0 ) + ROM_LOAD("101-32107", 0x0000, 0x1000, BAD_DUMP CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // taken from csc, assume correct + ROM_RELOAD( 0x1000, 0x1000) +ROM_END + +ROM_START( fpresbu ) + ROM_REGION( 0x10000, "maincpu", 0 ) + ROM_LOAD("u09_yellow", 0xb000, 0x1000, CRC(bb1cb486) SHA1(b83f50a3ef361d254b88eefaa5aac657aaa72375) ) + ROM_LOAD("u10_green", 0xc000, 0x1000, CRC(af0aec0e) SHA1(8293d00a12efa1c142b9e37bc7786012250536d9) ) + ROM_LOAD("u11_black", 0xd000, 0x1000, CRC(214a91cc) SHA1(aab07ecdd66ac208874f4053fc4b0b0659b017aa) ) + ROM_LOAD("u12_blue", 0xe000, 0x1000, CRC(dae4d8e4) SHA1(f06dbb643f0324c0bddaaae9537d5829768bda22) ) + ROM_LOAD("u13_red", 0xf000, 0x1000, CRC(5fb67708) SHA1(1e9ee724c2be38daf39d5cf37b0ae587e408777c) ) + + ROM_REGION( 0x2000, "speech", 0 ) + ROM_LOAD("101-32107", 0x0000, 0x1000, BAD_DUMP CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // taken from csc, assume correct + ROM_RELOAD( 0x1000, 0x1000) +ROM_END + + ROM_START( feag2100 ) ROM_REGION( 0x10000, "maincpu", 0 ) ROM_LOAD("el2100.1", 0x8000, 0x8000, CRC(9b62b7d5) SHA1(cfcaea2e36c2d52fe4a85c77dbc7fa135893860c) ) @@ -2369,8 +2371,8 @@ ROM_START( feag2100 ) ROM_LOAD("el2100.3", 0xe000, 0x2000, CRC(2079a506) SHA1(a7bb83138c7b6eff6ea96702d453a214697f4890) ) ROM_REGION( 0x2000, "speech", 0 ) - ROM_LOAD("vcc-english.bin", 0x0000, 0x1000, BAD_DUMP CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // taken from csc, assume correct - ROM_RELOAD( 0x1000, 0x1000) + ROM_LOAD("101-32107", 0x0000, 0x1000, BAD_DUMP CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d) ) // taken from csc, assume correct + ROM_RELOAD( 0x1000, 0x1000) ROM_END ROM_START( feag2100sp ) @@ -2572,8 +2574,6 @@ CONS( 1983, super9ccsp, super9cc, 0, su9, su9sp, fidel6502_state, 0, CONS( 1983, super9ccg, super9cc, 0, su9, su9g, fidel6502_state, 0, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) CONS( 1983, super9ccfr, super9cc, 0, su9, su9fr, fidel6502_state, 0, "Fidelity Electronics", "Super 9 Sensory Chess Challenger (French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) -CONS( 1982, fpres, 0, 0, pc, eas, fidel6502_state, 0, "Fidelity Electronics", "Prestige Challenger (original program, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) - CONS( 1983, feasbu, 0, 0, eas, eas, fidel6502_state, 0, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) CONS( 1983, feasbusp, feasbu, 0, eas, eassp, fidel6502_state, 0, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) CONS( 1983, feasbug, feasbu, 0, eas, easg, fidel6502_state, 0, "Fidelity Electronics", "Elite A/S Challenger (Budapest program, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) @@ -2583,6 +2583,9 @@ CONS( 1984, feasglasp, feasbu, 0, eas, eassp, fidel6502_state, 0, CONS( 1984, feasglag, feasbu, 0, eas, easg, fidel6502_state, 0, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) CONS( 1984, feasglafr, feasbu, 0, eas, easfr, fidel6502_state, 0, "Fidelity Electronics", "Elite A/S Challenger (Glasgow program, French)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) +CONS( 1982, fpres, 0, 0, pc, eas, fidel6502_state, 0, "Fidelity Electronics", "Prestige Challenger (original program, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) +CONS( 1983, fpresbu, fpres, 0, pc, eas, fidel6502_state, 0, "Fidelity Electronics", "Prestige Challenger (Budapest program, English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) + CONS( 1986, feag2100, 0, 0, eag, eag, fidel6502_state, 0, "Fidelity Electronics", "Elite Avant Garde 2100 (English)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) CONS( 1986, feag2100sp, feag2100, 0, eag, eagsp, fidel6502_state, 0, "Fidelity Electronics", "Elite Avant Garde 2100 (Spanish)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) CONS( 1986, feag2100g, feag2100, 0, eag, eagg, fidel6502_state, 0, "Fidelity Electronics", "Elite Avant Garde 2100 (German)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_IMPERFECT_CONTROLS ) diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 4453dd13d70..e7ca79ead26 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -12696,6 +12696,7 @@ fexcelpb // fexcelv // fphantom // fpres // +fpresbu // fscc9 // fscc9b // fscc9c // |