DOS API - DOS API
Эта статья включает в себя список общих использованная литература, но он остается в основном непроверенным, потому что ему не хватает соответствующих встроенные цитаты. (Май 2015 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
В 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 API | 1.0+ | Реализовано в ядре DOS |
22ч | Адрес завершения программы | 1.0+ | Обратный адрес в вызывающей программе |
23ч | Адрес обработчика Control-C | 1.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 | Неиспользованный | ||
2Ч | Неиспользованный | ||
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+ |
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Ч | Получить информацию о выделении для указанного диска | 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ч | Создать PSP | 1.0+ |
27ч | Случайное чтение блока | 1.0+ |
28ч | Случайная запись блока | 1.0+ |
29ч | Разобрать имя файла | 1.0+ |
2Ач | Получить дату | 1.0+ |
2Bh | Установить дату | 1.0+ |
2Ч | Получить время | 1.0+ |
2Dh | Установленное время | 1.0+ |
2Eh | Установить флаг проверки | 1.0+ |
2Fh | Получить адрес переноса диска | 2.0+ |
30ч | Получить версию для DOS | 2.0+ |
31ч | Прекратить и остаться резидентом | 2.0+ |
32ч | Получить блок параметров диска для указанного диска | 2.0+ |
33ч | Получить или установить Ctrl-Break | 2.0+ |
34ч | Получить указатель флага InDOS | 2.0+ |
35ч | Получить вектор прерывания | 2.0+ |
36ч | Получите свободное место на диске | 2.0+ |
37ч | Получить или установить символ переключения | 2.0+ |
38ч | Получить или установить информацию о стране | 2.0+ |
39ч | Создать подкаталог | 2.0+ |
3Ач | Удалить подкаталог | 2.0+ |
3Bh | Изменить текущий каталог | 2.0+ |
3Ч | Создать или обрезать файл | 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+ |
4Ч | Завершить с кодом возврата | 2.0+ |
4Dh | Получить код возврата программы | 2.0+ |
4Eh | Найти первый файл | 2.0+ |
4Fh | Найти следующий файл | 2.0+ |
50ч | Установить текущую PSP | 2.0+ |
51ч | Получить текущую PSP | 2.0+ |
52ч | Получить внутренние указатели DOS (SYSVARS) | 2.0+ |
53ч | Создать блок параметров диска | 2.0+ |
54ч | Получить флаг проверки | 2.0+ |
55ч | Создать программу PSP | 2.0+ |
56ч | Переименуйте файл | 2.0+ |
57ч | Получить или установить дату и время файла | 2.0+ |
58ч | Получить или установить стратегию распределения | 2.11+ |
59ч | Получить расширенную информацию об ошибке | 3.0+ |
5Ач | Создать уникальный файл | 3.0+ |
5Bh | Создать новый файл | 3.0+ |
5Ч | Заблокировать или разблокировать файл | 3.0+ |
5Dh | Функции обмена файлами | 3.0+ |
5Eh | Сетевые функции | 3.0+ |
5Fh | Функции перенаправления сети | 3.0+ |
60ч | Укажите имя файла | 3.0+ |
61ч | Зарезервированный | 3.0+ |
62ч | Получить текущую PSP | 3.0+ |
63ч | Получить указатель таблицы старших байтов DBCS | 3.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+ |
6Ч | Расширенное открытие / создание файла | 4.0+ |
Операционные системы с нативной поддержкой
- MS-DOS - самая распространенная реализация
- ПК DOS - OEM-версия IBM MS-DOS
- OS / 2 1.x - Microsoft / IBM преемник MS-DOS и PC DOS
- SISNE plus – Клонировать создан Itautec и Scopus Tecnologia в Бразилия
- DR-DOS - Семейство DOS Digital Research, включая Novell DOS, PalmDOS, OpenDOS, так далее.
- ПТС-ДОС - Клон 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 с дополнительным эмулятором PC DOS
- Параллельная DOS - Семейство Digital Research CDOS со встроенным эмулятором PC DOS
- DOS Plus - урезанный однопользовательский вариант Concurrent PC DOS 4.1–5.0
- Многопользовательская DOS - Семейство Digital Research / Novell MDOS, включая Системный менеджер Datapac, IMS REAL / 32, так далее.
- OS / 2 (2.x и новее) - операционная система IBM, использующая полностью лицензионную MS-DOS 5.0 в виртуальная машина
- Windows NT (все версии кроме 64-битных)
Другие эмуляторы
- НТВДМ для Windows NT
- ДОСЕМУ для Linux
- DOSBox
Смотрите также
- Вызов прерывания BIOS
- Список прерываний Ральфа Брауна (РБИЛ)
- Сравнение операционных систем 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. Кальдера Деталь № 200-ДОПГ-003. Архивировано из оригинал на 2017-10-07. Получено 2012-06-28. (Отпечатано в Великобритании.)