Все о БК ДВК УКНЦ VAX Alpha
Архив ПО для ретрокомпьютеров
предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах
Вопрос по регистрам палитры
как я представляю:
для поддержки legacy режима 256х256
сделаю 4 регистра с палитрой (соответственно на каждую пару бит)
их можно будет крутить как угодно - выставляя лбое 15бит значение
(теперь можно будет менять цвет фона)
адреса - к примеру
177400-177406
для 512х256 будет работать пара 177400 (точка) и 177406 (нет точки)
при установки палитры через legacy регистр 177662, регистры 177400-177406 будут заполняться значениями соответствующими стандартной палитре БК11М
тем самым сохраняется полная совместимость с гибкостью
однако не все так просто:
рассматривая видеорежимы с большим числом цветов приходит понимание, что расходовать адресное пространство под регистры палитры не самая хорошая идея и тем более не правильно расходовать ресурсы ПЛИС под эти регистры.
Соответственно рождается другая концепция
два регистра
первый - адрес ячейки палитры
второй - значение палитры 15bit
получается, что для режима с 16тю цветами будут актуальны первые 16 палитр, для 256 цветов - 256ячеек
концепция совместимости с заполнением стандартными значениями сохраняется.
недостаток этой концепции один - для изменения значения палитры потребуется 2 операции - установка адреса и уже потом установка ее значения
нет возражений/предложений ?
вопрос - критично ли доступность этой палитры на чтение ?
----------
далее размышляя над возможностями видеосистемами, приходит идея с адресами строк: [как я понимаю в союз-неоне это как раз и сделано?]
те получается еще 3 регистра:
1. номер строки - 0-767
2. адрес - старшие 8bit
3. адрес - младшие 16bit
иначе говоря можно адресовать все 32МБ памяти как видеопамяти [за исключением служебной части, возможно будет сделано разделение банков]
нет возражений/предложений ?
Последний раз редактировалось SuperMax; 17.01.2021 в 15:03.
Все о БК ДВК УКНЦ VAX Alpha
Архив ПО для ретрокомпьютеров
предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах
Желательно, так можно будет не хранить копию таблицы палитр в основной памяти, а модифицировать значения прямо в регистрах.
Про видеосистему.
Аппаратный вертикальный, горизонтальный скроллинг планируется?
Битпланы реализовать возможно? С независимым скроллингом. Чтобы прям аппаратно спрайты двигать.
А ещё можно оставить на адрес только один регистр 16 бит, там будет не абсолютный адрес, а смещение, padding, или как там его.
{Абс.адрес строки} = padding * {ширина строки в байтах}
Что-то типа сегментного регистра в 80286. Потому что у строки есть фиксированная ширина, и предполагается, что строки не должны пересекаться.
ok
вертикальный - штатный регистр 177662Про видеосистему.Аппаратный вертикальный, горизонтальный скроллинг планируется?
обдумаюБитпланы реализовать возможно? С независимым скроллингом. Чтобы прям аппаратно спрайты двигать.
тк я изначально хотел сделать спрайты отдельно
мысль понял. обдумываю,А ещё можно оставить на адрес только один регистр 16 бит, там будет не абсолютный адрес, а смещение, padding, или как там его.
{Абс.адрес строки} = padding * {ширина строки в байтах}
Что-то типа сегментного регистра в 80286. Потому что у строки есть фиксированная ширина, и предполагается, что строки не должны пересекаться.
у строки будет задаваться максимальная длина, а в остальном без ограничений
Все о БК ДВК УКНЦ VAX Alpha
Архив ПО для ретрокомпьютеров
предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах
Мысль такая есть. Пока я жду, когда сформируется ТО на изделие, чтобы иметь представление, как оно должно функционировать, и с какого боку к нему подступиться. А заодно отдыхаю от умственных нагрузок, поэтому не хочу бежать впереди паровоза.
Попытка прикрутить эмулятор Менестреля, которая успехом не увенчалась, - показатель того, что я пока не в состоянии нормально функционировать.
c палитрой будет так:
нумерация кодов цветов
палитра коды цветов (адреса ячеек палитры)
256 0-256
16 256-272
4 273-276
2 277-278
разделение палитр без пересечения исключит необходимость перегрузки палитры при каждом изменении отображения
для инициализации палитр при старте сделал калькулятор
https://forum.maxiol.com/index.php?a...t=0#entry55113
он также пригодится для разработчиков тк упаковывает RGB в 15bit цвет
Все о БК ДВК УКНЦ VAX Alpha
Архив ПО для ретрокомпьютеров
предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах
ВП1-37 вообще не выдаёт никаких бит. Через неё проходит только шина адреса. Всё, что она делает -- это раз в 8 тактов частоты 6 МГц выдаёт строб записи в регистр видеовывода. Дальнейшие события к ней не имеют никакого отношения.
Конкретно в БК-0010 сделано так: параллельно стоят два 8-битных сдвиговых регистра, один из которых содержит чётные, а второй -- нечётные биты слова. Они оба сдвигаются вправо с частотой 6МГц. Младшие два бита определяют цвет одной точки на "цветном" выходе, либо яркость двух точек на чёрно-белом через мультиплексор, управляемый фазой частоты 6 МГц.
Дополнительно, в 11М "цветной" двухбитовый код используется как часть адреса ПЗУ палитр. Кстати, в ПЗУ использована только четверть ёмкости, остальное забито нулями.
Частота 12 МГц нигде в БК не используется и есть только внутри генератора тактовой частоты.
- - - Добавлено - - -
Логика 037 построена вокруг словных циклов, с частотой следования 6МГц/8. В строке таких циклов 48, что даёт стандартную длительность ТВ строки в 64мкс. 32 цикла используются для построения изображения, остальные 16 -- горизонтальное гашение. В каждом цикле одна половина отдаёётся видеоконтроллеру, даже на полях гашения, вторая может быть отдана процессору.
Это место, кстати, сделано криво, и 037 никак не может отдать процессору более половины временных окон доступа. Конкретно в десятке процессору достаётся максимум одна треть, что и определяет минимальное время исполнения команды в 12 тактов частоты 3 МГц. При более вменяемой реализации контроллера памяти можно было бы иметь пиковое быстродействие в полтора раза больше, если не ошибаюсь.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)