«IS-DOS - первое знакомство» 1994 г.

Интерпретатор командной строки - управляющие клавиши монитора.


                    Интерпретатор командной строки

   В  предыдущей  части  мы с Вами изучили один из важнейших  способов
вызова  наиболее часто используемых утилит и команд IS-DOS - вызов  по
специальным  клавишам. Однако, далеко не всегда есть смысл  определять
клавишу для той или иной команды, ведь некоторые команды бывают  нужны
довольно  редко,  а  под все утилиты со всеми возможными  комбинациями
параметров   клавиш   просто  не  хватит.  Поэтому   для   организации
оперативного   обращения   к  системе  в  ней   предусмотрен   т.   н.
интерпретатор   командной  строки,  в  обязанности   которого   входит
считывание  и  передача  системе  команд,  вводимых  пользователем   в
специальную  область  памяти, называемую "буфером  командной  строки".
Ввод  команд  в  этот  буфер  осуществляется  при  помощи  специальной
программы  - монитора командной строки, которая называется  mon.com  и
запускается обычно клавишей CS+m (в IS-DOS 2.0 и ниже - m). Существует
также резидентный вариант монитора - mon.res, вызываемый клавишей m  и
обладающий  рядом дополнительных возможностей, о которых  пойдет  речь
чуть позже.
   Монитор  командной строки открывает специальную  область  экрана  -
окно  монитора,  занимающее три верхних строки. В левом  верхнем  углу
этой  области находится мигающий курсор, такой же, как и  в  редакторе
текстов. Вообще, монитор командной строки представляет собой текстовый
редактор  в  миниатюре, только созданный текст не сохраняется  в  виде
файла,  а  передается в буфер командной строки, где  и  обрабатывается
интерпретатором.
                                   
                     Управляющие клавиши монитора:
       CS+5 - курсор влево
       CS+6 - курсор вниз
       CS+7 - курсор вверх
       CS+8 - курсор вправо
       CS+0 - удалить символ слева
       SS+W - удалить символ под курсором
       SS+E - вставить пробел
       CS+1 - режимы Pyc/Lat
       CS+2 - режимы Заглавные/Строчные
       CS+3 - режимы Вставка/Замена
       ENTER - завершение ввода и выполнение строки
       CS+9,  SS+ENTER, SS+CS, SS+A, SS+SPACE - выход из монитора  без
выполнения строки, содержимое буфера не сохраняется
   Как  Вы  уже  поняли, Нажатие клавиши ENTER приводит  к  завершению
ввода команды и запускает интерпретатор командной строки. По окончании
работы  команды, как правило, Вы возвращаетесь обратно в монитор.  При
этом, если команда выполнена успешно, окно редактирования очищается  и
курсор  устанавливается в левый верхний угол. Если в командной  строке
допущена синтаксическая ошибка, например неправильно заданы параметры,
командная  строка  сохраняется на экране, а курсор  устанавливается  в
конец  строки, после чего Вы получаете возможность исправить ошибку  и
вновь  попытаться выполнить команду, нажав ENTER, если у Вас  и  после
этого  ничего  не  получится  -  нажмите  одну  из  клавиш  выхода   и
внимательно прочтите help-файл к необходимой Вам программе.
   Если  при  выполнении Вашей команды произойдет системная  ошибка  -
интерпретатор  сообщит об этом в специальном окне  в  нижней  половине
экрана,   (расшифровку   номеров  системных   ошибок   см.   в   файле
S:HELPerror.txt), после чего, нажав любую клавишу, Вы сможете выйти в
оболочку   IS-DOS   и   поразмышлять  о  причинах  такого   печального
результата. В случае, если система не может найти на диске нужный  Вам
файл,  в  окне  ошибок появится надпись "No filename". Если  Вы  вдруг
получите  такое  сообщение -помните, что оно не всегда  означает,  что
данного файла нет на диске вообще, просто укажите полный путь к  нему,
т. е. в каком подкаталоге его следует искать.
   При  работе  в  мониторе командной строки, в отличие от  текстового
редактора     основные     режимы    (Pyc/Lat,     Заглавные/Строчные,
Вставка/Замена)  не  индицируются на  экране,  что  создает  некоторые
трудности,   однако   проблема  эта  легко  разрешается   при   помощи
специальной резидентной программы indi.res. Установите и запустите  ее
командами  Q:RESset  Q:RESindi.res и @hidi, и Вы  увидите  в  правом
нижнем углу окна редактирования стандартную индикацию режимов:  lat  -
латинские  символы, рус - русские, ins - режим вставки,  ovr  -  режим
замены, индикация режимов заглавными буквами сигнализирует о включении
режима заглавных букв.
   Резидентный  монитор  командной  строки  mon.res,  о  котором   уже
упоминалось  выше,  выполняет те же функции,  что  и  mon.com,  однако
обладает  рядом  дополнительных возможностей, значительно  облегчающих
работу  с  командной  строкой.  Внутри резидентного  монитора  имеется
специальный буфер, размером 256 байт, в котором запоминаются  команды,
введенные  нажатием  ENTER. Это избавляет Вас от необходимости  заново
набирать  текст  команды, которую необходимо  вызвать  несколько  раз.
Кроме  того,  Вы можете отредактировать текст команды  даже  в  случае
системной  ошибки,  или  ошибки  "No filename".  B  случае  выхода  по
клавишам  отказа, команда не запоминается и содержимое буфера остается
неизменным.  Команды  в буфере резидентного монитора  располагаются  в
порядке их ввода, образуя подобие кольцевого стека. Для перемещения по
нему  в  поисках  нужной  команды  Вы  можете  использовать  следующие
клавиши:
       SS+SPACE - перейти к предыдущей команде
       SS+CS, CS+9 - перейти к следующей команде
   Таким  образом,  для вызова последней введенной команды  необходимо
нажать SS+SPACE, а для вывода самой ранней из сохранившихся в буфере -
SS+CS.  По  мере  заполнения буфера, более старые  команды  стираются,
содержимое стека смещается на одну строку и новая команда записывается
на его вершину. Максимальное количество запоминаемых команд зависит от
их длины и обычно составляет около 20.
   Внешний  вид монитора с установленной программой индикации  режимов
показан на рис. 11:


                               Рис. 11.

   Резидентный  монитор  имеет  еще одну полезную  особенность  -  при
нажатии  клавиши  SS+ENTER в текущую позицию курсора  переносится  имя
файла или каталога, на котором перед вызовом монитора находился курсор
файловой  панели.  Выход из монитора с отказом от  выполнения  строки,
ввиду  занятости  остальных клавиш осуществляется  только  при  помощи
SS+A.  Программа  индикации режимов indi.res  работает  с  резидентным
монитором так же, как и с com'овским.
   Позволю  себе  напомнить,  что при работе с  резидентным  монитором
категорически  запрещается удалять резиденты и драйверы, установленные
раньше, чем сам mon.res, это обязательно вызовет перемещение в  памяти
самого  монитора и приведет к гарантированному сбою в работе. В  таких
случаях пользуйтесь программой mon.com.
   Теперь  поговорим  более  подробно о  командах  в  системе  IS-DOS.
Команды  бывают внутренние и внешние. Внутренними называются  команды,
расположенные в теле системы. Таких команд всего пять:
   L_S /n - назначить устройство n системным,
   L_Q /n - назначить устройство n быстрым,
   L_T /n - назначить устройство n текущим,
   CAT s - сделать текущим подкаталог, описанный в строке s,
   @m - запустить резидентную программу m
   где  n - символьное обозначение устройства (как явные -А, В, С,  D,
Е, F, так и условные - S, Q, Т),
   s   -   полный   путь   к   необходимому   подкаталогу   (например:
Q;RESTRANSHELP),
   m - имя, под которым установлена резидентная программа.

   Примеры внутренних команд IS-DOS:
   L_S /А [назначить устройство А системным]
   L_Q  /S [назначить быстрым то же устройство, которое назначено  как
системное]
   CAT S:UTILHELP [открыть (сделать текущим) каталог S:UTILHELP]
   @indi  - запустить резидентную программу, установленную под  именем
indi
   Разумеется,  перед вызовом команды @ необходимо, чтобы  резидентная
программа была установлена утилитой set.com.
   Внешними  командами  в  IS-DOS называются команды,  подгружаемые  с
диска  на  время  их исполнения. По сути любой com'овский  файл  может
считаться внешней командой.
   Для  того,  чтобы  вызвать  любую  внешнюю  команду  необходимо   в
командной  строке  набрать  имя  этой команды  со  всеми  необходимыми
параметрами,  не  забыв  указать  полный  путь  к  ней.  Если  команда
вызывается из текущего каталога, путь указывать не обязательно.
   Примеры вызова внешних команд:
       Q:UTILdiskname [вызов команды изменения имени диска]
       Q:SHELLexebat  T:SERVICEBLKraml28.bat [вызов  интерпретатора
       bat-файлов и исполнение файла raml28.bat]
       Q:RESset  Q:RESmon.res  /e  [удаление  резидентной  программы
       mon.res]
       set  mon.res  /е[то же, если на текущей панели  открыт  каталог
       RES]
       Q:UTILdate [вызов программы установки текущей даты]
       date [то же, если на текущей панели открыт каталог UTIL]



СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Приветы - Приветы так приветы.
Итоги - Hеофициальные предварительные итоги Enlight'97.
Геннадий Зюганов - Обращение к гражданам России.
Розыск - Разыскиваются: A QUESTION of SPORT & SUPER WONDER BOY.
Проба пера - Стихи А. Баженова: Свечи, Смятение, Осень, Безисходность.

В этот день...   26 апреля