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

User Tag List

Страница 2 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 11 по 20 из 43

Тема: Управление эмулятором из zx-программы

  1. #11
    Activist Аватар для Spectre
    Регистрация
    26.01.2005
    Адрес
    Минск
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сдались вам эти ED nn команды. Мне больше нравится последовательность которая состоит из документированных команд (чтобы с ассемблерами и отладчиками проблем не было), но с околонулевой вероятностью встречается в реальном коде.

    Смысл детектировать эмулятор я вообще не вижу. Да и что должна сделать программа если она хочет включить режим пентагона, но ей это не удается? Ничего!

    Поэтому достаточно включить что-то, а если не включилось виноват пользователь, который запретил это в эмуляторе или использует неправильную версию. Я как-то сомневаюсь что даже чтение текущих значенеий понадобится.

  2. #12
    Master Аватар для Vladimir Kladov
    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    2Smt: Вообще- то EDFF - это NOP чистой воды. Так что 100 раз перепроверяться не надо. Если этот трап что-то изменил, то это трап

    2Spectre: если что-то делать, то пусть будет на отдельных командах, и не влияет ни на долю микросекунды на скорость выполнения других команд. А мы раньше ничего не делали, и все было хорошо. А пусть теперь будет. Всегда можно опцией/конфигурацией вырубить/врубить.
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  3. #13
    Veteran Аватар для SMT
    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov
    Вообще- то EDFF - это NOP чистой воды. Так что 100 раз перепроверяться не надо. Если этот трап что-то изменил, то это трап
    надо. этот #EDFF может быть среди мусора внутри ксорки. если влияет на регистры, не расксорится же

  4. #14
    Master Аватар для Vladimir Kladov
    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    если такое чудо попадется, отрубить недолго - в опциях (особенно если опции отрубаются конфигом на лету). Это же когда сама ED FF в этой ксорке исполняется. А зачем ее в здравом уме выполнять? Только чтобы замутить покруче разве...
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  5. #15
    Veteran Аватар для SMT
    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov
    если такое чудо попадется, отрубить недолго - в опциях (особенно если опции отрубаются конфигом на лету). Это же когда сама ED FF в этой ксорке исполняется
    а попробуй догадайся, что именно надо отрубить. особенно когда этот #EDFF был сделан полгода назад и подобных проблем раньше не было
    Цитата Сообщение от Vladimir Kladov
    А зачем ее в здравом уме выполнять?
    а зачем в здравом уме в загрузчики между ксорками помещать приветы? а зачем на эти приветы передавать управление, вываливаться в ПЗУ-48 по ошибке или в калькулятор и запускать следующую расксорку как обработчик сообщения rst#08? пойди пойми этих спектрумистов. причём зарубежные ничем не отличались ;-)

  6. #16
    Master Аватар для Vladimir Kladov
    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    я по умолчанию сделаю выключено. Если включит и не догадается зачем это сделал, это проблемы юзера. Но серьезно вряд ли будет проблема.

    Well. Можно сделать такую штуку: пусть при вызове этих фич IX показывает на строку в памяти: 'Emulator traps'. Так - достаточно?
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

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

  8. #17
    Veteran Аватар для SMT
    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    строка - нормально. а может, действительно, сделать так, чтобы эмулируемая машина не имела возможности узнать, что сработал TRAP? все нужные функции (даже гипотетические) не требуют возврата данных: скорость, режимы постобработки изображения/звука, раскладка стерео для AY

  9. #18
    Master Аватар для Vladimir Kladov
    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ну почему же, скороть текущую как раз можно сделать чтобы узнавать. Например - узнал, сохранил, выставил новую (большую) сделал дела, врубил прежнюю. Другое дело что для этой фичи еще опцию можно добавить - типа не реагировать. А прикольно например: аудиоплеер, который читает скорость эмуляции, подгоняет скорость аудио, чтобы оно шло как с обычной скоростью хе-хе.

    По идее через трапы много чего можно сделать. Попросить подрубить оборудование. Включить нужную модель. Да хоть движок графический 3D реализовать.
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  10. #19
    Activist Аватар для Spectre
    Регистрация
    26.01.2005
    Адрес
    Минск
    Сообщений
    294
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SMT
    строка - нормально.
    Строка - это дико. Одно дело впихнуть STS'кой в код программы 5 байт, включающих турбо, совсем другое дело созранить IX, вызвать трап, подсчитать CRC полученной строки, сравнить с нужным, восстановить IX. Это уже байт на 50 потянет. А значит по памяти их не вспомнишь, да и место выискать придется.

    Тем более еще раз повторюсь: не надо ED и прочие префиксы, если я этот код захочу дизассемблировать, поймет ли его дизассемблер? Плюс в разных ассемблерах разные обозначения недокументированных команд.

    Цитата Сообщение от SMT
    а может, действительно, сделать так, чтобы эмулируемая машина не имела возможности узнать, что сработал TRAP? все нужные функции (даже гипотетические) не требуют возврата данных: скорость, режимы постобработки изображения/звука, раскладка стерео для AY
    Вот, все ближе и ближе к спектрумским программистам.

  11. #20
    Veteran Аватар для SMT
    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov
    По идее через трапы много чего можно сделать. Попросить подрубить оборудование. Включить нужную модель
    модель - некорректно. по хорошему, после смены модели (т.е. пзу и портов памяти) нужен reset. трап, вызывающий reset, бесполезен. если только не модель, а времянки (нафига это кодерам)
    Цитата Сообщение от Vladimir Kladov
    Да хоть движок графический 3D реализовать
    и под этот движок будет ровно 1 игра, написанная автором эмулятора ;-)
    Цитата Сообщение от Vladimir Kladov
    скороть текущую как раз можно сделать чтобы узнавать. Например - узнал, сохранил, выставил новую (большую) сделал дела, врубил прежнюю
    очень сомневаюсь, что будут пользоваться значениями, отличными от normal/max. интерактивную прогу или демо немного ускорить нет смысла (если есть, юзер сам это сделает в настройках эмуля. а принудительно не надо), на реалах будет тормозить. проще тогда писать полноценную писишную версию
    Цитата Сообщение от Spectre
    другое дело созранить IX, вызвать трап, подсчитать CRC полученной строки, сравнить с нужным, восстановить IX. Это уже байт на 50 потянет
    чуть поменьше -
    Код:
      call nn
      db 'emulator traps'
    nn: pop ix
      dw #FFED
    так и знал, что кодеры накинутся считать байты

Страница 2 из 5 ПерваяПервая 12345 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Замена дисковода эмулятором диска
    от pbogdan в разделе Внешние накопители
    Ответов: 643
    Последнее: 15.02.2018, 15:45
  2. Ответов: 7
    Последнее: 09.05.2006, 20:32
  3. Ответов: 0
    Последнее: 16.02.2006, 11:21
  4. Программы для модемов
    от p@lex в разделе Софт
    Ответов: 21
    Последнее: 11.02.2006, 21:36

Ваши права

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