fidelity*: swap feag2100/feag2100a, rename fexcelpb to fexcelpa, rename fexcel12 to fexcel12a, rename fexcel124 to fexcel12,

remove fdes2000/fdes2100 and add a cpu freq config instead

granits: fix error beeps problem and update internal artwork
This commit is contained in:
hap 2024-08-15 12:24:01 +02:00
parent f943b25a02
commit f9abb4e805
20 changed files with 393 additions and 330 deletions

View File

@ -98,7 +98,6 @@ DECLARE_DEVICE_TYPE(N7751, n7751_device) // 8048 clone
DECLARE_DEVICE_TYPE(M58715, m58715_device) // 8049 clone DECLARE_DEVICE_TYPE(M58715, m58715_device) // 8049 clone
class mcs48_cpu_device : public cpu_device class mcs48_cpu_device : public cpu_device
{ {
public: public:
@ -127,9 +126,6 @@ public:
uint8_t p1_r() { return m_p1; } uint8_t p1_r() { return m_p1; }
uint8_t p2_r() { return m_p2; } uint8_t p2_r() { return m_p2; }
void data_map(address_map &map);
void program_map(address_map &map);
template <typename... T> void set_t0_clk_cb(T &&... args) { m_t0_clk_func.set(std::forward<T>(args)...); } template <typename... T> void set_t0_clk_cb(T &&... args) { m_t0_clk_func.set(std::forward<T>(args)...); }
u32 get_ale_clock() { return m_clock / 3 / 5; } u32 get_ale_clock() { return m_clock / 3 / 5; }
@ -167,7 +163,6 @@ protected:
// device_disasm_interface overrides // device_disasm_interface overrides
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override; virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
protected:
address_space_config m_program_config; address_space_config m_program_config;
address_space_config m_data_config; address_space_config m_data_config;
address_space_config m_io_config; address_space_config m_io_config;
@ -232,6 +227,9 @@ protected:
static const mcs48_ophandler s_i8022_opcodes[256]; static const mcs48_ophandler s_i8022_opcodes[256];
const mcs48_ophandler *const m_opcode_table; const mcs48_ophandler *const m_opcode_table;
void program_map(address_map &map);
void data_map(address_map &map);
// ROM is mapped to AS_PROGRAM // ROM is mapped to AS_PROGRAM
uint8_t program_r(offs_t a) { return m_program.read_byte(a); } uint8_t program_r(offs_t a) { return m_program.read_byte(a); }

View File

@ -27,7 +27,7 @@ TODO:
- the VFD scrolls around 30% too slow compared to the real one, probably depends - the VFD scrolls around 30% too slow compared to the real one, probably depends
on how many T1 clock edges the 8041 can detect (see mcu_t1_r) on how many T1 clock edges the 8041 can detect (see mcu_t1_r)
******************************************************************************** ================================================================================
Voice Bridge Challenger (Model VBRC, later reissued as Model 7002/BV2) Voice Bridge Challenger (Model VBRC, later reissued as Model 7002/BV2)
and Bridge Challenger 3 (Model 7014) and Bridge Challenger 3 (Model 7014)
@ -120,7 +120,7 @@ P7.1 - goes through inverter, to pads that are not used
P7.2 - segment C P7.2 - segment C
P7.3 - segment H P7.3 - segment H
button matrix: Button matrix:
-------------- --------------
the matrix is composed of 8 columns by 4 rows. the matrix is composed of 8 columns by 4 rows.

View File

@ -34,7 +34,7 @@ similar to it. Ron C. Nelson must have ported the algorithms to 8080 when he wro
his Altair 8800 chess program, and this is what made it into CC1. his Altair 8800 chess program, and this is what made it into CC1.
CC1 hardware overview: CC1 hardware overview:
- PCB label PC-P-86, P179 C-2 7.77 - PCB label: PC-P-86, P179 C-2 7.77
- NEC 8080AF @ 2MHz(18MHz XTAL through a 8224) - NEC 8080AF @ 2MHz(18MHz XTAL through a 8224)
- Everything goes via a NEC B8228, its special features are unused. - Everything goes via a NEC B8228, its special features are unused.
- NEC 2316A ROM(2KB), 4*2101AL RAM(0.5KB total) - NEC 2316A ROM(2KB), 4*2101AL RAM(0.5KB total)

View File

@ -9,10 +9,10 @@ TODO:
- What is cc10 8255 PB.7 for? When set, maximum levels is 3, like in CC3. But - What is cc10 8255 PB.7 for? When set, maximum levels is 3, like in CC3. But
there is no CC3 with 16 buttons, and things get glitchy in this mode. there is no CC3 with 16 buttons, and things get glitchy in this mode.
******************************************************************************** ================================================================================
Fidelity Chess Challenger 10 (CCX) Fidelity Chess Challenger 10 (CCX)
------------------- ----------------------------------
3 versions are known to exist: A,B,C. Strangely, version C(UCC10) has an 8080 3 versions are known to exist: A,B,C. Strangely, version C(UCC10) has an 8080
instead of Z80 and no beeper, it's on CC1-based hardware (see cc1.cpp). instead of Z80 and no beeper, it's on CC1-based hardware (see cc1.cpp).

View File

@ -4,7 +4,7 @@
/******************************************************************************* /*******************************************************************************
Fidelity Chess Challenger 7 (BCC) Fidelity Chess Challenger 7 (BCC)
------------------------ ---------------------------------
It was Fidelity's most sold chess computer. The first version was released in It was Fidelity's most sold chess computer. The first version was released in
1979, and a newer PCB revision was produced in 1980. 1979, and a newer PCB revision was produced in 1980.
@ -31,7 +31,7 @@ Memory map:
4000-FFFF: Z80 A14/A15 not connected 4000-FFFF: Z80 A14/A15 not connected
Port map (Write): Port map (Write):
--------- -----------------
D0-D3: digit select and keypad mux D0-D3: digit select and keypad mux
D4: CHECK led D4: CHECK led
D5: LOSE led D5: LOSE led
@ -41,7 +41,7 @@ NE591 Q0-Q6: digit segments A-G
NE591 Q7: buzzer NE591 Q7: buzzer
Port map (Read): Port map (Read):
--------- ----------------
D0-D3: keypad row D0-D3: keypad row
*******************************************************************************/ *******************************************************************************/

View File

@ -10,16 +10,16 @@ These were made after Hegener + Glaser became the parent company of Fidelity
Fidelity and Mephisto brands. Fidelity changed from Fidelity International, Fidelity and Mephisto brands. Fidelity changed from Fidelity International,
Inc. to Fidelity Electronics International, Inc. after becoming a subsidiary. Inc. to Fidelity Electronics International, Inc. after becoming a subsidiary.
******************************************************************************** ================================================================================
Fidelity Chesster (model 6120) Fidelity Chesster (model 6120)
There is also a German version titled Kishon Chesster (model 6120G, or 6127) There is also a German version titled Kishon Chesster (model 6120G, or 6127)
---------------- ----------------
8*(8+1) buttons, 8+8+1 LEDs PCB label: 510.1141C01
8KB RAM(UM6264-12), 32KB ROM(M27C256B)
Ricoh RP65C02G CPU, 5MHz XTAL Ricoh RP65C02G CPU, 5MHz XTAL
8KB RAM(UM6264-12), 32KB ROM(M27C256B)
8-bit DAC (8L513 02 resistor array) timed via IRQ, 128KB ROM(AMI custom label) 8-bit DAC (8L513 02 resistor array) timed via IRQ, 128KB ROM(AMI custom label)
PCB label 510.1141C01 8*(8+1) buttons, 8+8+1 LEDs
I/O is via TTL, memory map is similar to Designer Display I/O is via TTL, memory map is similar to Designer Display

View File

@ -15,7 +15,7 @@ TODO:
- hook up csce I/O properly, it doesn't have PIAs - hook up csce I/O properly, it doesn't have PIAs
- verify super9cc maskrom dump - verify super9cc maskrom dump
******************************************************************************** ================================================================================
Champion Sensory Chess Challenger (CSC) Champion Sensory Chess Challenger (CSC)
--------------------------------------- ---------------------------------------
@ -158,7 +158,7 @@ The lone LED is connected to digit 1 common
All three of the above are called "segment H". All three of the above are called "segment H".
******************************************************************************** ================================================================================
Elite Champion Challenger (ELITE) Elite Champion Challenger (ELITE)
This is a limited-release chess computer based on the CSC. They removed the PIAs This is a limited-release chess computer based on the CSC. They removed the PIAs
@ -172,7 +172,7 @@ The "Fidelity X" that won the 1981 Travemünde contest is also on this hardware,
a 5MHz CPU and 32KB total ROM size. In the 90s, Wilfried Bucke provided an upgrade a 5MHz CPU and 32KB total ROM size. In the 90s, Wilfried Bucke provided an upgrade
kit for csce to make it similar to this version, CPU was changed to a R65C02P4. kit for csce to make it similar to this version, CPU was changed to a R65C02P4.
******************************************************************************** ================================================================================
Super 9 Sensory Chess Challenger (SU9/DS9) Super 9 Sensory Chess Challenger (SU9/DS9)
This is basically the Fidelity Elite A/S program on CSC hardware. This is basically the Fidelity Elite A/S program on CSC hardware.
@ -188,7 +188,7 @@ See CSC description above for more information.
Like with EAS, the new game command for SU9 is: RE -> D6 (or D8) -> CL. Like with EAS, the new game command for SU9 is: RE -> D6 (or D8) -> CL.
******************************************************************************** ================================================================================
Reversi Sensory Challenger (RSC) Reversi Sensory Challenger (RSC)
The 1st version came out in 1980, a program revision was released in 1981. The 1st version came out in 1980, a program revision was released in 1981.

View File

@ -4,33 +4,33 @@
/******************************************************************************* /*******************************************************************************
Fidelity Designer Display series, 6502 and 68000 Fidelity Designer Display series, 6502 and 68000
(6502-based displayless Designer is in excel.cpp) (6502-based displayless Designer is the same as Par Excellence, see excel.cpp)
******************************************************************************** ================================================================================
Designer 2100 Display (model 6106) overview: Designer 2100 Display (model 6106) overview:
- 8KB RAM(MS6264L-10), 2*32KB ROM(27C256) - PCB label: 510.1130A01
- WDC W65C02P-6 CPU, 6MHz XTAL - WDC W65C02P-6 CPU, 6MHz XTAL
- 8KB RAM(MS6264L-10), 2*32KB ROM(27C256)
- 4-digit LCD panel - 4-digit LCD panel
- PCB label 510.1130A01
Designer 2000 Display (model 6105): same hardware, no bookrom, 3MHz Designer 2000 Display (model 6105): same hardware, no bookrom, 3MHz
******************************************************************************** ================================================================================
Designer Mach III Master 2265 (model 6113) overview: Designer Mach III Master 2265 (model 6113) overview:
- 80KB RAM(2*KM6264AL-10, 2*KM62256AP-10), 64KB ROM(2*WSI 27C256L-12) - PCB label: 510.1134A02
- MC68HC000P12F CPU, 16MHz XTAL - MC68HC000P12F CPU, 16MHz XTAL
- 80KB RAM(2*KM6264AL-10, 2*KM62256AP-10), 64KB ROM(2*WSI 27C256L-12)
- IRQ(IPL2) from 555 timer, 1.67ms low, 6us high - IRQ(IPL2) from 555 timer, 1.67ms low, 6us high
- PCB label 510.1134A02
ROM address/data lines are scrambled, presumed for easy placement on PCB and not ROM address/data lines are scrambled, presumed for easy placement on PCB and not
for obfuscation. I/O is nearly the same as Designer Display on 6502 hardware. for obfuscation. I/O is nearly the same as Designer Display on 6502 hardware.
Designer Mach IV Master 2325 (model 6129) overview: Designer Mach IV Master 2325 (model 6129) overview:
- 32KB(4*P5164-70) + 512KB(TC518512PL-80) RAM, 64KB ROM(TMS 27C512-120JL) - PCB label: 510.1149A01
- MC68EC020RP25 CPU, 20MHz XTAL - MC68EC020RP25 CPU, 20MHz XTAL
- PCB label 510.1149A01 - 32KB(4*P5164-70) + 512KB(TC518512PL-80) RAM, 64KB ROM(TMS 27C512-120JL)
- It has a green "Shift" led instead of red, and ROM is not scrambled. - It has a green "Shift" led instead of red, and ROM is not scrambled.
*******************************************************************************/ *******************************************************************************/

View File

@ -26,7 +26,7 @@ actual speed, overclock V10 and V11 to 230%. This can be done by starting MAME
with the -cheat option and going to the Slider Controls menu, hold Ctrl and press with the -cheat option and going to the Slider Controls menu, hold Ctrl and press
Right to overclock maincpu. Right to overclock maincpu.
******************************************************************************** ================================================================================
Excel 68000 (model 6094) overview: Excel 68000 (model 6094) overview:
- 16KB RAM(2*SRM2264C-10 @ U8/U9), 64KB ROM(2*AT27C256-15DC @ U6/U7) - 16KB RAM(2*SRM2264C-10 @ U8/U9), 64KB ROM(2*AT27C256-15DC @ U6/U7)
@ -47,7 +47,7 @@ display a ROM checksum.
fex68km4 continuously tests RAM at boot and displays "512", this is normal. fex68km4 continuously tests RAM at boot and displays "512", this is normal.
To start, hold New Game or Clear. To start, hold New Game or Clear.
******************************************************************************** ================================================================================
Elite Avant Garde 2265 (EAG, model 6114) Elite Avant Garde 2265 (EAG, model 6114)
---------------------------------------- ----------------------------------------
@ -110,7 +110,7 @@ Memory map: (of what is known)
700002-700003 R lo d7: 74251: keypad row 8 700002-700003 R lo d7: 74251: keypad row 8
604000-607FFF: 16KB EEPROM 604000-607FFF: 16KB EEPROM
******************************************************************************** ================================================================================
Elite Avant Garde 2325 (EAG, model 6117) Elite Avant Garde 2325 (EAG, model 6117)
---------------------------------------- ----------------------------------------
@ -181,7 +181,7 @@ V1x Memory map:
280000-37FFFF: hashtable SRAM 280000-37FFFF: hashtable SRAM
B0000x-xxxxxx: see V7, -800000 B0000x-xxxxxx: see V7, -800000
******************************************************************************** ================================================================================
Elite Premiere (model 6131) Elite Premiere (model 6131)
--------------------------- ---------------------------

View File

@ -6,7 +6,7 @@
Fidelity Eldorado Chess Challenger (model 6119) Fidelity Eldorado Chess Challenger (model 6119)
Hardware notes: Hardware notes:
- PCB label CXG262-600-001, CXG262-600-101 - PCB label: CXG262-600-001, CXG262-600-101
- TMP80C49AP6-6744 MCU, 2KB internal ROM, 6MHz XTAL - TMP80C49AP6-6744 MCU, 2KB internal ROM, 6MHz XTAL
- buzzer, 16 leds, 8*8 chessboard buttons - buzzer, 16 leds, 8*8 chessboard buttons

View File

@ -6,12 +6,12 @@
Fidelity Elegance Chess Challenger (AS12/6085) Fidelity Elegance Chess Challenger (AS12/6085)
Hardware notes (AS12): Hardware notes (AS12):
- PCB label 510-1084B01 - PCB label: 510-1084B01
- R65C02P3 @ 3/3.57MHz (apparently the first few had a 3MHz CPU) - R65C02P3 @ 3/3.57MHz (apparently the first few had a 3MHz CPU)
- 2*8KB ROM + 1*4KB ROM, 2*2KB RAM(HM6116+TMM2016) - 2*8KB ROM + 1*4KB ROM, 2*2KB RAM(HM6116+TMM2016)
Hardware notes (6085): Hardware notes (6085):
- PCB label 510-1084B01 - PCB label: 510-1084B01
- R65C02P4 @ 4MHz - R65C02P4 @ 4MHz
- 3*8KB ROM(TMM2764), 2*2KB RAM(HM6116+TMM2016) - 3*8KB ROM(TMM2764), 2*2KB RAM(HM6116+TMM2016)

View File

@ -14,10 +14,10 @@ BTANB:
To resolve this, hold the Game Control button while booting to clear nvram. To resolve this, hold the Game Control button while booting to clear nvram.
The ROM dump was verified from 2 chesscomputers. The ROM dump was verified from 2 chesscomputers.
******************************************************************************** ================================================================================
Elite A/S Challenger (EAS) Elite A/S Challenger (EAS)
--------------------------------- --------------------------
This came out in 1983. 2 program updates were released in 1983 and 1984, This came out in 1983. 2 program updates were released in 1983 and 1984,
named Budapest and Glasgow, places where Fidelity competed in chess computer named Budapest and Glasgow, places where Fidelity competed in chess computer
matches (they won it in 1983). A/S stands for Auto Sensory, it's the 1st matches (they won it in 1983). A/S stands for Auto Sensory, it's the 1st
@ -1039,13 +1039,13 @@ 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) ) ROMX_LOAD("101-64106.ic16", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) )
ROM_END ROM_END
ROM_START( feag2100 ) // checksum F234 9D4A 2373 B2F1 ROM_START( feag2100 ) // model 6088 - checksum F361 9D5E 1D31 ADF0
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("el2100_2.ic5", 0xc000, 0x2000, CRC(76fec42f) SHA1(34660edb8458919fd179e93fdab3fe428a6625d0) ) ROM_LOAD("2100_c_black.ic5", 0xc000, 0x2000, CRC(454eb839) SHA1(83d206464c194b022d43913b5f4092a8201f36b9) )
ROM_LOAD("el2100_3.ic4", 0xe000, 0x2000, CRC(2079a506) SHA1(a7bb83138c7b6eff6ea96702d453a214697f4890) ) ROM_LOAD("2100_c_green.ic4", 0xe000, 0x2000, CRC(f1f76a63) SHA1(337b4572b743d383c6a12c360875d37682de3647) )
ROM_REGION( 0x8000, "rombank", 0 ) ROM_REGION( 0x8000, "rombank", 0 )
ROM_LOAD("el2100_1.ic9", 0x0000, 0x8000, CRC(9b62b7d5) SHA1(cfcaea2e36c2d52fe4a85c77dbc7fa135893860c) ) ROM_LOAD("2100_c_orange.ic9", 0x0000, 0x8000, CRC(feeff71c) SHA1(87614ca850848581d946193efa317181ef9c7a09) )
// speech ROM // speech ROM
ROM_DEFAULT_BIOS("en") ROM_DEFAULT_BIOS("en")
@ -1068,13 +1068,13 @@ ROM_START( feag2100 ) // checksum F234 9D4A 2373 B2F1
ROMX_LOAD("101-64106.ic16", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) ) ROMX_LOAD("101-64106.ic16", 0x0000, 0x2000, CRC(8766e128) SHA1(78c7413bf240159720b131ab70bfbdf4e86eb1e9), ROM_BIOS(3) )
ROM_END ROM_END
ROM_START( feag2100a ) // model 6088 - checksum F361 9D5E 1D31 ADF0 ROM_START( feag2100a ) // checksum F234 9D4A 2373 B2F1
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("2100_c_black.ic5", 0xc000, 0x2000, CRC(454eb839) SHA1(83d206464c194b022d43913b5f4092a8201f36b9) ) ROM_LOAD("el2100_2.ic5", 0xc000, 0x2000, CRC(76fec42f) SHA1(34660edb8458919fd179e93fdab3fe428a6625d0) )
ROM_LOAD("2100_c_green.ic4", 0xe000, 0x2000, CRC(f1f76a63) SHA1(337b4572b743d383c6a12c360875d37682de3647) ) ROM_LOAD("el2100_3.ic4", 0xe000, 0x2000, CRC(2079a506) SHA1(a7bb83138c7b6eff6ea96702d453a214697f4890) )
ROM_REGION( 0x8000, "rombank", 0 ) ROM_REGION( 0x8000, "rombank", 0 )
ROM_LOAD("2100_c_orange.ic9", 0x0000, 0x8000, CRC(feeff71c) SHA1(87614ca850848581d946193efa317181ef9c7a09) ) ROM_LOAD("el2100_1.ic9", 0x0000, 0x8000, CRC(9b62b7d5) SHA1(cfcaea2e36c2d52fe4a85c77dbc7fa135893860c) )
// speech ROM // speech ROM
ROM_DEFAULT_BIOS("en") ROM_DEFAULT_BIOS("en")

View File

@ -7,24 +7,100 @@ Fidelity Excellence series hardware
(for Excel 68000, see eag68k.cpp) (for Excel 68000, see eag68k.cpp)
TODO: TODO:
- granits gives error beeps at start, need to press clear to play. - verify if Designer 2100 CPU is 5MHz or 6MHz
Note that this also happens on a real 6080 PCB with this ROM, granits is a modified SC12 PCB though. - granits chessboard buttons seem too sensitive (detects input on falling edge if
The problem goes away if RAM stays powered-on, but PCB has no indication of NVRAM. held too long), probably BTANB?
- granits chessboard buttons seem too sensitive (detects input on falling edge if held too long)
- granits has a module slot, is it usable?
- granits overlock + dynamic /2 cpu divider? (like SC12) instead of static /2 divider
-------------------------------------------------------------------------------- ================================================================================
The Excellence (model EP12)
---------------------------
Hardware notes:
- PCB label: 510-1099A01
- GTE G65SC102P-3 @ 3MHz (12MHz XTAL)
- 16KB ROM, 2KB RAM
- piezo, 16 LEDs, 8*8 chessboard buttons
One interesting clone of The Excellence is the Computerchess Playmate-2. It was
produced in 1989 by SPS(Bulgaria) and RRR(Riga Radio Factory). The chess program
ROM is identical to Excellence EP12 (the 101-1072A01 one). All internal circuitry
is the same, the only difference is the capacitor driving the 555 for IRQ is 10nf
instead of 22nf.
What makes it unique is the addition of a chess clock.
connector pinout from main pcb:
1) 5V
2) GND
3) 74HC259.pin9 (Q4) = Row LED driving
4) 74HC259.pin10 (Q5) = Column LED driving
5) 74HC259.pin12 (Q7) = Bat. Low signal
6) 74HC42.pin4 (Q3) = Col-D/Row-4 -> 'White Move' if D-LED blinks
The extra board has a 7474, a К1016ХЛ1 (RTC, or MCU clock driver), a 4-digit VFD,
and some buttons for controlling the clock. IRQ frequency is doubled presumedly
for using the blinking led as seconds counter. It only tracks player time, not
of the opponent. And it obviously doesn't show chessmove coordinates either.
================================================================================
Par Excellence family
---------------------
Hardware notes:
The Par Excellence:
- PCB label: 510-1099A01
- Rockwell R65C02P4, 5MHz XTAL
- 8KB RAM(HM6264AP-10), 32KB ROM(AMI 101.1077A01)
- piezo, 16 LEDs, 8*8 chessboard buttons
Designer 2000 (model 6102):
- PCB label 510.1129A01
- Ricoh RP65C02G, 3MHz XTAL
- rest is same as Par Excellence
Designer 2000 is basically same as (Par) Excellence hardware, reskinned board.
They removed low-voltage detection from the PCB, but low battery signal still
works in software. Designer 2100 (model 6103) is almost the same, with a faster
CPU (5MHz WDC 65C02, same frequency as Par Excellence).
(Designer 1500 is on 80C50 hardware, same ROM as The Classic, see sc6.cpp)
RCS Granit S:
- PCB label: 510-1084B01 (SC12B PCB)
- Rockwell R65C02P4, 8MHz XTAL, ~6.4V overvoltage
- SC12B module slot is not functional
- rest is same as Par Excellence
Granit S is a heavily modified SC12B (see sc12.cpp) by Peter Reckwitz. The CPU
is overclocked a lot, the dynamic clock divider was removed, and wire mods were
added to make the hardware similar to Par Excellence. The program is based on
Par Excellence.
The SC12B labels don't make much sense here, like the ones on the bottom left,
or the check and illegal status LEDs. The PB button is Verify, and the PV button
is for Options. A strip was added at the bottom for the status LED labels.
================================================================================
Voice Excellence (model 6092) Voice Excellence (model 6092)
---------------- -----------------------------
PCB 1: 510.1117A02, appears to be identical to other "Excellence" boards
CPU: GTE G65SC102P-3, 32 KB PRG ROM: AMI 101-1080A01(IC5), 8192x8 SRAM SRM2264C10(IC6)
2 rows of LEDs on the side: 1*8 green, 1*8 red
PCB 2: 510.1117A01 Hardware notes:
Speech: TSI S14001A, 32 KB ROM: AMI 101-1081A01(IC2)
DIP Switches set ROM A13 and ROM A14, on the side of the board Main PCB:
- PCB label: 510.1117A02, appears to be identical to The Excellence 6080B PCB
- GTE G65SC102P-3 @ 3MHz (12MHz XTAL)
- 32 KB PRG ROM: AMI 101-1080A01(IC5), 8192x8 SRAM SRM2264C10(IC6)
- speaker, 16 LEDs, 8*8 chessboard buttons
Voice PCB:
- PCB label: 510.1117A01
- 32 KB ROM: AMI 101-1081A01(IC2)
- TSI S14001A
- DIP Switches set ROM A13 and ROM A14, on the side of the board
ROM A12 is tied to S14001A's A11 (yuck) ROM A12 is tied to S14001A's A11 (yuck)
ROM A11 is however tied to the CPU's XYZ ROM A11 is however tied to the CPU's XYZ
@ -94,40 +170,6 @@ CPU D6 to W: (model 6092, tied to VCC otherwise)
- D2-D6: VCC - D2-D6: VCC
- D7: TSI BUSY - D7: TSI BUSY
------------------
One interesting clone of The Excellence is the Computerchess Playmate-2. It was
produced in 1989 by SPS(Bulgaria) and RRR(Riga Radio Factory). The chess program
ROM is identical to Excellence EP12. All internal circuitry is the same, the only
difference is the capacitor driving the 555 for IRQ is 10nf instead of 22nf.
What makes it unique is the addition of a chess clock.
connector pinout from main pcb:
1) 5V
2) GND
3) 74HC259.pin9 (Q4) = Row LED driving
4) 74HC259.pin10 (Q5) = Column LED driving
5) 74HC259.pin12 (Q7) = Bat. Low signal
6) 74HC42.pin4 (Q3) = Col-D/Row-4 -> 'White Move' if D-LED blinks
The extra board has a 7474, a К1016ХЛ1 (RTC, or MCU clock driver), a 4-digit
VFD display, and some buttons for controlling the clock. IRQ frequency is doubled
presumedly for using the blinking led as seconds counter. It only tracks player time,
not of the opponent. And it obviously doesn't show chessmove coordinates either.
--------------------------------------------------------------------------------
Designer 2000 (model 6102)
----------------
8KB RAM(KM6264AL-10), 32KB ROM(AMI 101.1077A01)
Ricoh RP65C02G CPU, 3MHz XTAL
PCB label 510.1129A01
basically same as (Par) Excellence hardware, reskinned board
Designer 2100 (model 6103): exactly same, but running at 5MHz
(Designer 1500 is on 80C50 hardware, same ROM as The Classic, see sc6.cpp)
*******************************************************************************/ *******************************************************************************/
#include "emu.h" #include "emu.h"
@ -143,11 +185,11 @@ Designer 2100 (model 6103): exactly same, but running at 5MHz
#include "speaker.h" #include "speaker.h"
// internal artwork // internal artwork
#include "fidel_des.lh"
#include "fidel_ex.lh" #include "fidel_ex.lh"
#include "fidel_exb.lh" #include "fidel_exb.lh"
#include "fidel_exd.lh" #include "fidel_exd.lh"
#include "fidel_exv.lh" #include "fidel_exv.lh"
#include "granits.lh"
namespace { namespace {
@ -166,6 +208,7 @@ public:
{ } { }
void init_fexcelv(); void init_fexcelv();
void init_granits() { m_invert = 0xff; }
// machine configs // machine configs
void fexcel(machine_config &config); void fexcel(machine_config &config);
@ -175,10 +218,9 @@ public:
void fexcelv(machine_config &config); void fexcelv(machine_config &config);
void fexcelp(machine_config &config); void fexcelp(machine_config &config);
void granits(machine_config &config); void granits(machine_config &config);
void fdes2100(machine_config &config);
void fdes2000(machine_config &config);
DECLARE_INPUT_CHANGED_MEMBER(speech_bankswitch); DECLARE_INPUT_CHANGED_MEMBER(speech_bankswitch);
DECLARE_INPUT_CHANGED_MEMBER(fexcelp_change_cpu_freq);
protected: protected:
virtual void machine_start() override; virtual void machine_start() override;
@ -192,6 +234,7 @@ private:
optional_device<s14001a_device> m_speech; optional_device<s14001a_device> m_speech;
optional_ioport_array<3> m_inputs; optional_ioport_array<3> m_inputs;
u8 m_invert = 0;
u8 m_select = 0; u8 m_select = 0;
u8 m_7seg_data = 0; u8 m_7seg_data = 0;
u8 m_speech_data = 0; u8 m_speech_data = 0;
@ -216,50 +259,17 @@ void excel_state::machine_start()
save_item(NAME(m_speech_bank)); save_item(NAME(m_speech_bank));
} }
INPUT_CHANGED_MEMBER(excel_state::fexcelp_change_cpu_freq)
{
m_maincpu->set_unscaled_clock((newval & 1) ? 5_MHz_XTAL : 3_MHz_XTAL);
}
/******************************************************************************* /*******************************************************************************
I/O I/O
*******************************************************************************/ *******************************************************************************/
// speech (fexcelv)
void excel_state::init_fexcelv()
{
u8 *rom = memregion("speech")->base();
const u32 len = memregion("speech")->bytes();
assert(len == 0x8000);
// program controls A11, user controls A13,A14(language switches)
std::vector<u8> buf(len);
memcpy(&buf[0], rom, len);
for (int i = 0; i < len; i++)
rom[i] = buf[((i & 0x67ff) | bitswap<2>(i,11,12) << 11) ^ 0x6000];
}
INPUT_CHANGED_MEMBER(excel_state::speech_bankswitch)
{
// tied to speech ROM highest bits
m_speech_bank = (m_speech_bank & 1) | (newval << 1 & 6);
m_speech->set_rom_bank(m_speech_bank);
}
void excel_state::speech_w(u8 data, u8 mask)
{
// a0-a2,d2 (from ttl_w): 74259(2) to speech board
m_speech_data = (m_speech_data & ~mask) | ((data & 4) ? mask : 0);
// 74259 Q6: speech ROM A11
m_speech_bank = (m_speech_bank & ~1) | BIT(m_speech_data, 6);
m_speech->set_rom_bank(m_speech_bank);
// Q0-Q5: S14001A C0-C5
// Q7: S14001A start pin
m_speech->data_w(m_speech_data & 0x3f);
m_speech->start_w(BIT(m_speech_data, 7));
}
// TTL // TTL
void excel_state::ttl_w(offs_t offset, u8 data) void excel_state::ttl_w(offs_t offset, u8 data)
@ -308,7 +318,7 @@ u8 excel_state::ttl_r(offs_t offset)
// a0-a2,d7: multiplexed inputs (active low) // a0-a2,d7: multiplexed inputs (active low)
// read chessboard sensors // read chessboard sensors
if (sel < 8) if (sel < 8)
data = m_board->read_file(sel); data = m_board->read_file(sel) ^ m_invert;
// read button panel // read button panel
else if (sel == 8) else if (sel == 8)
@ -318,6 +328,44 @@ u8 excel_state::ttl_r(offs_t offset)
} }
// speech (fexcelv)
void excel_state::init_fexcelv()
{
u8 *rom = memregion("speech")->base();
const u32 len = memregion("speech")->bytes();
assert(len == 0x8000);
// program controls A11, user controls A13,A14(language switches)
std::vector<u8> buf(len);
memcpy(&buf[0], rom, len);
for (int i = 0; i < len; i++)
rom[i] = buf[((i & 0x67ff) | bitswap<2>(i,11,12) << 11) ^ 0x6000];
}
INPUT_CHANGED_MEMBER(excel_state::speech_bankswitch)
{
// tied to speech ROM highest bits
m_speech_bank = (m_speech_bank & 1) | (newval << 1 & 6);
m_speech->set_rom_bank(m_speech_bank);
}
void excel_state::speech_w(u8 data, u8 mask)
{
// a0-a2,d2 (from ttl_w): 74259(2) to speech board
m_speech_data = (m_speech_data & ~mask) | ((data & 4) ? mask : 0);
// 74259 Q6: speech ROM A11
m_speech_bank = (m_speech_bank & ~1) | BIT(m_speech_data, 6);
m_speech->set_rom_bank(m_speech_bank);
// Q0-Q5: S14001A C0-C5
// Q7: S14001A start pin
m_speech->data_w(m_speech_data & 0x3f);
m_speech->start_w(BIT(m_speech_data, 7));
}
/******************************************************************************* /*******************************************************************************
Address Maps Address Maps
@ -378,11 +426,25 @@ static INPUT_PORTS_START( fexcel )
PORT_CONFSETTING( 0x00, DEF_STR( Normal ) ) PORT_CONFSETTING( 0x00, DEF_STR( Normal ) )
INPUT_PORTS_END INPUT_PORTS_END
static INPUT_PORTS_START( fdes ) static INPUT_PORTS_START( fexcelp )
PORT_INCLUDE( fexcel ) PORT_INCLUDE( fexcel )
PORT_MODIFY("IN.2") PORT_START("CPU")
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED) // no low-voltage detection circuit (still works in software though) PORT_CONFNAME( 0x01, 0x01, "CPU Frequency" ) PORT_CHANGED_MEMBER(DEVICE_SELF, excel_state, fexcelp_change_cpu_freq, 0) // factory set
PORT_CONFSETTING( 0x00, "3MHz (Designer 2000)" )
PORT_CONFSETTING( 0x01, "5MHz (Par Excellence, Designer 2100)" )
INPUT_PORTS_END
static INPUT_PORTS_START( granits )
PORT_START("IN.0")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL) PORT_NAME("CL")
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD) PORT_NAME("RV / Pawn")
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD) PORT_NAME("DM / Knight")
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD) PORT_NAME("TB / Bishop")
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("LV / Rook")
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD) PORT_NAME("PV / Queen") // options
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD) PORT_NAME("PB / King") // verify
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_CODE(KEYCODE_N) PORT_NAME("RE")
INPUT_PORTS_END INPUT_PORTS_END
@ -433,6 +495,24 @@ void excel_state::fexcelb(machine_config &config)
config.set_default_layout(layout_fidel_exb); config.set_default_layout(layout_fidel_exb);
} }
void excel_state::fexceld(machine_config &config)
{
fexcelb(config);
config.set_default_layout(layout_fidel_exd);
}
void excel_state::fexcelv(machine_config &config)
{
fexcelb(config);
config.set_default_layout(layout_fidel_exv);
// sound hardware
S14001A(config, m_speech, 25000); // R/C circuit, around 25khz
m_speech->add_route(ALL_OUTPUTS, "speaker", 0.75);
}
void excel_state::fexcelp(machine_config &config) void excel_state::fexcelp(machine_config &config)
{ {
fexcel(config); fexcel(config);
@ -447,43 +527,8 @@ void excel_state::granits(machine_config &config)
fexcelp(config); fexcelp(config);
// basic machine hardware // basic machine hardware
m_maincpu->set_clock(8_MHz_XTAL/2); // R65C02P4 m_maincpu->set_clock(8_MHz_XTAL); // R65C02P4
} config.set_default_layout(layout_granits);
void excel_state::fdes2100(machine_config &config)
{
fexcel(config);
// basic machine hardware
M65C02(config.replace(), m_maincpu, 5_MHz_XTAL); // WDC 65C02
m_maincpu->set_addrmap(AS_PROGRAM, &excel_state::fexcelb_map);
config.set_default_layout(layout_fidel_des);
}
void excel_state::fdes2000(machine_config &config)
{
fdes2100(config);
// basic machine hardware
R65C02(config.replace(), m_maincpu, 3_MHz_XTAL); // RP65C02G
m_maincpu->set_addrmap(AS_PROGRAM, &excel_state::fexcelb_map);
}
void excel_state::fexcelv(machine_config &config)
{
fexcelb(config);
config.set_default_layout(layout_fidel_exv);
// sound hardware
S14001A(config, m_speech, 25000); // R/C circuit, around 25khz
m_speech->add_route(ALL_OUTPUTS, "speaker", 0.75);
}
void excel_state::fexceld(machine_config &config)
{
fexcelb(config);
config.set_default_layout(layout_fidel_exd);
} }
@ -512,12 +557,12 @@ ROM_END
ROM_START( fexcel12 ) // model EP12, PCB label 510-1099A01 ROM_START( fexcel12 ) // model EP12, PCB label 510-1099A01
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("101-1072a01.ic5", 0xc000, 0x4000, CRC(212b006d) SHA1(242ff851b0841cbec66bbada6a730da021010e2c) ) ROM_LOAD("101-1073a01.ic5", 0xc000, 0x4000, CRC(3e221534) SHA1(7516bc6a8aab9d8ac30ac1a9317630a6aa9ac1a0) )
ROM_END ROM_END
ROM_START( fexcel124 ) // model EP12, PCB label 510-1099A01 ROM_START( fexcel12a ) // model EP12, PCB label 510-1099A01
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("101-1073a01.ic5", 0xc000, 0x4000, CRC(3e221534) SHA1(7516bc6a8aab9d8ac30ac1a9317630a6aa9ac1a0) ) ROM_LOAD("101-1072a01.ic5", 0xc000, 0x4000, CRC(212b006d) SHA1(242ff851b0841cbec66bbada6a730da021010e2c) )
ROM_END ROM_END
ROM_START( fexcela ) // model 6080, PCB label 510-1099A01(manuf.1985) or 510-1099B01(manuf.1986) ROM_START( fexcela ) // model 6080, PCB label 510-1099A01(manuf.1985) or 510-1099B01(manuf.1986)
@ -528,27 +573,18 @@ ROM_END
ROM_START( fexcelp ) // model 6083, PCB label 510-1099A01 ROM_START( fexcelp ) // model 6083, PCB label 510-1099A01
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("101-1077a01.ic5", 0x8000, 0x8000, CRC(62006320) SHA1(1d6370973dbae42c54639b261cc81e32cdfc1d5d) ) ROM_LOAD("101-1077a01.ic5", 0x8000, 0x8000, CRC(62006320) SHA1(1d6370973dbae42c54639b261cc81e32cdfc1d5d) ) // only 1 byte difference, assume bugfix in bookrom
ROM_END ROM_END
ROM_START( fexcelpb ) // model 6083, PCB label 510-1099B01 ROM_START( fexcelpa ) // model 6083, PCB label 510-1099B01
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("par_ex.ic5", 0x8000, 0x8000, CRC(0d17b0f0) SHA1(3a6070fd4718c62b62ff0f08637bb6eb84eb9a1c) ) // GI 27C256, no label, only 1 byte difference, assume bugfix in bookrom ROM_LOAD("white.ic5", 0x8000, 0x8000, CRC(0d17b0f0) SHA1(3a6070fd4718c62b62ff0f08637bb6eb84eb9a1c) ) // GI 27C256, no label
ROM_END ROM_END
ROM_START( granits ) // modified SC12 board, Par Excellence program
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("granit_s-4", 0x8000, 0x8000, CRC(274d6aff) SHA1(c8d943b2f15422ac62f539b568f5509cbce568a3) )
ROM_END
ROM_START( fdes2000 ) // model 6102, PCB label 510.1129A01 ROM_START( granits ) // modified SC12 board
ROM_REGION( 0x10000, "maincpu", 0 ) ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("101-1077a01.ic5", 0x8000, 0x8000, CRC(62006320) SHA1(1d6370973dbae42c54639b261cc81e32cdfc1d5d) ) // AMI, same label as fexcelp ROM_LOAD("granit_s-4.ic15", 0x8000, 0x8000, CRC(274d6aff) SHA1(c8d943b2f15422ac62f539b568f5509cbce568a3) )
ROM_END
ROM_START( fdes2100 ) // model 6103, PCB label 510.1129A01
ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD("101-1077a01.ic5", 0x8000, 0x8000, CRC(62006320) SHA1(1d6370973dbae42c54639b261cc81e32cdfc1d5d) ) // same as fdes2000
ROM_END ROM_END
} // anonymous namespace } // anonymous namespace
@ -561,14 +597,13 @@ ROM_END
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
SYST( 1987, fexcel, 0, 0, fexcelb, fexcelb, excel_state, empty_init, "Fidelity International", "The Excellence (model 6080B)", MACHINE_SUPPORTS_SAVE ) SYST( 1987, fexcel, 0, 0, fexcelb, fexcelb, excel_state, empty_init, "Fidelity International", "The Excellence (model 6080B)", MACHINE_SUPPORTS_SAVE )
SYST( 1987, fexcelv, fexcel, 0, fexcelv, fexcelv, excel_state, init_fexcelv, "Fidelity International", "Voice Excellence", MACHINE_SUPPORTS_SAVE )
SYST( 1987, fexceld, fexcel, 0, fexceld, fexcelb, excel_state, empty_init, "Fidelity International", "Excel Display", MACHINE_SUPPORTS_SAVE ) SYST( 1987, fexceld, fexcel, 0, fexceld, fexcelb, excel_state, empty_init, "Fidelity International", "Excel Display", MACHINE_SUPPORTS_SAVE )
SYST( 1985, fexcel12, fexcel, 0, fexcel, fexcel, excel_state, empty_init, "Fidelity International", "The Excellence (model EP12, set 1)", MACHINE_SUPPORTS_SAVE ) // 1st version of The Excellence SYST( 1987, fexcelv, fexcel, 0, fexcelv, fexcelv, excel_state, init_fexcelv, "Fidelity International", "Voice Excellence", MACHINE_SUPPORTS_SAVE )
SYST( 1985, fexcel124, fexcel, 0, fexcel4, fexcel, excel_state, empty_init, "Fidelity International", "The Excellence (model EP12, set 2)", MACHINE_SUPPORTS_SAVE ) SYST( 1985, fexcel12, fexcel, 0, fexcel4, fexcel, excel_state, empty_init, "Fidelity International", "The Excellence (model EP12, set 1)", MACHINE_SUPPORTS_SAVE )
SYST( 1985, fexcel12a, fexcel, 0, fexcel, fexcel, excel_state, empty_init, "Fidelity International", "The Excellence (model EP12, set 2)", MACHINE_SUPPORTS_SAVE ) // 1st version of The Excellence
SYST( 1985, fexcela, fexcel, 0, fexcel, fexcel, excel_state, empty_init, "Fidelity International", "The Excellence (model 6080)", MACHINE_SUPPORTS_SAVE ) SYST( 1985, fexcela, fexcel, 0, fexcel, fexcel, excel_state, empty_init, "Fidelity International", "The Excellence (model 6080)", MACHINE_SUPPORTS_SAVE )
SYST( 1986, fexcelp, 0, 0, fexcelp, fexcel, excel_state, empty_init, "Fidelity International", "The Par Excellence", MACHINE_SUPPORTS_SAVE ) SYST( 1986, fexcelp, 0, 0, fexcelp, fexcelp, excel_state, empty_init, "Fidelity International", "The Par Excellence (set 1)", 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, fexcelpa, fexcelp, 0, fexcelp, fexcelp, excel_state, empty_init, "Fidelity International", "The Par Excellence (set 2)", 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( 1986, granits, fscc12, 0, granits, granits, excel_state, init_granits, "hack (Remote Control Systems)", "Granit S", MACHINE_SUPPORTS_SAVE )
SYST( 1988, fdes2100, fexcelp, 0, fdes2100, fdes, excel_state, empty_init, "Fidelity International", "Designer 2100", MACHINE_SUPPORTS_SAVE )

View File

@ -20,7 +20,7 @@ spawn block and place it anywhere on a free spot at the designated box at the
edge of the chessboard. edge of the chessboard.
Hardware notes: Hardware notes:
- PCB label 510.1128A01 - PCB label: 510.1128A01
- R65C02P4, XTAL marked 4.915200 - R65C02P4, XTAL marked 4.915200
- 2*32KB ROM 27C256-15, 8KB RAM MS6264L-10 - 2*32KB ROM 27C256-15, 8KB RAM MS6264L-10
- LCD driver, display panel for digits - LCD driver, display panel for digits

View File

@ -24,7 +24,7 @@ Known MCU ROM serials:
TODO: TODO:
- is The Classic model CC8 a different ROM? and what about model 6079D? - is The Classic model CC8 a different ROM? and what about model 6079D?
-------------------------------------------------------------------------------- ================================================================================
SC6 hardware notes: SC6 hardware notes:
- PCB label: 510-1045B01 - PCB label: 510-1045B01
@ -39,7 +39,7 @@ SC6 released modules, * denotes not dumped yet:
SC6 program is contained in BO6 and CG6. SC6 program is contained in BO6 and CG6.
-------------------------------------------------------------------------------- ================================================================================
MSC hardware notes: MSC hardware notes:
- PCB label: 510-1044B01 - PCB label: 510-1044B01
@ -56,7 +56,7 @@ Silver Bullet hardware notes:
- TMP80C50AP-6-9311 MCU, 4KB internal ROM, 6MHz XTAL - TMP80C50AP-6-9311 MCU, 4KB internal ROM, 6MHz XTAL
- buzzer, 16 leds, 8*8 chessboard buttons, module slot (takes MSC modules) - buzzer, 16 leds, 8*8 chessboard buttons, module slot (takes MSC modules)
-------------------------------------------------------------------------------- ================================================================================
The Classic (model CC8) hardware notes: The Classic (model CC8) hardware notes:
- PCB label: 510-1095A01 - PCB label: 510-1095A01
@ -79,7 +79,7 @@ Designer 1500 hardware notes:
Peri Beta has the same PCB/ROM as Designer 1500, only the housing differs. Peri Beta has the same PCB/ROM as Designer 1500, only the housing differs.
-------------------------------------------------------------------------------- ================================================================================
Gambit Voice hardware notes: Gambit Voice hardware notes:
- TMP80C50AP-6-9337 MCU, 4KB internal ROM, 6MHz XTAL - TMP80C50AP-6-9337 MCU, 4KB internal ROM, 6MHz XTAL

View File

@ -27,7 +27,7 @@ I/O is via TTL, not further documented here
The Playmatic S was only released in Germany, it's basically a 'deluxe' version of SC9 The Playmatic S was only released in Germany, it's basically a 'deluxe' version of SC9
with magnet sensors and came with CB9 and CB16. with magnet sensors and came with CB9 and CB16.
-------------------------------------------------------------------------------- ================================================================================
Starting with SC9, Fidelity added a cartridge slot to their chess computers, meant for Starting with SC9, Fidelity added a cartridge slot to their chess computers, meant for
extra book opening databases and recorded games. extra book opening databases and recorded games.

View File

@ -12,7 +12,7 @@ Grandmaster and FCC are verified to be the same PCB + ROMs as UVC. So even thoug
they have a large wooden chessboard attached instead of a small plastic one, from they have a large wooden chessboard attached instead of a small plastic one, from
MAME's perspective there's nothing to emulate on top of UVC. MAME's perspective there's nothing to emulate on top of UVC.
******************************************************************************** ================================================================================
RE notes by Kevin Horton RE notes by Kevin Horton

View File

@ -7,7 +7,9 @@ authors:hap
<!-- define elements --> <!-- define elements -->
<element name="blackl"><rect><color red="0.01" green="0.01" blue="0.01" /></rect></element>
<element name="black"><rect><color red="0.15" green="0.15" blue="0.15" /></rect></element> <element name="black"><rect><color red="0.15" green="0.15" blue="0.15" /></rect></element>
<element name="blackm"><rect><color red="0.2" green="0.2" blue="0.2" /></rect></element>
<element name="white"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element> <element name="white"><rect><color red="0.81" green="0.8" blue="0.79" /></rect></element>
<element name="disk_black"><disk><color red="0.15" green="0.15" blue="0.15" /></disk></element> <element name="disk_black"><disk><color red="0.15" green="0.15" blue="0.15" /></disk></element>
<element name="disk_white"><disk><color red="0.81" green="0.8" blue="0.79" /></disk></element> <element name="disk_white"><disk><color red="0.81" green="0.8" blue="0.79" /></disk></element>
@ -28,19 +30,25 @@ authors:hap
</disk> </disk>
</element> </element>
<element name="text_1"><text string="1" align="2"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_1"><text string="1"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_2"><text string="2" align="2"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_2"><text string="2"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_3"><text string="3" align="2"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_3"><text string="3"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_4"><text string="4" align="2"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_4"><text string="4"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_5"><text string="5" align="2"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_5"><text string="5"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_6"><text string="6" align="2"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_6"><text string="6"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_7"><text string="7" align="2"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_7"><text string="7"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_8"><text string="8" align="2"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_8"><text string="8"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_9"><text string="9" align="2"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_l1"><text string="9" align="2"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_10"><text string="10" align="2"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_l2"><text string="10" align="2"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_11"><text string="11" align="2"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_l3"><text string="11" align="2"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_12"><text string="12" align="2"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_l4"><text string="12" align="2"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_l5"><text string="NO MATE"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_l61"><text string="DRAW"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_l62"><text string="ACCEPTED"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_l71"><text string="DRAW"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_l72"><text string="DECLINED"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_a"><text string="A"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_a"><text string="A"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_b"><text string="B"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_b"><text string="B"><color red="0.01" green="0.01" blue="0.01" /></text></element>
@ -51,31 +59,32 @@ authors:hap
<element name="text_g"><text string="G"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_g"><text string="G"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_h"><text string="H"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_h"><text string="H"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_lb"><text string="CHECK"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_lb"><text string="CHECK"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_lc"><text string="MATE"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_lc"><text string="MATE"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_ld"><text string="WHITE"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_ld"><text string="WHITE"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_le"><text string="BLACK"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_le"><text string="BLACK"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_lf"><text string="STALEMATE"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_lf"><text string="STALEMATE"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_lg"><text string="DRAW"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_lg"><text string="DRAW"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_lh"><text string="I LOSE"><color red="0.01" green="0.01" blue="0.01" /></text></element> <element name="text_lh"><text string="I LOSE"><color red="0.81" green="0.8" blue="0.79" /></text></element>
<element name="text_t81"><text string="NEW"><color red="0.15" green="0.15" blue="0.15" /></text></element> <element name="text_illegal"><text string="ILLEGAL"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_t82"><text string="GAME"><color red="0.15" green="0.15" blue="0.15" /></text></element> <element name="text_check"><text string="CHECK"><color red="0.01" green="0.01" blue="0.01" /></text></element>
<element name="text_t7"><text string="VERIFY"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_t6"><text string=" OPTIONS"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_t5"><text string="LEVEL"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_t41"><text string="TAKE"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_t42"><text string="BACK"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_t3"><text string="HINT"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_t2"><text string="MOVE"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_t1"><text string="CLEAR"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_p1"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/bk.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element> <element name="text_re"><text string="RE"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_p2"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/bq.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element> <element name="text_cl"><text string="CL"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_p3"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/br.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element> <element name="text_pb"><text string="PB"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_p4"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/bb.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element> <element name="text_pv"><text string="PV"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_p5"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/bn.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element> <element name="text_lv"><text string="LV"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_p6"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/bp.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element> <element name="text_tb"><text string="TB"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_dm"><text string="DM"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_rv"><text string="RV"><color red="0.15" green="0.15" blue="0.15" /></text></element>
<element name="text_p1"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wk.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element>
<element name="text_p2"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wq.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element>
<element name="text_p3"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wr.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element>
<element name="text_p4"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wb.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element>
<element name="text_p5"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wn.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element>
<element name="text_p6"><rect><color red="1" green="1" blue="1" /></rect><image file="chess/wp.svg" /><rect><color red="1" green="1" blue="1" alpha="0.1875" /></rect></element>
<!-- sb board --> <!-- sb board -->
@ -340,112 +349,133 @@ authors:hap
<!-- build screen --> <!-- build screen -->
<view name="Internal Layout"> <view name="Internal Layout">
<bounds left="-18.5" right="96" top="-1.5" bottom="93" /> <bounds left="-18" right="97.5" top="-1.5" bottom="92.5" />
<element ref="white"><bounds x="-6.5" y="-1.5" width="102.5" height="94.5" /></element> <element ref="white"><bounds x="-6" y="-1.5" width="103.5" height="94" /></element>
<element ref="black"><bounds x="3" y="2.5" width="81" height="81" /></element> <element ref="black"><bounds x="3" y="2.5" width="81" height="81" /></element>
<group ref="sb_board"><bounds x="3.5" y="3" width="80" height="80" /></group>
<group ref="sb_ui"><bounds x="-17.5" y="3.5" width="10" height="80" /></group> <group ref="sb_board"><bounds x="3.5" y="3" width="80" height="80" /></group>
<group ref="sb_ui"><bounds x="-17" y="3" width="10" height="80" /></group>
<!-- chessboard coords --> <!-- chessboard coords -->
<element ref="text_8"><bounds x="0.2" y="7" width="2" height="2" /></element> <element ref="text_8"><bounds x="0.2" y="9" width="2" height="2" /></element>
<element ref="text_7"><bounds x="0.2" y="17" width="2" height="2" /></element> <element ref="text_7"><bounds x="0.2" y="19" width="2" height="2" /></element>
<element ref="text_6"><bounds x="0.2" y="27" width="2" height="2" /></element> <element ref="text_6"><bounds x="0.2" y="29" width="2" height="2" /></element>
<element ref="text_5"><bounds x="0.2" y="37" width="2" height="2" /></element> <element ref="text_5"><bounds x="0.2" y="39" width="2" height="2" /></element>
<element ref="text_4"><bounds x="0.2" y="47" width="2" height="2" /></element> <element ref="text_4"><bounds x="0.2" y="49" width="2" height="2" /></element>
<element ref="text_3"><bounds x="0.2" y="57" width="2" height="2" /></element> <element ref="text_3"><bounds x="0.2" y="59" width="2" height="2" /></element>
<element ref="text_2"><bounds x="0.2" y="67" width="2" height="2" /></element> <element ref="text_2"><bounds x="0.2" y="69" width="2" height="2" /></element>
<element ref="text_1"><bounds x="0.2" y="77" width="2" height="2" /></element> <element ref="text_1"><bounds x="0.2" y="79" width="2" height="2" /></element>
<element ref="text_a"><bounds x="7.5" y="84.5" width="2" height="2" /></element> <element ref="text_a"><bounds x="5.5" y="84.5" width="2" height="2" /></element>
<element ref="text_b"><bounds x="17.5" y="84.5" width="2" height="2" /></element> <element ref="text_b"><bounds x="15.5" y="84.5" width="2" height="2" /></element>
<element ref="text_c"><bounds x="27.5" y="84.5" width="2" height="2" /></element> <element ref="text_c"><bounds x="25.5" y="84.5" width="2" height="2" /></element>
<element ref="text_d"><bounds x="37.5" y="84.5" width="2" height="2" /></element> <element ref="text_d"><bounds x="35.5" y="84.5" width="2" height="2" /></element>
<element ref="text_e"><bounds x="47.5" y="84.5" width="2" height="2" /></element> <element ref="text_e"><bounds x="45.5" y="84.5" width="2" height="2" /></element>
<element ref="text_f"><bounds x="57.5" y="84.5" width="2" height="2" /></element> <element ref="text_f"><bounds x="55.5" y="84.5" width="2" height="2" /></element>
<element ref="text_g"><bounds x="67.5" y="84.5" width="2" height="2" /></element> <element ref="text_g"><bounds x="65.5" y="84.5" width="2" height="2" /></element>
<element ref="text_h"><bounds x="77.5" y="84.5" width="2" height="2" /></element> <element ref="text_h"><bounds x="75.5" y="84.5" width="2" height="2" /></element>
<!-- left side labels --> <!-- left side labels -->
<element ref="text_9"><bounds x="-6.3" y="12" width="3" height="2" /></element> <element ref="text_l1"><bounds x="-5.8" y="12" width="5" height="2" /></element>
<element ref="text_10"><bounds x="-6.3" y="22" width="3" height="2" /></element> <element ref="text_l2"><bounds x="-5.8" y="22" width="5" height="2" /></element>
<element ref="text_11"><bounds x="-6.3" y="32" width="3" height="2" /></element> <element ref="text_l3"><bounds x="-5.8" y="32" width="5" height="2" /></element>
<element ref="text_12"><bounds x="-6.3" y="42" width="3" height="2" /></element> <element ref="text_l4"><bounds x="-5.8" y="42" width="5" height="2" /></element>
<element ref="text_l5"><bounds x="-2.8" y="47.25" width="2" height="11.5" /><orientation rotate="90" /></element>
<element ref="text_l61"><bounds x="-2.8" y="58.75" width="2" height="8.5" /><orientation rotate="90" /></element>
<element ref="text_l62"><bounds x="-4.81" y="58.0" width="2" height="10" /><orientation rotate="90" /></element>
<element ref="text_l71"><bounds x="-2.8" y="68.75" width="2" height="8.5" /><orientation rotate="90" /></element>
<element ref="text_l72"><bounds x="-4.81" y="68.0" width="2" height="10" /><orientation rotate="90" /></element>
<element ref="blackl"><bounds x="-0.3" y="8.75" width="0.3" height="8.5" /></element>
<element ref="blackl"><bounds x="-0.3" y="18.75" width="0.3" height="8.5" /></element>
<element ref="blackl"><bounds x="-0.3" y="28.75" width="0.3" height="8.5" /></element>
<element ref="blackl"><bounds x="-0.3" y="38.75" width="0.3" height="8.5" /></element>
<element ref="blackl"><bounds x="-0.3" y="48.75" width="0.3" height="8.5" /></element>
<element ref="blackl"><bounds x="-0.3" y="58.75" width="0.3" height="8.5" /></element>
<element ref="blackl"><bounds x="-0.3" y="68.75" width="0.3" height="8.5" /></element>
<!-- bottom side labels --> <!-- bottom side labels -->
<element ref="text_lb"><bounds x="13.5" y="89.9" width="10" height="2" /></element> <element ref="blackm" blend="multiply"><bounds x="-6" y="88" width="110" height="10" /></element>
<element ref="text_lc"><bounds x="23.5" y="89.9" width="10" height="2" /></element>
<element ref="text_ld"><bounds x="33.5" y="89.9" width="10" height="2" /></element> <element ref="text_lb"><bounds x="13.5" y="89.2" width="10" height="2" /></element>
<element ref="text_le"><bounds x="43.5" y="89.9" width="10" height="2" /></element> <element ref="text_lc"><bounds x="23.5" y="89.2" width="10" height="2" /></element>
<element ref="text_lh"><bounds x="73.5" y="89.9" width="10" height="2" /></element> <element ref="text_ld"><bounds x="33.5" y="89.2" width="10" height="2" /></element>
<element ref="text_lg"><bounds x="62.5" y="89.9" width="12" height="2" /></element> <element ref="text_le"><bounds x="43.5" y="89.2" width="10" height="2" /></element>
<element ref="text_lf"><bounds x="53.5" y="89.9" width="10" height="2" /></element> <element ref="text_lh"><bounds x="73.5" y="89.2" width="10" height="2" /></element>
<element ref="text_lg"><bounds x="62.5" y="89.2" width="12" height="2" /></element>
<element ref="text_lf"><bounds x="53.5" y="89.2" width="10" height="2" /></element>
<!-- chessboard leds --> <!-- chessboard leds -->
<element name="0.7" ref="led"><bounds x="-1.8" y="7.25" width="1.5" height="1.5" /></element> <element name="0.7" ref="led"><bounds x="0" y="7.25" width="1.5" height="1.5" /></element>
<element name="0.6" ref="led"><bounds x="-1.8" y="17.25" width="1.5" height="1.5" /></element> <element name="0.6" ref="led"><bounds x="0" y="17.25" width="1.5" height="1.5" /></element>
<element name="0.5" ref="led"><bounds x="-1.8" y="27.25" width="1.5" height="1.5" /></element> <element name="0.5" ref="led"><bounds x="0" y="27.25" width="1.5" height="1.5" /></element>
<element name="0.4" ref="led"><bounds x="-1.8" y="37.25" width="1.5" height="1.5" /></element> <element name="0.4" ref="led"><bounds x="0" y="37.25" width="1.5" height="1.5" /></element>
<element name="0.3" ref="led"><bounds x="-1.8" y="47.25" width="1.5" height="1.5" /></element> <element name="0.3" ref="led"><bounds x="0" y="47.25" width="1.5" height="1.5" /></element>
<element name="0.2" ref="led"><bounds x="-1.8" y="57.25" width="1.5" height="1.5" /></element> <element name="0.2" ref="led"><bounds x="0" y="57.25" width="1.5" height="1.5" /></element>
<element name="0.1" ref="led"><bounds x="-1.8" y="67.25" width="1.5" height="1.5" /></element> <element name="0.1" ref="led"><bounds x="0" y="67.25" width="1.5" height="1.5" /></element>
<element name="0.0" ref="led"><bounds x="-1.8" y="77.25" width="1.5" height="1.5" /></element> <element name="0.0" ref="led"><bounds x="0" y="77.25" width="1.5" height="1.5" /></element>
<element name="1.0" ref="led"><bounds x="7.75" y="87.5" width="1.5" height="1.5" /></element> <element name="1.0" ref="led"><bounds x="7.75" y="85" width="1.5" height="1.5" /></element>
<element name="1.1" ref="led"><bounds x="17.75" y="87.5" width="1.5" height="1.5" /></element> <element name="1.1" ref="led"><bounds x="17.75" y="85" width="1.5" height="1.5" /></element>
<element name="1.2" ref="led"><bounds x="27.75" y="87.5" width="1.5" height="1.5" /></element> <element name="1.2" ref="led"><bounds x="27.75" y="85" width="1.5" height="1.5" /></element>
<element name="1.3" ref="led"><bounds x="37.75" y="87.5" width="1.5" height="1.5" /></element> <element name="1.3" ref="led"><bounds x="37.75" y="85" width="1.5" height="1.5" /></element>
<element name="1.4" ref="led"><bounds x="47.75" y="87.5" width="1.5" height="1.5" /></element> <element name="1.4" ref="led"><bounds x="47.75" y="85" width="1.5" height="1.5" /></element>
<element name="1.5" ref="led"><bounds x="57.75" y="87.5" width="1.5" height="1.5" /></element> <element name="1.5" ref="led"><bounds x="57.75" y="85" width="1.5" height="1.5" /></element>
<element name="1.6" ref="led"><bounds x="67.75" y="87.5" width="1.5" height="1.5" /></element> <element name="1.6" ref="led"><bounds x="67.75" y="85" width="1.5" height="1.5" /></element>
<element name="1.7" ref="led"><bounds x="77.75" y="87.5" width="1.5" height="1.5" /></element> <element name="1.7" ref="led"><bounds x="77.75" y="85" width="1.5" height="1.5" /></element>
<!-- these 2 status leds are unconnected -->
<element ref="text_illegal"><bounds x="85" y="79" width="11.4" height="2" /></element>
<element ref="text_check"><bounds x="85" y="83" width="11.4" height="2" /></element>
<element ref="led"><bounds x="89.95" y="81" width="1.5" height="1.5" /></element>
<element ref="led"><bounds x="89.95" y="85" width="1.5" height="1.5" /></element>
<!-- right side --> <!-- right side -->
<element ref="disk_black"><bounds x="87" y="5" width="6" height="6" /></element> <element ref="disk_black"><bounds x="87" y="3.1" width="6" height="6" /></element>
<element ref="disk_black"><bounds x="87" y="15" width="6" height="6" /></element> <element ref="disk_black"><bounds x="87" y="12.4" width="6" height="6" /></element>
<element ref="disk_black"><bounds x="87" y="25" width="6" height="6" /></element> <element ref="disk_black"><bounds x="87" y="24.3" width="6" height="6" /></element>
<element ref="disk_black"><bounds x="87" y="35" width="6" height="6" /></element> <element ref="disk_black"><bounds x="87" y="33.6" width="6" height="6" /></element>
<element ref="disk_black"><bounds x="87" y="45" width="6" height="6" /></element> <element ref="disk_black"><bounds x="87" y="42.9" width="6" height="6" /></element>
<element ref="disk_black"><bounds x="87" y="55" width="6" height="6" /></element> <element ref="disk_black"><bounds x="87" y="52.2" width="6" height="6" /></element>
<element ref="disk_black"><bounds x="87" y="65" width="6" height="6" /></element> <element ref="disk_black"><bounds x="87" y="61.5" width="6" height="6" /></element>
<element ref="disk_black"><bounds x="87" y="75" width="6" height="6" /></element> <element ref="disk_black"><bounds x="87" y="70.8" width="6" height="6" /></element>
<element ref="disk_white"><bounds x="87.7" y="5.7" width="4.6" height="4.6" /></element> <element ref="disk_white"><bounds x="87.7" y="3.8" width="4.6" height="4.6" /></element>
<element ref="disk_white"><bounds x="87.7" y="15.7" width="4.6" height="4.6" /></element> <element ref="disk_white"><bounds x="87.7" y="13.1" width="4.6" height="4.6" /></element>
<element ref="disk_white"><bounds x="87.7" y="25.7" width="4.6" height="4.6" /></element> <element ref="disk_white"><bounds x="87.7" y="25.0" width="4.6" height="4.6" /></element>
<element ref="disk_white"><bounds x="87.7" y="35.7" width="4.6" height="4.6" /></element> <element ref="disk_white"><bounds x="87.7" y="34.3" width="4.6" height="4.6" /></element>
<element ref="disk_white"><bounds x="87.7" y="45.7" width="4.6" height="4.6" /></element> <element ref="disk_white"><bounds x="87.7" y="43.6" width="4.6" height="4.6" /></element>
<element ref="disk_white"><bounds x="87.7" y="55.7" width="4.6" height="4.6" /></element> <element ref="disk_white"><bounds x="87.7" y="52.9" width="4.6" height="4.6" /></element>
<element ref="disk_white"><bounds x="87.7" y="65.7" width="4.6" height="4.6" /></element> <element ref="disk_white"><bounds x="87.7" y="62.2" width="4.6" height="4.6" /></element>
<element ref="disk_white"><bounds x="87.7" y="75.7" width="4.6" height="4.6" /></element> <element ref="disk_white"><bounds x="87.7" y="71.5" width="4.6" height="4.6" /></element>
<element ref="text_t81"><bounds x="87" y="6.7" width="6" height="1.25" /></element> <element ref="text_re"><bounds x="87.7" y="4.9" width="4.6" height="2.4" /></element>
<element ref="text_t82"><bounds x="87" y="7.95" width="6" height="1.25" /></element> <element ref="text_cl"><bounds x="87.7" y="14.2" width="4.6" height="2.4" /></element>
<element ref="text_t7"><bounds x="87" y="17.325" width="6" height="1.25" /></element> <element ref="text_pb"><bounds x="87.7" y="26.1" width="4.6" height="2.4" /></element>
<element ref="text_t6"><bounds x="87" y="27.325" width="6" height="1.25" /></element> <element ref="text_pv"><bounds x="87.7" y="35.4" width="4.6" height="2.4" /></element>
<element ref="text_t5"><bounds x="87" y="37.325" width="6" height="1.25" /></element> <element ref="text_lv"><bounds x="87.7" y="44.7" width="4.6" height="2.4" /></element>
<element ref="text_t41"><bounds x="87" y="46.7" width="6" height="1.25" /></element> <element ref="text_tb"><bounds x="87.7" y="54.0" width="4.6" height="2.4" /></element>
<element ref="text_t42"><bounds x="87" y="47.95" width="6" height="1.25" /></element> <element ref="text_dm"><bounds x="87.7" y="63.3" width="4.6" height="2.4" /></element>
<element ref="text_t3"><bounds x="87" y="57.325" width="6" height="1.25" /></element> <element ref="text_rv"><bounds x="87.7" y="72.6" width="4.6" height="2.4" /></element>
<element ref="text_t2"><bounds x="87" y="67.325" width="6" height="1.25" /></element>
<element ref="text_t1"><bounds x="87" y="77.325" width="6" height="1.25" /></element>
<repeat count="6"> <repeat count="6">
<param name="y" start="12" increment="10" /> <param name="y" start="21.4" increment="9.3" />
<param name="i" start="1" increment="1" /> <param name="i" start="1" increment="1" />
<element ref="text_p~i~" blend="multiply"><bounds x="88.5" y="~y~" width="3.0" height="3.0" /></element> <element ref="text_p~i~" blend="multiply"><bounds x="88.5" y="~y~" width="3.0" height="3.0" /></element>
</repeat> </repeat>
<element ref="hlb" inputtag="IN.0" inputmask="0x80"><bounds x="87" y="5" width="6" height="6" /><color alpha="0.3" /></element> <element ref="hlb" inputtag="IN.0" inputmask="0x80"><bounds x="87" y="3.1" width="6" height="6" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x40"><bounds x="87" y="15" width="6" height="6" /><color alpha="0.3" /></element> <element ref="hlb" inputtag="IN.0" inputmask="0x01"><bounds x="87" y="12.4" width="6" height="6" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x20"><bounds x="87" y="25" width="6" height="6" /><color alpha="0.3" /></element> <element ref="hlb" inputtag="IN.0" inputmask="0x40"><bounds x="87" y="24.3" width="6" height="6" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x10"><bounds x="87" y="35" width="6" height="6" /><color alpha="0.3" /></element> <element ref="hlb" inputtag="IN.0" inputmask="0x20"><bounds x="87" y="33.6" width="6" height="6" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x08"><bounds x="87" y="45" width="6" height="6" /><color alpha="0.3" /></element> <element ref="hlb" inputtag="IN.0" inputmask="0x10"><bounds x="87" y="42.9" width="6" height="6" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x04"><bounds x="87" y="55" width="6" height="6" /><color alpha="0.3" /></element> <element ref="hlb" inputtag="IN.0" inputmask="0x08"><bounds x="87" y="52.2" width="6" height="6" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x02"><bounds x="87" y="65" width="6" height="6" /><color alpha="0.3" /></element> <element ref="hlb" inputtag="IN.0" inputmask="0x04"><bounds x="87" y="61.5" width="6" height="6" /><color alpha="0.3" /></element>
<element ref="hlb" inputtag="IN.0" inputmask="0x01"><bounds x="87" y="75" width="6" height="6" /><color alpha="0.3" /></element> <element ref="hlb" inputtag="IN.0" inputmask="0x02"><bounds x="87" y="70.8" width="6" height="6" /><color alpha="0.3" /></element>
</view> </view>
</mamelayout> </mamelayout>

View File

@ -18084,15 +18084,13 @@ fpresbu //
fpresgla // fpresgla //
@source:fidelity/excel.cpp @source:fidelity/excel.cpp
fdes2000 //
fdes2100 //
fexcel // fexcel //
fexcel12 // fexcel12 //
fexcel124 // fexcel12a //
fexcela // fexcela //
fexceld // fexceld //
fexcelp // fexcelp //
fexcelpb // fexcelpa //
fexcelv // fexcelv //
granits // RCS granits // RCS

View File

@ -23,6 +23,7 @@ BTANB:
================================================================================ ================================================================================
Saitek GK 2000 family Saitek GK 2000 family
---------------------
Hardware notes: Hardware notes:
@ -47,6 +48,7 @@ Travel Champion 2080 and Tandy Mega 2050X are 14MHz instead of 20MHz.
================================================================================ ================================================================================
Saitek Centurion family Saitek Centurion family
-----------------------
This is the program with the infamous H8 bug, not named after the MCU, but after This is the program with the infamous H8 bug, not named after the MCU, but after
the H8 square. The piece on H8 is moved immediately, regardless of playing level, the H8 square. The piece on H8 is moved immediately, regardless of playing level,