Видеоконтроллер дисплея MOS Technology 8568 ( VDC ) был графическим процессором, отвечающим за 80-колоночный [1] или RGB I дисплей на персональном компьютере Commodore 128DCR . [1] [2] [3] [4] [5]
В руководстве по обслуживанию Commodore 128 эта часть упоминалась как « контроллер ЭЛТ 80 колонок ». 8568 воплотил в себе многие из функций старого контроллера монохромной ЭЛТ 6545E плюс цвет RGBI. [2] Оригинальный («плоский») Commodore 128 и Commodore 128D (европейский пластиковый корпус) использовали видеоконтроллер 8563 для генерации 80-колоночного дисплея. 8568 был по сути обновленной версией 8563, объединяющей функциональность последнего с клеевой логикой , которая была реализована дискретными компонентами в физической близости от 8563. В отличие от 8563, 8568 включал неиспользуемую (в C-128) линию запроса прерывания с активным низким уровнем ( ), которая устанавливалась, когда бит «готов» в регистре состояния 8568 изменялся с 0 на 1. Чтение регистра управления автоматически снимало . Из-за различий в назначении выводов и интерфейсе схем 8563 и 8568 электрически не взаимозаменяемы. [3] /INTR
/INTR
Commodore 128 имел два режима отображения видео, которые обычно использовались по отдельности, но могли использоваться одновременно, если компьютер был подключен к двум совместимым видеомониторам. Микросхема VIC-II , также обнаруженная в Commodore 64 , была отображена непосредственно в основную память — видеопамять и процессоры (процессоры 8502 и Z80A) разделяли общую оперативную память объемом 128 КБ , а регистры управления VIC-II были доступны как ячейки памяти (то есть они были отображены в память ).
В отличие от VIC-II, 8568 имел собственную локальную видеопамять, 64 КБ в модели C-128DCR (продаваемой в Северной Америке) и, в зависимости от даты производства конкретной машины, 16 или 64 КБ в модели C-128D (продаваемой в Европе). Обращение к внутренним регистрам VDC и выделенной видеопамяти должно осуществляться косвенными способами. Сначала программа должна сообщить VDC, к какому из его 37 внутренних регистров следует получить доступ. Затем программа должна дождаться готовности VDC к доступу, после чего может быть выполнено чтение или запись в выбранный внутренний регистр. Следующий код является типичным для чтения регистра:
ldx # regnum ;регистр VDC для доступа к stx $d600 ;запись в бит цикла регистра управления $d600 ;проверка бита 7 регистра состояния bpl loop ;VDC не готов lda $d601 ;чтение из регистра VDC ...
Следующий код является типичным для операции записи регистра:
ldx # regnum ;регистр VDC для записи в stx $d600 ;запись в бит цикла регистра управления $d600 ;проверка бита 7 регистра состояния bpl loop ;VDC не готов sta $d601 ;запись в регистр VDC ...
Из-за этого несколько громоздкого метода управления 8568 максимально возможная частота кадров в растровом режиме, как правило, слишком мала для аркадных видеоигр, в которых требуется интенсивное управление отображением битов.
В окончательных версиях 8568 к номеру детали были добавлены коды ревизий R9a или R9b, что, по-видимому, указывало на недокументированные улучшения.
Эта информация была адаптирована из Справочника программиста Commodore 128 [8]