2015-02-15 18:53:04 +03:00
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* Copyright (c) 2005-2009 Anchorite (TeamX), <anchorite2001@yandex.ru>
|
|
|
|
|
* Copyright (c) 20014-2015 Nirran, phobos2077
|
|
|
|
|
* Copyright (c) 20015 alexeevdv <mail@alexeevdv.ru>
|
|
|
|
|
* Distributed under the GNU GPL v3. For full terms see the file license.txt
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
// C++ standard includes
|
|
|
|
|
|
|
|
|
|
// int2ssl includes
|
2015-02-13 16:59:11 +03:00
|
|
|
#include "StartupCode.h"
|
|
|
|
|
|
2015-02-15 18:53:04 +03:00
|
|
|
// Third party includes
|
|
|
|
|
|
2015-02-13 16:59:11 +03:00
|
|
|
CStartupCode::CStartupCode()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CStartupCode::~CStartupCode()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CStartupCode::Serialize(CArchive& ar)
|
|
|
|
|
{
|
2015-02-15 18:10:01 +03:00
|
|
|
uint16_t wExpectOpcodes[17] = {
|
2015-02-13 22:31:52 +03:00
|
|
|
COpcode::O_CRITICAL_START,
|
|
|
|
|
COpcode::O_INTOP,
|
|
|
|
|
COpcode::O_D_TO_A,
|
|
|
|
|
COpcode::O_INTOP,
|
|
|
|
|
COpcode::O_JMP,
|
|
|
|
|
COpcode::O_EXIT_PROG,
|
|
|
|
|
COpcode::O_POP,
|
|
|
|
|
COpcode::O_POP_FLAGS_RETURN,
|
|
|
|
|
COpcode::O_POP,
|
|
|
|
|
COpcode::O_POP_FLAGS_EXIT,
|
|
|
|
|
COpcode::O_POP,
|
|
|
|
|
COpcode::O_POP_FLAGS_RETURN_EXTERN,
|
|
|
|
|
COpcode::O_POP,
|
|
|
|
|
COpcode::O_POP_FLAGS_EXIT_EXTERN,
|
|
|
|
|
COpcode::O_POP_FLAGS_RETURN_VAL_EXTERN,
|
|
|
|
|
COpcode::O_POP_FLAGS_RETURN_VAL_EXIT,
|
|
|
|
|
COpcode::O_POP_FLAGS_RETURN_VAL_EXIT_EXTERN
|
|
|
|
|
};
|
|
|
|
|
|
2015-02-15 19:05:45 +03:00
|
|
|
for(int32_t i = 0; i < 17; i++)
|
2015-02-13 16:59:11 +03:00
|
|
|
{
|
2015-02-13 22:31:52 +03:00
|
|
|
if (i == 1)
|
|
|
|
|
{
|
2015-02-15 16:59:52 +03:00
|
|
|
m_Code[i].Expect(ar, wExpectOpcodes[i], true, 18);
|
2015-02-13 22:31:52 +03:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
m_Code[i].Expect(ar, wExpectOpcodes[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
2015-02-13 16:59:11 +03:00
|
|
|
|
|
|
|
|
}
|