графика Apple II
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Графика Apple II дебютировала в оригинальном Apple II в 1977 году и использовалась во всей одноименной серии компьютеров . Графика состоит из 16-цветного режима с низким разрешением и режима с высоким разрешением, в котором визуальные эффекты зависят от цвета артефакта . В Apple IIe добавлены «двойные» версии каждого из них, в первую очередь «двойное высокое разрешение» с удвоенным горизонтальным разрешением в 16 цветах. Внутренние графические режимы Apple II уникальны и не используют линейный буфер кадров .
Графические режимы, представленные в Apple II GS 1986 года, отличаются от режимов предыдущих моделей Apple II и имеют больше общего с Atari ST и Amiga .
Особенность графических режимов
[ редактировать ]Графические . режимы серии Apple II отличались даже по меркам конца 1970-х — начала 1980-х годов Примечательная особенность этих режимов является прямым результатом основателя Apple Стива Возняка концепции экономии микросхем . Многие домашние компьютерные системы того времени (а также сегодняшние IBM PC-совместимые системы ) имели архитектуру, которая назначала последовательные блоки памяти непоследовательным строкам на экране в графических режимах, то есть с чередованием. [ нужна ссылка ] Текстовый и графический режимы Apple основаны на двух разных коэффициентах чередования : 8:1 и 64:1.
Вторая особенность графики Apple II, так называемые «цветные полосы», является еще одним побочным продуктом дизайна Возняка . Хотя они возникают во всех графических режимах, они играют решающую роль в режиме Hi-Resolution или Hi-Res.
Видеовыход
[ редактировать ]Чтение значения или запись любого значения в определенные адреса памяти управляются так называемыми « мягкими переключателями ». Прочитанное или записанное значение не имеет значения, важен сам доступ. Это позволяло пользователю делать множество разных вещей, включая отображение графического экрана (любого типа) без его стирания, отображение текстового экрана, очистку последней нажатой клавиши или доступ к различным банкам памяти. Например, можно переключиться со смешанной графики и текста на полностью графическое отображение, обратившись к адресу 0xC052 (49234). Затем, чтобы вернуться к смешанной графике и тексту, нужно получить доступ к 0xC053 (49235).
Встроенное оборудование вывода видео
[ редактировать ]Все машины Apple II имели разъем RCA, обеспечивающий грубый NTSC , PAL или SECAM композитный видеовыход (на машинах без NTSC до Apple IIe этот вывод был черно-белым). Это позволило подключить компьютер к любому композитному видеомонитору, соответствующему тому же стандарту, для которого была настроена машина. Однако качество этой продукции было ненадежным; сигнал синхронизации был достаточно близок для мониторов, но не соответствовал стандартам настолько, чтобы его можно было использовать для приложений вещания или даже для ввода в видеомагнитофон без промежуточной обработки. Исключением была версия Black II Plus с расширенной задней частью под торговой маркой Bell & Howell, которая обеспечивала правильную синхронизацию видео, а также другие функции, ориентированные на мультимедиа.
В дополнение к композитному видеовыходу модели IIc, IIc Plus и II GS имели двухрядный 15-контактный выход . В IIc и IIc Plus этот разъем представлял собой специальный видеоразъем для адаптеров к цифровым RGB-мониторам и ВЧ-модуляторам . В II GS это был выход для аналогового RGB- монитора, специально разработанного для II GS .
Дополнительные карты видеовыхода
[ редактировать ]Для серии Apple II были доступны многочисленные дополнительные видеокарты, такие как Apple Text Card с 80 столбцами . Существовали цветные карты PAL, которые позволяли выводить цвет на ранних машинах PAL. Некоторые другие карты просто добавляли возможности отображения с 80 столбцами и строчными буквами , в то время как другие позволяли выводить данные на монитор IBM CGA через выходной разъем DE9 .
Подробности графического режима
[ редактировать ]Цвет на Apple II
[ редактировать ]Видеовыход Apple II на самом деле представляет собой монохромный дисплей, основанный на битовых комбинациях в видеопамяти (или пикселях). Эти пиксели объединяются в квадратуре с сигналом цветовой синхронизации , который интерпретируется как цвет на композитном видеодисплее. В результате получается 16-цветная составная видеопалитра , основанная на цветовом пространстве YIQ, используемом системой цветного телевидения NTSC. [1] [2]
Высокое разрешение обеспечивает два пикселя за цикл Colorburst , что позволяет использовать два возможных цвета, если один пиксель включен: черный, если ни один пиксель не включен, или белый, если включены оба пикселя. Сместив выравнивание пикселей по сигналу цветовой синхронизации на 90°, можно отобразить еще два цвета, всего четыре возможных цвета. Низкое разрешение позволяет использовать четыре бита за цикл, но битовый шаблон повторяется несколько раз для каждого пикселя низкого разрешения. Двойное высокое разрешение также отображает четыре пикселя за цикл.
Графика низкого разрешения (Lo-Res)
[ редактировать ]
Блочный, но быстрый и красочный графический режим Lo-Res (часто известный как GR в честь команды BASIC) имел ширину 40 пикселей , что соответствует 40 столбцам на обычном текстовом экране Apple II. В этом режиме можно отображать либо 40 рядов пикселей с четырьмя строками текста внизу экрана, либо 48 рядов пикселей без текста. Таким образом, два пикселя, расположенные вертикально друг над другом, будут заполнять пространство экрана, соответствующее одному символу в текстовом режиме. По умолчанию для этого использовалась графика 40×40 с текстом.
В этом режиме доступно 16 цветов (фактически в большинстве случаев 15, поскольку два оттенка серого идентичны по яркости на оригинальном оборудовании Apple, за исключением Apple II GS ). Обратите внимание, что шесть цветов идентичны цветам, доступным в режиме высокого разрешения (Hi-Res).
Цвета создавались путем заполнения пикселя повторяющимся 4-битным двоичным шаблоном таким образом, чтобы каждая группа битов укладывалась в один цикл опорного сигнала Colorburst . Цветные дисплеи интерпретируют этот шаблон как цветовой сигнал. На монохромных мониторах или если сигнал Colorburst был отключен, на дисплее будут отображаться эти битовые комбинации. Существует два эквивалентных оттенка серого: 5 (0101) эквивалентно 10 (1010) в зависимости от того, как цвета смешиваются друг с другом; Биты «включено» являются полярно противоположными друг другу в квадратурном цветовом сигнале, поэтому они компенсируют друг друга и отображаются серым цветом.
Этот режим отображается в той же области памяти, что и основной текстовый экран с 40 столбцами (от 0x400 до 0x7FF), при этом в каждом байте хранятся два пикселя один поверх другого.
Графический режим Lo-Res предлагал встроенные команды для очистки экрана, изменения цвета рисунка, построения отдельных пикселей, построения горизонтальных и вертикальных линий. Также существовала функция «SCRN» для извлечения цвета, хранящегося в любом пикселе, чего не было в других режимах.
Число | Имя | ПАДАТЬ | Число | Имя | ПАДАТЬ | ||||
---|---|---|---|---|---|---|---|---|---|
И | я | вопрос | И | я | вопрос | ||||
0 | черный | 0.00 | 0.0 | 0.0 | 8 | коричневый | 0.25 | 0.5 | -0.5 |
1 | красный | 0.25 | 0.5 | 0.5 | 9 | апельсин | 0.50 | 1.0 | 0.0 |
2 | темно-синий | 0.25 | -0.5 | 0.5 | 10 | серый | 0.50 | 0.0 | 0.0 |
3 | фиолетовый | 0.50 | 0.0 | 1.0 | 11 | розовый | 0.75 | 0.5 | 0.5 |
4 | темно-зеленый | 0.25 | -0.5 | -0.5 | 12 | ярко-зеленый | 0.50 | 0.0 | -1.0 |
5 | серый | 0.50 | 0.0 | 0.0 | 13 | желтый | 0.75 | 0.5 | -0.5 |
6 | сине-голубой | 0.50 | -1.0 | 0.0 | 14 | голубой | 0.75 | -0.5 | 0.5 |
7 | светло-голубой | 0.75 | -0.5 | 0.5 | 15 | белый | 1.0 | 0.0 | 0.0 |
Расположение памяти низкого разрешения
[ редактировать ]Блок размером 128 байт хранит три строки по 40 символов каждая, а после сохранения третьей строки остается остаток в восемь байт. Но эти байты не остаются пустыми. Вместо этого они по-разному используются прошивкой материнской платы и прошивкой карты расширения для хранения важной информации, в основном о внешних устройствах, подключенных к компьютеру. Это создавало проблемы, когда пользователь загружал текст или графический экран низкого разрешения непосредственно в видеопамять, заменяя текущую информацию в отверстиях той, которая была там во время сохранения. Повторная калибровка головки диска была частым побочным эффектом, когда контроллер диска обнаруживал, что его память — в отверстии экрана — о том, где находится головка, внезапно не соответствовала данным заголовка дорожки, которую он читал. Программисты Apple в ответ запрограммировали ProDOS так, чтобы пользователь не мог напрямую загружать файл (данные экрана или что-то еще) в 0x400-0x7FF. Вскоре появились программы ProDOS для правильной загрузки данных в эту часть памяти; некоторые из них появились в Nibble журнале .
Экран 2. Графика и текст низкого разрешения.
[ редактировать ]Наличие двух экранов для отображения видеоизображений было неотъемлемой частью дизайна семейства Apple II. При доступе к ячейке памяти 0xC055 (49237) отображается «Экран 2» независимо от того, как были установлены другие «мягкие переключатели». Текст и пространство экрана Lo-Res 2 варьировались от 0x800 (2048) до 0xBFF (3071). Чередование точно такое же, как и на главном экране («Экран 1»). Программы Applesoft BASIC по умолчанию загружаются с адресом 801h (2049); следовательно, они будут занимать пространство Текстового экрана 2, если компьютеру не будет дано указание загрузить программу в другое место в памяти. Напротив, некоторые коммерческие программы для Apple II использовали это пространство памяти для различных целей, обычно для отображения экрана справки.
«Альтернативный режим отображения» на Apple II GS
[ редактировать ]В отличие от других типов компьютеров Apple II, Apple II GS имел процессор ( 65816 ), который мог без особых ухищрений обращаться к более чем 64 КБ ОЗУ . В IIgs ОЗУ было разделено на банки по 64 КБ. Например, банк 0xE0 состоял из диапазона от 0xE00000 до 0xE0FFFF. В Apple IIgs был чип под названием «Mega II», который позволял запускать большинство программ, написанных для других компьютеров Apple II. IIgs Архитектура сопоставила данные экрана с банком памяти 0xE0. Однако в режиме эмуляции IIe данные экрана хранились в банке 0x00. Это представляло проблему. Разработчики Mega II включили процедуры для копирования большей части данных экрана в банк 0xE0, чтобы гарантировать правильную работу программ, специфичных для Apple IIe. Но они забыли о редко используемом Text Screen 2. Это не было обнаружено до тех пор, пока чипы Mega II не попали в машины IIgs. Поэтому разработчики прошивки добавили CDA (классический настольный аксессуар, доступный из меню IIgs Desk Accessories, вызываемого с помощью Apple+ Control+ Escape) под названием «Альтернативный режим отображения», [4] который выполнял задачу для немногих программ, которым это требовалось, за счет небольшого использования процессорного времени. Его можно было включать и выключать по своему желанию, но он снова отключался при перезагрузке компьютера.
Улучшенная совместимость с Text Screen 2 была решена с появлением Apple IIGS с 1 мегабайтом ОЗУ (более известного как ROM 3) в 1989 году. Новая материнская плата обеспечивала аппаратное затенение Text Screen 2 без затрат времени ЦП. не влияет на скорость работы программного обеспечения. Хотя альтернативный режим отображения оставался опцией в меню CDA, машина автоматически обнаруживала наличие текстового экрана 2 и включала аппаратное затенение текстового экрана 2 в банк 0xE0 на машинах с ПЗУ 3.
Графика высокого разрешения (Hi-Res)
[ редактировать ]

Когда вышел Apple II, был добавлен новый режим для графики высокого разрешения 280×192. Как и режим низкого разрешения, режим высокого разрешения имел два экрана; в Applesoft BASIC любой из них можно инициализировать, используя команды HGR для первого экрана или HGR2 для второго.
ПЗУ Applesoft BASIC содержало процедуры для очистки любого из двух экранов высокого разрешения, рисования линий и точек и установки цвета рисования. ПЗУ также содержало процедуры рисования, стирания, масштабирования и вращения векторных фигур. Не существовало процедур для построения растровых фигур , рисования кругов и дуг или заполнения нарисованной области, но было написано множество программ; многие из них появились в Nibble и других журналах Apple II.
Пользователь мог «включить» четыре строки текста в режиме высокого разрешения, как и в режиме низкого разрешения; однако это скрыло нижние 32 строки, в результате чего получилось изображение размером 280 × 160. Подпрограммы ПЗУ все равно могли изменить нижнюю часть, даже если она была скрыта.
Режим Hi-Res в Apple II был необычным даже по меркам того времени. Хотя карта CGA , выпущенная через четыре года после Apple II на IBM PC, позволяла пользователю выбирать один из двух наборов цветов для создания графики 320×200, одновременно были доступны только четыре цвета (цвет фона и три цвета рисования). Напротив, Apple предлагала восемь цветов для графики высокого разрешения или даже шесть, поскольку в схеме повторялись черный и белый цвета. Каждая строка по 280 пикселей была разбита на 40 блоков по семь пикселей каждый, представленных одним байтом. Каждая пара соседних пикселей генерировала один цветной пиксель посредством цвета артефакта , в результате чего эффективное разрешение составляло 140×192. Младшие семь битов каждого байта представляли пиксели, а старший бит контролировал сдвиг фазы для этого блока пикселей, изменяя отображаемый цвет.
Старший бит | Пара пикселей | Число | Имя | ПАДАТЬ | ||
---|---|---|---|---|---|---|
И | я | вопрос | ||||
0 | 00 | 0 | черный | 0.0 | 0.0 | 0.0 |
0 | 01 | 1 | фиолетовый | 0.5 | 1.0 | 1.0 |
0 | 10 | 2 | зеленый | 0.5 | −1.0 | −1.0 |
0 | 11 | 3 | белый | 1.0 | 0.0 | 0.0 |
1 | 00 | 4 | черный | 0.0 | 0.0 | 0.0 |
1 | 01 | 5 | синий | 0.5 | 1.0 | −1.0 |
1 | 10 | 6 | апельсин | 0.5 | −1.0 | 1.0 |
1 | 11 | 7 | белый | 1.0 | 0.0 | 0.0 |
Хотя эта функция позволяет одновременно отображать на экране шесть цветов, у нее есть один неприятный побочный эффект. Например, если программист попытается нарисовать синюю линию поверх зеленой, части зеленой линии изменятся на оранжевые. Это связано с тем, что в этом случае рисование синей линии устанавливает старший разряд для каждого блока из семи пикселей. «Зеленые» и «оранжевые» пиксели представлены в памяти одинаково; разница заключается в установке (или очистке) старшего бита. Еще одним побочным эффектом является то, что для рисования пикселя требуется деление на семь. (Для процессора Apple 6502, у которого не было аппаратного обеспечения деления, деление на семь было относительно медленным. Если бы для рисования пикселя требовалось только деление на простую степень двойки, например на восемь, для этого потребовалась бы всего лишь последовательность битовых сдвигов. это было бы намного быстрее.)
Режим Hi-Res на Apple II также отличался коэффициентом чередования 64:1. Это стало прямым результатом разработки Стива Возняка, направленной на экономию стружки. [5] Коэффициент 64:1 привел к эффекту «жалюзи» при загрузке экрана высокого разрешения в память с дискеты (или иногда с RAM-диска ) с уже установленными программными переключателями. «Дыры на экране» возникают в режиме высокого разрешения так же, как и в режиме низкого разрешения и текстовом режиме. Обычно там ничего не хранилось, хотя иногда их использовали для хранения кода в самоотображающихся исполняемых картинках. Еще одним заметным исключением является формат Fotofile (FOT). [6] унаследованный ProDOS от Apple SOS , который включал метаданные в 121-й байт (первый байт первого отверстия) , указывающие, как оно должно отображаться (цветовой режим, разрешение) или конвертироваться в другие графические форматы.
Наконец, еще одна особенность дизайна Возняка заключается в том, что хотя любой пиксель может быть черным или белым, только пиксели с нечетными координатами X могут быть зелеными или оранжевыми. Аналогично, только пиксели с четными номерами могут быть фиолетовыми или синими. [7] Вот тут-то и появляется так называемое «дополнительное преимущество». Видеооборудование Apple интерпретирует последовательность из двух или более включенных горизонтальных пикселей как сплошной белый цвет, в то время как последовательность чередующихся пикселей будет отображаться как цвет. Аналогично, последовательность из двух или более выключенных горизонтальных пикселей будет отображаться черным цветом.
Не было встроенной команды для извлечения цвета пикселя на экране Hi-Res или даже для определения того, включен ли он вообще. Было написано несколько программ для определения того, светился ли пиксель, а программа для извлечения истинного цвета пикселя была опубликована в апрельском выпуске журнала Nibble за 1990 год .
Точно так же, как есть две страницы текстового экрана (и две страницы графики низкого разрешения), существуют также две страницы высокого разрешения, отображаемые в памяти одна за другой. Второй экран Hi-Res был сопоставлен с 0x4000-0x5FFF или 16384–24575 в десятичном формате. IBM CGA поддерживала одновременно только одну графическую страницу. Это упрощенная анимация на Apple II, поскольку программист мог отображать одну страницу, изменяя при этом другую (скрытую) страницу.
При условии, что вектор сброса не был перекрыт активно работающей программой, вызов Control+ Reset прерывает программу и переходит на монитор или в командную строку Applesoft. Использование Control+ Open-Apple+ Reset приведет к принудительному сбросу за счет небольшого повреждения памяти. Креативная настройка некоторых программных переключателей на мониторе или в командной строке позволяла мгновенно просматривать изображения из прерванных программ. Затем можно было записать любимые сцены из игр. В Apple //e и //c использование Control+ Open-Apple+ Reset приведет к шаблону 0xA0A0 записывается редко по всей памяти, включая страницы Hi-Res 1 и 2 на $2000 – 5 долларов США . Повреждения, вызванные этими артефактами, можно устранить с помощью пакета краски. В улучшенной версии Apple //e видеопамять Hi-Res можно было сохранить без артефактов, выполнив следующую последовательность действий: нажатие Control+ Closed-Apple+ Reset, и растушевывая Reset клавишу вверх, затем вниз на долю секунды, повторяя это до тех пор, пока цветовой шаблон самодиагностики не начнет заполнять первую строку текста в верхнем левом углу. Поскольку самодиагностика прогрессировала от $0000 и выше, как только начальный адрес текстовой страницы 1 ( $400 ) было уничтожено, как и контрольная сумма вектора сброса ( $3F4 ), что означало, что последующее быстрое нажатие Control+ Reset заставило бы прошивку перезагрузиться без затирания памяти выше 0800 долларов США в основном или вспомогательных банках. Эти изображения можно было сохранить на дискету и создать слайд-шоу или статическое изображение, поскольку программный сброс не очищал видеопамять на изображениях Hi-Res.
Графические режимы на более поздних моделях (IIe, IIc, IIc Plus, II GS )
[ редактировать ]Вскоре после появления Apple IIe инженеры Apple поняли, что схему удвоения полосы пропускания видео, используемую для реализации текстового режима с 80 столбцами, можно легко расширить, включив в нее графические режимы машины. Поскольку сигнал присутствовал на разъеме вспомогательного слота, в котором размещалась расширенная карта с 80 столбцами, сигнализатор 3 на игровом порту был перегружен для активации графики с двойным разрешением, когда были выбраны как видео с 80 столбцами, так и графический режим. Сменные материнские платы (так называемые материнские платы Revision B) предлагались бесплатно владельцам Apple IIe для обновления своих машин до графических возможностей двойного разрешения. По этой причине машины с оригинальной материнской платой Revision A встречаются крайне редко. Последующие модели Apple II также поддерживают графические режимы двойного разрешения.
Двойное низкое разрешение
[ редактировать ]Это был графический режим 80×40 (или 80×48), доступный только на машинах с 80 столбцами. В Applesoft BASIC для включения этого режима требовалось три шага. Во-первых, включение режима 80 столбцов с помощью PR#3
, Затем включите графику двойной плотности с помощью POKE 49246,0
, с последующим GR
.
10 PRINT CHR$(4)"PR#3" : PRINT CHR$(0); : POKE 49246,0 : GR
Обратите внимание, что PR#3
переносится на операционную систему, при этом PRINT CHR$(4)
чтобы не отключать его от BASIC. За этим следует команда PRINT для отправки нулевого символа, поскольку вновь назначенное устройство вывода не инициализируется до тех пор, пока ему не будет отправлен первый символ — частый источник путаницы.
Как только это было сделано, экран двойного низкого разрешения отобразился и исчез, а PLOT
, HLIN
, и VLIN
команды работали нормально с диапазоном координат x, расширенным до 0–79. Только Apple IIc и IIgs поддерживали это в прошивке. Использование режима Double Lo-Res из BASIC на IIe было намного сложнее без добавления &
расширение команды для BASIC.
При использовании этого режима в Applesoft возникли две основные проблемы. Во-первых, после активации режима доступ к принтеру усложнялся, поскольку прошивка дисплея с 80 столбцами обрабатывалась как принтер. Во-вторых, SCRN
(чтение пикселей) не работала должным образом. за 1990 год была программа Однако в мартовском номере журнала Nibble , которая решила эту проблему.
Известно , что по крайней мере один коммерчески доступный BASIC компилятор , ZBASIC от Zedcor Systems, поддерживает графику Double Lo-Res.
Двойное высокое разрешение
[ редактировать ]Композиция экрана Double Hi-Res сложна. Помимо чередования 64:1, пиксели в отдельных строках хранятся необычным способом: каждый пиксель имел половину своей обычной ширины, а каждый байт пикселей чередовался между первым и вторым банком памяти объемом 64 КБ. Если три последовательных пикселя были белыми, то теперь требовалось шесть в двойном высоком разрешении. По сути, все пиксельные шаблоны, используемые для создания цвета в графических блоках низкого разрешения, могут быть воспроизведены в графике двойного высокого разрешения.
в ProDOS Реализация RAM-диска облегчила доступ к экрану Double Hi-Res, заставив первый файл размером 8 КБ, сохраненный в /RAM, хранить свои данные по адресу 0x012000 до 0x013fff задумано. Кроме того, была возможна вторая страница, а второй файл (или первый файл большего размера) хранил бы свои данные по адресу 0x014000 до 0x015фф . Однако доступ через файловую систему ProDOS был медленным и не очень подходил для анимации перелистывания страниц в Double Hi-Res, помимо требований к памяти.
Приложения, использующие двойное высокое разрешение
[ редактировать ]Несмотря на сложности программирования и использования этого режима, существовало множество приложений, которые его использовали. Графика двойного высокого разрешения использовалась как в бизнес-приложениях, образовательном программном обеспечении, так и в играх. Версия GEOS для Apple использовала Double Hi-Res, как и Dazzle программа рисования Broderbund Draw . Компания Beagle Bros предоставила набор инструментов Beagle Graphics с процедурами для разработки графики Double Hi-Res в AppleSoft BASIC. Многочисленные аркадные игры и игры, написанные для других компьютеров, были портированы на Apple II, и многие из них использовали преимущества этого графического режима. Существовали также многочисленные служебные программы и сменные карты принтера, которые позволяли пользователю печатать графику двойного высокого разрешения на матричном принтере или даже LaserWriter .
Apple II GS
[ редактировать ]Помимо поддержки существующих режимов, Apple II GS добавляет новые режимы, аналогичные режимам Atari ST и Amiga .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б с «Лаборатория: почему у Apple II было шесть цветов?» . Laboratorium.net .
- ^ Перейти обратно: а б с «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 14 августа 2014 г. Проверено 15 июля 2014 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ^ Перейти обратно: а б BB Изображение спереди Apple
- ↑ Ниббл , февраль 1992 г.
- ↑ Ниббл , июль 1990 г.
- ^ Примечания к типам файлов Apple II : FTN.08.0000
- ^ Ниббл , декабрь 1988 г., с. 66