Почему этим должна заниматься видеокарта?
Почему этим должна заниматься видеокарта?
Последний раз редактировалось zx-kit; 18.06.2013 в 19:40.
"L-256"
как реализована совместимость с оригинальными спеками ?
8 бит процессор, 64 кб памяти... кому это нужно? чуть больше чем ничего (с) Синклер, Люди- Машины
http://legendofbytes.blogspot.com
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Вы имеете ввиду аппаратное подключение к краевому разъему или времянки оригинального Спектрума ?
Если аппаратно, то видеокарта планируется в слот ZX-BUS, на котором должна быть частота 14 МГц. А у оригинального Спека и ZXEvо, как тут написали, этого нет. Можно сделать дополнительный генератор 14 или 56 МГц на плате видеокарты.
Для реализации времянок оригинального Спектрума, как в LENINGRAD-2012, потребуется подача с видеокарты через ZX-BUS нового тактового сигнала на Z80. Для этого на плате предусмотрена перемычка. Если не подавать, то тактовые на Z80 будут идти с материнской платы.
Также предусмотрены вилки для подключения тумблеров или перемычек для управления следующими режимами:
1. CONTENDED MEMORY - ON/OFF
2. PORT FF - 0N/OFF
3. SCAN - ZX SPECTRUM (50 Hz) / PENTAGON-128 (48 Hz)
Последний раз редактировалось zx-kit; 19.06.2013 в 04:40.
"L-256"
Можешь сделать заготовку спецификации и положить ее в первое сообщение? А то вычитывать весь тред с целью понять что оно вообще должно уметь, утомительно. Да и мысли менялись уже. Для начала тест №1:
1. Определение наличия карточки.
2. Включение дополнительного видеорежима.
3. Очистка указанным цветом (из палитры?) и отображение нулевого экрана.
4. Установка цвета бордера (из палитры?).
5. Очистка и отображение первого экрана.
6. Возвращение режима 6912.
Проверяется:
1. Отправка команд в карточку и ожидание их приема.
2. Включение и выключение видеорежима.
3. Очистка экранной памяти заданным цветом.
4. Возможность показа обоих двух экранов.
5. Возврат к режиму 6912.
6. Работа бордера.
7. Детект карточки.
Отсебятина тут:
1. Очистка цветом - это я сам придумал, но видеокарта ведь все равно должна показывать какой-то цвет на месте, где нет тайла фона и точек спрайта.
2. Возврат в 6912 - это все-таки надо. К примеру, товарищи, программирующие на реале, это сильно заценят.
3. Детект карточки. Все-таки, хорошо бы, чтобы он был.
Вопросов по реализации также хватает:
1. Как передаются команды в карточку?
2. Как пользоваться переключением экранов? Классика, 7ffd?
3. Как задавать цвет бордюра?
4. Какая палитра будет после сброса карты? (предлагается - стандартная спековская, отображенная на все цвета с повторением через 16).
5. Как узнать когда команда выполнилась и выполнилась ли она.
6. Как узнать если карточка вообще?
7. Какие видеорежимы и с какой глубиной цвета будут реализованы? Будет ли поллитра.
P.S. Есть столь же детальные задумки для еще пары тестов. Первая пока на пробу.
Последний раз редактировалось Alex Rider; 19.06.2013 в 11:27.
Для управления видеокартой «METEOR-2013», которая предназначена для ускорения графики в
ZX SPECTRUM-совместимых компьютерах, разработаны простые и эффективные команды типа PRINT, PLOT, DRAW, POKE, PAPER, INK, BORDER, похожие по назначению на соответствующие команды BASICa.
Для указания места вывода на экран используются координаты X и Y. Спрайты загружаются
в память видеокарты и не занимают места в основной памяти компьютера. Во время игры с помощью соответствующих команд видеокарты спрайты копируются по номерам в указанные координаты экрана.
Спрайты можно накладывать друг на друга с использованием прозрачного цвета фона спрайта.
В одной игре можно использовать спрайты нескольких размеров. Имеется возможность задавать границы окна для печати спрайтов. При печати части спрайтов, выходящие за границы окна, обрезаются. Поверх спрайтов можно рисовать нужным цветом точками и линиями.
Параметры новых режимов - 256х192 и 320х240 точек, 255 цветов с палитрой + «прозрачный» цвет.
Два экрана - теневой и отображаемый. Координаты (0,0) в левом верхнем углу экрана.
Палитра - 3х6 бит (как BMP 256), размещена во внутренней памяти FPGA 256 * 18 бит.
Для команд работы с видеокартой «METEOR-2013» выделены адреса 5800H-58FFH в области атрибутов стандартного экрана ZX-SPECTRUM. Команда определяется по адресу, а данные, которые записывает Z80 по этому адресу, используются как параметры для этой команды. Команды в видеокарте накапливаются в буфере для исключения ожидания Z80 при выполнении сложных команд. Видеокарта затем выполняет накопленные команды из буфера.
История оптимизации команд для работы с видеокартой:
Код:130714-05 - глобальная оптимизация команд с целью ускорения заполнения экрана спрайтами 130711-01 - убраны команды задания границ копирования части спрайтов. Добавлены команды рисования точки 130707-01 - добавлены команды управления курсором. 130630-01 - координаты курсора на экране теперь могут быть отрицательными для автоматического обрезания спрайта при выходе за границу экрана. Координата Y теперь тоже состоит из старшего и младшего байта. 130629-02 - вместо команды установки младшего байта номера спрайта с копированием спрайта добавлены команты PRINT_AUTOINC_X, PRINT_AUTOINC_Y для печати спрайта с автоинкрементом координат. 130629-01 - Уточнение имен команд 130628 - В ходе написания примера работы с видеокартой уточнены названия команд и т.п. Также удобнее по одному адресу записывать номер команды, а по другому - значение этого параметра. Потом ПЛИС сможет записывать оба байта одним словом в буфер FIFO. 130624 - добавлен адрес спрайта с номером 0 130622 - вместо HL для адресации команд и данных теперь применятеся индексная адресация с IY 130621 - предложен буфер команд в FPGA для того чтобы не нужно было ждать готовности видеокарты. Запись команд и данных по адресу в HL.
Последний раз редактировалось zx-kit; 14.07.2013 в 15:07.
"L-256"
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)