mirror of
https://github.com/holub/mame
synced 2025-05-28 08:33:05 +03:00
New working clones
------------------ Elite Avant Garde (prototype on Elite A/S board)
This commit is contained in:
parent
7d6306549a
commit
4b8c464305
@ -24,14 +24,14 @@ matches (they won it in 1983). A/S stands for auto sensory, it's the 1st
|
||||
Fidelity board with magnet sensors. The magnetic chessboard was licensed from
|
||||
AVE Micro Systems, in fact, the PC model board is the same one as in AVE's ARB.
|
||||
|
||||
hardware overview:
|
||||
- 8*8 magnet sensors, 11 buttons, 8*(8+1) LEDs + 4*7seg LEDs
|
||||
Hardware notes:
|
||||
- PCB label: FIDELITY ELECTRONICS, 510-1071A01, copyright 1983
|
||||
- R65C02P4 or R6502BP CPU, default frequency 3MHz*
|
||||
- 4KB RAM (2*HM6116), 24KB ROM
|
||||
- TSI S14001A + speech ROM
|
||||
- I/O with 8255 PPI and bunch of TTL
|
||||
- 8*8 magnet sensors, 11 buttons, 8*(8+1) LEDs + 4*7seg LEDs
|
||||
- module slot and printer port
|
||||
- PCB label 510-1071A01
|
||||
|
||||
*In West Germany, some distributors released it with overclocked CPUs,
|
||||
advertised as 3.2, 3.6, or 4MHz. Unmodified EAS PCB photos show only a 3MHz XTAL.
|
||||
@ -51,13 +51,22 @@ I was at an internal sales meeting. No one could figure out how to start a new g
|
||||
Sid turned to me with a questioning look. I showed him how to do it (multiple key
|
||||
presses as I recall) and explained about Kathy. He said, don't let them do it again."
|
||||
|
||||
Prestige Challenger (PC) hardware is very similar. It was released before EAS,
|
||||
it doesn't have the 8255 PPI, but has more RAM(7*TMM2016P). Some were released at
|
||||
3.6MHz instead of 4MHz, maybe due to hardware instability? Opening module PC16 was
|
||||
included by default, this module is the same as CB16 but at different form factor.
|
||||
Prestige Challenger (model PC, 1982 510-1050A01 PCB) hardware is very similar. It
|
||||
was released before EAS, it doesn't have the 8255 PPI, but has more RAM (7*TMM2016P).
|
||||
Some were released at 3.6MHz instead of 4MHz, maybe due to hardware instability?
|
||||
Opening module PC16 was included by default, this module is the same as CB16 but
|
||||
at different form factor.
|
||||
|
||||
Elite Avant Garde (models 6081,6088,6089) is on similar hardware as EAS. Level B8
|
||||
starts a self-test and displays ROM checksums, press CL to advance.
|
||||
There's also an unreleased prototype on a newer 1985 PCB revision (Fidelity Computer
|
||||
Products, 510-1071B01 PCB). It has 16KB RAM (2*HM6264LP-15), a 5MHz CPU, IRQ is via
|
||||
a 556 timer instead of a 38.4kHz resonator. This board came from Peter Reckwitz's
|
||||
inventory, he was a Fidelity representative in West Germany at the time. Considering
|
||||
the "EXP" (experimental?) EPROM labels, it can be speculated that this version
|
||||
competed in one of the chess computer tournaments.
|
||||
|
||||
Elite Avant Garde (models 6081,6088,6089, Fidelity International, 510-1071C01 PCB)
|
||||
is nearly the same as the 510-1071B01 PCB above, with one extra 7seg panel. Level
|
||||
B8 starts a self-test and displays ROM checksums, press CL to advance.
|
||||
|
||||
Fidelity Elite Private Line were EAS/EAG conversions released by Fidelity Deutschland.
|
||||
The "Elite Privat" was probably for the local market and the "Private Line" for
|
||||
@ -118,6 +127,7 @@ public:
|
||||
void eas(machine_config &config);
|
||||
void ewc(machine_config &config);
|
||||
void easc(machine_config &config);
|
||||
void eagp(machine_config &config);
|
||||
|
||||
DECLARE_INPUT_CHANGED_MEMBER(change_cpu_freq);
|
||||
|
||||
@ -143,6 +153,7 @@ protected:
|
||||
|
||||
// address maps
|
||||
void eas_map(address_map &map);
|
||||
void eag_map(address_map &map);
|
||||
void pc_map(address_map &map);
|
||||
|
||||
// I/O handlers
|
||||
@ -195,11 +206,9 @@ protected:
|
||||
virtual void machine_reset() override;
|
||||
|
||||
private:
|
||||
// address maps
|
||||
void eag_map(address_map &map);
|
||||
void eag2100_map(address_map &map);
|
||||
|
||||
// I/O handlers
|
||||
// board is rotated 90 degrees
|
||||
virtual u8 board_r() override { return m_board->read_rank(m_inp_mux); }
|
||||
};
|
||||
|
||||
@ -355,15 +364,15 @@ void elite_state::eas_map(address_map &map)
|
||||
map(0xc000, 0xffff).rom();
|
||||
}
|
||||
|
||||
void eag_state::eag_map(address_map &map)
|
||||
void elite_state::eag_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x0000, 0x1fff).ram().share("nvram.ic8");
|
||||
map(0x2000, 0x5fff).r("cartslot", FUNC(generic_slot_device::read_rom));
|
||||
map(0x7000, 0x7003).rw(m_ppi8255, FUNC(i8255_device::read), FUNC(i8255_device::write));
|
||||
map(0x7020, 0x7027).w(FUNC(eag_state::segment_w)).nopr();
|
||||
map(0x7030, 0x7037).w(FUNC(eag_state::led_w)).nopr();
|
||||
map(0x7050, 0x7050).r(FUNC(eag_state::input_r));
|
||||
map(0x7020, 0x7027).w(FUNC(elite_state::segment_w)).nopr();
|
||||
map(0x7030, 0x7037).w(FUNC(elite_state::led_w)).nopr();
|
||||
map(0x7050, 0x7050).r(FUNC(elite_state::input_r));
|
||||
map(0x8000, 0x9fff).ram().share("nvram.ic6");
|
||||
map(0xa000, 0xffff).rom();
|
||||
}
|
||||
@ -432,6 +441,13 @@ static INPUT_PORTS_START( pc )
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("Reset") // led display still says - G C -
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( eagp )
|
||||
PORT_INCLUDE( eas )
|
||||
|
||||
PORT_MODIFY("CPU") // 5MHz
|
||||
PORT_BIT(0x03, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( eag )
|
||||
PORT_INCLUDE( fidel_clockdiv_4 )
|
||||
|
||||
@ -460,7 +476,7 @@ INPUT_PORTS_END
|
||||
void elite_state::pc(machine_config &config)
|
||||
{
|
||||
// basic machine hardware
|
||||
R65C02(config, m_maincpu, 4_MHz_XTAL); // R65C02P4
|
||||
R65C02(config, m_maincpu, 4_MHz_XTAL); // R65C02P3/4
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &elite_state::pc_map);
|
||||
|
||||
auto &irq_clock(CLOCK(config, "irq_clock", 38.4_kHz_XTAL/64)); // through 4060 IC, 600Hz
|
||||
@ -522,13 +538,13 @@ void elite_state::easc(machine_config &config)
|
||||
m_maincpu->set_clock(4_MHz_XTAL);
|
||||
}
|
||||
|
||||
void eag_state::eag(machine_config &config)
|
||||
void elite_state::eagp(machine_config &config)
|
||||
{
|
||||
eas(config);
|
||||
|
||||
// basic machine hardware
|
||||
m_maincpu->set_clock(5_MHz_XTAL); // R65C02P4
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &eag_state::eag_map);
|
||||
m_maincpu->set_clock(5_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &elite_state::eag_map);
|
||||
|
||||
auto &irq_clock(CLOCK(config.replace(), "irq_clock", 600)); // from 556 timer (22nF, 82K+pot, 1K), ideal frequency is 600Hz
|
||||
irq_clock.set_pulse_width(attotime::from_nsec(15250)); // active for 15.25us
|
||||
@ -537,6 +553,11 @@ void eag_state::eag(machine_config &config)
|
||||
config.device_remove("nvram");
|
||||
NVRAM(config, "nvram.ic8", nvram_device::DEFAULT_ALL_0);
|
||||
NVRAM(config, "nvram.ic6", nvram_device::DEFAULT_ALL_0);
|
||||
}
|
||||
|
||||
void eag_state::eag(machine_config &config)
|
||||
{
|
||||
eagp(config);
|
||||
|
||||
// video hardware
|
||||
m_display->set_segmask(0x1ef, 0x7f);
|
||||
@ -655,15 +676,15 @@ ROM_END
|
||||
|
||||
ROM_START( feasgla )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD("4.0_86", 0x8000, 0x0800, CRC(32784e2d) SHA1(dae060a5c49cc1993a78db293cd80464adfd892d) )
|
||||
ROM_LOAD("4.0_8_6", 0x8000, 0x0800, CRC(32784e2d) SHA1(dae060a5c49cc1993a78db293cd80464adfd892d) )
|
||||
ROM_CONTINUE( 0x9000, 0x0800 )
|
||||
ROM_CONTINUE( 0x8800, 0x0800 )
|
||||
ROM_CONTINUE( 0x9800, 0x0800 )
|
||||
ROM_LOAD("c5", 0xc000, 0x0800, CRC(ddb80412) SHA1(b1d9435d9a71b8eb241a2169bfbaa0499f510769) )
|
||||
ROM_LOAD("4.0_c_5", 0xc000, 0x0800, CRC(ddb80412) SHA1(b1d9435d9a71b8eb241a2169bfbaa0499f510769) )
|
||||
ROM_CONTINUE( 0xd000, 0x0800 )
|
||||
ROM_CONTINUE( 0xc800, 0x0800 )
|
||||
ROM_CONTINUE( 0xd800, 0x0800 )
|
||||
ROM_LOAD("4.0_e4", 0xe000, 0x0800, CRC(62a5305a) SHA1(a361bd9a54b903d7b0fbacabe55ea5ccbbc1dc51) )
|
||||
ROM_LOAD("4.0_e_4", 0xe000, 0x0800, CRC(62a5305a) SHA1(a361bd9a54b903d7b0fbacabe55ea5ccbbc1dc51) )
|
||||
ROM_CONTINUE( 0xf000, 0x0800 )
|
||||
ROM_CONTINUE( 0xe800, 0x0800 )
|
||||
ROM_CONTINUE( 0xf800, 0x0800 )
|
||||
@ -1022,6 +1043,33 @@ ROM_START( feag ) // model 6081, aka "Mobile Master" - checksum BE41 9B27 E959 4
|
||||
ROMX_LOAD("101-64106.ic16", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( feagp ) // 510-1071B01 PCB
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD("exp_8000_6", 0xa000, 0x2000, CRC(b555c5ab) SHA1(d85ae44f0c13e2bfafbc3cadf829e74c7f4ba2e3) ) // Seeq DQ5133-25
|
||||
ROM_LOAD("exp_c000_5", 0xc000, 0x2000, CRC(fd8471e3) SHA1(e684ded8ed4934bc5ef0cc4ae37dc5d12496d39e) ) // "
|
||||
ROM_LOAD("exp_e000_4", 0xe000, 0x2000, CRC(19c36d83) SHA1(33438c316284182ebe195a383bb2d96d3524c88d) ) // "
|
||||
|
||||
// speech ROM
|
||||
ROM_DEFAULT_BIOS("en")
|
||||
ROM_SYSTEM_BIOS(0, "en", "English")
|
||||
ROM_SYSTEM_BIOS(1, "de", "German")
|
||||
ROM_SYSTEM_BIOS(2, "fr", "French")
|
||||
ROM_SYSTEM_BIOS(3, "sp", "Spanish")
|
||||
|
||||
ROM_REGION( 1, "language", 0 )
|
||||
ROMX_FILL(0, 1, 3, ROM_BIOS(0) )
|
||||
ROMX_FILL(0, 1, 2, ROM_BIOS(1) )
|
||||
ROMX_FILL(0, 1, 1, ROM_BIOS(2) )
|
||||
ROMX_FILL(0, 1, 0, ROM_BIOS(3) )
|
||||
|
||||
ROM_REGION( 0x2000, "speech", 0 )
|
||||
ROMX_LOAD("101-32107", 0x0000, 0x1000, CRC(f35784f9) SHA1(348e54a7fa1e8091f89ac656b4da22f28ca2e44d), ROM_BIOS(0) )
|
||||
ROM_RELOAD( 0x1000, 0x1000)
|
||||
ROMX_LOAD("101-64101", 0x0000, 0x2000, CRC(6c85e310) SHA1(20d1d6543c1e6a1f04184a2df2a468f33faec3ff), ROM_BIOS(1) )
|
||||
ROMX_LOAD("101-64105", 0x0000, 0x2000, CRC(fe8c5c18) SHA1(2b64279ab3747ee81c86963c13e78321c6cfa3a3), ROM_BIOS(2) )
|
||||
ROMX_LOAD("101-64106", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( feag2100 ) // checksum F234 9D4A 2373 B2F1
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD("el2100_2.ic5", 0xc000, 0x2000, CRC(76fec42f) SHA1(34660edb8458919fd179e93fdab3fe428a6625d0) )
|
||||
@ -1106,5 +1154,7 @@ SYST( 1983, fpresbu, fpres, 0, pc, pc, elite_state, empty_init,
|
||||
SYST( 1984, fpresgla, fpres, 0, pc, pc, elite_state, empty_init, "Fidelity Electronics", "Prestige Challenger (Glasgow program)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
SYST( 1986, feag, 0, 0, eag, eag, eag_state, empty_init, "Fidelity International", "Elite Avant Garde (model 6081)", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1985, feagp, feag, 0, eagp, eagp, elite_state, empty_init, "Fidelity Computer Products", "Elite Avant Garde (prototype on Elite A/S board)", MACHINE_SUPPORTS_SAVE )
|
||||
|
||||
SYST( 1986, feag2100, feag, 0, eag2100, eag, eag_state, init_eag2100, "Fidelity International", "Elite Avant Garde 2100 (set 1)", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1986, feag2100a, feag, 0, eag2100, eag, eag_state, init_eag2100, "Fidelity International", "Elite Avant Garde 2100 (set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -561,6 +561,6 @@ SYST( 1985, fexcela, fexcel, 0, fexcel, fexcel, excel_state, empty_in
|
||||
|
||||
SYST( 1986, fexcelp, 0, 0, fexcelp, fexcel, excel_state, empty_init, "Fidelity International", "The Par Excellence", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1986, fexcelpb, fexcelp, 0, fexcelp, fexcel, excel_state, empty_init, "Fidelity International", "The Par Excellence (rev. B)", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1986, granits, fexcelp, 0, granits, fexcel, excel_state, empty_init, "hack (RCS)", "Granit S", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1986, granits, fexcelp, 0, granits, fexcel, excel_state, empty_init, "hack (Remote Control Systems)", "Granit S", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1988, fdes2000, fexcelp, 0, fdes2000, fdes, excel_state, empty_init, "Fidelity International", "Designer 2000", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1988, fdes2100, fexcelp, 0, fdes2100, fdes, excel_state, empty_init, "Fidelity International", "Designer 2100", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -9997,9 +9997,8 @@ ROM_END
|
||||
* Sharp SM510 under epoxy (die label MJ1)
|
||||
* lcd screen with custom segments, 1-bit sound
|
||||
|
||||
TODO or BTANB?: Energy and weapon power bars are swapped. Not verified on the
|
||||
handheld. The manual does show them correctly, but looking at the LCD segment
|
||||
ID groupings, the SVG is not wrong.
|
||||
BTANB: Energy and weapon power bars are the wrong way around. The manual does
|
||||
show them correctly, but it appears to be a doctored picture.
|
||||
|
||||
*******************************************************************************/
|
||||
|
||||
|
@ -18052,6 +18052,7 @@ feasglab //
|
||||
feag //
|
||||
feag2100 //
|
||||
feag2100a //
|
||||
feagp //
|
||||
fpres //
|
||||
fpresa //
|
||||
fpresb //
|
||||
|
Loading…
Reference in New Issue
Block a user