Spectrum Progress #02
19 января 1997
  Железо  

Железяка - "SPRINTER-97": Видеосистема.

<b>Железяка</b> -
  Первый  взгляд при знакомстве с новым компью-
тером  всегда  бросаешь на его экран. Ну, может
быть,  второй,  если  до этого никогда не видел
"MiniTower" и AT-клавиатуру.

  (C) "Петерс", 1997.

     
     

  В процессе разработки видеосистема компьютера
претерпела  значительные изменения. 16-цветовой
экран,  представленный на Enlight-96, остался в
далёком  прошлом и на данный момент от него ос-
тался лишь принцип переключения режима экрана.

           Как меняется видеорежим?

  Концепция: экран по-прежнему разбит на знако-
места  8х8  пикселей. В каждом знакоместе опре-
делён  свой  графический режим. В каждом знако-
месте  определён свой режим вывода изображения.
Весь  экран  представляет собой блок из 1280-ти
знакомест - 40 знакомест по горизонтали и 32 по
вертикали.

              Каковы эти режимы?

  1.  Стандартный ZX-Spectrum (ZX-40). В знако-
место  в этом режиме выводится обычный символ в
стандарте ZX-Spectrum - 8 байт образа символа и
1 байт атрибутов.

  2. Режим ZX-80. В каждом знакоместе находятся
два  сжатых  по  горизонтали  символа стандарта
ZX-Spectrum.  Вывод пикселей этих символов про-
изводится  с  частотой  14  МГц, что приводит к
увеличению  количества  символов  в  строке  до
восьмидесяти.

  3.   Графический   режим  G256-7.  Знакоместо
представляет  собой графическое изображение 8х8
точек,  каждая  из которых может иметь любой из
256-и  цветов,  выбираемых  из палитры (16 млн.
цветов).

  4.  Графический  режим G16-14. Режим высокого
разрешения.  В каждом знакоместе по горизонтали
располагается  16  пикселей,  16 цветов на пик-
сель. По вертикали количество пикселей остаётся
равным  восьми  и  увеличивается до шестнадцати
только вводом режима INTERLIVE.

  5.  Графический  режим G16-7. Фактически, это
подрежим G256-7, в котором сокращено количество
цветов на пиксель с целью сокращения объёма ви-
деоинформации.

    Как адресуется информация в знакоместе?

  Для  режима  ZX-40  всё остаётся по-прежнему.
Форма и атрибут располагаются как в стандартном
ZX-Spectrum для всех знакомест.

  ZX-80. Первый символ - это тот же символ, что
и в режиме ZX-40, второй - символ режима ZX-40,
взятый из альтернативного экрана.

  Графические  режимы. Во всех трёх режимах ад-
реса  совпадают.  По  многочисленным пожеланиям
программистов,  адресация пикселей была измене-
на.  По  горизонтали пиксели представляют собой
сплошной  массив  в  одной видеостранице, но по
вертикали  пиксели располагаются в разных виде-
остраницах. Хотя вполне возможно расположение в
одной  странице.  Это будет рассматриваться как
альтернатива существующей реализации.

  Адресация  в  знакоместе  в определённом роде
является  относительной  адресацией. Конкретный
адрес  пикселя - это сумма адресов знакоместа в
экране и пикселя в знакоместе.

          Как адресовать знакоместа?

  Для  определения режима экрана необходимо три
бита  информации.  В  рабочей версии Sprinter'а
каждое  знакоместо имеет 2 байта информации ре-
жима. Подобное увеличение количества информации
даёт  принципиально  новую  возможность. 12 бит
информации  видеорежима  определяют адрес блока
данных,  из  которого  выводится  информация на
данное  знакоместо.Таким образом, вопрос об ад-
ресации  становится вопросом о том, какой адрес
записан в режиме данного знакоместа. Этот адрес
определяется   системной  или  пользовательской
программой.

  Экран  оказывается состоящим из знаков, выби-
раемых   из  знакогенератора,  занимающего  всё
пространство  видео-ОЗУ. Количество этих знаков
(3072)  превышает  число знакомест экрана более
чем  вдвое. Это даёт большую свободу для выбора
графических  и символьных изображений. В режиме
же  ZX-40  число  таких  символов возрастает до
12288.

     Где находится информация видеорежима?

  Для видеорежима отведена специальная страница
видео-ОЗУ  размером 16 кБ. Данные режима знако-
мест  располагаются сплошным массивом, включаю-
щим  в  себя и заэкранные области размером 5120
байт  на экран. Данные видимой области занимают
2560 байт.

  В  этих  данных  также содержится и некоторая
иная  информация - расположение строчных и кад-
ровых синхроимпульсов, положение бордюра, нача-
ла  и концы гасящих импульсов, поэтому програм-
мированием этой области займётся ПЗУ.

  Открывается  новая  возможность. Теперь прог-
раммируются  сигналы  синхронизации с телевизо-
ром/монитором, что даёт простой способ аппарат-
ного  скроллинга всего изображения вверх, вниз,
вправо  и  влево.  Меняя сигналы синхронизации,
можно  менять положение общего фона, на котором
и  развернётся битва байтов новой SUPER-игрушки
для SPRINTER-97.

      Как применять подобное расширение?

  В  режиме  G256-7 каждый пиксель представляет
собой  один байт, задающий цвет пикселя. По го-
ризонтали  пиксели  представляют собой сплошной
массив (320 байт), что даёт простую возможность
записи данных на экран построчно LDI/LDD-подоб-
ными командами.

  Использование суперзнакогенератора, как гене-
ратора  образов, и управление выводом знаков на
экран  путём программирования режима знакоместа
резко ускоряет вывод, если используется ограни-
ченный набор символов или графических образов.

  Режимы  можно смешивать!!! Режим каждого зна-
коместа определяется совершенно независимо. Его
изменение    не    требует   изменения   режима
развёртки,  следовательно, для смешения нет ни-
каких препятствий. Графические катринки высоких
разрешений  можно  стыковать с простой графикой
Spectrum.  Это  даст дополнительные возможности
для ускорения таких графических программ, где в
одном знакоместе достаточно иметь два цвета.

      Как адресуются страницы видео-ОЗУ?

  Следует  отметить,  страница  видео-ОЗУ - это
просто  страница  памяти объёмом 16 кБ, занятая
под нужды видеосистемы. Видеостраница - это ин-
формация, выводимая на экран.

  Для  режима  G256-7 видеостраница содержит 80
кБ. В режиме стандартного ZX-Spectrum она зани-
мает  всего 6,75 кБ. Результат - количество ви-
деостраниц  ZX-Spectrum  значительно  превышает
количество графических видеостраниц.

  Массив  видео-ОЗУ является общим для всех ре-
жимов,  поэтому  одна  и та же информация может
выводиться  по-разному.  Информация для режимов
ZX-40 и ZX-80, естественно, не совместима с ин-
формацией  графических режимов, т.е. переключе-
ние данного знакоместа из режима ZX-40 в графи-
ческий  режим  потребует  изменения  содержания
данных  этого знакоместа. Чтобы не переписывать
данные после переключения, достаточно использо-
вать разные адреса данных знакоместа, записыва-
емые в режим этого знакоместа.

  Страницы  видео-ОЗУ переключаются отдельно от
страниц  основного  ОЗУ.  Определённые страницы
основного ОЗУ проецируются на видео-ОЗУ. Запись
в  эти страницы производится одновременно в оба
ОЗУ. Считывание производится только из основно-
го  ОЗУ,  что  уменьшает количество обращений к
видео-ОЗУ  и  позволяет  получить  максимальную
скорость  работы  процессора (работа с основным
ОЗУ не требует циклов ожидания).

  Что произойдёт, если переключить страницу ви-
део-ОЗУ и оставить прежней страницу основного?

  Информация  пойдёт в соответствующую страницу
видео-ОЗУ  и  в  прежнюю страницу основного ОЗУ
(данные основного ОЗУ будут перезаписаны).

  Переключение  страницы видео-ОЗУ производится
выводом в порт, адрес которого будет выдаваться
спецфункцией из ПЗУ.

  Какова  разница  адресации  данных  знакомест
между графическим и ZX-40/80 режимами?

  Переключение адресации видео-ОЗУ производится
одновременно с выводом номера страницы.

  Вывод в порт адреса страницы видео-ОЗУ значе-
ния  00h..3Fh подключает различные страницы эк-
рана  ZX-Spectrum. Значения 40h..7Fh подключают
то же видео-ОЗУ, но с иной адресацией. Значения
80h..BFh подключают на место видео-ОЗУ страницу
цветовой   палитры.   Это   отдельная  страница
объёмом 16 кБ, которая не входит в 192 кБайтное
видео-ОЗУ,  но  адресуется так же. Вывод в порт
страницы  видео-ОЗУ  значений  C0h..FFh  просто
отключает запись в видео-ОЗУ.

  ВHИМАHИЕ!!!   Переключение  адресации  данных
знакомест  приводит  к  переключению  адресации
страниц,  т.к.  номер  страницы является частью
адреса  видео-ОЗУ. Таким образом, запись в гра-
фическом  режиме полной строки длиной 400h байт
приведёт  к записи данных в разные страницы ре-
жима ZX-Spectrum. Именно это не даёт возможнос-
ти конкретной привязки теневых страниц видео-О-
ЗУ  к станицам основного. Они переключаются не-
зависимо друг от друга.

  Кроме того, адресация страниц видео-ОЗУ в ре-
жиме ZX-Sprectrum производится 24-мя страницами
по  8  кБ.  В графическом режиме страницы имеют
объём 16 кБ, и их количество равно шестнадцати.
Используются  только  чётные  номера страниц из
диапазона 40h..7Fh.

 16кБ х 16 = 256. Откуда появились лишние 64кБ?

  Каждая  строка  графического  режима содержит
400 байт. Они "прошивают" насквозь все 24 стра-
ницы режима ZX-Sprectrum, и захватывают в своём
стремлении ещё 8 несуществующих страниц. Факти-
чески,  запись  последних 100h байт этой строки
не приводит к записи в какие-либо ячейки видео-
-ОЗУ.

      Каковы конкретные адреса знакомест?

  Для ZX-40/80 это те же адреса экрана, которые
имеет ZX-Sprectrum. Все знакоместа на расширен-
ном  экране адресуются точно так же, плюс изме-
няется адрес видеостраницы.

  В графических режимах адресация иная. Всё ви-
део-ОЗУ представляет собой набор из 32 строк по
96  знакомест.  Строки  знакомест имеют смежные
адреса  пикселей. Каждая такая строка представ-
ляет  собой  набор  из восьми линий по 8х96=768
байт, расположенных в разных страницах видео-О-
ЗУ и имеющих одинаковый начальный адрес.

  Строки  знакомест  составляют  2 группы по 16
строк.  Данные  каждой из 16 строк одной группы
находятся в одних и тех же страницах видео-ОЗУ.

  Вся эта информация относится к конкретной ра-
бочей версии компьютера Sprinter-97. В процессе
дальнейшей работы возможны некоторые изменения,
поэтому  здесь  не даются более точные описания
адресов, портов, функций ПЗУ и т.д.

       Каковы возможности нового экрана?

  1.  Экран имеет всё для создания оконной сис-
темы.  В каждом окне информация может выводится
в  своём режиме и эти режимы могут одновременно
сосуществовать в одном окне.

  2.  Окна  имеют свои собственные области дан-
ных,  что  позволяет  переключать их без потери
информации.  Ограничение  накладывается  только
общим  объёмом  видео-ОЗУ.  Достаточно сказать,
что  экран будет иметь возможность включения до
22-х  окон  с объёмом, равным объёму информации
на экране ZX-Sprectrum.

  3.  Произвольная  адресация информации знако-
мест  позволяет производить быстрый вывод одно-
родных  картинок, например, фоновых узоров ("о-
боев").  Для графического режима это резко сни-
жает количество выводимых данных.

  Пример:  надо вывести повторяющийся 256-цвет-
ный  узор размером 16х16 пикселей на весь экран
320х256  точек.  Что  в этом случае делает IBM?
Рисует  эту  картинку  320 раз. А что же делает
Sprinter? Рисует картинку один раз, а затем за-
писывает  в адреса экрана адрес картинки. Таким
образом скорость вывода изображения при гораздо
меньшей производительности компьютера позволяет
значительно обогнать IBM в графике.

  Далее  возникает  вопрос, как на таком экране
рисовать дальше, если вывод в небольшую картин-
ку тут же размножится во всех её 320-ти копиях?
Ответ  очень  прост.В нужном месте экрана адрес
меняется на адрес выводимой картинки.

  Если вы имеете на экране хотя бы 40 знакомест
с повторяющимися картинками, количество выводи-
мой  информации становится равным общему объёму
информации  экрана.  Если  же  таких  знакомест
больше  (а  это очень часто встречается в прог-
раммах),  количество  информации  будет  быстро
снижаться  по мере увеличения количества одина-
ковых знакомест.

  Кроме того, подобный вывод экономит место ви-
део-ОЗУ, что позволит увеличить количество гра-
фических окон с неперекрывающейся информацией.

              О цветовой палитре.

  Цветовая палитра Sprinter-97 доведена до мак-
симально разумного предела. Каждый цвет выбира-
ется  из  набора  16  млн. цветов, определяемых
данными ОЗУ палитры (24 бита/цвет).

  Палитра  -  это  ещё одна целая страница ОЗУ.
Она  адресуется подобно другим страницам видео-
памяти,  но имеет совершенно другую структуру и
назначение.
  Каждый  определяемый  цвет  имеет три байта в
ОЗУ палитры. Каждый из этих трёх байтов опреде-
ляет  вес синего, красного и зелёного в опреде-
ляемом цвете.

                     ─────   



Другие статьи номера:

От редакции - Шпаргалка - информация об управлении в журнале.

От редакции - авторы работавшие над вторым номером журнала Spectrum Progress.

Инструментарий - Статья о новой операционной системе ДОМЕН ОС.

Инструментарий - Статья о инструментальной системе для СПЕКТРУМА "THE GRAPHIC ADVENTURE CREATOR".

Инструментарий - Статья о том, как работать в системе для разработки Адвентюрных игр "THE GRAPHIC ADVENTURE CREATOR".

Инструментарий - Инструкция по эксплуатации программы "XPLAYER 78".

Инструментарий - Инструкция по пользованию пакетом программ "ZX-WINWORD", предназначенных для подготовки иллюстрированных текстов.

Игротека - Новелла к новой отечественной игре "RETURN TO HOME 4".

Игротека - краткая характеристика новой отечественной игры "RETURN TO HOME 4".

Игротека - Новелла и описание игры "DEMON'S REVENGE".

Записи программиста - программирование музыкального процессора AY-8912/10.

Записи программиста - Основы программирования под API Домен ОС.

Железяка - "SPRINTER-97": технические характеристики.

Железяка - "SPRINTER-97": Видеосистема.

Железяка - "SPRINTER-97": графический ускоритель.

Конкурс - Конкурс на лучшее название нового компьютера ф."ПЕТЕРС".

Новости - Информация о игре "RETURN TO HOME 5" (Смертельные миры, вторжение Торостоидов) игра является продолжением "RETURN TO HOME 4".

Новости - информация о новом текстовом редакторе "TEXTWRITER" demo.

Новости - впечатления о провалившемся ENLIGHT'97.

Водолей - Программисты... с точки зрения подхода к работе.

Форум - Информация о компьютерной сети SPbZXNet в Питере.

Форум - анкетирование, проведенное Алексеем Лебедевым (CONDOR SOFT) среди пользователей ZX Spectrum в 1997 г.

Форум - Интервью с известным ярославским программистом Романовым Р. (NICODIM).

Форум - Интервью с Николаем Носковым и Иваном Макарченко, создателями фирмы "ПЕТЕРС".

Реклама - бесплатная реклама и объявления...


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

Похожие статьи:
Интервью - интервью с Дмитрием Григорьевым (Oldman).
Давайте познакомимся - Рассказ от CODEMAN'а о себе.
Обратная связь - контакты редакции.
Pro-Z Code - программирование: процедура проверки Скоропиона и наличия HDD.
FREAKS - Про халявную энергетику.

В этот день...   21 ноября