Кольцевой буфер (417h, 418h).
Клавиатурный буфер организован циклически (кольцевой буфер). Это означает, что при его переполнении самые старые значения будут потеряны. Указателями на начало и конец клавиатурного буфера обычно управляют обработчики прерываний INT 09h и INT 16h. Программа извлекает из буфера коды нажатых клавиш, используя различные функции прерывания INT 16h.
Помимо управления содержимым буфера клавиатуры, обработчик прерывания INT 09h отслеживает нажатия на так называемые переключающие клавиши - NumLock, ScrollLock, CapsLock, Ins. Состояние этих клавиш записывается в область данных BIOS в два байта с адресами 0000h:0417h и 0000h:0418h.
Формат байта 0000h:0417h: (0-7 – биты)
0 Нажата правая клавиша Shift.
1 Нажата левая клавиша Shift.
2 Нажата комбинация клавиш Ctrl-Shift с любой стороны.
3 Нажата комбинация клавиш Alt-Shift с любой стороны.
4 Состояние клавиши ScrollLock.
5 Состояние клавиши NumLock.
6 Состояние клавиши CapsLock.
7 Состояние клавиши Insert.
Формат байта 0000h:0418h: (0-7 – биты)
0 Нажата левая клавиша Shift вместе с клавишей Ctrl.
1 Нажата левая клавиша Shift вместе с клавишей Alt.
2 Нажата клавиша SysReq.
3 Состояние клавиши Pause.
4 Нажата клавиша ScrollLock.
5 Нажата клавиша NumLock.
6 Нажата клавиша CapsLock.
7 Нажата клавиша Insert.
ASCII
ASCII (англ. American Standard Code for Information Interchange) —американская стандартная кодировочная таблица для печатных символов и некоторых специальных кодов.
ASCII представляет собой кодировку для представления десятичных цифр, латинского и национального алфавитов, знаков препинания и управляющих символов. Изначально разработанная как 7-битная, с широким распространением 8-битного байта ASCII стала восприниматься как половина 8-битной. В компьютерах обычно используют расширения ASCII с задействованным 8-м битом и второй половиной кодовой таблицы.
Наложение символов
Благодаря символу BS (возврат на шаг) на принтере можно печатать один символ поверх другого. В ASCII было предусмотрено добавление таким образом диакритики к буквам, например:
· a BS ' → á
· a BS ` → à
· a BS ^ → â
· o BS / → ø
· c BS , → ç
· n BS ~ → ñ
Если на символ накладывается тот же символ, то получается эффект жирного шрифта, а если на символ накладывается подчёркивание, то получается подчёркнутый текст.
· a BS a → a
· a BS _ → a
Национальные варианты ASCII
Стандарт ISO 646 (ECMA-6) предусматривает возможность размещения национальных символов на месте @ [ \ ] ^ ` { | } ~. В дополнение к этому, на месте # может быть размещён £, а на месте $ — ¤. Такая система хорошо подходит для европейских языков, где нужны лишь несколько дополнительных символов. Вариант ASCII без национальных символов называется US-ASCII, или «International Reference Version».
Для некоторых языков с нелатинской письменностью (русского, греческого, арабского, иврита) существовали более радикальные модификации ASCII. Одним из вариантов был отказ от строчных латинских букв — на их месте размещались национальные символы (для русского и греческого — только заглавные буквы). Другой вариант — переключение между US-ASCII и национальным вариантом «на лету» с помощью символов SO (Shift Out) и SI (Shift In) — в этом случае в национальном варианте можно полностью устранить латинские буквы и занять всё пространство под свои символы.
Впоследствии оказалось удобнее использовать 8-битные кодировки (кодовые страницы), где нижнюю половину кодовой таблицы (0—127) занимают символы US-ASCII, а верхнюю (128—255) — дополнительные символы, включая набор национальных символов. Таким образом, верхняя половина таблицы ASCII до повсеместного внедрения Юникода активно использовалась для представления локализированных символов, букв местного языка. Отсутствие единого стандарта размещения кириллических символов в таблице ASCII доставляло множество проблем с кодировками (КОИ-8, Windows-1251 и другие). Другие языки с нелатинской письменностью тоже страдали из-за наличия нескольких разных кодировок.
В Юникоде первые 128 символов тоже совпадают с соответствующими символами US-ASCII. ASCII-коды используются также для определения нажатой клавиши при программировании. Для стандартной QWERTY-клавиатуры таблица кодов выглядит следующим образом:
Escape | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Print Screen | Scroll Lock | Pause | ||||||
`ё | - | =+ | Back Space | Insert | Home | Page Up | Num Lock | / доп. | * доп. | + доп. | |||||||||||
Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Delete | End | Page Down | 7 доп. | 8 доп. | 9 доп. | |||
Caps Lock | A | S | D | F | G | H | J | K | L | ;ж | 'э | Enter | 4 доп. | 5 доп. | 6 доп. | Enter доп. | |||||
Shift | Z | X | C | V | B | N | M | ,< | .> | / | Shift | \| | Up | 1 доп. | 2 доп. | 3 доп. | |||||
Ctrl | win | Alt | Space Bar | Alt | win | list | Ctrl | Left | Down | Right | Ins/0 45/96 | Del/. 46/110 |
Командная строка DOS
Среду командной оболочки Windows запускают разными способами, в частности указывая параметры при запуске Cmd.exe или используя собственный стартовый файл, хранящийся в каталоге %SystemRoot%\System32.
Кроме того, командная строка может работать в пакетном режиме для выполнения набора команд. В пакетном режиме командная строка считывает и выполняет команды одну за другой.
Работая с командной строкой Windows, вы должны понимать, откуда берутся используемые вами команды. «Родные» команды (встроенные в операционную систему) бывают двух видов:
1. внутренние — существуют внутри командной оболочки; у них нет отдельных исполняемых файлов;
2. внешние — реализованы в отдельных исполняемых файлах, которые обычно хранятся в каталоге %SystemRoot% \System32.
Краткий справочник по командам командной оболочки (Cmd.exe)
· assoc Выводит или изменяет сопоставления (associations) типов файлов
· break Задает точки останова при отладке
· call Вызывает из сценария процедуру или другой сценарий
· color Задает цвета текста и фона окна командной оболочки
· echo Выводит текст в окно командной строки или задает, надо ли отображать команды на экране (on|off)
· endlocal Отмечает конец локализации (локальной области видимости) переменных
· exit Выход из оболочки командной строки
· for Выполняет заданную команду для каждого файла в наборе
· ftype Выводит или изменяет текущие типы файлов в сопоставлениях расширений файлов с программами
· goto Указывает, что интерпретатор команд должен перейти настроку с заданной меткой в пакетном сценарии
· if Выполняет команды но условию
· path Показывает или задает путь к командам, используемый операционной системой при поиске исполняемых файлов и сценариев
· pause останавливает выполнение пакетного файла и ожидает ввода с клавиатуры
· popd Делает текущим каталог, имя которого было сохранено командой PUSHD
· prompt Указывает, какой текст должен показываться в строке приглашения
· pushd Сохраняет имя текущего каталога и при необходимости делает текущим заданный каталог
· rem Помечает комментарии в пакетном сценарии или Config.nt
· set Показывает текущие переменные окружения или задает временные переменные для текущей командной оболочки
· setlocal Отмечает начало локализации (локальной области видимости) переменных в пакетных сценариях
· shift Сдвигает позицию замещаемых параметров в пакетных сценариях
· start Запускает заданную программу или команду в отдельном окне
· title Задает заголовок окна командной оболочки
· verify Включает режим проверки файлов после записи на диск
· vol Показывает метку и серийный номер дискового тома
Синтаксис любой внутренней команды (и большинства внешних) можно получить, введя в командной строке имя команды и /?, например: сору /?
Командная оболочка — весьма мощная среда работы с командами и сценариями. В командной строке можно запускать команды разных типов: встроенные команды, утилиты Windows и версии приложений, рассчитанные на командную строку. Независимо от типа каждая команда, которую вы будете использовать, должна соответствовать одним и тем же синтаксическим правилам. Согласно этим правилам, за именем команды идут обязательные или необязательные аргументы. Кроме того, аргументы могут использовать перенаправление ввода, вывода или стандартных ошибок.
Выполняя команду в командной оболочке, вы инициируете такую последовательность событий.
1. Командная оболочка заменяет любые переменные, введенные в тексте команд, их текущими - значениями.
2. Если введена группа или цепочка из нескольких команд, строка разбивается на отдельные команды, которые в свою очередь разбиваются на имя и аргументы команды. Далее команды обрабатываются по отдельности.
3. Если в имени команды указан путь, командная оболочка ищет команду по этому пути. Если в указанном каталоге такой команды нет, командная оболочка возвращает ошибку.
4. Если в имени команды не задан путь, командная оболочка сначала пытается разрешить имя команды на внутреннем уровне. Если найдена внутренняя команда с таким именем, значит, вызвана внутренняя команда, которую сразу же можно выполнить. Если внутренней команды с таким именем нет, командная оболочка сначала ищет исполняемый файл команды в текущем каталоге, а затем в каталогах, перечне в переменной окружения PATH. Если файла команды нет ни в одном из этих каталогов, командная оболочка возвращает ошибку.
5. Если команда найдена, она выполняется с заданными аргументами и при необходимости ввод считывается из источника, указанного в этих аргументах. Вывод и ошибки команд показываются в окне командной строки или направляются заданному приемнику вывода и ошибок.
Как видите, на выполнение команд влияют многие факторы, в том числе пути к командам, перенаправление ввода-вывода, группирование или создание цепочек команд.
При работе с командной оболочкой вы, вероятно, запускали ее, открывая меню Start (Пуск) и выбирая Programs (Программы) или All Programs (Все программы), затем Accessories (Стандартные) и Command Prompt (Командная строка). Другие способы запуска командной строки — диалоговое окно Run (Запуск программы) или ввод cmd в другом, уже открытом окне командной оболочки.
Сценарии командной строки — текстовые файлы с командами, которые вы хотите выполнить. Это те же команды, которые обычно вводятся в командной оболочке Windows. Однако, вместо того чтобы вводить команды каждый раз, когда они понадобятся, можно создать соответствующий сценарий.
Поскольку сценарии состоят из стандартных текстовых символов, их можно создавать и редактировать в любом стандартном текстовом редакторе, скажем, в Notepad (Блокнот). Вводя команды, убедитесь, что каждая команда или группа команд, которые должны выполняться совместно, разметаются с новой строки. Это обеспечит их корректное выполнение. Закончив создание сценария командной строки, сохраните файл сценария с расширением .bat или .cmd. Оба расширения работают одинаково. Например, если вам надо создать сценарий для вывода имени системы, версии Windows и конфигурации IP, включите в файл SysInfo.bat или SysInfo.cmd следующие три команды:
Hostname
Ver
ipconfig –all
Команда ECHO служит двум целям: для записи текста в вывод (например в окно командной оболочки или текстовый файл) и для включения/выключения эхо-отображения команд. Обычно при выполнении команд сценария сами команды и вывод этих команд отображаются в консольном окне. Это называется эхо-отображением команд (comand echoing).
Чтобы использовать команду ECHO для отображения текста, введите echo и текст, который надо вывести: echo The system host name Is: hostname
Чтобы с помощью ECHO управлять эхо-отображением команд, введите echo off или echo on, например:
echo off
echo The system host name is:
hostname
Теперь посмотрим, как подавляется эхо-отображение команд. Запустите командную оболочку, введите echo off, затем другие команды. Вы увидите, что приглашение командной строки больше не выводится. Вместо него появляется только то, что набирается в консольном окне, и вывод выполненных команд. В сценариях команда ECHO OFF отключает эхо-отображение команд и приглашение командной строки. Добавляя в свои сценарии команду ECHO OFF, вы предотвращаете загромождение окна командной оболочки или файла текстом команд, если вас интересует лишь вывод от этих команд.
Часто при работе с компьютером пользователя или удаленным сервером возникает необходимость в получении базовой информации о системе вроде имени зарегистрированного в ней пользователя, текущего системного времени или местоположения определенного файла. Команды, которые позволяют собрать основную информацию о системе, включают:
1. DRIVERQUERY — выводит список всех установленных драйверов устройств и их свойства, в том числе имя модуля (module name), отображаемое имя (display name), тип драйвера и дату сборки (driver link date). В режиме отображения всей информации (/V) сообщается статус (status) и состояние (state) драйвера, режим запуска, сведения об использовании памяти и путь в файловой системе. Параметр /V также включает вывод детальной информации обо всех неподписанных драйверах.
2. SYSTEMINFO — выдает подробную информацию о конфигурации системы, в том числе сведения о версии, типе и изготовителе операционной системы, процессоре, версии BIOS, объеме памяти, региональных стандартах, часовом поясе и конфигурации сетевого адаптера.
3. NOW — отображает текущую системную дату и время в 24-часовом формате, например Sal May 9 12:30:45 2003. Доступна только в Windows Server 2003 Resource Kit;
4. WHOAMI — сообщает имя пользователя, зарегистрированного в системе на данный момент, например adatum\admi-nistrator.
Дата добавления: 2021-01-11; просмотров: 468;