From 592e405016d46781c3dfd56237eafa98b77a6257 Mon Sep 17 00:00:00 2001 From: hap Date: Wed, 24 Jul 2024 17:11:32 +0200 Subject: [PATCH] fidelity/as12.cpp: rename to elegance.cpp, misc: update notes --- src/mame/fidelity/{as12.cpp => elegance.cpp} | 50 +++++++++---------- src/mame/fidelity/msc.cpp | 2 +- src/mame/fidelity/sc6.cpp | 26 ++++++---- src/mame/fidelity/sc8.cpp | 2 +- src/mame/fidelity/sc9.cpp | 8 +-- .../{fidel_as12.lay => fidel_elegance.lay} | 0 src/mame/mame.lst | 14 +++--- src/mame/saitek/ssystem3.cpp | 7 ++- 8 files changed, 58 insertions(+), 51 deletions(-) rename src/mame/fidelity/{as12.cpp => elegance.cpp} (83%) rename src/mame/layout/{fidel_as12.lay => fidel_elegance.lay} (100%) diff --git a/src/mame/fidelity/as12.cpp b/src/mame/fidelity/elegance.cpp similarity index 83% rename from src/mame/fidelity/as12.cpp rename to src/mame/fidelity/elegance.cpp index ff181b03dd7..281259dff0e 100644 --- a/src/mame/fidelity/as12.cpp +++ b/src/mame/fidelity/elegance.cpp @@ -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 ) diff --git a/src/mame/fidelity/msc.cpp b/src/mame/fidelity/msc.cpp index 1c830a79e70..04a1e002f33 100644 --- a/src/mame/fidelity/msc.cpp +++ b/src/mame/fidelity/msc.cpp @@ -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 ) diff --git a/src/mame/fidelity/sc6.cpp b/src/mame/fidelity/sc6.cpp index a00cc00fb05..d09d013cd34 100644 --- a/src/mame/fidelity/sc6.cpp +++ b/src/mame/fidelity/sc6.cpp @@ -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 ) diff --git a/src/mame/fidelity/sc8.cpp b/src/mame/fidelity/sc8.cpp index 370a02abebb..01f3b22b29c 100644 --- a/src/mame/fidelity/sc8.cpp +++ b/src/mame/fidelity/sc8.cpp @@ -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 *******************************************************************************/ diff --git a/src/mame/fidelity/sc9.cpp b/src/mame/fidelity/sc9.cpp index d21d52bba1a..053c2638961 100644 --- a/src/mame/fidelity/sc9.cpp +++ b/src/mame/fidelity/sc9.cpp @@ -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. diff --git a/src/mame/layout/fidel_as12.lay b/src/mame/layout/fidel_elegance.lay similarity index 100% rename from src/mame/layout/fidel_as12.lay rename to src/mame/layout/fidel_elegance.lay diff --git a/src/mame/mame.lst b/src/mame/mame.lst index c5d10dea460..fb7ade9c694 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -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 // diff --git a/src/mame/saitek/ssystem3.cpp b/src/mame/saitek/ssystem3.cpp index 10cdf599de3..6885e4d8da3 100644 --- a/src/mame/saitek/ssystem3.cpp +++ b/src/mame/saitek/ssystem3.cpp @@ -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):