Dos fn 3ch создать файл через описатель


Если файл уже существует, функция 3Ch все равно открывает его, присваивая ему нулевую длину. Чтобы этого не произошло, следует пользоваться функцией 5Bh.

Дата добавления: 2013-12-23 ; просмотров: 552 ; Нарушение авторских прав

Функция DOS 3Ch — Создать файл

Создание файла с усечением существующего до нулевой длины.

Запрещений нет

Чтение запрещено

Запись запрещена

Все операции запрещены

Режим совместимости (остальные процессы также должны открывать этот файл в режиме совместимости)

Чтение и запись

Запись

Чтение

биты 2 – 3: зарезервированы (0)

биты 6 – 4: режим доступа для других процессов

бит 7: файл не наследуется порождаемыми процессами

DS:DX = адрес ASCIZ-строки с полным именем файла

CL = маска атрибутов файлов

Вывод:

CF = 0 и АХ = идентификатор файла, если не произошла ошибка.

CF = 1 и АХ = код ошибки (02h — файл не найден, 03h — путь не найден, 04h — слишком много открытых файлов, 05h — доступ запрещен, 0Ch — неправильный режим доступа)

LEA DX,PATH ; сегменте данных путь: С:\ПУТЬ\ИМЯФАЙЛА, 0;

; если краткое имя, то берется текущий каталог

MOV AL,2 ; открыть для чтения и записи, если 0 для чтения,

MOV АН,3DН ; функция открытия файла

INT 21H ; открываем файл

JC ERRO ; ошибка, если поднят флаг СF, в АХ код ошибки,

; если ошибки нет, то в АХ описатель файла для

; будущей работы следует его сохранить

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

Ввод:

Ah = 3Ch

СХ = атрибут файла

Бит 7: файл можно открывать разным процессам в Novell Netware

бит 6: не используется

бит 5: архивный бит (1, если файл не сохранялся)

бит 4: каталог (должен быть 0 для функции 3Ch)

бит 3: метка тома (игнорируется функцией 3Ch)

бит 2: системный файл

бит 1: скрытый файл

бит 0: файл только для чтения

DS:DX = адрес ASCIZ-строки с полным именем файла (ASCIZ-строка ASCII-символов, оканчивающаяся нулем).

CF = 0 и АХ = идентификатор файла, если не произошла ошибка

CF = 1 и АХ = 03h, если путь не найден

CF = 1 и АХ = 04h, если слишком много открытых файлов

CF = 1 и АХ = 05h, если доступ запрещен

Функция 5ВН создаёт файл, но если файл уже существует, содержимое его не уничтожается, а взводится флаг ошибки СF.

LEA DX,PATH ; в сегменте данных путь: С:\ПУТЬ\ИМЯФАЙЛА, 0

; если краткое имя, то берется текущий каталог

MOV СХ,0 ; создать только для чтения, если 0 — для чтения, 1 –

MOV АН,3СН ; функция создания файла

INT 21h ; открываем файл

JC ERRO ; ошибка, если поднят флаг СF, в АХ код ошибки,

; если ошибки нет, то в АХ описатель файла, для

; будущей работы следует его сохранить

Пример 10.1. Создание файла и запись в него строки ‘Файл номер 1’.

; В сегменте данных

bufout db ‘Файл номер 1’ ; Данные для записи в файл

Функция 5ah: Создать уникальный временный файл

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

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

Функция 62h: Дать адрес PSP

Вход AH = 62h DOS 3.0+

Выход BX = сегментный адрес PSP выполняемой программы

Описание: Эта функция возвращает в BX адрес PSP текущей программы. Используется, чтобы получить адрес параметров командной строки, адрес окружения DOS и другой полезной информации в PSP. Версии: Доступна, начиная с DOS 3.0

КОДЫ ОШИБОК DOS

1.5.1. Коды ошибок

(начиная с версии DOS 2.0, возвращаются в

AX, если установлен флаг переноса CF)

Ошибка Значение
Hex Dec
Неверный номер функции
Файл не найден
Путь не найден
Слишком много открытых файлов
Доступ отвергнут
Неверный дескриптор (handle)
Разрушены блоки управления памятью
Недостаточно памяти
Неверный адрес блока памяти
0ah Неверное окружение
0bh Неверный формат
0ch Неверный код доступа
0dh Неверная дата
0eh Не используется
0fh Задан неверный диск
10h Нельзя удалить текущий каталог
11h не то же самое устройство
12h Больше нет искомых файлов

1.5.2. Дополнительные коды ошибок

(начиная с версии DOS

3.0, выдаются функцией 59h)

Ошибка Значение
Hex Dec
Нет ошибок
13h Попытка записи на защищенный диск
14h Неизвестный идентификатор устройства
15h Дисковод не готов
16h Неизвестная команда
17h Ошибка данных диска (ошибка контрольной суммы)
18h Неверная длина структуры запросов
19h Ошибка поиска на диске
1ah Неизвестный тип носителя диска
1bh Сектор не найден
1ch Конец бумаги на принтере
1dh Ошибка записи
1eh Ошибка чтения
1fh Общая ошибка
20h Нарушение разделения файла
21h Нарушение блокировки
22h Неверная замена диска
23h FCB недоступен (слишком много открытых FCB)
24h-49h Резерв
50h Файл уже существует
51h Резерв
52h Неизвестно что
53h int 24h – сбой при обработке прерывания по критической ошибке

Коды 13h – 1fh соответствуют ошибкам 0 – 0ср, передаваемых в регистре DI обработчику критических ошибок int 24h. Они также совпадают с кодами ошибок в AL для int 25h, int26h

1.5.3. Класс ошибки

Эти коды предоставляют дополнительную информацию, чтобы помочь вам обработать ошибку. Функция 59h возвращает значение класса ошибки в регистре BH.

Ошибка Значение (возвращается в ВН функцией 59h)
Hex Dec
Нет ресурсов: не хватает FCB, памяти, каналов, дескрипторов файлов и т. п.
Временная ситуация: исчезнет со временем (например, блокировка файла)
Проблема авторизации: Вы должны иметь более высокие полномочия
Внутренняя ошибка: сбой DOS
Ошибка оборудования
Системная ошибка: сбой DOS
Ошибка приложения: некорректный запрос, неверные параметры и т. п.
Не найден запрошенный файл/элемент
Неверный формат: испорчен файл ЕХЕ, плохой диск и т.п.
0ah Блокировка: файл/элемент захвачен другим пользователем
0bh Ошибка носителя: неверный диск, ошибка контроля четности и т. п.
0ch Уже существует файл/элемент
0dh Неизвестный класс: классификация не определена или на проходит

1.5.4. Предлагаемое действие

Эти коды отражают подходящее действие по устранению ошибки. Идея состоит в том, чтобы сэкономить ваш код, не заставляя вас проверять коды ошибок в приложении. Вместо этого вы достигнете совместимости вверх, выполняя предлагаемые ниже действия. Функция 59h возвращает эти коды в регистре BL.

Ошибка Значение (возвращается в ВL функцией 59h)
Hex Dec
Повторить: повторите операцию несколько раз. Если ошибка повторяется, запросите пользователя, продолжить или закончить работу.
Задержать повтор: подождите немного и повторите операцию. Если ошибка повторяется, запросите пользователя, продолжить или закончить работу.
Ввод пользователя: если данные для DOS были введены пользователем, предложите ему повторить ввод (может быть неверный идентификатор диска или путь).
Снять: снимите приложение. Можно выполнить операции завершения, какие, как закрытие файлов, обновление индексов, освобождение памяти и т. п.
Немедленный выход: снимайте немедленно без попытки завершения. Система в подозрительном состоянии, и немедленный выход – лучшее продолжение.
Игнорировать: ошибка ни на что не влияет
Повторить после действия пользователя: требуется вмешательство пользователя (например, установка дискеты). После этого повторите операцию.

1.5.5. Сфера ошибки

Эти коды служат для того, чтобы помочь вам определить место ошибки. Функция 59h возвращает эти коды в регистре CH.

Ошибка Значение (возвращается в СН функцией 59h)
Hex Dec
Неизвестно: не существует определенной области для привязки ошибки
Блочное устройство: ошибка дискового или ленточного устройства
Резерв
Символьное устройство
Память

Обработка ошибок совместима снизу вверх для всех версий DOS. Применимы следующие общие правила:

· DOS 1.x: индицирует некоторые ошибки, помещая в AL при возврате 0ffh.

· DOS 2.x: новые вызовы 2.x индицируют ошибки, устанавливая флаг CF=1 и помещая код ошибки в AX.

· DOS 3.x: вызовы 3.x по-прежнему помещают код ошибки в AX при CF=1, но нет гарантии, что будущие версии будут поступать так же. Советуем использовать функцию 59h для получения информации об ошибке.

ГЛАВА 2.

ПРИМЕРЫ ПРОГРАММ

2.1 РАБОТА С ЭКРАНОМ

2.1.1. Вывод текста

Задача: Вывести на середину пустого экрана мигающее слово «ТЕКСТ» текстовом режиме CGA 80 символов * 25 строк.

a) Используя функции DOS.

b) Используя функции BIOS.

c) Помещая символы непосредственно в экранную область.

а) Использование функций DOS

Assume CS: Code;, DS: Code

; Установка видеорежима 03

mov ah,0 ; Функция 0

mov al,3 ; Режим 3

; Вывод текста (мигание в ДОС нельзя)

mov ah,9 ; Функция 9

lea dx,text ; Смещение текста (DS)

; Ожидание ввода клавиши пробела

loop1: mov ah,7 ; Функция 7 (нефильтрованный ввод без эха)

cmp al,’ ‘ ; Пробел ?

; Выход из программы

text db 25 dup(0ah),0dh ; Очистка экрана

db 38 dup(20h),’ТЕКСТ’ ; Вывод слова на середину

db 12 dup(0ah),0dh,’$’ ; На середину экрана

б. Использование функций BIOS

Assume CS: Code;, DS: Code

; Установка видеорежима 3

mov ah,0 ; Функция 0

mov al,3 ; Режим 3

; Очистка экрана и задание атрибута мигания

mov ah,6 ; Инициализация или прокрутка окна вверх

mov al,0 ; Очистка всего окна

mov bh,87h ; Установка атрибута мерцания

mov ch,0 ; Y лев. верхнего угла

mov cl,0 ; X лев. верхнего угла

mov dh,24 ; Y прав. нижнего угла

mov dl,89 ; X прав. нижнего угла

; Установка позиции курсора

mov ah,2 ; Функция 2

mov bh,0 ; Страница 0

mov dh,12 ; Строка 12

mov dl,38 ; Колонка 38

mov ah,0Eh ; Функция 0Eh

lea si,text ; Смещение текста (DS)

loop2: cmp byte ptr [si],0 ; Проверка на конец текста

jz loop1 ; Выход

jmp short loop2

; Ожидание ввода клавиши пробела

loop1: mov ah,0 ; Функция 0

cmp al,’ ‘ ; Пробел ?

; Выход из программы

text db ‘ТЕКСТ’,0 ; Вывод слова на середину

в. Непосредственный вывод в экранную область

Assume CS: Code;, DS: Code

; Установка видеорежима 3

mov ah,0 ; Функция 0

mov al,3 ; Режим 3

mov es,ax ; ES = B800h

xor si,si ; Обнуление регистра-источника

xor di,di ; Обнуление регистра назначения

mov cx,2000 ; Инициализация счетчика

lea si,text ; Смещение текста (DS)

mov di,2000 ; Начальная ячейка экр. памяти

mov ah,8fh ; Атрибут

loop2: cmp byte ptr [si],0 ; Проверка на конец текста

jz loop1 ; Выход

mov es:[di],ax ; На экран

jmp short loop2

; Ожидание ввода клавиши пробела

loop1: mov ah,0 ; Функция 0

cmp al,’ ‘ ; Пробел ?

; Выход из программы

text db ‘ТЕКСТ’,0 ; Вывод слова на середину

2.1.2. Вывод графических образов

Написать программу, которая в графическом режиме CGA 4 * 320 * 200 рисует голубыми линиями рамку по краю экрана, а в центре рисует закрашенный сиреневый пря моугольник размером 40 * 40 точек

Внутренние и внешние команды DOS. Создание файла в MS-DOS. Основные виды оперативной памяти (ОЗУ).

I. Основные внутренние команды DOS.
Внутренние команды DOS выполняет командный процессор command.com.

Применение внутренних и внешних команд DOS относится к области системного программирования.

1. Команда смены текущего дисковода:
a: — переход на дисковод a:

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

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

2. Команда вывода оглавления каталога: dir

Поэкранный (постраничный) вывод оглавления каталога, если оглавление очень большое: dir/p

dir a:\ — команда вывода оглавления корневого каталога на диске а:.

Команда dir>dir.txt позволяет сохранить оглавление текущего каталога в виде текстового файла dir.txt. Это общее правило записи результатов работы программ в текстовом режиме в текстовый файл. Пример: ide.com > ide.txt.

3. Команда смены текущего каталога: cd имя каталога

Переход в корневой каталог текущего диска: cd\

Переход из подкаталога в каталог: cd..

4. Команда создания каталога: md имя каталога

5. Команда удаления пустого каталога: rd имя каталога

6. Команда вывода содержимого текстового файла на экран:

7. Команда очистки экрана монитора: cls

8. Команда копирования файлов:

copy имя файла1 имя файла2 — копирование одного файла в другой

copy имя файла имя каталога — копирование файла в каталог;

copy имя файла prn — распечатка файла на принтере.

9. Создание текстового файла:

copy con: имя файла, нажать Enter, ввести построчно текст,

в конце каждой строки Enter, затем в конце F6 или Ctrl+Z и Enter.

10. Объединение содержимого двух и более текстовых файлов

(конкатенация файлов): copy имя 1-го файла + имя 2-го файла имя нового файла

11. Команда удаления файла: del имя файла или erase имя файла

12. Переименование файла: ren имя файла новое имя файла

13. Вывод версии DOS: ver

14. Вывод метки диска: vol

15. Ввод текущей даты: date

16. Ввод текущего времени: time

17. Exit — выход из командного процессора DOS.

Примечание: После ввода с клавиатуры указанных команд в командную

строку следует нажать клавишу Enter.

II. Основные внешние команды DOS (для версии MS-DOS 6.22).
Внешние команды DOS выполняют вспомогательные программы (утилиты),

расположенные в каталоге DOS на диске С:.

1. format имя диска: — форматирование диска (для дискет format a:

или format b:). Создание системного диска: format имя диска: /s

Будьте внимательны: при форматировании диска (дискеты) вся информация на нем уничтожается!

2. fdisk — разбиение жесткого диска на разделы (логические диски С, D, E и так далее).

Внимание: при разбиении жесткого диска на разделы вся информация на нем уничтожается!

3. sys имя диска: — перенос файлов ядра DOS на диск (дискету), создание системного диска (дискеты). Используется также для смены (обновления версии) DOS.

4. mem — вывод карты оперативной памяти. Чаще используется команда mem/c/p или mem/d/p (ключ p — постраничный вывод информации).

5. chkdsk c: /f — проверка файловой системы и восстановление потерянных кластеров.

6. scandisk — проверка файловой системы и диска на наличие логических сбоев. Для дискет scandisk a: или scandisk b:

7. label имя диска: — создание или обновление метки на диске, дискете.

8. undelete имя диска: — восстановление случайно стертых файлов.

9. diskcopy имя диска: имя диска: — создание точной копии дискеты.

10. print имя файла prn — печать файла на принтере в фоновом режиме. Отмена фоновой печати: print /t

11. graphics — поддержка печати информации с экрана (при нажатии клавиши Print Screen).

12. defrag c: /fd — устранение фрагментации файлов и оптимизация размещения информации на жестком диске (эта программа аналогична программе Speed Disk из комплекта Norton Utilities).

13. deltree имя каталога — удаление дерева каталогов (с файлами).

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

14. msd — диагностика компьютера.

15. edit — вызов текстового редактора MS-DOS Editor.

16. qbasic — вызов языка программирования BASIC.

17. doskey — вызов программы, облегчающей редактирование содержимого командной строки (вводимых команд DOS).

18. tree c:\имя каталога /f — вывод содержимого указанного каталога.

19. msav — проверка дисков антивирусной программой MS-Antivirus.

20. memmaker — оптимизатор распределения оперативной памяти.

Форматы команд для утилиты MS-DOS mem.exe:
mem — стандартная карта ОЗУ;

mem/c/p — выдает список загруженных программ;

mem/d/p — выдает информацию о внутренних устройствах (например:

con, prn, LPT1 и т.д.) с адресацией;

mem/f/p — объем свободной памяти с адресацией

mem/m имя программы — размер памяти, занимаемый указанной

загруженной программой (резидентной, c расширением com и exe);

ключ /p дает постраничный вывод информации.

Создание файла в MS-DOS
Для создания файла в MS-DOS необходимо:

1. Ввести команду в командную строку: copy con: имя файла и нажать Enter.

Пример: copy con: c:\mark\proba.txt

2. Ввести текст и нажать F6 или Сtrl-Z, что означает конец строки, и нажать Enter. Будет создан файл proba.txt в каталоге MARK. Имя файла надо указывать с полным путем.

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

полный путь (маршрут).

Пример: copy con: name.txt и далее как указано выше в п. 2.

Назначение функциональных клавиш в MS-DOS
F1 -копирует по одному символу из буфера на экран.

F2 -копирует все символы из буфера на экран до заданного символа.

F3 -копирует все символы из буфера на экран.

F4 -пропускает все символы в буфере до определенного символа.

F5 -переносит все символы с экрана в буфер, не пытаясь выполнить их

F6 -означает конец строки (или CTRL-Z).

Остальные клавиши в MS-DOS не используются, но применяются в

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

Использование команды создания виртуального диска SUBST
Для создания виртуального диска (например, E), содержащего файлы из каталога ME, в командную строку надо записать: subst e: c:\me или subst e: c:\mark\refis для файлов из каталога REFIS. Переход на диск Е: производится по общему правилу для любого диска. Это в ряде случаев облегчает запуск программ, когда в команду Path уже нельзя вставить новый каталог (общая длина каталогов в команде Path не может превышать 128 байт). Данную команду можно вставить в файл autoexec.bat, тогда виртуальный диск будет устанавливаться постоянно. Команда subst еще называется командой определения синонима для имени каталога и используется, чтобы не набирать имени каталога, который часто используется. При создании и удалении файлов и каталогов на виртуальном диске E: тоже самое будет происходить синхронно и в каталоге ME на диске С:.

Создать таким способом еще один 2-й виртуальный диск F: уже нельзя. Каких-либо видимых изменений в оперативной или дисковой памяти при создании виртуального диска не происходит. Команда удаления виртуального диска E: subst e: /d. Команда subst относится к внешним командам DOS.

О некоторых внутренних командах DOS.
Если ввести в командную строку команды echo и verify, то можно

узнать их текущее состояние: echo is on или echo is off;

verify is on или verify is off.

Если ввести команду path, то будет выдана команда path из файла

autoexec.bat, т.е. текущий список каталогов, указанный в команде path.

Если ввести команду set, то будет указано ее текущее состояние,

то есть будет выдана та часть файла autoexec.bat, которая отно-

сится к заданию переменной окружения: path, prompt, set, а также

УКАЗАТЕЛЬ КОМАНД И УТИЛИТ MS-DOS

(Внутренние (*) и внешние команды MS-DOS)

ANSY.SYS установка драйвера консоли

ASSIGN переназначение дисковых устройств

ATTRIB установка атрибута файла

BATCH пакетные командные файлы (*.bat) *

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

BREAK прерывание программы *

BUFFERS создание буферов в ОЗУ *

CHDIR (CD) переход в новый каталог *

CHKDSK проверка дисков

CLS очистка экрана *

COMMAND: второй командный процессор *

COMP сравнение дисковых файлов

COPY копирование файла *

COUNTRY установка формата даты и времени

CTTY переназначение консоли

DATE установка даты *

DEBUG отладчик программ

DEVICE установка новых драйверов устройств *

DIR просмотр каталогов *

DISKCOMP сравнение дисков

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

DRIVER.SYS установка драйвера блочно-ориентированных устройств

ERASE (DEL) удаление файлов *

FCBS блоки управления файлами *

FDISK разбиение жесткого диска на разделы

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

FIND поиск данных

FORMAT форматирование диска

GRAFTABLE загрузка дополнительных символов для графического режима

GRAPHICS распечатка графических изображений

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

KEYBхх загрузка нерезидентных драйверов клавиатуры

LABEL создание и замена метки диска

LASTDRIVE установка максимального числа доступных дисководов *

LINK загрузчик (редактор) связей

MKDIR (MD) создание каталога *

MODE изменение режимов работы выходных устройств

MORE постраничный вывод файлов на экран

PATH указание пути поиска *

PRINT вывод на печать данных

PROMPT изменение формата приглашения DOS *

RENAME (REN) переименование файлов *

REPLACE селективная замена и копирование файлов

RESTORE восстановление файлов, резервированных по команде BACKUP

RMDIR (RD) удаление пустого каталога *

SELECT установка MS-DOS на новый диск с заданным типом клавиатуры, форматом даты и времени

SET установка переменной окружения *

SHELL применение дополнительного командного процессора *

SORT сортировка данных

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

SYS копирование MS-DOS

TIME установка времени *

TREE вывод дерева каталогов

TYPE вывод на дисплей содержимого файла *

VDISK.SYS установка драйвера виртуального диска

VER вывод версии MS-DOS *

VERIFY проверка записи на диск *

VOL вывод метки диска *

XCOPY выборочное копирование групп файлов и каталогов

Основные виды оперативной памяти (ОЗУ)
Оперативная память (ОЗУ) — это устройство для временного хранения информации (только в процессе работы компьютера), обеспечивает быстрый доступ процессора к программе и обрабатываемым данным.

1. CMA — основная оперативная память (Conventional Memory Area).

(область 0 — 640K).

2. UMA — верхняя память (Upper Memory Area).

(область 640K — 1M).

3. UMB — блоки верхней памяти (Upper Memory Block).

4. HMA — высокая память (High Memory Area).

(область 1M + 64K).

5. XMA — расширенная память (Extended Memory Area).

(область, выше > 1M + 64K).

6. EMS — дополнительная память (Expanded Memory).

(расположена на отдельной плате).

Проблема 640 Кбайт
У IBM PC с процессором 8088 и 8086 оперативная память, доступная для DOS и прикладных программ, составляет не более 640 Кбайт. Это было шагом вперед для начала 80-х годов, по сравнению с 64 Кбайт для остальных компьютеров. Однако с появлением процессоров 80286, 80386 и старше, а также современных программ, например Windows, ограничение в 640 Кбайт превратилось в проблему, которая была успешно решена с появлением дополнительной памяти и особенно расширенной памяти. Расширенная память (Extended Memory) — это память выше, чем 1M + 64K. Благодаря появлению расширенной памяти, процессоры 80286, 80386SX и 80486SX могут непосредственно обращаться к 16 Мб памяти, а процессоры 80386DX, 80486DX и старше — к 4 Гб.

Дополнительная память (Expanded Memory) сейчас не применяется.

Подпрограммы, работа с файлами через описатели.

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

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

Таблица. Варианты заданий

Вариант Задание
Вывести на экран содержимое файла. Имя вводится с клавиатуры, если файл с указанным именем не существует, то выдать соответствующее сообщение.
Произвести копирование одного файла в другой, имена файлов вводятся пользователем с клавиатуры, если файл с указанным именем не существует, то выдать соответствующее сообщение.
Произвести переименование файла. Старое и новое имя вводится с клавиатуры, если файл с указанным именем не существует, то выдать соответствующее сообщение.
Произвести слияние файлов, имена которых вводятся с клавиатуры. Если файлы с указанными именами не существуют, то выдать соответствующие сообщения.
Произвести сравнение файлов, имена которых вводятся с клавиатуры. Если файлы с указанными именами не существуют, то выдать соответствующие сообщения.
Вычислить размер файла и вывести его на экран в десятичной форме. Имя файла вводится с клавиатуры, если файл с указанным именем не существует, то выдать соответствующее сообщение.
Подсчитать количество слов в файле и вывести на экран результат в десятичной форме. Имя файла задается пользователем, если файл с указанным именем не существует, то выдать соответствующее сообщение.
Произвести запись информации из одного файла в другой в обратной последовательности. Имена файлов вводятся с клавиатуры, если файлы с указанными именами не существуют, то выдать соответствующие сообщения.
Произвести запись введенной пользователем с клавиатуры информации в файл, имя которого вводится с клавиатуры.
Подсчитать количество цифр в файле и вывести на экран результат в шестнадцатеричной форме. Имя файла задается пользователем, если файл с указанным именем не существует, то выдать соответствующее сообщение.
Илон Маск рекомендует:  Атрибуты элементов

Теоретические сведения

Подпрограммы

Как уже было сказано выше, программный сегмент может разбиваться на части директивами определения подпрограмм (процедур). Для определения процедур используются две директивы – директива начала PROC и директива конца ENDP. Процедура должна иметь имя, которое включается в обе директивы. В сегменте кода процедуры могут располагаться последовательно, а могут быть вложенными одна в другую. Определение подпрограмм имеет следующий синтаксис:

имя_процедуры PROC параметр

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

Существует несколько разновидностей команды вызова процедуры CALL. Все команды вызова безусловны и используются для передачи управления процедуре. Внутрисегментный вызов NEAR CALL используется для передачи управления процедуре, находящейся в том же сегменте. Межсегментный вызов FAR CALL используется для передачи управления процедуре, находящейся в другом сегменте или даже программном модуле.

Командам CALL соответствуют команды возврата RET. Все возвраты – косвенные переходы, поскольку извлекают адрес перехода из вершины стека. Внутрисегментный возврат извлекает из стека одно слово и помещает его в регистр IP, а межсегментный возврат извлекает из стека два слова, помещая слова из меньшего адреса в регистр IP, а слово из большего адреса – в регистр CS. Оператор RET может иметь операнд, который представляет собой значение, прибавляемое микропроцессором к содержимому указателя стека SP после извлечения адреса возврата.

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

MOV BP,SP ;загрузка в BP текущего адреса стека

MOV BX,[BP+4];выборка из стека 1 параметра (ca)

MOV BX,[BP+2];выборка из стека 2 параметра (ll)

RET 4 ;Возврат с удалением 4 слов из стека

MOV AX,’ca’ ;Загрузка в AX символов

MOV CX,’ll’ ;Загрузка в CX символов

PUSH AX ;Сохранение AX в стек

PUSH CX ;Сохранение CX в стек

Работа с файлами

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

Начиная с DOS версии 2.0, в набор функций прерывания 21h включены UNIX-подобные файловые функции. Идея их состоит в том, что, когда программа открывает файл, DOS возвращает 16-битовое значение «описателя файла» (дескриптора файла) (handle). После этого, когда программа читает, позиционирует, пишет или закрывает файл, она ссылаетесь на него через описатель. Одно из самых больших удобств – то, что можно обращаться к некоторым устройствам так, как будто это дисковые файлы, через зарезервированные описатели DOS:

Таблица.Предопределенные описатели DOS

Handle Наименование и описание
Стандартное устройство ввода (обычно клавиатура)
Стандартное устройство вывода (обычно экран)
Стандартное устройство ошибок (всегда CON — экран. Для сообщений)
Стандартное устройство AUX (асинхронный адаптер; 1-й послед. порт — COM1)
Стандартный принтер (1-й параллельный порт принтера- LPT1)

Ниже приведен перечень наиболее часто используемых функций прерывания 21h для работы с файлами через описатели.

Функция 3cH

DS:DX=адрес строки ASCIIZ с именем файла

Выход. AX=код ошибки, если CF установлен и описатель файла,

если ошибки нет.

Описание. Файл создается в указанном (или умалчиваемом) оглавлении и открывается в режиме доступа «чтение/запись». Если файл уже существует, то при открытии файл усекается до нулевой длины. Если атрибут файла – «только чтение», открытие отвергается (атрибут можно изменить функцией 43H).

Функция 5bH

Создать новый файл (не должен существовать).

DS:DX=адрес строки ASCIIZ с именем файла

Выход. AX=код ошибки, если CF установлен и описатель файла,

если ошибки нет

Описание. Этот вызов идентичен функции 3ch, с тем исключением, что он вернет ошибку, если файл с заданным именем уже существует.

Функция 5aH

Создать уникальный файл.

DS:DX=адрес строки ASCIIZ с путем (заканчивается \)

Выход. AX=код ошибки, если CF установлен и описатель файла,

если ошибки нет

DS:DX (не изменяется) становится полным

ASCIIZ-именем нового файла.

Описание. Открывает (создает) файл с уникальным именем в оглавлении, указанном строкой ASCIIZ, на которую указывает DS:DX. Описание пути должно быть готово к присоединению в его конец имени файла. Необходимо обеспечить минимум 12 байт в конце строки. После возврата строка DS:DX будет дополнена именем файла. DOS создает имя файла из шестнадцатеричных цифр, получаемых из текущих даты и времени. Если имя файла уже существует, DOS продолжает создавать новые имена, пока не получит уникальное имя.

Функция 3dH

DS:DX=адрес строки ASCIIZ с именем файла

Выход. AX=код ошибки, если CF установлен и описатель файла,

если ошибки нет

Описание. В момент открытия файл должен существовать. Файл открывается в выбранном режиме доступа (AL = 0 – для чтения; AL = 1 – для записи; AL = 2 – для чтения и записи) и указатель «чтения/записи» устанавливается в 0.

Функция 3eH

Выход. AX= код ошибки, если CF установлен

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

Функция 41H

DS:DX=адрес строки ASCIIZ с именем файла

Выход. AX=код ошибки, если CF установлен

Описание. Имя файла не может содержать обобщенные символы («?» и «*»). Файл удаляется из заданного оглавления заданного диска. Если файл имеет атрибут только чтение, то перед удалением необходимо изменить этот атрибут через функцию 43H.

Функция 42H

Установить указатель чтения/записи (можно также узнать размер файла).

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.

Функция 3fH

Читать из файла/устройства.

DS:DX=адрес буфера для чтения данных

CX=число считываемых байт

Выход. AX=код ошибки, если CF установлен

AX=число действительно прочитанных байт

Описание. CX байт данных считываются из файла или устройства с описателем, указанным в BX. Данные читаются с текущей позиции указателя чтения/записи файла и помещаются в буфер вызывающей программы, адресуемый через DS:DX.

Всегда необходимо сравнивать возвращаемое значение AX (число прочитанных байт) с CX (запрошенное число байт):

— если AX=CX, (и CF сброшен) – чтение было корректным без ошибок;

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

Версии: DOS 2.00 и выше. Таблица Б-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 – установить информацию об устройстве

Задание

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

Описание работы программы

DOS, функция 09h int 21h Запись строки на стандартный вывод

DS:DX — адрес строки, заканчивающейся символом «$» (ASCII 24h)

Строка, исключая завершающий ее символ «$», посылается на стандартный вывод.

DOS, функция 3Ch Создать файл через описатель

DS:DX — адрес строки ASCIZ с именем файла

СХ — атрибут файла

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

АХ — описатель файла CF=1, если при выполнении функции возникли ошибки

DOS, функция 40h Писать в файл через описатель

ВХ — описатель файла

DS:DX — адрес буфера, содержащего записываемые данные

СХ — число записываемых байт

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

AX — число действительно записанных байт CF°1, если при выполнении функции возникли ошибки

СХ байт данных записываются в файл или на устройство с описателем, заданным в ВХ. Данные берутся из буфера, адресуемого через DS:DX, и записываются, начиная с текущей позиции указателя чтения/записи файла. Чтобы установить указатель файла, если необходимо, можно использовать функцию 42h. Обновляет указатель чтения/записи файла, чтобы подготовиться к последующим операциям чтения или записи.

DOS, функция 3Eh Закрыть описатель файла

АН-ЗЕh ВХ — описатель файла

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

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

ВХ содержит описатель файла (handle), возвращенный при открытии. Файл, представленный этим описателем, закрывается, его буферы сбрасываются и оглавление обновляется корректными размером, временем и датой. Из-за недостатка описателей файлов (максимум 20, по умолчанию установлено 8), возможно, придется закрыть часть текущих описателей, как, например, описатель 3 (стандартный AUX).

DOS, функция 35h int 21h Получить вектор прерывания

AH-35h AL — номер прерывания (OOh до FFh)

ES:BX — адрес обработчика прерывания

Возвращает значение вектора прерывания для INT (AL), то есть загру- жает в ВХ 0000:[AL*4], а в ES — 0000:[(AL*4)+2].

DOS, функция 25h Установить вектор прерывания

AL — номер прерывания

DS:DX — вектор прерывания — адрес программы обработки прерывания

Описание. Устанавливает значение элемента таблицы векторов прерываний для прерывания с номером AL, равным DS:DX. Это равносильно записи 4-байтового адреса в 0000:(AL*4), но, в отличие от прямой записи, DOS знает, что происходит, и гарантирует, что в момент записи прерывания будут заблокированы. DOS, функция 31h int 21h Завершиться и остаться резидентным

DX — объем памяти, оставляемой резидентной (в параграфах)

Выходит в родительский процесс, сохраняя код выхода в AL. Код выхода можно получить через функцию 4Dh. DOS устанавливает начальное распределение памяти, как специфицировано в DX, и возвращает управление родительскому процессу, оставляя указанную память резидентной (число байт равно DX*16). Эта функция перекрывает функцию INT 27h, которая не возвращает код выхода и не способна установить резидентную программу, размер которой превышает 64Кбайт. Int 10h Чтение нескольких регистров таблицы цветов (регистров ЦАП) — подфункция 17h

Функция производит чтение 18-битовых значений из нескольких последовательно расположенных регистров таблицы цветов:

Как создать файл с расширением txt в операционных системах Windows, Linux, MacOS, MS-DOS и Andro >от AleksPayne · 30.03.2020

Здравствуйте, если вы заглянули на страничку моего блога, значит, вам нужна помощь в общении с компьютером. Помогу, чем смогу. Тема сегодняшнего обсуждения «Как создать файл txt?». Мне было удивительно видеть в комментариях к одной из статей данный вопрос, так как действия, производимые при создании основных форматов типа txt, doc, xls у меня доведены до автоматизма. И если требуется выполнить такую задачу, я просто это делаю, не задумываясь о том, как именно. Посмотрел статистику запросов в «Гугле». Выяснилось, что множество людей задают подобные вопросы — как создать txt файл на Windows 7, 10 и других операционных системах (MacOS, MS-DOS, Linux), как создать текстовый файл txt в командной строке, в папке, в «Ворде», как создать txt файл на телефоне. Порыскав в своей голове и на просторах интернета, я собрал всё, что смог найти на данную тему. Так и родилась эта статья, которую я решил начать с самой распространённой операционной системы — Windows.

Windows

Итак, поговорим о том, как создать файл.txt на компьютерах с операционной системой windows 10, 7 и более ранними, устаревшими, но вполне дееспособными версиями. Друзья, мне кажется, что будет вполне уместным сначала объяснить, что такое текстовый файл с расширением txt, а уж потом переходить к разговору о том, как его создать.

Определение

Файл – это исходный элемент на компьютере, содержащий некоторую информацию. Он имеет имя и расширение. С именем, думаю, всё понятно и объяснять не стоит. Расширение – это продолжение имени, указывающее системе на формат документа и на то, какой программой его открывать. Формат – это специфика информации, которая есть в содержании, то есть текст, графика, таблицы. Текстовый файл в формате txt – это документ, содержащий только чистый текст, без какого-либо форматирования и картинок, открывается который любыми текстовыми редакторами (по умолчанию стандартной программой «Блокнот»), а как его создать в подробностях рассмотрим ниже.

Контекстное меню

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

  • На любом свободном пространстве, будь то рабочий стол, локальный диск или любая директория щёлкаем мышкой, точнее, правой её кнопкой, вызывая контекстное меню.
  • Среди вариантов возможных действий выбираем «Создать» и раскрываем перечень документов, доступных для создания.
  • Находим необходимый нам «Текстовый документ» (прямо так и называется) и щёлкаем по нему один раз, в результате чего он появляется в том самом пространстве, где мы делали первый щелчок.
  • Далее, требуется задать ему имя и нажать Enter или просто кликнуть в любом месте.

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

Папка

Друзья, хотя вышеописанным способом можно создать файл txt в любом месте, но всё-таки давайте я расскажу о том, как это сделать ресурсами конкретной папки:

  • Заходим в нужную папку.
  • В верхней части окна выбираем раздел «File» и раскрываем его меню.
  • Среди предложенных вариантов выбираем действие «Создать» и затем «Текстовый документ».

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

  • Первый способ – открываем «Блокнот» (находится в списке стандартных программ меню «Пуск») и копируем в него содержимое документа docx.
  • Второй способ:
    • Нажимаем правой кнопкой мыши на чём-то.docx и выбираем действие «Переименовать».
    • Удаляем имеющееся расширение и вместо него пишем tхt.
    • Нажимаем для подтверждения Enter.
    • На предупредительный вопрос системы об опасности смены расширения отвечаем утвердительно.
  • Третий способ:
    • Открываем имеющийся документ docx в «Ворде» или другом текстовом редакторе.
    • Открываем меню «File» и выбираем пункт «Сохранить как».
    • В списке предложенных вариантов выбираем пункт «Другие форматы», в результате чего откроется новое окно.
    • Внизу окна имеются две строки «Имя» — его нужно задать и «Тип» — здесь необходимо установить расширение.
    • Нажав на стрелочку в углу строки «Тип» раскрываем перечень возможных расширений и устанавливаем «Обычный текст (*.tхt)».
    • Подтверждаем сохранение документа в заданном формате нажатием кнопки «Сохранить».

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

Командная строка

Создать файл txt можно и с помощью приложения cmd.exe. Это не так-то просто и не всегда понятно, а ещё необходимо знать команды. Но всё-таки я расскажу об этом вкратце, может, кому и пригодится. Итак, с помощью командной строки можно создать два вида файлов txt – пустой и заполненный, то есть имеющий содержимое.

Пустой

Чтобы создать пустой файл с расширением txt, посредством командной строки, необходимо для начала её запустить. Сделать это можно несколькими способами, вот самые простые:

  • Нажимаем Win и R, в результате чего откроется окно «Выполнить», вводим команду cmd.exe и нажимаем OK.
  • В меню «Пуск» выбрать пункт «Командная строка (администратор)».
  • В поисковой строке «Пуска» набрать cmd и запустить найденное приложение от имени администратора.

Далее, необходимо ввести команду для создания нулевого (пустого) текстового документа, их много, предлагаю вашему вниманию две самые популярные из них:

  • copy con filename.tхt – создаст нужный документ в открытой директории, для его появления в другом месте вместе с именем вводим полный путь до нужной папки.
  • echo off > C:\111.txt, где «echo» — команда «создать», «off» означает отсутствие текста, а C:\111.tхt – это имя и путь к расположению.

С текстом

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

  • Вводим copy con filename.tхt, затем пишем необходимый текст, нажимаем CTRL и Z, жмём Enter и получаем то, что требуется.
  • Во второй команде — echo off > C:\111.tхt – требуемый текст нужно написать вместо «off».

Кстати, если вы ищете ответ на вопрос «как создать файл с расширением txt в MS-DOS?», то ознакомьтесь с описанными выше способами, так как они актуальны и для этой операционной системы.

Linux

Друзья, давайте поговорим о том, как создать txt файл в операционной системе linux. Сделать это можно посредством терминала, который является аналогом командной строки в. Существует несколько команд, я расскажу о самых коротких. Итак, как и в случае с командной строкой в Windows, для создания текстового файла.txt в linux сначала потребуется запустить терминал. Для этого нажимаем одновременно три клавиши – CTRL, ALT и T. Затем вводим одну из следующих команд:

  • Для нулевых — > a или >a (наличие пробела необязательно), где, а – это имя документа, который создастся в текущей папке. Если нужно сотворить сразу несколько подобных документов, то вместо «> b > c > d > e > f > g» удобнее будет написать touch b c d e f g.
  • Для заполненных — echo tekst > h или то же, но без пробелов (никакой разницы) — echo tekst>h. В этом случае мы получим документ с именем h и с текстом tekst в текущей папке.

MacOS

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

  • Запускаем терминал — проще всего через поисковую строку Spotlight (нажимаем одновременно пробел и CTRL, пишем «Терминал»).
  • Вводим команду $ touch some_text_file.tхt, но только предварительно перейдя в нужную директорию.

Android

Очень часто люди спрашивают в интернете, как создать текстовый файл txt на «Андроиде». Отвечаю – ресурсами самого телефона этого не сделать. Необходимо устанавливать специальные приложения, которых навалом в сервисе Play Market – «Простой текстовый редактор» (аналог блокнота), Text Editor. Есть такие, в которых текст можно надиктовывать голосом, а он будет преобразован в нужный формат (Речь текстовый редактор). Или, наоборот, выбранные фрагменты текста приложение преобразует в речь и прочтёт их в голос (Text Editor).

FAR Manager

Среди самых популярных поисковых запросов в «Гугле» есть и такой – «как создать txt файл в far». Расскажу в двух словах и об этом — помогу людям. Для сотворения нужного документа в FAR Manager выполняем следующие действия:

  • Нажимаем одновременно две клавиши, одна из которых SHIFT, а другая F4.
  • Появится пустой запрос на создание.
  • Пишем любое имя и ставим нужное расширение — 12345.tхt и получаем то, что хотели.

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

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).

Илон Маск рекомендует:  Создание таблиц excel средствами php

Версии: 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, чтобы создать и затем закрыть дубликат.

MS-DOS Команда для создания *.txt файла с вложенным в него текстом

copy con имяфайла. txt

Вводишь всю необходимую информацию, когда заканчиваешь — жмешь F6 или Ctrl+Z. Такой способ поможет запиндюлить в файл не одну строку, а несколько.

Главное помнить: текст на русском языке вписанный подобным образом блокнотом отобразится в виде иероглифов, т. к. у DOS и Windows разные кодировки. Для вывода на экран такого файла в DOS необходимо набрать:
type имяфайла. txt

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

Если нужно к файлу добавить что-то, то вместо > надо использовать >>:

Команды работы с каталогами и файлами в операционной системе 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

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL