summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/i82371sb.h
diff options
context:
space:
mode:
author yz70s <yz70s@users.noreply.github.com>2018-05-13 07:47:51 +0200
committer yz70s <yz70s@users.noreply.github.com>2018-05-13 07:56:02 +0200
commitd853337e553e01942f9d725bfb36a626f9e08af0 (patch)
tree0645fbdf19fb63d59bbc6284287a86797e8503b8 /src/devices/machine/i82371sb.h
parent9f76c7b556c65ad1f45c70015481d057f1a63265 (diff)
i82371sb.cpp: remove unnedeed stuff, enable isa and add system management mode (nw)
Diffstat (limited to 'src/devices/machine/i82371sb.h')
-rw-r--r--src/devices/machine/i82371sb.h27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/devices/machine/i82371sb.h b/src/devices/machine/i82371sb.h
index ba0ba296e96..5b239304659 100644
--- a/src/devices/machine/i82371sb.h
+++ b/src/devices/machine/i82371sb.h
@@ -15,21 +15,21 @@
#include "machine/pit8253.h"
#include "machine/ataintf.h"
-#include "machine/at_keybc.h"
#include "sound/spkrdev.h"
#include "machine/ram.h"
+#include "bus/isa/isa.h"
#include "machine/nvram.h"
-#include "machine/pc_lpt.h"
-#include "bus/pc_kbd/pc_kbdc.h"
-
#include "machine/am9517a.h"
#define MCFG_I82371SB_ISA_ADD(_tag) \
MCFG_PCI_DEVICE_ADD(_tag, I82371SB_ISA, 0x80867000, 0x03, 0x060100, 0x00000000)
+#define MCFG_I82371SB_SMI_CB(_devcb) \
+ devcb = &downcast<i82371sb_isa_device &>(*device).set_smi_callback(DEVCB_##_devcb);
+
#define MCFG_I82371SB_BOOT_STATE_HOOK(_devcb) \
devcb = &downcast<i82371sb_isa_device &>(*device).set_boot_state_hook(DEVCB_##_devcb);
@@ -37,6 +37,7 @@ class i82371sb_isa_device : public pci_device {
public:
i82371sb_isa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ template <class Object> devcb_base &set_smi_callback(Object &&cb) { return m_smi_callback.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_boot_state_hook(Object &&cb) { return m_boot_state_hook.set_callback(std::forward<Object>(cb)); }
protected:
@@ -49,6 +50,8 @@ protected:
virtual void map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space,
uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) override;
+ virtual bool map_first() override { return true; }
+
virtual void config_map(address_map &map) override;
private:
@@ -136,20 +139,22 @@ private:
DECLARE_WRITE8_MEMBER(ide2_write_cs1_w);
DECLARE_READ8_MEMBER(at_dma8237_2_r);
DECLARE_WRITE8_MEMBER(at_dma8237_2_w);
- DECLARE_READ8_MEMBER(at_keybc_r);
- DECLARE_WRITE8_MEMBER(at_keybc_w);
- DECLARE_WRITE8_MEMBER(write_rtc);
+ DECLARE_READ8_MEMBER(read_apmcapms);
+ DECLARE_WRITE8_MEMBER(write_apmcapms);
+ void update_smireq_line();
+
+ devcb_write_line m_smi_callback;
devcb_write8 m_boot_state_hook;
uint32_t see;
uint16_t xbcs, mstat, pcsc, smien, smireq;
+ uint8_t apmc, apms;
uint8_t iort, pirqrc[4], tom, mbirq0, mbdma[2], apicbase;
uint8_t dlc, smicntl, ftmr, ctlmtr, cthmtr;
void map_bios(address_space *memory_space, uint32_t start, uint32_t end);
-
//southbridge
required_device<cpu_device> m_maincpu;
required_device<pic8259_device> m_pic8259_master;
@@ -157,10 +162,8 @@ private:
required_device<am9517a_device> m_dma8237_1;
required_device<am9517a_device> m_dma8237_2;
required_device<pit8254_device> m_pit8254;
- required_device<at_keyboard_controller_device> m_keybc;
+ required_device<isa16_device> m_isabus;
required_device<speaker_sound_device> m_speaker;
- required_device<ds12885_device> m_ds12885;
- required_device<pc_kbdc_device> m_pc_kbdc;
uint8_t m_at_spkrdata;
uint8_t m_pit_out2;
@@ -177,8 +180,6 @@ private:
uint8_t m_nmi_enabled;
void pc_select_dma_channel(int channel, bool state);
- // VGA-HACK
- optional_memory_region m_vga_region;
};
DECLARE_DEVICE_TYPE(I82371SB_ISA, i82371sb_isa_device)