МОП-технология VIC-II - MOS Technology VIC-II
В VIC-II (Чип видеоинтерфейса II), в частности известный как Технология MOS 6567/8562/8564 (NTSC версии), 6569/8565/8566 (PAL ), это микрочип поручено создать Y / C видеосигналы (объединенные в композитное видео в Модулятор RF ) и DRAM обновить сигналы в Коммодор 64 и C128 домашние компьютеры.
Преемник MOS в оригинале ВИК (используется в VIC-20 ), VIC-II был одним из двух чипов, в основном ответственных за успех C64 (другой чип - 6581 SID ).
История развития
Микросхема VIC-II была разработана в первую очередь Элом Шарпантье и Чарльзом Винтерблом в MOS Technology, Inc. как преемник MOS Technology 6560 «ВИК». Команде MOS Technology ранее не удавалось произвести два графических чипа под названием Технология MOS 6562 для компьютера Commodore TOI, и Технология MOS 6564 для цветного ПЭТ из-за ограничений скорости памяти.[1]
Чтобы построить VIC-II, Шарпантье и Винтербл провели исследование рынка текущих домашние компьютеры и видеоигры, перечисляя текущие функции и какие функции они хотели иметь в VIC-II. Идея добавления спрайтов пришла из Техасские инструменты TI-99 / 4A компьютер и его TMS9918 графический сопроцессор. Идея поддержки обнаружения столкновений пришла из Mattel Intellivision. В Atari 800 также был добыт для желаемых характеристик.[2][3] Около 3/4 поверхности чипа используется для функций спрайта.[4]
Чип был частично выложен с помощью автоматизация проектирования электроники инструменты из Applicon (теперь часть UGS Corp. ) и частично разложены вручную на пергаментная бумага. Конструкция была частично отлажена путем изготовления микросхем, содержащих небольшие подмножества конструкции, которые затем можно было тестировать отдельно. Это было легко, поскольку у MOS Technology были свои исследования и разработки лаборатория и завод полупроводников в одном месте.[5] Чип был разработан по технологии 5 микрометров.[2]
Работы по VIC-II были завершены в ноябре 1981 г., когда Роберт Яннес одновременно работал над SID чип. Обе фишки, как и Коммодор 64, были закончены вовремя Выставка бытовой электроники в первые выходные января 1982 г.[6]
Особенности VIC-II
Некоторые графические режимы на 64-м действительно странные, и у них нет аналогов Atari или Apple, например, возможность изменять цвет основы персонажа на экране. Это дало нам много цветовых возможностей, которые не использовались.
— Крейг Нельсон из Epyx, 1986[7]
- 16 кБ адресное пространство для памяти экрана, персонажей и спрайтов
- Разрешение видео 320 × 200 пикселей (160 × 200 в многоцветном режиме)
- Разрешение текста 40 × 25 символов
- Три режима отображения символов и два режима растрового изображения
- 16 цветов
- Одновременная обработка 8 спрайты на строка сканирования, каждый размером 24 × 21 пикселя (12 × 21 многоцветный)
- Растровое прерывание (подробности см. ниже)
- Гладкий прокрутка
- Независимая динамика Обновление RAM
- Освоение автобуса для стиля 6502 системная шина; CPU и VIC-II обращаются к шине во время попеременного полу-такты (VIC-II остановит ЦП, когда ему потребуются дополнительные циклы)
Технические детали
Обратите внимание, что ниже адреса регистров указаны так, как их видит ЦП в C64. Чтобы получить номера регистров, которые обычно указаны в таблицах данных (т. Е. Начиная с 0), следует опустить начальную "D0".
Программирование
VIC-II программируется путем манипулирования его 47 регистрами управления (по сравнению с 16 в VIC), память отображается в диапазоне $ D000– $ D02E в адресном пространстве C64. Из всех этих регистров 34 имеют дело исключительно с спрайт control (спрайты называются MOB из "Movable Object Blocks" в документации VIC-II). Как и его предшественник, VIC-II обрабатывает световое перо ввода, и с помощью стандартного символьного ПЗУ C64 предоставил исходный PETSCII набор символов с 1977 года на дисплее с такими же размерами, как 40-столбец ДОМАШНИЙ ПИТОМЕЦ серии.
Путем перезагрузки регистров управления VIC-II через машинный код, подключенный к растровое прерывание подпрограммы (прерывание строки развертки), можно запрограммировать микросхему на создание значительно более 8 одновременных спрайтов (процесс, известный как мультиплексирование спрайтов ), и, как правило, дают каждому программному фрагменту экрана различные свойства прокрутки, разрешения и цвета. Аппаратное ограничение в 8 спрайтов на строку сканирования можно было бы еще больше увеличить, позволив спрайтам быстро включаться и выключаться. Чтобы раскрыть возможности VIC-II, необходимо владеть растровым прерыванием. Много демонстрации а в некоторых более поздних играх будет установлен фиксированный «шаг блокировки» между процессором и VIC-II, чтобы регистры VIC можно было манипулировать точно в нужный момент.
Графика персонажей
C64 поставлялся с набором символов PETSCII в ПЗУ размером 4 КБ, но, как и VIC-20 до него, фактические данные для символов считывались из памяти в указанном месте. Это место было одним из регистров VIC-II, что позволяло программистам создавать свои собственные наборы символов, помещая соответствующие данные в память; каждый символ представлял собой сетку 8x8, байт представлял 8 бит по горизонтали, поэтому для одного символа требовалось 8 байтов, и, таким образом, полный набор из 256 символов использовал в общей сложности 2048 байтов. Теоретически можно использовать до восьми наборов символов, если были заполнены все 16 КБ видеопамяти.[8]
В дополнение к кодировкам VIC-II также использует 1000 байтов для хранения 25 строк по 40 символов в строке, по одному байту для каждого символа, что в конфигурации по умолчанию при включении питания стоит от 400 до 7E8 долларов.[8] Доступ к цветной RAM осуществляется как биты с 8 по 11 видеоматрицы;[9] в 64 и 128 он расположен в пространстве ввода-вывода по адресу $ D800- $ DBFF и не может быть перемещен из этого места. Он содержит значения цвета 1 (цвет 3 в многоцветном режиме) каждого символа.
Символьное ПЗУ отображается в двух из четырех «окон» VIC-II, в $ 1000–1FFF и 9000–9FFF, хотя ЦП не может его там видеть (символьное ПЗУ может быть переключено в $ D000- $ DFFF, где он виден ЦП, но не VIC-II). Таким образом, буферы графических данных или видео не могут быть размещены в $ 1000–1FFF или 9000–9FFF, потому что вместо этого VIC-II увидит символьное ПЗУ. Поскольку эти области ОЗУ не могли использоваться графическим чипом VIC-II, они часто использовались для музыкальных / звуковых эффектов (чип SID). C64 может иметь ОЗУ и ПЗУ по одному и тому же адресу в памяти, но ЦП «видит» одно, а чип VIC-II «видит» другое.
По умолчанию в символьном режиме высокого разрешения передний план каждого символа может быть установлен индивидуально в цветном ОЗУ. В режиме многоцветных символов цвет 3 ограничен первыми восемью возможными значениями цвета; четвертый бит затем используется в качестве флага, указывающего, должен ли этот символ отображаться с высоким разрешением или многоцветным, что позволяет смешивать оба типа на одном экране.[8] Цвета 1 и 2 устанавливаются регистрами в $ D022 и $ D023 и являются глобальными для всех символов.[8]
Если используется режим расширенного цвета фона, два верхних бита кода символа используются для выбора одного из четырех регистров цвета фона. Это позволяет использовать четыре разных цвета фона на экране, но за счет разрешения только 64 различных символов вместо 256. Поскольку это ограничение, игры редко использовали его.
Режим растрового изображения
Добавление режима растрового изображения с адресацией всех точек было одной из основных целей команды разработчиков Commodore, поскольку VIC-I не обладал такой функцией. Однако, чтобы использовать как можно меньше дополнительных схем, они организовали его так же, как и символьный режим, то есть плитки 8x8 и 4x8. Для растровой графики требуется страница размером 8 КБ для данных пикселей, и каждый байт соответствует одной строке из восьми или четырех пикселей. Следующий байт - это строка под ним и после 8-й строки, возвращающаяся к вершине следующей плитки.
В растровых изображениях с высоким разрешением экранная RAM используется для хранения цвета переднего плана и фона каждого тайла (старший и младший полубайт каждого байта). Это единственный режим VIC-II, в котором не используется ОЗУ для цветов в $ D800 или регистр цвета фона в $ D021.
Режим многоцветного растрового изображения позволяет использовать три цвета на плитку (четвертый - это цвет фона, установленный в $ D021). Цвета 1 и 2 выбираются битами в ОЗУ экрана (то же самое, что и растровые изображения), а третий - из ОЗУ цвета.
Несмотря на высокий уровень цветовой детализации и возможности адресации всех точек в режиме растрового изображения, он, как правило, непрактичен для игровой графики из-за необходимости большого количества системных ресурсов (8 КБ для пиксельных данных плюс значительно большее количество циклов ЦП для изменения каждого плитка) и обычно не прокручивается. Таким образом, его чаще всего можно увидеть на экранах загрузчика, а иногда и на титульных экранах.
Спрайты
Спрайты VIC-II могут быть монохромными 24x21 или многоцветными 12x21. Подобно символьной графике, последние имеют один индивидуальный цвет для каждого спрайта и два глобальных. VIC-II имеет восемь спрайтов, каждый из которых использует 64 байта памяти для хранения, но, с некоторыми ограничениями, он может отображать намного больше. Мультиплексирование спрайтов - это распространенный метод вывода на экран более восьми объектов (хотя по-прежнему их может быть не более восьми на строку развертки). Счетчики строк развертки VIC-II опрашиваются до тех пор, пока на экране не будет достигнута желаемая точка, после чего программа быстро меняет координаты спрайта. Этот программный трюк и другие обходные пути могут привести к отображению на экране более двадцати спрайтов за один раз. Однако для демонстрации лимит значительно более гибкий.
Теоретически максимальное количество различных спрайтов, видимых одновременно, составляет 256 (при условии, что вся страница VIC-II заполнена 16k). К ним обращаются с помощью номера блока для ссылки на каждый шаблон спрайта в памяти, начиная с 0 и заканчивая 255 ($ FF) в зависимости от их положения на странице видео. (если используется второй видеобанк (пронумерованный как 0, 1, 2 и 3), блок 0 будет относиться к спрайту, хранящемуся в $ 4000, а блок 255 будет в $ 7FC0).
Каждый спрайт может быть увеличен в два раза по вертикали, горизонтали или обоим. Это не увеличивает спрайт (кроме визуального) и не добавляет к спрайту больше пикселей, а просто увеличивает масштаб существующих пикселей.
Поскольку регистр горизонтального положения для спрайтов составляет один байт и ограничен максимальным значением 255, он не может охватывать все 320 пикселей области экрана VIC-II, поэтому для этого предусмотрен дополнительный регистр, называемый флагом наиболее значимого байта.
$ D01E и $ D01F содержат регистры столкновения фона и спрайта со спрайтом. Первый используется редко, потому что он не может предоставить информацию о конкретном фоновом объекте, которого касается спрайт.
$ D01B содержит регистр приоритета Sprite To Background, который используется для управления перемещением спрайта позади или перед фоновыми объектами. Когда спрайт входит в то же пространство, что и другой спрайт, спрайт с меньшим номером всегда будет проходить над спрайтом с более высоким номером.
Прокрутка
Для прокрутки экрана символов VIC-II устанавливается в режим с 38 столбцами и / или 24 строками через регистры в $ D011 и $ D016. Это создает внеэкранный буфер, куда помещается строка прокручиваемых символов. Регулируя биты прокрутки в вышеупомянутых регистрах, одна строка может перемещаться на экране, после чего она повторяется, если в буфер не помещается новая строка. Цветное ОЗУ прокручивается одновременно с ОЗУ экрана и работает таким же образом.
Прокрутка VIC-II - относительно сложная задача с интенсивным использованием ЦП, хотя программисты игр C64 нередко обманывали, создавая графику таким образом, чтобы цветная RAM оставалась статичной. Другой стандартный прием - закрыть нижние или верхние 25% экрана счетчиком очков, чтобы уменьшить количество выполняемой прокрутки. Наконец, обычно необходимо использовать дополнительную 1 КБ ОЗУ для записи символьных данных, а затем «копировать» их в ОЗУ экрана, чтобы предотвратить разрыв экрана, хотя это невозможно сделать с ОЗУ для цветных изображений.
В конце коммерческой жизни C64 был обнаружен эксплойт, известный как VSP (Virtual Screen Positioning), который включал манипуляции с управляющими битами в $ D011 для обеспечения быстрой прокрутки при гораздо меньшей стоимости цикла ЦП, чем стандартные регистры прокрутки, однако это требовало осторожности , циклическое кодирование и не работало надежно в некоторых ревизиях VIC-II, также его можно было использовать только для горизонтальной прокрутки. Он особенно используется в Погром в стране монстров.
Растровые прерывания
Использование растровых прерываний - важная часть программирования игр на C64. При включенном по умолчанию состоянии компьютера первая MOS Technology ЦРУ чип генерирует маскируемое прерывание (IRQ) 60 раз в секунду (NTSC) или 50 (PAL), при котором процессор отправляется обработчику IRQ ядра по адресу $ EA31. Обработчик подтверждает IRQ CIA, обновляет часы, сканирует клавиатуру и мигает курсором на BASIC.
Игры обычно отключают прерывания ЦРУ и вместо этого настраивают VIC-II для генерации прерываний при достижении определенной строки сканирования, что необходимо для прокрутки разделенного экрана и воспроизведения музыки. Игра переназначает Вектор IRQ по адресу $ 0314 / $ 0315 своему обработчику растра, который выполняет эти функции, а затем дополнительно выполняет инструкцию JMP $ EA31, чтобы вернуть управление ядру.
Некоторые игры используют только один IRQ; однако вложенные более распространены и улучшают стабильность программы. В этой настройке IRQ переназначается на вторую подпрограмму и так далее для каждой, пока последняя не восстановит его по адресу первого IRQ. Когда используются вложенные IRQ, в цепочке требуется только одна инструкция JMP $ EA31, а остальные можно завершить с помощью JMP $ EA81, который просто переходит в конец обработчика ядра. Кроме того, игры нередко отключают ядро и используют вместо него собственный обработчик IRQ. NMI может использоваться для дополнительного потока прерывания, хотя нежелательные побочные эффекты могут возникнуть в результате случайного нажатия клавиши Restore, поскольку при ее нажатии запускается NMI.
VIC-II может также генерировать растровое прерывание из регистров коллизий, но эта функция используется редко.
Отображение памяти
VIC-II имеет 14-битную адресную шину и может использовать любой из четырех сегментов по 16 КБ пространства памяти C64 для видеоданных. Чтобы справиться с этим, биты порта CIA вносят два дополнительных адресных бита. $ 0000- $ 3FFF - это значение по умолчанию при включении питания. Второй сегмент ($ 4000–7FFF) обычно является лучшим выбором для программирования на BASIC, так как это единственный сегмент, который является полностью свободной оперативной памятью без отображенных на нем ПЗУ или регистров ввода / вывода. Четвертый сегмент ($ C000– $ FFFF) также является хорошим выбором при условии использования машинного языка, так как ПЗУ ядра должны быть отключены, чтобы получить доступ для чтения ЦП, и он позволяет избежать разрозненного программного кода и данных, которые могут возникнуть в результате используя $ 4000- $ 7FFF. Обратите внимание, что графические данные могут свободно храниться под BASIC ROM в $ A000- $ BFFF, ROM ядра в $ E000- $ FFFF или регистрах ввода / вывода и цветное RAM в $ D000– $ DFFF, поскольку VIC-II видит только RAM, вне зависимости от того, как настроено отображение памяти CPU; Символьное ПЗУ отображается только в первом и третьем сегментах, поэтому, если используется сегмент два или четыре, программист должен предоставить свои собственные символьные данные. ОЗУ экрана, страница растрового изображения, спрайты и наборы символов должны занимать одно и то же окно сегмента (при условии, что биты CIA не изменяются посредством прерывания строки сканирования). Последние шесть байтов системной памяти ($ FFFA- $ FFFF) содержат IRQ, NMI и векторы сброса, поэтому, если верхняя часть памяти используется для хранения набора символов или данных спрайта, необходимо будет пожертвовать одним символом или спрайтом. чтобы избежать перезаписи векторов.
Регистры
VIC-II имеет 47 регистров чтения / записи, перечисленных ниже:
регистр | Шестнадцатеричный | Бит 7 | Бит 6 | Бит 5 | Бит 4 | Бит 3 | Бит 2 | Бит 1 | Бит 0 | Описание |
---|---|---|---|---|---|---|---|---|---|---|
Спрайт с координатами X 0 | ||||||||||
Спрайт координаты Y 0 | ||||||||||
Спрайт с координатами X 1 | ||||||||||
Координатный спрайт Y 1 | ||||||||||
Спрайт с координатами X 2 | ||||||||||
Координатный спрайт Y 2 | ||||||||||
Спрайт с координатами X 3 | ||||||||||
Координатный спрайт Y 3 | ||||||||||
Спрайт с координатами X 4 | ||||||||||
Координатный спрайт Y 4 | ||||||||||
Спрайт с координатами X 5 | ||||||||||
Координатный спрайт Y 5 | ||||||||||
Спрайт с координатами X 6 | ||||||||||
Координата Y Sprite 6 | ||||||||||
Спрайт с координатами X 7 | ||||||||||
Координата Y Sprite 7 | ||||||||||
M7X8 | M6X8 | M5X8 | M4X8 | M3X8 | M2X8 | M1X8 | M0X8 | Старшие биты координат X | ||
RST8 | ECM | BMM | DEN | RSEL | Регистр управления 1 | |||||
Счетчик растра | ||||||||||
Световое перо X | ||||||||||
Световое перо Y | ||||||||||
M7E | M6E | M5E | M4E | M3E | M2E | M1E | M0E | Спрайт включен | ||
- | - | ВИЭ | MCM | CSEL | Регистр управления 2 | |||||
M7YE | M6YE | M5YE | M4YE | M3YE | M2YE | M1YE | M0YE | Расширение Sprite Y | ||
VM13 | VM12 | VM11 | VM10 | CB13 | CB12 | CB11 | - | Указатели памяти | ||
IRQ | - | - | - | ILP | IMMC | IMBC | IRST | Регистр прерывания | ||
- | - | - | - | ELP | EMMC | EMBC | ERST | Разрешено прерывание | ||
M7DP | M6DP | M5DP | M4DP | M3DP | M2DP | M1DP | M0DP | Приоритет данных спрайтов | ||
M7MC | M6MC | M5MC | M4MC | M3MC | M2MC | M1MC | M0MC | Спрайт многоцветный | ||
M7XE | M6XE | M5XE | M4XE | M3XE | M2XE | M1XE | M0XE | Расширение Sprite X | ||
M7M | M6M | M5M | M4M | M3M | M2M | M1M | M0M | Столкновение спрайтов и спрайтов | ||
M7D | M6D | M5D | M4D | M3D | M2D | M1D | M0D | Конфликт данных спрайта | ||
- | - | - | - | Цвет границы | ||||||
- | - | - | - | Цвет фона 0 | ||||||
- | - | - | - | Цвет фона 1 | ||||||
- | - | - | - | Цвет фона 2 | ||||||
- | - | - | - | Цвет фона 3 | ||||||
- | - | - | - | Спрайт многоцветный 0 | ||||||
- | - | - | - | Спрайт многоцветный 1 | ||||||
- | - | - | - | Цветовой спрайт 0 | ||||||
- | - | - | - | Цветной спрайт 1 | ||||||
- | - | - | - | Цветной спрайт 2 | ||||||
- | - | - | - | Цветной спрайт 3 | ||||||
- | - | - | - | Цветной спрайт 4 | ||||||
- | - | - | - | Цветной спрайт 5 | ||||||
- | - | - | - | Цветной спрайт 6 | ||||||
- | - | - | - | Цветной спрайт 7 |
Цвета
В режиме многоцветных символов (160 × 200 пикселей, который используется в большинстве игр) символы имели 4 × 8 пикселей (символы все еще были примерно квадратными, поскольку пиксели были двойной ширины) и 4 цвета из 16 цветов. Четвертый цвет был одинаковым для всего экрана (цвет фона), а остальные 3 можно было установить индивидуально для каждой такой области размером 4 × 8 пикселей. Два цвета были загружены из активного текстового экрана, а третий был загружен из цветного ОЗУ. Спрайты в многоцветном режиме (12 × 21 пиксель) имели три цвета: два общих для всех спрайтов и один индивидуальный. Художнику приходилось подбирать общие цвета так, чтобы сочетание с отдельными цветами производило красочное впечатление. Некоторые игры перезагружали общие цвета во время прерывания растра; например, игра Turrican II's подводная область (которая была четко различима по вертикали) имела разные цвета. Другие, такие как Эпикс с Летние игры и Бюллетень COMPUTE! 's Баскетбол Сэм и Эд, наложены два спрайта с высоким разрешением, чтобы можно было использовать два цвета переднего плана без ущерба для горизонтального разрешения [1]. Конечно, этот прием уменьшил количество доступных спрайтов вдвое.
На PAL C64s, PAL линия задержки в мониторе или телевизоре, который усредняет цвет оттенок Но не яркость, последовательных линий экрана можно использовать для создания семи нестандартных цветов путем чередования линий экрана, показывающих два цвета одинаковой яркости. Таких пар цветов в микросхеме VIC семь.
Команда C64 не тратила много времени на математический расчет 16-цветовой палитры. Роберт Яннес, принимавший участие в разработке VIC-II, сказал:
Боюсь, что на выбор цвета ушло не так много усилий, как вы думаете. Поскольку у нас был полный контроль над оттенком, насыщенностью и яркостью, мы выбрали цвета, которые нам нравились. Однако, чтобы сэкономить место на чипе, многие цвета были просто противоположной стороной цветового круга по сравнению с выбранными нами. Это позволило нам повторно использовать существующие значения резисторов, вместо того, чтобы иметь полностью уникальный набор для каждого цвета.[10]
Обратите внимание, что ранние версии VIC-II, используемые в PAL C64s, имеют цветовую палитру, отличную от более поздних версий.[11]
Полная палитра из шестнадцати цветов представлена ниже:
Число - имя | Y | Pb (отн.) | Pr (отн.) |
---|---|---|---|
0 - черный | 0 | 0 | 0 |
1 - белый | 1 | 0 | 0 |
2 - красный | 0.3125 | −0.3826834 | 0.9238795 |
3 - голубой | 0.625 | 0.3826834 | −0.9238795 |
4 - фиолетовый | 0.375 | 0.7071068 | 0.7071068 |
5 - зеленый | 0.5 | −0.7071068 | −0.7071068 |
6 - синий | 0.25 | 1 | 0 |
7 - желтый | 0.75 | −1 | 0 |
8 - оранжевый | 0.375 | −0.7071068 | 0.7071068 |
9 - коричневый | 0.25 | −0.9238795 | 0.3826834 |
10 - светло-красный | 0.5 | −0.3826834 | 0.9238795 |
11 - темно-серый | 0.3125 | 0 | 0 |
12 - средне-серый | 0.46875 | 0 | 0 |
13 - светло-зеленый | 0.75 | −0.7071068 | −0.7071068 |
14 - голубой | 0.46875 | 1 | 0 |
15 - светло-серый | 0.625 | 0 | 0 |
VIC-IIe
8564/8566 VIC-IIe в Коммодор 128 использовал 48 контактов, а не 40, так как он генерировал больше сигналов, в том числе часы для дополнительных Зилог Z80 ЦП этого компьютера. У него также было два дополнительных регистра. Один из дополнительных регистров предназначался для доступа к добавленной цифровой клавиатуре и другим дополнительным клавишам этого компьютера; эта функция была добавлена к VIC просто потому, что это оказалось самым простым местом в компьютере для добавления необходимых трех дополнительных выходных контактов. Другой дополнительный регистр был для переключения между системными часами 1 МГц и 2 МГц; на более высокой скорости видеовыход VIC-II просто отображает каждый второй байт в коде, поскольку черный нанимает битовый узор на экране, предлагая использовать 80-столбцовый режим C128 на этой скорости (через 8563 В постоянного тока RGB-чип). Скорее неофициально, два дополнительных регистра были также доступны в режиме C64 C128, что позволяло использовать дополнительные клавиши, а также выполнять функции с двойной скоростью без видео. Привязанный к ЦП код (например, интенсивные численные вычисления) в самодельных программах на C64.[12] Дополнительные регистры также были одним из источников незначительной несовместимости между режимом C64 C128 и реальным C64 - несколько старых программ C64 были случайно записаны в 2 МГц toggle bit, который вообще ничего не сделает на реальном C64, но приведет к неправильному отображению на C128 в режиме C64.
VIC-IIe обладает малоизвестной способностью создавать дополнительный набор цветов, манипулируя регистрами определенным образом, что приводит к смещению цветового сигнала в фазе с тем, что другие части микросхемы считают его находящимся в нем.[нужна цитата ]
Используя специфическое поведение тестового бита VIC-IIe, он, кроме того, способен создавать реальное чересстрочное изображение с разрешением 320 × 400 (режим найма) и 160 × 400 (многоцветный режим).
Список версий VIC-II
Commodore внесла множество изменений в VIC-II за время своего существования. Бюллетень Compute!'В первом выпуске, в июле 1983 г., сообщалось, что с момента выпуска Commodore 64 в середине 1982 г. их уже было восемь.[13]
- PAL
- MOS Technology 6569 - (PAL-B, используется в большинстве стран PAL)
- MOS Technology 6572 - (PAL-N, используется только в южной части Южной Америки)
- Технология MOS 6573 - (ЛАДОНЬ, используется только в Бразилии)
- MOS Technology 8565 - версия HMOS-II для материнских плат "C64E"
- MOS Technology 8566 - версия VIC-II E (PAL-B) C128
- MOS Technology 8569 - версия VIC-II E (PAL-N) C128
- NTSC
- MOS Technology 6566 - разработана для SRAM / не-смешанный адресные строки (используются в Машина Commodore MAX )
- MOS Technology 6567 - оригинальная версия NMOS
- MOS Technology 8562 - версия HMOS-II
- MOS Technology 8564 - версия VIC-II E C128
Примечания
Во всех моделях C64 VIC-II вставлен в разъем для легкой замены, но важно отметить, что 6569, 6572, 6573, 6566 и 6567 используют 12 вольт и 5 вольт, тогда как 8565 и 8562 используют только 5 вольт. Замена старой версии новой версией без модификации материнской платы приводит к уничтожению 8565 и 8562, если они включены в самые старые версии материнских плат C64.
Существует несколько ревизий 6569: 6569R1 (обычно позолоченный), 6569R3, 6569R4 и 6569R5. Самая распространенная версия 8565 - 8565R2.
Смотрите также
Рекомендации
- ^ Багналл, Брайан (2005). «Секретный проект 1981». На грани: захватывающий взлет и падение Commodore (1-е изд.). Виннипег, Манитоба: Variant Press. С. 224–225. ISBN 0-9738649-0-7.
- ^ а б Perry, Tekla S .; Уоллич, Пол (март 1985). «История разработки: Commodore 64» (PDF). IEEE Spectrum. Нью Йорк, Нью Йорк: Институт инженеров по электротехнике и электронике: 48–58. ISSN 0018-9235. Получено 2011-11-12.
- ^ Багналл, Брайан (2005). «Секретный проект 1981». На грани: захватывающий взлет и падение Commodore (1-е изд.). Виннипег, Манитоба: Variant Press. п. 227. ISBN 0-9738649-0-7.
- ^ Багналл, Брайан (2005). «Секретный проект 1981». На грани: захватывающий взлет и падение Commodore (1-е изд.). Виннипег, Манитоба: Variant Press. п. 229. ISBN 0-9738649-0-7.
- ^ Багналл, Брайан (2005). «Секретный проект 1981». На грани: захватывающий взлет и падение Commodore (1-е изд.). Виннипег, Манитоба: Variant Press. п. 230. ISBN 0-9738649-0-7.
- ^ Багналл, Брайан (2005). «Секретный проект 1981». На грани: захватывающий взлет и падение Commodore (1-е изд.). Виннипег, Манитоба: Variant Press. п. 242. ISBN 0-9738649-0-7.
- ^ Якал, Кэти (июнь 1986 г.). «Эволюция коммодорной графики». Бюллетень Compute!. стр. 34–42. Получено 2019-06-18.
- ^ а б c d Каупер, Оттис Р. (1986). Отображение Commodore 128. Гринсборо, Северная Каролина: ВЫЧИТАЙТЕ! Книги. ISBN 0-87455-060-2.
- ^ "Чип видеоинтерфейса 6567: Спецификация" (PDF). Commodore Semiconductor Group. листы 2 и 5.
- ^ Тиммерманн, Филипп. "Анализ цвета Commodore VIC-II (предварительная версия)". Получено 11 февраля 2018.
- ^ Sjöstedt, Ilkka. «Старые цвета VIC-II и смешение цветов». блог ilesj. Получено 11 февраля 2018.
- ^ Cowper, Ottis R .; Флоранс, Дэвид; Heimarck, Todd D .; Краузе, Джон; Миллер, Джордж В .; Никитин, Кевин; Нельсон, Филипп I; Виктор, Тим (октябрь 1985). «Глава 7. Архитектура системы». 128 Руководство программиста COMPUTE!. Гринсборо, Северная Каролина: ВЫЧИТАЙТЕ! Публикации. С. 348–349. ISBN 0-87455-031-9.
- ^ Халфхилл, Том Р. (июль 1983 г.). "Обновление видео Commodore 64". Бюллетень Compute!. п. 40. Получено 6 февраля 2016.
- «Приложение N: Технические характеристики микросхем 6566/6567 (VIC-II)». Справочное руководство программиста Commodore 64 (PDF) (1-е изд.). Commodore Business Machines. 1982. С. 436–456. ISBN 0-672-22056-3.
внешняя ссылка
- Видеоконтроллер MOS 6567/6569 (VIC-II) и его применение в Commodore 64 - подробное аппаратное описание VIC-II.
- Commodore VIC-II Color Analysis (предварительная версия) - попытка Филипа Тиммерманна предоставить точную информацию о цветовой палитре VIC-II.
- Описание графических режимов C64 - простые объяснения с примерами изображений общих режимов, используемых для графики C64, включая взломанные и программные режимы.
- Режимы видео с реальной чересстрочной разверткой с помощью VIC-IIe.
- Информация о программировании VIC на Codebase64.
- Кадры VIC-II