2016-11-06 19:28:55 -05:00
|
|
|
#pragma once
|
2008-11-24 02:08:50 +00:00
|
|
|
|
2012-10-21 02:08:14 +00:00
|
|
|
#include <memory>
|
2008-11-24 02:08:50 +00:00
|
|
|
#include "Types.h"
|
2012-05-26 18:31:31 +00:00
|
|
|
#include "../BiosDebugInfoProvider.h"
|
2009-01-26 02:53:10 +00:00
|
|
|
#include "zip/ZipArchiveWriter.h"
|
|
|
|
#include "zip/ZipArchiveReader.h"
|
2008-11-28 00:24:57 +00:00
|
|
|
#ifdef DEBUGGER_INCLUDED
|
|
|
|
#include "xml/Node.h"
|
|
|
|
#endif
|
2008-11-24 02:08:50 +00:00
|
|
|
|
|
|
|
namespace Iop
|
|
|
|
{
|
2012-05-26 18:31:31 +00:00
|
|
|
class CBiosBase : public CBiosDebugInfoProvider
|
2012-05-21 06:31:50 +00:00
|
|
|
{
|
|
|
|
public:
|
2018-04-30 21:01:23 +01:00
|
|
|
virtual ~CBiosBase() = default;
|
|
|
|
virtual void HandleException() = 0;
|
|
|
|
virtual void HandleInterrupt() = 0;
|
|
|
|
virtual void CountTicks(uint32) = 0;
|
2008-11-24 02:08:50 +00:00
|
|
|
|
2018-04-30 21:01:23 +01:00
|
|
|
virtual void NotifyVBlankStart() = 0;
|
|
|
|
virtual void NotifyVBlankEnd() = 0;
|
2011-05-05 04:28:11 +00:00
|
|
|
|
2018-04-30 21:01:23 +01:00
|
|
|
virtual bool IsIdle() = 0;
|
2009-01-26 02:53:10 +00:00
|
|
|
|
2018-04-30 21:01:23 +01:00
|
|
|
virtual void SaveState(Framework::CZipArchiveWriter&) = 0;
|
|
|
|
virtual void LoadState(Framework::CZipArchiveReader&) = 0;
|
2009-01-26 02:53:10 +00:00
|
|
|
|
2008-11-28 00:24:57 +00:00
|
|
|
#ifdef DEBUGGER_INCLUDED
|
2018-04-30 21:01:23 +01:00
|
|
|
virtual void SaveDebugTags(Framework::Xml::CNode*) = 0;
|
|
|
|
virtual void LoadDebugTags(Framework::Xml::CNode*) = 0;
|
2008-11-28 00:24:57 +00:00
|
|
|
#endif
|
2012-05-21 06:31:50 +00:00
|
|
|
};
|
2012-10-21 02:08:14 +00:00
|
|
|
|
|
|
|
typedef std::shared_ptr<CBiosBase> BiosBasePtr;
|
2008-11-24 02:08:50 +00:00
|
|
|
}
|