From f9abb4e80520cae487603c7180dd9eda84dba31d Mon Sep 17 00:00:00 2001 From: hap Date: Thu, 15 Aug 2024 12:24:01 +0200 Subject: 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 --- src/devices/cpu/mcs48/mcs48.h | 8 +- src/mame/fidelity/card.cpp | 4 +- src/mame/fidelity/cc1.cpp | 2 +- src/mame/fidelity/cc10.cpp | 4 +- src/mame/fidelity/cc7.cpp | 6 +- src/mame/fidelity/chesster.cpp | 8 +- src/mame/fidelity/csc.cpp | 8 +- src/mame/fidelity/desdis.cpp | 18 +- src/mame/fidelity/eag68k.cpp | 8 +- src/mame/fidelity/eldorado.cpp | 2 +- src/mame/fidelity/elegance.cpp | 4 +- src/mame/fidelity/elite.cpp | 20 +- src/mame/fidelity/excel.cpp | 337 ++++++++++++++++------------- src/mame/fidelity/phantom.cpp | 2 +- src/mame/fidelity/sc6.cpp | 8 +- src/mame/fidelity/sc9.cpp | 2 +- src/mame/fidelity/vcc.cpp | 2 +- src/mame/layout/fidel_des.lay | 451 -------------------------------------- src/mame/layout/granits.lay | 481 +++++++++++++++++++++++++++++++++++++++++ src/mame/mame.lst | 6 +- src/mame/saitek/gk2000.cpp | 2 + 21 files changed, 723 insertions(+), 660 deletions(-) delete mode 100644 src/mame/layout/fidel_des.lay create mode 100644 src/mame/layout/granits.lay diff --git a/src/devices/cpu/mcs48/mcs48.h b/src/devices/cpu/mcs48/mcs48.h index fb3724aa167..8cb63aafb41 100644 --- a/src/devices/cpu/mcs48/mcs48.h +++ b/src/devices/cpu/mcs48/mcs48.h @@ -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 void set_t0_clk_cb(T &&... args) { m_t0_clk_func.set(std::forward(args)...); } u32 get_ale_clock() { return m_clock / 3 / 5; } @@ -167,7 +163,6 @@ protected: // device_disasm_interface overrides virtual std::unique_ptr 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); } diff --git a/src/mame/fidelity/card.cpp b/src/mame/fidelity/card.cpp index 6ad75bea0b0..85ef5fe7ad4 100644 --- a/src/mame/fidelity/card.cpp +++ b/src/mame/fidelity/card.cpp @@ -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. diff --git a/src/mame/fidelity/cc1.cpp b/src/mame/fidelity/cc1.cpp index eea3f9bddbf..dcb2be5e8d5 100644 --- a/src/mame/fidelity/cc1.cpp +++ b/src/mame/fidelity/cc1.cpp @@ -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) diff --git a/src/mame/fidelity/cc10.cpp b/src/mame/fidelity/cc10.cpp index 02ece7b8ffa..0dab4942982 100644 --- a/src/mame/fidelity/cc10.cpp +++ b/src/mame/fidelity/cc10.cpp @@ -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). diff --git a/src/mame/fidelity/cc7.cpp b/src/mame/fidelity/cc7.cpp index 5279a06776f..91f881df74a 100644 --- a/src/mame/fidelity/cc7.cpp +++ b/src/mame/fidelity/cc7.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 *******************************************************************************/ diff --git a/src/mame/fidelity/chesster.cpp b/src/mame/fidelity/chesster.cpp index 1647d46821d..bafe57d1bd3 100644 --- a/src/mame/fidelity/chesster.cpp +++ b/src/mame/fidelity/chesster.cpp @@ -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 diff --git a/src/mame/fidelity/csc.cpp b/src/mame/fidelity/csc.cpp index 725fdb7c68e..a69c7e249fb 100644 --- a/src/mame/fidelity/csc.cpp +++ b/src/mame/fidelity/csc.cpp @@ -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. diff --git a/src/mame/fidelity/desdis.cpp b/src/mame/fidelity/desdis.cpp index a1734289930..9c2b4eb2dfc 100644 --- a/src/mame/fidelity/desdis.cpp +++ b/src/mame/fidelity/desdis.cpp @@ -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. *******************************************************************************/ diff --git a/src/mame/fidelity/eag68k.cpp b/src/mame/fidelity/eag68k.cpp index e3599e00592..5d672e352e6 100644 --- a/src/mame/fidelity/eag68k.cpp +++ b/src/mame/fidelity/eag68k.cpp @@ -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) --------------------------- diff --git a/src/mame/fidelity/eldorado.cpp b/src/mame/fidelity/eldorado.cpp index 09a0d45a3d2..72d58622292 100644 --- a/src/mame/fidelity/eldorado.cpp +++ b/src/mame/fidelity/eldorado.cpp @@ -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 diff --git a/src/mame/fidelity/elegance.cpp b/src/mame/fidelity/elegance.cpp index 281259dff0e..66b3257eec9 100644 --- a/src/mame/fidelity/elegance.cpp +++ b/src/mame/fidelity/elegance.cpp @@ -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) diff --git a/src/mame/fidelity/elite.cpp b/src/mame/fidelity/elite.cpp index 26689a19ab9..3ae913159a3 100644 --- a/src/mame/fidelity/elite.cpp +++ b/src/mame/fidelity/elite.cpp @@ -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") diff --git a/src/mame/fidelity/excel.cpp b/src/mame/fidelity/excel.cpp index 45be53872eb..d87e7613ffd 100644 --- a/src/mame/fidelity/excel.cpp +++ b/src/mame/fidelity/excel.cpp @@ -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 +----------------------------- + +Hardware notes: -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 +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 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,49 +259,16 @@ void excel_state::machine_start() save_item(NAME(m_speech_bank)); } - - -/******************************************************************************* - 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 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) +INPUT_CHANGED_MEMBER(excel_state::fexcelp_change_cpu_freq) { - // tied to speech ROM highest bits - m_speech_bank = (m_speech_bank & 1) | (newval << 1 & 6); - m_speech->set_rom_bank(m_speech_bank); + m_maincpu->set_unscaled_clock((newval & 1) ? 5_MHz_XTAL : 3_MHz_XTAL); } -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)); -} +/******************************************************************************* + I/O +*******************************************************************************/ // TTL @@ -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 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,57 +495,40 @@ void excel_state::fexcelb(machine_config &config) config.set_default_layout(layout_fidel_exb); } -void excel_state::fexcelp(machine_config &config) +void excel_state::fexceld(machine_config &config) { - fexcel(config); + fexcelb(config); - // basic machine hardware - R65C02(config.replace(), m_maincpu, 5_MHz_XTAL); // R65C02P4 - m_maincpu->set_addrmap(AS_PROGRAM, &excel_state::fexcelb_map); + config.set_default_layout(layout_fidel_exd); } -void excel_state::granits(machine_config &config) +void excel_state::fexcelv(machine_config &config) { - fexcelp(config); + fexcelb(config); - // basic machine hardware - m_maincpu->set_clock(8_MHz_XTAL/2); // R65C02P4 + 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::fdes2100(machine_config &config) +void excel_state::fexcelp(machine_config &config) { fexcel(config); // basic machine hardware - M65C02(config.replace(), m_maincpu, 5_MHz_XTAL); // WDC 65C02 + R65C02(config.replace(), m_maincpu, 5_MHz_XTAL); // R65C02P4 m_maincpu->set_addrmap(AS_PROGRAM, &excel_state::fexcelb_map); - - config.set_default_layout(layout_fidel_des); } -void excel_state::fdes2000(machine_config &config) +void excel_state::granits(machine_config &config) { - fdes2100(config); + fexcelp(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 ) diff --git a/src/mame/fidelity/phantom.cpp b/src/mame/fidelity/phantom.cpp index 6d0b8fcd603..455ee0b360f 100644 --- a/src/mame/fidelity/phantom.cpp +++ b/src/mame/fidelity/phantom.cpp @@ -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 diff --git a/src/mame/fidelity/sc6.cpp b/src/mame/fidelity/sc6.cpp index 3ed37ec7a7b..ec08ebdb7e0 100644 --- a/src/mame/fidelity/sc6.cpp +++ b/src/mame/fidelity/sc6.cpp @@ -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 diff --git a/src/mame/fidelity/sc9.cpp b/src/mame/fidelity/sc9.cpp index 053c2638961..6541125236b 100644 --- a/src/mame/fidelity/sc9.cpp +++ b/src/mame/fidelity/sc9.cpp @@ -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. diff --git a/src/mame/fidelity/vcc.cpp b/src/mame/fidelity/vcc.cpp index 60079041e55..5b7be0767cc 100644 --- a/src/mame/fidelity/vcc.cpp +++ b/src/mame/fidelity/vcc.cpp @@ -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 diff --git a/src/mame/layout/fidel_des.lay b/src/mame/layout/fidel_des.lay deleted file mode 100644 index 16eb5e85eec..00000000000 --- a/src/mame/layout/fidel_des.lay +++ /dev/null @@ -1,451 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/mame/layout/granits.lay b/src/mame/layout/granits.lay new file mode 100644 index 00000000000..23c08879e40 --- /dev/null +++ b/src/mame/layout/granits.lay @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 1286d28df26..fc82166c3fb 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -18084,15 +18084,13 @@ fpresbu // fpresgla // @source:fidelity/excel.cpp -fdes2000 // -fdes2100 // fexcel // fexcel12 // -fexcel124 // +fexcel12a // fexcela // fexceld // fexcelp // -fexcelpb // +fexcelpa // fexcelv // granits // RCS diff --git a/src/mame/saitek/gk2000.cpp b/src/mame/saitek/gk2000.cpp index a0306ecf555..1de39e86d12 100644 --- a/src/mame/saitek/gk2000.cpp +++ b/src/mame/saitek/gk2000.cpp @@ -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, -- cgit v1.2.3