2006-06-15 04:19:30 +00:00
|
|
|
#ifndef _INTC_H_
|
|
|
|
#define _INTC_H_
|
|
|
|
|
|
|
|
#include "Types.h"
|
2008-01-12 01:27:04 +00:00
|
|
|
#include "DMAC.h"
|
2008-01-25 23:47:09 +00:00
|
|
|
#include "zip/ZipArchiveWriter.h"
|
|
|
|
#include "zip/ZipArchiveReader.h"
|
2006-06-15 04:19:30 +00:00
|
|
|
|
|
|
|
class CINTC
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
enum REGISTER
|
|
|
|
{
|
|
|
|
INTC_STAT = 0x1000F000,
|
|
|
|
INTC_MASK = 0x1000F010,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum LINES
|
|
|
|
{
|
2006-06-19 05:43:51 +00:00
|
|
|
INTC_LINE_DMAC = 1,
|
|
|
|
INTC_LINE_VBLANK_START = 2,
|
|
|
|
INTC_LINE_VBLANK_END = 3,
|
2006-06-27 21:44:45 +00:00
|
|
|
INTC_LINE_TIMER2 = 11,
|
2006-06-15 04:19:30 +00:00
|
|
|
};
|
|
|
|
|
2008-01-12 01:27:04 +00:00
|
|
|
CINTC(CDMAC&);
|
|
|
|
virtual ~CINTC();
|
2006-06-15 04:19:30 +00:00
|
|
|
|
2008-01-12 01:27:04 +00:00
|
|
|
void Reset();
|
|
|
|
bool IsInterruptPending();
|
2006-06-15 04:19:30 +00:00
|
|
|
|
2008-01-12 01:27:04 +00:00
|
|
|
uint32 GetRegister(uint32);
|
|
|
|
void SetRegister(uint32, uint32);
|
2006-06-15 04:19:30 +00:00
|
|
|
|
2008-01-12 01:27:04 +00:00
|
|
|
void AssertLine(uint32);
|
|
|
|
|
2008-01-25 23:47:09 +00:00
|
|
|
void LoadState(CZipArchiveReader&);
|
|
|
|
void SaveState(CZipArchiveWriter&);
|
2006-06-15 04:19:30 +00:00
|
|
|
|
|
|
|
private:
|
2008-01-12 01:27:04 +00:00
|
|
|
uint32 m_INTC_STAT;
|
|
|
|
uint32 m_INTC_MASK;
|
|
|
|
CDMAC& m_dmac;
|
2006-06-15 04:19:30 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|