Моторола 6845
Motorola 6845 , или MC6845 , — это контроллер дисплея , который широко использовался в 8-битных компьютерах в 1980-х годах. [1] [2] Первоначально предназначенный для проектов на базе процессора Motorola 6800 и получивший соответствующий номер детали, он более широко использовался вместе с различными другими процессорами и чаще всего встречался в машинах на базе Zilog Z80 и MOS 6502 .
Модель 6845 не является самостоятельным решением для отображения; Основная функция чипа — правильно рассчитать время доступа к памяти дисплея и вычислить адрес памяти следующей части, которая будет отрисована. Другая схема в машине затем использует адрес, предоставленный 6845, для получения шаблона и последующего его рисования. Реализация этого оборудования полностью зависит от разработчика и сильно различается на разных машинах. Модель 6845 предназначена для отображения символов, но ее можно также использовать и для пиксельной графики при наличии некоторого умного программирования.
Среди наиболее известных применений — BBC Micro , Amstrad CPC и Videx видеокарты VideoTerm для Apple II . [1] Он также является частью многих ранних графических адаптеров для IBM PC , включая MDA , Hercules Graphics Card (HGC), Color Graphics Adaptor (CGA) и Plantronics Colorplus . [3] Его функциональность была дублирована и расширена за счет специальных схем в EGA и VGA видеоадаптерах для ПК.
Дизайн [ править ]
Первоначально разработанный Hitachi как HD46505 , [4] Версии, созданные Hitachi, используются во многих японских компьютерах от Sony, Sharp, Panasonic и Casio. Позже клонирован компанией Fujitsu как MB89321A. [5] Он также известен как 6845 CRTC или CRTC6845 , что означает « контроллер электронно-лучевой трубки ». Эта версия использовалась на ПК Apricot и Victor 9000 для обеспечения монохромного дисплея с разрешением 800x400.
Распространенным клоном этого контроллера ЭЛТ является Объединенной микроэлектронной корпорации (UMC) контроллер ЭЛТ UM6845E . Во время технологического эмбарго «холодной войны» модель 6845 была клонирована в Болгарии под обозначением CM607 . 6845 был очень похож и связан с более поздним 6545, произведенным MOS Technology (Commodore Semiconductor Group) и Rockwell (в двух версиях).
Обзор [ править ]
Чип генерирует сигналы, необходимые для взаимодействия с растровым дисплеем , но не генерирует сами пиксели , хотя он вносит информацию о курсоре и гашении видео в сигналы пиксельного видео (интенсивность). Он используется для создания правильно синхронизированной горизонтальной и вертикальной синхронизации и предоставления адреса в памяти, из которого должен быть прочитан следующий пиксель или набор пикселей. Процесс считывания этого значения, преобразования его в пиксели и отправки на ЭЛТ оставлен на усмотрение других схем. Из-за этого системы, использующие 6845, могут иметь очень разные числа и значения цветов или вообще не поддерживать цвета. [6]
с чересстрочной разверткой Поддерживаются режимы вывода и без нее, а также аппаратный текстовый курсор. Генерация синхронизации включает в себя генерацию сигналов гашения горизонтального и вертикального видео, которые используются для настройки внешних схем генерации пикселей. Кроме того, предусмотрена внутренняя защелка, которая при срабатывании дублирует и сохраняет копию видеоадреса, чтобы позже ее можно было прочитать ЦП. Это полезно для световых ручек и световых пистолетов , которые могут функционировать, отправляя импульс на 6845 при прохождении электронного луча, позволяя работающей программе считывать место, на которое было указано. Из-за этой функции большинство компьютерных видеоадаптеров, использующих 6845, имели интерфейс светового пера, хотя обычно это был внутренний разъем на самой плате, а не снаружи компьютера, и он обычно не документировался в руководстве пользователя.
Поскольку все аспекты синхронизации видео программируются, одна машина может NTSC и PAL программно переключаться между таймингами . 6845 можно использовать для управления мониторами или любым другим растровым дисплеем.
Внутренности [ править ]
Чип имеет в общей сложности 18 8-битных регистров, управляющих всеми аспектами синхронизации видео. Внешним компонентам доступны только два адреса: один для выбора внутреннего регистра для чтения или записи, а другой для доступа к этому регистру. [7]
N. º из зарегистрироваться | Функция |
---|---|
0 | Всего по горизонтали, в символах |
1 | Количество горизонтальных символов, отображаемых в строке |
2 | Положение горизонтальной синхронизации |
3 | Ширина строчной синхронизации, в символах |
4 | Всего по вертикали |
5 | Общая регулировка по вертикали, в количестве строк развертки |
6 | Количество отображаемых строк (по вертикали) |
7 | Положение вертикальной синхронизации, в # строках символов |
8 | Чересстрочный режим |
9 | Максимальное направление линий сканирования |
10 | Начало курсора в строке сканирования |
11 | Конец курсора в строке сканирования |
12 | Начальный адрес экрана (высокий) |
13 | Начальный адрес экрана (низкий) |
14 | Адрес курсора (высокий) |
15 | Адрес курсора (низкий) |
16 | Адрес светового пера (высокий) |
17 | Адрес светового пера (низкий) |
Модель 6845 предназначена для текстовых дисплеев. Каждый генерируемый им адрес состоит из двух частей — 14-битного символьного адреса и 5-битного адреса строки. Адрес символа увеличивается линейно. Когда чип сигнализирует о горизонтальной синхронизации, он увеличивает адрес строки. Если адрес строки не равен программно установленному количеству строк на символ, то адрес символа сбрасывается до значения, которое он имел в начале только что завершенной строки сканирования. В противном случае адрес строки сбрасывается в ноль, а адрес памяти продолжает линейно увеличиваться. Это приводит к тому, что одна и та же последовательность значений символов пересчитывается из памяти для каждой растровой строки каждой строки символов, прежде чем 6845 переведет адрес памяти на следующую строку символов и повторит тот же шаблон.
Если адрес символа используется для поиска ссылки на символ в ОЗУ , а адрес строки для индексации таблицы графики символов в ПЗУ, обычный текстовый режим создается отображения. Ссылка на символ, считанная из памяти, должна быть объединена с адресом строки, чтобы сформировать адрес для ПЗУ символьной графики, при этом ссылка на символ выбирает набор шаблонов строк сканирования, которые формируют один символ, и индексация адреса строки в этот набор для выбора одного сканирования. линия. Другими словами, адрес ПЗУ разбивается на две части, чтобы использовать ПЗУ как двумерный массив: первое измерение выбирает символ, а второе выбирает строку графического шаблона этого символа.
Однако 6845 предоставил разработчику свободу маршрутизировать биты памяти и адреса строк в видеопамять по своему усмотрению. По этой причине слово, адресуемое 6845, не обязательно должно равняться одному пикселю или одному символу. В буквенно-цифровом (текстовом) режиме CGA на каждый символ приходится два байта, к которым 6845 обращается последовательно: первый байт представляет собой байт кода символа, а второй байт представляет собой байт атрибута символа, и плата использует содержимое байтов вместе. с адресом строки для чтения данных шрифта из ПЗУ и генерации пикселей.
Для эмуляции кадрового буфера можно использовать другую маршрутизацию битов, исключая символьное ПЗУ. Из-за ограничения в 127 строк 6845 не может обеспечить линейные большие линейные буферы кадров. Решением было объединить адрес строки и адрес символа, чтобы обеспечить линейные строки развертки в нелинейном буфере. Это имеет преимущества более простого программирования для несимвольного отображения и простой плавной горизонтальной прокрутки, но может препятствовать плавной вертикальной прокрутке. Например, графический режим IBM CGA использует размер слова в один байт, и каждое слово представляет четыре или восемь пикселей (в графических режимах среднего или высокого разрешения соответственно); 6845 настроен на высоту символа в 2 пикселя, а бит RA0 адреса строки используется для бита 13 адреса буфера кадра. Таким образом, можно использовать 200 пикселей по вертикали, несмотря на ограничение в 127 строк. Графический режим в других системах использовал аналогичный трюк: в видеокарте Hercules биты 12-13 адреса кадрового буфера происходили из битов адреса строки RA0-RA1, обеспечивая вертикальное разрешение 348 пикселей из 87 строк высотой в четыре пикселя. "; Amstrad CPC использовал высоту строки 8, как и в текстовом режиме, сопоставляя адрес строки RA0-RA2 с адресом памяти MA11-MA13, а адрес символа CA0-CA10 с адресом памяти MA0-MA10.
Эти режимы работы были возможны, поскольку 6845 не выполнял никакой буферизации символьных данных. В 1970-е, 1980-е и, в меньшей степени, 1990-е годы память была дорогой, особенно быстрой, и это вызывало серьезную озабоченность. В 1970-х и в начале-середине 1980-х плотность схем микросхем также была не очень высокой, и размещение символьного буфера размером 80 байт или больше в чипе, таком как 6845, могло бы увеличить размер кристалла на 50-100%, что, в свою очередь, привело бы к увеличению размера кристалла микросхемы. он дороже в несколько раз из-за экспоненциального роста количества дефектов чипов и последующего снижения производительности с увеличением размера кристалла.
С другой стороны, 6845 возложил на своих пользователей ответственность за обеспечение достаточной пропускной способности памяти для поддержки пересчитывания данных в каждой строке. Если символ занимает одно «слово» в видеобуфере, отображение l строк и c столбцов символов с s строк развертки на символ требует l × c слов памяти для представления полного экрана символов, но занимает в s раз больше памяти. доступы для завершения одного цикла обновления: каждая строка символьных слов повторно считывается s раз, прежде чем будет прочитана следующая строка. Это означает, что символьные дисплеи с использованием 6845 требуют высокой пропускной способности памяти, порядка пропускной способности, необходимой для графических дисплеев с всеточечной адресацией того же разрешения.
Другой контроллер видеодисплея, который буферизует одну целую строку символьных данных внутри, может избежать повторного чтения каждой строки символов из ОЗУ буфера дисплея, уменьшая требуемую пропускную способность памяти и позволяя использовать либо более медленные, менее дорогие микросхемы памяти, либо больше времени. для системного процессора для доступа к памяти или сочетание того и другого. Когда чип был представлен, добавление такого символьного буфера в 6845 считалось нерентабельным; однако всего несколько лет спустя чип VIC-II , используемый в Commodore 64, действительно включал такой кэш строк символов.
Ограничения [ править ]
Используя полный диапазон адресов RA0-RA4:CA0-CA13, 6845 может адресовать 2 14+5 = 524 288 слов памяти. Слово может иметь любое количество битов, выбранное разработчиком системы в качестве ширины памяти: хотя количество уникальных адресов, к которым может обращаться 6845, ограничено 524 288 , объем памяти, к которому может обращаться 6845, может быть значительно больше, чем могло бы быть. Предполагается, что 6845 не налагает ограничений на размер каждой ячейки памяти, к которой он обращается. Если размер слова составляет один байт, как это часто бывает, 6845 может адресовать 512 КиБ . Если размер слова составляет 32 бита, например, для 32-битной цветной графики с одним пикселем на слово, то 6845 может адресовать 2048 КБ; для 64-битных слов он может адресовать вдвое больше. Эти ограничения возникают из-за комбинации 6845 и конструкции подключенной к нему внешней памяти, а не только из-за 6845.
Линейные фреймбуферы [ править ]
Как описано ранее, 6845 обычно не может обеспечить большие линейные буферы кадров . Один проект мог использовать только 14-битную адресацию символов и устанавливать количество строк на символ равным 1, но был ограничен 128 строками и 16 КБ адресуемой памяти.
Отличия от 6545 [ править ]
Несмотря на полную совместимость, между 6845 и 6545 существует ряд небольших вариаций.
Самое большое отличие состоит в том, что 6545 можно настроить так, чтобы он имел единоличный доступ к адресной шине видеопамяти. Два дополнительных регистра включены для установки любого адреса, который ЦП желает прочитать, и микросхема попеременно выводит адреса для генерации дисплея и набора дисплеев для доступа к ЦП. [8]
Небольшие изменения заключаются в том, что технология MOS и один из вариантов Rockwell 6545 не поддерживают чересстрочный вывод, а все 6545 включают в себя дополнительный сдвиг адреса, который задерживает включение дисплея на один цикл символов, если он установлен. Эта вторая функция была включена в более поздние версии Motorola 6845. Модель 6545 можно настроить для работы в линейном 14-битном режиме с помощью бита состояния. На 6845 то же самое требует регулировки высоты символов. [9]
Трюки [ править ]
6845 считывает начальный адрес своего дисплея один раз за кадр . Однако, если внутренние значения синхронизации на чипе изменяются в нужное время, можно подготовиться к новому кадру, не завершая текущий, создавая прерывистый разрыв в генерируемых адресах в середине отображения. Это обычно используется в демо-версиях и гораздо реже в играх, чтобы обеспечить одну движущуюся область дисплея (обычно игровое поле) и одну статическую (обычно отображение статуса).
Вертикальная прокрутка кажется ограниченной, поскольку можно установить только начальный адрес символа, а адрес строки всегда обнуляется в начале кадра, но, регулируя время границы, можно сместить положение кадрового буфера, отображаемого на растровом дисплее, для приращений между целыми символами. . С помощью рисования пустых пикселей по краям экрана это можно сделать невидимым для пользователя, создавая лишь иллюзию плавной вертикальной прокрутки.
См. также [ править ]
- Motorola 6847 , полноценный генератор видеоизображения
- Список домашних компьютеров по видеооборудованию
Ссылки [ править ]
- ^ Jump up to: Перейти обратно: а б «Контроллер электронно-лучевой трубки 6845 (CRTC)» . www.tinyvga.com . Проверено 18 ноября 2022 г.
- ^ «Различия моделей CRTC» . www.6502.org . Проверено 18 ноября 2022 г.
- ^ PC Mag, июль 1983 г. , с. 435, в Google Книгах.
- ^ «Технические данные-Hitachi:hd4650» (PDF) . Проверено 22 февраля 2024 г.
- ^ «Архив технических характеристик: техническое описание MB89321AP от Fujitsu» . Поисковая система по архиву технических данных . Проверено 22 февраля 2024 г.
- ^ Jump up to: Перейти обратно: а б «Контроллер электронно-лучевой трубки 6845 (CRTC)» . www.tinyvga.com . Проверено 18 ноября 2022 г.
- ^ «Контроллер электронно-лучевой трубки 6845 (CRTC)» . веб.архив.орг . 28 января 2006 г. Проверено 22 февраля 2024 г.
- ^ «Различия моделей CRTC» . www.6502.org . Проверено 18 ноября 2022 г.
- ^ Фаша, Андре (2 ноября 2013 г.). «Различия моделей CRTC» . 6502.org . Проверено 22 февраля 2024 г.