diff options
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.h | 79 |
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_ |