diff options
Diffstat (limited to 'src/devices/bus/isa/s3virge.h')
-rw-r--r-- | src/devices/bus/isa/s3virge.h | 82 |
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_ */ |