User Tag List

Страница 16 из 18 ПерваяПервая ... 12131415161718 ПоследняяПоследняя
Показано с 151 по 160 из 178

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

  1. #151

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

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Как посмотреть, xchg же их меняет (перекоммутирует)
    Не, тут другое.
    Например, выполняется команда: lxi d,0x0024 (11 24 00)
    При этом 0x0024 записывается в регистр с именем "hl".
    Соответственно, когда выполняется команда: lxi h,0x0024 (21 36 00)
    значение 0x0036 записывается в регистр с именем "de".

    Немного покумекал... сейчас одна команда выполняет функцию:
    Код:
      ldax d (без сохранения в аккумуляторе, читаем в "di")
      mov m,di
      inx d
      inx h
      dcr a
    Регистр "di" штатно используется в процессоре, например в командах "mvi m,D8".
    Тут ничего нагромождать не пришлось.

    Для зацикливания достаточно:
    Код:
    adr:  ldmi
           jnz adr
    Осталось разобраться, как "рс" вернуть назад на один адрес.
    Последний раз редактировалось KTSerg; 21.09.2022 в 16:54.

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

  3. #152

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

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Например, выполняется команда: lxi d,0x0024 (11 24 00)
    При этом 0x0024 записывается в регистр с именем "hl".
    Соответственно, когда выполняется команда: lxi h,0x0024 (21 36 00)
    значение 0x0036 записывается в регистр с именем "de".
    Дальше добавляем xchg и еще раз lxi d, и lxi h,

  4. #153

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

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Дальше добавляем xchg и еще раз lxi d, и lxi h,
    А для чего это делать?

    Вроде симулируется так как хотел.
    Одна команда "ldmi" (за 10/12 тактов на байт/цикл) выполняет функцию:
    Код:
    adr: ldax d (без сохранения в аккумуляторе, читаем в "di")
         mov m,di
         inx d
         inx h
         dcr a
         jnz adr
    Нужно загонять в ПЛИС и тестить на разных старых программах для проверки совместимости.
    А потом тестировать новый алгоритм вывода спрайта на экран.
    Последний раз редактировалось KTSerg; 21.09.2022 в 17:33.

  5. #154

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

    По умолчанию

    Тест на реале показал, что моя доработка пока не совместима с командой "xchg".
    Нужно разбираться.

    Но если xchg не применяется, то в остальном пока тесты проходят.
    В старый тест вывода спрайта (24х24 пикселя 3 плана) разными методами, добавил алгоритм с новыми командами.
    https://disk.yandex.ru/i/o7WYXww9DNrz6A
    Результаты "ЕВВ4" - это заглушки, так как в подпрограммах использовались xchg.
    Получилось $27cd - 10189 выводов спрайта 24х24х3 за 10 секунд, это примерно 20 спрайтов за интервал между прерываниями.
    Стек при выводе спрайта не используется, прерывания разрешены.
    Для вывода спрайта используется аккумулятор и пары HL с DE.

  6. #155

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

    По умолчанию

    Графики ModelSim показывают, что проблему с "xchg" удалось обойти.
    Дело за тестами с ПЛИС на реальном Векторе.

  7. #156

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

    По умолчанию

    На Альтеровской девборде с модифицированным vm80a, запустил тест скорости вывода спрайтов.
    Алгоритм с моими командами копирования показал 27F8h = 10232 спрайта за 10 секунд, 20 спрайтов за одно прерывание.
    https://disk.yandex.ru/i/K-VdzcM1NgSVmA

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

    Подозреваю, что вставить в ПЛИС-процессор математику, ещё проще.
    Нужно только разобраться как организовать чтение кода команды состоящего из двух байт (как у Z80), а не из одного как обычно.

  8. #157

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

    По умолчанию

    Что-то я большего ускорения ожидал
    Перелопатил тест скорости вывода ч/б текста в режиме 512*256, 80 символов в строку.
    Получилось вот это, на фото.
    https://disk.yandex.ru/i/Y-qN2o1AyyMDpQ
    "Y" - успел вывести только в одну плоскость.

    Фонты 8 байт на символ, горизонтально, одинаковые как для режима 256х256, так и для 512х256.
    Предсдвиговых таблиц нет, проц сам сдвигает и маску накладывает.
    Малость разочарован.
    Последний раз редактировалось KTSerg; 02.10.2022 в 10:07.

  9. #158

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

    По умолчанию

    Цитата Сообщение от ivagor
    Если говорить о задаче вывода спрайтов (и тайлов) на экран, то стоит оценить предельный возможный вариант.
    ...
    2. Частичный разгон ядра 8080. Можно реализовать вывод спрайтов программно, но нужно некоторое количество быстрого озу внутри проца (или кеш). С этим озу проц пусть работает на 48 или 96 МГц, а снаружи опять видны только пересылки байтов.
    ...
    Есть какие-то стандарты по работе со спрайтам?
    Типа как/какие характеристики спрайта указывать, в каком формате загружать?
    Хочу попробовать загрузить спрайт 8х8х4 в М9К ПЛИСа.

    Нужно ещё разобраться, как это всё отреагирует на запрос прерывания, во время выполнения такого безобразия...
    Последний раз редактировалось KTSerg; 03.10.2022 в 09:50.

  10. #159

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

    По умолчанию

    По стандартам сложный вопрос. Можно сказать, что их нет, но более конструктивным будет ответ, что их определяют разработчики игр. Вспомним, кто делал последние игры - metamorpho и сейчас parallelno. В Binorum были спрайты без маски, можно сказать просто тайлы, в GameNoName - с маской.
    Сам я игрушки с нуля делал только в юности, потом понял, что я не игродел и только участвовал в портировании, в первую очередь с msx. У msx есть свой стандарт представления спрайтов (даже два, если не ограничиваться первым msxом). Т.е. по оптимизации вывода специальновекторовских спрайтов - к игроделам, а я могу сравнительно квалифицированно сказать, что нужно для упрощения и улучшения конверсий с msx, но тут мы возвращаемся к тому, что я уже писал. Задача комплексная, если не ограничиваться какой-нибудь одной демонстрационной программой, то нужна не только реализация в плисе, но и поддержка эмуляторов и средств разработки. При таком подходе мне (повторюсь) кажется более-менее реалистичным вариантом только z80, при всех его недостатках. А если ограничиваться одной демкой, то надо делать так, как самому нравится и удобно. Это не совсем умозрительные рассуждения, у меня были попытки наворотов (к v06cc), например 256 цветов, но все закончилось на одном тесте, в эмуляторы не пытался добавить, кучу программ под это не написал.

  11. #160

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

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    ...
    При таком подходе мне (повторюсь) кажется более-менее реалистичным вариантом только z80, при всех его недостатках.
    ...
    Т.е. речь о реализации в ПЛИС "векторовского контроллера z80" с самим z80. Типа проц z80 с распиновкой i8080 ?

Страница 16 из 18 ПерваяПервая ... 12131415161718 ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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