API-интерфейс DOS

API операционной системы MS-DOS

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-битном защищенном режиме и при этом иметь доступ к DOS API.

История API DOS

Первоначальный 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.

API DOS и Windows

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

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

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

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

Вектор прерыванияОписаниеВерсияПримечания
20hЗавершить программу1.0+Реализовано в ядре DOS
21hОсновной API DOS1.0+Реализовано в ядре DOS
22hАдрес завершения программы1.0+Обратный адрес в вызывающей программе
23hАдрес обработчика Control-C1.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 круглосуточные услуги

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

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Создать PSP1.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Получить версию DOS2.0+
31hУдалить и остаться резидентом2.0+
32hПолучить блок параметров диска для указанного диска2.0+
33hПолучить или установить Ctrl-Break2.0+
34hПолучить указатель флага InDOS2.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Установить текущий PSP2.0+
51hПолучить текущую версию PSP2.0+
52hПолучить внутренние указатели DOS (SYSVARS)2.0+
53hСоздать блок параметров диска2.0+
54hПолучить флаг проверки2.0+
55hСоздать программу PSP2.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Получить текущую версию PSP3.0+
63hПолучить указатель таблицы ведущих байтов DBCS3.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). Advanced MS-DOS Programming: The Microsoft Guide for Assembly Language and C Programmers . Microsoft Press. ISBN 0914845772.

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

  • Allen, Paul ; Gates, Bill ; King, Adrian ; Larson, Chris ; Letwin, Gordon ; O'Rear, Bob ; Paterson, Tim ; Peters, Chris ; Phillips, Bruce ; Reynolds, Aaron ; Stillmaker, Betty ; Zbikowski, Mark (1986). "Технические консультанты". Техническая справочная энциклопедия MS-DOS (версии 1.0-3.2) . Борнштейн, Ховард; Бредехофт, Лоуренс; Дункан, Рэй; Моррис, Кэрол; Роуз, Дэвид; Соха, Джон ; Томлин, Джим; Виан, Кэтлин; Вулвертон, Ван. Белей, Джим; Преппернау, Барри; Бисон, Пэм; Льюис, Андреа; Райгмир, Дэвид (ред.). Справочная библиотека Microsoft. Том 1 (Оригинал отозван). Редмонд, Вашингтон, США: Microsoft Press . ISBN 0-914845-69-1. LCCN  86-8640. OCLC  635600205.(xvii+1053 страницы; 29 см) (Примечание. Это оригинальное издание содержит блок-схемы внутренней работы системы. Оно было отозвано Microsoft перед массовым распространением в 1986 году, поскольку содержало много фактических ошибок, а также некоторую секретную информацию, которая не должна была быть опубликована. Сохранилось лишь несколько печатных копий. Оно было заменено полностью переработанным изданием в 1988 году. [1])
  • Збиковски, Марк ; Аллен, Пол ; Баллмер, Стив ; Борман, Рубен; Борман, Роб; Батлер, Джон; Кэрролл, Чак; Чемберлен, Марк; Челл, Дэвид; Коули, Майк; Кортни, Майк; Драйфус, Майк; Дункан, Рэйчел; Экхардт, Курт; Эванс, Эрик; Фармер, Рик; Гейтс, Билл ; Гири, Майкл; Гриффин, Боб; Хогарт, Дуг; Джонсон, Джеймс У.; Кермани, Камел; Кинг, Адриан; Кох, Рид; Ландовски, Джеймс; Ларсон, Крис; Леннон, Томас; Липки, Дэн; Макдональд, Марк ; Маккинни, Брюс; Мартин, Паскаль; Мазерс, Эстель; Мэтьюз, Боб; Мелин, Дэвид; Мергентайм, Чарльз; Невин, Рэнди; Ньюэлл, Дэн; Ньюэлл, Тани; Норрис, Дэвид; О'Лири, Майк; O'Rear, Bob ; Olsson, Mike ; Osterman, Larry ; Ostling, Ridge ; Pai, Sunil ; Paterson, Tim ; Perez, Gary ; Peters, Chris ; Petzold, Charles ; Pollock, John ; Reynolds, Aaron ; Rubin, Darryl ; Ryan, Ralph ; Schulmeisters, Karl ; Shah, Rajen ; Shaw, Barry ; Short, Anthony ; Slivka, Ben ; Smirl, Jon ; Stillmaker, Betty ; Stoddard, John ; Tillman, Dennis ; Whitten, Greg ; Yount, Natalie ; Zeck, Steve (1988). "Технические консультанты". Энциклопедия MS-DOS: версии с 1.0 по 3.2 . Автор: Duncan, Ray ; Bostwick, Steve ; Burgoyne, Keith ; Byers, Robert A. ; Hogan, Thom ; Kyle, Jim ; Letwin, Gordon ; Петцольд, Чарльз ; Рабинович, Чип; Томлин, Джим; Уилтон, Ричард; Вулвертон, Ван; Вонг, Уильям; Вудкок, Джоанн (полностью переработанное издание). Редмонд, Вашингтон, США: Microsoft Press . ISBN 1-55615-049-0. LCCN  87-21452. OCLC  16581341.(xix+1570 страниц; 26 см) (Примечание. Это издание было опубликовано в 1988 году после обширной переработки отозванного первого издания 1986 года другим коллективом авторов. [2])
  • Нортон, Питер ; Уилтон, Ричард (1987). Новое руководство программиста Питера Нортона по IBM PC и PS/2 . Microsoft Press. ISBN 1-55615-131-4.
  • Рэй Дункан (1988). Advanced MS-DOS Programming: The Microsoft Guide for Assembly Language and C Programmers . Microsoft Press. ISBN 0914845772.
  • Хоган, Том (1991). The Programmer's PC Sourcebook . Microsoft Press. ISBN 155615321X.
  • Справочник программиста MS-DOS - Официальный технический справочник по MS-DOS . Microsoft Press. 1993. ISBN 1556155468.
  • Техническое обновление IBM PC DOS 7
  • Справочная серия разработчиков OpenDOS — Руководство программиста OpenDOS — Руководство по системе и программисту. Caldera, Inc. Август 1997 г. Номер детали Caldera 200-DOPG-003. Архивировано из оригинала 07.10.2017 . Получено 28.06.2012 .(Напечатано в Великобритании.)
Retrieved from "https://en.wikipedia.org/w/index.php?title=DOS_API&oldid=1248559050#Interrupt_vectors_used_by_DOS"