mirror of
https://github.com/holub/mame
synced 2025-04-22 16:31:49 +03:00
fidelity/as12.cpp: rename to elegance.cpp,
misc: update notes
This commit is contained in:
parent
719a341e7f
commit
592e405016
@ -46,17 +46,17 @@ TODO:
|
||||
#include "speaker.h"
|
||||
|
||||
// internal artwork
|
||||
#include "fidel_as12.lh"
|
||||
#include "fidel_elegance.lh"
|
||||
|
||||
|
||||
namespace {
|
||||
|
||||
// note: sub-class of fidel_clockdiv_state (see clockdiv.*)
|
||||
|
||||
class as12_state : public fidel_clockdiv_state
|
||||
class elegance_state : public fidel_clockdiv_state
|
||||
{
|
||||
public:
|
||||
as12_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
elegance_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
fidel_clockdiv_state(mconfig, type, tag),
|
||||
m_board(*this, "board"),
|
||||
m_display(*this, "display"),
|
||||
@ -93,7 +93,7 @@ private:
|
||||
u8 input_r(offs_t offset);
|
||||
};
|
||||
|
||||
void as12_state::machine_start()
|
||||
void elegance_state::machine_start()
|
||||
{
|
||||
fidel_clockdiv_state::machine_start();
|
||||
|
||||
@ -102,7 +102,7 @@ void as12_state::machine_start()
|
||||
save_item(NAME(m_led_data));
|
||||
}
|
||||
|
||||
INPUT_CHANGED_MEMBER(as12_state::change_cpu_freq)
|
||||
INPUT_CHANGED_MEMBER(elegance_state::change_cpu_freq)
|
||||
{
|
||||
// known official CPU speeds: 3MHz, 3.57MHz, 4MHz
|
||||
static const XTAL xtal[3] = { 3_MHz_XTAL, 3.579545_MHz_XTAL, 4_MHz_XTAL };
|
||||
@ -115,13 +115,13 @@ INPUT_CHANGED_MEMBER(as12_state::change_cpu_freq)
|
||||
I/O
|
||||
*******************************************************************************/
|
||||
|
||||
void as12_state::update_display()
|
||||
void elegance_state::update_display()
|
||||
{
|
||||
// 8*8(+1) chessboard leds
|
||||
m_display->matrix(m_inp_mux, m_led_data);
|
||||
}
|
||||
|
||||
void as12_state::control_w(u8 data)
|
||||
void elegance_state::control_w(u8 data)
|
||||
{
|
||||
// d0-d3: 74245 P0-P3
|
||||
// 74245 Q0-Q8: input mux, led select
|
||||
@ -136,14 +136,14 @@ void as12_state::control_w(u8 data)
|
||||
// d6,d7: N/C?
|
||||
}
|
||||
|
||||
void as12_state::led_w(offs_t offset, u8 data)
|
||||
void elegance_state::led_w(offs_t offset, u8 data)
|
||||
{
|
||||
// a0-a2,d0: led data via NE591N
|
||||
m_led_data = (m_led_data & ~(1 << offset)) | ((data & 1) << offset);
|
||||
update_display();
|
||||
}
|
||||
|
||||
u8 as12_state::input_r(offs_t offset)
|
||||
u8 elegance_state::input_r(offs_t offset)
|
||||
{
|
||||
u8 data = 0;
|
||||
|
||||
@ -167,16 +167,16 @@ u8 as12_state::input_r(offs_t offset)
|
||||
Address Maps
|
||||
*******************************************************************************/
|
||||
|
||||
void as12_state::main_map(address_map &map)
|
||||
void elegance_state::main_map(address_map &map)
|
||||
{
|
||||
map.unmap_value_high();
|
||||
map(0x0000, 0x07ff).ram().share("nvram");
|
||||
map(0x0800, 0x0fff).ram();
|
||||
map(0x1800, 0x1807).w(FUNC(as12_state::led_w)).nopr();
|
||||
map(0x1800, 0x1807).w(FUNC(elegance_state::led_w)).nopr();
|
||||
map(0x2000, 0x5fff).r("cartslot", FUNC(generic_slot_device::read_rom));
|
||||
map(0x6000, 0x6000).mirror(0x1fff).w(FUNC(as12_state::control_w));
|
||||
map(0x6000, 0x6000).mirror(0x1fff).w(FUNC(elegance_state::control_w));
|
||||
map(0x8000, 0x9fff).rom();
|
||||
map(0xa000, 0xa007).mirror(0x1ff8).r(FUNC(as12_state::input_r));
|
||||
map(0xa000, 0xa007).mirror(0x1ff8).r(FUNC(elegance_state::input_r));
|
||||
map(0xc000, 0xcfff).mirror(0x1000).rom();
|
||||
map(0xe000, 0xffff).rom();
|
||||
}
|
||||
@ -201,7 +201,7 @@ static INPUT_PORTS_START( feleg )
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_NAME("RE")
|
||||
|
||||
PORT_START("CPU")
|
||||
PORT_CONFNAME( 0x03, 0x02, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, as12_state, change_cpu_freq, 0) // factory set
|
||||
PORT_CONFNAME( 0x03, 0x02, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, elegance_state, change_cpu_freq, 0) // factory set
|
||||
PORT_CONFSETTING( 0x00, "3MHz (original)" )
|
||||
PORT_CONFSETTING( 0x01, "3.57MHz (AS12)" )
|
||||
PORT_CONFSETTING( 0x02, "4MHz (6085)" )
|
||||
@ -211,7 +211,7 @@ static INPUT_PORTS_START( felega )
|
||||
PORT_INCLUDE( feleg )
|
||||
|
||||
PORT_MODIFY("CPU") // default to 3.57MHz
|
||||
PORT_CONFNAME( 0x03, 0x01, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, as12_state, change_cpu_freq, 0) // factory set
|
||||
PORT_CONFNAME( 0x03, 0x01, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, elegance_state, change_cpu_freq, 0) // factory set
|
||||
PORT_CONFSETTING( 0x00, "3MHz (original)" )
|
||||
PORT_CONFSETTING( 0x01, "3.57MHz (AS12)" )
|
||||
PORT_CONFSETTING( 0x02, "4MHz (6085)" )
|
||||
@ -223,11 +223,11 @@ INPUT_PORTS_END
|
||||
Machine Configs
|
||||
*******************************************************************************/
|
||||
|
||||
void as12_state::feleg(machine_config &config)
|
||||
void elegance_state::feleg(machine_config &config)
|
||||
{
|
||||
// basic machine hardware
|
||||
R65C02(config, m_maincpu, 4_MHz_XTAL); // R65C02P4
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &as12_state::main_map);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &elegance_state::main_map);
|
||||
|
||||
auto &irq_clock(CLOCK(config, "irq_clock", 600)); // from 556 timer (22nF, 110K, 1K), ideal frequency is 600Hz
|
||||
irq_clock.set_pulse_width(attotime::from_usec(17)); // active for 17us
|
||||
@ -242,7 +242,7 @@ void as12_state::feleg(machine_config &config)
|
||||
|
||||
// video hardware
|
||||
PWM_DISPLAY(config, m_display).set_size(9, 8);
|
||||
config.set_default_layout(layout_fidel_as12);
|
||||
config.set_default_layout(layout_fidel_elegance);
|
||||
|
||||
// sound hardware
|
||||
SPEAKER(config, "speaker").front_center();
|
||||
@ -253,7 +253,7 @@ void as12_state::feleg(machine_config &config)
|
||||
SOFTWARE_LIST(config, "cart_list").set_original("fidel_scc");
|
||||
}
|
||||
|
||||
void as12_state::felega(machine_config &config)
|
||||
void elegance_state::felega(machine_config &config)
|
||||
{
|
||||
feleg(config);
|
||||
|
||||
@ -311,9 +311,9 @@ ROM_END
|
||||
Drivers
|
||||
*******************************************************************************/
|
||||
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
|
||||
SYST( 1986, feleg, 0, 0, feleg, feleg, as12_state, empty_init, "Fidelity International", "Elegance Chess Challenger (model 6085)", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1984, felega, feleg, 0, felega, felega, as12_state, empty_init, "Fidelity Computer Products", "Elegance Chess Challenger (model AS12, set 1)", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1984, felega1, feleg, 0, felega, felega, as12_state, empty_init, "Fidelity Computer Products", "Elegance Chess Challenger (model AS12, set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1984, felega2, feleg, 0, felega, felega, as12_state, empty_init, "Fidelity Computer Products", "Elegance Chess Challenger (model AS12, set 3)", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1984, felega3, feleg, 0, felega, felega, as12_state, empty_init, "Fidelity Computer Products", "Elegance Chess Challenger (model AS12, set 4)", MACHINE_SUPPORTS_SAVE )
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
|
||||
SYST( 1986, feleg, 0, 0, feleg, feleg, elegance_state, empty_init, "Fidelity International", "Elegance Chess Challenger (model 6085)", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1984, felega, feleg, 0, felega, felega, elegance_state, empty_init, "Fidelity Computer Products", "Elegance Chess Challenger (model AS12, set 1)", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1984, felega1, feleg, 0, felega, felega, elegance_state, empty_init, "Fidelity Computer Products", "Elegance Chess Challenger (model AS12, set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1984, felega2, feleg, 0, felega, felega, elegance_state, empty_init, "Fidelity Computer Products", "Elegance Chess Challenger (model AS12, set 3)", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1984, felega3, feleg, 0, felega, felega, elegance_state, empty_init, "Fidelity Computer Products", "Elegance Chess Challenger (model AS12, set 4)", MACHINE_SUPPORTS_SAVE )
|
@ -232,4 +232,4 @@ ROM_END
|
||||
*******************************************************************************/
|
||||
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
|
||||
SYST( 1981, miniscco, miniscc, 0, msc, msc, msc_state, empty_init, "Fidelity Electronics", "Mini Sensory Chess Challenger (1981 version)", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1981, miniscco, miniscc, 0, msc, msc, msc_state, empty_init, "Fidelity Electronics", "Mini Sensory Chess Challenger (Z8 version)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -10,13 +10,13 @@ Fidelity The Gambit (model 6084)
|
||||
TODO:
|
||||
- MSC MCU is currently emulated as I8039, due to missing EA pin emulation
|
||||
- different button panel for fidel_msc_v2 artwork
|
||||
- add the older versions of gambit(assuming different ROM): 1st version is
|
||||
probably the same as "The Classic", and 2nd version has voice capability
|
||||
- verify if the 1985 version of The Classic the same ROM
|
||||
- dump/add Gambit Voice MCU
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
SC6 hardware notes:
|
||||
- PCB label 510-1045B01
|
||||
- PCB label: 510-1045B01
|
||||
- INS8040N-11 MCU, 11MHz XTAL
|
||||
- external 4KB ROM 2332 101-1035A01, in module slot
|
||||
- buzzer, 2 7seg LEDs, 8*8 chessboard buttons
|
||||
@ -31,7 +31,7 @@ SC6 program is contained in BO6 and CG6.
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
MSC hardware notes:
|
||||
- PCB label 510-1044B01
|
||||
- PCB label: 510-1044B01
|
||||
- P8049H MCU, 2KB internal ROM, 11MHz XTAL
|
||||
- buzzer, 18 leds, 8*8 chessboard buttons, module slot
|
||||
|
||||
@ -42,11 +42,14 @@ The module overrides the internal ROM, by asserting the EA pin.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Gambit(v3) hardware notes:
|
||||
- PCB label 510-1115A01 (1986 PCB, but chips from 1989)
|
||||
The Gambit(v3) hardware notes:
|
||||
- PCB label: 510-1115A01 (1986 PCB, but chips from 1989)
|
||||
- TMP80C50AP-6-9311 MCU, 4KB internal ROM, 6MHz XTAL
|
||||
- buzzer, 16 leds, 8*8 chessboard buttons
|
||||
|
||||
The Gambit either has a black/white button panel color theme, or black/red/white,
|
||||
more commonly seen on newer versions, and Gambit Voice.
|
||||
|
||||
MCU ports I/O again identical to SC6.
|
||||
The same MCU+ROM was also used in Designer 1500(PCB label 510.1131A01).
|
||||
And also in The Classic(PCB label 510-1095A01), 100-1020B02 MCU.
|
||||
@ -64,9 +67,10 @@ Silver Bullet hardware notes:
|
||||
- buzzer, 16 leds, 8*8 chessboard buttons, module slot
|
||||
|
||||
To summarize, known MCU chip ROM serials+year:
|
||||
- [no label] (1985), The Classic (model CC8)
|
||||
- 100-1020B01 (1989), The Gambit, Designer 1500, Peri Beta
|
||||
- 100-1020B02 (1986), Silver Bullet
|
||||
- 100-1020B02 (1987), The Classic
|
||||
- 100-1020B02 (1986), The Gambit, Silver Bullet
|
||||
- 100-1020B02 (1987), The Classic (model 6079)
|
||||
- 100-1020C01 (1987), Gambit Voice
|
||||
|
||||
*******************************************************************************/
|
||||
@ -361,7 +365,7 @@ ROM_END
|
||||
|
||||
ROM_START( gambit )
|
||||
ROM_REGION( 0x1000, "maincpu", 0 )
|
||||
ROM_LOAD("100-1020b01", 0x0000, 0x1000, CRC(ba41b5ba) SHA1(1a5c5b2e990a07b9ff51eecfa952a4b890107797) ) // internal ROM
|
||||
ROM_LOAD("100-1020b02", 0x0000, 0x1000, CRC(ba41b5ba) SHA1(1a5c5b2e990a07b9ff51eecfa952a4b890107797) ) // internal ROM
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
@ -374,6 +378,6 @@ ROM_END
|
||||
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
|
||||
SYST( 1982, fscc6, 0, 0, sc6, sc6, sc6_state, empty_init, "Fidelity Electronics", "Sensory Chess Challenger \"6\"", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1982, miniscc, 0, 0, msc, msc, sc6_state, empty_init, "Fidelity Electronics", "Mini Sensory Chess Challenger (1982 version)", MACHINE_SUPPORTS_SAVE ) // aka "Mini Sensory II"
|
||||
SYST( 1982, miniscc, 0, 0, msc, msc, sc6_state, empty_init, "Fidelity Electronics", "Mini Sensory Chess Challenger (MCS-48 version)", MACHINE_SUPPORTS_SAVE ) // aka "Mini Sensory II"
|
||||
|
||||
SYST( 1989, gambit, 0, 0, gambit, gambit, sc6_state, empty_init, "Fidelity International", "The Gambit (1989 version)", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1986, gambit, 0, 0, gambit, gambit, sc6_state, empty_init, "Fidelity International", "The Gambit", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -15,10 +15,10 @@ It was also rereleased in 1983 as "Poppy", marketed for children, the housing
|
||||
was in bright red color.
|
||||
|
||||
Hardware notes:
|
||||
- PCB label: 510-1011 REV.2
|
||||
- Z80A CPU @ 3.9MHz
|
||||
- 4KB ROM(MOS 2732), 256 bytes RAM(35391CP)
|
||||
- chessboard buttons, 8*8+1 leds
|
||||
- PCB label 510-1011 REV.2
|
||||
|
||||
*******************************************************************************/
|
||||
|
||||
|
@ -12,11 +12,11 @@ TODO:
|
||||
Hardware notes:
|
||||
|
||||
Fidelity Sensory Chess Challenger "9" (SC9) overview:
|
||||
- 8*(8+1) buttons, 8*8+1 LEDs
|
||||
- 36-pin edge connector, assume same as SC12
|
||||
- 2KB RAM(TMM2016P), 2*8KB ROM(HN48364P)
|
||||
- PCB label: 510-1046C01 2-1-82
|
||||
- R6502-13, 1.4MHz from resonator, another pcb with the same resonator was measured 1.49MHz*
|
||||
- PCB label 510-1046C01 2-1-82
|
||||
- 2KB RAM(TMM2016P), 2*8KB ROM(HN48364P)
|
||||
- 36-pin edge connector, assume same as SC12
|
||||
- 8*(8+1) buttons, 8*8+1 LEDs
|
||||
|
||||
*: 2 other boards were measured 1.60MHz and 1.88MHz(newest serial). Online references
|
||||
suggest 3 versions of SC9(C01) total: 1.5MHz, 1.6MHz, and 1.9MHz.
|
||||
|
@ -17973,13 +17973,6 @@ ts2624 // 1982
|
||||
@source:falco/falcots28.cpp
|
||||
ts28 // 1983
|
||||
|
||||
@source:fidelity/as12.cpp
|
||||
feleg
|
||||
felega
|
||||
felega1
|
||||
felega2
|
||||
felega3
|
||||
|
||||
@source:fidelity/bridgeb.cpp
|
||||
bridgeb
|
||||
|
||||
@ -18060,6 +18053,13 @@ premiere //
|
||||
@source:fidelity/eldorado.cpp
|
||||
feldo
|
||||
|
||||
@source:fidelity/elegance.cpp
|
||||
feleg
|
||||
felega
|
||||
felega1
|
||||
felega2
|
||||
felega3
|
||||
|
||||
@source:fidelity/elite.cpp
|
||||
feag //
|
||||
feag2100 //
|
||||
|
@ -12,7 +12,9 @@ This is their 1st original product. MK II was licensed from Peter Jennings, and
|
||||
MK I was, to put it bluntly, a bootleg. The chess engine is by Mike Johnson,
|
||||
with support from David Levy.
|
||||
|
||||
Hardware notes (Master Unit):
|
||||
Hardware notes:
|
||||
|
||||
Master Unit:
|
||||
- PCB label: 201041 (Rev.A to Rev.E)
|
||||
- Synertek 6502A @ 2MHz (4MHz XTAL)
|
||||
- Synertek 6522 VIA
|
||||
@ -50,7 +52,8 @@ TODO:
|
||||
- LCD TC pin? connects to the display, source is a 50hz timer(from power supply),
|
||||
probably to keep refreshing the LCD when inactive, there is no need to emulate it
|
||||
- dump/add printer unit
|
||||
- dump/add ssystem3 1980 program revision, were the BTANB fixed?
|
||||
- dump/add other ssystem3 program revisions, were the BTANB fixed in the 1980 version?
|
||||
known undumped: C19081 + C19082 (instead of C19081E), C45000 + C45012
|
||||
- ssystem4 softwarelist if a prototype cartridge is ever dumped
|
||||
|
||||
BTANB (ssystem3):
|
||||
|
Loading…
Reference in New Issue
Block a user