mirror of
https://github.com/holub/mame
synced 2025-06-08 05:44:09 +03:00
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:
parent
f943b25a02
commit
f9abb4e805
@ -98,7 +98,6 @@ DECLARE_DEVICE_TYPE(N7751, n7751_device) // 8048 clone
|
||||
DECLARE_DEVICE_TYPE(M58715, m58715_device) // 8049 clone
|
||||
|
||||
|
||||
|
||||
class mcs48_cpu_device : public cpu_device
|
||||
{
|
||||
public:
|
||||
@ -127,9 +126,6 @@ public:
|
||||
uint8_t p1_r() { return m_p1; }
|
||||
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)...); }
|
||||
|
||||
u32 get_ale_clock() { return m_clock / 3 / 5; }
|
||||
@ -167,7 +163,6 @@ protected:
|
||||
// device_disasm_interface overrides
|
||||
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
|
||||
|
||||
protected:
|
||||
address_space_config m_program_config;
|
||||
address_space_config m_data_config;
|
||||
address_space_config m_io_config;
|
||||
@ -232,6 +227,9 @@ protected:
|
||||
static const mcs48_ophandler s_i8022_opcodes[256];
|
||||
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
|
||||
uint8_t program_r(offs_t a) { return m_program.read_byte(a); }
|
||||
|
||||
|
@ -27,7 +27,7 @@ TODO:
|
||||
- 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)
|
||||
|
||||
********************************************************************************
|
||||
================================================================================
|
||||
|
||||
Voice Bridge Challenger (Model VBRC, later reissued as Model 7002/BV2)
|
||||
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.3 - segment H
|
||||
|
||||
button matrix:
|
||||
Button matrix:
|
||||
--------------
|
||||
the matrix is composed of 8 columns by 4 rows.
|
||||
|
||||
|
@ -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.
|
||||
|
||||
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)
|
||||
- Everything goes via a NEC B8228, its special features are unused.
|
||||
- NEC 2316A ROM(2KB), 4*2101AL RAM(0.5KB total)
|
||||
|
@ -9,10 +9,10 @@ TODO:
|
||||
- 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.
|
||||
|
||||
********************************************************************************
|
||||
================================================================================
|
||||
|
||||
Fidelity Chess Challenger 10 (CCX)
|
||||
-------------------
|
||||
----------------------------------
|
||||
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).
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
/*******************************************************************************
|
||||
|
||||
Fidelity Chess Challenger 7 (BCC)
|
||||
------------------------
|
||||
---------------------------------
|
||||
It was Fidelity's most sold chess computer. The first version was released in
|
||||
1979, and a newer PCB revision was produced in 1980.
|
||||
|
||||
@ -31,7 +31,7 @@ Memory map:
|
||||
4000-FFFF: Z80 A14/A15 not connected
|
||||
|
||||
Port map (Write):
|
||||
---------
|
||||
-----------------
|
||||
D0-D3: digit select and keypad mux
|
||||
D4: CHECK led
|
||||
D5: LOSE led
|
||||
@ -41,7 +41,7 @@ NE591 Q0-Q6: digit segments A-G
|
||||
NE591 Q7: buzzer
|
||||
|
||||
Port map (Read):
|
||||
---------
|
||||
----------------
|
||||
D0-D3: keypad row
|
||||
|
||||
*******************************************************************************/
|
||||
|
@ -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,
|
||||
Inc. to Fidelity Electronics International, Inc. after becoming a subsidiary.
|
||||
|
||||
********************************************************************************
|
||||
================================================================================
|
||||
|
||||
Fidelity Chesster (model 6120)
|
||||
There is also a German version titled Kishon Chesster (model 6120G, or 6127)
|
||||
----------------
|
||||
8*(8+1) buttons, 8+8+1 LEDs
|
||||
8KB RAM(UM6264-12), 32KB ROM(M27C256B)
|
||||
PCB label: 510.1141C01
|
||||
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)
|
||||
PCB label 510.1141C01
|
||||
8*(8+1) buttons, 8+8+1 LEDs
|
||||
|
||||
I/O is via TTL, memory map is similar to Designer Display
|
||||
|
||||
|
@ -15,7 +15,7 @@ TODO:
|
||||
- hook up csce I/O properly, it doesn't have PIAs
|
||||
- verify super9cc maskrom dump
|
||||
|
||||
********************************************************************************
|
||||
================================================================================
|
||||
|
||||
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".
|
||||
|
||||
********************************************************************************
|
||||
================================================================================
|
||||
|
||||
Elite Champion Challenger (ELITE)
|
||||
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
|
||||
kit for csce to make it similar to this version, CPU was changed to a R65C02P4.
|
||||
|
||||
********************************************************************************
|
||||
================================================================================
|
||||
|
||||
Super 9 Sensory Chess Challenger (SU9/DS9)
|
||||
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.
|
||||
|
||||
********************************************************************************
|
||||
================================================================================
|
||||
|
||||
Reversi Sensory Challenger (RSC)
|
||||
The 1st version came out in 1980, a program revision was released in 1981.
|
||||
|
@ -4,33 +4,33 @@
|
||||
/*******************************************************************************
|
||||
|
||||
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:
|
||||
- 8KB RAM(MS6264L-10), 2*32KB ROM(27C256)
|
||||
- PCB label: 510.1130A01
|
||||
- WDC W65C02P-6 CPU, 6MHz XTAL
|
||||
- 8KB RAM(MS6264L-10), 2*32KB ROM(27C256)
|
||||
- 4-digit LCD panel
|
||||
- PCB label 510.1130A01
|
||||
|
||||
Designer 2000 Display (model 6105): same hardware, no bookrom, 3MHz
|
||||
|
||||
********************************************************************************
|
||||
================================================================================
|
||||
|
||||
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
|
||||
- 80KB RAM(2*KM6264AL-10, 2*KM62256AP-10), 64KB ROM(2*WSI 27C256L-12)
|
||||
- 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
|
||||
for obfuscation. I/O is nearly the same as Designer Display on 6502 hardware.
|
||||
|
||||
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
|
||||
- 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.
|
||||
|
||||
*******************************************************************************/
|
||||
|
@ -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
|
||||
Right to overclock maincpu.
|
||||
|
||||
********************************************************************************
|
||||
================================================================================
|
||||
|
||||
Excel 68000 (model 6094) overview:
|
||||
- 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.
|
||||
To start, hold New Game or Clear.
|
||||
|
||||
********************************************************************************
|
||||
================================================================================
|
||||
|
||||
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
|
||||
604000-607FFF: 16KB EEPROM
|
||||
|
||||
********************************************************************************
|
||||
================================================================================
|
||||
|
||||
Elite Avant Garde 2325 (EAG, model 6117)
|
||||
----------------------------------------
|
||||
@ -181,7 +181,7 @@ V1x Memory map:
|
||||
280000-37FFFF: hashtable SRAM
|
||||
B0000x-xxxxxx: see V7, -800000
|
||||
|
||||
********************************************************************************
|
||||
================================================================================
|
||||
|
||||
Elite Premiere (model 6131)
|
||||
---------------------------
|
||||
|
@ -6,7 +6,7 @@
|
||||
Fidelity Eldorado Chess Challenger (model 6119)
|
||||
|
||||
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
|
||||
- buzzer, 16 leds, 8*8 chessboard buttons
|
||||
|
||||
|
@ -6,12 +6,12 @@
|
||||
Fidelity Elegance Chess Challenger (AS12/6085)
|
||||
|
||||
Hardware notes (AS12):
|
||||
- PCB label 510-1084B01
|
||||
- PCB label: 510-1084B01
|
||||
- R65C02P3 @ 3/3.57MHz (apparently the first few had a 3MHz CPU)
|
||||
- 2*8KB ROM + 1*4KB ROM, 2*2KB RAM(HM6116+TMM2016)
|
||||
|
||||
Hardware notes (6085):
|
||||
- PCB label 510-1084B01
|
||||
- PCB label: 510-1084B01
|
||||
- R65C02P4 @ 4MHz
|
||||
- 3*8KB ROM(TMM2764), 2*2KB RAM(HM6116+TMM2016)
|
||||
|
||||
|
@ -14,10 +14,10 @@ BTANB:
|
||||
To resolve this, hold the Game Control button while booting to clear nvram.
|
||||
The ROM dump was verified from 2 chesscomputers.
|
||||
|
||||
********************************************************************************
|
||||
================================================================================
|
||||
|
||||
Elite A/S Challenger (EAS)
|
||||
---------------------------------
|
||||
--------------------------
|
||||
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
|
||||
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) )
|
||||
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_LOAD("el2100_2.ic5", 0xc000, 0x2000, CRC(76fec42f) SHA1(34660edb8458919fd179e93fdab3fe428a6625d0) )
|
||||
ROM_LOAD("el2100_3.ic4", 0xe000, 0x2000, CRC(2079a506) SHA1(a7bb83138c7b6eff6ea96702d453a214697f4890) )
|
||||
ROM_LOAD("2100_c_black.ic5", 0xc000, 0x2000, CRC(454eb839) SHA1(83d206464c194b022d43913b5f4092a8201f36b9) )
|
||||
ROM_LOAD("2100_c_green.ic4", 0xe000, 0x2000, CRC(f1f76a63) SHA1(337b4572b743d383c6a12c360875d37682de3647) )
|
||||
|
||||
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
|
||||
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) )
|
||||
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_LOAD("2100_c_black.ic5", 0xc000, 0x2000, CRC(454eb839) SHA1(83d206464c194b022d43913b5f4092a8201f36b9) )
|
||||
ROM_LOAD("2100_c_green.ic4", 0xe000, 0x2000, CRC(f1f76a63) SHA1(337b4572b743d383c6a12c360875d37682de3647) )
|
||||
ROM_LOAD("el2100_2.ic5", 0xc000, 0x2000, CRC(76fec42f) SHA1(34660edb8458919fd179e93fdab3fe428a6625d0) )
|
||||
ROM_LOAD("el2100_3.ic4", 0xe000, 0x2000, CRC(2079a506) SHA1(a7bb83138c7b6eff6ea96702d453a214697f4890) )
|
||||
|
||||
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
|
||||
ROM_DEFAULT_BIOS("en")
|
||||
|
@ -7,24 +7,100 @@ Fidelity Excellence series hardware
|
||||
(for Excel 68000, see eag68k.cpp)
|
||||
|
||||
TODO:
|
||||
- granits gives error beeps at start, need to press clear to play.
|
||||
Note that this also happens on a real 6080 PCB with this ROM, granits is a modified SC12 PCB though.
|
||||
The problem goes away if RAM stays powered-on, but PCB has no indication of NVRAM.
|
||||
- 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
|
||||
- verify if Designer 2100 CPU is 5MHz or 6MHz
|
||||
- granits chessboard buttons seem too sensitive (detects input on falling edge if
|
||||
held too long), probably BTANB?
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
================================================================================
|
||||
|
||||
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)
|
||||
----------------
|
||||
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
|
||||
Speech: TSI S14001A, 32 KB ROM: AMI 101-1081A01(IC2)
|
||||
DIP Switches set ROM A13 and ROM A14, on the side of the board
|
||||
Hardware notes:
|
||||
|
||||
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 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
|
||||
- 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"
|
||||
@ -143,11 +185,11 @@ Designer 2100 (model 6103): exactly same, but running at 5MHz
|
||||
#include "speaker.h"
|
||||
|
||||
// internal artwork
|
||||
#include "fidel_des.lh"
|
||||
#include "fidel_ex.lh"
|
||||
#include "fidel_exb.lh"
|
||||
#include "fidel_exd.lh"
|
||||
#include "fidel_exv.lh"
|
||||
#include "granits.lh"
|
||||
|
||||
|
||||
namespace {
|
||||
@ -166,6 +208,7 @@ public:
|
||||
{ }
|
||||
|
||||
void init_fexcelv();
|
||||
void init_granits() { m_invert = 0xff; }
|
||||
|
||||
// machine configs
|
||||
void fexcel(machine_config &config);
|
||||
@ -175,10 +218,9 @@ public:
|
||||
void fexcelv(machine_config &config);
|
||||
void fexcelp(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(fexcelp_change_cpu_freq);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
@ -192,6 +234,7 @@ private:
|
||||
optional_device<s14001a_device> m_speech;
|
||||
optional_ioport_array<3> m_inputs;
|
||||
|
||||
u8 m_invert = 0;
|
||||
u8 m_select = 0;
|
||||
u8 m_7seg_data = 0;
|
||||
u8 m_speech_data = 0;
|
||||
@ -216,50 +259,17 @@ void excel_state::machine_start()
|
||||
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
|
||||
*******************************************************************************/
|
||||
|
||||
// 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
|
||||
|
||||
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)
|
||||
// read chessboard sensors
|
||||
if (sel < 8)
|
||||
data = m_board->read_file(sel);
|
||||
data = m_board->read_file(sel) ^ m_invert;
|
||||
|
||||
// read button panel
|
||||
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
|
||||
@ -378,11 +426,25 @@ static INPUT_PORTS_START( fexcel )
|
||||
PORT_CONFSETTING( 0x00, DEF_STR( Normal ) )
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( fdes )
|
||||
static INPUT_PORTS_START( fexcelp )
|
||||
PORT_INCLUDE( fexcel )
|
||||
|
||||
PORT_MODIFY("IN.2")
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED) // no low-voltage detection circuit (still works in software though)
|
||||
PORT_START("CPU")
|
||||
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
|
||||
|
||||
|
||||
@ -433,6 +495,24 @@ void excel_state::fexcelb(machine_config &config)
|
||||
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)
|
||||
{
|
||||
fexcel(config);
|
||||
@ -447,43 +527,8 @@ void excel_state::granits(machine_config &config)
|
||||
fexcelp(config);
|
||||
|
||||
// basic machine hardware
|
||||
m_maincpu->set_clock(8_MHz_XTAL/2); // R65C02P4
|
||||
}
|
||||
|
||||
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);
|
||||
m_maincpu->set_clock(8_MHz_XTAL); // R65C02P4
|
||||
config.set_default_layout(layout_granits);
|
||||
}
|
||||
|
||||
|
||||
@ -512,12 +557,12 @@ ROM_END
|
||||
|
||||
ROM_START( fexcel12 ) // model EP12, PCB label 510-1099A01
|
||||
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_START( fexcel124 ) // model EP12, PCB label 510-1099A01
|
||||
ROM_START( fexcel12a ) // model EP12, PCB label 510-1099A01
|
||||
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_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_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_START( fexcelpb ) // model 6083, PCB label 510-1099B01
|
||||
ROM_START( fexcelpa ) // model 6083, PCB label 510-1099B01
|
||||
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_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_LOAD("101-1077a01.ic5", 0x8000, 0x8000, CRC(62006320) SHA1(1d6370973dbae42c54639b261cc81e32cdfc1d5d) ) // AMI, same label as fexcelp
|
||||
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_LOAD("granit_s-4.ic15", 0x8000, 0x8000, CRC(274d6aff) SHA1(c8d943b2f15422ac62f539b568f5509cbce568a3) )
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
@ -561,14 +597,13 @@ ROM_END
|
||||
|
||||
// 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, 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( 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( 1985, fexcel124, fexcel, 0, fexcel4, fexcel, excel_state, empty_init, "Fidelity International", "The Excellence (model EP12, set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1987, fexcelv, fexcel, 0, fexcelv, fexcelv, excel_state, init_fexcelv, "Fidelity International", "Voice Excellence", 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( 1986, fexcelp, 0, 0, fexcelp, fexcel, excel_state, empty_init, "Fidelity International", "The Par Excellence", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1986, fexcelpb, fexcelp, 0, fexcelp, fexcel, excel_state, empty_init, "Fidelity International", "The Par Excellence (rev. B)", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1986, granits, fexcelp, 0, granits, fexcel, excel_state, empty_init, "hack (Remote Control Systems)", "Granit S", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1988, fdes2000, fexcelp, 0, fdes2000, fdes, excel_state, empty_init, "Fidelity International", "Designer 2000", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1988, fdes2100, fexcelp, 0, fdes2100, fdes, excel_state, empty_init, "Fidelity International", "Designer 2100", MACHINE_SUPPORTS_SAVE )
|
||||
SYST( 1986, fexcelp, 0, 0, fexcelp, fexcelp, excel_state, empty_init, "Fidelity International", "The Par Excellence (set 1)", 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, fscc12, 0, granits, granits, excel_state, init_granits, "hack (Remote Control Systems)", "Granit S", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -20,7 +20,7 @@ spawn block and place it anywhere on a free spot at the designated box at the
|
||||
edge of the chessboard.
|
||||
|
||||
Hardware notes:
|
||||
- PCB label 510.1128A01
|
||||
- PCB label: 510.1128A01
|
||||
- R65C02P4, XTAL marked 4.915200
|
||||
- 2*32KB ROM 27C256-15, 8KB RAM MS6264L-10
|
||||
- LCD driver, display panel for digits
|
||||
|
@ -24,7 +24,7 @@ Known MCU ROM serials:
|
||||
TODO:
|
||||
- is The Classic model CC8 a different ROM? and what about model 6079D?
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
================================================================================
|
||||
|
||||
SC6 hardware notes:
|
||||
- PCB label: 510-1045B01
|
||||
@ -39,7 +39,7 @@ SC6 released modules, * denotes not dumped yet:
|
||||
|
||||
SC6 program is contained in BO6 and CG6.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
================================================================================
|
||||
|
||||
MSC hardware notes:
|
||||
- PCB label: 510-1044B01
|
||||
@ -56,7 +56,7 @@ Silver Bullet hardware notes:
|
||||
- TMP80C50AP-6-9311 MCU, 4KB internal ROM, 6MHz XTAL
|
||||
- buzzer, 16 leds, 8*8 chessboard buttons, module slot (takes MSC modules)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
================================================================================
|
||||
|
||||
The Classic (model CC8) hardware notes:
|
||||
- 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.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
================================================================================
|
||||
|
||||
Gambit Voice hardware notes:
|
||||
- TMP80C50AP-6-9337 MCU, 4KB internal ROM, 6MHz XTAL
|
||||
|
@ -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
|
||||
with magnet sensors and came with CB9 and CB16.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
================================================================================
|
||||
|
||||
Starting with SC9, Fidelity added a cartridge slot to their chess computers, meant for
|
||||
extra book opening databases and recorded games.
|
||||
|
@ -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
|
||||
MAME's perspective there's nothing to emulate on top of UVC.
|
||||
|
||||
********************************************************************************
|
||||
================================================================================
|
||||
|
||||
RE notes by Kevin Horton
|
||||
|
||||
|
@ -7,7 +7,9 @@ authors:hap
|
||||
|
||||
<!-- 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="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="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>
|
||||
@ -28,19 +30,25 @@ authors:hap
|
||||
</disk>
|
||||
</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_2"><text string="2" align="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_4"><text string="4" align="2"><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_6"><text string="6" align="2"><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_8"><text string="8" 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"><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"><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"><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"><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_10"><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_12"><text string="12" 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_l2"><text string="10" 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_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_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_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_lc"><text string="MATE"><color red="0.01" green="0.01" blue="0.01" /></text></element>
|
||||
<element name="text_ld"><text string="WHITE"><color red="0.01" green="0.01" blue="0.01" /></text></element>
|
||||
<element name="text_le"><text string="BLACK"><color red="0.01" green="0.01" blue="0.01" /></text></element>
|
||||
<element name="text_lf"><text string="STALEMATE"><color red="0.01" green="0.01" blue="0.01" /></text></element>
|
||||
<element name="text_lg"><text string="DRAW"><color red="0.01" green="0.01" blue="0.01" /></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_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.81" green="0.8" blue="0.79" /></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.81" green="0.8" blue="0.79" /></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.81" green="0.8" blue="0.79" /></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_t82"><text string="GAME"><color red="0.15" green="0.15" blue="0.15" /></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_illegal"><text string="ILLEGAL"><color red="0.01" green="0.01" blue="0.01" /></text></element>
|
||||
<element name="text_check"><text string="CHECK"><color red="0.01" green="0.01" blue="0.01" /></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_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_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_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_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_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_re"><text string="RE"><color red="0.15" green="0.15" blue="0.15" /></text></element>
|
||||
<element name="text_cl"><text string="CL"><color red="0.15" green="0.15" blue="0.15" /></text></element>
|
||||
<element name="text_pb"><text string="PB"><color red="0.15" green="0.15" blue="0.15" /></text></element>
|
||||
<element name="text_pv"><text string="PV"><color red="0.15" green="0.15" blue="0.15" /></text></element>
|
||||
<element name="text_lv"><text string="LV"><color red="0.15" green="0.15" blue="0.15" /></text></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 -->
|
||||
@ -340,112 +349,133 @@ authors:hap
|
||||
<!-- build screen -->
|
||||
|
||||
<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>
|
||||
<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 -->
|
||||
<element ref="text_8"><bounds x="0.2" y="7" width="2" height="2" /></element>
|
||||
<element ref="text_7"><bounds x="0.2" y="17" width="2" height="2" /></element>
|
||||
<element ref="text_6"><bounds x="0.2" y="27" width="2" height="2" /></element>
|
||||
<element ref="text_5"><bounds x="0.2" y="37" width="2" height="2" /></element>
|
||||
<element ref="text_4"><bounds x="0.2" y="47" width="2" height="2" /></element>
|
||||
<element ref="text_3"><bounds x="0.2" y="57" width="2" height="2" /></element>
|
||||
<element ref="text_2"><bounds x="0.2" y="67" width="2" height="2" /></element>
|
||||
<element ref="text_1"><bounds x="0.2" y="77" 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="19" 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="39" 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="59" 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="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_b"><bounds x="17.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_d"><bounds x="37.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_f"><bounds x="57.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_h"><bounds x="77.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="15.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="35.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="55.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="75.5" y="84.5" width="2" height="2" /></element>
|
||||
|
||||
<!-- left side labels -->
|
||||
<element ref="text_9"><bounds x="-6.3" y="12" width="3" height="2" /></element>
|
||||
<element ref="text_10"><bounds x="-6.3" y="22" width="3" height="2" /></element>
|
||||
<element ref="text_11"><bounds x="-6.3" y="32" width="3" height="2" /></element>
|
||||
<element ref="text_12"><bounds x="-6.3" y="42" width="3" height="2" /></element>
|
||||
<element ref="text_l1"><bounds x="-5.8" y="12" width="5" height="2" /></element>
|
||||
<element ref="text_l2"><bounds x="-5.8" y="22" width="5" height="2" /></element>
|
||||
<element ref="text_l3"><bounds x="-5.8" y="32" width="5" 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 -->
|
||||
<element ref="text_lb"><bounds x="13.5" y="89.9" width="10" height="2" /></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_le"><bounds x="43.5" y="89.9" width="10" height="2" /></element>
|
||||
<element ref="text_lh"><bounds x="73.5" y="89.9" width="10" height="2" /></element>
|
||||
<element ref="text_lg"><bounds x="62.5" y="89.9" width="12" height="2" /></element>
|
||||
<element ref="text_lf"><bounds x="53.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_lb"><bounds x="13.5" y="89.2" width="10" height="2" /></element>
|
||||
<element ref="text_lc"><bounds x="23.5" y="89.2" width="10" height="2" /></element>
|
||||
<element ref="text_ld"><bounds x="33.5" y="89.2" width="10" height="2" /></element>
|
||||
<element ref="text_le"><bounds x="43.5" y="89.2" 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 -->
|
||||
<element name="0.7" ref="led"><bounds x="-1.8" 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.5" ref="led"><bounds x="-1.8" 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.3" ref="led"><bounds x="-1.8" 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.1" ref="led"><bounds x="-1.8" 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.7" ref="led"><bounds x="0" y="7.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="0" y="27.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="0" y="47.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="0" y="67.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.1" ref="led"><bounds x="17.75" y="87.5" 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.3" ref="led"><bounds x="37.75" y="87.5" 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.5" ref="led"><bounds x="57.75" y="87.5" 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.7" ref="led"><bounds x="77.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="85" 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="85" 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="85" 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="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 -->
|
||||
<element ref="disk_black"><bounds x="87" y="5" 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="25" 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="45" 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="65" 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="3.1" 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="24.3" 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="42.9" 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="61.5" 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="15.7" 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="35.7" 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="55.7" 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="75.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="13.1" 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="34.3" 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="52.9" 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="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_t82"><bounds x="87" y="7.95" width="6" height="1.25" /></element>
|
||||
<element ref="text_t7"><bounds x="87" y="17.325" width="6" height="1.25" /></element>
|
||||
<element ref="text_t6"><bounds x="87" y="27.325" width="6" height="1.25" /></element>
|
||||
<element ref="text_t5"><bounds x="87" y="37.325" width="6" height="1.25" /></element>
|
||||
<element ref="text_t41"><bounds x="87" y="46.7" width="6" height="1.25" /></element>
|
||||
<element ref="text_t42"><bounds x="87" y="47.95" width="6" height="1.25" /></element>
|
||||
<element ref="text_t3"><bounds x="87" y="57.325" width="6" height="1.25" /></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>
|
||||
<element ref="text_re"><bounds x="87.7" y="4.9" width="4.6" height="2.4" /></element>
|
||||
<element ref="text_cl"><bounds x="87.7" y="14.2" width="4.6" height="2.4" /></element>
|
||||
<element ref="text_pb"><bounds x="87.7" y="26.1" width="4.6" height="2.4" /></element>
|
||||
<element ref="text_pv"><bounds x="87.7" y="35.4" width="4.6" height="2.4" /></element>
|
||||
<element ref="text_lv"><bounds x="87.7" y="44.7" width="4.6" height="2.4" /></element>
|
||||
<element ref="text_tb"><bounds x="87.7" y="54.0" width="4.6" height="2.4" /></element>
|
||||
<element ref="text_dm"><bounds x="87.7" y="63.3" width="4.6" height="2.4" /></element>
|
||||
<element ref="text_rv"><bounds x="87.7" y="72.6" width="4.6" height="2.4" /></element>
|
||||
|
||||
<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" />
|
||||
<element ref="text_p~i~" blend="multiply"><bounds x="88.5" y="~y~" width="3.0" height="3.0" /></element>
|
||||
</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="0x40"><bounds x="87" y="15" 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="0x10"><bounds x="87" y="35" 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="0x04"><bounds x="87" y="55" 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="0x01"><bounds x="87" y="75" 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="0x01"><bounds x="87" y="12.4" 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="0x20"><bounds x="87" y="33.6" 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="0x08"><bounds x="87" y="52.2" 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="0x02"><bounds x="87" y="70.8" width="6" height="6" /><color alpha="0.3" /></element>
|
||||
|
||||
</view>
|
||||
</mamelayout>
|
@ -18084,15 +18084,13 @@ fpresbu //
|
||||
fpresgla //
|
||||
|
||||
@source:fidelity/excel.cpp
|
||||
fdes2000 //
|
||||
fdes2100 //
|
||||
fexcel //
|
||||
fexcel12 //
|
||||
fexcel124 //
|
||||
fexcel12a //
|
||||
fexcela //
|
||||
fexceld //
|
||||
fexcelp //
|
||||
fexcelpb //
|
||||
fexcelpa //
|
||||
fexcelv //
|
||||
granits // RCS
|
||||
|
||||
|
@ -23,6 +23,7 @@ BTANB:
|
||||
================================================================================
|
||||
|
||||
Saitek GK 2000 family
|
||||
---------------------
|
||||
|
||||
Hardware notes:
|
||||
|
||||
@ -47,6 +48,7 @@ Travel Champion 2080 and Tandy Mega 2050X are 14MHz instead of 20MHz.
|
||||
================================================================================
|
||||
|
||||
Saitek Centurion family
|
||||
-----------------------
|
||||
|
||||
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,
|
||||
|
Loading…
Reference in New Issue
Block a user