При обращении к карте состояния всех регистров запоминаются где-то? Интересует очень ситуация с IM2, когда задается адрес прерываний в самом спеке...
При обращении к карте состояния всех регистров запоминаются где-то? Интересует очень ситуация с IM2, когда задается адрес прерываний в самом спеке...
Карта будет работать пока только на запись через область по адресам ПЗУ. Из видеокарты ничего читать пока не планируется. IM2 в спеке работают как обычно. Дополнительные прерывания с видеокарты пока не планируются.
"L-256"
Как продвигается проект? На конец года планировался запуск карты...
Прочитал тему, вижу, аппетит пришёл во время еды
С палитрами я тоже не совсем понял, вроде, теперь речь идёт о 15 битах на точку без палитры.
Насчёт самодельной современной видеокарты с возможностями ускорителя для присоединения к "железному" спектруму есть сомнения. Есть ли смысл так делать для практического применения? Если используется FPGA, то почему бы не реализовать в ней и сам спектрум? Заодно реализовать порты для подключения USB клавиатуры и мыши.
Если хочется использовать что-то современное, то можно подключить готовую видеокарту от PC, вроде geforce 2, только нужно подружиться с шиной AGP. А в ней уже и выход VGA и быстрая видеопамять 32 мегабайт и всевозможные функции копирования/преобразования поверхностей. Даже с 3D можно что-то замутить при желании. При этом, сам спектрум будет только давать ему команды. Звучит заманчиво, вроде.
Есть предложение. Насколько я понял, у вас предполагается, что программист сам будет через определённые ячейки памяти общаться с вашей видеокартой. Может, стоит сделать драйвер с вменяемым API, реализующий функции вроде bitblt в windows. Адрес драйвера лежит в определённой ячейке памяти и программа вызывает его. Драйверу передаются идентификаторы и координаты прямоугольника изображения в источнике и приёмнике, и уже сам драйвер даёт нужные команды видеокарте. Тогда, можно будет создать драйвер с таким же API и для другой новой видеокарты, да хоть, подключенной VGA карте, и игра будет работать там тоже.
Только нужно, наверное, создать таблицу доступных разрешений и в драйвер подавать команду на включение нужного режима. Например:
- Режим 0 - стандартный спектрумовский. Установив его можно будет возвращаться к стандартному экрану самого компьютера.
- Режим 1 - 256х192, 8 бит RGB232 (без палитры, как вы задумывали сначала).
- Режим 2 - 256х192, 8 бит с палитрой RGB555.
- Режим 3 - 320х200, 8 бит с палитрой RGB555.
- Режим 4 - 320х240, 15 бит RGB555. Последний бит может использоваться как флаг прозрачности для спрайтов.
- Режим 5 - 640х480, 8 бит с палитрой RGB555
- Режим 5 - 640х480, 16 бит RGB555.
Может ещё какие.
В начале даём команду драйверу "загрузить спрайт", после загрузки можно дать команду "установить режим N", потом командами копирования и вывода на экран формировать игровое поле, в конце "установить режим 0" и вернуться к стандартному экрану. При этом, сама видеокарта производит переключение видеовыхода со спектрумовского на свой и обратно. Если режимы не совместимые с TV, то можно использовать просто отдельный выход видеокарты без выведения туда стандартного экрана.
Вот здесь http://forum.ixbt.com/topic.cgi?id=48:11358 человек делает эмулируемый спектрум на AVR.
он его давно сделал "здесь"
http://zx-pk.ru/threads/19442
goodboy
Понятно. Однако, более свежие сообщения оказались на ixbt.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
На мой взгляд видеокарта должна быть проще. Чтобы можно было взять подпрограмму вывода изображения из обычной игры, заменить команды вывода и получить изображение без клешинга. При этом код должен занимать меньше места, чем до этого. Никаких драйверов, API и т.п. излишеств WINDOWS. На текущий момент обмен между Z80 и видеокартой уменьшен до двух адресов - адрес номера регистра и адрес данных. При этом шину данных можно подать через 555АП6, а сигналы управления сформировать с помощью 555ИД7. На каждый адрес выделяется по 8 К из области ПЗУ. Только запись. Стандартный экран берется в цифровом виде (RGBS) с материнской платы компьютера.
Что-то типа внешней видеокарты VOODOO.
Тогда можно будет добавить режим Метеор в видеоадаптер VGA SPUTNIK. Только еще не выбрал тип ОЗУ. Если установить статику SRAM 256Kx16, вроде проще, но почти вся память уйдет на буферы VGA. Если установить SDRAM 4Mx16 много свободного места для расширения возможностей, но придется работать с пакетами по 8 слов.
Такой подход позволит подключить видеокарту к разным типам компьютеров, например, к Ориону для расширения графики.
- - - Добавлено - - -
Кварц планируется использовать на 27 MHz. Припаял в Speccy2010 и проверил возможность вывода с разрешением FULL HD 1920x1280 60 Hz.
На фото клетки с шагом 8 точек. В видеокарту надо будет добавить регистры выбора масштаба. Для разрешения Спектрума надо будет использовать увеличение в 4 раза.
Последний раз редактировалось zx-kit; 21.04.2016 в 18:50.
"L-256"
возьмите уже какой-нить FT800. на крайняк есть Opencores, там пачка разных gpu валяется даром. велосипед давно изобретён.
Вообще, можно не вводить команды именно копирования, а работать со всем спрайтом. Например, видеокарта поддерживает 256 спрайтов. Они могут быть произвольного размера (в разумных пределах). Имеется таблица спрайтов, номер записи соответствует номеру спрайта, ещё в таблице хранится флаг видимости спрайта, координаты на экране X и Y, ширина и высота спрайта, адрес первого байта данных спрайта (определяется самой картой и недоступен из вне). Сначала спрайты загружаются командой "Загрузить спрайт 0 (1, 2...255)", затем, по ходу построения игровой сцены даются команды вида "Задать координаты спрайта 0 как X1, Y1" и так для всех задействованных спрайтов. В конце даётся команда "Построить сцену" и сама карта копирует нужный спрайт в нужное место на выбранный экран с учётом видимости спрайта и прозрачности. После отрисовки всех спрайтов этот буфер автоматически становится видимым для отображения построенного экрана.
При таком подходе программисту уже не важно, реализуются спрайты аппаратно или копируются всё время - для программиста всё это происходит аппаратно и автоматически, что намного облегчает программирование.
Чем-то эта модель похожа на модель денди.
- - - Добавлено - - -
Боюсь, там нет определённого стандарта в этом вопросе, и может не быть подпрограмм. В погоне за производительностью могли применяться самые разные способы быстрого вывода динамических изображений, включая сохранение фона.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)