summaryrefslogtreecommitdiff
path: root/sid/sidplay-libs-2.1.0/libsidplay/src/mos656x/mos656x.h
diff options
context:
space:
mode:
Diffstat (limited to 'sid/sidplay-libs-2.1.0/libsidplay/src/mos656x/mos656x.h')
-rw-r--r--sid/sidplay-libs-2.1.0/libsidplay/src/mos656x/mos656x.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/sid/sidplay-libs-2.1.0/libsidplay/src/mos656x/mos656x.h b/sid/sidplay-libs-2.1.0/libsidplay/src/mos656x/mos656x.h
new file mode 100644
index 00000000..7cf9867e
--- /dev/null
+++ b/sid/sidplay-libs-2.1.0/libsidplay/src/mos656x/mos656x.h
@@ -0,0 +1,79 @@
+/***************************************************************************
+ mos656x.h - Minimal VIC emulation
+ -------------------
+ begin : Wed May 21 2001
+ copyright : (C) 2001 by Simon White
+ email : s_a_white@email.com
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef _mos656x_h_
+#define _mos656x_h_
+
+#include "component.h"
+#include "event.h"
+
+typedef enum
+{
+ MOS6567R56A, /* OLD NTSC CHIP */
+ MOS6567R8, /* NTSC */
+ MOS6569 /* PAL */
+} mos656x_model_t;
+
+
+class MOS656X: public component, public Event
+{
+private:
+ static const char *credit;
+
+protected:
+ uint8_t regs[0x40];
+ uint8_t icr, idr, ctrl1;
+ uint_least16_t yrasters, xrasters, raster_irq;
+ uint_least16_t raster_x, raster_y;
+ uint_least16_t first_dma_line, last_dma_line, y_scroll;
+ bool bad_lines_enabled, bad_line;
+
+ event_clock_t m_accessClk;
+ EventContext &event_context;
+
+protected:
+ MOS656X (EventContext *context);
+ void event (void);
+ void trigger (int irq);
+
+ // Environment Interface
+ virtual void interrupt (bool state) = 0;
+ virtual void busaccess (bool state) = 0;
+ virtual void addrctrl (bool state) = 0;
+
+public:
+ void chip (mos656x_model_t model);
+
+ // Component Standard Calls
+ void reset (void);
+ uint8_t read (uint_least8_t addr);
+ void write (uint_least8_t addr, uint8_t data);
+ const char *credits (void) {return credit;}
+};
+
+
+/***************************************************************************
+ * Inline functions
+ **************************************************************************/
+
+enum
+{
+ MOS656X_INTERRUPT_RST = 1 << 0,
+ MOS656X_INTERRUPT_REQUEST = 1 << 7
+};
+
+#endif // _mos656x_h_