PETSCII ( PET S tandard C ода I нформация I nterchange), также известный как CBM ASCII, является набор символов, используемый в Commodore Business Machines (СВМ) «ы 8-битных домашних компьютеров, начиная с ПЭТ с 1977 года и в том числе C16, C64, C116, C128, CBM-II, Plus / 4 и VIC-20.
Набор персонажей был в значительной степени разработан Леонардом Трамиэлем (сыном генерального директора Commodore Джека Трамиэля ) и дизайнером ПЭТ Чаком Педдлом. Графические символы PETSCII были одним из расширений Commodore, указанных для Commodore BASIC при изложении желаемых изменений существующего Microsoft 6502 BASIC для Microsoft Ric Weiland в 1977 году. VIC-20 использовал тот же пиксельный шрифт, что и PET, хотя символы казались шире из-за 22-колоночного экрана VIC. Commodore 64, однако, использовал слегка переработанный, тяжелый шрифт верхнего регистра, по сути, более толстую версию PET, чтобы избежать цветовых артефактов, создаваемых экраном с более высоким разрешением машины. Строчные символы C64 идентичны строчным символам системного шрифта Atari 800 (выпущенного несколькими годами ранее).
Педдл утверждает, что включение символов масти карт было вызвано требованием, чтобы было легко писать карточные игры на ПЭТ (как часть списка спецификаций, который он получил).
PETSCII основан на версии ASCII 1963 года (а не на версии 1967 года, которая в большинстве, если не на всех других компьютерных наборах символов основана на использовании ASCII). Если предположить, что графики режим несмещенный, PETSCII имеет только прописные буквы в его включении питания состояния, вверх-стрелка (↑) вместо вставки (^) в позиции $ 5E и стрелка влево (←) вместо подчеркивания (_) в позиции $ 5F эти два варианта являются общими в ASCII-1963. Кроме того, в версиях VIC-20 и C64 обратная косая черта (\) в позиции $ 5C занята знаком британского фунта (£) (перед использованием того же кода ASCII в японской и корейской версиях ISO 646 для их соответствующие символы валюты). В режиме без сдвига коды $ 60–7F и $ A0– $ FF назначаются специфическим для CBM графическим символам блока (горизонтальные и вертикальные линии, штриховки, тени, треугольники, круги и масти карт ). Диапазоны $ 00–1F и $ 80–9F имеют управляющие коды.
В Commodore PET «s отсутствие программируемого битовой карты -mode для компьютерной графики, а также она не имея возможностей переопределяемы набора символов, может быть одной из причин PETSCII была разработана; творчески используя хорошо продуманную блочную графику, можно достичь более высокой степени сложности экранной графики, чем при использовании простых букв / цифр / знаков препинания ASCII. В дополнение к относительно разнообразному набору геометрических форм, которые могут быть получены таким образом, PETSCII допускает несколько уровней градаций серого, предоставляя по-разному заштрихованные квадраты / полуквадраты шахматной доски. Наконец, режим обратного видео (см. Ниже) используется для завершения диапазона графических символов, поскольку он обеспечивает зеркальные полуквадратные блоки.
PETSCII также имеет текстовый режим, в котором строчные буквы занимают диапазон $ 41–5A, а прописные буквы - диапазон $ C1– $ DA. Режим переключается, удерживая одну из клавиш SHIFT, а затем нажимая и отпуская клавишу Commodore. Независимо от того, подвергся ли чип этому графическому «сдвигу», в диапазоне $ E0-FF есть блочные графические символы. Это позволяет отличить PETSCII от тех типов ASCII, которые восходят не дальше ASCII-1967, поэтому любая передача текста между 8-битной машиной Commodore и машиной, использующей ASCII 1967 года, приведет к тексту, в котором прописные буквы выглядят строчными., и строчные буквы в верхнем регистре. Нет простой логической операции для изменения этих регистров на правильный. Таким образом, как и в случае с другими компьютерами, использующими нестандартные наборы символов ASCII, требуется преобразование программного обеспечения при обмене текстовыми файлами и / или при обмене данными со стандартными системами ASCII. Остальные диапазоны не меняются в сдвинутом режиме; это означает, что другие символы, добавленные в ASCII-1967, помимо строчных букв - т. е. ударение, фигурные скобки, вертикальная черта и тильда - не существуют в PETSCII.
В PETSCII является курсор и управление экрана кода, такими как {HOME}
, {CLR}
, {RVS ON}
, и {RVS OFF}
(последние два включения / выключения отображения символа обратного видео). Коды управления появлялись в списках программ в виде обратных видео-графических символов, хотя некоторые компьютерные журналы, пытаясь предоставить более понятные списки, красиво напечатали коды, используя их настоящие имена, как в приведенных выше примерах. Такие имена обычно заключались в фигурные скобки в списках. Это предотвратило двусмысленность, поскольку, как уже упоминалось, в PETSCII не было фигурных скобок. Коды управления экраном были по существу похожи на escape-коды для текстовых компьютерных терминалов.
Как указано выше, PETSCII обеспечивает переключение между набором символов верхнего регистра + графические символы по умолчанию при включении питания (без сдвига) и альтернативным (смещенным) набором символов нижнего + верхнего регистра (где смещенный набор содержит подмножество графических символов блока несмещенного набора). Переключение между режимами осуществляется путем ввода в ячейку 59468 значения 14 для выбора альтернативного набора или 12 для возврата к стандартному. На C64 наборы чередуются путем переворачивания бита 2 байта 53272. На некоторых моделях PET это также может быть достигнуто с помощью специального управляющего кода, PRINT CHR$(14)
который регулирует межстрочный интервал, а также изменяет набор символов; метод POKE по-прежнему доступен и не меняет межстрочный интервал. Таким образом, изменения состояния экранного редактора вместо использования отдельных кодов ASCII используются для выбора между одинарным (все заглавные буквы) и двойным регистром. В машинах VIC-20, C64 и более поздних версий (не включая бизнес-компьютеры CBM) цветовые коды дополняют другие коды управления экраном. (Цвета VIC-20 и C64 / 128 перечислены в статье VIC-II. )
Не все символы, закодированные с помощью PETSCII, являются «графическими», и не все они имеют соответствующее представление Unicode. В следующей таблице для символов PETSCII показаны соответствующие символ Unicode и кодовая точка. Управляющие символы и другие непечатаемые символы представлены своими именами. Если конкретная кодовая точка кодирует как смещенный, так и несмещенный символ, отображаются оба символа, причем несмещенный символ находится слева, а смещенный символ - справа. Заголовки строк и столбцов указывают комбинации шестнадцатеричных цифр для получения восьмибитового значения кода; например, буква L имеет кодовое значение $ 4C.
Обратите внимание, что таблица ниже предназначена для Commodore 64, Commodore 16 и Commodore 128. Управляющие символы на этих машинах различаются и представлены в отдельных таблицах. Другие машины Commodore использовали несколько иные версии PETSCII, в которых использовались другие управляющие символы, а в некоторых случаях и другие графические символы. Например, на машинах CBM до VIC-20 символы $ 2C и $ 6C оба давали символ запятой, хотя и с немного другой семантикой.
Фактическое ПЗУ генератора символов использовало другой набор назначений. Например, чтобы отобразить символы «@ABC» на экране путем прямой записи в экранную память, нужно ВЫПОЛНИТЬ десятичные значения 0, 1, 2 и 3, а не 64, 65, 66 и 67.
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ 0 | ||||||||||||||||
1_ 16 | ||||||||||||||||
2_ 32 | SP 0020 | ! 0021 | « 0022 | # 0023 | 0024 долл. США | % 0025 | amp; 0026 | ' 0027 | ( 0028 | ) 0029 | * 002A | + 002B | , 002C | - 002D | . 002E | / 002F |
3_ 48 | 0 0030 | 1 0031 | 2 0032 | 3 0033 | 4 0034 | 5 0035 | 6 0036 | 7 0037 | 8 0038 | 9 0039 | : 003A | ; 003B | lt; 003C | = 003D | gt; 003E | ? 003F |
4_ 64 | @ 0040 | 0041 0061 | B b 0042 0062 | С с 0043 0063 | Д д 0044 0064 | E e 0045 0065 | F f 0046 0066 | G г 0047 0067 | H h 0048 0068 | Я я 0049 0069 | J j 004A 006A | К к 004B 006B | L l 004C 006C | М м 004D 006D | № № 004E 006E | О о 004F 006F |
5_ 80 | П п 0050 0070 | Q q 0051 0071 | R R 0052 0072 | S s 0053 0073 | Т т 0054 0074 | U u 0055 0075 | V v 0056 0076 | W w 0057 0077 | X х 0058 0078 | Г г 0059 0079 | Z z 005A 007A | [ 005B | £ 00A3 | ] 005D | ↑ 2191 | ← 2190 |
6_ 96 | 🭹 1FB79 | ♠ А 2660 0041 | 🭲 В 1FB72 0042 | 🭸 С 1FB78 0043 | 🭷 Д 1FB77 0044 | 🭶 E 1FB76 0045 | 🭺 F 1FB7A 0046 | 🭱 G 1FB71 0047 | 🭴 H 1FB74 0048 | ╮ я 256E 0049 | ╰ J 2570 004A | ╯ К 256F 004B | 🭼 L 1FB7C 004C | ╲ M 2572 004D | ╱ N 2571 004E | 🭽 O 1FB7D 004F |
7_ 112 | 🭾 П 1FB7E 0050 | ● Q 25CF 0051 | 🭻 R 1FB7B 0052 | ♥ С 2665 0053 | 🭰 Т 1FB70 0054 | ╭ U 256D 0055 | ╳ V 2573 0056 | ○ W 25CB 0057 | ♣ X 2663 0058 | 🭵 Y 1FB75 0059 | ♦ Z 2666 005A | ┼ 253C | 🮌 1FB8C | │ 2502 | π 🮖 03C0 1FB96 | ◥ 🮘 25E5 1FB98 |
8_ 128 | ||||||||||||||||
9_ 144 | ||||||||||||||||
A_ 160 | NBSP 00A0 | ▌ 258C | ▄ 2584 | 2594вон | ▁ 2581 | ▏ 258F | 2592▒ | 2595вон | 🮏 1FB8F | ◤ 🮙 25E4 1FB99 | 🮇 1FB87 | ├ 251C | 2597вон | └ 2514 | ┐ 2510 | ▂ 2582 |
B_ 176 | ┌ 250C | ┴ 2534 | ┬ 252C | ┤ 2524 | ▎ 258E | ▍ 258D | 🮈 1FB88 | 🮂 1FB82 | 🮃 1FB83 | ▃ 2583 | 🭿 ✓ 1FB7F 2713 | 2596▖ | ▝ 259D | ┘ 2518 | 2598▘ | ▚ 259A |
C_ 192 | 🭹 1FB79 | ♠ А 2660 0041 | 🭲 В 1FB72 0042 | 🭸 С 1FB78 0043 | 🭷 Д 1FB77 0044 | 🭶 E 1FB76 0045 | 🭺 F 1FB7A 0046 | 🭱 G 1FB71 0047 | 🭴 H 1FB74 0048 | ╮ я 256E 0049 | ╰ J 2570 004A | ╯ К 256F 004B | 🭼 L 1FB7C 004C | ╲ M 2572 004D | ╱ N 2571 004E | 🭽 O 1FB7D 004F |
D_ 208 | 🭾 П 1FB7E 0050 | ● Q 25CF 0051 | 🭻 R 1FB7B 0052 | ♥ С 2665 0053 | 🭰 Т 1FB70 0054 | ╭ U 256D 0055 | ╳ V 2573 0056 | ○ W 25CB 0057 | ♣ X 2663 0058 | 🭵 Y 1FB75 0059 | ♦ Z 2666 005A | ┼ 253C | 🮌 1FB8C | │ 2502 | π 🮖 03C0 1FB96 | ◥ 🮘 25E5 1FB98 |
E_ 224 | NBSP 00A0 | ▌ 258C | ▄ 2584 | 2594вон | ▁ 2581 | ▏ 258F | 2592▒ | 2595вон | 🮏 1FB8F | ◤ 🮙 25E4 1FB99 | 🮇 1FB87 | ├ 251C | 2597вон | └ 2514 | ┐ 2510 | ▂ 2582 |
F_ 240 | ┌ 250C | ┴ 2534 | ┬ 252C | ┤ 2524 | ▎ 258E | ▍ 258D | 🮈 1FB88 | 🮂 1FB82 | 🮃 1FB83 | ▃ 2583 | 🭿 ✓ 1FB7F 2713 | 2596▖ | ▝ 259D | ┘ 2518 | 2598▘ | π 🮖 03C0 1FB96 |
Письмо Число Пунктуация Условное обозначение Другой Неопределенный
Клавиатура по умолчанию обеспечивает доступ к нижней половине кодовой страницы. Нажатие клавиши shift + дает соответствующую верхнюю половину кодовой точки.
Некоторые коды PETSCII не могут быть напечатаны и используются только для ввода с клавиатуры (например, F1, RUN / STOP).
Раскладка клавиатуры PET 2001, иллюстрирующая графические символы PETSCII_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ 0 | ОСТАНАВЛИВАТЬСЯ | БЕЛЫЙ | СДВИГ ОТКЛЮЧИТЬ | СДВИГ ВКЛЮЧИТЬ | ВОЗВРАЩЕНИЕ | TEXT РЕЖИМ 000E | ||||||||||
1_ 16 | КУРСОР ВНИЗ 0084 | НАЗАД ВКЛ. | ДОМ | DEL 0008 | КРАСНЫЙ | КУРСОР ПРАВО | ЗЕЛЕНЫЙ | СИНИЙ | ||||||||
8_ 128 | АПЕЛЬСИН | ЗАПУСТИТЬ | F1 | F3 | F5 | F7 | F2 | F4 | F6 | F8 | LF 000A | ГРАФИКА 000F | ||||
9_ 144 | ЧЕРНИТЬ | КУРСОР ВВЕРХ 008D | НАЗАД ВЫКЛ. | CLR | ВСТАВЛЯТЬ | КОРИЧНЕВЫЙ | РОЗОВЫЙ | ТЕМНО- СЕРЫЙ | СРЕДНИЙ СЕРЫЙ | СВЕТЛО- ЗЕЛЕНЫЙ | СВЕТЛО- СИНИЙ | СВЕТЛО- СЕРЫЙ | ФИОЛЕТОВЫЙ | КУРСОР ВЛЕВО | ЖЕЛТЫЙ | CYAN |
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ 0 | ОСТАНАВЛИВАТЬСЯ | БЕЛЫЙ | СДВИГ ОТКЛЮЧИТЬ | СДВИГ ВКЛЮЧИТЬ | ВОЗВРАЩЕНИЕ | TEXT РЕЖИМ 000E | ||||||||||
1_ 16 | КУРСОР ВНИЗ 0084 | НАЗАД ВКЛ. | ДОМ | DEL 0008 | ESC 001B | КРАСНЫЙ | КУРСОР ПРАВО | ЗЕЛЕНЫЙ | СИНИЙ | |||||||
8_ 128 | АПЕЛЬСИН | ПРОБЛЕСКИВАЯ ON | ЗАПУСТИТЬ | ПРОБЛЕСКИВАЯ OFF | F1 | F3 | F5 | F7 | F2 | F4 | F6 | ПОМОЩЬ | LF 000A | ГРАФИКА 000F | ||
9_ 144 | ЧЕРНИТЬ | КУРСОР ВВЕРХ 008D | НАЗАД ВЫКЛ. | CLR | ВСТАВЛЯТЬ | КОРИЧНЕВЫЙ | ЖЕЛТЫЙ ЗЕЛЕНЫЙ | РОЗОВЫЙ | СИНИЙ ЗЕЛЕНЫЙ | СВЕТЛО- СИНИЙ | ТЕМНО- СИНИЙ | СВЕТЛО- ЗЕЛЕНЫЙ | ФИОЛЕТОВЫЙ | КУРСОР ВЛЕВО | ЖЕЛТЫЙ | CYAN |
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ 0 | ОСТАНАВЛИВАТЬСЯ | БЕЛЫЙ | КОЛОКОЛЬЧИК 0007 | HT 0009 | LF 000A | СДВИГ ВКЛЮЧИТЬ | СДВИГ ОТКЛЮЧИТЬ | ВОЗВРАЩЕНИЕ | TEXT РЕЖИМ 000E | |||||||
1_ 16 | КУРСОР ВНИЗ 0084 | НАЗАД ВКЛ. | ДОМ | DEL 0008 | ВКЛАДКА НАБОР / ОЧИСТИТЬ 0088 | ESC 001B | КРАСНЫЙ | КУРСОР ПРАВО | ЗЕЛЕНЫЙ | СИНИЙ | ||||||
8_ 128 | АПЕЛЬСИН | ЗАПУСТИТЬ | F1 | F3 | F5 | F7 | F2 | F4 | F6 | F8 | LF 000A | ГРАФИКА 000F | ||||
9_ 144 | ЧЕРНИТЬ | КУРСОР ВВЕРХ 008D | НАЗАД ВЫКЛ. | CLR | ВСТАВЛЯТЬ | КОРИЧНЕВЫЙ | РОЗОВЫЙ | ТЕМНО- СЕРЫЙ | СРЕДНИЙ СЕРЫЙ | СВЕТЛО- ЗЕЛЕНЫЙ | СВЕТЛО- СИНИЙ | СВЕТЛО- СЕРЫЙ | ФИОЛЕТОВЫЙ | КУРСОР ВЛЕВО | ЖЕЛТЫЙ | CYAN |
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ 0 | ПОДПИСАТЬСЯ НА | ОСТАНАВЛИВАТЬСЯ | БЕЛЫЙ | КОЛОКОЛЬЧИК 0007 | HT 0009 | LF 000A | СДВИГ ВКЛЮЧИТЬ | СДВИГ ОТКЛЮЧИТЬ | ВОЗВРАЩЕНИЕ | TEXT РЕЖИМ 000E | ПРОБЛЕСКИВАЯ ON | |||||
1_ 16 | КУРСОР ВНИЗ | НАЗАД ВКЛ. | ДОМ | DEL 0008 | ВКЛАДКА НАБОР / ОЧИСТИТЬ 0088 | ESC 001B | КРАСНЫЙ | КУРСОР ПРАВО | ЗЕЛЕНЫЙ | СИНИЙ | ||||||
8_ 128 | ТЕМНО- ФИОЛЕТОВЫЙ | ПОДЛИНЬ ВЫКЛ. | ЗАПУСТИТЬ | F1 | F3 | F5 | F7 | F2 | F4 | F6 | F8 | LF 000A | ГРАФИКА 000F | ПРОБЛЕСКИВАЯ OFF | ||
9_ 144 | ЧЕРНИТЬ | КУРСОР ВВЕРХ 008D | НАЗАД ВЫКЛ. | CLR | ВСТАВЛЯТЬ | ТЕМНО- ЖЕЛТЫЙ | РОЗОВЫЙ | ТЕМНЫЙ СИАН | СРЕДНИЙ СЕРЫЙ | СВЕТЛО- ЗЕЛЕНЫЙ | СВЕТЛО- СИНИЙ | СВЕТЛО- СЕРЫЙ | ФИОЛЕТОВЫЙ | КУРСОР ВЛЕВО | ЖЕЛТЫЙ | CYAN |
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ 0 | ПОДПИСАТЬСЯ НА | ОСТАНАВЛИВАТЬСЯ | БЕЛЫЙ | КОЛОКОЛЬЧИК 0007 | HT 0009 | LF 000A | СДВИГ ВКЛЮЧИТЬ | СДВИГ ОТКЛЮЧИТЬ | ВОЗВРАЩЕНИЕ | TEXT РЕЖИМ 000E | ПРОБЛЕСКИВАЯ ON | |||||
1_ 16 | F9 | КУРСОР ВНИЗ | НАЗАД ВКЛ. | ДОМ | DEL 0008 | F10 | F11 | F12 | ВКЛАДКА НАБОР / ОЧИСТИТЬ 0088 | F13 | F14 | ESC 001B | КРАСНЫЙ | КУРСОР ПРАВО | ЗЕЛЕНЫЙ | СИНИЙ |
8_ 128 | АПЕЛЬСИН | ПОДЛИНЬ ВЫКЛ. | ЗАПУСТИТЬ | ПОМОЩЬ | F1 | F3 | F5 | F7 | F2 | F4 | F6 | F8 | LF 000A | ГРАФИКА 000F | ПРОБЛЕСКИВАЯ OFF | |
9_ 144 | ЧЕРНИТЬ | КУРСОР ВВЕРХ 008D | НАЗАД ВЫКЛ. | CLR | ВСТАВЛЯТЬ | КОРИЧНЕВЫЙ | СВЕТЛО- КРАСНЫЙ | СВЕТЛО- СЕРЫЙ | СРЕДНИЙ СЕРЫЙ | СВЕТЛО- ЗЕЛЕНЫЙ | СВЕТЛО- СИНИЙ | ТЕМНО- СЕРЫЙ | ФИОЛЕТОВЫЙ | КУРСОР ВЛЕВО | ЖЕЛТЫЙ | CYAN |
Из первых 192 кодов PETSCII 164 имеют видимые представления (для управляющих кодов они видны в кавычках): 5 (белый), 17–20 и 28–31 (цвета и элементы управления курсором), 32–90 ( эквивалент ASCII )., 91–127 (графика), 129 (оранжевый), 133–140 (функциональные клавиши), 144–159 (цвета и элементы управления курсором) и 160–192 (графика). Это теоретически разрешает кодирование, такое как base128, в операторах DATA или, возможно, между машинами, говорящими на языке PETSCII; например, 33–127, 160–192.