User Tag List

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 30

Тема: Прерывания IM2 в Специалисте на КР580

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

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

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    barsik, чем вам не нравится rst#38 и DI при старте?
    Почему не нравится? Нравится и поначалу так и сделаю. Просто возникла красивая идея, я и поделился.

    Вариант когда прерывания по RST можно использовать только в конкретной программе, которая грузится на адрес 0000, подставляя свой обработчик прерывания на адрес RST.

    А вариант с прерываниями по CALL, т.е с ВН59 (или с его более простой имитацией на буфере) позволяют всегда иметь включённые прерывания при любых прогоняемых программах. Тогда можно на прерываниях подключить и Kempston-Mouse и с клавиатурой избежать потери нажатий. Пригодится, когда выполняется обслуживание линии связи с IBM PC в реальном времени, а с 0 надо загружать другие программы.

    Во вложении тест прерываний. Замеряет число тактов CPU между прерываниями. Это позволяет проверить точно ли в эмуляторе реализован период 50 Гц. Для нахождения периода надо умножить число тактов на период клока CPU.
    Вложения Вложения
    • Тип файла: rar INT.rar (689 байт, Просмотров: 84)

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

  3. #2

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Почему не нравится? Нравится и поначалу так и сделаю. Просто возникла красивая идея, я и поделился.

    Вариант когда прерывания по RST можно использовать только в конкретной программе, которая грузится на адрес 0000, подставляя свой обработчик прерывания на адрес RST.

    А вариант с прерываниями по CALL, т.е с ВН59 (или с его более простой имитацией на буфере) позволяют всегда иметь включённые прерывания при любых прогоняемых программах. Тогда можно на прерываниях подключить и Kempston-Mouse и с клавиатурой избежать потери нажатий. Пригодится, когда выполняется обслуживание линии связи с IBM PC в реальном времени, а с 0 надо загружать другие программы.

    Во вложении тест прерываний. Замеряет число тактов CPU между прерываниями. Это позволяет проверить точно ли в эмуляторе реализован период 50 Гц. Для нахождения периода надо умножить число тактов на период клока CPU.
    на данный момент прерывания никак не используются специалистом
    соответственно нет и программ использующих прерывания.
    соответственно чтобы не было проблем нельзя использовать старые программы с включенными прерываниями
    иначе могут быть неприятности различного плана.

    для использования прерывания должны быть написаны новые программы.
    а там уже и адрес #0038 имеет смысл. и прочее
    С уважением,
    Jerri / Red Triangle.

  4. #3

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,213
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,644
    Поблагодарили
    572 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Система прерываний на ПК Специалист

    Идея добавить прерывания в Специалист витает довольно давно. А в некоторых клонах на Z80 типа Эрика она и вовсе уже давно реализована.

    Давайте на данном этапе откинем рассуждения о совместимости со всем предыдущим софтом, о том, что сигнал INTE процессора уже задействован в системе цветности, о том, что всё равно никто уже под это дело ничего писать не будет и т.д. Я предлагаю пока просто пофантазировать какими должны быть идеальные прерывания на Специалисте.

    Как я понимаю, ни у кого не возникает сомнений, что прерывания должны быть частотой 50 Hz. Ну хотя бы для того, что можно было синхронизироваться с экраном и использовать, написанную на Спектруме, музыку.

    Такие прерывания уже организовал @Pyk в Emu80:

    Цитата Сообщение от Pyk Посмотреть сообщение
    - - -
    zx_, для включения периодических прерываний в "Специалисте" добавьте в конец конфигурационного файла следующие строки:
    Код:
    PeriodicInt8080 periodicInt = &cpu, 7, 50
    periodicInt.active = yes
    Здесь 7 - это номер вектора прерывания (rst 7), а 50 - частота прерываний
    Правда, чтобы не лезть в сам код эмулятора, Виктор сделал эти прерывания независимыми от обновления экрана. То есть прерывания просто приходят 50 раз в секунду, независимо ни от чего. Но и это уже хоть что-то! Я с делом поигрался и уже выкладывал результат:



    Отчётливо видно, что бегущая строка периодически рвётся, несмотря на то, что всё выводится по прерываниям и успевает по тактам уложиться между кадрами.
    @RW9UAO, готов внедрить правильные прерывания свой FPGA Специалист, а Pyk готов аналогичным образом доработать свой эмулятор. Таким образом можно будет обкатать их. Если всё будет хорошо, то, возможно, кто-то (@Mick?) захочет это воплотить в реальном железе.

    Собственно вопрос: Когда должны приходить прерывания и какой длительности сигнал должен быть? Дело в том, что полезность прерывания для, например, отрисовки спрайтов, зависит от того, на каком этапе строения кадра прерывание придёт. При этом не стоит забывать о том, чтобы реализовать в железе это было максимально просто.
    Последний раз редактировалось CityAceE; 26.06.2025 в 12:42.
    С уважением, Станислав.

  5. #4

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,141
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    769
    Поблагодарили
    417 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Собственно вопрос: Когда должны приходить прерывания и какой длительности сигнал должен быть? Дело в том, что полезность прерывания для, например, отрисовки спрайтов, зависит от того, на каком этапе строения кадра прерывание придёт. При этом не стоит забывать о том, чтобы реализовать в железе это было максимально просто.
    Прерывания по сути как события в ОС. По ним не только выводить спрайты, бегущую строку, а можно вообще кучу всего делать, например опрос клавиатуры и т.д. Вывод картинок, строк и т.д. связанные с визуальной частью, лучше конечно синхронизировать с кадровыми импульсами, чтобы не было дерганий. Естественно можно тогда задаться вопросом, насколько так сказать "мощно" прерывания нужны для компа. Дело в том, что если просто ограничится выводом звука, спрайтов, бегущих строк и небольшими процедурами типа опрос клавы, то хватит одного источника от кадровой развертки и соответственно схема условно будет на двух-трех элементах, а если нужно больше источников, то как минимум ВН59 напрашивается.

    Касательно простых прерываний от кадровой развертки, то как я писал уже можно взять кусок от Ленинграда на ВМ80 и как уже говорили, нужно будет еще слово состояния отследить. По длительности сигнала прерывания - насколько я помню по моему в Спектруме было 32 такта. Кстати о кадровой развертки, поскольку в Специалисте ничего на кадровой развертке не синхронизовано, то вполне можно использовать 60Гц и VGA развертку, но тогда возникнут проблемы с AY, если он планируется, ибо основная масса музыки написано под 50Гц развертки.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  6. #5

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

    По умолчанию

    Цитата Сообщение от Mick Посмотреть сообщение
    60Гц и VGA развертку
    Получается в этом случае без подключения к телевизору, т.к. при 60 Гц на ТВ максимум 240 строк, на реальных ТВ еще меньше. И нужен или скандаблер или вдвое ускорить выборку из озу.

  7. #6

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,141
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    769
    Поблагодарили
    417 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Получается в этом случае без подключения к телевизору, т.к. при 60 Гц на ТВ максимум 240 строк, на реальных ТВ еще меньше. И нужен или скандаблер или вдвое ускорить выборку из озу.
    Это просто была мысль, если с подключением телеку, то безусловно родные 15625Гц и 50Гц
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  8. #7

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

    По умолчанию

    Как вариант. Если использовать ВН59, то можно кадровые на один вход, строчные на другой, от таймера на третий и еще остаются. А таймер можно запрограммировать на сколько хочешь Гц, хоть 50, хоть 60, хоть 300.

    Этот пользователь поблагодарил ivagor за это полезное сообщение:

    CityAceE(26.06.2025)

  9. #8

    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,375
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    384
    Поблагодарили
    346 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Как вариант. Если использовать ВН59, то можно кадровые на один вход, строчные на другой, от таймера на третий и еще остаются. А таймер можно запрограммировать на сколько хочешь Гц, хоть 50, хоть 60, хоть 300.
    ВН59 при типичном использовании даст нам 27 тактов только на вход в процедуру прерываения (CALL в таблицу векторов, оттуда JMP собственно в процедуру). на и так дохлом 8080 многовато выходит...

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

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Как считаете, схема предложенная Barsik'ом жизнеспособна?
    должна работать, вопрос зачем внешний триггер запрета прерываний когда есть команда DI?

    Зверинецъ

    Специалист (был когда-то "совсем стандарт") - 1988-2023
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    БК0010-01 стоковый
    [свернуть]

  10. #9

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,213
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,644
    Поблагодарили
    572 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Serg6845 Посмотреть сообщение
    зачем внешний триггер запрета прерываний когда есть команда DI?
    Возможно, для полной совместимости с уже имеющимся софтом?
    С уважением, Станислав.

  11. #10

    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,375
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    384
    Поблагодарили
    346 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Возможно, для полной совместимости с уже имеющимся софтом?
    а он есть? или как в соседней теме - есть только схема, которую не факт что кто-то собирал?

    Зверинецъ

    Специалист (был когда-то "совсем стандарт") - 1988-2023
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    БК0010-01 стоковый
    [свернуть]

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

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

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

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

Похожие темы

  1. Разработка системы на КР580 серии
    от Viktor2312 в разделе Разное
    Ответов: 45
    Последнее: 21.10.2015, 23:58
  2. КР580 - 2,5 Мгц only?
    от alex-eller в разделе Разное
    Ответов: 88
    Последнее: 09.05.2015, 08:41
  3. IM2 в TR-DOS
    от VELESOFT в разделе Софт
    Ответов: 1
    Последнее: 02.02.2013, 19:17
  4. im2 и call 3d13
    от moroz1999 в разделе Программирование
    Ответов: 36
    Последнее: 20.01.2007, 13:00
  5. IM2, вектор прерывания
    от Jukov в разделе Программирование
    Ответов: 18
    Последнее: 20.09.2006, 09:32

Ваши права

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