плохо что черно-белое изображение, цветные квадраты специально были сделаны чтобы можно было точно идентифицировать позицию, но по черной полосе вроде видно.
Уже можно сказать что строка 224T, INT начинается от левого бордюра, как на пентагоне, а не от папира, как на скорпионе и спектруме. WAIT'ов похоже нет, что упрощает задачу.
По фотографиям уже можно попробовать восстановить тайминги, остаются неизвестными длина INT и число тактов в кадре. А судя по результатам тестов именно они явно аномальные.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Удостоверился именно так.при пзу отличном от оригинального 48ого (в нём проверяется один байт) звук идёт на AY
А нет ли еще программ для замера числа тактов в кадре.
Последний раз редактировалось NEO SPECTRUMAN; 05.10.2011 в 21:22.
WAIT'ы всетаки есть, область #4000-#7FFF замедляется WAIT'ами, #8000-#BFFF - не замедляется
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Методом подбора и проверки логически возможных вариантов удалось подобрать задержки для #4000-7FFF. Остается вопрос с длительностью INT и числом тактов в кадре. Также судя по всему для ПЗУ тоже могут быть задержки, нужно проверять
Вот плагин с исходником ULA для Delta. Ложить в папку Plugins. Кто желает, можно поиграться цифрами.
Из-за бага в диалоге настройки в списке выбора этот девайс сразу виден не будет. Нужно добавлять кнопкой Add. После этого девайс будет видет в списке до перезагрузки.
Видимые отличия только в тесте TACTS для области ПЗУ и #8000-BFFF. Область #8000 задержек не имеет это видно по тесту mctest, соответственно похоже еще нужно подобрать задержки для ПЗУ.
Насколько все это верно нужно проверять, сравнивая с реалом![]()
Последний раз редактировалось ZXMAK; 05.10.2011 в 23:38.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Alexander Makeev, а как из IBusDevice правильно отправить немаскируемое прерывание?
Логика там вроде бы такая должна быть:
,Код:cpu.NMI = true; cpu.ExecCycle(); cpu.NMI = false;
но в нынешней event-driven модели сбросить флаг NMI "вовремя" ведь никак не выйдет?
--
А, туплю, подписка на NMIACK_M1 же есть![]()
Последний раз редактировалось Eltaron; 05.10.2011 в 23:51.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
да, но это событие вызывается когда процессор подтверждает что увидел сигнал NMI. Чтобы сгенерировать сигнал NMI из устройства можно использовать событие CYCLE_M1, задумывалось что оно будет вызываться ДО обработки цикла M1. Но сейчас есть ошибочка, это событие вызывается после обработки сигналов, а не до. В следующей версии исправлю![]()
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Протестил вот такую программу
del2 ok.asm
del2 ok 2.asm
Всё статмчно
Выкидываю один nop всё статично
Выкидываю ещё один nop бордюр смещается вверх но пройде 52 пикселя останавливается (также в EMUZWIN при времянках 48)
Добавляю один nop всё статично
Добавляю еще один nop бордер смещается вниз но очень медленно.
По моему тут отличие от емуля (кажется смещение намного медленней)
Также наблюдается вот такой эффект. одна половина экрана заполняется плавно (по 2 пикселя наверное) а другая значительно быстрей приблизительно по 8 или больше(В емуле тоже подобный эфект но он не так заметен)
delta2.zip
LD A,N по времени видно исполняется 8 тактов
Также прилагаю снапшот с програмкой.
еще хочется, чтоб parseKeyboardState был вынесен из DirectKeyboard куда-нибудь поближе к IKeyboardDevice, где его можно было б переопределить. И чтоб он принимал на вход не DirectInput-овый KeyboardState, а какой-нибудь промежуточный класс
А то сейчас от IKeyboardDevice очень мало пользы - например, расширенную клавиатуру с его помощью не реализовать. Не знаю как в Профи и АТМ, но в Кворуме для опроса дополнительных кнопок клавы выделен отдельный порт, и в CP/M-режиме дополнительные кнопки нужно однозначно отделять от основных - у них свои функции.
Плюс та же кнопка NMI в Кворуме играет важную роль и выведена на клавиатуру.
Ну и кнопки F1..F5 хочется повесить именно на F1..F5 клавиатуры, а они все заняты![]()
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)