
Сообщение от
Alex_K
В эмуляторе есть такая функция для вывода сообщения в консоль вроде DebugPrint. Так что можно в интересующие места программы вставлять вывод на консоль.
Рекомендую для отладочных вещей пользоваться вызовами DebugLog() и DebugLogFormat() -- они пишут в файл trace.log, это быстрее DebugPrint() и не ограничено размером буфера виндового контрола EDIT (кажется, 64К текста).
Если нужно получить в логе трассу команд, можно в конец CProcessor::FetchInstruction() вставить примерно такой блок:
Код:
#if !defined(PRODUCT)
WORD address = GetPC() - 2;
WORD data[4];
for (int i = 0; i < 4; i++)
data[i] = GetWord(address + i * 2);
TCHAR strInstr[8];
TCHAR strArg[32];
DisassembleInstruction(data, address, strInstr, strArg);
DebugLogFormat(_T("%06o: %s\t%s\n"), address, strInstr, strArg);
#endif
---------- Post added at 00:10 ---------- Previous post was at 00:05 ----------

Сообщение от
Vamos
А можно еще конкретнее, с цифрами, и можно ли изменить скажем тактовую центрального проца отдельно от системного фрейма ?
Цифры все в коде, цифр этих много, зависит от команды и режимов адресации.
Если хочется видеть по конкретному коду сколько тактов занимают команды -- можно смотреть или логировать в конце CProcessor::Execute() на выходе из функции CProcessor::CommandExecution() сколько прописано в m_internalTick -- это и будет время выполнения команды.
Чтобы замедлить/ускорить процессор можно либо в CMotherboard::SystemFrame() изменить количество вызовов SYSTEMFRAME_EXECUTE_CPU и SYSTEMFRAME_EXECUTE_PPU, либо в коде процессора изменять m_internalTick.