Jump to content

Набор символов ZX Spectrum

Набор символов ZX Spectrum
Набор символов ZX Spectrum, отображаемый в системном шрифте (не включая символы пользовательской графики)
Язык(и) Английский с псевдографикой
Создано Синклер Исследования
На основе ASCII-1967
Предшественник Набор символов ZX81
Другая связанная кодировка(и) Набор символов ZX80 , набор символов Jupiter Ace

Набор символов ZX Spectrum — это вариант ASCII, используемый в компьютерах семейства ZX Spectrum . Он основан на ASCII-1967 , но символы ^, ` и DEL заменяются на ↑, £ и ©. Он также отличается использованием кодов управления C0, отличных от обычных. BS и CR, и он использует 128 символов старшего разряда за пределами диапазона ASCII. [1] Основной набор печатных символов и системный шрифт ZX Spectrum также используется компьютером Jupiter Ace .

Печатные символы [ править ]

Снимок экрана с результатами программы Sinclair BASIC , демонстрирующий все печатные кодовые точки, включая ключевые слова BASIC и символы пользовательской графики (по умолчанию определяемые как копии глифов AU).

Стандартный US-ASCII, 0x20–0x7F, включен в набор символов Spectrum, за исключением того, что кодовая точка 0x5E — это стрелка вверх (↑) вместо каретки (^), 0x60 — это знак фунта (£) вместо серьезного акцента. (`), а 0x7F — знак авторских прав (©) вместо управляющего символа. DEL. Обратите внимание, что использование 0x5E в качестве ↑ также имело место в более старой версии ASCII 1963 года. Знак £ не был сопоставлен с 0x23, как в британском варианте ASCII ( ISO-646-GB ), что позволяло одновременно использовать как знак фунта, так и знак числа (#). Символ ↑ является оператором возведения в степень в BASIC Spectrum , точно так же, как ^, который он заменяет по сравнению с ASCII-1967, используется для возведения в степень во многих других диалектах BASIC и других языках программирования.

За пределами 0x7F набор символов Spectrum использует диапазон старших битов 0x80–0xFF для специальных целей. 0x80–0x8F содержат те же блочные графические символы 2×2, что и набор символов ZX80 и набор символов ZX81 (в других местах), также доступные в блоке Unicode Block Elements . Однако стандартный набор символов ZX Spectrum не включает блочные графические символы ZX80/81 с 50% сглаживанием 1×2. Кодовые точки 0x90–0xA4 содержат исходный 21 символ пользовательской графики (UDG), а 0xA5–0xFF содержат ключевые слова BASIC, маркированные как отдельные кодовые точки. В режиме 128 BASIC, представленном позже, это было изменено на 19 символов UDG, заканчивающихся на 0xA2, за которыми следовали два новых токена. SPECTRUM и PLAY. Кодовые точки 0xC7–0xC9 представляют собой двухсимвольные операторы. <=, >= и <>, аналогичным образом разбивается на отдельные кодовые точки. Эти токены позволяют использовать команду BASIC, например PRINT вводиться одним нажатием клавиши P в начале строки (т.е. в командном режиме), которая генерирует 0xF6. Это отображается как полное ключевое слово PRINT на экране, но хранится только однобайтовый токен, поэтому интерпретатору необходимо проанализировать только этот один байт или сохранить/загрузить его из внешнего хранилища, такого как лента.

Все символы, не относящиеся к UDG Spectrum, могут быть сопоставлены с Unicode . Три символа не ASCII-1967 ↑, £ и © находятся в U+2191, U+00A3 и U+00A9. Графические символы блока 2 × 2 находятся в блоке Block Elements по адресам U + 2580–U + 259F, хотя поддержка последних шрифтов не является универсальной.

Форма символов UDG отображается в области оперативной памяти и инициализируется копиями символов AU, но может быть переопределена произвольно, например, с помощью команды BASIC. POKE. Как и все символы системного шрифта, они используют сетку пикселей 8×8, хранящуюся в 8 байтах. Их переопределение меняет их внешний вид в последующем. PRINT операторы, но это не меняет символы UDG, уже нарисованные на экране. Местоположение определения символа UDG можно определить с помощью функции BASIC. USR с символом в качестве аргумента, например USR "A" для первого. По умолчанию это указывает на последние 168 (21×8) байт ОЗУ по адресам памяти от 65368 (0xFF58) до 65535 (0xFFFF) для спектра 48 КБ. На это местоположение указывает системная переменная UDG. [2] который можно найти по адресу памяти 23675/6 (0x5C7B/C) и его можно изменить. TK90X , бразильский клон ZX Spectrum, включал в себя приложение в ПЗУ для графического редактирования этих символов UDG , а также функцию предварительной загрузки букв с диакритическими знаками, используемых на португальском языке. (Для этого в TK90X определены две дополнительные базовые команды с кодами 0 и 1 соответственно. TRACE и UDG) [3]

На определение основного системного шрифта от 32 (пробел) до 127 (авторские права) ссылается системная переменная CHARS, которую можно найти по адресу памяти 23606/7 (0x5C36/7). Он определяется как на 256 байт ниже первого байта пробельного символа, что упрощает формулу поиска символа до кодовой точки CHARS+8× . Значение CHARS по умолчанию равно 15360 (0x3C00), а системный шрифт находится в конце ПЗУ Spectrum по адресам от 15616 (0x3D00) до 16383 (0x3FFF). Целые альтернативные шрифты можно загрузить в ОЗУ и соответствующим образом переназначить переменную CHARS. [2]

Коды управления [ править ]

В области кодов управления (диапазон C0) Spectrum в основном использует собственные элементы управления, такие как INK и PAPER, для управления цветом переднего плана и фона. Однако общее BS и CR кодовые точки такие же, как в ASCII. Направление курсора вниз (0x0A, перевод строки ASCII) можно имитировать с помощью 32 пробелов, напечатанных с помощью OVER 1 (прозрачное наложение), а движение курсора вверх 0x0B (вертикальная табуляция ASCII) можно имитировать с помощью 32 символов возврата. В системном ПЗУ имеется ошибка, из-за которой курсор вправо в позиции 0x09 (см. горизонтальную табуляцию ASCII) не работает. [4] [5]

Управляющий код 0x0E используется для указания того, что за ним следует число с плавающей запятой, для ускорения обработки текста. В программе Sinclair BASIC числовые константы хранятся в формате ASCII, за которым следуют байт 0x0E и 5-байтовое двоичное представление с плавающей запятой. При перечислении программы BASIC используется только часть ASCII, но во время выполнения используется только двоичное представление. Некоторые программы Spectrum использовали это для запутывания чисел, тогда как другие делали это для экономии памяти. [6] Например, строка BASIC отображается как GO TO 10 мог содержать символы ASCII для цифр 1 и 0, за которыми следовал байт 0x0E и представление с плавающей запятой 100 вместо 10. Любой, кто перечислял эту программу, видел число 10, но при выполнении программа переходила на строку 100.

Неопределенные коды [ править ]

Диапазоны 0x00–0x05, 0x07, 0x0A–0x0C, 0x0F и 0x17–0x1F не определены. В большинстве случаев при выводе на дисплей они отображают вопросительный знак. Однако их можно использовать для представления их буквальных числовых значений в сочетании с определенными управляющими кодами: например, 0x10 + 0x02 устанавливает цвет чернил (текста переднего плана) на цвет номер 2 (красный).

Набор символов [ править ]

В следующей таблице показан набор символов ZX Spectrum. Каждый символ отображается с потенциальным эквивалентом Unicode . [7] [8] Символы пробела и управления представлены сокращениями их имен.

Набор символов спектра [1]
0_ нажатие клавиши 0_ символ 1_ 2_ 3_ 4_ 5_ 6_ 7_ 8_ 9_ А_ Б_ С_ Д_ И_ Ф_
_0 ЧЕРНИЛА  0 @ П £ [а] п (А) [б] (К) [б] VALUSRFORMATLPRINTLIST
_1 БУМАГА ! 1 А вопрос а д (Б) [б] (Р) [б] LENSTR$MOVELLISTLET
_2 ВСПЫШКА " 2 Б Р б р (С) [б] (С) [б] SINCHR$ERASESTOPPAUSE
_3 ЯРКИЙ # 3 С С с с (Д) [б] (Т) [с] COSNOTOPEN #READNEXT
_4 настоящее видео ОБРАТНЫЙ $ 4 Д Т д т (И) [б] (В) [д] TANBINCLOSE #DATAPOKE
_5 инв видео НАД % 5 И В и в (Ф) [б] RNDASNORMERGERESTOREPRINT
_6 заглавные буквы запятая В & 6 Ф V ж v (Г) [б] INKEY$ACSANDVERIFYNEWPLOT
_7 редактировать ВКЛАДКА ' 7 Г В г В (ЧАС) [б] PIATN<=BEEPBORDERRUN
_8 левый левый [и] ( 8 ЧАС Х час х (Я) [б] FNLN>=CIRCLECONTINUESAVE
_9 верно верно [ф] ) 9 я И я и (Дж) [б] POINTEXP<>INKDIMRANDOMIZE
вниз * : Дж С дж С (К) [б] SCREEN$INTLINEPAPERREMIF
вверх + ; К [ к { (Л) [б] ATTRSQRTHENFLASHFORCLS
удалить , < л \ л | (М) [б] ATSGNTOBRIGHTGO TODRAW
входить входить - = М ] м } (Н) [б] TABABSSTEPINVERSEGO SUBCLEAR
продлевать число [г] . > Н [а] н ~ (ТО) [б] VAL$PEEKDEF FNOVERINPUTRETURN
графика / ? ТО _ тот © [а] (П) [б] CODEINCATOUTLOADCOPY


Spectrum вариант Литовский

Литовский вариант Spectrum заменяет некоторые буквы в ISO 8859-1 литовскими буквами. [9] [10] В FreeDOS она называется кодовой страницей 63283 . [11]

Литовский (Спектр)
0 1 2 3 4 5 6 7 8 9 А Б С Д И Ф
Сх А
0104
К
012E
И
0100
Ć
0106
Ä Ой С
010С
Что Ä
0118
Э
0116
Э Э К
012E
В вопрос Я
Дх Ð С Ò Ой ЗОНТИК ОН С
0160
× Ø Ø
0172
О
016А
Ж
017D
О ИДЕЯ че SS
Бывший а
0105
на â ã ä к С
010D
Что ę
0119
Эм-м-м
0117
ага ага к
012F
в вопрос я
Форекс д н ò от Зонтик он с
0161
÷ ø Эм-м-м
0173
Эм-м-м
016Б
час
017E
ты идея то есть ÿ

Примечания [ править ]

  1. ^ Jump up to: Перейти обратно: а б с Отличается от US-ASCII.
  2. ^ Jump up to: Перейти обратно: а б с д и ж г час я дж к л м н тот п д р с Символ UDG (пользовательская графика).
  3. ^ UDG T в 48 BASIC, ключевое слово SPECTRUM в 128 БЕЙСИКЕ.
  4. ^ UDG U в 48 BASIC, ключевое слово PLAY в 128 БЕЙСИКЕ.
  5. ^ В стандартном ПЗУ CHR$ 8 не удается выполнить переход с линии 1 на нулевую строку, а также происходит сбой по-другому при переходе с нулевой строки.
  6. ^ В стандартном ПЗУ CHR$ 9 фактически не перемещает позицию вывода текста.
  7. ^ Используется в программах BASIC в качестве маркера перед 5-байтовым числом с плавающей запятой.

Ссылки [ править ]

  1. ^ Jump up to: Перейти обратно: а б Руководство по ZX Spectrum, Приложение А, набор символов
  2. ^ Jump up to: Перейти обратно: а б Руководство ZX Spectrum, глава 25, системные переменные
  3. ^ «Эксклюзивные команды TK 90X» . CompuClasico — Цифровой антиквариат . 2010. Архивировано из оригинала 27 марта 2019 года.
  4. ^ Логан, Ян (1983). Понимание вашего спектра . Мельбурн Хаус. п. 189. ИСБН  086161111X .
  5. ^ Уэрмут, Джефф (2004). «Список файлов сборки для создания ПЗУ размером 16 КБ для ZX Spectrum» . Неполная сборка ПЗУ Spectrum . Архивировано из оригинала 25 августа 2015 года.
  6. ^ Суонн, Ричард П. «Дешифраторы части 4». КАК ВЗЛОМАТЬ на ZX Spectrum .
  7. ^ Зарецкий, Михаил (2004). «Sinclair ZX Spectrum+ 48K символов, набор символов Unicode» . Эклектический Сатир . Архивировано из оригинала 7 марта 2005 г. Проверено 03 апреля 2023 г.
  8. ^ Зарецкий, Михаил (7 марта 2005 г.). «Набор символов Sinclair Spectrum + 48 тыс.» . Эклектический Сатир . Архивировано из оригинала 7 марта 2005 г. Проверено 03 апреля 2023 г.
  9. ^ https://xn--lietuvyb-ceb.lt/standartai/ra%C5%A1men%C5%B3-koduot%C4%97s/ . {{cite web}}: Отсутствует или пусто |title= ( помощь )
  10. ^ https://xn--lietuvyb-ceb.lt/standartai/ra%C5%A1men%C5%B3-koduot%C4%97s/spectrum.gif . {{cite web}}: Отсутствует или пусто |title= ( помощь )
  11. ^ «Cpi/CPIISO/Codepage.TXT на ведущем устройстве · FDOS/Cpi» . Гитхаб .

Внешние ссылки [ править ]

См. также [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 25a57eef29d2a94c659d9bad629feb50__1716333840
URL1:https://arc.ask3.ru/arc/aa/25/50/25a57eef29d2a94c659d9bad629feb50.html
Заголовок, (Title) документа по адресу, URL1:
ZX Spectrum character set - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)