Jump to content

ДВА API

(Перенаправлено из API DOS 1.x )

DOS API — это API , созданный в 86-DOS и используемый в MS-DOS / PC DOS и других DOS -совместимых операционных системах. Большинство вызовов DOS API вызываются с использованием программного прерывания 21h ( INT 21h). Вызовом INT 21h с номером подфункции в регистре процессора AH и другими параметрами в других регистрах можно вызвать различные службы DOS. К ним относятся обработка ввода с клавиатуры, вывод видео, доступ к файлам на диске, выполнение программ, распределение памяти и различные другие действия. В конце 1980-х годов расширители DOS вместе с интерфейсом защищенного режима DOS (DPMI) позволяли программам работать в 16-битном или 32-битном защищенном режиме и при этом иметь доступ к API DOS.

История DOS API

[ редактировать ]

Исходный API DOS в 86-DOS и MS-DOS 1.0 был разработан с учетом функциональной совместимости с CP/M . Доступ к файлам осуществлялся с использованием блоков управления файлами (FCB). API DOS был значительно расширен в MS-DOS 2.0 за счет нескольких концепций Unix , включая доступ к файлам с использованием дескрипторов файлов , иерархические каталоги и управление вводом-выводом устройств. [ 1 ] В DOS 3.1 сетевого перенаправления была добавлена ​​поддержка . В MS-DOS 3.31 функции INT 25h/26h были расширены для поддержки жестких дисков объемом более 32 МБ. В MS-DOS 5 добавлена ​​поддержка использования верхних блоков памяти (UMB). После MS-DOS 5 API DOS не менялся для последующих автономных выпусков DOS.

DOS API и Windows

[ редактировать ]

В Windows 9x DOS загружала систему защищенного режима и графическую оболочку. Доступ к DOS обычно осуществлялся с виртуальной машины DOS (VDM), но можно было также загрузить MS-DOS 7.0 в реальном режиме без загрузки Windows. API DOS был расширен за счет расширенной поддержки интернационализации и поддержки длинных имен файлов , хотя поддержка длинных имен файлов была доступна только в VDM. В Windows 95 OSR2 DOS был обновлен до версии 7.1, в которой добавлена ​​поддержка FAT32 , а в DOS API были добавлены функции для ее поддержки. Windows 98 и Windows ME также реализуют API MS-DOS 7.1, хотя Windows ME сообщает о себе как MS-DOS 8.0.

Windows NT и основанные на ней системы (например, XP и Windows Vista ) не основаны на MS-DOS, но используют виртуальную машину NTVDM Windows для обработки API DOS. NTVDM работает, запуская программу DOS в виртуальном режиме 8086 (эмуляция реального режима в защищенном режиме, доступная на процессорах 80386 и выше). NTVDM поддерживает API DOS 5.0. DOSEMU для Linux использует аналогичный подход.

Векторы прерываний, используемые DOS

[ редактировать ]

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

Вектор прерывания Описание Версия Примечания
20h Завершить программу 1.0+ Реализовано в ядре DOS.
21h Воспроизвести DOS API 1.0+ Реализовано в ядре DOS.
22h Адрес завершения программы 1.0+ Обратный адрес в вызывающей программе
23h Адрес обработчика Control-C 1.0+ Обработчик по умолчанию находится в командной оболочке (обычно COMMAND.COM).
24h Адрес обработчика критических ошибок 1.0+ Обработчик по умолчанию находится в командной оболочке (обычно COMMAND.COM).
25h Абсолютное чтение диска 1.0+ Реализовано в ядре DOS, улучшено в DOS 3.31 для поддержки разделов размером до 2 ГБ.
26h Абсолютная запись на диск 1.0+ Реализовано в ядре DOS, улучшено в DOS 3.31 для поддержки разделов размером до 2 ГБ.
27h Завершить действие и остаться резидентом 1.0+ Реализовано в COMMAND.COM в DOS 1.0, ядре DOS в DOS 2.0+.
28h Вызов в режиме ожидания 2.0+ Вызывается ядром DOS при ожидании ввода
29h Быстрый вывод на консоль 2.0+ Реализуется встроенным драйвером консольного устройства или замещающим драйвером, например ANSI.SYS.
2Ah Сеть и критический раздел 3.0+ Вызывается ядром DOS для взаимодействия с сетевым программным обеспечением.
2Bh Неиспользованный
2Ch Неиспользованный
2Dh Неиспользованный
2Eh Перезагрузить переходный процесс 2.0+ Реализовано в COMMAND.COM
2Fh Мультиплекс 3.0+ Реализовано в ядре DOS и различных программах (PRINT, MSCDEX, DOSKEY, APPEND и др.) в зависимости от номера подфункции.

Службы DOS INT 21h

[ редактировать ]

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

AH Описание Версия
00h Завершить программу 1.0+
01h Ввод символов 1.0+
02h Вывод символов 1.0+
03h Дополнительный вход 1.0+
04h Дополнительный выход 1.0+
05h Вывод на принтер 1.0+
06h Прямой консольный ввод-вывод 1.0+
07h Прямой консольный ввод без эха 1.0+
08h Консольный ввод без эха 1.0+
09h Отображаемая строка 1.0+
0Ah Буферизованный ввод с клавиатуры 1.0+
0Bh Получить статус ввода 1.0+
0Ch Очистить входной буфер и ввод 1.0+
0Dh Сброс диска 1.0+
0Eh Установить диск по умолчанию 1.0+
0Fh Открыть файл 1.0+
10h Закрыть файл 1.0+
11h Найти первый файл 1.0+
12h Найти следующий файл 1.0+
13h Удалить файл 1.0+
14h Последовательное чтение 1.0+
15h Последовательная запись 1.0+
16h Создать или обрезать файл 1.0+
17h Переименовать файл 1.0+
18h Сдержанный 1.0+
19h Получить диск по умолчанию 1.0+
1Ah Установить адрес передачи диска 1.0+
1Bh Получить информацию о выделении для диска по умолчанию 1.0+
1Ch Получить информацию о выделении для указанного диска 1.0+
1Dh Сдержанный 1.0+
1Eh Сдержанный 1.0+
1Fh Получить блок параметров диска для диска по умолчанию 1.0+
20h Сдержанный 1.0+
21h Случайное чтение 1.0+
22h Случайная запись 1.0+
23h Получить размер файла в записях 1.0+
24h Установить случайный номер записи 1.0+
25h Установить вектор прерывания 1.0+
26h Создать PSP 1.0+
27h Случайное чтение блока 1.0+
28h Случайная запись блока 1.0+
29h Разобрать имя файла 1.0+
2Ah Получить дату 1.0+
2Bh Установить дату 1.0+
2Ch Получить время 1.0+
2Dh Установить время 1.0+
2Eh Установить флаг проверки 1.0+
2Fh Получить адрес переноса диска 2.0+
30h Получить версию для DOS 2.0+
31h Завершить действие и остаться резидентом 2.0+
32h Получить блок параметров диска для указанного диска 2.0+
33h Получить или установить Ctrl-Break 2.0+
34h Получить указатель флага InDOS 2.0+
35h Получить вектор прерывания 2.0+
36h Получите бесплатное дисковое пространство 2.0+
37h Получить или установить символ переключения 2.0+
38h Получить или установить информацию о стране 2.0+
39h Создать подкаталог 2.0+
3Ah Удалить подкаталог 2.0+
3Bh Изменить текущий каталог 2.0+
3Ch Создать или обрезать файл 2.0+
3Dh Открыть файл 2.0+
3Eh Закрыть файл 2.0+
3Fh Чтение файла или устройства 2.0+
40h Запись файла или устройства 2.0+
41h Удалить файл 2.0+
42h Переместить указатель файла 2.0+
43h Получить или установить атрибуты файла 2.0+
44h Управление вводом/выводом для устройств 2.0+
45h Дублирующийся дескриптор 2.0+
46h Дескриптор перенаправления 2.0+
47h Получить текущий каталог 2.0+
48h Выделить память 2.0+
49h Освободить память 2.0+
4Ah Перераспределить память 2.0+
4Bh Выполнить программу 2.0+
4Ch Завершить с кодом возврата 2.0+
4Dh Получить код возврата программы 2.0+
4Eh Найти первый файл 2.0+
4Fh Найти следующий файл 2.0+
50h Установить текущую PSP 2.0+
51h Получить текущую PSP 2.0+
52h Получить внутренние указатели DOS (SYSVARS) 2.0+
53h Создать блок параметров диска 2.0+
54h Получить флаг проверки 2.0+
55h Создать программу PSP 2.0+
56h Переименовать файл 2.0+
57h Получить или установить дату и время файла 2.0+
58h Получить или установить стратегию распределения 2.11+
59h Получить расширенную информацию об ошибке 3.0+
5Ah Создать уникальный файл 3.0+
5Bh Создать новый файл 3.0+
5Ch Заблокировать или разблокировать файл 3.0+
5Dh Функции обмена файлами 3.0+
5Eh Сетевые функции 3.0+
5Fh Функции сетевого перенаправления 3.0+
60h Уточните имя файла 3.0+
61h Сдержанный 3.0+
62h Получить текущую PSP 3.0+
63h Получить указатель таблицы ведущих байтов DBCS 3.0+
64h Установить флаг ожидания внешнего события 3.2+
65h Получить расширенную информацию о стране 3.3+
66h Получить или установить кодовую страницу 3.3+
67h Установить количество дескрипторов 3.3+
68h Зафиксировать файл 3.3+
69h Получить или установить идентификатор носителя 4.0+
6Ah Зафиксировать файл 4.0+
6Bh Сдержанный 4.0+
6Ch Расширенное открытие/создание файла 4.0+

Операционные системы со встроенной поддержкой

[ редактировать ]

Операционные системы с уровнем эмуляции DOS

[ редактировать ]

Другие эмуляторы

[ редактировать ]

См. также

[ редактировать ]
  1. ^ Рэй Дункан (1988). Продвинутое программирование в MS-DOS: Руководство Microsoft для программистов на ассемблере и C. Майкрософт Пресс. ISBN  0914845772 .

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 31c378d75c15ad8610d3b2798cabc85c__1695114840
URL1:https://arc.ask3.ru/arc/aa/31/5c/31c378d75c15ad8610d3b2798cabc85c.html
Заголовок, (Title) документа по адресу, URL1:
DOS API - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)