- •Лабораторная работа № 1.
- •Функция 0ен
- •Функция 1ан
- •Функция 2fh
- •Функция 36н Определяет параметры диска
- •Функция 39н
- •Функция 3ан Удаляет каталог с диска
- •Функция 3вн Меняет текущий каталог на заданный
- •Функция 3сн Создаёт хендл (новый файл) на диске
- •Функция 3dн Открывает хендл (открывает файл) на диске
- •Функция 3ен
- •Функция 3fh
- •Функция 40н
- •Функция 41н
- •Функция 42н
- •Функция 43h
- •Функция 47н
- •Функция 4ен
- •Функция 4fh
- •Функция 56н
- •Функция 57н
- •Функция 5ан
- •Прерывание 25н
- •Прерывание 26н
- •Пример выполнения работы Создать новую директорию new_dir на диске а:, сделать ее текущей, записать туда файл newfile.Txt и в него записать сообщение - "Это вновь созданный файл".
- •Порядок выполнения работы
- •Вопросы по теме работы
- •Лабораторная работа № 2
- •Функция 00н
- •Функция 01н
- •Функция 02н
- •Функция 03н
- •Функция 04н
- •Флаг переноса установлен
- •Функция 05н
- •Пример выполнения работы
- •Порядок выполнения работы
- •Варианты заданий. Не использовать функции dos !!!.
- •Вопросы по теме работы.
- •Приложение а. Функция disk_status
- •Приложение в. Параметры 360к дискеты.
- •Лабораторная работа № 3
- •Основные сведения
- •Функция Назначение
- •Функция 00н
- •Функция 01h
- •Функция 02h
- •Функция 03h
- •Пример выполнение работы
- •Контрольные вопросы
- •Лабораторная работа № 4
- •Основные сведения
- •Функция 00h
- •Функция 01h
- •Функция 02h
- •Система команд матричного принтера
- •Система команд принтера фирмы Epson.
- •Команды форматирования текста
- •Команды печати графических изображений.
- •Пример выполнения работы.
- •Порядок выполнения работы
- •Варианты заданий.
- •Контрольные вопросы
- •Лабораторная работа № 5 Таймер и генерация звука.
- •Форматы управляющих команд таймера.
- •Использование каналов в ibm pc.
- •Генерация звука.
- •Частоты нот для второй октавы
- •Варианты заданий.
- •Вопросы по теме работы.
- •Лабораторная работа № 6 Работа с драйвером мыши.
- •Обращение к драйверу мыши из ассемблера
- •Функции драйвера мыши.
- •Функция 00h
- •Показать курсор
- •Функция 06н
- •Функция 07h
- •Функция 08h
- •Функция 09h
- •Функция 0Ah
- •Функция 0Bh
- •Функция 0Сh
- •Функция 0Dh
- •Функция 0Eh
- •Функция 0Fh
- •Функция 10h
- •Функция 13h
- •Функция 15h
- •Функция 16h
- •Функция 17h
- •Функция 18h
- •Программирование с использованием драйвера мыши.
- •Пример выполнения работы.
Лабораторная работа № 1.
Управление файловой и каталоговой системами в DOS.
Основные сведения.
Программные прерывания и системные вызовы.
В данной работе будут описаны функции прерывания DOS 21H и прерывания 25h, 26h, относящиеся к работе с дисками. Хендлом (handle) или логическим номером файла называется 16 – битовый номер, возвращаемый DOS при открытии файла. При дальнейших действиях система пользуется для идентификации только этим хендлом. В ранних версиях DOS при работе с файловой системой может встретиться понятие управляющего блока файла (fcb), который представляет собой буфер, для записи основных данных о файле при его открытии. Этот буфер, находился в программе, которая открывала файл. Хендл полностью заменяет fcb и требует для хранения всего одно слово. Каждому файлу ставится в соответствие набор атрибутов, определяющих поведение функции.
Атрибуты файла.
Код |
Описание |
00h |
Нормальный, можно читать и записывать без ограничений. |
01h |
Только для чтения, не может быть открыт для записи. |
02h |
Скрытый, не может найден поиском в каталоге. |
04h |
Системный, не может быть найден поиском в каталоге. |
10h |
Подкаталог. |
20h |
Архив, устанавливается сразу после изменения файла. |
Описание функции работы с дисками прерывания DOS 21H.
Для вызова функции прерывания DOS 21H необходимо проделать следующие действия:
выбрать функцию, выполняющую требуемые действия;
занести номер функции в регистр АН;
подготовить другие регистры (если это необходимо);
написать команду INT 21H;
прочесть результаты или состояние из регистров, указанных в описании данной функции.
Ниже следует описание функции 21H.
Функция 0ен
Выбор текущего дисковода.
*Вход:
АН=0ЕН
DL – номер логического дисковода (0 – А, 1 – В и т.д.)
*Выход:
AL – Количество логических дисководов
*Примечание.
Эта функция используется для смены логического диска. Заданный логический диск становится текущим. Функция применяется перед функцией смены текущей директории, если она расположена на другом диске. Необходимо помнить, DOS для каждого диска хранит текущий каталог и при переходе на данный диск устанавливается его текущая директория.
Функция 1ан
Устанавливает буфер обмена с диском (DTA).
*Вход:
АН=1АН
DS:DX – адрес DTA
*Выход: -
*Примечание.
DX содержит адрес начала буфера для обмена с диском. Эта функция применяется для создания буфера, так как некоторые функции работы с диском предполагают наличие такого буфера. Узнать наличие такого буфера можно функцией 2Fh.
Структура DTA.
Функция 2fh
Получает адрес буфера обмена с диском (DTA)
*Вход:
АН=2FH
*Выход:
ES:BX – адрес DTA
Функция 36н Определяет параметры диска
*Вход:
АН=36Н
DL – дисковод (0 – текущий, 1 – А и т.д.)
*Выход:
AX – 0FFFh, если несуществующий диск, иначе количество секторов в кластере
BX – число доступных кластеров
СХ – количество байт в секторе
DX – общее количество кластеров на диске
*Примечание.
Функция возвращает информацию, необходимую для подсчёта количества имеющихся байт на диске.