mirror of
https://github.com/holub/mame
synced 2025-04-24 09:20:02 +03:00
New working clone added
---------- Boris (rev. 01) [Sean Riddle]
This commit is contained in:
parent
d0fd2c4d26
commit
d9d9aefdf1
@ -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"
|
||||
|
@ -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 )
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -874,6 +874,7 @@ sp_zigzgm //
|
||||
|
||||
@source:aci_boris.cpp
|
||||
boris //
|
||||
borisa //
|
||||
|
||||
@source:aci_borisdpl.cpp
|
||||
borisdpl //
|
||||
|
Loading…
Reference in New Issue
Block a user