User Tag List

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

Тема: Вектор-06Ц, 580хх на ПЛИС

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

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

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,390
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    если верить даташиту i8080, то проверка запроса прерывания происходит в последнем цикле каждой команды.
    Так там и нет команд вывода спрайтов. А при реализации в плис никто не может помешать проверять запрос прерывания например после каждой записи байта в память.

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

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

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

  3. #2

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    ... при реализации в плис никто не может помешать проверять запрос прерывания например после каждой записи байта в память.
    ...
    Я об этом думал. Но не уверен, что после возврата из прерывания удастся вернуть состояние всех потрошков в тот вид, который был у них в момент прерывания процесса. Для модификации команд ведь приходится, что-то "корявить". В Векторе вроде нет специальной команды, которая завершает прерывание. А если в программе используется для этих целей не просто "ret", а "pchl" к примеру... тогда понять, что нужно вернуться к продолжению прерванной операции, будет ещё сложнее, если вообще возможно.

  4. #3

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,390
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  5. #4

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Это не техническая сложность, не принципиальная проблема, это вопрос аккуратной разработки. Адрес откуда читаем (или два адреса, если графика и маска отдельно), адрес куда пишем, счетчик. Приход прерывания во время такой долгой команды должен приводить к помещению в стек ее (этой команды) адреса, состояние регистров - как обычно, если обработчик прерывания корректный, то он сохраняет то, что сам меняет. И возврат приведет к корректному продолжению.
    Не совсем так.
    Возврат из прерывания это команда, когда она закончится, процессор должен будет прочитать новую команду, а как ему объяснить, что команду вот именно сейчас читать не нужно, что она уже выполнялась, и что её нужно просто продолжать выполнять, причём с определённого места.
    В крайнем случае. Можно подумать о дополнительном флаге (для модифицированной команды) выполнения команды. Если модифицированная команда читается, но флаг был не сброшен (предыдущим штатным окончанием выполнения этой команды), значит её выполнение было прервано, и нужно продолжить выполнять с текущего состояния счётчиков. А "РС" держать с самого начала на повтор этой команды, и только после успешного окончания переводить его на следующую команду.
    Нужно перевариваь...

  6. #5

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,390
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  7. #6

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Я описал вариант, при котором ничего ему не надо специально объяснять. Он после прерывания читает команду "как в первый раз", но в регистрах уже текущие значения, поэтому продолжит выполнять дальше. Т.е. выполнение команды разобьется на две части - до прерывания и после.
    Я прикидывал, что именно в первом цикле команды, когда считывается код команды, происходит инициализация (дополнительных счетчиков, флагов, признаков), и чтение характеристик спрайта.
    Если выполнение команды, разрывалось прерыванием, и после возврата из прерывания, снова выполнится чтение кода команды, то без дополнительного указателя, снова произойдёт инициализация вывода спрайта, только уже в новых адресах, в текущих указателях hl, de, bc.

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

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

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

Похожие темы

  1. Ответов: 4
    Последнее: 23.06.2016, 00:02
  2. Продам Вектор 06Ц
    от zzz в разделе Барахолка (архив)
    Ответов: 27
    Последнее: 29.04.2011, 12:20
  3. Вектор-06Ц
    от Robusta в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 17.03.2009, 23:18
  4. Вектор-06Ц: БП от PC
    от Dmitry Dubrovenko в разделе Вектор
    Ответов: 11
    Последнее: 08.03.2009, 21:53
  5. Вектор-06Ц
    от AlexBel в разделе Барахолка (архив)
    Ответов: 4
    Последнее: 20.12.2007, 08:23

Ваши права

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