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

View File

@ -37,10 +37,10 @@
- Fidelity Challenger Printer - thermal printer, MCU=D8048C243 - Fidelity Challenger Printer - thermal printer, MCU=D8048C243
Program/data cartridges, for various boards, some cross-compatible: 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) - CB9: Challenger Book Openings 1 - 8KB (label not known)
- CB16: Challenger Book Openings 2 - 8+8KB 101-1042A01,02 - 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. Board hardware descriptions below.
Detailed RE work done by Kevin 'kevtris' Horton, except where noted Detailed RE work done by Kevin 'kevtris' Horton, except where noted

View File

@ -11,7 +11,7 @@
such as Arena(in editmode). such as Arena(in editmode).
TODO: 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 class novag68k_state : public novagbase_state
{ {
public: public:
novag68k_state(const machine_config &mconfig, device_type type, const char *tag) novag68k_state(const machine_config &mconfig, device_type type, const char *tag) :
: novagbase_state(mconfig, type, tag) novagbase_state(mconfig, type, tag)
{ } { }
void diablo68k(machine_config &config); void diablo68k(machine_config &config);

View File

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