DOS API - DOS API

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

История DOS API

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

DOS API и Windows

В Windows 9x, DOS загрузила систему защищенного режима и графическую оболочку. Доступ к DOS обычно осуществлялся из виртуальная машина DOS (VDM), но также можно было загружаться напрямую в MS-DOS 7.0 в реальном режиме без загрузки Windows. DOS API был расширен за счет расширенной поддержки интернационализации и длинное имя файла поддержка, хотя поддержка длинных файлов была доступна только в 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 и системы на его основе (например, Windows XP и Виндоус виста ) не основаны на MS-DOS, но используют виртуальная машина, НТВДМ, для обработки DOS API. NTVDM работает, запустив программу DOS в виртуальный режим 8086 (эмуляция реальный режим в пределах защищенный режим доступен на 80386 и более высокие процессоры). NTVDM поддерживает DOS 5.0 API. ДОСЕМУ для Linux использует аналогичный подход.

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

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

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

DOS INT 21h сервисы

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

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

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

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

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

Смотрите также

использованная литература

  1. ^ Рэй Дункан (1988). Расширенное программирование MS-DOS: Руководство Microsoft для программистов на языке ассемблера и C. Microsoft Press. ISBN  0914845772.

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

  • Аллен, Пол; Гейтс, Билл; Король, Адриан; Ларсон, Крис; Летвин, Гордон; О'Рир, Боб; Патерсон, Тим; Питерс, Крис; Филлипс, Брюс; Рейнольдс, Аарон; Стиллмейкер, Бетти; Збиковски, Марк (1986). «Технические советники». MS-DOS (версии 1.0-3.2) Техническая справочная энциклопедия. Борнштейн, Ховард; Бредехофт, Лоуренс; Дункан, Рэй; Моррис, Кэрол; Роза, Дэвид; Соха, Джон; Томлин, Джим; Виан, Кэтлин; Волвертон, Ван. Бели, Джим; Преппернау, Барри; Бисон, Пэм; Льюис, Андреа; Ригмир, Дэвид (ред.). Справочная библиотека Microsoft. 1 (Оригинал изъят под ред.). Редмонд, Вашингтон, США: Microsoft Press. ISBN  0-914845-69-1. LCCN  86-8640. OCLC  635600205. (xvii + 1053 страницы; 29 см) (NB. Это оригинальное издание содержит блок-схемы внутренней работы системы. Оно было отозвано Microsoft до массового распространения в 1986 году, поскольку оно содержало множество фактических ошибок, а также некоторую секретную информацию, которая должна не были опубликованы. Сохранилось несколько печатных экземпляров. В 1988 году он был заменен полностью переработанным изданием. [1] )
  • Збиковски, Марк; Аллен, Пол; Баллмер, Стив; Борман, Рувим; Борман, Роб; Батлер, Джон; Кэрролл, Чак; Чемберлен, Марк; Челл, Дэвид; Коли, Майк; Кортни, Майк; Драйфус, Майк; Дункан, Рэйчел; Экхардт, Курт; Эванс, Эрик; Фермер, Рик; Гейтс, Билл; Гири, Майкл; Гриффин, Боб; Хогарт, Дуг; Джонсон, Джеймс У .; Кермаани, Камель; Король, Адриан; Кох, Рид; Ландовски, Джеймс; Ларсон, Крис; Леннон, Томас; Липки, Дэн; Макдональд, Марк; МакКинни, Брюс; Мартин, Паскаль; Мазерс, Эстель; Мэтьюз, Боб; Мелин, Дэвид; Mergentime, Чарльз; Невин, Рэнди; Ньюэлл, Дэн; Ньюэлл, Тани; Норрис, Дэвид; О'Лири, Майк; О'Рир, Боб; Олссон, Майк; Остерман, Ларри; Остлинг, Ридж; Пай, Сунил; Патерсон, Тим; Перес, Гэри; Питерс, Крис; Петцольд, Чарльз; Поллок, Джон; Рейнольдс, Аарон; Рубин, Дэррил; Райан, Ральф; Шульмейстер, Карл; Шах, Раджен; Шоу, Барри; Коротко, Энтони; Сливка, Бен; Смирл, Джон; Стиллмейкер, Бетти; Стоддард, Джон; Тиллман, Деннис; Уиттен, Грег; Юнт, Натали; Зек, Стив (1988). «Технические советники». Энциклопедия MS-DOS: версии с 1.0 по 3.2. Дункан, Рэй; Боствик, Стив; Бургойн, Кейт; Байерс, Роберт А.; Хоган, Том; Кайл, Джим; Летвин, Гордон; Петцольд, Чарльз; Рабинович, Чип; Томлин, Джим; Уилтон, Ричард; Волвертон, Ван; Вонг, Уильям; Вудкок, Джоанна (Полностью переработанная ред.). Редмонд, Вашингтон, США: Microsoft Press. ISBN  1-55615-049-0. LCCN  87-21452. OCLC  16581341. (xix + 1570 страниц; 26 см) (NB. Это издание было опубликовано в 1988 году после обширной переработки отозванного первого издания 1986 года другим коллективом авторов. [2] )
  • Новое руководство программиста Питера Нортона по IBM PC & PS / 2 Питер Нортон и Ричард Уилтон, Microsoft Press, 1987 ISBN  1-55615-131-4.
  • Рэй Дункан (1988). Расширенное программирование MS-DOS: Руководство Microsoft для программистов на языке ассемблера и C. Microsoft Press. ISBN  0914845772.
  • Справочник программиста по ПК Том Хоган, Microsoft Press, 1991 г. ISBN  155615321X
  • Справочник программиста Microsoft MS-DOS - Официальный технический справочник по MS-DOS, Microsoft Press, 1993 г. ISBN  1556155468
  • Техническое обновление IBM PC DOS 7
  • Серия справочников разработчика OpenDOS - Руководство программиста OpenDOS - Руководство по системе и программисту. Caldera, Inc. Август 1997. Кальдера Деталь № 200-ДОПГ-003. Архивировано из оригинал на 2017-10-07. Получено 2012-06-28. (Отпечатано в Великобритании.)

внешние ссылки