summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/includes/coco3.h
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2012-08-21 10:41:19 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2012-08-21 10:41:19 +0000
commit7285b359d259b2ae0fdf85096571c386ec8c991a (patch)
treea027aff57f1a255f9ec6cfd3b68cabe4b6683998 /src/mess/includes/coco3.h
parent67c425e90757876a6716b7867df30c0149912e74 (diff)
Merge of MESS sources (no whatsnew)
Diffstat (limited to 'src/mess/includes/coco3.h')
-rw-r--r--src/mess/includes/coco3.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/mess/includes/coco3.h b/src/mess/includes/coco3.h
new file mode 100644
index 00000000000..beeae2cc990
--- /dev/null
+++ b/src/mess/includes/coco3.h
@@ -0,0 +1,63 @@
+/***************************************************************************
+
+ coco3.h
+
+ TRS-80 Radio Shack Color Computer 1/2 Family
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef __COCO3__
+#define __COCO3__
+
+
+#include "includes/coco.h"
+#include "video/gime.h"
+
+
+
+//**************************************************************************
+// MACROS / CONSTANTS
+//**************************************************************************
+
+#define GIME_TAG "gime"
+#define VDG_TAG "vdg"
+#define COMPOSITE_SCREEN_TAG "composite"
+#define RGB_SCREEN_TAG "rgb"
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+class coco3_state : public coco_state
+{
+public:
+ coco3_state(const machine_config &mconfig, device_type type, const char *tag);
+
+ required_device<gime_base_device> m_gime;
+
+ virtual DECLARE_WRITE8_MEMBER( ff20_write );
+ virtual DECLARE_READ8_MEMBER( ff40_read );
+ virtual DECLARE_WRITE8_MEMBER( ff40_write );
+
+ DECLARE_WRITE_LINE_MEMBER(gime_firq_w) { recalculate_firq(); }
+ DECLARE_WRITE_LINE_MEMBER(gime_irq_w) { recalculate_irq(); }
+
+ UINT32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+protected:
+ virtual void update_cart_base(UINT8 *cart_base);
+
+ /* interrupts */
+ virtual bool firq_get_line(void);
+ virtual bool irq_get_line(void);
+
+ /* miscellaneous */
+ virtual void update_keyboard_input(UINT8 value, UINT8 z);
+ virtual void cart_w(bool line);
+};
+
+#endif // __COCO3__