Dos fn 47h дать умалчиваемое оглавление dos


Содержание

Создаем вирус и антивирус (38 стр.)

AL=0Fh – установить логическое устройство

Версии: DOS 2.00 и выше. DOS, функция 45h Дублировать описатель файла

BX – существующий описатель файла

CF=0, если функция выполнена успешно

AX – новый описатель файла, дублирующий оригинал

CF=1, если при выполнении функции возникли ошибки

Описание. Создает дополнительный описатель файла, ссылающийся на тот же поток ввода/вывода, что и существующий описатель. Любое продвижение указателя чтения/записи одного описателя (включая любые операции чтения, записи или перемещения указателя посредством функции 42h) действует на его дубликат.

Версии: DOS 2.00 и выше. DOS, функция 46h Переназначить описатель

BX – целевой описатель файла (должен уже существовать)

CX – исходный описатель файла (должен уже существовать)

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. Заставляет описатель файла (handle) ссылаться на другой файл или устройство. Если описатель в CX (источник) открыт, он закрывается, а затем становится дубликатом описателя в BX (назначения). Иными словами, описатели в CX и BX будут ссылаться на один и тот же физический файл или устройство.

Версии: DOS 2.00 и выше. DOS, функция 47h Получить текущее оглавление DOS

DS:SI – адрес локального буфера для результирующего пути – 64 байта

DL – номер диска (0 – текущий, 1 – A и так далее)

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. В буфер по адресу DS:SI помещается в форме ASCIZ путь текущего оглавления для диска, указанного в DL. Путь возвращается в формате: «путь\оглавление»,0. Впереди не подставляется буква диска, а сзади не подставляется символ «\». Например, если текущим является корневое оглавление, эта функция вернет пустую строку (DS: [SI]=0).

Версии: DOS 2.00 и выше. DOS, функция 48h Выделить память

BX – запрошенное количество памяти в 16-байтных параграфах

CF=0, если функция выполнена успешно

AX – сегментный адрес распределенного блока

CF=1, если при выполнении функции возникли ошибки

BX – размер максимального доступного блока памяти (в параграфах)

Описание. Распределяет блок памяти длиной BX параграфов, возвращая сегментный адрес этого блока в AX (блок начинается с AX:0000). Если распределение неудачно, устанавливается флаг CF, в AX возвращается код ошибки, а BX содержит максимальный размер доступной для распределения памяти (в параграфах). Чтобы определить наибольший доступный блок, общепринято устанавливать BX=FFFFh перед вызовом. Распределение завершится с ошибкой, возвратив размер максимального блока памяти в BX.

Версии: DOS 2.00 и выше. DOS, функция 49h Освободить блок памяти

ES – сегментный адрес освобождаемого блока памяти

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. Освобождает блок памяти, начинающийся с адреса ES:0000. Этот блок становится доступным для других запросов системы. Вообще говоря, нужно освобождать лишь те блоки памяти, которые получены через функцию 48h (распределить память). Родитель отвечает за освобождение памяти порожденных процессов. Тем не менее, ничто не препятствует освобождать память чужих процессов.

Версии: DOS 2.00 и выше. DOS, функция 4Ah Изменить размер блока памяти

ES – сегмент распределенного блока памяти

BX – нужный размер блока в 16-байтных параграфах

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

BX – размер максимального доступного блока памяти (в параграфах)

Описание. Изменяет размер существующего блока памяти. Когда программа получает управление, функция 4Bh уже распределила блок памяти, начиная с PSP, который содержит всю доступную память. Чтобы освободить память для запуска порождаемых процессов, блок памяти, начинающийся с PSP, необходимо сначала сжать.

Функция 31h и INT 27h (TSR) сжимают блок по адресу PSP.

Версии: DOS 2.00 и выше.

DOS, функция 4Bh Выполнить или загрузить программу

DS:DX – адрес строки ASCIZ с именем файла, содержащего программу

ES:BX – адрес EPB (блока параметров EXEC)

AL=00h – загрузить и выполнить

AL=01h – загрузить, но не выполнять

AL=03h – загрузить программный оверлей

CF=0, если функция выполнена успешно

BX, DX не сохранены

CF=1, если при выполнении функции возникли ошибки

Описание. Данная функция загружает в память и запускает программу, имя которой указано в регистрах DS:DX. Запущенная программа после завершения работы возвратит управление запускаемой. Если диск или путь не указаны, принимаются значения по умолчанию. ES:BX указывает на блок памяти, подготовленный как EPB, формат которого зависит от запрошенной подфункции в AL.

Версии: DOS 2.00 и выше. DOS, функция 4Ch Завершить программу

Описание. Возвращает управление от порожденного процесса его родителю, устанавливая код выхода (его можно опросить функцией 4Dh). Управление передается по адресу завершения в PSP завершающейся программы. Векторы Ctrl-Break и Critical Error восстанавливаются к старым адресам, сохраненным в родительском PSP.

Примечание. Значение ERRORLEVEL (используемое в пакетных файлах DOS) можно использовать для проверки кода выхода самой последней программы.

Версии: DOS 2.00 и выше. DOS, функция 4Dh Получить код выхода программы

AH – код выхода последнего завершившегося процесса

AH=00h – нормальное завершение

AH=01h – завершение через Ctrl-Break INT 23h

AH=02h – завершение по критической ошибке устройства INT 24h

AH=03h – завершение через функцию 31h

Описание. Возвращает код выхода последнего из завершившихся процессов. Эта функция возвращает правильную информацию только однажды для каждого завершившегося процесса.

Версии: DOS 2.00 и выше. DOS, функция 4Eh Найти первый совпадающий файл

DS:DX – адрес строки ASCIZ с именем файла (допускается использовать символы «?» и «*»)

CX – атрибут файла для сравнения

CF=0, если функция выполнена успешно

DTA заполнена данными (Таблица Б-10)

CF=1, если при выполнении функции возникли ошибки

Описание. Если диск и/или путь не указаны, принимаются значения по умолчанию. Обобщенные символы «*» и «?» допускается использовать в имени файла и расширении.

Версии: DOS 2.00 и выше. DOS, функция 4Fh Найти следующий совпадающий файл

DS:DX – адрес данных, возвращенных предыдущей 4Eh (Найти первый файл)

Таблица Б-10. Формат данных в DTA

CF=0, если функция выполнена успешно

DTA заполнена данными

CF=1, если при выполнении функции возникли ошибки

Описание. Эту функцию можно использовать после вызова 4Eh. Следующее имя файла, совпадающее по обобщенному имени и атрибуту файла, копируется в буфер по адресу DS:DX вместе с другой информацией (Таблица Б-10).

Примечание. Параметр DS:DX добавлен в DOS 3.0.

Версии: DOS 2.00 и выше. DOS, функция 52h Получить адрес векторной таблицы связи (Официально не документирована)

Выход: ES:BX – адрес векторной таблицы связи (Таблица Б-11)

Описание. Данная функция возвращает адрес векторной таблицы связи.

Версии: DOS 2.00 и выше. DOS, функция 54h Получить переключатель верификации DOS

AL=00h, если верификация выключена (OFF)

AL=01h, если верификация включена (ON)

Описание. Возвращает текущий статус верификации записи DOS. Если в AL возвращается 1, то DOS считывает обратно каждый сектор, записываемый на диск, чтобы проверить правильность записи. Функция DOS 2Eh позволяет установить/изменить режим верификации.

Версии: DOS 2.00 и выше. Таблица Б-11. Формат векторной таблицы связи

DOS, функция 56h Переименовать/переместить файл

Команды работы с каталогами и файлами в операционной системе Ms DOS

Цели урока:

  1. Выработка умений работы в операционной системе с использованием командной строки, применения теоретических знаний и возможностей операционной системы MS DOS на практике.
  2. Формирование информационной компетентности.
  3. Развитие интеллектуальных способностей и познавательных интересов школьников.

ХОД УРОКА

Организационная часть:

  • Проверка присутствующих, готовности класса и обучающихся к уроку (чистота в классе, наличие учебно-наглядных пособий, внешний вид обучающихся).
  • Проверка знаний обучающихся:
  • Путь к файлу.
  • Операции над файлами.
  • Операционная система: назначение и состав.

3. Теоретическая часть. Объяснение нового материала

Общие сведения о командах MS DOS

Команды — способ общения пользователя с компьютером в операционной системе.

Работа на компьютере в операционной системе MS DOS организуется командами. Они вызывают определенное действие в компьютере: организуют передачу информации; вырабатывают необходимый управляющий сигнал; подключают внешнее устройство для организации процесса ввода-вывода информации и т.д.

Команда технически реализована программой в машинных кодах и хранится либо в файле на диске, либо входит в состав командного процессора операционной системы MS DOS. Ввод команды осуществляется в командной строке в соответствии с определенными правилами, заданными в виде формата.

Командная строка — строка экрана, начинающаяся с приглашения операционной системы.

Формат команды — правило формирования команды пользователем с клавиатуры.

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

  • формат команды состоит из имени команды латинскими буквами (без типа) и отделенных от нее одним пробелом параметров, уточняющих ее действие;
  • в большинстве случаев параметры между собой пробелом не разделяются, а в качестве разделителя часто используется символ / или \;
  • параметрами могут быть: имя дисковода, путь, имя файла, тип файла, латинские буквы, символы, цифры;
  • присутствие параметров в формате часто бывает необязательным.

Процедура ввода команды состоит в следующем:

  • В соответствии с форматом в командной строке вы набираете ее имя и необходимые параметры.
  • Нажимаете клавишу ввода, что служит сигналом начала анализа ее структуры: при отсутствии ошибок в формате команды будет выполнено указанное действие; при наличии ошибок на экране выдается сообщение Bad kommand or file name (Неверная команда или имя файла).
  • При невыполнении команды вы внимательно просматриваете заданную конструкцию команды и вновь вводите ее, но уже в откорректированном варианте.

Примечание. Появление ошибок возможно как во время выполнения команды, так и после ее окончания. Об этом будет свидетельствовать сообщение, указывающее на причину ошибки.

4. Опорный конспект:

Основные команды DOS

Команды работы с каталогами Команды работы с файлами
Команда смены текущего дисковода.

А: — переход на дисковод А:

С: — переход на дисковод С:

D: — переход на дисковод D:

Создание текстовых файлов. сopy con имя-файла

После ввода этой команды нужно будет поочередно вводить строки файла. В конце каждой строки нужно нажимать клавишу Enter, а после ввода последней – нажать клавишу F6 и затем Enter.

Создание каталога.

md [дисковод:] путь

Копирование файлов. copy имя-файла1 имя-файла2 или copy имя-файла1 [имя-каталога]
Изменение текущего каталога.

cd [дисковод:] путь

Переименование файлов. ren имя-файла1 имя-файла2
Уничтожение каталога.

rd [дисковод:] путь

Соединение (конкатенация) файлов.

copy имя-файла [+ имя-файла]. имя-файла

Удаление каталога со всем содержимым. deltree имя-файла-или-каталога [/Y] Удаление файлов.

del имя-файла

Просмотр каталога. dir [дисковод:][путь\][имя-файла] [параметры] Вывод файла на экран.

type имя-файла

Другие команды
Очистка экрана монитора.

cls

Вывод информации о дате и установка даты в компьютере.

date

Вывод информации о времени и установка времени в компьютере.

time [часы:минуты]

Получение информации о версии DOS.

5. Практическая часть.

Выполнение лабораторной работы.

Лабораторная работа №1

Работа с операционной системой MS DOS

Задание Выполнение
Запустить Командную строку Пуск – Программы – Стандартные — Командная строка
Выполнить команду просмотра логического устройства dir
В корневом каталоге диска создайте директорий, назовите своей фамилией. md IVANOV
Проверить наличие созданного каталога при помощи команды DIR.
Сделать каталог IVANOV текущим cd IVANOV
Создать в каталоге IVANOV каталог с номером лабораторной работы md LAB1
Сделать каталог LAB_1 текущим cd LAB1
Создать в текущем каталоге файл с расширением .txt и именем, соответствующем вашему реальному имени. Ввести фамилию, дату выполнения работы. copy con IVAN.txt

Нажать F6 для выхода из режима редактирования.

Создать текущем каталоге файл text1.txt. Ввести “Я изучаю DOS” copy con text1.txt

Я изучаю DOS F6

Создать в текущем каталоге каталог с именем COPYTEST md COPYTEST
Копировать файл text1.txt в каталог COPYTEST copy text1.txt D:\IVANOV \LAB1\COPYTEST
Копировать файл IVAN.txt в каталог COPYTEST с переименованием на PETR.txt copy IVAN.txt D:\IVANOV \LAB1\COPYTEST\PETR.txt
Переместиться в на уровень выше cd ..
Выполнить команду просмотра каталога Dir
Переместить файл text1.txt в каталог IVANOV: move text1.txt D:\ IVANOV
Переместить файл IVAN.txt в каталог IVANOV с переименованием на MARIA.txt move IVAN.txt D:\ IVANOV\ MARIA.txt
Проверить наличие файла в каталоге IVANOV при помощи команды DIR.

6. Практическая работа (раздаточный материал)

Работа с файлами и каталогами в DOS

  • Создать каталог d:\ (Своя фамилия)
  • Создать систему подкаталогов в каталоге d:\ (Своя фамилия) по следующему ОБРАЗЦУ:
  • В каталоге DIR1 создать файл wan.txt
  • В каталоге DIR2 создать файл tu.txt.
  • Скопировать файл wan.txt в каталог INF2 с переименованием на tir.txt
  • Переместить файл tu.txt d в каталог INF2 с переименованием на tir.txt
  • На диске D в личном каталоге создать каталог CHET
  • Создать систему подкаталогов в каталоге CHET по образцу
  • В каталоге DOS1 создать файл ban.txt.
  • В каталоге ZAH2 создать файл mu.txt.
  • Скопировать файл ban.txt в каталог DOS2 с переименованием на tvr.txt
  • Переместить файл mu.txt в каталог DOS2 с переименованием на bir.txt
  • Вывести на экран содержимое каталога DOS2
  • На диске D в личном каталоге создать каталог TROL
  • Создать систему подкаталогов в каталоге TROL :
  • В каталоге KONT1 создать файл ran.txt.
  • В каталоге KONT2 создать файл man.txt. редакторами текстов.
  • Скопировать файл man.txt в каталог BOSS1 с переименованием на tnt.txt
  • Переместить файл ran.txt в каталог BOSS2 с переименованием на bat.txt/
  • Вывести на экран содержимое каталога BOSS2
  • Создать каталог d:\ (Своя фамилия)
  • Создать систему подкаталогов в каталоге d:\ (Своя фамилия) по следующему ОБРАЗЦУ:
  • В каталоге DAR1 создать файл dan.txt.
  • В каталоге DАR2 создать файл din.txt.
  • Скопировать файл dan.txt в каталог LAIT2 с переименованием на tan.txt
  • Переместить файл din.txt d в каталог LAIT2 с переименованием на tin.txt
  • Вывести на экран содержимое каталога LAIT2
  • На диске D в личном каталоге создать каталог RIM
  • Создать систему подкаталогов в каталоге RIM по образцу
  • В каталоге ROS1 создать файл bon.txt.
  • В каталоге RAH2 создать файл son.txt.
  • Скопировать файл bon.txt в каталог ROS2 с переименованием на ton.txt
  • Переместить файл son.txt в каталог ROS2 с переименованием на don.txt
  • Вывести на экран содержимое каталога ROS2
  • На диске D в личном каталоге создать каталог TRON
  • Создать систему подкаталогов в каталоге TRON :
  • В каталоге KON1 создать файл ron.txt.
  • В каталоге KON1 создать файл mon.txt.
  • Скопировать файл ron.txt в каталог BOR2 с переименованием на ton.txt
  • Переместить файл mon.txt в каталог BOR2 с переименованием на bon.txt
  • Вывести на экран содержимое каталога BOR2
  • Создать каталог c:\ RABOTA_1
  • Создать систему подкаталогов в каталоге c:\RABOTA_1 по следующему дереву:
  • В каталоге PAP1 создать файл wan.txt,
  • В каталоге РАР2 создать файл tu.txt
  • Скопировать файл wan.txt в каталог LIST2
  • Перенести файл tu.txt в каталог LIST2
  • Вывести на экран содержимое каталога LIST2

Опорный конспект, основные команды работы с файлами и каталогами в операционной системе MS DOS

Вывод хар-к жесткого

05.12.2011, 18:04

Технические хар
Здравствуйте! Необходима помощь знатоков. Покупаю себе первый раз ноутбук, профан в них тот ещё.

Переходные процессы хар.ур
Здравствуйте. Скажите пожалуйста: какую размерность имеют корни «р» характеристического уравнения.

Использование Масс-хар (massprop)
Подскажите пожалуйста как пользоваться командой «масс-хар»? Я начертил фигуру, ввёл «масс-хар».

Можно ли выяснить хар-ки компа?
Всем доброго времени суток, нужна помощь в поиске злоумышленника! Хар-ки: 1. Есть закрытая.

Опознать хар-ки мат.платы
Чтото гугл поломался что ли(( или мне пора уже на пенсию. Собствна, досталась мат.плата foxconn.

Программирование в среде однозадачной операционной системы

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«ПЕНЗЕНСКАЯ ГОСУДАРСТВЕННАЯ ТЕХНОЛОГИЧЕСКАЯ АКАДЕМИЯ

Е.В. Грачева

Системное программное обеспечение

Персональных ЭВМ

доктор технических наук, пофессор

зав.кафедрой «Вычислительные машины и системы»

доктор технических наук, пофессор

кафедры «Информационно-вычислительные системы»

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

Грачева Е.В.

Системное программное обеспечение персональных ЭВМ:

Учебнле пособие /Е.В. Грачева – Пенза

Учебное пособие подготовлено на кафедре «Вычислительные машины и системы»

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

Программирование в операционной среде

Операционной средой называется набор функций ОС, сервисов и правила обращения к ним. Поскольку каждая операционная система имеет свой набор функций и правил обращения к ним, программирование в операционной среде каждой ОС должно рассматриваться отдельно [1].

Программирование в среде однозадачной операционной системы

Программы для MS DOS могут быть одного из двух форматов: COM или EXE.

Программы типа COM не могут быть размером более 64 Кб и состоят только из одного сегмента – сегмента кода.

Размер программы типа EXE может превышать 64 кб.

В современных операционных средах приложения пользуются системными вызовами, число которых превышает 2000, в то время как в MS-DOS подобных функций гораздо меньше.

Главным входом большинства функций DOS служит прерывание, вызываемое с помощью команды INT 21h. Параметры функциям DOS передаются через регистры микропроцессора: AX (AH и AL), BX, CX, DX; регистровые пары DS:DX и ES:BX используются в основном при передаче адреса ячейки памяти. Через эти же регистры возвращаются результат работы функции DOS, кроме того могут быть установлены флаги в регистре флагов.

Как и любая операционная система, DOS загружает и выполняет программы. При загрузке программы в начале отводимого для нее блока памяти (для СОМ-программ это вся свободная на данный момент память) создается структура данных PSP (префикс программного сегмента) размером 256 байт (100h). Затем DOS создает копию текущего окружения для загружаемой программы, помещает полный путь и имя программы в конец окружения, заполняет поля PSP следующим образом:

+00h: слово – CDh 20h – команда INT 20h. Если СОМ-программа завершается командой RETN, управление передается на эту команду.

+02h: слово – сегментный адрес первого байта после области памяти, выделенной для программы

+04h: байт – не используется DOS

+05h: 5 байт – 9Ah F0h FEh 1Dh F0h – команда CALL FAR на абсолютный адрес 000C0h, записанная так, чтобы второй и третий байты составляли слово, равное размеру первого сегмента для СОМ-файлов (в этом примере FEF0h). Введено для совместимости с командой СР/М CALL 5.

+0Ah: 4 байта – адрес обработчика INT 22h (выход из программы)

+0Eh: 4 байта – адрес обработчика INT 23h (обработчик нажатия Ctrl-Break).

+12h: 4 байта – адрес обработчика INT 24h (обработчик критических ошибок)

+16h: слово – сегментный адрес PSP процесса, из которого был запущен текущий.

+18h: 20 байт – JFT – список открытых идентификаторов, один байт на идентификатор, FFh – конец списка.

+2Ch: слово – сегментный адрес копии окружения для процесса.

+2Eh: 2 слова – SS:SP процесса при последнем вызове INT 21h.

+32h: слово – число элементов JFT (по умолчанию 20).

+34h: 4 байта – дальний адрес JFT (по умолчанию PSP:0018).

+38h: 4 байта – дальний адрес предыдущего PSP.

+3Ch: байт – флаг, указывающий, что консоль находится в состоянии ввода 2-байтного символа.

+3Dh: байт – флаг, устанавливаемый функцией В711h прерывания 2Fh (при следующем вызове INT 21h для работы с файлом имя файла будет замечено на полное).

+3Eh: слово – не используется в DOS.

+40h: слово – версия DOS, которую вернет функция DOS 30h (DOS 5.0+).

+42h: 12 байт – не используется в DOS.

+50h: 2 байта – CDh 21h – команда INT 21h.

+54h: 7 байт – область для расширения первого FCB (FCB, FileControlBlok — это метод работы с файлами, являющийся рудиментом от ранних версий DOS’а. При его использовании можно работать только с файлами в текущем каталоге, причем даже нет возможности сменить каталог (точнее, даже понятия «каталог» в момент создания этих функций вообще не было). Современные программы эти функции не используют. MS-DOS обеспечивает две технологии обслуживания файлов. Первая была разработана при создании версий 1.Х. Эта технология основана на использовании структур данных, называемых блоками управления файлом (FCB). В то время подавляющее большинство компьютеров работало под управлением операционной системы CPM. Блоки FCB обеспечивали совместимость файлов MS-DOS с файлами этой системы. При разработке MS-DOS версий 2.Х, когда была предложена иерархическая структура организации файлов, была разработана вторая технология их обслуживания. Она основана на использовании ссылок на управляющую запись файла и не требует организации FCB. После того, как эта технология была опробована на операционной системе UNIX, она получила широкое распространение.).

+5Ch: 16 байт – первый FCB, заполняемый из первого аргумента командной строки.

+6Ch: 16 байт – второй FCB, заполняемый из второго аргумента командной строки.

+7Ch: 4 байта – не используется в DOS.

+80h: 128 байт – командная строка и область DTA по умолчанию.

Затем DOS записывает программу в память, начиная с адреса PSP:0100h.

Если загружается ЕХЕ-программа, использующая дальние процедуры или сегменты данных, DOS модифицирует эти команды так, чтобы используемые в них сегментные адреса соответствовали сегментным адресам, которые получили эти процедуры и сегменты данных при загрузке программы в память.

При запуске СОМ-программы регистры устанавливаются следующим образом:

AL = FFh, если первый параметр командной строки содержит неправильное имя диска (например, z:/something), иначе – 00h.

АН = FFh, если второй параметр содержит неправильное имя диска, иначе 00h.

CS = DS = ES = SS = сегментный адрес PSP.

SP = адрес последнего слова в сегменте (обычно FFFEh; меньше, если не хватает памяти).

При запуске ЕХЕ-программы регистры SS:SP устанавливаются в соответствии с сегментом стека, определенным в программе, затем в любом случае в стек помещается слово 0000h и выполняется переход на начало программы (PSP:0100h для СОМ, собственная точка входа для ЕХЕ).

Все эти действия выполняет одна функция DOS – DOS 4Bh – загрузить и выполнить программу. В качестве параметров этой функции передаются:

AL = 00h – загрузить и выполнить;

AL = 01h – загрузить и не выполнять;

DS:DX – адрес ASCIZ-строки с полным именем программы
ES:BX – адрес блока параметров ЕРВ:

+00h: слово – сегментный адрес окружения, которое будет скопировано для нового процесса (или 0, если используется текущее окружение)
+02h: 4 байта – адрес командной строки для нового процесса
+06h: 4 байта – адрес первого FCB для нового процесса
+0Ah: 4 байта – адрес второго FCB для нового процесса
+0Eh: 4 байта – здесь будет записан SS:SP нового процесса после его завершения (только для AL = 01)
+12h: 4 байта – здесь будет записан CS:IP (точка входа) нового процесса после его завершения (только для AL = 01)

AL = 03h – загрузить как оверлей;
DS:DX – адрес ASCIZ-строки с полным именем программы
ES:BX – адрес блока параметров:

+00h: слово – сегментный адрес для загрузки оверлея
+02h: слово – число, которое будет использовано в командах, использующих непосредственные сегментные адреса, – обычно то же самое число, что и в предыдущем поле. 0 для СОМ-файлов

AL = 05h – подготовиться к выполнению (используется в ОС MS DOS начиная с версии 5.0 и выше)
DS:DX – адрес следующей структуры:

+00h: слово – 00h
+02h: слово:

бит 0 – программа – ЕХЕ
бит 1 – программа – оверлей

+04h: 4 байта – адрес ASCIZ-строки с именем новой программы
+08h: слово – сегментный адрес PSP новой программы
+0Ah: 4 байта – точка входа новой программы
+0Eh: 4 байта – размер программы, включая PSP

CF = 0, если операция выполнена, ВХ и DX модифицируются,
CF = 1, если произошла ошибка, АХ = код ошибки (2 – файл не найден, 5 – доступ к файлу запрещен, 8 – не хватает памяти, 0Ah – неправильное окружение, 0Bh – неправильный формат).

Как уже отмечалось, прерывание INT 21h (сервис DOS) служит главным входом большинства функций DOS. Программа, запрашивающая сервис DOS, должна подготовить всю необходимую информацию в регистрах и управляющих блоках, указать в регистре AH номер желаемой функции DOS и затем вызвать прерывание INT 21H.

В таблице 1 приведены функции прерывания INT 21h.

Таблица 1 -Функции прерывания INT21h

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Только сон приблежает студента к концу лекции. А чужой храп его отдаляет. 8807 — | 7523 — или читать все.

MS-DOS

Операционные системы MS-DOS, Windows 95, Windows 98 и старое железо компьютера — установка, настройка, использование.

Основные команды MS-DOS . Часть 2.

Команды MS-DOS — минимальный список.

Команды MS-DOS легко запоминаются в случае, если вы владеете хорошо (на школьном уровне) английским языком. Чаще всего команда — это сокращенная фраза.

Эта чистая как снег команда format c: …

Рассмотрим минимальный список команд, которые нам могут понадобиться для работе в DOS. Мы их будем использовать для установки операционных систем на базе DOS или поиска и запуска установленного файлового менеджера.

Команды MS-DOS общесистемного назначения.

При запуске MS-DOS вы увидите приглашение работы в командной строке. По умолчанию оно будет обозначать корневой каталог диска с установленной операционкой. Допустим, операционная система установлена на диск C: , приглашение будет выглядеть:

C:\>

Сменить текущий диск можно набрав новое имя дисковода.

Примеры:
d: — устанавливает текущий диск D:\>
a: — устанавливает текущий диск A:\>

prompt

Изменить вид приглашения (prompt — англ. напоминание, подсказка).

Формат команды:
prompt [текст]

Специальные сочетания символов:
$p — текущий дисковод и каталог;
$n — текущий дисковод;
$d — текущая дата;
$t — текущее время;
$v — версия DOS;
$_ — переход на новую строку;
$s — пробел;
$g — символ «>»;
$h — удаление предыдущего символа.

Примеры:
prompt $p$g — устанавливает приглашение вида c:\mydir\doc>;
prompt $t$h$h$h$h$h$h$g — устанавливает приглашение вида 15:35>

Вывести на экран версию DOS (version — англ. версия).

Формат команды:
ver

Пример:
ver — на экран выводится версия используемой операционной системы. Например: MS-DOS Version 6.22

Команды MS-DOS для работы с каталогами.

Отобразить список файлов и подкаталогов для указанного каталога (directory — англ. директория, каталог)

Формат команды:
dir [дисковод:][путь\][имя-файла] [параметры]

Параметры:
/p — поэкранный вывод;
/w — вывод в широком формате;
/s — оглавление указанного в команде каталога и всех его подкаталогов;
/b — только имена файлов без заголовочных и итоговых сведений;

Сортировки:
/on — по имени;
/oe — по расширению;
/od — по времени;
/og — сначала выводить сведения о подкаталогах;

Примеры:
dir — оглавление текущего каталога
dir *.exe — сведения обо всех файлах .exe текущего каталога

Вывод оглавления в файл или на принтер:
dir > prn — вывести оглавление текущего каталога на принтер;
dir c:\*.txt > txtfiles.txt — создать в файле txtfiles.txt список всех файлов с расширением .txt, находящихся в корневом каталоге диска c:

Изменить текущую рабочую директорию (change directory — англ. изменить каталог, директорию).

Формат команды:
cd [дисковод:][путь]

Примеры:
cd \ — переход в корневой каталог текущего диска;
cd \exe — переход в каталог exe в корневом каталоге;
cd .. — переход в наддиректорию;
cd — сообщает текущий диск и каталог

Создать директорию (make directory — англ. создать каталог, директорию).

Формат команды:
md [дисковод:][путь\]имя-каталога

Примеры:
md abc — создать каталог abc в текущем каталоге;
md c:\users\my — создать каталог my в каталоге users в корневом каталоге диска c:

Переместить файлы в другой каталог. Переименовать директорию (move — англ. переместить).

Формат команды:
move [/y] имя-файла имя-каталога
move [/y] имя-файла [дисковод:][путь]новое-имя-файла

С параметром /y при существовании в каталоге-приемнике файлов с теми же именами, что и пересылаемые, выполняется замещение этих файлов без запроса. Задание нового имени возможно только при пересылке одного файла. Например, команда move *.bac a:\*.old ошибочна.

Примеры:
move *.doc d:\ — переместить файлы с расширением doc из текущего каталога в корневой каталог диска d:;
move f1.txt tmp\f2.txt — переместить файл f1.txt в каталог tmp с переименованием в f2.txt.

Формат команды:
move [дисковод:][путь\]имя-каталога новое-имя-каталога

Примеры:
move a:\temp tmp — переименовать каталог temp корневого каталога диска а: в tmp.

deltree

Удалить каталог со всем содержимым (delete tree — англ. удалить дерево (файлов или директорий)).

Формат команды:
deltree [/y] имя-файла-или-каталога

Команда deltree может удалять как каталоги, так и файлы. В имени файла-или-каталога можно использовать символы * и ?.

Примеры:
deltree temp — удалить каталог или файл с именем temp из текущего каталога;
deltree /y d* — удалить из текущего каталога все каталоги и файлы, имя которых начинается на d, не запрашивая подтверждение.

Команды MS-DOS для работы с файлами.

Вывести (напечатать) содержимое файла на экран (type — англ. напечатать).

Формат команды:
type имя-файла

Примеры:
type t1.doc — вывод на экран файла type t1.doc из текущего каталога.

copy con

Создать текстовый файл (copy console- англ. скопировать консоль (то, что набираем клавиатурой на экране) в файл).

Формат команды:
copy con имя-файла

Ctrl+Z, F6 — признак конца файла.
Enter — признак конца строки.

Примеры:
copy con work.txt — создать в текущем каталоге текстовый файл work.txt.

Копировать файл (copy — англ. скопировать).

Формат команды:
copy имя-файла1 имя-файла2
copy имя файла1 [имя-каталога2]

В именах файлов можно употреблять символы * и ?, а также указывать имя диска и путь.
Команда copy не копирует скрытые файлы и файлы нулевой длины.
Если файл с таким же именем, как у копии, создаваемой командой уже существует, то он замещается.

Примеры:
copy x.txt z.txt — скопировать файл x.txt в текущий каталог с именем z.txt;
copy a:\*.* — cкопировать все файлы из корневого каталога диска а: в текущий каталог текущего диска;
copy \text\*.txt a:*.doc — скопировать из подкаталога text текущего каталога все файлы с расширением txt в текущий каталог диска а:. Файлы получат расширения doc.

Использование устройств:
copy t1.txt prn — копирование файла t1.txt на принтер;
copy t1.txt con — копирование файла t1.txt на экран монитора

Удалить файл (delete- англ. удалить).

Формат команды:
del имя-файла

Примеры:
del *.txt — удалить все файлы с расширением .txt из текущего каталога;
del name.doc — удалить из текущего каталога файл с именем name.doc

Переименовать файл (rename- англ. переименовать).

Формат команды:
ren имя-файла1 имя-файла2

В параметре имя-файла1 можно указывать дисковод и путь, в имя-файла2 — нет.
Команда ren не обрабатывает скрытые файлы.

Примеры:
ren xxx.doc xxx.txt — переименовать файл xxx.doc текущего каталога в xxx.txt;
ren a:*.txt *.doc — переименовать все файлы текущего каталога на диске а: с расширением .txt в файлы с такими же именами и расширениями .doс

Команды MS-DOS для работы с дисками.

format

Форматировать диск (format— англ. форматировать).

Формат команды:
format дисковод: [параметры]

Параметры:
/s — создать системный диск;
/v:метка — задание метки диска;
/u — безусловное форматирование с уничтожением имеющихся данных;
/q — быстрая очистка без контроля наличия сбойных участков.

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

Примеры:
format a: /u — безусловное форматирование дискеты а:;
format a: /q — очистка дискеты;
format a: /s — форматировать дискету и сделать ее системной.

Перенести на диск системные файлы DOS (system- англ. система).

Формат команды:
sys [путь] диск:

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

Примеры:
sys a: — перенести на диск а: системные файлы из корневого каталога текущего диска.

fdisk

Сконфигурировать жесткий диск для использования DOS. Работает в интерактивном режиме. (disk— англ. диск). Работает в интерактивном режиме (вопрос-ответ).

  • создание основного раздела MS-DOS;
  • создание расширенного раздела MS-DOS;
  • установка активного раздела;
  • удаление раздела;
  • вывод данных раздела;
  • выбор следующего жесткого диска для создания разделов (если система имеет несколько жестких дисков).

Формат команды:
fdisk [параметры]

Параметры:
/? или /H — вывести справочный текст.
/d — позволяет удалять разделы, отличные от DOS. Его следует использовать с осторожностью.
/ststus — вывести обзорную информацию о разделах жесткого диска (дисков) вашего компьютера. Если /ststus не обеспечивает достаточно подробной информации о диске, то запустите программу fdisk без параметра /ststus и выберите пункт 4.

Примеры:
fdisk — начать работу с дисками в интерактивном режиме.

label

Задать метку диска, тома (label— англ. метка, этикетка).

Формат команды:
label дисковод:

Метка — обозначение длиной до 11 символов.
Недопустимые символы: * ? / \ | . , ; : + = [ ] ( ) & ^ » .
Чтобы узнать метку диска, можно использовать команду vol. (vol дисковод:)

Примеры:
label a: — сообщить меткe диска а:.

В третьей части цикла статей об основных командах MS-DOS мы рассмотрим применение наших знаний на практике при установке операционной системы на старое железо.

Комментировать Отменить

Для отправки комментария вам необходимо авторизоваться.

Краткое руководство пользователя Microsoft MS-DOS 6.22

© Microsoft. Разрешается исправлять опечатки и добавлять примечания, остальные действия запрещены.

Содержание

ДОБРО ПОЖАЛОВАТЬ

Добро пожаловать в операционную систему Microsoft® MS-DOS®. MS-DOS 6.22 содержит много новых возможностей, которые описаны ниже в данном документе. Если на Вашем компьютере еще не установлена MS-DOS 6.22, то для получения информации об использовании программы установки изучите главу «Приступая к работе».

О документации MS-DOS

Документация MS-DOS 6.22 состоит из книги Microsoft MS-DOS 6.22 Краткое руководство пользователя, справочной системы MS-DOS и нескольких других документов, хранящихся в виде файлов.

Это руководство включает в себя как информацию для неопытных пользователей, так и некоторые дополнительные разделы для тех, кто уже знаком с системой MS-DOS. Справочная система MS-DOS предоставляет пользователю обширную информацию о командах MS-DOS: как вводить команды, как задавать параметры и переключатели, а также замечания по использованию команд и примеры.

После установки системы MS-DOS 6.22 на компьютере можно получить оглавление справочной системы MS-DOS, введя в командной строке help и нажав клавишу ENTER. Можно также получить сведения о конкретной команде, набрав в командной строке help и затем имя этой команды.

При установке MS-DOS 6.22 программа Setup копирует на жесткий диск несколько текстовых файлов, содержащих информацию недоступную на момент издания данного руководства. Рекомендуется прочитать и распечатать эти файлы с помощью любого текстового редактора.

В каталоге, содержащем файлы MS-DOS, находятся следующие информационные файлы: README.TXT, описывающий детали взаимодействия системы с различной аппаратурой и программным обеспечением, и файл NETWORKS.TXT с информацией о том, как обеспечить совместимость системы MS-DOS 6.22 с программами поддержки сетей.

Новые возможности MS-DOS 6.22

Если у Вас имеется опыт работы с предыдущими версиями MS-DOS, то в MS-DOS 6.22 Вы обнаружите много новых и усовершенствованных возможностей, некоторые из которых перечислены ниже:

  • Microsoft DriveSpace — интегрированное средство сжатия данных на дисках, которое увеличивает свободное дисковое пространство посредством упаковки файлов. Для получения более подробной информации см. приложение «Увеличение свободного дискового пространства».
  • ScanDisk — новая утилита проверки, диагностики и восстановления данных на жестком диске как при физических ошибках диска, так и системных сбоях (перекрестные связи и потерянные кластеры). ScanDisk создает протокол работы на диске и позволяет отменить все внесенные изменения. Для получения более подробной информации наберите в командной строке help scandisk, а затем нажмите клавишу ENTER.
  • Microsoft MemMaker — утилита оптимизации использования оперативной памяти, размещающая резидентные программы и драйверы устройств в области старшей памяти на компьютерах с процессором 80386 или выше. Для получения более подробной информации см. главу «Увеличение объема доступной памяти».
  • Улучшенный драйвер EMM386, обеспечивающий доступ к большему количеству блоков старшей памяти и использующий дополнительную память для эмуляции расширенной памяти. Для получения более подробной информации см. главу «Увеличение объема доступной памяти».
  • Улучшенная команда mem, предоставляющая больше информации об использовании памяти компьютера и о программах, загруженных в память. Для получения более подробной информации наберите в командной строке help mem, а затем нажмите клавишу ENTER.
  • Улучшенные команды loadhigh и devicehigh, которые позволяют указать область памяти, в которую следует загружать программу. Для получения более подробной информации наберите в командной строке help loadhigh или help devicehigh, а затем нажмите клавишу ENTER.
  • Microsoft Backup — программа, осуществляющая резервное копирование данных. Для получения более подробной информации см. главу «Управление системой».
  • Microsoft Anti-Virus — программа способная идентифицировать и уничтожить более 800 различных компьютерных вирусов. Для получения более подробной информации см. главу «Управление системой».
  • Microsoft Undelete — программа, позволяющая надежно восстановить ошибочно удаленный файл и имеющая три уровня защиты от уничтожения файлов. Для получения более подробной информации см. главу «Управление системой».
  • Возможность задать в файле CONFIG.SYS несколько вариантов конфигурации системы. Для получения более подробной информации см. главу «Настройка системы».
  • Возможность обхода выполнения команд в файлах AUTOEXEC.BAT и CONFIG.SYS при загрузке компьютера. Для получения более подробной информации см. главу «Настройка системы».
  • Microsoft Defragmenter — программа оптимизации размещения файлов на жестком диске. Для получения более подробной информации см. главу «Управление системой».
  • MS-DOS Help — оперативная справка по командам MS-DOS. Для получения более подробной информации см. главу «Основы MS-DOS».
  • Улучшенная программа SMARTDrive. MS-DOS не отображает командную строку до тех пор, пока SMARTDrive не запишет все данные на жесткий диск. Это сделано для того, чтобы удержать пользователя от выключения компьютера до того, как все находящиеся в памяти данные сохранены на диске. Если до SMARTDrive загружен также драйвер MSCDEX, SMARTDrive может также кэшировать CD-диски. Для получения более подробной информации см. главу «Управление системой» или наберите в командной строке help smartdrv, а затем нажмите клавишу ENTER.
  • Улучшенный диспетчер верхней памяти HIMEM, который выполняет ее тестирование в момент включения компьютера. Для получения более подробной информации наберите в командной строке MS-DOS help himem, а затем нажмите клавишу ENTER.
  • Microsoft Diagnostics (MSD) — программа, предоставляющая детальную техническую информацию о Вашем компьютере. Для получения более подробной информации наберите в командной строке MS-DOS help msd, а затем нажмите клавишу ENTER.
  • Interlnk — программа, позволяющая пересылать файлы между двумя компьютерами. Для получения более подробной информации см. главу «Средства для переносных компьютеров типа laptop».
  • Power — программа, позволяющая экономить энергию элементов питания переносных копьютеров в состоянии ожидания. Для получения более подробной информации см. главу «Средства для переносных компьютеров типа laptop».
  • Команда move, перемещающая один или несколько файлов из одного каталога в другой. Для получения более подробной информации наберите в командной строке help move, а затем нажмите клавишу ENTER.
  • Улучшенные команды move, сору и хсору, которые запрашивают, следует ли заменять при копировании файлы с совпадающими именами (при запуске из командного файла, однако, подтверждение не запрашивается). Для получения более подробной информации наберите в командной строке help move, help сору или help хсору, a затем нажмите клавишу ENTER.
  • Улучшенная команда diskcopy, которая использует жесткий диск как внутреннюю область для хранения данных, в результате чегол копирование дискет становится значительно более быстрым и удобным. Для получения более подробной информации наберите в командной строке help diskcopy, а затем нажмите клавишу ENTER.
  • Улучшенные команды dir, mem и format, которые теперь при выводе чисел больших 999 отображают разделители разрядов. Для получения более подробной информации наберите в командной строке help dir, help mem или help format, а затем нажмите клавишу ENTER.
  • Команда choice, запрашивающая ответ пользователя при выполнении командных файлов. Для получения более подробной информации наберите в командной строке help choice, а затем нажмите клавишу ENTER.
  • Команда deltree, удаляющая каталог со всеми его файлами и подкаталогами. Для получения более подробной информации наберите в командной строке help deltree, а затем нажмите клавишу ENTER.
  • При запуске компьютера отображается теперь меньше служебных сообщений.

Соглашения

В данном руководстве приняты некоторые соглашения, которые должны помочь Вам лучше ориентироваться в излагаемом материале.

Соглашения об обозначениях

Чтобы облегчить поиск и интерпретацию информации, в данном руководстве приняты следующие типографские соглашения:

Номер функции Название Входные данные Выходные данные Описание
Функции ввода/вывода данных
01H Ввод с клавиатуры AH = 01H AL = символ, полученный из стандартного ввода Считывает (ожидает) символ со стандартного входного устройства. Отображает этот символ на стандартное выходное устройство (эхо). При распознавании Ctrl-Break выполняется INT 23H. Замечание: Ввод расширенных клавиш ASCII (F1-F12, pgup, курсор и т.п.) требует двух обращений к этой функции. Первый вызов возвращает AL=0. Второй вызов возвращает в AL расширенный код ASCII.
02H Вывод на дисплей AH = 02H DL = символ, выводимый на стандартный вывод Посылает символ из DL на стандартный вывод. Обрабатывает символ Backspace (ASCII 8), перемещая курсор влево на одну позицию и оставляя его в новой позиции. При обнаружении Ctrl-Break выполняется INT 23H.
03H Вспомогательный ввод AH = 03H AL = символ, полученный со стандартного вспомогательного устр-ва Считывает (ожидает) символ со стандартного вспомогательного устройства, COM1 или AUX и возвращает этот символ в AL. Замечание: Ввод не буферизуется и должен опрашиваться (не управляется прерываниями). При запуске DOS порт AUX (COM1) инициализируется так: 2400 бод, без проверки на четность, 1 стоп-бит, 8-битовые слова. Команда DOS MODE используется для установки иных характеристик.
04H Вспомогательный вывод AH = 04H DL = символ, записываемый на стандартное вспомогательное устр-во Посылает символ в DL на стандартное вспомогательное устройство, COM1 или AUX.
05H Вывод на принтер AH = 05H DL = символ, записываемый на стандартный принтер Посылает символ в DL на стандартное устройство принтера, обычно LPT1. Замечание: Команда DOS «MODE» может перенаправить этот вывод в последовательный порт.
06H Консольн. ввод-вывод AH = 06H DL = символ (от 0 до 0feh), посылаемый на стандартный вывод DL = 0ffh запрос ввода со стандартного ввода ZF = Сброшен (NZ), если символ готов при запросе ввода При DL = 0ffh выполняет ввод с консоли «без ожидания», возвращая взведенный флаг нуля (ZF), если на консоли нет готового символа. Если символ готов, сбрасывает флаг ZF (NZ) и возвращает считанный символ в AL. Если DL не равен 0ffh, то DL направляется на стандартный вывод. Замечание: Не проверяет Ctrl-Break. Вызывайте дважды для расширенного ASCII.
07H Нефильтрующий консольный ввод без эха AH = 07H AL = символ, полученный через стандартный ввод Считывает (ожидает) символ со стандартного входного устройства и возвращает этот символ в AL. Не фильтрует: Не проверяет на Ctrl-Break, backspace и т.п. Замечания Вызывайте дважды для ввода расширенного символа ASCII. Используйте функцию 0bh для проверки статуса (если не хотите ожидать нажатия клавиши).
08H Консольный ввод без эха AH = 08H AL = символ, полученный через стандартный ввод Считывает (ожидает) символ со стандартного входного устройства и возвращает этот символ в AL. При обнаружении Ctrl-Break выполняется прерывание INT 23H. Замечание: Вызывайте дважды для ввода расширенного символа ASCII.
09H Выдать строку на дисплей AH = 09H DS:DX = адрес строки, заканчивающейся символом ‘$’ (ASCII 24H) Строка, исключая завершающий ее символ ‘$’, посылается на стандартный вывод. Символы Backspace обрабатываются как в функции 02H Display Char. Обычно, чтобы перейти на новую строку, включают в текст пару CR/LF (ASCII 0dh и ASCII 0ah). Строки, содержащие ‘$’, можно выдать через 40H Write Handle (BX=0).
0ah Ввод строки в буфер AH = 0ah DS:DX = адрес входного буфера (смотри ниже) Буфер содержит ввод, заканчивающийся символом CR (ASCII 0dh) При входе буфер по адресу DS:DX должен быть оформлен так:
Max * * * *

Где max – максимальная допустимая длина ввода (от 1 до 254)

При выходе буфер заполнен следующим образом:

Max Len T E X T 0dh

Где len– действительная длина данных без завершающего CR (здесь — 04H). Символы считываются со стандартного ввода вплоть до CR (ASCII 0dh) или до достижения длины MAX-1. Если достигнут MAX-1, включается консольный звонок для каждого очередного символа, пока не будет введен возврат каретки CR (нажатие Enter).

Второй байт буфера заполняется действительной длиной введенной строки, не считая завершающего CR. Последний символ в буфере — всегда CR (который не засчитан в байте длины). Символы в буфере (включая LEN) в момент вызова используются как «шаблон». В процессе ввода действительны обычные клавиши редактирования: Esc выдает «\» и начинает с начала, F3 выдает буфер до конца шаблона, F5 выдает «@» и сохраняет текущую строку как шаблон, и т.д. Большинство расширенных кодов ASCII игнорируются. При распознавании Ctrl-Break выполняется прерывание INT 23H (буфер остается неизменным).

0bh Проверить статус ввода AH = 0bh AL = 0ffh, если символ доступен со стандартного ввода Проверяет состояние стандартного ввода. При распознавании Ctrl-Break выполняется INT 23H. Замечание: используйте перед функциями 01H 07H и 08H, чтобы избежать ожидания нажатия клавиши. Эта функция дает простой неразрушающий способ проверки Ctrl-Break в процессе длинных вычислений или другой обработки, обычно не требующей ввода. Это позволяет вам снимать счет по нажатию Ctrl-Break.
0ch Ввод с очисткой AH = 0ch AL = номер функции ввода DOS (01H, 06H, 07H, 08H или 0ah) Очищает буфер опережающего ввода стандартного ввода, а затем вызывает функцию ввода, указанную в AL. Это заставляет систему ожидать ввод очередного символа. Следующие значения допустимы в AL: 01H ввод с клавиатуры 06H ввод с консоли 07H Нефильтрующий без эха 08H ввод без эха 0ah буферизованный ввод
Операции с файлами
3ch Создать файл через описатель (дескриптор) AH = 3ch DS:DX = адрес строки ASCIIZ с именем файла CX = атрибут файла AX = код ошибки если CF установлен и описатель файла если ошибки нет DS:DX указывает на строку ASCIIZ в формате: «d:\путь\имяфайла»,0. Если диск и/или путь опущены, они принимаются по умолчанию. Файл создается в указанном (или умалчиваемом) оглавлении Файл открывается в режиме доступа чтение/запись Вы должны сохранить описатель (дескриптор, handle) для последующих операций. Если файл уже существует: При открытии файл усекается до нулевой длины Если атрибут файла — только чтение, открытие отвергается (атрибут можно изменить функцией 43H изменить атрибут) CONFIG.SYS специфицирует число доступных описателей в системе Используйте функцию 5bh создать Новый файл, если вы не хотите перекрывать (усекать) существующий файл.
3dh Открыть описатель файла AH = 3dh DS:DX = адрес строки ASCIIZ с именем файла AL = режим открытия AX = код ошибки если CF установлен и описатель файла если нет ошибки. DS:DX указывает на строку ASCIIZ в формате: «d:\путь\имяфайла»,0. Если диск и/или путь опущены, они принимаются по умолчанию. Файл должен существовать. См. Функцию 3ch (создать файл). Файл открывается в выбранном режиме доступа / режиме открытия для совместимости с DOS 2.x и избежания сетевых режимов, задавайте: AL = 0 чтобы открыть для чтения AL = 1 чтобы открыть для записи AL = 2 чтобы открыть для чтения и записи Указатель чтения/записи устанавливается в 0. См. 42H (LSEEK) Вы должны сохранить описатель (handle) для последующих операций Разделение файлов должно быть активизировано (команда DOS SHARE), если запрашивается открытие в одном из режимов разделения. CONFIG.SYS специфицирует число доступных описателей файлов.
3eh Закрыть описатель файла AH = 3eh BX = описатель файла AX = код ошибки если CF установлен BX содержит описатель файла (handle), возвращенный при открытии. Файл, представленный этим описателем, закрывается, его буфера сбрасываются, и оглавление обновляется корректными размером, временем и датой. Из-за нехватки описателей файлов (максимум 20, по умолчанию 8), вам может понадобиться закрыть часть умалчиваемых описателей, как, например, описатель 3 (стандартный AUX).
3fh Читать файл через описатель AH = 3fh BX = описатель файла DS:DX = адрес буфера для чтения данных CX = число считываемых байт AX = код ошибки если CF установлен или число действительно прочитанных байт CX байт данных считываются из файла или устройства с описателем, указанным в BX. Данные читаются с текущей позиции указателя чтения/записи файла и помещаются в буфер вызывающей программы, адресуемый через DS:DX. Используйте функцию 42H LSEEK, чтобы установить указатель файла, если необходимо (OPEN сбрасывает указатель в 0). Модифицирует указатель чтения/записи файла, подготавливая его к последующим операциям чтения или записи. Вы должны всегда сравнивать возвращаемое значение AX (число прочитанных байт) с CX (запрошенное число байт): Если AX = CX, (и CF сброшен) — чтение было корректным без ошибок Если AX = 0, достигнут конец файла (EOF) Если AX При чтении с устройства — входная строка имеет длину AX байт При чтении из файла — в процессе чтения достигнут EOF Замечания: Эта функция превосходит сложные и неудобные FCB-функции. Она эффективно сочетает произвольный и последовательный доступ, позволяя пользователю выполнять свое собственное блокирование. Удобно использовать эту функцию для чтения стандартных описателей, таких как описатели стандартного в/в, взамен многочисленных буферизующих и посимвольных FCB-функций ввода. Когда вы читаете с устройства, AX возвращает длину считанной строки с учетом завершающего возврата каретки CR (ASCII 0dh).
40H Писать в файл через описатель AH = 40H BX = описатель файла DS:DX = адрес буфера, содержащего записываемые данные CX = число записываемых байт AX = код ошибки если CF установлен AL = число реально считанных байт (лучший тест для ошибок) CX байт данных записывается в файл или на устройство с описателем, заданным в BX. Данные берутся из буфера, адресуемого через DS:DX. Данные записываются, начиная с текущей позиции указателя чтения/записи файла. Используйте функцию 42H LSEEK, чтобы установить указатель файла, если необходимо (OPEN сбрасывает указатель в 0). Обновляет указатель чтения/записи файла, чтобы подготовиться к последующим операциям последовательного чтения или записи. Вы должны всегда сравнивать возвращаемое значение AX (число записанных байт) с CX (запрошенное число байт для записи). Если AX = CX, запись была успешной Если AX Замечание: Эта функция превосходит сложные и неудобные FCB-функции. Она эффективно сочетает произвольный и последовательный доступ, позволяя пользователю осуществлять собственное блокирование. Удобно использовать эту функцию для вывода на умалчиваемые устройства, такие как стандартный вывод, взамен использования различных функций вывода текста.
42H Установить указатель файла – LSEEK AH = 42H BX = описатель файла CX:DX = на сколько передвинуть указатель: (CX 65536) + DX AL = 0 переместить к началу файла + CX:DX AL = 1 переместить к текущей позиции + CX:DX AL = 2 переместить к концу файла + CX:DX AX = код ошибки если CF установлен DX:AX = новая позиция указателя файла (если нет ошибки) Перемещает логический указатель чтения/записи к нужному адресу. Очередная операция чтения или записи начнется с этого адреса. Замечание: Вызов с AL=2, CX=0, DX=0 возвращает длину файла в DX:AX. DX здесь старшее значащее слово: действительная длина (DX 65536) + AX.
Операции с файловой системой
0dh Сброс диска AH = 0dh Сбрасывает (пишет на диск) все файловые буфера. Если размер файла изменился, такой файл должен быть предварительно закрыт (при помощи функций 10H или 3eh).
0eh Установить текущий диск DOS AH = 0eh DL = номер диска (0=A, 1=B и т.д.), который становится текущим AL = общее число дисководов в системе Диск, указанный в DL, становится текущим (умалчиваемым) в DOS. Проверка: используйте функцию 19H «дать текущий» для проверки. В регистре AL возвращается число дисководов всех типов, включая твердые диски и «логические» диски (как B: в 1-floppy системе).
19H Дать текущий диск DOS AH = 19H AL = номер текущего умалчиваемого диска (0=A, 1=B, и т.д.) Возвращает номер дисковода текущего умалчиваемого диска DOS.
1bh Дать информацию FAT (текущий диск) AH = 1bh DS:BX = адрес байта FAT > Возвращает информацию о размере и типе умалчиваемого диска. Размер диска в байтах = (DX*AL*CX). Ищите свободную память функциями 36h Disk Free или 32h Disk Info. Версии: DOS 1.x держит FAT в памяти и возвращает DS:BX => FAT. DOS 2.0+ может держать в памяти лишь порцию всей FAT. Предупреждение: Эта функция изменяет содержимое регистра DS.
1ch Дать информацию FAT (любой диск) AH = 1ch DL = номер диска (0=текущий, 1=A, и т.д.) DS:BX = адрес байта FAT > Аналогична функции 1bh Get FAT Cur, с той разницей, что регистр DL указывает диск, для которого вы хотите получить информацию. Версии: Недоступна для DOS 1.x.
32H Дать информацию DOS о диске AH = 32H DL = номер диска (0=текущий, 1=A, и т.д.) AL = 0 если DL задавал корректный диск FF = 0ffh если диск задан неверно DS:BX = адрес блока информации диска для запрошенного устройства Возвращает блок информации, представляющей интерес для приложений и утилит, выполняющих доступ к диску, поддерживаемый драйверами устройств, на уровне секторов. Некоторые дисководы (особенно незагружаемые) функционируют исключительно через свои драйверы устройств. Такие диски могут содержать неверную информацию в корневой записи и таблице разделов, что делает очень трудным определение, например, размера корневого оглавления, числа таблиц FAT, и т.п. Блок информации диска содержит все данные такого рода в хорошо форматированной структуре. Это может быть единственным способом определить адрес драйвера устройства. Предупреждение: Изменяет сегментный регистр DS. Эта недокументированная функция может измениться в будущих версиях.
36H Дать свободную память диска AH = 36H DL = номер диска (0=текущий, 1=A, и т.д.) AX = 0ffffh, если AL содержал неверный номер диска или число секторов на кластер, если нет ошибок. BX = доступных кластеров. CX = байт на сектор. DX = всего кластеров на диске. Возвращает данные для подсчета общей и доступной дисковой памяти. Если в AX возвращено 0ffffh, значит, вы задали неверный диск. Иначе, свободная память в байтах = (AX*BX*CX) всего памяти в байтах = (AX*CX*DX)
39H Создать новое оглавление — MKDIR AH = 39H DS:DX = адрес строки ASCIIZ с именем оглавления AX = код ошибки если CF установлен DS:DX указывает на строку ASCIIZ в формате: «d:\путь\имяоглавл»,0 если диск и/или корневой путь опущены, то принимаются по умолчанию. Подоглавление создается и связывается с существующим деревом. Если флаг CF установлен при возврате, то AX содержит код ошибки, и оглавление не создается.
3ah Удалить оглавление – RMDIR AH = 3ah DS:DX = адрес строки ASCIIZ с именем оглавления AX = код ошибки если CF установлен DS:DX указывает на строку ASCIIZ в формате: «d:\путь\имяоглавл»,0. Если диск и/или корневой путь опущены, то принимаются по умолчанию. Подоглавление удаляется из структуры оглавления. Если флаг CF установлен при возврате, то AX содержит код ошибки, и оглавление не удаляется. Замечание: Оглавление не должно содержать файлов и подоглавлений и не должно быть связано возможными ограничениями DOS (например, не должно быть задействовано в активных командах JOIN или SUBST).
3bh Установить умалчиваемое оглавление DOS – CHDIR AH = 3bh DS:DX = адрес строки ASCIIZ с именем оглавления AX = код ошибки если CF установлен DS:DX указывает на строку ASCIIZ в формате: «d:\путь\имяоглавл»,0. Если диск и/или корневой путь опущены, то принимаются по умолчанию. Указанное подоглавление для указанного диска становится текущим (умалчиваемым) оглавлением DOS для этого (или текущего) диска. Если флаг CF установлен при возврате, то AX содержит код ошибки, и текущее оглавление для выбранного диска не изменяется.
41H Удалить файл AH = 41H DS:DX = адрес строки ASCIIZ с именем файла AX = код ошибки если CF установлен DS:DX указывает на строку ASCIIZ в формате: «d:\путь\имяфайла»,0. Если диск и/или путь опущены, они принимаются по умолчанию. Имя файла не может содержать обобщенные символы (‘?’ и ‘*’). Файл удаляется из заданного оглавления заданного диска. Если файл имеет атрибут только чтение, то перед удалением необходимо изменить этот атрибут через функцию 43H CHMOD.
43H Установить/опросить атрибут файла – CHMOD AH = 43H DS:DX = адрес строки ASCIIZ с именем файла AL — код подфункции: = 0 — извлечь текущий атрибут файла AL = 1 — установить атрибут файла CX = новый атрибут файла (для подфункции 01H) AX = код ошибки если CF установлен CX = текущий атрибут файла (для подфункции 00H) DS:DX указывает на строку ASCIIZ в формате: «d:\путь\имяфайла»,0. Если диск и/или путь опущены, они принимаются по умолчанию. Атрибут файла извлекается или устанавливается, согласно коду в AL. Замечание: Чтобы спрятать оглавление, используйте CX=02H (а не 12H, как вы, возможно, ожидали, см. описание файловой системы FAT, аттрибуты файлов).
45H Дублировать описатель файла – DUP AH = 45H BX = существующий описатель файла AX = новый описатель файла, дублирующий оригинал или код ошибки если CF установлен. Создает дополнительный описатель файла, ссылающийся на тот же поток в/в, что и существующий описатель. Любое продвижение указателя чтения/записи для одного описателя действует на его дубликат — включая любые операции чтения, записи или перемещения указателя посредством функции 42H LSEEK. Новый описатель наследует ограничения режима открытия оригинала. Эта функция используется с одной главной целью: вы можете закрыть описатель, заставляя DOS записать файловые буфера. Такой способ DUP/CLOSE — быстрее, чем закрытие и повторное открытие файла. Оставить комментарий – для сохранения файла без его закрытия – CTRL+S
46H Переназначить описатель – FORCDUP AH = 46H BX = целевой описатель файла (должен уже существовать) CX = исходный описатель файла (должен уже существовать) AX = код ошибки если CF установлен Заставляет описатель файла (handle) ссылаться на другой файл или устройство. Описатель в CX (источник) закрывается, если он открыт, а затем становится дубликатом описателя в BX (назначения). Иными словами, описатели в CX и BX будут ссылаться на один и тот же физический файл или устройство. Используется для переназначения стандартного в/в. Пример: Откроем файл «C:\STDOUT.TXT» через функцию 3dh Open File и получим описатель (например, 05). Установим BX=05, CX=01 и вызовем эту функцию. (замечание: описатель 01 — это предопределенный описатель «стандартного выходного устройства»). Теперь можно вызвать функцию 3eh Close File и закрыть handle 05. Можно обращаться к файлу STDOUT.TXT через описатель 01. Стало быть, дисковый файл «C:\STDOUT.TXT» будет отныне получать весь вывод, создаваемый всеми процессами (текущим и порожденными) через любую функцию символьного в/в DOS, так же как и любой вывод в описатель файла 01 через функцию DOS 40H. Когда вы выходите в COMMAND.COM, предопределенные описатели устанавливаются на обычные устройства (например, описатель 01 устанавливается на «CON»).
47H Дать умалчиваемое оглавление DOS AH = 47H DS:SI = адрес локального буфера для результирующего пути (64 байта) DL = номер диска (0=текущий, 1=A, и т.д.) AX = код ошибка если CF установлен В пользовательский буфер по адресу DS:SI помещается в форме ASCIIZ путь текущего умалчиваемого оглавления для диска, указанного в DL. Путь возвращается в формате: «путь\оглавление»,0. Не подставляется впереди буква диска, а сзади не подставляется символ «\». Например, если текущим является корневое оглавление, эта функция вернет вам пустую строку (DS:[SI] = 0).
4eh Найти 1-й совпадающий файл AH = 4fh DS:DX = адрес строки ASCIIZ с именем файла (допускаются ? И *) CX = атрибут файла для сравнения AX = код ошибки если CF установлен DTA = заполнена данными (если не было ошибки) DS:DX указывает на строку ASCIIZ в форме: «d:\путь\имяфайла»,0. Если диск и/или путь опущены, они подразумеваются по умолчанию. Обобщенные символы и ? Допускаются в имени файла и расширении. DOS находит имя первого файла в оглавлении, которое совпадает с заданным именем и атрибутом, и помещает найденное имя и другую информацию в DTA, как показано ниже: Замечания: Атрибут файла обычно используется во «включающем» поиске. Если вас интересуют как файлы, так и оглавления, установите бит атрибута 4 (т.е. Attr | 10H). См. Атрибут файла для полной информации. Типичная последовательность, используемая для поиска всех подходящих файлов: Используйте вызов 1ah, чтобы установить DTA на локальный буфер (или используйте умалчиваемую DTA в PSP по смещению 80H) Уст. CX=атрибут, DS:DX => ASCIIZ диск, путь, обобщенное имя Вызовите функцию 4eh (Найти 1-й) Если флаг CF указывает ошибку, вы закончили (нет совпадений) Уст. DS:DX => DTA (или на данные, которые вы скопировали из DTA после вызова функции 4eh) Повторять Обработать имя файла и данные по адресу DS:DX Вызвать функцию 4fh (Найти следующий) Пока CF=1 не покажет, что совпадений больше нет
4fh Найти следующий совпадающий файл AH = 4fh DS:DX = адрес данных, возвращенных предыдущей 4eh Найти 1-й файл AX = код ошибки если CF установлен DTA = заполнена данными DS:DX указывает на 2bh-байтовый буфер с информацией, возвращенной функцией 4eh Найти 1-й (либо DTA, либо буфер, скопированный из DTA). Используйте эту функцию после вызова 4eh. Следующее имя файла, совпадающее по обобщенному имени и атрибуту файла, копируется в буфер по адресу DS:DX вместе с другой информацией (см. Функцию 4eh о структуре файловой информации в буфере, заполняемом DOS).
56H Переименовать/переместить файл AH = 56H DS:DX = адрес старого ASCIIZ имени (путь/имя существующего файла) ES:DI = адрес нового ASCIIZ имени (новые путь/имя) AX = код ошибки если CF установлен DS:DX и ES:DI указывают на строки ASCIIZ: «d:\путь\имяфайла»,0. Старое имя DS:DX должно отвечать существующему файлу и не может содержать обобщенных символов. Диск и путь необязательны (если опущены, они принимаются по умолчанию). Новое имя ES:DI должно описывать НЕ существующий файл. Если указан диск, он должен быть тем же, что и в старом имени. Если диск или путь опущены, принимаются текущие умолчания. Если старое и новое имя содержат разные пути (явно или принятые по умолчанию), то элемент оглавления для файла ПЕРЕМЕЩАЕТСЯ в оглавление, указанное в новом имени. Замечание: Если ID диска в старом имени отличается от текущего диска DOS, не забывайте указывать такой же ID диска в новом имени.
57H Установить/опросить дату/время файла AH = 57H AL = 0 чтобы получить дату/время файла = 1 чтобы установить дату/время файла BX = описатель файла (handle) CX = (если AL=1) новая отметка времени в формате время/дата файла DX = (если AL=1) новая отметка даты в формате время/дата файла AX = код ошибки если CF установлен CX = отметка времени файла в формате время/дата файла DX = отметка даты файла в формате время/дата файла BX должен содержать описатель открытого файла (см. 3ch или 3dh ). Укажите подфункцию, 0 или 1, в регистре AL. DX и CX задаются в формате памяти; например, младшие 8 бит даты находятся в DH.
5ah Создать уникальный временный файл AH = 5ah DOS 3.0+ DS:DX = адрес строки ASCIIZ с диском и путем (заканчивается \) CX = атрибут файла AX = код ошибки если CF установлен и описатель файла (если нет ошибки) DS:DX = (не изменяется) становится полным ASCIIZ-именем нового файла Открывает (создает) файл с уникальным именем в оглавлении, указанном строкой ASCIIZ, на которую указывает DS:DX. COMMAND.COM использует эту функцию, когда создает временные «канальные» файлы, используемые при переназначении ввода-вывода. Описание пути должно быть готово к присоединению в его конец имени файла. Вы должны обеспечить минимум 12 байт в конце строки. Сама строка должна быть заполнена в одной из форм: «d:\путь\»,0 (указаны диск и путь) ИЛИ «d:»,0 (умалчиваемое оглавление диска) ИЛИ «d:\»,0 (корневое оглавление диска) ИЛИ «»,0 (умалчиваемые диск и оглавление) После возврата строка DS:DX будет дополнена именем файла. Замечания: DOS создает имя файла из шестнадцатеричных цифр, получаемых из текущих даты и времени. Если имя файла уже существует, DOS продолжает создавать новые имена, пока не получит уникальное имя. Создаваемые таким способом файлы — по существу НЕ ВРЕМЕННЫЕ, и их следует удалять посредством функции DOS 41H , когда они не нужны. Версии: Доступна, начиная с DOS 3.0
5bh Создать новый файл AH = 5bh DOS 3.0+ DS:DX = адрес строки ASCIIZ с именем файла CX = атрибут файла AX = код ошибки если CF установлен и описатель файла если ошибок нет DS:DX указывает на строку ASCIIZ в форме: «d:\путь\имяфайла»,0. Если диск и/или путь опущены, они принимаются по умолчанию. Этот вызов идентичен функции DOS 3ch CREATE, с тем исключением, что он вернет ошибку, если файл с заданным именем уже существует. Файл открывается для чтения/записи в совместимом режиме доступа
5ch Блокировать/разблокировать доступ к файлу AH = 5ch DOS 3.0+ AL = подфункция: 0 = заблокировать область файла = 1 = разблокировать ранее захваченную область BX = описатель файла (handle) CX:DX = смещение ((CX 65536) + DX) от начала файла SI:DI = длина блокируемой области ((SI 65536) + DI) байт AX = код ошибки если CF установлен Блокирует или освобождает доступ к участку файла, идентифицируемого описателем в BX. Область файла, начинающаяся по логическому смещению CX:DX и имеющая длину SI:DI, блокируется (захватывается) или разблокируется (освобождается). Смещение и длина обязательны. Разделение файлов ДОЛЖНО быть активизировано (командой SHARE), иначе функция вернет код ошибки «неверный номер функции.» Блокировка действует на операции чтения, записи и открытия со стороны порожденного или конкурирующего процесса. При попытке такого доступа (и режиме доступа , определенном при OPEN как «режим разделения», который запрещает такой доступ), DOS отвергает операцию через вызов INT 24H (обработчик критических ошибок) после трех попыток. DOS при этом выдает сообщение «Abort, Retry, Ignore». Рекомендуемое действие — НЕ пытаться читать файл и ожидать кода ошибки. Вместо этого попытайтесь заблокировать область и действуйте в соответствии с кодом возврата. Это позволяет избежать довольно неустойчивого состояния DOS, связанного с выполнением INT 24H. Блокировка за концом файла не является ошибкой. Вы можете захватить весь файл, задав CX=0, DX=0, SI=0ffffh, DI=0ffffh и AL=0. При освобождении, смещение и длина участка должны точно совпадать со смещением и длиной захваченного участка. Замечания: Дублирование описателя через 45H или 46H дублирует и блокировки. Даже если во время OPEN выбран режим доступа Inherit, механизм блокировки не даст никаких привилегий доступа порожденным процессам, созданным функцией 4bh EXEC (они трактуются как отдельные). Важно, чтобы все блокировки файла были сняты до завершения программы. Если вы используете блокировку, особо отслеживайте вызовы INT 23H (выход Ctrl-Break) и INT 24H (выход по критической ошибке), чтобы снять блокировки до действительного завершения программы. Рекомендуется освобождать блокировки как можно скорее. Всегда блокируйте, обрабатывайте файл и освобождайте блокировку одной операцией. Версии: Доступна, начиная с DOS 3.0
Операции с системой прерываний
25H Установить вектор прерывания AH = 25H AL = номер прерывания DS:DX = вектор прерывания: адрес программы обработки прерывания Устанавливает значение элемента таблицы векторов прерываний для прерывания с номером AL равным DS:DX. Это равносильно записи 4-байтового адреса в 0000:(AL*4), но, в отличие от прямой записи, DOS здесь знает, что вы делаете, и гарантирует, что в момент записи прерывания будут заблокированы. Предупреждение: Не забудьте восстановить DS (если необходимо) после этого вызова.
26H Построить PSP AH = 26H DX = адрес сегмента (параграфа) для нового PSP CS = сегмент PSP, используемого как шаблон для нового PSP Устанавливает PSP для порождаемого процесса по адресу DX:0000. Текущий PSP (100H байт, начиная с CS:0), копируется в DX:0 Поле memtop соответственно корректируется Векторы Terminate, Ctrl-Break и Critical Error копируются в PSP из векторов прерываний INT 22H, INT 23H и INT 24H после этого вы можете загрузить программу с диска и передать ей управление посредством FAR JMP. Замечание: Если вы перехватываете INT 21H, позаботьтесь о помещении в стек корректного CS:IP. Еще лучше использовать функцию 4ch (EXEC).
2ah Дать системную дату AH = 2ah AL = день недели (0=Вск, 1=Пнд. 6=Суб) DOS 3.0+ CX = год (1980 до 2099) DH = месяц (1 до 12) DL = день (1 до 31) Возвращает текущую дату, как она известна системе. Версии: DOS 2.x не гарантирует возврата в AL значения дня; все версии 1.0+ возвращают правильный день недели. Версии до 2.1 имеют проблемы с переходом даты.
2bh Установить системную дату AH = 2bh CX = год (1980 до 2099) DH = месяц (1 до 12) DL = день (1 до 31) AL = 0 если дата корректна Устанавливает системную дату DOS.
2ch Дать время DOS AH = 2ch CH = часы (0 до 23) CL = минуты (0 до 59) DH = секунды (0 до 59) DL = сотые доли секунды (0 до 99) Возвращает текущее время, как оно известно системе. Замечание: Поскольку системные часы имеют частоту 18.2 тиков в секунду (интервал 55мс), DL имеет точность 0.04 сек.
2dh Установить время DOS AH = 2dh CH = часы (0 до 23) CL = минуты (0 до 59) DH = секунды (0 до 59) DL = сотые доли секунды (0 до 99) AL = 0 если время корректно Устанавливает системное время DOS.
2eh Установить/сбросить переключатель верификации AH = 2eh AL = 0 отключить верификацию = 1 включить верификацию Устанавливает, должна ли DOS верифицировать (считывать обратно) каждый сектор, записываемый на диск. Это замедляет операции записи на диск, но гарантирует максимальную надежность записи. Функция 56H Get Verify возвращает текущий статус верификации DOS.
2fh Дать адрес текущей DTA AH = 2fh ES:BX = адрес начала текущей DTA Возвращает адрес начала области ввода-вывода (DTA). Поскольку DTA глобальна для всех процессов, в рекурсивной процедуре (например, при проходе по дереву оглавления) может потребоваться сохранить адрес DTA, а впоследствии восстановить его посредством функции 1ah «Уст. DTA». Замечание: Эта функция изменяет сегментный регистр ES.
30H Дать номер версии DOS AH = 30H AL = старший номер версии AH = младший номер версии BX,CX = 0000H DOS 3.0+ Возвращает в AX значение текущего номера версии DOS. Например, для DOS 3.2, в AL возвращается 3, в AH — 2. Замечание: Если в AL возвращается 0, можно предполагать, что работает DOS более ранней версии, чем DOS 2.0. Версии: DOS 2.x не гарантирует очистки регистров CX и BX.
31H Завершиться и остаться резидентным – KEEP AH = 31H AL = код выхода DX = объем памяти, оставляемой резидентной, в параграфах Выходит в родительский процесс, сохраняя код выхода в AL. Код выхода можно получить через функцию 4dh Wait. DOS устанавливает начальное распределение памяти, как специфицировано в DX, и возвращает управление родительскому процессу, оставляя указанную память резидентной (число байт = DX 16). Эта функция перекрывает функцию INT 27H, которая не возвращает код выхода и неспособна установить резидентную программу, большую 64K.
33H Установить/опросить статус Ctrl-Break AH = 33H AL = 0 чтобы опросить текущий статус контроля Ctrl-Break AL = 1 чтобы установить статус контроля Ctrl-Break DL = требуемый статус (0=OFF, 1=ON) (только при AL=1) DL = текущий статус (0=OFF, 1=ON) Если AL=0, в DL возвращается текущий статус контроля Ctrl-Break. Если AL=1, в DL возвращается новый текущий статус. Когда статус ON, DOS проверяет на Ctrl-Break с консоли для большинства функций (исключая 06H и 07H). При обнаружении, выполняется INT 23H (если оно не перехватывается, то это снимает процесс). Когда статус OFF, DOS проверяет на Ctrl-Break лишь при операциях стандартного в/в, стандартной печати и стандартных операциях AUX.
35H Дать вектор прерывания AH = 35H AL = номер прерывания (00H до 0ffh) ES:BX = адрес обработчика прерывания Возвращает значение вектора прерывания для INT (AL); то есть, загружает в BX 0000:[AL*4], а в ES — 0000:[(AL*4)+2]. Предупреждение: Эта функция изменяет сегментный регистр ES.
44H Управление устройством в/в – IOCTL AH = 43H AL = код подфункции: AL = 0ch — (зарезервировано) Прочие = (в зависимости от подфункции) AX = код ошибки если CF установлен или иное значение (в зависимости от подфункции) IOCTL предоставляет метод взаимодействия с устройствами и получения информации о файлах. Входные параметры и выходные значения варьируются в зависимости от кода подфункции в регистре AL. Версии: Подфункции 0-7 . DOS 2.1+ Подфункции 8,0bh . DOS 3.0+ Подфункции 9,0ah . DOS 3.1+ Подфункции 0dh,0eh,0fh . DOS 3.2+ ———————————— Подфункция 00H: Запросить флаги информации об устройстве Вход: BX= описатель файла (устройство или дисковый файл) Выход: DX= IOCTL Инф об устр ———————————— Подфункция 01H: установить флаги информации об устройстве Вход: BX = описатель файла (устройство или дисковый файл) DX = IOCTL Инф об устр (DH должен быть нулевым) Выход: DX= IOCTL Инф об устр ———————————— Подфункция 02-03: читать (AL=02H) или писать (AL=03H) строку IOCTL на СИМВОЛЬНОЕ устр Вход: DS:DX = адрес буфера (чтение) или данных (запись) CX= число передаваемых байт BX= описатель файла (только устройство — не файл!) Выход: AX= код ошибки если CF установлен ———————————— Подфункция 04-05: читать (AL=04H) или писать (AL=05H) строку IOCTL на БЛОЧНОЕ устр Вход: DS:DX = адрес буфера (чтение) или данных (запись) CX = число передаваемых байт BL = : Вход: CL = код действия 40H = установить параметры устройства 60H = дать параметры устройства 41H = писать дорожку логического устройства 61H = читать дорожку логического устройства 42H = форматировать дорожку с верификацией 62H = Верифицировать дорожку логического устройства DS:DX=> адрес пакета данных IOCTL Выход: AX= код ошибки если CF установлен DS:DX=> пакет данных может содержать информацию возврата. ———————————— Подфункция 0eh: Выяснить, назначил ли драйвер устройства несколько логических устройств одному физическому устройству. [DOS 3.2+] Вход: BL= . Эта функция позволяет вам сообщать DOS, что диск с указанным >
48H Распределить память (дать размер памяти) AH = 48H BX = запрошенное количество памяти в 16-байтовых параграфах AX = код ошибки если CF установлен BX = размер доступной памяти в параграфах (если памяти не хватает) AX = сегментный адрес распределенного блока (если нет ошибок) Распределяет блок памяти длиной BX параграфов, возвращая сегментный адрес этого блока в AX (блок начинается с AX:0000). Если распределение неудачно, устанавливается CF, в AX возвращается код ошибки, а BX содержит максимальный размер доступной для распределения памяти (в параграфах). Чтобы определить наибольший доступный кусок, общепринято устанавливать BX=0ffffh перед вызовом. Распределение завершится с ошибкой, возвратив размер максимального блока памяти в BX. Замечание: Когда процесс получает управление через функцию 4bh EXEC, вся доступная память уже распределена ему.
49H Освободить распределенный блок памяти AH = 49H ES = сегментный адрес (параграф) освобождаемого блока памяти AX = код ошибки если CF установлен Освобождает блок памяти, начинающийся с адреса ES:0000. Этот блок становится доступным для других запросов системы. Вообще говоря, вы должны освобождать лишь те блоки памяти, которые вы получили через функцию 48H распределить память. Родитель отвечает за освобождение памяти порожденных процессов. Тем не менее, ничто не препятствует вам освобождать память чужих процессов.
4ah Сжать или расширить блок памяти AH = 4ah ES = сегмент распределенного блока памяти BX = желаемый размер блока в 16-байтовых параграфах AX = код ошибки если CF установлен BX = наибольший доступный блок (если расширение неудачно) Изменяет размер существующего блока памяти. Когда программа получает управление, функция 4bh EXEC уже распределила блок памяти, начиная с PSP, который содержит всю доступную память. Чтобы освободить память для запуска порождаемых процессов, блок памяти, начинающийся с PSP, необходимо сначала сжать. Замечание: Функция 31H (KEEP) и INT 27H (TSR) сжимают блок по адресу PSP.
4bh Выполнить или загрузить программу – EXEC AH = 4bh DS:DX = адрес строки ASCIIZ с именем файла, содержащего программу ES:BX = адрес EPB (EXEC Parameter Block — блока параметров EXEC) AL = 0 = загрузить и выполнить AL = 3 = загрузить программный оверлей AX = код ошибки если CF установлен Предоставляет средства одной программе (родителю) вызвать другую программу (ребенка), которая по завершению возвратит управление родителю. DS:DX указывает на строку ASCIIZ в форме: «d:\путь\имяфайла»,0. Если диск или путь опущены, они подразумеваются по умолчанию. ES:BX указывает на блок памяти, подготовленный как EPB, формат которого зависит от запрошенной подфункции в AL. AL=0 EXEC: так как родительская программа первоначально получает всю доступную память в свое распоряжение, вы должны освободить часть памяти через функцию 4ah до вызова EXEC (AL=0). Обычная последовательность: 1. Вызовите функцию 4ah с ES=сегменту PSP и BX=минимальному объему памяти, требуемой вашей программе (в параграфах). 2. Подготовьте строку ASCIIZ с именем вызываемого программного файла и установите DS:DX на первый символ этой строки. 3. Подготовьте блок параметров EXEC со всеми необходимыми полями. 4. Сохраните текущие значения SS, SP, DS, ES и DTA в переменных, адресуемых через регистр CS (CS — это единственная точка для ссылок после того, как EXEC вернет управление от ребенка). 5. Выдайте вызов EXEC с AL=0. 6. Восстановите локальные значения SS и SP. 7. Проверьте флаг CF, чтобы узнать, не было ли ошибки при EXEC. 8. Восстановите DS, ES и локальную DTA, если необходимо. 9. Проверьте код выхода через функцию 4dh WAIT (если надо). Все открытые файлы дублируются, так что ребенок может обрабатывать данные как через описатели файлов, так и через стандартный в/в. Режимы доступа описателей дублируются, но любые активные блокировки файлов не будут относиться к ребенку. См. Функцию 5ch. После возврата из ребенка, векторы INT 22H Terminate, INT 23H Ctrl-Break и INT 24H Critical Error восстанавливаются в их предыдущие значения. AL=3 LOAD: Эта подфункция используется для загрузки «оверлея». DS:DX указывает на ASCIIZ имя файла, а ES:BX указывает на «LOAD»-версию блока параметров EXEC. Главное значение этой подфункции в том, что она считывает заголовок EXE и выполняет необходимые перемещения сегментов, как это требуется для программ .EXE. Замечания: Эта функция использует программу-загрузчик из COMMAND.COM, который транзитен в DOS 2.x (и, возможно, уже перекрыт программой). В этом случае возникнет ошибка, если DOS не найдет файл COMMAND.COM. Вы должны обеспечить корректную строку COMSPEC= в окружении перед вызовом этой функции. Вместо разбора собственных FCB (как требуется для EPB), вы можете найти удобным загрузить и выполнить вторичную копию файла COMMAND.COM, используя опцию /C. Например, чтобы выполнить программу FORMAT.COM, установите DS:DX на адрес строки ASCIIZ: «\command.com»,0 и установите EPB+2 на сегмент и смещение следующей строки команд: 0eh,»/c format a:/s/4″,0dh такой вторичный интерпретатор команд использует очень мало памяти (около 4K). Вы можете поискать в окружении DOS строку COMSPEC=, чтобы установить точное местоположение файла COMMAND.COM.
4ch Завершить программу – EXIT AH = 4ch AL = код выхода Возвращает управление от порожденного процесса его родителю, устанавливая код выхода, который можно опросить функцией 4dh WAIT. Управление передается по адресу завершения в PSP завершающейся программы. Векторы Ctrl-Break и Critical Error восстанавливаются к старым адресам, сохраненным в родительском PSP. Замечание: Значение ERRORLEVEL (используемое в пакетных файлах DOS) можно использовать для проверки кода выхода самой последней программы.
4dh Дать код выхода программы – WAIT AH = 4dh AL = код выхода последнего завершившегося процесса AH = 0 — нормальное завершение AH = 1 — завершение через Ctrl-Break AH = 2 — завершение по критической ошибке устройства AH = 3 — завершение через функцию 31H KEEP Возвращает код выхода последнего из завершившихся процессов. Эта функция возвращает правильную информацию только однажды для каждого завершившегося процесса.
54H Дать переключатель верификации DOS AH = 54H AL = 0 если верификация выключена (OFF) AL = 1 если верификация включена (ON) Возвращает текущий статус верификации записи DOS. Если в AL возвращается 1, то DOS считывает обратно каждый сектор, записываемый на диск, чтобы проверить правильность записи. Функция DOS 2eh позволяет установить/изменить режим верификации.
59H Дать расширенную информацию об ошибке AH = 59H DOS 3.0+ BX = 0000H (номер версии: 0000H для DOS 3.0, 3.1 и 3.2) AX = расширенный код ошибки (0, если не было ошибки) BH = класс ошибки BL = предлагаемое действие CH = сфера (где произошла ошибка) Используйте эту функцию, чтобы уточнить, что предпринять после сбоя функции DOS по ошибке (только DOS 3.0+ ). Вызывайте ее: В обработчике критических ошибок INT 24H После любой функции INT 21H , возвратившей Carry-флаг После вызова FCB-функции, возвратившей AL=0ffh Версии: Эта функция отсутствует в версиях до DOS 3.00. В DOS 2.x, когда флаг CF указывает на ошибку, используйте логику вашей программы, чтобы отреагировать на ошибку. В DOS 3.0+, когда функция возвращает CF=1, рекомендуем вам игнорировать код ошибки, возвращенный в AX, вызвать эту функцию и выполнить действие, предложенное в BL.
5eh Разные сетевые функции AH = 5eh DOS 3.1+ AL = подф.: 0=дать имя машины (узла) в сети AL = 2=установить стартовую строку сетевого принтера AL = 3=извлечь стартовую строку сетевого принтера Прочие = (зависят от подфункции) AX = код ошибки если CF установлен Прочие = (зависят от подфункции) Эти функции доступны при установленной IBM PC Network Program. Версии: Доступны, начиная с DOS 3.1 ———————————— Подф. 00H: Извлекает имя машины (узла), как оно известно в сети. Вход: DS:DX=> буфер пользователя для ASCIIZ сетевого имени Выход: DS:DX=> буфер, содержащий сетевое имя CH= 0=имя не определено; иначе=имя определено CL= номер имени NETBIOS (если CH ненулевой) AX= код ошибки если CF установлен Замечание: Сетевое имя — 15-симв. (дополненная пробелами) строка ASCIIZ ———————————— Подф. 02H: Задает настроечную строку, посылаемую на принтер каждый раз, когда эта машина выдает результаты на сетевой принтер. Вход: DS:SI=> буфер, содержащий настроечную строку (до 64 байт) CX= длина настроечной строки BX= индекс в списке назначений, отвечающий принтеру Выход: AX= код ошибки если CF установлен ———————————— Подф. 03H: Извлекает настроечную строку принтера, заданную ранее посредством DOS Fn 5eh подф. 02H. Вход: DS:DI=> 64-байтовый буфер пользователя для результата bx= индекс принтера в списке назначений Выход: ES:DI=> буфер, заполненный настроечной строкой CX= длина настроечной строки AX= код ошибки если CF установлен Замечание: Поскольку индекс в списке назначений может измениться в любой момент, используйте функцию 5fh подф. 02H, чтобы получить индекс непосредственно перед вызовом этой функции.
5fh Переназначение устройств в сети AH = 5fh DOS 3.1+ AL = подф.: 2=получить элемент списка переназначений устройств = 3=переназначить сетевое устройство = 4=отменить переназначение сетевого устройства Прочие = (зависят от подфункции) AX = код ошибки если CF установлен Эти функции доступны при установленной IBM PC Network Program. Версии: Доступны, начиная с DOS 3.1 ———————————— Подф. 02H: Извлекает элемент из списка переназначений сетевых устройств. Вход: DS:DI=> 128-байтовое ASCIIZ локальное имя устр. («LPT1»,0) ES:DI=> 128-байтовый буфер с ASCIIZ сетевым именем BX= индекс в списке назначений Выход: DS:DI=> ASCIIZ локальное имя устройства (напр., «LPT1»,0) ES:DI=> ASCIIZ сетевое имя BL= тип устр: 3=принтер; 04=файл ‘устройство’ BH= статус устр: бит 0=1 -неверное устр.; 0=верное CX= сохраненный параметр (при NETBIOS, всегда 0) AX= код ошибки если CF установлен DX,BP = (изменены) Замечание: обычно эту функцию вызывают с BX=0, затем повторяют вызовы, увеличивая значение BX, пока DOS не вернет ошибку 12H (больше нет файлов). ———————————— Подф. 03H: этот вызов определяет имена оглавлений для сети и перенаправляет доступ на сетевые принтеры. Замеч: доступ к принтеру переназначается на уровне ROM-BIOS INT 17H. Вход: DS:SI = ASCIIZ имя исходного устройства ES:DI = ASCIIZ назначение (сетевой путь с паролем) BL= тип устр: 03=принтер; 04=файл ‘устройство’ CX= параметр для вызывающего (задавайте 0 для NETBIOS) Выход: AX= код ошибки если CF установлен Замеч: если BL=03, то источник задает ASCIIZ-имя принтера (например, «LPT1»,0). Назначение кодируется в форме: [\\computername\],0,[password],0. Если пароль начинается с 00, считается, что пароля нет. Если BL=04, то источник задает ASCIIZ-имя диска (например, «F:»,0), а назначение — ASCIIZ-имя пути. После вызова этой функции, локальные обращения к этому диску переназначаются на выбранные имя компьютера и путь. ———————————— Подф. 04H: Отменить сетевое переназначение для указанного устройства. Вход: DS:SI=> ASCIIZ-имя устройства или ,0), то переназначение этого диска прекращается, и ID диска восстанавливает свое предыдущее значение.
Шрифт Использование
Полужирный Выделяет текст команд и переключателей, набира¬емых точно в том виде, в котором они приведены.
Курсив Заменяет собой текст, который должен быть набран пользователем. Также курсивом выделяются вновь вводимые термины и понятия.
[Квадратные скобки] Перевод сообщений операционной системы на русский язык для удобства чтения данного руководства. На экране компьютера не появляется.

В документации Microsoft под термином MS-DOS понимаются операционные системы MS-DOS и IBM® Personal Computer DOS.

Соглашения об обозначении комбинаций клавиш

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

Обозначение Использование
KEY1+KEY2 Нажмите первую клавишу и, не отпуская ее, нажмите вторую клавишу. Например, фраза «Нажмите клавиши CTRL+C» означает, что надо нажать клавишу CTRL и, не отпуская ее, нажать клавишу с.
KEY1, KEY2 Запятая (,) между именами клавиш означает, что клавиши надо нажимать последовательно шпример, фраза «Нажмите клавиши ALT, FIO» означает, что надо нажать и отпустить клавишу ALT, а затем нажать и отпустить клавишу FIO.

ГЛАВА 1. Приступая к работе

Большинство компьютеров продаются с уже установленной операционной системой. Однако, если на компьютере операционная система MS-DOS 6 еще не установлена, то необходимо выполнить программу установки системы (программу Setup). Запускать MS-DOS прямо с установочных дисков нельзя, поскольку файлы на этих дисках находятся в упакованном виде. Программа установки распаковывает файлы MS-DOS и копирует их на жесткий диск или дискеты.

Выполнение установки

Программа Setup определяет характеристики аппаратуры компьютера и установленного программного обеспечения и, если компьютер не удовлетворяет минимальным требованиям, выдает предупреждение.

Для установки MS-DOS

  1. Вставьте Setup Disk 1 в дисковод А (тот, с которого производится загрузка системы).
  2. Загрузите или перезагрузите компьютер.
  3. Следуйте появляющимся на экране инструкциям.

Настройка программ Anti-Virus, Backup и Undelete для Windows

Установив систему Microsoft Windows, необходимо снова запустить программу Setup для установки версий программ Anti-Virus, Backup и Undelete, рассчитанных на работу в среде Windows.

Для настройки программ Anti-Virus, Backup или Undelete для Windows

  1. Вставьте Setup Disk 1 в дисковод А или Вив ответ на системное

приглашение наберите следующее:

  1. Следуйте появляющимся на экране инструкциям.

Программа установки создаст в диспетчере программ группу с именем Microsoft Tools и добавит в нее значки перечисленных выше программ. Если Вы используете систему Windows версии 3.1, то программа установки добавит в меню File диспетчера файлов команду Undelete. Дополнительно в диспетчере файлов появится новый элемент меню -меню Tools, которое содержит команды для программ Anti-Virus и Backup.

ГЛАВА 2. Основы MS-DOS

Эта глава объясняет основы использования MS-DOS 6.22. Первый раздел главы является учебником, а в следующих разделах более подробно объясняются некоторые концепции, описанные в учебнике, содержится информация об использовании справки MS-DOS.

Учебник MS-DOS

Следуя процедурам, описанным ниже, Вы научитесь просматривать содержимое каталога, создавать и удалять каталоги, переходить от одного каталога или дисковода к другому, копировать и форматировать дискеты, переименовывать и удалять файлы.

Системное приглашение

Когда Вы впервые включите свой компьютер, то увидите на экране быстро сменяющие друг друга сообщения. После того как вывод сообщений закончится, на экране появится системное приглашение:

Мигающий символ подчеркивания, находящийся после системного приглашения, называется курсором. Он показывает место ввода команды. Строка, в которой Вы набираете команду, называется командной строкой.

Набор команды

Этот раздел объясняет, как набрать команду в командной строке. После набора команды необходимо нажать клавишу ENTER.

Для набора команды

Наберите в командной строке следующую команду (набирать можно как строчными, так и прописными буквами):

Нажмите клавишу ENTER.

На экране появится следующее сообщение:

Команда ver отображает номер версии MS-DOS. Если Вы увидите сообщение «Bad command or file name» [Неверная команда или имя файла], то это означает, что Вы, скорее всего, допустили ошибку в наборе команды.

Просмотр содержимого каталога

В этом разделе говорится о том, как просмотреть содержимое каталога с помощью команды dir. Название команды dir является сокращением от английского «directory» — каталог.

Для просмотра содержимого каталога

Наберите в командной строке следующее:

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

Подобный текст называется списком каталога. Список каталога — это список всех файлов и подкаталогов, содержащихся в данном каталоге. В нашем примере Вы видите все файлы и каталоги, находящиеся в главном, или корневом каталоге диска.

Смена каталогов

Все имена, имеющие пометку , относятся к каталогам. Чтобы просмотреть список файлов другого каталога, следует сначала сменить каталог, а затем снова воспользоваться командой dir. Например, перейдем к каталогу DOS.

Для перехода от корневого каталога к каталогу DOS

Сменить каталог можно с помощью команды cd. Название команды cd является сокращением от английского «change directory» — сменить каталог.

В командной строке наберите следующее:

Системное приглашение изменится и будет выглядеть следующим образом:

Системное приглашение показывает, в каком каталоге Вы находитесь. В данном случае смена каталога прошла успешно, так как теперь системное приглашение содержит имя каталога DOS, который стал текущим.

Для просмотра списка файлов в каталоге DOS используем команду dir.

Для просмотра содержимого каталога DOS

В командной строке наберите следующее:

Появится список файлов из каталога DOS, однако этот список промелькнет слишком быстро, чтобы его можно было рассмотреть. Вы можете задать команду dir так, чтобы информация выдавалась последовательно, по одному экрану.

Для просмотра содержимого каталога по одному экрану

В командной строке наберите следующее:

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

Нажмите любую клавишу для продолжения просмотра. Повторяйте эту операцию до тех пор, пока не появится системное приглашение.

При последнем наборе команды dir Вы использовали переключатель /р. Переключатель изменяет метод выполнения команды системой MS-DOS. В общем случае переключатель состоит из символа косой черты (/) и одной или несколько букв или цифр. Использование переключателя /р в команде dir указывает, что система должна делать паузу после выдачи очередного экрана списка файлов каталога.

Для просмотра списка файлов каталога в широком формате

В командной строке наберите следующее:

Появится многоколоночный список файлов каталога. В этом случае перечисляются только имена файлов. Информация о размере файлов или дате и времени их создания не выдается.

Если каталог содержит файлов больше, чем может поместиться на экране, то можно комбинировать переключатели /р и /w следующим образом:

Возвращение в корневой каталог

Теперь из каталога DOS вернемся в корневой каталог.

Для перехода в корневой каталог

В командной строке наберите следующее:

Заметьте, что в команде используется не прямая косая черта, а обратная косая черта (\). Вне зависимости от того, в каком каталоге Вы находились, эта команда всегда возвратит Вас к корневому каталогу диска. Корневой каталог не имеет имени. Ссылаются на него просто с помощью символа обратной косой черты (\).

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

Для создания каталога с именем FRUIT и перехода в него

В командной строке наберите следующее:

Вы только что создали каталог с именем FRUIT, что в переводе с английского означает «фрукт».

Перейдите к новому каталогу FRUIT, набрав в командной строке следующее:

Системное приглашение изменится и будет выглядеть следующим образом:

Теперь в каталоге FRUIT создадим каталог с именем GRAPES (английское название винограда).

Для создания каталога GRAPES и работы с ним

В командной строке наберите следующее:

Вы не увидите новый каталог GRAPES до тех пор, пока снова не выполните команду dir.

Убедитесь, что каталог GRAPES действительно создан, набрав в командной строке следующее:

Заметьте, что каталог FRUIT содержит три элемента. Один из них -это только что созданный каталог GRAPES. Однако есть еще два -один выглядит как одна точка (.), а второй — как две точки (..). Эти элементы присутствуют в каждом каталоге.

Каталог GRAPES — это подкаталог каталога FRUIT. Подкаталог -это каталог, содержащийся внутри другого каталога.

Перейдите к каталогу GRAPES, набрав в командной строке следующее:

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

Создание каталога

В этом разделе Вы создадите два каталога. Создание каталога полезно, если Вы хотите объединить связанные по смыслу файлы в группы. Для создания каталога используется команда md. Название команды md происходит от английского «make directory» — сделать каталог.

Вернитесь назад к каталогу FRUIT, набрав следующее:

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

Когда команда cd сопровождается двумя точками (..), система перемещает Вас на один уровень вверх в структуре каталогов. В данном случае Вы переместились на один уровень — из каталога GRAPES в каталог FRUIT.

Удаление каталога

Для упрощения структуры каталогов может понадобиться удалить каталог. В этом разделе Вы удалите каталог GRAPES. Для удаления каталога используется команда rd. Название команды происходит от английского «remove directory» — удалить каталог.

Для удаления каталога GRAPES

1. Убедитесь, что системное приглашение выглядит так:

2. В командной строке наберите следующее: rd grapes 3. Убедитесь, что каталог GRAPES удален, набрав в командной строке следующее:

В появившемся списке каталог GRAPES должен отсутствовать.

Замечание: Удалить каталог, являющийся текущим, невозможно. Перед удалением такого каталога в командной строке нужно набрать cd.

Переход на другой диск

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

Для перехода к другому диску и просмотра находящихся на нем файлов

Вставьте дискету Setup Диск 1 (он есть в Вашей копии MS-DOS 6.22) в дисковод А этикеткой вверх. Затем закройте защелку дисковода или убедитесь, что диск в дисководе щелкнул.

В командной строке наберите следующее:

Заметьте, что системное приглашение теперь выглядит так:

Может появиться сообщение:

Если Вы получили это сообщение, то, возможно, не закрыта защелка дисковода. Вставьте в дисковод дискету этикеткой вверх, а затем закройте защелку дисковода или убедитесь, что дискета в дисководе щелкнула. После этого наберите r, чтобы повторить операцию.

Просмотрите список файлов на дискете, которая установлена в дисковод А, набрав в командной строке следующее:

Появится список файлов находящихся на дискете.

Вернитесь назад к диску С, набрав в командной строке следующее:

Переход к указанному диску осуществляется, когда в командной строке набирается буква диска, после которой стоит двоеточие, и нажимается клавиша ENTER. Буква диска в системном приглашении показывает, какой диск является текущим диском. Все вводимые команды выполняются над текущим диском и текущим каталогом, если другой диск или каталог не указаны специально. Например, можно посмотреть файлы, находящиеся на диске из дисковода А, не переключаясь на него, с помощью описанной ниже процедуры.

Для просмотра файлов на диске А при текущем диске С

В командной строке наберите следующее:

Хотя текущим диском является диск С (на что указывает системное приглашение), будет выдан список файлов, находящихся на диске А. Задав а: после команды dir, Вы сообщаете системе, что нужен список файлов и каталогов, которые находятся на диске А, а не на текущем диске С. Символы а:, введенные после команды dir, являются параметром, указывающим над каким диском выполняется команда.

Копирование файлов

В этом разделе говорится о том, как скопировать один или несколько файлов. При копировании файлов используется команда сору с двумя параметрами: источником (местоположение и имя копируемого файла) и назначением (куда следует поместить копию). Источник и назначение разделяются пробелом. Команда сору имеет следующий формат:

Копирование отдельного файла

Для копирования файла EDIT.HLP из каталога DOS в каталог FRUIT

Вернитесь в корневой каталог, набрав в командной строке следующее:

Перейдите в каталог DOS, набрав в командной строке следующее:

Чтобы скопировать файл EDIT.HLP из каталога DOS в каталог FRUIT, в командной строке наберите следующее:

Только что введенная команда скопировала файл из указанного источника в место назначения. Задав C:\DOS\EDIT.HLP в качестве источника, Вы указали, что система должна использовать исходный файл EDIT.HLP, находящийся в каталоге DOS диска С. Второй параметр, C:\FRUIT, заданный как назначение, указывает, что копия файла EDIT.HLP должна быть помещена в каталог FRUIT на диске С.

Копирование нескольких файлов

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

Для просмотра списка всех файлов с расширением .ТХТ и копирования их из каталога DOS в каталог FRUIT с использованием подстановочного символа

В командной строке наберите следующее:

Вы сможете просмотреть список всех файлов с расширением .ТХТ из каталога DOS. Заметьте, что перед звездочкой (*) стоит пробел, а после нее — нет.

Приведенная команда выводит список всех файлов и каталогов, которые имеют расширение .ТХТ. Звездочка замещает собой все символы в имени файла до точки, отделяющей имя файла от его расширения.

Чтобы скопировать все файлы с расширением .ТХТ в каталог FRUIT, в командной строке наберите следующее:

Эта команда скопирует все файлы с расширением .ТХТ из текущего каталога (DOS) в каталог FRUIT.

Переименование файлов

В этом разделе говорится о переименовании файлов. Для этой цели используется команда ren. Название команды ren происходит от английского «rename» — переименовать. Команда ren требует задания двух параметров. Первый параметр — это имя существующего файла, которое нужно изменить, а второй — новое имя этого файла. Параметры разделяются пробелом. Команда ren имеет следующий формат:

Переименование файла

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

Для переименования файла README.TXT в PEACH.TXT

В командной строке наберите следующее:

При переименовании группы файлов можно использовать подстановочные символы.

Удаление файлов

В этом разделе говорится об удалении, т.е. уничтожении файла, который больше не нужен. Для удаления файлов используется команда del. Название команды del происходит от английского «delete» -удалить.

Удаление файла

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

Для удаления файл EDIT.HLP

В командной строке наберите следующее:

Чтобы убедиться в том, что файл действительно удален, в командной строке наберите следующее:

В появившемся списке файла EDIT.HLP быть не должно.

Удаление группы файлов

Для удаления всех файлов с расширением .ТХТ из текущего каталога с использованием подстановочного символа Просмотрите все файлы с расширением |.ТХТ, набрав в командной строке следующее:

Появится список всех файлов, имеющих расширение .ТХТ. Убедитесь, что это именно те файлы, которые Вы хотите удалить. При удалении файлов с использованием подстановочных символов этот шаг очень важен. Он предотвратит случайное удаление нужных файлов.

Удалите все файлы, имеющие расширение .ТХТ, набрав в командной строке следующее:

Убедитесь в том, что все файлы с расширением .ТХТ действительно удалены, набрав в командной строке следующее:

В каталоге FRUIT файлов быть не должно. Теперь, когда каталог FRUIT пуст, можно удалить и его.

Для удаления каталога FRUIT

Вернитесь в корневой каталог, набрав в командной строке следующее:

В командной строке наберите dir, чтобы увидеть каталог FRUIT в списке файлов каталога.

Удалите каталог FRUIT, набрав в командной строке следующее:

Убедитесь в том, что каталог FRUIT действительно удален, набрав в командной строке следующее:

В появившемся списке каталог FRUIT должен отсутствовать.

Форматирование дискеты

Большинство покупаемых дискет необходимо форматировать перед их использованием.

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

Для форматирования дискеты

  1. В командной строке наберите следующее:

Эта команда говорит о том, что Вы собираетесь форматировать дискету, находящуюся в дисководе А. Нажмите клавишу ENTER, на Вашем экране появится следующее сообщение:

Чтобы отформатировать дискету, которая вставляется только в дисковод В, в командной строке наберите format b: и вставьте дискету в дисковод В после того, как система попросит это сделать.

  1. Вставьте форматируемую дискету в дисковод А этикеткой вверх.

Затем закройте защелку дисковода или убедитесь, что диск в дисководе щелкнул. После этого нажмите клавишу ENTER. Появится следующее сообщение:

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

В данном упражнении нажмите клавишу ENTER, оставляя, таким образом, диск без метки.

Нажмите клавишу Y, если хотите отформатировать еще один диск, противном случае — клавишу N.

Подробнее о файлах, каталогах и путях см. следующие разделы. Для получения более подробной информации о командах, обсуждавшихся в этом учебнике, используйте справочную систему, входящую в MS-DOS. Инструкции по использованию справочной системы MS-DOS приведены в разделе «Получение справки» далее в этой главе.

Как MS-DOS организует информацию

Выше было дано некоторое представление о командах, которые используются для поиска и перемещения данных. Также было введено несколько важных терминов: файл, каталог и диск, необходимых для эффективного использования системы MS-DOS. В данном разделе содержится дополнительная информация об этих терминах и объясняется, как система MS-DOS организует хранение данных.

Файлы

Файл являет основной единицей хранения блока информации, находящейся в компьютере. Файлы позволяют системе отличать один блок информации от другого. Например, когда Вы используете текстовый процессор для написания письма, то каждое письмо хранится в отдельном файле. Каждый файл имеет имя и расширение, указывающее на тип информации, которую содержит данный файл. Некоторые файлы поставляются с системой MS-DOS, другие — с прикладными программами, такими как текстовый процессор. Эти файлы содержат код программ и другую информацию, которая необходима для работы компьютера и приложений. Через некоторое время в Вашем компьютере будут храниться сотни, а может быть даже тысячи различных файлов. Это может привести к тому, что найти нужный файл будет достаточно трудно.

Каталоги

Размещение файлов в различных каталогах облегчает поиск файлов. Например, все файлы, поставляемые с системой MS-DOS, помещаются в один каталог, который обычно называется DOS. Поэтому, если потребуется найти какой-либо файлов из комплекта поставки MS-DOS, его легко найти. Как файлы, так и каталоги могут создаваться либо с командной строки MS-DOS, либо программным способом.

Текущий каталог

Каталоги было бы трудно использовать, если бы Вы не знали, какой из них является текущим. Система MS-DOS указывает текущий каталог, отображая его имя в системном приглашении. Например, следующее системное приглашение показывает, что Вы находитесь в каталоге DOS:

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

Подкаталоги

Каталоги могут содержать другие каталоги. Каталог, который находится в другом каталоге, называется подкаталогом. Использование подкаталогов помогает лучше организовать хранение файлов.

Корневой каталог

Строго говоря, все каталоги, за исключением одного, который называется корневым каталогом, являются подкаталогами. В данном руководстве термин подкаталог используется только для указания отношений между двумя каталогами. Корневой каталог содержит в себе все остальные каталоги и файлы. Он не имеет имени; вместо имени он представляется символом обратной косой черты (\). Когда текущим является корневой каталог, системное приглашение выглядит следующим образом:

Такое приглашение указывает, что Вы находитесь в корневом каталоге диска С. Поскольку корневой каталог является основой для всех других, удалить его нельзя. Избегайте хранения случайных файлов в корневом каталоге. Этот совет вызван тем, что корневой каталог имеет ограничение на число хранящихся в нем файлов и каталогов.

Диски

Как каталог содержит группу файлов, так и диск содержит группу каталогов. Диск — это устройство, на котором хранятся данные. Наиболее распространенными являются следующие типы дисков: жесткий диск, который находится внутри компьютера; дискета и компакт-диск, которые вставляются в дисковод, находящийся либо внутри компьютера, либо рядом с ним.

Первый дисковод для дискет называется диском А. Второй, если он есть — диском В. Ваш жесткий диск (или его часть) называется диском С. Следующее системное приглашение показывает, что текущим является диск С, а текущим каталогом — его корневой каталог (он представлен символом обратной косой черты (\)):

Если текущим является диск А и каталог SAMPLES, то системное приглашение будет выглядеть так:

Если у Вас более одного жесткого диска или если Вы используете компакт-диски (CD-ROM) или сеть, то могут появиться дополнительные буквы дисков (D, Е и т.д.). Каждый диск, независимо от его типа, имеет один корневой каталог.

Использование путей для указания местоположения файлов

Путь указывает местонахождение файла в структуре каталогов относительно корневого каталога. Например, чтобы добраться до файла LASAGNA.TXT из каталога ENTREES, система MS-DOS должна пройти путь от корневого каталога через каталог RECIPES к каталогу ENTREES, как это показано на следующей иллюстрации:

Чтобы задать тот же самый путь в командной строке, следует набрать его так, как это показано ниже:

Имена файлов не должны содержать пробелов запятых, прямой или обратной косой черты и точки (за исключением точки, которая отделяет имя от расширения).

Два файла или подкаталога, находящиеся в одном и том же каталоге, не могут иметь одинаковые имена.

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

Это и есть путь к файлу LASAGNA.TXT. Первая буква и двоеточие (С:) обозначают диск, на котором находится файл. Первая обратная косая черта (\) обозначает корневой каталог. Вторая обратная косая черта отделяет каталог RECIPES от подкаталога ENTREES. Третья обратная косая черта отделяет подкаталог ENTREES от имени файла — LASAGNA.TXT.

Система MS-DOS распознает пути длиной до 67 символов (включая букву диска, двоеточие и символ обратной косой черты).

Имена файлов и каталогов

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

  • Имена файлов могут иметь длину до восьми символов. Дополнительно можно использовать расширение длиной до трех символов.
  • В именах файлов строчные и прописные буквы не различаются. Это означает, что совершенно безразлично, на каком регистре набирается имя файла.

Имена файлов могут содержать буквы от А до Z, цифры от 0 до 9 и следующие специальные символы: подчеркивание (_), крышка (Л), знак доллара ($), тильда (

), восклицательный знак (!), символ номера (#), процент (%), амперсанд (&), дефис (-), фигурные скобки (<>), знак at sing (@), одиночная кавычка (‘), апостроф (‘) и скобки (). Использование других специальных символов не допускается.

Использование расширения имени файла

Большинство имен файлов состоит из двух частей: собственно имя файла и расширение. Эти части разделяются точкой. Имя файла (то, что стоит до точки) имеет длину до восьми символов и, как правило, отражает содержимое файла. Расширение имени файла (то, что стоит после точки) имеет длину до трех символов и, как правило, отражает тип файла.

Ниже приведены примеры часто используемых расширений имен файлов:

  • .ЕХЕ, .СОМ или .ВАТ. Эти расширения используются для файлов, содержащих выполнимые программы. Если набрать в командной строке имя файла, имеющего одно из приведенных выше расширений, то система начнет выполнять программу, содержащуюся в данном файле.
  • .ТХТ. Это расширение обычно используется для файлов, которые содержат неформатированный текст.
  • .SYS. Это расширение используется для файлов, содержащих драйверы, которые обеспечивают взаимодействие компьютера с подключен¬ными к нему устройствами.

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

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

Если Вы хотите выполнить некоторое действие над группой файлов, имена которых схожи, то используйте подстановочные символы. Система MS-DOS распознает два подстановочных символа: звездочку (*), замещающую один или несколько символов; и знак вопроса (?), замещающий один любой символ.

Подстановочные символы можно использовать для частичной или полной замены имени или расширения файла. Следующая таблица содержит примеры подстановочных символов:

Символ Что представляет Примеры
*.ТХТ Все файлы с расширением ТХТ JULY93.TXT, LASAGNA.TXT
REPORT.* Все файлы с именем REPORT и любым расширением REPORT.TXT, REPORT.WRI
М*.* Все файлы, начинающиеся с буквы М, независимо от расширения МЕМО.ТХТ, MARCH.XLS
. * Все файлы с именами из трех символов, с любым расширением или вообще без расширения SUN.BMP, WIN.INI, AUG

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

Получение справки

Имеется два типа оперативной справки по командам MS-DOS: справка MS-DOS (команда Help), которая предоставляет полную информацию о командах MS-DOS, включая синтаксис, замечания и примеры; и краткая справка командной сроки, которая выдает только синтаксис команды.

Использование справки MS-DOS

Справочная система MS-DOS содержит полную информацию о командах MS-DOS. Запустить систему справки можно двумя способами: -с выводом на экран общего оглавления для выбора интересующего раздела либо сразу с выводом нужного раздела.

Для запуска справочной системы MS-DOS и выбора нужного раздела из общего оглавления

В командной строке наберите следующее:

Появится общее оглавление.

Если Вы используете мышь, нажмите кнопку с именем нужной команды. Если нужной команды на экране не видно, то используйте линейку прокрутки в правой части экрана до тех пор, пока нужная команда не появится.

При использовании клавиатуры следует нажать клавишу, соответствующую первой букве названия нужной команды. Будет выделена первая команда, которая начинается на эту букву. Если это не та команда, которая нужна, то продолжайте нажимать клавишу до тех пор, пока нужная команда не будет выделена, а затем нажмите клавишу ENTER. По списку разделов оглавления можно также перемещаться в помощью клавиш TAB, СТРЕЛКА ВВЕРХ, СТРЕЛКА ВНИЗ, PAGE UP И PAGE DOWN.

Для запуска справочной системы MS-DOS и получения информации о конкретной команде

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

С большинством команд связано три раздела: «Syntax», «Notes» и «Examples» («Синтаксис», «Замечания» и «Примеры»). При запуске справочной системы по умолчанию первым отображается раздел, который содержит описание синтаксиса команды. Если для команды предусмотрены замечания и примеры, то посмотреть их можно с помощью следующей процедуры.

Для просмотра замечаний или примеров

  • При использовании мыши нажмите кнопку Notes или Examples, которые находятся в верхней части экрана. При использовании клавиатуры следует нажать клавишу N или Е, в зависимости от того, что Вы хотите просмотреть. Если курсор уже находится на кнопке Notes или Examples, то можно сразу нажать клавишу ENTER.
  • После просмотра замечаний или примеров можно опять вернуться к описанию синтаксиса с помощью следующей процедуры.

Для просмотра синтаксиса

Для поиска текста

  • Выберите в меню Search команду Find. Появится диалоговое окно Find.
  • Введите искомый текст в поле «Find What». Если поиск должен осуществляться с учетом регистра, то установите флажок «Match Upper/Lowercase». * Установите флажок «Whole Word», если нужно найти только целиком совпадающие слова.
  • Нажмите кнопку ОК. Поиск начнется с текущего положения курсора до первого обнаружения искомого текста. Когда текст будет найден, справочная система отобразит на экран тот раздел справки, который содержит найденный текст.
  • Нажмите клавишу F3, чтобы найти следующее вхождение того же самого текста.

Для выхода из справочной системы MS-DOS

  • Если Вы используете мышь, то в меню File выберите команду Exit. При использовании клавиатуры последовательно нажмите клавиши ALT, F, х.

Использование краткой справки командной строки

Краткую информацию о назначении и использовании команды можно получить без запуска справочной системы MS-DOS. Эта информация менее подробна, чем выдаваемая справочной системой MS-DOS.

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

  • В командной строке наберите имя команды, а за ним — пробел и переключатель /?. Например, чтобы посмотреть синтаксис команды dir, в командной строке наберите следующее:

MS-DOS Shell =

Средство MS-DOS Shell представляет собой полноэкранную альтернативу использованию системного приглашения MS-DOS. На Ваш экран выводится информация о доступных для использования дисках, каталогах, файлах и приложениях.

Для запуска MS-DOS Shell

  • В командной строке наберите следующее: dosshell Ваш экран будет выглядеть примерно так:

Для выбора команды MS-DOS Shell с помощью мыши

  • В строке меню щелкните на имени того меню, которое содержит нужную команду. Откроется окно меню.
  • Щелкните кнопкой мыши на имени нужной команды.

Для выбора команды MS-DOS Shell с помощью клавиатуры

  • Нажмите клавишу ALT.
  • Нажмите клавишу, соответствующую первой букве имени того меню, которое требуется открыть. Например, чтобы открыть меню View, следует нажать клавишу v.
  • Нажимайте клавишу СТРЕЛКА ВНИЗ до тех пор, пока не будет выделена нужная команда, а затем нажмите клавишу ENTER. МОЖНО также сразу нажать букву, выделенную в имени команды.

Для выхода из MS-DOS Shell

  • Если Вы работаете с мышью, то откройте меню File, а затем выберите в нем команду Exit. При использовании клавиатуры следует последовательно нажать клавиши ALT, F, Х.

Использование справки MS-DOS Shell

Справка MS-DOS Shell позволяет быстро получить информацию об основах использования MS-DOS Shell, а также о меню, командах, диалоговых окнах, опциях диалоговых окон и процедурах. Справку можно получить тремя способами: нажать клавишу FI, нажать кнопку Help, которая имеется в большинстве диалоговых окон, или использовать меню Help.

Для получения информации об основах использования MS-DOS Shell

  • Если Вы работаете с мышью, то в меню Help выберите команду Shell Basics. При использовании клавиатуры следует последовательно нажать клавиши ALT, Н, S.
  • Появится окно справки, содержащее информацию об основах использования MS-DOS Shell. Для просмотра информации в окне справки можно использовать клавиши PAGE UP и PAGE DOWN.

Для получения информации об использовании справки MS-DOS

  • Если Вы работаете с мышью, то в меню Help выберите команду Using Help. При использовании клавиатуры следует последовательно нажать клавиши ALT, Н, U.
  • Появится окно Help, содержащее информацию об использовании справки MS-DOS Shell. Для просмотра информации в окне Help можно использовать клавиши PAGE UP и PAGE DOWN.

Для закрытия окна справки MS-DOS Shell

  • Если Вы работаете с мышью, то нажмите кнопку Close внизу окна справки. При использовании клавиатуры следует нажать клавишу ESC.

ГЛАВА 3. Управление системой

В состав системы MS-DOS 6.22 входят несколько программ, которые можно использовать для защиты данных и увеличения производительности компьютера. Эти программы рекомендуется использовать регулярно.

Создание резервных копий файлов

Создание резервных копий файлов защищает Вас от утери файлов в случае порчи жесткого диска или их случайного удаления. Используя программу Backup, Вы сможете восстановить старые версии файлов, удалить сохраненные файлы с жесткого диска и легко перенести файлы с одного компьютера на другой.

Обзор

Система MS-DOS 6.22 содержит две программы резервного копирования: программа Backup для MS-DOS, которая может запускаться из командной строки MS-DOS, и Backup для Windows, которая работает под управлением Microsoft Windows. Обе программы снабжены обширной справочной информацией о командах, процедурах и диалоговых окнах.

Для получения справки

  • Нажмите клавишу F1 в тот момент, когда Backup отображает экран, окно или диалоговое окно, о которых требуется получить информацию.

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

Чтобы резервное копирование было эффективно, его следует выполнять регулярными циклами. Цикл резервного копирования начинается с полного резервного копирования и включает в себя все последующие процедуры добавочного и разностного копирования. Новый цикл резервного копирования начинается тогда, когда Вы снова выполняете полное копирование того же самого набора файлов.

Использование настроечных файлов

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

Файл DEFAULT.SET содержит установки, которые принимаются по умолчанию в основном экране при запуске Backup. Файл содержит также информацию, которую программа Backup получает при выполнении тестов на совместимость, например, информацию о емкости дискет, используемых в Ваших дисководах. Если Вы еще не создали своих настроечных файлов или не задали файл настройки, то при открытии диалогового окна Backup в текстовом поле «Setup File» [Настроечный файл] подставляется файл DEFAULT.SET.

Для получения указаний по использованию настроечных файлов выполните одну из следующих процедур:

  • Если используется версия Backup для Windows, то выберите в меню Help команду Index. Когда появится алфавитный указатель тем справки, нажмите клавишу PAGE DOWN И в разделе «Miscellaneous» выберите «Setup Files».
  • Если используется версия Backup для MS-DOS, то выберите в меню Help команду Index. Когда появится экран Backup Help Topics, нажимайте клавишу PAGE DOWN до тех пор, пока не увидите раздел «Backing Up». После этого выберите «Backup Commands and Options», а когда появится экран Backup Commands and Options, выберите одну из трех первых тем.

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

Одним из результатов резервного копирования является создание каталога резервного копирования, который содержит информацию о сохраненных файлах. Когда потребуется восстановить один или несколько файлов, можно будет загрузить каталог резервного копирования и легко выбрать нужные файлы из набора резервного копирования. Программа Backup присваивает каждому каталогу резервного копирования уникальное имя.

Каждый раз, когда Вы выполняете полное резервное копирование, используя определенный настроечный файл, Backup создает главный каталог. Главный каталог отслеживает все каталоги резервного копирования, которые создаются в течение цикла резервного копирования. Когда Вы начинаете новый цикл копирования, выполняя полное копирование, Backup создает новый главный каталог. Главный каталог используется в случае необходимости восстановления данных, сохранявшихся в течение всего цикла.

Когда выполняется резервное копирование файлов, программа Backup помещает одну копию каталога резервного копирования на жесткий диск, а вторую копию — на тот носитель информации, который содержит набор резервного копирования. Если удалить или испортить каталог, находящийся на жестком диске, то можно извлечь его копию из набора резервного копирования.

Использование Backup

Этот раздел описывает, как запускать программу резервного копирования, использовать настроечные файлы, выбирать файлы, которые следует копировать, и настраивать опции Backup. При первом запуске программы Backup, будет выполнен набор тестов на совместимость, результаты которых программа Backup использует для настройки на аппаратуру компьютера. Файлы программы Backup должны находиться на жестком диске. Запускать программу Backup с дискет нельзя.

Замечание Если Вы хотите, чтобы наборы резервного копирования можно было использовать как с программой Microsoft Backup, так и с программой Norton Backup™, обратитесь в компанию Symantec™ для получения обновленной версии Norton Backup.

Для запуска программы Backup (MS-DOS)

  • В командной строке наберите следующее:
  • Нажмите кнопку Backup.

Появится следующий экран:

Для запуска программы Backup (Windows)

  • Выберите значок Backup в группе Microsoft Tools диспетчера программ. Можно получить тот же результат, если в меню Tools диспетчера файлов выбрать команду Backup. Появится следующий экран:

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

Для создания резервной копии всех файлов, хранящихся на диске

  • В рамке «Backup From» выберите диск с файлами, подлежащими копированию, а затем нажмите клавишу ПРОБЕЛ. Появится сообщение о том, что Backup считывает информацию о диске или каталоге. По завершении чтения рядом с выбранным диском появится сообщение: «All Files» [Все файлы].
  • Повторите шаг 1 для каждого диска, на котором требуется выполнить резервное копирование.

Для создания резервной копии выбранных каталогов или файлов

  • Нажмите кнопку Select Files [Выбрать файлы]. Появится экран Select Backup Files.
  • Если будет отображен не тот диск, который нужен, то сначала выберите нужный диск, а затем каталог, содержащий подлежащие резервному копированию файлы.
  • Нажмите клавишу ПРОБЕЛ для выделения всех файлов в каталоге.
  • Чтобы указать группу файлов в каталоге, проделайте следующую процедуру: выделите файл и нажмите клавишу ПРОБЕЛ. Повторите эту процедуру для всех нужных файлов каталога. По завершении можно будет рядом с каталогом увидеть пометку и список всех выбранных файлов.
  • Повторяйте шаги 2 и 3 до тех пор, пока не будут выбраны все файлы, которые требуется скопировать. По завершении выбора файлов нажмите кнопку ОК.

Замечание: Если все файлы уже выбраны, выбор можно отменить, нажав клавишу ПРОБЕЛ, или вернуться к предыдущему экрану, нажав клавишу ESC. Рядом с буквой диска появится сообщение «All Files» [Все файлы]. Чтобы отменить выбор, нажмите клавишу ПРОБЕЛ, а затем выберите отдельные файлы так, как это описано в предыдущей процедуре. Отменить выбор файла или каталога также можно нажатием клавиши ПРОБЕЛ.

С помощью кнопок Include, Exclude и Special, находящихся в экране Select Backup Files, Вы можете выбирать группы файлов.

Для выбора опции резервного копирования

  • В диалоговом окне Backup нажмите кнопку Options. Появится диалоговое окно, позволяющее установить опции резервного копирования.
  • Выберите нужную опцию, а затем нажмите клавишу ПРОБЕЛ. Повторите это для всех нужных опций. Рядом со всеми выбранными опциями появятся пометки.
  • Когда Вы закончите выбор опций Backup, нажмите кнопку ОК.

Конфигурация программы Backup

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

Конфигурация программы Backup для MS-DOS

При использовании версии Backup для MS-DOS параметры видеоадаптера, мыши и устройств резервного копирования можно выбрать с помощью диалогового окна Configure.

Для конфигурации видеоадаптера и мыши

  • В основном экране нажмите кнопку Configure. Появится диалоговое окно Configure.
  • В диалоговом окне Configure нажмите кнопку Video and Mouse.
  • Появится диалоговое окно Video and Mouse Configuration.
  • Измените нужным образом параметры видеоадаптера и мыши, а затем нажмите кнопку ОК.
  • Чтобы сохранить изменения для последующего использования, в диалоговом окне Configure нажмите кнопку Save. Если нужно, чтобы изменения действовали только в течении текущего сеанса резервного копирования, нажмите кнопку ОК.

Для конфигурации устройства резервного копирования

  • В основном экране нажмите кнопку Configure.
  • В диалоговом окне Configure нажмите кнопку Backup Devices. Появится диалоговое окно Backup Devices.
  • Измените нужным образом конфигурацию устройств резервного копирования или, чтобы сделать это автоматически, нажмите кнопку Auto Config, а затем нажмите кнопку ОК.
  • Чтобы сохранить изменения для последующего использования, в диалоговом окне Configure нажмите кнопку Save. Если нужно, чтобы изменения действовали только в течение текущего сеанса резервного копирования, нажмите кнопку ОК.

Конфигурация программы Backup для Windows =

Если Вы используете версию Backup для Windows, то можно задать типы дисководов, имеющихся на компьютере. Сделанные изменении начинают действовать сразу и действуют до завершения работы программы Backup.

  • После выполнения резервного копирования файлов Вы можете убедиться в том, что файлы из набора резервного копирования являются точными копиями исходных файлов, находящихся на жестком диске. Для этого используется команда Compare. Сравнивать можно один файл, выборочные файлы или все файлы, которые находятся в наборе резервного копирования. Чтобы получить информацию об использовании команды Compare, нажмите кнопку Compare в основном экране или окне, а затем нажмите клавишу F1.

Для конфигурации дисков

  • В основном окне программы Backup нажмите кнопку Configure Появится экран примерно такого вида:
  • Если Вы хотите, чтобы программа Backup автоматически определила диски, нажмите кнопку Auto Floppy Configure. Остальные шаги данной процедуры выполнять не следует.
  • Если Вы хотите самостоятельно определить диски, выберите тот, с которого хотите начать конфигурацию.
  • Откройте список типов дисков и выберите подходящий.
  • Если нужно сконфигурировать другой диск, то повторите вторую половину шага 2, а затем повторите шаг 3.
  • Чтобы сохранить изменения для последующих сеансов резервного копирования, завершите работу программы Backup. Появится диалоговое окно Exit Backup. Установите флажок «Save Configuration», а затем нажмите кнопку ОК.

Для восстановления резервной копии

  • В основном экране программы Backup нажмите кнопку Restore. Если Вы используете версию Backup для MS-DOS, появится следующее окно:

Восстановление файлов

  • При восстановлении файлов они восстанавливаются из набора резервного копирования в указанное место.
  • Если же используется версия Backup для Windows, то окно будет выглядеть следующим образом:
    • Чтобы выбрать каталог, соответствующий тому набору резервной’ копирования, который Вы собираетесь восстановить, откройте список «Backup Set Catalog».
    • Если Вы используете версию Backup для MS-DOS, то появится диалоговое окно Backup Set Catalog. С помощью клавиш со стрелками и клавиши ПРОБЕЛ выберите нужный каталог, а затем нажмите кнопку Load.
    • Если используется версия Backup для Windows, то появится список имеющихся каталогов. Выберите нужный каталог, а затем нажмите клавишу TAB.
  • Откройте список «Restore From».
    • Если Вы используете версию Backup для MS-DOS, то появится диалоговое окно Restore From. Выберите диск, который содержит файлы, подлежащие восстановлению, а затем нажмите кнопку ОК. Если Вы выбрали значение «MS-DOS Drive and Path», то в главном экране появится поле ввода Restore. ** Выберите местоназначение для файлов, которые требуется восстановить, а затем нажмите клавишу TAB.
    • Если используется версия Backup для Windows, то появится список дисков. Выберите диск, который содержит файлы, подлежащие восстановлению, а затем нажмите клавишу TAB. Если Вы выбрали значение «MS-DOS Path», то под списком «Restore From» появится поле ввода. Наберите в нем путь (куда восстанавливать), а затем нажмите клавишу TAB.
  • В рамке «Restore Files» выберите диск, который содержит файлы, подлежащие восстановлению.
    • Если требуется восстановить все файлы на диске, нажмите клавишу ПРОБЕЛ. Рядом с буквой диска появится текст «All Files» [Все файлы]. Если Вы хотите восстановить файлы выборочно, то нажмите клавишу ENTER. Появится экран Select Restore Files. Выберите каталог, который содержит файлы, подлежащие восстановлению. Программа отобразит список файлов, находящихся в выбранном каталоге. Выберите нужный файл, а затем нажмите клавишу ПРОБЕЛ. Повторите это для всех файлов каталога, подлежащих восстановлению.
  • Чтобы задать каталог назначения для восстанавливаемых файлов, откройте список «Restore То».
    • Если Вы используете версию Backup для MS-DOS, то появится диалоговое окно Restore То. Выберите местоназначение для файлов, которые требуется восстановить, а затем нажмите кнопку ОК.
    • При использовании Backup для Windows появится список местоположений. Выберите местоназначение для файлов, которые требуется восстановить, а затем нажмите клавишу TAB.
    • Если требуется изменить опции Restore, нажмите кнопку Options. Выберите или отмените опции, а затем нажмите кнопку ОК.

Нажмите кнопку Start Restore. Начнется процесс восстановления файлов, по ходу которого программа Backup будет отображать информацию о текущем состоянии.

Если появится сообщение «DMA buffer size too small» [Буфер DMA слишком мал]

Если на Вашем компьютере установлена система Windows или драйвер EMM386, то программа Backup для MS-DOS может при выполнении теста на совместимость (или при попытке начать резервное копирование) выдать следующее сообщение:

Если Вы получили это сообщение, то выполните следующую процедуру:

Для увеличения размера буфера DMA при использовании Windows

  • С помощью любого текстового редактора откройте файл SYSTEM.INI, который находится в каталоге Windows.
  • Найдите в этом файле раздел [386Enh] и добавьте в него следующую строку:
  • Сохраните файл SYSTEM.INI и выйдите из редактора.
  • Если система Windows активна, то выйдите из нее.
  • Запустите Windows.

Защита от компьютерных вирусов

Компьютерные вирусы — это программы, целью которых является скрытое распространение и размножение. Компьютерные вирусы могут проявляться многими способами. В некоторых случаях они могут повреждать файлы и диски.

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

Для создания загрузочной дискеты

  • Вставьте неформатированную дискету в дисковод А, а затем в командной строке наберите следующее:
  • Скопируйте файлы программы Anti-Virus на загрузочный диск, набрав в командной строке следующее:

Эти файлы находятся в каталоге, содержащем файлы MS-DOS.

Справка по программе Anti-Virus

Программа Anti-Virus содержит обширную справочную информацию о диалоговых окнах, опциях и процедурах.

Для получения справки

  • В тот момент, когда отображается окно, экран или диалоговое окно программы Anti-Virus, нажмите клавишу F1.

Поиск вирусов

Средство Anti-Virus защищает компьютер от вирусов, проверяя диски и память компьютера.

Для проверки на наличие вирусов с помощью Anti-Virus для MS-DOS

  • В командной строке наберите следующее:
  • Появится экран с основным меню.
  • Чтобы проверить тот диск, с которого была запущена программа Anti-Virus, перейдите к пункту 5. Чтобы проверить другой диск, продолжайте с пункта 3.
  • Нажмите кнопку Select New Drive. Слева в верней части экрана появится список дисков.
  • Выберите диск, требующий проверки. Программа Anti-Virus загрузит информацию о файлах выбранного диска.
  • Нажмите кнопку Detect and Clean, если хотите сразу уничтожить обнаруженные вирусы. Если хотите сначала обнаружить вирусы и при их обнаружении получить запрос о дальнейших действиях, нажмите кнопку Detect.
  • По окончании проверки выбранного диска и памяти компьютера программа Anti-Virus выдаст окно с информацией о текущем состоянии системы. Нажмите кнопку ОК.

Для проверки на наличие вирусов с помощью Anti-Virus для Windows

  • В группе Microsoft Tools выберите значок программы Anti-Virus. Или выберите команду Anti-Virus в меню Tools диспетчера файлов.
  • Когда появится диалоговое окно, в списке «Drives» выберите диск, который нужно проверить. Программа Anti-Virus загрузит информацию о файлах на выбранном диске.
  • Повторите шаг 2 для всех проверяемых дисков.
  • Нажмите кнопку Detect and Clean, если хотите обнаружить и уничтожить вирусы. Если хотите сначала обнаружить вирусы и при их обнаружении получить запрос о дальнейших действиях, нажмите кнопку Detect.
  • По окончании проверки выбранного диска и памяти компьютера программа Anti-Virus выдаст окно с информацией о текущем состоянии системы. Нажмите кнопку ОК.

Автоматический поиск вирусов

Если Вы используете Anti-Virus для MS-DOS, то есть возможность автоматической проверки наличия вирусов в памяти компьютера и на дисках при каждой загрузке. Если используется версия Anti-Virus для Windows, то есть возможность автоматически проверять указанный диск при каждом запуске программы Anti-Virus.

Для автоматической проверки на наличие вирусов с помощью Anti-Virus для MS-DOS

  • Добавьте в файл AUTOEXEC.BAT команду msav /р, если хотите, чтобы программа Anti-Virus проверяла память компьютера и диски при каждой загрузке компьютера.
  • Если Вы используете диски, которые подключены через сеть то, чтобы ограничить поиск только локальными дисками, используйте следующую команду:

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

Для задания команды запуска Anti-Virus в среде Windows

  • В группе Microsoft Tools выберите (но не запускайте) значок программы Anti-Virus.
  • В меню File [Файл] диспетчера программ выберите команду Properties [Свойства]. Появится диалоговое окно Program Item Properties [Свойства Программного Элемента].
  • В рамке «Command Line» [Командная Строка] укажите диск, который должен проверяться автоматически. Буква диска должна следовать за командой MWAV.EXE, которая уже есть в рамке «Command Line». Например, чтобы задать, что программа Anti-Virus должна проверять диск С, убедитесь, что текст в рамке «Command Line» выглядит следующим образом:
  • Нажмите кнопку ОК.

Определение параметров программы Anti-Virus

Для определения параметров программы Anti-Virus

  • Если Вы используете версию Anti-Virus для MS-DOS, нажмите кнопку Options. Если используется версия Anti-Virus для Windows, в меню Options выберите команду Set Options. Появится диалоговое окно Options.
  • Перемещайтесь по флажкам, нажимая клавишу TAB.
  • Нажмите клавишу ПРОБЕЛ, чтобы установить или сбросить флажок.
  • Определив все опции, нажмите кнопку ОК.

Использование программы VSafe

VSafe — это резидентная программа, которая постоянно контролирует Ваш компьютер на предмет обнаружения деятельности, которая может быть расценена как проявление вируса. Если такая подозрительная деятельность обнаружится, программа VSafe выдаст предупреждающее сообщение. Для работы VSafe требуется около 44К оперативной памяти.

Для запуска программы VSafe

  • В командной строке наберите следующее:

Эта команда загружает VSafe в оперативную память, используя стандартные настройки. VSafe можно загружать в память компьютера при каждой перезагрузке, добавив в файл AUTOEXEC.BAT команду vsafe.

Для изменения опций программы VSafe

  • Нажмите клавиши ALT+V. Появится экран VSafe Warning Options.
  • Чтобы включить или выключить какую-либо опцию, нажмите цифру, соответствующую этой опции.
  • Задав все опции, нажмите клавишу ESC. VSafe сохранит внесенные изменения.

Для выгрузки программы VSafe из памяти

  • Нажмите клавиши ALT+V. Появится экран VSafe Warning Options.
  • Нажмите клавишу ALT+U. MS-DOS выгрузит VSafe из памяти.

Для установки VSafe и VSafe Manager в среде Windows

  • В меню File [Файл] диспетчера программ выберите команду Run [Выполнить].
  • В текстовом поле «Command Line» [Командная Строка] наберите sysedit, а затем нажмите кнопку ОК. Появится редактор файлов конфигурации системы со следующими открытыми файлами:
  • В файл AUTOEXEC.BAT добавьте следующую команду:
  • В строку load= раздела [Windows] файла WIN.INI добавьте следующую команду:
  • В меню File выберите команду Exit [Выход], а затем в ответ на вопрос о необходимости сохранить изменения нажмите кнопку Yes [Да].
  • Завершите работу системы Windows, а затем перезагрузите компьютер, нажав клавиши CTRL+ALT+DEL.
  • При добавлении команды vsafe в файл AUTOEXEC.BAT можно также задать один или несколько переключателей, которые задают метод контроля деятельности компьютера. Можно получить более подробную информацию, набрав в командной строке следующее: help vsafe.
  • Если Вы используете систему Windows версии 3.1, то значок VSafe Manager можно добавить в группу StartUp [Группа Запуска] вместо того, чтобы добавлять команду mwavtsr.exe в строку Ioad= файла WIN.INI. Для этого выполните следующую процедуру.

Для добавления значка VSafe Manager в группу StartUp при использовании Windows версии 3.1

  • Откройте группу Startup. В меню File выберите команду New [Создать].
  • Появится диалоговое окно New Program Object [Новый Программный Объект]. Нажмите кнопку ОК. Появится диалоговое окно Program Item Properties [Свойства Программного Элемента].
  • В рамке «Description» наберите следующее: VSafe Manager
  • В рамке «Command Line» [Командная Строка] наберите mwavtsr.exe, а затем нажмите кнопку ОК.
  • Завершите работу системы Windows, а затем перезагрузите компьютер, нажав клавиши CTRL+ALT+DEL.

Предупреждение: Не запускайте программу установки MS-DOS 6.22 или Windows до тех пор, пока не выгрузите средство VSafe из памяти.

Разрешение проблем, связанных с использованием средства Anti-Virus

Для сокращения количества сообщений Anti-Virus, выдаваемых после обновления программного обеспечения

  • Просканируйте с помощью Anti-Virus дистрибутивные диски перед установкой программного обеспечения на жесткий диск.
  • Защитите дистрибутивные диски по записи.
  • Выполните процедуру установки программного обеспечения.
  • Просканируйте диск, на который Вы установили программное обеспечение на наличие вирусов. При этом информационные файлы программы Anti-Virus обновятся автоматически.

Сообщение «Virus Found» [Найден вирус]

  • Если программа Anti-Virus обнаружит вирус, будет выдано диалоговое окно Virus Found.
  • Когда появится диалоговое окно Virus Found, Вы можете поступить одним из следующих способов:
  • Удалить вирус из файла и вернуть файл в его исходное состояние, нажав кнопку Clean. Это минимизирует возможности вируса инфицировать другие файлы.
  • Проигнорировать наличие вируса и продолжить проверку остальных файлов, нажав кнопку Continue.
  • Прекратить проверку и вернуться к программе Anti-Virus, нажав кнопку Stop.
  • Удалить инфицированный файл, нажав кнопку Delete.

Сообщение «Verify Error» [Ошибка верификации]

  • Если были выбраны опции «Verify Integrity» и «Prompt While Detect», программа Anti-Virus предупреждает Вас об изменении состояния выполнимых файлов, отображая диалоговое окно. Это окно содержит информацию о файле, состояние которого изменилось с момента предыдущей проверки.
  • Microsoft Anti-Virus отображает следующие параметры файла: атрибуты (R-Read-Only, H-Hidden, S-System, A-Archive), время, дата, размер и контрольная сумма.

Программа Anti-Virus предоставляет следующие возможности:

  • Если Вы знаете, что данное изменение правильно, нажмите кнопку Update, что позволит избежать повторной выдачи этого сообщения при последующих проверках.
  • Если Вы знаете об изменении, но не хотите обновлять информацию программы Anti-Virus, нажмите кнопку Continue.
  • Если Вы хотите удалить измененный файл, нажмите кнопку Delete.
  • Если нужно остановить процесс проверки и возвратиться к экрану программы Anti-Virus, нажмите кнопку Stop.

Сообщение «File was destroyed by the virus» [Файл разрушен вирусом]

  • Если файл существенно поврежден или его содержимое полностью уничтожено вирусом, программа Anti-Virus отобразит соответствующее диалоговое окно. Вы имеете следующие возможности:
  • Удалить файл, нажав кнопку Delete.
  • Продолжить проверку, нажав кнопку Continue.
  • Остановить процесс проверки и возвратиться к экрану программы Anti-Virus, нажав кнопку Stop.

Сообщение «Program is trying to modify system memory» [Программа пытается изменить память системы]

  • Это предупреждение выдается, если средство VSafe обнаружит, что какая-то программа пытается изменить содержимое памяти компьютера нестандартным способом.
  • Часто такое изменение памяти указывает на попытку вируса инфицировать Ваш компьютер. Однако это сообщение иногда может быть получено при нормальной загрузке некоторых сетевых драйверов.

Если какая-то программа изменяет память системы

  • Если Вы уверены, что загружается сетевой драйвер, нажмите кнопку Continue. В противном случае нажмите кнопку Stop.
  • В любом случае используйте программу Anti-Virus, чтобы убедиться, что компьютер не инфицирован вирусом.

Сообщение «Program is trying to stay resident in memory» [Программа пытается остаться резидентной в памяти]

  • Программа VSafe выдает это сообщение, если была запрошена опция «Resident» и была обнаружена какая-то программа, пытающаяся остаться резидентной.

Если программа пытается остаться резидентной

  • Если Вы уверены, что должны загружаться резидентные программы, нажмите кнопку Continue. Если же резидентные программы запускаться не должны, нажмите кнопку Stop.
  • В любом случае используйте программу Anti-Virus, чтобы убедиться, что компьютер не инфицирован вирусом.

Сообщение «Program is trying to write to disk» [Программа пытается записать на диск]

  • Программа VSafe выдает это сообщение, если была запрошена опция «General Write Protect» и была обнаружена какая-то программа, которая пытается записать на диск.

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

  • Если запись на диск является ожидаемым событием, нажмите кнопку Continue. Если кажется, что такого быть не должно, нажмите кнопку Stop.
  • Запустите Anti-Virus, чтобы убедиться в том, что программа, которая собирается записать на диск, не инфицирована.
  • Сообщение «Resident programs were loaded after VSafe» [После VSafe были загружены резидентные программы]
  • Это сообщение появляется, если Вы пытаетесь удалить VSafe из памяти, но после программы VSafe загружались другие резидентные программы.

Для удаления из памяти других резидентных программ

  • Нажмите кнопку Stop, чтобы оставить VSafe в памяти.
  • Если возможно, удалите из памяти резидентные программы в порядке обратном порядку их загрузки.
  • Удалите VSafe из памяти.
  • Если невозможно удалить из памяти резидентную программу, то удалите команду файла AUTOEXEC.BAT, запускающую эту программу. После этого перезагрузите свой компьютер, нажав клавиши CTRL+ALT+DEL.

Сообщение «Since a virus was detected. » [Поскольку был обнаружен вирус. ]

  • Такое предупреждение выдается при завершении программы Anti-Virus после обнаружения вируса.

Для завершения работы программы Anti-Virus после обнаружения вируса

  • Если Anti-Virus выдаст это сообщение, то для перезагрузки системы нажмите кнопку Reboot.

Сообщение «The хххххх virus is known to infect DATA files». [Известно, что вирус хххххх инфицирует файлы данных]

  • Данное предупреждающее сообщение выдается в том случае, если не была установлена опция «Check All Files» [Проверять все файлы] и программа Anti-Virus обнаружила наличие вируса, заражающего файлы данных.

Другие неприятности

После удаления вируса программа перестала правильно работать

Для восстановления программы, переставшей работать после удалении вируса

  • Удалите файл программы.
  • Восстановите файл программы из резервной копии или установите программный продукт заново.
  • Система Windows не запускается
  • Система Windows может не запускаться, если ее системные файлы инфицированы. Чтобы обнаружить и удалить вирусы из системных файлов Windows, используйте версию Anti-Virus для MS-DOS.
  • Нажатие клавиш ALT+V не отображает экран VSafe Warning Options
  • Комбинация клавиш ALT+V работает только тогда, когда Вы используете версию Anti-Virus для MS-DOS и программа VSafe была загружена в память. * Если эти условия выполнены, а Вы все равно не можете использовать комбинацию клавиш ALT+V, то возможно, что эту же комбинацию использует другая резидентная программа. В этом случае можно изменить комбинацию клавиш, на которую будет реагировать программа VSafe. Для этого в команде vsafe следует задать переключатель /а и букву, которая будет использоваться вместе с клавишей ALT для активизации диалога программы VSafe.

При использовании программы Anti-Virus компьютер «виснет»

  • Если нарушена структура каталогов жесткого диска, то при использовании программы Anti-Virus компьютер может «виснуть».

Для восстановления структуры каталогов жесткого диска

  • Завершите работу программы Anti-Virus. Если этого сделать не удастся, то перезагрузите компьютер, нажав клавиши CTRL+ALT+DEL.
  • Чтобы восстановить структуру каталогов, в командной строке наберите следующее:

Запустите программу Anti-Virus еще раз.

Использование программы SMARTDrive

Программа SMARTDrive резервирует блок дополнительной памяти, в котором запоминается информация, недавно считанная с диска. Очень часто приложения повторно запрашивают одну и ту же информацию, и в таких случаях они получают ее намного быстрее, поскольку информация уже находится в оперативной памяти компьютера, а не на диске. Если программа SMARTDrive совместима с компьютером, то программа установки MS-DOS добавляет команду smartdrv в файл AUTOEXEC.BAT.

Использование дефрагментатора =

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

Для дефрагментации файлов, находящихся на жестком диске

  • Завершите работу всех активных программ, включая систему Windows. Запускать дефрагментатор под управлением Windows нельзя.
  • Проверьте правильность распределения пространства жесткого диска, набрав в командной строке следующее: chkdsk /f
  • Если MS-DOS обнаружит ошибки распределения, то будет выдано примерно следующее сообщение:
  • Для корректировки найденных ошибок распределения нажмите клавишу Y.
  • Запустите дефрагментатор, набрав в командной строке следующее:
  • Дефрагментатор отобразит список дисков, имеющихся на компьютере.
  • Чтобы выбрать диск, воспользуйтесь клавишами СТРЕЛКА ВВЕРХ или СТРЕЛКА вниз, а затем нажмите клавишу ENTER. Дефрагментатор проанализирует данные, хранящиеся на диске, и предложит параметры дефрагментации.
  • Для начала процесса дефрагментации, нажмите клавишу ENTER.
  • Если Вы хотите изменить установки или получить более подробную информацию о текущих установках до того, как начать дефрагментацию, нажмите клавишу TAB для выделения кнопки Configure, а затем нажмите клавишу ENTER. Появится меню Optimize

Восстановление удаленных файлов

Для восстановления ошибочно удаленных файлов имеется две версии программы Undelete: версия Undelete для MS-DOS и версия Undelete для Windows.

Настройка защиты от удаления

Средство Undelete предоставляет три уровня защиты: Delete Sentry, Delete Tracker и стандартный. Delete Sentry обеспечивает наивысший уровень защиты. Он занимает некоторое количество оперативной памяти и дискового пространства. Delete Tracker, следующий уровень защиты, требует такого же количества оперативной памяти, но меньшего места на диске. Низший уровень защиты — стандартный -вообще не занимает ни памяти, ни дискового пространства и, тем не менее, позволяет восстановить большинство удаленных файлов. По умолчанию система MS-DOS 6.22 конфигурирует компьютер для использования стандартного уровня защиты от удаления.

Для выбора уровня защиты от удаления при использовании Undelete для MS-DOS

  • Чтобы выбрать уровень Delete Sentry для текущего диска, в командной строке наберите следующее: undelete Is Чтобы выбрать уровень Delete Tracker, в текст команды undelete следует включить переключатель /t и имя диска, который требуется защитить.

Для выбора уровня защиты от удаления при использовании Undelete для Windows

  • Запустите программу Undelete для Windows, выбрав значок Undelete в группе Microsoft Tools диспетчера программ, или в меню File диспетчера файлов выберите команду Undelete.
  • В меню Options программы Undelete выберите команду Configure Delete Protection. Появится диалоговое окно Configure Delete Protection. Выберите тип защиты от удаления, а затем нажмите кнопку ОК.
  • Если Вы выбрали «Delete Sentry», появится соответствующее диалоговое окно. Нажмите кнопку Drives. Выберите диски, которые Вы хотите защитить, а затем нажмите кнопку ОК. По завершении выбора нажмите кнопку ОК.
  • Если Вы выбрали «Delete Tracker», укажите диски, которые Вы хотите защитить, а затем нажмите кнопку ОК. Появится диалоговое окно Update AUTOEXEC.BAT.
  • Чтобы включить защиту от удаления, нажмите кнопку ОК.
  • Чтобы выбранный метод защиты начал действовать, необходимо завершить работу системы Windows и перезагрузить компьютер, нажав клавиши CTRL+ALT+DEL.

Программа Undelete для Windows

Успешность восстановления удаленных файлов зависит от их состояния. Возможные состояния удаленного файла перечислены в следующей таблице:

Состояние Комментарии
«Perfect» Был защищен методом Delete Sentry и может быть полностью восстановлен.
«Excellent» Был защищен методом Delete Tracker. Этот файл может бы частично перезаписан другими данными.
«Good» Файл на диске фрагментирован. Часть данных файла моя быть утеряна.
«Poor» Не может быть восстановлен с помощью Undelete для Windows. Можно предпринять попытку частичного восстановления с помощью версии Undelete для MS-DOS.
«Destroyed» Восстановление невозможно.

Для восстановления файла

  • Запустите программу Undelete, выбрав ее значок в группе Microsoft Tools диспетчера программ или выбрав в меню File диспетчера файлов команду Undelete.
    • Если файл, подлежащий восстановлению, отсутствует в отображаемом на экране списке, нажмите кнопку Drive/Dir. После этого выберите диск и каталог, который содержит удаленный файл.
  • На экране появится список файлов, которые были удалены из выбранного каталога. Если состояние файла имеет значение «Excellent» или «Perfect», то его можно легко восстановить.
    • Если состояние файла имеет значение «Good», то перед выполнением остальной части этой процедуры см. следующий раздел «Восстановление файла, находящегося в состоянии Good».
    • Если состояние файла имеет значение «Poor», то его невозможно восстановить с помощью версии Undelete для Windows. Однако можно попытаться восстановить часть данных файла с помощью версии Undelete для MS-DOS.
    • Если состояние файла имеет значение «Destroyed», то его восстановление невозможно.
  • Выберите файл, который нужно восстановить, а затем нажмите кнопку Undelete.
    • Если вместо первой буквы имени удаленного файла указан вопросительный знак, программа Undelete отобразит диалоговое окно, предлагающее задать первую букву имени удаленного файла. Если это диалоговое окно появится, то наберите недостающую букву, а затем нажмите кнопку ОК. Состояние файла в списке изменится на «Recovered».

Для восстановления файла, состояние которого имеет значение «Good»

  • В группе Microsoft Tools выберите значок программы Undelete. Появится основной экран программы Undelete.
  • Чтобы выбрать каталог, в котором находится файл, подлежащий восстановлению, нажмите кнопку Drive/Dir. Выберите нужный каталог, а затем нажмите кнопку ОК.
  • Выберите файл, который нужно восстановить, а затем в меню File выберите команду Undelete То. Появится диалоговое окно Undelete То.
  • Выберите диск и каталог, в котором должен располагаться восстановленный файл, а затем нажмите кнопку ОК.

Для восстановления каталога

  • Для запуска программы Undelete выберите соответствующий значок в группе Microsoft Tools диспетчера программ или же выберите команду Undelete в меню File диспетчера файлов.
    • Если каталог, подлежащий восстановлению, отсутствует в отображаемом на экране списке, нажмите кнопку Drive/Dir. После этого выберите диск, который содержит нужный каталог. Удаленный каталог при отображении в списке имеет пометку dir.
  • Выберите каталог, который нужно восстановить, а затем нажмите кнопку Undelete. Если программе удается найти все элементы каталога, то он восстанавливается и его состояние меняется на «Recovered».
    • Если каталог содержит группу файлов, которые Вы хотите восстановить, нажмите кнопку Add. В противном случае нажмите кнопку Skip. Программа Undelete отобразит следующую группу файлов.
  • Повторяйте шаг 4 до тех пор, пока Вы не проидентифицируете все группы файлов, находившиеся в удаленном каталоге. После этого нажмите кнопку Undelete. Каталог восстанавливается и его состояние меняется на «Recovered».
    • Если Вы не можете найти удаленные файлы с помощью диалогового окна Change Drive and Directory, то их можно поискать, нажав кнопку Find.
    • Если используется метод Delete Sentry, то Вы можете задать, сколько дней должны храниться удаленные файлы и максимальный процент дискового пространства, который они могут занимать. Удаленные файлы окончательно уничтожаются, если прошло указанное время или если дисковое пространство, которое они занимают, требуется для размещения других файлов.
  • Сначала уничтожаются самые старые удаленные файлы. Вы можете также уничтожить удаленные файлы вручную с помощью программы Undelete. Самостоятельное уничтожение удаленных файлов предоставляет больше места для сохранения вновь удаляемых файлов.

Для уничтожения файлов, защищенные методом Delete Sentry В группе Microsoft Tools выберите значок Undelete. Появится основной экран программы Undelete. Чтобы выбрать каталог, файлы из которого Вы хотите уничтожить, нажмите кнопку Drive/Dir. Выберите каталог, а затем нажмите кнопку ОК. Выберите файлы, которые нужно уничтожить. Файлы, защищенные методом Delete Sentry, имеют состояние «Perfect». В меню File выберите команду Purge Delete Sentry File. Появится диалоговое окно, запрашивающее подтверждение на уничтожение файлов. Нажмите кнопку ОК. Выбранные файлы исчезнут навсегда.

Undelete для MS-DOS

Для восстановления файлов

  • Сделайте каталог, содержащий удаленные файлы, текущим.
    • Например, если удаленные файлы находятся в каталоге DOS, в командной строке наберите следующее:
  • В командной строке наберите следующее:
  • По мере обнаружения удаленных файлов программа перечисляет их по одному и выдает запрос, нужно ли восстанавливать указанный файл. Чтобы восстановить файл, нажмите клавишу Y. Программа может также попросить Вас задать первую букву имени файла.

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

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

ГЛАВА 4. Настройка системы

Значительная часть информации о настройке системы хранится в двух файлах, находящихся в корневом каталоге диска, с которого производится загрузка:

  • Файл CONFIG.SYS содержит команды, которые касаются конфигурации аппаратуры компьютера (память, клавиатура, мышь, принтер и т.д.). Когда система MS-DOS загружается, то сначала выполняются инструкции, находящиеся в файле CONFIG.SYS.
  • Файл AUTOEXEC.BAT — это файл пакетной обработки, который система MS-DOS выполняет сразу после обработки файла CONFIG.SYS. Файл AUTOEXEC.BAT содержит команды, которые требуется выполнять при запуске системы.

Система MS-DOS выполняет команды, содержащиеся в файлах CONFIG.SYS и AUTOEXEC.BAT при каждой загрузке компьютера. При желании, есть возможность указать системе MS-DOS, что команды в этих файлах следует пропустить.

При установке системы MS-DOS 6.22 программа установки (Setup) формирует базовую конфигурацию системы, которая работоспособна для большинства компьютеров. У Вас, однако, может возникнуть желание изменить эту конфигурацию. Данная глава посвящена объяснению того, как настроить систему с помощью команд, находящихся в файлах CONFIG.SYS и AUTOEXEC.BAT.

Формирование файлов настройки

При загрузке компьютера MS-DOS сначала выполняет команды находящиеся в файле CONFIG.SYS, а затем — в файле AUTOEXEC.BAT. Эти файлы находятся в корневом каталоге того диска, с которого осуществляется загрузка (обычно это диск С). Для изменения конфигурации системы нужно отредактировать файлы CONFIG.SYS и AUTOEXEC.BAT.

Редактирование файлов CONFIG.SYS и AUTOEXEC.BAT

Для редактирования файлов CONFIG.SYS и AUTOEXEC.BAT следуем использовать текстовый редактор, который может сохранять файлы в виде неформатированного текста (например, MS-DOS Editor).

Система MS-DOS считывает содержимое файлов CONFIG.SYS и AUTOEXEC.BAT только при загрузке компьютера. Это означает, что для того, чтобы изменения, сделанные в указанных файлах, возымели действие, следует перезагрузить компьютер.

Для внесения изменений в файл CONFIG.SYS или AUTOEXEC.BAT

  • Сформируйте загрузочный диск с резервными копиями изменяемых файлов, вставив в дисковод А новую дискету и набрав в приглашении системы следующее:
  • Скопируйте свои файлы CONFIG.SYS и AUTOEXEC.BAT на только что созданный загрузочный диск, набрав в приглашении системы следующее:
  • Откройте файл CONFIG.SYS или AUTOEXEC.BAT, используя текстовый редактор. Чтобы использовать редактор MS-DOS, в приглашении системы наберите edit и, через пробел, имя файла.
  • Измените команды, находящиеся в файле CONFIG.SYS или AUTOEXEC.BAT, нужным образом. Каждая команда должна начинаться с новой строки.
  • Сохраните изменения и выйдите из редактора.
  • Уберите из дисководов все дискеты и перезагрузите компьютер, нажав клавиши CTRL+ALT+DEL.

Замечание: Установки, находящиеся в файлах CONFIG.SYS и AUTOEXEC.BAT, контролируют основные компоненты системы. Если изменения сделаны некорректно, то система может не загружаться. В таком случае поместите загрузочную дискету в дисковод А и нажмите клавиши CTRL+ALT+DEL.

Команды файла CONFIG.SYS

Команды, находящиеся в файле CONFIG.SYS, запускают специальные программы или определяют, как должна работать аппаратура. Типичный файл CONFIG.SYS содержит некоторые (но не все) из этих команд. Следующая ниже таблица дает краткое описание каждой команды, которая может находиться в файле CONFIG.SYS. Для получения более подробной информации наберите в командной строке help и имя интересующей команды.

Команда Назначение break Задает, должна ли система периодически проверять факт нажатия комбинаций клавиш прерывания CTRL+C или CTRL+BREAK. buffers Задает, сколько памяти система резервирует для буфера пересылки данных с дисков в память и наоборот. country Устанавливает языковые и национальные настройки. device Загружает устанавливаемый драйвер устройства — системный модуль, который управляет одним из компонентов аппаратуры, например, мышью.

Команда Назначение
break Задает, должна ли система периодически проверять факт нажатия комбинаций клавиш прерывания CTRL+C или CTRL+BREAK.
buffers Задает, сколько памяти система резервирует для буфера пересылки данных с дисков в память и наоборот.
country Устанавливает языковые и национальные настройки.
device Загружает устанавливаемый драйвер устройства — системный модуль, который управляет одним из компонентов аппаратуры, например, мышью.
devicehigh Загружает устанавливаемый драйвер устройства в верхнюю память.
dos Задает, будет ли MS-DOS использовать область верхней памяти (НМА) и обеспечивать доступ к блокам старшей памяти (UMB).
drivparm Устанавливает характеристики дисковода.
files Устанавливает максимальное количество одновременно открытых файлов.
install Загружает резидентную программу (TSR).
lastdrive Устанавливает количество букв логических дисков.
numlock Задает состояние клавиши NUM LOCK после загрузки.
rem или ; Указывает, что следующий далее текст является не командой а комментарием.
set Устанавливает значение переменной среды, например PROMPT или TEMP.
shell Конфигурирует COMMAND.COM или задает интерпретатор команд, если в качестве такового должен использоваться не COMMAND.COM.
stacks Задает размер памяти, резервируемой для обработки прерываний аппаратуры.
switches Задает некоторые специальные опции MS-DOS.

Файл CONFIG.SYS может также содержать команды include, menucoloi. menudefault, menuitem и submenu и некоторые другие.

Настройка драйверов аппаратуры

Каждый из блоков аппаратуры компьютера называется устройством. Клавиатура компьютера, мышь, монитор, принтер, диски и память — всё это устройства. Для управления отдельными устройствами система MS-DOS использует специальную программу, называемую драйвером устройства. Система содержит встроенные драйверы клавиатуры, монитора, жестких и гибких дисков и внешних портов связи. Вы можете адаптировать некоторые настройки этих устройств с помощью команд файла CONFIG.SYS.

Другие устройства, такие как мышь и дополнительные карты памяти, поставляются с устанавливаемыми драйверами устройств, которые называются так потому, что Вы специально устанавливаете их, добавляя соответствующие команды в файл CONFIG.SYS. Система MS-DOS поставляется с перечисленными ниже модулями устанавливаемых драйверов устройств. Для получения более подробной информации наберите в командной строке help и название интересующего Вас драйвера.

Драйвер Назначение
ANSI.SYS Поддерживает эмуляцию терминала ANSI (American National Standards Institute).
DISPLAY.SYS Поддерживает переключение кодовых страниц для монитора.
DBLSPACE.SYS Помещает модуль DBLSPACE.BIN на предназначенное ему место в памяти.
DRIVER.SYS Создает логический диск, который можно использовать для обращения к физическому дисководу для гибких дисков.
EGA.SYS Сохраняет и восстанавливает содержимое экрана при использовании средства MS-DOS Shell Task Swapper или среды Windows с монитором типа EGA.
EMM386.EXE Организует расширенную (expanded) память и обеспечивает доступ к области старшей памяти на компьютерах с процессором типа 80386 или выше, которые имеют дополнительную (extended) память.
HIMEM.SYS Управляет использованием дополнительной (extended) памяти на компьютерах с процессором типа 80286 или выше.
RAMDRIVE.SYS Создает виртуальный диск в оперативной памяти компьютера.
SETVER.EXE Загружает таблицу соответствий версий системы MS-DOS прикладным программам.
SMARTDRV.EXE Выполняет буферизацию для контроллеров жестких дисков, которые не могут работать с памятью, предоставляемой драйвером EMM386, или системой Windows, работающей в расширенном режиме (386 enhanced mode).

Определение порядка команд в файле CONFIG.SYS

Большинство команд могут располагаться в файле CONFIG.SYS в любом порядке. Однако, порядок команд device и devicehigh очень важен, поскольку некоторые драйверы устройств активизируют устройства, используемые другими драйверами. Например, драйвер дополнительной (extended) памяти HIMEM.SYS должен быть загрузка до драйверов, использующих дополнительную память.

Следующий список показывает порядок, в котором должны располагаться драйверы устройств в файле CONFIG.SYS;

  • HIMEM.SYS, если Ваш компьютер имеет дополнительную (extended память.
  • Драйвер расширенной (expanded) памяти, если она есть.
  • EMM386.EXE, если Ваш компьютер имеет процессор типа 80386 и дополнительную (extended) память.
  • Остальные драйверы устройств.

Пример файла CONFIG.SYS

Ниже приведен типичный файл CONFIG.SYS для компьютера с процессором типа 80386 с двумя или более мегабайтами дополнительной памяти:

  • Команды device загружают драйверы SETVER.EXE, HIMEM.SYS и EMM386.EXE. Драйвер SETVER.EXE управляет таблицей соответствия версий MS-DOS приложениям. Драйвер HIMEM.SYS управляет дополнительной памятью. Переключатель ram сообщаем драйверу EMM386.EXE о том, что требуется обеспечить доступ к области старшей памяти и эмулировать расширенную память.
  • Команда devicehigh загружает драйвер MOUSE.SYS, обеспечивающий управление мышью, в старшую память.
  • Команда buffers резервирует 20 буферов для пересылки информации между дисками и памятью.
  • Команда files задает максимальное количество одновременно открытых файлов.
  • Команда break обеспечивает регулярную проверку нажатия комбинаций клавиш CTRL+C или CTRL+BREAK.
  • Команда dos=high, umb помещает MS-DOS в область верхней памяти и обеспечивает программам доступ к блокам старшей памяти.

Команды файла AUTOEXEC.BAT

Пакетная программа — это текстовый файл, который содержит последовательность команд. Файл AUTOEXEC.BAT является специальной пакетной программой, которая выполняется при каждой загрузке компьютера. Ниже приведен список команд, которые часто используются в файле AUTOEXEC.BAT. Для получения более подробной информации наберите в командной строке help и имя интересующей Вас команды.

Команда Назначение
prompt Устанавливает вид приглашения системы.
mode Устанавливает характеристики портов ввода и вывода.
path Задает последовательность каталогов, просматриваемых системой MS-DOS при поиске выполнимых файлов.
echo off Указывает системе, что не следует отображать команды пакетных программ.
set Устанавливает имя и значение переменной среды.

Еще одно стандартное назначение файла AUTOEXEC.BAT — запуск резидентных программ (TSR), таких как:

Команда Назначение
doskey Обеспечивает использование быстрых клавиш при работе в командной строке системы.
vsafe Следит за появлением вирусов в системе.
smartdrv Ускоряет доступ к жесткому диску.

Пример файла AUTOEXEC.BAT

Ниже приведен пример файла AUTOEXEC.BAT, который содержит некоторые часто используемые команды:

  • Команда path указывает системе на то, что искать файлы выполнимых программ следует в текущем каталоге, в корневом каталоге диска Сив каталогах C:\DOS, C:\UTILITY и C:\BATCH в указанной последовательности. Точка с запятой (;) отделяет имени каталогов друг от друга.
  • Команда prompt указывает, что системное приглашение должно содержать текущие время, диск, каталог и знак «больше» (>).
  • Команда set temp создает переменную среды с именем TEMP и присваивает ей значение C:\TEMP. (Задаваемое имя должно быть именем существующего каталога.) Многие программы, включая саму систему MS-DOS, используют значение этой переменной как имя каталога, в котором создаются временные файлы.
  • Команда doskey загружает в память программу Doskey.
  • Команда smartdrv загружает в память программу SMARTDrive.

Обход команд в файлах CONFIG.SYS и AUTOEXEC.BAT

Если при загрузке компьютера возникли проблемы, связанные с установками в файлах CONFIG.SYS и AUTOEXEC.BAT, то существует возможность отказаться от выполнения команд, находящихся в этих файлах. Есть несколько вариантов обхода этих команд:

  • Вы можете обойти все команды, находящиеся в файлах CONFIG.SYS и AUTOEXEC.BAT.
  • Можно отменить выполнение отдельных команд файла CONFIG.SYS и указать системе, нужно ли выполнять AUTOEXEC.BAT.
  • Можно при каждой загрузке получать от MS-DOS запрос на то, нужно ли выполнять определенную команду CONFIG.SYS. Для этого следует после имени команды (но перед знаком равенства) поставить вопросительный знак.

Полный обход выполнения файлов настройки

Если у Вас возникли проблемы из-за содержимого файлов CONFIG.SYS или AUTOEXEC.BAT, то можно временно обойти выполнение этих файлов.

Для обхода выполнения файлов CONFIG.SYS и AUTOEXEC.BAT

  • Загрузите или перезагрузите компьютер. После инициализации компьютера и перед загрузкой системы MS-DOS на экране появляется сообщение:
  • В этот момент нажмите и отпустите клавишу F5 или нажмите и удерживайте нажатой клавишу SHIFT.
  • Все команды в файлах настройки будут пропущены, а система будет загружена в минимальной стандартной конфигурации. При этом могут возникнуть следующие проблемы:
  • Может появиться сообщение «Bad or missing command interpreter» [Интерпретатор команд испорчен или отсутствует]. Для продолжения наберите полный путь к файлу COMMAND.COM и нажмите клавишу ENTER.
  • Поскольку система пропустит команды загрузки устанавливаемых драйверов, устройства, управляемые такими драйверами, будут недоступны.
  • Значения переменных среды будут установлены по умолчанию. В результате приглашение системы может выглядеть несколько неожиданно-оно будет отображать только текущие диск и каталог. Переменная, задающая путь поиска выполнимых программ, будет установлена в значение C:\DOS.

Подтверждение выполнения каждой команды из файла CONFIG.SYS

Если у возникли трудности, которые, как Вам кажется, вызваны определенной командой файла CONFIG.SYS, может возникнуть желание, чтобы система MS-DOS запрашивала подтверждение необходимости выполнения каждой команды в процессе загрузки системы.

Для подтверждения выполнения каждой команды из файла CONFIG.SYS

  • Перезагрузите компьютер. После перезагрузки MS-DOS выдаст следующее сообщение:
  • Пока это сообщение присутствует на экране, нажмите и отпустите клавишу F8.
    • Система будет отображать каждую команду файла CONFIG.SYS, сопровождая ее запросом о подтверждении выполнения. Чтобы разрешить выполнение команды, нажмите клавишу Y. Чтобы отменить выполнение команды, нажмите клавишу N. Чтобы выполнить все оставшиеся команды, нажмите клавишу ESC. ** Чтобы обойти выполнение всех оставшихся команд, нажмите клавишу F5.
  • Когда система завершит обработку файла CONFIG.SYS, появится следующий запрос:
  • Нажмите клавишу Y, чтобы выполнить все команды файла AUTOEXEC.BAT. Нажмите клавишу N, чтобы обойти обработку файла AUTOEXEC.BAT.

Использование нескольких конфигураций

Один файл CONFIG.SYS может описывать несколько различных конфигураций системы. Далее перечислены действия, необходимые для организации нескольких конфигураций:

  • Определите меню загрузки в файле CONFIG.SYS.
  • Для каждой конфигурации создайте в файле CONFIG.SYS блок конфигурации. Блок конфигурации — это помеченный набор команд файла CONFIG.SYS, которые выполняются, если в меню загрузки выбрана метка, соответствующая этому блоку.
  • Для формирования условных переходов в файле AUTOEXEC.BAT можно использовать команды пакетной обработки if и goto.

Пример определения нескольких конфигураций

Следующий пример показывает основу структуры файла CONFIG.SYS, который определяет меню загрузки и две различные конфигурации.

В данном примере:

  • Первый блок конфигурации определяет возможности выбора, которые будут присутствовать в меню загрузки. Это меню содержит два элемента, Green и Orange. Каждый элемент меню ссылается на свой блок конфигурации.
  • Когда компьютер загружается с конфигурацией Green, система MS-DOS устанавливает значение files равным 40 и загружает драйвер DEVICE1.SYS.
  • Когда компьютер загружается с конфигурацией Orange, система MS-DOS устанавливает значение files равным 10 и загружает DEVICE2.SYS.
  • При загрузке компьютера с таким файлом CONFIG.SYS на экране появится следующее меню:
  • Если Вы в этом меню выберите значение «Green», система выполнит блок конфигурации с заголовком [green]; если Вы выберите значение «Orange», то будет выполнен блок конфигурации с заголовком [orange]

Формирование меню загрузки

Сначала нужно определить меню загрузки, задав блок конфигурации с заголовком [menu]. Следующая таблица приводит список команд, которые может содержать блок меню. Для получения более подробной информации наберите в командной строке help и имя интересующей Baс команды.

Команда Назначение
menuitem Определяет элемент меню. Команда задает блок конфигурации, связанный с данным элементом и. возможно, текст меню для данного элемента.
menudefault Задает элемент меню, который используется ПО умолчанию. Это команда не является обязательной если блок определения меню не содержит команды menudefault, то по умолчанию будет использоваться первый элемент.
menucolor Задает цвета текста и фона элементов меню.
submenu Задает элемент меню, который отображает другой набор возможностей выбора. Команда задает дру гой блок меню, который определяет возможности выбора в подменю.
numlock Задает начальное состояние клавиши NUM LOCK.

Пример определения блока меню

Ниже приведен пример блока меню:

  • Две команды menuitem определяют элементы, которые будут присутствовать в меню. Первое значение menuitem — «Net» — задает метку связанного с ним блока конфигурации. Второе значение задает текст меню — «Start the network» [Запустить сеть]. Если текст меню не задан, то вместо него будет использован текст метки блока конфигурации.
  • Команда menucolor устанавливает цвет текста 15 (белый), а цвет фона — 1 (синий).
  • Команда menudefault указывает, что по умолчанию должна использоваться конфигурация с заголовком [net].

Определение блоков конфигураций

Блок конфигурации — это набор команд файла CONFIG.SYS, которые выполняются при выборе в меню загрузки определенной конфигурации. Блок конфигурации начинается с заголовка блока-метки блока, заключенной в квадратные скобки. Метка блока должна состоять из одного слова произвольной длины. Блок конфигурации может содержать любые команды, использование которых допускается в файле CONFIG.SYS. В блоках конфигураций особенно полезны приведенные ниже команды. Для получения более подробной информации наберите в командной строке help и имя интересующей Вас команды.

Команда set устанавливает значение переменной среды. Эта команда может быть использована для установки значений переменных, уникальных для данной конфигурации.

Команда include указывает, что система MS-DOS должна дополнительно выполнить команды, которые содержатся в другом блоке конфигурации.

Команды, общие для всех конфигураций, могут быть помещены в блок с заголовком [common]. Наличие в конце файла CONFIG.SYS блока с заголовком [common] может иметь смысл, даже если он не содержит ни одной команды. Вы можете использовать любое количество таких блоков. Система MS-DOS обрабатывает эти блоки в порядке их описания в файле.

Пример использования блоков [common]

Следующий файл CONFIG.SYS определяет две конфигурации и содержит несколько команд, которые являются общими для обеих конфигураций:

Данный файл CONFIG.SYS содержит два варианта конфигураций. В обоих вариантах система MS-DOS выполняет три команды, которые содержатся в первом блоке [common]: dos=high, buffers=15 и device=c:\dos\himem.sys. В данном случае блок [common] стоит в самом начале, так как он содержит команду загрузки драйвера HIMEM.SYS, который должен загружаться раньше всех остальных. Второй блок [common], находящийся в конце файла, предназначен для команд, которые могут быть добавлены в процессе установки приложений.

Изменение файла AUTOEXEC.BAT при работе с несколькими конфигурациями

С помощью команд пакетной обработки if и goto можно выполнять разные команды файла AUTOEXEC.BAT в зависимости от выбранной при загрузке конфигурации. При выборе конфигурации система MS-DOS создает переменную среды с именем CONFIG, присваивая ей значение, соответствующее метке выбранного блока конфигурации. На основании значения этой переменной можно выполнять разные наборы команд файла AUTOEXEC.BAT, нужные для конкретной конфигурации.

Для работы с несколькими конфигурациями в файле AUTOEXEC.BAT

  • После тех команд файла AUTOEXEC.BAT, которые должны выполняться для всех конфигураций, поместите следующую команду:
  • Вставьте метки перед группами команд, которые относятся к каждой конкретной конфигурации. Например, перед группой команд, относящихся к конфигурации с заголовком [steve], следует поставить следующую метку: :steve
  • В конец файла AUTOEXEC.BAT вставьте следующую метку: :end
  • В конце каждой группы команд, относящихся к определенной конфигурации, вставьте следующую команду: goto end
    • Эта команду вызывает переход к команде, следующей за меткой :end. Команды, которые стоят после указанной метки, будут выполняться для всех конфигураций.

Пример использования команды Goto с переменной среды CONFIG

Следующий файл AUTOEXEC.BAT использует команду goto и значение переменной среды CONFIG для перехода к разным наборам команд в зависимости от выбранной конфигурации:

При обработке этого файла будет сначала запущена программа SMARTDrive, затем установлено значение переменной среды TEMP и запущена версия Anti-Virus для MS-DOS. После этого система перейдем к обработке блока команд, соответствующего значению переменной среды CONFIG.

Если выбрана конфигурация «Steve», то система перейдет к командам блока с меткой :steve. Будет установлен путь поиска и запущены программы C:\MOUSE\MOUSE.COM и DESKPUB. Команда goto end вызывает обход команд, содержащихся в блоке с меткой :lisa.

Если текущей конфигурацией является «Lisa», переменная PATH получит другое значение, будет загружена программа DOSKEY и выполнена команда net logon, устанавливающая сетевое обеспечение.

indbooks

Читать онлайн книгу

Приложение Б Функции DOS (INT 21h)

DOS, функция 00h

CS – сегмент PSP завершающегося процесса

Описание. Передает управление на вектор завершения в PSP (выходит в родительский процесс). Идентична функции INT 20h (Terminate). Регистр CS должен указывать на PSP. Восстанавливает векторы прерываний DOS 22h-24h (Завершение, Ctrl-Break и Критическая ошибка), устанавливая значения, сохраненные в родительском PSP. Выполняет сброс файловых буферов. Файлы должны быть предварительно закрыты, если их длина изменилась.

Данная функция не рекомендуется к использованию. Для выхода из программы лучше использовать функцию DOS 4Ch.

DOS, функция 01h Считать со стандартного устройства ввода

Выход: AL – символ, полученный из стандартного ввода

Описание. Считывает (ожидает) символ со стандартного входного устройства. Отображает этот символ на стандартное выходное устройство (эхо). При обнаружении Ctrl-Break выполняется INT 23h.

Ввод расширенных клавиш ASCII (F1-F12, PgUp, курсор и другие) требует двух обращений к этой функции. Первый вызов возвращает AL=0. Второй вызов возвращает в AL расширенный код ASCII.

DOS, функция 02h Записать в стандартное устройство вывода

DL – символ, выводимый в стандартный вывод

Посылает символ из DL в стандартное устройство вывода. Обрабатывает символ Backspace (ASCII 8), перемещая курсор влево на одну позицию и оставляя его в новой позиции. При обнаружении Ctrl-Break выполняется INT 23h.

DOS, функция 03h Считать символа со стандартного вспомогательного устройства

Выход: AL – символ, введенный со стандартного вспомогательного устройства

Описание. Считывает (ожидает) символ со стандартного вспомогательного устройства, COM1 или AUX и возвращает этот символ в AL.

Ввод не буферизуется и должен опрашиваться (не управляется прерываниями). При запуске DOS порт AUX (COM1) инициализируется так: 2400 бод, без проверки на четность, 1 стоп-бит, 8-битные слова. Команда DOS MODE используется для установки иных характеристик.

DOS, функция 04h Записать символ в стандартное вспомогательное устройство

DL – символ, выводимый в стандартное вспомогательное устройство

Посылает символ, находящийся в регистре DL, на стандартное вспомогательное устройство, COM1 или AUX.

DOS, функция 05h Вывести на принтер

DL – символ, записываемый на стандартный принтер

Посылает символ в DL на стандартное устройство печати, обычно LPT1.

DOS, функция 06h Консольный ввод-вывод

DL=00h-FEh – символ, посылаемый на стандартный вывод

DL=FFh – запрос ввода со стандартного ввода

ZF=0, если осуществлялся ввод символа и символ готов при запросе ввода

AL – считанный символ

ZF=1, если осуществлялся ввод символа и символа в консоли нет

При DL=0FFh выполняет ввод с консоли «Без ожидания», возвращая включенный флаг нуля ZF, если на консоли нет готового символа. Если символ готов, сбрасывает флаг ZF и возвращает считанный символ в AL. Если DL не равен 0FFh, то DL направляется на стандартный вывод.

DOS, функция 07h Нефильтрующий консольный ввод без эха

Выход: AL – символ, полученный через стандартный ввод

Описание. Считывает (ожидает) символ со стандартного входного устройства и возвращает этот символ в AL. Не проверяет на Ctrl-Break, BackSpace и другие.

Для ввода расширенного символа ASCII должна быть вызвана дважды. Для проверки статуса используется функция DOS 0Bh (чтобы не ожидать нажатия клавиши).

DOS, функция 08h Консольный ввод без эха

Выход: AL – символ, полученный через стандартный ввод

Описание. Считывает (ожидает) символ со стандартного входного устройства и возвращает этот символ в AL. При обнаружении Ctrl-Break выполняется прерывание INT 23h.

Для ввода расширенного символа ASCII должна быть вызвана дважды.

DOS, функция 09h Запись строки на стандартный вывод

DS:DX – адрес строки, заканчивающейся символом «$» (ASCII 24h)

Строка, исключая завершающий ее символ «$», посылается на стандартный вывод. Символы Backspace обрабатываются как в функции 02h (вывод на дисплей). Чтобы перейти на новую строку, обычно включают в текст пару CR/LF (ASCII 0Dh и ASCII 0Ah). Строки, содержащие «$», можно передать на стандартное устройство вывода с помощью функции 40h (BX=0).

DOS, функция 0Ah Ввод строки в буфер

DS:DX – адрес входного буфера (Таблица Б-1)

Таблица Б-1. Формат входного буфера

Буфер содержит введенные данные, в конце – символ CR (ASCII 0Dh)

DOS, функция 0Bh Проверка статуса ввода

Выход: AL=FFh, если символ доступен со стандартного ввода AL=00h, если нет доступного символа

Описание. Проверяет состояние стандартного ввода. При распознавании Ctrl-Break выполняется INT 23h.

Используется перед функциями 01h, 07h и 08h, чтобы избежать ожидания нажатия клавиши.

Эта функция дает простой неразрушающий способ проверки Ctrl-Break в процессе длинных вычислений или другой обработки, обычно не требующей ввода. Это позволяет снимать счет по нажатию Ctrl-Break.

DOS, функция 0Ch Ввод с очисткой

AL – номер функции ввода DOS:

AL=01h – ввод с клавиатуры

AL=06h – ввод с консоли

AL=07h – нефильтрующий без эха

AL=08h – ввод без эха

AL=0Ah – буферизованный ввод

Очищает буфер опережающего ввода стандартного ввода, а затем вызывает функцию ввода, указанную в AL. Это заставляет систему ожидать ввод очередного символа.

DOS, функция 0Dh Сброс диска

Сбрасывает диск (записывает на диск все файловые буферы). Файл, размер которого изменился, должен быть предварительно закрыт (при помощи функций 10h или 3Eh).

DOS, функция 0Eh Установить текущий диск DOS

DL – номер диска (0 – A, 1 – B и так далее), который становится текущим

Выход: AL – общее число дисководов в системе

Описание. Диск, указанный в DL, становится текущим. Проверка: используется функция 19h (дать текущий диск). В регистре AL возвращается число дисководов всех типов, включая жесткие диски и «логические» диски (как диск B: системе с одним гибким диском).

AL имеет то же значение, что и LASTDRIVE, указанное в файле CONFIG.SYS, и по умолчанию равно 5.

DOS, функция 0Fh Открыть файл через FCB

DS:DX – адрес неоткрытого FCB (Таблица Б-2)

Таблица Б-2. Формат FCB

AL=00h, если функция выполнена успешно (FCB заполнен)

AL=FFh, если файл не найден или доступ к файлу не разрешен

Файл, описываемый неоткрытым FCB, должен существовать в текущем оглавлении на диске, специфицированном в FCB (0 – текущий, 1 – A, 2 – B и так далее). Если файл не существует, возвращается AL=0FFh. Файл открывается в режиме совместимости. Если поле «Номер диска» в FCB равно нулю в момент вызова, то оно заполняется номером текущего дисковода (1 – A, 2 – B и так далее). Поле FCB «Номер текущего блока» устанавливается в ноль. Поле FCB «Размер логической записи» устанавливается в 80h. Поля даты и размера файла в FCB устанавливаются из оглавления.

DOS, функция 10h Закрыть файл через FCB

DS:DX – адрес открытого FCB (Таблица Б-2)

AL=00h, если функция выполнена успешно

AL=FFh, если файл не найден там, где он находился при открытии с помощью функции 0Fh

Закрывает файл, открытый функцией 0Fh. Файл должен находиться на своем первоначальном месте в текущем оглавлении диска, на котором он был открыт. Если файл найден, оглавление обновляется, файловые буфера сбрасываются и возвращается AL=00h. Если файл не найден, оглавление не обновляется и возвращается AL=FFh.

DOS, функция 11h Найти первый совпадающий файл через FCB

DS:DX – адрес неоткрытого FCB (Таблица Б-2)

AL=00h, если подходящее имя найдено

AL=FFh, если подходящего имени нет

В текущем оглавлении DOS происходит поиск файлов с именем, соответствующим заданному шаблону. При неудаче возвращается AL=0FFh. Если имя найдено, AL очищается, в первый байт DTA помещается номер дисковода (A – 1, B – 2 и так далее), а в следующие 32 байта помещается элемент оглавления для найденного файла.

Можно использовать при вызове расширенный FCB, чтобы выбирать файлы с указанными атрибутами. В этом случае в DTA помещаются: байт FFh, 7 байт нулей, номер диска и элемент оглавления.

DOS, функция 12h Найти следующий совпадающий файл через FCB

DS:DX – адрес неоткрытого FCB (Таблица Б-2)

AL=00h, если подходящее имя найдено

DTA заполнен AL=FFh, если подходящего имени нет

Используется после вызова функции 11h (Найти первый совпадающий файл через FCB) с обобщенным именем файла. Каждый последующий вызов заполняет DTA очередным подходящим элементом оглавления и возвращает AL=00h. Если подходящих имен больше нет, возвращается AL=FFh.

Резервируемая область в FCB сохраняет информацию, необходимую для продолжения поиска. Поэтому не стоит открывать и изменять FCB между вызовами.

DOS, функция 13h Удалить файл через FCB

DS:DX – адрес неоткрытого FCB (Таблица Б-2)

AL=00h, если функция выполнена успешно

AL=FFh, если файл не найден или доступ к файлу не разрешен

Эта функция удаляет все подходящие файлы в текущем оглавлении указанного диска согласно спецификации в FCB. Если подходящие файлы не найдены или если доступ отвергнут (как при попытке удалить файл с атрибутом Read-Only), функция возвращает в регистре AL значение FFh.

DOS, функция 14h Последовательное чтение из файла через FCB

DS:DX – адрес открытого FCB (Таблица Б-2)

AL=00h, если чтение было успешным и DTA содержит данные

AL=01h, если достигнут конец файла (EOF) и данные не считаны

AL=02h, если произошел выход за сегмент (чтения не было)

AL=03h, если EOF и считана усеченная запись (дополнена нулями)

Функция читает файл, специфицированный в FCB. Затем соответственно увеличивает значения полей в FCB.

Перед началом последовательной обработки файла нужно сбрасывать CurRec в ноль, так как функция 0Fh не инициализирует это поле.

DOS, функция 15h Последовательная запись в файл через FCB

DS:DX – адрес открытого FCB (Таблица Б-2)

AL=00h, если запись была успешной

AL=01h, если ошибка переполнения диска (данные не записаны)

AL=02h, если произошел выход за сегмент (записи не было)

Функция записывает файл, специфицированный в FCB. Затем соответственно увеличивает значения полей в FCB.

Перед началом последовательной обработки файла нужно сбрасывать «Номер текщей записи» в ноль, так как функция 0Fh не инициализирует это поле.

DOS буферизует данные, записывая полный сектор за один раз.

DOS, функция 16h Создание файла через FCB

DS:DX – адрес неоткрытого FCB (Таблица Б-2)

AL=00h, если функция выполнена успешно FCB заполнен

AL=FFh, если при выполнении функции возникли ошибки

Описание. Файл, специфицированный неоткрытым FCB, создается на диске, указанном в FCB (0 – текущий, 1 – A и так далее). Он открывается в текущем оглавлении этого диска. FCB заполняется аналогично функции 0Fh. Если файл существует в момент вызова, его элемент оглавления перекрывается новым файлом, а длина файла сбрасывается в ноль.

Handle-ориентированные функции DOS 2.0+ гораздо удобнее в работе.

DOS, функция 17h Переименовать файл через FCB

DS:DX – адрес измененного FCB (Таблица Б-2)

AL=00h, если функция выполнена успешно

AL=FFh, если при выполнении функции возникли ошибки

Переименовывает файл в текущем оглавлении.

DOS, функция 19h Получить текущий диск DOS

Выход: AL – номер текущего диска (0 – A, 1 – B, и так далее)

Возвращает номер дисковода текущего диска DOS.

DOS, функция 1Ah Установить адрес DTA

DS:DX – адрес DTA

Устанавливает адрес DTA. Все FCB-ориентированные операции работают с DTA. DOS не позволяет операциям ввода/вывода пересекать границу сегмента. Функции поиска 11h, 12h, 4Eh и 4Fh помещают данные в DTA. DTA глобальна, поэтому надо проявлять осторожность при назначении ее в рекурсивной процедуре. При запуске программы ее DTA устанавливается по смещению 80h относительно PSP.

DOS, функция 1Bh Получить информацию FAT для текущего диска

DS:BX – адрес байта FAT ID, отражающего тип диска (Таблица Б-3)

DX – всего кластеров (единиц распределения) на диске

AL – секторов на кластер

CX – байт на сектор

Таблица Б-3. Значения ID

Возвращает информацию о размере и типе текущего диска. Размер диска (в байтах) равен DX*AL*CX. Свободную память можно найти функциями 36h или 32h.

Версии: DOS 1.x держит FAT в памяти и возвращает DS:BX => FAT. DOS 2.0+ может держать в памяти лишь часть всей FAT.

Эта функция изменяет содержимое регистра DS.

DOS, функция 1Ch Получить информацию FAT для указанного диска

DL – номер диска (0 – текущий, 1 – A и так далее)

DS:BX – адрес байта FAT ID, отражающего тип диска (приведен в описании функции 1Bh)

DX – всего кластеров (единиц распределения)

AL – секторов на кластер

CX – байт на сектор

Аналогична функции 1Bh с той разницей, что регистр DL указывает диск, для которого нужно получить информацию.

DOS, функция 21h Считать произвольную запись файла

DS:DX – адрес открытого FCB (Таблица Б-2)

AL=00h, если чтение было успешным и DTA заполнена данными

AL=01h, если достигнут конец файла (EOF) и чтения не было

AL=02h, если произошел выход за сегмент (чтения нет)

AL=03h, если встречен EOF и усеченная запись дополнена нулями

Данная функция читает из файла с текущей позиции как с указанной в полях FCB «Запись с текущей позиции» и «Номер записи при непосредственном доступе к файлу».

DOS, функция 22h Писать произвольную запись файла

DS:DX – адрес открытого FCB (Таблица Б-2)

AL=00h, если запись была успешной

AL=01h, при переполнении диска

AL=02h, если DTA+FCB выходит за сегмент (нет записи)

Данная функция записывает в файл с текущей позиции как с указанной в полях FCB «Запись с текущей позиции» и «Номер записи при непосредственном доступе к файлу».

DOS, функция 23h Получить размер файла через FCB

DS:DX – адрес неоткрытого FCB (Таблица Б-2)

AL=00h, если функция выполнена успешно

AL=FFh, если при выполнении функции возникли ошибки

Проще определить размер файла при помощи функции 3Dh с последующим выполнением 42h (при AL=2).

DOS, функция 24h Установить адрес произвольной записи в файле

DS:DX – адрес открытого FCB (Таблица Б-2)

Устанавливает поле «Номер записи при непосредственном доступе к файлу» в FCB на файловый адрес, соответствующий значениям полей «Текущий блок» и «Запись с текущей позиции».

DOS, функция 25h Установить вектор прерывания

AL – номер прерывания

DS:DX – вектор прерывания – адрес программы обработки прерывания

Описание. Устанавливает значение элемента таблицы векторов прерываний для прерывания с номером AL, равным DS:DX. Это равносильно записи 4-байтового адреса в 0000:(AL*4), но, в отличие от прямой записи, DOS знает, что происходит, и гарантирует, что в момент записи прерывания будут заблокированы.

Восстановить DS (если необходимо) после этого вызова.

DOS, функция 26h Создать новый PSP

DX – адрес сегмента (параграфа) для нового PSP

CS – сегмент PSP, используемый как шаблон для нового PSP (Таблица Б-4)

Описание. Устанавливает PSP для порождаемого процесса по адресу DX:0000. Текущий PSP (100h байт, начиная с CS:0) копируется в DX:0000h, поле MemTop соответственно корректируется, векторы Terminate, Ctrl-Break и Critical Error копируются в PSP из векторов прерываний INT 22h, INT 23h и INT 24h. После этого можно загрузить программу с диска и передать ей управление посредством FAR JMP.

Если перехватывается INT 21h, нужно позаботиться о помещении в стек корректного CS: IP. Еще лучше использовать функцию 4Ch.

Таблица Б-4. Формат PSP

DOS, функция 27h Читать произвольный блок файла

DS:DX – адрес открытого FCB (Таблица Б-2)

CX – число считываемых записей

Выход: AL=00h, если чтение успешно и DTA заполнена данными AL=01h если достигнут конец файла (EOF) и данные не считаны AL=02h, если при чтении произошел выход за границу сегмента AL=03h, если EOF и считана усеченная порция (дополнена нулями) CX – действительное число считанных записей

Читает несколько записей из файла, начиная с файлового адреса, указанного полем «Номер записи при непосредственном доступе к файлу» в FCB. Помещает данные в память, начиная с адреса DTA. Соответствующие поля FCB корректируются, чтобы указывать на следующую запись (первую за прочитанными).

DOS, функция 28h Писать произвольный блок файла

DS:DX – адрес открытого FCB (Таблица Б-2)

CX – число записываемых блоков (если CX равен нулю, то размер файла усекается до указанного в поле FCB «Номер записи при непосредственном доступе к файлу»)

AL=00h, если запись успешна

AL=01h, при переполнении диска

AL=02h, если при записи произошел выход за границу сегмента

CX – действительное число сделанных записей

Описание. Записывает несколько блоков в файл, начиная с файлового адреса, указанного полем «Номер записи при непосредственном доступе к файлу» в FCB. Читает данные из памяти, начиная с адреса DTA. Соответствующие поля FCB корректируются, чтобы указывать на следующую запись (первую за прочитанными).

DOS, функция 29h Разобрать имя файла

DS:SI – адрес исходной текстовой строки для разбора

ES:DI – адрес буфера для результирующего неоткрытого FCB (Таблица Б-2)

AL – битовые флаги, указывающие опции разбора (Таблица Б-5).

AL=00h, если результирующий FCB не содержит обобщенных символов

AL=01h, если результирующий FCB содержит обобщенные символы

AL=FFh, если неверно обозначение диска в имени файла

DS:SI – изменен – указывает на символ сразу вслед за именем файла

ES:DI – не изменен – указывает на неоткрытый FCB

Создает неоткрытый FCB из строки текста или параметра команды. Текст, начиная с DS:SI, анализируется как имя файла в формате D: FILENAME.EXT, и буфер по адресу ES:DI заполняется как соответственно форматированный FCB.

Таблица Б-5. Битовые флаги

DOS, функция 2Ah Получить системную дату

AL – день недели (0 – воскресенье, 1 – понедельник, … 6 – суббота), DOS 3.0+

CX – год (от 1980 до 2099)

DH – месяц (1 до 12)

DL – день (1 до 31)

Описание. Возвращает текущую дату, которая известна системе.

DOS 2.x не гарантирует возврата в AL значения дня.

DOS 1.0+ возвращает правильный день недели.

Версии до 2.1 имеют проблемы с переходом через дату.

DOS, функция 2Bh Установить системную дату

CX – год (от 1980 до 2099)

DH – месяц (от 1 до 12)

DL – день (от 1 до 31)

AL=00h, если дата корректна

AL=FFh, если дата некорректна и не изменена

Устанавливает системную дату DOS.

DOS, функция 2Ch Получить время DOS

CH – часы (от 0 до 23)

CL – минуты (от 0 до 59)

DH – секунды (от 0 до 59)

DL – сотые доли секунды (от 0 до 99)

Описание. Возвращает текущее время, которое известно системе.

Поскольку системные часы имеют частоту 18.2 Гц (интервал 55мс), DL имеет точность примерно 0.04 сек.

DOS, функция 2Dh Установить время DOS

CH – часы (от 0 до 23)

CL – минуты (от 0 до 59)

DH – секунды (от 0 до 59)

DL – сотые доли секунды (от 0 до 99)

AL=00h, если время корректно

AL=FFh, если время некорректно и не изменено

Устанавливает системное время DOS.

DOS, функция 2Eh Установить/сбросить переключатель верификации

AL=00h – отключить верификацию

AL=01h – включить верификацию

Описание. Задает, должна ли DOS верифицировать (считывать обратно) каждый сектор, записываемый на диск. Это замедляет операции записи на диск, но гарантирует максимальную надежность записи.

DOS, функция 2Fh Получить адрес текущей DTA

Выход: ES:BX – адрес начала текущей DTA

Описание. Возвращает адрес начала области ввода-вывода (DTA). Поскольку DTA глобальна для всех процессов, в рекурсивной процедуре (например, при проходе по дереву оглавления) может потребоваться сохранить адрес DTA, а впоследствии восстановить его посредством функции 1Ah.

Примечание. Эта функция изменяет сегментный регистр ES.

Версии: DOS 2.00 и выше DOS, функция 30h Получить номер версии DOS

AL – старший номер версии

AH – младший номер версии

BL:CX – 24-битный серийный номер (большинство версий не поддерживают этот параметр)

Описание. Возвращает в AX значение текущего номера версии DOS. Например, для DOS 3.20 в AL возвращается 03h, в AH – 14h.

Примечание. Если в AL возвращается 00h, можно предполагать, что работает DOS более ранней версии, чем DOS 2.0.

Версии: DOS 2.00 и выше. DOS, функция 31h Завершиться и остаться резидентным

DX – объем памяти, оставляемой резидентной (в параграфах)

Описание. Выходит в родительский процесс, сохраняя код выхода в AL. Код выхода можно получить через функцию 4Dh. DOS устанавливает начальное распределение памяти, как специфицировано в DX, и возвращает управление родительскому процессу, оставляя указанную память резидентной (число байт равно DX*16). Эта функция перекрывает функцию INT 27h, которая не возвращает код выхода и не способна установить резидентную программу, размер которой превышает 64 Кбайт.

Версии: DOS 2.00 и выше. DOS, функция 32h Получить информацию DOS о диске (Официально не документирована)

DL – номер диска (0 – текущий, 1 – A и так далее)

AL=00h, если в DL был задан корректный диск

DS:BX – адрес блока информации о диске для запрошенного устройства (Таблица Б-6)

AL=FFh, если в DL был задан некорректный диск

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

Некоторые дисководы (особенно незагружаемые) функционируют только через свои драйвера устройств. Такие диски могут содержать неверную информацию в корневой записи и таблице разделов, что делает очень трудным определение, например, размера корневого оглавления, числа таблиц FAT и прочего. Блок информации диска содержит такие данные в хорошо форматированной структуре.

Версии: DOS 2.00 и выше. Таблица Б-6. Формат блока информации о диске

DOS, функция 33h Установить/опросить статус Ctrl-Break

AL=00h – опросить текущий статус контроля Ctrl-Break

AL=01h – установить статус контроля Ctrl-Break

DL – требуемый статус (0 – выключен, 1 – включен)

Выход: DL – текущий статус (0 – выключен, 1 – включен)

Если AL=00h, в DL возвращается текущий статус контроля Ctrl-Break.

Если AL=01h, в DL возвращается новый текущий статус.

Когда статус «включен», DOS при выполнении большинства функций (исключая 06h и 07h) проверяет, нажаты ли клавиши Ctrl-Break. Если это обнаружено, выполняется прерывание INT 23h (если оно не перехватывается, то процесс снимается).

При статусе «выключен» DOS проверяет на нажатие Ctrl-Break лишь при выполнении операций стандартного ввода/вывода, стандартной печати и стандартного AUX.

Версии: DOS 2.00 и выше. DOS, функция 34h Получить адрес флага активности DOS (Официально не документирована)

Выход: ES:BX – адрес флага активности DOS

Функция возвращает флаг активности DOS, который показывает, можно ли на данный момент вызывать функции DOS. Эту функцию использует, например, функция фоновой печати PRINT.

Если ES: [BX] не нулевой, фоновая программа (TSR либо popup) не должна использовать никаких функций DOS.

Версии: DOS 2.00 и выше. DOS, функция 35h Получить вектор прерывания

AL – номер прерывания (00h до FFh)

Выход: ES:BX – адрес обработчика прерывания

Описание. Возвращает значение вектора прерывания для INT (AL), то есть загружает в BX 0000:[AL*4], а в ES – 0000:[(AL*4)+2].

Примечание. Эта функция изменяет сегментный регистр ES.

Версии: DOS 2.00 и выше. DOS, функция 36h Получить свободную память диска

DL – номер диска (0 – текущий, 1 – A и так далее)

AX=FFFFh, если AL содержал неверный номер диска

Если функция выполнена успешно:

AX – число секторов на кластер

BX – число доступных кластеров

CX – байт на сектор

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

Описание. Возвращает данные, полезные для подсчета общей и доступной дисковой памяти. Если в AX возвращено FFFFh, значит задан неверный диск. Иначе свободная память (в байтах) составляет (AX*BX*CX), всего памяти (AX*CX*DX) байт.

Версии: DOS 2.00 и выше. DOS, функция 37h Установить/опросить символ-переключатель (Официально не документирована)

AL=00h – опросить текущий переключатель

AL=01h – установить символ-переключатель

AL=00h, если функция выполнена успешно

DL – текущий символ-переключатель DOS (если при вызове AL=00h)

AL=FFh, если использована неподдерживаемая подфункция

Описание. Устанавливает или опрашивает «Глобальный переключатель» DOS. Переключатель (SWITCHAR) – это символ, используемый в командной строке как признак опции. По умолчанию принимается «/» (например, DIR /w/p), но его можно изменить на «-» (DIR – w-p), если нужно, чтобы система была больше похожа на UNIX. Общепринято опрашивать значение SWITCHAR перед разбором области неформатированных параметров в PSP для выделения опций команды.

Примечание. Эта недокументированная команда может измениться в будущих версиях DOS. Не рекомендуется изменять SWITCHAR.

Версии: DOS 2.00 и выше. DOS, функция 38h Получить/установить информацию о стране

AL=00h – получить данные для текущей страны

DS:DX – адрес локального буфера для чтения блока данных страны (Таблица Б-7)

AL=01h-FEh – установить данные для указанной страны 255

BX – 16-битный код страны (Таблица Б-8)

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. Если DX=FFFFh, то текущий код страны устанавливается равным AL (если AL=FFh, то код страны устанавливается равным BX). Обычно код страны устанавливается в файле CONFIG.SYS. Если DX Таблица Б-7. Формат блока данных страны

DOS, функция 39h Создать новое оглавление

DS:DX – адрес строки ASCIZ с именем оглавления

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Таблица Б-8. Коды некоторых стран

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

Версии: DOS 2.00 и выше. DOS, функция 3Ah Удалить оглавление

DS:DX – адрес строки ASCIZ с именем оглавления

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. Если диск и/или корневой путь не указаны, принимаются значения по умолчанию. Поддиректория удаляется из структуры оглавлений. Если флаг CF установлен при возврате, то AX содержит код ошибки, и оглавление не удаляется.

Примечание. Оглавление не должно содержать файлов и поддиректорий, оно не должно попадать под влияние возможных ограничений DOS (например, не должно быть задействовано в активных командах JOIN или SUBST).

Версии: DOS 2.00 и выше. DOS, функция 3Bh Установить текущую директорию

DS:DX – адрес строки ASCIZ с именем оглавления

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. Если диск и/или корневой путь не указаны, принимаются значения по умолчанию. Указанная поддиректория становится текущим оглавлением DOS для этого (или текущего) диска. Если флаг CF установлен при возврате, то AX содержит код ошибки, и текущее оглавление для выбранного диска не изменяется.

Версии: DOS 2.00 и выше. DOS, функция 3Ch Создать файл через описатель

DS:DX – адрес строки ASCIZ с именем файла

CX – атрибут файла (атрибуты приведены в описании функции DOS 43h)

CF=0, если функция выполнена успешно

AX – описатель файла

CF=1, если при выполнении функции возникли ошибки

Описание. Если диск и/или путь не указаны, принимаются значения по умолчанию.

Версии: DOS 2.00 и выше. DOS, функция 3Dh Открыть описатель файла

DS:DX – адрес строки ASCIZ с именем файла

AL – режим открытия:

AL=00h, чтобы открыть для чтения

AL=01h, чтобы открыть для записи

AL=02h, чтобы открыть для чтения и записи

CF=0, если функция выполнена успешно

AX – описатель файла

CF=1, если при выполнении функции возникли ошибки

Описание. Файл открывается в выбранном режиме доступа (режиме открытия). Если диск и/или путь не указаны, принимаются указанные по умолчанию. Файл должен существовать. Указатель чтения/записи устанавливается в ноль.

Версии: DOS 2.00 и выше. DOS, функция 3Eh Закрыть описатель файла

BX – описатель файла

CF=0, если функция выполнилась успешно

CF=1, если при выполнении функции возникли ошибки

Описание. BX содержит описатель файла (handle), возвращенный при открытии. Файл, представленный этим описателем, закрывается, его буферы сбрасываются и оглавление обновляется корректными размером, временем и датой. Из-за недостатка описателей файлов (максимум 20, по умолчанию установлено 8), возможно, придется закрыть часть текущих описателей, как, например, описатель 3 (стандартный AUX).

Версии: DOS 2.00 и выше. DOS, функция 3Fh Читать файл через описатель

BX – описатель файла

DS:DX – адрес буфера для чтения данных

CX – число считываемых байт

CF=0, если функция выполнена успешно

AX – число действительно прочитанных байт

CF=1, если при выполнении функции возникли ошибки

Описание. CX байт данных считываются из файла или устройства с описателем, указанным в BX. Данные читаются с текущей позиции указателя чтения/записи файла и помещаются в буфер вызывающей программы, адресуемый через DS:DX. Если необходимо установить позицию чтения/записи, можно использовать функцию 42h. Эта функция обновляет указатель чтения/записи файла, чтобы подготовиться к последующим операциям чтения или записи.

Версии: DOS 2.00 и выше. DOS, функция 40h Писать в файл через описатель

BX – описатель файла

DS:DX – адрес буфера, содержащего записываемые данные

CX – число записываемых байт

CF=0, если функция выполнена успешно

AX – число действительно записанных байт

CF=1, если при выполнении функции возникли ошибки

Описание. CX байт данных записываются в файл или на устройство с описателем, заданным в BX. Данные берутся из буфера, адресуемого через DS:DX, и записываются, начиная с текущей позиции указателя чтения/записи файла. Чтобы установить указатель файла, если необходимо, можно использовать функцию 42h. Обновляет указатель чтения/записи файла, чтобы подготовиться к последующим операциям чтения или записи.

Версии: DOS 2.00 и выше. DOS, функция 41h Удалить файл

DS:DX – адрес строки ASCIZ с именем файла

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. Файл удаляется из оглавления заданного диска. Если диск и/или путь не указаны, принимаются значения по умолчанию. Имя файла не может содержать обобщенные символы («?» и «*»). Если файл имеет атрибут «только чтение», то перед удалением необходимо изменить этот атрибут через функцию 43h.

Версии: DOS 2.00 и выше. DOS, функция 42h Переместить указатель файла

BX – описатель файла

CX:DX на сколько передвинуть указатель: (CX*65536)+DX

AL=00h переместить относительно начала файла +CX:DX

AL=01h переместить относительно текущей позиции +CX:DX

AL=02h переместить относительно конца файла +CX:DX

CF=0, если функция выполнена успешно

DX:AX новая позиция указателя файла (если нет ошибки)

CF=1, если при выполнении функции возникли ошибки

Описание. Перемещает логический указатель чтения/записи к нужной позиции. Очередная операция чтения или записи начнется с этого адреса.

Вызов с AL=2, CX=0, DX=0 возвращает длину файла в DX:AX.

Действительная длина файла равна (DX*65536)+AX.

Версии: DOS 2.00 и выше. DOS, функция 43h Установить/опросить атрибуты файла

DS:DX – адрес строки ASCIZ с именем файла

AL=00h – извлечь текущий атрибут файла

AL=01h – установить атрибут файла

CX – новый атрибут файла (для подфункции 01h)(Таблица Б-9)

CF=0, если функция выполнена успешно

CX – текущий атрибут файла (для подфункции 00h)(Таблица Б-9)

CF=1, если при выполнении функции возникли ошибки

Таблица Б-9. Атрибуты файла

Атрибут файла читается или устанавливается, согласно коду в AL. Если диск и/или путь не указаны, принимаются значения по умолчанию.

Примечание. Чтобы скрыть оглавление, нужно использовать CX=02h (а не 12h, как можно было ожидать).

Версии: DOS 2.00 и выше. DOS, функция 44h Управление устройством ввода/вывода

AL – код подфункции:

AL=00h – получить информацию об устройстве

AL=01h – установить информацию об устройстве

AL=02h – читать с символьного устройства

AL=03h – писать на символьное устройство

AL=04h – читать с блочного устройства

AL=05h – писать на блочное устройство

AL=06h – дать статус ввода

AL=07h – дать статус вывода

AL=08h – запрос съемного носителя

AL=09h – запрос удаленного устройства

AL=0Ah – запрос удаленного описателя

AL=0Bh – счет повторов разделения

AL=0Ch – кодовые страницы 3.3

AL=0Dh – общий IOCTL

AL=0Eh – получить логическое устройство

AL=0Fh – установить логическое устройство

Версии: DOS 2.00 и выше. DOS, функция 45h Дублировать описатель файла

BX – существующий описатель файла

CF=0, если функция выполнена успешно

AX – новый описатель файла, дублирующий оригинал

CF=1, если при выполнении функции возникли ошибки

Описание. Создает дополнительный описатель файла, ссылающийся на тот же поток ввода/вывода, что и существующий описатель. Любое продвижение указателя чтения/записи одного описателя (включая любые операции чтения, записи или перемещения указателя посредством функции 42h) действует на его дубликат.

Версии: DOS 2.00 и выше. DOS, функция 46h Переназначить описатель

BX – целевой описатель файла (должен уже существовать)

CX – исходный описатель файла (должен уже существовать)

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. Заставляет описатель файла (handle) ссылаться на другой файл или устройство. Если описатель в CX (источник) открыт, он закрывается, а затем становится дубликатом описателя в BX (назначения). Иными словами, описатели в CX и BX будут ссылаться на один и тот же физический файл или устройство.

Версии: DOS 2.00 и выше. DOS, функция 47h Получить текущее оглавление DOS

DS:SI – адрес локального буфера для результирующего пути – 64 байта

DL – номер диска (0 – текущий, 1 – A и так далее)

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. В буфер по адресу DS:SI помещается в форме ASCIZ путь текущего оглавления для диска, указанного в DL. Путь возвращается в формате: «путь\оглавление»,0. Впереди не подставляется буква диска, а сзади не подставляется символ «\». Например, если текущим является корневое оглавление, эта функция вернет пустую строку (DS: [SI]=0).

Версии: DOS 2.00 и выше. DOS, функция 48h Выделить память

BX – запрошенное количество памяти в 16-байтных параграфах

CF=0, если функция выполнена успешно

AX – сегментный адрес распределенного блока

CF=1, если при выполнении функции возникли ошибки

BX – размер максимального доступного блока памяти (в параграфах)

Описание. Распределяет блок памяти длиной BX параграфов, возвращая сегментный адрес этого блока в AX (блок начинается с AX:0000). Если распределение неудачно, устанавливается флаг CF, в AX возвращается код ошибки, а BX содержит максимальный размер доступной для распределения памяти (в параграфах). Чтобы определить наибольший доступный блок, общепринято устанавливать BX=FFFFh перед вызовом. Распределение завершится с ошибкой, возвратив размер максимального блока памяти в BX.

Версии: DOS 2.00 и выше. DOS, функция 49h Освободить блок памяти

ES – сегментный адрес освобождаемого блока памяти

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. Освобождает блок памяти, начинающийся с адреса ES:0000. Этот блок становится доступным для других запросов системы. Вообще говоря, нужно освобождать лишь те блоки памяти, которые получены через функцию 48h (распределить память). Родитель отвечает за освобождение памяти порожденных процессов. Тем не менее, ничто не препятствует освобождать память чужих процессов.

Версии: DOS 2.00 и выше. DOS, функция 4Ah Изменить размер блока памяти

ES – сегмент распределенного блока памяти

BX – нужный размер блока в 16-байтных параграфах

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

BX – размер максимального доступного блока памяти (в параграфах)

Описание. Изменяет размер существующего блока памяти. Когда программа получает управление, функция 4Bh уже распределила блок памяти, начиная с PSP, который содержит всю доступную память. Чтобы освободить память для запуска порождаемых процессов, блок памяти, начинающийся с PSP, необходимо сначала сжать.

Функция 31h и INT 27h (TSR) сжимают блок по адресу PSP.

Версии: DOS 2.00 и выше.

DOS, функция 4Bh Выполнить или загрузить программу

DS:DX – адрес строки ASCIZ с именем файла, содержащего программу

ES:BX – адрес EPB (блока параметров EXEC)

AL=00h – загрузить и выполнить

AL=01h – загрузить, но не выполнять

AL=03h – загрузить программный оверлей

CF=0, если функция выполнена успешно

BX, DX не сохранены

CF=1, если при выполнении функции возникли ошибки

Описание. Данная функция загружает в память и запускает программу, имя которой указано в регистрах DS:DX. Запущенная программа после завершения работы возвратит управление запускаемой. Если диск или путь не указаны, принимаются значения по умолчанию. ES:BX указывает на блок памяти, подготовленный как EPB, формат которого зависит от запрошенной подфункции в AL.

Версии: DOS 2.00 и выше. DOS, функция 4Ch Завершить программу

Описание. Возвращает управление от порожденного процесса его родителю, устанавливая код выхода (его можно опросить функцией 4Dh). Управление передается по адресу завершения в PSP завершающейся программы. Векторы Ctrl-Break и Critical Error восстанавливаются к старым адресам, сохраненным в родительском PSP.

Примечание. Значение ERRORLEVEL (используемое в пакетных файлах DOS) можно использовать для проверки кода выхода самой последней программы.

Версии: DOS 2.00 и выше. DOS, функция 4Dh Получить код выхода программы

AH – код выхода последнего завершившегося процесса

AH=00h – нормальное завершение

AH=01h – завершение через Ctrl-Break INT 23h

AH=02h – завершение по критической ошибке устройства INT 24h

AH=03h – завершение через функцию 31h

Описание. Возвращает код выхода последнего из завершившихся процессов. Эта функция возвращает правильную информацию только однажды для каждого завершившегося процесса.

Версии: DOS 2.00 и выше. DOS, функция 4Eh Найти первый совпадающий файл

DS:DX – адрес строки ASCIZ с именем файла (допускается использовать символы «?» и «*»)

CX – атрибут файла для сравнения

CF=0, если функция выполнена успешно

DTA заполнена данными (Таблица Б-10)

CF=1, если при выполнении функции возникли ошибки

Описание. Если диск и/или путь не указаны, принимаются значения по умолчанию. Обобщенные символы «*» и «?» допускается использовать в имени файла и расширении.

Версии: DOS 2.00 и выше. DOS, функция 4Fh Найти следующий совпадающий файл

DS:DX – адрес данных, возвращенных предыдущей 4Eh (Найти первый файл)

Таблица Б-10. Формат данных в DTA

CF=0, если функция выполнена успешно

DTA заполнена данными

CF=1, если при выполнении функции возникли ошибки

Описание. Эту функцию можно использовать после вызова 4Eh. Следующее имя файла, совпадающее по обобщенному имени и атрибуту файла, копируется в буфер по адресу DS:DX вместе с другой информацией (Таблица Б-10).

Примечание. Параметр DS:DX добавлен в DOS 3.0.

Версии: DOS 2.00 и выше. DOS, функция 52h Получить адрес векторной таблицы связи (Официально не документирована)

Выход: ES:BX – адрес векторной таблицы связи (Таблица Б-11)

Описание. Данная функция возвращает адрес векторной таблицы связи.

Версии: DOS 2.00 и выше. DOS, функция 54h Получить переключатель верификации DOS

AL=00h, если верификация выключена (OFF)

AL=01h, если верификация включена (ON)

Описание. Возвращает текущий статус верификации записи DOS. Если в AL возвращается 1, то DOS считывает обратно каждый сектор, записываемый на диск, чтобы проверить правильность записи. Функция DOS 2Eh позволяет установить/изменить режим верификации.

Версии: DOS 2.00 и выше. Таблица Б-11. Формат векторной таблицы связи

DOS, функция 56h Переименовать/переместить файл

DS:DX – адрес старого ASCIZ имени (путь/имя существующего файла)

ES:DI – адрес нового ASCIZ имени (новые путь/имя)

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. Старое имя DS:DX должно существовать и не может содержать обобщенных символов. Диск и путь необязательны (если они не указаны, принимаются значения по умолчанию). Новое имя ES:DI должно описывать несуществующий файл. Если указан диск, он должен быть тем же, что и в старом имени. Если диск или путь не указаны, принимаются текущие. Если старое и новое имя содержат разные пути (явные или принятые по умолчанию), то элемент оглавления для файла перемещается в оглавление, указанное в новом имени.

Версии: DOS 2.00 и выше. DOS, функция 57h Установить/опросить дату/время файла

AL=00h – получить дату/время файла

AL=01h – установить дату/время файла

BX – описатель файла (handle)

CX (если AL=1) – новая отметка времени в формате время файла

DX (если AL=1) – новая отметка даты в формате дата файла

CF=0, если функция выполнена успешно

CX – (если при вызове AL=0) отметка времени файла в формате время/дата файла (Таблица Б-12)

Таблица Б-12. Формат времени файла

DX – (если при вызове AL=0) отметка даты файла в формате время/дата файла (Таблица Б-13)

Таблица Б-13. Формат даты файла

CF=1, если при выполнении функции возникли ошибки

Описание. BX должен содержать описатель открытого файла (см. 3Ch или 3Dh). DX и CX задаются в формате памяти (например, младшие 8 бит даты находятся в DH).

Версии: DOS 2.00 и выше. DOS, функция 59h Получить расширенную информацию об ошибке

BX=0000h (номер версии: 0000h для DOS 3.0, 3.1 и 3.2)

AX – расширенный код ошибки (0, если ошибки не было)

BH – класс ошибки

BL – предлагаемое действие

CH – сфера (где произошла ошибка)

Описание. Эту функцию можно использовать, чтобы уточнить, что предпринять после сбоя функции DOS по ошибке (только DOS 3.0+). Ее можно вызывать: в обработчике критических ошибок INT 24h, после любой функции INT 21h, возвратившей флаг переноса после вызова FCB-функции, возвратившей AL=FFh.

Версии: DOS 3.00 и выше. DOS, функция 5Ah Создать уникальный временный файл

DS:DX – адрес строки ASCIZ с диском и путем (заканчивается символом «\»)

CX – атрибут файла

CF=0, если функция выполнена успешно

AX – описатель файла

DS:DX – (не изменяется) полное ASCIZ-имя нового файла

CF=1, если при выполнении функции возникли ошибки

Описание. Открывает (создает) файл с уникальным именем в каталоге, заданном строкой ASCIZ, на которую указывает DS:DX. COMMAND.COM вызывает эту функцию, когда создает временные «канальные» файлы, используемые при переназначении ввода-вывода. Описание пути должно быть готово к добавлению в его конец имени файла. Необходимо обеспечить минимум 12 байт в конце строки. Сама строка должна быть заполнена в одной из форм: «^: \путь\»,0 (указан диск и путь), «d:»,0 (текущее оглавление диска) или «d: \»,0 (корневое оглавление диска).

Версии: DOS 3.00 и выше. DOS, функция 5Bh Создать новый файл

DS:DX – адрес строки ASCIZ с именем файла

CX – атрибут файла

CF=0, если функция выполнена успешно

AX – описатель файла

CF=1, если при выполнении функции возникли ошибки

Описание. Файл открывается для чтения/записи в совместимом режиме доступа. Если диск и/или путь не указаны, принимаются значения по умолчанию. Этот вызов идентичен функции DOS 3Ch с тем исключением, что он вернет ошибку, если файл с заданным именем уже существует.

Версии: DOS 3.00 и выше. DOS, функция 5Ch Блокировать/разблокировать доступ к файлу

AL=00h – заблокировать область файла

AL=01h – разблокировать ранее заблокированную область

BX – описатель файла

CX:DX – смещение ((CX*65536)+DX) от начала файла

SI:DI – длина блокируемой области ((SI*65536)+DI) байт

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. Блокирует или освобождает доступ к участку файла, указанного в BX. Область файла с логическим смещением CX:DX и длиной SI:DI блокируется (захватывается) или разблокируется (освобождается). Смещение и длина обязательно должны быть указаны. Разделение файлов должно быть активизировано (командой SHARE), иначе функция вернет код ошибки «Неверный номер функции».

Версии: DOS 3.00 и выше (при обязательной загрузке SHARE). DOS, функция 62h Получить адрес PSP

Выход: BX – сегментный адрес PSP выполняющейся программы

Описание. Эта функция возвращает в BX адрес PSP текущей программы. Используется, для получения адреса параметров командной строки, адреса окружения DOS и другой полезной информации, содержащейся в PSP.

Версии: DOS 3.00 и выше. DOS, функция 65h Получить расширенную информацию страны

AL=01h – дать расширенную информацию страны DOS 3.3

AL=02h – дать таблицу преобразования строчных букв в прописные

AL=04h – то же для символов, допустимых в именах файлов

AL=06h – дать сопоставляющую последовательность

BX – кодовая страница (FFFFh – консоль)

CX – размер буфера возврата (должен быть минимум 5 байт)

ES:DI – адрес буфера возврата

CF=0, если функция выполнена успешно

ES:DI – адрес возвращенной информации

CF=1, если при выполнении функции возникли ошибки:

Описание. Эта функция возвращает различную национальную информацию. Используется для получения формата даты, символа валюты и других данных, необходимых для вывода и сортировки информации (во всех странах, кроме США).

Версии: DOS 3.30 и выше. DOS, функция 66h Получить/установить глобальную кодовую страницу

AL=01h – запросить текущую глобальную кодовую страницу

AL=02h – установить активную кодовую страницу

BX – (при AL=02h) кодовая страница (Таблица Б-14)

DX – (при AL=02h) системная кодовая страница (устанавливаемая при загрузке)

CF=0, если функция выполнена успешно

Таблица Б-14. Значения кодовых страниц

BX – (если при вызове AL=01h) текущая активная кодовая страница

DX – (если при вызове AL=01h) системная кодовая страница (устанавливаемая при загрузке)

CF=1, если при выполнении функции возникли ошибки

Описание. Эта функция выбирает новую кодовую страницу или получает значение текущей активной кодовой страницы (страниц). Программа DOS NLSFUNC должна быть загружена до этого вызова. Функция используется в сочетании с 65h или 38h.

Примечание. Устанавливая новую активную кодовую страницу, DOS читает данные из файла COUNTRY.SYS.

Версии: DOS 3.30 и выше. DOS, функция 67h Установить число описателей файлов

BX – максимальное число описателей (до FFFFh)

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. Эта функция устанавливает максимальное число описателей файлов, которые могут быть открыты одновременно. Если значение BX меньше 20, то принимается 20. Если значение BX меньше текущего максимума (нужно сократить число описателей), и в данный момент открыто более чем BX файлов, то изменение будет иметь место, когда число открытых файлов не будет превышать устанавливаемый максимум. Если BX больше текущего максимума (нужно увеличить число описателей), то DOS должна иметь доступную память, чтобы распределить ее под новые описатели. Функция 4Ah позволяет освободить память, чтобы она стала доступной DOS.

Версии: DOS 3.30 и выше. DOS, функция 68h Завершить файл

BX – описатель завершаемого файла

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

Описание. Эта функция заставляет DOS сбросить (записать на диск) буфера основной памяти для указанного описателя файла. DOS обычно избегает обмена с дисками, записывая данные в буфера в основной памяти до заполнения сектора или закрытия файла. Эта функция заставляет DOS немедленно записать данные на диск. Это ускоряет операции с базами данных, позволяя приложению избежать неэффективного закрытия и повторного открытия файлов.

Версии: DOS 3.3 и выше. В версиях DOS от 2.0 до 3.2 можно использовать функцию DOS 45h, чтобы создать и затем закрыть дубликат.

DOS, функция 47h Получить текущее оглавление DOS

DS:SI — адрес локального буфера для результирующего пути — 64 байта

DL — номер диска (0 — текущий, 1 — А и так далее)

CF=0, если функция выполнена успешно

CF=1, если при выполнении функции возникли ошибки

В буфер по адресу DS:SI помещается в форме ASCIZ путь текущего ог-

лавления для диска, указанного в DL. Путь возвращается в формате:

«путь\оглавление»,0. Впереди не подставляется буква диска, а сзади не

подставляется символ «\». Например, если текущим является корневое

оглавление, эта функция вернет пустую строку (DS:[SI]=0).

Dos fn 47h: дать умалчиваемое оглавление dos

Содержание раздела Курс DOS

1 Основные понятия и определения
2 Команды для работы в среде MS DOS
2.1 Работа с каталогами файлов
2.2 Команды поддержки файлов
2.3 Вспомогательные команды DOS. Часть I
2.4 Вспомогательные команды DOS. Часть II
2.5 Вспомогательные команды DOS. Часть III
3 Пакетные файлы
4 Структура DOS
5 Конфигурирование системы
5.1 С чего начать?
5.2 CONFIG.SYS
5.3 AUTOEXEC.BAT
5.4 Справочник команд конфигурирования
5.5 Примеры
6 Краткий справочник команд

Спецификация команды: DIR [н:][имя_файла[.тип]][/P][/W]

Команда выдаёт информацию об элементах каталога (файлах и подкаталогах) — их имена, расширения, длину в байтах (для файлов), признак подкаталога (для подкаталогов), время и дату создания, а также метку диска и объём свободного пространства на нём в байтах.

Параметр /P задаёт «постраничную» выдачу каталога размером с экран.

Часто бывает, что экрана «не хватает» для отображения всех строчек каталога. Чтобы иметь возможность внимательно просмотреть все строки, можно дать в конце текста команды специальный указатель /P. В этом случае после выдачи первых 23 строчек каталога система прервет выдачу и будет ждать, пока пользователь не нажмет любую клавишу.

Параметр /W служит для компактной выдачи каталога.

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

Простейшее использование команды DIR без параметров приводит к выводу на экран текущего каталога. Изображение на экране приобретает, например, такой вид:

Volume in drive C is TOM1
Directory of C:\

CONFIG SYS 118 6-03-88 11:42p
AUTOEXEC BAT 994 7-20-88 12:59p
COMMAND COM 22042 8-14-88 8:00p
SYS 5-19-88 2:19p
EXE 2-25-88 4:44p
ABC 5-29-88 9:47a
DOC 4-30-88 9:43a
WORK 1-20-88 4:44a

8 File(s) 65344 bytes free

Выведенный на экран текст говорит о следующем:
— диск C: имеет метку TOM;

— в корневом каталоге зарегистрированы 3 обычных файла (CONFIG.SYS, AUTOEXEC.BAT и COMMAND.COM) и 5 подчиненных каталогов;

Для просмотра подкаталога DOC достаточно задать команду DIR с параметром — именем подкаталога:

В этом подкаталоге в начале выданной таблицы появились строчки особого вида:

.. 4-30-88 9:43a

Эти строчки указывают, что выданный каталог является подчиненным, при этом указаны дата и время его создания.

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

Рассмотрим несколько примеров:

C:\>dir doc\abc Данная команда обеспечит выдачу подкаталога ABC, входящего в DOC
C:\DOC\ABC>dir \work Здесь текущим является подкаталог второго уровня DOC\ABC, но маршрут говорит о необходимости выдать каталог WORK, начав поиск от корневого каталога.
C:\WORK>dir \ Данная команда требует выдачи корневого каталога диска C:
A:\>dir c: Здесь текущим является корневой каталог диска A:, но маршрут указывает на корневой каталог диска C:

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

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

Пример: Выделить из подкаталога DOC файлы типа TXT. Можно задать команду DIR с шаблоном *.TXT. Команда имеет вид:

Шаблон можно указывать и без префикса-маршрута; тогда происходит выделение группы файлов в текущем каталоге.

Команда DIR в любых ее разновидностях не изменяет каталогов, она лишь выдает их содержимое.

Пример: Команда вывода текущего каталога на принтер может иметь вид:

C:\>dir > prn

Здесь знак «>» означает, что вместо стандартной выдачи каталога на дисплей его следует переадресовать на принтер, обозначаемый в данном примере именем PRN. Точно так же можно записать каталог в любой файл.

Пример команды, заносящей текущий каталог в файл с именем CATALOG:

Спецификация команды: MD [н:]маршрут / MKDIR [н:]маршрут

Создание нового подкаталога может быть произведено в любом текущем каталоге.

Например, в текущем подкаталоге WORK необходимо создать подкаталог PRO. Применим команду MD:

После этого в каталоге WORK появится новая строка вида:

Вновь созданный подкаталог можно заполнять файлами. Файл, представляющий собой каталог, занимает 4 Кбайта памяти на внешнем носителе, так что создание новых каталогов — не безобидная операция с точки зрения расходования памяти на внешних носителях.

Спецификация команды: RD [н:]маршрут / RMDIR [н:]маршрут

Каталог должен быть пуст . Текущий и корневой каталоги не могут быть удалены.

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

Первая команда удаляет подкаталог PRO из текущего каталога WORK. Вторая команда удаляет тот же подкаталог, хотя текущим в этот момент является каталог DOC.

Спецификация команды: CD [н:][маршрут] / CHDIR [н:][маршрут]

Меняет текущий каталог на указанном или текущем накопителе. Смена текущего каталога — часто ипользуемая операция.

Осуществляется переход из корневого каталога С:\ в подкаталог второго уровня \doc\abc. Эта операция может быть проведена посредством двух команд:

Возврат из подчиненного каталога на один уровень вверх осуществляется командой: cd ..

Для возврата на самый верхний уровень дается команда: cd\

Надо заметить, что символы «..» и «\» могут входить в обозначения маршрутов, когда требуется указывать сложные переходы между подчиненными каталогами. Например, маршрут ..\PRO означает «подняться на один уровень вверх и затем спуститься в подкаталог PRO», а маршрут ..\.. означает «подняться на два уровня вверх». Подобные обозначения маршрутов могут фигурировать в командах DIR, CD, RD, PATH, COPY, DEL и других, но пользоваться ими нужно с большой аккуратностью, особенно в командах удаления.

Спецификация команды: PATH [[н:]маршрут[[;[н:]маршрут]. ]]

Если исполняемый файл не обнаружен в текущем каталоге, то он ищется последовательно в каталогах, перечисленных в PATH, текущий каталог при этом не меняется. Команда PATH без параметров выдаёт текущий список альтернативных маршрутов. Команда PATH с параметром «;» отменяет установленные ранее маршруты. Команда PATH не производит никаких изменений в файловой системе или в настройке на текущий каталог.

Стандартный аргумент команды PATH содержит обозначения одного или нескольких маршрутов, разделяемых знаком «;».

Такая команда означает, что файлы, не найденные в текущем каталоге, следует искать сначала по маршруту C:\, затем по маршруту C:\EXE.

Команда PATH обычно фигурирует в камандном файле «автозагрузки» — AUTOEXEC.BAT. Поэтому конечный пользователь обычно не замечает того, что эта команда на самом деле проработала. Но он всегда может узнать, какие альтернативныев маршруты установлены в данный момент. Для этого достаточно дать команду PATH без аргументов.

Отменить установленные альтернативные маршруты можно командой:

Dos fn 47h: дать умалчиваемое оглавление dos

DOS INT 21h — DOS Function Codes

The follow abridged list of DOS interrupts has been extracted from a large list compiled by Ralf Brown. These are available on any Simtel mirror (e.g. sunsite.anu.edu.au) under the directory ms-dos/info/interNNp.zip

AH Description AH Description
01 Read character from STDIN 02 Write character to STDOUT
05 Write character to printer 06 Console Input/Output
07 Direct char read (STDIN), no echo 08 Char read from STDIN, no echo
09 Write string to STDOUT 0A Buffered input
0B Get STDIN status 0C Flush buffer for STDIN
0D Disk reset 0E Select default drive
19 Get current default drive 25 Set interrupt vector
2A Get system date 2B Set system date
2C Get system time 2D Set system time
2E Set verify flag 30 Get DOS version
35 Get Interrupt vector
36 Get free disk space 39 Create subdirectory
3A Remove subdirectory 3B Set working directory
3C Create file 3D Open file
3E Close file 3F Read file
40 Write file 41 Delete file
42 Seek file 43 Get/Set file attributes
47 Get current directory 4C Exit program
4D Get return code 54 Get verify flag
56 Rename file 57 Get/Set file date

AH = 01h — READ CHARACTER FROM STANDARD INPUT, WITH ECHO

Return: AL = character read

  • ^C/^Break are checked
  • ^P toggles the DOS-internal echo-to-printer flag
  • ^Z is not interpreted, thus not causing an EOF if input is redirected character is echoed to standard output

AH = 02h -WRITE CHARACTER TO STANDARD OUTPUT

Entry: DL = character to write

Return: AL = last character output

  • ^C/^Break are checked
  • the last character output will be the character in DL unless DL=09h on entry, in which case AL=20h as tabs are expanded to blanks
  • if standard output is redirected to a file, no error checks (write- protected, full media, etc.) are performed

AH = 05h — WRITE CHARACTER TO PRINTER

Entry: DL = character to print

  • keyboard checked for ^C/^Break
  • STDPRN is usually the first parallel port, but may be redirected under DOS 2+
  • if the printer is busy, this function will wait

SeeAlso: INT 17/AH=00h

AH = 06h — DIRECT CONSOLE OUTPUT

Entry: DL = character (except FFh)

Return: AL = character output

Notes: does not check ^C/^Break

AH = 06h — DIRECT CONSOLE INPUT

Entry: AH = 06h DL = FFh

  • ZF set if no character available and AL = 00h
  • ZF clear if character available AL = character read

  • ^C/^Break are NOT checked
  • if the returned character is 00h, the user pressed a key with an extended keycode, which will be returned by the next call of this function
  • although the return of AL=00h when no characters are available is not documented, some programs rely on this behavior

AH=07h — DIRECT CHARACTER INPUT, WITHOUT ECHO

Return: AL = character read from standard input

Notes: does not check ^C/^Break

AH = 08h — CHARACTER INPUT WITHOUT ECHO

Return: AL = character read from standard input

Notes: ^C/^Break are checked

AH = 09h — WRITE STRING TO STANDARD OUTPUT

Entry: DS:DX -> ‘$’-terminated string

Notes: ^C/^Break are checked

AH = 0Ah — BUFFERED INPUT

Return: buffer filled with user input

  • ^C/^Break are checked
  • reads from standard input

Format of DOS input buffer:

Offset Size Description
00 1 maximum characters buffer can hold
01 1 number of chars from last input which may be recalled OR number of characters actually read, excluding CR
02 n actual characters read, including the final carriage return

AH=0Bh — GET STDIN STATUS

  • AL = 00h if no character available
  • AL = FFh if character is available

Notes: ^C/^Break are checked

AH = 0Ch — FLUSH BUFFER AND READ STANDARD INPUT

  • AL = STDIN input function to execute after flushing buffer
  • other registers as appropriate for the input function

Return: as appropriate for the specified input function

Note: if AL is not one of 01h,06h,07h,08h, or 0Ah, the buffer is flushed but no input is attempted

AH = 0Dh — DISK RESET

Notes: This function writes all modified disk buffers to disk, but does not update the directory information

AH = 0Eh — SELECT DEFAULT DRIVE

Entry: DL = new default drive (0=A:, 1=B:, etc)

Return: AL = number of potentially valid drive letters

Notes: the return value is the highest drive present

AH = 19h — GET CURRENT DEFAULT DRIVE

Return: AL = drive (0=A:, 1=B:, etc)

AH = 25h — SET INTERRUPT VECTOR

  • AL = interrupt number
  • DS:DX -> new interrupt handler

Notes: this function is preferred over direct modification of the interrupt vector table

AH = 2Ah — GET SYSTEM DATE

Return: CX = year (1980-2099) DH = month DL = day AL = day of week (00h=Sunday)

AH = 2Bh — SET SYSTEM DATE

Entry: CX = year (1980-2099) DH = month DL = day

  • AL = 00 successful
  • FFh invalid date, system date unchanged

Note: DOS 3.3+ also sets CMOS clock

AH = 2Ch — GET SYSTEM TIME

Return: CH = hour CL = minute DH = second DL = 1/100 seconds

Note: on most systems, the resolution of the system clock is about 5/100sec, so returned times generally do not increment by 1 on some systems, DL may always return 00h

AH = 2Dh — SET SYSTEM TIME

Entry: CH = hour CL = minute DH = second DL = 1/100 seconds

  • AL = 00h successful
  • FFh if invalid time, system time unchanged

Note: DOS 3.3+ also sets CMOS clock

AH = 2Eh — SET VERIFY FLAG

Entry: AL = new state of verify flag (00 off, 01h o)

  • default state at system boot is OFF
  • when ON, all disk writes are verified provided the device driver supports read-after-write verification

AH=30h — GET DOS VERSION

Entry: AL = what to return in BH (00h OEM number, 01h version flag)

Entry: AL = interrupt number

Return: ES:BX -> current interrupt handler

AH = 36h — GET FREE DISK SPACE

Entry: DL = drive number (0=default, 1=A:, etc)


    AX = FFFFh if inval >Notes:

  • free space on drive in bytes is AX * BX * CX
  • total space on drive in bytes is AX * CX * DX
  • «lost clusters» are cons instead

AH = 39h — «MKDIR» — CREATE SUBDIRECTORY

Entry: DS:DX -> ASCIZ pathname

  • CF clear if successful AX destroyed
  • CF set on error AX = error code (03h,05h)

  • all directories in the given path except the last must exist
  • fails if the parent directory is the root and is full
  • DOS 2.x-3.3 allow the creation of a directory sufficiently deep that it is not possible to make that directory the current directory because the path would exceed 64 characters

AH = 3Ah — «RMDIR» — REMOVE SUBDIRECTORY

Entry: DS:DX -> ASCIZ pathname of directory to be removed

  • CF clear if successful, AX destroyed
  • CF set on error AX = error code (03h,05h,06h,10h)

Notes: directory must be empty (contain only ‘.’ and ‘..’ entries)

AH = 3Bh — «CHDIR» — SET CURRENT DIRECTORY

Entry: DS:DX -> ASCIZ pathname to become current directory (max 64 bytes)

  • CF clear if successful, AX destroyed
  • CF set on error AX = error code (03h)

Notes: if new directory name includes a drive letter, the default drive is not changed, only the current directory on that drive

SeeAlso: AH=47h,AH=71h,INT 2F/AX=1105h

AH = 3Ch — «CREAT» — CREATE OR TRUNCATE FILE

  • CF clear if successful, AX = file handle
  • CF set on error AX = error code (03h,04h,05h)

Notes: if a file with the given name exists, it is truncated to zero length

AH = 3Dh — «OPEN» — OPEN EXISTING FILE

  • AL = access and sharing modes
  • DS:DX -> ASCIZ filename

  • CF clear if successful, AX = file handle
  • CF set on error AX = error code (01h,02h,03h,04h,05h,0Ch,56h)

  • file pointer is set to start of file
  • file handles which are inherited from a parent also inherit sharing and access restrictions
  • files may be opened even if given the hidden or system attributes

AH = 3Eh — «CLOSE» — CLOSE FILE

Entry: BX = file handle

  • CF clear if successful, AX destroyed
  • CF set on error, AX = error code (06h)

Note: if the file was written to, any pending disk writes are performed, the time and date stamps are set to the current time, and the directory entry is updated

AH = 3Fh — «READ» — READ FROM FILE OR DEVICE

  • BX = file handle
  • CX = number of bytes to read
  • DS:DX -> buffer for data

  • CF clear if successful — AX = number of bytes actually read (0 if at EOF before call)
  • CF set on error AX = error code (05h,06h)

  • data is read beginning at current file position, and the file position is updated after a successful read
  • the returned AX may be smaller than the request in CX if a partial read occurred
  • if reading from CON, read stops at first CR

AH=40h — «WRITE» — WRITE TO FILE OR DEVICE

  • BX = file handle
  • CX = number of bytes to write
  • DS:DX -> data to write

  • CF clear if successful -AX = number of bytes actually written
  • CF set on error — AX = error code (05h,06h)

  • DS:DX -> ASCIZ filename (no wildcards, but see notes)
  • CL = attribute mask for deletion (server call only, see notes)

  • CF clear if successful, AX destroyed (DOS 3.3) AL seems to be drive of deleted file
  • CF set on error AX = error code (02h,03h,05h)

  • (DOS 3.1+) wildcards are allowed if invoked via AX=5D00h, in which case the filespec must be canonical (as returned by AH=60h), and only files matching the attribute mask in CL are deleted
  • DOS does not erase the file’s data; it merely becomes inaccessible because the FAT chain for the file is cleared
  • deleting a file which is currently open may lead to filesystem corruption.

AH=42h — «LSEEK» — SET CURRENT FILE POSITION

  • AL = origin of move 00h start of file 01h current file position 02h end of file
  • BX = file handle
  • CX:DX = offset from origin of new file position

  • CF clear if successful, DX:AX = new file position in bytes from start of file
  • CF set on error, AX = error code (01h,06h)

  • for origins 01h and 02h, the pointer may be positioned before the start of the file; no error is returned in that case, but subsequent attempts at I/O will produce errors
  • if the new position is beyond the current end of file, the file will be extended by the next write (see AH=40h)

AH=43 — GET FILE ATTRIBUTES

  • CF clear if successful CX = file attributes
  • CF set on error, AX = error code (01h,02h,03h,05h)

BUG: Windows for Workgroups returns error code 05h (access denied) instead of error code 02h (file not found) when attempting to get the attributes of a nonexistent file.

AH=43 — «CHMOD» — SET FILE ATTRIBUTES

  • CF clear if successful, AX destroyed
  • CF set on error, AX = error code (01h,02h,03h,05h)

  • will not change volume label or directory attribute bits, but will change the other attribute bits of a directory
  • MS-DOS 4.01 reportedly closes the file if it is currently open

SeeAlso: AX=4300h,AX=4311h,AX=7143h,INT 2F/AX=110Eh

Bitfields for file attributes:

Bits 7 6 5 4 3 2 1
Description shareable archive directory vol. label system hidden read-only

AH = 47h — «CWD» — GET CURRENT DIRECTORY

  • DL = drive number (00h = default, 01h = A:, etc)
  • DS:SI -> 64-byte buffer for ASCIZ pathname

  • CF clear if successful
  • CF set on error, AX = error code (0Fh)

  • the returned path does not include a drive or the initial backslash
  • many Microsoft products for Windows rely on AX being 0100h on success

AH = 4Ch — «EXIT» — TERMINATE WITH RETURN CODE

Entry: AL = return code

Return: never returns

Notes: unless the process is its own parent, all open files are closed and all memory belonging to the process is freed

AH = 4Dh — GET RETURN CODE (ERRORLEVEL)


    AH = termination type (00=normal, 01h control-C abort, 02h=critical error abort, 03h terminate and stay res >Notes:

  • the word in which DOS stores the return code is cleared after being read by this function, so the return code can only be retrieved once
  • COMMAND.COM stores the return code of the last external command it executed as ERRORLEVEL

AH = 54h — GET VERIFY FLAG

Return: AL = verify flag (00h=off, 01h=on, i.e. all disk writes verified after writing)

AH = 56h — «RENAME» — RENAME FILE

  • DS:DX -> ASCIZ filename of existing file (no wildcards, but see below)
  • ES:DI -> ASCIZ new filename (no wildcards)
  • CL = attribute mask (server call only, see below)

  • CF clear if successful
  • CF set on error, AX= error code (02h,03h,05h,11h)

  • allows move between directories on same logical volume
  • this function does not set the archive attribute
  • open files should not be renamed
  • (DOS 3.0+) allows renaming of directories

AH = 57h — GET FILE’S LAST-WRITTEN DATE AND TIME

  • AL = 00h (Get attribute)
  • BX = file handle

  • CF clear if successful, CX = file’s time DX = file’s date
  • CF set on error, AX = error code (01h,06h)

Bitfields for file time:

Bits 15-11 10-5 4-0
Description hours minutes seconds

Bitfields for file date:

Bits 15-9 8-5 4-0
Description year (1980-) month day

AH = 57h — SET FILE’S LAST-WRITTEN DATE AND TIME

  • CF clear if successful
  • CF set on error AX = error code (01h,06h)

Илон Маск рекомендует:  Как добавить подчёркивание к ссылке
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL