OSFree FamilyAPI
Содержание
Family API
Это часть Family API, которая позволяет создавать двухОСные версии программ, работающих под OS/2 и DOS.
Примечание: Это устаревший вызов API. Рекомендуется использовать 32-битный эквивалент.
Family API
Family API (FAPI) — это подмножество Control Program API, которое можно использовать для написания бинарно-переносимых приложений. Такие приложения могут запускаться как в OS/2, так и в DOS без каких-либо модификаций.
Известны 3 версии оригинального Family API:
- 1.00
- 1.10
- Mapper из MS-DOS 4.0.
Также существуют сторонние реализации Family API:
- FAMAPI от Jonathan de Boyne Pollard
- HX DOS Extender API от Andreas Grech
- os2api от Malcolm Smith
Версии до 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 | Да |
Примечания
Детали реализации см. в разделе «Детали реализации».
Сноски
- Требуется DPMI-хост с поддержкой 16-битного клиента.
- Фактически зависит от DPMI-хоста и текущего процессора.
- 3), 4) Поддерживается начиная с версии 1.20. Требуется драйвер LFN под DOS или работа в VDM Windows 9x.
- 5), 8) Начиная с OS/2 1.??
- 6), 7) Только под OS/2 BOX.
- 9), 10) Под DOS 3 и выше.
Источник
| OSFree | |
|---|---|
| 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 |