summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/isa/s3virge.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/isa/s3virge.h')
-rw-r--r--src/devices/bus/isa/s3virge.h82
1 files changed, 82 insertions, 0 deletions
diff --git a/src/devices/bus/isa/s3virge.h b/src/devices/bus/isa/s3virge.h
new file mode 100644
index 00000000000..44bed38689f
--- /dev/null
+++ b/src/devices/bus/isa/s3virge.h
@@ -0,0 +1,82 @@
+// license:BSD-3-Clause
+// copyright-holders:Barry Rodewald
+/*
+ * s3virge.h
+ *
+ * S3 ViRGE 2D/3D video card
+ *
+ */
+
+#ifndef S3VIRGE_H_
+#define S3VIRGE_H_
+
+#include "emu.h"
+#include "video/pc_vga.h"
+
+// ======================> s3virge_vga_device
+
+class s3virge_vga_device : public s3_vga_device
+{
+public:
+ // construction/destruction
+ s3virge_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ s3virge_vga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
+
+ virtual READ8_MEMBER(port_03b0_r);
+ virtual WRITE8_MEMBER(port_03b0_w);
+ virtual READ8_MEMBER(port_03c0_r);
+ virtual WRITE8_MEMBER(port_03c0_w);
+ virtual READ8_MEMBER(port_03d0_r);
+ virtual WRITE8_MEMBER(port_03d0_w);
+ virtual READ8_MEMBER(mem_r);
+ virtual WRITE8_MEMBER(mem_w);
+
+ ibm8514a_device* get_8514() { fatalerror("s3virge requested non-existant 8514/A device\n"); return NULL; }
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+
+private:
+ virtual UINT8 s3_crtc_reg_read(UINT8 index);
+ virtual void s3_define_video_mode(void);
+ virtual void s3_crtc_reg_write(UINT8 index, UINT8 data);
+ // has no 8514/A device
+};
+
+
+// ======================> s3virgedx_vga_device
+
+class s3virgedx_vga_device : public s3virge_vga_device
+{
+public:
+ // construction/destruction
+ s3virgedx_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ s3virgedx_vga_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+};
+
+// ======================> s3virgedx_vga_device
+
+class s3virgedx_rev1_vga_device : public s3virgedx_vga_device
+{
+public:
+ // construction/destruction
+ s3virgedx_rev1_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+};
+
+// device type definition
+extern const device_type S3VIRGE;
+extern const device_type S3VIRGEDX;
+extern const device_type S3VIRGEDX1;
+
+#endif /* S3VIRGE_H_ */