summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/a2bus/suprterminal.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/a2bus/suprterminal.cpp')
-rw-r--r--src/devices/bus/a2bus/suprterminal.cpp57
1 files changed, 53 insertions, 4 deletions
diff --git a/src/devices/bus/a2bus/suprterminal.cpp b/src/devices/bus/a2bus/suprterminal.cpp
index aa3d31d96d8..796937bebcb 100644
--- a/src/devices/bus/a2bus/suprterminal.cpp
+++ b/src/devices/bus/a2bus/suprterminal.cpp
@@ -24,19 +24,59 @@
#include "emu.h"
#include "suprterminal.h"
+
+#include "video/mc6845.h"
+
#include "screen.h"
-//**************************************************************************
-// GLOBAL VARIABLES
-//**************************************************************************
-DEFINE_DEVICE_TYPE(A2BUS_SUPRTERMINAL, a2bus_suprterminal_device, "a2suprterm", "M&R Enterprises SUP'R'TERMINAL")
+namespace {
ROM_START(a2suprterm)
ROM_REGION(0x800, "s3firmware", ROMREGION_ERASEFF)
ROM_LOAD("suprterminal.bin", 0x000000, 0x000800, CRC(4c49b0f5) SHA1(66a7411c46c04a8089a7ddfb5ffd9809dd08a21f))
ROM_END
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+class a2bus_suprterminal_device:
+ public device_t,
+ public device_a2bus_card_interface
+{
+public:
+ // construction/destruction
+ a2bus_suprterminal_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+
+protected:
+ a2bus_suprterminal_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
+
+ virtual void device_start() override;
+ virtual void device_reset() override;
+ virtual void device_add_mconfig(machine_config &config) override;
+ virtual const tiny_rom_entry *device_rom_region() const override;
+
+ // overrides of standard a2bus slot functions
+ virtual u8 read_cnxx(u8 offset) override;
+ virtual u8 read_c0nx(u8 offset) override;
+ virtual void write_c0nx(u8 offset, u8 data) override;
+ virtual u8 read_c800(u16 offset) override;
+ virtual void write_c800(u16 offset, u8 data) override;
+ virtual bool take_c800() override { return true; }
+
+private:
+ required_device<mc6845_device> m_crtc;
+ required_region_ptr<u8> m_rom;
+
+ MC6845_UPDATE_ROW(crtc_update_row);
+
+ std::unique_ptr<u8[]> m_vram;
+ std::unique_ptr<u8[]> m_fontram;
+// u8 m_fontram[0x400];
+ bool m_bRasterRAM, m_bCharBank1, m_bC800IsRAM;
+};
+
//-------------------------------------------------
// device_add_mconfig - add device configuration
//-------------------------------------------------
@@ -213,3 +253,12 @@ MC6845_UPDATE_ROW(a2bus_suprterminal_device::crtc_update_row)
}
}
}
+
+} // anonymous namespace
+
+
+//**************************************************************************
+// GLOBAL VARIABLES
+//**************************************************************************
+
+DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_SUPRTERMINAL, device_a2bus_card_interface, a2bus_suprterminal_device, "a2suprterm", "M&R Enterprises SUP'R'TERMINAL")