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)
- 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));
@ -241,9 +245,15 @@ 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"

View File

@ -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 )

View File

@ -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;

View File

@ -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;

View File

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