...делать нужно так, как нужно. А как ненужно - делать не нужно (С) Винни-Пух :)
-
- Скроллинг по горизонтали делался просто - сдвигом байта через флаг переноса. У Z80 была обалденная система команд для работы со сдвигами. Даже что-то сдвига или переноса тетрадами. - Звepoящep(07.05.2024 08:15)
- Плавный скролинг только привязкой к прерыванию. Т.е. либо явная
отрисовка в прерывании либо остановка (HALT что ли команда.. забыл
уже) гиперлупа до прерывания. - POV(07.05.2024 00:28)
- эт как же? команда HALT просто останавливает CPU, и как прерывания
помогали в плавном скролле?? Вот команды блочной пересылки понятно
как. По структуре спектрума не помню уже, Adept(689 знак., 07.05.2024 00:40)
- Развертка синхронизирована с 50Гц прерыванием. Это и позволяло
рисовать на бордюре или плавно что-то двигать без артефактов. - POV(07.05.2024 00:41)
- не понимаю как, но спорить не буду, ибо и тогда не обладал
достаточными знаниями по структуре аппаратуры синклера, а теперь и
подавно :)) - Adept(07.05.2024 00:42)
- Блочные команды Z80, типа LIDIR (#ED #B0) занимают 21 такт на
пересылку 1 байта. Это много и код с ними работает медленнно. RxTx(1295 знак., 07.05.2024 01:06)
- но у LDIR автоинкремент и не надо тратить такты на коррекцию
индексных регистров и контроль окончания цикла копирования и
побайтово получается сильно быстрее (если конечно тупо не забивать
память командами явного копирования байта по адресам (новым в
каждой команде). По привязкам к прерыванию 50Гц понятно. (это даёт
выравнивание интервалов работы с экранным ОЗУ по кадрам) - Adept(07.05.2024 01:34)
- Вот это "выравнивание интервалов работы с экранным ОЗУ по кадрам", и дает полнейшую плавность графики. В некоторых ЖК/OLED микро-дисплейчиках есть регистр либо номера строки, либо начала скана кадра. Его всегда надо считывать и таким образом синхронизировать обновление экранного ОЗУ. RxTx(2626 знак., 17.05.2024 18:33)
- но у LDIR автоинкремент и не надо тратить такты на коррекцию
индексных регистров и контроль окончания цикла копирования и
побайтово получается сильно быстрее (если конечно тупо не забивать
память командами явного копирования байта по адресам (новым в
каждой команде). По привязкам к прерыванию 50Гц понятно. (это даёт
выравнивание интервалов работы с экранным ОЗУ по кадрам) - Adept(07.05.2024 01:34)
- Блочные команды Z80, типа LIDIR (#ED #B0) занимают 21 такт на
пересылку 1 байта. Это много и код с ними работает медленнно. RxTx(1295 знак., 07.05.2024 01:06)
- не понимаю как, но спорить не буду, ибо и тогда не обладал
достаточными знаниями по структуре аппаратуры синклера, а теперь и
подавно :)) - Adept(07.05.2024 00:42)
- Развертка синхронизирована с 50Гц прерыванием. Это и позволяло
рисовать на бордюре или плавно что-то двигать без артефактов. - POV(07.05.2024 00:41)
- эт как же? команда HALT просто останавливает CPU, и как прерывания
помогали в плавном скролле?? Вот команды блочной пересылки понятно
как. По структуре спектрума не помню уже, Adept(689 знак., 07.05.2024 00:40)