Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
VDC был разработан с учетом приложений офисных пакетов . Здесь показан SpeedScript 128 , текстовый процессор .

Контроллер видеодисплея ( VDC ) 8563 был интегральной схемой, произведенной MOS Technology . Он использовался в компьютере Commodore 128 (C128) для создания 80-столбцового (640 × 200 пикселей ) видеодисплея RGB , работающего вместе с VIC-II, который поддерживал графику, совместимую с Commodore 64 . Модели DCR (а также несколько D-моделей) C128 использовали более поздний и более технически совершенный контроллер 8568 [D] VDC .

История и характеристики [ править ]

Первоначально предназначенный для планируемого (но не выпущенного) бизнес-компьютера на базе UNIX на базе Zilog Z8000 , Commodore разработал VDC в нескольких машинах-прототипах. Из них только Commodore 128 когда-либо производился. В отличие от более ранних видеочипов MOS, таких как популярный VIC-II, VDC имел выделенную видеопамять, 16 килобайт (16 384 байта; возможность обновления до 64 килобайт, 65 536 байтов) в исходном или «плоском» C128 и 64 килобайта в C128DCR . Микропроцессор не имел прямого доступа к этой оперативной памяти .

8563 было труднее производить, чем большую часть остальной линейки MOS Technology, и первоначальный выход был очень низким. Первые блоки также имели серьезные проблемы с надежностью и имели тенденцию к самоуничтожению из-за перегрева. [1] Кроме того, были проблемы с синхронизацией с VDC, что могло привести к сбоям в операциях косвенной загрузки и сохранения в его регистрах.

Официально VDC был только текстовым чипом, хотя внимательное чтение технической литературы, предоставленной MOS Technology первым разработчикам C128, действительно показало, что режим растрового изображения высокого разрешения был возможен - он просто не был описан ни в одном деталь. BASIC 7.0 , встроенный язык программирования C128, поддерживал только графику с высоким разрешением в режиме с 40 столбцами через устаревший чип VIC-II.

Это ультра Hi-Res демо демонстрирует VDC в Blitter возможности с простой 3D - анимации в виде рамы модели проволоки из в кубе .

Вскоре после выпуска C128 режим растрового изображения VDC был подробно описан в книге Data Becker «Commodore 128 - Das große GRAFIK-Buch» (опубликованной в конце 1985 года в США компанией Abacus Software ) и в программе на языке ассемблера. был предоставлен немецкими авторами Клаусом Лёффельманном и Дитером Вюллерсом, в котором можно было установить или очистить любой пиксель или, используя BASIC для выполнения необходимых вычислений, сгенерировать растровые геометрические фигуры на экране с 80 столбцами. [1] В феврале 1986 года, менее чем через год после выпуска Commodore 128 , журнал RUN опубликовал статью « Графика сверхвысокого разрешения.", статья, описывающая растровый режим VDC и включающая программу ввода (написанную на ассемблере 8502 ), которая расширила возможности BASIC 7.0 для поддержки графики с высоким разрешением 640 × 200 с использованием 8563. [2] Авторы Лу Уоллес и Позже Дэвид Дарус разработал служебную программу Ultra Hi-Res в коммерческом пакете BASIC 8. Одна из самых популярных сторонних утилит для C128, она предлагала более продвинутые возможности VDC с высоким разрешением для широкой аудитории программистов.

Наконец, Commodore предложила полную официальную документацию по VDC в Справочном руководстве программиста Commodore 128 . Режимы битовой карты VDC широко использовались в версии C128 операционной системы GEOS .

VDC не обладал возможностями спрайтов , что ограничивало его использование в игровых приложениях. Тем не менее, он содержал возможности копирования для автономного выполнения небольших копий блочной памяти в своей выделенной видеопамяти. Пока VDC выполняет такое копирование, системный ЦП может продолжать выполнение кода при условии, что никакие другие попытки доступа к VDC не предпринимаются до завершения копирования. Эти функции использовались ПЗУ экранного редактора C128 для быстрой прокрутки или очистки разделов экрана.

Технические характеристики [ править ]

  • Выход RGBI (RGB плюс интенсивность), совместимый с видеостандартом IBM CGA . * 
  • Адресное пространство размером 16 или 64 килобайта для памяти дисплея, формы символов и атрибутов дисплея (выделено отдельно от системной памяти).
  • Разрешение видео до 720 × 700 пикселей в чересстрочном режиме (максимум с 64 килобайтами видеопамяти) [3] . Возможны другие размеры изображения, в зависимости от потребностей программиста, например, 640 × 200 без чересстрочной развертки, 640 × 400 с чересстрочной разверткой и т. Д.
  • Разрешение текста 80 × 25 символов (по умолчанию для ядра C128); возможны другие размеры, такие как 80 × 50 или 40 × 25.
  • 8 цветов с 2-мя интенсивностями.

* Это относится только к C128s 60 Гц США. Машины C128 с частотой 50 Гц выдают сигнал с частотой обновления кадров 50 Гц. Хотя это не соответствует стандарту CGA, большинство мониторов CGA могли без проблем отображать сигнал 50 Гц. Однако некоторые мониторы либо не смогли разрешить сигнал, либо преуспели в его разрешении, но рано или поздно их схемы отклонения выходили из строя.

Программирование [ править ]

Обращение к внутренним регистрам VDC и выделенной видеопамяти должно осуществляться косвенно. Сначала программа должна сообщить VDC, к какому из его 37 внутренних регистров необходимо получить доступ. Затем программа должна дождаться, пока VDC не будет готов к доступу, после чего может быть выполнено чтение или запись в выбранный внутренний регистр. Следующий ассемблерный код является типичным для чтения регистра:

 LDX  #regnum, VDC зарегистрируйтесь , чтобы получить доступ  STX  $ d600  , запись в регистре управления  циклом  битой  $ D600  , проверка бит 7 регистра состояние  BPL  цикла  ; VDC не готов  LDA  $ D601  , читать VDC регистр  ...

Следующий код типичен для операции записи в регистр:

 LDX  #regnum; VDC зарегистрироваться чтобы написать  STX  $ D600  , запись в регистре управления  циклом  битой  $ D600  , проверка бит 7 регистра состояние  BPL  цикла  ; VDC не готова  STA  $ D601  , запись в регистр VDC  ...

То же самое возможно и на языке BASIC , вызывая определенные процедуры KERNAL :

Этот код типичен для чтения регистра VDC, где <register> - это число от 0 до 36, как показано ниже.

BANK15 ... SYS  DEC ( " CDDA " ) ,,  регистр  :  RREG  VDC REM  $ ccda  aka  52698  в  десятичной системе PRINT  VDC  ...

этот код типичен для записи в регистр VDC, где <register> - это число от 0 до 36, а <value> - это число от 0 до 255, которое вы хотите поместить в этот регистр.

BANK15 ... SYS  DEC ( " CDCC " ),  значение ,  регистр REM  $ ccdc  aka  52684  в  десятичной системе  ...


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

В стандартном текстовом режиме VDC ведет себя так же, как VIC-II, за исключением 2k экранной памяти вместо 1k. Конфигурация по умолчанию при включении питания помещает экранную память в $ 0–7FF, а цветную память в $ 800–9FF, и их можно перемещать в любое место в памяти VDC, если она находится на границе 2k. Атрибуты обрабатываются так же, как в режиме высокого разрешения VIC-II с глобальным цветом фона, и каждый цвет переднего плана символа устанавливается индивидуально для каждого цветового ОЗУ. Помимо данных о цвете, последний также содержит данные атрибутов для каждого символа. Бит 4 заставляет символ мигать, если он включен, бит 5 создает подчеркнутые символы, а бит 6 инвертирует шаблон растрового изображения символа. Бит 7 включает альтернативный набор символов. VDC может использовать до 512 символов. Когда флаг альтернативного символа для данного символа включен,образец символа будет взят из символов 256-511. Таким образом, если отображается символ 65, при включении флага альтернативного символа вместо него будет отображаться символ 321. Флаг альтернативного символа обычно используется, когда установлен режим верхнего / нижнего регистра - флаг включен для всех положений экрана VDC, в результате чего набор символов верхнего / нижнего регистра и его обратные версии видео отображаются вместо набора символов верхнего / графического символов по умолчанию .заставляя отображать набор символов верхнего / нижнего регистра и его обратные видеоверсии вместо стандартного набора символов верхнего / нижнего регистра / графики.заставляя отображать набор символов верхнего / нижнего регистра и его обратные видеоверсии вместо стандартного набора символов верхнего / нижнего регистра / графики.

VDC не использует символьное ПЗУ, вместо этого символьные шаблоны ROM VIC-II просто копируются в VDC RAM как часть инициализации питания C128, включая шаблоны для обратных видеосимволов, даже если VDC способен аппаратно инвертировать символы. Шаблоны символов занимают 16 байтов вместо 8 для хранения, поскольку VDC имеет регулируемую высоту символа. Поскольку на экране 25 строк, на практике высота символа ограничена 8 строками, что означает, что половина пространства для символьных данных остается неиспользованной и тратится впустую. Конфигурация по умолчанию при включении помещает символьные данные в $ 2000- $ 3FFF. $ 2000- $ 23FF содержат шаблоны для прописных / графических символов, $ 2C00- $ 33FF - символы верхнего / нижнего регистра, а $ 2400- $ 2BFF и $ 3400- $ 3FFF содержат шаблоны обратного видео для каждого набора.Пользователь может свободно определять любые пользовательские символы и отображать их в памяти VDC.

Зарегистрируйте список [ редактировать ]

Эта информация была адаптирована из Справочного руководства программиста Commodore 128 [2]

Ссылки [ править ]

  1. ^ Глава 3.9.1 "VDC HI-RES-Grafik" Страница 213ff
  2. ^ Commodore Capital, Inc., (1986). Справочник программиста Commodore 128. Нью-Йорк, штат Нью-Йорк: Bantam Books, Inc.

Внешние ссылки [ править ]

  • Самораспаковывающийся архив Ultra Hi-Res - Том I
  • Самораспаковывающийся архив Ultra Hi-Res - Том II
  • C = Взлом, том 2 - Регистрация и описание