mirror of
https://github.com/holub/mame
synced 2025-04-16 21:44:32 +03:00
exp85: fixed keyboard problem, added save-state support.
This commit is contained in:
parent
35db55e48e
commit
f608bce75f
@ -3128,7 +3128,6 @@ files {
|
|||||||
MAME_DIR .. "src/mame/drivers/elf.cpp",
|
MAME_DIR .. "src/mame/drivers/elf.cpp",
|
||||||
MAME_DIR .. "src/mame/includes/elf.h",
|
MAME_DIR .. "src/mame/includes/elf.h",
|
||||||
MAME_DIR .. "src/mame/drivers/exp85.cpp",
|
MAME_DIR .. "src/mame/drivers/exp85.cpp",
|
||||||
MAME_DIR .. "src/mame/includes/exp85.h",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
createMESSProjects(_target, _subtarget, "next")
|
createMESSProjects(_target, _subtarget, "next")
|
||||||
|
@ -30,13 +30,59 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
#include "includes/exp85.h"
|
|
||||||
|
|
||||||
#include "machine/i8155.h"
|
#include "machine/i8155.h"
|
||||||
#include "machine/i8355.h"
|
#include "machine/i8355.h"
|
||||||
#include "machine/ram.h"
|
#include "machine/ram.h"
|
||||||
#include "speaker.h"
|
#include "speaker.h"
|
||||||
|
|
||||||
|
#include "bus/rs232/rs232.h"
|
||||||
|
#include "cpu/i8085/i8085.h"
|
||||||
|
#include "imagedev/cassette.h"
|
||||||
|
#include "sound/spkrdev.h"
|
||||||
|
|
||||||
|
#define I8085A_TAG "u100"
|
||||||
|
#define I8155_TAG "u106"
|
||||||
|
#define I8355_TAG "u105"
|
||||||
|
|
||||||
|
class exp85_state : public driver_device
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
exp85_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||||
|
: driver_device(mconfig, type, tag)
|
||||||
|
, m_maincpu(*this, I8085A_TAG)
|
||||||
|
, m_rs232(*this, "rs232")
|
||||||
|
, m_cassette(*this, "cassette")
|
||||||
|
, m_speaker(*this, "speaker")
|
||||||
|
, m_rom(*this, I8085A_TAG)
|
||||||
|
, m_tape_control(0)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
void exp85(machine_config &config);
|
||||||
|
|
||||||
|
DECLARE_INPUT_CHANGED_MEMBER( trigger_reset );
|
||||||
|
DECLARE_INPUT_CHANGED_MEMBER( trigger_rst75 );
|
||||||
|
|
||||||
|
private:
|
||||||
|
required_device<i8085a_cpu_device> m_maincpu;
|
||||||
|
required_device<rs232_port_device> m_rs232;
|
||||||
|
required_device<cassette_image_device> m_cassette;
|
||||||
|
required_device<speaker_sound_device> m_speaker;
|
||||||
|
required_memory_region m_rom;
|
||||||
|
|
||||||
|
virtual void machine_start() override;
|
||||||
|
|
||||||
|
uint8_t i8355_a_r();
|
||||||
|
void i8355_a_w(uint8_t data);
|
||||||
|
DECLARE_READ_LINE_MEMBER( sid_r );
|
||||||
|
DECLARE_WRITE_LINE_MEMBER( sod_w );
|
||||||
|
|
||||||
|
/* cassette state */
|
||||||
|
bool m_tape_control;
|
||||||
|
void exp85_io(address_map &map);
|
||||||
|
void exp85_mem(address_map &map);
|
||||||
|
};
|
||||||
|
|
||||||
/* Memory Maps */
|
/* Memory Maps */
|
||||||
|
|
||||||
void exp85_state::exp85_mem(address_map &map)
|
void exp85_state::exp85_mem(address_map &map)
|
||||||
@ -72,8 +118,8 @@ INPUT_CHANGED_MEMBER( exp85_state::trigger_rst75 )
|
|||||||
static INPUT_PORTS_START( exp85 )
|
static INPUT_PORTS_START( exp85 )
|
||||||
|
|
||||||
PORT_START("SPECIAL")
|
PORT_START("SPECIAL")
|
||||||
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("R") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, exp85_state, trigger_reset, 0)
|
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("R") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, exp85_state, trigger_reset, 0)
|
||||||
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("I") PORT_CODE(KEYCODE_F2) PORT_CHANGED_MEMBER(DEVICE_SELF, exp85_state, trigger_rst75, 0)
|
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYPAD ) PORT_NAME("I") PORT_CODE(KEYCODE_F2) PORT_CHANGED_MEMBER(DEVICE_SELF, exp85_state, trigger_rst75, 0)
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
/* 8355 Interface */
|
/* 8355 Interface */
|
||||||
@ -170,6 +216,8 @@ void exp85_state::machine_start()
|
|||||||
membank("bank1")->configure_entry(0, m_rom->base() + 0xf000);
|
membank("bank1")->configure_entry(0, m_rom->base() + 0xf000);
|
||||||
membank("bank1")->configure_entry(1, m_rom->base());
|
membank("bank1")->configure_entry(1, m_rom->base());
|
||||||
membank("bank1")->set_entry(0);
|
membank("bank1")->set_entry(0);
|
||||||
|
|
||||||
|
save_item(NAME(m_tape_control));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Machine Driver */
|
/* Machine Driver */
|
||||||
@ -229,4 +277,4 @@ ROM_END
|
|||||||
|
|
||||||
/* System Drivers */
|
/* System Drivers */
|
||||||
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
|
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
|
||||||
COMP( 1979, exp85, 0, 0, exp85, exp85, exp85_state, empty_init, "Netronics", "Explorer/85", 0 )
|
COMP( 1979, exp85, 0, 0, exp85, exp85, exp85_state, empty_init, "Netronics", "Explorer/85", MACHINE_SUPPORTS_SAVE )
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
// license:BSD-3-Clause
|
|
||||||
// copyright-holders:Curt Coder
|
|
||||||
#ifndef MAME_INCLUDES_EXP85_H
|
|
||||||
#define MAME_INCLUDES_EXP85_H
|
|
||||||
|
|
||||||
#include "bus/rs232/rs232.h"
|
|
||||||
#include "cpu/i8085/i8085.h"
|
|
||||||
#include "imagedev/cassette.h"
|
|
||||||
#include "sound/spkrdev.h"
|
|
||||||
|
|
||||||
#define SCREEN_TAG "screen"
|
|
||||||
#define I8085A_TAG "u100"
|
|
||||||
#define I8155_TAG "u106"
|
|
||||||
#define I8355_TAG "u105"
|
|
||||||
|
|
||||||
class exp85_state : public driver_device
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
exp85_state(const machine_config &mconfig, device_type type, const char *tag)
|
|
||||||
: driver_device(mconfig, type, tag),
|
|
||||||
m_maincpu(*this, I8085A_TAG),
|
|
||||||
m_rs232(*this, "rs232"),
|
|
||||||
m_cassette(*this, "cassette"),
|
|
||||||
m_speaker(*this, "speaker"),
|
|
||||||
m_rom(*this, I8085A_TAG),
|
|
||||||
m_tape_control(0)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
void exp85(machine_config &config);
|
|
||||||
|
|
||||||
DECLARE_INPUT_CHANGED_MEMBER( trigger_reset );
|
|
||||||
DECLARE_INPUT_CHANGED_MEMBER( trigger_rst75 );
|
|
||||||
|
|
||||||
private:
|
|
||||||
required_device<i8085a_cpu_device> m_maincpu;
|
|
||||||
required_device<rs232_port_device> m_rs232;
|
|
||||||
required_device<cassette_image_device> m_cassette;
|
|
||||||
required_device<speaker_sound_device> m_speaker;
|
|
||||||
required_memory_region m_rom;
|
|
||||||
|
|
||||||
virtual void machine_start() override;
|
|
||||||
|
|
||||||
uint8_t i8355_a_r();
|
|
||||||
void i8355_a_w(uint8_t data);
|
|
||||||
DECLARE_READ_LINE_MEMBER( sid_r );
|
|
||||||
DECLARE_WRITE_LINE_MEMBER( sod_w );
|
|
||||||
|
|
||||||
/* cassette state */
|
|
||||||
int m_tape_control;
|
|
||||||
void exp85_io(address_map &map);
|
|
||||||
void exp85_mem(address_map &map);
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // MAME_INCLUDES_EXP85_H
|
|
Loading…
Reference in New Issue
Block a user