ANSI.SYS - ANSI.SYS
ANSI.SYS это драйвер устройства в ДОС семья операционные системы что дает дополнительные консоль функционирует через Escape-последовательности ANSI. Частично он основан на подмножестве текстовый терминал стандарт контроля, предложенный ANSI Технический комитет X3L2 по кодам и наборам символов («Комитет X3»).
Поскольку он не был установлен по умолчанию и был заведомо медленным, небольшое программное обеспечение воспользовалось им и вместо этого прибегло к непосредственному управлению оборудованием IBM PC. Был создан ряд сторонних альтернатив, которые работали с разумной скоростью, например ANSI.COM,[1] NANSI.SYS[2] и ANSIPLUS.EXE[3] чтобы попытаться изменить это.[требуется сторонний источник ]
использование
Использовать ANSI.SYS под DOS добавляется строка в CONFIG.SYS (или же CONFIG.NT под Windows NT основанные версии Windows ) файл, который читает:
- УСТРОЙСТВО =водить машину:\дорожка ANSI.SYS опции
куда водить машину: и дорожка являются буква диска и путь к каталог в котором файл ANSI.SYS найден, и опции может быть рядом дополнительных переключателей для управления поведением. ANSI.SYS также может быть загружен в верхняя память через DEVICEHIGH/HIDEVICE.
- / К использовать расширенные функции BIOS клавиатуры (ИНТ 16ч ) вместо стандартных[4]
- / Л сила количество линий
- /Р настроить прокрутку строки для поддержки программ чтения с экрана[4]
- / S или же /РАЗМЕР ЭКРАНА установить размер экрана
- /ИКС поддержка переопределения расширенных кодов клавиш независимо от стандартных кодов[4]
Функциональность
После загрузки ANSI.SYS позволяет последовательностям кода применять различные функции форматирования текста. Используя этот драйвер, программы, которые пишут в стандартный вывод может использовать 16 цветов переднего плана текста и 8 цветов фона, доступных в VGA-совместимый текстовый режим, заставьте текст мигать, измените положение курсора на экране и очистите экран. Это также позволяет изменить видеорежим со стандартного 80 × 25. текстовый режим к ряду различных графических режимов (например, графический режим 320 × 200 с текстом, отображаемым в виде пикселей, хотя ANSI.SYS не предоставляет вызовов для включения и выключения отдельных пикселей).
Стандарт ANSI.SYS относительно медленный, поскольку он отображает escape-последовательности в эквивалентные BIOS звонки. Несколько компаний сделали сторонние замены, которые напрямую взаимодействуют с видеопамять, аналогично большинству программ DOS с полноэкранным пользовательским интерфейсом.
По умолчанию внутренняя команда DOS CLS работает, напрямую вызывая соответствующую функцию BIOS для очистки экрана, тем самым заметно нарушая модель аппаратной абстракции, поддерживаемую в противном случае. Однако, если драйвер ANSI обнаружен DR-DOS COMMAND.COM, вместо этого он отправит управляющую последовательность, определенную в зарезервированном переменная окружения $ CLS к подключенному консольному устройству.[5] Если переменная среды не определена, она возвращается к отправке последовательности ESC [2 Дж вместо.[5] Указание других последовательностей можно использовать для управления различными настройками экрана после CLS. Из-за трудностей определения переменных среды, содержащих двоичные данные, COMMAND.COM также принимает специальные nnn обозначение для восьмеричные числа.[5] Например, чтобы отправить альтернативную последовательность управления, например ESC + (за 1Bh 2Bh как используется Терминалы ASCII ), можно было бы определить переменную следующим образом:
- НАБОР $ CLS = 033+
Эти функции поддерживаются COMMAND.COM во всех версиях DOS Plus и DR-DOS, но не в MS-DOS или PC DOS. Они также поддерживаются интерпретаторами команд в Параллельная DOS, Многопользовательская DOS и РЕАЛЬНЫЙ / 32, хотя они используют VT52 вместо управляющих последовательностей ANSI по умолчанию (например, ESC E).[5]
Переназначение клавиатуры
Интересная особенность ANSI.SYS это возможность переназначить любую клавишу на клавиатура для выполнения ярлыков или макросов для сложных инструкций. Используя специальные escape-последовательности, пользователь может определить любое нажатие клавиши, имеющее отображение кода символа для имитации произвольной последовательности таких нажатий клавиш.[6] Эта функция также использовалась злодеями для создания простых трояны из текстовых файлов, замешанных гнусными переназначениями клавиатуры, известными как «бомбы ANSI». Для защиты пользователей от этого был выпущен ряд продуктов:
- Некоторые версии ANSI.SYS поддерживают переключатель командной строки для отключения функции переназначения клавиш, например. опция / S (Безопасный) в ANSI.SYS из Datalight ROM-DOS[7] или NANSI.SYS[2] из FreeDOS. Другие драйверы ANSI, такие как ANSIPLUS, также могут быть настроены на отключение переопределения ключей.[3]
- Параметр CONFIG.SYS ЭКРАН = ANSI в ПТС-ДОС предоставляет встроенный драйвер ANSI, не поддерживающий функции переназначения клавиатуры.[8][9]
- Некоторые сторонние замены ANSI.SYS были специально разработаны, чтобы никогда не поддерживать функции переназначения клавиатуры.
- ПО произвел TSR программа PKSFANSI (PK Safe ANSI), которая отфильтровывает управляющие коды переназначения клавиатуры по мере их записи на стандартный вывод.[10] Это имеет то преимущество, что пользователь может загрузить некоторые полезные переназначения из текстового файла, а затем запустить PKSFANSI, чтобы предотвратить дальнейшие, возможно злонамеренные переназначения.
Вхождение
ANSI.SYS появился в MS-DOS 2.0, первая версия операционной системы, поддерживающая драйверы устройств.[11] Он поддерживался всеми последующими версиями MS-DOS. Он также присутствует во многих системах DOS, отличных от Microsoft, например IBM PC DOS и DR-DOS.[12]
ANSI.SYS требовалось для запуска некоторого программного обеспечения, которое использовало его функции управления курсором и цветом.[12] Его также можно использовать для включения сложных цветовых кодов в COMMAND.COM Подсказка. Это использование было омрачено использованием ANSI.SYS в BBS; Управляющие последовательности ANSI использовались, чтобы позволить BBS отправлять сложные текстовая графика более сложный, чем ASCII искусство, и управлять курсором способами, которые использовались в ряде онлайн игры и аналогичные функции.
Большинство версий Windows не поддерживает Коды выхода ANSI любым полезным способом (в некоторых версиях может использоваться эмуляцией MSDOS). В Windows 10 поддержка подобных escape-последовательностей была встроена в Консоль Win32 (окно текстового терминала), но должно быть активировано с помощью Windows API функция SetConsoleMode
установив ENABLE_VIRTUAL_TERMINAL_PROCESSING
флаг.[13]
Функции
CSI (Введение в контрольную последовательность ) является заполнителем для общей двухбайтовой escape-последовательности "ESC [" (то есть, 0x1B 0x5B).[12] Стандарт ANSI также определяет альтернативный однобайтовый код CSI. 0x9B, который не поддерживается ANSI.SYS.
Стандартный DOS ANSI.SYS драйверы поддерживают только следующий набор управляющих последовательностей ANSI:[12]
Последовательность | Эффект |
---|---|
ESC [ р А | Курсор вверх (CUU ) |
ESC [ р B | Курсор вниз (CUD ) |
ESC [ c C | Курсор вперед (CUF ) |
ESC [ c D | Курсор назад (Куб ) |
ESC [ р;c ж | Горизонтальное и вертикальное положение (HVP ) |
ESC [ р;c ЧАС | Положение курсора (ЧАШКА ) |
ESC [ п J | Стереть дисплей (ED ) (n = 0, 2 или n = 0, 1, 2)[nb 1] |
ESC [ п K | Стереть в строке (EL ) (n = 0 или n = 0, 1, 2)[nb 1] |
ESC [ п м | Выбрать графическое исполнение (SGR ) (n = 0..47) |
ESC [6 n | Отчет о состоянии устройства (DSR ) запрашивает позицию курсора, возвращается как отчет о положении курсора (CPR ): ESC [ р;c р |
ESC [s | Сохранить позицию курсора (SCP ) |
ESC [u | Восстановить позицию курсора (RCP ) |
Есть также несколько escape-последовательностей, специфичных для реализации ANSI.SYS. Обычно они не поддерживаются консолями ANSI в других операционных системах.
Последовательность | Эффект |
---|---|
ESC [ п час ESC [?п час ESC [=п час ESC [>п час[nb 2] | Набор Режим экрана (SM )[nb 2] |
ESC [ п л ESC [?п л ESC [=п л ESC [>п л[nb 2] | Сбросить режим экрана (RM )[nb 2] |
ESC [ п q | Включить (n = 1) или отключить (n = 0) /ИКС поддерживать[№ 3] |
ESC [L | Вставить строку (IL )[№ 4] |
ESC [M | Удалить строку (DL )[№ 4] |
ESC $) 1 | Переключить режим ввода с клавиатуры на корейский (Хангыль )[№ 5] |
ESC (2 | Переключить режим ввода с клавиатуры на английский[№ 5] |
ESC [+ | Включить вывод консоли[№ 6] |
ESC [- | Отключить вывод консоли[№ 6] |
ESC [ а;б;... п | Установить новое определение ключа (SKR /KR ) |
Режим | Описание | Режим | Описание |
---|---|---|---|
0 | 40 × 25 монохромный | 1 | 40 × 25 цвет |
2 | 80 × 25 монохромный | 3 | 80 × 25 цвет |
4 | 320 × 200 цвет | 5 | 320 × 200 монохромный |
6 | 640 × 200 монохромный | ||
7 | Обернуть в конце строки[№ 7] | ||
13 | 320 x 200, цвет (графика) | 14 | 640 x 200 цветов (16-цветная графика) |
15 | 640 x 350 монохромный (2-цветная графика) | 16 | 640 x 350 цветов (16-цветная графика) |
17 | 640 x 480 монохромный (2-цветная графика) | 18 | 640 x 480 цветов (16-цветная графика) |
19 | 320 x 200 цветов (256-цветная графика) | ||
114 | 640 x 480 цветов (16-цветная графика)[№ 8] | 115 | 640 x 475 цветов (16-цветная графика)[№ 8] |
В некоторых реализациях DOS видеорежимы выше 7 не документированы. Под Многопользовательская DOS, единственный допустимый аргумент в сочетании с PCTERM это 7.
Смотрите также
Примечания
- ^ а б Аргументы 0, 1, 2 поддерживаются и различаются только японскими версиями MS-DOS и ПК DOS ANSI.SYS. Западные проблемы ANSI.SYS не будет поддерживать или не различать их. Однако они также поддерживаются Многопользовательская DOS.
- ^ а б c d Вводный префикс '>' поддерживается только в японских версиях MS-DOS, ПК DOS и DR-DOS ANSI.SYS для доступа к специальным японским режимам отображения.
- ^ Эта нестандартная escape-последовательность поддерживается только MS-DOS и ПК DOS ANSI.SYS. Его можно использовать для включения или отключения расширенной поддержки клавиатуры во время выполнения, аналогично ANSI.SYS /ИКС вариант запуска.
- ^ а б Эти нестандартные и escape-последовательности для вставки и удаления строк поддерживаются только японскими версиями MS-DOS и ПК DOS. Их также поддерживают западные издания Многопользовательская DOS, но не DR-DOS.
- ^ а б Эти нестандартные escape-последовательности для переключения между корейским и английским режимами ввода клавиатуры поддерживаются только корейскими версиями MS-DOS, ПК DOS и DR-DOS ANSI.SYS.
- ^ а б Эти нестандартные escape-последовательности для отключения и повторного включения любого вывода в ПРОТИВ: устройство поддерживаются ANSI.SYS из DR-DOS 7.02 только и выше. Они используются для отключения звука консоли во время загрузки, например, в сочетании с DR-WebSpyder загрузочные дискеты.
- ^ Значение 7 используется для включения (с SM) или отключить (с RM) обертку в конце рядов. Если этот параметр включен, дополнительные символы переносятся на следующую строку, а эти символы будут потеряны, если перенос отключен.
- ^ а б Видео режимы 114 и 115 поддерживаются только на японском языке. DOS / V вопросы ANSI.SYS нашел в DR DOS 6.0, Novell DOS 7 и выше.
Рекомендации
- ^ Меффорд, Майкл (1989-02-07). "ANSI.com: Загрузите его здесь". Журнал ПК. Получено 2011-08-10.
- ^ а б Кегель, Даниэль; Алми, Том; Ауэр, Эрик (28 февраля 1999). «NANSI - усовершенствованный драйвер консоли MS-DOS». 4.0. Веб-хостел Дэна Кегеля. В архиве из оригинала на 2018-05-19. Получено 2011-08-10.
- ^ а б Свегер, Кристофер (2007) [2000]. «Настройка ANSIPLUS». В архиве из оригинала на 2018-10-04. Получено 2018-10-04.
- ^ а б c «Руководство по использованию ANSI.SYS». Архивировано из оригинал на 2007-06-23. Получено 2017-09-11.
- ^ а б c d Пол, Матиас Р. (1997-07-30) [1994-05-01]. NWDOS-TIPs - Советы и приемы для Novell DOS 7, с подробностями, исправлениями и обходными путями Blick auf undokumentierte. MPDOSTIP. Выпуск 157 (на немецком языке) (3-е изд.). В архиве из оригинала на 2017-09-10. Получено 2014-08-06. (NB. NWDOSTIP.TXT - это комплексная работа по Novell DOS 7 и OpenDOS 7.01, включая описание многих недокументированных функций и внутренних компонентов. Это часть еще более обширной работы автора. MPDOSTIP.ZIP Коллекция сохранялась до 2001 г. и распространялась на многих сайтах того времени. Приведенная ссылка указывает на старую версию HTML-конвертированного NWDOSTIP.TXT файл.) [1]
- ^ «Коды клавиатуры ANSI - коды клавиш ANSI.SYS и расширенные коды клавиш». µVGA - интерфейс микроконтроллера VGA. СЕКОНС ООО 2012. В архиве из оригинала на 2017-09-11. Получено 2017-09-11.
- ^ Datalight, Inc.; GPvNO (апрель 2005 г.) [1999]. "Руководство пользователя Datalight ROM-DOS" (PDF). Datalight, Inc. 3010-0200-0716. Получено 2018-09-16.
- ^ "Руководство пользователя PTS-DOS 2000 Pro" (PDF). Буггинген, Германия: Paragon Technology GmbH. 1999. В архиве (PDF) из оригинала на 2018-05-12. Получено 2018-05-12.
- ^ Гюнтер, Йенс; Эрнст, Тобиас (2004-04-25) [1996]. Ellsässer, Вольфганг (ред.). "Inoffizielle deutschsprachige PTS-DOS-FAQ (PTS / FAQD)" [Неофициальный немецкий PTS-DOS FAQ] (на немецком языке). Получено 2018-10-02.
- ^ Массингилл, Майкл Д. Пирсон, Дэйв (ред.). "ПК СЕЙФ АНСИ (PKSFANSI.COM)". В архиве из оригинала на 2017-09-11. Получено 2017-09-11.
- ^ Филд, Тим (ноябрь 1983 г.). «Устанавливаемые драйверы устройств для ПК DOS 2.0 - внутри IBM PC». БАЙТ. 8 (11): 188–196. Получено 2016-03-19.
- ^ а б c d «Глава 9: Настройка системы». Caldera, Inc. 1998. Архивировано с оригинал на 2017-09-10. Получено 2017-09-10. (NB. Документация пользователя DR-DOS 7, описание ANSI.SYS escape-последовательности (неполные))
- ^ «Последовательности виртуального терминала консоли». Консоль Windows.
внешняя ссылка
- «Как я могу изменить подсказку или цвет экрана в DOS?». Университет Индианы. 2010-10-25. В архиве из оригинала на 2017-09-11. Получено 2017-09-11.
- Камбус, Фредерик (2017-04-19). «Набор инструментов для преобразования файлов ANSi / BiN / ADF / iDF / TUNDRA / XBiN в изображения PNG». В архиве из оригинала на 2017-09-11. Получено 2017-09-11.