Jump to content

ДВА API

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
Номер скриншота №: 09a07c156a509966f50f4433e6967c23__1695114840
URL1:https://arc.ask3.ru/arc/aa/09/23/09a07c156a509966f50f4433e6967c23.html
Заголовок, (Title) документа по адресу, URL1:
DOS API - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)