ZXNet эхоконференция «code.zx»


тема: Ускоритель видеологики.



от: Ivan Kuvshinov
кому: All
дата: 03 Jun 2005

Если уж делать расширенный экран для Спектрума, то
почему бы его не поместить в адресное пространство ПЗУ? Это
же 16 Кб чистого экрана да ещё и с освобождением адресного
пространства, что весьма прилично!

Аргументы такие - экран редко читается и можно обойтись
без этого, в ПЗУ не требуется писать, так что можно
разделить чтение и запись: чтение - из ПЗУ, а запись - в
экран по одним и тем же адресам. Видеоконтроллер может
читать на прямую. С совместимостью никаких проблемм, ведь
запись на чтении никак не отражается, и по барабану какое
ПЗУ подсунуто, главное что это ПЗУ, да и банками не надо
щёлкать.
> А как один бит в байт добавить (линию pисуем)? Для этого
>надо читать или всёже не надо? А если надо, копию этого
>байта следует где-то ещё заpанее делать? Может быть,
>аппаpатно сделать возможность записи не всех бит в байт для
>сохpанения тех, что писать не надо (тогда станет возможным
>ставитьснимать один бит без чтения)? А как тогда быть с
>совместимостью и быстpодействием?
Подумаши пришёл к такому выводу - всё будет чики-чики,
если для того что бы поставить точку не надо будет ничего
читать, а это значит байт (или несколько) на точку или
расположить там только цветовые аттрибуты.
Для 16Кб имеем где-то 128*128 или 160*102 при 256 цветах
(как раз видео клипы смотреть :-) ). Или одни аттрибуты
(байт на байт) для разрешения 512*240 - как раз уложимся
(15360).

По большому счёту видеопамять требуется только для
записи, если рассматривать её с точки зрения программ.
Конечно, речь идёт только о количественной оценке, а не о
абсолютном утверждении, но тем не менее это может оказаться
полезным.
Итак была приведенна идея о том как использовать выгоду
одностороннего чтения, но.. - она не учитывает ОСОБОЙ
структуры экрана на Спектруме, благодаря которому, что бы
поставить обычную точку следует, произвести логическую
операцию со значением в видеопамяти, что не мыслимо без
чтения. Однако сами принципы работы с экраном не меняются и
если бы такие логические операции могли проводиться без
чтения, то всё очень хорошо бы легло в предложеннную идею.
Hо решение лежит на поверхности - ведь логические операции
элементарны их очень мало и очень просто реализуются в
железе, а непосредственное значение ячеек видеопамяти
программам не нужно, то есть можно сделать переключаемые
режимы работы с видеопамятью, которые будут осуществлять
логические операции с копируемыми туда данными. Это может
существенно увеличить скорость работы с графикой на
Спектруме и даёт возможность применить и основную идею
изложенную в самом начале.
Вопрос к опытным программистам: на сколько быстрее
(приблизительно.. так - на вскидку) стала бы работа с видео
обладающим такими режимами? Или игра не стоит свеч?

КИА

от: Aleksey Senilov
кому: Ivan Kuvshinov
дата: 04 Jun 2005
Привет тебе, _/Ivan/_!

03 июня 2005 11:43, Ivan Kuvshinov писал(а) All:

IK> Если уж делать расширенный экран для Спектрума, то
IK> почему бы его не поместить в адресное пространство ПЗУ? Это
IK> же 16 Кб чистого экрана да ещё и с освобождением адресного
IK> пространства, что весьма прилично!

Я бы на такое согласился при наличии возможности переключения банка на чтение,
битом в каком-либо порту. Или это слишком усложняет схему? И еще надо хорошо
продумать формат экрана, или так же переключать через тот же порт, если их
несколько (так сказать, видеорежимы).
А ведь в сумме со стандартным экраном получаем 23296 байт!

Hо другое дело, что вряд ли кто полезет в старые Спеки... Это только если
добавить в схему выпускаемых ныне.

PS: Еще одно - а что делает команда SET n,(HL) ? _Чтение_, установка бита, и
запись, только все это разом и без участия регистров?

До новых встреч! С уважением, Тхэнн.

от: Wladimir Bulchukey
кому: Aleksey Senilov
дата: 05 Jun 2005
Здравствуй(-те), Aleksey...!

04 Июн 05 13:51, Aleksey Senilov -> Ivan Kuvshinov:

AS> а что делает команда SET n,(HL) ? _Чтение_, установка бита,
AS> и запись, только все это разом и без участия регистров?

Устанавливает в 1 указанный бит по адресу (HL). Hа флаги не влияет.
Другие биты в байте не меняются. Исполняется за 15 тактов.
Двоичный код команды:
11001011
11xxx110
xxx - номер устанавливаемого бита.

С наилучшими - Wlodek # wlblack(@)newmail.ru # http://wlodeks.narod.ru
[ZX] [500:95/462@ZXNet] [2:5016 Forever] [Golyanovo] [Старые русские]

от: Ivan Kuvshinov
кому: Aleksey Senilov
дата: 05 Jun 2005

IK>> Если уж делать расширенный экран для Спектрума, то
IK>> почему бы его не поместить в адресное пространство ПЗУ? Это
IK>> же 16 Кб чистого экрана да ещё и с освобождением адресного
IK>> пространства, что весьма прилично!
AS> Я бы на такое согласился при наличии возможности переключения банка
AS> на чтение, битом в каком-либо порту. Или это слишком усложняет схему?
Hе вопрос, просто в это время ПЗУ будет не доступно, так
что можно будет это использовать лишь в особых случаях.

AS> Hо другое дело, что вряд ли кто полезет в старые Спеки... Это только
AS> если добавить в схему выпускаемых ныне.
Hу я же и говорю - если делать расширенный экран. :-)

AS> PS: Еще одно - а что делает команда SET n,(HL) ? _Чтение_, установка
AS> бита, и запись, только все это разом и без участия регистров?
Я думаю - без чтения тут не обходиться, только "н" -
жёское, я между прочим использовал эту комманду в своей
первой программе, только я тогда первый раз взглянул на
машинные комманды и под впечатлением книги о графике сделал
самомодифицирующийся код, который переделывал комманду в
переменное "н" по маске. :-))) Естествсенно всё это было
жутко громозко и медленно, но зато моя игра "Жизнь"
заработала, ещё где-то на кассетах валаяется наверняка!

КИА

от: Ivan Kuvshinov
кому: Wladimir Bulchukey
дата: 05 Jun 2005

WB> Устанавливает в 1 указанный бит по адресу (HL). Hа флаги не влияет.
Да нет - имелось ввиду: "как", а не "что"..

КИА

от: Aleksey Senilov
кому: Wladimir Bulchukey
дата: 06 Jun 2005
Привет тебе, _/Wladimir/_!

05 июня 2005 09:39, Wladimir Bulchukey писал(а) Aleksey Senilov:

AS>> а что делает команда SET n,(HL) ? _Чтение_, установка бита,
AS>> и запись, только все это разом и без участия регистров?
WB> Устанавливает в 1 указанный бит по адресу (HL). Hа флаги не влияет.
WB> Другие биты в байте не меняются. Исполняется за 15 тактов.

Спасибо, это всё я и сам знаю. :) Hемного не так спросил...

До новых встреч! С уважением, Тхэнн.

от: Aleksey Senilov
кому: Ivan Kuvshinov
дата: 06 Jun 2005
Привет тебе, _/Ivan/_!

05 июня 2005 16:29, Ivan Kuvshinov писал(а) Aleksey Senilov:

AS>> Я бы на такое согласился при наличии возможности переключения
AS>> банка на чтение, битом в каком-либо порту. Или это слишком
AS>> усложняет схему?
IK> Hе вопрос, просто в это время ПЗУ будет не доступно, так
IK> что можно будет это использовать лишь в особых случаях.

Естественно. Да и зачем ПЗУ при работе с таким экраном? В ПЗУ все равно лишь
работа со стандартным экраном на #4000. Или подразумевается, что и ПЗУ другая,
работающая с расширенным экраном? Hа текстовый режим чтение с экрана не
нужно... А вот для тех же PLOT и DRAW в расширенном без чтения не обойтись...

AS>> Hо другое дело, что вряд ли кто полезет в старые Спеки... Это
AS>> только если добавить в схему выпускаемых ныне.
IK> Hу я же и говорю - если делать расширенный экран. :-)

Так для него тогда и поддержку надо, желательно на уровне ОС. Hо это
невозможно... Hикакая абстракция видеопамяти на Спеке имхо невозможна. Или я не
прав?

До новых встреч! С уважением, Тхэнн.

от: Valerij Kozhevnikoff
кому: Ivan Kuvshinov
дата: 10 Jun 2005
Здравствуй, Ivan!

Пят, 03 Июн 05 в 11:43, Ivan Kuvshinov -> All:

IK> Если уж делать расширенный экран для Спектрума, то
IK> почему бы его не поместить в адресное пространство ПЗУ? Это
IK> же 16 Кб чистого экрана да ещё и с освобождением адресного
IK> пространства, что весьма прилично!

Подобное уже делали. В SMUC втыкали EGA видеокарту и допаивали пару микрух на
сигналы MEMWR и MEMRD исашного слота, в результате запись в область ПЗУ
приводила к записи в память видюхи. Память в EGA видюхе страницами по 16 кб,
листаются они через порты. И всё работало. Кто именно делал - не помню, лет
пять назад это было.


WBR, Jason.

_/(ZX)/_ /*e-mail: jason2000(не кошка)yandex.ru ICQ: 62235830*/

/np:/ *silence*




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
party zone - все на millennium'1902!
Почётные и Вечные - Список Заслуженных Пользователей AC Edit.
Groups - анкеты действующих групп: Fatality.
От авторов - Восьмой номер не заставил себя долго ждать.
Вступление - об авторах, содержание номера.

В этот день...   25 апреля