OSFree FamilyAPI

Материал из Русский WINE
Перейти к: навигация, поиск

Family API

Это часть Family API, которая позволяет создавать двухОСные версии программ, работающих под OS/2 и DOS.

Примечание: Это устаревший вызов API. Рекомендуется использовать 32-битный эквивалент.

Family API

Family API (FAPI) — это подмножество Control Program API, которое можно использовать для написания бинарно-переносимых приложений. Такие приложения могут запускаться как в OS/2, так и в DOS без каких-либо модификаций.

Известны 3 версии оригинального Family API:

Также существуют сторонние реализации Family API:

Версии до 1.10 — это оригинальное OS/2 Family API. 1.20 и выше — расширения osFree.

ДвухОСные приложения

Можно писать программы, которые будут работать в OS/2, DOS и Windows NT из одного бинарного файла. Более того, один и тот же исходный код можно использовать без каких-либо #ifdef и других директив препроцессора. Такая переносимость достигается через Family API. Family API — это слой эмуляции OS/2 API поверх DOS. Исполняемый файл OS/2 имеет формат NE (New Executable). NE-файл состоит из двух частей:

  • часть в устаревшем формате DOS MZ EXE;
  • часть NE EXE.

При использовании Family API часть MZ файла используется для обеспечения механизма загрузки и динамической компоновки для загрузки и связывания NE. Также файл Family API содержит библиотеку эмуляции, которая транслирует вызовы OS/2 API в вызовы прерываний DOS. Таким образом, один и тот же файл может выполняться как в OS/2, так и в DOS. Windows NT содержит OS/2 Subsystem (os2ss.exe), который обеспечивает слой OS/2 API поверх ядра Windows NT. Так Family API позволяет поддерживать 3 ОС с помощью одного бинарного файла.

На текущий момент поддерживается только 16-битное Family API.

Написание переносимых инструментов

http://www.edm2.com/index.php/Hints_for_writing_simple_programs_for_both_OS/2_and_DOS

Документация

Совместимость

Возможность DOS 16-бит реальный режим DOS 16-бит защищённый режим 1 OS/2 16-бит защищённый режим
Максимум памяти 640 КБ 16 МБ 2 16 МБ
Виртуальная память Нет Нет 1 ГБ
Многозадачность Нет Нет Да
Многопоточность Нет Нет Да
Длинные имена файлов Да 3 Да 4 Да 5
Расширенные атрибуты Да 6 Да 7 Да 8
Смена имени EXE приложения Да 9 Да 10 Да

Примечания

Детали реализации см. в разделе «Детали реализации».

Сноски

  1. Требуется DPMI-хост с поддержкой 16-битного клиента.
  2. Фактически зависит от DPMI-хоста и текущего процессора.
  3. 3), 4) Поддерживается начиная с версии 1.20. Требуется драйвер LFN под DOS или работа в VDM Windows 9x.
  4. 5), 8) Начиная с OS/2 1.??
  5. 6), 7) Только под OS/2 BOX.
  6. 9), 10) Под DOS 3 и выше.

Источник


OSFree
Search.png
osFree Архитектура • План работ • Компоненты • Используемые проекты • Экраны • FreePM • L4 • Скриншоты
Загрузчик [ Последовательность загрузки: поток выполнения • изменение карты памяти ] • Загрузочный сектор • L4Ka::Kickstart
Personalities Win16 personality • MVM/DOS/Win16 personality
Разработка Получение исходных кодов • Сборка • Отладка • Отправка отчетов
API TPCrt • FamilyAPI • Win16API • VIO API • MVM API
Сообщество IRC
OS/2 Presentation Manager • IFS • Петиции к IBM