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. (Отпечатано в Великобритании.)