summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2019-04-04 14:31:31 +0200
committer hap <happppp@users.noreply.github.com>2019-04-04 14:31:49 +0200
commitd9d9aefdf103684021dce9ed5bb85b3ae64d96cf (patch)
treee1f36b1c7b22b3786250de8130094d79fb162901
parentd0fd2c4d266a148b331b3cee04a5776252e187c9 (diff)
New working clone added
---------- Boris (rev. 01) [Sean Riddle]
-rw-r--r--src/mame/drivers/aci_boris.cpp23
-rw-r--r--src/mame/drivers/fidel_cc7.cpp2
-rw-r--r--src/mame/includes/fidelbase.h3
-rw-r--r--src/mame/machine/fidelbase.cpp5
-rw-r--r--src/mame/mame.lst1
5 files changed, 25 insertions, 9 deletions
diff --git a/src/mame/drivers/aci_boris.cpp b/src/mame/drivers/aci_boris.cpp
index 55817b69224..457a9807166 100644
--- a/src/mame/drivers/aci_boris.cpp
+++ b/src/mame/drivers/aci_boris.cpp
@@ -5,8 +5,8 @@
Applied Concepts Boris (electronic chess computer)
-- MK3850N-3 CPU @ 2 MHz, MK3853N memory interface
-- 256 bytes RAM(2*2112), AMI 2KB ROM + AMI 1KB(?*) ROM *: less than 512 bytes used
+- MK3850N-3 CPU @ 2 MHz from XTAL, MK3853N memory interface
+- 256 bytes RAM(2*2112), 2*AMI 2KB ROM (2nd ROM only half used)
- 8-digit 16seg led panel
When it was first released, it was in kit form. An extensive assembly manual with
@@ -14,6 +14,10 @@ schematics was included. It was later distributed by Chafitz in pre-assembled fo
There's also an updated revision, identifiable by the startup message "Boris awaits
your move"(same as Boris Master) instead of "Boris plays black".
+Boris Master included a battery, RESET was renamed to MEMORY. 2 known versions:
+one with C10617/C10617 ROMs(same as Boris rev. 01), and one with a single 4KB
+ROM labeled 007-7027-00.
+
******************************************************************************/
#include "emu.h"
@@ -219,7 +223,7 @@ INPUT_PORTS_END
void boris_state::boris(machine_config &config)
{
/* basic machine hardware */
- F8(config, m_maincpu, 2_MHz_XTAL); // MK3850, 2MHz XTAL according to schematics
+ F8(config, m_maincpu, 2_MHz_XTAL); // MK3850
m_maincpu->set_addrmap(AS_PROGRAM, &boris_state::main_map);
m_maincpu->set_addrmap(AS_IO, &boris_state::main_io);
m_maincpu->set_irq_acknowledge_callback("smi", FUNC(f3853_device::int_acknowledge));
@@ -242,8 +246,14 @@ void boris_state::boris(machine_config &config)
ROM_START( boris )
ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD("007-7020-01_c10617", 0x0000, 0x0800, CRC(dadf1693) SHA1(ffaef7a78f07dfcec9cc6e4034d665d188748225) )
+ ROM_LOAD("007-7021-01_c10618", 0x0800, 0x0800, CRC(89b10faa) SHA1(b86cf42f93051b29f398691270e9a860b2978043) ) // identical halves
+ROM_END
+
+ROM_START( borisa )
+ ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD("007-7020-00_c10502", 0x0000, 0x0800, CRC(18182870) SHA1(cb717a4b5269b04b0d7ae61aaf4a8f6a019626a5) )
- ROM_LOAD("007-7021-00_c10503", 0x0800, 0x0400, CRC(49b77505) SHA1(474b665ee2955497f6d70878d817f1783ba1a835) )
+ ROM_LOAD("007-7021-00_c10503", 0x0800, 0x0800, CRC(4185d183) SHA1(43155493593d6f52a0f6906d4414f4eff3098c5f) ) // identical halves, less than 512 bytes used
ROM_END
} // anonymous namespace
@@ -254,5 +264,6 @@ ROM_END
Drivers
******************************************************************************/
-// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
-COMP( 1978, boris, 0, 0, boris, boris, boris_state, empty_init, "Applied Concepts", "Boris", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW | MACHINE_CLICKABLE_ARTWORK )
+// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS
+COMP( 1978, boris, 0, 0, boris, boris, boris_state, empty_init, "Applied Concepts", "Boris (rev. 01)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW | MACHINE_CLICKABLE_ARTWORK ) // "Boris awaits your move"
+COMP( 1978, borisa, boris, 0, boris, boris, boris_state, empty_init, "Applied Concepts", "Boris (rev. 00)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW | MACHINE_CLICKABLE_ARTWORK ) // "Boris plays black"
diff --git a/src/mame/drivers/fidel_cc7.cpp b/src/mame/drivers/fidel_cc7.cpp
index 40ca74b4b0f..72c90f85d4d 100644
--- a/src/mame/drivers/fidel_cc7.cpp
+++ b/src/mame/drivers/fidel_cc7.cpp
@@ -248,6 +248,6 @@ ROM_END
// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
CONS( 1979, cc7, 0, 0, bcc, bcc, bcc_state, empty_init, "Fidelity Electronics", "Chess Challenger 7 (model BCC, rev. B)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1979, cc7o, cc7, 0, bcc, bcc, bcc_state, empty_init, "Fidelity Electronics", "Chess Challenger 7 (model CC7)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1979, cc7o, cc7, 0, bcc, bcc, bcc_state, empty_init, "Fidelity Electronics", "Chess Challenger 7 (model CC7)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // 2nd revision of model CC7?
CONS( 1979, backgamc, 0, 0, bkc, bkc, bcc_state, empty_init, "Fidelity Electronics", "Backgammon Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_NO_SOUND_HW )
diff --git a/src/mame/includes/fidelbase.h b/src/mame/includes/fidelbase.h
index 938c01cb1df..93d69c75f27 100644
--- a/src/mame/includes/fidelbase.h
+++ b/src/mame/includes/fidelbase.h
@@ -69,11 +69,12 @@ protected:
// dynamic cpu divider
void div_trampoline_w(offs_t offset, u8 data);
u8 div_trampoline_r(offs_t offset);
- void div_set_cpu_freq(offs_t offset);
+ inline void div_set_cpu_freq(offs_t offset);
void div_trampoline(address_map &map);
void div_refresh(ioport_value val = 0xff);
u16 m_div_status;
ioport_value m_div_config;
+ double m_div_scale;
emu_timer *m_div_timer;
virtual void machine_start() override;
diff --git a/src/mame/machine/fidelbase.cpp b/src/mame/machine/fidelbase.cpp
index 2195dae45f0..50e7387ff74 100644
--- a/src/mame/machine/fidelbase.cpp
+++ b/src/mame/machine/fidelbase.cpp
@@ -51,11 +51,13 @@ void fidelbase_state::machine_start()
// zerofill/register for savestates
m_speech_data = 0;
m_speech_bank = 0;
+ m_div_config = 0;
save_item(NAME(m_speech_data));
save_item(NAME(m_speech_bank));
save_item(NAME(m_div_status));
save_item(NAME(m_div_config));
+ save_item(NAME(m_div_scale));
// dummy timer for cpu divider
m_div_timer = machine().scheduler().timer_alloc(timer_expired_delegate(), this);
@@ -110,7 +112,7 @@ void fidelbase_state::div_set_cpu_freq(offs_t offset)
{
// when a13/a14 is high, XTAL goes through divider(s)
// (depending on factory-set jumper, either one or two 7474)
- m_maincpu->set_clock_scale(offset ? ((m_div_config & 1) ? 0.25 : 0.5) : 1.0);
+ m_maincpu->set_clock_scale(offset ? m_div_scale : 1.0);
m_div_status = offset;
}
@@ -152,6 +154,7 @@ void fidelbase_state::div_refresh(ioport_value val)
m_maincpu->set_clock_scale(1.0);
m_div_status = ~0;
m_div_config = val;
+ m_div_scale = (m_div_config & 1) ? 0.25 : 0.5;
// stop high frequency background timer if cpu divider is disabled
attotime period = (val) ? attotime::from_hz(m_maincpu->clock()) : attotime::never;
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 1750b094c8d..3b6eddcbfda 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -874,6 +874,7 @@ sp_zigzgm //
@source:aci_boris.cpp
boris //
+borisa //
@source:aci_borisdpl.cpp
borisdpl //