2 psb
похоже я очепятался...
Вид для печати
2 psb
похоже я очепятался...
либа z80ex (которая применяется в zemu) основана на коде из fuse. там применён "хитрый" ход для ускорения, когда есть регистр R и R7, где R - от 0x00 до 0xFF, а R7 - седьмой бит регистра R. комманды записи в рег. R меняют оба (R и R7), а при чтении из рег. R применяется формула ((R & 0x7F) | (R7 & 0x80)).
к слову сказать, в текущей версии (публично пока не выложено) в лог записывается правильное значение.
правильно.Цитата:
в Zemu R+=2 для команды CB XX, и R+=2 для DD CB XX, это правильно?
почему в Zemu когда приходит прерывание, по логам приходит на 0038, и dT = 9 хотя выполняется команда по адресу Е5С с dT=21, а минимальный dT при приходе прерываний = 13 (2+11), так откуда взялось число 9?! в z80ex в процедуре int я такого не нашел
ошибка в функции TraceCpuInt в файле zemu.cpp
(опять же, в новой dev версии исправлено).
функция должна выглядеть так:
upd.Код:int TraceCpuInt(Z80EX_CONTEXT *cpu)
{
CpuTrace_Log();
int dt = z80ex_int(cpu);
cpuTrace_dt += dt;
return dt;
}
если z80ex находится в режиме Z80EX_OPSTEP_FAST_AND_ROUGH, то такты в инте будут считаться неправильно.
Прикрутил эмулятор ВГ93, от Zemu к своему эмулятору, заработал сразу. Да и его реально проще прикручивать чем оригинал из унреалспека : )
всё спасибы boo_boo, я лишь код более красивым сделал и пару хако-фиксов добавил.Цитата:
Да и его реально проще прикручивать чем оригинал из унреалспека : )
Собрал под Win32, выложил здесь: http://cloud.github.com/downloads/mk...-win32-bin.zip
Что там изменено по сравнению с оригинальной версией, можно посмотреть здесь: http://github.com/mkoloberdin/zemu/commits/master/
под winmobile собрать не пробовали?
пару лет назад делал вот это - http://pocketspeccy.narod.ru/