fidelity/as12.cpp: rename to elegance.cpp,

misc: update notes
This commit is contained in:
hap 2024-07-24 17:11:32 +02:00
parent 719a341e7f
commit 592e405016
8 changed files with 58 additions and 51 deletions

View File

@ -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 )

View File

@ -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 )

View File

@ -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 )

View File

@ -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
*******************************************************************************/

View File

@ -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.

View File

@ -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 //

View File

@ -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):