User Tag List

Показано с 1 по 10 из 22

Тема: Эмуляторы других платформ в Орионе - программные и аппаратные

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,927
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    А вот зачем адрес возврата из nmi сохранять там?
    Видимо, на тот самый крайний случай, когда SP случайно указывает на ПЗУ
    А вообще, SP может указывать на область памяти, где находится обработчик NMI, и доставать байты из под него будет геморойно.

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

  3. #2

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Видимо, на тот самый крайний случай, когда SP случайно указывает на ПЗУ
    А вообще, SP может указывать на область памяти, где находится обработчик NMI, и доставать байты из под него будет геморойно.
    И что это нам дает? Придется делать выход за пределы обработчика NMI и уже там сначала выключать ПЗУ с обработчиком NMI, и затем делать RET? А этот доп. обработчик класть в ОЗУ где вероятно полезный код прерванного по NMI приложения? Который тоже сохранять (а где?), и как его восстанавливать если мы пришли сюда сделать RET? Какая-то бесконечная рекурсия.

    По-другому, надо делать: обработчик NMI весь держать в той же дополнительной ОЗУ или ПЗУ, включающейся по NMI, и аппаратно ловить выполнение команды RETI (упрощая - RET), по которой аппаратно опрокидывать триггер (отключать NMI-ПЗУ). Тогда на момент чтения со стека адреса возврата все в адресном пространстве уже будет в начальном состоянии.

    Или ваще не париться на предмет где там был стек. Мы эмулируем СПЕК (MSX), а значит знаем где у них ПЗУ и где гарантированно не будет стека. Там же и обработчик NMI разместить. Со Cпеком тут все просто, у него с 0000 идет ПЗУ. А где ПЗУ у MSX?

    - - - Добавлено - - -

    Кстати, метод "переодически ставить стек на ПЗУ" (если там реальное ПЗУ с известным кодом куски которого {например найти их поиском} задействовать под адреса возвратов) можно использовать как защиту от гипервизоров, реализованных на NMI: прерванный такой код вообще нигде не сохранит адрес возврата и не будет понятно куда возвращать управление.
    Последний раз редактировалось Error404; 08.06.2016 в 16:00.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  4. #3

    Регистрация
    16.12.2008
    Адрес
    Kharkov, Ukraina
    Сообщений
    2,221
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    18 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    А где ПЗУ у MSX?
    Интересный вопрос, да где угодно может быть ПЗУ.

    Вот один из примеров конфигурации памяти у MSX:

    - - - Добавлено - - -

    Гарантировано при включении только BIOS будет на своем месте (сброс ВВ55),
    а дальше в любой момент времени конфигурация видимой для Z80 памяти может быть какой угодно.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	1.jpg 
Просмотров:	200 
Размер:	55.0 Кб 
ID:	57358  

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

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

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

Похожие темы

  1. Как работают аппаратные спрайты
    от IanPo в разделе Для начинающих
    Ответов: 23
    Последнее: 06.11.2014, 15:24
  2. Ответов: 7
    Последнее: 12.01.2014, 21:43
  3. Ответов: 14
    Последнее: 16.05.2012, 16:55
  4. Программные интерфейсы.
    от fk0 в разделе Программирование
    Ответов: 1
    Последнее: 19.01.2006, 16:00
  5. МУЗЫКА ВСЕХ ПЛАТФОРМ
    от AAA в разделе Зарубежные компьютеры
    Ответов: 0
    Последнее: 16.10.2005, 19:16

Ваши права

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