fidel/novagmcs48: shadow m_maincpu (nw)

This commit is contained in:
hap 2019-02-16 18:42:42 +01:00
parent 3f2d50c4a2
commit b05f97cc09
4 changed files with 24 additions and 18 deletions

View File

@ -45,12 +45,15 @@ class fidelmcs48_state : public fidelbase_state
{
public:
fidelmcs48_state(const machine_config &mconfig, device_type type, const char *tag) :
fidelbase_state(mconfig, type, tag)
fidelbase_state(mconfig, type, tag),
m_maincpu(*this, "maincpu")
{ }
void sc6(machine_config &config);
private:
required_device<mcs48_cpu_device> m_maincpu;
// SC6
void sc6_prepare_display();
DECLARE_WRITE8_MEMBER(sc6_mux_w);
@ -180,13 +183,13 @@ INPUT_PORTS_END
void fidelmcs48_state::sc6(machine_config &config)
{
/* basic machine hardware */
i8040_device &maincpu(I8040(config, m_maincpu, 11_MHz_XTAL));
maincpu.set_addrmap(AS_PROGRAM, &fidelmcs48_state::sc6_map);
maincpu.p2_out_cb().set(FUNC(fidelmcs48_state::sc6_mux_w));
maincpu.p1_in_cb().set(FUNC(fidelmcs48_state::sc6_input_r));
maincpu.p1_out_cb().set(FUNC(fidelmcs48_state::sc6_select_w));
maincpu.t0_in_cb().set(FUNC(fidelmcs48_state::sc6_input6_r));
maincpu.t1_in_cb().set(FUNC(fidelmcs48_state::sc6_input7_r));
I8040(config, m_maincpu, 11_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &fidelmcs48_state::sc6_map);
m_maincpu->p2_out_cb().set(FUNC(fidelmcs48_state::sc6_mux_w));
m_maincpu->p1_in_cb().set(FUNC(fidelmcs48_state::sc6_input_r));
m_maincpu->p1_out_cb().set(FUNC(fidelmcs48_state::sc6_select_w));
m_maincpu->t0_in_cb().set(FUNC(fidelmcs48_state::sc6_input6_r));
m_maincpu->t1_in_cb().set(FUNC(fidelmcs48_state::sc6_input7_r));
TIMER(config, "display_decay").configure_periodic(FUNC(fidelbase_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_fidel_sc6);

View File

@ -37,10 +37,10 @@
- Fidelity Challenger Printer - thermal printer, MCU=D8048C243
Program/data cartridges, for various boards, some cross-compatible:
- CAC: Challenger Advanced Chess - 8KB 101-1038A01
- CB9: Challenger Book Openings 1 - 8KB (label not known)
- CB16: Challenger Book Openings 2 - 8+8KB 101-1042A01,02
- others are alt. titles of these?
- *CG64: 64 Greatest Games
- *EOA-EOE: Challenger Book Openings - Chess Encyclopedia A-E (5 modules)
Board hardware descriptions below.
Detailed RE work done by Kevin 'kevtris' Horton, except where noted

View File

@ -11,7 +11,7 @@
such as Arena(in editmode).
TODO:
- RS232 port
- RS232 port (when connected, I'm only getting "New Game")
******************************************************************************
@ -43,8 +43,8 @@ Scorpio 68000 hardware is very similar, but with chessboard buttons and side led
class novag68k_state : public novagbase_state
{
public:
novag68k_state(const machine_config &mconfig, device_type type, const char *tag)
: novagbase_state(mconfig, type, tag)
novag68k_state(const machine_config &mconfig, device_type type, const char *tag) :
novagbase_state(mconfig, type, tag)
{ }
void diablo68k(machine_config &config);

View File

@ -42,7 +42,8 @@ class novagmcs48_state : public novagbase_state
{
public:
novagmcs48_state(const machine_config &mconfig, device_type type, const char *tag) :
novagbase_state(mconfig, type, tag)
novagbase_state(mconfig, type, tag),
m_maincpu(*this, "maincpu")
{ }
void presto(machine_config &config);
@ -51,6 +52,8 @@ public:
DECLARE_INPUT_CHANGED_MEMBER(octo_cpu_freq);
private:
required_device<mcs48_cpu_device> m_maincpu;
// Presto/Octo
DECLARE_WRITE8_MEMBER(presto_mux_w);
DECLARE_WRITE8_MEMBER(presto_control_w);
@ -150,10 +153,10 @@ INPUT_CHANGED_MEMBER(novagmcs48_state::octo_cpu_freq)
void novagmcs48_state::presto(machine_config &config)
{
/* basic machine hardware */
i8049_device &maincpu(I8049(config, m_maincpu, 6000000)); // LC circuit, measured 6MHz
maincpu.p1_in_cb().set(FUNC(novagmcs48_state::presto_input_r));
maincpu.p2_out_cb().set(FUNC(novagmcs48_state::presto_control_w));
maincpu.bus_out_cb().set(FUNC(novagmcs48_state::presto_mux_w));
I8049(config, m_maincpu, 6000000); // LC circuit, measured 6MHz
m_maincpu->p1_in_cb().set(FUNC(novagmcs48_state::presto_input_r));
m_maincpu->p2_out_cb().set(FUNC(novagmcs48_state::presto_control_w));
m_maincpu->bus_out_cb().set(FUNC(novagmcs48_state::presto_mux_w));
TIMER(config, "display_decay").configure_periodic(FUNC(novagmcs48_state::display_decay_tick), attotime::from_msec(1));
config.set_default_layout(layout_novag_presto);