Эта статья включает в себя список общих ссылок , но он остается в значительной степени непроверенным, поскольку в нем отсутствует достаточное количество соответствующих встроенных ссылок . ( Май 2015 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
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.
История DOS API [ править ]
Оригинальный DOS API в 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 добавлена поддержка использования блоков старшей памяти (UMB). После 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 и Windows Vista ), не основаны на MS-DOS, но и использовать виртуальную машину , NTVDM , для обработки API DOS. NTVDM работает путем запуска программы DOS в виртуальном режиме 8086 (эмуляция реального режима в защищенном режиме, доступная на процессорах 80386 и выше). NTVDM поддерживает DOS 5.0 API. 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+ |
Операционные системы с встроенной поддержкой [ править ]
- MS-DOS - наиболее распространенная реализация
- PC DOS - OEM-версия MS-DOS для IBM
- OS / 2 1.x - Microsoft / IBM преемник MS-DOS и PC DOS
- SISNE plus - клон, созданный компаниями Itautec и Scopus Tecnologia в Бразилии
- DR-DOS - семейство DOS Digital Research, включая Novell DOS , PalmDOS , OpenDOS и т. Д.
- PTS-DOS - клон PhysTechSoft и Paragon DOS, включая S / DOS
- ROM-DOS - версия Datalight ROM DOS
- Встроенная DOS - общая версия программного обеспечения
- FreeDOS - бесплатный клон DOS с открытым исходным кодом
- ReactOS ( версии IA-32 и x86-64 )
- Windows 95 - содержит MS-DOS 7.0
- Windows 98 - содержит MS-DOS 7.1
- Windows 98 SE - содержит MS-DOS 7.1
- Windows ME - содержит MS-DOS 8.0
Операционные системы со слоем эмуляции DOS [ править ]
- Одновременная работа CP / M-86 (только 3.1) с PCMODE - Digital Research на базе CP / M-86 с дополнительным эмулятором DOS для ПК
- Concurrent DOS - семейство CDOS Digital Research со встроенным эмулятором DOS для ПК
- DOS Plus - урезанный однопользовательский вариант Concurrent PC DOS 4.1–5.0
- Многопользовательская DOS - Семейство Digital Research / Novell MDOS, включая Datapac System Manager , IMS REAL / 32 и т. Д.
- OS / 2 (2.x и новее) - операционная система IBM, использующая полностью лицензионную MS-DOS 5.0 на виртуальной машине
- Windows NT (все версии, кроме 64-битных)
Другие эмуляторы [ править ]
- NTVDM для Windows NT
- DOSEMU для Linux
- DOSBox
См. Также [ править ]
- Вызов прерывания BIOS
- Список прерываний Ральфа Брауна (RBIL)
- Сравнение операционных систем DOS
- Интерфейс защищенного режима DOS (DPMI)
- Расширитель DOS
- Исполняемый файл DOS MZ
- COMMAND.COM
Ссылки [ править ]
- ↑ Рэй Дункан (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 г. Деталь Caldera № 200-DOPG-003. Архивировано из оригинала на 2017-10-07 . Проверено 28 июня 2012 . (Отпечатано в Великобритании.)
Внешние ссылки [ править ]
- Список прерываний x86 (он же RBIL, список прерываний Ральфа Брауна )
- ctyme.com - INT Вызовы по функциям
- wustl.edu - Описание служб MS-DOS