Про supkalah я знал, копаться пока желания не было, а про reversi не знал. У них, кстати, первые 256 байт практически совпадают![]()
Про supkalah я знал, копаться пока желания не было, а про reversi не знал. У них, кстати, первые 256 байт практически совпадают![]()
Последний раз редактировалось b2m; 23.09.2008 в 23:15.
Фишка с таймером. Вот тест по мотивам SkyNet (я аттачил его раньше в виде com-файла):
http://vector06cc.googlecode.com/svn...test/timer.asm
На DE1 она эмуляцию не видит, потому что таймер стоит ровно. Мне это приятно, но к сожалению это говорит только о том, что таймер стоит ровно.
Уж купи SD-карту, их теперь разве что не задаром раздают.
значит нужна поправка скорости в эмуляторе.
и её регулировка тоже![]()
b2m, желательно бы увидеть ещё пару поправок в эмуляторе:
1) путь к квазидискам, думаю лучше сделать так чтоб он не просто запоминал путь к ним, а также запоминал последний открытый.
2) иконка для открытия EPR файлов, может её сделаешь какойнибудь другой, хоть цветом выдели, а то две одинаковых кнопки.
и есть одна интересная идея, можешь ли сделать так что при нажатии на кнопку мышки в полноэкранном режиме стали видны тулбар и опции.
Речь о том, сколько машинных циклов успевает исполниться за заданное число отсчетов таймера (или сколько отсчетов сделет таймер, пока процессор выполняет такие-то инструкции). Частота тактирования таймера -- постоянна, а длина машинного цикла в 8080 непостоянна. Причем это еще накладывается на внутреннюю архитектуру Вектора, которая не позволяет процессору делать все, что ему вздумается. Поправкой типа плюс-минус 1 тут ничего принципиально не изменишь.
По моему таймерному тесту тоже быстроват -- он считает сверху вниз. b2m опережает ожидаемое значение всегда на 2 отсчета, то есть на 4 процессорных такта.
Судя по тому, что замаскированный под игру Exolon тест на исправность таймера всё же работает, ошибка кроется в моменте запуска, или может быть считывания. Если бы таймер работал несинхронно с процессором, в Эхолоне ползли бы белые полосы по экрану и вообще выглядел бы он дурно.
Работает ведь Ехолон?
Не совсем. Если ты запускал тест, то видел, что все считанные значения на 2 меньше требуемых. Я анализировал тест, и мне кое-что не совсем понятно. А именно: имеем две команды OUT, одна из которых загружает счётчик, другая считывает значение. Моменты начала выполнения этих команд (а значит и несколько смещённые моменты выдачи процессором сигнала записи в порт) отличаются на 100 тактов процессора, т.е. на 50 тактов счётчика. Значения счётчика, однако, судя по тесту, должны отличаться на 48. Я знаю, что реальное значение счётчика загружается из временного регистра по следующему за командой загрузки такту, т.е. вместо уменьшения имеем установку значения счётчика, таким образом за 100 тактов процессора начальное значение, исходя из моих рассуждений, уменьшается на 49. А реально - на 48. Где загвоздка?
Тут тоже не совсем ясно. Есть ещё diablo4, который перестал правильно устанавливать палитру, после того как я доделал мультиколор для b-ice. Разбирательство выявило, что последний цвет палитры устанавливается когда отображение бордюра уже кончилось и началось отображение экрана. Причём нехватает буквально пары сканлиний. В этой проге много команд OUT, но я не верю, что они выполнялись за не кратное 4-м количество тактов. Таким образом, тут эмулятор медленноват.
А вот в supkalah в качестве защиты от отладки используется такой приём: правильный переход осуществляется по прерыванию, а не в конце цикла. Однако цикл почему-то выполняется несколько большее количество раз, и в результате имеем неправильное значение регистров, что сказывается на дальнейшем выполнении программы. Тут эмулятор оказался быстрее, чем надо.
У меня загрузка выставляет только признак того, что счетчик загружен, разрешение счета включается по следующему положительному перепаду таймерного клока. Таким образом, первый раз единичка вычитается на второй после момента загрузки импульс таймерного клока. Если я опять ничего не перепутал.
Суперкалах у меня на DE1 нормально запустился и работает, а вот палитра в Диабло4 мне не кажется правильной. b2m, предлагаю считать diablo4 глючным творением -- мультиколор важнее.
Добавлено через 2 минуты
Хмм, а diab4 ведь не использует таймер..
Последний раз редактировалось svofski; 24.09.2008 в 12:13. Причина: Добавлено сообщение
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)