Важная информация

User Tag List

Страница 31 из 161 ПерваяПервая ... 272829303132333435 ... ПоследняяПоследняя
Показано с 301 по 310 из 1609

Тема: Эмулятор ДВК

  1. #301
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    10,323
    Благодарностей: 3585
    Mentioned
    5 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    тогда интересующие события будут происходить в общем виртуальном времени с наносекундной синхронизацией.
    И наносекунда - это не показатель точности.
    Показатель точности это квант, кратный минимальному интервалу в эмулируемой системе. Во всех иных случаях, каким бы не был мелким квант, набежит погрешность.

  2. #301
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #302
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,654
    Благодарностей: 2788
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    И наносекунда - это не показатель точности.
    Показатель точности это квант, кратный минимальному интервалу в эмулируемой системе. Во всех иных случаях, каким бы не был мелким квант, набежит погрешность.
    Не набежит. Диспетчер синхронизации модульного API рассчитывает виртуальное время каждого следующего периодического события не относительно времени предыдущего события, а относительно времени первого события + [ число предыдущих событий * интервал между событиями ], поэтому максимальная ошибка синхронизации не превышает 1 нс для любого числа предыдущих периодических событий.

  4. #303
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    10,323
    Благодарностей: 3585
    Mentioned
    5 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Не набежит. Диспетчер синхронизации модульного API рассчитывает виртуальное время каждого следующего периодического события не относительно времени предыдущего события, а относительно времени первого события + [ число предыдущих событий * интервал между событиями ], поэтому максимальная ошибка синхронизации не превышает 1 нс для любого числа предыдущих периодических событий.
    Допустим, частота процессора 10.05МГц (99.5 1нс квантов).
    Как он будет отсчитывать по 99.5 квантов на такт?

  5. #304
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,654
    Благодарностей: 2788
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Допустим, частота процессора 10.05МГц (99.5 1нс квантов). Как он будет отсчитывать по 99.5 квантов на такт?
    При абстрактной эмуляции событием процессора является исполнение одной команды. Остальные события могут произойти либо до начала выполнения команды, либо после завершения её выполнения.

    Эмулировать не отдельные команды, а (например) отдельные циклы шины или отдельные такты - для абстрактной эмуляции избыточно.

    Можно сделать движок дискретной эмуляции, где событием будет изменение логического уровня на отдельной линии шины, но в абстрактной эмуляции ничего этого нет.

  6. #305
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    10,323
    Благодарностей: 3585
    Mentioned
    5 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    При абстрактной эмуляции событием процессора является исполнение одной команды. Остальные события могут произойти либо до начала выполнения команды, либо после завершения её выполнения.

    Эмулировать не отдельные команды, а (например) отдельные циклы шины или отдельные такты - для абстрактной эмуляции избыточно.

    Можно сделать движок дискретной эмуляции, где событием будет изменение логического уровня на отдельной линии шины, но в абстрактной эмуляции ничего этого нет.
    Для абстрактной может быть и избыточно, а для абсолютно точной - в самый раз)

    ---------- Post added at 17:14 ---------- Previous post was at 16:59 ----------

    Кстати, об эмуляции, когда я переделал клавиатуру с DirectInput на обработчик хуков, плохо стала работать комбинация из трех нажатых клавиш PrintScr+Scroll+Pause (по ним ресет на спектруме делался у меня). Приходится теперь несколько раз на них нажимать, нажимать, пока сработает. На DirectInput'е такого не было)

  7. #306
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,654
    Благодарностей: 2788
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    когда я переделал клавиатуру с DirectInput на обработчик хуков, плохо стала работать комбинация из трех нажатых клавиш PrintScr+Scroll+Pause (по ним ресет на спектруме делался у меня). Приходится теперь несколько раз на них нажимать, нажимать, пока сработает. На DirectInput'е такого не было)
    Я сделал для модульного API имитацию DirectInput через хуки - вроде всё работает, даже если нажать эти три клавиши:

    Код:
    vkCode[0x2C] ; wParam[ 44] ; uScan[311] ; cFlags[0x1]
    vkCode[0x91] ; wParam[145] ; uScan[ 70] ; cFlags[0x0]
    WM_KEYDOWN uScan:[ 70] ; DIK_SYSRQ[0x80] ; DIK_SCROLL[0x80] ; DIK_PAUSE[0x00]
    
    vkCode[0x13] ; wParam[ 19] ; uScan[ 69] ; cFlags[0x0]
    WM_KEYDOWN uScan:[ 69] ; DIK_SYSRQ[0x80] ; DIK_SCROLL[0x80] ; DIK_PAUSE[0x80]
    
    vkCode[0x13] ; wParam[ 19] ; uScan[ 69] ; cFlags[0xFFFFFF80]
    WM_KEYUP   uScan:[ 69] ; DIK_SYSRQ[0x80] ; DIK_SCROLL[0x80] ; DIK_PAUSE[0x00]
    
    vkCode[0x2C] ; wParam[ 44] ; uScan[311] ; cFlags[0xFFFFFF81]
    WM_KEYUP   uScan:[311] ; DIK_SYSRQ[0x00] ; DIK_SCROLL[0x80] ; DIK_PAUSE[0x00]
    
    vkCode[0x91] ; wParam[145] ; uScan[ 70] ; cFlags[0xFFFFFF80]
    WM_KEYUP   uScan:[ 70] ; DIK_SYSRQ[0x00] ; DIK_SCROLL[0x00] ; DIK_PAUSE[0x00]
    Правда у меня почему-то нажатие клавиши <PrintScreen> не сопровождается вызовом WM_KEYDOWN ( лень разбираться почему - просто делаю скриншоты по WM_KEYUP ).

  8. #307
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    10,323
    Благодарностей: 3585
    Mentioned
    5 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Я сделал для модульного API имитацию DirectInput через хуки - вроде всё работает, даже если нажать эти три клавиши


    Правда у меня почему-то нажатие клавиши <PrintScreen> не сопровождается вызовом WM_KEYDOWN ( лень разбираться почему - просто делаю скриншоты по WM_KEYUP ).
    У меня тоже идет эмуляция DirectInput.

    Понятно, у меня при нажатии этих трех клавиш проверяется, что они нажаты и отжаты. Значит это глюк хуков какой-то.

  9. #308
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,654
    Благодарностей: 2788
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_07.01.14_00-00

    Изменения:

    1. Исправлены ошибки, обнаруженные в предыдущем релизе.

    2. Теперь процессор КМД может обращаться к любым устройствам на шине ДВК.

    3. Теперь, если имя файла прошивки содержит "91" или "93" - на шине КМД эмулируется микросхема 1809РУ1, если имя файла прошивки содержит "92" - на шине КМД эмулируется микросхема 537РУ11. Если ни одного из указанных сочетаний символов в имени файла прошивки нет - на шине КМД эмулируется 4 Кбайт памяти в диапазоне 020000..027777.

    4. Теперь КМД никак не реагирует на чтение его регистра данных.

    ...
    Последний раз редактировалось Patron; 07.01.2014 в 00:36.

  10. Эти 5 пользователя(ей) поблагодарили Patron за это полезное сообщение:
    Alex_K (07.01.2014), Doronetty (10.01.2014), hobot (07.01.2014), Vamos (07.01.2014), ZEman (07.01.2014)

  11. #309
    Guru Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    4,776
    Благодарностей: 1101
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    Smile

    Цитата Сообщение от Patron Посмотреть сообщение
    Обновилась текущая сборка "эмулятора ДВК": DVK_Emulator_07.01.14_00-00

    Изменения:

    1. Исправлены ошибки, обнаруженные в предыдущем релизе.

    2. Теперь процессор КМД может обращаться к любым устройствам на шине ДВК.

    3. Теперь, если имя файла прошивки содержит "91" или "93" - на шине КМД эмулируется микросхема 1809РУ1, если имя файла прошивки содержит "92" - на шине КМД эмулируется микросхема 537РУ11. Если ни одного из указанных сочетаний символов в имени файла прошивки нет - на шине КМД эмулируется 4 Кбайт памяти в диапазоне 020000..027777.

    4. Теперь КМД никак не реагирует на чтение его регистра данных.

    ...
    При всех доработках и функциональности - эмулятор всё ещё помещается (в стандартном наборе) на 1-у дискету ) Мощь! )
    Обновил на сайте архив с эмулятором и exe-шник в архиве VT52.
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  12. #310
    Master
    Регистрация
    05.03.2010
    Адрес
    Санкт-Петербург
    Сообщений
    781
    Благодарностей: 292
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если бы еще Titus сделал отдельно эмулятор 15-ИЭ на СОМ порт

Страница 31 из 161 ПерваяПервая ... 272829303132333435 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Эмулятор
    от vladimir53 в разделе Орион
    Ответов: 12
    Последнее: 12.06.2011, 16:38
  2. Эмулятор ПЗУ.
    от ALKO в разделе Память
    Ответов: 8
    Последнее: 17.05.2011, 12:41
  3. Эмулятор AY на AVR
    от serkiri в разделе Звук
    Ответов: 52
    Последнее: 10.06.2010, 08:01
  4. Эмулятор для Mac
    от AlexBel в разделе Эмуляторы
    Ответов: 11
    Последнее: 02.05.2010, 17:53

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •