Набор символов ATASCII , от ATA RIS standard Code for Information Interchange , также известный как AT ARI ASCII , — это кодировка символов, используемая в 8-битных домашних компьютерах Atari . ATASCII основан на ASCII , но не полностью совместим с ним.
Первыми компьютерами в серии Atari 8-bit стали Atari 400 и 800, выпущенные в 1979 году, а более поздние модели выпускались в течение 1980-х годов. Последним компьютером, использовавшим набор символов ATASCII, был Atari XEGS , выпущенный в 1987 году и снятый с производства в 1992 году. Семейство компьютеров Atari ST использует другой набор символов Atari ST .
Как и большинство других вариантов ASCII, ATASCII имеет свои собственные отличительные символы (стрелки, блоки, символы рисования прямоугольников , масти игральных карт и т. д.) вместо управляющих кодов C0 в ASCII (символы 0–31), а также заменяет несколько других кодов ASCII.
8-битные системы Atari имеют три различных набора кодов: коды обмена (ATASCII), внутренние коды (также называемые экранными кодами) и коды клавиатуры. [1] [2]
Коды клавиатуры представляют собой коды, отправленные клавиатурой. Нажатие одной из двух клавиш-модификаторов ( Shift и Control ) изменяет вводимое значение нажатием других клавиш. Из-за наличия двух клавиш-модификаторов существует четыре различных кода клавиатуры, которые могут быть отправлены каждым символом; однако несколько клавиш (точные клавиши зависят от модели) не отправляют управляющий код, если они нажаты при удерживании Shift и Control. [1] При вводе текста обработчик клавиатуры Atari преобразует эти сигналы в ATASCII. [3]
Коды ATASCII и внутренние коды содержат один и тот же набор символов, но индексируются по-разному. Коды ATASCII используются BASIC , в то время как внутренние коды используются для поиска способа отображения символа на экране. [1]
Системы Atari 8-bit имеют несколько различных графических режимов; эти режимы можно классифицировать как чисто текстовые режимы, чисто графические режимы или смешанные режимы. Режимы 0, 1 и 2 представляют чисто текстовые режимы, в то время как режимы 3 и выше представляют смешанные или чисто графические режимы (точное количество различных режимов зависит от модели). [4] Режим 0 отображает символы в размере по умолчанию, режим 1 отображает их в два раза шире (но той же высоты), а режим 2 отображает их в два раза шире и в два раза выше. [4] Режим 0 является графическим режимом по умолчанию и поддерживает 128 уникальных символов в одном из двух цветов (обычное или инверсное видео , в зависимости от старшего бита); режимы 1 и 2 поддерживают только 64 уникальных символа, но поддерживают четыре разных цвета (поскольку вместо этого они используют два старших бита в качестве цветовой информации). [2] 64 символа, доступные в режимах 1 и 2, являются первыми 64 символами во внутреннем коде, которые соответствуют кодам ATASCII от 32 до 95 (от 0x20 до 0x5F). [3] Сюда входят все заглавные буквы и знаки препинания, но не входят строчные буквы и графические символы.
Редактор экрана Atari реализует текстовый курсор, просто инвертируя символ в позиции курсора (исключающим ИЛИ с 0x80). Он не мигает.
ATASCII имеет только 128 уникальных графических символов, причем верхние 128 графических символов (индексы от 128 до 255) являются инверсными видеовариантами нижних 128 графических символов (индексы от 0 до 127). Если старший бит установлен на символе (т. е. если байтовое значение символа находится между 128 и 255), символ обычно отображается как инверсный видеовариант его аналога между 0 и 127, используя побитовое отрицание глифа символа. Это делается чипом ANTIC .
Из-за такого поведения возникает асимметрия в выборе символов для рисования блоков. В обычном видео есть нижние треугольники, но нет верхних треугольников, левая половина блока, но нет правой половины блока, и нижняя половина блока, но нет верхней половины блока; эти якобы отсутствующие символы могут быть отображены с помощью инверсного видео.
Atari 8-битные компьютеры, через сопроцессор ANTIC , поддерживали косвенность графики набора символов, позволяя программе переопределять графические глифы, которые появляются для каждого символа ATASCII. [2] Это может быть использовано как новый шрифт для текста, для поддержки дополнительного набора символов или для плиточной графики в видеоигре или другом приложении. Цикличность между несколькими переопределенными наборами символов может использоваться для обеспечения простой анимации при очень небольших затратах ЦП (в обмен на память, используемую для хранения данных набора символов). Изменение набора символов в ОЗУ также может использоваться для анимации.
В линейках XL и XE ПЗУ Atari OS включает «международный набор символов», который заменяет 29 графических глифов латинскими алфавитными символами, содержащими диакритические знаки , такими как e-acute (é). Операционная система, встроенная в Atari 1200XL , единственную 8-битную модель Atari с функциональными клавишами , позволяла пользователям переключаться между стандартным и альтернативным наборами символов нажатием CTRL+ F4. [5] Более поздние модели XL и XE требовали от пользователя обновления регистра в ОЗУ (например, с помощью команды POKE в BASIC ). [2]
В некоторых регионах вместо международного набора символов по умолчанию был включен другой набор символов, чтобы лучше соответствовать целевому рынку, включая польский, арабский и иврит. Системы Atari 192XT и 256XT, распространяемые в Восточной Европе компанией PZKaren, имели польский набор символов вместо международного набора символов. [6] [7] Atari 65XE Najm, распространяемый на Ближнем Востоке, имеет арабскую кодировку символов в качестве кодировки по умолчанию и отображает текст справа налево , в то время как международный набор символов был заменен стандартной кодировкой ATASCII. [7] [8] [9] [10] Еврейские версии Atari 600XL и 800XL распространялись в Израиле, в которых вместо международного набора символов использовался еврейский набор символов. Еврейский набор символов содержал еврейские буквы вместо строчных латинских букв, но сохранял заглавные латинские буквы. При наборе текста в режиме иврита ввод латинских букв перемещает курсор вправо, а ввод еврейских букв перемещает курсор влево. [7] [11]
В следующей таблице показан набор символов ATASCII по умолчанию. Управляющие символы с графическим представлением отображаются с использованием этого представления. Каждый символ отображается с эквивалентом Unicode .
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | А | Б | С | Д | Э | Ф | |
0x | ♥ | ├ | 🮇 | ┘ | ┤ | ┐ | ╱ | ╲ | ◢ | ▗ | ◣ | ▝ | ▘ | 🮂 | ▂ | ▖ |
1x | ♣ | ┌ | ─ | ┼ | • | ▄ | ▎ | ┬ | ┴ | ▌ | └ | ␛ | ↑ | ↓ | ← | → |
2x | СП | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |
3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
4x | @ | А | Б | С | Д | Э | Ф | Г | ЧАС | я | Дж. | К | Л | М | Н | О |
5x | П | В | Р | С | Т | У | В | Вт | Х | И | З | [ | \ | ] | ^ | _ |
6x | ♦ | а | б | с | г | е | ф | г | час | я | дж | к | л | м | н | о |
7x | п | д | г | с | т | ты | в | ж | х | у | з | ♠ | | | 🢰 | ◀ | ▶ |
8x | ♥ | ├ | ▊ | ┘ | ┤ | ┐ | ╱ | ╲ | ◤ | ▛ | ◥ | ▙ | ▟ | ▆ | 🮅 | ▜ |
9x | ♣ | ┌ | ─ | ┼ | ◘ | ▀ | 🮊 | ┬ | ┴ | ▐ | └ | ЭОЛ | ↑ | ↓ | ← | → |
Топор | █ | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |
Вх | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | 🯄 |
Сх | @ | А | Б | С | Д | Э | Ф | Г | ЧАС | я | Дж. | К | Л | М | Н | О |
Дкс | П | В | Р | С | Т | У | В | Вт | Х | И | З | [ | \ | ] | ^ | _ |
Бывший | ♦ | а | б | с | г | е | ф | г | час | я | дж | к | л | м | н | о |
Фх | п | д | г | с | т | ты | в | ж | х | у | з | ♠ | - | 🢰 | ◀ | ▶ |
Символы, рисующие прямоугольники, располагаются относительно соответствующих им буквенных клавиш на клавиатуре Atari, появляясь на 64 кодовых точки раньше соответствующей заглавной буквы. Например, ┌, ┬ и ┐ — это графические символы, которые находятся на верхних левых клавишах Q, W и E и появляются на 64 кодовых точки раньше этих заглавных букв в ATASCII.
В следующей таблице показана нижняя половина международного набора символов ATASCII. Верхняя половина — это инверсные видеоварианты нижней половины, точно так же, как и стандартный набор символов ATASCII.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | А | Б | С | Д | Э | Ф | |
0x | а | ù | С | Э | ç | о | ò | я | £ | я | ü | д | Ö | у | ó | ö |
1x | Ü | в | û | я | é | è | с | ê | å | а | Å | ␛ | ↑ | ↓ | ← | → |
2x | СП | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |
3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
4x | @ | А | Б | С | Д | Э | Ф | Г | ЧАС | я | Дж. | К | Л | М | Н | О |
5x | П | В | Р | С | Т | У | В | Вт | Х | И | З | [ | \ | ] | ^ | _ |
6x | ¡ | а | б | с | г | е | ф | г | час | я | дж | к | л | м | н | о |
7x | п | д | г | с | т | ты | в | ж | х | у | з | Ä | | | 🢰 | ◀ | ▶ |
Отличается от стандартного ATASCII |
ATASCII имеет 16 управляющих символов, определенных в четырех отдельных диапазонах (от 0x1B до 0x1F, от 0x7D до 0x7F, от 0x8B до 0x8F и от 0xFD до 0xFF). [15] Это ключевое различие между ASCII и ATASCII — в ASCII есть 32 управляющих символа, определенных в диапазоне от 0 до 31 (от 0x00 до 0x1F).
Все управляющие символы ATASCII, за исключением End of Line (0x9B), имеют графическое представление, которое может быть получено путем экранирования этого символа нажатием клавиши Escape перед вводом этого управляющего символа. [15] Например, ввод «Escape» с последующим «cursor right» создаст стрелку вправо. Уникально, управляющий символ End of Line всегда отображает новую строку, независимо от наличия предшествующего escape-символа. [15]
Шестигранник | Десятичная дробь | Функция | Нажатие клавиши |
---|---|---|---|
1Б | 27 | Клавиша выхода | ESC |
1С | 28 | Курсор вверх | CTRL+- |
1D | 29 | Курсор вниз | CTRL+= |
1Э | 30 | Курсор влево | CTRL++ |
1 этаж | 31 | Курсор вправо | CTRL+* |
7D | 125 | Очистить экран | CTRL+ <или +⇧ Shift< |
7Е | 126 | Удалить | ← Backspace |
7Ф | 127 | Вкладка | Tab ↹ |
9Б | 155 | Конец строки | RETURN |
9С | 156 | Удалить строку | ⇧ Shift+← Backspace |
9D | 157 | Вставить строку | ⇧ Shift+> |
9Е | 158 | Очистить табуляцию | CTRL+Tab ↹ |
9Ф | 159 | Установить табуляцию | ⇧ Shift+Tab ↹ |
ФД | 253 | Зуммер | CTRL+2 |
ФЭ | 254 | Удалить символ | CTRL+← Backspace |
ФФ | 255 | Вставить символ | CTRL+> |
Различия в представлении символов могут вызывать проблемы во время модемной связи между Ataris и другими компьютерами. Команды перемещения курсора (и даже возвраты каретки и переводы строк) с компьютеров, не использующих ATASCII, будут бессмысленными на Atari, и наоборот. Терминальные программы должны транслировать между ATASCII и стандартным ASCII.
Некоторые BBS на базе Atari использовали эту разницу, прося клиента нажать клавишу «Return». Если он получал 13 (ASCII CR), то использовался стандартный ASCII. Если он получал 155 (ATASCII CR), то он переключался на ATASCII, позволяя полностью использовать графический набор ATASCII. Некоторые BBS на базе Atari также блокировали функции (или даже полностью блокировали доступ) для пользователей, не являющихся пользователями Atari. [ необходима цитата ]
Текстовые файлы, закодированные в ATASCII, также нуждаются в преобразовании для просмотра на современных ПК и наоборот — для этого существуют утилиты. [16]
Управляющие коды в ATASCII могут передаваться на другие компьютеры, такие как BBS, и возможны грубые анимации. Эти анимации, также известные как «мультики-брейки», часто принимают форму коротких мультфильмов и были популярной особенностью Atari BBS в их расцвете. [17]
Поскольку операции управления курсором представлены одним символом (в отличие от многобайтовых последовательностей, которые были распространены в других схемах, таких как ANSI или VT100 ), делать такие анимации довольно легко. Их можно создать с помощью короткой программы BASIC, которая захватывает команды клавиатуры, выводит их на экран и сохраняет в файл. [18] Atari также позволяла вводить и захватывать команды как часть своей операционной системы. Конечно, это требовало осторожности, чтобы сделать это правильно, но после нескольких попыток это обычно становилось довольно легко. Простые программы захвата не имели функций редактирования, поэтому фильмы ATASCII часто имели ошибки, которые исправлялись путем изменения положения курсора и печати поверх ошибки.
{{cite web}}
: CS1 maint: числовые имена: список авторов ( ссылка )