Набор символов ZX81 — это кодировка символов, используемая семейством микрокомпьютеров Sinclair Research ZX81, включая Timex Sinclair 1000 и Timex Sinclair 1500. Кодировка использует один байт на символ для 256 кодовых точек. Она не имеет отношения к ранее установленным, таким как ASCII или EBCDIC , но она связана, хотя и не идентична, с набором символов предшественника ZX80 .
Набор символов содержит 64 уникальных глифа, представленных в кодовых точках 0–63. При установке самого старшего бита символ генерируется в инверсном видео ; соответствующем кодовым точкам 128–191. Эти 128 значений являются единственными отображаемыми значениями, разрешенными в видеопамяти (известной как файл отображения). Остальные кодовые точки (64–127 и 192–255) используются в качестве управляющих символов, таких как 118 для новой строки или, уникально для Sinclair BASIC , для ключевых слов, в то время как некоторые из них не используются.
Небольшой эффективный диапазон, состоящий всего из 64 уникальных глифов, исключает поддержку латинских строчных букв и многих символов, широко используемых в вычислительной технике, таких как восклицательный знак и знак at . Отсутствие апострофа привело к тому, что некоторые авторы программного обеспечения стали использовать вместо него запятую.
Существует 11 блочных графических символов, включая кодовую точку 0, которая также служит пробелом. Первые 8 из них вместе с их 8 инвертированными видеоверсиями (16 кодовых точек) обеспечивают каждую комбинацию ячейки символа, разделенной на 2×2 черно-белых блочных пикселя для графики с низким разрешением 64×48 пикселей. Эти блоки 2×2 присутствуют в блоке Unicode Block Elements . Дополнительные 3 символа обеспечивают ячейку, разделенную на 1×2 черных, белых или размываемых серых широких блочных пикселя. Они в сочетании с их инвертированными видеоверсиями и некоторыми из предыдущих блоков 2×2 обеспечивают разрешение 32×48 с 3 уровнями (белый, размываемый серый, черный). Основные 11 символов плюс их инвертированные видеоверсии составляют в общей сложности 22 блочных графических символа. Размытые символы (их 6) также доступны в Unicode (в основном в блоке «Символы для устаревших вычислений» ), но только в версиях Unicode 13.0 и более новых, доступных с 2020 года.
Кодовая точка 11 представляет собой символ двойной кавычки (") при использовании в файле отображения. Функция BASIC CHR$ 192
печатается как тот же символ, но отображается как "" в исходных листингах BASIC; она используется для включения буквального символа " в строку без конфликта с разделителем строки ". [1]
Набор символов в ZX81 был получен из набора символов ZX80 . Они имеют в основном те же самые кодовые точки, например, для AZ и 0-9, но кодовые точки отличаются для символов блочной графики, символов ", -, +, *, /, =, >, < и ключевых слов BASIC (с добавлением многих новых). Также есть изменения в управляющих символах. Кодовая точка 1 больше не является непечатаемым символом конца строки. ZX81 8K BASIC ROM также был доступен в качестве обновления для ZX80, заменив его целочисленный 4K BASIC ROM. [2]
Системный шрифт ZX81 использует сетку 8×8 пикселей на символ, где большинство глифов помещаются в 6×6 пикселей, оставляя два пикселя горизонтального и вертикального пространства между строками и столбцами. ПЗУ ZX80, которое имело немного более широкие 7×6 пикселей глифов с только одним пикселем горизонтального пространства между ними. Некоторые глифы также получили другой дизайн в системном шрифте ZX81, заметный на *, перечеркнутом и менее закругленном 0 и менее закругленных $, C, G и J.
В более поздних моделях ZX Spectrum вся кодировка символов была заменена набором символов ZX Spectrum , который является производным от ASCII и включает в себя строчные буквы и многое другое.
В следующей таблице показан набор символов ZX81. Каждый символ показан с потенциальным эквивалентом Unicode . Пробелы и управляющие символы представлены сокращениями их названий.
CHR$ 192
, печатается как тот же символ, но отображается как "" в листингах BASIC и используется для включения буквального символа " в строку без конфликта с разделителем строки ". [1]