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 к своему эмулятору, заработал сразу. Да и его реально проще прикручивать чем оригинал из унреалспека : )
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Собрал под Win32, выложил здесь: http://cloud.github.com/downloads/mk...-win32-bin.zip
Что там изменено по сравнению с оригинальной версией, можно посмотреть здесь: http://github.com/mkoloberdin/zemu/commits/master/
под winmobile собрать не пробовали?
пару лет назад делал вот это - http://pocketspeccy.narod.ru/
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)