New working clone added

----------
Boris (rev. 01) [Sean Riddle]
This commit is contained in:
hap 2019-04-04 14:31:31 +02:00
parent d0fd2c4d26
commit d9d9aefdf1
5 changed files with 25 additions and 9 deletions

View File

@ -5,8 +5,8 @@
Applied Concepts Boris (electronic chess computer) Applied Concepts Boris (electronic chess computer)
- MK3850N-3 CPU @ 2 MHz, MK3853N memory interface - MK3850N-3 CPU @ 2 MHz from XTAL, MK3853N memory interface
- 256 bytes RAM(2*2112), AMI 2KB ROM + AMI 1KB(?*) ROM *: less than 512 bytes used - 256 bytes RAM(2*2112), 2*AMI 2KB ROM (2nd ROM only half used)
- 8-digit 16seg led panel - 8-digit 16seg led panel
When it was first released, it was in kit form. An extensive assembly manual with 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 There's also an updated revision, identifiable by the startup message "Boris awaits
your move"(same as Boris Master) instead of "Boris plays black". 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" #include "emu.h"
@ -219,7 +223,7 @@ INPUT_PORTS_END
void boris_state::boris(machine_config &config) void boris_state::boris(machine_config &config)
{ {
/* basic machine hardware */ /* 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_PROGRAM, &boris_state::main_map);
m_maincpu->set_addrmap(AS_IO, &boris_state::main_io); m_maincpu->set_addrmap(AS_IO, &boris_state::main_io);
m_maincpu->set_irq_acknowledge_callback("smi", FUNC(f3853_device::int_acknowledge)); m_maincpu->set_irq_acknowledge_callback("smi", FUNC(f3853_device::int_acknowledge));
@ -241,9 +245,15 @@ void boris_state::boris(machine_config &config)
******************************************************************************/ ******************************************************************************/
ROM_START( boris ) 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_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD("007-7020-00_c10502", 0x0000, 0x0800, CRC(18182870) SHA1(cb717a4b5269b04b0d7ae61aaf4a8f6a019626a5) ) 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 ROM_END
} // anonymous namespace } // anonymous namespace
@ -255,4 +265,5 @@ ROM_END
******************************************************************************/ ******************************************************************************/
// YEAR NAME PARENT CMP MACHINE INPUT CLASS INIT COMPANY, FULLNAME, FLAGS // 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 ) 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"

View File

@ -248,6 +248,6 @@ ROM_END
// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS // 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, 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 ) 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 )

View File

@ -69,11 +69,12 @@ protected:
// dynamic cpu divider // dynamic cpu divider
void div_trampoline_w(offs_t offset, u8 data); void div_trampoline_w(offs_t offset, u8 data);
u8 div_trampoline_r(offs_t offset); 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_trampoline(address_map &map);
void div_refresh(ioport_value val = 0xff); void div_refresh(ioport_value val = 0xff);
u16 m_div_status; u16 m_div_status;
ioport_value m_div_config; ioport_value m_div_config;
double m_div_scale;
emu_timer *m_div_timer; emu_timer *m_div_timer;
virtual void machine_start() override; virtual void machine_start() override;

View File

@ -51,11 +51,13 @@ void fidelbase_state::machine_start()
// zerofill/register for savestates // zerofill/register for savestates
m_speech_data = 0; m_speech_data = 0;
m_speech_bank = 0; m_speech_bank = 0;
m_div_config = 0;
save_item(NAME(m_speech_data)); save_item(NAME(m_speech_data));
save_item(NAME(m_speech_bank)); save_item(NAME(m_speech_bank));
save_item(NAME(m_div_status)); save_item(NAME(m_div_status));
save_item(NAME(m_div_config)); save_item(NAME(m_div_config));
save_item(NAME(m_div_scale));
// dummy timer for cpu divider // dummy timer for cpu divider
m_div_timer = machine().scheduler().timer_alloc(timer_expired_delegate(), this); 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) // when a13/a14 is high, XTAL goes through divider(s)
// (depending on factory-set jumper, either one or two 7474) // (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; m_div_status = offset;
} }
@ -152,6 +154,7 @@ void fidelbase_state::div_refresh(ioport_value val)
m_maincpu->set_clock_scale(1.0); m_maincpu->set_clock_scale(1.0);
m_div_status = ~0; m_div_status = ~0;
m_div_config = val; 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 // stop high frequency background timer if cpu divider is disabled
attotime period = (val) ? attotime::from_hz(m_maincpu->clock()) : attotime::never; attotime period = (val) ? attotime::from_hz(m_maincpu->clock()) : attotime::never;

View File

@ -874,6 +874,7 @@ sp_zigzgm //
@source:aci_boris.cpp @source:aci_boris.cpp
boris // boris //
borisa //
@source:aci_borisdpl.cpp @source:aci_borisdpl.cpp
borisdpl // borisdpl //