Введение
Контроллер видеодисплея 8563 (VDC) был интегральной схемой, произведенной компанией MOS Technology. Он использовался в компьютере Commodore 128 (C128) для генерации RGB-видеодисплея с 80 столбцами (640 × 200 пикселей), работая параллельно с 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, и первоначальный выход годных изделий был очень низким. Первые экземпляры также имели серьезные проблемы с надежностью и часто выходили из строя из-за перегрева. Кроме того, существовали проблемы с синхронизацией VDC, которые приводили к сбоям в косвенных операциях загрузки и сохранения в его регистрах. Официально VDC позиционировался как чип только для текста, однако внимательное изучение технической документации MOS Technology, предоставленной ранним разработчикам C128, указывало на возможность режима растровой графики с высоким разрешением – он просто не был описан подробно. BASIC 7.0, встроенный язык программирования C128, поддерживал графику высокого разрешения только в 40-колонном режиме через устаревший чип VIC II. Вскоре после выпуска C128 режим растровой графики VDC был подробно описан в книге Data Becker "Commodore 128 Das große GRAFIK Buch" (опубликованной в конце 1985 года в США издательством Abacus Software), а немецкие авторы Клаус Лёффелманн и Дитер Вюллерс предоставили программу на языке ассемблера, позволяющую устанавливать или очищать любой пиксель или, используя BASIC для выполнения необходимых вычислений, генерировать растровые геометрические фигуры на 80-колонном экране. В феврале 1986 года, менее чем через год после выпуска Commodore 128, журнал RUN опубликовал статью "Ultra Hi Res Graphics", в которой описывался растровый режим VDC и приводилась программа для ввода (написанная на ассемблере 8502), расширяющая возможности BASIC 7.0 для поддержки графики высокого разрешения 640×200 с использованием 8563. Авторы Лу Уоллес и Дэвид Дарус позже развили утилиту Ultra Hi Res в коммерческий продукт BASIC 8. Эта утилита, одна из самых популярных сторонних для C128, предлагала широкому кругу программистов расширенные возможности VDC для работы с графикой высокого разрешения. Commodore наконец предоставил полную официальную документацию по VDC в справочном руководстве программиста Commodore 128. Режимы растровой графики VDC широко использовались в версии C128 операционной системы GEOS. VDC не поддерживал спрайты, что ограничивало его применение в игровых приложениях. Однако он содержал функции для автономного копирования небольших блоков памяти в пределах выделенной видеопамяти. Пока VDC выполняет такое копирование, системный процессор может продолжать выполнять код, при условии, что до завершения копирования не предпринимаются попытки доступа к VDC. Эти функции использовались в экранном редакторе C128 для быстрой прокрутки или очистки разделов экрана.
Технические спецификации
Выход RGBI (RGB плюс яркость) совместим со стандартом видео CGA от IBM. * 16 или 64 килобайта адресного пространства для отображения, формы символов и памяти атрибутов отображения (выделенная, отдельная от системной памяти). Разрешение видео до 720 × 700 пикселей в режиме строчной развертки (максимальное при 64 килобайтах видеопамяти). Другие размеры изображения возможны в зависимости от потребностей программиста, например, 640 × 200 без строчной развертки, 640 × 400 со строчной разверткой и т. д. Разрешение текста 80 × 25 символов (значение по умолчанию для ядра C128); возможны другие размеры, такие как 80 × 50 или 40 × 25. 8 цветов с 2 уровнями яркости.
16 or 64 kilobyte address space for display, character shape and display attribute memory (dedicated, separate from system memory). Up to 720 × 700 pixel video resolution in interlaced mode (maximum with 64 kilobyte video RAM). Other image sizes are possible, depending on programmer's needs, such as 640 × 200 non interlaced, 640 × 400 interlaced, etc. 80 × 25 characters text resolution (C128 kernal default); other sizes such as 80 × 50 or 40 × 25 are possible. 8 colors at 2 intensities.