Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Dos7book

.pdf
Скачиваний:
75
Добавлен:
09.02.2015
Размер:
5.1 Mб
Скачать

Глава 6: Избранные программы для MS-DOS7

6.05-22 Отладчик DEBUG.EXE: команда "Map"

Команда "Map" (= отобразить) обращается к драйверу отображаемой памяти EMM386.EXE (5.04-02, 8.03-60) с запросом об отображении 16-килобайтной

логической страницы в заранее выделенной области расширенной памяти на "физическую" страницу памяти такого же размера. Здесь под термином "отображение" имеется ввиду такая настройка механизма преобразования адресов в центральном процессоре, которая обеспечит преобразование обычных 16-разрядных адресов, относящихся к адресному пространству "физической" страницы, в 32-разрядные адреса реальных ячеек памяти, находящихся за границей обыкновенной памяти на том участке, который поставлен в соответствие запрошенной логической странице. Естественно, запрос об отображении логической страницы имеет смысл только на компьютерах с 32-разрядным процессором и с объемом памяти свыше одного мегабайта, когда драйвер EMM386.EXE заранее установлен, и когда выделенной области расширенной памяти, в которой находится запрашиваемая логическая страница, уже присвоена номерная ссылка (handle). В командной строке отладчика DEBUG.EXE вызов команды "Map" задается буквами "XM", например:

XM 0B 03 0006

В командной строке вызова команды "Map" должны быть указаны три обязательных параметра. Первый параметр в данном примере 0Bh – номер запрашиваемой логической страницы в выделенной области расширенной памяти. Второй параметр в данном примере 03h – номер физической страницы. Третий параметр в данном примере 0006h – номерная ссылка, присвоенная той выделенной области расширенной памяти, в которой находится запрашиваемая логическая страница.

Номера физических страниц можно выбирать в пределах 00h – 1Bh, но нужно помнить, что физические страницы с номерами от 04h и выше располагаются в обыкновенной памяти ниже 640 кбайт. Потому наиболее активно используются физические страницы 00h – 03h, располагаемые по умолчанию в сегментных адресах E000h, E400h, E800h и EC00h соответственно. Однако запросы системы BIOS компьютера и параметры установки драйвера EMM386.EXE могут повлиять на размещение физических страниц в адресном пространстве, так что в каждом конкретном случае его следует проверять командой "Show" (6.05-23) или посредством вызова обработчика прерывания INT 67\AX=5800h (8.03-70).

6.05-23 Отладчик DEBUG.EXE: команда "Show"

Команда "Show" (= показать) обращается к драйверу отображаемой памяти EMM386.EXE (5.04-02, 8.03-70) с запросом предоставить сведения об

– 191 –

Глава 6: Избранные программы для MS-DOS7

использовании расширенной памяти и о размещении физических страниц. Для пользования командой "Show" необходимо, чтобы компьютер располагал памятью свыше одного мегабайта и чтобы драйвер EMM386.EXE был заранее установлен. В командной строке отладчика DEBUG.EXE вызов команды "Show" задается буквами "XS" без параметров:

XS

В ответ отладчик DEBUG.EXE выводит таблицу, в начале которой приведены сведения о том, сколько логических страниц ассоциировано с каждой номерной ссылкой. Затем показаны сегментные адреса, назначенные каждой физической странице. Последние две строки выводимого на экран сообщения показывают статистику: общее число логических страниц в расширенной памяти, число свободных логических страниц, максимальное число номерных ссылок (handles) и сколько номерных ссылок уже выделено.

Однако таблица получится слишком длинной и выйдет за рамку экрана, если в нее будут включены сведения о всех 28 страницах, предусмотренных спецификацией EMS 4.0. Чтобы просмотреть таблицу полностью, нужно либо перенаправить выводимое сообщение в текстовый файл (2.04-03), либо установить видеорежим 108h (A.10-1), или уменьшить число физических страниц посредством изменения параметров драйвера EMM386.EXE (5.04-02).

6.06DISKCOPY.COM – копирование дискет

Программа DISKCOPY.COM копирует содержание одной дискеты на другую, при условии, что обе эти дискеты одного типа. Содержание копируется полностью, включая метку тома и серийный номер. Вот пример пользования программой

DISKCOPY.COM:

DISKCOPY.COM A: B: /V

здесь:

A:пример спецификации первого дисковода, который содержит копируемую дискету.

B:пример спецификации второго дисковода с дискетой, на которую

должно производиться копирование.

/V – необязательный параметр, вызывающий выверку изготовленной копии относительно оригинала.

Помимо показанных параметров, в командной строке могут быть следующие:

/1 – необязательный параметр, вызывающий копирование только одной стороны дискеты (для устаревших односторонних дискет)

– 192 –

Глава 6: Избранные программы для MS-DOS7

/M

необязательный параметр, вызывающий многозаходное

 

копирование по частям с сохранением частей в памяти, без

 

создания буферного файла на жестком магнитном диске.

Допускается указывать один и тот же дисковод как в качестве источника, так и в качестве дисковода-приемника. В этом случае программа DISKCOPY.COM создает временный буферный файл в каталоге, указанном в переменной окружения %TEMP%, и после его создания предлагает заменить копируемую дискету той, на которую должно производиться копирование. По завершении копирования временный буферный файл автоматически уничтожается. Но когда переменная %TEMP% не определена, или если указан параметр /M, то копирование происходит по частям согласно имеющемуся свободному пространству памяти, так что

пользователю приходится по нескольку раз менять дискеты в одном и том же дисководе.

Формирование постоянного файла-образа дискеты программой DISKCOPY.COM не предусмотрено. Кроме того, программа DISKCOPY.COM "не умеет" разумно обращаться с дискетами, содержащими поврежденные секторы. Поэтому сейчас предпочтение отдают другим программам копирования, не обладающим перечисленными недостатками. Можно рекомендовать, например, программу IMG.EXE, которая свободно выложена в сети Интернет на сервере ftp://ftp.elf.stuba.sk/pub/pc/utildisk/ в составе файла архива IMG.ARJ.

Примечание 1: программу DISKCOPY.COM и ее аналоги нельзя применять для копирования жестких магнитных дисков, оптических и сетевых дисков, а также виртуальных дисков, создаваемых программами

ASSIGN.COM, SUBST.EXE и JOIN.EXE.

6.07DOSKEY.COM – менеджер командной строки

Резидентная программа DOSKEY.COM дополняет функции командного интерпретатора по обслуживанию командной строки. Программа DOSKEY.COM расширяет возможности редактирования командной строки, повторного вызова команд, позволяет создавать и исполнять макрокоманды, содержащие простые последовательности операций. Определяемые макрокомандами процедуры начинают действовать после загрузки их спецификаций в специальный буфер, организуемый в памяти программой DOSKEY.COM. Помимо этого буфера, резидентный модуль программы DOSKEY.COM занимает в памяти около 4 кбайт.

Программа DOSKEY.COM в MS-DOS7 усовершенствована: она получила способность изменять размер буфера клавиатуры, буфера командной строки, а также вводить список определений макрокоманд из текстового файла.

– 193 –

Глава 6: Избранные программы для MS-DOS7

Программу DOSKEY.COM можно загружать из командной строки или из строки файла AUTOEXEC.BAT, непосредственно или с помощью команды LH,

например

LH DOSKEY.COM /bufsize:1024 /insert /file:C:\DOS\MS7\Macro.scr

здесь:

/bufsize:1024 – необязательный параметр,

определяющий размер буфера

 

макрокоманд. Минимальный размер буфера 256 байт, по

 

умолчанию принимается 512. Этот параметр следует

 

использовать только при начальной загрузке и перезагрузке.

 

Свободная часть данного буфера используется для хранения

 

предыдущих командных строк ("истории").

 

/insert

необязательный

параметр, переводящий командную

строку в

 

режим вставки знаков, позволяющий вставлять новые знаки

 

между теми, которые набраны ранее. По умолчанию

 

устанавливается режим повторного набора (overstrike), при

 

котором новые знаки набираются поверх прежних.

 

/file:C:\DOS\MS7\Macro.scr

пример

спецификации для

загрузки

определений макрокоманд из файла (пример показан далее). Путь к этому файлу можно не указывать, если он находится в текущем каталоге, но суффикс, если он имеется, должен быть указан обязательно.

При первичной загрузке и перезагрузке можно дополнительно указывать следующие необязательные параметры:

/echo:off – не выводить на экран командную строку исполняемых макрокоманд.

/keysize:31 – увеличить размер буфера клавиатуры до 31 знака, тогда как по умолчанию он составляет 15 знаков.

/line:256 – установить размер буфера для редактирования командной строки. По умолчанию его размер – 128 знаков.

/reinstall – повторно установить резидентный модуль программы DOSKEY.COM. Каждая повторная установка занимает дополнительно 4 кбайт памяти (прежний резидентный модуль при этом не выгружается). Повторная установка позволяет без перезагрузки DOS изменять размер буферов и восстанавливать работоспособность DOSKEY.COM, нарушенную из-за перехвата функций клавиатуры другими программами.

Когда DOSKEY.COM уже загружен, его можно вызывать с параметрами /H и /M, чтобы показать предыдущие командные строки (историю):

DOSKEY /H

– 194 –

Глава 6: Избранные программы для MS-DOS7

или чтобы показать действующие макрокоманды:

DOSKEY /M

Кроме того, программу DOSKEY.COM можно вызывать для загрузки определения еще одной макрокоманды из командной строки, например, так:

DOSKEY count=C:\DOS\COM\Find.exe /v /c "" $1

Слово "count" здесь будет интерпретировано как имя загружаемой макрокоманды. Если потом это имя набрать сразу же после приглашения командной строки, то произойдет исполнение команды, указанной в определении макрокоманды справа от знака равенства. В данном случае это определение включает одну команду, выполняющую подсчет числа строк любого текстового файла, который здесь представлен формальным параметром $1. При исполнении макрокоманды формальный параметр будет замещен именем реального файла, указанным после имени макрокоманды в командной строке.

Команды в составе определений макрокоманд могут содержать знаки равенства и подстановки переменных окружения (например, %Temp%). Специальная роль в определениях макрокоманд отведена знаку "$": он интерпретируется совместно со следующей буквой или цифрой, и эта пара знаков вместе замещается:

$G – знаком правой стрелки ">" (перенаправления выхода); $L – знаком левой стрелки "<" (перенаправления ввода);

$B – знаком вертикального штриха "|" (промежуточного перенаправления);

$T – разделителем, позволяющим указывать несколько команд в

 

одной строке макрокоманды;

$1 - $9 – формальными параметрами (как %1 - %9 в batch-файлах);

$*

сразу всеми словами, указанными после имени макрокоманды в

 

командной строке;

$$

одним знаком доллара "$".

Командный файл для загрузки определений макрокоманд должен содержать по одному определению в каждой строке и может выглядеть, например, так:

count=C:\DOS\COM\Find.exe /v /c "" $1

newbat=echo @echo off$G %Temp%\Trial.bat $T Edit.com %Temp%\Trial.bat

Уже после загрузки макрокоманд в буфер памяти любую из них можно из буфера удалить, указав после имени макрокоманды только знак равенства, например:

DOSKEY count=

Когда DOSKEY.COM загружен, он активизирует следующие "горячие клавиши":

– 195 –

Глава 6: Избранные программы для MS-DOS7

Левая и правая стрелки

сдвигают курсор влево и вправо

CTRL-левая стрелка

сдвигает курсор на одно слово влево

CTRL-правая стрелка

сдвигает курсор на одно слово вправо

HOME

сдвигает курсор к началу командной строки

END

сдвигает курсор к концу командной строки

INS

переключает режимы вставки и повторного

 

набора

ESC

удаляет все из командной строки

ALT-F10

удаляет все макрокоманды из буфера памяти

F7

показывает предыдущие команды (историю)

PageUp

показывает старейшую из предыдущих команд

PageDown

показывает последнюю из предыдущих команд

стрелки вверх и вниз

выбирают одну из предыдущих команд

F9

выбирает одну из прошлых команд по номеру

Alt+F7

удаляет все из списка предыдущих команд

F8

вызывает команду из списка предыдущих команд

 

по совпадению ее начальных знаков с теми,

 

которые набраны в командной строке.

Примечание 1: макрокоманда не будет исполнена, если ее имени в командной строке предшествует хотя бы один пробел.

Примечание 2: если имя макрокоманды совпадает с именем какой-либо команды, то исполняться будет именно макрокоманда.

Примечание 3: программа DOSKEY.COM несовместима с файл-менеджерами

Norton Commander, Volcov Commander, и т. п., причем предпочтение обычно отдается файл-менеджерам.

6.08DELTREE.EXE – удаление каталогов

Программой DELTREE.EXE следует пользоваться очень осторожно, потому что

она позволяет удалять каталоги вместе со всеми содержащимися в них файлами и подкаталогами, причем не обращая внимания на атрибуты файлов. Только корневые каталоги дисков удалить программой DELTREE.EXE нельзя. Вот пример вызова этой программы:

DELTREE /Y C:\TEMP\TDIR1

здесь:

/Y

необязательный параметр, разрешающий исполнение удалений

 

без предупреждения

C:\TEMP\TDIR1

пример спецификации подлежащего удалению

 

каталога.

В

одной строке можно указывать несколько таких

– 196 –

Глава 6: Избранные программы для MS-DOS7

спецификаций, но использовать в них знаки подстановки не разрешается.

6.09EDIT.COM – текстовый редактор

EDIT.COM – популярная программа редактирования преимущественно текстовых файлов, предоставляющая также ограниченные возможности редактирования файлов, содержащих данные и исполняемый код. Редактор EDIT.COM позволяет работать с одним или с двумя "окнами" редактирования, и при этом держать открытыми до десяти редактируемых файлов. На рис. 3 показан внешний вид двух "окон" редактора EDIT.COM с открытыми в них текстовыми файлами.

Рис. 3

Размеры редактируемых файлов ограничены только имеющейся в компьютере памятью. Редактор EDIT.COM создает буфер обмена, позволяющий пересылать

фрагменты текста из любого редактируемого файла в любой другой редактируемый файл. Помимо прочего, редактор EDIT.COM успешно взаимодействует с драйверами манипуляторов типа "мышь", благодаря чему процесс редактирования становится намного проще и быстрее.

Редактор EDIT.COM можно вызывать из командной строки без параметров, и

тогда подлежащие редактированию файлы нужно будет открывать через меню "File". Но можно указать подлежащие редактированию файлы сразу в командной строке. Вот пример вызова редактора EDIT.COM для редактирования двух файлов:

– 197 –

Глава 6: Избранные программы для MS-DOS7

EDIT.COM C:\DOS\Addons.txt Part6.txt

Имени первого файла в этом примере предшествует путь; без указания пути редактор EDIT.COM открывает только файлы, находящиеся в текущем каталоге. Так, второй файл, перед именем которого путь не указан, должен находиться в текущем каталоге. По умолчанию оба файла открываются в текстовом режиме редактирования, причем только один первый файл раскрывается в показываемом на экране "окне". Пользователю предоставляется самому открыть второе "окно" нажатием клавишной комбинации CTRL-F6 и перейти к редактированию другого файла по нажатию клавиши F8.

Установки параметров редактора EDIT.COM и пояснительные тексты хранятся в отдельных файлах EDIT.INI и EDIT.HLP, которые должны находиться в том же каталоге. Однако редактор EDIT.COM может обходиться и без упомянутых файлов, используя установки, принимаемые по умолчанию. Когда файл EDIT.INI отсутствует, пользователь может установить параметры посредством меню OPTIONS, и тогда редактор EDIT.COM автоматически воссоздаст файл EDIT.INI.

Немногие клавиши в редакторе EDIT.COM действуют так же, как в командной строке DOS. Так же действует клавиша Backspace, так же после нажатия клавиши ALT можно ввести код ASCII цифровыми клавишами в правой части клавиатуры, и это вызовет появление на экране соответствующего знака. Но большинство клавиш действует по-другому. Нажатие клавиши ALT активизирует буквенные "горячие клавиши" для выбора пунктов меню в верхней части экрана. При нажатой клавише ALT нажатие цифровых клавиш 0 – 9 в основной части клавиатуры вызывает переключение показываемых в "окне" открытых файлов по их номеру, если, конечно, для редактирования открыто несколько файлов. Стрелочки

перемещения курсора позволяют свободно перемещать его по всему окну редактирования. Если при перемещении курсора держать нажатой клавишу SHIFT,

то произойдет выделение фрагмента текста для его последующего удаления или копирования в буфер обмена. Выделять фрагмент текста удобно также с помощью "мыши", придерживая нажатой ее левую клавишу.

Помимо перечисленных выше функций, редактор EDIT.COM задействует следующие "горячие" клавиши и клавишные комбинации:

CTRL-C

копирует выделенный фрагмент текста в буфер обмена;

 

клавишная комбинация CTRL-INS действует так же.

CTRL-F4

закрывает активное окно (если открыты оба окна)

CTRL-F6

разделяет окно редактирования на два (если

 

первоначально было открыто только одно окно)

CTRL-F8

позволяет изменить размеры окон редактирования (если

 

открыты оба окна)

CTRL-Home

смещает курсор на начало файла

CTRL-End

смещает курсор на конец файла

 

– 198 –

Глава 6: Избранные программы для MS-DOS7

CTRL-P

запись специальных знаков последующим нажатием

 

клавиши CTRL и вводом цифрового кода знака

CTRL-PageDown

смещает окно просмотра на размер строки вправо

CTRL-PageUp

смещает окно просмотра на размер строки влево

CTRL-Q

выводит внизу экрана подсказку, позволяющую затем

 

выполнять операции поиска, замены и удаления

CTRL-Space

удаляет выделенный фрагмент текста без занесения его в

 

буфер обмена

CTRL-V

вставляет фрагмент из буфера обмена в редактируемый

 

текст согласно текущей позиции курсора

CTRL-W

смещает показываемый в окне текст на одну строку вниз

 

(комбинация CTRL-стрелка вверх действует так же)

CTRL-X

удаляет выделенный фрагмент текста в буфер обмена

CTRL-Y

удаляет указываемую курсором строку, даже если она не

 

выделена

CTRL-Z

смещает текст в окне текст на одну строку вверх

 

(комбинация CTRL-стрелка вниз действует так же)

Delete

удаляет выделенный фрагмент текста без занесения его в

 

буфер обмена. Если выделенных фрагментов нет, то

 

удаляется один знак справа от курсора.

F3

вызывает поиск следующего элемента по спецификации,

 

уже введенной клавишной комбинацией CTRL-Q-F.

F6

переключает открытые окна: активное и пассивное.

F8

переключает активное окно на следующий по порядку

 

открытый файл (когда открыты несколько файлов).

PageUp

смещает курсор на одну страницу текста вверх

PageDown

смещает курсор на одну страницу текста вниз

Некоторые из перечисленных клавишных комбинаций указаны в пунктах раскрывающихся меню, названия которых приведены на верхней строке экрана. Сами эти меню, а также их отдельные пункты можно выбирать не только с клавиатуры, но и нажатием левой клавиши манипулятора "мышь".

Вот еще один пример вызова редактора EDIT.COM для редактирования не-текстовых файлов:

EDIT.COM /78 Sc_sct.dat

здесь

/78 – параметр, вызывающий переход в режим редактирования не-текстовых файлов с ограничением длины строки до 78 знаков. Вместо 78 можно указывать любое число до 255, но 78

– 199 –

Глава 6: Избранные программы для MS-DOS7

соответствует фактической ширине окна редактирования в наиболее популярном текстовом режиме дисплея 80x25.

Допускается также вызывать редактор EDIT.COM с указанием в командной строке следующих параметров:

/B

отключить цвет, перейти к индикации в черно-белом виде

/H

перевести дисплей в режим с наибольшим числом строк

/R

открыть файл только для чтения, запретить редактирование

/S

воспринимать укороченные версии длинных имен файлов

/?

показать краткую справку.

6.10EXPAND.EXE – распаковщик сжатых файлов

Программа EXPAND.EXE распаковывает файлы, сжатые программой COMPRESS.COM фирмы Microsoft. Они выделяются тем, что в их имени последняя буква суффикса заменена знаком подчеркивания. Каждый такой сжатый файл содержит только один исходный файл. Файлы, сжатые программой COMPRESS.COM, входили в поставку предыдущих версий MS-DOS и ряда других программных пакетов, причем обычно вместе с программой распаковки EXPAND.EXE. Вот пример пользования программой EXPAND.EXE:

EXPAND.EXE E:\DOS\MSDOS622\Country.tx_ C:\DOS\MS6\Country.txt

Первое имя (Country.tx_) принадлежит сжатому файлу, второе имя (Country.txt) будет присвоено распакованному файлу. Оба имени указаны с предшествующим путем. Если путь не указывать, то поиск сжатого файла будет производиться только в текущем каталоге, и результат распаковки тоже будет помещен в текущий каталог, но это в данном случае допустимо, так как сжатый и распакованный файлы имеют разные имена.

Использовать знаки подстановки (2.01-03) в строке вызова программы EXPAND.EXE нельзя, но можно указывать подряд несколько сжатых файлов. При этом последним в строке должно быть указано имя каталога (без конечной обратной косой черты), куда будет происходить распаковка. Если распаковка производится в текущий каталог, он может быть представлен знаком точки.

Файлы, сжатые старыми версиями программы COMPRESS.COM, не содержат сведений о прежнем имени подвергнутого сжатию файла. Это не вызывает проблем, пока такие файлы распаковываются поодиночке с явным указанием нового имени для каждого распакованного файла. Но если группа таких файлов распаковывается в общий каталог, то имена распакованным файлам сменены не будут. В таком случае нельзя выполнять распаковку в тот же каталог, где находятся сжатые файлы, во избежание возникновения конфликта имен.

– 200 –

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]